Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vuhE5-001xCS-2l for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Feb 2026 01:28:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vuhE4-00GI43-1h for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Feb 2026 01:28:36 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vuhE3-00GI3v-2B for pgsql-hackers@lists.postgresql.org; Tue, 24 Feb 2026 01:28:36 +0000 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vuhE0-00000000srh-051r for pgsql-hackers@postgresql.org; Tue, 24 Feb 2026 01:28:34 +0000 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-354a4ef0c1eso2568624a91.2 for ; Mon, 23 Feb 2026 17:28:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771896512; cv=none; d=google.com; s=arc-20240605; b=c6/4zZZjsgg3waRgUJ4+EFz+qe3ZVitGnU77VZNXKJVhzGaESw7x+XcdAo3JWPylYB 4R5PMaKw3jb0RE8bQDrOLBNLAsnBzUv8zPyV2PkTzO/E8Ahmpx+7NQTjB1Y7QNP9+UvM QGY5PV3TO/P5ulXi5TsgwCEBWOwMf0w5xH7qQ6ik2HRtiq5pnluWWzAYooi4UKQNrLm6 TCYHzHo2gDPe0evk9sLKRRRhVpskpKHeo0IZwHJEfxopZjtG70A1rTi1BJdGMez0l/MJ v3zNsmLtH3og6AIZZBnljd5XRjaBPGDO9lCMMHf3VB4TcmIVg/aWityHXCM05EBjmuqV CgLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:dkim-signature; bh=FXqy3yRZoisicKW6EazqvF7d4Bb5BQdXBYHZWIYp2As=; fh=Hf8Mti6XVkZJ85wep7czGYuoBvuR/p9Au8SX+4GdPOk=; b=XvT+rkbsAN2daEDMsh8HTukAEZBAgkQaffl/SFIXeQz1ae5MrYLcoHz/f2JqDpjHJm zsnyIl+5P6cYekGgjD6Tw43tD+W/Uw77EgUZR4TUrlO6Sq5HiSoQftW+492P8rtOuApO fNUCHmsYssK5tk4gGJywsfcBRFBeK9SZFjfJ8A9bjUunWn9Dn1AzsI/S+vWzOftPCqOk FIwbKpQYxBU4zgueECA1h06+dhFF4CTKq+fdqik9++m6npdBB+kCMHc0mDXfHY8hHpux Ltkazxwr5H40M3tuKWiHsrdj9Y6nu+Rhu2ipyN+5StScENzLTMicqYVLqNwrpfhUXfCG z5vg==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771896512; x=1772501312; darn=postgresql.org; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=FXqy3yRZoisicKW6EazqvF7d4Bb5BQdXBYHZWIYp2As=; b=OuvQsy7LYlfRkEimxywZTrid8qRnoyikUricKYBTWAWGL4AkfAAlmlsmnBlGo+UhEU 9n+v6yn5iqlaE0868yjfNB+U6eybhzxCRSkdeHBDnogP/skM9SP4bNR/w3GuTJz+IYS7 NSZz3F2wD7Vd6bu+5LctWL0qxoxH1e0Rvn39RW++iWJipyV6mcrtRxwJUNQ+BNldXMh5 qkDwUaZEZvl5/6OMhtzC1mXjy/VIvezzS7SYHbPJjfVFqE2IS8XDLr1suXYyOxVCnAir yTYd+fCdY9d6w6z0dcV/QpmHI2OAa7bef7pBYsQOuCyqIUSuK0gqpjWfCNd/TyYOsHJg B+jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771896512; x=1772501312; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=FXqy3yRZoisicKW6EazqvF7d4Bb5BQdXBYHZWIYp2As=; b=K/oUol1geVZI6sTRfNpR/eVsDIkLvs5nUF6wq47a9vUdKzggFZ+V8aw3OkGIhX7Ldy +/8+r4AVLAp5ae7w3M+sLDQT6w++xJOphXJ/0C20R/9Oy61aWMXBbX9muaFw7Jz3Epgt dWfdE+k52gxgdZ9zcU6TELJgoZpno7BV1DF1YAmsxV5GiePvgF6JQE2WfkKS9FyZdyYJ 6qX7U2kXPGEY/VMhzxIakv9/iKNYDjqIT/JUwJ0c5FEq21AiXA8yw7JnTOsIfr2c9NKi RKuknw6XX1XpVbSxlO9tCr6X9uvsm3NCC4Ox/VG09IpkEmKP85YhxuwMxkygrP7mqknU 0nTQ== X-Forwarded-Encrypted: i=1; AJvYcCV7LKAcTk0oGy8wd8jhDdx6lw9lrTFqJt27tAk6ppUUXvce38SDyAPrC1LPosKe6+nF9kXOu1BUVOuOUqZj@postgresql.org X-Gm-Message-State: AOJu0Yyhjc7YHm7vWk4V533/aMeDwEOd+OXnf0XkyzVrwRzgbFxOFsfh OJJ1WTLfSFG+Pn1L5XRv4GNv2NO0bMy1FQW247rg0M2tdVYY81oVU6IpCUeBYKfor6NB2dp319q O/NGFOaTPoxpPceVpM/EViT2FKqqLR80= X-Gm-Gg: ATEYQzwgqFSgH4O/at/wvJv+IVrq2Pi86hUp6WC3VemPCCeQI+pzoLRvxbdz9WwN6KP 2voHWOCP+ND2Zt6MQIVQB1DA0FY/QjEJKUurnsaATWeIWHWbtdwsVjTuP51q5hcccwhP1YM7AFT 8a5gfnq/C42qSjBztPv6eSS6Vs9boPJ9EGTDFwp/Q7XfGyzS3LNhp5MLpixJMYXz4LXOJenkeal GiMw+N56Wa3PZy9oZRUEBcY5A0CPEHjN9HUbFWBdz2FJzkgPDJ4Hfl28gWA0P+VwWCXza94d43O SDWDZyCqcatBgP3L2obBf+3toWg7cbWstLRWPPHIHg1ADoNcSQ== X-Received: by 2002:a17:90b:56cb:b0:340:f05a:3ed3 with SMTP id 98e67ed59e1d1-358ae8b2337mr10878383a91.17.1771896512089; Mon, 23 Feb 2026 17:28:32 -0800 (PST) MIME-Version: 1.0 References: <20260219.134751.1095180149902968829.ishii@postgresql.org> <20260223.192646.1862474650359229532.ishii@postgresql.org> In-Reply-To: <20260223.192646.1862474650359229532.ishii@postgresql.org> Reply-To: assam258@gmail.com From: Henson Choi Date: Tue, 24 Feb 2026 10:28:19 +0900 X-Gm-Features: AaiRm53JCRxLe3whXAp1PfvHdnzKh5q4l5QUFMOP2fXudVlzSedpVAKY-pAolvo Message-ID: Subject: Re: Row pattern recognition To: Tatsuo Ishii Cc: vik@postgresfriends.org, er@xs4all.nl, jacob.champion@enterprisedb.com, david.g.johnston@gmail.com, peter@eisentraut.org, pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="0000000000002ea9a9064b87cec3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002ea9a9064b87cec3 Content-Type: multipart/alternative; boundary="0000000000002ea9a9064b87cec1" --0000000000002ea9a9064b87cec1 Content-Type: text/plain; charset="UTF-8" Hi Tatsuo, Here are six incremental patches on top of v43. nocfbot-0001 through nocfbot-0004 are the same patches from the previous round (32-bit test fix, PREV/NEXT restriction, ALT lexical ordering, reluctant quantifiers). nocfbot-0005: Detect zero-consumption NFA cycles Adds a per-element visited bitmap to detect zero-consumption cycles during DFS epsilon expansion. Before each state's DFS, the bitmap is cleared; as nfa_advance_state() recurses through epsilon transitions, each elemIdx is marked visited. If the same elemIdx is reached again within the same DFS, it means an epsilon-only loop -- the state is freed immediately. The ad-hoc (count == 0 && min == 0) exit condition in nfa_advance_end() is removed. The FIXME test cases are resolved and renamed to "Zero-Consumption Cycle Detection". nocfbot-0006: Allow A{0} quantifier With cycle detection in place, this becomes straightforward. Lowers the {n} bound minimum from 1 to 0. A{0} is treated as an epsilon transition -- the variable is skipped entirely. Next I plan to work on test reorganization, cross-database result comparison, and a review pass over the NFA executor. Best regards, Henson --0000000000002ea9a9064b87cec1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Tatsuo,

Here are six incremental patches on top = of v43.

nocfbot-0001 through nocfbot-0004 are the same patches from = the
previous round (32-bit test fix, PREV/NEXT restriction, ALT lexical<= br>ordering, reluctant quantifiers).

nocfbot-0005: Detect zero-consu= mption NFA cycles

Adds a per-element visited bitmap to detect zero-c= onsumption cycles
during DFS epsilon expansion.=C2=A0 Before each state&= #39;s DFS, the bitmap
is cleared; as nfa_advance_state() recurses throug= h epsilon
transitions, each elemIdx is marked visited.=C2=A0 If the same= elemIdx
is reached again within the same DFS, it means an epsilon-only<= br>loop -- the state is freed immediately.

The ad-hoc (count =3D=3D = 0 && min =3D=3D 0) exit condition in
nfa_advance_end() is remove= d.=C2=A0 The FIXME test cases are resolved
and renamed to "Zero-Con= sumption Cycle Detection".

nocfbot-0006: Allow A{0} quantifier<= br>
With cycle detection in place, this becomes straightforward.
Lowe= rs the {n} bound minimum from 1 to 0.=C2=A0 A{0} is treated as an
epsilo= n transition -- the variable is skipped entirely.

Next I plan to wor= k on test reorganization, cross-database result
comparison, and a review= pass over the NFA executor.

