Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t00QS-0094JA-OD for pgsql-hackers@arkaria.postgresql.org; Sun, 13 Oct 2024 15:22:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1t00QQ-004zaH-Lh for pgsql-hackers@arkaria.postgresql.org; Sun, 13 Oct 2024 15:22:31 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1szr79-00G2dl-JJ for pgsql-hackers@lists.postgresql.org; Sun, 13 Oct 2024 05:26:00 +0000 Received: from mail-ot1-x32b.google.com ([2607:f8b0:4864:20::32b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1szr74-000mp1-29 for pgsql-hackers@lists.postgresql.org; Sun, 13 Oct 2024 05:25:58 +0000 Received: by mail-ot1-x32b.google.com with SMTP id 46e09a7af769-717bde361f6so1740419a34.3 for ; Sat, 12 Oct 2024 22:25:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1728797153; x=1729401953; 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=XxKBdxBWoPPa8ioCuBiBoVlN7KZ+iX3rJudBycv3PEM=; b=vf8HNKdj7m7LQQMIGAJsdi9PJzOPvjbgZ2vfnvqEYWqswQMGfZKzOSG729Uvwkhfkk K6nGoOXfV1Az/DzgIPovuWL+MLIoFZh3kxdxTrtuZAZsMISStLUW9hlmw4eg+cZa6reu zhCD0epTdIcW6WX6YKTkffOXnf9zlCj/vGEMD6rua3LkqIpG6/SEsksUolD+CnczcTmJ 5tn6yCTCa9aSVuKtKYiWDp/P1QwDgd6eQxe2YRmHEE2FaKZDZwPFUib0r1etUcHHTjAw jmDOwzZAKTyT7Iwl3in8T/nQqsSQhG1B/00A6f+5nyJhs94ZOTiYWS4Rrxn7rXYEILwW QILQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728797153; x=1729401953; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=XxKBdxBWoPPa8ioCuBiBoVlN7KZ+iX3rJudBycv3PEM=; b=Gdvexi6lfbaG58VmvZ2ySXz56qTaX2yZAdJqiGNlNvoIcU8EaFXL2K+gxtEypXChHZ J3buJR2FksIf4gEDGQ9LKEr1pthfvuc9qlHHBYiAKfOhurmN0IGzIRSi28QnjpNtvH3x GnJ43f0eTjfQtQC5sPdWrxywvuUVFT6t+KhWn9T11OzIi7w3A3EHUJOhFKTWZj7dfBCT x/Rhih3k6Uz+PjPQU3U4E5qafaujLc/Zdqmz3xTwBFsu2595GmLJcRBIFYlSgWgoAFWm YUxbMbNbKCzsuRIiZh1+/io+KMhx0Z0bJkhw6qpoFrS5buH4iuOGrhvFanFmk6ta6Ug4 5egg== X-Forwarded-Encrypted: i=1; AJvYcCXnNLqLyT3qE4mIsGri3FnCxCohCShVC4BlNxy+hN01JivKUp6oB/Wrm9zK/RHu/i+s9wzSQGb9xNyalzmL@lists.postgresql.org X-Gm-Message-State: AOJu0YwAx1SkSK99FTu8rN+amSzZCI69y89OK4pXq/hAEEb7+kX7jfbM qRIkF3s/DX9IEPC1ssT6YOUZHMTGlWjaACg8qCT2RdGTSyNIn+pkWutxFueYLDyMc4N2fQGhp5Q 7G/wmPAjm7XLKFI0pPKUnCAS8AwnIlCJXM99NxA== X-Google-Smtp-Source: AGHT+IEjHxkTzi/VGeGzV7pvXy4M9XCt419P9d3pjiCs9VxADZv32fjZJbRSZMipEgasH4YuKdq19gEXUR9xOeMWuf8= X-Received: by 2002:a05:6870:1585:b0:288:6365:d7a2 with SMTP id 586e51a60fabf-288874e3aa7mr2013124fac.44.1728797152888; Sat, 12 Oct 2024 22:25:52 -0700 (PDT) MIME-Version: 1.0 References: <58b6687fe9de002e4c862a412719e4f918bad987.camel@j-davis.com> <30dc3561-d7ab-42be-a1c5-096643423590@illuminatedcomputing.com> <73d09e24-b6b9-4c89-8c0a-8842ca0f81f9@illuminatedcomputing.com> <081aa43c-3a97-4bd5-a498-ba02e0a7570d@illuminatedcomputing.com> <54390149-11d6-4f52-bbe8-f69832ceb3bd@eisentraut.org> In-Reply-To: From: Paul A Jungwirth Date: Sun, 13 Oct 2024 00:25:40 -0500 Message-ID: Subject: Re: SQL:2011 application time To: Peter Eisentraut Cc: jian he , Isaac Morland , Robert Haas , Jeff Davis , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000030a223062454f4b4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000030a223062454f4b4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Sep 17, 2024 at 4:45=E2=80=AFAM Peter Eisentraut wrote: > I have committed these, as explained here. > > I look forward to an updated patch set from you to review the "FOR > PORTION OF" patches next. Here are updates to the remaining patches. I made big changes to FOR PORTION OF: - Inserting the leftovers now uses SPI. Before I tried to use just ExecInsert with a patched-up mtstate and other things, but it felt brittle and had some problems. FOR EACH STATEMENT insert triggers were not firing, and the transition table for the ROW triggers contained both inserted tuples. According to the spec, we should treat the two leftover inserts as separate statements. For example on DELETE, 15.7.8.c.ii (for the leading leftover) and 8.d.ii (for the trailing leftover) both say: > The following is effectively executed . . . So each side gets a *separate* insert statement. DB2 also fires statement triggers (one for each insert) and gives them separate transition tables. Mariadb doesn't have statement triggers, but you can tell they also treat each insert as a separate statement, because row triggers fire like this: BEFORE INSERT, AFTER INSERT, BEFORE INSERT, AFTER INSERT. One statement for both inserts would be BEFORE BEFORE AFTER AFTER. Then there were other things that worked but at the cost of more code, like partitioned tables. Using SPI seems much more robust. To help performance I am caching plans much as we do in ri_triggers.c. - I cleaned up how I was handling some shift/reduce conflicts. The problem was how INTERVALs accept a TO qualifier to keep details above a given precision. For example INTERVAL '1:05:03' HOUR TO MINUTE still drops the 3 seconds but not the 5 minutes. So this was ambiguous: FOR PORTION OF valid_at FROM t1 + INTERVAL '1:05:03' HOUR TO t2. Previously I was solving this with extra %nonassoc declarations, with a guilty conscience, but now I'm using %prec and adding just TO to IDENT's %nonassoc list. This is much more in line with the comment in gram.y's precedence section. - FOR PORTION OF a FROM b TO c now appears before the [[AS] table_alias], which is where the spec says it should be. (Previously I had it after the table alias.) This led to 30 more shift/reduce conflicts, but solving them was pretty easy once I realized SELECT with *column* aliases must have all the same problems, and I noticed our bare_label_keyword list. So I'm doing something similar: if there is no FOR PORTION OF, all the same grammar rules are used. If you have FOR PORTION OF, then we allow [AS table_alias] always and just [table_alias] in most cases. This did require a couple more %precs and adding USING to the IDENT precedence level. I haven't yet dealt with jian he's latest patch feedback, but I thought this was significant enough progress to be worth sharing. I also did some experiments with logical replication, especially around REPLICA IDENTITY. For a temporal table, you have a primary key but (1) it is not btree (2) it doesn't use equality for the WITHOUT OVERLAPS part. So I would not be surprised to find problems there. OTOH in principle it should be okay. Remember that a temporal primary key is *strictly more restrictive* than a PK (at least now that we've forbidden empty ranges). If you have all the key parts, that *does* give you a unique record (whether you use equals or overlaps for the last part, actually). Logical *decoding* works fine. For updates/deletes, we report all the key parts of the old record. For instance suppose I do this: create extension btree_gist; create table t (id integer, valid_at daterange, primary key (id, valid_at without overlaps)); insert into t values (1, '[2000-01-01,2020-01-01)'); update t set id =3D 2; update t for portion of valid_at from '2001-01-01' to '2002-01-01' set id = =3D 3; Then `pg_recvlogical` shows me this: ... BEGIN 21535 table public.t: INSERT: id[integer]:1 valid_at[daterange]:'[2000-01-01,2020-01-01)' COMMIT 21535 BEGIN 21536 table public.t: UPDATE: old-key: id[integer]:1 valid_at[daterange]:'[2000-01-01,2020-01-01)' new-tuple: id[integer]:2 valid_at[daterange]:'[2000-01-01,2020-01-01)' COMMIT 21536 BEGIN 21537 table public.t: UPDATE: old-key: id[integer]:2 valid_at[daterange]:'[2000-01-01,2020-01-01)' new-tuple: id[integer]:3 valid_at[daterange]:'[2001-01-01,2002-01-01)' table public.t: INSERT: id[integer]:2 valid_at[daterange]:'[2000-01-01,2001-01-01)' table public.t: INSERT: id[integer]:2 valid_at[daterange]:'[2002-01-01,2020-01-01)' COMMIT 21537 I think that is exactly what we want. Even FOR PORTION OF updates/deletes replicate nicely: we send the update/delete and then we send the inserts for leftovers. On the `subscription` side, we also get what we want *if* we use REPLICA IDENTITY FULL. But if we use `REPLICA IDENTITY DEFAULT` based on a WITHOUT OVERLAPS primary key, the subscriber can't handle the GiST index. We get an error like this: 2024-10-12 22:47:09.882 CDT [69308] ERROR: missing operator 0(23,23) in opfamily 16503 2024-10-12 22:47:09.882 CDT [69308] CONTEXT: processing remote data for replication origin "pg_17080" during message type "UPDATE" for replication target relation "public.t" in transaction 21542, finished at 0/11D9EEE0 2024-10-12 22:47:09.883 CDT [66619] LOG: background worker "logical replication apply worker" (PID 69308) exited with exit code 1 2024-10-12 22:47:14.874 CDT [69420] LOG: logical replication apply worker for subscription "s" has started I will work on a fix for that, but I think for now we could also raise an error on the publication side if you try to replicate updates/deletes through a temporal PK, and then document that temporal tables need to use `REPLICA IDENTITY FULL`. I'll try to get to jian he's patch feedback soon as well. And then there are a couple more bits of followup I'd like to do: - Should we pass the FOR PORTION OF clause to FDWs? I think we should, and it can be up to them whether they support it. But in the meantime I think we can just say that FOR PORTION OF against FDWs is not supported. - We should allow the FOR PORTION OF FROM/TO bounds to be named parameters. For instance you can't do this: CREATE FUNCTION fpo_sql_update(target_from date, target_til date) RETURNS VOID AS $$ UPDATE for_portion_of_test2 FOR PORTION OF valid_at FROM target_from TO target_til SET name =3D concat(name, '*') WHERE id =3D '[1,2)'; $$ LANGUAGE sql; The problem is that ColumnRefs aren't allowed as bounds, and that's how we parse the parameters here. PL/pgSQL functions act the same. A workaround is to use FROM $1 TO $2, which *does* work. Or of course format + EXECUTE. Given those alternatives, this seems like a low-priority problem, but I'm still interested in fixing it. Actually I've already had at least one person ask for genuine ColumnRefs in FOR PORTION OF bounds. According to the spec those aren't allowed, and we currently evaluate them in ExecInitModifyTable, but in principle I don't see any reason we couldn't permit them. Perhaps we could even still evaluate them upfront if we can see they are constant. Rebased to c0b74323dc. Yours, --=20 Paul ~{:-) pj@illuminatedcomputing.com --00000000000030a223062454f4b4 Content-Type: application/octet-stream; name="v40-0003-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch" Content-Disposition: attachment; filename="v40-0003-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m2754s3i2 RnJvbSA3MDEzMDZiOTY0MTA4MTNiYTI5MjQ0MDhhZDBhZTA5NWNjZTI5NmIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMyBKdW4gMjAyMyAyMTo0MToxMSAtMDQwMApTdWJqZWN0 OiBbUEFUQ0ggdjQwIDMvNF0gQWRkIENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFVTFQgZm9yIHRl bXBvcmFsIGZvcmVpZ24KIGtleXMKCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUu c2dtbCAgICAgICAgICAgIHwgICAxNCArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJh aW50LmMgICAgICAgICAgIHwgICAyMCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMgICAgICAgICAgICAgIHwgICA4MyArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdn ZXJzLmMgICAgICAgICAgIHwgIDU4NCArKysrKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29u c3RyYWludC5oICAgICAgICAgICB8ICAgIDcgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQgICAgICAgICAgICAgICB8ICAgMjIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9i dHJlZV9pbmRleC5vdXQgICAgIHwgICAxOCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91 dF9vdmVybGFwcy5vdXQgICAgIHwgMTczMiArKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAgIHwgIDk3NyArKysrKysrKystCiA5IGZp bGVzIGNoYW5nZWQsIDMzNDAgaW5zZXJ0aW9ucygrKSwgMTE3IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4IDgzODU5YmFjNzZmLi5jZjdhYTUxMzY0MSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC0xMjc2LDcgKzEyNzYsOSBAQCBXSVRIICgg TU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9y ZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAgPC9wYXJhPgogCiAgICAgICAgICA8cGFyYT4KLSAg ICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlvbiBpcyBub3Qgc3Vw cG9ydGVkLgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXksIHRoZSBkZWxldGUv dXBkYXRlIHdpbGwgdXNlCisgICAgICAgICAgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVy YWw+IHNlbWFudGljcyB0byBjb25zdHJhaW4gdGhlCisgICAgICAgICAgZWZmZWN0IHRvIHRoZSBi b3VuZHMgYmVpbmcgZGVsZXRlZC91cGRhdGVkIGluIHRoZSByZWZlcmVuY2VkIHJvdy4KICAgICAg ICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4K QEAgLTEyOTEsNyArMTI5MywxMCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAg PC9wYXJhPgogCiAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVp Z24ga2V5LCB0aGlzIG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAgIEluIGEgdGVt cG9yYWwgZm9yZWlnbiBrZXksIHRoZSBjaGFuZ2Ugd2lsbCB1c2UgPGxpdGVyYWw+Rk9SIFBPUlRJ T04KKyAgICAgICAgICBPRjwvbGl0ZXJhbD4gc2VtYW50aWNzIHRvIGNvbnN0cmFpbiB0aGUgZWZm ZWN0IHRvIHRoZSBib3VuZHMgYmVpbmcKKyAgICAgICAgICBkZWxldGVkL3VwZGF0ZWQgaW4gdGhl IHJlZmVyZW5jZWQgcm93LiBUaGUgY29sdW1uIG1ha2VkIHdpdGgKKyAgICAgICAgICA8bGl0ZXJh bD5QRVJJT0Q8L2xpdGVyYWw+IHdpbGwgbm90IGJlIHNldCB0byBudWxsLgogICAgICAgICAgPC9w YXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMTMw OCw3ICsxMzEzLDEwIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICAgICA8L3BhcmE+ CiAKICAgICAgICAgIDxwYXJhPgotICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXks IHRoaXMgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICAgSW4gYSB0ZW1wb3JhbCBm b3JlaWduIGtleSwgdGhlIGNoYW5nZSB3aWxsIHVzZSA8bGl0ZXJhbD5GT1IgUE9SVElPTgorICAg ICAgICAgIE9GPC9saXRlcmFsPiBzZW1hbnRpY3MgdG8gY29uc3RyYWluIHRoZSBlZmZlY3QgdG8g dGhlIGJvdW5kcyBiZWluZworICAgICAgICAgIGRlbGV0ZWQvdXBkYXRlZCBpbiB0aGUgcmVmZXJl bmNlZCByb3cuIFRoZSBjb2x1bW4gbWFya2VkIHdpdGgKKyAgICAgICAgICA8bGl0ZXJhbD5QRVJJ T0Q8L2xpdGVyYWw+IHdpdGggbm90IGJlIHNldCB0byBhIGRlZmF1bHQgdmFsdWUuCiAgICAgICAg ICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCmluZGV4IDU0ZjNmYjUwYTU3Li5hMjFiMzRlMjY3 MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKQEAgLTEzNTMsNyArMTM1Myw3IEBA IERlY29uc3RydWN0RmtDb25zdHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3Ms CiB9CiAKIC8qCi0gKiBGaW5kRmtQZXJpb2RPcGVycyAtCisgKiBGaW5kRmtQZXJpb2RPcGVyc0Fu ZFByb2NzIC0KICAqCiAgKiBMb29rcyB1cCB0aGUgb3BlcmF0b3Igb2lkcyB1c2VkIGZvciB0aGUg UEVSSU9EIHBhcnQgb2YgYSB0ZW1wb3JhbCBmb3JlaWduIGtleS4KICAqIFRoZSBvcGNsYXNzIHNo b3VsZCBiZSB0aGUgb3BjbGFzcyBvZiB0aGF0IFBFUklPRCBlbGVtZW50LgpAQCAtMTM2MiwxMSAr MTM2MiwxNCBAQCBEZWNvbnN0cnVjdEZrQ29uc3RyYWludFJvdyhIZWFwVHVwbGUgdHVwbGUsIGlu dCAqbnVtZmtzLAogICogYWdnZWRjb250YWluZWRieW9wZXJvaWQgaXMgYWxzbyBhIENvbnRhaW5l ZEJ5IG9wZXJhdG9yLAogICogYnV0IG9uZSB3aG9zZSByaHMgaXMgYSBtdWx0aXJhbmdlLgogICog VGhhdCB3YXkgZm9yZWlnbiBrZXlzIGNhbiBjb21wYXJlIGZrYXR0ciA8QCByYW5nZV9hZ2cocGth dHRyKS4KKyAqIGludGVyc2VjdHByb2NvaWQgaXMgdXNlZCB0byBsaW1pdCB0aGUgZWZmZWN0IG9m IENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFVTFQKKyAqIHdoZW4gdGhlIFBLIHJlY29yZCBpcyBj aGFuZ2VkIHdpdGggRk9SIFBPUlRJT04gT0YuCiAgKi8KIHZvaWQKLUZpbmRGS1BlcmlvZE9wZXJz KE9pZCBvcGNsYXNzLAotCQkJCSAgT2lkICpjb250YWluZWRieW9wZXJvaWQsCi0JCQkJICBPaWQg KmFnZ2VkY29udGFpbmVkYnlvcGVyb2lkKQorRmluZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhPaWQg b3BjbGFzcywKKwkJCQkJCSAgT2lkICpjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkgIE9pZCAq YWdnZWRjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkgIE9pZCAqaW50ZXJzZWN0cHJvY29pZCkK IHsKIAlPaWQJCQlvcGZhbWlseSA9IEludmFsaWRPaWQ7CiAJT2lkCQkJb3BjaW50eXBlID0gSW52 YWxpZE9pZDsKQEAgLTE0MDcsNiArMTQxMCwxNSBAQCBGaW5kRktQZXJpb2RPcGVycyhPaWQgb3Bj bGFzcywKIAkJCQkJCQkJCSBBTllNVUxUSVJBTkdFT0lELAogCQkJCQkJCQkJIGFnZ2VkY29udGFp bmVkYnlvcGVyb2lkLAogCQkJCQkJCQkJICZzdHJhdCk7CisKKwkvKgorCSAqIElmIHRoZSBjb21t YW5kIHVzZXMgRk9SIFBPUlRJT04gT0YsCisJICogd2Ugd2lsbCBhbHNvIG5lZWQgYW4gaW50ZXJz ZWN0IHN1cHBvcnQgcHJvYy4KKwkgKiBJZiB0aGlzIGlzIG1pc3Npbmcgd2UgZG9uJ3QgbmVlZCB0 byBjb21wbGFpbiBoZXJlLAorCSAqIGJlY2F1c2UgRk9SIFBPUlRJT04gT0Ygd2lsbCBub3QgYmUg YWxsb3dlZC4KKwkgKi8KKwlpZiAob3BmYW1pbHkgIT0gSW52YWxpZE9pZCAmJiBvcGNpbnR5cGUg IT0gSW52YWxpZE9pZCkKKwkJKmludGVyc2VjdHByb2NvaWQgPSBnZXRfb3BmYW1pbHlfcHJvYyhv cGZhbWlseSwgb3BjaW50eXBlLCBvcGNpbnR5cGUsIEdJU1RfSU5URVJTRUNUX1BST0MpOwogfQog CiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBhNTA3ZTljZDQ0Yy4uNWNlYTNhNDlk MzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC01MTYsNyArNTE2LDcgQEAgc3RhdGlj IE9iamVjdEFkZHJlc3MgYWRkRmtSZWN1cnNlUmVmZXJlbmNlZChMaXN0ICoqd3F1ZXVlLCBDb25z dHJhaW50ICpma2NvbnN0cmEKIAkJCQkJCQkJCQkJYm9vbCBvbGRfY2hlY2tfb2ssCiAJCQkJCQkJ CQkJCU9pZCBwYXJlbnREZWxUcmlnZ2VyLCBPaWQgcGFyZW50VXBkVHJpZ2dlciwKIAkJCQkJCQkJ CQkJYm9vbCB3aXRoX3BlcmlvZCk7Ci1zdGF0aWMgdm9pZCB2YWxpZGF0ZUZrT25EZWxldGVTZXRD b2x1bW5zKGludCBudW1ma3MsIGNvbnN0IGludDE2ICpma2F0dG51bXMsCitzdGF0aWMgdm9pZCB2 YWxpZGF0ZUZrT25EZWxldGVTZXRDb2x1bW5zKGludCBudW1ma3MsIGNvbnN0IGludDE2ICpma2F0 dG51bXMsIGNvbnN0IGludDE2IGZrcGVyaW9kYXR0bnVtLAogCQkJCQkJCQkJCSBpbnQgbnVtZmtz ZXRjb2xzLCBjb25zdCBpbnQxNiAqZmtzZXRjb2xzYXR0bnVtcywKIAkJCQkJCQkJCQkgTGlzdCAq ZmtzZXRjb2xzKTsKIHN0YXRpYyB2b2lkIGFkZEZrUmVjdXJzZVJlZmVyZW5jaW5nKExpc3QgKip3 cXVldWUsIENvbnN0cmFpbnQgKmZrY29uc3RyYWludCwKQEAgLTk1NzcsNiArOTU3Nyw3IEBAIEFU QWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAq dGFiLCBSZWxhdGlvbiByZWwsCiAJaW50MTYJCWZrZGVsc2V0Y29sc1tJTkRFWF9NQVhfS0VZU10g PSB7MH07CiAJYm9vbAkJd2l0aF9wZXJpb2Q7CiAJYm9vbAkJcGtfaGFzX3dpdGhvdXRfb3Zlcmxh cHM7CisJaW50MTYJCWZrcGVyaW9kYXR0bnVtID0gSW52YWxpZEF0dHJOdW1iZXI7CiAJaW50CQkJ aTsKIAlpbnQJCQludW1ma3MsCiAJCQkJbnVtcGtzLApAQCAtOTY3MiwxNSArOTY3MywxOSBAQCBB VEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8g KnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCQkJCQkJIGZrY29uc3RyYWludC0+ZmtfYXR0cnMsCiAJ CQkJCQkJCQkgZmthdHRudW0sIGZrdHlwb2lkKTsKIAl3aXRoX3BlcmlvZCA9IGZrY29uc3RyYWlu dC0+Zmtfd2l0aF9wZXJpb2QgfHwgZmtjb25zdHJhaW50LT5wa193aXRoX3BlcmlvZDsKLQlpZiAo d2l0aF9wZXJpb2QgJiYgIWZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCi0JCWVyZXBvcnQo RVJST1IsCi0JCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkpLAotCQkJCWVy cm1zZygiZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0 IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUiKSk7CisJaWYgKHdpdGhfcGVyaW9kKQorCXsKKwkJ aWYgKCFma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX0ZPUkVJR05fS0VZKSwKKwkJCQkJZXJybXNnKCJm b3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRo ZSByZWZlcmVuY2luZyB0YWJsZSIpKSk7CisJCWZrcGVyaW9kYXR0bnVtID0gZmthdHRudW1bbnVt ZmtzIC0gMV07CisJfQogCiAJbnVtZmtkZWxzZXRjb2xzID0gdHJhbnNmb3JtQ29sdW1uTmFtZUxp c3QoUmVsYXRpb25HZXRSZWxpZChyZWwpLAogCQkJCQkJCQkJCQkgIGZrY29uc3RyYWludC0+Zmtf ZGVsX3NldF9jb2xzLAogCQkJCQkJCQkJCQkgIGZrZGVsc2V0Y29scywgTlVMTCk7Ci0JdmFsaWRh dGVGa09uRGVsZXRlU2V0Q29sdW1ucyhudW1ma3MsIGZrYXR0bnVtLAorCXZhbGlkYXRlRmtPbkRl bGV0ZVNldENvbHVtbnMobnVtZmtzLCBma2F0dG51bSwgZmtwZXJpb2RhdHRudW0sCiAJCQkJCQkJ CSBudW1ma2RlbHNldGNvbHMsIGZrZGVsc2V0Y29scywKIAkJCQkJCQkJIGZrY29uc3RyYWludC0+ ZmtfZGVsX3NldF9jb2xzKTsKIApAQCAtOTc2MiwyOCArOTc2Nyw2IEBAIEFUQWRkRm9yZWlnbktl eUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlv biByZWwsCiAJCX0KIAl9CiAKLQkvKgotCSAqIFNvbWUgYWN0aW9ucyBhcmUgY3VycmVudGx5IHVu c3VwcG9ydGVkIGZvciBmb3JlaWduIGtleXMgdXNpbmcgUEVSSU9ELgotCSAqLwotCWlmIChma2Nv bnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQotCXsKLQkJaWYgKGZrY29uc3RyYWludC0+ZmtfdXBk X2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fQ0FTQ0FERSB8fAotCQkJZmtjb25zdHJhaW50LT5m a191cGRfYWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9TRVROVUxMIHx8Ci0JCQlma2NvbnN0cmFp bnQtPmZrX3VwZF9hY3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX1NFVERFRkFVTFQpCi0JCQllcmVw b3J0KEVSUk9SLAotCQkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwK LQkJCQkJZXJybXNnKCJ1bnN1cHBvcnRlZCAlcyBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgdXNpbmcgUEVSSU9EIiwKLQkJCQkJCSAgICJPTiBVUERBVEUiKSk7Ci0KLQkJaWYgKGZr Y29uc3RyYWludC0+ZmtfZGVsX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fQ0FTQ0FERSB8fAot CQkJZmtjb25zdHJhaW50LT5ma19kZWxfYWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9TRVROVUxM IHx8Ci0JCQlma2NvbnN0cmFpbnQtPmZrX2RlbF9hY3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX1NF VERFRkFVTFQpCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJZXJybXNnKCJ1bnN1cHBvcnRlZCAlcyBhY3Rpb24gZm9y IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9EIiwKLQkJCQkJCSAgICJPTiBERUxF VEUiKSk7Ci0JfQotCiAJLyoKIAkgKiBMb29rIHVwIHRoZSBlcXVhbGl0eSBvcGVyYXRvcnMgdG8g dXNlIGluIHRoZSBjb25zdHJhaW50LgogCSAqCkBAIC0xMDA0MSw4ICsxMDAyNCwxMiBAQCBBVEFk ZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRh YiwgUmVsYXRpb24gcmVsLAogCXsKIAkJT2lkCQkJcGVyaW9kb3Blcm9pZDsKIAkJT2lkCQkJYWdn ZWRwZXJpb2RvcGVyb2lkOworCQlPaWQJCQlpbnRlcnNlY3Rwcm9jb2lkOwogCi0JCUZpbmRGS1Bl cmlvZE9wZXJzKG9wY2xhc3Nlc1tudW1wa3MgLSAxXSwgJnBlcmlvZG9wZXJvaWQsICZhZ2dlZHBl cmlvZG9wZXJvaWQpOworCQlGaW5kRktQZXJpb2RPcGVyc0FuZFByb2NzKG9wY2xhc3Nlc1tudW1w a3MgLSAxXSwKKwkJCQkJCQkJICAmcGVyaW9kb3Blcm9pZCwKKwkJCQkJCQkJICAmYWdnZWRwZXJp b2RvcGVyb2lkLAorCQkJCQkJCQkgICZpbnRlcnNlY3Rwcm9jb2lkKTsKIAl9CiAKIAkvKgpAQCAt MTAwOTYsNiArMTAwODMsNyBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVl dWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogICovCiB2b2lkCiB2YWxp ZGF0ZUZrT25EZWxldGVTZXRDb2x1bW5zKGludCBudW1ma3MsIGNvbnN0IGludDE2ICpma2F0dG51 bXMsCisJCQkJCQkJIGNvbnN0IGludDE2IGZrcGVyaW9kYXR0bnVtLAogCQkJCQkJCSBpbnQgbnVt ZmtzZXRjb2xzLCBjb25zdCBpbnQxNiAqZmtzZXRjb2xzYXR0bnVtcywKIAkJCQkJCQkgTGlzdCAq ZmtzZXRjb2xzKQogewpAQCAtMTAxMDYsNiArMTAwOTQsMTMgQEAgdmFsaWRhdGVGa09uRGVsZXRl U2V0Q29sdW1ucyhpbnQgbnVtZmtzLCBjb25zdCBpbnQxNiAqZmthdHRudW1zLAogCiAJCWZvciAo aW50IGogPSAwOyBqIDwgbnVtZmtzOyBqKyspCiAJCXsKKwkJCWlmIChma3BlcmlvZGF0dG51bSA9 PSBzZXRjb2xfYXR0bnVtKQorCQkJeworCQkJCWNoYXIJICAgKmNvbCA9IHN0clZhbChsaXN0X250 aChma3NldGNvbHMsIGkpKTsKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX0NPTFVNTl9SRUZFUkVOQ0UpLAorCQkJCQkJIGVycm1zZygiY29sdW1uIFwi JXNcIiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0Qi LCBjb2wpKSk7CisJCQl9CiAJCQlpZiAoZmthdHRudW1zW2pdID09IHNldGNvbF9hdHRudW0pCiAJ CQl7CiAJCQkJc2VlbiA9IHRydWU7CkBAIC0xMjQ1MSwxNyArMTI0NDYsMjYgQEAgY3JlYXRlRm9y ZWlnbktleUFjdGlvblRyaWdnZXJzKFJlbGF0aW9uIHJlbCwgT2lkIHJlZlJlbE9pZCwgQ29uc3Ry YWludCAqZmtjb25zdHIKIAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05fQ0FTQ0FERToKIAkJCWZrX3Ry aWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsKIAkJCWZrX3RyaWdnZXItPmluaXRkZWZlcnJlZCA9 IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktl eV9jYXNjYWRlX2RlbCIpOworCQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJ CQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2Rf Y2FzY2FkZV9kZWwiKTsKKwkJCWVsc2UKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3Rl bUZ1bmNOYW1lKCJSSV9GS2V5X2Nhc2NhZGVfZGVsIik7CiAJCQlicmVhazsKIAkJY2FzZSBGS0NP TlNUUl9BQ1RJT05fU0VUTlVMTDoKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsK IAkJCWZrX3RyaWdnZXItPmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ZnVu Y25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRudWxsX2RlbCIpOworCQkJaWYgKGZr Y29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBT eXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwiKTsKKwkJCWVsc2UKKwkJ CQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldG51bGxf ZGVsIik7CiAJCQlicmVhazsKIAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05fU0VUREVGQVVMVDoKIAkJ CWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsKIAkJCWZrX3RyaWdnZXItPmluaXRkZWZl cnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgi UklfRktleV9zZXRkZWZhdWx0X2RlbCIpOworCQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0aF9w ZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktl eV9wZXJpb2Rfc2V0ZGVmYXVsdF9kZWwiKTsKKwkJCWVsc2UKKwkJCQlma190cmlnZ2VyLT5mdW5j bmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldGRlZmF1bHRfZGVsIik7CiAJCQlicmVh azsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgRksgYWN0aW9uIHR5 cGU6ICVkIiwKQEAgLTEyNTEyLDE3ICsxMjUxNiwyNiBAQCBjcmVhdGVGb3JlaWduS2V5QWN0aW9u VHJpZ2dlcnMoUmVsYXRpb24gcmVsLCBPaWQgcmVmUmVsT2lkLCBDb25zdHJhaW50ICpma2NvbnN0 cgogCQljYXNlIEZLQ09OU1RSX0FDVElPTl9DQVNDQURFOgogCQkJZmtfdHJpZ2dlci0+ZGVmZXJy YWJsZSA9IGZhbHNlOwogCQkJZmtfdHJpZ2dlci0+aW5pdGRlZmVycmVkID0gZmFsc2U7Ci0JCQlm a190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X2Nhc2NhZGVfdXBk Iik7CisJCQlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJCQlma190cmlnZ2Vy LT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3BlcmlvZF9jYXNjYWRlX3VwZCIp OworCQkJZWxzZQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJ X0ZLZXlfY2FzY2FkZV91cGQiKTsKIAkJCWJyZWFrOwogCQljYXNlIEZLQ09OU1RSX0FDVElPTl9T RVROVUxMOgogCQkJZmtfdHJpZ2dlci0+ZGVmZXJyYWJsZSA9IGZhbHNlOwogCQkJZmtfdHJpZ2dl ci0+aW5pdGRlZmVycmVkID0gZmFsc2U7Ci0JCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3Rl bUZ1bmNOYW1lKCJSSV9GS2V5X3NldG51bGxfdXBkIik7CisJCQlpZiAoZmtjb25zdHJhaW50LT5m a193aXRoX3BlcmlvZCkKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1l KCJSSV9GS2V5X3BlcmlvZF9zZXRudWxsX3VwZCIpOworCQkJZWxzZQorCQkJCWZrX3RyaWdnZXIt PmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfc2V0bnVsbF91cGQiKTsKIAkJCWJy ZWFrOwogCQljYXNlIEZLQ09OU1RSX0FDVElPTl9TRVRERUZBVUxUOgogCQkJZmtfdHJpZ2dlci0+ ZGVmZXJyYWJsZSA9IGZhbHNlOwogCQkJZmtfdHJpZ2dlci0+aW5pdGRlZmVycmVkID0gZmFsc2U7 Ci0JCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldGRl ZmF1bHRfdXBkIik7CisJCQlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJCQlm a190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3BlcmlvZF9zZXRk ZWZhdWx0X3VwZCIpOworCQkJZWxzZQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVt RnVuY05hbWUoIlJJX0ZLZXlfc2V0ZGVmYXVsdF91cGQiKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0 OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBGSyBhY3Rpb24gdHlwZTogJWQiLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwppbmRleCAyOTdmYmE3MWJiNS4uZTRjZDBhYzg1MWYg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCkBAIC04MCw2ICs4MCwxMiBAQAogI2Rl ZmluZSBSSV9QTEFOX1NFVE5VTExfT05VUERBVEUJCTcKICNkZWZpbmUgUklfUExBTl9TRVRERUZB VUxUX09OREVMRVRFCQk4CiAjZGVmaW5lIFJJX1BMQU5fU0VUREVGQVVMVF9PTlVQREFURQkJOQor I2RlZmluZSBSSV9QTEFOX1BFUklPRF9DQVNDQURFX09OREVMRVRFCQkxMAorI2RlZmluZSBSSV9Q TEFOX1BFUklPRF9DQVNDQURFX09OVVBEQVRFCQkxMQorI2RlZmluZSBSSV9QTEFOX1BFUklPRF9T RVROVUxMX09OVVBEQVRFCQkxMgorI2RlZmluZSBSSV9QTEFOX1BFUklPRF9TRVROVUxMX09OREVM RVRFCQkxMworI2RlZmluZSBSSV9QTEFOX1BFUklPRF9TRVRERUZBVUxUX09OVVBEQVRFCTE0Cisj ZGVmaW5lIFJJX1BMQU5fUEVSSU9EX1NFVERFRkFVTFRfT05ERUxFVEUJMTUKIAogI2RlZmluZSBN QVhfUVVPVEVEX05BTUVfTEVOICAoTkFNRURBVEFMRU4qMiszKQogI2RlZmluZSBNQVhfUVVPVEVE X1JFTF9OQU1FX0xFTiAgKE1BWF9RVU9URURfTkFNRV9MRU4qMikKQEAgLTEyOCw3ICsxMzQsOCBA QCB0eXBlZGVmIHN0cnVjdCBSSV9Db25zdHJhaW50SW5mbwogCU9pZAkJCXBwX2VxX29wcnNbUklf TUFYX05VTUtFWVNdOyAvKiBlcXVhbGl0eSBvcGVyYXRvcnMgKFBLID0gUEspICovCiAJT2lkCQkJ ZmZfZXFfb3Byc1tSSV9NQVhfTlVNS0VZU107IC8qIGVxdWFsaXR5IG9wZXJhdG9ycyAoRksgPSBG SykgKi8KIAlPaWQJCQlwZXJpb2RfY29udGFpbmVkX2J5X29wZXI7CS8qIGFueXJhbmdlIDxAIGFu eXJhbmdlICovCi0JT2lkCQkJYWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOyAvKiBma2F0 dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikgKi8KKwlPaWQJCQlhZ2dlZF9wZXJpb2RfY29udGFpbmVk X2J5X29wZXI7CS8qIGZrYXR0ciA8QCByYW5nZV9hZ2cocGthdHRyKSAqLworCU9pZAkJCXBlcmlv ZF9pbnRlcnNlY3RfcHJvYzsJLyogYW55cmFuZ2UgKiBhbnlyYW5nZSAob3IgbXVsdGlyYW5nZSkg Ki8KIAlkbGlzdF9ub2RlCXZhbGlkX2xpbms7CQkvKiBMaW5rIGluIGxpc3Qgb2YgdmFsaWQgZW50 cmllcyAqLwogfSBSSV9Db25zdHJhaW50SW5mbzsKIApAQCAtMTkyLDYgKzE5OSw3IEBAIHN0YXRp YyBib29sIHJpX0NoZWNrX1BrX01hdGNoKFJlbGF0aW9uIHBrX3JlbCwgUmVsYXRpb24gZmtfcmVs LAogCQkJCQkJCSAgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbyk7CiBzdGF0aWMgRGF0 dW0gcmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX25vX2FjdGlvbik7 CiBzdGF0aWMgRGF0dW0gcmlfc2V0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19zZXRf bnVsbCwgaW50IHRna2luZCk7CitzdGF0aWMgRGF0dW0gdHJpX3NldChUcmlnZ2VyRGF0YSAqdHJp Z2RhdGEsIGJvb2wgaXNfc2V0X251bGwsIGludCB0Z2tpbmQpOwogc3RhdGljIHZvaWQgcXVvdGVP bmVOYW1lKGNoYXIgKmJ1ZmZlciwgY29uc3QgY2hhciAqbmFtZSk7CiBzdGF0aWMgdm9pZCBxdW90 ZVJlbGF0aW9uTmFtZShjaGFyICpidWZmZXIsIFJlbGF0aW9uIHJlbCk7CiBzdGF0aWMgdm9pZCBy aV9HZW5lcmF0ZVF1YWwoU3RyaW5nSW5mbyBidWYsCkBAIC0yMzksNyArMjQ3LDcgQEAgc3RhdGlj IHZvaWQgcmlfUmVwb3J0VmlvbGF0aW9uKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8s CiAJCQkJCQkJICAgaW50IHF1ZXJ5bm8sIGJvb2wgcGFydGdvbmUpIHBnX2F0dHJpYnV0ZV9ub3Jl dHVybigpOwogc3RhdGljIGJvb2wgZnBvX3RhcmdldHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlv bk9mU3RhdGUgKnRnX3RlbXBvcmFsLAogCQkJCQkJCQkgY29uc3QgUklfQ29uc3RyYWludEluZm8g KnJpaW5mbyk7Ci1zdGF0aWMgRGF0dW0gcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKGNvbnN0IEZv clBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwKK3N0YXRpYyBEYXR1bSByZXN0cmljdF9jYXNj YWRpbmdfcmFuZ2UoUmVsYXRpb24gcmVsLCBjb25zdCBGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVt cG9yYWwsCiAJCQkJCQkJCQkgIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCQkJ CQkJCQkgIFR1cGxlVGFibGVTbG90ICpvbGRzbG90KTsKIApAQCAtODE0LDcgKzgyMiw3IEBAIHJp X3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pCiAJaWYg KHRyaWdkYXRhLT50Z190ZW1wb3JhbCkKIAl7CiAJCXRhcmdldFJhbmdlUGFyYW0gPSByaWluZm8t Pm5rZXlzIC0gMTsKLQkJdGFyZ2V0UmFuZ2UgPSByZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UodHJp Z2RhdGEtPnRnX3RlbXBvcmFsLCByaWluZm8sIG9sZHNsb3QpOworCQl0YXJnZXRSYW5nZSA9IHJl c3RyaWN0X2Nhc2NhZGluZ19yYW5nZShwa19yZWwsIHRyaWdkYXRhLT50Z190ZW1wb3JhbCwgcmlp bmZvLCBvbGRzbG90KTsKIAl9CiAKIAlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBs YW4sCkBAIC0xMzEwLDYgKzEzMTgsNTM1IEBAIHJpX3NldChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEs IGJvb2wgaXNfc2V0X251bGwsIGludCB0Z2tpbmQpCiB9CiAKIAorLyoKKyAqIFJJX0ZLZXlfcGVy aW9kX2Nhc2NhZGVfZGVsIC0KKyAqCisgKiBDYXNjYWRlZCBkZWxldGUgZm9yZWlnbiBrZXkgcmVm ZXJlbmNlcyBhdCBkZWxldGUgZXZlbnQgb24gdGVtcG9yYWwgUEsgdGFibGUuCisgKi8KK0RhdHVt CitSSV9GS2V5X3BlcmlvZF9jYXNjYWRlX2RlbChQR19GVU5DVElPTl9BUkdTKQoreworCVRyaWdn ZXJEYXRhICp0cmlnZGF0YSA9IChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQ7CisJY29u c3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbzsKKwlSZWxhdGlvbglma19yZWw7CisJUmVsYXRp b24JcGtfcmVsOworCVR1cGxlVGFibGVTbG90ICpvbGRzbG90OworCVJJX1F1ZXJ5S2V5IHFrZXk7 CisJU1BJUGxhblB0ciAgcXBsYW47CisJRGF0dW0gdGFyZ2V0UmFuZ2U7CisKKwkvKiBDaGVjayB0 aGF0IHRoaXMgaXMgYSB2YWxpZCB0cmlnZ2VyIGNhbGwgb24gdGhlIHJpZ2h0IHRpbWUgYW5kIGV2 ZW50LiAqLworCXJpX0NoZWNrVHJpZ2dlcihmY2luZm8sICJSSV9GS2V5X3BlcmlvZF9jYXNjYWRl X2RlbCIsIFJJX1RSSUdUWVBFX0RFTEVURSk7CisKKwlyaWluZm8gPSByaV9GZXRjaENvbnN0cmFp bnRJbmZvKHRyaWdkYXRhLT50Z190cmlnZ2VyLAorCQkJCQkJCQkJdHJpZ2RhdGEtPnRnX3JlbGF0 aW9uLCB0cnVlKTsKKworCS8qCisJICogR2V0IHRoZSByZWxhdGlvbiBkZXNjcmlwdG9ycyBvZiB0 aGUgRksgYW5kIFBLIHRhYmxlcyBhbmQgdGhlIG9sZCB0dXBsZS4KKwkgKgorCSAqIGZrX3JlbCBp cyBvcGVuZWQgaW4gUm93RXhjbHVzaXZlTG9jayBtb2RlIHNpbmNlIHRoYXQncyB3aGF0IG91cgor CSAqIGV2ZW50dWFsIERFTEVURSB3aWxsIGdldCBvbiBpdC4KKwkgKi8KKwlma19yZWwgPSB0YWJs ZV9vcGVuKHJpaW5mby0+ZmtfcmVsaWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCXBrX3JlbCA9IHRy aWdkYXRhLT50Z19yZWxhdGlvbjsKKwlvbGRzbG90ID0gdHJpZ2RhdGEtPnRnX3RyaWdzbG90Owor CisJLyoKKwkgKiBEb24ndCBkZWxldGUgdGhhbiBtb3JlIHRoYW4gdGhlIFBLJ3MgZHVyYXRpb24s CisJICogdHJpbW1lZCBieSBhbiBvcmlnaW5hbCBGT1IgUE9SVElPTiBPRiBpZiBuZWNlc3Nhcnku CisJICovCisJdGFyZ2V0UmFuZ2UgPSByZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UocGtfcmVsLCB0 cmlnZGF0YS0+dGdfdGVtcG9yYWwsIHJpaW5mbywgb2xkc2xvdCk7CisKKwlpZiAoU1BJX2Nvbm5l Y3QoKSAhPSBTUElfT0tfQ09OTkVDVCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9jb25uZWN0IGZhaWxl ZCIpOworCisJLyogRmV0Y2ggb3IgcHJlcGFyZSBhIHNhdmVkIHBsYW4gZm9yIHRoZSBjYXNjYWRl ZCBkZWxldGUgKi8KKwlyaV9CdWlsZFF1ZXJ5S2V5KCZxa2V5LCByaWluZm8sIFJJX1BMQU5fUEVS SU9EX0NBU0NBREVfT05ERUxFVEUpOworCisJaWYgKChxcGxhbiA9IHJpX0ZldGNoUHJlcGFyZWRQ bGFuKCZxa2V5KSkgPT0gTlVMTCkKKwl7CisJCVN0cmluZ0luZm9EYXRhIHF1ZXJ5YnVmOworCQlj aGFyCQlma3JlbG5hbWVbTUFYX1FVT1RFRF9SRUxfTkFNRV9MRU5dOworCQljaGFyCQlhdHRuYW1l W01BWF9RVU9URURfTkFNRV9MRU5dOworCQljaGFyCQlwYXJhbW5hbWVbMTZdOworCQljb25zdCBj aGFyICpxdWVyeXNlcDsKKwkJT2lkCQkJcXVlcnlvaWRzW1JJX01BWF9OVU1LRVlTICsgMV07CisJ CWNvbnN0IGNoYXIgKmZrX29ubHk7CisKKwkJLyogLS0tLS0tLS0tLQorCQkgKiBUaGUgcXVlcnkg c3RyaW5nIGJ1aWx0IGlzCisJCSAqICBERUxFVEUgRlJPTSBbT05MWV0gPGZrdGFibGU+CisJCSAq ICBGT1IgUE9SVElPTiBPRiAkZmthdHQgKCR7bisxfSkKKwkJICogIFdIRVJFICQxID0gZmthdHQx IFtBTkQgLi4uXQorCQkgKiBUaGUgdHlwZSBpZCdzIGZvciB0aGUgJCBwYXJhbWV0ZXJzIGFyZSB0 aG9zZSBvZiB0aGUKKwkJICogY29ycmVzcG9uZGluZyBQSyBhdHRyaWJ1dGVzLgorCQkgKiAtLS0t LS0tLS0tCisJCSAqLworCQlpbml0U3RyaW5nSW5mbygmcXVlcnlidWYpOworCQlma19vbmx5ID0g ZmtfcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSA/CisJ CQkiIiA6ICJPTkxZICI7CisJCXF1b3RlUmVsYXRpb25OYW1lKGZrcmVsbmFtZSwgZmtfcmVsKTsK KwkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsIFJJQXR0TmFtZShma19yZWwsIHJpaW5mby0+ZmtfYXR0 bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pKTsKKworCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1 ZiwgIkRFTEVURSBGUk9NICVzJXMgRk9SIFBPUlRJT04gT0YgJXMgKCQlZCkiLAorCQkJCQkJIGZr X29ubHksIGZrcmVsbmFtZSwgYXR0bmFtZSwgcmlpbmZvLT5ua2V5cyArIDEpOworCQlxdWVyeXNl cCA9ICJXSEVSRSI7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgcmlpbmZvLT5ua2V5czsgaSsrKQor CQl7CisJCQlPaWQgcGtfdHlwZSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVt c1tpXSk7CisJCQlPaWQgcGtfY29sbCA9IFJJQXR0Q29sbGF0aW9uKHBrX3JlbCwgcmlpbmZvLT5w a19hdHRudW1zW2ldKTsKKwkJCU9pZCBma190eXBlID0gUklBdHRUeXBlKGZrX3JlbCwgcmlpbmZv LT5ma19hdHRudW1zW2ldKTsKKwkJCU9pZCBma19jb2xsID0gUklBdHRDb2xsYXRpb24oZmtfcmVs LCByaWluZm8tPmZrX2F0dG51bXNbaV0pOworCisJCQlxdW90ZU9uZU5hbWUoYXR0bmFtZSwKKwkJ CQkJCSBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbaV0pKTsKKwkJCXNwcmlu dGYocGFyYW1uYW1lLCAiJCVkIiwgaSArIDEpOworCQkJcmlfR2VuZXJhdGVRdWFsKCZxdWVyeWJ1 ZiwgcXVlcnlzZXAsCisJCQkJCQkJcGFyYW1uYW1lLCBwa190eXBlLAorCQkJCQkJCXJpaW5mby0+ cGZfZXFfb3Byc1tpXSwKKwkJCQkJCQlhdHRuYW1lLCBma190eXBlKTsKKwkJCWlmIChwa19jb2xs ICE9IGZrX2NvbGwgJiYgIWdldF9jb2xsYXRpb25faXNkZXRlcm1pbmlzdGljKHBrX2NvbGwpKQor CQkJCXJpX0dlbmVyYXRlUXVhbENvbGxhdGlvbigmcXVlcnlidWYsIHBrX2NvbGwpOworCQkJcXVl cnlzZXAgPSAiQU5EIjsKKwkJCXF1ZXJ5b2lkc1tpXSA9IHBrX3R5cGU7CisJCX0KKworCQkvKiBT ZXQgYSBwYXJhbSBmb3IgRk9SIFBPUlRJT04gT0YgVE8vRlJPTSAqLworCQlxdWVyeW9pZHNbcmlp bmZvLT5ua2V5c10gPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZv LT5ua2V5cyAtIDFdKTsKKworCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRoZSBwbGFuICovCisJCXFw bGFuID0gcmlfUGxhbkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIHJpaW5mby0+bmtleXMgKyAxLCBxdWVy eW9pZHMsCisJCQkJCQkJICZxa2V5LCBma19yZWwsIHBrX3JlbCk7CisJfQorCisJLyoKKwkgKiBX ZSBoYXZlIGEgcGxhbiBub3cuIEJ1aWxkIHVwIHRoZSBhcmd1bWVudHMgZnJvbSB0aGUga2V5IHZh bHVlcyBpbiB0aGUKKwkgKiBkZWxldGVkIFBLIHR1cGxlIGFuZCBkZWxldGUgdGhlIHJlZmVyZW5j aW5nIHJvd3MKKwkgKi8KKwlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCisJ CQkJCWZrX3JlbCwgcGtfcmVsLAorCQkJCQlvbGRzbG90LCBOVUxMLAorCQkJCQlyaWluZm8tPm5r ZXlzLCB0YXJnZXRSYW5nZSwKKwkJCQkJdHJ1ZSwJICAgLyogbXVzdCBkZXRlY3QgbmV3IHJvd3Mg Ki8KKwkJCQkJU1BJX09LX0RFTEVURSk7CisKKwlpZiAoU1BJX2ZpbmlzaCgpICE9IFNQSV9PS19G SU5JU0gpCisJCWVsb2coRVJST1IsICJTUElfZmluaXNoIGZhaWxlZCIpOworCisJdGFibGVfY2xv c2UoZmtfcmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXJldHVybiBQb2ludGVyR2V0RGF0dW0o TlVMTCk7Cit9CisKKy8qCisgKiBSSV9GS2V5X3BlcmlvZF9jYXNjYWRlX3VwZCAtCisgKgorICog Q2FzY2FkZWQgdXBkYXRlIGZvcmVpZ24ga2V5IHJlZmVyZW5jZXMgYXQgdXBkYXRlIGV2ZW50IG9u IHRlbXBvcmFsIFBLIHRhYmxlLgorICovCitEYXR1bQorUklfRktleV9wZXJpb2RfY2FzY2FkZV91 cGQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEgPSAoVHJpZ2dl ckRhdGEgKikgZmNpbmZvLT5jb250ZXh0OworCWNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWlu Zm87CisJUmVsYXRpb24JZmtfcmVsOworCVJlbGF0aW9uCXBrX3JlbDsKKwlUdXBsZVRhYmxlU2xv dCAqb2xkc2xvdDsKKwlUdXBsZVRhYmxlU2xvdCAqbmV3c2xvdDsKKwlSSV9RdWVyeUtleSBxa2V5 OworCVNQSVBsYW5QdHIgIHFwbGFuOworCURhdHVtIHRhcmdldFJhbmdlOworCisJLyogQ2hlY2sg dGhhdCB0aGlzIGlzIGEgdmFsaWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBl dmVudC4gKi8KKwlyaV9DaGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2RfY2FzY2Fk ZV91cGQiLCBSSV9UUklHVFlQRV9VUERBVEUpOworCisJcmlpbmZvID0gcmlfRmV0Y2hDb25zdHJh aW50SW5mbyh0cmlnZGF0YS0+dGdfdHJpZ2dlciwKKwkJCQkJCQkJCXRyaWdkYXRhLT50Z19yZWxh dGlvbiwgdHJ1ZSk7CisKKwkvKgorCSAqIEdldCB0aGUgcmVsYXRpb24gZGVzY3JpcHRvcnMgb2Yg dGhlIEZLIGFuZCBQSyB0YWJsZXMgYW5kIHRoZSBuZXcgYW5kCisJICogb2xkIHR1cGxlLgorCSAq CisJICogZmtfcmVsIGlzIG9wZW5lZCBpbiBSb3dFeGNsdXNpdmVMb2NrIG1vZGUgc2luY2UgdGhh dCdzIHdoYXQgb3VyCisJICogZXZlbnR1YWwgVVBEQVRFIHdpbGwgZ2V0IG9uIGl0LgorCSAqLwor CWZrX3JlbCA9IHRhYmxlX29wZW4ocmlpbmZvLT5ma19yZWxpZCwgUm93RXhjbHVzaXZlTG9jayk7 CisJcGtfcmVsID0gdHJpZ2RhdGEtPnRnX3JlbGF0aW9uOworCW5ld3Nsb3QgPSB0cmlnZGF0YS0+ dGdfbmV3c2xvdDsKKwlvbGRzbG90ID0gdHJpZ2RhdGEtPnRnX3RyaWdzbG90OworCisJLyoKKwkg KiBEb24ndCBkZWxldGUgdGhhbiBtb3JlIHRoYW4gdGhlIFBLJ3MgZHVyYXRpb24sCisJICogdHJp bW1lZCBieSBhbiBvcmlnaW5hbCBGT1IgUE9SVElPTiBPRiBpZiBuZWNlc3NhcnkuCisJICovCisJ dGFyZ2V0UmFuZ2UgPSByZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UocGtfcmVsLCB0cmlnZGF0YS0+ dGdfdGVtcG9yYWwsIHJpaW5mbywgb2xkc2xvdCk7CisKKwlpZiAoU1BJX2Nvbm5lY3QoKSAhPSBT UElfT0tfQ09OTkVDVCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9jb25uZWN0IGZhaWxlZCIpOworCisJ LyogRmV0Y2ggb3IgcHJlcGFyZSBhIHNhdmVkIHBsYW4gZm9yIHRoZSBjYXNjYWRlZCB1cGRhdGUg Ki8KKwlyaV9CdWlsZFF1ZXJ5S2V5KCZxa2V5LCByaWluZm8sIFJJX1BMQU5fUEVSSU9EX0NBU0NB REVfT05VUERBVEUpOworCisJaWYgKChxcGxhbiA9IHJpX0ZldGNoUHJlcGFyZWRQbGFuKCZxa2V5 KSkgPT0gTlVMTCkKKwl7CisJCVN0cmluZ0luZm9EYXRhIHF1ZXJ5YnVmOworCQlTdHJpbmdJbmZv RGF0YSBxdWFsYnVmOworCQljaGFyCQlma3JlbG5hbWVbTUFYX1FVT1RFRF9SRUxfTkFNRV9MRU5d OworCQljaGFyCQlhdHRuYW1lW01BWF9RVU9URURfTkFNRV9MRU5dOworCQljaGFyCQlwYXJhbW5h bWVbMTZdOworCQljb25zdCBjaGFyICpxdWVyeXNlcDsKKwkJY29uc3QgY2hhciAqcXVhbHNlcDsK KwkJT2lkCQkgcXVlcnlvaWRzWzIgKiBSSV9NQVhfTlVNS0VZUyArIDFdOworCQljb25zdCBjaGFy ICpma19vbmx5OworCisJCS8qIC0tLS0tLS0tLS0KKwkJICogVGhlIHF1ZXJ5IHN0cmluZyBidWls dCBpcworCQkgKiAgVVBEQVRFIFtPTkxZXSA8Zmt0YWJsZT4KKwkJICoJCSAgRk9SIFBPUlRJT04g T0YgJGZrYXR0ICgkezJuKzF9KQorCQkgKgkJICBTRVQgZmthdHQxID0gJDEsIFssIC4uLl0KKwkJ ICoJCSAgV0hFUkUgJG4gPSBma2F0dDEgW0FORCAuLi5dCisJCSAqIFRoZSB0eXBlIGlkJ3MgZm9y IHRoZSAkIHBhcmFtZXRlcnMgYXJlIHRob3NlIG9mIHRoZQorCQkgKiBjb3JyZXNwb25kaW5nIFBL IGF0dHJpYnV0ZXMuICBOb3RlIHRoYXQgd2UgYXJlIGFzc3VtaW5nCisJCSAqIHRoZXJlIGlzIGFu IGFzc2lnbm1lbnQgY2FzdCBmcm9tIHRoZSBQSyB0byB0aGUgRksgdHlwZTsKKwkJICogZWxzZSB0 aGUgcGFyc2VyIHdpbGwgZmFpbC4KKwkJICogLS0tLS0tLS0tLQorCQkgKi8KKwkJaW5pdFN0cmlu Z0luZm8oJnF1ZXJ5YnVmKTsKKwkJaW5pdFN0cmluZ0luZm8oJnF1YWxidWYpOworCQlma19vbmx5 ID0gZmtfcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSA/ CisJCQkiIiA6ICJPTkxZICI7CisJCXF1b3RlUmVsYXRpb25OYW1lKGZrcmVsbmFtZSwgZmtfcmVs KTsKKwkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsIFJJQXR0TmFtZShma19yZWwsIHJpaW5mby0+Zmtf YXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pKTsKKworCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVy eWJ1ZiwgIlVQREFURSAlcyVzIEZPUiBQT1JUSU9OIE9GICVzICgkJWQpIFNFVCIsCisJCQkJCQkg Zmtfb25seSwgZmtyZWxuYW1lLCBhdHRuYW1lLCAyICogcmlpbmZvLT5ua2V5cyArIDEpOworCisJ CXF1ZXJ5c2VwID0gIiI7CisJCXF1YWxzZXAgPSAiV0hFUkUiOworCQlmb3IgKGludCBpID0gMCwg aiA9IHJpaW5mby0+bmtleXM7IGkgPCByaWluZm8tPm5rZXlzOyBpKyssIGorKykKKwkJeworCQkJ T2lkIHBrX3R5cGUgPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbaV0pOwor CQkJT2lkIHBrX2NvbGwgPSBSSUF0dENvbGxhdGlvbihwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVt c1tpXSk7CisJCQlPaWQgZmtfdHlwZSA9IFJJQXR0VHlwZShma19yZWwsIHJpaW5mby0+ZmtfYXR0 bnVtc1tpXSk7CisJCQlPaWQgZmtfY29sbCA9IFJJQXR0Q29sbGF0aW9uKGZrX3JlbCwgcmlpbmZv LT5ma19hdHRudW1zW2ldKTsKKworCQkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsCisJCQkJCQkgUklB dHROYW1lKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKSk7CisJCQkvKgorCQkJICogRG9u J3Qgc2V0IHRoZSB0ZW1wb3JhbCBjb2x1bW4ocykuCisJCQkgKiBGT1IgUE9SVElPTiBPRiB3aWxs IHRha2UgY2FyZSBvZiB0aGF0LgorCQkJICovCisJCQlpZiAoaSA8IHJpaW5mby0+bmtleXMgLSAx KQorCQkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLAorCQkJCQkJCQkgIiVzICVzID0gJCVk IiwKKwkJCQkJCQkJIHF1ZXJ5c2VwLCBhdHRuYW1lLCBpICsgMSk7CisKKwkJCXNwcmludGYocGFy YW1uYW1lLCAiJCVkIiwgaiArIDEpOworCQkJcmlfR2VuZXJhdGVRdWFsKCZxdWFsYnVmLCBxdWFs c2VwLAorCQkJCQkJCXBhcmFtbmFtZSwgcGtfdHlwZSwKKwkJCQkJCQlyaWluZm8tPnBmX2VxX29w cnNbaV0sCisJCQkJCQkJYXR0bmFtZSwgZmtfdHlwZSk7CisJCQlpZiAocGtfY29sbCAhPSBma19j b2xsICYmICFnZXRfY29sbGF0aW9uX2lzZGV0ZXJtaW5pc3RpYyhwa19jb2xsKSkKKwkJCQlyaV9H ZW5lcmF0ZVF1YWxDb2xsYXRpb24oJnF1ZXJ5YnVmLCBwa19jb2xsKTsKKwkJCXF1ZXJ5c2VwID0g IiwiOworCQkJcXVhbHNlcCA9ICJBTkQiOworCQkJcXVlcnlvaWRzW2ldID0gcGtfdHlwZTsKKwkJ CXF1ZXJ5b2lkc1tqXSA9IHBrX3R5cGU7CisJCX0KKwkJYXBwZW5kQmluYXJ5U3RyaW5nSW5mbygm cXVlcnlidWYsIHF1YWxidWYuZGF0YSwgcXVhbGJ1Zi5sZW4pOworCisJCS8qIFNldCBhIHBhcmFt IGZvciBGT1IgUE9SVElPTiBPRiBUTy9GUk9NICovCisJCXF1ZXJ5b2lkc1syICogcmlpbmZvLT5u a2V5c10gPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5ua2V5 cyAtIDFdKTsKKworCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRoZSBwbGFuICovCisJCXFwbGFuID0g cmlfUGxhbkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIDIgKiByaWluZm8tPm5rZXlzICsgMSwgcXVlcnlv aWRzLAorCQkJCQkJCSAmcWtleSwgZmtfcmVsLCBwa19yZWwpOworCX0KKworCS8qCisJICogV2Ug aGF2ZSBhIHBsYW4gbm93LiBSdW4gaXQgdG8gdXBkYXRlIHRoZSBleGlzdGluZyByZWZlcmVuY2Vz LgorCSAqLworCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKKwkJCQkJZmtf cmVsLCBwa19yZWwsCisJCQkJCW9sZHNsb3QsIG5ld3Nsb3QsCisJCQkJCXJpaW5mby0+bmtleXMg KiAyLCB0YXJnZXRSYW5nZSwKKwkJCQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICov CisJCQkJCVNQSV9PS19VUERBVEUpOworCisJaWYgKFNQSV9maW5pc2goKSAhPSBTUElfT0tfRklO SVNIKQorCQllbG9nKEVSUk9SLCAiU1BJX2ZpbmlzaCBmYWlsZWQiKTsKKworCXRhYmxlX2Nsb3Nl KGZrX3JlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gUG9pbnRlckdldERhdHVtKE5V TEwpOworfQorCisvKgorICogUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwgLQorICoKKyAqIFNl dCBmb3JlaWduIGtleSByZWZlcmVuY2VzIHRvIE5VTEwgdmFsdWVzIGF0IGRlbGV0ZSBldmVudCBv biBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVsKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisJLyogQ2hlY2sgdGhhdCB0aGlzIGlzIGEgdmFsaWQgdHJpZ2dlciBj YWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBldmVudC4gKi8KKwlyaV9DaGVja1RyaWdnZXIoZmNp bmZvLCAiUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwiLCBSSV9UUklHVFlQRV9ERUxFVEUpOwor CisJLyogU2hhcmUgY29kZSB3aXRoIFVQREFURSBjYXNlICovCisJcmV0dXJuIHRyaV9zZXQoKFRy aWdnZXJEYXRhICopIGZjaW5mby0+Y29udGV4dCwgdHJ1ZSwgUklfVFJJR1RZUEVfREVMRVRFKTsK K30KKworLyoKKyAqIFJJX0ZLZXlfcGVyaW9kX3NldG51bGxfdXBkIC0KKyAqCisgKiBTZXQgZm9y ZWlnbiBrZXkgcmVmZXJlbmNlcyB0byBOVUxMIGF0IHVwZGF0ZSBldmVudCBvbiBQSyB0YWJsZS4K KyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX3NldG51bGxfdXBkKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisJLyogQ2hlY2sgdGhhdCB0aGlzIGlzIGEgdmFsaWQgdHJpZ2dlciBjYWxsIG9uIHRoZSBy aWdodCB0aW1lIGFuZCBldmVudC4gKi8KKwlyaV9DaGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktl eV9wZXJpb2Rfc2V0bnVsbF91cGQiLCBSSV9UUklHVFlQRV9VUERBVEUpOworCisJLyogU2hhcmUg Y29kZSB3aXRoIERFTEVURSBjYXNlICovCisJcmV0dXJuIHRyaV9zZXQoKFRyaWdnZXJEYXRhICop IGZjaW5mby0+Y29udGV4dCwgdHJ1ZSwgUklfVFJJR1RZUEVfVVBEQVRFKTsKK30KKworLyoKKyAq IFJJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsIC0KKyAqCisgKiBTZXQgZm9yZWlnbiBrZXkg cmVmZXJlbmNlcyB0byBkZWZhdWx0cyBhdCBkZWxldGUgZXZlbnQgb24gUEsgdGFibGUuCisgKi8K K0RhdHVtCitSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbChQR19GVU5DVElPTl9BUkdTKQor eworCS8qIENoZWNrIHRoYXQgdGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmln aHQgdGltZSBhbmQgZXZlbnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZLZXlf cGVyaW9kX3NldGRlZmF1bHRfZGVsIiwgUklfVFJJR1RZUEVfREVMRVRFKTsKKworCS8qIFNoYXJl IGNvZGUgd2l0aCBVUERBVEUgY2FzZSAqLworCXJldHVybiB0cmlfc2V0KChUcmlnZ2VyRGF0YSAq KSBmY2luZm8tPmNvbnRleHQsIGZhbHNlLCBSSV9UUklHVFlQRV9ERUxFVEUpOworfQorCisvKgor ICogUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQgLQorICoKKyAqIFNldCBmb3JlaWduIGtl eSByZWZlcmVuY2VzIHRvIGRlZmF1bHRzIGF0IHVwZGF0ZSBldmVudCBvbiBQSyB0YWJsZS4KKyAq LworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfdXBkKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisJLyogQ2hlY2sgdGhhdCB0aGlzIGlzIGEgdmFsaWQgdHJpZ2dlciBjYWxsIG9uIHRoZSBy aWdodCB0aW1lIGFuZCBldmVudC4gKi8KKwlyaV9DaGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktl eV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQiLCBSSV9UUklHVFlQRV9VUERBVEUpOworCisJLyogU2hh cmUgY29kZSB3aXRoIERFTEVURSBjYXNlICovCisJcmV0dXJuIHRyaV9zZXQoKFRyaWdnZXJEYXRh ICopIGZjaW5mby0+Y29udGV4dCwgZmFsc2UsIFJJX1RSSUdUWVBFX1VQREFURSk7Cit9CisKKy8q CisgKiB0cmlfc2V0IC0KKyAqCisgKiBDb21tb24gY29kZSBmb3IgdGVtcG9yYWwgT04gREVMRVRF IFNFVCBOVUxMLCBPTiBERUxFVEUgU0VUIERFRkFVTFQsIE9OCisgKiBVUERBVEUgU0VUIE5VTEws IGFuZCBPTiBVUERBVEUgU0VUIERFRkFVTFQuCisgKi8KK3N0YXRpYyBEYXR1bQordHJpX3NldChU cmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfc2V0X251bGwsIGludCB0Z2tpbmQpCit7CisJ Y29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbzsKKwlSZWxhdGlvbglma19yZWw7CisJUmVs YXRpb24JcGtfcmVsOworCVR1cGxlVGFibGVTbG90ICpvbGRzbG90OworCVJJX1F1ZXJ5S2V5IHFr ZXk7CisJU1BJUGxhblB0cglxcGxhbjsKKwlEYXR1bQkJdGFyZ2V0UmFuZ2U7CisJaW50MzIJCXF1 ZXJ5bm87CisKKwlyaWluZm8gPSByaV9GZXRjaENvbnN0cmFpbnRJbmZvKHRyaWdkYXRhLT50Z190 cmlnZ2VyLAorCQkJCQkJCQkJdHJpZ2RhdGEtPnRnX3JlbGF0aW9uLCB0cnVlKTsKKworCS8qCisJ ICogR2V0IHRoZSByZWxhdGlvbiBkZXNjcmlwdG9ycyBvZiB0aGUgRksgYW5kIFBLIHRhYmxlcyBh bmQgdGhlIG9sZCB0dXBsZS4KKwkgKgorCSAqIGZrX3JlbCBpcyBvcGVuZWQgaW4gUm93RXhjbHVz aXZlTG9jayBtb2RlIHNpbmNlIHRoYXQncyB3aGF0IG91cgorCSAqIGV2ZW50dWFsIFVQREFURSB3 aWxsIGdldCBvbiBpdC4KKwkgKi8KKwlma19yZWwgPSB0YWJsZV9vcGVuKHJpaW5mby0+ZmtfcmVs aWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCXBrX3JlbCA9IHRyaWdkYXRhLT50Z19yZWxhdGlvbjsK KwlvbGRzbG90ID0gdHJpZ2RhdGEtPnRnX3RyaWdzbG90OworCisJLyoKKwkgKiBEb24ndCBTRVQg TlVMTC9ERUZBVUxUIHRoYW4gbW9yZSB0aGFuIHRoZSBQSydzIGR1cmF0aW9uLAorCSAqIHRyaW1t ZWQgYnkgYW4gb3JpZ2luYWwgRk9SIFBPUlRJT04gT0YgaWYgbmVjZXNzYXJ5LgorCSAqLworCXRh cmdldFJhbmdlID0gcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKHBrX3JlbCwgdHJpZ2RhdGEtPnRn X3RlbXBvcmFsLCByaWluZm8sIG9sZHNsb3QpOworCisJaWYgKFNQSV9jb25uZWN0KCkgIT0gU1BJ X09LX0NPTk5FQ1QpCisJCWVsb2coRVJST1IsICJTUElfY29ubmVjdCBmYWlsZWQiKTsKKworCS8q CisJICogRmV0Y2ggb3IgcHJlcGFyZSBhIHNhdmVkIHBsYW4gZm9yIHRoZSB0cmlnZ2VyLgorCSAq LworCXN3aXRjaCAodGdraW5kKQorCXsKKwkJY2FzZSBSSV9UUklHVFlQRV9VUERBVEU6CisJCQlx dWVyeW5vID0gaXNfc2V0X251bGwKKwkJCQk/IFJJX1BMQU5fUEVSSU9EX1NFVE5VTExfT05VUERB VEUKKwkJCQk6IFJJX1BMQU5fUEVSSU9EX1NFVERFRkFVTFRfT05VUERBVEU7CisJCQlicmVhazsK KwkJY2FzZSBSSV9UUklHVFlQRV9ERUxFVEU6CisJCQlxdWVyeW5vID0gaXNfc2V0X251bGwKKwkJ CQk/IFJJX1BMQU5fUEVSSU9EX1NFVE5VTExfT05ERUxFVEUKKwkJCQk6IFJJX1BMQU5fUEVSSU9E X1NFVERFRkFVTFRfT05ERUxFVEU7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVsb2coRVJS T1IsICJpbnZhbGlkIHRna2luZCBwYXNzZWQgdG8gcmlfc2V0Iik7CisJfQorCisJcmlfQnVpbGRR dWVyeUtleSgmcWtleSwgcmlpbmZvLCBxdWVyeW5vKTsKKworCWlmICgocXBsYW4gPSByaV9GZXRj aFByZXBhcmVkUGxhbigmcWtleSkpID09IE5VTEwpCisJeworCQlTdHJpbmdJbmZvRGF0YSBxdWVy eWJ1ZjsKKwkJU3RyaW5nSW5mb0RhdGEgcXVhbGJ1ZjsKKwkJY2hhcgkJZmtyZWxuYW1lW01BWF9R VU9URURfUkVMX05BTUVfTEVOXTsKKwkJY2hhcgkJYXR0bmFtZVtNQVhfUVVPVEVEX05BTUVfTEVO XTsKKwkJY2hhcgkJcGFyYW1uYW1lWzE2XTsKKwkJY29uc3QgY2hhciAqcXVlcnlzZXA7CisJCWNv bnN0IGNoYXIgKnF1YWxzZXA7CisJCU9pZAkJCXF1ZXJ5b2lkc1tSSV9NQVhfTlVNS0VZUyArIDFd OyAvKiArMSBmb3IgRk9SIFBPUlRJT04gT0YgKi8KKwkJY29uc3QgY2hhciAqZmtfb25seTsKKwkJ aW50CQkJbnVtX2NvbHNfdG9fc2V0OworCQljb25zdCBpbnQxNiAqc2V0X2NvbHM7CisKKwkJc3dp dGNoICh0Z2tpbmQpCisJCXsKKwkJCWNhc2UgUklfVFJJR1RZUEVfVVBEQVRFOgorCQkJCS8qIC0x IHNvIHdlIGxldCBGT1IgUE9SVElPTiBPRiBzZXQgdGhlIHJhbmdlLiAqLworCQkJCW51bV9jb2xz X3RvX3NldCA9IHJpaW5mby0+bmtleXMgLSAxOworCQkJCXNldF9jb2xzID0gcmlpbmZvLT5ma19h dHRudW1zOworCQkJCWJyZWFrOworCQkJY2FzZSBSSV9UUklHVFlQRV9ERUxFVEU6CisJCQkJLyoK KwkJCQkgKiBJZiBjb25mZGVsc2V0Y29scyBhcmUgcHJlc2VudCwgdGhlbiB3ZSBvbmx5IHVwZGF0 ZSB0aGUKKwkJCQkgKiBjb2x1bW5zIHNwZWNpZmllZCBpbiB0aGF0IGFycmF5LCBvdGhlcndpc2Ug d2UgdXBkYXRlIGFsbAorCQkJCSAqIHRoZSByZWZlcmVuY2luZyBjb2x1bW5zLgorCQkJCSAqLwor CQkJCWlmIChyaWluZm8tPm5kZWxzZXRjb2xzICE9IDApCisJCQkJeworCQkJCQludW1fY29sc190 b19zZXQgPSByaWluZm8tPm5kZWxzZXRjb2xzOworCQkJCQlzZXRfY29scyA9IHJpaW5mby0+Y29u ZmRlbHNldGNvbHM7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCS8qIC0xIHNvIHdlIGxl dCBGT1IgUE9SVElPTiBPRiBzZXQgdGhlIHJhbmdlLiAqLworCQkJCQludW1fY29sc190b19zZXQg PSByaWluZm8tPm5rZXlzIC0gMTsKKwkJCQkJc2V0X2NvbHMgPSByaWluZm8tPmZrX2F0dG51bXM7 CisJCQkJfQorCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQllbG9nKEVSUk9SLCAiaW52YWxp ZCB0Z2tpbmQgcGFzc2VkIHRvIHJpX3NldCIpOworCQl9CisKKwkJLyogLS0tLS0tLS0tLQorCQkg KiBUaGUgcXVlcnkgc3RyaW5nIGJ1aWx0IGlzCisJCSAqCVVQREFURSBbT05MWV0gPGZrdGFibGU+ CisJCSAqCQkJRk9SIFBPUlRJT04gT0YgJGZrYXR0ICgke24rMX0pCisJCSAqCQkJU0VUIGZrYXR0 MSA9IHtOVUxMfERFRkFVTFR9IFssIC4uLl0KKwkJICoJCQlXSEVSRSAkMSA9IGZrYXR0MSBbQU5E IC4uLl0KKwkJICogVGhlIHR5cGUgaWQncyBmb3IgdGhlICQgcGFyYW1ldGVycyBhcmUgdGhvc2Ug b2YgdGhlCisJCSAqIGNvcnJlc3BvbmRpbmcgUEsgYXR0cmlidXRlcy4KKwkJICogLS0tLS0tLS0t LQorCQkgKi8KKwkJaW5pdFN0cmluZ0luZm8oJnF1ZXJ5YnVmKTsKKwkJaW5pdFN0cmluZ0luZm8o JnF1YWxidWYpOworCQlma19vbmx5ID0gZmtfcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lO RF9QQVJUSVRJT05FRF9UQUJMRSA/CisJCQkiIiA6ICJPTkxZICI7CisJCXF1b3RlUmVsYXRpb25O YW1lKGZrcmVsbmFtZSwgZmtfcmVsKTsKKwkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsIFJJQXR0TmFt ZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pKTsKKworCQlh cHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIlVQREFURSAlcyVzIEZPUiBQT1JUSU9OIE9GICVz ICgkJWQpIFNFVCIsCisJCQkJCQkgZmtfb25seSwgZmtyZWxuYW1lLCBhdHRuYW1lLCByaWluZm8t Pm5rZXlzICsgMSk7CisKKwkJLyoKKwkJICogQWRkIGFzc2lnbm1lbnQgY2xhdXNlcworCQkgKi8K KwkJcXVlcnlzZXAgPSAiIjsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fY29sc190b19zZXQ7 IGkrKykKKwkJeworCQkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsIFJJQXR0TmFtZShma19yZWwsIHNl dF9jb2xzW2ldKSk7CisJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwKKwkJCQkJCQkgIiVz ICVzID0gJXMiLAorCQkJCQkJCSBxdWVyeXNlcCwgYXR0bmFtZSwKKwkJCQkJCQkgaXNfc2V0X251 bGwgPyAiTlVMTCIgOiAiREVGQVVMVCIpOworCQkJcXVlcnlzZXAgPSAiLCI7CisJCX0KKworCQkv KgorCQkgKiBBZGQgV0hFUkUgY2xhdXNlCisJCSAqLworCQlxdWFsc2VwID0gIldIRVJFIjsKKwkJ Zm9yIChpbnQgaSA9IDA7IGkgPCByaWluZm8tPm5rZXlzOyBpKyspCisJCXsKKwkJCU9pZAlwa190 eXBlID0gUklBdHRUeXBlKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW2ldKTsKKwkJCU9pZAlm a190eXBlID0gUklBdHRUeXBlKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKTsKKwkJCU9p ZAlwa19jb2xsID0gUklBdHRDb2xsYXRpb24ocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbaV0p OworCQkJT2lkCWZrX2NvbGwgPSBSSUF0dENvbGxhdGlvbihma19yZWwsIHJpaW5mby0+ZmtfYXR0 bnVtc1tpXSk7CisKKwkJCXF1b3RlT25lTmFtZShhdHRuYW1lLAorCQkJCQkJIFJJQXR0TmFtZShm a19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSkpOworCisJCQlzcHJpbnRmKHBhcmFtbmFtZSwg IiQlZCIsIGkgKyAxKTsKKwkJCXJpX0dlbmVyYXRlUXVhbCgmcXVlcnlidWYsIHF1YWxzZXAsCisJ CQkJCQkJcGFyYW1uYW1lLCBwa190eXBlLAorCQkJCQkJCXJpaW5mby0+cGZfZXFfb3Byc1tpXSwK KwkJCQkJCQlhdHRuYW1lLCBma190eXBlKTsKKwkJCWlmIChwa19jb2xsICE9IGZrX2NvbGwgJiYg IWdldF9jb2xsYXRpb25faXNkZXRlcm1pbmlzdGljKHBrX2NvbGwpKQorCQkJCXJpX0dlbmVyYXRl UXVhbENvbGxhdGlvbigmcXVlcnlidWYsIHBrX2NvbGwpOworCQkJcXVhbHNlcCA9ICJBTkQiOwor CQkJcXVlcnlvaWRzW2ldID0gcGtfdHlwZTsKKwkJfQorCisJCS8qIFNldCBhIHBhcmFtIGZvciBG T1IgUE9SVElPTiBPRiBUTy9GUk9NICovCisJCXF1ZXJ5b2lkc1tyaWluZm8tPm5rZXlzXSA9IFJJ QXR0VHlwZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pOwor CisJCS8qIFByZXBhcmUgYW5kIHNhdmUgdGhlIHBsYW4gKi8KKwkJcXBsYW4gPSByaV9QbGFuQ2hl Y2socXVlcnlidWYuZGF0YSwgcmlpbmZvLT5ua2V5cyArIDEsIHF1ZXJ5b2lkcywKKwkJCQkJCQkg JnFrZXksIGZrX3JlbCwgcGtfcmVsKTsKKwl9CisKKwkvKgorCSAqIFdlIGhhdmUgYSBwbGFuIG5v dy4gUnVuIGl0IHRvIHVwZGF0ZSB0aGUgZXhpc3RpbmcgcmVmZXJlbmNlcy4KKwkgKi8KKwlyaV9Q ZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCisJCQkJCWZrX3JlbCwgcGtfcmVsLAor CQkJCQlvbGRzbG90LCBOVUxMLAorCQkJCQlyaWluZm8tPm5rZXlzLCB0YXJnZXRSYW5nZSwKKwkJ CQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCisJCQkJCVNQSV9PS19VUERBVEUp OworCisJaWYgKFNQSV9maW5pc2goKSAhPSBTUElfT0tfRklOSVNIKQorCQllbG9nKEVSUk9SLCAi U1BJX2ZpbmlzaCBmYWlsZWQiKTsKKworCXRhYmxlX2Nsb3NlKGZrX3JlbCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwlpZiAoaXNfc2V0X251bGwpCisJCXJldHVybiBQb2ludGVyR2V0RGF0dW0oTlVM TCk7CisJZWxzZQorCXsKKwkJLyoKKwkJICogSWYgd2UganVzdCBkZWxldGVkIG9yIHVwZGF0ZWQg dGhlIFBLIHJvdyB3aG9zZSBrZXkgd2FzIGVxdWFsIHRvIHRoZQorCQkgKiBGSyBjb2x1bW5zJyBk ZWZhdWx0IHZhbHVlcywgYW5kIGEgcmVmZXJlbmNpbmcgcm93IGV4aXN0cyBpbiB0aGUgRksKKwkJ ICogdGFibGUsIHdlIHdvdWxkIGhhdmUgdXBkYXRlZCB0aGF0IHJvdyB0byB0aGUgc2FtZSB2YWx1 ZXMgaXQgYWxyZWFkeQorCQkgKiBoYWQgLS0tIGFuZCBSSV9GS2V5X2ZrX3VwZF9jaGVja19yZXF1 aXJlZCB3b3VsZCBoZW5jZSBiZWxpZXZlIG5vCisJCSAqIGNoZWNrIGlzIG5lY2Vzc2FyeS4gIFNv IHdlIG5lZWQgdG8gZG8gYW5vdGhlciBsb29rdXAgbm93IGFuZCBpbgorCQkgKiBjYXNlIGEgcmVm ZXJlbmNlIHN0aWxsIGV4aXN0cywgYWJvcnQgdGhlIG9wZXJhdGlvbi4gIFRoYXQgaXMKKwkJICog YWxyZWFkeSBpbXBsZW1lbnRlZCBpbiB0aGUgTk8gQUNUSU9OIHRyaWdnZXIsIHNvIGp1c3QgcnVu IGl0LiAoVGhpcworCQkgKiByZWNoZWNrIGlzIG9ubHkgbmVlZGVkIGluIHRoZSBTRVQgREVGQVVM VCBjYXNlLCBzaW5jZSBDQVNDQURFIHdvdWxkCisJCSAqIHJlbW92ZSBzdWNoIHJvd3MgaW4gY2Fz ZSBvZiBhIERFTEVURSBvcGVyYXRpb24gb3Igd291bGQgY2hhbmdlIHRoZQorCQkgKiBGSyBrZXkg dmFsdWVzIGluIGNhc2Ugb2YgYW4gVVBEQVRFLCB3aGlsZSBTRVQgTlVMTCBpcyBjZXJ0YWluIHRv CisJCSAqIHJlc3VsdCBpbiByb3dzIHRoYXQgc2F0aXNmeSB0aGUgRksgY29uc3RyYWludC4pCisJ CSAqLworCQlyZXR1cm4gcmlfcmVzdHJpY3QodHJpZ2RhdGEsIHRydWUpOworCX0KK30KKwogLyoK ICAqIFJJX0ZLZXlfcGtfdXBkX2NoZWNrX3JlcXVpcmVkIC0KICAqCkBAIC0yMjgwLDkgKzI4MTcs MTAgQEAgcmlfTG9hZENvbnN0cmFpbnRJbmZvKE9pZCBjb25zdHJhaW50T2lkKQogCXsKIAkJT2lk CQkJb3BjbGFzcyA9IGdldF9pbmRleF9jb2x1bW5fb3BjbGFzcyhjb25Gb3JtLT5jb25pbmRpZCwg cmlpbmZvLT5ua2V5cyk7CiAKLQkJRmluZEZLUGVyaW9kT3BlcnMob3BjbGFzcywKLQkJCQkJCSAg JnJpaW5mby0+cGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyLAotCQkJCQkJICAmcmlpbmZvLT5hZ2dl ZF9wZXJpb2RfY29udGFpbmVkX2J5X29wZXIpOworCQlGaW5kRktQZXJpb2RPcGVyc0FuZFByb2Nz KG9wY2xhc3MsCisJCQkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyLAor CQkJCQkJCQkgICZyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3BlciwKKwkJCQkJ CQkJICAmcmlpbmZvLT5wZXJpb2RfaW50ZXJzZWN0X3Byb2MpOwogCX0KIAogCVJlbGVhc2VTeXND YWNoZSh0dXApOwpAQCAtMjQzNyw4ICsyOTc1LDggQEAgcmlfUGVyZm9ybUNoZWNrKGNvbnN0IFJJ X0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJaW50CQkJc3BpX3Jlc3VsdDsKIAlPaWQJCQlzYXZl X3VzZXJpZDsKIAlpbnQJCQlzYXZlX3NlY19jb250ZXh0OwotCURhdHVtCQl2YWxzW1JJX01BWF9O VU1LRVlTICogMl07Ci0JY2hhcgkJbnVsbHNbUklfTUFYX05VTUtFWVMgKiAyXTsKKwlEYXR1bQkJ dmFsc1tSSV9NQVhfTlVNS0VZUyAqIDIgKyAxXTsKKwljaGFyCQludWxsc1tSSV9NQVhfTlVNS0VZ UyAqIDIgKyAxXTsKIAogCS8qCiAJICogVXNlIHRoZSBxdWVyeSB0eXBlIGNvZGUgdG8gZGV0ZXJt aW5lIHdoZXRoZXIgdGhlIHF1ZXJ5IGlzIHJ1biBhZ2FpbnN0CkBAIC0yNDczLDggKzMwMTEsMTAg QEAgcmlfUGVyZm9ybUNoZWNrKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCXJp X0V4dHJhY3RWYWx1ZXMoc291cmNlX3JlbCwgbmV3c2xvdCwgcmlpbmZvLCBzb3VyY2VfaXNfcGss CiAJCQkJCQkgdmFscywgbnVsbHMpOwogCQlpZiAob2xkc2xvdCkKKwkJewogCQkJcmlfRXh0cmFj dFZhbHVlcyhzb3VyY2VfcmVsLCBvbGRzbG90LCByaWluZm8sIHNvdXJjZV9pc19waywKIAkJCQkJ CQkgdmFscyArIHJpaW5mby0+bmtleXMsIG51bGxzICsgcmlpbmZvLT5ua2V5cyk7CisJCX0KIAl9 CiAJZWxzZQogCXsKQEAgLTMxNTQsNiArMzY5NCwxMiBAQCBSSV9GS2V5X3RyaWdnZXJfdHlwZShP aWQgdGdmb2lkKQogCQljYXNlIEZfUklfRktFWV9TRVRERUZBVUxUX1VQRDoKIAkJY2FzZSBGX1JJ X0ZLRVlfTk9BQ1RJT05fREVMOgogCQljYXNlIEZfUklfRktFWV9OT0FDVElPTl9VUEQ6CisJCWNh c2UgRl9SSV9GS0VZX1BFUklPRF9DQVNDQURFX0RFTDoKKwkJY2FzZSBGX1JJX0ZLRVlfUEVSSU9E X0NBU0NBREVfVVBEOgorCQljYXNlIEZfUklfRktFWV9QRVJJT0RfU0VUTlVMTF9ERUw6CisJCWNh c2UgRl9SSV9GS0VZX1BFUklPRF9TRVROVUxMX1VQRDoKKwkJY2FzZSBGX1JJX0ZLRVlfUEVSSU9E X1NFVERFRkFVTFRfREVMOgorCQljYXNlIEZfUklfRktFWV9QRVJJT0RfU0VUREVGQVVMVF9VUEQ6 CiAJCQlyZXR1cm4gUklfVFJJR0dFUl9QSzsKIAogCQljYXNlIEZfUklfRktFWV9DSEVDS19JTlM6 CkBAIC0zMTgyLDMwICszNzI4LDMwIEBAIGZwb190YXJnZXRzX3BrX3JhbmdlKGNvbnN0IEZvclBv cnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwgY29uc3QgUklfQ29uc3RyYWludEluCiAvKgogICog cmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlIC0KICAqCi0gKiBSZXR1cm5zIGEgRGF0dW0gb2YgUmFu Z2VUeXBlUCBob2xkaW5nIHRoZSBhcHByb3ByaWF0ZSB0aW1lc3BhbgotICogdG8gdGFyZ2V0IGNo aWxkIHJlY29yZHMgd2hlbiB3ZSBDQVNDQURFL1NFVCBOVUxML1NFVCBERUZBVUxULgorICogUmV0 dXJucyBhIERhdHVtIGhvbGRpbmcgdGhlIGFwcHJvcHJpYXRlIHRpbWVzcGFuCisgKiB0byB0YXJn ZXQgcmVmZXJlbmNpbmcgcmVjb3JkcyB3aGVuIHdlIENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFV TFQuCiAgKgotICogSW4gYSBub3JtYWwgVVBEQVRFL0RFTEVURSB0aGlzIHNob3VsZCBiZSB0aGUg cGFyZW50J3Mgb3duIHZhbGlkIHRpbWUsCisgKiBJbiBhIG5vcm1hbCBVUERBVEUvREVMRVRFIHRo aXMgc2hvdWxkIGJlIHRoZSByZWZlcmVuY2VkIHJvdydzIG93biB2YWxpZCB0aW1lLAogICogYnV0 IGlmIHRoZXJlIHdhcyBhIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSwgdGhlbiB3ZSBzaG91bGQgdXNl IHRoYXQgdG8KLSAqIHRyaW0gZG93biB0aGUgcGFyZW50J3Mgc3BhbiBmdXJ0aGVyLgorICogdHJp bSBkb3duIHRoZSBzcGFuIGZ1cnRoZXIuCiAgKi8KIHN0YXRpYyBEYXR1bQotcmVzdHJpY3RfY2Fz Y2FkaW5nX3JhbmdlKGNvbnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwgY29uc3Qg UklfQ29uc3RyYWludEluZm8gKnJpaW5mbywgVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3QpCityZXN0 cmljdF9jYXNjYWRpbmdfcmFuZ2UoUmVsYXRpb24gcmVsLCBjb25zdCBGb3JQb3J0aW9uT2ZTdGF0 ZSAqdGdfdGVtcG9yYWwsIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sIFR1cGxlVGFi bGVTbG90ICpvbGRzbG90KQogewogCURhdHVtCXBrUmVjb3JkUmFuZ2U7CiAJYm9vbAlpc251bGw7 CisJaW50CQlhdHRubyA9IHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV07CiAK LQlwa1JlY29yZFJhbmdlID0gc2xvdF9nZXRhdHRyKG9sZHNsb3QsIHJpaW5mby0+cGtfYXR0bnVt c1tyaWluZm8tPm5rZXlzIC0gMV0sICZpc251bGwpOworCXBrUmVjb3JkUmFuZ2UgPSBzbG90X2dl dGF0dHIob2xkc2xvdCwgYXR0bm8sICZpc251bGwpOwogCWlmIChpc251bGwpCiAJCWVsb2coRVJS T1IsICJhcHBsaWNhdGlvbiB0aW1lIHNob3VsZCBub3QgYmUgbnVsbCIpOwogCiAJaWYgKGZwb190 YXJnZXRzX3BrX3JhbmdlKHRnX3RlbXBvcmFsLCByaWluZm8pKQogCXsKLQkJUmFuZ2VUeXBlICpy MSA9IERhdHVtR2V0UmFuZ2VUeXBlUChwa1JlY29yZFJhbmdlKTsKLQkJUmFuZ2VUeXBlICpyMiA9 IERhdHVtR2V0UmFuZ2VUeXBlUCh0Z190ZW1wb3JhbC0+ZnBfdGFyZ2V0UmFuZ2UpOwotCQlPaWQg cm5ndHlwaWQgPSBSYW5nZVR5cGVHZXRPaWQocjEpOwotCQlUeXBlQ2FjaGVFbnRyeSAqdHlwY2Fj aGUgPSBsb29rdXBfdHlwZV9jYWNoZShybmd0eXBpZCwgVFlQRUNBQ0hFX1JBTkdFX0lORk8pOwot CQlyZXR1cm4gUmFuZ2VUeXBlUEdldERhdHVtKHJhbmdlX2ludGVyc2VjdF9pbnRlcm5hbCh0eXBj YWNoZSwgcjEsIHIyKSk7CisJCWlmICghT2lkSXNWYWxpZChyaWluZm8tPnBlcmlvZF9pbnRlcnNl Y3RfcHJvYykpCisJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBpbnRlcnNlY3Qgc3VwcG9ydCBmdW5j dGlvbiIpOworCisJCXJldHVybiBPaWRGdW5jdGlvbkNhbGwyKHJpaW5mby0+cGVyaW9kX2ludGVy c2VjdF9wcm9jLCBwa1JlY29yZFJhbmdlLCB0Z190ZW1wb3JhbC0+ZnBfdGFyZ2V0UmFuZ2UpOwog CX0KIAllbHNlCiAJCXJldHVybiBwa1JlY29yZFJhbmdlOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0 cmFpbnQuaAppbmRleCAzNTc4ODMxNWJjNC4uZmM1MjZjNzY3ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY29uc3RyYWludC5oCkBAIC0yNzksOSArMjc5LDEwIEBAIGV4dGVybiB2b2lkIERlY29uc3Ry dWN0RmtDb25zdHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3MsCiAJCQkJCQkJ CQkgICBBdHRyTnVtYmVyICpjb25rZXksIEF0dHJOdW1iZXIgKmNvbmZrZXksCiAJCQkJCQkJCQkg ICBPaWQgKnBmX2VxX29wcnMsIE9pZCAqcHBfZXFfb3BycywgT2lkICpmZl9lcV9vcHJzLAogCQkJ CQkJCQkJICAgaW50ICpudW1fZmtfZGVsX3NldF9jb2xzLCBBdHRyTnVtYmVyICpma19kZWxfc2V0 X2NvbHMpOwotZXh0ZXJuIHZvaWQgRmluZEZLUGVyaW9kT3BlcnMoT2lkIG9wY2xhc3MsCi0JCQkJ CQkJICBPaWQgKmNvbnRhaW5lZGJ5b3Blcm9pZCwKLQkJCQkJCQkgIE9pZCAqYWdnZWRjb250YWlu ZWRieW9wZXJvaWQpOworZXh0ZXJuIHZvaWQgRmluZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhPaWQg b3BjbGFzcywKKwkJCQkJCQkJCSAgT2lkICpjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkJCQkg IE9pZCAqYWdnZWRjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkJCQkgIE9pZCAqaW50ZXJzZWN0 cHJvY29pZCk7CiAKIGV4dGVybiBib29sIGNoZWNrX2Z1bmN0aW9uYWxfZ3JvdXBpbmcoT2lkIHJl bGlkLAogCQkJCQkJCQkJICBJbmRleCB2YXJubywgSW5kZXggdmFybGV2ZWxzdXAsCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAppbmRleCAzYmE2OTQyNDY4Mi4uMjE2NWNmYzIwZjQgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdApAQCAtNDAzNiw2ICs0MDM2LDI4IEBACiAgIHByb3JldHR5cGUgPT4gJ3Ry aWdnZXInLCBwcm9hcmd0eXBlcyA9PiAnJywKICAgcHJvc3JjID0+ICdSSV9GS2V5X25vYWN0aW9u X3VwZCcgfSwKIAorIyBUZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3JpdHkgY29uc3RyYWludCB0 cmlnZ2VycworeyBvaWQgPT4gJzYxMjQnLCBkZXNjciA9PiAndGVtcG9yYWwgcmVmZXJlbnRpYWwg aW50ZWdyaXR5IE9OIERFTEVURSBDQVNDQURFJywKKyAgcHJvbmFtZSA9PiAnUklfRktleV9wZXJp b2RfY2FzY2FkZV9kZWwnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3JldHR5cGUgPT4gJ3RyaWdn ZXInLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9jYXNj YWRlX2RlbCcgfSwKK3sgb2lkID0+ICc2MTI1JywgZGVzY3IgPT4gJ3RlbXBvcmFsIHJlZmVyZW50 aWFsIGludGVncml0eSBPTiBVUERBVEUgQ0FTQ0FERScsCisgIHByb25hbWUgPT4gJ1JJX0ZLZXlf cGVyaW9kX2Nhc2NhZGVfdXBkJywgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9yZXR0eXBlID0+ICd0 cmlnZ2VyJywKKyAgcHJvYXJndHlwZXMgPT4gJycsIHByb3NyYyA9PiAnUklfRktleV9wZXJpb2Rf Y2FzY2FkZV91cGQnIH0sCit7IG9pZCA9PiAnNjEyOCcsIGRlc2NyID0+ICd0ZW1wb3JhbCByZWZl cmVudGlhbCBpbnRlZ3JpdHkgT04gREVMRVRFIFNFVCBOVUxMJywKKyAgcHJvbmFtZSA9PiAnUklf RktleV9wZXJpb2Rfc2V0bnVsbF9kZWwnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3JldHR5cGUg PT4gJ3RyaWdnZXInLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvc3JjID0+ICdSSV9GS2V5X3Bl cmlvZF9zZXRudWxsX2RlbCcgfSwKK3sgb2lkID0+ICc2MTI5JywgZGVzY3IgPT4gJ3RlbXBvcmFs IHJlZmVyZW50aWFsIGludGVncml0eSBPTiBVUERBVEUgU0VUIE5VTEwnLAorICBwcm9uYW1lID0+ ICdSSV9GS2V5X3BlcmlvZF9zZXRudWxsX3VwZCcsIHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcmV0 dHlwZSA9PiAndHJpZ2dlcicsCisgIHByb2FyZ3R5cGVzID0+ICcnLCBwcm9zcmMgPT4gJ1JJX0ZL ZXlfcGVyaW9kX3NldG51bGxfdXBkJyB9LAoreyBvaWQgPT4gJzYxMzAnLCBkZXNjciA9PiAndGVt cG9yYWwgcmVmZXJlbnRpYWwgaW50ZWdyaXR5IE9OIERFTEVURSBTRVQgREVGQVVMVCcsCisgIHBy b25hbWUgPT4gJ1JJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsJywgcHJvdm9sYXRpbGUgPT4g J3YnLAorICBwcm9yZXR0eXBlID0+ICd0cmlnZ2VyJywgcHJvYXJndHlwZXMgPT4gJycsCisgIHBy b3NyYyA9PiAnUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF9kZWwnIH0sCit7IG9pZCA9PiAnNjEz MScsIGRlc2NyID0+ICd0ZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3JpdHkgT04gVVBEQVRFIFNF VCBERUZBVUxUJywKKyAgcHJvbmFtZSA9PiAnUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQn LCBwcm92b2xhdGlsZSA9PiAndicsCisgIHByb3JldHR5cGUgPT4gJ3RyaWdnZXInLCBwcm9hcmd0 eXBlcyA9PiAnJywKKyAgcHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X3VwZCcg fSwKKwogeyBvaWQgPT4gJzE2NjYnLAogICBwcm9uYW1lID0+ICd2YXJiaXRlcScsIHByb2xlYWtw cm9vZiA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAogICBwcm9hcmd0eXBlcyA9PiAndmFy Yml0IHZhcmJpdCcsIHByb3NyYyA9PiAnYml0ZXEnIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2J0cmVlX2luZGV4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvYnRyZWVfaW5kZXgub3V0CmluZGV4IGRlZjc4ZWY4NTgzLi5kNjY5YTNhODliYSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQKQEAgLTI1OCwxNCArMjU4LDE3 IEBAIHNlbGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1lIGxpa2UgRSdSSVxc X0ZLZXklZGVsJyBvcmRlciBieSAxOwogKDMgcm93cykKIAogc2VsZWN0IHByb25hbWUgZnJvbSBw Z19wcm9jIHdoZXJlIHByb25hbWUgbGlrZSBFJ1JJXFxfRktleSVkZWwnIG9yZGVyIGJ5IDE7Ci0g ICAgICAgIHByb25hbWUgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgcHJvbmFtZSAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIFJJX0ZLZXlfY2FzY2FkZV9kZWwKICBSSV9GS2V5X25vYWN0aW9uX2RlbAorIFJJX0ZLZXlf cGVyaW9kX2Nhc2NhZGVfZGVsCisgUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF9kZWwKKyBSSV9G S2V5X3BlcmlvZF9zZXRudWxsX2RlbAogIFJJX0ZLZXlfcmVzdHJpY3RfZGVsCiAgUklfRktleV9z ZXRkZWZhdWx0X2RlbAogIFJJX0ZLZXlfc2V0bnVsbF9kZWwKLSg1IHJvd3MpCisoOCByb3dzKQog CiBleHBsYWluIChjb3N0cyBvZmYpCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3Byb2Mgd2hlcmUg cHJvbmFtZSBpbGlrZSAnMDAlZm9vJyBvcmRlciBieSAxOwpAQCAtMzA0LDE0ICszMDcsMTcgQEAg c2VsZWN0IHByb25hbWUgZnJvbSBwZ19wcm9jIHdoZXJlIHByb25hbWUgbGlrZSBFJ1JJXFxfRktl eSVkZWwnIG9yZGVyIGJ5IDE7CiAoNiByb3dzKQogCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3By b2Mgd2hlcmUgcHJvbmFtZSBsaWtlIEUnUklcXF9GS2V5JWRlbCcgb3JkZXIgYnkgMTsKLSAgICAg ICAgcHJvbmFtZSAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICBwcm9uYW1lICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg UklfRktleV9jYXNjYWRlX2RlbAogIFJJX0ZLZXlfbm9hY3Rpb25fZGVsCisgUklfRktleV9wZXJp b2RfY2FzY2FkZV9kZWwKKyBSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbAorIFJJX0ZLZXlf cGVyaW9kX3NldG51bGxfZGVsCiAgUklfRktleV9yZXN0cmljdF9kZWwKICBSSV9GS2V5X3NldGRl ZmF1bHRfZGVsCiAgUklfRktleV9zZXRudWxsX2RlbAotKDUgcm93cykKKyg4IHJvd3MpCiAKIGV4 cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9u YW1lIGlsaWtlICcwMCVmb28nIG9yZGVyIGJ5IDE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRleCBlY2NhZjVjMGYwOS4uNzE2ODlmZGJiYzAg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dApA QCAtMiw3ICsyLDcgQEAKIC0tCiAtLSBXZSBsZWF2ZSBiZWhpbmQgc2V2ZXJhbCB0YWJsZXMgdG8g dGVzdCBwZ19kdW1wIGV0YzoKIC0tIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfcm5nMiwKLS0tIHRl bXBvcmFsX2ZrX3JuZzJybmcuCistLSB0ZW1wb3JhbF9ma19ybmcycm5nLCB0ZW1wb3JhbF9mazJf cm5nMnJuZy4KIFNFVCBkYXRlc3R5bGUgVE8gSVNPLCBZTUQ7CiAtLQogLS0gdGVzdCBpbnB1dCBw YXJzZXIKQEAgLTE4MDksNiArMTgwOSwyMSBAQCBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9 ICdbNSw2KSc7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3Ju ZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19m ayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxp ZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNl ZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTYtMDItMDEsMjAxNi0wMy0wMSkKKyBbNSw2 KSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDIpCisgWzUsNikgfCBbMjAxOC0wMS0wMywyMDE4LTAy LTAxKQorIFs3LDgpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0wMykKKyg0IHJvd3MpCisKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJl bnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb Myw0KSB8IFsyMDE4LTAxLTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKygxIHJvdykKKwogLS0gdGhl biBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBz dWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMs NCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYt MDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC0xODc0LDYgKzE4ODksMjEgQEAgU0VUIGlkID0gJ1s3 LDgpJwogV0hFUkUgaWQgPSAnWzUsNiknOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRh YmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCist LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbNSw2KSB8IFsyMDE2LTAyLTAxLDIw MTYtMDMtMDEpCisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKQorIFs1LDYpIHwgWzIw MTgtMDEtMDMsMjAxOC0wMi0wMSkKKyBbNyw4KSB8IFsyMDE4LTAxLTAyLDIwMTgtMDEtMDMpCiso NCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4g KCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCiso MSByb3cpCisKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUg c2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1szLDQpJzsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0g ZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQpAQCAtMTkyMCwxMiArMTk1MCwy MiBAQCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0w MS0xMCcKIFdIRVJFIGlkID0gJ1s1LDYpJzsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKIERFVEFJ TDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBp cyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdbNyw4KScpIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAor LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzUsNikgfCBbMjAxOC0wMS0wMSwy MDE4LTAxLTAyKQorIFs1LDYpIHwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkKKygyIHJvd3MpCisK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMyw0KSB8IFsyMDE4LTAxLTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKygxIHJvdykKKwog LS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRl bGV0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzMsNCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwotLS0g Y2xlYW4gdXA6Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9p ZCA9ICdbNSw2KSc7Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2 KScpOwogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCiAtLQpAQCAt MTk2NCwzOSArMjAwNCwyMDYgQEAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w MS0wNScgVE8gJzIwMTgtMDEtMTAnCiBXSEVSRSBpZCA9ICdbNSw2KSc7CiBFUlJPUjogIHVwZGF0 ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2Zr X3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0w MywyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9m a19ybmcycm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUs NiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFs aWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYp IHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wMikKKyBbNSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDIt MDEpCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1 LDYpCisoMSByb3cpCisKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFu ZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19y bmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKTsKLS0tIGNsZWFuIHVwOgotREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJu ZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOwotREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdI RVJFIGlkIElOICgnWzUsNiknKTsKIC0tCi0tLSB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9u cworLS0gcm5nMnJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoK Ky0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FT Q0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIGRlbGV0 ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAo dHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2Fs YXIgY29scykKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xz KQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSBy ZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vi c2V0KQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMp CistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0t IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVG QVVMVCBzdWJzZXQpCiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQor LS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIElOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEw MCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7 CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5n X2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nCiAgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENB U0NBREU7Ci1FUlJPUjogIHVuc3VwcG9ydGVkIE9OIFVQREFURSBhY3Rpb24gZm9yIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K1VQREFURSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0w MS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYs NykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzEwMCwx MDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9u LUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUg aWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTkt MDEtMDEpIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3 LDgpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNyw4KQorKDMgcm93 cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzks MTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFs5 LDEwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJv d3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQorVFJV TkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYs NykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMiByb3dz KQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9hdCB8IHBh cmVudF9pZCAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAx KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygxIHJvdykKKworLS0KIC0tIHRl c3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCi1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpLCAnWzksMTApJyk7CistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5n LCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCiAgICAgT04gREVMRVRF IFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBE QVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3 LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAt MDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQor KDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBp ZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAy MC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IAorKDMg cm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAn WzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAw LDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8 IAorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3Mp CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KK1RSVU5D QVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJv dGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcp CisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRl bGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAKKyBbMTAwLDEw MSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdl KCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0w MS0wMSkgfCAKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCiso MiByb3dzKQorCistLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQK Ky0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CiBJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVy YW5nZShudWxsLCBudWxsKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1sxMiwxMyknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyksICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogICBBTFRF UiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKICAgRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCkBAIC0yMDA0LDcgKzIyMTEsNDMyIEBAIEFMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKICAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKICAgICBPTiBERUxF VEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOwotRVJST1I6ICB1bnN1cHBvcnRl ZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklP RAorLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQg aWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEt MDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1w b3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEw MSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIw LTAxLTAxLDIwMjEtMDEtMDEpIHwgWy0xLDApCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIw MCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7 CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAs MjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApCisgWzIwMCwyMDEpIHwgWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5n LCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0 b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEt MDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSww KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykKKygzIHJvd3Mp CisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlk ID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAx LTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0x LDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbLTEsMCkKKygzIHJv d3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBh cmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsyMDAs MjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCist LQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywg J1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9y bmcycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFy ZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9 ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50 X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYs NykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBb Nyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8 IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERB VEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIw MTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8 IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzcsOCkgICAgICB8IFs2LDcpCisoMyByb3dzKQor CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRl cmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb OCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSwxMCkn IFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsy MDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzksMTApICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwg WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNv bHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsy MDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwg WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygyIHJvd3MpCisK Ky0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorKDAgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAw LDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygxIHJvdykK KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFy IGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrMl9ybmcycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19m aywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VU IE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0w MS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIw LTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6 CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwg WzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSkgfCAgICAgICAgICAgIHwgCisoMyByb3dzKQorCistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdb OCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlk MSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAx LDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNykn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAx OS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxl dGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0w MS0wMSwyMDE5LTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28g cmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAg ICB8IAorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8 IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRl bXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2 LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklP RCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBE RUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CitFUlJPUjogIGNv bHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90 IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIK KyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgTlVMTDsK Ky0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8 IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAg IHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAg ICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBh cmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8 ICAgICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEp IHwgICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCAgICAgICAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVm ZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8 IFs4LDkpCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAg IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBT RVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIs IHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRlcmFuZ2UobnVs bCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZBVUxU ICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAor ICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQg REVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3Ju ZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEt MDEnIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBb MjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8 IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAx KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dz KQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAn WzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50 X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5 LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFj cm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwy MDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4 LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDEwKScsIGlkMiA9ICdb OSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIw MCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAx KSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAs MjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiBy b3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3 byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJf cm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYs NyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIw MTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkg fCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykK KworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlk MSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkK KyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEs MCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFstMSwwKSAgICAgfCBb LTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwy MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAx KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dz KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBz Y2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Ju ZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDcpJywgZGF0ZXJhbmdlKG51 bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gZmFp bHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUg dGVtcG9yYWxfZmsyX3JuZzJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFV TFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmss CisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBL RVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHZhbGlkX2F0KSBP TiBVUERBVEUgU0VUIERFRkFVTFQ7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5j ZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBT RVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5n MnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBG T1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCAocGFy ZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAx OS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsy MDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCist LSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZh bGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEw MCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWzYsNykKKyBb MTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbNiw3KQor KDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAn WzgsOSknLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkp JywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEt MDEpIHwgWy0xLDApICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKIC0tCiAtLSB0ZXN0IEZPUkVJ R04gS0VZLCBtdWx0aXJhbmdlIHJlZmVyZW5jZXMgbXVsdGlyYW5nZQogLS0KQEAgLTIzMzUsNiAr Mjk2NywyMiBAQCBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0w MSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBv a2F5OgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAxLTAzJykpKQorU0VU IGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVzdCBhIHBh cnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkp CitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBv ciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYp LCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0wMiksWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSl9KSBpcyBz dGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgor LS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVw ZGF0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzMsNCknOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKQorV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1 cGRhdGVzIFJFU1RSSUNUCiAtLQpAQCAtMjM4NCw2ICszMDMyLDIyIEBAIFVQREFURSB0ZW1wb3Jh bF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykp OwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdf ZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgogREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwg cmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGNo YW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfbWx0 cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9 ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3Jh bF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJF IGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9y YWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTAy KSxbMjAxOC0wMS0wMywyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0 aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUg dGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSk7CiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCiAtLQpAQCAt MjQxNiw2ICszMDgwLDE5IEBAIEJFR0lOOwogQ09NTUlUOwogRVJST1I6ICB1cGRhdGUgb3IgZGVs ZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1sy MDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBw YXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0w MS0wMycpKSkKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZh aWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkp CitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAx OC0wMS0wMiksWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0gdGhlbiBkZWxldGUgdGhl IG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzMsNCknOwor REVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp KTsKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAogLS0KQEAgLTI0 NDQsNiArMzEyMSw2MzggQEAgQkVHSU47CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFi bGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEs MjAxOC0wMi0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmciLgogUk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQg cGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgt MDEtMDMnKSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBm YWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykp KQorV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxl ICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIw MTgtMDEtMDIpLFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBm cm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIHRoZW4gZGVsZXRlIHRo ZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSk7CistLQorLS0gbWx0cm5nMm1sdHJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucwor LS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVM VAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIHVwZGF0 ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NB REUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdv IHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFy IGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywg U0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28g c2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2Fs YXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBj b2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0 ZXMgQ0FTQ0FERQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAgT04gREVMRVRFIENBU0NB REUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQgPSAnWzcsOCkn IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAx LTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpCisgWzEwMCwx MDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8 IFs3LDgpCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9t bHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9h dCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKX0gfCBbNyw4KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAg ICAgICAgICAgICAgICAgICAgICAgfCBbNyw4KQorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5 KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9 ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFs5LDEw KQorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KQorKDIgcm93 cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg KGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBX SEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0w MSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KQorKDEgcm93KQor CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9h dCB8IHBhcmVudF9pZCAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykKKwor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlk ID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgs OSkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxM CistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBE QVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5 LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAKKygyIHJv d3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQg PSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAg ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwg e1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IAorIFsx MDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAg ICAgfCAKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9t bHRybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCAKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcp Jyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21s dHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZh bGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpfSB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEp fSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0gbm9uLUZQTyBkZWxl dGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAg ICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSl9IHwgCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEp fSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5 KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb MjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgCisgWzIwMCwyMDEpIHwge1sy MDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9t bHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYs NyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09M VU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAgT04gREVMRVRFIFNF VCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBp ZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAg ICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYs NykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAg ICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwx MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAg ICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKX0gfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAy MC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbOSwx MCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sy MDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFs aWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0w MS0wMSl9IHwgWy0xLDApCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8 IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IERFRkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0w MScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAg ICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIw MTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKyBb MTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAg ICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0g fCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAs MjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCB7 WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJV TkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdb Niw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcK KyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NB REU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTkt MDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAg ICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwg WzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEp fSAgICAgICAgICAgICAgICAgICAgICAgICB8IFs3LDgpICAgICAgfCBbNiw3KQorKDIgcm93cykK KworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0g J1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAg ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7 WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzcsOCkg ICAgICB8IFs2LDcpCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93 czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBv cmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0w MS0wMSl9IHwgWzksMTApICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIw MjEtMDEtMDEpfSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYs NyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2 LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg ICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8 IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBb Niw3KSAgICAgIHwgWzYsNykKKygxIHJvdykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworIGlkIHwgdmFsaWRfYXQgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisoMCByb3dzKQor CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSks ICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBp ZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAg ICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwg e1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDEgcm93KQor CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIg Y29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMg KCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisg ICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwg T04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUg dGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCkn IFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAg ICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg CisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcy IFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTkt MDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEw MSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1w b3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2 YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAt MDEtMDEpfSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0w MS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyBy ZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNykn LCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcp JywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBh cmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3 KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0gbm9u LUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8 ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs ICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSkn LCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4 LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0w MS0wMSwyMDIwLTAxLTAxKX0gfCAgICAgICAgICAgIHwgCisgWzIwMCwyMDEpIHwge1syMDIwLTAx LTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNF VCBOVUxMIHN1YnNldCkKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNl IHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2Zr CisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9h dCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5V TEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CitFUlJPUjogIGNvbHVtbiAidmFsaWRf YXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAor LS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFURSBT RVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAg ICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50 X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1sy MDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAg ICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5v bi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAg ICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lk MSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0g fCAgICAgICAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0w MSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IFs2LDcpCisoMiByb3dz KQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwy MDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVS RSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEp IHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8ICAgICAgICAgICAgfCBbOCw5KQorIFsyMDAs MjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygy IHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAo dHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lk MSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBE RUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19m aworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIFNFVCBE RUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQx ID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZh bGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0w MSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYs NykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAg ICAgICAgICAgIHwgWy0xLDApICAgICB8IFstMSwwKQorKDIgcm93cykKKworLS0gbm9uLUZQTyB1 cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0g J1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAg ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwg e1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFstMSww KSAgICAgfCBbLTEsMCkKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVt cG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlk MSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAg ICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7 WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAx KSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJv d3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdv IHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcy MDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAx KSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEw MSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwg Wy0xLDApICAgICB8IFstMSwwKQorKDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFs aWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAx LDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFstMSwwKSAgICAgfCBbLTEs MCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAg ICAgICAgICAgIHwgWy0xLDApICAgICB8IFstMSwwKQorKDIgcm93cykKKworLS0gRksgYWNyb3Nz IHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgs OSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50 X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwy MDIwLTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzIwMCwyMDEpIHwge1syMDIwLTAx LTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMs IFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbNiw3KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZh aWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNF VCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu Z19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFs aWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIFNF VCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworRVJST1I6ICBjb2x1 bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBTRVQgYWN0aW9uIGNhbm5vdCBi ZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcK KyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHBhcmVudF9pZDEpIE9OIFVQ REFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8 IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAx KX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbLTEsMCkgICAgIHwgWzYsNykKKygyIHJvd3Mp CisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVS RSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEs MjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApICAgICB8IFs2LDcp CisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0w MS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAg ICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWy0xLDApICAgICB8 IFs4LDkpCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAg ICAgfCBbOCw5KQorKDIgcm93cykKKworLS0gRksgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlCitD UkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOworQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3JuZzMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IG15ZGF0ZXJh bmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazNfcm5n MnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgbXlkYXRlcmFuZ2UsCisgIHBhcmVu dF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazNfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmczIChpZCwgUEVSSU9EIHZhbGlkX2F0 KSBPTiBERUxFVEUgQ0FTQ0FERQorKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBteWRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmszX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2KScsIG15ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmczIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVS RSBpZCA9ICdbOCw5KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrM19ybmcycm5nIFdIRVJF IGlkID0gJ1s1LDYpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50 X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzUs NikgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs4LDkpCisgWzUsNikgfCBbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dzKQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX2Zr M19ybmcycm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworRFJPUCBUWVBFIG15ZGF0ZXJh bmdlOwogLS0KIC0tIEZLIGJldHdlZW4gcGFydGl0aW9uZWQgdGFibGVzOiByYW5nZXMKIC0tCkBA IC0yNDUzLDggKzM3NjIsOCBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n ICgKICAgbmFtZSB0ZXh0LAogICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfcm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKICkgUEFSVElUSU9O IEJZIExJU1QgKGlkKTsKLUNSRUFURSBUQUJMRSB0cDEgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAn WzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknKTsKLUNSRUFURSBUQUJMRSB0cDIgcGFydGl0aW9u IE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQs NSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMpJyk7CitDUkVBVEUgVEFC TEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJ TiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIp JywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScs ICdbMjMsMjQpJyk7CitDUkVBVEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2 LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNykn LCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwogSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQsIG5hbWUpIFZBTFVFUwog ICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMDEnKSwgJ29uZScp LAogICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAyLTAxJywgJzIwMDAtMDMtMDEnKSwgJ29u ZScpLApAQCAtMjQ2Nyw4ICszNzc2LDggQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgKAogICBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQog KSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOwotQ1JFQVRFIFRBQkxFIHRma3AxIHBhcnRpdGlvbiBP RiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScs ICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScpOwotQ1JFQVRF IFRBQkxFIHRma3AyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IEZPUiBWQUxVRVMgSU4gKCdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAs MTEpJywgJ1sxMiwxMyknKTsKK0NSRUFURSBUQUJMRSB0ZmtwMSBQQVJUSVRJT04gT0YgdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCkn LCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdbMTUs MTYpJywgJ1sxNywxOCknLCAnWzE5LDIwKScsICdbMjEsMjIpJywgJ1syMywyNCknKTsKK0NSRUFU RSBUQUJMRSB0ZmtwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBGT1IgVkFMVUVTIElOICgnWzAsMSknLCAnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgs OSknLCAnWzEwLDExKScsICdbMTIsMTMpJywgJ1sxNCwxNSknLCAnWzE2LDE3KScsICdbMTgsMTkp JywgJ1syMCwyMSknLCAnWzIyLDIzKScsICdbMjQsMjUpJyk7CiAtLQogLS0gcGFydGl0aW9uZWQg RksgcmVmZXJlbmNpbmcgaW5zZXJ0cwogLS0KQEAgLTI1MTAsNyArMzgxOSw3IEBAIFVQREFURSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAy LTAxJywgJzIwMTYtMDMtCiAtLSBzaG91bGQgZmFpbDoKIFVQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDIt MDEnKQogICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLUVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJs ZSAidHAxIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX3BhcmVudF9pZF92YWxpZF9hdF9ma2V5IiBvbiB0YWJsZSAidGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidHAxIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nX3BhcmVudF9pZF92YWxpZF9hdF9ma2V5MSIgb24gdGFibGUgInRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9h dCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBm cm9tIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIi4KIC0tCiAtLSBwYXJ0 aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCkBAIC0yNTIyLDcgKzM4MzEs NyBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWwogREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIw MTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwogLS0gc2hvdWxkIGZhaWw6CiBERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9 IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7Ci1FUlJPUjogIHVwZGF0ZSBv ciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAi dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleSIg b24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciCitFUlJPUjogIHVwZGF0 ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtl eTEiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgogREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0 aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyIuCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJFU1RSSUNUCkBA IC0yNTQ0LDcgKzM4NTMsNyBAQCBVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLQogLS0gc2hvdWxkIGZh aWw6CiBVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKICAgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7Ci1FUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFs aWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciCitF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBr ZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRf dmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0w Mi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVz IFJFU1RSSUNUCkBAIC0yNTU2LDM3ICszODY1LDE2MiBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WwogREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwog LS0gc2hvdWxkIGZhaWw6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJyk7Ci1FUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAi dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0gcGFydGl0aW9uZWQgRksg cmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKIC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbNCw1KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3 KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZwogICBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKICAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mawogICAgIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZwogICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURF OwotRVJST1I6ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBj b25zdHJhaW50IHVzaW5nIFBFUklPRAorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg U0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzQsNSknOworICBpZCAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNCw1KSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEt MDEpIHwgWzcsOCkKKyBbNCw1KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBb NCw1KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykKKygzIHJvd3MpCisKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzQsNSknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJl bnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb NCw1KSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzcsOCkKKyBbNCw1KSB8IFsyMDE4LTAx LTAxLDIwMTktMDEtMDEpIHwgWzcsOCkKKyBbNCw1KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp IHwgWzcsOCkKKygzIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMCwxMSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzE1LDE2KScpOworVVBEQVRFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzE2LDE3KScgV0hFUkUgaWQgPSAnWzE1LDE2 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAsMTEpJzsKKyAgIGlk ICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMCwxMSkgfCBbMjAxOC0wMS0w MSwyMDIwLTAxLTAxKSB8IFsxNiwxNykKKyBbMTAsMTEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCBbMTUsMTYpCisoMiByb3dzKQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNl ZCBkZWxldGVzIENBU0NBREUKIC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcs IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbOCw5KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzUsNiknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNSw2KSB8IFsy MDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzgsOSkKKyBbNSw2KSB8IFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzUsNiknOworIGlkIHwgdmFsaWRfYXQgfCBw YXJlbnRfaWQgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MTcsMTgpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE3 LDE4KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMSwxMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzE3LDE4KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdI RVJFIGlkID0gJ1sxNywxOCknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzExLDEyKSc7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lk IAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTEs MTIpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTcsMTgpCisoMSByb3cpCisKIC0tCiAt LSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKIC0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzksMTApJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAgICAgT04gREVMRVRFIFNFVCBO VUxMIE9OIFVQREFURSBTRVQgTlVMTDsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFj dGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKK1VQREFURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0w MS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwx MCknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1s2LDcpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50 X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzYs NykgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFs2LDcpIHwgWzIwMTgtMDEtMDEsMjAx OS0wMS0wMSkgfCBbOSwxMCkKKyBbNiw3KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzks MTApCisoMyByb3dzKQorCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9 ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKKyAgaWQgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzYsNykgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8 IAorIFs2LDcpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAKKyBbNiw3KSB8IFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpIHwgCisoMyByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE4LDE5KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxOCwxOSknLCBkYXRlcmFuZ2UoJzIw MjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTIsMTMp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxOCwxOSknKTsKK1VQ REFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1sxOSwyMCknIFdIRVJFIGlk ID0gJ1sxOCwxOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEyLDEz KSc7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTIsMTMpIHwg WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTIsMTMpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbMTgsMTkpCisoMiByb3dzKQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBOVUxMCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxMSwxMiknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbNyw4KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTEsMTIp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1sx MSwxMiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1s3LDgpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzcsOCkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFs3LDgpIHwgWzIwMTgtMDEtMDEs MjAxOS0wMS0wMSkgfCBbMTEsMTIpCisgWzcsOCkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8 IFsxMSwxMikKKygzIHJvd3MpCisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyBXSEVSRSBpZCA9ICdbMTEsMTIpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNyw4KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFs3LDgpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbNyw4 KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgCisgWzcsOCkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IAorKDMgcm93cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMCwyMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjAsMjEpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEzLDE0KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMjAsMjEpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzIwLDIxKScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTMsMTQpJzsKKyAgIGlkICAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMywxNCkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAx KSB8IAorIFsxMywxNCkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsyMCwyMSkKKygyIHJv d3MpCisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFV TFQKIC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzAsMSknLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxMiwxMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbMTIsMTMpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nCiAgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0n LAogICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywK QEAgLTI1OTQsMTAgKzQwMjgsNzMgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZwogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK ICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZwogICAgIE9OIERFTEVURSBT RVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7Ci1FUlJPUjogIHVuc3VwcG9ydGVkIE9O IFVQREFURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECitV UERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUg aWQgPSAnWzEyLDEzKSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRma3Ay IiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWy0xLDAp LCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzgsOSknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbOCw5KSB8IFsyMDE4LTAxLTAxLDIwMjEtMDEtMDEpIHwgWzEyLDEzKQor KDEgcm93KQorCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTMs MTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0 YWJsZSAidGZrcDIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRf YXQpPShbLTEsMCksIFsyMDE4LTAxLTAxLDIwMjEtMDEtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0 YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CisgIGlkICAgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs4LDkpIHwgWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSkg fCBbMTIsMTMpCisoMSByb3cpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjIsMjMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxNCwxNSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzIyLDIzKScpOworVVBEQVRFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzIzLDI0KScgV0hFUkUgaWQgPSAnWzIyLDIz KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK0VSUk9SOiAgaW5zZXJ0IG9y IHVwZGF0ZSBvbiB0YWJsZSAidGZrcDIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVu dF9pZCwgdmFsaWRfYXQpPShbLTEsMCksIFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpKSBpcyBub3Qg cHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTQsMTUpJzsK KyAgIGlkICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxNCwxNSkgfCBbMjAx OC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsyMiwyMykKKygxIHJvdykKKwogLS0KIC0tIHBhcnRpdGlv bmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAogLS0KK1RSVU5DQVRFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMCwxKScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE0LDE1KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5 LDEwKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTQsMTUpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1sxNCwx NSknOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZmtwMSIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19m ayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFstMSwwKSwgWzIwMTktMDEt MDEsMjAyMC0wMS0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1s5LDEwKSc7CisgICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzksMTApIHwgWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTQsMTUpCisoMSByb3cp CisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbMTQs MTUpJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDEiIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdf ZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbLTEsMCksIFsyMDE4LTAx LTAxLDIwMjEtMDEtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbOSwxMCknOworICAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFs5LDEwKSB8IFsyMDE4LTAxLTAxLDIwMjEtMDEtMDEpIHwgWzE0LDE1KQorKDEgcm93 KQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzI0LDI1KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1syNCwyNSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1syNCwyNSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyBXSEVSRSBpZCA9ICdbMjQsMjUpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZmtwMSIgdmlvbGF0 ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu Z19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFstMSwwKSwgWzIwMTgt MDEtMDEsMjAyMC0wMS0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1sxNSwxNiknOworICAgaWQgICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgWzE1LDE2KSB8IFsyMDE4LTAxLTAxLDIwMjEtMDEtMDEpIHwgWzI0LDI1KQor KDEgcm93KQorCiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CiBE Uk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZzsKIC0tCkBAIC0yNzE3LDMyICs0MjE0 LDE1MCBAQCBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEs MjAxOC0wMi0wMSl9KSBpcyBzdGlsbCByZWZlcmVuYwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfbWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOwogQUxU RVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwogICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19maywKICAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19mawogICAg IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZwogICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQ REFURSBDQVNDQURFOwotRVJST1I6ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9uIGZvciBm b3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorVVBEQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4KScgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKKyAgaWQgICB8ICAgICAgICAgICAgICAg ICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFs0LDUpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAg ICAgICAgICAgICB8IFs3LDgpCisgWzQsNSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKygyIHJvd3MpCisKK1VQREFURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzQsNSknOworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzQsNSkg fCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzcs OCkKKyBbNCw1KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKX0gfCBbNyw4KQorKDIgcm93cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAsMTEpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMTUsMTYpJyk7CitVUERB VEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFNFVCBpZCA9ICdbMTYsMTcpJyBXSEVSRSBp ZCA9ICdbMTUsMTYpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1sxMCwxMSknOworICAgaWQgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50 X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFsxMCwxMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWzE2LDE3KQorIFsxMCwxMSkg fCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzE1LDE2KQorKDIgcm93cykKKwogLS0KIC0t IHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCiAtLQorVFJVTkNBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s1 LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEt MDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsK KyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs1LDYpIHwge1syMDE4LTAxLTAxLDIw MTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMSByb3cpCisKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzUsNiknOworIGlkIHwgdmFsaWRfYXQgfCBwYXJlbnRfaWQgCistLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTcsMTgpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx NywxOCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE3LDE4KScpOwor REVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFdIRVJFIGlkID0gJ1sxNywx OCknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7 CisgICBpZCAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzExLDEyKSB8 IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbMTcsMTgpCisoMSByb3cpCisKIC0tCiAtLSBw YXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKIC0tCitUUlVOQ0FURSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJu ZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s2 LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbOSwxMCknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJu ZzJtbHRybmcKICAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJu ZzJtbHRybmdfZmssCiAgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21s dHJuZzJtbHRybmdfZmsKICAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcKICAgICBPTiBE RUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOwotRVJST1I6ICB1bnN1cHBvcnRlZCBP TiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAor VVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp IFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsK KyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs2LDcpIHwge1syMDE5LTAxLTAxLDIw MjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIFs2LDcpIHwge1syMDE4LTAx LTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs5LDEwKQorKDIgcm93 cykKKworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgaWQgPSAnWzEwLDEx KScgV0hFUkUgaWQgPSAnWzksMTApJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CisgIGlkICAgfCAgICAgICAg ICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbNiw3KSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAg ICAgICAgICAgICAgICAgICAgfCAKKyBbNiw3KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCAKKygyIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxOCwxOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEyLDEzKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE4 LDE5KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgaWQgPSAnWzE5 LDIwKScgV0hFUkUgaWQgPSAnWzE4LDE5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKKyAgIGlkICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAg ICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMTIsMTMpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IAorIFsx MiwxMykgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzE4LDE5KQorKDIgcm93cykKKwog LS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAogLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTEsMTIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1s3LDgpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSksICdbMTEsMTIpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbMTEsMTIpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbNyw4KSc7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNyw4KSB8IHtb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBbNyw4 KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBb MTEsMTIpCisoMiByb3dzKQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRy bmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzcsOCknOworICBpZCAgIHwgICAgICAg ICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAK Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzcsOCkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAg ICAgICAgICAgICAgICAgICAgIHwgCisgWzcsOCkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSks WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgCisoMiByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIwLDIxKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMjAsMjEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMywxNCknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1sy MCwyMSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBp ZCA9ICdbMjAsMjEpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1sxMywxNCknOworICAgaWQgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50 X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFsxMywxNCkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgCisgWzEzLDE0KSB8IHtbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbMjAsMjEpCisoMiByb3dzKQorCiAtLQogLS0gcGFydGl0 aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCiAtLQorVFJVTkNBVEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcy bWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1swLDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51 bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbOCw5 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp LCAnWzEyLDEzKScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5n Mm1sdHJuZwogICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbMCwxKScsCiAg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2Zr LApAQCAtMjc1MCwxMCArNDM2NSw2NyBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19tbHRybmcybWx0cm5nCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nCiAgICAg T04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKLUVSUk9SOiAgdW5z dXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2lu ZyBQRVJJT0QKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIw LTAxLTAxJykpKSBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzgsOSknOworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAg ICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzgsOSkgfCB7WzIw MTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzAsMSkKKyBb OCw5KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0g fCBbMTIsMTMpCisoMiByb3dzKQorCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5n IFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7 CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAg ICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbOCw5KSB8IHtbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbMCwxKQorIFs4LDkpIHwge1sy MDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFswLDEpCiso MiByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjIsMjMpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1sxNCwxNSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1syMiwyMyknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1syMywyNCknIFdIRVJFIGlkID0gJ1syMiwyMyknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CisgICBp ZCAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzE0LDE1KSB8IHtbMjAx OC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbMCwxKQorIFsxNCwxNSkgfCB7WzIwMjAtMDEtMDEsMjAy MS0wMS0wMSl9IHwgWzIyLDIzKQorKDIgcm93cykKKwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJl ZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAogLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMCwxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxNCwxNSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzksMTApJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMTQsMTUp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIw LTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbMTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworICAgaWQg ICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBw YXJlbnRfaWQgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbOSwxMCkgfCB7WzIwMTktMDEtMDEsMjAyMC0w MS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzAsMSkKKyBbOSwxMCkgfCB7WzIwMTgt MDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzE0LDE1KQorKDIg cm93cykKKworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFdIRVJFIGlk ID0gJ1sxNCwxNSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1s5LDEwKSc7CisgICBpZCAgIHwgICAgICAgICAgICAgICAg ICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFs5LDEwKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAg ICAgICAgICAgICAgfCBbMCwxKQorIFs5LDEwKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbMCwxKQorKDIgcm93cykKKworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwy NSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzI0LDI1KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTUsMTYp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSks ICdbMjQsMjUpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hF UkUgaWQgPSAnWzI0LDI1KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMTUsMTYpJzsKKyAgIGlkICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBh cmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTUsMTYpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFswLDEpCisgWzE1LDE2 KSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbMjQsMjUpCisoMiByb3dzKQorCiBEUk9Q IFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmc7CiBEUk9QIFRBQkxF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZzsKIFJFU0VUIGRhdGVzdHlsZTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKaW5kZXggYmFiMzQ2NTk3OTMuLmE4ZjQx MDIwZTBhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBz LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbApAQCAt Miw3ICsyLDcgQEAKIC0tCiAtLSBXZSBsZWF2ZSBiZWhpbmQgc2V2ZXJhbCB0YWJsZXMgdG8gdGVz dCBwZ19kdW1wIGV0YzoKIC0tIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfcm5nMiwKLS0tIHRlbXBv cmFsX2ZrX3JuZzJybmcuCistLSB0ZW1wb3JhbF9ma19ybmcycm5nLCB0ZW1wb3JhbF9mazJfcm5n MnJuZy4KIAogU0VUIGRhdGVzdHlsZSBUTyBJU08sIFlNRDsKIApAQCAtMTMxOCw2ICsxMzE4LDgg QEAgVVBEQVRFIHRlbXBvcmFsX3JuZwogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCiBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdb NSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYpJywg J1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAt LSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBk YXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKQEAgLTEzNzcsNiArMTM3OSw4IEBAIFVQREFURSB0 ZW1wb3JhbF9ybmcKIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRP ICcyMDE4LTAxLTEwJwogU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAnWzUsNiknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdbNyw4KScpIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBX SEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogLS0gdGhlbiBkZWxl dGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVk czoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwog VVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEn LCAnMjAxNi0wMi0wMScpCkBAIC0xNDIwLDEyICsxNDI0LDExIEBAIFdIRVJFIGlkID0gJ1s1LDYp JzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZwogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCiBXSEVSRSBpZCA9ICdbNSw2KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAtLSB0aGVuIGRlbGV0 ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRz OgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9 IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7Ci0tLSBjbGVhbiB1cDoKLURF TEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgcGFyZW50X2lkID0gJ1s1LDYpJzsK LURFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBJTiAoJ1s1LDYpJyk7CiAKIC0tCiAt LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVApAQCAtMTQ2Miw0MSArMTQ2NSwx MzEgQEAgV0hFUkUgaWQgPSAnWzUsNiknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKIFdI RVJFIGlkID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGlu ICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUg c2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9 ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDIt MDEnKTsKLS0tIGNsZWFuIHVwOgotREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVS RSBwYXJlbnRfaWQgPSAnWzUsNiknOwotREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlk IElOICgnWzUsNiknKTsKIAogLS0KLS0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCist LSBybmcycm5nIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCiAtLQorLS0gVE9DOgorLS0g cmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURF CistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBT RVQgTlVMTAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28g c2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBj b2xzKQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCist LSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQp CistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0t IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVm ZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxU IHN1YnNldCkKIAorLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0t CisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIElOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEw MCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7 CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5n X2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nCiAgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENB U0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdb Nyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBp ZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NB REUKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAx KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRl OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Ju ZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIAorLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBOVUxMCi1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1J TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAn WzksMTApJyk7CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJy bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYs NyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNykn KTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKICAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3JuZzJybmdfZmssCiAgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJy bmdfZmsKICAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKICAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRF IFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxf cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQg PSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hF UkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBT RVQgTlVMTAorLS0KIAorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEw MCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7 CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBk ZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAs MjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQogLS0gdGVzdCBGSyByZWZlcmVuY2Vk IHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9y YWxfZmtfcm5nMnJuZzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKLUlOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTIsMTMpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzEyLDEzKScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycm5nCiAgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1st MSwtMV0nLAogICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKQEAgLTE1 MDQsNiArMTU5NywyNTIgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogICAgIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZwogICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFV TFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNF VCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4 KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0w MS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb OCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9 ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZB VUxUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScs IGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBX SEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3Mg dHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMp CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYs NyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmsyX3JuZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAor ICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7 CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQg aWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdb Nyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2Uo JzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sy MDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScs ICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJF IGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBD QVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0 ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScp OworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIK KyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBP IHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlk MSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byBy ZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQ REFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBz Y2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9y bmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg J1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg J1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIg V0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQg dGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIK KyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7Cist LSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVS SU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVU RSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdb OCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdb OCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdI RVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRl cyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxf cm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVyYW5n ZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQx IFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERF RkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdf ZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRF IFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9y YWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScsIGlkMiA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFU RSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlk MSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byBy ZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQ REFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzksMTApJywgaWQyID0gJ1s5LDEwKScgV0hF UkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9y bmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFdJywgZGF0ZXJhbmdl KG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVS RSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBk YXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk MSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIw MCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJz ZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn Wy0xLC0xXScsICdbNiw3KScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0 aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIEFM VEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04g REVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0g b2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFy ZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdf ZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlk X2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgREVG QVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9u IGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4 LDkpJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sy MDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScs ICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOSkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OwogCiAtLQogLS0gdGVzdCBGT1JFSUdOIEtFWSwgbXVsdGlyYW5nZSByZWZlcmVuY2VzIG11 bHRpcmFuZ2UKQEAgLTE4MDcsNiArMjE0NiwyMCBAQCBDT01NSVQ7CiAtLSBjaGFuZ2luZyB0aGUg c2NhbGFyIHBhcnQgZmFpbHM6CiBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4 KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKKy0tIGNoYW5naW5nIGFuIHVucmVm ZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIw MTgtMDEtMDMnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBj aGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUn LCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsK Ky0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1 cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0g ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkKK1dI RVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIAogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNl ZCB1cGRhdGVzIFJFU1RSSUNUCkBAIC0xODUzLDYgKzIyMDYsMjAgQEAgUk9MTEJBQ0s7CiAtLSBj aGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CiBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNF VCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKKy0tIGNoYW5n aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5n CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdb NSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9t bHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlk ID0gJ1s1LDYpJzsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0 aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VU IHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYt MDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIAogLS0KIC0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgpAQCAtMTg4NCw2ICsyMjUxLDE3IEBAIEJF R0lOOwogCiAgIERFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScg QU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSk7CiBDT01NSVQ7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBp cyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMn KSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpKQorV0hF UkUgaWQgPSAnWzUsNiknOworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQg YW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzMsNCknOworREVMRVRFIEZST00gdGVtcG9yYWxf bWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIAogLS0KIC0tIHRlc3QgRksg cmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCkBAIC0xOTEzLDYgKzIyOTEsNDE3IEBAIEJFR0lO OwogCiAgIERFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDItMDEnKSk7CiBST0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlz IG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMS0wMycp KSkKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgor REVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkpCitXSEVS RSBpZCA9ICdbNSw2KSc7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBh bmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9t bHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworCistLQorLS0gbWx0cm5nMm1s dHJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoKKy0tIHJlZmVy ZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0g cmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5V TEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxh ciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykK Ky0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVm ZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0g cmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJz ZXQpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mawor ICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX21sdHJuZworICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVND QURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5n IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTkt MDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERB VEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0K KworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0w MScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5 KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tCisK K1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2Zr CisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBT RVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21s dHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOwor VVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxM CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIw LTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVS RSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVM VAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1stMSwtMV0nLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1st MSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maywK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX21sdHJuZworICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFV TFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0w MS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBE QVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAor LS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1st MSwtMV0nLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRl czoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAo ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdI RVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29s cykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu Z19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAg ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQor ICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorICAgIE9OIERFTEVURSBDQVNDQURFIE9O IFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVt cG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknIFdI RVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9u LUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkp JywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScg V0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAw LDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBv cmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYs NyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxf bWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21s dHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVm ZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FU RSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNykn LCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcp JywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxM OworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAx LTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitV UERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVm ZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitV UERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4 LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0 b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScs ICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0 cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlk MSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRl cyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYs NyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2 LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklP RCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUg U0VUIE5VTEw7CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n CisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtF WSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAocGFyZW50X2lkMSkg T04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQxID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0 ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwx MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29s cykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo bnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVM VCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAor ICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQ REFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRl bXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQxID0gJ1s3LDgpJywg aWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VU IGlkMSA9ICdbNyw4KScsIGlkMiA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93 czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBv cmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbOSwxMCknLCBpZDIgPSAnWzksMTApJyBXSEVSRSBpZDEg PSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21s dHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0n LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYs NyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2 LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9t bHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVM VCBzdWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1 c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxU ICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n X2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAg IEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisg ICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxU ICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdf ZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlk X2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorICAgIE9OIERFTEVURSBTRVQg REVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAy MC0wMS0wMScpKSkgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlk MSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tIEZLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZQor CitDUkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOworCitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgbXlk YXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr M19ybmcycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBteWRhdGVyYW5nZSwKKyAg cGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazNfcm5nMnJuZ19w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrM19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzMgKGlkLCBQRVJJT0QgdmFs aWRfYXQpIE9OIERFTEVURSBDQVNDQURFCispOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIG15ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s1LDYpJywgbXlkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzMg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmszX3JuZzJybmcg V0hFUkUgaWQgPSAnWzUsNiknOworCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nOwor RFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworRFJPUCBUWVBFIG15ZGF0ZXJhbmdlOwogCiAtLQog LS0gRksgYmV0d2VlbiBwYXJ0aXRpb25lZCB0YWJsZXM6IHJhbmdlcwpAQCAtMTkyNCw4ICsyNzEz LDggQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCiAgIG5hbWUgdGV4 dCwKICAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCiApIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7 Ci1DUkVBVEUgVEFCTEUgdHAxIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg Rk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEw KScsICdbMTEsMTIpJyk7Ci1DUkVBVEUgVEFCTEUgdHAyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywg J1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScpOworQ1JFQVRFIFRBQkxFIHRwMSBQQVJUSVRJ T04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdb Myw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScsICdbMTMsMTQpJywg J1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMiknLCAnWzIzLDI0KScpOwor Q1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZP UiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScs ICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdbMTYsMTcpJywgJ1sxOCwxOSknLCAn WzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKICAgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwKICAgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwKQEAgLTE5Mzks OCArMjcyOCw4IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n ICgKICAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKICkgUEFSVElUSU9OIEJZ IExJU1QgKGlkKTsKLUNSRUFURSBUQUJMRSB0ZmtwMSBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUs NiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknKTsKLUNSRUFURSBUQUJMRSB0ZmtwMiBw YXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElO ICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMp Jyk7CitDUkVBVEUgVEFCTEUgdGZrcDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3 LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgp JywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitDUkVBVEUgVEFCTEUgdGZrcDIg UEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJ TiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSkn LCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywg J1syMiwyMyknLCAnWzI0LDI1KScpOwogCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNp bmcgaW5zZXJ0cwpAQCAtMjAzMywzNiArMjgyMiw5MCBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5n ZQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKIC0tCiAKK1RS VU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQog ICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAgICAgT04gREVMRVRFIENB U0NBREUgT04gVVBEQVRFIENBU0NBREU7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNCw1KSc7CitVUERBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1s0LDUpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMCwxMSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzE1LDE2KScpOworVVBEQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzE2LDE3KScgV0hFUkUgaWQgPSAnWzE1LDE2KScgQU5E IHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAsMTEpJzsKIAogLS0KIC0tIHBh cnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCiAtLQogCitUUlVOQ0FURSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBXSEVSRSBpZCA9ICdbOCw5KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzUsNiknOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE3LDE4KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNywxOCknLCBk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTEsMTIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sx NywxOCknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9 ICdbMTcsMTgpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMSwxMikn OworCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCiAt LQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzksMTApJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAgICAgT04g REVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8g JzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s2 LDcpJzsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1sxMCwxMSkn IFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzYsNyknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxOCwxOSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0ZXJhbmdlKCcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEyLDEz KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTgsMTkpJyk7CitV UERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTksMjApJyBXSEVSRSBp ZCA9ICdbMTgsMTkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMiwx MyknOwogCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxM CiAtLQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s3LDgpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxMSwxMiknKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5 LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzExLDEyKSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzcsOCknOwor REVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1sxMSwxMikn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1s3LDgpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMjAsMjEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAt MDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzIwLDIxKScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMywxNCknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzIwLDIxKScpOworREVMRVRFIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syMCwyMSknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzEzLDE0KSc7CisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMCwxKScs IGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxMiwxMyknKTsKIEFMVEVSIFRB QkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKICAgQUxURVIgQ09MVU1OIHBhcmVu dF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLApAQCAtMjA3MCwxMSArMjkxMywzNCBAQCBBTFRFUiBU QUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiAgICAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nCiAgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVM VDsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTMsMTQpJyBX SEVSRSBpZCA9ICdbMTIsMTMpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzIyLDIzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1syMiwyMyknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1syMiwyMyknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg U0VUIGlkID0gJ1syMywyNCknIFdIRVJFIGlkID0gJ1syMiwyMyknIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CiAKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyBy ZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMCwx KScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE0LDE1KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5LDEwKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTQsMTUpJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1sxNCwxNSknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1s5LDEwKSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQg PSAnWzE0LDE1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzksMTApJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjQsMjUpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzI0LDI1KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzI0LDI1KScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syNCwyNSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzE1LDE2KSc7CisKIERST1AgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nOwogCkBAIC0yMTk3LDM2ICszMDYzLDkwIEBAIERFTEVURSBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZW11CiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQogLS0KIAor VFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1s0LDUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSksICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZwogICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZ19maywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZwog ICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworVVBEQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4 KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKK1VQREFURSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzQsNSknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMTAsMTEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMTUsMTYpJyk7CitVUERBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfbWx0cm5nIFNFVCBpZCA9ICdbMTYsMTcpJyBXSEVSRSBpZCA9ICdbMTUsMTYp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMCwxMSknOwog CiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKIC0tCiAK K1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUg aWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTcsMTgpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx NywxOCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE3LDE4KScpOwor REVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFdIRVJFIGlkID0gJ1sxNywx OCknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7 CisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKIC0t CiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1s5LDEwKScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwogICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19maywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21s dHJuZwogICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CitVUERBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlk ID0gJ1sxMCwxMSknIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzYsNyknOworVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgaWQgPSAnWzEwLDExKScgV0hFUkUgaWQg PSAnWzksMTApJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE4LDE5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgs MTkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1sxOCwxOSknKTsKK1VQ REFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1sxOSwyMCknIFdIRVJF IGlkID0gJ1sxOCwxOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzEyLDEzKSc7CiAKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIE5VTEwKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTEsMTIpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s3LDgpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMTEsMTIpJyk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBp ZCA9ICdbMTEsMTIpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNyw4KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzcsOCknOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1syMCwyMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzIwLDIxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMTMsMTQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSksICdbMjAsMjEpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9t bHRybmcgV0hFUkUgaWQgPSAnWzIwLDIxKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMTMsMTQpJzsKKwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5j ZWQgdXBkYXRlcyBTRVQgREVGQVVMVAogLS0KIAorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfbWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1swLDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEyLDEzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzEyLDEzKScpOwog QUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwogICBBTFRF UiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbMCwxKScsCiAgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrLApAQCAtMjIzNCwxMSAr MzE1NCwzNCBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0 cm5nCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nCiAgICAgT04gREVMRVRFIFNFVCBE RUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUg aWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZyBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzgsOSknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMjIsMjMpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIFNFVCBpZCA9ICdbMjMsMjQpJyBXSEVSRSBpZCA9ICdbMjIsMjMpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxNCwxNSknOwogCiAt LQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCiAtLQog CitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcsIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzAsMSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpLCAnWzE0LDE1KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzE0LDE1KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzksMTApJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJu ZyBXSEVSRSBpZCA9ICdbMTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwyNSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzI0LDI1KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTUsMTYpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdb MjQsMjUpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUg aWQgPSAnWzI0LDI1KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMTUsMTYpJzsKKwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcy bWx0cm5nOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmc7CiAKLS0gCjIu NDUuMAoK --00000000000030a223062454f4b4 Content-Type: application/octet-stream; name="v40-0002-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v40-0002-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m2754s3d1 RnJvbSAxNjFkNzg4YWE0NTZlZTY2NDVlODMxN2E3M2M0NmUxOWIzZmIyZGM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMjUgSnVuIDIwMjEgMTg6NTQ6MzUgLTA3MDAKU3ViamVj dDogW1BBVENIIHY0MCAyLzRdIEFkZCBVUERBVEUvREVMRVRFIEZPUiBQT1JUSU9OIE9GCgotIEFk ZGVkIGJpc29uIHN1cHBvcnQgZm9yIEZPUiBQT1JUSU9OIE9GIHN5bnRheC4gVGhlIGJvdW5kcyBt dXN0IGJlCiAgY29uc3RhbnQsIHNvIHdlIGZvcmJpZCBjb2x1bW4gcmVmZXJlbmNlcywgc3VicXVl cmllcywgZXRjLiBCdXQgbW9zdAogIGV4cHJlc3Npb25zIHdvcmssIGUuZy4gTk9XKCkgKyBJTlRF UlZBTCAnMScgSE9VUi4KLSBBZGRlZCBsb2dpYyB0byBleGVjdXRvciB0byBpbnNlcnQgbmV3IHJv d3MgZm9yIHRoZSAibGVmdG92ZXIiIHBhcnQgb2YKICBhIHJlY29yZCB0b3VjaGVkIGJ5IGEgRk9S IFBPUlRJT04gT0YgcXVlcnkuIFRoaXMgdXNlcyBTUEkgc2luY2UgZWFjaAogIGluc2VydCBtdXN0 IGJlIHRyZWF0ZWQgYXMgYSBzZXBhcmF0ZSBzdGF0ZW1lbnQgKGFjY29yZGluZyB0byB0aGUKICBz dGFuZGFyZCksIGZpcmluZyBCRUZPUkUvQUZURVIgU1RBVEVNRU5UIHRyaWdnZXJzLCBnZXR0aW5n IGl0cyBvd24KICB0cmFuc2l0aW9uIHRhYmxlLCBldGMuIFNQSSBhbHNvIGdpdmVzIHVzIGVhc3kg dHVwbGUgcm91dGluZyAoaW4gY2FzZQogIHRoZSB1cGRhdGUgY2hhbmdlZCB0aGUgcGFydGl0aW9u IGtleSkuCi0gQWRkZWQgdGdfdGVtcG9yYWwgZGVzY3JpcHRvciB0byB0aGUgVHJpZ2dlckRhdGEg c3RydWN0IHRoYXQgd2UgcGFzcyB0bwogIHRyaWdnZXIgZnVuY3Rpb25zLiBPdXIgdHJpZ2dlcnMg dXNlIHRoaXMgdG8gbGVhcm4gd2hhdCBib3VuZHMgd2VyZQogIGdpdmVuIGluIHRoZSBGT1IgUE9S VElPTiBPRiBjbGF1c2UuCi0gRG9jdW1lbnRlZCBGT1IgUE9SVElPTiBPRi4KLSBEb2N1bWVudGVk IHRnX3RlbXBvcmFsIHN0cnVjdC4KLSBBZGRlZCB0ZXN0cy4KLS0tCiAuLi4vcG9zdGdyZXNfZmR3 L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgICAgfCAgIDUgKwogY29udHJpYi9wb3N0Z3Jlc19m ZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgICAgIHwgICA0ICsKIGNvbnRyaWIvc2VwZ3NxbC9wcm9j LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogY29udHJpYi91bmFjY2VudC91bmFj Y2VudC5jICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGRvYy9zcmMvc2dtbC9yZWYvZGVsZXRl LnNnbWwgICAgICAgICAgICAgICAgICB8ICA3MiArLQogZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUu c2dtbCAgICAgICAgICAgICAgICAgIHwgIDkwICstCiBkb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21s ICAgICAgICAgICAgICAgICAgICAgfCAgNjQgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dp c3R2YWxpZGF0ZS5jICAgICAgICB8ICAzNCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYyAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5j ICAgICAgICAgICAgICAgIHwgIDQ2ICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMg ICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFi bGUuYyAgICAgICAgfCA0OTcgKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5j ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNz LmMgICAgICAgICAgICAgICAgIHwgIDI0ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2Ny ZWF0ZXBsYW4uYyAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhu b2RlLmMgICAgICAgICB8ICAgMyArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAg ICAgICAgICAgICAgIHwgMjQxICsrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAg ICAgICAgICAgICAgICAgIHwgMTAwICsrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5j ICAgICAgICAgICAgICAgIHwgIDEwICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRl LmMgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAg ICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyAgICAg ICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jICAgICAg ICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jICAg ICAgICAgIHwgIDQwICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jICAgICAg ICAgICB8ICA3NCArKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgICAgICAg ICAgIHwgIDU3ICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy90cmlnZ2VyLmggICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAg IHwgIDI1ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 ICA0NiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgMjYg Kwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmggICAgICAgICAgICAgIHwgICAyICst CiBzcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oICAgICAgICAgICAgICAgICAgfCAgIDMgKy0K IHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dCAgfCA3OTIgKysrKysrKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0ICAgICAg fCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2aWxlZ2VzLm91dCAgICAgIHwg IDE4ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dCB8ICAz MiArCiAuLi4vcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCAgICAgfCAxNDAg KysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAy ICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwgICAgICAgfCA2MTkg KysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29wcl9zYW5pdHkuc3FsICAgICAg ICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wcml2aWxlZ2VzLnNxbCAgICAgICAg ICAgfCAgMTggKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNxbCAgICAg IHwgIDE0ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsICAgICB8 ICA4OCArKwogNTEgZmlsZXMgY2hhbmdlZCwgMzE2OCBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9w b3J0aW9uX29mLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zv cl9wb3J0aW9uX29mLnNxbAoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVj dGVkL3Bvc3RncmVzX2Zkdy5vdXQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0 Z3Jlc19mZHcub3V0CmluZGV4IGYyYmNkNmFhOThjLi40M2JlM2ZmOTkwOCAxMDA2NDQKLS0tIGEv Y29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250 cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC02MzczLDYgKzYz NzMsMTEgQEAgREVMRVRFIEZST00gZnQyCiAKIERFTEVURSBGUk9NIGZ0MiBXSEVSRSBmdDIuYzEg PiAyMDAwOwogQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKEFERCBleHRlbnNpb25zICdw b3N0Z3Jlc19mZHcnKTsKKy0tIFRlc3QgVVBEQVRFL0RFTEVURSB3aXRoIEZPUiBQT1JUSU9OIE9G CitVUERBVEUgZnQyIEZPUiBQT1JUSU9OIE9GIGMzIEZST00gJ2EnIFRPICdiJyBTRVQgYzEgPSAx OworRVJST1I6ICBmb3JlaWduIHRhYmxlcyBkb24ndCBzdXBwb3J0IEZPUiBQT1JUSU9OIE9GCitE RUxFVEUgRlJPTSBmdDIgRk9SIFBPUlRJT04gT0YgYzMgRlJPTSAnYScgVE8gJ2InOworRVJST1I6 ICBmb3JlaWduIHRhYmxlcyBkb24ndCBzdXBwb3J0IEZPUiBQT1JUSU9OIE9GCiAtLSBUZXN0IHRo YXQgdHJpZ2dlciBvbiByZW1vdGUgdGFibGUgd29ya3MgYXMgZXhwZWN0ZWQKIENSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OICJTIDEiLkZfQlJUUklHKCkgUkVUVVJOUyB0cmlnZ2VyIEFTICQkCiBC RUdJTgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5z cWwgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbAppbmRleCAzNzJm ZTZkYWQxNS4uNzg2ZjU3MjMxYTMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Nx bC9wb3N0Z3Jlc19mZHcuc3FsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jl c19mZHcuc3FsCkBAIC0xNTc5LDYgKzE1NzksMTAgQEAgREVMRVRFIEZST00gZnQyCiBERUxFVEUg RlJPTSBmdDIgV0hFUkUgZnQyLmMxID4gMjAwMDsKIEFMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJ T05TIChBREQgZXh0ZW5zaW9ucyAncG9zdGdyZXNfZmR3Jyk7CiAKKy0tIFRlc3QgVVBEQVRFL0RF TEVURSB3aXRoIEZPUiBQT1JUSU9OIE9GCitVUERBVEUgZnQyIEZPUiBQT1JUSU9OIE9GIGMzIEZS T00gJ2EnIFRPICdiJyBTRVQgYzEgPSAxOworREVMRVRFIEZST00gZnQyIEZPUiBQT1JUSU9OIE9G IGMzIEZST00gJ2EnIFRPICdiJzsKKwogLS0gVGVzdCB0aGF0IHRyaWdnZXIgb24gcmVtb3RlIHRh YmxlIHdvcmtzIGFzIGV4cGVjdGVkCiBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiAiUyAxIi5G X0JSVFJJRygpIFJFVFVSTlMgdHJpZ2dlciBBUyAkJAogQkVHSU4KZGlmZiAtLWdpdCBhL2NvbnRy aWIvc2VwZ3NxbC9wcm9jLmMgYi9jb250cmliL3NlcGdzcWwvcHJvYy5jCmluZGV4IDQ4OTliYzJh M2UzLi4yMDEyMGZkNTMxZiAxMDA2NDQKLS0tIGEvY29udHJpYi9zZXBnc3FsL3Byb2MuYworKysg Yi9jb250cmliL3NlcGdzcWwvcHJvYy5jCkBAIC0xNjEsNyArMTYxLDcgQEAgc2VwZ3NxbF9wcm9j X2Ryb3AoT2lkIGZ1bmN0aW9uSWQpCiAJICogY2hlY2sgZGJfc2NoZW1hOntyZW1vdmVfbmFtZX0g cGVybWlzc2lvbgogCSAqLwogCW9iamVjdC5jbGFzc0lkID0gTmFtZXNwYWNlUmVsYXRpb25JZDsK LQlvYmplY3Qub2JqZWN0SWQgPSBnZXRfZnVuY19uYW1lc3BhY2UoZnVuY3Rpb25JZCk7CisJb2Jq ZWN0Lm9iamVjdElkID0gZ2V0X2Z1bmNfbmFtZXNwYWNlKGZ1bmN0aW9uSWQsIHRydWUpOwogCW9i amVjdC5vYmplY3RTdWJJZCA9IDA7CiAJYXVkaXRfbmFtZSA9IGdldE9iamVjdElkZW50aXR5KCZv YmplY3QsIGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvY29udHJpYi91bmFjY2VudC91bmFjY2VudC5j IGIvY29udHJpYi91bmFjY2VudC91bmFjY2VudC5jCmluZGV4IDcwNzk2MjMwNWY4Li4zYjc2NDZl YzcyYSAxMDA2NDQKLS0tIGEvY29udHJpYi91bmFjY2VudC91bmFjY2VudC5jCisrKyBiL2NvbnRy aWIvdW5hY2NlbnQvdW5hY2NlbnQuYwpAQCAtNDQ5LDcgKzQ0OSw3IEBAIHVuYWNjZW50X2RpY3Qo UEdfRlVOQ1RJT05fQVJHUykKIAkJICogVXNlIHRoZSAidW5hY2NlbnQiIGRpY3Rpb25hcnkgdGhh dCBpcyBpbiB0aGUgc2FtZSBzY2hlbWEgdGhhdCB0aGlzCiAJCSAqIGZ1bmN0aW9uIGlzIGluLgog CQkgKi8KLQkJT2lkCQkJcHJvY25zcGlkID0gZ2V0X2Z1bmNfbmFtZXNwYWNlKGZjaW5mby0+Zmxp bmZvLT5mbl9vaWQpOworCQlPaWQJCQlwcm9jbnNwaWQgPSBnZXRfZnVuY19uYW1lc3BhY2UoZmNp bmZvLT5mbGluZm8tPmZuX29pZCwgdHJ1ZSk7CiAJCWNvbnN0IGNoYXIgKmRpY3RuYW1lID0gInVu YWNjZW50IjsKIAogCQlkaWN0T2lkID0gR2V0U3lzQ2FjaGVPaWQyKFRTRElDVE5BTUVOU1AsIEFu dW1fcGdfdHNfZGljdF9vaWQsCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGFlYjRkMjY1YTg1Li5kYmFmOWE4 NWUzNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTgzMyw3ICs4MzMsNyBAQAogICAgICAgIDxzdHJ1Y3Rm aWVsZD5hbW9wcHVycG9zZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+CiAgICAgICA8 L3BhcmE+CiAgICAgICA8cGFyYT4KLSAgICAgICBPcGVyYXRvciBwdXJwb3NlLCBlaXRoZXIgPGxp dGVyYWw+czwvbGl0ZXJhbD4gZm9yIHNlYXJjaCBvcgorICAgICAgIE9wZXJhdG9yIHB1cnBvc2Us IGVpdGhlciA8bGl0ZXJhbD5zPC9saXRlcmFsPiBmb3Igc2VhcmNoLCBvcgogICAgICAgIDxsaXRl cmFsPm88L2xpdGVyYWw+IGZvciBvcmRlcmluZwogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAg IDwvcm93PgpAQCAtODY1LDcgKzg2NSw3IEBACiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4K ICAgICAgICBUaGUgQi10cmVlIG9wZXJhdG9yIGZhbWlseSB0aGlzIGVudHJ5IHNvcnRzIGFjY29y ZGluZyB0bywgaWYgYW4KLSAgICAgICBvcmRlcmluZyBvcGVyYXRvcjsgemVybyBpZiBhIHNlYXJj aCBvcGVyYXRvciBvciBwb3J0aW9uIG9wZXJhdG9yCisgICAgICAgb3JkZXJpbmcgb3BlcmF0b3I7 IHplcm8gaWYgYSBzZWFyY2ggb3BlcmF0b3IKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8 L3Jvdz4KICAgICA8L3Rib2R5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwKaW5kZXggNzcxNzg1NWJjOWUuLjYz MzBmZGZmNGMwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwKQEAgLTIyLDcgKzIyLDkgQEAgUG9zdGdyZVNR TCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogWyBXSVRIIFsg UkVDVVJTSVZFIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPndpdGhfcXVlcnk8L3Jl cGxhY2VhYmxlPiBbLCAuLi5dIF0KLURFTEVURSBGUk9NIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyBbIEFTIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFsaWFzPC9yZXBsYWNlYWJsZT4gXQorREVM RVRFIEZST00gWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25h bWU8L3JlcGxhY2VhYmxlPiBbICogXQorICAgIFsgRk9SIFBPUlRJT04gT0YgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gRlJP TSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RhcnRfdGltZTwvcmVwbGFjZWFibGU+ IFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbmRfdGltZTwvcmVwbGFjZWFibGU+ IF0KKyAgICBbIFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YWxpYXM8L3Jl cGxhY2VhYmxlPiBdCiAgICAgWyBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdCiAgICAgWyBXSEVSRSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+Y29uZGl0aW9uPC9yZXBsYWNlYWJsZT4gfCBXSEVSRSBDVVJS RU5UIE9GIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jdXJzb3JfbmFtZTwvcmVwbGFj ZWFibGU+IF0KICAgICBbIFJFVFVSTklORyB7ICogfCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+b3V0cHV0X2V4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBbIFsgQVMgXSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+b3V0cHV0X25hbWU8L3JlcGxhY2VhYmxlPiBdIH0gWywgLi4u XSBdCkBAIC01NCw2ICs1NiwzOSBAQCBERUxFVEUgRlJPTSBbIE9OTFkgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKgogICAgY2lyY3Vt c3RhbmNlcy4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgSWYgdGhlIHRhYmxlIGhhcyBhIHJh bmdlIG9yIG11bHRpcmFuZ2UgY29sdW1uLAorICAgeW91IG1heSBzdXBwbHkgYSA8bGl0ZXJhbD5G T1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gY2xhdXNlLCBhbmQgeW91ciBkZWxldGUgd2lsbAorICAg b25seSBhZmZlY3Qgcm93cyB0aGF0IG92ZXJsYXAgdGhlIGdpdmVuIGludGVydmFsLiBGdXJ0aGVy bW9yZSwgaWYgYSByb3cncyBzcGFuCisgICBleHRlbmRzIG91dHNpZGUgdGhlIDxsaXRlcmFsPkZP UiBQT1JUSU9OIE9GPC9saXRlcmFsPiBib3VuZHMsIHRoZW4geW91ciBkZWxldGUKKyAgIHdpbGwg b25seSBjaGFuZ2UgdGhlIHNwYW4gd2l0aGluIHRob3NlIGJvdW5kcy4gSW4gZWZmZWN0IHlvdSBh cmUgZGVsZXRpbmcgYW55CisgICBtb21lbnQgdGFyZ2V0ZWQgYnkgPGxpdGVyYWw+Rk9SIFBPUlRJ T04gT0Y8L2xpdGVyYWw+IGFuZCBubyBtb21lbnRzIG91dHNpZGUuCisgIDwvcGFyYT4KKworICA8 cGFyYT4KKyAgIFNwZWNpZmljYWxseSwgYWZ0ZXIgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3By b2R1Y3RuYW1lPiBkZWxldGVzIHRoZSBleGlzdGluZyByb3csCisgICBpdCB3aWxsIDxsaXRlcmFs PklOU0VSVDwvbGl0ZXJhbD4KKyAgIG5ldyByb3dzIHdob3NlIHJhbmdlIG9yIHN0YXJ0L2VuZCBj b2x1bW4ocykgcmVjZWl2ZSB0aGUgcmVtYWluaW5nIHNwYW4gb3V0c2lkZQorICAgdGhlIHRhcmdl dGVkIGJvdW5kcywgY29udGFpbmluZyB0aGUgb3JpZ2luYWwgdmFsdWVzIGluIG90aGVyIGNvbHVt bnMuCisgICBUaGVyZSB3aWxsIGJlIHplcm8gdG8gdHdvIGluc2VydGVkIHJlY29yZHMsCisgICBk ZXBlbmRpbmcgb24gd2hldGhlciB0aGUgb3JpZ2luYWwgc3BhbiBleHRlbmRlZCBiZWZvcmUgdGhl IHRhcmdldGVkCisgICA8bGl0ZXJhbD5GUk9NPC9saXRlcmFsPiwgYWZ0ZXIgdGhlIHRhcmdldGVk IDxsaXRlcmFsPlRPPC9saXRlcmFsPiwgYm90aCwgb3IgbmVpdGhlci4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgVGhlc2Ugc2Vjb25kYXJ5IGluc2VydHMgZmlyZSA8bGl0ZXJhbD5JTlNFUlQ8 L2xpdGVyYWw+IHRyaWdnZXJzLiBGaXJzdAorICAgPGxpdGVyYWw+QkVGT1JFIERFTEVURTwvbGl0 ZXJhbD4gdHJpZ2dlcnMgZmlyc3QsIHRoZW4KKyAgIDxsaXRlcmFsPkJFRk9SRSBJTlNFUlQ8L2xp dGVyYWw+LCB0aGVuIDxsaXRlcmFsPkFGVEVSIElOU0VSVDwvbGl0ZXJhbD4sCisgICB0aGVuIDxs aXRlcmFsPkFGVEVSIERFTEVURTwvbGl0ZXJhbD4uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAg IFRoZXNlIHNlY29uZGFyeSBpbnNlcnRzIGRvIG5vdCByZXF1aXJlIDxsaXRlcmFsPklOU0VSVDwv bGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSB0YWJsZS4KKyAgIFRoaXMgaXMgYmVjYXVzZSBjb25j ZXB0dWFsbHkgbm8gbmV3IGluZm9ybWF0aW9uIGhhcyBiZWVuIGFkZGVkLiBUaGUgaW5zZXJ0ZWQg cm93cyBvbmx5IHByZXNlcnZlCisgICBleGlzdGluZyBkYXRhIGFib3V0IHRoZSB1bnRhcmdldGVk IHRpbWUgcGVyaW9kLiBOb3RlIHRoaXMgbWF5IHJlc3VsdCBpbiB1c2VycyBmaXJpbmcgPGxpdGVy YWw+SU5TRVJUPC9saXRlcmFsPgorICAgdHJpZ2dlcnMgd2hvIGRvbid0IGhhdmUgaW5zZXJ0IHBy aXZpbGVnZXMsIHNvIGJlIGNhcmVmdWwgYWJvdXQgPGxpdGVyYWw+U0VDVVJJVFkgREVGSU5FUjwv bGl0ZXJhbD4gdHJpZ2dlciBmdW5jdGlvbnMhCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRo ZSBvcHRpb25hbCA8bGl0ZXJhbD5SRVRVUk5JTkc8L2xpdGVyYWw+IGNsYXVzZSBjYXVzZXMgPGNv bW1hbmQ+REVMRVRFPC9jb21tYW5kPgogICAgdG8gY29tcHV0ZSBhbmQgcmV0dXJuIHZhbHVlKHMp IGJhc2VkIG9uIGVhY2ggcm93IGFjdHVhbGx5IGRlbGV0ZWQuCkBAIC0xMTYsNiArMTUxLDQxIEBA IERFTEVURSBGUk9NIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJs ZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVu dHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAg IDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgcmFuZ2UgY29sdW1uIG9yIHBlcmlv ZCB0byB1c2Ugd2hlbiBwZXJmb3JtaW5nIGEgdGVtcG9yYWwgZGVsZXRlLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdGFydF90aW1lPC9y ZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRo ZSBlYXJsaWVzdCB0aW1lIChpbmNsdXNpdmUpIHRvIGNoYW5nZSBpbiBhIHRlbXBvcmFsIGRlbGV0 ZS4KKyAgICAgIFRoaXMgbXVzdCBiZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBiYXNlIHR5cGUgb2Yg dGhlIHJhbmdlIG9yIHBlcmlvZCBmcm9tCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPi4gQQorICAgICAgPGxpdGVy YWw+TlVMTDwvbGl0ZXJhbD4gaGVyZSBpbmRpY2F0ZXMgYSBkZWxldGUgd2hvc2UgYmVnaW5uaW5n IGlzCisgICAgICB1bmJvdW5kZWQgKGFzIHdpdGggcmFuZ2UgdHlwZXMpLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbmRfdGltZTwvcmVw bGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUg bGF0ZXN0IHRpbWUgKGV4Y2x1c2l2ZSkgdG8gY2hhbmdlIGluIGEgdGVtcG9yYWwgZGVsZXRlLgor ICAgICAgVGhpcyBtdXN0IGJlIGEgdmFsdWUgbWF0Y2hpbmcgdGhlIGJhc2UgdHlwZSBvZiB0aGUg cmFuZ2Ugb3IgcGVyaW9kIGZyb20KKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+LiBBCisgICAgICA8bGl0ZXJhbD5O VUxMPC9saXRlcmFsPiBoZXJlIGluZGljYXRlcyBhIGRlbGV0ZSB3aG9zZSBlbmQgaXMgdW5ib3Vu ZGVkCisgICAgICAoYXMgd2l0aCByYW5nZSB0eXBlcykuCisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZyb21faXRlbTwvcmVwbGFjZWFibGU+ PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvdXBk YXRlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sCmluZGV4IDFjNDMzYmVjMmJi Li5jODkzY2M3OTVmMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sCkBAIC0yMiw3ICsyMiw5IEBAIFBvc3Rn cmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIFsgV0lU SCBbIFJFQ1VSU0lWRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj53aXRoX3F1ZXJ5 PC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdCi1VUERBVEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbIFsgQVMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YWxpYXM8L3JlcGxhY2VhYmxlPiBdCitVUERB VEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3Jl cGxhY2VhYmxlPiBbICogXQorICAgIFsgRk9SIFBPUlRJT04gT0YgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZvcl9wb3J0aW9uX29mX3RhcmdldDwvcmVwbGFjZWFibGU+ IF0KKyAgICBbIFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YWxpYXM8L3Jl cGxhY2VhYmxlPiBdCiAgICAgU0VUIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gfCBERUZBVUxUIH0gfAogICAgICAgICAgICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywg Li4uXSApID0gWyBST1cgXSAoIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJl c3Npb248L3JlcGxhY2VhYmxlPiB8IERFRkFVTFQgfSBbLCAuLi5dICkgfAogICAgICAgICAgICgg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4g WywgLi4uXSApID0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3ViLVNFTEVDVDwv cmVwbGFjZWFibGU+ICkKQEAgLTUxLDYgKzUzLDQxIEBAIFVQREFURSBbIE9OTFkgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsK ICAgIGNpcmN1bXN0YW5jZXMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIElmIHRoZSB0YWJs ZSBoYXMgYSByYW5nZSBvciBtdWx0aXJhbmdlIGNvbHVtbiwKKyAgIHlvdSBtYXkgc3VwcGx5IGEg PGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGNsYXVzZSwgYW5kIHlvdXIgdXBkYXRl IHdpbGwKKyAgIG9ubHkgYWZmZWN0IHJvd3MgdGhhdCBvdmVybGFwIHRoZSBnaXZlbiBpbnRlcnZh bC4gRnVydGhlcm1vcmUsIGlmIGEgcm93J3Mgc3BhbgorICAgZXh0ZW5kcyBvdXRzaWRlIHRoZSA8 bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRzLCB0aGVuIHlvdXIgdXBkYXRl CisgICB3aWxsIG9ubHkgY2hhbmdlIHRoZSBzcGFuIHdpdGhpbiB0aG9zZSBib3VuZHMuIEluIGVm ZmVjdCB5b3UgYXJlIHVwZGF0aW5nIGFueQorICAgbW9tZW50IHRhcmdldGVkIGJ5IDxsaXRlcmFs PkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBhbmQgbm8gbW9tZW50cyBvdXRzaWRlLgorICA8L3Bh cmE+CisKKyAgPHBhcmE+CisgICBTcGVjaWZpY2FsbHksIHdoZW4gPHByb2R1Y3RuYW1lPlBvc3Rn cmVTUUw8L3Byb2R1Y3RuYW1lPiB1cGRhdGVzIHRoZSBleGlzdGluZyByb3csCisgICBpdCB3aWxs IGFsc28gY2hhbmdlIHRoZSByYW5nZSBvciBzdGFydC9lbmQgY29sdW1uKHMpIHNvIHRoYXQgdGhl aXIgaW50ZXJ2YWwKKyAgIG5vIGxvbmdlciBleHRlbmRzIGJleW9uZCB0aGUgdGFyZ2V0ZWQgPGxp dGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGJvdW5kcy4KKyAgIFRoZW4gPHByb2R1Y3Ru YW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiB3aWxsIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJh bD4KKyAgIG5ldyByb3dzIHdob3NlIHJhbmdlIG9yIHN0YXJ0L2VuZCBjb2x1bW4ocykgcmVjZWl2 ZSB0aGUgcmVtYWluaW5nIHNwYW4gb3V0c2lkZQorICAgdGhlIHRhcmdldGVkIGJvdW5kcywgY29u dGFpbmluZyB0aGUgdW4tdXBkYXRlZCB2YWx1ZXMgaW4gb3RoZXIgY29sdW1ucy4KKyAgIFRoZXJl IHdpbGwgYmUgemVybyB0byB0d28gaW5zZXJ0ZWQgcmVjb3JkcywKKyAgIGRlcGVuZGluZyBvbiB3 aGV0aGVyIHRoZSBvcmlnaW5hbCBzcGFuIGV4dGVuZGVkIGJlZm9yZSB0aGUgdGFyZ2V0ZWQKKyAg IDxsaXRlcmFsPkZST008L2xpdGVyYWw+LCBhZnRlciB0aGUgdGFyZ2V0ZWQgPGxpdGVyYWw+VE88 L2xpdGVyYWw+LCBib3RoLCBvciBuZWl0aGVyLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBU aGVzZSBzZWNvbmRhcnkgaW5zZXJ0cyBmaXJlIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJhbD4gdHJp Z2dlcnMuIEZpcnN0CisgICA8bGl0ZXJhbD5CRUZPUkUgVVBEQVRFPC9saXRlcmFsPiB0cmlnZ2Vy cyBmaXJzdCwgdGhlbgorICAgPGxpdGVyYWw+QkVGT1JFIElOU0VSVDwvbGl0ZXJhbD4sIHRoZW4g PGxpdGVyYWw+QUZURVIgSU5TRVJUPC9saXRlcmFsPiwKKyAgIHRoZW4gPGxpdGVyYWw+QUZURVIg VVBEQVRFPC9saXRlcmFsPi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlc2Ugc2Vjb25k YXJ5IGluc2VydHMgZG8gbm90IHJlcXVpcmUgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPiBwcml2 aWxlZ2Ugb24gdGhlIHRhYmxlLgorICAgVGhpcyBpcyBiZWNhdXNlIGNvbmNlcHR1YWxseSBubyBu ZXcgaW5mb3JtYXRpb24gaGFzIGJlZW4gYWRkZWQuIFRoZSBpbnNlcnRlZCByb3dzIG9ubHkgcHJl c2VydmUKKyAgIGV4aXN0aW5nIGRhdGEgYWJvdXQgdGhlIHVudGFyZ2V0ZWQgdGltZSBwZXJpb2Qu IE5vdGUgdGhpcyBtYXkgcmVzdWx0IGluIHVzZXJzIGZpcmluZyA8bGl0ZXJhbD5JTlNFUlQ8L2xp dGVyYWw+CisgICB0cmlnZ2VycyB3aG8gZG9uJ3QgaGF2ZSBpbnNlcnQgcHJpdmlsZWdlcywgc28g YmUgY2FyZWZ1bCBhYm91dCA8bGl0ZXJhbD5TRUNVUklUWSBERUZJTkVSPC9saXRlcmFsPiB0cmln Z2VyIGZ1bmN0aW9ucyEKKyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgVGhlIG9wdGlvbmFsIDxs aXRlcmFsPlJFVFVSTklORzwvbGl0ZXJhbD4gY2xhdXNlIGNhdXNlcyA8Y29tbWFuZD5VUERBVEU8 L2NvbW1hbmQ+CiAgICB0byBjb21wdXRlIGFuZCByZXR1cm4gdmFsdWUocykgYmFzZWQgb24gZWFj aCByb3cgYWN0dWFsbHkgdXBkYXRlZC4KQEAgLTExNCw2ICsxNTEsNTcgQEAgVVBEQVRFIFsgT05M WSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJs ZT4gWyAqIF0gWwogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZh cmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmFu Z2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgVGhlIHJhbmdlIGNvbHVtbiBvciBwZXJpb2QgdG8gdXNlIHdoZW4g cGVyZm9ybWluZyBhIHRlbXBvcmFsIHVwZGF0ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Zm9yX3BvcnRpb25fb2ZfdGFyZ2V0PC9yZXBs YWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBp bnRlcnZhbCB0byB1cGRhdGUuIElmIHlvdSBhcmUgdGFyZ2V0aW5nIGEgcmFuZ2UgY29sdW1uIG9y IDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4sCisgICAgICB5b3UgbWF5IGdpdmUgdGhpcyBpbiB0 aGUgZm9ybSA8bGl0ZXJhbD5GUk9NPC9saXRlcmFsPgorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnN0YXJ0X3RpbWU8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD5UTzwvbGl0ZXJh bD4KKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbmRfdGltZTwvcmVwbGFj ZWFibGU+LgorICAgICAgT3RoZXJ3aXNlIHlvdSBtdXN0IHVzZQorICAgICAgPGxpdGVyYWw+KDwv bGl0ZXJhbD48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+PGxpdGVyYWw+KTwvbGl0ZXJhbD4KKyAgICAgIHdoZXJlIHRoZSBleHByZXNzaW9uIHlp ZWxkcyBhIHZhbHVlIGZvciB0aGUgc2FtZSB0eXBlIGFzCisgICAgICA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPi4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RhcnRf dGltZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBUaGUgZWFybGllc3QgdGltZSAoaW5jbHVzaXZlKSB0byBjaGFuZ2UgaW4gYSB0ZW1wb3Jh bCB1cGRhdGUuCisgICAgICBUaGlzIG11c3QgYmUgYSB2YWx1ZSBtYXRjaGluZyB0aGUgYmFzZSB0 eXBlIG9mIHRoZSByYW5nZSBvciBwZXJpb2QgZnJvbQorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4uIEEKKyAgICAg IDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IGhlcmUgaW5kaWNhdGVzIGFuIHVwZGF0ZSB3aG9zZSBi ZWdpbm5pbmcgaXMKKyAgICAgIHVuYm91bmRlZCAoYXMgd2l0aCByYW5nZSB0eXBlcykuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJs aXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVuZF90 aW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFRoZSBsYXRlc3QgdGltZSAoZXhjbHVzaXZlKSB0byBjaGFuZ2UgaW4gYSB0ZW1wb3JhbCB1 cGRhdGUuCisgICAgICBUaGlzIG11c3QgYmUgYSB2YWx1ZSBtYXRjaGluZyB0aGUgYmFzZSB0eXBl IG9mIHRoZSByYW5nZSBvciBwZXJpb2QgZnJvbQorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4uIEEKKyAgICAgIDxs aXRlcmFsPk5VTEw8L2xpdGVyYWw+IGhlcmUgaW5kaWNhdGVzIGFuIHVwZGF0ZSB3aG9zZSBlbmQg aXMgdW5ib3VuZGVkCisgICAgICAoYXMgd2l0aCByYW5nZSB0eXBlcykuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+ CiAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9y ZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3RyaWdnZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKaW5kZXggYTlhYmFh YjkwNTYuLmU0ZjYzMDc1YTM2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKQEAgLTM2Niw2ICszNjYsMTUgQEAKICAg ICByZXNwb25zaWJpbGl0eSB0byBhdm9pZCB0aGF0LgogICAgPC9wYXJhPgogCisgICA8cGFyYT4K KyAgICBJZiBhbiA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+IG9yIDxjb21tYW5kPkRFTEVURTwv Y29tbWFuZD4gdXNlcworICAgIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiwgY2F1 c2luZyBuZXcgcm93cyB0byBiZSBpbnNlcnRlZAorICAgIHRvIHByZXNlcnZlIHRoZSBsZWZ0b3Zl ciB1bnRhcmdldGVkIHBhcnQgb2YgbW9kaWZpZWQgcmVjb3JkcywgdGhlbgorICAgIDxjb21tYW5k PklOU0VSVDwvY29tbWFuZD4gdHJpZ2dlcnMgYXJlIGZpcmVkIGZvciBlYWNoIGluc2VydGVkCisg ICAgcm93LiBFYWNoIHJvdyBpcyBpbnNlcnRlZCBzZXBhcmF0ZWx5LCBzbyB0aGV5IGZpcmUgdGhl aXIgb3duCisgICAgc3RhdGVtZW50IHRyaWdnZXJzLCBhbmQgdGhleSBoYXZlIHRoZWlyIG93biB0 cmFuc2l0aW9uIHRhYmxlcy4KKyAgIDwvcGFyYT4KKwogICAgPHBhcmE+CiAgICAgPGluZGV4dGVy bT4KICAgICAgPHByaW1hcnk+dHJpZ2dlcjwvcHJpbWFyeT4KQEAgLTU0NywxNyArNTU2LDE4IEBA IENBTExFRF9BU19UUklHR0VSKGZjaW5mbykKIDxwcm9ncmFtbGlzdGluZz4KIHR5cGVkZWYgc3Ry dWN0IFRyaWdnZXJEYXRhCiB7Ci0gICAgTm9kZVRhZyAgICAgICAgICB0eXBlOwotICAgIFRyaWdn ZXJFdmVudCAgICAgdGdfZXZlbnQ7Ci0gICAgUmVsYXRpb24gICAgICAgICB0Z19yZWxhdGlvbjsK LSAgICBIZWFwVHVwbGUgICAgICAgIHRnX3RyaWd0dXBsZTsKLSAgICBIZWFwVHVwbGUgICAgICAg IHRnX25ld3R1cGxlOwotICAgIFRyaWdnZXIgICAgICAgICAqdGdfdHJpZ2dlcjsKLSAgICBUdXBs ZVRhYmxlU2xvdCAgKnRnX3RyaWdzbG90OwotICAgIFR1cGxlVGFibGVTbG90ICAqdGdfbmV3c2xv dDsKLSAgICBUdXBsZXN0b3Jlc3RhdGUgKnRnX29sZHRhYmxlOwotICAgIFR1cGxlc3RvcmVzdGF0 ZSAqdGdfbmV3dGFibGU7Ci0gICAgY29uc3QgQml0bWFwc2V0ICp0Z191cGRhdGVkY29sczsKKyAg ICBOb2RlVGFnICAgICAgICAgICAgdHlwZTsKKyAgICBUcmlnZ2VyRXZlbnQgICAgICAgdGdfZXZl bnQ7CisgICAgUmVsYXRpb24gICAgICAgICAgIHRnX3JlbGF0aW9uOworICAgIEhlYXBUdXBsZSAg ICAgICAgICB0Z190cmlndHVwbGU7CisgICAgSGVhcFR1cGxlICAgICAgICAgIHRnX25ld3R1cGxl OworICAgIFRyaWdnZXIgICAgICAgICAgICp0Z190cmlnZ2VyOworICAgIFR1cGxlVGFibGVTbG90 ICAgICp0Z190cmlnc2xvdDsKKyAgICBUdXBsZVRhYmxlU2xvdCAgICAqdGdfbmV3c2xvdDsKKyAg ICBUdXBsZXN0b3Jlc3RhdGUgICAqdGdfb2xkdGFibGU7CisgICAgVHVwbGVzdG9yZXN0YXRlICAg KnRnX25ld3RhYmxlOworICAgIGNvbnN0IEJpdG1hcHNldCAgICp0Z191cGRhdGVkY29sczsKKyAg ICBGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWw7CiB9IFRyaWdnZXJEYXRhOwogPC9wcm9n cmFtbGlzdGluZz4KIApAQCAtODI1LDYgKzgzNSwzOCBAQCB0eXBlZGVmIHN0cnVjdCBUcmlnZ2Vy CiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxzdHJ1Y3RmaWVsZD50Z190ZW1w b3JhbDwvc3RydWN0ZmllbGQ+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJh PgorICAgICAgICBTZXQgZm9yIDxsaXRlcmFsPlVQREFURTwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFs PkRFTEVURTwvbGl0ZXJhbD4gcXVlcmllcworICAgICAgICB0aGF0IHVzZSA8bGl0ZXJhbD5GT1Ig UE9SVElPTiBPRjwvbGl0ZXJhbD4sIG90aGVyd2lzZSA8c3ltYm9sPk5VTEw8L3N5bWJvbD4uCisg ICAgICAgIENvbnRhaW5zIGEgcG9pbnRlciB0byBhIHN0cnVjdHVyZSBvZiB0eXBlCisgICAgICAg IDxzdHJ1Y3RuYW1lPkZvclBvcnRpb25PZlN0YXRlPC9zdHJ1Y3RuYW1lPiwgZGVmaW5lZCBpbgor ICAgICAgICA8ZmlsZW5hbWU+bm9kZXMvZXhlY25vZGVzLmg8L2ZpbGVuYW1lPjoKKworPHByb2dy YW1saXN0aW5nPgordHlwZWRlZiBzdHJ1Y3QgRm9yUG9ydGlvbk9mU3RhdGUKK3sKKyAgICBOb2Rl VGFnIHR5cGU7CisKKyAgICBjaGFyICAgKmZwX3JhbmdlTmFtZTsgICAgICAgLyogdGhlIGNvbHVt biBuYW1lZCBpbiBGT1IgUE9SVElPTiBPRiAqLworICAgIE9pZCAgICAgZnBfcmFuZ2VUeXBlOyAg ICAgICAvKiB0aGUgdHlwZSBvZiB0aGUgRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbiAqLworICAg IGludCAgICAgZnBfcmFuZ2VBdHRubzsgICAgICAvKiB0aGUgYXR0bm8gb2YgdGhlIHJhbmdlIGNv bHVtbiAqLworICAgIERhdHVtICAgZnBfdGFyZ2V0UmFuZ2U7ICAgICAvKiB0aGUgcmFuZ2UgZnJv bSBGT1IgUE9SVElPTiBPRiAqLworfSBGb3JQb3J0aW9uT2ZTdGF0ZTsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisKKyAgICAgICB3aGVyZSA8c3RydWN0ZmllbGQ+ZnBfcmFuZ2VOYW1lPC9zdHJ1Y3RmaWVs ZD4gaXMgdGhlIHJhbmdlCisgICAgICAgY29sdW1uIG5hbWVkIGluIHRoZSA8bGl0ZXJhbD5GT1Ig UE9SVElPTiBPRjwvbGl0ZXJhbD4gY2xhdXNlLAorICAgICAgIDxzdHJ1Y3RmaWVsZD5mcF9yYW5n ZVR5cGU8L3N0cnVjdGZpZWxkPiBpcyBpdHMgcmFuZ2UgdHlwZSwKKyAgICAgICA8c3RydWN0Zmll bGQ+ZnBfcmFuZ2VBdHRubzwvc3RydWN0ZmllbGQ+IGlzIGl0cyBhdHRyaWJ1dGUgbnVtYmVyLAor ICAgICAgIGFuZCA8c3RydWN0ZmllbGQ+ZnBfdGFyZ2V0UmFuZ2U8L3N0cnVjdGZpZWxkPiBpcyBh IHJhbmdldHlwZSB2YWx1ZSBjcmVhdGVkCisgICAgICAgYnkgZXZhbHVhdGluZyB0aGUgPGxpdGVy YWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGJvdW5kcy4KKyAgICAgICA8L3BhcmE+CisgICAg ICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICA8L3ZhcmlhYmxlbGlzdD4K ICAgIDwvcGFyYT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZh bGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYwppbmRleCBl MWFkNjViOWE0Zi4uZDA4ODZkOTFmMDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aXN0L2dpc3R2YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxp ZGF0ZS5jCkBAIC0yMDEsNyArMjAxLDcgQEAgZ2lzdHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQog CQl9CiAKIAkJLyogR2lTVCBzdXBwb3J0cyBPUkRFUiBCWSBvcGVyYXRvcnMgKi8KLQkJaWYgKG9w cmZvcm0tPmFtb3BwdXJwb3NlICE9IEFNT1BfU0VBUkNIKQorCQlpZiAob3ByZm9ybS0+YW1vcHB1 cnBvc2UgPT0gQU1PUF9PUkRFUikKIAkJewogCQkJLyogLi4uIGJ1dCBtdXN0IGhhdmUgbWF0Y2hp bmcgZGlzdGFuY2UgcHJvYyAqLwogCQkJaWYgKCFPaWRJc1ZhbGlkKGdldF9vcGZhbWlseV9wcm9j KG9wZmFtaWx5b2lkLApAQCAtMjI4LDI0ICsyMjgsMzggQEAgZ2lzdHZhbGlkYXRlKE9pZCBvcGNs YXNzb2lkKQogCQkJCXJlc3VsdCA9IGZhbHNlOwogCQkJfQogCQl9Ci0JCWVsc2UKKwkJZWxzZSBp ZiAob3ByZm9ybS0+YW1vcHB1cnBvc2UgPT0gQU1PUF9TRUFSQ0gpCiAJCXsKIAkJCS8qIFNlYXJj aCBvcGVyYXRvcnMgbXVzdCBhbHdheXMgcmV0dXJuIGJvb2wgKi8KIAkJCW9wX3JldHR5cGUgPSBC T09MT0lEOwogCQl9Ci0KLQkJLyogQ2hlY2sgb3BlcmF0b3Igc2lnbmF0dXJlICovCi0JCWlmICgh Y2hlY2tfYW1vcF9zaWduYXR1cmUob3ByZm9ybS0+YW1vcG9wciwgb3BfcmV0dHlwZSwKLQkJCQkJ CQkJICBvcHJmb3JtLT5hbW9wbGVmdHR5cGUsCi0JCQkJCQkJCSAgb3ByZm9ybS0+YW1vcHJpZ2h0 dHlwZSkpCisJCWVsc2UKIAkJeworCQkJLyogTm90aGluZyBlbHNlIGl0IGNvdWxkIGJlICovCiAJ CQllcmVwb3J0KElORk8sCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVG SU5JVElPTiksCi0JCQkJCSBlcnJtc2coIm9wZXJhdG9yIGZhbWlseSBcIiVzXCIgb2YgYWNjZXNz IG1ldGhvZCAlcyBjb250YWlucyBvcGVyYXRvciAlcyB3aXRoIHdyb25nIHNpZ25hdHVyZSIsCi0J CQkJCQkJb3BmYW1pbHluYW1lLCAiZ2lzdCIsCi0JCQkJCQkJZm9ybWF0X29wZXJhdG9yKG9wcmZv cm0tPmFtb3BvcHIpKSkpOworCQkJCQkgZXJybXNnKCJvcGVyYXRvciBmYW1pbHkgXCIlc1wiIG9m IGFjY2VzcyBtZXRob2QgJXMgY29udGFpbnMgdW5rbm93biBwdXJwb3NlICVjIGZvciBvcGVyYXRv ciAlcyIsCisJCQkJCQkgb3BmYW1pbHluYW1lLCAiZ2lzdCIsIG9wcmZvcm0tPmFtb3BwdXJwb3Nl LAorCQkJCQkJIGZvcm1hdF9vcGVyYXRvcihvcHJmb3JtLT5hbW9wb3ByKSkpKTsKKwkJCW9wX3Jl dHR5cGUgPSBJbnZhbGlkT2lkOwogCQkJcmVzdWx0ID0gZmFsc2U7CiAJCX0KKworCQkvKiBDaGVj ayBvcGVyYXRvciBzaWduYXR1cmUgKi8KKwkJaWYgKE9pZElzVmFsaWQob3BfcmV0dHlwZSkpCisJ CXsKKwkJCWlmICghY2hlY2tfYW1vcF9zaWduYXR1cmUob3ByZm9ybS0+YW1vcG9wciwgb3BfcmV0 dHlwZSwKKwkJCQkJCQkJCSAgb3ByZm9ybS0+YW1vcGxlZnR0eXBlLAorCQkJCQkJCQkJICBvcHJm b3JtLT5hbW9wcmlnaHR0eXBlKSkKKwkJCXsKKwkJCQllcmVwb3J0KElORk8sCisJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJIGVycm1zZygi b3BlcmF0b3IgZmFtaWx5IFwiJXNcIiBvZiBhY2Nlc3MgbWV0aG9kICVzIGNvbnRhaW5zIG9wZXJh dG9yICVzIHdpdGggd3Jvbmcgc2lnbmF0dXJlIiwKKwkJCQkJCQkJb3BmYW1pbHluYW1lLCAiZ2lz dCIsCisJCQkJCQkJCWZvcm1hdF9vcGVyYXRvcihvcHJmb3JtLT5hbW9wb3ByKSkpKTsKKwkJCQly ZXN1bHQgPSBmYWxzZTsKKwkJCX0KKwkJfQogCX0KIAogCS8qIE5vdyBjaGVjayBmb3IgaW5jb25z aXN0ZW50IGdyb3VwcyBvZiBvcGVyYXRvcnMvZnVuY3Rpb25zICovCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWlu LmMKaW5kZXggMThhNWFmNmI5MTkuLjU0MzlhZGMwZDI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9leHBsYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5j CkBAIC00Mzk2LDcgKzQzOTYsNyBAQCBFeHBsYWluVGFyZ2V0UmVsKFBsYW4gKnBsYW4sIEluZGV4 IHJ0aSwgRXhwbGFpblN0YXRlICplcykKIAogCQkJCQkJb2JqZWN0bmFtZSA9IGdldF9mdW5jX25h bWUoZnVuY2lkKTsKIAkJCQkJCWlmIChlcy0+dmVyYm9zZSkKLQkJCQkJCQluYW1lc3BhY2UgPSBn ZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcChnZXRfZnVuY19uYW1lc3BhY2UoZnVuY2lkKSk7CisJ CQkJCQkJbmFtZXNwYWNlID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAoZ2V0X2Z1bmNfbmFt ZXNwYWNlKGZ1bmNpZCwgdHJ1ZSkpOwogCQkJCQl9CiAJCQkJfQogCQkJCW9iamVjdHRhZyA9ICJG dW5jdGlvbiBOYW1lIjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggMWNjYzgwMDg3YzMu LmE1MDdlOWNkNDRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTIzMjMsNiArMTIz MjMsNyBAQCB2YWxpZGF0ZUZvcmVpZ25LZXlDb25zdHJhaW50KGNoYXIgKmNvbm5hbWUsCiAJCXRy aWdkYXRhLnRnX3RyaWd0dXBsZSA9IEV4ZWNGZXRjaFNsb3RIZWFwVHVwbGUoc2xvdCwgZmFsc2Us IE5VTEwpOwogCQl0cmlnZGF0YS50Z190cmlnc2xvdCA9IHNsb3Q7CiAJCXRyaWdkYXRhLnRnX3Ry aWdnZXIgPSAmdHJpZzsKKwkJdHJpZ2RhdGEudGdfdGVtcG9yYWwgPSBOVUxMOwogCiAJCWZjaW5m by0+Y29udGV4dCA9IChOb2RlICopICZ0cmlnZGF0YTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCmlu ZGV4IDM2NzFlODI1MzVlLi4xY2UxYTdmYjg4YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwpAQCAt NDcsNiArNDcsNyBAQAogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInV0aWxz L2FjbC5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZGF0 dW0uaCIKICNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Y19o b29rcy5oIgogI2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCkBAIC0yNjMyLDYgKzI2MzMsNyBAQCBF eGVjQlNEZWxldGVUcmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5m bykKIAlMb2NUcmlnZ2VyRGF0YS50Z19ldmVudCA9IFRSSUdHRVJfRVZFTlRfREVMRVRFIHwKIAkJ VFJJR0dFUl9FVkVOVF9CRUZPUkU7CiAJTG9jVHJpZ2dlckRhdGEudGdfcmVsYXRpb24gPSByZWxp bmZvLT5yaV9SZWxhdGlvbkRlc2M7CisJTG9jVHJpZ2dlckRhdGEudGdfdGVtcG9yYWwgPSByZWxp bmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAJZm9yIChpID0gMDsgaSA8IHRyaWdkZXNjLT5udW10cmln Z2VyczsgaSsrKQogCXsKIAkJVHJpZ2dlciAgICAqdHJpZ2dlciA9ICZ0cmlnZGVzYy0+dHJpZ2dl cnNbaV07CkBAIC0yNzMxLDYgKzI3MzMsNyBAQCBFeGVjQlJEZWxldGVUcmlnZ2VycyhFU3RhdGUg KmVzdGF0ZSwgRVBRU3RhdGUgKmVwcXN0YXRlLAogCQlUUklHR0VSX0VWRU5UX1JPVyB8CiAJCVRS SUdHRVJfRVZFTlRfQkVGT1JFOwogCUxvY1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVsaW5m by0+cmlfUmVsYXRpb25EZXNjOworCUxvY1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0gcmVsaW5m by0+cmlfZm9yUG9ydGlvbk9mOwogCWZvciAoaSA9IDA7IGkgPCB0cmlnZGVzYy0+bnVtdHJpZ2dl cnM7IGkrKykKIAl7CiAJCUhlYXBUdXBsZQluZXd0dXBsZTsKQEAgLTI4MjIsNiArMjgyNSw3IEBA IEV4ZWNJUkRlbGV0ZVRyaWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxp bmZvLAogCQlUUklHR0VSX0VWRU5UX1JPVyB8CiAJCVRSSUdHRVJfRVZFTlRfSU5TVEVBRDsKIAlM b2NUcmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlM b2NUcmlnZ2VyRGF0YS50Z190ZW1wb3JhbCA9IHJlbGluZm8tPnJpX2ZvclBvcnRpb25PZjsKIAog CUV4ZWNGb3JjZVN0b3JlSGVhcFR1cGxlKHRyaWd0dXBsZSwgc2xvdCwgZmFsc2UpOwogCkBAIC0y ODg1LDYgKzI4ODksNyBAQCBFeGVjQlNVcGRhdGVUcmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgUmVz dWx0UmVsSW5mbyAqcmVsaW5mbykKIAkJVFJJR0dFUl9FVkVOVF9CRUZPUkU7CiAJTG9jVHJpZ2dl ckRhdGEudGdfcmVsYXRpb24gPSByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2M7CiAJTG9jVHJpZ2dl ckRhdGEudGdfdXBkYXRlZGNvbHMgPSB1cGRhdGVkQ29sczsKKwlMb2NUcmlnZ2VyRGF0YS50Z190 ZW1wb3JhbCA9IHJlbGluZm8tPnJpX2ZvclBvcnRpb25PZjsKIAlmb3IgKGkgPSAwOyBpIDwgdHJp Z2Rlc2MtPm51bXRyaWdnZXJzOyBpKyspCiAJewogCQlUcmlnZ2VyICAgICp0cmlnZ2VyID0gJnRy aWdkZXNjLT50cmlnZ2Vyc1tpXTsKQEAgLTMwMjAsNiArMzAyNSw3IEBAIEV4ZWNCUlVwZGF0ZVRy aWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBFUFFTdGF0ZSAqZXBxc3RhdGUsCiAJCVRSSUdHRVJfRVZF TlRfUk9XIHwKIAkJVFJJR0dFUl9FVkVOVF9CRUZPUkU7CiAJTG9jVHJpZ2dlckRhdGEudGdfcmVs YXRpb24gPSByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2M7CisJTG9jVHJpZ2dlckRhdGEudGdfdGVt cG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAJdXBkYXRlZENvbHMgPSBFeGVjR2V0 QWxsVXBkYXRlZENvbHMocmVsaW5mbywgZXN0YXRlKTsKIAlMb2NUcmlnZ2VyRGF0YS50Z191cGRh dGVkY29scyA9IHVwZGF0ZWRDb2xzOwogCWZvciAoaSA9IDA7IGkgPCB0cmlnZGVzYy0+bnVtdHJp Z2dlcnM7IGkrKykKQEAgLTMxNjksNiArMzE3NSw3IEBAIEV4ZWNJUlVwZGF0ZVRyaWdnZXJzKEVT dGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQlUUklHR0VSX0VWRU5UX1JP VyB8CiAJCVRSSUdHRVJfRVZFTlRfSU5TVEVBRDsKIAlMb2NUcmlnZ2VyRGF0YS50Z19yZWxhdGlv biA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlMb2NUcmlnZ2VyRGF0YS50Z190ZW1wb3Jh bCA9IHJlbGluZm8tPnJpX2ZvclBvcnRpb25PZjsKIAogCUV4ZWNGb3JjZVN0b3JlSGVhcFR1cGxl KHRyaWd0dXBsZSwgb2xkc2xvdCwgZmFsc2UpOwogCkBAIC0zNjM1LDYgKzM2NDIsNyBAQCB0eXBl ZGVmIHN0cnVjdCBBZnRlclRyaWdnZXJTaGFyZWREYXRhCiAJT2lkCQkJYXRzX3Rnb2lkOwkJLyog dGhlIHRyaWdnZXIncyBJRCAqLwogCU9pZAkJCWF0c19yZWxpZDsJCS8qIHRoZSByZWxhdGlvbiBp dCdzIG9uICovCiAJQ29tbWFuZElkCWF0c19maXJpbmdfaWQ7CS8qIElEIGZvciBmaXJpbmcgY3lj bGUgKi8KKwlGb3JQb3J0aW9uT2ZTdGF0ZSAqZm9yX3BvcnRpb25fb2Y7CS8qIHRoZSBGT1IgUE9S VElPTiBPRiBjbGF1c2UgKi8KIAlzdHJ1Y3QgQWZ0ZXJUcmlnZ2Vyc1RhYmxlRGF0YSAqYXRzX3Rh YmxlOwkvKiB0cmFuc2l0aW9uIHRhYmxlIGFjY2VzcyAqLwogCUJpdG1hcHNldCAgKmF0c19tb2Rp ZmllZGNvbHM7CS8qIG1vZGlmaWVkIGNvbHVtbnMgKi8KIH0gQWZ0ZXJUcmlnZ2VyU2hhcmVkRGF0 YTsKQEAgLTM5MDgsNiArMzkxNiw3IEBAIHN0YXRpYyBTZXRDb25zdHJhaW50U3RhdGUgU2V0Q29u c3RyYWludFN0YXRlQ3JlYXRlKGludCBudW1hbGxvYyk7CiBzdGF0aWMgU2V0Q29uc3RyYWludFN0 YXRlIFNldENvbnN0cmFpbnRTdGF0ZUNvcHkoU2V0Q29uc3RyYWludFN0YXRlIG9yaWdzdGF0ZSk7 CiBzdGF0aWMgU2V0Q29uc3RyYWludFN0YXRlIFNldENvbnN0cmFpbnRTdGF0ZUFkZEl0ZW0oU2V0 Q29uc3RyYWludFN0YXRlIHN0YXRlLAogCQkJCQkJCQkJCQkJCU9pZCB0Z29pZCwgYm9vbCB0Z2lz ZGVmZXJyZWQpOworc3RhdGljIEZvclBvcnRpb25PZlN0YXRlICpDb3B5Rm9yUG9ydGlvbk9mU3Rh dGUoRm9yUG9ydGlvbk9mU3RhdGUgKnNyYyk7CiBzdGF0aWMgdm9pZCBjYW5jZWxfcHJpb3Jfc3Rt dF90cmlnZ2VycyhPaWQgcmVsaWQsIENtZFR5cGUgY21kVHlwZSwgaW50IHRnZXZlbnQpOwogCiAK QEAgLTQxMjAsNiArNDEyOSw3IEBAIGFmdGVyVHJpZ2dlckFkZEV2ZW50KEFmdGVyVHJpZ2dlckV2 ZW50TGlzdCAqZXZlbnRzLAogCQkJbmV3c2hhcmVkLT5hdHNfcmVsaWQgPT0gZXZ0c2hhcmVkLT5h dHNfcmVsaWQgJiYKIAkJCW5ld3NoYXJlZC0+YXRzX2V2ZW50ID09IGV2dHNoYXJlZC0+YXRzX2V2 ZW50ICYmCiAJCQluZXdzaGFyZWQtPmF0c190YWJsZSA9PSBldnRzaGFyZWQtPmF0c190YWJsZSAm JgorCQkJbmV3c2hhcmVkLT5mb3JfcG9ydGlvbl9vZiA9PSBldnRzaGFyZWQtPmZvcl9wb3J0aW9u X29mICYmCiAJCQluZXdzaGFyZWQtPmF0c19maXJpbmdfaWQgPT0gMCkKIAkJCWJyZWFrOwogCX0K QEAgLTQ0ODgsNiArNDQ5OCw3IEBAIEFmdGVyVHJpZ2dlckV4ZWN1dGUoRVN0YXRlICplc3RhdGUs CiAJTG9jVHJpZ2dlckRhdGEudGdfcmVsYXRpb24gPSByZWw7CiAJaWYgKFRSSUdHRVJfRk9SX1VQ REFURShMb2NUcmlnZ2VyRGF0YS50Z190cmlnZ2VyLT50Z3R5cGUpKQogCQlMb2NUcmlnZ2VyRGF0 YS50Z191cGRhdGVkY29scyA9IGV2dHNoYXJlZC0+YXRzX21vZGlmaWVkY29sczsKKwlMb2NUcmln Z2VyRGF0YS50Z190ZW1wb3JhbCA9IGV2dHNoYXJlZC0+Zm9yX3BvcnRpb25fb2Y7CiAKIAlNZW1v cnlDb250ZXh0UmVzZXQocGVyX3R1cGxlX2NvbnRleHQpOwogCkBAIC02MDIyLDYgKzYwMzMsNDAg QEAgQWZ0ZXJUcmlnZ2VyUGVuZGluZ09uUmVsKE9pZCByZWxpZCkKIAlyZXR1cm4gZmFsc2U7CiB9 CiAKKy8qIC0tLS0tLS0tLS0KKyAqIEZvclBvcnRpb25PZlN0YXRlKCkKKyAqCisgKiBDb3B5cyBh IEZvclBvcnRpb25PZlN0YXRlIGludG8gdGhlIGN1cnJlbnQgbWVtb3J5IGNvbnRleHQuCisgKi8K K3N0YXRpYyBGb3JQb3J0aW9uT2ZTdGF0ZSAqCitDb3B5Rm9yUG9ydGlvbk9mU3RhdGUoRm9yUG9y dGlvbk9mU3RhdGUgKnNyYykKK3sKKwlGb3JQb3J0aW9uT2ZTdGF0ZSAqZHN0ID0gTlVMTDsKKwlp ZiAoc3JjKSB7CisJCU1lbW9yeUNvbnRleHQgb2xkY3R4OworCQlSYW5nZVR5cGUgKnI7CisJCVR5 cGVDYWNoZUVudHJ5ICp0eXBjYWNoZTsKKworCQkvKgorCQkgKiBOZWVkIHRvIGxpZnQgdGhlIEZP UiBQT1JUSU9OIE9GIGRldGFpbHMgaW50byBhIGhpZ2hlciBtZW1vcnkgY29udGV4dAorCQkgKiBi ZWNhdXNlIGNhc2NhZGluZyBmb3JlaWduIGtleSB1cGRhdGUvZGVsZXRlcyBjYW4gY2F1c2UgdHJp Z2dlcnMgdG8gZmlyZQorCQkgKiB0cmlnZ2VycywgYW5kIHRoZSBBZnRlclRyaWdnZXJFdmVudHMg d2lsbCBvdXRsaXZlIHRoZSBGUE8KKwkJICogZGV0YWlscyBvZiB0aGUgb3JpZ2luYWwgcXVlcnku CisJCSAqLworCQlvbGRjdHggPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oVG9wVHJhbnNhY3Rpb25D b250ZXh0KTsKKwkJZHN0ID0gbWFrZU5vZGUoRm9yUG9ydGlvbk9mU3RhdGUpOworCQlkc3QtPmZw X3JhbmdlTmFtZSA9IHBzdHJkdXAoc3JjLT5mcF9yYW5nZU5hbWUpOworCQlkc3QtPmZwX3Jhbmdl VHlwZSA9IHNyYy0+ZnBfcmFuZ2VUeXBlOworCQlkc3QtPmZwX3JhbmdlQXR0bm8gPSBzcmMtPmZw X3JhbmdlQXR0bm87CisKKwkJciA9IERhdHVtR2V0UmFuZ2VUeXBlUChzcmMtPmZwX3RhcmdldFJh bmdlKTsKKwkJdHlwY2FjaGUgPSBsb29rdXBfdHlwZV9jYWNoZShSYW5nZVR5cGVHZXRPaWQociks IFRZUEVDQUNIRV9SQU5HRV9JTkZPKTsKKwkJZHN0LT5mcF90YXJnZXRSYW5nZSA9IGRhdHVtQ29w eShzcmMtPmZwX3RhcmdldFJhbmdlLCB0eXBjYWNoZS0+dHlwYnl2YWwsIHR5cGNhY2hlLT50eXBs ZW4pOworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3R4KTsKKwl9CisJcmV0dXJuIGRzdDsK K30KKwogLyogLS0tLS0tLS0tLQogICogQWZ0ZXJUcmlnZ2VyU2F2ZUV2ZW50KCkKICAqCkBAIC02 NDM3LDYgKzY0ODIsNyBAQCBBZnRlclRyaWdnZXJTYXZlRXZlbnQoRVN0YXRlICplc3RhdGUsIFJl c3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCWVsc2UKIAkJCW5ld19zaGFyZWQuYXRzX3RhYmxlID0g TlVMTDsKIAkJbmV3X3NoYXJlZC5hdHNfbW9kaWZpZWRjb2xzID0gYWZ0ZXJUcmlnZ2VyQ29weUJp dG1hcChtb2RpZmllZENvbHMpOworCQluZXdfc2hhcmVkLmZvcl9wb3J0aW9uX29mID0gQ29weUZv clBvcnRpb25PZlN0YXRlKHJlbGluZm8tPnJpX2ZvclBvcnRpb25PZik7CiAKIAkJYWZ0ZXJUcmln Z2VyQWRkRXZlbnQoJmFmdGVyVHJpZ2dlcnMucXVlcnlfc3RhY2tbYWZ0ZXJUcmlnZ2Vycy5xdWVy eV9kZXB0aF0uZXZlbnRzLAogCQkJCQkJCSAmbmV3X2V2ZW50LCAmbmV3X3NoYXJlZCk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY01haW4uYwppbmRleCBjYzlhNTk0Y2JhNS4uNTYxYWM2OWZjNzQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY01haW4uYwpAQCAtMTI1Miw2ICsxMjUyLDcgQEAgSW5pdFJlc3VsdFJlbEluZm8o UmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAlyZXN1bHRSZWxJbmZvLT5yaV9wcm9qZWN0 UmV0dXJuaW5nID0gTlVMTDsKIAlyZXN1bHRSZWxJbmZvLT5yaV9vbkNvbmZsaWN0QXJiaXRlcklu ZGV4ZXMgPSBOSUw7CiAJcmVzdWx0UmVsSW5mby0+cmlfb25Db25mbGljdCA9IE5VTEw7CisJcmVz dWx0UmVsSW5mby0+cmlfZm9yUG9ydGlvbk9mID0gTlVMTDsKIAlyZXN1bHRSZWxJbmZvLT5yaV9S ZXR1cm5pbmdTbG90ID0gTlVMTDsKIAlyZXN1bHRSZWxJbmZvLT5yaV9UcmlnT2xkU2xvdCA9IE5V TEw7CiAJcmVzdWx0UmVsSW5mby0+cmlfVHJpZ05ld1Nsb3QgPSBOVUxMOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgYi9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCAxMTYxNTIwZjc2Yi4uOWYyMjM0MzIwZjYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCkBAIC01Miw2ICs1Miw3IEBACiAK ICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNjZXNzL2hlYXBhbS5oIgogI2lu Y2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKICNpbmNsdWRlICJhY2Nlc3MvdGFibGVhbS5o IgogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCkBAIC01OSwxNCArNjAsMTggQEAKICNpbmNsdWRl ICJleGVjdXRvci9leGVjUGFydGl0aW9uLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3Iu aCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuaCIKKyNpbmNsdWRlICJleGVj dXRvci9zcGkuaCIKICNpbmNsdWRlICJmb3JlaWduL2Zkd2FwaS5oIgogI2luY2x1ZGUgIm1pc2Nh ZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1ZGUgIm9wdGltaXpl ci9vcHRpbWl6ZXIuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNs dWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgi CisjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgog I2luY2x1ZGUgInV0aWxzL2RhdHVtLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAj aW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogCkBAIC0x MjMsNiArMTI4LDE5IEBAIHR5cGVkZWYgc3RydWN0IFVwZGF0ZUNvbnRleHQKIAlMb2NrVHVwbGVN b2RlIGxvY2ttb2RlOwogfSBVcGRhdGVDb250ZXh0OwogCisvKgorICogRlBPX1F1ZXJ5SGFzaEVu dHJ5CisgKi8KK3R5cGVkZWYgc3RydWN0IEZQT19RdWVyeUhhc2hFbnRyeSB7CisJT2lkCQkJa2V5 OworCVNQSVBsYW5QdHIJcGxhbjsKK30gRlBPX1F1ZXJ5SGFzaEVudHJ5OworCisvKgorICogUGxh biBjYWNoZSBmb3IgRk9SIFBPUlRJT04gT0YgaW5zZXJ0cworICovCisjZGVmaW5lIEZQT19JTklU X1FVRVJZSEFTSFNJWkUgMzIKK3N0YXRpYyBIVEFCICpmcG9fcXVlcnlfY2FjaGUgPSBOVUxMOwog CiBzdGF0aWMgdm9pZCBFeGVjQmF0Y2hJbnNlcnQoTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwK IAkJCQkJCQlSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLApAQCAtMTQ0LDYgKzE2MiwxMyBA QCBzdGF0aWMgYm9vbCBFeGVjT25Db25mbGljdFVwZGF0ZShNb2RpZnlUYWJsZUNvbnRleHQgKmNv bnRleHQsCiAJCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAqZXhjbHVkZWRTbG90LAogCQkJCQkJCQkg Ym9vbCBjYW5TZXRUYWcsCiAJCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAqKnJldHVybmluZyk7Citz dGF0aWMgdm9pZCBmcG9fSW5pdEhhc2hUYWJsZSh2b2lkKTsKK3N0YXRpYyBTUElQbGFuUHRyIGZw b19GZXRjaFByZXBhcmVkUGxhbihPaWQgcmVsaWQpOworc3RhdGljIHZvaWQgZnBvX0hhc2hQcmVw YXJlZFBsYW4oT2lkIHJlbGlkLCBTUElQbGFuUHRyIHBsYW4pOworc3RhdGljIHZvaWQgRXhlY0Zv clBvcnRpb25PZkxlZnRvdmVycyhNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCisJCQkJCQkJ CQkgIEVTdGF0ZSAqZXN0YXRlLAorCQkJCQkJCQkJICBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJ bmZvLAorCQkJCQkJCQkJICBJdGVtUG9pbnRlciB0dXBsZWlkKTsKIHN0YXRpYyBUdXBsZVRhYmxl U2xvdCAqRXhlY1ByZXBhcmVUdXBsZVJvdXRpbmcoTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwK IAkJCQkJCQkJCQkJICAgRVN0YXRlICplc3RhdGUsCiAJCQkJCQkJCQkJCSAgIFBhcnRpdGlvblR1 cGxlUm91dGluZyAqcHJvdXRlLApAQCAtMTY2LDYgKzE5MSw3IEBAIHN0YXRpYyBUdXBsZVRhYmxl U2xvdCAqRXhlY01lcmdlTWF0Y2hlZChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiBzdGF0 aWMgVHVwbGVUYWJsZVNsb3QgKkV4ZWNNZXJnZU5vdE1hdGNoZWQoTW9kaWZ5VGFibGVDb250ZXh0 ICpjb250ZXh0LAogCQkJCQkJCQkJCSAgIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJ CQkJCQkJCQkJICAgYm9vbCBjYW5TZXRUYWcpOworc3RhdGljIHZvaWQgRXhlY1NldHVwVHJhbnNp dGlvbkNhcHR1cmVTdGF0ZShNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlLCBFU3RhdGUgKmVzdGF0 ZSk7CiAKIAogLyoKQEAgLTEyMTQsNiArMTI0MCwzNjcgQEAgRXhlY0luc2VydChNb2RpZnlUYWJs ZUNvbnRleHQgKmNvbnRleHQsCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJ CWZwb19Jbml0SGFzaFRhYmxlCisgKgorICoJCUNyZWF0ZXMgYSBoYXNoIHRhYmxlIHRvIGhvbGQg U1BJIHBsYW5zIHRvIGluc2VydCBsZWZ0b3ZlcnMKKyAqCQlmcm9tIGEgUE9SVElPTiBPRiBVUERB VEUvREVMRVRFCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2b2lkCitmcG9fSW5pdEhhc2hUYWJs ZSh2b2lkKQoreworCUhBU0hDVEwJCWN0bDsKKworCWN0bC5rZXlzaXplID0gc2l6ZW9mKE9pZCk7 CisJY3RsLmVudHJ5c2l6ZSA9IHNpemVvZihGUE9fUXVlcnlIYXNoRW50cnkpOworCWZwb19xdWVy eV9jYWNoZSA9IGhhc2hfY3JlYXRlKCJGUE9fcXVlcnlfY2FjaGUiLAorCQkJCQkJCQkgIEZQT19J TklUX1FVRVJZSEFTSFNJWkUsCisJCQkJCQkJCSAgJmN0bCwgSEFTSF9FTEVNIHwgSEFTSF9CTE9C Uyk7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQlmcG9fRmV0Y2hQcmVwYXJlZFBsYW4KKyAqCisgKgkJ TG9va3VwIGZvciBhIHF1ZXJ5IGtleSBpbiBvdXIgcHJpdmF0ZSBoYXNoIHRhYmxlIG9mCisgKgkJ cHJlcGFyZWQgYW5kIHNhdmVkIFNQSSBleGVjdXRpb24gcGxhbnMuIFJldHVybnMgdGhlIHBsYW4K KyAqCQlpZiBmb3VuZCBvciBOVUxMLgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCitzdGF0aWMgU1BJUGxhblB0 cgorZnBvX0ZldGNoUHJlcGFyZWRQbGFuKE9pZCByZWxpZCkKK3sKKwlGUE9fUXVlcnlIYXNoRW50 cnkgKmVudHJ5OworCVNQSVBsYW5QdHIJcGxhbjsKKworCWlmICghZnBvX3F1ZXJ5X2NhY2hlKQor CQlmcG9fSW5pdEhhc2hUYWJsZSgpOworCisJLyoKKwkgKiBMb29rdXAgZm9yIHRoZSBrZXkKKwkg Ki8KKwllbnRyeSA9IChGUE9fUXVlcnlIYXNoRW50cnkgKikgaGFzaF9zZWFyY2goZnBvX3F1ZXJ5 X2NhY2hlLAorCQkJCQkJCQkJCQkgICAmcmVsaWQsCisJCQkJCQkJCQkJCSAgIEhBU0hfRklORCwg TlVMTCk7CisKKwlpZiAoIWVudHJ5KQorCQlyZXR1cm4gTlVMTDsKKworCS8qCisJICogQ2hlY2sg d2hldGhlciB0aGUgcGxhbiBpcyBzdGlsbCB2YWxpZC4gIElmIGl0IGlzbid0LCB3ZSBkb24ndCB3 YW50IHRvCisJICogc2ltcGx5IHJlbHkgb24gcGxhbmNhY2hlLmMgdG8gcmVnZW5lcmF0ZSBpdDsg cmF0aGVyIHdlIHNob3VsZCBzdGFydAorCSAqIGZyb20gc2NyYXRjaCBhbmQgcmVidWlsZCB0aGUg cXVlcnkgdGV4dCB0b28uICBUaGlzIGlzIHRvIGNvdmVyIGNhc2VzCisJICogc3VjaCBhcyB0YWJs ZS9jb2x1bW4gcmVuYW1lcy4gIFdlIGRlcGVuZCBvbiB0aGUgcGxhbmNhY2hlIG1hY2hpbmVyeSB0 bworCSAqIGRldGVjdCBwb3NzaWJsZSBpbnZhbGlkYXRpb25zLCB0aG91Z2guCisJICoKKwkgKiBD QVVUSU9OOiB0aGlzIGNoZWNrIGlzIG9ubHkgdHJ1c3R3b3J0aHkgaWYgdGhlIGNhbGxlciBoYXMg YWxyZWFkeQorCSAqIGxvY2tlZCBib3RoIEZLIGFuZCBQSyByZWxzLgorCSAqLworCXBsYW4gPSBl bnRyeS0+cGxhbjsKKwlpZiAocGxhbiAmJiBTUElfcGxhbl9pc192YWxpZChwbGFuKSkKKwkJcmV0 dXJuIHBsYW47CisKKwkvKgorCSAqIE90aGVyd2lzZSB3ZSBtaWdodCBhcyB3ZWxsIGZsdXNoIHRo ZSBjYWNoZWQgcGxhbiBub3csIHRvIGZyZWUgYSBsaXR0bGUKKwkgKiBtZW1vcnkgc3BhY2UgYmVm b3JlIHdlIG1ha2UgYSBuZXcgb25lLgorCSAqLworCWVudHJ5LT5wbGFuID0gTlVMTDsKKwlpZiAo cGxhbikKKwkJU1BJX2ZyZWVwbGFuKHBsYW4pOworCisJcmV0dXJuIE5VTEw7Cit9CisKKy8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqCQlmcG9fSGFzaFByZXBhcmVkUGxhbgorICoKKyAqCQlBZGQgYW5vdGhlciBwbGFu IHRvIG91ciBwcml2YXRlIFNQSSBxdWVyeSBwbGFuIGhhc2h0YWJsZS4KKyAqIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq Lworc3RhdGljIHZvaWQKK2Zwb19IYXNoUHJlcGFyZWRQbGFuKE9pZCByZWxpZCwgU1BJUGxhblB0 ciBwbGFuKQoreworCUZQT19RdWVyeUhhc2hFbnRyeSAqZW50cnk7CisJYm9vbAkJZm91bmQ7CisK KwkvKgorCSAqIE9uIHRoZSBmaXJzdCBjYWxsIGluaXRpYWxpemUgdGhlIGhhc2h0YWJsZQorCSAq LworCWlmICghZnBvX3F1ZXJ5X2NhY2hlKQorCQlmcG9fSW5pdEhhc2hUYWJsZSgpOworCisJLyoK KwkgKiBBZGQgdGhlIG5ldyBwbGFuLiBXZSBtaWdodCBiZSBvdmVyd3JpdGluZyBhbiBlbnRyeSBw cmV2aW91c2x5IGZvdW5kCisJICogaW52YWxpZCBieSBmcG9fRmV0Y2hQcmVwYXJlZFBsYW4uCisJ ICovCisJZW50cnkgPSAoRlBPX1F1ZXJ5SGFzaEVudHJ5ICopIGhhc2hfc2VhcmNoKGZwb19xdWVy eV9jYWNoZSwKKwkJCQkJCQkJCQkJICAgJnJlbGlkLAorCQkJCQkJCQkJCQkgICBIQVNIX0VOVEVS LCAmZm91bmQpOworCUFzc2VydCghZm91bmQgfHwgZW50cnktPnBsYW4gPT0gTlVMTCk7CisJZW50 cnktPnBsYW4gPSBwbGFuOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJRXhlY0ZvclBvcnRpb25PZkxl ZnRvdmVycworICoKKyAqCQlJbnNlcnQgdHVwbGVzIGZvciB0aGUgdW50b3VjaGVkIHBvcnRpb24g b2YgYSByb3cgaW4gYSBGT1IKKyAqCQlQT1JUSU9OIE9GIFVQREFURS9ERUxFVEUKKyAqIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqLworc3RhdGljIHZvaWQKK0V4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoTW9kaWZ5VGFi bGVDb250ZXh0ICpjb250ZXh0LAorCQkJCQkJICBFU3RhdGUgKmVzdGF0ZSwKKwkJCQkJCSAgUmVz dWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKKwkJCQkJCSAgSXRlbVBvaW50ZXIgdHVwbGVpZCkK K3sKKwlNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlID0gY29udGV4dC0+bXRzdGF0ZTsKKwlNb2Rp ZnlUYWJsZSAqbm9kZSA9IChNb2RpZnlUYWJsZSAqKSBtdHN0YXRlLT5wcy5wbGFuOworCUZvclBv cnRpb25PZkV4cHIgKmZvclBvcnRpb25PZiA9IChGb3JQb3J0aW9uT2ZFeHByICopIG5vZGUtPmZv clBvcnRpb25PZjsKKwlBdHRyTnVtYmVyCXJhbmdlQXR0bm87CisJT2lkCXJlbGlkOworCVR1cGxl RGVzYyB0dXBkZXNjOworCWludAluYXR0czsKKwlEYXR1bQlvbGRSYW5nZTsKKwlUeXBlQ2FjaGVF bnRyeSAqdHlwY2FjaGU7CisJRm9yUG9ydGlvbk9mU3RhdGUgKmZwb1N0YXRlID0gcmVzdWx0UmVs SW5mby0+cmlfZm9yUG9ydGlvbk9mOworCVR1cGxlVGFibGVTbG90ICpvbGR0dXBsZVNsb3QgPSBm cG9TdGF0ZS0+ZnBfRXhpc3Rpbmc7CisJVHVwbGVUYWJsZVNsb3QgKmxlZnRvdmVyU2xvdDsKKwlU dXBsZUNvbnZlcnNpb25NYXAgKm1hcCA9IE5VTEw7CisJSGVhcFR1cGxlIG9sZHR1cGxlID0gTlVM TDsKKwlGbWdySW5mbyBmbGluZm87CisJUmV0dXJuU2V0SW5mbyByc2k7CisJUmVsYXRpb24gcmVs OworCWJvb2wgZGlkSW5pdCA9IGZhbHNlOworCWJvb2wgc2hvdWxkRnJlZSA9IGZhbHNlOworCUxP Q0FMX0ZDSU5GTyhmY2luZm8sIDIpOworCisJLyoKKwkgKiBHZXQgdGhlIHJhbmdlIG9mIHRoZSBv bGQgcHJlLVVQREFURS9ERUxFVEUgdHVwbGUsCisJICogc28gd2UgY2FuIGludGVyc2VjdCBpdCB3 aXRoIHRoZSBGT1IgUE9SVElPTiBPRiB0YXJnZXQKKwkgKiBhbmQgc2VlIGlmIHRoZXJlIGFyZSBh bnkgImxlZnRvdmVycyIgdG8gaW5zZXJ0LgorCSAqCisJICogV2UgaGF2ZSBhbHJlYWR5IGxvY2tl ZCB0aGUgdHVwbGUgaW4gRXhlY1VwZGF0ZS9FeGVjRGVsZXRlCisJICogYW5kIGl0IGhhcyBwYXNz ZWQgRXZhbFBsYW5RdWFsLgorCSAqIE1ha2Ugc3VyZSB3ZSdyZSBsb29raW5nIGF0IHRoZSBtb3N0 IHJlY2VudCB2ZXJzaW9uLgorCSAqIE90aGVyd2lzZSBjb25jdXJyZW50IHVwZGF0ZXMgb2YgdGhl IHNhbWUgdHVwbGUgaW4gUkVBRCBDT01NSVRURUQKKwkgKiBjb3VsZCBpbnNlcnQgY29uZmxpY3Rp bmcgImxlZnRvdmVycyIuCisJICovCisJaWYgKCF0YWJsZV90dXBsZV9mZXRjaF9yb3dfdmVyc2lv bihyZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MsIHR1cGxlaWQsIFNuYXBzaG90QW55LCBv bGR0dXBsZVNsb3QpKQorCQllbG9nKEVSUk9SLCAiZmFpbGVkIHRvIGZldGNoIHR1cGxlIGZvciBG T1IgUE9SVElPTiBPRiIpOworCisJLyoKKwkgKiBHZXQgdGhlIG9sZCByYW5nZSBvZiB0aGUgcmVj b3JkIGJlaW5nIHVwZGF0ZWQvZGVsZXRlZC4KKwkgKiBNdXN0IHJlYWQgd2l0aCB0aGUgYXR0bm8g b2YgdGhlIGxlYWYgcGFydGl0aW9uLgorCSAqLworCisJcmFuZ2VBdHRubyA9IGZvclBvcnRpb25P Zi0+cmFuZ2VWYXItPnZhcmF0dG5vOworCWlmIChyZXN1bHRSZWxJbmZvLT5yaV9Sb290UmVzdWx0 UmVsSW5mbykKKwkJbWFwID0gRXhlY0dldENoaWxkVG9Sb290TWFwKHJlc3VsdFJlbEluZm8pOwor CWlmIChtYXAgIT0gTlVMTCkKKwkJcmFuZ2VBdHRubyA9IG1hcC0+YXR0ck1hcC0+YXR0bnVtc1ty YW5nZUF0dG5vIC0gMV07CisJc2xvdF9nZXRhbGxhdHRycyhvbGR0dXBsZVNsb3QpOworCisJaWYg KG9sZHR1cGxlU2xvdC0+dHRzX2lzbnVsbFtyYW5nZUF0dG5vIC0gMV0pCisJCWVsb2coRVJST1Is ICJmb3VuZCBhIE5VTEwgcmFuZ2UgaW4gYSB0ZW1wb3JhbCB0YWJsZSIpOworCW9sZFJhbmdlID0g b2xkdHVwbGVTbG90LT50dHNfdmFsdWVzW3JhbmdlQXR0bm8gLSAxXTsKKworCS8qCisJICogR2V0 IHRoZSByYW5nZSdzIHR5cGUgY2FjaGUgZW50cnkuIFRoaXMgaXMgd29ydGggY2FjaGluZyBmb3Ig dGhlIHdob2xlCisJICogVVBEQVRFL0RFTEVURSBhcyByYW5nZSBmdW5jdGlvbnMgZG8uCisJICov CisKKwl0eXBjYWNoZSA9IGZwb1N0YXRlLT5mcF9sZWZ0b3ZlcnN0eXBjYWNoZTsKKwlpZiAodHlw Y2FjaGUgPT0gTlVMTCkKKwl7CisJCXR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUoZm9yUG9y dGlvbk9mLT5yYW5nZVR5cGUsIDApOworCQlmcG9TdGF0ZS0+ZnBfbGVmdG92ZXJzdHlwY2FjaGUg PSB0eXBjYWNoZTsKKwl9CisKKwkvKgorCSAqIEdldCB0aGUgcmFuZ2VzIHRvIHRoZSBsZWZ0L3Jp Z2h0IG9mIHRoZSB0YXJnZXRlZCByYW5nZS4KKwkgKiBXZSBjYWxsIGEgU0VUT0Ygc3VwcG9ydCBm dW5jdGlvbiBhbmQgaW5zZXJ0IGFzIG1hbnkgbGVmdG92ZXJzCisJICogYXMgaXQgZ2l2ZXMgdXMu IEFsdGhvdWdoIHJhbmdldHlwZXMgaGF2ZSAwLzEvMiBsZWZ0b3ZlcnMsCisJICogbXVsdGlyYW5n ZXMgaGF2ZSAwLzEsIGFuZCBvdGhlciB0eXBlcyBtYXkgaGF2ZSBtb3JlLgorCSAqLworCisJZm1n cl9pbmZvKGZvclBvcnRpb25PZi0+d2l0aG91dFBvcnRpb25Qcm9jLCAmZmxpbmZvKTsKKwlyc2ku dHlwZSA9IFRfUmV0dXJuU2V0SW5mbzsKKwlyc2kuZWNvbnRleHQgPSBtdHN0YXRlLT5wcy5wc19F eHByQ29udGV4dDsKKwlyc2kuZXhwZWN0ZWREZXNjID0gTlVMTDsKKwlyc2kuYWxsb3dlZE1vZGVz ID0gKGludCkgKFNGUk1fVmFsdWVQZXJDYWxsKTsKKwlyc2kucmV0dXJuTW9kZSA9IFNGUk1fVmFs dWVQZXJDYWxsOworCXJzaS5zZXRSZXN1bHQgPSBOVUxMOworCXJzaS5zZXREZXNjID0gTlVMTDsK KworCUluaXRGdW5jdGlvbkNhbGxJbmZvRGF0YSgqZmNpbmZvLCAmZmxpbmZvLCAyLCBJbnZhbGlk T2lkLCBOVUxMLCAoTm9kZSAqKSAmcnNpKTsKKwlmY2luZm8tPmFyZ3NbMF0udmFsdWUgPSBvbGRS YW5nZTsKKwlmY2luZm8tPmFyZ3NbMF0uaXNudWxsID0gZmFsc2U7CisJZmNpbmZvLT5hcmdzWzFd LnZhbHVlID0gZnBvU3RhdGUtPmZwX3RhcmdldFJhbmdlOworCWZjaW5mby0+YXJnc1sxXS5pc251 bGwgPSBmYWxzZTsKKworCS8qCisJICogSWYgdGhlcmUgYXJlIHBhcnRpdGlvbnMsIHdlIG11c3Qg aW5zZXJ0IGludG8gdGhlIHJvb3QgdGFibGUsCisJICogc28gd2UgZ2V0IHR1cGxlIHJvdXRpbmcu IFdlIGFscmVhZHkgc2V0IHVwIGxlZnRvdmVyU2xvdAorCSAqIHdpdGggdGhlIHJvb3QgdHVwbGUg ZGVzY3JpcHRvci4KKwkgKi8KKwlpZiAocmVzdWx0UmVsSW5mby0+cmlfUm9vdFJlc3VsdFJlbElu Zm8pCisJCXJlc3VsdFJlbEluZm8gPSByZXN1bHRSZWxJbmZvLT5yaV9Sb290UmVzdWx0UmVsSW5m bzsKKworCXJlbCA9IHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlyZWxpZCA9IFJl bGF0aW9uR2V0UmVsaWQocmVsKTsKKworCS8qIEluc2VydCBhIGxlZnRvdmVyIGZvciBlYWNoIHZh bHVlIHJldHVybmVkIGJ5IHRoZSB3aXRob3V0X3BvcnRpb24gaGVscGVyIGZ1bmN0aW9uICovCisJ d2hpbGUgKHRydWUpCisJeworCQlEYXR1bSBsZWZ0b3ZlciA9IEZ1bmN0aW9uQ2FsbEludm9rZShm Y2luZm8pOworCQlTUElQbGFuUHRyCXFwbGFuID0gTlVMTDsKKwkJaW50IHNwaV9yZXN1bHQ7CisK KwkJLyogQXJlIHdlIGRvbmU/ICovCisJCWlmIChyc2kuaXNEb25lID09IEV4cHJFbmRSZXN1bHQp CisJCQlicmVhazsKKworCQlpZiAoZmNpbmZvLT5pc251bGwpCisJCQllbG9nKEVSUk9SLCAiR290 IGEgbnVsbCBmcm9tIHdpdGhvdXRfcG9ydGlvbiBmdW5jdGlvbiIpOworCisJCWlmICghZGlkSW5p dCkKKwkJeworCQkJLyoKKwkJCSAqIENvbnZlcnQgb2xkdHVwbGUgdG8gdGhlIGJhc2UgdGFibGUn cyBmb3JtYXQgaWYgbmVjZXNzYXJ5LgorCQkJICogV2UgbmVlZCB0byBpbnNlcnQgbGVmdG92ZXJz IHRocm91Z2ggdGhlIHJvb3QgcGFydGl0aW9uCisJCQkgKiBzbyB0aGV5IGdldCByb3V0ZWQgY29y cmVjdGx5LgorCQkJICovCisJCQlpZiAobWFwICE9IE5VTEwpCisJCQl7CisJCQkJbGVmdG92ZXJT bG90ID0gZXhlY3V0ZV9hdHRyX21hcF9zbG90KG1hcC0+YXR0ck1hcCwKKwkJCQkJCQkJCQkJCQkg b2xkdHVwbGVTbG90LAorCQkJCQkJCQkJCQkJCSBmcG9TdGF0ZS0+ZnBfTGVmdG92ZXIpOworCQkJ fQorCQkJZWxzZQorCQkJCWxlZnRvdmVyU2xvdCA9IG9sZHR1cGxlU2xvdDsKKworCQkJdHVwZGVz YyA9IGxlZnRvdmVyU2xvdC0+dHRzX3R1cGxlRGVzY3JpcHRvcjsKKwkJCW5hdHRzID0gdHVwZGVz Yy0+bmF0dHM7CisKKwkJCS8qCisJCQkgKiBJZiB0YXJnZXRpbmcgYSBsZWFmIHBhcnRpdGlvbiwK KwkJCSAqIGl0IG1heSBub3QgaGF2ZSBmcF92YWx1ZXMvZnBfbnVsbHMgeWV0LgorCQkJICovCisJ CQlpZiAoIWZwb1N0YXRlLT5mcF92YWx1ZXMpCisJCQl7CisJCQkJZnBvU3RhdGUtPmZwX3ZhbHVl cyA9IHBhbGxvYyhuYXR0cyAqIHNpemVvZihEYXR1bSkpOworCQkJCWZwb1N0YXRlLT5mcF9udWxs cyA9IHBhbGxvYyhuYXR0cyAqIHNpemVvZihjaGFyKSk7CisJCQl9CisKKwkJCS8qCisJCQkgKiBD b3B5IChwb3RlbnRpYWxseSBtYXBwZWQpIG9sZHR1cGxlIHZhbHVlcyBpbnRvIFNQSSBpbnB1dCBh cnJheXMuCisJCQkgKiBXZSdsbCBvdmVyd3JpdGUgdGhlIHJhbmdlL3N0YXJ0L2VuZCBhdHRyaWJ1 dGVzIGJlbG93LgorCQkJICovCisJCQltZW1jcHkoZnBvU3RhdGUtPmZwX3ZhbHVlcywgbGVmdG92 ZXJTbG90LT50dHNfdmFsdWVzLCBuYXR0cyAqIHNpemVvZihEYXR1bSkpOworCisJCQlTUElfY29u bmVjdCgpOworCisJCQlkaWRJbml0ID0gdHJ1ZTsKKwkJfQorCisJCS8qCisJCSAqIEJ1aWxkIGFu IFNQSSBwbGFuIGlmIHdlIGRvbid0IGhhdmUgb25lIHlldC4KKwkJICogV2UgYWx3YXlzIGluc2Vy dCBpbnRvIHRoZSByb290IHBhcnRpdGlvbiwKKwkJICogc28gdGhhdCB3ZSBnZXQgdHVwbGUgcm91 dGluZy4KKwkJICogVGhlcmVmb3JlIHRoZSBwbGFuIGlzIHRoZSBzYW1lIG5vIG1hdHRlciB3aGlj aCBsZWFmCisJCSAqIHdlIGFyZSB1cGRhdGluZy9kZWxldGluZy4KKwkJICovCisJCWlmICghcXBs YW4gJiYgIShxcGxhbiA9IGZwb19GZXRjaFByZXBhcmVkUGxhbihyZWxpZCkpKQorCQl7CisJCQlP aWQJKnR5cGVzID0gcGFsbG9jMChuYXR0cyAqIHNpemVvZihPaWQpKTsKKwkJCWludCBpOworCQkJ Ym9vbCBzdGFydGVkID0gZmFsc2U7CisJCQlTdHJpbmdJbmZvRGF0YSBxdWVyeWJ1ZjsKKwkJCVN0 cmluZ0luZm9EYXRhIHBhcmFtYnVmOworCQkJY29uc3QgY2hhciAqdGFibGVuYW1lOworCQkJY29u c3QgY2hhciAqc2NoZW1hbmFtZTsKKwkJCWNvbnN0IGNoYXIgKmNvbG5hbWU7CisKKwkJCWluaXRT dHJpbmdJbmZvKCZxdWVyeWJ1Zik7CisJCQlpbml0U3RyaW5nSW5mbygmcGFyYW1idWYpOworCisJ CQlzY2hlbWFuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJl bCkpOworCQkJdGFibGVuYW1lID0gUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKTsKKwkJCWFw cGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiSU5TRVJUIElOVE8gJXMgKCIsCisJCQkJCQkJIHF1 b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKHNjaGVtYW5hbWUsIHRhYmxlbmFtZSkpOworCisJCQlm b3IgKGkgPSAwOyBpIDwgbmF0dHM7IGkrKykgeworCQkJCS8qIERvbid0IHRyeSB0byBpbnNlcnQg aW50byBkcm9wcGVkIG9yIGdlbmVyYXRlZCBjb2x1bW5zICovCisJCQkJaWYgKHR1cGRlc2MtPmF0 dHJzW2ldLmF0dGlzZHJvcHBlZCB8fCB0dXBkZXNjLT5hdHRyc1tpXS5hdHRnZW5lcmF0ZWQpCisJ CQkJCWNvbnRpbnVlOworCisJCQkJdHlwZXNbaV0gPSB0dXBkZXNjLT5hdHRyc1tpXS5hdHR0eXBp ZDsKKworCQkJCWNvbG5hbWUgPSBxdW90ZV9pZGVudGlmaWVyKE5hbWVTdHIoKmF0dG51bUF0dE5h bWUocmVsLCBpICsgMSkpKTsKKwkJCQlpZiAoc3RhcnRlZCkKKwkJCQl7CisJCQkJCWFwcGVuZFN0 cmluZ0luZm8oJnF1ZXJ5YnVmLCAiLCAlcyIsIGNvbG5hbWUpOworCQkJCQlhcHBlbmRTdHJpbmdJ bmZvKCZwYXJhbWJ1ZiwgIiwgJCVkIiwgaSArIDEpOworCQkJCX0KKwkJCQllbHNlCisJCQkJewor CQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIiVzIiwgY29sbmFtZSk7CisJCQkJCWFw cGVuZFN0cmluZ0luZm8oJnBhcmFtYnVmLCAiJCVkIiwgaSArIDEpOworCQkJCX0KKwkJCQlzdGFy dGVkID0gdHJ1ZTsKKwkJCX0KKwkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiKSBWQUxV RVMgKCVzKSIsIHBhcmFtYnVmLmRhdGEpOworCisJCQlxcGxhbiA9IFNQSV9wcmVwYXJlKHF1ZXJ5 YnVmLmRhdGEsIG5hdHRzLCB0eXBlcyk7CisJCQlpZiAoIXFwbGFuKQorCQkJCWVsb2coRVJST1Is ICJTUElfcHJlcGFyZSByZXR1cm5lZCAlcyBmb3IgJXMiLAorCQkJCQkJU1BJX3Jlc3VsdF9jb2Rl X3N0cmluZyhTUElfcmVzdWx0KSwgcXVlcnlidWYuZGF0YSk7CisKKwkJCVNQSV9rZWVwcGxhbihx cGxhbik7CisJCQlmcG9fSGFzaFByZXBhcmVkUGxhbihyZWxpZCwgcXBsYW4pOworCQl9CisKKwkJ LyoKKwkJICogU2V0IHVwIHRoZSBTUEkgcGFyYW1zLgorCQkgKiBDb3B5IG1vc3QgYXR0cmlidXRl cycgb2xkIHZhbHVlcywKKwkJICogYnV0IGZvciB0aGUgcmFuZ2Uvc3RhcnQvZW5kIHVzZSB0aGUg bGVmdG92ZXIuCisJCSAqLworCisJCS8qIENvbnZlcnQgYm9vbCBudWxsIGFycmF5IHRvIFNQSSBj aGFyIGFycmF5ICovCisJCWZvciAoaW50IGkgPSAwOyBpIDwgbmF0dHM7IGkrKykKKwkJeworCQkJ LyoKKwkJCSAqIERvbid0IHRyeSB0byBpbnNlcnQgaW50byBkcm9wcGVkIG9yIGdlbmVyYXRlZCBj b2x1bW5zLgorCQkJICogVGVsbCBTUEkgdGhlc2UgcGFyYW1zIGFyZSBudWxsIGp1c3QgdG8gYmUg c2FmZS4KKwkJCSAqLworCQkJaWYgKHR1cGRlc2MtPmF0dHJzW2ldLmF0dGlzZHJvcHBlZCB8fCB0 dXBkZXNjLT5hdHRyc1tpXS5hdHRnZW5lcmF0ZWQpCisJCQkJZnBvU3RhdGUtPmZwX251bGxzW2ld ID0gJ24nOworCQkJZWxzZQorCQkJCWZwb1N0YXRlLT5mcF9udWxsc1tpXSA9IGxlZnRvdmVyU2xv dC0+dHRzX2lzbnVsbFtpXSA/ICduJyA6ICcgJzsKKwkJfQorCisJCWZwb1N0YXRlLT5mcF9udWxs c1tmb3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubyAtIDFdID0gJyAnOworCQlmcG9TdGF0 ZS0+ZnBfdmFsdWVzW2ZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vIC0gMV0gPSBsZWZ0 b3ZlcjsKKworCQlzcGlfcmVzdWx0ID0gU1BJX2V4ZWN1dGVfc25hcHNob3QocXBsYW4sCisJCQkJ CQkJCQkJICBmcG9TdGF0ZS0+ZnBfdmFsdWVzLAorCQkJCQkJCQkJCSAgZnBvU3RhdGUtPmZwX251 bGxzLAorCQkJCQkJCQkJCSAgR2V0TGF0ZXN0U25hcHNob3QoKSwKKwkJCQkJCQkJCQkgIEludmFs aWRTbmFwc2hvdCwgZmFsc2UsIHRydWUsIDApOworCQlpZiAoc3BpX3Jlc3VsdCAhPSBTUElfT0tf SU5TRVJUKQorCQkJZWxvZyhFUlJPUiwgIlNQSV9leGVjdXRlX3NuYXBzaG90IHJldHVybmVkICVz IiwgU1BJX3Jlc3VsdF9jb2RlX3N0cmluZyhzcGlfcmVzdWx0KSk7CisJfQorCisJaWYgKGRpZElu aXQpCisJeworCQlpZiAoU1BJX2ZpbmlzaCgpICE9IFNQSV9PS19GSU5JU0gpCisJCQllbG9nKEVS Uk9SLCAiU1BJX2ZpbmlzaCBmYWlsZWQiKTsKKworCQlpZiAoc2hvdWxkRnJlZSkKKwkJCWhlYXBf ZnJlZXR1cGxlKG9sZHR1cGxlKTsKKwl9Cit9CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlFeGVjQmF0Y2hJ bnNlcnQKICAqCkBAIC0xMzY2LDcgKzE3NTMsOCBAQCBFeGVjRGVsZXRlQWN0KE1vZGlmeVRhYmxl Q29udGV4dCAqY29udGV4dCwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKICAqCiAgKiBD bG9zaW5nIHN0ZXBzIG9mIHR1cGxlIGRlbGV0aW9uOyB0aGlzIGludm9rZXMgQUZURVIgRk9SIEVB Q0ggUk9XIHRyaWdnZXJzLAogICogaW5jbHVkaW5nIHRoZSBVUERBVEUgdHJpZ2dlcnMgaWYgdGhl IGRlbGV0aW9uIGlzIGJlaW5nIGRvbmUgYXMgcGFydCBvZiBhCi0gKiBjcm9zcy1wYXJ0aXRpb24g dHVwbGUgbW92ZS4KKyAqIGNyb3NzLXBhcnRpdGlvbiB0dXBsZSBtb3ZlLiBJdCBhbHNvIGluc2Vy dHMgbGVmdG92ZXJzIGZyb20gYSBGT1IgUE9SVElPTiBPRgorICogZGVsZXRlLgogICovCiBzdGF0 aWMgdm9pZAogRXhlY0RlbGV0ZUVwaWxvZ3VlKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwg UmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKQEAgLTEzOTksNiArMTc4NywxMCBAQCBFeGVj RGVsZXRlRXBpbG9ndWUoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZv ICpyZXN1bHRSZWxJbmZvLAogCQlhcl9kZWxldGVfdHJpZ190Y3MgPSBOVUxMOwogCX0KIAorCS8q IENvbXB1dGUgbGVmdG92ZXJzIGluIEZPUiBQT1JUSU9OIE9GICovCisJaWYgKCgoTW9kaWZ5VGFi bGUgKikgY29udGV4dC0+bXRzdGF0ZS0+cHMucGxhbiktPmZvclBvcnRpb25PZikKKwkJRXhlY0Zv clBvcnRpb25PZkxlZnRvdmVycyhjb250ZXh0LCBlc3RhdGUsIHJlc3VsdFJlbEluZm8sIHR1cGxl aWQpOworCiAJLyogQUZURVIgUk9XIERFTEVURSBUcmlnZ2VycyAqLwogCUV4ZWNBUkRlbGV0ZVRy aWdnZXJzKGVzdGF0ZSwgcmVzdWx0UmVsSW5mbywgdHVwbGVpZCwgb2xkdHVwbGUsCiAJCQkJCQkg YXJfZGVsZXRlX3RyaWdfdGNzLCBjaGFuZ2luZ1BhcnQpOwpAQCAtMTc3OSw3ICsyMTcxLDExIEBA IEV4ZWNDcm9zc1BhcnRpdGlvblVwZGF0ZShNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAJ aWYgKHJlc3VsdFJlbEluZm8gPT0gbXRzdGF0ZS0+cm9vdFJlc3VsdFJlbEluZm8pCiAJCUV4ZWNQ YXJ0aXRpb25DaGVja0VtaXRFcnJvcihyZXN1bHRSZWxJbmZvLCBzbG90LCBlc3RhdGUpOwogCi0J LyogSW5pdGlhbGl6ZSB0dXBsZSByb3V0aW5nIGluZm8gaWYgbm90IGFscmVhZHkgZG9uZS4gKi8K KwkvKgorCSAqIEluaXRpYWxpemUgdHVwbGUgcm91dGluZyBpbmZvIGlmIG5vdCBhbHJlYWR5IGRv bmUuCisJICogTm90ZSB3aGF0ZXZlciB3ZSBkbyBoZXJlIG11c3QgYmUgZG9uZSBpbiBFeGVjSW5p dE1vZGlmeVRhYmxlCisJICogZm9yIEZPUiBQT1JUSU9OIE9GIGFzIHdlbGwuCisJICovCiAJaWYg KG10c3RhdGUtPm10X3BhcnRpdGlvbl90dXBsZV9yb3V0aW5nID09IE5VTEwpCiAJewogCQlSZWxh dGlvbglyb290UmVsID0gbXRzdGF0ZS0+cm9vdFJlc3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVz YzsKQEAgLTIxNDUsNiArMjU0MSwxMCBAQCBFeGVjVXBkYXRlRXBpbG9ndWUoTW9kaWZ5VGFibGVD b250ZXh0ICpjb250ZXh0LCBVcGRhdGVDb250ZXh0ICp1cGRhdGVDeHQsCiAJCQkJCQkJCQkJCSAg IE5VTEwsIE5JTCwKIAkJCQkJCQkJCQkJICAgKHVwZGF0ZUN4dC0+dXBkYXRlSW5kZXhlcyA9PSBU VV9TdW1tYXJpemluZykpOwogCisJLyogQ29tcHV0ZSBsZWZ0b3ZlcnMgaW4gRk9SIFBPUlRJT04g T0YgKi8KKwlpZiAoKChNb2RpZnlUYWJsZSAqKSBjb250ZXh0LT5tdHN0YXRlLT5wcy5wbGFuKS0+ Zm9yUG9ydGlvbk9mKQorCQlFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKGNvbnRleHQsIGNvbnRl eHQtPmVzdGF0ZSwgcmVzdWx0UmVsSW5mbywgdHVwbGVpZCk7CisKIAkvKiBBRlRFUiBST1cgVVBE QVRFIFRyaWdnZXJzICovCiAJRXhlY0FSVXBkYXRlVHJpZ2dlcnMoY29udGV4dC0+ZXN0YXRlLCBy ZXN1bHRSZWxJbmZvLAogCQkJCQkJIE5VTEwsIE5VTEwsCkBAIC00NjQwLDYgKzUwNDAsOTkgQEAg RXhlY0luaXRNb2RpZnlUYWJsZShNb2RpZnlUYWJsZSAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGlu dCBlZmxhZ3MpCiAJCX0KIAl9CiAKKwkvKgorCSAqIElmIG5lZWRlZCwgaW5pdGlhbGl6ZSB0aGUg dGFyZ2V0IHJhbmdlIGZvciBGT1IgUE9SVElPTiBPRi4KKwkgKi8KKwlpZiAobm9kZS0+Zm9yUG9y dGlvbk9mKQorCXsKKwkJUmVzdWx0UmVsSW5mbyAqcm9vdFJlc3VsdFJlbEluZm87CisJCVR1cGxl RGVzYyB0dXBEZXNjOworCQlGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2Y7CisJCURhdHVt CXRhcmdldFJhbmdlOworCQlib29sCWlzTnVsbDsKKwkJRXhwckNvbnRleHQgKmVjb250ZXh0Owor CQlFeHByU3RhdGUgKmV4cHJTdGF0ZTsKKwkJRm9yUG9ydGlvbk9mU3RhdGUgKmZwb1N0YXRlOwor CisJCXJvb3RSZXN1bHRSZWxJbmZvID0gbXRzdGF0ZS0+cmVzdWx0UmVsSW5mbzsKKwkJaWYgKHJv b3RSZXN1bHRSZWxJbmZvLT5yaV9Sb290UmVzdWx0UmVsSW5mbykKKwkJCXJvb3RSZXN1bHRSZWxJ bmZvID0gcm9vdFJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvOworCisJCXR1cERl c2MgPSByb290UmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjLT5yZF9hdHQ7CisJCWZvclBv cnRpb25PZiA9IChGb3JQb3J0aW9uT2ZFeHByICopIG5vZGUtPmZvclBvcnRpb25PZjsKKworCQkv KiBFdmFsIHRoZSBGT1IgUE9SVElPTiBPRiB0YXJnZXQgKi8KKwkJaWYgKG10c3RhdGUtPnBzLnBz X0V4cHJDb250ZXh0ID09IE5VTEwpCisJCQlFeGVjQXNzaWduRXhwckNvbnRleHQoZXN0YXRlLCAm bXRzdGF0ZS0+cHMpOworCQllY29udGV4dCA9IG10c3RhdGUtPnBzLnBzX0V4cHJDb250ZXh0Owor CisJCWV4cHJTdGF0ZSA9IEV4ZWNQcmVwYXJlRXhwcigoRXhwciAqKSBmb3JQb3J0aW9uT2YtPnRh cmdldFJhbmdlLCBlc3RhdGUpOworCQl0YXJnZXRSYW5nZSA9IEV4ZWNFdmFsRXhwcihleHByU3Rh dGUsIGVjb250ZXh0LCAmaXNOdWxsKTsKKwkJaWYgKGlzTnVsbCkKKwkJCWVsb2coRVJST1IsICJH b3QgYSBOVUxMIEZPUiBQT1JUSU9OIE9GIHRhcmdldCByYW5nZSIpOworCisJCS8qIENyZWF0ZSBz dGF0ZSBmb3IgRk9SIFBPUlRJT04gT0Ygb3BlcmF0aW9uICovCisKKwkJZnBvU3RhdGUgPSBtYWtl Tm9kZShGb3JQb3J0aW9uT2ZTdGF0ZSk7CisJCWZwb1N0YXRlLT5mcF9yYW5nZU5hbWUgPSBmb3JQ b3J0aW9uT2YtPnJhbmdlX25hbWU7CisJCWZwb1N0YXRlLT5mcF9yYW5nZVR5cGUgPSBmb3JQb3J0 aW9uT2YtPnJhbmdlVHlwZTsKKwkJZnBvU3RhdGUtPmZwX3JhbmdlQXR0bm8gPSBmb3JQb3J0aW9u T2YtPnJhbmdlVmFyLT52YXJhdHRubzsKKwkJZnBvU3RhdGUtPmZwX3RhcmdldFJhbmdlID0gdGFy Z2V0UmFuZ2U7CisKKwkJLyogSW5pdGlhbGl6ZSBzbG90IGZvciB0aGUgZXhpc3RpbmcgdHVwbGUg Ki8KKworCQlmcG9TdGF0ZS0+ZnBfRXhpc3RpbmcgPQorCQkJdGFibGVfc2xvdF9jcmVhdGUocm9v dFJlc3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYywKKwkJCQkJCQkgICZtdHN0YXRlLT5wcy5z dGF0ZS0+ZXNfdHVwbGVUYWJsZSk7CisKKwkJLyogQ3JlYXRlIHRoZSB0dXBsZSBzbG90IGZvciBJ TlNFUlRpbmcgdGhlIGxlZnRvdmVycyAqLworCisJCWZwb1N0YXRlLT5mcF9MZWZ0b3ZlciA9CisJ CQlFeGVjSW5pdEV4dHJhVHVwbGVTbG90KG10c3RhdGUtPnBzLnN0YXRlLCB0dXBEZXNjLCAmVFRT T3BzVmlydHVhbCk7CisKKwkJLyogQWxsb2NhdGUgb3VyIFNQSSBwYXJhbSBhcnJheXMgaGVyZSBz byB3ZSBjYW4gcmV1c2UgdGhlbSAqLworCQlmcG9TdGF0ZS0+ZnBfdmFsdWVzID0gcGFsbG9jKHR1 cERlc2MtPm5hdHRzICogc2l6ZW9mKERhdHVtKSk7CisJCWZwb1N0YXRlLT5mcF9udWxscyA9IHBh bGxvYyh0dXBEZXNjLT5uYXR0cyAqIHNpemVvZihjaGFyKSk7CisKKwkJLyoKKwkJICogV2UgbXVz dCBhdHRhY2ggdGhlIEZvclBvcnRpb25PZlN0YXRlIHRvIGFsbCByZXN1bHQgcmVscywKKwkJICog aW4gY2FzZSBvZiBhIGNyb3NzLXBhcnRpdGlvbiB1cGRhdGUgb3IgdHJpZ2dlcnMgZmlyaW5nCisJ CSAqIG9uIHBhcnRpdGlvbnMuCisJCSAqIFhYWDogQ2FuIHdlIGRlZmVyIHRoaXMgdG8gb25seSB0 aGUgbGVhZnMgd2UgdG91Y2g/CisJCSAqLworCQlmb3IgKGkgPSAwOyBpIDwgbnJlbHM7IGkrKykK KwkJeworCQkJRm9yUG9ydGlvbk9mU3RhdGUJKmxlYWZTdGF0ZTsKKwkJCXJlc3VsdFJlbEluZm8g PSAmbXRzdGF0ZS0+cmVzdWx0UmVsSW5mb1tpXTsKKworCQkJbGVhZlN0YXRlID0gbWFrZU5vZGUo Rm9yUG9ydGlvbk9mU3RhdGUpOworCQkJbGVhZlN0YXRlLT5mcF9yYW5nZU5hbWUgPSBmcG9TdGF0 ZS0+ZnBfcmFuZ2VOYW1lOworCQkJbGVhZlN0YXRlLT5mcF9yYW5nZVR5cGUgPSBmcG9TdGF0ZS0+ ZnBfcmFuZ2VUeXBlOworCQkJbGVhZlN0YXRlLT5mcF9yYW5nZUF0dG5vID0gZnBvU3RhdGUtPmZw X3JhbmdlQXR0bm87CisJCQlsZWFmU3RhdGUtPmZwX3RhcmdldFJhbmdlID0gZnBvU3RhdGUtPmZw X3RhcmdldFJhbmdlOworCQkJbGVhZlN0YXRlLT5mcF9MZWZ0b3ZlciA9IGZwb1N0YXRlLT5mcF9M ZWZ0b3ZlcjsKKwkJCS8qIEVhY2ggcGFydGl0aW9uIG5lZWRzIGEgc2xvdCBtYXRjaGluZyBpdHMg dHVwbGUgZGVzY3JpcHRvciAqLworCQkJbGVhZlN0YXRlLT5mcF9FeGlzdGluZyA9CisJCQkJdGFi bGVfc2xvdF9jcmVhdGUocmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjLAorCQkJCQkJCQkg ICZtdHN0YXRlLT5wcy5zdGF0ZS0+ZXNfdHVwbGVUYWJsZSk7CisJCQkvKgorCQkJICogTGVhZnMg bmVlZCB0aGVtIG93biBTUEkgaW5wdXQgYXJyYXlzCisJCQkgKiBzaW5jZSB0aGV5IG1pZ2h0IGhh dmUgZXh0cmEgYXR0cmlidXRlcywKKwkJCSAqIGJ1dCB3ZSdsbCBhbGxvY2F0ZSB0aG9zZSBhcyBu ZWVkZWQuCisJCQkgKi8KKwkJCWxlYWZTdGF0ZS0+ZnBfdmFsdWVzID0gTlVMTDsKKwkJCWxlYWZT dGF0ZS0+ZnBfbnVsbHMgPSBOVUxMOworCisJCQlyZXN1bHRSZWxJbmZvLT5yaV9mb3JQb3J0aW9u T2YgPSBsZWFmU3RhdGU7CisJCX0KKworCQkvKiBNYWtlIHN1cmUgdGhlIHJvb3QgcmVsYXRpb24g aGFzIHRoZSBGT1IgUE9SVElPTiBPRiBjbGF1c2UgdG9vLiAqLworCQlpZiAobm9kZS0+cm9vdFJl bGF0aW9uID4gMCkKKwkJCW10c3RhdGUtPnJvb3RSZXN1bHRSZWxJbmZvLT5yaV9mb3JQb3J0aW9u T2YgPSBmcG9TdGF0ZTsKKworCQkvKiBEb24ndCBmcmVlIHRoZSBFeHByQ29udGV4dCBoZXJlIGJl Y2F1c2UgdGhlIHJlc3VsdCBtdXN0IGxhc3QgZm9yIHRoZSB3aG9sZSBxdWVyeSAqLworCX0KKwog CS8qCiAJICogSWYgd2UgaGF2ZSBhbnkgc2Vjb25kYXJ5IHJlbGF0aW9ucyBpbiBhbiBVUERBVEUg b3IgREVMRVRFLCB0aGV5IG5lZWQgdG8KIAkgKiBiZSB0cmVhdGVkIGxpa2Ugbm9uLWxvY2tlZCBy ZWxhdGlvbnMgaW4gU0VMRUNUIEZPUiBVUERBVEUsIGkuZS4sIHRoZQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYwppbmRl eCA5MGQ5ODM0NTc2NC4uNWRiNTEzYjg0Y2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL3NwaS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCkBAIC03NjEsNyArNzYx LDcgQEAgU1BJX2V4ZWN1dGVfcGxhbl93aXRoX3BhcmFtbGlzdChTUElQbGFuUHRyIHBsYW4sIFBh cmFtTGlzdEluZm8gcGFyYW1zLAogICogZW5kIG9mIHRoZSBjb21tYW5kLgogICoKICAqIFRoaXMg aXMgY3VycmVudGx5IG5vdCBkb2N1bWVudGVkIGluIHNwaS5zZ21sIGJlY2F1c2UgaXQgaXMgb25s eSBpbnRlbmRlZAotICogZm9yIHVzZSBieSBSSSB0cmlnZ2Vycy4KKyAqIGZvciB1c2UgYnkgUkkg dHJpZ2dlcnMgYW5kIEZPUiBQT1JUSU9OIE9GLgogICoKICAqIFBhc3Npbmcgc25hcHNob3QgPT0g SW52YWxpZFNuYXBzaG90IHdpbGwgc2VsZWN0IHRoZSBub3JtYWwgYmVoYXZpb3Igb2YKICAqIGZl dGNoaW5nIGEgbmV3IHNuYXBzaG90IGZvciBlYWNoIHF1ZXJ5LgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpp bmRleCAwZDAwZTAyOWYzMi4uNWU3ZTEzMTZlODEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0y NTYxLDYgKzI1NjEsMTQgQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUs CiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9Gb3JQb3J0aW9u T2ZFeHByOgorCQkJeworCQkJCUZvclBvcnRpb25PZkV4cHIgKmZvclBvcnRpb25PZiA9IChGb3JQ b3J0aW9uT2ZFeHByICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhmb3JQb3J0aW9uT2YtPnRhcmdl dFJhbmdlKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX1Bh cnRpdGlvblBydW5lU3RlcE9wOgogCQkJewogCQkJCVBhcnRpdGlvblBydW5lU3RlcE9wICpvcHN0 ZXAgPSAoUGFydGl0aW9uUHJ1bmVTdGVwT3AgKikgbm9kZTsKQEAgLTI3MDcsNiArMjcxNSw4IEBA IHF1ZXJ5X3RyZWVfd2Fsa2VyX2ltcGwoUXVlcnkgKnF1ZXJ5LAogCQlyZXR1cm4gdHJ1ZTsKIAlp ZiAoV0FMSyhxdWVyeS0+bWVyZ2VKb2luQ29uZGl0aW9uKSkKIAkJcmV0dXJuIHRydWU7CisJaWYg KFdBTEsocXVlcnktPmZvclBvcnRpb25PZikpCisJCXJldHVybiB0cnVlOwogCWlmIChXQUxLKHF1 ZXJ5LT5yZXR1cm5pbmdMaXN0KSkKIAkJcmV0dXJuIHRydWU7CiAJaWYgKFdBTEsocXVlcnktPmpv aW50cmVlKSkKQEAgLTM1OTEsNiArMzYwMSwxOSBAQCBleHByZXNzaW9uX3RyZWVfbXV0YXRvcl9p bXBsKE5vZGUgKm5vZGUsCiAJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CiAJCQl9CiAJCQli cmVhazsKKwkJY2FzZSBUX0ZvclBvcnRpb25PZkV4cHI6CisJCQl7CisJCQkJRm9yUG9ydGlvbk9m RXhwciAqZnBvID0gKEZvclBvcnRpb25PZkV4cHIgKikgbm9kZTsKKwkJCQlGb3JQb3J0aW9uT2ZF eHByICpuZXdub2RlOworCisJCQkJRkxBVENPUFkobmV3bm9kZSwgZnBvLCBGb3JQb3J0aW9uT2ZF eHByKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+cmFuZ2VWYXIsIGZwby0+cmFuZ2VWYXIsIFZhciAq KTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+dGFyZ2V0UmFuZ2UsIGZwby0+dGFyZ2V0UmFuZ2UsIE5v ZGUgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnJhbmdlVGFyZ2V0TGlzdCwgZnBvLT5yYW5nZVRh cmdldExpc3QsIExpc3QgKik7CisKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKKwkJCX0K KwkJCWJyZWFrOwogCQljYXNlIFRfUGFydGl0aW9uUHJ1bmVTdGVwT3A6CiAJCQl7CiAJCQkJUGFy dGl0aW9uUHJ1bmVTdGVwT3AgKm9wc3RlcCA9IChQYXJ0aXRpb25QcnVuZVN0ZXBPcCAqKSBub2Rl OwpAQCAtMzc3Miw2ICszNzk1LDcgQEAgcXVlcnlfdHJlZV9tdXRhdG9yX2ltcGwoUXVlcnkgKnF1 ZXJ5LAogCU1VVEFURShxdWVyeS0+b25Db25mbGljdCwgcXVlcnktPm9uQ29uZmxpY3QsIE9uQ29u ZmxpY3RFeHByICopOwogCU1VVEFURShxdWVyeS0+bWVyZ2VBY3Rpb25MaXN0LCBxdWVyeS0+bWVy Z2VBY3Rpb25MaXN0LCBMaXN0ICopOwogCU1VVEFURShxdWVyeS0+bWVyZ2VKb2luQ29uZGl0aW9u LCBxdWVyeS0+bWVyZ2VKb2luQ29uZGl0aW9uLCBOb2RlICopOworCU1VVEFURShxdWVyeS0+Zm9y UG9ydGlvbk9mLCBxdWVyeS0+Zm9yUG9ydGlvbk9mLCBGb3JQb3J0aW9uT2ZFeHByICopOwogCU1V VEFURShxdWVyeS0+cmV0dXJuaW5nTGlzdCwgcXVlcnktPnJldHVybmluZ0xpc3QsIExpc3QgKik7 CiAJTVVUQVRFKHF1ZXJ5LT5qb2ludHJlZSwgcXVlcnktPmpvaW50cmVlLCBGcm9tRXhwciAqKTsK IAlNVVRBVEUocXVlcnktPnNldE9wZXJhdGlvbnMsIHF1ZXJ5LT5zZXRPcGVyYXRpb25zLCBOb2Rl ICopOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5j IGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCmluZGV4IGMxMzU4NmM1 MzdlLi5jYzI5OWNkMzVkNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v Y3JlYXRlcGxhbi5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4u YwpAQCAtMzE2LDcgKzMxNiw3IEBAIHN0YXRpYyBNb2RpZnlUYWJsZSAqbWFrZV9tb2RpZnl0YWJs ZShQbGFubmVySW5mbyAqcm9vdCwgUGxhbiAqc3VicGxhbiwKIAkJCQkJCQkJCSBMaXN0ICp3aXRo Q2hlY2tPcHRpb25MaXN0cywgTGlzdCAqcmV0dXJuaW5nTGlzdHMsCiAJCQkJCQkJCQkgTGlzdCAq cm93TWFya3MsIE9uQ29uZmxpY3RFeHByICpvbmNvbmZsaWN0LAogCQkJCQkJCQkJIExpc3QgKm1l cmdlQWN0aW9uTGlzdHMsIExpc3QgKm1lcmdlSm9pbkNvbmRpdGlvbnMsCi0JCQkJCQkJCQkgaW50 IGVwcVBhcmFtKTsKKwkJCQkJCQkJCSBGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2YsIGlu dCBlcHFQYXJhbSk7CiBzdGF0aWMgR2F0aGVyTWVyZ2UgKmNyZWF0ZV9nYXRoZXJfbWVyZ2VfcGxh bihQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJCQkJIEdhdGhlck1lcmdlUGF0aCAqYmVzdF9w YXRoKTsKIApAQCAtMjgzNyw2ICsyODM3LDcgQEAgY3JlYXRlX21vZGlmeXRhYmxlX3BsYW4oUGxh bm5lckluZm8gKnJvb3QsIE1vZGlmeVRhYmxlUGF0aCAqYmVzdF9wYXRoKQogCQkJCQkJCWJlc3Rf cGF0aC0+b25jb25mbGljdCwKIAkJCQkJCQliZXN0X3BhdGgtPm1lcmdlQWN0aW9uTGlzdHMsCiAJ CQkJCQkJYmVzdF9wYXRoLT5tZXJnZUpvaW5Db25kaXRpb25zLAorCQkJCQkJCWJlc3RfcGF0aC0+ Zm9yUG9ydGlvbk9mLAogCQkJCQkJCWJlc3RfcGF0aC0+ZXBxUGFyYW0pOwogCiAJY29weV9nZW5l cmljX3BhdGhfaW5mbygmcGxhbi0+cGxhbiwgJmJlc3RfcGF0aC0+cGF0aCk7CkBAIC03MTEwLDcg KzcxMTEsNyBAQCBtYWtlX21vZGlmeXRhYmxlKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpzdWJw bGFuLAogCQkJCSBMaXN0ICp3aXRoQ2hlY2tPcHRpb25MaXN0cywgTGlzdCAqcmV0dXJuaW5nTGlz dHMsCiAJCQkJIExpc3QgKnJvd01hcmtzLCBPbkNvbmZsaWN0RXhwciAqb25jb25mbGljdCwKIAkJ CQkgTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgTGlzdCAqbWVyZ2VKb2luQ29uZGl0aW9ucywKLQkJ CQkgaW50IGVwcVBhcmFtKQorCQkJCSBGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2YsIGlu dCBlcHFQYXJhbSkKIHsKIAlNb2RpZnlUYWJsZSAqbm9kZSA9IG1ha2VOb2RlKE1vZGlmeVRhYmxl KTsKIAlMaXN0CSAgICpmZHdfcHJpdmF0ZV9saXN0OwpAQCAtNzE3Niw2ICs3MTc3LDcgQEAgbWFr ZV9tb2RpZnl0YWJsZShQbGFubmVySW5mbyAqcm9vdCwgUGxhbiAqc3VicGxhbiwKIAkJbm9kZS0+ ZXhjbFJlbFRsaXN0ID0gb25jb25mbGljdC0+ZXhjbFJlbFRsaXN0OwogCX0KIAlub2RlLT51cGRh dGVDb2xub3NMaXN0cyA9IHVwZGF0ZUNvbG5vc0xpc3RzOworCW5vZGUtPmZvclBvcnRpb25PZiA9 IChOb2RlICopIGZvclBvcnRpb25PZjsKIAlub2RlLT53aXRoQ2hlY2tPcHRpb25MaXN0cyA9IHdp dGhDaGVja09wdGlvbkxpc3RzOwogCW5vZGUtPnJldHVybmluZ0xpc3RzID0gcmV0dXJuaW5nTGlz dHM7CiAJbm9kZS0+cm93TWFya3MgPSByb3dNYXJrczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Bs YW5uZXIuYwppbmRleCAwZjQyM2U5Njg0Ny4uZWRhMmIxY2Y0NWQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTIwNDgsNiArMjA0OCw3IEBAIGdyb3VwaW5nX3BsYW5uZXIo UGxhbm5lckluZm8gKnJvb3QsIGRvdWJsZSB0dXBsZV9mcmFjdGlvbiwKIAkJCQkJCQkJCQlwYXJz ZS0+b25Db25mbGljdCwKIAkJCQkJCQkJCQltZXJnZUFjdGlvbkxpc3RzLAogCQkJCQkJCQkJCW1l cmdlSm9pbkNvbmRpdGlvbnMsCisJCQkJCQkJCQkJcGFyc2UtPmZvclBvcnRpb25PZiwKIAkJCQkJ CQkJCQlhc3NpZ25fc3BlY2lhbF9leGVjX3BhcmFtKHJvb3QpKTsKIAkJfQogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jIGIvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvcGF0aG5vZGUuYwppbmRleCBmYzk3YmY2ZWUyNi4uYTRjYzZlMDk2MjAgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMKKysrIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYwpAQCAtMzgyNyw3ICszODI3LDcgQEAg Y3JlYXRlX21vZGlmeXRhYmxlX3BhdGgoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJl bCwKIAkJCQkJCUxpc3QgKndpdGhDaGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1cm5pbmdMaXN0 cywKIAkJCQkJCUxpc3QgKnJvd01hcmtzLCBPbkNvbmZsaWN0RXhwciAqb25jb25mbGljdCwKIAkJ CQkJCUxpc3QgKm1lcmdlQWN0aW9uTGlzdHMsIExpc3QgKm1lcmdlSm9pbkNvbmRpdGlvbnMsCi0J CQkJCQlpbnQgZXBxUGFyYW0pCisJCQkJCQlGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2Ys IGludCBlcHFQYXJhbSkKIHsKIAlNb2RpZnlUYWJsZVBhdGggKnBhdGhub2RlID0gbWFrZU5vZGUo TW9kaWZ5VGFibGVQYXRoKTsKIApAQCAtMzg5NCw2ICszODk0LDcgQEAgY3JlYXRlX21vZGlmeXRh YmxlX3BhdGgoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIAlwYXRobm9kZS0+ cmV0dXJuaW5nTGlzdHMgPSByZXR1cm5pbmdMaXN0czsKIAlwYXRobm9kZS0+cm93TWFya3MgPSBy b3dNYXJrczsKIAlwYXRobm9kZS0+b25jb25mbGljdCA9IG9uY29uZmxpY3Q7CisJcGF0aG5vZGUt PmZvclBvcnRpb25PZiA9IGZvclBvcnRpb25PZjsKIAlwYXRobm9kZS0+ZXBxUGFyYW0gPSBlcHFQ YXJhbTsKIAlwYXRobm9kZS0+bWVyZ2VBY3Rpb25MaXN0cyA9IG1lcmdlQWN0aW9uTGlzdHM7CiAJ cGF0aG5vZGUtPm1lcmdlSm9pbkNvbmRpdGlvbnMgPSBtZXJnZUpvaW5Db25kaXRpb25zOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMKaW5kZXggZTkwMTIwMzQyNGQuLjY1NTRjMWNiN2JkIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMKQEAgLTI0LDcgKzI0LDEwIEBACiAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5j bHVkZSAiYWNjZXNzL2dpc3QuaCIKKyNpbmNsdWRlICJhY2Nlc3Mvc3RyYXRudW0uaCIKICNpbmNs dWRlICJhY2Nlc3Mvc3lzYXR0ci5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNp bmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKQEAgLTQ3LDEwICs1MCwxMiBAQAogI2luY2x1ZGUg InBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90YXJnZXQu aCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJz ZXIuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCiAjaW5jbHVkZSAidXRpbHMvYmFj a2VuZF9zdGF0dXMuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0 aWxzL2d1Yy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxz L3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKQEAgLTU5LDEwICs2NCwxNiBA QAogcG9zdF9wYXJzZV9hbmFseXplX2hvb2tfdHlwZSBwb3N0X3BhcnNlX2FuYWx5emVfaG9vayA9 IE5VTEw7CiAKIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtT3B0aW9uYWxTZWxlY3RJbnRvKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTm9kZSAqcGFyc2VUcmVlKTsKK3N0YXRpYyBOb2RlICphZGRGb3JQb3J0 aW9uT2ZXaGVyZUNvbmRpdGlvbnMoUXVlcnkgKnFyeSwgRm9yUG9ydGlvbk9mQ2xhdXNlICpmb3JQ b3J0aW9uT2YsCisJCQkJCQkJCQkJCU5vZGUgKndoZXJlQ2xhdXNlKTsKIHN0YXRpYyBRdWVyeSAq dHJhbnNmb3JtRGVsZXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIERlbGV0ZVN0bXQgKnN0bXQp Owogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1JbnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg SW5zZXJ0U3RtdCAqc3RtdCk7CiBzdGF0aWMgT25Db25mbGljdEV4cHIgKnRyYW5zZm9ybU9uQ29u ZmxpY3RDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQkJIE9uQ29uZmxpY3RD bGF1c2UgKm9uQ29uZmxpY3RDbGF1c2UpOworc3RhdGljIEZvclBvcnRpb25PZkV4cHIgKnRyYW5z Zm9ybUZvclBvcnRpb25PZkNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJCQkJCQkJ IGludCBydGluZGV4LAorCQkJCQkJCQkJCQkJCSBGb3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRp b25PZkNsYXVzZSwKKwkJCQkJCQkJCQkJCQkgYm9vbCBpc1VwZGF0ZSk7CiBzdGF0aWMgaW50CWNv dW50X3Jvd2V4cHJfY29sdW1ucyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpOwogc3Rh dGljIFF1ZXJ5ICp0cmFuc2Zvcm1TZWxlY3RTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0 U3RtdCAqc3RtdCk7CiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybVZhbHVlc0NsYXVzZShQYXJzZVN0 YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpOwpAQCAtNDgyLDYgKzQ5MywyMCBAQCBzdG10 X3JlcXVpcmVzX3BhcnNlX2FuYWx5c2lzKFJhd1N0bXQgKnBhcnNlVHJlZSkKIAlyZXR1cm4gcmVz dWx0OwogfQogCitzdGF0aWMgTm9kZSAqCithZGRGb3JQb3J0aW9uT2ZXaGVyZUNvbmRpdGlvbnMo UXVlcnkgKnFyeSwgRm9yUG9ydGlvbk9mQ2xhdXNlICpmb3JQb3J0aW9uT2YsIE5vZGUgKndoZXJl Q2xhdXNlKQoreworCWlmIChmb3JQb3J0aW9uT2YpCisJeworCQlpZiAod2hlcmVDbGF1c2UpCisJ CQlyZXR1cm4gKE5vZGUgKikgbWFrZUJvb2xFeHByKEFORF9FWFBSLCBsaXN0X21ha2UyKHFyeS0+ Zm9yUG9ydGlvbk9mLT5vdmVybGFwc0V4cHIsIHdoZXJlQ2xhdXNlKSwgLTEpOworCQllbHNlCisJ CQlyZXR1cm4gcXJ5LT5mb3JQb3J0aW9uT2YtPm92ZXJsYXBzRXhwcjsKKwl9CisJZWxzZQorCQly ZXR1cm4gd2hlcmVDbGF1c2U7Cit9CisKIC8qCiAgKiBhbmFseXplX3JlcXVpcmVzX3NuYXBzaG90 CiAgKgkJUmV0dXJucyB0cnVlIGlmIGEgc25hcHNob3QgbXVzdCBiZSBzZXQgYmVmb3JlIGRvaW5n IHBhcnNlIGFuYWx5c2lzCkBAIC01MTUsNiArNTQwLDcgQEAgdHJhbnNmb3JtRGVsZXRlU3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsIERlbGV0ZVN0bXQgKnN0bXQpCiB7CiAJUXVlcnkJICAgKnFyeSA9 IG1ha2VOb2RlKFF1ZXJ5KTsKIAlQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbTsKKwlOb2RlCSAg ICp3aGVyZUNsYXVzZTsKIAlOb2RlCSAgICpxdWFsOwogCiAJcXJ5LT5jb21tYW5kVHlwZSA9IENN RF9ERUxFVEU7CkBAIC01NTMsNyArNTc5LDExIEBAIHRyYW5zZm9ybURlbGV0ZVN0bXQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBEZWxldGVTdG10ICpzdG10KQogCW5zaXRlbS0+cF9sYXRlcmFsX29ubHkg PSBmYWxzZTsKIAluc2l0ZW0tPnBfbGF0ZXJhbF9vayA9IHRydWU7CiAKLQlxdWFsID0gdHJhbnNm b3JtV2hlcmVDbGF1c2UocHN0YXRlLCBzdG10LT53aGVyZUNsYXVzZSwKKwlpZiAoc3RtdC0+Zm9y UG9ydGlvbk9mKQorCQlxcnktPmZvclBvcnRpb25PZiA9IHRyYW5zZm9ybUZvclBvcnRpb25PZkNs YXVzZShwc3RhdGUsIHFyeS0+cmVzdWx0UmVsYXRpb24sIHN0bXQtPmZvclBvcnRpb25PZiwgZmFs c2UpOworCisJd2hlcmVDbGF1c2UgPSBhZGRGb3JQb3J0aW9uT2ZXaGVyZUNvbmRpdGlvbnMocXJ5 LCBzdG10LT5mb3JQb3J0aW9uT2YsIHN0bXQtPndoZXJlQ2xhdXNlKTsKKwlxdWFsID0gdHJhbnNm b3JtV2hlcmVDbGF1c2UocHN0YXRlLCB3aGVyZUNsYXVzZSwKIAkJCQkJCQkJRVhQUl9LSU5EX1dI RVJFLCAiV0hFUkUiKTsKIAogCXFyeS0+cmV0dXJuaW5nTGlzdCA9IHRyYW5zZm9ybVJldHVybmlu Z0xpc3QocHN0YXRlLCBzdG10LT5yZXR1cm5pbmdMaXN0LApAQCAtMTE4OSw3ICsxMjE5LDcgQEAg dHJhbnNmb3JtT25Db25mbGljdENsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCSAqIE5vdyB0 cmFuc2Zvcm0gdGhlIFVQREFURSBzdWJleHByZXNzaW9ucy4KIAkJICovCiAJCW9uQ29uZmxpY3RT ZXQgPQotCQkJdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChwc3RhdGUsIG9uQ29uZmxpY3RDbGF1 c2UtPnRhcmdldExpc3QpOworCQkJdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChwc3RhdGUsIG9u Q29uZmxpY3RDbGF1c2UtPnRhcmdldExpc3QsIE5VTEwpOwogCiAJCW9uQ29uZmxpY3RXaGVyZSA9 IHRyYW5zZm9ybVdoZXJlQ2xhdXNlKHBzdGF0ZSwKIAkJCQkJCQkJCQkJICAgb25Db25mbGljdENs YXVzZS0+d2hlcmVDbGF1c2UsCkBAIC0xMjE5LDYgKzEyNDksMTg2IEBAIHRyYW5zZm9ybU9uQ29u ZmxpY3RDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8q CisgKiB0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1c2UKKyAqCisgKgkgIFRyYW5zZm9ybXMgYSBG b3JQb3J0aW9uT2ZDbGF1c2UgaW4gYW4gVVBEQVRFL0RFTEVURSBzdGF0ZW1lbnQuCisgKgorICoJ ICAtIExvb2sgdXAgdGhlIHJhbmdlL3BlcmlvZCByZXF1ZXN0ZWQuCisgKgkgIC0gQnVpbGQgYSBj b21wYXRpYmxlIHJhbmdlIHZhbHVlIGZyb20gdGhlIEZST00gYW5kIFRPIGV4cHJlc3Npb25zLgor ICoJICAtIEJ1aWxkIGFuICJvdmVybGFwcyIgZXhwcmVzc2lvbiBmb3IgZmlsdGVyaW5nLgorICoJ ICAtIEZvciBVUERBVEVzLCBidWlsZCBhbiAiaW50ZXJzZWN0cyIgZXhwcmVzc2lvbiB0aGUgcmV3 cml0ZXIgY2FuIGFkZAorICoJCXRvIHRoZSB0YXJnZXRMaXN0IHRvIGNoYW5nZSB0aGUgdGVtcG9y YWwgYm91bmRzLgorICovCitzdGF0aWMgRm9yUG9ydGlvbk9mRXhwciAqCit0cmFuc2Zvcm1Gb3JQ b3J0aW9uT2ZDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCWludCBydGluZGV4LAor CQkJCQkJCUZvclBvcnRpb25PZkNsYXVzZSAqZm9yUG9ydGlvbk9mLAorCQkJCQkJCWJvb2wgaXNV cGRhdGUpCit7CisJUmVsYXRpb24gdGFyZ2V0cmVsID0gcHN0YXRlLT5wX3RhcmdldF9yZWxhdGlv bjsKKwlSVEVQZXJtaXNzaW9uSW5mbyAqdGFyZ2V0X3Blcm1pbmZvID0gcHN0YXRlLT5wX3Rhcmdl dF9uc2l0ZW0tPnBfcGVybWluZm87CisJY2hhciAqcmFuZ2VfbmFtZSA9IGZvclBvcnRpb25PZi0+ cmFuZ2VfbmFtZTsKKwljaGFyICpyYW5nZV90eXBlX25hbWVzcGFjZSA9IE5VTEw7CisJY2hhciAq cmFuZ2VfdHlwZV9uYW1lID0gTlVMTDsKKwlpbnQgcmFuZ2VfYXR0bm8gPSBJbnZhbGlkQXR0ck51 bWJlcjsKKwlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyOworCU9pZAlvcGNsYXNzOworCU9pZCBvcGZh bWlseTsKKwlPaWQgb3BjaW50eXBlOworCU9pZCBmdW5jaWQgPSBJbnZhbGlkT2lkOworCVN0cmF0 ZWd5TnVtYmVyIHN0cmF0OworCU9pZAlvcGlkOworCUZvclBvcnRpb25PZkV4cHIgKnJlc3VsdDsK KwlWYXIgKnJhbmdlVmFyOworCU5vZGUgKnRhcmdldEV4cHI7CisKKwkvKiBXZSBkb24ndCBzdXBw b3J0IEZPUiBQT1JUSU9OIE9GIEZEVyBxdWVyaWVzLiAqLworCWlmICh0YXJnZXRyZWwtPnJkX3Jl bC0+cmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2co ImZvcmVpZ24gdGFibGVzIGRvbid0IHN1cHBvcnQgRk9SIFBPUlRJT04gT0YiKSkpOworCisJcmVz dWx0ID0gbWFrZU5vZGUoRm9yUG9ydGlvbk9mRXhwcik7CisKKwkvKiBMb29rIHVwIHRoZSBGT1Ig UE9SVElPTiBPRiBuYW1lIHJlcXVlc3RlZC4gKi8KKwlyYW5nZV9hdHRubyA9IGF0dG5hbWVBdHRO dW0odGFyZ2V0cmVsLCByYW5nZV9uYW1lLCBmYWxzZSk7CisJaWYgKHJhbmdlX2F0dG5vID09IElu dmFsaWRBdHRyTnVtYmVyKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVf VU5ERUZJTkVEX0NPTFVNTiksCisJCQkJIGVycm1zZygiY29sdW1uIG9yIHBlcmlvZCBcIiVzXCIg b2YgcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCXJhbmdlX25hbWUsCisJ CQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpKSwKKwkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgZm9yUG9ydGlvbk9mLT5sb2NhdGlvbikpKTsKKwlhdHRyID0gVHVw bGVEZXNjQXR0cih0YXJnZXRyZWwtPnJkX2F0dCwgcmFuZ2VfYXR0bm8gLSAxKTsKKworCXJhbmdl VmFyID0gbWFrZVZhcigKKwkJCXJ0aW5kZXgsCisJCQlyYW5nZV9hdHRubywKKwkJCWF0dHItPmF0 dHR5cGlkLAorCQkJYXR0ci0+YXR0dHlwbW9kLAorCQkJYXR0ci0+YXR0Y29sbGF0aW9uLAorCQkJ MCk7CisJcmFuZ2VWYXItPmxvY2F0aW9uID0gZm9yUG9ydGlvbk9mLT5sb2NhdGlvbjsKKwlyZXN1 bHQtPnJhbmdlVmFyID0gcmFuZ2VWYXI7CisJcmVzdWx0LT5yYW5nZVR5cGUgPSBhdHRyLT5hdHR0 eXBpZDsKKwlpZiAoIWdldF90eXBuYW1lX2FuZF9uYW1lc3BhY2UoYXR0ci0+YXR0dHlwaWQsICZy YW5nZV90eXBlX25hbWUsICZyYW5nZV90eXBlX25hbWVzcGFjZSkpCisJCWVsb2coRVJST1IsICJj YWNoZSBsb29rdXAgZmFpbGVkIGZvciB0eXBlICV1IiwgYXR0ci0+YXR0dHlwaWQpOworCisKKwlp ZiAoZm9yUG9ydGlvbk9mLT50YXJnZXQpCisJCS8qCisJCSAqIFdlIHdlcmUgYWxyZWFkeSBnaXZl biBhbiBleHByZXNzaW9uIGZvciB0aGUgdGFyZ2V0LAorCQkgKiBzbyB3ZSBkb24ndCBoYXZlIHRv IGJ1aWxkIGFueXRoaW5nLgorCQkgKi8KKwkJdGFyZ2V0RXhwciA9IGZvclBvcnRpb25PZi0+dGFy Z2V0OworCWVsc2UKKwl7CisJCS8qIE1ha2Ugc3VyZSBpdCdzIGEgcmFuZ2UgY29sdW1uICovCisJ CWlmICghdHlwZV9pc19yYW5nZShhdHRyLT5hdHR0eXBpZCkpCisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQ09MVU1OX1JFRkVSRU5DRSksCisJCQkJCSBl cnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIG5vdCBhIHJhbmdlIHR5 cGUiLAorCQkJCQkJCXJhbmdlX25hbWUsCisJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo dGFyZ2V0cmVsKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBmb3JQb3J0aW9u T2YtPmxvY2F0aW9uKSkpOworCisJCS8qCisJCSAqIEJ1aWxkIGEgcmFuZ2UgZnJvbSB0aGUgRlJP TSAuLi4gVE8gLi4uLiBib3VuZHMuCisJCSAqIFRoaXMgc2hvdWxkIGdpdmUgYSBjb25zdGFudCBy ZXN1bHQsIHNvIHdlIGFjY2VwdCBmdW5jdGlvbnMgbGlrZSBOT1coKQorCQkgKiBidXQgbm90IGNv bHVtbiByZWZlcmVuY2VzLCBzdWJxdWVyaWVzLCBldGMuCisJCSAqCisJCSAqIEl0IGFsc28gcGVy bWl0cyBVTkJPVU5ERUQgaW4gZWl0aGVyIHBsYWNlLgorCQkgKi8KKwkJdGFyZ2V0RXhwciA9IChO b2RlICopIG1ha2VGdW5jQ2FsbCgKKwkJCQlsaXN0X21ha2UyKG1ha2VTdHJpbmcocmFuZ2VfdHlw ZV9uYW1lc3BhY2UpLCBtYWtlU3RyaW5nKHJhbmdlX3R5cGVfbmFtZSkpLAorCQkJCWxpc3RfbWFr ZTIoZm9yUG9ydGlvbk9mLT50YXJnZXRfc3RhcnQsIGZvclBvcnRpb25PZi0+dGFyZ2V0X2VuZCks CisJCQkJQ09FUkNFX0VYUExJQ0lUX0NBTEwsCisJCQkJZm9yUG9ydGlvbk9mLT5sb2NhdGlvbik7 CisJfQorCXJlc3VsdC0+dGFyZ2V0UmFuZ2UgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgdGFyZ2V0 RXhwciwgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OKTsKKworCS8qCisJICogQnVpbGQgb3Zlcmxh cHNFeHByIHRvIHVzZSBpbiB0aGUgd2hlcmVDbGF1c2UuCisJICogVGhpcyBtZWFucyB3ZSBvbmx5 IGhpdCByb3dzIG1hdGNoaW5nIHRoZSBGUk9NICYgVE8gYm91bmRzLgorCSAqIFdlIG11c3QgbG9v ayB1cCB0aGUgb3ZlcmxhcHMgb3BlcmF0b3IgKHVzdWFsbHkgIiYmIikuCisJICovCisJb3BjbGFz cyA9IEdldERlZmF1bHRPcENsYXNzKGF0dHItPmF0dHR5cGlkLCBHSVNUX0FNX09JRCk7CisJc3Ry YXQgPSBSVE92ZXJsYXBTdHJhdGVneU51bWJlcjsKKwlHZXRPcGVyYXRvckZyb21XZWxsS25vd25T dHJhdGVneShvcGNsYXNzLCBJbnZhbGlkT2lkLCAmb3BpZCwgJnN0cmF0KTsKKwlyZXN1bHQtPm92 ZXJsYXBzRXhwciA9IChOb2RlICopIG1ha2VTaW1wbGVBX0V4cHIoQUVYUFJfT1AsIGdldF9vcG5h bWUob3BpZCksCisJCQkoTm9kZSAqKSBjb3B5T2JqZWN0KHJhbmdlVmFyKSwgdGFyZ2V0RXhwciwK KwkJCWZvclBvcnRpb25PZi0+bG9jYXRpb24pOworCisJLyoKKwkgKiBMb29rIHVwIHRoZSB3aXRo b3V0UG9ydGlvbk9wZXIgc28gd2UgY2FuIGNvbXB1dGUgdGhlIGxlZnRvdmVycy4KKwkgKiBMZWZ0 b3ZlcnMgd2lsbCBiZSBvbGRfcmFuZ2UgQC0gdGFyZ2V0X3JhbmdlCisJICogKG9uZSBwZXIgZWxl bWVudCBvZiB0aGUgcmVzdWx0KS4KKwkgKi8KKwlmdW5jaWQgPSBJbnZhbGlkT2lkOworCWlmIChn ZXRfb3BjbGFzc19vcGZhbWlseV9hbmRfaW5wdXRfdHlwZShvcGNsYXNzLCAmb3BmYW1pbHksICZv cGNpbnR5cGUpKQorCQlmdW5jaWQgPSBnZXRfb3BmYW1pbHlfcHJvYyhvcGZhbWlseSwgb3BjaW50 eXBlLCBvcGNpbnR5cGUsIEdJU1RfV0lUSE9VVF9QT1JUSU9OX1BST0MpOworCisJaWYgKCFPaWRJ c1ZhbGlkKGZ1bmNpZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9PQkpFQ1QpLAorCQkJCWVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGEgd2l0aG91 dF9vdmVybGFwcyBzdXBwb3J0IGZ1bmN0aW9uIGZvciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUo b3BjaW50eXBlKSksCisJCQkJZXJyaGludCgiRGVmaW5lIGEgd2l0aG91dF9vdmVybGFwcyBzdXBw b3J0IGZ1bmN0aW9uIGZvciBvcGVyYXRvciBjbGFzcyBcIiVkXCIgZm9yIGFjY2VzcyBtZXRob2Qg XCIlc1wiLiIsCisJCQkJCSBvcGNsYXNzLCAiZ2lzdCIpKTsKKworCXJlc3VsdC0+d2l0aG91dFBv cnRpb25Qcm9jID0gZnVuY2lkOworCisJaWYgKGlzVXBkYXRlKQorCXsKKwkJLyoKKwkJICogTm93 IG1ha2Ugc3VyZSB3ZSB1cGRhdGUgdGhlIHN0YXJ0L2VuZCB0aW1lIG9mIHRoZSByZWNvcmQuCisJ CSAqIEZvciBhIHJhbmdlIGNvbCAocikgdGhpcyBpcyBgciA9IHIgKiB0YXJnZXRSYW5nZWAuCisJ CSAqLworCQlPaWQgZnVuY25hbWVzcGFjZTsKKwkJY2hhciAqZnVuY25hbWU7CisJCWNoYXIgKmZ1 bmNuYW1lc3BhY2VuYW1lOworCQlFeHByICpyYW5nZVRMRUV4cHI7CisJCVRhcmdldEVudHJ5ICp0 bGU7CisKKwkJZnVuY2lkID0gZ2V0X29wZmFtaWx5X3Byb2Mob3BmYW1pbHksIG9wY2ludHlwZSwg b3BjaW50eXBlLCBHSVNUX0lOVEVSU0VDVF9QUk9DKTsKKwkJaWYgKCFPaWRJc1ZhbGlkKGZ1bmNp ZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09C SkVDVCksCisJCQkJCWVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIGludGVyc2VjdCBzdXBw b3J0IGZ1bmN0aW9uIGZvciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUob3BjaW50eXBlKSksCisJ CQkJCWVycmhpbnQoIkRlZmluZSBhbiBpbnRlcnNlY3Qgc3VwcG9ydCBmdW5jdGlvbiBmb3Igb3Bl cmF0b3IgY2xhc3MgXCIlZFwiIGZvciBhY2Nlc3MgbWV0aG9kIFwiJXNcIi4iLAorCQkJCQkJIG9w Y2xhc3MsICJnaXN0IikpOworCisJCWZ1bmNuYW1lID0gZ2V0X2Z1bmNfbmFtZShmdW5jaWQpOwor CQlpZiAoIWZ1bmNuYW1lKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IGZ1bmN0aW9uICV1IiwgZnVuY2lkKTsKKwkJZnVuY25hbWVzcGFjZSA9IGdldF9mdW5jX25hbWVz cGFjZShmdW5jaWQsIGZhbHNlKTsKKwkJZnVuY25hbWVzcGFjZW5hbWUgPSBnZXRfbmFtZXNwYWNl X25hbWUoZnVuY25hbWVzcGFjZSk7CisJCWlmICghZnVuY25hbWVzcGFjZW5hbWUpCisJCQllbG9n KEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgbmFtZXNwYWNlICV1IiwgZnVuY25hbWVz cGFjZSk7CisKKwkJcmFuZ2VUTEVFeHByID0gKEV4cHIgKikgbWFrZUZ1bmNDYWxsKAorCQkJCWxp c3RfbWFrZTIobWFrZVN0cmluZyhmdW5jbmFtZXNwYWNlbmFtZSksIG1ha2VTdHJpbmcoZnVuY25h bWUpKSwKKwkJCQlsaXN0X21ha2UyKGNvcHlPYmplY3QocmFuZ2VWYXIpLCB0YXJnZXRFeHByKSwK KwkJCQlDT0VSQ0VfRVhQTElDSVRfQ0FMTCwKKwkJCQlmb3JQb3J0aW9uT2YtPmxvY2F0aW9uKTsK KwkJcmFuZ2VUTEVFeHByID0gKEV4cHIgKikgdHJhbnNmb3JtRXhwcihwc3RhdGUsIChOb2RlICop IHJhbmdlVExFRXhwciwgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OKTsKKworCQkvKiBNYWtlIGEg VExFIHRvIHNldCB0aGUgcmFuZ2UgY29sdW1uICovCisJCXJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0 ID0gTklMOworCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkocmFuZ2VUTEVFeHByLCByYW5nZV9hdHRu bywgcmFuZ2VfbmFtZSwgZmFsc2UpOworCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IGxhcHBl bmQocmVzdWx0LT5yYW5nZVRhcmdldExpc3QsIHRsZSk7CisKKwkJLyogTWFyayB0aGUgcmFuZ2Ug Y29sdW1uIGFzIHJlcXVpcmluZyB1cGRhdGUgcGVybWlzc2lvbnMgKi8KKwkJdGFyZ2V0X3Blcm1p bmZvLT51cGRhdGVkQ29scyA9IGJtc19hZGRfbWVtYmVyKHRhcmdldF9wZXJtaW5mby0+dXBkYXRl ZENvbHMsCisJCQkJCQkJCQkJCQkJICByYW5nZV9hdHRubyAtIEZpcnN0TG93SW52YWxpZEhlYXBB dHRyaWJ1dGVOdW1iZXIpOworCX0KKwllbHNlCisJCXJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0g TklMOworCisJcmVzdWx0LT5yYW5nZV9uYW1lID0gcmFuZ2VfbmFtZTsKKworCXJldHVybiByZXN1 bHQ7Cit9CiAKIC8qCiAgKiBCdWlsZE9uQ29uZmxpY3RFeGNsdWRlZFRhcmdldGxpc3QKQEAgLTI0 MjYsNiArMjYzNiw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBV cGRhdGVTdG10ICpzdG10KQogewogCVF1ZXJ5CSAgICpxcnkgPSBtYWtlTm9kZShRdWVyeSk7CiAJ UGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW07CisJTm9kZQkgICAqd2hlcmVDbGF1c2U7CiAJTm9k ZQkgICAqcXVhbDsKIAogCXFyeS0+Y29tbWFuZFR5cGUgPSBDTURfVVBEQVRFOwpAQCAtMjQ0Myw2 ICsyNjU0LDEwIEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRh dGVTdG10ICpzdG10KQogCQkJCQkJCQkJCSBzdG10LT5yZWxhdGlvbi0+aW5oLAogCQkJCQkJCQkJ CSB0cnVlLAogCQkJCQkJCQkJCSBBQ0xfVVBEQVRFKTsKKworCWlmIChzdG10LT5mb3JQb3J0aW9u T2YpCisJCXFyeS0+Zm9yUG9ydGlvbk9mID0gdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKHBz dGF0ZSwgcXJ5LT5yZXN1bHRSZWxhdGlvbiwgc3RtdC0+Zm9yUG9ydGlvbk9mLCB0cnVlKTsKKwog CW5zaXRlbSA9IHBzdGF0ZS0+cF90YXJnZXRfbnNpdGVtOwogCiAJLyogc3VicXVlcmllcyBpbiBG Uk9NIGNhbm5vdCBhY2Nlc3MgdGhlIHJlc3VsdCByZWxhdGlvbiAqLwpAQCAtMjQ1OSw3ICsyNjc0 LDggQEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQg KnN0bXQpCiAJbnNpdGVtLT5wX2xhdGVyYWxfb25seSA9IGZhbHNlOwogCW5zaXRlbS0+cF9sYXRl cmFsX29rID0gdHJ1ZTsKIAotCXF1YWwgPSB0cmFuc2Zvcm1XaGVyZUNsYXVzZShwc3RhdGUsIHN0 bXQtPndoZXJlQ2xhdXNlLAorCXdoZXJlQ2xhdXNlID0gYWRkRm9yUG9ydGlvbk9mV2hlcmVDb25k aXRpb25zKHFyeSwgc3RtdC0+Zm9yUG9ydGlvbk9mLCBzdG10LT53aGVyZUNsYXVzZSk7CisJcXVh bCA9IHRyYW5zZm9ybVdoZXJlQ2xhdXNlKHBzdGF0ZSwgd2hlcmVDbGF1c2UsCiAJCQkJCQkJCUVY UFJfS0lORF9XSEVSRSwgIldIRVJFIik7CiAKIAlxcnktPnJldHVybmluZ0xpc3QgPSB0cmFuc2Zv cm1SZXR1cm5pbmdMaXN0KHBzdGF0ZSwgc3RtdC0+cmV0dXJuaW5nTGlzdCwKQEAgLTI0NjksNyAr MjY4NSw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVT dG10ICpzdG10KQogCSAqIE5vdyB3ZSBhcmUgZG9uZSB3aXRoIFNFTEVDVC1saWtlIHByb2Nlc3Np bmcsIGFuZCBjYW4gZ2V0IG9uIHdpdGgKIAkgKiB0cmFuc2Zvcm1pbmcgdGhlIHRhcmdldCBsaXN0 IHRvIG1hdGNoIHRoZSBVUERBVEUgdGFyZ2V0IGNvbHVtbnMuCiAJICovCi0JcXJ5LT50YXJnZXRM aXN0ID0gdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChwc3RhdGUsIHN0bXQtPnRhcmdldExpc3Qp OworCXFyeS0+dGFyZ2V0TGlzdCA9IHRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QocHN0YXRlLCBz dG10LT50YXJnZXRMaXN0LCBxcnktPmZvclBvcnRpb25PZik7CiAKIAlxcnktPnJ0YWJsZSA9IHBz dGF0ZS0+cF9ydGFibGU7CiAJcXJ5LT5ydGVwZXJtaW5mb3MgPSBwc3RhdGUtPnBfcnRlcGVybWlu Zm9zOwpAQCAtMjQ4OCw3ICsyNzA0LDcgQEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsIFVwZGF0ZVN0bXQgKnN0bXQpCiAgKgloYW5kbGUgU0VUIGNsYXVzZSBpbiBVUERB VEUvTUVSR0UvSU5TRVJUIC4uLiBPTiBDT05GTElDVCBVUERBVEUKICAqLwogTGlzdCAqCi10cmFu c2Zvcm1VcGRhdGVUYXJnZXRMaXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqb3JpZ1RsaXN0 KQordHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm9y aWdUbGlzdCwgRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mKQogewogCUxpc3QJICAgKnRs aXN0ID0gTklMOwogCVJURVBlcm1pc3Npb25JbmZvICp0YXJnZXRfcGVybWluZm87CkBAIC0yNTQx LDYgKzI3NTcsMjEgQEAgdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpwc3Rh dGUsIExpc3QgKm9yaWdUbGlzdCkKIAkJCQkJIGVycmhpbnQoIlNFVCB0YXJnZXQgY29sdW1ucyBj YW5ub3QgYmUgcXVhbGlmaWVkIHdpdGggdGhlIHJlbGF0aW9uIG5hbWUuIikgOiAwLAogCQkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgb3JpZ1RhcmdldC0+bG9jYXRpb24pKSk7CiAKKwkJ LyoKKwkJICogSWYgdGhpcyBpcyBhIEZPUiBQT1JUSU9OIE9GIHVwZGF0ZSwKKwkJICogZm9yYmlk IGRpcmVjdGx5IHNldHRpbmcgdGhlIHJhbmdlIGNvbHVtbiwKKwkJICogc2luY2UgdGhhdCB3b3Vs ZCBjb25mbGljdCB3aXRoIHRoZSBpbXBsaWNpdCB1cGRhdGVzLgorCQkgKi8KKwkJaWYgKGZvclBv cnRpb25PZiAhPSBOVUxMKQorCQl7CisJCQlpZiAoYXR0cm5vID09IGZvclBvcnRpb25PZi0+cmFu Z2VWYXItPnZhcmF0dG5vKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJD T0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkgZXJybXNnKCJjYW4ndCBkaXJlY3RseSBhc3NpZ24g dG8gXCIlc1wiIGluIGEgRk9SIFBPUlRJT04gT0YgdXBkYXRlIiwKKwkJCQkJCQkJb3JpZ1Rhcmdl dC0+bmFtZSksCisJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgb3JpZ1RhcmdldC0+ bG9jYXRpb24pKSk7CisJCX0KKwogCQl1cGRhdGVUYXJnZXRMaXN0RW50cnkocHN0YXRlLCB0bGUs IG9yaWdUYXJnZXQtPm5hbWUsCiAJCQkJCQkJICBhdHRybm8sCiAJCQkJCQkJICBvcmlnVGFyZ2V0 LT5pbmRpcmVjdGlvbiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDRhYTg2NDZhZjdiLi5lY2VkODJlZmQyMyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CkBAIC0yNTcsNiArMjU3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNp dmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsK IAlSYW5nZVZhciAgICpyYW5nZTsKIAlJbnRvQ2xhdXNlICppbnRvOwogCVdpdGhDbGF1c2UgKndp dGg7CisJRm9yUG9ydGlvbk9mQ2xhdXNlICpmb3Jwb3J0aW9ub2Y7CiAJSW5mZXJDbGF1c2UJKmlu ZmVyOwogCU9uQ29uZmxpY3RDbGF1c2UgKm9uY29uZmxpY3Q7CiAJQV9JbmRpY2VzICAqYWluZDsK QEAgLTU1Myw2ICs1NTQsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3Qo Y2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPHJhbmdl PglyZWxhdGlvbl9leHByCiAldHlwZSA8cmFuZ2U+CWV4dGVuZGVkX3JlbGF0aW9uX2V4cHIKICV0 eXBlIDxyYW5nZT4JcmVsYXRpb25fZXhwcl9vcHRfYWxpYXMKKyV0eXBlIDxhbGlhcz4Jb3B0X2Fs aWFzCisldHlwZSA8Zm9ycG9ydGlvbm9mPiBmb3JfcG9ydGlvbl9vZl9jbGF1c2UKICV0eXBlIDxu b2RlPgl0YWJsZXNhbXBsZV9jbGF1c2Ugb3B0X3JlcGVhdGFibGVfY2xhdXNlCiAldHlwZSA8dGFy Z2V0Pgl0YXJnZXRfZWwgc2V0X3RhcmdldCBpbnNlcnRfY29sdW1uX2l0ZW0KIApAQCAtNzYyLDcg Kzc2NSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxu YW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJT1ZFUiBPVkVSTEFQUyBPVkVSTEFZ IE9WRVJSSURJTkcgT1dORUQgT1dORVIKIAogCVBBUkFMTEVMIFBBUkFNRVRFUiBQQVJTRVIgUEFS VElBTCBQQVJUSVRJT04gUEFTU0lORyBQQVNTV09SRCBQQVRICi0JUEVSSU9EIFBMQUNJTkcgUExB TiBQTEFOUyBQT0xJQ1kKKwlQRVJJT0QgUExBQ0lORyBQTEFOIFBMQU5TIFBPTElDWSBQT1JUSU9O CiAJUE9TSVRJT04gUFJFQ0VESU5HIFBSRUNJU0lPTiBQUkVTRVJWRSBQUkVQQVJFIFBSRVBBUkVE IFBSSU1BUlkKIAlQUklPUiBQUklWSUxFR0VTIFBST0NFRFVSQUwgUFJPQ0VEVVJFIFBST0NFRFVS RVMgUFJPR1JBTSBQVUJMSUNBVElPTgogCkBAIC04ODEsMTIgKzg4NCwxNSBAQCBzdGF0aWMgTm9k ZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywg Tm9kZSAqcXVlcnkpOwogICoganNvbl9wcmVkaWNhdGVfdHlwZV9jb25zdHJhaW50IGFuZCBqc29u X2tleV91bmlxdWVuZXNzX2NvbnN0cmFpbnRfb3B0CiAgKiBwcm9kdWN0aW9ucyAoc2VlIGNvbW1l bnRzIHRoZXJlKS4KICAqCisgKiBUTyBpcyBhc3NpZ25lZCB0aGUgc2FtZSBwcmVjZWRlbmNlIGFz IElERU5ULCB0byBzdXBwb3J0IHRoZSBvcHRfaW50ZXJ2YWwKKyAqIHByb2R1Y3Rpb24gKHNlZSBj b21tZW50IHRoZXJlKS4KKyAqCiAgKiBMaWtlIHRoZSBVTkJPVU5ERUQgUFJFQ0VESU5HL0ZPTExP V0lORyBjYXNlLCBORVNURUQgaXMgYXNzaWduZWQgYSBsb3dlcgogICogcHJlY2VkZW5jZSB0aGFu IFBBVEggdG8gZml4IGFtYmlndWl0eSBpbiB0aGUganNvbl90YWJsZSBwcm9kdWN0aW9uLgogICov CiAlbm9uYXNzb2MJVU5CT1VOREVEIE5FU1RFRCAvKiBpZGVhbGx5IHdvdWxkIGhhdmUgc2FtZSBw cmVjZWRlbmNlIGFzIElERU5UICovCiAlbm9uYXNzb2MJSURFTlQgUEFSVElUSU9OIFJBTkdFIFJP V1MgR1JPVVBTIFBSRUNFRElORyBGT0xMT1dJTkcgQ1VCRSBST0xMVVAKLQkJCVNFVCBLRVlTIE9C SkVDVF9QIFNDQUxBUiBWQUxVRV9QIFdJVEggV0lUSE9VVCBQQVRICisJCQlTRVQgS0VZUyBPQkpF Q1RfUCBTQ0FMQVIgVE8gVVNJTkcgVkFMVUVfUCBXSVRIIFdJVEhPVVQgUEFUSAogJWxlZnQJCU9w IE9QRVJBVE9SCQkvKiBtdWx0aS1jaGFyYWN0ZXIgb3BzIGFuZCB1c2VyLWRlZmluZWQgb3BlcmF0 b3JzICovCiAlbGVmdAkJJysnICctJwogJWxlZnQJCScqJyAnLycgJyUnCkBAIC0xMjMyNSw2ICsx MjMzMSwyMCBAQCBEZWxldGVTdG10OiBvcHRfd2l0aF9jbGF1c2UgREVMRVRFX1AgRlJPTSByZWxh dGlvbl9leHByX29wdF9hbGlhcwogCQkJCQluLT53aXRoQ2xhdXNlID0gJDE7CiAJCQkJCSQkID0g KE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IG9wdF93aXRoX2NsYXVzZSBERUxFVEVfUCBGUk9NIHJl bGF0aW9uX2V4cHIgZm9yX3BvcnRpb25fb2ZfY2xhdXNlIG9wdF9hbGlhcworCQkJdXNpbmdfY2xh dXNlIHdoZXJlX29yX2N1cnJlbnRfY2xhdXNlIHJldHVybmluZ19jbGF1c2UKKwkJCQl7CisJCQkJ CURlbGV0ZVN0bXQgKm4gPSBtYWtlTm9kZShEZWxldGVTdG10KTsKKworCQkJCQluLT5yZWxhdGlv biA9ICQ0OworCQkJCQluLT5mb3JQb3J0aW9uT2YgPSAkNTsKKwkJCQkJbi0+cmVsYXRpb24tPmFs aWFzID0gJDY7CisJCQkJCW4tPnVzaW5nQ2xhdXNlID0gJDc7CisJCQkJCW4tPndoZXJlQ2xhdXNl ID0gJDg7CisJCQkJCW4tPnJldHVybmluZ0xpc3QgPSAkOTsKKwkJCQkJbi0+d2l0aENsYXVzZSA9 ICQxOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQk7CiAKIHVzaW5nX2NsYXVzZToK QEAgLTEyMzk5LDYgKzEyNDE5LDI1IEBAIFVwZGF0ZVN0bXQ6IG9wdF93aXRoX2NsYXVzZSBVUERB VEUgcmVsYXRpb25fZXhwcl9vcHRfYWxpYXMKIAkJCQkJbi0+d2l0aENsYXVzZSA9ICQxOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBvcHRfd2l0aF9jbGF1c2UgVVBEQVRFIHJl bGF0aW9uX2V4cHIKKwkJCWZvcl9wb3J0aW9uX29mX2NsYXVzZSBvcHRfYWxpYXMKKwkJCVNFVCBz ZXRfY2xhdXNlX2xpc3QKKwkJCWZyb21fY2xhdXNlCisJCQl3aGVyZV9vcl9jdXJyZW50X2NsYXVz ZQorCQkJcmV0dXJuaW5nX2NsYXVzZQorCQkJCXsKKwkJCQkJVXBkYXRlU3RtdCAqbiA9IG1ha2VO b2RlKFVwZGF0ZVN0bXQpOworCisJCQkJCW4tPnJlbGF0aW9uID0gJDM7CisJCQkJCW4tPmZvclBv cnRpb25PZiA9ICQ0OworCQkJCQluLT5yZWxhdGlvbi0+YWxpYXMgPSAkNTsKKwkJCQkJbi0+dGFy Z2V0TGlzdCA9ICQ3OworCQkJCQluLT5mcm9tQ2xhdXNlID0gJDg7CisJCQkJCW4tPndoZXJlQ2xh dXNlID0gJDk7CisJCQkJCW4tPnJldHVybmluZ0xpc3QgPSAkMTA7CisJCQkJCW4tPndpdGhDbGF1 c2UgPSAkMTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJOwogCiBzZXRfY2xhdXNl X2xpc3Q6CkBAIC0xMzg2NCw2ICsxMzkwMyw0NCBAQCByZWxhdGlvbl9leHByX29wdF9hbGlhczog cmVsYXRpb25fZXhwcgkJCQkJJXByZWMgVU1JTlVTCiAJCQkJfQogCQk7CiAKK29wdF9hbGlhczoK KwkJCUFTIENvbElkCisJCQkJeworCQkJCQlBbGlhcwkgICAqYWxpYXMgPSBtYWtlTm9kZShBbGlh cyk7CisKKwkJCQkJYWxpYXMtPmFsaWFzbmFtZSA9ICQyOworCQkJCQkkJCA9IGFsaWFzOworCQkJ CX0KKwkJCXwgQmFyZUNvbExhYmVsCisJCQkJeworCQkJCQlBbGlhcwkgICAqYWxpYXMgPSBtYWtl Tm9kZShBbGlhcyk7CisKKwkJCQkJYWxpYXMtPmFsaWFzbmFtZSA9ICQxOworCQkJCQkkJCA9IGFs aWFzOworCQkJCX0KKwkJCXwgLyogZW1wdHkgKi8gJXByZWMgVU1JTlVTIHsgJCQgPSBOVUxMOyB9 CisJCTsKKwkJCQkKK2Zvcl9wb3J0aW9uX29mX2NsYXVzZToKKwkJCUZPUiBQT1JUSU9OIE9GIENv bElkICcoJyBhX2V4cHIgJyknCisJCQkJeworCQkJCQlGb3JQb3J0aW9uT2ZDbGF1c2UgKm4gPSBt YWtlTm9kZShGb3JQb3J0aW9uT2ZDbGF1c2UpOworCQkJCQluLT5yYW5nZV9uYW1lID0gJDQ7CisJ CQkJCW4tPmxvY2F0aW9uID0gQDQ7CisJCQkJCW4tPnRhcmdldCA9ICQ2OworCQkJCQkkJCA9IG47 CisJCQkJfQorCQkJfCBGT1IgUE9SVElPTiBPRiBDb2xJZCBGUk9NIGFfZXhwciBUTyBhX2V4cHIK KwkJCQl7CisJCQkJCUZvclBvcnRpb25PZkNsYXVzZSAqbiA9IG1ha2VOb2RlKEZvclBvcnRpb25P ZkNsYXVzZSk7CisJCQkJCW4tPnJhbmdlX25hbWUgPSAkNDsKKwkJCQkJbi0+bG9jYXRpb24gPSBA NDsKKwkJCQkJbi0+dGFyZ2V0X3N0YXJ0ID0gJDY7CisJCQkJCW4tPnRhcmdldF9lbmQgPSAkODsK KwkJCQkJJCQgPSBuOworCQkJCX0KKwkJOworCiAvKgogICogVEFCTEVTQU1QTEUgZGVjb3JhdGlv biBpbiBhIEZST00gaXRlbQogICovCkBAIC0xNDY5NywxNyArMTQ3NzQsMjYgQEAgb3B0X3RpbWV6 b25lOgogCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCQk7CiAKKy8qCisg KiBXZSBuZWVkIHRvIGhhbmRsZSB0aGlzIHNoaWZ0L3JlZHVjZSBjb25mbGljdDoKKyAqIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gdCArIElOVEVSVkFMICcxJyBZRUFSIFRPIE1PTlRILgor ICogV2UgZG9uJ3Qgc2VlIGZhciBlbm91Z2ggYWhlYWQgdG8ga25vdyBpZiB0aGVyZSBpcyBhbm90 aGVyIFRPIGNvbWluZy4KKyAqIFdlIHByZWZlciB0byBpbnRlcnByZXQgdGhpcyBhcyBGUk9NICh0 ICsgSU5URVJWQUwgJzEnIFlFQVIgVE8gTU9OVEgpLAorICogaS5lLiB0byBzaGlmdC4KKyAqIFRo YXQgZ2l2ZXMgdGhlIHVzZXIgdGhlIG9wdGlvbiBvZiBhZGRpbmcgcGFyZW50aGVzZXMgdG8gZ2V0 IHRoZSBvdGhlciBtZWFuaW5nLgorICogSWYgd2UgcmVkdWNlZCwgaW50ZXJ2YWxzIGNvdWxkIG5l dmVyIGhhdmUgYSBUTy4KKyAqLwogb3B0X2ludGVydmFsOgotCQkJWUVBUl9QCisJCQlZRUFSX1AJ CQkJCQkJCQkJCQkJCQkJJXByZWMgSVMKIAkJCQl7ICQkID0gbGlzdF9tYWtlMShtYWtlSW50Q29u c3QoSU5URVJWQUxfTUFTSyhZRUFSKSwgQDEpKTsgfQogCQkJfCBNT05USF9QCiAJCQkJeyAkJCA9 IGxpc3RfbWFrZTEobWFrZUludENvbnN0KElOVEVSVkFMX01BU0soTU9OVEgpLCBAMSkpOyB9Ci0J CQl8IERBWV9QCisJCQl8IERBWV9QCQkJCQkJCQkJCQkJCQkJCSVwcmVjIElTCiAJCQkJeyAkJCA9 IGxpc3RfbWFrZTEobWFrZUludENvbnN0KElOVEVSVkFMX01BU0soREFZKSwgQDEpKTsgfQotCQkJ fCBIT1VSX1AKKwkJCXwgSE9VUl9QCQkJCQkJCQkJCQkJCQkJJXByZWMgSVMKIAkJCQl7ICQkID0g bGlzdF9tYWtlMShtYWtlSW50Q29uc3QoSU5URVJWQUxfTUFTSyhIT1VSKSwgQDEpKTsgfQogCQkJ fCBNSU5VVEVfUAotCQkJCXsgJCQgPSBsaXN0X21ha2UxKG1ha2VJbnRDb25zdChJTlRFUlZBTF9N QVNLKE1JTlVURSksIEAxKSk7IH0KKwkJCQl7ICQkID0gbGlzdF9tYWtlMShtYWtlSW50Q29uc3Qo SU5URVJWQUxfTUFTSyhNSU5VVEUpLCBAMSkpOyB9CSVwcmVjIElTCiAJCQl8IGludGVydmFsX3Nl Y29uZAogCQkJCXsgJCQgPSAkMTsgfQogCQkJfCBZRUFSX1AgVE8gTU9OVEhfUApAQCAtMTc3NTcs NiArMTc4NDMsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFBMQU4KIAkJCXwgUExBTlMK IAkJCXwgUE9MSUNZCisJCQl8IFBPUlRJT04KIAkJCXwgUFJFQ0VESU5HCiAJCQl8IFBSRVBBUkUK IAkJCXwgUFJFUEFSRUQKQEAgLTE4MzgyLDYgKzE4NDY5LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3Jk OgogCQkJfCBQTEFOCiAJCQl8IFBMQU5TCiAJCQl8IFBPTElDWQorCQkJfCBQT1JUSU9OCiAJCQl8 IFBPU0lUSU9OCiAJCQl8IFBSRUNFRElORwogCQkJfCBQUkVQQVJFCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdn LmMKaW5kZXggZWZhNzMwYzE2NzYuLjUzOTg1Zjc0ZGY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfYWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5j CkBAIC01NzksNiArNTc5LDEzIEBAIGNoZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJL OgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRF X1BPUlRJT046CisJCQlpZiAoaXNBZ2cpCisJCQkJZXJyID0gXygiYWdncmVnYXRlIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbnMiKTsKKwkJCWVs c2UKKwkJCQllcnIgPSBfKCJncm91cGluZyBvcGVyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBG T1IgUE9SVElPTiBPRiBleHByZXNzaW9ucyIpOworCisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAq IFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRo ZQpAQCAtOTcwLDYgKzk3Nyw5IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUg KnBzdGF0ZSwgV2luZG93RnVuYyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6 CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9VUERBVEVf UE9SVElPTjoKKwkJCWVyciA9IF8oIndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGlu IEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAq IFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRo ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMKaW5kZXggNDQ1MjliYjQ5ZTYuLjE0ZmZiN2Jh NjQ5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMKQEAgLTQ4NCw2ICs0ODQsNyBAQCBh c3NpZ25fY29sbGF0aW9uc193YWxrZXIoTm9kZSAqbm9kZSwgYXNzaWduX2NvbGxhdGlvbnNfY29u dGV4dCAqY29udGV4dCkKIAkJY2FzZSBUX0pvaW5FeHByOgogCQljYXNlIFRfRnJvbUV4cHI6CiAJ CWNhc2UgVF9PbkNvbmZsaWN0RXhwcjoKKwkJY2FzZSBUX0ZvclBvcnRpb25PZkV4cHI6CiAJCWNh c2UgVF9Tb3J0R3JvdXBDbGF1c2U6CiAJCWNhc2UgVF9NZXJnZUFjdGlvbjoKIAkJCSh2b2lkKSBl eHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAz NmMxYjdhODhmMi4uNDE3ZDc4OWZkOWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNTg2 LDYgKzU4Niw5IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVt blJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfUEFSVElUSU9OX0JPVU5EOgogCQkJZXJyID0g XygiY2Fubm90IHVzZSBjb2x1bW4gcmVmZXJlbmNlIGluIHBhcnRpdGlvbiBib3VuZCBleHByZXNz aW9uIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT046CisJCQll cnIgPSBfKCJjYW5ub3QgdXNlIGNvbHVtbiByZWZlcmVuY2UgaW4gRk9SIFBPUlRJT04gT0YgZXhw cmVzc2lvbiIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25h bGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKQEAgLTE4NjAsNiArMTg2Myw5 IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5r KQogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgogCQkJZXJyID0gXygiY2Fubm90 IHVzZSBzdWJxdWVyeSBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uIik7CiAJCQlicmVh azsKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT046CisJCQllcnIgPSBfKCJjYW5ub3Qg dXNlIHN1YnF1ZXJ5IGluIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb24iKTsKKwkJCWJyZWFrOwog CiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhl cmUsIHNvIHRoYXQgdGhlCkBAIC0zMTUzLDYgKzMxNTksOCBAQCBQYXJzZUV4cHJLaW5kTmFtZShQ YXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQkJcmV0dXJuICJVUERBVEUiOwogCQljYXNlIEVYUFJf S0lORF9NRVJHRV9XSEVOOgogCQkJcmV0dXJuICJNRVJHRSBXSEVOIjsKKwkJY2FzZSBFWFBSX0tJ TkRfVVBEQVRFX1BPUlRJT046CisJCQlyZXR1cm4gIkZPUiBQT1JUSU9OIE9GIjsKIAkJY2FzZSBF WFBSX0tJTkRfR1JPVVBfQlk6CiAJCQlyZXR1cm4gIkdST1VQIEJZIjsKIAkJY2FzZSBFWFBSX0tJ TkRfT1JERVJfQlk6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCA5YjIzMzQ0YTNiMS4uOTk5 MjFkNzEzYmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjY1OCw2ICsyNjU4LDkgQEAg Y2hlY2tfc3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9z cmYsIGludCBsb2NhdGlvbikKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCWVycmtp bmQgPSB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OOgor CQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIEZP UiBQT1JUSU9OIE9GIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRo ZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwppbmRleCA4N2RmNzkwMjdkNy4uNTZmNjc2YTFmMWYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jCkBAIC0zODUsNyArMzg1LDcgQEAgdHJhbnNmb3JtTWVy Z2VTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTWVyZ2VTdG10ICpzdG10KQogCQkJCQlwc3RhdGUt PnBfaXNfaW5zZXJ0ID0gZmFsc2U7CiAJCQkJCWFjdGlvbi0+dGFyZ2V0TGlzdCA9CiAJCQkJCQl0 cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KHBzdGF0ZSwKLQkJCQkJCQkJCQkJCSAgbWVyZ2VXaGVu Q2xhdXNlLT50YXJnZXRMaXN0KTsKKwkJCQkJCQkJCQkJCSAgbWVyZ2VXaGVuQ2xhdXNlLT50YXJn ZXRMaXN0LCBOVUxMKTsKIAkJCQl9CiAJCQkJYnJlYWs7CiAJCQljYXNlIENNRF9ERUxFVEU6CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMgYi9zcmMvYmFj a2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKaW5kZXggNmQ1OWEyYmI4ZGMuLmU5ZjY0ZTc0 YmMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKKysr IGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCkBAIC0zNjg0LDYgKzM2ODQs MzAgQEAgcmV3cml0ZVRhcmdldFZpZXcoUXVlcnkgKnBhcnNldHJlZSwgUmVsYXRpb24gdmlldykK IAkJCQkJCQkJCSAgJnBhcnNldHJlZS0+aGFzU3ViTGlua3MpOwogCX0KIAorCWlmIChwYXJzZXRy ZWUtPmZvclBvcnRpb25PZiAmJiBwYXJzZXRyZWUtPmNvbW1hbmRUeXBlID09IENNRF9VUERBVEUp CisJeworCQkvKgorCQkgKiBMaWtlIHRoZSBJTlNFUlQvVVBEQVRFIGNvZGUgYWJvdmUsIHVwZGF0 ZSB0aGUgcmVzbm9zIGluIHRoZQorCQkgKiBhdXhpbGlhcnkgVVBEQVRFIHRhcmdldGxpc3QgdG8g cmVmZXIgdG8gY29sdW1ucyBvZiB0aGUgYmFzZQorCQkgKiByZWxhdGlvbi4KKwkJICovCisJCWZv cmVhY2gobGMsIHBhcnNldHJlZS0+Zm9yUG9ydGlvbk9mLT5yYW5nZVRhcmdldExpc3QpCisJCXsK KwkJCVRhcmdldEVudHJ5ICp0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKKwkJCVRh cmdldEVudHJ5ICp2aWV3X3RsZTsKKworCQkJaWYgKHRsZS0+cmVzanVuaykKKwkJCQljb250aW51 ZTsKKworCQkJdmlld190bGUgPSBnZXRfdGxlX2J5X3Jlc25vKHZpZXdfdGFyZ2V0bGlzdCwgdGxl LT5yZXNubyk7CisJCQlpZiAodmlld190bGUgIT0gTlVMTCAmJiAhdmlld190bGUtPnJlc2p1bmsg JiYgSXNBKHZpZXdfdGxlLT5leHByLCBWYXIpKQorCQkJCXRsZS0+cmVzbm8gPSAoKFZhciAqKSB2 aWV3X3RsZS0+ZXhwciktPnZhcmF0dG5vOworCQkJZWxzZQorCQkJCWVsb2coRVJST1IsICJhdHRy aWJ1dGUgbnVtYmVyICVkIG5vdCBmb3VuZCBpbiB2aWV3IHRhcmdldGxpc3QiLAorCQkJCQkgdGxl LT5yZXNubyk7CisJCX0KKwl9CisKIAkvKgogCSAqIEZvciBVUERBVEUvREVMRVRFL01FUkdFLCBw dWxsIHVwIGFueSBXSEVSRSBxdWFscyBmcm9tIHRoZSB2aWV3LiAgV2UKIAkgKiBrbm93IHRoYXQg YW55IFZhcnMgaW4gdGhlIHF1YWxzIG11c3QgcmVmZXJlbmNlIHRoZSBvbmUgYmFzZSByZWxhdGlv biwKQEAgLTQwMjMsNiArNDA0NywyMiBAQCBSZXdyaXRlUXVlcnkoUXVlcnkgKnBhcnNldHJlZSwg TGlzdCAqcmV3cml0ZV9ldmVudHMsIGludCBvcmlnX3J0X2xlbmd0aCkKIAkJZWxzZSBpZiAoZXZl bnQgPT0gQ01EX1VQREFURSkKIAkJewogCQkJQXNzZXJ0KHBhcnNldHJlZS0+b3ZlcnJpZGUgPT0g T1ZFUlJJRElOR19OT1RfU0VUKTsKKwkJCS8qCisJCQkgKiBVcGRhdGUgRk9SIFBPUlRJT04gT0Yg Y29sdW1uKHMpIGF1dG9tYXRpY2FsbHkuIERvbid0CisJCQkgKiBkbyB0aGlzIHVudGlsIHdlJ3Jl IGRvbmUgcmV3cml0aW5nIGEgdmlldyB1cGRhdGUsIHNvCisJCQkgKiB0aGF0IHdlIGRvbid0IGFk ZCB0aGUgc2FtZSB1cGRhdGUgb24gdGhlIHJlY3Vyc2lvbi4KKwkJCSAqLworCQkJaWYgKHBhcnNl dHJlZS0+Zm9yUG9ydGlvbk9mICYmCisJCQkJcnRfZW50cnlfcmVsYXRpb24tPnJkX3JlbC0+cmVs a2luZCAhPSBSRUxLSU5EX1ZJRVcpCisJCQl7CisJCQkJTGlzdENlbGwgKnRsOworCQkJCWZvcmVh Y2godGwsIHBhcnNldHJlZS0+Zm9yUG9ydGlvbk9mLT5yYW5nZVRhcmdldExpc3QpCisJCQkJewor CQkJCQlUYXJnZXRFbnRyeSAqdGxlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdCh0bCk7CisJCQkJ CXBhcnNldHJlZS0+dGFyZ2V0TGlzdCA9IGxhcHBlbmQocGFyc2V0cmVlLT50YXJnZXRMaXN0LCB0 bGUpOworCQkJCX0KKwkJCX0KKwogCQkJcGFyc2V0cmVlLT50YXJnZXRMaXN0ID0KIAkJCQlyZXdy aXRlVGFyZ2V0TGlzdElVKHBhcnNldHJlZS0+dGFyZ2V0TGlzdCwKIAkJCQkJCQkJCXBhcnNldHJl ZS0+Y29tbWFuZFR5cGUsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJp Z2dlcnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCmluZGV4IDY4OTZl MWFlNjM4Li4yOTdmYmE3MWJiNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Jp X3RyaWdnZXJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKQEAg LTIyOCw2ICsyMjgsNyBAQCBzdGF0aWMgYm9vbCByaV9QZXJmb3JtQ2hlY2soY29uc3QgUklfQ29u c3RyYWludEluZm8gKnJpaW5mbywKIAkJCQkJCQlSSV9RdWVyeUtleSAqcWtleSwgU1BJUGxhblB0 ciBxcGxhbiwKIAkJCQkJCQlSZWxhdGlvbiBma19yZWwsIFJlbGF0aW9uIHBrX3JlbCwKIAkJCQkJ CQlUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCwgVHVwbGVUYWJsZVNsb3QgKm5ld3Nsb3QsCisJCQkJ CQkJaW50IGZvclBvcnRpb25PZlBhcmFtLCBEYXR1bSBmb3JQb3J0aW9uT2YsCiAJCQkJCQkJYm9v bCBkZXRlY3ROZXdSb3dzLCBpbnQgZXhwZWN0X09LKTsKIHN0YXRpYyB2b2lkIHJpX0V4dHJhY3RW YWx1ZXMoUmVsYXRpb24gcmVsLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIAkJCQkJCQkgY29uc3Qg UklfQ29uc3RyYWludEluZm8gKnJpaW5mbywgYm9vbCByZWxfaXNfcGssCkBAIC0yMzYsNiArMjM3 LDExIEBAIHN0YXRpYyB2b2lkIHJpX1JlcG9ydFZpb2xhdGlvbihjb25zdCBSSV9Db25zdHJhaW50 SW5mbyAqcmlpbmZvLAogCQkJCQkJCSAgIFJlbGF0aW9uIHBrX3JlbCwgUmVsYXRpb24gZmtfcmVs LAogCQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICp2aW9sYXRvcnNsb3QsIFR1cGxlRGVzYyB0dXBk ZXNjLAogCQkJCQkJCSAgIGludCBxdWVyeW5vLCBib29sIHBhcnRnb25lKSBwZ19hdHRyaWJ1dGVf bm9yZXR1cm4oKTsKK3N0YXRpYyBib29sIGZwb190YXJnZXRzX3BrX3JhbmdlKGNvbnN0IEZvclBv cnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwKKwkJCQkJCQkJIGNvbnN0IFJJX0NvbnN0cmFpbnRJ bmZvICpyaWluZm8pOworc3RhdGljIERhdHVtIHJlc3RyaWN0X2Nhc2NhZGluZ19yYW5nZShjb25z dCBGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWwsCisJCQkJCQkJCQkgIGNvbnN0IFJJX0Nv bnN0cmFpbnRJbmZvICpyaWluZm8sCisJCQkJCQkJCQkgIFR1cGxlVGFibGVTbG90ICpvbGRzbG90 KTsKIAogCiAvKgpAQCAtNDQ5LDYgKzQ1NSw3IEBAIFJJX0ZLZXlfY2hlY2soVHJpZ2dlckRhdGEg KnRyaWdkYXRhKQogCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKIAkJCQkJ ZmtfcmVsLCBwa19yZWwsCiAJCQkJCU5VTEwsIG5ld3Nsb3QsCisJCQkJCS0xLCAoRGF0dW0pIDAs CiAJCQkJCXBrX3JlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFC TEUsCiAJCQkJCVNQSV9PS19TRUxFQ1QpOwogCkBAIC02MTMsNiArNjIwLDcgQEAgcmlfQ2hlY2tf UGtfTWF0Y2goUmVsYXRpb24gcGtfcmVsLCBSZWxhdGlvbiBma19yZWwsCiAJcmVzdWx0ID0gcmlf UGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFuLAogCQkJCQkJCSBma19yZWwsIHBrX3Jl bCwKIAkJCQkJCQkgb2xkc2xvdCwgTlVMTCwKKwkJCQkJCQkgLTEsIChEYXR1bSkgMCwKIAkJCQkJ CQkgdHJ1ZSwJLyogdHJlYXQgbGlrZSB1cGRhdGUgKi8KIAkJCQkJCQkgU1BJX09LX1NFTEVDVCk7 CiAKQEAgLTcxMiw2ICs3MjAsOCBAQCByaV9yZXN0cmljdChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEs IGJvb2wgaXNfbm9fYWN0aW9uKQogCVR1cGxlVGFibGVTbG90ICpvbGRzbG90OwogCVJJX1F1ZXJ5 S2V5IHFrZXk7CiAJU1BJUGxhblB0cglxcGxhbjsKKwlpbnQJCQl0YXJnZXRSYW5nZVBhcmFtID0g LTE7CisJRGF0dW0JCXRhcmdldFJhbmdlID0gKERhdHVtKSAwOwogCiAJcmlpbmZvID0gcmlfRmV0 Y2hDb25zdHJhaW50SW5mbyh0cmlnZGF0YS0+dGdfdHJpZ2dlciwKIAkJCQkJCQkJCXRyaWdkYXRh LT50Z19yZWxhdGlvbiwgdHJ1ZSk7CkBAIC04MDEsOSArODExLDE2IEBAIHJpX3Jlc3RyaWN0KFRy aWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pCiAJLyoKIAkgKiBXZSBoYXZl IGEgcGxhbiBub3cuIFJ1biBpdCB0byBjaGVjayBmb3IgZXhpc3RpbmcgcmVmZXJlbmNlcy4KIAkg Ki8KKwlpZiAodHJpZ2RhdGEtPnRnX3RlbXBvcmFsKQorCXsKKwkJdGFyZ2V0UmFuZ2VQYXJhbSA9 IHJpaW5mby0+bmtleXMgLSAxOworCQl0YXJnZXRSYW5nZSA9IHJlc3RyaWN0X2Nhc2NhZGluZ19y YW5nZSh0cmlnZGF0YS0+dGdfdGVtcG9yYWwsIHJpaW5mbywgb2xkc2xvdCk7CisJfQorCiAJcmlf UGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFuLAogCQkJCQlma19yZWwsIHBrX3JlbCwK IAkJCQkJb2xkc2xvdCwgTlVMTCwKKwkJCQkJdGFyZ2V0UmFuZ2VQYXJhbSwgdGFyZ2V0UmFuZ2Us CiAJCQkJCXRydWUsCQkvKiBtdXN0IGRldGVjdCBuZXcgcm93cyAqLwogCQkJCQlTUElfT0tfU0VM RUNUKTsKIApAQCAtOTA5LDYgKzkyNiw3IEBAIFJJX0ZLZXlfY2FzY2FkZV9kZWwoUEdfRlVOQ1RJ T05fQVJHUykKIAlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCWZr X3JlbCwgcGtfcmVsLAogCQkJCQlvbGRzbG90LCBOVUxMLAorCQkJCQktMSwgKERhdHVtKSAwLAog CQkJCQl0cnVlLAkJLyogbXVzdCBkZXRlY3QgbmV3IHJvd3MgKi8KIAkJCQkJU1BJX09LX0RFTEVU RSk7CiAKQEAgLTEwMjksNiArMTA0Nyw3IEBAIFJJX0ZLZXlfY2FzY2FkZV91cGQoUEdfRlVOQ1RJ T05fQVJHUykKIAlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCWZr X3JlbCwgcGtfcmVsLAogCQkJCQlvbGRzbG90LCBuZXdzbG90LAorCQkJCQktMSwgKERhdHVtKSAw LAogCQkJCQl0cnVlLAkJLyogbXVzdCBkZXRlY3QgbmV3IHJvd3MgKi8KIAkJCQkJU1BJX09LX1VQ REFURSk7CiAKQEAgLTEyNjAsNiArMTI3OSw3IEBAIHJpX3NldChUcmlnZ2VyRGF0YSAqdHJpZ2Rh dGEsIGJvb2wgaXNfc2V0X251bGwsIGludCB0Z2tpbmQpCiAJcmlfUGVyZm9ybUNoZWNrKHJpaW5m bywgJnFrZXksIHFwbGFuLAogCQkJCQlma19yZWwsIHBrX3JlbCwKIAkJCQkJb2xkc2xvdCwgTlVM TCwKKwkJCQkJLTEsIChEYXR1bSkgMCwKIAkJCQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyBy b3dzICovCiAJCQkJCVNQSV9PS19VUERBVEUpOwogCkBAIC0yNDA1LDYgKzI0MjUsNyBAQCByaV9Q ZXJmb3JtQ2hlY2soY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKIAkJCQlSSV9RdWVy eUtleSAqcWtleSwgU1BJUGxhblB0ciBxcGxhbiwKIAkJCQlSZWxhdGlvbiBma19yZWwsIFJlbGF0 aW9uIHBrX3JlbCwKIAkJCQlUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCwgVHVwbGVUYWJsZVNsb3Qg Km5ld3Nsb3QsCisJCQkJaW50IGZvclBvcnRpb25PZlBhcmFtLCBEYXR1bSBmb3JQb3J0aW9uT2Ys CiAJCQkJYm9vbCBkZXRlY3ROZXdSb3dzLCBpbnQgZXhwZWN0X09LKQogewogCVJlbGF0aW9uCXF1 ZXJ5X3JlbCwKQEAgLTI0NjAsNiArMjQ4MSwxMiBAQCByaV9QZXJmb3JtQ2hlY2soY29uc3QgUklf Q29uc3RyYWludEluZm8gKnJpaW5mbywKIAkJcmlfRXh0cmFjdFZhbHVlcyhzb3VyY2VfcmVsLCBv bGRzbG90LCByaWluZm8sIHNvdXJjZV9pc19waywKIAkJCQkJCSB2YWxzLCBudWxscyk7CiAJfQor CS8qIEFkZCBvbmUgbW9yZSBxdWVyeSBwYXJhbSBpZiB3ZSBhcmUgdXNpbmcgRk9SIFBPUlRJT04g T0YgKi8KKwlpZiAoZm9yUG9ydGlvbk9mKQorCXsKKwkJdmFsc1tmb3JQb3J0aW9uT2ZQYXJhbV0g PSBmb3JQb3J0aW9uT2Y7CisJCW51bGxzW2ZvclBvcnRpb25PZlBhcmFtXSA9ICcgJzsKKwl9CiAK IAkvKgogCSAqIEluIFJFQUQgQ09NTUlUVEVEIG1vZGUsIHdlIGp1c3QgbmVlZCB0byB1c2UgYW4g dXAtdG8tZGF0ZSByZWd1bGFyCkBAIC0zMTM2LDMgKzMxNjMsNTAgQEAgUklfRktleV90cmlnZ2Vy X3R5cGUoT2lkIHRnZm9pZCkKIAogCXJldHVybiBSSV9UUklHR0VSX05PTkU7CiB9CisKKy8qCisg KiBmcG9fdGFyZ2V0c19wa19yYW5nZQorICoKKyAqIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHByaW1h cnkga2V5IHJlZmVyZW5jZWQgYnkgcmlpbmZvIGluY2x1ZGVzIHRoZSByYW5nZQorICogY29sdW1u IHRhcmdldGVkIGJ5IHRoZSBGT1IgUE9SVElPTiBPRiBjbGF1c2UgKGFjY29yZGluZyB0byB0Z190 ZW1wb3JhbCkuCisgKi8KK3N0YXRpYyBib29sCitmcG9fdGFyZ2V0c19wa19yYW5nZShjb25zdCBG b3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWwsIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpy aWluZm8pCit7CisJaWYgKHRnX3RlbXBvcmFsID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKwor CXJldHVybiByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdID09IHRnX3RlbXBv cmFsLT5mcF9yYW5nZUF0dG5vOworfQorCisvKgorICogcmVzdHJpY3RfY2FzY2FkaW5nX3Jhbmdl IC0KKyAqCisgKiBSZXR1cm5zIGEgRGF0dW0gb2YgUmFuZ2VUeXBlUCBob2xkaW5nIHRoZSBhcHBy b3ByaWF0ZSB0aW1lc3BhbgorICogdG8gdGFyZ2V0IGNoaWxkIHJlY29yZHMgd2hlbiB3ZSBDQVND QURFL1NFVCBOVUxML1NFVCBERUZBVUxULgorICoKKyAqIEluIGEgbm9ybWFsIFVQREFURS9ERUxF VEUgdGhpcyBzaG91bGQgYmUgdGhlIHBhcmVudCdzIG93biB2YWxpZCB0aW1lLAorICogYnV0IGlm IHRoZXJlIHdhcyBhIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSwgdGhlbiB3ZSBzaG91bGQgdXNlIHRo YXQgdG8KKyAqIHRyaW0gZG93biB0aGUgcGFyZW50J3Mgc3BhbiBmdXJ0aGVyLgorICovCitzdGF0 aWMgRGF0dW0KK3Jlc3RyaWN0X2Nhc2NhZGluZ19yYW5nZShjb25zdCBGb3JQb3J0aW9uT2ZTdGF0 ZSAqdGdfdGVtcG9yYWwsIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sIFR1cGxlVGFi bGVTbG90ICpvbGRzbG90KQoreworCURhdHVtCXBrUmVjb3JkUmFuZ2U7CisJYm9vbAlpc251bGw7 CisKKwlwa1JlY29yZFJhbmdlID0gc2xvdF9nZXRhdHRyKG9sZHNsb3QsIHJpaW5mby0+cGtfYXR0 bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0sICZpc251bGwpOworCWlmIChpc251bGwpCisJCWVsb2co RVJST1IsICJhcHBsaWNhdGlvbiB0aW1lIHNob3VsZCBub3QgYmUgbnVsbCIpOworCisJaWYgKGZw b190YXJnZXRzX3BrX3JhbmdlKHRnX3RlbXBvcmFsLCByaWluZm8pKQorCXsKKwkJUmFuZ2VUeXBl ICpyMSA9IERhdHVtR2V0UmFuZ2VUeXBlUChwa1JlY29yZFJhbmdlKTsKKwkJUmFuZ2VUeXBlICpy MiA9IERhdHVtR2V0UmFuZ2VUeXBlUCh0Z190ZW1wb3JhbC0+ZnBfdGFyZ2V0UmFuZ2UpOworCQlP aWQgcm5ndHlwaWQgPSBSYW5nZVR5cGVHZXRPaWQocjEpOworCQlUeXBlQ2FjaGVFbnRyeSAqdHlw Y2FjaGUgPSBsb29rdXBfdHlwZV9jYWNoZShybmd0eXBpZCwgVFlQRUNBQ0hFX1JBTkdFX0lORk8p OworCQlyZXR1cm4gUmFuZ2VUeXBlUEdldERhdHVtKHJhbmdlX2ludGVyc2VjdF9pbnRlcm5hbCh0 eXBjYWNoZSwgcjEsIHIyKSk7CisJfQorCWVsc2UKKwkJcmV0dXJuIHBrUmVjb3JkUmFuZ2U7Cit9 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IDQ4YTI4MGQwODliLi5iNjdjMGMw M2I5NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTE2MjksNyArMTYyOSw3 IEBAIGdldF9mdW5jX25hbWUoT2lkIGZ1bmNpZCkKICAqCQlSZXR1cm5zIHRoZSBwZ19uYW1lc3Bh Y2UgT0lEIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGZ1bmN0aW9uLgogICovCiBPaWQKLWdldF9m dW5jX25hbWVzcGFjZShPaWQgZnVuY2lkKQorZ2V0X2Z1bmNfbmFtZXNwYWNlKE9pZCBmdW5jaWQs IGJvb2wgbWlzc2luZ19vaykKIHsKIAlIZWFwVHVwbGUJdHA7CiAKQEAgLTE2NDMsNiArMTY0Myw4 IEBAIGdldF9mdW5jX25hbWVzcGFjZShPaWQgZnVuY2lkKQogCQlSZWxlYXNlU3lzQ2FjaGUodHAp OwogCQlyZXR1cm4gcmVzdWx0OwogCX0KKwllbHNlIGlmICghbWlzc2luZ19vaykKKwkJZWxvZyhF UlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGZ1bmN0aW9uICV1IiwgZnVuY2lkKTsKIAll bHNlCiAJCXJldHVybiBJbnZhbGlkT2lkOwogfQpAQCAtMjE4OCw2ICsyMTkwLDU5IEBAIGdldF90 eXBpc2RlZmluZWQoT2lkIHR5cGlkKQogCQlyZXR1cm4gZmFsc2U7CiB9CiAKKy8qCisgKiBnZXRf dHlwbmFtZQorICoKKyAqCSAgUmV0dXJucyB0aGUgbmFtZSBvZiBhIGdpdmVuIHR5cGUKKyAqCisg KiBSZXR1cm5zIGEgcGFsbG9jJ2QgY29weSBvZiB0aGUgc3RyaW5nLCBvciBOVUxMIGlmIG5vIHN1 Y2ggdHlwZS4KKyAqLworY2hhciAqCitnZXRfdHlwbmFtZShPaWQgdHlwaWQpCit7CisJSGVhcFR1 cGxlICAgdHA7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShUWVBFT0lELCBPYmplY3RJZEdldERh dHVtKHR5cGlkKSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCXsKKwkJRm9ybV9wZ190 eXBlIHR5cHR1cCA9IChGb3JtX3BnX3R5cGUpIEdFVFNUUlVDVCh0cCk7CisJCWNoYXIJICAgKnJl c3VsdDsKKworCQlyZXN1bHQgPSBwc3RyZHVwKE5hbWVTdHIodHlwdHVwLT50eXBuYW1lKSk7CisJ CVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCWVsc2UKKwkJcmV0 dXJuIE5VTEw7Cit9CisKKy8qCisgKiBnZXRfdHlwbmFtZV9hbmRfbmFtZXNwYWNlCisgKgorICoJ ICBSZXR1cm5zIHRoZSBuYW1lIGFuZCBuYW1lc3BhY2Ugb2YgYSBnaXZlbiB0eXBlCisgKgorICog UmV0dXJucyB0cnVlIGlmIG9uZSBmb3VuZCwgb3IgZmFsc2UgaWYgbm90LgorICovCitib29sCitn ZXRfdHlwbmFtZV9hbmRfbmFtZXNwYWNlKE9pZCB0eXBpZCwgY2hhciAqKnR5cG5hbWUsIGNoYXIg Kip0eXBuYW1lc3BhY2UpCit7CisJSGVhcFR1cGxlCXRwOworCisJdHAgPSBTZWFyY2hTeXNDYWNo ZTEoVFlQRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh0eXBpZCkpOworCWlmIChIZWFwVHVwbGVJc1Zh bGlkKHRwKSkKKwl7CisJCUZvcm1fcGdfdHlwZSB0eXB0dXAgPSAoRm9ybV9wZ190eXBlKSBHRVRT VFJVQ1QodHApOworCisJCSp0eXBuYW1lID0gcHN0cmR1cChOYW1lU3RyKHR5cHR1cC0+dHlwbmFt ZSkpOworCQkqdHlwbmFtZXNwYWNlID0gZ2V0X25hbWVzcGFjZV9uYW1lKHR5cHR1cC0+dHlwbmFt ZXNwYWNlKTsKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJLyogKnR5cG5hbWVzcGFjZSBpcyBO VUxMIGlmIGl0IHdhc24ndCBmb3VuZDogKi8KKwkJcmV0dXJuICp0eXBuYW1lc3BhY2U7CisJfQor CWVsc2UKKwkJcmV0dXJuIGZhbHNlOworfQorCiAvKgogICogZ2V0X3R5cGxlbgogICoKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RyaWdnZXIuaCBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3RyaWdnZXIuaAppbmRleCA4YTVhOWZlNjQyMi4uM2QxNTY0ODMzMjUgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RyaWdnZXIuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5k cy90cmlnZ2VyLmgKQEAgLTQxLDYgKzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgVHJpZ2dlckRhdGEK IAlUdXBsZXN0b3Jlc3RhdGUgKnRnX29sZHRhYmxlOwogCVR1cGxlc3RvcmVzdGF0ZSAqdGdfbmV3 dGFibGU7CiAJY29uc3QgQml0bWFwc2V0ICp0Z191cGRhdGVkY29sczsKKwlGb3JQb3J0aW9uT2ZT dGF0ZSAqdGdfdGVtcG9yYWw7CiB9IFRyaWdnZXJEYXRhOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aAppbmRleCBlNDY5OGEyOGM0Zi4uOGRhNTYxOGVlMTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBA IC00MiwxMiArNDIsMTQgQEAKICNpbmNsdWRlICJzdG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5o IgogI2luY2x1ZGUgInV0aWxzL2hzZWFyY2guaCIKICNpbmNsdWRlICJ1dGlscy9xdWVyeWVudmly b25tZW50LmgiCisjaW5jbHVkZSAidXRpbHMvcmFuZ2V0eXBlcy5oIgogI2luY2x1ZGUgInV0aWxz L3JlbHRyaWdnZXIuaCIKICNpbmNsdWRlICJ1dGlscy9zaGFyZWR0dXBsZXN0b3JlLmgiCiAjaW5j bHVkZSAidXRpbHMvc25hcHNob3QuaCIKICNpbmNsdWRlICJ1dGlscy9zb3J0c3VwcG9ydC5oIgog I2luY2x1ZGUgInV0aWxzL3R1cGxlc29ydC5oIgogI2luY2x1ZGUgInV0aWxzL3R1cGxlc3RvcmUu aCIKKyNpbmNsdWRlICJ1dGlscy90eXBjYWNoZS5oIgogCiBzdHJ1Y3QgUGxhblN0YXRlOwkJCQkv KiBmb3J3YXJkIHJlZmVyZW5jZXMgaW4gdGhpcyBmaWxlICovCiBzdHJ1Y3QgUGFyYWxsZWxIYXNo Sm9pblN0YXRlOwpAQCAtNDMxLDYgKzQzMywyNiBAQCB0eXBlZGVmIHN0cnVjdCBNZXJnZUFjdGlv blN0YXRlCiAJRXhwclN0YXRlICAqbWFzX3doZW5xdWFsOwkvKiBXSEVOIFtOT1RdIE1BVENIRUQg QU5EIGNvbmRpdGlvbnMgKi8KIH0gTWVyZ2VBY3Rpb25TdGF0ZTsKIAorLyoKKyAqIEZvclBvcnRp b25PZlN0YXRlCisgKgorICogRXhlY3V0b3Igc3RhdGUgb2YgYSBGT1IgUE9SVElPTiBPRiBvcGVy YXRpb24uCisgKi8KK3R5cGVkZWYgc3RydWN0IEZvclBvcnRpb25PZlN0YXRlCit7CisJTm9kZVRh ZwkJdHlwZTsKKworCWNoYXIgICAqZnBfcmFuZ2VOYW1lOwkJLyogdGhlIGNvbHVtbiBuYW1lZCBp biBGT1IgUE9SVElPTiBPRiAqLworCU9pZAkJZnBfcmFuZ2VUeXBlOwkJLyogdGhlIHR5cGUgb2Yg dGhlIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb24gKi8KKwlpbnQJCWZwX3JhbmdlQXR0bm87CQkv KiB0aGUgYXR0bm8gb2YgdGhlIHJhbmdlIGNvbHVtbiAqLworCURhdHVtCWZwX3RhcmdldFJhbmdl OwkJLyogdGhlIHJhbmdlIGZyb20gRk9SIFBPUlRJT04gT0YgKi8KKwlUeXBlQ2FjaGVFbnRyeSAq ZnBfbGVmdG92ZXJzdHlwY2FjaGU7CS8qIHR5cGUgY2FjaGUgZW50cnkgb2YgdGhlIHJhbmdlICov CisJVHVwbGVUYWJsZVNsb3QgKmZwX0V4aXN0aW5nOwkJLyogc2xvdCB0byBzdG9yZSBvbGQgdHVw bGUgKi8KKwlUdXBsZVRhYmxlU2xvdCAqZnBfTGVmdG92ZXI7CQkvKiBzbG90IHRvIHN0b3JlIGxl ZnRvdmVyICovCisJRGF0dW0gICpmcF92YWx1ZXM7CS8qIFNQSSBpbnB1dCBmb3IgbGVmdG92ZXIg dmFsdWVzICovCisJY2hhciAgICpmcF9udWxsczsJLyogU1BJIGlucHV0IGZvciBudWxscyAqLwor fSBGb3JQb3J0aW9uT2ZTdGF0ZTsKKwogLyoKICAqIFJlc3VsdFJlbEluZm8KICAqCkBAIC01NTgs NiArNTgwLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVzdWx0UmVsSW5mbwogCS8qIGZvciBNRVJHRSwg ZXhwciBzdGF0ZSBmb3IgY2hlY2tpbmcgdGhlIGpvaW4gY29uZGl0aW9uICovCiAJRXhwclN0YXRl ICAqcmlfTWVyZ2VKb2luQ29uZGl0aW9uOwogCisJLyogRk9SIFBPUlRJT04gT0YgZXZhbHVhdGlv biBzdGF0ZSAqLworCUZvclBvcnRpb25PZlN0YXRlICpyaV9mb3JQb3J0aW9uT2Y7CisKIAkvKiBw YXJ0aXRpb24gY2hlY2sgZXhwcmVzc2lvbiBzdGF0ZSAoTlVMTCBpZiBub3Qgc2V0IHVwIHlldCkg Ki8KIAlFeHByU3RhdGUgICpyaV9QYXJ0aXRpb25DaGVja0V4cHI7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAppbmRleCA1YjYyZGYzMjczMy4uMDhmMTJmYzc5Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKQEAgLTE0Miw2ICsxNDIsOSBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeQogCSAqLwogCWludAkJ CXJlc3VsdFJlbGF0aW9uIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAorCS8q IEZPUiBQT1JUSU9OIE9GIGNsYXVzZSBmb3IgVVBEQVRFL0RFTEVURSAqLworCUZvclBvcnRpb25P ZkV4cHIgKmZvclBvcnRpb25PZjsKKwogCS8qIGhhcyBhZ2dyZWdhdGVzIGluIHRsaXN0IG9yIGhh dmluZ1F1YWwgKi8KIAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdu b3JlKTsKIAkvKiBoYXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAqLwpAQCAtMTU4MSw2ICsx NTg0LDIxIEBAIHR5cGVkZWYgc3RydWN0IFJvd01hcmtDbGF1c2UKIAlib29sCQlwdXNoZWREb3du OwkJLyogcHVzaGVkIGRvd24gZnJvbSBoaWdoZXIgcXVlcnkgbGV2ZWw/ICovCiB9IFJvd01hcmtD bGF1c2U7CiAKKy8qCisgKiBGb3JQb3J0aW9uT2ZDbGF1c2UKKyAqCQlyZXByZXNlbnRhdGlvbiBv ZiBGT1IgUE9SVElPTiBPRiA8cGVyaW9kLW5hbWU+IEZST00gPHRzPiBUTyA8dGU+CisgKgkJb3Ig Rk9SIFBPUlRJT04gT0YgPHBlcmlvZC1uYW1lPiAoPHRhcmdldD4pCisgKi8KK3R5cGVkZWYgc3Ry dWN0IEZvclBvcnRpb25PZkNsYXVzZQoreworCU5vZGVUYWcJCXR5cGU7CisJY2hhcgkgICAqcmFu Z2VfbmFtZTsKKwlpbnQJCQlsb2NhdGlvbjsKKwlOb2RlCSAgICp0YXJnZXQ7CisJTm9kZQkgICAq dGFyZ2V0X3N0YXJ0OworCU5vZGUJICAgKnRhcmdldF9lbmQ7Cit9IEZvclBvcnRpb25PZkNsYXVz ZTsKKwogLyoKICAqIFdpdGhDbGF1c2UgLQogICoJICAgcmVwcmVzZW50YXRpb24gb2YgV0lUSCBj bGF1c2UKQEAgLTIwNTMsMTIgKzIwNzEsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgSW5zZXJ0U3RtdAog ICovCiB0eXBlZGVmIHN0cnVjdCBEZWxldGVTdG10CiB7Ci0JTm9kZVRhZwkJdHlwZTsKLQlSYW5n ZVZhciAgICpyZWxhdGlvbjsJCS8qIHJlbGF0aW9uIHRvIGRlbGV0ZSBmcm9tICovCi0JTGlzdAkg ICAqdXNpbmdDbGF1c2U7CS8qIG9wdGlvbmFsIHVzaW5nIGNsYXVzZSBmb3IgbW9yZSB0YWJsZXMg Ki8KLQlOb2RlCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8KLQlMaXN0CSAg ICpyZXR1cm5pbmdMaXN0OwkvKiBsaXN0IG9mIGV4cHJlc3Npb25zIHRvIHJldHVybiAqLwotCVdp dGhDbGF1c2UgKndpdGhDbGF1c2U7CQkvKiBXSVRIIGNsYXVzZSAqLworCU5vZGVUYWcJCQkJdHlw ZTsKKwlSYW5nZVZhcgkJICAgKnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gZGVsZXRlIGZyb20g Ki8KKwlGb3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRpb25PZjsJLyogRk9SIFBPUlRJT04gT0Yg Y2xhdXNlICovCisJTGlzdAkJCSAgICp1c2luZ0NsYXVzZTsJLyogb3B0aW9uYWwgdXNpbmcgY2xh dXNlIGZvciBtb3JlIHRhYmxlcyAqLworCU5vZGUJCQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxp ZmljYXRpb25zICovCisJTGlzdAkJCSAgICpyZXR1cm5pbmdMaXN0OwkvKiBsaXN0IG9mIGV4cHJl c3Npb25zIHRvIHJldHVybiAqLworCVdpdGhDbGF1c2UJCSAgICp3aXRoQ2xhdXNlOwkJLyogV0lU SCBjbGF1c2UgKi8KIH0gRGVsZXRlU3RtdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpA QCAtMjA2NywxMyArMjA4NiwxNCBAQCB0eXBlZGVmIHN0cnVjdCBEZWxldGVTdG10CiAgKi8KIHR5 cGVkZWYgc3RydWN0IFVwZGF0ZVN0bXQKIHsKLQlOb2RlVGFnCQl0eXBlOwotCVJhbmdlVmFyICAg KnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gdXBkYXRlICovCi0JTGlzdAkgICAqdGFyZ2V0TGlz dDsJCS8qIHRoZSB0YXJnZXQgbGlzdCAob2YgUmVzVGFyZ2V0KSAqLwotCU5vZGUJICAgKndoZXJl Q2xhdXNlOwkvKiBxdWFsaWZpY2F0aW9ucyAqLwotCUxpc3QJICAgKmZyb21DbGF1c2U7CQkvKiBv cHRpb25hbCBmcm9tIGNsYXVzZSBmb3IgbW9yZSB0YWJsZXMgKi8KLQlMaXN0CSAgICpyZXR1cm5p bmdMaXN0OwkvKiBsaXN0IG9mIGV4cHJlc3Npb25zIHRvIHJldHVybiAqLwotCVdpdGhDbGF1c2Ug KndpdGhDbGF1c2U7CQkvKiBXSVRIIGNsYXVzZSAqLworCU5vZGVUYWcJCQkJdHlwZTsKKwlSYW5n ZVZhcgkJICAgKnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gdXBkYXRlICovCisJRm9yUG9ydGlv bk9mQ2xhdXNlICpmb3JQb3J0aW9uT2Y7CS8qIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSAqLworCUxp c3QJCQkgICAqdGFyZ2V0TGlzdDsJCS8qIHRoZSB0YXJnZXQgbGlzdCAob2YgUmVzVGFyZ2V0KSAq LworCU5vZGUJCQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICovCisJTGlzdAkJ CSAgICpmcm9tQ2xhdXNlOwkJLyogb3B0aW9uYWwgZnJvbSBjbGF1c2UgZm9yIG1vcmUgdGFibGVz ICovCisJTGlzdAkJCSAgICpyZXR1cm5pbmdMaXN0OwkvKiBsaXN0IG9mIGV4cHJlc3Npb25zIHRv IHJldHVybiAqLworCVdpdGhDbGF1c2UJCSAgICp3aXRoQ2xhdXNlOwkJLyogV0lUSCBjbGF1c2Ug Ki8KIH0gVXBkYXRlU3RtdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRo bm9kZXMuaAppbmRleCAwN2UyNDE1Mzk4ZS4uZDUzOGFlMjM4MDggMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rl cy5oCkBAIC0yMzkyLDYgKzIzOTIsNyBAQCB0eXBlZGVmIHN0cnVjdCBNb2RpZnlUYWJsZVBhdGgK IAlMaXN0CSAgICpyZXR1cm5pbmdMaXN0czsgLyogcGVyLXRhcmdldC10YWJsZSBSRVRVUk5JTkcg dGxpc3RzICovCiAJTGlzdAkgICAqcm93TWFya3M7CQkvKiBQbGFuUm93TWFya3MgKG5vbi1sb2Nr aW5nIG9ubHkpICovCiAJT25Db25mbGljdEV4cHIgKm9uY29uZmxpY3Q7IC8qIE9OIENPTkZMSUNU IGNsYXVzZSwgb3IgTlVMTCAqLworCUZvclBvcnRpb25PZkV4cHIgKmZvclBvcnRpb25PZjsJLyog Rk9SIFBPUlRJT04gT0YgY2xhdXNlIGZvciBVUERBVEUvREVMRVRFICovCiAJaW50CQkJZXBxUGFy YW07CQkvKiBJRCBvZiBQYXJhbSBmb3IgRXZhbFBsYW5RdWFsIHJlLWV2YWwgKi8KIAlMaXN0CSAg ICptZXJnZUFjdGlvbkxpc3RzOwkvKiBwZXItdGFyZ2V0LXRhYmxlIGxpc3RzIG9mIGFjdGlvbnMg Zm9yCiAJCQkJCQkJCQkgKiBNRVJHRSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv cGxhbm5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCA2MmNkNmE2 NjY2ZS4uYzI5NTg5MDdlYjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rl cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0yNDQsNiArMjQ0LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgTW9kaWZ5VGFibGUKIAlMaXN0CSAgICpyb3dNYXJrczsJCS8qIFBs YW5Sb3dNYXJrcyAobm9uLWxvY2tpbmcgb25seSkgKi8KIAlpbnQJCQllcHFQYXJhbTsJCS8qIElE IG9mIFBhcmFtIGZvciBFdmFsUGxhblF1YWwgcmUtZXZhbCAqLwogCU9uQ29uZmxpY3RBY3Rpb24g b25Db25mbGljdEFjdGlvbjsJLyogT04gQ09ORkxJQ1QgYWN0aW9uICovCisJTm9kZQkgICAqZm9y UG9ydGlvbk9mOwkvKiBGT1IgUE9SVElPTiBPRiBjbGF1c2UgZm9yIFVQREFURS9ERUxFVEUgKi8K IAlMaXN0CSAgICphcmJpdGVySW5kZXhlczsgLyogTGlzdCBvZiBPTiBDT05GTElDVCBhcmJpdGVy IGluZGV4IE9JRHMgICovCiAJTGlzdAkgICAqb25Db25mbGljdFNldDsJLyogSU5TRVJUIE9OIENP TkZMSUNUIERPIFVQREFURSB0YXJnZXRsaXN0ICovCiAJTGlzdAkgICAqb25Db25mbGljdENvbHM7 IC8qIHRhcmdldCBjb2x1bW4gbnVtYmVycyBmb3Igb25Db25mbGljdFNldCAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmlt bm9kZXMuaAppbmRleCBlYTQ3NjUyYWRiOC4uMDFhMTAxZDM3NzYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oCkBAIC0yMzMyLDQgKzIzMzIsMzAgQEAgdHlwZWRlZiBzdHJ1Y3QgT25Db25mbGljdEV4cHIK IAlMaXN0CSAgICpleGNsUmVsVGxpc3Q7CS8qIHRsaXN0IG9mIHRoZSBFWENMVURFRCBwc2V1ZG8g cmVsYXRpb24gKi8KIH0gT25Db25mbGljdEV4cHI7CiAKKy8qLS0tLS0tLS0tLQorICogRm9yUG9y dGlvbk9mRXhwciAtIHJlcHJlc2VudHMgYSBGT1IgUE9SVElPTiBPRiAuLi4gZXhwcmVzc2lvbgor ICoKKyAqIFdlIHNldCB1cCBhbiBleHByZXNzaW9uIHRvIG1ha2UgYSByYW5nZSBmcm9tIHRoZSBG Uk9NL1RPIGJvdW5kcywKKyAqIHNvIHRoYXQgd2UgY2FuIHVzZSByYW5nZSBvcGVyYXRvcnMgd2l0 aCBpdC4KKyAqCisgKiBUaGVuIHdlIHNldCB1cCBhbiBvdmVybGFwcyBleHByZXNzaW9uIGJldHdl ZW4gdGhhdCBhbmQgdGhlIHJhbmdlIGNvbHVtbiwKKyAqIHNvIHRoYXQgd2UgY2FuIGZpbmQgdGhl IHJvd3Mgd2UgbmVlZCB0byB1cGRhdGUvZGVsZXRlLgorICoKKyAqIEluIHRoZSBleGVjdXRvciB3 ZSdsbCBhbHNvIGJ1aWxkIGFuIGludGVyc2VjdCBleHByZXNzaW9uIGJldHdlZW4gdGhlCisgKiB0 YXJnZXRlZCByYW5nZSBhbmQgdGhlIHJhbmdlIGNvbHVtbiwgc28gdGhhdCB3ZSBjYW4gdXBkYXRl IHRoZSBzdGFydC9lbmQKKyAqIGJvdW5kcyBvZiB0aGUgVVBEQVRFJ2QgcmVjb3JkLgorICotLS0t LS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IEZvclBvcnRpb25PZkV4cHIKK3sKKwlOb2RlVGFn CQl0eXBlOworCVZhcgkJICAgKnJhbmdlVmFyOwkJCS8qIFJhbmdlIGNvbHVtbiAqLworCWNoYXIJ ICAgKnJhbmdlX25hbWU7CQkJLyogUmFuZ2UgbmFtZSAqLworCU5vZGUJICAgKnRhcmdldFJhbmdl OwkJLyogRk9SIFBPUlRJT04gT0YgYm91bmRzIGFzIGEgcmFuZ2UgKi8KKwlPaWQJCQlyYW5nZVR5 cGU7CQkJLyogdHlwZSBvZiB0YXJnZXRSYW5nZSAqLworCU5vZGUJICAgKm92ZXJsYXBzRXhwcjsJ CS8qIHJhbmdlICYmIHRhcmdldFJhbmdlICovCisJTGlzdAkgICAqcmFuZ2VUYXJnZXRMaXN0Owkv KiBMaXN0IG9mIFRhcmdldEVudHJ5cyB0byBzZXQgdGhlIHRpbWUgY29sdW1uKHMpICovCisJT2lk CQkJd2l0aG91dFBvcnRpb25Qcm9jOwkvKiBwcm9jIGZvciBvbGRfcmFuZ2UgQC0gdGFyZ2V0X3Jh bmdlICovCit9IEZvclBvcnRpb25PZkV4cHI7CisKICNlbmRpZgkJCQkJCQkvKiBQUklNTk9ERVNf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmggYi9zcmMv aW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaAppbmRleCAxMDM1ZTY1NjBjMS4uYjU5NGNjY2Fi OTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5oCkBAIC0yODksNyArMjg5LDcgQEAgZXh0ZXJu IE1vZGlmeVRhYmxlUGF0aCAqY3JlYXRlX21vZGlmeXRhYmxlX3BhdGgoUGxhbm5lckluZm8gKnJv b3QsCiAJCQkJCQkJCQkJCQlMaXN0ICp3aXRoQ2hlY2tPcHRpb25MaXN0cywgTGlzdCAqcmV0dXJu aW5nTGlzdHMsCiAJCQkJCQkJCQkJCQlMaXN0ICpyb3dNYXJrcywgT25Db25mbGljdEV4cHIgKm9u Y29uZmxpY3QsCiAJCQkJCQkJCQkJCQlMaXN0ICptZXJnZUFjdGlvbkxpc3RzLCBMaXN0ICptZXJn ZUpvaW5Db25kaXRpb25zLAotCQkJCQkJCQkJCQkJaW50IGVwcVBhcmFtKTsKKwkJCQkJCQkJCQkJ CUZvclBvcnRpb25PZkV4cHIgKmZvclBvcnRpb25PZiwgaW50IGVwcVBhcmFtKTsKIGV4dGVybiBM aW1pdFBhdGggKmNyZWF0ZV9saW1pdF9wYXRoKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZv ICpyZWwsCiAJCQkJCQkJCQlQYXRoICpzdWJwYXRoLAogCQkJCQkJCQkJTm9kZSAqbGltaXRPZmZz ZXQsIE5vZGUgKmxpbWl0Q291bnQsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvYW5h bHl6ZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaAppbmRleCAyOGI2NmZjY2I0My4u NmM3MGRhZTE0NTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgKKysr IGIvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaApAQCAtNDMsNyArNDMsOCBAQCBleHRlcm4g TGlzdCAqdHJhbnNmb3JtSW5zZXJ0Um93KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZXhwcmxp c3QsCiAJCQkJCQkJCUxpc3QgKnN0bXRjb2xzLCBMaXN0ICppY29sdW1ucywgTGlzdCAqYXR0cm5v cywKIAkJCQkJCQkJYm9vbCBzdHJpcF9pbmRpcmVjdGlvbik7CiBleHRlcm4gTGlzdCAqdHJhbnNm b3JtVXBkYXRlVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsCi0JCQkJCQkJCQkgICBMaXN0 ICpvcmlnVGxpc3QpOworCQkJCQkJCQkJICAgTGlzdCAqb3JpZ1RsaXN0LAorCQkJCQkJCQkJICAg Rm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mKTsKIGV4dGVybiBMaXN0ICp0cmFuc2Zvcm1S ZXR1cm5pbmdMaXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqcmV0dXJuaW5nTGlzdCwKIAkJ CQkJCQkJCVBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogZXh0ZXJuIFF1ZXJ5ICp0cmFuc2Zvcm1U b3BMZXZlbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSYXdTdG10ICpwYXJzZVRyZWUpOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oCmluZGV4IDg5OWQ2NGFkNTVmLi40MjU5ODdhZmVlNyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aApAQCAtMzQzLDYgKzM0Myw3IEBAIFBHX0tFWVdPUkQoInBsYWNpbmciLCBQTEFDSU5HLCBSRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGxhbiIsIFBMQU4sIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBsYW5zIiwgUExBTlMsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBvbGljeSIsIFBPTElD WSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgicG9ydGlvbiIs IFBPUlRJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBv c2l0aW9uIiwgUE9TSVRJT04sIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJwcmVjZWRpbmciLCBQUkVDRURJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInByZWNpc2lvbiIsIFBSRUNJU0lPTiwgQ09MX05BTUVfS0VZV09SRCwg QVNfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCA1NDNkZjU2ODE0Ny4uOGMyNzNk YTk0ZTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtNTYsNiArNTYsNyBAQCB0eXBlZGVm IGVudW0gUGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9VUERBVEVfU09VUkNFLAkvKiBVUERBVEUg YXNzaWdubWVudCBzb3VyY2UgaXRlbSAqLwogCUVYUFJfS0lORF9VUERBVEVfVEFSR0VULAkvKiBV UERBVEUgYXNzaWdubWVudCB0YXJnZXQgaXRlbSAqLwogCUVYUFJfS0lORF9NRVJHRV9XSEVOLAkJ LyogTUVSR0UgV0hFTiBbTk9UXSBNQVRDSEVEIGNvbmRpdGlvbiAqLworCUVYUFJfS0lORF9VUERB VEVfUE9SVElPTiwJLyogVVBEQVRFIEZPUiBQT1JUSU9OIE9GIGl0ZW0gKi8KIAlFWFBSX0tJTkRf R1JPVVBfQlksCQkJLyogR1JPVVAgQlkgKi8KIAlFWFBSX0tJTkRfT1JERVJfQlksCQkJLyogT1JE RVIgQlkgKi8KIAlFWFBSX0tJTkRfRElTVElOQ1RfT04sCQkvKiBESVNUSU5DVCBPTiAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGls cy9sc3lzY2FjaGUuaAppbmRleCAyMDQ0NmY2ZjgzNi4uZTdhZDUxMzE0NmEgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xz eXNjYWNoZS5oCkBAIC0xMjEsNyArMTIxLDcgQEAgZXh0ZXJuIE9pZAlnZXRfbmVnYXRvcihPaWQg b3Bubyk7CiBleHRlcm4gUmVnUHJvY2VkdXJlIGdldF9vcHJyZXN0KE9pZCBvcG5vKTsKIGV4dGVy biBSZWdQcm9jZWR1cmUgZ2V0X29wcmpvaW4oT2lkIG9wbm8pOwogZXh0ZXJuIGNoYXIgKmdldF9m dW5jX25hbWUoT2lkIGZ1bmNpZCk7Ci1leHRlcm4gT2lkCWdldF9mdW5jX25hbWVzcGFjZShPaWQg ZnVuY2lkKTsKK2V4dGVybiBPaWQJZ2V0X2Z1bmNfbmFtZXNwYWNlKE9pZCBmdW5jaWQsIGJvb2wg bWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9mdW5jX3JldHR5cGUoT2lkIGZ1bmNpZCk7CiBl eHRlcm4gaW50CWdldF9mdW5jX25hcmdzKE9pZCBmdW5jaWQpOwogZXh0ZXJuIE9pZAlnZXRfZnVu Y19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgT2lkICoqYXJndHlwZXMsIGludCAqbmFyZ3MpOwpAQCAt MTQ1LDYgKzE0NSw4IEBAIGV4dGVybiBPaWQJZ2V0X3JlbF9yZWxhbShPaWQgcmVsaWQpOwogZXh0 ZXJuIE9pZAlnZXRfdHJhbnNmb3JtX2Zyb21zcWwoT2lkIHR5cGlkLCBPaWQgbGFuZ2lkLCBMaXN0 ICp0cmZ0eXBlcyk7CiBleHRlcm4gT2lkCWdldF90cmFuc2Zvcm1fdG9zcWwoT2lkIHR5cGlkLCBP aWQgbGFuZ2lkLCBMaXN0ICp0cmZ0eXBlcyk7CiBleHRlcm4gYm9vbCBnZXRfdHlwaXNkZWZpbmVk KE9pZCB0eXBpZCk7CitleHRlcm4gY2hhciAqZ2V0X3R5cG5hbWUoT2lkIHR5cGlkKTsKK2V4dGVy biBib29sIGdldF90eXBuYW1lX2FuZF9uYW1lc3BhY2UoT2lkIHR5cGlkLCBjaGFyICoqdHlwbmFt ZSwgY2hhciAqKnR5cG5hbWVzcGFjZSk7CiBleHRlcm4gaW50MTYgZ2V0X3R5cGxlbihPaWQgdHlw aWQpOwogZXh0ZXJuIGJvb2wgZ2V0X3R5cGJ5dmFsKE9pZCB0eXBpZCk7CiBleHRlcm4gdm9pZCBn ZXRfdHlwbGVuYnl2YWwoT2lkIHR5cGlkLCBpbnQxNiAqdHlwbGVuLCBib29sICp0eXBieXZhbCk7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNDkzYTY3YjBhZAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CkBAIC0w LDAgKzEsNzkyIEBACistLSBUZXN0cyBmb3IgVVBEQVRFL0RFTEVURSBGT1IgUE9SVElPTiBPRgor U0VUIGRhdGVzdHlsZSBUTyBJU08sIFlNRDsKKy0tIFdvcmtzIG9uIG5vbi1QSyBjb2x1bW5zCitD UkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFs aWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQgTk9UIE5VTEwKKyk7CitJTlNFUlQgSU5UTyBm b3JfcG9ydGlvbl9vZl90ZXN0IFZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDIwLTAx LTAxKScsICdvbmUnKTsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0g J29uZV4xJzsKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTktMDEtMTUnIFRPICcyMDE5LTAxLTIwJzsKKy0tIFdpdGggYSB0 YWJsZSBhbGlhcyB3aXRoIEFTCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMi0wMScgVE8gJzIwMTktMDItMDMnIEFTIHQKK1NF VCBuYW1lID0gJ29uZV4yJzsKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDItMDMnIFRPICcyMDE5LTAyLTA0JyBBUyB0 OworLS0gV2l0aCBhIHRhYmxlIGFsaWFzIHdpdGhvdXQgQVMKK1VQREFURSBmb3JfcG9ydGlvbl9v Zl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAyLTA0JyBUTyAnMjAx OS0wMi0wNScgdAorU0VUIG5hbWUgPSAnb25lXjMnOworREVMRVRFIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMi0wNScgVE8gJzIw MTktMDItMDYnIHQ7CistLSBVUERBVEUgd2l0aCBGUk9NCitVUERBVEUgZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMy0wMScgdG8gJzIwMTkt MDMtMDInCitTRVQgbmFtZSA9ICdvbmVeNCcKK0ZST00gKFNFTEVDVCAnWzEsMiknOjppbnQ0cmFu Z2UpIEFTIHQyKGlkKQorV0hFUkUgZm9yX3BvcnRpb25fb2ZfdGVzdC5pZCA9IHQyLmlkOworLS0g REVMRVRFIHdpdGggVVNJTkcKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDMtMDInIFRPICcyMDE5LTAzLTAzJworVVNJ TkcgKFNFTEVDVCAnWzEsMiknOjppbnQ0cmFuZ2UpIEFTIHQyKGlkKQorV0hFUkUgZm9yX3BvcnRp b25fb2ZfdGVzdC5pZCA9IHQyLmlkOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0 IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIFsx LDIpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0xNSkgfCBvbmUKKyBbMSwyKSB8IFsyMDE4LTAxLTE1 LDIwMTktMDEtMDEpIHwgb25lXjEKKyBbMSwyKSB8IFsyMDE5LTAxLTAxLDIwMTktMDEtMTUpIHwg b25lCisgWzEsMikgfCBbMjAxOS0wMS0yMCwyMDE5LTAyLTAxKSB8IG9uZQorIFsxLDIpIHwgWzIw MTktMDItMDEsMjAxOS0wMi0wMykgfCBvbmVeMgorIFsxLDIpIHwgWzIwMTktMDItMDQsMjAxOS0w Mi0wNSkgfCBvbmVeMworIFsxLDIpIHwgWzIwMTktMDItMDYsMjAxOS0wMy0wMSkgfCBvbmUKKyBb MSwyKSB8IFsyMDE5LTAzLTAxLDIwMTktMDMtMDIpIHwgb25lXjQKKyBbMSwyKSB8IFsyMDE5LTAz LTAzLDIwMjAtMDEtMDEpIHwgb25lCisoOSByb3dzKQorCistLSBXb3JrcyBvbiBtb3JlIHRoYW4g b25lIHJhbmdlCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVEFCTEUg Zm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWQxX2F0IGRhdGVy YW5nZSwKKyAgdmFsaWQyX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMCispOwor SU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMKKygnWzEsMiknLCAnWzIwMTgt MDEtMDIsMjAxOC0wMi0wMyknLCAnWzIwMTUtMDEtMDEsMjAyNS0wMS0wMSknLCAnb25lJyk7CitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWQxX2F0IEZST00g JzIwMTgtMDEtMTUnIFRPIE5VTEwKK1NFVCBuYW1lID0gJ2Zvbyc7CitTRUxFQ1QgKiBGUk9NIGZv cl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkMV9hdCwgdmFsaWQyX2F0OworICBp ZCAgIHwgICAgICAgIHZhbGlkMV9hdCAgICAgICAgfCAgICAgICAgdmFsaWQyX2F0ICAgICAgICB8 IG5hbWUgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0KKyBbMSwyKSB8IFsyMDE4LTAxLTAyLDIwMTgtMDEtMTUpIHwgWzIw MTUtMDEtMDEsMjAyNS0wMS0wMSkgfCBvbmUKKyBbMSwyKSB8IFsyMDE4LTAxLTE1LDIwMTgtMDIt MDMpIHwgWzIwMTUtMDEtMDEsMjAyNS0wMS0wMSkgfCBmb28KKygyIHJvd3MpCisKK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDJfYXQgRlJPTSAnMjAxOC0w MS0xNScgVE8gTlVMTAorU0VUIG5hbWUgPSAnYmFyJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRp b25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWQxX2F0LCB2YWxpZDJfYXQ7CisgIGlkICAgfCAg ICAgICAgdmFsaWQxX2F0ICAgICAgICB8ICAgICAgICB2YWxpZDJfYXQgICAgICAgIHwgbmFtZSAK Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLQorIFsxLDIpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0xNSkgfCBbMjAxNS0wMS0w MSwyMDE4LTAxLTE1KSB8IG9uZQorIFsxLDIpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0xNSkgfCBb MjAxOC0wMS0xNSwyMDI1LTAxLTAxKSB8IGJhcgorIFsxLDIpIHwgWzIwMTgtMDEtMTUsMjAxOC0w Mi0wMykgfCBbMjAxNS0wMS0wMSwyMDE4LTAxLTE1KSB8IGZvbworIFsxLDIpIHwgWzIwMTgtMDEt MTUsMjAxOC0wMi0wMykgfCBbMjAxOC0wMS0xNSwyMDI1LTAxLTAxKSB8IGJhcgorKDQgcm93cykK KworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWQx X2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5VTEw7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9u X29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkMV9hdCwgdmFsaWQyX2F0OworICBpZCAgIHwgICAg ICAgIHZhbGlkMV9hdCAgICAgICAgfCAgICAgICAgdmFsaWQyX2F0ICAgICAgICB8IG5hbWUgCist LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0KKyBbMSwyKSB8IFsyMDE4LTAxLTAyLDIwMTgtMDEtMTUpIHwgWzIwMTUtMDEtMDEs MjAxOC0wMS0xNSkgfCBvbmUKKyBbMSwyKSB8IFsyMDE4LTAxLTAyLDIwMTgtMDEtMTUpIHwgWzIw MTgtMDEtMTUsMjAyNS0wMS0wMSkgfCBiYXIKKyBbMSwyKSB8IFsyMDE4LTAxLTE1LDIwMTgtMDEt MjApIHwgWzIwMTUtMDEtMDEsMjAxOC0wMS0xNSkgfCBmb28KKyBbMSwyKSB8IFsyMDE4LTAxLTE1 LDIwMTgtMDEtMjApIHwgWzIwMTgtMDEtMTUsMjAyNS0wMS0wMSkgfCBiYXIKKyg0IHJvd3MpCisK K0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9h dCBGUk9NICcyMDE4LTAxLTIwJyBUTyBOVUxMOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9v Zl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZDFfYXQsIHZhbGlkMl9hdDsKKyAgaWQgICB8ICAgICAg ICB2YWxpZDFfYXQgICAgICAgIHwgICAgICAgIHZhbGlkMl9hdCAgICAgICAgfCBuYW1lIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tCisgWzEsMikgfCBbMjAxOC0wMS0wMiwyMDE4LTAxLTE1KSB8IFsyMDE1LTAxLTAxLDIw MTgtMDEtMTUpIHwgb25lCisgWzEsMikgfCBbMjAxOC0wMS0wMiwyMDE4LTAxLTE1KSB8IFsyMDE4 LTAxLTE1LDIwMTgtMDEtMjApIHwgYmFyCisgWzEsMikgfCBbMjAxOC0wMS0xNSwyMDE4LTAxLTIw KSB8IFsyMDE1LTAxLTAxLDIwMTgtMDEtMTUpIHwgZm9vCisgWzEsMikgfCBbMjAxOC0wMS0xNSwy MDE4LTAxLTIwKSB8IFsyMDE4LTAxLTE1LDIwMTgtMDEtMjApIHwgYmFyCisoNCByb3dzKQorCist LSBUZXN0IHdpdGggTlVMTHMgaW4gdGhlIHNjYWxhci9yYW5nZSBrZXkgY29sdW1ucy4KKy0tIFRo aXMgd29uJ3QgaGFwcGVuIGlmIHRoZXJlIGlzIGEgUFJJTUFSWSBLRVkgb3IgVU5JUVVFIGNvbnN0 cmFpbnQKKy0tIGJ1dCBGT1IgUE9SVElPTiBPRiBzaG91bGRuJ3QgcmVxdWlyZSB0aGF0LgorRFJP UCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFVOTE9HR0VEIFRBQkxFIGZvcl9w b3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwK KyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMK KyAgKCdbMSwyKScsIE5VTEwsICcxIG51bGwnKSwKKyAgKCdbMSwyKScsICcoLCknLCAnMSB1bmJv dW5kZWQnKSwKKyAgKCdbMSwyKScsICdlbXB0eScsICcxIGVtcHR5JyksCisgIChOVUxMLCBOVUxM LCBOVUxMKSwKKyAgKE5VTEwsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE5LTAxLTAxJyks ICdudWxsIGtleScpOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPIE5VTEwKKyAgU0VUIG5hbWUgPSAnTlVMTCB0byBOVUxM JzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8ICAgICBuYW1lICAgICAKKy0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwg ZW1wdHkgICAgICAgICAgICAgICAgICAgfCAxIGVtcHR5CisgWzEsMikgfCAoLCkgICAgICAgICAg ICAgICAgICAgICB8IE5VTEwgdG8gTlVMTAorIFsxLDIpIHwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAxIG51bGwKKyAgICAgICB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgTlVMTCB0byBO VUxMCisgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDUgcm93cykKKworRFJP UCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29m X3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSBO T1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICBDT05TVFJBSU5UIGZvcl9wb3J0aW9u X29mX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitJ TlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0CitWQUxVRVMKKygnWzEsMiknLCAnWzIwMTgt MDEtMDIsMjAxOC0wMi0wMyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAyLTAzLDIwMTgt MDMtMDMpJywgJ29uZScpLAorKCdbMSwyKScsICdbMjAxOC0wMy0wMywyMDE4LTA0LTA0KScsICdv bmUnKSwKKygnWzIsMyknLCAnWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSknLCAndHdvJyksCisoJ1sz LDQpJywgJ1syMDE4LTAxLTAxLCknLCAndGhyZWUnKSwKKygnWzQsNSknLCAnKCwyMDE4LTA0LTAx KScsICdmb3VyJyksCisoJ1s1LDYpJywgJygsKScsICdmaXZlJykKKzsKKy0tCistLSBVUERBVEUg dGVzdHMKKy0tCistLSBTZXR0aW5nIHdpdGggYSBtaXNzaW5nIGNvbHVtbiBmYWlscworVVBEQVRF IGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIGludmFsaWRfYXQgRlJPTSAnMjAx OC0wNi0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm9vJworV0hFUkUgaWQgPSAnWzUsNiknOwor RVJST1I6ICBjb2x1bW4gb3IgcGVyaW9kICJpbnZhbGlkX2F0IiBvZiByZWxhdGlvbiAiZm9yX3Bv cnRpb25fb2ZfdGVzdCIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMjogRk9SIFBPUlRJT04gT0YgaW52 YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCisgICAgICAgICAgICAgICAgICAgICAg IF4KKy0tIFNldHRpbmcgdGhlIHJhbmdlIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVz dAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gTlVMTAorU0VU IHZhbGlkX2F0ID0gJ1sxOTkwLTAxLTAxLDE5OTktMDEtMDEpJworV0hFUkUgaWQgPSAnWzUsNikn OworRVJST1I6ICBjYW4ndCBkaXJlY3RseSBhc3NpZ24gdG8gInZhbGlkX2F0IiBpbiBhIEZPUiBQ T1JUSU9OIE9GIHVwZGF0ZQorTElORSAzOiBTRVQgdmFsaWRfYXQgPSAnWzE5OTAtMDEtMDEsMTk5 OS0wMS0wMSknCisgICAgICAgICAgICBeCistLSBUaGUgd3JvbmcgdHlwZSBmYWlscworVVBEQVRF IGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gMSBUTyA0 CitTRVQgbmFtZSA9ICdub3BlJworV0hFUkUgaWQgPSAnWzMsNCknOworRVJST1I6ICBmdW5jdGlv biBwZ19jYXRhbG9nLmRhdGVyYW5nZShpbnRlZ2VyLCBpbnRlZ2VyKSBkb2VzIG5vdCBleGlzdAor TElORSAyOiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIDEgVE8gNAorICAgICAgICAgICAg ICAgICAgICAgICBeCitISU5UOiAgTm8gZnVuY3Rpb24gbWF0Y2hlcyB0aGUgZ2l2ZW4gbmFtZSBh bmQgYXJndW1lbnQgdHlwZXMuIFlvdSBtaWdodCBuZWVkIHRvIGFkZCBleHBsaWNpdCB0eXBlIGNh c3RzLgorLS0gU2V0dGluZyB3aXRoIHRpbWVzdGFtcHMgcmV2ZXJzZWQgZmFpbHMKK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2 LTAxJyBUTyAnMjAxOC0wMS0wMScKK1NFVCBuYW1lID0gJ3RocmVlXjEnCitXSEVSRSBpZCA9ICdb Myw0KSc7CitFUlJPUjogIHJhbmdlIGxvd2VyIGJvdW5kIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVx dWFsIHRvIHJhbmdlIHVwcGVyIGJvdW5kCistLSBTZXR0aW5nIHdpdGggYSBzdWJxdWVyeSBmYWls cworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gKFNFTEVDVCAnMjAxOC0wMS0wMScpIFRPICcyMDE4LTA2LTAxJworU0VUIG5hbWUgPSAnbm9w ZScKK1dIRVJFIGlkID0gJ1szLDQpJzsKK0VSUk9SOiAgY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBG T1IgUE9SVElPTiBPRiBleHByZXNzaW9uCitMSU5FIDI6IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gKFNFTEVDVCAnMjAxOC0wMS0wMScpIFRPICcyMDE4LS4uLgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFNldHRpbmcgd2l0aCBhIGNvbHVtbiBmYWlscwor VVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g bG93ZXIodmFsaWRfYXQpIFRPIE5VTEwKK1NFVCBuYW1lID0gJ25vcGUnCitXSEVSRSBpZCA9ICdb Myw0KSc7CitFUlJPUjogIGNhbm5vdCB1c2UgY29sdW1uIHJlZmVyZW5jZSBpbiBGT1IgUE9SVElP TiBPRiBleHByZXNzaW9uCitMSU5FIDI6IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gbG93 ZXIodmFsaWRfYXQpIFRPIE5VTEwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCistLSBTZXR0aW5nIHdpdGggdGltZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhpbmcK K1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTA0LTAxJyBUTyAnMjAxOC0wNC0wMScKK1NFVCBuYW1lID0gJ3RocmVlXjAnCitXSEVS RSBpZCA9ICdbMyw0KSc7CistLSBVcGRhdGluZyBhIGZpbml0ZS9vcGVuIHBvcnRpb24gd2l0aCBh IGZpbml0ZS9vcGVuIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPIE5VTEwKK1NFVCBuYW1lID0gJ3Ro cmVlXjEnCitXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBVcGRhdGluZyBhIGZpbml0ZS9vcGVuIHBv cnRpb24gd2l0aCBhbiBvcGVuL2Zpbml0ZSB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90 ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDMtMDEnCitT RVQgbmFtZSA9ICd0aHJlZV4yJworV0hFUkUgaWQgPSAnWzMsNCknOworLS0gVXBkYXRpbmcgYW4g b3Blbi9maW5pdGUgcG9ydGlvbiB3aXRoIGFuIG9wZW4vZmluaXRlIHRhcmdldAorVVBEQVRFIGZv cl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAn MjAxOC0wMi0wMScKK1NFVCBuYW1lID0gJ2ZvdXJeMScKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKy0t IFVwZGF0aW5nIGFuIG9wZW4vZmluaXRlIHBvcnRpb24gd2l0aCBhIGZpbml0ZS9vcGVuIHRhcmdl dAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTctMDEtMDEnIFRPIE5VTEwKK1NFVCBuYW1lID0gJ2ZvdXJeMicKK1dIRVJFIGlkID0g J1s0LDUpJzsKKy0tIFVwZGF0aW5nIGEgZmluaXRlL2Zpbml0ZSBwb3J0aW9uIHdpdGggYW4gZXhh Y3QgZml0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxNy0wMS0wMScgVE8gJzIwMTgtMDItMDEnCitTRVQgbmFtZSA9ICdmb3VyXjMn CitXSEVSRSBpZCA9ICdbNCw1KSc7CistLSBVcGRhdGluZyBhbiBlbmNsb3NlZCBzcGFuCitVUERB VEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxM IFRPIE5VTEwKK1NFVCBuYW1lID0gJ3R3b14yJworV0hFUkUgaWQgPSAnWzIsMyknOworLS0gVXBk YXRpbmcgYW4gb3Blbi9vcGVuIHBvcnRpb24gd2l0aCBhIGZpbml0ZS9maW5pdGUgdGFyZ2V0CitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOC0wMS0wMScgVE8gJzIwMTktMDEtMDEnCitTRVQgbmFtZSA9ICdmaXZlXjEnCitXSEVSRSBp ZCA9ICdbNSw2KSc7CistLSBVcGRhdGluZyBhbiBlbmNsb3NlZCBzcGFuIHdpdGggc2VwYXJhdGUg cHJvdHJ1ZGluZyBzcGFucworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTctMDEtMDEnIFRPICcyMDIwLTAxLTAxJworU0VUIG5hbWUg PSAnZml2ZV4yJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gVXBkYXRpbmcgbXVsdGlwbGUgZW5j bG9zZWQgc3BhbnMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorU0VUIG5hbWUgPSAnb25lXjInCitXSEVSRSBpZCA9 ICdbMSwyKSc7CistLSBXaXRoIGEgZGlyZWN0IHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlcmFuZ2UoJzIwMTgtMDMtMTAnLCAn MjAxOC0wMy0xNycpKQorU0VUIG5hbWUgPSAnb25lXjMnCitXSEVSRSBpZCA9ICdbMSwyKSc7Cist LSBVcGRhdGluZyB0aGUgbm9uLXJhbmdlIHBhcnQgb2YgdGhlIFBLOgorVVBEQVRFIGZvcl9wb3J0 aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDItMTUnIFRP IE5VTEwKK1NFVCBpZCA9ICdbNiw3KScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIFVQREFURSB3 aXRoIG5vIFdIRVJFIGNsYXVzZQorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMzAtMDEtMDEnIFRPIE5VTEwKK1NFVCBuYW1lID0gbmFt ZSB8fCAnKic7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAgIG5hbWUgICAK Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgWzEsMikgfCBb MjAxOC0wMS0wMiwyMDE4LTAyLTAzKSB8IG9uZV4yCisgWzEsMikgfCBbMjAxOC0wMi0wMywyMDE4 LTAyLTE1KSB8IG9uZV4yCisgWzIsMykgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSB8IHR3b14y CisgWzMsNCkgfCBbMjAxOC0wMS0wMSwyMDE4LTAzLTAxKSB8IHRocmVlXjIKKyBbMyw0KSB8IFsy MDE4LTAzLTAxLDIwMTgtMDYtMDEpIHwgdGhyZWUKKyBbMyw0KSB8IFsyMDE4LTA2LTAxLDIwMzAt MDEtMDEpIHwgdGhyZWVeMQorIFszLDQpIHwgWzIwMzAtMDEtMDEsKSAgICAgICAgICAgfCB0aHJl ZV4xKgorIFs0LDUpIHwgKCwyMDE3LTAxLTAxKSAgICAgICAgICAgfCBmb3VyXjEKKyBbNCw1KSB8 IFsyMDE3LTAxLTAxLDIwMTgtMDItMDEpIHwgZm91cl4zCisgWzQsNSkgfCBbMjAxOC0wMi0wMSwy MDE4LTA0LTAxKSB8IGZvdXJeMgorIFs1LDYpIHwgKCwyMDE3LTAxLTAxKSAgICAgICAgICAgfCBm aXZlCisgWzUsNikgfCBbMjAxNy0wMS0wMSwyMDE4LTAxLTAxKSB8IGZpdmVeMgorIFs1LDYpIHwg WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBmaXZlXjIKKyBbNSw2KSB8IFsyMDE5LTAxLTAxLDIw MjAtMDEtMDEpIHwgZml2ZV4yCisgWzUsNikgfCBbMjAyMC0wMS0wMSwyMDMwLTAxLTAxKSB8IGZp dmUKKyBbNSw2KSB8IFsyMDMwLTAxLTAxLCkgICAgICAgICAgIHwgZml2ZSoKKyBbNiw3KSB8IFsy MDE4LTAyLTE1LDIwMTgtMDMtMDMpIHwgb25lXjIKKyBbNiw3KSB8IFsyMDE4LTAzLTAzLDIwMTgt MDMtMTApIHwgb25lXjIKKyBbNiw3KSB8IFsyMDE4LTAzLTEwLDIwMTgtMDMtMTcpIHwgb25lXjMK KyBbNiw3KSB8IFsyMDE4LTAzLTE3LDIwMTgtMDQtMDQpIHwgb25lXjIKKygyMCByb3dzKQorCist LSBVcGRhdGluZyB3aXRoIGEgc2hpZnQvcmVkdWNlIGNvbmZsaWN0CistLSAocmVxdWlyZXMgYSB0 c3JhbmdlIGNvbHVtbikKK0NSRUFURSBVTkxPR0dFRCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0 MiAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdHNyYW5nZSwKKyAgbmFtZSB0ZXh0Cisp OworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdDIgKGlkLCB2YWxpZF9hdCwgbmFtZSkK KyAgVkFMVUVTICgnWzEsMiknLCAnWzIwMDAtMDEtMDEsMjAyMC0wMS0wMSknLCAnb25lJyk7Cist LSB1cGRhdGVzIFsyMDExLTAzLTAxIDAxOjAyOjAwLCAyMDEyLTAxLTAxKSAobm90ZSAyIG1pbnV0 ZXMpCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 CisgIEZST00gJzIwMTEtMDMtMDEnOjp0aW1lc3RhbXAgKyBJTlRFUlZBTCAnMTowMjowMycgSE9V UiBUTyBNSU5VVEUKKyAgVE8gJzIwMTItMDEtMDEnCitTRVQgbmFtZSA9ICdvbmVeMScKK1dIRVJF IGlkID0gJ1sxLDIpJzsKKy0tIFRPIGlzIHVzZWQgZm9yIHRoZSBib3VuZCBidXQgbm90IHRoZSBJ TlRFUlZBTDoKKy0tIHN5bnRheCBlcnJvcgorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdAorICBGUk9NICcyMDEzLTAzLTAxJzo6dGltZXN0YW1wICsg SU5URVJWQUwgJzE6MDI6MDMnIEhPVVIKKyAgVE8gJzIwMTQtMDEtMDEnCitTRVQgbmFtZSA9ICdv bmVeMicKK1dIRVJFIGlkID0gJ1sxLDIpJzsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5l YXIgIicyMDE0LTAxLTAxJyIKK0xJTkUgNDogICBUTyAnMjAxNC0wMS0wMScKKyAgICAgICAgICAg ICBeCistLSBhZGRpbmcgcGFyZW5zIGZpeGVzIGl0CistLSB1cGRhdGVzIFsyMDE1LTAzLTAxIDAx OjAwOjAwLCAyMDE2LTAxLTAxKSAobm8gbWludXRlcykKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90 ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQKKyAgRlJPTSAoJzIwMTUtMDMtMDEnOjp0aW1l c3RhbXAgKyBJTlRFUlZBTCAnMTowMjowMycgSE9VUikKKyAgVE8gJzIwMTYtMDEtMDEnCitTRVQg bmFtZSA9ICdvbmVeMycKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIEZPUiBQT1JUSU9OIE9GIGFs bG93cyBwYXJhbXMgaW4gc3FsOgorQ1JFQVRFIEZVTkNUSU9OIGZwb19zcWxfdXBkYXRlKHRhcmdl dF9mcm9tIGRhdGUsIHRhcmdldF90aWwgZGF0ZSkKK1JFVFVSTlMgVk9JRAorQVMgJCQKKyAgVVBE QVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgICAg RlJPTSAkMSBUTyAkMgorICBTRVQgbmFtZSA9IGNvbmNhdChuYW1lLCAnKicpCisgIFdIRVJFIGlk ID0gJ1sxLDIpJzsKKyQkCitMQU5HVUFHRSBzcWw7CitTRUxFQ1QgZnBvX3NxbF91cGRhdGUoJzIw MTgtMDEtMDEnLCAnMjAxOS0wMS0wMScpOworIGZwb19zcWxfdXBkYXRlIAorLS0tLS0tLS0tLS0t LS0tLQorIAorKDEgcm93KQorCistLSBGT1IgUE9SVElPTiBPRiBhbGxvd3MgcGFyYW1zIGluIHBs cGdzcWw6CitDUkVBVEUgRlVOQ1RJT04gZnBvX3BscGdzcWxfdXBkYXRlKHRhcmdldF9mcm9tIGRh dGUsIHRhcmdldF90aWwgZGF0ZSkKK1JFVFVSTlMgVk9JRAorQVMgJCQKK0JFR0lOCisgIFVQREFU RSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdAorICAgIEZS T00gJDEgVE8gJDIKKyAgU0VUIG5hbWUgPSBjb25jYXQobmFtZSwgJysnKQorICBXSEVSRSBpZCA9 ICdbMSwyKSc7CitFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBmcG9fcGxwZ3Nx bF91cGRhdGUoJzIwMTgtMDYtMDEnLCAnMjAxOS0wMS0wMScpOworIGZwb19wbHBnc3FsX3VwZGF0 ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gZm9y X3BvcnRpb25fb2ZfdGVzdDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAg ICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgIHwgbmFtZSAgCistLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0K KyBbMSwyKSB8IFsiMjAwMC0wMS0wMSAwMDowMDowMCIsIjIwMTEtMDMtMDEgMDE6MDI6MDAiKSB8 IG9uZQorIFsxLDIpIHwgWyIyMDExLTAzLTAxIDAxOjAyOjAwIiwiMjAxMi0wMS0wMSAwMDowMDow MCIpIHwgb25lXjEKKyBbMSwyKSB8IFsiMjAxMi0wMS0wMSAwMDowMDowMCIsIjIwMTUtMDMtMDEg MDE6MDA6MDAiKSB8IG9uZQorIFsxLDIpIHwgWyIyMDE1LTAzLTAxIDAxOjAwOjAwIiwiMjAxNi0w MS0wMSAwMDowMDowMCIpIHwgb25lXjMKKyBbMSwyKSB8IFsiMjAxNi0wMS0wMSAwMDowMDowMCIs IjIwMTgtMDEtMDEgMDA6MDA6MDAiKSB8IG9uZQorIFsxLDIpIHwgWyIyMDE4LTAxLTAxIDAwOjAw OjAwIiwiMjAxOC0wNi0wMSAwMDowMDowMCIpIHwgb25lKgorIFsxLDIpIHwgWyIyMDE4LTA2LTAx IDAwOjAwOjAwIiwiMjAxOS0wMS0wMSAwMDowMDowMCIpIHwgb25lKisKKyBbMSwyKSB8IFsiMjAx OS0wMS0wMSAwMDowMDowMCIsIjIwMjAtMDEtMDEgMDA6MDA6MDAiKSB8IG9uZQorKDggcm93cykK KworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKKy0tCistLSBERUxFVEUgdGVzdHMK Ky0tCistLSBEZWxldGluZyB3aXRoIGEgbWlzc2luZyBjb2x1bW4gZmFpbHMKK0RFTEVURSBGUk9N IGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIGludmFsaWRfYXQgRlJPTSAnMjAx OC0wNi0wMScgVE8gTlVMTAorV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICBjb2x1bW4gb3Ig cGVyaW9kICJpbnZhbGlkX2F0IiBvZiByZWxhdGlvbiAiZm9yX3BvcnRpb25fb2ZfdGVzdCIgZG9l cyBub3QgZXhpc3QKK0xJTkUgMjogRk9SIFBPUlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4 LTA2LTAxJyBUTyBOVUxMCisgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIERlbGV0aW5nIHdp dGggdGltZXN0YW1wcyByZXZlcnNlZCBmYWlscworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gJzIwMTgt MDEtMDEnCitXSEVSRSBpZCA9ICdbMyw0KSc7CitFUlJPUjogIHJhbmdlIGxvd2VyIGJvdW5kIG11 c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHJhbmdlIHVwcGVyIGJvdW5kCistLSBEZWxldGlu ZyB3aXRoIHRpbWVzdGFtcHMgZXF1YWwgZG9lcyBub3RoaW5nCitERUxFVEUgRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA0LTAxJyBU TyAnMjAxOC0wNC0wMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKy0tIERlbGV0aW5nIHdpdGggYSBj bG9zZWQvY2xvc2VkIHRhcmdldAorREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gJzIwMjAtMDYtMDEnCitX SEVSRSBpZCA9ICdbNSw2KSc7CistLSBEZWxldGluZyB3aXRoIGEgY2xvc2VkL29wZW4gdGFyZ2V0 CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTA0LTAxJyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBEZWxl dGluZyB3aXRoIGFuIG9wZW4vY2xvc2VkIHRhcmdldAorREVMRVRFIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAyLTA4 JworV0hFUkUgaWQgPSAnWzEsMiknOworLS0gRGVsZXRpbmcgd2l0aCBhbiBvcGVuL29wZW4gdGFy Z2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorV0hFUkUgaWQgPSAnWzYsNyknOworLS0gREVMRVRFIHdp dGggbm8gV0hFUkUgY2xhdXNlCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDI1LTAxLTAxJyBUTyBOVUxMOworU0VMRUNUICog RlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgIG5hbWUgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDE4LTAyLTA4LDIwMTgtMDItMTUp IHwgb25lXjIKKyBbMiwzKSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpIHwgdHdvXjIKKyBbMyw0 KSB8IFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEpIHwgdGhyZWVeMgorIFszLDQpIHwgWzIwMTgtMDMt MDEsMjAxOC0wNC0wMSkgfCB0aHJlZQorIFs0LDUpIHwgKCwyMDE3LTAxLTAxKSAgICAgICAgICAg fCBmb3VyXjEKKyBbNCw1KSB8IFsyMDE3LTAxLTAxLDIwMTgtMDItMDEpIHwgZm91cl4zCisgWzQs NSkgfCBbMjAxOC0wMi0wMSwyMDE4LTA0LTAxKSB8IGZvdXJeMgorIFs1LDYpIHwgKCwyMDE3LTAx LTAxKSAgICAgICAgICAgfCBmaXZlCisgWzUsNikgfCBbMjAxNy0wMS0wMSwyMDE4LTAxLTAxKSB8 IGZpdmVeMgorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOC0wNi0wMSkgfCBmaXZlXjIKKyBbNSw2 KSB8IFsyMDIwLTA2LTAxLDIwMjUtMDEtMDEpIHwgZml2ZQorKDExIHJvd3MpCisKKy0tIFVQREFU RSAuLi4gUkVUVVJOSU5HIHJldHVybnMgb25seSB0aGUgdXBkYXRlZCB2YWx1ZXMgKG5vdCB0aGUg aW5zZXJ0ZWQgc2lkZSB2YWx1ZXMpCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMi0wMScgVE8gJzIwMTgtMDItMTUnCitTRVQg bmFtZSA9ICd0aHJlZV4zJworV0hFUkUgaWQgPSAnWzMsNCknCitSRVRVUk5JTkcgKjsKKyAgaWQg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgIG5hbWUgICAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBbMyw0KSB8IFsyMDE4LTAyLTAxLDIwMTgtMDIt MTUpIHwgdGhyZWVeMworKDEgcm93KQorCistLSB0ZXN0IHRoYXQgd2UgcnVuIHRyaWdnZXJzIG9u IHRoZSBVUERBVEUvREVMRVRFZCByb3cgYW5kIHRoZSBJTlNFUlRlZCByb3dzCitDUkVBVEUgRlVO Q1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dlcigpCitSRVRVUk5TIHRyaWdnZXIKK0FTCiskJAor QkVHSU4KKyAgUkFJU0UgTk9USUNFICclICUgJSAlIG9mICUnLCBUR19XSEVOLCBUR19PUCwgVEdf TEVWRUwsIE5FVy52YWxpZF9hdCwgT0xELnZhbGlkX2F0OworICBJRiBUR19PUCA9ICdERUxFVEUn IFRIRU4KKyAgICBSRVRVUk4gT0xEOworICBFTFNFCisgICAgUkVUVVJOIE5FVzsKKyAgRU5EIElG OworRU5EOworJCQKK0xBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVFJJR0dFUiB0cmdfZm9yX3Bv cnRpb25fb2ZfYmVmb3JlCisgIEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBm b3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9OIGZv cl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlvbl9v Zl9hZnRlcgorICBBRlRFUiBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlv bl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9u X29mX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlvbl9vZl9iZWZvcmVf c3RtdAorICBCRUZPUkUgSU5TRVJUIE9SIFVQREFURSBPUiBERUxFVEUgT04gZm9yX3BvcnRpb25f b2ZfdGVzdAorICBGT1IgRUFDSCBTVEFURU1FTlQKKyAgRVhFQ1VURSBGVU5DVElPTiBmb3JfcG9y dGlvbl9vZl90cmlnZ2VyKCk7CitDUkVBVEUgVFJJR0dFUiB0cmdfZm9yX3BvcnRpb25fb2ZfYWZ0 ZXJfc3RtdAorICBBRlRFUiBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlv bl9vZl90ZXN0CisgIEZPUiBFQUNIIFNUQVRFTUVOVAorICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9w b3J0aW9uX29mX3RyaWdnZXIoKTsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDIxLTAxLTAxJyBUTyAnMjAyMi0wMS0wMScKK1NFVCBu YW1lID0gJ2ZpdmVeMycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK05PVElDRTogIEJFRk9SRSBVUERB VEUgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElDRTogIEJFRk9SRSBVUERBVEUgUk9X IFsyMDIxLTAxLTAxLDIwMjItMDEtMDEpIG9mIFsyMDIwLTA2LTAxLDIwMjUtMDEtMDEpCitOT1RJ Q0U6ICBCRUZPUkUgSU5TRVJUIFNUQVRFTUVOVCA8TlVMTD4gb2YgPE5VTEw+CitOT1RJQ0U6ICBC RUZPUkUgSU5TRVJUIFJPVyBbMjAyMC0wNi0wMSwyMDIxLTAxLTAxKSBvZiA8TlVMTD4KK05PVElD RTogIEFGVEVSIElOU0VSVCBST1cgWzIwMjAtMDYtMDEsMjAyMS0wMS0wMSkgb2YgPE5VTEw+CitO T1RJQ0U6ICBBRlRFUiBJTlNFUlQgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElDRTog IEJFRk9SRSBJTlNFUlQgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElDRTogIEJFRk9S RSBJTlNFUlQgUk9XIFsyMDIyLTAxLTAxLDIwMjUtMDEtMDEpIG9mIDxOVUxMPgorTk9USUNFOiAg QUZURVIgSU5TRVJUIFJPVyBbMjAyMi0wMS0wMSwyMDI1LTAxLTAxKSBvZiA8TlVMTD4KK05PVElD RTogIEFGVEVSIElOU0VSVCBTVEFURU1FTlQgPE5VTEw+IG9mIDxOVUxMPgorTk9USUNFOiAgQUZU RVIgVVBEQVRFIFJPVyBbMjAyMS0wMS0wMSwyMDIyLTAxLTAxKSBvZiBbMjAyMC0wNi0wMSwyMDI1 LTAxLTAxKQorTk9USUNFOiAgQUZURVIgVVBEQVRFIFNUQVRFTUVOVCA8TlVMTD4gb2YgPE5VTEw+ CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDIzLTAxLTAxJyBUTyAnMjAyNC0wMS0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsK K05PVElDRTogIEJFRk9SRSBERUxFVEUgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElD RTogIEJFRk9SRSBERUxFVEUgUk9XIDxOVUxMPiBvZiBbMjAyMi0wMS0wMSwyMDI1LTAxLTAxKQor Tk9USUNFOiAgQkVGT1JFIElOU0VSVCBTVEFURU1FTlQgPE5VTEw+IG9mIDxOVUxMPgorTk9USUNF OiAgQkVGT1JFIElOU0VSVCBST1cgWzIwMjItMDEtMDEsMjAyMy0wMS0wMSkgb2YgPE5VTEw+CitO T1RJQ0U6ICBBRlRFUiBJTlNFUlQgUk9XIFsyMDIyLTAxLTAxLDIwMjMtMDEtMDEpIG9mIDxOVUxM PgorTk9USUNFOiAgQUZURVIgSU5TRVJUIFNUQVRFTUVOVCA8TlVMTD4gb2YgPE5VTEw+CitOT1RJ Q0U6ICBCRUZPUkUgSU5TRVJUIFNUQVRFTUVOVCA8TlVMTD4gb2YgPE5VTEw+CitOT1RJQ0U6ICBC RUZPUkUgSU5TRVJUIFJPVyBbMjAyNC0wMS0wMSwyMDI1LTAxLTAxKSBvZiA8TlVMTD4KK05PVElD RTogIEFGVEVSIElOU0VSVCBST1cgWzIwMjQtMDEtMDEsMjAyNS0wMS0wMSkgb2YgPE5VTEw+CitO T1RJQ0U6ICBBRlRFUiBJTlNFUlQgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElDRTog IEFGVEVSIERFTEVURSBST1cgPE5VTEw+IG9mIFsyMDIyLTAxLTAxLDIwMjUtMDEtMDEpCitOT1RJ Q0U6ICBBRlRFUiBERUxFVEUgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK1NFTEVDVCAqIEZS T00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBuYW1lICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tCisgWzEsMikgfCBbMjAxOC0wMi0wOCwyMDE4LTAyLTE1KSB8 IG9uZV4yCisgWzIsMykgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSB8IHR3b14yCisgWzMsNCkg fCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSB8IHRocmVlXjIKKyBbMyw0KSB8IFsyMDE4LTAyLTAx LDIwMTgtMDItMTUpIHwgdGhyZWVeMworIFszLDQpIHwgWzIwMTgtMDItMTUsMjAxOC0wMy0wMSkg fCB0aHJlZV4yCisgWzMsNCkgfCBbMjAxOC0wMy0wMSwyMDE4LTA0LTAxKSB8IHRocmVlCisgWzQs NSkgfCAoLDIwMTctMDEtMDEpICAgICAgICAgICB8IGZvdXJeMQorIFs0LDUpIHwgWzIwMTctMDEt MDEsMjAxOC0wMi0wMSkgfCBmb3VyXjMKKyBbNCw1KSB8IFsyMDE4LTAyLTAxLDIwMTgtMDQtMDEp IHwgZm91cl4yCisgWzUsNikgfCAoLDIwMTctMDEtMDEpICAgICAgICAgICB8IGZpdmUKKyBbNSw2 KSB8IFsyMDE3LTAxLTAxLDIwMTgtMDEtMDEpIHwgZml2ZV4yCisgWzUsNikgfCBbMjAxOC0wMS0w MSwyMDE4LTA2LTAxKSB8IGZpdmVeMgorIFs1LDYpIHwgWzIwMjAtMDYtMDEsMjAyMS0wMS0wMSkg fCBmaXZlCisgWzUsNikgfCBbMjAyMS0wMS0wMSwyMDIyLTAxLTAxKSB8IGZpdmVeMworIFs1LDYp IHwgWzIwMjItMDEtMDEsMjAyMy0wMS0wMSkgfCBmaXZlCisgWzUsNikgfCBbMjAyNC0wMS0wMSwy MDI1LTAxLTAxKSB8IGZpdmUKKygxNiByb3dzKQorCitEUk9QIEZVTkNUSU9OIGZvcl9wb3J0aW9u X29mX3RyaWdnZXIgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gNCBvdGhlciBv YmplY3RzCitERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRyaWdnZXIgdHJnX2Zvcl9wb3J0aW9u X29mX2JlZm9yZSBvbiB0YWJsZSBmb3JfcG9ydGlvbl9vZl90ZXN0Citkcm9wIGNhc2NhZGVzIHRv IHRyaWdnZXIgdHJnX2Zvcl9wb3J0aW9uX29mX2FmdGVyIG9uIHRhYmxlIGZvcl9wb3J0aW9uX29m X3Rlc3QKK2Ryb3AgY2FzY2FkZXMgdG8gdHJpZ2dlciB0cmdfZm9yX3BvcnRpb25fb2ZfYmVmb3Jl X3N0bXQgb24gdGFibGUgZm9yX3BvcnRpb25fb2ZfdGVzdAorZHJvcCBjYXNjYWRlcyB0byB0cmln Z2VyIHRyZ19mb3JfcG9ydGlvbl9vZl9hZnRlcl9zdG10IG9uIHRhYmxlIGZvcl9wb3J0aW9uX29m X3Rlc3QKKy0tIFRyaWdnZXJzIHdpdGggYSBjdXN0b20gdHJhbnNpdGlvbiB0YWJsZSBuYW1lOgor RFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9u X29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFt ZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMgKCdbMSwy KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScsICdvbmUnKTsKK0NSRUFURSBGVU5DVElPTiBk dW1wX3RyaWdnZXIoKQorUkVUVVJOUyBUUklHR0VSIExBTkdVQUdFIHBscGdzcWwgQVMKKyQkCitC RUdJTgorICBJRiBUR19PUCA9ICdJTlNFUlQnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJyU6ICUg JSwgTkVXIHRhYmxlID0gJScsCisgICAgICBUR19OQU1FLCBUR19PUCwgVEdfTEVWRUwsIChTRUxF Q1Qgc3RyaW5nX2FnZyhuZXdfdGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00gbmV3 X3RhYmxlKTsKKyAgRUxTSUYgVEdfT1AgPSAnVVBEQVRFJyBUSEVOCisgICAgUkFJU0UgTk9USUNF ICclOiAlICUsIE9MRCB0YWJsZSA9ICUsIE5FVyB0YWJsZSA9ICUnLAorICAgICAgVEdfTkFNRSwg VEdfT1AsIFRHX0xFVkVMLAorICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4 dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBvbGRfdGFibGUpLAorICAgICAgKFNFTEVDVCBzdHJp bmdfYWdnKG5ld190YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUp OworICBFTFNJRiBUR19PUCA9ICdERUxFVEUnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJyU6ICUg JSwgT0xEIHRhYmxlID0gJScsCisgICAgICBUR19OQU1FLCBUR19PUCwgVEdfTEVWRUwsIChTRUxF Q1Qgc3RyaW5nX2FnZyhvbGRfdGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00gb2xk X3RhYmxlKTsKKyAgRU5EIElGOworICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkOworQ1JFQVRFIFRS SUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZworQUZURVIgSU5TRVJUIE9OIGZv cl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZP UiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKK0NSRUFURSBUUklH R0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWdfc3RtdAorQUZURVIgSU5TRVJUIE9O IGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUK K0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKK0NS RUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWcKK0FGVEVSIFVQREFU RSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lORyBPTEQgVEFCTEUgQVMgb2xkX3Rh YmxlIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVS RSBkdW1wX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBk YXRlX3RyaWdfc3RtdAorQUZURVIgVVBEQVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVS RU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUgTkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9S IEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworQ1JFQVRF IFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZworQUZURVIgREVMRVRFIE9O IGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUK K0ZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKK0NSRUFURSBU UklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfZGVsZXRlX3RyaWdfc3RtdAorQUZURVIgREVMRVRF IE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFi bGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsK K0JFR0lOOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gJzIwMTktMDEtMDEnCisgIFNFVCBuYW1lID0gJzIw MTgtMDEtMTVfdG9fMjAxOS0wMS0wMSc7CitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2lu c2VydF90cmlnOiBJTlNFUlQgUk9XLCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEs MjAxOC0wMS0xNSkiLG9uZSkKK05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3Ry aWdfc3RtdDogSU5TRVJUIFNUQVRFTUVOVCwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAx LTAxLDIwMTgtMDEtMTUpIixvbmUpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2Vy dF90cmlnOiBJTlNFUlQgUk9XLCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTktMDEtMDEsMjAy MC0wMS0wMSkiLG9uZSkKK05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWdf c3RtdDogSU5TRVJUIFNUQVRFTUVOVCwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE5LTAxLTAx LDIwMjAtMDEtMDEpIixvbmUpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90 cmlnOiBVUERBVEUgUk9XLCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAyMC0w MS0wMSkiLG9uZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0xNSwyMDE5LTAxLTAx KSIsMjAxOC0wMS0xNV90b18yMDE5LTAxLTAxKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVz dF91cGRhdGVfdHJpZ19zdG10OiBVUERBVEUgU1RBVEVNRU5ULCBPTEQgdGFibGUgPSAoIlsxLDIp IiwiWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkiLG9uZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJb MjAxOC0wMS0xNSwyMDE5LTAxLTAxKSIsMjAxOC0wMS0xNV90b18yMDE5LTAxLTAxKQorUk9MTEJB Q0s7CitCRUdJTjsKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAxLTIxJzsKK05PVElDRTogIGZvcl9w b3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBST1csIE5FVyB0YWJsZSA9ICgiWzEs MikiLCJbMjAxOC0wMS0yMSwyMDIwLTAxLTAxKSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25f b2ZfdGVzdF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQgU1RBVEVNRU5ULCBORVcgdGFibGUgPSAo IlsxLDIpIiwiWzIwMTgtMDEtMjEsMjAyMC0wMS0wMSkiLG9uZSkKK05PVElDRTogIGZvcl9wb3J0 aW9uX29mX3Rlc3RfZGVsZXRlX3RyaWc6IERFTEVURSBST1csIE9MRCB0YWJsZSA9ICgiWzEsMiki LCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2Zf dGVzdF9kZWxldGVfdHJpZ19zdG10OiBERUxFVEUgU1RBVEVNRU5ULCBPTEQgdGFibGUgPSAoIlsx LDIpIiwiWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkiLG9uZSkKK1JPTExCQUNLOworQkVHSU47CitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N IE5VTEwgVE8gJzIwMTgtMDEtMDInCisgIFNFVCBuYW1lID0gJ05VTExfdG9fMjAxOC0wMS0wMSc7 CitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnOiBJTlNFUlQgUk9XLCBO RVcgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDIsMjAyMC0wMS0wMSkiLG9uZSkKK05PVElD RTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWdfc3RtdDogSU5TRVJUIFNUQVRFTUVO VCwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAyLDIwMjAtMDEtMDEpIixvbmUpCitO T1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnOiBVUERBVEUgUk9XLCBPTEQg dGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkiLG9uZSksIE5FVyB0YWJs ZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKSIsTlVMTF90b18yMDE4LTAxLTAx KQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZ19zdG10OiBVUERBVEUg U1RBVEVNRU5ULCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSki LG9uZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKSIsTlVM TF90b18yMDE4LTAxLTAxKQorUk9MTEJBQ0s7CistLSBUZXN0IHdpdGggbXVsdGlyYW5nZXMKK0NS RUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MiAoCisgIGlkIGludDRyYW5nZSBOT1QgTlVM TCwKKyAgdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UgTk9UIE5VTEwsCisgIG5hbWUgdGV4dCBOT1Qg TlVMTCwKKyAgQ09OU1RSQUlOVCBmb3JfcG9ydGlvbl9vZl90ZXN0Ml9wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRp b25fb2ZfdGVzdDIKK1ZBTFVFUworKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMicsICcyMDE4LTAyLTAzKScpLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDQnLCAnMjAx OC0wMy0wMycpKSwgJ29uZScpLAorKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMy0wMycsICcyMDE4LTA0LTA0KScpKSwgJ29uZScpLAorKCdbMiwzKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTA1LTAxKScpKSwgJ3R3bycpLAor KCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIG51bGwpKSwg J3RocmVlJyk7Cis7CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTAnLCAnMjAxOC0w Mi0xMCcpLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0wNS0wMScpKSkKK1NFVCBuYW1l ID0gJ29uZV4xJworV0hFUkUgaWQgPSAnWzEsMiknOworREVMRVRFIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScpLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAn MjAxOC0wMy0xNScpKSkKK1dIRVJFIGlkID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00gZm9yX3Bv cnRpb25fb2ZfdGVzdDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIFsx LDIpIHwge1syMDE4LTAxLTAyLDIwMTgtMDEtMTApLFsyMDE4LTAyLTEwLDIwMTgtMDMtMDMpfSAg ICAgICAgICAgICAgICAgICAgICAgICB8IG9uZQorIFsxLDIpIHwge1syMDE4LTAxLTEwLDIwMTgt MDItMDMpLFsyMDE4LTAyLTA0LDIwMTgtMDItMTApfSAgICAgICAgICAgICAgICAgICAgICAgICB8 IG9uZV4xCisgWzEsMikgfCB7WzIwMTgtMDMtMDMsMjAxOC0wMy0wNSl9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb25lCisgWzEsMikgfCB7WzIwMTgt MDMtMDUsMjAxOC0wNC0wNCl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgb25lXjEKKyBbMiwzKSB8IHtbMjAxOC0wMS0wMSwyMDE4LTAxLTE1KSxbMjAx OC0wMi0xNSwyMDE4LTAzLTAxKSxbMjAxOC0wMy0xNSwyMDE4LTA1LTAxKX0gfCB0d28KKyBbMyw0 KSB8IHtbMjAxOC0wMS0wMSwpfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCB0aHJlZQorKDYgcm93cykKKworRFJPUCBUQUJMRSBmb3Jf cG9ydGlvbl9vZl90ZXN0MjsKKy0tIFRlc3Qgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlCitDUkVB VEUgVFlQRSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOworQ1JFQVRFIFRBQkxF IGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxp ZF9hdCBteWRhdGVyYW5nZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICBDT05T VFJBSU5UIGZvcl9wb3J0aW9uX29mX3Rlc3QyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0Mgor VkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJywgJ29uZScpLAorKCdb MSwyKScsICdbMjAxOC0wMi0wMywyMDE4LTAzLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIw MTgtMDMtMDMsMjAxOC0wNC0wNCknLCAnb25lJyksCisoJ1syLDMpJywgJ1syMDE4LTAxLTAxLDIw MTgtMDUtMDEpJywgJ3R3bycpLAorKCdbMyw0KScsICdbMjAxOC0wMS0wMSwpJywgJ3RocmVlJyk7 Cis7CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDEtMTAnIFRPICcyMDE4LTAyLTEwJworU0VUIG5hbWUgPSAnb25lXjEnCitX SEVSRSBpZCA9ICdbMSwyKSc7CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gJzIwMTgtMDItMTUnCitX SEVSRSBpZCA9ICdbMiwzKSc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg bmFtZSAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIp IHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0xMCkgfCBvbmUKKyBbMSwyKSB8IFsyMDE4LTAxLTEwLDIw MTgtMDItMDMpIHwgb25lXjEKKyBbMSwyKSB8IFsyMDE4LTAyLTAzLDIwMTgtMDItMTApIHwgb25l XjEKKyBbMSwyKSB8IFsyMDE4LTAyLTEwLDIwMTgtMDMtMDMpIHwgb25lCisgWzEsMikgfCBbMjAx OC0wMy0wMywyMDE4LTA0LTA0KSB8IG9uZQorIFsyLDMpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0x NSkgfCB0d28KKyBbMiwzKSB8IFsyMDE4LTAyLTE1LDIwMTgtMDUtMDEpIHwgdHdvCisgWzMsNCkg fCBbMjAxOC0wMS0wMSwpICAgICAgICAgICB8IHRocmVlCisoOCByb3dzKQorCitEUk9QIFRBQkxF IGZvcl9wb3J0aW9uX29mX3Rlc3QyOworRFJPUCBUWVBFIG15ZGF0ZXJhbmdlOworLS0gVGVzdCBG T1IgUE9SVElPTiBPRiBhZ2FpbnN0IGEgcGFydGl0aW9uZWQgdGFibGUuCistLSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF8xIGhhcyB0aGUgc2FtZSBhdHRudW1zIGFzIHRoZSByb290CistLSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF8zIGhhcyB0aGUgZGlmZmVyZW50IGF0dG51bXMgZnJvbSB0aGUgcm9vdAor LS0gdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBoYXMgdGhlIGRpZmZlcmVudCBhdHRudW1zIHRvbywg YnV0IHJldmVyc2VkCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgKAorICBpZCBp bnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0LAorICBDT05TVFJB SU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF8xIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFM VUVTIElOICgnWzEsMiknLCAnWzIsMyknKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF8zIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgn WzMsNCknLCAnWzQsNSknKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IFBB UlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzUsNiknLCAn WzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIERFVEFDSCBQQVJUSVRJ T04gdGVtcG9yYWxfcGFydGl0aW9uZWRfMzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkXzMgRFJPUCBDT0xVTU4gaWQsIERST1AgQ09MVU1OIHZhbGlkX2F0OworQUxURVIgVEFCTEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfMyBBREQgQ09MVU1OIGlkIGludDRyYW5nZSBOT1QgTlVMTCwg QUREIENPTFVNTiB2YWxpZF9hdCBkYXRlcmFuZ2UgTk9UIE5VTEw7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBBVFRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMg Rk9SIFZBTFVFUyBJTiAoJ1szLDQpJywgJ1s0LDUpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZCBERVRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzU7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IERST1AgQ09MVU1OIGlkLCBEUk9QIENPTFVN TiB2YWxpZF9hdDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgQUREIENPTFVN TiB2YWxpZF9hdCBkYXRlcmFuZ2UgTk9UIE5VTEwsIEFERCBDT0xVTU4gaWQgaW50NHJhbmdlIE5P VCBOVUxMOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJVElP TiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IEZPUiBWQUxVRVMgSU4gKCdbNSw2KScsICdbNiw3KScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgVkFMVUVTCisgICgnWzEsMiknLCBk YXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnb25lJyksCisgICgnWzMsNCkn LCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKSwKKyAgKCdb NSw2KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdmaXZlJyk7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkOworICBpZCAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IG9uZQorIFszLDQpIHwg WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkgfCB0aHJlZQorIFs1LDYpIHwgWzIwMDAtMDEtMDEsMjAx MC0wMS0wMSkgfCBmaXZlCisoMyByb3dzKQorCistLSBVcGRhdGUgd2l0aG91dCBtb3Zpbmcgd2l0 aGluIHBhcnRpdGlvbiAxCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMy0wMScgVE8gJzIwMDAtMDQtMDEnCisgIFNFVCBuYW1l ID0gJ29uZV4xJworICBXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBVcGRhdGUgd2l0aG91dCBtb3Zp bmcgd2l0aGluIHBhcnRpdGlvbiAzCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMy0wMScgVE8gJzIwMDAtMDQtMDEnCisgIFNF VCBuYW1lID0gJ3RocmVlXjEnCisgIFdIRVJFIGlkID0gJ1szLDQpJzsKKy0tIFVwZGF0ZSB3aXRo b3V0IG1vdmluZyB3aXRoaW4gcGFydGl0aW9uIDUKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAzLTAxJyBUTyAnMjAwMC0wNC0w MScKKyAgU0VUIG5hbWUgPSAnZml2ZV4xJworICBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBNb3Zl IGZyb20gcGFydGl0aW9uIDEgdG8gcGFydGl0aW9uIDMKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA2LTAxJyBUTyAnMjAwMC0w Ny0wMScKKyAgU0VUIG5hbWUgPSAnb25lXjInLAorICAgICAgaWQgPSAnWzQsNSknCisgIFdIRVJF IGlkID0gJ1sxLDIpJzsKKy0tIE1vdmUgZnJvbSBwYXJ0aXRpb24gMyB0byBwYXJ0aXRpb24gMQor VVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9ICd0aHJlZV4yJywKKyAg ICAgIGlkID0gJ1syLDMpJworICBXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBNb3ZlIGZyb20gcGFy dGl0aW9uIDUgdG8gcGFydGl0aW9uIDMKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA2LTAxJyBUTyAnMjAwMC0wNy0wMScKKyAg U0VUIG5hbWUgPSAnZml2ZV4yJywKKyAgICAgIGlkID0gJ1szLDQpJworICBXSEVSRSBpZCA9ICdb NSw2KSc7CistLSBVcGRhdGUgYWxsIHBhcnRpdGlvbnMgYXQgb25jZSAoZWFjaCB3aXRoIGxlZnRv dmVycykKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAgbmFtZSAgIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAt MDEtMDEsMjAwMC0wMy0wMSkgfCBvbmUKKyBbMSwyKSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEp IHwgb25lXjEKKyBbMSwyKSB8IFsyMDAwLTA0LTAxLDIwMDAtMDYtMDEpIHwgb25lCisgWzEsMikg fCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAxKSB8IG9uZQorIFsyLDMpIHwgWzIwMDAtMDYtMDEsMjAw MC0wNy0wMSkgfCB0aHJlZV4yCisgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDAwLTAzLTAxKSB8IHRo cmVlCisgWzMsNCkgfCBbMjAwMC0wMy0wMSwyMDAwLTA0LTAxKSB8IHRocmVlXjEKKyBbMyw0KSB8 IFsyMDAwLTA0LTAxLDIwMDAtMDYtMDEpIHwgdGhyZWUKKyBbMyw0KSB8IFsyMDAwLTA2LTAxLDIw MDAtMDctMDEpIHwgZml2ZV4yCisgWzMsNCkgfCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAxKSB8IHRo cmVlCisgWzQsNSkgfCBbMjAwMC0wNi0wMSwyMDAwLTA3LTAxKSB8IG9uZV4yCisgWzUsNikgfCBb MjAwMC0wMS0wMSwyMDAwLTAzLTAxKSB8IGZpdmUKKyBbNSw2KSB8IFsyMDAwLTAzLTAxLDIwMDAt MDQtMDEpIHwgZml2ZV4xCisgWzUsNikgfCBbMjAwMC0wNC0wMSwyMDAwLTA2LTAxKSB8IGZpdmUK KyBbNSw2KSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwgZml2ZQorKDE1IHJvd3MpCisKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfMSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBuYW1lICAgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwy MDAwLTAzLTAxKSB8IG9uZQorIFsxLDIpIHwgWzIwMDAtMDMtMDEsMjAwMC0wNC0wMSkgfCBvbmVe MQorIFsxLDIpIHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkgfCBvbmUKKyBbMSwyKSB8IFsyMDAw LTA3LTAxLDIwMTAtMDEtMDEpIHwgb25lCisgWzIsMykgfCBbMjAwMC0wNi0wMSwyMDAwLTA3LTAx KSB8IHRocmVlXjIKKyg1IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIG5hbWUgICB8ICBpZCAgIHwgICAgICAgIHZh bGlkX2F0ICAgICAgICAgCistLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgdGhyZWUgICB8IFszLDQpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMy0wMSkKKyB0aHJlZV4x IHwgWzMsNCkgfCBbMjAwMC0wMy0wMSwyMDAwLTA0LTAxKQorIHRocmVlICAgfCBbMyw0KSB8IFsy MDAwLTA0LTAxLDIwMDAtMDYtMDEpCisgZml2ZV4yICB8IFszLDQpIHwgWzIwMDAtMDYtMDEsMjAw MC0wNy0wMSkKKyB0aHJlZSAgIHwgWzMsNCkgfCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAxKQorIG9u ZV4yICAgfCBbNCw1KSB8IFsyMDAwLTA2LTAxLDIwMDAtMDctMDEpCisoNiByb3dzKQorCitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICBuYW1lICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgIGlkICAgCistLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBmaXZlICAgfCBbMjAwMC0wMS0wMSwyMDAw LTAzLTAxKSB8IFs1LDYpCisgZml2ZV4xIHwgWzIwMDAtMDMtMDEsMjAwMC0wNC0wMSkgfCBbNSw2 KQorIGZpdmUgICB8IFsyMDAwLTA0LTAxLDIwMDAtMDYtMDEpIHwgWzUsNikKKyBmaXZlICAgfCBb MjAwMC0wNy0wMSwyMDEwLTAxLTAxKSB8IFs1LDYpCisoNCByb3dzKQorCitEUk9QIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkOworUkVTRVQgZGF0ZXN0eWxlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggMzRhMzJiZDExZDIuLjcwNDhlYTBhNTllIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTE5NDgsNiArMTk0OCw3 IEBAIFdIRVJFIGExLmFtb3BmYW1pbHkgPSAwIE9SIGExLmFtb3BsZWZ0dHlwZSA9IDAgT1IgYTEu YW1vcHJpZ2h0dHlwZSA9IDAKIFNFTEVDVCBhMS5hbW9wZmFtaWx5LCBhMS5hbW9wc3RyYXRlZ3kK IEZST00gcGdfYW1vcCBhcyBhMQogV0hFUkUgTk9UICgoYTEuYW1vcHB1cnBvc2UgPSAncycgQU5E IGExLmFtb3Bzb3J0ZmFtaWx5ID0gMCkgT1IKKyAgICAgICAgICAgKGExLmFtb3BwdXJwb3NlID0g J3AnIEFORCBhMS5hbW9wc29ydGZhbWlseSA9IDApIE9SCiAgICAgICAgICAgIChhMS5hbW9wcHVy cG9zZSA9ICdvJyBBTkQgYTEuYW1vcHNvcnRmYW1pbHkgPD4gMCkpOwogIGFtb3BmYW1pbHkgfCBh bW9wc3RyYXRlZ3kgCiAtLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0CmluZGV4IDFkOTAzYmFiZDMzLi5iYTg3NjFjYzlmOCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2aWxlZ2VzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0CkBAIC0xMDM4LDYgKzEw MzgsMjQgQEAgRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImVy cnRzdF9wYXJ0XzIiIHZpb2xhdGVzIG5vdC1udWxsIGMKIERFVEFJTDogIEZhaWxpbmcgcm93IGNv bnRhaW5zIChhLCBiLCBjKSA9IChhYWFhLCBudWxsLCBjY2MpLgogU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjE7CiBEUk9QIFRBQkxFIGVycnRzdDsKKy0tIHRlc3Qg Y29sdW1uLWxldmVsIHByaXZpbGVnZXMgb24gdGhlIHJhbmdlL1BFUklPRCB1c2VkIGluIEZPUiBQ T1JUSU9OIE9GCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsK K0NSRUFURSBUQUJMRSB0MSAoCisgIGMxIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdHNyYW5nZSwK KwlDT05TVFJBSU5UIHQxcGsgUFJJTUFSWSBLRVkgKGMxLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKTsKK0dSQU5UIFNFTEVDVCBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjI7CitHUkFO VCBTRUxFQ1QgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIzOworR1JBTlQgVVBEQVRFIChjMSkg T04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIyOworR1JBTlQgVVBEQVRFIChjMSwgdmFsaWRfYXQp IE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19wcml2X3VzZXIyOworVVBEQVRFIHQxIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMDAtMDEtMDEnIFRPICcyMDAxLTAxLTAxJyBTRVQgYzEgPSAnWzIsMyknOworRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgdDEKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19wcml2X3VzZXIzOworVVBEQVRFIHQxIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMDAtMDEtMDEnIFRPICcyMDAxLTAxLTAxJyBTRVQgYzEgPSAnWzIsMyknOworU0VU IFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjE7CitEUk9QIFRBQkxFIHQx OwogLS0gdGVzdCBjb2x1bW4tbGV2ZWwgcHJpdmlsZWdlcyB3aGVuIGludm9sdmVkIHdpdGggREVM RVRFCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIEFMVEVS IFRBQkxFIGF0ZXN0NiBBREQgQ09MVU1OIHRocmVlIGludGVnZXI7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQKaW5kZXggODc4NjA1OGVkMGMuLjUzOTAz NzA1NDkzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92 aWV3cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mu b3V0CkBAIC0zNjY2LDYgKzM2NjYsMzggQEAgc2VsZWN0ICogZnJvbSB1dl9pb2N1X3RhYjsKIAog ZHJvcCB2aWV3IHV2X2lvY3VfdmlldzsKIGRyb3AgdGFibGUgdXZfaW9jdV90YWI7CistLSBDaGVj ayBVUERBVEUgRk9SIFBPUlRJT04gT0Ygd29ya3MgY29ycmVjdGx5CitjcmVhdGUgdGFibGUgdXZf ZnBvX3RhYiAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCB0c3JhbmdlLCBiIGZsb2F0LAorICAgIGNv bnN0cmFpbnQgcGtfdXZfZnBvX3RhYiBwcmltYXJ5IGtleSAoaWQsIHZhbGlkX2F0IHdpdGhvdXQg b3ZlcmxhcHMpKTsKK2luc2VydCBpbnRvIHV2X2Zwb190YWIgdmFsdWVzICgnWzEsMV0nLCAnWzIw MjAtMDEtMDEsIDIwMzAtMDEtMDEpJywgMCk7CitjcmVhdGUgdmlldyB1dl9mcG9fdmlldyBhcwor ICAgIHNlbGVjdCBiLCBiKzEgYXMgYywgdmFsaWRfYXQsIGlkLCAnMi4wJzo6dGV4dCBhcyB0d28g ZnJvbSB1dl9mcG9fdGFiOworaW5zZXJ0IGludG8gdXZfZnBvX3ZpZXcgKGlkLCB2YWxpZF9hdCwg YikgdmFsdWVzICgnWzEsMV0nLCAnWzIwMTAtMDEtMDEsIDIwMjAtMDEtMDEpJywgMSk7CitzZWxl Y3QgKiBmcm9tIHV2X2Zwb192aWV3OworIGIgfCBjIHwgICAgICAgICAgICAgICAgICAgICAgICB2 YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICAgICB8ICBpZCAgIHwgdHdvIAorLS0tKy0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLSstLS0tLQorIDAgfCAxIHwgWyJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAiLCJUdWUg SmFuIDAxIDAwOjAwOjAwIDIwMzAiKSB8IFsxLDIpIHwgMi4wCisgMSB8IDIgfCBbIkZyaSBKYW4g MDEgMDA6MDA6MDAgMjAxMCIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyMCIpIHwgWzEsMikgfCAy LjAKKygyIHJvd3MpCisKK3VwZGF0ZSB1dl9mcG9fdmlldyBmb3IgcG9ydGlvbiBvZiB2YWxpZF9h dCBmcm9tICcyMDE1LTAxLTAxJyB0byAnMjAyMC0wMS0wMScgc2V0IGIgPSAyIHdoZXJlIGlkID0g J1sxLDFdJzsKK3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7CisgYiB8IGMgfCAgICAgICAgICAg ICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGlkICAgfCB0 d28gCistLS0rLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tCisgMCB8IDEgfCBbIldlZCBKYW4gMDEgMDA6MDA6 MDAgMjAyMCIsIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAzMCIpIHwgWzEsMikgfCAyLjAKKyAyIHwg MyB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1IiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDIw IikgfCBbMSwyKSB8IDIuMAorIDEgfCAyIHwgWyJGcmkgSmFuIDAxIDAwOjAwOjAwIDIwMTAiLCJU aHUgSmFuIDAxIDAwOjAwOjAwIDIwMTUiKSB8IFsxLDIpIHwgMi4wCisoMyByb3dzKQorCitkZWxl dGUgZnJvbSB1dl9mcG9fdmlldyBmb3IgcG9ydGlvbiBvZiB2YWxpZF9hdCBmcm9tICcyMDE3LTAx LTAxJyB0byAnMjAyMi0wMS0wMScgd2hlcmUgaWQgPSAnWzEsMV0nOworc2VsZWN0ICogZnJvbSB1 dl9mcG9fdmlldzsKKyBiIHwgYyB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgaWQgICB8IHR3byAKKy0tLSstLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0t LS0KKyAxIHwgMiB8IFsiRnJpIEphbiAwMSAwMDowMDowMCAyMDEwIiwiVGh1IEphbiAwMSAwMDow MDowMCAyMDE1IikgfCBbMSwyKSB8IDIuMAorIDAgfCAxIHwgWyJTYXQgSmFuIDAxIDAwOjAwOjAw IDIwMjIiLCJUdWUgSmFuIDAxIDAwOjAwOjAwIDIwMzAiKSB8IFsxLDIpIHwgMi4wCisgMiB8IDMg fCBbIlRodSBKYW4gMDEgMDA6MDA6MDAgMjAxNSIsIlN1biBKYW4gMDEgMDA6MDA6MDAgMjAxNyIp IHwgWzEsMikgfCAyLjAKKygzIHJvd3MpCisKIC0tIFRlc3Qgd2hvbGUtcm93IHJlZmVyZW5jZXMg dG8gdGhlIHZpZXcKIGNyZWF0ZSB0YWJsZSB1dl9pb2N1X3RhYiAoYSBpbnQgdW5pcXVlLCBiIHRl eHQpOwogY3JlYXRlIHZpZXcgdXZfaW9jdV92aWV3IGFzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRleCA4NjE3MWM5OTRjOS4uZWNjYWY1YzBm MDkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFw cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91 dApAQCAtODg5LDYgKzg4OSwzNiBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9h dCwgaWQyLCBuYW1lKQogICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAt MDEtMDEnKSwgJ1s3LDgpJywgJ2ZvbycpLAogICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAx LTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s5LDEwKScsICdiYXInKQogOworVVBEQVRFIHRlbXBvcmFs MyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA1LTAxJyBUTyAnMjAwMC0wNy0w MScKKyAgU0VUIG5hbWUgPSBuYW1lIHx8ICcxJzsKK1VQREFURSB0ZW1wb3JhbDMgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wNC0wMScgVE8gJzIwMDAtMDYtMDEnCisgIFNFVCBu YW1lID0gbmFtZSB8fCAnMicKKyAgV0hFUkUgaWQgPSAnWzIsMyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbDMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgfCAgaWQyICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTA1LTAxKSB8 IFs3LDgpICB8IGZvbworIFsxLDIpIHwgWzIwMDAtMDUtMDEsMjAwMC0wNy0wMSkgfCBbNyw4KSAg fCBmb28xCisgWzEsMikgfCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAxKSB8IFs3LDgpICB8IGZvbwor IFsyLDMpIHwgWzIwMDAtMDEtMDEsMjAwMC0wNC0wMSkgfCBbOSwxMCkgfCBiYXIKKyBbMiwzKSB8 IFsyMDAwLTA0LTAxLDIwMDAtMDUtMDEpIHwgWzksMTApIHwgYmFyMgorIFsyLDMpIHwgWzIwMDAt MDUtMDEsMjAwMC0wNi0wMSkgfCBbOSwxMCkgfCBiYXIxMgorIFsyLDMpIHwgWzIwMDAtMDYtMDEs MjAwMC0wNy0wMSkgfCBbOSwxMCkgfCBiYXIxCisgWzIsMykgfCBbMjAwMC0wNy0wMSwyMDEwLTAx LTAxKSB8IFs5LDEwKSB8IGJhcgorKDggcm93cykKKworLS0gY29uZmxpY3RpbmcgaWQgb25seToK K0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0LCBpZDIsIG5hbWUpCisgIFZBTFVF UworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSwgJ1s4 LDkpJywgJ2ZvbzMnKTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4 Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbDNfcGsiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxp ZF9hdCk9KFsxLDIpLCBbMjAwNS0wMS0wMSwyMDA2LTAxLTAxKSkgY29uZmxpY3RzIHdpdGggZXhp c3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkp LgorLS0gY29uZmxpY3RpbmcgaWQyIG9ubHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2 YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAw NS0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwxMCknLCAnYmFyMycpOworRVJST1I6ICBjb25m bGljdGluZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFs M191bmlxIgorREVUQUlMOiAgS2V5IChpZDIsIHZhbGlkX2F0KT0oWzksMTApLCBbMjAwNS0wMS0w MSwyMDEwLTAxLTAxKSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZDIsIHZhbGlkX2F0 KT0oWzksMTApLCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAxKSkuCiBEUk9QIFRBQkxFIHRlbXBvcmFs MzsKIC0tCiAtLSB0ZXN0IGNoYW5naW5nIHRoZSBQSydzIGRlcGVuZGVuY2llcwpAQCAtOTQxLDYg Kzk3MSwzNiBAQCBTRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAgWzMs NCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCiAoMSByb3cpCiAKK1VQREFURSAg dGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAw MC0wMS0xNScgVE8gJzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTInCisgIFdIRVJFIGlk ID0gJ1sxLDIpJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDItMjUnCisgIFNFVCBpZCA9 ICdbNCw1KScKKyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRp b25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBUTyAnMjAw My0wMS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1lID0gJ3RocmVlJzsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBXSEVSRSBpZCA9ICdbMyw0KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAw MC0wMS0xNSkgfCBvbmUKKyBbMSwyKSB8IFsyMDAwLTAxLTE1LDIwMDAtMDItMDEpIHwgb25lMgor IFsxLDIpIHwgWzIwMDAtMDItMDEsMjAwMC0wMi0xNSkgfCBvbmUyCisgWzEsMikgfCBbMjAwMC0w Mi0xNSwyMDAwLTAyLTIwKSB8IG9uZQorIFsxLDIpIHwgWzIwMDAtMDItMjUsMjAwMC0wMy0wMSkg fCBvbmUKKyBbMiwzKSB8IFsyMDAyLTAxLTAxLDIwMDMtMDEtMDEpIHwgdGhyZWUKKyBbMyw0KSB8 IFsyMDAwLTAxLTAxLDIwMDAtMDEtMTUpIHwgdGhyZWUKKyBbMyw0KSB8IFsyMDAwLTAyLTE1LDIw MDItMDEtMDEpIHwgdGhyZWUKKyBbMyw0KSB8IFsyMDAzLTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhy ZWUKKyBbNCw1KSB8IFsyMDAwLTAyLTIwLDIwMDAtMDItMjUpIHwgb25lCisoMTAgcm93cykKKwog RFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKIC0tIHRlbXBvcmFsIFVOSVFVRToKIENS RUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCkBAIC05NzYsNiArMTAzNiwzNiBAQCBT RUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAgWzMsNCkgfCBbMjAwMC0w MS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCiAoMSByb3cpCiAKK1VQREFURSAgdGVtcG9yYWxfcGFy dGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0xNScgVE8g JzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTInCisgIFdIRVJFIGlkID0gJ1sxLDIpJzsK K1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDItMjUnCisgIFNFVCBpZCA9ICdbNCw1KScKKyAg V0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBUTyAnMjAwMy0wMS0wMScKKyAg U0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1lID0gJ3RocmVlJzsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAt MDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBXSEVSRSBpZCA9ICdbMyw0KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMS0xNSkgfCBv bmUKKyBbMSwyKSB8IFsyMDAwLTAxLTE1LDIwMDAtMDItMDEpIHwgb25lMgorIFsxLDIpIHwgWzIw MDAtMDItMDEsMjAwMC0wMi0xNSkgfCBvbmUyCisgWzEsMikgfCBbMjAwMC0wMi0xNSwyMDAwLTAy LTIwKSB8IG9uZQorIFsxLDIpIHwgWzIwMDAtMDItMjUsMjAwMC0wMy0wMSkgfCBvbmUKKyBbMiwz KSB8IFsyMDAyLTAxLTAxLDIwMDMtMDEtMDEpIHwgdGhyZWUKKyBbMyw0KSB8IFsyMDAwLTAxLTAx LDIwMDAtMDEtMTUpIHwgdGhyZWUKKyBbMyw0KSB8IFsyMDAwLTAyLTE1LDIwMDItMDEtMDEpIHwg dGhyZWUKKyBbMyw0KSB8IFsyMDAzLTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKKyBbNCw1KSB8 IFsyMDAwLTAyLTIwLDIwMDAtMDItMjUpIHwgb25lCisoMTAgcm93cykKKwogRFJPUCBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZDsKIC0tIEFMVEVSIFRBQkxFIFJFUExJQ0EgSURFTlRJVFkKIC0t IChzaG91bGQgZmFpbCkKQEAgLTE3MDcsNiArMTc5NywxOCBAQCBVUERBVEUgdGVtcG9yYWxfcm5n IFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwogRVJST1I6ICB1cGRhdGUgb3IgZGVs ZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5n IgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0w Mi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJu ZyIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRl bXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8g JzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBj aGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlk ID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgor REVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0w MSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIu CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsg dXBkYXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKQEAgLTE3NjAsNiArMTg2MiwxOCBAQCBVUERB VEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQg dmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwogRVJST1I6 ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1w b3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIw MTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVt cG9yYWxfZmtfcm5nMnJuZyIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBv a2F5OgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9 ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3Jh bF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4 LTAxLTEwJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1 cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19ybmcycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgt MDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9y YWxfZmtfcm5nMnJuZyIuCiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBh bmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKQEAgLTE3OTYsOSAr MTkxMCwyMiBAQCBCRUdJTjsKIENPTU1JVDsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKIERFVEFJ TDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBp cyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0g ZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIw MTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBm YWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw2KSc7CitF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUg InRlbXBvcmFsX2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYp LCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxl ICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksg cmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFs X3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKTsKKy0tIGNsZWFuIHVwOgorREVMRVRFIEZST00gdGVtcG9yYWxf Zmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOworREVMRVRFIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQg ZGVsZXRlcyBSRVNUUklDVAogLS0KQEAgLTE4MjcsOSArMTk1NCwyMiBAQCBCRUdJTjsKIEVSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVt cG9yYWxfZmtfcm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsy MDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRl bXBvcmFsX2ZrX3JuZzJybmciLgogUk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5j ZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0g J1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVt cG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAn MjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmci LgogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBL IGRlbGV0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzMsNCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwor LS0gY2xlYW4gdXA6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVu dF9pZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdb NSw2KScpOwogLS0KIC0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCiAtLQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggODFlNDIyMmQyNmEuLmE0ZTU1OWZlNDE5IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTQ4LDcgKzQ4LDcgQEAgdGVzdDogY3JlYXRl X2luZGV4IGNyZWF0ZV9pbmRleF9zcGdpc3QgY3JlYXRlX3ZpZXcgaW5kZXhfaW5jbHVkaW5nIGlu ZGV4X2luY2x1ZGkKICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRl c3RzCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IGNyZWF0ZV9hZ2dyZWdhdGUgY3JlYXRlX2Z1bmN0aW9u X3NxbCBjcmVhdGVfY2FzdCBjb25zdHJhaW50cyB0cmlnZ2VycyBzZWxlY3QgaW5oZXJpdCB0eXBl ZF90YWJsZSB2YWN1dW0gZHJvcF9pZl9leGlzdHMgdXBkYXRhYmxlX3ZpZXdzIHJvbGVhdHRyaWJ1 dGVzIGNyZWF0ZV9hbSBoYXNoX2Z1bmMgZXJyb3JzIGluZmluaXRlX3JlY3Vyc2UKK3Rlc3Q6IGNy ZWF0ZV9hZ2dyZWdhdGUgY3JlYXRlX2Z1bmN0aW9uX3NxbCBjcmVhdGVfY2FzdCBjb25zdHJhaW50 cyB0cmlnZ2VycyBzZWxlY3QgaW5oZXJpdCB0eXBlZF90YWJsZSB2YWN1dW0gZHJvcF9pZl9leGlz dHMgdXBkYXRhYmxlX3ZpZXdzIHJvbGVhdHRyaWJ1dGVzIGNyZWF0ZV9hbSBoYXNoX2Z1bmMgZXJy b3JzIGluZmluaXRlX3JlY3Vyc2UgZm9yX3BvcnRpb25fb2YKIAogIyAtLS0tLS0tLS0tCiAjIHNh bml0eV9jaGVjayBkb2VzIGEgdmFjdXVtLCBhZmZlY3RpbmcgdGhlIHNvcnQgb3JkZXIgb2YgU0VM RUNUICoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjZmYjA4MDFjNjIKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwKQEAgLTAsMCArMSw2MTkg QEAKKy0tIFRlc3RzIGZvciBVUERBVEUvREVMRVRFIEZPUiBQT1JUSU9OIE9GCisKK1NFVCBkYXRl c3R5bGUgVE8gSVNPLCBZTUQ7CisKKy0tIFdvcmtzIG9uIG5vbi1QSyBjb2x1bW5zCitDUkVBVEUg VEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQg ZGF0ZXJhbmdlLAorICBuYW1lIHRleHQgTk9UIE5VTEwKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9y dGlvbl9vZl90ZXN0IFZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDIwLTAxLTAxKScs ICdvbmUnKTsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPICcyMDE5LTAxLTAxJworU0VUIG5hbWUgPSAnb25l XjEnOworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTE1JyBUTyAnMjAxOS0wMS0yMCc7CisKKy0tIFdpdGggYSB0 YWJsZSBhbGlhcyB3aXRoIEFTCisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAyLTAxJyBUTyAnMjAxOS0wMi0wMycgQVMgdAor U0VUIG5hbWUgPSAnb25lXjInOworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAyLTAzJyBUTyAnMjAxOS0wMi0wNCcg QVMgdDsKKworLS0gV2l0aCBhIHRhYmxlIGFsaWFzIHdpdGhvdXQgQVMKKworVVBEQVRFIGZvcl9w b3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDItMDQn IFRPICcyMDE5LTAyLTA1JyB0CitTRVQgbmFtZSA9ICdvbmVeMyc7CisKK0RFTEVURSBGUk9NIGZv cl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDIt MDUnIFRPICcyMDE5LTAyLTA2JyB0OworCistLSBVUERBVEUgd2l0aCBGUk9NCisKK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAz LTAxJyB0byAnMjAxOS0wMy0wMicKK1NFVCBuYW1lID0gJ29uZV40JworRlJPTSAoU0VMRUNUICdb MSwyKSc6OmludDRyYW5nZSkgQVMgdDIoaWQpCitXSEVSRSBmb3JfcG9ydGlvbl9vZl90ZXN0Lmlk ID0gdDIuaWQ7CisKKy0tIERFTEVURSB3aXRoIFVTSU5HCisKK0RFTEVURSBGUk9NIGZvcl9wb3J0 aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDMtMDInIFRP ICcyMDE5LTAzLTAzJworVVNJTkcgKFNFTEVDVCAnWzEsMiknOjppbnQ0cmFuZ2UpIEFTIHQyKGlk KQorV0hFUkUgZm9yX3BvcnRpb25fb2ZfdGVzdC5pZCA9IHQyLmlkOworCitTRUxFQ1QgKiBGUk9N IGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLSBXb3JrcyBv biBtb3JlIHRoYW4gb25lIHJhbmdlCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitD UkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFs aWQxX2F0IGRhdGVyYW5nZSwKKyAgdmFsaWQyX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0IE5P VCBOVUxMCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMKKygnWzEs MiknLCAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMyknLCAnWzIwMTUtMDEtMDEsMjAyNS0wMS0wMSkn LCAnb25lJyk7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZDFfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm9vJzsKK1NF TEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWQxX2F0LCB2 YWxpZDJfYXQ7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZDJfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gTlVMTAorU0VUIG5hbWUgPSAnYmFyJzsKK1NF TEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWQxX2F0LCB2 YWxpZDJfYXQ7CisKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkMV9hdCBGUk9NICcyMDE4LTAxLTIwJyBUTyBOVUxMOworU0VMRUNUICogRlJPTSBm b3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZDFfYXQsIHZhbGlkMl9hdDsKKwor REVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWQyX2F0 IEZST00gJzIwMTgtMDEtMjAnIFRPIE5VTEw7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29m X3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkMV9hdCwgdmFsaWQyX2F0OworCistLSBUZXN0IHdpdGgg TlVMTHMgaW4gdGhlIHNjYWxhci9yYW5nZSBrZXkgY29sdW1ucy4KKy0tIFRoaXMgd29uJ3QgaGFw cGVuIGlmIHRoZXJlIGlzIGEgUFJJTUFSWSBLRVkgb3IgVU5JUVVFIGNvbnN0cmFpbnQKKy0tIGJ1 dCBGT1IgUE9SVElPTiBPRiBzaG91bGRuJ3QgcmVxdWlyZSB0aGF0LgorRFJPUCBUQUJMRSBmb3Jf cG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFVOTE9HR0VEIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rl c3QgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0 CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMKKyAgKCdbMSwyKScs IE5VTEwsICcxIG51bGwnKSwKKyAgKCdbMSwyKScsICcoLCknLCAnMSB1bmJvdW5kZWQnKSwKKyAg KCdbMSwyKScsICdlbXB0eScsICcxIGVtcHR5JyksCisgIChOVUxMLCBOVUxMLCBOVUxMKSwKKyAg KE5VTEwsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE5LTAxLTAxJyksICdudWxsIGtleScp OworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSBOVUxMIFRPIE5VTEwKKyAgU0VUIG5hbWUgPSAnTlVMTCB0byBOVUxMJzsKK1NFTEVDVCAq IEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK0RST1Ag VEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90 ZXN0ICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UgTk9U IE5VTEwsCisgIG5hbWUgdGV4dCBOT1QgTlVMTCwKKyAgQ09OU1RSQUlOVCBmb3JfcG9ydGlvbl9v Zl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworSU5T RVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdAorVkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4LTAx LTAyLDIwMTgtMDItMDMpJywgJ29uZScpLAorKCdbMSwyKScsICdbMjAxOC0wMi0wMywyMDE4LTAz LTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCknLCAnb25l JyksCisoJ1syLDMpJywgJ1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpJywgJ3R3bycpLAorKCdbMyw0 KScsICdbMjAxOC0wMS0wMSwpJywgJ3RocmVlJyksCisoJ1s0LDUpJywgJygsMjAxOC0wNC0wMSkn LCAnZm91cicpLAorKCdbNSw2KScsICcoLCknLCAnZml2ZScpCis7CisKKy0tCistLSBVUERBVEUg dGVzdHMKKy0tCisKKy0tIFNldHRpbmcgd2l0aCBhIG1pc3NpbmcgY29sdW1uIGZhaWxzCitVUERB VEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcy MDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgbmFtZSA9ICdmb28nCitXSEVSRSBpZCA9ICdbNSw2KSc7 CisKKy0tIFNldHRpbmcgdGhlIHJhbmdlIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVz dAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gTlVMTAorU0VU IHZhbGlkX2F0ID0gJ1sxOTkwLTAxLTAxLDE5OTktMDEtMDEpJworV0hFUkUgaWQgPSAnWzUsNikn OworCistLSBUaGUgd3JvbmcgdHlwZSBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gMSBUTyA0CitTRVQgbmFtZSA9ICdub3BlJwor V0hFUkUgaWQgPSAnWzMsNCknOworCistLSBTZXR0aW5nIHdpdGggdGltZXN0YW1wcyByZXZlcnNl ZCBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDE4LTAxLTAxJworU0VUIG5hbWUgPSAndGhyZWVe MScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gU2V0dGluZyB3aXRoIGEgc3VicXVlcnkgZmFp bHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NIChTRUxFQ1QgJzIwMTgtMDEtMDEnKSBUTyAnMjAxOC0wNi0wMScKK1NFVCBuYW1lID0gJ25v cGUnCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFNldHRpbmcgd2l0aCBhIGNvbHVtbiBmYWls cworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gbG93ZXIodmFsaWRfYXQpIFRPIE5VTEwKK1NFVCBuYW1lID0gJ25vcGUnCitXSEVSRSBpZCA9 ICdbMyw0KSc7CisKKy0tIFNldHRpbmcgd2l0aCB0aW1lc3RhbXBzIGVxdWFsIGRvZXMgbm90aGlu ZworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTgtMDQtMDEnIFRPICcyMDE4LTA0LTAxJworU0VUIG5hbWUgPSAndGhyZWVeMCcKK1dI RVJFIGlkID0gJ1szLDQpJzsKKworLS0gVXBkYXRpbmcgYSBmaW5pdGUvb3BlbiBwb3J0aW9uIHdp dGggYSBmaW5pdGUvb3BlbiB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgbmFtZSA9 ICd0aHJlZV4xJworV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBVcGRhdGluZyBhIGZpbml0ZS9v cGVuIHBvcnRpb24gd2l0aCBhbiBvcGVuL2Zpbml0ZSB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlv bl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDMt MDEnCitTRVQgbmFtZSA9ICd0aHJlZV4yJworV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBVcGRh dGluZyBhbiBvcGVuL2Zpbml0ZSBwb3J0aW9uIHdpdGggYW4gb3Blbi9maW5pdGUgdGFyZ2V0CitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBO VUxMIFRPICcyMDE4LTAyLTAxJworU0VUIG5hbWUgPSAnZm91cl4xJworV0hFUkUgaWQgPSAnWzQs NSknOworCistLSBVcGRhdGluZyBhbiBvcGVuL2Zpbml0ZSBwb3J0aW9uIHdpdGggYSBmaW5pdGUv b3BlbiB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE3LTAxLTAxJyBUTyBOVUxMCitTRVQgbmFtZSA9ICdmb3VyXjInCitX SEVSRSBpZCA9ICdbNCw1KSc7CisKKy0tIFVwZGF0aW5nIGEgZmluaXRlL2Zpbml0ZSBwb3J0aW9u IHdpdGggYW4gZXhhY3QgZml0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxNy0wMS0wMScgVE8gJzIwMTgtMDItMDEnCitTRVQgbmFt ZSA9ICdmb3VyXjMnCitXSEVSRSBpZCA9ICdbNCw1KSc7CisKKy0tIFVwZGF0aW5nIGFuIGVuY2xv c2VkIHNwYW4KK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorU0VUIG5hbWUgPSAndHdvXjInCitXSEVSRSBpZCA9ICdb MiwzKSc7CisKKy0tIFVwZGF0aW5nIGFuIG9wZW4vb3BlbiBwb3J0aW9uIHdpdGggYSBmaW5pdGUv ZmluaXRlIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDEnIFRPICcyMDE5LTAxLTAxJworU0VUIG5hbWUgPSAn Zml2ZV4xJworV0hFUkUgaWQgPSAnWzUsNiknOworCistLSBVcGRhdGluZyBhbiBlbmNsb3NlZCBz cGFuIHdpdGggc2VwYXJhdGUgcHJvdHJ1ZGluZyBzcGFucworVVBEQVRFIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTctMDEtMDEnIFRPICcyMDIw LTAxLTAxJworU0VUIG5hbWUgPSAnZml2ZV4yJworV0hFUkUgaWQgPSAnWzUsNiknOworCistLSBV cGRhdGluZyBtdWx0aXBsZSBlbmNsb3NlZCBzcGFucworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rl c3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCitTRVQgbmFtZSA9 ICdvbmVeMicKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworLS0gV2l0aCBhIGRpcmVjdCB0YXJnZXQK K1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZXJhbmdlKCcyMDE4LTAzLTEwJywgJzIwMTgtMDMtMTcnKSkKK1NFVCBuYW1lID0gJ29uZV4zJwor V0hFUkUgaWQgPSAnWzEsMiknOworCistLSBVcGRhdGluZyB0aGUgbm9uLXJhbmdlIHBhcnQgb2Yg dGhlIFBLOgorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDItMTUnIFRPIE5VTEwKK1NFVCBpZCA9ICdbNiw3KScKK1dIRVJFIGlk ID0gJ1sxLDIpJzsKKworLS0gVVBEQVRFIHdpdGggbm8gV0hFUkUgY2xhdXNlCitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAzMC0wMS0w MScgVE8gTlVMTAorU0VUIG5hbWUgPSBuYW1lIHx8ICcqJzsKKworU0VMRUNUICogRlJPTSBmb3Jf cG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0gVXBkYXRpbmcgd2l0 aCBhIHNoaWZ0L3JlZHVjZSBjb25mbGljdAorLS0gKHJlcXVpcmVzIGEgdHNyYW5nZSBjb2x1bW4p CitDUkVBVEUgVU5MT0dHRUQgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2F0IHRzcmFuZ2UsCisgIG5hbWUgdGV4dAorKTsKK0lOU0VSVCBJTlRP IGZvcl9wb3J0aW9uX29mX3Rlc3QyIChpZCwgdmFsaWRfYXQsIG5hbWUpCisgIFZBTFVFUyAoJ1sx LDIpJywgJ1syMDAwLTAxLTAxLDIwMjAtMDEtMDEpJywgJ29uZScpOworLS0gdXBkYXRlcyBbMjAx MS0wMy0wMSAwMTowMjowMCwgMjAxMi0wMS0wMSkgKG5vdGUgMiBtaW51dGVzKQorVVBEQVRFIGZv cl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdAorICBGUk9NICcyMDEx LTAzLTAxJzo6dGltZXN0YW1wICsgSU5URVJWQUwgJzE6MDI6MDMnIEhPVVIgVE8gTUlOVVRFCisg IFRPICcyMDEyLTAxLTAxJworU0VUIG5hbWUgPSAnb25lXjEnCitXSEVSRSBpZCA9ICdbMSwyKSc7 CisKKy0tIFRPIGlzIHVzZWQgZm9yIHRoZSBib3VuZCBidXQgbm90IHRoZSBJTlRFUlZBTDoKKy0t IHN5bnRheCBlcnJvcgorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdAorICBGUk9NICcyMDEzLTAzLTAxJzo6dGltZXN0YW1wICsgSU5URVJWQUwgJzE6 MDI6MDMnIEhPVVIKKyAgVE8gJzIwMTQtMDEtMDEnCitTRVQgbmFtZSA9ICdvbmVeMicKK1dIRVJF IGlkID0gJ1sxLDIpJzsKKworLS0gYWRkaW5nIHBhcmVucyBmaXhlcyBpdAorLS0gdXBkYXRlcyBb MjAxNS0wMy0wMSAwMTowMDowMCwgMjAxNi0wMS0wMSkgKG5vIG1pbnV0ZXMpCitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZST00gKCcyMDE1 LTAzLTAxJzo6dGltZXN0YW1wICsgSU5URVJWQUwgJzE6MDI6MDMnIEhPVVIpCisgIFRPICcyMDE2 LTAxLTAxJworU0VUIG5hbWUgPSAnb25lXjMnCitXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tIEZP UiBQT1JUSU9OIE9GIGFsbG93cyBwYXJhbXMgaW4gc3FsOgorQ1JFQVRFIEZVTkNUSU9OIGZwb19z cWxfdXBkYXRlKHRhcmdldF9mcm9tIGRhdGUsIHRhcmdldF90aWwgZGF0ZSkKK1JFVFVSTlMgVk9J RAorQVMgJCQKKyAgVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCisgIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0CisgICAgRlJPTSAkMSBUTyAkMgorICBTRVQgbmFtZSA9IGNvbmNhdChuYW1lLCAn KicpCisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKKyQkCitMQU5HVUFHRSBzcWw7CitTRUxFQ1QgZnBv X3NxbF91cGRhdGUoJzIwMTgtMDEtMDEnLCAnMjAxOS0wMS0wMScpOworCistLSBGT1IgUE9SVElP TiBPRiBhbGxvd3MgcGFyYW1zIGluIHBscGdzcWw6CitDUkVBVEUgRlVOQ1RJT04gZnBvX3BscGdz cWxfdXBkYXRlKHRhcmdldF9mcm9tIGRhdGUsIHRhcmdldF90aWwgZGF0ZSkKK1JFVFVSTlMgVk9J RAorQVMgJCQKK0JFR0lOCisgIFVQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorICBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdAorICAgIEZST00gJDEgVE8gJDIKKyAgU0VUIG5hbWUgPSBjb25jYXQo bmFtZSwgJysnKQorICBXSEVSRSBpZCA9ICdbMSwyKSc7CitFTkQ7CiskJAorTEFOR1VBR0UgcGxw Z3NxbDsKK1NFTEVDVCBmcG9fcGxwZ3NxbF91cGRhdGUoJzIwMTgtMDYtMDEnLCAnMjAxOS0wMS0w MScpOworCitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDI7CisKKy0tCistLSBERUxF VEUgdGVzdHMKKy0tCisKKy0tIERlbGV0aW5nIHdpdGggYSBtaXNzaW5nIGNvbHVtbiBmYWlscwor REVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgaW52YWxpZF9h dCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbNSw2KSc7CisKKy0tIERl bGV0aW5nIHdpdGggdGltZXN0YW1wcyByZXZlcnNlZCBmYWlscworREVMRVRFIEZST00gZm9yX3Bv cnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScg VE8gJzIwMTgtMDEtMDEnCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIERlbGV0aW5nIHdpdGgg dGltZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhpbmcKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDQtMDEnIFRPICcyMDE4 LTA0LTAxJworV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBEZWxldGluZyB3aXRoIGEgY2xvc2Vk L2Nsb3NlZCB0YXJnZXQKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDIwLTA2LTAxJworV0hFUkUg aWQgPSAnWzUsNiknOworCistLSBEZWxldGluZyB3aXRoIGEgY2xvc2VkL29wZW4gdGFyZ2V0CitE RUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE4LTA0LTAxJyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIERlbGV0 aW5nIHdpdGggYW4gb3Blbi9jbG9zZWQgdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9v Zl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDItMDgn CitXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tIERlbGV0aW5nIHdpdGggYW4gb3Blbi9vcGVuIHRh cmdldAorREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSBOVUxMIFRPIE5VTEwKK1dIRVJFIGlkID0gJ1s2LDcpJzsKKworLS0gREVMRVRF IHdpdGggbm8gV0hFUkUgY2xhdXNlCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDI1LTAxLTAxJyBUTyBOVUxMOworCitTRUxF Q1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCist LSBVUERBVEUgLi4uIFJFVFVSTklORyByZXR1cm5zIG9ubHkgdGhlIHVwZGF0ZWQgdmFsdWVzIChu b3QgdGhlIGluc2VydGVkIHNpZGUgdmFsdWVzKQorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDItMDEnIFRPICcyMDE4LTAyLTE1 JworU0VUIG5hbWUgPSAndGhyZWVeMycKK1dIRVJFIGlkID0gJ1szLDQpJworUkVUVVJOSU5HICo7 CisKKy0tIHRlc3QgdGhhdCB3ZSBydW4gdHJpZ2dlcnMgb24gdGhlIFVQREFURS9ERUxFVEVkIHJv dyBhbmQgdGhlIElOU0VSVGVkIHJvd3MKKworQ1JFQVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29m X3RyaWdnZXIoKQorUkVUVVJOUyB0cmlnZ2VyCitBUworJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAnJSAlICUgJSBvZiAlJywgVEdfV0hFTiwgVEdfT1AsIFRHX0xFVkVMLCBORVcudmFsaWRfYXQs IE9MRC52YWxpZF9hdDsKKyAgSUYgVEdfT1AgPSAnREVMRVRFJyBUSEVOCisgICAgUkVUVVJOIE9M RDsKKyAgRUxTRQorICAgIFJFVFVSTiBORVc7CisgIEVORCBJRjsKK0VORDsKKyQkCitMQU5HVUFH RSBwbHBnc3FsOworCitDUkVBVEUgVFJJR0dFUiB0cmdfZm9yX3BvcnRpb25fb2ZfYmVmb3JlCisg IEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0 CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdn ZXIoKTsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlvbl9vZl9hZnRlcgorICBBRlRFUiBJ TlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBF QUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK0NS RUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlvbl9vZl9iZWZvcmVfc3RtdAorICBCRUZPUkUgSU5T RVJUIE9SIFVQREFURSBPUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgRUFD SCBTVEFURU1FTlQKKyAgRVhFQ1VURSBGVU5DVElPTiBmb3JfcG9ydGlvbl9vZl90cmlnZ2VyKCk7 CitDUkVBVEUgVFJJR0dFUiB0cmdfZm9yX3BvcnRpb25fb2ZfYWZ0ZXJfc3RtdAorICBBRlRFUiBJ TlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBF QUNIIFNUQVRFTUVOVAorICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIo KTsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMjEtMDEtMDEnIFRPICcyMDIyLTAxLTAxJworU0VUIG5hbWUgPSAnZml2ZV4zJwor V0hFUkUgaWQgPSAnWzUsNiknOworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDIzLTAxLTAxJyBUTyAnMjAyNC0wMS0wMScK K1dIRVJFIGlkID0gJ1s1LDYpJzsKKworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0 IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK0RST1AgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2ZfdHJp Z2dlciBDQVNDQURFOworCistLSBUcmlnZ2VycyB3aXRoIGEgY3VzdG9tIHRyYW5zaXRpb24gdGFi bGUgbmFtZToKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFRBQkxF IGZvcl9wb3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVy YW5nZSwKKyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBW QUxVRVMgKCdbMSwyKScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScsICdvbmUnKTsKKworQ1JF QVRFIEZVTkNUSU9OIGR1bXBfdHJpZ2dlcigpCitSRVRVUk5TIFRSSUdHRVIgTEFOR1VBR0UgcGxw Z3NxbCBBUworJCQKK0JFR0lOCisgIElGIFRHX09QID0gJ0lOU0VSVCcgVEhFTgorICAgIFJBSVNF IE5PVElDRSAnJTogJSAlLCBORVcgdGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09QLCBU R19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBC WSBpZCkgRlJPTSBuZXdfdGFibGUpOworICBFTFNJRiBUR19PUCA9ICdVUERBVEUnIFRIRU4KKyAg ICBSQUlTRSBOT1RJQ0UgJyU6ICUgJSwgT0xEIHRhYmxlID0gJSwgTkVXIHRhYmxlID0gJScsCisg ICAgICBUR19OQU1FLCBUR19PUCwgVEdfTEVWRUwsCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2co b2xkX3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG9sZF90YWJsZSksCisgICAg ICAoU0VMRUNUIHN0cmluZ19hZ2cobmV3X3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBG Uk9NIG5ld190YWJsZSk7CisgIEVMU0lGIFRHX09QID0gJ0RFTEVURScgVEhFTgorICAgIFJBSVNF IE5PVElDRSAnJTogJSAlLCBPTEQgdGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09QLCBU R19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBC WSBpZCkgRlJPTSBvbGRfdGFibGUpOworICBFTkQgSUY7CisgIFJFVFVSTiBOVUxMOworRU5EOwor JCQ7CisKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWcKK0FG VEVSIElOU0VSVCBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lORyBORVcgVEFCTEUg QVMgbmV3X3RhYmxlCitGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmlnZ2Vy KCk7CisKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWdfc3Rt dAorQUZURVIgSU5TRVJUIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE5FVyBU QUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBk dW1wX3RyaWdnZXIoKTsKKworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRh dGVfdHJpZworQUZURVIgVVBEQVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5H IE9MRCBUQUJMRSBBUyBvbGRfdGFibGUgTkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9SIEVBQ0gg Uk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworCitDUkVBVEUgVFJJR0dFUiBm b3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnX3N0bXQKK0FGVEVSIFVQREFURSBPTiBmb3Jf cG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lORyBPTEQgVEFCTEUgQVMgb2xkX3RhYmxlIE5FVyBU QUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBk dW1wX3RyaWdnZXIoKTsKKworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxl dGVfdHJpZworQUZURVIgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5H IE9MRCBUQUJMRSBBUyBvbGRfdGFibGUKK0ZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBk dW1wX3RyaWdnZXIoKTsKKworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxl dGVfdHJpZ19zdG10CitBRlRFUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJF TkNJTkcgT0xEIFRBQkxFIEFTIG9sZF90YWJsZQorRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUg UFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworCitCRUdJTjsKK1VQREFURSBmb3JfcG9ydGlvbl9v Zl90ZXN0CisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPICcy MDE5LTAxLTAxJworICBTRVQgbmFtZSA9ICcyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEnOworUk9M TEJBQ0s7CisKK0JFR0lOOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDEtMjEnOworUk9MTEJBQ0s7 CisKK0JFR0lOOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAxLTAyJworICBTRVQgbmFtZSA9ICdOVUxMX3Rv XzIwMTgtMDEtMDEnOworUk9MTEJBQ0s7CisKKy0tIFRlc3Qgd2l0aCBtdWx0aXJhbmdlcworCitD UkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5V TEwsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQgTk9U IE5VTEwsCisgIENPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfdGVzdDJfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0 aW9uX29mX3Rlc3QyCitWQUxVRVMKKygnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMyknKSwgZGF0ZXJhbmdlKCcyMDE4LTAyLTA0JywgJzIw MTgtMDMtMDMnKSksICdvbmUnKSwKKygnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCknKSksICdvbmUnKSwKKygnWzIsMyknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wNS0wMSknKSksICd0d28nKSwK KygnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBudWxsKSks ICd0aHJlZScpOworOworCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTAnLCAnMjAx OC0wMi0xMCcpLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0wNS0wMScpKSkKK1NFVCBu YW1lID0gJ29uZV4xJworV0hFUkUgaWQgPSAnWzEsMiknOworCitERUxFVEUgRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JyksIGRhdGVyYW5nZSgnMjAxOC0wMy0w MScsICcyMDE4LTAzLTE1JykpKQorV0hFUkUgaWQgPSAnWzIsMyknOworCitTRUxFQ1QgKiBGUk9N IGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworRFJPUCBUQUJM RSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKKworLS0gVGVzdCB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5 cGUKKworQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKKwor Q1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlIE5PVCBO VUxMLAorICB2YWxpZF9hdCBteWRhdGVyYW5nZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBO VUxMLAorICBDT05TVFJBSU5UIGZvcl9wb3J0aW9uX29mX3Rlc3QyX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlv bl9vZl90ZXN0MgorVkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJywg J29uZScpLAorKCdbMSwyKScsICdbMjAxOC0wMi0wMywyMDE4LTAzLTAzKScsICdvbmUnKSwKKygn WzEsMiknLCAnWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCknLCAnb25lJyksCisoJ1syLDMpJywgJ1sy MDE4LTAxLTAxLDIwMTgtMDUtMDEpJywgJ3R3bycpLAorKCdbMyw0KScsICdbMjAxOC0wMS0wMSwp JywgJ3RocmVlJyk7Cis7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xMCcgVE8gJzIwMTgtMDItMTAnCitTRVQgbmFt ZSA9ICdvbmVeMScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworREVMRVRFIEZST00gZm9yX3BvcnRp b25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRP ICcyMDE4LTAyLTE1JworV0hFUkUgaWQgPSAnWzIsMyknOworCitTRUxFQ1QgKiBGUk9NIGZvcl9w b3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworRFJPUCBUQUJMRSBmb3Jf cG9ydGlvbl9vZl90ZXN0MjsKK0RST1AgVFlQRSBteWRhdGVyYW5nZTsKKworLS0gVGVzdCBGT1Ig UE9SVElPTiBPRiBhZ2FpbnN0IGEgcGFydGl0aW9uZWQgdGFibGUuCistLSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF8xIGhhcyB0aGUgc2FtZSBhdHRudW1zIGFzIHRoZSByb290CistLSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF8zIGhhcyB0aGUgZGlmZmVyZW50IGF0dG51bXMgZnJvbSB0aGUgcm9vdAorLS0g dGVtcG9yYWxfcGFydGl0aW9uZWRfNSBoYXMgdGhlIGRpZmZlcmVudCBhdHRudW1zIHRvbywgYnV0 IHJldmVyc2VkCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQsCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGFyaXRpb25lZF91cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkXzEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxV RVMgSU4gKCdbMSwyKScsICdbMiwzKScpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkXzMgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdb Myw0KScsICdbNCw1KScpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgUEFS VElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbNSw2KScsICdb Niw3KScpOworCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBERVRBQ0ggUEFSVElU SU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzM7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF8zIERST1AgQ09MVU1OIGlkLCBEUk9QIENPTFVNTiB2YWxpZF9hdDsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgQUREIENPTFVNTiBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEws IEFERCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBOVUxMOworQUxURVIgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8z IEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOworCitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZCBERVRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzU7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IERST1AgQ09MVU1OIGlkLCBEUk9QIENP TFVNTiB2YWxpZF9hdDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgQUREIENP TFVNTiB2YWxpZF9hdCBkYXRlcmFuZ2UgTk9UIE5VTEwsIEFERCBDT0xVTU4gaWQgaW50NHJhbmdl IE5PVCBOVUxMOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJ VElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IEZPUiBWQUxVRVMgSU4gKCdbNSw2KScsICdbNiw3 KScpOworCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBWQUxVRVMKKyAgKCdbMSwy KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdvbmUnKSwKKyAgKCdb Myw0KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0aHJlZScpLAor ICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ2ZpdmUn KTsKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKworLS0gVXBkYXRlIHdp dGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24gMQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEnIFRPICcyMDAwLTA0 LTAxJworICBTRVQgbmFtZSA9ICdvbmVeMScKKyAgV0hFUkUgaWQgPSAnWzEsMiknOworCistLSBV cGRhdGUgd2l0aG91dCBtb3Zpbmcgd2l0aGluIHBhcnRpdGlvbiAzCitVUERBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMy0wMScgVE8g JzIwMDAtMDQtMDEnCisgIFNFVCBuYW1lID0gJ3RocmVlXjEnCisgIFdIRVJFIGlkID0gJ1szLDQp JzsKKworLS0gVXBkYXRlIHdpdGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24gNQorVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAt MDMtMDEnIFRPICcyMDAwLTA0LTAxJworICBTRVQgbmFtZSA9ICdmaXZlXjEnCisgIFdIRVJFIGlk ID0gJ1s1LDYpJzsKKworLS0gTW92ZSBmcm9tIHBhcnRpdGlvbiAxIHRvIHBhcnRpdGlvbiAzCitV UERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAwMC0wNi0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gJ29uZV4yJywKKyAgICAg IGlkID0gJ1s0LDUpJworICBXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tIE1vdmUgZnJvbSBwYXJ0 aXRpb24gMyB0byBwYXJ0aXRpb24gMQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBT RVQgbmFtZSA9ICd0aHJlZV4yJywKKyAgICAgIGlkID0gJ1syLDMpJworICBXSEVSRSBpZCA9ICdb Myw0KSc7CisKKy0tIE1vdmUgZnJvbSBwYXJ0aXRpb24gNSB0byBwYXJ0aXRpb24gMworVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAt MDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9ICdmaXZlXjInLAorICAgICAgaWQg PSAnWzMsNCknCisgIFdIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0gVXBkYXRlIGFsbCBwYXJ0aXRp b25zIGF0IG9uY2UgKGVhY2ggd2l0aCBsZWZ0b3ZlcnMpCisKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF8xIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWRfMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitEUk9Q IFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkOworCitSRVNFVCBkYXRlc3R5bGU7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vcHJfc2FuaXR5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL29wcl9zYW5pdHkuc3FsCmluZGV4IDJmZTdiNmRjYzQ5Li4yZGZmZTdjNWI2YSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb3ByX3Nhbml0eS5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvb3ByX3Nhbml0eS5zcWwKQEAgLTEyNDEsNiArMTI0MSw3IEBAIFdIRVJF IGExLmFtb3BmYW1pbHkgPSAwIE9SIGExLmFtb3BsZWZ0dHlwZSA9IDAgT1IgYTEuYW1vcHJpZ2h0 dHlwZSA9IDAKIFNFTEVDVCBhMS5hbW9wZmFtaWx5LCBhMS5hbW9wc3RyYXRlZ3kKIEZST00gcGdf YW1vcCBhcyBhMQogV0hFUkUgTk9UICgoYTEuYW1vcHB1cnBvc2UgPSAncycgQU5EIGExLmFtb3Bz b3J0ZmFtaWx5ID0gMCkgT1IKKyAgICAgICAgICAgKGExLmFtb3BwdXJwb3NlID0gJ3AnIEFORCBh MS5hbW9wc29ydGZhbWlseSA9IDApIE9SCiAgICAgICAgICAgIChhMS5hbW9wcHVycG9zZSA9ICdv JyBBTkQgYTEuYW1vcHNvcnRmYW1pbHkgPD4gMCkpOwogCiAtLSBhbW9wbWV0aG9kIG11c3QgbWF0 Y2ggb3duaW5nIG9wZmFtaWx5J3Mgb3BmbWV0aG9kCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9wcml2aWxlZ2VzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByaXZpbGVnZXMu c3FsCmluZGV4IDNmNTRiMGY4ZjA1Li4xZDlmOTE1NjdmYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJp dmlsZWdlcy5zcWwKQEAgLTcyMyw2ICs3MjMsMjQgQEAgVVBEQVRFIGVycnRzdCBTRVQgYSA9ICdh YWFhJywgYiA9IE5VTEwgV0hFUkUgYSA9ICdhYWEnOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3ByaXZfdXNlcjE7CiBEUk9QIFRBQkxFIGVycnRzdDsKIAorLS0gdGVzdCBjb2x1 bW4tbGV2ZWwgcHJpdmlsZWdlcyBvbiB0aGUgcmFuZ2UvUEVSSU9EIHVzZWQgaW4gRk9SIFBPUlRJ T04gT0YKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOworQ1JF QVRFIFRBQkxFIHQxICgKKyAgYzEgaW50NHJhbmdlLAorICB2YWxpZF9hdCB0c3JhbmdlLAorCUNP TlNUUkFJTlQgdDFwayBQUklNQVJZIEtFWSAoYzEsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispOworR1JBTlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK0dSQU5UIFNF TEVDVCBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjM7CitHUkFOVCBVUERBVEUgKGMxKSBPTiB0 MSBUTyByZWdyZXNzX3ByaXZfdXNlcjI7CitHUkFOVCBVUERBVEUgKGMxLCB2YWxpZF9hdCkgT04g dDEgVE8gcmVncmVzc19wcml2X3VzZXIzOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3ByaXZfdXNlcjI7CitVUERBVEUgdDEgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAwMC0wMS0wMScgVE8gJzIwMDEtMDEtMDEnIFNFVCBjMSA9ICdbMiwzKSc7CitTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK1VQREFURSB0MSBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAxLTAxJyBUTyAnMjAwMS0wMS0wMScgU0VUIGMxID0g J1syLDMpJzsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOwor RFJPUCBUQUJMRSB0MTsKKwogLS0gdGVzdCBjb2x1bW4tbGV2ZWwgcHJpdmlsZWdlcyB3aGVuIGlu dm9sdmVkIHdpdGggREVMRVRFCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJp dl91c2VyMTsKIEFMVEVSIFRBQkxFIGF0ZXN0NiBBREQgQ09MVU1OIHRocmVlIGludGVnZXI7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRhdGFibGVfdmlld3Muc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNxbAppbmRleCA5M2I2OTNhZTgzNy4u OWJmMjM3YzcxZDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3VwZGF0YWJsZV92 aWV3cy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNxbApA QCAtMTg2NSw2ICsxODY1LDIwIEBAIHNlbGVjdCAqIGZyb20gdXZfaW9jdV90YWI7CiBkcm9wIHZp ZXcgdXZfaW9jdV92aWV3OwogZHJvcCB0YWJsZSB1dl9pb2N1X3RhYjsKIAorLS0gQ2hlY2sgVVBE QVRFIEZPUiBQT1JUSU9OIE9GIHdvcmtzIGNvcnJlY3RseQorY3JlYXRlIHRhYmxlIHV2X2Zwb190 YWIgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgdHNyYW5nZSwgYiBmbG9hdCwKKyAgICBjb25zdHJh aW50IHBrX3V2X2Zwb190YWIgcHJpbWFyeSBrZXkgKGlkLCB2YWxpZF9hdCB3aXRob3V0IG92ZXJs YXBzKSk7CitpbnNlcnQgaW50byB1dl9mcG9fdGFiIHZhbHVlcyAoJ1sxLDFdJywgJ1syMDIwLTAx LTAxLCAyMDMwLTAxLTAxKScsIDApOworY3JlYXRlIHZpZXcgdXZfZnBvX3ZpZXcgYXMKKyAgICBz ZWxlY3QgYiwgYisxIGFzIGMsIHZhbGlkX2F0LCBpZCwgJzIuMCc6OnRleHQgYXMgdHdvIGZyb20g dXZfZnBvX3RhYjsKKworaW5zZXJ0IGludG8gdXZfZnBvX3ZpZXcgKGlkLCB2YWxpZF9hdCwgYikg dmFsdWVzICgnWzEsMV0nLCAnWzIwMTAtMDEtMDEsIDIwMjAtMDEtMDEpJywgMSk7CitzZWxlY3Qg KiBmcm9tIHV2X2Zwb192aWV3OwordXBkYXRlIHV2X2Zwb192aWV3IGZvciBwb3J0aW9uIG9mIHZh bGlkX2F0IGZyb20gJzIwMTUtMDEtMDEnIHRvICcyMDIwLTAxLTAxJyBzZXQgYiA9IDIgd2hlcmUg aWQgPSAnWzEsMV0nOworc2VsZWN0ICogZnJvbSB1dl9mcG9fdmlldzsKK2RlbGV0ZSBmcm9tIHV2 X2Zwb192aWV3IGZvciBwb3J0aW9uIG9mIHZhbGlkX2F0IGZyb20gJzIwMTctMDEtMDEnIHRvICcy MDIyLTAxLTAxJyB3aGVyZSBpZCA9ICdbMSwxXSc7CitzZWxlY3QgKiBmcm9tIHV2X2Zwb192aWV3 OworCiAtLSBUZXN0IHdob2xlLXJvdyByZWZlcmVuY2VzIHRvIHRoZSB2aWV3CiBjcmVhdGUgdGFi bGUgdXZfaW9jdV90YWIgKGEgaW50IHVuaXF1ZSwgYiB0ZXh0KTsKIGNyZWF0ZSB2aWV3IHV2X2lv Y3VfdmlldyBhcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVy bGFwcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAppbmRl eCA5NDNlZGYzZGE2My4uYmFiMzQ2NTk3OTMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhv dXRfb3ZlcmxhcHMuc3FsCkBAIC02MzIsNiArNjMyLDIwIEBAIElOU0VSVCBJTlRPIHRlbXBvcmFs MyAoaWQsIHZhbGlkX2F0LCBpZDIsIG5hbWUpCiAgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAt MDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnWzcsOCknLCAnZm9vJyksCiAgICgnWzIsMyknLCBkYXRl cmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnWzksMTApJywgJ2JhcicpCiA7CitV UERBVEUgdGVtcG9yYWwzIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDUtMDEn IFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9IG5hbWUgfHwgJzEnOworVVBEQVRFIHRlbXBv cmFsMyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA0LTAxJyBUTyAnMjAwMC0w Ni0wMScKKyAgU0VUIG5hbWUgPSBuYW1lIHx8ICcyJworICBXSEVSRSBpZCA9ICdbMiwzKSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBjb25mbGlj dGluZyBpZCBvbmx5OgorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQsIGlkMiwg bmFtZSkKKyAgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAw Ni0wMS0wMScpLCAnWzgsOSknLCAnZm9vMycpOworLS0gY29uZmxpY3RpbmcgaWQyIG9ubHk6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMK KyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwx MCknLCAnYmFyMycpOwogRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CiAKIC0tCkBAIC02NzAsNiArNjg0 LDIyIEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkIChpZCwgdmFsaWRfYXQsIG5h bWUpIFZBTFVFUwogU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRwMSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBT RUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitVUERBVEUgIHRlbXBvcmFs X3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUn IFRPICcyMDAwLTAyLTE1JworICBTRVQgbmFtZSA9ICdvbmUyJworICBXSEVSRSBpZCA9ICdbMSwy KSc7CitVUERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMDAtMDItMjAnIFRPICcyMDAwLTAyLTI1JworICBTRVQgaWQgPSAnWzQsNSkn CisgIFdIRVJFIG5hbWUgPSAnb25lJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEn CisgIFNFVCBpZCA9ICdbMiwzKScKKyAgV0hFUkUgbmFtZSA9ICd0aHJlZSc7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDAwLTAxLTE1JyBUTyAnMjAwMC0wMi0xNScKKyAgV0hFUkUgaWQgPSAnWzMsNCknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBEUk9Q IFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkOwogCiAtLSB0ZW1wb3JhbCBVTklRVUU6CkBAIC02 ODgsNiArNzE4LDIyIEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkIChpZCwgdmFs aWRfYXQsIG5hbWUpIFZBTFVFUwogU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRwMSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitVUERBVEUg IHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBTRVQgbmFtZSA9ICdvbmUyJworICBXSEVSRSBp ZCA9ICdbMSwyKSc7CitVUERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDItMjAnIFRPICcyMDAwLTAyLTI1JworICBTRVQgaWQg PSAnWzQsNSknCisgIFdIRVJFIG5hbWUgPSAnb25lJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0 aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0wMS0wMScgVE8gJzIw MDMtMDEtMDEnCisgIFNFVCBpZCA9ICdbMiwzKScKKyAgV0hFUkUgbmFtZSA9ICd0aHJlZSc7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDAwLTAxLTE1JyBUTyAnMjAwMC0wMi0xNScKKyAgV0hFUkUgaWQgPSAnWzMsNCkn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkOwogCiAtLSBBTFRFUiBUQUJMRSBS RVBMSUNBIElERU5USVRZCkBAIC0xMjYyLDYgKzEzMDgsMTYgQEAgQ09NTUlUOwogLS0gY2hhbmdp bmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAn WzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0 IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJF IGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRl bXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8g JzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CiAtLSB0 aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRl IHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdb Myw0KSc7CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx Ni0wMS0wMScsICcyMDE2LTAyLTAxJykKQEAgLTEzMTEsNiArMTM2NywxNiBAQCBST0xMQkFDSzsK IC0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKIFVQREFURSB0ZW1wb3JhbF9ybmcg U0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSBjaGFuZ2luZyBhbiB1bnJlZmVy ZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcs OCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoK K1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUs NiknOwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1l IFBLIHVwZGF0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzMsNCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC0xMzQ2LDkgKzE0MTIsMjAgQEAg QkVHSU47CiAKICAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwogQ09N TUlUOworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0w MicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBqdXN0 IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdb NSw2KSc7CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNh bWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBX SEVSRSBpZCA9ICdbMyw0KSc7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAn WzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx Jyk7CistLSBjbGVhbiB1cDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg cGFyZW50X2lkID0gJ1s1LDYpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBJ TiAoJ1s1LDYpJyk7CiAKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklD VApAQCAtMTM3Nyw5ICsxNDU0LDIwIEBAIEJFR0lOOwogICAgIERFRkVSUkFCTEUgSU5JVElBTExZ IERFRkVSUkVEOwogICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CiBS T0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcg anVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQg PSAnWzUsNiknOwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRo ZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzMsNCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpOworLS0gY2xlYW4gdXA6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIHBhcmVudF9pZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUg aWQgSU4gKCdbNSw2KScpOwogCiAtLQogLS0gdGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMK LS0gCjIuNDUuMAoK --00000000000030a223062454f4b4 Content-Type: application/octet-stream; name="v40-0001-Add-support-funcs-for-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v40-0001-Add-support-funcs-for-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m2754s350 RnJvbSAwODI4ZTUzOGIwNWU0NjgwNDRmNDk5NTlhMDExZTBjN2JmMGFjOGUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMjM6MTA6NTkgLTA4MDAKU3ViamVj dDogW1BBVENIIHY0MCAxLzRdIEFkZCBzdXBwb3J0IGZ1bmNzIGZvciBGT1IgUE9SVElPTiBPRgoK LSBBZGRzIGludGVyc2VjdCBzdXBwb3J0IHByb2NzLgoKICBUaGVzZSBqdXN0IGNhbGwgdGhlIGV4 aXN0aW5nIGludGVyc2VjdCBmdW5jdGlvbnMsCiAgYnV0IHRoZXkgbGV0IHVzIGNvbXB1dGUgdGhl IHBvcnRpb24gb2YgYSByb3cgdGhhdCBpcyB1cGRhdGVkL2RlbGV0ZWQKICBpbiBhIEZPUiBQT1JU SU9OIGNvbW1hbmQuCgotIEFkZHMge211bHRpLH1yYW5nZV93aXRob3V0X3BvcnRpb24gc3VwcG9y dCBwcm9jcwoKICBUaGVzZSByZXR1cm4gU0VUT0YgdGhlaXIgaW5wdXQgdHlwZSBhbmQgd29yayBs aWtlIG1pbnVzIGJ1dCBkb24ndAogIGZhaWwgb24gc3BsaXRzLiBUaGV5IG5ldmVyIGNvbnRhaW4g ZW1wdHkgZWxlbWVudHMuIFdlIHdpbGwgdXNlIHRoaXMgdG8KICBjb21wdXRlIEZPUiBQT1JUSU9O IE9GIGxlZnRvdmVycy4KLS0tCiBjb250cmliL2Jsb29tL2JsdmFsaWRhdGUuYyAgICAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAg ICAgICAgICB8ICAgMiArLQogZG9jL3NyYy9zZ21sL2dpc3Quc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgIHwgMTU2ICsrKysrKysrKysrKysrKystCiBkb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwg ICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2Jy aW5fdmFsaWRhdGUuYyAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52 YWxpZGF0ZS5jICAgICAgICAgIHwgIDEyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0 dmFsaWRhdGUuYyAgICAgICAgfCAgMzEgKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFz aHZhbGlkYXRlLmMgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvYW12 YWxpZGF0ZS5jICAgICAgICAgfCAgIDkgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 dmFsaWRhdGUuYyAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2 YWxpZGF0ZS5jICAgICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvbXVsdGlyYW5n ZXR5cGVzLmMgICAgICAgfCAgNzEgKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5n ZXR5cGVzLmMgICAgICAgICAgICB8IDE2MyArKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRl L2FjY2Vzcy9hbXZhbGlkYXRlLmggICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUv YWNjZXNzL2dpc3QuaCAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAgICAgICAgfCAgMTUgKysKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgOCArCiBzcmMvaW5jbHVkZS91dGls cy9yYW5nZXR5cGVzLmggICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9tdWx0aXJhbmdldHlwZXMub3V0IHwgMTE2ICsrKysrKysrKysrKysKIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5vdXQgICAgICB8ICA1NCArKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL211bHRpcmFuZ2V0eXBlcy5zcWwgICAgICB8ICAyMiArKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsICAgICAgICAgICB8ICAxMCArKwogMjIgZmls ZXMgY2hhbmdlZCwgNjgyIGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2NvbnRyaWIvYmxvb20vYmx2YWxpZGF0ZS5jIGIvY29udHJpYi9ibG9vbS9ibHZhbGlkYXRl LmMKaW5kZXggODhjNWE3OTE5NzUuLjllMzllMzllMTc0IDEwMDY0NAotLS0gYS9jb250cmliL2Js b29tL2JsdmFsaWRhdGUuYworKysgYi9jb250cmliL2Jsb29tL2JsdmFsaWRhdGUuYwpAQCAtMTA1 LDcgKzEwNSw3IEBAIGJsdmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCXN3aXRjaCAocHJvY2Zv cm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBCTE9PTV9IQVNIX1BST0M6Ci0JCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRPSUQsIGZhbHNlLAor CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lE LCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTEsIDEsIG9wY2tleXR5cGUpOwogCQkJCWJyZWFr OwogCQkJY2FzZSBCTE9PTV9PUFRJT05TX1BST0M6CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDk2NGM4MTlh MDJkLi5hZWI0ZDI2NWE4NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTg2NSw3ICs4NjUsNyBAQAogICAg ICAgPC9wYXJhPgogICAgICAgPHBhcmE+CiAgICAgICAgVGhlIEItdHJlZSBvcGVyYXRvciBmYW1p bHkgdGhpcyBlbnRyeSBzb3J0cyBhY2NvcmRpbmcgdG8sIGlmIGFuCi0gICAgICAgb3JkZXJpbmcg b3BlcmF0b3I7IHplcm8gaWYgYSBzZWFyY2ggb3BlcmF0b3IKKyAgICAgICBvcmRlcmluZyBvcGVy YXRvcjsgemVybyBpZiBhIHNlYXJjaCBvcGVyYXRvciBvciBwb3J0aW9uIG9wZXJhdG9yCiAgICAg ICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9naXN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCmluZGV4IDYz OGQ5MTJkYzJkLi5kMDBkZjVjNWZhMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2dpc3Quc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCkBAIC0yNjYsNyArMjY2LDcgQEAgQ1JFQVRF IElOREVYIE9OIG15X3RhYmxlIFVTSU5HIEdJU1QgKG15X2luZXRfY29sdW1uIGluZXRfb3BzKTsK IAogIDxwYXJhPgogICAgVGhlcmUgYXJlIGZpdmUgbWV0aG9kcyB0aGF0IGFuIGluZGV4IG9wZXJh dG9yIGNsYXNzIGZvcgotICAgPGFjcm9ueW0+R2lTVDwvYWNyb255bT4gbXVzdCBwcm92aWRlLCBh bmQgc2V2ZW4gdGhhdCBhcmUgb3B0aW9uYWwuCisgICA8YWNyb255bT5HaVNUPC9hY3JvbnltPiBt dXN0IHByb3ZpZGUsIGFuZCBuaW5lIHRoYXQgYXJlIG9wdGlvbmFsLgogICAgQ29ycmVjdG5lc3Mg b2YgdGhlIGluZGV4IGlzIGVuc3VyZWQKICAgIGJ5IHByb3BlciBpbXBsZW1lbnRhdGlvbiBvZiB0 aGUgPGZ1bmN0aW9uPnNhbWU8L2Z1bmN0aW9uPiwgPGZ1bmN0aW9uPmNvbnNpc3RlbnQ8L2Z1bmN0 aW9uPgogICAgYW5kIDxmdW5jdGlvbj51bmlvbjwvZnVuY3Rpb24+IG1ldGhvZHMsIHdoaWxlIGVm ZmljaWVuY3kgKHNpemUgYW5kIHNwZWVkKSBvZiB0aGUKQEAgLTI5NCw2ICsyOTQsMTIgQEAgQ1JF QVRFIElOREVYIE9OIG15X3RhYmxlIFVTSU5HIEdJU1QgKG15X2luZXRfY29sdW1uIGluZXRfb3Bz KTsKICAgIDxmaWxlbmFtZT5zcmMvaW5jbHVkZS9hY2Nlc3Mvc3RyYXRudW0uaDwvZmlsZW5hbWU+ KSBpbnRvIHN0cmF0ZWd5IG51bWJlcnMKICAgIHVzZWQgYnkgdGhlIG9wZXJhdG9yIGNsYXNzLiAg VGhpcyBsZXRzIHRoZSBjb3JlIGNvZGUgbG9vayB1cCBvcGVyYXRvcnMgZm9yCiAgICB0ZW1wb3Jh bCBjb25zdHJhaW50IGluZGV4ZXMuCisgICBUaGUgb3B0aW9uYWwgdGhpcnRlZW50aCBtZXRob2Qg PGZ1bmN0aW9uPmludGVyc2VjdDwvZnVuY3Rpb24+IGlzIHVzZWQgYnkKKyAgIDxsaXRlcmFsPkZP UiBQT1JUSU9OIE9GPC9saXRlcmFsPiB0byBjb21wdXRlIHRoZSBuZXcgYm91bmRzIG9mIHRoZSB1 cGRhdGVkLworICAgZGVsZXRlZCByZWNvcmQuCisgICBUaGUgb3B0aW9uYWwgZm91cnRlZW50aCBt ZXRob2QgPGZ1bmN0aW9uPndpdGhvdXRfcG9ydGlvbjwvZnVuY3Rpb24+IGlzIHVzZWQgYnkKKyAg IDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiB0byBjb21wdXRlIHRoZSBsZWZ0b3Zl ciByZWNvcmRzIG91dHNpZGUgdGhlCisgICB0YXJnZXRlZCBib3VuZHMuCiAgPC9wYXJhPgogCiAg PHZhcmlhYmxlbGlzdD4KQEAgLTEyMzUsNiArMTI0MSwxNTQgQEAgbXlfc3RyYXRudW0oUEdfRlVO Q1RJT05fQVJHUykKICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxp c3RlbnRyeT4KKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48ZnVuY3Rpb24+aW50ZXJz ZWN0PC9mdW5jdGlvbj48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAg ICAgIEdpdmVuIHR3byB2YWx1ZXMgb2YgdGhpcyBvcGNsYXNzLCBpdCByZXR1cm5zIHRoZWlyIGlu dGVyc2VjdGlvbi4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgaXMg dXNlZCBmb3IgdGVtcG9yYWwgdXBkYXRlIGNvbW1hbmRzIHRvIGNvbXB1dGUgdGhlCisgICAgICAg bmV3IGJvdW5kcyBvZiB0aGUgY2hhbmdlZCByb3cuCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxw YXJhPgorICAgICAgIFRoZSA8YWNyb255bT5TUUw8L2Fjcm9ueW0+IGRlY2xhcmF0aW9uIG9mIHRo ZSBmdW5jdGlvbiBtdXN0IGxvb2sgbGlrZQorICAgICAgIHRoaXMgKHVzaW5nIDxsaXRlcmFsPm15 X2ludGVyc2VjdDwvbGl0ZXJhbD4gYXMgYW4gZXhhbXBsZSk6CisKKzxwcm9ncmFtbGlzdGluZz4K K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIG15X3JhbmdlX2ludGVyc2VjdChhbnlyYW5nZSwg YW55cmFuZ2UpCitSRVRVUk5TIGFueXJhbmdlCitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VB R0UgQyBTVFJJQ1Q7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgPC9wYXJhPgorCisgICAgICAg PHBhcmE+CisgICAgICAgIFRoZSBtYXRjaGluZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0 aGVuIGZvbGxvdyB0aGlzIGV4YW1wbGU6CisKKzxwcm9ncmFtbGlzdGluZz4KK0RhdHVtCitteV9y YW5nZV9pbnRlcnNlY3QoUEdfRlVOQ1RJT05fQVJHUykKK3sKKyAgICBSYW5nZVR5cGUgICpyMSA9 IFBHX0dFVEFSR19SQU5HRV9QKDApOworICAgIFJhbmdlVHlwZSAgKnIyID0gUEdfR0VUQVJHX1JB TkdFX1AoMSk7CisgICAgVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlOworCisgICAgLyogRGlmZmVy ZW50IHR5cGVzIHNob3VsZCBiZSBwcmV2ZW50ZWQgYnkgQU5ZUkFOR0UgbWF0Y2hpbmcgcnVsZXMg Ki8KKyAgICBpZiAoUmFuZ2VUeXBlR2V0T2lkKHIxKSAhPSBSYW5nZVR5cGVHZXRPaWQocjIpKQor ICAgICAgICBlbG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMgZG8gbm90IG1hdGNoIik7CisKKyAgICB0 eXBjYWNoZSA9IHJhbmdlX2dldF90eXBjYWNoZShmY2luZm8sIFJhbmdlVHlwZUdldE9pZChyMSkp OworCisgICAgUEdfUkVUVVJOX1JBTkdFX1AocmFuZ2VfaW50ZXJzZWN0X2ludGVybmFsKHR5cGNh Y2hlLCByMSwgcjIpKTsKK30KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICA8L3BhcmE+CisgICAg IDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAg ICAgPHRlcm0+PGZ1bmN0aW9uPndpdGhvdXRfcG9ydGlvbjwvZnVuY3Rpb24+PC90ZXJtPgorICAg ICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBHaXZlbiB0d28gdmFsdWVzIG9mIHRo aXMgb3BjbGFzcywgaXQgc3VidHJhY3RzIHRoZSBzZWNvbmQgZm9yIHRoZSBmaXJzdAorICAgICAg IGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIHRoZSByZXN1bHRzLgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgVGhpcyBpcyB1c2VkIGZvciB0ZW1wb3JhbCB1cGRhdGUvZGVsZXRl IGNvbW1hbmRzIHRvIGNvbXB1dGUgdGhlCisgICAgICAgYm91bmRzIG9mIHRoZSB1bnRvdWNoZWQg ZHVyYXRpb24uCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSA8YWNy b255bT5TUUw8L2Fjcm9ueW0+IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxvb2sg bGlrZQorICAgICAgIHRoaXMgKHVzaW5nIDxsaXRlcmFsPm15X3JhbmdlX3dpdGhvdXRfcG9ydGlv bjwvbGl0ZXJhbD4gYXMgYW4gZXhhbXBsZSk6CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIG15X3JhbmdlX3dpdGhvdXRfcG9ydGlvbihhbnlyYW5nZSwgYW55 cmFuZ2UpCitSRVRVUk5TIGFueWFycmF5CitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0Ug QyBTVFJJQ1Q7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgPC9wYXJhPgorCisgICAgICAgPHBh cmE+CisgICAgICAgIFRoZSBtYXRjaGluZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVu IGZvbGxvdyB0aGlzIGV4YW1wbGU6CisKKzxwcm9ncmFtbGlzdGluZz4KK0RhdHVtCitteV9yYW5n ZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05fQVJHUykKK3sKKyAgICB0eXBlZGVmIHN0cnVj dCB7CisgICAgICAgIFJhbmdlVHlwZSAgKnJzWzJdOworICAgICAgICBpbnQgICAgICAgICBuOwor ICAgIH0gcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHg7CisKKyAgICBGdW5jQ2FsbENvbnRleHQg KmZ1bmNjdHg7CisgICAgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHggKmZjdHg7CisgICAgTWVt b3J5Q29udGV4dCBvbGRjb250ZXh0OworCisgICAgLyogc3R1ZmYgZG9uZSBvbmx5IG9uIHRoZSBm aXJzdCBjYWxsIG9mIHRoZSBmdW5jdGlvbiAqLworICAgIGlmIChTUkZfSVNfRklSU1RDQUxMKCkp CisgICAgeworICAgICAgICBSYW5nZVR5cGUgICAgICAgKnIxOworICAgICAgICBSYW5nZVR5cGUg ICAgICAgKnIyOworICAgICAgICBPaWQgICAgICAgICAgICAgIHJuZ3R5cGlkOworICAgICAgICBU eXBlQ2FjaGVFbnRyeSAgKnR5cGNhY2hlOworCisgICAgICAgIC8qIGNyZWF0ZSBhIGZ1bmN0aW9u IGNvbnRleHQgZm9yIGNyb3NzLWNhbGwgcGVyc2lzdGVuY2UgKi8KKyAgICAgICAgZnVuY2N0eCA9 IFNSRl9GSVJTVENBTExfSU5JVCgpOworCisgICAgICAgIC8qCisgICAgICAgICAqIHN3aXRjaCB0 byBtZW1vcnkgY29udGV4dCBhcHByb3ByaWF0ZSBmb3IgbXVsdGlwbGUgZnVuY3Rpb24gY2FsbHMK KyAgICAgICAgICovCisgICAgICAgIG9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8o ZnVuY2N0eC0mZ3Q7bXVsdGlfY2FsbF9tZW1vcnlfY3R4KTsKKworICAgICAgICByMSA9IFBHX0dF VEFSR19SQU5HRV9QKDApOworICAgICAgICByMiA9IFBHX0dFVEFSR19SQU5HRV9QKDEpOworCisg ICAgICAgIC8qIERpZmZlcmVudCB0eXBlcyBzaG91bGQgYmUgcHJldmVudGVkIGJ5IEFOWVJBTkdF IG1hdGNoaW5nIHJ1bGVzICovCisgICAgICAgIGlmIChSYW5nZVR5cGVHZXRPaWQocjEpICE9IFJh bmdlVHlwZUdldE9pZChyMikpCisgICAgICAgICAgICBlbG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMg ZG8gbm90IG1hdGNoIik7CisKKyAgICAgICAgLyogYWxsb2NhdGUgbWVtb3J5IGZvciB1c2VyIGNv bnRleHQgKi8KKyAgICAgICAgZmN0eCA9IChyYW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCAqKSBw YWxsb2Moc2l6ZW9mKHJhbmdlX3dpdGhvdXRfcG9ydGlvbl9mY3R4KSk7CisKKyAgICAgICAgLyoK KyAgICAgICAgICogSW5pdGlhbGl6ZSBzdGF0ZS4KKyAgICAgICAgICogV2UgY2FuJ3Qgc3RvcmUg dGhlIHJhbmdlIHR5cGNhY2hlIGluIGZuX2V4dHJhIGJlY2F1c2UgdGhlIGNhbGxlcgorICAgICAg ICAgKiB1c2VzIHRoYXQgZm9yIHRoZSBTUkYgc3RhdGUuCisgICAgICAgICAqLworICAgICAgICBy bmd0eXBpZCA9IFJhbmdlVHlwZUdldE9pZChyMSk7CisgICAgICAgIHR5cGNhY2hlID0gbG9va3Vw X3R5cGVfY2FjaGUocm5ndHlwaWQsIFRZUEVDQUNIRV9SQU5HRV9JTkZPKTsKKyAgICAgICAgaWYg KHR5cGNhY2hlLSZndDtybmdlbGVtdHlwZSA9PSBOVUxMKQorICAgICAgICAgICAgZWxvZyhFUlJP UiwgInR5cGUgJXUgaXMgbm90IGEgcmFuZ2UgdHlwZSIsIHJuZ3R5cGlkKTsKKyAgICAgICAgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIsIGZjdHgtJmd0O3Jz LCAmYW1wO2ZjdHgtJmd0O24pOworCisgICAgICAgIGZ1bmNjdHgtJmd0O3VzZXJfZmN0eCA9IGZj dHg7CisgICAgICAgIE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKyAgICB9CisK KyAgICAvKiBzdHVmZiBkb25lIG9uIGV2ZXJ5IGNhbGwgb2YgdGhlIGZ1bmN0aW9uICovCisgICAg ZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisgICAgZmN0eCA9IGZ1bmNjdHgtJmd0O3Vz ZXJfZmN0eDsKKworICAgIGlmIChmdW5jY3R4LSZndDtjYWxsX2NudHIgJmx0OyBmY3R4LSZndDtu KQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogV2UgbXVzdCBrZWVwIHRoZXNlIG9uIHNl cGFyYXRlIGxpbmVzCisgICAgICAgICAqIGJlY2F1c2UgU1JGX1JFVFVSTl9ORVhUIGRvZXMgY2Fs bF9jbnRyKys6CisgICAgICAgICAqLworICAgICAgICBSYW5nZVR5cGUgKnJldCA9IGZjdHgtJmd0 O3JzW2Z1bmNjdHgtJmd0O2NhbGxfY250cl07CisgICAgICAgIFNSRl9SRVRVUk5fTkVYVChmdW5j Y3R4LCBSYW5nZVR5cGVQR2V0RGF0dW0ocmV0KSk7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAg LyogZG8gd2hlbiB0aGVyZSBpcyBubyBtb3JlIGxlZnQgKi8KKyAgICAgICAgU1JGX1JFVFVSTl9E T05FKGZ1bmNjdHgpOworfQorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFyYT4KKyAgICAg PC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KICAgPC92YXJpYWJsZWxpc3Q+CiAKICAg PHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwgYi9kb2Mvc3JjL3Nn bWwveGluZGV4LnNnbWwKaW5kZXggM2ExOWRhYjE1ZTAuLjQ4N2E1N2JmMDE1IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21s CkBAIC01MDgsNyArNTA4LDcgQEAKICAgIDwvdGFibGU+CiAKICAgPHBhcmE+Ci0gICBHaVNUIGlu ZGV4ZXMgaGF2ZSB0d2VsdmUgc3VwcG9ydCBmdW5jdGlvbnMsIHNldmVuIG9mIHdoaWNoIGFyZSBv cHRpb25hbCwKKyAgIEdpU1QgaW5kZXhlcyBoYXZlIGZvdXJ0ZWVuIHN1cHBvcnQgZnVuY3Rpb25z LCBuaW5lIG9mIHdoaWNoIGFyZSBvcHRpb25hbCwKICAgIGFzIHNob3duIGluIDx4cmVmIGxpbmtl bmQ9InhpbmRleC1naXN0LXN1cHBvcnQtdGFibGUiLz4uCiAgICAoRm9yIG1vcmUgaW5mb3JtYXRp b24gc2VlIDx4cmVmIGxpbmtlbmQ9Imdpc3QiLz4uKQogICA8L3BhcmE+CkBAIC01OTYsNiArNTk2 LDE4IEBACiAgICAgICAgIHVzZWQgYnkgdGhlIG9wZXJhdG9yIGNsYXNzIChvcHRpb25hbCk8L2Vu dHJ5PgogICAgICAgIDxlbnRyeT4xMjwvZW50cnk+CiAgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5PjxmdW5jdGlvbj5pbnRlcnNlY3Q8L2Z1bmN0aW9uPjwvZW50cnk+Cisg ICAgICAgPGVudHJ5PmNvbXB1dGVzIGludGVyc2VjdGlvbiB3aXRoIDxsaXRlcmFsPkZPUiBQT1JU SU9OIE9GPC9saXRlcmFsPgorICAgICAgICBib3VuZHMgKG9wdGlvbmFsKTwvZW50cnk+CisgICAg ICAgPGVudHJ5PjEzPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8 ZW50cnk+PGZ1bmN0aW9uPndpdGhvdXRfcG9ydGlvbjwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAg ICA8ZW50cnk+Y29tcHV0ZXMgcmVtYWluaW5nIGR1cmF0aW9uKHMpIG91dHNpZGUKKyAgICAgICA8 bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRzIChvcHRpb25hbCk8L2VudHJ5 PgorICAgICAgIDxlbnRyeT4xNDwvZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9keT4K ICAgICA8L3Rncm91cD4KICAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvYnJpbi9icmluX3ZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3Zh bGlkYXRlLmMKaW5kZXggNTM5YWM5Y2IwNjQuLjA4MmY5NmI4NDdkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3ZhbGlkYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2JyaW4vYnJpbl92YWxpZGF0ZS5jCkBAIC04NywyMSArODcsMjEgQEAgYnJpbnZhbGlkYXRl KE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJ CWNhc2UgQlJJTl9QUk9DTlVNX09QQ0lORk86Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0 dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsIHRy dWUsCiAJCQkJCQkJCQkJCTEsIDEsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2Ug QlJJTl9QUk9DTlVNX0FERFZBTFVFOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJ CQkJNCwgNCwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlRFUk5BTE9J RCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBCUklOX1BST0NOVU1fQ09OU0lT VEVOVDoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywg Qk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0t PmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTMsIDQsIElOVEVSTkFM T0lELCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVDRPSUQpOwogCQkJ CWJyZWFrOwogCQkJY2FzZSBCUklOX1BST0NOVU1fVU5JT046Ci0JCQkJb2sgPSBjaGVja19hbXBy b2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0 cnVlLAogCQkJCQkJCQkJCQkzLCAzLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJCQkJCQkJ CQkJCUlOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9naW4vZ2ludmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFsaWRh dGUuYwppbmRleCA3NDQyMGExMjlhYS4uNzQ4Yjk0YTg5M2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naW4vZ2ludmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lu L2dpbnZhbGlkYXRlLmMKQEAgLTEwNCwzNyArMTA0LDM3IEBAIGdpbnZhbGlkYXRlKE9pZCBvcGNs YXNzb2lkKQogCQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgR0lO X0NPTVBBUkVfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0t PmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIElOVDRPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJMiwg Miwgb3Bja2V5dHlwZSwgb3Bja2V5dHlwZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJTl9FWFRS QUNUVkFMVUVfUFJPQzoKIAkJCQkvKiBTb21lIG9wY2xhc3NlcyBvbWl0IG51bGxGbGFncyAqLwot CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5B TE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5h bXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTIsIDMsIG9wY2lu dHlwZSwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsK IAkJCWNhc2UgR0lOX0VYVFJBQ1RRVUVSWV9QUk9DOgogCQkJCS8qIFNvbWUgb3BjbGFzc2VzIG9t aXQgbnVsbEZsYWdzIGFuZCBzZWFyY2hNb2RlICovCi0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwKKwkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNl LCBmYWxzZSwKIAkJCQkJCQkJCQkJNSwgNywgb3BjaW50eXBlLCBJTlRFUk5BTE9JRCwKIAkJCQkJ CQkJCQkJSU5UMk9JRCwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlRF Uk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fQ09OU0lTVEVO VF9QUk9DOgogCQkJCS8qIFNvbWUgb3BjbGFzc2VzIG9taXQgcXVlcnlLZXlzIGFuZCBudWxsRmxh Z3MgKi8KLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywg Qk9PTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJNiwgOCwgSU5URVJO QUxPSUQsIElOVDJPSUQsCiAJCQkJCQkJCQkJCW9wY2ludHlwZSwgSU5UNE9JRCwKIAkJCQkJCQkJ CQkJSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCwgSU5U RVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fQ09NUEFSRV9QQVJUSUFMX1BST0M6 Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRP SUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1w cm9jLCBJTlQ0T0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTQsIDQsIG9wY2tleXR5cGUs IG9wY2tleXR5cGUsCiAJCQkJCQkJCQkJCUlOVDJPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVh azsKIAkJCWNhc2UgR0lOX1RSSUNPTlNJU1RFTlRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJv Y19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQ0hBUk9JRCwgZmFsc2UsCisJCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIENIQVJPSUQsIGZhbHNlLCBm YWxzZSwKIAkJCQkJCQkJCQkJNywgNywgSU5URVJOQUxPSUQsIElOVDJPSUQsCiAJCQkJCQkJCQkJ CW9wY2ludHlwZSwgSU5UNE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVEVSTkFMT0lE LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYwppbmRleCAwOTAxNTQzYTYwYS4u ZTFhZDY1YjlhNGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxp ZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCkBAIC0x MDYsMzYgKzEwNiwzNiBAQCBnaXN0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCXN3aXRjaCAo cHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBHSVNUX0NPTlNJU1RFTlRfUFJPQzoK LQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9J RCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXBy b2MsIEJPT0xPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJNSwgNSwgSU5URVJOQUxPSUQs IG9wY2ludHlwZSwKIAkJCQkJCQkJCQkJSU5UMk9JRCwgT0lET0lELCBJTlRFUk5BTE9JRCk7CiAJ CQkJYnJlYWs7CiAJCQljYXNlIEdJU1RfVU5JT05fUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJv Y19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgb3Bja2V5dHlwZSwgZmFsc2UsCisJCQkJb2sg PSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIG9wY2tleXR5cGUsIGZh bHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJMiwgMiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsK IAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9DT01QUkVTU19QUk9DOgogCQkJY2FzZSBHSVNUX0RF Q09NUFJFU1NfUFJPQzoKIAkJCWNhc2UgR0lTVF9GRVRDSF9QUk9DOgotCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJ CQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxP SUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJl YWs7CiAJCQljYXNlIEdJU1RfUEVOQUxUWV9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNl LCB0cnVlLAogCQkJCQkJCQkJCQkzLCAzLCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5URVJO QUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9QSUNLU1BMSVRf UFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywg SU5URVJOQUxPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMiwgMiwg SU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9FUVVB TF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9j LCBJTlRFUk5BTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHBy b2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTMs IDMsIG9wY2tleXR5cGUsIG9wY2tleXR5cGUsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lEKTsKIAkJ CQlicmVhazsKIAkJCWNhc2UgR0lTVF9ESVNUQU5DRV9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1w cm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBGTE9BVDhPSUQsIGZhbHNlLAorCQkJCW9r ID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBGTE9BVDhPSUQsIGZh bHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJNSwgNSwgSU5URVJOQUxPSUQsIG9wY2ludHlwZSwKIAkJ CQkJCQkJCQkJSU5UMk9JRCwgT0lET0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CkBAIC0x NDMsMTMgKzE0MywyMSBAQCBnaXN0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQkJb2sgPSBj aGVja19hbW9wdHNwcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jKTsKIAkJCQlicmVhazsK IAkJCWNhc2UgR0lTVF9TT1JUU1VQUE9SVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCBmYWxzZSwgdHJ1ZSwK IAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSVNU X1NUUkFUTlVNX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIElOVDJPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIElOVDJPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkxLCAx LCBJTlQyT0lEKTsKIAkJCQlicmVhazsKKwkJCWNhc2UgR0lTVF9JTlRFUlNFQ1RfUFJPQzoKKwkJ CQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSW52YWxpZE9p ZCwgZmFsc2UsIHRydWUsCisJCQkJCQkJCQkJCTIsIDIsIG9wY2ludHlwZSwgb3BjaW50eXBlKTsK KwkJCQlicmVhazsKKwkJCWNhc2UgR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQzoKKwkJCQlvayA9 IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgb3BjaW50eXBlLCB0cnVl LCB0cnVlLAorCQkJCQkJCQkJCQkyLCAyLCBvcGNpbnR5cGUsIG9wY2ludHlwZSk7CisJCQkJYnJl YWs7CiAJCQlkZWZhdWx0OgogCQkJCWVyZXBvcnQoSU5GTywKIAkJCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCkBAIC0yNzEsNyArMjc5LDggQEAgZ2lzdHZh bGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlpZiAoaSA9PSBHSVNUX0RJU1RBTkNFX1BST0MgfHwg aSA9PSBHSVNUX0ZFVENIX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9DT01QUkVTU19QUk9DIHx8IGkg PT0gR0lTVF9ERUNPTVBSRVNTX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9PUFRJT05TX1BST0MgfHwg aSA9PSBHSVNUX1NPUlRTVVBQT1JUX1BST0MgfHwKLQkJCWkgPT0gR0lTVF9TVFJBVE5VTV9QUk9D KQorCQkJaSA9PSBHSVNUX1NUUkFUTlVNX1BST0MgfHwgaSA9PSBHSVNUX0lOVEVSU0VDVF9QUk9D IHx8CisJCQlpID09IEdJU1RfV0lUSE9VVF9QT1JUSU9OX1BST0MpCiAJCQljb250aW51ZTsJCQkv KiBvcHRpb25hbCBtZXRob2RzICovCiAJCWVyZXBvcnQoSU5GTywKIAkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLApAQCAtMzQ0LDYgKzM1Myw4IEBAIGdpc3Rh ZGp1c3RtZW1iZXJzKE9pZCBvcGZhbWlseW9pZCwKIAkJCWNhc2UgR0lTVF9PUFRJT05TX1BST0M6 CiAJCQljYXNlIEdJU1RfU09SVFNVUFBPUlRfUFJPQzoKIAkJCWNhc2UgR0lTVF9TVFJBVE5VTV9Q Uk9DOgorCQkJY2FzZSBHSVNUX0lOVEVSU0VDVF9QUk9DOgorCQkJY2FzZSBHSVNUX1dJVEhPVVRf UE9SVElPTl9QUk9DOgogCQkJCS8qIE9wdGlvbmFsLCBzbyBmb3JjZSBpdCB0byBiZSBhIHNvZnQg ZmFtaWx5IGRlcGVuZGVuY3kgKi8KIAkJCQlvcC0+cmVmX2lzX2hhcmQgPSBmYWxzZTsKIAkJCQlv cC0+cmVmX2lzX2ZhbWlseSA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGFzaC9oYXNodmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0 ZS5jCmluZGV4IDY2YTNiN2I0OWFkLi4zYThiZDYzNWIzOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hh c2gvaGFzaHZhbGlkYXRlLmMKQEAgLTEwNCwxMSArMTA0LDExIEBAIGhhc2h2YWxpZGF0ZShPaWQg b3BjbGFzc29pZCkKIAkJc3dpdGNoIChwcm9jZm9ybS0+YW1wcm9jbnVtKQogCQl7CiAJCQljYXNl IEhBU0hTVEFOREFSRF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9j Zm9ybS0+YW1wcm9jLCBJTlQ0T0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJ MSwgMSwgcHJvY2Zvcm0tPmFtcHJvY2xlZnR0eXBlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgSEFT SEVYVEVOREVEX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIElOVDhPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIElOVDhPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkyLCAy LCBwcm9jZm9ybS0+YW1wcm9jbGVmdHR5cGUsIElOVDhPSUQpOwogCQkJCWJyZWFrOwogCQkJY2Fz ZSBIQVNIT1BUSU9OU19QUk9DOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4 L2FtdmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlkYXRlLmMKaW5k ZXggMzJiYjQ3N2YzMjguLmIxMDMwOGI5YjY2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaW5kZXgvYW12YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZh bGlkYXRlLmMKQEAgLTE0OSw3ICsxNDksNyBAQCBpZGVudGlmeV9vcGZhbWlseV9ncm91cHMoQ2F0 Q0xpc3QgKm9wcmxpc3QsIENhdENMaXN0ICpwcm9jbGlzdCkKICAqIEluIGFueSBjYXNlIHRoZSBm dW5jdGlvbiByZXN1bHQgdHlwZSBtdXN0IG1hdGNoIHJlc3R5cGUgZXhhY3RseS4KICAqLwogYm9v bAotY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBl eGFjdCwKK2NoZWNrX2FtcHJvY19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgT2lkIHJlc3R5cGUsIGJv b2wgcmV0c2V0LCBib29sIGV4YWN0LAogCQkJCQkgICBpbnQgbWluYXJncywgaW50IG1heGFyZ3Ms Li4uKQogewogCWJvb2wJCXJlc3VsdCA9IHRydWU7CkBAIC0xNjMsOCArMTYzLDkgQEAgY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKIAkJ ZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGZ1bmN0aW9uICV1IiwgZnVuY2lk KTsKIAlwcm9jZm9ybSA9IChGb3JtX3BnX3Byb2MpIEdFVFNUUlVDVCh0cCk7CiAKLQlpZiAocHJv Y2Zvcm0tPnByb3JldHR5cGUgIT0gcmVzdHlwZSB8fCBwcm9jZm9ybS0+cHJvcmV0c2V0IHx8Ci0J CXByb2Nmb3JtLT5wcm9uYXJncyA8IG1pbmFyZ3MgfHwgcHJvY2Zvcm0tPnByb25hcmdzID4gbWF4 YXJncykKKwlpZiAoKHByb2Nmb3JtLT5wcm9yZXR0eXBlICE9IHJlc3R5cGUgJiYgT2lkSXNWYWxp ZChyZXN0eXBlKSkKKwkJfHwgcHJvY2Zvcm0tPnByb3JldHNldCAhPSByZXRzZXQgfHwgcHJvY2Zv cm0tPnByb25hcmdzIDwgbWluYXJncworCQl8fCBwcm9jZm9ybS0+cHJvbmFyZ3MgPiBtYXhhcmdz KQogCQlyZXN1bHQgPSBmYWxzZTsKIAogCXZhX3N0YXJ0KGFwLCBtYXhhcmdzKTsKQEAgLTE5MSw3 ICsxOTIsNyBAQCBjaGVja19hbXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBl LCBib29sIGV4YWN0LAogYm9vbAogY2hlY2tfYW1vcHRzcHJvY19zaWduYXR1cmUoT2lkIGZ1bmNp ZCkKIHsKLQlyZXR1cm4gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShmdW5jaWQsIFZPSURPSUQsIHRy dWUsIDEsIDEsIElOVEVSTkFMT0lEKTsKKwlyZXR1cm4gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShm dW5jaWQsIFZPSURPSUQsIGZhbHNlLCB0cnVlLCAxLCAxLCBJTlRFUk5BTE9JRCk7CiB9CiAKIC8q CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHZhbGlkYXRlLmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHZhbGlkYXRlLmMKaW5kZXggZTlkNGNkNjBkZTMu LjA0ZTQzZWYxZGNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHZh bGlkYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR2YWxpZGF0ZS5jCkBA IC05MSwxNiArOTEsMTYgQEAgYnR2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dpdGNoIChw cm9jZm9ybS0+YW1wcm9jbnVtKQogCQl7CiAJCQljYXNlIEJUT1JERVJfUFJPQzoKLQkJCQlvayA9 IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgdHJ1ZSwK KwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9J RCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTIsIDIsIHByb2Nmb3JtLT5hbXByb2NsZWZ0dHlw ZSwKIAkJCQkJCQkJCQkJcHJvY2Zvcm0tPmFtcHJvY3JpZ2h0dHlwZSk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIEJUU09SVFNVUFBPUlRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJv Y19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJ CQkJCQkJCTEsIDEsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlRJTlJBTkdF X1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2Ms IEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQk1LCA1LAogCQkJCQkJ CQkJCQlwcm9jZm9ybS0+YW1wcm9jbGVmdHR5cGUsCiAJCQkJCQkJCQkJCXByb2Nmb3JtLT5hbXBy b2NsZWZ0dHlwZSwKQEAgLTEwOCw3ICsxMDgsNyBAQCBidHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lk KQogCQkJCQkJCQkJCQlCT09MT0lELCBCT09MT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlRF UVVBTElNQUdFX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkxLCAx LCBPSURPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBCVE9QVElPTlNfUFJPQzoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9zcGdpc3Qvc3BndmFsaWRhdGUuYwppbmRleCA4NTBjM2I2NzVkNi4uZjdhMzk3Y2I4 Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFsaWRhdGUuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhbGlkYXRlLmMKQEAgLTEwOSw3ICsx MDksNyBAQCBzcGd2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dpdGNoIChwcm9jZm9ybS0+ YW1wcm9jbnVtKQogCQl7CiAJCQljYXNlIFNQR0lTVF9DT05GSUdfUFJPQzoKLQkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwgdHJ1ZSwKKwkJ CQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwg ZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTIsIDIsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7 CiAJCQkJY29uZmlnSW4uYXR0VHlwZSA9IHByb2Nmb3JtLT5hbXByb2NsZWZ0dHlwZTsKIAkJCQlt ZW1zZXQoJmNvbmZpZ091dCwgMCwgc2l6ZW9mKGNvbmZpZ091dCkpOwpAQCAtMTY0LDExICsxNjQs MTEgQEAgc3BndmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQljYXNlIFNQR0lTVF9DSE9PU0Vf UFJPQzoKIAkJCWNhc2UgU1BHSVNUX1BJQ0tTUExJVF9QUk9DOgogCQkJY2FzZSBTUEdJU1RfSU5O RVJfQ09OU0lTVEVOVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9j Zm9ybS0+YW1wcm9jLCBWT0lET0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJ MiwgMiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgU1BH SVNUX0xFQUZfQ09OU0lTVEVOVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVy ZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9j X3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJ CQkJCQkJMiwgMiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNh c2UgU1BHSVNUX0NPTVBSRVNTX1BST0M6CkBAIC0xNzcsNyArMTc3LDcgQEAgc3BndmFsaWRhdGUo T2lkIG9wY2xhc3NvaWQpCiAJCQkJCW9rID0gZmFsc2U7CiAJCQkJZWxzZQogCQkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywKLQkJCQkJCQkJCQkJCWNvbmZp Z091dExlYWZUeXBlLCB0cnVlLAorCQkJCQkJCQkJCQkJY29uZmlnT3V0TGVhZlR5cGUsIGZhbHNl LCB0cnVlLAogCQkJCQkJCQkJCQkJMSwgMSwgcHJvY2Zvcm0tPmFtcHJvY2xlZnR0eXBlKTsKIAkJ CQlicmVhazsKIAkJCWNhc2UgU1BHSVNUX09QVElPTlNfUFJPQzoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9tdWx0aXJhbmdldHlwZXMuYwppbmRleCA1NThjNmMxOGMzNC4uOGY3MjJiNjcyMmQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvbXVsdGlyYW5nZXR5cGVzLmMKQEAgLTEyMjUsNiArMTIyNSw3NyBA QCBtdWx0aXJhbmdlX21pbnVzX2ludGVybmFsKE9pZCBtbHRybmd0eXBvaWQsIFR5cGVDYWNoZUVu dHJ5ICpyYW5nZXR5cCwKIAlyZXR1cm4gbWFrZV9tdWx0aXJhbmdlKG1sdHJuZ3R5cG9pZCwgcmFu Z2V0eXAsIHJhbmdlX2NvdW50MywgcmFuZ2VzMyk7CiB9CiAKKy8qCisgKiBtdWx0aXJhbmdlIG1p bnVzIGJ1dCByZXR1cm5pbmcgdGhlIHJlc3VsdCBhcyBhIFNSRiwKKyAqIHdpdGggbm8gcm93cyBp ZiB0aGUgcmVzdWx0IHdvdWxkIGJlIGVtcHR5LgorICovCitEYXR1bQorbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24oUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlGdW5jQ2FsbENvbnRleHQgKmZ1bmNj dHg7CisJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OworCisJaWYgKCFTUkZfSVNfRklSU1RDQUxM KCkpCisJeworCQkvKiBXZSBuZXZlciBoYXZlIG1vcmUgdGhhbiBvbmUgcmVzdWx0ICovCisJCWZ1 bmNjdHggPSBTUkZfUEVSQ0FMTF9TRVRVUCgpOworCQlTUkZfUkVUVVJOX0RPTkUoZnVuY2N0eCk7 CisJfQorCWVsc2UKKwl7CisJCU11bHRpcmFuZ2VUeXBlICptcjE7CisJCU11bHRpcmFuZ2VUeXBl ICptcjI7CisJCU9pZAkJCW1sdHJuZ3R5cG9pZDsKKwkJVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hl OworCQlUeXBlQ2FjaGVFbnRyeSAqcmFuZ2V0eXA7CisJCWludDMyCQlyYW5nZV9jb3VudDE7CisJ CWludDMyCQlyYW5nZV9jb3VudDI7CisJCVJhbmdlVHlwZSAqKnJhbmdlczE7CisJCVJhbmdlVHlw ZSAqKnJhbmdlczI7CisJCU11bHRpcmFuZ2VUeXBlICptcjsKKworCQlmdW5jY3R4ID0gU1JGX0ZJ UlNUQ0FMTF9JTklUKCk7CisKKwkJLyoKKwkJICogc3dpdGNoIHRvIG1lbW9yeSBjb250ZXh0IGFw cHJvcHJpYXRlIGZvciBtdWx0aXBsZSBmdW5jdGlvbiBjYWxscworCQkgKi8KKwkJb2xkY29udGV4 dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhmdW5jY3R4LT5tdWx0aV9jYWxsX21lbW9yeV9jdHgp OworCisJCS8qIGdldCBhcmdzLCBkZXRvYXN0aW5nIGludG8gbXVsdGktY2FsbCBtZW1vcnkgY29u dGV4dCAqLworCQltcjEgPSBQR19HRVRBUkdfTVVMVElSQU5HRV9QKDApOworCQltcjIgPSBQR19H RVRBUkdfTVVMVElSQU5HRV9QKDEpOworCisJCW1sdHJuZ3R5cG9pZCA9IE11bHRpcmFuZ2VUeXBl R2V0T2lkKG1yMSk7CisJCXR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUobWx0cm5ndHlwb2lk LCBUWVBFQ0FDSEVfTVVMVElSQU5HRV9JTkZPKTsKKwkJaWYgKHR5cGNhY2hlLT5ybmd0eXBlID09 IE5VTEwpCisJCQllbG9nKEVSUk9SLCAidHlwZSAldSBpcyBub3QgYSBtdWx0aXJhbmdlIHR5cGUi LCBtbHRybmd0eXBvaWQpOworCQlyYW5nZXR5cCA9IHR5cGNhY2hlLT5ybmd0eXBlOworCisJCWlm IChNdWx0aXJhbmdlSXNFbXB0eShtcjEpIHx8IE11bHRpcmFuZ2VJc0VtcHR5KG1yMikpCisJCQlt ciA9IG1yMTsKKwkJZWxzZQorCQl7CisJCQltdWx0aXJhbmdlX2Rlc2VyaWFsaXplKHJhbmdldHlw LCBtcjEsICZyYW5nZV9jb3VudDEsICZyYW5nZXMxKTsKKwkJCW11bHRpcmFuZ2VfZGVzZXJpYWxp emUocmFuZ2V0eXAsIG1yMiwgJnJhbmdlX2NvdW50MiwgJnJhbmdlczIpOworCisJCQltciA9IG11 bHRpcmFuZ2VfbWludXNfaW50ZXJuYWwobWx0cm5ndHlwb2lkLAorCQkJCQkJCQkJCSAgIHJhbmdl dHlwLAorCQkJCQkJCQkJCSAgIHJhbmdlX2NvdW50MSwKKwkJCQkJCQkJCQkgICByYW5nZXMxLAor CQkJCQkJCQkJCSAgIHJhbmdlX2NvdW50MiwKKwkJCQkJCQkJCQkgICByYW5nZXMyKTsKKwkJfQor CisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKworCQlmdW5jY3R4ID0gU1JG X1BFUkNBTExfU0VUVVAoKTsKKwkJaWYgKE11bHRpcmFuZ2VJc0VtcHR5KG1yKSkKKwkJCVNSRl9S RVRVUk5fRE9ORShmdW5jY3R4KTsKKwkJZWxzZQorCQkJU1JGX1JFVFVSTl9ORVhUKGZ1bmNjdHgs IE11bHRpcmFuZ2VUeXBlUEdldERhdHVtKG1yKSk7CisJfQorfQorCiAvKiBtdWx0aXJhbmdlIGlu dGVyc2VjdGlvbiAqLwogRGF0dW0KIG11bHRpcmFuZ2VfaW50ZXJzZWN0KFBHX0ZVTkNUSU9OX0FS R1MpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMuYwppbmRleCAyZDk0YTZiODc3NC4uY2QwZmZl MjMxZTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMuYwpAQCAtMzEsNiArMzEsNyBAQAog I2luY2x1ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJjb21tb24vaGFzaGZuLmgiCisjaW5j bHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zOSw2ICs0MCw3 IEBACiAjaW5jbHVkZSAib3B0aW1pemVyL2NsYXVzZXMuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIv Y29zdC5oIgogI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKKyNpbmNsdWRlICJ1dGls cy9hcnJheS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMv ZGF0ZS5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtMTIxMyw2ICsxMjE1LDE2 NyBAQCByYW5nZV9zcGxpdF9pbnRlcm5hbChUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUsIGNvbnN0 IFJhbmdlVHlwZSAqcjEsIGNvbnN0IFJhbmdlVAogCXJldHVybiBmYWxzZTsKIH0KIAorLyogc3Vi dHJhY3Rpb24gYnV0IHJldHVybmluZyBhbiBhcnJheSB0byBhY2NvbW1vZGF0ZSBzcGxpdHMgKi8K K0RhdHVtCityYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05fQVJHUykKK3sKKwl0eXBl ZGVmIHN0cnVjdCB7CisJCVJhbmdlVHlwZSAgKnJzWzJdOworCQlpbnQJCQluOworCX0gcmFuZ2Vf d2l0aG91dF9wb3J0aW9uX2ZjdHg7CisKKwlGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHg7CisJcmFu Z2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHggKmZjdHg7CisJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0 OworCisJLyogc3R1ZmYgZG9uZSBvbmx5IG9uIHRoZSBmaXJzdCBjYWxsIG9mIHRoZSBmdW5jdGlv biAqLworCWlmIChTUkZfSVNfRklSU1RDQUxMKCkpCisJeworCQlSYW5nZVR5cGUJICAgKnIxOwor CQlSYW5nZVR5cGUJICAgKnIyOworCQlPaWQJCQkJcm5ndHlwaWQ7CisJCVR5cGVDYWNoZUVudHJ5 ICp0eXBjYWNoZTsKKworCQkvKiBjcmVhdGUgYSBmdW5jdGlvbiBjb250ZXh0IGZvciBjcm9zcy1j YWxsIHBlcnNpc3RlbmNlICovCisJCWZ1bmNjdHggPSBTUkZfRklSU1RDQUxMX0lOSVQoKTsKKwor CQkvKgorCQkgKiBzd2l0Y2ggdG8gbWVtb3J5IGNvbnRleHQgYXBwcm9wcmlhdGUgZm9yIG11bHRp cGxlIGZ1bmN0aW9uIGNhbGxzCisJCSAqLworCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3 aXRjaFRvKGZ1bmNjdHgtPm11bHRpX2NhbGxfbWVtb3J5X2N0eCk7CisKKwkJcjEgPSBQR19HRVRB UkdfUkFOR0VfUCgwKTsKKwkJcjIgPSBQR19HRVRBUkdfUkFOR0VfUCgxKTsKKworCQkvKiBEaWZm ZXJlbnQgdHlwZXMgc2hvdWxkIGJlIHByZXZlbnRlZCBieSBBTllSQU5HRSBtYXRjaGluZyBydWxl cyAqLworCQlpZiAoUmFuZ2VUeXBlR2V0T2lkKHIxKSAhPSBSYW5nZVR5cGVHZXRPaWQocjIpKQor CQkJZWxvZyhFUlJPUiwgInJhbmdlIHR5cGVzIGRvIG5vdCBtYXRjaCIpOworCisJCS8qIGFsbG9j YXRlIG1lbW9yeSBmb3IgdXNlciBjb250ZXh0ICovCisJCWZjdHggPSAocmFuZ2Vfd2l0aG91dF9w b3J0aW9uX2ZjdHggKikgcGFsbG9jKHNpemVvZihyYW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCkp OworCisJCS8qCisJCSAqIEluaXRpYWxpemUgc3RhdGUuCisJCSAqIFdlIGNhbid0IHN0b3JlIHRo ZSByYW5nZSB0eXBjYWNoZSBpbiBmbl9leHRyYSBiZWNhdXNlIHRoZSBjYWxsZXIKKwkJICogdXNl cyB0aGF0IGZvciB0aGUgU1JGIHN0YXRlLgorCQkgKi8KKwkJcm5ndHlwaWQgPSBSYW5nZVR5cGVH ZXRPaWQocjEpOworCQl0eXBjYWNoZSA9IGxvb2t1cF90eXBlX2NhY2hlKHJuZ3R5cGlkLCBUWVBF Q0FDSEVfUkFOR0VfSU5GTyk7CisJCWlmICh0eXBjYWNoZS0+cm5nZWxlbXR5cGUgPT0gTlVMTCkK KwkJCWVsb2coRVJST1IsICJ0eXBlICV1IGlzIG5vdCBhIHJhbmdlIHR5cGUiLCBybmd0eXBpZCk7 CisJCXJhbmdlX3dpdGhvdXRfcG9ydGlvbl9pbnRlcm5hbCh0eXBjYWNoZSwgcjEsIHIyLCBmY3R4 LT5ycywgJmZjdHgtPm4pOworCisJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9IGZjdHg7CisJCU1lbW9y eUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKwl9CisKKwkvKiBzdHVmZiBkb25lIG9uIGV2 ZXJ5IGNhbGwgb2YgdGhlIGZ1bmN0aW9uICovCisJZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQ KCk7CisJZmN0eCA9IGZ1bmNjdHgtPnVzZXJfZmN0eDsKKworCWlmIChmdW5jY3R4LT5jYWxsX2Nu dHIgPCBmY3R4LT5uKQorCXsKKwkJLyoKKwkJICogV2UgbXVzdCBrZWVwIHRoZXNlIG9uIHNlcGFy YXRlIGxpbmVzCisJCSAqIGJlY2F1c2UgU1JGX1JFVFVSTl9ORVhUIGRvZXMgY2FsbF9jbnRyKys6 CisJCSAqLworCQlSYW5nZVR5cGUgKnJldCA9IGZjdHgtPnJzW2Z1bmNjdHgtPmNhbGxfY250cl07 CisJCVNSRl9SRVRVUk5fTkVYVChmdW5jY3R4LCBSYW5nZVR5cGVQR2V0RGF0dW0ocmV0KSk7CisJ fQorCWVsc2UKKwkJLyogZG8gd2hlbiB0aGVyZSBpcyBubyBtb3JlIGxlZnQgKi8KKwkJU1JGX1JF VFVSTl9ET05FKGZ1bmNjdHgpOworfQorCisvKgorICogcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2lu dGVybmFsIC0gU2V0cyBvdXRwdXRzIGFuZCBvdXRwdXRuIHRvIHRoZSByYW5nZXMKKyAqIHJlbWFp bmluZyBhbmQgdGhlaXIgY291bnQgKHJlc3BlY3RpdmVseSkgYWZ0ZXIgc3VidHJhY3RpbmcgcjIg ZnJvbSByMS4KKyAqIFRoZSBhcnJheSBzaG91bGQgbmV2ZXIgY29udGFpbiBlbXB0eSByYW5nZXMu CisgKiBUaGUgb3V0cHV0cyB3aWxsIGJlIG9yZGVyZWQuIFdlIGV4cGVjdCB0aGF0IG91dHB1dHMg aXMgYW4gYXJyYXkgb2YKKyAqIFJhbmdlVHlwZSBwb2ludGVycywgYWxyZWFkeSBhbGxvY2F0ZWQg d2l0aCB0d28gZWxlbWVudHMuCisgKi8KK3ZvaWQKK3JhbmdlX3dpdGhvdXRfcG9ydGlvbl9pbnRl cm5hbChUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUsIFJhbmdlVHlwZSAqcjEsCisJCQkJCQkJICAg UmFuZ2VUeXBlICpyMiwgUmFuZ2VUeXBlICoqb3V0cHV0cywgaW50ICpvdXRwdXRuKQoreworCWlu dAkJCWNtcF9sMWwyLAorCQkJCWNtcF9sMXUyLAorCQkJCWNtcF91MWwyLAorCQkJCWNtcF91MXUy OworCVJhbmdlQm91bmQJbG93ZXIxLAorCQkJCWxvd2VyMjsKKwlSYW5nZUJvdW5kCXVwcGVyMSwK KwkJCQl1cHBlcjI7CisJYm9vbAkJZW1wdHkxLAorCQkJCWVtcHR5MjsKKworCXJhbmdlX2Rlc2Vy aWFsaXplKHR5cGNhY2hlLCByMSwgJmxvd2VyMSwgJnVwcGVyMSwgJmVtcHR5MSk7CisJcmFuZ2Vf ZGVzZXJpYWxpemUodHlwY2FjaGUsIHIyLCAmbG93ZXIyLCAmdXBwZXIyLCAmZW1wdHkyKTsKKwor CWlmIChlbXB0eTEpCisJeworCQkvKiBpZiByMSBpcyBlbXB0eSB0aGVuIHIxIC0gcjIgaXMgZW1w dHksIHNvIHJldHVybiB6ZXJvIHJlc3VsdHMgKi8KKwkJKm91dHB1dG4gPSAwOworCQlyZXR1cm47 CisJfQorCWVsc2UgaWYgKGVtcHR5MikKKwl7CisJCS8qIHIyIGlzIGVtcHR5IHNvIHRoZSByZXN1 bHQgaXMganVzdCByMSAod2hpY2ggd2Uga25vdyBpcyBub3QgZW1wdHkpICovCisJCW91dHB1dHNb MF0gPSByMTsKKwkJKm91dHB1dG4gPSAxOworCQlyZXR1cm47CisJfQorCisJLyoKKwkgKiBVc2Ug dGhlIHNhbWUgbG9naWMgYXMgcmFuZ2VfbWludXNfaW50ZXJuYWwsCisJICogYnV0IHN1cHBvcnQg dGhlIHNwbGl0IGNhc2UKKwkgKi8KKwljbXBfbDFsMiA9IHJhbmdlX2NtcF9ib3VuZHModHlwY2Fj aGUsICZsb3dlcjEsICZsb3dlcjIpOworCWNtcF9sMXUyID0gcmFuZ2VfY21wX2JvdW5kcyh0eXBj YWNoZSwgJmxvd2VyMSwgJnVwcGVyMik7CisJY21wX3UxbDIgPSByYW5nZV9jbXBfYm91bmRzKHR5 cGNhY2hlLCAmdXBwZXIxLCAmbG93ZXIyKTsKKwljbXBfdTF1MiA9IHJhbmdlX2NtcF9ib3VuZHMo dHlwY2FjaGUsICZ1cHBlcjEsICZ1cHBlcjIpOworCisJaWYgKGNtcF9sMWwyIDwgMCAmJiBjbXBf dTF1MiA+IDApCisJeworCQlsb3dlcjIuaW5jbHVzaXZlID0gIWxvd2VyMi5pbmNsdXNpdmU7CisJ CWxvd2VyMi5sb3dlciA9IGZhbHNlOwkvKiBpdCB3aWxsIGJlY29tZSB0aGUgdXBwZXIgYm91bmQg Ki8KKwkJb3V0cHV0c1swXSA9IG1ha2VfcmFuZ2UodHlwY2FjaGUsICZsb3dlcjEsICZsb3dlcjIs IGZhbHNlLCBOVUxMKTsKKworCQl1cHBlcjIuaW5jbHVzaXZlID0gIXVwcGVyMi5pbmNsdXNpdmU7 CisJCXVwcGVyMi5sb3dlciA9IHRydWU7CS8qIGl0IHdpbGwgYmVjb21lIHRoZSBsb3dlciBib3Vu ZCAqLworCQlvdXRwdXRzWzFdID0gbWFrZV9yYW5nZSh0eXBjYWNoZSwgJnVwcGVyMiwgJnVwcGVy MSwgZmFsc2UsIE5VTEwpOworCisJCSpvdXRwdXRuID0gMjsKKwl9CisJZWxzZSBpZiAoY21wX2wx dTIgPiAwIHx8IGNtcF91MWwyIDwgMCkKKwl7CisJCW91dHB1dHNbMF0gPSByMTsKKwkJKm91dHB1 dG4gPSAxOworCX0KKwllbHNlIGlmIChjbXBfbDFsMiA+PSAwICYmIGNtcF91MXUyIDw9IDApCisJ eworCQkqb3V0cHV0biA9IDA7CisJfQorCWVsc2UgaWYgKGNtcF9sMWwyIDw9IDAgJiYgY21wX3Ux bDIgPj0gMCAmJiBjbXBfdTF1MiA8PSAwKQorCXsKKwkJbG93ZXIyLmluY2x1c2l2ZSA9ICFsb3dl cjIuaW5jbHVzaXZlOworCQlsb3dlcjIubG93ZXIgPSBmYWxzZTsJLyogaXQgd2lsbCBiZWNvbWUg dGhlIHVwcGVyIGJvdW5kICovCisJCW91dHB1dHNbMF0gPSBtYWtlX3JhbmdlKHR5cGNhY2hlLCAm bG93ZXIxLCAmbG93ZXIyLCBmYWxzZSwgTlVMTCk7CisJCSpvdXRwdXRuID0gMTsKKwl9CisJZWxz ZSBpZiAoY21wX2wxbDIgPj0gMCAmJiBjbXBfdTF1MiA+PSAwICYmIGNtcF9sMXUyIDw9IDApCisJ eworCQl1cHBlcjIuaW5jbHVzaXZlID0gIXVwcGVyMi5pbmNsdXNpdmU7CisJCXVwcGVyMi5sb3dl ciA9IHRydWU7CS8qIGl0IHdpbGwgYmVjb21lIHRoZSBsb3dlciBib3VuZCAqLworCQlvdXRwdXRz WzBdID0gbWFrZV9yYW5nZSh0eXBjYWNoZSwgJnVwcGVyMiwgJnVwcGVyMSwgZmFsc2UsIE5VTEwp OworCQkqb3V0cHV0biA9IDE7CisJfQorCWVsc2UKKwl7CisJCWVsb2coRVJST1IsICJ1bmV4cGVj dGVkIGNhc2UgaW4gcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIik7CisJfQorfQorCiAvKiByYW5nZSAt PiByYW5nZSBhZ2dyZWdhdGUgZnVuY3Rpb25zICovCiAKIERhdHVtCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9hY2Nlc3MvYW12YWxpZGF0ZS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRh dGUuaAppbmRleCA0MjRhYjYzZmE1YS4uNjEwMzk1NDJkYWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9hbXZhbGlkYXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRh dGUuaApAQCAtMjgsOCArMjgsOCBAQCB0eXBlZGVmIHN0cnVjdCBPcEZhbWlseU9wRnVuY0dyb3Vw CiAKIC8qIEZ1bmN0aW9ucyBpbiBhY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jICovCiBleHRlcm4g TGlzdCAqaWRlbnRpZnlfb3BmYW1pbHlfZ3JvdXBzKENhdENMaXN0ICpvcHJsaXN0LCBDYXRDTGlz dCAqcHJvY2xpc3QpOwotZXh0ZXJuIGJvb2wgY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVu Y2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKLQkJCQkJCQkJICAgaW50IG1pbmFyZ3MsIGlu dCBtYXhhcmdzLC4uLik7CitleHRlcm4gYm9vbCBjaGVja19hbXByb2Nfc2lnbmF0dXJlKE9pZCBm dW5jaWQsIE9pZCByZXN0eXBlLCBib29sIHJldHNldCwKKwkJCQkJCQkJICAgYm9vbCBleGFjdCwg aW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLik7CiBleHRlcm4gYm9vbCBjaGVja19hbW9wdHNw cm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkKTsKIGV4dGVybiBib29sIGNoZWNrX2Ftb3Bfc2lnbmF0 dXJlKE9pZCBvcG5vLCBPaWQgcmVzdHlwZSwKIAkJCQkJCQkJIE9pZCBsZWZ0dHlwZSwgT2lkIHJp Z2h0dHlwZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oIGIvc3JjL2lu Y2x1ZGUvYWNjZXNzL2dpc3QuaAppbmRleCAyMmRkMDRjMTQxOC4uMTYzNWFiMDBhZDIgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNz L2dpc3QuaApAQCAtNDAsNyArNDAsOSBAQAogI2RlZmluZSBHSVNUX09QVElPTlNfUFJPQwkJCQkx MAogI2RlZmluZSBHSVNUX1NPUlRTVVBQT1JUX1BST0MJCQkxMQogI2RlZmluZSBHSVNUX1NUUkFU TlVNX1BST0MJCQkJMTIKLSNkZWZpbmUgR0lTVE5Qcm9jcwkJCQkJMTIKKyNkZWZpbmUgR0lTVF9J TlRFUlNFQ1RfUFJPQwkJCQkxMworI2RlZmluZSBHSVNUX1dJVEhPVVRfUE9SVElPTl9QUk9DCQkx NAorI2RlZmluZSBHSVNUTlByb2NzCQkJCQkxNAogCiAvKgogICogUGFnZSBvcGFxdWUgZGF0YSBp biBhIEdpU1QgaW5kZXggcGFnZS4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf YW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAppbmRleCA1ZDdm ZTI5MmJmNi4uN2I5NDA3NTQzYmIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf YW1wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKQEAgLTUw OSw2ICs1MDksOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvYm94X29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdib3gnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJvY251bSA9 PiAnMTInLAogICBhbXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCit7IGFtcHJv Y2ZhbWlseSA9PiAnZ2lzdC9ib3hfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2JveCcsCisgIGFt cHJvY3JpZ2h0dHlwZSA9PiAnYm94JywgYW1wcm9jbnVtID0+ICcxMycsCisgIGFtcHJvYyA9PiAn Ym94X2ludGVyc2VjdChib3gsYm94KScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L3BvbHlf b3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BvbHlnb24nLAogICBhbXByb2NyaWdodHR5cGUgPT4g J3BvbHlnb24nLCBhbXByb2NudW0gPT4gJzEnLAogICBhbXByb2MgPT4gJ2dpc3RfcG9seV9jb25z aXN0ZW50JyB9LApAQCAtNjA5LDYgKzYxMiwxMiBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3Qv cmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueXJhbmdlJywKICAgYW1wcm9jcmlnaHR0 eXBlID0+ICdhbnlyYW5nZScsIGFtcHJvY251bSA9PiAnMTInLAogICBhbXByb2MgPT4gJ2dpc3Rf c3RyYXRudW1faWRlbnRpdHknIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9yYW5nZV9vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2Fu eXJhbmdlJywgYW1wcm9jbnVtID0+ICcxMycsCisgIGFtcHJvYyA9PiAncmFuZ2VfaW50ZXJzZWN0 KGFueXJhbmdlLGFueXJhbmdlKScgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L3JhbmdlX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn YW55cmFuZ2UnLCBhbXByb2NudW0gPT4gJzE0JywKKyAgYW1wcm9jID0+ICdyYW5nZV93aXRob3V0 X3BvcnRpb24oYW55cmFuZ2UsYW55cmFuZ2UpJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3Qv bmV0d29ya19vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW5ldCcsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnaW5ldCcsIGFtcHJvY251bSA9PiAnMScsCiAgIGFtcHJvYyA9PiAnaW5ldF9naXN0X2Nv bnNpc3RlbnQnIH0sCkBAIC02NDksNiArNjU4LDEyIEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lz dC9tdWx0aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAg YW1wcm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICcxMicsCiAg IGFtcHJvYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ ICdnaXN0L211bHRpcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueW11bHRpcmFuZ2Un LAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLCBhbXByb2NudW0gPT4gJzEz JywKKyAgYW1wcm9jID0+ICdtdWx0aXJhbmdlX2ludGVyc2VjdChhbnltdWx0aXJhbmdlLGFueW11 bHRpcmFuZ2UpJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvbXVsdGlyYW5nZV9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn YW55bXVsdGlyYW5nZScsIGFtcHJvY251bSA9PiAnMTQnLAorICBhbXByb2MgPT4gJ211bHRpcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKGFueW11bHRpcmFuZ2UsYW55bXVsdGlyYW5nZSknIH0sCiAKICMg Z2luCiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2luL2FycmF5X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICdhbnlhcnJheScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA3YzBiNzRmZTA1NS4uM2Jh Njk0MjQ2ODIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysr IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTA3MzIsNiArMTA3MzIsMTAg QEAKIHsgb2lkID0+ICczODY5JywKICAgcHJvbmFtZSA9PiAncmFuZ2VfbWludXMnLCBwcm9yZXR0 eXBlID0+ICdhbnlyYW5nZScsCiAgIHByb2FyZ3R5cGVzID0+ICdhbnlyYW5nZSBhbnlyYW5nZScs IHByb3NyYyA9PiAncmFuZ2VfbWludXMnIH0sCit7IG9pZCA9PiAnODQwOCcsIGRlc2NyID0+ICdy ZW1vdmUgcG9ydGlvbiBmcm9tIHJhbmdlJywKKyAgcHJvbmFtZSA9PiAncmFuZ2Vfd2l0aG91dF9w b3J0aW9uJywgcHJvcm93cyA9PiAnMicsCisgIHByb3JldHNldCA9PiAndCcsIHByb3JldHR5cGUg PT4gJ2FueXJhbmdlJywKKyAgcHJvYXJndHlwZXMgPT4gJ2FueXJhbmdlIGFueXJhbmdlJywgcHJv c3JjID0+ICdyYW5nZV93aXRob3V0X3BvcnRpb24nIH0sCiB7IG9pZCA9PiAnMzg3MCcsIGRlc2Ny ID0+ICdsZXNzLWVxdWFsLWdyZWF0ZXInLAogICBwcm9uYW1lID0+ICdyYW5nZV9jbXAnLCBwcm9y ZXR0eXBlID0+ICdpbnQ0JywKICAgcHJvYXJndHlwZXMgPT4gJ2FueXJhbmdlIGFueXJhbmdlJywg cHJvc3JjID0+ICdyYW5nZV9jbXAnIH0sCkBAIC0xMTAxOSw2ICsxMTAyMywxMCBAQAogeyBvaWQg PT4gJzQyNzEnLAogICBwcm9uYW1lID0+ICdtdWx0aXJhbmdlX21pbnVzJywgcHJvcmV0dHlwZSA9 PiAnYW55bXVsdGlyYW5nZScsCiAgIHByb2FyZ3R5cGVzID0+ICdhbnltdWx0aXJhbmdlIGFueW11 bHRpcmFuZ2UnLCBwcm9zcmMgPT4gJ211bHRpcmFuZ2VfbWludXMnIH0sCit7IG9pZCA9PiAnODQw NicsIGRlc2NyID0+ICdyZW1vdmUgcG9ydGlvbiBmcm9tIG11bHRpcmFuZ2UnLAorICBwcm9uYW1l ID0+ICdtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbicsIHByb3Jvd3MgPT4gJzEnLAorICBwcm9y ZXRzZXQgPT4gJ3QnLCBwcm9yZXR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKKyAgcHJvYXJndHlw ZXMgPT4gJ2FueW11bHRpcmFuZ2UgYW55bXVsdGlyYW5nZScsIHByb3NyYyA9PiAnbXVsdGlyYW5n ZV93aXRob3V0X3BvcnRpb24nIH0sCiB7IG9pZCA9PiAnNDI3MicsCiAgIHByb25hbWUgPT4gJ211 bHRpcmFuZ2VfaW50ZXJzZWN0JywgcHJvcmV0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsCiAgIHBy b2FyZ3R5cGVzID0+ICdhbnltdWx0aXJhbmdlIGFueW11bHRpcmFuZ2UnLApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0 eXBlcy5oCmluZGV4IDJiNTc0ODczY2VmLi5lMWIyNTZiNjVmNCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3JhbmdldHlw ZXMuaApAQCAtMTY0LDUgKzE2NCw3IEBAIGV4dGVybiBSYW5nZVR5cGUgKm1ha2VfZW1wdHlfcmFu Z2UoVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlKTsKIGV4dGVybiBib29sIHJhbmdlX3NwbGl0X2lu dGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgY29uc3QgUmFuZ2VUeXBlICpyMSwKIAkJ CQkJCQkJIGNvbnN0IFJhbmdlVHlwZSAqcjIsIFJhbmdlVHlwZSAqKm91dHB1dDEsCiAJCQkJCQkJ CSBSYW5nZVR5cGUgKipvdXRwdXQyKTsKK2V4dGVybiB2b2lkIHJhbmdlX3dpdGhvdXRfcG9ydGlv bl9pbnRlcm5hbChUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUsIFJhbmdlVHlwZSAqcjEsCisJCQkJ CQkJCQlSYW5nZVR5cGUgKnIyLCBSYW5nZVR5cGUgKipvdXRwdXRzLCBpbnQgKm91dHB1dG4pOwog CiAjZW5kaWYJCQkJCQkJLyogUkFOR0VUWVBFU19IICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL211bHRpcmFuZ2V0eXBlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL211bHRpcmFuZ2V0eXBlcy5vdXQKaW5kZXggYzYzNjNlYmViMjQuLjExYWEyODJmZjM1 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL211bHRpcmFuZ2V0eXBlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tdWx0aXJhbmdldHlwZXMub3V0CkBA IC0yMjAwLDYgKzIyMDAsMTIyIEBAIFNFTEVDVCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiks IG51bXJhbmdlKDQsNSkpIC0gbnVtbXVsdGlyYW5nZShudW1yYW5nZSgtMiwwCiAge1sxLDIpLFs0 LDUpfQogKDEgcm93KQogCistLSB3aXRob3V0X3BvcnRpb24KK1NFTEVDVCBtdWx0aXJhbmdlX3dp dGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKCksIG51bW11bHRpcmFuZ2UoKSk7CisgbXVsdGly YW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCBy b3dzKQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZSgp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVDVCBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBu dW1tdWx0aXJhbmdlKCkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKX0KKygxIHJvdykKKworU0VMRUNUIG11bHRpcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2Uo Myw0KSksIG51bW11bHRpcmFuZ2UoKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFszLDQpfQorKDEgcm93KQorCitT RUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgx LDIpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxF Q1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIp KSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDQpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEgcm93KQor CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5n ZSgxLDIpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgzLDQpKSk7CisgbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEg cm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShu dW1yYW5nZSgxLDQpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSk7CisgbXVsdGlyYW5n ZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1syLDQp fQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGly YW5nZShudW1yYW5nZSgxLDQpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDMpKSk7CisgbXVs dGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg e1sxLDIpLFszLDQpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDQpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgw LDgpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24o bnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDQpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgwLDIp KSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisge1syLDQpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDgpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5n ZSgwLDIpLCBudW1yYW5nZSgzLDQpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1syLDMpLFs0LDgpfQorKDEgcm93KQorCitT RUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgx LDgpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDMpLCBudW1yYW5nZSg1LG51bGwpKSk7Cisg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cisge1sxLDIpLFszLDUpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVs dGlyYW5nZShudW1yYW5nZSgtMiwwKSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKSxbNCw1KX0KKygxIHJvdykKKwor U0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2Uo MSwyKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiw0KSkpOworIG11 bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHtbMSwyKSxbNCw1KX0KKygxIHJvdykKKworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMyw1KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKX0KKygxIHJvdykKKworU0VMRUNUIG11 bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVt cmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCw5KSkpOworIG11bHRpcmFuZ2Vf d2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykK KworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFu Z2UoMSwzKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiw5KSkpOwor IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHtbMSwyKX0KKygxIHJvdykKKworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9u KG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRpcmFu Z2UobnVtcmFuZ2UoOCw5KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKSxbNCw1KX0KKygxIHJvdykKKworU0VMRUNU IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwg bnVtcmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoLTIsMCksIG51bXJhbmdlKDgs OSkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB7WzEsMiksWzQsNSl9CisoMSByb3cpCisKIC0tIGludGVyc2VjdGlvbgogU0VM RUNUIG51bW11bHRpcmFuZ2UoKSAqIG51bW11bHRpcmFuZ2UoKTsKICA/Y29sdW1uPyAKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdldHlwZXMub3V0CmluZGV4IGE3Y2MyMjBiZjBkLi5hYjIz MDllOGMxZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yYW5nZXR5cGVz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdldHlwZXMub3V0CkBAIC00 ODEsNiArNDgxLDYwIEBAIHNlbGVjdCByYW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEyLjIsJ1td JyksIG51bXJhbmdlKDAuMCwxMjAuMiwnKF0nKSk7CiAgZW1wdHkKICgxIHJvdykKIAorc2VsZWN0 IHJhbmdlX3dpdGhvdXRfcG9ydGlvbignZW1wdHknOjpudW1yYW5nZSwgbnVtcmFuZ2UoMi4wLCAz LjApKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KDAgcm93cykKKworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjEsIDIu MiksICdlbXB0eSc6Om51bXJhbmdlKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFsxLjEsMi4yKQorKDEgcm93KQorCitzZWxlY3QgcmFuZ2Vfd2l0 aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgbnVtcmFuZ2UoMi4wLCAzLjApKTsKKyBy YW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLjEsMi4w KQorKDEgcm93KQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwg Mi4yKSwgbnVtcmFuZ2UoMi4yLCAzLjApKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLjEsMi4yKQorKDEgcm93KQorCitzZWxlY3QgcmFuZ2Vf d2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yLCdbXScpLCBudW1yYW5nZSgyLjAsIDMu MCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg WzEuMSwyLjApCisoMSByb3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFu Z2UoMS4wLCAzLjApLCBudW1yYW5nZSgxLjUsIDIuMCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMCwxLjUpCisgWzIuMCwzLjApCisoMiBy b3dzKQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwn W10nKSwgbnVtcmFuZ2UoMTEwLjAsMTIwLjIsJyhdJykpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEwLjEsMTIuMl0KKygxIHJvdykKKworc2Vs ZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJh bmdlKDAuMCwxMjAuMiwnKF0nKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24o bnVtcmFuZ2UoMS4wLDMuMCwnW10nKSwgbnVtcmFuZ2UoMS41LDIuMCwnKF0nKSk7CisgcmFuZ2Vf d2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMS4wLDEuNV0KKyAo Mi4wLDMuMF0KKygyIHJvd3MpCisKIHNlbGVjdCBudW1yYW5nZSg0LjUsIDUuNSwgJ1tdJykgJiYg bnVtcmFuZ2UoNS41LCA2LjUpOwogID9jb2x1bW4/IAogLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGlyYW5nZXR5cGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL211bHRpcmFuZ2V0eXBlcy5zcWwKaW5kZXggNDFkNTUyNDI4NWEuLjBiZmE3MWNhY2Ew IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9tdWx0aXJhbmdldHlwZXMuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL211bHRpcmFuZ2V0eXBlcy5zcWwKQEAgLTQxNCw2ICs0 MTQsMjggQEAgU0VMRUNUIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwzKSwgbnVtcmFuZ2UoNCw1 KSkgLSBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsOSkKIFNFTEVDVCBudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpIC0gbnVtbXVsdGlyYW5nZShudW1yYW5nZSg4LDkp KTsKIFNFTEVDVCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpIC0g bnVtbXVsdGlyYW5nZShudW1yYW5nZSgtMiwwKSwgbnVtcmFuZ2UoOCw5KSk7CiAKKy0tIHdpdGhv dXRfcG9ydGlvbgorU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFu Z2UoKSwgbnVtbXVsdGlyYW5nZSgpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlv bihudW1tdWx0aXJhbmdlKCksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworU0VMRUNU IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSks IG51bW11bHRpcmFuZ2UoKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVt bXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSgzLDQpKSwgbnVtbXVsdGlyYW5nZSgp KTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJh bmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKK1NFTEVDVCBtdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0 aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlv bihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDMs NCkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1t dWx0aXJhbmdlKG51bXJhbmdlKDIsMykpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdl KDAsOCkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdl KG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMikpKTsKK1NFTEVDVCBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsOCkpLCBu dW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMiksIG51bXJhbmdlKDMsNCkpKTsKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsOCkpLCBudW1t dWx0aXJhbmdlKG51bXJhbmdlKDIsMyksIG51bXJhbmdlKDUsbnVsbCkpKTsKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJh bmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDApKSk7CitTRUxFQ1QgbXVsdGly YW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5n ZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDQpKSk7CitTRUxFQ1QgbXVsdGlyYW5n ZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0 LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgzLDUpKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93 aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUp KSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgwLDkpKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDMpLCBudW1yYW5nZSg0LDUpKSwg bnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDkpKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVt bXVsdGlyYW5nZShudW1yYW5nZSg4LDkpKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVs dGlyYW5nZShudW1yYW5nZSgtMiwwKSwgbnVtcmFuZ2UoOCw5KSkpOworCiAtLSBpbnRlcnNlY3Rp b24KIFNFTEVDVCBudW1tdWx0aXJhbmdlKCkgKiBudW1tdWx0aXJhbmdlKCk7CiBTRUxFQ1QgbnVt bXVsdGlyYW5nZSgpICogbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKTsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcmFuZ2V0eXBlcy5zcWwKaW5kZXggYTVlY2RmNTM3MmYuLjdmYzgwNWQ5ZmZhIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbApAQCAtMTA3LDYgKzEwNywxNiBAQCBzZWxlY3QgbnVt cmFuZ2UoMS4xLCAyLjIsJ1tdJykgLSBudW1yYW5nZSgyLjAsIDMuMCk7CiBzZWxlY3QgcmFuZ2Vf bWludXMobnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScpLCBudW1yYW5nZSgxMTAuMCwxMjAuMiwnKF0n KSk7CiBzZWxlY3QgcmFuZ2VfbWludXMobnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScpLCBudW1yYW5n ZSgwLjAsMTIwLjIsJyhdJykpOwogCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKCdlbXB0 eSc6Om51bXJhbmdlLCBudW1yYW5nZSgyLjAsIDMuMCkpOworc2VsZWN0IHJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1yYW5nZSgxLjEsIDIuMiksICdlbXB0eSc6Om51bXJhbmdlKTsKK3NlbGVjdCBy YW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIpLCBudW1yYW5nZSgyLjAsIDMu MCkpOworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjEsIDIuMiksIG51 bXJhbmdlKDIuMiwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdl KDEuMSwgMi4yLCdbXScpLCBudW1yYW5nZSgyLjAsIDMuMCkpOworc2VsZWN0IHJhbmdlX3dpdGhv dXRfcG9ydGlvbihudW1yYW5nZSgxLjAsIDMuMCksIG51bXJhbmdlKDEuNSwgMi4wKSk7CitzZWxl Y3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFu Z2UoMTEwLjAsMTIwLjIsJyhdJykpOworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1y YW5nZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJhbmdlKDAuMCwxMjAuMiwnKF0nKSk7CitzZWxlY3Qg cmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMCwzLjAsJ1tdJyksIG51bXJhbmdlKDEu NSwyLjAsJyhdJykpOworCiBzZWxlY3QgbnVtcmFuZ2UoNC41LCA1LjUsICdbXScpICYmIG51bXJh bmdlKDUuNSwgNi41KTsKIHNlbGVjdCBudW1yYW5nZSgxLjAsIDIuMCkgPDwgbnVtcmFuZ2UoMy4w LCA0LjApOwogc2VsZWN0IG51bXJhbmdlKDEuMCwgMy4wLCdbXScpIDw8IG51bXJhbmdlKDMuMCwg NC4wLCdbXScpOwotLSAKMi40NS4wCgo= --00000000000030a223062454f4b4 Content-Type: application/octet-stream; name="v40-0004-Add-PERIODs.patch" Content-Disposition: attachment; filename="v40-0004-Add-PERIODs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m2754s3j3 RnJvbSA0MDUwNTIyMjJmNWJhODE1MDEzNTE5ZTc4N2I3N2RkZThhM2VmMGExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IFNhdCwgOSBKYW4gMjAyMSAyMTo1OTo0MyAtMDgwMApTdWJqZWN0 OiBbUEFUQ0ggdjQwIDQvNF0gQWRkIFBFUklPRHMKCi0gQWRkZWQgcGFyc2luZyBmb3IgU1FMOjIw MTEgc3ludGF4IHRvIGRlZmluZSBhbiBhcHBsaWNhdGlvbi10aW1lIFBFUklPRCBvbiBhCiAgdGFi bGUgKGluIGJvdGggQ1JFQVRFIFRBQkxFIGFuZCBBTFRFUiBUQUJMRSkuIE1ha2Ugc3VyZSB3ZSBj cmVhdGUgdGhlIFBFUklPRAogIGFmdGVyIGNvbHVtbnMgYXJlIGtub3duIChzaW5jZSBQRVJJT0Rz IGNhbiByZWZlciB0byB0aGVtKSBidXQgYmVmb3JlCiAgY29uc3RyYWludHMgYXJlIGhhbmRsZWQg KHNpbmNlIFBFUklPRHMgY2FuIGFwcGVhciBpbiB0aGVtKS4KLSBBZGRlZCBBTFRFUiBUQUJMRSBE Uk9QIHN1cHBvcnQgZm9yIFBFUklPRHMuCi0gQ3JlYXRlZCBwb3N0Z3Jlcy5wZ19wZXJpb2QgdGFi bGUuCi0gQ3JlYXRlZCBpbmZvcm1hdGlvbl9zY2hlbWEucGVyaW9kcyB2aWV3LgotIEFkZGVkIHBn X2R1bXAgc3VwcG9ydC4KLSBBZGRlZCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbi4KLSBBdXRvbWF0 aWNhbGx5IGRlZmluZSBhIGNvbnN0cmFpbnQgZm9yIGVhY2ggUEVSSU9EIHJlcXVpcmluZyB0aGUg c3RhcnQgY29sdW1uCiAgdG8gYmUgbGVzcyB0aGFuIHRoZSBlbmQgY29sdW1uLgotIFdoZW4gY3Jl YXRpbmcgYSBQRVJJT0QsIGNob29zZSBhbiBhcHByb3ByaWF0ZSByYW5nZSB0eXBlIHdlIGNhbiB1 c2UgdG8KICBpbXBsZW1lbnQgUEVSSU9ELXJlbGF0ZWQgb3BlcmF0aW9ucy4gWW91IGNhbiBjaG9v c2Ugb25lIGV4cGxpY2l0bHkgaWYgdGhlcmUKICBpcyBhbWJpZ3VpdHkgKGR1ZSB0byBtdWx0aXBs ZSByYW5nZSB0eXBlcyBjcmVhdGVkIG92ZXIgdGhlIHNhbWUgYmFzZSB0eXBlKS4KLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTEyICsKIGRvYy9z cmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTggKwogZG9jL3Ny Yy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sICAgICAgICAgIHwgICA2MyArCiBkb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwgICAgICAgICAgICAgfCAgIDI1ICsKIGRvYy9zcmMv c2dtbC9yZWYvY29tbWVudC5zZ21sICAgICAgICAgICAgICAgICB8ICAgIDIgKwogZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgICA2MSArLQogZG9jL3NyYy9z Z21sL3JlZi9kZWxldGUuc2dtbCAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogZG9jL3NyYy9z Z21sL3JlZi91cGRhdGUuc2dtbCAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogZG9jL3NyYy9z Z21sL3RyaWdnZXIuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArLQogc3JjL2JhY2tl bmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL2FjbGNoay5jICAgICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5k L2NhdGFsb2cvZGVwZW5kZW5jeS5jICAgICAgICAgICAgICB8ICAgMTQgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9oZWFwLmMgICAgICAgICAgICAgICAgICAgIHwgICA3NSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwgICAgfCAgIDIzICstCiBzcmMvYmFja2VuZC9j YXRhbG9nL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAgICB8ICAgNzIgKwogc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wZXJpb2QuYyAgICAgICAgICAgICAgIHwgIDEzMiArCiBzcmMvYmFja2VuZC9jYXRh bG9nL3NxbF9mZWF0dXJlcy50eHQgICAgICAgICAgfCAgICAyICstCiBzcmMvYmFja2VuZC9jb21t YW5kcy9jb21tZW50LmMgICAgICAgICAgICAgICAgfCAgIDEwICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL2Ryb3BjbWRzLmMgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFu ZHMvZXZlbnRfdHJpZ2dlci5jICAgICAgICAgIHwgICAgMiArCiBzcmMvYmFja2VuZC9jb21tYW5k cy9zZWNsYWJlbC5jICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICA4NjYgKystCiBzcmMvYmFja2VuZC9jb21tYW5k cy90cmlnZ2VyLmMgICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3ZpZXcuYyAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVNb2RpZnlUYWJsZS5jICAgICAgICB8ICAgNDAgKy0KIHNyYy9iYWNrZW5kL25vZGVzL25v ZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2Fu YWx5emUuYyAgICAgICAgICAgICAgICAgIHwgICA5OSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueSAgICAgICAgICAgICAgICAgICAgIHwgICA0NSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMTc5ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQv TWFrZWZpbGUgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9w ZXJpb2QuYyAgICAgICAgICAgICAgICB8ICAgNTYgKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv bHN5c2NhY2hlLmMgICAgICAgICAgIHwgICA4NyArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw X2FyY2hpdmVyLmMgICAgICAgICAgfCAgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMg ICAgICAgICAgICAgICAgICAgICB8ICAxNzUgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgg ICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29y dC5jICAgICAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDM2ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUg ICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmggICAg ICAgICAgICAgICAgICAgIHwgICAgNCArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxk ICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaCAg ICAgICAgICAgICAgICB8ICAgIDEgLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wZXJpb2QuaCAg ICAgICAgICAgICAgIHwgICA1OCArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3JhbmdlLmggICAg ICAgICAgICAgICAgfCAgICAyICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5oICAg ICAgICAgICAgICB8ICAgIDQgKy0KIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAg ICAgICAgICAgICB8ICAgIDYgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAg ICAgICAgICAgICB8ICAgNDAgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAg ICAgICAgICAgICB8ICAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAg ICAgICAgICAgIHwgICAgMiArLQogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0aWxjbWQuaCAg ICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAg ICAgICAgICAgfCAgICAzICsKIHNyYy9pbmNsdWRlL3V0aWxzL3BlcmlvZC5oICAgICAgICAgICAg ICAgICAgICB8ICAgMjEgKwogLi4uL3Rlc3RfZGRsX2RlcGFyc2UvdGVzdF9kZGxfZGVwYXJzZS5j ICAgICAgIHwgICAgNiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29m Lm91dCAgfCAgIDM4ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGVyaW9kcy5vdXQgICAg ICAgICB8ICAyNjcgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQg ICAgIHwgNDY1MCArKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZSAgICAgICAgICAgIHwgICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3Bv cnRpb25fb2Yuc3FsICAgICAgIHwgICAzMiArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wZXJpb2Rz LnNxbCAgICAgICAgICAgICAgfCAgMTc4ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRf b3ZlcmxhcHMuc3FsICAgICB8IDMyMTUgKysrKysrKysrKystCiA2MSBmaWxlcyBjaGFuZ2VkLCAx MDYxMiBpbnNlcnRpb25zKCspLCAyMjIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wZXJpb2QuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZXJpb2QuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcGVyaW9kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS91dGls cy9wZXJpb2QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cGVyaW9kcy5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wZXJp b2RzLnNxbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggZGJhZjlhODVlMzYuLjQyNWIwNTBiOTg0IDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbApAQCAtMjMwLDYgKzIzMCwxMSBAQAogICAgICAgPGVudHJ5PmluZm9ybWF0aW9u IGFib3V0IHBhcnRpdGlvbiBrZXkgb2YgdGFibGVzPC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXBlcmlvZCI+ PHN0cnVjdG5hbWU+cGdfcGVyaW9kPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAg PGVudHJ5PnBlcmlvZHM8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAg PGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctcG9saWN5Ij48c3RydWN0bmFtZT5wZ19w b2xpY3k8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CiAgICAgICA8ZW50cnk+cm93LXNlY3Vy aXR5IHBvbGljaWVzPC9lbnRyeT4KQEAgLTU3NDgsNiArNTc1MywxMTMgQEAgU0NSQU0tU0hBLTI1 NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVw bGFjZWFibGU+JmwKICAgICAgICBhcmUgc2ltcGxlIHJlZmVyZW5jZXMuCiAgICAgICA8L3BhcmE+ PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwv dGFibGU+CisgPC9zZWN0MT4KKworCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLXBlcmlvZCI+Cisg IDx0aXRsZT48c3RydWN0bmFtZT5wZ19wZXJpb2Q8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8 aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctcGVyaW9kIj4KKyAgIDxwcmltYXJ5PnBnX3Blcmlv ZDwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8 c3RydWN0bmFtZT5wZ19wZXJpb2Q8L3N0cnVjdG5hbWU+IHN0b3JlcworICAgaW5mb3JtYXRpb24g YWJvdXQgc3lzdGVtIGFuZCBhcHBsaWNhdGlvbiB0aW1lIHBlcmlvZHMuCisgIDwvcGFyYT4KKwor ICA8cGFyYT4KKyAgIFBlcmlvZHMgYXJlIGRlc2NyaWJlZCBpbiA8eHJlZiBsaW5rZW5kPSJkZGwt cGVyaW9kcyIvPi4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFt ZT5wZ19wZXJpb2Q8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorCisgICA8dGdyb3VwIGNv bHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg Q29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0 aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKwor ICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnBlcm5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUGVyaW9kIG5hbWUKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+cGVycmVsaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAg ICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jbGFzcyI+PHN0cnVjdG5h bWU+cGdfY2xhc3M8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3Rm aWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgdGFibGUgdGhp cyBwZXJpb2QgYmVsb25ncyB0bworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZXJzdGFy dDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDI8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxp bmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdHRyaWJ1dGUiPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0 ZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5hdHRudW08L3N0cnVjdGZpZWxkPikK KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBudW1iZXIgb2YgdGhlIHN0 YXJ0IGNvbHVtbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZXJlbmQ8L3N0cnVjdGZp ZWxkPiA8dHlwZT5pbnQyPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9 ImNhdGFsb2ctcGctYXR0cmlidXRlIj48c3RydWN0bmFtZT5wZ19hdHRyaWJ1dGU8L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+YXR0bnVtPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgbnVtYmVyIG9mIHRoZSBlbmQgY29sdW1uCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBlcnJhbmdlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ aW50MjwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LWF0dHJpYnV0ZSI+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPjwvbGluaz4u PHN0cnVjdGZpZWxkPmF0dG51bTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgVGhlIG51bWJlciBvZiB0aGUgPGxpdGVyYWw+R0VORVJBVEVEPC9saXRl cmFsPiBjb2x1bW4gdGhhdCBpbXBsZW1lbnRzIHRoZSA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+ LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZXJjb25zdHJhaW50PC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNh dGFsb2ctcGctY29uc3RyYWludCI+PHN0cnVjdG5hbWU+cGdfY29uc3RyYWludDwvc3RydWN0bmFt ZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBPSUQgb2YgdGhlIHBlcmlvZCdzIDxsaXRlcmFsPkNI RUNLPC9saXRlcmFsPiBjb25zdHJhaW50CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggOGFi MGRkYjExMmYuLmMwZDUxNDYyNTZlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC0xMzU2LDYgKzEzNTYsNjQgQEAgQ1JFQVRF IFRBQkxFIGNpcmNsZXMgKAogICA8L3NlY3QyPgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImRk bC1wZXJpb2RzIj4KKyAgPHRpdGxlPlBlcmlvZHM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgUGVy aW9kcyBhcmUgZGVmaW5pdGlvbnMgb24gYSB0YWJsZSB0aGF0IGFzc29jaWF0ZSBhIHBlcmlvZCBu YW1lIHdpdGggYSBzdGFydAorICAgY29sdW1uIGFuZCBhbiBlbmQgY29sdW1uLiAgQm90aCBjb2x1 bW5zIG11c3QgYmUgb2YgZXhhY3RseSB0aGUgc2FtZSB0eXBlCisgICAoaW5jbHVkaW5nIGNvbGxh dGlvbiksIGhhdmUgYSBidHJlZSBvcGVyYXRvciBjbGFzcywgYW5kIHRoZSBzdGFydCBjb2x1bW4K KyAgIHZhbHVlIG11c3QgYmUgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBlbmQgY29sdW1uIHZhbHVl LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGVyZSBhcmUgdHdvIHR5cGVzIG9mIHBlcmlv ZHM6IGFwcGxpY2F0aW9uIGFuZCBzeXN0ZW0uICBTeXN0ZW0gcGVyaW9kcyBhcmUKKyAgIGRpc3Rp bmd1aXNoZWQgYnkgdGhlaXIgbmFtZSB3aGljaCBtdXN0IGJlIDxsaXRlcmFsPlNZU1RFTV9USU1F PC9saXRlcmFsPi4gIEFueQorICAgb3RoZXIgbmFtZSBpcyBhbiBhcHBsaWNhdGlvbiBwZXJpb2Qu CisgIDwvcGFyYT4KKworICA8c2VjdDIgaWQ9ImRkbC1wZXJpb2RzLWFwcGxpY2F0aW9uLXBlcmlv ZHMiPgorICA8dGl0bGU+QXBwbGljYXRpb24gUGVyaW9kczwvdGl0bGU+CisKKyAgIDxpbmRleHRl cm0+CisgICAgPHByaW1hcnk+cGVyaW9kPC9wcmltYXJ5PgorICAgIDxzZWNvbmRhcnk+YXBwbGlj YXRpb248L3NlY29uZGFyeT4KKyAgIDwvaW5kZXh0ZXJtPgorCisgICA8cGFyYT4KKyAgICBBcHBs aWNhdGlvbiBwZXJpb2RzIGFyZSBkZWZpbmVkIG9uIGEgdGFibGUgdXNpbmcgdGhlIGZvbGxvd2lu ZyBzeW50YXg6CisgICA8L3BhcmE+CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBi aWxsaW5nX2FkZHJlc3NlcyAoCisgIGN1c3RvbWVyX2lkIGludGVnZXIsCisgIGFkZHJlc3NfaWQg aW50ZWdlciwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90byBkYXRlLAorICA8ZW1waGFz aXM+UEVSSU9EIEZPUiB2YWxpZGl0eSAodmFsaWRfZnJvbSwgdmFsaWRfdG8pPC9lbXBoYXNpcz4K Kyk7Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICA8cGFyYT4KKyAgICBBcHBsaWNhdGlvbiBwZXJp b2RzIGNhbiBiZSB1c2VkIHRvIGRlZmluZSB0ZW1wb3JhbCBwcmltYXJ5IGFuZCBmb3JlaWduIGtl eXMuCisgICAgQW55IHRhYmxlIHdpdGggYSB0ZW1wb3JhbCBwcmltYXJ5IGtleSBpcyBhIHRlbXBv cmFsIHRhYmxlIGFuZCBzdXBwb3J0cyB0ZW1wb3JhbCB1cGRhdGUgYW5kIGRlbGV0ZSBjb21tYW5k cy4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4KKworICA8c2VjdDIgaWQ9ImRkbC1wZXJpb2RzLXN5 c3RlbS1wZXJpb2RzIj4KKyAgIDx0aXRsZT5TeXN0ZW0gUGVyaW9kczwvdGl0bGU+CisKKyAgIDxp bmRleHRlcm0+CisgICAgPHByaW1hcnk+cGVyaW9kPC9wcmltYXJ5PgorICAgIDxzZWNvbmRhcnk+ c3lzdGVtPC9zZWNvbmRhcnk+CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgUGVy aW9kcyBmb3IgPGxpdGVyYWw+U1lTVEVNX1RJTUU8L2xpdGVyYWw+IGFyZSBjdXJyZW50bHkgbm90 IGltcGxlbWVudGVkLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorIDwvc2VjdDE+CisKICA8c2Vj dDEgaWQ9ImRkbC1zeXN0ZW0tY29sdW1ucyI+CiAgIDx0aXRsZT5TeXN0ZW0gQ29sdW1uczwvdGl0 bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbCBi L2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbAppbmRleCA5NDQyYjA3MThjMC4u YjFmOGExNDEzYzAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNnbWwKQEAgLTQxNzEs NiArNDE3MSw2OSBAQCBPUkRFUiBCWSBjLm9yZGluYWxfcG9zaXRpb247CiAgIDwvdGFibGU+CiAg PC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1wZXJpb2RzIj4KKyAgPHRpdGxlPjxs aXRlcmFsPnBlcmlvZHM8L2xpdGVyYWw+PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSB2aWV3 IDxsaXRlcmFsPnBhcmFtZXRlcnM8L2xpdGVyYWw+IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0 IHRoZQorICAgcGVyaW9kcyBvZiBhbGwgdGFibGVzIGluIHRoZSBjdXJyZW50IGRhdGFiYXNlLiAg VGhlIHN0YXJ0IGFuZCBlbmQgY29sdW1uCisgICBuYW1lcyBhcmUgb25seSBzaG93biBpZiB0aGUg Y3VycmVudCB1c2VyIGhhcyBhY2Nlc3MgdG8gdGhlbSAoYnkgd2F5IG9mIGJlaW5nCisgICB0aGUg b3duZXIgb3IgaGF2aW5nIHNvbWUgcHJpdmlsZWdlKS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4K KyAgIDx0aXRsZT48bGl0ZXJhbD5wZXJpb2RzPC9saXRlcmFsPiBDb2x1bW5zPC90aXRsZT4KKwor ICAgPHRncm91cCBjb2xzPSIzIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50 cnk+TmFtZTwvZW50cnk+CisgICAgICA8ZW50cnk+RGF0YSBUeXBlPC9lbnRyeT4KKyAgICAgIDxl bnRyeT5EZXNjcmlwdGlvbjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAg ICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+dGFibGVfY2F0YWxv ZzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnNxbF9pZGVudGlmaWVyPC90 eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+TmFtZSBvZiB0aGUgZGF0YWJhc2UgY29udGFpbmlu ZyB0aGUgcGVyaW9kIChhbHdheXMgdGhlIGN1cnJlbnQgZGF0YWJhc2UpPC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD50YWJsZV9zY2hlbWE8 L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlw ZT48L2VudHJ5PgorICAgICAgPGVudHJ5Pk5hbWUgb2YgdGhlIHNjaGVtYSBjb250YWluaW5nIHRo ZSBwZXJpb2Q8L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 PjxsaXRlcmFsPnRhYmxlX25hbWU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlw ZT5zcWxfaWRlbnRpZmllcjwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5Pk5hbWUgb2YgdGhl IHRhYmxlIGNvbnRhaW5pbmcgdGhlIHBlcmlvZDwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cGVyaW9kX25hbWU8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgIDxlbnRyeT48dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT48L2VudHJ5PgorICAg ICAgPGVudHJ5Pk5hbWUgb2YgdGhlIHBlcmlvZDwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+c3RhcnRfY29sdW1uX25hbWU8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT48L2VudHJ5 PgorICAgICAgPGVudHJ5Pk5hbWUgb2YgdGhlIHN0YXJ0IGNvbHVtbiBmb3IgdGhlIHBlcmlvZDwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+ ZW5kX2NvbHVtbl9uYW1lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+c3Fs X2lkZW50aWZpZXI8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5OYW1lIG9mIHRoZSBlbmQg Y29sdW1uIGZvciB0aGUgcGVyaW9kPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4K KyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImluZm9z Y2hlbWEtcmVmZXJlbnRpYWwtY29uc3RyYWludHMiPgogICA8dGl0bGU+PGxpdGVyYWw+cmVmZXJl bnRpYWxfY29uc3RyYWludHM8L2xpdGVyYWw+PC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJs ZS5zZ21sCmluZGV4IDM2NzcwYzAxMmE2Li42ODM5YzgwMmQzZiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf dGFibGUuc2dtbApAQCAtNjEsNiArNjEsOCBAQCBBTFRFUiBUQUJMRSBbIElGIEVYSVNUUyBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBBTFRF UiBDT05TVFJBSU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25zdHJhaW50X25h bWU8L3JlcGxhY2VhYmxlPiBbIERFRkVSUkFCTEUgfCBOT1QgREVGRVJSQUJMRSBdIFsgSU5JVElB TExZIERFRkVSUkVEIHwgSU5JVElBTExZIElNTUVESUFURSBdCiAgICAgVkFMSURBVEUgQ09OU1RS QUlOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29uc3RyYWludF9uYW1lPC9yZXBs YWNlYWJsZT4KICAgICBEUk9QIENPTlNUUkFJTlQgWyBJRiBFWElTVFMgXSAgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0cmFpbnRfbmFtZTwvcmVwbGFjZWFibGU+IFsgUkVTVFJJ Q1QgfCBDQVNDQURFIF0KKyAgICBBREQgUEVSSU9EIEZPUiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5zdGFydF9jb2x1bW48L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmVuZF9jb2x1bW48L3JlcGxhY2VhYmxlPiApIFsgV0lUSCAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9yZXBsYWNlYWJsZT4gPSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSAp IF0KKyAgICBEUk9QIFBFUklPRCBGT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBl cmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gWyBSRVNUUklDVCB8IENBU0NBREUgXQogICAgIERJU0FC TEUgVFJJR0dFUiBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50cmlnZ2VyX25hbWU8 L3JlcGxhY2VhYmxlPiB8IEFMTCB8IFVTRVIgXQogICAgIEVOQUJMRSBUUklHR0VSIFsgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRyaWdnZXJfbmFtZTwvcmVwbGFjZWFibGU+IHwgQUxM IHwgVVNFUiBdCiAgICAgRU5BQkxFIFJFUExJQ0EgVFJJR0dFUiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBsYWNlYWJsZT4KQEAgLTU4Niw2ICs1ODgsMjkg QEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNf bGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0 ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1hbHRlcnRhYmxlLWRlc2MtYWRkLXBl cmlvZCI+CisgICAgPHRlcm0+PGxpdGVyYWw+QUREIFBFUklPRCBGT1I8L2xpdGVyYWw+PC90ZXJt PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gYWRkcyBhIG5l dyBwZXJpb2QgdG8gYSB0YWJsZSB1c2luZyB0aGUgc2FtZSBzeW50YXggYXMKKyAgICAgIDx4cmVm IGxpbmtlbmQ9InNxbC1jcmVhdGV0YWJsZSIvPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWFsdGVy dGFibGUtZGVzYy1kcm9wLXBlcmlvZCI+CisgICAgPHRlcm0+PGxpdGVyYWw+RFJPUCBQRVJJT0Qg Rk9SPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhpcyBmb3JtIGRyb3BzIHRoZSBzcGVjaWZpZWQgcGVyaW9kIG9uIGEgdGFibGUuICBUaGUgc3Rh cnQgYW5kIGVuZAorICAgICAgY29sdW1ucyB3aWxsIG5vdCBiZSBkcm9wcGVkIGJ5IHRoaXMgY29t bWFuZCBidXQgdGhlCisgICAgICA8bGl0ZXJhbD5DSEVDSzwvbGl0ZXJhbD4gY29uc3RyYWludCB3 aWxsIGJlLiAgWW91IHdpbGwgbmVlZCB0byBzYXkKKyAgICAgIDxsaXRlcmFsPkNBU0NBREU8L2xp dGVyYWw+IGlmIGFueXRoaW5nIG91dHNpZGUgdGhlIHRhYmxlIGRlcGVuZHMgb24gdGhlCisgICAg ICBjb2x1bW4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1hbHRlcnRhYmxlLWRlc2MtZGlzYWJsZS1l bmFibGUtdHJpZ2dlciI+CiAgICAgPHRlcm0+PGxpdGVyYWw+RElTQUJMRTwvbGl0ZXJhbD4vPGxp dGVyYWw+RU5BQkxFIFsgUkVQTElDQSB8IEFMV0FZUyBdIFRSSUdHRVI8L2xpdGVyYWw+PC90ZXJt PgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKaW5kZXggNWI0M2M1NmIxMzMuLjQ5 YzJkZjk5NDQ5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbApAQCAtNDQsNiArNDQsNyBAQCBDT01NRU5U IE9OCiAgIE9QRVJBVE9SIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcGVyYXRvcl9u YW1lPC9yZXBsYWNlYWJsZT4gKDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5sZWZ0X3R5 cGU8L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJpZ2h0X3R5 cGU8L3JlcGxhY2VhYmxlPikgfAogICBPUEVSQVRPUiBDTEFTUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiBVU0lORyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+aW5kZXhfbWV0aG9kPC9yZXBsYWNlYWJsZT4gfAogICBPUEVSQVRP UiBGQU1JTFkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBs YWNlYWJsZT4gVVNJTkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X21ldGhv ZDwvcmVwbGFjZWFibGU+IHwKKyAgUEVSSU9EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yZWxhdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4uPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBQT0xJQ1kgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnBvbGljeV9uYW1lPC9yZXBsYWNlYWJsZT4gT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFsgUFJPQ0VE VVJBTCBdIExBTkdVQUdFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFt ZTwvcmVwbGFjZWFibGU+IHwKICAgUFJPQ0VEVVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5wcm9jZWR1cmVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKCBbIFsgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmFyZ21vZGU8L3JlcGxhY2VhYmxlPiBdIFsgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmFyZ25hbWU8L3JlcGxhY2VhYmxlPiBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5hcmd0eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdICkgXSB8CkBAIC0z NDEsNiArMzQyLDcgQEAgQ09NTUVOVCBPTiBPUEVSQVRPUiBeICh0ZXh0LCB0ZXh0KSBJUyAnUGVy Zm9ybXMgaW50ZXJzZWN0aW9uIG9mIHR3byB0ZXh0cyc7CiBDT01NRU5UIE9OIE9QRVJBVE9SIC0g KE5PTkUsIGludGVnZXIpIElTICdVbmFyeSBtaW51cyc7CiBDT01NRU5UIE9OIE9QRVJBVE9SIENM QVNTIGludDRvcHMgVVNJTkcgYnRyZWUgSVMgJzQgYnl0ZSBpbnRlZ2VyIG9wZXJhdG9ycyBmb3Ig YnRyZWVzJzsKIENPTU1FTlQgT04gT1BFUkFUT1IgRkFNSUxZIGludGVnZXJfb3BzIFVTSU5HIGJ0 cmVlIElTICdhbGwgaW50ZWdlciBvcGVyYXRvcnMgZm9yIGJ0cmVlcyc7CitDT01NRU5UIE9OIFBF UklPRCBteV90YWJsZS5teV9jb2x1bW4gSVMgJ1NhbGVzIHByb21vdGlvbiB2YWxpZGl0eSc7CiBD T01NRU5UIE9OIFBPTElDWSBteV9wb2xpY3kgT04gbXl0YWJsZSBJUyAnRmlsdGVyIHJvd3MgYnkg dXNlcnMnOwogQ09NTUVOVCBPTiBQUk9DRURVUkUgbXlfcHJvYyAoaW50ZWdlciwgaW50ZWdlcikg SVMgJ1J1bnMgYSByZXBvcnQnOwogQ09NTUVOVCBPTiBQVUJMSUNBVElPTiBhbGx0YWJsZXMgSVMg J1B1Ymxpc2hlcyBhbGwgb3BlcmF0aW9ucyBvbiBhbGwgdGFibGVzJzsKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV90YWJsZS5zZ21sCmluZGV4IGNmN2FhNTEzNjQxLi43ZGUwZDc1ZmI2NyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV90YWJsZS5zZ21sCkBAIC0yMyw2ICsyMyw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRh dGlvbgogPHN5bm9wc2lzPgogQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZ IHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+ICggWwogICB7IDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBbIFNU T1JBR0UgeyBQTEFJTiB8IEVYVEVSTkFMIHwgRVhURU5ERUQgfCBNQUlOIHwgREVGQVVMVCB9IF0g WyBDT01QUkVTU0lPTiA8cmVwbGFjZWFibGU+Y29tcHJlc3Npb25fbWV0aG9kPC9yZXBsYWNlYWJs ZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0gWyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2Vh YmxlPiBbIC4uLiBdIF0KKyAgICB8IDxyZXBsYWNlYWJsZT5wZXJpb2RfZGVmaW5pdGlvbjwvcmVw bGFjZWFibGU+CiAgICAgfCA8cmVwbGFjZWFibGU+dGFibGVfY29uc3RyYWludDwvcmVwbGFjZWFi bGU+CiAgICAgfCBMSUtFIDxyZXBsYWNlYWJsZT5zb3VyY2VfdGFibGU8L3JlcGxhY2VhYmxlPiBb IDxyZXBsYWNlYWJsZT5saWtlX29wdGlvbjwvcmVwbGFjZWFibGU+IC4uLiBdIH0KICAgICBbLCAu Li4gXQpAQCAtMzcsNiArMzgsNyBAQCBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1Q T1JBUlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSQogQ1JFQVRFIFsg WyBHTE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJM RSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVf bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgT0YgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnR5cGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKAogICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFsgV0lUSCBPUFRJT05TIF0gWyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxl PiBbIC4uLiBdIF0KKyAgICB8IDxyZXBsYWNlYWJsZT5wZXJpb2RfZGVmaW5pdGlvbjwvcmVwbGFj ZWFibGU+CiAgICAgfCA8cmVwbGFjZWFibGU+dGFibGVfY29uc3RyYWludDwvcmVwbGFjZWFibGU+ IH0KICAgICBbLCAuLi4gXQogKSBdCkBAIC00OSw2ICs1MSw3IEBAIENSRUFURSBbIFsgR0xPQkFM IHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBO T1QgRVhJCiBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBURU1QIH0g fCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBQQVJUSVRJT04gT0YgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcmVudF90YWJsZTwvcmVwbGFjZWFibGU+IFsg KAogICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFj ZWFibGU+IFsgV0lUSCBPUFRJT05TIF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KKyAgICB8IDxyZXBsYWNl YWJsZT5wZXJpb2RfZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+CiAgICAgfCA8cmVwbGFjZWFibGU+ dGFibGVfY29uc3RyYWludDwvcmVwbGFjZWFibGU+IH0KICAgICBbLCAuLi4gXQogKSBdIHsgRk9S IFZBTFVFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFydGl0aW9uX2JvdW5kX3Nw ZWM8L3JlcGxhY2VhYmxlPiB8IERFRkFVTFQgfQpAQCAtNzMsNiArNzYsMTEgQEAgQ1JFQVRFIFsg WyBHTE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJM RSBbIElGIE5PVCBFWEkKICAgICBbIE9OIERFTEVURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIE9OIFVQREFURSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJs ZT4gXSB9CiBbIERFRkVSUkFCTEUgfCBOT1QgREVGRVJSQUJMRSBdIFsgSU5JVElBTExZIERFRkVS UkVEIHwgSU5JVElBTExZIElNTUVESUFURSBdCiAKKzxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+IGlzOjwvcGhy YXNlPgorCitQRVJJT0QgRk9SIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlv ZF9uYW1lPC9yZXBsYWNlYWJsZT4gfCBTWVNURU1fVElNRSB9ICggPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ICkKK1sgV0lUSCAoIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9yZXBsYWNlYWJsZT4gPSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4g XSApIF0KKwogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxl X2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KIAogWyBDT05TVFJBSU5UIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25zdHJhaW50X25hbWU8L3JlcGxhY2VhYmxl PiBdCkBAIC04MCw3ICs4OCw3IEBAIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7IFRFTVBP UkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJCiAgIFVOSVFVRSBb IE5VTExTIFsgTk9UIF0gRElTVElOQ1QgXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFdJVEhPVVQgT1ZFUkxBUFMg XSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBs YWNlYWJsZT4gfAogICBQUklNQVJZIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFdJVEhPVVQgT1ZFUkxBUFMg XSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBs YWNlYWJsZT4gfAogICBFWENMVURFIFsgVVNJTkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmluZGV4X21ldGhvZDwvcmVwbGFjZWFibGU+IF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhjbHVkZV9lbGVtZW50PC9yZXBsYWNlYWJsZT4gV0lUSCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+b3BlcmF0b3I8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4g WyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcmVkaWNhdGU8L3JlcGxh Y2VhYmxlPiApIF0gfAotICBGT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBdICkgUkVG RVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2Vh YmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFj ZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBdICkgXQorICBGT1JFSUdOIEtFWSAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBd IFssIFBFUklPRCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwv cmVwbGFjZWFibGU+IHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1l PC9yZXBsYWNlYWJsZT4gfSBdICkgUkVGRVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCB7IDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IHwgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gfSBd ICkgXQogICAgIFsgTUFUQ0ggRlVMTCB8IE1BVENIIFBBUlRJQUwgfCBNQVRDSCBTSU1QTEUgXSBb IE9OIERFTEVURSA8cmVwbGFjZWFibGUKIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2Fj dGlvbjwvcmVwbGFjZWFibGU+IF0gWyBPTiBVUERBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0gfQogWyBERUZFUlJBQkxF IHwgTk9UIERFRkVSUkFCTEUgXSBbIElOSVRJQUxMWSBERUZFUlJFRCB8IElOSVRJQUxMWSBJTU1F RElBVEUgXQpAQCAtMTM5LDYgKzE0NywxNCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAg bmFtZSBhcyBhbnkgZXhpc3RpbmcgZGF0YSB0eXBlIGluIHRoZSBzYW1lIHNjaGVtYS4KICAgPC9w YXJhPgogCisgIDxwYXJhPgorICAgUGVyaW9kcyBteSBiZSBkZWZpbmVkIG9uIHRhYmxlcywgc3Bl Y2lmeWluZyB0aGF0IHR3byBleGlzdGluZyBjb2x1bW5zCisgICByZXByZXNlbnQgc3RhcnQgYW5k IGVuZCB2YWx1ZXMgZm9yIHRoZSBwZXJpb2QuICBQZXJpb2RzIG1heSBoYXZlIGFueSBuYW1lCisg ICB0aGF0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCBhIGNvbHVtbiBuYW1lLCBidXQgdGhlIG5hbWUK KyAgIDxsaXRlcmFsPlNZU1RFTV9USU1FPC9saXRlcmFsPiBpcyBzcGVjaWFsLCB1c2VkIGZvciB2 ZXJzaW9uaW5nIHRhYmxlcy4KKyAgIFN5c3RlbSBwZXJpb2RzIGFyZSBub3QgeWV0IGltcGxlbWVu dGVkLiAgU2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1wZXJpb2RzIi8+IGZvciBtb3JlIGRldGFpbHMu CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSBvcHRpb25hbCBjb25zdHJhaW50IGNsYXVz ZXMgc3BlY2lmeSBjb25zdHJhaW50cyAodGVzdHMpIHRoYXQKICAgIG5ldyBvciB1cGRhdGVkIHJv d3MgbXVzdCBzYXRpc2Z5IGZvciBhbiBpbnNlcnQgb3IgdXBkYXRlIG9wZXJhdGlvbgpAQCAtODAz LDYgKzgxOSwzNyBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgIDwvbGlzdGl0ZW0+CiAg ICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxl LXBhcm1zLXBlcmlvZCI+CisgICAgPHRlcm0+PGxpdGVyYWw+UEVSSU9EIEZPUiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+LCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiApIFsgV0lU SCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9yZXBsYWNl YWJsZT4gPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxl PiBbLCAuLi4gXSApIF08L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBBIHBlcmlvZCBkZWZpbml0aW9uIGdpdmVzIHNlbWFudGljIG1lYW5pbmcgdG8g dHdvIGV4aXN0aW5nIGNvbHVtbnMgb2YKKyAgICAgIHRoZSB0YWJsZS4gIEl0IGRlZmluZXMgYSAi c3RhcnQgY29sdW1uIiBhbmQgYW4gImVuZCBjb2x1bW4iIHdoZXJlIHRoZQorICAgICAgc3RhcnQg dmFsdWUgaXMgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBlbmQgdmFsdWUuICBBCisgICAgICA8bGl0 ZXJhbD5DSEVDSzwvbGl0ZXJhbD4gY29uc3RyYWludCBpcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQg dG8gZW5mb3JjZQorICAgICAgdGhpcy4gWW91IGNhbiBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoYXQg Y29uc3RyYWludCB3aXRoIHRoZQorICAgICAgPGxpdGVyYWw+Y2hlY2tfY29uc3RyYWludF9uYW1l PC9saXRlcmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX29wdGlvbjwv cmVwbGFjZWFibGU+LgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBCb3RoIGNv bHVtbnMgbXVzdCBoYXZlIGV4YWN0bHkgdGhlIHNhbWUgdHlwZSBhbmQgbXVzdCBoYXZlIGEgcmFu Z2UgdHlwZQorICAgICAgZGVmaW5lZCBmcm9tIHRoZWlyIGJhc2UgdHlwZS4gIElmIHRoZXJlIGFy ZSBzZXZlcmFsIHJhbmdlIHR5cGVzIGZvciB0aGF0CisgICAgICBiYXNlIHR5cGUsIHlvdSBtdXN0 IHNwZWNpZnkgd2hpY2ggb25lIHlvdSB3YW50IGJ5IHVzaW5nIHRoZQorICAgICAgPGxpdGVyYWw+ cmFuZ2V0eXBlPC9saXRlcmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9k X29wdGlvbjwvcmVwbGFjZWFibGU+LgorICAgICAgQW55IGJhc2UgdHlwZSBpcyBhbGxvd2VkLCBh cyBsb25nIGFzIGl0IGhhcyBhIHJhbmdlIHR5cGUsIGFsdGhvdWdoIGl0IGlzCisgICAgICBleHBl Y3RlZCB0aGF0IG1vc3QgcGVyaW9kcyB3aWxsIHVzZSB0ZW1wb3JhbCB0eXBlcyBsaWtlIDxsaXRl cmFsPnRpbWVzdGFtcHR6PC9saXRlcmFsPgorICAgICAgb3IgPGxpdGVyYWw+ZGF0ZTwvbGl0ZXJh bD4uCisgICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAgIEEgaGlkZGVuIDxsaXRlcmFs PkdFTkVSQVRFRDwvbGl0ZXJhbD4gY29sdW1uIGlzIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBwZXJp b2QsCisgICAgICB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIHBlcmlvZC4gIElmIHN1Y2ggYSBj b2x1bW4gYWxyZWFkeSBleGlzdHMsIHlvdQorICAgICAgY2FuIHVzZSB0aGUgPGxpdGVyYWw+Y29s ZXhpc3RzPC9saXRlcmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX29w dGlvbjwvcmVwbGFjZWFibGU+CisgICAgICB3aXRoIHZhbHVlIDxsaXRlcmFsPnRydWU8L2xpdGVy YWw+IHRvIGF2b2lkIGNyZWF0aW5nIGl0LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldGFi bGUtcGFybXMtY29uc3RyYWludCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+Q09OU1RSQUlOVCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29uc3RyYWludF9uYW1lPC9yZXBsYWNlYWJsZT48 L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KQEAgLTExNTgsOCArMTIwNSw4IEBAIFdJ VEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVy YWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldGFi bGUtcGFybXMtcmVmZXJlbmNlcyI+CiAgICAgPHRlcm0+PGxpdGVyYWw+UkVGRVJFTkNFUyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+ICkgXSBb IE1BVENIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5tYXRjaHR5cGU8L3JlcGxhY2Vh YmxlPiBdIFsgT04gREVMRVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVu dGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdIFsgT04gVVBEQVRFIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdPC9saXRlcmFs PiAoY29sdW1uIGNvbnN0cmFpbnQpPC90ZXJtPgogCi0gICA8dGVybT48bGl0ZXJhbD5GT1JFSUdO IEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFj ZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBdICkKLSAgICBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywg UEVSSU9EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFj ZWFibGU+IF0gKSBdCisgICA8dGVybT48bGl0ZXJhbD5GT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFss IFBFUklPRCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVw bGFjZWFibGU+IHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9y ZXBsYWNlYWJsZT4gfSBdICkKKyAgICBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIHsgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gfCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB9 IF0gKSBdCiAgICAgWyBNQVRDSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bWF0Y2h0 eXBlPC9yZXBsYWNlYWJsZT4gXQogICAgIFsgT04gREVMRVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBPTiBV UERBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwv cmVwbGFjZWFibGU+IF08L2xpdGVyYWw+CkBAIC0xMTc5LDcgKzEyMjYsNyBAQCBXSVRIICggTU9E VUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBs YWNlYWJsZT4sIFJFTQogICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+Ci0gICAgICBJZiB0aGUg bGFzdCBjb2x1bW4gaXMgbWFya2VkIHdpdGggPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPiwgaXQg aXMKKyAgICAgIElmIHRoZSBsYXN0IGtleSBwYXJ0IGlzIG1hcmtlZCB3aXRoIDxsaXRlcmFsPlBF UklPRDwvbGl0ZXJhbD4sIGl0IGlzCiAgICAgICB0cmVhdGVkIGluIGEgc3BlY2lhbCB3YXkuICBX aGlsZSB0aGUgbm9uLTxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4KICAgICAgIGNvbHVtbnMgYXJl IGNvbXBhcmVkIGZvciBlcXVhbGl0eSAoYW5kIHRoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25lIG9m CiAgICAgICB0aGVtKSwgdGhlIDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4gY29sdW1uIGlzIG5v dC4gIEluc3RlYWQsIHRoZQpAQCAtMTE4Nyw4ICsxMjM0LDEwIEBAIFdJVEggKCBNT0RVTFVTIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxl PiwgUkVNCiAgICAgICByZWNvcmRzIChiYXNlZCBvbiB0aGUgbm9uLTxsaXRlcmFsPlBFUklPRDwv bGl0ZXJhbD4gcGFydHMgb2YgdGhlIGtleSkKICAgICAgIHdob3NlIGNvbWJpbmVkIDxsaXRlcmFs PlBFUklPRDwvbGl0ZXJhbD4gdmFsdWVzIGNvbXBsZXRlbHkgY292ZXIgdGhlCiAgICAgICByZWZl cmVuY2luZyByZWNvcmQncy4gIEluIG90aGVyIHdvcmRzLCB0aGUgcmVmZXJlbmNlIG11c3QgaGF2 ZSBhCi0gICAgICByZWZlcmVudCBmb3IgaXRzIGVudGlyZSBkdXJhdGlvbi4gIFRoaXMgY29sdW1u IG11c3QgYmUgYSByYW5nZSBvcgotICAgICAgbXVsdGlyYW5nZSB0eXBlLiAgSW4gYWRkaXRpb24s IHRoZSByZWZlcmVuY2VkIHRhYmxlIG11c3QgaGF2ZSBhIHByaW1hcnkKKyAgICAgIHJlZmVyZW50 IGZvciBpdHMgZW50aXJlIGR1cmF0aW9uLiAgVGhpcyBwYXJ0IG11c3QgYmUgZWl0aGVyIGEgCisg ICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRldGFibGUtcGFybXMtcGVyaW9kIj48bGl0ZXJh bD5QRVJJT0Q8L2xpdGVyYWw+PC9saW5rPgorICAgICAgb3IgYSBjb2x1bW4gd2l0aCBhIHJhbmdl IG9yIG11bHRpcmFuZ2UgdHlwZS4KKyAgICAgIEluIGFkZGl0aW9uLCB0aGUgcmVmZXJlbmNlZCB0 YWJsZSBtdXN0IGhhdmUgYSBwcmltYXJ5CiAgICAgICBrZXkgb3IgdW5pcXVlIGNvbnN0cmFpbnQg ZGVjbGFyZWQgd2l0aCA8bGl0ZXJhbD5XSVRIT1VUCiAgICAgICBPVkVSTEFQUzwvbGl0ZXJhbD4u IEZpbmFsbHksIGlmIHRoZSBmb3JlaWduIGtleSBoYXMgYSBQRVJJT0QKICAgICAgIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IHNwZWNpZmlj YXRpb24KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2RlbGV0ZS5zZ21sCmluZGV4IDYzMzBmZGZmNGMwLi44NzMzYzE3ZWIyYiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2RlbGV0ZS5zZ21sCkBAIC01Nyw3ICs1Nyw4IEBAIERFTEVURSBGUk9NIFsgT05MWSBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAq CiAgIDwvcGFyYT4KIAogICA8cGFyYT4KLSAgIElmIHRoZSB0YWJsZSBoYXMgYSByYW5nZSBvciBt dWx0aXJhbmdlIGNvbHVtbiwKKyAgIElmIHRoZSB0YWJsZSBoYXMgYSByYW5nZSBvciBtdWx0aXJh bmdlIGNvbHVtbiwgb3IgYQorICAgPGxpbmsgbGlua2VuZD0iZGRsLXBlcmlvZHMtYXBwbGljYXRp b24tcGVyaW9kcyI+PGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPjwvbGluaz4sCiAgICB5b3UgbWF5 IHN1cHBseSBhIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsIGFuZCB5 b3VyIGRlbGV0ZSB3aWxsCiAgICBvbmx5IGFmZmVjdCByb3dzIHRoYXQgb3ZlcmxhcCB0aGUgZ2l2 ZW4gaW50ZXJ2YWwuIEZ1cnRoZXJtb3JlLCBpZiBhIHJvdydzIHNwYW4KICAgIGV4dGVuZHMgb3V0 c2lkZSB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGJvdW5kcywgdGhlbiB5 b3VyIGRlbGV0ZQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwKaW5kZXggYzg5M2NjNzk1ZjIuLmQ0Y2UyNTc2MWI4 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvdXBkYXRlLnNnbWwKQEAgLTU0LDcgKzU0LDggQEAgVVBEQVRFIFsgT05MWSBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAq IF0KICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgSWYgdGhlIHRhYmxlIGhhcyBhIHJhbmdlIG9y IG11bHRpcmFuZ2UgY29sdW1uLAorICAgSWYgdGhlIHRhYmxlIGhhcyBhIHJhbmdlIG9yIG11bHRp cmFuZ2UgY29sdW1uLCBvciBhCisgICA8bGluayBsaW5rZW5kPSJkZGwtcGVyaW9kcy1hcHBsaWNh dGlvbi1wZXJpb2RzIj48bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+PC9saW5rPiwKICAgIHlvdSBt YXkgc3VwcGx5IGEgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGNsYXVzZSwgYW5k IHlvdXIgdXBkYXRlIHdpbGwKICAgIG9ubHkgYWZmZWN0IHJvd3MgdGhhdCBvdmVybGFwIHRoZSBn aXZlbiBpbnRlcnZhbC4gRnVydGhlcm1vcmUsIGlmIGEgcm93J3Mgc3BhbgogICAgZXh0ZW5kcyBv dXRzaWRlIHRoZSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRzLCB0aGVu IHlvdXIgdXBkYXRlCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sIGIvZG9j L3NyYy9zZ21sL3RyaWdnZXIuc2dtbAppbmRleCBlNGY2MzA3NWEzNi4uMjc4YmVhOTlkMDIgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Ry aWdnZXIuc2dtbApAQCAtODUxLDE3ICs4NTEsMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgRm9yUG9ydGlv bk9mU3RhdGUKIHsKICAgICBOb2RlVGFnIHR5cGU7CiAKLSAgICBjaGFyICAgKmZwX3JhbmdlTmFt ZTsgICAgICAgLyogdGhlIGNvbHVtbiBuYW1lZCBpbiBGT1IgUE9SVElPTiBPRiAqLworICAgIGNo YXIgICAqZnBfcmFuZ2VOYW1lOyAgICAgICAvKiB0aGUgY29sdW1uL1BFUklPRCBuYW1lZCBpbiBG T1IgUE9SVElPTiBPRiAqLwogICAgIE9pZCAgICAgZnBfcmFuZ2VUeXBlOyAgICAgICAvKiB0aGUg dHlwZSBvZiB0aGUgRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbiAqLwotICAgIGludCAgICAgZnBf cmFuZ2VBdHRubzsgICAgICAvKiB0aGUgYXR0bm8gb2YgdGhlIHJhbmdlIGNvbHVtbiAqLworICAg IGludCAgICAgZnBfcmFuZ2VBdHRubzsgICAgICAvKiB0aGUgYXR0bm8gb2YgdGhlIHJhbmdlIGNv bHVtbiAob3IgMCBmb3IgYSBQRVJJT0QpICovCisgICAgaW50ICAgICBmcF9wZXJpb2RTdGFydEF0 dG5vOyAgICAvKiB0aGUgUEVSSU9EJ3Mgc3RhcnQgY29sdW1uIChvciAwIGZvciBhIHJhbmdlKSAq LworICAgIGludCAgICAgZnBfcGVyaW9kRW5kQXR0bm87ICAgICAgLyogdGhlIFBFUklPRCdzIGVu ZCBjb2x1bW4gKG9yIDAgZm9yIGEgcmFuZ2UpICovCiAgICAgRGF0dW0gICBmcF90YXJnZXRSYW5n ZTsgICAgIC8qIHRoZSByYW5nZSBmcm9tIEZPUiBQT1JUSU9OIE9GICovCiB9IEZvclBvcnRpb25P ZlN0YXRlOwogPC9wcm9ncmFtbGlzdGluZz4KIAotICAgICAgIHdoZXJlIDxzdHJ1Y3RmaWVsZD5m cF9yYW5nZU5hbWU8L3N0cnVjdGZpZWxkPiBpcyB0aGUgcmFuZ2UKKyAgICAgICB3aGVyZSA8c3Ry dWN0ZmllbGQ+ZnBfcmFuZ2VOYW1lPC9zdHJ1Y3RmaWVsZD4gaXMgdGhlIHBlcmlvZCBvciByYW5n ZQogICAgICAgIGNvbHVtbiBuYW1lZCBpbiB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xp dGVyYWw+IGNsYXVzZSwKICAgICAgICA8c3RydWN0ZmllbGQ+ZnBfcmFuZ2VUeXBlPC9zdHJ1Y3Rm aWVsZD4gaXMgaXRzIHJhbmdlIHR5cGUsCiAgICAgICAgPHN0cnVjdGZpZWxkPmZwX3JhbmdlQXR0 bm88L3N0cnVjdGZpZWxkPiBpcyBpdHMgYXR0cmlidXRlIG51bWJlciwKKyAgICAgICA8c3RydWN0 ZmllbGQ+ZnBfcGVyaW9kU3RhcnRBdHRubzwvc3RydWN0ZmllbGQ+IGFuZAorICAgICAgIDxzdHJ1 Y3RmaWVsZD5mcF9wZXJpb2RFbmRBdHRubzwvc3RydWN0ZmllbGQ+IGFyZSB0aGUgYXR0bm9zIG9m IHRoZSBwZXJpb2QncworICAgICAgIHN0YXJ0IGFuZCBlbmQgY29sdW1ucyAob3IgPHN5bWJvbD4w PC9zeW1ib2w+IGlmIGEgcmFuZ2UgY29sdW1uIHdhcyB1c2VkKSwKICAgICAgICBhbmQgPHN0cnVj dGZpZWxkPmZwX3RhcmdldFJhbmdlPC9zdHJ1Y3RmaWVsZD4gaXMgYSByYW5nZXR5cGUgdmFsdWUg Y3JlYXRlZAogICAgICAgIGJ5IGV2YWx1YXRpbmcgdGhlIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9G PC9saXRlcmFsPiBib3VuZHMuCiAgICAgICAgPC9wYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXgg MTU4OWE3NWZkNTMuLjNiN2FmOTY1MDMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9n L01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTM5LDYgKzM5 LDcgQEAgT0JKUyA9IFwKIAlwZ19uYW1lc3BhY2UubyBcCiAJcGdfb3BlcmF0b3IubyBcCiAJcGdf cGFyYW1ldGVyX2FjbC5vIFwKKwlwZ19wZXJpb2QubyBcCiAJcGdfcHJvYy5vIFwKIAlwZ19wdWJs aWNhdGlvbi5vIFwKIAlwZ19yYW5nZS5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IDk1ZWIwYjEy Mjc3Li5kMmQxMGEwODNjMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsu YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCkBAIC0yODI1LDYgKzI4MjUsNyBA QCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJ CQkJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJCQkJ Y2FzZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoKKwkJCQkJY2FzZSBPQkpFQ1RfUEVSSU9EOgogCQkJ CQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCQkJCWNhc2UgT0JKRUNUX1BV QkxJQ0FUSU9OX1JFTDoKIAkJCQkJY2FzZSBPQkpFQ1RfUk9MRToKQEAgLTI5NjYsNiArMjk2Nyw3 IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwK IAkJCQkJY2FzZSBPQkpFQ1RfREVGQUNMOgogCQkJCQljYXNlIE9CSkVDVF9ET01DT05TVFJBSU5U OgogCQkJCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgorCQkJCQljYXNlIE9CSkVDVF9QRVJJ T0Q6CiAJCQkJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKIAkJCQkJY2FzZSBP QkpFQ1RfUFVCTElDQVRJT05fUkVMOgogCQkJCQljYXNlIE9CSkVDVF9ST0xFOgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2RlcGVuZGVuY3kuYwppbmRleCAwNDg5Y2JhYmNiOC4uYzdmMjZiYzcxODkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvZGVwZW5kZW5jeS5jCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19v cGVyYXRvci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BmYW1pbHkuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3BhcmFtZXRlcl9hY2wuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcG9saWN5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19w cm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgpAQCAtNjIyLDYgKzYy MywxNSBAQCBmaW5kRGVwZW5kZW50T2JqZWN0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3Qs CiAJCQkJCQlyZXR1cm47CiAJCQkJCX0KIAorCQkJCQkvKgorCQkJCQkgKiBJZiBhIHRhYmxlIGF0 dHJpYnV0ZSBpcyBhbiBpbnRlcm5hbCBwYXJ0IG9mIHNvbWV0aGluZyBlbHNlCisJCQkJCSAqIChl LmcuIHRoZSBHRU5FUkFURUQgY29sdW1uIHVzZWQgYnkgYSBQRVJJT0QpLAorCQkJCQkgKiBhbmQg d2UgYXJlIGRlbGV0aW5nIHRoZSB3aG9sZSB0YWJsZSwKKwkJCQkJICogdGhlbiBpdCdzIG9rYXku CisJCQkJCSAqLworCQkJCQlpZiAoZm91bmREZXAtPm9ianN1YmlkICYmICFvYmplY3QtPm9iamVj dFN1YklkKQorCQkJCQkJYnJlYWs7CisKIAkJCQkJLyoKIAkJCQkJICogV2UgcG9zdHBvbmUgYWN0 dWFsbHkgaXNzdWluZyB0aGUgZXJyb3IgbWVzc2FnZSB1bnRpbAogCQkJCQkgKiBhZnRlciB0aGlz IGxvb3AsIHNvIHRoYXQgd2UgY2FuIG1ha2UgdGhlIGJlaGF2aW9yCkBAIC0xNDAwLDYgKzE0MTAs MTAgQEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGludCBmbGFncykK IAkJCVJlbW92ZUF0dHJEZWZhdWx0QnlJZChvYmplY3QtPm9iamVjdElkKTsKIAkJCWJyZWFrOwog CisJCWNhc2UgUGVyaW9kUmVsYXRpb25JZDoKKwkJCVJlbW92ZVBlcmlvZEJ5SWQob2JqZWN0LT5v YmplY3RJZCk7CisJCQlicmVhazsKKwogCQljYXNlIExhcmdlT2JqZWN0UmVsYXRpb25JZDoKIAkJ CUxhcmdlT2JqZWN0RHJvcChvYmplY3QtPm9iamVjdElkKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAu YwppbmRleCAwMDc4YTEyZjI2ZS4uODQ5YmExYjM5NjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC00OSw2 ICs0OSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX29wY2xhc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3BhcnRpdGlvbmVkX3Rh YmxlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3N0YXRpc3RpYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgpAQCAtMjA2Miw2ICsyMDYzLDgw IEBAIFNldEF0dHJNaXNzaW5nKE9pZCByZWxpZCwgY2hhciAqYXR0bmFtZSwgY2hhciAqdmFsdWUp CiAJdGFibGVfY2xvc2UodGFibGVyZWwsIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOwogfQogCisvKgor ICogU3RvcmUgYSBwZXJpb2Qgb2YgcmVsYXRpb24gcmVsLgorICoKKyAqIFJldHVybnMgdGhlIE9J RCBvZiB0aGUgbmV3IHBnX3BlcmlvZCB0dXBsZS4KKyAqLworT2lkCitTdG9yZVBlcmlvZChSZWxh dGlvbiByZWwsIGNvbnN0IGNoYXIgKnBlcmlvZG5hbWUsIEF0dHJOdW1iZXIgc3RhcnRudW0sCisJ CQlBdHRyTnVtYmVyIGVuZG51bSwgQXR0ck51bWJlciByYW5nZW51bSwgT2lkIGNvbm9pZCkKK3sK KwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3BlcmlvZF07CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdf cGVyaW9kXTsKKwlSZWxhdGlvbglwZ19wZXJpb2Q7CisJSGVhcFR1cGxlCXR1cGxlOworCU9pZAkJ CW9pZDsKKwlOYW1lRGF0YQlwZXJuYW1lOworCU9iamVjdEFkZHJlc3MJbXlzZWxmLCByZWZlcmVu Y2VkOworCisJQXNzZXJ0KHJhbmdlbnVtICE9IEludmFsaWRBdHRyTnVtYmVyKTsKKworCW5hbWVz dHJjcHkoJnBlcm5hbWUsIHBlcmlvZG5hbWUpOworCisJTWVtU2V0KHZhbHVlcywgMCwgc2l6ZW9m KHZhbHVlcykpOworCU1lbVNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOworCisJcGdf cGVyaW9kID0gdGFibGVfb3BlbihQZXJpb2RSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsK KworCW9pZCA9IEdldE5ld09pZFdpdGhJbmRleChwZ19wZXJpb2QsIEF0dHJEZWZhdWx0T2lkSW5k ZXhJZCwgQW51bV9wZ19wZXJpb2Rfb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19wZXJpb2Rfb2lkIC0g MV0gPSBPYmplY3RJZEdldERhdHVtKG9pZCk7CisJdmFsdWVzW0FudW1fcGdfcGVyaW9kX3Blcm5h bWUgLSAxXSA9IE5hbWVHZXREYXR1bSgmcGVybmFtZSk7CisJdmFsdWVzW0FudW1fcGdfcGVyaW9k X3BlcnJlbGlkIC0gMV0gPSBSZWxhdGlvbkdldFJlbGlkKHJlbCk7CisJdmFsdWVzW0FudW1fcGdf cGVyaW9kX3BlcnN0YXJ0IC0gMV0gPSBzdGFydG51bTsKKwl2YWx1ZXNbQW51bV9wZ19wZXJpb2Rf cGVyZW5kIC0gMV0gPSBlbmRudW07CisJdmFsdWVzW0FudW1fcGdfcGVyaW9kX3BlcnJhbmdlIC0g MV0gPSByYW5nZW51bTsKKwl2YWx1ZXNbQW51bV9wZ19wZXJpb2RfcGVyY29uc3RyYWludCAtIDFd ID0gY29ub2lkOworCisJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihw Z19wZXJpb2QpLCB2YWx1ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQocGdfcGVyaW9k LCB0dXBsZSk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgUGVyaW9kUmVsYXRpb25JZCwg b2lkKTsKKworCS8qIERyb3AgdGhlIHBlcmlvZCB3aGVuIHRoZSB0YWJsZSBpcyBkcm9wcGVkLiAq LworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCBSZWxh dGlvbkdldFJlbGlkKHJlbCkpOworCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJl bmNlZCwgREVQRU5ERU5DWV9BVVRPKTsKKworCS8qIEZvcmJpZCBkcm9wcGluZyB0aGUgY29sdW1u cyBvZiB0aGUgcGVyaW9kLiAqLworCU9iamVjdEFkZHJlc3NTdWJTZXQocmVmZXJlbmNlZCwgUmVs YXRpb25SZWxhdGlvbklkLCBSZWxhdGlvbkdldFJlbGlkKHJlbCksIHN0YXJ0bnVtKTsKKwlyZWNv cmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsK KwlPYmplY3RBZGRyZXNzU3ViU2V0KHJlZmVyZW5jZWQsIFJlbGF0aW9uUmVsYXRpb25JZCwgUmVs YXRpb25HZXRSZWxpZChyZWwpLCBlbmRudW0pOworCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxm LCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwpOworCisJLyoKKwkgKiBUaGUgcmFuZ2Ug Y29sdW1uIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwKKwkgKiBidXQgd2UgY2FuJ3QgdXNl IERFUEVOREVOQ1lfSU5URVJOQUwKKwkgKiBiZWNhdXNlIGRyb3BwaW5nIHRoZSB0YWJsZSB3aWxs IGNoZWNrIGZvciBkZXBlbmRlbmNpZXMgb24gYWxsIHN1Ym9iamVjdHMgdG9vCisJICogKGluIGZp bmREZXBlbmRlbnRPYmplY3RzKS4KKwkgKiBCdXQgaWYgd2UgbWFrZSBhbiBBVVRPIGRlcGVuZGVu Y3kgb25lIHdheSB3ZSB3aWxsIGF1dG8tZHJvcCB0aGUgY29sdW1uCisJICogd2hlbiB3ZSBkcm9w IHRoZSBQRVJJT0QsCisJICogYW5kIGEgTk9STUFMIGRlcGVuZGVuY3kgdGhlIG90aGVyIHdheSB3 ZSB3aWxsIGZvcmJpZCBkcm9wcGluZyB0aGUgY29sdW1uIGRpcmVjdGx5LgorCSAqLworCU9iamVj dEFkZHJlc3NTdWJTZXQocmVmZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCBSZWxhdGlvbkdl dFJlbGlkKHJlbCksIHJhbmdlbnVtKTsKKwlyZWNvcmREZXBlbmRlbmN5T24oJnJlZmVyZW5jZWQs ICZteXNlbGYsIERFUEVOREVOQ1lfSU5URVJOQUwpOworCisJLyoKKwkgKiBUaGUgY29uc3RyYWlu dCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIHNvIHdlIG1hcmsgaXQgYXMgc3VjaC4KKwkg KiAoTm90ZSB0aGF0IG15c2VsZiBhbmQgcmVmZXJlbmNlZCBhcmUgcmV2ZXJzZWQgZm9yIHRoaXMg b25lLikKKwkgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIENvbnN0cmFpbnRSZWxh dGlvbklkLCBjb25vaWQpOworCXJlY29yZERlcGVuZGVuY3lPbigmcmVmZXJlbmNlZCwgJm15c2Vs ZiwgREVQRU5ERU5DWV9JTlRFUk5BTCk7CisKKwl0YWJsZV9jbG9zZShwZ19wZXJpb2QsIFJvd0V4 Y2x1c2l2ZUxvY2spOworCisJcmV0dXJuIG9pZDsKK30KKwogLyoKICAqIFN0b3JlIGEgY2hlY2st Y29uc3RyYWludCBleHByZXNzaW9uIGZvciB0aGUgZ2l2ZW4gcmVsYXRpb24uCiAgKgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCmluZGV4IGM0MTQ1MTMxY2U0Li40 MWYxZmIzNjczZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9z Y2hlbWEuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNx bApAQCAtMTIxMSw3ICsxMjExLDI4IEBAIEdSQU5UIFNFTEVDVCBPTiBwYXJhbWV0ZXJzIFRPIFBV QkxJQzsKICAqIFBFUklPRFMgdmlldwogICovCiAKLS0tIGZlYXR1cmUgbm90IHN1cHBvcnRlZAor Q1JFQVRFIFZJRVcgcGVyaW9kcyBBUworICAgIFNFTEVDVCBjdXJyZW50X2RhdGFiYXNlKCk6Omlu Zm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllciBBUyB0YWJsZV9jYXRhbG9nLAorICAgICAg ICAgICBuYy5uc3BuYW1lOjppbmZvcm1hdGlvbl9zY2hlbWEuc3FsX2lkZW50aWZpZXIgQVMgdGFi bGVfc2NoZW1hLAorICAgICAgICAgICBjLnJlbG5hbWU6OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxf aWRlbnRpZmllciBBUyB0YWJsZV9uYW1lLAorICAgICAgICAgICBwLnBlcm5hbWU6OmluZm9ybWF0 aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllciBBUyBwZXJpb2RfbmFtZSwKKyAgICAgICAgICAgQ0FT RSBXSEVOIHBnX2hhc19yb2xlKGMucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICAg ICBPUiBoYXNfY29sdW1uX3ByaXZpbGVnZShzYS5hdHRyZWxpZCwgc2EuYXR0bnVtLCAnU0VMRUNU LCBJTlNFUlQsIFVQREFURSwgUkVGRVJFTkNFUycpCisgICAgICAgICAgICAgICAgVEhFTiBzYS5h dHRuYW1lOjppbmZvcm1hdGlvbl9zY2hlbWEuc3FsX2lkZW50aWZpZXIKKyAgICAgICAgICAgRU5E IEFTIHN0YXJ0X2NvbHVtbl9uYW1lLAorICAgICAgICAgICBDQVNFIFdIRU4gcGdfaGFzX3JvbGUo Yy5yZWxvd25lciwgJ1VTQUdFJykKKyAgICAgICAgICAgICAgICAgIE9SIGhhc19jb2x1bW5fcHJp dmlsZWdlKGVhLmF0dHJlbGlkLCBlYS5hdHRudW0sICdTRUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBS RUZFUkVOQ0VTJykKKyAgICAgICAgICAgICAgICBUSEVOIGVhLmF0dG5hbWU6OmluZm9ybWF0aW9u X3NjaGVtYS5zcWxfaWRlbnRpZmllcgorICAgICAgICAgICBFTkQgQVMgZW5kX2NvbHVtbl9uYW1l CisgICAgRlJPTSBwZ19wZXJpb2QgQVMgcAorICAgIEpPSU4gcGdfY2xhc3MgQVMgYyBPTiBjLm9p ZCA9IHAucGVycmVsaWQKKyAgICBKT0lOIHBnX25hbWVzcGFjZSBBUyBuYyBPTiBuYy5vaWQgPSBj LnJlbG5hbWVzcGFjZQorICAgIEpPSU4gcGdfYXR0cmlidXRlIEFTIHNhIE9OIChzYS5hdHRyZWxp ZCwgc2EuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBwLnBlcnN0YXJ0KQorICAgIEpPSU4gcGdfYXR0 cmlidXRlIEFTIGVhIE9OIChlYS5hdHRyZWxpZCwgZWEuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBw LnBlcmVuZCkKKyAgICBXSEVSRSBOT1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobmMub2lkKQor ICAgICAgQU5EIGMucmVsa2luZCBJTiAoJ3InLCAndicpOworCitHUkFOVCBTRUxFQ1QgT04gcGVy aW9kcyBUTyBQVUJMSUM7CiAKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv bWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IDJmM2Rl ZDhhMGU3Li5hMzcyZmIwYWFlOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNv bi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC0yNiw2ICsy Niw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BnX25hbWVzcGFjZS5jJywKICAg J3BnX29wZXJhdG9yLmMnLAogICAncGdfcGFyYW1ldGVyX2FjbC5jJywKKyAgJ3BnX3BlcmlvZC5j JywKICAgJ3BnX3Byb2MuYycsCiAgICdwZ19wdWJsaWNhdGlvbi5jJywKICAgJ3BnX3JhbmdlLmMn LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCA4NWE3YjdlNjQxYS4uNDViNjI4 ZGM1NTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC00NSw2ICs0NSw3IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf b3BmYW1pbHkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3BhcmFtZXRlcl9hY2wuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcG9saWN5Lmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5oIgpAQCAtNzI3LDYgKzcyOCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0 X3R5cGVfbWFwCiAJewogCQkiZG9tYWluIGNvbnN0cmFpbnQiLCBPQkpFQ1RfRE9NQ09OU1RSQUlO VAogCX0sCisJeworCQkicGVyaW9kIiwgT0JKRUNUX1BFUklPRAorCX0sCiAJewogCQkiY29udmVy c2lvbiIsIE9CSkVDVF9DT05WRVJTSU9OCiAJfSwKQEAgLTk3MCw2ICs5NzQsNyBAQCBnZXRfb2Jq ZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QsCiAJCQljYXNlIE9C SkVDVF9UUklHR0VSOgogCQkJY2FzZSBPQkpFQ1RfVEFCQ09OU1RSQUlOVDoKIAkJCWNhc2UgT0JK RUNUX1BPTElDWToKKwkJCWNhc2UgT0JKRUNUX1BFUklPRDoKIAkJCQlhZGRyZXNzID0gZ2V0X29i amVjdF9hZGRyZXNzX3JlbG9iamVjdChvYmp0eXBlLCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpLAog CQkJCQkJCQkJCQkJCSAgICZyZWxhdGlvbiwgbWlzc2luZ19vayk7CiAJCQkJYnJlYWs7CkBAIC0x NDY4LDYgKzE0NzMsMTMgQEAgZ2V0X29iamVjdF9hZGRyZXNzX3JlbG9iamVjdChPYmplY3RUeXBl IG9ianR5cGUsIExpc3QgKm9iamVjdCwKIAkJCQlJbnZhbGlkT2lkOwogCQkJYWRkcmVzcy5vYmpl Y3RTdWJJZCA9IDA7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfUEVSSU9EOgorCQkJYWRkcmVz cy5jbGFzc0lkID0gUGVyaW9kUmVsYXRpb25JZDsKKwkJCWFkZHJlc3Mub2JqZWN0SWQgPSByZWxh dGlvbiA/CisJCQkJZ2V0X3JlbGF0aW9uX3BlcmlvZF9vaWQocmVsb2lkLCBkZXBuYW1lLCBtaXNz aW5nX29rKSA6CisJCQkJSW52YWxpZE9pZDsKKwkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwor CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVj dCB0eXBlOiAlZCIsIChpbnQpIG9ianR5cGUpOwogCX0KQEAgLTIyODUsNiArMjI5Nyw3IEBAIHBn X2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9SVUxF OgogCQljYXNlIE9CSkVDVF9UUklHR0VSOgogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgor CQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CiAJCWNhc2UgT0JK RUNUX09QRkFNSUxZOgogCQkJb2Jqbm9kZSA9IChOb2RlICopIG5hbWU7CkBAIC0yMzk1LDYgKzI0 MDgsNyBAQCBjaGVja19vYmplY3Rfb3duZXJzaGlwKE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2Jq dHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNzLAogCQljYXNlIE9CSkVDVF9UUklHR0VSOgogCQlj YXNlIE9CSkVDVF9QT0xJQ1k6CiAJCWNhc2UgT0JKRUNUX1RBQkNPTlNUUkFJTlQ6CisJCWNhc2Ug T0JKRUNUX1BFUklPRDoKIAkJCWlmICghb2JqZWN0X293bmVyY2hlY2soUmVsYXRpb25SZWxhdGlv bklkLCBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKSwgcm9sZWlkKSkKIAkJCQlhY2xjaGVja19l cnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUsCiAJCQkJCQkJICAgUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUocmVsYXRpb24pKTsKQEAgLTMwNDMsNiArMzA1NywzOCBAQCBnZXRPYmplY3RE ZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykK IAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFBlcmlvZFJlbGF0aW9uSWQ6CisJCQl7CisJCQkJ SGVhcFR1cGxlCXBlclR1cDsKKwkJCQlGb3JtX3BnX3BlcmlvZCBwZXI7CisKKwkJCQlwZXJUdXAg PSBTZWFyY2hTeXNDYWNoZTEoUEVSSU9ET0lELAorCQkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVt KG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQocGVyVHVwKSkK KwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHBlcmlvZCAldSIsCisJ CQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJcGVyID0gKEZvcm1fcGdfcGVyaW9kKSBHRVRT VFJVQ1QocGVyVHVwKTsKKworCQkJCWlmIChPaWRJc1ZhbGlkKHBlci0+cGVycmVsaWQpKQorCQkJ CXsKKwkJCQkJU3RyaW5nSW5mb0RhdGEgcmVsOworCisJCQkJCWluaXRTdHJpbmdJbmZvKCZyZWwp OworCQkJCQlnZXRSZWxhdGlvbkRlc2NyaXB0aW9uKCZyZWwsIHBlci0+cGVycmVsaWQsIGZhbHNl KTsKKwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJwZXJpb2QgJXMgb24gJXMiKSwK KwkJCQkJCQkJCSBOYW1lU3RyKHBlci0+cGVybmFtZSksIHJlbC5kYXRhKTsKKwkJCQkJcGZyZWUo cmVsLmRhdGEpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlhcHBlbmRTdHJpbmdJbmZv KCZidWZmZXIsIF8oInBlcmlvZCAlcyIpLAorCQkJCQkJCQkJIE5hbWVTdHIocGVyLT5wZXJuYW1l KSk7CisJCQkJfQorCisJCQkJUmVsZWFzZVN5c0NhY2hlKHBlclR1cCk7CisJCQkJYnJlYWs7CisJ CQl9CisKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoKIAkJCXsKIAkJCQlIZWFwVHVwbGUJ Y29uVHVwOwpAQCAtNDQ3NCw2ICs0NTIwLDEwIEBAIGdldE9iamVjdFR5cGVEZXNjcmlwdGlvbihj b25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQkJCQkJCQkg bWlzc2luZ19vayk7CiAJCQlicmVhazsKIAorCQljYXNlIFBlcmlvZFJlbGF0aW9uSWQ6CisJCQlh cHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJwZXJpb2QiKTsKKwkJCWJyZWFrOworCiAJ CWNhc2UgQ29udmVyc2lvblJlbGF0aW9uSWQ6CiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZi dWZmZXIsICJjb252ZXJzaW9uIik7CiAJCQlicmVhazsKQEAgLTQ5NzksNiArNTAyOSwyOCBAQCBn ZXRPYmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCQli cmVhazsKIAkJCX0KIAorCQljYXNlIFBlcmlvZFJlbGF0aW9uSWQ6CisJCQl7CisJCQkJSGVhcFR1 cGxlCXBlclR1cDsKKwkJCQlGb3JtX3BnX3BlcmlvZCBwZXI7CisKKwkJCQlwZXJUdXAgPSBTZWFy Y2hTeXNDYWNoZTEoUEVSSU9ET0lELAorCQkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG9iamVj dC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQocGVyVHVwKSkKKwkJCQkJ ZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHBlcmlvZCAldSIsCisJCQkJCQkg b2JqZWN0LT5vYmplY3RJZCk7CisJCQkJcGVyID0gKEZvcm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1Qo cGVyVHVwKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgIiVzIG9uICIsCisJCQkJ CQkJCSBxdW90ZV9pZGVudGlmaWVyKE5hbWVTdHIocGVyLT5wZXJuYW1lKSkpOworCQkJCWdldFJl bGF0aW9uSWRlbnRpdHkoJmJ1ZmZlciwgcGVyLT5wZXJyZWxpZCwgb2JqbmFtZSwgZmFsc2UpOwor CQkJCWlmIChvYmpuYW1lKQorCQkJCQkqb2JqbmFtZSA9IGxhcHBlbmQoKm9iam5hbWUsIHBzdHJk dXAoTmFtZVN0cihwZXItPnBlcm5hbWUpKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUocGVyVHVw KTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIENvbnZlcnNpb25SZWxhdGlvbklkOgogCQkJ ewogCQkJCUhlYXBUdXBsZQljb25UdXA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3BlcmlvZC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wZXJpb2QuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDY1YjViNjc1ZTMKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3BlcmlvZC5jCkBAIC0wLDAgKzEsMTMyIEBACisv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19wZXJpb2QuYworICoJICByb3V0aW5lcyB0byBz dXBwb3J0IG1hbmlwdWxhdGlvbiBvZiB0aGUgcGdfcGVyaW9kIHJlbGF0aW9uCisgKgorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfcGVyaW9kLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUg InBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKKyNpbmNsdWRlICJhY2Nl c3MvaGVhcGFtLmgiCisjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUg ImNhdGFsb2cvaW5kZXhpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgorI2lu Y2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisj aW5jbHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworCisv KgorICogRGVsZXRlIGEgc2luZ2xlIHBlcmlvZCByZWNvcmQuCisgKi8KK3ZvaWQKK1JlbW92ZVBl cmlvZEJ5SWQoT2lkIHBlcmlvZElkKQoreworCVJlbGF0aW9uCXBnX3BlcmlvZDsKKwlIZWFwVHVw bGUJdHVwOworCisJcGdfcGVyaW9kID0gdGFibGVfb3BlbihQZXJpb2RSZWxhdGlvbklkLCBSb3dF eGNsdXNpdmVMb2NrKTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShQRVJJT0RPSUQsIE9iamVj dElkR2V0RGF0dW0ocGVyaW9kSWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkgLyog c2hvdWxkIG5vdCBoYXBwZW4gKi8KKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQg Zm9yIHBlcmlvZCAldSIsIHBlcmlvZElkKTsKKworCS8qIEZyeSB0aGUgcGVyaW9kIGl0c2VsZiAq LworCUNhdGFsb2dUdXBsZURlbGV0ZShwZ19wZXJpb2QsICZ0dXAtPnRfc2VsZik7CisKKwkvKiBD bGVhbiB1cCAqLworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCXRhYmxlX2Nsb3NlKHBnX3Blcmlv ZCwgUm93RXhjbHVzaXZlTG9jayk7Cit9CisKKy8qCisgKiBnZXRfcmVsYXRpb25fcGVyaW9kX29p ZAorICoJCUZpbmQgYSBwZXJpb2Qgb24gdGhlIHNwZWNpZmllZCByZWxhdGlvbiB3aXRoIHRoZSBz cGVjaWZpZWQgbmFtZS4KKyAqCQlSZXR1cm5zIHBlcmlvZCdzIE9JRC4KKyAqLworT2lkCitnZXRf cmVsYXRpb25fcGVyaW9kX29pZChPaWQgcmVsaWQsIGNvbnN0IGNoYXIgKnBlcm5hbWUsIGJvb2wg bWlzc2luZ19vaykKK3sKKwlSZWxhdGlvbglwZ19wZXJpb2Q7CisJSGVhcFR1cGxlCXR1cGxlOwor CVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURhdGEgc2tleVsyXTsKKwlPaWQJCQlwZXJPaWQg PSBJbnZhbGlkT2lkOworCisJLyogRmV0Y2ggdGhlIHBlcmlvZCB0dXBsZSBmcm9tIHBnX3Blcmlv ZC4gKi8KKwlwZ19wZXJpb2QgPSB0YWJsZV9vcGVuKFBlcmlvZFJlbGF0aW9uSWQsIEFjY2Vzc1No YXJlTG9jayk7CisKKwlTY2FuS2V5SW5pdCgmc2tleVswXSwKKwkJCQlBbnVtX3BnX3BlcmlvZF9w ZXJyZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0 SWRHZXREYXR1bShyZWxpZCkpOworCVNjYW5LZXlJbml0KCZza2V5WzFdLAorCQkJCUFudW1fcGdf cGVyaW9kX3Blcm5hbWUsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX05BTUVFUSwKKwkJ CQlDU3RyaW5nR2V0RGF0dW0ocGVybmFtZSkpOworCisJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2Nh bihwZ19wZXJpb2QsIFBlcmlvZFJlbGlkTmFtZUluZGV4SWQsIHRydWUsCisJCQkJCQkJICBOVUxM LCAyLCBza2V5KTsKKworCS8qIFRoZXJlIGNhbiBiZSBhdCBtb3N0IG9uZSBtYXRjaGluZyByb3cg Ki8KKwlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc2Nhbikp KQorCQlwZXJPaWQgPSAoKEZvcm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1QodHVwbGUpKS0+b2lkOwor CisJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKworCS8qIElmIG5vIHN1Y2ggcGVyaW9kIGV4aXN0 cywgY29tcGxhaW4gKi8KKwlpZiAoIU9pZElzVmFsaWQocGVyT2lkKSAmJiAhbWlzc2luZ19vaykK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1Qp LAorCQkJCSBlcnJtc2coInBlcmlvZCBcIiVzXCIgZm9yIHRhYmxlIFwiJXNcIiBkb2VzIG5vdCBl eGlzdCIsCisJCQkJCQlwZXJuYW1lLCBnZXRfcmVsX25hbWUocmVsaWQpKSkpOworCisJdGFibGVf Y2xvc2UocGdfcGVyaW9kLCBBY2Nlc3NTaGFyZUxvY2spOworCisJcmV0dXJuIHBlck9pZDsKK30K KworLyoKKyAqIGdldF9wZXJpb2RfYXR0bm9zCisgKgkJR2V0IHRoZSBhdHRubyBvZiB0aGUgR0VO RVJBVEVEIHJhbmdldHlwZSBjb2x1bW4KKyAqCQlmb3IgYWxsIFBFUklPRHMgaW4gdGhpcyB0YWJs ZS4KKyAqLworZXh0ZXJuIEJpdG1hcHNldAorKmdldF9wZXJpb2RfYXR0bm9zKE9pZCByZWxpZCkK K3sKKwlCaXRtYXBzZXQgKmF0dG5vcyA9IE5VTEw7CisJUmVsYXRpb24JcGdfcGVyaW9kOworCUhl YXBUdXBsZQl0dXBsZTsKKwlTeXNTY2FuRGVzYyBzY2FuOworCVNjYW5LZXlEYXRhIHNrZXlbMV07 CisKKwlwZ19wZXJpb2QgPSB0YWJsZV9vcGVuKFBlcmlvZFJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJl TG9jayk7CisKKwlTY2FuS2V5SW5pdCgmc2tleVswXSwKKwkJCQlBbnVtX3BnX3BlcmlvZF9wZXJy ZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRH ZXREYXR1bShyZWxpZCkpOworCisJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihwZ19wZXJpb2Qs IFBlcmlvZFJlbGlkTmFtZUluZGV4SWQsIHRydWUsCisJCQkJCQkJICBOVUxMLCAxLCBza2V5KTsK KworCXdoaWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzY2Fu KSkpCisJeworCQlGb3JtX3BnX3BlcmlvZCBwZXJpb2QgPSAoRm9ybV9wZ19wZXJpb2QpIEdFVFNU UlVDVCh0dXBsZSk7CisKKwkJYXR0bm9zID0gYm1zX2FkZF9tZW1iZXIoYXR0bm9zLCBwZXJpb2Qt PnBlcnJhbmdlKTsKKwl9CisKKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCXRhYmxlX2Nsb3Nl KHBnX3BlcmlvZCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCXJldHVybiBhdHRub3M7Cit9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKaW5kZXggYzAwMmYzNzIwMmYuLjlhNzRiMGZhMjQw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CkBAIC00NDgsNyArNDQ4LDcgQEAg VDE3NglTZXF1ZW5jZSBnZW5lcmF0b3Igc3VwcG9ydAkJCU5PCXN1cHBvcnRlZCBleGNlcHQgZm9y IE5FWFQgVkFMVUUgRk9SCiBUMTc3CVNlcXVlbmNlIGdlbmVyYXRvciBzdXBwb3J0OiBzaW1wbGUg cmVzdGFydCBvcHRpb24JCQlZRVMJCiBUMTc4CUlkZW50aXR5IGNvbHVtbnM6IHNpbXBsZSByZXN0 YXJ0IG9wdGlvbgkJCVlFUwkKIFQxODAJU3lzdGVtLXZlcnNpb25lZCB0YWJsZXMJCQlOTwkKLVQx ODEJQXBwbGljYXRpb24tdGltZSBwZXJpb2QgdGFibGVzCQkJTk8JCitUMTgxCUFwcGxpY2F0aW9u LXRpbWUgcGVyaW9kIHRhYmxlcwkJCVlFUwkKIFQxOTEJUmVmZXJlbnRpYWwgYWN0aW9uIFJFU1RS SUNUCQkJWUVTCQogVDIwMAlUcmlnZ2VyIERETAkJCU5PCXNpbWlsYXIgYnV0IG5vdCBmdWxseSBj b21wYXRpYmxlCiBUMjAxCUNvbXBhcmFibGUgZGF0YSB0eXBlcyBmb3IgcmVmZXJlbnRpYWwgY29u c3RyYWludHMJCQlZRVMJCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb21tZW50 LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb21tZW50LmMKaW5kZXggZTlkNTBmYzdkODcuLjA1 ZmVmYjViNWNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb21tZW50LmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29tbWVudC5jCkBAIC0xMDIsNiArMTAyLDE2IEBAIENv bW1lbnRPYmplY3QoQ29tbWVudFN0bXQgKnN0bXQpCiAJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbGF0aW9uKSksCiAJCQkJCQkgZXJyZGV0YWlsX3JlbGtpbmRfbm90X3N1cHBvcnRl ZChyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kKSkpOwogCQkJYnJlYWs7CisKKwkJY2FzZSBPQkpF Q1RfUEVSSU9EOgorCQkJLyogUGVyaW9kcyBjYW4gb25seSBnbyBvbiB0YWJsZXMgKi8KKwkJCWlm IChyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJT04pCisJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAor CQkJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHRhYmxlIiwKKwkJCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKSkpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJ CWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IDg1ZWVjN2UzOTQ3Li4zZDc4 NzlmOTNjMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCkBAIC01MDQsNiArNTA0LDcgQEAgZG9l c19ub3RfZXhpc3Rfc2tpcHBpbmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QpCiAJ CWNhc2UgT0JKRUNUX0RPTUNPTlNUUkFJTlQ6CiAJCWNhc2UgT0JKRUNUX0xBUkdFT0JKRUNUOgog CQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgorCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCWNh c2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJ T05fUkVMOgogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZl bnRfdHJpZ2dlci5jCmluZGV4IDA1YTZkZTY4YmEzLi44MWRhYTI2OGIxOSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2V2ZW50X3RyaWdnZXIuYwpAQCAtMjE3NCw2ICsyMTc0LDcgQEAgc3RyaW5naWZ5X2dy YW50X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9PUENMQVNTOgog CQljYXNlIE9CSkVDVF9PUEVSQVRPUjoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CisJCWNhc2Ug T0JKRUNUX1BFUklPRDoKIAkJY2FzZSBPQkpFQ1RfUE9MSUNZOgogCQljYXNlIE9CSkVDVF9QVUJM SUNBVElPTjoKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgpAQCAtMjI1OCw2 ICsyMjU5LDcgQEAgc3RyaW5naWZ5X2FkZWZwcml2c19vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlw ZSkKIAkJY2FzZSBPQkpFQ1RfT1BFUkFUT1I6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgogCQlj YXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgorCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCWNhc2Ug T0JKRUNUX1BPTElDWToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJCWNhc2UgT0JKRUNU X1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3NlY2xhYmVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCmluZGV4IDU2MDcy NzNiZjlmLi5hZjcxNzcxNzljZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vj bGFiZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCkBAIC03OSw2ICs3 OSw3IEBAIFNlY0xhYmVsU3VwcG9ydHNPYmplY3RUeXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJ Y2FzZSBPQkpFQ1RfT1BFUkFUT1I6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgogCQljYXNlIE9C SkVDVF9QQVJBTUVURVJfQUNMOgorCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCWNhc2UgT0JKRUNU X1BPTElDWToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgogCQljYXNlIE9C SkVDVF9QVUJMSUNBVElPTl9SRUw6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDVjZWEz YTQ5ZDMyLi4zNGEwM2Q2MjRhYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTQ0LDYg KzQ0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2xhcmdlb2JqZWN0LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wY2xhc3MuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcG9s aWN5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19wdWJsaWNhdGlvbl9yZWwuaCIKQEAgLTE1NSw2ICsxNTYsMTEgQEAgdHlwZWRlZiBlbnVtIEFs dGVyVGFibGVQYXNzCiAJQVRfUEFTU19PTERfSU5ERVgsCQkJLyogcmUtYWRkIGV4aXN0aW5nIGlu ZGV4ZXMgKi8KIAlBVF9QQVNTX09MRF9DT05TVFIsCQkJLyogcmUtYWRkIGV4aXN0aW5nIGNvbnN0 cmFpbnRzICovCiAJLyogV2UgY291bGQgc3VwcG9ydCBhIFJFTkFNRSBDT0xVTU4gcGFzcyBoZXJl LCBidXQgbm90IGN1cnJlbnRseSB1c2VkICovCisJLyoKKwkgKiBXZSBtdXN0IGFkZCBQRVJJT0Rz IGFmdGVyIGNvbHVtbnMsIGluIGNhc2UgdGhleSByZWZlcmVuY2UgYSBuZXdseS1hZGRlZCBjb2x1 bW4sCisJICogYW5kIGJlZm9yZSBjb25zdHJhaW50cywgaW4gY2FzZSBhIG5ld2x5LWFkZGVkIFBL L0ZLIHJlZmVyZW5jZXMgdGhlbS4KKwkgKi8KKwlBVF9QQVNTX0FERF9QRVJJT0QsCQkJLyogQURE IFBFUklPRCAqLwogCUFUX1BBU1NfQUREX0NPTlNUUiwJCQkvKiBBREQgY29uc3RyYWludHMgKGlu aXRpYWwgZXhhbWluYXRpb24pICovCiAJQVRfUEFTU19DT0xfQVRUUlMsCQkJLyogc2V0IGNvbHVt biBhdHRyaWJ1dGVzLCBlZyBOT1QgTlVMTCAqLwogCUFUX1BBU1NfQUREX0lOREVYQ09OU1RSLAkv KiBBREQgaW5kZXgtYmFzZWQgY29uc3RyYWludHMgKi8KQEAgLTM2NCw2ICszNzAsNyBAQCBzdGF0 aWMgdm9pZCBSYW5nZVZhckNhbGxiYWNrRm9yVHJ1bmNhdGUoY29uc3QgUmFuZ2VWYXIgKnJlbGF0 aW9uLAogCQkJCQkJCQkJCU9pZCByZWxJZCwgT2lkIG9sZFJlbElkLCB2b2lkICphcmcpOwogc3Rh dGljIExpc3QgKk1lcmdlQXR0cmlidXRlcyhMaXN0ICpjb2x1bW5zLCBjb25zdCBMaXN0ICpzdXBl cnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCQkJCQkJIGJvb2wgaXNfcGFydGl0aW9uLCBMaXN0 ICoqc3VwY29uc3RyKTsKK3N0YXRpYyBMaXN0ICpNZXJnZVBlcmlvZHMoY2hhciAqcmVsbmFtZSwg TGlzdCAqcGVyaW9kcywgTGlzdCAqdGFibGVFbHRzLCBMaXN0ICpzdXBlcnMpOwogc3RhdGljIExp c3QgKk1lcmdlQ2hlY2tDb25zdHJhaW50KExpc3QgKmNvbnN0cmFpbnRzLCBjb25zdCBjaGFyICpu YW1lLCBOb2RlICpleHByKTsKIHN0YXRpYyB2b2lkIE1lcmdlQ2hpbGRBdHRyaWJ1dGUoTGlzdCAq aW5oX2NvbHVtbnMsIGludCBleGlzdF9hdHRubywgaW50IG5ld2NvbF9hdHRubywgY29uc3QgQ29s dW1uRGVmICpuZXdkZWYpOwogc3RhdGljIENvbHVtbkRlZiAqTWVyZ2VJbmhlcml0ZWRBdHRyaWJ1 dGUoTGlzdCAqaW5oX2NvbHVtbnMsIGludCBleGlzdF9hdHRubywgY29uc3QgQ29sdW1uRGVmICpu ZXdkZWYpOwpAQCAtNDQ2LDYgKzQ1Myw4IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIEFURXhlY0Fk ZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsCiAJCQkJCQkJCQkg QWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0KTsKIHN0YXRpYyBib29sIGNoZWNrX2Zv cl9jb2x1bW5fbmFtZV9jb2xsaXNpb24oUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xuYW1l LAogCQkJCQkJCQkJCQlib29sIGlmX25vdF9leGlzdHMpOworc3RhdGljIGJvb2wgY2hlY2tfZm9y X3BlcmlvZF9uYW1lX2NvbGxpc2lvbihSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKnBlcm5hbWUs CisJCQkJCQkJCQkJCWJvb2wgY29sZXhpc3RzLCBib29sIGlmX25vdF9leGlzdHMpOwogc3RhdGlj IHZvaWQgYWRkX2NvbHVtbl9kYXRhdHlwZV9kZXBlbmRlbmN5KE9pZCByZWxpZCwgaW50MzIgYXR0 bnVtLCBPaWQgdHlwaWQpOwogc3RhdGljIHZvaWQgYWRkX2NvbHVtbl9jb2xsYXRpb25fZGVwZW5k ZW5jeShPaWQgcmVsaWQsIGludDMyIGF0dG51bSwgT2lkIGNvbGxpZCk7CiBzdGF0aWMgT2JqZWN0 QWRkcmVzcyBBVEV4ZWNEcm9wTm90TnVsbChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5h bWUsIExPQ0tNT0RFIGxvY2ttb2RlKTsKQEAgLTQ2NCw2ICs0NzMsMTIgQEAgc3RhdGljIE9iamVj dEFkZHJlc3MgQVRFeGVjQ29sdW1uRGVmYXVsdChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNv bE5hbWUsCiAJCQkJCQkJCQkJIE5vZGUgKm5ld0RlZmF1bHQsIExPQ0tNT0RFIGxvY2ttb2RlKTsK IHN0YXRpYyBPYmplY3RBZGRyZXNzIEFURXhlY0Nvb2tlZENvbHVtbkRlZmF1bHQoUmVsYXRpb24g cmVsLCBBdHRyTnVtYmVyIGF0dG51bSwKIAkJCQkJCQkJCQkJICAgTm9kZSAqbmV3RGVmYXVsdCk7 CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBBVEV4ZWNBZGRQZXJpb2QoUmVsYXRpb24gcmVsLCBQZXJp b2REZWYgKnBlcmlvZCwKKwkJCQkJCQkJCSBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNvbnRl eHQpOworc3RhdGljIHZvaWQgQVRFeGVjRHJvcFBlcmlvZChSZWxhdGlvbiByZWwsIGNvbnN0IGNo YXIgKnBlcmlvZE5hbWUsCisJCQkJCQkJIERyb3BCZWhhdmlvciBiZWhhdmlvciwKKwkJCQkJCQkg Ym9vbCByZWN1cnNlLCBib29sIHJlY3Vyc2luZywKKwkJCQkJCQkgYm9vbCBtaXNzaW5nX29rKTsK IHN0YXRpYyBPYmplY3RBZGRyZXNzIEFURXhlY0FkZElkZW50aXR5KFJlbGF0aW9uIHJlbCwgY29u c3QgY2hhciAqY29sTmFtZSwKIAkJCQkJCQkJCSAgIE5vZGUgKmRlZiwgTE9DS01PREUgbG9ja21v ZGUsIGJvb2wgcmVjdXJzZSwgYm9vbCByZWN1cnNpbmcpOwogc3RhdGljIE9iamVjdEFkZHJlc3Mg QVRFeGVjU2V0SWRlbnRpdHkoUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLApAQCAt NjY0LDYgKzY3OSwxMCBAQCBzdGF0aWMgTGlzdCAqR2V0UGFyZW50ZWRGb3JlaWduS2V5UmVmcyhS ZWxhdGlvbiBwYXJ0aXRpb24pOwogc3RhdGljIHZvaWQgQVREZXRhY2hDaGVja05vRm9yZWlnbktl eVJlZnMoUmVsYXRpb24gcGFydGl0aW9uKTsKIHN0YXRpYyBjaGFyIEdldEF0dHJpYnV0ZUNvbXBy ZXNzaW9uKE9pZCBhdHR0eXBpZCwgY29uc3QgY2hhciAqY29tcHJlc3Npb24pOwogc3RhdGljIGNo YXIgR2V0QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0dHlwaWQsIGNvbnN0IGNoYXIgKnN0b3JhZ2Vt b2RlKTsKK3N0YXRpYyB2b2lkIEFkZFJlbGF0aW9uTmV3UGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVy aW9kRGVmICpwZXJpb2QpOworc3RhdGljIHZvaWQgVmFsaWRhdGVQZXJpb2QoUmVsYXRpb24gcmVs LCBQZXJpb2REZWYgKnBlcmlvZCk7CitzdGF0aWMgQ29uc3RyYWludCAqbWFrZV9jb25zdHJhaW50 X2Zvcl9wZXJpb2QoUmVsYXRpb24gcmVsLCBQZXJpb2REZWYgKnBlcmlvZCk7CitzdGF0aWMgQ29s dW1uRGVmICptYWtlX3JhbmdlX2NvbHVtbl9mb3JfcGVyaW9kKFBlcmlvZERlZiAqcGVyaW9kKTsK IAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCkBAIC04OTEsNiArOTEwLDc5IEBAIERlZmluZVJlbGF0aW9uKENyZWF0 ZVN0bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQsCiAJCQkJCQlzdG10LT5wYXJ0 Ym91bmQgIT0gTlVMTCwKIAkJCQkJCSZvbGRfY29uc3RyYWludHMpOwogCisJLyoKKwkgKiBVc2lu ZyB0aGUgY29sdW1uIGxpc3QgKGluY2x1ZGluZyBpbmhlcml0ZWQgY29sdW1ucyksCisJICogZmlu ZCB0aGUgc3RhcnQvZW5kIGNvbHVtbnMgZm9yIGVhY2ggcGVyaW9kLgorCSAqIFBFUklPRHMgc2hv dWxkIGJlIGluaGVyaXRlZCB0b28gKGJ1dCBhcmVuJ3QgeWV0KS4KKwkgKi8KKwlzdG10LT5wZXJp b2RzID0gTWVyZ2VQZXJpb2RzKHJlbG5hbWUsIHN0bXQtPnBlcmlvZHMsIHN0bXQtPnRhYmxlRWx0 cywgaW5oZXJpdE9pZHMpOworCisJLyoKKwkgKiBGb3IgZWFjaCBQRVJJT0Qgd2UgbmVlZCBhIEdF TkVSQVRFRCBjb2x1bW4uCisJICogVXN1YWxseSB3ZSBtdXN0IGNyZWF0ZSB0aGlzLCBzbyB3ZSBh ZGQgaXQgdG8gdGFibGVFbHRzLgorCSAqIElmIHRoZSB1c2VyIHNheXMgdGhlIGNvbHVtbiBhbHJl YWR5IGV4aXN0cywKKwkgKiBtYWtlIHN1cmUgaXQgaXMgc2Vuc2libGUuCisJICogVGhlc2UgY29s dW1ucyBhcmUgbm90IGluaGVyaXRlZCwKKwkgKiBzbyB3ZSBkb24ndCB3b3JyeSBhYm91dCBjb25m bGljdHMgaW4gdGFibGVFbHRzLgorCSAqCisJICogV2UgYWxsb3cgdGhpcyBjb2xleGlzdHMgb3B0 aW9uIHRvIHN1cHBvcnQgcGdfdXBncmFkZSwKKwkgKiBzbyB3ZSBoYXZlIG1vcmUgY29udHJvbCBv dmVyIHRoZSBHRU5FUkFURUQgY29sdW1uCisJICogKHdob3NlIGF0dG51bSBtdXN0IG1hdGNoIHRo ZSBvbGQgdmFsdWUpLgorCSAqLworCWZvcmVhY2gobGlzdHB0ciwgc3RtdC0+cGVyaW9kcykKKwl7 CisJCVBlcmlvZERlZiAqcGVyaW9kID0gKFBlcmlvZERlZiAqKSBsZmlyc3QobGlzdHB0cik7CisK KwkJaWYgKHBlcmlvZC0+Y29sZXhpc3RzKQorCQl7CisJCQlMaXN0Q2VsbCAqY2VsbDsKKwkJCWJv b2wgZm91bmQgPSBmYWxzZTsKKworCQkJZm9yZWFjaChjZWxsLCBzdG10LT50YWJsZUVsdHMpCisJ CQl7CisJCQkJQ29sdW1uRGVmICAqY29sRGVmID0gbGZpcnN0KGNlbGwpOworCisJCQkJaWYgKHN0 cmNtcChwZXJpb2QtPnBlcmlvZG5hbWUsIGNvbERlZi0+Y29sbmFtZSkgPT0gMCkKKwkJCQl7CisJ CQkJCS8qCisJCQkJCSAqIExvdHMgdG8gY2hlY2sgaGVyZToKKwkJCQkJICogSXQgbXVzdCBiZSBH RU5FUkFURUQgQUxXQVlTLAorCQkJCQkgKiBpdCBtdXN0IGhhdmUgdGhlIHJpZ2h0IGV4cHJlc3Np b24sCisJCQkJCSAqIGl0IG11c3QgYmUgdGhlIHJpZ2h0IHR5cGUsCisJCQkJCSAqIGl0IG11c3Qg YmUgTk9UIE5VTEwsCisJCQkJCSAqIGl0IG11c3Qgbm90IGJlIGluaGVyaXRlZC4KKwkJCQkJICov CisJCQkJCWlmIChjb2xEZWYtPmdlbmVyYXRlZCA9PSAnXDAnKQorCQkJCQkJZXJlcG9ydChFUlJP UiwgKGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBub24tZ2VuZXJhdGVkIGNvbHVtbiIsIHBlcmlv ZC0+cGVyaW9kbmFtZSkpKTsKKworCQkJCQlpZiAoY29sRGVmLT5nZW5lcmF0ZWQgIT0gQVRUUklC VVRFX0dFTkVSQVRFRF9TVE9SRUQpCisJCQkJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJQZXJp b2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBpcyBub3QgU1RPUkVEIiwgcGVyaW9k LT5wZXJpb2RuYW1lKSkpOworCisJCQkJCS8vIFRPRE86IGNoZWNrIHRoZSBHRU5FUkFURUQgZXhw cmVzc2lvbiBhbHNvLgorCisJCQkJCWlmICghY29sRGVmLT5pc19ub3RfbnVsbCAmJiAhSXNCaW5h cnlVcGdyYWRlKQorCQkJCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVyaW9kICVzIHVzZXMg YSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgYWxsb3dzIG51bGxzIiwgcGVyaW9kLT5wZXJpb2RuYW1l KSkpOworCisJCQkJCWlmIChwZXJpb2QtPnJuZ3R5cGlkICE9IHR5cGVuYW1lVHlwZUlkKE5VTEws IGNvbERlZi0+dHlwZU5hbWUpKQorCQkJCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVyaW9k ICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHdpdGggdGhlIHdyb25nIHR5cGUiLCBwZXJpb2Qt PnBlcmlvZG5hbWUpKSk7CisKKwkJCQkJaWYgKCFjb2xEZWYtPmlzX2xvY2FsKQorCQkJCQkJZXJl cG9ydChFUlJPUiwgKGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRo YXQgaXMgaW5oZXJpdGVkIiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCQkJCWZvdW5kID0g dHJ1ZTsKKwkJCQl9CisJCQl9CisKKwkJCWlmICghZm91bmQpCisJCQkJZXJlcG9ydChFUlJPUiwg KGVycm1zZygiTm8gY29sdW1uIGZvdW5kIHdpdGggbmFtZSAlcyIsIHBlcmlvZC0+cGVyaW9kbmFt ZSkpKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCUNvbHVtbkRlZiAqY29sID0gbWFrZV9yYW5nZV9j b2x1bW5fZm9yX3BlcmlvZChwZXJpb2QpOworCQkJc3RtdC0+dGFibGVFbHRzID0gbGFwcGVuZChz dG10LT50YWJsZUVsdHMsIGNvbCk7CisJCX0KKwl9CisKIAkvKgogCSAqIENyZWF0ZSBhIHR1cGxl IGRlc2NyaXB0b3IgZnJvbSB0aGUgcmVsYXRpb24gc2NoZW1hLiAgTm90ZSB0aGF0IHRoaXMKIAkg KiBkZWFscyB3aXRoIGNvbHVtbiBuYW1lcywgdHlwZXMsIGFuZCBub3QtbnVsbCBjb25zdHJhaW50 cywgYnV0IG5vdApAQCAtMTI2Niw2ICsxMzU4LDIxIEBAIERlZmluZVJlbGF0aW9uKENyZWF0ZVN0 bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQsCiAJCUFkZFJlbGF0aW9uTmV3Q29u c3RyYWludHMocmVsLCBOSUwsIHN0bXQtPmNvbnN0cmFpbnRzLAogCQkJCQkJCQkgIHRydWUsIHRy dWUsIGZhbHNlLCBxdWVyeVN0cmluZyk7CiAKKwkvKgorCSAqIENyZWF0ZSBwZXJpb2RzIGZvciB0 aGUgdGFibGUuIFRoaXMgbXVzdCBjb21lIGFmdGVyIHdlIGNyZWF0ZSBjb2x1bW5zCisJICogYW5k IGJlZm9yZSB3ZSBjcmVhdGUgaW5kZXggY29uc3RyYWludHMuIEl0IHdpbGwgYXV0b21hdGljYWxs eSBjcmVhdGUKKwkgKiBhIENIRUNLIGNvbnN0cmFpbnQgZm9yIHRoZSBwZXJpb2QuCisJICovCisJ Zm9yZWFjaChsaXN0cHRyLCBzdG10LT5wZXJpb2RzKQorCXsKKwkJUGVyaW9kRGVmICpwZXJpb2Qg PSAoUGVyaW9kRGVmICopIGxmaXJzdChsaXN0cHRyKTsKKworCQkvKiBEb24ndCB1cGRhdGUgdGhl IGNvdW50IG9mIGNoZWNrIGNvbnN0cmFpbnRzIHR3aWNlICovCisJCUNvbW1hbmRDb3VudGVySW5j cmVtZW50KCk7CisKKwkJQWRkUmVsYXRpb25OZXdQZXJpb2QocmVsLCBwZXJpb2QpOworCX0KKwog CU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywgUmVsYXRpb25SZWxhdGlvbklkLCByZWxhdGlvbklk KTsKIAogCS8qCkBAIC0xMzYzLDYgKzE0NzAsMzEyIEBAIEJ1aWxkRGVzY0ZvclJlbGF0aW9uKGNv bnN0IExpc3QgKmNvbHVtbnMpCiAJcmV0dXJuIGRlc2M7CiB9CiAKKy8qCisgKiBtYWtlX2NvbnN0 cmFpbnRfZm9yX3BlcmlvZAorICoKKyAqIEJ1aWxkcyBhIENIRUNLIENvbnN0cmFpbnQgdG8gZW5z dXJlIHN0YXJ0IDwgZW5kLgorICogUmV0dXJucyB0aGUgQ0hFQ0sgQ29uc3RyYWludC4KKyAqIEFs c28gZmlsbHMgaW4gcGVyaW9kLT5jb25zdHJhaW50bmFtZSBpZiBuZWVkZWQuCisgKgorICogSWYg ZWl0aGVyIGJvdW5kIGlzIE5VTEwsIHRoZSBjb25zdHJhaW50IHBhc3NlcworICogKHNpbmNlIHRo YXQgaW5kaWNhdGVzIGFuIHVuYm91bmRlZCByYW5nZSkuCisgKi8KK3N0YXRpYyBDb25zdHJhaW50 ICoKK21ha2VfY29uc3RyYWludF9mb3JfcGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpw ZXJpb2QpCit7CisJQ29sdW1uUmVmICAqc2NvbCwgKmVjb2w7CisJQ29uc3RyYWludCAqY29uc3Ry OworCVR5cGVDYWNoZUVudHJ5ICp0eXBlOworCisJaWYgKHBlcmlvZC0+Y29uc3RyYWludG5hbWUg PT0gTlVMTCkKKwkJcGVyaW9kLT5jb25zdHJhaW50bmFtZSA9IENob29zZUNvbnN0cmFpbnROYW1l KFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksCisJCQkJCQkJCQkJCQkJICBwZXJpb2QtPnBl cmlvZG5hbWUsCisJCQkJCQkJCQkJCQkJICAiY2hlY2siLAorCQkJCQkJCQkJCQkJCSAgUmVsYXRp b25HZXROYW1lc3BhY2UocmVsKSwKKwkJCQkJCQkJCQkJCQkgIE5JTCk7CisJc2NvbCA9IG1ha2VO b2RlKENvbHVtblJlZik7CisJc2NvbC0+ZmllbGRzID0gbGlzdF9tYWtlMShtYWtlU3RyaW5nKHBz dHJkdXAocGVyaW9kLT5zdGFydGNvbG5hbWUpKSk7CisJc2NvbC0+bG9jYXRpb24gPSAwOworCisJ ZWNvbCA9IG1ha2VOb2RlKENvbHVtblJlZik7CisJZWNvbC0+ZmllbGRzID0gbGlzdF9tYWtlMSht YWtlU3RyaW5nKHBzdHJkdXAocGVyaW9kLT5lbmRjb2xuYW1lKSkpOworCWVjb2wtPmxvY2F0aW9u ID0gMDsKKworCXR5cGUgPSBsb29rdXBfdHlwZV9jYWNoZShwZXJpb2QtPmNvbHR5cGlkLCBUWVBF Q0FDSEVfTFRfT1BSKTsKKwlpZiAodHlwZS0+bHRfb3ByID09IEludmFsaWRPaWQpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAor CQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgY2Fubm90IGJlIHVzZWQgaW4gYSBQRVJJT0QgYmVj YXVzZSBpdHMgdHlwZSAlcyBoYXMgbm8gbGVzcyB0aGFuIG9wZXJhdG9yIiwKKwkJCQkJCXBlcmlv ZC0+c3RhcnRjb2xuYW1lLCBmb3JtYXRfdHlwZV9iZShwZXJpb2QtPmNvbHR5cGlkKSkpKTsKKwor CWNvbnN0ciA9IG1ha2VOb2RlKENvbnN0cmFpbnQpOworCWNvbnN0ci0+Y29udHlwZSA9IENPTlNU Ul9DSEVDSzsKKwljb25zdHItPmNvbm5hbWUgPSBwZXJpb2QtPmNvbnN0cmFpbnRuYW1lOworCWNv bnN0ci0+ZGVmZXJyYWJsZSA9IGZhbHNlOworCWNvbnN0ci0+aW5pdGRlZmVycmVkID0gZmFsc2U7 CisJY29uc3RyLT5sb2NhdGlvbiA9IC0xOworCWNvbnN0ci0+aXNfbm9faW5oZXJpdCA9IGZhbHNl OworCWNvbnN0ci0+cmF3X2V4cHIgPSAoTm9kZSAqKSBtYWtlU2ltcGxlQV9FeHByKEFFWFBSX09Q LAorCQkJCQkJCQkJCQkJIGdldF9vcG5hbWUodHlwZS0+bHRfb3ByKSwKKwkJCQkJCQkJCQkJCSAo Tm9kZSAqKSBzY29sLAorCQkJCQkJCQkJCQkJIChOb2RlICopIGVjb2wsCisJCQkJCQkJCQkJCQkg MCk7CisJY29uc3RyLT5jb29rZWRfZXhwciA9IE5VTEw7CisJY29uc3RyLT5za2lwX3ZhbGlkYXRp b24gPSBmYWxzZTsKKwljb25zdHItPmluaXRpYWxseV92YWxpZCA9IHRydWU7CisKKwlyZXR1cm4g Y29uc3RyOworfQorCisvKgorICogbWFrZV9yYW5nZV9jb2x1bW5fZm9yX3BlcmlvZAorICoKKyAq IEJ1aWxkcyBhIEdFTkVSQVRFRCBBTFdBWVMgcmFuZ2UgY29sdW1uIGJhc2VkIG9uIHRoZSBQRVJJ T0QKKyAqIHN0YXJ0L2VuZCBjb2x1bW5zLiBSZXR1cm5zIHRoZSBDb2x1bW5EZWYuCisgKi8KK0Nv bHVtbkRlZiAqCittYWtlX3JhbmdlX2NvbHVtbl9mb3JfcGVyaW9kKFBlcmlvZERlZiAqcGVyaW9k KQoreworCWNoYXIgKnJhbmdlX3R5cGVfbmFtZXNwYWNlOworCWNoYXIgKnJhbmdlX3R5cGVfbmFt ZTsKKwlDb2x1bW5EZWYgKmNvbCA9IG1ha2VOb2RlKENvbHVtbkRlZik7CisJQ29sdW1uUmVmICpz dGFydHZhciwgKmVuZHZhcjsKKwlFeHByICpyYW5nZUNvbnN0cnVjdG9yOworCisJaWYgKCFnZXRf dHlwbmFtZV9hbmRfbmFtZXNwYWNlKHBlcmlvZC0+cm5ndHlwaWQsICZyYW5nZV90eXBlX25hbWUs ICZyYW5nZV90eXBlX25hbWVzcGFjZSkpCisJCWVsb2coRVJST1IsICJtaXNzaW5nIHJhbmdlIHR5 cGUgJWQiLCBwZXJpb2QtPnJuZ3R5cGlkKTsKKworCXN0YXJ0dmFyID0gbWFrZU5vZGUoQ29sdW1u UmVmKTsKKwlzdGFydHZhci0+ZmllbGRzID0gbGlzdF9tYWtlMShtYWtlU3RyaW5nKHBzdHJkdXAo cGVyaW9kLT5zdGFydGNvbG5hbWUpKSk7CisJZW5kdmFyID0gbWFrZU5vZGUoQ29sdW1uUmVmKTsK KwllbmR2YXItPmZpZWxkcyA9IGxpc3RfbWFrZTEobWFrZVN0cmluZyhwc3RyZHVwKHBlcmlvZC0+ ZW5kY29sbmFtZSkpKTsKKwlyYW5nZUNvbnN0cnVjdG9yID0gKEV4cHIgKikgbWFrZUZ1bmNDYWxs KAorCQkJbGlzdF9tYWtlMihtYWtlU3RyaW5nKHJhbmdlX3R5cGVfbmFtZXNwYWNlKSwgbWFrZVN0 cmluZyhyYW5nZV90eXBlX25hbWUpKSwKKwkJCWxpc3RfbWFrZTIoc3RhcnR2YXIsIGVuZHZhciks CisJCQlDT0VSQ0VfRVhQTElDSVRfQ0FMTCwKKwkJCXBlcmlvZC0+bG9jYXRpb24pOworCisJY29s LT5jb2xuYW1lID0gcHN0cmR1cChwZXJpb2QtPnBlcmlvZG5hbWUpOworCWNvbC0+dHlwZU5hbWUg PSBtYWtlVHlwZU5hbWUocmFuZ2VfdHlwZV9uYW1lKTsKKwljb2wtPmNvbXByZXNzaW9uID0gTlVM TDsKKwljb2wtPmluaGNvdW50ID0gMDsKKwljb2wtPmlzX2xvY2FsID0gdHJ1ZTsKKwljb2wtPmlz X25vdF9udWxsID0gdHJ1ZTsKKwljb2wtPmlzX2Zyb21fdHlwZSA9IGZhbHNlOworCWNvbC0+c3Rv cmFnZSA9IDA7CisJY29sLT5zdG9yYWdlX25hbWUgPSBOVUxMOworCWNvbC0+cmF3X2RlZmF1bHQg PSAoTm9kZSAqKSByYW5nZUNvbnN0cnVjdG9yOworCWNvbC0+Y29va2VkX2RlZmF1bHQgPSBOVUxM OworCWNvbC0+aWRlbnRpdHkgPSAwOworCWNvbC0+Z2VuZXJhdGVkID0gQVRUUklCVVRFX0dFTkVS QVRFRF9TVE9SRUQ7CisJY29sLT5jb2xsQ2xhdXNlID0gTlVMTDsKKwljb2wtPmNvbGxPaWQgPSBJ bnZhbGlkT2lkOworCWNvbC0+ZmR3b3B0aW9ucyA9IE5JTDsKKwljb2wtPmxvY2F0aW9uID0gcGVy aW9kLT5sb2NhdGlvbjsKKworCXJldHVybiBjb2w7Cit9CisKKy8qCisgKiBWYWxpZGF0ZVBlcmlv ZAorICoKKyAqIExvb2sgdXAgdGhlIGF0dHJpYnV0ZXMgdXNlZCBieSB0aGUgUEVSSU9ELAorICog bWFrZSBzdXJlIHRoZXkgZXhpc3QsIGFyZSBub3Qgc3lzdGVtIGNvbHVtbnMsCisgKiBhbmQgaGF2 ZSB0aGUgc2FtZSB0eXBlIGFuZCBjb2xsYXRpb24uCisgKgorICogWW91IG11c3QgaGF2ZSBhIFJv d0V4Y2x1c2l2ZUxvY2sgb24gcGdfYXR0cmlidXRlCisgKiBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1 bmN0aW9uLgorICoKKyAqIEFkZCBvdXIgZmluZGluZ3MgdG8gdGhlc2UgUGVyaW9kRGVmIGZpZWxk czoKKyAqCisgKiBjb2x0eXBpZCAtIHRoZSB0eXBlIG9mIFBFUklPRCBjb2x1bW5zLgorICogc3Rh cnRhdHRudW0gLSB0aGUgYXR0bnVtIG9mIHRoZSBzdGFydCBjb2x1bW4uCisgKiBlbmRhdHRudW0g LSB0aGUgYXR0bnVtIG9mIHRoZSBlbmQgY29sdW1uLgorICogcm5ndHlwaWQgLSB0aGUgcmFuZ2Ug dHlwZSB0byB1c2UuCisgKiBybmdhdHRudW0gLSB0aGUgYXR0bnVtIG9mIGEgcHJlLWV4aXN0aW5n IHJhbmdlIGNvbHVtbiwgb3IgSW52YWxpZC4KKyAqLworc3RhdGljIHZvaWQKK1ZhbGlkYXRlUGVy aW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpwZXJpb2QpCit7CisJSGVhcFR1cGxlIHN0YXJ0 dHVwbGU7CisJSGVhcFR1cGxlIGVuZHR1cGxlOworCUZvcm1fcGdfYXR0cmlidXRlCWF0dHR1cGxl OworCU9pZAlhdHRjb2xsYXRpb247CisKKwkvKiBGaW5kIHRoZSBzdGFydCBjb2x1bW4gKi8KKwlz dGFydHR1cGxlID0gU2VhcmNoU3lzQ2FjaGVDb3B5QXR0TmFtZShSZWxhdGlvbkdldFJlbGlkKHJl bCksIHBlcmlvZC0+c3RhcnRjb2xuYW1lKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQoc3RhcnR0 dXBsZSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURf Q09MVU1OKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBk b2VzIG5vdCBleGlzdCIsCisJCQkJCQlwZXJpb2QtPnN0YXJ0Y29sbmFtZSwgUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUocmVsKSkpKTsKKwlhdHR0dXBsZSA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VU U1RSVUNUKHN0YXJ0dHVwbGUpOworCXBlcmlvZC0+Y29sdHlwaWQgPSBhdHR0dXBsZS0+YXR0dHlw aWQ7CisJYXR0Y29sbGF0aW9uID0gYXR0dHVwbGUtPmF0dGNvbGxhdGlvbjsKKwlwZXJpb2QtPnN0 YXJ0YXR0bnVtID0gYXR0dHVwbGUtPmF0dG51bTsKKworCS8qIE1ha2Ugc3VyZSBpdCdzIG5vdCBh IHN5c3RlbSBjb2x1bW4gKi8KKwlpZiAocGVyaW9kLT5zdGFydGF0dG51bSA8PSAwKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElP TiksCisJCQkJIGVycm1zZygiY2Fubm90IHVzZSBzeXN0ZW0gY29sdW1uIFwiJXNcIiBpbiBwZXJp b2QiLAorCQkJCQkJcGVyaW9kLT5zdGFydGNvbG5hbWUpKSk7CisKKwkvKiBGaW5kIHRoZSBlbmQg Y29sdW1uICovCisJZW5kdHVwbGUgPSBTZWFyY2hTeXNDYWNoZUNvcHlBdHROYW1lKFJlbGF0aW9u R2V0UmVsaWQocmVsKSwgcGVyaW9kLT5lbmRjb2xuYW1lKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFs aWQoZW5kdHVwbGUpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5E RUZJTkVEX0NPTFVNTiksCisJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBc IiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJcGVyaW9kLT5lbmRjb2xuYW1lLCBSZWxhdGlv bkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCWF0dHR1cGxlID0gKEZvcm1fcGdfYXR0cmlidXRl KSBHRVRTVFJVQ1QoZW5kdHVwbGUpOworCXBlcmlvZC0+ZW5kYXR0bnVtID0gYXR0dHVwbGUtPmF0 dG51bTsKKworCS8qIE1ha2Ugc3VyZSBpdCdzIG5vdCBhIHN5c3RlbSBjb2x1bW4gKi8KKwlpZiAo cGVyaW9kLT5lbmRhdHRudW0gPD0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCSBlcnJtc2coImNhbm5vdCB1 c2Ugc3lzdGVtIGNvbHVtbiBcIiVzXCIgaW4gcGVyaW9kIiwKKwkJCQkJCXBlcmlvZC0+ZW5kY29s bmFtZSkpKTsKKworCS8qIEJvdGggY29sdW1ucyBtdXN0IGJlIG9mIHNhbWUgdHlwZSAqLworCWlm IChwZXJpb2QtPmNvbHR5cGlkICE9IGF0dHR1cGxlLT5hdHR0eXBpZCkKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJybXNn KCJzdGFydCBhbmQgZW5kIGNvbHVtbnMgb2YgcGVyaW9kIG11c3QgYmUgb2Ygc2FtZSB0eXBlIikp KTsKKworCS8qIEJvdGggY29sdW1ucyBtdXN0IGhhdmUgdGhlIHNhbWUgY29sbGF0aW9uICovCisJ aWYgKGF0dGNvbGxhdGlvbiAhPSBhdHR0dXBsZS0+YXR0Y29sbGF0aW9uKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfQ09MTEFUSU9OX01JU01BVENIKSwKKwkJCQkgZXJy bXNnKCJzdGFydCBhbmQgZW5kIGNvbHVtbnMgb2YgcGVyaW9kIG11c3QgaGF2ZSBzYW1lIGNvbGxh dGlvbiIpKSk7CisKKwkvKiBHZXQgdGhlIHJhbmdlIHR5cGUgYmFzZWQgb24gdGhlIHN0YXJ0L2Vu ZCBjb2xzIG9yIHRoZSB1c2VyJ3MgY2hvaWNlICovCisJcGVyaW9kLT5ybmd0eXBpZCA9IGNob29z ZV9yYW5nZXR5cGVfZm9yX3BlcmlvZChwZXJpb2QpOworCisJLyogSWYgdGhlIEdFTkVSQVRFRCBj b2x1bW5zIHNob3VsZCBhbHJlYWR5IGV4aXN0LCBtYWtlIHN1cmUgaXQgaXMgc2Vuc2libGUuICov CisJaWYgKHBlcmlvZC0+Y29sZXhpc3RzKQorCXsKKwkJSGVhcFR1cGxlIHJuZ3R1cGxlID0gU2Vh cmNoU3lzQ2FjaGVDb3B5QXR0TmFtZShSZWxhdGlvbkdldFJlbGlkKHJlbCksIHBlcmlvZC0+cGVy aW9kbmFtZSk7CisJCWlmICghSGVhcFR1cGxlSXNWYWxpZChybmd0dXBsZSkpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAorCQkJCQkg ZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIs CisJCQkJCQkJcGVyaW9kLT5wZXJpb2RuYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp KSkpOworCQlhdHR0dXBsZSA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHJuZ3R1cGxl KTsKKworCQkvKgorCQkgKiBMb3RzIHRvIGNoZWNrIGhlcmU6CisJCSAqIEl0IG11c3QgYmUgR0VO RVJBVEVEIEFMV0FZUywKKwkJICogaXQgbXVzdCBoYXZlIHRoZSByaWdodCBleHByZXNzaW9uLAor CQkgKiBpdCBtdXN0IGJlIHRoZSByaWdodCB0eXBlLAorCQkgKiBpdCBtdXN0IGJlIE5PVCBOVUxM LAorCQkgKiBpdCBtdXN0IG5vdCBiZSBpbmhlcml0ZWQuCisJCSAqLworCQlpZiAoYXR0dHVwbGUt PmF0dGdlbmVyYXRlZCA9PSAnXDAnKQorCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVyaW9k ICVzIHVzZXMgYSBub24tZ2VuZXJhdGVkIGNvbHVtbiIsIHBlcmlvZC0+cGVyaW9kbmFtZSkpKTsK KworCQlpZiAoYXR0dHVwbGUtPmF0dGdlbmVyYXRlZCAhPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NU T1JFRCkKKwkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIlBlcmlvZCAlcyB1c2VzIGEgZ2VuZXJh dGVkIGNvbHVtbiB0aGF0IGlzIG5vdCBTVE9SRUQiLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisK KwkJLy8gVE9ETzogY2hlY2sgdGhlIEdFTkVSQVRFRCBleHByZXNzaW9uIGFsc28uCisKKwkJaWYg KCFhdHR0dXBsZS0+YXR0bm90bnVsbCAmJiAhSXNCaW5hcnlVcGdyYWRlKQorCQkJZXJlcG9ydChF UlJPUiwgKGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgYWxs b3dzIG51bGxzIiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCWlmIChwZXJpb2QtPnJuZ3R5 cGlkICE9IGF0dHR1cGxlLT5hdHR0eXBpZCkKKwkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIlBl cmlvZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB3aXRoIHRoZSB3cm9uZyB0eXBlIiwgcGVy aW9kLT5wZXJpb2RuYW1lKSkpOworCisJCWlmICghYXR0dHVwbGUtPmF0dGlzbG9jYWwpCisJCQll cmVwb3J0KEVSUk9SLCAoZXJybXNnKCJQZXJpb2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4g dGhhdCBpcyBpbmhlcml0ZWQiLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJcGVyaW9kLT5y bmdhdHRudW0gPSBhdHR0dXBsZS0+YXR0bnVtOworCisJCWhlYXBfZnJlZXR1cGxlKHJuZ3R1cGxl KTsKKwl9CisKKwloZWFwX2ZyZWV0dXBsZShzdGFydHR1cGxlKTsKKwloZWFwX2ZyZWV0dXBsZShl bmR0dXBsZSk7Cit9CisKKy8qCisgKiBjaG9vc2VfcmFuZ2V0eXBlX2Zvcl9wZXJpb2QKKyAqCisg KiBGaW5kIGEgc3VpdGFibGUgcmFuZ2UgdHlwZSBmb3Igb3BlcmF0aW9ucyBpbnZvbHZpbmcgdGhp cyBwZXJpb2QuCisgKiBVc2UgdGhlIHJhbmdldHlwZSBvcHRpb24gaWYgcHJvdmlkZWQsIG90aGVy d2lzZSB0cnkgdG8gZmluZCBhCisgKiBub24tYW1iaWd1b3VzIGV4aXN0aW5nIHR5cGUuCisgKi8K K09pZAorY2hvb3NlX3JhbmdldHlwZV9mb3JfcGVyaW9kKFBlcmlvZERlZiAqcGVyaW9kKQorewor CU9pZAlybmd0eXBpZDsKKworCWlmIChwZXJpb2QtPnJhbmdldHlwZW5hbWUgIT0gTlVMTCkKKwl7 CisJCS8qIE1ha2Ugc3VyZSBpdCBleGlzdHMgKi8KKwkJcm5ndHlwaWQgPSBUeXBlbmFtZUdldFR5 cGlkRXh0ZW5kZWQocGVyaW9kLT5yYW5nZXR5cGVuYW1lLCBmYWxzZSk7CisJCWlmIChybmd0eXBp ZCA9PSBJbnZhbGlkT2lkKQorCQkJZXJlcG9ydChFUlJPUiwgKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygiUmFuZ2UgdHlwZSAlcyBub3QgZm91bmQiLCBw ZXJpb2QtPnJhbmdldHlwZW5hbWUpKSk7CisKKwkJLyogTWFrZSBzdXJlIGl0IGlzIGEgcmFuZ2Ug dHlwZSAqLworCQlpZiAoIXR5cGVfaXNfcmFuZ2Uocm5ndHlwaWQpKQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJt c2coIlR5cGUgJXMgaXMgbm90IGEgcmFuZ2UgdHlwZSIsIHBlcmlvZC0+cmFuZ2V0eXBlbmFtZSkp KTsKKworCQkvKiBNYWtlIHN1cmUgaXQgbWF0Y2hlcyB0aGUgY29sdW1uIHR5cGUgKi8KKwkJaWYg KGdldF9yYW5nZV9zdWJ0eXBlKHJuZ3R5cGlkKSAhPSBwZXJpb2QtPmNvbHR5cGlkKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJ CQkJCSBlcnJtc2coIlJhbmdlIHR5cGUgJXMgZG9lcyBub3QgbWF0Y2ggY29sdW1uIHR5cGUgJXMi LAorCQkJCQkJIHBlcmlvZC0+cmFuZ2V0eXBlbmFtZSwKKwkJCQkJCSBmb3JtYXRfdHlwZV9iZShw ZXJpb2QtPmNvbHR5cGlkKSkpKTsKKwl9CisJZWxzZQorCXsKKwkJcm5ndHlwaWQgPSBnZXRfc3Vi dHlwZV9yYW5nZShwZXJpb2QtPmNvbHR5cGlkKTsKKwkJaWYgKHJuZ3R5cGlkID09IEludmFsaWRP aWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9P QkpFQ1QpLAorCQkJCQkgZXJybXNnKCJubyByYW5nZSB0eXBlIGZvciAlcyBmb3VuZCBmb3IgcGVy aW9kICVzIiwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShwZXJpb2QtPmNvbHR5cGlkKSwKKwkJCQkJ CQlwZXJpb2QtPnBlcmlvZG5hbWUpLAorCQkJCQkgZXJyaGludCgiWW91IGNhbiBkZWZpbmUgYSBj dXN0b20gcmFuZ2UgdHlwZSB3aXRoIENSRUFURSBUWVBFIikpKTsKKworCX0KKworCXJldHVybiBy bmd0eXBpZDsKK30KKworc3RhdGljIHZvaWQKK0FkZFJlbGF0aW9uTmV3UGVyaW9kKFJlbGF0aW9u IHJlbCwgUGVyaW9kRGVmICpwZXJpb2QpCit7CisJUmVsYXRpb24JYXR0cmVsYXRpb247CisJT2lk CQkJY29ub2lkOworCUNvbnN0cmFpbnQgKmNvbnN0cjsKKwlMaXN0CSAgICpuZXdjb25zdHJzOwor CisJYXR0cmVsYXRpb24gPSB0YWJsZV9vcGVuKEF0dHJpYnV0ZVJlbGF0aW9uSWQsIFJvd0V4Y2x1 c2l2ZUxvY2spOworCisJLyogRmluZCB0aGUgR0VORVJBVEVEIHJhbmdlIGNvbHVtbiAqLworCisJ cGVyaW9kLT5ybmdhdHRudW0gPSBnZXRfYXR0bnVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcGVy aW9kLT5wZXJpb2RuYW1lKTsKKwlpZiAocGVyaW9kLT5ybmdhdHRudW0gPT0gSW52YWxpZEF0dHJO dW1iZXIpCisJCWVsb2coRVJST1IsICJtaXNzaW5nIGF0dHJpYnV0ZSAlcyIsIHBlcmlvZC0+cGVy aW9kbmFtZSk7CisKKwkvKiBUaGUgcGFyc2VyIGhhcyBhbHJlYWR5IGZvdW5kIHBlcmlvZC0+Y29s dHlwaWQgKi8KKworCWNvbnN0ciA9IG1ha2VfY29uc3RyYWludF9mb3JfcGVyaW9kKHJlbCwgcGVy aW9kKTsKKwluZXdjb25zdHJzID0gQWRkUmVsYXRpb25OZXdDb25zdHJhaW50cyhyZWwsIE5JTCwg bGlzdF9tYWtlMShjb25zdHIpLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgTlVMTCk7CisJY29ub2lkID0g KChDb29rZWRDb25zdHJhaW50ICopIGxpbml0aWFsKG5ld2NvbnN0cnMpKS0+Y29ub2lkOworCisJ LyogU2F2ZSBpdCAqLworCVN0b3JlUGVyaW9kKHJlbCwgcGVyaW9kLT5wZXJpb2RuYW1lLCBwZXJp b2QtPnN0YXJ0YXR0bnVtLCBwZXJpb2QtPmVuZGF0dG51bSwgcGVyaW9kLT5ybmdhdHRudW0sIGNv bm9pZCk7CisKKwl0YWJsZV9jbG9zZShhdHRyZWxhdGlvbiwgUm93RXhjbHVzaXZlTG9jayk7Cit9 CisKIC8qCiAgKiBFbWl0IHRoZSByaWdodCBlcnJvciBvciB3YXJuaW5nIG1lc3NhZ2UgZm9yIGEg IkRST1AiIGNvbW1hbmQgaXNzdWVkIG9uIGEKICAqIG5vbi1leGlzdGVudCByZWxhdGlvbgpAQCAt MzAxMSw2ICszNDI0LDE2OCBAQCBNZXJnZUF0dHJpYnV0ZXMoTGlzdCAqY29sdW1ucywgY29uc3Qg TGlzdCAqc3VwZXJzLCBjaGFyIHJlbHBlcnNpc3RlbmNlLAogfQogCiAKKy8qLS0tLS0tLS0tLQor ICogTWVyZ2VQZXJpb2RzCisgKgkJUmV0dXJucyBuZXcgcGVyaW9kIGxpc3QgZ2l2ZW4gaW5pdGlh bCBwZXJpb2RzIGFuZCBzdXBlcmNsYXNzZXMuCisgKgorICogRm9yIG5vdyB3ZSBkb24ndCBzdXBw b3J0IGluaGVyaXRlbmNlIHdpdGggUEVSSU9EcywKKyAqIGJ1dCB3ZSBtaWdodCBtYWtlIGl0IHdv cmsgZXZlbnR1YWxseS4KKyAqCisgKiBXZSBjYW4gb21pdCBsb3RzIG9mIGNoZWNrcyBoZXJlIGFu ZCBhc3N1bWUgTWVyZ2VBdHRyaWJ1dGVzIGFscmVhZHkgZGlkIHRoZW0sCisgKiBmb3IgZXhhbXBs ZSB0aGF0IGNoaWxkICYgcGFyZW50cyBhcmUgbm90IGEgbWl4IG9mIHBlcm1hbmVudCBhbmQgdGVt cC4KKyAqLworc3RhdGljIExpc3QgKgorTWVyZ2VQZXJpb2RzKGNoYXIgKnJlbG5hbWUsIExpc3Qg KnBlcmlvZHMsIExpc3QgKnRhYmxlRWx0cywgTGlzdCAqc3VwZXJzKQoreworCUxpc3RDZWxsICAg KmVudHJ5OworCisJLyogSWYgd2UgaGF2ZSBhIFBFUklPRCB0aGVuIHN1cGVycyBtdXN0IGJlIGVt cHR5LiAqLworCisJaWYgKGxpc3RfbGVuZ3RoKHBlcmlvZHMpID4gMCAmJiBsaXN0X2xlbmd0aChz dXBlcnMpID4gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygiSW5oZXJpdGluZyBpcyBub3Qgc3VwcG9y dGVkIHdoZW4gYSB0YWJsZSBoYXMgYSBQRVJJT0QiKSkpOworCisJLyogSWYgYW55IHBhcmVudCB0 YWJsZSBoYXMgYSBQRVJJT0QsIHRoZW4gZmFpbC4gKi8KKworCWZvcmVhY2goZW50cnksIHN1cGVy cykKKwl7CisJCU9pZAkJCXBhcmVudCA9IGxmaXJzdF9vaWQoZW50cnkpOworCQlSZWxhdGlvbgly ZWxhdGlvbjsKKwkJUmVsYXRpb24JcGdfcGVyaW9kOworCQlTeXNTY2FuRGVzYyBzY2FuOworCQlT Y2FuS2V5RGF0YSBza2V5WzFdOworCQlIZWFwVHVwbGUJdHVwbGU7CisKKwkJLyogY2FsbGVyIGFs cmVhZHkgZ290IGxvY2sgKi8KKwkJcmVsYXRpb24gPSB0YWJsZV9vcGVuKHBhcmVudCwgTm9Mb2Nr KTsKKwkJcGdfcGVyaW9kID0gdGFibGVfb3BlbihQZXJpb2RSZWxhdGlvbklkLCBBY2Nlc3NTaGFy ZUxvY2spOworCisJCVNjYW5LZXlJbml0KCZza2V5WzBdLAorCQkJCQlBbnVtX3BnX3BlcmlvZF9w ZXJyZWxpZCwKKwkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQlPYmpl Y3RJZEdldERhdHVtKHBhcmVudCkpOworCisJCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdf cGVyaW9kLCBQZXJpb2RSZWxpZE5hbWVJbmRleElkLCB0cnVlLAorCQkJCQkJCQkgIE5VTEwsIDEs IHNrZXkpOworCisJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4 dChzY2FuKSkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coIkluaGVyaXRpbmcgZnJvbSBhIHRhYmxl IHdpdGggYSBQRVJJT0QgaXMgbm90IHN1cHBvcnRlZCIpKSk7CisKKwkJc3lzdGFibGVfZW5kc2Nh bihzY2FuKTsKKwkJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBBY2Nlc3NTaGFyZUxvY2spOworCQl0 YWJsZV9jbG9zZShyZWxhdGlvbiwgTm9Mb2NrKTsKKwl9CisKKwkvKgorCSAqIEZpbmQgdGhlIHN0 YXJ0ICYgZW5kIGNvbHVtbnMgYW5kIGdldCB0aGVpciBhdHRubyBhbmQgdHlwZS4KKwkgKiBJbiB0 aGUgc2FtZSBwYXNzLCBtYWtlIHN1cmUgdGhlIHBlcmlvZCBkb2Vzbid0IGNvbmZsaWN0IHdpdGgg YW55IGNvbHVtbiBuYW1lcy4KKwkgKiBBbHNvIG1ha2Ugc3VyZSB0aGUgc2FtZSBwZXJpb2QgbmFt ZSBpc24ndCB1c2VkIG1vcmUgdGhhbiBvbmNlLgorCSAqLworCWZvcmVhY2ggKGVudHJ5LCBwZXJp b2RzKQorCXsKKwkJUGVyaW9kRGVmICpwZXJpb2QgPSBsZmlyc3QoZW50cnkpOworCQlMaXN0Q2Vs bCAqZW50cnkyOworCQlpbnQgaSA9IDE7CisJCU9pZCBzdGFydGNvbHR5cGlkID0gSW52YWxpZE9p ZDsKKwkJT2lkIGVuZGNvbHR5cGlkID0gSW52YWxpZE9pZDsKKwkJT2lkCXN0YXJ0Y29sY29sbGF0 aW9uID0gSW52YWxpZE9pZDsKKwkJT2lkCWVuZGNvbGNvbGxhdGlvbiA9IEludmFsaWRPaWQ7CisK KwkJcGVyaW9kLT5zdGFydGF0dG51bSA9IEludmFsaWRBdHRyTnVtYmVyOworCQlwZXJpb2QtPmVu ZGF0dG51bSA9IEludmFsaWRBdHRyTnVtYmVyOworCisJCWlmIChTeXN0ZW1BdHRyaWJ1dGVCeU5h bWUocGVyaW9kLT5wZXJpb2RuYW1lKSAhPSBOVUxMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkJIGVycm1zZygicGVyaW9k IG5hbWUgXCIlc1wiIGNvbmZsaWN0cyB3aXRoIGEgc3lzdGVtIGNvbHVtbiBuYW1lIiwKKwkJCQkJ CQlwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJZm9yZWFjaCAoZW50cnkyLCBwZXJpb2RzKQor CQl7CisJCQlQZXJpb2REZWYgKnBlcmlvZDIgPSBsZmlyc3QoZW50cnkyKTsKKworCQkJaWYgKHBl cmlvZCAhPSBwZXJpb2QyICYmIHN0cmNtcChwZXJpb2QtPnBlcmlvZG5hbWUsIHBlcmlvZDItPnBl cmlvZG5hbWUpID09IDApCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNP REVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCQkgZXJybXNnKCJwZXJpb2QgbmFtZSBcIiVzXCIg c3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlIiwKKwkJCQkJCQkJcGVyaW9kLT5wZXJpb2RuYW1lKSkp OworCQl9CisKKwkJZm9yZWFjaCAoZW50cnkyLCB0YWJsZUVsdHMpCisJCXsKKwkJCUNvbHVtbkRl ZiAqY29sID0gbGZpcnN0KGVudHJ5Mik7CisJCQlpbnQzMglhdHR0eXBtb2Q7CisJCQlBY2xSZXN1 bHQgYWNscmVzdWx0OworCisJCQlpZiAoIXBlcmlvZC0+Y29sZXhpc3RzICYmIHN0cmNtcChwZXJp b2QtPnBlcmlvZG5hbWUsIGNvbC0+Y29sbmFtZSkgPT0gMCkKKwkJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkJCSBlcnJtc2co InBlcmlvZCBuYW1lIFwiJXNcIiBjb25mbGljdHMgd2l0aCBhIGNvbHVtbiBuYW1lIiwKKwkJCQkJ CQkJcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCQlpZiAoc3RyY21wKHBlcmlvZC0+c3RhcnRj b2xuYW1lLCBjb2wtPmNvbG5hbWUpID09IDApCisJCQl7CisJCQkJcGVyaW9kLT5zdGFydGF0dG51 bSA9IGk7CisKKwkJCQl0eXBlbmFtZVR5cGVJZEFuZE1vZChOVUxMLCBjb2wtPnR5cGVOYW1lLCAm c3RhcnRjb2x0eXBpZCwgJmF0dHR5cG1vZCk7CisKKwkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNs Y2hlY2soVHlwZVJlbGF0aW9uSWQsIHN0YXJ0Y29sdHlwaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNB R0UpOworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJCWFjbGNoZWNrX2Vy cm9yX3R5cGUoYWNscmVzdWx0LCBzdGFydGNvbHR5cGlkKTsKKworCQkJCXN0YXJ0Y29sY29sbGF0 aW9uID0gR2V0Q29sdW1uRGVmQ29sbGF0aW9uKE5VTEwsIGNvbCwgc3RhcnRjb2x0eXBpZCk7CisJ CQl9CisKKwkJCWlmIChzdHJjbXAocGVyaW9kLT5lbmRjb2xuYW1lLCBjb2wtPmNvbG5hbWUpID09 IDApCisJCQl7CisJCQkJcGVyaW9kLT5lbmRhdHRudW0gPSBpOworCisJCQkJdHlwZW5hbWVUeXBl SWRBbmRNb2QoTlVMTCwgY29sLT50eXBlTmFtZSwgJmVuZGNvbHR5cGlkLCAmYXR0dHlwbW9kKTsK KworCQkJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhUeXBlUmVsYXRpb25JZCwgZW5kY29s dHlwaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNBR0UpOworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNM Q0hFQ0tfT0spCisJCQkJCWFjbGNoZWNrX2Vycm9yX3R5cGUoYWNscmVzdWx0LCBlbmRjb2x0eXBp ZCk7CisKKwkJCQllbmRjb2xjb2xsYXRpb24gPSBHZXRDb2x1bW5EZWZDb2xsYXRpb24oTlVMTCwg Y29sLCBlbmRjb2x0eXBpZCk7CisJCQl9CisKKwkJCWkrKzsKKwkJfQorCisJCS8qIERpZCB3ZSBm aW5kIHRoZSBjb2x1bW5zPyAqLworCQlpZiAocGVyaW9kLT5zdGFydGF0dG51bSA9PSBJbnZhbGlk QXR0ck51bWJlcikKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5E RUZJTkVEX0NPTFVNTiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24g XCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQlwZXJpb2QtPnN0YXJ0Y29sbmFtZSwgcmVs bmFtZSkpKTsKKwkJaWYgKHBlcmlvZC0+ZW5kYXR0bnVtID09IEludmFsaWRBdHRyTnVtYmVyKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1O KSwKKwkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgZG9lcyBu b3QgZXhpc3QiLAorCQkJCQkJCXBlcmlvZC0+ZW5kY29sbmFtZSwgcmVsbmFtZSkpKTsKKworCQkv KiBCb3RoIGNvbHVtbnMgbXVzdCBiZSBvZiBzYW1lIHR5cGUgKi8KKwkJaWYgKHN0YXJ0Y29sdHlw aWQgIT0gZW5kY29sdHlwaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygic3RhcnQgYW5kIGVuZCBjb2x1 bW5zIG9mIHBlcmlvZCBtdXN0IGJlIG9mIHNhbWUgdHlwZSIpKSk7CisKKwkJLyogQm90aCBjb2x1 bW5zIG11c3QgaGF2ZSB0aGUgc2FtZSBjb2xsYXRpb24gKi8KKwkJaWYgKHN0YXJ0Y29sY29sbGF0 aW9uICE9IGVuZGNvbGNvbGxhdGlvbikKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2Rl KEVSUkNPREVfQ09MTEFUSU9OX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygic3RhcnQgYW5kIGVu ZCBjb2x1bW5zIG9mIHBlcmlvZCBtdXN0IGhhdmUgc2FtZSBjb2xsYXRpb24iKSkpOworCisJCXBl cmlvZC0+Y29sdHlwaWQgPSBzdGFydGNvbHR5cGlkOworCQlwZXJpb2QtPnJuZ3R5cGlkID0gY2hv b3NlX3JhbmdldHlwZV9mb3JfcGVyaW9kKHBlcmlvZCk7CisJfQorCisJcmV0dXJuIHBlcmlvZHM7 Cit9CisKIC8qCiAgKiBNZXJnZUNoZWNrQ29uc3RyYWludAogICoJCVRyeSB0byBtZXJnZSBhbiBp bmhlcml0ZWQgQ0hFQ0sgY29uc3RyYWludCB3aXRoIHByZXZpb3VzIG9uZXMKQEAgLTQzOTgsMTIg KzQ5NzMsMTIgQEAgQWx0ZXJUYWJsZShBbHRlclRhYmxlU3RtdCAqc3RtdCwgTE9DS01PREUgbG9j a21vZGUsCiAgKiBleGlzdGluZyBxdWVyeSBwbGFucy4gIE9uIHRoZSBhc3N1bXB0aW9uIGl0J3Mg bm90IHVzZWQgZm9yIHN1Y2gsIHdlCiAgKiBkb24ndCBoYXZlIHRvIHJlamVjdCBwZW5kaW5nIEFG VEVSIHRyaWdnZXJzLCBlaXRoZXIuCiAgKgotICogQWxzbywgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBh biBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQsIHRoaXMgY2Fubm90IGJlCisgKiBBbHNvLCBpZiB5 b3UgZG9uJ3QgcGFzcyBhbiBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQsIHRoaXMgY2Fubm90IGJl CiAgKiB1c2VkIGZvciBhbnkgc3ViY29tbWFuZCB0eXBlcyB0aGF0IHJlcXVpcmUgcGFyc2UgdHJh bnNmb3JtYXRpb24gb3IKICAqIGNvdWxkIGdlbmVyYXRlIHN1YmNvbW1hbmRzIHRoYXQgaGF2ZSB0 byBiZSBwYXNzZWQgdG8gUHJvY2Vzc1V0aWxpdHkuCiAgKi8KIHZvaWQKLUFsdGVyVGFibGVJbnRl cm5hbChPaWQgcmVsaWQsIExpc3QgKmNtZHMsIGJvb2wgcmVjdXJzZSkKK0FsdGVyVGFibGVJbnRl cm5hbChPaWQgcmVsaWQsIExpc3QgKmNtZHMsIGJvb2wgcmVjdXJzZSwgQWx0ZXJUYWJsZVV0aWxp dHlDb250ZXh0ICpjb250ZXh0KQogewogCVJlbGF0aW9uCXJlbDsKIAlMT0NLTU9ERQlsb2NrbW9k ZSA9IEFsdGVyVGFibGVHZXRMb2NrTGV2ZWwoY21kcyk7CkBAIC00NDEyLDcgKzQ5ODcsNyBAQCBB bHRlclRhYmxlSW50ZXJuYWwoT2lkIHJlbGlkLCBMaXN0ICpjbWRzLCBib29sIHJlY3Vyc2UpCiAK IAlFdmVudFRyaWdnZXJBbHRlclRhYmxlUmVsaWQocmVsaWQpOwogCi0JQVRDb250cm9sbGVyKE5V TEwsIHJlbCwgY21kcywgcmVjdXJzZSwgbG9ja21vZGUsIE5VTEwpOworCUFUQ29udHJvbGxlcihO VUxMLCByZWwsIGNtZHMsIHJlY3Vyc2UsIGxvY2ttb2RlLCBjb250ZXh0KTsKIH0KIAogLyoKQEAg LTQ1MDUsNiArNTA4MCw4IEBAIEFsdGVyVGFibGVHZXRMb2NrTGV2ZWwoTGlzdCAqY21kcykKIAkJ CWNhc2UgQVRfRW5hYmxlUmVwbGljYVJ1bGU6CS8qIG1heSBjaGFuZ2UgU0VMRUNUIHJ1bGVzICov CiAJCQljYXNlIEFUX0VuYWJsZVJ1bGU6IC8qIG1heSBjaGFuZ2UgU0VMRUNUIHJ1bGVzICovCiAJ CQljYXNlIEFUX0Rpc2FibGVSdWxlOgkvKiBtYXkgY2hhbmdlIFNFTEVDVCBydWxlcyAqLworCQkJ Y2FzZSBBVF9BZGRQZXJpb2Q6IC8qIHNoYXJlcyBuYW1lc3BhY2Ugd2l0aCBjb2x1bW5zLCBhZGRz IGNvbnN0cmFpbnQgKi8KKwkJCWNhc2UgQVRfRHJvcFBlcmlvZDoKIAkJCQljbWRfbG9ja21vZGUg PSBBY2Nlc3NFeGNsdXNpdmVMb2NrOwogCQkJCWJyZWFrOwogCkBAIC00ODMzLDYgKzU0MTAsMTQg QEAgQVRQcmVwQ21kKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAq Y21kLAogCQkJLyogVGhpcyBjb21tYW5kIG5ldmVyIHJlY3Vyc2VzICovCiAJCQlwYXNzID0gQVRf UEFTU19BRERfT1RIRVJDT05TVFI7CiAJCQlicmVhazsKKwkJY2FzZSBBVF9BZGRQZXJpb2Q6IC8q IEFMVEVSIFRBQkxFIC4uLiBBREQgUEVSSU9EIEZPUiBuYW1lIChzdGFydCwgZW5kKSAqLworCQkJ QVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFKTsKKwkJCXBh c3MgPSBBVF9QQVNTX0FERF9QRVJJT0Q7CisJCQlicmVhazsKKwkJY2FzZSBBVF9Ecm9wUGVyaW9k OiAvKiBBTFRFUiBUQUJMRSAuLi4gRFJPUCBQRVJJT0QgRk9SIG5hbWUgKi8KKwkJCUFUU2ltcGxl UGVybWlzc2lvbnMoY21kLT5zdWJ0eXBlLCByZWwsIEFUVF9UQUJMRSk7CisJCQlwYXNzID0gQVRf UEFTU19EUk9QOworCQkJYnJlYWs7CiAJCWNhc2UgQVRfQWRkSWRlbnRpdHk6CiAJCQlBVFNpbXBs ZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwgcmVsLAogCQkJCQkJCQlBVFRfVEFCTEUgfCBBVFRf UEFSVElUSU9ORURfVEFCTEUgfCBBVFRfVklFVyB8CkBAIC01MjQ2LDYgKzU4MzEsMTQgQEAgQVRF eGVjQ21kKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwKIAkJY2FzZSBBVF9D b29rZWRDb2x1bW5EZWZhdWx0OgkvKiBhZGQgYSBwcmUtY29va2VkIGRlZmF1bHQgKi8KIAkJCWFk ZHJlc3MgPSBBVEV4ZWNDb29rZWRDb2x1bW5EZWZhdWx0KHJlbCwgY21kLT5udW0sIGNtZC0+ZGVm KTsKIAkJCWJyZWFrOworCQljYXNlIEFUX0FkZFBlcmlvZDoKKwkJCWFkZHJlc3MgPSBBVEV4ZWNB ZGRQZXJpb2QocmVsLCAoUGVyaW9kRGVmICopIGNtZC0+ZGVmLCBjb250ZXh0KTsKKwkJCWJyZWFr OworCQljYXNlIEFUX0Ryb3BQZXJpb2Q6CisJCQlBVEV4ZWNEcm9wUGVyaW9kKHJlbCwgY21kLT5u YW1lLCBjbWQtPmJlaGF2aW9yLAorCQkJCQkJCQkgZmFsc2UsIGZhbHNlLAorCQkJCQkJCQkgY21k LT5taXNzaW5nX29rKTsKKwkJCWJyZWFrOwogCQljYXNlIEFUX0FkZElkZW50aXR5OgogCQkJY21k ID0gQVRQYXJzZVRyYW5zZm9ybUNtZCh3cXVldWUsIHRhYiwgcmVsLCBjbWQsIGZhbHNlLCBsb2Nr bW9kZSwKIAkJCQkJCQkJCSAgY3VyX3Bhc3MsIGNvbnRleHQpOwpAQCAtNjM5OSw2ICs2OTkyLDgg QEAgYWx0ZXJfdGFibGVfdHlwZV90b19zdHJpbmcoQWx0ZXJUYWJsZVR5cGUgY21kdHlwZSkKIAkJ Y2FzZSBBVF9BZGRDb2x1bW46CiAJCWNhc2UgQVRfQWRkQ29sdW1uVG9WaWV3OgogCQkJcmV0dXJu ICJBREQgQ09MVU1OIjsKKwkJY2FzZSBBVF9BZGRQZXJpb2Q6CisJCQlyZXR1cm4gIkFERCBQRVJJ T0QiOwogCQljYXNlIEFUX0NvbHVtbkRlZmF1bHQ6CiAJCWNhc2UgQVRfQ29va2VkQ29sdW1uRGVm YXVsdDoKIAkJCXJldHVybiAiQUxURVIgQ09MVU1OIC4uLiBTRVQgREVGQVVMVCI7CkBAIC02NDI0 LDYgKzcwMTksOCBAQCBhbHRlcl90YWJsZV90eXBlX3RvX3N0cmluZyhBbHRlclRhYmxlVHlwZSBj bWR0eXBlKQogCQkJcmV0dXJuICJBTFRFUiBDT0xVTU4gLi4uIFNFVCBDT01QUkVTU0lPTiI7CiAJ CWNhc2UgQVRfRHJvcENvbHVtbjoKIAkJCXJldHVybiAiRFJPUCBDT0xVTU4iOworCQljYXNlIEFU X0Ryb3BQZXJpb2Q6CisJCQlyZXR1cm4gIkRST1AgUEVSSU9EIjsKIAkJY2FzZSBBVF9BZGRJbmRl eDoKIAkJY2FzZSBBVF9SZUFkZEluZGV4OgogCQkJcmV0dXJuIE5VTEw7CQkvKiBub3QgcmVhbCBn cmFtbWFyICovCkBAIC03NDA5LDE0ICs4MDA2LDI5IEBAIEFURXhlY0FkZENvbHVtbihMaXN0ICoq d3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIC8qCiAgKiBJZiBh IG5ldyBvciByZW5hbWVkIGNvbHVtbiB3aWxsIGNvbGxpZGUgd2l0aCB0aGUgbmFtZSBvZiBhbiBl eGlzdGluZwogICogY29sdW1uIGFuZCBpZl9ub3RfZXhpc3RzIGlzIGZhbHNlIHRoZW4gZXJyb3Ig b3V0LCBlbHNlIGRvIG5vdGhpbmcuCisgKgorICogU2VlIGFsc28gY2hlY2tfZm9yX3BlcmlvZF9u YW1lX2NvbGxpc2lvbi4KICAqLwogc3RhdGljIGJvb2wKIGNoZWNrX2Zvcl9jb2x1bW5fbmFtZV9j b2xsaXNpb24oUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xuYW1lLAogCQkJCQkJCQlib29s IGlmX25vdF9leGlzdHMpCiB7Ci0JSGVhcFR1cGxlCWF0dFR1cGxlOworCUhlYXBUdXBsZQlhdHRU dXBsZSwgcGVyVHVwbGU7CiAJaW50CQkJYXR0bnVtOwogCisJLyogSWYgdGhlIG5hbWUgZXhpc3Rz IGFzIGEgcGVyaW9kLCB3ZSdyZSBkb25lLiAqLworCXBlclR1cGxlID0gU2VhcmNoU3lzQ2FjaGUy KFBFUklPRE5BTUUsCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJlbGlk KHJlbCkpLAorCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShjb2xuYW1lKSk7CisJaWYgKEhlYXBU dXBsZUlzVmFsaWQocGVyVHVwbGUpKQorCXsKKwkJUmVsZWFzZVN5c0NhY2hlKHBlclR1cGxlKTsK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9DT0xVTU4p LAorCQkJCSBlcnJtc2coImNvbHVtbiBuYW1lIFwiJXNcIiBjb25mbGljdHMgd2l0aCBhIHBlcmlv ZCBuYW1lIiwKKwkJCQkJCWNvbG5hbWUpKSk7CisJfQorCiAJLyoKIAkgKiB0aGlzIHRlc3QgaXMg ZGVsaWJlcmF0ZWx5IG5vdCBhdHRpc2Ryb3BwZWQtYXdhcmUsIHNpbmNlIGlmIG9uZSB0cmllcyB0 bwogCSAqIGFkZCBhIGNvbHVtbiBtYXRjaGluZyBhIGRyb3BwZWQgY29sdW1uIG5hbWUsIGl0J3Mg Z29ubmEgZmFpbCBhbnl3YXkuCkBAIC03NDYwLDYgKzgwNzIsNzcgQEAgY2hlY2tfZm9yX2NvbHVt bl9uYW1lX2NvbGxpc2lvbihSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbG5hbWUsCiAJcmV0 dXJuIHRydWU7CiB9CiAKKy8qCisgKiBJZiBhIG5ldyBwZXJpb2QgbmFtZSB3aWxsIGNvbGxpZGUg d2l0aCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjb2x1bW4gb3IKKyAqIHBlcmlvZCBbYW5kIGlm X25vdF9leGlzdHMgaXMgZmFsc2VdIHRoZW4gZXJyb3Igb3V0LCBlbHNlIGRvIG5vdGhpbmcuCisg KgorICogU2VlIGFsc28gY2hlY2tfZm9yX2NvbHVtbl9uYW1lX2NvbGxpc2lvbi4KKyAqLworc3Rh dGljIGJvb2wKK2NoZWNrX2Zvcl9wZXJpb2RfbmFtZV9jb2xsaXNpb24oUmVsYXRpb24gcmVsLCBj b25zdCBjaGFyICpwZXJuYW1lLAorCQkJCQkJCQlib29sIGNvbGV4aXN0cywgYm9vbCBpZl9ub3Rf ZXhpc3RzKQoreworCUhlYXBUdXBsZQlhdHRUdXBsZSwgcGVyVHVwbGU7CisJaW50CQkJYXR0bnVt OworCisJLyogVE9ETzogaW1wbGVtZW50IElGIFtOT1RdIEVYSVNUUyBmb3IgcGVyaW9kcyAqLwor CUFzc2VydCghaWZfbm90X2V4aXN0cyk7CisKKwkvKiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgcGVy aW9kIHdpdGggdGhpcyBuYW1lLCB0aGVuIHdlJ3JlIGRvbmUuICovCisJcGVyVHVwbGUgPSBTZWFy Y2hTeXNDYWNoZTIoUEVSSU9ETkFNRSwKKwkJCQkJCQkgICBPYmplY3RJZEdldERhdHVtKFJlbGF0 aW9uR2V0UmVsaWQocmVsKSksCisJCQkJCQkJICAgUG9pbnRlckdldERhdHVtKHBlcm5hbWUpKTsK KwlpZiAoSGVhcFR1cGxlSXNWYWxpZChwZXJUdXBsZSkpCisJeworCQlpZiAoaWZfbm90X2V4aXN0 cykKKwkJeworCQkJUmVsZWFzZVN5c0NhY2hlKHBlclR1cGxlKTsKKworCQkJZXJlcG9ydChOT1RJ Q0UsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX0NPTFVNTiksCisJCQkJCSBlcnJt c2coInBlcmlvZCBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGFscmVhZHkgZXhpc3RzLCBza2lw cGluZyIsCisJCQkJCQkJcGVybmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsK KwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkgZXJybXNnKCJwZXJpb2QgXCIlc1wiIG9m IHJlbGF0aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsCisJCQkJCQlwZXJuYW1lLCBSZWxhdGlv bkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCX0KKworCS8qCisJICogdGhpcyB0ZXN0IGlzIGRl bGliZXJhdGVseSBub3QgYXR0aXNkcm9wcGVkLWF3YXJlLCBzaW5jZSBpZiBvbmUgdHJpZXMgdG8K KwkgKiBhZGQgYSBjb2x1bW4gbWF0Y2hpbmcgYSBkcm9wcGVkIGNvbHVtbiBuYW1lLCBpdCdzIGdv bm5hIGZhaWwgYW55d2F5LgorCSAqLworCWF0dFR1cGxlID0gU2VhcmNoU3lzQ2FjaGUyKEFUVE5B TUUsCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJlbGlkKHJlbCkpLAor CQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShwZXJuYW1lKSk7CisJaWYgKEhlYXBUdXBsZUlzVmFs aWQoYXR0VHVwbGUpKQorCXsKKwkJYXR0bnVtID0gKChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RS VUNUKGF0dFR1cGxlKSktPmF0dG51bTsKKwkJUmVsZWFzZVN5c0NhY2hlKGF0dFR1cGxlKTsKKwor CQkvKgorCQkgKiBXZSB0aHJvdyBhIGRpZmZlcmVudCBlcnJvciBtZXNzYWdlIGZvciBjb25mbGlj dHMgd2l0aCBzeXN0ZW0gY29sdW1uCisJCSAqIG5hbWVzLCBzaW5jZSB0aGV5IGFyZSBub3JtYWxs eSBub3Qgc2hvd24gYW5kIHRoZSB1c2VyIG1pZ2h0IG90aGVyd2lzZQorCQkgKiBiZSBjb25mdXNl ZCBhYm91dCB0aGUgcmVhc29uIGZvciB0aGUgY29uZmxpY3QuCisJCSAqLworCQlpZiAoYXR0bnVt IDw9IDApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FU RV9DT0xVTU4pLAorCQkJCQkgZXJybXNnKCJwZXJpb2QgbmFtZSBcIiVzXCIgY29uZmxpY3RzIHdp dGggYSBzeXN0ZW0gY29sdW1uIG5hbWUiLAorCQkJCQkJCXBlcm5hbWUpKSk7CisJCWlmICghY29s ZXhpc3RzKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNB VEVfQ09MVU1OKSwKKwkJCQkJIGVycm1zZygicGVyaW9kIG5hbWUgXCIlc1wiIGNvbmZsaWN0cyB3 aXRoIGEgY29sdW1uIG5hbWUiLAorCQkJCQkJCXBlcm5hbWUpKSk7CisJfQorCisJcmV0dXJuIHRy dWU7Cit9CisKIC8qCiAgKiBJbnN0YWxsIGEgY29sdW1uJ3MgZGVwZW5kZW5jeSBvbiBpdHMgZGF0 YXR5cGUuCiAgKi8KQEAgLTc5NjksNiArODY1MiwxNTcgQEAgQVRFeGVjQ29va2VkQ29sdW1uRGVm YXVsdChSZWxhdGlvbiByZWwsIEF0dHJOdW1iZXIgYXR0bnVtLAogCXJldHVybiBhZGRyZXNzOwog fQogCisvKgorICogQUxURVIgVEFCTEUgQUREIFBFUklPRAorICoKKyAqIFJldHVybiB0aGUgYWRk cmVzcyBvZiB0aGUgcGVyaW9kLgorICovCitzdGF0aWMgT2JqZWN0QWRkcmVzcworQVRFeGVjQWRk UGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpwZXJpb2QsIEFsdGVyVGFibGVVdGlsaXR5 Q29udGV4dCAqY29udGV4dCkKK3sKKwlSZWxhdGlvbgkJYXR0cmVsYXRpb247CisJT2JqZWN0QWRk cmVzcwlhZGRyZXNzID0gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJQ29uc3RyYWludAkgICAqY29u c3RyOworCUNvbHVtbkRlZgkgICAqcmFuZ2Vjb2w7CisJT2lkCQkJCWNvbm9pZCwgcGVyaW9kb2lk OworCUxpc3QJCSAgICpjbWRzID0gTklMOworCUFsdGVyVGFibGVDbWQgICpjbWQ7CisKKwkvKgor CSAqIFBFUklPRCBGT1IgU1lTVEVNX1RJTUUgaXMgbm90IHlldCBpbXBsZW1lbnRlZCwgYnV0IG1h a2Ugc3VyZSBubyBvbmUgdXNlcworCSAqIHRoZSBuYW1lLgorCSAqLworCWlmIChzdHJjbXAocGVy aW9kLT5wZXJpb2RuYW1lLCAic3lzdGVtX3RpbWUiKSA9PSAwKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJy bXNnKCJQRVJJT0QgRk9SIFNZU1RFTV9USU1FIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOworCisJLyog UGFyc2Ugb3B0aW9ucyAqLworCXRyYW5zZm9ybVBlcmlvZE9wdGlvbnMocGVyaW9kKTsKKworCS8q IFRoZSBwZXJpb2QgbmFtZSBtdXN0IG5vdCBhbHJlYWR5IGV4aXN0ICovCisJKHZvaWQpIGNoZWNr X2Zvcl9wZXJpb2RfbmFtZV9jb2xsaXNpb24ocmVsLCBwZXJpb2QtPnBlcmlvZG5hbWUsIHBlcmlv ZC0+Y29sZXhpc3RzLCBmYWxzZSk7CisKKwlhdHRyZWxhdGlvbiA9IHRhYmxlX29wZW4oQXR0cmli dXRlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisJVmFsaWRhdGVQZXJpb2QocmVsLCBw ZXJpb2QpOworCisJLyogTWFrZSB0aGUgQ0hFQ0sgY29uc3RyYWludCAqLworCWNvbnN0ciA9IG1h a2VfY29uc3RyYWludF9mb3JfcGVyaW9kKHJlbCwgcGVyaW9kKTsKKwljbWQgPSBtYWtlTm9kZShB bHRlclRhYmxlQ21kKTsKKwljbWQtPnN1YnR5cGUgPSBBVF9BZGRDb25zdHJhaW50OworCWNtZC0+ ZGVmID0gKE5vZGUgKikgY29uc3RyOworCWNtZHMgPSBsYXBwZW5kKGNtZHMsIGNtZCk7CisJQWx0 ZXJUYWJsZUludGVybmFsKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgY21kcywgdHJ1ZSwgY29udGV4 dCk7CisJY29ub2lkID0gZ2V0X3JlbGF0aW9uX2NvbnN0cmFpbnRfb2lkKFJlbGF0aW9uR2V0UmVs aWQocmVsKSwgcGVyaW9kLT5jb25zdHJhaW50bmFtZSwgZmFsc2UpOworCisJaWYgKCFwZXJpb2Qt PmNvbGV4aXN0cykKKwl7CisJCS8qIE1ha2UgdGhlIHJhbmdlIGNvbHVtbiAqLworCQlyYW5nZWNv bCA9IG1ha2VfcmFuZ2VfY29sdW1uX2Zvcl9wZXJpb2QocGVyaW9kKTsKKwkJY21kID0gbWFrZU5v ZGUoQWx0ZXJUYWJsZUNtZCk7CisJCWNtZC0+c3VidHlwZSA9IEFUX0FkZENvbHVtbjsKKwkJY21k LT5kZWYgPSAoTm9kZSAqKSByYW5nZWNvbDsKKwkJY21kLT5uYW1lID0gcGVyaW9kLT5wZXJpb2Ru YW1lOworCQljbWQtPnJlY3Vyc2UgPSBmYWxzZTsgLyogbm8sIGxldCB0aGUgUEVSSU9EIHJlY3Vy c2UgaW5zdGVhZCAqLworCQlBbHRlclRhYmxlSW50ZXJuYWwoUmVsYXRpb25HZXRSZWxpZChyZWwp LCBsaXN0X21ha2UxKGNtZCksIHRydWUsIGNvbnRleHQpOworCQlwZXJpb2QtPnJuZ2F0dG51bSA9 IGdldF9hdHRudW0oUmVsYXRpb25HZXRSZWxpZChyZWwpLCBwZXJpb2QtPnBlcmlvZG5hbWUpOwor CQlpZiAocGVyaW9kLT5ybmdhdHRudW0gPT0gSW52YWxpZEF0dHJOdW1iZXIpCisJCQllbG9nKEVS Uk9SLCAibWlzc2luZyBhdHRyaWJ1dGUgJXMiLCBwZXJpb2QtPnBlcmlvZG5hbWUpOworCisJfQor CisJLyogU2F2ZSB0aGUgUGVyaW9kICovCisJcGVyaW9kb2lkID0gU3RvcmVQZXJpb2QocmVsLCBw ZXJpb2QtPnBlcmlvZG5hbWUsIHBlcmlvZC0+c3RhcnRhdHRudW0sIHBlcmlvZC0+ZW5kYXR0bnVt LCBwZXJpb2QtPnJuZ2F0dG51bSwgY29ub2lkKTsKKworCU9iamVjdEFkZHJlc3NTZXQoYWRkcmVz cywgUGVyaW9kUmVsYXRpb25JZCwgcGVyaW9kb2lkKTsKKworCXRhYmxlX2Nsb3NlKGF0dHJlbGF0 aW9uLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXJldHVybiBhZGRyZXNzOworfQorCisvKgorICog QUxURVIgVEFCTEUgRFJPUCBQRVJJT0QKKyAqCisgKiBMaWtlIERST1AgQ09MVU1OLCB3ZSBjYW4n dCB1c2UgdGhlIG5vcm1hbCBBTFRFUiBUQUJMRSByZWN1cnNpb24gbWVjaGFuaXNtLgorICovCitz dGF0aWMgdm9pZAorQVRFeGVjRHJvcFBlcmlvZChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKnBl cmlvZE5hbWUsCisJCQkJCSBEcm9wQmVoYXZpb3IgYmVoYXZpb3IsCisJCQkJCSBib29sIHJlY3Vy c2UsIGJvb2wgcmVjdXJzaW5nLAorCQkJCQkgYm9vbCBtaXNzaW5nX29rKQoreworCVJlbGF0aW9u CXBnX3BlcmlvZDsKKwlGb3JtX3BnX3BlcmlvZCBwZXJpb2Q7CisJU3lzU2NhbkRlc2Mgc2NhbjsK KwlTY2FuS2V5RGF0YSBrZXk7CisJSGVhcFR1cGxlCXR1cGxlOworCWJvb2wJCWZvdW5kID0gZmFs c2U7CisKKwkvKiBBdCB0b3AgbGV2ZWwsIHBlcm1pc3Npb24gY2hlY2sgd2FzIGRvbmUgaW4gQVRQ cmVwQ21kLCBlbHNlIGRvIGl0ICovCisJaWYgKHJlY3Vyc2luZykKKwkJQVRTaW1wbGVQZXJtaXNz aW9ucyhBVF9Ecm9wUGVyaW9kLCByZWwsIEFUVF9UQUJMRSk7CisKKwlwZ19wZXJpb2QgPSB0YWJs ZV9vcGVuKFBlcmlvZFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJLyoKKwkgKiBG aW5kIGFuZCBkcm9wIHRoZSB0YXJnZXQgcGVyaW9kCisJICovCisJU2NhbktleUluaXQoJmtleSwK KwkJCQlBbnVtX3BnX3BlcmlvZF9wZXJyZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIs IEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJlbGlkKHJlbCkpKTsK KwlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHBnX3BlcmlvZCwgUGVyaW9kUmVsaWROYW1lSW5k ZXhJZCwKKwkJCQkJCQkgIHRydWUsIE5VTEwsIDEsICZrZXkpOworCisJd2hpbGUgKEhlYXBUdXBs ZUlzVmFsaWQodHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCU9iamVjdEFk ZHJlc3MgcGVyb2JqOworCisJCXBlcmlvZCA9IChGb3JtX3BnX3BlcmlvZCkgR0VUU1RSVUNUKHR1 cGxlKTsKKworCQlpZiAoc3RyY21wKE5hbWVTdHIocGVyaW9kLT5wZXJuYW1lKSwgcGVyaW9kTmFt ZSkgIT0gMCkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIFBlcmZvcm0gdGhlIGFjdHVhbCBw ZXJpb2QgZGVsZXRpb24KKwkJICovCisJCXBlcm9iai5jbGFzc0lkID0gUGVyaW9kUmVsYXRpb25J ZDsKKwkJcGVyb2JqLm9iamVjdElkID0gcGVyaW9kLT5vaWQ7CisJCXBlcm9iai5vYmplY3RTdWJJ ZCA9IDA7CisKKwkJcGVyZm9ybURlbGV0aW9uKCZwZXJvYmosIGJlaGF2aW9yLCAwKTsKKworCQlm b3VuZCA9IHRydWU7CisKKwkJLyogcGVyaW9kIGZvdW5kIGFuZCBkcm9wcGVkIC0tIG5vIG5lZWQg dG8ga2VlcCBsb29waW5nICovCisJCWJyZWFrOworCX0KKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nh bik7CisKKwlpZiAoIWZvdW5kKQorCXsKKwkJaWYgKCFtaXNzaW5nX29rKQorCQl7CisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJ CQkgZXJybXNnKCJwZXJpb2QgXCIlc1wiIG9uIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlz dCIsCisJCQkJCQkJcGVyaW9kTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsK KwkJfQorCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkoZXJybXNnKCJwZXJp b2QgXCIlc1wiIG9uIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciLAor CQkJCQkJCXBlcmlvZE5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCQl0 YWJsZV9jbG9zZShwZ19wZXJpb2QsIFJvd0V4Y2x1c2l2ZUxvY2spOworCQkJcmV0dXJuOworCQl9 CisJfQorCisJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBSb3dFeGNsdXNpdmVMb2NrKTsKK30KKwog LyoKICAqIEFMVEVSIFRBQkxFIEFMVEVSIENPTFVNTiBBREQgSURFTlRJVFkKICAqCkBAIC05NzQ1 LDggKzEwNTc5LDkgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBB bHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAlmb3IgKGkgPSAwOyBpIDwgbnVt ZmtzOyBpKyspCiAJewogCQljaGFyCQlhdHRnZW5lcmF0ZWQgPSBUdXBsZURlc2NBdHRyKFJlbGF0 aW9uR2V0RGVzY3IocmVsKSwgZmthdHRudW1baV0gLSAxKS0+YXR0Z2VuZXJhdGVkOworCQlCaXRt YXBzZXQgICpwZXJpb2RzID0gZ2V0X3BlcmlvZF9hdHRub3MoUmVsYXRpb25HZXRSZWxpZChyZWwp KTsKIAotCQlpZiAoYXR0Z2VuZXJhdGVkKQorCQlpZiAoYXR0Z2VuZXJhdGVkICYmICFibXNfaXNf bWVtYmVyKGZrYXR0bnVtW2ldLCBwZXJpb2RzKSkKIAkJewogCQkJLyoKIAkJCSAqIENoZWNrIHJl c3RyaWN0aW9ucyBvbiBVUERBVEUvREVMRVRFIGFjdGlvbnMsIHBlciBTUUwgc3RhbmRhcmQKQEAg LTEzNTQ3LDYgKzE0MzgyLDE2IEBAIFJlbWVtYmVyQWxsRGVwZW5kZW50Rm9yUmVidWlsZGluZyhB bHRlcmVkVGFibGVJbmZvICp0YWIsIEFsdGVyVGFibGVUeXBlIHN1YnR5cGUsCiAJCQkJUmVtZW1i ZXJDb25zdHJhaW50Rm9yUmVidWlsZGluZyhmb3VuZE9iamVjdC5vYmplY3RJZCwgdGFiKTsKIAkJ CQlicmVhazsKIAorCQkJY2FzZSBQZXJpb2RSZWxhdGlvbklkOgorCQkJCWlmIChzdWJ0eXBlID09 IEFUX0FsdGVyQ29sdW1uVHlwZSkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJIGVycm1zZygiY2Fubm90 IGFsdGVyIHR5cGUgb2YgYSBjb2x1bW4gdXNlZCBieSBhIHBlcmlvZCIpLAorCQkJCQkJCSBlcnJk ZXRhaWwoIiVzIGRlcGVuZHMgb24gY29sdW1uIFwiJXNcIiIsCisJCQkJCQkJCQkgICBnZXRPYmpl Y3REZXNjcmlwdGlvbigmZm91bmRPYmplY3QsIGZhbHNlKSwKKwkJCQkJCQkJCSAgIGNvbE5hbWUp KSk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgUHJvY2VkdXJlUmVsYXRpb25JZDoKIAogCQkJCS8q CkBAIC0xMzYzNiw2ICsxNDQ4MSwxNSBAQCBSZW1lbWJlckFsbERlcGVuZGVudEZvclJlYnVpbGRp bmcoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBBbHRlclRhYmxlVHlwZSBzdWJ0eXBlLAogCQkJCQl9 CiAJCQkJCWVsc2UKIAkJCQkJeworCQkJCQkJLyoKKwkJCQkJCSAqIElmIHRoaXMgR0VORVJBVEVE IGNvbHVtbiBpcyBpbXBsZW1lbnRpbmcgYSBQRVJJT0QsCisJCQkJCQkgKiBrZWVwIGdvaW5nIGFu ZCB3ZSdsbCBmYWlsIGZyb20gdGhlIFBFUklPRCBpbnN0ZWFkLgorCQkJCQkJICogVGhpcyBnaXZl cyBhIG1vcmUgY2xlYXIgZXJyb3IgbWVzc2FnZS4KKwkJCQkJCSAqLworCQkJCQkJQml0bWFwc2V0 ICpwZXJpb2RhdHRzID0gZ2V0X3BlcmlvZF9hdHRub3MoUmVsYXRpb25HZXRSZWxpZChyZWwpKTsK KwkJCQkJCWlmIChibXNfaXNfbWVtYmVyKGNvbC5vYmplY3RTdWJJZCwgcGVyaW9kYXR0cykpCisJ CQkJCQkJYnJlYWs7CisKIAkJCQkJCS8qCiAJCQkJCQkgKiBUaGlzIG11c3QgYmUgYSByZWZlcmVu Y2UgZnJvbSB0aGUgZXhwcmVzc2lvbiBvZiBhCiAJCQkJCQkgKiBnZW5lcmF0ZWQgY29sdW1uIGVs c2V3aGVyZSBpbiB0aGUgc2FtZSB0YWJsZS4KQEAgLTE1NTMwLDcgKzE2Mzg0LDcgQEAgQWx0ZXJU YWJsZU1vdmVBbGwoQWx0ZXJUYWJsZU1vdmVBbGxTdG10ICpzdG10KQogCiAJCUV2ZW50VHJpZ2dl ckFsdGVyVGFibGVTdGFydCgoTm9kZSAqKSBzdG10KTsKIAkJLyogT0lEIGlzIHNldCBieSBBbHRl clRhYmxlSW50ZXJuYWwgKi8KLQkJQWx0ZXJUYWJsZUludGVybmFsKGxmaXJzdF9vaWQobCksIGNt ZHMsIGZhbHNlKTsKKwkJQWx0ZXJUYWJsZUludGVybmFsKGxmaXJzdF9vaWQobCksIGNtZHMsIGZh bHNlLCBOVUxMKTsKIAkJRXZlbnRUcmlnZ2VyQWx0ZXJUYWJsZUVuZCgpOwogCX0KIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdHJpZ2dlci5jCmluZGV4IDFjZTFhN2ZiODhiLi4wZmRjYmUwMWI0YSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3RyaWdnZXIuYwpAQCAtNjA1OCw2ICs2MDU4LDggQEAgQ29weUZvclBvcnRpb25PZlN0YXRlKEZv clBvcnRpb25PZlN0YXRlICpzcmMpCiAJCWRzdC0+ZnBfcmFuZ2VOYW1lID0gcHN0cmR1cChzcmMt PmZwX3JhbmdlTmFtZSk7CiAJCWRzdC0+ZnBfcmFuZ2VUeXBlID0gc3JjLT5mcF9yYW5nZVR5cGU7 CiAJCWRzdC0+ZnBfcmFuZ2VBdHRubyA9IHNyYy0+ZnBfcmFuZ2VBdHRubzsKKwkJZHN0LT5mcF9w ZXJpb2RTdGFydEF0dG5vID0gc3JjLT5mcF9wZXJpb2RTdGFydEF0dG5vOworCQlkc3QtPmZwX3Bl cmlvZEVuZEF0dG5vID0gc3JjLT5mcF9wZXJpb2RFbmRBdHRubzsKIAogCQlyID0gRGF0dW1HZXRS YW5nZVR5cGVQKHNyYy0+ZnBfdGFyZ2V0UmFuZ2UpOwogCQl0eXBjYWNoZSA9IGxvb2t1cF90eXBl X2NhY2hlKFJhbmdlVHlwZUdldE9pZChyKSwgVFlQRUNBQ0hFX1JBTkdFX0lORk8pOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmlldy5jCmluZGV4IGZkYWQ4MzM4MzI0Li4zYWUyMjVkNjc5OCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdmlldy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwpA QCAtMTY0LDcgKzE2NCw3IEBAIERlZmluZVZpcnR1YWxSZWxhdGlvbihSYW5nZVZhciAqcmVsYXRp b24sIExpc3QgKnRsaXN0LCBib29sIHJlcGxhY2UsCiAJCQl9CiAKIAkJCS8qIEV2ZW50VHJpZ2dl ckFsdGVyVGFibGVTdGFydCBjYWxsZWQgYnkgUHJvY2Vzc1V0aWxpdHlTbG93ICovCi0JCQlBbHRl clRhYmxlSW50ZXJuYWwodmlld09pZCwgYXRjbWRzLCB0cnVlKTsKKwkJCUFsdGVyVGFibGVJbnRl cm5hbCh2aWV3T2lkLCBhdGNtZHMsIHRydWUsIE5VTEwpOwogCiAJCQkvKiBNYWtlIHRoZSBuZXcg dmlldyBjb2x1bW5zIHZpc2libGUgKi8KIAkJCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CkBA IC0xOTYsNyArMTk2LDcgQEAgRGVmaW5lVmlydHVhbFJlbGF0aW9uKFJhbmdlVmFyICpyZWxhdGlv biwgTGlzdCAqdGxpc3QsIGJvb2wgcmVwbGFjZSwKIAkJYXRjbWRzID0gbGlzdF9tYWtlMShhdGNt ZCk7CiAKIAkJLyogRXZlbnRUcmlnZ2VyQWx0ZXJUYWJsZVN0YXJ0IGNhbGxlZCBieSBQcm9jZXNz VXRpbGl0eVNsb3cgKi8KLQkJQWx0ZXJUYWJsZUludGVybmFsKHZpZXdPaWQsIGF0Y21kcywgdHJ1 ZSk7CisJCUFsdGVyVGFibGVJbnRlcm5hbCh2aWV3T2lkLCBhdGNtZHMsIHRydWUsIE5VTEwpOwog CiAJCS8qCiAJCSAqIFRoZXJlIGlzIHZlcnkgbGl0dGxlIHRvIGRvIGhlcmUgdG8gdXBkYXRlIHRo ZSB2aWV3J3MgZGVwZW5kZW5jaWVzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZU1vZGlmeVRhYmxlLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUu YwppbmRleCA5ZjIyMzQzMjBmNi4uOWMxNDM4MWI1MmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVNb2RpZnlUYWJsZS5jCkBAIC0xMzcwLDYgKzEzNzAsNyBAQCBFeGVjRm9yUG9ydGlvbk9mTGVm dG92ZXJzKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAlGbWdySW5mbyBmbGluZm87CiAJ UmV0dXJuU2V0SW5mbyByc2k7CiAJUmVsYXRpb24gcmVsOworCWJvb2wgaGFzUGVyaW9kID0gZmFs c2U7CiAJYm9vbCBkaWRJbml0ID0gZmFsc2U7CiAJYm9vbCBzaG91bGRGcmVlID0gZmFsc2U7CiAJ TE9DQUxfRkNJTkZPKGZjaW5mbywgMik7CkBAIC0xNDc5LDYgKzE0ODAsNyBAQCBFeGVjRm9yUG9y dGlvbk9mTGVmdG92ZXJzKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAkJCWVsc2UKIAkJ CQlsZWZ0b3ZlclNsb3QgPSBvbGR0dXBsZVNsb3Q7CiAKKwkJCWhhc1BlcmlvZCA9IGZvclBvcnRp b25PZi0+c3RhcnRWYXI7CiAJCQl0dXBkZXNjID0gbGVmdG92ZXJTbG90LT50dHNfdHVwbGVEZXNj cmlwdG9yOwogCQkJbmF0dHMgPSB0dXBkZXNjLT5uYXR0czsKIApAQCAtMTU3OSw4ICsxNTgxLDQy IEBAIEV4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0 LAogCQkJCWZwb1N0YXRlLT5mcF9udWxsc1tpXSA9IGxlZnRvdmVyU2xvdC0+dHRzX2lzbnVsbFtp XSA/ICduJyA6ICcgJzsKIAkJfQogCi0JCWZwb1N0YXRlLT5mcF9udWxsc1tmb3JQb3J0aW9uT2Yt PnJhbmdlVmFyLT52YXJhdHRubyAtIDFdID0gJyAnOwotCQlmcG9TdGF0ZS0+ZnBfdmFsdWVzW2Zv clBvcnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vIC0gMV0gPSBsZWZ0b3ZlcjsKKwkJaWYgKGhh c1BlcmlvZCkKKwkJeworCQkJUmFuZ2VUeXBlICAqbGVmdG92ZXJSYW5nZTsKKwkJCVJhbmdlQm91 bmQJbGVmdG92ZXJMb3dlcjsKKwkJCVJhbmdlQm91bmQJbGVmdG92ZXJVcHBlcjsKKwkJCWJvb2wJ CWxlZnRvdmVyRW1wdHk7CisJCQlBdHRyTnVtYmVyCXN0YXJ0QXR0bm87CisJCQlBdHRyTnVtYmVy CWVuZEF0dG5vOworCisJCQlsZWZ0b3ZlclJhbmdlID0gRGF0dW1HZXRSYW5nZVR5cGVQKGxlZnRv dmVyKTsKKwkJCXJhbmdlX2Rlc2VyaWFsaXplKHR5cGNhY2hlLCBsZWZ0b3ZlclJhbmdlLCAmbGVm dG92ZXJMb3dlciwgJmxlZnRvdmVyVXBwZXIsICZsZWZ0b3ZlckVtcHR5KTsKKworCQkJc3RhcnRB dHRubyA9IGZvclBvcnRpb25PZi0+c3RhcnRWYXItPnZhcmF0dG5vOworCQkJZW5kQXR0bm8gPSBm b3JQb3J0aW9uT2YtPmVuZFZhci0+dmFyYXR0bm87CisKKwkJCWlmIChsZWZ0b3Zlckxvd2VyLmlu ZmluaXRlKQorCQkJCWZwb1N0YXRlLT5mcF9udWxsc1tzdGFydEF0dG5vIC0gMV0gPSAnbic7CisJ CQllbHNlCisJCQl7CisJCQkJZnBvU3RhdGUtPmZwX251bGxzW3N0YXJ0QXR0bm8gLSAxXSA9ICcg JzsKKwkJCQlmcG9TdGF0ZS0+ZnBfdmFsdWVzW3N0YXJ0QXR0bm8gLSAxXSA9IGxlZnRvdmVyTG93 ZXIudmFsOworCQkJfQorCisJCQlpZiAobGVmdG92ZXJVcHBlci5pbmZpbml0ZSkKKwkJCQlmcG9T dGF0ZS0+ZnBfbnVsbHNbZW5kQXR0bm8gLSAxXSA9ICduJzsKKwkJCWVsc2UKKwkJCXsKKwkJCQlm cG9TdGF0ZS0+ZnBfbnVsbHNbZW5kQXR0bm8gLSAxXSA9ICcgJzsKKwkJCQlmcG9TdGF0ZS0+ZnBf dmFsdWVzW2VuZEF0dG5vIC0gMV0gPSBsZWZ0b3ZlclVwcGVyLnZhbDsKKwkJCX0KKwkJfQorCQll bHNlCisJCXsKKwkJCWZwb1N0YXRlLT5mcF9udWxsc1tmb3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52 YXJhdHRubyAtIDFdID0gJyAnOworCQkJZnBvU3RhdGUtPmZwX3ZhbHVlc1tmb3JQb3J0aW9uT2Yt PnJhbmdlVmFyLT52YXJhdHRubyAtIDFdID0gbGVmdG92ZXI7CisJCX0KIAogCQlzcGlfcmVzdWx0 ID0gU1BJX2V4ZWN1dGVfc25hcHNob3QocXBsYW4sCiAJCQkJCQkJCQkJICBmcG9TdGF0ZS0+ZnBf dmFsdWVzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMv YmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCA1ZTdlMTMxNmU4MS4uNmEyOWY1MGE3MzIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNr ZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0xNzIyLDYgKzE3MjIsOSBAQCBleHByTG9jYXRpb24o Y29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX0NvbnN0cmFpbnQ6CiAJCQlsb2MgPSAoKGNvbnN0 IENvbnN0cmFpbnQgKikgZXhwciktPmxvY2F0aW9uOwogCQkJYnJlYWs7CisJCWNhc2UgVF9QZXJp b2REZWY6CisJCQlsb2MgPSAoKGNvbnN0IFBlcmlvZERlZiAqKSBleHByKS0+bG9jYXRpb247CisJ CQlicmVhazsKIAkJY2FzZSBUX0Z1bmN0aW9uUGFyYW1ldGVyOgogCQkJLyoganVzdCB1c2UgdHlw ZW5hbWUncyBsb2NhdGlvbiAqLwogCQkJbG9jID0gZXhwckxvY2F0aW9uKChOb2RlICopICgoY29u c3QgRnVuY3Rpb25QYXJhbWV0ZXIgKikgZXhwciktPmFyZ1R5cGUpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMK aW5kZXggNjU1NGMxY2I3YmQuLjkzZjFkNTU2ZDM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTI4 LDYgKzI4LDcgQEAKICNpbmNsdWRlICJhY2Nlc3Mvc3RyYXRudW0uaCIKICNpbmNsdWRlICJhY2Nl c3Mvc3lzYXR0ci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgpAQCAtMTI3 MSw3ICsxMjcyLDExIEBAIHRyYW5zZm9ybUZvclBvcnRpb25PZkNsYXVzZShQYXJzZVN0YXRlICpw c3RhdGUsCiAJY2hhciAqcmFuZ2VfbmFtZSA9IGZvclBvcnRpb25PZi0+cmFuZ2VfbmFtZTsKIAlj aGFyICpyYW5nZV90eXBlX25hbWVzcGFjZSA9IE5VTEw7CiAJY2hhciAqcmFuZ2VfdHlwZV9uYW1l ID0gTlVMTDsKLQlpbnQgcmFuZ2VfYXR0bm8gPSBJbnZhbGlkQXR0ck51bWJlcjsKKwlBdHRyTnVt YmVyIHJhbmdlX2F0dG5vID0gSW52YWxpZEF0dHJOdW1iZXI7CisJQXR0ck51bWJlciBzdGFydF9h dHRubyA9IEludmFsaWRBdHRyTnVtYmVyOworCUF0dHJOdW1iZXIgZW5kX2F0dG5vID0gSW52YWxp ZEF0dHJOdW1iZXI7CisJY2hhciAqc3RhcnRjb2xuYW1lID0gTlVMTDsKKwljaGFyICplbmRjb2xu YW1lID0gTlVMTDsKIAlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyOwogCU9pZAlvcGNsYXNzOwogCU9p ZCBvcGZhbWlseTsKQEAgLTEzMTUsNiArMTMyMCw1MyBAQCB0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZD bGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCWlmICghZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFj ZShhdHRyLT5hdHR0eXBpZCwgJnJhbmdlX3R5cGVfbmFtZSwgJnJhbmdlX3R5cGVfbmFtZXNwYWNl KSkKIAkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHR5cGUgJXUiLCBhdHRy LT5hdHR0eXBpZCk7CiAKKwkvKgorCSAqIElmIHdlIGFyZSB1c2luZyBhIFBFUklPRCwgd2UgbmVl ZCB0aGUgc3RhcnQgJiBlbmQgY29sdW1ucy4KKwkgKiBJZiB0aGUgYXR0cmlidXRlIGl0IG5vdCBh IEdFTkVSQVRFRCBjb2x1bW4sIHdlIG5lZWRuJ3QgcXVlcnkgcGdfcGVyaW9kLgorCSAqLworCWlm IChhdHRyLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQpCisJewor CQlIZWFwVHVwbGUgcGVyVHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoUEVSSU9ETkFNRSwKKwkJCQkJ CQkJCQkJIE9iamVjdElkR2V0RGF0dW0oUmVsYXRpb25HZXRSZWxpZCh0YXJnZXRyZWwpKSwKKwkJ CQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bShyYW5nZV9uYW1lKSk7CisJCWlmIChIZWFwVHVwbGVJ c1ZhbGlkKHBlclR1cGxlKSkKKwkJeworCQkJRm9ybV9wZ19wZXJpb2QgcGVyID0gKEZvcm1fcGdf cGVyaW9kKSBHRVRTVFJVQ1QocGVyVHVwbGUpOworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgcGVyYXR0 cjsKKworCQkJc3RhcnRfYXR0bm8gPSBwZXItPnBlcnN0YXJ0OworCQkJZW5kX2F0dG5vID0gcGVy LT5wZXJlbmQ7CisKKwkJCXBlcmF0dHIgPSBUdXBsZURlc2NBdHRyKHRhcmdldHJlbC0+cmRfYXR0 LCBzdGFydF9hdHRubyAtIDEpOworCQkJc3RhcnRjb2xuYW1lID0gTmFtZVN0cihwZXJhdHRyLT5h dHRuYW1lKTsKKworCQkJcmVzdWx0LT5zdGFydFZhciA9IG1ha2VWYXIoCisJCQkJCXJ0aW5kZXgs CisJCQkJCXN0YXJ0X2F0dG5vLAorCQkJCQlwZXJhdHRyLT5hdHR0eXBpZCwKKwkJCQkJcGVyYXR0 ci0+YXR0dHlwbW9kLAorCQkJCQlwZXJhdHRyLT5hdHRjb2xsYXRpb24sCisJCQkJCTApOworCisJ CQlwZXJhdHRyID0gVHVwbGVEZXNjQXR0cih0YXJnZXRyZWwtPnJkX2F0dCwgZW5kX2F0dG5vIC0g MSk7CisJCQllbmRjb2xuYW1lID0gTmFtZVN0cihwZXJhdHRyLT5hdHRuYW1lKTsKKwkJCXJlc3Vs dC0+ZW5kVmFyID0gbWFrZVZhcigKKwkJCQkJcnRpbmRleCwKKwkJCQkJZW5kX2F0dG5vLAorCQkJ CQlwZXJhdHRyLT5hdHR0eXBpZCwKKwkJCQkJcGVyYXR0ci0+YXR0dHlwbW9kLAorCQkJCQlwZXJh dHRyLT5hdHRjb2xsYXRpb24sCisJCQkJCTApOworCisJCQlSZWxlYXNlU3lzQ2FjaGUocGVyVHVw bGUpOworCQl9CisJfQorCisJaWYgKHN0YXJ0X2F0dG5vID09IEludmFsaWRBdHRyTnVtYmVyKQor CXsKKwkJcmVzdWx0LT5zdGFydFZhciA9IE5VTEw7CisJCXJlc3VsdC0+ZW5kVmFyID0gTlVMTDsK Kwl9CiAKIAlpZiAoZm9yUG9ydGlvbk9mLT50YXJnZXQpCiAJCS8qCkBAIC0xMzgyLDcgKzE0MzQs MTAgQEAgdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAl7 CiAJCS8qCiAJCSAqIE5vdyBtYWtlIHN1cmUgd2UgdXBkYXRlIHRoZSBzdGFydC9lbmQgdGltZSBv ZiB0aGUgcmVjb3JkLgotCQkgKiBGb3IgYSByYW5nZSBjb2wgKHIpIHRoaXMgaXMgYHIgPSByICog dGFyZ2V0UmFuZ2VgLgorCQkgKiBGb3IgYSByYW5nZS9ldGMgY29sIChyKSB0aGlzIGlzIGByID0g ciAqIHRhcmdldFJhbmdlYC4KKwkJICogRm9yIGEgUEVSSU9EIHdpdGggY29scyAocywgZSkgdGhp cyBpcyBgcyA9IGxvd2VyKHRzcmFuZ2UocywgZSkgKiB0YXJnZXRSYW5nZSlgCisJCSAqIGFuZCBg ZSA9IHVwcGVyKHRzcmFuZ2UocywgZSkgKiB0YXJnZXRSYW5nZWAgKG9mIGNvdXJzZSBub3QgbmVj ZXNzYXJpbHkgd2l0aAorCQkgKiB0c3JhbmdlLCBidXQgd2l0aCB3aGF0ZXZlciByYW5nZSB0eXBl IGlzIHVzZWQgdGhlcmUpLgogCQkgKi8KIAkJT2lkIGZ1bmNuYW1lc3BhY2U7CiAJCWNoYXIgKmZ1 bmNuYW1lOwpAQCAtMTQxMSwxMiArMTQ2Niw0NCBAQCB0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1 c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCWxpc3RfbWFrZTIoY29weU9iamVjdChyYW5nZVZh ciksIHRhcmdldEV4cHIpLAogCQkJCUNPRVJDRV9FWFBMSUNJVF9DQUxMLAogCQkJCWZvclBvcnRp b25PZi0+bG9jYXRpb24pOwotCQlyYW5nZVRMRUV4cHIgPSAoRXhwciAqKSB0cmFuc2Zvcm1FeHBy KHBzdGF0ZSwgKE5vZGUgKikgcmFuZ2VUTEVFeHByLCBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT04p OwogCi0JCS8qIE1ha2UgYSBUTEUgdG8gc2V0IHRoZSByYW5nZSBjb2x1bW4gKi8KKwkJLyogTWFr ZSBhIFRMRSB0byBzZXQgdGhlIHJhbmdlIGNvbHVtbiBvciBzdGFydC9lbmQgY29sdW1ucyAqLwog CQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IE5JTDsKLQkJdGxlID0gbWFrZVRhcmdldEVudHJ5 KHJhbmdlVExFRXhwciwgcmFuZ2VfYXR0bm8sIHJhbmdlX25hbWUsIGZhbHNlKTsKLQkJcmVzdWx0 LT5yYW5nZVRhcmdldExpc3QgPSBsYXBwZW5kKHJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0LCB0bGUp OworCisJCWlmIChyZXN1bHQtPnN0YXJ0VmFyKQorCQl7CisJCQlFeHByICpib3VuZFRMRUV4cHI7 CisKKwkJCS8qIHNldCB0aGUgc3RhcnQgY29sdW1uICovCisJCQlib3VuZFRMRUV4cHIgPSAoRXhw ciAqKSBtYWtlRnVuY0NhbGwoU3lzdGVtRnVuY05hbWUoImxvd2VyIiksCisJCQkJCWxpc3RfbWFr ZTEocmFuZ2VUTEVFeHByKSwKKwkJCQkJQ09FUkNFX0VYUExJQ0lUX0NBTEwsCisJCQkJCWZvclBv cnRpb25PZi0+bG9jYXRpb24pOworCQkJYm91bmRUTEVFeHByID0gKEV4cHIgKikgdHJhbnNmb3Jt RXhwcihwc3RhdGUsIChOb2RlICopIGJvdW5kVExFRXhwciwgRVhQUl9LSU5EX1VQREFURV9QT1JU SU9OKTsKKwkJCXRsZSA9IG1ha2VUYXJnZXRFbnRyeShib3VuZFRMRUV4cHIsIHN0YXJ0X2F0dG5v LCBzdGFydGNvbG5hbWUsIGZhbHNlKTsKKwkJCXJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gbGFw cGVuZChyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCwgdGxlKTsKKworCQkJLyogc2V0IHRoZSBlbmQg Y29sdW1uICovCisJCQlib3VuZFRMRUV4cHIgPSAoRXhwciAqKSBtYWtlRnVuY0NhbGwoU3lzdGVt RnVuY05hbWUoInVwcGVyIiksCisJCQkJCWxpc3RfbWFrZTEocmFuZ2VUTEVFeHByKSwKKwkJCQkJ Q09FUkNFX0VYUExJQ0lUX0NBTEwsCisJCQkJCWZvclBvcnRpb25PZi0+bG9jYXRpb24pOworCQkJ Ym91bmRUTEVFeHByID0gKEV4cHIgKikgdHJhbnNmb3JtRXhwcihwc3RhdGUsIChOb2RlICopIGJv dW5kVExFRXhwciwgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OKTsKKwkJCXRsZSA9IG1ha2VUYXJn ZXRFbnRyeShib3VuZFRMRUV4cHIsIGVuZF9hdHRubywgZW5kY29sbmFtZSwgZmFsc2UpOworCQkJ cmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBsYXBwZW5kKHJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0 LCB0bGUpOworCisJCQkvKiBNYXJrIHRoZSBzdGFydC9lbmQgY29sdW1ucyBhcyByZXF1aXJpbmcg dXBkYXRlIHBlcm1pc3Npb25zICovCisJCQl0YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xzID0g Ym1zX2FkZF9tZW1iZXIodGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVkQ29scywKKwkJCQkJCQkJCQkJ CQkJICBzdGFydF9hdHRubyAtIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOwor CQkJdGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVkQ29scyA9IGJtc19hZGRfbWVtYmVyKHRhcmdldF9w ZXJtaW5mby0+dXBkYXRlZENvbHMsCisJCQkJCQkJCQkJCQkJCSAgZW5kX2F0dG5vIC0gRmlyc3RM b3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlcik7CisJCX0KKwkJZWxzZQorCQl7CisJCQlyYW5n ZVRMRUV4cHIgPSAoRXhwciAqKSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgKE5vZGUgKikgcmFuZ2VU TEVFeHByLCBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT04pOworCQkJdGxlID0gbWFrZVRhcmdldEVu dHJ5KHJhbmdlVExFRXhwciwgcmFuZ2VfYXR0bm8sIHJhbmdlX25hbWUsIGZhbHNlKTsKKwkJCXJl c3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gbGFwcGVuZChyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCwg dGxlKTsKKwkJfQogCiAJCS8qIE1hcmsgdGhlIHJhbmdlIGNvbHVtbiBhcyByZXF1aXJpbmcgdXBk YXRlIHBlcm1pc3Npb25zICovCiAJCXRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMgPSBibXNf YWRkX21lbWJlcih0YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xzLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXgg ZWNlZDgyZWZkMjMuLmI3ZGY3MzM3ODMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTU5OCw3ICs1OTgsNyBA QCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlz dCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPGtleXdvcmQ+IGNvbF9uYW1lX2tleXdv cmQgcmVzZXJ2ZWRfa2V5d29yZAogJXR5cGUgPGtleXdvcmQ+IGJhcmVfbGFiZWxfa2V5d29yZAog Ci0ldHlwZSA8bm9kZT4JRG9tYWluQ29uc3RyYWludCBUYWJsZUNvbnN0cmFpbnQgVGFibGVMaWtl Q2xhdXNlCisldHlwZSA8bm9kZT4JRG9tYWluQ29uc3RyYWludCBUYWJsZUNvbnN0cmFpbnQgVGFi bGVMaWtlQ2xhdXNlIFRhYmxlUGVyaW9kCiAldHlwZSA8aXZhbD4JVGFibGVMaWtlT3B0aW9uTGlz dCBUYWJsZUxpa2VPcHRpb24KICV0eXBlIDxzdHI+CQljb2x1bW5fY29tcHJlc3Npb24gb3B0X2Nv bHVtbl9jb21wcmVzc2lvbiBjb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1uX3N0b3JhZ2UKICV0eXBl IDxsaXN0PglDb2xRdWFsTGlzdApAQCAtMjY2MSw2ICsyNjYxLDI0IEBAIGFsdGVyX3RhYmxlX2Nt ZDoKIAkJCQkJbi0+ZGVmID0gKE5vZGUgKikgJDQ7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJ CQl9CisJCQkvKiBBTFRFUiBUQUJMRSA8bmFtZT4gQUREIFBFUklPRCBGT1IgPG5hbWU+ICg8bmFt ZT4sIDxuYW1lPikgKi8KKwkJCXwgQUREX1AgVGFibGVQZXJpb2QKKwkJCQl7CisJCQkJCUFsdGVy VGFibGVDbWQgKm4gPSBtYWtlTm9kZShBbHRlclRhYmxlQ21kKTsKKwkJCQkJbi0+c3VidHlwZSA9 IEFUX0FkZFBlcmlvZDsKKwkJCQkJbi0+ZGVmID0gJDI7CisJCQkJCSQkID0gKE5vZGUgKiluOwor CQkJCX0KKwkJCS8qIEFMVEVSIFRBQkxFIDxuYW1lPiBEUk9QIFBFUklPRCBGT1IgPG5hbWU+IFtS RVNUUklDVHxDQVNDQURFXSAqLworCQkJfCBEUk9QIFBFUklPRCBGT1IgbmFtZSBvcHRfZHJvcF9i ZWhhdmlvcgorCQkJCXsKKwkJCQkJQWx0ZXJUYWJsZUNtZCAqbiA9IG1ha2VOb2RlKEFsdGVyVGFi bGVDbWQpOworCQkJCQluLT5zdWJ0eXBlID0gQVRfRHJvcFBlcmlvZDsKKwkJCQkJbi0+bmFtZSA9 ICQ0OworCQkJCQluLT5iZWhhdmlvciA9ICQ1OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7 CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJCS8qIEFMVEVSIFRBQkxFIDxuYW1lPiBB REQgQ09OU1RSQUlOVCAuLi4gKi8KIAkJCXwgQUREX1AgVGFibGVDb25zdHJhaW50CiAJCQkJewpA QCAtMzc5MSw4ICszODA5LDEwIEBAIFRhYmxlRWxlbWVudDoKIAkJCWNvbHVtbkRlZgkJCQkJCQl7 ICQkID0gJDE7IH0KIAkJCXwgVGFibGVMaWtlQ2xhdXNlCQkJCQl7ICQkID0gJDE7IH0KIAkJCXwg VGFibGVDb25zdHJhaW50CQkJCQl7ICQkID0gJDE7IH0KKwkJCXwgVGFibGVQZXJpb2QJCQkJCQl7 ICQkID0gJDE7IH0KIAkJOwogCisKIFR5cGVkVGFibGVFbGVtZW50OgogCQkJY29sdW1uT3B0aW9u cwkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCBUYWJsZUNvbnN0cmFpbnQJCQkJCXsgJCQgPSAkMTsg fQpAQCAtNDE0MSw2ICs0MTYxLDE5IEBAIFRhYmxlTGlrZU9wdGlvbjoKIAkJOwogCiAKK1RhYmxl UGVyaW9kOgorCQkJUEVSSU9EIEZPUiBuYW1lICcoJyBuYW1lICcsJyBuYW1lICcpJyBvcHRfZGVm aW5pdGlvbgorCQkJCXsKKwkJCQkJUGVyaW9kRGVmICpuID0gbWFrZU5vZGUoUGVyaW9kRGVmKTsK KwkJCQkJbi0+cGVyaW9kbmFtZSA9ICQzOworCQkJCQluLT5zdGFydGNvbG5hbWUgPSAkNTsKKwkJ CQkJbi0+ZW5kY29sbmFtZSA9ICQ3OworCQkJCQluLT5vcHRpb25zID0gJDk7CisJCQkJCW4tPmxv Y2F0aW9uID0gQDE7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwogLyogQ29u c3RyYWludEVsZW0gc3BlY2lmaWVzIGNvbnN0cmFpbnQgc3ludGF4IHdoaWNoIGlzIG5vdCBlbWJl ZGRlZCBpbnRvCiAgKglhIGNvbHVtbiBkZWZpbml0aW9uLiBDb2xDb25zdHJhaW50RWxlbSBzcGVj aWZpZXMgdGhlIGVtYmVkZGVkIGZvcm0uCiAgKiAtIHRob21hcyAxOTk3LTEyLTAzCkBAIC03MjM2 LDYgKzcyNjksMTQgQEAgQ29tbWVudFN0bXQ6CiAJCQkJCW4tPmNvbW1lbnQgPSAkOTsKIAkJCQkJ JCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQ09NTUVOVCBPTiBQRVJJT0QgYW55X25hbWUg SVMgY29tbWVudF90ZXh0CisJCQkJeworCQkJCQlDb21tZW50U3RtdCAqbiA9IG1ha2VOb2RlKENv bW1lbnRTdG10KTsKKwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9QRVJJT0Q7CisJCQkJCW4tPm9i amVjdCA9IChOb2RlICopICQ0OworCQkJCQluLT5jb21tZW50ID0gJDY7CisJCQkJCSQkID0gKE5v ZGUgKikgbjsKKwkJCQl9CiAJCQl8IENPTU1FTlQgT04gTEFSR0VfUCBPQkpFQ1RfUCBOdW1lcmlj T25seSBJUyBjb21tZW50X3RleHQKIAkJCQl7CiAJCQkJCUNvbW1lbnRTdG10ICpuID0gbWFrZU5v ZGUoQ29tbWVudFN0bXQpOwpAQCAtMTc4MzksNyArMTc4ODAsNiBAQCB1bnJlc2VydmVkX2tleXdv cmQ6CiAJCQl8IFBBU1NJTkcKIAkJCXwgUEFTU1dPUkQKIAkJCXwgUEFUSAotCQkJfCBQRVJJT0QK IAkJCXwgUExBTgogCQkJfCBQTEFOUwogCQkJfCBQT0xJQ1kKQEAgLTE4MTQzLDYgKzE4MTgzLDcg QEAgcmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgT05MWQogCQkJfCBPUgogCQkJfCBPUkRFUgorCQkJ fCBQRVJJT0QKIAkJCXwgUExBQ0lORwogCQkJfCBQUklNQVJZCiAJCQl8IFJFRkVSRU5DRVMKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggODA3NWIxYjhhMWIuLjZlYWQ4MTQ1MGI4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpAQCAtMjIsNiArMjIsNyBAQAogI2lu Y2x1ZGUgImFjY2Vzcy90YWJsZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvaGVhcC5oIgogI2luY2x1 ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5j bHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zMjYyLDYgKzMyNjMsNyBAQCBleHBhbmROU0l0 ZW1BdHRycyhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtLAog CQkJCSAgaW50IHN1YmxldmVsc191cCwgYm9vbCByZXF1aXJlX2NvbF9wcml2cywgaW50IGxvY2F0 aW9uKQogewogCVJhbmdlVGJsRW50cnkgKnJ0ZSA9IG5zaXRlbS0+cF9ydGU7CisJQml0bWFwc2V0 ICAqcGVyaW9kYXR0cyA9IE5VTEw7CiAJUlRFUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvID0gbnNp dGVtLT5wX3Blcm1pbmZvOwogCUxpc3QJICAgKm5hbWVzLAogCQkJICAgKnZhcnM7CkBAIC0zMjg1 LDEyICszMjg3LDIwIEBAIGV4cGFuZE5TSXRlbUF0dHJzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFy c2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCXBlcm1pbmZvLT5yZXF1aXJlZFBlcm1zIHw9IEFD TF9TRUxFQ1Q7CiAJfQogCisJLyogR2V0IFBFUklPRCBjb2x1bW5zIHRvIGV4Y2x1ZGUgKi8KKwlp ZiAocnRlLT5ydGVraW5kID09IFJURV9SRUxBVElPTikKKwkJcGVyaW9kYXR0cyA9IGdldF9wZXJp b2RfYXR0bm9zKHJ0ZS0+cmVsaWQpOworCiAJZm9yYm90aChuYW1lLCBuYW1lcywgdmFyLCB2YXJz KQogCXsKIAkJY2hhcgkgICAqbGFiZWwgPSBzdHJWYWwobGZpcnN0KG5hbWUpKTsKIAkJVmFyCQkg ICAqdmFybm9kZSA9IChWYXIgKikgbGZpcnN0KHZhcik7CiAJCVRhcmdldEVudHJ5ICp0ZTsKIAor CQkvKiBJZiB0aGlzIGNvbHVtbiBpcyBmcm9tIGEgUEVSSU9ELCBza2lwIGl0ICovCisJCWlmIChi bXNfaXNfbWVtYmVyKHZhcm5vZGUtPnZhcmF0dG5vLCBwZXJpb2RhdHRzKSkKKwkJCQljb250aW51 ZTsKKwogCQl0ZSA9IG1ha2VUYXJnZXRFbnRyeSgoRXhwciAqKSB2YXJub2RlLAogCQkJCQkJCSAo QXR0ck51bWJlcikgcHN0YXRlLT5wX25leHRfcmVzbm8rKywKIAkJCQkJCQkgbGFiZWwsCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCAxZTE1Y2UxMGI0OC4uZDA2ODA5NmZkYTUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BjbGFzcy5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4dC5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKQEAg LTgwLDYgKzgxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlib29sCQlpc2ZvcmVpZ247CQkvKiB0cnVl IGlmIENSRUFURS9BTFRFUiBGT1JFSUdOIFRBQkxFICovCiAJYm9vbAkJaXNhbHRlcjsJCS8qIHRy dWUgaWYgYWx0ZXJpbmcgZXhpc3RpbmcgdGFibGUgKi8KIAlMaXN0CSAgICpjb2x1bW5zOwkJLyog Q29sdW1uRGVmIGl0ZW1zICovCisJTGlzdAkgICAqcGVyaW9kczsJCS8qIFBlcmlvZERlZiBpdGVt cyAqLwogCUxpc3QJICAgKmNrY29uc3RyYWludHM7CS8qIENIRUNLIGNvbnN0cmFpbnRzICovCiAJ TGlzdAkgICAqZmtjb25zdHJhaW50czsJLyogRk9SRUlHTiBLRVkgY29uc3RyYWludHMgKi8KIAlM aXN0CSAgICppeGNvbnN0cmFpbnRzOwkvKiBpbmRleC1jcmVhdGluZyBjb25zdHJhaW50cyAqLwpA QCAtMTA5LDYgKzExMSw4IEBAIHR5cGVkZWYgc3RydWN0CiAKIHN0YXRpYyB2b2lkIHRyYW5zZm9y bUNvbHVtbkRlZmluaXRpb24oQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwKIAkJCQkJCQkJCSAgQ29s dW1uRGVmICpjb2x1bW4pOworc3RhdGljIHZvaWQgdHJhbnNmb3JtVGFibGVQZXJpb2QoQ3JlYXRl U3RtdENvbnRleHQgKmN4dCwKKwkJCQkJCQkJIFBlcmlvZERlZiAqcGVyaW9kKTsKIHN0YXRpYyB2 b2lkIHRyYW5zZm9ybVRhYmxlQ29uc3RyYWludChDcmVhdGVTdG10Q29udGV4dCAqY3h0LAogCQkJ CQkJCQkJIENvbnN0cmFpbnQgKmNvbnN0cmFpbnQpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtVGFi bGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCkBAIC0yMzksNiArMjQzLDcgQEAg dHJhbnNmb3JtQ3JlYXRlU3RtdChDcmVhdGVTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0 cmluZykKIAljeHQuaW5oUmVsYXRpb25zID0gc3RtdC0+aW5oUmVsYXRpb25zOwogCWN4dC5pc2Fs dGVyID0gZmFsc2U7CiAJY3h0LmNvbHVtbnMgPSBOSUw7CisJY3h0LnBlcmlvZHMgPSBOSUw7CiAJ Y3h0LmNrY29uc3RyYWludHMgPSBOSUw7CiAJY3h0LmZrY29uc3RyYWludHMgPSBOSUw7CiAJY3h0 Lml4Y29uc3RyYWludHMgPSBOSUw7CkBAIC0yNzcsNiArMjgyLDEwIEBAIHRyYW5zZm9ybUNyZWF0 ZVN0bXQoQ3JlYXRlU3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcpCiAJCQkJdHJh bnNmb3JtQ29sdW1uRGVmaW5pdGlvbigmY3h0LCAoQ29sdW1uRGVmICopIGVsZW1lbnQpOwogCQkJ CWJyZWFrOwogCisJCQljYXNlIFRfUGVyaW9kRGVmOgorCQkJCXRyYW5zZm9ybVRhYmxlUGVyaW9k KCZjeHQsIChQZXJpb2REZWYgKikgZWxlbWVudCk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgVF9D b25zdHJhaW50OgogCQkJCXRyYW5zZm9ybVRhYmxlQ29uc3RyYWludCgmY3h0LCAoQ29uc3RyYWlu dCAqKSBlbGVtZW50KTsKIAkJCQlicmVhazsKQEAgLTMzOSw2ICszNDgsNyBAQCB0cmFuc2Zvcm1D cmVhdGVTdG10KENyZWF0ZVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nKQogCSAq IE91dHB1dCByZXN1bHRzLgogCSAqLwogCXN0bXQtPnRhYmxlRWx0cyA9IGN4dC5jb2x1bW5zOwor CXN0bXQtPnBlcmlvZHMgPSBjeHQucGVyaW9kczsKIAlzdG10LT5jb25zdHJhaW50cyA9IGN4dC5j a2NvbnN0cmFpbnRzOwogCiAJcmVzdWx0ID0gbGFwcGVuZChjeHQuYmxpc3QsIHN0bXQpOwpAQCAt ODk1LDYgKzkwNSw5MSBAQCB0cmFuc2Zvcm1Db2x1bW5EZWZpbml0aW9uKENyZWF0ZVN0bXRDb250 ZXh0ICpjeHQsIENvbHVtbkRlZiAqY29sdW1uKQogCX0KIH0KIAordm9pZAordHJhbnNmb3JtUGVy aW9kT3B0aW9ucyhQZXJpb2REZWYgKnBlcmlvZCkKK3sKKwlMaXN0Q2VsbCAgICpvcHRpb247CisJ RGVmRWxlbQkgICAqZGNvbnN0cmFpbnRuYW1lID0gTlVMTDsKKwlEZWZFbGVtCSAgICpkcmFuZ2V0 eXBlbmFtZSA9IE5VTEw7CisJRGVmRWxlbQkgICAqZGNvbGV4aXN0cyA9IE5VTEw7CisKKwlmb3Jl YWNoKG9wdGlvbiwgcGVyaW9kLT5vcHRpb25zKQorCXsKKwkJRGVmRWxlbSAgICAqZGVmZWwgPSAo RGVmRWxlbSAqKSBsZmlyc3Qob3B0aW9uKTsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1l LCAiY2hlY2tfY29uc3RyYWludF9uYW1lIikgPT0gMCkKKwkJeworCQkJaWYgKGRjb25zdHJhaW50 bmFtZSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLAorCQkJCQkJIGVycm1zZygiY29uZmxpY3Rpbmcgb3IgcmVkdW5kYW50IG9wdGlvbnMi KSkpOworCQkJZGNvbnN0cmFpbnRuYW1lID0gZGVmZWw7CisJCX0KKwkJZWxzZSBpZiAoc3RyY21w KGRlZmVsLT5kZWZuYW1lLCAicmFuZ2V0eXBlIikgPT0gMCkKKwkJeworCQkJaWYgKGRyYW5nZXR5 cGVuYW1lKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCisJCQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9u cyIpKSk7CisJCQlkcmFuZ2V0eXBlbmFtZSA9IGRlZmVsOworCQl9CisJCWVsc2UgaWYgKHN0cmNt cChkZWZlbC0+ZGVmbmFtZSwgImNvbGV4aXN0cyIpID09IDApCisJCXsKKwkJCWlmIChkY29sZXhp c3RzKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9F UlJPUiksCisJCQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIp KSk7CisJCQlkY29sZXhpc3RzID0gZGVmZWw7CisJCX0KKwkJZWxzZQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJv cHRpb24gXCIlc1wiIG5vdCByZWNvZ25pemVkIiwgZGVmZWwtPmRlZm5hbWUpKSk7CisJfQorCisJ aWYgKGRjb25zdHJhaW50bmFtZSAhPSBOVUxMKQorCQlwZXJpb2QtPmNvbnN0cmFpbnRuYW1lID0g ZGVmR2V0U3RyaW5nKGRjb25zdHJhaW50bmFtZSk7CisJZWxzZQorCQlwZXJpb2QtPmNvbnN0cmFp bnRuYW1lID0gTlVMTDsKKworCWlmIChkcmFuZ2V0eXBlbmFtZSAhPSBOVUxMKQorCQlwZXJpb2Qt PnJhbmdldHlwZW5hbWUgPSBkZWZHZXRTdHJpbmcoZHJhbmdldHlwZW5hbWUpOworCWVsc2UKKwkJ cGVyaW9kLT5yYW5nZXR5cGVuYW1lID0gTlVMTDsKKworCWlmIChkY29sZXhpc3RzICE9IE5VTEwp CisJCXBlcmlvZC0+Y29sZXhpc3RzID0gZGVmR2V0Qm9vbGVhbihkY29sZXhpc3RzKTsKKwllbHNl CisJCXBlcmlvZC0+Y29sZXhpc3RzID0gZmFsc2U7Cit9CisKKy8qCisgKiB0cmFuc2Zvcm1UYWJs ZVBlcmlvZAorICoJCXRyYW5zZm9ybSBhIFBlcmlvZERlZiBub2RlIHdpdGhpbiBDUkVBVEUgVEFC TEUKKyAqLworc3RhdGljIHZvaWQKK3RyYW5zZm9ybVRhYmxlUGVyaW9kKENyZWF0ZVN0bXRDb250 ZXh0ICpjeHQsIFBlcmlvZERlZiAqcGVyaW9kKQoreworCWlmIChzdHJjbXAocGVyaW9kLT5wZXJp b2RuYW1lLCAic3lzdGVtX3RpbWUiKSA9PSAwKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJQRVJJ T0QgRk9SIFNZU1RFTV9USU1FIGlzIG5vdCBzdXBwb3J0ZWQiKSwKKwkJCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihjeHQtPnBzdGF0ZSwKKwkJCQkJCQkJCQlwZXJpb2QtPmxvY2F0aW9uKSkpOworCisJ aWYgKHN0cmNtcChwZXJpb2QtPnN0YXJ0Y29sbmFtZSwgcGVyaW9kLT5lbmRjb2xuYW1lKSA9PSAw KQorCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJjb2x1bW4gXCIlc1wiIGNhbid0IGJlIHRoZSBz dGFydCBhbmQgZW5kIGNvbHVtbiBmb3IgcGVyaW9kIFwiJXNcIiIsCisJCQkJCQlwZXJpb2QtPnN0 YXJ0Y29sbmFtZSwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJLyoKKwkgKiBEZXRlcm1pbmUg dGhlIGNvbHVtbiBpbmZvIGFuZCByYW5nZSB0eXBlIHNvIHRoYXQgdHJhbnNmb3JtSW5kZXhDb25z dHJhaW50cworCSAqIGtub3dzIGhvdyB0byBjcmVhdGUgUFJJTUFSWSBLRVkvVU5JUVVFIGNvbnN0 cmFpbnRzIHVzaW5nIHRoaXMgUEVSSU9ELgorCSAqLworCXRyYW5zZm9ybVBlcmlvZE9wdGlvbnMo cGVyaW9kKTsKKworCWN4dC0+cGVyaW9kcyA9IGxhcHBlbmQoY3h0LT5wZXJpb2RzLCBwZXJpb2Qp OworfQorCiAvKgogICogdHJhbnNmb3JtVGFibGVDb25zdHJhaW50CiAgKgkJdHJhbnNmb3JtIGEg Q29uc3RyYWludCBub2RlIHdpdGhpbiBDUkVBVEUgVEFCTEUgb3IgQUxURVIgVEFCTEUKQEAgLTk4 Miw2ICsxMDc3LDcgQEAgdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0 ICpjeHQsIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGEKIAlBdHRyTnVtYmVyCXBhcmVu dF9hdHRubzsKIAlSZWxhdGlvbglyZWxhdGlvbjsKIAlUdXBsZURlc2MJdHVwbGVEZXNjOworCUJp dG1hcHNldCAgKnBlcmlvZGF0dHM7CiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsKIAljaGFyCSAgICpj b21tZW50OwogCVBhcnNlQ2FsbGJhY2tTdGF0ZSBwY2JzdGF0ZTsKQEAgLTEwMzMsNiArMTEyOSw3 IEBAIHRyYW5zZm9ybVRhYmxlTGlrZUNsYXVzZShDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBUYWJs ZUxpa2VDbGF1c2UgKnRhYmxlX2xpa2VfY2xhCiAJfQogCiAJdHVwbGVEZXNjID0gUmVsYXRpb25H ZXREZXNjcihyZWxhdGlvbik7CisJcGVyaW9kYXR0cyA9IGdldF9wZXJpb2RfYXR0bm9zKFJlbGF0 aW9uR2V0UmVsaWQocmVsYXRpb24pKTsKIAogCS8qCiAJICogSW5zZXJ0IHRoZSBjb3BpZWQgYXR0 cmlidXRlcyBpbnRvIHRoZSBjeHQgZm9yIHRoZSBuZXcgdGFibGUgZGVmaW5pdGlvbi4KQEAgLTEw NDIsMTAgKzExMzksMTggQEAgdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250 ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGEKIAlmb3IgKHBhcmVudF9h dHRubyA9IDE7IHBhcmVudF9hdHRubyA8PSB0dXBsZURlc2MtPm5hdHRzOwogCQkgcGFyZW50X2F0 dG5vKyspCiAJewotCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyaWJ1dGUgPSBUdXBsZURlc2NBdHRy KHR1cGxlRGVzYywKLQkJCQkJCQkJCQkJCQlwYXJlbnRfYXR0bm8gLSAxKTsKKwkJRm9ybV9wZ19h dHRyaWJ1dGUgYXR0cmlidXRlOwogCQlDb2x1bW5EZWYgICpkZWY7CiAKKwkJLyoKKwkJICogSWYg dGhpcyBjb2x1bW4gaXMgZnJvbSBhIFBFUklPRCwgc2tpcCBpdAorCQkgKiAoc2luY2UgTElLRSBu ZXZlciBjb3BpZXMgUEVSSU9EcykuCisJCSAqLworCQlpZiAoYm1zX2lzX21lbWJlcihwYXJlbnRf YXR0bm8sIHBlcmlvZGF0dHMpKQorCQkJY29udGludWU7CisKKwkJYXR0cmlidXRlID0gVHVwbGVE ZXNjQXR0cih0dXBsZURlc2MsIHBhcmVudF9hdHRubyAtIDEpOworCiAJCS8qCiAJCSAqIElnbm9y ZSBkcm9wcGVkIGNvbHVtbnMgaW4gdGhlIHBhcmVudC4KIAkJICovCkBAIC0yNDMyLDYgKzI1Mzcs NyBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29uc3RyYWludCAqY29uc3RyYWludCwgQ3Jl YXRlU3RtdENvbnRleHQgKmN4dCkKIAkJCWNoYXIJICAgKmtleSA9IHN0clZhbChsZmlyc3QobGMp KTsKIAkJCWJvb2wJCWZvdW5kID0gZmFsc2U7CiAJCQlib29sCQlmb3JjZWRfbm90X251bGwgPSBm YWxzZTsKKwkJCWJvb2wJCWhhc3BlcmlvZCA9IGZhbHNlOwogCQkJQ29sdW1uRGVmICAqY29sdW1u ID0gTlVMTDsKIAkJCUxpc3RDZWxsICAgKmNvbHVtbnM7CiAJCQlJbmRleEVsZW0gICppcGFyYW07 CkBAIC0yNDUwLDE5ICsyNTU2LDQwIEBAIHRyYW5zZm9ybUluZGV4Q29uc3RyYWludChDb25zdHJh aW50ICpjb25zdHJhaW50LCBDcmVhdGVTdG10Q29udGV4dCAqY3h0KQogCQkJaWYgKCFmb3VuZCkK IAkJCQljb2x1bW4gPSBOVUxMOwogCisJCQkvKiBJZiB0aGUga2V5IGlzIFdJVEhPVVQgT1ZFUkxB UFMsIGEgUEVSSU9EIHdpbGwgd29yayB0b28uICovCisJCQlpZiAoIWZvdW5kICYmIGNvbnN0cmFp bnQtPndpdGhvdXRfb3ZlcmxhcHMgJiYKKwkJCQlsYyA9PSBsaXN0X2xhc3RfY2VsbChjb25zdHJh aW50LT5rZXlzKSkKKwkJCXsKKwkJCQlQZXJpb2REZWYgICpwZXJpb2QgPSBOVUxMOworCisJCQkJ Zm9yZWFjaChjb2x1bW5zLCBjeHQtPnBlcmlvZHMpCisJCQkJeworCQkJCQlwZXJpb2QgPSBsZmly c3Rfbm9kZShQZXJpb2REZWYsIGNvbHVtbnMpOworCQkJCQlpZiAoc3RyY21wKHBlcmlvZC0+cGVy aW9kbmFtZSwga2V5KSA9PSAwKQorCQkJCQl7CisJCQkJCQlmb3VuZCA9IHRydWU7CisJCQkJCQlo YXNwZXJpb2QgPSB0cnVlOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJCQl9CisJCQl9CisKIAkJ CWlmIChmb3VuZCkKIAkJCXsKLQkJCQkvKgotCQkJCSAqIGNvbHVtbiBpcyBkZWZpbmVkIGluIHRo ZSBuZXcgdGFibGUuICBGb3IgUFJJTUFSWSBLRVksIHdlCi0JCQkJICogY2FuIGFwcGx5IHRoZSBu b3QtbnVsbCBjb25zdHJhaW50IGNoZWFwbHkgaGVyZSAuLi4gdW5sZXNzCi0JCQkJICogdGhlIGNv bHVtbiBpcyBtYXJrZWQgaXNfZnJvbV90eXBlLCBpbiB3aGljaCBjYXNlIG1hcmtpbmcgaXQKLQkJ CQkgKiBoZXJlIHdvdWxkIGJlIGluZWZmZWN0aXZlIChzZWUgTWVyZ2VBdHRyaWJ1dGVzKS4KLQkJ CQkgKi8KLQkJCQlpZiAoY29uc3RyYWludC0+Y29udHlwZSA9PSBDT05TVFJfUFJJTUFSWSAmJgot CQkJCQkhY29sdW1uLT5pc19mcm9tX3R5cGUpCisJCQkJaWYgKGNvbHVtbikKIAkJCQl7Ci0JCQkJ CWNvbHVtbi0+aXNfbm90X251bGwgPSB0cnVlOwotCQkJCQlmb3JjZWRfbm90X251bGwgPSB0cnVl OworCQkJCQkvKgorCQkJCQkgKiBjb2x1bW4gaXMgZGVmaW5lZCBpbiB0aGUgbmV3IHRhYmxlLiAg Rm9yIFBSSU1BUlkgS0VZLCB3ZQorCQkJCQkgKiBjYW4gYXBwbHkgdGhlIG5vdC1udWxsIGNvbnN0 cmFpbnQgY2hlYXBseSBoZXJlIC4uLiB1bmxlc3MKKwkJCQkJICogdGhlIGNvbHVtbiBpcyBtYXJr ZWQgaXNfZnJvbV90eXBlLCBpbiB3aGljaCBjYXNlIG1hcmtpbmcgaXQKKwkJCQkJICogaGVyZSB3 b3VsZCBiZSBpbmVmZmVjdGl2ZSAoc2VlIE1lcmdlQXR0cmlidXRlcykuCisJCQkJCSAqLworCQkJ CQlpZiAoY29uc3RyYWludC0+Y29udHlwZSA9PSBDT05TVFJfUFJJTUFSWSAmJgorCQkJCQkJIWNv bHVtbi0+aXNfZnJvbV90eXBlKQorCQkJCQl7CisJCQkJCQljb2x1bW4tPmlzX25vdF9udWxsID0g dHJ1ZTsKKwkJCQkJCWZvcmNlZF9ub3RfbnVsbCA9IHRydWU7CisJCQkJCX0KIAkJCQl9CiAJCQl9 CiAJCQllbHNlIGlmIChTeXN0ZW1BdHRyaWJ1dGVCeU5hbWUoa2V5KSAhPSBOVUxMKQpAQCAtMjU4 Niw3ICsyNzEzLDEyIEBAIHRyYW5zZm9ybUluZGV4Q29uc3RyYWludChDb25zdHJhaW50ICpjb25z dHJhaW50LCBDcmVhdGVTdG10Q29udGV4dCAqY3h0KQogCQkJCQkJfQogCQkJCQl9CiAJCQkJfQot CQkJCWlmIChmb3VuZCkKKwkJCQkvKgorCQkJCSAqIEluIENSRUFURSBUQUJMRSB3ZSBkb24ndCBr bm93IFBFUklPRHMnIHJhbmdldHlwZSB5ZXQsCisJCQkJICogYnV0IHdlIGtub3cgaXQgd2lsbCBi ZSBhIHJhbmdlL211bHRpcmFuZ2UuIFNvIGlmIHdlCisJCQkJICogaGF2ZSBhIFBFUklPRCB0aGVu IHdlJ3JlIHNhZmUuCisJCQkJICovCisJCQkJaWYgKGZvdW5kICYmICFoYXNwZXJpb2QpCiAJCQkJ ewogCQkJCQlpZiAoIU9pZElzVmFsaWQodHlwaWQpICYmIGNvbHVtbikKIAkJCQkJCXR5cGlkID0g dHlwZW5hbWVUeXBlSWQoTlVMTCwgY29sdW1uLT50eXBlTmFtZSk7CkBAIC0yOTM3LDYgKzMwNjks MTAgQEAgdHJhbnNmb3JtSW5kZXhTdG10KE9pZCByZWxpZCwgSW5kZXhTdG10ICpzdG10LCBjb25z dCBjaGFyICpxdWVyeVN0cmluZykKIAkJfQogCX0KIAorCS8qIHRha2UgY2FyZSBvZiB0aGUgcGVy aW9kICovCisJaWYgKHN0bXQtPnBlcmlvZCkKKwkJc3RtdC0+cGVyaW9kLT5vaWQgPSBnZXRfcGVy aW9kX29pZChyZWxpZCwgc3RtdC0+cGVyaW9kLT5wZXJpb2RuYW1lLCBmYWxzZSk7CisKIAkvKgog CSAqIENoZWNrIHRoYXQgb25seSB0aGUgYmFzZSByZWwgaXMgbWVudGlvbmVkLiAgKFRoaXMgc2hv dWxkIGJlIGRlYWQgY29kZQogCSAqIG5vdyB0aGF0IGFkZF9taXNzaW5nX2Zyb20gaXMgaGlzdG9y eS4pCkBAIC0zMzk0LDYgKzM1MzAsNyBAQCB0cmFuc2Zvcm1BbHRlclRhYmxlU3RtdChPaWQgcmVs aWQsIEFsdGVyVGFibGVTdG10ICpzdG10LAogCWN4dC5pbmhSZWxhdGlvbnMgPSBOSUw7CiAJY3h0 LmlzYWx0ZXIgPSB0cnVlOwogCWN4dC5jb2x1bW5zID0gTklMOworCWN4dC5wZXJpb2RzID0gTklM OwogCWN4dC5ja2NvbnN0cmFpbnRzID0gTklMOwogCWN4dC5ma2NvbnN0cmFpbnRzID0gTklMOwog CWN4dC5peGNvbnN0cmFpbnRzID0gTklMOwpAQCAtMzQ1NCw2ICszNTkxLDIyIEBAIHRyYW5zZm9y bUFsdGVyVGFibGVTdG10KE9pZCByZWxpZCwgQWx0ZXJUYWJsZVN0bXQgKnN0bXQsCiAJCQkJCQkg KGludCkgbm9kZVRhZyhjbWQtPmRlZikpOwogCQkJCWJyZWFrOwogCisJCQljYXNlIEFUX0FkZFBl cmlvZDoKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIFdlIGNhbid0IGNhbGwgdHJhbnNmb3JtVGFi bGVQZXJpb2QgaGVyZQorCQkJCQkgKiBiZWNhdXNlIGl0IGxvb2tzIGF0IGN4dC0+Y29sdW1ucwor CQkJCQkgKiBhbmQgaW4gYW4gQUxURVIgc3RhdGVtZW50IHRoZSBjb2x1bW4gbWlnaHQgYWxyZWFk eSBleGlzdAorCQkJCQkgKiAob3Igbm90KS4KKwkJCQkJICovCisJCQkJCS8vIFRPRE86IGl0IGRv ZXNuJ3QgbG9vayBhdCBjeHQtPmNvbHVtbnMgYW55IG1vcmUuCisJCQkJCS8vIFNvIHNob3VsZCB3 ZSBjYWxsIGl0IGhlcmU/IFRvIGRvIHdoYXQ/CisJCQkJCS8vIFdlbGwgaXQgbWlnaHQgYmUgdXNl ZnVsIHRvIGtub3cgYWJvdXQgaXQgaW4gY3h0LT5wZXJpb2RzIGF0IGxlYXN0LgorCQkJCQl0cmFu c2Zvcm1UYWJsZVBlcmlvZCgmY3h0LCBjYXN0Tm9kZShQZXJpb2REZWYsIGNtZC0+ZGVmKSk7CisJ CQkJCW5ld2NtZHMgPSBsYXBwZW5kKG5ld2NtZHMsIGNtZCk7CisJCQkJCWJyZWFrOworCQkJCX0K KwogCQkJY2FzZSBBVF9BbHRlckNvbHVtblR5cGU6CiAJCQkJewogCQkJCQlDb2x1bW5EZWYgICpk ZWYgPSBjYXN0Tm9kZShDb2x1bW5EZWYsIGNtZC0+ZGVmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9NYWtlZmlsZQpp bmRleCBlZGIwOWQ0ZTM1Ni4uZTEzN2YxN2U1OTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvTWFrZWZpbGUKQEAg LTc4LDYgKzc4LDcgQEAgT0JKUyA9IFwKIAlvcmFjbGVfY29tcGF0Lm8gXAogCW9yZGVyZWRzZXRh Z2dzLm8gXAogCXBhcnRpdGlvbmZ1bmNzLm8gXAorCXBlcmlvZC5vIFwKIAlwZ19sb2NhbGUubyBc CiAJcGdfbHNuLm8gXAogCXBnX3VwZ3JhZGVfc3VwcG9ydC5vIFwKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZXJpb2QuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZXJpb2Qu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGVkNDMwNGUxNmQKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGVyaW9kLmMKQEAgLTAsMCAr MSw1NiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGVyaW9kLmMKKyAqCSAgRnVuY3Rp b25zIHRvIHN1cHBvcnQgcGVyaW9kcy4KKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs aWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC91dGls cy9hZHQvcGVyaW9kLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBv c3RncmVzLmgiCisKKyNpbmNsdWRlICJleGVjdXRvci90dXB0YWJsZS5oIgorI2luY2x1ZGUgImZt Z3IuaCIKKyNpbmNsdWRlICJub2Rlcy9wcmltbm9kZXMuaCIKKyNpbmNsdWRlICJ1dGlscy9mbWdy cHJvdG9zLmgiCisjaW5jbHVkZSAidXRpbHMvcGVyaW9kLmgiCisjaW5jbHVkZSAidXRpbHMvcmFu Z2V0eXBlcy5oIgorCitEYXR1bSBwZXJpb2RfdG9fcmFuZ2UoVHVwbGVUYWJsZVNsb3QgKnNsb3Qs IGludCBzdGFydGF0dG5vLCBpbnQgZW5kYXR0bm8sIE9pZCByYW5nZXR5cGUpCit7CisJRGF0dW0g c3RhcnR2YWx1ZTsKKwlEYXR1bSBlbmR2YWx1ZTsKKwlEYXR1bSByZXN1bHQ7CisJYm9vbAlzdGFy dGlzbnVsbDsKKwlib29sCWVuZGlzbnVsbDsKKwlMT0NBTF9GQ0lORk8oZmNpbmZvLCAyKTsKKwlG bWdySW5mbwlmbGluZm87CisJRnVuY0V4cHIgICAqZjsKKworCUluaXRGdW5jdGlvbkNhbGxJbmZv RGF0YSgqZmNpbmZvLCAmZmxpbmZvLCAyLCBJbnZhbGlkT2lkLCBOVUxMLCBOVUxMKTsKKwlmID0g bWFrZU5vZGUoRnVuY0V4cHIpOworCWYtPmZ1bmNyZXN1bHR0eXBlID0gcmFuZ2V0eXBlOworCWZs aW5mby5mbl9leHByID0gKE5vZGUgKikgZjsKKwlmbGluZm8uZm5fZXh0cmEgPSBOVUxMOworCisJ LyogY29tcHV0ZSBvbGR2YWx1ZSAqLworCXN0YXJ0dmFsdWUgPSBzbG90X2dldGF0dHIoc2xvdCwg c3RhcnRhdHRubywgJnN0YXJ0aXNudWxsKTsKKwllbmR2YWx1ZSA9IHNsb3RfZ2V0YXR0cihzbG90 LCBlbmRhdHRubywgJmVuZGlzbnVsbCk7CisKKwlmY2luZm8tPmFyZ3NbMF0udmFsdWUgPSBzdGFy dHZhbHVlOworCWZjaW5mby0+YXJnc1swXS5pc251bGwgPSBzdGFydGlzbnVsbDsKKwlmY2luZm8t PmFyZ3NbMV0udmFsdWUgPSBlbmR2YWx1ZTsKKwlmY2luZm8tPmFyZ3NbMV0uaXNudWxsID0gZW5k aXNudWxsOworCisJcmVzdWx0ID0gcmFuZ2VfY29uc3RydWN0b3IyKGZjaW5mbyk7CisJaWYgKGZj aW5mby0+aXNudWxsKQorCQllbG9nKEVSUk9SLCAiZnVuY3Rpb24gJXUgcmV0dXJuZWQgTlVMTCIs IGZsaW5mby5mbl9vaWQpOworCisJcmV0dXJuIHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv bHN5c2NhY2hlLmMKaW5kZXggYjY3YzBjMDNiOTcuLjkxNTBjYzQ5NWY4IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGdfbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGNsYXNzLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcGVyaW9kLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcmFuZ2UuaCIKQEAgLTk5NSw2ICs5OTYs NjggQEAgZ2V0X2F0dG9wdGlvbnMoT2lkIHJlbGlkLCBpbnQxNiBhdHRudW0pCiAJcmV0dXJuIHJl c3VsdDsKIH0KIAorLyoJCQkJLS0tLS0tLS0tLSBQR19QRVJJT0QgQ0FDSEUgLS0tLS0tLS0tLQkJ CQkgKi8KKworLyoKKyAqIGdldF9wZXJpb2RuYW1lIC0gZ2l2ZW4gaXRzIE9JRCwgbG9vayB1cCBh IHBlcmlvZAorICoKKyAqIElmIG1pc3Npbmdfb2sgaXMgZmFsc2UsIHRocm93IGFuIGVycm9yIGlm IHRoZSBwZXJpb2QgaXMgbm90IGZvdW5kLgorICogSWYgdHJ1ZSwganVzdCByZXR1cm4gSW52YWxp ZE9pZC4KKyAqLworY2hhciAqCitnZXRfcGVyaW9kbmFtZShPaWQgcGVyaW9kaWQsIGJvb2wgbWlz c2luZ19vaykKK3sKKwlIZWFwVHVwbGUJdHA7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShQRVJJ T0RPSUQsCisJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShwZXJpb2RpZCkpOworCWlmIChIZWFwVHVw bGVJc1ZhbGlkKHRwKSkKKwl7CisJCUZvcm1fcGdfcGVyaW9kIHBlcmlvZF90dXAgPSAoRm9ybV9w Z19wZXJpb2QpIEdFVFNUUlVDVCh0cCk7CisJCWNoYXIJICAgKnJlc3VsdDsKKworCQlyZXN1bHQg PSBwc3RyZHVwKE5hbWVTdHIocGVyaW9kX3R1cC0+cGVybmFtZSkpOworCQlSZWxlYXNlU3lzQ2Fj aGUodHApOworCQlyZXR1cm4gcmVzdWx0OworCX0KKworCWlmICghbWlzc2luZ19vaykKKwkJZWxv ZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHBlcmlvZCAlZCIsCisJCQkgcGVyaW9k aWQpOworCXJldHVybiBOVUxMOworfQorCisvKgorICogZ2V0X3BlcmlvZF9vaWQgLSBnZXRzIGl0 cyByZWxhdGlvbiBhbmQgbmFtZSwgbG9vayB1cCBhIHBlcmlvZAorICoKKyAqIElmIG1pc3Npbmdf b2sgaXMgZmFsc2UsIHRocm93IGFuIGVycm9yIGlmIHRoZSBjYXN0IGlzIG5vdCBmb3VuZC4gIElm CisgKiB0cnVlLCBqdXN0IHJldHVybiBJbnZhbGlkT2lkLgorICovCitPaWQKK2dldF9wZXJpb2Rf b2lkKE9pZCByZWxpZCwgY29uc3QgY2hhciAqcGVyaW9kbmFtZSwgYm9vbCBtaXNzaW5nX29rKQor eworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUyKFBFUklPRE5BTUUsCisJ CQkJCQkgT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCisJCQkJCQkgUG9pbnRlckdldERhdHVtKHBl cmlvZG5hbWUpKTsKKworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwl7CisJCUZvcm1fcGdf cGVyaW9kIHBlcmlvZF90dXAgPSAoRm9ybV9wZ19wZXJpb2QpIEdFVFNUUlVDVCh0cCk7CisJCU9p ZCByZXN1bHQ7CisKKwkJcmVzdWx0ID0gcGVyaW9kX3R1cC0+b2lkOworCQlSZWxlYXNlU3lzQ2Fj aGUodHApOworCQlyZXR1cm4gcmVzdWx0OworCX0KKworCWlmICghbWlzc2luZ19vaykKKwkJZWxv ZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHBlcmlvZCAlcyIsCisJCQkgcGVyaW9k bmFtZSk7CisJcmV0dXJuIEludmFsaWRPaWQ7Cit9CisKIC8qCQkJCS0tLS0tLS0tLS0gUEdfQ0FT VCBDQUNIRSAtLS0tLS0tLS0tCQkJCQkgKi8KIAogLyoKQEAgLTM1NTMsNiArMzYxNiwzMCBAQCBn ZXRfbXVsdGlyYW5nZV9yYW5nZShPaWQgbXVsdGlyYW5nZU9pZCkKIAkJcmV0dXJuIEludmFsaWRP aWQ7CiB9CiAKK09pZAorZ2V0X3N1YnR5cGVfcmFuZ2UoT2lkIHN1YnR5cGVPaWQpCit7CisJQ2F0 Q0xpc3QgKmNhdGxpc3Q7CisJT2lkCXJlc3VsdCA9IEludmFsaWRPaWQ7CisKKwljYXRsaXN0ID0g U2VhcmNoU3lzQ2FjaGVMaXN0MShSQU5HRVNVQlRZUEUsIE9iamVjdElkR2V0RGF0dW0oc3VidHlw ZU9pZCkpOworCisJaWYgKGNhdGxpc3QtPm5fbWVtYmVycyA9PSAxKQorCXsKKwkJSGVhcFR1cGxl CXR1cGxlID0gJmNhdGxpc3QtPm1lbWJlcnNbMF0tPnR1cGxlOworCQlGb3JtX3BnX3JhbmdlIHJu Z3R1cCA9IChGb3JtX3BnX3JhbmdlKSBHRVRTVFJVQ1QodHVwbGUpOworCQlyZXN1bHQgPSBybmd0 dXAtPnJuZ3R5cGlkOworCQlSZWxlYXNlQ2F0Q2FjaGVMaXN0KGNhdGxpc3QpOworCX0KKwllbHNl IGlmIChjYXRsaXN0LT5uX21lbWJlcnMgPiAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJj b2RlKEVSUkNPREVfSU5ERVRFUk1JTkFURV9EQVRBVFlQRSksCisJCQkJIGVycm1zZygiYW1iaWd1 b3VzIHJhbmdlIGZvciB0eXBlICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKHN1YnR5cGVPaWQp KSkpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoJCQkJLS0tLS0tLS0tLSBQR19JTkRFWCBD QUNIRSAtLS0tLS0tLS0tCQkJCSAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZl ci5jCmluZGV4IDhjMjBjMjYzYzRiLi5iZjJmNTVkNWExNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfYXJjaGl2ZXIuYwpAQCAtMzcwNCw2ICszNzA0LDcgQEAgX2dldE9iamVjdERlc2NyaXB0aW9u KFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3QgVG9jRW50cnkgKnRlKQogCQkJIHN0cmNtcCh0eXBlLCAi REFUQUJBU0UgUFJPUEVSVElFUyIpID09IDAgfHwKIAkJCSBzdHJjbXAodHlwZSwgIkRFRkFVTFQi KSA9PSAwIHx8CiAJCQkgc3RyY21wKHR5cGUsICJGSyBDT05TVFJBSU5UIikgPT0gMCB8fAorCQkJ IHN0cmNtcCh0eXBlLCAiUEVSSU9EIikgPT0gMCB8fAogCQkJIHN0cmNtcCh0eXBlLCAiSU5ERVgi KSA9PSAwIHx8CiAJCQkgc3RyY21wKHR5cGUsICJSVUxFIikgPT0gMCB8fAogCQkJIHN0cmNtcCh0 eXBlLCAiVFJJR0dFUiIpID09IDAgfHwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDFiNDdjMzg4Y2VkLi5iYzNl NjBmMzFkOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC02Nzg1LDYgKzY3ODUsNyBAQCBnZXRUYWJsZXMoQXJj aGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJaW50CQkJaV9yZWx0eXBlOwogCWludAkJCWlf cmVsb3duZXI7CiAJaW50CQkJaV9yZWxjaGVja3M7CisJaW50CQkJaV9ucGVyaW9kOwogCWludAkJ CWlfcmVsaGFzaW5kZXg7CiAJaW50CQkJaV9yZWxoYXNydWxlczsKIAlpbnQJCQlpX3JlbHBhZ2Vz OwpAQCAtNjg2Miw2ICs2ODYzLDE0IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51 bVRhYmxlcykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCiAJCQkJCQkJICJjLnJlbGhh c29pZHMsICIpOwogCisJLyogSW4gUEcxOCB1cHdhcmRzIHdlIGhhdmUgUEVSSU9Ecy4gKi8KKwlp ZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxODAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KHF1ZXJ5LAorCQkJCQkJCSAiKFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3BlcmlvZCBXSEVSRSBw ZXJyZWxpZCA9IGMub2lkKSBBUyBucGVyaW9kcywgIik7CisJZWxzZQorCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkgIjAgQVMgbnBlcmlvZHMsICIpOworCiAJaWYgKGZvdXQt PnJlbW90ZVZlcnNpb24gPj0gOTAzMDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAog CQkJCQkJCSAiYy5yZWxpc3BvcHVsYXRlZCwgIik7CkBAIC02OTk5LDYgKzcwMDgsNyBAQCBnZXRU YWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJaV9yZWx0eXBlID0gUFFmbnVt YmVyKHJlcywgInJlbHR5cGUiKTsKIAlpX3JlbG93bmVyID0gUFFmbnVtYmVyKHJlcywgInJlbG93 bmVyIik7CiAJaV9yZWxjaGVja3MgPSBQUWZudW1iZXIocmVzLCAicmVsY2hlY2tzIik7CisJaV9u cGVyaW9kID0gUFFmbnVtYmVyKHJlcywgIm5wZXJpb2RzIik7CiAJaV9yZWxoYXNpbmRleCA9IFBR Zm51bWJlcihyZXMsICJyZWxoYXNpbmRleCIpOwogCWlfcmVsaGFzcnVsZXMgPSBQUWZudW1iZXIo cmVzLCAicmVsaGFzcnVsZXMiKTsKIAlpX3JlbHBhZ2VzID0gUFFmbnVtYmVyKHJlcywgInJlbHBh Z2VzIik7CkBAIC03MDgyLDYgKzcwOTIsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50 ICpudW1UYWJsZXMpCiAJCX0KIAkJdGJsaW5mb1tpXS5yZWx0YWJsZXNwYWNlID0gcGdfc3RyZHVw KFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbHRhYmxlc3BhY2UpKTsKIAkJdGJsaW5mb1tpXS5oYXNv aWRzID0gKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9yZWxoYXNvaWRzKSwgInQiKSA9PSAw KTsKKwkJdGJsaW5mb1tpXS5ucGVyaW9kID0gYXRvaShQUWdldHZhbHVlKHJlcywgaSwgaV9ucGVy aW9kKSk7CiAJCXRibGluZm9baV0uaGFzdHJpZ2dlcnMgPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVz LCBpLCBpX3JlbGhhc3RyaWdnZXJzKSwgInQiKSA9PSAwKTsKIAkJdGJsaW5mb1tpXS5yZWxwZXJz aXN0ZW5jZSA9ICooUFFnZXR2YWx1ZShyZXMsIGksIGlfcmVscGVyc2lzdGVuY2UpKTsKIAkJdGJs aW5mb1tpXS5yZWxpc3BvcHVsYXRlZCA9IChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcmVs aXNwb3B1bGF0ZWQpLCAidCIpID09IDApOwpAQCAtODcxNSw3ICs4NzI2LDcgQEAgZ2V0VHJhbnNm b3JtcyhBcmNoaXZlICpmb3V0KQogLyoKICAqIGdldFRhYmxlQXR0cnMgLQogICoJICBmb3IgZWFj aCBpbnRlcmVzdGluZyB0YWJsZSwgcmVhZCBpbmZvIGFib3V0IGl0cyBhdHRyaWJ1dGVzCi0gKgkg IChuYW1lcywgdHlwZXMsIGRlZmF1bHQgdmFsdWVzLCBDSEVDSyBjb25zdHJhaW50cywgZXRjKQor ICoJICAobmFtZXMsIHR5cGVzLCBkZWZhdWx0IHZhbHVlcywgQ0hFQ0sgY29uc3RyYWludHMsIFBF UklPRHMsIGV0YykKICAqCiAgKgltb2RpZmllcyB0YmxpbmZvCiAgKi8KQEAgLTg3NjUsNiArODc3 Niw4IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBp bnQgbnVtVGFibGVzKQogCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtVGFibGVzOyBpKyspCiAJewog CQlUYWJsZUluZm8gICp0YmluZm8gPSAmdGJsaW5mb1tpXTsKKwkJaW50CQkJbmR1bXBhYmxlY2hl Y2tzOwkvKiBudW1iZXIgb2YgQ0hFQ0sgY29uc3RyYWludHMgdGhhdCBkbworCQkJCQkJCQkJCSAg IG5vdCBiZWxvbmcgdG8gYSBwZXJpb2QgKi8KIAogCQkvKiBEb24ndCBib3RoZXIgdG8gY29sbGVj dCBpbmZvIGZvciBzZXF1ZW5jZXMgKi8KIAkJaWYgKHRiaW5mby0+cmVsa2luZCA9PSBSRUxLSU5E X1NFUVVFTkNFKQpAQCAtODc3OSw3ICs4NzkyLDggQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpm b3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJCQlhcHBlbmRQUUV4cEJ1 ZmZlckNoYXIodGJsb2lkcywgJywnKTsKIAkJYXBwZW5kUFFFeHBCdWZmZXIodGJsb2lkcywgIiV1 IiwgdGJpbmZvLT5kb2JqLmNhdElkLm9pZCk7CiAKLQkJaWYgKHRiaW5mby0+bmNoZWNrID4gMCkK KwkJbmR1bXBhYmxlY2hlY2tzID0gdGJpbmZvLT5uY2hlY2sgLSB0YmluZm8tPm5wZXJpb2Q7CisJ CWlmIChuZHVtcGFibGVjaGVja3MgPiAwKQogCQl7CiAJCQkvKiBBbHNvIG1ha2UgYSBsaXN0IG9m IHRoZSBvbmVzIHdpdGggY2hlY2sgY29uc3RyYWludHMgKi8KIAkJCWlmIChjaGVja29pZHMtPmxl biA+IDEpIC8qIGRvIHdlIGhhdmUgbW9yZSB0aGFuIHRoZSAneyc/ICovCkBAIC05MTQxLDE1ICs5 MTU1LDM2IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZv LCBpbnQgbnVtVGFibGVzKQogCQlwZ19sb2dfaW5mbygiZmluZGluZyB0YWJsZSBjaGVjayBjb25z dHJhaW50cyIpOwogCiAJCXJlc2V0UFFFeHBCdWZmZXIocSk7Ci0JCWFwcGVuZFBRRXhwQnVmZmVy KHEsCi0JCQkJCQkgICJTRUxFQ1QgYy50YWJsZW9pZCwgYy5vaWQsIGNvbnJlbGlkLCBjb25uYW1l LCAiCi0JCQkJCQkgICJwZ19jYXRhbG9nLnBnX2dldF9jb25zdHJhaW50ZGVmKGMub2lkKSBBUyBj b25zcmMsICIKLQkJCQkJCSAgImNvbmlzbG9jYWwsIGNvbnZhbGlkYXRlZCAiCi0JCQkJCQkgICJG Uk9NIHVubmVzdCgnJXMnOjpwZ19jYXRhbG9nLm9pZFtdKSBBUyBzcmModGJsb2lkKVxuIgotCQkJ CQkJICAiSk9JTiBwZ19jYXRhbG9nLnBnX2NvbnN0cmFpbnQgYyBPTiAoc3JjLnRibG9pZCA9IGMu Y29ucmVsaWQpXG4iCi0JCQkJCQkgICJXSEVSRSBjb250eXBlID0gJ2MnICIKLQkJCQkJCSAgIk9S REVSIEJZIGMuY29ucmVsaWQsIGMuY29ubmFtZSIsCi0JCQkJCQkgIGNoZWNrb2lkcy0+ZGF0YSk7 CisJCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE4MDAwMCkKKwkJeworCQkJLyoKKwkJCSAq IFBFUklPRHMgd2VyZSBhZGRlZCBpbiB2MTggYW5kIHdlIGRvbid0IGR1bXAgQ0hFQ0sKKwkJCSAq IGNvbnN0cmFpbnRzIGZvciB0aGVtLgorCQkJICovCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLAor CQkJCQkJCSAgIlNFTEVDVCBjLnRhYmxlb2lkLCBjLm9pZCwgY29ucmVsaWQsIGNvbm5hbWUsICIK KwkJCQkJCQkgICJwZ19jYXRhbG9nLnBnX2dldF9jb25zdHJhaW50ZGVmKGMub2lkKSBBUyBjb25z cmMsICIKKwkJCQkJCQkgICJjb25pc2xvY2FsLCBjb252YWxpZGF0ZWQgIgorCQkJCQkJCSAgIkZS T00gdW5uZXN0KCclcyc6OnBnX2NhdGFsb2cub2lkW10pIEFTIHNyYyh0YmxvaWQpXG4iCisJCQkJ CQkJICAiSk9JTiBwZ19jYXRhbG9nLnBnX2NvbnN0cmFpbnQgYyBPTiAoc3JjLnRibG9pZCA9IGMu Y29ucmVsaWQpXG4iCisJCQkJCQkJICAiV0hFUkUgY29udHlwZSA9ICdjJyAiCisJCQkJCQkJICAi ICAgQU5EIE5PVCBFWElTVFMgKFNFTEVDVCBGUk9NIHBnX3BlcmlvZCAiCisJCQkJCQkJICAiICAg ICAgICAgICAgICAgICAgIFdIRVJFIChwZXJyZWxpZCwgcGVyY29uc3RyYWludCkgPSAoY29ucmVs aWQsIGMub2lkKSkgIgorCQkJCQkJCSAgIk9SREVSIEJZIGMuY29ucmVsaWQsIGMuY29ubmFtZSIs CisJCQkJCQkJICBjaGVja29pZHMtPmRhdGEpOworCQl9CisJCWVsc2UKKwkJeworCQkJYXBwZW5k UFFFeHBCdWZmZXIocSwKKwkJCQkJCQkgICJTRUxFQ1QgYy50YWJsZW9pZCwgYy5vaWQsIGNvbnJl bGlkLCBjb25uYW1lLCAiCisJCQkJCQkJICAicGdfY2F0YWxvZy5wZ19nZXRfY29uc3RyYWludGRl ZihjLm9pZCkgQVMgY29uc3JjLCAiCisJCQkJCQkJICAiY29uaXNsb2NhbCwgY29udmFsaWRhdGVk ICIKKwkJCQkJCQkgICJGUk9NIHVubmVzdCgnJXMnOjpwZ19jYXRhbG9nLm9pZFtdKSBBUyBzcmMo dGJsb2lkKVxuIgorCQkJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ19jb25zdHJhaW50IGMgT04g KHNyYy50YmxvaWQgPSBjLmNvbnJlbGlkKVxuIgorCQkJCQkJCSAgIldIRVJFIGNvbnR5cGUgPSAn YycgIgorCQkJCQkJCSAgIk9SREVSIEJZIGMuY29ucmVsaWQsIGMuY29ubmFtZSIsCisJCQkJCQkJ ICBjaGVja29pZHMtPmRhdGEpOworCQl9CiAKIAkJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQs IHEtPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CiAKQEAgLTkxNzEsNiArOTIwNiw3IEBAIGdldFRh YmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVz KQogCQkJT2lkCQkJY29ucmVsaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGosIGlfY29ucmVs aWQpKTsKIAkJCVRhYmxlSW5mbyAgKnRiaW5mbyA9IE5VTEw7CiAJCQlpbnQJCQludW1jb25zOwor CQkJaW50CQkJbmR1bXBhYmxlY2hlY2tzOwogCiAJCQkvKiBDb3VudCByb3dzIGZvciB0aGlzIHRh YmxlICovCiAJCQlmb3IgKG51bWNvbnMgPSAxOyBudW1jb25zIDwgbnVtQ29uc3RycyAtIGo7IG51 bWNvbnMrKykKQEAgLTkxOTAsMTIgKzkyMjYsMTMgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpm b3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJCQlpZiAoY3VydGJsaW5k eCA+PSBudW1UYWJsZXMpCiAJCQkJcGdfZmF0YWwoInVucmVjb2duaXplZCB0YWJsZSBPSUQgJXUi LCBjb25yZWxpZCk7CiAKLQkJCWlmIChudW1jb25zICE9IHRiaW5mby0+bmNoZWNrKQorCQkJbmR1 bXBhYmxlY2hlY2tzID0gdGJpbmZvLT5uY2hlY2sgLSB0YmluZm8tPm5wZXJpb2Q7CisJCQlpZiAo bnVtY29ucyAhPSBuZHVtcGFibGVjaGVja3MpCiAJCQl7CiAJCQkJcGdfbG9nX2Vycm9yKG5nZXR0 ZXh0KCJleHBlY3RlZCAlZCBjaGVjayBjb25zdHJhaW50IG9uIHRhYmxlIFwiJXNcIiBidXQgZm91 bmQgJWQiLAogCQkJCQkJCQkJICAiZXhwZWN0ZWQgJWQgY2hlY2sgY29uc3RyYWludHMgb24gdGFi bGUgXCIlc1wiIGJ1dCBmb3VuZCAlZCIsCi0JCQkJCQkJCQkgIHRiaW5mby0+bmNoZWNrKSwKLQkJ CQkJCQkgdGJpbmZvLT5uY2hlY2ssIHRiaW5mby0+ZG9iai5uYW1lLCBudW1jb25zKTsKKwkJCQkJ CQkJCSAgbmR1bXBhYmxlY2hlY2tzKSwKKwkJCQkJCQkgbmR1bXBhYmxlY2hlY2tzLCB0YmluZm8t PmRvYmoubmFtZSwgbnVtY29ucyk7CiAJCQkJcGdfbG9nX2Vycm9yX2hpbnQoIlRoZSBzeXN0ZW0g Y2F0YWxvZ3MgbWlnaHQgYmUgY29ycnVwdGVkLiIpOwogCQkJCWV4aXRfbmljZWx5KDEpOwogCQkJ fQpAQCAtOTI1NCw2ICs5MjkxLDgwIEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFi bGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCQlQUWNsZWFyKHJlcyk7CiAJfQogCisJ Zm9yIChpbnQgaSA9IDA7IGkgPCBudW1UYWJsZXM7IGkrKykKKwl7CisJCVRhYmxlSW5mbyAgKnRi aW5mbyA9ICZ0YmxpbmZvW2ldOworCisJCS8qCisJCSAqIEdldCBpbmZvIGFib3V0IFBFUklPRCBk ZWZpbml0aW9ucworCQkgKi8KKwkJaWYgKHRiaW5mby0+bnBlcmlvZCA+IDApCisJCXsKKwkJCVBl cmlvZEluZm8gKnBlcmlvZHM7CisJCQlpbnQJCQludW1QZXJpb2RzOworCQkJaW50CQkJajsKKwor CQkJLyogV2Ugc2hvdWxkbid0IGhhdmUgYW55IHBlcmlvZHMgYmVmb3JlIHYxOCAqLworCQkJQXNz ZXJ0KGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTgwMDAwKTsKKworCQkJcGdfbG9nX2luZm8oImZp bmRpbmcgcGVyaW9kcyBmb3IgdGFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCXRiaW5mby0+ZG9iai5u YW1lc3BhY2UtPmRvYmoubmFtZSwKKwkJCQkJCXRiaW5mby0+ZG9iai5uYW1lKTsKKworCQkJcmVz ZXRQUUV4cEJ1ZmZlcihxKTsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsCisJCQkJIlNFTEVDVCBw LnRhYmxlb2lkLCBwLm9pZCwgcC5wZXJuYW1lLCAiCisJCQkJIiAgICAgICBzYS5hdHRuYW1lIEFT IHBlcnN0YXJ0LCBlYS5hdHRuYW1lIEFTIHBlcmVuZCwgIgorCQkJCSIgICAgICAgci50eXBuYW1l IEFTIHJuZ3R5cGUsICIKKwkJCQkiICAgICAgIGMuY29ubmFtZSBBUyBjb25uYW1lICIKKwkJCQki RlJPTSBwZ19jYXRhbG9nLnBnX3BlcmlvZCBBUyBwICIKKwkJCQkiSk9JTiBwZ19jYXRhbG9nLnBn X2F0dHJpYnV0ZSBBUyBzYSBPTiAoc2EuYXR0cmVsaWQsIHNhLmF0dG51bSkgPSAocC5wZXJyZWxp ZCwgcC5wZXJzdGFydCkgIgorCQkJCSJKT0lOIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlIEFTIGVh IE9OIChlYS5hdHRyZWxpZCwgZWEuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBwLnBlcmVuZCkgIgor CQkJCSJKT0lOIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlIEFTIHJhIE9OIChyYS5hdHRyZWxpZCwg cmEuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBwLnBlcnJhbmdlKSAiCisJCQkJIkpPSU4gcGdfY2F0 YWxvZy5wZ190eXBlIEFTIHIgT04gci5vaWQgPSByYS5hdHR0eXBpZCAiCisJCQkJIkpPSU4gcGdf Y2F0YWxvZy5wZ19jb25zdHJhaW50IEFTIGMgT04gYy5vaWQgPSBwLnBlcmNvbnN0cmFpbnQgIgor CQkJCSJXSEVSRSBwLnBlcnJlbGlkID0gJyV1Jzo6cGdfY2F0YWxvZy5vaWQgIgorCQkJCSJPUkRF UiBCWSBwLnBlcm5hbWUiLAorCQkJCXRiaW5mby0+ZG9iai5jYXRJZC5vaWQpOworCisJCQlyZXMg PSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCQkJ LyoKKwkJCSAqIElmIHdlIGRpZG4ndCBnZXQgdGhlIG51bWJlciBvZiByb3dzIHdlIHRob3VnaHQg d2Ugd2VyZSBnb2luZyB0bywKKwkJCSAqIHRoZW4gdGhvc2UgSk9JTnMgZGlkbid0IHdvcmsuCisJ CQkgKi8KKwkJCW51bVBlcmlvZHMgPSBQUW50dXBsZXMocmVzKTsKKwkJCWlmIChudW1QZXJpb2Rz ICE9IHRiaW5mby0+bnBlcmlvZCkKKwkJCXsKKwkJCQlwZ19sb2dfaW5mbyhuZ2V0dGV4dCgiZXhw ZWN0ZWQgJWQgcGVyaW9kIG9uIHRhYmxlIFwiJXNcIiBidXQgZm91bmQgJWQiLAorCQkJCQkJCQkJ ICJleHBlY3RlZCAlZCBwZXJpb2RzIG9uIHRhYmxlIFwiJXNcIiBidXQgZm91bmQgJWQiLAorCQkJ CQkJCQkJIHRiaW5mby0+bnBlcmlvZCksCisJCQkJCQkJdGJpbmZvLT5ucGVyaW9kLCB0YmluZm8t PmRvYmoubmFtZSwgbnVtUGVyaW9kcyk7CisJCQkJcGdfbG9nX2luZm8oIihUaGUgc3lzdGVtIGNh dGFsb2dzIG1pZ2h0IGJlIGNvcnJ1cHRlZC4pIik7CisJCQkJZXhpdF9uaWNlbHkoMSk7CisJCQl9 CisKKwkJCXBlcmlvZHMgPSAoUGVyaW9kSW5mbyAqKSBwZ19tYWxsb2MobnVtUGVyaW9kcyAqIHNp emVvZihQZXJpb2RJbmZvKSk7CisJCQl0YmluZm8tPnBlcmlvZHMgPSBwZXJpb2RzOworCisJCQlm b3IgKGogPSAwOyBqIDwgbnVtUGVyaW9kczsgaisrKQorCQkJeworCQkJCXBlcmlvZHNbal0uZG9i ai5vYmpUeXBlID0gRE9fUEVSSU9EOworCQkJCXBlcmlvZHNbal0uZG9iai5jYXRJZC50YWJsZW9p ZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaiwgMCkpOworCQkJCXBlcmlvZHNbal0uZG9iai5j YXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGosIDEpKTsKKwkJCQlBc3NpZ25EdW1w SWQoJnBlcmlvZHNbal0uZG9iaik7CisJCQkJcGVyaW9kc1tqXS5kb2JqLm5hbWUgPSBwZ19zdHJk dXAoUFFnZXR2YWx1ZShyZXMsIGosIDIpKTsKKwkJCQlwZXJpb2RzW2pdLmRvYmoubmFtZXNwYWNl ID0gdGJpbmZvLT5kb2JqLm5hbWVzcGFjZTsKKwkJCQlwZXJpb2RzW2pdLnBlcnRhYmxlID0gdGJp bmZvOworCQkJCXBlcmlvZHNbal0ucGVyc3RhcnQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMs IGosIDMpKTsKKwkJCQlwZXJpb2RzW2pdLnBlcmVuZCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJl cywgaiwgNCkpOworCQkJCXBlcmlvZHNbal0ucm5ndHlwZSA9IHBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaiwgNSkpOworCQkJCXBlcmlvZHNbal0uY29ubmFtZSA9IHBnX3N0cmR1cChQUWdldHZh bHVlKHJlcywgaiwgNikpOworCQkJfQorCQkJUFFjbGVhcihyZXMpOworCQl9CisJfQorCiAJZGVz dHJveVBRRXhwQnVmZmVyKHEpOwogCWRlc3Ryb3lQUUV4cEJ1ZmZlcih0YmxvaWRzKTsKIAlkZXN0 cm95UFFFeHBCdWZmZXIoY2hlY2tvaWRzKTsKQEAgLTEwNDgyLDYgKzEwNTkzLDggQEAgZHVtcER1 bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpkb2JqKQogCQljYXNl IERPX0ZLX0NPTlNUUkFJTlQ6CiAJCQlkdW1wQ29uc3RyYWludChmb3V0LCAoY29uc3QgQ29uc3Ry YWludEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKKwkJY2FzZSBET19QRVJJT0Q6CisJCQlicmVh azsKIAkJY2FzZSBET19QUk9DTEFORzoKIAkJCWR1bXBQcm9jTGFuZyhmb3V0LCAoY29uc3QgUHJv Y0xhbmdJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CkBAIC0xNjA0MCw2ICsxNjE1MywzMyBAQCBk dW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJ CQkJfQogCQkJfQogCisJCQkvKgorCQkJICogQWRkIG5vbi1pbmhlcml0ZWQgUEVSSU9EIGRlZmlu aXRpb25zLCBpZiBhbnkuCisJCQkgKi8KKwkJCWZvciAoaiA9IDA7IGogPCB0YmluZm8tPm5wZXJp b2Q7IGorKykKKwkJCXsKKwkJCQlQZXJpb2RJbmZvICpwZXJpb2QgPSAmKHRiaW5mby0+cGVyaW9k c1tqXSk7CisKKwkJCQljaGFyCSAgICpuYW1lID0gcGdfc3RyZHVwKGZtdElkKHBlcmlvZC0+ZG9i ai5uYW1lKSk7CisJCQkJY2hhcgkgICAqc3RhcnQgPSBwZ19zdHJkdXAoZm10SWQocGVyaW9kLT5w ZXJzdGFydCkpOworCQkJCWNoYXIJICAgKmVuZCA9IHBnX3N0cmR1cChmbXRJZChwZXJpb2QtPnBl cmVuZCkpOworCQkJCWNoYXIJICAgKnJuZ3R5cGUgPSBwZ19zdHJkdXAoZm10SWQocGVyaW9kLT5y bmd0eXBlKSk7CisJCQkJY2hhcgkgICAqY29ubmFtZSA9IHBnX3N0cmR1cChmbXRJZChwZXJpb2Qt PmNvbm5hbWUpKTsKKworCQkJCWlmIChhY3R1YWxfYXR0cyA9PSAwKQorCQkJCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxLCAiIChcbiAgICAiKTsKKwkJCQllbHNlCisJCQkJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHEsICIsXG4gICAgIik7CisKKwkJCQkvKiBBbHdheXMgc2F5IGNvbGV4aXN0cyBzbyB3 ZSBjYW4ganVzdCBwcmludCB0aGUgR0VORVJBVEVEIGNvbHVtbiAqLworCQkJCWFwcGVuZFBRRXhw QnVmZmVyKHEsICJQRVJJT0QgRk9SICVzICglcywgJXMpICIKKwkJCQkJCSJXSVRIIChyYW5nZXR5 cGUgPSAlcywgY2hlY2tfY29uc3RyYWludF9uYW1lID0gJXMsIGNvbGV4aXN0cyA9IHRydWUpIiwK KwkJCQkJCQkJICBuYW1lLCBzdGFydCwgZW5kLAorCQkJCQkJCQkgIHJuZ3R5cGUsIGNvbm5hbWUp OworCisJCQkJYWN0dWFsX2F0dHMrKzsKKwkJCX0KKwogCQkJLyoKIAkJCSAqIEFkZCBub24taW5o ZXJpdGVkIENIRUNLIGNvbnN0cmFpbnRzLCBpZiBhbnkuCiAJCQkgKgpAQCAtMTYwNDgsNyArMTYx ODgsNyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0 YmluZm8pCiAJCQkgKiBQQVJUSVRJT04gdGhhdCB3ZSdsbCBlbWl0IGxhdGVyIGV4cGVjdHMgdGhl IGNvbnN0cmFpbnQgdG8gYmUKIAkJCSAqIHRoZXJlLiAgKE5vIG5lZWQgdG8gZml4IGNvbmlzbG9j YWw6IEFUVEFDSCBQQVJUSVRJT04gZG9lcyB0aGF0KQogCQkJICovCi0JCQlmb3IgKGogPSAwOyBq IDwgdGJpbmZvLT5uY2hlY2s7IGorKykKKwkJCWZvciAoaiA9IDA7IGogPCB0YmluZm8tPm5jaGVj ayAtIHRiaW5mby0+bnBlcmlvZDsgaisrKQogCQkJewogCQkJCUNvbnN0cmFpbnRJbmZvICpjb25z dHIgPSAmKHRiaW5mby0+Y2hlY2tleHByc1tqXSk7CiAKQEAgLTE2Mjk0LDcgKzE2NDM0LDcgQEAg ZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQog CQkJICovCiAJCQlyZXNldFBRRXhwQnVmZmVyKGV4dHJhKTsKIAkJCWZpcnN0aXRlbSA9IHRydWU7 Ci0JCQlmb3IgKGsgPSAwOyBrIDwgdGJpbmZvLT5uY2hlY2s7IGsrKykKKwkJCWZvciAoayA9IDA7 IGsgPCB0YmluZm8tPm5jaGVjayAtIHRiaW5mby0+bnBlcmlvZDsgaysrKQogCQkJewogCQkJCUNv bnN0cmFpbnRJbmZvICpjb25zdHIgPSAmKHRiaW5mby0+Y2hlY2tleHByc1trXSk7CiAKQEAgLTE2 NjAwLDcgKzE2NzQwLDcgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRh YmxlSW5mbyAqdGJpbmZvKQogCQlkdW1wVGFibGVTZWNMYWJlbChmb3V0LCB0YmluZm8sIHJlbHR5 cGVuYW1lKTsKIAogCS8qIER1bXAgY29tbWVudHMgb24gaW5saW5lZCB0YWJsZSBjb25zdHJhaW50 cyAqLwotCWZvciAoaiA9IDA7IGogPCB0YmluZm8tPm5jaGVjazsgaisrKQorCWZvciAoaiA9IDA7 IGogPCB0YmluZm8tPm5jaGVjayAtIHRiaW5mby0+bnBlcmlvZDsgaisrKQogCXsKIAkJQ29uc3Ry YWludEluZm8gKmNvbnN0ciA9ICYodGJpbmZvLT5jaGVja2V4cHJzW2pdKTsKIApAQCAtMTg2NzMs NiArMTg4MTMsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRv YmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fVFJJR0dFUjoKIAkJCWNhc2UgRE9fRVZFTlRf VFJJR0dFUjoKIAkJCWNhc2UgRE9fREVGQVVMVF9BQ0w6CisJCQljYXNlIERPX1BFUklPRDoKIAkJ CWNhc2UgRE9fUE9MSUNZOgogCQkJY2FzZSBET19QVUJMSUNBVElPTjoKIAkJCWNhc2UgRE9fUFVC TElDQVRJT05fUkVMOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggOWY5MDdlZDVhZDQuLjNjN2M0MmYyYTRjIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmgKQEAgLTU5LDYgKzU5LDcgQEAgdHlwZWRlZiBlbnVtCiAJRE9fVFJJR0dFUiwK IAlET19DT05TVFJBSU5ULAogCURPX0ZLX0NPTlNUUkFJTlQsCQkJLyogc2VlIG5vdGUgZm9yIENv bnN0cmFpbnRJbmZvICovCisJRE9fUEVSSU9ELAogCURPX1BST0NMQU5HLAogCURPX0NBU1QsCiAJ RE9fVEFCTEVfREFUQSwKQEAgLTMwMSwxMiArMzAyLDE0IEBAIHR5cGVkZWYgc3RydWN0IF90YWJs ZUluZm8KIAlib29sCQlyb3dzZWM7CQkJLyogaXMgcm93IHNlY3VyaXR5IGVuYWJsZWQ/ICovCiAJ Ym9vbAkJZm9yY2Vyb3dzZWM7CS8qIGlzIHJvdyBzZWN1cml0eSBmb3JjZWQ/ICovCiAJYm9vbAkJ aGFzb2lkczsJCS8qIGRvZXMgaXQgaGF2ZSBPSURzPyAqLworCWJvb2wJCWhhc3BlcmlvZHM7CQkv KiBkb2VzIGl0IGhhdmUgYW55IHBlcmlvZHM/ICovCiAJdWludDMyCQlmcm96ZW54aWQ7CQkvKiB0 YWJsZSdzIHJlbGZyb3plbnhpZCAqLwogCXVpbnQzMgkJbWlubXhpZDsJCS8qIHRhYmxlJ3MgcmVs bWlubXhpZCAqLwogCU9pZAkJCXRvYXN0X29pZDsJCS8qIHRvYXN0IHRhYmxlJ3MgT0lELCBvciAw IGlmIG5vbmUgKi8KIAl1aW50MzIJCXRvYXN0X2Zyb3plbnhpZDsJLyogdG9hc3QgdGFibGUncyBy ZWxmcm96ZW54aWQsIGlmIGFueSAqLwogCXVpbnQzMgkJdG9hc3RfbWlubXhpZDsJLyogdG9hc3Qg dGFibGUncyByZWxtaW5teGlkICovCiAJaW50CQkJbmNoZWNrOwkJCS8qICMgb2YgQ0hFQ0sgZXhw cmVzc2lvbnMgKi8KKwlpbnQJCQlucGVyaW9kOwkJLyogIyBvZiBQRVJJT0QgZGVmaW5pdGlvbnMg Ki8KIAlPaWQJCQlyZWx0eXBlOwkJLyogT0lEIG9mIHRhYmxlJ3MgY29tcG9zaXRlIHR5cGUsIGlm IGFueSAqLwogCU9pZAkJCXJlbG9mdHlwZTsJCS8qIHVuZGVybHlpbmcgdHlwZSBmb3IgdHlwZWQg dGFibGUgKi8KIAlPaWQJCQlmb3JlaWduX3NlcnZlcjsgLyogZm9yZWlnbiBzZXJ2ZXIgb2lkLCBp ZiBhcHBsaWNhYmxlICovCkBAIC0zMzcsNiArMzQwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxl SW5mbwogCWNoYXIJICAgKmF0dHN0b3JhZ2U7CQkvKiBhdHRyaWJ1dGUgc3RvcmFnZSBzY2hlbWUg Ki8KIAljaGFyCSAgICp0eXBzdG9yYWdlOwkJLyogdHlwZSBzdG9yYWdlIHNjaGVtZSAqLwogCWJv b2wJICAgKmF0dGlzZHJvcHBlZDsJLyogdHJ1ZSBpZiBhdHRyIGlzIGRyb3BwZWQ7IGRvbid0IGR1 bXAgaXQgKi8KKwlib29sCSAgICphdHRpc3BlcmlvZDsJLyogdHJ1ZSBpZiBhdHRyIGlzIGEgUEVS SU9EOyBkb24ndCBkdW1wIGl0ICovCiAJY2hhcgkgICAqYXR0aWRlbnRpdHk7CiAJY2hhcgkgICAq YXR0Z2VuZXJhdGVkOwogCWludAkJICAgKmF0dGxlbjsJCQkvKiBhdHRyaWJ1dGUgbGVuZ3RoLCB1 c2VkIGJ5IGJpbmFyeV91cGdyYWRlICovCkBAIC0zNTEsNiArMzU1LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgX3RhYmxlSW5mbwogCWJvb2wJICAgKmluaE5vdE51bGw7CQkvKiB0cnVlIGlmIE5PVCBOVUxM IGlzIGluaGVyaXRlZCAqLwogCXN0cnVjdCBfYXR0ckRlZkluZm8gKiphdHRyZGVmczsgLyogREVG QVVMVCBleHByZXNzaW9ucyAqLwogCXN0cnVjdCBfY29uc3RyYWludEluZm8gKmNoZWNrZXhwcnM7 IC8qIENIRUNLIGNvbnN0cmFpbnRzICovCisJc3RydWN0IF9wZXJpb2RJbmZvICpwZXJpb2RzOwkv KiBQRVJJT0QgZGVmaW5pdGlvbnMgKi8KIAlib29sCQluZWVkc19vdmVycmlkZTsgLyogaGFzIEdF TkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkgKi8KIAljaGFyCSAgICphbW5hbWU7CQkJLyogcmVs YXRpb24gYWNjZXNzIG1ldGhvZCAqLwogCkBAIC00ODAsNiArNDg1LDE2IEBAIHR5cGVkZWYgc3Ry dWN0IF9jb25zdHJhaW50SW5mbwogCWJvb2wJCXNlcGFyYXRlOwkJLyogdHJ1ZSBpZiBtdXN0IGR1 bXAgYXMgc2VwYXJhdGUgaXRlbSAqLwogfSBDb25zdHJhaW50SW5mbzsKIAordHlwZWRlZiBzdHJ1 Y3QgX3BlcmlvZEluZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCVRhYmxlSW5mbyAgKnBl cnRhYmxlOworCWNoYXIJICAgKnBlcnN0YXJ0OwkJLyogdGhlIG5hbWUgb2YgdGhlIHN0YXJ0IGNv bHVtbiAqLworCWNoYXIJICAgKnBlcmVuZDsJCQkvKiB0aGUgbmFtZSBvZiB0aGUgZW5kIGNvbHVt biAqLworCWNoYXIJICAgKnJuZ3R5cGU7CQkvKiB0aGUgbmFtZSBvZiB0aGUgcmFuZ2UgdHlwZSAq LworCWNoYXIJICAgKmNvbm5hbWU7CQkvKiB0aGUgbmFtZSBvZiB0aGUgQ0hFQ0sgY29uc3RyYWlu dCAqLworfSBQZXJpb2RJbmZvOworCiB0eXBlZGVmIHN0cnVjdCBfcHJvY0xhbmdJbmZvCiB7CiAJ RHVtcGFibGVPYmplY3QgZG9iajsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w X3NvcnQuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRleCA0Y2I3NTRjYWE1 NS4uNTYwMmNkYTRkNWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQu YworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTg2LDYgKzg2LDcgQEAg ZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19DT05TVFJBSU5ULAogCVBSSU9fSU5E RVgsCiAJUFJJT19JTkRFWF9BVFRBQ0gsCisJUFJJT19QRVJJT0QsCiAJUFJJT19TVEFUU0VYVCwK IAlQUklPX1JVTEUsCiAJUFJJT19UUklHR0VSLApAQCAtMTIxLDYgKzEyMiw3IEBAIHN0YXRpYyBj b25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJW0RPX0FUVFJERUZdID0gUFJJT19B VFRSREVGLAogCVtET19JTkRFWF0gPSBQUklPX0lOREVYLAogCVtET19JTkRFWF9BVFRBQ0hdID0g UFJJT19JTkRFWF9BVFRBQ0gsCisJW0RPX1BFUklPRF0gPSBQUklPX1BFUklPRCwKIAlbRE9fU1RB VFNFWFRdID0gUFJJT19TVEFUU0VYVCwKIAlbRE9fUlVMRV0gPSBQUklPX1JVTEUsCiAJW0RPX1RS SUdHRVJdID0gUFJJT19UUklHR0VSLApAQCAtMTM3MSw2ICsxMzczLDExIEBAIGRlc2NyaWJlRHVt cGFibGVPYmplY3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgYnVmc2l6ZSkK IAkJCQkJICJGSyBDT05TVFJBSU5UICVzICAoSUQgJWQgT0lEICV1KSIsCiAJCQkJCSBvYmotPm5h bWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJCQlyZXR1cm47CisJCWNhc2UgRE9f UEVSSU9EOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlBFUklPRCAlcyAgKElE ICVkIE9JRCAldSkiLAorCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5v aWQpOworCQkJcmV0dXJuOwogCQljYXNlIERPX1BST0NMQU5HOgogCQkJc25wcmludGYoYnVmLCBi dWZzaXplLAogCQkJCQkgIlBST0NFRFVSQUwgTEFOR1VBR0UgJXMgIChJRCAlZCBPSUQgJXUpIiwK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKaW5kZXggNmEzNmM5MTA4MzMuLmQ0NjNlMzBmZGNjIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMTk0Nyw2 ICsxOTQ3LDggQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFt ZSwKIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbkZST00gcGdfY2F0YWxvZy5wZ19h dHRyaWJ1dGUgYSIpOwogCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICJcbldIRVJFIGEuYXR0cmVs aWQgPSAnJXMnIEFORCBhLmF0dG51bSA+IDAgQU5EIE5PVCBhLmF0dGlzZHJvcHBlZCIsIG9pZCk7 CisJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LCAiXG5BTkQgTk9UIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBwZ19jYXRhbG9nLnBnX3BlcmlvZCBw IFdIRVJFIHAucGVycmVsaWQgPSBhLmF0dHJlbGlkIEFORCBwLnBlcnJhbmdlID0gYS5hdHRudW0p Iik7CiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIlxuT1JERVIgQlkgYS5hdHRudW07Iik7 CiAKIAlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CkBAIC0yMzY5LDYgKzIzNzEsNDAgQEAgZGVz Y3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJUEdyZXN1bHQg ICAqcmVzdWx0ID0gTlVMTDsKIAkJaW50CQkJdHVwbGVzID0gMDsKIAorCQkvKiBwcmludCBwZXJp b2RzICovCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE4MDAwMCkKKwkJeworCQkJcHJpbnRmUFFF eHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkgICJTRUxFQ1QgcXVvdGVfaWRlbnQocC5wZXJuYW1lKSwg cXVvdGVfaWRlbnQocy5hdHRuYW1lKSBBUyBzdGFydGF0dCwgcXVvdGVfaWRlbnQoZS5hdHRuYW1l KSBBUyBlbmRhdHRcbiIKKwkJCQkJCQkgICJGUk9NIHBnX3BlcmlvZCBBUyBwXG4iCisJCQkJCQkJ ICAiSk9JTiBwZ19hdHRyaWJ1dGUgQVMgcyBPTiAocy5hdHRyZWxpZCwgcy5hdHRudW0pID0gKHAu cGVycmVsaWQsIHAucGVyc3RhcnQpXG4iCisJCQkJCQkJICAiSk9JTiBwZ19hdHRyaWJ1dGUgQVMg ZSBPTiAoZS5hdHRyZWxpZCwgZS5hdHRudW0pID0gKHAucGVycmVsaWQsIHAucGVyZW5kKVxuIgor CQkJCQkJCSAgIldIRVJFIHAucGVycmVsaWQgPSAnJXMnXG4iCisJCQkJCQkJICAiT1JERVIgQlkg MTsiLAorCQkJCQkJCSAgb2lkKTsKKwkJCXJlc3VsdCA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwkJ CWlmICghcmVzdWx0KQorCQkJCWdvdG8gZXJyb3JfcmV0dXJuOworCQkJZWxzZQorCQkJCXR1cGxl cyA9IFBRbnR1cGxlcyhyZXN1bHQpOworCisJCQlpZiAodHVwbGVzID4gMCkKKwkJCXsKKwkJCQlw cmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBfKCJQZXJpb2RzOiIpKTsKKwkJCQlmb3IgKGkgPSAw OyBpIDwgdHVwbGVzOyBpKyspCisJCQkJeworCQkJCQkvKiB1bnRyYW5zbGF0ZWQgY29uc3RyYWlu dCBuYW1lIGFuZCBkZWYgKi8KKwkJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIiAgICAlcyAo JXMsICVzKSIsCisJCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAwKSwKKwkJCQkJCQkJ CSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDEpLAorCQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3Vs dCwgaSwgMikpOworCisJCQkJCXByaW50VGFibGVBZGRGb290ZXIoJmNvbnQsIGJ1Zi5kYXRhKTsK KwkJCQl9CisJCQl9CisJCQlQUWNsZWFyKHJlc3VsdCk7CisJCX0KKwogCQkvKiBwcmludCBpbmRl eGVzICovCiAJCWlmICh0YWJsZWluZm8uaGFzaW5kZXgpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCmlu ZGV4IDE2N2Y5MWE2ZTNmLi42MmJiNGZjNjNmYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBAIC02NSw2 ICs2NSw3IEBAIENBVEFMT0dfSEVBREVSUyA6PSBcCiAJcGdfZm9yZWlnbl9zZXJ2ZXIuaCBcCiAJ cGdfdXNlcl9tYXBwaW5nLmggXAogCXBnX2ZvcmVpZ25fdGFibGUuaCBcCisJcGdfcGVyaW9kLmgg XAogCXBnX3BvbGljeS5oIFwKIAlwZ19yZXBsaWNhdGlvbl9vcmlnaW4uaCBcCiAJcGdfZGVmYXVs dF9hY2wuaCBcCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvaGVhcC5oCmluZGV4IGQ2YTJjNzkxMjkwLi5iNTVmZGE3YjY5NiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9oZWFwLmgKQEAgLTExNyw2ICsxMTcsMTAgQEAgZXh0ZXJuIExpc3QgKkFkZFJlbGF0aW9u TmV3Q29uc3RyYWludHMoUmVsYXRpb24gcmVsLAogZXh0ZXJuIHZvaWQgUmVsYXRpb25DbGVhck1p c3NpbmcoUmVsYXRpb24gcmVsKTsKIGV4dGVybiB2b2lkIFNldEF0dHJNaXNzaW5nKE9pZCByZWxp ZCwgY2hhciAqYXR0bmFtZSwgY2hhciAqdmFsdWUpOwogCitleHRlcm4gT2lkIFN0b3JlUGVyaW9k KFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqcGVyaW9kLAorCQkJCQkgICBBdHRyTnVtYmVyIHN0 YXJ0bnVtLCBBdHRyTnVtYmVyIGVuZG51bSwKKwkJCQkJICAgQXR0ck51bWJlciByYW5nZW51bSwg T2lkIGNvbm9pZCk7CisKIGV4dGVybiBOb2RlICpjb29rRGVmYXVsdChQYXJzZVN0YXRlICpwc3Rh dGUsCiAJCQkJCQkgTm9kZSAqcmF3X2RlZmF1bHQsCiAJCQkJCQkgT2lkIGF0dHR5cGlkLApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbWVzb24uYnVpbGQKaW5kZXggZjcwZDFkYWJhNTIuLmQ0NWFhNWZhODYzIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbWVzb24uYnVpbGQKQEAgLTYxLDYgKzYxLDcgQEAgY2F0YWxvZ19oZWFkZXJzID0gWwog ICAncGdfY29sbGF0aW9uLmgnLAogICAncGdfcGFyYW1ldGVyX2FjbC5oJywKICAgJ3BnX3BhcnRp dGlvbmVkX3RhYmxlLmgnLAorICAncGdfcGVyaW9kLmgnLAogICAncGdfcmFuZ2UuaCcsCiAgICdw Z190cmFuc2Zvcm0uaCcsCiAgICdwZ19zZXF1ZW5jZS5oJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfaW5kZXguaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaApp bmRleCA2Yzg5NjM5YTllNC4uMGRlYjZkNGNjOGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfaW5kZXguaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4LmgKQEAg LTQ4LDcgKzQ4LDYgQEAgQ0FUQUxPRyhwZ19pbmRleCwyNjEwLEluZGV4UmVsYXRpb25JZCkgQktJ X1NDSEVNQV9NQUNSTwogCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSwgYnV0 IHdlIGFsbG93IGRpcmVjdCBhY2Nlc3MgdG8gaW5ka2V5ICovCiAJaW50MnZlY3RvcglpbmRrZXkg QktJX0ZPUkNFX05PVF9OVUxMOwkvKiBjb2x1bW4gbnVtYmVycyBvZiBpbmRleGVkIGNvbHMsCiAJ CQkJCQkJCQkJCSAqIG9yIDAgKi8KLQogI2lmZGVmIENBVEFMT0dfVkFSTEVOCiAJb2lkdmVjdG9y CWluZGNvbGxhdGlvbiBCS0lfTE9PS1VQX09QVChwZ19jb2xsYXRpb24pIEJLSV9GT1JDRV9OT1Rf TlVMTDsJLyogY29sbGF0aW9uIGlkZW50aWZpZXJzICovCiAJb2lkdmVjdG9yCWluZGNsYXNzIEJL SV9MT09LVVAocGdfb3BjbGFzcykgQktJX0ZPUkNFX05PVF9OVUxMOyAvKiBvcGNsYXNzIGlkZW50 aWZpZXJzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3BlcmlvZC5oIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wZXJpb2QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uMjUwOGNkNDVhMDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3BlcmlvZC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICoKKyAqIHBnX3BlcmlvZC5oCisgKgkgIGRlZmluaXRpb24gb2YgdGhlICJwZXJpb2QiIHN5 c3RlbSBjYXRhbG9nIChwZ19wZXJpb2QpCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDIxLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAq IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcGVyaW9kLmgKKyAqCisgKiBOT1RFUworICoJICBUaGUg Q2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJ ICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19Q RVJJT0RfSAorI2RlZmluZSBQR19QRVJJT0RfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2ku aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZF9kLmgiCisjaW5jbHVkZSAibm9kZXMvYml0 bWFwc2V0LmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ19wZXJpb2QgZGVmaW5pdGlv bi4gIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ19w ZXJpb2QKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ19wZXJpb2QsODAwMCxQ ZXJpb2RSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsJCQkvKiBPSUQgb2YgdGhlIHBlcmlvZCAq LworCU5hbWVEYXRhCXBlcm5hbWU7CQkvKiBuYW1lIG9mIHBlcmlvZCAqLworCU9pZAkJCXBlcnJl bGlkOwkJLyogT0lEIG9mIHJlbGF0aW9uIGNvbnRhaW5pbmcgdGhpcyBwZXJpb2QgKi8KKwlpbnQx NgkJcGVyc3RhcnQ7CQkvKiBjb2x1bW4gZm9yIHN0YXJ0IHZhbHVlICovCisJaW50MTYJCXBlcmVu ZDsJCQkvKiBjb2x1bW4gZm9yIGVuZCB2YWx1ZSAqLworCWludDE2CQlwZXJyYW5nZTsJCS8qIGNv bHVtbiBmb3IgcmFuZ2UgdmFsdWUgKi8KKwlPaWQJCQlwZXJjb25zdHJhaW50OwkvKiBPSUQgb2Yg KHN0YXJ0IDwgZW5kKSBjb25zdHJhaW50ICovCit9IEZvcm1EYXRhX3BnX3BlcmlvZDsKKworLyog LS0tLS0tLS0tLS0tLS0tLQorICoJCUZvcm1fcGdfcGVyaW9kIGNvcnJlc3BvbmRzIHRvIGEgcG9p bnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHBnX3BlcmlvZCByZWxhdGlv bi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBGb3JtRGF0YV9wZ19wZXJpb2Qg KkZvcm1fcGdfcGVyaW9kOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX3BlcmlvZF9v aWRfaW5kZXgsIDgwMDEsIFBlcmlvZE9iamVjdEluZGV4SWQsIHBnX3BlcmlvZCwgYnRyZWUob2lk IG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3BlcmlvZF9wZXJyZWxpZF9wZXJu YW1lX2luZGV4LCA4MDAyLCBQZXJpb2RSZWxpZE5hbWVJbmRleElkLCBwZ19wZXJpb2QsIGJ0cmVl KHBlcnJlbGlkIG9pZF9vcHMsIHBlcm5hbWUgbmFtZV9vcHMpKTsKKworTUFLRV9TWVNDQUNIRShQ RVJJT0RPSUQsIHBnX3BlcmlvZF9vaWRfaW5kZXgsIDMyKTsKK01BS0VfU1lTQ0FDSEUoUEVSSU9E TkFNRSwgcGdfcGVyaW9kX3BlcnJlbGlkX3Blcm5hbWVfaW5kZXgsIDMyKTsKKworZXh0ZXJuIHZv aWQgUmVtb3ZlUGVyaW9kQnlJZChPaWQgcGVyaW9kSWQpOworCitleHRlcm4gT2lkIGdldF9yZWxh dGlvbl9wZXJpb2Rfb2lkKE9pZCByZWxpZCwgY29uc3QgY2hhciAqcGVybmFtZSwgYm9vbCBtaXNz aW5nX29rKTsKK2V4dGVybiBCaXRtYXBzZXQgKmdldF9wZXJpb2RfYXR0bm9zKE9pZCByZWxpZCk7 CisKKyNlbmRpZgkJCQkJCQkvKiBQR19QRVJJT0RfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19yYW5nZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19yYW5nZS5oCmlu ZGV4IDBiZDNhYjY4OGJkLi4xMGE5NGRkMTFmMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19yYW5nZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcmFuZ2UuaApAQCAt NTksOCArNTksMTAgQEAgdHlwZWRlZiBGb3JtRGF0YV9wZ19yYW5nZSAqRm9ybV9wZ19yYW5nZTsK IAogREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19yYW5nZV9ybmd0eXBpZF9pbmRleCwgMzU0 MiwgUmFuZ2VUeXBpZEluZGV4SWQsIHBnX3JhbmdlLCBidHJlZShybmd0eXBpZCBvaWRfb3BzKSk7 CiBERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19yYW5nZV9ybmdtdWx0aXR5cGlkX2luZGV4LCAyMjI4 LCBSYW5nZU11bHRpcmFuZ2VUeXBpZEluZGV4SWQsIHBnX3JhbmdlLCBidHJlZShybmdtdWx0aXR5 cGlkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3JhbmdlX3JuZ3N1YnR5cGVf cm5ndHlwaWRfaW5kZXgsIDgwMDMsIFJhbmdlU3ViVHlwaWRUeXBpZEluZGV4SWQsIHBnX3Jhbmdl LCBidHJlZShybmdzdWJ0eXBlIG9pZF9vcHMsIHJuZ3R5cGlkIG9pZF9vcHMpKTsKIAogTUFLRV9T WVNDQUNIRShSQU5HRVRZUEUsIHBnX3JhbmdlX3JuZ3R5cGlkX2luZGV4LCA0KTsKK01BS0VfU1lT Q0FDSEUoUkFOR0VTVUJUWVBFLCBwZ19yYW5nZV9ybmdzdWJ0eXBlX3JuZ3R5cGlkX2luZGV4LCA0 KTsKIE1BS0VfU1lTQ0FDSEUoUkFOR0VNVUxUSVJBTkdFLCBwZ19yYW5nZV9ybmdtdWx0aXR5cGlk X2luZGV4LCA0KTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxl Y21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKaW5kZXggODVjYmFkM2Qw YzIuLjYyOGZhNTM3OTZjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNt ZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaApAQCAtNDAsNyArNDAs OCBAQCBleHRlcm4gTE9DS01PREUgQWx0ZXJUYWJsZUdldExvY2tMZXZlbChMaXN0ICpjbWRzKTsK IAogZXh0ZXJuIHZvaWQgQVRFeGVjQ2hhbmdlT3duZXIoT2lkIHJlbGF0aW9uT2lkLCBPaWQgbmV3 T3duZXJJZCwgYm9vbCByZWN1cnNpbmcsIExPQ0tNT0RFIGxvY2ttb2RlKTsKIAotZXh0ZXJuIHZv aWQgQWx0ZXJUYWJsZUludGVybmFsKE9pZCByZWxpZCwgTGlzdCAqY21kcywgYm9vbCByZWN1cnNl KTsKK2V4dGVybiB2b2lkIEFsdGVyVGFibGVJbnRlcm5hbChPaWQgcmVsaWQsIExpc3QgKmNtZHMs IGJvb2wgcmVjdXJzZSwKKwkJCQkJCQkgICBzdHJ1Y3QgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0 ICpjb250ZXh0KTsKIAogZXh0ZXJuIE9pZAlBbHRlclRhYmxlTW92ZUFsbChBbHRlclRhYmxlTW92 ZUFsbFN0bXQgKnN0bXQpOwogCkBAIC0xMDYsNSArMTA3LDYgQEAgZXh0ZXJuIHZvaWQgUmFuZ2VW YXJDYWxsYmFja093bnNSZWxhdGlvbihjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sCiAJCQkJCQkJ CQkJIE9pZCByZWxJZCwgT2lkIG9sZFJlbElkLCB2b2lkICphcmcpOwogZXh0ZXJuIGJvb2wgUGFy dENvbnN0cmFpbnRJbXBsaWVkQnlSZWxDb25zdHJhaW50KFJlbGF0aW9uIHNjYW5yZWwsCiAJCQkJ CQkJCQkJCQkgTGlzdCAqcGFydENvbnN0cmFpbnQpOworZXh0ZXJuIE9pZCBjaG9vc2VfcmFuZ2V0 eXBlX2Zvcl9wZXJpb2QoUGVyaW9kRGVmICpwZXJpb2QpOwogCiAjZW5kaWYJCQkJCQkJLyogVEFC TEVDTURTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIv c3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggOGRhNTYxOGVlMTkuLjgwNzNiZjcw MGI1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMv aW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNDQyLDkgKzQ0MiwxMSBAQCB0eXBlZGVmIHN0 cnVjdCBGb3JQb3J0aW9uT2ZTdGF0ZQogewogCU5vZGVUYWcJCXR5cGU7CiAKLQljaGFyICAgKmZw X3JhbmdlTmFtZTsJCS8qIHRoZSBjb2x1bW4gbmFtZWQgaW4gRk9SIFBPUlRJT04gT0YgKi8KKwlj aGFyICAgKmZwX3JhbmdlTmFtZTsJCS8qIHRoZSBjb2x1bW4vUEVSSU9EIG5hbWVkIGluIEZPUiBQ T1JUSU9OIE9GICovCiAJT2lkCQlmcF9yYW5nZVR5cGU7CQkvKiB0aGUgdHlwZSBvZiB0aGUgRk9S IFBPUlRJT04gT0YgZXhwcmVzc2lvbiAqLwotCWludAkJZnBfcmFuZ2VBdHRubzsJCS8qIHRoZSBh dHRubyBvZiB0aGUgcmFuZ2UgY29sdW1uICovCisJaW50CQlmcF9yYW5nZUF0dG5vOwkJLyogdGhl IGF0dG5vIG9mIHRoZSByYW5nZSBjb2x1bW4gKG9yIDAgZm9yIGEgUEVSSU9EKSAqLworCWludAkJ ZnBfcGVyaW9kU3RhcnRBdHRubzsJLyogdGhlIGF0dG5vIG9mIHRoZSBQRVJJT0Qgc3RhcnQgY29s dW1uIChvciAwIGZvciBhIHJhbmdlKSAqLworCWludAkJZnBfcGVyaW9kRW5kQXR0bm87CQkvKiB0 aGUgYXR0bm8gb2YgdGhlIFBFUklPRCBlbmQgY29sdW1uIChvciAwIGZvciBhIHJhbmdlKSAqLwog CURhdHVtCWZwX3RhcmdldFJhbmdlOwkJLyogdGhlIHJhbmdlIGZyb20gRk9SIFBPUlRJT04gT0Yg Ki8KIAlUeXBlQ2FjaGVFbnRyeSAqZnBfbGVmdG92ZXJzdHlwY2FjaGU7CS8qIHR5cGUgY2FjaGUg ZW50cnkgb2YgdGhlIHJhbmdlICovCiAJVHVwbGVUYWJsZVNsb3QgKmZwX0V4aXN0aW5nOwkJLyog c2xvdCB0byBzdG9yZSBvbGQgdHVwbGUgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAwOGYx MmZjNzljYS4uYjIxMmQ4MzhlYzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTIzMDIsNiAr MjMwMiw3IEBAIHR5cGVkZWYgZW51bSBPYmplY3RUeXBlCiAJT0JKRUNUX09QRVJBVE9SLAogCU9C SkVDVF9PUEZBTUlMWSwKIAlPQkpFQ1RfUEFSQU1FVEVSX0FDTCwKKwlPQkpFQ1RfUEVSSU9ELAog CU9CSkVDVF9QT0xJQ1ksCiAJT0JKRUNUX1BST0NFRFVSRSwKIAlPQkpFQ1RfUFVCTElDQVRJT04s CkBAIC0yMzkwLDYgKzIzOTEsOCBAQCB0eXBlZGVmIGVudW0gQWx0ZXJUYWJsZVR5cGUKIAlBVF9W YWxpZGF0ZUNvbnN0cmFpbnQsCQkvKiB2YWxpZGF0ZSBjb25zdHJhaW50ICovCiAJQVRfQWRkSW5k ZXhDb25zdHJhaW50LAkJLyogYWRkIGNvbnN0cmFpbnQgdXNpbmcgZXhpc3RpbmcgaW5kZXggKi8K IAlBVF9Ecm9wQ29uc3RyYWludCwJCQkvKiBkcm9wIGNvbnN0cmFpbnQgKi8KKwlBVF9BZGRQZXJp b2QsCQkJCS8qIEFERCBQRVJJT0QgKi8KKwlBVF9Ecm9wUGVyaW9kLAkJCQkvKiBEUk9QIFBFUklP RCAqLwogCUFUX1JlQWRkQ29tbWVudCwJCQkvKiBpbnRlcm5hbCB0byBjb21tYW5kcy90YWJsZWNt ZHMuYyAqLwogCUFUX0FsdGVyQ29sdW1uVHlwZSwJCQkvKiBhbHRlciBjb2x1bW4gdHlwZSAqLwog CUFUX0FsdGVyQ29sdW1uR2VuZXJpY09wdGlvbnMsCS8qIGFsdGVyIGNvbHVtbiBPUFRJT05TICgu Li4pICovCkBAIC0yNjcxLDExICsyNjc0LDExIEBAIHR5cGVkZWYgc3RydWN0IFZhcmlhYmxlU2hv d1N0bXQKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlDcmVhdGUgVGFibGUgU3RhdGVt ZW50CiAgKgotICogTk9URTogaW4gdGhlIHJhdyBncmFtLnkgb3V0cHV0LCBDb2x1bW5EZWYgYW5k IENvbnN0cmFpbnQgbm9kZXMgYXJlCi0gKiBpbnRlcm1peGVkIGluIHRhYmxlRWx0cywgYW5kIGNv bnN0cmFpbnRzIGlzIE5JTC4gIEFmdGVyIHBhcnNlIGFuYWx5c2lzLAotICogdGFibGVFbHRzIGNv bnRhaW5zIGp1c3QgQ29sdW1uRGVmcywgYW5kIGNvbnN0cmFpbnRzIGNvbnRhaW5zIGp1c3QKLSAq IENvbnN0cmFpbnQgbm9kZXMgKGluIGZhY3QsIG9ubHkgQ09OU1RSX0NIRUNLIG5vZGVzLCBpbiB0 aGUgcHJlc2VudAotICogaW1wbGVtZW50YXRpb24pLgorICogTk9URTogaW4gdGhlIHJhdyBncmFt Lnkgb3V0cHV0LCBDb2x1bW5EZWYsIFBlcmlvZERlZiwgYW5kIENvbnN0cmFpbnQgbm9kZXMgYXJl CisgKiBpbnRlcm1peGVkIGluIHRhYmxlRWx0czsgcGVyaW9kcyBhbmQgY29uc3RyYWludHMgYXJl IE5JTC4gIEFmdGVyIHBhcnNlIGFuYWx5c2lzLAorICogdGFibGVFbHRzIGNvbnRhaW5zIGp1c3Qg Q29sdW1uRGVmcywgcGVyaW9kcyBjb250YWlucyBqdXN0IFBlcmlvZERlZnMsIGFuZAorICogY29u c3RyYWludHMgY29udGFpbnMganVzdCBDb25zdHJhaW50IG5vZGVzIChpbiBmYWN0LCBvbmx5IENP TlNUUl9DSEVDSyBub2RlcywKKyAqIGluIHRoZSBwcmVzZW50IGltcGxlbWVudGF0aW9uKS4KICAq IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCkBAIC0yNjg0LDYgKzI2ODcsNyBAQCB0eXBl ZGVmIHN0cnVjdCBDcmVhdGVTdG10CiAJTm9kZVRhZwkJdHlwZTsKIAlSYW5nZVZhciAgICpyZWxh dGlvbjsJCS8qIHJlbGF0aW9uIHRvIGNyZWF0ZSAqLwogCUxpc3QJICAgKnRhYmxlRWx0czsJCS8q IGNvbHVtbiBkZWZpbml0aW9ucyAobGlzdCBvZiBDb2x1bW5EZWYpICovCisJTGlzdAkgICAqcGVy aW9kczsJCS8qIHBlcmlvZHMgKGxpc3Qgb2YgUGVyaW9kRGVmIG5vZGVzKSAqLwogCUxpc3QJICAg KmluaFJlbGF0aW9uczsJLyogcmVsYXRpb25zIHRvIGluaGVyaXQgZnJvbSAobGlzdCBvZgogCQkJ CQkJCQkgKiBSYW5nZVZhcikgKi8KIAlQYXJ0aXRpb25Cb3VuZFNwZWMgKnBhcnRib3VuZDsJLyog Rk9SIFZBTFVFUyBjbGF1c2UgKi8KQEAgLTI2OTcsNiArMjcwMSwzMSBAQCB0eXBlZGVmIHN0cnVj dCBDcmVhdGVTdG10CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJLyoganVzdCBkbyBub3RoaW5nIGlm IGl0IGFscmVhZHkgZXhpc3RzPyAqLwogfSBDcmVhdGVTdG10OwogCisKKy8qIC0tLS0tLS0tLS0K KyAqIERlZmluaXRpb25zIGZvciBwZXJpb2RzIGluIENyZWF0ZVN0bXQKKyAqIC0tLS0tLS0tLS0K KyAqLworCit0eXBlZGVmIHN0cnVjdCBQZXJpb2REZWYKK3sKKwlOb2RlVGFnCQl0eXBlOworCU9p ZAkJCW9pZDsJCQkvKiBwZXJpb2Qgb2lkLCBvbmNlIGl0J3MgdHJhbnNmb3JtZWQgKi8KKwljaGFy CSAgICpwZXJpb2RuYW1lOwkJLyogcGVyaW9kIG5hbWUgKi8KKwljaGFyCSAgICpzdGFydGNvbG5h bWU7CS8qIG5hbWUgb2Ygc3RhcnQgY29sdW1uICovCisJY2hhcgkgICAqZW5kY29sbmFtZTsJCS8q IG5hbWUgb2YgZW5kIGNvbHVtbiAqLworCUF0dHJOdW1iZXIJc3RhcnRhdHRudW07CS8qIGF0dG51 bSBvZiB0aGUgc3RhcnQgY29sdW1uICovCisJQXR0ck51bWJlcgllbmRhdHRudW07CQkvKiBhdHRu dW0gb2YgdGhlIGVuZCBjb2x1bW4gKi8KKwlBdHRyTnVtYmVyCXJuZ2F0dG51bTsJCS8qIGF0dG51 bSBvZiB0aGUgR0VORVJBVEVEIHJhbmdlIGNvbHVtbiAqLworCUxpc3QJICAgKm9wdGlvbnM7CQkv KiBvcHRpb25zIGZyb20gV0lUSCBjbGF1c2UgKi8KKwljaGFyCSAgICpjb25zdHJhaW50bmFtZTsJ LyogbmFtZSBvZiB0aGUgQ0hFQ0sgY29uc3RyYWludCAqLworCWNoYXIJICAgKnJhbmdldHlwZW5h bWU7CS8qIG5hbWUgb2YgdGhlIHJhbmdlIHR5cGUgKi8KKwlPaWQJCQljb2x0eXBpZDsJCS8qIHRo ZSBzdGFydC9lbmQgY29sIHR5cGUgKi8KKwlPaWQJCQlybmd0eXBpZDsJCS8qIHRoZSByYW5nZSB0 eXBlIHRvIHVzZSAqLworCWJvb2wJCWNvbGV4aXN0czsJCS8qIHVzZSBhbiBleGlzdGluZyBHRU5F UkFURUQgY29sdW1uICovCisJaW50CQkJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3Ig LTEgaWYgdW5rbm93biAqLworfSBQZXJpb2REZWY7CisKIC8qIC0tLS0tLS0tLS0KICAqIERlZmlu aXRpb25zIGZvciBjb25zdHJhaW50cyBpbiBDcmVhdGVTdG10CiAgKgpAQCAtMzM5MCw2ICszNDE5 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSW5kZXhTdG10CiAJTGlzdAkgICAqaW5kZXhQYXJhbXM7CS8q IGNvbHVtbnMgdG8gaW5kZXg6IGEgbGlzdCBvZiBJbmRleEVsZW0gKi8KIAlMaXN0CSAgICppbmRl eEluY2x1ZGluZ1BhcmFtczsJLyogYWRkaXRpb25hbCBjb2x1bW5zIHRvIGluZGV4OiBhIGxpc3QK IAkJCQkJCQkJCQkgKiBvZiBJbmRleEVsZW0gKi8KKwlQZXJpb2REZWYgICpwZXJpb2Q7CQkJLyog VGhlIHBlcmlvZCBpbmNsdWRlZCBpbiB0aGUgaW5kZXggKi8KIAlMaXN0CSAgICpvcHRpb25zOwkJ LyogV0lUSCBjbGF1c2Ugb3B0aW9uczogYSBsaXN0IG9mIERlZkVsZW0gKi8KIAlOb2RlCSAgICp3 aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbiAocGFydGlhbC1pbmRleCBwcmVkaWNhdGUpICov CiAJTGlzdAkgICAqZXhjbHVkZU9wTmFtZXM7IC8qIGV4Y2x1c2lvbiBvcGVyYXRvciBuYW1lcywg b3IgTklMIGlmIG5vbmUgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggMDFhMTAxZDM3NzYuLjcx OWNkNjRhOTQ1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMjM1MCw2ICsyMzUwLDggQEAgdHlw ZWRlZiBzdHJ1Y3QgRm9yUG9ydGlvbk9mRXhwcgogewogCU5vZGVUYWcJCXR5cGU7CiAJVmFyCQkg ICAqcmFuZ2VWYXI7CQkJLyogUmFuZ2UgY29sdW1uICovCisJVmFyCQkgICAqc3RhcnRWYXI7CQkJ LyogU3RhcnQgY29sdW1uIGlmIFBFUklPRCAqLworCVZhcgkJICAgKmVuZFZhcjsJCQkJLyogRW5k IGNvbHVtbiBpZiBQRVJJT0QgKi8KIAljaGFyCSAgICpyYW5nZV9uYW1lOwkJCS8qIFJhbmdlIG5h bWUgKi8KIAlOb2RlCSAgICp0YXJnZXRSYW5nZTsJCS8qIEZPUiBQT1JUSU9OIE9GIGJvdW5kcyBh cyBhIHJhbmdlICovCiAJT2lkCQkJcmFuZ2VUeXBlOwkJCS8qIHR5cGUgb2YgdGFyZ2V0UmFuZ2Ug Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaAppbmRleCA0MjU5ODdhZmVlNy4uNDY0NTdkNjAwODcgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKQEAgLTMzOCw3ICszMzgsNyBAQCBQR19LRVlXT1JEKCJwYXJ0aXRpb24iLCBQQVJU SVRJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhc3Np bmciLCBQQVNTSU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJwYXNzd29yZCIsIFBBU1NXT1JELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJwYXRoIiwgUEFUSCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQot UEdfS0VZV09SRCgicGVyaW9kIiwgUEVSSU9ELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCitQR19LRVlXT1JEKCJwZXJpb2QiLCBQRVJJT0QsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJwbGFjaW5nIiwgUExBQ0lORywgUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBsYW4iLCBQTEFOLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwbGFucyIsIFBMQU5TLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdXRp bGNtZC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0aWxjbWQuaAppbmRleCAxNDA2NTg5 NDc3OS4uZDg0ZDAyYjAyODAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91 dGlsY21kLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0aWxjbWQuaApAQCAtNDAs NSArNDAsNiBAQCBleHRlcm4gSW5kZXhTdG10ICpnZW5lcmF0ZUNsb25lZEluZGV4U3RtdChSYW5n ZVZhciAqaGVhcFJlbCwKIAkJCQkJCQkJCQkgIFJlbGF0aW9uIHNvdXJjZV9pZHgsCiAJCQkJCQkJ CQkJICBjb25zdCBzdHJ1Y3QgQXR0ck1hcCAqYXR0bWFwLAogCQkJCQkJCQkJCSAgT2lkICpjb25z dHJhaW50T2lkKTsKK2V4dGVybiB2b2lkIHRyYW5zZm9ybVBlcmlvZE9wdGlvbnMoUGVyaW9kRGVm ICpwZXJpb2QpOwogCiAjZW5kaWYJCQkJCQkJLyogUEFSU0VfVVRJTENNRF9IICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xz eXNjYWNoZS5oCmluZGV4IGU3YWQ1MTMxNDZhLi5hY2IwNjQ5MzY0ZiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2Nh Y2hlLmgKQEAgLTk1LDYgKzk1LDggQEAgZXh0ZXJuIE9pZAlnZXRfYXR0dHlwZShPaWQgcmVsaWQs IEF0dHJOdW1iZXIgYXR0bnVtKTsKIGV4dGVybiB2b2lkIGdldF9hdHR0eXBldHlwbW9kY29sbChP aWQgcmVsaWQsIEF0dHJOdW1iZXIgYXR0bnVtLAogCQkJCQkJCQkgIE9pZCAqdHlwaWQsIGludDMy ICp0eXBtb2QsIE9pZCAqY29sbGlkKTsKIGV4dGVybiBEYXR1bSBnZXRfYXR0b3B0aW9ucyhPaWQg cmVsaWQsIGludDE2IGF0dG51bSk7CitleHRlcm4gY2hhciAqZ2V0X3BlcmlvZG5hbWUoT2lkIHBl cmlvZGlkLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlnZXRfcGVyaW9kX29pZChPaWQg cmVsaWQsIGNvbnN0IGNoYXIgKnBlcmlvZG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4g T2lkCWdldF9jYXN0X29pZChPaWQgc291cmNldHlwZWlkLCBPaWQgdGFyZ2V0dHlwZWlkLCBib29s IG1pc3Npbmdfb2spOwogZXh0ZXJuIGNoYXIgKmdldF9jb2xsYXRpb25fbmFtZShPaWQgY29sbG9p ZCk7CiBleHRlcm4gYm9vbCBnZXRfY29sbGF0aW9uX2lzZGV0ZXJtaW5pc3RpYyhPaWQgY29sbG9p ZCk7CkBAIC0xOTksNiArMjAxLDcgQEAgZXh0ZXJuIE9pZAlnZXRfcmFuZ2Vfc3VidHlwZShPaWQg cmFuZ2VPaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmFuZ2VfY29sbGF0aW9uKE9pZCByYW5nZU9pZCk7 CiBleHRlcm4gT2lkCWdldF9yYW5nZV9tdWx0aXJhbmdlKE9pZCByYW5nZU9pZCk7CiBleHRlcm4g T2lkCWdldF9tdWx0aXJhbmdlX3JhbmdlKE9pZCBtdWx0aXJhbmdlT2lkKTsKK2V4dGVybiBPaWQJ Z2V0X3N1YnR5cGVfcmFuZ2UoT2lkIHN1YnR5cGVPaWQpOwogZXh0ZXJuIE9pZAlnZXRfaW5kZXhf Y29sdW1uX29wY2xhc3MoT2lkIGluZGV4X29pZCwgaW50IGF0dG5vKTsKIGV4dGVybiBib29sIGdl dF9pbmRleF9pc3JlcGxpZGVudChPaWQgaW5kZXhfb2lkKTsKIGV4dGVybiBib29sIGdldF9pbmRl eF9pc3ZhbGlkKE9pZCBpbmRleF9vaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMv cGVyaW9kLmggYi9zcmMvaW5jbHVkZS91dGlscy9wZXJpb2QuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uZDAyYzE3MDM2ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv aW5jbHVkZS91dGlscy9wZXJpb2QuaApAQCAtMCwwICsxLDIxIEBACisvKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqCisgKiBwZXJpb2QuaAorICoJICBzdXBwb3J0IGZvciBQb3N0Z3JlcyBwZXJpb2RzLgor ICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBH bG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwg UmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1 ZGUvdXRpbHMvcGVyaW9kLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQ RVJJT0RfSAorI2RlZmluZSBQRVJJT0RfSAorCisjaW5jbHVkZSAiZXhlY3V0b3IvdHVwdGFibGUu aCIKKworZXh0ZXJuIERhdHVtIHBlcmlvZF90b19yYW5nZShUdXBsZVRhYmxlU2xvdCAqc2xvdCwg aW50IHN0YXJ0YXR0bm8sIGludCBlbmRhdHRubywgT2lkIHJhbmdldHlwZSk7CisKKyNlbmRpZgkJ CQkJCQkvKiBQRVJJT0RfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2Rk bF9kZXBhcnNlL3Rlc3RfZGRsX2RlcGFyc2UuYyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9kZGxf ZGVwYXJzZS90ZXN0X2RkbF9kZXBhcnNlLmMKaW5kZXggMjc1OGFlODJkN2IuLmQ5MGI0ODRmMzRk IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZGRsX2RlcGFyc2UvdGVzdF9kZGxf ZGVwYXJzZS5jCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9kZGxfZGVwYXJzZS90ZXN0X2Rk bF9kZXBhcnNlLmMKQEAgLTE4Myw2ICsxODMsMTIgQEAgZ2V0X2FsdGVydGFibGVfc3ViY21kaW5m byhQR19GVU5DVElPTl9BUkdTKQogCQkJY2FzZSBBVF9Ecm9wQ29uc3RyYWludDoKIAkJCQlzdHJ0 eXBlID0gIkRST1AgQ09OU1RSQUlOVCI7CiAJCQkJYnJlYWs7CisJCQljYXNlIEFUX0FkZFBlcmlv ZDoKKwkJCQlzdHJ0eXBlID0gIkFERCBQRVJJT0QiOworCQkJCWJyZWFrOworCQkJY2FzZSBBVF9E cm9wUGVyaW9kOgorCQkJCXN0cnR5cGUgPSAiRFJPUCBQRVJJT0QiOworCQkJCWJyZWFrOwogCQkJ Y2FzZSBBVF9SZUFkZENvbW1lbnQ6CiAJCQkJc3RydHlwZSA9ICIocmUpIEFERCBDT01NRU5UIjsK IAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3Bv cnRpb25fb2Yub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5v dXQKaW5kZXggZjQ5M2E2N2IwYWQuLjY1NzJmNTkzOGY2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dApAQCAtNjM4LDYgKzYzOCw0NCBAQCBTRUxFQ1Qg KiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKICBbMyw0 KSB8IHtbMjAxOC0wMS0wMSwpfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCB0aHJlZQogKDYgcm93cykKIAorRFJPUCBUQUJMRSBmb3Jf cG9ydGlvbl9vZl90ZXN0MjsKKy0tIFRlc3Qgd2l0aCBQRVJJT0RzCitDUkVBVEUgVEFCTEUgZm9y X3BvcnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisgIHZhbGlkX2Zy b20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIG5hbWUgdGV4dCBOT1QgTlVMTCwKKyAgUEVS SU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCBm b3JfcG9ydGlvbl9vZl90ZXN0Ml9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK1ZBTFVFUwor KCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnLCAnb25lJyksCisoJ1sxLDIpJywg JzIwMTgtMDItMDQnLCAnMjAxOC0wMy0wMycsICdvbmUnKSwKKygnWzEsMiknLCAnMjAxOC0wMy0w MycsICcyMDE4LTA0LTA0JywgJ29uZScpLAorKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgt MDUtMDEnLCAndHdvJyksCisoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBudWxsLCAndGhyZWUnKTsK KzsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0xMCcgVE8gJzIwMTgtMDItMTAnCitTRVQgbmFtZSA9ICdvbmVeMScKK1dI RVJFIGlkID0gJ1sxLDIpJzsKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOC0wMi0xNScKK1dI RVJFIGlkID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBu YW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCisgWzEsMikg fCAyMDE4LTAxLTAyIHwgMjAxOC0wMS0xMCB8IG9uZQorIFsxLDIpIHwgMjAxOC0wMS0xMCB8IDIw MTgtMDItMDMgfCBvbmVeMQorIFsxLDIpIHwgMjAxOC0wMi0wNCB8IDIwMTgtMDItMTAgfCBvbmVe MQorIFsxLDIpIHwgMjAxOC0wMi0xMCB8IDIwMTgtMDMtMDMgfCBvbmUKKyBbMSwyKSB8IDIwMTgt MDMtMDMgfCAyMDE4LTA0LTA0IHwgb25lCisgWzIsMykgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0x NSB8IHR3bworIFsyLDMpIHwgMjAxOC0wMi0xNSB8IDIwMTgtMDUtMDEgfCB0d28KKyBbMyw0KSB8 IDIwMTgtMDEtMDEgfCAgICAgICAgICAgIHwgdGhyZWUKKyg4IHJvd3MpCisKIERST1AgVEFCTEUg Zm9yX3BvcnRpb25fb2ZfdGVzdDI7CiAtLSBUZXN0IHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZQog Q1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGVyaW9kcy5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BlcmlvZHMub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5lZmQzYTg0NmFiOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcGVyaW9kcy5vdXQKQEAgLTAsMCArMSwyNjcgQEAKKy8qIFN5c3RlbSBwZXJpb2Rz IGFyZSBub3QgaW1wbGVtZW50ZWQgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMg ZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBzeXN0ZW1fdGltZSAoZHMsIGRlKSk7CitFUlJPUjog IFBFUklPRCBGT1IgU1lTVEVNX1RJTUUgaXMgbm90IHN1cHBvcnRlZAorTElORSAyOiBjcmVhdGUg dGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3Igc3kuLi4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CisvKiBQZXJpb2RzIG11c3Qgc3BlY2lmeSBhY3R1YWwgY29sdW1ucyAqLworY3JlYXRlIHRhYmxl IHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGJvZ3VzLCBk ZSkpOworRVJST1I6ICBjb2x1bW4gImJvZ3VzIiBvZiByZWxhdGlvbiAicHQiIGRvZXMgbm90IGV4 aXN0CitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlv ZCBmb3IgcCAoZHMsIGJvZ3VzKSk7CitFUlJPUjogIGNvbHVtbiAiYm9ndXMiIG9mIHJlbGF0aW9u ICJwdCIgZG9lcyBub3QgZXhpc3QKKy8qIERhdGEgdHlwZXMgbXVzdCBtYXRjaCBleGFjdGx5ICov CitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIHRpbWVzdGFtcCwgcGVy aW9kIGZvciBwIChkcywgZGUpKTsKK0VSUk9SOiAgc3RhcnQgYW5kIGVuZCBjb2x1bW5zIG9mIHBl cmlvZCBtdXN0IGJlIG9mIHNhbWUgdHlwZQorY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBk cyB0ZXh0IGNvbGxhdGUgIkMiLCBkZSB0ZXh0IGNvbGxhdGUgIlBPU0lYIiwgcGVyaW9kIGZvciBw IChkcywgZGUpKTsKK0VSUk9SOiAgc3RhcnQgYW5kIGVuZCBjb2x1bW5zIG9mIHBlcmlvZCBtdXN0 IGhhdmUgc2FtZSBjb2xsYXRpb24KKy8qIFBlcmlvZHMgbXVzdCBoYXZlIGEgZGVmYXVsdCBCVHJl ZSBvcGVyYXRvciBjbGFzcyAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyB4bWws IGRlIHhtbCwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsKK0VSUk9SOiAgbm8gcmFuZ2UgdHlwZSBm b3IgeG1sIGZvdW5kIGZvciBwZXJpb2QgcAorSElOVDogIFlvdSBjYW4gZGVmaW5lIGEgY3VzdG9t IHJhbmdlIHR5cGUgd2l0aCBDUkVBVEUgVFlQRQorLyogUGVyaW9kIGFuZCBjb2x1bW4gbmFtZXMg YXJlIGluIHRoZSBzYW1lIG5hbWVzcGFjZSAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2Vy LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIGN0aWQgKGRzLCBkZSkpOworRVJST1I6ICBw ZXJpb2QgbmFtZSAiY3RpZCIgY29uZmxpY3RzIHdpdGggYSBzeXN0ZW0gY29sdW1uIG5hbWUKK2Ny ZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBp ZCAoZHMsIGRlKSk7CitFUlJPUjogIHBlcmlvZCBuYW1lICJpZCIgY29uZmxpY3RzIHdpdGggYSBj b2x1bW4gbmFtZQorLyogUGVyaW9kIG5hbWUgY2FuJ3QgYmUgZ2l2ZW4gbW9yZSB0aGFuIG9uY2Ug Ki8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9k IGZvciBwIChkcywgZGUpLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworRVJST1I6ICBwZXJpb2Qg bmFtZSAicCIgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlCisvKiBOb3cgbWFrZSBvbmUgdGhhdCB3 b3JrcyAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBw ZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworLyogU0VMRUNUICogZXhjbHVkZXMgdGhlIFBFUklPRCAq LworaW5zZXJ0IGludG8gcHQgdmFsdWVzICgxLCAnMjAwMC0wMS0wMScsICcyMDAxLTAxLTAxJyk7 CitzZWxlY3QgKiBmcm9tIHB0OworIGlkIHwgICAgIGRzICAgICB8ICAgICBkZSAgICAgCistLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgMSB8IDAxLTAxLTIwMDAgfCAwMS0wMS0yMDAx CisoMSByb3cpCisKKy8qIFlvdSBjYW4gZ2V0IGl0IGlmIHlvdSB3YW50ICovCitzZWxlY3QgKiwg cCBmcm9tIHB0OworIGlkIHwgICAgIGRzICAgICB8ICAgICBkZSAgICAgfCAgICAgICAgICAgIHAg ICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgIDEgfCAwMS0wMS0yMDAwIHwgMDEtMDEtMjAwMSB8IFswMS0wMS0yMDAw LDAxLTAxLTIwMDEpCisoMSByb3cpCisKKy8qIFR3byBhcmUgb2theSAqLworY3JlYXRlIHRhYmxl IHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwMSAoZHMsIGRl KSwgcGVyaW9kIGZvciBwMiAoZHMsIGRlKSk7Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3Jl YXRpbmcgR0VORVJBVEVEIGNvbHVtbjogd29ya3MgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGlu dGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBh bHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRl KSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CitcZCBwdDIKKyAgICAgICAgICAgICAgICBUYWJs ZSAicHVibGljLnB0MiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZHMg ICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZGUgICAgIHwgZGF0ZSAg ICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHAgKGRzLCBkZSkKK0No ZWNrIGNvbnN0cmFpbnRzOgorICAgICJwdDJfcF9jaGVjayIgQ0hFQ0sgKGRzIDwgZGUpCisKK2Ry b3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBi ZWNhdXNlIHRoZSBjb2wgaXNuJ3QgdGhlcmUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVn ZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlz dHMgPSB0cnVlKSk7CitFUlJPUjogIE5vIGNvbHVtbiBmb3VuZCB3aXRoIG5hbWUgcAorLyogU2tp cCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBvcHRpb24gaGFz IGFuIGludmFsaWQgdmFsdWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRh dGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSAnd2hh dGV2ZXInKSk7CitFUlJPUjogIGNvbGV4aXN0cyByZXF1aXJlcyBhIEJvb2xlYW4gdmFsdWUKKy8q IFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1u IGlzIG5vdCBOT1QgTlVMTCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0 ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2UgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRz LCBkZSkpIHN0b3JlZCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRy dWUpKTsKK0VSUk9SOiAgUGVyaW9kIHAgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBhbGxv d3MgbnVsbHMKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVz ZSB0aGUgY29sdW1uIGlzIG5vdCBHRU5FUkFURUQgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGlu dGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsLCBwZXJpb2QgZm9y IHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworRVJST1I6ICBQZXJpb2QgcCB1 c2VzIGEgbm9uLWdlbmVyYXRlZCBjb2x1bW4KKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNv bHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIEdFTkVSQVRFRCBidXQgd2l0aCB0aGUg d3JvbmcgZXhwcmVzc2lvbiAqLworLS0gVE9ETzoKKy0tIGNyZWF0ZSB0YWJsZSBwdDIgKGlkIGlu dGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBh bHdheXMgYXMgKGRhdGVyYW5nZShkZSwgZHMpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRl KSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBj b2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyB0aGUgd3JvbmcgdHlwZSAqLworY3Jl YXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCB0c3JhbmdlIG5v dCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKHRzcmFuZ2UoZHMsIGRlKSkgc3RvcmVkLCBwZXJp b2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworRVJST1I6ICBQZXJp b2QgcCB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB3aXRoIHRoZSB3cm9uZyB0eXBlCisvKiBTa2lw IGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBp bmhlcml0ZWQgKi8KK2NyZWF0ZSB0YWJsZSBwdDJwYXJlbnQgKGlkIGludGVnZXIsIGRzIGRhdGUs IGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVy YW5nZShkcywgZGUpKSBzdG9yZWQpOworY3JlYXRlIHRhYmxlIHB0MiAocGVyaW9kIGZvciBwIChk cywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKSBpbmhlcml0cyAocHQycGFyZW50KTsKK0VS Uk9SOiAgSW5oZXJpdGluZyBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gYSB0YWJsZSBoYXMgYSBQRVJJ T0QKK2Ryb3AgdGFibGUgcHQycGFyZW50OworLyoKKyAqIEFMVEVSIFRBQkxFIHRlc3RzCisgKi8K K2FsdGVyIHRhYmxlIHB0IGRyb3AgcGVyaW9kIGZvciBwOworYWx0ZXIgdGFibGUgcHQgYWRkIHBl cmlvZCBmb3Igc3lzdGVtX3RpbWUgKGRzLCBkZSk7CitFUlJPUjogIFBFUklPRCBGT1IgU1lTVEVN X1RJTUUgaXMgbm90IHN1cHBvcnRlZAorYWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBmb3IgcCAo ZHMsIGRlKTsKKy8qIEFkZGluZyBhIHNlY29uZCBvbmUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlk IGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcDEgKGRzLCBkZSkpOworYWx0 ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAyIChkcywgZGUpOworZHJvcCB0YWJsZSBwdDI7 CisvKiBDYW4ndCBkcm9wIGl0cyBjb2x1bW5zICovCithbHRlciB0YWJsZSBwdCBkcm9wIGNvbHVt biBkczsKK0VSUk9SOiAgY2Fubm90IGRyb3AgY29sdW1uIGRzIG9mIHRhYmxlIHB0IGJlY2F1c2Ug b3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHBlcmlvZCBwIG9uIHRhYmxlIHB0 IGRlcGVuZHMgb24gY29sdW1uIGRzIG9mIHRhYmxlIHB0CitISU5UOiAgVXNlIERST1AgLi4uIENB U0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorYWx0ZXIgdGFibGUgcHQg ZHJvcCBjb2x1bW4gZGU7CitFUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVtbiBkZSBvZiB0YWJsZSBw dCBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBwZXJpb2QgcCBv biB0YWJsZSBwdCBkZXBlbmRzIG9uIGNvbHVtbiBkZSBvZiB0YWJsZSBwdAorSElOVDogIFVzZSBE Uk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy8qIENh bid0IGNoYW5nZSB0aGUgZGF0YSB0eXBlcyAqLworYWx0ZXIgdGFibGUgcHQgYWx0ZXIgY29sdW1u IGRzIHR5cGUgdGltZXN0YW1wOworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSBvZiBhIGNvbHVt biB1c2VkIGJ5IGEgcGVyaW9kCitERVRBSUw6ICBwZXJpb2QgcCBvbiB0YWJsZSBwdCBkZXBlbmRz IG9uIGNvbHVtbiAiZHMiCithbHRlciB0YWJsZSBwdCBhbHRlciBjb2x1bW4gZHMgdHlwZSB0aW1l c3RhbXA7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlIG9mIGEgY29sdW1uIHVzZWQgYnkgYSBw ZXJpb2QKK0RFVEFJTDogIHBlcmlvZCBwIG9uIHRhYmxlIHB0IGRlcGVuZHMgb24gY29sdW1uICJk cyIKKy8qIGNvbHVtbi9wZXJpb2QgbmFtZXNwYWNlIGNvbmZsaWN0cyAqLworYWx0ZXIgdGFibGUg cHQgYWRkIGNvbHVtbiBwIGludGVnZXI7CitFUlJPUjogIGNvbHVtbiBuYW1lICJwIiBjb25mbGlj dHMgd2l0aCBhIHBlcmlvZCBuYW1lCithbHRlciB0YWJsZSBwdCByZW5hbWUgY29sdW1uIGlkIHRv IHA7CitFUlJPUjogIGNvbHVtbiBuYW1lICJwIiBjb25mbGljdHMgd2l0aCBhIHBlcmlvZCBuYW1l CithbHRlciB0YWJsZSBwdCBhZGQgcGVyaW9kIGZvciB0YWJsZW9pZCAoZHMsIGRlKTsKK0VSUk9S OiAgcGVyaW9kIG5hbWUgInRhYmxlb2lkIiBjb25mbGljdHMgd2l0aCBhIHN5c3RlbSBjb2x1bW4g bmFtZQorYWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBmb3IgIi4uLi4uLi4ucGcuZHJvcHBlZC40 Li4uLi4uLi4iIChkcywgZGUpOworRVJST1I6ICBwZXJpb2QgbmFtZSAiLi4uLi4uLi5wZy5kcm9w cGVkLjQuLi4uLi4uLiIgY29uZmxpY3RzIHdpdGggYSBjb2x1bW4gbmFtZQorLyogYWRkaW5nIGNv bHVtbnMgYW5kIHRoZSBwZXJpb2QgYXQgdGhlIHNhbWUgdGltZSAqLworY3JlYXRlIHRhYmxlIHB0 MiAoaWQgaW50ZWdlcik7CithbHRlciB0YWJsZSBwdDIgYWRkIGNvbHVtbiBkcyBkYXRlLCBhZGQg Y29sdW1uIGRlIGRhdGUsIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSk7Citkcm9wIHRhYmxlIHB0 MjsKKy8qIEFtYmlndW91cyByYW5nZSB0eXBlcyByYWlzZSBhbiBlcnJvciAqLworY3JlYXRlIHR5 cGUgbXlkYXRlcmFuZ2UgYXMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKK2NyZWF0ZSB0YWJsZSBwdDIg KGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsKK0VSUk9S OiAgYW1iaWd1b3VzIHJhbmdlIGZvciB0eXBlIGRhdGUKKy8qIFlvdSBjYW4gZ2l2ZSBhbiBleHBs aWNpdCByYW5nZSB0eXBlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnQsIGRzIGRhdGUsIGRl IGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAnbXlkYXRlcmFu Z2UnKSk7Citkcm9wIHR5cGUgbXlkYXRlcmFuZ2U7CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5cGUg bXlkYXRlcmFuZ2UgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAg cGVyaW9kIHAgb24gdGFibGUgcHQyIGRlcGVuZHMgb24gdHlwZSBteWRhdGVyYW5nZQorSElOVDog IFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4K K2Ryb3AgdHlwZSBteWRhdGVyYW5nZSBjYXNjYWRlOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBwZXJpb2QgcCBvbiB0YWJsZSBwdDIKK2Ryb3AgdGFibGUgcHQyOworY3JlYXRlIHRhYmxlIHB0 MiAoaWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAo cmFuZ2V0eXBlID0gJ2RhdGVyYW5nZScpKTsKKy8qIFJhbmdlIHR5cGUgaXMgbm90IGZvdW5kICov CitjcmVhdGUgdGFibGUgcHQzIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3Ig cCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAnbm90YXJhbmdlJykpOworRVJST1I6ICBSYW5n ZSB0eXBlIG5vdGFyYW5nZSBub3QgZm91bmQKKy8qIFJhbmdlIHR5cGUgaXMgdGhlIHdyb25nIHR5 cGUgKi8KK2NyZWF0ZSB0YWJsZSBwdDMgKGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9k IGZvciBwIChkcywgZGUpIHdpdGggKHJhbmdldHlwZSA9ICd0c3R6cmFuZ2UnKSk7CitFUlJPUjog IFJhbmdlIHR5cGUgdHN0enJhbmdlIGRvZXMgbm90IG1hdGNoIGNvbHVtbiB0eXBlIGRhdGUKK2Ry b3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiB3b3JrcyAq LworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRl cmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0 b3JlZCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChj b2xleGlzdHMgPSB0cnVlKTsKK1xkIHB0MgorICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMu cHQyIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQg CistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBp ZCAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkcyAgICAgfCBkYXRl ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkZSAgICAgfCBkYXRlICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgcCAoZHMsIGRlKQorQ2hlY2sgY29uc3Ry YWludHM6CisgICAgInB0Ml9wX2NoZWNrIiBDSEVDSyAoZHMgPCBkZSkKKworZHJvcCB0YWJsZSBw dDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhl IGNvbCBpc24ndCB0aGVyZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0 ZSwgZGUgZGF0ZSk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3 aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK0VSUk9SOiAgY29sdW1uICJwIiBvZiByZWxhdGlvbiAi cHQyIiBkb2VzIG5vdCBleGlzdAorZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdF TkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIG9wdGlvbiBoYXMgYW4gaW52YWxpZCB2 YWx1ZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwg cCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBk ZSkpIHN0b3JlZCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3 aXRoIChjb2xleGlzdHMgPSAnd2hhdGV2ZXInKTsKK0VSUk9SOiAgY29sZXhpc3RzIHJlcXVpcmVz IGEgQm9vbGVhbiB2YWx1ZQorZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVS QVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBub3QgTk9UIE5VTEwgKi8K K2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJh bmdlIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0 ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0g dHJ1ZSk7CitFUlJPUjogIFBlcmlvZCBwIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgYWxs b3dzIG51bGxzCitkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNv bHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBHRU5FUkFURUQgKi8KK2NyZWF0 ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5v dCBudWxsKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGgg KGNvbGV4aXN0cyA9IHRydWUpOworRVJST1I6ICBQZXJpb2QgcCB1c2VzIGEgbm9uLWdlbmVyYXRl ZCBjb2x1bW4KK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29s dW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgR0VORVJBVEVEIGJ1dCB3aXRoIHRoZSB3 cm9uZyBleHByZXNzaW9uICovCistLSBUT0RPOgorLS0gY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50 ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoZGF0ZXJhbmdlKGRlLCBkcykpIHN0b3JlZCk7CistLSBhbHRlciB0YWJsZSBwdDIg YWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKKy8qIFNr aXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlz IHRoZSB3cm9uZyB0eXBlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRl LCBkZSBkYXRlLCBwIHRzcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAodHNyYW5n ZShkcywgZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRz LCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CitFUlJPUjogIFBlcmlvZCBwIHVzZXMgYSBn ZW5lcmF0ZWQgY29sdW1uIHdpdGggdGhlIHdyb25nIHR5cGUKK2Ryb3AgdGFibGUgcHQyOworLyog U2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4g aXMgaW5oZXJpdGVkICovCitjcmVhdGUgdGFibGUgcHQycGFyZW50IChpZCBpbnRlZ2VyLCBkcyBk YXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChk YXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2NyZWF0ZSB0YWJsZSBwdDIgKCkgaW5oZXJpdHMg KHB0MnBhcmVudCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3 aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK0VSUk9SOiAgUGVyaW9kIHAgdXNlcyBhIGdlbmVyYXRl ZCBjb2x1bW4gdGhhdCBpcyBpbmhlcml0ZWQKK2Ryb3AgdGFibGUgcHQyOworZHJvcCB0YWJsZSBw dDJwYXJlbnQ7CisvKiBDUkVBVEUgVEFCTEUgKExJS0UgLi4uKSAqLworLyogUGVyaW9kcyBhcmUg bm90IGNvcGllZCBieSBMSUtFLCBzbyB0aGVpciBjb2x1bW5zIGFyZW4ndCBlaXRoZXIgKi8KK2Ny ZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQpOworXGQgcHQyCisgICAgICAgICAgICAgICAgVGFibGUg InB1YmxpYy5wdDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg RGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLQorIGlkICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGRzICAg ICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGRlICAgICB8IGRhdGUgICAg fCAgICAgICAgICAgfCAgICAgICAgICB8IAorCitkcm9wIHRhYmxlIHB0MjsKKy8qIENhbiBhZGQg YSBwZXJpb2QgcmVmZXJyaW5nIHRvIExJS0UnZCBjb2x1bW5zICovCitjcmVhdGUgdGFibGUgbm90 X3AgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUpOworY3JlYXRlIHRhYmxlIHB0MiAobGlr ZSBub3RfcCwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsKK1xkIHB0MgorICAgICAgICAgICAgICAg IFRhYmxlICJwdWJsaWMucHQyIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0KKyBpZCAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK KyBkcyAgICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkZSAgICAgfCBk YXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgcCAoZHMsIGRl KQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInB0Ml9wX2NoZWNrIiBDSEVDSyAoZHMgPCBkZSkK KworZHJvcCB0YWJsZSBwdDI7CisvKiBDYW4gYWRkIGEgcGVyaW9kIHdpdGggdGhlIHNhbWUgbmFt ZSAqLworY3JlYXRlIHRhYmxlIHB0MiAobGlrZSBwdCwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsK K1xkIHB0MgorICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucHQyIgorIENvbHVtbiB8ICBU eXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkcyAgICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAKKyBkZSAgICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK K1BlcmlvZHM6CisgICAgcCAoZHMsIGRlKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInB0Ml9w X2NoZWNrIiBDSEVDSyAoZHMgPCBkZSkKKworZHJvcCB0YWJsZSBwdDI7CisvKiBDYW4gYWRkIGEg cGVyaW9kIHdpdGggYSBkaWZmZXJlbnQgbmFtZSAqLworY3JlYXRlIHRhYmxlIHB0MiAobGlrZSBw dCwgcGVyaW9kIGZvciBwMiAoZHMsIGRlKSk7CitcZCBwdDIKKyAgICAgICAgICAgICAgICBUYWJs ZSAicHVibGljLnB0MiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZHMg ICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZGUgICAgIHwgZGF0ZSAg ICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHAyIChkcywgZGUpCitD aGVjayBjb25zdHJhaW50czoKKyAgICAicHQyX3AyX2NoZWNrIiBDSEVDSyAoZHMgPCBkZSkKKwor ZHJvcCB0YWJsZSBwdDI7CisvKiBDYW4ndCBhZGQgYSBwZXJpb2Qgd2hvc2UgbmFtZSBjb25mbGlj dHMgd2l0aCBhIExJS0UnZCBjb2x1bW4gKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQsIHBl cmlvZCBmb3IgaWQgKGRzLCBkZSkpOworRVJST1I6ICBwZXJpb2QgbmFtZSAiaWQiIGNvbmZsaWN0 cyB3aXRoIGEgY29sdW1uIG5hbWUKKy8qIENSRUFURSBUQUxCRSBJTkhFUklUUyAqLworLyogQ2Fu J3QgaW5oZXJpdCBmcm9tIGEgdGFibGUgd2l0aCBhIHBlcmlvZCAqLworY3JlYXRlIHRhYmxlIHB0 MiAobmFtZSB0ZXh0KSBpbmhlcml0cyAocHQpOworRVJST1I6ICBJbmhlcml0aW5nIGZyb20gYSB0 YWJsZSB3aXRoIGEgUEVSSU9EIGlzIG5vdCBzdXBwb3J0ZWQKKy8qIENhbid0IGluaGVyaXQgd2l0 aCBhIHBlcmlvZCAqLworY3JlYXRlIHRhYmxlIHB0MiAoZDJzIGRhdGUsIGQyZSBkYXRlLCBwZXJp b2QgZm9yIHAgKGQycywgZDJlKSkgaW5oZXJpdHMgKG5vdF9wKTsKK0VSUk9SOiAgSW5oZXJpdGlu ZyBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gYSB0YWJsZSBoYXMgYSBQRVJJT0QKK2Ryb3AgdGFibGUg bm90X3A7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3Zl cmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91 dAppbmRleCA3MTY4OWZkYmJjMC4uYzZiODU2MzVkOTggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dApAQCAtMTUzLDYgKzE1Myw3NiBAQCBTRUxF Q1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQg V0hFUkUgY29ubmFtZSA9ICd0ZQogIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcm5nMl9w ayBPTiB0ZW1wb3JhbF9ybmcyIFVTSU5HIGdpc3QgKGlkMSwgaWQyLCB2YWxpZF9hdCkKICgxIHJv dykKIAorLS0gUEsgd2l0aCBvbmUgY29sdW1uIHBsdXMgYSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZh bGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcGVyCisgICAgICAgICAgICAg ICBUYWJsZSAicHVibGljLnRlbXBvcmFsX3BlciIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5n ZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9wZXJfcGsiIFBSSU1BUlkgS0VZIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1w b3JhbF9wZXJfdmFsaWRfYXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQor CitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hF UkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXJfcGsnOworICAgICAgICAgICAgcGdfZ2V0X2NvbnN0 cmFpbnRkZWYgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CisoMSByb3cpCisKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZS T00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Blcl9wayc7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFVOSVFV RSBJTkRFWCB0ZW1wb3JhbF9wZXJfcGsgT04gdGVtcG9yYWxfcGVyIFVTSU5HIGdpc3QgKGlkLCB2 YWxpZF9hdCkKKygxIHJvdykKKworLS0gUEsgd2l0aCB0d28gY29sdW1ucyBwbHVzIGEgUEVSSU9E OgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlcjIgKAorICBpZDEgaW50NHJhbmdlLAorICBpZDIg aW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJ T0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRl bXBvcmFsX3BlcjJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX3BlcjIKKyAgICAgICAgICAgICAgVGFibGUgInB1Ymxp Yy50ZW1wb3JhbF9wZXIyIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZDEgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKKyBpZDIgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90 IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAg fCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1Bl cmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6Cisg ICAgInRlbXBvcmFsX3BlcjJfcGsiIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9wZXIyX3Zh bGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKKworU0VMRUNUIHBn X2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUg PSAndGVtcG9yYWxfcGVyMl9wayc7CisgICAgICAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRl ZiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKKygxIHJvdykKKworU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwg dHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyMl9w ayc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcGVyMl9wayBPTiB0ZW1w b3JhbF9wZXIyIFVTSU5HIGdpc3QgKGlkMSwgaWQyLCB2YWxpZF9hdCkKKygxIHJvdykKKwogLS0g UEsgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlOgogQ1JFQVRFIFRZUEUgdGV4dHJhbmdlMiBBUyBy YW5nZSAoc3VidHlwZT10ZXh0LCBjb2xsYXRpb249IkMiKTsKIENSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ybmczICgKQEAgLTMwMCw2ICszNzAsNzggQEAgU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25p bmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGUKICgx IHJvdykKIAogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworLS0gVU5JUVVFIHdpdGggb25lIGNv bHVtbiBwbHVzIGEgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlcjMgKAorICBpZCBp bnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklP RCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfcGVyM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsK K1xkIHRlbXBvcmFsX3BlcjMKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9w ZXIzIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAg fCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2 YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6 CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRl bXBvcmFsX3BlcjNfdXEiIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitD aGVjayBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfcGVyM192YWxpZF9hdF9jaGVjayIgQ0hF Q0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRl ZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3BlcjNf dXEnOworICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5k aWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFs X3BlcjNfdXEnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2luZGV4 ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBDUkVBVEUgVU5JUVVFIElOREVYIHRlbXBvcmFsX3BlcjNfdXEgT04gdGVtcG9yYWxf cGVyMyBVU0lORyBnaXN0IChpZCwgdmFsaWRfYXQpCisoMSByb3cpCisKK0RST1AgVEFCTEUgdGVt cG9yYWxfcGVyMzsKKy0tIFVOSVFVRSB3aXRoIHR3byBjb2x1bW5zIHBsdXMgYSBQRVJJT0Q6CitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMyAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBG T1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfcGVyM191cSBVTklRVUUgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQor KTsKK1xkIHRlbXBvcmFsX3BlcjMKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3Jh bF9wZXIzIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0KKyBpZDEgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKKyBpZDIgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK KyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxp ZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6Cisg ICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBv cmFsX3BlcjNfdXEiIFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfcGVyM192YWxpZF9hdF9jaGVjayIg Q0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWlu dGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Bl cjNfdXEnOworICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFVOSVFVRSAo aWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisKK1NFTEVDVCBw Z19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVS RSBjb25uYW1lID0gJ3RlbXBvcmFsX3BlcjNfdXEnOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgVU5JUVVFIElO REVYIHRlbXBvcmFsX3BlcjNfdXEgT04gdGVtcG9yYWxfcGVyMyBVU0lORyBnaXN0IChpZDEsIGlk MiwgdmFsaWRfYXQpCisoMSByb3cpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMzsKIC0tIFVO SVFVRSB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGU6CiBDUkVBVEUgVFlQRSB0ZXh0cmFuZ2UyIEFT IHJhbmdlIChzdWJ0eXBlPXRleHQsIGNvbGxhdGlvbj0iQyIpOwogQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3JuZzMgKApAQCAtMzc3LDYgKzUxOSwxMDYgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWwzCiAg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM191cQogICBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKTsKIERST1AgVEFCTEUgdGVtcG9yYWwzOworLS0gUFJJTUFSWSBLRVkgd2l0 aCBQRVJJT0QgYWxyZWFkeSB0aGVyZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9E IEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsMworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsKKyAgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1xkIHRlbXBvcmFsMworICAgICAgICAgICAg ICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWwzIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdl IHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAg IHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsM19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFs M192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK0RST1Ag VEFCTEUgdGVtcG9yYWwzOworLS0gUFJJTUFSWSBLRVkgd2l0aCBQRVJJT0QgdG9vCitDUkVBVEUg VEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisg IHZhbGlkX3RpbCBkYXRlCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisgIEFERCBQRVJJT0Qg Rk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbDNfcGsKKyAgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KTsKK1xkIHRlbXBvcmFsMworICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWwz IgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1 bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAK KyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxp ZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6Cisg ICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBv cmFsM19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hl Y2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsM192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZh bGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0gVU5JUVVF IHdpdGggUEVSSU9EIGFscmVhZHkgdGhlcmUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBp ZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbDMKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxCisgIFVOSVFVRSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwzCisgICAgICAgICAgICAg ICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbDMiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2Ug fCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWwzX3VxIiBVTklRVUUgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsM192YWxp ZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK0RST1AgVEFCTEUg dGVtcG9yYWwzOworLS0gVU5JUVVFIHdpdGggUEVSSU9EIHRvbworQ1JFQVRFIFRBQkxFIHRlbXBv cmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwg ZGF0ZQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3Vx CisgIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwz CisgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbDMiCisgICBDb2x1bW4gICB8 ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAg ICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX2Zyb20gfCBk YXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFs aWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWwzX3VxIiBVTklRVUUg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAg InRlbXBvcmFsM192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwp CisKK0RST1AgVEFCTEUgdGVtcG9yYWwzOwogLS0KIC0tIHJhbmdlIFBLOiB0ZXN0IHdpdGggZXhp c3Rpbmcgcm93cwogLS0KQEAgLTg3NCw2ICsxMTE2LDI4NCBAQCBTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCiBEUk9QIFRBQkxFIHRlbXBvcmFs X21sdHJuZzM7CiAtLQorLS0gUEVSSU9EIFBLOiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93cworLS0K K0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3Br OworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcy MDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzMsNCknLCAnMjAxOC0wMS0wMScsIE5V TEwpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3Bl cl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfcGVyIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGs7CistLSBz aG91bGQgZmFpbDoKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfcGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitF UlJPUjogIGNvdWxkIG5vdCBjcmVhdGUgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3Bl cl9wayIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIw MTgtMDItMDMpKSBjb25mbGljdHMgd2l0aCBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAx OC0wMS0wMSwyMDE4LTAxLTA1KSkuCitST0xMQkFDSzsKKy0tIHJlamVjdHMgZW1wdHk6CitCRUdJ TjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdDsK KyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMyw0KScsICcyMDIwLTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKKyAgQUxURVIgVEFC TEUgdGVtcG9yYWxfcGVyIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpOworRVJST1I6ICBjaGVjayBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXJfdmFsaWRfYXRf Y2hlY2siIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIiIGlzIHZpb2xhdGVkIGJ5IHNvbWUgcm93 CitST0xMQkFDSzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9wZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjsKKy0tCistLSBQRVJJT0QgUEs6IHRlc3QgaW5zZXJ0 cworLS0KKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMSwyKScsICcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMykn LCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMTgtMDEtMDEn LCBOVUxMKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAxJywgJzIw MTgtMDEtMDUnKTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1 c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXJfcGsiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxp ZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkgY29uZmxpY3RzIHdpdGggZXhp c3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0wMykp LgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKE5VTEwsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0VSUk9SOiAgbnVsbCB2 YWx1ZSBpbiBjb2x1bW4gImlkIiBvZiByZWxhdGlvbiAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBu b3QtbnVsbCBjb25zdHJhaW50CitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwg MjAxOC0wMS0wMSwgMjAxOC0wMS0wNSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpLgorLS0gcmVq ZWN0cyBlbXB0eToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzMsNCknLCAnMjAyMC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitF UlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGNoZWNr IGNvbnN0cmFpbnQgInRlbXBvcmFsX3Blcl92YWxpZF9hdF9jaGVjayIKK0RFVEFJTDogIEZhaWxp bmcgcm93IGNvbnRhaW5zIChbMyw0KSwgMjAyMC0wMS0wMSwgMjAyMC0wMS0wMSwgZW1wdHkpLgor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMSwyKSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAyLTAzCisgWzEsMikgfCAyMDE4LTAz LTAzIHwgMjAxOC0wNC0wNAorIFsyLDMpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyBbMyw0 KSB8IDIwMTgtMDEtMDEgfCAKKyg0IHJvd3MpCisKKy0tCistLSBQRVJJT0QgUEs6IHRlc3QgdXBk YXRlcworLS0KKy0tIHVwZGF0ZSB0aGUgc2NhbGFyIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfcGVy CitTRVQgICAgIGlkID0gJ1sxMSwxMiknCitXSEVSRSAgIGlkID0gJ1sxLDIpJworQU5EICAgICB2 YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgdGhlIFBFUklPRCBib3Vu ZHMKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0w MScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDIxLTAxLTAxJworV0hFUkUgICBpZCA9ICdbMTEs MTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUg Ym90aCBhdCBvbmNlCitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9ICdbMjEsMjIp JywKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywKKyAgICAgICAgdmFsaWRfdGls ID0gJzIwMTgtMDItMDMnCitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0 IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgIGlkICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCist LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxLDIpICAgfCAyMDE4LTAzLTAz IHwgMjAxOC0wNC0wNAorIFsyLDMpICAgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorIFszLDQp ICAgfCAyMDE4LTAxLTAxIHwgCisgWzIxLDIyKSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAyLTAzCiso NCByb3dzKQorCistLSBzaG91bGQgZmFpbDoKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAg IGlkID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAzLTA1JywKKyAgICAg ICAgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDUnCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworRVJS T1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQg InRlbXBvcmFsX3Blcl9wayIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsy MDE4LTAzLTA1LDIwMTgtMDUtMDUpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2 YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wMywyMDE4LTA0LTA0KSkuCistLSBzZXQgdGhlIHNj YWxhciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gTlVM TCwKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAzLTA1JywKKyAgICAgICAgdmFsaWRfdGls ID0gJzIwMTgtMDUtMDUnCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworRVJST1I6ICBudWxsIHZh bHVlIGluIGNvbHVtbiAiaWQiIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIG5v dC1udWxsIGNvbnN0cmFpbnQKK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChudWxsLCAy MDE4LTAzLTA1LCAyMDE4LTA1LTA1LCBbMjAxOC0wMy0wNSwyMDE4LTA1LTA1KSkuCistLSBzZXQg YSBQRVJJT0QgYm91bmQgdG8gTlVMTCAob2theSkKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQg ICAgIGlkID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTA0LTA0JywKKyAg ICAgICAgdmFsaWRfdGlsID0gTlVMTAorV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKKy0tIHJlamVj dHMgZW1wdHk6CitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9ICdbMjEsMjIpJywK KyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0g JzIwMjAtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1sxLDIpJzsKK0VSUk9SOiAgbmV3IHJvdyBmb3Ig cmVsYXRpb24gInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAidGVtcG9y YWxfcGVyX3ZhbGlkX2F0X2NoZWNrIgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKFsy MSwyMiksIDIwMjAtMDEtMDEsIDIwMjAtMDEtMDEsIGVtcHR5KS4KK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2 YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAy MDE4LTAzLTAzIHwgMjAxOC0wNC0wNAorIFsxLDIpIHwgMjAxOC0wNC0wNCB8IAorIFsyLDMpIHwg MjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyBbMyw0KSB8IDIwMTgtMDEtMDEgfCAKKyg0IHJvd3Mp CisKKy0tCistLSBQRVJJT0QgVVE6IHRlc3Qgd2l0aCBleGlzdGluZyByb3dzCistLQorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3BlcjMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0 ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkKKyk7CistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMicsICcy MDE4LTAyLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1syLDMpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzMsNCkn LCAnMjAxOC0wMS0wMScsIE5VTEwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTIChOVUxMLCAnMjAxOC0wMS0wMScsICcyMDE4LTAx LTA1Jyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIzIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X3BlcjNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9wZXIzIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxOworLS0g c2hvdWxkIGZhaWw6CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMScsICcyMDE4 LTAxLTA1Jyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfcGVyM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0VS Uk9SOiAgY291bGQgbm90IGNyZWF0ZSBleGNsdXNpb24gY29uc3RyYWludCAidGVtcG9yYWxfcGVy M191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIw MTgtMDItMDMpKSBjb25mbGljdHMgd2l0aCBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAx OC0wMS0wMSwyMDE4LTAxLTA1KSkuCitST0xMQkFDSzsKKy0tIHJlamVjdHMgZW1wdHk6CitCRUdJ TjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyMyBEUk9QIFBFUklPRCBGT1IgdmFsaWRfYXQ7 CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1szLDQpJywgJzIwMjAtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworICBBTFRFUiBU QUJMRSB0ZW1wb3JhbF9wZXIzIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2 YWxpZF90aWwpOworRVJST1I6ICBjaGVjayBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXIzX3ZhbGlk X2F0X2NoZWNrIiBvZiByZWxhdGlvbiAidGVtcG9yYWxfcGVyMyIgaXMgdmlvbGF0ZWQgYnkgc29t ZSByb3cKK1JPTExCQUNLOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyMyBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp OworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMzsKKy0tCistLSBQRVJJT0QgVVE6IHRlc3QgaW5z ZXJ0cworLS0KKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDIt MDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDE4 LTAxLTAxJywgTlVMTCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKE5VTEwsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsK Ky0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1 Jyk7CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29u c3RyYWludCAidGVtcG9yYWxfcGVyM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBr ZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKSkuCistLSBy ZWplY3RzIGVtcHR5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzMsNCknLCAnMjAyMC0wMS0wMScsICcyMDIwLTAxLTAxJyk7 CitFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIzIiB2aW9sYXRlcyBj aGVjayBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXIzX3ZhbGlkX2F0X2NoZWNrIgorREVUQUlMOiAg RmFpbGluZyByb3cgY29udGFpbnMgKFszLDQpLCAyMDIwLTAxLTAxLCAyMDIwLTAxLTAxLCBlbXB0 eSkuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAyLTAzCisgWzEsMikgfCAy MDE4LTAzLTAzIHwgMjAxOC0wNC0wNAorIFsyLDMpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUK KyBbMyw0KSB8IDIwMTgtMDEtMDEgfCAKKyAgICAgICB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTA1 CisoNSByb3dzKQorCistLQorLS0gUEVSSU9EIFVROiB0ZXN0IHVwZGF0ZXMKKy0tCistLSB1cGRh dGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSAn WzExLDEyKScKK1dIRVJFICAgaWQgPSAnWzEsMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4 LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSB0aGUgUEVSSU9EIGJvdW5kcworVVBEQVRFICB0ZW1w b3JhbF9wZXIzCitTRVQgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0wMScsCisgICAgICAgIHZh bGlkX3RpbCA9ICcyMDIxLTAxLTAxJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2 YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBhdCBvbmNlCitV UERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSAnWzIxLDIyKScsCisgICAgICAgIHZh bGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAz JworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAyMC0wMS0x NSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgaWQgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgICB8IDIwMTgtMDMtMDMgfCAyMDE4LTA0LTA0 CisgWzIsMykgICB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTA1CisgWzMsNCkgICB8IDIwMTgtMDEt MDEgfCAKKyBbMjEsMjIpIHwgMjAxOC0wMS0wMiB8IDIwMTgtMDItMDMKKyAgICAgICAgIHwgMjAx OC0wMS0wMSB8IDIwMTgtMDEtMDUKKyg1IHJvd3MpCisKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRF ICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRfZnJv bSA9ICcyMDE4LTAzLTA1JywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDUnCitXSEVS RSAgIGlkID0gJ1syMSwyMiknOworRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlvbGF0 ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3BlcjNfdXEiCitERVRBSUw6ICBLZXkg KGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wNSwyMDE4LTA1LTA1KSkgY29uZmxpY3Rz IHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDMtMDMsMjAx OC0wNC0wNCkpLgorLS0gc2V0IHRoZSBzY2FsYXIgcGFydCB0byBOVUxMIChva2F5KQorVVBEQVRF ICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfZnJvbSA9 ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMjEtMDEtMDEnCitXSEVSRSAg IGlkID0gJ1syMSwyMiknOworLS0gc2V0IGEgUEVSSU9EIGJvdW5kIHRvIE5VTEwgKG9rYXkpCitV UERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxp ZF9mcm9tID0gJzIwMTgtMDQtMDQnLAorICAgICAgICB2YWxpZF90aWwgPSBOVUxMCitXSEVSRSAg IGlkIElTIE5VTEwgQU5EIHZhbGlkX2F0IEA+ICcyMDIwLTA2LTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcGVyMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxp ZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IFsxLDIpIHwgMjAxOC0wMy0wMyB8IDIwMTgtMDQtMDQKKyBbMSwyKSB8IDIwMTgtMDQtMDQgfCAK KyBbMiwzKSB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTA1CisgWzMsNCkgfCAyMDE4LTAxLTAxIHwg CisgICAgICAgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorKDUgcm93cykKKworLS0gc2hvdWxk IGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgdmFsaWRfZnJvbSA9ICcyMDE4 LTAzLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDUnCitXSEVSRSAgIGlkID0g J1sxLDIpJyBBTkQgdmFsaWRfdGlsIElTIE5VTEw7CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2 YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3RyYWludCAidGVtcG9yYWxfcGVyM191cSIKK0RF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAzLTAxLDIwMTgtMDUtMDUp KSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAx OC0wMy0wMywyMDE4LTA0LTA0KSkuCistLSByZWplY3RzIGVtcHR5OgorVVBEQVRFICB0ZW1wb3Jh bF9wZXIzCitTRVQgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0wMScsCisgICAgICAgIHZhbGlk X3RpbCA9ICcyMDIwLTAxLTAxJworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX3RpbCBJ UyBOVUxMOworRVJST1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAidGVtcG9yYWxfcGVyMyIgdmlv bGF0ZXMgY2hlY2sgY29uc3RyYWludCAidGVtcG9yYWxfcGVyM192YWxpZF9hdF9jaGVjayIKK0RF VEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChbMSwyKSwgMjAyMC0wMS0wMSwgMjAyMC0wMS0w MSwgZW1wdHkpLgorLS0gc3RpbGwgcmVqZWN0cyBlbXB0eSB3aGVuIHNjYWxhciBwYXJ0IGlzIE5V TEw6CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSBOVUxMLAorICAgICAgICB2 YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAyMC0wMS0w MScKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF90aWwgSVMgTlVMTDsKK0VSUk9SOiAg bmV3IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFsX3BlcjMiIHZpb2xhdGVzIGNoZWNrIGNvbnN0 cmFpbnQgInRlbXBvcmFsX3BlcjNfdmFsaWRfYXRfY2hlY2siCitERVRBSUw6ICBGYWlsaW5nIHJv dyBjb250YWlucyAobnVsbCwgMjAyMC0wMS0wMSwgMjAyMC0wMS0wMSwgZW1wdHkpLgorU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzEsMikgfCAyMDE4LTAzLTAzIHwgMjAxOC0wNC0wNAorIFsxLDIpIHwgMjAxOC0wNC0wNCB8 IAorIFsyLDMpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyBbMyw0KSB8IDIwMTgtMDEtMDEg fCAKKyAgICAgICB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTA1CisoNSByb3dzKQorCitEUk9QIFRB QkxFIHRlbXBvcmFsX3BlcjM7CistLQogLS0gdGVzdCBhIHJhbmdlIHdpdGggYm90aCBhIFBLIGFu ZCBhIFVOSVFVRSBjb25zdHJhaW50CiAtLQogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCkBAIC0x NDI0LDMyICsxOTQ0LDIxMCBAQCBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIg QlkgaWQsIHZhbGlkX2F0OwogCiBEUk9QIFRBQkxFIHRlbXBvcmFsX21sdHJuZzM7CiAtLQotLS0g dGVzdCBGSyBkZXBlbmRlbmNpZXMKKy0tIE9OIENPTkZMSUNUOiBQRVJJT0RzCiAtLQotLS0gY2Fu J3QgZHJvcCBhIHJhbmdlIHJlZmVyZW5jZWQgYnkgYW4gRkssIHVubGVzcyB3aXRoIENBU0NBREUK LUNSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAotICBpZCBpbnQ0cmFuZ2UsCi0gIHZhbGlkX2F0IGRh dGVyYW5nZSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQotKTsKLUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nICgKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScs ICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwNS0w MS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGlkIG1hdGNo ZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0w MScpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZs aWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNU IERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsOworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCist LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIwMDAtMDEtMDEgfCAy MDEwLTAxLTAxCisgWzEsMikgfCAyMDEwLTAxLTAxIHwgMjAyMC0wMS0wMQorIFsyLDMpIHwgMjAw NS0wMS0wMSB8IDIwMDYtMDEtMDEKKygzIHJvd3MpCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29u ZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJ Q1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVl IG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZp Y2F0aW9uCistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEw LTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RI SU5HOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQg bWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRpb24KKy0tIGRhdGUgbWF0Y2hlcyBi dXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykg T04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK0VSUk9SOiAgdGhlcmUgaXMg bm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElD VCBzcGVjaWZpY2F0aW9uCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsOworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAg CistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIwMDAtMDEtMDEg fCAyMDEwLTAxLTAxCisoMSByb3cpCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEs MiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09O U1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5v IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENP TkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIERPIE5PVEhJTkc7CistLSBkYXRl IG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAw Ni0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIERPIE5P VEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsOworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIwMDAtMDEtMDEgfCAyMDEwLTAx LTAxCisgWzEsMikgfCAyMDEwLTAxLTAxIHwgMjAyMC0wMS0wMQorIFsyLDMpIHwgMjAwNS0wMS0w MSB8IDIwMDYtMDEtMDEKKygzIHJvd3MpCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlk LCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKK0VS Uk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5n IHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25m bGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElD VCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzMsNCkn OworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0 Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRpb24KKy0tIGRhdGUgbWF0Y2hlcyBidXQg bm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04g Q09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsg J1s0LDUpJzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJh aW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworICBpZCAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMSwyKSB8IDIwMDAtMDEtMDEgfCAyMDEwLTAxLTAxCisoMSByb3cpCisKK1RSVU5D QVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAx Jyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2 LTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgRE8gVVBE QVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKK0VSUk9SOiAgT04gQ09ORkxJQ1Qg RE8gVVBEQVRFIG5vdCBzdXBwb3J0ZWQgd2l0aCBleGNsdXNpb24gY29uc3RyYWludHMKKy0tIGlk IG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAy MC0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIERPIFVQ REFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CitFUlJPUjogIE9OIENPTkZMSUNU IERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRzCistLSBk YXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAn MjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIERP IFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitFUlJPUjogIE9OIENPTkZM SUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRzCitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsOworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIwMDAtMDEtMDEgfCAyMDEwLTAxLTAxCisoMSBy b3cpCisKKy0tIHdpdGggYSBVTklRVUUgY29uc3RyYWludDoKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9wZXIzICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9hdCBkYXRlcmFuZ2UsCi0gIHBhcmVu dF9pZCBpbnQ0cmFuZ2UsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAotICBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQotICAgIFJFRkVSRU5DRVMgdGVtcG9yYWwzIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorICB2 YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0 ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEg VU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKICk7Ci1BTFRFUiBUQUJMRSB0 ZW1wb3JhbDMgRFJPUCBDT0xVTU4gdmFsaWRfYXQ7Ci1FUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVt biB2YWxpZF9hdCBvZiB0YWJsZSB0ZW1wb3JhbDMgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVu ZCBvbiBpdAotREVUQUlMOiAgY29uc3RyYWludCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIG9uIHRh YmxlIHRlbXBvcmFsX2ZrX3JuZzJybmcgZGVwZW5kcyBvbiBjb2x1bW4gdmFsaWRfYXQgb2YgdGFi bGUgdGVtcG9yYWwzCi1ISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVw ZW5kZW50IG9iamVjdHMgdG9vLgotQUxURVIgVEFCTEUgdGVtcG9yYWwzIERST1AgQ09MVU1OIHZh bGlkX2F0IENBU0NBREU7Ci1OT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIGNvbnN0cmFpbnQgdGVt cG9yYWxfZmtfcm5nMnJuZ19mayBvbiB0YWJsZSB0ZW1wb3JhbF9ma19ybmcycm5nCi1EUk9QIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmc7Ci1EUk9QIFRBQkxFIHRlbXBvcmFsMzsKLS0tCi0tLSB0 ZXN0IEZPUkVJR04gS0VZLCByYW5nZSByZWZlcmVuY2VzIHJhbmdlCitUUlVOQ0FURSB0ZW1wb3Jh bF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3 aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScp IE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgRE8g Tk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywg JzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0wMQorIFsxLDIp IHwgMjAxMC0wMS0wMSB8IDIwMjAtMDEtMDEKKyBbMiwzKSB8IDIwMDUtMDEtMDEgfCAyMDA2LTAx LTAxCisoMyByb3dzKQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAn MjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sx LDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRf YXQpIERPIE5PVEhJTkc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24g Y29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gaWQg bWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAy MC0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CitFUlJPUjog IHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUg T04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGlj dAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1Qg KGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9y IGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0 aW9uCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0w MQorKDEgcm93KQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAw MC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIp JywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQg dGVtcG9yYWxfcGVyM191cSBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxp Y3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZMSUNU IE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRj aGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAx LTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIERPIE5PVEhJ Tkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0w MQorIFsxLDIpIHwgMjAxMC0wMS0wMSB8IDIwMjAtMDEtMDEKKyBbMiwzKSB8IDIwMDUtMDEtMDEg fCAyMDA2LTAxLTAxCisoMyByb3dzKQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIzOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChp ZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMiwzKSc7CitF UlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGlu ZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29u ZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZM SUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0 KSc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBt YXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gZGF0ZSBtYXRjaGVzIGJ1 dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykg T04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlk ICsgJ1s0LDUpJzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25z dHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKyAg aWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0wMQorKDEgcm93KQorCitU UlVOQ0FURSB0ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEw LTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEn LCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191 cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOworRVJST1I6ICBPTiBD T05GTElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50 cworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEt MDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVy M191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzMsNCknOworRVJST1I6ICBP TiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJh aW50cworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAw NS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wZXIzX3VxIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitFUlJP UjogIE9OIENPTkZMSUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNv bnN0cmFpbnRzCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAx MC0wMS0wMQorKDEgcm93KQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BlcjM7CistLQorLS0gdGVz dCBGSyBkZXBlbmRlbmNpZXMKKy0tCistLSBjYW4ndCBkcm9wIGEgcmFuZ2UgcmVmZXJlbmNlZCBi eSBhbiBGSywgdW5sZXNzIHdpdGggQ0FTQ0FERQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBv cmFsM19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOwor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZh bGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbDMg KGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzIERST1AgQ09M VU1OIHZhbGlkX2F0OworRVJST1I6ICBjYW5ub3QgZHJvcCBjb2x1bW4gdmFsaWRfYXQgb2YgdGFi bGUgdGVtcG9yYWwzIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDog IGNvbnN0cmFpbnQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBvbiB0YWJsZSB0ZW1wb3JhbF9ma19y bmcycm5nIGRlcGVuZHMgb24gY29sdW1uIHZhbGlkX2F0IG9mIHRhYmxlIHRlbXBvcmFsMworSElO VDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRv by4KK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9QIENPTFVNTiB2YWxpZF9hdCBDQVNDQURFOwor Tk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBjb25zdHJhaW50IHRlbXBvcmFsX2ZrX3JuZzJybmdf Zmsgb24gdGFibGUgdGVtcG9yYWxfZmtfcm5nMnJuZworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CistLQorLS0gdGVzdCBGT1JFSUdOIEtFWSwg cmFuZ2UgcmVmZXJlbmNlcyByYW5nZQogLS0KIC0tIHRlc3QgdGFibGUgc2V0dXAKIERST1AgVEFC TEUgdGVtcG9yYWxfcm5nOwpAQCAtMTQ3Nyw2ICsyMTc1LDE4IEBAIENSRUFURSBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycm5nICgKICAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKICk7CitcZCB0ZW1wb3JhbF9ma19ybmcy cm5nCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmtfcm5nMnJuZyIKKyAgQ29s dW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlk ICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQg IHwgZGF0ZXJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyBwYXJlbnRfaWQgfCBpbnQ0 cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxf Zmtfcm5nMnJuZ19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsi IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcoaWQsIFBFUklPRCB2YWxpZF9hdCkKKwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycm5nOwogLS0gd2l0aCBtaXNtYXRjaGVkIFBFUklPRCBjb2x1bW5zOgogLS0gKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCkBAIC0zNzI1LDk5 ICs0NDM1LDM4MjkgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWwKICBbMjAwLDIwMSkgfCB7WzIw MjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCiAoMiByb3dzKQogCi0t LSBGSyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKLUNSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFT IHJhbmdlKHN1YnR5cGU9ZGF0ZSk7Ci1DUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCistLQor LS0gdGVzdCBGT1JFSUdOIEtFWSwgUEVSSU9EIHJlZmVyZW5jZXMgUEVSSU9ECistLQorLS0gdGVz dCB0YWJsZSBzZXR1cAorRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXI7CitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfcGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9hdCBteWRhdGVyYW5nZSwKLSAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAg UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQogKTsKLUNSRUFURSBU QUJMRSB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIKKyAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyk7CistLSBDYW4ndCBjcmVhdGUgYSBGSyB3aXRoIGEgbWlzbWF0 Y2hlZCByYW5nZSB0eXBlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCiAgIGlk IGludDRyYW5nZSwKLSAgdmFsaWRfYXQgbXlkYXRlcmFuZ2UsCisgIHZhbGlkX2Zyb20gaW50LAor ICB2YWxpZF90aWwgaW50LAogICBwYXJlbnRfaWQgaW50NHJhbmdlLAotICBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrM19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyksCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nMyAoaWQsIFBFUklPRCB2YWxpZF9hdCkgT04gREVMRVRFIENBU0NBREUKKyAgUEVSSU9EIEZP UiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlk LCBQRVJJT0QgdmFsaWRfYXQpCiApOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIG15ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s1LDYpJywgbXlkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzgsOSknKTsKLURFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzMgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkID0gJ1s4LDkpJzsKLVNFTEVDVCAqIEZST00gdGVtcG9yYWxfZmszX3JuZzJybmcgV0hFUkUg aWQgPSAnWzUsNiknOwotICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRf aWQgCi0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KLSBbNSw2 KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzgsOSkKLSBbNSw2KSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgWzgsOSkKLSgyIHJvd3MpCitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIGNhbm5vdCBiZSBpbXBsZW1lbnRlZAorREVU QUlMOiAgS2V5IGNvbHVtbnMgInZhbGlkX2F0IiBhbmQgInZhbGlkX2F0IiBhcmUgb2YgaW5jb21w YXRpYmxlIHR5cGVzOiBpbnQ0cmFuZ2UgYW5kIGRhdGVyYW5nZS4KKy0tIHdvcmtzOiBQRVJJT0Qg Zm9yIGJvdGggcmVmZXJlbmNlZCBhbmQgcmVmZXJlbmNpbmcKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZh bGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlk X2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklP RCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9ma19wZXIycGVyCisgICAgICAgICAgIFRhYmxl ICJwdWJsaWMudGVtcG9yYWxfZmtfcGVyMnBlciIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5n ZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lkICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwp CitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9ma19wZXIycGVyX3BrIiBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVt cG9yYWxfZmtfcGVyMnBlcl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxp ZF90aWwpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmtfcGVyMnBl cl9mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlcihpZCwgUEVSSU9EIHZhbGlkX2F0KQogCi1EUk9QIFRBQkxFIHRlbXBvcmFs X2ZrM19ybmcycm5nOwotRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOwotRFJPUCBUWVBFIG15ZGF0 ZXJhbmdlOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyOworLS0gd2l0aCBtaXNtYXRj aGVkIFBFUklPRCBjb2x1bW5zOgorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZF UkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBSRUZFUkVOQ0VTIHBhcnQgc2hvdWxkIHNwZWNpZnkg UEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5n ZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGlu dDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwK KyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5 IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVu Y2VkIHRhYmxlCistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlk X2F0KQorLS0gYm90aCBzaG91bGQgc3BlY2lmeSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lk LCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2F0KQor KTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgbXVzdCB1c2UgUEVSSU9EIHdoZW4gcmVmZXJlbmNpbmcg YSBwcmltYXJ5IHVzaW5nIFdJVEhPVVQgT1ZFUkxBUFMKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0 KSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorLS0gRk9SRUlHTiBLRVkgcGFydCBz aG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAor ICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0VSUk9S OiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5v dCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVO Q0VTIFtpbXBsaWNpdF0KKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9E CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5n ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBG T1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X3BlcgorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5j ZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKKy0tIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90 aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkKQorKTsKK0VSUk9S OiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBu b3QgdGhlIHJlZmVyZW5jZWQgdGFibGUKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMgKGlkLCBQ RVJJT0QgdmFsaWRfYXQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlk IGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFy ZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkg dXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNp bmcgdGFibGUKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGU6Cist LSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisg IFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyCispOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyOworLS0gKHBhcmVudF9p ZCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl ciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0 ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcGVyCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBv biB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0g c2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisg IFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BlciAoaWQsIFBFUklPRCBpZCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHJlZmVyZW5j ZWQtY29sdW1ucyBsaXN0IG11c3Qgbm90IGNvbnRhaW4gZHVwbGljYXRlcworLS0gVHdvIHNjYWxh ciBjb2x1bW5zCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BlcjI7CitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfcGVyMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zy b20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlk X2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyMl9wayBQUklNQVJZ IEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9t IGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQxIGludDRyYW5nZSwKKyAgcGFy ZW50X2lkMiBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVS SU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIFBF UklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICAgICAgICAgICBU YWJsZSAicHVibGljLnRlbXBvcmFsX2ZrMl9wZXIycGVyIgorICAgQ29sdW1uICAgfCAgIFR5cGUg ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50 NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQxIHwgaW50NHJhbmdlIHwgICAgICAgICAg IHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQyIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkK K0luZGV4ZXM6CisgICAgInRlbXBvcmFsX2ZrMl9wZXIycGVyX3BrIiBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVt cG9yYWxfZmsyX3BlcjJwZXJfdmFsaWRfYXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwgdmFs aWRfdGlsKQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrMl9wZXIy cGVyX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlk X2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkK KworRFJPUCBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKIC0tCi0tLSBGSyBiZXR3ZWVuIHBh cnRpdGlvbmVkIHRhYmxlczogcmFuZ2VzCistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJB SU5UCiAtLQotQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCi0gIGlkIGlu dDRyYW5nZSwKLSAgdmFsaWRfYXQgZGF0ZXJhbmdlLAotICBuYW1lIHRleHQsCi0gIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGFyaXRpb25lZF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKQotKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOwotQ1JFQVRFIFRBQkxF IHRwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4g KCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScs ICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMiknLCAn WzIzLDI0KScpOwotQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScsICdbNiw3 KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdbMTYsMTcpJywg J1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsKLUlOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKLSAg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwK LSAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUn KSwKLSAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0 d28nKTsKLUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nICgKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxp ZF9hdCBkYXRlcmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCiAg IHBhcmVudF9pZCBpbnQ0cmFuZ2UsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAotICBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQotKSBQQVJUSVRJT04gQlkg TElTVCAoaWQpOwotQ1JFQVRFIFRBQkxFIHRma3AxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2 KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAn WzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMiknLCAnWzIzLDI0KScpOwotQ1JFQVRFIFRBQkxF IHRma3AyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBW QUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdb MTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdbMTYsMTcpJywgJ1sxOCwxOSknLCAnWzIw LDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFs aWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBUd28gc2Nh bGFyIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIgKAorICBpZCBp bnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVu dF9pZDEgaW50NHJhbmdlLAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVu dF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgICAgICAg ICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX3BlcjJwZXIiCisgICBDb2x1bW4gICB8ICAg VHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAg fCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRl ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAg fCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAorIHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfZmsyX3BlcjJwZXJfcGsiIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAg ICJ0ZW1wb3JhbF9mazJfcGVyMnBlcl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20g PCB2YWxpZF90aWwpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmsy X3BlcjJwZXJfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMihpZDEsIGlkMiwgUEVSSU9EIHZhbGlk X2F0KQorCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlLCBhbmQg d3JvbmcgY29sdW1uIHR5cGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBEUk9QIFBFUklPRCBGT1Ig dmFsaWRfYXQsCisgIEFMVEVSIENPTFVNTiB2YWxpZF9mcm9tIFRZUEUgdGltZXN0YW1wLAorICBB TFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZUEUgdGltZXN0YW1wLAorICBBREQgUEVSSU9EIEZPUiB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyOworRVJST1I6ICBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrIiBjYW5ub3QgYmUgaW1wbGVtZW50ZWQKK0RFVEFJTDogIEtleSBjb2x1bW5zICJ2YWxp ZF9hdCIgYW5kICJ2YWxpZF9hdCIgYXJlIG9mIGluY29tcGF0aWJsZSB0eXBlczogdHNyYW5nZSBh bmQgZGF0ZXJhbmdlLgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIFBF UklPRCBGT1IgdmFsaWRfYXQsCisgIEFMVEVSIENPTFVNTiB2YWxpZF9mcm9tIFRZUEUgZGF0ZSwK KyAgQUxURVIgQ09MVU1OIHZhbGlkX3RpbCBUWVBFIGRhdGUsCisgIEFERCBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpOworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0 aGUgcmVmZXJlbmNlZCB0YWJsZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworLS0g c2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycGVyX2ZrMgorICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lk KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCBpZCk7CitFUlJPUjogIGZv cmVpZ24ga2V5IHJlZmVyZW5jZWQtY29sdW1ucyBsaXN0IG11c3Qgbm90IGNvbnRhaW4gZHVwbGlj YXRlcwogLS0KLS0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jaW5nIGluc2VydHMKKy0tIHRlc3Qg d2l0aCByb3dzIGFscmVhZHkKIC0tCi1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCi0gICgnWzEsMiknLCBk YXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xNScpLCAnWzEsMiknKSwKLSAgKCdbMSwy KScsIGRhdGVyYW5nZSgnMjAwMS0wMS0wMScsICcyMDAyLTAxLTAxJyksICdbMiwzKScpLAotICAo J1syLDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1sxLDIpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyOworREVMRVRFIEZST00gdGVtcG9yYWxf cGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMKKyAgKCdbMSwxXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSwKKyAgKCdb MSwxXScsICcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSwKKyAgKCdbMiwyXScsICcyMDE4LTAx LTAxJywgJzIwMTgtMDEtMDUnKSwKKyAgKCdbMywzXScsICcyMDE4LTAxLTAxJywgTlVMTCk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwxXScsICcyMDE4LTAx LTAyJywgJzIwMTgtMDItMDEnLCAnWzEsMV0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Bl cjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAn MjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJywgJ1sxLDFdJyk7CiAtLSBzaG91bGQgZmFpbDoKLUlO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMKLSAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcy MDEwLTAyLTE1JyksICdbMSwyKScpOwotRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxl ICJ0ZmtwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZ19mayIKLURFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9 KFsxLDIpLCBbMjAxMC0wMS0wMSwyMDEwLTAyLTE1KSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUg InRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyIuCi1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCi0gICgnWzMs NCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xNScpLCAnWzMsNCknKTsKLUVS Uk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDEiIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsiCi1ERVRB SUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMyw0KSwgWzIwMDAtMDEtMDEsMjAwMC0w Mi0xNSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmci LgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CitFUlJPUjogIGluc2VydCBvciB1cGRh dGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9p ZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSkpIGlzIG5vdCBwcmVz ZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wZXIiLgorLS0gb2theSBhZ2FpbjoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKIC0t Ci0tLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLSB0ZXN0IHBnX2dldF9j b25zdHJhaW50ZGVmCiAtLQotVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg U0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTMnKSBXSEVS RSBpZCA9ICdbMiwzKSc7Ci0tLSBtb3ZlIGEgcm93IGZyb20gdGhlIGZpcnN0IHBhcnRpdGlvbiB0 byB0aGUgc2Vjb25kCi1VUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBTRVQg aWQgPSAnWzQsNSknIFdIRVJFIGlkID0gJ1sxLDIpJzsKLS0tIG1vdmUgYSByb3cgZnJvbSB0aGUg c2Vjb25kIHBhcnRpdGlvbiB0byB0aGUgZmlyc3QKLVVQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nIFNFVCBpZCA9ICdbMSwyKScgV0hFUkUgaWQgPSAnWzQsNSknOwotLS0gc2hv dWxkIGZhaWw6Ci1VUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBTRVQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wNC0wMScpIFdIRVJFIGlkID0g J1sxLDIpJzsKLUVSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lv biBjb25zdHJhaW50ICJ0ZmtwMV9wa2V5IgotREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShb MSwyKSwgWzIwMDAtMDEtMDEsMjAwMC0wNC0wMSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGtl eSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDAwLTAxLTAxLDIwMDAtMDQtMDEpKS4KK1NFTEVD VCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25u YW1lID0gJ3RlbXBvcmFsX2ZrX3BlcjJwZXJfZmsnOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyKGlkLCBQRVJJ T0QgdmFsaWRfYXQpCisoMSByb3cpCisKIC0tCi0tLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2Vk IHVwZGF0ZXMgTk8gQUNUSU9OCistLSB0ZXN0IEZLIHJlZmVyZW5jaW5nIGluc2VydHMKIC0tCi1U UlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmc7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0w MScpKTsKLVVQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSBXSEVSRSBpZCA9ICdbNSw2KSc7Ci1J TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKLUlOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAx LTEwJyksICdbNSw2KScpOwotVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpCi0gIFdIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0w My0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwxXScsICcyMDE4LTAxLTAyJywgJzIw MTgtMDItMDEnLCAnWzEsMV0nKTsKIC0tIHNob3VsZCBmYWlsOgotVVBEQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAx Ni0wMi0wMScpCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDInLCAn MjAxOC0wNC0wMScsICdbMSwxXScpOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxl ICJ0ZW1wb3JhbF9ma19wZXIycGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19wZXIycGVyX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0 KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDQtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJs ZSAidGVtcG9yYWxfcGVyIi4KKy0tIG5vdyBpdCBzaG91bGQgd29yazoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMV0nLCAn MjAxOC0wMi0wMycsICcyMDE4LTAzLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJd JywgJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwxXScpOworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNpbmcgdXBkYXRlcworLS0KKy0tIHNsaWRlIHRoZSBlZGdlIGFjcm9zcyBhIHJlZmVy ZW5jZWQgdHJhbnNpdGlvbjoKK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycGVyIFNFVCB2YWxpZF9m cm9tID0gJzIwMTgtMDEtMDInLCB2YWxpZF90aWwgPSAnMjAxOC0wMi0yMCcgV0hFUkUgaWQgPSAn WzEsMV0nOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnBlciBTRVQg dmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDEnIFdIRVJF IGlkID0gJ1sxLDFdJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9y YWxfZmtfcGVyMnBlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxf ZmtfcGVyMnBlcl9mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIp LCBbMjAxOC0wMS0wMiwyMDE4LTA1LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBv cmFsX3BlciIuCitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnBlciBTRVQgcGFyZW50X2lkID0gJ1s4 LDhdJyBXSEVSRSBpZCA9ICdbMSwxXSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFi bGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRf YXQpPShbOCw5KSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0yMCkpIGlzIG5vdCBwcmVzZW50IGluIHRh YmxlICJ0ZW1wb3JhbF9wZXIiLgorLS0gQUxURVIgRksgREVGRVJSQUJMRQorQkVHSU47CisgIElO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT CisgICAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgICAoJ1s1LDVd JywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUwor ICAgICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CisgIEFM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAg REVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsgLS1zaG91bGQgbm90 IGZhaWwgeWV0LgorQ09NTUlUOyAtLSBzaG91bGQgZmFpbCBoZXJlLgorRVJST1I6ICB1cGRhdGUg b3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19w ZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEs MjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtf cGVyMnBlciIuCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgTk8gQUNUSU9OCist LQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgIE9OIFVQREFURSBOTyBB Q1RJT047CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMg aWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEn LCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyB1 cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVu Y2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdI RVJFIGlkID0gJ1s1LDVdJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw1 XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywg dmFsaWRfdGlsID0gJzIwMTYtMDMtMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zy b20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIEEgUEsg dXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMK KyAgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNiw3KScsICcy MDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzQs NSknLCAnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JywgJ1s2LDcpJyk7CitVUERBVEUgdGVtcG9y YWxfcGVyCitTRVQgdmFsaWRfZnJvbSA9IENBU0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDEt MDEnIFRIRU4gJzIwMTgtMDEtMDEnCisgICAgICAgICAgICAgICAgICAgICAgV0hFTiB2YWxpZF9m cm9tID0gJzIwMTgtMDItMDEnIFRIRU4gJzIwMTgtMDEtMDUnIEVORDo6ZGF0ZSwKKyAgICB2YWxp ZF90aWwgPSAgQ0FTRSBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgVEhFTiAnMjAxOC0w MS0wNScKKyAgICAgICAgICAgICAgICAgICAgICBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0w MScgVEhFTiAnMjAxOC0wMy0wMScgRU5EOjpkYXRlCitXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBh IFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK1VQREFU RSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9 ICcyMDE2LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgt MDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CitFUlJPUjogIHVwZGF0ZSBvciBk ZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3Ry YWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJw ZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4 LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIy cGVyIi4KKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVu Y2VkLCBidXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsK KyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgVVBEQVRFIHRlbXBvcmFsX3Bl ciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEn CisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpOworQ09NTUlUOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9u IHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRl bXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkp IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCist LSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNF VCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4 LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIy cGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAx OC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVy MnBlciIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRF IHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicg VE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XSc7Cist LSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VU IGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworRVJST1I6ICB1cGRhdGUgb3IgZGVs ZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVy IgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0w Mi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBl ciIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3 LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlk X3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8IDIwMTYt MDItMDEgfCAyMDE2LTAzLTAxCisgWzUsNikgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wMgorIFs1 LDYpIHwgMjAxOC0wMS0wMyB8IDIwMTgtMDItMDEKKyBbNyw4KSB8IDIwMTgtMDEtMDIgfCAyMDE4 LTAxLTAzCisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hF UkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlk X2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCAyMDE4LTAxLTA1IHwgMjAxOC0wMS0xMCB8 IFs1LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3Jk IGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9m a19wZXIycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZh bGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJworV0hFUkUg aWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwg PSAnMjAxOC0wMi0wMSc7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVTVFJJ Q1QKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgT04gVVBEQVRF IFJFU1RSSUNUOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1l cmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAx LTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEg UEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVm ZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl ciBXSEVSRSBpZCA9ICdbNSw1XSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAn WzUsNV0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMi0w MScsIHZhbGlkX3RpbCA9ICcyMDE2LTAzLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxp ZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBB IFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTCisgICgnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzYsNykn LCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19w ZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAo J1s0LDUpJywgJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScsICdbNiw3KScpOworVVBEQVRFIHRl bXBvcmFsX3BlcgorU0VUIHZhbGlkX2Zyb20gPSBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4 LTAxLTAxJyBUSEVOICcyMDE4LTAxLTAxJworICAgICAgICAgICAgICAgICAgICAgIFdIRU4gdmFs aWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAxLTA1JyBFTkQ6OmRhdGUsCisgICAg dmFsaWRfdGlsID0gIENBU0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIFRIRU4gJzIw MTgtMDEtMDUnCisgICAgICAgICAgICAgICAgICAgICAgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgt MDItMDEnIFRIRU4gJzIwMTgtMDMtMDEnIEVORDo6ZGF0ZQorV0hFUkUgaWQgPSAnWzYsNyknOwor RVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxl ICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNiw3 KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1 c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7Cisg IFVQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlk X3RpbCA9ICcyMDE2LTAyLTAxJworICBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20g PSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBk YXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxf ZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAx LTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFs X2ZrX3BlcjJwZXIiLgorUk9MTEJBQ0s7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFp bHM6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1 LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgt MDItMDEnOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIi IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRf YXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVy ZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcs N10nCitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoK K1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUs NV0nOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9u IHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJv bSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bl ciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbNSw2KSB8IDIwMTYtMDItMDEgfCAyMDE2LTAzLTAxCisgWzUsNikgfCAy MDE4LTAxLTAxIHwgMjAxOC0wMS0wMgorIFs1LDYpIHwgMjAxOC0wMS0wMyB8IDIwMTgtMDItMDEK KyBbNyw4KSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAxLTAzCisoNCByb3dzKQorCitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lk IAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkg fCAyMDE4LTAxLTA1IHwgMjAxOC0wMS0xMCB8IFs1LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVs ZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2Vl ZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsK K1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlk X3RpbCA9ICcyMDE2LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0g JzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVy LCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgor ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9m aworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcGVyOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRo ZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1 LDVdJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVy aWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUs NV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgt MDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw1XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVy IFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFs aWRfdGlsID0gJzIwMTgtMDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNl IGJvdGggYXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQg PSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAn MjAxOC0wMi0wMSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFs X3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBl cl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2 YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJl bmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4KKy0tIGEgUEsgZGVsZXRlIHRo YXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBidXQgbm90ICd0aWwgY29tbWl0 OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxM WSBERUZFUlJFRDsKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwor Q09NTUlUOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIi IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRf YXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCistLSBkZWxldGluZyBhbiB1bnJlZmVy ZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlk ID0gJ1s1LDVdJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBU TyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRl bGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBl ciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgt MDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJw ZXIiLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdb Nyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxp ZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzUsNikgfCAyMDE4 LTAxLTAxIHwgMjAxOC0wMS0wMgorIFs1LDYpIHwgMjAxOC0wMS0wMyB8IDIwMTgtMDItMDEKKygy IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAo J1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMyw0KSB8IDIwMTgtMDEtMDUgfCAyMDE4LTAxLTEwIHwgWzUsNikKKygx IHJvdykKKworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBz YW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzMsM10nOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0g J1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIw MTgtMDItMDEnOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCist LQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgIE9OIERFTEVURSBSRVNU UklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyBkZWxldGUgdGhh dCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1 c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgt MDItMDEnKSwKKyAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1 LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2 YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7Cist LSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZl biBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgREVG RVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBX SEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlk X3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAi dGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9m a19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtl eSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGls bCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorUk9MTEJBQ0s7 CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBU TyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBw YXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDVd JzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0 YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20g dGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIg V0hFUkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg aWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgWzUsNikgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wMgorIFs1LDYpIHwgMjAx OC0wMS0wMyB8IDIwMTgtMDItMDEKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IDIwMTgtMDEtMDUg fCAyMDE4LTAxLTEwIHwgWzUsNikKKygxIHJvdykKKworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVj dGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzMsM10nOworREVMRVRFIEZST00g dGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAx LTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0KKy0tIHBlcjJwZXIgdGVzdCBP TiBVUERBVEUvREVMRVRFIG9wdGlvbnMKKy0tCistLSBUT0M6CistLSByZWZlcmVuY2VkIHVwZGF0 ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQg dXBkYXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLSByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVG QVVMVAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0t IHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVu Y2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNF VCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tIHJlZmVyZW5jZWQg dXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19w ZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgICAg T04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQg PSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zy b20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAx LTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFs3LDgp CisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KQorKDMgcm93cykK KworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3 XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVy IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEt MDEgfCAyMDE5LTAxLTAxIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0w MS0wMSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNyw4 KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4 LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAx LTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3Bl ciBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJF IGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAy MDIwLTAxLTAxIHwgWzksMTApCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEg fCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENB U0NBREUKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7 CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEg fCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0w MSB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg aWQgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsIHwgcGFyZW50X2lkIAorLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28g cmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgs OF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg ICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAy MDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Blciwg dGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIK KyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgICBPTiBERUxF VEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2 LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwg dmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8 IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMTAwLDEw MSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24t RlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBp ZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRf ZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTkt MDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IAorIFsxMDAs MTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUg aWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBw YXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMjAwLDIwMSkg fCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVz dCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9w ZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEw MSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEg fCAyMDIxLTAxLTAxIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9p ZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMTkt MDEtMDEgfCAyMDIwLTAxLTAxIHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEt MDEgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAw XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdb MjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9t IHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0w MSB8IAorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkKKygyIHJv d3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0K K1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0x XScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBB TFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFV TFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitV UERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcp CisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEw MSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24t RlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBp ZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRf ZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTkt MDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFst MSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWy0xLDApCisoMyBy b3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBp ZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJv bSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEt MDEgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkp CisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFV TFQKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgor REVMRVRFIEZST00gdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAx KSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0w MS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWy0xLDApCisgWzEwMCwx MDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdb OCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0w MSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1w b3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2 LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzYsNl0nLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIERS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFy ZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgor ICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9u IGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3XScgV0hF UkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg dmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2 LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbNyw4KSAgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAg fCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxf cGVyMiBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIw MTktMDEtMDEgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwg MjAyMC0wMS0wMSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEg fCAyMDIxLTAxLTAxIHwgWzcsOCkgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwg aWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVy MnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScs ICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbOSw5XScgV0hFUkUg aWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8 IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0w MSB8IDIwMjAtMDEtMDEgfCBbOSwxMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCAyMDIwLTAx LTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3Rp bCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgt MDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAy MC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0t IG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAn WzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2Zyb20gfCB2YWxp ZF90aWwgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBp ZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywg J1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwg cGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAx IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy MiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYs Nl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdb Niw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJl bnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisg ICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBv biBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nIFdI RVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBb Niw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8 IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2 LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIy IFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lk MSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0w MS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0w MSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8 ICAgICAgICAgICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUg dGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2 YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAg ICAgICAgICAgfCAKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkp ICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVy MiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywg J1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2 LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwg ICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYs NykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAx LTAxIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAx IHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwg ICAgICAgICAgICB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVS RSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2 YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwgCisg WzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAgIHwgWzgsOSkK KygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAo dHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLQorVFJVTkNBVEUgdGVtcG9yYWxf cGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChp ZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9w ZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZd JywgJ1s2LDZdJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBj b2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBF UklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxF VEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CitFUlJPUjogIGNvbHVt biAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJl IFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVu dF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAg ICBPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg dmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2 LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAg fCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8ICAg ICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwg ICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEg fCAgICAgICAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAw LDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAg ICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAg ICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRl cyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Bl cjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFd JywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50 X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNF VCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIy cGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICAgIEZP UkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQ REFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRl bXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8g JzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nLCBpZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9 ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zy b20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAw LDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsx MDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQor IFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcp CisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNF VCBpZDEgPSAnWzcsN10nLCBpZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAx LTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDE5 LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAy MDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAn WzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScs ICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5 LDldJywgaWQyID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdI RVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBb LTEsMCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAg fCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNF VCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwg dGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlk MiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBu dWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAs MTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg dmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2 LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwg Wy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAg IHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVt cG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJl bnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBb LTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEg fCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEt MDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScp OworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9w ZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSww KSAgICAgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4 LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBk ZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkK Ky0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1stMSwtMV0nLCAnWzYsNl0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZd JywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0 aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIEFM VEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04g REVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworRVJS T1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBTRVQgYWN0aW9u IGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJw ZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIK KyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgREVG QVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxf cGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0w MS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Bl cjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykg ICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEs MCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2 LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lk MSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0w MS0wMSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIw LTAxLTAxIHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIw MjEtMDEtMDEgfCBbLTEsMCkgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0 d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlk MiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwg aWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzgsOF0nLCBu dWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8 IFs4LDkpCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAg IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZPUkVJR04gS0VZLCByYW5nZSByZWZl cmVuY2VzIFBFUklPRAorLS0KKy0tIHRlc3QgdGFibGUgc2V0dXAKK0RST1AgVEFCTEUgdGVtcG9y YWxfcGVyIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIGNvbnN0cmFpbnQgdGVt cG9yYWxfZmtfcGVyMnBlcl9mayBvbiB0YWJsZSB0ZW1wb3JhbF9ma19wZXIycGVyCitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfcGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUs CisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2 YWxpZF90aWwpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX3Blcl9waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpOworLS0gQ2FuJ3QgY3JlYXRlIGEgRksgd2l0aCBhIG1pc21hdGNoZWQgcmFuZ2UgdHlw ZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2F0IGludDRyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBjYW5ub3QgYmUgaW1wbGVtZW50ZWQKK0RF VEFJTDogIEtleSBjb2x1bW5zICJ2YWxpZF9hdCIgYW5kICJ2YWxpZF9hdCIgYXJlIG9mIGluY29t cGF0aWJsZSB0eXBlczogaW50NHJhbmdlIGFuZCBkYXRlcmFuZ2UuCistLSB3b3JrczogUEVSSU9E IGZvciByZWZlcmVuY2VkLCByYW5nZSBmb3IgcmVmZXJlbmNpbmcKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2Us CisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBl cl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZh bGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgICAgICAgICAgVGFibGUgInB1 YmxpYy50ZW1wb3JhbF9ma19ybmcycGVyIgorICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxh dGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgIHwgaW50NHJhbmdlIHwgICAg ICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9hdCAgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAorIHBhcmVudF9pZCB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9ma19ybmcycGVyX3BrIiBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitGb3JlaWduLWtleSBjb25zdHJhaW50 czoKKyAgICAidGVtcG9yYWxfZmtfcm5nMnBlcl9mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcihpZCwgUEVSSU9EIHZhbGlk X2F0KQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXI7CistLSB3aXRoIG1pc21hdGNo ZWQgUEVSSU9EIGNvbHVtbnM6CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVS RU5DRVMgKGlkLCB2YWxpZF9hdCkKKy0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lmeSBQ RVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBF UklPRCBvbiB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNlZCB0YWJs ZQorLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkKKy0t IGJvdGggc2hvdWxkIHNwZWNpZnkgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3Ju ZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAg ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgZm9y ZWlnbiBrZXkgbXVzdCB1c2UgUEVSSU9EIHdoZW4gcmVmZXJlbmNpbmcgYSBwcmltYXJ5IHVzaW5n IFdJVEhPVVQgT1ZFUkxBUFMKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChp ZCwgUEVSSU9EIHZhbGlkX2F0KQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQ RVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBF UklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJs ZQorLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorLS0gRk9S RUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisg IHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5 IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5j aW5nIHRhYmxlCistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlk KQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIgKGlkKQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJl ZmVyZW5jaW5nIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jZWQgdGFibGUKKy0tIChwYXJlbnRf aWQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAor ICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6 ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90 IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJl bmNlZCB0YWJsZToKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBb aW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRy YW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2Zr IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlcgorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcjsKKy0tIChw YXJlbnRfaWQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFy ZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcGVyCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBv biB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0g c2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVy IChpZCwgUEVSSU9EIGlkKQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgcmVmZXJlbmNlZC1jb2x1 bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBsaWNhdGVzCistLSBUd28gc2NhbGFyIGNvbHVt bnMKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNj YWRlcyB0byBjb25zdHJhaW50IHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrIG9uIHRhYmxlIHRlbXBv cmFsX2ZrMl9wZXIycGVyCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMiAoCisgIGlkMSBpbnQ0 cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGls IGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyMl9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcy cGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9p ZDEgaW50NHJhbmdlLAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBv cmFsX2ZrMl9ybmcycGVyCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX3Ju ZzJwZXIiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg RGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVs bCB8IAorIHZhbGlkX2F0ICAgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAor IHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBhcmVu dF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5kZXhlczoKKyAg ICAidGVtcG9yYWxfZmsyX3JuZzJwZXJfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9m azJfcm5nMnBlcl9mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklP RCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyKGlkMSwgaWQyLCBQRVJJT0QgdmFs aWRfYXQpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXI7CistLQorLS0gdGVzdCBB TFRFUiBUQUJMRSBBREQgQ09OU1RSQUlOVAorLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVu dF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVy X2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworLS0gVHdvIHNjYWxhciBj b2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycGVyICgKKyAgaWQgaW50NHJh bmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZDEgaW50NHJhbmdlLAorICBw YXJlbnRfaWQyIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklP RCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9E IHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9ybmcycGVyCisgICAgICAgICAgIFRhYmxlICJw dWJsaWMudGVtcG9yYWxfZmsyX3JuZzJwZXIiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2Ug fCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0ICAgfCBkYXRlcmFuZ2UgfCAgICAg ICAgICAgfCBub3QgbnVsbCB8IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorIHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfZmsyX3JuZzJwZXJfcGsiIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0ZvcmVpZ24ta2V5IGNvbnN0cmFp bnRzOgorICAgICJ0ZW1wb3JhbF9mazJfcm5nMnBlcl9mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIy KGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhl IHJlZmVyZW5jZWQgdGFibGUsIGFuZCB3cm9uZyBjb2x1bW4gdHlwZToKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJf ZmssCisgIEFMVEVSIENPTFVNTiB2YWxpZF9hdCBUWVBFIHRzcmFuZ2UgVVNJTkcgdHNyYW5nZShs b3dlcih2YWxpZF9hdCksIHVwcGVyKHZhbGlkX2F0KSk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BlcjsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5n MnBlcl9mayIgY2Fubm90IGJlIGltcGxlbWVudGVkCitERVRBSUw6ICBLZXkgY29sdW1ucyAidmFs aWRfYXQiIGFuZCAidmFsaWRfYXQiIGFyZSBvZiBpbmNvbXBhdGlibGUgdHlwZXM6IHRzcmFuZ2Ug YW5kIGRhdGVyYW5nZS4KK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUxURVIg Q09MVU1OIHZhbGlkX2F0IFRZUEUgZGF0ZXJhbmdlIFVTSU5HIGRhdGVyYW5nZShsb3dlcih2YWxp ZF9hdCk6OmRhdGUsIHVwcGVyKHZhbGlkX2F0KTo6ZGF0ZSk7CistLSB3aXRoIGluZmVycmVkIFBL IG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBl cgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7 CistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJwZXJfZmsyCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJl bnRfaWQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIGlkKTsKK0VSUk9S OiAgZm9yZWlnbiBrZXkgcmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBk dXBsaWNhdGVzCistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFkeQorLS0KK0RFTEVURSBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJwZXI7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAo J1sxLDFdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpLAorICAoJ1sxLDFdJywgJzIwMTgt MDMtMDMnLCAnMjAxOC0wNC0wNCcpLAorICAoJ1syLDJdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpLAorICAoJ1szLDNdJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJf Zms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzEsMV0nLCAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMSknLCAnWzEsMV0n KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mazsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMiwyXScsICdbMjAxOC0wMS0wMiwyMDE4LTA0LTAxKScsICdbMSwxXScpOworLS0g c2hvdWxkIGZhaWw6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKK0VSUk9SOiAgaW5z ZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIgdmlvbGF0ZXMgZm9y ZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnBlcl9mayIKK0RFVEFJTDogIEtl eSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMiwyMDE4LTA0LTAxKSkg aXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3BlciIuCistLSBva2F5IGFnYWluOgor REVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyOworLS0KKy0tIHRlc3QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYKKy0tCitTRUxFQ1QgcGdf Z2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9 ICd0ZW1wb3JhbF9ma19ybmcycGVyX2ZrJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcihpZCwgUEVSSU9EIHZh bGlkX2F0KQorKDEgcm93KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyBpbnNlcnRzCist LQorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxLDFdJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDEpJywgJ1sxLDFdJyk7 CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwyXScsICdbMjAxOC0wMS0wMiwyMDE4LTA0 LTAxKScsICdbMSwxXScpOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1w b3JhbF9ma19ybmcycGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3Jh bF9ma19ybmcycGVyX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzEs MiksIFsyMDE4LTAxLTAyLDIwMTgtMDQtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVt cG9yYWxfcGVyIi4KKy0tIG5vdyBpdCBzaG91bGQgd29yazoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMV0nLCAnMjAxOC0w Mi0wMycsICcyMDE4LTAzLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnWzIwMTgtMDEtMDIsMjAx OC0wNC0wMSknLCAnWzEsMV0nKTsKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jaW5nIHVwZGF0ZXMK Ky0tCistLSBzbGlkZSB0aGUgZWRnZSBhY3Jvc3MgYSByZWZlcmVuY2VkIHRyYW5zaXRpb246CitV UERBVEUgdGVtcG9yYWxfZmtfcm5nMnBlciBTRVQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDIsMjAx OC0wMi0yMCknIFdIRVJFIGlkID0gJ1sxLDFdJzsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRl bXBvcmFsX2ZrX3JuZzJwZXIgU0VUIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAyLDIwMTgtMDUtMDEp JyBXSEVSRSBpZCA9ICdbMSwxXSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUg InRlbXBvcmFsX2ZrX3JuZzJwZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRl bXBvcmFsX2ZrX3JuZzJwZXJfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQp PShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNS0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxl ICJ0ZW1wb3JhbF9wZXIiLgorVVBEQVRFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgU0VUIHBhcmVudF9p ZCA9ICdbOCw4XScgV0hFUkUgaWQgPSAnWzEsMV0nOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQs IHZhbGlkX2F0KT0oWzgsOSksIFsyMDE4LTAxLTAyLDIwMTgtMDItMjApKSBpcyBub3QgcHJlc2Vu dCBpbiB0YWJsZSAidGVtcG9yYWxfcGVyIi4KKy0tIEFMVEVSIEZLIERFRkVSUkFCTEUKK0JFR0lO OworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUworICAgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICAg KCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKyAgSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgn WzMsM10nLCAnWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCknLCAnWzUsNV0nKTsKKyAgQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOyAtLXNob3VsZCBub3QgZmFpbCB5 ZXQuCitDT01NSVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCitFUlJPUjogIHVwZGF0ZSBvciBkZWxl dGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCAidGVtcG9yYWxfZmtfcm5nMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIi CitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAy LTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVy Ii4KKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBOTyBBQ1RJT04KKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3JuZzJwZXI7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2Zr OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgT04gVVBEQVRFIE5PIEFDVElPTjsK Ky0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24n dCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsK K1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlk X3RpbCA9ICcyMDE2LTAyLTAxJyBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0 aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVj YXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQg PSAnWzUsNV0nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwK KyAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywz XScsICdbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKScsICdbNSw1XScpOworVVBEQVRFIHRlbXBvcmFs X3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDMt MDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5E IHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVk Z2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNiw3KScsICcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNiw3KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMKKyAgKCdbNCw1KScsICdbMjAxOC0wMS0xNSwyMDE4LTAyLTE1KScsICdb Niw3KScpOworVVBEQVRFIHRlbXBvcmFsX3BlcgorU0VUIHZhbGlkX2Zyb20gPSBDQVNFIFdIRU4g dmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAxLTAxJworICAgICAgICAgICAg ICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAxLTA1 JyBFTkQ6OmRhdGUsCisgICAgdmFsaWRfdGlsID0gIENBU0UgV0hFTiB2YWxpZF9mcm9tID0gJzIw MTgtMDEtMDEnIFRIRU4gJzIwMTgtMDEtMDUnCisgICAgICAgICAgICAgICAgICAgICAgV0hFTiB2 YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIFRIRU4gJzIwMTgtMDMtMDEnIEVORDo6ZGF0ZQorV0hF UkUgaWQgPSAnWzYsNyknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGgg YXJlIHJlZmVyZW5jZWQ6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIw MTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBB TkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEn OworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xh dGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShb NSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0 YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIuCistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJl Y2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCwgYnV0IG5vdCAndGlsIGNvbW1pdDoKK0JFR0lOOwor ICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7 CisgIFVQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZh bGlkX3RpbCA9ICcyMDE2LTAyLTAxJworICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKK0VSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0YWJsZSAidGVt cG9yYWxfZmtfcm5nMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsy MDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRl bXBvcmFsX2ZrX3JuZzJwZXIiLgorLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XScg QU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAx JzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0 YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20g dGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2Vk IHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDddJwor V0hFUkUgaWQgPSAnWzUsNV0nOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERB VEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1 JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsK K0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRl cyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0YWJs ZSAidGVtcG9yYWxfZmtfcm5nMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUs NiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFi bGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hF UkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzUsNikgfCAyMDE2LTAyLTAxIHwgMjAxNi0wMy0wMQorIFs1LDYpIHwgMjAxOC0w MS0wMSB8IDIwMTgtMDEtMDIKKyBbNSw2KSB8IDIwMTgtMDEtMDMgfCAyMDE4LTAyLTAxCisgWzcs OCkgfCAyMDE4LTAxLTAyIHwgMjAxOC0wMS0wMworKDQgcm93cykKKworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgWzIw MTgtMDEtMDUsMjAxOC0wMS0xMCkgfCBbNSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0 aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgor REVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwg PSAnMjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgt MDEtMDEsMjAxOC0wMi0wMSknOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJF U1RSSUNUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgIE9OIFVQ REFURSBSRVNUUklDVDsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUg bnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAxJywg JzIwMTgtMDItMDEnKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAx Ni0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJyBXSEVSRSBpZCA9ICdbNSw1XSc7Cist LSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlz IHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywg JzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMywzXScsICdbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKScsICdbNSw1XScpOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywgdmFsaWRf dGlsID0gJzIwMTYtMDMtMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAn MjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIEEgUEsgdXBkYXRl IHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdb Niw3KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNiw3KScsICcyMDE4LTAy LTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNCw1KScsICdbMjAxOC0wMS0xNSwy MDE4LTAyLTE1KScsICdbNiw3KScpOworVVBEQVRFIHRlbXBvcmFsX3BlcgorU0VUIHZhbGlkX2Zy b20gPSBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAxLTAx JworICAgICAgICAgICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBU SEVOICcyMDE4LTAxLTA1JyBFTkQ6OmRhdGUsCisgICAgdmFsaWRfdGlsID0gIENBU0UgV0hFTiB2 YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIFRIRU4gJzIwMTgtMDEtMDUnCisgICAgICAgICAgICAg ICAgICAgICAgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIFRIRU4gJzIwMTgtMDMtMDEn IEVORDo6ZGF0ZQorV0hFUkUgaWQgPSAnWzYsNyknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgor REVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNiw3KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0w MSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIu CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAo ZXZlbiBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgICAg REVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIFVQREFURSB0ZW1wb3JhbF9wZXIgU0VU IHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJworICBX SEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlk X3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAi dGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9m a19ybmcycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIKK0RFVEFJTDogIEtl eSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGls bCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiLgorUk9MTEJBQ0s7 CistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVy IFNFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcy MDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRhdGUg b3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19y bmcycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEs MjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtf cm5nMnBlciIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBE QVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0w MicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XSc7 CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJwor U0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcy cGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAx OC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5n MnBlciIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywg J1s3LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8IDIw MTYtMDItMDEgfCAyMDE2LTAzLTAxCisgWzUsNikgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wMgor IFs1LDYpIHwgMjAxOC0wMS0wMyB8IDIwMTgtMDItMDEKKyBbNyw4KSB8IDIwMTgtMDEtMDIgfCAy MDE4LTAxLTAzCisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIg V0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEw KSB8IFs1LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVj b3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VU IHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJworV0hF UkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90 aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8g QUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworLS0gYSBQ SyBkZWxldGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVy ZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgZGVsZXRlIHRo YXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNh dXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzMsM10nLCAnWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCknLCAnWzUsNV0nKTsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAn MjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIGEgUEsgZGVsZXRl IHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorREVMRVRFIEZST00gdGVt cG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAx JyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgor REVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0w MSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIu CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCwg YnV0IG5vdCAndGlsIGNvbW1pdDoKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgICAg REVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3Bl ciBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIKK0RFVEFJ TDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBp cyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiLgorLS0g ZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIw MTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBm YWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw1XSc7CitF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnBlcl9mayIgb24gdGFibGUg InRlbXBvcmFsX2ZrX3JuZzJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYp LCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxl ICJ0ZW1wb3JhbF9ma19ybmcycGVyIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIFdIRVJF IGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAg fCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFs1LDYpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDIKKyBbNSw2KSB8IDIwMTgtMDEt MDMgfCAyMDE4LTAyLTAxCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJwZXIgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4 LTAxLTEwKSB8IFs1LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3Rpbmcg RksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScg QU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg ZGVsZXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtf cm5nMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cgorICBPTiBERUxFVEUgUkVTVFJJQ1Q7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsK Ky0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQg aXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcy MDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCkn LCAnWzUsNV0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScg QU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAx JzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2Vk IChldmVuIGJlZm9yZSBjb21taXQpOgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAg ICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRFIEZST00gdGVtcG9yYWxf cGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQg dmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRh YmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIuCitST0xM QkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEt MDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gZGVsZXRpbmcganVz dCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAn WzUsNV0nOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIi IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRf YXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTAyCisgWzUsNikg fCAyMDE4LTAxLTAzIHwgMjAxOC0wMi0wMQorKDIgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgWzIwMTgt MDEtMDUsMjAxOC0wMS0xMCkgfCBbNSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUg b2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVM RVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIw MTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0gcm5nMnBlciB0 ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5jZWQg dXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJl bmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0t IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNF VCBERUZBVUxUCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xz KQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNl ZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0 ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJl bmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0KK1RSVU5DQVRFIHRl bXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIw MjEtMDEtMDEpJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrLAorICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgICAgT04gREVMRVRF IENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0w MS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYs NykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzEwMCwx MDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9u LUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUg aWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTkt MDEtMDEpIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3 LDgpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNyw4KQorKDMgcm93 cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0w MSknLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5LDldJyBXSEVS RSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFs5LDEwKQorIFsy MDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQorVFJVTkNBVEUgdGVt cG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAy MS0wMS0wMSknLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsy MDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVs ZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lkIAorLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAw XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVt cG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sy MDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp IHwgWzgsOSkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBOVUxMCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAw LDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJw ZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgICBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9wZXIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAn WzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAx OC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAy MC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcp CisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VU IGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKSB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgCiso MyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0n LCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEn LCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIx LTAxLTAxKScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksOV0n IFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzIw MCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQorKDIgcm93cykKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorVFJVTkNBVEUgdGVt cG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAy MS0wMS0wMSknLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsy MDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEs MjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IAor KDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhd JywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAy MS0wMS0wMSknLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9 ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsyMDAsMjAxKSB8IFsy MDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Bl ciwgdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScsIG51bGwsIG51bGwpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEw MF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrLAorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisg ICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRv dmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDdd JyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIg V0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEt MDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEt MDEpIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3 KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNF VCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMTkt MDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb OCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0n LCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9w ZXIgU0VUIGlkID0gJ1s5LDldJyBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVS RSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwy MDIwLTAxLTAxKSB8IFstMSwwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBT RVQgREVGQVVMVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcm5nMnBl cjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWy0xLC0xXScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAy MS0wMS0wMSknLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsy MDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lk IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApCisgWzEwMCwxMDEpIHwg WzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKSB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAw LDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9 ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAx LTAxKSB8IFstMSwwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgs OSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURF ICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxf ZmsyX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICdbMjAx OC0wMS0wMSwyMDIxLTAxLTAxKScsICdbNiw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmsyX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVy X2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9maworICAgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENB U0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0w MS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIw LTAxLTAxKSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVw ZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9 ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAw LDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsx MDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzcsOCkgICAgICB8IFs2LDcpCisg WzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNyw4KSAgICAgIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScs ICdbOCw4XScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbOSw5 XScgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwg WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbOSwxMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkg fCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykK KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIg Y29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEt MDEtMDEpJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0w MSwyMDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24t RlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZd JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwx MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9hdCB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KygwIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScs ICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEg PSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDEgcm93KQorCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2 LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZd JywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBP TiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJv dGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUg aWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcp CisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisg WzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VU IGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwg cGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEp IHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwg ICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgICAg ICAgICAgICB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIw MjEtMDEtMDEpJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQg aWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlk ID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMjAw LDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIg cm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28g c2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3Ju ZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0w MSwyMDIxLTAxLTAxKScsICdbNiw2XScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIw MTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0g bm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdb Niw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkg fCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKygzIHJvd3MpCisKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAo aWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0n LCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIy IChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4 XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScsICdbOCw4XScp OworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9y bmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAg ICAgICAgfCAKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAg ICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZd JywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZdJywg J1s2LDZdJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1 bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9y bmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklP RCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUg U0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CitFUlJPUjogIGNvbHVtbiAi dmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBF UklPRAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBP TiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUg aWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcp CisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgWzYs NykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBb Niw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9y bmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8ICAgICAg ICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAg ICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCAg ICAgICAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0w MS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sy MDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIw MSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCBbOCw5KQorIFsyMDAs MjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiBy b3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3 byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJf cm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIG51bGwsIG51bGwpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0w MS0wMSknLCAnWzYsNl0nLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcy cGVyCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAg QUxURVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBP TiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3XScs IGlkMiA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwg cGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEp IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0w MSkgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRl OgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbNyw3XScsIGlkMiA9ICdbNyw3XScg V0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIg V0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApICAgICB8 IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAg ICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWy0xLDAp ICAgICB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAx LDIwMjEtMDEtMDEpJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBT RVQgaWQxID0gJ1s5LDldJywgaWQyID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2 YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFst MSwwKSAgICAgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8 IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVt cG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywg J1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwg aWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJw ZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwx MDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBs ZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3 KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFst MSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8 IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50 X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0x LDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwg Wy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp IHwgWy0xLDApICAgICB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEn LCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1sy MDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQg PSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsy MDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQor IFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkp CisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFV TFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRl bXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScs ICdbNiw2XScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBp ZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBl ciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEw MF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGZh aWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrMl9ybmcycGVyCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZB VUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2Zr LAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9maworICAgIEZPUkVJR04g S0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkg T04gVVBEQVRFIFNFVCBERUZBVUxUOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVu Y2VkIGluIE9OIERFTEVURSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEg U0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Ju ZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrCisgICAg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAg ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHBh cmVudF9pZDEpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4 LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIw MTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKwor LS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9 ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAw LDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsx MDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFs2LDcpCisg WzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1stMSwtMV0nLCAnWzgsOF0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScsICdb OCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBh cmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8 IFstMSwwKSAgICAgfCBbOCw5KQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGT1JFSUdOIEtF WSwgUEVSSU9EIHJlZmVyZW5jZXMgcmFuZ2UKKy0tCistLSB0ZXN0IHRhYmxlIHNldHVwCitEUk9Q IFRBQkxFIHRlbXBvcmFsX3JuZyBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBj b25zdHJhaW50IHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgb24gdGFibGUgdGVtcG9yYWxfZmtfcm5n MnJuZworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFs aWRfYXQgZGF0ZXJhbmdlCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX3JuZ19waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpOworLS0gQ2FuJ3QgY3JlYXRlIGEgRksgd2l0aCBhIG1pc21hdGNoZWQgcmFu Z2UgdHlwZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFu Z2UsCisgIHZhbGlkX2Zyb20gaW50LAorICB2YWxpZF90aWwgaW50LAorICBwYXJlbnRfaWQgaW50 NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5n X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJybmdfZmsiIGNhbm5vdCBiZSBpbXBs ZW1lbnRlZAorREVUQUlMOiAgS2V5IGNvbHVtbnMgInZhbGlkX2F0IiBhbmQgInZhbGlkX2F0IiBh cmUgb2YgaW5jb21wYXRpYmxlIHR5cGVzOiBpbnQ0cmFuZ2UgYW5kIGRhdGVyYW5nZS4KKy0tIHdv cmtzOiByYW5nZSBmb3IgcmVmZXJlbmNlZCwgUEVSSU9EIGZvciByZWZlcmVuY2luZworQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zy b20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAg ICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9ma19wZXIycm5nIgorICAgQ29sdW1uICAg fCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAg ICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwg ZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQgIHwgaW50NHJhbmdlIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX2ZrX3BlcjJybmdfcGsiIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFp bnRzOgorICAgICJ0ZW1wb3JhbF9ma19wZXIycm5nX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFs aWRfZnJvbSA8IHZhbGlkX3RpbCkKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1w b3JhbF9ma19wZXIycm5nX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisKK0RST1Ag VEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZzsKKy0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29s dW1uczoKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZh bGlkX2F0KQorLS0gUkVGRVJFTkNFUyBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zy b20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBv biB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNlZCB0YWJsZQorLS0g KHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkKKy0tIGJvdGgg c2hvdWxkIHNwZWNpZnkgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcg KAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUs CisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisg ICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZv cmVpZ24ga2V5IG11c3QgdXNlIFBFUklPRCB3aGVuIHJlZmVyZW5jaW5nIGEgcHJpbWFyeSB1c2lu ZyBXSVRIT1VUIE9WRVJMQVBTCistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAo aWQsIFBFUklPRCB2YWxpZF9hdCkKKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNpZnkg UEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRyYW5n ZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGlu dDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwK KyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJu Z19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5 IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5j aW5nIHRhYmxlCistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRd CistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0 ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBG T1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyk7CitFUlJP UjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBu b3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp IFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBp ZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBh cmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor ICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5 IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVu Y2VkIHRhYmxlCistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0 KQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFu Z2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQs IFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9u IHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSB3 aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgorLS0gKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ma19wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisg IHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwK KyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworKTsKK0RS T1AgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZzsKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMg W2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9p ZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X3JuZworKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5j ZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKKy0tIHNob3VsZCBmYWlsIGJl Y2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ma19wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisg IHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwK KyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCBwYXJlbnRfaWQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQ RVJJT0QgaWQpCispOworRVJST1I6ICBmb3JlaWduIGtleSByZWZlcmVuY2VkLWNvbHVtbnMgbGlz dCBtdXN0IG5vdCBjb250YWluIGR1cGxpY2F0ZXMKKy0tIFR3byBzY2FsYXIgY29sdW1ucworRFJP UCBUQUJMRSB0ZW1wb3JhbF9ybmcyIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRv IGNvbnN0cmFpbnQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsgb24gdGFibGUgdGVtcG9yYWxfZmsy X3JuZzJybmcKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcyICgKKyAgaWQxIGludDRyYW5nZSwK KyAgaWQyIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBDT05TVFJBSU5UIHRl bXBvcmFsX3JuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50 X2lkMSBpbnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmsy X3BlcjJybmcKKyAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9mazJfcGVyMnJuZyIK KyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0 IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisg dmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRf dGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lkMSB8 IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lkMiB8IGludDRy YW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2 YWxpZF9mcm9tLCB2YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9mazJfcGVyMnJu Z19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sg Y29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrMl9wZXIycm5nX3ZhbGlkX2F0X2NoZWNrIiBD SEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgor ICAgICJ0ZW1wb3JhbF9mazJfcGVyMnJuZ19mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyKGlkMSwg aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmc7 CistLQorLS0gdGVzdCBBTFRFUiBUQUJMRSBBREQgQ09OU1RSQUlOVAorLS0KK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRh dGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0Qg Rk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlk X2F0KTsKKy0tIFR3byBzY2FsYXIgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJf cGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90 aWwgZGF0ZSwKKyAgcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdl LAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnJuZwor ICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpOworXGQgdGVtcG9yYWxfZmsy X3BlcjJybmcKKyAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9mazJfcGVyMnJuZyIK KyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0 IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisg dmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRf dGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lkMSB8 IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lkMiB8IGludDRy YW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2 YWxpZF9mcm9tLCB2YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9mazJfcGVyMnJu Z19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sg Y29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrMl9wZXIycm5nX3ZhbGlkX2F0X2NoZWNrIiBD SEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgor ICAgICJ0ZW1wb3JhbF9mazJfcGVyMnJuZ19mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyKGlkMSwg aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVy ZW5jZWQgdGFibGUsIGFuZCB3cm9uZyBjb2x1bW4gdHlwZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmssCisg IERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdCwKKyAgQUxURVIgQ09MVU1OIHZhbGlkX2Zyb20gVFlQ RSB0aW1lc3RhbXAsCisgIEFMVEVSIENPTFVNTiB2YWxpZF90aWwgVFlQRSB0aW1lc3RhbXAsCisg IEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX2ZrX3BlcjJybmdfZmsiIGNhbm5vdCBiZSBpbXBsZW1lbnRlZAorREVUQUlMOiAg S2V5IGNvbHVtbnMgInZhbGlkX2F0IiBhbmQgInZhbGlkX2F0IiBhcmUgb2YgaW5jb21wYXRpYmxl IHR5cGVzOiB0c3JhbmdlIGFuZCBkYXRlcmFuZ2UuCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19w ZXIycm5nCisgIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdCwKKyAgQUxURVIgQ09MVU1OIHZhbGlk X2Zyb20gVFlQRSBkYXRlLAorICBBTFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZUEUgZGF0ZSwKKyAg QUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCk7CistLSB3aXRo IGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgorQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfcGVyMnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisg IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9ybmc7CistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVu Y2VkIGNvbHVtbnM6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsyCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCBwYXJlbnRfaWQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9E IGlkKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgcmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBu b3QgY29udGFpbiBkdXBsaWNhdGVzCistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFkeQorLS0K K0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgn WzEsMV0nLCAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMyknKSwKKyAgKCdbMSwxXScsICdbMjAxOC0w My0wMywyMDE4LTA0LTA0KScpLAorICAoJ1syLDJdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDEtMDUp JyksCisgICgnWzMsM10nLCAnWzIwMTgtMDEtMDEsKScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mazsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMV0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAxJywg J1sxLDFdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdf Zms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0w NC0wMScsICdbMSwxXScpOworLS0gc2hvdWxkIGZhaWw6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19wZXIycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtf cGVyMnJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVy MnJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAx OC0wMS0wMiwyMDE4LTA0LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3Ju ZyIuCistLSBva2F5IGFnYWluOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworLS0KKy0tIHRlc3QgcGdfZ2V0X2NvbnN0cmFp bnRkZWYKKy0tCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0 cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ma19wZXIycm5nX2ZrJzsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZyhpZCwgUEVSSU9EIHZhbGlkX2F0KQorKDEgcm93KQorCistLQorLS0gdGVzdCBGSyBy ZWZlcmVuY2luZyBpbnNlcnRzCistLQorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwxXScsICcy MDE4LTAxLTAyJywgJzIwMTgtMDItMDEnLCAnWzEsMV0nKTsKKy0tIHNob3VsZCBmYWlsOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMiwyXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnLCAn WzEsMV0nKTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtf cGVyMnJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVy MnJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAx OC0wMS0wMiwyMDE4LTA0LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3Ju ZyIuCistLSBub3cgaXQgc2hvdWxkIHdvcms6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMV0nLCAnWzIwMTgtMDItMDMsMjAxOC0wMy0wMyknKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAx JywgJ1sxLDFdJyk7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorLS0g c2xpZGUgdGhlIGVkZ2UgYWNyb3NzIGEgcmVmZXJlbmNlZCB0cmFuc2l0aW9uOgorVVBEQVRFIHRl bXBvcmFsX2ZrX3BlcjJybmcgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsIHZhbGlkX3Rp bCA9ICcyMDE4LTAyLTIwJyBXSEVSRSBpZCA9ICdbMSwxXSc7CistLSBzaG91bGQgZmFpbDoKK1VQ REFURSB0ZW1wb3JhbF9ma19wZXIycm5nIFNFVCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDInLCB2 YWxpZF90aWwgPSAnMjAxOC0wNS0wMScgV0hFUkUgaWQgPSAnWzEsMV0nOworRVJST1I6ICBpbnNl cnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIiB2aW9sYXRlcyBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIgorREVUQUlMOiAgS2V5 IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDUtMDEpKSBp cyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcm5nIi4KK1VQREFURSB0ZW1wb3JhbF9m a19wZXIycm5nIFNFVCBwYXJlbnRfaWQgPSAnWzgsOF0nIFdIRVJFIGlkID0gJ1sxLDFdJzsKK0VS Uk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIKK0RF VEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFs4LDkpLCBbMjAxOC0wMS0wMiwyMDE4 LTAyLTIwKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3JuZyIuCistLSBBTFRF UiBGSyBERUZFUlJBQkxFCitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUworICAgICgnWzUsNV0nLCAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkn KSwKKyAgICAoJ1s1LDVdJywgJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJyk7CisgIElOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZCkgVkFMVUVTCisgICAgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAn WzUsNV0nKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICAgIEFMVEVSIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZ IERFRkVSUkVEOworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0n OyAtLXNob3VsZCBub3QgZmFpbCB5ZXQuCitDT01NSVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCitF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIgb24gdGFibGUg InRlbXBvcmFsX2ZrX3BlcjJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYp LCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxl ICJ0ZW1wb3JhbF9ma19wZXIycm5nIi4KKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRl cyBOTyBBQ1RJT04KKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJy bmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZwor ICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAg T04gVVBEQVRFIE5PIEFDVElPTjsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVz ZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDIt MDEpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0wMSwy MDE2LTAyLTAxKScgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNj ZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhl IHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDVd JzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdb NSw1XScsICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKScpLAorICAoJ1s1LDVdJywgJ1syMDE4LTAy LTAxLDIwMTgtMDMtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgt MDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw1XScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQg dmFsaWRfYXQgPSAnWzIwMTYtMDItMDEsMjAxNi0wMy0wMSknCitXSEVSRSBpZCA9ICdbNSw1XScg QU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJzsKKy0tIEEgUEsgdXBkYXRl IHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s2LDcpJywgJ1syMDE4 LTAxLTAxLDIwMTgtMDItMDEpJyksCisgICgnWzYsNyknLCAnWzIwMTgtMDItMDEsMjAxOC0wMy0w MSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzQsNSknLCAnMjAxOC0wMS0xNScsICcy MDE4LTAyLTE1JywgJ1s2LDcpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nCitTRVQgdmFsaWRfYXQg PSBDQVNFIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDEtMDEnIFRIRU4gZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKQorICAgICAgICAgICAgICAgICAgICBXSEVOIGxv d2VyKHZhbGlkX2F0KSA9ICcyMDE4LTAyLTAxJyBUSEVOIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScs ICcyMDE4LTAzLTAxJykgRU5ECitXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBhIFBLIHVwZGF0ZSB0 aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK1VQREFURSB0ZW1wb3JhbF9y bmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAxLTAxLDIwMTYtMDItMDEpJworV0hFUkUgaWQgPSAn WzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSc7CitFUlJPUjog IHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWln biBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIgb24gdGFibGUgInRlbXBv cmFsX2ZrX3BlcjJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAx OC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1w b3JhbF9ma19wZXIycm5nIi4KKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3Ro IGFyZSByZWZlcmVuY2VkLCBidXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJybmdfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgVVBEQVRF IHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTYtMDEtMDEsMjAxNi0wMi0wMSknCisg IFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpOworQ09NTUlUOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRh YmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3BlcjJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIuCistLSBj aGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBp ZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEt MDEsMjAxOC0wMi0wMSknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1w b3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3Bl cjJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJl ZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIuCistLSBjaGFuZ2luZyBh biB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQg aWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFy dCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUg aWQgPSAnWzUsNV0nOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJy bmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIgorREVUQUlMOiAgS2V5IChpZCwg dmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVy ZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIuCitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbNSw2KSB8IFsyMDE2LTAyLTAxLDIwMTYtMDMtMDEpCisg WzUsNikgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKQorIFs1LDYpIHwgWzIwMTgtMDEtMDMsMjAx OC0wMi0wMSkKKyBbNyw4KSB8IFsyMDE4LTAxLTAyLDIwMTgtMDEtMDMpCisoNCByb3dzKQorCitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwg cGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzMsNCkgfCAyMDE4LTAxLTA1IHwgMjAxOC0wMS0xMCB8IFs1LDYpCisoMSByb3cpCisKKy0t IHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRh dGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0g J1szLDNdJzsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAxLTAx LDIwMTYtMDItMDEpJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKSc7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVT VFJJQ1QKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgT04gVVBE QVRFIFJFU1RSSUNUOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBu dW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNV0nLCAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknKTsK K1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAxLTAxLDIwMTYtMDIt MDEpJyBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2 ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2Ug aXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDVdJywg J1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyksCisgICgnWzUsNV0nLCAnWzIwMTgtMDItMDEsMjAx OC0wMy0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScs ICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9h dCA9ICdbMjAxNi0wMi0wMSwyMDE2LTAzLTAxKScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFs aWRfYXQgPSAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSknOworLS0gQSBQSyB1cGRhdGUgc2xpZGlu ZyB0aGUgZWRnZSBiZXR3ZWVuIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzYsNyknLCAnWzIwMTgtMDEtMDEs MjAxOC0wMi0wMSknKSwKKyAgKCdbNiw3KScsICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNCw1KScsICcyMDE4LTAxLTE1JywgJzIwMTgtMDIt MTUnLCAnWzYsNyknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcKK1NFVCB2YWxpZF9hdCA9IENBU0Ug V0hFTiBsb3dlcih2YWxpZF9hdCkgPSAnMjAxOC0wMS0wMScgVEhFTiBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMS0wNScpCisgICAgICAgICAgICAgICAgICAgIFdIRU4gbG93ZXIodmFs aWRfYXQpID0gJzIwMTgtMDItMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgt MDMtMDEnKSBFTkQKK1dIRVJFIGlkID0gJ1s2LDcpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzYsNyksIFsyMDE4LTAxLTAxLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmci LgorLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQg KGV2ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICAg IERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBVUERBVEUgdGVtcG9yYWxfcm5nIFNF VCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0wMSwyMDE2LTAyLTAxKScKKyAgV0hFUkUgaWQgPSAnWzUs NV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSc7CitFUlJPUjogIHVw ZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBr ZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFs X2ZrX3BlcjJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3Jh bF9ma19wZXIycm5nIi4KK1JPTExCQUNLOworLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZh aWxzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdb NSw1XScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKK0VSUk9SOiAg dXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9y YWxfZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4 LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBv cmFsX2ZrX3BlcjJybmciLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2th eToKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAn WzUsNV0nOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxf cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0w MS0xMCcKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK0VSUk9SOiAgdXBk YXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxf ZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAx LTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFs X2ZrX3BlcjJybmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdb NSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzUs NikgfCBbMjAxNi0wMi0wMSwyMDE2LTAzLTAxKQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOC0w MS0wMikKKyBbNSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpCisgWzcsOCkgfCBbMjAxOC0w MS0wMiwyMDE4LTAxLTAzKQorKDQgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19w ZXIycm5nIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlk ICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIw MTgtMDEtMTAgfCBbNSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5n IEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00g dGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMywzXSc7CitVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0wMSwyMDE2LTAyLTAxKScKK1dIRVJFIGlkID0g J1s1LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknOworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Bl cjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZms7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgYmVj YXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgt MDItMDEpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nOwor LS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBp cyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIw MTgtMDItMDEpJyksCisgICgnWzUsNV0nLCAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywg J1s1LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nIEFO RCB2YWxpZF9hdCA9ICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKSc7CistLSBhIFBLIGRlbGV0ZSB0 aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAxLDIw MTgtMDItMDEpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxf cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVu Y2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciLgorLS0gYSBQSyBkZWxldGUgdGhh dCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6 CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICAgIEFMVEVSIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZ IERFRkVSUkVEOworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitD T01NSVQ7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIg b24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9h dCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBm cm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIi4KKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJl bmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQg PSAnWzUsNV0nOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRP ICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNV0nOworRVJST1I6ICB1cGRhdGUgb3IgZGVs ZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX3BlcjJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5n IgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0w Mi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJu ZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3 LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbNSw2KSB8IFsyMDE4 LTAxLTAxLDIwMTgtMDEtMDIpCisgWzUsNikgfCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKQorKDIg cm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkIGluICgn WzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFs aWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIwMTgtMDEtMTAgfCBbNSw2KQorKDEg cm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNh bWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBX SEVSRSBpZCA9ICdbMywzXSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAn WzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSc7CistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKKy0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgT04gREVMRVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDVdJywgJ1syMDE4LTAxLTAx LDIwMTgtMDItMDEpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUs NV0nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJp YyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDVdJywgJ1syMDE4LTAx LTAxLDIwMTgtMDItMDEpJyksCisgICgnWzUsNV0nLCAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSkn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAx LTEwJywgJ1s1LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUs NV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKSc7CistLSBhIFBLIGRl bGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZlbiBiZWZvcmUg Y29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgICAg QUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgICAgREVGRVJSQUJMRSBJ TklUSUFMTFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9 ICdbNSw1XScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKK0VSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVt cG9yYWxfZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsy MDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRl bXBvcmFsX2ZrX3BlcjJybmciLgorUk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5j ZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0g J1s1LDVdJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVt cG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAn MjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmci LgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdbNyw3 XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzUsNikgfCBbMjAxOC0w MS0wMSwyMDE4LTAxLTAyKQorIFs1LDYpIHwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkKKygyIHJv d3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCBpbiAoJ1sz LDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlk X3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMyw0KSB8IDIwMTgtMDEtMDUgfCAyMDE4LTAxLTEwIHwgWzUsNikKKygxIHJv dykKKworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1l IFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hF UkUgaWQgPSAnWzMsM10nOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1 LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknOworLS0KKy0tIHBl cjJybmcgdGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMKKy0tCistLSBUT0M6CistLSByZWZl cmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0t IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2Fs YXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMp CistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNl ZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0t IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVm ZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vi c2V0KQorLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNl0nLCAnWzIwMTgtMDEtMDEsMjAy MS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maywKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworICAgIE9O IERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9t IHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0w MSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbNyw4KQor IFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykKKygzIHJvd3MpCisK Ky0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsN10n IFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAx IHwgMjAxOS0wMS0wMSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEt MDEgfCBbNyw4KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzcsOCkK KygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1syMDE4LTAx LTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdb OCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0g J1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50 X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzksMTApCisgWzIwMCwyMDEp IHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9y bmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzYsNl0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8g JzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0w MSB8IDIwMjEtMDEtMDEgfCBbNiw3KQorKDIgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworIGlkIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCB8IHBhcmVudF9pZCAKKy0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhd JywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19w ZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sy MDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxp ZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAy MS0wMS0wMSB8IFs4LDkpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBk YXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVy MnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Niw2XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisg ICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nCisgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVM TDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VU IGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEt MDEgfCAyMDIwLTAxLTAxIHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEg fCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lk IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgCisgWzEwMCwxMDEpIHwgMjAxOS0w MS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0w MSB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzIw MTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUg aWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBw YXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMjAwLDIwMSkg fCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVz dCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9y bmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzYsNl0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8g JzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0w MSB8IDIwMjAtMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8 IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Bl cjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAx OC0wMS0wMSB8IDIwMTktMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0w MS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgCisoMyByb3dz KQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIw LTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDhdJywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJu ZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAx LTAxIHwgMjAyMC0wMS0wMSB8IAorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAx IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBT RVQgREVGQVVMVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEs LTFdJywgJygsKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s2LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0n KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVu dF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisg ICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQg REVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3Ju ZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIw MTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8 IDIwMjEtMDEtMDEgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERB VEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwg IHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWy0xLDApCisg WzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkg fCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJu ZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9y YWxfcm5nIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0w MSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0w MS0wMSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0 ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3Bl cjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn Wy0xLC0xXScsICcoLCknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNiw2XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2 LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0w MS0wMScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIy cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgt MDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAy MC0wMS0wMSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwg WzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVy MnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4 LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAy MDIwLTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEg fCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywg J1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4 LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lk IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsy MDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApCisgWzIwMCwyMDEpIHwg MjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcGVyMnJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0n LCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9w ZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZd JywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnJuZworICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9wZXIycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBP TiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlk MSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlk X2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQor IFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzcsOCkgICAgICB8IFs2LDcp CisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYs NykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIg U0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAx LTAxIHwgWzcsOCkgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAt MDEtMDEgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAy MS0wMS0wMSB8IFs3LDgpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEt MDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIg U0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVS RSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2 YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbOSwxMCkgICAgIHwgWzgs OSkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBb OCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NB REUgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3Jh bF9mazJfcGVyMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSkn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdb Niw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20g fCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAs MTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisoMiBy b3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hF UkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMTgt MDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg dmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkgICAgICB8IFs4 LDkpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVM TCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFs X2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrMl9wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJu Z19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAgICBGT1JF SUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUg U0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9y bmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIw MTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwg MjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAy MS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRh dGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAn WzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9t IHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEp IHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwg MjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCAgICAgICAgICAgIHwgCisoMyByb3dzKQorCistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMTgtMDEt MDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVt cG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9w ZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAg ICAgICAgfCAKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAg ICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwg dGVtcG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEt MDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBd JywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworLS0gbGVm dG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBp ZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxp ZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykK KyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBb MTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQor KDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcy IFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8ICAgICAgICAgICAg fCAKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAK KyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8ICAgICAgICAgICAgfCAKKygz IHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdbOCw4 XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICdbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0n KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg ICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRf aWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAg ICAgICAgIHwgCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAg ICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRl cyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLQorVFJVTkNB VEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywg J1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVy MnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScs ICdbNiw2XScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29s dW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJ T0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRF IFNFVCBOVUxMICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBOVUxMOworRVJST1I6ICBjb2x1bW4g InZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQ RVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAg T04gREVMRVRFIFNFVCBOVUxMIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBs ZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3 KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IFs2 LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwg WzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg ICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRf aWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCAgICAg ICAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAg ICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwg ICAgICAgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OF0nLCAnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJF IGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEt MDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgMjAyMC0w MS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xz KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIycm5nOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEs LTFdJywgJ1stMSwtMV0nLCAnKCwpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJ1syMDE4LTAxLTAxLDIw MjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwx MDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEg U0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMiBTRVQgREVG QVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19m aywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAgICBGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUg U0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3Jh bF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIw LTAxLTAxJyBTRVQgaWQxID0gJ1s3LDddJywgaWQyID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYs Nl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwg dmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEw MSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAw LDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMg cm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQx ID0gJ1s3LDddJywgaWQyID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBh cmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8 IDIwMTktMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0w MSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0w MS0wMSB8IDIwMjEtMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisoMyByb3dzKQorCistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMTgtMDEt MDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVt cG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDldJywgaWQyID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAn WzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50 X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAy MC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwg MjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQor VFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAn Wy0xLC0xXScsICcoLCknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0w MSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9 ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zy b20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAw LDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsx MDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQor IFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcp CisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Ju ZzIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWy0xLDApICAg ICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDAp ICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWy0x LDApICAgICB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhd JywgJ1s4LDhdJywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBp ZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAx IHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAx LTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMs IFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3Jh bF9mazJfcGVyMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbNiw2XScsICcoLCknKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0n LCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9w ZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZd JywgJ1s2LDZdJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBj b2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnJuZworICBBTFRFUiBDT0xVTU4g cGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfcGVyMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJy bmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZh bGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQg REVGQVVMVCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK0VSUk9SOiAgY29sdW1u ICJ2YWxpZF9hdCIgcmVmZXJlbmNlZCBpbiBPTiBERUxFVEUgU0VUIGFjdGlvbiBjYW5ub3QgYmUg UEVSSU9ECistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycm5nCisgIEFMVEVS IENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQ RVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVM RVRFIFNFVCBERUZBVUxUIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBs ZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3 KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFs2 LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwg WzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg ICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRf aWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbLTEs MCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFst MSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwg Wy0xLDApICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OF0nLCAnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbOCw4 XScsICcoLCknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8 IFs4LDkpCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAg IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tIEZLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZQorQ1JF QVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9ybmczICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBteWRhdGVyYW5n ZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmszX3JuZzJy bmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IG15ZGF0ZXJhbmdlLAorICBwYXJlbnRf aWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrM19ybmcycm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmszX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMyAoaWQsIFBFUklPRCB2YWxpZF9hdCkg T04gREVMRVRFIENBU0NBREUKKyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgbXlkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrM19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzUsNiknLCBteWRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMyBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUg aWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazNfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbNSw2KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9p ZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs1LDYp IHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbOCw5KQorIFs1LDYpIHwgWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSkgfCBbOCw5KQorKDIgcm93cykKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9mazNf cm5nMnJuZzsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nMzsKK0RST1AgVFlQRSBteWRhdGVyYW5n ZTsKKy0tCistLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlczogcmFuZ2VzCistLQorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf cGFyaXRpb25lZF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRwMSBQQVJUSVRJ T04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdb Myw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScsICdbMTMsMTQpJywg J1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMiknLCAnWzIzLDI0KScpOwor Q1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZP UiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScs ICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdbMTYsMTcpJywgJ1sxOCwxOSknLCAn WzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwKKyAgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwKKyAgKCdbMiwz KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0d28nKTsKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9E IHZhbGlkX2F0KQorKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRma3Ax IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMg SU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEy KScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMikn LCAnWzIzLDI0KScpOworQ1JFQVRFIFRBQkxFIHRma3AyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdb NCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScs ICdbMTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsK Ky0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2luZyBpbnNlcnRzCistLQorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDIt MTUnKSwgJ1sxLDIpJyksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDEtMDEtMDEnLCAnMjAw Mi0wMS0wMScpLCAnWzIsMyknKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScs ICcyMDAwLTAyLTE1JyksICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAxMC0wMi0xNScp LCAnWzEsMiknKTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDEiIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIw MTAtMDEtMDEsMjAxMC0wMi0xNSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmciLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZXJh bmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1szLDQpJyk7CitFUlJPUjogIGluc2Vy dCBvciB1cGRhdGUgb24gdGFibGUgInRma3AxIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5IChw YXJlbnRfaWQsIHZhbGlkX2F0KT0oWzMsNCksIFsyMDAwLTAxLTAxLDIwMDAtMDItMTUpKSBpcyBu b3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KKy0tCistLSBw YXJ0aXRpb25lZCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorVVBEQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDAwLTAxLTAx JywgJzIwMDAtMDItMTMnKSBXSEVSRSBpZCA9ICdbMiwzKSc7CistLSBtb3ZlIGEgcm93IGZyb20g dGhlIGZpcnN0IHBhcnRpdGlvbiB0byB0aGUgc2Vjb25kCitVUERBVEUgdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyBTRVQgaWQgPSAnWzQsNSknIFdIRVJFIGlkID0gJ1sxLDIpJzsKKy0t IG1vdmUgYSByb3cgZnJvbSB0aGUgc2Vjb25kIHBhcnRpdGlvbiB0byB0aGUgZmlyc3QKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFNFVCBpZCA9ICdbMSwyKScgV0hFUkUg aWQgPSAnWzQsNSknOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAw MC0wNC0wMScpIFdIRVJFIGlkID0gJ1sxLDIpJzsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZh bHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZmtwMV9wa2V5IgorREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMDAtMDEtMDEsMjAwMC0wNC0wMSkpIGNvbmZs aWN0cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDAwLTAxLTAx LDIwMDAtMDQtMDEpKS4KKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg Tk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE2LTAx LTAxJywgJzIwMTYtMDItMDEnKSk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNF VCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykgV0hFUkUg aWQgPSAnWzUsNiknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgt MDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMt MDEnKQorICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4 LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAn MjAxNi0wMi0wMScpCiAgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2ZrZXkxIiBvbiB0YWJs ZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVu Y2VkIGZyb20gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciLgpAQCAtNDQy OCw0ICs4ODY4LDE4IEBAIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTUsMTYpJzsKIAogRFJPUCBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9tbHRybmc7CistLQorLS0gRksgYmV0d2VlbiBwYXJ0aXRpb25lZCB0YWJsZXM6IFBFUklP RHMKKy0tCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcGVyICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBuYW1lIHRl eHQsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFyaXRpb25lZF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRF IFRBQkxFIHRwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcGVyIEZPUiBWQUxV RVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzEx LDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwy MiknLCAnWzIzLDI0KScpOworRVJST1I6ICBJbmhlcml0aW5nIGZyb20gYSB0YWJsZSB3aXRoIGEg UEVSSU9EIGlzIG5vdCBzdXBwb3J0ZWQKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf cGVyOwogUkVTRVQgZGF0ZXN0eWxlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJh bGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXgg YTRlNTU5ZmU0MTkuLjJjYWM4YWFkZjRkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Bh cmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUK QEAgLTQzLDcgKzQzLDcgQEAgdGVzdDogY29weSBjb3B5c2VsZWN0IGNvcHlkbWwgaW5zZXJ0IGlu c2VydF9jb25mbGljdAogIyBOb3RlOiBtYW55IG9mIHRoZSB0ZXN0cyBpbiBsYXRlciBncm91cHMg ZGVwZW5kIG9uIGNyZWF0ZV9pbmRleAogIyAtLS0tLS0tLS0tCiB0ZXN0OiBjcmVhdGVfZnVuY3Rp b25fYyBjcmVhdGVfbWlzYyBjcmVhdGVfb3BlcmF0b3IgY3JlYXRlX3Byb2NlZHVyZSBjcmVhdGVf dGFibGUgY3JlYXRlX3R5cGUgY3JlYXRlX3NjaGVtYQotdGVzdDogY3JlYXRlX2luZGV4IGNyZWF0 ZV9pbmRleF9zcGdpc3QgY3JlYXRlX3ZpZXcgaW5kZXhfaW5jbHVkaW5nIGluZGV4X2luY2x1ZGlu Z19naXN0Cit0ZXN0OiBjcmVhdGVfaW5kZXggY3JlYXRlX2luZGV4X3NwZ2lzdCBjcmVhdGVfdmll dyBpbmRleF9pbmNsdWRpbmcgaW5kZXhfaW5jbHVkaW5nX2dpc3QgcGVyaW9kcwogCiAjIC0tLS0t LS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZm9yX3BvcnRpb25fb2Yuc3FsCmluZGV4IGY2ZmIwODAxYzYyLi5mNTkwMWZjMDBlZSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbApAQCAtNTA5LDYgKzUwOSwzOCBA QCBTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKIAogRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKIAorLS0gVGVzdCB3aXRoIFBF UklPRHMKKworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQgaW50NHJh bmdlIE5PVCBOVUxMLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBu YW1lIHRleHQgTk9UIE5VTEwsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCksCisgIENPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfdGVzdDJfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9w b3J0aW9uX29mX3Rlc3QyCitWQUxVRVMKKygnWzEsMiknLCAnMjAxOC0wMS0wMicsICcyMDE4LTAy LTAzJywgJ29uZScpLAorKCdbMSwyKScsICcyMDE4LTAyLTA0JywgJzIwMTgtMDMtMDMnLCAnb25l JyksCisoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcsICdvbmUnKSwKKygnWzIs MyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTA1LTAxJywgJ3R3bycpLAorKCdbMyw0KScsICcyMDE4 LTAxLTAxJywgbnVsbCwgJ3RocmVlJyk7Cis7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0 MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xMCcgVE8gJzIwMTgtMDIt MTAnCitTRVQgbmFtZSA9ICdvbmVeMScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworREVMRVRFIEZS T00gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMTUnIFRPICcyMDE4LTAyLTE1JworV0hFUkUgaWQgPSAnWzIsMyknOworCitTRUxFQ1Qg KiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworRFJP UCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKKwogLS0gVGVzdCB3aXRoIGEgY3VzdG9tIHJh bmdlIHR5cGUKIAogQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRl KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BlcmlvZHMuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcGVyaW9kcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjVkMzk3MTJkMmI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcGVyaW9kcy5zcWwKQEAgLTAsMCArMSwxNzggQEAKKy8qIFN5c3RlbSBwZXJpb2RzIGFy ZSBub3QgaW1wbGVtZW50ZWQgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0 ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBzeXN0ZW1fdGltZSAoZHMsIGRlKSk7CisKKy8qIFBlcmlv ZHMgbXVzdCBzcGVjaWZ5IGFjdHVhbCBjb2x1bW5zICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGlu dGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoYm9ndXMsIGRlKSk7CitjcmVh dGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAo ZHMsIGJvZ3VzKSk7CisKKy8qIERhdGEgdHlwZXMgbXVzdCBtYXRjaCBleGFjdGx5ICovCitjcmVh dGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIHRpbWVzdGFtcCwgcGVyaW9kIGZv ciBwIChkcywgZGUpKTsKK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgdGV4dCBjb2xs YXRlICJDIiwgZGUgdGV4dCBjb2xsYXRlICJQT1NJWCIsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7 CisKKy8qIFBlcmlvZHMgbXVzdCBoYXZlIGEgZGVmYXVsdCBCVHJlZSBvcGVyYXRvciBjbGFzcyAq LworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyB4bWwsIGRlIHhtbCwgcGVyaW9kIGZv ciBwIChkcywgZGUpKTsKKworLyogUGVyaW9kIGFuZCBjb2x1bW4gbmFtZXMgYXJlIGluIHRoZSBz YW1lIG5hbWVzcGFjZSAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBk ZSBkYXRlLCBwZXJpb2QgZm9yIGN0aWQgKGRzLCBkZSkpOworY3JlYXRlIHRhYmxlIHB0IChpZCBp bnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIGlkIChkcywgZGUpKTsKKworLyog UGVyaW9kIG5hbWUgY2FuJ3QgYmUgZ2l2ZW4gbW9yZSB0aGFuIG9uY2UgKi8KK2NyZWF0ZSB0YWJs ZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUp LCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworCisvKiBOb3cgbWFrZSBvbmUgdGhhdCB3b3JrcyAq LworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2Qg Zm9yIHAgKGRzLCBkZSkpOworCisvKiBTRUxFQ1QgKiBleGNsdWRlcyB0aGUgUEVSSU9EICovCitp bnNlcnQgaW50byBwdCB2YWx1ZXMgKDEsICcyMDAwLTAxLTAxJywgJzIwMDEtMDEtMDEnKTsKK3Nl bGVjdCAqIGZyb20gcHQ7CisKKy8qIFlvdSBjYW4gZ2V0IGl0IGlmIHlvdSB3YW50ICovCitzZWxl Y3QgKiwgcCBmcm9tIHB0OworCisvKiBUd28gYXJlIG9rYXkgKi8KK2NyZWF0ZSB0YWJsZSBwdDIg KGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcDEgKGRzLCBkZSksIHBl cmlvZCBmb3IgcDIgKGRzLCBkZSkpOworZHJvcCB0YWJsZSBwdDI7CisKKy8qIFNraXAgY3JlYXRp bmcgR0VORVJBVEVEIGNvbHVtbjogd29ya3MgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVn ZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdh eXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3 aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CitcZCBwdDIKK2Ryb3AgdGFibGUgcHQyOworLyogU2tp cCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2wgaXNuJ3Qg dGhlcmUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUs IHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CisvKiBTa2lw IGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIG9wdGlvbiBoYXMg YW4gaW52YWxpZCB2YWx1ZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0 ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9ICd3aGF0 ZXZlcicpKTsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVz ZSB0aGUgY29sdW1uIGlzIG5vdCBOT1QgTlVMTCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50 ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2UgZ2VuZXJhdGVkIGFsd2F5cyBhcyAo ZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNv bGV4aXN0cyA9IHRydWUpKTsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFp bHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBHRU5FUkFURUQgKi8KK2NyZWF0ZSB0YWJsZSBw dDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsLCBw ZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworLyogU2tpcCBj cmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgR0VO RVJBVEVEIGJ1dCB3aXRoIHRoZSB3cm9uZyBleHByZXNzaW9uICovCistLSBUT0RPOgorLS0gY3Jl YXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ug bm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRlLCBkcykpIHN0b3JlZCwg cGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKKy8qIFNraXAg Y3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIHRo ZSB3cm9uZyB0eXBlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBk ZSBkYXRlLCBwIHRzcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAodHNyYW5nZShk cywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0 cnVlKSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2Ug dGhlIGNvbHVtbiBpcyBpbmhlcml0ZWQgKi8KK2NyZWF0ZSB0YWJsZSBwdDJwYXJlbnQgKGlkIGlu dGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBh bHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworY3JlYXRlIHRhYmxlIHB0MiAo cGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKSBpbmhlcml0cyAo cHQycGFyZW50KTsKK2Ryb3AgdGFibGUgcHQycGFyZW50OworCisKKy8qCisgKiBBTFRFUiBUQUJM RSB0ZXN0cworICovCithbHRlciB0YWJsZSBwdCBkcm9wIHBlcmlvZCBmb3IgcDsKK2FsdGVyIHRh YmxlIHB0IGFkZCBwZXJpb2QgZm9yIHN5c3RlbV90aW1lIChkcywgZGUpOworYWx0ZXIgdGFibGUg cHQgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKTsKKworLyogQWRkaW5nIGEgc2Vjb25kIG9uZSAq LworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9k IGZvciBwMSAoZHMsIGRlKSk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcDIgKGRz LCBkZSk7Citkcm9wIHRhYmxlIHB0MjsKKworLyogQ2FuJ3QgZHJvcCBpdHMgY29sdW1ucyAqLwor YWx0ZXIgdGFibGUgcHQgZHJvcCBjb2x1bW4gZHM7CithbHRlciB0YWJsZSBwdCBkcm9wIGNvbHVt biBkZTsKKworLyogQ2FuJ3QgY2hhbmdlIHRoZSBkYXRhIHR5cGVzICovCithbHRlciB0YWJsZSBw dCBhbHRlciBjb2x1bW4gZHMgdHlwZSB0aW1lc3RhbXA7CithbHRlciB0YWJsZSBwdCBhbHRlciBj b2x1bW4gZHMgdHlwZSB0aW1lc3RhbXA7CisKKy8qIGNvbHVtbi9wZXJpb2QgbmFtZXNwYWNlIGNv bmZsaWN0cyAqLworYWx0ZXIgdGFibGUgcHQgYWRkIGNvbHVtbiBwIGludGVnZXI7CithbHRlciB0 YWJsZSBwdCByZW5hbWUgY29sdW1uIGlkIHRvIHA7CithbHRlciB0YWJsZSBwdCBhZGQgcGVyaW9k IGZvciB0YWJsZW9pZCAoZHMsIGRlKTsKK2FsdGVyIHRhYmxlIHB0IGFkZCBwZXJpb2QgZm9yICIu Li4uLi4uLnBnLmRyb3BwZWQuNC4uLi4uLi4uIiAoZHMsIGRlKTsKKworLyogYWRkaW5nIGNvbHVt bnMgYW5kIHRoZSBwZXJpb2QgYXQgdGhlIHNhbWUgdGltZSAqLworY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50ZWdlcik7CithbHRlciB0YWJsZSBwdDIgYWRkIGNvbHVtbiBkcyBkYXRlLCBhZGQgY29s dW1uIGRlIGRhdGUsIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSk7Citkcm9wIHRhYmxlIHB0MjsK KworLyogQW1iaWd1b3VzIHJhbmdlIHR5cGVzIHJhaXNlIGFuIGVycm9yICovCitjcmVhdGUgdHlw ZSBteWRhdGVyYW5nZSBhcyByYW5nZShzdWJ0eXBlPWRhdGUpOworY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworCisvKiBZ b3UgY2FuIGdpdmUgYW4gZXhwbGljaXQgcmFuZ2UgdHlwZSAqLworY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAocmFu Z2V0eXBlID0gJ215ZGF0ZXJhbmdlJykpOworZHJvcCB0eXBlIG15ZGF0ZXJhbmdlOworZHJvcCB0 eXBlIG15ZGF0ZXJhbmdlIGNhc2NhZGU7Citkcm9wIHRhYmxlIHB0MjsKK2NyZWF0ZSB0YWJsZSBw dDIgKGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGgg KHJhbmdldHlwZSA9ICdkYXRlcmFuZ2UnKSk7CisKKy8qIFJhbmdlIHR5cGUgaXMgbm90IGZvdW5k ICovCitjcmVhdGUgdGFibGUgcHQzIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBm b3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAnbm90YXJhbmdlJykpOworCisvKiBSYW5n ZSB0eXBlIGlzIHRoZSB3cm9uZyB0eXBlICovCitjcmVhdGUgdGFibGUgcHQzIChpZCBpbnQsIGRz IGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAn dHN0enJhbmdlJykpOworZHJvcCB0YWJsZSBwdDI7CisKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJB VEVEIGNvbHVtbjogd29ya3MgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRh dGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRh dGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9y IHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CitcZCBwdDIKK2Ryb3AgdGFibGUg cHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRo ZSBjb2wgaXNuJ3QgdGhlcmUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRh dGUsIGRlIGRhdGUpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkg d2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRp bmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgb3B0aW9uIGhhcyBhbiBpbnZh bGlkIHZhbHVlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBk YXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2Uo ZHMsIGRlKSkgc3RvcmVkKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywg ZGUpIHdpdGggKGNvbGV4aXN0cyA9ICd3aGF0ZXZlcicpOworZHJvcCB0YWJsZSBwdDI7CisvKiBT a2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBp cyBub3QgTk9UIE5VTEwgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUs IGRlIGRhdGUsIHAgZGF0ZXJhbmdlIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywg ZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkg d2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRp bmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBHRU5F UkFURUQgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUs IHAgZGF0ZXJhbmdlIG5vdCBudWxsKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBw IChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpOworZHJvcCB0YWJsZSBwdDI7CisvKiBT a2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBp cyBHRU5FUkFURUQgYnV0IHdpdGggdGhlIHdyb25nIGV4cHJlc3Npb24gKi8KKy0tIFRPRE86Cist LSBjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVy YW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZGUsIGRzKSkgc3Rv cmVkKTsKKy0tIGFsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGgg KGNvbGV4aXN0cyA9IHRydWUpOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBm YWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgdGhlIHdyb25nIHR5cGUgKi8KK2NyZWF0ZSB0YWJs ZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgdHNyYW5nZSBub3QgbnVsbCBn ZW5lcmF0ZWQgYWx3YXlzIGFzICh0c3JhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRlciB0YWJs ZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsK K2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWls cyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgaW5oZXJpdGVkICovCitjcmVhdGUgdGFibGUgcHQycGFy ZW50IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBn ZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2NyZWF0ZSB0 YWJsZSBwdDIgKCkgaW5oZXJpdHMgKHB0MnBhcmVudCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBl cmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK2Ryb3AgdGFibGUg cHQyOworZHJvcCB0YWJsZSBwdDJwYXJlbnQ7CisKKy8qIENSRUFURSBUQUJMRSAoTElLRSAuLi4p ICovCisKKy8qIFBlcmlvZHMgYXJlIG5vdCBjb3BpZWQgYnkgTElLRSwgc28gdGhlaXIgY29sdW1u cyBhcmVuJ3QgZWl0aGVyICovCitjcmVhdGUgdGFibGUgcHQyIChsaWtlIHB0KTsKK1xkIHB0Mgor ZHJvcCB0YWJsZSBwdDI7CisKKy8qIENhbiBhZGQgYSBwZXJpb2QgcmVmZXJyaW5nIHRvIExJS0Un ZCBjb2x1bW5zICovCitjcmVhdGUgdGFibGUgbm90X3AgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRl IGRhdGUpOworY3JlYXRlIHRhYmxlIHB0MiAobGlrZSBub3RfcCwgcGVyaW9kIGZvciBwIChkcywg ZGUpKTsKK1xkIHB0MgorZHJvcCB0YWJsZSBwdDI7CisKKy8qIENhbiBhZGQgYSBwZXJpb2Qgd2l0 aCB0aGUgc2FtZSBuYW1lICovCitjcmVhdGUgdGFibGUgcHQyIChsaWtlIHB0LCBwZXJpb2QgZm9y IHAgKGRzLCBkZSkpOworXGQgcHQyCitkcm9wIHRhYmxlIHB0MjsKKworLyogQ2FuIGFkZCBhIHBl cmlvZCB3aXRoIGEgZGlmZmVyZW50IG5hbWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQs IHBlcmlvZCBmb3IgcDIgKGRzLCBkZSkpOworXGQgcHQyCitkcm9wIHRhYmxlIHB0MjsKKworLyog Q2FuJ3QgYWRkIGEgcGVyaW9kIHdob3NlIG5hbWUgY29uZmxpY3RzIHdpdGggYSBMSUtFJ2QgY29s dW1uICovCitjcmVhdGUgdGFibGUgcHQyIChsaWtlIHB0LCBwZXJpb2QgZm9yIGlkIChkcywgZGUp KTsKKworLyogQ1JFQVRFIFRBTEJFIElOSEVSSVRTICovCisKKy8qIENhbid0IGluaGVyaXQgZnJv bSBhIHRhYmxlIHdpdGggYSBwZXJpb2QgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKG5hbWUgdGV4dCkg aW5oZXJpdHMgKHB0KTsKKworLyogQ2FuJ3QgaW5oZXJpdCB3aXRoIGEgcGVyaW9kICovCitjcmVh dGUgdGFibGUgcHQyIChkMnMgZGF0ZSwgZDJlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZDJzLCBkMmUp KSBpbmhlcml0cyAobm90X3ApOworCitkcm9wIHRhYmxlIG5vdF9wOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAppbmRleCBhOGY0MTAyMGUwYS4uNGQyNDBjNTcyMTMg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCkBAIC05MSw2ICs5 MSwzMSBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoCiBTRUxFQ1QgcGdfZ2V0X2NvbnN0 cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3Jh bF9ybmcyX3BrJzsKIFNFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZS T00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzJfcGsnOwogCist LSBQSyB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9wZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGls IGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIKK1NFTEVDVCBwZ19nZXRfY29uc3Ry YWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFs X3Blcl9wayc7CitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9N IHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXJfcGsnOworCistLSBQ SyB3aXRoIHR3byBjb2x1bW5zIHBsdXMgYSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxf cGVyMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20g ZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyMl9wayBQUklNQVJZIEtF WSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxf cGVyMgorU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50 IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyMl9wayc7CitTRUxFQ1QgcGdfZ2V0X2luZGV4 ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9 ICd0ZW1wb3JhbF9wZXIyX3BrJzsKKwogLS0gUEsgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlOgog Q1JFQVRFIFRZUEUgdGV4dHJhbmdlMiBBUyByYW5nZSAoc3VidHlwZT10ZXh0LCBjb2xsYXRpb249 IkMiKTsKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKQEAgLTE2OSw2ICsxOTQsMzMgQEAg U0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJF IGNvbm5hbWUgPSAndGVtcG9yYWxfcm4KIFNFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQs IDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Ju ZzNfdXEnOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOwogCistLSBVTklRVUUgd2l0aCBvbmUg Y29sdW1uIHBsdXMgYSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMyAoCisgIGlk IGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVS SU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisp OworXGQgdGVtcG9yYWxfcGVyMworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJP TSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191cSc7CitTRUxF Q1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQg V0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKK0RST1AgVEFCTEUgdGVtcG9yYWxf cGVyMzsKKworLS0gVU5JUVVFIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIFBFUklPRDoKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9wZXIzICgKKyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5n ZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9w ZXIzX3VxIFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOwor XGQgdGVtcG9yYWxfcGVyMworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBw Z19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191cSc7CitTRUxFQ1Qg cGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hF UkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVy MzsKKwogLS0gVU5JUVVFIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZToKIENSRUFURSBUWVBFIHRl eHRyYW5nZTIgQVMgcmFuZ2UgKHN1YnR5cGU9dGV4dCwgY29sbGF0aW9uPSJDIik7CiBDUkVBVEUg VEFCTEUgdGVtcG9yYWxfcm5nMyAoCkBAIC0yNDUsNiArMjk3LDU4IEBAIEFMVEVSIFRBQkxFIHRl bXBvcmFsMwogICBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKIERST1Ag VEFCTEUgdGVtcG9yYWwzOwogCistLSBQUklNQVJZIEtFWSB3aXRoIFBFUklPRCBhbHJlYWR5IHRo ZXJlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9m cm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsM19waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpOworXGQgdGVtcG9yYWwzCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKworLS0gUFJJ TUFSWSBLRVkgd2l0aCBQRVJJT0QgdG9vCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlCispOworQUxU RVIgVEFCTEUgdGVtcG9yYWwzCisgIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsKKyAgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1xkIHRlbXBvcmFsMworRFJPUCBU QUJMRSB0ZW1wb3JhbDM7CisKKy0tIFVOSVFVRSB3aXRoIFBFUklPRCBhbHJlYWR5IHRoZXJlCitD UkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRh dGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsM191cQorICBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K1xkIHRlbXBvcmFsMworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CisKKy0tIFVOSVFVRSB3aXRoIFBF UklPRCB0b28KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZh bGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bDMKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM191cQorICBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKTsKK1xkIHRlbXBvcmFsMworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CisKIC0t CiAtLSByYW5nZSBQSzogdGVzdCB3aXRoIGV4aXN0aW5nIHJvd3MKIC0tCkBAIC02MTUsNiArNzE5 LDIxMiBAQCBXSEVSRSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgSVMgTlVMTDsKIFNFTEVD VCAqIEZST00gdGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBEUk9QIFRB QkxFIHRlbXBvcmFsX21sdHJuZzM7CiAKKy0tCistLSBQRVJJT0QgUEs6IHRlc3Qgd2l0aCBleGlz dGluZyByb3dzCistLQorCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX3Blcl9wazsKKworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMics ICcyMDE4LTAyLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzMsNCkn LCAnMjAxOC0wMS0wMScsIE5VTEwpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX3Blcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9wZXJfcGs7CisKKy0tIHNob3VsZCBmYWlsOgorQkVHSU47CisgIElOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKTsKK1JPTExCQUNLOworLS0gcmVqZWN0cyBlbXB0eToKK0JFR0lOOwor ICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIgRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0OworICBJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1szLDQpJywgJzIwMjAtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworICBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9wZXIgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCk7CitST0xMQkFDSzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjsKKworLS0KKy0tIFBFUklPRCBQSzogdGVzdCBp bnNlcnRzCistLQorCistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgt MDItMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0Jyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1syLDMpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDE4 LTAxLTAxJywgTlVMTCk7CisKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAx LTAxJywgJzIwMTgtMDEtMDUnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTIChOVUxMLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1 Jyk7CistLSByZWplY3RzIGVtcHR5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDIwLTAxLTAxJywgJzIwMjAt MDEtMDEnKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKworLS0KKy0tIFBFUklPRCBQSzogdGVzdCB1cGRhdGVzCistLQorCistLSB1cGRhdGUgdGhl IHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9ICdbMTEsMTIp JworV0hFUkUgICBpZCA9ICdbMSwyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUn OjpkYXRlOworLS0gdXBkYXRlIHRoZSBQRVJJT0QgYm91bmRzCitVUERBVEUgIHRlbXBvcmFsX3Bl cgorU0VUICAgICB2YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwg PSAnMjAyMS0wMS0wMScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQg QD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIGJvdGggYXQgb25jZQorVVBEQVRFICB0 ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSAnWzIxLDIyKScsCisgICAgICAgIHZhbGlkX2Zyb20g PSAnMjAxOC0wMS0wMicsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAzJworV0hFUkUg ICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAyMC0wMS0xNSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBz aG91bGQgZmFpbDoKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gJ1sxLDIpJywK KyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAzLTA1JywKKyAgICAgICAgdmFsaWRfdGlsID0g JzIwMTgtMDUtMDUnCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gc2V0IHRoZSBzY2FsYXIg cGFydCB0byBOVUxMCitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9IE5VTEwsCisg ICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wMy0wNScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcy MDE4LTA1LTA1JworV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKKy0tIHNldCBhIFBFUklPRCBib3Vu ZCB0byBOVUxMIChva2F5KQorVVBEQVRFICB0ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSAnWzEs MiknLAorICAgICAgICB2YWxpZF9mcm9tID0gJzIwMTgtMDQtMDQnLAorICAgICAgICB2YWxpZF90 aWwgPSBOVUxMCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gcmVqZWN0cyBlbXB0eToKK1VQ REFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gJ1syMSwyMiknLAorICAgICAgICB2YWxp ZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAyMC0wMS0wMScK K1dIRVJFICAgaWQgPSAnWzEsMiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gUEVSSU9EIFVROiB0ZXN0IHdpdGggZXhpc3Rpbmcg cm93cworLS0KKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlcjMgKAorICBpZCBpbnQ0cmFuZ2Us CisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CisKKy0tIG9rYXk6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwy KScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMt MDMnLCAnMjAxOC0wNC0wNCcpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAx LTA1Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDE4LTAxLTAxJywgTlVMTCk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKE5VTEwsICcy MDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX3BlcjNfdXE7CisKKy0tIHNob3VsZCBmYWlsOgorQkVHSU47CisgIElOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIp JywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9w ZXIzIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyk7CitST0xMQkFDSzsKKy0tIHJlamVjdHMgZW1wdHk6CitCRUdJTjsK KyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyMyBEUk9QIFBFUklPRCBGT1IgdmFsaWRfYXQ7Cisg IElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1szLDQpJywgJzIwMjAtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworICBBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wZXIzIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpOworUk9MTEJBQ0s7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIzIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ Uyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIzOworCistLQorLS0gUEVSSU9EIFVROiB0ZXN0 IGluc2VydHMKKy0tCisKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIw MTgtMDItMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScs ICcyMDE4LTAxLTAxJywgTlVMTCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKE5VTEwsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEt MDUnKTsKKworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAxJywgJzIw MTgtMDEtMDUnKTsKKy0tIHJlamVjdHMgZW1wdHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIz IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDIwLTAxLTAx JywgJzIwMjAtMDEtMDEnKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyMyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisKKy0tCistLSBQRVJJT0QgVVE6IHRlc3QgdXBkYXRlcworLS0KKworLS0g dXBkYXRlIHRoZSBzY2FsYXIgcGFydAorVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlk ID0gJ1sxMSwxMiknCitXSEVSRSAgIGlkID0gJ1sxLDIpJworQU5EICAgICB2YWxpZF9hdCBAPiAn MjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgdGhlIFBFUklPRCBib3VuZHMKK1VQREFURSAg dGVtcG9yYWxfcGVyMworU0VUICAgICB2YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAg ICB2YWxpZF90aWwgPSAnMjAyMS0wMS0wMScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAg ICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIGJvdGggYXQgb25j ZQorVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gJ1syMSwyMiknLAorICAgICAg ICB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDInLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0w Mi0wMycKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMjAt MDEtMTUnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAg IGlkID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAzLTA1JywKKyAgICAg ICAgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDUnCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0g c2V0IHRoZSBzY2FsYXIgcGFydCB0byBOVUxMIChva2F5KQorVVBEQVRFICB0ZW1wb3JhbF9wZXIz CitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywK KyAgICAgICAgdmFsaWRfdGlsID0gJzIwMjEtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1syMSwyMikn OworLS0gc2V0IGEgUEVSSU9EIGJvdW5kIHRvIE5VTEwgKG9rYXkpCitVUERBVEUgIHRlbXBvcmFs X3BlcjMKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9mcm9tID0gJzIwMTgt MDQtMDQnLAorICAgICAgICB2YWxpZF90aWwgPSBOVUxMCitXSEVSRSAgIGlkIElTIE5VTEwgQU5E IHZhbGlkX2F0IEA+ICcyMDIwLTA2LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGVyMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBzaG91bGQgZmFpbDoKK1VQREFURSAgdGVt cG9yYWxfcGVyMworU0VUICAgICB2YWxpZF9mcm9tID0gJzIwMTgtMDMtMDEnLAorICAgICAgICB2 YWxpZF90aWwgPSAnMjAxOC0wNS0wNScKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF90 aWwgSVMgTlVMTDsKKy0tIHJlamVjdHMgZW1wdHk6CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NF VCAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIw MjAtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfdGlsIElTIE5VTEw7Cist LSBzdGlsbCByZWplY3RzIGVtcHR5IHdoZW4gc2NhbGFyIHBhcnQgaXMgTlVMTDoKK1VQREFURSAg dGVtcG9yYWxfcGVyMworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2Zyb20gPSAn MjAyMC0wMS0wMScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDIwLTAxLTAxJworV0hFUkUgICBp ZCA9ICdbMSwyKScgQU5EIHZhbGlkX3RpbCBJUyBOVUxMOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMzsK KwogLS0KIC0tIHRlc3QgYSByYW5nZSB3aXRoIGJvdGggYSBQSyBhbmQgYSBVTklRVUUgY29uc3Ry YWludAogLS0KQEAgLTk2Niw2ICsxMjc2LDEyMSBAQCBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21s dHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCiBEUk9QIFRBQkxFIHRlbXBvcmFsX21sdHJu ZzM7CiAKKy0tCistLSBPTiBDT05GTElDVDogUEVSSU9EcworLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfcGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKTsKKy0tIHdp dGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBP TiBDT05GTElDVCBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgRE8gTk9U SElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAw NS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7CisK K1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEw LTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwNS0wMS0wMScs ICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKKy0t IGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAn MjAyMC0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CistLSBk YXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAn MjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls OworCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAn MjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEt MDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVy X3BrIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwy KScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5U IHRlbXBvcmFsX3Blcl9wayBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25m bGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbMiwzKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElD VCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBETyBOT1RISU5HOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKworVFJV TkNBVEUgdGVtcG9yYWxfcGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDAwLTAxLTAxJywgJzIwMTAtMDEt MDEnKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIw MDYtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0g RVhDTFVERUQuaWQgKyAnWzIsMyknOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2 YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKKy0tIGRh dGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0wMScsICcy MDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9 IEVYQ0xVREVELmlkICsgJ1s0LDUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIE9SREVS IEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7CisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29u ZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJ Q1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xV REVELmlkICsgJ1syLDMpJzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sx LDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGVyX3BrIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0 KSc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUt MDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxf cGVyX3BrIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOwor CistLSB3aXRoIGEgVU5JUVVFIGNvbnN0cmFpbnQ6CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9w ZXIzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBk YXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKKyk7CitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAw MC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIp JywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7Cist LSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxMC0wMS0wMScs ICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBi dXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScp IE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JE RVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKworVFJVTkNBVEUgdGVtcG9yYWxfcGVy MzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBh IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBD T05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8g Y29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENP TkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5v IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBD T05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7CisKK1RSVU5DQVRFIHRl bXBvcmFsX3BlcjM7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKTsK Ky0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAx LTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIERPIE5PVEhJ Tkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxMC0w MS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9w ZXIzX3VxIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbMiwzKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05T VFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGVyMyBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworCitUUlVOQ0FURSB0 ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7 CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0w MS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENM VURFRC5pZCArICdbMiwzKSc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxp ZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKKy0tIGRhdGUg bWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAw Ni0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBF WENMVURFRC5pZCArICdbNCw1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIg QlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05G TElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgRE8gVVBEQVRFIFNFVCBpZCA9IEVY Q0xVREVELmlkICsgJ1syLDMpJzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05T VFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsg J1szLDQpJzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywg JzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVt cG9yYWxfcGVyM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWw7CisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMzsKKwogLS0KIC0tIHRlc3QgRksgZGVw ZW5kZW5jaWVzCiAtLQpAQCAtMTAxOSw2ICsxNDQ0LDcgQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrX3JuZzJybmcgKAogICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQogKTsKK1xkIHRlbXBvcmFsX2ZrX3JuZzJybmcK IERST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIAogLS0gd2l0aCBtaXNtYXRjaGVkIFBF UklPRCBjb2x1bW5zOgpAQCAtMjY3Nyw3MCArMzEwMywyNzQwIEBAIElOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBCiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKIFNFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CiAKLS0tIEZLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZQotCi1DUkVBVEUgVFlQ RSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOworLS0KKy0tIHRlc3QgRk9SRUlH TiBLRVksIFBFUklPRCByZWZlcmVuY2VzIFBFUklPRAorLS0KIAotQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3JuZzMgKAorLS0gdGVzdCB0YWJsZSBzZXR1cAorRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXI7 CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9h dCBteWRhdGVyYW5nZSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKQogKTsKLUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoCitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrCisgIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CisKKy0tIENhbid0IGNyZWF0 ZSBhIEZLIHdpdGggYSBtaXNtYXRjaGVkIHJhbmdlIHR5cGUKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9hdCBteWRhdGVyYW5nZSwK KyAgdmFsaWRfZnJvbSBpbnQsCisgIHZhbGlkX3RpbCBpbnQsCiAgIHBhcmVudF9pZCBpbnQ0cmFu Z2UsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazNf cm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCi0gICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmczIChpZCwgUEVSSU9EIHZhbGlkX2F0KSBPTiBERUxFVEUg Q0FTQ0FERQorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKICk7Ci1JTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgbXlkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrM19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzUsNiknLCBteWRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOwotREVMRVRFIEZST00g dGVtcG9yYWxfcm5nMyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzgsOSknOwotU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazNfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CiAKLURST1AgVEFCTEUgdGVtcG9yYWxf ZmszX3JuZzJybmc7Ci1EUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7Ci1EUk9QIFRZUEUgbXlkYXRl cmFuZ2U7CistLSB3b3JrczogUEVSSU9EIGZvciBib3RoIHJlZmVyZW5jZWQgYW5kIHJlZmVyZW5j aW5nCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRy YW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmtf cGVyMnBlcgorRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyOwogCi0tLQotLS0gRksgYmV0 d2VlbiBwYXJ0aXRpb25lZCB0YWJsZXM6IHJhbmdlcwotLS0KKy0tIHdpdGggbWlzbWF0Y2hlZCBQ RVJJT0QgY29sdW1uczoKIAotQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAo CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9h dCkKKy0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9hdCBkYXRl cmFuZ2UsCi0gIG5hbWUgdGV4dCwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3Ju Z19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCi0pIFBBUlRJ VElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYp JywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdb MTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7Ci1DUkVBVEUgVEFCTEUg dHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAo J1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAn WzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1sy MiwyMyknLCAnWzI0LDI1KScpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IChpZCwgdmFsaWRfYXQsIG5hbWUpIFZBTFVFUwotICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAw LTAxLTAxJywgJzIwMDAtMDItMDEnKSwgJ29uZScpLAotICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcy MDAwLTAyLTAxJywgJzIwMDAtMDMtMDEnKSwgJ29uZScpLAotICAoJ1syLDMpJywgZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ3R3bycpOwotCi1DUkVBVEUgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFs aWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRf YXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf YXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9h dCkKKy0tIGJvdGggc2hvdWxkIHNwZWNpZnkgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrX3BlcjJwZXIgKAogICBpZCBpbnQ0cmFuZ2UsCi0gIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAg dmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKICAgcGFyZW50X2lkIGludDRyYW5n ZSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCi0gIENPTlNUUkFJTlQgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCi0gICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCBQRVJJT0QgdmFsaWRfYXQpCi0pIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUg VEFCTEUgdGZrcDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg Rk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEw KScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCkn LCAnWzIxLDIyKScsICdbMjMsMjQpJyk7Ci1DUkVBVEUgVEFCTEUgdGZrcDIgUEFSVElUSU9OIE9G IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywg J1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScs ICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAn WzI0LDI1KScpOwotCi0tLQotLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cwot LS0KLQotSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUwotICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAx LTAxJywgJzIwMDAtMDItMTUnKSwgJ1sxLDIpJyksCi0gICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIw MDEtMDEtMDEnLCAnMjAwMi0wMS0wMScpLCAnWzIsMyknKSwKLSAgKCdbMiwzKScsIGRhdGVyYW5n ZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JyksICdbMSwyKScpOwotLS0gc2hvdWxkIGZhaWw6 Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20s IHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lk LCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKy0tIEZPUkVJR04g S0VZIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90 aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkK Kyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCistLSBG T1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAg dmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CistLSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAg dmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCkKKyk7 CistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zy b20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyk7CistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxl OgorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0K K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2 YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdl LAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3BlcgorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcjsKKy0tIChwYXJl bnRfaWQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGls IGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZh bGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKyAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorKTsKKworLS0gc2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBk dXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGls IGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZh bGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCBpZCkK Kyk7CisKKy0tIFR3byBzY2FsYXIgY29sdW1ucworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIyOwor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlcjIgKAorICBpZDEgaW50NHJhbmdlLAorICBpZDIgaW50 NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0Qg Rk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX3BlcjJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKTsKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRf aWQxIGludDRyYW5nZSwKKyAgcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwK KyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50 X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9mazJf cGVyMnBlcgorRFJPUCBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKKworLS0KKy0tIHRlc3Qg QUxURVIgVEFCTEUgQUREIENPTlNUUkFJTlQKKy0tCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m a19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlk X3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0 ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKKy0tIFR3 byBzY2FsYXIgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlciAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAg cGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdlLAorICBQRVJJT0Qg Rk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpOworXGQgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKwor LS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSwgYW5kIHdyb25nIGNv bHVtbiB0eXBlOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maywKKyAgRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0 LAorICBBTFRFUiBDT0xVTU4gdmFsaWRfZnJvbSBUWVBFIHRpbWVzdGFtcCwKKyAgQUxURVIgQ09M VU1OIHZhbGlkX3RpbCBUWVBFIHRpbWVzdGFtcCwKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVy CisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgRFJPUCBQRVJJT0QgRk9SIHZhbGlk X2F0LAorICBBTFRFUiBDT0xVTU4gdmFsaWRfZnJvbSBUWVBFIGRhdGUsCisgIEFMVEVSIENPTFVN TiB2YWxpZF90aWwgVFlQRSBkYXRlLAorICBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRf ZnJvbSwgdmFsaWRfdGlsKTsKKworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNl ZCB0YWJsZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworCistLSBzaG91bGQgZmFp bCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJf ZmsyCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIGlkKTsKKworLS0KKy0tIHRlc3Qgd2l0aCBy b3dzIGFscmVhZHkKKy0tCisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1sxLDFdJywgJzIwMTgtMDEtMDInLCAnMjAx OC0wMi0wMycpLAorICAoJ1sxLDFdJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpLAorICAo J1syLDJdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpLAorICAoJ1szLDNdJywgJzIwMTgt MDEtMDEnLCBOVUxMKTsKKworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzEsMV0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAxJywgJ1sxLDFdJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIK KyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZms7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwxXScpOwor LS0gc2hvdWxkIGZhaWw6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKKy0tIG9rYXkg YWdhaW46CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2Zr CisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXI7CisKKy0tCistLSB0ZXN0IHBnX2dldF9jb25zdHJhaW50ZGVmCistLQor CitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hF UkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ma19wZXIycGVyX2ZrJzsKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNpbmcgaW5zZXJ0cworLS0KKworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwxXScs ICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnLCAnWzEsMV0nKTsKKy0tIHNob3VsZCBmYWlsOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwyXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEn LCAnWzEsMV0nKTsKKy0tIG5vdyBpdCBzaG91bGQgd29yazoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMV0nLCAnMjAxOC0w Mi0wMycsICcyMDE4LTAzLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywgJzIw MTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwxXScpOworCistLQorLS0gdGVzdCBGSyByZWZl cmVuY2luZyB1cGRhdGVzCistLQorCistLSBzbGlkZSB0aGUgZWRnZSBhY3Jvc3MgYSByZWZlcmVu Y2VkIHRyYW5zaXRpb246CitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnBlciBTRVQgdmFsaWRfZnJv bSA9ICcyMDE4LTAxLTAyJywgdmFsaWRfdGlsID0gJzIwMTgtMDItMjAnIFdIRVJFIGlkID0gJ1sx LDFdJzsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgU0VUIHZh bGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsIHZhbGlkX3RpbCA9ICcyMDE4LTA1LTAxJyBXSEVSRSBp ZCA9ICdbMSwxXSc7CitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnBlciBTRVQgcGFyZW50X2lkID0g J1s4LDhdJyBXSEVSRSBpZCA9ICdbMSwxXSc7CisKKy0tIEFMVEVSIEZLIERFRkVSUkFCTEUKKwor QkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTCisgICAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwK KyAgICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworICBJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUworICAgICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1 LDVdJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBE RUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0n OyAtLXNob3VsZCBub3QgZmFpbCB5ZXQuCitDT01NSVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBOTyBBQ1RJT04KKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZms7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorICBPTiBVUERBVEUgTk8gQUNUSU9OOwor LS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0 IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRf dGlsID0gJzIwMTYtMDItMDEnIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgdXBkYXRlIHRo YXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNh dXNlIHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9 ICdbNSw1XSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpLAor ICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNV0nKTsKK1VQ REFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMi0wMScsIHZhbGlkX3Rp bCA9ICcyMDE2LTAzLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIw MTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBBIFBLIHVwZGF0ZSBz bGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzYs NyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzYsNyknLCAnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1s0LDUpJywgJzIw MTgtMDEtMTUnLCAnMjAxOC0wMi0xNScsICdbNiw3KScpOworVVBEQVRFIHRlbXBvcmFsX3Blcgor U0VUIHZhbGlkX2Zyb20gPSBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVO ICcyMDE4LTAxLTAxJworICAgICAgICAgICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcy MDE4LTAyLTAxJyBUSEVOICcyMDE4LTAxLTA1JyBFTkQ6OmRhdGUsCisgICAgdmFsaWRfdGlsID0g IENBU0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIFRIRU4gJzIwMTgtMDEtMDUnCisg ICAgICAgICAgICAgICAgICAgICAgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIFRIRU4g JzIwMTgtMDMtMDEnIEVORDo6ZGF0ZQorV0hFUkUgaWQgPSAnWzYsNyknOworLS0gYSBQSyB1cGRh dGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitVUERBVEUgdGVtcG9y YWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0w Mi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBB TkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBi ZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6CitCRUdJTjsK KyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVE OworCisgIFVQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScs IHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJworICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKKy0t IGNoYW5naW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VU IGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgt MDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLSBjaGFuZ2luZyBhbiB1bnJl ZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAn WzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWls czoKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAn WzUsNV0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScs ICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVw ZGF0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzMsM10nOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAx LTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZh bGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJFU1RSSUNUCistLQorCitUUlVOQ0FU RSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgT04gVVBEQVRFIFJFU1RSSUNUOworLS0g YSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJl ZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworVVBE QVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGls ID0gJzIwMTYtMDItMDEnIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQg c3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNl IHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdb NSw1XSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpLAorICAo J1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNV0nKTsKK1VQREFU RSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMi0wMScsIHZhbGlkX3RpbCA9 ICcyMDE2LTAzLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgt MDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBBIFBLIHVwZGF0ZSBzbGlk aW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzYsNykn LCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzYsNyknLCAnMjAxOC0wMi0wMScs ICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1s0LDUpJywgJzIwMTgt MDEtMTUnLCAnMjAxOC0wMi0xNScsICdbNiw3KScpOworVVBEQVRFIHRlbXBvcmFsX3BlcgorU0VU IHZhbGlkX2Zyb20gPSBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcy MDE4LTAxLTAxJworICAgICAgICAgICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4 LTAyLTAxJyBUSEVOICcyMDE4LTAxLTA1JyBFTkQ6OmRhdGUsCisgICAgdmFsaWRfdGlsID0gIENB U0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIFRIRU4gJzIwMTgtMDEtMDUnCisgICAg ICAgICAgICAgICAgICAgICAgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIFRIRU4gJzIw MTgtMDMtMDEnIEVORDo6ZGF0ZQorV0hFUkUgaWQgPSAnWzYsNyknOworLS0gYSBQSyB1cGRhdGUg dGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1p dCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICAgIEFMVEVS IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElB TExZIERFRkVSUkVEOworCisgIFVQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAn MjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJworICBXSEVSRSBpZCA9ICdbNSw1 XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAy LTAxJzsKK1JPTExCQUNLOworLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgorVVBE QVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XScgQU5E IHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsK Ky0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9y YWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAx OC0wMS0wMycKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGNoYW5n aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAn WzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBX SEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29y ZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2 YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJF IGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGls ID0gJzIwMTgtMDItMDEnOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8g QUNUSU9OCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CistLSBh IFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVm ZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyBkZWxldGUg dGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJl Y2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywg J1s1LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFO RCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7 CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zy b20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tIGEgUEsg ZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBidXQgbm90ICd0 aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAg ICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBERUZFUlJBQkxF IElOSVRJQUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyk7CitDT01NSVQ7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBv a2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0t IGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcK K1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlk IGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0 aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIy cGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBp ZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9 ICcyMDE4LTAyLTAxJzsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RS SUNUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgT04gREVM RVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIGRl bGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5j ZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEt MTAnLCAnWzUsNV0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1 XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAz LTAxJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVu Y2VkIChldmVuIGJlZm9yZSBjb21taXQpOgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsK KyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0ZW1w b3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEn IEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CitST0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFu IHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJwor V0hFUkUgaWQgPSAnWzUsNV0nOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNV0nOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCBp biAoJ1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gdGhlbiBkZWxldGUgdGhlIG9i amVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzMsM10nOworREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4 LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworCistLQorLS0gcGVyMnBlciB0 ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5jZWQg dXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJl bmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0t IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNF VCBERUZBVUxUCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xz KQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNl ZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0 ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJl bmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorCitUUlVOQ0FU RSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2Zr LAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cGVyCisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScg V0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1 cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAn WzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFM VUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0gJ1s4LDhdJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0KKworVFJV TkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwx MDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2 LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcy MDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBX SEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVz IFNFVCBOVUxMCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJw ZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2 LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor ICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQ REFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBv cmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VU IGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdb OSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwy MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg ZGVsZXRlcyBTRVQgTlVMTAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9m a19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8g JzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBl ciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLQorCitUUlVOQ0FURSB0 ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCBudWxsLCBu dWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUxURVIgQ09MVU1O IHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFU RSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBv cmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VU IGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdb OSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwy MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg ZGVsZXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3Jh bF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVy MnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAw LDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAn WzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywg JzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVy IFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0 ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVy MiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywg J1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBE RUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9 ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitV UERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUg dGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2 YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBj b2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdb Niw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl cjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1 cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3Jh bF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZd JywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYs Nl0nLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50 X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorICAg IE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDddJyBXSEVS RSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVS RSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBk YXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVy ZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIw MCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOwor VVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4LDhd JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28g c2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJf cGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAw XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUg aWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0 ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVt cG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0g J1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0 KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBmYWlscyBiZWNhdXNl IHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m azJfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERB VEUgU0VUIE5VTEw7CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVy MgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBOVUxM OworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBl ciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0K KworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZd JywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVy CisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxU RVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBE RUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9u IGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3XScsIGlk MiA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzcs N10nLCBpZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb OCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBp ZDEgPSAnWzksOV0nLCBpZDIgPSAnWzksOV0nIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Bl cjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBj b2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywg J1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0n LCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBp ZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0KKworVFJV TkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb LTEsLTFdJywgJ1s2LDZdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIy IChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2 XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2 LDZdJywgJ1s2LDZdJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklP RCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xV TU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Bl cjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9E IHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorICAgIE9OIERFTEVURSBT RVQgREVGQVVMVCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIG9rOgorQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEg U0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Bl cjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgICAg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAg ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHBh cmVudF9pZDEpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywg J1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0n LCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEs LTFdJywgJ1s4LDhdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVy MnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScs ICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0n IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworCistLQorLS0gdGVzdCBGT1JFSUdOIEtFWSwgcmFuZ2UgcmVmZXJlbmNlcyBQRVJJT0QK Ky0tCisKKy0tIHRlc3QgdGFibGUgc2V0dXAKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyIENBU0NB REU7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxp ZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2 YWxpZF9mcm9tLCB2YWxpZF90aWwpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpOworCistLSBDYW4ndCBjcmVhdGUgYSBGSyB3aXRoIGEgbWlzbWF0 Y2hlZCByYW5nZSB0eXBlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlciAoCisgIGlk IGludDRyYW5nZSwKKyAgdmFsaWRfYXQgaW50NHJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdl LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcy cGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CisKKy0tIHdvcmtz OiBQRVJJT0QgZm9yIHJlZmVyZW5jZWQsIHJhbmdlIGZvciByZWZlcmVuY2luZworQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRh dGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQ RVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmtfcm5nMnBlcgorRFJPUCBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycGVyOworCistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6 CisKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlk X2F0KQorLS0gUkVGRVJFTkNFUyBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRh dGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZh bGlkX2F0KQorLS0gYm90aCBzaG91bGQgc3BlY2lmeSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdl LAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJw ZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZh bGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfYXQpCispOwor LS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQp CistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVy YW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19y bmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lk LCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRd CistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVy YW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19y bmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lk LCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorKTsKKy0tIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQpCitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAor ICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQpCispOworLS0gKHBh cmVudF9pZCkgUkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFu Z2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkK KyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7Cist LSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgorLS0gKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFu Z2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCispOworRFJPUCBU QUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyOworLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyBbaW1w bGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5n ZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZP UkVJR04gS0VZIChwYXJlbnRfaWQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CisK Ky0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2 YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X3BlciAoaWQsIFBFUklPRCBpZCkKKyk7CisKKy0tIFR3byBzY2FsYXIgY29sdW1ucworRFJPUCBU QUJMRSB0ZW1wb3JhbF9wZXIyIENBU0NBREU7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMiAo CisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwK KyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyMl9wayBQUklNQVJZIEtFWSAoaWQx LCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworCitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfZmsyX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5n ZSwKKyAgcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdlLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJf ZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQp CispOworXGQgdGVtcG9yYWxfZmsyX3JuZzJwZXIKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmsyX3Ju ZzJwZXI7CisKKy0tCistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJBSU5UCistLQorCitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFs aWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZh bGlkX2F0KTsKKy0tIFR3byBzY2FsYXIgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m azJfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBw YXJlbnRfaWQxIGludDRyYW5nZSwKKyAgcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycGVyCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJl bnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCk7CitcZCB0ZW1wb3JhbF9mazJfcm5n MnBlcgorCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlLCBhbmQg d3JvbmcgY29sdW1uIHR5cGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIERS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrLAorICBBTFRFUiBDT0xVTU4gdmFs aWRfYXQgVFlQRSB0c3JhbmdlIFVTSU5HIHRzcmFuZ2UobG93ZXIodmFsaWRfYXQpLCB1cHBlcih2 YWxpZF9hdCkpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycGVyCisgIEFMVEVSIENPTFVNTiB2YWxpZF9hdCBUWVBFIGRhdGVyYW5n ZSBVU0lORyBkYXRlcmFuZ2UobG93ZXIodmFsaWRfYXQpOjpkYXRlLCB1cHBlcih2YWxpZF9hdCk6 OmRhdGUpOworCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CisKKy0tIHNob3VsZCBmYWlsIGJlY2F1c2Ug b2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mazIKKyAgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKyAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9wZXIgKGlkLCBQRVJJT0QgaWQpOworCistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFk eQorLS0KKworREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTCisgICgnWzEsMV0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJyks CisgICgnWzEsMV0nLCAnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JyksCisgICgnWzIsMl0nLCAn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JyksCisgICgnWzMsM10nLCAnMjAxOC0wMS0wMScsIE5V TEwpOworCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBl ciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDFdJywgJ1syMDE4LTAxLTAy LDIwMTgtMDItMDEpJywgJ1sxLDFdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVy CisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJwZXJfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnWzIwMTgtMDEtMDIsMjAxOC0w NC0wMSknLCAnWzEsMV0nKTsKKy0tIHNob3VsZCBmYWlsOgorQUxURVIgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9wZXI7CistLSBva2F5IGFnYWluOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBl cjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworCistLQorLS0gdGVzdCBwZ19nZXRf Y29uc3RyYWludGRlZgorLS0KKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJP TSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfZmtfcm5nMnBlcl9mayc7 CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jaW5nIGluc2VydHMKKy0tCisKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MSwxXScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAxKScsICdbMSwxXScpOworLS0gc2hvdWxkIGZh aWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSknLCAnWzEsMV0n KTsKKy0tIG5vdyBpdCBzaG91bGQgd29yazoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMV0nLCAnMjAxOC0wMi0wMycsICcy MDE4LTAzLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSkn LCAnWzEsMV0nKTsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgdXBkYXRlcworLS0KKwor LS0gc2xpZGUgdGhlIGVkZ2UgYWNyb3NzIGEgcmVmZXJlbmNlZCB0cmFuc2l0aW9uOgorVVBEQVRF IHRlbXBvcmFsX2ZrX3JuZzJwZXIgU0VUIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAyLDIwMTgtMDIt MjApJyBXSEVSRSBpZCA9ICdbMSwxXSc7CistLSBzaG91bGQgZmFpbDoKK1VQREFURSB0ZW1wb3Jh bF9ma19ybmcycGVyIFNFVCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMiwyMDE4LTA1LTAxKScgV0hF UkUgaWQgPSAnWzEsMV0nOworVVBEQVRFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgU0VUIHBhcmVudF9p ZCA9ICdbOCw4XScgV0hFUkUgaWQgPSAnWzEsMV0nOworCistLSBBTFRFUiBGSyBERUZFUlJBQkxF CisKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUworICAgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JyksCisgICAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKyAgSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UworICAgICgnWzMsM10nLCAnWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCknLCAnWzUsNV0nKTsKKyAg QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOwor CisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XSc7IC0tc2hvdWxk IG5vdCBmYWlsIHlldC4KK0NPTU1JVDsgLS0gc2hvdWxkIGZhaWwgaGVyZS4KKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIE5PIEFDVElPTgorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5n MnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mazsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgIE9OIFVQREFURSBOTyBBQ1RJT047CistLSBhIFBLIHVw ZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNl ZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitVUERBVEUgdGVt cG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAx Ni0wMi0wMScgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVk cyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJh bmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzUsNV0n LCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnWzIwMTgt MDEtMDUsMjAxOC0wMS0xMCknLCAnWzUsNV0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZh bGlkX2Zyb20gPSAnMjAxNi0wMi0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAzLTAxJworV0hFUkUg aWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwg PSAnMjAxOC0wMy0wMSc7CistLSBBIFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4g dHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyksCisgICgnWzYsNyknLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTCisgICgnWzQsNSknLCAnWzIwMTgtMDEtMTUsMjAxOC0wMi0xNSknLCAnWzYsNyknKTsKK1VQ REFURSB0ZW1wb3JhbF9wZXIKK1NFVCB2YWxpZF9mcm9tID0gQ0FTRSBXSEVOIHZhbGlkX2Zyb20g PSAnMjAxOC0wMS0wMScgVEhFTiAnMjAxOC0wMS0wMScKKyAgICAgICAgICAgICAgICAgICAgICBX SEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgVEhFTiAnMjAxOC0wMS0wNScgRU5EOjpkYXRl LAorICAgIHZhbGlkX3RpbCA9ICBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBU SEVOICcyMDE4LTAxLTA1JworICAgICAgICAgICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9 ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAzLTAxJyBFTkQ6OmRhdGUKK1dIRVJFIGlkID0gJ1s2 LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVu Y2VkOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywg dmFsaWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zy b20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tIGEgUEsg dXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBidXQgbm90ICd0 aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAg ICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgICBERUZFUlJBQkxF IElOSVRJQUxMWSBERUZFUlJFRDsKKworICBVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9m cm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKKyAgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyk7CitDT01NSVQ7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQg dmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOwor LS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3Jh bF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4 LTAxLTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gY2hhbmdp bmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdb Nyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIFdI RVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3Jk IGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9m a19ybmcycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZh bGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJworV0hFUkUg aWQgPSAnWzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSc7CisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklDVAorLS0KKworVFJVTkNB VEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mazsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgIE9OIFVQREFURSBSRVNUUklDVDsKKy0t IGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCBy ZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK1VQ REFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3Rp bCA9ICcyMDE2LTAyLTAxJyBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0 IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVz ZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAn WzUsNV0nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAg KCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScs ICdbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKScsICdbNSw1XScpOworVVBEQVRFIHRlbXBvcmFsX3Bl ciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDMtMDEn CitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZh bGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2Ug YmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNiw3KScsICcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNiw3KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMKKyAgKCdbNCw1KScsICdbMjAxOC0wMS0xNSwyMDE4LTAyLTE1KScsICdbNiw3 KScpOworVVBEQVRFIHRlbXBvcmFsX3BlcgorU0VUIHZhbGlkX2Zyb20gPSBDQVNFIFdIRU4gdmFs aWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAxLTAxJworICAgICAgICAgICAgICAg ICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAxLTA1JyBF TkQ6OmRhdGUsCisgICAgdmFsaWRfdGlsID0gIENBU0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgt MDEtMDEnIFRIRU4gJzIwMTgtMDEtMDUnCisgICAgICAgICAgICAgICAgICAgICAgV0hFTiB2YWxp ZF9mcm9tID0gJzIwMTgtMDItMDEnIFRIRU4gJzIwMTgtMDMtMDEnIEVORDo6ZGF0ZQorV0hFUkUg aWQgPSAnWzYsNyknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJl IHJlZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcm5nMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIFVQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcy MDE2LTAyLTAxJworICBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0w MS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK1JPTExCQUNLOworLS0gY2hhbmdp bmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAn WzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScg QU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNl ZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9ICdbNyw3XScK K1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBE QVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0w NScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDdd JykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcy cGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVu IGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1 Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMywz XSc7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2 YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJv bSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCistLQorCitUUlVOQ0FURSB0ZW1w b3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3JuZzJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19y bmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGJl Y2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUg aWQgPSAnWzUsNV0nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0 aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMK KyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcy MDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJw ZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICdbMjAxOC0wMS0w NSwyMDE4LTAxLTEwKScsICdbNSw1XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJF IGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGls ID0gJzIwMTgtMDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGgg YXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUs NV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0w Mi0wMSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJl bmNlZCwgYnV0IG5vdCAndGlsIGNvbW1pdDoKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19ybmcycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2Zr CisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVt cG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworQ09NTUlUOworLS0gZGVsZXRpbmcgYW4gdW5yZWZl cmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBp ZCA9ICdbNSw1XSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScg VE8gJzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw1XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkIGluICgnWzMs M10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5n IEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00g dGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEn IEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBSRVNUUklDVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3Jh bF9ma19ybmcycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyCisgIE9OIERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUs NV0nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJp YyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw1 XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcyMDE4LTAyLTAx JywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICdbMjAxOC0wMS0wNSwyMDE4LTAx LTEwKScsICdbNSw1XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1 LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgt MDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVy ZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9m aworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIERFTEVURSBGUk9NIHRl bXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0w MScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK1JPTExCQUNLOworLS0gZGVsZXRpbmcg YW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Blcgor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMn CitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw1XSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlk IGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0ZSB0aGUg b2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVM RVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIw MTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CisKKy0tCistLSBybmcycGVy IHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCistLQorLS0gVE9DOgorLS0gcmVmZXJlbmNl ZCB1cGRhdGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLSByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAor LS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNv bHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0g cmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLSByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBk ZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkK KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVy IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAx LTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrLAorICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgICAgT04g REVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAn WzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJw ZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgt MDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlk ID0gJ1s5LDldJyBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdb MjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCBkZWxldGVzIENBU0NBREUKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9y YWxfZmtfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZd Jyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl ciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVy IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScs ICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Ju ZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIw MTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl ciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBOVUxMCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3Ju ZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbNiw2XScpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mawor ICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlcgorICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5V TEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNF VCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3 XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVy IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nKTsK K1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5LDldJyBXSEVSRSBpZCA9ICdbOCw4XScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5n MnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICdbMjAx OC0wMS0wMSwyMDIxLTAxLTAxKScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDhd Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJVTkNB VEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgbnVs bCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbNiw2XScpOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lk IFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgICBG T1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wZXIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZB VUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBT RVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcs N10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBl ciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFj cm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDhdJyk7 CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0n IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0K KworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEs LTFdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdb Niw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5v bi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZd JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywg J1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wZXIgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwy MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg dXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3Jh bF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZd JywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZdJywgJ1s2LDZdJyk7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcy cGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2 YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgQ0FT Q0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBE QVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0w MScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVt cG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAx LTAxKScsICdbOCw4XScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9 ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdb MjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRl bXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAn WzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nLCAnWzYs Nl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxf cGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0w MS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Ju ZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBu b24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2 LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEw MCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgt MDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdb MjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0 ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywg J1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZdJywgJ1s2 LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBF UklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxF VEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAn WzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQ REFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAx LDIwMjEtMDEtMDEpJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBT RVQgaWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJF IGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9ybmcycGVyOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYs Nl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUg aWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0n LCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVS RSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxM IHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9ybmcy cGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEs MjAyMS0wMS0wMSknLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNh bid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcy cGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9maywKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQg TlVMTDsKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXIKKyAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfcm5nMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAg T04gREVMRVRFIFNFVCBOVUxMIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBs ZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxl dGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEt MDEtMDEpJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdI RVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRl cyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxf cGVyMiwgdGVtcG9yYWxfZmsyX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChp ZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwt MV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywg J1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZdJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVG QVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZBVUxUICdb LTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrLAorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9maworICAgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVG QVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFNFVCBpZDEgPSAnWzcsN10nLCBpZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9y YWxfcGVyMiBTRVQgaWQxID0gJ1s3LDddJywgaWQyID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYs Nl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0w MS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3Bl cjIgU0VUIGlkMSA9ICdbOSw5XScsIGlkMiA9ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4LDhdJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28g c2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJf cm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIG51bGwsIG51bGwpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0w MS0wMSknLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgor REVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Ju ZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhd JywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy MiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgs OF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMg KCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nLCAnWzgsOF0n KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFy IGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIs IHRlbXBvcmFsX2ZrMl9ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBp ZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScsICdbNiw2XScsIG51 bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgt MDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGZhaWxzIGJlY2F1c2Ug eW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr Ml9ybmcycGVyCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFd JywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrLAorICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNF VCBERUZBVUxUOworLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBB TFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3JuZzJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorICAgIE9O IERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBX SEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8g dXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzgsOF0nLCBudWxsLCBudWxsKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScs ICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEg PSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGT1JFSUdOIEtFWSwgUEVSSU9EIHJlZmVyZW5j ZXMgcmFuZ2UKKy0tCisKKy0tIHRlc3QgdGFibGUgc2V0dXAKK0RST1AgVEFCTEUgdGVtcG9yYWxf cm5nIENBU0NBREU7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9hdCBkYXRlcmFuZ2UKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcKKyAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyk7CisKKy0tIENhbid0IGNyZWF0ZSBhIEZLIHdpdGggYSBtaXNt YXRjaGVkIHJhbmdlIHR5cGUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGludCwKKyAgdmFsaWRfdGlsIGludCwKKyAgcGFy ZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisg ICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworCist LSB3b3JrczogcmFuZ2UgZm9yIHJlZmVyZW5jZWQsIFBFUklPRCBmb3IgcmVmZXJlbmNpbmcKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxp ZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAor ICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9ma19wZXIycm5n CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmc7CisKKy0tIHdpdGggbWlzbWF0Y2hlZCBQ RVJJT0QgY29sdW1uczoKKworLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVO Q0VTIChpZCwgdmFsaWRfYXQpCistLSBSRUZFUkVOQ0VTIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVS SU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRy YW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9h dCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gYm90aCBzaG91bGQgc3BlY2lmeSBQRVJJ T0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRy YW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZF UkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQg c3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJl bnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRf aWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KKy0tIEZPUkVJR04gS0VZIHBhcnQg c2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwK KyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJv bSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAg ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworKTsKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkgUkVGRVJFTkNFUyAoaWQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwK KyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJv bSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkKQorKTsKKy0tIChwYXJlbnRfaWQp IFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxp ZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQor ICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKKy0t IHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGU6CistLSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwK KyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1Ig dmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCispOwor RFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nOworLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNF UyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nCispOworCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVu Y2VkIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIGlkKQorKTsKKworLS0gVHdvIHNj YWxhciBjb2x1bW5zCitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzIgQ0FTQ0FERTsKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ybmcyICgKKyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwK KyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzJfcGsgUFJJ TUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKKworQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxp ZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQxIGludDRyYW5nZSwK KyAgcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9mazJfcGVyMnJuZworRFJPUCBU QUJMRSB0ZW1wb3JhbF9mazJfcGVyMnJuZzsKKworLS0KKy0tIHRlc3QgQUxURVIgVEFCTEUgQURE IENPTlNUUkFJTlQKKy0tCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBw YXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2 YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mawor ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKKy0tIFR3byBzY2FsYXIgY29sdW1u czoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkMSBpbnQ0 cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2 YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5n X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcGVyMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVS SU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJ T0QgdmFsaWRfYXQpOworXGQgdGVtcG9yYWxfZmsyX3BlcjJybmcKKworLS0gd2l0aCBpbmZlcnJl ZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSwgYW5kIHdyb25nIGNvbHVtbiB0eXBlOgorQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnJuZ19maywKKyAgRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0LAorICBBTFRFUiBDT0xV TU4gdmFsaWRfZnJvbSBUWVBFIHRpbWVzdGFtcCwKKyAgQUxURVIgQ09MVU1OIHZhbGlkX3RpbCBU WVBFIHRpbWVzdGFtcCwKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0LAorICBBTFRFUiBD T0xVTU4gdmFsaWRfZnJvbSBUWVBFIGRhdGUsCisgIEFMVEVSIENPTFVNTiB2YWxpZF90aWwgVFlQ RSBkYXRlLAorICBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGls KTsKKworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1 cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsyCisgIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nIChpZCwgUEVSSU9EIGlkKTsKKworLS0KKy0tIHRlc3Qgd2l0aCByb3dzIGFscmVhZHkKKy0t CisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisg ICgnWzEsMV0nLCAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMyknKSwKKyAgKCdbMSwxXScsICdbMjAx OC0wMy0wMywyMDE4LTA0LTA0KScpLAorICAoJ1syLDJdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDEt MDUpJyksCisgICgnWzMsM10nLCAnWzIwMTgtMDEtMDEsKScpOworCitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2Zr OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwxXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDIt MDEnLCAnWzEsMV0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnJuZ19mazsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnMjAxOC0wMS0wMicsICcy MDE4LTA0LTAxJywgJ1sxLDFdJyk7CistLSBzaG91bGQgZmFpbDoKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mawor ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcm5nOworLS0gb2theSBhZ2FpbjoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3Bl cjJybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKworLS0KKy0tIHRlc3QgcGdf Z2V0X2NvbnN0cmFpbnRkZWYKKy0tCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQp IEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX2ZrX3BlcjJybmdf ZmsnOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyBpbnNlcnRzCistLQorCitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1sxLDFdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScsICdbMSwx XScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywgJzIw MTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwxXScpOworLS0gbm93IGl0IHNob3VsZCB3b3Jr OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDFd JywgJ1syMDE4LTAyLTAzLDIwMTgtMDMtMDMpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19w ZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sy LDJdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwxXScpOworCistLQorLS0gdGVz dCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorCistLSBzbGlkZSB0aGUgZWRnZSBhY3Jvc3Mg YSByZWZlcmVuY2VkIHRyYW5zaXRpb246CitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnJuZyBTRVQg dmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywgdmFsaWRfdGlsID0gJzIwMTgtMDItMjAnIFdIRVJF IGlkID0gJ1sxLDFdJzsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRlbXBvcmFsX2ZrX3BlcjJy bmcgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsIHZhbGlkX3RpbCA9ICcyMDE4LTA1LTAx JyBXSEVSRSBpZCA9ICdbMSwxXSc7CitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnJuZyBTRVQgcGFy ZW50X2lkID0gJ1s4LDhdJyBXSEVSRSBpZCA9ICdbMSwxXSc7CisKKy0tIEFMVEVSIEZLIERFRkVS UkFCTEUKKworQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMKKyAgICAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyksCisgICAg KCdbNSw1XScsICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKScpOworICBJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUworICAgICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7 CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgICBBTFRFUiBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJF RDsKKworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nOyAtLXNo b3VsZCBub3QgZmFpbCB5ZXQuCitDT01NSVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBOTyBBQ1RJT04KKy0tCisKK1RSVU5DQVRFIHRl bXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZms7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworICBPTiBVUERBVEUgTk8gQUNUSU9OOworLS0gYSBQ SyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVy ZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzUsNV0nLCAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcg U0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAxLTAxLDIwMTYtMDItMDEpJyBXSEVSRSBpZCA9ICdbNSw1 XSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmlj IGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDIt MDEpJyksCisgICgnWzUsNV0nLCAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSknKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVd Jyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMi0wMSwyMDE2 LTAzLTAxKScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDItMDEs MjAxOC0wMy0wMSknOworLS0gQSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRnZSBiZXR3ZWVuIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTCisgICgnWzYsNyknLCAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknKSwKKyAgKCdb Niw3KScsICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMK KyAgKCdbNCw1KScsICcyMDE4LTAxLTE1JywgJzIwMTgtMDItMTUnLCAnWzYsNyknKTsKK1VQREFU RSB0ZW1wb3JhbF9ybmcKK1NFVCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxpZF9hdCkg PSAnMjAxOC0wMS0wMScgVEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScp CisgICAgICAgICAgICAgICAgICAgIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDItMDEn IFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEnKSBFTkQKK1dIRVJFIGlk ID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSBy ZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTYtMDEt MDEsMjAxNi0wMi0wMSknCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4 LTAxLTAxLDIwMTgtMDItMDEpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBi b3RoIGFyZSByZWZlcmVuY2VkLCBidXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJybmdfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBV UERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0wMSwyMDE2LTAyLTAx KScKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyk7CitDT01NSVQ7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBh cnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlk ID0gJ1s1LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknOworLS0g Y2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9y bmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAx LTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gY2hhbmdpbmcg anVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw3 XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJF IGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFu ZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19w ZXIycm5nIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlk X2F0ID0gJ1syMDE2LTAxLTAxLDIwMTYtMDItMDEpJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2 YWxpZF9hdCA9ICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSc7CisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklDVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0 ZW1wb3JhbF9ma19wZXIycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mawor ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcm5nCisgIE9OIFVQREFURSBSRVNUUklDVDsKKy0tIGEgUEsgdXBkYXRlIHRoYXQg c3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDVdJywgJ1syMDE4 LTAxLTAxLDIwMTgtMDItMDEpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9 ICdbMjAxNi0wMS0wMSwyMDE2LTAyLTAxKScgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyB1 cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVu Y2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdI RVJFIGlkID0gJ1s1LDVdJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMKKyAgKCdbNSw1XScsICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKScpLAorICAoJ1s1 LDVdJywgJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAo J1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw1XScpOworVVBEQVRFIHRl bXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTYtMDItMDEsMjAxNi0wMy0wMSknCitXSEVS RSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJzsK Ky0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAo J1s2LDcpJywgJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyksCisgICgnWzYsNyknLCAnWzIwMTgt MDItMDEsMjAxOC0wMy0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzQsNSknLCAn MjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JywgJ1s2LDcpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5n CitTRVQgdmFsaWRfYXQgPSBDQVNFIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDEtMDEn IFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKQorICAgICAgICAgICAg ICAgICAgICBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcyMDE4LTAyLTAxJyBUSEVOIGRhdGVyYW5n ZSgnMjAxOC0wMS0wNScsICcyMDE4LTAzLTAxJykgRU5ECitXSEVSRSBpZCA9ICdbNiw3KSc7Cist LSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZl biBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgICAgREVG RVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQg dmFsaWRfYXQgPSAnWzIwMTYtMDEtMDEsMjAxNi0wMi0wMSknCisgIFdIRVJFIGlkID0gJ1s1LDVd JyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknOworUk9MTEJBQ0s7Cist LSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNF VCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgt MDEtMDEsMjAxOC0wMi0wMSknOworLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMg b2theToKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQg PSAnWzUsNV0nOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9y YWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAx OC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUg aWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4gZGVsZXRlIHRo ZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQREFU RSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAxLTAxLDIwMTYtMDItMDEpJwor V0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAx KSc7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBOTyBBQ1RJT04KKy0tCisK K1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJy bmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKy0tIGEgUEsgZGVsZXRlIHRo YXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDVdJywgJ1sy MDE4LTAxLTAxLDIwMTgtMDItMDEpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUg aWQgPSAnWzUsNV0nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0 aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDVdJywg J1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyksCisgICgnWzUsNV0nLCAnWzIwMTgtMDItMDEsMjAx OC0wMy0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScs ICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUg aWQgPSAnWzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKSc7Cist LSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2F0ID0g J1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVj YXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBidXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47Cisg IEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsK KworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitDT01NSVQ7Cist LSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVt cG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAn MjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0 IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDVdJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10n KSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJy bmcgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4g ZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3Vj Y2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1szLDNd JzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlk X2F0ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCBkZWxldGVzIFJFU1RSSUNUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBv cmFsX2ZrX3BlcjJybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcKKyAgT04gREVMRVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQ SyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZl cmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDIt MDEpJyksCisgICgnWzUsNV0nLCAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSknKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVd Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxp ZF9hdCA9ICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZh aWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JF R0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgICAgQUxURVIgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVG RVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDVdJyBB TkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknOworUk9MTEJBQ0s7CistLSBk ZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAx OC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZh aWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcg V0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4gZGVs ZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2Vl ZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1szLDNdJzsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2F0 ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKKworLS0KKy0tIHBlcjJybmcgdGVzdCBPTiBV UERBVEUvREVMRVRFIG9wdGlvbnMKKy0tCistLSBUT0M6CistLSByZWZlcmVuY2VkIHVwZGF0ZXMg Q0FTQ0FERQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgdXBk YXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLSByZWZlcmVu Y2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVM VAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2Vk IHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRl cyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tIHJlZmVyZW5jZWQgdXBk YXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfcm5nLCB0ZW1wb3JhbF9ma19wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgICBPTiBERUxFVEUgQ0FT Q0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBE QVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAx JyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3Jh bF9ybmcgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdbMjAxOC0wMS0w MSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDhdJywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgs OF0nKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s5LDldJyBXSEVSRSBpZCA9ICdb OCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0t CisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw2XScsICdbMjAxOC0w MS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0w MSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxf cm5nLCB0ZW1wb3JhbF9ma19wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgICBPTiBERUxFVEUgU0VUIE5V TEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERB VEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEn IFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFs X3JuZyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1syMDE4LTAxLTAx LDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4 XScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0gJ1s4 LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0t CisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw2XScsICdbMjAxOC0w MS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0w MSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfcm5nLCB0ZW1wb3JhbF9ma19wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnKCwpJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNl0nLCAnWzIwMTgtMDEtMDEsMjAy MS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAg RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmssCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgICBPTiBERUxFVEUg U0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBE QVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywg J1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksOV0nIFdI RVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIERFRkFVTFQKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVy MnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb LTEsLTFdJywgJygsKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s2LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYs Nl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxf cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24t RlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw2XSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93 czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4 XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEp Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9 ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUg KHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFs X2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrMl9wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJu Z19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAgICBGT1JF SUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBD QVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5n MiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBp ZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1sy MDE4LTAxLTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1syMDIwLTAxLTAxLDIw MjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwy MDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworVVBE QVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4LDhdJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2Fs YXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIy cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw2XScsICdbNiw2XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIw MTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwg aWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAy MS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0K KworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywg J1s2LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScs ICdbNiw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAg RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBw YXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcy CisgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10n IFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBp ZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28g cmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAx KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNF VCBpZDEgPSAnWzksOV0nIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUg aWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJV TkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZd JywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJf cGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2 XScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRP ICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBp ZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28g cmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAx KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Ju ZzIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBk ZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tCisK K1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw2XScsICdb Niw2XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzYsNl0nLCAnWzYsNl0nKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVS SU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycm5nCisgIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9O IERFTEVURSBTRVQgTlVMTCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIG9rOgor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJu Z19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFs aWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBO VUxMIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywg J1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1syMDIwLTAxLTAx LDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIw MCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOwor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIy cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29s cykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIycm5nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb LTEsLTFdJywgJ1stMSwtMV0nLCAnKCwpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJ1syMDE4LTAxLTAx LDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEw MCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9p ZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMiBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJu Z19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAgICBGT1JF SUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERB VEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1w b3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDddJywgaWQyID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAn WzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBE QVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbNyw3XScsIGlkMiA9ICdbNyw3XScgV0hFUkUg aWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0w MSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBT RVQgaWQxID0gJ1s5LDldJywgaWQyID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2 YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2Fs YXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIy cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCAnKCwpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJ1syMDE4 LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2 XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVy MnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5v bi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYs Nl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw4XScsICdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4 XScsICdbOCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUg aWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNF VCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2 LDZdJywgJygsKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGZhaWxzIGJlY2F1 c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrMl9wZXIycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJl bnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRF IFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnJuZwor ICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50 X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAg IE9OIERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxU OworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4XScs ICdbOCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDhdJywg JygsKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVS RSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0gRksgd2l0aCBh IGN1c3RvbSByYW5nZSB0eXBlCisKK0NSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1 YnR5cGU9ZGF0ZSk7CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKKyAgaWQgaW50NHJh bmdlLAorICB2YWxpZF9hdCBteWRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmcz X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfZmszX3JuZzJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2F0IG15ZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrM19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nMyAoaWQsIFBFUklPRCB2YWxpZF9hdCkgT04gREVMRVRFIENBU0NBREUKKyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgbXlkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrM19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzUsNiknLCBt eWRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcm5nMyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAx LTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazNfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CisKK0RST1AgVEFCTEUgdGVt cG9yYWxfZmszX3JuZzJybmc7CitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CitEUk9QIFRZUEUg bXlkYXRlcmFuZ2U7CisKKy0tCistLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlczogcmFu Z2VzCistLQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dCwKKyAgQ09OU1RS QUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFC TEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJ TiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIp JywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScs ICdbMjMsMjQpJyk7CitDUkVBVEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2 LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNykn LCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQsIG5hbWUpIFZBTFVFUwor ICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMDEnKSwgJ29uZScp LAorICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAyLTAxJywgJzIwMDAtMDMtMDEnKSwgJ29u ZScpLAorICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwg J3R3bycpOworCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50 NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGsg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NS RUFURSBUQUJMRSB0ZmtwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAn WzksMTApJywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdbMTUsMTYpJywgJ1sxNywxOCknLCAnWzE5 LDIwKScsICdbMjEsMjIpJywgJ1syMywyNCknKTsKK0NSRUFURSBUQUJMRSB0ZmtwMiBQQVJUSVRJ T04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzAs MSknLCAnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIs MTMpJywgJ1sxNCwxNSknLCAnWzE2LDE3KScsICdbMTgsMTkpJywgJ1syMCwyMSknLCAnWzIyLDIz KScsICdbMjQsMjUpJyk7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2luZyBpbnNl cnRzCistLQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIw MDAtMDEtMDEnLCAnMjAwMC0wMi0xNScpLCAnWzEsMiknKSwKKyAgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAwMS0wMS0wMScsICcyMDAyLTAxLTAxJyksICdbMiwzKScpLAorICAoJ1syLDMpJywgZGF0 ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1sxLDIpJyk7CistLSBzaG91bGQg ZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKICAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxMC0w MS0wMScsICcyMDEwLTAyLTE1JyksICdbMSwyKScpOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUwogICAo J1szLDQpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1szLDQpJyk7 CkBAIC0zMTg1LDQgKzYyODEsMTkgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxNSwxNiknOwogRFJPUCBUQUJMRSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9tbHRybmc7CiAKKy0tCistLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxl czogUEVSSU9EcworLS0KKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3BlciAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwK KyAgbmFtZSB0ZXh0LAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfcm5nX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlk KTsKK0NSRUFURSBUQUJMRSB0cDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Bl ciBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzks MTApJywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdbMTUsMTYpJywgJ1sxNywxOCknLCAnWzE5LDIw KScsICdbMjEsMjIpJywgJ1syMywyNCknKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfcGVyOworCiBSRVNFVCBkYXRlc3R5bGU7Ci0tIAoyLjQ1LjAKCg== --00000000000030a223062454f4b4--