Best regards,
Henson
--0000000000002ea9a9064b87cec1-- --0000000000002ea9a9064b87cec3 Content-Type: application/octet-stream; name="nocfbot-0003-alt-dfs-early-termination.patch" Content-Disposition: attachment; filename="nocfbot-0003-alt-dfs-early-termination.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlzx6jea2 RnJvbSBjYmY0ZGEwMTNiMmNiMGZmZTJhMTQ5NmU3Zjk0NjdmMWRjMDI5OTdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIEZlYiAyMDI2IDA5OjE4OjIxICswOTAwClN1YmplY3Q6IFtQQVRDSCAzLzZdIEZp eCBBTFQgbGV4aWNhbCBvcmRlcmluZyB2aWEgREZTIGVhcmx5IHRlcm1pbmF0aW9uLAogcmVtb3Zl IGFsdFByaW9yaXR5CgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyAg ICAgIHwgMTY5ICsrKysrKysrKy0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNu b2Rlcy5oICAgICAgICAgICAgIHwgICA3IC0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X2Jhc2Uub3V0ICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBs YWluLm91dCB8ICA0MCArKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91 dCAgICAgfCAgOTIgKysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFp bi5zcWwgICAgICB8ICAyNCArKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsICAg ICAgICAgIHwgIDcwICsrKy0tLS0tLQogNyBmaWxlcyBjaGFuZ2VkLCAxODYgaW5zZXJ0aW9ucygr KSwgMjE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRl eCA5YjJjNGI2YTFkNy4uOTZiMmNkNGI5YzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVXaW5kb3dBZ2cuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93 QWdnLmMKQEAgLTI2NSw4ICsyNjUsNyBAQCBzdGF0aWMgUlBSTkZBU3RhdGUgKm5mYV9zdGF0ZV9h bGxvYyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOwogc3RhdGljIHZvaWQgbmZhX3N0YXRlX2Zy ZWUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFTdGF0ZSAqc3RhdGUpOwogc3RhdGlj IHZvaWQgbmZhX3N0YXRlX2ZyZWVfbGlzdChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5G QVN0YXRlICpsaXN0KTsKIHN0YXRpYyBSUFJORkFTdGF0ZSAqbmZhX3N0YXRlX2NyZWF0ZShXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDE2IGVsZW1JZHgsCi0JCQkJCQkJCQkgaW50MTYgYWx0 UHJpb3JpdHksIGludDMyICpjb3VudHMsCi0JCQkJCQkJCQkgYm9vbCBzb3VyY2VBYnNvcmJhYmxl KTsKKwkJCQkJCQkJCSBpbnQzMiAqY291bnRzLCBib29sIHNvdXJjZUFic29yYmFibGUpOwogc3Rh dGljIGJvb2wgbmZhX3N0YXRlc19lcXVhbChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5G QVN0YXRlICpzMSwKIAkJCQkJCQkgUlBSTkZBU3RhdGUgKnMyKTsKIHN0YXRpYyBib29sIG5mYV9h ZGRfc3RhdGVfdW5pcXVlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAq Y3R4LApAQCAtNTE4OCwxNCArNTE4NywxNCBAQCBuZmFfc3RhdGVfZnJlZV9saXN0KFdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBU3RhdGUgKmxpc3QpCiAvKgogICogbmZhX3N0YXRlX2Ny ZWF0ZQogICoKLSAqIENyZWF0ZSBhIG5ldyBzdGF0ZSB3aXRoIGdpdmVuIGVsZW1JZHgsIGFsdFBy aW9yaXR5IGFuZCBjb3VudHMuCisgKiBDcmVhdGUgYSBuZXcgc3RhdGUgd2l0aCBnaXZlbiBlbGVt SWR4IGFuZCBjb3VudHMuCiAgKiBpc0Fic29yYmFibGUgaXMgY29tcHV0ZWQgaW1tZWRpYXRlbHk6 IGluaGVyaXRlZCBBTkQgbmV3IGVsZW1lbnQncyBmbGFnLgogICogTW9ub3RvbmljIHByb3BlcnR5 OiBvbmNlIGZhbHNlLCBzdGF5cyBmYWxzZSB0aHJvdWdoIGFsbCB0cmFuc2l0aW9ucy4KICAqCiAg KiBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGxpbmtpbmcgdGhlIHJldHVybmVkIHN0YXRlLgog ICovCiBzdGF0aWMgUlBSTkZBU3RhdGUgKgotbmZhX3N0YXRlX2NyZWF0ZShXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIGludDE2IGVsZW1JZHgsIGludDE2IGFsdFByaW9yaXR5LAorbmZhX3N0YXRl X2NyZWF0ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDE2IGVsZW1JZHgsCiAJCQkJIGlu dDMyICpjb3VudHMsIGJvb2wgc291cmNlQWJzb3JiYWJsZSkKIHsKIAlSUFJQYXR0ZXJuICpwYXR0 ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVybjsKQEAgLTUyMDQsNyArNTIwMyw2IEBAIG5mYV9zdGF0 ZV9jcmVhdGUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQxNiBlbGVtSWR4LCBpbnQxNiBh bHRQcmlvcml0eSwKIAlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSA9ICZwYXR0ZXJuLT5lbGVtZW50 c1tlbGVtSWR4XTsKIAogCXN0YXRlLT5lbGVtSWR4ID0gZWxlbUlkeDsKLQlzdGF0ZS0+YWx0UHJp b3JpdHkgPSBhbHRQcmlvcml0eTsKIAlpZiAoY291bnRzICE9IE5VTEwgJiYgbWF4RGVwdGggPiAw KQogCQltZW1jcHkoc3RhdGUtPmNvdW50cywgY291bnRzLCBzaXplb2YoaW50MzIpICogbWF4RGVw dGgpOwogCkBAIC01MjQ5LDcgKzUyNDcsNyBAQCBuZmFfc3RhdGVzX2VxdWFsKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSwgUlBSTkZBU3RhdGUgKnMxLCBSUFJORkFTdGF0ZSAqczIpCiAgKgogICog QWRkIGEgc3RhdGUgdG8gY3R4LT5zdGF0ZXMgYXQgdGhlIEVORCwgb25seSBpZiBubyBkdXBsaWNh dGUgZXhpc3RzLgogICogUmV0dXJucyB0cnVlIGlmIHN0YXRlIHdhcyBhZGRlZCwgZmFsc2UgaWYg ZHVwbGljYXRlIGZvdW5kIChzdGF0ZSBpcyBmcmVlZCkuCi0gKiBFYXJsaWVyIHN0YXRlcyBoYXZl IGxvd2VyIGFsdFByaW9yaXR5IChsZXhpY2FsIG9yZGVyKSwgc28gZXhpc3Rpbmcgd2lucy4KKyAq IEVhcmxpZXIgc3RhdGVzIGhhdmUgYmV0dGVyIGxleGljYWwgb3JkZXIgKERGUyB0cmF2ZXJzYWwg b3JkZXIpLCBzbyBleGlzdGluZyB3aW5zLgogICovCiBzdGF0aWMgYm9vbAogbmZhX2FkZF9zdGF0 ZV91bmlxdWUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsIFJQ Uk5GQVN0YXRlICpzdGF0ZSkKQEAgLTUyODYsOTYgKzUyODQsNDIgQEAgbmZhX2FkZF9zdGF0ZV91 bmlxdWUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsIFJQUk5G QVN0YXRlICoKIC8qCiAgKiBuZmFfYWRkX21hdGNoZWRfc3RhdGUKICAqCi0gKiBSZWNvcmQgYSBt YXRjaGVkIHN0YXRlIGZvbGxvd2luZyBTUUwgc3RhbmRhcmQgc2VtYW50aWNzLgotICogTGV4aWNh bCBvcmRlciAobG93ZXIgYWx0UHJpb3JpdHkpIHdpbnMgZmlyc3QuIEFtb25nIHNhbWUgbGV4aWNh bCBvcmRlciwKLSAqIGxvbmdlciBtYXRjaCB3aW5zIChncmVlZHkpLgorICogUmVjb3JkIGEgc3Rh dGUgdGhhdCByZWFjaGVkIEZJTiwgcmVwbGFjaW5nIGFueSBwcmV2aW91cyBtYXRjaC4KICAqCi0g KiBGSVhNRTogYWx0UHJpb3JpdHkgaXMgYSBzaW5nbGUgdmFsdWUgdGhhdCBvbmx5IHRyYWNrcyB0 aGUgbGFzdCBBTFQgY2hvaWNlLgotICogRm9yIHBhdHRlcm5zIHdpdGggcmVwZWF0ZWQgb3IgbmVz dGVkIEFMVHMgbGlrZSAoQXxCKSssIHRoaXMgY2Fubm90IGNvcnJlY3RseQotICogaW1wbGVtZW50 IFNRTCBzdGFuZGFyZCBsZXhpY2FsIG9yZGVyLCB3aGljaCByZXF1aXJlcyBjb21wYXJpbmcgdGhl IGZ1bGwgcGF0aAotICogZnJvbSBsZWZ0IHRvIHJpZ2h0LiBGb3IgZXhhbXBsZToKLSAqICAgUGF0 dGVybjogKEEgfCBCKSsKLSAqICAgUGF0aCAiQSBCIEEiIHZzICJCIEEgQiIKLSAqICAgQ3VycmVu dDogY29tcGFyZXMgbGFzdCBjaG9pY2UgKEEgdnMgQikg4oaSIGFsdFByaW9yaXR5IDEwIHZzIDIw Ci0gKiAgIENvcnJlY3Q6IHNob3VsZCBjb21wYXJlIGZpcnN0IGNob2ljZSAoQSA8IEIpIOKGkiAi QSBCIEEiIHdpbnMKLSAqCi0gKiBBIGNsYXNzaWZpZXIgc3RydWN0dXJlIHRyYWNraW5nIHRoZSBl bnRpcmUgQUxUIHBhdGggaXMgcmVxdWlyZWQgZm9yIGNvcnJlY3QKLSAqIGltcGxlbWVudGF0aW9u LiBXaXRob3V0IGl0LCBwYXR0ZXJucyB3aXRoIHJlcGVhdGVkIG9yIG5lc3RlZCBBTFRzIHdpbGwK LSAqIHByb2R1Y2UgaW5jb3JyZWN0IG1hdGNoIHNlbGVjdGlvbi4KKyAqIEZvciBTS0lQIFBBU1Qg TEFTVCBST1csIGFsc28gcHJ1bmUgc3Vic2VxdWVudCBjb250ZXh0cyB3aG9zZSBzdGFydCByb3cK KyAqIGZhbGxzIHdpdGhpbiB0aGUgbWF0Y2ggcmFuZ2UsIGFzIHRoZXkgY2Fubm90IHByb2R1Y2Ug b3V0cHV0IHJvd3MuCiAgKi8KIHN0YXRpYyB2b2lkCiBuZmFfYWRkX21hdGNoZWRfc3RhdGUoV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJCQkJCSAgUlBSTkZB U3RhdGUgKnN0YXRlLCBpbnQ2NCBtYXRjaEVuZFJvdykKIHsKLQlib29sCQlzaG91bGRVcGRhdGUg PSBmYWxzZTsKKwlpZiAoY3R4LT5tYXRjaGVkU3RhdGUgIT0gTlVMTCkKKwkJbmZhX3N0YXRlX2Zy ZWUod2luc3RhdGUsIGN0eC0+bWF0Y2hlZFN0YXRlKTsKIAotCWlmIChjdHgtPm1hdGNoZWRTdGF0 ZSA9PSBOVUxMKQotCQlzaG91bGRVcGRhdGUgPSB0cnVlOwotCWVsc2UgaWYgKHN0YXRlLT5hbHRQ cmlvcml0eSA8IGN0eC0+bWF0Y2hlZFN0YXRlLT5hbHRQcmlvcml0eSkKLQkJc2hvdWxkVXBkYXRl ID0gdHJ1ZTsJLyogQmV0dGVyIGxleGljYWwgb3JkZXIgd2lucyAqLwotCWVsc2UgaWYgKHN0YXRl LT5hbHRQcmlvcml0eSA9PSBjdHgtPm1hdGNoZWRTdGF0ZS0+YWx0UHJpb3JpdHkgJiYKLQkJCSBt YXRjaEVuZFJvdyA+IGN0eC0+bWF0Y2hFbmRSb3cpCi0JCXNob3VsZFVwZGF0ZSA9IHRydWU7CS8q IFNhbWUgbGV4aWNhbCBvcmRlciwgbG9uZ2VyIHdpbnMgKi8KKwljdHgtPm1hdGNoZWRTdGF0ZSA9 IHN0YXRlOworCXN0YXRlLT5uZXh0ID0gTlVMTDsKKwljdHgtPm1hdGNoRW5kUm93ID0gbWF0Y2hF bmRSb3c7CiAKLQlpZiAoc2hvdWxkVXBkYXRlKQorCS8qIFBydW5lIGNvbnRleHRzIHRoYXQgc3Rh cnRlZCB3aXRoaW4gdGhpcyBtYXRjaCdzIHJhbmdlICovCisJaWYgKHdpbnN0YXRlLT5ycFNraXBU byA9PSBTVF9QQVNUX0xBU1RfUk9XKQogCXsKLQkJLyogRnJlZSBvbGQgbWF0Y2hlZFN0YXRlIGlm IGV4aXN0cyAqLwotCQlpZiAoY3R4LT5tYXRjaGVkU3RhdGUgIT0gTlVMTCkKLQkJCW5mYV9zdGF0 ZV9mcmVlKHdpbnN0YXRlLCBjdHgtPm1hdGNoZWRTdGF0ZSk7CisJCVJQUk5GQUNvbnRleHQgKm5l eHRDdHg7CisJCWludDY0CQlza2lwcGVkTGVuOwogCi0JCS8qIFRha2Ugb3duZXJzaGlwIG9mIHRo ZSBuZXcgc3RhdGUgKi8KLQkJY3R4LT5tYXRjaGVkU3RhdGUgPSBzdGF0ZTsKLQkJc3RhdGUtPm5l eHQgPSBOVUxMOwotCQljdHgtPm1hdGNoRW5kUm93ID0gbWF0Y2hFbmRSb3c7Ci0KLQkJLyotLS0t LS0tLS0tCi0JCSAqIFNLSVAgUEFTVCBMQVNUIFJPVzogZWFnZXJseSBwcnVuZSBjb250ZXh0cyB3 aXRoaW4gbWF0Y2ggcmFuZ2UuCi0JCSAqCi0JCSAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdo ZW5ldmVyIGEgRklOIHN0YXRlIGlzIHJlYWNoZWQsIGluY2x1ZGluZwotCQkgKiBkdXJpbmcgZ3Jl ZWR5IG1hdGNoaW5nIHdoZW4gaW50ZXJtZWRpYXRlIChzaG9ydGVyKSBtYXRjaGVzIGFyZQotCQkg KiBmb3VuZC4gRWFjaCB0aW1lIHdlIHVwZGF0ZSBtYXRjaEVuZFJvdyAod2hldGhlciBleHRlbmRp bmcgYSBncmVlZHkKLQkJICogbWF0Y2ggb3IgZmluZGluZyBhIG5ldyBtYXRjaCksIHdlIGNhbiBw cnVuZSBwZW5kaW5nIGNvbnRleHRzIHRoYXQKLQkJICogc3RhcnRlZCB3aXRoaW4gdGhlIGN1cnJl bnQgbWF0Y2ggcmFuZ2UuCi0JCSAqCi0JCSAqIFNLSVAgUEFTVCBMQVNUIFJPVyB1c2VzIGxleGlj YWwgb3JkZXIgKG1hdGNoU3RhcnRSb3cpLiBUaGVyZWZvcmUsCi0JCSAqIGFueSBwZW5kaW5nIGNv bnRleHQgdGhhdCBzdGFydGVkIGF0IG9yIGJlZm9yZSBtYXRjaEVuZFJvdyBjYW4gbmV2ZXIKLQkJ ICogcHJvZHVjZSBhIHZhbGlkIG91dHB1dCByb3cgLSBpdCB3b3VsZCBiZSBza2lwcGVkIGFueXdh eSBwZXIgU1FMCi0JCSAqIHN0YW5kYXJkLgotCQkgKgotCQkgKiBFeGFtcGxlIChncmVlZHkgbWF0 Y2hpbmcgaW4gcHJvZ3Jlc3MpOgotCQkgKiAgIFBhdHRlcm46IFNUQVJUIFVQKwotCQkgKiAgIFJv d3M6IDEgMiAzIDQgNQotCQkgKiAgIENvbnRleHQgQSBzdGFydHMgYXQgcm93IDE6Ci0JCSAqICAg ICAtIE1hdGNoZXMgU1RBUlQgVVAgKHJvd3MgMS0yKSDihpIgbWF0Y2hFbmRSb3c9MiDihpIgcHJ1 bmUgQ29udGV4dCBCKHJvdyAyKQotCQkgKiAgICAgLSBNYXRjaGVzIFNUQVJUIFVQIFVQIChyb3dz IDEtMykg4oaSIG1hdGNoRW5kUm93PTMg4oaSIHBydW5lIENvbnRleHQgQyhyb3cgMykKLQkJICog ICAgIC0gQ29udGludWVzIGdyZWVkeSBleHRlbnNpb24gd2hpbGUgcHJ1bmluZyBpbmNyZW1lbnRh bGx5Ci0JCSAqLS0tLS0tLS0tLQotCQkgKi8KLQkJaWYgKHdpbnN0YXRlLT5ycFNraXBUbyA9PSBT VF9QQVNUX0xBU1RfUk9XKQorCQl3aGlsZSAoY3R4LT5uZXh0ICE9IE5VTEwgJiYKKwkJCSAgIGN0 eC0+bmV4dC0+bWF0Y2hTdGFydFJvdyA8PSBtYXRjaEVuZFJvdykKIAkJewotCQkJUlBSTkZBQ29u dGV4dCAqbmV4dEN0eDsKLQkJCWludDY0CQlza2lwcGVkTGVuOwotCi0JCQl3aGlsZSAoY3R4LT5u ZXh0ICE9IE5VTEwgJiYKLQkJCQkgICBjdHgtPm5leHQtPm1hdGNoU3RhcnRSb3cgPD0gbWF0Y2hF bmRSb3cpCi0JCQl7Ci0JCQkJbmV4dEN0eCA9IGN0eC0+bmV4dDsKLQkJCQljdHgtPm5leHQgPSBj dHgtPm5leHQtPm5leHQ7CisJCQluZXh0Q3R4ID0gY3R4LT5uZXh0OworCQkJY3R4LT5uZXh0ID0g Y3R4LT5uZXh0LT5uZXh0OwogCi0JCQkJQXNzZXJ0KG5leHRDdHgtPmxhc3RQcm9jZXNzZWRSb3cg Pj0gbmV4dEN0eC0+bWF0Y2hTdGFydFJvdyk7Ci0JCQkJc2tpcHBlZExlbiA9IG5leHRDdHgtPmxh c3RQcm9jZXNzZWRSb3cgLSBuZXh0Q3R4LT5tYXRjaFN0YXJ0Um93ICsgMTsKLQkJCQluZmFfcmVj b3JkX2NvbnRleHRfc2tpcHBlZCh3aW5zdGF0ZSwgc2tpcHBlZExlbik7CisJCQlBc3NlcnQobmV4 dEN0eC0+bGFzdFByb2Nlc3NlZFJvdyA+PSBuZXh0Q3R4LT5tYXRjaFN0YXJ0Um93KTsKKwkJCXNr aXBwZWRMZW4gPSBuZXh0Q3R4LT5sYXN0UHJvY2Vzc2VkUm93IC0gbmV4dEN0eC0+bWF0Y2hTdGFy dFJvdyArIDE7CisJCQluZmFfcmVjb3JkX2NvbnRleHRfc2tpcHBlZCh3aW5zdGF0ZSwgc2tpcHBl ZExlbik7CiAKLQkJCQluZmFfY29udGV4dF9mcmVlKHdpbnN0YXRlLCBuZXh0Q3R4KTsKLQkJCX0K LQkJCWlmIChjdHgtPm5leHQgPT0gTlVMTCkKLQkJCQl3aW5zdGF0ZS0+bmZhQ29udGV4dFRhaWwg PSBjdHg7CisJCQluZmFfY29udGV4dF9mcmVlKHdpbnN0YXRlLCBuZXh0Q3R4KTsKIAkJfQotCX0K LQllbHNlCi0JewotCQkvKiBUaGlzIHN0YXRlIGRpZG4ndCB3aW4sIGZyZWUgaXQgKi8KLQkJbmZh X3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRlKTsKKwkJaWYgKGN0eC0+bmV4dCA9PSBOVUxMKQor CQkJd2luc3RhdGUtPm5mYUNvbnRleHRUYWlsID0gY3R4OwogCX0KIH0KIApAQCAtNjEyNCw4ICs2 MDY4LDcgQEAgbmZhX3JvdXRlX3RvX2VsZW0oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJO RkFDb250ZXh0ICpjdHgsCiAJCQlSUFJORkFTdGF0ZSAqc2tpcFN0YXRlOwogCiAJCQlza2lwU3Rh dGUgPSBuZmFfc3RhdGVfY3JlYXRlKHdpbnN0YXRlLCBuZXh0RWxlbS0+bmV4dCwKLQkJCQkJCQkJ CQkgc3RhdGUtPmFsdFByaW9yaXR5LCBzdGF0ZS0+Y291bnRzLAotCQkJCQkJCQkJCSBzdGF0ZS0+ aXNBYnNvcmJhYmxlKTsKKwkJCQkJCQkJCQkgc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3Ji YWJsZSk7CiAJCQluZmFfYWR2YW5jZV9zdGF0ZSh3aW5zdGF0ZSwgY3R4LCBza2lwU3RhdGUsIGN1 cnJlbnRQb3MsIGluaXRpYWxBZHZhbmNlKTsKIAkJfQogCX0KQEAgLTYxMzgsOCArNjA4MSw3IEBA IG5mYV9yb3V0ZV90b19lbGVtKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4 dCAqY3R4LAogLyoKICAqIG5mYV9hZHZhbmNlX2FsdAogICoKLSAqIEhhbmRsZSBBTFQgZWxlbWVu dDogZXhwYW5kIGFsbCBicmFuY2hlcyBpbiBsZXhpY2FsIG9yZGVyIChERlMpLgotICogU2V0cyBh bHRQcmlvcml0eSB0byBlbGVtZW50IGluZGV4IHRvIHByZXNlcnZlIGxleGljYWwgb3JkZXIgZm9y IG1hdGNoIHNlbGVjdGlvbi4KKyAqIEhhbmRsZSBBTFQgZWxlbWVudDogZXhwYW5kIGFsbCBicmFu Y2hlcyBpbiBsZXhpY2FsIG9yZGVyIHZpYSBERlMuCiAgKi8KIHN0YXRpYyB2b2lkCiBuZmFfYWR2 YW5jZV9hbHQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCkBA IC02MTYzLDEzICs2MTA1LDEyIEBAIG5mYV9hZHZhbmNlX2FsdChXaW5kb3dBZ2dTdGF0ZSAqd2lu c3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkJaWYgKGZpcnN0KQogCQl7CiAJCQlzdGF0ZS0+ ZWxlbUlkeCA9IGFsdElkeDsKLQkJCXN0YXRlLT5hbHRQcmlvcml0eSA9IGFsdElkeDsKIAkJCW5l d1N0YXRlID0gc3RhdGU7CiAJCQlmaXJzdCA9IGZhbHNlOwogCQl9CiAJCWVsc2UKIAkJewotCQkJ bmV3U3RhdGUgPSBuZmFfc3RhdGVfY3JlYXRlKHdpbnN0YXRlLCBhbHRJZHgsIGFsdElkeCwKKwkJ CW5ld1N0YXRlID0gbmZhX3N0YXRlX2NyZWF0ZSh3aW5zdGF0ZSwgYWx0SWR4LAogCQkJCQkJCQkJ CXN0YXRlLT5jb3VudHMsIHN0YXRlLT5pc0Fic29yYmFibGUpOwogCQl9CiAKQEAgLTYyMDQsNyAr NjE0NSw3IEBAIG5mYV9hZHZhbmNlX2JlZ2luKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBS TkZBQ29udGV4dCAqY3R4LAogCS8qIE9wdGlvbmFsIGdyb3VwOiBjcmVhdGUgc2tpcCBwYXRoIChi dXQgZG9uJ3Qgcm91dGUgeWV0KSAqLwogCWlmIChlbGVtLT5taW4gPT0gMCkKIAl7Ci0JCXNraXBT dGF0ZSA9IG5mYV9zdGF0ZV9jcmVhdGUod2luc3RhdGUsIGVsZW0tPmp1bXAsIHN0YXRlLT5hbHRQ cmlvcml0eSwKKwkJc2tpcFN0YXRlID0gbmZhX3N0YXRlX2NyZWF0ZSh3aW5zdGF0ZSwgZWxlbS0+ anVtcCwKIAkJCQkJCQkJCSBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKIAl9 CiAKQEAgLTYyODYsMjEgKzYyMjcsMTUgQEAgbmZhX2FkdmFuY2VfZW5kKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQkgKiBCZXR3ZWVuIG1pbiBhbmQgbWF4 ICh3aXRoIGF0IGxlYXN0IG9uZSBpdGVyYXRpb24pIC0gY2FuIGV4aXQgb3IKIAkJICogbG9vcAog CQkgKi8KLQkJUlBSRWxlbUlkeAlleGl0QWx0UHJpb3JpdHk7CiAJCVJQUk5GQVN0YXRlICpleGl0 U3RhdGU7CiAJCVJQUlBhdHRlcm5FbGVtZW50ICpqdW1wRWxlbTsKIAkJUlBSUGF0dGVybkVsZW1l bnQgKm5leHRFbGVtOwogCi0JCS8qIFByZXNlcnZlIGFsdFByaW9yaXR5IGZvciBncmVlZHkgZXh0 ZW5zaW9uICovCi0JCWV4aXRBbHRQcmlvcml0eSA9IHN0YXRlLT5hbHRQcmlvcml0eTsKLQkJaWYg KGN0eC0+bWF0Y2hlZFN0YXRlICE9IE5VTEwpCi0JCQlleGl0QWx0UHJpb3JpdHkgPSBjdHgtPm1h dGNoZWRTdGF0ZS0+YWx0UHJpb3JpdHk7Ci0KIAkJLyoKIAkJICogQ3JlYXRlIGV4aXQgc3RhdGUg Zmlyc3QgKG5lZWQgb3JpZ2luYWwgY291bnRzIGJlZm9yZSBtb2RpZnlpbmcKIAkJICogc3RhdGUp CiAJCSAqLwotCQlleGl0U3RhdGUgPSBuZmFfc3RhdGVfY3JlYXRlKHdpbnN0YXRlLCBlbGVtLT5u ZXh0LCBleGl0QWx0UHJpb3JpdHksCisJCWV4aXRTdGF0ZSA9IG5mYV9zdGF0ZV9jcmVhdGUod2lu c3RhdGUsIGVsZW0tPm5leHQsCiAJCQkJCQkJCQkgc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJz b3JiYWJsZSk7CiAJCWV4aXRTdGF0ZS0+Y291bnRzW2RlcHRoXSA9IDA7CiAJCW5leHRFbGVtID0g JmVsZW1lbnRzW2V4aXRTdGF0ZS0+ZWxlbUlkeF07CkBAIC02MzQ5LDcgKzYyODQsNyBAQCBuZmFf YWR2YW5jZV92YXIoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgs CiAJCVJQUk5GQVN0YXRlICpsb29wU3RhdGU7CiAJCVJQUlBhdHRlcm5FbGVtZW50ICpuZXh0RWxl bTsKIAotCQlsb29wU3RhdGUgPSBuZmFfc3RhdGVfY3JlYXRlKHdpbnN0YXRlLCBzdGF0ZS0+ZWxl bUlkeCwgc3RhdGUtPmFsdFByaW9yaXR5LAorCQlsb29wU3RhdGUgPSBuZmFfc3RhdGVfY3JlYXRl KHdpbnN0YXRlLCBzdGF0ZS0+ZWxlbUlkeCwKIAkJCQkJCQkJCSBzdGF0ZS0+Y291bnRzLCBzdGF0 ZS0+aXNBYnNvcmJhYmxlKTsKIAkJbmZhX2FkZF9zdGF0ZV91bmlxdWUod2luc3RhdGUsIGN0eCwg bG9vcFN0YXRlKTsKIApAQCAtNjM1OCw2ICs2MjkzLDIwIEBAIG5mYV9hZHZhbmNlX3ZhcihXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkJc3RhdGUtPmVsZW1J ZHggPSBlbGVtLT5uZXh0OwogCQluZXh0RWxlbSA9ICZlbGVtZW50c1tzdGF0ZS0+ZWxlbUlkeF07 CiAKKwkJLyoKKwkJICogV2hlbiBhIHF1YW50aWZpZWQgVkFSIChlLmcuLCBBKykgZXhpdHMgZGly ZWN0bHkgdG8gYW4gb3V0ZXIgRU5ELAorCQkgKiBpbmNyZW1lbnQgdGhlIEVORCdzIGl0ZXJhdGlv biBjb3VudC4gIFNpbXBsZSBWQVJzIChtaW49bWF4PTEpCisJCSAqIGhhbmRsZSB0aGlzIHZpYSBp bmxpbmUgYWR2YW5jZSBpbiBuZmFfbWF0Y2gsIGJ1dCBxdWFudGlmaWVkIFZBUnMKKwkJICogYnlw YXNzIHRoYXQgcGF0aC4gIE9ubHkgaW5jcmVtZW50IHdoZW4gdGhlIFZBUiBhY3R1YWxseSBjb25z dW1lZAorCQkgKiByb3dzIChjb3VudCA+IDApIHRvIHByZXNlcnZlIGN5Y2xlIHByZXZlbnRpb24g Zm9yIHplcm8tcHJvZ3Jlc3MKKwkJICogbG9vcHMuCisJCSAqLworCQlpZiAoUlBSRWxlbUlzRW5k KG5leHRFbGVtKSAmJiBjb3VudCA+IDApCisJCXsKKwkJCWlmIChzdGF0ZS0+Y291bnRzW25leHRF bGVtLT5kZXB0aF0gPCBSUFJfQ09VTlRfTUFYKQorCQkJCXN0YXRlLT5jb3VudHNbbmV4dEVsZW0t PmRlcHRoXSsrOworCQl9CisKIAkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc3Rh dGUsIG5leHRFbGVtLCBjdXJyZW50UG9zLCBpbml0aWFsQWR2YW5jZSk7CiAJfQogCWVsc2UgaWYg KGNhbkxvb3ApCkBAIC02Mzc0LDYgKzYzMjMsMTMgQEAgbmZhX2FkdmFuY2VfdmFyKFdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQlzdGF0ZS0+ZWxlbUlkeCA9 IGVsZW0tPm5leHQ7CiAJCW5leHRFbGVtID0gJmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKIAor CQkvKiBTZWUgY29tbWVudCBhYm92ZTogaW5jcmVtZW50IG91dGVyIEVORCBjb3VudCBmb3IgcXVh bnRpZmllZCBWQVJzICovCisJCWlmIChSUFJFbGVtSXNFbmQobmV4dEVsZW0pICYmIGNvdW50ID4g MCkKKwkJeworCQkJaWYgKHN0YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRlcHRoXSA8IFJQUl9DT1VO VF9NQVgpCisJCQkJc3RhdGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhdKys7CisJCX0KKwogCQlu ZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgbmV4dEVsZW0sIGN1cnJlbnRQ b3MsIGluaXRpYWxBZHZhbmNlKTsKIAl9CiB9CkBAIC02MzgyLDkgKzYzMzgsNyBAQCBuZmFfYWR2 YW5jZV92YXIoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAg KiBuZmFfYWR2YW5jZV9zdGF0ZQogICoKICAqIFJlY3Vyc2l2ZWx5IHByb2Nlc3MgYSBzaW5nbGUg c3RhdGUgdGhyb3VnaCBlcHNpbG9uIHRyYW5zaXRpb25zLgotICogVXNlcyBERlMgdHJhdmVyc2Fs IHRvIG1haW50YWluIGxleGljYWwgb3JkZXI6IGxvd2VyIGFsdFByaW9yaXR5IHBhdGhzCi0gKiBh cmUgZnVsbHkgcHJvY2Vzc2VkIGJlZm9yZSBoaWdoZXIgYWx0UHJpb3JpdHkgcGF0aHMsIGVuc3Vy aW5nIHN0YXRlcwotICogYXJlIGFkZGVkIHRvIGN0eC0+c3RhdGVzIGluIGxleGljYWwgb3JkZXIu CisgKiBERlMgdHJhdmVyc2FsIGVuc3VyZXMgc3RhdGVzIGFyZSBhZGRlZCB0byBjdHgtPnN0YXRl cyBpbiBsZXhpY2FsIG9yZGVyLgogICovCiBzdGF0aWMgdm9pZAogbmZhX2FkdmFuY2Vfc3RhdGUo V2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCkBAIC02NDQzLDEz ICs2Mzk3LDI2IEBAIG5mYV9hZHZhbmNlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZB Q29udGV4dCAqY3R4LCBpbnQ2NCBjdXJyZW50UG9zLAogCiAJY3R4LT5zdGF0ZXMgPSBOVUxMOwkJ CS8qIFdpbGwgcmVidWlsZCAqLwogCi0JLyogUHJvY2VzcyBlYWNoIHN0YXRlIGluIG9yZGVyICov CisJLyogUHJvY2VzcyBlYWNoIHN0YXRlIGluIGxleGljYWwgb3JkZXIgKERGUyBvcmRlciBmcm9t IHByZXZpb3VzIGFkdmFuY2UpICovCiAJd2hpbGUgKHN0YXRlcyAhPSBOVUxMKQogCXsKKwkJUlBS TkZBU3RhdGUgKnNhdmVkTWF0Y2hlZFN0YXRlID0gY3R4LT5tYXRjaGVkU3RhdGU7CisKIAkJc3Rh dGUgPSBzdGF0ZXM7CiAJCXN0YXRlcyA9IHN0YXRlcy0+bmV4dDsKIAkJc3RhdGUtPm5leHQgPSBO VUxMOwogCiAJCW5mYV9hZHZhbmNlX3N0YXRlKHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBjdXJyZW50 UG9zLCBpbml0aWFsQWR2YW5jZSk7CisKKwkJLyoKKwkJICogRWFybHkgdGVybWluYXRpb246IGlm IGEgRklOIHdhcyBuZXdseSByZWFjaGVkIGluIHRoaXMgYWR2YW5jZSwKKwkJICogcmVtYWluaW5n IG9sZCBzdGF0ZXMgaGF2ZSB3b3JzZSBsZXhpY2FsIG9yZGVyIGFuZCBjYW4gYmUgcHJ1bmVkLgor CQkgKiBPbmx5IGNoZWNrIGZvciBuZXcgRklOIGFycml2YWxzIChub3Qgb25lcyBmcm9tIHByZXZp b3VzIHJvd3MpLgorCQkgKi8KKwkJaWYgKGN0eC0+bWF0Y2hlZFN0YXRlICE9IHNhdmVkTWF0Y2hl ZFN0YXRlICYmIHN0YXRlcyAhPSBOVUxMKQorCQl7CisJCQluZmFfc3RhdGVfZnJlZV9saXN0KHdp bnN0YXRlLCBzdGF0ZXMpOworCQkJYnJlYWs7CisJCX0KIAl9CiB9CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5o CmluZGV4IGNkNmY3OTRmNjJiLi45YTE1NjFmY2U3ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv bm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAg LTI1MjMsMjEgKzI1MjMsMTQgQEAgdHlwZWRlZiBlbnVtIFdpbmRvd0FnZ1N0YXR1cwogICogUlBS TkZBU3RhdGUgLSBzaW5nbGUgTkZBIHN0YXRlIGZvciBwYXR0ZXJuIG1hdGNoaW5nCiAgKgogICog Y291bnRzW10gdHJhY2tzIHJlcGV0aXRpb24gY291bnRzIGF0IGVhY2ggbmVzdGluZyBkZXB0aC4K LSAqIGFsdFByaW9yaXR5IHRyYWNrcyBsZXhpY2FsIG9yZGVyIGZvciBhbHRlcm5hdGlvbiAobG93 ZXIgPSBlYXJsaWVyIGFsdGVybmF0aXZlKS4KICAqCiAgKiBpc0Fic29yYmFibGUgdHJhY2tzIGlm IHN0YXRlIGlzIGluIGFic29yYmFibGUgcmVnaW9uIChBQlNPUkJBQkxFX0JSQU5DSCkuCiAgKiBN b25vdG9uaWMgcHJvcGVydHk6IG9uY2UgZmFsc2UsIHN0YXlzIGZhbHNlIChjYW4ndCByZS1lbnRl ciByZWdpb24pLgotICoKLSAqIEFic29ycHRpb24gY29tcGFyaXNvbiB1c2VzIGVsZW1JZHggYW5k IGNvdW50c1tkZXB0aF0gZGlyZWN0bHkgYmVjYXVzZToKLSAqICAgLSBWQVIgZWxlbWVudHMgY29u c3VtZSBhIHJvdywgZm9yY2luZyBzdGF0ZXMgdG8gd2FpdCBmb3IgbmV4dCByb3cKLSAqICAgLSBF TkQgbG9vcCBwdXRzIHN0YXRlcyBhdCBncm91cCBzdGFydCB3aXRoIGl0ZXJhdGlvbiBjb3VudCBw cmVzZXJ2ZWQKLSAqICAgLSBBdCByb3cgZW5kLCBjb21wYXJhYmxlIHN0YXRlcyBhcmUgYXQgdGhl IHNhbWUgcG9zaXRpb24gKGVsZW1JZHgpCiAgKi8KIHR5cGVkZWYgc3RydWN0IFJQUk5GQVN0YXRl CiB7CiAJc3RydWN0IFJQUk5GQVN0YXRlICpuZXh0OwkvKiBuZXh0IHN0YXRlIGluIGxpbmtlZCBs aXN0ICovCiAJaW50MTYJCWVsZW1JZHg7CQkvKiBjdXJyZW50IHBhdHRlcm4gZWxlbWVudCBpbmRl eCAqLwotCWludDE2CQlhbHRQcmlvcml0eTsJLyogbGV4aWNhbCBvcmRlciBwcmlvcml0eSAobG93 ZXIgPSBwcmVmZXJyZWQpICovCiAJYm9vbAkJaXNBYnNvcmJhYmxlOwkvKiB0cnVlIGlmIHN0YXRl IGlzIGluIGFic29yYmFibGUgcmVnaW9uICovCiAJaW50MzIJCWNvdW50c1tGTEVYSUJMRV9BUlJB WV9NRU1CRVJdOwkvKiByZXBldGl0aW9uIGNvdW50cyBieSBkZXB0aCAqLwogfSBSUFJORkFTdGF0 ZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXggMWQ0MmFmMTU5ODAu LmQzMTdlYzcwYzhkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9i YXNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dApAQCAt MzcwMyw3ICszNzAzLDcgQEAgV0lORE9XIHcgQVMgKAogT1JERVIgQlkgaWQ7CiAgaWQgfCB2YWwg fCBjbnQgCiAtLS0tKy0tLS0tKy0tLS0tCi0gIDEgfCAgMTAgfCAgIDAKKyAgMSB8ICAxMCB8ICAg MwogICAyIHwgIDIwIHwgICAwCiAgIDMgfCAgMzAgfCAgIDAKICAgNCB8ICA0MCB8ICAgMApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dAppbmRleCBiZmU0ZWUyYmE3ZC4u ZGFjYjhkNjkwN2YgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4 cGxhaW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0 CkBAIC02NzYsNiArNjc2LDQ2IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2Fu IG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICg5IHJv d3MpCiAKK0RST1AgVklFVyBycHJfdjsKKy0tIEVhcmx5IHRlcm1pbmF0aW9uOiBmaXJzdCBBTFQg YnJhbmNoIChBKSByZWFjaGVzIEZJTiBpbW1lZGlhdGVseSwKKy0tIHBydW5pbmcgc2Vjb25kIGJy YW5jaCAoQSBCKykgYmVmb3JlIGl0IGNhbiBhY2N1bXVsYXRlIEIgcmVwZXRpdGlvbnMuCitDUkVB VEUgVEVNUCBWSUVXIHJwcl92IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEEgQikrKQorICAgIERFRklORSBB IEFTIHYgPSAxLCBCIEFTIHYgPiAxCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfdicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICBsaW5lICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhIHwgYSBiKSspIAorKDEgcm93KQorCitTRUxF Q1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBD T1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBBIEIpKykK KyAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID4gMQorKTsnKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEp CisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhIHwgYSBiKSsKKyAgIFN0b3JhZ2U6IE1lbW9yeSAg TWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgMjA0IHRvdGFsLCAw IG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDEwMSB0b3RhbCwgOTkgcHJ1bmVkCisg ICBORkE6IDEgbWF0Y2hlZCAobGVuIDEvMS8xLjApLCAwIG1pc21hdGNoZWQKKyAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9 MSkKKyg4IHJvd3MpCisKIERST1AgVklFVyBycHJfdjsKIC0tIE5lc3RlZCBxdWFudGlmaWVycyBj YXVzaW5nIHN0YXRlIGdyb3d0aAogQ1JFQVRFIFRFTVAgVklFVyBycHJfdiBBUwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnByX25mYS5vdXQKaW5kZXggNDZhNDYzYzI1OTcuLjdkMzhkNjJhYzMxIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQKQEAgLTE1MTQsNiArMTUxNCwzNCBA QCBXSU5ET1cgdyBBUyAoCiAgIDQgfCB7XyxffSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCiAo NCByb3dzKQogCistLSBBTFQgbGV4aWNhbCBvcmRlciB0YWtlcyBwcmlvcml0eSBvdmVyIGdyZWVk eSAobG9uZ2VyIG1hdGNoKS4KKy0tIFJvdyAxIG1hdGNoZXMgYm90aCBBIGFuZCBCOyBBIHdpbnMg YnkgbGV4aWNhbCBvcmRlciAobWF0Y2ggMS0xKS4KK1dJVEggdGVzdF9hbHRfbGV4aWNhbF9vcmRl ciBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScs J0InXSksICAtLSBBIGFuZCBCIGJvdGggbWF0Y2gKKyAgICAgICAgKDIsIEFSUkFZWydfJywnQydd KSAgIC0tIG9ubHkgQyBtYXRjaGVzICh3b3VsZCBjb250aW51ZSBCIEMpCisgICAgKSBBUyB0KGlk LCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCitGUk9NIHRlc3RfYWx0X2xleGljYWxfb3JkZXIKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KChBIHwgQiBDKSspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShm bGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSst LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBLEJ9IHwgICAgICAgICAg IDEgfCAgICAgICAgIDEKKyAgMiB8IHtfLEN9IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKygy IHJvd3MpCisKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0gRGVlcCBOZXN0ZWQgR3JvdXBzCiAtLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTI0MDMs NjYgKzI0MzEsNiBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEZJWE1FIElzc3VlcyAtIEtu b3duIExpbWl0YXRpb25zCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEZJWE1FIDEgLSBhbHRQcmlvcml0eSBsZXhpY2Fs IG9yZGVyCi1XSVRIIHRlc3RfYWx0X3ByaW9yaXR5X3JlcGVhdGVkIEFTICgKLSAgICBTRUxFQ1Qg KiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJywnQiddKSwgIC0tIEJvdGggQSBh bmQgQiBtYXRjaAotICAgICAgICAoMiwgQVJSQVlbJ0EnLCdCJ10pLAotICAgICAgICAoMywgQVJS QVlbJ0EnLCdCJ10pCi0gICAgKSBBUyB0KGlkLCBmbGFncykKLSkKLVNFTEVDVCBpZCwgZmxhZ3Ms Ci0gICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKLSAgICAgICBs YXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCi1GUk9NIHRlc3RfYWx0X3ByaW9yaXR5 X3JlcGVhdGVkCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIgQlkgaWQKLSAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKLSAgICBBRlRFUiBNQVRDSCBT S0lQIFRPIE5FWFQgUk9XCi0gICAgUEFUVEVSTiAoKEEgfCBCKSspCi0gICAgREVGSU5FCi0gICAg ICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3Mp Ci0pOwotIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0gIDEgfCB7QSxCfSB8ICAgICAgICAgICAxIHwg ICAgICAgICAzCi0gIDIgfCB7QSxCfSB8ICAgICAgICAgICAyIHwgICAgICAgICAzCi0gIDMgfCB7 QSxCfSB8ICAgICAgICAgICAzIHwgICAgICAgICAzCi0oMyByb3dzKQotCi0tLSBGSVhNRSAxIC0g TmVzdGVkIEFMVCBsZXhpY2FsIG9yZGVyCi1XSVRIIHRlc3RfYWx0X3ByaW9yaXR5X25lc3RlZCBB UyAoCi0gICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0gICAgICAgICgxLCBBUlJBWVsnQScsJ0In XSksCi0gICAgICAgICgyLCBBUlJBWVsnQycsJ0QnXSksCi0gICAgICAgICgzLCBBUlJBWVsnQScs J0InXSksCi0gICAgICAgICg0LCBBUlJBWVsnQycsJ0QnXSkKLSAgICApIEFTIHQoaWQsIGZsYWdz KQotKQotU0VMRUNUIGlkLCBmbGFncywKLSAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX3N0YXJ0LAotICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQK LUZST00gdGVzdF9hbHRfcHJpb3JpdHlfbmVzdGVkCi1XSU5ET1cgdyBBUyAoCi0gICAgT1JERVIg QlkgaWQKLSAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKLSAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCi0gICAgUEFUVEVSTiAoKChBIHwg QikgKEMgfCBEKSkrKQotICAgIERFRklORQotICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyks Ci0gICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQyBBUyAnQycgPSBBTlko ZmxhZ3MpLAotICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncykKLSk7Ci0gaWQgfCBmbGFncyB8 IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAotLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KLSAgMSB8IHtBLEJ9IHwgICAgICAgICAgIDEgfCAgICAgICAgIDQKLSAgMiB8IHtD LER9IHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSAgMyB8IHtBLEJ9IHwgICAgICAgICAgIDMg fCAgICAgICAgIDQKLSAgNCB8IHtDLER9IHwgICAgICAgICAgICAgfCAgICAgICAgICAKLSg0IHJv d3MpCi0KIC0tIEZJWE1FIDIgLSBDeWNsZSBwcmV2ZW50aW9uIGF0IGNvdW50ID4gMAogV0lUSCB0 ZXN0X2N5Y2xlX25vbnplcm8gQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwpAQCAtMjUx Niw4ICsyNDg0LDggQEAgV0lORE9XIHcgQVMgKAogKTsKICBpZCB8IGZsYWdzIHwgbWF0Y2hfc3Rh cnQgfCBtYXRjaF9lbmQgCiAtLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQot ICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgMgotICAyIHwge0J9ICAgfCAgICAg ICAgICAgMiB8ICAgICAgICAgMgorICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAg MworICAyIHwge0J9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgMwogICAzIHwge0F9ICAgfCAg ICAgICAgICAgMyB8ICAgICAgICAgMwogICA0IHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAg ICAgIAogKDQgcm93cykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBs YWluLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAppbmRleCBlYThj MzliOTkxZS4uZDAxN2EyMjkyZDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jw cl9leHBsYWluLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwK QEAgLTQ1MSw2ICs0NTEsMzAgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIERST1AgVklFVyBycHJf djsKIAorLS0gRWFybHkgdGVybWluYXRpb246IGZpcnN0IEFMVCBicmFuY2ggKEEpIHJlYWNoZXMg RklOIGltbWVkaWF0ZWx5LAorLS0gcHJ1bmluZyBzZWNvbmQgYnJhbmNoIChBIEIrKSBiZWZvcmUg aXQgY2FuIGFjY3VtdWxhdGUgQiByZXBldGl0aW9ucy4KK0NSRUFURSBURU1QIFZJRVcgcnByX3Yg QVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKChBIHwgQSBCKSspCisgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA+ IDEKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl92JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9G RiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQSBC KSspCisgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA+IDEKKyk7Jyk7CitEUk9QIFZJRVcg cnByX3Y7CisKIC0tIE5lc3RlZCBxdWFudGlmaWVycyBjYXVzaW5nIHN0YXRlIGdyb3d0aAogQ1JF QVRFIFRFTVAgVklFVyBycHJfdiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX25mYS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfbmZhLnNxbAppbmRleCA5NTczZDFkYWIzYi4uZTk4OTRjZmE2OTEgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Jwcl9uZmEuc3FsCkBAIC0xMDc5LDYgKzEwNzksMjkgQEAgV0lORE9XIHcgQVMgKAogICAg ICAgICBEIEFTICdEJyA9IEFOWShmbGFncykKICk7CiAKKy0tIEFMVCBsZXhpY2FsIG9yZGVyIHRh a2VzIHByaW9yaXR5IG92ZXIgZ3JlZWR5IChsb25nZXIgbWF0Y2gpLgorLS0gUm93IDEgbWF0Y2hl cyBib3RoIEEgYW5kIEI7IEEgd2lucyBieSBsZXhpY2FsIG9yZGVyIChtYXRjaCAxLTEpLgorV0lU SCB0ZXN0X2FsdF9sZXhpY2FsX29yZGVyIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMK KyAgICAgICAgKDEsIEFSUkFZWydBJywnQiddKSwgIC0tIEEgYW5kIEIgYm90aCBtYXRjaAorICAg ICAgICAoMiwgQVJSQVlbJ18nLCdDJ10pICAgLS0gb25seSBDIG1hdGNoZXMgKHdvdWxkIGNvbnRp bnVlIEIgQykKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAg ICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hbHRfbGV4aWNhbF9vcmRl cgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCIEMpKykKKyAgICBERUZJTkUKKyAgICAgICAg QSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisg ICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKQorKTsKKwogLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBEZWVwIE5lc3Rl ZCBHcm91cHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpAQCAtMTc3Miw1MyArMTc5NSw2IEBAIFdJTkRPVyB3IEFTICgKIC0t IEZJWE1FIElzc3VlcyAtIEtub3duIExpbWl0YXRpb25zCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAotLS0gRklYTUUgMSAt IGFsdFByaW9yaXR5IGxleGljYWwgb3JkZXIKLVdJVEggdGVzdF9hbHRfcHJpb3JpdHlfcmVwZWF0 ZWQgQVMgKAotICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0En LCdCJ10pLCAgLS0gQm90aCBBIGFuZCBCIG1hdGNoCi0gICAgICAgICgyLCBBUlJBWVsnQScsJ0In XSksCi0gICAgICAgICgzLCBBUlJBWVsnQScsJ0InXSkKLSAgICApIEFTIHQoaWQsIGZsYWdzKQot KQotU0VMRUNUIGlkLCBmbGFncywKLSAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX3N0YXJ0LAotICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKLUZS T00gdGVzdF9hbHRfcHJpb3JpdHlfcmVwZWF0ZWQKLVdJTkRPVyB3IEFTICgKLSAgICBPUkRFUiBC WSBpZAotICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RwotICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKLSAgICBQQVRURVJOICgoQSB8IEIp KykKLSAgICBERUZJTkUKLSAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAotICAgICAgICBC IEFTICdCJyA9IEFOWShmbGFncykKLSk7Ci0KLS0tIEZJWE1FIDEgLSBOZXN0ZWQgQUxUIGxleGlj YWwgb3JkZXIKLVdJVEggdGVzdF9hbHRfcHJpb3JpdHlfbmVzdGVkIEFTICgKLSAgICBTRUxFQ1Qg KiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEsIEFSUkFZWydBJywnQiddKSwKLSAgICAgICAgKDIs IEFSUkFZWydDJywnRCddKSwKLSAgICAgICAgKDMsIEFSUkFZWydBJywnQiddKSwKLSAgICAgICAg KDQsIEFSUkFZWydDJywnRCddKQotICAgICkgQVMgdChpZCwgZmxhZ3MpCi0pCi1TRUxFQ1QgaWQs IGZsYWdzLAotICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCi0g ICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAotRlJPTSB0ZXN0X2FsdF9w cmlvcml0eV9uZXN0ZWQKLVdJTkRPVyB3IEFTICgKLSAgICBPUkRFUiBCWSBpZAotICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwotICAgIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKLSAgICBQQVRURVJOICgoKEEgfCBCKSAoQyB8IEQpKSspCi0g ICAgREVGSU5FCi0gICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKLSAgICAgICAgQiBBUyAn QicgPSBBTlkoZmxhZ3MpLAotICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCi0gICAgICAg IEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQotKTsKLQogLS0gRklYTUUgMiAtIEN5Y2xlIHByZXZlbnRp b24gYXQgY291bnQgPiAwCiBXSVRIIHRlc3RfY3ljbGVfbm9uemVybyBBUyAoCiAgICAgU0VMRUNU ICogRlJPTSAoVkFMVUVTCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --0000000000002ea9a9064b87cec3 Content-Type: application/octet-stream; name="nocfbot-0001-rpr-explain-32bit-fix.patch" Content-Disposition: attachment; filename="nocfbot-0001-rpr-explain-32bit-fix.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlzx6je20 RnJvbSAwZjIwNzI1YzY4YmY1YTY2NjIyNDVhYjNlZjYwMTg4MzBlYmVlNzBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDE2IEZlYiAyMDI2IDIzOjU3OjUwICswOTAwClN1YmplY3Q6IFtQQVRDSCAxLzZdIE5v cm1hbGl6ZSBTb3J0IE1ldGhvZCBtZW1vcnkgaW4gcnByX2V4cGxhaW4gdGVzdCBmb3IKIDMyLWJp dCBjb21wYXRpYmlsaXR5CgotLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxh aW4ub3V0IHwgMTMgKysrKysrKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxh aW4uc3FsICAgICAgfCAgOSArKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxh aW4ub3V0CmluZGV4IGYyM2QwNmY2ZDU5Li5iZmU0ZWUyYmE3ZCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTMzLDcgKzMzLDcgQEAKIC0tICAgREVGSU5F IEV4cHJlc3Npb24gVmFyaWF0aW9ucwogLS0gICBMYXJnZSBTY2FsZSBTdGF0aXN0aWNzIFZlcmlm aWNhdGlvbgogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBGaWx0ZXIgZnVuY3Rpb24gdG8gbm9ybWFsaXplIFN0b3JhZ2Ug bWVtb3J5IHZhbHVlcyBvbmx5IChub3QgTkZBIHN0YXRpc3RpY3MpLgorLS0gRmlsdGVyIGZ1bmN0 aW9uIHRvIG5vcm1hbGl6ZSBwbGF0Zm9ybS1kZXBlbmRlbnQgbWVtb3J5IHZhbHVlcyAobm90IE5G QSBzdGF0aXN0aWNzKS4KIC0tIE5GQSBzdGF0aXN0aWNzIHNob3VsZCBub3QgY2hhbmdlIGJldHdl ZW4gcGxhdGZvcm1zOyBpZiB0aGV5IGRvLCBpdCBjb3VsZAogLS0gaW5kaWNhdGUgaXNzdWVzIHN1 Y2ggYXMgdW5pbml0aWFsaXplZCBtZW1vcnkgYWNjZXNzLgogLS0gV29ya3MgZm9yIHRleHQsIEpT T04sIGFuZCBYTUwgZm9ybWF0cy4KQEAgLTQ1LDcgKzQ1LDcgQEAgZGVjbGFyZQogYmVnaW4KICAg ICBmb3IgbG4gaW4gZXhlY3V0ZSAkMQogICAgIGxvb3AKLSAgICAgICAgLS0gTm9ybWFsaXplIG1l bW9yeSBzaXplIGluIFN0b3JhZ2UgbGluZSBvbmx5IChwbGF0Zm9ybS1kZXBlbmRlbnQpCisgICAg ICAgIC0tIE5vcm1hbGl6ZSBwbGF0Zm9ybS1kZXBlbmRlbnQgbWVtb3J5IHZhbHVlcwogICAgICAg ICAtLSBLZWVwIE5GQSBzdGF0aXN0aWNzIG51bWJlcnMgdW5jaGFuZ2VkICh0aGV5IGFyZSB0ZXN0 IGFzc2VydGlvbnMpCiAKICAgICAgICAgLS0gVGV4dCBmb3JtYXQ6ICJTdG9yYWdlOiBNZW1vcnkg IE1heGltdW0gU3RvcmFnZTogMThrQiIKQEAgLTYzLDYgKzYzLDExIEBAIGJlZ2luCiAgICAgICAg ICAgICBsbiA6PSByZWdleHBfcmVwbGFjZShsbiwgJzxNYXhpbXVtLVN0b3JhZ2U+XGQrPC9NYXhp bXVtLVN0b3JhZ2U+JywgJzxNYXhpbXVtLVN0b3JhZ2U+MDwvTWF4aW11bS1TdG9yYWdlPicsICdn Jyk7CiAgICAgICAgIGVuZCBpZjsKIAorICAgICAgICAtLSBTb3J0IE1ldGhvZCBtZW1vcnkgaXMg cGxhdGZvcm0tZGVwZW5kZW50ICgzMi1iaXQgdnMgNjQtYml0KQorICAgICAgICBpZiBsbiB+ICdT b3J0IE1ldGhvZDouKk1lbW9yeTonIHRoZW4KKyAgICAgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBs YWNlKGxuLCAnTWVtb3J5OiBcZCtrQicsICdNZW1vcnk6IE5rQicpOworICAgICAgICBlbmQgaWY7 CisKICAgICAgICAgcmV0dXJuIG5leHQgbG47CiAgICAgZW5kIGxvb3A7CiBlbmQ7CkBAIC0xNjI1 LDcgKzE2MzAsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICBORkE6IDU0IGFic29yYmVkIChsZW4gMS8x LzEuMCksIDE4IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIFNvcnQgKGFjdHVhbCByb3dz PTkwLjAwIGxvb3BzPTEpCiAgICAgICAgICBTb3J0IEtleTogcC5wCi0gICAgICAgICBTb3J0IE1l dGhvZDogcXVpY2tzb3J0ICBNZW1vcnk6IDI3a0IKKyAgICAgICAgIFNvcnQgTWV0aG9kOiBxdWlj a3NvcnQgIE1lbW9yeTogTmtCCiAgICAgICAgICAtPiAgTmVzdGVkIExvb3AgKGFjdHVhbCByb3dz PTkwLjAwIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5l cmF0ZV9zZXJpZXMgcCAoYWN0dWFsIHJvd3M9My4wMCBsb29wcz0xKQogICAgICAgICAgICAgICAg LT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHYgKGFjdHVhbCByb3dzPTMwLjAw IGxvb3BzPTMpCkBAIC0xNjgyLDcgKzE2ODcsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICBORkE6IDE5 IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDUgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAg U29ydCAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICAgICAgICAgIFNvcnQgS2V5OiAoQ0FT RSBXSEVOICh2LnYgPD0gMjUpIFRIRU4gMSBFTFNFIDIgRU5EKQotICAgICAgICAgU29ydCBNZXRo b2Q6IHF1aWNrc29ydCAgTWVtb3J5OiAyNmtCCisgICAgICAgICBTb3J0IE1ldGhvZDogcXVpY2tz b3J0ICBNZW1vcnk6IE5rQgogICAgICAgICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHYgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAoMTIgcm93cykKIApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCmluZGV4IGY4YzhmNjJlNTk0Li5lYThjMzliOTkxZSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbApAQCAtMzQsNyArMzQsNyBAQAogLS0g ICBMYXJnZSBTY2FsZSBTdGF0aXN0aWNzIFZlcmlmaWNhdGlvbgogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLS0tIEZpbHRl ciBmdW5jdGlvbiB0byBub3JtYWxpemUgU3RvcmFnZSBtZW1vcnkgdmFsdWVzIG9ubHkgKG5vdCBO RkEgc3RhdGlzdGljcykuCistLSBGaWx0ZXIgZnVuY3Rpb24gdG8gbm9ybWFsaXplIHBsYXRmb3Jt LWRlcGVuZGVudCBtZW1vcnkgdmFsdWVzIChub3QgTkZBIHN0YXRpc3RpY3MpLgogLS0gTkZBIHN0 YXRpc3RpY3Mgc2hvdWxkIG5vdCBjaGFuZ2UgYmV0d2VlbiBwbGF0Zm9ybXM7IGlmIHRoZXkgZG8s IGl0IGNvdWxkCiAtLSBpbmRpY2F0ZSBpc3N1ZXMgc3VjaCBhcyB1bmluaXRpYWxpemVkIG1lbW9y eSBhY2Nlc3MuCiAtLSBXb3JrcyBmb3IgdGV4dCwgSlNPTiwgYW5kIFhNTCBmb3JtYXRzLgpAQCAt NDYsNyArNDYsNyBAQCBkZWNsYXJlCiBiZWdpbgogICAgIGZvciBsbiBpbiBleGVjdXRlICQxCiAg ICAgbG9vcAotICAgICAgICAtLSBOb3JtYWxpemUgbWVtb3J5IHNpemUgaW4gU3RvcmFnZSBsaW5l IG9ubHkgKHBsYXRmb3JtLWRlcGVuZGVudCkKKyAgICAgICAgLS0gTm9ybWFsaXplIHBsYXRmb3Jt LWRlcGVuZGVudCBtZW1vcnkgdmFsdWVzCiAgICAgICAgIC0tIEtlZXAgTkZBIHN0YXRpc3RpY3Mg bnVtYmVycyB1bmNoYW5nZWQgKHRoZXkgYXJlIHRlc3QgYXNzZXJ0aW9ucykKIAogICAgICAgICAt LSBUZXh0IGZvcm1hdDogIlN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiAxOGtCIgpA QCAtNjQsNiArNjQsMTEgQEAgYmVnaW4KICAgICAgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBsYWNl KGxuLCAnPE1heGltdW0tU3RvcmFnZT5cZCs8L01heGltdW0tU3RvcmFnZT4nLCAnPE1heGltdW0t U3RvcmFnZT4wPC9NYXhpbXVtLVN0b3JhZ2U+JywgJ2cnKTsKICAgICAgICAgZW5kIGlmOwogCisg ICAgICAgIC0tIFNvcnQgTWV0aG9kIG1lbW9yeSBpcyBwbGF0Zm9ybS1kZXBlbmRlbnQgKDMyLWJp dCB2cyA2NC1iaXQpCisgICAgICAgIGlmIGxuIH4gJ1NvcnQgTWV0aG9kOi4qTWVtb3J5OicgdGhl bgorICAgICAgICAgICAgbG4gOj0gcmVnZXhwX3JlcGxhY2UobG4sICdNZW1vcnk6IFxkK2tCJywg J01lbW9yeTogTmtCJyk7CisgICAgICAgIGVuZCBpZjsKKwogICAgICAgICByZXR1cm4gbmV4dCBs bjsKICAgICBlbmQgbG9vcDsKIGVuZDsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000002ea9a9064b87cec3 Content-Type: application/octet-stream; name="nocfbot-0005-cycle-detection-bitmap.patch" Content-Disposition: attachment; filename="nocfbot-0005-cycle-detection-bitmap.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlzx6jed4 RnJvbSAzOWZjMzFlY2EwY2VlN2ZlODc0YWE0ZTBhYmZjN2ViYWFhNjliYzFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDIzIEZlYiAyMDI2IDEzOjAyOjA2ICswOTAwClN1YmplY3Q6IFtQQVRDSCA1LzZdIERl dGVjdCB6ZXJvLWNvbnN1bXB0aW9uIE5GQSBjeWNsZXMgdXNpbmcgZWxlbUlkeCB2aXNpdGVkCiBi aXRtYXAKCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jICB8IDQ1ICsr KysrKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgg ICAgICAgICB8ICA0ICsrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dCB8 ICA4ICsrLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCAgICAgIHwgIDggKyst LS0KIDQgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmluZGV4IDM3MTQzOWFhZDkxLi45ODU0NmZi MTdmNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAtMzQzLDYgKzM0Mywx MCBAQCBzdGF0aWMgdm9pZCBuZmFfYWR2YW5jZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQ Uk5GQUNvbnRleHQgKmN0eCwKIC8qIGNhbGN1bGF0ZSBzaGlmdCBiaXRzICovCiAjZGVmaW5lCU5O X1NISUZUKHBvcykJKChwb3MpICUgTk5fSVRFTV9QRVJfVkFSKSAqIE5OX0JJVFNfUEVSX01FTUJF UgogCisvKiBCaXRtYXAgbWFjcm9zIGZvciBORkEgY3ljbGUgZGV0ZWN0aW9uIChjZi4gYml0bWFw c2V0LmMsIHRpZGJpdG1hcC5jKSAqLworI2RlZmluZSBXT1JETlVNKHgpCSgoeCkgLyBCSVRTX1BF Ul9CSVRNQVBXT1JEKQorI2RlZmluZSBCSVROVU0oeCkJKCh4KSAlIEJJVFNfUEVSX0JJVE1BUFdP UkQpCisKIC8qCiAgKiBpbml0aWFsaXplX3dpbmRvd2FnZ3JlZ2F0ZQogICogcGFyYWxsZWwgdG8g aW5pdGlhbGl6ZV9hZ2dyZWdhdGVzIGluIG5vZGVBZ2cuYwpAQCAtMzAxNiwxMSArMzAyMCwxNSBA QCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQg ZWZsYWdzKQogCS8qIFNldCB1cCByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBQQVRURVJOIGNsYXVz ZSAoY29tcGlsZWQgTkZBKSAqLwogCXdpbnN0YXRlLT5ycFBhdHRlcm4gPSBub2RlLT5ycFBhdHRl cm47CiAKLQkvKiBDYWxjdWxhdGUgTkZBIHN0YXRlIHNpemUgZm9yIGFsbG9jYXRpb24gKi8KKwkv KiBDYWxjdWxhdGUgTkZBIHN0YXRlIHNpemUgYW5kIGFsbG9jYXRlIGN5Y2xlIGRldGVjdGlvbiBi aXRtYXAgKi8KIAlpZiAobm9kZS0+cnBQYXR0ZXJuICE9IE5VTEwpCiAJewogCQl3aW5zdGF0ZS0+ bmZhU3RhdGVTaXplID0gb2Zmc2V0b2YoUlBSTkZBU3RhdGUsIGNvdW50cykgKwogCQkJc2l6ZW9m KGludDMyKSAqIG5vZGUtPnJwUGF0dGVybi0+bWF4RGVwdGg7CisJCXdpbnN0YXRlLT5uZmFWaXNp dGVkTldvcmRzID0KKwkJCShub2RlLT5ycFBhdHRlcm4tPm51bUVsZW1lbnRzIC0gMSkgLyBCSVRT X1BFUl9CSVRNQVBXT1JEICsgMTsKKwkJd2luc3RhdGUtPm5mYVZpc2l0ZWRFbGVtcyA9IHBhbGxv YzAoc2l6ZW9mKGJpdG1hcHdvcmQpICoKKwkJCQkJCQkJCQkJd2luc3RhdGUtPm5mYVZpc2l0ZWRO V29yZHMpOwogCX0KIAogCS8qIFNldCB1cCByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBERUZJTkUg Y2xhdXNlICovCkBAIC02MjE0LDI1ICs2MjIyLDkgQEAgbmZhX2FkdmFuY2VfZW5kKFdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCiAJCW5mYV9yb3V0ZV90b19l bGVtKHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBqdW1wRWxlbSwgY3VycmVudFBvcywgaW5pdGlhbEFk dmFuY2UpOwogCX0KLQllbHNlIGlmICgoZWxlbS0+bWF4ICE9IFJQUl9RVUFOVElUWV9JTkYgJiYg Y291bnQgPj0gZWxlbS0+bWF4KSB8fAotCQkJIChjb3VudCA9PSAwICYmIGVsZW0tPm1pbiA9PSAw KSkKKwllbHNlIGlmIChlbGVtLT5tYXggIT0gUlBSX1FVQU5USVRZX0lORiAmJiBjb3VudCA+PSBl bGVtLT5tYXgpCiAJewotCQkvKi0tLS0tLS0tLS0KLQkJICogTXVzdCBleGl0OiBlaXRoZXIgcmVh Y2hlZCBtYXggaXRlcmF0aW9ucywgb3IgZ3JvdXAgbWF0Y2hlZCBlbXB0eS4KLQkJICoKLQkJICog RklYTUU6IFRoZSAoY291bnQgPT0gMCAmJiBtaW4gPT0gMCkgY29uZGl0aW9uIGlzIGluc3VmZmlj aWVudCBmb3IKLQkJICogY3ljbGUgcHJldmVudGlvbi4gQ3ljbGVzIGNhbiBvY2N1ciBhdCBhbnkg Y291bnQgdmFsdWUgd2hlbiBsb29wIGJhY2sKLQkJICogaGFwcGVucyB3aXRob3V0IGNvbnN1bWlu ZyByb3dzLiBGb3IgZXhhbXBsZToKLQkJICogICBQYXR0ZXJuOiAoQSopKgotCQkgKiAgIEFmdGVy IG1hdGNoaW5nIDMgQSdzIChjb3VudD0zKSwgbG9vcCBiYWNrIGF0IGEgQiByb3cKLQkJICogICBJ bm5lciBBKiBtYXRjaGVzIDAgdGltZXMgKHNraXAgcGF0aCkg4oaSIHNhbWUgKGVsZW1JZHgsIGNv dW50PTMpCi0JCSAqICAgSW5maW5pdGUgY3ljbGUgYXQgY291bnQ9Mywgbm90IGNvdW50PTAKLQkJ ICoKLQkJICogQ3VycmVudGx5LCBjeWNsZXMgYXJlIHNpbGVudGx5IHByZXZlbnRlZCBieSBuZmFf YWRkX3N0YXRlX3VuaXF1ZQotCQkgKiBkZXRlY3RpbmcgZHVwbGljYXRlIHN0YXRlcywgYnV0IHRo aXMgaXMgaW1wbGljaXQgYW5kIG5vdCBndWFyYW50ZWVkCi0JCSAqIGZvciBhbGwgY29kZSBwYXRo cy4gRXhwbGljaXQgY3ljbGUgZGV0ZWN0aW9uIGlzIG5lZWRlZC4KLQkJICotLS0tLS0tLS0tCi0J CSAqLworCQkvKiBNdXN0IGV4aXQ6IHJlYWNoZWQgbWF4IGl0ZXJhdGlvbnMuICovCiAJCVJQUlBh dHRlcm5FbGVtZW50ICpuZXh0RWxlbTsKIAogCQlzdGF0ZS0+Y291bnRzW2RlcHRoXSA9IDA7CkBA IC02NDUyLDYgKzY0NDQsMTcgQEAgbmZhX2FkdmFuY2Vfc3RhdGUoV2luZG93QWdnU3RhdGUgKndp bnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCiAJUlBSUGF0dGVybkVsZW1lbnQgKmVsZW07CiAK IAlBc3NlcnQoc3RhdGUtPmVsZW1JZHggPj0gMCAmJiBzdGF0ZS0+ZWxlbUlkeCA8IHBhdHRlcm4t Pm51bUVsZW1lbnRzKTsKKworCS8qIEN5Y2xlIGRldGVjdGlvbjogaWYgdGhpcyBlbGVtSWR4IHdh cyBhbHJlYWR5IHZpc2l0ZWQgaW4gdGhpcyBERlMsIGJhaWwgKi8KKwlpZiAod2luc3RhdGUtPm5m YVZpc2l0ZWRFbGVtc1tXT1JETlVNKHN0YXRlLT5lbGVtSWR4KV0gJgorCQkoKGJpdG1hcHdvcmQp IDEgPDwgQklUTlVNKHN0YXRlLT5lbGVtSWR4KSkpCisJeworCQluZmFfc3RhdGVfZnJlZSh3aW5z dGF0ZSwgc3RhdGUpOworCQlyZXR1cm47CisJfQorCXdpbnN0YXRlLT5uZmFWaXNpdGVkRWxlbXNb V09SRE5VTShzdGF0ZS0+ZWxlbUlkeCldIHw9CisJCSgoYml0bWFwd29yZCkgMSA8PCBCSVROVU0o c3RhdGUtPmVsZW1JZHgpKTsKKwogCWVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbc3RhdGUtPmVs ZW1JZHhdOwogCiAJc3dpdGNoIChlbGVtLT52YXJJZCkKQEAgLTY1MDYsNiArNjUwOSwxMCBAQCBu ZmFfYWR2YW5jZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwg aW50NjQgY3VycmVudFBvcywKIAl7CiAJCVJQUk5GQVN0YXRlICpzYXZlZE1hdGNoZWRTdGF0ZSA9 IGN0eC0+bWF0Y2hlZFN0YXRlOwogCisJCS8qIENsZWFyIHZpc2l0ZWQgYml0bWFwIGJlZm9yZSBl YWNoIHN0YXRlJ3MgREZTIGV4cGFuc2lvbiAqLworCQltZW1zZXQod2luc3RhdGUtPm5mYVZpc2l0 ZWRFbGVtcywgMCwKKwkJCSAgIHNpemVvZihiaXRtYXB3b3JkKSAqIHdpbnN0YXRlLT5uZmFWaXNp dGVkTldvcmRzKTsKKwogCQlzdGF0ZSA9IHN0YXRlczsKIAkJc3RhdGVzID0gc3RhdGVzLT5uZXh0 OwogCQlzdGF0ZS0+bmV4dCA9IE5VTEw7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDlhMTU2MWZj ZTdlLi4zNjgxZDkwNWJkZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTI2NTEsNiArMjY1MSwx MCBAQCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dBZ2dTdGF0ZQogCVNpemUJCW5mYVN0YXRlU2l6ZTsJ LyogcHJlLWNhbGN1bGF0ZWQgUlBSTkZBU3RhdGUgc2l6ZSAqLwogCWJvb2wJICAgKm5mYVZhck1h dGNoZWQ7CS8qIHBlci1yb3cgY2FjaGU6IHZhck1hdGNoZWRbdmFySWRdIGZvciB2YXJJZAogCQkJ CQkJCQkgKiA8IG51bURlZmluZXMgKi8KKwliaXRtYXB3b3JkICpuZmFWaXNpdGVkRWxlbXM7CS8q IGVsZW1JZHggdmlzaXRlZCBiaXRtYXAgZm9yIGN5Y2xlCisJCQkJCQkJCQkgKiBkZXRlY3Rpb24g Ki8KKwlpbnQJCQluZmFWaXNpdGVkTldvcmRzOwkvKiBudW1iZXIgb2YgYml0bWFwd29yZHMgaW4K KwkJCQkJCQkJCSAqIG5mYVZpc2l0ZWRFbGVtcyAqLwogCWludDY0CQluZmFMYXN0UHJvY2Vzc2Vk Um93OwkvKiBsYXN0IHJvdyBwcm9jZXNzZWQgYnkgTkZBICgtMSA9CiAJCQkJCQkJCQkJICogbm9u ZSkgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQKaW5kZXggYTJhMjU3MzI5 YjcuLjhhYzM3NWNmZTg2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9uZmEub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQKQEAg LTMwLDcgKzMwLDcgQEAKIC0tICAgU3BlY2lhbCBQYXJ0aXRpb24gQ2FzZXMKIC0tICAgREVGSU5F IFNwZWNpYWwgQ2FzZXMKIC0tICAgQWJzb3JwdGlvbiBEeW5hbWljIEZsYWdzCi0tLSAgIEZJWE1F IElzc3VlcyAoS25vd24gTGltaXRhdGlvbnMpCistLSAgIFplcm8tQ29uc3VtcHRpb24gQ3ljbGUg RGV0ZWN0aW9uCiAtLQogLS0gUmVzcG9uc2liaWxpdHk6CiAtLSAgIC0gTkZBIHJ1bnRpbWUgZXhl Y3V0aW9uIHBhdGhzCkBAIC0yOTQ1LDkgKzI5NDUsOSBAQCBXSU5ET1cgdyBBUyAoCiAoNSByb3dz KQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIEZJWE1FIElzc3VlcyAtIEtub3duIExpbWl0YXRpb25zCistLSBaZXJv LUNvbnN1bXB0aW9uIEN5Y2xlIERldGVjdGlvbgogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBGSVhNRSAyIC0gQ3ljbGUg cHJldmVudGlvbiBhdCBjb3VudCA+IDAKKy0tIEN5Y2xlIHByZXZlbnRpb24gYXQgY291bnQgPiAw OiAoQSopKiBpbm5lciBza2lwIGN5Y2xlcyBhdCBjb3VudD0zCiBXSVRIIHRlc3RfY3ljbGVfbm9u emVybyBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsn QSddKSwKQEAgLTI5NzYsNyArMjk3Niw3IEBAIFdJTkRPVyB3IEFTICgKICAgNCB8IHtCfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKICg0IHJvd3MpCiAKLS0tIEZJWE1FIDIgLSBDeWNsZSB3 aXRoIG1peGVkIG51bGxhYmxlcworLS0gQ3ljbGUgd2l0aCBtaXhlZCBudWxsYWJsZXM6IChBKiBC KikqIG11bHRpcGxlIG51bGxhYmxlIHBhdGhzCiBXSVRIIHRlc3RfY3ljbGVfbWl4ZWQgQVMgKAog ICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwogICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwcl9uZmEuc3FsCmluZGV4IDBlODUzY2E3NTNiLi5iZTc4YWI3NjBhOSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX25mYS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcnByX25mYS5zcWwKQEAgLTMwLDcgKzMwLDcgQEAKIC0tICAgU3BlY2lhbCBQYXJ0 aXRpb24gQ2FzZXMKIC0tICAgREVGSU5FIFNwZWNpYWwgQ2FzZXMKIC0tICAgQWJzb3JwdGlvbiBE eW5hbWljIEZsYWdzCi0tLSAgIEZJWE1FIElzc3VlcyAoS25vd24gTGltaXRhdGlvbnMpCistLSAg IFplcm8tQ29uc3VtcHRpb24gQ3ljbGUgRGV0ZWN0aW9uCiAtLQogLS0gUmVzcG9uc2liaWxpdHk6 CiAtLSAgIC0gTkZBIHJ1bnRpbWUgZXhlY3V0aW9uIHBhdGhzCkBAIC0yMTkwLDEwICsyMTkwLDEw IEBAIFdJTkRPVyB3IEFTICgKICk7CiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gRklYTUUgSXNzdWVzIC0gS25vd24g TGltaXRhdGlvbnMKKy0tIFplcm8tQ29uc3VtcHRpb24gQ3ljbGUgRGV0ZWN0aW9uCiAtLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IAotLS0gRklYTUUgMiAtIEN5Y2xlIHByZXZlbnRpb24gYXQgY291bnQgPiAwCistLSBDeWNsZSBw cmV2ZW50aW9uIGF0IGNvdW50ID4gMDogKEEqKSogaW5uZXIgc2tpcCBjeWNsZXMgYXQgY291bnQ9 MwogV0lUSCB0ZXN0X2N5Y2xlX25vbnplcm8gQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVF UwogICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCkBAIC0yMjE1LDcgKzIyMTUsNyBAQCBXSU5ET1cg dyBBUyAoCiAgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQogKTsKIAotLS0gRklYTUUgMiAt IEN5Y2xlIHdpdGggbWl4ZWQgbnVsbGFibGVzCistLSBDeWNsZSB3aXRoIG1peGVkIG51bGxhYmxl czogKEEqIEIqKSogbXVsdGlwbGUgbnVsbGFibGUgcGF0aHMKIFdJVEggdGVzdF9jeWNsZV9taXhl ZCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCiAgICAgICAgICgxLCBBUlJBWVsnQSdd KSwKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000002ea9a9064b87cec3 Content-Type: application/octet-stream; name="nocfbot-0002-prev-next-define-only.patch" Content-Disposition: attachment; filename="nocfbot-0002-prev-next-define-only.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlzx6je81 RnJvbSA5ZDBjMmJlMDMyYjQ0OTUxODNlMzc0YmVjYWEyN2I5ZjJhNTFkYTRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDE5IEZlYiAyMDI2IDEzOjUzOjU1ICswOTAwClN1YmplY3Q6IFtQQVRDSCAyLzZdIFJl c3RyaWN0IFBSRVYvTkVYVCBmdW5jdGlvbnMgdG8gREVGSU5FIGNsYXVzZSBvbmx5CgpQZXIgdGhl IFNRTCBzdGFuZGFyZCwgUFJFVigpIGFuZCBORVhUKCkgYXJlIG9ubHkgYWxsb3dlZCBpbiBhIERF RklORQpjbGF1c2Ugb2Ygcm93IHBhdHRlcm4gcmVjb2duaXRpb24uICBQcmV2aW91c2x5IHRoZXkg Y291bGQgYmUgdXNlZAphbnl3aGVyZSBub3JtYWwgZnVuY3Rpb25zIGFyZSBhbGxvd2VkLiAgQWRk IGEgY2hlY2sgaW4gUGFyc2VGdW5jT3JDb2x1bW4KdG8gcmVqZWN0IHRoZW0gb3V0c2lkZSBFWFBS X0tJTkRfUlBSX0RFRklORSBjb250ZXh0LgoKUGF0Y2ggYnkgVGF0c3VvIElzaGlpLgotLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgIHwgMTEgKysrKysrKysrCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCB8IDMyICsrKysrKysrKysrKysrKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgICAgICB8IDI4ICsr KysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IDM1N2IyMzZhODE4Li5iYTk1MjNhZTNkNCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX3RhcmdldC5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVk ZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1 ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKQEAg LTc1Niw2ICs3NTcsMTYgQEAgUGFyc2VGdW5jT3JDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBM aXN0ICpmdW5jbmFtZSwgTGlzdCAqZmFyZ3MsCiAJaWYgKHJldHNldCkKIAkJY2hlY2tfc3JmX2Nh bGxfcGxhY2VtZW50KHBzdGF0ZSwgbGFzdF9zcmYsIGxvY2F0aW9uKTsKIAorCS8qIG5leHQoKSBh bmQgcHJldigpIGFyZSBvbmx5IGFsbG93ZWQgaW4gYSBXSU5ET1cgREVGSU5FIGNsYXVzZSAqLwor CWlmIChmZHJlc3VsdCA9PSBGVU5DREVUQUlMX05PUk1BTCAmJgorCQlwc3RhdGUtPnBfZXhwcl9r aW5kICE9IEVYUFJfS0lORF9SUFJfREVGSU5FICYmCisJCShmdW5jaWQgPT0gRl9QUkVWIHx8IGZ1 bmNpZCA9PSBGX05FWFQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnKCIlcyBjYW4gb25seSBiZSB1c2VkIGluIGEgREVG SU5FIGNsYXVzZSIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKGZ1bmNuYW1lKSksCisJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCiAJLyogYnVpbGQgdGhlIGFw cHJvcHJpYXRlIG91dHB1dCBzdHJ1Y3R1cmUgKi8KIAlpZiAoZmRyZXN1bHQgPT0gRlVOQ0RFVEFJ TF9OT1JNQUwgfHwgZmRyZXN1bHQgPT0gRlVOQ0RFVEFJTF9QUk9DRURVUkUpCiAJewpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAppbmRleCBlYzY3YTA5OWVlNi4uMWQ0MmFmMTU5 ODAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CkBAIC0xNjIyLDYgKzE2 MjIsMzggQEAgT1JERVIgQlkgaWQ7CiAgIDUgfCAgMzAgfCAgIDAKICg1IHJvd3MpCiAKKy0tIFBS RVYgZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQgb3RoZXIgdGhhbiBpbiBERUZJTkUKK1NFTEVDVCBQ UkVWKGlkKSwgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbmF2CitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklO RQorICAgICAgICBBIEFTIHZhbCA+IDAsCisgICAgICAgIEIgQVMgdmFsID4gUFJFVih2YWwpCisp CitPUkRFUiBCWSBpZDsKK0VSUk9SOiAgcHJldiBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5F IGNsYXVzZQorTElORSAxOiBTRUxFQ1QgUFJFVihpZCksIGlkLCB2YWwsIENPVU5UKCopIE9WRVIg dyBhcyBjbnQKKyAgICAgICAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogcHJldiBjYW4g b25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZQorLS0gTkVYVCBmdW5jdGlvbiBjYW5ub3Qg YmUgdXNlZCBvdGhlciB0aGFuIGluIERFRklORQorU0VMRUNUIE5FWFQoaWQpLCBpZCwgdmFsLCBD T1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9uYXYKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgdmFs ID4gMCwKKyAgICAgICAgQiBBUyB2YWwgPiBQUkVWKHZhbCkKKykKK09SREVSIEJZIGlkOworRVJS T1I6ICBuZXh0IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCitMSU5FIDE6IFNF TEVDVCBORVhUKGlkKSwgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorICAgICAgICAg ICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBuZXh0IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBE RUZJTkUgY2xhdXNlCiBEUk9QIFRBQkxFIHJwcl9uYXY7CiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFNLSVAgVE8gLyBJ TklUSUFMIFRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKaW5kZXggODc5ZjVmZTQ4YTIu LmI3NTJhZDEyODczIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCkBAIC0xMjE5LDYgKzEy MTksMzQgQEAgV0lORE9XIHcgQVMgKAogKQogT1JERVIgQlkgaWQ7CiAKKy0tIFBSRVYgZnVuY3Rp b24gY2Fubm90IGJlIHVzZWQgb3RoZXIgdGhhbiBpbiBERUZJTkUKK1NFTEVDVCBQUkVWKGlkKSwg aWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbmF2CitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAg ICBBIEFTIHZhbCA+IDAsCisgICAgICAgIEIgQVMgdmFsID4gUFJFVih2YWwpCispCitPUkRFUiBC WSBpZDsKKy0tIEV4cGVjdGVkOiBFUlJPUjogcHJldiBjYW4gb25seSBiZSB1c2VkIGluIGEgREVG SU5FIGNsYXVzZQorCistLSBORVhUIGZ1bmN0aW9uIGNhbm5vdCBiZSB1c2VkIG90aGVyIHRoYW4g aW4gREVGSU5FCitTRUxFQ1QgTkVYVChpZCksIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBj bnQKK0ZST00gcnByX25hdgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVS TiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyB2YWwgPiAwLAorICAgICAgICBCIEFT IHZhbCA+IFBSRVYodmFsKQorKQorT1JERVIgQlkgaWQ7CistLSBFeHBlY3RlZDogRVJST1I6IG5l eHQgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKKwogRFJPUCBUQUJMRSBycHJf bmF2OwogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000002ea9a9064b87cec3 Content-Type: application/octet-stream; name="nocfbot-0004-reluctant-quantifiers.patch" Content-Disposition: attachment; filename="nocfbot-0004-reluctant-quantifiers.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlzx6jec3 RnJvbSA2MDMyYjcwNGMzZTI5MzBjNWY1NWZlMDNhODgxYTFiYjU5YmM3ZTE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIEZlYiAyMDI2IDEzOjE4OjE5ICswOTAwClN1YmplY3Q6IFtQQVRDSCA0LzZdIElt cGxlbWVudCByZWx1Y3RhbnQgcXVhbnRpZmllcnMgZm9yIHJvdyBwYXR0ZXJuCiByZWNvZ25pdGlv bgoKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgICB8IDE3MCArKysr KystLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgICAgICAgfCAgMzMgKy0KIHNy Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgIHwgICA2IC0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByLm91dCAgICAgIHwgIDUxICstLQogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ycHJfYmFzZS5vdXQgfCAyNzggKysrKysrKysrKy0tLQogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfbmZhLm91dCAgfCA1MTYgKysrKysrKysrKysrKysrKysrKysrKysrKwog c3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbCAgICAgICAgICAgfCAgMjUgKy0KIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCAgICAgIHwgIDg3ICsrKystCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9ycHJfbmZhLnNxbCAgICAgICB8IDM5OCArKysrKysrKysrKysrKysrKysrCiA5IGZp bGVzIGNoYW5nZWQsIDE0MjggaW5zZXJ0aW9ucygrKSwgMTM2IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCA5NmIyY2Q0YjljNC4uMzcxNDM5YWFkOTEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAgLTYxNDksMTYgKzYxNDksNDAg QEAgbmZhX2FkdmFuY2VfYmVnaW4oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250 ZXh0ICpjdHgsCiAJCQkJCQkJCQkgc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7 CiAJfQogCi0JLyogRW50ZXIgZ3JvdXA6IHJvdXRlIHRvIGZpcnN0IGNoaWxkIChsZXhpY2FsbHkg Zmlyc3QpICovCi0Jc3RhdGUtPmVsZW1JZHggPSBlbGVtLT5uZXh0OwotCW5mYV9yb3V0ZV90b19l bGVtKHdpbnN0YXRlLCBjdHgsIHN0YXRlLAotCQkJCQkgICZlbGVtZW50c1tzdGF0ZS0+ZWxlbUlk eF0sIGN1cnJlbnRQb3MsIGluaXRpYWxBZHZhbmNlKTsKLQotCS8qIE5vdyByb3V0ZSBza2lwIHBh dGggKGxleGljYWxseSBzZWNvbmQpICovCi0JaWYgKHNraXBTdGF0ZSAhPSBOVUxMKQorCWlmIChz a2lwU3RhdGUgIT0gTlVMTCAmJiBSUFJFbGVtSXNSZWx1Y3RhbnQoZWxlbSkpCiAJeworCQlSUFJO RkFTdGF0ZSAqc2F2ZWRNYXRjaCA9IGN0eC0+bWF0Y2hlZFN0YXRlOworCisJCS8qIFJlbHVjdGFu dDogc2tpcCBmaXJzdCAocHJlZmVyIGZld2VyIGl0ZXJhdGlvbnMpLCBlbnRlciBzZWNvbmQgKi8K IAkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc2tpcFN0YXRlLAogCQkJCQkJICAm ZWxlbWVudHNbZWxlbS0+anVtcF0sIGN1cnJlbnRQb3MsIGluaXRpYWxBZHZhbmNlKTsKKworCQkv KgorCQkgKiBJZiBza2lwIHBhdGggcmVhY2hlZCBGSU4sIHNob3J0ZXN0IG1hdGNoIGlzIGZvdW5k LiBTa2lwIGdyb3VwIGVudHJ5CisJCSAqIHRvIHByZXZlbnQgbG9uZ2VyIG1hdGNoZXMuCisJCSAq LworCQlpZiAoY3R4LT5tYXRjaGVkU3RhdGUgIT0gc2F2ZWRNYXRjaCkKKwkJeworCQkJbmZhX3N0 YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRlKTsKKwkJCXJldHVybjsKKwkJfQorCisJCXN0YXRlLT5l bGVtSWR4ID0gZWxlbS0+bmV4dDsKKwkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwg c3RhdGUsCisJCQkJCQkgICZlbGVtZW50c1tzdGF0ZS0+ZWxlbUlkeF0sIGN1cnJlbnRQb3MsIGlu aXRpYWxBZHZhbmNlKTsKKwl9CisJZWxzZQorCXsKKwkJLyogR3JlZWR5OiBlbnRlciBmaXJzdCwg c2tpcCBzZWNvbmQgKi8KKwkJc3RhdGUtPmVsZW1JZHggPSBlbGVtLT5uZXh0OworCQluZmFfcm91 dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwKKwkJCQkJCSAgJmVsZW1lbnRzW3N0YXRl LT5lbGVtSWR4XSwgY3VycmVudFBvcywgaW5pdGlhbEFkdmFuY2UpOworCisJCWlmIChza2lwU3Rh dGUgIT0gTlVMTCkKKwkJeworCQkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc2tp cFN0YXRlLAorCQkJCQkJCSAgJmVsZW1lbnRzW2VsZW0tPmp1bXBdLCBjdXJyZW50UG9zLCBpbml0 aWFsQWR2YW5jZSk7CisJCX0KIAl9CiB9CiAKQEAgLTYyMjUsNyArNjI0OSw4IEBAIG5mYV9hZHZh bmNlX2VuZChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAl7 CiAJCS8qCiAJCSAqIEJldHdlZW4gbWluIGFuZCBtYXggKHdpdGggYXQgbGVhc3Qgb25lIGl0ZXJh dGlvbikgLSBjYW4gZXhpdCBvcgotCQkgKiBsb29wCisJCSAqIGxvb3AuIEdyZWVkeTogbG9vcCBm aXJzdCAocHJlZmVyIG1vcmUgaXRlcmF0aW9ucykuIFJlbHVjdGFudDogZXhpdAorCQkgKiBmaXJz dCAocHJlZmVyIGZld2VyIGl0ZXJhdGlvbnMpLgogCQkgKi8KIAkJUlBSTkZBU3RhdGUgKmV4aXRT dGF0ZTsKIAkJUlBSUGF0dGVybkVsZW1lbnQgKmp1bXBFbGVtOwpAQCAtNjI0NCwxNiArNjI2OSw0 MyBAQCBuZmFfYWR2YW5jZV9lbmQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250 ZXh0ICpjdHgsCiAJCWlmIChSUFJFbGVtSXNFbmQobmV4dEVsZW0pICYmIGV4aXRTdGF0ZS0+Y291 bnRzW25leHRFbGVtLT5kZXB0aF0gPCBSUFJfQ09VTlRfTUFYKQogCQkJZXhpdFN0YXRlLT5jb3Vu dHNbbmV4dEVsZW0tPmRlcHRoXSsrOwogCi0JCS8qIFJvdXRlIGxvb3Agc3RhdGUgZmlyc3QgKGVh cmxpZXIgaW4gcGF0dGVybiA9IGxleGljYWwgb3JkZXIpICovCisJCS8qIFByZXBhcmUgbG9vcCBz dGF0ZSAqLwogCQlmb3IgKGludCBkID0gZGVwdGggKyAxOyBkIDwgcGF0dGVybi0+bWF4RGVwdGg7 IGQrKykKIAkJCXN0YXRlLT5jb3VudHNbZF0gPSAwOwogCQlzdGF0ZS0+ZWxlbUlkeCA9IGVsZW0t Pmp1bXA7CiAJCWp1bXBFbGVtID0gJmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKIAotCQluZmFf cm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwganVtcEVsZW0sIGN1cnJlbnRQb3Ms IGluaXRpYWxBZHZhbmNlKTsKKwkJaWYgKFJQUkVsZW1Jc1JlbHVjdGFudChlbGVtKSkKKwkJewor CQkJUlBSTkZBU3RhdGUgKnNhdmVkTWF0Y2ggPSBjdHgtPm1hdGNoZWRTdGF0ZTsKKworCQkJLyog RXhpdCBmaXJzdCAocHJlZmVycmVkIGZvciByZWx1Y3RhbnQpICovCisJCQluZmFfcm91dGVfdG9f ZWxlbSh3aW5zdGF0ZSwgY3R4LCBleGl0U3RhdGUsIG5leHRFbGVtLAorCQkJCQkJCSAgY3VycmVu dFBvcywgaW5pdGlhbEFkdmFuY2UpOwogCi0JCS8qIFRoZW4gcm91dGUgZXhpdCBzdGF0ZSAqLwot CQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBleGl0U3RhdGUsIG5leHRFbGVtLCBj dXJyZW50UG9zLCBpbml0aWFsQWR2YW5jZSk7CisJCQkvKgorCQkJICogSWYgZXhpdCBwYXRoIHJl YWNoZWQgRklOLCBzaG9ydGVzdCBtYXRjaCBpcyBmb3VuZC4gU2tpcCBsb29wIHRvCisJCQkgKiBw cmV2ZW50IGxvbmdlciBtYXRjaGVzIGZyb20gcmVwbGFjaW5nIGl0LgorCQkJICovCisJCQlpZiAo Y3R4LT5tYXRjaGVkU3RhdGUgIT0gc2F2ZWRNYXRjaCkKKwkJCXsKKwkJCQluZmFfc3RhdGVfZnJl ZSh3aW5zdGF0ZSwgc3RhdGUpOworCQkJCXJldHVybjsKKwkJCX0KKworCQkJLyogTG9vcCBzZWNv bmQgKi8KKwkJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBqdW1wRWxl bSwKKwkJCQkJCQkgIGN1cnJlbnRQb3MsIGluaXRpYWxBZHZhbmNlKTsKKwkJfQorCQllbHNlCisJ CXsKKwkJCS8qIExvb3AgZmlyc3QgKHByZWZlcnJlZCBmb3IgZ3JlZWR5KSAqLworCQkJbmZhX3Jv dXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc3RhdGUsIGp1bXBFbGVtLAorCQkJCQkJCSAgY3Vy cmVudFBvcywgaW5pdGlhbEFkdmFuY2UpOworCQkJLyogRXhpdCBzZWNvbmQgKi8KKwkJCW5mYV9y b3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIGV4aXRTdGF0ZSwgbmV4dEVsZW0sCisJCQkJCQkJ ICBjdXJyZW50UG9zLCBpbml0aWFsQWR2YW5jZSk7CisJCX0KIAl9CiB9CiAKQEAgLTYyODAsMzQg KzYzMzIsODYgQEAgbmZhX2FkdmFuY2VfdmFyKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBS TkZBQ29udGV4dCAqY3R4LAogCiAJaWYgKGNhbkxvb3AgJiYgY2FuRXhpdCkKIAl7Ci0JCS8qIEJv dGg6IGNsb25lIGZvciBsb29wLCBtb2RpZnkgb3JpZ2luYWwgZm9yIGV4aXQgKi8KLQkJUlBSTkZB U3RhdGUgKmxvb3BTdGF0ZTsKKwkJLyoKKwkJICogQm90aCBsb29wIGFuZCBleGl0IHBvc3NpYmxl LiBHcmVlZHk6IGxvb3AgZmlyc3QgKHByZWZlciBsb25nZXIKKwkJICogbWF0Y2gpLiBSZWx1Y3Rh bnQ6IGV4aXQgZmlyc3QgKHByZWZlciBzaG9ydGVyIG1hdGNoKS4KKwkJICovCisJCVJQUk5GQVN0 YXRlICpjbG9uZVN0YXRlOwogCQlSUFJQYXR0ZXJuRWxlbWVudCAqbmV4dEVsZW07Ci0KLQkJbG9v cFN0YXRlID0gbmZhX3N0YXRlX2NyZWF0ZSh3aW5zdGF0ZSwgc3RhdGUtPmVsZW1JZHgsCi0JCQkJ CQkJCQkgc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7Ci0JCW5mYV9hZGRfc3Rh dGVfdW5pcXVlKHdpbnN0YXRlLCBjdHgsIGxvb3BTdGF0ZSk7Ci0KLQkJLyogRXhpdDogYWR2YW5j ZSB0byBuZXh0IGVsZW1lbnQgKi8KLQkJc3RhdGUtPmNvdW50c1tkZXB0aF0gPSAwOwotCQlzdGF0 ZS0+ZWxlbUlkeCA9IGVsZW0tPm5leHQ7Ci0JCW5leHRFbGVtID0gJmVsZW1lbnRzW3N0YXRlLT5l bGVtSWR4XTsKKwkJYm9vbAkJcmVsdWN0YW50ID0gUlBSRWxlbUlzUmVsdWN0YW50KGVsZW0pOwog CiAJCS8qCi0JCSAqIFdoZW4gYSBxdWFudGlmaWVkIFZBUiAoZS5nLiwgQSspIGV4aXRzIGRpcmVj dGx5IHRvIGFuIG91dGVyIEVORCwKLQkJICogaW5jcmVtZW50IHRoZSBFTkQncyBpdGVyYXRpb24g Y291bnQuICBTaW1wbGUgVkFScyAobWluPW1heD0xKQotCQkgKiBoYW5kbGUgdGhpcyB2aWEgaW5s aW5lIGFkdmFuY2UgaW4gbmZhX21hdGNoLCBidXQgcXVhbnRpZmllZCBWQVJzCi0JCSAqIGJ5cGFz cyB0aGF0IHBhdGguICBPbmx5IGluY3JlbWVudCB3aGVuIHRoZSBWQVIgYWN0dWFsbHkgY29uc3Vt ZWQKLQkJICogcm93cyAoY291bnQgPiAwKSB0byBwcmVzZXJ2ZSBjeWNsZSBwcmV2ZW50aW9uIGZv ciB6ZXJvLXByb2dyZXNzCi0JCSAqIGxvb3BzLgorCQkgKiBDbG9uZSBzdGF0ZSBmb3IgdGhlIHNl Y29uZC1wcmlvcml0eSBwYXRoLiBGb3IgZ3JlZWR5LCBjbG9uZSBpcyB0aGUKKwkJICogbG9vcCBz dGF0ZTsgZm9yIHJlbHVjdGFudCwgY2xvbmUgaXMgdGhlIGV4aXQgc3RhdGUuCiAJCSAqLwotCQlp ZiAoUlBSRWxlbUlzRW5kKG5leHRFbGVtKSAmJiBjb3VudCA+IDApCisJCWlmIChyZWx1Y3RhbnQp CiAJCXsKLQkJCWlmIChzdGF0ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0aF0gPCBSUFJfQ09VTlRf TUFYKQotCQkJCXN0YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRlcHRoXSsrOworCQkJUlBSTkZBU3Rh dGUgKnNhdmVkTWF0Y2ggPSBjdHgtPm1hdGNoZWRTdGF0ZTsKKworCQkJLyogQ2xvbmUgZm9yIGV4 aXQsIG9yaWdpbmFsIHN0YXlzIGZvciBsb29wICovCisJCQljbG9uZVN0YXRlID0gbmZhX3N0YXRl X2NyZWF0ZSh3aW5zdGF0ZSwgZWxlbS0+bmV4dCwKKwkJCQkJCQkJCQkgIHN0YXRlLT5jb3VudHMs IHN0YXRlLT5pc0Fic29yYmFibGUpOworCQkJY2xvbmVTdGF0ZS0+Y291bnRzW2RlcHRoXSA9IDA7 CisJCQluZXh0RWxlbSA9ICZlbGVtZW50c1tjbG9uZVN0YXRlLT5lbGVtSWR4XTsKKworCQkJLyoK KwkJCSAqIFdoZW4gZXhpdGluZyBkaXJlY3RseSB0byBhbiBvdXRlciBFTkQsIGluY3JlbWVudCB0 aGUgRU5EJ3MKKwkJCSAqIGl0ZXJhdGlvbiBjb3VudC4KKwkJCSAqLworCQkJaWYgKFJQUkVsZW1J c0VuZChuZXh0RWxlbSkgJiYgY291bnQgPiAwKQorCQkJeworCQkJCWlmIChjbG9uZVN0YXRlLT5j b3VudHNbbmV4dEVsZW0tPmRlcHRoXSA8IFJQUl9DT1VOVF9NQVgpCisJCQkJCWNsb25lU3RhdGUt PmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhdKys7CisJCQl9CisKKwkJCS8qIEV4aXQgZmlyc3QgKHBy ZWZlcnJlZCBmb3IgcmVsdWN0YW50KSAqLworCQkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUs IGN0eCwgY2xvbmVTdGF0ZSwgbmV4dEVsZW0sCisJCQkJCQkJICBjdXJyZW50UG9zLCBpbml0aWFs QWR2YW5jZSk7CisKKwkJCS8qCisJCQkgKiBJZiBleGl0IHBhdGggcmVhY2hlZCBGSU4sIHRoZSBz aG9ydGVzdCBtYXRjaCBpcyBmb3VuZC4gU2tpcAorCQkJICogbG9vcCBzdGF0ZSB0byBwcmV2ZW50 IGxvbmdlciBtYXRjaGVzIGZyb20gcmVwbGFjaW5nIGl0LgorCQkJICovCisJCQlpZiAoY3R4LT5t YXRjaGVkU3RhdGUgIT0gc2F2ZWRNYXRjaCkKKwkJCXsKKwkJCQluZmFfc3RhdGVfZnJlZSh3aW5z dGF0ZSwgc3RhdGUpOworCQkJCXJldHVybjsKKwkJCX0KKworCQkJLyogTG9vcCBzZWNvbmQgKi8K KwkJCW5mYV9hZGRfc3RhdGVfdW5pcXVlKHdpbnN0YXRlLCBjdHgsIHN0YXRlKTsKIAkJfQorCQll bHNlCisJCXsKKwkJCS8qIENsb25lIGZvciBsb29wLCBvcmlnaW5hbCB1c2VkIGZvciBleGl0ICov CisJCQljbG9uZVN0YXRlID0gbmZhX3N0YXRlX2NyZWF0ZSh3aW5zdGF0ZSwgc3RhdGUtPmVsZW1J ZHgsCisJCQkJCQkJCQkJICBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKIAot CQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgbmV4dEVsZW0sIGN1cnJl bnRQb3MsIGluaXRpYWxBZHZhbmNlKTsKKwkJCS8qIExvb3AgZmlyc3QgKHByZWZlcnJlZCBmb3Ig Z3JlZWR5KSAqLworCQkJbmZhX2FkZF9zdGF0ZV91bmlxdWUod2luc3RhdGUsIGN0eCwgY2xvbmVT dGF0ZSk7CisKKwkJCS8qIEV4aXQgc2Vjb25kICovCisJCQlzdGF0ZS0+Y291bnRzW2RlcHRoXSA9 IDA7CisJCQlzdGF0ZS0+ZWxlbUlkeCA9IGVsZW0tPm5leHQ7CisJCQluZXh0RWxlbSA9ICZlbGVt ZW50c1tzdGF0ZS0+ZWxlbUlkeF07CisKKwkJCS8qCisJCQkgKiBXaGVuIGV4aXRpbmcgZGlyZWN0 bHkgdG8gYW4gb3V0ZXIgRU5ELCBpbmNyZW1lbnQgdGhlIEVORCdzCisJCQkgKiBpdGVyYXRpb24g Y291bnQuICBTaW1wbGUgVkFScyAobWluPW1heD0xKSBoYW5kbGUgdGhpcyB2aWEKKwkJCSAqIGlu bGluZSBhZHZhbmNlIGluIG5mYV9tYXRjaCwgYnV0IHF1YW50aWZpZWQgVkFScyBieXBhc3MgdGhh dAorCQkJICogcGF0aC4gIE9ubHkgaW5jcmVtZW50IHdoZW4gdGhlIFZBUiBhY3R1YWxseSBjb25z dW1lZCByb3dzCisJCQkgKiAoY291bnQgPiAwKSB0byBwcmVzZXJ2ZSBjeWNsZSBwcmV2ZW50aW9u IGZvciB6ZXJvLXByb2dyZXNzCisJCQkgKiBsb29wcy4KKwkJCSAqLworCQkJaWYgKFJQUkVsZW1J c0VuZChuZXh0RWxlbSkgJiYgY291bnQgPiAwKQorCQkJeworCQkJCWlmIChzdGF0ZS0+Y291bnRz W25leHRFbGVtLT5kZXB0aF0gPCBSUFJfQ09VTlRfTUFYKQorCQkJCQlzdGF0ZS0+Y291bnRzW25l eHRFbGVtLT5kZXB0aF0rKzsKKwkJCX0KKworCQkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUs IGN0eCwgc3RhdGUsIG5leHRFbGVtLAorCQkJCQkJCSAgY3VycmVudFBvcywgaW5pdGlhbEFkdmFu Y2UpOworCQl9CiAJfQogCWVsc2UgaWYgKGNhbkxvb3ApCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9y cHIuYwppbmRleCAxMTJlZDAzNGZlMi4uOTg3ZjU5NWQ0MzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L3Jwci5jCkBAIC04MzUsMjEgKzgzNSw0NCBAQCB0cnlNdWx0aXBseVF1YW50aWZpZXJzKFJQUlBh dHRlcm5Ob2RlICpwYXR0ZXJuKQogICogRXhhbXBsZXM6CiAgKiAgIChBKXsxLDF9ICAgLT4gQQog ICogICAoQSBCKXsxLDF9IC0+IFNFUShBLCBCKSAgKHVud3JhcHMgdGhlIGlubmVyIFNFUSkKKyAq ICAgKEEpPyAgICAgICAtPiBBPyAgICAgICAgIChwcm9wYWdhdGUgcXVhbnRpZmllciB0byBzaW5n bGUgVkFSIGNoaWxkKQorICogICAoQSkrPyAgICAgIC0+IEErPyAgICAgICAgKHByb3BhZ2F0ZSBx dWFudGlmaWVyIGluY2x1ZGluZyByZWx1Y3RhbnQpCiAgKgotICogSWYgR1JPVVAgaGFzIG1pbj0x LCBtYXg9MSwgYW5kIGlzIG5vdCByZWx1Y3RhbnQsIHJldHVybiB0aGUgY2hpbGQgZGlyZWN0bHku Ci0gKiBPdGhlcndpc2UgcmV0dXJucyB0aGUgcGF0dGVybiB1bmNoYW5nZWQuCisgKiBJZiBHUk9V UCBoYXMgbWluPTEsIG1heD0xLCByZXR1cm4gdGhlIGNoaWxkIGRpcmVjdGx5IChyZWx1Y3RhbnQg b24KKyAqIHsxLDF9IGlzIG1lYW5pbmdsZXNzKS4gIElmIEdST1VQIGhhcyBhIHNpbmdsZSBWQVIg Y2hpbGQgd2l0aCBkZWZhdWx0CisgKiBxdWFudGlmaWVyIHsxLDF9LCBwcm9wYWdhdGUgdGhlIEdS T1VQJ3MgcXVhbnRpZmllciB0byB0aGUgY2hpbGQgYW5kCisgKiB1bndyYXAuICBPdGhlcndpc2Ug cmV0dXJucyB0aGUgcGF0dGVybiB1bmNoYW5nZWQuCiAgKgogICogTm90ZTogUGFyc2VyIGFsd2F5 cyBjcmVhdGVzIEdST1VQIHdpdGggZXhhY3RseSBvbmUgY2hpbGQgdmlhIGxpc3RfbWFrZTEoKS4K ICAqLwogc3RhdGljIFJQUlBhdHRlcm5Ob2RlICoKIHRyeVVud3JhcEdyb3VwKFJQUlBhdHRlcm5O b2RlICpwYXR0ZXJuKQogewotCWlmIChwYXR0ZXJuLT5taW4gIT0gMSB8fCBwYXR0ZXJuLT5tYXgg IT0gMSB8fCBwYXR0ZXJuLT5yZWx1Y3RhbnQgPj0gMCkKLQkJcmV0dXJuIHBhdHRlcm47CisJUlBS UGF0dGVybk5vZGUgKmNoaWxkOwogCiAJLyogUGFyc2VyIGFsd2F5cyBjcmVhdGVzIEdST1VQIHdp dGggc2luZ2xlIGNoaWxkICovCiAJQXNzZXJ0KGxpc3RfbGVuZ3RoKHBhdHRlcm4tPmNoaWxkcmVu KSA9PSAxKTsKLQlyZXR1cm4gKFJQUlBhdHRlcm5Ob2RlICopIGxpbml0aWFsKHBhdHRlcm4tPmNo aWxkcmVuKTsKKworCWNoaWxkID0gKFJQUlBhdHRlcm5Ob2RlICopIGxpbml0aWFsKHBhdHRlcm4t PmNoaWxkcmVuKTsKKworCS8qIEdST1VQezEsMX06IHVud3JhcCBkaXJlY3RseSAocmVsdWN0YW50 IG9uIHsxLDF9IGlzIG1lYW5pbmdsZXNzKSAqLworCWlmIChwYXR0ZXJuLT5taW4gPT0gMSAmJiBw YXR0ZXJuLT5tYXggPT0gMSkKKwkJcmV0dXJuIGNoaWxkOworCisJLyoKKwkgKiBTaW5nbGUgVkFS IGNoaWxkIHdpdGggZGVmYXVsdCB7MSwxfTogcHJvcGFnYXRlIEdST1VQJ3MgcXVhbnRpZmllciB0 bworCSAqIHRoZSBjaGlsZCBhbmQgdW53cmFwLiAgRS5nLiwgKEEpPz8gLT4gQT8/LCAoQSkrPyAt PiBBKz8KKwkgKi8KKwlpZiAoY2hpbGQtPm5vZGVUeXBlID09IFJQUl9QQVRURVJOX1ZBUiAmJgor CQljaGlsZC0+bWluID09IDEgJiYgY2hpbGQtPm1heCA9PSAxICYmIGNoaWxkLT5yZWx1Y3RhbnQg PCAwKQorCXsKKwkJY2hpbGQtPm1pbiA9IHBhdHRlcm4tPm1pbjsKKwkJY2hpbGQtPm1heCA9IHBh dHRlcm4tPm1heDsKKwkJY2hpbGQtPnJlbHVjdGFudCA9IHBhdHRlcm4tPnJlbHVjdGFudDsKKwkJ cmV0dXJuIGNoaWxkOworCX0KKworCXJldHVybiBwYXR0ZXJuOwogfQogCiAvKgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK aW5kZXggZTZhZTIzZjM2OGIuLjVhM2QxNDFlOTkyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTIwMzc2LDEy ICsyMDM3Niw2IEBAIG1ha2VSUFJRdWFudGlmaWVyKGludCBtaW4sIGludCBtYXgsIFBhcnNlTG9j IHJlbHVjdGFudCwgaW50IGxvY2F0aW9uLAogewogCVJQUlBhdHRlcm5Ob2RlICpuID0gbWFrZU5v ZGUoUlBSUGF0dGVybk5vZGUpOwogCi0JaWYgKHJlbHVjdGFudCA+PSAwKQotCQllcmVwb3J0KEVS Uk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkg ZXJybXNnKCJyZWx1Y3RhbnQgcXVhbnRpZmllcnMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIiksCi0J CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihyZWx1Y3RhbnQpKSk7Ci0KIAluLT5taW4gPSBtaW47CiAJ bi0+bWF4ID0gbWF4OwogCW4tPnJlbHVjdGFudCA9IHJlbHVjdGFudDsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnByLm91dAppbmRleCBjOTIxYmFkYjAwNi4uOGFmNDQzOTI3MDAgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Jwci5vdXQKQEAgLTI4MTQsNiArMjgxNCw3IEBAIEVSUk9SOiAgdW5zdXBwb3J0ZWQg cXVhbnRpZmllciAifiIKIExJTkUgOTogIFBBVFRFUk4gKFNUQVJUIFVQfiBET1dOKykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgogSElOVDogIFZhbGlkIHF1YW50aWZpZXJzIGFyZTogKiwg KywgPywgKj8sICs/LCA/Pywge259LCB7bix9LCB7LG19LCB7bixtfSBhbmQgdGhlaXIgcmVsdWN0 YW50IHZlcnNpb25zLgorLS0gUFJFVigxKSBtaXNzaW5nIGNvbHVtbiByZWZlcmVuY2UgKGVycm9y KQogU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIg dywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3CiAgRlJPTSBzdG9jawogIFdJTkRPVyB3IEFTICgK QEAgLTI4MjgsOSArMjgyOSw3IEBAIFNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0 X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIKICAgVVAgQVMgcHJp Y2UgPiBQUkVWKDEpLAogICBET1dOIEFTIHByaWNlIDwgUFJFVigxKQogKTsKLUVSUk9SOiAgcmVs dWN0YW50IHF1YW50aWZpZXJzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAotTElORSA5OiAgUEFUVEVS TiAoU1RBUlQgVVArPyBET1dOKykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0VSUk9S OiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24ncyBhcmd1bWVudCBtdXN0IGluY2x1 ZGUgYXQgbGVhc3Qgb25lIGNvbHVtbiByZWZlcmVuY2UKIC0tIE1heGltdW0gcGF0dGVybiB2YXJp YWJsZXMgaXMgMjUxIChSUFJfVkFSSURfTUFYKQogLS0gRXJyb3I6IDI1MiB2YXJpYWJsZXMgZXhj ZWVkcyBsaW1pdCBvZiAyNTEKIERPICQkCkBAIC0zODM2LDE1ICszODM1LDE1IEBAIFdJTkRPVyB3 IEFTICgKIAogLS0gRXhwZWN0ZWQ6IDEtNCAoQSBDIEIgQykKIC0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBSRUxVQ1RBTlQgcXVhbnRpZmllcnMgKG5v dCB5ZXQgc3VwcG9ydGVkKQorLS0gUkVMVUNUQU5UIHF1YW50aWZpZXJzCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVGVzdDogQSs/IEIgKHJlbHVj dGFudCkgLSBwYXJzZXIgcmVqZWN0cyB3aXRoIEVSUk9SCistLSBUZXN0OiBBKz8gQiAocmVsdWN0 YW50KSAtIEIgYXZhaWxhYmxlIGF0IHJvdyAzLCBBIGV4aXRzIGVhcmx5CiBXSVRIIGphY29iX3Jl bHVjdGFudCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0gICAgICAgICgxLCBBUlJB WVsnQSddKSwKLSAgICAgICAgKDIsIEFSUkFZWydBJ10pLAotICAgICAgICAoMywgQVJSQVlbJ0En XSksCi0gICAgICAgICg0LCBBUlJBWVsnQiddKQorICAgICAgICAoMSwgQVJSQVlbJ0EnLCdfJ10p LAorICAgICAgICAoMiwgQVJSQVlbJ0EnLCdfJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnLCdC J10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InLCdfJ10pCiAgICAgKSBBUyB0KGlkLCBmbGFncykK ICkKIFNFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3Rh cnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKQEAgLTM4NTgsMTcgKzM4NTcs MjEgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCiAgICAg ICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQogKTsKLUVSUk9SOiAgcmVsdWN0YW50IHF1YW50aWZp ZXJzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAotTElORSAxNTogICAgIFBBVFRFUk4gKEErPyBCKQot ICAgICAgICAgICAgICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9SIChyZWx1Y3RhbnQg cXVhbnRpZmllcnMgbm90IHlldCBzdXBwb3J0ZWQpCi0tLSBUZXN0OiBBezEsM30/IEIgKHJlbHVj dGFudCBib3VuZGVkKSAtIHBhcnNlciByZWplY3RzIHdpdGggRVJST1IKKyBpZCB8IGZsYWdzIHwg bWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorICAxIHwge0EsX30gfCAgICAgICAgICAgMSB8ICAgICAgICAgMworICAyIHwge0Es X30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0EsQn0gfCAgICAgICAgICAgICB8 ICAgICAgICAgIAorICA0IHwge0IsX30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDQgcm93 cykKKworLS0gVGVzdDogQXsxLDN9PyBCIChyZWx1Y3RhbnQgYm91bmRlZCkgLSBzYW1lIGRhdGEs IGJvdW5kZWQgcXVhbnRpZmllcgogV0lUSCBqYWNvYl9yZWx1Y3RhbnRfYm91bmRlZCBBUyAoCiAg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0gICAgICAgICgxLCBBUlJBWVsnQSddKSwKLSAgICAg ICAgKDIsIEFSUkFZWydBJ10pLAotICAgICAgICAoMywgQVJSQVlbJ0EnXSksCi0gICAgICAgICg0 LCBBUlJBWVsnQiddKQorICAgICAgICAoMSwgQVJSQVlbJ0EnLCdfJ10pLAorICAgICAgICAoMiwg QVJSQVlbJ0EnLCdfJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnLCdCJ10pLAorICAgICAgICAo NCwgQVJSQVlbJ0InLCdfJ10pCiAgICAgKSBBUyB0KGlkLCBmbGFncykKICkKIFNFTEVDVCBpZCwg ZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKQEAgLTM4ODIsMTAgKzM4ODUsMTQgQEAgV0lORE9XIHcg QVMgKAogICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCiAgICAgICAgIEIgQVMgJ0InID0g QU5ZKGZsYWdzKQogKTsKLUVSUk9SOiAgcmVsdWN0YW50IHF1YW50aWZpZXJzIGFyZSBub3QgeWV0 IHN1cHBvcnRlZAotTElORSAxNTogICAgIFBBVFRFUk4gKEF7MSwzfT8gQikKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1IgKHJlbHVjdGFudCBxdWFudGlm aWVycyBub3QgeWV0IHN1cHBvcnRlZCkKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRj aF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0Es X30gfCAgICAgICAgICAgMSB8ICAgICAgICAgMworICAyIHwge0EsX30gfCAgICAgICAgICAgICB8 ICAgICAgICAgIAorICAzIHwge0EsQn0gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwg e0IsX30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDQgcm93cykKKwogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIE5lc3RlZCBxdWFudGlmaWVy cyAocGF0aG9sb2dpY2FsIHBhdHRlcm5zKQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnByX2Jhc2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5k ZXggZDMxN2VjNzBjOGQuLjQzZWVhMzIxMzBmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Jwcl9iYXNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9iYXNlLm91dApAQCAtMTA3Niw3ICsxMDc2LDcgQEAgT1JERVIgQlkgaWQ7CiAoMTAgcm93cykK IAogRFJPUCBUQUJMRSBycHJfcXVhbnQ7Ci0tLSBSZWx1Y3RhbnQgcXVhbnRpZmllcnMgKG5vdCB5 ZXQgc3VwcG9ydGVkKQorLS0gUmVsdWN0YW50IHF1YW50aWZpZXJzCiBDUkVBVEUgVEFCTEUgcnBy X3JlbHVjdGFudCAoaWQgSU5ULCB2YWwgSU5UKTsKIElOU0VSVCBJTlRPIHJwcl9yZWx1Y3RhbnQg VkFMVUVTICgxLCAxMCksICgyLCAyMCksICgzLCAzMCk7CiAtLSAqPyAoemVybyBvciBtb3JlLCBy ZWx1Y3RhbnQpCkBAIC0xMDg4LDEwICsxMDg4LDE0IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBKj8pCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLUVSUk9SOiAgcmVsdWN0YW50 IHF1YW50aWZpZXJzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAotTElORSA2OiAgICAgUEFUVEVSTiAo QSo/KQotICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHJlbHVj dGFudCBxdWFudGlmaWVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMQorICAgICAxCisgICAgIDEKKygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlm aWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIC0tICs/IChvbmUgb3IgbW9yZSwgcmVsdWN0YW50 KQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CkBAIC0xMTAxLDEw ICsxMTA1LDE0IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKz8pCiAgICAgREVGSU5F IEEgQVMgdmFsID4gMAogKTsKLUVSUk9SOiAgcmVsdWN0YW50IHF1YW50aWZpZXJzIGFyZSBub3Qg eWV0IHN1cHBvcnRlZAotTElORSA2OiAgICAgUEFUVEVSTiAoQSs/KQotICAgICAgICAgICAgICAg ICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHJlbHVjdGFudCBxdWFudGlmaWVycyBhcmUg bm90IHlldCBzdXBwb3J0ZWQKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQorICAgICAxCisgICAg IDEKKygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3Qg bWF0Y2gKIC0tID8/ICh6ZXJvIG9yIG9uZSwgcmVsdWN0YW50KQogU0VMRUNUIENPVU5UKCopIE9W RVIgdwogRlJPTSBycHJfcmVsdWN0YW50CkBAIC0xMTE0LDEwICsxMTIyLDE0IEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOIChBPz8pCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLUVS Uk9SOiAgcmVsdWN0YW50IHF1YW50aWZpZXJzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAotTElORSA2 OiAgICAgUEFUVEVSTiAoQT8/KQotICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3Rl ZDogRVJST1I6IHJlbHVjdGFudCBxdWFudGlmaWVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKKyBj b3VudCAKKy0tLS0tLS0KKyAgICAgMQorICAgICAxCisgICAgIDEKKygzIHJvd3MpCisKKy0tIFJl bHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIC0tIHtuLH0/IChuIG9y IG1vcmUsIHJlbHVjdGFudCkKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKIEZST00gcnByX3JlbHVj dGFudApAQCAtMTEyNywxMCArMTEzOSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo QXsyLH0/KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci1FUlJPUjogIHJlbHVjdGFudCBx dWFudGlmaWVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKLUxJTkUgNjogICAgIFBBVFRFUk4gKEF7 Mix9PykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBy ZWx1Y3RhbnQgcXVhbnRpZmllcnMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkCisgY291bnQgCistLS0t LS0tCisgICAgIDIKKyAgICAgMAorICAgICAwCisoMyByb3dzKQorCistLSBSZWx1Y3RhbnQgcXVh bnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCiAtLSB7bixtfT8gKG4gdG8gbSwgcmVsdWN0 YW50KQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CkBAIC0xMTQw LDEwICsxMTU2LDE0IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezEsM30/KQogICAg IERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci1FUlJPUjogIHJlbHVjdGFudCBxdWFudGlmaWVycyBh cmUgbm90IHlldCBzdXBwb3J0ZWQKLUxJTkUgNjogICAgIFBBVFRFUk4gKEF7MSwzfT8pCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHJlbHVjdGFudCBx dWFudGlmaWVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAg MQorICAgICAxCisgICAgIDEKKygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBw cmVmZXIgc2hvcnRlc3QgbWF0Y2gKIC0tIHtufT8gKGV4YWN0bHkgbiwgcmVsdWN0YW50KQogU0VM RUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CkBAIC0xMTUzLDEwICsxMTcz LDE0IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezJ9PykKICAgICBERUZJTkUgQSBB UyB2YWwgPiAwCiApOwotRVJST1I6ICByZWx1Y3RhbnQgcXVhbnRpZmllcnMgYXJlIG5vdCB5ZXQg c3VwcG9ydGVkCi1MSU5FIDY6ICAgICBQQVRURVJOIChBezJ9PykKLSAgICAgICAgICAgICAgICAg ICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHJlbHVjdGFudCBxdWFudGlmaWVycyBhcmUg bm90IHlldCBzdXBwb3J0ZWQKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMgorICAgICAwCisgICAg IDAKKygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3Qg bWF0Y2gKIC0tIHssbX0/ICh1cCB0byBtLCByZWx1Y3RhbnQpIC0gQ09NUExFVEVMWSBVTlRFU1RF RCBSVUxFIQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CkBAIC0x MTY2LDEwICsxMTkwLDE0IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBeywzfT8pCiAg ICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLUVSUk9SOiAgcmVsdWN0YW50IHF1YW50aWZpZXJz IGFyZSBub3QgeWV0IHN1cHBvcnRlZAotTElORSA2OiAgICAgUEFUVEVSTiAoQXssM30/KQotICAg ICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHJlbHVjdGFudCBx dWFudGlmaWVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAg MQorICAgICAxCisgICAgIDEKKygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBw cmVmZXIgc2hvcnRlc3QgbWF0Y2gKIC0tIEludmFsaWQgcmVsdWN0YW50IHBhdHRlcm5zICh3cm9u ZyB0b2tlbiBhZnRlciBxdWFudGlmaWVyKQogLS0gezJ9KyAoc2hvdWxkIGJlIHsyfT8gbm90IHsy fSspCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC0xMzUyLDEwICsxMzgwLDE0IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBKiA/KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7 Ci1FUlJPUjogIHJlbHVjdGFudCBxdWFudGlmaWVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKLUxJ TkUgNjogICAgIFBBVFRFUk4gKEEqID8pCi0gICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBF eHBlY3RlZDogRVJST1I6IHJlbHVjdGFudCBxdWFudGlmaWVycyBhcmUgbm90IHlldCBzdXBwb3J0 ZWQKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQorICAgICAxCisgICAgIDEKKygzIHJvd3MpCisK Ky0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIC0tICsgPyAo dG9rZW4gc2VwYXJhdGVkKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0 YW50CkBAIC0xMzY1LDEwICsxMzk3LDE0IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB KyA/KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci1FUlJPUjogIHJlbHVjdGFudCBxdWFu dGlmaWVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKLUxJTkUgNjogICAgIFBBVFRFUk4gKEErID8p Ci0gICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHJlbHVjdGFu dCBxdWFudGlmaWVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKKyBjb3VudCAKKy0tLS0tLS0KKyAg ICAgMQorICAgICAxCisgICAgIDEKKygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVy OiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIC0tIHsyLH0gPyAodG9rZW4gc2VwYXJhdGVkKQogU0VM RUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CkBAIC0xMzc4LDEwICsxNDE0 LDE0IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezIsfSA/KQogICAgIERFRklORSBB IEFTIHZhbCA+IDAKICk7Ci1FUlJPUjogIHJlbHVjdGFudCBxdWFudGlmaWVycyBhcmUgbm90IHll dCBzdXBwb3J0ZWQKLUxJTkUgNjogICAgIFBBVFRFUk4gKEF7Mix9ID8pCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHJlbHVjdGFudCBxdWFudGlmaWVy cyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMgorICAgICAw CisgICAgIDAKKygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hv cnRlc3QgbWF0Y2gKIC0tIEludmFsaWQgdG9rZW4gY29tYmluYXRpb25zCiAtLSAqICsgKGludmFs aWQgY29tYmluYXRpb24pCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC0xNDE4LDEwICsxNDU4 LDE0IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBPyA/KQogICAgIERFRklORSBBIEFT IHZhbCA+IDAKICk7Ci1FUlJPUjogIHJlbHVjdGFudCBxdWFudGlmaWVycyBhcmUgbm90IHlldCBz dXBwb3J0ZWQKLUxJTkUgNjogICAgIFBBVFRFUk4gKEE/ID8pCi0gICAgICAgICAgICAgICAgICAg ICAgICBeCi0tLSBFeHBlY3RlZDogRVJST1I6IHJlbHVjdGFudCBxdWFudGlmaWVycyBhcmUgbm90 IHlldCBzdXBwb3J0ZWQKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQorICAgICAxCisgICAgIDEK KygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0 Y2gKIERST1AgVEFCTEUgcnByX3JlbHVjdGFudDsKIC0tIFF1YW50aWZpZXIgYm91bmRhcnkgY29u ZGl0aW9ucwogQ1JFQVRFIFRBQkxFIHJwcl9ib3VuZHMgKGlkIElOVCk7CkBAIC0zMzkxLDYgKzM0 MzUsMTUwIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJf cGxhbgogKDYgcm93cykKIAorLS0gUmVsdWN0YW50IG9wdGltaXphdGlvbiBieXBhc3M6IFZBUiBt ZXJnZQorLS0gQSs/IEEgc3RheXMgYXMgYSs/IGEgKGdyZWVkeSBBKyBBIG1lcmdlcyB0byBhezIs fSkKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJf cGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEErPyBBKSBERUZJ TkUgQSBBUyB2YWwgPiAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjog YSs/IGEKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBycHJfcGxhbgorKDYgcm93cykKKworLS0gUmVsdWN0YW50IG9wdGltaXphdGlv biBieXBhc3M6IEdST1VQIG1lcmdlCistLSAoQSBCKSs/IChBIEIpIHN0YXlzIHNlcGFyYXRlIChn cmVlZHkgbWVyZ2VzIHRvIChhIGIpezIsfSkKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAg ICAgIFBBVFRFUk4gKChBIEIpKz8gKEEgQikpIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2 YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhIGIpKz8g YSBiCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcnByX3BsYW4KKyg2IHJvd3MpCisKKy0tIFJlbHVjdGFudCBvcHRpbWl6YXRpb24g YnlwYXNzOiBxdWFudGlmaWVyIG11bHRpcGx5IChvdXRlciByZWx1Y3RhbnQpCistLSAoQXsyfSl7 M30/IHN0YXlzIGFzIChhezJ9KXszfT8gKGdyZWVkeSBtZXJnZXMgdG8gYXs2fSkKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBezJ9KXszfT8pIERFRklORSBBIEFT IHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYXsyfSl7 M30/CisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcnByX3BsYW4KKyg2IHJvd3MpCisKKy0tIFJlbHVjdGFudCBvcHRpbWl6YXRpb24g YnlwYXNzOiBxdWFudGlmaWVyIG11bHRpcGx5IChpbm5lciByZWx1Y3RhbnQpCistLSAoQXsyfT8p ezN9IHN0YXlzIGFzIChhezJ9Pyl7M30gKGdyZWVkeSBtZXJnZXMgdG8gYXs2fSkKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBezJ9Pyl7M30pIERFRklORSBBIEFT IHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYXsyfT8p ezN9CisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcnByX3BsYW4KKyg2IHJvd3MpCisKKy0tIFJlbHVjdGFudCBvcHRpbWl6YXRpb24g YnlwYXNzOiBQUkVGSVggbWVyZ2UKKy0tIEEgQiAoQSBCKSs/IHN0YXlzIHNlcGFyYXRlIChncmVl ZHkgbWVyZ2VzIHRvIChhIGIpezIsfSkKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAg IFBBVFRFUk4gKEEgQiAoQSBCKSs/KSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4g NTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdp bmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIgKGEgYikrPwor ICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHJwcl9wbGFuCisoNiByb3dzKQorCistLSBSZWx1Y3RhbnQgb3B0aW1pemF0aW9uIGJ5cGFz czogU1VGRklYIG1lcmdlCistLSAoQSBCKSs/IEEgQiBzdGF5cyBzZXBhcmF0ZSAoZ3JlZWR5IG1l cmdlcyB0byAoYSBiKXsyLH0pCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg T1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRU RVJOICgoQSBCKSs/IEEgQikgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dB Z2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEgYikrPyBhIGIKKyAgIC0+ ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBy cHJfcGxhbgorKDYgcm93cykKKworLS0gR1JPVVAgdW53cmFwIHdpdGggcXVhbnRpZmllciBwcm9w YWdhdGlvbjogKEEpPz8gQiAtPiBhPz8gYgorLS0gU2luZ2xlIFZBUiBjaGlsZCB7MSwxfSByZWNl aXZlcyBHUk9VUCdzIHF1YW50aWZpZXIgYW5kIHJlbHVjdGFudAorRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgICAgICAgUEFUVEVSTiAoKEEpPz8gQikgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBC IEFTIHZhbCA+IDUwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYT8/ IGIKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBycHJfcGxhbgorKDYgcm93cykKKworLS0gUmVsdWN0YW50IHByZXNlcnZlZCB0aHJv dWdoIEFMVCBmbGF0dGVuCistLSAoQSB8IChCIHwgQykpKz8gZmxhdHRlbnMgdG8gKGEgfCBiIHwg YykrPyAtIGlubmVyIEFMVCBmbGF0dGVuZWQsIHJlbHVjdGFudCBrZXB0CitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoQSB8IChCIHwgQykpKz8pIERFRklORSBBIEFT IHZhbCA8PSAzMCwgQiBBUyB2YWwgPD0gNjAsIEMgQVMgdmFsID4gNjApOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93 OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSB8IGIgfCBjKSs/CisgICAtPiAgU29ydAorICAg ICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg2 IHJvd3MpCisKKy0tIFJlbHVjdGFudCBvcHRpbWl6YXRpb24gYnlwYXNzOiBhYnNvcnB0aW9uIGZs YWdzCistLSBBKz8gd2l0aCBTS0lQIFBBU1QgTEFTVCBST1cgLSBubyBhYnNvcnB0aW9uIG1hcmtl cnMgKGdyZWVkeSBBKyBnZXRzIGErIikKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQQVRURVJOIChBKz8pIERFRklORSBBIEFT IHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKz8KKyAg IC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBycHJfcGxhbgorKDYgcm93cykKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBBYnNvcnB0aW9uIEZsYWcgRGlzcGxh eSBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9uZmEub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dAppbmRleCA3 ZDM4ZDYyYWMzMS4uYTJhMjU3MzI5YjcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByX25mYS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZh Lm91dApAQCAtMjg5LDYgKzI4OSwzOSBAQCBXSU5ET1cgdyBBUyAoCiAgIDUgfCB7X30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCiAoNSByb3dzKQogCistLSBSZWx1Y3RhbnQgcGF0dGVybiAo QSs/KSAtIG5vdCBhYnNvcmJhYmxlCistLSBDb21wYXJlIHdpdGggZ3JlZWR5IEErIGFib3ZlOiBy ZWx1Y3RhbnQgZXhjbHVkZWQgZnJvbSBhYnNvcnB0aW9uLgorLS0gRWFjaCBjb250ZXh0IHByb2R1 Y2VzIG1pbmltdW0gbWF0Y2ggaW5kZXBlbmRlbnRseS4KK1dJVEggdGVzdF9yZWx1Y3RhbnRfYWJz b3JwdGlvbiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJB WVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0En XSksCisgICAgICAgICg0LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUsIEFSUkFZWydfJ10pCisg ICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50X2Fic29ycHRpb24KK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cK KyAgICBQQVRURVJOIChBKz8pCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZs YWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAg MSB8ICAgICAgICAgMQorICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgMgorICAz IHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAgICAgMworICA0IHwge0F9ICAgfCAgICAgICAg ICAgNCB8ICAgICAgICAgNAorICA1IHwge199ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor KDUgcm93cykKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLSBDb250ZXh0IExpZmVjeWNsZQogLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC00MjAs NiArNDUzLDM4IEBAIFdJTkRPVyB3IEFTICgKICAgNCB8IHtfLF99IHwgICAgICAgICAgICAgfCAg ICAgICAgICAKICg0IHJvd3MpCiAKKy0tIFJlbHVjdGFudCBjb250ZXh0IGxpZmVjeWNsZSAoQSs/ IEIgd2l0aCBTS0lQIFRPIE5FWFQgUk9XKQorLS0gQSs/IGV4aXRzIGVhcmx5IGJ1dCBpZiBCIG5v dCBhdmFpbGFibGUsIGZhbGxzIGJhY2sgdG8gbG9vcC4KKy0tIENvbnRleHRzIG5vdCBhYnNvcmJl ZCAocmVsdWN0YW50KSwgc28gbXVsdGlwbGUgc3Vydml2ZS4KK1dJVEggdGVzdF9yZWx1Y3RhbnRf Y29udGV4dCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJB WVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0In XSksCisgICAgICAgICg0LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitT RUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hf c3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0 ZXN0X3JlbHVjdGFudF9jb250ZXh0CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSs/IEIpCisgICAgREVG SU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBB TlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0t LS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAg ICAgICAxIHwgICAgICAgICAzCisgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAgICAz CisgIDMgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7X30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisoNCByb3dzKQorCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEFkdmFuY2UgUGhh c2UgKEVwc2lsb24gVHJhbnNpdGlvbnMpCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTU3NSw2ICs2NDAsMTAwIEBAIFdJ TkRPVyB3IEFTICgKICAgOCB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKICg4IHJv d3MpCiAKKy0tIE1peGVkIGdyZWVkeS9yZWx1Y3RhbnQgc2VxdWVuY2U6IEErPyBCKyAocmVsdWN0 YW50IEEsIGdyZWVkeSBCKQorLS0gQSBleGl0cyBhcyBlYXJseSBhcyBwb3NzaWJsZSwgQiBjb25z dW1lcyB0aGUgcmVzdCBncmVlZGlseQorV0lUSCB0ZXN0X21peGVkX3JlbHVjdGFudCBBUyAoCisg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnLCdCJ10pLAorICAgICAg ICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX2VuZAorRlJPTSB0ZXN0X21peGVkX3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAo QSs/IEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAg ICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQg fCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAx IHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgNQorICAyIHwge0F9ICAgfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorICAzIHwge0EsQn0gfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICA0IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA1IHwge0J9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorKDUgcm93cykKKworLS0gT3B0aW9uYWwgcmVsdWN0YW50IGdy b3VwOiAoQSBCKT8/IEMKKy0tIG5mYV9hZHZhbmNlX2JlZ2luOiByZWx1Y3RhbnQgcHJlZmVycyBz a2lwICgwIGl0ZXJhdGlvbnMpIG92ZXIgZW50ZXIKK1dJVEggdGVzdF9vcHRpb25hbF9yZWx1Y3Rh bnQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0En XSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydDJ10pCisg ICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfb3B0aW9uYWxfcmVsdWN0YW50CitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOICgoQSBCKT8/IEMpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0g QU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFT ICdDJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hf ZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAg IHwgICAgICAgICAgIDEgfCAgICAgICAgIDMKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgMyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKygzIHJvd3Mp CisKKy0tIEdyZWVkeS9yZWx1Y3RhbnQgc2VxdWVuY2U6IEErIEIrPyAoZ3JlZWR5IEEsIHJlbHVj dGFudCBCIGF0IGVuZCkKKy0tIEEgY29uc3VtZXMgZ3JlZWRpbHksIEIrPyBleGl0cyB0byBGSU4g YWZ0ZXIgbWluaW11bSBtYXRjaAorV0lUSCB0ZXN0X2dyZWVkeV90aGVuX3JlbHVjdGFudCBBUyAo CisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAg ICAgICAgKDIsIEFSUkFZWydBJywnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydCJ10pLAorICAg ICAgICAoNCwgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlk LCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAor ICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9ncmVl ZHlfdGhlbl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIrPykKKyAgICBERUZJ TkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFO WShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0t LSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAg ICAgIDEgfCAgICAgICAgIDMKKyAgMiB8IHtBLEJ9IHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAgMyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtCfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyg0IHJvd3MpCisKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gTWF0Y2ggUGhhc2UK IC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpAQCAtODEwLDYgKzk2OSwzNyBAQCBXSU5ET1cgdyBBUyAoCiAgIDYgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCiAoNiByb3dzKQogCistLSBSZWx1Y3RhbnQgd2l0aCBs aW1pdGVkIGZyYW1lIChBKz8gQiB3aXRoIDIgRk9MTE9XSU5HKQorLS0gUmVsdWN0YW50IGV4aXRz IGVhcmx5LCBCIG11c3QgYmUgd2l0aGluIGZyYW1lIGJvdW5kYXJ5CitXSVRIIHRlc3RfcmVsdWN0 YW50X2ZyYW1lIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFS UkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsn QiddKSwKKyAgICAgICAgKDQsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykK K1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9N IHRlc3RfcmVsdWN0YW50X2ZyYW1lCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDIgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErPyBCKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdz KQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8 ICAgICAgICAgMworICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgMworICAzIHwg e0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge199ICAgfCAgICAgICAgICAg ICB8ICAgICAgICAgIAorKDQgcm93cykKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBTdGF0ZSBNYW5hZ2VtZW50CiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KQEAgLTg0Myw2ICsxMDMzLDM1IEBAIFdJTkRPVyB3IEFTICgKICAgMyB8IHtELF99IHwg ICAgICAgICAgICAgfCAgICAgICAgICAKICgzIHJvd3MpCiAKKy0tIFJlbHVjdGFudCBkdXBsaWNh dGUgc3RhdGUgaGFuZGxpbmcKKy0tIChBKz8gfCBCKz8pIGNyZWF0ZXMgZXhpdCBhbmQgbG9vcCBz dGF0ZXM7IGV4aXQgcGF0aHMgbWF5IGNvbnZlcmdlCitXSVRIIHRlc3RfcmVsdWN0YW50X2RlZHVw IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJywn QiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJywnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydf J10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAg Zmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50X2RlZHVwCitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9X CisgICAgUEFUVEVSTiAoKEErPyB8IEIrPykpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0En ID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwg ZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QSxCfSB8ICAgICAgICAgICAxIHwgICAgICAgICAxCisg IDIgfCB7QSxCfSB8ICAgICAgICAgICAyIHwgICAgICAgICAyCisgIDMgfCB7X30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisoMyByb3dzKQorCiAtLSBMYXJnZSBwYXR0ZXJuIChzdHJlc3Mg ZnJlZSBsaXN0KQogV0lUSCB0ZXN0X2xhcmdlX3BhdHRlcm4gQVMgKAogICAgIFNFTEVDVCAqIEZS T00gKFZBTFVFUwpAQCAtMTAxNCw2ICsxMjMzLDM5IEBAIFdJTkRPVyB3IEFTICgKICAgNSB8IHtC fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKICg1IHJvd3MpCiAKKy0tIFJlbHVjdGFudCBu b3QgYWJzb3JiZWQgKEErPyB3aXRoIFNLSVAgVE8gTkVYVCBST1cpCistLSBDb21wYXJlIHdpdGgg Z3JlZWR5IEErIGJlbG93OiByZWx1Y3RhbnQgaXMgbm90IGFic29yYmFibGUsCistLSBzbyBhbGwg Y29udGV4dHMgc3Vydml2ZSBpbmRlcGVuZGVudGx5LgorV0lUSCB0ZXN0X3JlbHVjdGFudF9zdGF0 cyBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSdd KSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisg ICAgICAgICg0LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUsIEFSUkFZWydfJ10pCisgICAgKSBB UyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50X3N0YXRzCitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVS TiAoQSs/KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7Cisg aWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAg IDEKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgIDIgfCAgICAgICAgIDIKKyAgMyB8IHtBfSAgIHwg ICAgICAgICAgIDMgfCAgICAgICAgIDMKKyAgNCB8IHtBfSAgIHwgICAgICAgICAgIDQgfCAgICAg ICAgIDQKKyAgNSB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg1IHJvd3MpCisK IC0tIEFic29yYmVkIGNvbnRleHRzCiBXSVRIIHRlc3RfYWJzb3JiZWQgQVMgKAogICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUwpAQCAtMTMyMiw2ICsxNTc0LDk2IEBAIFdJTkRPVyB3IEFTICgKICAg NyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKICg3IHJvd3MpCiAKKy0tIEdyZWVk eSB2cyByZWx1Y3RhbnQ6IEErIG1hdGNoZXMgYWxsIHJvd3MsIEErPyBtYXRjaGVzIG1pbmltdW0K K1dJVEggdGVzdF9ncmVlZHlfdnNfcmVsdWN0YW50IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChW QUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJywnXyddKSwKKyAgICAgICAgKDIsIEFSUkFZWydB JywnXyddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJywnQiddKSwKKyAgICAgICAgKDQsIEFSUkFZ WydCJywnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAor ICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2dyZWVkeV92c19yZWx1 Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FCisgICAgICAgIEEg QVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOwor IGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QSxffSB8ICAgICAgICAgICAxIHwgICAgICAg ICA0CisgIDIgfCB7QSxffSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7QSxCfSB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7QixffSB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisoNCByb3dzKQorCistLSBTYW1lIGRhdGEsIHJlbHVjdGFudCBBKz8gZXhpdHMgYXQg cm93IDMgd2hlcmUgQiBpcyBmaXJzdCBhdmFpbGFibGUKK1dJVEggdGVzdF9ncmVlZHlfdnNfcmVs dWN0YW50IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZ WydBJywnXyddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJywnXyddKSwKKyAgICAgICAgKDMsIEFS UkFZWydBJywnQiddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJywnXyddKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX2VuZAorRlJPTSB0ZXN0X2dyZWVkeV92c19yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKEErPyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisg ICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3Rh cnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor ICAxIHwge0EsX30gfCAgICAgICAgICAgMSB8ICAgICAgICAgMworICAyIHwge0EsX30gfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0EsQn0gfCAgICAgICAgICAgICB8ICAgICAgICAg IAorICA0IHwge0IsX30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDQgcm93cykKKworLS0g UmVsdWN0YW50IGdyb3VwOiAoQSBCKSs/IG1hdGNoZXMgbWluaW11bSAxIGl0ZXJhdGlvbgorV0lU SCB0ZXN0X3JlbHVjdGFudF9ncm91cCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisg ICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAg ICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX2VuZAorRlJPTSB0ZXN0X3JlbHVjdGFudF9ncm91cAorV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAo KEEgQikrPykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAg ICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0 IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAg MSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDIKKyAgMiB8IHtCfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDQK KyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg0IHJvd3MpCisKIC0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0gUGF0aG9sb2dpY2FsIFBhdHRlcm4gUnVudGltZSBQcm90ZWN0aW9uCiAtLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAg LTEzODYsNiArMTcyOCwzNyBAQCBXSU5ET1cgdyBBUyAoCiAgIDQgfCB7Qn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCiAoNCByb3dzKQogCistLSBSZWx1Y3RhbnQgbnVsbGFibGU6IEEqPyAo cHJlZmVycyAwIG1hdGNoZXMpCistLSBBKj8gYWx3YXlzIHRha2VzIHNraXAgcGF0aCAoMCBpdGVy YXRpb25zIHByZWZlcnJlZCkKK1dJVEggdGVzdF9yZWx1Y3RhbnRfbnVsbGFibGUgQVMgKAorICAg IFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAg ICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwg QVJSQVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywK KyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxh c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9yZWx1Y3RhbnRfbnVs bGFibGUKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg VE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKj8gQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBB UyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7Cisg aWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtBfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyg0IHJvd3MpCisKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQWx0ZXJuYXRpb24gUnVudGltZSBCZWhhdmlv cgogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CkBAIC0xNTQyLDYgKzE5MTUsMzUgQEAgV0lORE9XIHcgQVMgKAogICAyIHwge18s Q30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAogKDIgcm93cykKIAorLS0gQUxUIHdpdGggcmVs dWN0YW50OiAoQSs/IHwgQispIC0gQSBicmFuY2ggaXMgcmVsdWN0YW50LCBCIGlzIGdyZWVkeS4K Ky0tIFJvdyAxIG1hdGNoZXMgYm90aCBBIGFuZCBCLiBBKz8gZXhpdHMgaW1tZWRpYXRlbHkgKG1h dGNoIDEtMSkuCitXSVRIIHRlc3RfYWx0X3JlbHVjdGFudCBBUyAoCisgICAgU0VMRUNUICogRlJP TSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScsJ0InXSksCisgICAgICAgICgyLCBBUlJB WVsnQicsJ18nXSksCisgICAgICAgICgzLCBBUlJBWVsnQicsJ18nXSkKKyAgICApIEFTIHQoaWQs IGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9lbmQKK0ZST00gdGVzdF9hbHRfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSs/ IHwgQispKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAg ICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQg fCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAx IHwge0EsQn0gfCAgICAgICAgICAgMSB8ICAgICAgICAgMQorICAyIHwge0IsX30gfCAgICAgICAg ICAgMiB8ICAgICAgICAgMworICAzIHwge0IsX30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAor KDMgcm93cykKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLSBEZWVwIE5lc3RlZCBHcm91cHMKIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMTcw NSw2ICsyMTA3LDQwIEBAIFdJTkRPVyB3IEFTICgKICAgOSB8IHtffSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKICg5IHJvd3MpCiAKKy0tIE5lc3RlZCByZWx1Y3RhbnQgZ3JvdXAgKChBIEIp Kz8pIHdpdGggZm9sbG93aW5nIGVsZW1lbnQgQworLS0gSW5uZXIgZ3JvdXAgZXhpdHMgYWZ0ZXIg bWluaW11bSAxIGl0ZXJhdGlvbgorV0lUSCB0ZXN0X25lc3RlZF9yZWx1Y3RhbnQgQVMgKAorICAg IFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAg ICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwg QVJSQVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsnQyddKQorICAgICkgQVMgdChpZCwgZmxh Z3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAorRlJPTSB0ZXN0X25lc3RlZF9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoQSBCKSs/ IEMpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAg QiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7 CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAg ICAgIDUKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtBfSAg IHwgICAgICAgICAgIDMgfCAgICAgICAgIDUKKyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgNSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg1IHJvd3Mp CisKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0gU0tJUCBPcHRpb25zIChSdW50aW1lKQogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xODE5LDYg KzIyNTUsNTMgQEAgT1JERVIgQlkgbW9kZSwgaWQ7CiAgU0tJUCBQQVNUIHwgIDQgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCiAoOCByb3dzKQogCistLSBSZWx1Y3RhbnQgU0tJUCBj b21wYXJpc29uOiBBKz8gd2l0aCBTS0lQIFBBU1QgdnMgU0tJUCBORVhUCitXSVRIIHRlc3RfcmVs dWN0YW50X3NraXAgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwg QVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZ WydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQor KQorU0VMRUNUICdTS0lQIFBBU1QnIEFTIG1vZGUsIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9yZWx1Y3RhbnRfc2tpcAorV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoQSs/KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykK KykKK1VOSU9OIEFMTAorU0VMRUNUICdTS0lQIE5FWFQnIEFTIG1vZGUsIGlkLCBmbGFncywKKyAg ICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9yZWx1Y3RhbnRfc2tpcAor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhU IFJPVworICAgIFBBVFRFUk4gKEErPykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBB TlkoZmxhZ3MpCispCitPUkRFUiBCWSBtb2RlLCBpZDsKKyAgIG1vZGUgICAgfCBpZCB8IGZsYWdz IHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tLS0tLS0tLSstLS0tKy0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFNLSVAgTkVYVCB8ICAxIHwge0F9ICAgfCAgICAgICAg ICAgMSB8ICAgICAgICAgMQorIFNLSVAgTkVYVCB8ICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8 ICAgICAgICAgMgorIFNLSVAgTkVYVCB8ICAzIHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAg ICAgMworIFNLSVAgTkVYVCB8ICA0IHwge199ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor IFNLSVAgUEFTVCB8ICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgMQorIFNLSVAg UEFTVCB8ICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgMgorIFNLSVAgUEFTVCB8 ICAzIHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAgICAgMworIFNLSVAgUEFTVCB8ICA0IHwg e199ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDggcm93cykKKwogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBJ TklUSUFMIE1vZGUgKFJ1bnRpbWUpCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTI0MjgsNiArMjkxMSwzOSBAQCBXSU5E T1cgdyBBUyAoCiAgIDQgfCB7XyxffSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCiAoNCByb3dz KQogCistLSBSZWx1Y3RhbnQgYnJhbmNoIGluIEFMVCBub3QgYWJzb3JiYWJsZTogKEErPykgfCBC CistLSBBKz8gaXMgcmVsdWN0YW50IHNvIG5vdCBhYnNvcmJhYmxlLiBDb21wYXJlIHdpdGggZ3Jl ZWR5IChBKykgfCBCIGFib3ZlLgorV0lUSCB0ZXN0X3JlbHVjdGFudF9hbHRfYWJzb3JwdGlvbiBB UyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAg ICAgICg0LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDUsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0 KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50X2FsdF9hYnNvcnB0aW9uCitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAg UEFUVEVSTiAoKEErPykgfCBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShm bGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwg bWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgMQorICAyIHwge0F9 ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgMgorICAzIHwge0F9ICAgfCAgICAgICAgICAgMyB8 ICAgICAgICAgMworICA0IHwge0J9ICAgfCAgICAgICAgICAgNCB8ICAgICAgICAgNAorICA1IHwg e199ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDUgcm93cykKKwogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBG SVhNRSBJc3N1ZXMgLSBLbm93biBMaW1pdGF0aW9ucwogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbApp bmRleCA3NjkwYzU2MTFjMC4uYTI2MzA3NGUzZTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwci5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbApAQCAtMTI3 MSw2ICsxMjcxLDcgQEAgU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUo cHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUgogICBET1dOIEFTIHByaWNlIDwg UFJFVigxKQogKTsKIAorLS0gUFJFVigxKSBtaXNzaW5nIGNvbHVtbiByZWZlcmVuY2UgKGVycm9y KQogU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIg dywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3CiAgRlJPTSBzdG9jawogIFdJTkRPVyB3IEFTICgK QEAgLTIwNTksMTYgKzIwNjAsMTYgQEAgV0lORE9XIHcgQVMgKAogLS0gRXhwZWN0ZWQ6IDEtNCAo QSBDIEIgQykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIFJFTFVDVEFOVCBxdWFudGlmaWVycyAobm90IHlldCBzdXBwb3J0ZWQpCistLSBSRUxV Q1RBTlQgcXVhbnRpZmllcnMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAKLS0tIFRlc3Q6IEErPyBCIChyZWx1Y3RhbnQpIC0gcGFyc2VyIHJlamVjdHMg d2l0aCBFUlJPUgorLS0gVGVzdDogQSs/IEIgKHJlbHVjdGFudCkgLSBCIGF2YWlsYWJsZSBhdCBy b3cgMywgQSBleGl0cyBlYXJseQogV0lUSCBqYWNvYl9yZWx1Y3RhbnQgQVMgKAogICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUwotICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgyLCBB UlJBWVsnQSddKSwKLSAgICAgICAgKDMsIEFSUkFZWydBJ10pLAotICAgICAgICAoNCwgQVJSQVlb J0InXSkKKyAgICAgICAgKDEsIEFSUkFZWydBJywnXyddKSwKKyAgICAgICAgKDIsIEFSUkFZWydB JywnXyddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJywnQiddKSwKKyAgICAgICAgKDQsIEFSUkFZ WydCJywnXyddKQogICAgICkgQVMgdChpZCwgZmxhZ3MpCiApCiBTRUxFQ1QgaWQsIGZsYWdzLCBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWF0Y2hfZW5kCkBAIC0yMDgyLDE1ICsyMDgzLDE0IEBAIFdJTkRPVyB3IEFTICgKICAg ICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAogICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFn cykKICk7Ci0tLSBFeHBlY3RlZDogRVJST1IgKHJlbHVjdGFudCBxdWFudGlmaWVycyBub3QgeWV0 IHN1cHBvcnRlZCkKIAotLS0gVGVzdDogQXsxLDN9PyBCIChyZWx1Y3RhbnQgYm91bmRlZCkgLSBw YXJzZXIgcmVqZWN0cyB3aXRoIEVSUk9SCistLSBUZXN0OiBBezEsM30/IEIgKHJlbHVjdGFudCBi b3VuZGVkKSAtIHNhbWUgZGF0YSwgYm91bmRlZCBxdWFudGlmaWVyCiBXSVRIIGphY29iX3JlbHVj dGFudF9ib3VuZGVkIEFTICgKICAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKLSAgICAgICAgKDEs IEFSUkFZWydBJ10pLAotICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCi0gICAgICAgICgzLCBBUlJB WVsnQSddKSwKLSAgICAgICAgKDQsIEFSUkFZWydCJ10pCisgICAgICAgICgxLCBBUlJBWVsnQScs J18nXSksCisgICAgICAgICgyLCBBUlJBWVsnQScsJ18nXSksCisgICAgICAgICgzLCBBUlJBWVsn QScsJ0InXSksCisgICAgICAgICg0LCBBUlJBWVsnQicsJ18nXSkKICAgICApIEFTIHQoaWQsIGZs YWdzKQogKQogU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZApAQCAtMjEwNCw3ICsy MTA0LDYgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCiAg ICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUiAocmVs dWN0YW50IHF1YW50aWZpZXJzIG5vdCB5ZXQgc3VwcG9ydGVkKQogCiAtLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gTmVzdGVkIHF1YW50aWZpZXJzIChw YXRob2xvZ2ljYWwgcGF0dGVybnMpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9y cHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKaW5kZXggYjc1 MmFkMTI4NzMuLjk5MmMwODEyMDVhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9y cHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jhc2Uuc3FsCkBAIC03 NjIsNyArNzYyLDcgQEAgT1JERVIgQlkgaWQ7CiAKIERST1AgVEFCTEUgcnByX3F1YW50OwogCi0t LSBSZWx1Y3RhbnQgcXVhbnRpZmllcnMgKG5vdCB5ZXQgc3VwcG9ydGVkKQorLS0gUmVsdWN0YW50 IHF1YW50aWZpZXJzCiBDUkVBVEUgVEFCTEUgcnByX3JlbHVjdGFudCAoaWQgSU5ULCB2YWwgSU5U KTsKIElOU0VSVCBJTlRPIHJwcl9yZWx1Y3RhbnQgVkFMVUVTICgxLCAxMCksICgyLCAyMCksICgz LCAzMCk7CiAKQEAgLTc3NSw3ICs3NzUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo QSo/KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci0tLSBFeHBlY3RlZDogRVJST1I6IHJl bHVjdGFudCBxdWFudGlmaWVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKKy0tIFJlbHVjdGFudCBx dWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIAogLS0gKz8gKG9uZSBvciBtb3JlLCBy ZWx1Y3RhbnQpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC03ODYsNyArNzg2LDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErPykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiAp OwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiByZWx1Y3RhbnQgcXVhbnRpZmllcnMgYXJlIG5vdCB5ZXQg c3VwcG9ydGVkCistLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNo CiAKIC0tID8/ICh6ZXJvIG9yIG9uZSwgcmVsdWN0YW50KQogU0VMRUNUIENPVU5UKCopIE9WRVIg dwpAQCAtNzk3LDcgKzc5Nyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBPz8pCiAg ICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogcmVsdWN0YW50 IHF1YW50aWZpZXJzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAorLS0gUmVsdWN0YW50IHF1YW50aWZp ZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogCiAtLSB7bix9PyAobiBvciBtb3JlLCByZWx1Y3Rh bnQpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC04MDgsNyArODA4LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEF7Mix9PykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwot LS0gRXhwZWN0ZWQ6IEVSUk9SOiByZWx1Y3RhbnQgcXVhbnRpZmllcnMgYXJlIG5vdCB5ZXQgc3Vw cG9ydGVkCistLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCiAK IC0tIHtuLG19PyAobiB0byBtLCByZWx1Y3RhbnQpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBA IC04MTksNyArODE5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7MSwzfT8pCiAg ICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogcmVsdWN0YW50 IHF1YW50aWZpZXJzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAorLS0gUmVsdWN0YW50IHF1YW50aWZp ZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogCiAtLSB7bn0/IChleGFjdGx5IG4sIHJlbHVjdGFu dCkKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKQEAgLTgzMCw3ICs4MzAsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoQXsyfT8pCiAgICAgREVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0t IEV4cGVjdGVkOiBFUlJPUjogcmVsdWN0YW50IHF1YW50aWZpZXJzIGFyZSBub3QgeWV0IHN1cHBv cnRlZAorLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAogCiAt LSB7LG19PyAodXAgdG8gbSwgcmVsdWN0YW50KSAtIENPTVBMRVRFTFkgVU5URVNURUQgUlVMRSEK IFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKQEAgLTg0MSw3ICs4NDEsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQXssM30/KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci0tLSBF eHBlY3RlZDogRVJST1I6IHJlbHVjdGFudCBxdWFudGlmaWVycyBhcmUgbm90IHlldCBzdXBwb3J0 ZWQKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIAogLS0g SW52YWxpZCByZWx1Y3RhbnQgcGF0dGVybnMgKHdyb25nIHRva2VuIGFmdGVyIHF1YW50aWZpZXIp CiAKQEAgLTEwMDIsNyArMTAwMiw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKiA/ KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci0tLSBFeHBlY3RlZDogRVJST1I6IHJlbHVj dGFudCBxdWFudGlmaWVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKKy0tIFJlbHVjdGFudCBxdWFu dGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKIAogLS0gKyA/ICh0b2tlbiBzZXBhcmF0ZWQp CiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC0xMDEzLDcgKzEwMTMsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoQSsgPykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0g RXhwZWN0ZWQ6IEVSUk9SOiByZWx1Y3RhbnQgcXVhbnRpZmllcnMgYXJlIG5vdCB5ZXQgc3VwcG9y dGVkCistLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCiAKIC0t IHsyLH0gPyAodG9rZW4gc2VwYXJhdGVkKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwpAQCAtMTAy NCw3ICsxMDI0LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Mix9ID8pCiAgICAg REVGSU5FIEEgQVMgdmFsID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogcmVsdWN0YW50IHF1 YW50aWZpZXJzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAorLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6 IHByZWZlciBzaG9ydGVzdCBtYXRjaAogCiAtLSBJbnZhbGlkIHRva2VuIGNvbWJpbmF0aW9ucwog CkBAIC0xMDU5LDcgKzEwNTksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQT8gPykK ICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiByZWx1Y3Rh bnQgcXVhbnRpZmllcnMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkCistLSBSZWx1Y3RhbnQgcXVhbnRp ZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCiAKIERST1AgVEFCTEUgcnByX3JlbHVjdGFudDsK IApAQCAtMjI3OCw2ICsyMjc4LDY5IEBAIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJf cGxhbgogV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORwogICAgICAgICAgICAgIFBBVFRFUk4gKChBIHwgQiB8IEMp KSBERUZJTkUgQSBBUyB2YWwgPD0gMzAsIEIgQVMgdmFsIDw9IDYwLCBDIEFTIHZhbCA+IDYwKTsK IAorLS0gUmVsdWN0YW50IG9wdGltaXphdGlvbiBieXBhc3M6IFZBUiBtZXJnZQorLS0gQSs/IEEg c3RheXMgYXMgYSs/IGEgKGdyZWVkeSBBKyBBIG1lcmdlcyB0byBhezIsfSkKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEErPyBBKSBERUZJTkUgQSBBUyB2YWwgPiAw KTsKKworLS0gUmVsdWN0YW50IG9wdGltaXphdGlvbiBieXBhc3M6IEdST1VQIG1lcmdlCistLSAo QSBCKSs/IChBIEIpIHN0YXlzIHNlcGFyYXRlIChncmVlZHkgbWVyZ2VzIHRvIChhIGIpezIsfSkK K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxh bgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBIEIpKz8gKEEgQikp IERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisKKy0tIFJlbHVjdGFudCBv cHRpbWl6YXRpb24gYnlwYXNzOiBxdWFudGlmaWVyIG11bHRpcGx5IChvdXRlciByZWx1Y3RhbnQp CistLSAoQXsyfSl7M30/IHN0YXlzIGFzIChhezJ9KXszfT8gKGdyZWVkeSBtZXJnZXMgdG8gYXs2 fSkKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJf cGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBezJ9KXszfT8p IERFRklORSBBIEFTIHZhbCA+IDApOworCistLSBSZWx1Y3RhbnQgb3B0aW1pemF0aW9uIGJ5cGFz czogcXVhbnRpZmllciBtdWx0aXBseSAoaW5uZXIgcmVsdWN0YW50KQorLS0gKEF7Mn0/KXszfSBz dGF5cyBhcyAoYXsyfT8pezN9IChncmVlZHkgbWVyZ2VzIHRvIGF7Nn0pCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoQXsyfT8pezN9KSBERUZJTkUgQSBBUyB2YWwg PiAwKTsKKworLS0gUmVsdWN0YW50IG9wdGltaXphdGlvbiBieXBhc3M6IFBSRUZJWCBtZXJnZQor LS0gQSBCIChBIEIpKz8gc3RheXMgc2VwYXJhdGUgKGdyZWVkeSBtZXJnZXMgdG8gKGEgYil7Mix9 KQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9w bGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBCIChBIEIpKz8p IERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisKKy0tIFJlbHVjdGFudCBv cHRpbWl6YXRpb24gYnlwYXNzOiBTVUZGSVggbWVyZ2UKKy0tIChBIEIpKz8gQSBCIHN0YXlzIHNl cGFyYXRlIChncmVlZHkgbWVyZ2VzIHRvIChhIGIpezIsfSkKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICAgICAgIFBBVFRFUk4gKChBIEIpKz8gQSBCKSBERUZJTkUgQSBBUyB2YWwgPD0gNTAs IEIgQVMgdmFsID4gNTApOworCistLSBHUk9VUCB1bndyYXAgd2l0aCBxdWFudGlmaWVyIHByb3Bh Z2F0aW9uOiAoQSk/PyBCIC0+IGE/PyBiCistLSBTaW5nbGUgVkFSIGNoaWxkIHsxLDF9IHJlY2Vp dmVzIEdST1VQJ3MgcXVhbnRpZmllciBhbmQgcmVsdWN0YW50CitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICAgICAgICAgICBQQVRURVJOICgoQSk/PyBCKSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIg QVMgdmFsID4gNTApOworCistLSBSZWx1Y3RhbnQgcHJlc2VydmVkIHRocm91Z2ggQUxUIGZsYXR0 ZW4KKy0tIChBIHwgKEIgfCBDKSkrPyBmbGF0dGVucyB0byAoYSB8IGIgfCBjKSs/IC0gaW5uZXIg QUxUIGZsYXR0ZW5lZCwgcmVsdWN0YW50IGtlcHQKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAg ICAgICAgIFBBVFRFUk4gKChBIHwgKEIgfCBDKSkrPykgREVGSU5FIEEgQVMgdmFsIDw9IDMwLCBC IEFTIHZhbCA8PSA2MCwgQyBBUyB2YWwgPiA2MCk7CisKKy0tIFJlbHVjdGFudCBvcHRpbWl6YXRp b24gYnlwYXNzOiBhYnNvcnB0aW9uIGZsYWdzCistLSBBKz8gd2l0aCBTS0lQIFBBU1QgTEFTVCBS T1cgLSBubyBhYnNvcnB0aW9uIG1hcmtlcnMgKGdyZWVkeSBBKyBnZXRzIGErIikKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQ QVRURVJOIChBKz8pIERFRklORSBBIEFTIHZhbCA+IDApOworCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEFic29ycHRp b24gRmxhZyBEaXNwbGF5IFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwcl9uZmEuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX25mYS5zcWwKaW5k ZXggZTk4OTRjZmE2OTEuLjBlODUzY2E3NTNiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHJfbmZhLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbApA QCAtMjMwLDYgKzIzMCwzMSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEIgQVMgJ0InID0gQU5Z KGZsYWdzKQogKTsKIAorLS0gUmVsdWN0YW50IHBhdHRlcm4gKEErPykgLSBub3QgYWJzb3JiYWJs ZQorLS0gQ29tcGFyZSB3aXRoIGdyZWVkeSBBKyBhYm92ZTogcmVsdWN0YW50IGV4Y2x1ZGVkIGZy b20gYWJzb3JwdGlvbi4KKy0tIEVhY2ggY29udGV4dCBwcm9kdWNlcyBtaW5pbXVtIG1hdGNoIGlu ZGVwZW5kZW50bHkuCitXSVRIIHRlc3RfcmVsdWN0YW50X2Fic29ycHRpb24gQVMgKAorICAgIFNF TEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgy LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJS QVlbJ0EnXSksCisgICAgICAgICg1LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3Mp CispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAor RlJPTSB0ZXN0X3JlbHVjdGFudF9hYnNvcnB0aW9uCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSs/KQor ICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7CisKIC0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0gQ29udGV4dCBMaWZlY3ljbGUKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMzMzLDYgKzM1OCwzMSBAQCBXSU5ET1cg dyBBUyAoCiAgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQogKTsKIAorLS0gUmVsdWN0YW50 IGNvbnRleHQgbGlmZWN5Y2xlIChBKz8gQiB3aXRoIFNLSVAgVE8gTkVYVCBST1cpCistLSBBKz8g ZXhpdHMgZWFybHkgYnV0IGlmIEIgbm90IGF2YWlsYWJsZSwgZmFsbHMgYmFjayB0byBsb29wLgor LS0gQ29udGV4dHMgbm90IGFic29yYmVkIChyZWx1Y3RhbnQpLCBzbyBtdWx0aXBsZSBzdXJ2aXZl LgorV0lUSCB0ZXN0X3JlbHVjdGFudF9jb250ZXh0IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChW QUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSks CisgICAgICAgICgzLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDQsIEFSUkFZWydfJ10pCisgICAg KSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50X2NvbnRleHQKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQ QVRURVJOIChBKz8gQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQWR2YW5j ZSBQaGFzZSAoRXBzaWxvbiBUcmFuc2l0aW9ucykKIC0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtNDQ4LDYgKzQ5OCw3OSBA QCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQogKTsKIAorLS0g TWl4ZWQgZ3JlZWR5L3JlbHVjdGFudCBzZXF1ZW5jZTogQSs/IEIrIChyZWx1Y3RhbnQgQSwgZ3Jl ZWR5IEIpCistLSBBIGV4aXRzIGFzIGVhcmx5IGFzIHBvc3NpYmxlLCBCIGNvbnN1bWVzIHRoZSBy ZXN0IGdyZWVkaWx5CitXSVRIIHRlc3RfbWl4ZWRfcmVsdWN0YW50IEFTICgKKyAgICBTRUxFQ1Qg KiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJS QVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQScsJ0InXSksCisgICAgICAgICg0LCBBUlJB WVsnQiddKSwKKyAgICAgICAgKDUsIEFSUkFZWydCJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykK KykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt YXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitG Uk9NIHRlc3RfbWl4ZWRfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKz8gQispCisg ICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAn QicgPSBBTlkoZmxhZ3MpCispOworCistLSBPcHRpb25hbCByZWx1Y3RhbnQgZ3JvdXA6IChBIEIp Pz8gQworLS0gbmZhX2FkdmFuY2VfYmVnaW46IHJlbHVjdGFudCBwcmVmZXJzIHNraXAgKDAgaXRl cmF0aW9ucykgb3ZlciBlbnRlcgorV0lUSCB0ZXN0X29wdGlvbmFsX3JlbHVjdGFudCBBUyAoCisg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0MnXSkKKyAgICApIEFTIHQo aWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt YXRjaF9lbmQKK0ZST00gdGVzdF9vcHRpb25hbF9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKChBIEIpPz8gQykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5Z KGZsYWdzKQorKTsKKworLS0gR3JlZWR5L3JlbHVjdGFudCBzZXF1ZW5jZTogQSsgQis/IChncmVl ZHkgQSwgcmVsdWN0YW50IEIgYXQgZW5kKQorLS0gQSBjb25zdW1lcyBncmVlZGlseSwgQis/IGV4 aXRzIHRvIEZJTiBhZnRlciBtaW5pbXVtIG1hdGNoCitXSVRIIHRlc3RfZ3JlZWR5X3RoZW5fcmVs dWN0YW50IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZ WydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnLCdCJ10pLAorICAgICAgICAoMywgQVJSQVlb J0InXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCisp CitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJP TSB0ZXN0X2dyZWVkeV90aGVuX3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQis/ KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIg QVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBNYXRjaCBQaGFzZQogLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CkBAIC02MjksNiArNzUyLDMwIEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQiBBUyAnQicgPSBB TlkoZmxhZ3MpCiApOwogCistLSBSZWx1Y3RhbnQgd2l0aCBsaW1pdGVkIGZyYW1lIChBKz8gQiB3 aXRoIDIgRk9MTE9XSU5HKQorLS0gUmVsdWN0YW50IGV4aXRzIGVhcmx5LCBCIG11c3QgYmUgd2l0 aGluIGZyYW1lIGJvdW5kYXJ5CitXSVRIIHRlc3RfcmVsdWN0YW50X2ZyYW1lIEFTICgKKyAgICBT RUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAo MiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDQsIEFS UkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisg ICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50X2ZyYW1l CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIDIgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwor ICAgIFBBVFRFUk4gKEErPyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShm bGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKwogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBT dGF0ZSBNYW5hZ2VtZW50CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTY1Nyw2ICs4MDQsMjkgQEAgV0lORE9XIHcgQVMg KAogICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncykKICk7CiAKKy0tIFJlbHVjdGFudCBkdXBs aWNhdGUgc3RhdGUgaGFuZGxpbmcKKy0tIChBKz8gfCBCKz8pIGNyZWF0ZXMgZXhpdCBhbmQgbG9v cCBzdGF0ZXM7IGV4aXQgcGF0aHMgbWF5IGNvbnZlcmdlCitXSVRIIHRlc3RfcmVsdWN0YW50X2Rl ZHVwIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydB JywnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJywnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZ WydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAg ICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50X2RlZHVwCitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQg Uk9XCisgICAgUEFUVEVSTiAoKEErPyB8IEIrPykpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMg J0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCiAt LSBMYXJnZSBwYXR0ZXJuIChzdHJlc3MgZnJlZSBsaXN0KQogV0lUSCB0ZXN0X2xhcmdlX3BhdHRl cm4gQVMgKAogICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwpAQCAtNzkwLDYgKzk2MCwzMSBAQCBX SU5ET1cgdyBBUyAoCiAgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQogKTsKIAorLS0gUmVs dWN0YW50IG5vdCBhYnNvcmJlZCAoQSs/IHdpdGggU0tJUCBUTyBORVhUIFJPVykKKy0tIENvbXBh cmUgd2l0aCBncmVlZHkgQSsgYmVsb3c6IHJlbHVjdGFudCBpcyBub3QgYWJzb3JiYWJsZSwKKy0t IHNvIGFsbCBjb250ZXh0cyBzdXJ2aXZlIGluZGVwZW5kZW50bHkuCitXSVRIIHRlc3RfcmVsdWN0 YW50X3N0YXRzIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFS UkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsn QSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydBJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ18nXSkK KyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9yZWx1Y3RhbnRfc3RhdHMKK1dJTkRPVyB3 IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAg ICBQQVRURVJOIChBKz8pCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdz KQorKTsKKwogLS0gQWJzb3JiZWQgY29udGV4dHMKIFdJVEggdGVzdF9hYnNvcmJlZCBBUyAoCiAg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCkBAIC05MzQsNiArMTEyOSw3NSBAQCBXSU5ET1cgdyBB UyAoCiAgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQogKTsKIAorLS0gR3JlZWR5IHZzIHJl bHVjdGFudDogQSsgbWF0Y2hlcyBhbGwgcm93cywgQSs/IG1hdGNoZXMgbWluaW11bQorV0lUSCB0 ZXN0X2dyZWVkeV92c19yZWx1Y3RhbnQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwor ICAgICAgICAoMSwgQVJSQVlbJ0EnLCdfJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnLCdfJ10p LAorICAgICAgICAoMywgQVJSQVlbJ0EnLCdCJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InLCdf J10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAg Zmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfZ3JlZWR5X3ZzX3JlbHVjdGFudAor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScg PSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIFNh bWUgZGF0YSwgcmVsdWN0YW50IEErPyBleGl0cyBhdCByb3cgMyB3aGVyZSBCIGlzIGZpcnN0IGF2 YWlsYWJsZQorV0lUSCB0ZXN0X2dyZWVkeV92c19yZWx1Y3RhbnQgQVMgKAorICAgIFNFTEVDVCAq IEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnLCdfJ10pLAorICAgICAgICAoMiwg QVJSQVlbJ0EnLCdfJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnLCdCJ10pLAorICAgICAgICAo NCwgQVJSQVlbJ0InLCdfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwg ZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAg ICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfZ3JlZWR5 X3ZzX3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSs/IEIpCisgICAgREVGSU5FCisg ICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxh Z3MpCispOworCistLSBSZWx1Y3RhbnQgZ3JvdXA6IChBIEIpKz8gbWF0Y2hlcyBtaW5pbXVtIDEg aXRlcmF0aW9uCitXSVRIIHRlc3RfcmVsdWN0YW50X2dyb3VwIEFTICgKKyAgICBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlb J0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10p CisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmly c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50X2dyb3VwCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOICgoQSBCKSs/KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFO WShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKwogLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LSBQYXRob2xvZ2ljYWwgUGF0dGVybiBSdW50aW1lIFByb3RlY3Rpb24KIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtOTg0 LDYgKzEyNDgsMzAgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFn cykKICk7CiAKKy0tIFJlbHVjdGFudCBudWxsYWJsZTogQSo/IChwcmVmZXJzIDAgbWF0Y2hlcykK Ky0tIEEqPyBhbHdheXMgdGFrZXMgc2tpcCBwYXRoICgwIGl0ZXJhdGlvbnMgcHJlZmVycmVkKQor V0lUSCB0ZXN0X3JlbHVjdGFudF9udWxsYWJsZSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFM VUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAor ICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnXyddKQorICAgICkg QVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3JlbHVjdGFudF9udWxsYWJsZQorV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBB VFRFUk4gKEEqPyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyks CisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKwogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBBbHRlcm5h dGlvbiBSdW50aW1lIEJlaGF2aW9yCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTExMDIsNiArMTM5MCwyOSBAQCBXSU5E T1cgdyBBUyAoCiAgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKQogKTsKIAorLS0gQUxUIHdp dGggcmVsdWN0YW50OiAoQSs/IHwgQispIC0gQSBicmFuY2ggaXMgcmVsdWN0YW50LCBCIGlzIGdy ZWVkeS4KKy0tIFJvdyAxIG1hdGNoZXMgYm90aCBBIGFuZCBCLiBBKz8gZXhpdHMgaW1tZWRpYXRl bHkgKG1hdGNoIDEtMSkuCitXSVRIIHRlc3RfYWx0X3JlbHVjdGFudCBBUyAoCisgICAgU0VMRUNU ICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScsJ0InXSksCisgICAgICAgICgy LCBBUlJBWVsnQicsJ18nXSksCisgICAgICAgICgzLCBBUlJBWVsnQicsJ18nXSkKKyAgICApIEFT IHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hbHRfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO ICgoQSs/IHwgQispKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyks CisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKwogLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBEZWVwIE5l c3RlZCBHcm91cHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpAQCAtMTIyMCw2ICsxNTMxLDMyIEBAIFdJTkRPVyB3IEFTICgK ICAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCiApOwogCistLSBOZXN0ZWQgcmVsdWN0YW50 IGdyb3VwICgoQSBCKSs/KSB3aXRoIGZvbGxvd2luZyBlbGVtZW50IEMKKy0tIElubmVyIGdyb3Vw IGV4aXRzIGFmdGVyIG1pbmltdW0gMSBpdGVyYXRpb24KK1dJVEggdGVzdF9uZXN0ZWRfcmVsdWN0 YW50IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydB J10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0MnXSkKKyAgICAp IEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9uZXN0ZWRfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFU VEVSTiAoKEEgQikrPyBDKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFn cyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBB TlkoZmxhZ3MpCispOworCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFNLSVAgT3B0aW9ucyAoUnVudGltZSkKIC0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpAQCAtMTMwOCw2ICsxNjQ1LDQyIEBAIFdJTkRPVyB3IEFTICgKICkKIE9SREVSIEJZIG1vZGUs IGlkOwogCistLSBSZWx1Y3RhbnQgU0tJUCBjb21wYXJpc29uOiBBKz8gd2l0aCBTS0lQIFBBU1Qg dnMgU0tJUCBORVhUCitXSVRIIHRlc3RfcmVsdWN0YW50X3NraXAgQVMgKAorICAgIFNFTEVDVCAq IEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJB WVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ18n XSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUICdTS0lQIFBBU1QnIEFTIG1vZGUs IGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0 LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9y ZWx1Y3RhbnRfc2tpcAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSs/KQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKykKK1VOSU9OIEFMTAorU0VMRUNUICdTS0lQIE5F WFQnIEFTIG1vZGUsIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQK K0ZST00gdGVzdF9yZWx1Y3RhbnRfc2tpcAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErPykKKyAgICBE RUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpCispCitPUkRFUiBCWSBtb2RlLCBp ZDsKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLSBJTklUSUFMIE1vZGUgKFJ1bnRpbWUpCiAtLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTE3OTEs NiArMjE2NCwzMSBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdz KQogKTsKIAorLS0gUmVsdWN0YW50IGJyYW5jaCBpbiBBTFQgbm90IGFic29yYmFibGU6IChBKz8p IHwgQgorLS0gQSs/IGlzIHJlbHVjdGFudCBzbyBub3QgYWJzb3JiYWJsZS4gQ29tcGFyZSB3aXRo IGdyZWVkeSAoQSspIHwgQiBhYm92ZS4KK1dJVEggdGVzdF9yZWx1Y3RhbnRfYWx0X2Fic29ycHRp b24gQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0En XSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAor ICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsnXyddKQorICAgICkg QVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3JlbHVjdGFudF9hbHRfYWJzb3JwdGlvbgorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwor ICAgIFBBVFRFUk4gKChBKz8pIHwgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBB TlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKIC0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0gRklYTUUgSXNzdWVzIC0gS25vd24gTGltaXRhdGlvbnMKIC0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLSAKMi41MC4xIChB cHBsZSBHaXQtMTU1KQoK --0000000000002ea9a9064b87cec3 Content-Type: application/octet-stream; name="nocfbot-0006-allow-a0-quantifier.patch" Content-Disposition: attachment; filename="nocfbot-0006-allow-a0-quantifier.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlzx6jef5 RnJvbSAyZGI3NjliMzhiYjRiMzM5ZjU3YTlkMmNmZjZiZGQ4ZjEzMDVjNTUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDIzIEZlYiAyMDI2IDE0OjU2OjQyICswOTAwClN1YmplY3Q6IFtQQVRDSCA2LzZdIEFs bG93IEF7MH0gcXVhbnRpZmllcgoKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93 QWdnLmMgICB8ICA3ICsrKysrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAg ICAgIHwgIDggKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQg fCAyOSArKysrKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X2Jhc2Uuc3FsICAgICAgfCAgOCArKystLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlv bnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpp bmRleCA5ODU0NmZiMTdmNy4uNzJkZWQ1ZWZjMWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2lu ZG93QWdnLmMKQEAgLTYwNzAsNiArNjA3MCwxMyBAQCBuZmFfcm91dGVfdG9fZWxlbShXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIHsKIAlpZiAoUlBSRWxlbUlz VmFyKG5leHRFbGVtKSkKIAl7CisJCWlmIChuZXh0RWxlbS0+bWF4ID09IDApCisJCXsKKwkJCS8q IG1heD0wOiB2YXJpYWJsZSBuZXZlciBtYXRjaGVzLCB0cmVhdCBhcyBlcHNpbG9uIHRyYW5zaXRp b24gKi8KKwkJCXN0YXRlLT5lbGVtSWR4ID0gbmV4dEVsZW0tPm5leHQ7CisJCQluZmFfYWR2YW5j ZV9zdGF0ZSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgY3VycmVudFBvcywgaW5pdGlhbEFkdmFuY2Up OworCQkJcmV0dXJuOworCQl9CiAJCW5mYV9hZGRfc3RhdGVfdW5pcXVlKHdpbnN0YXRlLCBjdHgs IHN0YXRlKTsKIAkJaWYgKFJQUkVsZW1DYW5Ta2lwKG5leHRFbGVtKSkKIAkJewpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK aW5kZXggNWEzZDE0MWU5OTIuLjE3NTAzYjM4ZTNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTE3MDcwLDEw ICsxNzA3MCwxMCBAQCByb3dfcGF0dGVybl9xdWFudGlmaWVyX29wdDoKIAkJCS8qIHtufSwge24s fSwgeyxtfSwge24sbX0gcXVhbnRpZmllcnMgKi8KIAkJCXwgJ3snIEljb25zdCAnfScKIAkJCQl7 Ci0JCQkJCWlmICgkMiA8PSAwIHx8ICQyID49IElOVF9NQVgpCisJCQkJCWlmICgkMiA8IDAgfHwg JDIgPj0gSU5UX01BWCkKIAkJCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkJCWVycmNvZGUoRVJS Q09ERV9TWU5UQVhfRVJST1IpLAotCQkJCQkJCQllcnJtc2coInF1YW50aWZpZXIgYm91bmQgbXVz dCBiZSBiZXR3ZWVuIDEgYW5kICVkIiwgSU5UX01BWCAtIDEpLAorCQkJCQkJCQllcnJtc2coInF1 YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kICVkIiwgSU5UX01BWCAtIDEpLAog CQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDIpKTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBtYWtl UlBSUXVhbnRpZmllcigkMiwgJDIsIC0xLCBAMSwgeXlzY2FubmVyKTsKIAkJCQl9CkBAIC0xNzEx OCwxMCArMTcxMTgsMTAgQEAgcm93X3BhdHRlcm5fcXVhbnRpZmllcl9vcHQ6CiAJCQkJCQkJCSBl cnJtc2coImludmFsaWQgdG9rZW4gYWZ0ZXIgcmFuZ2UgcXVhbnRpZmllciIpLAogCQkJCQkJCQkg ZXJyaGludCgiT25seSBcIj9cIiBpcyBhbGxvd2VkIGFmdGVyIHtufSB0byBtYWtlIGl0IHJlbHVj dGFudC4iKSwKIAkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihANCkpKTsKLQkJCQkJaWYgKCQy IDw9IDAgfHwgJDIgPj0gSU5UX01BWCkKKwkJCQkJaWYgKCQyIDwgMCB8fCAkMiA+PSBJTlRfTUFY KQogCQkJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9F UlJPUiksCi0JCQkJCQkJCWVycm1zZygicXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4g MSBhbmQgJWQiLCBJTlRfTUFYIC0gMSksCisJCQkJCQkJCWVycm1zZygicXVhbnRpZmllciBib3Vu ZCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgJWQiLCBJTlRfTUFYIC0gMSksCiAJCQkJCQkJCXBhcnNl cl9lcnJwb3NpdGlvbihAMikpOwogCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVy KCQyLCAkMiwgQDQsIEAxLCB5eXNjYW5uZXIpOwogCQkJCX0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ycHJfYmFzZS5vdXQKaW5kZXggNDNlZWEzMjEzMGYuLjdkZjcxYWFhOTA0IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dApAQCAtOTIzLDcgKzkyMyw3IEBAIE9SREVSIEJZ IGlkOwogKDEwIHJvd3MpCiAKIC0tIEVkZ2UgY2FzZSBxdWFudGlmaWVycwotLS0gezB9IGlzIG5v dCBhbGxvd2VkIChtaW4gbXVzdCBiZSA+PSAxKQorLS0gezB9IGFsd2F5cyBza2lwcyB0aGUgdmFy aWFibGUgKHplcm8gaXRlcmF0aW9ucykKIFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcg YXMgY250CiBGUk9NIHJwcl9xdWFudAogV0lORE9XIHcgQVMgKApAQCAtOTMzLDEwICs5MzMsMjEg QEAgV0lORE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIHZhbCA+IDEwMDAsIEIgQVMgdmFsID4g MAogKQogT1JERVIgQlkgaWQ7Ci1FUlJPUjogIHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3 ZWVuIDEgYW5kIDIxNDc0ODM2NDYKLUxJTkUgNjogICAgIFBBVFRFUk4gKEF7MH0gQikKLSAgICAg ICAgICAgICAgICAgICAgICAgXgotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBxdWFudGlmaWVyIGJvdW5k IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMTQ3NDgzNjQ2CisgaWQgfCB2YWwgfCBjbnQgCistLS0t Ky0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDEKKyAgMiB8ICAyMCB8ICAgMQorICAzIHwgIDMw IHwgICAxCisgIDQgfCAgNDAgfCAgIDEKKyAgNSB8ICA1MCB8ICAgMQorICA2IHwgIDYwIHwgICAx CisgIDcgfCAgNzAgfCAgIDEKKyAgOCB8ICA4MCB8ICAgMQorICA5IHwgIDkwIHwgICAxCisgMTAg fCAxMDAgfCAgIDEKKygxMCByb3dzKQorCistLSBFeHBlY3RlZDogQXswfSBza2lwcyBBLCBvbmx5 IEIgbWF0Y2hlcyBlYWNoIHJvdwogLS0gezAsMH0gaXMgbm90IGFsbG93ZWQgKG1heCBtdXN0IGJl ID49IDEpCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAogRlJPTSBycHJf cXVhbnQKQEAgLTEyNzQsMTAgKzEyODUsMTAgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KEF7MjE0NzQ4MzY0N30/KQogICAgIERFRklORSBBIEFTIHZhbCA+IDAKICk7Ci1FUlJPUjogIHF1 YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYKK0VSUk9SOiAg cXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjE0NzQ4MzY0NgogTElORSA2 OiAgICAgUEFUVEVSTiAoQXsyMTQ3NDgzNjQ3fT8pCiAgICAgICAgICAgICAgICAgICAgICAgIF4K LS0tIEV4cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBh bmQgMjE0NzQ4MzY0NgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBxdWFudGlmaWVyIGJvdW5kIG11c3Qg YmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2CiAtLSB7LTEsfT8gKG5lZ2F0aXZlIGxvd2VyIGJv dW5kKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdwogRlJPTSBycHJfcmVsdWN0YW50CkBAIC0xNTM3 LDEwICsxNTQ4LDEwIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezIxNDc0ODM2NDd9 KQogICAgIERFRklORSBBIEFTIGlkID4gMAogKTsKLUVSUk9SOiAgcXVhbnRpZmllciBib3VuZCBt dXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgorRVJST1I6ICBxdWFudGlmaWVyIGJvdW5k IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2CiBMSU5FIDY6ICAgICBQQVRURVJOIChB ezIxNDc0ODM2NDd9KQogICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBFeHBlY3RlZDogRVJS T1I6IHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYKKy0t IEV4cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMCBhbmQg MjE0NzQ4MzY0NgogLS0ge24sfSBib3VuZGFyeSBlcnJvcnMKIC0tIE5lZ2F0aXZlIGxvd2VyIGJv dW5kIGluIHtuLH0KIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNl LnNxbAppbmRleCA5OTJjMDgxMjA1YS4uZDI1Y2EwN2FkYWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJf YmFzZS5zcWwKQEAgLTY3Myw3ICs2NzMsNyBAQCBPUkRFUiBCWSBpZDsKIAogLS0gRWRnZSBjYXNl IHF1YW50aWZpZXJzCiAKLS0tIHswfSBpcyBub3QgYWxsb3dlZCAobWluIG11c3QgYmUgPj0gMSkK Ky0tIHswfSBhbHdheXMgc2tpcHMgdGhlIHZhcmlhYmxlICh6ZXJvIGl0ZXJhdGlvbnMpCiBTRUxF Q1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAogRlJPTSBycHJfcXVhbnQKIFdJTkRP VyB3IEFTICgKQEAgLTY4Myw3ICs2ODMsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgREVGSU5FIEEg QVMgdmFsID4gMTAwMCwgQiBBUyB2YWwgPiAwCiApCiBPUkRFUiBCWSBpZDsKLS0tIEV4cGVjdGVk OiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0 NgorLS0gRXhwZWN0ZWQ6IEF7MH0gc2tpcHMgQSwgb25seSBCIG1hdGNoZXMgZWFjaCByb3cKIAog LS0gezAsMH0gaXMgbm90IGFsbG93ZWQgKG1heCBtdXN0IGJlID49IDEpCiBTRUxFQ1QgaWQsIHZh bCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudApAQCAtOTExLDcgKzkxMSw3IEBAIFdJTkRPVyB3IEFT ICgKICAgICBQQVRURVJOIChBezIxNDc0ODM2NDd9PykKICAgICBERUZJTkUgQSBBUyB2YWwgPiAw CiApOwotLS0gRXhwZWN0ZWQ6IEVSUk9SOiBxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2Vl biAxIGFuZCAyMTQ3NDgzNjQ2CistLSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZpZXIgYm91bmQg bXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIxNDc0ODM2NDYKIAogLS0gey0xLH0/IChuZWdhdGl2ZSBs b3dlciBib3VuZCkKIFNFTEVDVCBDT1VOVCgqKSBPVkVSIHcKQEAgLTExMTgsNyArMTExOCw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezIxNDc0ODM2NDd9KQogICAgIERFRklORSBB IEFTIGlkID4gMAogKTsKLS0tIEV4cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0 IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBxdWFudGlm aWVyIGJvdW5kIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2CiAKIC0tIHtuLH0gYm91 bmRhcnkgZXJyb3JzCiAKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --0000000000002ea9a9064b87cec3--