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 1vcdfJ-009CFl-0x for pgsql-hackers@arkaria.postgresql.org; Mon, 05 Jan 2026 06:02:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vcdfH-00HYgx-0f for pgsql-hackers@arkaria.postgresql.org; Mon, 05 Jan 2026 06:02:04 +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 1vcdfF-00HYgj-2P for pgsql-hackers@lists.postgresql.org; Mon, 05 Jan 2026 06:02:03 +0000 Received: from mail-ua1-x92b.google.com ([2607:f8b0:4864:20::92b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vcdey-004Gzl-32 for pgsql-hackers@lists.postgresql.org; Mon, 05 Jan 2026 06:02:01 +0000 Received: by mail-ua1-x92b.google.com with SMTP id a1e0cc1a2514c-9371f6f2813so2958709241.0 for ; Sun, 04 Jan 2026 22:01:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767592904; x=1768197704; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=UU7hr0iieZTz09eNGsY4Hkz0X7uhbMrg5lwNkT5+tq4=; b=KPOw4E2nUUNxQqi7c2WDYj+NKfTK0nK081vfyf7j/SQjci9rv+xhd6GoMHV8Mpnog+ qW/oOLsBqQbTlTwVlCigobTIb3XeOO+ae2W1xgnlxmXWonykYWB2ddgY/XTtGKUeyGKo 8yglIICLhyuQI4kHgIuU+b/Gc1si+5Dbc1S9pyWk0G03w+jvf2bl+Hjx1jIxKbnVoQSy EpnXJV+w1FzkL6lLUD7Og7UhBmeY3o8/EqzEpReLWowfQHjLNxPJNCfQp5YEOkc9IsJD EFWOoaUHtGBzvtxzRt4wK90pjQzsvEWfuZhe5QWJfRdKra+Ozkf8ziRFRgbXIVGagRRE xu6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767592904; x=1768197704; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=UU7hr0iieZTz09eNGsY4Hkz0X7uhbMrg5lwNkT5+tq4=; b=nIYKOjYZBMyNDNf9BtpvJVFftBM1s2BmGcgA2itlDu1UR4GCvlq2xZL+SOr+rAjets C/stOmpDneiX2NIQSEKOv/BwEUAP1m6DjoX9tgMDoQZaI0O34RWJv0HWcu+S5RTG3s71 AEukZbxK4lwWi+LvV0zED6Gl4y0xNyu5rNv1yUfCYTiNEhf0zrRzOPFr8gOdw6C0yYT7 ZB1R/YbbKMxf12gnVTZ2B8CHJDWmS3awwVAK8Hbg2vU6tHTl/LtHYxnkJqIpqZkKHIxr KTOsAWIfCuCXMngqVcxyFnOUPrbHVicXcOei5iNSVAO0GDMNNLpnDe1K5U2lUNPhJY9N zJxg== X-Forwarded-Encrypted: i=1; AJvYcCUfeT9j3prwPAJdNou3ghyUZQ14G2zgExzTvkcnvz2NbdjQEWJpWys5IEZZFEEjWHmB+2x0hLtUOx2bCrJl@lists.postgresql.org X-Gm-Message-State: AOJu0YwdDZuX4ic/4AHefutU8gvpf1T+QdAOTLVBeCG1q/OYQf1NaFo9 2Mfhc6YD+xjwS/yczRmRJKZ6RQIed4alwPuZ9Ebwvh/JzpRJ3pEoXJ66euXbO3i3HPy74MrzIxa QhWiCHepFJLb8n232UO4kkE7siYpSUcM= X-Gm-Gg: AY/fxX6COxymRP/s8rGVeBC08huQ1Av/A9ncAkgyKfUGOaIWNm1hrVuup4vf1mGIDxD 4nQfKe6gmYo59XHsjoO+wYoEprA9V3uzx8jxQtM8mbLIUXZFCili+CO7vUeXmmRpfBRTj3y0RL1 eaNKXUzfQ1O3vBxd/BNPfKVv9MwlE3+Y9jtTtQV5qGeDECX8ho8CgxDLlfv/HnhxXDIahTAs0pH lz5ND/RJWfV000+shgKtEiVyeBjnU/krbH2t51p/DHn+8gP+HymKTJvFOsfS3q1nIlj/v95FoaV EhiHqNXsJByp/QHabKkG8n7T6oNYTBdOz7ZAjjhXUiq4sN/YPKh8GHRNegcPp4r6Rh50htyPr0g upLgEnP/TtAaxhtrmlQWrqqPvNoJE1k9MkNmLRspeZNe8FWTyl5hucKdr5SPtCJlGGYBgW+1L+1 XRpH9OgxL+GQ== X-Google-Smtp-Source: AGHT+IGRaEuwDz4bS+IhX9FrDVM9eLh/Kl+mBOT+jLNTj3LMpEi0iH5SDqQbBPvmaAB+UsA0RXhKLrxwtEsDogZjf4s= X-Received: by 2002:a05:6102:32c5:b0:5db:3111:9330 with SMTP id ada2fe7eead31-5eb1a7c449dmr14208180137.27.1767592903522; Sun, 04 Jan 2026 22:01:43 -0800 (PST) MIME-Version: 1.0 References: <04afcd1f-ed7d-4c0a-add1-50e3719ccbf9@postgresfriends.org> <762ae707-7fdc-43d8-a77a-3a10d12ce21d@postgresfriends.org> In-Reply-To: From: jian he Date: Mon, 5 Jan 2026 14:01:02 +0800 X-Gm-Features: AQt7F2oGFXuIvNrBbsbaPdi93TVErRGU5n0f7yc7b3BE7sa8AxI7QfsM-M-fi-s Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Amul Sul Cc: Kirill Reshke , Corey Huinker , Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000001f7b4b06479dcb39" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001f7b4b06479dcb39 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Jan 2, 2026 at 2:08=E2=80=AFPM Amul Sul wrote: > > Hi, > > I am still thinking through a design that avoids having two different > code paths for type casting. Can't we avoid adding a new SafeTypeCast > structure by simply adding a raw_default variable (name could be > simply default) to the existing TypeCast structure? If we do that, we > would need to update transformTypeCast() and other places (like > ExecInterpExpr()) to handle the raw_default. This approach would allow > us to avoid the extra code required for a new node structure (e.g., > T_SafeTypeCastExpr) and a separate EEOP_SAFETYPE_CAST step. > Hi. transformTypeCast transforms a TypeCast node and may produce one of the following nodes: FuncExpr, CollateExpr, CoerceToDomain, ArrayCoerceExpr, or CoerceViaIO. To avoid EEOP_SAFETY_CAST, the returned node would need an additional field to store the transformed DEFAULT expression. This implies adding such a field to the aforementioned node types; otherwis= e, the information about the transformed default expression would be lost. However, adding an extra field to nodes such as FuncExpr seems not doable. It is not generally applicable to FuncExpr, but rather only relevant to a specific usage scenario. In addition, it may introduce unnecessary overhead= . T_SafeTypeCastExpr is still needed for holding the transformed cast express= ion and default expression, I think. However, we can add a field to node TypeCast for the raw default expression= . transformTypeSafeCast seems not needed, so I consolidated the parsing analysis into transformTypeCast. > Here are few other comments: > > vv16-0019: > > +float8_div_safe(const float8 val1, const float8 val2, struct Node *escon= text) > > Patches show an inconsistent use of Node* and struct Note * for the > escontext argument. I suggest standardising on Note * to maintain > consistency throughout the code. > -- > This inconsistency already exists in the codebase, we already have many files using "struct Node *escontext". I guess the reason is to avoid "#include "nodes/nodes.h" in src/include/utils/float.h > v16-0020: > > @@ -839,7 +839,7 @@ box_distance(PG_FUNCTION_ARGS) > box_cn(&a, box1); > box_cn(&b, box2); > > - PG_RETURN_FLOAT8(point_dt(&a, &b)); > + PG_RETURN_FLOAT8(point_dt(&a, &b, NULL)); > > I think user-callable functions that accept PG_FUNCTION_ARGS; > should directly pass fcinfo->context instead of NULL. > -- > This seems overall good for me. since next time, if we want other functions to be error safe, we don't need to do this again. > v16-0022: > > +Sometimes a type cast may fail; to avoid such fail case, an > ON ERROR clause can be > .. > + default expression in ON > ERROR clause. > > Shouldn't it be ON CONVERSION ERROR instead of ON ERROR ? > -- > ON CONVERSION ERROR is ok for me. > + state->escontext =3D makeNode(ErrorSaveContext); > + state->escontext->type =3D T_ErrorSaveContext; > + state->escontext->error_occurred =3D false; > + state->escontext->details_wanted =3D false; > > No need to assign values to the rest of the escontext members; > makeNode(ErrorSaveContext) is sufficient. I also think > ExecInitExprSafe() should receive escontext from the caller. Instead > of passing an error_safe boolean to evaluate_expr, you can pass the > escontext itself; this can then be passed down to ExecInitExprSafe, > helping capture soft error information at a much higher level. > > In that way, you can simply call ExecInitExprSafe() from > ExecInitExpr() and pass NULL for the escontext. This reduces code > duplication, since most of the code is similar except for the > aforementioned initialization lines. > now i changed it to: ExprState * ExecInitExpr(Expr *node, PlanState *parent) { return ExecInitExprExtended(node, NULL, parent); } ExprState * ExecInitExprExtended(Expr *node, Node *escontext, PlanState *parent) -- jian https://www.enterprisedb.com/ --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="UTF-8"; name="v17-0022-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Disposition: attachment; filename="v17-0022-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4s31 RnJvbSBiNTk0ZDJhNDEyNThlODI4YzU5NTM3MzNkNDdjMTlhNmYxZjM2ZTAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNSBKYW4gMjAyNiAxMjo1ODo0MSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDIyLzIzXSBDQVNUKGV4cHIgQVMgbmV3dHlwZSBERUZBVUxUIE9OIEVSUk9SKQoKIyBCdW1wcyBj YXR2ZXJzaW9uIHJlcXVpcmVkCgoqIFdpdGggdGhpcyBwYXRjaHNldCwgbW9zdCBmdW5jdGlvbnMg aW4gcGdfY2FzdC5jYXN0ZnVuYyBhcmUgbm93IGVycm9yLXNhZmUuCiogQ29lcmNlVmlhSU8gYW5k IENvZXJjZVRvRG9tYWluIHdlcmUgYWxyZWFkeSBlcnJvci1zYWZlIGluIHRoZSBIRUFELgoqIHRo aXMgcGF0Y2ggZXh0ZW5kcyBlcnJvci1zYWZlIGJlaGF2aW9yIHRvIEFycmF5Q29lcmNlRXhwci4K KiBXZSBhbHNvIGVuc3VyZSB0aGF0IHdoZW4gYSBjb2VyY2lvbiBmYWlscywgZXhlY3V0aW9uIGZh bGxzIGJhY2sgdG8gZXZhbHVhdGluZwp0aGUgc3BlY2lmaWVkIGRlZmF1bHQgbm9kZS4KKiBUaGUg ZG9jIGhhcyBiZWVuIHJlZmluZWQsIHRob3VnaCBpdCBtYXkgc3RpbGwgbmVlZCBtb3JlIHJldmll dy4KCmRlbW86ClNFTEVDVCBDQVNUKCcxJyBBUyBkYXRlICBERUZBVUxUICcyMDExLTAxLTAxJyBP TiBFUlJPUiksCiAgICAgICBDQVNUKCd7MjM0LGRlZiw1Njd9Jzo6dGV4dFtdIEFTIGludGVnZXJb XSBERUZBVUxUICd7LTEwMTF9JyBPTiBFUlJPUik7CgogICAgZGF0ZSAgICB8ICBpbnQ0Ci0tLS0t LS0tLS0tLSstLS0tLS0tLS0KIDIwMTEtMDEtMDEgfCB7LTEwMTF9CgpbMF06IGh0dHBzOi8vZ2l0 LnBvc3RncmVzcWwub3JnL2NnaXQvcG9zdGdyZXNxbC5naXQvY29tbWl0Lz9pZD1hYWFmOTQ0OWVj NmJlNjJjYjBkMzBlZDM1ODhkYzM4NGY1NjI3NGIKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdy LmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhR QG1haWwuZ21haWwuY29tCi0tLQogY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dCAg ICAgICAgICAgIHwgICA1ICsKIGNvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dCAg ICAgICAgICB8ICAgNSArCiBjb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbCAgICAgICAgICAg ICAgICAgfCAgIDIgKwogLi4uL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0 ICAgIHwgIDIzICstCiBjb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbCAg ICAgfCAgIDUgKwogZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sICAgICAgICAgICAgICAgICAgICAg IHwgIDMzICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8 ICA4NiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgICAgIHwg IDI5ICsKIHNyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICAy NyArCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgNTMg KysKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgICAgICB8ICA0OSAr LQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDIzICsK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgOSArCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMgICAgICAgICAgICAgfCAgNzcgKy0KIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8IDM3OSArKysrKysr LQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgICAgIHwgICAzICsK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMgICAgICAgICAgICAgICB8ICAxNCArCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgIDIgKy0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMgICAgICAgICAgICB8ICAgOCArCiBzcmMv YmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgICAgICAgICAgICAgfCAgMjEgKwogc3JjL2Jh Y2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgICAgICAgICAgICAgICAgIHwgIDE0ICsKIHNyYy9pbmNs dWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUv Zm1nci5oICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAyMSArCiBzcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgIDM2ICsKIHNyYy9pbmNsdWRlL29wdGltaXpl ci9vcHRpbWl6ZXIuaCAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX2NvZXJjZS5oICAgICAgICAgICAgIHwgIDEzICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9ub2RlLmggICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf dHlwZS5oICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9j YXN0Lm91dCAgICAgICAgICAgIHwgODEwICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQgICAgIHwgICA1ICsKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQgICAgICB8ICAgNyArCiBzcmMvdGVzdC9yZWdyZXNz L3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2Nhc3Quc3FsICAgICAgICAgICAgICAgICB8IDM1MCArKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2VxdWl2Y2xhc3Muc3FsICAgICAgICAgICB8ICAgMyArCiBzcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDIgKwogMzkgZmlsZXMgY2hhbmdlZCwg MjA3NSBpbnNlcnRpb25zKCspLCA2MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9l eHBlY3RlZC9jaXRleHQub3V0IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dApp bmRleCA4YzBiZjU0ZjBmMy4uMzNkYTE5ZDhkZjQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0 L2V4cGVjdGVkL2NpdGV4dC5vdXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0 Lm91dApAQCAtMTAsNiArMTAsMTEgQEAgV0hFUkUgb3BjLm9pZCA+PSAxNjM4NCBBTkQgTk9UIGFt dmFsaWRhdGUob3BjLm9pZCk7CiAtLS0tLS0tLSstLS0tLS0tLS0KICgwIHJvd3MpCiAKK1NFTEVD VCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNoYXJhY3RlciB0byBj aXRleHQgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9O IENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBj aXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJLi4uCisgICAgICAgICAgICAgICAgICAgIF4K K0hJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0 IHN1cHBvcnRlZAogLS0gVGVzdCB0aGUgb3BlcmF0b3JzIGFuZCBpbmRleGluZyBmdW5jdGlvbnMK IC0tIFRlc3QgPSBhbmQgPD4uCiBTRUxFQ1QgJ2EnOjpjaXRleHQgPSAnYSc6OmNpdGV4dCBBUyB0 OwpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0IGIvY29u dHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CmluZGV4IGM1ZTVmMTgwZjJiLi42NDdl ZWExOTE0MiAxMDA2NDQKLS0tIGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0 CisrKyBiL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dApAQCAtMTAsNiArMTAs MTEgQEAgV0hFUkUgb3BjLm9pZCA+PSAxNjM4NCBBTkQgTk9UIGFtdmFsaWRhdGUob3BjLm9pZCk7 CiAtLS0tLS0tLSstLS0tLS0tLS0KICgwIHJvd3MpCiAKK1NFTEVDVCBDQVNUKCdhYmMnOjpicGNo YXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgor RVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNoYXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZBVUxU IGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IK K0xJTkUgMTogU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBTYWZlIHR5cGUg Y2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAogLS0gVGVz dCB0aGUgb3BlcmF0b3JzIGFuZCBpbmRleGluZyBmdW5jdGlvbnMKIC0tIFRlc3QgPSBhbmQgPD4u CiBTRUxFQ1QgJ2EnOjpjaXRleHQgPSAnYSc6OmNpdGV4dCBBUyB0OwpkaWZmIC0tZ2l0IGEvY29u dHJpYi9jaXRleHQvc3FsL2NpdGV4dC5zcWwgYi9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNx bAppbmRleCBhYTFjZjlhYmQ1Yy4uOTk3OTQ0OTdkNDcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0 ZXh0L3NxbC9jaXRleHQuc3FsCisrKyBiL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsCkBA IC05LDYgKzksOCBAQCBTRUxFQ1QgYW1uYW1lLCBvcGNuYW1lCiBGUk9NIHBnX29wY2xhc3Mgb3Bj IExFRlQgSk9JTiBwZ19hbSBhbSBPTiBhbS5vaWQgPSBvcGNtZXRob2QKIFdIRVJFIG9wYy5vaWQg Pj0gMTYzODQgQU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogCitTRUxFQ1QgQ0FTVCgnYWJj Jzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0t ZXJyb3IKKwogLS0gVGVzdCB0aGUgb3BlcmF0b3JzIGFuZCBpbmRleGluZyBmdW5jdGlvbnMKIAog LS0gVGVzdCA9IGFuZCA8Pi4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRz L2V4cGVjdGVkL3NlbGVjdC5vdXQgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3Rl ZC9zZWxlY3Qub3V0CmluZGV4IDc1Yzg5NmYzODg1Li42ZTY3OTk3ZjBhMiAxMDA2NDQKLS0tIGEv Y29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dAorKysgYi9jb250 cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0CkBAIC03Myw2ICs3Mywy NSBAQCBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQgMiBGRVRDSCBGSVJTVCAzIFJPVyBPTkxZOwog LS0tLS0KICgwIHJvd3MpCiAKKy0tZXJyb3Igc2FmZSB0eXBlIGNhc3QKK1NFTEVDVCBDQVNUKCdh JyBBUyBpbnQgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0tLS0K KyAgICAyCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcxMScgQVMgaW50IERFRkFVTFQgMiBPTiBD T05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAxMQorKDEgcm93KQorCitTRUxF Q1QgQ0FTVCgnMTInIEFTIG51bWVyaWMgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOwor IG51bWVyaWMgCistLS0tLS0tLS0KKyAgICAgIDEyCisoMSByb3cpCisKIC0tIERJU1RJTkNUIGFu ZCBPUkRFUiBCWSBwYXR0ZXJucwogLS0gVHJ5IHNvbWUgcXVlcnkgcGVybXV0YXRpb25zIHdoaWNo IG9uY2UgcHJvZHVjZWQgaWRlbnRpY2FsIHF1ZXJ5IElEcwogU0VMRUNUIERJU1RJTkNUIDEgQVMg ImludCI7CkBAIC0yMjIsNiArMjQxLDggQEAgU0VMRUNUIGNhbGxzLCByb3dzLCBxdWVyeSBGUk9N IHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKICAgICAgMiB8 ICAgIDIgfCBTRUxFQ1QgJDEgQVMgImludCIgT1JERVIgQlkgMQogICAgICAxIHwgICAgMiB8IFNF TEVDVCAkMSBBUyBpIFVOSU9OIFNFTEVDVCAkMiBPUkRFUiBCWSBpCiAgICAgIDEgfCAgICAxIHwg U0VMRUNUICQxIHx8ICQyCisgICAgIDIgfCAgICAyIHwgU0VMRUNUIENBU1QoJDEgQVMgaW50IERF RkFVTFQgJDIgT04gQ09OVkVSU0lPTiBFUlJPUikKKyAgICAgMSB8ICAgIDEgfCBTRUxFQ1QgQ0FT VCgkMSBBUyBudW1lcmljIERFRkFVTFQgJDIgT04gQ09OVkVSU0lPTiBFUlJPUikKICAgICAgMiB8 ICAgIDIgfCBTRUxFQ1QgRElTVElOQ1QgJDEgQVMgImludCIKICAgICAgMCB8ICAgIDAgfCBTRUxF Q1QgY2FsbHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1 ZXJ5IENPTExBVEUgIkMiCiAgICAgIDEgfCAgICAxIHwgU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50 c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQKQEAgLTIzMCw3ICsyNTEsNyBAQCBTRUxFQ1QgY2Fs bHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENP TExBVEUgIkMiOwogICAgICAgIHwgICAgICB8ICkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAg fCAgICAgIHwgICBTRUxFQ1QgZiBGUk9NIHQgT1JERVIgQlkgZgogICAgICAxIHwgICAgMSB8IHNl bGVjdCAkMTo6anNvbmIgPyAkMgotKDE3IHJvd3MpCisoMTkgcm93cykKIAogU0VMRUNUIHBnX3N0 YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQ7CiAgdCAKZGlmZiAtLWdpdCBh L2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsIGIvY29udHJpYi9wZ19z dGF0X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5zcWwKaW5kZXggMTE2NjJjZGUwOGMuLjdlZTgxNjBm ZDg0IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNx bAorKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbApAQCAtMjUs NiArMjUsMTEgQEAgU0VMRUNUIDEgQVMgImludCIgTElNSVQgMyBPRkZTRVQgMzsKIFNFTEVDVCAx IEFTICJpbnQiIE9GRlNFVCAxIEZFVENIIEZJUlNUIDIgUk9XIE9OTFk7CiBTRUxFQ1QgMSBBUyAi aW50IiBPRkZTRVQgMiBGRVRDSCBGSVJTVCAzIFJPVyBPTkxZOwogCistLWVycm9yIHNhZmUgdHlw ZSBjYXN0CitTRUxFQ1QgQ0FTVCgnYScgQVMgaW50IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCcxMScgQVMgaW50IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCcxMicgQVMgbnVtZXJpYyBERUZBVUxUIDIgT04gQ09OVkVSU0lP TiBFUlJPUik7CisKIC0tIERJU1RJTkNUIGFuZCBPUkRFUiBCWSBwYXR0ZXJucwogLS0gVHJ5IHNv bWUgcXVlcnkgcGVybXV0YXRpb25zIHdoaWNoIG9uY2UgcHJvZHVjZWQgaWRlbnRpY2FsIHF1ZXJ5 IElEcwogU0VMRUNUIERJU1RJTkNUIDEgQVMgImludCI7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvc3ludGF4LnNnbWwgYi9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKaW5kZXggMzRjODM4ODBh NjYuLmQxY2M5MzJmN2IxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCkBAIC0yMTA2LDYgKzIxMDYsMTAgQEAgQ0FTVCAo IDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5 cGU8L3JlcGxhY2VhYmxlPgogICAgIFRoZSA8bGl0ZXJhbD5DQVNUPC9saXRlcmFsPiBzeW50YXgg Y29uZm9ybXMgdG8gU1FMOyB0aGUgc3ludGF4IHdpdGgKICAgICA8bGl0ZXJhbD46OjwvbGl0ZXJh bD4gaXMgaGlzdG9yaWNhbCA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CiAg ICAgdXNhZ2UuCisgICAgVGhlIGVxdWl2YWxlbnQgT04gQ09OVkVSU0lPTiBFUlJPUiBiZWhhdmlv ciBpczoKKzxzeW5vcHNpcz4KK0NBU1QgKCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50eXBlPC9yZXBsYWNlYWJsZT4gRVJST1IgT04gQ09OVkVS U0lPTiBFUlJPUiApCis8L3N5bm9wc2lzPgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KQEAgLTIx NjAsNiArMjE2NCwzNSBAQCBDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2Vh YmxlPiBBUyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+CiAgICAgIDx4cmVmIGxpbmtl bmQ9InNxbC1jcmVhdGVjYXN0Ii8+LgogICAgIDwvcGFyYT4KICAgIDwvbm90ZT4KKworIDxzZWN0 MyBpZD0ic3FsLXN5bnRheC10eXBlLWNhc3RzLXNhZmUiPgorICA8dGl0bGU+U2FmZSBUeXBlIENh c3Q8L3RpdGxlPgorICAgPHBhcmE+CisgICAgQSB0eXBlIGNhc3QgbWF5IG9jY2FzaW9uYWxseSBm YWlsLiBUbyBndWFyZCBhZ2FpbnN0IHN1Y2ggZmFpbHVyZXMsIHlvdSBjYW4KKyAgICBwcm92aWRl IGFuIDxsaXRlcmFsPk9OIENPTlZFUlNJT04gRVJST1I8L2xpdGVyYWw+IGNsYXVzZSB0byBoYW5k bGUgcG90ZW50aWFsIGVycm9ycy4KKyAgICBUaGUgc3ludGF4IGZvciBzYWZlIHR5cGUgY2FzdCBp czoKKzxzeW5vcHNpcz4KK0NBU1QgKCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFi bGU+IEFTIDxyZXBsYWNlYWJsZT50eXBlPC9yZXBsYWNlYWJsZT4gREVGQVVMVCA8cmVwbGFjZWFi bGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IE9OIENPTlZFUlNJT04gRVJST1IgKQorPC9zeW5v cHNpcz4KKyAgICBJZiB0aGUgdHlwZSBjYXN0IGZhaWxzLCBpbnN0ZWFkIG9mIGVycm9yIG91dCwg ZXZhbHVhdGlvbiBmYWxscyBiYWNrIHRvIHRoZQorICAgIGRlZmF1bHQgPHJlcGxhY2VhYmxlPmV4 cHJlc3Npb248L3JlcGxhY2VhYmxlPgorICAgIHNwZWNpZmllZCBpbiB0aGUgPGxpdGVyYWw+T04g Q09OVkVSU0lPTiBFUlJPUjwvbGl0ZXJhbD4gY2xhdXNlLgorCisgICAgQXQgcHJlc2VudCwgdGhp cyBvbmx5IHN1cHBvcnQgYnVpbHQtaW4gdHlwZSBjYXN0cywgc2VlIDx4cmVmIGxpbmtlbmQ9ImNh dGFsb2ctcGctY2FzdCIvPi4KKyAgICBVc2VyLWRlZmluZWQgdHlwZSBjYXN0cyBjcmVhdGVkIHdp dGggPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiPkNSRUFURSBDQVNUPC9saW5rPgorICAg IGFyZSBub3Qgc3VwcG9ydGVkLgorICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICBTb21lIGV4 YW1wbGVzOgorPHNjcmVlbj4KK1NFTEVDVCBDQVNUKFRFWFQgJ2Vycm9yJyBBUyBpbnRlZ2VyIERF RkFVTFQgMyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKzxsaW5lYW5ub3RhdGlvbj5SZXN1bHQ6IDwv bGluZWFubm90YXRpb24+PGNvbXB1dGVyb3V0cHV0PjM8L2NvbXB1dGVyb3V0cHV0PgorU0VMRUNU IENBU1QoVEVYVCAnZXJyb3InIEFTIG51bWVyaWMgREVGQVVMVCAxLjEgT04gQ09OVkVSU0lPTiBF UlJPUik7Cis8bGluZWFubm90YXRpb24+UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxjb21wdXRl cm91dHB1dD4xLjE8L2NvbXB1dGVyb3V0cHV0PgorPC9zY3JlZW4+CisgICAgPC9wYXJhPgorICA8 L3NlY3QzPgogICA8L3NlY3QyPgogCiAgIDxzZWN0MiBpZD0ic3FsLXN5bnRheC1jb2xsYXRlLWV4 cHJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IGUwYTFmYjc2YWE4Li5kNWNiY2ZiYmVm NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC05OSw2ICs5OSw5IEBAIHN0YXRpYyB2b2lk IEV4ZWNCdWlsZEFnZ1RyYW5zQ2FsbChFeHByU3RhdGUgKnN0YXRlLCBBZ2dTdGF0ZSAqYWdnc3Rh dGUsCiBzdGF0aWMgdm9pZCBFeGVjSW5pdEpzb25FeHByKEpzb25FeHByICpqc2V4cHIsIEV4cHJT dGF0ZSAqc3RhdGUsCiAJCQkJCQkJIERhdHVtICpyZXN2LCBib29sICpyZXNudWxsLAogCQkJCQkJ CSBFeHByRXZhbFN0ZXAgKnNjcmF0Y2gpOworc3RhdGljIHZvaWQgRXhlY0luaXRTYWZlVHlwZUNh c3RFeHByKFNhZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHIsIEV4cHJTdGF0ZSAqc3RhdGUsCisJCQkJ CQkJCQkgRGF0dW0gKnJlc3YsIGJvb2wgKnJlc251bGwsCisJCQkJCQkJCQkgRXhwckV2YWxTdGVw ICpzY3JhdGNoKTsKIHN0YXRpYyB2b2lkIEV4ZWNJbml0SnNvbkNvZXJjaW9uKEV4cHJTdGF0ZSAq c3RhdGUsIEpzb25SZXR1cm5pbmcgKnJldHVybmluZywKIAkJCQkJCQkJIEVycm9yU2F2ZUNvbnRl eHQgKmVzY29udGV4dCwgYm9vbCBvbWl0X3F1b3RlcywKIAkJCQkJCQkJIGJvb2wgZXhpc3RzX2Nv ZXJjZSwKQEAgLTE0MSw2ICsxNDQsMTkgQEAgc3RhdGljIHZvaWQgRXhlY0luaXRKc29uQ29lcmNp b24oRXhwclN0YXRlICpzdGF0ZSwgSnNvblJldHVybmluZyAqcmV0dXJuaW5nLAogICovCiBFeHBy U3RhdGUgKgogRXhlY0luaXRFeHByKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KQorewor CXJldHVybiBFeGVjSW5pdEV4cHJFeHRlbmRlZChub2RlLCBOVUxMLCBwYXJlbnQpOworfQorCisv KgorICogRXhlY0luaXRFeHByRXh0ZW5kZWQ6IHNvZnQgZXJyb3IgdmFyaWFudCBvZiBFeGVjSW5p dEV4cHIuCisgKgorICogZXNjb250ZXh0IGlzIGV4cGVjdGVkIHRvIGJlIG5vbi1OVUxMIG9ubHkg Zm9yIGV4cHJlc3Npb24gbm9kZXMgdGhhdCBzdXBwb3J0CisgKiBzb2Z0IGVycm9ycy4KKyAqIE5v dCBhbGwgZXhwcmVzc2lvbiBub2RlcyBzdXBwb3J0IHRoaXM7IGlmIGluIGRvdWJ0LCBwYXNzIE5V TEwuCisgKi8KK0V4cHJTdGF0ZSAqCitFeGVjSW5pdEV4cHJFeHRlbmRlZChFeHByICpub2RlLCBO b2RlICplc2NvbnRleHQsIFBsYW5TdGF0ZSAqcGFyZW50KQogewogCUV4cHJTdGF0ZSAgKnN0YXRl OwogCUV4cHJFdmFsU3RlcCBzY3JhdGNoID0gezB9OwpAQCAtMTU0LDYgKzE3MCw3IEBAIEV4ZWNJ bml0RXhwcihFeHByICpub2RlLCBQbGFuU3RhdGUgKnBhcmVudCkKIAlzdGF0ZS0+ZXhwciA9IG5v ZGU7CiAJc3RhdGUtPnBhcmVudCA9IHBhcmVudDsKIAlzdGF0ZS0+ZXh0X3BhcmFtcyA9IE5VTEw7 CisJc3RhdGUtPmVzY29udGV4dCA9IChFcnJvclNhdmVDb250ZXh0ICopIGVzY29udGV4dDsKIAog CS8qIEluc2VydCBzZXR1cCBzdGVwcyBhcyBuZWVkZWQgKi8KIAlFeGVjQ3JlYXRlRXhwclNldHVw U3RlcHMoc3RhdGUsIChOb2RlICopIG5vZGUpOwpAQCAtMTcwMSw2ICsxNzE4LDcgQEAgRXhlY0lu aXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAKIAkJCQllbGVtc3RhdGUt PmlubmVybW9zdF9jYXNldmFsID0gcGFsbG9jX29iamVjdChEYXR1bSk7CiAJCQkJZWxlbXN0YXRl LT5pbm5lcm1vc3RfY2FzZW51bGwgPSBwYWxsb2Nfb2JqZWN0KGJvb2wpOworCQkJCWVsZW1zdGF0 ZS0+ZXNjb250ZXh0ID0gc3RhdGUtPmVzY29udGV4dDsKIAogCQkJCUV4ZWNJbml0RXhwclJlYyhh Y29lcmNlLT5lbGVtZXhwciwgZWxlbXN0YXRlLAogCQkJCQkJCQkmZWxlbXN0YXRlLT5yZXN2YWx1 ZSwgJmVsZW1zdGF0ZS0+cmVzbnVsbCk7CkBAIC0yMTc2LDYgKzIxOTQsMTUgQEAgRXhlY0luaXRF eHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJYnJlYWs7CiAJCQl9CiAK KwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAq c3RjZXhwciA9IGNhc3ROb2RlKFNhZmVUeXBlQ2FzdEV4cHIsIG5vZGUpOworCisJCQkJRXhlY0lu aXRTYWZlVHlwZUNhc3RFeHByKHN0Y2V4cHIsIHN0YXRlLCByZXN2LCByZXNudWxsLCAmc2NyYXRj aCk7CisKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJewog CQkJCUNvYWxlc2NlRXhwciAqY29hbGVzY2UgPSAoQ29hbGVzY2VFeHByICopIG5vZGU7CkBAIC0y NzM2LDcgKzI3NjMsNyBAQCBFeGVjSW5pdEZ1bmMoRXhwckV2YWxTdGVwICpzY3JhdGNoLCBFeHBy ICpub2RlLCBMaXN0ICphcmdzLCBPaWQgZnVuY2lkLAogCiAJLyogSW5pdGlhbGl6ZSBmdW5jdGlv biBjYWxsIHBhcmFtZXRlciBzdHJ1Y3R1cmUgdG9vICovCiAJSW5pdEZ1bmN0aW9uQ2FsbEluZm9E YXRhKCpmY2luZm8sIGZsaW5mbywKLQkJCQkJCQkgbmFyZ3MsIGlucHV0Y29sbGlkLCBOVUxMLCBO VUxMKTsKKwkJCQkJCQkgbmFyZ3MsIGlucHV0Y29sbGlkLCAoTm9kZSAqKSBzdGF0ZS0+ZXNjb250 ZXh0LCBOVUxMKTsKIAogCS8qIEtlZXAgZXh0cmEgY29waWVzIG9mIHRoaXMgaW5mbyB0byBzYXZl IGFuIGluZGlyZWN0aW9uIGF0IHJ1bnRpbWUgKi8KIAlzY3JhdGNoLT5kLmZ1bmMuZm5fYWRkciA9 IGZsaW5mby0+Zm5fYWRkcjsKQEAgLTQ3MzMsNiArNDc2MCw2MyBAQCBFeGVjQnVpbGRQYXJhbVNl dEVxdWFsKFR1cGxlRGVzYyBkZXNjLAogCXJldHVybiBzdGF0ZTsKIH0KIAorLyoKKyAqIFB1c2gg c3RlcHMgdG8gZXZhbHVhdGUgYSBTYWZlVHlwZUNhc3RFeHByIGFuZCBpdHMgdmFyaW91cyBzdWJz aWRpYXJ5CisgKiBleHByZXNzaW9ucy4KKyAqLworc3RhdGljIHZvaWQKK0V4ZWNJbml0U2FmZVR5 cGVDYXN0RXhwcihTYWZlVHlwZUNhc3RFeHByICpzdGNleHByLCBFeHByU3RhdGUgKnN0YXRlLAor CQkJCQkJIERhdHVtICpyZXN2LCBib29sICpyZXNudWxsLAorCQkJCQkJIEV4cHJFdmFsU3RlcCAq c2NyYXRjaCkKK3sKKwkvKgorCSAqIElmIHdlIGNhbm5vdCBjb2VyY2UgdG8gdGhlIHRhcmdldCB0 eXBlLCBmYWxsYmFjayB0byB0aGUgREVGQVVMVAorCSAqIGV4cHJlc3Npb24gc3BlY2lmaWVkIGlu IE9OIENPTlZFUlNJT04gRVJST1IgY2xhdXNlLCBhbmQgd2UgYXJlIGRvbmUuCisJICovCisJaWYg KHN0Y2V4cHItPmNhc3RfZXhwciA9PSBOVUxMKQorCXsKKwkJRXhlY0luaXRFeHByUmVjKChFeHBy ICopIHN0Y2V4cHItPmRlZmF1bHRfZXhwciwKKwkJCQkJCXN0YXRlLCByZXN2LCByZXNudWxsKTsK KwkJcmV0dXJuOworCX0KKwllbHNlCisJeworCQlTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGU7 CisKKwkJc3Rjc3RhdGUgPSBwYWxsb2MwKHNpemVvZihTYWZlVHlwZUNhc3RTdGF0ZSkpOworCQlz dGNzdGF0ZS0+c3RjZXhwciA9IHN0Y2V4cHI7CisJCXN0Y3N0YXRlLT5lc2NvbnRleHQudHlwZSA9 IFRfRXJyb3JTYXZlQ29udGV4dDsKKwkJc3RhdGUtPmVzY29udGV4dCA9ICZzdGNzdGF0ZS0+ZXNj b250ZXh0OworCisJCS8qIGV2YWx1YXRlIGFyZ3VtZW50IGV4cHJlc3Npb24gaW50byBzdGVwJ3Mg cmVzdWx0IGFyZWEgKi8KKwkJRXhlY0luaXRFeHByUmVjKChFeHByICopIHN0Y2V4cHItPmNhc3Rf ZXhwciwKKwkJCQkJCXN0YXRlLCByZXN2LCByZXNudWxsKTsKKwkJc2NyYXRjaC0+b3Bjb2RlID0g RUVPUF9TQUZFVFlQRV9DQVNUOworCQlzY3JhdGNoLT5kLnN0Y2V4cHIuc3Rjc3RhdGUgPSBzdGNz dGF0ZTsKKwkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgc2NyYXRjaCk7CisKKwkJLyoKKwkJICog U3RlcHMgdG8gZXZhbHVhdGUgdGhlIERFRkFVTFQgZXhwcmVzc2lvbi4gIFNraXAgaXQgaWYgdGhp cyBpcyBhCisJCSAqIGJpbmFyeSBjb2VyY2lvbiBjYXN0LgorCQkgKi8KKwkJaWYgKCFJc0Eoc3Rj ZXhwci0+Y2FzdF9leHByLCBSZWxhYmVsVHlwZSkpCisJCXsKKwkJCUVycm9yU2F2ZUNvbnRleHQg KnNhdmVkX2VzY29udGV4dDsKKworCQkJc2F2ZWRfZXNjb250ZXh0ID0gc3RhdGUtPmVzY29udGV4 dDsKKworCQkJc3RhdGUtPmVzY29udGV4dCA9IE5VTEw7CisKKwkJCUV4ZWNJbml0RXhwclJlYygo RXhwciAqKSBzdGNzdGF0ZS0+c3RjZXhwci0+ZGVmYXVsdF9leHByLAorCQkJCQkJCXN0YXRlLCBy ZXN2LCByZXNudWxsKTsKKworCQkJc3RhdGUtPmVzY29udGV4dCA9IHNhdmVkX2VzY29udGV4dDsK KwkJfQorCisJCXN0Y3N0YXRlLT5qdW1wX2VuZCA9IHN0YXRlLT5zdGVwc19sZW47CisJfQorfQor CiAvKgogICogUHVzaCBzdGVwcyB0byBldmFsdWF0ZSBhIEpzb25FeHByIGFuZCBpdHMgdmFyaW91 cyBzdWJzaWRpYXJ5IGV4cHJlc3Npb25zLgogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJ bnRlcnAuYwppbmRleCAwYTJkMjVjMWI2Mi4uNDA2MjNiOTg0OTEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNTY4LDYgKzU2OCw3IEBAIEV4ZWNJbnRlcnBFeHByKEV4 cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkm JkNBU0VfRUVPUF9YTUxFWFBSLAogCQkmJkNBU0VfRUVPUF9KU09OX0NPTlNUUlVDVE9SLAogCQkm JkNBU0VfRUVPUF9JU19KU09OLAorCQkmJkNBU0VfRUVPUF9TQUZFVFlQRV9DQVNULAogCQkmJkNB U0VfRUVPUF9KU09ORVhQUl9QQVRILAogCQkmJkNBU0VfRUVPUF9KU09ORVhQUl9DT0VSQ0lPTiwK IAkJJiZDQVNFX0VFT1BfSlNPTkVYUFJfQ09FUkNJT05fRklOSVNILApAQCAtMTkyNiw2ICsxOTI3 LDI4IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29u dGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCUVFT19DQVNFKEVF T1BfU0FGRVRZUEVfQ0FTVCkKKwkJeworCQkJU2FmZVR5cGVDYXN0U3RhdGUgKnN0Y3N0YXRlID0g b3AtPmQuc3RjZXhwci5zdGNzdGF0ZTsKKworCQkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoJnN0 Y3N0YXRlLT5lc2NvbnRleHQpKQorCQkJeworCQkJCSpvcC0+cmVzdmFsdWUgPSAoRGF0dW0pIDA7 CisJCQkJKm9wLT5yZXNudWxsID0gdHJ1ZTsKKworCQkJCS8qCisJCQkJICogUmVzZXQgZm9yIG5l eHQgdXNlIHN1Y2ggYXMgZm9yIGNhdGNoaW5nIGVycm9ycyB3aGVuCisJCQkJICogY29lcmNpbmcg YSBleHByZXNzaW9uLgorCQkJCSAqLworCQkJCXN0Y3N0YXRlLT5lc2NvbnRleHQuZXJyb3Jfb2Nj dXJyZWQgPSBmYWxzZTsKKwkJCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmRldGFpbHNfd2FudGVkID0g ZmFsc2U7CisKKwkJCQlFRU9fTkVYVCgpOworCQkJfQorCQkJZWxzZQorCQkJCUVFT19KVU1QKHN0 Y3N0YXRlLT5qdW1wX2VuZCk7CisJCX0KKwogCQlFRU9fQ0FTRShFRU9QX0pTT05FWFBSX1BBVEgp CiAJCXsKIAkJCS8qIHRvbyBjb21wbGV4IGZvciBhbiBpbmxpbmUgaW1wbGVtZW50YXRpb24gKi8K QEAgLTM2NDQsNiArMzY2NywxMiBAQCBFeGVjRXZhbEFycmF5Q29lcmNlKEV4cHJTdGF0ZSAqc3Rh dGUsIEV4cHJFdmFsU3RlcCAqb3AsIEV4cHJDb250ZXh0ICplY29udGV4dCkKIAkJCQkJCQkgIGVj b250ZXh0LAogCQkJCQkJCSAgb3AtPmQuYXJyYXljb2VyY2UucmVzdWx0ZWxlbXR5cGUsCiAJCQkJ CQkJICBvcC0+ZC5hcnJheWNvZXJjZS5hbXN0YXRlKTsKKworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKG9wLT5kLmFycmF5Y29lcmNlLmVsZW1leHByc3RhdGUtPmVzY29udGV4dCkpCisJeworCQkq b3AtPnJlc3ZhbHVlID0gKERhdHVtKSAwOworCQkqb3AtPnJlc251bGwgPSB0cnVlOworCX0KIH0K IAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIv c3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXggNjUwZjFkNDJhOTMuLjQ3 NWMwM2M1NDg4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIu YworKysgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwpAQCAtMjI1Niw2ICsy MjU2LDMzIEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJCQkJTExWTUJ1 aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBFRU9Q X1NBRkVUWVBFX0NBU1Q6CisJCQkJeworCQkJCQlTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGUg PSBvcC0+ZC5zdGNleHByLnN0Y3N0YXRlOworCisJCQkJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVE KCZzdGNzdGF0ZS0+ZXNjb250ZXh0KSkKKwkJCQkJeworCQkJCQkJLyoKKwkJCQkJCSAqIFJlc2V0 IGZvciBuZXh0IHVzZSBzdWNoIGFzIGZvciBjYXRjaGluZyBlcnJvcnMgd2hlbgorCQkJCQkJICog Y29lcmNpbmcgYSBleHByZXNzaW9uLgorCQkJCQkJICovCisJCQkJCQlzdGNzdGF0ZS0+ZXNjb250 ZXh0LmVycm9yX29jY3VycmVkID0gZmFsc2U7CisJCQkJCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmRl dGFpbHNfd2FudGVkID0gZmFsc2U7CisKKwkJCQkJCS8qIHNldCByZXNudWxsIHRvIHRydWUgKi8K KwkJCQkJCUxMVk1CdWlsZFN0b3JlKGIsIGxfc2Jvb2xfY29uc3QoMSksIHZfcmVzbnVsbHApOwor CisJCQkJCQkvKiByZXNldCByZXN2YWx1ZSAqLworCQkJCQkJTExWTUJ1aWxkU3RvcmUoYiwgbF9k YXR1bV9jb25zdCgwKSwgdl9yZXN2YWx1ZXApOworCisJCQkJCQlMTFZNQnVpbGRCcihiLCBvcGJs b2Nrc1tvcG5vICsgMV0pOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJCUxMVk1CdWlsZEJyKGIs IG9wYmxvY2tzW3N0Y3N0YXRlLT5qdW1wX2VuZF0pOworCisJCQkJCWJyZWFrOworCQkJCX0KKwog CQkJY2FzZSBFRU9QX0pTT05FWFBSX1BBVEg6CiAJCQkJewogCQkJCQlKc29uRXhwclN0YXRlICpq c2VzdGF0ZSA9IG9wLT5kLmpzb25leHByLmpzZXN0YXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRl eCBjNzY2MGRmOTJmNC4uODlmYjFiMzU3ZDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0yMDYs NiArMjA2LDkgQEAgZXhwclR5cGUoY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1Jvd0NvbXBh cmVFeHByOgogCQkJdHlwZSA9IEJPT0xPSUQ7CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBl Q2FzdEV4cHI6CisJCQl0eXBlID0gKChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5y ZXN1bHR0eXBlOworCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl0eXBlID0g KChjb25zdCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmNvYWxlc2NldHlwZTsKIAkJCWJyZWFrOwpA QCAtNDUwLDYgKzQ1Myw4IEBAIGV4cHJUeXBtb2QoY29uc3QgTm9kZSAqZXhwcikKIAkJCQlyZXR1 cm4gdHlwbW9kOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgor CQkJcmV0dXJuICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+cmVzdWx0dHlwbW9k OwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJewogCQkJCS8qCkBAIC05NjUsNiArOTcwLDkg QEAgZXhwckNvbGxhdGlvbihjb25zdCBOb2RlICpleHByKQogCQkJLyogUm93Q29tcGFyZUV4cHIn cyByZXN1bHQgaXMgYm9vbGVhbiAuLi4gKi8KIAkJCWNvbGwgPSBJbnZhbGlkT2lkOwkvKiAuLi4g c28gaXQgaGFzIG5vIGNvbGxhdGlvbiAqLwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNh c3RFeHByOgorCQkJY29sbCA9ICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+cmVz dWx0Y29sbGlkOworCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQljb2xsID0g KChjb25zdCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmNvYWxlc2NlY29sbGlkOwogCQkJYnJlYWs7 CkBAIC0xMjMyLDYgKzEyNDAsOSBAQCBleHByU2V0Q29sbGF0aW9uKE5vZGUgKmV4cHIsIE9pZCBj b2xsYXRpb24pCiAJCQkvKiBSb3dDb21wYXJlRXhwcidzIHJlc3VsdCBpcyBib29sZWFuIC4uLiAq LwogCQkJQXNzZXJ0KCFPaWRJc1ZhbGlkKGNvbGxhdGlvbikpOyAvKiAuLi4gc28gbmV2ZXIgc2V0 IGEgY29sbGF0aW9uICovCiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJ CQkoKFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdGNvbGxpZCA9IGNvbGxhdGlvbjsK KwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJKChDb2FsZXNjZUV4cHIgKikg ZXhwciktPmNvYWxlc2NlY29sbGlkID0gY29sbGF0aW9uOwogCQkJYnJlYWs7CkBAIC0xNTUwLDYg KzE1NjEsOSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJCS8qIGp1c3QgdXNl IGxlZnRtb3N0IGFyZ3VtZW50J3MgbG9jYXRpb24gKi8KIAkJCWxvYyA9IGV4cHJMb2NhdGlvbigo Tm9kZSAqKSAoKGNvbnN0IFJvd0NvbXBhcmVFeHByICopIGV4cHIpLT5sYXJncyk7CiAJCQlicmVh azsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQlsb2MgPSAoKGNvbnN0IFNhZmVUeXBl Q2FzdEV4cHIgKikgZXhwciktPmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNj ZUV4cHI6CiAJCQkvKiBDT0FMRVNDRSBrZXl3b3JkIHNob3VsZCBhbHdheXMgYmUgdGhlIGZpcnN0 IHRoaW5nICovCiAJCQlsb2MgPSAoKGNvbnN0IENvYWxlc2NlRXhwciAqKSBleHByKS0+bG9jYXRp b247CkBAIC0yMzIxLDYgKzIzMzUsMTggQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5v ZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9T YWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgKnNjZXhwciA9IChT YWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzY2V4cHItPnNvdXJjZV9l eHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc2NleHByLT5jYXN0X2V4cHIp KQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzY2V4cHItPmRlZmF1bHRfZXhwcikp CisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4 cHI6CiAJCQlyZXR1cm4gV0FMSygoKENvYWxlc2NlRXhwciAqKSBub2RlKS0+YXJncyk7CiAJCWNh c2UgVF9NaW5NYXhFeHByOgpAQCAtMzMzMCw2ICszMzU2LDE5IEBAIGV4cHJlc3Npb25fdHJlZV9t dXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKIAkJ CX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZl VHlwZUNhc3RFeHByICpzY2V4cHIgPSAoU2FmZVR5cGVDYXN0RXhwciAqKSBub2RlOworCQkJCVNh ZmVUeXBlQ2FzdEV4cHIgKm5ld25vZGU7CisKKwkJCQlGTEFUQ09QWShuZXdub2RlLCBzY2V4cHIs IFNhZmVUeXBlQ2FzdEV4cHIpOworCQkJCU1VVEFURShuZXdub2RlLT5zb3VyY2VfZXhwciwgc2Nl eHByLT5zb3VyY2VfZXhwciwgTm9kZSAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+Y2FzdF9leHBy LCBzY2V4cHItPmNhc3RfZXhwciwgTm9kZSAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+ZGVmYXVs dF9leHByLCBzY2V4cHItPmRlZmF1bHRfZXhwciwgTm9kZSAqKTsKKworCQkJCXJldHVybiAoTm9k ZSAqKSBuZXdub2RlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJ CQl7CiAJCQkJQ29hbGVzY2VFeHByICpjb2FsZXNjZWV4cHIgPSAoQ29hbGVzY2VFeHByICopIG5v ZGU7CkBAIC00NDYyLDYgKzQ1MDEsMjAgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1w bChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyh0Yy0+dHlwZU5h bWUpKQogCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyh0Yy0+cmF3X2RlZmF1bHQpKQor CQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0 RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpzdGMgPSAoU2FmZVR5cGVDYXN0RXhw ciAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoc3RjLT5zb3VyY2VfZXhwcikpCisJCQkJCXJldHVy biB0cnVlOworCQkJCWlmIChXQUxLKHN0Yy0+Y2FzdF9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7 CisJCQkJaWYgKFdBTEsoc3RjLT5kZWZhdWx0X2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJ CX0KIAkJCWJyZWFrOwogCQljYXNlIFRfQ29sbGF0ZUNsYXVzZToKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL2NsYXVzZXMuYwppbmRleCAzOWQzNTgyN2MzNS4uOWMxMThjN2FiY2IgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTI0NDcsNyArMjQ0Nyw4IEBAIGVzdGltYXRlX2V4 cHJlc3Npb25fdmFsdWUoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAJKChOb2RlICop IGV2YWx1YXRlX2V4cHIoKEV4cHIgKikgKG5vZGUpLCBcCiAJCQkJCQkJZXhwclR5cGUoKE5vZGUg KikgKG5vZGUpKSwgXAogCQkJCQkJCWV4cHJUeXBtb2QoKE5vZGUgKikgKG5vZGUpKSwgXAotCQkJ CQkJCWV4cHJDb2xsYXRpb24oKE5vZGUgKikgKG5vZGUpKSkpCisJCQkJCQkJZXhwckNvbGxhdGlv bigoTm9kZSAqKSAobm9kZSkpLCBcCisJCQkJCQkJTlVMTCkpCiAKIC8qCiAgKiBSZWN1cnNpdmUg Z3V0cyBvZiBldmFsX2NvbnN0X2V4cHJlc3Npb25zL2VzdGltYXRlX2V4cHJlc3Npb25fdmFsdWUK QEAgLTI5NTgsNiArMjk1OSwzMiBAQCBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IoTm9k ZSAqbm9kZSwKIAkJCQkJCQkJCQkJCSAgY29weU9iamVjdChqdmUtPmZvcm1hdCkpOwogCQkJfQog CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIg KnN0YyA9IChTYWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAq bmV3ZXhwcjsKKwkJCQlOb2RlCSAgICpzb3VyY2VfZXhwciA9IHN0Yy0+c291cmNlX2V4cHI7CisJ CQkJTm9kZQkgICAqZGVmYXVsdF9leHByID0gc3RjLT5kZWZhdWx0X2V4cHI7CisKKwkJCQlzb3Vy Y2VfZXhwciA9IGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihzb3VyY2VfZXhwciwgY29u dGV4dCk7CisJCQkJZGVmYXVsdF9leHByID0gZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9y KGRlZmF1bHRfZXhwciwgY29udGV4dCk7CisKKwkJCQkvKgorCQkJCSAqIFdlIG11c3Qgbm90IHJl ZHVjZSBhbnkgcmVjb2duaXphYmx5IGNvbnN0YW50IHN1YmV4cHJlc3Npb25zCisJCQkJICogaW4g Y2FzdF9leHByIGhlcmUsIHNpbmNlIHdlIGRvbuKAmXQgd2FudCBpdCB0byBmYWlsCisJCQkJICog cHJlbWF0dXJlbHkuCisJCQkJICovCisJCQkJbmV3ZXhwciA9IG1ha2VOb2RlKFNhZmVUeXBlQ2Fz dEV4cHIpOworCQkJCW5ld2V4cHItPnNvdXJjZV9leHByID0gc291cmNlX2V4cHI7CisJCQkJbmV3 ZXhwci0+Y2FzdF9leHByID0gc3RjLT5jYXN0X2V4cHI7CisJCQkJbmV3ZXhwci0+ZGVmYXVsdF9l eHByID0gZGVmYXVsdF9leHByOworCQkJCW5ld2V4cHItPnJlc3VsdHR5cGUgPSBzdGMtPnJlc3Vs dHR5cGU7CisJCQkJbmV3ZXhwci0+cmVzdWx0dHlwbW9kID0gc3RjLT5yZXN1bHR0eXBtb2Q7CisJ CQkJbmV3ZXhwci0+cmVzdWx0Y29sbGlkID0gc3RjLT5yZXN1bHRjb2xsaWQ7CisKKwkJCQlyZXR1 cm4gKE5vZGUgKikgbmV3ZXhwcjsKKwkJCX0KKwogCQljYXNlIFRfU3ViUGxhbjoKIAkJY2FzZSBU X0FsdGVybmF0aXZlU3ViUGxhbjoKIApAQCAtMzM4OCw3ICszNDE1LDggQEAgZXZhbF9jb25zdF9l eHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiAoTm9kZSAqKSBldmFs dWF0ZV9leHByKChFeHByICopIHN2ZiwKIAkJCQkJCQkJCQkJCSAgc3ZmLT50eXBlLAogCQkJCQkJ CQkJCQkJICBzdmYtPnR5cG1vZCwKLQkJCQkJCQkJCQkJCSAgSW52YWxpZE9pZCk7CisJCQkJCQkJ CQkJCQkgIEludmFsaWRPaWQsCisJCQkJCQkJCQkJCQkgIE5VTEwpOwogCQkJCWVsc2UKIAkJCQkJ cmV0dXJuIGNvcHlPYmplY3QoKE5vZGUgKikgc3ZmKTsKIAkJCX0KQEAgLTQ4MjgsNyArNDg1Niw3 IEBAIGV2YWx1YXRlX2Z1bmN0aW9uKE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIg cmVzdWx0X3R5cG1vZCwKIAluZXdleHByLT5sb2NhdGlvbiA9IC0xOwogCiAJcmV0dXJuIGV2YWx1 YXRlX2V4cHIoKEV4cHIgKikgbmV3ZXhwciwgcmVzdWx0X3R5cGUsIHJlc3VsdF90eXBtb2QsCi0J CQkJCQkgcmVzdWx0X2NvbGxpZCk7CisJCQkJCQkgcmVzdWx0X2NvbGxpZCwgTlVMTCk7CiB9CiAK IC8qCkBAIC01MjgyLDEwICs1MzEwLDE0IEBAIHNxbF9pbmxpbmVfZXJyb3JfY2FsbGJhY2sodm9p ZCAqYXJnKQogICoKICAqIFdlIHVzZSB0aGUgZXhlY3V0b3IncyByb3V0aW5lIEV4ZWNFdmFsRXhw cigpIHRvIGF2b2lkIGR1cGxpY2F0aW9uIG9mCiAgKiBjb2RlIGFuZCBlbnN1cmUgd2UgZ2V0IHRo ZSBzYW1lIHJlc3VsdCBhcyB0aGUgZXhlY3V0b3Igd291bGQgZ2V0LgorICoKKyAqIFdoZW4gZXNj b250ZXh0IGlzIG5vdCBOVUxMLCB3ZSB3aWxsIGV2YWx1YXRlIHRoZSBjb25zdGFudCBleHByZXNz aW9uIGluIGEKKyAqIGVycm9yIHNhZmUgd2F5LiBJZiB0aGUgZXZhbHVhdGlvbiBmYWlscywgcmV0 dXJuIE5VTEwgaW5zdGVhZCBvZiB0aHJvd2luZyBhbgorICogZXJyb3IuCiAgKi8KIEV4cHIgKgog ZXZhbHVhdGVfZXhwcihFeHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90 eXBtb2QsCi0JCQkgIE9pZCByZXN1bHRfY29sbGF0aW9uKQorCQkJICBPaWQgcmVzdWx0X2NvbGxh dGlvbiwgTm9kZSAqZXNjb250ZXh0KQogewogCUVTdGF0ZQkgICAqZXN0YXRlOwogCUV4cHJTdGF0 ZSAgKmV4cHJzdGF0ZTsKQEAgLTUzMTAsNyArNTM0Miw3IEBAIGV2YWx1YXRlX2V4cHIoRXhwciAq ZXhwciwgT2lkIHJlc3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAogCSAqIFByZXBhcmUg ZXhwciBmb3IgZXhlY3V0aW9uLiAgKE5vdGU6IHdlIGNhbid0IHVzZSBFeGVjUHJlcGFyZUV4cHIK IAkgKiBiZWNhdXNlIGl0J2QgcmVzdWx0IGluIHJlY3Vyc2l2ZWx5IGludm9raW5nIGV2YWxfY29u c3RfZXhwcmVzc2lvbnMuKQogCSAqLwotCWV4cHJzdGF0ZSA9IEV4ZWNJbml0RXhwcihleHByLCBO VUxMKTsKKwlleHByc3RhdGUgPSBFeGVjSW5pdEV4cHJFeHRlbmRlZChleHByLCBlc2NvbnRleHQs IE5VTEwpOwogCiAJLyoKIAkgKiBBbmQgZXZhbHVhdGUgaXQuCkBAIC01MzMwLDYgKzUzNjIsMTMg QEAgZXZhbHVhdGVfZXhwcihFeHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3Vs dF90eXBtb2QsCiAJLyogR2V0IGJhY2sgdG8gb3V0ZXIgbWVtb3J5IGNvbnRleHQgKi8KIAlNZW1v cnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChleHByc3RhdGUtPmVzY29udGV4dCkpCisJeworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUp OworCisJCXJldHVybiBOVUxMOworCX0KKwogCS8qCiAJICogTXVzdCBjb3B5IHJlc3VsdCBvdXQg b2Ygc3ViLWNvbnRleHQgdXNlZCBieSBleHByZXNzaW9uIGV2YWwuCiAJICoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cmlu ZGV4IDllYTgxMjUwY2U4Li4xNWU0ZjA2NDc4MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xNTgsNiArMTU4 LDggQEAgc3RhdGljIHZvaWQgdXBkYXRlUmF3U3RtdEVuZChSYXdTdG10ICpycywgaW50IGVuZF9s b2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqbWFrZUNvbHVtblJlZihjaGFyICpjb2xuYW1lLCBMaXN0 ICppbmRpcmVjdGlvbiwKIAkJCQkJCSAgIGludCBsb2NhdGlvbiwgY29yZV95eXNjYW5fdCB5eXNj YW5uZXIpOwogc3RhdGljIE5vZGUgKm1ha2VUeXBlQ2FzdChOb2RlICphcmcsIFR5cGVOYW1lICp0 eXBlbmFtZSwgaW50IGxvY2F0aW9uKTsKK3N0YXRpYyBOb2RlICptYWtlVHlwZUNhc3RXaXRoRGVm YXVsdChOb2RlICphcmcsIFR5cGVOYW1lICp0eXBlbmFtZSwKKwkJCQkJCQkJCSBOb2RlICpyYXdf ZGVmYXVsdCwgaW50IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICptYWtlU3RyaW5nQ29uc3RDYXN0 KGNoYXIgKnN0ciwgaW50IGxvY2F0aW9uLCBUeXBlTmFtZSAqdHlwZW5hbWUpOwogc3RhdGljIE5v ZGUgKm1ha2VJbnRDb25zdChpbnQgdmFsLCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKm1h a2VGbG9hdENvbnN0KGNoYXIgKnN0ciwgaW50IGxvY2F0aW9uKTsKQEAgLTE2MDY1LDYgKzE2MDY3 LDEyIEBAIGZ1bmNfZXhwcl9jb21tb25fc3ViZXhwcjoKIAkJCQl9CiAJCQl8IENBU1QgJygnIGFf ZXhwciBBUyBUeXBlbmFtZSAnKScKIAkJCQl7ICQkID0gbWFrZVR5cGVDYXN0KCQzLCAkNSwgQDEp OyB9CisJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSBFUlJPUl9QIE9OIENPTlZFUlNJ T05fUCBFUlJPUl9QICcpJworCQkJCXsgJCQgPSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7IH0K KwkJCXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVuYW1lIE5VTExfUCBPTiBDT05WRVJTSU9OX1Ag RVJST1JfUCAnKScKKwkJCQl7ICQkID0gbWFrZVR5cGVDYXN0V2l0aERlZmF1bHQoJDMsICQ1LCBt YWtlTnVsbEFDb25zdCgtMSksIEAxKTsgfQorCQkJfCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5h bWUgREVGQVVMVCBhX2V4cHIgT04gQ09OVkVSU0lPTl9QIEVSUk9SX1AgJyknCisJCQkJeyAkJCA9 IG1ha2VUeXBlQ2FzdFdpdGhEZWZhdWx0KCQzLCAkNSwgJDcsIEAxKTsgfQogCQkJfCBFWFRSQUNU ICcoJyBleHRyYWN0X2xpc3QgJyknCiAJCQkJewogCQkJCQkkJCA9IChOb2RlICopIG1ha2VGdW5j Q2FsbChTeXN0ZW1GdW5jTmFtZSgiZXh0cmFjdCIpLApAQCAtMTg5OTYsMTAgKzE5MDA0LDI1IEBA IG1ha2VUeXBlQ2FzdChOb2RlICphcmcsIFR5cGVOYW1lICp0eXBlbmFtZSwgaW50IGxvY2F0aW9u KQogCiAJbi0+YXJnID0gYXJnOwogCW4tPnR5cGVOYW1lID0gdHlwZW5hbWU7CisJbi0+cmF3X2Rl ZmF1bHQgPSBOVUxMOwogCW4tPmxvY2F0aW9uID0gbG9jYXRpb247CiAJcmV0dXJuIChOb2RlICop IG47CiB9CiAKK3N0YXRpYyBOb2RlICoKK21ha2VUeXBlQ2FzdFdpdGhEZWZhdWx0KE5vZGUgKmFy ZywgVHlwZU5hbWUgKnR5cGVuYW1lLCBOb2RlICpyYXdfZGVmYXVsdCwKKwkJCQkJCWludCBsb2Nh dGlvbikKK3sKKwlUeXBlQ2FzdCAgICpuID0gbWFrZU5vZGUoVHlwZUNhc3QpOworCisJbi0+YXJn ID0gYXJnOworCW4tPnR5cGVOYW1lID0gdHlwZW5hbWU7CisJbi0+cmF3X2RlZmF1bHQgPSByYXdf ZGVmYXVsdDsKKwluLT5sb2NhdGlvbiA9IGxvY2F0aW9uOworCisJcmV0dXJuIChOb2RlICopIG47 Cit9CisKIHN0YXRpYyBOb2RlICoKIG1ha2VTdHJpbmdDb25zdENhc3QoY2hhciAqc3RyLCBpbnQg bG9jYXRpb24sIFR5cGVOYW1lICp0eXBlbmFtZSkKIHsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRl eCAyNWVlMGY4N2Q5My4uMGUxMDZmZGZjZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTQ5 MCw2ICs0OTAsMTIgQEAgY2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQkJZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBh cmUgbm90IGFsbG93ZWQgaW4gY2hlY2sgY29uc3RyYWludHMiKTsKIAogCQkJYnJlYWs7CisJCWNh c2UgRVhQUl9LSU5EX0NBU1RfREVGQVVMVDoKKwkJCWlmIChpc0FnZykKKwkJCQllcnIgPSBfKCJh Z2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVz c2lvbnMiKTsKKwkJCWVsc2UKKwkJCQllcnIgPSBfKCJncm91cGluZyBvcGVyYXRpb25zIGFyZSBu b3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKKwkJCWJyZWFrOwogCQlj YXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05f REVGQVVMVDoKIApAQCAtOTgzLDYgKzk4OSw5IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBh cnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93RnVuYyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0RP TUFJTl9DSEVDSzoKIAkJCWVyciA9IF8oIndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2Vk IGluIGNoZWNrIGNvbnN0cmFpbnRzIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FT VF9ERUZBVUxUOgorCQkJZXJyID0gXygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQg aW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJ TkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJ CQllcnIgPSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4 cHJlc3Npb25zIik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNl LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMKaW5kZXggOTEzY2E1MzY2NmYu LjJhYjQ5YTU3NDNkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNl LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jCkBAIC04MSw2ICs4MSwz MSBAQCBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHBy LCBPaWQgZXhwcnR5cGUsCiAJCQkJCSAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LAogCQkJCQkg IENvZXJjaW9uRm9ybSBjZm9ybWF0LAogCQkJCQkgIGludCBsb2NhdGlvbikKK3sKKwlyZXR1cm4g Y29lcmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVkKHBzdGF0ZSwKKwkJCQkJCQkJCQkgIGV4cHIs CisJCQkJCQkJCQkJICBleHBydHlwZSwKKwkJCQkJCQkJCQkgIHRhcmdldHR5cGUsCisJCQkJCQkJ CQkJICB0YXJnZXR0eXBtb2QsCisJCQkJCQkJCQkJICBjY29udGV4dCwKKwkJCQkJCQkJCQkgIGNm b3JtYXQsCisJCQkJCQkJCQkJICBsb2NhdGlvbiwKKwkJCQkJCQkJCQkgIE5VTEwpOworfQorCisv KgorICogZXNjb250ZXh0OiBJZiBub3QgTlVMTCwgZXhwciAoVW5rbm93biBDb25zdCBub2RlIHR5 cGUpIHdpbGwgYmUgY29lcmNlZCB0byB0aGUKKyAqIHRhcmdldCB0eXBlIGluIGFuIGVycm9yLXNh ZmUgd2F5LiBJZiBpdCBmYWlscywgTlVMTCBpcyByZXR1cm5lZC4KKyAqCisgKiBGb3Igb3RoZXIg cGFyYW1ldGVycywgc2VlIGFib3ZlIGNvZXJjZV90b190YXJnZXRfdHlwZS4KKyAqLworTm9kZSAq Citjb2VyY2VfdG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2Rl ICpleHByLCBPaWQgZXhwcnR5cGUsCisJCQkJCQkJICAgT2lkIHRhcmdldHR5cGUsIGludDMyIHRh cmdldHR5cG1vZCwKKwkJCQkJCQkgICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsCisJCQkJCQkJ ICAgQ29lcmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJCQkJICAgaW50IGxvY2F0aW9uLAorCQkJCQkJ CSAgIE5vZGUgKmVzY29udGV4dCkKIHsKIAlOb2RlCSAgICpyZXN1bHQ7CiAJTm9kZQkgICAqb3Jp Z2V4cHI7CkBAIC0xMDIsOSArMTI3LDEyIEBAIGNvZXJjZV90b190YXJnZXRfdHlwZShQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIE9pZCBleHBydHlwZSwKIAl3aGlsZSAoZXhwciAmJiBJ c0EoZXhwciwgQ29sbGF0ZUV4cHIpKQogCQlleHByID0gKE5vZGUgKikgKChDb2xsYXRlRXhwciAq KSBleHByKS0+YXJnOwogCi0JcmVzdWx0ID0gY29lcmNlX3R5cGUocHN0YXRlLCBleHByLCBleHBy dHlwZSwKLQkJCQkJCSB0YXJnZXR0eXBlLCB0YXJnZXR0eXBtb2QsCi0JCQkJCQkgY2NvbnRleHQs IGNmb3JtYXQsIGxvY2F0aW9uKTsKKwlyZXN1bHQgPSBjb2VyY2VfdHlwZV9leHRlbmRlZChwc3Rh dGUsIGV4cHIsIGV4cHJ0eXBlLAorCQkJCQkJCQkgIHRhcmdldHR5cGUsIHRhcmdldHR5cG1vZCwK KwkJCQkJCQkJICBjY29udGV4dCwgY2Zvcm1hdCwgbG9jYXRpb24sCisJCQkJCQkJCSAgZXNjb250 ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gTlVM TDsKIAogCS8qCiAJICogSWYgdGhlIHRhcmdldCBpcyBhIGZpeGVkLWxlbmd0aCB0eXBlLCBpdCBt YXkgbmVlZCBhIGxlbmd0aCBjb2VyY2lvbiBhcwpAQCAtMTU4LDYgKzE4NiwxNyBAQCBOb2RlICoK IGNvZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCU9pZCBpbnB1 dFR5cGVJZCwgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFyZ2V0VHlwZU1vZCwKIAkJCUNvZXJj aW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsIGludCBsb2NhdGlvbikK K3sKKwlyZXR1cm4gY29lcmNlX3R5cGVfZXh0ZW5kZWQocHN0YXRlLCBub2RlLAorCQkJCQkJCQlp bnB1dFR5cGVJZCwgdGFyZ2V0VHlwZUlkLCB0YXJnZXRUeXBlTW9kLAorCQkJCQkJCQljY29udGV4 dCwgY2Zvcm1hdCwgbG9jYXRpb24sIE5VTEwpOworfQorCitOb2RlICoKK2NvZXJjZV90eXBlX2V4 dGVuZGVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKKwkJCQkJIE9pZCBpbnB1dFR5 cGVJZCwgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFyZ2V0VHlwZU1vZCwKKwkJCQkJIENvZXJj aW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJCSBpbnQgbG9j YXRpb24sIE5vZGUgKmVzY29udGV4dCkKIHsKIAlOb2RlCSAgICpyZXN1bHQ7CiAJQ29lcmNpb25Q YXRoVHlwZSBwYXRodHlwZTsKQEAgLTI1Niw2ICsyOTUsOCBAQCBjb2VyY2VfdHlwZShQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCiAJCWludDMyCQlpbnB1dFR5cGVNb2Q7CiAJCVR5cGUJ CWJhc2VUeXBlOwogCQlQYXJzZUNhbGxiYWNrU3RhdGUgcGNic3RhdGU7CisJCWNoYXIJICAgKnN0 cmluZzsKKwkJYm9vbAkJY29lcmNpb25fZmFpbGVkID0gZmFsc2U7CiAKIAkJLyoKIAkJICogSWYg dGhlIHRhcmdldCB0eXBlIGlzIGEgZG9tYWluLCB3ZSB3YW50IHRvIGNhbGwgaXRzIGJhc2UgdHlw ZSdzCkBAIC0zMDgsMjEgKzM0OSwyNyBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUs IE5vZGUgKm5vZGUsCiAJCSAqIFdlIGFzc3VtZSBoZXJlIHRoYXQgVU5LTk9XTidzIGludGVybmFs IHJlcHJlc2VudGF0aW9uIGlzIHRoZSBzYW1lCiAJCSAqIGFzIENTVFJJTkcuCiAJCSAqLwotCQlp ZiAoIWNvbi0+Y29uc3Rpc251bGwpCi0JCQluZXdjb24tPmNvbnN0dmFsdWUgPSBzdHJpbmdUeXBl RGF0dW0oYmFzZVR5cGUsCi0JCQkJCQkJCQkJCQkgRGF0dW1HZXRDU3RyaW5nKGNvbi0+Y29uc3R2 YWx1ZSksCi0JCQkJCQkJCQkJCQkgaW5wdXRUeXBlTW9kKTsKKwkJaWYgKGNvbi0+Y29uc3Rpc251 bGwpCisJCQlzdHJpbmcgPSBOVUxMOwogCQllbHNlCi0JCQluZXdjb24tPmNvbnN0dmFsdWUgPSBz dHJpbmdUeXBlRGF0dW0oYmFzZVR5cGUsCi0JCQkJCQkJCQkJCQkgTlVMTCwKLQkJCQkJCQkJCQkJ CSBpbnB1dFR5cGVNb2QpOworCQkJc3RyaW5nID0gRGF0dW1HZXRDU3RyaW5nKGNvbi0+Y29uc3R2 YWx1ZSk7CisKKwkJaWYgKCFzdHJpbmdUeXBlRGF0dW1TYWZlKGJhc2VUeXBlLAorCQkJCQkJCQkg c3RyaW5nLAorCQkJCQkJCQkgaW5wdXRUeXBlTW9kLAorCQkJCQkJCQkgZXNjb250ZXh0LAorCQkJ CQkJCQkgJm5ld2Nvbi0+Y29uc3R2YWx1ZSkpCisJCXsKKwkJCWNvZXJjaW9uX2ZhaWxlZCA9IHRy dWU7CisJCQluZXdjb24tPmNvbnN0aXNudWxsID0gdHJ1ZTsKKwkJfQogCiAJCS8qCiAJCSAqIElm IGl0J3MgYSB2YXJsZW5hIHZhbHVlLCBmb3JjZSBpdCB0byBiZSBpbiBub24tZXhwYW5kZWQKIAkJ ICogKG5vbi10b2FzdGVkKSBmb3JtYXQ7IHRoaXMgYXZvaWRzIGFueSBwb3NzaWJsZSBkZXBlbmRl bmN5IG9uCiAJCSAqIGV4dGVybmFsIHZhbHVlcyBhbmQgaW1wcm92ZXMgY29uc2lzdGVuY3kgb2Yg cmVwcmVzZW50YXRpb24uCiAJCSAqLwotCQlpZiAoIWNvbi0+Y29uc3Rpc251bGwgJiYgbmV3Y29u LT5jb25zdGxlbiA9PSAtMSkKKwkJaWYgKCFjb2VyY2lvbl9mYWlsZWQgJiYgIWNvbi0+Y29uc3Rp c251bGwgJiYgbmV3Y29uLT5jb25zdGxlbiA9PSAtMSkKIAkJCW5ld2Nvbi0+Y29uc3R2YWx1ZSA9 CiAJCQkJUG9pbnRlckdldERhdHVtKFBHX0RFVE9BU1RfREFUVU0obmV3Y29uLT5jb25zdHZhbHVl KSk7CiAKQEAgLTMzOSw3ICszODYsNyBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUs IE5vZGUgKm5vZGUsCiAJCSAqIGlkZW50aWNhbCBtYXkgbm90IGdldCByZWNvZ25pemVkIGFzIHN1 Y2guICBTZWUgcGdzcWwtaGFja2VycwogCQkgKiBkaXNjdXNzaW9uIG9mIDIwMDgtMDQtMDQuCiAJ CSAqLwotCQlpZiAoIWNvbi0+Y29uc3Rpc251bGwgJiYgIW5ld2Nvbi0+Y29uc3RieXZhbCkKKwkJ aWYgKCFjb2VyY2lvbl9mYWlsZWQgJiYgIWNvbi0+Y29uc3Rpc251bGwgJiYgIW5ld2Nvbi0+Y29u c3RieXZhbCkKIAkJewogCQkJRGF0dW0JCXZhbDI7CiAKQEAgLTM1OCw4ICs0MDUsMTAgQEAgY29l cmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCiAJCXJlc3VsdCA9IChO b2RlICopIG5ld2NvbjsKIAotCQkvKiBJZiB0YXJnZXQgaXMgYSBkb21haW4sIGFwcGx5IGNvbnN0 cmFpbnRzLiAqLwotCQlpZiAoYmFzZVR5cGVJZCAhPSB0YXJnZXRUeXBlSWQpCisJCWlmIChjb2Vy Y2lvbl9mYWlsZWQpCisJCQlyZXN1bHQgPSBOVUxMOworCQllbHNlIGlmIChiYXNlVHlwZUlkICE9 IHRhcmdldFR5cGVJZCkKKwkJCS8qIElmIHRhcmdldCBpcyBhIGRvbWFpbiwgYXBwbHkgY29uc3Ry YWludHMuICovCiAJCQlyZXN1bHQgPSBjb2VyY2VfdG9fZG9tYWluKHJlc3VsdCwKIAkJCQkJCQkJ CSAgYmFzZVR5cGVJZCwgYmFzZVR5cGVNb2QsCiAJCQkJCQkJCQkgIHRhcmdldFR5cGVJZCwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDljYmExMjcyMjUzLi42ZmVmOTA4ODA0YyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZXhwci5jCkBAIC0xNyw2ICsxNyw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3Mv aHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNp bmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKQEAgLTM3 LDYgKzM4LDcgQEAKICNpbmNsdWRlICJ1dGlscy9kYXRlLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1n cm9pZHMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9z eXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgogI2luY2x1ZGUgInV0aWxz L3htbC5oIgogCkBAIC02MCw3ICs2Miw4IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1NdWx0aUFz c2lnblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIE11bHRpQXNzaWduUmVmICptYXJlZik7CiBzdGF0 aWMgTm9kZSAqdHJhbnNmb3JtQ2FzZUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYXNlRXhwciAq Yyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1 YkxpbmsgKnN1YmxpbmspOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0 YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAotCQkJCQkJCQlPaWQgYXJyYXlfdHlwZSwgT2lk IGVsZW1lbnRfdHlwZSwgaW50MzIgdHlwbW9kKTsKKwkJCQkJCQkJT2lkIGFycmF5X3R5cGUsIE9p ZCBlbGVtZW50X3R5cGUsIGludDMyIHR5cG1vZCwKKwkJCQkJCQkJYm9vbCAqY2FuX2NvZXJjZSk7 CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtUm93RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIFJvd0V4 cHIgKnIsIGJvb2wgYWxsb3dEZWZhdWx0KTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Db2FsZXNj ZUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2FsZXNjZUV4cHIgKmMpOwogc3RhdGljIE5vZGUg KnRyYW5zZm9ybU1pbk1heEV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBNaW5NYXhFeHByICptKTsK QEAgLTc2LDYgKzc5LDggQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybVdob2xlUm93UmVmKFBhcnNl U3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJICBpbnQgc3VibGV2ZWxzX3VwLCBpbnQgbG9jYXRpb24p Owogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1UeXBlQ2FzdChQYXJz ZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0Yyk7CitzdGF0aWMgdm9pZCBDb2VyY2lvbkVycm9y U2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4cHIsCisJCQkJCQkJCSAg IE5vZGUgKnNvdXJjZWV4cHIsIE9pZCBpbnB1dFR5cGUsIE9pZCB0YXJnZXRUeXBlKTsKIHN0YXRp YyBOb2RlICp0cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sbGF0 ZUNsYXVzZSAqYyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbk9iamVjdENvbnN0cnVjdG9y KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJSnNvbk9iamVjdENvbnN0cnVjdG9yICpj dG9yKTsKQEAgLTE2NCw3ICsxNjksNyBAQCB0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAKIAkJY2FzZSBUX0FfQXJyYXlFeHByOgogCQkJcmVzdWx0 ID0gdHJhbnNmb3JtQXJyYXlFeHByKHBzdGF0ZSwgKEFfQXJyYXlFeHByICopIGV4cHIsCi0JCQkJ CQkJCQkJSW52YWxpZE9pZCwgSW52YWxpZE9pZCwgLTEpOworCQkJCQkJCQkJCUludmFsaWRPaWQs IEludmFsaWRPaWQsIC0xLCBOVUxMKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgVF9UeXBlQ2FzdDoK QEAgLTU2NCw2ICs1NjksNyBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRl LCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFU19TSU5HTEU6CiAJCWNh c2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6CiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9D SEVDSzoKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9G VU5DVElPTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgogCQlj YXNlIEVYUFJfS0lORF9JTkRFWF9QUkVESUNBVEU6CkBAIC0xODI0LDYgKzE4MzAsOSBAQCB0cmFu c2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2Fz ZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVy eSBpbiBjaGVjayBjb25zdHJhaW50Iik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FT VF9ERUZBVUxUOgorCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBDQVNUIERFRkFV TFQgZXhwcmVzc2lvbiIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZB VUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygiY2Fu bm90IHVzZSBzdWJxdWVyeSBpbiBERUZBVUxUIGV4cHJlc3Npb24iKTsKQEAgLTIwMTEsMTcgKzIw MjAsMjQgQEAgdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1 YmxpbmspCiAgKiBJZiB0aGUgY2FsbGVyIHNwZWNpZmllcyB0aGUgdGFyZ2V0IHR5cGUsIHRoZSBy ZXN1bHRpbmcgYXJyYXkgd2lsbAogICogYmUgb2YgZXhhY3RseSB0aGF0IHR5cGUuICBPdGhlcndp c2Ugd2UgdHJ5IHRvIGluZmVyIGEgY29tbW9uIHR5cGUKICAqIGZvciB0aGUgZWxlbWVudHMgdXNp bmcgc2VsZWN0X2NvbW1vbl90eXBlKCkuCisgKgorICogTW9zdCBvZiB0aGUgdGltZSwgY2FuX2Nv ZXJjZSB3aWxsIGJlIE5VTEwuICBJdCBpcyBub3QgTlVMTCBvbmx5IHdoZW4KKyAqIHBlcmZvcm1p bmcgcGFyc2UgYW5hbHlzaXMgZm9yIENBU1QoREVGQVVMVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJP UikKKyAqIGV4cHJlc3Npb24uIEl0J3MgZGVmYXVsdCB0byB0cnVlLiBJZiBjb2VyY2luZyBhcnJh eSBlbGVtZW50cyBmYWlscywgaXQgd2lsbAorICogYmUgc2V0IHRvIGZhbHNlLgogICovCiBzdGF0 aWMgTm9kZSAqCiB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5 RXhwciAqYSwKLQkJCQkgICBPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIg dHlwbW9kKQorCQkJCSAgIE9pZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0 eXBtb2QsIGJvb2wgKmNhbl9jb2VyY2UpCiB7CiAJQXJyYXlFeHByICAqbmV3YSA9IG1ha2VOb2Rl KEFycmF5RXhwcik7CiAJTGlzdAkgICAqbmV3ZWxlbXMgPSBOSUw7CiAJTGlzdAkgICAqbmV3Y29l cmNlZGVsZW1zID0gTklMOwogCUxpc3RDZWxsICAgKmVsZW1lbnQ7CiAJT2lkCQkJY29lcmNlX3R5 cGU7CisJT2lkCQkJY29lcmNlX3R5cGVfY29sbDsKIAlib29sCQljb2VyY2VfaGFyZDsKKwlFcnJv clNhdmVDb250ZXh0IGVzY29udGV4dCA9IHtUX0Vycm9yU2F2ZUNvbnRleHR9OwogCiAJLyoKIAkg KiBUcmFuc2Zvcm0gdGhlIGVsZW1lbnQgZXhwcmVzc2lvbnMKQEAgLTIwNDUsOSArMjA2MSwxMCBA QCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwK IAkJCQkJCQkJCSAgKEFfQXJyYXlFeHByICopIGUsCiAJCQkJCQkJCQkgIGFycmF5X3R5cGUsCiAJ CQkJCQkJCQkgIGVsZW1lbnRfdHlwZSwKLQkJCQkJCQkJCSAgdHlwbW9kKTsKKwkJCQkJCQkJCSAg dHlwbW9kLAorCQkJCQkJCQkJICBjYW5fY29lcmNlKTsKIAkJCS8qIHdlIGNlcnRhaW5seSBoYXZl IGFuIGFycmF5IGhlcmUgKi8KLQkJCUFzc2VydChhcnJheV90eXBlID09IEludmFsaWRPaWQgfHwg YXJyYXlfdHlwZSA9PSBleHByVHlwZShuZXdlKSk7CisJCQlBc3NlcnQoY2FuX2NvZXJjZSB8fCBh cnJheV90eXBlID09IEludmFsaWRPaWQgfHwgYXJyYXlfdHlwZSA9PSBleHByVHlwZShuZXdlKSk7 CiAJCQluZXdhLT5tdWx0aWRpbXMgPSB0cnVlOwogCQl9CiAJCWVsc2UKQEAgLTIwODgsNiArMjEw NSw5IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHBy ICphLAogCX0KIAllbHNlCiAJeworCQkvKiBUYXJnZXQgdHlwZSBtdXN0IHZhbGlkIGZvciBDQVNU IERFRkFVTFQgKi8KKwkJQXNzZXJ0KGNhbl9jb2VyY2UgPT0gTlVMTCk7CisKIAkJLyogQ2FuJ3Qg aGFuZGxlIGFuIGVtcHR5IGFycmF5IHdpdGhvdXQgYSB0YXJnZXQgdHlwZSAqLwogCQlpZiAobmV3 ZWxlbXMgPT0gTklMKQogCQkJZXJlcG9ydChFUlJPUiwKQEAgLTIxMjUsNiArMjE0NSw4IEBAIHRy YW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCQlj b2VyY2VfaGFyZCA9IGZhbHNlOwogCX0KIAorCWNvZXJjZV90eXBlX2NvbGwgPSBnZXRfdHlwY29s bGF0aW9uKGNvZXJjZV90eXBlKTsKKwogCS8qCiAJICogQ29lcmNlIGVsZW1lbnRzIHRvIHRhcmdl dCB0eXBlCiAJICoKQEAgLTIxMzQsMjggKzIxNTYsODIgQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJICogSWYgdGhlIGFycmF5J3MgdHlw ZSB3YXMgbWVyZWx5IGRlcml2ZWQgZnJvbSB0aGUgY29tbW9uIHR5cGUgb2YgaXRzCiAJICogZWxl bWVudHMsIHRoZW4gdGhlIGVsZW1lbnRzIGFyZSBpbXBsaWNpdGx5IGNvZXJjZWQgdG8gdGhlIGNv bW1vbiB0eXBlLgogCSAqIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIG90aGVyIHVzZXMgb2Ygc2Vs ZWN0X2NvbW1vbl90eXBlKCkuCisJICoKKwkgKiBJZiBjYW5fY29lcmNlIGlzIG5vdCBOVUxMLCB3 ZSBuZWVkIHRvIHNhZmVseSB0ZXN0IHdoZXRoZXIgZWFjaCBlbGVtZW50CisJICogY2FuIGJlIGNv ZXJjZWQgdG8gdGhlIHRhcmdldCB0eXBlLCBzaW1pbGFyIHRvIHdoYXQgaXMgZG9uZSBpbgorCSAq IHRyYW5zZm9ybVR5cGVTYWZlQ2FzdC4KIAkgKi8KIAlmb3JlYWNoKGVsZW1lbnQsIG5ld2VsZW1z KQogCXsKIAkJTm9kZQkgICAqZSA9IChOb2RlICopIGxmaXJzdChlbGVtZW50KTsKLQkJTm9kZQkg ICAqbmV3ZTsKKwkJTm9kZQkgICAqbmV3ZSA9IE5VTEw7CiAKIAkJaWYgKGNvZXJjZV9oYXJkKQog CQl7Ci0JCQluZXdlID0gY29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwgZSwKLQkJCQkJCQkJ CQkgZXhwclR5cGUoZSksCi0JCQkJCQkJCQkJIGNvZXJjZV90eXBlLAotCQkJCQkJCQkJCSB0eXBt b2QsCi0JCQkJCQkJCQkJIENPRVJDSU9OX0VYUExJQ0lULAotCQkJCQkJCQkJCSBDT0VSQ0VfRVhQ TElDSVRfQ0FTVCwKLQkJCQkJCQkJCQkgLTEpOwotCQkJaWYgKG5ld2UgPT0gTlVMTCkKLQkJCQll cmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9DQU5OT1RfQ09FUkNFKSwKLQkJ CQkJCSBlcnJtc2coImNhbm5vdCBjYXN0IHR5cGUgJXMgdG8gJXMiLAotCQkJCQkJCQlmb3JtYXRf dHlwZV9iZShleHByVHlwZShlKSksCi0JCQkJCQkJCWZvcm1hdF90eXBlX2JlKGNvZXJjZV90eXBl KSksCi0JCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGUpKSkp OworCQkJLyoKKwkJCSAqIENhbiBub3QgY29lcmNlLCBqdXN0IGFwcGVuZCB0aGUgdHJhbnNmb3Jt ZWQgZWxlbWVudCBleHByZXNzaW9uCisJCQkgKiB0byB0aGUgbGlzdC4KKwkJCSAqLworCQkJaWYg KGNhbl9jb2VyY2UgJiYgKCEqY2FuX2NvZXJjZSkpCisJCQkJbmV3ZSA9IGU7CisJCQllbHNlCisJ CQl7CisJCQkJTm9kZQkgICAqZWNvcHkgPSBOVUxMOworCisJCQkJaWYgKGNhbl9jb2VyY2UpCisJ CQkJCWVjb3B5ID0gY29weU9iamVjdChlKTsKKworCQkJCW5ld2UgPSBjb2VyY2VfdG9fdGFyZ2V0 X3R5cGVfZXh0ZW5kZWQocHN0YXRlLCBlLAorCQkJCQkJCQkJCQkJCSAgZXhwclR5cGUoZSksCisJ CQkJCQkJCQkJCQkJICBjb2VyY2VfdHlwZSwKKwkJCQkJCQkJCQkJCQkgIHR5cG1vZCwKKwkJCQkJ CQkJCQkJCQkgIENPRVJDSU9OX0VYUExJQ0lULAorCQkJCQkJCQkJCQkJCSAgQ09FUkNFX0VYUExJ Q0lUX0NBU1QsCisJCQkJCQkJCQkJCQkJICAtMSwKKwkJCQkJCQkJCQkJCQkgIChOb2RlICopICZl c2NvbnRleHQpOworCQkJCWlmIChuZXdlID09IE5VTEwpCisJCQkJeworCQkJCQlpZiAoIWNhbl9j b2VyY2UpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0NB Tk5PVF9DT0VSQ0UpLAorCQkJCQkJCQkgZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRvICVz IiwKKwkJCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHByVHlwZShlKSksCisJCQkJCQkJCQkJZm9y bWF0X3R5cGVfYmUoY29lcmNlX3R5cGUpKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihw c3RhdGUsIGV4cHJMb2NhdGlvbihlKSkpKTsKKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQkvKgor CQkJCQkJICogQ2FuIG5vdCBjb2VyY2UsIGp1c3QgYXBwZW5kIHRoZSB0cmFuc2Zvcm1lZCBlbGVt ZW50CisJCQkJCQkgKiBleHByZXNzaW9uIHRvIHRoZSBsaXN0LgorCQkJCQkJICovCisJCQkJCQlu ZXdlID0gZWNvcHk7CisJCQkJCQkqY2FuX2NvZXJjZSA9IGZhbHNlOworCQkJCQl9CisJCQkJfQor CQkJCWVsc2UgaWYgKGNhbl9jb2VyY2UgJiYgSXNBKGVjb3B5LCBDb25zdCkgJiYgSXNBKG5ld2Us IEZ1bmNFeHByKSkKKwkJCQl7CisJCQkJCU5vZGUJICAgKnJlc3VsdDsKKworCQkJCQkvKgorCQkJ CQkgKiBwcmUtZXZhbHVhdGUgc2ltcGxlIGNvbnN0YW50IGNhc3QgZXhwcmVzc2lvbnMgaW4gYSB3 YXkKKwkJCQkJICogdGhhdCB0b2xlcmF0ZSBlcnJvcnMuCisJCQkJCSAqLworCQkJCQlGdW5jRXhw ciAgICpuZXdleHByID0gKEZ1bmNFeHByICopIGNvcHlPYmplY3QobmV3ZSk7CisKKwkJCQkJYXNz aWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIChOb2RlICopIG5ld2V4cHIpOworCisJCQkJCXJl c3VsdCA9IChOb2RlICopIGV2YWx1YXRlX2V4cHIoKEV4cHIgKikgbmV3ZXhwciwKKwkJCQkJCQkJ CQkJCQljb2VyY2VfdHlwZSwKKwkJCQkJCQkJCQkJCQl0eXBtb2QsCisJCQkJCQkJCQkJCQkJY29l cmNlX3R5cGVfY29sbCwKKwkJCQkJCQkJCQkJCQkoTm9kZSAqKSAmZXNjb250ZXh0KTsKKwkJCQkJ aWYgKHJlc3VsdCA9PSBOVUxMKQorCQkJCQl7CisJCQkJCQluZXdlID0gZWNvcHk7CisJCQkJCQkq Y2FuX2NvZXJjZSA9IGZhbHNlOworCQkJCQl9CisJCQkJfQorCQkJfQogCQl9CiAJCWVsc2UKIAkJ CW5ld2UgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCBlLApAQCAtMjY5Niw3ICsyNzcy LDggQEAgdHJhbnNmb3JtV2hvbGVSb3dSZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJzZU5hbWVz cGFjZUl0ZW0gKm5zaXRlbSwKIH0KIAogLyoKLSAqIEhhbmRsZSBhbiBleHBsaWNpdCBDQVNUIGNv bnN0cnVjdC4KKyAqIEhhbmRsZSBhbiBleHBsaWNpdCBDQVNUIGNvbnN0cnVjdCBvcgorICogQ0FT VCguLi4gREVGQVVMVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUikgY29uc3RydWN0LgogICoKICAq IFRyYW5zZm9ybSB0aGUgYXJndW1lbnQsIGxvb2sgdXAgdGhlIHR5cGUgbmFtZSwgYW5kIGFwcGx5 IGFueSBuZWNlc3NhcnkKICAqIGNvZXJjaW9uIGZ1bmN0aW9uKHMpLgpAQCAtMjcwNCwxNyArMjc4 MSw2NCBAQCB0cmFuc2Zvcm1XaG9sZVJvd1JlZihQYXJzZVN0YXRlICpwc3RhdGUsIFBhcnNlTmFt ZXNwYWNlSXRlbSAqbnNpdGVtLAogc3RhdGljIE5vZGUgKgogdHJhbnNmb3JtVHlwZUNhc3QoUGFy c2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpCiB7Ci0JTm9kZQkgICAqcmVzdWx0OworCVNh ZmVUeXBlQ2FzdEV4cHIgKnN0YzsKKwlOb2RlCSAgICpjYXN0X2V4cHIgPSBOVUxMOworCU5vZGUJ ICAgKmRlZmV4cHIgPSBOVUxMOwogCU5vZGUJICAgKmFyZyA9IHRjLT5hcmc7CisJTm9kZQkgICAq c3JjZXhwcjsKIAlOb2RlCSAgICpleHByOwogCU9pZAkJCWlucHV0VHlwZTsKIAlPaWQJCQl0YXJn ZXRUeXBlOworCU9pZAkJCXRhcmdldFR5cGVjb2xsOwogCWludDMyCQl0YXJnZXRUeXBtb2Q7CiAJ aW50CQkJbG9jYXRpb247CisJYm9vbAkJY2FuX2NvZXJjZSA9IHRydWU7CisJRXJyb3JTYXZlQ29u dGV4dCBlc2NvbnRleHQgPSB7VF9FcnJvclNhdmVDb250ZXh0fTsKIAogCS8qIExvb2sgdXAgdGhl IHR5cGUgbmFtZSBmaXJzdCAqLwogCXR5cGVuYW1lVHlwZUlkQW5kTW9kKHBzdGF0ZSwgdGMtPnR5 cGVOYW1lLCAmdGFyZ2V0VHlwZSwgJnRhcmdldFR5cG1vZCk7CiAKKwl0YXJnZXRUeXBlY29sbCA9 IGdldF90eXBjb2xsYXRpb24odGFyZ2V0VHlwZSk7CisKKwkvKiBub3cgbG9va2luZyBhdCBERUZB VUxUIGV4cHJlc3Npb24gKi8KKwlpZiAodGMtPnJhd19kZWZhdWx0KQorCXsKKwkJT2lkCQkJZGVm Q29sbDsKKworCQlkZWZleHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHRjLT5yYXdfZGVmYXVs dCwgRVhQUl9LSU5EX0NBU1RfREVGQVVMVCk7CisKKwkJZGVmZXhwciA9IGNvZXJjZV90b190YXJn ZXRfdHlwZShwc3RhdGUsIGRlZmV4cHIsIGV4cHJUeXBlKGRlZmV4cHIpLAorCQkJCQkJCQkJCXRh cmdldFR5cGUsIHRhcmdldFR5cG1vZCwKKwkJCQkJCQkJCQlDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJ CQkJCQkJCQlDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQlleHByTG9jYXRpb24oZGVm ZXhwcikpOworCQlpZiAoZGVmZXhwciA9PSBOVUxMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ ZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLAorCQkJCQllcnJtc2coImNhbm5vdCBjb2Vy Y2UgJXMgZXhwcmVzc2lvbiB0byB0eXBlICVzIiwKKwkJCQkJCSAgICJDQVNUIERFRkFVTFQiLAor CQkJCQkJICAgZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSkpLAorCQkJCQlwYXJzZXJfY29lcmNp b25fZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24odGMtPnJhd19kZWZhdWx0KSwgZGVm ZXhwcikpOworCisJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBkZWZleHByKTsKKwor CQkvKgorCQkgKiBUaGUgY29sbGF0aW9uIG9mIERFRkFVTFQgZXhwcmVzc2lvbiBtdXN0IG1hdGNo IHRoZSBjb2xsYXRpb24gb2YgdGhlCisJCSAqIHRhcmdldCB0eXBlLgorCQkgKi8KKwkJZGVmQ29s bCA9IGV4cHJDb2xsYXRpb24oZGVmZXhwcik7CisKKwkJaWYgKE9pZElzVmFsaWQodGFyZ2V0VHlw ZWNvbGwpICYmIE9pZElzVmFsaWQoZGVmQ29sbCkgJiYKKwkJCXRhcmdldFR5cGVjb2xsICE9IGRl ZkNvbGwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfREFUQVRZUEVf TUlTTUFUQ0gpLAorCQkJCQllcnJtc2coInRoZSBjb2xsYXRpb24gb2YgQ0FTVCBERUZBVUxUIGV4 cHJlc3Npb24gY29uZmxpY3RzIHdpdGggdGFyZ2V0IHR5cGUgY29sbGF0aW9uIiksCisJCQkJCWVy cmRldGFpbCgiXCIlc1wiIHZlcnN1cyBcIiVzXCIiLAorCQkJCQkJCSAgZ2V0X2NvbGxhdGlvbl9u YW1lKHRhcmdldFR5cGVjb2xsKSwKKwkJCQkJCQkgIGdldF9jb2xsYXRpb25fbmFtZShkZWZDb2xs KSksCisJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihkZWZleHBy KSkpOworCX0KKwogCS8qCiAJICogSWYgdGhlIHN1YmplY3Qgb2YgdGhlIHR5cGVjYXN0IGlzIGFu IEFSUkFZW10gY29uc3RydWN0IGFuZCB0aGUgdGFyZ2V0CiAJICogdHlwZSBpcyBhbiBhcnJheSB0 eXBlLCB3ZSBpbnZva2UgdHJhbnNmb3JtQXJyYXlFeHByKCkgZGlyZWN0bHkgc28gdGhhdApAQCAt Mjc0Myw3ICsyODY3LDggQEAgdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBU eXBlQ2FzdCAqdGMpCiAJCQkJCQkJCQkgIChBX0FycmF5RXhwciAqKSBhcmcsCiAJCQkJCQkJCQkg IHRhcmdldEJhc2VUeXBlLAogCQkJCQkJCQkJICBlbGVtZW50VHlwZSwKLQkJCQkJCQkJCSAgdGFy Z2V0QmFzZVR5cG1vZCk7CisJCQkJCQkJCQkgIHRhcmdldEJhc2VUeXBtb2QsCisJCQkJCQkJCQkg IGRlZmV4cHIgPyAmY2FuX2NvZXJjZSA6IE5VTEwpOwogCQl9CiAJCWVsc2UKIAkJCWV4cHIgPSB0 cmFuc2Zvcm1FeHByUmVjdXJzZShwc3RhdGUsIGFyZyk7CkBAIC0yNzY0LDIwICsyODg5LDIwMCBA QCB0cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0YykKIAlp ZiAobG9jYXRpb24gPCAwKQogCQlsb2NhdGlvbiA9IHRjLT50eXBlTmFtZS0+bG9jYXRpb247CiAK LQlyZXN1bHQgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBleHByLCBpbnB1dFR5cGUs Ci0JCQkJCQkJCSAgIHRhcmdldFR5cGUsIHRhcmdldFR5cG1vZCwKLQkJCQkJCQkJICAgQ09FUkNJ T05fRVhQTElDSVQsCi0JCQkJCQkJCSAgIENPRVJDRV9FWFBMSUNJVF9DQVNULAotCQkJCQkJCQkg ICBsb2NhdGlvbik7Ci0JaWYgKHJlc3VsdCA9PSBOVUxMKQorCS8qCisJICogY29lcmNlX3RvX3Rh cmdldF90eXBlX2V4dGVuZGVkIGlzIHVubGlrZWx5IHRvIG1vZGlmeSB0aGUgc291cmNlCisJICog ZXhwcmVzc2lvbiwgYnV0IHdlIHN0aWxsIGNyZWF0ZSBhIGNvcHkgYmVmb3JlaGFuZC4gVGhpcyBh bGxvd3MKKwkgKiBTYWZlVHlwZUNhc3RFeHByIHRvIHJlY2VpdmUgdGhlIHRyYW5zZm9ybWVkIHNv dXJjZSBleHByZXNzaW9uCisJICogdW5jaGFuZ2VkLgorCSAqLworCXNyY2V4cHIgPSBjb3B5T2Jq ZWN0KGV4cHIpOworCisJaWYgKGNhbl9jb2VyY2UpCisJeworCQljYXN0X2V4cHIgPSBjb2VyY2Vf dG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQocHN0YXRlLCBleHByLCBpbnB1dFR5cGUsCisJCQkJCQkJ CQkJCQkgICB0YXJnZXRUeXBlLCB0YXJnZXRUeXBtb2QsCisJCQkJCQkJCQkJCQkgICBDT0VSQ0lP Tl9FWFBMSUNJVCwKKwkJCQkJCQkJCQkJCSAgIENPRVJDRV9FWFBMSUNJVF9DQVNULAorCQkJCQkJ CQkJCQkJICAgbG9jYXRpb24sCisJCQkJCQkJCQkJCQkgICBkZWZleHByID8gKE5vZGUgKikgJmVz Y29udGV4dCA6IE5VTEwpOworCisJCS8qCisJCSAqIElmIHRoaXMgaXMgYSBzaW1wbGUgQ0FTVCBj b25zdHJ1Y3QsIHJldHVybiB0aGUgY2FzdCBleHByZXNzaW9uIG5vdywKKwkJICogb3IgdGhyb3cg YW4gZXJyb3IuCisJCSAqLworCQlpZiAoZGVmZXhwciA9PSBOVUxMKQorCQl7CisJCQlpZiAoY2Fz dF9leHByID09IE5VTEwpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNP REVfQ0FOTk9UX0NPRVJDRSksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRv ICVzIiwKKwkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoaW5wdXRUeXBlKSwKKwkJCQkJCQkJZm9ybWF0 X3R5cGVfYmUodGFyZ2V0VHlwZSkpLAorCQkJCQkJIHBhcnNlcl9jb2VyY2lvbl9lcnJwb3NpdGlv bihwc3RhdGUsIGxvY2F0aW9uLCBleHByKSkpOworCisJCQlyZXR1cm4gY2FzdF9leHByOworCQl9 CisKKwkJaWYgKGNhc3RfZXhwciA9PSBOVUxMKQorCQkJY2FuX2NvZXJjZSA9IGZhbHNlOworCX0K KworCS8qIEZ1cnRoZXIgY2hlY2sgQ0FTVCguLi4gREVGQVVMVCAuLi4gT04gQ09OVkVSU0lPTiBF UlJPUikgY29uc3RydWN0ICovCisJQ29lcmNpb25FcnJvclNhZmVDaGVjayhwc3RhdGUsIGNhc3Rf ZXhwciwgc3JjZXhwciwgaW5wdXRUeXBlLAorCQkJCQkJICAgdGFyZ2V0VHlwZSk7CisKKwlpZiAo SXNBKHNyY2V4cHIsIENvbnN0KSAmJiBjYXN0X2V4cHIgJiYgSXNBKGNhc3RfZXhwciwgRnVuY0V4 cHIpKQorCXsKKwkJTm9kZQkgICAqcmVzdWx0OworCisJCS8qCisJCSAqIHByZS1ldmFsdWF0ZSBz aW1wbGUgY29uc3RhbnQgY2FzdCBleHByZXNzaW9uIGluIGEgZXJyb3Igc2FmZSB3YXkKKwkJICoK KwkJICogUmF0aW9uYWxlOgorCQkgKgorCQkgKiAxLiBXaGVuIGRlcGFyc2luZyBzYWZlIGNhc3Qg ZXhwcmVzc2lvbiAob3IgaW4gb3RoZXIgY2FzZXMpLAorCQkgKiBldmFsX2NvbnN0X2V4cHJlc3Np b25zIG1pZ2h0IGJlIGludm9rZWQsIGJ1dCBpdCBjYW5ub3QgaGFuZGxlCisJCSAqIGVycm9ycyBn cmFjZWZ1bGx5LgorCQkgKgorCQkgKiAyLiBFdmVuIGlmIEZ1bmNFeHByIChmb3IgY2FzdGZ1bmMp IG5vZGUgaGFzIHRocmVlIGFyZ3VtZW50cywgdGhlCisJCSAqIHNlY29uZCBhbmQgdGhpcmQgYXJn dW1lbnRzIHdpbGwgYWxzbyBiZSBjb25zdGFudHMgcGVyCisJCSAqIGNvZXJjZV90b190YXJnZXRf dHlwZS4gRXZhbHVhdGluZyBhIEZ1bmNFeHByIHdob3NlIGFyZ3VtZW50cyBhcmUKKwkJICogYWxs IENvbnN0IGlzIHNhZmUuCisJCSAqLworCQlGdW5jRXhwciAgICpuZXdleHByID0gKEZ1bmNFeHBy ICopIGNvcHlPYmplY3QoY2FzdF9leHByKTsKKworCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBz dGF0ZSwgKE5vZGUgKikgbmV3ZXhwcik7CisKKwkJcmVzdWx0ID0gKE5vZGUgKikgZXZhbHVhdGVf ZXhwcigoRXhwciAqKSBuZXdleHByLAorCQkJCQkJCQkJCXRhcmdldFR5cGUsCisJCQkJCQkJCQkJ dGFyZ2V0VHlwbW9kLAorCQkJCQkJCQkJCXRhcmdldFR5cGVjb2xsLAorCQkJCQkJCQkJCShOb2Rl ICopICZlc2NvbnRleHQpOworCQlpZiAocmVzdWx0ID09IE5VTEwpCisJCXsKKwkJCS8qIGNhbiBu b3QgY29lcmNlLCBzZXQgY2FuX2NvZXJjZSB0byBmYWxzZSAqLworCQkJY2FuX2NvZXJjZSA9IGZh bHNlOworCQkJY2FzdF9leHByID0gTlVMTDsKKwkJfQorCX0KKworCUFzc2VydChjYW5fY29lcmNl IHx8IGNhc3RfZXhwciA9PSBOVUxMKTsKKworCXN0YyA9IG1ha2VOb2RlKFNhZmVUeXBlQ2FzdEV4 cHIpOworCXN0Yy0+c291cmNlX2V4cHIgPSBzcmNleHByOworCXN0Yy0+Y2FzdF9leHByID0gY2Fz dF9leHByOworCXN0Yy0+ZGVmYXVsdF9leHByID0gZGVmZXhwcjsKKwlzdGMtPnJlc3VsdHR5cGUg PSB0YXJnZXRUeXBlOworCXN0Yy0+cmVzdWx0dHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCXN0Yy0+ cmVzdWx0Y29sbGlkID0gdGFyZ2V0VHlwZWNvbGw7CisJc3RjLT5sb2NhdGlvbiA9IGxvY2F0aW9u OworCisJcmV0dXJuIChOb2RlICopIHN0YzsKK30KKworLyoKKyAqIENoZWNrIHR5cGUgY29lcmNp b24gaXMgZXJyb3Igc2FmZSBvciBub3QuICBJZiBub3QgdGhlbiByZXBvcnQgZXJyb3IKKyAqLwor c3RhdGljIHZvaWQKK0NvZXJjaW9uRXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBO b2RlICpjYXN0ZXhwciwgTm9kZSAqc291cmNlZXhwciwKKwkJCQkJICAgT2lkIGlucHV0VHlwZSwg T2lkIHRhcmdldFR5cGUpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCWJvb2wJCWVycm9yc2FmZSA9 IHRydWU7CisJYm9vbAkJdXNlcmRlZmluZWQgPSBmYWxzZTsKKwlPaWQJCQlpbnB1dEJhc2VUeXBl OworCU9pZAkJCXRhcmdldEJhc2VUeXBlOworCU9pZAkJCWlucHV0RWxlbWVudFR5cGU7CisJT2lk CQkJaW5wdXRFbGVtZW50QmFzZVR5cGU7CisJT2lkCQkJdGFyZ2V0RWxlbWVudFR5cGU7CisJT2lk CQkJdGFyZ2V0RWxlbWVudEJhc2VUeXBlOworCisJLyoKKwkgKiBCaW5hcnkgY29lcmNpb24gY2Fz dCBpcyBlcXVpdmFsZW50IHRvIG5vIGNhc3QgYXQgYWxsLiAgQ29lcmNlVmlhSU8gY2FuCisJICog YWxzbyBiZSBldmFsdWF0ZWQgaW4gYW4gZXJyb3Itc2FmZSBtYW5uZXIuIFNvIHNraXAgdGhlc2Ug dHdvIGNhc2VzLgorCSAqLworCWlmICghY2FzdGV4cHIgfHwgSXNBKGNhc3RleHByLCBSZWxhYmVs VHlwZSkgfHwKKwkJSXNBKGNhc3RleHByLCBDb2VyY2VWaWFJTykpCisJCXJldHVybjsKKworCS8q CisJICogVHlwZSBjYXN0IGludm9sdmluZyB3aXRoIHNvbWUgdHlwZXMgaXMgbm90IGVycm9yIHNh ZmUsIGRvIHRoZSBjaGVjaworCSAqIG5vdy4gV2UgbmVlZCBjb25zaWRlciBkb21haW4gb3ZlciBh cnJheSBhbmQgYXJyYXkgb3ZlciBkb21haW4gc2NhcmVuaW8uCisJICogV2UgYWxyZWFkeSBjaGVj a2VkIHVzZXItZGVmaW5lZCB0eXBlIGNhc3QgYWJvdmUuCisJICovCisJaW5wdXRFbGVtZW50VHlw ZSA9IGdldF9lbGVtZW50X3R5cGUoaW5wdXRUeXBlKTsKKworCWlmIChPaWRJc1ZhbGlkKGlucHV0 RWxlbWVudFR5cGUpKQorCQlpbnB1dEVsZW1lbnRCYXNlVHlwZSA9IGdldEJhc2VUeXBlKGlucHV0 RWxlbWVudFR5cGUpOworCWVsc2UKKwl7CisJCWlucHV0QmFzZVR5cGUgPSBnZXRCYXNlVHlwZShp bnB1dFR5cGUpOworCisJCWlucHV0RWxlbWVudEJhc2VUeXBlID0gZ2V0X2VsZW1lbnRfdHlwZShp bnB1dEJhc2VUeXBlKTsKKwkJaWYgKCFPaWRJc1ZhbGlkKGlucHV0RWxlbWVudEJhc2VUeXBlKSkK KwkJCWlucHV0RWxlbWVudEJhc2VUeXBlID0gaW5wdXRCYXNlVHlwZTsKKwl9CisKKwl0YXJnZXRF bGVtZW50VHlwZSA9IGdldF9lbGVtZW50X3R5cGUodGFyZ2V0VHlwZSk7CisKKwlpZiAoT2lkSXNW YWxpZCh0YXJnZXRFbGVtZW50VHlwZSkpCisJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IGdldEJh c2VUeXBlKHRhcmdldEVsZW1lbnRUeXBlKTsKKwllbHNlCisJeworCQl0YXJnZXRCYXNlVHlwZSA9 IGdldEJhc2VUeXBlKHRhcmdldFR5cGUpOworCisJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IGdl dF9lbGVtZW50X3R5cGUodGFyZ2V0QmFzZVR5cGUpOworCQlpZiAoIU9pZElzVmFsaWQodGFyZ2V0 RWxlbWVudEJhc2VUeXBlKSkKKwkJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IHRhcmdldEJhc2VU eXBlOworCX0KKworCWlmIChpbnB1dEVsZW1lbnRCYXNlVHlwZSA9PSBNT05FWU9JRCB8fAorCQl0 YXJnZXRFbGVtZW50QmFzZVR5cGUgPT0gTU9ORVlPSUQgfHwKKwkJKGlucHV0RWxlbWVudEJhc2VU eXBlID09IENJUkNMRU9JRCAmJgorCQkgdGFyZ2V0RWxlbWVudEJhc2VUeXBlID09IFBPTFlHT05P SUQpKQorCXsKKwkJLyoKKwkJICogQ2FzdHMgaW52b2x2aW5nIE1PTkVZIHR5cGUgYXJlIG5vdCBl cnJvciBzYWZlLiBUaGUgQ0lSQ0xFIHRvCisJCSAqIFBPTFlHT04gY2FzdCBpcyBhbHNvIHVuc2Fm ZSBiZWNhdXNlIGl0IHJlbGllcyBvbiBhIFNRTC1sYW5ndWFnZQorCQkgKiBmdW5jdGlvbjsgb25s eSBDLWxhbmd1YWdlIGZ1bmN0aW9ucyBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmb3IKKwkJICog ZXJyb3Igc2FmZSBjYXN0cy4KKwkJICovCisJCWVycm9yc2FmZSA9IGZhbHNlOworCX0KKworCWlm IChlcnJvcnNhZmUpCisJeworCQkvKiBMb29rIGluIHBnX2Nhc3QgKi8KKwkJdHVwbGUgPSBTZWFy Y2hTeXNDYWNoZTIoQ0FTVFNPVVJDRVRBUkdFVCwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShp bnB1dEVsZW1lbnRCYXNlVHlwZSksCisJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odGFyZ2V0RWxl bWVudEJhc2VUeXBlKSk7CisKKwkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQl7CisJ CQlGb3JtX3BnX2Nhc3QgY2FzdEZvcm0gPSAoRm9ybV9wZ19jYXN0KSBHRVRTVFJVQ1QodHVwbGUp OworCisJCQlpZiAoY2FzdEZvcm0tPm9pZCA+IEZpcnN0VW5waW5uZWRPYmplY3RJZCkKKwkJCXsK KwkJCQllcnJvcnNhZmUgPSBmYWxzZTsKKwkJCQl1c2VyZGVmaW5lZCA9IHRydWU7CisJCQl9CisK KwkJCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisJCX0KKwl9CisKKwlpZiAoIWVycm9yc2FmZSkK IAkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLAot CQkJCSBlcnJtc2coImNhbm5vdCBjYXN0IHR5cGUgJXMgdG8gJXMiLAotCQkJCQkJZm9ybWF0X3R5 cGVfYmUoaW5wdXRUeXBlKSwKLQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGUpKSwKLQkJ CQkgcGFyc2VyX2NvZXJjaW9uX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24sIGV4cHIpKSk7 Ci0KLQlyZXR1cm4gcmVzdWx0OworCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJCWVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyB3aGVuICVzIGV4 cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluICVzIiwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUoaW5w dXRUeXBlKSwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSksCisJCQkJCSAgICJE RUZBVUxUIiwKKwkJCQkJICAgIkNBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IiKSwKKwkJCQl1 c2VyZGVmaW5lZAorCQkJCT8gZXJyaGludCgiU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5l ZCB0eXBlcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQiKQorCQkJCTogZXJyaGludCgiRXhwbGljaXQg Y2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlIiksCisJCQkJ cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHNvdXJjZWV4cHIpKSk7CiB9 CiAKIC8qCkBAIC0zMTkzLDYgKzM0OTgsOCBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJL aW5kIGV4cHJLaW5kKQogCQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgogCQljYXNl IEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQlyZXR1cm4gIkNIRUNLIjsKKwkJY2FzZSBFWFBS X0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJcmV0dXJuICJDQVNUIERFRkFVTFQiOwogCQljYXNlIEVY UFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVM VDoKIAkJCXJldHVybiAiREVGQVVMVCI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCAyNGY2 NzQ1OTIzYi4uNTkwYThhNzg1YzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9mdW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjc0Myw2 ICsyNzQzLDkgQEAgY2hlY2tfc3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwg Tm9kZSAqbGFzdF9zcmYsIGludCBsb2NhdGlvbikKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NI RUNLOgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2Vk IGluIGNoZWNrIGNvbnN0cmFpbnRzIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FT VF9ERUZBVUxUOgorCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBh bGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAJCWNhc2Ug RVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZB VUxUOgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2Vk IGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV90eXBlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jCmluZGV4IGJi N2VjY2RlOWZkLi5lYmExN2NiZjI0MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3R5cGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jCkBAIC0xOSw2 ICsxOSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAibGliL3N0 cmluZ2luZm8uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKKyNpbmNsdWRlICJub2Rl cy9taXNjbm9kZXMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUg InBhcnNlci9wYXJzZXIuaCIKICNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgpAQCAtNjYwLDYgKzY2 MSwxOSBAQCBzdHJpbmdUeXBlRGF0dW0oVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0 eXBtb2QpCiAJcmV0dXJuIE9pZElucHV0RnVuY3Rpb25DYWxsKHR5cGlucHV0LCBzdHJpbmcsIHR5 cGlvcGFyYW0sIGF0dHR5cG1vZCk7CiB9CiAKKy8qIGVycm9yLXNhZmUgdmVyc2lvbiBvZiBzdHJp bmdUeXBlRGF0dW0gKi8KK2Jvb2wKK3N0cmluZ1R5cGVEYXR1bVNhZmUoVHlwZSB0cCwgY2hhciAq c3RyaW5nLCBpbnQzMiBhdHR0eXBtb2QsCisJCQkJCU5vZGUgKmVzY29udGV4dCwgRGF0dW0gKnJl c3VsdCkKK3sKKwlGb3JtX3BnX3R5cGUgdHlwZm9ybSA9IChGb3JtX3BnX3R5cGUpIEdFVFNUUlVD VCh0cCk7CisJT2lkCQkJdHlwaW5wdXQgPSB0eXBmb3JtLT50eXBpbnB1dDsKKwlPaWQJCQl0eXBp b3BhcmFtID0gZ2V0VHlwZUlPUGFyYW0odHApOworCisJcmV0dXJuIE9pZElucHV0RnVuY3Rpb25D YWxsU2FmZSh0eXBpbnB1dCwgc3RyaW5nLCB0eXBpb3BhcmFtLCBhdHR0eXBtb2QsCisJCQkJCQkJ CQllc2NvbnRleHQsIHJlc3VsdCk7Cit9CisKIC8qCiAgKiBHaXZlbiBhIHR5cGVpZCwgcmV0dXJu IHRoZSB0eXBlJ3MgdHlwcmVsaWQgKGFzc29jaWF0ZWQgcmVsYXRpb24pLCBpZiBhbnkuCiAgKiBS ZXR1cm5zIEludmFsaWRPaWQgaWYgdHlwZSBpcyBub3QgYSBjb21wb3NpdGUgdHlwZS4KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IDk2ZjQ0MmM0MTQ1Li43YWM5NDg2Zjc4MSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC00OTQzLDcgKzQ5NDMsNyBAQCB0cmFuc2Zv cm1QYXJ0aXRpb25Cb3VuZFZhbHVlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqdmFsLAogCQlh c3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgdmFsdWUpOwogCQl2YWx1ZSA9IChOb2RlICop IGV4cHJlc3Npb25fcGxhbm5lcigoRXhwciAqKSB2YWx1ZSk7CiAJCXZhbHVlID0gKE5vZGUgKikg ZXZhbHVhdGVfZXhwcigoRXhwciAqKSB2YWx1ZSwgY29sVHlwZSwgY29sVHlwbW9kLAotCQkJCQkJ CQkJICAgcGFydENvbGxhdGlvbik7CisJCQkJCQkJCQkgICBwYXJ0Q29sbGF0aW9uLCBOVUxMKTsK IAkJaWYgKCFJc0EodmFsdWUsIENvbnN0KSkKIAkJCWVsb2coRVJST1IsICJjb3VsZCBub3QgZXZh bHVhdGUgcGFydGl0aW9uIGJvdW5kIGV4cHJlc3Npb24iKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Fy cmF5ZnVuY3MuYwppbmRleCBlNzFkMzI3NzNiNS4uYzJlZmZlMTA2MjAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2FycmF5ZnVuY3MuYwpAQCAtMzI4OSw2ICszMjg5LDE0IEBAIGFycmF5X21hcChEYXR1bSBh cnJheWQsCiAJCS8qIEFwcGx5IHRoZSBnaXZlbiBleHByZXNzaW9uIHRvIHNvdXJjZSBlbGVtZW50 ICovCiAJCXZhbHVlc1tpXSA9IEV4ZWNFdmFsRXhwcihleHByc3RhdGUsIGVjb250ZXh0LCAmbnVs bHNbaV0pOwogCisJCS8qIEV4aXQgZWFybHkgaWYgdGhlIGV2YWx1YXRpb24gZmFpbHMgKi8KKwkJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXhwcnN0YXRlLT5lc2NvbnRleHQpKQorCQl7CisJCQlw ZnJlZSh2YWx1ZXMpOworCQkJcGZyZWUobnVsbHMpOworCQkJcmV0dXJuIChEYXR1bSkgMDsKKwkJ fQorCiAJCWlmIChudWxsc1tpXSkKIAkJCWhhc251bGxzID0gdHJ1ZTsKIAkJZWxzZQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDQxNmYxYTIxYWU0Li5hZTFhMTEzYjlhNSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMTA1NjIsNiArMTA1NjIsMjcgQEAgZ2V0X3J1bGVf ZXhwcihOb2RlICpub2RlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJCQl9CiAJCQlicmVh azsKIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RF eHByICpzdGNleHByID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0RXhwciwgbm9kZSk7CisKKwkJCQkv KgorCQkJCSAqIEhlcmUsIHdlIGNhbm5vdCBkZXBhcnNpbmcgY2FzdF9leHByIGRpcmVjdGx5LCBz aW5jZQorCQkJCSAqIHRyYW5zZm9ybVR5cGVTYWZlQ2FzdCBtYXkgaGF2ZSBmb2xkZWQgaXQgaW50 byBhIHNpbXBsZQorCQkJCSAqIGNvbnN0YW50IG9yIE5VTEwuIEluc3RlYWQsIHdlIHVzZSBzb3Vy Y2VfZXhwciBhbmQKKwkJCQkgKiBkZWZhdWx0X2V4cHIgdG8gcmVjb25zdHJ1Y3QgdGhlIENBU1Qg REVGQVVMVCBjbGF1c2UuCisJCQkJICovCisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYs ICJDQVNUKCIpOworCQkJCWdldF9ydWxlX2V4cHIoc3RjZXhwci0+c291cmNlX2V4cHIsIGNvbnRl eHQsIHNob3dpbXBsaWNpdCk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiBBUyAlcyAi LAorCQkJCQkJCQkgZm9ybWF0X3R5cGVfd2l0aF90eXBlbW9kKHN0Y2V4cHItPnJlc3VsdHR5cGUs CisJCQkJCQkJCQkJCQkJCSAgc3RjZXhwci0+cmVzdWx0dHlwbW9kKSk7CisJCQkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZyhidWYsICJERUZBVUxUICIpOworCQkJCWdldF9ydWxlX2V4cHIoc3RjZXhw ci0+ZGVmYXVsdF9leHByLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOworCQkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoYnVmLCAiIE9OIENPTlZFUlNJT04gRVJST1IpIik7CisJCQl9CisJCQlicmVh azsKIAkJY2FzZSBUX0pzb25FeHByOgogCQkJewogCQkJCUpzb25FeHByICAgKmpleHByID0gKEpz b25FeHByICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3Iu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCmluZGV4IDA1OTg0ZTdlZjI2Li4yOGZl ZDEyNWFmNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKQEAgLTE3NTksNiArMTc1OSwyMCBAQCBPaWRJ bnB1dEZ1bmN0aW9uQ2FsbChPaWQgZnVuY3Rpb25JZCwgY2hhciAqc3RyLCBPaWQgdHlwaW9wYXJh bSwgaW50MzIgdHlwbW9kKQogCXJldHVybiBJbnB1dEZ1bmN0aW9uQ2FsbCgmZmxpbmZvLCBzdHIs IHR5cGlvcGFyYW0sIHR5cG1vZCk7CiB9CiAKKy8qIGVycm9yLXNhZmUgdmVyc2lvbiBvZiBPaWRJ bnB1dEZ1bmN0aW9uQ2FsbCAqLworYm9vbAorT2lkSW5wdXRGdW5jdGlvbkNhbGxTYWZlKE9pZCBm dW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLAorCQkJCQkJIGludDMyIHR5cG1v ZCwgTm9kZSAqZXNjb250ZXh0LAorCQkJCQkJIERhdHVtICpyZXN1bHQpCit7CisJRm1nckluZm8J ZmxpbmZvOworCisJZm1ncl9pbmZvKGZ1bmN0aW9uSWQsICZmbGluZm8pOworCisJcmV0dXJuIElu cHV0RnVuY3Rpb25DYWxsU2FmZSgmZmxpbmZvLCBzdHIsIHR5cGlvcGFyYW0sIHR5cG1vZCwKKwkJ CQkJCQkJIGVzY29udGV4dCwgcmVzdWx0KTsKK30KKwogY2hhciAqCiBPaWRPdXRwdXRGdW5jdGlv bkNhbGwoT2lkIGZ1bmN0aW9uSWQsIERhdHVtIHZhbCkKIHsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5o CmluZGV4IGFhOWIzNjFmYTMxLi5mYTlkYjhmZDY4NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY0V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5o CkBAIC0yNjUsNiArMjY1LDcgQEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlFRU9QX1hNTEVY UFIsCiAJRUVPUF9KU09OX0NPTlNUUlVDVE9SLAogCUVFT1BfSVNfSlNPTiwKKwlFRU9QX1NBRkVU WVBFX0NBU1QsCiAJRUVPUF9KU09ORVhQUl9QQVRILAogCUVFT1BfSlNPTkVYUFJfQ09FUkNJT04s CiAJRUVPUF9KU09ORVhQUl9DT0VSQ0lPTl9GSU5JU0gsCkBAIC03NTAsNiArNzUxLDEyIEBAIHR5 cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAogCQkJSnNvbklzUHJlZGljYXRlICpwcmVkOwkvKiBv cmlnaW5hbCBleHByZXNzaW9uIG5vZGUgKi8KIAkJfQkJCWlzX2pzb247CiAKKwkJLyogZm9yIEVF T1BfU0FGRVRZUEVfQ0FTVCAqLworCQlzdHJ1Y3QKKwkJeworCQkJc3RydWN0IFNhZmVUeXBlQ2Fz dFN0YXRlICpzdGNzdGF0ZTsKKwkJfQkJCXN0Y2V4cHI7CisKIAkJLyogZm9yIEVFT1BfSlNPTkVY UFJfUEFUSCAqLwogCQlzdHJ1Y3QKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvZXhlY3V0b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKaW5kZXggNTky OWFhYmMzNTMuLjhmZmJhOTlkMzUyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9l eGVjdXRvci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKQEAgLTMyNCw2 ICszMjQsNyBAQCBFeGVjUHJvY05vZGUoUGxhblN0YXRlICpub2RlKQogICogcHJvdG90eXBlcyBm cm9tIGZ1bmN0aW9ucyBpbiBleGVjRXhwci5jCiAgKi8KIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJ bml0RXhwcihFeHByICpub2RlLCBQbGFuU3RhdGUgKnBhcmVudCk7CitleHRlcm4gRXhwclN0YXRl ICpFeGVjSW5pdEV4cHJFeHRlbmRlZChFeHByICpub2RlLCBOb2RlICplc2NvbnRleHQsIFBsYW5T dGF0ZSAqcGFyZW50KTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhwcldpdGhQYXJhbXMo RXhwciAqbm9kZSwgUGFyYW1MaXN0SW5mbyBleHRfcGFyYW1zKTsKIGV4dGVybiBFeHByU3RhdGUg KkV4ZWNJbml0UXVhbChMaXN0ICpxdWFsLCBQbGFuU3RhdGUgKnBhcmVudCk7CiBleHRlcm4gRXhw clN0YXRlICpFeGVjSW5pdENoZWNrKExpc3QgKnF1YWwsIFBsYW5TdGF0ZSAqcGFyZW50KTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2ZtZ3IuaCBiL3NyYy9pbmNsdWRlL2ZtZ3IuaAppbmRleCAy MmRkNjUyNjE2OS4uNDRkOWVhMDdjNDcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2ZtZ3IuaAor KysgYi9zcmMvaW5jbHVkZS9mbWdyLmgKQEAgLTc1MCw2ICs3NTAsOSBAQCBleHRlcm4gYm9vbCBE aXJlY3RJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoUEdGdW5jdGlvbiBmdW5jLCBjaGFyICpzdHIsCiAJ CQkJCQkJCQkJRGF0dW0gKnJlc3VsdCk7CiBleHRlcm4gRGF0dW0gT2lkSW5wdXRGdW5jdGlvbkNh bGwoT2lkIGZ1bmN0aW9uSWQsIGNoYXIgKnN0ciwKIAkJCQkJCQkJICBPaWQgdHlwaW9wYXJhbSwg aW50MzIgdHlwbW9kKTsKK2V4dGVybiBib29sIE9pZElucHV0RnVuY3Rpb25DYWxsU2FmZShPaWQg ZnVuY3Rpb25JZCwgY2hhciAqc3RyLCBPaWQgdHlwaW9wYXJhbSwKKwkJCQkJCQkJCSBpbnQzMiB0 eXBtb2QsIE5vZGUgKmVzY29udGV4dCwKKwkJCQkJCQkJCSBEYXR1bSAqcmVzdWx0KTsKIGV4dGVy biBjaGFyICpPdXRwdXRGdW5jdGlvbkNhbGwoRm1nckluZm8gKmZsaW5mbywgRGF0dW0gdmFsKTsK IGV4dGVybiBjaGFyICpPaWRPdXRwdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9uSWQsIERhdHVt IHZhbCk7CiBleHRlcm4gRGF0dW0gUmVjZWl2ZUZ1bmN0aW9uQ2FsbChGbWdySW5mbyAqZmxpbmZv LCBTdHJpbmdJbmZvIGJ1ZiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggMDIyNjU0NTY5NzguLjE4 NDJmYWQ4ZjQ1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtMTA1OSw2ICsxMDU5LDI3IEBAIHR5 cGVkZWYgc3RydWN0IERvbWFpbkNvbnN0cmFpbnRTdGF0ZQogCUV4cHJTdGF0ZSAgKmNoZWNrX2V4 cHJzdGF0ZTsJLyogY2hlY2tfZXhwcidzIGV2YWwgc3RhdGUsIG9yIE5VTEwgKi8KIH0gRG9tYWlu Q29uc3RyYWludFN0YXRlOwogCit0eXBlZGVmIHN0cnVjdCBTYWZlVHlwZUNhc3RTdGF0ZQorewor CVNhZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHI7CisKKwkvKgorCSAqIEFkZHJlc3MgdG8ganVtcCB0 byB3aGVuIHNraXBwaW5nIGFsbCB0aGUgc3RlcHMgdG8gZXZhdWxhdGUgdGhlIGRlZmF1bHQKKwkg KiBleHByZXNzaW9uLgorCSAqLworCWludAkJCWp1bXBfZW5kOworCisJLyoKKwkgKiBGb3IgZXJy b3Itc2FmZSBldmFsdWF0aW9uIG9mIGNvZXJjaW9ucy4gQSBwb2ludGVyIHRvIHRoaXMgaXMgcGFz c2VkIHRvCisJICogRXhlY0luaXRFeHByUmVjKCkgd2hlbiBpbml0aWFsaXppbmcgdGhlIGNvZXJj aW9uIGV4cHJlc3Npb25zLCBzZWUKKwkgKiBFeGVjSW5pdFNhZmVUeXBlQ2FzdEV4cHIuCisJICoK KwkgKiBSZXNldCBmb3IgZWFjaCBldmFsdWF0aW9uIG9mIEVFT1BfU0FGRVRZUEVfQ0FTVC4KKwkg Ki8KKwlFcnJvclNhdmVDb250ZXh0IGVzY29udGV4dDsKKworfSBTYWZlVHlwZUNhc3RTdGF0ZTsK KwogLyoKICAqIFN0YXRlIGZvciBKc29uRXhwciBldmFsdWF0aW9uLCB0b28gYmlnIHRvIGlubGlu ZS4KICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggODk2YzRmMzRjYzAuLjYyZjI3ZDMwMWQw IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zOTcsNiArMzk3LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgVHlwZUNhc3QKIAlOb2RlVGFnCQl0eXBlOwogCU5vZGUJICAgKmFyZzsJCQkvKiB0aGUgZXhw cmVzc2lvbiBiZWluZyBjYXN0ZWQgKi8KIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0 YXJnZXQgdHlwZSAqLworCU5vZGUJICAgCSpyYXdfZGVmYXVsdDsJLyogdW50cmFuc2Zvcm1lZCBE RUZBVUxUIGV4cHJlc3Npb24gKi8KIAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0 aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9IFR5cGVDYXN0OwogCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5o CmluZGV4IDUyMTFjYWRjMjU4Li5jMjUyMjc4NjZjYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAg LTc2OSw2ICs3NjksNDIgQEAgdHlwZWRlZiBlbnVtIENvZXJjaW9uRm9ybQogCUNPRVJDRV9TUUxf U1lOVEFYLAkJCS8qIGRpc3BsYXkgd2l0aCBTUUwtbWFuZGF0ZWQgc3BlY2lhbCBzeW50YXggKi8K IH0gQ29lcmNpb25Gb3JtOwogCisvKgorICogU2FmZVR5cGVDYXN0RXhwciAtCisgKgkJVHJhbnNm b3JtZWQgcmVwcmVzZW50YXRpb24gb2YKKyAqIAkJQ0FTVChleHByIEFTIHR5cGVuYW1lIERFRkFV TFQgZXhwcjIgT04gRVJST1IpCisgKiAJCUNBU1QoZXhwciBBUyB0eXBlbmFtZSBOVUxMIE9OIEVS Uk9SKQorICovCit0eXBlZGVmIHN0cnVjdCBTYWZlVHlwZUNhc3RFeHByCit7CisJRXhwcgkJeHBy OworCisJLyogdHJhbnNmb3JtZWQgc291cmNlIGV4cHJlc3Npb24gKi8KKwlOb2RlCSAgICpzb3Vy Y2VfZXhwcjsKKworCS8qCisJICogVGhlIHRyYW5zZm9ybWVkIGNhc3QgZXhwcmVzc2lvbjsgTlVM TCBpZiB3ZSBjYW4gbm90IGNvY2VyY2Ugc291cmNlCisJICogZXhwcmVzc2lvbiB0byB0aGUgdGFy Z2V0IHR5cGUKKwkgKi8KKwlOb2RlCSAgICpjYXN0X2V4cHIgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1 bWJsZV9pZ25vcmUpOworCisJLyogRmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGV4cHJlc3Npb24g aWYgY2FzdCBldmFsdWF0aW9uIGZhaWxzICovCisJTm9kZQkgICAqZGVmYXVsdF9leHByOworCisJ LyogY2FzdCByZXN1bHQgZGF0YSB0eXBlICovCisJT2lkCQkJcmVzdWx0dHlwZTsKKworCS8qIGNh c3QgcmVzdWx0IGRhdGEgdHlwZSB0eXBtb2QgKHVzdWFsbHkgLTEpICovCisJaW50MzIJCXJlc3Vs dHR5cG1vZDsKKworCS8qIGNhc3QgcmVzdWx0IGRhdGEgdHlwZSBjb2xsYXRpb24gKi8KKwlPaWQJ CQlyZXN1bHRjb2xsaWQ7CisKKwkvKiBPcmlnaW5hbCBTYWZlVHlwZUNhc3RFeHByJ3MgbG9jYXRp b24gKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsKKworfSBTYWZlVHlwZUNhc3RFeHByOworCiAvKgog ICogRnVuY0V4cHIgLSBleHByZXNzaW9uIG5vZGUgZm9yIGEgZnVuY3Rpb24gY2FsbAogICoKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaCBiL3NyYy9pbmNsdWRl L29wdGltaXplci9vcHRpbWl6ZXIuaAppbmRleCA0ODVmNjQxYjNiNC4uYmVkODY0NTk0MzAgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaAorKysgYi9zcmMvaW5j bHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmgKQEAgLTE0Myw3ICsxNDMsNyBAQCBleHRlcm4gdm9p ZCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVkX3Nhb3AoTm9kZSAqbm9kZSk7CiBleHRlcm4gTm9kZSAq ZXN0aW1hdGVfZXhwcmVzc2lvbl92YWx1ZShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSk7 CiAKIGV4dGVybiBFeHByICpldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlw ZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKLQkJCQkJCSAgIE9pZCByZXN1bHRfY29sbGF0aW9uKTsK KwkJCQkJCSAgIE9pZCByZXN1bHRfY29sbGF0aW9uLCBOb2RlICplc2NvbnRleHQpOwogCiBleHRl cm4gYm9vbCB2YXJfaXNfbm9ubnVsbGFibGUoUGxhbm5lckluZm8gKnJvb3QsIFZhciAqdmFyLCBi b29sIHVzZV9yZWxfaW5mbyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9jb2VyY2UuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaAppbmRleCBhYWJh Y2Q0OWI2NS4uMmM5MjE2MTc3NjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9jb2VyY2UuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfY29lcmNlLmgKQEAgLTQz LDExICs0MywyNCBAQCBleHRlcm4gTm9kZSAqY29lcmNlX3RvX3RhcmdldF90eXBlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwKIAkJCQkJCQkJICAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LAogCQkJCQkJ CQkgICBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwKIAkJCQkJCQkJICAgaW50IGxvY2F0aW9uKTsKK2V4 dGVybiBOb2RlICpjb2VyY2VfdG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQoUGFyc2VTdGF0ZSAqcHN0 YXRlLAorCQkJCQkJCQkJCQlOb2RlICpleHByLAorCQkJCQkJCQkJCQlPaWQgZXhwcnR5cGUsCisJ CQkJCQkJCQkJCU9pZCB0YXJnZXR0eXBlLAorCQkJCQkJCQkJCQlpbnQzMiB0YXJnZXR0eXBtb2Qs CisJCQkJCQkJCQkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCwKKwkJCQkJCQkJCQkJQ29lcmNp b25Gb3JtIGNmb3JtYXQsCisJCQkJCQkJCQkJCWludCBsb2NhdGlvbiwKKwkJCQkJCQkJCQkJTm9k ZSAqZXNjb250ZXh0KTsKIGV4dGVybiBib29sIGNhbl9jb2VyY2VfdHlwZShpbnQgbmFyZ3MsIGNv bnN0IE9pZCAqaW5wdXRfdHlwZWlkcywgY29uc3QgT2lkICp0YXJnZXRfdHlwZWlkcywKIAkJCQkJ CQlDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQpOwogZXh0ZXJuIE5vZGUgKmNvZXJjZV90eXBlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCQkJCSBPaWQgaW5wdXRUeXBlSWQsIE9p ZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCiAJCQkJCQkgQ29lcmNpb25Db250 ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxvY2F0aW9uKTsKK2V4dGVy biBOb2RlICpjb2VyY2VfdHlwZV9leHRlbmRlZChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5v ZGUsCisJCQkJCQkJCSAgT2lkIGlucHV0VHlwZUlkLCBPaWQgdGFyZ2V0VHlwZUlkLCBpbnQzMiB0 YXJnZXRUeXBlTW9kLAorCQkJCQkJCQkgIENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNp b25Gb3JtIGNmb3JtYXQsCisJCQkJCQkJCSAgaW50IGxvY2F0aW9uLCBOb2RlICplc2NvbnRleHQp OwogZXh0ZXJuIE5vZGUgKmNvZXJjZV90b19kb21haW4oTm9kZSAqYXJnLCBPaWQgYmFzZVR5cGVJ ZCwgaW50MzIgYmFzZVR5cGVNb2QsCiAJCQkJCQkJICBPaWQgdHlwZUlkLAogCQkJCQkJCSAgQ29l cmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxvY2F0aW9u LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggYTliZmZiOGE3OGYuLmRkNzI5NDRhNWExIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTY3LDYgKzY3LDggQEAgdHlwZWRlZiBlbnVtIFBh cnNlRXhwcktpbmQKIAlFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRSwJLyogc2luZ2xlLXJvdyBWQUxV RVMgKGluIElOU0VSVCBvbmx5KSAqLwogCUVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5ULCAvKiBD SEVDSyBjb25zdHJhaW50IGZvciBhIHRhYmxlICovCiAJRVhQUl9LSU5EX0RPTUFJTl9DSEVDSywJ CS8qIENIRUNLIGNvbnN0cmFpbnQgZm9yIGEgZG9tYWluICovCisJRVhQUl9LSU5EX0NBU1RfREVG QVVMVCwJCS8qIGRlZmF1bHQgZXhwcmVzc2lvbiBpbgorCQkJCQkJCQkgICBDQVNUIERFRkFVTFQg T04gQ09OVkVSU0lPTiBFUlJPUiAqLwogCUVYUFJfS0lORF9DT0xVTU5fREVGQVVMVCwJLyogZGVm YXVsdCB2YWx1ZSBmb3IgYSB0YWJsZSBjb2x1bW4gKi8KIAlFWFBSX0tJTkRfRlVOQ1RJT05fREVG QVVMVCwgLyogZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgZm9yIGZ1bmN0aW9uICovCiAJRVhQUl9L SU5EX0lOREVYX0VYUFJFU1NJT04sIC8qIGluZGV4IGV4cHJlc3Npb24gKi8KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfdHlwZS5oCmluZGV4IGEzMzU4MDdiMGIwLi5lMzAzYTEwNzNjMSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfdHlwZS5oCkBAIC00Nyw2ICs0Nyw4IEBAIGV4dGVybiBjaGFyICp0eXBlVHlwZU5hbWUoVHlw ZSB0KTsKIGV4dGVybiBPaWQJdHlwZVR5cGVSZWxpZChUeXBlIHR5cCk7CiBleHRlcm4gT2lkCXR5 cGVUeXBlQ29sbGF0aW9uKFR5cGUgdHlwKTsKIGV4dGVybiBEYXR1bSBzdHJpbmdUeXBlRGF0dW0o VHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0eXBtb2QpOworZXh0ZXJuIGJvb2wgc3Ry aW5nVHlwZURhdHVtU2FmZShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1vZCwK KwkJCQkJCQkJTm9kZSAqZXNjb250ZXh0LCBEYXR1bSAqcmVzdWx0KTsKIAogZXh0ZXJuIE9pZAl0 eXBlaWRUeXBlUmVsaWQoT2lkIHR5cGVfaWQpOwogZXh0ZXJuIE9pZAl0eXBlT3JEb21haW5UeXBl UmVsaWQoT2lkIHR5cGVfaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9jYXN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIwZGM3YjhmYWVhCi0tLSAvZGV2L251bGwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dApAQCAtMCwwICsxLDgxMCBA QAorU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0cyA9IDA7CistLSBDQVNUIERFRkFVTFQgT04gQ09OVkVS U0lPTiBFUlJPUgorU0VMRUNUIENBU1QoQicwMScgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FT VChCSVQnMDEnIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGRh dGUgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoVFJVRSBBUyBkYXRlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkYXRlIAorLS0tLS0tCisgCisoMSByb3cp CisKK1NFTEVDVCBDQVNUKDEuMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBkYXRlIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKDEgQVMgZGF0 ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAor KDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxMTExIEFTICJjaGFyIiBERUZBVUxUICdBJyBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBjaGFyIAorLS0tLS0tCisgQQorKDEgcm93KQorCistLXRlc3Qgc291 cmNlIGV4cHJlc3Npb24gaXMgYSB1bmtub3duIGNvbnN0CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBB UyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IpKTsgLS1lcnJvcgorRVJST1I6ICBp bnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2VyOiAiZXJyb3IiCitMSU5FIDE6IFZB TFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgRVJST1IgT04gQ09OVkVSU0lPTiBFUlJPUikp OworICAgICAgICAgICAgICAgICAgICAgXgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdl ciBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgICAg ICAgIAorKDEgcm93KQorCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQg NDIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworIGNvbHVtbjEgCistLS0tLS0tLS0KKyAgICAgIDQy CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAxOCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAxOAorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9y CitFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVG QVVMVCBleHByZXNzaW9ucworTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQg c3VtKDEpIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBvdmVy KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgd2luZG93IGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zCitMSU5FIDE6IFNF TEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3ZlcigpIE9OIENPTlZFUlNJT04g RS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENB U1QoJ2EnIGFzIGludCBERUZBVUxUIChTRUxFQ1QgTlVMTCkgT04gQ09OVkVSU0lPTiBFUlJPUik7 IC0tZXJyb3IKK0VSUk9SOiAgY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBDQVNUIERFRkFVTFQgZXhw cmVzc2lvbgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgKFNFTEVDVCBO VUxMKSBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAnYicgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUg aW50ZWdlcjogImIiCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAnYicg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCitTRUxFQ1QgQ0FTVCgnYSc6OmludCBhcyBpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0 eXBlIGludGVnZXI6ICJhIgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYSc6OmludCBhcyBpbnQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IuLi4KKyAgICAgICAgICAgICAgICAgICAgXgor LS10aGUgZGVmYXVsdCBleHByZXNzaW9u4oCZcyBjb2xsYXRpb24gc2hvdWxkIG1hdGNoIHRoZSBj b2xsYXRpb24gb2YgdGhlIGNhc3QKKy0tdGFyZ2V0IHR5cGUKK1ZBTFVFUyAoQ0FTVCgnZXJyb3In IEFTIHRleHQgREVGQVVMVCAnMScgQ09MTEFURSAiQyIgT04gQ09OVkVSU0lPTiBFUlJPUikpOwor RVJST1I6ICB0aGUgY29sbGF0aW9uIG9mIENBU1QgREVGQVVMVCBleHByZXNzaW9uIGNvbmZsaWN0 cyB3aXRoIHRhcmdldCB0eXBlIGNvbGxhdGlvbgorTElORSAxOiBWQUxVRVMgKENBU1QoJ2Vycm9y JyBBUyB0ZXh0IERFRkFVTFQgJzEnIENPTExBVEUgIkMiIE9OIENPTlYuLi4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogICJkZWZhdWx0IiB2 ZXJzdXMgIkMiCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yIERFRkFVTFQgJzEg MycgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgMSAzCiso MSByb3cpCisKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7 MSAzfScgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgeyIx IDMifQorKDEgcm93KQorCistLSB0ZXN0IHNvdXJjZSBleHByZXNzaW9uIGNvbnRhaW4gc3VicXVl cnkKK1NFTEVDVCBDQVNUKChTRUxFQ1QgYiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxKSwgKFZB TFVFUygnSCcpKSBzKGIpKQorICAgICAgICAgICAgQVMgaW50MnZlY3RvcltdIERFRkFVTFQgJ3sx IDN9JyAgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgYiAgICAKKy0tLS0tLS0tLQorIHsiMSAz In0KKygxIHJvdykKKworU0VMRUNUIENBU1QoKFNFTEVDVCBBUlJBWSgoU0VMRUNUIGIgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMikgZywgKFZBTFVFUygnSCcpKSBzKGIpKSkpCisgICAgICAgICAg ICBBUyBJTlRbXQorICAgICAgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitDUkVBVEUgRlVOQ1RJT04gcmV0X2lu dDgoKSBSRVRVUk5TIEJJR0lOVCBBUworJCQKK0JFR0lOIFJFVFVSTiAyMTQ3NDgzNjQ4OyBFTkQ7 CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1VVEFCTEU7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50 IERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6 ICBpbnRlZ2VyIG91dCBvZiByYW5nZQorU0VMRUNUIENBU1QoJ2EnIGFzIGRhdGUgREVGQVVMVCBy ZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGNhbm5vdCBj b2VyY2UgQ0FTVCBERUZBVUxUIGV4cHJlc3Npb24gdG8gdHlwZSBkYXRlCitMSU5FIDE6IFNFTEVD VCBDQVNUKCdhJyBhcyBkYXRlIERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUi4u LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIERFRkFVTFQg ZXhwcmVzc2lvbiBjYW4gbm90IGJlIHNldC1yZXR1cm5pbmcKK0NSRUFURSBGVU5DVElPTiByZXRf c2V0aW50KCkgUkVUVVJOUyBTRVRPRiBpbnRlZ2VyIEFTCiskJAorQkVHSU4gUkVUVVJOIFFVRVJZ IEVYRUNVVEUgJ3NlbGVjdCAxIHVuaW9uIGFsbCBzZWxlY3QgMSc7IEVORDsKKyQkCitMQU5HVUFH RSBwbHBnc3FsIElNTVVUQUJMRTsKK0NSRUFURSBUQUJMRSB0Y2FzdChhIHRleHRbXSwgYiBpbnQg R0VORVJBVEVEIEJZIERFRkFVTFQgQVMgSURFTlRJVFkpOworSU5TRVJUIElOVE8gdGNhc3QgVkFM VUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9JyksICgne3sxLDJ9LCB7YyxkfX0nKSwgKCd7MTN9Jyk7 CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJ T04gRVJST1IpIEZST00gdGNhc3Q7IC0tZXJyb3IKK0VSUk9SOiAgc2V0LXJldHVybmluZyBmdW5j dGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucworTElORSAx OiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJ T04gRVIuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVD VCBDQVNUKHQgQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMiwgJyB8fCBiIHx8ICd9JyBPTiBDT05W RVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CisgICAgIHQgICAgIAorLS0tLS0tLS0tLS0K KyB7MjEsMjIsMX0KKyB7MjEsMjIsMn0KKyB7MjEsMjIsM30KKyB7MjEsMjIsNH0KKyg0IHJvd3Mp CisKK1NFTEVDVCBDQVNUKHQuYSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9Jzo6aW50W10gfHwg YiBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CisgICAgIGEgICAgIAorLS0t LS0tLS0tLS0KKyB7MTJ9CisgezIxLDIyLDJ9CisgezIxLDIyLDN9CisgezEzfQorKDQgcm93cykK KworLS0gdGVzdCB3aXRoIHVzZXItZGVmaW5lZCB0eXBlLCBkb21haW4sIGFycmF5IG92ZXIgZG9t YWluLCBkb21haW4gb3ZlciBhcnJheQorQ1JFQVRFIERPTUFJTiBkX2ludDQyIGFzIGludCBjaGVj ayAodmFsdWUgPSA0MikgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfY2hhcjNfbm90X251bGwg YXMgY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF92YXJjaGFyIGFzIHZhcmNoYXIo MykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfaW50X2FyciBhcyBpbnRbXSBjaGVjayAodmFs dWUgPSAnezQxLCA0M30nKSBOT1QgTlVMTDsKK0NSRUFURSBUWVBFIGNvbXBfZG9tYWluX3dpdGhf dHlwbW9kIEFTIChhIGRfY2hhcjNfbm90X251bGwsIGIgaW50KTsKK0NSRUFURSBUWVBFIGNvbXAy IEFTIChhIGRfdmFyY2hhcik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBBUyBjb21wMiBERUZBVUxU ICcoMTIzMiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHZhbHVlIHRv byBsb25nIGZvciB0eXBlIGNoYXJhY3RlciB2YXJ5aW5nKDMpCitMSU5FIDE6IFNFTEVDVCBDQVNU KCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMyKScgT04gQ09OVkVSU0lPTi4uLgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNU KCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyBjb21wMiAKKy0tLS0tLS0KKyAoMTIzKQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxMSBBUyBk X2ludDQyIERFRkFVTFQgNDEgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAg dmFsdWUgZm9yIGRvbWFpbiBkX2ludDQyIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImRfaW50 NDJfY2hlY2siCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgZF9pbnQ0MiAKKy0tLS0tLS0tLQorICAgICAgNDIKKygxIHJvdykKKwor U0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsgLS1lcnJvcgorRVJST1I6ICBkb21haW4gZF9pbnQ0MiBkb2VzIG5vdCBhbGxvdyBudWxs IHZhbHVlcworU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgZF9pbnQ0MiAKKy0tLS0tLS0tLQorICAgICAgNDIKKygxIHJvdykKKwor U0VMRUNUIENBU1QoJygsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY29tcF9kb21haW5fd2l0aF90eXBtb2QgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTlVMTCw0 MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxLDIpJyBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAoIjEgICIsMikKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScg QVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCAnKDEyMzQsMiknIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHZhbHVlIHRvbyBsb25nIGZvciB0eXBlIGNoYXJh Y3RlcigzKQorTElORSAxOiAuLi5TVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5 cG1vZCBERUZBVUxUICcoMTIzNCwyKScuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVChBUlJBWVs0Miw0 MV0gQVMgZF9pbnQ0MltdIERFRkFVTFQgJ3s0MiwgNDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezQyLDQyfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChB UlJBWVs0Miw0MV0gQVMgZF9pbnRfYXJyIERFRkFVTFQgJ3s0MSwgNDN9JyBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezQxLDQzfQorKDEgcm93KQorCistLSB0 ZXN0IGFycmF5IGNvZXJjZQorU0VMRUNUIENBU1QoYXJyYXlbJ2EnOjp0ZXh0XSBBUyBpbnRbXSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxp ZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogImEiCitTRUxFQ1QgQ0FTVChhcnJheVsn YSddIEFTIGludFtdIERFRkFVTFQgQVJSQVlbMV0gT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJy YXkgCistLS0tLS0tCisgezF9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKGFycmF5WzExLjEyXSBB UyBkYXRlW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0t LS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChhcnJheVsxMTExMTExMTExMTExMTExMV0g QVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0t LS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChhcnJheVtbJ2FiYyddLFs0NTZdXSBBUyBp bnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0t CisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCd7MTIzLGFiYyw0NTZ9JyBBUyBpbnRbXSBERUZB VUxUICd7LTc4OX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworICBpbnQ0ICAKKy0tLS0tLS0tCisg ey03ODl9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCd7MjM0LGRlZiw1Njd9Jzo6dGV4dFtdIEFT IGludGVnZXJbXSBERUZBVUxUICd7LTEwMTF9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgaW50 NCAgIAorLS0tLS0tLS0tCisgey0xMDExfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVtb JzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgezEsMn0KKygxIHJvdykKKworU0VMRUNU IENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGludFtdIERFRkFVTFQg J3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCisgIGFycmF5ICAKKy0tLS0tLS0t LQorIHsyMSwyMn0KKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0 aHJlZSc6OmludCwgJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUg aW50ZWdlcjogInRocmVlIgorTElORSAxOiBTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBb J3RocmVlJzo6aW50LCAnYSddXSBBUyBpbnRbXSAuLi4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKEFSUkFZWzEsICd0aHJlZSc6OmludF0gQVMg aW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VS Uk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogInRocmVlIgorTElO RSAxOiBTRUxFQ1QgQ0FTVChBUlJBWVsxLCAndGhyZWUnOjppbnRdIEFTIGludFtdIERFRkFVTFQg J3syMSwyMn0uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0tLS1zYWZlIGNh c3Qgd2l0aCBnZW9tZXRyeSBkYXRhIHR5cGUKK1NFTEVDVCBDQVNUKCcoMSwyKSc6OnBvaW50IEFT IGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJveCAgICAgCist LS0tLS0tLS0tLS0tCisgKDEsMiksKDEsMikKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1soTmFO LDEpLChOYU4saW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIChOYU4s SW5maW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKDFlKzMwMCxJbmZpbml0eSksKDFl KzMwMCxJbmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgICAgICAgcG9pbnQgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgKDFl KzMwMCxJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1soMSwyKSwoMyw0KV0nOjpw YXRoIGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIHBvbHln b24gCistLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOYU4sMS4wLE5hTixp bmZpbml0eSknOjpib3ggQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIChOYU4sSW5maW5pdHkpCiso MSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBsc2VnIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgbHNlZyAgICAgIAorLS0tLS0t LS0tLS0tLS0tCisgWygyLDIpLCgwLDApXQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwy LjAsMC4wLDAuMCknOjpib3ggQVMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgICAgICAgICAgcG9seWdvbiAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICgoMCwwKSwoMCwyKSwoMiwyKSwoMiwwKSkKKygxIHJvdykKKworU0VMRUNUIENB U1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworIHBhdGggCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1Qo JygyLjAsaW5maW5pdHksTmFOLGluZmluaXR5KSc6OmJveCBBUyBjaXJjbGUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICBjaXJjbGUgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIDwoTmFOLEluZmluaXR5KSxOYU4+CisoMSByb3cpCisKK1NFTEVDVCBD QVNUKCcoTmFOLDAuMCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdvbiBBUyBwb2lu dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHBvaW50ICAgICAgCist LS0tLS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1Qo JygyLjAsMC4wKSwoMi4wLDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBwYXRoIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgcGF0aCAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKCgyLDApLCgyLDQpLCgwLDApKQorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnKDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIGJveCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJveCAgICAgCistLS0tLS0tLS0t LS0tCisgKDIsNCksKDAsMCkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOYU4saW5maW5pdHkp LCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgY2lyY2xlIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgY2lyY2xlICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyA8KE5hTixJbmZpbml0eSksTmFOPgorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnPCg1LDEpLDM+Jzo6Y2lyY2xlIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyBwb2ludCAKKy0tLS0tLS0KKyAoNSwxKQorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgICAgIGJveCAgICAgCistLS0tLS0tLS0tLS0tCisgKDMsNSksKDMsNSkKKygx IHJvdykKKworLS0gbm90IHN1cHBvcnRlZCBiZWNhdXNlIHRoZSBjYXN0IGZyb20gY2lyY2xlIHRv IHBvbHlnb24gaXMgaW1wbGVtZW50ZWQgYXMgYSBTUUwKKy0tIGZ1bmN0aW9uLCB3aGljaCBjYW5u b3QgYmUgZXJyb3Itc2FmZS4KK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgcG9s eWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBj YXN0IHR5cGUgY2lyY2xlIHRvIHBvbHlnb24gd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3Bl Y2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENB U1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDLi4uCisg ICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0 IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUKKy0tLS0tc2FmZSBjYXN0IGZyb20vdG8gbW9u ZXkgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLCBhbGwgdGhlIGZvbGxvd2luZyB3b3VsZCByZXN1bHQg ZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEw6OmludDggQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGJpZ2ludCB0byBtb25l eSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09O VkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjppbnQ4IEFTIG1vbmV5IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAgXgorSElO VDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Ig c2FmZQorU0VMRUNUIENBU1QoTlVMTDo6aW50NCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgaW50ZWdlciB0byBtb25l eSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09O VkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjppbnQ0IEFTIG1vbmV5IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAgXgorSElO VDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Ig c2FmZQorU0VMRUNUIENBU1QoTlVMTDo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgbnVtZXJpYyB0byBt b25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04g Q09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjpudW1lcmljIEFTIG1v bmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU8uLi4KKyAgICAgICAgICAgICAgICAgICAgXgor SElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJy b3Igc2FmZQorU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJpYyBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgbW9uZXkgdG8g bnVtZXJpYyB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4g T04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjptb25leSBBUyBu dW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU8uLi4KKyAgICAgICAgICAgICAgICAgICAg XgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3Qg ZXJyb3Igc2FmZQorU0VMRUNUIENBU1QoTlVMTDo6bW9uZXlbXSBBUyBudW1lcmljW10gREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIG1v bmV5W10gdG8gbnVtZXJpY1tdIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBp biBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6 Om1vbmV5W10gQVMgbnVtZXJpY1tdIERFRkFVTFQgTlVMTCBPTiBDT05WRS4uLgorICAgICAgICAg ICAgICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0 aW9uIGlzIG5vdCBlcnJvciBzYWZlCistLS0tLXNhZmUgY2FzdCBmcm9tIGJ5dGVhIHR5cGUgdG8g b3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1QgKCdceDExMjIzMzQ0NTU2Njc3ODg5OSc6OmJ5 dGVhIEFTIGludDggREVGQVVMVCAxOSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4IAorLS0t LS0tCisgICAxOQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTY3ODlBJzo6Ynl0ZWEg QVMgaW50NCBERUZBVUxUIDIwIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0tLS0K KyAgIDIwCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Nic6OmJ5dGVhIEFTIGludDIg REVGQVVMVCAyMSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQyIAorLS0tLS0tCisgICAyMQor KDEgcm93KQorCistLS0tLXNhZmUgY2FzdCBmcm9tIGJpdCB0eXBlIHRvIG90aGVyIGRhdGEgdHlw ZXMKK1NFTEVDVCBDQVNUKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJTlQgREVGQVVM VCAyMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAyMgorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCAoJzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElOVDggREVG QVVMVCAyMyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4IAorLS0tLS0tCisgICAyMworKDEg cm93KQorCistLS0tLXNhZmUgY2FzdCBmcm9tIHRleHQgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVz CitzZWxlY3QgQ0FTVCgnYS5iLmMuZCc6OnRleHQgYXMgcmVnY2xhc3MgZGVmYXVsdCBOVUxMIG9u IGNvbnZlcnNpb24gZXJyb3IpOworIHJlZ2NsYXNzIAorLS0tLS0tLS0tLQorIAorKDEgcm93KQor CitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdChjb2wwIHRleHQpOworSU5TRVJUIElOVE8gdGVz dF9zYWZlY2FzdChjb2wwKSBWQUxVRVMgKCc8dmFsdWU+b25lPC92YWx1ZScpOworU0VMRUNUIGNv bDAgYXMgdGV4dCwKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3JlZ2NsYXNzLAorICAgICAgIENBU1QoY29sMCBBUyBy ZWdjbGFzcyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTlVMTCBhcyBleHBl Y3RfdHJ1ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgImNoYXIiICBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fY2hhciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbmFtZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbmFtZSwKKyAgICAgICBDQVNUKGNv bDAgQVMgeG1sIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b194bWwKK0ZS T00gdGVzdF9zYWZlY2FzdDsKKyAgICAgICB0ZXh0ICAgICAgICB8IHRvX3JlZ2NsYXNzIHwgZXhw ZWN0X3RydWUgfCB0b19jaGFyIHwgICAgICB0b19uYW1lICAgICAgfCB0b194bWwgCistLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLQorIDx2YWx1ZT5vbmU8L3ZhbHVlIHwgICAgICAgICAgICAg fCB0ICAgICAgICAgICB8IDwgICAgICAgfCA8dmFsdWU+b25lPC92YWx1ZSB8IAorKDEgcm93KQor CitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLngnIGFzIGluZXQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworIGluZXQgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1Qo JzE5Mi4xNjguMS4yLzMwJyBhcyBjaWRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBjaWRyIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcyMjowMDo1Yzow ODo1NTowODowMTowMic6Om1hY2FkZHI4IGFzIG1hY2FkZHIgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworIG1hY2FkZHIgCistLS0tLS0tLS0KKyAKKygxIHJvdykKKworLS0tLS1z YWZlIGNhc3QgYmV0d2VlZW4gcmFuZ2UgZGF0YSB0eXBlcworU0VMRUNUIENBU1QoJ1sxLDJdJzo6 aW50NHJhbmdlIEFTIGludDRtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBpbnQ0bXVsdGlyYW5nZSAKKy0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMyl9CisoMSBy b3cpCisKK1NFTEVDVCBDQVNUKCdbMSwyXSc6OmludDhyYW5nZSBBUyBpbnQ4bXVsdGlyYW5nZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50OG11bHRpcmFuZ2UgCistLS0t LS0tLS0tLS0tLS0tCisge1sxLDMpfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjpu dW1yYW5nZSAgQVMgbnVtbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgbnVtbXVsdGlyYW5nZSAKKy0tLS0tLS0tLS0tLS0tLQorIHtbMSwyXX0KKygxIHJvdykK KworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6ZGF0ZXJhbmdlIEFTIGRhdGVt dWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgZGF0ZW11 bHRpcmFuZ2UgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1staW5maW5pdHksaW5m aW5pdHldfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjp0 c3JhbmdlIEFTIHRzbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgICAgICB0c211bHRpcmFuZ2UgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtb LWluZmluaXR5LGluZmluaXR5XX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1staW5maW5pdHks aW5maW5pdHldJzo6dHN0enJhbmdlIEFTIHRzdHptdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKKyAgICAgdHN0em11bHRpcmFuZ2UgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisge1staW5maW5pdHksaW5maW5pdHldfQorKDEgcm93KQorCistLS0tLXNh ZmUgY2FzdCBiZXR3ZWVlbiBudW1lcmljIGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSB0ZXN0X3Nh ZmVjYXN0MSgKKyAgY29sMSBmbG9hdDQsIGNvbDIgZmxvYXQ4LCBjb2wzIG51bWVyaWMsIGNvbDQg bnVtZXJpY1tdLAorICBjb2w1IGludDIgZGVmYXVsdCAzMjc2NywKKyAgY29sNiBpbnQ0IGRlZmF1 bHQgMzI3NjgsCisgIGNvbDcgaW50OCBkZWZhdWx0IDQyOTQ5NjcyOTYpOworSU5TRVJUIElOVE8g dGVzdF9zYWZlY2FzdDEgVkFMVUVTKCcxMS4xMjM0JywgJzExLjEyMzQnLCAnOTIyMzM3MjAzNjg1 NDc3NTgwOCcsICd7MTEuMTIzNH0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZl Y2FzdDEgVkFMVUVTKCdpbmYnLCAnaW5mJywgJ2luZicsICd7MTEuMTIzNCwgMTIsIGluZiwgTmFO fSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJy1pbmYn LCAnLWluZicsICctaW5mJywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNbXSk7 CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJ05hTicsICdOYU4nLCAnTmFOJywg J3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitTRUxFQ1QgY29sNSBhcyBp bnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQ0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNSBBUyBv aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBD QVNUKGNvbDUgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0OCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1Qo Y29sNSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljLAorICAgICAgIENBU1QoY29sNSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNh c3QxOworIGludDIgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9f ZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyAzMjc2NyB8ICAgMzI3 NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8 ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2 NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3 IHwgICAgICAgICAgMzI3NjcuMAorIDMyNzY3IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3Njcg fCAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAg IDMyNzY3LjAKKyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8 ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCiso NCByb3dzKQorCitTRUxFQ1QgY29sNiBhcyBpbnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBpbnQy IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENB U1QoY29sNiBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19p bnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDYgYXMgaW50OCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgZmxv YXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAg ICAgQ0FTVChjb2w2IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sNiBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sNiBhcyBu dW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1l cmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworIGludDQgIHwgdG9faW50MiB8IHRvX2lu dDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fbnVtZXJp YyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0KKyAzMjc2OCB8ICAgICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2 OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAzMjc2OC4w CisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3 NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorIDMyNzY4IHwg ICAgICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMy NzY4IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAKKyAzMjc2OCB8ICAgICAgICAgfCAg IDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAg MzI3NjggfCAgICAgICAgICAzMjc2OC4wCisoNCByb3dzKQorCitTRUxFQ1QgY29sNyBhcyBpbnQ4 LAorICAgICAgIENBU1QoY29sNyBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNyBBUyBvaWQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNU KGNvbDcgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0OCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29s NyBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1l cmljLAorICAgICAgIENBU1QoY29sNyBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3Qx OworICAgIGludDggICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8ICB0b19pbnQ4ICAg fCAgdG9fZmxvYXQ0ICB8IHRvX2Zsb2F0OCAgfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2Fs ZSAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2NzI5 NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAgICAg ICAgCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2NzI5 NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAgICAg ICAgCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2NzI5 NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAgICAg ICAgCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2NzI5 NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAgICAg ICAgCisoNCByb3dzKQorCitTRUxFQ1QgY29sMyBhcyBudW1lcmljLAorICAgICAgIENBU1QoY29s MyBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAor ICAgICAgIENBU1QoY29sMyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMyBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDMgYXMgaW50OCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNv bDMgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9h dDQsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMyBhcyBudW1lcmljIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1Qo Y29sMyBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworICAgICAgIG51bWVyaWMg ICAgICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCAgdG9fZmxvYXQ0 ICB8ICAgICAgdG9fZmxvYXQ4ICAgICAgIHwgICAgIHRvX251bWVyaWMgICAgICB8IHRvX251bWVy aWNfc2NhbGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyA5MjIzMzcyMDM2ODU0Nzc1ODA4 IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgOS4yMjMzN2UrMTggfCA5 LjIyMzM3MjAzNjg1NDc4ZSsxOCB8IDkyMjMzNzIwMzY4NTQ3NzU4MDggfCAgICAgICAgICAgICAg ICAgCisgICAgICAgICAgICBJbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwg ICAgICAgICB8ICAgIEluZmluaXR5IHwgICAgICAgICAgICAgSW5maW5pdHkgfCAgICAgICAgICAg IEluZmluaXR5IHwgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAtSW5maW5pdHkgfCAgICAg ICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgIC1JbmZpbml0eSB8ICAgICAgICAg ICAgLUluZmluaXR5IHwgICAgICAgICAgIC1JbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAg ICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAg IHwgICAgICAgICBOYU4gfCAgICAgICAgICAgICAgICAgIE5hTiB8ICAgICAgICAgICAgICAgICBO YU4gfCAgICAgICAgICAgICAgTmFOCisoNCByb3dzKQorCitTRUxFQ1QgY29sNCBhcyBudW1fYXJy LAorICAgICAgIENBU1QoY29sNCBBUyBpbnQyW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIGludDJhcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDRbXSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50NGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMg aW50OFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ4YXJyLAorICAg ICAgIENBU1QoY29sNCBhcyBmbG9hdDRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgZjRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0OFtdIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyBmOGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgbnVtZXJp YygxMCwxKVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBudW1hcnIKK0ZS T00gdGVzdF9zYWZlY2FzdDE7CisgICAgICAgICAgbnVtX2FyciAgICAgICAgICAgfCBpbnQyYXJy IHwgaW50NGFyciB8IGludDhhcnIgfCAgICAgICAgICAgZjRhcnIgICAgICAgICAgICB8ICAgICAg ICAgICBmOGFyciAgICAgICAgICAgIHwgbnVtYXJyIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0KKyB7MTEuMTIzNH0g ICAgICAgICAgICAgICAgICB8IHsxMX0gICAgfCB7MTF9ICAgIHwgezExfSAgICB8IHsxMS4xMjM0 fSAgICAgICAgICAgICAgICAgIHwgezExLjEyMzR9ICAgICAgICAgICAgICAgICAgfCB7MTEuMX0K KyB7MTEuMTIzNCwxMixJbmZpbml0eSxOYU59ICB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAg ICB8IHsxMS4xMjM0LDEyLEluZmluaXR5LE5hTn0gIHwgezExLjEyMzQsMTIsSW5maW5pdHksTmFO fSAgfCAKKyB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8ICAgICAgICAgfCAgICAgICAgIHwg ICAgICAgICB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgezExLjEyMzQsMTIsLUluZmlu aXR5LE5hTn0gfCAKKyB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8ICAgICAgICAgfCAgICAg ICAgIHwgICAgICAgICB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgezExLjEyMzQsMTIs LUluZmluaXR5LE5hTn0gfCAKKyg0IHJvd3MpCisKK1NFTEVDVCBjb2wxIGFzIGZsb2F0NCwKKyAg ICAgICBDQVNUKGNvbDEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDEgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDEgQVMgb2lkIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wx IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisg ICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDEgYXMg bnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywK KyAgICAgICBDQVNUKGNvbDEgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAg ZmxvYXQ0ICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCB0b19mbG9h dDQgfCAgICB0b19mbG9hdDggICAgIHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCist LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQor ICAgMTEuMTIzNCB8ICAgICAgMTEgfCAgICAgIDExIHwgICAgICAgIHwgICAgICAxMSB8ICAgMTEu MTIzNCB8IDExLjEyMzM5OTczNDQ5NzEgfCAgICAxMS4xMjM0IHwgICAgICAgICAgICAgMTEuMQor ICBJbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICBJbmZp bml0eSB8ICAgICAgICAgSW5maW5pdHkgfCAgIEluZmluaXR5IHwgICAgICAgICAgICAgICAgIAor IC1JbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8IC1JbmZp bml0eSB8ICAgICAgICAtSW5maW5pdHkgfCAgLUluZmluaXR5IHwgICAgICAgICAgICAgICAgIAor ICAgICAgIE5hTiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAg IE5hTiB8ICAgICAgICAgICAgICBOYU4gfCAgICAgICAgTmFOIHwgICAgICAgICAgICAgIE5hTgor KDQgcm93cykKKworU0VMRUNUIGNvbDIgYXMgZmxvYXQ4LAorICAgICAgIENBU1QoY29sMiBBUyBp bnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAg IENBU1QoY29sMiBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnQ0LAorICAgICAgIENBU1QoY29sMiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDIgYXMgaW50OCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDIgYXMg ZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisg ICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMiBhcyBudW1lcmljIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMiBh cyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworICBmbG9hdDggICB8IHRvX2ludDIg fCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRv X251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgMTEuMTIzNCB8ICAgICAgMTEgfCAgICAgIDExIHwg ICAgICAgIHwgICAgICAxMSB8ICAgMTEuMTIzNCB8ICAgMTEuMTIzNCB8ICAgIDExLjEyMzQgfCAg ICAgICAgICAgICAxMS4xCisgIEluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAg fCAgICAgICAgIHwgIEluZmluaXR5IHwgIEluZmluaXR5IHwgICBJbmZpbml0eSB8ICAgICAgICAg ICAgICAgICAKKyAtSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAg ICAgfCAtSW5maW5pdHkgfCAtSW5maW5pdHkgfCAgLUluZmluaXR5IHwgICAgICAgICAgICAgICAg IAorICAgICAgIE5hTiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAg ICAgIE5hTiB8ICAgICAgIE5hTiB8ICAgICAgICBOYU4gfCAgICAgICAgICAgICAgTmFOCisoNCBy b3dzKQorCistLSBkYXRlL3RpbWVzdGFtcC9pbnRlcnZhbCByZWxhdGVkIHNhZmUgdHlwZSBjYXN0 CitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDIoCisgIGNvbDAgZGF0ZSwgY29sMSB0aW1lc3Rh bXAsIGNvbDIgdGltZXN0YW1wdHosCisgIGNvbDMgaW50ZXJ2YWwsIGNvbDQgdGltZSwgY29sNSB0 aW1ldHopOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDIgVkFMVUVTCisoJy1pbmZpbml0eScs ICctaW5maW5pdHknLCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsCisgICcyMDAzLTAzLTA3IDE1 OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnLCAnMjAwMy0wNy0wNyAxNTozNjozOSBBbWVyaWNhL05l d19Zb3JrJyksCisoJy1pbmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0 eScsCisgICcxMTo1OTo1OS45OSBQTScsICcxMTo1OTo1OS45OSBQTSBQRFQnKTsKK1NFTEVDVCBj b2wwIGFzIGRhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNv bDAgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwK KyAgICAgICBDQVNUKGNvbDAgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMCBBUyB0 aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVz dGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyAgIGRhdGUgICAgfCB0b190aW1lc3Rh bXB0eiB8ICB0b19kYXRlICB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9fdGltZXN0YW1wX3Nj YWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLWluZmluaXR5IHwgLWluZmluaXR5 ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQorIC1p bmZpbml0eSB8IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAgICAgfCAgICAgICAg ICAgfCAtaW5maW5pdHkKKygyIHJvd3MpCisKK1NFTEVDVCBjb2wxIGFzIHRpbWVzdGFtcCwKKyAg ICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMSBBUyBkYXRlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29s MSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywK KyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcCgyKSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9N IHRlc3Rfc2FmZWNhc3QyOworIHRpbWVzdGFtcCB8IHRvX3RpbWVzdGFtcHR6IHwgIHRvX2RhdGUg IHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAtaW5maW5pdHkgfCAtaW5maW5pdHkgICAgICB8IC1pbmZpbml0 eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5CisgaW5maW5pdHkgIHwgaW5maW5p dHkgICAgICAgfCBpbmZpbml0eSAgfCAgICAgICAgICB8ICAgICAgICAgICB8IGluZmluaXR5Ciso MiByb3dzKQorCitTRUxFQ1QgY29sMiBhcyB0aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIg QVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMiBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNv bDIgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l dHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3Qy OworIHRpbWVzdGFtcHR6IHwgdG9fdGltZXN0YW1wdHogfCAgdG9fZGF0ZSAgfCB0b190aW1lcyB8 IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tCisgLWluZmluaXR5ICAgfCAtaW5maW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAgICAg ICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5CisgaW5maW5pdHkgICAgfCBpbmZpbml0eSAgICAg ICB8IGluZmluaXR5ICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgaW5maW5pdHkKKygyIHJvd3Mp CisKK1NFTEVDVCBjb2wzIGFzIGludGVydmFsLAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lc3Rh bXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHos CisgICAgICAgQ0FTVChjb2wzIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMyBBUyB0aW1l dHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAg ICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUsCisgICAgICAgQ0FTVChjb2wzIEFTIGludGVydmFs KDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2Fs ZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyBpbnRlcnZhbCAgfCB0b190aW1lc3RhbXB0eiB8IHRv X2RhdGUgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSB8IHRvX2lu dGVydmFsX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tCisgLWluZmluaXR5IHwgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAtaW5maW5pdHkKKyBpbmZpbml0eSAgfCAg ICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IGluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29sNCBhcyB0aW1lLAor ICAgICAgIENBU1QoY29sNCBBUyB0aW1lKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDQgQVMgdGltZXR6IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBJUyBOT1QgTlVMTCBhcyB0b190aW1ldHosCisgICAgICAg Q0FTVChjb2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9NIHRl c3Rfc2FmZWNhc3QyOworICAgIHRpbWUgICAgIHwgIHRvX3RpbWVzICAgfCB0b190aW1ldHogfCAg ICAgICAgICB0b19pbnRlcnZhbCAgICAgICAgICB8ICAgICAgIHRvX2ludGVydmFsX3NjYWxlICAg ICAgIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDE1 OjM2OjM5ICAgIHwgMTU6MzY6MzkgICAgfCB0ICAgICAgICAgfCBAIDE1IGhvdXJzIDM2IG1pbnMg Mzkgc2VjcyAgICB8IEAgMTUgaG91cnMgMzYgbWlucyAzOSBzZWNzCisgMjM6NTk6NTkuOTkgfCAy Mzo1OTo1OS45OSB8IHQgICAgICAgICB8IEAgMjMgaG91cnMgNTkgbWlucyA1OS45OSBzZWNzIHwg QCAyMyBob3VycyA1OSBtaW5zIDU5Ljk5IHNlY3MKKygyIHJvd3MpCisKK1NFTEVDVCBjb2w1IGFz IHRpbWV0eiwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fdGltZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSgyKSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZV9zY2FsZSwKKyAgICAgICBD QVNUKGNvbDUgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1ldHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0eig2KSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6X3NjYWxlLAorICAgICAgIENBU1QoY29sNSBB UyBpbnRlcnZhbCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2 YWwsCisgICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsK KyAgICAgdGltZXR6ICAgICB8ICAgdG9fdGltZSAgIHwgdG9fdGltZV9zY2FsZSB8ICAgdG9fdGlt ZXR6ICAgIHwgdG9fdGltZXR6X3NjYWxlIHwgdG9faW50ZXJ2YWwgfCB0b19pbnRlcnZhbF9zY2Fs ZSAKKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0KKyAxNTozNjozOS0wNCAgICB8IDE1OjM2OjM5ICAgIHwgMTU6MzY6MzkgICAgICB8IDE1 OjM2OjM5LTA0ICAgIHwgMTU6MzY6MzktMDQgICAgIHwgICAgICAgICAgICAgfCAKKyAyMzo1OTo1 OS45OS0wNyB8IDIzOjU5OjU5Ljk5IHwgMjM6NTk6NTkuOTkgICB8IDIzOjU5OjU5Ljk5LTA3IHwg MjM6NTk6NTkuOTktMDcgIHwgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKK0NSRUFURSBUQUJM RSB0ZXN0X3NhZmVjYXN0Myhjb2wwIGpzb25iKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3Qz KGNvbDApIFZBTFVFUyAoJyJ0ZXN0IicpOworU0VMRUNUIGNvbDAgYXMganNvbmIsCisgICAgICAg Q0FTVChjb2wwIEFTIGludGVnZXIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2ludGVnZXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wwIEFTIGJp Z2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAg ICBDQVNUKGNvbDAgQVMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0OCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMCBBUyBib29s ZWFuIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19ib29sLAorICAgICAg IENBU1QoY29sMCBBUyBzbWFsbGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fc21hbGxpbnQKK0ZST00gdGVzdF9zYWZlY2FzdDM7CisganNvbmIgIHwgdG9faW50ZWdl ciB8IHRvX251bWVyaWMgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fYm9v bCB8IHRvX3NtYWxsaW50IAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyAi dGVzdCIgfCAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAg ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAKKygxIHJvdykKKworLS0gdGVzdCBkZXBh cnNlCitTRVQgZGF0ZXN0eWxlIFRPIElTTywgWU1EOworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3 IEFTCitTRUxFQ1QgQ0FTVCgnMTIzNCcgYXMgY2hhcigzKSBERUZBVUxUIC0xMTExIE9OIENPTlZF UlNJT04gRVJST1IpLAorICAgICAgIENBU1QoMSBhcyBkYXRlIERFRkFVTFQgKCgnMjAyNS1EZWMt MDYnOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgY2FzdDAsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSdd XSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDEs CisgICAgICAgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgZGF0ZVtd IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MiwKKyAgICAgICBDQVNU KEFSUkFZWyd0aHJlZSddIEFTIElOVFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyBjYXN0MzsKK1xzdiBzYWZlY2FzdHZpZXcKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcg cHVibGljLnNhZmVjYXN0dmlldyBBUworIFNFTEVDVCBDQVNUKCcxMjM0JyBBUyBjaGFyYWN0ZXIo MykgREVGQVVMVCAnLTExMTEnOjppbnRlZ2VyOjpjaGFyYWN0ZXIoMykgT04gQ09OVkVSU0lPTiBF UlJPUikgQVMgYnBjaGFyLAorICAgIENBU1QoMSBBUyBkYXRlIERFRkFVTFQgJzIwMjUtMTItMDYn OjpkYXRlICsgcmFuZG9tKG1pbiA9PiAxLCBtYXggPT4gMSkgT04gQ09OVkVSU0lPTiBFUlJPUikg QVMgY2FzdDAsCisgICAgQ0FTVChBUlJBWVtBUlJBWVsxXSwgQVJSQVlbJ3RocmVlJ10sIEFSUkFZ WydhJ11dIEFTIGludGVnZXJbXSBERUZBVUxUICd7MSwyfSc6OmludGVnZXJbXSBPTiBDT05WRVJT SU9OIEVSUk9SKSBBUyBjYXN0MSwKKyAgICBDQVNUKEFSUkFZW0FSUkFZWycxJywgJzInXSwgQVJS QVlbJ3RocmVlJywgJ2EnXV0gQVMgZGF0ZVtdIERFRkFVTFQgTlVMTDo6ZGF0ZVtdIE9OIENPTlZF UlNJT04gRVJST1IpIEFTIGNhc3QyLAorICAgIENBU1QoQVJSQVlbJ3RocmVlJ10gQVMgaW50ZWdl cltdIERFRkFVTFQgJ3sxLDJ9Jzo6aW50ZWdlcltdIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNh c3QzCitTRUxFQ1QgKiBGUk9NIHNhZmVjYXN0dmlldzsKKyBicGNoYXIgfCAgIGNhc3QwICAgIHwg Y2FzdDEgfCBjYXN0MiB8IGNhc3QzIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0t LS0tLSstLS0tLS0tCisgMTIzICAgIHwgMjAyNS0xMi0wNyB8IHsxLDJ9IHwgICAgICAgfCB7MSwy fQorKDEgcm93KQorCitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcxIEFTCitTRUxFQ1QgQ0FTVChB UlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBkX2ludF9hcnIKKyAgICAgICAgICAgIERF RkFVTFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENB U1QoQVJSQVlbWycxJywgJzInLCAxLjFdLCBbJ3RocmVlJywgdHJ1ZSwgQicwMSddXSBBUyBkX2lu dF9hcnIKKyAgICAgICAgICAgIERFRkFVTFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIGNhc3QyOworXHN2IHNhZmVjYXN0dmlldzEKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVi bGljLnNhZmVjYXN0dmlldzEgQVMKKyBTRUxFQ1QgQ0FTVChBUlJBWVtBUlJBWVsxXSwgQVJSQVlb J3RocmVlJ10sIEFSUkFZWydhJ11dIEFTIGRfaW50X2FyciBERUZBVUxUICd7NDEsNDN9Jzo6aW50 ZWdlcltdOjpkX2ludF9hcnIgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDEsCisgICAgQ0FT VChBUlJBWVtBUlJBWVsxLCAyLCAxLjE6OmludGVnZXJdLCBBUlJBWVsndGhyZWUnLCB0cnVlLCAn MDEnOjoiYml0Il1dIEFTIGRfaW50X2FyciBERUZBVUxUICd7NDEsNDN9Jzo6aW50ZWdlcltdOjpk X2ludF9hcnIgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDIKK1NFTEVDVCAqIEZST00gc2Fm ZWNhc3R2aWV3MTsKKyAgY2FzdDEgIHwgIGNhc3QyICAKKy0tLS0tLS0tLSstLS0tLS0tLS0KKyB7 NDEsNDN9IHwgezQxLDQzfQorKDEgcm93KQorCitSRVNFVCBkYXRlc3R5bGU7CistLXRlc3QgQ0FT VCBERUZBVUxUIGV4cHJlc3Npb24gbXV0YWJpbGl0eQorQ1JFQVRFIElOREVYIGNhc3RfZXJyb3Jf aWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50IERFRkFVTFQgcmFuZG9tKG1p bj0+MSwgbWF4PT4xKSBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOworRVJST1I6ICBmdW5jdGlvbnMg aW4gaW5kZXggZXhwcmVzc2lvbiBtdXN0IGJlIG1hcmtlZCBJTU1VVEFCTEUKK0NSRUFURSBJTkRF WCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIHhpZCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsKK0VSUk9SOiAgZGF0YSB0eXBlIHhpZCBo YXMgbm8gZGVmYXVsdCBvcGVyYXRvciBjbGFzcyBmb3IgYWNjZXNzIG1ldGhvZCAiYnRyZWUiCitI SU5UOiAgWW91IG11c3Qgc3BlY2lmeSBhbiBvcGVyYXRvciBjbGFzcyBmb3IgdGhlIGluZGV4IG9y IGRlZmluZSBhIGRlZmF1bHQgb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBkYXRhIHR5cGUuCitDUkVB VEUgSU5ERVggdGVzdF9zYWZlY2FzdDNfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAg YXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOyAtLW9rCitTRUxFQ1Qg cGdfZ2V0X2luZGV4ZGVmKCd0ZXN0X3NhZmVjYXN0M19pZHgnOjpyZWdjbGFzcyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdf Z2V0X2luZGV4ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBJTkRF WCB0ZXN0X3NhZmVjYXN0M19pZHggT04gcHVibGljLnRlc3Rfc2FmZWNhc3QzIFVTSU5HIGJ0cmVl ICgoQ0FTVChjb2wwIEFTIGludGVnZXIgREVGQVVMVCBOVUxMOjppbnRlZ2VyIE9OIENPTlZFUlNJ T04gRVJST1IpKSkKKygxIHJvdykKKworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0OworRFJPUCBU QUJMRSB0ZXN0X3NhZmVjYXN0MTsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDI7CitEUk9QIFRB QkxFIHRlc3Rfc2FmZWNhc3QzOworRFJPUCBUQUJMRSB0Y2FzdDsKK0RST1AgRlVOQ1RJT04gcmV0 X2ludDg7CitEUk9QIEZVTkNUSU9OIHJldF9zZXRpbnQ7CitEUk9QIFRZUEUgY29tcF9kb21haW5f d2l0aF90eXBtb2Q7CitEUk9QIFRZUEUgY29tcDI7CitEUk9QIERPTUFJTiBkX3ZhcmNoYXI7CitE Uk9QIERPTUFJTiBkX2ludDQyOworRFJPUCBET01BSU4gZF9jaGFyM19ub3RfbnVsbDsKK1JFU0VU IGV4dHJhX2Zsb2F0X2RpZ2l0czsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY3JlYXRlX2Nhc3Qub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2Fz dC5vdXQKaW5kZXggMGU2OTY0NGJjYTIuLjAwNTRlZDBlZjY3IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dApAQCAtODgsNiArODgsMTEgQEAgU0VMRUNUIDEyMzQ6 OmludDQ6OmNhc3R0ZXN0dHlwZTsgLS0gU2hvdWxkIHdvcmsgbm93CiAgYmFyMTIzNAogKDEgcm93 KQogCitTRUxFQ1QgQ0FTVCgxMjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUg aW50ZWdlciB0byBjYXN0dGVzdHR5cGUgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lm aWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1Qo MTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFLi4uCisgICAg ICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVk IHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAogLS0gY2hlY2sgZGVwZW5kZW5jaWVzIGdlbmVy YXRlZCBmb3IgdGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdChjbGFzc2lkLCBvYmppZCwg b2Jqc3ViaWQpIGFzIG9iaiwKICAgICAgICBwZ19kZXNjcmliZV9vYmplY3QocmVmY2xhc3NpZCwg cmVmb2JqaWQsIHJlZm9ianN1YmlkKSBhcyBvYmpyZWYsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9lcXVpdmNsYXNzLm91dAppbmRleCBhZDhhYjI5NGZmNi4uNWFlZTJjN2E5ZmIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9lcXVpdmNsYXNzLm91dApAQCAtOTUsNiArOTUsMTMgQEAgY3Jl YXRlIGZ1bmN0aW9uIGludDhhbGlhczFjbXAoaW50OCwgaW50OGFsaWFzMSkgcmV0dXJucyBpbnQK ICAgc3RyaWN0IGltbXV0YWJsZSBsYW5ndWFnZSBpbnRlcm5hbCBhcyAnYnRpbnQ4Y21wJzsKIGFs dGVyIG9wZXJhdG9yIGZhbWlseSBpbnRlZ2VyX29wcyB1c2luZyBidHJlZSBhZGQKICAgZnVuY3Rp b24gMSBpbnQ4YWxpYXMxY21wIChpbnQ4LCBpbnQ4YWxpYXMxKTsKKy0tIGludDhhbGlhczIgYmlu YXJ5LWNvZXJjaWJsZSB0byBpbnQ4LiBzbyB0aGlzIGlzIG9rCitzZWxlY3QgY2FzdCgnMSc6Omlu dDggYXMgaW50OGFsaWFzMiBkZWZhdWx0IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7CisgaW50 OGFsaWFzMiAKKy0tLS0tLS0tLS0tLQorIDEKKygxIHJvdykKKwogY3JlYXRlIHRhYmxlIGVjMCAo ZmYgaW50OCBwcmltYXJ5IGtleSwgZjEgaW50OCwgZjIgaW50OCk7CiBjcmVhdGUgdGFibGUgZWMx IChmZiBpbnQ4IHByaW1hcnkga2V5LCBmMSBpbnQ4YWxpYXMxLCBmMiBpbnQ4YWxpYXMyKTsKIGNy ZWF0ZSB0YWJsZSBlYzIgKHhmIGludDggcHJpbWFyeSBrZXksIHgxIGludDhhbGlhczEsIHgyIGlu dDhhbGlhczIpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggOTA1ZjliY2E5NTku LmU0MWIzNjhkZDk0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTgxLDcgKzgx LDcgQEAgdGVzdDogY3JlYXRlX3RhYmxlX2xpa2UgYWx0ZXJfZ2VuZXJpYyBhbHRlcl9vcGVyYXRv ciBtaXNjIGFzeW5jIGRic2l6ZSBtZXJnZSBtaXMKICMgY29sbGF0ZS5saW51eC51dGY4IGFuZCBj b2xsYXRlLmljdS51dGY4IHRlc3RzIGNhbm5vdCBiZSBydW4gaW4gcGFyYWxsZWwgd2l0aCBlYWNo IG90aGVyCiAjIHBzcWwgZGVwZW5kcyBvbiBjcmVhdGVfYW0KICMgYW11dGlscyBkZXBlbmRzIG9u IGdlb21ldHJ5LCBjcmVhdGVfaW5kZXhfc3BnaXN0LCBoYXNoX2luZGV4LCBicmluCi10ZXN0OiBy dWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgcHNxbF9waXBlbGluZSBhbXV0aWxzIHN0YXRzX2V4dCBj b2xsYXRlLmxpbnV4LnV0ZjggY29sbGF0ZS53aW5kb3dzLndpbjEyNTIKK3Rlc3Q6IHJ1bGVzIHBz cWwgcHNxbF9jcm9zc3RhYiBwc3FsX3BpcGVsaW5lIGFtdXRpbHMgc3RhdHNfZXh0IGNvbGxhdGUu bGludXgudXRmOCBjb2xsYXRlLndpbmRvd3Mud2luMTI1MiBjYXN0CiAKICMgLS0tLS0tLS0tLQog IyBSdW4gdGhlc2UgYWxvbmUgc28gdGhleSBkb24ndCBydW4gb3V0IG9mIHBhcmFsbGVsIHdvcmtl cnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY2FzdC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjliNmYzY2MwNjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv Y2FzdC5zcWwKQEAgLTAsMCArMSwzNTAgQEAKK1NFVCBleHRyYV9mbG9hdF9kaWdpdHMgPSAwOwor CistLSBDQVNUIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUgorU0VMRUNUIENBU1QoQicwMScg QVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChC SVQnMDEnIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNU IENBU1QoVFJVRSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKDEuMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CitTRUxFQ1QgQ0FTVCgxMTExIEFTICJjaGFyIiBERUZBVUxUICdBJyBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKworLS10ZXN0IHNvdXJjZSBleHByZXNzaW9uIGlzIGEgdW5rbm93biBjb25zdAorVkFM VUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7 IC0tZXJyb3IKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSk7CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQgNDIg T04gQ09OVkVSU0lPTiBFUlJPUikpOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIDE4 IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1 bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoJ2EnIGFzIGlu dCBERUZBVUxUIHN1bSgxKSBvdmVyKCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NF TEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAoU0VMRUNUIE5VTEwpIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYSc6OmludCBhcyBpbnQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKKy0tdGhlIGRlZmF1bHQg ZXhwcmVzc2lvbuKAmXMgY29sbGF0aW9uIHNob3VsZCBtYXRjaCB0aGUgY29sbGF0aW9uIG9mIHRo ZSBjYXN0CistLXRhcmdldCB0eXBlCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyB0ZXh0IERFRkFV TFQgJzEnIENPTExBVEUgIkMiIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKworVkFMVUVTIChDQVNU KCdlcnJvcicgQVMgaW50MnZlY3RvciBERUZBVUxUICcxIDMnICBPTiBDT05WRVJTSU9OIEVSUk9S KSk7CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yW10gREVGQVVMVCAnezEgM30n ICBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisKKy0tIHRlc3Qgc291cmNlIGV4cHJlc3Npb24gY29u dGFpbiBzdWJxdWVyeQorU0VMRUNUIENBU1QoKFNFTEVDVCBiIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDEpLCAoVkFMVUVTKCdIJykpIHMoYikpCisgICAgICAgICAgICBBUyBpbnQydmVjdG9yW10g REVGQVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKChTRUxF Q1QgQVJSQVkoKFNFTEVDVCBiIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpIGcsIChWQUxVRVMo J0gnKSkgcyhiKSkpKQorICAgICAgICAgICAgQVMgSU5UW10KKyAgICAgICAgICAgIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworQ1JFQVRFIEZVTkNUSU9OIHJldF9pbnQ4KCkg UkVUVVJOUyBCSUdJTlQgQVMKKyQkCitCRUdJTiBSRVRVUk4gMjE0NzQ4MzY0ODsgRU5EOworJCQK K0xBTkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERF RkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENB U1QoJ2EnIGFzIGRhdGUgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJST1IpOyAt LWVycm9yCisKKy0tIERFRkFVTFQgZXhwcmVzc2lvbiBjYW4gbm90IGJlIHNldC1yZXR1cm5pbmcK K0NSRUFURSBGVU5DVElPTiByZXRfc2V0aW50KCkgUkVUVVJOUyBTRVRPRiBpbnRlZ2VyIEFTCisk JAorQkVHSU4gUkVUVVJOIFFVRVJZIEVYRUNVVEUgJ3NlbGVjdCAxIHVuaW9uIGFsbCBzZWxlY3Qg MSc7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRTsKKworQ1JFQVRFIFRBQkxF IHRjYXN0KGEgdGV4dFtdLCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyBJREVOVElUWSk7 CitJTlNFUlQgSU5UTyB0Y2FzdCBWQUxVRVMgKCd7MTJ9JyksICgnezEsYSwgYn0nKSwgKCd7ezEs Mn0sIHtjLGR9fScpLCAoJ3sxM30nKTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBy ZXRfc2V0aW50KCkgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdDsgLS1lcnJvcgorU0VM RUNUIENBU1QodCBBUyB0ZXh0W10gREVGQVVMVCAnezIxLDIyLCAnIHx8IGIgfHwgJ30nIE9OIENP TlZFUlNJT04gRVJST1IpIEZST00gdGNhc3QgYXMgdDsKK1NFTEVDVCBDQVNUKHQuYSBBUyBpbnRb XSBERUZBVUxUICd7MjEsMjJ9Jzo6aW50W10gfHwgYiBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9N IHRjYXN0IGFzIHQ7CisKKy0tIHRlc3Qgd2l0aCB1c2VyLWRlZmluZWQgdHlwZSwgZG9tYWluLCBh cnJheSBvdmVyIGRvbWFpbiwgZG9tYWluIG92ZXIgYXJyYXkKK0NSRUFURSBET01BSU4gZF9pbnQ0 MiBhcyBpbnQgY2hlY2sgKHZhbHVlID0gNDIpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2No YXIzX25vdF9udWxsIGFzIGNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfdmFyY2hh ciBhcyB2YXJjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMgaW50 W10gY2hlY2sgKHZhbHVlID0gJ3s0MSwgNDN9JykgTk9UIE5VTEw7CitDUkVBVEUgVFlQRSBjb21w X2RvbWFpbl93aXRoX3R5cG1vZCBBUyAoYSBkX2NoYXIzX25vdF9udWxsLCBiIGludCk7CitDUkVB VEUgVFlQRSBjb21wMiBBUyAoYSBkX3ZhcmNoYXIpOworU0VMRUNUIENBU1QoJyhOVUxMKScgQVMg Y29tcDIgREVGQVVMVCAnKDEyMzIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VM RUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMyknIE9OIENPTlZFUlNJT04g RVJST1IpOworU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQxIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDIg T04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMIEFTIGRfaW50NDIgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVChOVUxMIEFT IGRfaW50NDIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCco LDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90 eXBtb2QgREVGQVVMVCAnKDEsMiknIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1Qo JyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCAnKDEyMzQsMikn IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKK1NFTEVDVCBDQVNUKEFSUkFZWzQyLDQx XSBBUyBkX2ludDQyW10gREVGQVVMVCAnezQyLCA0Mn0nIE9OIENPTlZFUlNJT04gRVJST1IpOwor U0VMRUNUIENBU1QoQVJSQVlbNDIsNDFdIEFTIGRfaW50X2FyciBERUZBVUxUICd7NDEsIDQzfScg T04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tIHRlc3QgYXJyYXkgY29lcmNlCitTRUxFQ1QgQ0FT VChhcnJheVsnYSc6OnRleHRdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoYXJyYXlbJ2EnXSBBUyBpbnRbXSBERUZBVUxUIEFS UkFZWzFdIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoYXJyYXlbMTEuMTJdIEFT IGRhdGVbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChh cnJheVsxMTExMTExMTExMTExMTExMV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoYXJyYXlbWydhYmMnXSxbNDU2XV0gQVMgaW50W10gREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ3sxMjMsYWJjLDQ1 Nn0nIEFTIGludFtdIERFRkFVTFQgJ3stNzg5fScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCgnezIzNCxkZWYsNTY3fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAney0x MDExfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0 aHJlZSddLFsnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJP Uik7CitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgaW50 W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tb2sKK1NFTEVDVCBD QVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnOjppbnQsICdhJ11dIEFTIGludFtdIERFRkFV TFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVChB UlJBWVsxLCAndGhyZWUnOjppbnRdIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZF UlNJT04gRVJST1IpOyAtLWVycm9yCisKKy0tLS0tc2FmZSBjYXN0IHdpdGggZ2VvbWV0cnkgZGF0 YSB0eXBlCitTRUxFQ1QgQ0FTVCgnKDEsMiknOjpwb2ludCBBUyBib3ggREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1soTmFOLDEpLChOYU4saW5maW5pdHkp XSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VM RUNUIENBU1QoJ1soMWUrMzAwLEluZmluaXR5KSwoMWUrMzAwLEluZmluaXR5KV0nOjpsc2VnIEFT IHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdb KDEsMiksKDMsNCldJzo6cGF0aCBhcyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTmFOLDEuMCxOYU4saW5maW5pdHkpJzo6Ym94IEFTIHBv aW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4w LDIuMCwwLjAsMC4wKSc6OmJveCBBUyBsc2VnIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBwb2x5Z29uIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCww LjAsMC4wKSc6OmJveCBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKCcoMi4wLGluZmluaXR5LE5hTixpbmZpbml0eSknOjpib3ggQVMgY2lyY2xl IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTmFOLDAu MCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdvbiBBUyBwb2ludCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwwLjApLCgyLjAsNC4w KSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4wLDQuMCksKDAuMCwwLjApJzo6cG9s eWdvbiBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoJyhOYU4saW5maW5pdHkpLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMg Y2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCc8 KDUsMSksMz4nOjpjaXJjbGUgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBib3ggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworCistLSBub3Qgc3VwcG9ydGVkIGJlY2F1c2UgdGhlIGNh c3QgZnJvbSBjaXJjbGUgdG8gcG9seWdvbiBpcyBpbXBsZW1lbnRlZCBhcyBhIFNRTAorLS0gZnVu Y3Rpb24sIHdoaWNoIGNhbm5vdCBiZSBlcnJvci1zYWZlLgorU0VMRUNUIENBU1QoJzwoMyw1KSww Pic6OmNpcmNsZSBhcyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KworLS0tLS1zYWZlIGNhc3QgZnJvbS90byBtb25leSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQsIGFs bCB0aGUgZm9sbG93aW5nIHdvdWxkIHJlc3VsdCBlcnJvcgorU0VMRUNUIENBU1QoTlVMTDo6aW50 OCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VChOVUxMOjppbnQ0IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKE5VTEw6Om51bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJpYyBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMOjptb25leVtdIEFT IG51bWVyaWNbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2Fm ZSBjYXN0IGZyb20gYnl0ZWEgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCAo J1x4MTEyMjMzNDQ1NTY2Nzc4ODk5Jzo6Ynl0ZWEgQVMgaW50OCBERUZBVUxUIDE5IE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Nzg5QSc6OmJ5dGVhIEFTIGludDQg REVGQVVMVCAyMCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Nic6 OmJ5dGVhIEFTIGludDIgREVGQVVMVCAyMSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0tLS1z YWZlIGNhc3QgZnJvbSBiaXQgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCgn MTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UIERFRkFVTFQgMjIgT04gQ09OVkVSU0lP TiBFUlJPUik7CitTRUxFQ1QgQ0FTVCAoJzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElO VDggREVGQVVMVCAyMyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0tLS1zYWZlIGNhc3QgZnJv bSB0ZXh0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworc2VsZWN0IENBU1QoJ2EuYi5jLmQnOjp0 ZXh0IGFzIHJlZ2NsYXNzIGRlZmF1bHQgTlVMTCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKworQ1JF QVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QoY29sMCB0ZXh0KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2Fm ZWNhc3QoY29sMCkgVkFMVUVTICgnPHZhbHVlPm9uZTwvdmFsdWUnKTsKKworU0VMRUNUIGNvbDAg YXMgdGV4dCwKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3JlZ2NsYXNzLAorICAgICAgIENBU1QoY29sMCBBUyByZWdj bGFzcyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTlVMTCBhcyBleHBlY3Rf dHJ1ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgImNoYXIiICBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fY2hhciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbmFtZSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbmFtZSwKKyAgICAgICBDQVNUKGNvbDAg QVMgeG1sIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b194bWwKK0ZST00g dGVzdF9zYWZlY2FzdDsKKworU0VMRUNUIENBU1QoJzE5Mi4xNjguMS54JyBhcyBpbmV0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEuMi8z MCcgYXMgY2lkciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VCgnMjI6MDA6NWM6MDg6NTU6MDg6MDE6MDInOjptYWNhZGRyOCBhcyBtYWNhZGRyIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0tLS1zYWZlIGNhc3QgYmV0d2VlZW4gcmFu Z2UgZGF0YSB0eXBlcworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50NHJhbmdlIEFTIGludDRtdWx0 aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdb MSwyXSc6OmludDhyYW5nZSBBUyBpbnQ4bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjpudW1yYW5nZSAgQVMgbnVtbXVsdGly YW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWy1p bmZpbml0eSxpbmZpbml0eV0nOjpkYXRlcmFuZ2UgQVMgZGF0ZW11bHRpcmFuZ2UgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5p dHldJzo6dHNyYW5nZSBBUyB0c211bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6dHN0enJhbmdlIEFT IHRzdHptdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0t LS1zYWZlIGNhc3QgYmV0d2VlZW4gbnVtZXJpYyBkYXRhIHR5cGVzCitDUkVBVEUgVEFCTEUgdGVz dF9zYWZlY2FzdDEoCisgIGNvbDEgZmxvYXQ0LCBjb2wyIGZsb2F0OCwgY29sMyBudW1lcmljLCBj b2w0IG51bWVyaWNbXSwKKyAgY29sNSBpbnQyIGRlZmF1bHQgMzI3NjcsCisgIGNvbDYgaW50NCBk ZWZhdWx0IDMyNzY4LAorICBjb2w3IGludDggZGVmYXVsdCA0Mjk0OTY3Mjk2KTsKK0lOU0VSVCBJ TlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnMTEuMTIzNCcsICcxMS4xMjM0JywgJzkyMjMzNzIw MzY4NTQ3NzU4MDgnLCAnezExLjEyMzR9Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rf c2FmZWNhc3QxIFZBTFVFUygnaW5mJywgJ2luZicsICdpbmYnLCAnezExLjEyMzQsIDEyLCBpbmYs IE5hTn0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCct aW5mJywgJy1pbmYnLCAnLWluZicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmlj W10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdOYU4nLCAnTmFOJywgJ05h TicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10pOworCitTRUxFQ1QgY29s NSBhcyBpbnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQ0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29s NSBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAg ICAgICBDQVNUKGNvbDUgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0 OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAg IENBU1QoY29sNSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sNSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rf c2FmZWNhc3QxOworCitTRUxFQ1QgY29sNiBhcyBpbnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBp bnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAg IENBU1QoY29sNiBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDYgYXMgaW50OCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDYgYXMg ZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisg ICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sNiBhcyBudW1lcmljIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sNiBh cyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworCitTRUxFQ1QgY29sNyBhcyBpbnQ4 LAorICAgICAgIENBU1QoY29sNyBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNyBBUyBvaWQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNU KGNvbDcgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0OCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29s NyBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1l cmljLAorICAgICAgIENBU1QoY29sNyBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3Qx OworCitTRUxFQ1QgY29sMyBhcyBudW1lcmljLAorICAgICAgIENBU1QoY29sMyBBUyBpbnQyIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1Qo Y29sMyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0 LAorICAgICAgIENBU1QoY29sMyBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDMgYXMgaW50OCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ0 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAg Q0FTVChjb2wzIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMyBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMyBhcyBudW1l cmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmlj X3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworCitTRUxFQ1QgY29sNCBhcyBudW1fYXJyLAor ICAgICAgIENBU1QoY29sNCBBUyBpbnQyW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIGludDJhcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDRbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50NGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgaW50 OFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ4YXJyLAorICAgICAg IENBU1QoY29sNCBhcyBmbG9hdDRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgZjRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0OFtdIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyBmOGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgbnVtZXJpYygx MCwxKVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBudW1hcnIKK0ZST00g dGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wxIGFzIGZsb2F0NCwKKyAgICAgICBDQVNUKGNv bDEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwK KyAgICAgICBDQVNUKGNvbDEgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDEgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wxIGFzIGludDggREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChj b2wxIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxv YXQ0LAorICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDEgYXMgbnVtZXJpYyBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNU KGNvbDEgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDIg YXMgZmxvYXQ4LAorICAgICAgIENBU1QoY29sMiBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMiBBUyBpbnQ0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29s MiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAg ICAgICBDQVNUKGNvbDIgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0 OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAg IENBU1QoY29sMiBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMiBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rf c2FmZWNhc3QxOworCistLSBkYXRlL3RpbWVzdGFtcC9pbnRlcnZhbCByZWxhdGVkIHNhZmUgdHlw ZSBjYXN0CitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDIoCisgIGNvbDAgZGF0ZSwgY29sMSB0 aW1lc3RhbXAsIGNvbDIgdGltZXN0YW1wdHosCisgIGNvbDMgaW50ZXJ2YWwsIGNvbDQgdGltZSwg Y29sNSB0aW1ldHopOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDIgVkFMVUVTCisoJy1pbmZp bml0eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsCisgICcyMDAzLTAz LTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnLCAnMjAwMy0wNy0wNyAxNTozNjozOSBBbWVy aWNhL05ld19Zb3JrJyksCisoJy1pbmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0eScsICdp bmZpbml0eScsCisgICcxMTo1OTo1OS45OSBQTScsICcxMTo1OTo1OS45OSBQTSBQRFQnKTsKKwor U0VMRUNUIGNvbDAgYXMgZGF0ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wdHogREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAg IENBU1QoY29sMCBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19kYXRlLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXR6IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChj b2wwIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sMSBh cyB0aW1lc3RhbXAsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNv bDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwK KyAgICAgICBDQVNUKGNvbDEgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMSBBUyB0 aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVz dGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDIgYXMgdGltZXN0 YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMg ZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAg ICBDQVNUKGNvbDIgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lc3Rh bXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9z Y2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDMgYXMgaW50ZXJ2YWwsCisg ICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDMgQVMgZGF0ZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNv bDMgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMs CisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lc3RhbXAoMikgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZSwKKyAg ICAgICBDQVNUKGNvbDMgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxF Q1QgY29sNCBhcyB0aW1lLAorICAgICAgIENBU1QoY29sNCBBUyB0aW1lKDIpIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDQgQVMg dGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBJUyBOT1QgTlVMTCBhcyB0 b190aW1ldHosCisgICAgICAgQ0FTVChjb2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDQgQVMg aW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVy dmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sNSBhcyB0aW1ldHos CisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUoMikgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1 IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6 LAorICAgICAgIENBU1QoY29sNSBBUyB0aW1ldHooNikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWV0el9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2 YWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAg ICAgIENBU1QoY29sNSBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK0NSRUFU RSBUQUJMRSB0ZXN0X3NhZmVjYXN0Myhjb2wwIGpzb25iKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2Fm ZWNhc3QzKGNvbDApIFZBTFVFUyAoJyJ0ZXN0IicpOworU0VMRUNUIGNvbDAgYXMganNvbmIsCisg ICAgICAgQ0FTVChjb2wwIEFTIGludGVnZXIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2ludGVnZXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG51bWVyaWMgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2ww IEFTIGJpZ2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwK KyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0OCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMCBB UyBib29sZWFuIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19ib29sLAor ICAgICAgIENBU1QoY29sMCBBUyBzbWFsbGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fc21hbGxpbnQKK0ZST00gdGVzdF9zYWZlY2FzdDM7CisKKy0tIHRlc3QgZGVw YXJzZQorU0VUIGRhdGVzdHlsZSBUTyBJU08sIFlNRDsKK0NSRUFURSBWSUVXIHNhZmVjYXN0dmll dyBBUworU0VMRUNUIENBU1QoJzEyMzQnIGFzIGNoYXIoMykgREVGQVVMVCAtMTExMSBPTiBDT05W RVJTSU9OIEVSUk9SKSwKKyAgICAgICBDQVNUKDEgYXMgZGF0ZSBERUZBVUxUICgoJzIwMjUtRGVj LTA2Jzo6ZGF0ZSArIHJhbmRvbShtaW49PjEsIG1heD0+MTo6aW50KSkpIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIGNhc3QwLAorICAgICAgIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2En XV0gQVMgaW50W10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3Qx LAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGRhdGVb XSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDIsCisgICAgICAgQ0FT VChBUlJBWVsndGhyZWUnXSBBUyBJTlRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgY2FzdDM7Citcc3Ygc2FmZWNhc3R2aWV3CitTRUxFQ1QgKiBGUk9NIHNhZmVjYXN0 dmlldzsKKworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3MSBBUworU0VMRUNUIENBU1QoQVJSQVlb WycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgZF9pbnRfYXJyCisgICAgICAgICAgICBERUZBVUxU ICd7NDEsNDN9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwKKyAgICAgICBDQVNUKEFS UkFZW1snMScsICcyJywgMS4xXSwgWyd0aHJlZScsIHRydWUsIEInMDEnXV0gQVMgZF9pbnRfYXJy CisgICAgICAgICAgICBERUZBVUxUICd7NDEsNDN9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBj YXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcxCitTRUxFQ1QgKiBGUk9NIHNhZmVjYXN0dmlldzE7CisK K1JFU0VUIGRhdGVzdHlsZTsKKworLS10ZXN0IENBU1QgREVGQVVMVCBleHByZXNzaW9uIG11dGFi aWxpdHkKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FT VChjb2wwIGFzIGludCBERUZBVUxUIHJhbmRvbShtaW49PjEsIG1heD0+MSkgT04gQ09OVkVSU0lP TiBFUlJPUikpKTsKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0 MygoQ0FTVChjb2wwIGFzIHhpZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsK K0NSRUFURSBJTkRFWCB0ZXN0X3NhZmVjYXN0M19pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1Qo Y29sMCBhcyBpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKSk7IC0tb2sKK1NF TEVDVCBwZ19nZXRfaW5kZXhkZWYoJ3Rlc3Rfc2FmZWNhc3QzX2lkeCc6OnJlZ2NsYXNzKTsKKwor RFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0OworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MTsKK0RS T1AgVEFCTEUgdGVzdF9zYWZlY2FzdDI7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QzOworRFJP UCBUQUJMRSB0Y2FzdDsKK0RST1AgRlVOQ1RJT04gcmV0X2ludDg7CitEUk9QIEZVTkNUSU9OIHJl dF9zZXRpbnQ7CitEUk9QIFRZUEUgY29tcF9kb21haW5fd2l0aF90eXBtb2Q7CitEUk9QIFRZUEUg Y29tcDI7CitEUk9QIERPTUFJTiBkX3ZhcmNoYXI7CitEUk9QIERPTUFJTiBkX2ludDQyOworRFJP UCBET01BSU4gZF9jaGFyM19ub3RfbnVsbDsKK1JFU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0czsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbAppbmRleCAzMjE4Nzg1M2NjNy4uMGExNWE3OTVk ODcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKQEAgLTYyLDYgKzYyLDcgQEAg JCQgU0VMRUNUICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7ICQkOwogCiBDUkVBVEUgQ0FTVCAo aW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggRlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBB UyBJTVBMSUNJVDsKIFNFTEVDVCAxMjM0OjppbnQ0OjpjYXN0dGVzdHR5cGU7IC0tIFNob3VsZCB3 b3JrIG5vdworU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgogCiAtLSBjaGVjayBkZXBlbmRlbmNp ZXMgZ2VuZXJhdGVkIGZvciB0aGF0CiBTRUxFQ1QgcGdfZGVzY3JpYmVfb2JqZWN0KGNsYXNzaWQs IG9iamlkLCBvYmpzdWJpZCkgYXMgb2JqLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZXF1aXZjbGFzcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9lcXVpdmNsYXNzLnNxbApp bmRleCA3ZmMyMTU5MzQ5Yi4uNWFkMWQyNjMxMWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2VxdWl2Y2xhc3Muc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2VxdWl2Y2xh c3Muc3FsCkBAIC05OCw2ICs5OCw5IEBAIGNyZWF0ZSBmdW5jdGlvbiBpbnQ4YWxpYXMxY21wKGlu dDgsIGludDhhbGlhczEpIHJldHVybnMgaW50CiBhbHRlciBvcGVyYXRvciBmYW1pbHkgaW50ZWdl cl9vcHMgdXNpbmcgYnRyZWUgYWRkCiAgIGZ1bmN0aW9uIDEgaW50OGFsaWFzMWNtcCAoaW50OCwg aW50OGFsaWFzMSk7CiAKKy0tIGludDhhbGlhczIgYmluYXJ5LWNvZXJjaWJsZSB0byBpbnQ4LiBz byB0aGlzIGlzIG9rCitzZWxlY3QgY2FzdCgnMSc6OmludDggYXMgaW50OGFsaWFzMiBkZWZhdWx0 IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7CisKIGNyZWF0ZSB0YWJsZSBlYzAgKGZmIGludDgg cHJpbWFyeSBrZXksIGYxIGludDgsIGYyIGludDgpOwogY3JlYXRlIHRhYmxlIGVjMSAoZmYgaW50 OCBwcmltYXJ5IGtleSwgZjEgaW50OGFsaWFzMSwgZjIgaW50OGFsaWFzMik7CiBjcmVhdGUgdGFi bGUgZWMyICh4ZiBpbnQ4IHByaW1hcnkga2V5LCB4MSBpbnQ4YWxpYXMxLCB4MiBpbnQ4YWxpYXMy KTsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggYjllNjcxZmNkYTguLjczMWE5ZTUyNDE2 IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjY4OCw2ICsyNjg4LDggQEAgU1RSTEVO CiBTVgogU1lOQ0hST05JWkFUSU9OX0JBUlJJRVIKIFNZU1RFTV9JTkZPCitTYWZlVHlwZUNhc3RF eHByCitTYWZlVHlwZUNhc3RTdGF0ZQogU2FtcGxlU2NhbgogU2FtcGxlU2NhbkdldFNhbXBsZVNp emVfZnVuY3Rpb24KIFNhbXBsZVNjYW5TdGF0ZQotLSAKMi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0021-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v17-0021-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4s82 RnJvbSA2MTA2YmQ2YmM2ZmM4OTc1MWJkMzVmODBjYTc5ZTRmODc2OGM2N2EzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMyBKYW4gMjAyNiAxNDo0NDozOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDIxLzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGdlb21ldHJ5IGRhdGEgdHlwZQoKc2VsZWN0 IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUsIHBwLnByb3NyYwpmcm9t IHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3RmdW5jCmpvaW4g cGdfdHlwZSBwdCBvbiBwdC5vaWQgPSBjYXN0c291cmNlCmpvaW4gcGdfdHlwZSBwdDEgb24gcHQx Lm9pZCA9IGNhc3R0YXJnZXQKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgIHB0LnR5cGFycmF5IDw+ IDAKYW5kIHB0LnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCBw dDEudHlwbmFtZXNwYWNlID0gJ3BnX2NhdGFsb2cnOjpyZWduYW1lc3BhY2UKYW5kIChwdC50eXBj YXRlZ29yeSAgPSAnRycgb3IgcHQxLnR5cGNhdGVnb3J5ICA9ICdHJykKb3JkZXIgYnkgY2FzdHNv dXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2FzdHRh cmdldCB8ICAgIHByb3NyYwotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LQogcG9pbnQgICAgICB8IGJveCAgICAgICAgfCBwb2ludF9ib3gKIGxzZWcgICAgICAgfCBwb2lu dCAgICAgIHwgbHNlZ19jZW50ZXIKIHBhdGggICAgICAgfCBwb2x5Z29uICAgIHwgcGF0aF9wb2x5 CiBib3ggICAgICAgIHwgcG9pbnQgICAgICB8IGJveF9jZW50ZXIKIGJveCAgICAgICAgfCBsc2Vn ICAgICAgIHwgYm94X2RpYWdvbmFsCiBib3ggICAgICAgIHwgcG9seWdvbiAgICB8IGJveF9wb2x5 CiBib3ggICAgICAgIHwgY2lyY2xlICAgICB8IGJveF9jaXJjbGUKIHBvbHlnb24gICAgfCBwb2lu dCAgICAgIHwgcG9seV9jZW50ZXIKIHBvbHlnb24gICAgfCBwYXRoICAgICAgIHwgcG9seV9wYXRo CiBwb2x5Z29uICAgIHwgYm94ICAgICAgICB8IHBvbHlfYm94CiBwb2x5Z29uICAgIHwgY2lyY2xl ICAgICB8IHBvbHlfY2lyY2xlCiBjaXJjbGUgICAgIHwgcG9pbnQgICAgICB8IGNpcmNsZV9jZW50 ZXIKIGNpcmNsZSAgICAgfCBib3ggICAgICAgIHwgY2lyY2xlX2JveAogY2lyY2xlICAgICB8IHBv bHlnb24gICAgfAooMTQgcm93cykKCmFscmVhZHkgZXJyb3Igc2FmZTogcG9pbnRfYm94LCBib3hf ZGlhZ29uYWwsIGJveF9wb2x5LCBwb2x5X3BhdGgsIHBvbHlfYm94LApjaXJjbGVfY2VudGVyClRo aXMgcGF0Y2ggbWFrZSB0aGVzZSBmdW5jdGlvbnMgZXJyb3Igc2FmZTogcGF0aF9wb2x5LCBsc2Vn X2NlbnRlciwgYm94X2NlbnRlciwKYm94X2NpcmNsZSwgcG9seV9jZW50ZXIsIHBvbHlfY2lyY2xl LCBjaXJjbGVfYm94CgpjYW4gbm90IGVycm9yIHNhZmU6IGNhc3QgY2lyY2xlIHRvIHBvbHlnb24s IGJlY2F1c2UgaXQncyBhIFNRTCBmdW5jdGlvbi4KZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3Iu ZXMvbS9DQUNKdWZ4SENNenJIT1c9d1JlOEwzMHJNaEIzc2p3QXYxTEU5MjhGYTdzeE11MVR4LWdA bWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIHwgMTky ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUyIGlu c2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9nZW9fb3BzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCmluZGV4 IGM2NTViMDE1YzE0Li45MDIyOGFkMjE3NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2dlb19vcHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBAIC03 Nyw3ICs3Nyw4IEBAIGVudW0gcGF0aF9kZWxpbQogCiAvKiBSb3V0aW5lcyBmb3IgcG9pbnRzICov CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfY29uc3RydWN0KFBvaW50ICpyZXN1bHQsIGZsb2F0 OCB4LCBmbG9hdDggeSk7Ci1zdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfYWRkX3BvaW50KFBvaW50 ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGluZSB2b2lkIHBv aW50X2FkZF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyLAorCQkJ CQkJCQkgICBOb2RlICplc2NvbnRleHQpOwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X3N1Yl9w b2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxp bmUgdm9pZCBwb2ludF9tdWxfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQg KnB0Mik7CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfZGl2X3BvaW50KFBvaW50ICpyZXN1bHQs IFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwpAQCAtMTA4LDcgKzEwOSw3IEBAIHN0YXRpYyBmbG9h dDggbHNlZ19jbG9zZXB0X2xzZWcoUG9pbnQgKnJlc3VsdCwgTFNFRyAqb25fbHNlZywgTFNFRyAq dG9fbHNlZyk7CiAKIC8qIFJvdXRpbmVzIGZvciBib3hlcyAqLwogc3RhdGljIGlubGluZSB2b2lk IGJveF9jb25zdHJ1Y3QoQk9YICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwotc3Rh dGljIHZvaWQgYm94X2NuKFBvaW50ICpjZW50ZXIsIEJPWCAqYm94KTsKK3N0YXRpYyB2b2lkIGJv eF9jbihQb2ludCAqY2VudGVyLCBCT1ggKmJveCwgTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBi b29sIGJveF9vdihCT1ggKmJveDEsIEJPWCAqYm94Mik7CiBzdGF0aWMgZmxvYXQ4IGJveF9hcihC T1ggKmJveCk7CiBzdGF0aWMgZmxvYXQ4IGJveF9odChCT1ggKmJveCk7CkBAIC0xMjUsNyArMTI2 LDcgQEAgc3RhdGljIGZsb2F0OCBjaXJjbGVfYXIoQ0lSQ0xFICpjaXJjbGUpOwogCiAvKiBSb3V0 aW5lcyBmb3IgcG9seWdvbnMgKi8KIHN0YXRpYyB2b2lkIG1ha2VfYm91bmRfYm94KFBPTFlHT04g KnBvbHkpOwotc3RhdGljIHZvaWQgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlH T04gKnBvbHkpOworc3RhdGljIGJvb2wgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBP TFlHT04gKnBvbHksIE5vZGUgKmVzY29udGV4dCk7CiBzdGF0aWMgYm9vbCBsc2VnX2luc2lkZV9w b2x5KFBvaW50ICphLCBQb2ludCAqYiwgUE9MWUdPTiAqcG9seSwgaW50IHN0YXJ0KTsKIHN0YXRp YyBib29sIHBvbHlfY29udGFpbl9wb2x5KFBPTFlHT04gKmNvbnRhaW5zX3BvbHksIFBPTFlHT04g KmNvbnRhaW5lZF9wb2x5KTsKIHN0YXRpYyBib29sIHBsaXN0X3NhbWUoaW50IG5wdHMsIFBvaW50 ICpwMSwgUG9pbnQgKnAyKTsKQEAgLTgzNiw4ICs4MzcsOCBAQCBib3hfZGlzdGFuY2UoUEdfRlVO Q1RJT05fQVJHUykKIAlQb2ludAkJYSwKIAkJCQliOwogCi0JYm94X2NuKCZhLCBib3gxKTsKLQli b3hfY24oJmIsIGJveDIpOworCWJveF9jbigmYSwgYm94MSwgTlVMTCk7CisJYm94X2NuKCZiLCBi b3gyLCBOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQoJmEsICZiLCBmY2luZm8t PmNvbnRleHQpKTsKIH0KQEAgLTg1MSw3ICs4NTIsOSBAQCBib3hfY2VudGVyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJQk9YCQkgICAqYm94ID0gUEdfR0VUQVJHX0JPWF9QKDApOwogCVBvaW50CSAgICpy ZXN1bHQgPSBwYWxsb2Nfb2JqZWN0KFBvaW50KTsKIAotCWJveF9jbihyZXN1bHQsIGJveCk7CisJ Ym94X2NuKHJlc3VsdCwgYm94LCBmY2luZm8tPmNvbnRleHQpOworCWlmICgoU09GVF9FUlJPUl9P Q0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JF VFVSTl9QT0lOVF9QKHJlc3VsdCk7CiB9CkBAIC04NjksMTMgKzg3MiwyNiBAQCBib3hfYXIoQk9Y ICpib3gpCiAvKgkJYm94X2NuCS0JCXN0b3JlcyB0aGUgY2VudGVycG9pbnQgb2YgdGhlIGJveCBp bnRvICpjZW50ZXIuCiAgKi8KIHN0YXRpYyB2b2lkCi1ib3hfY24oUG9pbnQgKmNlbnRlciwgQk9Y ICpib3gpCitib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gsIE5vZGUgKmVzY29udGV4dCkK IHsKLQljZW50ZXItPnggPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueCwgYm94LT5s b3cueCksIDIuMCk7Ci0JY2VudGVyLT55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdo LnksIGJveC0+bG93LnkpLCAyLjApOworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CisKKwl4ID0g ZmxvYXQ4X3BsX3NhZmUoYm94LT5oaWdoLngsIGJveC0+bG93LngsIGVzY29udGV4dCk7CisJaWYg KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuOworCisJY2VudGVyLT54 ID0gZmxvYXQ4X2Rpdl9zYWZlKHgsIDIuMCwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9P Q0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm47CisKKwl5ID0gZmxvYXQ4X3BsX3NhZmUoYm94 LT5oaWdoLnksIGJveC0+bG93LnksIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJS RUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuOworCisJY2VudGVyLT55ID0gZmxvYXQ4X2Rpdl9zYWZl KHksIDIuMCwgZXNjb250ZXh0KTsKIH0KIAotCiAvKgkJYm94X3dkCS0JCXJldHVybnMgdGhlIHdp ZHRoIChsZW5ndGgpIG9mIHRoZSBib3gKICAqCQkJCQkJCQkgIChob3Jpem9udGFsIG1hZ25pdHVk ZSkuCiAgKi8KQEAgLTIzMjksMTMgKzIzNDUsMzEgQEAgbHNlZ19jZW50ZXIoUEdfRlVOQ1RJT05f QVJHUykKIHsKIAlMU0VHCSAgICpsc2VnID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlQb2ludAkg ICAqcmVzdWx0OworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CiAKIAlyZXN1bHQgPSBwYWxsb2Nf b2JqZWN0KFBvaW50KTsKIAotCXJlc3VsdC0+eCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGxzZWct PnBbMF0ueCwgbHNlZy0+cFsxXS54KSwgMi4wKTsKLQlyZXN1bHQtPnkgPSBmbG9hdDhfZGl2KGZs b2F0OF9wbChsc2VnLT5wWzBdLnksIGxzZWctPnBbMV0ueSksIDIuMCk7CisJeCA9IGZsb2F0OF9w bF9zYWZlKGxzZWctPnBbMF0ueCwgbHNlZy0+cFsxXS54LCBmY2luZm8tPmNvbnRleHQpOworCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKwor CXJlc3VsdC0+eCA9IGZsb2F0OF9kaXZfc2FmZSh4LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwor CisJeSA9IGZsb2F0OF9wbF9zYWZlKGxzZWctPnBbMF0ueSwgbHNlZy0+cFsxXS55LCBmY2luZm8t PmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJ CWdvdG8gZmFpbDsKKworCXJlc3VsdC0+eSA9IGZsb2F0OF9kaXZfc2FmZSh5LCAyLjAsIGZjaW5m by0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkK KwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX1BPSU5UX1AocmVzdWx0KTsKKworZmFpbDoKKwlQ R19SRVRVUk5fTlVMTCgpOwogfQogCiAKQEAgLTMyOTAsNyArMzMyNCw3IEBAIGJveF9pbnRlcnB0 X2xzZWcoUG9pbnQgKnJlc3VsdCwgQk9YICpib3gsIExTRUcgKmxzZWcpCiAKIAlpZiAocmVzdWx0 ICE9IE5VTEwpCiAJewotCQlib3hfY24oJnBvaW50LCBib3gpOworCQlib3hfY24oJnBvaW50LCBi b3gsIE5VTEwpOwogCQlsc2VnX2Nsb3NlcHRfcG9pbnQocmVzdWx0LCBsc2VnLCAmcG9pbnQpOwog CX0KIApAQCAtNDEyMSwxMSArNDE1NSwyMCBAQCBjb25zdHJ1Y3RfcG9pbnQoUEdfRlVOQ1RJT05f QVJHUykKIAogCiBzdGF0aWMgaW5saW5lIHZvaWQKLXBvaW50X2FkZF9wb2ludChQb2ludCAqcmVz dWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKQorcG9pbnRfYWRkX3BvaW50KFBvaW50ICpyZXN1 bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIsIE5vZGUgKmVzY29udGV4dCkKIHsKLQlwb2ludF9j b25zdHJ1Y3QocmVzdWx0LAotCQkJCQlmbG9hdDhfcGwocHQxLT54LCBwdDItPngpLAotCQkJCQlm bG9hdDhfcGwocHQxLT55LCBwdDItPnkpKTsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJ eCA9IGZsb2F0OF9wbF9zYWZlKHB0MS0+eCwgcHQyLT54LCBlc2NvbnRleHQpOworCWlmIChTT0ZU X0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybjsKKworCXkgPSBmbG9hdDhfcGxf c2FmZShwdDEtPnksIHB0Mi0+eSwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChlc2NvbnRleHQpKQorCQlyZXR1cm47CisKKwlwb2ludF9jb25zdHJ1Y3QocmVzdWx0LCB4LCB5 KTsKIH0KIAogRGF0dW0KQEAgLTQxMzcsNyArNDE4MCw3IEBAIHBvaW50X2FkZChQR19GVU5DVElP Tl9BUkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7CiAKLQlwb2ludF9hZGRf cG9pbnQocmVzdWx0LCBwMSwgcDIpOworCXBvaW50X2FkZF9wb2ludChyZXN1bHQsIHAxLCBwMiwg TlVMTCk7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOwogfQpAQCAtNDI0OSw4ICs0Mjky LDggQEAgYm94X2FkZChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVj dChCT1gpOwogCi0JcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQtPmhpZ2gsICZib3gtPmhpZ2gsIHAp OwotCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5sb3csICZib3gtPmxvdywgcCk7CisJcG9pbnRf YWRkX3BvaW50KCZyZXN1bHQtPmhpZ2gsICZib3gtPmhpZ2gsIHAsIE5VTEwpOworCXBvaW50X2Fk ZF9wb2ludCgmcmVzdWx0LT5sb3csICZib3gtPmxvdywgcCwgTlVMTCk7CiAKIAlQR19SRVRVUk5f Qk9YX1AocmVzdWx0KTsKIH0KQEAgLTQ0MTMsNyArNDQ1Niw3IEBAIHBhdGhfYWRkX3B0KFBHX0ZV TkNUSU9OX0FSR1MpCiAJaW50CQkJaTsKIAogCWZvciAoaSA9IDA7IGkgPCBwYXRoLT5ucHRzOyBp KyspCi0JCXBvaW50X2FkZF9wb2ludCgmcGF0aC0+cFtpXSwgJnBhdGgtPnBbaV0sIHBvaW50KTsK KwkJcG9pbnRfYWRkX3BvaW50KCZwYXRoLT5wW2ldLCAmcGF0aC0+cFtpXSwgcG9pbnQsIE5VTEwp OwogCiAJUEdfUkVUVVJOX1BBVEhfUChwYXRoKTsKIH0KQEAgLTQ0NzEsNyArNDUxNCw3IEBAIHBh dGhfcG9seShQR19GVU5DVElPTl9BUkdTKQogCiAJLyogVGhpcyBpcyBub3QgdmVyeSBjb25zaXN0 ZW50IC0tLSBvdGhlciBzaW1pbGFyIGNhc2VzIHJldHVybiBOVUxMIC4uLiAqLwogCWlmICghcGF0 aC0+Y2xvc2VkKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwg KERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUp LAogCQkJCSBlcnJtc2coIm9wZW4gcGF0aCBjYW5ub3QgYmUgY29udmVydGVkIHRvIHBvbHlnb24i KSkpOwogCkBAIC00NTIxLDcgKzQ1NjQsOSBAQCBwb2x5X2NlbnRlcihQR19GVU5DVElPTl9BUkdT KQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7CiAKLQlwb2x5X3RvX2NpcmNsZSgm Y2lyY2xlLCBwb2x5KTsKKwlpZiAoIXBvbHlfdG9fY2lyY2xlKCZjaXJjbGUsIHBvbHksIGZjaW5m by0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKIAkqcmVzdWx0ID0gY2lyY2xlLmNl bnRlcjsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7CkBAIC00OTgzLDcgKzUwMjgsNyBA QCBjaXJjbGVfYWRkX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBwYWxsb2Nfb2Jq ZWN0KENJUkNMRSk7CiAKLQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmY2lyY2xl LT5jZW50ZXIsIHBvaW50KTsKKwlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmY2ly Y2xlLT5jZW50ZXIsIHBvaW50LCBOVUxMKTsKIAlyZXN1bHQtPnJhZGl1cyA9IGNpcmNsZS0+cmFk aXVzOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3VsdCk7CkBAIC01MjA0LDE0ICs1MjQ5LDMw IEBAIGNpcmNsZV9ib3goUEdfRlVOQ1RJT05fQVJHUykKIAogCWJveCA9IHBhbGxvY19vYmplY3Qo Qk9YKTsKIAotCWRlbHRhID0gZmxvYXQ4X2RpdihjaXJjbGUtPnJhZGl1cywgc3FydCgyLjApKTsK KwlkZWx0YSA9IGZsb2F0OF9kaXZfc2FmZShjaXJjbGUtPnJhZGl1cywgc3FydCgyLjApLCBmY2lu Zm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkp CisJCWdvdG8gZmFpbDsKIAotCWJveC0+aGlnaC54ID0gZmxvYXQ4X3BsKGNpcmNsZS0+Y2VudGVy LngsIGRlbHRhKTsKLQlib3gtPmxvdy54ID0gZmxvYXQ4X21pKGNpcmNsZS0+Y2VudGVyLngsIGRl bHRhKTsKLQlib3gtPmhpZ2gueSA9IGZsb2F0OF9wbChjaXJjbGUtPmNlbnRlci55LCBkZWx0YSk7 Ci0JYm94LT5sb3cueSA9IGZsb2F0OF9taShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSk7CisJYm94 LT5oaWdoLnggPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNlbnRlci54LCBkZWx0YSwgZmNpbmZv LT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQor CQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy54ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50 ZXIueCwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQo ZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJYm94LT5oaWdoLnkgPSBmbG9hdDhf cGxfc2FmZShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwli b3gtPmxvdy55ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueSwgZGVsdGEsIGZjaW5m by0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkK KwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX0JPWF9QKGJveCk7CisKK2ZhaWw6CisJUEdfUkVU VVJOX05VTEwoKTsKIH0KIAogLyogYm94X2NpcmNsZSgpCkBAIC01MjIyLDE1ICs1MjgzLDM1IEBA IGJveF9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlCT1gJCSAgICpib3ggPSBQR19HRVRB UkdfQk9YX1AoMCk7CiAJQ0lSQ0xFCSAgICpjaXJjbGU7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJ eTsKIAogCWNpcmNsZSA9IHBhbGxvY19vYmplY3QoQ0lSQ0xFKTsKIAotCWNpcmNsZS0+Y2VudGVy LnggPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueCwgYm94LT5sb3cueCksIDIuMCk7 Ci0JY2lyY2xlLT5jZW50ZXIueSA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC55LCBi b3gtPmxvdy55KSwgMi4wKTsKKwl4ID0gZmxvYXQ4X3BsX3NhZmUoYm94LT5oaWdoLngsIGJveC0+ bG93LngsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJY2lyY2xlLT5jZW50ZXIueCA9IGZsb2F0OF9k aXZfc2FmZSh4LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJS RUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJeSA9IGZsb2F0OF9wbF9zYWZl KGJveC0+aGlnaC55LCBib3gtPmxvdy55LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKworCWNpcmNsZS0+ Y2VudGVyLnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4wLCBmY2luZm8tPmNvbnRleHQpOworCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAog CWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCAmYm94LT5oaWdoLCBm Y2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4 dCkpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9DSVJDTEVfUChjaXJjbGUpOworCitmYWls OgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKIApAQCAtNTI5NCwxMCArNTM3NSwxMSBAQCBjaXJj bGVfcG9seShQR19GVU5DVElPTl9BUkdTKQogICogWFhYIFRoaXMgYWxnb3JpdGhtIHNob3VsZCB1 c2Ugd2VpZ2h0ZWQgbWVhbnMgb2YgbGluZSBzZWdtZW50cwogICoJcmF0aGVyIHRoYW4gc3RyYWln aHQgYXZlcmFnZSB2YWx1ZXMgb2YgcG9pbnRzIC0gdGdsIDk3LzAxLzIxLgogICovCi1zdGF0aWMg dm9pZAotcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCitzdGF0 aWMgYm9vbAorcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHksIE5v ZGUgKmVzY29udGV4dCkKIHsKIAlpbnQJCQlpOworCWZsb2F0OAkJeDsKIAogCUFzc2VydChwb2x5 LT5ucHRzID4gMCk7CiAKQEAgLTUzMDYsMTQgKzUzODgsNDMgQEAgcG9seV90b19jaXJjbGUoQ0lS Q0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCiAJcmVzdWx0LT5yYWRpdXMgPSAwOwogCiAJZm9y IChpID0gMDsgaSA8IHBvbHktPm5wdHM7IGkrKykKLQkJcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQt PmNlbnRlciwgJnJlc3VsdC0+Y2VudGVyLCAmcG9seS0+cFtpXSk7Ci0JcmVzdWx0LT5jZW50ZXIu eCA9IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueCwgcG9seS0+bnB0cyk7Ci0JcmVzdWx0LT5j ZW50ZXIueSA9IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueSwgcG9seS0+bnB0cyk7CisJewor CQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLAorCQkJCQkJJnJlc3VsdC0+Y2VudGVy LAorCQkJCQkJJnBvbHktPnBbaV0sCisJCQkJCQllc2NvbnRleHQpOworCQlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZhbHNlOworCX0KKworCXJlc3VsdC0+ Y2VudGVyLnggPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50ZXIueCwKKwkJCQkJCQkJCSAg IHBvbHktPm5wdHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJlc3VsdC0+Y2VudGVyLnkg PSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50ZXIueSwKKwkJCQkJCQkJCSAgIHBvbHktPm5w dHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVz Y29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKIAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRz OyBpKyspCi0JCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsKHJlc3VsdC0+cmFkaXVzLAotCQkJ CQkJCQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBOVUxMKSk7Ci0J cmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KHJlc3VsdC0+cmFkaXVzLCBwb2x5LT5ucHRzKTsK Kwl7CisJCXggPSBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBlc2NvbnRl eHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZh bHNlOworCisJCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsX3NhZmUocmVzdWx0LT5yYWRpdXMs IHgsIGVzY29udGV4dCk7CisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJ CQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2X3NhZmUo cmVzdWx0LT5yYWRpdXMsIHBvbHktPm5wdHMsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1Jf T0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7CiB9 CiAKIERhdHVtCkBAIC01MzI0LDcgKzU0MzUsOCBAQCBwb2x5X2NpcmNsZShQR19GVU5DVElPTl9B UkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChDSVJDTEUpOwogCi0JcG9seV90b19jaXJj bGUocmVzdWx0LCBwb2x5KTsKKwlpZiAoIXBvbHlfdG9fY2lyY2xlKHJlc3VsdCwgcG9seSwgZmNp bmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9DSVJDTEVf UChyZXN1bHQpOwogfQotLSAKMi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Disposition: attachment; filename="v17-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4rv0 RnJvbSAxOTU3ZjU1ZmI2ZDhkYWU3YTM5NTUxNzhlMDBkOTQyYjliMTgyNTQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFN1biwgNCBKYW4gMjAyNiAwMToxMzo1NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDIzLzIzXSBlcnJvciBzYWZlIGZvciB1c2VyIGRlZmluZWQgQ1JFQVRFIENBU1QKCnBnX2Nhc3Qu Y2FzdGVycm9yc2FmZSBjb2x1bW4gdG8gaW5kaWNhdGUgY2FzdGZ1bmMgaXMgZXJyb3Igc2FmZSBv ciBub3QuCmNoYW5nZSBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0IHRvIGluZGljYXRl IHRoYXQgbW9zdCBvZiB0aGUgc3lzdGVtIGNhc3QKZnVuY3Rpb24gc3VwcG9ydCBzb2Z0IGVycm9y IGV2YWx1YXRpb24uCgpUaGUgU0FGRSBrZXl3b3JkIGlzIGludHJvZHVjZWQgZm9yIGFsbG93IHVz ZXItZGVmaW5lZCBDUkVBVEUgQ0FTVCBjYW4gYWxzbyBiZQpldmFsdWF0ZWQgaW4gc29mdC1lcnJv ci4KClRoZSBuZXcgc3lub3BzaXMgb2YgQ1JFQVRFIENBU1QgaXM6CkNSRUFURSBDQVNUIChzb3Vy Y2VfdHlwZSBBUyB0YXJnZXRfdHlwZSkKICAgIFdJVEggW1NBRkVdIEZVTkNUSU9OIGZ1bmN0aW9u X25hbWUgWyAoYXJndW1lbnRfdHlwZSBbLCAuLi5dKSBdCiAgICBbIEFTIEFTU0lHTk1FTlQgfCBB UyBJTVBMSUNJVCBdCgpUaGUgZm9sbG93aW5nIGNhc3QgaW4gY2l0ZXh0LCBoc3RvcmUgY29udHJp YiBtb2R1bGUgcmVmYWN0b3JlZCB0byBlcnJvciBzYWZlOgpDQVNUIChicGNoYXIgQVMgY2l0ZXh0 KQpDQVNUIChib29sZWFuIEFTIGNpdGV4dCkKQ0FTVCAoaW5ldCBBUyBjaXRleHQpCkNBU1QgKHRl eHRbXSBBUyBoc3RvcmUpCkNBU1QgKGhzdG9yZSBBUyBqc29uKQpDQVNUIChoc3RvcmUgQVMganNv bmIpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpj d3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIGNvbnRy aWIvY2l0ZXh0L2NpdGV4dC0tMS40LnNxbCAgICAgICAgICAgIHwgICA2ICstCiBjb250cmliL2Np dGV4dC9leHBlY3RlZC9jaXRleHQub3V0ICAgICAgICB8ICAyNCArLQogY29udHJpYi9jaXRleHQv ZXhwZWN0ZWQvY2l0ZXh0XzEub3V0ICAgICAgfCAgMjQgKy0KIGNvbnRyaWIvY2l0ZXh0L3NxbC9j aXRleHQuc3FsICAgICAgICAgICAgIHwgICA1ICstCiBjb250cmliL2hzdG9yZS9leHBlY3RlZC9o c3RvcmUub3V0ICAgICAgICB8ICAzNyArKysKIGNvbnRyaWIvaHN0b3JlL2hzdG9yZS0tMS4yLS0x LjMuc3FsICAgICAgIHwgICAyICstCiBjb250cmliL2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwgICAg ICAgICAgICB8ICAgNiArLQogY29udHJpYi9oc3RvcmUvaHN0b3JlX2lvLmMgICAgICAgICAgICAg ICAgfCAgIDggKy0KIGNvbnRyaWIvaHN0b3JlL3NxbC9oc3RvcmUuc3FsICAgICAgICAgICAgIHwg IDExICsKIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgIHwgIDE1ICsK IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbCAgICAgICAgIHwgIDE0ICstCiBkb2Mv c3JjL3NnbWwvc3ludGF4LnNnbWwgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19jYXN0LmMgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2Z1bmN0aW9uY21kcy5jICAgICAgIHwgICA5ICstCiBzcmMvYmFja2VuZC9jb21tYW5k cy90eXBlY21kcy5jICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICB8ICAxOCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YyAgICAgICAgICAgfCAgMTAgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQgICAg ICAgICAgIHwgMzMwICsrKysrKysrKysrLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY2FzdC5oICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaCAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAg ICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qu b3V0IHwgICA4ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0ICB8 ICAyNCArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsICAgICAgfCAgIDUg KwogMjQgZmlsZXMgY2hhbmdlZCwgMzUzIGluc2VydGlvbnMoKyksIDIxOCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9jaXRleHQtLTEuNC5zcWwgYi9jb250cmliL2Np dGV4dC9jaXRleHQtLTEuNC5zcWwKaW5kZXggN2IwNjE5ODkzNTIuLjVjODc4MjAzODhmIDEwMDY0 NAotLS0gYS9jb250cmliL2NpdGV4dC9jaXRleHQtLTEuNC5zcWwKKysrIGIvY29udHJpYi9jaXRl eHQvY2l0ZXh0LS0xLjQuc3FsCkBAIC04NSw5ICs4NSw5IEBAIENSRUFURSBDQVNUIChjaXRleHQg QVMgdmFyY2hhcikgV0lUSE9VVCBGVU5DVElPTiBBUyBJTVBMSUNJVDsKIENSRUFURSBDQVNUIChj aXRleHQgQVMgYnBjaGFyKSAgV0lUSE9VVCBGVU5DVElPTiBBUyBBU1NJR05NRU5UOwogQ1JFQVRF IENBU1QgKHRleHQgQVMgY2l0ZXh0KSAgICBXSVRIT1VUIEZVTkNUSU9OIEFTIEFTU0lHTk1FTlQ7 CiBDUkVBVEUgQ0FTVCAodmFyY2hhciBBUyBjaXRleHQpIFdJVEhPVVQgRlVOQ1RJT04gQVMgQVNT SUdOTUVOVDsKLUNSRUFURSBDQVNUIChicGNoYXIgQVMgY2l0ZXh0KSAgV0lUSCBGVU5DVElPTiBj aXRleHQoYnBjaGFyKSAgQVMgQVNTSUdOTUVOVDsKLUNSRUFURSBDQVNUIChib29sZWFuIEFTIGNp dGV4dCkgV0lUSCBGVU5DVElPTiBjaXRleHQoYm9vbGVhbikgQVMgQVNTSUdOTUVOVDsKLUNSRUFU RSBDQVNUIChpbmV0IEFTIGNpdGV4dCkgICAgV0lUSCBGVU5DVElPTiBjaXRleHQoaW5ldCkgICAg QVMgQVNTSUdOTUVOVDsKK0NSRUFURSBDQVNUIChicGNoYXIgQVMgY2l0ZXh0KSAgV0lUSCBTQUZF IEZVTkNUSU9OIGNpdGV4dChicGNoYXIpICBBUyBBU1NJR05NRU5UOworQ1JFQVRFIENBU1QgKGJv b2xlYW4gQVMgY2l0ZXh0KSBXSVRIIFNBRkUgRlVOQ1RJT04gY2l0ZXh0KGJvb2xlYW4pIEFTIEFT U0lHTk1FTlQ7CitDUkVBVEUgQ0FTVCAoaW5ldCBBUyBjaXRleHQpICAgIFdJVEggU0FGRSBGVU5D VElPTiBjaXRleHQoaW5ldCkgICAgQVMgQVNTSUdOTUVOVDsKIAogLS0KIC0tIE9wZXJhdG9yIEZ1 bmN0aW9ucy4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQg Yi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0CmluZGV4IDMzZGExOWQ4ZGY0Li5i ZTMyODcxNTQ5MiAxMDA2NDQKLS0tIGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91 dAorKysgYi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0CkBAIC0xMCwxMSArMTAs MTIgQEAgV0hFUkUgb3BjLm9pZCA+PSAxNjM4NCBBTkQgTk9UIGFtdmFsaWRhdGUob3BjLm9pZCk7 CiAtLS0tLS0tLSstLS0tLS0tLS0KICgwIHJvd3MpCiAKLVNFTEVDVCBDQVNUKCdhYmMnOjpicGNo YXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgot RVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNoYXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZBVUxU IGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IK LUxJTkUgMTogU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJLi4uCi0gICAgICAgICAgICAgICAgICAgIF4KLUhJTlQ6ICBTYWZlIHR5cGUg Y2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAorU0VMRUNU IENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgYWJjCisoMSByb3cpCisKIC0tIFRlc3QgdGhl IG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5kIDw+LgogU0VM RUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsKQEAgLTUyMyw2ICs1MjQsMTIgQEAg U0VMRUNUIHRydWU6OmNpdGV4dCA9ICd0cnVlJyBBUyB0OwogIHQKICgxIHJvdykKIAorU0VMRUNU IENBU1QodHJ1ZSBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor IGNpdGV4dCAKKy0tLS0tLS0tCisgdHJ1ZQorKDEgcm93KQorCiBTRUxFQ1QgJ3RydWUnOjpjaXRl eHQ6OmJvb2xlYW4gPSB0cnVlIEFTIHQ7CiAgdCAKIC0tLQpAQCAtNzg3LDYgKzc5NCwxMyBAQCBT RUxFQ1QgJzE5Mi4xNjguMTAwLjEyOCc6OmNpdGV4dDo6aW5ldCA9ICcxOTIuMTY4LjEwMC4xMjgn OjppbmV0IEFTIHQ7CiAgdAogKDEgcm93KQogCitTRUxFQ1QgQ0FTVChpbmV0ICcxOTIuMTY4LjEw MC4xMjgnIEFTIGNpdGV4dAorICAgICAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgPSAnMTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0OworIHQgCistLS0KKyB0CisoMSByb3cp CisKIFNFTEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjptYWNhZGRyOjpjaXRleHQgPSAnMDg6MDA6 MmI6MDE6MDI6MDMnIEFTIHQ7CiAgdCAKIC0tLQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQv ZXhwZWN0ZWQvY2l0ZXh0XzEub3V0IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEu b3V0CmluZGV4IDY0N2VlYTE5MTQyLi5lOWY4NDU0YzY2MiAxMDA2NDQKLS0tIGEvY29udHJpYi9j aXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CisrKyBiL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVk L2NpdGV4dF8xLm91dApAQCAtMTAsMTEgKzEwLDEyIEBAIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQg QU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogLS0tLS0tLS0rLS0tLS0tLS0tCiAoMCByb3dz KQogCi1TRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKLUVSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBjaGFy YWN0ZXIgdG8gY2l0ZXh0IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBD QVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCi1MSU5FIDE6IFNFTEVDVCBDQVNUKCdhYmMnOjpi cGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSS4uLgotICAgICAgICAgICAg ICAgICAgICBeCi1ISU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBh cmUgbm90IHlldCBzdXBwb3J0ZWQKK1NFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaXRleHQgCistLS0tLS0tLQor IGFiYworKDEgcm93KQorCiAtLSBUZXN0IHRoZSBvcGVyYXRvcnMgYW5kIGluZGV4aW5nIGZ1bmN0 aW9ucwogLS0gVGVzdCA9IGFuZCA8Pi4KIFNFTEVDVCAnYSc6OmNpdGV4dCA9ICdhJzo6Y2l0ZXh0 IEFTIHQ7CkBAIC01MjMsNiArNTI0LDEyIEBAIFNFTEVDVCB0cnVlOjpjaXRleHQgPSAndHJ1ZScg QVMgdDsKICB0CiAoMSByb3cpCiAKK1NFTEVDVCBDQVNUKHRydWUgQVMgY2l0ZXh0IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaXRleHQgCistLS0tLS0tLQorIHRydWUKKygx IHJvdykKKwogU0VMRUNUICd0cnVlJzo6Y2l0ZXh0Ojpib29sZWFuID0gdHJ1ZSBBUyB0OwogIHQg CiAtLS0KQEAgLTc4Nyw2ICs3OTQsMTMgQEAgU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjpjaXRl eHQ6OmluZXQgPSAnMTkyLjE2OC4xMDAuMTI4Jzo6aW5ldCBBUyB0OwogIHQKICgxIHJvdykKIAor U0VMRUNUIENBU1QoaW5ldCAnMTkyLjE2OC4xMDAuMTI4JyBBUyBjaXRleHQKKyAgICAgICAgICAg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpID0gJzE5Mi4xNjguMTAwLjEyOC8zMicg QVMgdDsKKyB0IAorLS0tCisgdAorKDEgcm93KQorCiBTRUxFQ1QgJzA4OjAwOjJiOjAxOjAyOjAz Jzo6bWFjYWRkcjo6Y2l0ZXh0ID0gJzA4OjAwOjJiOjAxOjAyOjAzJyBBUyB0OwogIHQgCiAtLS0K ZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsIGIvY29udHJpYi9jaXRl eHQvc3FsL2NpdGV4dC5zcWwKaW5kZXggOTk3OTQ0OTdkNDcuLjYyZjgzZDc0OWY5IDEwMDY0NAot LS0gYS9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbAorKysgYi9jb250cmliL2NpdGV4dC9z cWwvY2l0ZXh0LnNxbApAQCAtOSw3ICs5LDcgQEAgU0VMRUNUIGFtbmFtZSwgb3BjbmFtZQogRlJP TSBwZ19vcGNsYXNzIG9wYyBMRUZUIEpPSU4gcGdfYW0gYW0gT04gYW0ub2lkID0gb3BjbWV0aG9k CiBXSEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsKIAot U0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4 dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CiAKIC0tIFRlc3QgdGhlIG9wZXJh dG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAKQEAgLTE2NSw2ICsxNjUsNyBAQCBTRUxFQ1Qg bmFtZSBGUk9NIHNydCBXSEVSRSBuYW1lIFNJTUlMQVIgVE8gJyVBLionOwogCiAtLSBFeHBsaWNp dCBjYXN0cy4KIFNFTEVDVCB0cnVlOjpjaXRleHQgPSAndHJ1ZScgQVMgdDsKK1NFTEVDVCBDQVNU KHRydWUgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKIFNFTEVD VCAndHJ1ZSc6OmNpdGV4dDo6Ym9vbGVhbiA9IHRydWUgQVMgdDsKIAogU0VMRUNUIDQ6OmNpdGV4 dCA9ICc0JyBBUyB0OwpAQCAtMjI0LDYgKzIyNSw4IEBAIFNFTEVDVCAnMTkyLjE2OC4xMDAuMTI4 LzI1Jzo6Y2l0ZXh0OjpjaWRyID0gJzE5Mi4xNjguMTAwLjEyOC8yNSc6OmNpZHIgQVMgdDsKIAog U0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjppbmV0OjpjaXRleHQgPSAnMTkyLjE2OC4xMDAuMTI4 LzMyJyBBUyB0OwogU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjpjaXRleHQ6OmluZXQgPSAnMTky LjE2OC4xMDAuMTI4Jzo6aW5ldCBBUyB0OworU0VMRUNUIENBU1QoaW5ldCAnMTkyLjE2OC4xMDAu MTI4JyBBUyBjaXRleHQKKyAgICAgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpID0gJzE5Mi4xNjguMTAwLjEyOC8zMicgQVMgdDsKIAogU0VMRUNUICcwODowMDoyYjowMTow MjowMyc6Om1hY2FkZHI6OmNpdGV4dCA9ICcwODowMDoyYjowMTowMjowMycgQVMgdDsKIFNFTEVD VCAnMDg6MDA6MmI6MDE6MDI6MDMnOjpjaXRleHQ6Om1hY2FkZHIgPSAnMDg6MDA6MmI6MDE6MDI6 MDMnOjptYWNhZGRyIEFTIHQ7CmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9leHBlY3RlZC9o c3RvcmUub3V0IGIvY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQvaHN0b3JlLm91dAppbmRleCAxODM2 YzlhY2YzOS4uMjYyMjEzN2NiZjkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2V4cGVjdGVk L2hzdG9yZS5vdXQKKysrIGIvY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQvaHN0b3JlLm91dApAQCAt ODQxLDEyICs4NDEsMjggQEAgc2VsZWN0ICd7fSc6OnRleHRbXTo6aHN0b3JlOwogCiBzZWxlY3Qg QVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnXTo6aHN0b3JlOwogRVJST1I6ICBhcnJheSBtdXN0 IGhhdmUgZXZlbiBudW1iZXIgb2YgZWxlbWVudHMKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycs J2InLCdoJywnYXNkJ10gQVMgaHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgQVJSQVlb J2EnLCdnJywnYicsJ2gnLCdhc2QnLCdpJ106OmhzdG9yZTsKICAgICAgICAgICAgICBhcnJheSAg ICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICJhIj0+Imci LCAiYiI9PiJoIiwgImFzZCI9PiJpIgogKDEgcm93KQogCitzZWxlY3QgQVJSQVlbJ2EnLCdnJywn YicsJ2gnLG51bGwsJ2knXTo6aHN0b3JlOworRVJST1I6ICBudWxsIHZhbHVlIG5vdCBhbGxvd2Vk IGZvciBoc3RvcmUga2V5CitzZWxlY3QgQ0FTVChBUlJBWVsnYScsJ2cnLCdiJywnaCcsbnVsbCwn aSddIEFTIGhzdG9yZQorICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0IEFSUkFZW1snYScsJ2cnXSxb J2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3RvcmU7CiAgICAgICAgICAgICAgYXJyYXkgICAgICAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTg1NSw2ICs4NzEs MTMgQEAgc2VsZWN0IEFSUkFZW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3Rv cmU7CiAKIHNlbGVjdCBBUlJBWVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2knXV06OmhzdG9y ZTsKIEVSUk9SOiAgYXJyYXkgbXVzdCBoYXZlIHR3byBjb2x1bW5zCitzZWxlY3QgQ0FTVChBUlJB WVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2knXV0gQVMgaHN0b3JlCisgICAgICAgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93 KQorCiBzZWxlY3QgQVJSQVlbW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dXTo6aHN0 b3JlOwogRVJST1I6ICB3cm9uZyBudW1iZXIgb2YgYXJyYXkgc3Vic2NyaXB0cwogc2VsZWN0IGhz dG9yZSgne30nOjp0ZXh0W10pOwpAQCAtMTU1Myw2ICsxNTc2LDEzIEBAIHNlbGVjdCBjYXN0KCBo c3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAw MTIzNDUsIGY9CiAgeyJiIjogInQiLCAiYyI6IG51bGwsICJkIjogIjEyMzQ1IiwgImUiOiAiMDEy MzQ1IiwgImYiOiAiMS4yMzQiLCAiZyI6ICIyLjM0NWUrNCIsICJhIGtleSI6ICIxIn0KICgxIHJv dykKIAorc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVs bCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpz b24KKyAgICAgICAgICAgIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc29uICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7ImIiOiAidCIsICJjIjogbnVsbCwgImQiOiAiMTIzNDUi LCAiZSI6ICIwMTIzNDUiLCAiZiI6ICIxLjIzNCIsICJnIjogIjIuMzQ1ZSs0IiwgImEga2V5Ijog IjEifQorKDEgcm93KQorCiBzZWxlY3QgaHN0b3JlX3RvX2pzb25fbG9vc2UoJyJhIGtleSIgPT4x LCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBn PT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0wMSInKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaHN0b3JlX3RvX2pzb25fbG9vc2UgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE1NzEsNiArMTYwMSwxMyBAQCBzZWxlY3Qg Y2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUs IGUgPT4gMDEyMzQ1LCBmPQogIHsiYiI6ICJ0IiwgImMiOiBudWxsLCAiZCI6ICIxMjM0NSIsICJl IjogIjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImciOiAiMi4zNDVlKzQiLCAiYSBrZXkiOiAiMSJ9 CiAoMSByb3cpCiAKK3NlbGVjdCBjYXN0KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBj ID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0 JyBhcyBqc29uYgorICAgICAgICAgICAgZGVmYXVsdCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3Ip OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb25iICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiYiI6ICJ0IiwgImMiOiBudWxsLCAiZCI6 ICIxMjM0NSIsICJlIjogIjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImciOiAiMi4zNDVlKzQiLCAi YSBrZXkiOiAiMSJ9CisoMSByb3cpCisKIHNlbGVjdCBoc3RvcmVfdG9fanNvbmJfbG9vc2UoJyJh IGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+ IDEuMjM0LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0wMSInKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhzdG9yZV90b19qc29uYl9sb29zZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3Jl L2hzdG9yZS0tMS4yLS0xLjMuc3FsIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjItLTEuMy5z cWwKaW5kZXggMGE3MDU2MDE1YjcuLmNiYjFhMTM5ZTY5IDEwMDY0NAotLS0gYS9jb250cmliL2hz dG9yZS9oc3RvcmUtLTEuMi0tMS4zLnNxbAorKysgYi9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEu Mi0tMS4zLnNxbApAQCAtOSw3ICs5LDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScsICdoc3RvcmVf dG9fanNvbmInCiBMQU5HVUFHRSBDIElNTVVUQUJMRSBTVFJJQ1Q7CiAKIENSRUFURSBDQVNUICho c3RvcmUgQVMganNvbmIpCi0gIFdJVEggRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25iKGhzdG9yZSk7 CisgIFdJVEggU0FGRSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmIoaHN0b3JlKTsKIAogQ1JFQVRF IEZVTkNUSU9OIGhzdG9yZV90b19qc29uYl9sb29zZShoc3RvcmUpCiBSRVRVUk5TIGpzb25iCmRp ZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwgYi9jb250cmliL2hzdG9y ZS9oc3RvcmUtLTEuNC5zcWwKaW5kZXggNDI5NGQxNGNlYjUuLjQ1MWMyZWQ4MTg3IDEwMDY0NAot LS0gYS9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwKKysrIGIvY29udHJpYi9oc3RvcmUv aHN0b3JlLS0xLjQuc3FsCkBAIC0yMzIsNyArMjMyLDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScs ICdoc3RvcmVfZnJvbV9hcnJheScKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQQVJBTExF TCBTQUZFOwogCiBDUkVBVEUgQ0FTVCAodGV4dFtdIEFTIGhzdG9yZSkKLSAgV0lUSCBGVU5DVElP TiBoc3RvcmUodGV4dFtdKTsKKyAgV0lUSCBTQUZFIEZVTkNUSU9OIGhzdG9yZSh0ZXh0W10pOwog CiBDUkVBVEUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb24oaHN0b3JlKQogUkVUVVJOUyBqc29uCkBA IC0yNDAsNyArMjQwLDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScsICdoc3RvcmVfdG9fanNvbicK IExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQQVJBTExFTCBTQUZFOwogCiBDUkVBVEUgQ0FT VCAoaHN0b3JlIEFTIGpzb24pCi0gIFdJVEggRlVOQ1RJT04gaHN0b3JlX3RvX2pzb24oaHN0b3Jl KTsKKyAgV0lUSCBTQUZFIEZVTkNUSU9OIGhzdG9yZV90b19qc29uKGhzdG9yZSk7CiAKIENSRUFU RSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbl9sb29zZShoc3RvcmUpCiBSRVRVUk5TIGpzb24KQEAg LTI1Myw3ICsyNTMsNyBAQCBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ2hzdG9yZV90b19qc29uYicK IExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQQVJBTExFTCBTQUZFOwogCiBDUkVBVEUgQ0FT VCAoaHN0b3JlIEFTIGpzb25iKQotICBXSVRIIEZVTkNUSU9OIGhzdG9yZV90b19qc29uYihoc3Rv cmUpOworICBXSVRIIFNBRkUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25iKGhzdG9yZSk7CiAKIENS RUFURSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmJfbG9vc2UoaHN0b3JlKQogUkVUVVJOUyBqc29u YgpkaWZmIC0tZ2l0IGEvY29udHJpYi9oc3RvcmUvaHN0b3JlX2lvLmMgYi9jb250cmliL2hzdG9y ZS9oc3RvcmVfaW8uYwppbmRleCAzNGUzOTE4ODExYy4uZjUxNjY2Nzk3ODMgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9pby5jCisrKyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9p by5jCkBAIC03MzgsMjAgKzczOCwyMCBAQCBoc3RvcmVfZnJvbV9hcnJheShQR19GVU5DVElPTl9B UkdTKQogCiAJCWNhc2UgMToKIAkJCWlmICgoQVJSX0RJTVMoaW5fYXJyYXkpWzBdKSAlIDIpCi0J CQkJZXJlcG9ydChFUlJPUiwKKwkJCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAw LAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BUlJBWV9TVUJTQ1JJUFRfRVJST1IpLAogCQkJCQkJ IGVycm1zZygiYXJyYXkgbXVzdCBoYXZlIGV2ZW4gbnVtYmVyIG9mIGVsZW1lbnRzIikpKTsKIAkJ CWJyZWFrOwogCiAJCWNhc2UgMjoKIAkJCWlmICgoQVJSX0RJTVMoaW5fYXJyYXkpWzFdKSAhPSAy KQotCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1 bSkgMCwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfQVJSQVlfU1VCU0NSSVBUX0VSUk9SKSwKIAkJ CQkJCSBlcnJtc2coImFycmF5IG11c3QgaGF2ZSB0d28gY29sdW1ucyIpKSk7CiAJCQlicmVhazsK IAogCQlkZWZhdWx0OgotCQkJZXJlcG9ydChFUlJPUiwKKwkJCQllcmV0dXJuKGZjaW5mby0+Y29u dGV4dCwgKERhdHVtKSAwLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0FSUkFZX1NVQlNDUklQVF9F UlJPUiksCiAJCQkJCSBlcnJtc2coIndyb25nIG51bWJlciBvZiBhcnJheSBzdWJzY3JpcHRzIikp KTsKIAl9CkBAIC03NzIsNyArNzcyLDcgQEAgaHN0b3JlX2Zyb21fYXJyYXkoUEdfRlVOQ1RJT05f QVJHUykKIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkKIAl7CiAJCWlmIChpbl9udWxsc1tp ICogMl0pCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwK IAkJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBub3QgYWxsb3dlZCBmb3IgaHN0b3JlIGtleSIpKSk7 CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3JlL3NxbC9oc3RvcmUuc3FsIGIvY29udHJpYi9o c3RvcmUvc3FsL2hzdG9yZS5zcWwKaW5kZXggZWZlZjkxMjkyYTMuLjhmYTQ2NjMwZDZkIDEwMDY0 NAotLS0gYS9jb250cmliL2hzdG9yZS9zcWwvaHN0b3JlLnNxbAorKysgYi9jb250cmliL2hzdG9y ZS9zcWwvaHN0b3JlLnNxbApAQCAtMTkyLDkgKzE5MiwxNiBAQCBzZWxlY3QgcGdfY29sdW1uX3Np emUoc2xpY2UoaHN0b3JlICdhYT0+MSwgYj0+MiwgYz0+MycsIEFSUkFZWydjJywnYicsJ2FhJ10p KQogLS0gYXJyYXkgaW5wdXQKIHNlbGVjdCAne30nOjp0ZXh0W106OmhzdG9yZTsKIHNlbGVjdCBB UlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCddOjpoc3RvcmU7CitzZWxlY3QgQ0FTVChBUlJBWVsn YScsJ2cnLCdiJywnaCcsJ2FzZCddIEFTIGhzdG9yZQorICAgICAgIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKIHNlbGVjdCBBUlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCcsJ2kn XTo6aHN0b3JlOworc2VsZWN0IEFSUkFZWydhJywnZycsJ2InLCdoJyxudWxsLCdpJ106OmhzdG9y ZTsKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycsJ2InLCdoJyxudWxsLCdpJ10gQVMgaHN0b3Jl CisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwogc2VsZWN0IEFSUkFZ W1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3RvcmU7CiBzZWxlY3QgQVJSQVlb WydhJywnZycsJ2InXSxbJ2gnLCdhc2QnLCdpJ11dOjpoc3RvcmU7CitzZWxlY3QgQ0FTVChBUlJB WVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2knXV0gQVMgaHN0b3JlCisgICAgICAgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwogc2VsZWN0IEFSUkFZW1tbJ2EnLCdnJ10sWydi JywnaCddLFsnYXNkJywnaSddXV06OmhzdG9yZTsKIHNlbGVjdCBoc3RvcmUoJ3t9Jzo6dGV4dFtd KTsKIHNlbGVjdCBoc3RvcmUoQVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnXSk7CkBAIC0zNjMs MTAgKzM3MCwxNCBAQCBzZWxlY3QgY291bnQoKikgZnJvbSB0ZXN0aHN0b3JlIHdoZXJlIGggPSAn cG9zPT45OCwgbGluZT0+MzcxLCBub2RlPT5DQkEsIGluZGV4ZQogLS0ganNvbiBhbmQganNvbmIK IHNlbGVjdCBoc3RvcmVfdG9fanNvbignImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBk PT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcpOwogc2VsZWN0 IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1 LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb24pOworc2VsZWN0 IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1 LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb24KKyAgICAgICAg ICAgIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKIHNlbGVjdCBoc3RvcmVfdG9f anNvbl9sb29zZSgnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUg PT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCwgaD0+ICIyMDE2LTAxLTAxIicpOwog CiBzZWxlY3QgaHN0b3JlX3RvX2pzb25iKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGws IGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0Jyk7CiBzZWxl Y3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIz NDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcgYXMganNvbmIpOworc2Vs ZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEy MzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb25iCisgICAg ICAgICAgICBkZWZhdWx0IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7CiBzZWxlY3QgaHN0b3Jl X3RvX2pzb25iX2xvb3NlKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0 NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0LCBoPT4gIjIwMTYtMDEtMDEi Jyk7CiAKIGNyZWF0ZSB0YWJsZSB0ZXN0X2pzb25fYWdnIChmMSB0ZXh0LCBmMiBoc3RvcmUpOwpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCAyZmM2MzQ0Mjk4MC4uOGZjYTM1MzRmMzIgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC0xODQ5LDYgKzE4NDksMjEgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICA8 bGl0ZXJhbD5iPC9saXRlcmFsPiBtZWFucyB0aGF0IHRoZSB0eXBlcyBhcmUgYmluYXJ5LWNvZXJj aWJsZSwgdGh1cyBubyBjb252ZXJzaW9uIGlzIHJlcXVpcmVkLgogICAgICAgPC9wYXJhPjwvZW50 cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5jYXN0ZXJyb3JzYWZlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4K KyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgZmxhZyBpbmRpY2F0 ZXMgd2hldGhlciB0aGUgPHN0cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1Y3RmaWVsZD4gZnVuY3Rp b24KKyAgICAgICAgaXMgZXJyb3Itc2FmZS4gSXQgaXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gPHN0 cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1Y3RmaWVsZD4KKyAgICAgICAgaXMgbm90IHplcm8uIFVz ZXItZGVmaW5lZCBjYXN0cyBjYW4gc2V0IGl0CisgICAgICAgIHRvIDxsaXRlcmFsPnRydWU8L2xp dGVyYWw+IHZpYSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCI+Q1JFQVRFIENBU1Q8L2xp bms+LgorICAgICAgICBGb3IgZXJyb3Itc2FmZSB0eXBlIGNhc3QsIHNlZSA8eHJlZiBsaW5rZW5k PSJzcWwtc3ludGF4LXR5cGUtY2FzdHMtc2FmZSIvPi4KKyAgICAgICA8L3BhcmE+CisgICAgICA8 L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90 YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbAppbmRleCBiYWQ3NWJjMWRjZS4uODg4ZDcx NDJlNDIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jYXN0LnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAgUG9z dGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JF QVRFIENBU1QgKDxyZXBsYWNlYWJsZT5zb3VyY2VfdHlwZTwvcmVwbGFjZWFibGU+IEFTIDxyZXBs YWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFjZWFibGU+KQotICAgIFdJVEggRlVOQ1RJT04gPHJl cGxhY2VhYmxlPmZ1bmN0aW9uX25hbWU8L3JlcGxhY2VhYmxlPiBbICg8cmVwbGFjZWFibGU+YXJn dW1lbnRfdHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0pIF0KKyAgICBXSVRIIFtTQUZFXSBGVU5D VElPTiA8cmVwbGFjZWFibGU+ZnVuY3Rpb25fbmFtZTwvcmVwbGFjZWFibGU+IFsgKDxyZXBsYWNl YWJsZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSkgXQogICAgIFsgQVMgQVNT SUdOTUVOVCB8IEFTIElNUExJQ0lUIF0KIAogQ1JFQVRFIENBU1QgKDxyZXBsYWNlYWJsZT5zb3Vy Y2VfdHlwZTwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFj ZWFibGU+KQpAQCAtMTk0LDYgKzE5NCwxOCBAQCBTRUxFQ1QgQ0FTVCAoIDIgQVMgbnVtZXJpYyAp ICsgNC4wOwogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+U0FGRTwvbGl0ZXJhbD48L3Rlcm0+Cisg ICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBmdW5jdGlvbiB1c2VkIHRv IHBlcmZvcm0gdGhlIGNhc3Qgc3VwcG9ydCBzb2Z0LWVycm9yIGV2YWx1YXRpb24sCisgICAgICAg Q3VycmVudGx5LCBvbmx5IGZ1bmN0aW9ucyB3cml0dGVuIGluIEMgb3IgdGhlIGludGVybmFsIGxh bmd1YWdlIGFyZSBzdXBwb3J0ZWQuCisgICAgICAgQW4gYWx0ZXJuYXRlIGV4cHJlc3Npb24gY2Fu IGJlIHNwZWNpZmllZCB0byBiZSBldmFsdWF0ZWQgaWYgdGhlIGNhc3QKKyAgICAgICBlcnJvciBv Y2N1cnMuICBTZWUgPGxpbmsgbGlua2VuZD0ic3FsLXN5bnRheC10eXBlLWNhc3RzLXNhZmUiPnNh ZmUgdHlwZSBjYXN0PC9saW5rPi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAg ICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgIDx0ZXJtPjxsaXRl cmFsPjxyZXBsYWNlYWJsZT5mdW5jdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT5bKDxyZXBsYWNlYWJs ZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSldPC9saXRlcmFsPjwvdGVybT4K IApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sIGIvZG9jL3NyYy9zZ21sL3N5 bnRheC5zZ21sCmluZGV4IGQxY2M5MzJmN2IxLi42YWYxZDIxZDQ2NSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3N5bnRheC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbApAQCAt MjE3OCw5ICsyMTc4LDggQEAgQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNl YWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPgogICAgIGRlZmF1bHQgPHJl cGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPgogICAgIHNwZWNpZmllZCBpbiB0aGUg PGxpdGVyYWw+T04gQ09OVkVSU0lPTiBFUlJPUjwvbGl0ZXJhbD4gY2xhdXNlLgogCi0gICAgQXQg cHJlc2VudCwgdGhpcyBvbmx5IHN1cHBvcnQgYnVpbHQtaW4gdHlwZSBjYXN0cywgc2VlIDx4cmVm IGxpbmtlbmQ9ImNhdGFsb2ctcGctY2FzdCIvPi4KICAgICBVc2VyLWRlZmluZWQgdHlwZSBjYXN0 cyBjcmVhdGVkIHdpdGggPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiPkNSRUFURSBDQVNU PC9saW5rPgotICAgIGFyZSBub3Qgc3VwcG9ydGVkLgorICAgIGFyZSBzdXBwb3J0ZWQgdG9vLgog ICA8L3BhcmE+CiAKICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfY2FzdC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXggNTExOWMyYWNk YTIuLjllZmY5NDFlYWJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3Qu YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYwpAQCAtNDgsNyArNDgsOCBAQAog T2JqZWN0QWRkcmVzcwogQ2FzdENyZWF0ZShPaWQgc291cmNldHlwZWlkLCBPaWQgdGFyZ2V0dHlw ZWlkLAogCQkgICBPaWQgZnVuY2lkLCBPaWQgaW5jYXN0aWQsIE9pZCBvdXRjYXN0aWQsCi0JCSAg IGNoYXIgY2FzdGNvbnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgRGVwZW5kZW5jeVR5cGUgYmVoYXZp b3IpCisJCSAgIGNoYXIgY2FzdGNvbnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgYm9vbCBjYXN0ZXJy b3JzYWZlLAorCQkgICBEZXBlbmRlbmN5VHlwZSBiZWhhdmlvcikKIHsKIAlSZWxhdGlvbglyZWxh dGlvbjsKIAlIZWFwVHVwbGUJdHVwbGU7CkBAIC04NCw2ICs4NSw3IEBAIENhc3RDcmVhdGUoT2lk IHNvdXJjZXR5cGVpZCwgT2lkIHRhcmdldHR5cGVpZCwKIAl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nh c3RmdW5jIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGZ1bmNpZCk7CiAJdmFsdWVzW0FudW1fcGdf Y2FzdF9jYXN0Y29udGV4dCAtIDFdID0gQ2hhckdldERhdHVtKGNhc3Rjb250ZXh0KTsKIAl2YWx1 ZXNbQW51bV9wZ19jYXN0X2Nhc3RtZXRob2QgLSAxXSA9IENoYXJHZXREYXR1bShjYXN0bWV0aG9k KTsKKwl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RlcnJvcnNhZmUgLSAxXSA9IEJvb2xHZXREYXR1 bShjYXN0ZXJyb3JzYWZlKTsKIAogCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0 RGVzY3IocmVsYXRpb24pLCB2YWx1ZXMsIG51bGxzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvZnVuY3Rpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9mdW5jdGlv bmNtZHMuYwppbmRleCBhNTE2YjAzN2RlYS4uYjgxODA2NWFmMjcgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2Z1bmN0aW9uY21kcy5jCkBAIC0xNjY3LDYgKzE2NjcsMTMgQEAgQ3JlYXRlQ2FzdChDcmVhdGVD YXN0U3RtdCAqc3RtdCkKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJ TklUSU9OKSwKIAkJCQkJIGVycm1zZygiY2FzdCBmdW5jdGlvbiBtdXN0IG5vdCByZXR1cm4gYSBz ZXQiKSkpOwogCisJCWlmIChzdG10LT5zYWZlICYmCisJCQlwcm9jc3RydWN0LT5wcm9sYW5nICE9 IElOVEVSTkFMbGFuZ3VhZ2VJZCAmJgorCQkJcHJvY3N0cnVjdC0+cHJvbGFuZyAhPSBDbGFuZ3Vh Z2VJZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05P VF9TVVBQT1JURUQpLAorCQkJCQllcnJtc2coIlNhZmUgdHlwZSBjYXN0IGZ1bmN0aW9ucyBhcmUg b25seSBzdXBwb3J0ZWQgZm9yIEMgYW5kIGludGVybmFsIGxhbmd1YWdlcyIpKTsKKwogCQlSZWxl YXNlU3lzQ2FjaGUodHVwbGUpOwogCX0KIAllbHNlCkBAIC0xNzk1LDcgKzE4MDIsNyBAQCBDcmVh dGVDYXN0KENyZWF0ZUNhc3RTdG10ICpzdG10KQogCX0KIAogCW15c2VsZiA9IENhc3RDcmVhdGUo c291cmNldHlwZWlkLCB0YXJnZXR0eXBlaWQsIGZ1bmNpZCwgaW5jYXN0aWQsIG91dGNhc3RpZCwK LQkJCQkJCWNhc3Rjb250ZXh0LCBjYXN0bWV0aG9kLCBERVBFTkRFTkNZX05PUk1BTCk7CisJCQkJ CQljYXN0Y29udGV4dCwgY2FzdG1ldGhvZCwgc3RtdC0+c2FmZSwgREVQRU5ERU5DWV9OT1JNQUwp OwogCXJldHVybiBteXNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IGU1ZmEw NTc4ODg5Li4wNzg1NTFlNDVhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlw ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC0xNzU0LDYg KzE3NTQsNyBAQCBEZWZpbmVSYW5nZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVJhbmdlU3Rt dCAqc3RtdCkKIAkvKiBDcmVhdGUgY2FzdCBmcm9tIHRoZSByYW5nZSB0eXBlIHRvIGl0cyBtdWx0 aXJhbmdlIHR5cGUgKi8KIAlDYXN0Q3JlYXRlKHR5cG9pZCwgbXVsdGlyYW5nZU9pZCwgY2FzdEZ1 bmNPaWQsIEludmFsaWRPaWQsIEludmFsaWRPaWQsCiAJCQkgICBDT0VSQ0lPTl9DT0RFX0VYUExJ Q0lULCBDT0VSQ0lPTl9NRVRIT0RfRlVOQ1RJT04sCisJCQkgICBmYWxzZSwKIAkJCSAgIERFUEVO REVOQ1lfSU5URVJOQUwpOwogCiAJcGZyZWUobXVsdGlyYW5nZUFycmF5TmFtZSk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQppbmRleCAxNWU0ZjA2NDc4Mi4uODliYjcxOGQwZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMzU2LDcg KzM1Niw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxu YW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8ZGVmZWx0Pglkcm9wX29w dGlvbgogJXR5cGUgPGJvb2xlYW4+CW9wdF9vcl9yZXBsYWNlIG9wdF9ubwogCQkJCW9wdF9ncmFu dF9ncmFudF9vcHRpb24KLQkJCQlvcHRfbm93YWl0IG9wdF9pZl9leGlzdHMgb3B0X3dpdGhfZGF0 YQorCQkJCW9wdF9ub3dhaXQgb3B0X3NhZmUgb3B0X2lmX2V4aXN0cyBvcHRfd2l0aF9kYXRhCiAJ CQkJb3B0X3RyYW5zYWN0aW9uX2NoYWluCiAldHlwZSA8bGlzdD4JZ3JhbnRfcm9sZV9vcHRfbGlz dAogJXR5cGUgPGRlZmVsdD4JZ3JhbnRfcm9sZV9vcHQKQEAgLTc3OSw3ICs3NzksNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxp YXNlcywgTm9kZSAqcXVlcnkpOwogCVJFU0VUIFJFU1BFQ1RfUCBSRVNUQVJUIFJFU1RSSUNUIFJF VFVSTiBSRVRVUk5JTkcgUkVUVVJOUyBSRVZPS0UgUklHSFQgUk9MRSBST0xMQkFDSyBST0xMVVAK IAlST1VUSU5FIFJPVVRJTkVTIFJPVyBST1dTIFJVTEUKIAotCVNBVkVQT0lOVCBTQ0FMQVIgU0NI RU1BIFNDSEVNQVMgU0NST0xMIFNFQVJDSCBTRUNPTkRfUCBTRUNVUklUWSBTRUxFQ1QKKwlTQUZF IFNBVkVQT0lOVCBTQ0FMQVIgU0NIRU1BIFNDSEVNQVMgU0NST0xMIFNFQVJDSCBTRUNPTkRfUCBT RUNVUklUWSBTRUxFQ1QKIAlTRVFVRU5DRSBTRVFVRU5DRVMKIAlTRVJJQUxJWkFCTEUgU0VSVkVS IFNFU1NJT04gU0VTU0lPTl9VU0VSIFNFVCBTRVRTIFNFVE9GIFNIQVJFIFNIT1cKIAlTSU1JTEFS IFNJTVBMRSBTS0lQIFNNQUxMSU5UIFNOQVBTSE9UIFNPTUUgU1BMSVQgU09VUkNFIFNRTF9QIFNU QUJMRSBTVEFOREFMT05FX1AKQEAgLTkzNDUsMTQgKzkzNDUsMTUgQEAgZG9zdG10X29wdF9pdGVt OgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVDYXN0U3RtdDogQ1JFQVRFIENBU1Qg JygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcpJwotCQkJCQlXSVRIIEZVTkNUSU9OIGZ1bmN0aW9u X3dpdGhfYXJndHlwZXMgY2FzdF9jb250ZXh0CisJCQkJCVdJVEggb3B0X3NhZmUgRlVOQ1RJT04g ZnVuY3Rpb25fd2l0aF9hcmd0eXBlcyBjYXN0X2NvbnRleHQKIAkJCQl7CiAJCQkJCUNyZWF0ZUNh c3RTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlQ2FzdFN0bXQpOwogCiAJCQkJCW4tPnNvdXJjZXR5 cGUgPSAkNDsKIAkJCQkJbi0+dGFyZ2V0dHlwZSA9ICQ2OwotCQkJCQluLT5mdW5jID0gJDEwOwot CQkJCQluLT5jb250ZXh0ID0gKENvZXJjaW9uQ29udGV4dCkgJDExOworCQkJCQluLT5zYWZlID0g JDk7CisJCQkJCW4tPmZ1bmMgPSAkMTE7CisJCQkJCW4tPmNvbnRleHQgPSAoQ29lcmNpb25Db250 ZXh0KSAkMTI7CiAJCQkJCW4tPmlub3V0ID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsK IAkJCQl9CkBAIC05MzYzLDYgKzkzNjQsNyBAQCBDcmVhdGVDYXN0U3RtdDogQ1JFQVRFIENBU1Qg JygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcpJwogCiAJCQkJCW4tPnNvdXJjZXR5cGUgPSAkNDsK IAkJCQkJbi0+dGFyZ2V0dHlwZSA9ICQ2OworCQkJCQluLT5zYWZlID0gZmFsc2U7CiAJCQkJCW4t PmZ1bmMgPSBOVUxMOwogCQkJCQluLT5jb250ZXh0ID0gKENvZXJjaW9uQ29udGV4dCkgJDEwOwog CQkJCQluLT5pbm91dCA9IGZhbHNlOwpAQCAtOTM3NSw2ICs5Mzc3LDcgQEAgQ3JlYXRlQ2FzdFN0 bXQ6IENSRUFURSBDQVNUICcoJyBUeXBlbmFtZSBBUyBUeXBlbmFtZSAnKScKIAogCQkJCQluLT5z b3VyY2V0eXBlID0gJDQ7CiAJCQkJCW4tPnRhcmdldHR5cGUgPSAkNjsKKwkJCQkJbi0+c2FmZSA9 IGZhbHNlOwogCQkJCQluLT5mdW5jID0gTlVMTDsKIAkJCQkJbi0+Y29udGV4dCA9IChDb2VyY2lv bkNvbnRleHQpICQxMDsKIAkJCQkJbi0+aW5vdXQgPSB0cnVlOwpAQCAtOTM4Nyw2ICs5MzkwLDkg QEAgY2FzdF9jb250ZXh0OiAgQVMgSU1QTElDSVRfUAkJCQkJeyAkJCA9IENPRVJDSU9OX0lNUExJ Q0lUOyB9CiAJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gQ09FUkNJT05fRVhQTElDSVQ7IH0K IAkJOwogCitvcHRfc2FmZTogU0FGRQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCXwgLypFTVBUWSov CQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOwogCiBEcm9wQ2FzdFN0bXQ6IERST1AgQ0FTVCBvcHRf aWZfZXhpc3RzICcoJyBUeXBlbmFtZSBBUyBUeXBlbmFtZSAnKScgb3B0X2Ryb3BfYmVoYXZpb3IK IAkJCQl7CkBAIC0xODE0Nyw2ICsxODE1Myw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwg Uk9VVElORVMKIAkJCXwgUk9XUwogCQkJfCBSVUxFCisJCQl8IFNBRkUKIAkJCXwgU0FWRVBPSU5U CiAJCQl8IFNDQUxBUgogCQkJfCBTQ0hFTUEKQEAgLTE4Nzg1LDYgKzE4NzkyLDcgQEAgYmFyZV9s YWJlbF9rZXl3b3JkOgogCQkJfCBST1cKIAkJCXwgUk9XUwogCQkJfCBSVUxFCisJCQl8IFNBRkUK IAkJCXwgU0FWRVBPSU5UCiAJCQl8IFNDQUxBUgogCQkJfCBTQ0hFTUEKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jCmluZGV4IDZmZWY5MDg4MDRjLi5kYWI3NmEwYmI2NiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jCkBAIC0yOTg5LDcgKzI5ODksNiBAQCBDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4cHIsIE5vZGUgKnNvdXJjZWV4cHIsCiB7CiAJSGVh cFR1cGxlCXR1cGxlOwogCWJvb2wJCWVycm9yc2FmZSA9IHRydWU7Ci0JYm9vbAkJdXNlcmRlZmlu ZWQgPSBmYWxzZTsKIAlPaWQJCQlpbnB1dEJhc2VUeXBlOwogCU9pZAkJCXRhcmdldEJhc2VUeXBl OwogCU9pZAkJCWlucHV0RWxlbWVudFR5cGU7CkBAIC0zMDYxLDExICszMDYwLDggQEAgQ29lcmNp b25FcnJvclNhZmVDaGVjayhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmNhc3RleHByLCBOb2Rl ICpzb3VyY2VleHByLAogCQl7CiAJCQlGb3JtX3BnX2Nhc3QgY2FzdEZvcm0gPSAoRm9ybV9wZ19j YXN0KSBHRVRTVFJVQ1QodHVwbGUpOwogCi0JCQlpZiAoY2FzdEZvcm0tPm9pZCA+IEZpcnN0VW5w aW5uZWRPYmplY3RJZCkKLQkJCXsKKwkJCWlmIChPaWRJc1ZhbGlkKGNhc3RGb3JtLT5jYXN0ZnVu YykgJiYgIWNhc3RGb3JtLT5jYXN0ZXJyb3JzYWZlKQogCQkJCWVycm9yc2FmZSA9IGZhbHNlOwot CQkJCXVzZXJkZWZpbmVkID0gdHJ1ZTsKLQkJCX0KIAogCQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxl KTsKIAkJfQpAQCAtMzA3OSw5ICszMDc1LDcgQEAgQ29lcmNpb25FcnJvclNhZmVDaGVjayhQYXJz ZVN0YXRlICpwc3RhdGUsIE5vZGUgKmNhc3RleHByLCBOb2RlICpzb3VyY2VleHByLAogCQkJCQkg ICBmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSwKIAkJCQkJICAgIkRFRkFVTFQiLAogCQkJCQkg ICAiQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUiIpLAotCQkJCXVzZXJkZWZpbmVkCi0JCQkJ PyBlcnJoaW50KCJTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3Qg eWV0IHN1cHBvcnRlZCIpCi0JCQkJOiBlcnJoaW50KCJFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQg YnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUiKSwKKwkJCQllcnJoaW50KCJFeHBsaWNp dCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUiKSwKIAkJ CQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oc291cmNlZXhwcikpKTsK IH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKaW5kZXggMWI3MThhMTUwNDQuLjMwODU1ZTJjODY0 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0CisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKQEAgLTE5LDY1ICsxOSw2NSBAQAogIyBpbnQyLT5p bnQ0LT5pbnQ4LT5udW1lcmljLT5mbG9hdDQtPmZsb2F0OCwgd2hpbGUgY2FzdHMgaW4gdGhlCiAj IHJldmVyc2UgZGlyZWN0aW9uIGFyZSBhc3NpZ25tZW50LW9ubHkuCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoaW50OCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdp bnQ0KGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcs IGNhc3RmdW5jID0+ICdmbG9hdDQoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRh cmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChpbnQ4KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVyaWMo aW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3Rm dW5jID0+ICdpbnQ4KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4g J2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGludDIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9h dDgoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycs IGNhc3RmdW5jID0+ICdudW1lcmljKGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0 YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoaW50NCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4g J2Zsb2F0NChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdmbG9h dDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNh c3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhpbnQ0KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50 OChmbG9hdDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnaW50Mics IGNhc3RmdW5jID0+ICdpbnQyKGZsb2F0NCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDQnLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoZmxvYXQ0KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9hdDgo ZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMn LAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDQpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDQpJywgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0 ZnVuYyA9PiAnaW50OChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdl dCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGZsb2F0OCknLAotICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdm bG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoZmxvYXQ4KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5j ID0+ICdmbG9hdDQoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQg PT4gJ251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDgpJywgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhm bG9hdDgpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgobnVtZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1l cmljJywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKG51bWVyaWMpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9 PiAnaW50NChudW1lcmljKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ ICdmbG9hdDQnLAotICBjYXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVyaWMpJywgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVy aWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdm bG9hdDgnLAotICBjYXN0ZnVuYyA9PiAnZmxvYXQ4KG51bWVyaWMpJywgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZmxvYXQ4KG51bWVyaWMp JywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ21vbmV5JywgY2FzdHRhcmdldCA9PiAnbnVtZXJp YycsIGNhc3RmdW5jID0+ICdudW1lcmljKG1vbmV5KScsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJn ZXQgPT4gJ21vbmV5JywgY2FzdGZ1bmMgPT4gJ21vbmV5KG51bWVyaWMpJywKQEAgLTg5LDEzICs4 OSwxMyBAQAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGludDQgYW5kIGJv b2wKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2Jvb2wnLCBjYXN0ZnVu YyA9PiAnYm9vbChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICdp bnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9u cyBiZXR3ZWVuIHhpZDggYW5kIHhpZAogeyBjYXN0c291cmNlID0+ICd4aWQ4JywgY2FzdHRhcmdl dCA9PiAneGlkJywgY2FzdGZ1bmMgPT4gJ3hpZCh4aWQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgT0lEIGNhdGVnb3J5OiBhbGxv dyBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gYW55IGludGVncmFsIHR5cGUgKGluY2x1ZGluZwog IyBpbnQ4LCB0byBzdXBwb3J0IE9JRCBsaXRlcmFscyA+IDJHKSB0byBPSUQsIGFzIHdlbGwgYXMg YXNzaWdubWVudCBjb2VyY2lvbgpAQCAtMTA2LDEzICsxMDYsMTMgQEAKICMgY2FzdHMgZnJvbSB0 ZXh0IGFuZCB2YXJjaGFyIHRvIHJlZ2NsYXNzLCB3aGljaCBleGlzdCBtYWlubHkgdG8gc3VwcG9y dAogIyBsZWdhY3kgZm9ybXMgb2YgbmV4dHZhbCgpIGFuZCByZWxhdGVkIGZ1bmN0aW9ucy4KIHsg Y2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICdv aWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMg PT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnb2lk JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0 ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAn aW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9j JywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTIwLDEzICsxMjAsMTMgQEAKIHsgY2FzdHNvdXJjZSA9 PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ4JywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICdpbnQ0 KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2MnLCBj YXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicg fSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0 ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQg PT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4g J3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTEzOCwxMyArMTM4LDEzIEBACiB7 IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVncHJvY2VkdXJlJywgY2Fz dGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdw cm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQn LCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVn cHJvY2VkdXJlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2Fz dGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXInLCBjYXN0ZnVu YyA9PiAnMCcsCkBAIC0xNTIsMTMgKzE1MiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVy JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcicsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdp bnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAnaW50NCcs IGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdi JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0 b3InLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xNzAsMTMgKzE3MCwxMyBAQAogeyBjYXN0c291cmNl ID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywK ICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnb2lk JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXJhdG9yJywgY2Fz dGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9 PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcmF0b3InLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3JlZ29wZXJhdG9yJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICcwJywKQEAgLTE4 NCwxMyArMTg0LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdldCA9 PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdj bGFzcycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdl dCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdy ZWdjbGFzcycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAncmVnY2xhc3MnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5j ID0+ICcwJywKQEAgLTE5OCwxMyArMTk4LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbGxh dGlvbicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4Jywg Y2FzdHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAn aW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xs YXRpb24nLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29sbGF0aW9uJywgY2FzdHRhcmdldCA9 PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjb2xs YXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcs IGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yMTIsMTMgKzIx MiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWd0eXBlJywgY2FzdHRhcmdldCA9PiAnb2lkJywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2Fz dGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWd0 eXBlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2Fz dHRhcmdldCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWd0eXBlJywgY2Fz dHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWd0eXBlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdv aWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yMjYs MTMgKzIyNiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdjb25maWcnLCBjYXN0dGFyZ2V0ID0+ ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2Nv bmZpZycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdl dCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJzAnLAogICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3JlZ2NvbmZpZycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkaWN0aW9uYXJ5JywgY2Fz dGZ1bmMgPT4gJzAnLApAQCAtMjQwLDMxICsyNDAsMzEgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVn ZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ4JywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3RmdW5jID0+ICdvaWQnLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3Rm dW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4g J3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGljdGlvbmFyeScsIGNh c3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAncmVnZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJ3JlZ2Ns YXNzJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywg Y2FzdGZ1bmMgPT4gJ3JlZ2NsYXNzJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9 PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9 PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdy b2xlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0 ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ0JywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdy b2xlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAn MCcsCkBAIC0yNzIsMTMgKzI3MiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWduYW1lc3BhY2Un LCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0 YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJ2ludDQo aW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNl JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0YXJnZXQgPT4gJ2lu dDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnbmFtZXNwYWNl JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTI4NiwxMyArMjg2 LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdHRhcmdldCA9PiAnb2lk JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFz ZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9 PiAncmVnZGF0YWJhc2UnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChv aWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0Jywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiAKQEAgLTMwMiw1NyArMzAyLDU3IEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0 dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0 YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChicGNoYXIpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGJw Y2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2Fz dGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMg PT4gJ3RleHQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRhcmdldCA9PiAnYnBj aGFyJywgY2FzdGZ1bmMgPT4gJ2JwY2hhcihjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBj YXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoY2hhciknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KG5h bWUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnbmFtZScsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3Rm dW5jID0+ICdicGNoYXIobmFtZSknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9 PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd2YXJjaGFyKG5hbWUpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn dGV4dCcsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcih0ZXh0KScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAn Y2hhcih0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICdjaGFy JywgY2FzdGZ1bmMgPT4gJ2NoYXIodGV4dCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRh cmdldCA9PiAnbmFtZScsIGNhc3RmdW5jID0+ICduYW1lKHRleHQpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn YnBjaGFyJywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3RmdW5jID0+ICduYW1lKGJwY2hhcikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3RmdW5j ID0+ICduYW1lKHZhcmNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIAogIyBBbGxvdyBleHBsaWNpdCBjb2VyY2lvbnMgYmV0d2VlbiBi eXRlYSBhbmQgaW50ZWdlciB0eXBlcwogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdl dCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEoaW50MiknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ0JywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEoaW50NCknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAn Ynl0ZWEoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDIn LCBjYXN0ZnVuYyA9PiAnaW50MihieXRlYSknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0 YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChieXRlYSknLAotICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChieXRlYSkn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog CiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGludDQgYW5kICJjaGFyIgogeyBj YXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdp bnQ0KGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBj YXN0ZnVuYyA9PiAnY2hhcihpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgcGdfbm9kZV90cmVlIGNhbiBiZSBjb2VyY2VkIHRv LCBidXQgbm90IGZyb20sIHRleHQKIHsgY2FzdHNvdXJjZSA9PiAncGdfbm9kZV90cmVlJywgY2Fz dHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICcwJywKQEAgLTM3OCw3MyArMzc4LDczIEBA CiAKICMgRGF0ZXRpbWUgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnZGF0ZScsIGNhc3R0YXJn ZXQgPT4gJ3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAoZGF0ZSknLCBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1l c3RhbXAoZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZGF0ZScsIGNhc3R0YXJnZXQg PT4gJ3RpbWVzdGFtcHR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KGRhdGUpJywgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGlt ZXN0YW1wdHooZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZScsIGNhc3R0YXJn ZXQgPT4gJ2ludGVydmFsJywgY2FzdGZ1bmMgPT4gJ2ludGVydmFsKHRpbWUpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndGltZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsIGNhc3RmdW5jID0+ICd0aW1ldHoo dGltZSknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICdkYXRlJywK LSAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wKScsIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lJywKLSAg Y2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wKScsIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXB0eics Ci0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHoodGlt ZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJn ZXQgPT4gJ2RhdGUnLAotICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXB0eiknLCBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdkYXRlKHRp bWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0 YXJnZXQgPT4gJ3RpbWUnLAotICBjYXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXB0eiknLCBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1l KHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNh c3R0YXJnZXQgPT4gJ3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAodGltZXN0 YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 ZnVuYyA9PiAndGltZXN0YW1wKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsCi0gIGNhc3RmdW5jID0+ICd0 aW1ldHoodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdpbnRlcnZhbCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAn dGltZShpbnRlcnZhbCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1ldHonLCBjYXN0dGFyZ2V0ID0+ICd0 aW1lJywgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXR6KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgR2VvbWV0cmljIGNhdGVnb3J5CiB7 IGNhc3Rzb3VyY2UgPT4gJ3BvaW50JywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4g J2JveChwb2ludCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2xzZWcnLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcs IGNhc3RmdW5jID0+ICdwb2ludChsc2VnKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncGF0aCcsIGNhc3R0YXJn ZXQgPT4gJ3BvbHlnb24nLCBjYXN0ZnVuYyA9PiAncG9seWdvbihwYXRoKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYm94JywgY2FzdHRhcmdldCA9PiAncG9pbnQnLCBjYXN0ZnVuYyA9PiAncG9pbnQoYm94KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAnbHNlZycsIGNhc3RmdW5jID0+ICds c2VnKGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLCBj YXN0ZnVuYyA9PiAncG9seWdvbihib3gpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gnLCBjYXN0dGFyZ2V0 ID0+ICdjaXJjbGUnLCBjYXN0ZnVuYyA9PiAnY2lyY2xlKGJveCknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Bv bHlnb24nLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChwb2x5Z29u KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ3BhdGgnLCBjYXN0ZnVu YyA9PiAncGF0aCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ2JveCcs IGNhc3RmdW5jID0+ICdib3gocG9seWdvbiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3BvbHlnb24nLCBjYXN0 dGFyZ2V0ID0+ICdjaXJjbGUnLAotICBjYXN0ZnVuYyA9PiAnY2lyY2xlKHBvbHlnb24pJywgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnY2ly Y2xlKHBvbHlnb24pJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2lyY2xlJywgY2FzdHRhcmdl dCA9PiAncG9pbnQnLCBjYXN0ZnVuYyA9PiAncG9pbnQoY2lyY2xlKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn Y2lyY2xlJywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4gJ2JveChjaXJjbGUpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdwb2x5Z29uJywKLSAgY2FzdGZ1 bmMgPT4gJ3BvbHlnb24oY2lyY2xlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3BvbHlnb24oY2lyY2xlKScsIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZid9LAogCiAjIE1BQyBhZGRyZXNzIGNhdGVnb3J5CiB7IGNh c3Rzb3VyY2UgPT4gJ21hY2FkZHInLCBjYXN0dGFyZ2V0ID0+ICdtYWNhZGRyOCcsIGNhc3RmdW5j ID0+ICdtYWNhZGRyOCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ21hY2FkZHI4JywgY2FzdHRhcmdldCA9PiAn bWFjYWRkcicsIGNhc3RmdW5jID0+ICdtYWNhZGRyJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBJTkVUIGNhdGVnb3J5CiB7IGNhc3Rz b3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICdpbmV0JywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdjaWRyJywgY2FzdGZ1bmMgPT4gJ2NpZHInLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEJp dFN0cmluZyBjYXRlZ29yeQogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICd2 YXJiaXQnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC00NTQsMTMgKzQ1NCwxMyBAQAogCiAjIENyb3Nz LWNhdGVnb3J5IGNhc3RzIGJldHdlZW4gYml0IGFuZCBpbnQ0LCBpbnQ4CiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVuYyA9PiAnYml0KGludDgsaW50 NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnYml0JywgY2FzdGZ1bmMg PT4gJ2JpdChpbnQ0LGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYml0JywgY2FzdHRhcmdldCA9PiAn aW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGJpdCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoYml0KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQ3Jvc3MtY2F0ZWdv cnkgY2FzdHMgdG8gYW5kIGZyb20gVEVYVAogIyBXZSBuZWVkIGVudHJpZXMgaGVyZSBvbmx5IGZv ciBhIGZldyBzcGVjaWFsaXplZCBjYXNlcyB3aGVyZSB0aGUgYmVoYXZpb3IKQEAgLTQ3MSw2OCAr NDcxLDY4IEBACiAjIGJlaGF2aW9yIHdpbGwgZW5zdWUgd2hlbiB0aGUgYXV0b21hdGljIGNhc3Qg aXMgYXBwbGllZCBpbnN0ZWFkIG9mIHRoZQogIyBwZ19jYXN0IGVudHJ5IQogeyBjYXN0c291cmNl ID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9 PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0 JywgY2FzdGZ1bmMgPT4gJ3RleHQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd4bWwnLCBjYXN0dGFy Z2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQg ZnJvbSBWQVJDSEFSCiAjIFdlIHN1cHBvcnQgYWxsIHRoZSBzYW1lIGNhc3RzIGFzIGZvciBURVhU LgogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3Rm dW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4g J3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wn LCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoYm9vbCknLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywK LSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAog IyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJvbSBCUENIQVIKICMgV2Ugc3VwcG9ydCBh bGwgdGhlIHNhbWUgY2FzdHMgYXMgZm9yIFRFWFQuCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBj YXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChp bmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0 ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcsIGNhc3R0YXJnZXQgPT4g J2JwY2hhcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ICd4 bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBMZW5ndGgtY29lcmNpb24gZnVuY3Rpb25zCiB7IGNh c3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsCiAgIGNhc3RmdW5j ID0+ICdicGNoYXIoYnBjaGFyLGludDQsYm9vbCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNo YXInLAogICBjYXN0ZnVuYyA9PiAndmFyY2hhcih2YXJjaGFyLGludDQsYm9vbCknLCBjYXN0Y29u dGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZScsIGNhc3R0 YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAndGltZSh0aW1lLGludDQpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndGltZXN0YW1wJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wJywKICAgY2FzdGZ1bmMg PT4gJ3RpbWVzdGFtcCh0aW1lc3RhbXAsaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBjYXN0dGFyZ2V0ID0+ICd0 aW1lc3RhbXB0eicsCiAgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXB0eixpbnQ0 KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnRlcnZhbCcsIGNhc3R0YXJnZXQgPT4gJ2ludGVydmFsJywKICAgY2FzdGZ1bmMgPT4gJ2ludGVy dmFsKGludGVydmFsLGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLAotICBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3RpbWV0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsCi0gIGNhc3Rm dW5jID0+ICd0aW1ldHoodGltZXR6LGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWV0eixpbnQ0KScsIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVuYyA9 PiAnYml0KGJpdCxpbnQ0LGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyYml0JywgY2FzdHRhcmdl dCA9PiAndmFyYml0JywgY2FzdGZ1bmMgPT4gJ3ZhcmJpdCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVy aWMnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywKLSAgY2FzdGZ1bmMgPT4gJ251bWVyaWMobnVt ZXJpYyxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGZ1bmMgPT4gJ251bWVyaWMobnVtZXJpYyxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIGpzb24gdG8v ZnJvbSBqc29uYgogeyBjYXN0c291cmNlID0+ICdqc29uJywgY2FzdHRhcmdldCA9PiAnanNvbmIn LCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC01NDIsMzYgKzU0MiwzNiBAQAogCiAjIGpzb25iIHRvIG51 bWVyaWMgYW5kIGJvb2wgdHlwZXMKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0 ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jvb2woanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNv bmInLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVyaWMoanNvbmIp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMg PT4gJ2ludDIoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdp bnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBj YXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoanNvbmIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0 KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4Jywg Y2FzdGZ1bmMgPT4gJ2Zsb2F0OChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIHJhbmdlIHRvIG11bHRpcmFuZ2UKIHsgY2Fz dHNvdXJjZSA9PiAnaW50NHJhbmdlJywgY2FzdHRhcmdldCA9PiAnaW50NG11bHRpcmFuZ2UnLAog ICBjYXN0ZnVuYyA9PiAnaW50NG11bHRpcmFuZ2UoaW50NHJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4cmFuZ2UnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ4bXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdpbnQ4bXVsdGlyYW5nZShp bnQ4cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ251bXJhbmdlJywgY2FzdHRhcmdldCA9PiAnbnVtbXVsdGlyYW5nZScsCiAgIGNhc3Rm dW5jID0+ICdudW1tdWx0aXJhbmdlKG51bXJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywKLSAg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdkYXRlcmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdk YXRlbXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Up JywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Rz cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICd0c211bHRpcmFuZ2UnLAotICBjYXN0ZnVuYyA9PiAndHNt dWx0aXJhbmdlKHRzcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0ZnVuYyA9PiAndHNtdWx0aXJhbmdlKHRzcmFuZ2UpJywgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3RzdHpyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ3RzdHptdWx0aXJhbmdlJywK ICAgY2FzdGZ1bmMgPT4gJ3RzdHptdWx0aXJhbmdlKHRzdHpyYW5nZSknLCBjYXN0Y29udGV4dCA9 PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY2FzdC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmgKaW5kZXggMmM5NjMzYTVl Y2IuLjA2OGYzNDRlMjAwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3Qu aAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaApAQCAtNDcsNiArNDcsMTAgQEAg Q0FUQUxPRyhwZ19jYXN0LDI2MDUsQ2FzdFJlbGF0aW9uSWQpCiAKIAkvKiBjYXN0IG1ldGhvZCAq LwogCWNoYXIJCWNhc3RtZXRob2Q7CisKKwkvKiBjYXN0IGZ1bmN0aW9uIGVycm9yIHNhZmUgKi8K Kwlib29sCQljYXN0ZXJyb3JzYWZlIEJLSV9ERUZBVUxUKGYpOworCiB9IEZvcm1EYXRhX3BnX2Nh c3Q7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwMSw2ICsxMDUsNyBAQCBleHRlcm4gT2Jq ZWN0QWRkcmVzcyBDYXN0Q3JlYXRlKE9pZCBzb3VyY2V0eXBlaWQsCiAJCQkJCQkJCU9pZCBvdXRj YXN0aWQsCiAJCQkJCQkJCWNoYXIgY2FzdGNvbnRleHQsCiAJCQkJCQkJCWNoYXIgY2FzdG1ldGhv ZCwKKwkJCQkJCQkJYm9vbCBjYXN0ZXJyb3JzYWZlLAogCQkJCQkJCQlEZXBlbmRlbmN5VHlwZSBi ZWhhdmlvcik7CiAKICNlbmRpZgkJCQkJCQkvKiBQR19DQVNUX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAppbmRleCA2MmYyN2QzMDFkMC4uMWVmMTljYmM1ZTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKQEAgLTQxNzMsNiArNDE3Myw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZUNhc3RTdG10CiAJ T2JqZWN0V2l0aEFyZ3MgKmZ1bmM7CiAJQ29lcmNpb25Db250ZXh0IGNvbnRleHQ7CiAJYm9vbAkJ aW5vdXQ7CisJYm9vbAkJc2FmZTsKIH0gQ3JlYXRlQ2FzdFN0bXQ7CiAKIC8qIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCBmNzc1M2M1YzhhOC4uNjFiODA4MjgxZGYg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmgKQEAgLTM5Nyw2ICszOTcsNyBAQCBQR19LRVlXT1JEKCJyb3V0aW5l cyIsIFJPVVRJTkVTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJyb3ciLCBST1csIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJy b3dzIiwgUk9XUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi cnVsZSIsIFJVTEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQo InNhZmUiLCBTQUZFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJzYXZlcG9pbnQiLCBTQVZFUE9JTlQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoInNjYWxhciIsIFNDQUxBUiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgic2NoZW1hIiwgU0NIRU1BLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9j YXN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CmluZGV4 IDAwNTRlZDBlZjY3Li4xZTMyYzA0MWI5ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9j cmVhdGVfY2FzdC5vdXQKQEAgLTgxLDYgKzgxLDEyIEBAIE5PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gY2FzdCBmcm9tIGludGVnZXIgdG8gY2FzdHRlc3R0eXBlCiAtLSBUcnkgaXQgd2l0aCBhIGZ1 bmN0aW9uIHRoYXQgcmVxdWlyZXMgYW4gaW1wbGljaXQgY2FzdAogQ1JFQVRFIEZVTkNUSU9OIGJh cl9pbnQ0X3RleHQoaW50NCkgUkVUVVJOUyB0ZXh0IExBTkdVQUdFIFNRTCBBUwogJCQgU0VMRUNU ICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7ICQkOworQ1JFQVRFIEZVTkNUSU9OIGJhcl9pbnQ0 X3RleHRfcGxwZyhpbnQ0KSBSRVRVUk5TIHRleHQgTEFOR1VBR0UgcGxwZ3NxbCBBUworJCQgQkVH SU4gUkVUVVJOICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7IEVORCAkJDsKK0NSRUFURSBDQVNU IChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBTQUZFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQo aW50NCkgQVMgSU1QTElDSVQ7IC0tIGVycm9yCitFUlJPUjogIFNhZmUgdHlwZSBjYXN0IGZ1bmN0 aW9ucyBhcmUgb25seSBzdXBwb3J0ZWQgZm9yIEMgYW5kIGludGVybmFsIGxhbmd1YWdlcworQ1JF QVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIFNBRkUgRlVOQ1RJT04gYmFyX2lu dDRfdGV4dF9wbHBnKGludDQpIEFTIElNUExJQ0lUOyAtLSBlcnJvcgorRVJST1I6ICBTYWZlIHR5 cGUgY2FzdCBmdW5jdGlvbnMgYXJlIG9ubHkgc3VwcG9ydGVkIGZvciBDIGFuZCBpbnRlcm5hbCBs YW5ndWFnZXMKIENSRUFURSBDQVNUIChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBGVU5DVElP TiBiYXJfaW50NF90ZXh0KGludDQpIEFTIElNUExJQ0lUOwogU0VMRUNUIDEyMzQ6OmludDQ6OmNh c3R0ZXN0dHlwZTsgLS0gU2hvdWxkIHdvcmsgbm93CiAgY2FzdHRlc3R0eXBlIApAQCAtOTIsNyAr OTgsNyBAQCBTRUxFQ1QgQ0FTVCgxMjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycgogRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBl IGludGVnZXIgdG8gY2FzdHRlc3R0eXBlIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNp ZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCiBMSU5FIDE6IFNFTEVDVCBDQVNU KDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRS4uLgogICAg ICAgICAgICAgICAgICAgICBeCi1ISU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5l ZCB0eXBlcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRl ZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUKIC0tIGNoZWNrIGRlcGVuZGVu Y2llcyBnZW5lcmF0ZWQgZm9yIHRoYXQKIFNFTEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xhc3Np ZCwgb2JqaWQsIG9ianN1YmlkKSBhcyBvYmosCiAgICAgICAgcGdfZGVzY3JpYmVfb2JqZWN0KHJl ZmNsYXNzaWQsIHJlZm9iamlkLCByZWZvYmpzdWJpZCkgYXMgb2JqcmVmLApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggYTM1N2UxZDBjMGUuLjgxZWEyNDQ4NTlm IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTk0Myw4ICs5 NDMsOCBAQCBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSAwIE9S IGNhc3R0YXJnZXQgPSAwIE9SIGNhc3Rjb250ZXh0IE5PVCBJTiAoJ2UnLCAnYScsICdpJykKICAg ICBPUiBjYXN0bWV0aG9kIE5PVCBJTiAoJ2YnLCAnYicgLCdpJyk7Ci0gb2lkIHwgY2FzdHNvdXJj ZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBj YXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gQ2hlY2sgdGhhdCBjYXN0ZnVuYyBpcyBub256 ZXJvIG9ubHkgZm9yIGNhc3QgbWV0aG9kcyB0aGF0IG5lZWQgYSBmdW5jdGlvbiwKQEAgLTk1Myw4 ICs5NTMsOCBAQCBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIChjYXN0bWV0aG9kID0g J2YnIEFORCBjYXN0ZnVuYyA9IDApCiAgICBPUiAoY2FzdG1ldGhvZCBJTiAoJ2InLCAnaScpIEFO RCBjYXN0ZnVuYyA8PiAwKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3Rm dW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2Fz dHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhv ZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dz KQogCiAtLSBMb29rIGZvciBjYXN0cyB0by9mcm9tIHRoZSBzYW1lIHR5cGUgdGhhdCBhcmVuJ3Qg bGVuZ3RoIGNvZXJjaW9uIGZ1bmN0aW9ucy4KQEAgLTk2MywxNSArOTYzLDE1IEBAIFdIRVJFIChj YXN0bWV0aG9kID0gJ2YnIEFORCBjYXN0ZnVuYyA9IDApCiBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0 IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSBjYXN0dGFyZ2V0IEFORCBjYXN0ZnVuYyA9IDA7Ci0gb2lk IHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2Fz dG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogU0VMRUNUIGMuKgogRlJPTSBw Z19jYXN0IGMsIHBnX3Byb2MgcAogV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORCBwLnByb25h cmdzIDwgMiBBTkQgY2FzdHNvdXJjZSA9IGNhc3R0YXJnZXQ7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8 IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0 Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gTG9vayBmb3IgY2FzdCBmdW5jdGlvbnMgdGhhdCBk b24ndCBoYXZlIHRoZSByaWdodCBzaWduYXR1cmUuICBUaGUKQEAgLTk4OSw4ICs5ODksOCBAQCBX SEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5ECiAgICAgICAgICAgICAgT1IgKGMuY2FzdHNvdXJj ZSA9ICdjaGFyYWN0ZXInOjpyZWd0eXBlIEFORAogICAgICAgICAgICAgICAgICBwLnByb2FyZ3R5 cGVzWzBdID0gJ3RleHQnOjpyZWd0eXBlKSkKICAgICAgT1IgTk9UIGJpbmFyeV9jb2VyY2libGUo cC5wcm9yZXR0eXBlLCBjLmNhc3R0YXJnZXQpKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRh cmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Cisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0 IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tCiAoMCByb3dzKQogCiBTRUxFQ1QgYy4qCkBAIC05OTgsOCArOTk4LDggQEAgRlJPTSBwZ19j YXN0IGMsIHBnX3Byb2MgcAogV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORAogICAgICgocC5w cm9uYXJncyA+IDEgQU5EIHAucHJvYXJndHlwZXNbMV0gIT0gJ2ludDQnOjpyZWd0eXBlKSBPUgog ICAgICAocC5wcm9uYXJncyA+IDIgQU5EIHAucHJvYXJndHlwZXNbMl0gIT0gJ2Jvb2wnOjpyZWd0 eXBlKSk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rj b250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJy b3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gTG9v ayBmb3IgYmluYXJ5IGNvbXBhdGlibGUgY2FzdHMgdGhhdCBkbyBub3QgaGF2ZSB0aGUgcmV2ZXJz ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCmluZGV4IDBhMTVhNzk1ZDg3Li4zMGEw ZmYwNzdjOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbApAQCAtNjAsNiArNjAs MTEgQEAgRFJPUCBGVU5DVElPTiBpbnQ0X2Nhc3R0ZXN0dHlwZShpbnQ0KSBDQVNDQURFOwogQ1JF QVRFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgUkVUVVJOUyB0ZXh0IExBTkdVQUdFIFNR TCBBUwogJCQgU0VMRUNUICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7ICQkOwogCitDUkVBVEUg RlVOQ1RJT04gYmFyX2ludDRfdGV4dF9wbHBnKGludDQpIFJFVFVSTlMgdGV4dCBMQU5HVUFHRSBw bHBnc3FsIEFTCiskJCBCRUdJTiBSRVRVUk4gKCdiYXInOjp0ZXh0IHx8ICQxOjp0ZXh0KTsgRU5E ICQkOworCitDUkVBVEUgQ0FTVCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggU0FGRSBGVU5D VElPTiBiYXJfaW50NF90ZXh0KGludDQpIEFTIElNUExJQ0lUOyAtLSBlcnJvcgorQ1JFQVRFIENB U1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIFNBRkUgRlVOQ1RJT04gYmFyX2ludDRfdGV4 dF9wbHBnKGludDQpIEFTIElNUExJQ0lUOyAtLSBlcnJvcgogQ1JFQVRFIENBU1QgKGludDQgQVMg Y2FzdHRlc3R0eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgQVMgSU1QTElD SVQ7CiBTRUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91bGQgd29yayBub3cK IFNFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0020-refactor-point_dt.patch" Content-Disposition: attachment; filename="v17-0020-refactor-point_dt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4sc3 RnJvbSBmOTY2YzJiNDU3MTMyNWNhYTU1MjAwZmNiZWYwMzI3MWQwOWExNjk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNSBKYW4gMjAyNiAxMzozMzo1MSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDIwLzIzXSByZWZhY3RvciBwb2ludF9kdAoKcG9pbnRfZHQgaXMgdXNlZCBpbiBtdWx0aXBsZSBs b2NhdGlvbnMgYW5kIHdpbGwgYmUgbmVlZGVkIGJ5IGEgbGF0ZXIgcGF0Y2gsIHRodXMKcmVmYWN0 b3JpbmcgbWFrZSBpdCBlcnJvciBzYWZlLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIHwgNzkgKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDYgaW5zZXJ0 aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2dlb19vcHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMKaW5kZXggYmZi NDg1OWI0Y2IuLmM2NTViMDE1YzE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv Z2VvX29wcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMKQEAgLTgyLDcg KzgyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHBvaW50X3N1Yl9wb2ludChQb2ludCAqcmVzdWx0 LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9tdWxf cG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5s aW5lIHZvaWQgcG9pbnRfZGl2X3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50 ICpwdDIpOwogc3RhdGljIGlubGluZSBib29sIHBvaW50X2VxX3BvaW50KFBvaW50ICpwdDEsIFBv aW50ICpwdDIpOwotc3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfZHQoUG9pbnQgKnB0MSwgUG9p bnQgKnB0Mik7CitzdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9kdChQb2ludCAqcHQxLCBQb2lu dCAqcHQyLCBOb2RlICplc2NvbnRleHQpOwogc3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfc2wo UG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW50CXBvaW50X2luc2lkZShQb2ludCAq cCwgaW50IG5wdHMsIFBvaW50ICpwbGlzdCk7CiAKQEAgLTgzOSw3ICs4MzksNyBAQCBib3hfZGlz dGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAlib3hfY24oJmEsIGJveDEpOwogCWJveF9jbigmYiwg Ym94Mik7CiAKLQlQR19SRVRVUk5fRkxPQVQ4KHBvaW50X2R0KCZhLCAmYikpOworCVBHX1JFVFVS Tl9GTE9BVDgocG9pbnRfZHQoJmEsICZiLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0x ODA4LDcgKzE4MDgsOCBAQCBwYXRoX2xlbmd0aChQR19GVU5DVElPTl9BUkdTKQogCQkJaXByZXYg PSBwYXRoLT5ucHRzIC0gMTsgLyogaW5jbHVkZSB0aGUgY2xvc3VyZSBzZWdtZW50ICovCiAJCX0K IAotCQlyZXN1bHQgPSBmbG9hdDhfcGwocmVzdWx0LCBwb2ludF9kdCgmcGF0aC0+cFtpcHJldl0s ICZwYXRoLT5wW2ldKSk7CisJCXJlc3VsdCA9IGZsb2F0OF9wbChyZXN1bHQsCisJCQkJCQkgICBw b2ludF9kdCgmcGF0aC0+cFtpcHJldl0sICZwYXRoLT5wW2ldLCBmY2luZm8tPmNvbnRleHQpKTsK IAl9CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CkBAIC0xOTk1LDEzICsxOTk2LDI0IEBA IHBvaW50X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUG9pbnQJICAgKnB0MSA9IFBHX0dF VEFSR19QT0lOVF9QKDApOwogCVBvaW50CSAgICpwdDIgPSBQR19HRVRBUkdfUE9JTlRfUCgxKTsK IAotCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQocHQxLCBwdDIpKTsKKwlQR19SRVRVUk5fRkxP QVQ4KHBvaW50X2R0KHB0MSwgcHQyLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogc3RhdGljIGlu bGluZSBmbG9hdDgKLXBvaW50X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIpCitwb2ludF9kdChQ b2ludCAqcHQxLCBQb2ludCAqcHQyLCBOb2RlICplc2NvbnRleHQpCiB7Ci0JcmV0dXJuIGh5cG90 KGZsb2F0OF9taShwdDEtPngsIHB0Mi0+eCksIGZsb2F0OF9taShwdDEtPnksIHB0Mi0+eSkpOwor CWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CisKKwl4ID0gZmxvYXQ4X21pX3NhZmUocHQxLT54LCBw dDItPngsIGVzY29udGV4dCk7CisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkpCisJCXJldHVybiAwLjA7CisKKwl5ID0gZmxvYXQ4X21pX3NhZmUocHQxLT55LCBw dDItPnksIGVzY29udGV4dCk7CisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkpCisJCXJldHVybiAwLjA7CisKKwlyZXR1cm4gaHlwb3QoeCwgeSk7CiB9CiAKIERh dHVtCkBAIC0yMTczLDcgKzIxODUsNyBAQCBsc2VnX2xlbmd0aChQR19GVU5DVElPTl9BUkdTKQog ewogCUxTRUcJICAgKmxzZWcgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCi0JUEdfUkVUVVJOX0ZM T0FUOChwb2ludF9kdCgmbHNlZy0+cFswXSwgJmxzZWctPnBbMV0pKTsKKwlQR19SRVRVUk5fRkxP QVQ4KHBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSk7 CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpAQCAtMjI1OCw4ICsyMjcwLDggQEAgbHNlZ19sdChQR19GVU5DVElPTl9BUkdT KQogCUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBH X0dFVEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGx0KHBvaW50X2R0KCZsMS0+ cFswXSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkp OworCVBHX1JFVFVSTl9CT09MKEZQbHQocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZj aW5mby0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNp bmZvLT5jb250ZXh0KSkpOwogfQogCiBEYXR1bQpAQCAtMjI2OCw4ICsyMjgwLDggQEAgbHNlZ19s ZShQR19GVU5DVElPTl9BUkdTKQogCUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsK IAlMU0VHCSAgICpsMiA9IFBHX0dFVEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChG UGxlKHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+ cFswXSwgJmwyLT5wWzFdKSkpOworCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmwxLT5w WzBdLCAmbDEtPnBbMV0sIGZjaW5mby0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBb MF0sICZsMi0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSkpOwogfQogCiBEYXR1bQpAQCAtMjI3OCw4 ICsyMjkwLDggQEAgbHNlZ19ndChQR19GVU5DVElPTl9BUkdTKQogCUxTRUcJICAgKmwxID0gUEdf R0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dFVEFSR19MU0VHX1AoMSk7CiAK LQlQR19SRVRVUk5fQk9PTChGUGd0KHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdKSwKLQkJ CQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOworCVBHX1JFVFVSTl9CT09MKEZQ Z3QocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZjaW5mby0+Y29udGV4dCksCisJCQkJ CQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSkpOwogfQog CiBEYXR1bQpAQCAtMjI4OCw4ICsyMzAwLDggQEAgbHNlZ19nZShQR19GVU5DVElPTl9BUkdTKQog CUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dF VEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGdlKHBvaW50X2R0KCZsMS0+cFsw XSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOwor CVBHX1JFVFVSTl9CT09MKEZQZ2UocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZjaW5m by0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNpbmZv LT5jb250ZXh0KSkpOwogfQogCiAKQEAgLTI3NDMsNyArMjc1NSw3IEBAIGxpbmVfY2xvc2VwdF9w b2ludChQb2ludCAqcmVzdWx0LCBMSU5FICpsaW5lLCBQb2ludCAqcG9pbnQpCiAJaWYgKHJlc3Vs dCAhPSBOVUxMKQogCQkqcmVzdWx0ID0gY2xvc2VwdDsKIAotCXJldHVybiBwb2ludF9kdCgmY2xv c2VwdCwgcG9pbnQpOworCXJldHVybiBwb2ludF9kdCgmY2xvc2VwdCwgcG9pbnQsIE5VTEwpOwog fQogCiBEYXR1bQpAQCAtMjc4NCw3ICsyNzk2LDcgQEAgbHNlZ19jbG9zZXB0X3BvaW50KFBvaW50 ICpyZXN1bHQsIExTRUcgKmxzZWcsIFBvaW50ICpwdCkKIAlpZiAocmVzdWx0ICE9IE5VTEwpCiAJ CSpyZXN1bHQgPSBjbG9zZXB0OwogCi0JcmV0dXJuIHBvaW50X2R0KCZjbG9zZXB0LCBwdCk7CisJ cmV0dXJuIHBvaW50X2R0KCZjbG9zZXB0LCBwdCwgTlVMTCk7CiB9CiAKIERhdHVtCkBAIC0zMTA4 LDkgKzMxMjAsOSBAQCBvbl9wbChQR19GVU5DVElPTl9BUkdTKQogc3RhdGljIGJvb2wKIGxzZWdf Y29udGFpbl9wb2ludChMU0VHICpsc2VnLCBQb2ludCAqcHQpCiB7Ci0JcmV0dXJuIEZQZXEocG9p bnRfZHQocHQsICZsc2VnLT5wWzBdKSArCi0JCQkJcG9pbnRfZHQocHQsICZsc2VnLT5wWzFdKSwK LQkJCQlwb2ludF9kdCgmbHNlZy0+cFswXSwgJmxzZWctPnBbMV0pKTsKKwlyZXR1cm4gRlBlcShw b2ludF9kdChwdCwgJmxzZWctPnBbMF0sIE5VTEwpICsKKwkJCQlwb2ludF9kdChwdCwgJmxzZWct PnBbMV0sIE5VTEwpLAorCQkJCXBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsxXSwgTlVM TCkpOwogfQogCiBEYXR1bQpAQCAtMzE3NiwxMSArMzE4OCwxMiBAQCBvbl9wcGF0aChQR19GVU5D VElPTl9BUkdTKQogCWlmICghcGF0aC0+Y2xvc2VkKQogCXsKIAkJbiA9IHBhdGgtPm5wdHMgLSAx OwotCQlhID0gcG9pbnRfZHQocHQsICZwYXRoLT5wWzBdKTsKKwkJYSA9IHBvaW50X2R0KHB0LCAm cGF0aC0+cFswXSwgZmNpbmZvLT5jb250ZXh0KTsKIAkJZm9yIChpID0gMDsgaSA8IG47IGkrKykK IAkJewotCQkJYiA9IHBvaW50X2R0KHB0LCAmcGF0aC0+cFtpICsgMV0pOwotCQkJaWYgKEZQZXEo ZmxvYXQ4X3BsKGEsIGIpLCBwb2ludF9kdCgmcGF0aC0+cFtpXSwgJnBhdGgtPnBbaSArIDFdKSkp CisJCQliID0gcG9pbnRfZHQocHQsICZwYXRoLT5wW2kgKyAxXSwgZmNpbmZvLT5jb250ZXh0KTsK KwkJCWlmIChGUGVxKGZsb2F0OF9wbChhLCBiKSwKKwkJCQkJIHBvaW50X2R0KCZwYXRoLT5wW2ld LCAmcGF0aC0+cFtpICsgMV0sIGZjaW5mby0+Y29udGV4dCkpKQogCQkJCVBHX1JFVFVSTl9CT09M KHRydWUpOwogCQkJYSA9IGI7CiAJCX0KQEAgLTQ3NjYsNyArNDc3OSw3IEBAIGNpcmNsZV9vdmVy bGFwKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpjaXJjbGUxID0gUEdfR0VUQVJHX0NJ UkNMRV9QKDApOwogCUNJUkNMRQkgICAqY2lyY2xlMiA9IFBHX0dFVEFSR19DSVJDTEVfUCgxKTsK IAotCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNs ZTItPmNlbnRlciksCisJUEdfUkVUVVJOX0JPT0woRlBsZShwb2ludF9kdCgmY2lyY2xlMS0+Y2Vu dGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2luZm8tPmNvbnRleHQpLAogCQkJCQkJZmxvYXQ4X3Bs KGNpcmNsZTEtPnJhZGl1cywgY2lyY2xlMi0+cmFkaXVzKSkpOwogfQogCkBAIC00ODI4LDcgKzQ4 NDEsNyBAQCBjaXJjbGVfY29udGFpbmVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpj aXJjbGUxID0gUEdfR0VUQVJHX0NJUkNMRV9QKDApOwogCUNJUkNMRQkgICAqY2lyY2xlMiA9IFBH X0dFVEFSR19DSVJDTEVfUCgxKTsKIAotCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNp cmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNlbnRlciksCisJUEdfUkVUVVJOX0JPT0woRlBsZShw b2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2luZm8tPmNvbnRl eHQpLAogCQkJCQkJZmxvYXQ4X21pKGNpcmNsZTItPnJhZGl1cywgY2lyY2xlMS0+cmFkaXVzKSkp OwogfQogCkBAIC00ODQwLDcgKzQ4NTMsNyBAQCBjaXJjbGVfY29udGFpbihQR19GVU5DVElPTl9B UkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMSA9IFBHX0dFVEFSR19DSVJDTEVfUCgwKTsKIAlDSVJD TEUJICAgKmNpcmNsZTIgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9P TChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCVBH X1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNl bnRlciwgZmNpbmZvLT5jb250ZXh0KSwKIAkJCQkJCWZsb2F0OF9taShjaXJjbGUxLT5yYWRpdXMs IGNpcmNsZTItPnJhZGl1cykpKTsKIH0KIApAQCAtNTA2OSw3ICs1MDgyLDcgQEAgY2lyY2xlX2Rp c3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpjaXJjbGUyID0gUEdfR0VUQVJH X0NJUkNMRV9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVzdWx0ID0gZmxvYXQ4X21pKHBv aW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCXJlc3VsdCA9IGZs b2F0OF9taShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2lu Zm8tPmNvbnRleHQpLAogCQkJCQkgICBmbG9hdDhfcGwoY2lyY2xlMS0+cmFkaXVzLCBjaXJjbGUy LT5yYWRpdXMpKTsKIAlpZiAocmVzdWx0IDwgMC4wKQogCQlyZXN1bHQgPSAwLjA7CkBAIC01MDg1 LDcgKzUwOTgsNyBAQCBjaXJjbGVfY29udGFpbl9wdChQR19GVU5DVElPTl9BUkdTKQogCVBvaW50 CSAgICpwb2ludCA9IFBHX0dFVEFSR19QT0lOVF9QKDEpOwogCWZsb2F0OAkJZDsKIAotCWQgPSBw b2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsIHBvaW50KTsKKwlkID0gcG9pbnRfZHQoJmNpcmNsZS0+ Y2VudGVyLCBwb2ludCwgZmNpbmZvLT5jb250ZXh0KTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNp cmNsZS0+cmFkaXVzKTsKIH0KIApAQCAtNTA5Nyw3ICs1MTEwLDcgQEAgcHRfY29udGFpbmVkX2Np cmNsZShQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlID0gUEdfR0VUQVJHX0NJ UkNMRV9QKDEpOwogCWZsb2F0OAkJZDsKIAotCWQgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIs IHBvaW50KTsKKwlkID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCBwb2ludCwgZmNpbmZvLT5j b250ZXh0KTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNpcmNsZS0+cmFkaXVzKTsKIH0KIApAQCAt NTExMiw3ICs1MTI1LDcgQEAgZGlzdF9wYyhQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAq Y2lyY2xlID0gUEdfR0VUQVJHX0NJUkNMRV9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gZmxvYXQ4X21pKHBvaW50X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIpLAorCXJlc3Vs dCA9IGZsb2F0OF9taShwb2ludF9kdChwb2ludCwgJmNpcmNsZS0+Y2VudGVyLCBmY2luZm8tPmNv bnRleHQpLAogCQkJCQkgICBjaXJjbGUtPnJhZGl1cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJ cmVzdWx0ID0gMC4wOwpAQCAtNTEzMCw3ICs1MTQzLDcgQEAgZGlzdF9jcG9pbnQoUEdfRlVOQ1RJ T05fQVJHUykKIAlQb2ludAkgICAqcG9pbnQgPSBQR19HRVRBUkdfUE9JTlRfUCgxKTsKIAlmbG9h dDgJCXJlc3VsdDsKIAotCXJlc3VsdCA9IGZsb2F0OF9taShwb2ludF9kdChwb2ludCwgJmNpcmNs ZS0+Y2VudGVyKSwgY2lyY2xlLT5yYWRpdXMpOworCXJlc3VsdCA9IGZsb2F0OF9taShwb2ludF9k dChwb2ludCwgJmNpcmNsZS0+Y2VudGVyLCBmY2luZm8tPmNvbnRleHQpLCBjaXJjbGUtPnJhZGl1 cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJcmVzdWx0ID0gMC4wOwogCkBAIC01MjE1LDcgKzUy MjgsNyBAQCBib3hfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJY2lyY2xlLT5jZW50ZXIueCA9 IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBib3gtPmxvdy54KSwgMi4wKTsKIAlj aXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLnksIGJveC0+ bG93LnkpLCAyLjApOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50 ZXIsICZib3gtPmhpZ2gpOworCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2Vu dGVyLCAmYm94LT5oaWdoLCBmY2luZm8tPmNvbnRleHQpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9Q KGNpcmNsZSk7CiB9CkBAIC01Mjk5LDcgKzUzMTIsNyBAQCBwb2x5X3RvX2NpcmNsZShDSVJDTEUg KnJlc3VsdCwgUE9MWUdPTiAqcG9seSkKIAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRzOyBp KyspCiAJCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsKHJlc3VsdC0+cmFkaXVzLAotCQkJCQkJ CQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyKSk7CisJCQkJCQkJCSAg IHBvaW50X2R0KCZwb2x5LT5wW2ldLCAmcmVzdWx0LT5jZW50ZXIsIE5VTEwpKTsKIAlyZXN1bHQt PnJhZGl1cyA9IGZsb2F0OF9kaXYocmVzdWx0LT5yYWRpdXMsIHBvbHktPm5wdHMpOwogfQogCi0t IAoyLjM0LjEKCg== --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0019-introduce-float8-safe-function.patch" Content-Disposition: attachment; filename="v17-0019-introduce-float8-safe-function.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4sf4 RnJvbSA4ODViYmZkYmNiYTY1MWRkOWJlYTdlNzZjOGY2OWY5MDRkZGY5NTY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMiBKYW4gMjAyNiAxNjoxNDoyOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDE5LzIzXSBpbnRyb2R1Y2UgZmxvYXQ4IHNhZmUgZnVuY3Rpb24KCnRoaXMgcGF0Y2ggaW50cm9k dWNlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246CmZsb2F0OF9wbF9zYWZlCmZsb2F0OF9taV9zYWZl CmZsb2F0OF9tdWxfc2FmZQpmbG9hdDhfZGl2X3NhZmUKCnJlZmFjdG9yaW5nIGV4aXN0aW5nIGZ1 bmN0aW9uIGlzIGJlIHRvbyBpbnZhc2l2ZS4gIHRodXMgYWRkIHRoZXNlIG5ldyBmdW5jdGlvbnMu Ckl0J3MgY2xvc2UgdG8gZXhpc3Rpbmcgbm9uLXNhZmUgdmVyc2lvbiBmdW5jdGlvbnMuCgpkaXNj dXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhO Vmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmggfCA3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxv YXQuaAppbmRleCBkMmU5ODk5NjBhNS4uODcyM2I0YzAwYjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMTA5 LDE2ICsxMDksMjQgQEAgZmxvYXQ0X3BsKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQg dmFsMikKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0OAorZmxvYXQ4 X3BsX3NhZmUoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9k ZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJcmVzdWx0OworCisJcmVzdWx0ID0gdmFsMSArIHZh bDI7CisJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNp bmYodmFsMikpCisJeworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1 cm4gMC4wOworCX0KKwlyZXR1cm4gcmVzdWx0OworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0OAog ZmxvYXQ4X3BsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIHsKLQlmbG9h dDgJCXJlc3VsdDsKLQotCXJlc3VsdCA9IHZhbDEgKyB2YWwyOwotCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVy Zmxvd19lcnJvcihOVUxMKTsKLQotCXJldHVybiByZXN1bHQ7CisJcmV0dXJuIGZsb2F0OF9wbF9z YWZlKHZhbDEsIHZhbDIsIE5VTEwpOzsKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDQKQEAgLTEz MywxNiArMTQxLDI0IEBAIGZsb2F0NF9taShjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0 IHZhbDIpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0 OF9taV9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5v ZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCXJlc3VsdCA9IHZhbDEgLSB2 YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlz aW5mKHZhbDIpKQorCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKKwkJcmV0 dXJuIDAuMDsKKwl9CisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdDgK IGZsb2F0OF9taShjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiB7Ci0JZmxv YXQ4CQlyZXN1bHQ7Ci0KLQlyZXN1bHQgPSB2YWwxIC0gdmFsMjsKLQlpZiAodW5saWtlbHkoaXNp bmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoTlVMTCk7Ci0KLQlyZXR1cm4gcmVzdWx0OworCXJldHVybiBmbG9hdDhfbWlf c2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDQKQEAgLTE2 MCwxOSArMTc2LDMzIEBAIGZsb2F0NF9tdWwoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0 NCB2YWwyKQogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0OAotZmxvYXQ4X211bChjb25zdCBmbG9h dDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCitmbG9hdDhfbXVsX3NhZmUoY29uc3QgZmxvYXQ4 IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogewogCWZs b2F0OAkJcmVzdWx0OwogCiAJcmVzdWx0ID0gdmFsMSAqIHZhbDI7CiAJaWYgKHVubGlrZWx5KGlz aW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOworCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0 KTsKKwkJcmV0dXJuIDAuMDsKKwl9CisKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYg dmFsMSAhPSAwLjAgJiYgdmFsMiAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxM KTsKKwl7CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1cm4gMC4w OworCX0KIAogCXJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9h dDhfbXVsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKK3sKKwlyZXR1cm4g ZmxvYXQ4X211bF9zYWZlKHZhbDEsIHZhbDIsIE5VTEwpOworfQorCisKIHN0YXRpYyBpbmxpbmUg ZmxvYXQ0CiBmbG9hdDRfZGl2KGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikK IHsKQEAgLTE5MCwyMSArMjIwLDI4IEBAIGZsb2F0NF9kaXYoY29uc3QgZmxvYXQ0IHZhbDEsIGNv bnN0IGZsb2F0NCB2YWwyKQogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0OAotZmxvYXQ4X2Rpdihj b25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCitmbG9hdDhfZGl2X3NhZmUoY29u c3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0 KQogewogCWZsb2F0OAkJcmVzdWx0OwogCiAJaWYgKHVubGlrZWx5KHZhbDIgPT0gMC4wKSAmJiAh aXNuYW4odmFsMSkpCi0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKE5VTEwpOworCQlmbG9hdF96 ZXJvX2RpdmlkZV9lcnJvcihlc2NvbnRleHQpOwogCXJlc3VsdCA9IHZhbDEgLyB2YWwyOwogCWlm ICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkpCi0JCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOwogCWlm ICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiB2YWwxICE9IDAuMCAmJiAhaXNpbmYodmFsMikp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9y KGVzY29udGV4dCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0 OAorZmxvYXQ4X2Rpdihjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCit7CisJ cmV0dXJuIGZsb2F0OF9kaXZfc2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKK30KKworCiAvKgogICog Um91dGluZXMgZm9yIE5hTi1hd2FyZSBjb21wYXJpc29ucwogICoKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4sk6 RnJvbSBlZjZlNjE3YmNhMTk5MDEwNTNhMWJlYzZlNDczMzEzYTQ5ODMzYTkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTQ6MjY6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAxNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBqc29uYiB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdqc29uYic6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJv c3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGpzb25iICAgICAgfCBib29sZWFuICAgICAgICAgIHwgICAgIDM1NTYgfCBlICAgICAgICAgICB8 IGYgICAgICAgICAgfCBqc29uYl9ib29sICAgIHwgYm9vbAoganNvbmIgICAgICB8IG51bWVyaWMg ICAgICAgICAgfCAgICAgMzQ0OSB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX251 bWVyaWMgfCBudW1lcmljCiBqc29uYiAgICAgIHwgc21hbGxpbnQgICAgICAgICB8ICAgICAzNDUw IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwganNvbmJfaW50MiAgICB8IGludDIKIGpzb25i ICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgIDM0NTEgfCBlICAgICAgICAgICB8IGYgICAg ICAgICAgfCBqc29uYl9pbnQ0ICAgIHwgaW50NAoganNvbmIgICAgICB8IGJpZ2ludCAgICAgICAg ICAgfCAgICAgMzQ1MiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX2ludDggICAg fCBpbnQ4CiBqc29uYiAgICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAzNDUzIHwgZSAgICAg ICAgICAgfCBmICAgICAgICAgIHwganNvbmJfZmxvYXQ0ICB8IGZsb2F0NAoganNvbmIgICAgICB8 IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgMjU4MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGpzb25iX2Zsb2F0OCAgfCBmbG9hdDgKKDcgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1Nmlf NGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMgfCA3 NCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU4 IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9qc29uYi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMKaW5kZXgg MjhlN2Y4MGQ3N2YuLmFiY2Q1YmFhN2MwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmIuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYwpAQCAtMTgxOCw3 ICsxODE4LDcgQEAgSnNvbmJFeHRyYWN0U2NhbGFyKEpzb25iQ29udGFpbmVyICpqYmMsIEpzb25i VmFsdWUgKnJlcykKICAqIEVtaXQgY29ycmVjdCwgdHJhbnNsYXRhYmxlIGNhc3QgZXJyb3IgbWVz c2FnZQogICovCiBzdGF0aWMgdm9pZAotY2Fubm90Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZUeXBl IHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUpCitjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpi dlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSwgTm9kZSAqZXNjb250ZXh0KQogewogCXN0 YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CkBAIC0xODM5LDcgKzE4MzksNyBAQCBjYW5ub3RDYXN0SnNv bmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSkKIAogCWZvciAo aSA9IDA7IGkgPCBsZW5ndGhvZihtZXNzYWdlcyk7IGkrKykKIAkJaWYgKG1lc3NhZ2VzW2ldLnR5 cGUgPT0gdHlwZSkKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJy bXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkpKTsKIApAQCAtMTg1NCw3ICsxODU0LDEwIEBA IGpzb25iX2Jvb2woUEdfRlVOQ1RJT05fQVJHUykKIAlKc29uYlZhbHVlCXY7CiAKIAlpZiAoIUpz b25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUo di50eXBlLCAiYm9vbGVhbiIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi Ym9vbGVhbiIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJ aWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE4NjMsNyArMTg2NiwxMCBAQCBqc29uYl9i b29sKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIik7CisJeworCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVU VVJOX05VTEwoKTsKKwl9CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4sIDApOwogCkBAIC0xODc4LDcg KzE4ODQsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCU51bWVyaWMJCXJl dFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNh bm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiKTsKKwl7CisJCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRV Uk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7CkBAIC0xODg3LDcg KzE4OTYsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2 LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVt ZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZh bC5udW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJvZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNv cHkgdG8KQEAgLTE5MDgsNyArMTkyMCwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290 LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInNtYWxsaW50Iik7CisJewor CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4 dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQog CXsKQEAgLTE5MTcsNyArMTkzMiwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ fQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2 LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi c21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAog CXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDIsCiAJCQkJCQkJCSAg IE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0xOTM1LDcgKzE5NTMsMTAgQEAg anNvbmJfaW50NChQR19GVU5DVElPTl9BUkdTKQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICgh SnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1 ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUs ICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMTk0NCw3ICsxOTY1LDEwIEBAIGpzb25i X2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMp Ci0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiLCBmY2luZm8tPmNvbnRleHQpOworCQlQ R19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShu dW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7 CkBAIC0xOTYyLDcgKzE5ODYsMTAgQEAganNvbmJfaW50OChQR19GVU5DVElPTl9BUkdTKQogCURh dHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYp KQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBH X1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5 NzEsNyArMTk5OCwxMCBAQCBqc29uYl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYg KHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJi aWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBE aXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERh dHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTE5ODksNyArMjAxOSwxMCBAQCBqc29uYl9mbG9hdDQo UEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFj dFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi cmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5m by0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBq YnZOdWxsKQogCXsKQEAgLTE5OTgsNyArMjAzMSwxMCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJ T05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0K IAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0NCwKIAkJCQkJ CQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIwMTYsNyArMjA1Miwx MCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAK IAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIpOworCXsKKwkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIsIGZjaW5mby0+Y29udGV4dCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAg LTIwMjUsNyArMjA2NCwxMCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAK IAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVM TCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0 OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKLS0gCjIuMzQu MQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Disposition: attachment; filename="v17-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4si5 RnJvbSAzMjBiNTVmNDA2YTAxNWY1MjdlNmViYzAyYWExMzljODY4NDc3NGY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgOSBEZWMgMjAyNSAxNDozNjozOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDE4LzIzXSByZWZhY3RvcgogZmxvYXRfb3ZlcmZsb3dfZXJyb3IsZmxvYXRfdW5kZXJmbG93X2Vy cm9yLGZsb2F0X3plcm9fZGl2aWRlX2Vycm9yCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5l cy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBt YWlsLmdtYWlsLmNvbQotLS0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYyB8ICAg MiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jIHwgICA0ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvZmxvYXQuYyAgICAgfCAxMDQgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oICAgICAgICAgfCAgMzQgKysrKystLS0t LQogNCBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA3MiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMgYi9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKaW5kZXggZDljODU5ODM1ZGEuLmE3MzI1YTdiYjI5IDEw MDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKKysrIGIvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0NC5jCkBAIC0xMDEsNyArMTAxLDcgQEAgZmxvYXQ0X2Rp c3QoUEdfRlVOQ1RJT05fQVJHUykKIAogCXIgPSBhIC0gYjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cikpICYmICFpc2luZihhKSAmJiAhaXNpbmYoYikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUNChmYWJz ZihyKSk7CiB9CmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMg Yi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMKaW5kZXggNTY3YmVlZGUxNzguLjdj OTliODRkZTM1IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMK KysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jCkBAIC03OSw3ICs3OSw3IEBA IGdidF9mbG9hdDhfZGlzdChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBGbWdySW5mbyAq ZmxpbmZvKQogCiAJciA9IGFyZzEgLSBhcmcyOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYg IWlzaW5mKGFyZzEpICYmICFpc2luZihhcmcyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsK KwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJcmV0dXJuIGZhYnMocik7CiB9CiAKQEAg LTEwOSw3ICsxMDksNyBAQCBmbG9hdDhfZGlzdChQR19GVU5DVElPTl9BUkdTKQogCiAJciA9IGEg LSBiOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYgIWlzaW5mKGEpICYmICFpc2luZihiKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAKIAlQR19SRVRVUk5fRkxPQVQ4KGZhYnMocikpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2Zsb2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRl eCA1MDIzOThkMjllYy4uNWI3MWM0MGIwMGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC04Mywy NSArODMsMjUgQEAgc3RhdGljIHZvaWQgaW5pdF9kZWdyZWVfY29uc3RhbnRzKHZvaWQpOwogICog VGhpcyBkb2VzIG1lYW4gdGhhdCB5b3UgZG9uJ3QgZ2V0IGEgdXNlZnVsIGVycm9yIGxvY2F0aW9u IGluZGljYXRvci4KICAqLwogcGdfbm9pbmxpbmUgdm9pZAotZmxvYXRfb3ZlcmZsb3dfZXJyb3Io dm9pZCkKK2Zsb2F0X292ZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7Ci0J ZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2RlKEVSUkNPREVf TlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUgb3V0IG9mIHJh bmdlOiBvdmVyZmxvdyIpKSk7CiB9CiAKIHBnX25vaW5saW5lIHZvaWQKLWZsb2F0X3VuZGVyZmxv d19lcnJvcih2b2lkKQorZmxvYXRfdW5kZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRl eHQpCiB7Ci0JZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2Rl KEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUg b3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ciKSkpOwogfQogCiBwZ19ub2lubGluZSB2b2lkCi1mbG9h dF96ZXJvX2RpdmlkZV9lcnJvcih2b2lkKQorZmxvYXRfemVyb19kaXZpZGVfZXJyb3Ioc3RydWN0 IE5vZGUgKmVzY29udGV4dCkKIHsKLQllcmVwb3J0KEVSUk9SLAorCWVycnNhdmUoZXNjb250ZXh0 LAogCQkJKGVycmNvZGUoRVJSQ09ERV9ESVZJU0lPTl9CWV9aRVJPKSwKIAkJCSBlcnJtc2coImRp dmlzaW9uIGJ5IHplcm8iKSkpOwogfQpAQCAtMTQ2MCw5ICsxNDYwLDkgQEAgZHNxcnQoUEdfRlVO Q1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHNxcnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjAp ICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5k ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAt MTQ3OSw5ICsxNDc5LDkgQEAgZGNicnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IGNi cnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTYxNywyNCArMTYxNywyNCBAQCBkcG93KFBH X0ZVTkNUSU9OX0FSR1MpCiAJCQkJaWYgKGFic3ggPT0gMS4wKQogCQkJCQlyZXN1bHQgPSAxLjA7 CiAJCQkJZWxzZSBpZiAoYXJnMiA+PSAwLjAgPyAoYWJzeCA+IDEuMCkgOiAoYWJzeCA8IDEuMCkp Ci0JCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCQkJCWVsc2UKLQkJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJCX0KIAkJfQogCQllbHNlIGlmIChlcnJubyA9 PSBFUkFOR0UpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0gMC4wKQotCQkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwp OwogCQl9CiAJCWVsc2UKIAkJewogCQkJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJCQlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAwLjApCi0JCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CQl9CiAJfQogCkBAIC0xNjc0LDE0ICsxNjc0LDE0IEBAIGRleHAoUEdfRlVOQ1RJT05fQVJHUykK IAkJaWYgKHVubGlrZWx5KGVycm5vID09IEVSQU5HRSkpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0g MC4wKQotCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCQl9CiAJCWVsc2UgaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKE5VTEwpOwogCQllbHNlIGlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSkKLQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CX0KIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKQEAgLTE3MTIsOSArMTcxMiw5IEBAIGRs b2cxKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBsb2coYXJnMSk7CiAJaWYgKHVubGlr ZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3Vs dCA9PSAwLjApICYmIGFyZzEgIT0gMS4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQp OwogfQpAQCAtMTc0NSw5ICsxNzQ1LDkgQEAgZGxvZzEwKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAly ZXN1bHQgPSBsb2cxMChhcmcxKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlz aW5mKGFyZzEpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAxLjAp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVM TCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xNzc4LDcgKzE3NzgsNyBA QCBkYWNvcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gYWNvcyhhcmcxKTsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZs b2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwog fQpAQCAtMTgwOSw3ICsxODA5LDcgQEAgZGFzaW4oUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3Vs dCA9IGFzaW4oYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9v dmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JF VFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE4MzUsNyArMTgzNSw3IEBAIGRhdGFuKFBHX0ZV TkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0gYXRhbihhcmcxKTsKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTg2 MSw3ICsxODYxLDcgQEAgZGF0YW4yKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0g YXRhbjIoYXJnMSwgYXJnMik7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9h dF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBH X1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE5MDIsNyArMTkwMiw3IEBAIGRjb3MoUEdf RlVOQ1RJT05fQVJHUykKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnB1dCBpcyBvdXQgb2YgcmFuZ2UiKSkpOwogCWlmICh1 bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9 CkBAIC0xOTU3LDcgKzE5NTcsNyBAQCBkc2luKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW5w dXQgaXMgb3V0IG9mIHJhbmdlIikpKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0J CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwog CiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjEzNyw3ICsyMTM3LDcgQEAgZGFj b3NkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IDkwLjAgKyBhc2luZF9xMSgtYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjE3NCw3ICsyMTc0LDcgQEAgZGFzaW5kKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCXJlc3VsdCA9IC1hc2luZF9xMSgtYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVz dWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjIwNiw3ICsyMjA2 LDcgQEAgZGF0YW5kKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKGF0YW5fYXJnMSAvIGF0 YW5fMV8wKSAqIDQ1LjA7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjI0Miw3ICsyMjQyLDcgQEAgZGF0YW4yZChQ R19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IChhdGFuMl9hcmcxX2FyZzIgLyBhdGFuXzFfMCkg KiA0NS4wOwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9G TE9BVDgocmVzdWx0KTsKIH0KQEAgLTIzNjUsNyArMjM2NSw3IEBAIGRjb3NkKFBHX0ZVTkNUSU9O X0FSR1MpCiAJcmVzdWx0ID0gc2lnbiAqIGNvc2RfcTEoYXJnMSk7CiAKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjQ4 Nyw3ICsyNDg3LDcgQEAgZHNpbmQoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBzaWduICog c2luZF9xMShhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19S RVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNjQ1LDcgKzI2NDUsNyBAQCBkY29zaChQR19G VU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X2luZmluaXR5KCk7CiAKIAlpZiAo dW5saWtlbHkocmVzdWx0ID09IDAuMCkpCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlm bG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7 CiB9CkBAIC0yNjY1LDcgKzI2NjUsNyBAQCBkdGFuaChQR19GVU5DVElPTl9BUkdTKQogCXJlc3Vs dCA9IHRhbmgoYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjc2NSw3ICsyNzY1LDcgQEAgZGVyZihQR19G VU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZihhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNzg1LDcg KzI3ODUsNyBAQCBkZXJmYyhQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZmMoYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjgxNCw3ICsyODE0LDcgQEAgZGdhbW1hKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCS8qIFBlciBQT1NJWCwgYW4gaW5wdXQgb2YgLUluZiBjYXVzZXMgYSBkb21haW4gZXJyb3Ig Ki8KIAkJaWYgKGFyZzEgPCAwKQogCQl7Ci0JCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X25hbigp OwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCiAJCX0KIAkJZWxzZQpAQCAtMjgzNiwxMiArMjgz NiwxMiBAQCBkZ2FtbWEoUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGVycm5vICE9IDAgfHwgaXNp bmYocmVzdWx0KSB8fCBpc25hbihyZXN1bHQpKQogCQl7CiAJCQlpZiAocmVzdWx0ICE9IDAuMCkK LQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5V TEwpOwogCQkJZWxzZQotCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X3Vu ZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJfQogCQllbHNlIGlmIChyZXN1bHQgPT0gMC4wKQotCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJfQogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwpAQCAtMjg3Myw3ICsyODczLDcgQEAg ZGxnYW1tYShQR19GVU5DVElPTl9BUkdTKQogCSAqIHRvIHJlcG9ydCBvdmVyZmxvdywgYnV0IGl0 IHNob3VsZCBuZXZlciB1bmRlcmZsb3cuCiAJICovCiAJaWYgKGVycm5vID09IEVSQU5HRSB8fCAo aXNpbmYocmVzdWx0KSAmJiAhaXNpbmYoYXJnMSkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVz dWx0KTsKIH0KQEAgLTMwMTMsNyArMzAxMyw3IEBAIGZsb2F0OF9jb21iaW5lKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCXRtcCA9IFN4MSAvIE4xIC0gU3gyIC8gTjI7CiAJCVN4eCA9IFN4eDEgKyBTeHgy ICsgTjEgKiBOMiAqIHRtcCAqIHRtcCAvIE47CiAJCWlmICh1bmxpa2VseShpc2luZihTeHgpKSAm JiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3Io KTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCX0KIAogCS8qCkBAIC0zMDgwLDcg KzMwODAsNyBAQCBmbG9hdDhfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGlzaW5mKFN4 KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVzWzFdKSAmJiAh aXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigpOwogCQl9CkBA IC0zMTYzLDcgKzMxNjMsNyBAQCBmbG9hdDRfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYg KGlzaW5mKFN4KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVz WzFdKSAmJiAhaXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigp OwogCQl9CkBAIC0zNDMwLDcgKzM0MzAsNyBAQCBmbG9hdDhfcmVncl9hY2N1bShQR19GVU5DVElP Tl9BUkdTKQogCQkJCShpc2luZihTeHkpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1sxXSkg JiYgIWlzaW5mKG5ld3ZhbFgpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1szXSkgJiYgIWlz aW5mKG5ld3ZhbFkpKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlpZiAoaXNpbmYoU3h4KSkKIAkJCQlTeHggPSBnZXRf ZmxvYXQ4X25hbigpOwpAQCAtMzYwMywxNSArMzYwMywxNSBAQCBmbG9hdDhfcmVncl9jb21iaW5l KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXRtcDEgPSBTeDEgLyBOMSAtIFN4MiAvIE4yOwogCQlTeHgg PSBTeHgxICsgU3h4MiArIE4xICogTjIgKiB0bXAxICogdG1wMSAvIE47CiAJCWlmICh1bmxpa2Vs eShpc2luZihTeHgpKSAmJiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlTeSA9 IGZsb2F0OF9wbChTeTEsIFN5Mik7CiAJCXRtcDIgPSBTeTEgLyBOMSAtIFN5MiAvIE4yOwogCQlT eXkgPSBTeXkxICsgU3l5MiArIE4xICogTjIgKiB0bXAyICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeXkpKSAmJiAhaXNpbmYoU3l5MSkgJiYgIWlzaW5mKFN5eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlT eHkgPSBTeHkxICsgU3h5MiArIE4xICogTjIgKiB0bXAxICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeHkpKSAmJiAhaXNpbmYoU3h5MSkgJiYgIWlzaW5mKFN4eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlp ZiAoZmxvYXQ4X2VxKEN4MSwgQ3gyKSkKIAkJCUN4ID0gQ3gxOwogCQllbHNlCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApp bmRleCBiMzQwNjc4Y2E5Mi4uZDJlOTg5OTYwYTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMzAsOSArMzAs OSBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IGV4dHJhX2Zsb2F0X2RpZ2l0czsKIC8qCiAgKiBV dGlsaXR5IGZ1bmN0aW9ucyBpbiBmbG9hdC5jCiAgKi8KLXBnX25vcmV0dXJuIGV4dGVybiB2b2lk IGZsb2F0X292ZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxv YXRfdW5kZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxvYXRf emVyb19kaXZpZGVfZXJyb3Iodm9pZCk7CitleHRlcm4gdm9pZCBmbG9hdF9vdmVyZmxvd19lcnJv cihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3VuZGVyZmxvd19l cnJvcihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3plcm9fZGl2 aWRlX2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIGludAlpc19pbmZpbml0 ZShmbG9hdDggdmFsKTsKIGV4dGVybiBmbG9hdDggZmxvYXQ4aW5faW50ZXJuYWwoY2hhciAqbnVt LCBjaGFyICoqZW5kcHRyX3AsCiAJCQkJCQkJCWNvbnN0IGNoYXIgKnR5cGVfbmFtZSwgY29uc3Qg Y2hhciAqb3JpZ19zdHJpbmcsCkBAIC0xMDQsNyArMTA0LDcgQEAgZmxvYXQ0X3BsKGNvbnN0IGZs b2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKyB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMTYsNyArMTE2LDcgQEAgZmxvYXQ4X3Bs KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEg KyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYg IWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxv d19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMjgsNyArMTI4LDcgQEAg ZmxvYXQ0X21pKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3Vs dCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYo dmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9h dF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xNDAsNyAr MTQwLDcgQEAgZmxvYXQ4X21pKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikK IAogCXJlc3VsdCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAm JiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xNTIsOSArMTUyLDkgQEAgZmxvYXQ0X211bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxv YXQ0IHZhbDIpCiAKIAlyZXN1bHQgPSB2YWwxICogdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZs b3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5 KHJlc3VsdCA9PSAwLjBmKSAmJiB2YWwxICE9IDAuMGYgJiYgdmFsMiAhPSAwLjBmKQotCQlmbG9h dF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJ cmV0dXJuIHJlc3VsdDsKIH0KQEAgLTE2Niw5ICsxNjYsOSBAQCBmbG9hdDhfbXVsKGNvbnN0IGZs b2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKiB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgdmFs MiAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTc5LDEyICsxNzksMTIgQEAg ZmxvYXQ0X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJZmxvYXQ0 CQlyZXN1bHQ7CiAKIAlpZiAodW5saWtlbHkodmFsMiA9PSAwLjBmKSAmJiAhaXNuYW4odmFsMSkp Ci0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKCk7CisJCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9y KE5VTEwpOwogCXJlc3VsdCA9IHZhbDEgLyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1 bHQpKSAmJiAhaXNpbmYodmFsMSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0 X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wZikgJiYg dmFsMSAhPSAwLjBmICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xOTUsMTIgKzE5NSwxMiBAQCBmbG9hdDhfZGl2KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBm bG9hdDggdmFsMikKIAlmbG9hdDgJCXJlc3VsdDsKIAogCWlmICh1bmxpa2VseSh2YWwyID09IDAu MCkgJiYgIWlzbmFuKHZhbDEpKQotCQlmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcigpOworCQlmbG9h dF96ZXJvX2RpdmlkZV9lcnJvcihOVUxMKTsKIAlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHko cmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJcmV0 dXJuIHJlc3VsdDsKIH0KLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4sq8 RnJvbSAwMmY3NTFmY2FhOTE4MTc3OTIyOTg3YjU5NDYzZDljMmYxZDQ2OWJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjowNDo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDE1LzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcHR6IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSd0aW1lc3RhbXB0eic6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7Cgog ICAgICAgIGNhc3Rzb3VyY2UgICAgICAgIHwgICAgICAgICBjYXN0dGFyZ2V0ICAgICAgICAgIHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgICAgcHJvc3JjICAgICAg ICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpv bmUgfCBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMTE3OCB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X2RhdGUgICAgICB8IGRhdGUKIHRpbWVzdGFtcCB3 aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUgICAgICB8ICAgICAyMDE5IHwg YSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wdHpfdGltZSAgICAgIHwgdGltZQog dGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwg ICAgIDIwMjcgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el90aW1lc3Rh bXAgfCB0aW1lc3RhbXAKIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aCB0aW1l IHpvbmUgICAgICAgICB8ICAgICAxMzg4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGlt ZXN0YW1wdHpfdGltZXR6ICAgIHwgdGltZXR6CiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgfCB0 aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgICAgfCAgICAgMTk2NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IHRpbWVzdGFtcHR6X3NjYWxlICAgICB8IHRpbWVzdGFtcHR6Cig1IHJvd3MpCgpk aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpR aXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMgICAgICB8ICA5ICsrKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jIHwgMTAgKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IGJjNGM2Nzc3 NWRkLi5iZTUyNzc3ZDg4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0xNDA2LDcgKzE0MDYsMTAg QEAgdGltZXN0YW1wdHpfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcFR6IHRpbWVz dGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgTlVMTCk7CisJcmVzdWx0ID0g dGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmFyZ3MpKQorCQlQR19SRVRVUk5fTlVMTCgpOwor CiAJUEdfUkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAzNiw3ICsyMDM5LDcgQEAg dGltZXN0YW1wdHpfdGltZShQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwog CiAJaWYgKHRpbWVzdGFtcDJ0bSh0aW1lc3RhbXAsICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxM KSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtMjk1NSw3 ICsyOTU4LDcgQEAgdGltZXN0YW1wdHpfdGltZXR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgJnR6LCB0bSwgJmZz ZWMsIE5VTEwsIE5VTEwpICE9IDApCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZv LT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggNjJhN2QyMjMwZDEuLjM2MjNkY2Fi M2JmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC04NzUsNyArODc1LDggQEAgdGlt ZXN0YW1wdHpfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHRpbWVzdGFtcDsK IAotCUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgmcmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlm ICghQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5jb250 ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVBUWihyZXN1 bHQpOwogfQpAQCAtNjQ5NCw4ICs2NDk1LDEzIEBAIERhdHVtCiB0aW1lc3RhbXB0el90aW1lc3Rh bXAoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXBUeiB0aW1lc3RhbXAgPSBQR19HRVRB UkdfVElNRVNUQU1QVFooMCk7CisJVGltZXN0YW1wCXJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1F U1RBTVAodGltZXN0YW1wdHoydGltZXN0YW1wKHRpbWVzdGFtcCkpOworCXJlc3VsdCA9IHRpbWVz dGFtcHR6MnRpbWVzdGFtcF9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo dW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KIAogLyoKLS0g CjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4st9 RnJvbSA5NDM2MzdlYmMwNmI4MjA0MjI0YmI0Nzk3ZTJiOTJkYmI0MzQyMzViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MDU6MjYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAxNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlcnZhbCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lIGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1 bmMgYW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbnRlcnZh bCc6OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwg ICAgICAgY2FzdHRhcmdldCAgICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0 aG9kIHwgICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KIGludGVydmFsICAgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25l IHwgICAgIDE0MTkgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF90aW1lICB8 IHRpbWUKIGludGVydmFsICAgfCBpbnRlcnZhbCAgICAgICAgICAgICAgIHwgICAgIDEyMDAgfCBp ICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF9zY2FsZSB8IGludGVydmFsCigyIHJv d3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpj d3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgICAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC90aW1lc3RhbXAuYyB8IDMgKystCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCBlOGRjOGQyNzZiZi4uYmM0YzY3 Nzc1ZGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAtMjEwNiw3ICsyMTA2LDcgQEAgaW50ZXJ2YWxf dGltZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVBRFQJCXJlc3VsdDsKIAogCWlmIChJTlRFUlZB TF9OT1RfRklOSVRFKHNwYW4pKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVf T1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBpbmZpbml0ZSBpbnRl cnZhbCB0byB0aW1lIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCmluZGV4IDhkZWIy MzY5NDcxLi42MmE3ZDIyMzBkMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMTMz NCw3ICsxMzM0LDggQEAgaW50ZXJ2YWxfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQg PSBwYWxsb2Nfb2JqZWN0KEludGVydmFsKTsKIAkqcmVzdWx0ID0gKmludGVydmFsOwogCi0JQWRq dXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0 SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fSU5URVJWQUxfUChyZXN1bHQpOwogfQotLSAK Mi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4sn7 RnJvbSBkMzdlNzA3NGYwNmQwOGEwYjc5ZWYzNmZiNTBkMzZlYmVmYWYxMGVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjoxNDozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDE2LzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKICAgICAgIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywg cHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBj LmNhc3RmdW5jCmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBlID0n dGltZXN0YW1wJzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICAg ICAgIGNhc3Rzb3VyY2UgICAgICAgICAgfCAgICAgICAgIGNhc3R0YXJnZXQgICAgICAgICAgfCBj YXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICAgICBwcm9zcmMgICAgICAg ICB8ICAgcHJvbmFtZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIHRpbWVzdGFtcCB3aXRob3V0IHRp bWUgem9uZSB8IGRhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAyMDI5IHwgYSAgICAg ICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX2RhdGUgICAgICAgIHwgZGF0ZQogdGltZXN0 YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSAgICAgIHwgICAg IDEzMTYgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXBfdGltZSAgICAgICAg fCB0aW1lCiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1l IHpvbmUgICAgfCAgICAgMjAyOCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFt cF90aW1lc3RhbXB0eiB8IHRpbWVzdGFtcHR6CiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCAgICAgMTk2MSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IHRpbWVzdGFtcF9zY2FsZSAgICAgICB8IHRpbWVzdGFtcAooNCByb3dzKQoK ZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJq UWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAgNyArKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvdGltZXN0YW1wLmMgfCAxMCArKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggYmU1Mjc3N2Q4 OGQuLmEwNTc0NzEwOTlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTEzMzAsNyArMTMzMCwxMCBA QCB0aW1lc3RhbXBfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcAl0aW1lc3RhbXAg PSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCURhdGVBRFQJCXJlc3VsdDsKIAotCXJlc3VsdCA9 IHRpbWVzdGFtcDJkYXRlX3NhZmUodGltZXN0YW1wLCBOVUxMKTsKKwlyZXN1bHQgPSB0aW1lc3Rh bXAyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCiAJUEdf UkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAwOCw3ICsyMDExLDcgQEAgdGltZXN0 YW1wX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0 aW1lc3RhbXAydG0odGltZXN0YW1wLCBOVUxMLCB0bSwgJmZzZWMsIE5VTEwsIE5VTEwpICE9IDAp Ci0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAs CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJ CSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKaW5kZXggMzYyM2RjYWIzYmYuLjdlZDg4MjYwYjVkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jCkBAIC0zNTIsNyArMzUyLDggQEAgdGltZXN0YW1wX3NjYWxlKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAlyZXN1bHQgPSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JU eXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5 cG1vZCgmcmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxM KCk7CiAKIAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC02NDMyLDggKzY0MzMs MTMgQEAgRGF0dW0KIHRpbWVzdGFtcF90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdTKQogewog CVRpbWVzdGFtcAl0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOworCVRpbWVzdGFt cFR6IHJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1FU1RBTVBUWih0aW1lc3RhbXAydGltZXN0YW1w dHoodGltZXN0YW1wKSk7CisJcmVzdWx0ID0gdGltZXN0YW1wMnRpbWVzdGFtcHR6X3NhZmUodGlt ZXN0YW1wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5m by0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fVElNRVNUQU1Q VFoocmVzdWx0KTsKIH0KIAogLyoKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4sz11 RnJvbSBmZWQ5YTg4YjM4N2I3MTA2YmJkZGE3Y2ZmNjE4MjI0YTVhZTExN2U0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MzE6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAxMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ4Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAg fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBkb3VibGUgcHJlY2lzaW9uIHwgYmlnaW50ICAgICB8ICAgICAgNDgzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZHRvaTggICAgICAgICAgfCBpbnQ4CiBkb3VibGUgcHJlY2lzaW9u IHwgc21hbGxpbnQgICB8ICAgICAgMjM3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRv aTIgICAgICAgICAgfCBpbnQyCiBkb3VibGUgcHJlY2lzaW9uIHwgaW50ZWdlciAgICB8ICAgICAg MzE3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRvaTQgICAgICAgICAgfCBpbnQ0CiBk b3VibGUgcHJlY2lzaW9uIHwgcmVhbCAgICAgICB8ICAgICAgMzEyIHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZHRvZiAgICAgICAgICAgfCBmbG9hdDQKIGRvdWJsZSBwcmVjaXNpb24gfCBu dW1lcmljICAgIHwgICAgIDE3NDMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDhf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDEzICsr KysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8ICAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKaW5kZXgg NTg1ODBiNWYzY2MuLjUwMjM5OGQyOWVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwpAQCAtMTE5OSw5 ICsxMTk5LDE0IEBAIGR0b2YoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IChmbG9hdDQp IG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKG51bSkpCi0JCWZs b2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJ CQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKIAlpZiAodW5saWtl bHkocmVzdWx0ID09IDAuMGYpICYmIG51bSAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJv cigpOworCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAorCQkJCWVycmNvZGUo RVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBv dXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKIAogCVBHX1JFVFVSTl9GTE9BVDQocmVzdWx0KTsK IH0KQEAgLTEyMjQsNyArMTIyOSw3IEBAIGR0b2k0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBS YW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19J Tl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTEy NDksNyArMTI1NCw3IEBAIGR0b2kyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVj ayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19JTl9JTlQxNihu dW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1 bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK IAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YwppbmRleCA2ZGMzNjM2NzBjNy4uMmU4MmJlYzlhMmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYwpAQCAt MTMwNyw3ICsxMzA3LDcgQEAgZHRvaTgoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNo ZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0 KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwppbmRleCA4ZWI5MzQ2YmRlNC4uOGY5N2VlMDc4ZTYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwpAQCAtNDU1OSw3ICs0NTU5LDggQEAgZmxvYXQ4X251bWVyaWMoUEdfRlVOQ1RJT05f QVJHUykKIAlpbml0X3ZhcigmcmVzdWx0KTsKIAogCS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3Jy eSBhYm91dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNlcyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21f c3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJv bV9zdHIoYnVmLCBidWYsICZyZXN1bHQsICZlbmRwdHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtlX3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4z NC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4sw10 RnJvbSBiYmM3ZTkyOThlYmFhNjQzYmRiZTE5MzRlYjcwOGY3NDAxODUzZjk3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMzoxNTozMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDEzLzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGRhdGUgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZGF0ZSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCmNhc3Rzb3VyY2UgfCAgICAgICAgIGNh c3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 ICAgICAgcHJvc3JjICAgICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCAgICAgMjAyNCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRh dGVfdGltZXN0YW1wICAgfCB0aW1lc3RhbXAKIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0aCB0 aW1lIHpvbmUgICAgfCAgICAgMTE3NCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRhdGVf dGltZXN0YW1wdHogfCB0aW1lc3RhbXB0egooMiByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2 aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIHwg MTcgKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IDYyMWI5MTc1YzEyLi5lOGRjOGQy NzZiZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC03MzAsMTUgKzczMCw2IEBAIGRhdGUydGltZXN0 YW1wdHpfc2FmZShEYXRlQURUIGRhdGVWYWwsIE5vZGUgKmVzY29udGV4dCkKIAlyZXR1cm4gcmVz dWx0OwogfQogCi0vKgotICogUHJvbW90ZSBkYXRlIHRvIHRpbWVzdGFtcHR6LCB0aHJvd2luZyBl cnJvciBmb3Igb3ZlcmZsb3cuCi0gKi8KLXN0YXRpYyBUaW1lc3RhbXBUegotZGF0ZTJ0aW1lc3Rh bXB0eihEYXRlQURUIGRhdGVWYWwpCi17Ci0JcmV0dXJuIGRhdGUydGltZXN0YW1wdHpfc2FmZShk YXRlVmFsLCBOVUxMKTsKLX0KLQogLyoKICAqIGRhdGUydGltZXN0YW1wX25vX292ZXJmbG93CiAg KgpAQCAtMTMyMyw3ICsxMzE0LDkgQEAgZGF0ZV90aW1lc3RhbXAoUEdfRlVOQ1RJT05fQVJHUykK IAlEYXRlQURUCQlkYXRlVmFsID0gUEdfR0VUQVJHX0RBVEVBRFQoMCk7CiAJVGltZXN0YW1wCXJl c3VsdDsKIAotCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wKGRhdGVWYWwpOworCXJlc3VsdCA9IGRh dGUydGltZXN0YW1wX3NhZmUoZGF0ZVZhbCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZihTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQ R19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC0xMzk2LDcgKzEzODksOSBAQCBkYXRl X3RpbWVzdGFtcHR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dF VEFSR19EQVRFQURUKDApOwogCVRpbWVzdGFtcFR6IHJlc3VsdDsKIAotCXJlc3VsdCA9IGRhdGUy dGltZXN0YW1wdHooZGF0ZVZhbCk7CisJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0el9zYWZlKGRh dGVWYWwsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVAo cmVzdWx0KTsKIH0KLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4t112 RnJvbSBhYzMwYTkzMTlhYmM1OTM1ZjU4YjAyODVlMTg0YTJjMjEyMDA3YTczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6Mjg6MjAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAxMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ0Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiByZWFsICAgICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAgNjUzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZnRvaTggICAgICAgICAgfCBpbnQ4CiByZWFsICAgICAgIHwgc21h bGxpbnQgICAgICAgICB8ICAgICAgMjM4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRv aTIgICAgICAgICAgfCBpbnQyCiByZWFsICAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg MzE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRvaTQgICAgICAgICAgfCBpbnQ0CiBy ZWFsICAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzExIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZnRvZCAgICAgICAgICAgfCBmbG9hdDgKIHJlYWwgICAgICAgfCBudW1lcmlj ICAgICAgICAgIHwgICAgIDE3NDIgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDRf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDQgKyst LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9udW1lcmljLmMgfCAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zs b2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRleCBiNWE3YzU3ZTUzYS4u NTg1ODBiNWYzY2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBm dG9pNChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtl bHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50 ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMzIzLDcgKzEzMjMsNyBAQCBmdG9pMihQR19G VU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4o bnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJ CWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggNDU0MmQyMzljNWYuLjZkYzM2 MzY3MGM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEzNDIsNyArMTM0Miw3IEBAIGZ0b2k4KFBH X0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25h bihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwK KwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJD T0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVy aWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKaW5kZXggNjVhZjI2ODQ3M2Mu LjhlYjkzNDZiZGU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKQEAgLTQ2NTcsNyArNDY1Nyw4 IEBAIGZsb2F0NF9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7 CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBub3Qgd29ycnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBz cGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zhcl9mcm9tX3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVu ZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRfdmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAm ZW5kcHRyLCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0g bWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4t413 RnJvbSBmN2E2ZjM2NDBjYzYxYWVmZDJjYmYwZTgxODQyYjE3NDA4ODE1OTUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjU6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAxMC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBudW1lcmljIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ251bWVyaWMn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgpjYXN0c291cmNlIHwgICAg Y2FzdHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAg IHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogbnVtZXJpYyAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgMTc3OSB8IGEgICAgICAg ICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50OCAgIHwgaW50OAogbnVtZXJpYyAgICB8IHNt YWxsaW50ICAgICAgICAgfCAgICAgMTc4MyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51 bWVyaWNfaW50MiAgIHwgaW50MgogbnVtZXJpYyAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAg MTc0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50NCAgIHwgaW50NAog bnVtZXJpYyAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgMTc0NSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IG51bWVyaWNfZmxvYXQ0IHwgZmxvYXQ0CiBudW1lcmljICAgIHwgZG91Ymxl IHByZWNpc2lvbiB8ICAgICAxNzQ2IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJp Y19mbG9hdDggfCBmbG9hdDgKIG51bWVyaWMgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4 MjQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmljX2Nhc2ggICB8IG1vbmV5CiBu dW1lcmljICAgIHwgbnVtZXJpYyAgICAgICAgICB8ICAgICAxNzAzIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgbnVtZXJpYyAgICAgICAgfCBudW1lcmljCig3IHJvd3MpCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhIQ016ckhPVz13UmU4TDMwck1oQjNzandBdjFM RTkyOEZhN3N4TXUxVHgtZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9udW1lcmljLmMgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwppbmRleCA4OTFhZTZiYTdmZS4uNjVhZjI2ODQ3M2MgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwpAQCAtMTI0NCw3ICsxMjQ0LDggQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FS R1MpCiAJICovCiAJaWYgKE5VTUVSSUNfSVNfU1BFQ0lBTChudW0pKQogCXsKLQkJKHZvaWQpIGFw cGx5X3R5cG1vZF9zcGVjaWFsKG51bSwgdHlwbW9kLCBOVUxMKTsKKwkJaWYgKCFhcHBseV90eXBt b2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CiAJCVBHX1JFVFVSTl9OVU1FUklDKGR1cGxpY2F0ZV9udW1lcmljKG51bSkpOwogCX0K IApAQCAtMTI5NSw4ICsxMjk2LDkgQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5p dF92YXIoJnZhcik7CiAKIAlzZXRfdmFyX2Zyb21fbnVtKG51bSwgJnZhcik7Ci0JKHZvaWQpIGFw cGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIE5VTEwpOwotCW5ldyA9IG1ha2VfcmVzdWx0KCZ2YXIp OworCWlmICghYXBwbHlfdHlwbW9kKCZ2YXIsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJ UEdfUkVUVVJOX05VTEwoKTsKKwluZXcgPSBtYWtlX3Jlc3VsdF9zYWZlKCZ2YXIsIGZjaW5mby0+ Y29udGV4dCk7CiAKIAlmcmVlX3ZhcigmdmFyKTsKIApAQCAtMzAxOCw3ICszMDIwLDEwIEBAIG51 bWVyaWNfbXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTnVtZXJpYwkJbnVtMiA9IFBHX0dFVEFSR19O VU1FUklDKDEpOwogCU51bWVyaWMJCXJlczsKIAotCXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVt MSwgbnVtMiwgTlVMTCk7CisJcmVzID0gbnVtZXJpY19tdWxfc2FmZShudW0xLCBudW0yLCBmY2lu Zm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fTlVNRVJJQyhy ZXMpOwogfQpAQCAtNDM5Miw5ICs0Mzk3LDE1IEBAIG51bWVyaWNfaW50NF9zYWZlKE51bWVyaWMg bnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ0KFBHX0ZVTkNUSU9OX0FS R1MpCiB7CisJaW50MzIJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJ QygwKTsKIAotCVBHX1JFVFVSTl9JTlQzMihudW1lcmljX2ludDRfc2FmZShudW0sIE5VTEwpKTsK KwlyZXN1bHQgPSBudW1lcmljX2ludDRfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlp ZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdf UkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9JTlQzMihyZXN1bHQpOwogfQogCiAvKgpAQCAt NDQ2Miw5ICs0NDczLDE1IEBAIG51bWVyaWNfaW50OF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICpl c2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50 NjQJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBH X1JFVFVSTl9JTlQ2NChudW1lcmljX2ludDhfc2FmZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBu dW1lcmljX2ludDhfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHko U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwo KTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCiAKQEAgLTQ0ODgsMTEgKzQ1MDUs MTEgQEAgbnVtZXJpY19pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKE5VTUVSSUNfSVNfU1BF Q0lBTChudW0pKQogCXsKIAkJaWYgKE5VTUVSSUNfSVNfTkFOKG51bSkpCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBOYU4gdG8gJXMiLCAic21hbGxpbnQiKSkpOwogCQllbHNlCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBpbmZpbml0eSB0byAlcyIsICJzbWFsbGludCIpKSk7CiAJfQpAQCAtNDUwMSwxMiAr NDUxOCwxMiBAQCBudW1lcmljX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAlpbml0X3Zhcl9mcm9t X251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJpY3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0J CWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAogCWlmICh1bmxpa2VseSh2YWwgPCBQ R19JTlQxNl9NSU4pIHx8IHVubGlrZWx5KHZhbCA+IFBHX0lOVDE2X01BWCkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21h bGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtNDU3MSwxMCArNDU4OCwxNCBAQCBudW1lcmlj X2Zsb2F0OChQR19GVU5DVElPTl9BUkdTKQogCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVj dEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVt KG51bSkpKTsKLQotCXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ4aW4sIENTdHJp bmdHZXREYXR1bSh0bXApKTsKLQotCXBmcmVlKHRtcCk7CisJaWYgKCFEaXJlY3RJbnB1dEZ1bmN0 aW9uQ2FsbFNhZmUoZmxvYXQ4aW4sIHRtcCwKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAtMSwKKwkJ CQkJCQkJCSAoTm9kZSAqKSBmY2luZm8tPmNvbnRleHQsCisJCQkJCQkJCQkgJnJlc3VsdCkpCisJ eworCQlwZnJlZSh0bXApOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9E QVRVTShyZXN1bHQpOwogfQpAQCAtNDY2Niw3ICs0Njg3LDE0IEBAIG51bWVyaWNfZmxvYXQ0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2Fs bDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKIAot CXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ0aW4sIENTdHJpbmdHZXREYXR1bSh0 bXApKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDRpbiwgdG1wLAor CQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZjaW5mby0+Y29u dGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJCVBHX1JFVFVS Tl9OVUxMKCk7CisJfQogCiAJcGZyZWUodG1wKTsKIAotLSAKMi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4t714 RnJvbSA0MjM2NjQ4YjExOWE5MTliODFhMDgzN2Q5MzA0OWY1ZTgxMmRlNzQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjI6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwOS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaWdpbnQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnYmlnaW50Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBw cm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGJpZ2ludCAgICAgfCBzbWFsbGludCAgICAgICAgIHwgICAgICA3MTQgfCBhICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpbnQ4MiAgICAgICAgfCBpbnQyCiBiaWdpbnQgICAgIHwgaW50ZWdlciAg ICAgICAgICB8ICAgICAgNDgwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50ODQgICAg ICAgIHwgaW50NAogYmlnaW50ICAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgIDY1MiB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9mICAgICAgICB8IGZsb2F0NAogYmlnaW50ICAg ICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDQ4MiB8IGkgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGk4dG9kICAgICAgICB8IGZsb2F0OAogYmlnaW50ICAgICB8IG51bWVyaWMgICAgICAgICAg fCAgICAgMTc4MSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfbnVtZXJpYyB8IG51 bWVyaWMKIGJpZ2ludCAgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4MTIgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCBpbnQ4X2Nhc2ggICAgfCBtb25leQogYmlnaW50ICAgICB8IG9p ZCAgICAgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4 dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3Byb2MgICAgICAgICAgfCAgICAgMTI4 NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50 ICAgICB8IHJlZ3Byb2NlZHVyZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ29wZXIgICAgICAgICAg fCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9p ZAogYmlnaW50ICAgICB8IHJlZ29wZXJhdG9yICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NsYXNz ICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQg ICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbGxhdGlvbiAgICAgfCAgICAgMTI4NyB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8 IHJlZ3R5cGUgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbmZpZyAgICAgICAgfCAgICAg MTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmln aW50ICAgICB8IHJlZ2RpY3Rpb25hcnkgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3JvbGUgICAgICAg ICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8 IG9pZAogYmlnaW50ICAgICB8IHJlZ25hbWVzcGFjZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2Rh dGFiYXNlICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9v aWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAgNjM2OSB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfYnl0ZWEgICB8IGJ5dGVhCiBiaWdpbnQg ICAgIHwgYml0ICAgICAgICAgICAgICB8ICAgICAyMDc1IHwgZSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgYml0ZnJvbWludDggIHwgYml0CigyMSByb3dzKQoKYWxyZWFkeSBlcnJvciBzYWZlOiBp OHRvZiwgaTh0b2QsIGludDhfbnVtZXJpYywgaW50OF9ieXRlYSwgYml0ZnJvbWludDgKZGlzY3Vz c2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZp c2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGls cy9hZHQvaW50OC5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggZDQ1MDkyMDYyMTcuLjQ1NDJk MjM5YzVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEyNTEsNyArMTI1MSw3IEBAIGludDg0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAogCWlm ICh1bmxpa2VseShhcmcgPCBQR19JTlQzMl9NSU4pIHx8IHVubGlrZWx5KGFyZyA+IFBHX0lOVDMy X01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0 dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMjcyLDcgKzEy NzIsNyBAQCBpbnQ4MihQR19GVU5DVElPTl9BUkdTKQogCWludDY0CQlhcmcgPSBQR19HRVRBUkdf SU5UNjQoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnIDwgUEdfSU5UMTZfTUlOKSB8fCB1bmxpa2Vs eShhcmcgPiBQR19JTlQxNl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTEzNTUsNyArMTM1NSw3IEBAIGk4dG9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2 NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IDApIHx8 IHVubGlrZWx5KGFyZyA+IFBHX1VJTlQzMl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0 dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coIk9JRCBvdXQgb2YgcmFuZ2Ui KSkpOwogCi0tIAoyLjM0LjEKCg== --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4ta15 RnJvbSBkNWU5NmMyMmYyNThkMmZmMDQyZmQ0NTk3MWE2NDExMDQ1ZTkzM2U3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjA6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwOC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlZ2VyIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVnZXIn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAg IGNhc3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAg IHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogaW50ZWdlciAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgIDQ4MSB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGludDQ4ICAgICAgICB8IGludDgKIGludGVnZXIgICAgfCBzbWFsbGlu dCAgICAgICAgIHwgICAgICAzMTQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpNHRvaTIg ICAgICAgfCBpbnQyCiBpbnRlZ2VyICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAgMzE4IHwg aSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTR0b2YgICAgICAgIHwgZmxvYXQ0CiBpbnRlZ2Vy ICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzE2IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgaTR0b2QgICAgICAgIHwgZmxvYXQ4CiBpbnRlZ2VyICAgIHwgbnVtZXJpYyAgICAgICAg ICB8ICAgICAxNzQwIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50NF9udW1lcmljIHwg bnVtZXJpYwogaW50ZWdlciAgICB8IG1vbmV5ICAgICAgICAgICAgfCAgICAgMzgxMSB8IGEgICAg ICAgICAgIHwgZiAgICAgICAgICB8IGludDRfY2FzaCAgICB8IG1vbmV5CiBpbnRlZ2VyICAgIHwg Ym9vbGVhbiAgICAgICAgICB8ICAgICAyNTU3IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwg aW50NF9ib29sICAgIHwgYm9vbAogaW50ZWdlciAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAg NjM2OCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDRfYnl0ZWEgICB8IGJ5dGVhCiBp bnRlZ2VyICAgIHwgImNoYXIiICAgICAgICAgICB8ICAgICAgIDc4IHwgZSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaTR0b2NoYXIgICAgIHwgY2hhcgogaW50ZWdlciAgICB8IGJpdCAgICAgICAg ICAgICAgfCAgICAgMTY4MyB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdGZyb21pbnQ0 ICB8IGJpdAooMTAgcm93cykKCm9ubHkgaW50NF9jYXNoLCBpNHRvaTIsIGk0dG9jaGFyIG5lZWQg dGFrZSBjYXJlIG9mIGVycm9yIGhhbmRsaW5nLiAgYnV0IHN1cHBvcnQKZm9yIGNhc2ggZGF0YSB0 eXBlIGlzIG5vdCBlYXN5LCBzbyBvbmx5IGk0dG9pMiwgaTR0b2NoYXIgZnVuY3Rpb24gcmVmYWN0 b3JpbmcuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZh LWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMgfCAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQv aW50LmMgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2NoYXIuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXggM2U0ZGVmNjhmZTQuLjY5ODg2MzkyNGVlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5Miw3ICsxOTIsNyBAQCBpNHRvY2hhcihQR19GVU5DVElP Tl9BUkdTKQogCWludDMyCQlhcmcxID0gUEdfR0VUQVJHX0lOVDMyKDApOwogCiAJaWYgKGFyZzEg PCBTQ0hBUl9NSU4gfHwgYXJnMSA+IFNDSEFSX01BWCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5kZXggZDIzMDI2MjY1ODUuLjJkMTI0MTcyYzZm IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNTAsNyArMzUwLDcgQEAgaTR0b2kyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRBUkdfSU5UMzIoMCk7CiAKIAlpZiAodW5saWtl bHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2VseShhcmcxID4gU0hSVF9NQVgpKQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2co InNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4td16 RnJvbSA4ZDBhMTZhY2E5NzhiNDNkMjRlNDY2OTFlMWRjMjZmMGRjMmU0YmJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MDM6MDYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBtYWNhZGRyOCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J21hY2FkZHI4 Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgIHBy b3NyYyAgICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t CiBtYWNhZGRyOCAgIHwgbWFjYWRkciAgICB8ICAgICA0MTI0IHwgaSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgbWFjYWRkcjh0b21hY2FkZHIgfCBtYWNhZGRyCigxIHJvdykKCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L21hYzguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IGMxYmY5ZmQ1NzgzLi4wNDI1ZWE0NzNhNSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUwLDcgQEAgbWFjYWRkcjh0b21hY2FkZHIoUEdf RlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBwYWxsb2MwX29iamVjdChtYWNhZGRyKTsKIAogCWlm ICgoYWRkci0+ZCAhPSAweEZGKSB8fCAoYWRkci0+ZSAhPSAweEZFKSkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJtYWNhZGRy OCBkYXRhIG91dCBvZiByYW5nZSB0byBjb252ZXJ0IHRvIG1hY2FkZHIiKSwKIAkJCQkgZXJyaGlu dCgiT25seSBhZGRyZXNzZXMgdGhhdCBoYXZlIEZGIGFuZCBGRSBhcyB2YWx1ZXMgaW4gdGhlICIK LS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4tg17 RnJvbSA4OGYxZjM2M2I4ODYwNjgxMDNiNDY1NjY5YzdjYmEwZTQ3NjZkNWU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6Mjg6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwNi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbmV0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2luZXQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9z cmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBp bmV0ICAgICAgIHwgY2lkciAgICAgICAgICAgICAgfCAgICAgMTcxNSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGluZXRfdG9fY2lkciB8IGNpZHIKIGluZXQgICAgICAgfCB0ZXh0ICAgICAg ICAgICAgICB8ICAgICAgNzMwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19z aG93IHwgdGV4dAogaW5ldCAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA3MzAgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCBuZXR3b3JrX3Nob3cgfCB0ZXh0CiBpbmV0ICAgICAg IHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAg ICB8IG5ldHdvcmtfc2hvdyB8IHRleHQKKDQgcm93cykKCmluZXRfdG9fY2lkciBpcyBhbHJlYWR5 IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFK Zlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQot LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpp bmRleCAzYTIwMDIwOTdkZC4uYzdlMDgyODc2NGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpA QCAtMTEzNyw3ICsxMTM3LDcgQEAgbmV0d29ya19zaG93KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlp ZiAocGdfaW5ldF9uZXRfbnRvcChpcF9mYW1pbHkoaXApLCBpcF9hZGRyKGlwKSwgaXBfbWF4Yml0 cyhpcCksCiAJCQkJCQkgdG1wLCBzaXplb2YodG1wKSkgPT0gTlVMTCkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OKSwKIAkJCQkgZXJybXNnKCJjb3Vs ZCBub3QgZm9ybWF0IGluZXQgdmFsdWU6ICVtIikpKTsKIAotLSAKMi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Disposition: attachment; filename="v17-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4tj18 RnJvbSAyNjAxZDNiNzM5ZDVjYmU3YTQ3OGRkOWFjNTNiMWU3NTM4ODA2NDRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MTM6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwNS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdmFyeWluZyB0byBvdGhl cgogdHlwZXMgcGVyIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFy Z2V0OjpyZWd0eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMgYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQKKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSAnY2hhcmFjdGVyIHZhcnlpbmcnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0 eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAgIHwgICAgY2FzdHRhcmdldCAgICAgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCiBjaGFyYWN0ZXIgdmFy eWluZyB8IHJlZ2NsYXNzICAgICAgICAgIHwgICAgIDEwNzkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCB0ZXh0X3JlZ2NsYXNzIHwgcmVnY2xhc3MKIGNoYXJhY3RlciB2YXJ5aW5nIHwgImNo YXIiICAgICAgICAgICAgfCAgICAgIDk0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRl eHRfY2hhciAgICAgfCBjaGFyCiBjaGFyYWN0ZXIgdmFyeWluZyB8IG5hbWUgICAgICAgICAgICAg IHwgICAgIDE0MDAgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X25hbWUgICAgIHwg bmFtZQogY2hhcmFjdGVyIHZhcnlpbmcgfCB4bWwgICAgICAgICAgICAgICB8ICAgICAyODk2IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgICB8IHhtbAogY2hhcmFjdGVy IHZhcnlpbmcgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNjY5IHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgdmFyY2hhciAgICAgICB8IHZhcmNoYXIKKDUgcm93cykKCnRleHR0b3htbCwg dGV4dF9yZWdjbGFzcyB3YXMgcmVmYWN0b3JlZCBhcyBlcnJvciBzYWZlIGluIHByaW9yIHBhdGNo Lgp0ZXh0X2NoYXIsIHRleHRfbmFtZSBpcyBhbHJlYWR5IGVycm9yIHNhZmUuCnNvIGhlcmUgd2Ug b25seSBuZWVkIGhhbmRsZSBmdW5jdGlvbiAidmFyY2hhciIuCgpkaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2 NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFy LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCA2ZjA4Mzk3M2ZlNy4uYTYyZTU1ZWVjMTkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM0LDcgKzYzNCw3IEBAIHZhcmNoYXIoUEdfRlVO Q1RJT05fQVJHUykKIAl7CiAJCWZvciAoaSA9IG1heG1ibGVuOyBpIDwgbGVuOyBpKyspCiAJCQlp ZiAoc19kYXRhW2ldICE9ICcgJykKLQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJIGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9y IHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoJWQpIiwKIAkJCQkJCQkJbWF4bGVuKSkpOwotLSAKMi4z NC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4tl19 RnJvbSAxOTMyNmQyNjk1OTZhNjJjMjNhYWM5MjM3YmEzYzc1YmFkOWI0NjNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MzE6MTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0ZXh0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ3RleHQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAg fCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogdGV4dCAgICAgICB8 IHJlZ2NsYXNzICAgfCAgICAgMTA3OSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRf cmVnY2xhc3MgfCByZWdjbGFzcwogdGV4dCAgICAgICB8ICJjaGFyIiAgICAgfCAgICAgIDk0NCB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgICAgfCBjaGFyCiB0ZXh0ICAg ICAgIHwgbmFtZSAgICAgICB8ICAgICAgNDA3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwg dGV4dF9uYW1lICAgICB8IG5hbWUKIHRleHQgICAgICAgfCB4bWwgICAgICAgIHwgICAgIDI4OTYg fCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICAgIHwgeG1sCig0IHJvd3Mp CgphbHJlYWR5IGVycm9yIHNhZmU6IHRleHRfbmFtZSwgdGV4dF9jaGFyLgp0ZXh0dG94bWwgaXMg cmVmYWN0b3JlZCBpbiBjaGFyYWN0ZXIgdHlwZSBlcnJvciBzYWZlIHBhdGNoLgoKZGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tR OGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jIHwgMTMgKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC92YXJsZW5hLmMgfCAxMCArKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwu YyAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCB8ICA2ICsrKysK IHNyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaCAgICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQs IDczIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5j CmluZGV4IGMzYjc5YTJiYTQ4Li5lYTk5NjEyMWIwNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5j CkBAIC00NDAsNiArNDQwLDE2IEBAIE9pZAogUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0 IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJCQkJCQkgdWludDMyIGZs YWdzLAogCQkJCQkJIFJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxsYmFjaywgdm9pZCAqY2Fs bGJhY2tfYXJnKQoreworCXJldHVybiBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRTYWZlKHJlbGF0 aW9uLCBsb2NrbW9kZSwgZmxhZ3MsCisJCQkJCQkJCQkJY2FsbGJhY2ssIGNhbGxiYWNrX2FyZywK KwkJCQkJCQkJCQlOVUxMKTsKK30KKworT2lkCitSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRTYWZl KGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsIHVpbnQzMiBmbGFn cywKKwkJCQkJCQkgUmFuZ2VWYXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpjYWxs YmFja19hcmcsCisJCQkJCQkJIE5vZGUgKmVzY29udGV4dCkKIHsKIAl1aW50NjQJCWludmFsX2Nv dW50OwogCU9pZAkJCXJlbElkOwpAQCAtNDU2LDcgKzQ2Niw3IEBAIFJhbmdlVmFyR2V0UmVsaWRF eHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAogCWlm IChyZWxhdGlvbi0+Y2F0YWxvZ25hbWUpCiAJewogCQlpZiAoc3RyY21wKHJlbGF0aW9uLT5jYXRh bG9nbmFtZSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSkgIT0gMCkKLQkJCWVyZXBv cnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjcm9zcy1k YXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IFwiJXMuJXMuJXNcIiIsCiAJ CQkJCQkJcmVsYXRpb24tPmNhdGFsb2duYW1lLCByZWxhdGlvbi0+c2NoZW1hbmFtZSwKQEAgLTUx Myw3ICs1MjMsNyBAQCBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJl bGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJCQkJICogcmV0dXJuIEludmFsaWRPaWQuCiAJ CQkJCSAqLwogCQkJCQlpZiAobmFtZXNwYWNlSWQgIT0gbXlUZW1wTmFtZXNwYWNlKQotCQkJCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAogCQkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEFCTEVfREVGSU5JVElPTiksCiAJCQkJCQkJ CSBlcnJtc2coInRlbXBvcmFyeSB0YWJsZXMgY2Fubm90IHNwZWNpZnkgYSBzY2hlbWEgbmFtZSIp KSk7CiAJCQkJfQpAQCAtNTkzLDEzICs2MDMsMjMgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVk KGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJCXsKIAkJCWlu dAkJCWVsZXZlbCA9IChmbGFncyAmIFJWUl9TS0lQX0xPQ0tFRCkgPyBERUJVRzEgOiBFUlJPUjsK IAotCQkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQotCQkJCWVyZXBvcnQoZWxldmVsLAorCQkJ aWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lICYmIGVsZXZlbCA9PSBERUJVRzEpCisJCQkJZXJlcG9y dChERUJVRzEsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCiAJ CQkJCQkgZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlcy4lc1wi IiwKIAkJCQkJCQkJcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1lKSkpOwot CQkJZWxzZQotCQkJCWVyZXBvcnQoZWxldmVsLAorCQkJZWxzZSBpZiAocmVsYXRpb24tPnNjaGVt YW5hbWUgJiYgZWxldmVsID09IEVSUk9SKQorCQkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlk T2lkLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJCQll cnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzLiVzXCIiLAorCQkJ CQkJCSAgIHJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVsbmFtZSkpOworCQkJZWxz ZSBpZiAoZWxldmVsID09IERFQlVHMSkKKwkJCQllcmVwb3J0KERFQlVHMSwKKwkJCQkJCWVycmNv ZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJTEFCTEUpLAorCQkJCQkJZXJybXNnKCJjb3VsZCBub3Qg b2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCQkgICByZWxhdGlvbi0+cmVs bmFtZSkpOworCQkJZWxzZSBpZiAoZWxldmVsID09IEVSUk9SKQorCQkJCWVyZXR1cm4oZXNjb250 ZXh0LCBJbnZhbGlkT2lkLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJTEFC TEUpLAogCQkJCQkJIGVycm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9uIFwi JXNcIiIsCiAJCQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSkpOwpAQCAtNjI2LDEzICs2NDYsMjMg QEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9D S01PREUgbG9ja21vZGUsCiAJewogCQlpbnQJCQllbGV2ZWwgPSBtaXNzaW5nX29rID8gREVCVUcx IDogRVJST1I7CiAKLQkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQotCQkJZXJlcG9ydChlbGV2 ZWwsCisJCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSAmJiBlbGV2ZWwgPT0gREVCVUcxKQorCQkJ ZXJlcG9ydChERUJVRzEsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX1RBQkxFKSwK IAkJCQkJIGVycm1zZygicmVsYXRpb24gXCIlcy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJ CQlyZWxhdGlvbi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJlbG5hbWUpKSk7Ci0JCWVsc2UKLQkJ CWVyZXBvcnQoZWxldmVsLAorCQllbHNlIGlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSAmJiBlbGV2 ZWwgPT0gRVJST1IpCisJCQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9UQUJMRSksCisJCQkJCWVycm1zZygicmVsYXRpb24gXCIl cy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCSAgIHJlbGF0aW9uLT5zY2hlbWFuYW1lLCBy ZWxhdGlvbi0+cmVsbmFtZSkpOworCQllbHNlIGlmIChlbGV2ZWwgPT0gREVCVUcxKQorCQkJZXJl cG9ydChERUJVRzEsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfVEFCTEUpLAorCQkJ CQllcnJtc2coInJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkgICByZWxh dGlvbi0+cmVsbmFtZSkpOworCQllbHNlIGlmIChlbGV2ZWwgPT0gRVJST1IpCisJCQllcmV0dXJu KGVzY29udGV4dCwgSW52YWxpZE9pZCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURf VEFCTEUpLAogCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAog CQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSkpOwpAQCAtMzYyMiw2ICszNjUyLDEyIEBAIGdldF9u YW1lc3BhY2Vfb2lkKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGJvb2wgbWlzc2luZ19vaykKICAqLwog UmFuZ2VWYXIgKgogbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KGNvbnN0IExpc3QgKm5hbWVzKQor eworCXJldHVybiBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3RTYWZlKG5hbWVzLCBOVUxMKTsKK30K KworUmFuZ2VWYXIgKgorbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0U2FmZShjb25zdCBMaXN0ICpu YW1lcywgTm9kZSAqZXNjb250ZXh0KQogewogCVJhbmdlVmFyICAgKnJlbCA9IG1ha2VSYW5nZVZh cihOVUxMLCBOVUxMLCAtMSk7CiAKQEAgLTM2NDAsNyArMzY3Niw3IEBAIG1ha2VSYW5nZVZhckZy b21OYW1lTGlzdChjb25zdCBMaXN0ICpuYW1lcykKIAkJCXJlbC0+cmVsbmFtZSA9IHN0clZhbChs dGhpcmQobmFtZXMpKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJZXJlcG9ydChFUlJPUiwK KwkJCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxMLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCiAJCQkJCSBlcnJtc2coImltcHJvcGVyIHJlbGF0aW9uIG5hbWUgKHRvbyBtYW55 IGRvdHRlZCBuYW1lcyk6ICVzIiwKIAkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmVncHJvYy5jCmluZGV4IGVlMzRkMWQ4NWY4Li42MDRlMTlhMWNiOSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmVncHJvYy5jCkBAIC0xOTAxLDEyICsxOTAxLDE5IEBAIHRleHRfcmVnY2xh c3MoUEdfRlVOQ1RJT05fQVJHUykKIAl0ZXh0CSAgICpyZWxuYW1lID0gUEdfR0VUQVJHX1RFWFRf UFAoMCk7CiAJT2lkCQkJcmVzdWx0OwogCVJhbmdlVmFyICAgKnJ2OworCUxpc3QJICAgKm5hbWVs aXN0OwogCi0JcnYgPSBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3QodGV4dFRvUXVhbGlmaWVkTmFt ZUxpc3QocmVsbmFtZSkpOworCW5hbWVsaXN0ID0gdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3RTYWZl KHJlbG5hbWUsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNp bmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCXJ2ID0gbWFrZVJhbmdlVmFy RnJvbU5hbWVMaXN0U2FmZShuYW1lbGlzdCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9F UlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJ LyogV2UgbWlnaHQgbm90IGV2ZW4gaGF2ZSBwZXJtaXNzaW9ucyBvbiB0aGlzIHJlbGF0aW9uOyBk b24ndCBsb2NrIGl0LiAqLwotCXJlc3VsdCA9IFJhbmdlVmFyR2V0UmVsaWQocnYsIE5vTG9jaywg ZmFsc2UpOwotCisJcmVzdWx0ID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkU2FmZShydiwgTm9M b2NrLCAwLCBOVUxMLCBOVUxMLAorCQkJCQkJCQkJCSAgZmNpbmZvLT5jb250ZXh0KTsKIAlQR19S RVRVUk5fT0lEKHJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC92YXJsZW5hLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCmluZGV4IGNmY2Mz NTU5MmUzLi5mYTM4ZThhNWJiNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zh cmxlbmEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCkBAIC0yNjY4LDYg KzI2NjgsMTIgQEAgbmFtZV90ZXh0KFBHX0ZVTkNUSU9OX0FSR1MpCiAgKi8KIExpc3QgKgogdGV4 dFRvUXVhbGlmaWVkTmFtZUxpc3QodGV4dCAqdGV4dHZhbCkKK3sKKwlyZXR1cm4gdGV4dFRvUXVh bGlmaWVkTmFtZUxpc3RTYWZlKHRleHR2YWwsIE5VTEwpOworfQorCitMaXN0ICoKK3RleHRUb1F1 YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0ICp0ZXh0dmFsLCBOb2RlICplc2NvbnRleHQpCiB7CiAJ Y2hhcgkgICAqcmF3bmFtZTsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CkBAIC0yNjc5LDEyICsy Njg1LDEyIEBAIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpCiAJcmF3bmFt ZSA9IHRleHRfdG9fY3N0cmluZyh0ZXh0dmFsKTsKIAogCWlmICghU3BsaXRJZGVudGlmaWVyU3Ry aW5nKHJhd25hbWUsICcuJywgJm5hbWVsaXN0KSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVy bihlc2NvbnRleHQsIE5JTCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfTkFNRSksCiAJ CQkJIGVycm1zZygiaW52YWxpZCBuYW1lIHN5bnRheCIpKSk7CiAKIAlpZiAobmFtZWxpc3QgPT0g TklMKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGVzY29udGV4dCwgTklMLAogCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9OQU1FKSwKIAkJCQkgZXJybXNnKCJpbnZhbGlkIG5hbWUg c3ludGF4IikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCmluZGV4IDQzMWMwYmNlYTQ0Li44OTBmZDY3NGJk YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtMTA0Myw3ICsxMDQzLDcgQEAgeG1scGFyc2UodGV4dCAq ZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxvcHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3Bh Y2UsIE5vZGUKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQllcmV0dXJuKGVz Y29udGV4dCwgTlVMTAorCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxMLAogCQkJZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQllcnJtc2coInVuc3VwcG9ydGVkIFhNTCBm ZWF0dXJlIiksCiAJCQllcnJkZXRhaWwoIlRoaXMgZnVuY3Rpb25hbGl0eSByZXF1aXJlcyB0aGUg c2VydmVyIHRvIGJlIGJ1aWx0IHdpdGggbGlieG1sIHN1cHBvcnQuIikpOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmgKaW5kZXggMWEyNTk3MzY4NWMuLjE1M2E0MzllMzc0IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmgKQEAgLTEwMyw2ICsxMDMsMTEgQEAgZXh0ZXJuIE9pZAlSYW5nZVZhckdldFJlbGlk RXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJIExPQ0tNT0RFIGxv Y2ttb2RlLCB1aW50MzIgZmxhZ3MsCiAJCQkJCQkJCQkgUmFuZ2VWYXJHZXRSZWxpZENhbGxiYWNr IGNhbGxiYWNrLAogCQkJCQkJCQkJIHZvaWQgKmNhbGxiYWNrX2FyZyk7CitleHRlcm4gT2lkIFJh bmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAorCQkJ CQkJCQkJCUxPQ0tNT0RFIGxvY2ttb2RlLCB1aW50MzIgZmxhZ3MsCisJCQkJCQkJCQkJUmFuZ2VW YXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLAorCQkJCQkJCQkJCXZvaWQgKmNhbGxiYWNrX2Fy ZywKKwkJCQkJCQkJCQlOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIE9pZAlSYW5nZVZhckdldENy ZWF0aW9uTmFtZXNwYWNlKGNvbnN0IFJhbmdlVmFyICpuZXdSZWxhdGlvbik7CiBleHRlcm4gT2lk CVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShSYW5nZVZhciAqcmVsYXRpb24s CiAJCQkJCQkJCQkJCQkgTE9DS01PREUgbG9ja21vZGUsCkBAIC0xNjgsNiArMTczLDcgQEAgZXh0 ZXJuIE9pZAlMb29rdXBDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBjaGFyICpuc3BuYW1lKTsKIGV4 dGVybiB2b2lkIENoZWNrU2V0TmFtZXNwYWNlKE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQpOwog ZXh0ZXJuIE9pZAlRdWFsaWZpZWROYW1lR2V0Q3JlYXRpb25OYW1lc3BhY2UoY29uc3QgTGlzdCAq bmFtZXMsIGNoYXIgKipvYmpuYW1lX3ApOwogZXh0ZXJuIFJhbmdlVmFyICptYWtlUmFuZ2VWYXJG cm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpOworZXh0ZXJuIFJhbmdlVmFyICptYWtlUmFu Z2VWYXJGcm9tTmFtZUxpc3RTYWZlKGNvbnN0IExpc3QgKm5hbWVzLCBOb2RlICplc2NvbnRleHQp OwogZXh0ZXJuIGNoYXIgKk5hbWVMaXN0VG9TdHJpbmcoY29uc3QgTGlzdCAqbmFtZXMpOwogZXh0 ZXJuIGNoYXIgKk5hbWVMaXN0VG9RdW90ZWRTdHJpbmcoY29uc3QgTGlzdCAqbmFtZXMpOwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmggYi9zcmMvaW5jbHVkZS91dGls cy92YXJsZW5hLmgKaW5kZXggNGIzMjU3NGEwNzUuLjViYzc4YWEwMmMwIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvdmFybGVu YS5oCkBAIC0yNyw2ICsyNyw3IEBAIGV4dGVybiBpbnQJdmFyc3RyX2xldmVuc2h0ZWluX2xlc3Nf ZXF1YWwoY29uc3QgY2hhciAqc291cmNlLCBpbnQgc2xlbiwKIAkJCQkJCQkJCQkgIGludCBpbnNf YywgaW50IGRlbF9jLCBpbnQgc3ViX2MsCiAJCQkJCQkJCQkJICBpbnQgbWF4X2QsIGJvb2wgdHJ1 c3RlZCk7CiBleHRlcm4gTGlzdCAqdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QodGV4dCAqdGV4dHZh bCk7CitleHRlcm4gTGlzdCAqdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3RTYWZlKHRleHQgKnRleHR2 YWwsIE5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gYm9vbCBTcGxpdElkZW50aWZpZXJTdHJpbmco Y2hhciAqcmF3c3RyaW5nLCBjaGFyIHNlcGFyYXRvciwKIAkJCQkJCQkJICBMaXN0ICoqbmFtZWxp c3QpOwogZXh0ZXJuIGJvb2wgU3BsaXREaXJlY3Rvcmllc1N0cmluZyhjaGFyICpyYXdzdHJpbmcs IGNoYXIgc2VwYXJhdG9yLAotLSAKMi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4to20 RnJvbSA3MTA5M2U0Zjk2NTlhOTc1MTE4ZjhlMWYzZGFmN2JiZjEzMTQ4OTcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTI6NTI6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwMy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3Rm dW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdjaGFyYWN0 ZXInOjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8 ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgIHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogY2hhcmFjdGVyICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICA0MDEgfCBpICAgICAg ICAgICB8IGYgICAgICAgICAgfCBydHJpbTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCBjaGFy YWN0ZXIgdmFyeWluZyB8ICAgICAgNDAxIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgcnRy aW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgImNoYXIiICAgICAgICAgICAgfCAgICAgIDk0 NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgIHwgY2hhcgogY2hhcmFj dGVyICB8IG5hbWUgICAgICAgICAgICAgIHwgICAgICA0MDkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBicGNoYXJfbmFtZSB8IG5hbWUKIGNoYXJhY3RlciAgfCB4bWwgICAgICAgICAgICAg ICB8ICAgICAyODk2IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgfCB4 bWwKIGNoYXJhY3RlciAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgNjY4IHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgYnBjaGFyICAgICAgfCBicGNoYXIKKDYgcm93cykKCm9ubHkgdGV4 dHRveG1sLCBicGNoYXIoUEdfRlVOQ1RJT05fQVJHUykgbmVlZCB0YWtlIGNhcmUgb2YgZXJyb3Ig aGFuZGxpbmcuCm90aGVyIGZ1bmN0aW9ucyBhbHJlYWR5IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4 alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIu YyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgICAgICAgICAgIHwg MTggKysrKysrKysrKysrLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy94bWwuaCAgICAgICAgICAg ICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCA4NmFiMzcwNGI2 Ni4uMGEyZDI1YzFiNjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NDU0Miw3ICs0NTQyLDcgQEAgRXhlY0V2YWxYbWxFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJF dmFsU3RlcCAqb3ApCiAKIAkJCQkqb3AtPnJlc3ZhbHVlID0gUG9pbnRlckdldERhdHVtKHhtbHBh cnNlKGRhdGEsCiAJCQkJCQkJCQkJCQkJCSB4ZXhwci0+eG1sb3B0aW9uLAotCQkJCQkJCQkJCQkJ CQkgcHJlc2VydmVfd2hpdGVzcGFjZSkpOworCQkJCQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVz cGFjZSwgTlVMTCkpOwogCQkJCSpvcC0+cmVzbnVsbCA9IGZhbHNlOwogCQkJfQogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCBkZjMwNTA5ODEzMC4uNmYwODM5NzNmZTcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtMzA3LDcgKzMwNyw3IEBAIGJwY2hhcihQR19GVU5D VElPTl9BUkdTKQogCQl7CiAJCQlmb3IgKGkgPSBtYXhtYmxlbjsgaSA8IGxlbjsgaSsrKQogCQkJ CWlmIChzW2ldICE9ICcgJykKLQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZv ciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJCQkJbWF4bGVuKSkpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5j CmluZGV4IGY2OWRjNjgyODZjLi40MzFjMGJjZWE0NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtNjU5 LDcgKzY1OSw3IEBAIHRleHR0b3htbChQR19GVU5DVElPTl9BUkdTKQogewogCXRleHQJICAgKmRh dGEgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKIAotCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShk YXRhLCB4bWxvcHRpb24sIHRydWUpKTsKKwlQR19SRVRVUk5fWE1MX1AoeG1scGFyc2UoZGF0YSwg eG1sb3B0aW9uLCB0cnVlLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0xMDI4LDE5ICsx MDI4LDI1IEBAIHhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAKIAogeG1sdHlwZSAqCi14bWxw YXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2Vy dmVfd2hpdGVzcGFjZSkKK3htbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0 aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpCiB7CiAj aWZkZWYgVVNFX0xJQlhNTAogCXhtbERvY1B0cglkb2M7CiAKIAlkb2MgPSB4bWxfcGFyc2UoZGF0 YSwgeG1sb3B0aW9uX2FyZywgcHJlc2VydmVfd2hpdGVzcGFjZSwKLQkJCQkJR2V0RGF0YWJhc2VF bmNvZGluZygpLCBOVUxMLCBOVUxMLCBOVUxMKTsKLQl4bWxGcmVlRG9jKGRvYyk7CisJCQkJCUdl dERhdGFiYXNlRW5jb2RpbmcoKSwgTlVMTCwgTlVMTCwgZXNjb250ZXh0KTsKKwlpZiAoZG9jKQor CQl4bWxGcmVlRG9jKGRvYyk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQlO T19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBOVUxMOworCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxM CisJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCWVycm1zZygi dW5zdXBwb3J0ZWQgWE1MIGZlYXR1cmUiKSwKKwkJCWVycmRldGFpbCgiVGhpcyBmdW5jdGlvbmFs aXR5IHJlcXVpcmVzIHRoZSBzZXJ2ZXIgdG8gYmUgYnVpbHQgd2l0aCBsaWJ4bWwgc3VwcG9ydC4i KSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmggYi9z cmMvaW5jbHVkZS91dGlscy94bWwuaAppbmRleCAwM2FjYjI1NTQ0OS4uNTUzYmRjOTZjM2YgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L3htbC5oCkBAIC03Myw3ICs3Myw3IEBAIGV4dGVybiB4bWx0eXBlICp4bWxjb25jYXQoTGlzdCAq YXJncyk7CiBleHRlcm4geG1sdHlwZSAqeG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAkJCQkJ CSAgIGNvbnN0IERhdHVtICpuYW1lZF9hcmd2YWx1ZSwgY29uc3QgYm9vbCAqbmFtZWRfYXJnbnVs bCwKIAkJCQkJCSAgIGNvbnN0IERhdHVtICphcmd2YWx1ZSwgY29uc3QgYm9vbCAqYXJnbnVsbCk7 Ci1leHRlcm4geG1sdHlwZSAqeG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxv cHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UpOworZXh0ZXJuIHhtbHR5cGUgKnht bHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVz ZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbHBp KGNvbnN0IGNoYXIgKnRhcmdldCwgdGV4dCAqYXJnLCBib29sIGFyZ19pc19udWxsLCBib29sICpy ZXN1bHRfaXNfbnVsbCk7CiBleHRlcm4geG1sdHlwZSAqeG1scm9vdCh4bWx0eXBlICpkYXRhLCB0 ZXh0ICp2ZXJzaW9uLCBpbnQgc3RhbmRhbG9uZSk7CiBleHRlcm4gYm9vbCB4bWxfaXNfZG9jdW1l bnQoeG1sdHlwZSAqYXJnKTsKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4tr21 RnJvbSBhZjc4ZTI0ZDM1MjIzYjJkODRjYmY0YjQxMjYxYjZjNzYwMDk3ODkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6MzM6MDggKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaXQvdmFyYml0IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKd2hlcmUgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlw ZSA9J2JpdCc6OnJlZ3R5cGUgb3IKY2FzdHNvdXJjZTo6cmVndHlwZSA9J3ZhcmJpdCc6OnJlZ3R5 cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSAgfCBjYXN0dGFy Z2V0ICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJpdCAgICAgICAgIHwgYmln aW50ICAgICAgfCAgICAgMjA3NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50 OCB8IGludDgKIGJpdCAgICAgICAgIHwgaW50ZWdlciAgICAgfCAgICAgMTY4NCB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50NCB8IGludDQKIGJpdCAgICAgICAgIHwgYml0ICAg ICAgICAgfCAgICAgMTY4NSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdCAgICAgICB8 IGJpdAogYml0IHZhcnlpbmcgfCBiaXQgdmFyeWluZyB8ICAgICAxNjg3IHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgdmFyYml0ICAgIHwgdmFyYml0Cig0IHJvd3MpCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1 M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92 YXJiaXQuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCmluZGV4IDUwZmZlZTY3OWI5Li4yMjNi MDFmOTMwOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYwpAQCAtNDAxLDcgKzQwMSw3IEBAIGJpdChQ R19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fVkFSQklUX1AoYXJnKTsKIAogCWlmICghaXNF eHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRD SCksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyBsZW5ndGggJWQgZG9lcyBub3QgbWF0Y2ggdHlw ZSBiaXQoJWQpIiwKIAkJCQkJCVZBUkJJVExFTihhcmcpLCBsZW4pKSk7CkBAIC03NTIsNyArNzUy LDcgQEAgdmFyYml0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcp OwogCiAJaWYgKCFpc0V4cGxpY2l0KQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFf UklHSFRfVFJVTkNBVElPTiksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyB0b28gbG9uZyBmb3Ig dHlwZSBiaXQgdmFyeWluZyglZCkiLAogCQkJCQkJbGVuKSkpOwpAQCAtMTU5MSw3ICsxNTkxLDcg QEAgYml0dG9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQg c3RyaW5nIGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihy ZXN1bHQpICogQklUU19QRVJfQllURSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFM VUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTE2NzEsNyArMTY3MSw3IEBAIGJpdHRvaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJ LyogQ2hlY2sgdGhhdCB0aGUgYml0IHN0cmluZyBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAoVkFS QklUTEVOKGFyZykgPiBzaXplb2YocmVzdWx0KSAqIEJJVFNfUEVSX0JZVEUpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiYmln aW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0qs4tu22 RnJvbSBhNjUyZDU4YjMzZjE2MzU5OTg4ZWQwZTE2ODkyNGY5M2JmNTQwOGFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MDg6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBieXRlYSB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l CmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J2J5dGVhJzo6cmVn dHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogYnl0ZWEgICAgICB8IHNtYWxs aW50ICAgfCAgICAgNjM3MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJ5dGVhX2ludDIg fCBpbnQyCiBieXRlYSAgICAgIHwgaW50ZWdlciAgICB8ICAgICA2MzcxIHwgZSAgICAgICAgICAg fCBmICAgICAgICAgIHwgYnl0ZWFfaW50NCB8IGludDQKIGJ5dGVhICAgICAgfCBiaWdpbnQgICAg IHwgICAgIDYzNzIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQ4IHwgaW50 OAooMyByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZ NFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0t CiBzcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ieXRlYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKaW5k ZXggZmQ3NjYyZDQxZWUuLmEwMmIwNTRiODczIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvYnl0ZWEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYwpAQCAtMTI1 NSw3ICsxMjU1LDcgQEAgYnl0ZWFfaW50MihQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sg dGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9m KHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAo RGF0dW0pIDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQllcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKTsKIApAQCAtMTI4MCw3ICsx MjgwLDcgQEAgYnl0ZWFfaW50NChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0 aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3Vs dCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQllcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpOwogCkBAIC0xMzA1LDcgKzEzMDUsNyBA QCBieXRlYV9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBieXRl IGFycmF5IGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChsZW4gPiBzaXplb2YocmVzdWx0KSkKLQkJ ZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJ CQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCWVycm1z ZygiYmlnaW50IG91dCBvZiByYW5nZSIpKTsKIAotLSAKMi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0019-introduce-float8-safe-function.patch" Content-Disposition: attachment; filename="v17-0019-introduce-float8-safe-function.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lu327 RnJvbSA4ODViYmZkYmNiYTY1MWRkOWJlYTdlNzZjOGY2OWY5MDRkZGY5NTY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMiBKYW4gMjAyNiAxNjoxNDoyOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDE5LzIzXSBpbnRyb2R1Y2UgZmxvYXQ4IHNhZmUgZnVuY3Rpb24KCnRoaXMgcGF0Y2ggaW50cm9k dWNlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246CmZsb2F0OF9wbF9zYWZlCmZsb2F0OF9taV9zYWZl CmZsb2F0OF9tdWxfc2FmZQpmbG9hdDhfZGl2X3NhZmUKCnJlZmFjdG9yaW5nIGV4aXN0aW5nIGZ1 bmN0aW9uIGlzIGJlIHRvbyBpbnZhc2l2ZS4gIHRodXMgYWRkIHRoZXNlIG5ldyBmdW5jdGlvbnMu Ckl0J3MgY2xvc2UgdG8gZXhpc3Rpbmcgbm9uLXNhZmUgdmVyc2lvbiBmdW5jdGlvbnMuCgpkaXNj dXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhO Vmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmggfCA3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxv YXQuaAppbmRleCBkMmU5ODk5NjBhNS4uODcyM2I0YzAwYjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMTA5 LDE2ICsxMDksMjQgQEAgZmxvYXQ0X3BsKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQg dmFsMikKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0OAorZmxvYXQ4 X3BsX3NhZmUoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9k ZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJcmVzdWx0OworCisJcmVzdWx0ID0gdmFsMSArIHZh bDI7CisJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNp bmYodmFsMikpCisJeworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1 cm4gMC4wOworCX0KKwlyZXR1cm4gcmVzdWx0OworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0OAog ZmxvYXQ4X3BsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIHsKLQlmbG9h dDgJCXJlc3VsdDsKLQotCXJlc3VsdCA9IHZhbDEgKyB2YWwyOwotCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVy Zmxvd19lcnJvcihOVUxMKTsKLQotCXJldHVybiByZXN1bHQ7CisJcmV0dXJuIGZsb2F0OF9wbF9z YWZlKHZhbDEsIHZhbDIsIE5VTEwpOzsKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDQKQEAgLTEz MywxNiArMTQxLDI0IEBAIGZsb2F0NF9taShjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0 IHZhbDIpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0 OF9taV9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5v ZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCXJlc3VsdCA9IHZhbDEgLSB2 YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlz aW5mKHZhbDIpKQorCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKKwkJcmV0 dXJuIDAuMDsKKwl9CisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdDgK IGZsb2F0OF9taShjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiB7Ci0JZmxv YXQ4CQlyZXN1bHQ7Ci0KLQlyZXN1bHQgPSB2YWwxIC0gdmFsMjsKLQlpZiAodW5saWtlbHkoaXNp bmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoTlVMTCk7Ci0KLQlyZXR1cm4gcmVzdWx0OworCXJldHVybiBmbG9hdDhfbWlf c2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDQKQEAgLTE2 MCwxOSArMTc2LDMzIEBAIGZsb2F0NF9tdWwoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0 NCB2YWwyKQogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0OAotZmxvYXQ4X211bChjb25zdCBmbG9h dDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCitmbG9hdDhfbXVsX3NhZmUoY29uc3QgZmxvYXQ4 IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogewogCWZs b2F0OAkJcmVzdWx0OwogCiAJcmVzdWx0ID0gdmFsMSAqIHZhbDI7CiAJaWYgKHVubGlrZWx5KGlz aW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOworCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0 KTsKKwkJcmV0dXJuIDAuMDsKKwl9CisKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYg dmFsMSAhPSAwLjAgJiYgdmFsMiAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxM KTsKKwl7CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1cm4gMC4w OworCX0KIAogCXJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9h dDhfbXVsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKK3sKKwlyZXR1cm4g ZmxvYXQ4X211bF9zYWZlKHZhbDEsIHZhbDIsIE5VTEwpOworfQorCisKIHN0YXRpYyBpbmxpbmUg ZmxvYXQ0CiBmbG9hdDRfZGl2KGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikK IHsKQEAgLTE5MCwyMSArMjIwLDI4IEBAIGZsb2F0NF9kaXYoY29uc3QgZmxvYXQ0IHZhbDEsIGNv bnN0IGZsb2F0NCB2YWwyKQogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0OAotZmxvYXQ4X2Rpdihj b25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCitmbG9hdDhfZGl2X3NhZmUoY29u c3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0 KQogewogCWZsb2F0OAkJcmVzdWx0OwogCiAJaWYgKHVubGlrZWx5KHZhbDIgPT0gMC4wKSAmJiAh aXNuYW4odmFsMSkpCi0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKE5VTEwpOworCQlmbG9hdF96 ZXJvX2RpdmlkZV9lcnJvcihlc2NvbnRleHQpOwogCXJlc3VsdCA9IHZhbDEgLyB2YWwyOwogCWlm ICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkpCi0JCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOwogCWlm ICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiB2YWwxICE9IDAuMCAmJiAhaXNpbmYodmFsMikp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9y KGVzY29udGV4dCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0 OAorZmxvYXQ4X2Rpdihjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCit7CisJ cmV0dXJuIGZsb2F0OF9kaXZfc2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKK30KKworCiAvKgogICog Um91dGluZXMgZm9yIE5hTi1hd2FyZSBjb21wYXJpc29ucwogICoKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="UTF-8"; name="v17-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch" Content-Disposition: attachment; filename="v17-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lte23 RnJvbSA4ZjI3M2ZhMjc4OGQwZjgxMmUzN2NmYWQ5ZTJlYTUyODZiMjdkYWRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNSBKYW4gMjAyNiAxMzo1NzoxNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDIyLzIzXSBDQVNUKGV4cHIgQVMgbmV3dHlwZSBERUZBVUxUIGV4cHIgT04gQ09OVkVSU0lPTgog RVJST1IpCgojIEJ1bXBzIGNhdHZlcnNpb24gcmVxdWlyZWQKCiogV2l0aCB0aGlzIHBhdGNoc2V0 LCBtb3N0IGZ1bmN0aW9ucyBpbiBwZ19jYXN0LmNhc3RmdW5jIGFyZSBub3cgZXJyb3Itc2FmZS4K KiBDb2VyY2VWaWFJTyBhbmQgQ29lcmNlVG9Eb21haW4gd2VyZSBhbHJlYWR5IGVycm9yLXNhZmUg aW4gdGhlIEhFQUQuCiogdGhpcyBwYXRjaCBleHRlbmRzIGVycm9yLXNhZmUgYmVoYXZpb3IgdG8g QXJyYXlDb2VyY2VFeHByLgoqIFdlIGFsc28gZW5zdXJlIHRoYXQgd2hlbiBhIGNvZXJjaW9uIGZh aWxzLCBleGVjdXRpb24gZmFsbHMgYmFjayB0byBldmFsdWF0aW5nCnRoZSBzcGVjaWZpZWQgZGVm YXVsdCBub2RlLgoqIFRoZSBkb2MgaGFzIGJlZW4gcmVmaW5lZCwgdGhvdWdoIGl0IG1heSBzdGls bCBuZWVkIG1vcmUgcmV2aWV3LgoKZGVtbzoKU0VMRUNUIENBU1QoJzEnIEFTIGRhdGUgIERFRkFV TFQgJzIwMTEtMDEtMDEnIE9OIENPTlZFUlNJT04gRVJST1IpLAogICAgICAgQ0FTVCgnezIzNCxk ZWYsNTY3fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAney0xMDExfScgT04gQ09OVkVS U0lPTiBFUlJPUik7CgogICAgZGF0ZSAgICB8ICBpbnQ0Ci0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IDIwMTEtMDEtMDEgfCB7LTEwMTF9CgpbMF06IGh0dHBzOi8vZ2l0LnBvc3RncmVzcWwub3JnL2Nn aXQvcG9zdGdyZXNxbC5naXQvY29tbWl0Lz9pZD1hYWFmOTQ0OWVjNmJlNjJjYjBkMzBlZDM1ODhk YzM4NGY1NjI3NGIKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpm WTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0t LQogY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dCAgICAgICAgICAgIHwgICA1ICsK IGNvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dCAgICAgICAgICB8ICAgNSArCiBj b250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbCAgICAgICAgICAgICAgICAgfCAgIDIgKwogLi4u L3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0ICAgIHwgIDIzICstCiBjb250 cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbCAgICAgfCAgIDUgKwogZG9jL3Ny Yy9zZ21sL3N5bnRheC5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgIDMzICsKIHNyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICA4NiArLQogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgICAgIHwgIDI5ICsKIHNyYy9iYWNrZW5k L2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICAyNyArCiBzcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgNTMgKysKIHNyYy9iYWNrZW5kL29w dGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgICAgICB8ICA0OSArLQogc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDIzICsKIHNyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfY29lcmNlLmMgICAgICAgICAgICAgfCAgNzcgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMgICAgICAgICAgICAgICB8IDM3OSArKysrKysrLQogc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV90eXBlLmMgICAgICAgICAgICAgICB8ICAxNCArCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheWZ1bmNzLmMgICAgICAgICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC91dGlscy9hZHQv cnVsZXV0aWxzLmMgICAgICAgICAgICAgfCAgMjEgKwogc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9m bWdyLmMgICAgICAgICAgICAgICAgIHwgIDE0ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNF eHByLmggICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRv ci5oICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvZm1nci5oICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAg ICAgICAgICAgICAgICB8ICAyMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAg ICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAg ICAgICAgICAgIHwgIDM2ICsKIHNyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaCAgICAg ICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oICAgICAg ICAgICAgIHwgIDEzICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAgICAg ICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oICAgICAgICAgICAg ICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dCAgICAgICAgICAg IHwgODEwICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVh dGVfY2FzdC5vdXQgICAgIHwgICA1ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZj bGFzcy5vdXQgICAgICB8ICAgNyArCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxl ICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsICAgICAg ICAgICAgICAgICB8IDM1MCArKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nh c3Quc3FsICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2VxdWl2Y2xhc3Mu c3FsICAgICAgICAgICB8ICAgMyArCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAg ICAgICAgICAgICAgfCAgIDIgKwogMzkgZmlsZXMgY2hhbmdlZCwgMjA3NSBpbnNlcnRpb25zKCsp LCA2MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2Nhc3Qub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwv Y2FzdC5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0 IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dAppbmRleCA4YzBiZjU0ZjBmMy4u MzNkYTE5ZDhkZjQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5v dXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dApAQCAtMTAsNiArMTAs MTEgQEAgV0hFUkUgb3BjLm9pZCA+PSAxNjM4NCBBTkQgTk9UIGFtdmFsaWRhdGUob3BjLm9pZCk7 CiAtLS0tLS0tLSstLS0tLS0tLS0KICgwIHJvd3MpCiAKK1NFTEVDVCBDQVNUKCdhYmMnOjpicGNo YXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgor RVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNoYXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZBVUxU IGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IK K0xJTkUgMTogU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBTYWZlIHR5cGUg Y2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAogLS0gVGVz dCB0aGUgb3BlcmF0b3JzIGFuZCBpbmRleGluZyBmdW5jdGlvbnMKIC0tIFRlc3QgPSBhbmQgPD4u CiBTRUxFQ1QgJ2EnOjpjaXRleHQgPSAnYSc6OmNpdGV4dCBBUyB0OwpkaWZmIC0tZ2l0IGEvY29u dHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0IGIvY29udHJpYi9jaXRleHQvZXhwZWN0 ZWQvY2l0ZXh0XzEub3V0CmluZGV4IGM1ZTVmMTgwZjJiLi42NDdlZWExOTE0MiAxMDA2NDQKLS0t IGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CisrKyBiL2NvbnRyaWIvY2l0 ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dApAQCAtMTAsNiArMTAsMTEgQEAgV0hFUkUgb3BjLm9p ZCA+PSAxNjM4NCBBTkQgTk9UIGFtdmFsaWRhdGUob3BjLm9pZCk7CiAtLS0tLS0tLSstLS0tLS0t LS0KICgwIHJvd3MpCiAKK1NFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgY2Fz dCB0eXBlIGNoYXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3Bl Y2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENB U1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJLi4uCisg ICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZp bmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAogLS0gVGVzdCB0aGUgb3BlcmF0b3JzIGFu ZCBpbmRleGluZyBmdW5jdGlvbnMKIC0tIFRlc3QgPSBhbmQgPD4uCiBTRUxFQ1QgJ2EnOjpjaXRl eHQgPSAnYSc6OmNpdGV4dCBBUyB0OwpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvc3FsL2Np dGV4dC5zcWwgYi9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbAppbmRleCBhYTFjZjlhYmQ1 Yy4uOTk3OTQ0OTdkNDcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3Fs CisrKyBiL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsCkBAIC05LDYgKzksOCBAQCBTRUxF Q1QgYW1uYW1lLCBvcGNuYW1lCiBGUk9NIHBnX29wY2xhc3Mgb3BjIExFRlQgSk9JTiBwZ19hbSBh bSBPTiBhbS5vaWQgPSBvcGNtZXRob2QKIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5EIE5PVCBh bXZhbGlkYXRlKG9wYy5vaWQpOwogCitTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4 dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKKwogLS0gVGVzdCB0 aGUgb3BlcmF0b3JzIGFuZCBpbmRleGluZyBmdW5jdGlvbnMKIAogLS0gVGVzdCA9IGFuZCA8Pi4K ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5v dXQgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0CmluZGV4 IDc1Yzg5NmYzODg1Li42ZTY3OTk3ZjBhMiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0 YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dAorKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVt ZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0CkBAIC03Myw2ICs3MywyNSBAQCBTRUxFQ1QgMSBBUyAi aW50IiBPRkZTRVQgMiBGRVRDSCBGSVJTVCAzIFJPVyBPTkxZOwogLS0tLS0KICgwIHJvd3MpCiAK Ky0tZXJyb3Igc2FmZSB0eXBlIGNhc3QKK1NFTEVDVCBDQVNUKCdhJyBBUyBpbnQgREVGQVVMVCAy IE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0tLS0KKyAgICAyCisoMSByb3cpCisK K1NFTEVDVCBDQVNUKCcxMScgQVMgaW50IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyBpbnQ0IAorLS0tLS0tCisgICAxMQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMTInIEFTIG51 bWVyaWMgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworIG51bWVyaWMgCistLS0tLS0t LS0KKyAgICAgIDEyCisoMSByb3cpCisKIC0tIERJU1RJTkNUIGFuZCBPUkRFUiBCWSBwYXR0ZXJu cwogLS0gVHJ5IHNvbWUgcXVlcnkgcGVybXV0YXRpb25zIHdoaWNoIG9uY2UgcHJvZHVjZWQgaWRl bnRpY2FsIHF1ZXJ5IElEcwogU0VMRUNUIERJU1RJTkNUIDEgQVMgImludCI7CkBAIC0yMjIsNiAr MjQxLDggQEAgU0VMRUNUIGNhbGxzLCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0YXRfc3RhdGVtZW50 cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKICAgICAgMiB8ICAgIDIgfCBTRUxFQ1QgJDEg QVMgImludCIgT1JERVIgQlkgMQogICAgICAxIHwgICAgMiB8IFNFTEVDVCAkMSBBUyBpIFVOSU9O IFNFTEVDVCAkMiBPUkRFUiBCWSBpCiAgICAgIDEgfCAgICAxIHwgU0VMRUNUICQxIHx8ICQyCisg ICAgIDIgfCAgICAyIHwgU0VMRUNUIENBU1QoJDEgQVMgaW50IERFRkFVTFQgJDIgT04gQ09OVkVS U0lPTiBFUlJPUikKKyAgICAgMSB8ICAgIDEgfCBTRUxFQ1QgQ0FTVCgkMSBBUyBudW1lcmljIERF RkFVTFQgJDIgT04gQ09OVkVSU0lPTiBFUlJPUikKICAgICAgMiB8ICAgIDIgfCBTRUxFQ1QgRElT VElOQ1QgJDEgQVMgImludCIKICAgICAgMCB8ICAgIDAgfCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1 ZXJ5IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiCiAg ICAgIDEgfCAgICAxIHwgU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBO VUxMIEFTIHQKQEAgLTIzMCw3ICsyNTEsNyBAQCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1ZXJ5IEZS T00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOwogICAgICAg IHwgICAgICB8ICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgfCAgICAgIHwgICBTRUxFQ1Qg ZiBGUk9NIHQgT1JERVIgQlkgZgogICAgICAxIHwgICAgMSB8IHNlbGVjdCAkMTo6anNvbmIgPyAk MgotKDE3IHJvd3MpCisoMTkgcm93cykKIAogU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNl dCgpIElTIE5PVCBOVUxMIEFTIHQ7CiAgdCAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9z dGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3Fs L3NlbGVjdC5zcWwKaW5kZXggMTE2NjJjZGUwOGMuLjdlZTgxNjBmZDg0IDEwMDY0NAotLS0gYS9j b250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbAorKysgYi9jb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbApAQCAtMjUsNiArMjUsMTEgQEAgU0VMRUNU IDEgQVMgImludCIgTElNSVQgMyBPRkZTRVQgMzsKIFNFTEVDVCAxIEFTICJpbnQiIE9GRlNFVCAx IEZFVENIIEZJUlNUIDIgUk9XIE9OTFk7CiBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQgMiBGRVRD SCBGSVJTVCAzIFJPVyBPTkxZOwogCistLWVycm9yIHNhZmUgdHlwZSBjYXN0CitTRUxFQ1QgQ0FT VCgnYScgQVMgaW50IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KCcxMScgQVMgaW50IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KCcxMicgQVMgbnVtZXJpYyBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKIC0tIERJ U1RJTkNUIGFuZCBPUkRFUiBCWSBwYXR0ZXJucwogLS0gVHJ5IHNvbWUgcXVlcnkgcGVybXV0YXRp b25zIHdoaWNoIG9uY2UgcHJvZHVjZWQgaWRlbnRpY2FsIHF1ZXJ5IElEcwogU0VMRUNUIERJU1RJ TkNUIDEgQVMgImludCI7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwgYi9k b2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKaW5kZXggMzRjODM4ODBhNjYuLmQxY2M5MzJmN2IxIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5 bnRheC5zZ21sCkBAIC0yMTA2LDYgKzIxMDYsMTAgQEAgQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHBy ZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPgog ICAgIFRoZSA8bGl0ZXJhbD5DQVNUPC9saXRlcmFsPiBzeW50YXggY29uZm9ybXMgdG8gU1FMOyB0 aGUgc3ludGF4IHdpdGgKICAgICA8bGl0ZXJhbD46OjwvbGl0ZXJhbD4gaXMgaGlzdG9yaWNhbCA8 cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CiAgICAgdXNhZ2UuCisgICAgVGhl IGVxdWl2YWxlbnQgT04gQ09OVkVSU0lPTiBFUlJPUiBiZWhhdmlvciBpczoKKzxzeW5vcHNpcz4K K0NBU1QgKCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNl YWJsZT50eXBlPC9yZXBsYWNlYWJsZT4gRVJST1IgT04gQ09OVkVSU0lPTiBFUlJPUiApCis8L3N5 bm9wc2lzPgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KQEAgLTIxNjAsNiArMjE2NCwzNSBAQCBD QVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFjZWFi bGU+dHlwZTwvcmVwbGFjZWFibGU+CiAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVjYXN0 Ii8+LgogICAgIDwvcGFyYT4KICAgIDwvbm90ZT4KKworIDxzZWN0MyBpZD0ic3FsLXN5bnRheC10 eXBlLWNhc3RzLXNhZmUiPgorICA8dGl0bGU+U2FmZSBUeXBlIENhc3Q8L3RpdGxlPgorICAgPHBh cmE+CisgICAgQSB0eXBlIGNhc3QgbWF5IG9jY2FzaW9uYWxseSBmYWlsLiBUbyBndWFyZCBhZ2Fp bnN0IHN1Y2ggZmFpbHVyZXMsIHlvdSBjYW4KKyAgICBwcm92aWRlIGFuIDxsaXRlcmFsPk9OIENP TlZFUlNJT04gRVJST1I8L2xpdGVyYWw+IGNsYXVzZSB0byBoYW5kbGUgcG90ZW50aWFsIGVycm9y cy4KKyAgICBUaGUgc3ludGF4IGZvciBzYWZlIHR5cGUgY2FzdCBpczoKKzxzeW5vcHNpcz4KK0NB U1QgKCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJs ZT50eXBlPC9yZXBsYWNlYWJsZT4gREVGQVVMVCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVw bGFjZWFibGU+IE9OIENPTlZFUlNJT04gRVJST1IgKQorPC9zeW5vcHNpcz4KKyAgICBJZiB0aGUg dHlwZSBjYXN0IGZhaWxzLCBpbnN0ZWFkIG9mIGVycm9yIG91dCwgZXZhbHVhdGlvbiBmYWxscyBi YWNrIHRvIHRoZQorICAgIGRlZmF1bHQgPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2Vh YmxlPgorICAgIHNwZWNpZmllZCBpbiB0aGUgPGxpdGVyYWw+T04gQ09OVkVSU0lPTiBFUlJPUjwv bGl0ZXJhbD4gY2xhdXNlLgorCisgICAgQXQgcHJlc2VudCwgdGhpcyBvbmx5IHN1cHBvcnQgYnVp bHQtaW4gdHlwZSBjYXN0cywgc2VlIDx4cmVmIGxpbmtlbmQ9ImNhdGFsb2ctcGctY2FzdCIvPi4K KyAgICBVc2VyLWRlZmluZWQgdHlwZSBjYXN0cyBjcmVhdGVkIHdpdGggPGxpbmsgbGlua2VuZD0i c3FsLWNyZWF0ZWNhc3QiPkNSRUFURSBDQVNUPC9saW5rPgorICAgIGFyZSBub3Qgc3VwcG9ydGVk LgorICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICBTb21lIGV4YW1wbGVzOgorPHNjcmVlbj4K K1NFTEVDVCBDQVNUKFRFWFQgJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQgMyBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKzxsaW5lYW5ub3RhdGlvbj5SZXN1bHQ6IDwvbGluZWFubm90YXRpb24+PGNv bXB1dGVyb3V0cHV0PjM8L2NvbXB1dGVyb3V0cHV0PgorU0VMRUNUIENBU1QoVEVYVCAnZXJyb3In IEFTIG51bWVyaWMgREVGQVVMVCAxLjEgT04gQ09OVkVSU0lPTiBFUlJPUik7Cis8bGluZWFubm90 YXRpb24+UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxjb21wdXRlcm91dHB1dD4xLjE8L2NvbXB1 dGVyb3V0cHV0PgorPC9zY3JlZW4+CisgICAgPC9wYXJhPgorICA8L3NlY3QzPgogICA8L3NlY3Qy PgogCiAgIDxzZWN0MiBpZD0ic3FsLXN5bnRheC1jb2xsYXRlLWV4cHJzIj4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwci5jCmluZGV4IGUwYTFmYjc2YWE4Li5kNWNiY2ZiYmVmNiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwci5jCkBAIC05OSw2ICs5OSw5IEBAIHN0YXRpYyB2b2lkIEV4ZWNCdWlsZEFnZ1RyYW5z Q2FsbChFeHByU3RhdGUgKnN0YXRlLCBBZ2dTdGF0ZSAqYWdnc3RhdGUsCiBzdGF0aWMgdm9pZCBF eGVjSW5pdEpzb25FeHByKEpzb25FeHByICpqc2V4cHIsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJ CQkJIERhdHVtICpyZXN2LCBib29sICpyZXNudWxsLAogCQkJCQkJCSBFeHByRXZhbFN0ZXAgKnNj cmF0Y2gpOworc3RhdGljIHZvaWQgRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByKFNhZmVUeXBlQ2Fz dEV4cHIgKnN0Y2V4cHIsIEV4cHJTdGF0ZSAqc3RhdGUsCisJCQkJCQkJCQkgRGF0dW0gKnJlc3Ys IGJvb2wgKnJlc251bGwsCisJCQkJCQkJCQkgRXhwckV2YWxTdGVwICpzY3JhdGNoKTsKIHN0YXRp YyB2b2lkIEV4ZWNJbml0SnNvbkNvZXJjaW9uKEV4cHJTdGF0ZSAqc3RhdGUsIEpzb25SZXR1cm5p bmcgKnJldHVybmluZywKIAkJCQkJCQkJIEVycm9yU2F2ZUNvbnRleHQgKmVzY29udGV4dCwgYm9v bCBvbWl0X3F1b3RlcywKIAkJCQkJCQkJIGJvb2wgZXhpc3RzX2NvZXJjZSwKQEAgLTE0MSw2ICsx NDQsMTkgQEAgc3RhdGljIHZvaWQgRXhlY0luaXRKc29uQ29lcmNpb24oRXhwclN0YXRlICpzdGF0 ZSwgSnNvblJldHVybmluZyAqcmV0dXJuaW5nLAogICovCiBFeHByU3RhdGUgKgogRXhlY0luaXRF eHByKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KQoreworCXJldHVybiBFeGVjSW5pdEV4 cHJFeHRlbmRlZChub2RlLCBOVUxMLCBwYXJlbnQpOworfQorCisvKgorICogRXhlY0luaXRFeHBy RXh0ZW5kZWQ6IHNvZnQgZXJyb3IgdmFyaWFudCBvZiBFeGVjSW5pdEV4cHIuCisgKgorICogZXNj b250ZXh0IGlzIGV4cGVjdGVkIHRvIGJlIG5vbi1OVUxMIG9ubHkgZm9yIGV4cHJlc3Npb24gbm9k ZXMgdGhhdCBzdXBwb3J0CisgKiBzb2Z0IGVycm9ycy4KKyAqIE5vdCBhbGwgZXhwcmVzc2lvbiBu b2RlcyBzdXBwb3J0IHRoaXM7IGlmIGluIGRvdWJ0LCBwYXNzIE5VTEwuCisgKi8KK0V4cHJTdGF0 ZSAqCitFeGVjSW5pdEV4cHJFeHRlbmRlZChFeHByICpub2RlLCBOb2RlICplc2NvbnRleHQsIFBs YW5TdGF0ZSAqcGFyZW50KQogewogCUV4cHJTdGF0ZSAgKnN0YXRlOwogCUV4cHJFdmFsU3RlcCBz Y3JhdGNoID0gezB9OwpAQCAtMTU0LDYgKzE3MCw3IEBAIEV4ZWNJbml0RXhwcihFeHByICpub2Rl LCBQbGFuU3RhdGUgKnBhcmVudCkKIAlzdGF0ZS0+ZXhwciA9IG5vZGU7CiAJc3RhdGUtPnBhcmVu dCA9IHBhcmVudDsKIAlzdGF0ZS0+ZXh0X3BhcmFtcyA9IE5VTEw7CisJc3RhdGUtPmVzY29udGV4 dCA9IChFcnJvclNhdmVDb250ZXh0ICopIGVzY29udGV4dDsKIAogCS8qIEluc2VydCBzZXR1cCBz dGVwcyBhcyBuZWVkZWQgKi8KIAlFeGVjQ3JlYXRlRXhwclNldHVwU3RlcHMoc3RhdGUsIChOb2Rl ICopIG5vZGUpOwpAQCAtMTcwMSw2ICsxNzE4LDcgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5v ZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAKIAkJCQllbGVtc3RhdGUtPmlubmVybW9zdF9jYXNldmFs ID0gcGFsbG9jX29iamVjdChEYXR1bSk7CiAJCQkJZWxlbXN0YXRlLT5pbm5lcm1vc3RfY2FzZW51 bGwgPSBwYWxsb2Nfb2JqZWN0KGJvb2wpOworCQkJCWVsZW1zdGF0ZS0+ZXNjb250ZXh0ID0gc3Rh dGUtPmVzY29udGV4dDsKIAogCQkJCUV4ZWNJbml0RXhwclJlYyhhY29lcmNlLT5lbGVtZXhwciwg ZWxlbXN0YXRlLAogCQkJCQkJCQkmZWxlbXN0YXRlLT5yZXN2YWx1ZSwgJmVsZW1zdGF0ZS0+cmVz bnVsbCk7CkBAIC0yMTc2LDYgKzIxOTQsMTUgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUs IEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX1NhZmVUeXBl Q2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwciA9IGNhc3ROb2Rl KFNhZmVUeXBlQ2FzdEV4cHIsIG5vZGUpOworCisJCQkJRXhlY0luaXRTYWZlVHlwZUNhc3RFeHBy KHN0Y2V4cHIsIHN0YXRlLCByZXN2LCByZXNudWxsLCAmc2NyYXRjaCk7CisKKwkJCQlicmVhazsK KwkJCX0KKwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJewogCQkJCUNvYWxlc2NlRXhwciAq Y29hbGVzY2UgPSAoQ29hbGVzY2VFeHByICopIG5vZGU7CkBAIC0yNzM2LDcgKzI3NjMsNyBAQCBF eGVjSW5pdEZ1bmMoRXhwckV2YWxTdGVwICpzY3JhdGNoLCBFeHByICpub2RlLCBMaXN0ICphcmdz LCBPaWQgZnVuY2lkLAogCiAJLyogSW5pdGlhbGl6ZSBmdW5jdGlvbiBjYWxsIHBhcmFtZXRlciBz dHJ1Y3R1cmUgdG9vICovCiAJSW5pdEZ1bmN0aW9uQ2FsbEluZm9EYXRhKCpmY2luZm8sIGZsaW5m bywKLQkJCQkJCQkgbmFyZ3MsIGlucHV0Y29sbGlkLCBOVUxMLCBOVUxMKTsKKwkJCQkJCQkgbmFy Z3MsIGlucHV0Y29sbGlkLCAoTm9kZSAqKSBzdGF0ZS0+ZXNjb250ZXh0LCBOVUxMKTsKIAogCS8q IEtlZXAgZXh0cmEgY29waWVzIG9mIHRoaXMgaW5mbyB0byBzYXZlIGFuIGluZGlyZWN0aW9uIGF0 IHJ1bnRpbWUgKi8KIAlzY3JhdGNoLT5kLmZ1bmMuZm5fYWRkciA9IGZsaW5mby0+Zm5fYWRkcjsK QEAgLTQ3MzMsNiArNDc2MCw2MyBAQCBFeGVjQnVpbGRQYXJhbVNldEVxdWFsKFR1cGxlRGVzYyBk ZXNjLAogCXJldHVybiBzdGF0ZTsKIH0KIAorLyoKKyAqIFB1c2ggc3RlcHMgdG8gZXZhbHVhdGUg YSBTYWZlVHlwZUNhc3RFeHByIGFuZCBpdHMgdmFyaW91cyBzdWJzaWRpYXJ5CisgKiBleHByZXNz aW9ucy4KKyAqLworc3RhdGljIHZvaWQKK0V4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihTYWZlVHlw ZUNhc3RFeHByICpzdGNleHByLCBFeHByU3RhdGUgKnN0YXRlLAorCQkJCQkJIERhdHVtICpyZXN2 LCBib29sICpyZXNudWxsLAorCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCkKK3sKKwkvKgor CSAqIElmIHdlIGNhbm5vdCBjb2VyY2UgdG8gdGhlIHRhcmdldCB0eXBlLCBmYWxsYmFjayB0byB0 aGUgREVGQVVMVAorCSAqIGV4cHJlc3Npb24gc3BlY2lmaWVkIGluIE9OIENPTlZFUlNJT04gRVJS T1IgY2xhdXNlLCBhbmQgd2UgYXJlIGRvbmUuCisJICovCisJaWYgKHN0Y2V4cHItPmNhc3RfZXhw ciA9PSBOVUxMKQorCXsKKwkJRXhlY0luaXRFeHByUmVjKChFeHByICopIHN0Y2V4cHItPmRlZmF1 bHRfZXhwciwKKwkJCQkJCXN0YXRlLCByZXN2LCByZXNudWxsKTsKKwkJcmV0dXJuOworCX0KKwll bHNlCisJeworCQlTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGU7CisKKwkJc3Rjc3RhdGUgPSBw YWxsb2MwKHNpemVvZihTYWZlVHlwZUNhc3RTdGF0ZSkpOworCQlzdGNzdGF0ZS0+c3RjZXhwciA9 IHN0Y2V4cHI7CisJCXN0Y3N0YXRlLT5lc2NvbnRleHQudHlwZSA9IFRfRXJyb3JTYXZlQ29udGV4 dDsKKwkJc3RhdGUtPmVzY29udGV4dCA9ICZzdGNzdGF0ZS0+ZXNjb250ZXh0OworCisJCS8qIGV2 YWx1YXRlIGFyZ3VtZW50IGV4cHJlc3Npb24gaW50byBzdGVwJ3MgcmVzdWx0IGFyZWEgKi8KKwkJ RXhlY0luaXRFeHByUmVjKChFeHByICopIHN0Y2V4cHItPmNhc3RfZXhwciwKKwkJCQkJCXN0YXRl LCByZXN2LCByZXNudWxsKTsKKwkJc2NyYXRjaC0+b3Bjb2RlID0gRUVPUF9TQUZFVFlQRV9DQVNU OworCQlzY3JhdGNoLT5kLnN0Y2V4cHIuc3Rjc3RhdGUgPSBzdGNzdGF0ZTsKKwkJRXhwckV2YWxQ dXNoU3RlcChzdGF0ZSwgc2NyYXRjaCk7CisKKwkJLyoKKwkJICogU3RlcHMgdG8gZXZhbHVhdGUg dGhlIERFRkFVTFQgZXhwcmVzc2lvbi4gIFNraXAgaXQgaWYgdGhpcyBpcyBhCisJCSAqIGJpbmFy eSBjb2VyY2lvbiBjYXN0LgorCQkgKi8KKwkJaWYgKCFJc0Eoc3RjZXhwci0+Y2FzdF9leHByLCBS ZWxhYmVsVHlwZSkpCisJCXsKKwkJCUVycm9yU2F2ZUNvbnRleHQgKnNhdmVkX2VzY29udGV4dDsK KworCQkJc2F2ZWRfZXNjb250ZXh0ID0gc3RhdGUtPmVzY29udGV4dDsKKworCQkJc3RhdGUtPmVz Y29udGV4dCA9IE5VTEw7CisKKwkJCUV4ZWNJbml0RXhwclJlYygoRXhwciAqKSBzdGNzdGF0ZS0+ c3RjZXhwci0+ZGVmYXVsdF9leHByLAorCQkJCQkJCXN0YXRlLCByZXN2LCByZXNudWxsKTsKKwor CQkJc3RhdGUtPmVzY29udGV4dCA9IHNhdmVkX2VzY29udGV4dDsKKwkJfQorCisJCXN0Y3N0YXRl LT5qdW1wX2VuZCA9IHN0YXRlLT5zdGVwc19sZW47CisJfQorfQorCiAvKgogICogUHVzaCBzdGVw cyB0byBldmFsdWF0ZSBhIEpzb25FeHByIGFuZCBpdHMgdmFyaW91cyBzdWJzaWRpYXJ5IGV4cHJl c3Npb25zLgogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwcklu dGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCAwYTJk MjVjMWI2Mi4uNDA2MjNiOTg0OTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAu YwpAQCAtNTY4LDYgKzU2OCw3IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4 cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9YTUxFWFBS LAogCQkmJkNBU0VfRUVPUF9KU09OX0NPTlNUUlVDVE9SLAogCQkmJkNBU0VfRUVPUF9JU19KU09O LAorCQkmJkNBU0VfRUVPUF9TQUZFVFlQRV9DQVNULAogCQkmJkNBU0VfRUVPUF9KU09ORVhQUl9Q QVRILAogCQkmJkNBU0VfRUVPUF9KU09ORVhQUl9DT0VSQ0lPTiwKIAkJJiZDQVNFX0VFT1BfSlNP TkVYUFJfQ09FUkNJT05fRklOSVNILApAQCAtMTkyNiw2ICsxOTI3LDI4IEBAIEV4ZWNJbnRlcnBF eHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxs KQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCUVFT19DQVNFKEVFT1BfU0FGRVRZUEVfQ0FTVCkK KwkJeworCQkJU2FmZVR5cGVDYXN0U3RhdGUgKnN0Y3N0YXRlID0gb3AtPmQuc3RjZXhwci5zdGNz dGF0ZTsKKworCQkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoJnN0Y3N0YXRlLT5lc2NvbnRleHQp KQorCQkJeworCQkJCSpvcC0+cmVzdmFsdWUgPSAoRGF0dW0pIDA7CisJCQkJKm9wLT5yZXNudWxs ID0gdHJ1ZTsKKworCQkJCS8qCisJCQkJICogUmVzZXQgZm9yIG5leHQgdXNlIHN1Y2ggYXMgZm9y IGNhdGNoaW5nIGVycm9ycyB3aGVuCisJCQkJICogY29lcmNpbmcgYSBleHByZXNzaW9uLgorCQkJ CSAqLworCQkJCXN0Y3N0YXRlLT5lc2NvbnRleHQuZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwkJ CQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmRldGFpbHNfd2FudGVkID0gZmFsc2U7CisKKwkJCQlFRU9f TkVYVCgpOworCQkJfQorCQkJZWxzZQorCQkJCUVFT19KVU1QKHN0Y3N0YXRlLT5qdW1wX2VuZCk7 CisJCX0KKwogCQlFRU9fQ0FTRShFRU9QX0pTT05FWFBSX1BBVEgpCiAJCXsKIAkJCS8qIHRvbyBj b21wbGV4IGZvciBhbiBpbmxpbmUgaW1wbGVtZW50YXRpb24gKi8KQEAgLTM2NDQsNiArMzY2Nywx MiBAQCBFeGVjRXZhbEFycmF5Q29lcmNlKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAq b3AsIEV4cHJDb250ZXh0ICplY29udGV4dCkKIAkJCQkJCQkgIGVjb250ZXh0LAogCQkJCQkJCSAg b3AtPmQuYXJyYXljb2VyY2UucmVzdWx0ZWxlbXR5cGUsCiAJCQkJCQkJICBvcC0+ZC5hcnJheWNv ZXJjZS5hbXN0YXRlKTsKKworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKG9wLT5kLmFycmF5Y29l cmNlLmVsZW1leHByc3RhdGUtPmVzY29udGV4dCkpCisJeworCQkqb3AtPnJlc3ZhbHVlID0gKERh dHVtKSAwOworCQkqb3AtPnJlc251bGwgPSB0cnVlOworCX0KIH0KIAogLyoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0L2xs dm0vbGx2bWppdF9leHByLmMKaW5kZXggNjUwZjFkNDJhOTMuLjQ3NWMwM2M1NDg4IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYworKysgYi9zcmMvYmFja2Vu ZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwpAQCAtMjI1Niw2ICsyMjU2LDMzIEBAIGxsdm1fY29t cGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nb b3BubyArIDFdKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBFRU9QX1NBRkVUWVBFX0NBU1Q6CisJ CQkJeworCQkJCQlTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGUgPSBvcC0+ZC5zdGNleHByLnN0 Y3N0YXRlOworCisJCQkJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKCZzdGNzdGF0ZS0+ZXNjb250 ZXh0KSkKKwkJCQkJeworCQkJCQkJLyoKKwkJCQkJCSAqIFJlc2V0IGZvciBuZXh0IHVzZSBzdWNo IGFzIGZvciBjYXRjaGluZyBlcnJvcnMgd2hlbgorCQkJCQkJICogY29lcmNpbmcgYSBleHByZXNz aW9uLgorCQkJCQkJICovCisJCQkJCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmVycm9yX29jY3VycmVk ID0gZmFsc2U7CisJCQkJCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmRldGFpbHNfd2FudGVkID0gZmFs c2U7CisKKwkJCQkJCS8qIHNldCByZXNudWxsIHRvIHRydWUgKi8KKwkJCQkJCUxMVk1CdWlsZFN0 b3JlKGIsIGxfc2Jvb2xfY29uc3QoMSksIHZfcmVzbnVsbHApOworCisJCQkJCQkvKiByZXNldCBy ZXN2YWx1ZSAqLworCQkJCQkJTExWTUJ1aWxkU3RvcmUoYiwgbF9kYXR1bV9jb25zdCgwKSwgdl9y ZXN2YWx1ZXApOworCisJCQkJCQlMTFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tvcG5vICsgMV0pOwor CQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJCUxMVk1CdWlsZEJyKGIsIG9wYmxvY2tzW3N0Y3N0YXRl LT5qdW1wX2VuZF0pOworCisJCQkJCWJyZWFrOworCQkJCX0KKwogCQkJY2FzZSBFRU9QX0pTT05F WFBSX1BBVEg6CiAJCQkJewogCQkJCQlKc29uRXhwclN0YXRlICpqc2VzdGF0ZSA9IG9wLT5kLmpz b25leHByLmpzZXN0YXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNz LmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCBjNzY2MGRmOTJmNC4uODlm YjFiMzU3ZDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBi L3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0yMDYsNiArMjA2LDkgQEAgZXhwclR5 cGUoY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1Jvd0NvbXBhcmVFeHByOgogCQkJdHlwZSA9 IEJPT0xPSUQ7CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl0eXBl ID0gKChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHR0eXBlOworCQkJYnJl YWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl0eXBlID0gKChjb25zdCBDb2FsZXNjZUV4 cHIgKikgZXhwciktPmNvYWxlc2NldHlwZTsKIAkJCWJyZWFrOwpAQCAtNDUwLDYgKzQ1Myw4IEBA IGV4cHJUeXBtb2QoY29uc3QgTm9kZSAqZXhwcikKIAkJCQlyZXR1cm4gdHlwbW9kOwogCQkJfQog CQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJcmV0dXJuICgoY29uc3Qg U2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+cmVzdWx0dHlwbW9kOwogCQljYXNlIFRfQ29hbGVz Y2VFeHByOgogCQkJewogCQkJCS8qCkBAIC05NjUsNiArOTcwLDkgQEAgZXhwckNvbGxhdGlvbihj b25zdCBOb2RlICpleHByKQogCQkJLyogUm93Q29tcGFyZUV4cHIncyByZXN1bHQgaXMgYm9vbGVh biAuLi4gKi8KIAkJCWNvbGwgPSBJbnZhbGlkT2lkOwkvKiAuLi4gc28gaXQgaGFzIG5vIGNvbGxh dGlvbiAqLwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJY29sbCA9 ICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+cmVzdWx0Y29sbGlkOworCQkJYnJl YWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQljb2xsID0gKChjb25zdCBDb2FsZXNjZUV4 cHIgKikgZXhwciktPmNvYWxlc2NlY29sbGlkOwogCQkJYnJlYWs7CkBAIC0xMjMyLDYgKzEyNDAs OSBAQCBleHByU2V0Q29sbGF0aW9uKE5vZGUgKmV4cHIsIE9pZCBjb2xsYXRpb24pCiAJCQkvKiBS b3dDb21wYXJlRXhwcidzIHJlc3VsdCBpcyBib29sZWFuIC4uLiAqLwogCQkJQXNzZXJ0KCFPaWRJ c1ZhbGlkKGNvbGxhdGlvbikpOyAvKiAuLi4gc28gbmV2ZXIgc2V0IGEgY29sbGF0aW9uICovCiAJ CQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQkoKFNhZmVUeXBlQ2FzdEV4 cHIgKikgZXhwciktPnJlc3VsdGNvbGxpZCA9IGNvbGxhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNl IFRfQ29hbGVzY2VFeHByOgogCQkJKChDb2FsZXNjZUV4cHIgKikgZXhwciktPmNvYWxlc2NlY29s bGlkID0gY29sbGF0aW9uOwogCQkJYnJlYWs7CkBAIC0xNTUwLDYgKzE1NjEsOSBAQCBleHByTG9j YXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJCS8qIGp1c3QgdXNlIGxlZnRtb3N0IGFyZ3VtZW50 J3MgbG9jYXRpb24gKi8KIAkJCWxvYyA9IGV4cHJMb2NhdGlvbigoTm9kZSAqKSAoKGNvbnN0IFJv d0NvbXBhcmVFeHByICopIGV4cHIpLT5sYXJncyk7CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVU eXBlQ2FzdEV4cHI6CisJCQlsb2MgPSAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwcikt PmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQkvKiBDT0FM RVNDRSBrZXl3b3JkIHNob3VsZCBhbHdheXMgYmUgdGhlIGZpcnN0IHRoaW5nICovCiAJCQlsb2Mg PSAoKGNvbnN0IENvYWxlc2NlRXhwciAqKSBleHByKS0+bG9jYXRpb247CkBAIC0yMzIxLDYgKzIz MzUsMTggQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJl dHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgor CQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgKnNjZXhwciA9IChTYWZlVHlwZUNhc3RFeHByICop IG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzY2V4cHItPnNvdXJjZV9leHByKSkKKwkJCQkJcmV0dXJu IHRydWU7CisJCQkJaWYgKFdBTEsoc2NleHByLT5jYXN0X2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1 ZTsKKwkJCQlpZiAoV0FMSyhzY2V4cHItPmRlZmF1bHRfZXhwcikpCisJCQkJCXJldHVybiB0cnVl OworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQlyZXR1cm4gV0FM SygoKENvYWxlc2NlRXhwciAqKSBub2RlKS0+YXJncyk7CiAJCWNhc2UgVF9NaW5NYXhFeHByOgpA QCAtMzMzMCw2ICszMzU2LDE5IEBAIGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAq bm9kZSwKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKIAkJCX0KIAkJCWJyZWFrOworCQlj YXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpzY2V4 cHIgPSAoU2FmZVR5cGVDYXN0RXhwciAqKSBub2RlOworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgKm5l d25vZGU7CisKKwkJCQlGTEFUQ09QWShuZXdub2RlLCBzY2V4cHIsIFNhZmVUeXBlQ2FzdEV4cHIp OworCQkJCU1VVEFURShuZXdub2RlLT5zb3VyY2VfZXhwciwgc2NleHByLT5zb3VyY2VfZXhwciwg Tm9kZSAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+Y2FzdF9leHByLCBzY2V4cHItPmNhc3RfZXhw ciwgTm9kZSAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+ZGVmYXVsdF9leHByLCBzY2V4cHItPmRl ZmF1bHRfZXhwciwgTm9kZSAqKTsKKworCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOworCQkJ fQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJQ29hbGVzY2VF eHByICpjb2FsZXNjZWV4cHIgPSAoQ29hbGVzY2VFeHByICopIG5vZGU7CkBAIC00NDYyLDYgKzQ1 MDEsMjAgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJ CQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyh0Yy0+dHlwZU5hbWUpKQogCQkJCQlyZXR1cm4g dHJ1ZTsKKwkJCQlpZiAoV0FMSyh0Yy0+cmF3X2RlZmF1bHQpKQorCQkJCQlyZXR1cm4gdHJ1ZTsK KwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlT YWZlVHlwZUNhc3RFeHByICpzdGMgPSAoU2FmZVR5cGVDYXN0RXhwciAqKSBub2RlOworCisJCQkJ aWYgKFdBTEsoc3RjLT5zb3VyY2VfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChX QUxLKHN0Yy0+Y2FzdF9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3Rj LT5kZWZhdWx0X2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOwogCQlj YXNlIFRfQ29sbGF0ZUNsYXVzZToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRl eCAzOWQzNTgyN2MzNS4uOWMxMThjN2FiY2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1 c2VzLmMKQEAgLTI0NDcsNyArMjQ0Nyw4IEBAIGVzdGltYXRlX2V4cHJlc3Npb25fdmFsdWUoUGxh bm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAJKChOb2RlICopIGV2YWx1YXRlX2V4cHIoKEV4 cHIgKikgKG5vZGUpLCBcCiAJCQkJCQkJZXhwclR5cGUoKE5vZGUgKikgKG5vZGUpKSwgXAogCQkJ CQkJCWV4cHJUeXBtb2QoKE5vZGUgKikgKG5vZGUpKSwgXAotCQkJCQkJCWV4cHJDb2xsYXRpb24o KE5vZGUgKikgKG5vZGUpKSkpCisJCQkJCQkJZXhwckNvbGxhdGlvbigoTm9kZSAqKSAobm9kZSkp LCBcCisJCQkJCQkJTlVMTCkpCiAKIC8qCiAgKiBSZWN1cnNpdmUgZ3V0cyBvZiBldmFsX2NvbnN0 X2V4cHJlc3Npb25zL2VzdGltYXRlX2V4cHJlc3Npb25fdmFsdWUKQEAgLTI5NTgsNiArMjk1OSwz MiBAQCBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCQkJ CQkJCSAgY29weU9iamVjdChqdmUtPmZvcm1hdCkpOwogCQkJfQogCisJCWNhc2UgVF9TYWZlVHlw ZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgKnN0YyA9IChTYWZlVHlwZUNh c3RFeHByICopIG5vZGU7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAqbmV3ZXhwcjsKKwkJCQlOb2Rl CSAgICpzb3VyY2VfZXhwciA9IHN0Yy0+c291cmNlX2V4cHI7CisJCQkJTm9kZQkgICAqZGVmYXVs dF9leHByID0gc3RjLT5kZWZhdWx0X2V4cHI7CisKKwkJCQlzb3VyY2VfZXhwciA9IGV2YWxfY29u c3RfZXhwcmVzc2lvbnNfbXV0YXRvcihzb3VyY2VfZXhwciwgY29udGV4dCk7CisJCQkJZGVmYXVs dF9leHByID0gZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKGRlZmF1bHRfZXhwciwgY29u dGV4dCk7CisKKwkJCQkvKgorCQkJCSAqIFdlIG11c3Qgbm90IHJlZHVjZSBhbnkgcmVjb2duaXph Ymx5IGNvbnN0YW50IHN1YmV4cHJlc3Npb25zCisJCQkJICogaW4gY2FzdF9leHByIGhlcmUsIHNp bmNlIHdlIGRvbuKAmXQgd2FudCBpdCB0byBmYWlsCisJCQkJICogcHJlbWF0dXJlbHkuCisJCQkJ ICovCisJCQkJbmV3ZXhwciA9IG1ha2VOb2RlKFNhZmVUeXBlQ2FzdEV4cHIpOworCQkJCW5ld2V4 cHItPnNvdXJjZV9leHByID0gc291cmNlX2V4cHI7CisJCQkJbmV3ZXhwci0+Y2FzdF9leHByID0g c3RjLT5jYXN0X2V4cHI7CisJCQkJbmV3ZXhwci0+ZGVmYXVsdF9leHByID0gZGVmYXVsdF9leHBy OworCQkJCW5ld2V4cHItPnJlc3VsdHR5cGUgPSBzdGMtPnJlc3VsdHR5cGU7CisJCQkJbmV3ZXhw ci0+cmVzdWx0dHlwbW9kID0gc3RjLT5yZXN1bHR0eXBtb2Q7CisJCQkJbmV3ZXhwci0+cmVzdWx0 Y29sbGlkID0gc3RjLT5yZXN1bHRjb2xsaWQ7CisKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3ZXhw cjsKKwkJCX0KKwogCQljYXNlIFRfU3ViUGxhbjoKIAkJY2FzZSBUX0FsdGVybmF0aXZlU3ViUGxh bjoKIApAQCAtMzM4OCw3ICszNDE1LDggQEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9y KE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiAoTm9kZSAqKSBldmFsdWF0ZV9leHByKChFeHByICop IHN2ZiwKIAkJCQkJCQkJCQkJCSAgc3ZmLT50eXBlLAogCQkJCQkJCQkJCQkJICBzdmYtPnR5cG1v ZCwKLQkJCQkJCQkJCQkJCSAgSW52YWxpZE9pZCk7CisJCQkJCQkJCQkJCQkgIEludmFsaWRPaWQs CisJCQkJCQkJCQkJCQkgIE5VTEwpOwogCQkJCWVsc2UKIAkJCQkJcmV0dXJuIGNvcHlPYmplY3Qo KE5vZGUgKikgc3ZmKTsKIAkJCX0KQEAgLTQ4MjgsNyArNDg1Niw3IEBAIGV2YWx1YXRlX2Z1bmN0 aW9uKE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKIAlu ZXdleHByLT5sb2NhdGlvbiA9IC0xOwogCiAJcmV0dXJuIGV2YWx1YXRlX2V4cHIoKEV4cHIgKikg bmV3ZXhwciwgcmVzdWx0X3R5cGUsIHJlc3VsdF90eXBtb2QsCi0JCQkJCQkgcmVzdWx0X2NvbGxp ZCk7CisJCQkJCQkgcmVzdWx0X2NvbGxpZCwgTlVMTCk7CiB9CiAKIC8qCkBAIC01MjgyLDEwICs1 MzEwLDE0IEBAIHNxbF9pbmxpbmVfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogICoKICAqIFdl IHVzZSB0aGUgZXhlY3V0b3IncyByb3V0aW5lIEV4ZWNFdmFsRXhwcigpIHRvIGF2b2lkIGR1cGxp Y2F0aW9uIG9mCiAgKiBjb2RlIGFuZCBlbnN1cmUgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdCBhcyB0 aGUgZXhlY3V0b3Igd291bGQgZ2V0LgorICoKKyAqIFdoZW4gZXNjb250ZXh0IGlzIG5vdCBOVUxM LCB3ZSB3aWxsIGV2YWx1YXRlIHRoZSBjb25zdGFudCBleHByZXNzaW9uIGluIGEKKyAqIGVycm9y IHNhZmUgd2F5LiBJZiB0aGUgZXZhbHVhdGlvbiBmYWlscywgcmV0dXJuIE5VTEwgaW5zdGVhZCBv ZiB0aHJvd2luZyBhbgorICogZXJyb3IuCiAgKi8KIEV4cHIgKgogZXZhbHVhdGVfZXhwcihFeHBy ICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90eXBtb2QsCi0JCQkgIE9pZCBy ZXN1bHRfY29sbGF0aW9uKQorCQkJICBPaWQgcmVzdWx0X2NvbGxhdGlvbiwgTm9kZSAqZXNjb250 ZXh0KQogewogCUVTdGF0ZQkgICAqZXN0YXRlOwogCUV4cHJTdGF0ZSAgKmV4cHJzdGF0ZTsKQEAg LTUzMTAsNyArNTM0Miw3IEBAIGV2YWx1YXRlX2V4cHIoRXhwciAqZXhwciwgT2lkIHJlc3VsdF90 eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAogCSAqIFByZXBhcmUgZXhwciBmb3IgZXhlY3V0aW9u LiAgKE5vdGU6IHdlIGNhbid0IHVzZSBFeGVjUHJlcGFyZUV4cHIKIAkgKiBiZWNhdXNlIGl0J2Qg cmVzdWx0IGluIHJlY3Vyc2l2ZWx5IGludm9raW5nIGV2YWxfY29uc3RfZXhwcmVzc2lvbnMuKQog CSAqLwotCWV4cHJzdGF0ZSA9IEV4ZWNJbml0RXhwcihleHByLCBOVUxMKTsKKwlleHByc3RhdGUg PSBFeGVjSW5pdEV4cHJFeHRlbmRlZChleHByLCBlc2NvbnRleHQsIE5VTEwpOwogCiAJLyoKIAkg KiBBbmQgZXZhbHVhdGUgaXQuCkBAIC01MzMwLDYgKzUzNjIsMTMgQEAgZXZhbHVhdGVfZXhwcihF eHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90eXBtb2QsCiAJLyogR2V0 IGJhY2sgdG8gb3V0ZXIgbWVtb3J5IGNvbnRleHQgKi8KIAlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY29udGV4dCk7CiAKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChleHByc3RhdGUtPmVzY29u dGV4dCkpCisJeworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCisJCXJldHVybiBOVUxM OworCX0KKwogCS8qCiAJICogTXVzdCBjb3B5IHJlc3VsdCBvdXQgb2Ygc3ViLWNvbnRleHQgdXNl ZCBieSBleHByZXNzaW9uIGV2YWwuCiAJICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDllYTgxMjUwY2U4Li4x NWU0ZjA2NDc4MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xNTgsNiArMTU4LDggQEAgc3RhdGljIHZvaWQg dXBkYXRlUmF3U3RtdEVuZChSYXdTdG10ICpycywgaW50IGVuZF9sb2NhdGlvbik7CiBzdGF0aWMg Tm9kZSAqbWFrZUNvbHVtblJlZihjaGFyICpjb2xuYW1lLCBMaXN0ICppbmRpcmVjdGlvbiwKIAkJ CQkJCSAgIGludCBsb2NhdGlvbiwgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpOwogc3RhdGljIE5v ZGUgKm1ha2VUeXBlQ2FzdChOb2RlICphcmcsIFR5cGVOYW1lICp0eXBlbmFtZSwgaW50IGxvY2F0 aW9uKTsKK3N0YXRpYyBOb2RlICptYWtlVHlwZUNhc3RXaXRoRGVmYXVsdChOb2RlICphcmcsIFR5 cGVOYW1lICp0eXBlbmFtZSwKKwkJCQkJCQkJCSBOb2RlICpyYXdfZGVmYXVsdCwgaW50IGxvY2F0 aW9uKTsKIHN0YXRpYyBOb2RlICptYWtlU3RyaW5nQ29uc3RDYXN0KGNoYXIgKnN0ciwgaW50IGxv Y2F0aW9uLCBUeXBlTmFtZSAqdHlwZW5hbWUpOwogc3RhdGljIE5vZGUgKm1ha2VJbnRDb25zdChp bnQgdmFsLCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKm1ha2VGbG9hdENvbnN0KGNoYXIg KnN0ciwgaW50IGxvY2F0aW9uKTsKQEAgLTE2MDY1LDYgKzE2MDY3LDEyIEBAIGZ1bmNfZXhwcl9j b21tb25fc3ViZXhwcjoKIAkJCQl9CiAJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSAn KScKIAkJCQl7ICQkID0gbWFrZVR5cGVDYXN0KCQzLCAkNSwgQDEpOyB9CisJCQl8IENBU1QgJygn IGFfZXhwciBBUyBUeXBlbmFtZSBFUlJPUl9QIE9OIENPTlZFUlNJT05fUCBFUlJPUl9QICcpJwor CQkJCXsgJCQgPSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7IH0KKwkJCXwgQ0FTVCAnKCcgYV9l eHByIEFTIFR5cGVuYW1lIE5VTExfUCBPTiBDT05WRVJTSU9OX1AgRVJST1JfUCAnKScKKwkJCQl7 ICQkID0gbWFrZVR5cGVDYXN0V2l0aERlZmF1bHQoJDMsICQ1LCBtYWtlTnVsbEFDb25zdCgtMSks IEAxKTsgfQorCQkJfCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUgREVGQVVMVCBhX2V4cHIg T04gQ09OVkVSU0lPTl9QIEVSUk9SX1AgJyknCisJCQkJeyAkJCA9IG1ha2VUeXBlQ2FzdFdpdGhE ZWZhdWx0KCQzLCAkNSwgJDcsIEAxKTsgfQogCQkJfCBFWFRSQUNUICcoJyBleHRyYWN0X2xpc3Qg JyknCiAJCQkJewogCQkJCQkkJCA9IChOb2RlICopIG1ha2VGdW5jQ2FsbChTeXN0ZW1GdW5jTmFt ZSgiZXh0cmFjdCIpLApAQCAtMTg5OTYsMTAgKzE5MDA0LDI1IEBAIG1ha2VUeXBlQ2FzdChOb2Rl ICphcmcsIFR5cGVOYW1lICp0eXBlbmFtZSwgaW50IGxvY2F0aW9uKQogCiAJbi0+YXJnID0gYXJn OwogCW4tPnR5cGVOYW1lID0gdHlwZW5hbWU7CisJbi0+cmF3X2RlZmF1bHQgPSBOVUxMOwogCW4t PmxvY2F0aW9uID0gbG9jYXRpb247CiAJcmV0dXJuIChOb2RlICopIG47CiB9CiAKK3N0YXRpYyBO b2RlICoKK21ha2VUeXBlQ2FzdFdpdGhEZWZhdWx0KE5vZGUgKmFyZywgVHlwZU5hbWUgKnR5cGVu YW1lLCBOb2RlICpyYXdfZGVmYXVsdCwKKwkJCQkJCWludCBsb2NhdGlvbikKK3sKKwlUeXBlQ2Fz dCAgICpuID0gbWFrZU5vZGUoVHlwZUNhc3QpOworCisJbi0+YXJnID0gYXJnOworCW4tPnR5cGVO YW1lID0gdHlwZW5hbWU7CisJbi0+cmF3X2RlZmF1bHQgPSByYXdfZGVmYXVsdDsKKwluLT5sb2Nh dGlvbiA9IGxvY2F0aW9uOworCisJcmV0dXJuIChOb2RlICopIG47Cit9CisKIHN0YXRpYyBOb2Rl ICoKIG1ha2VTdHJpbmdDb25zdENhc3QoY2hhciAqc3RyLCBpbnQgbG9jYXRpb24sIFR5cGVOYW1l ICp0eXBlbmFtZSkKIHsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCAyNWVlMGY4N2Q5My4uMGUx MDZmZGZjZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTQ5MCw2ICs0OTAsMTIgQEAgY2hl Y2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIpCiAJCQkJZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4g Y2hlY2sgY29uc3RyYWludHMiKTsKIAogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1Rf REVGQVVMVDoKKwkJCWlmIChpc0FnZykKKwkJCQllcnIgPSBfKCJhZ2dyZWdhdGUgZnVuY3Rpb25z IGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKKwkJCWVsc2UK KwkJCQllcnIgPSBfKCJncm91cGluZyBvcGVyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNU IERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKKwkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xV TU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIApAQCAtOTgz LDYgKzk4OSw5IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwg V2luZG93RnVuYyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJCWVy ciA9IF8oIndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0cmFp bnRzIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJZXJy ID0gXygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4 cHJlc3Npb25zIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6 CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJ3aW5kb3cg ZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfY29lcmNlLmMKaW5kZXggOTEzY2E1MzY2NmYuLjJhYjQ5YTU3NDNkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jCkBAIC04MSw2ICs4MSwzMSBAQCBjb2VyY2VfdG9fdGFy Z2V0X3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBPaWQgZXhwcnR5cGUsCiAJ CQkJCSAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LAogCQkJCQkgIENvZXJjaW9uRm9ybSBjZm9y bWF0LAogCQkJCQkgIGludCBsb2NhdGlvbikKK3sKKwlyZXR1cm4gY29lcmNlX3RvX3RhcmdldF90 eXBlX2V4dGVuZGVkKHBzdGF0ZSwKKwkJCQkJCQkJCQkgIGV4cHIsCisJCQkJCQkJCQkJICBleHBy dHlwZSwKKwkJCQkJCQkJCQkgIHRhcmdldHR5cGUsCisJCQkJCQkJCQkJICB0YXJnZXR0eXBtb2Qs CisJCQkJCQkJCQkJICBjY29udGV4dCwKKwkJCQkJCQkJCQkgIGNmb3JtYXQsCisJCQkJCQkJCQkJ ICBsb2NhdGlvbiwKKwkJCQkJCQkJCQkgIE5VTEwpOworfQorCisvKgorICogZXNjb250ZXh0OiBJ ZiBub3QgTlVMTCwgZXhwciAoVW5rbm93biBDb25zdCBub2RlIHR5cGUpIHdpbGwgYmUgY29lcmNl ZCB0byB0aGUKKyAqIHRhcmdldCB0eXBlIGluIGFuIGVycm9yLXNhZmUgd2F5LiBJZiBpdCBmYWls cywgTlVMTCBpcyByZXR1cm5lZC4KKyAqCisgKiBGb3Igb3RoZXIgcGFyYW1ldGVycywgc2VlIGFi b3ZlIGNvZXJjZV90b190YXJnZXRfdHlwZS4KKyAqLworTm9kZSAqCitjb2VyY2VfdG9fdGFyZ2V0 X3R5cGVfZXh0ZW5kZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBPaWQgZXhwcnR5 cGUsCisJCQkJCQkJICAgT2lkIHRhcmdldHR5cGUsIGludDMyIHRhcmdldHR5cG1vZCwKKwkJCQkJ CQkgICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsCisJCQkJCQkJICAgQ29lcmNpb25Gb3JtIGNm b3JtYXQsCisJCQkJCQkJICAgaW50IGxvY2F0aW9uLAorCQkJCQkJCSAgIE5vZGUgKmVzY29udGV4 dCkKIHsKIAlOb2RlCSAgICpyZXN1bHQ7CiAJTm9kZQkgICAqb3JpZ2V4cHI7CkBAIC0xMDIsOSAr MTI3LDEyIEBAIGNvZXJjZV90b190YXJnZXRfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg KmV4cHIsIE9pZCBleHBydHlwZSwKIAl3aGlsZSAoZXhwciAmJiBJc0EoZXhwciwgQ29sbGF0ZUV4 cHIpKQogCQlleHByID0gKE5vZGUgKikgKChDb2xsYXRlRXhwciAqKSBleHByKS0+YXJnOwogCi0J cmVzdWx0ID0gY29lcmNlX3R5cGUocHN0YXRlLCBleHByLCBleHBydHlwZSwKLQkJCQkJCSB0YXJn ZXR0eXBlLCB0YXJnZXR0eXBtb2QsCi0JCQkJCQkgY2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9u KTsKKwlyZXN1bHQgPSBjb2VyY2VfdHlwZV9leHRlbmRlZChwc3RhdGUsIGV4cHIsIGV4cHJ0eXBl LAorCQkJCQkJCQkgIHRhcmdldHR5cGUsIHRhcmdldHR5cG1vZCwKKwkJCQkJCQkJICBjY29udGV4 dCwgY2Zvcm1hdCwgbG9jYXRpb24sCisJCQkJCQkJCSAgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9F UlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gTlVMTDsKIAogCS8qCiAJICogSWYg dGhlIHRhcmdldCBpcyBhIGZpeGVkLWxlbmd0aCB0eXBlLCBpdCBtYXkgbmVlZCBhIGxlbmd0aCBj b2VyY2lvbiBhcwpAQCAtMTU4LDYgKzE4NiwxNyBAQCBOb2RlICoKIGNvZXJjZV90eXBlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCU9pZCBpbnB1dFR5cGVJZCwgT2lkIHRhcmdl dFR5cGVJZCwgaW50MzIgdGFyZ2V0VHlwZU1vZCwKIAkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4 dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsIGludCBsb2NhdGlvbikKK3sKKwlyZXR1cm4gY29lcmNl X3R5cGVfZXh0ZW5kZWQocHN0YXRlLCBub2RlLAorCQkJCQkJCQlpbnB1dFR5cGVJZCwgdGFyZ2V0 VHlwZUlkLCB0YXJnZXRUeXBlTW9kLAorCQkJCQkJCQljY29udGV4dCwgY2Zvcm1hdCwgbG9jYXRp b24sIE5VTEwpOworfQorCitOb2RlICoKK2NvZXJjZV90eXBlX2V4dGVuZGVkKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqbm9kZSwKKwkJCQkJIE9pZCBpbnB1dFR5cGVJZCwgT2lkIHRhcmdldFR5 cGVJZCwgaW50MzIgdGFyZ2V0VHlwZU1vZCwKKwkJCQkJIENvZXJjaW9uQ29udGV4dCBjY29udGV4 dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJCSBpbnQgbG9jYXRpb24sIE5vZGUgKmVzY29u dGV4dCkKIHsKIAlOb2RlCSAgICpyZXN1bHQ7CiAJQ29lcmNpb25QYXRoVHlwZSBwYXRodHlwZTsK QEAgLTI1Niw2ICsyOTUsOCBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg Km5vZGUsCiAJCWludDMyCQlpbnB1dFR5cGVNb2Q7CiAJCVR5cGUJCWJhc2VUeXBlOwogCQlQYXJz ZUNhbGxiYWNrU3RhdGUgcGNic3RhdGU7CisJCWNoYXIJICAgKnN0cmluZzsKKwkJYm9vbAkJY29l cmNpb25fZmFpbGVkID0gZmFsc2U7CiAKIAkJLyoKIAkJICogSWYgdGhlIHRhcmdldCB0eXBlIGlz IGEgZG9tYWluLCB3ZSB3YW50IHRvIGNhbGwgaXRzIGJhc2UgdHlwZSdzCkBAIC0zMDgsMjEgKzM0 OSwyNyBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCiAJCSAq IFdlIGFzc3VtZSBoZXJlIHRoYXQgVU5LTk9XTidzIGludGVybmFsIHJlcHJlc2VudGF0aW9uIGlz IHRoZSBzYW1lCiAJCSAqIGFzIENTVFJJTkcuCiAJCSAqLwotCQlpZiAoIWNvbi0+Y29uc3Rpc251 bGwpCi0JCQluZXdjb24tPmNvbnN0dmFsdWUgPSBzdHJpbmdUeXBlRGF0dW0oYmFzZVR5cGUsCi0J CQkJCQkJCQkJCQkgRGF0dW1HZXRDU3RyaW5nKGNvbi0+Y29uc3R2YWx1ZSksCi0JCQkJCQkJCQkJ CQkgaW5wdXRUeXBlTW9kKTsKKwkJaWYgKGNvbi0+Y29uc3Rpc251bGwpCisJCQlzdHJpbmcgPSBO VUxMOwogCQllbHNlCi0JCQluZXdjb24tPmNvbnN0dmFsdWUgPSBzdHJpbmdUeXBlRGF0dW0oYmFz ZVR5cGUsCi0JCQkJCQkJCQkJCQkgTlVMTCwKLQkJCQkJCQkJCQkJCSBpbnB1dFR5cGVNb2QpOwor CQkJc3RyaW5nID0gRGF0dW1HZXRDU3RyaW5nKGNvbi0+Y29uc3R2YWx1ZSk7CisKKwkJaWYgKCFz dHJpbmdUeXBlRGF0dW1TYWZlKGJhc2VUeXBlLAorCQkJCQkJCQkgc3RyaW5nLAorCQkJCQkJCQkg aW5wdXRUeXBlTW9kLAorCQkJCQkJCQkgZXNjb250ZXh0LAorCQkJCQkJCQkgJm5ld2Nvbi0+Y29u c3R2YWx1ZSkpCisJCXsKKwkJCWNvZXJjaW9uX2ZhaWxlZCA9IHRydWU7CisJCQluZXdjb24tPmNv bnN0aXNudWxsID0gdHJ1ZTsKKwkJfQogCiAJCS8qCiAJCSAqIElmIGl0J3MgYSB2YXJsZW5hIHZh bHVlLCBmb3JjZSBpdCB0byBiZSBpbiBub24tZXhwYW5kZWQKIAkJICogKG5vbi10b2FzdGVkKSBm b3JtYXQ7IHRoaXMgYXZvaWRzIGFueSBwb3NzaWJsZSBkZXBlbmRlbmN5IG9uCiAJCSAqIGV4dGVy bmFsIHZhbHVlcyBhbmQgaW1wcm92ZXMgY29uc2lzdGVuY3kgb2YgcmVwcmVzZW50YXRpb24uCiAJ CSAqLwotCQlpZiAoIWNvbi0+Y29uc3Rpc251bGwgJiYgbmV3Y29uLT5jb25zdGxlbiA9PSAtMSkK KwkJaWYgKCFjb2VyY2lvbl9mYWlsZWQgJiYgIWNvbi0+Y29uc3Rpc251bGwgJiYgbmV3Y29uLT5j b25zdGxlbiA9PSAtMSkKIAkJCW5ld2Nvbi0+Y29uc3R2YWx1ZSA9CiAJCQkJUG9pbnRlckdldERh dHVtKFBHX0RFVE9BU1RfREFUVU0obmV3Y29uLT5jb25zdHZhbHVlKSk7CiAKQEAgLTMzOSw3ICsz ODYsNyBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCiAJCSAq IGlkZW50aWNhbCBtYXkgbm90IGdldCByZWNvZ25pemVkIGFzIHN1Y2guICBTZWUgcGdzcWwtaGFj a2VycwogCQkgKiBkaXNjdXNzaW9uIG9mIDIwMDgtMDQtMDQuCiAJCSAqLwotCQlpZiAoIWNvbi0+ Y29uc3Rpc251bGwgJiYgIW5ld2Nvbi0+Y29uc3RieXZhbCkKKwkJaWYgKCFjb2VyY2lvbl9mYWls ZWQgJiYgIWNvbi0+Y29uc3Rpc251bGwgJiYgIW5ld2Nvbi0+Y29uc3RieXZhbCkKIAkJewogCQkJ RGF0dW0JCXZhbDI7CiAKQEAgLTM1OCw4ICs0MDUsMTAgQEAgY29lcmNlX3R5cGUoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCiAJCXJlc3VsdCA9IChOb2RlICopIG5ld2NvbjsKIAot CQkvKiBJZiB0YXJnZXQgaXMgYSBkb21haW4sIGFwcGx5IGNvbnN0cmFpbnRzLiAqLwotCQlpZiAo YmFzZVR5cGVJZCAhPSB0YXJnZXRUeXBlSWQpCisJCWlmIChjb2VyY2lvbl9mYWlsZWQpCisJCQly ZXN1bHQgPSBOVUxMOworCQllbHNlIGlmIChiYXNlVHlwZUlkICE9IHRhcmdldFR5cGVJZCkKKwkJ CS8qIElmIHRhcmdldCBpcyBhIGRvbWFpbiwgYXBwbHkgY29uc3RyYWludHMuICovCiAJCQlyZXN1 bHQgPSBjb2VyY2VfdG9fZG9tYWluKHJlc3VsdCwKIAkJCQkJCQkJCSAgYmFzZVR5cGVJZCwgYmFz ZVR5cGVNb2QsCiAJCQkJCQkJCQkgIHRhcmdldFR5cGVJZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j CmluZGV4IDljYmExMjcyMjUzLi42ZmVmOTA4ODA0YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j CkBAIC0xNyw2ICsxNyw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2Nh c3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4u aCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKQEAgLTM3LDYgKzM4LDcgQEAKICNpbmNs dWRlICJ1dGlscy9kYXRlLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKICNpbmNsdWRl ICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1 ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgogI2luY2x1ZGUgInV0aWxzL3htbC5oIgogCkBAIC02MCw3 ICs2Miw4IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1NdWx0aUFzc2lnblJlZihQYXJzZVN0YXRl ICpwc3RhdGUsIE11bHRpQXNzaWduUmVmICptYXJlZik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3Jt Q2FzZUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYXNlRXhwciAqYyk7CiBzdGF0aWMgTm9kZSAq dHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspOwog c3RhdGljIE5vZGUgKnRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJy YXlFeHByICphLAotCQkJCQkJCQlPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50 MzIgdHlwbW9kKTsKKwkJCQkJCQkJT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUsIGlu dDMyIHR5cG1vZCwKKwkJCQkJCQkJYm9vbCAqY2FuX2NvZXJjZSk7CiBzdGF0aWMgTm9kZSAqdHJh bnNmb3JtUm93RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIFJvd0V4cHIgKnIsIGJvb2wgYWxsb3dE ZWZhdWx0KTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Db2FsZXNjZUV4cHIoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2FsZXNjZUV4cHIgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybU1pbk1heEV4 cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBNaW5NYXhFeHByICptKTsKQEAgLTc2LDYgKzc5LDggQEAg c3RhdGljIE5vZGUgKnRyYW5zZm9ybVdob2xlUm93UmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJCQkJICBpbnQgc3VibGV2ZWxzX3VwLCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKnRy YW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5k KTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5 cGVDYXN0ICp0Yyk7CitzdGF0aWMgdm9pZCBDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4cHIsCisJCQkJCQkJCSAgIE5vZGUgKnNvdXJjZWV4cHIs IE9pZCBpbnB1dFR5cGUsIE9pZCB0YXJnZXRUeXBlKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1D b2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sbGF0ZUNsYXVzZSAqYyk7CiBzdGF0 aWMgTm9kZSAqdHJhbnNmb3JtSnNvbk9iamVjdENvbnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0 ZSwKIAkJCQkJCQkJCQkJSnNvbk9iamVjdENvbnN0cnVjdG9yICpjdG9yKTsKQEAgLTE2NCw3ICsx NjksNyBAQCB0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIpCiAKIAkJY2FzZSBUX0FfQXJyYXlFeHByOgogCQkJcmVzdWx0ID0gdHJhbnNmb3JtQXJyYXlF eHByKHBzdGF0ZSwgKEFfQXJyYXlFeHByICopIGV4cHIsCi0JCQkJCQkJCQkJSW52YWxpZE9pZCwg SW52YWxpZE9pZCwgLTEpOworCQkJCQkJCQkJCUludmFsaWRPaWQsIEludmFsaWRPaWQsIC0xLCBO VUxMKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgVF9UeXBlQ2FzdDoKQEAgLTU2NCw2ICs1NjksNyBA QCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYp CiAJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFU19TSU5HTEU6CiAJCWNhc2UgRVhQUl9LSU5EX0NIRUNL X0NPTlNUUkFJTlQ6CiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKKwkJY2FzZSBFWFBS X0tJTkRfQ0FTVF9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgog CQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgogCQljYXNlIEVYUFJfS0lORF9JTkRF WF9QUkVESUNBVEU6CkBAIC0xODI0LDYgKzE4MzAsOSBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNl U3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlO X0NIRUNLOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjaGVjayBjb25zdHJh aW50Iik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJZXJy ID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbiIpOwor CQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJf S0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBp biBERUZBVUxUIGV4cHJlc3Npb24iKTsKQEAgLTIwMTEsMTcgKzIwMjAsMjQgQEAgdHJhbnNmb3Jt U3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAgKiBJZiB0aGUg Y2FsbGVyIHNwZWNpZmllcyB0aGUgdGFyZ2V0IHR5cGUsIHRoZSByZXN1bHRpbmcgYXJyYXkgd2ls bAogICogYmUgb2YgZXhhY3RseSB0aGF0IHR5cGUuICBPdGhlcndpc2Ugd2UgdHJ5IHRvIGluZmVy IGEgY29tbW9uIHR5cGUKICAqIGZvciB0aGUgZWxlbWVudHMgdXNpbmcgc2VsZWN0X2NvbW1vbl90 eXBlKCkuCisgKgorICogTW9zdCBvZiB0aGUgdGltZSwgY2FuX2NvZXJjZSB3aWxsIGJlIE5VTEwu ICBJdCBpcyBub3QgTlVMTCBvbmx5IHdoZW4KKyAqIHBlcmZvcm1pbmcgcGFyc2UgYW5hbHlzaXMg Zm9yIENBU1QoREVGQVVMVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUikKKyAqIGV4cHJlc3Npb24u IEl0J3MgZGVmYXVsdCB0byB0cnVlLiBJZiBjb2VyY2luZyBhcnJheSBlbGVtZW50cyBmYWlscywg aXQgd2lsbAorICogYmUgc2V0IHRvIGZhbHNlLgogICovCiBzdGF0aWMgTm9kZSAqCiB0cmFuc2Zv cm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKLQkJCQkgICBP aWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIgdHlwbW9kKQorCQkJCSAgIE9p ZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBtb2QsIGJvb2wgKmNhbl9j b2VyY2UpCiB7CiAJQXJyYXlFeHByICAqbmV3YSA9IG1ha2VOb2RlKEFycmF5RXhwcik7CiAJTGlz dAkgICAqbmV3ZWxlbXMgPSBOSUw7CiAJTGlzdAkgICAqbmV3Y29lcmNlZGVsZW1zID0gTklMOwog CUxpc3RDZWxsICAgKmVsZW1lbnQ7CiAJT2lkCQkJY29lcmNlX3R5cGU7CisJT2lkCQkJY29lcmNl X3R5cGVfY29sbDsKIAlib29sCQljb2VyY2VfaGFyZDsKKwlFcnJvclNhdmVDb250ZXh0IGVzY29u dGV4dCA9IHtUX0Vycm9yU2F2ZUNvbnRleHR9OwogCiAJLyoKIAkgKiBUcmFuc2Zvcm0gdGhlIGVs ZW1lbnQgZXhwcmVzc2lvbnMKQEAgLTIwNDUsOSArMjA2MSwxMCBAQCB0cmFuc2Zvcm1BcnJheUV4 cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKIAkJCQkJCQkJCSAgKEFfQXJy YXlFeHByICopIGUsCiAJCQkJCQkJCQkgIGFycmF5X3R5cGUsCiAJCQkJCQkJCQkgIGVsZW1lbnRf dHlwZSwKLQkJCQkJCQkJCSAgdHlwbW9kKTsKKwkJCQkJCQkJCSAgdHlwbW9kLAorCQkJCQkJCQkJ ICBjYW5fY29lcmNlKTsKIAkJCS8qIHdlIGNlcnRhaW5seSBoYXZlIGFuIGFycmF5IGhlcmUgKi8K LQkJCUFzc2VydChhcnJheV90eXBlID09IEludmFsaWRPaWQgfHwgYXJyYXlfdHlwZSA9PSBleHBy VHlwZShuZXdlKSk7CisJCQlBc3NlcnQoY2FuX2NvZXJjZSB8fCBhcnJheV90eXBlID09IEludmFs aWRPaWQgfHwgYXJyYXlfdHlwZSA9PSBleHByVHlwZShuZXdlKSk7CiAJCQluZXdhLT5tdWx0aWRp bXMgPSB0cnVlOwogCQl9CiAJCWVsc2UKQEAgLTIwODgsNiArMjEwNSw5IEBAIHRyYW5zZm9ybUFy cmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCX0KIAllbHNlCiAJ eworCQkvKiBUYXJnZXQgdHlwZSBtdXN0IHZhbGlkIGZvciBDQVNUIERFRkFVTFQgKi8KKwkJQXNz ZXJ0KGNhbl9jb2VyY2UgPT0gTlVMTCk7CisKIAkJLyogQ2FuJ3QgaGFuZGxlIGFuIGVtcHR5IGFy cmF5IHdpdGhvdXQgYSB0YXJnZXQgdHlwZSAqLwogCQlpZiAobmV3ZWxlbXMgPT0gTklMKQogCQkJ ZXJlcG9ydChFUlJPUiwKQEAgLTIxMjUsNiArMjE0NSw4IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQ YXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCQljb2VyY2VfaGFyZCA9IGZhbHNl OwogCX0KIAorCWNvZXJjZV90eXBlX2NvbGwgPSBnZXRfdHlwY29sbGF0aW9uKGNvZXJjZV90eXBl KTsKKwogCS8qCiAJICogQ29lcmNlIGVsZW1lbnRzIHRvIHRhcmdldCB0eXBlCiAJICoKQEAgLTIx MzQsMjggKzIxNTYsODIgQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9BcnJheUV4cHIgKmEsCiAJICogSWYgdGhlIGFycmF5J3MgdHlwZSB3YXMgbWVyZWx5IGRlcml2 ZWQgZnJvbSB0aGUgY29tbW9uIHR5cGUgb2YgaXRzCiAJICogZWxlbWVudHMsIHRoZW4gdGhlIGVs ZW1lbnRzIGFyZSBpbXBsaWNpdGx5IGNvZXJjZWQgdG8gdGhlIGNvbW1vbiB0eXBlLgogCSAqIFRo aXMgaXMgY29uc2lzdGVudCB3aXRoIG90aGVyIHVzZXMgb2Ygc2VsZWN0X2NvbW1vbl90eXBlKCku CisJICoKKwkgKiBJZiBjYW5fY29lcmNlIGlzIG5vdCBOVUxMLCB3ZSBuZWVkIHRvIHNhZmVseSB0 ZXN0IHdoZXRoZXIgZWFjaCBlbGVtZW50CisJICogY2FuIGJlIGNvZXJjZWQgdG8gdGhlIHRhcmdl dCB0eXBlLCBzaW1pbGFyIHRvIHdoYXQgaXMgZG9uZSBpbgorCSAqIHRyYW5zZm9ybVR5cGVTYWZl Q2FzdC4KIAkgKi8KIAlmb3JlYWNoKGVsZW1lbnQsIG5ld2VsZW1zKQogCXsKIAkJTm9kZQkgICAq ZSA9IChOb2RlICopIGxmaXJzdChlbGVtZW50KTsKLQkJTm9kZQkgICAqbmV3ZTsKKwkJTm9kZQkg ICAqbmV3ZSA9IE5VTEw7CiAKIAkJaWYgKGNvZXJjZV9oYXJkKQogCQl7Ci0JCQluZXdlID0gY29l cmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwgZSwKLQkJCQkJCQkJCQkgZXhwclR5cGUoZSksCi0J CQkJCQkJCQkJIGNvZXJjZV90eXBlLAotCQkJCQkJCQkJCSB0eXBtb2QsCi0JCQkJCQkJCQkJIENP RVJDSU9OX0VYUExJQ0lULAotCQkJCQkJCQkJCSBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKLQkJCQkJ CQkJCQkgLTEpOwotCQkJaWYgKG5ld2UgPT0gTlVMTCkKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9DQU5OT1RfQ09FUkNFKSwKLQkJCQkJCSBlcnJtc2coImNhbm5v dCBjYXN0IHR5cGUgJXMgdG8gJXMiLAotCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHByVHlwZShl KSksCi0JCQkJCQkJCWZvcm1hdF90eXBlX2JlKGNvZXJjZV90eXBlKSksCi0JCQkJCQkgcGFyc2Vy X2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGUpKSkpOworCQkJLyoKKwkJCSAqIENh biBub3QgY29lcmNlLCBqdXN0IGFwcGVuZCB0aGUgdHJhbnNmb3JtZWQgZWxlbWVudCBleHByZXNz aW9uCisJCQkgKiB0byB0aGUgbGlzdC4KKwkJCSAqLworCQkJaWYgKGNhbl9jb2VyY2UgJiYgKCEq Y2FuX2NvZXJjZSkpCisJCQkJbmV3ZSA9IGU7CisJCQllbHNlCisJCQl7CisJCQkJTm9kZQkgICAq ZWNvcHkgPSBOVUxMOworCisJCQkJaWYgKGNhbl9jb2VyY2UpCisJCQkJCWVjb3B5ID0gY29weU9i amVjdChlKTsKKworCQkJCW5ld2UgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQocHN0 YXRlLCBlLAorCQkJCQkJCQkJCQkJCSAgZXhwclR5cGUoZSksCisJCQkJCQkJCQkJCQkJICBjb2Vy Y2VfdHlwZSwKKwkJCQkJCQkJCQkJCQkgIHR5cG1vZCwKKwkJCQkJCQkJCQkJCQkgIENPRVJDSU9O X0VYUExJQ0lULAorCQkJCQkJCQkJCQkJCSAgQ09FUkNFX0VYUExJQ0lUX0NBU1QsCisJCQkJCQkJ CQkJCQkJICAtMSwKKwkJCQkJCQkJCQkJCQkgIChOb2RlICopICZlc2NvbnRleHQpOworCQkJCWlm IChuZXdlID09IE5VTEwpCisJCQkJeworCQkJCQlpZiAoIWNhbl9jb2VyY2UpCisJCQkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLAorCQkJ CQkJCQkgZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRvICVzIiwKKwkJCQkJCQkJCQlmb3Jt YXRfdHlwZV9iZShleHByVHlwZShlKSksCisJCQkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29lcmNl X3R5cGUpKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlv bihlKSkpKTsKKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQkvKgorCQkJCQkJICogQ2FuIG5vdCBj b2VyY2UsIGp1c3QgYXBwZW5kIHRoZSB0cmFuc2Zvcm1lZCBlbGVtZW50CisJCQkJCQkgKiBleHBy ZXNzaW9uIHRvIHRoZSBsaXN0LgorCQkJCQkJICovCisJCQkJCQluZXdlID0gZWNvcHk7CisJCQkJ CQkqY2FuX2NvZXJjZSA9IGZhbHNlOworCQkJCQl9CisJCQkJfQorCQkJCWVsc2UgaWYgKGNhbl9j b2VyY2UgJiYgSXNBKGVjb3B5LCBDb25zdCkgJiYgSXNBKG5ld2UsIEZ1bmNFeHByKSkKKwkJCQl7 CisJCQkJCU5vZGUJICAgKnJlc3VsdDsKKworCQkJCQkvKgorCQkJCQkgKiBwcmUtZXZhbHVhdGUg c2ltcGxlIGNvbnN0YW50IGNhc3QgZXhwcmVzc2lvbnMgaW4gYSB3YXkKKwkJCQkJICogdGhhdCB0 b2xlcmF0ZSBlcnJvcnMuCisJCQkJCSAqLworCQkJCQlGdW5jRXhwciAgICpuZXdleHByID0gKEZ1 bmNFeHByICopIGNvcHlPYmplY3QobmV3ZSk7CisKKwkJCQkJYXNzaWduX2V4cHJfY29sbGF0aW9u cyhwc3RhdGUsIChOb2RlICopIG5ld2V4cHIpOworCisJCQkJCXJlc3VsdCA9IChOb2RlICopIGV2 YWx1YXRlX2V4cHIoKEV4cHIgKikgbmV3ZXhwciwKKwkJCQkJCQkJCQkJCQljb2VyY2VfdHlwZSwK KwkJCQkJCQkJCQkJCQl0eXBtb2QsCisJCQkJCQkJCQkJCQkJY29lcmNlX3R5cGVfY29sbCwKKwkJ CQkJCQkJCQkJCQkoTm9kZSAqKSAmZXNjb250ZXh0KTsKKwkJCQkJaWYgKHJlc3VsdCA9PSBOVUxM KQorCQkJCQl7CisJCQkJCQluZXdlID0gZWNvcHk7CisJCQkJCQkqY2FuX2NvZXJjZSA9IGZhbHNl OworCQkJCQl9CisJCQkJfQorCQkJfQogCQl9CiAJCWVsc2UKIAkJCW5ld2UgPSBjb2VyY2VfdG9f Y29tbW9uX3R5cGUocHN0YXRlLCBlLApAQCAtMjY5Niw3ICsyNzcyLDggQEAgdHJhbnNmb3JtV2hv bGVSb3dSZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbSwK IH0KIAogLyoKLSAqIEhhbmRsZSBhbiBleHBsaWNpdCBDQVNUIGNvbnN0cnVjdC4KKyAqIEhhbmRs ZSBhbiBleHBsaWNpdCBDQVNUIGNvbnN0cnVjdCBvcgorICogQ0FTVCguLi4gREVGQVVMVCAuLi4g T04gQ09OVkVSU0lPTiBFUlJPUikgY29uc3RydWN0LgogICoKICAqIFRyYW5zZm9ybSB0aGUgYXJn dW1lbnQsIGxvb2sgdXAgdGhlIHR5cGUgbmFtZSwgYW5kIGFwcGx5IGFueSBuZWNlc3NhcnkKICAq IGNvZXJjaW9uIGZ1bmN0aW9uKHMpLgpAQCAtMjcwNCwxNyArMjc4MSw2NCBAQCB0cmFuc2Zvcm1X aG9sZVJvd1JlZihQYXJzZVN0YXRlICpwc3RhdGUsIFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVt LAogc3RhdGljIE5vZGUgKgogdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBU eXBlQ2FzdCAqdGMpCiB7Ci0JTm9kZQkgICAqcmVzdWx0OworCVNhZmVUeXBlQ2FzdEV4cHIgKnN0 YzsKKwlOb2RlCSAgICpjYXN0X2V4cHIgPSBOVUxMOworCU5vZGUJICAgKmRlZmV4cHIgPSBOVUxM OwogCU5vZGUJICAgKmFyZyA9IHRjLT5hcmc7CisJTm9kZQkgICAqc3JjZXhwcjsKIAlOb2RlCSAg ICpleHByOwogCU9pZAkJCWlucHV0VHlwZTsKIAlPaWQJCQl0YXJnZXRUeXBlOworCU9pZAkJCXRh cmdldFR5cGVjb2xsOwogCWludDMyCQl0YXJnZXRUeXBtb2Q7CiAJaW50CQkJbG9jYXRpb247CisJ Ym9vbAkJY2FuX2NvZXJjZSA9IHRydWU7CisJRXJyb3JTYXZlQ29udGV4dCBlc2NvbnRleHQgPSB7 VF9FcnJvclNhdmVDb250ZXh0fTsKIAogCS8qIExvb2sgdXAgdGhlIHR5cGUgbmFtZSBmaXJzdCAq LwogCXR5cGVuYW1lVHlwZUlkQW5kTW9kKHBzdGF0ZSwgdGMtPnR5cGVOYW1lLCAmdGFyZ2V0VHlw ZSwgJnRhcmdldFR5cG1vZCk7CiAKKwl0YXJnZXRUeXBlY29sbCA9IGdldF90eXBjb2xsYXRpb24o dGFyZ2V0VHlwZSk7CisKKwkvKiBub3cgbG9va2luZyBhdCBERUZBVUxUIGV4cHJlc3Npb24gKi8K KwlpZiAodGMtPnJhd19kZWZhdWx0KQorCXsKKwkJT2lkCQkJZGVmQ29sbDsKKworCQlkZWZleHBy ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHRjLT5yYXdfZGVmYXVsdCwgRVhQUl9LSU5EX0NBU1Rf REVGQVVMVCk7CisKKwkJZGVmZXhwciA9IGNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUsIGRl ZmV4cHIsIGV4cHJUeXBlKGRlZmV4cHIpLAorCQkJCQkJCQkJCXRhcmdldFR5cGUsIHRhcmdldFR5 cG1vZCwKKwkJCQkJCQkJCQlDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJCQkJCQlDT0VSQ0VfRVhQ TElDSVRfQ0FTVCwKKwkJCQkJCQkJCQlleHByTG9jYXRpb24oZGVmZXhwcikpOworCQlpZiAoZGVm ZXhwciA9PSBOVUxMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0NB Tk5PVF9DT0VSQ0UpLAorCQkJCQllcnJtc2coImNhbm5vdCBjb2VyY2UgJXMgZXhwcmVzc2lvbiB0 byB0eXBlICVzIiwKKwkJCQkJCSAgICJDQVNUIERFRkFVTFQiLAorCQkJCQkJICAgZm9ybWF0X3R5 cGVfYmUodGFyZ2V0VHlwZSkpLAorCQkJCQlwYXJzZXJfY29lcmNpb25fZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24odGMtPnJhd19kZWZhdWx0KSwgZGVmZXhwcikpOworCisJCWFzc2ln bl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBkZWZleHByKTsKKworCQkvKgorCQkgKiBUaGUgY29s bGF0aW9uIG9mIERFRkFVTFQgZXhwcmVzc2lvbiBtdXN0IG1hdGNoIHRoZSBjb2xsYXRpb24gb2Yg dGhlCisJCSAqIHRhcmdldCB0eXBlLgorCQkgKi8KKwkJZGVmQ29sbCA9IGV4cHJDb2xsYXRpb24o ZGVmZXhwcik7CisKKwkJaWYgKE9pZElzVmFsaWQodGFyZ2V0VHlwZWNvbGwpICYmIE9pZElzVmFs aWQoZGVmQ29sbCkgJiYKKwkJCXRhcmdldFR5cGVjb2xsICE9IGRlZkNvbGwpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQll cnJtc2coInRoZSBjb2xsYXRpb24gb2YgQ0FTVCBERUZBVUxUIGV4cHJlc3Npb24gY29uZmxpY3Rz IHdpdGggdGFyZ2V0IHR5cGUgY29sbGF0aW9uIiksCisJCQkJCWVycmRldGFpbCgiXCIlc1wiIHZl cnN1cyBcIiVzXCIiLAorCQkJCQkJCSAgZ2V0X2NvbGxhdGlvbl9uYW1lKHRhcmdldFR5cGVjb2xs KSwKKwkJCQkJCQkgIGdldF9jb2xsYXRpb25fbmFtZShkZWZDb2xsKSksCisJCQkJCXBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihkZWZleHByKSkpOworCX0KKwogCS8qCiAJ ICogSWYgdGhlIHN1YmplY3Qgb2YgdGhlIHR5cGVjYXN0IGlzIGFuIEFSUkFZW10gY29uc3RydWN0 IGFuZCB0aGUgdGFyZ2V0CiAJICogdHlwZSBpcyBhbiBhcnJheSB0eXBlLCB3ZSBpbnZva2UgdHJh bnNmb3JtQXJyYXlFeHByKCkgZGlyZWN0bHkgc28gdGhhdApAQCAtMjc0Myw3ICsyODY3LDggQEAg dHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpCiAJCQkJ CQkJCQkgIChBX0FycmF5RXhwciAqKSBhcmcsCiAJCQkJCQkJCQkgIHRhcmdldEJhc2VUeXBlLAog CQkJCQkJCQkJICBlbGVtZW50VHlwZSwKLQkJCQkJCQkJCSAgdGFyZ2V0QmFzZVR5cG1vZCk7CisJ CQkJCQkJCQkgIHRhcmdldEJhc2VUeXBtb2QsCisJCQkJCQkJCQkgIGRlZmV4cHIgPyAmY2FuX2Nv ZXJjZSA6IE5VTEwpOwogCQl9CiAJCWVsc2UKIAkJCWV4cHIgPSB0cmFuc2Zvcm1FeHByUmVjdXJz ZShwc3RhdGUsIGFyZyk7CkBAIC0yNzY0LDIwICsyODg5LDIwMCBAQCB0cmFuc2Zvcm1UeXBlQ2Fz dChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0YykKIAlpZiAobG9jYXRpb24gPCAwKQog CQlsb2NhdGlvbiA9IHRjLT50eXBlTmFtZS0+bG9jYXRpb247CiAKLQlyZXN1bHQgPSBjb2VyY2Vf dG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBleHByLCBpbnB1dFR5cGUsCi0JCQkJCQkJCSAgIHRhcmdl dFR5cGUsIHRhcmdldFR5cG1vZCwKLQkJCQkJCQkJICAgQ09FUkNJT05fRVhQTElDSVQsCi0JCQkJ CQkJCSAgIENPRVJDRV9FWFBMSUNJVF9DQVNULAotCQkJCQkJCQkgICBsb2NhdGlvbik7Ci0JaWYg KHJlc3VsdCA9PSBOVUxMKQorCS8qCisJICogY29lcmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVk IGlzIHVubGlrZWx5IHRvIG1vZGlmeSB0aGUgc291cmNlCisJICogZXhwcmVzc2lvbiwgYnV0IHdl IHN0aWxsIGNyZWF0ZSBhIGNvcHkgYmVmb3JlaGFuZC4gVGhpcyBhbGxvd3MKKwkgKiBTYWZlVHlw ZUNhc3RFeHByIHRvIHJlY2VpdmUgdGhlIHRyYW5zZm9ybWVkIHNvdXJjZSBleHByZXNzaW9uCisJ ICogdW5jaGFuZ2VkLgorCSAqLworCXNyY2V4cHIgPSBjb3B5T2JqZWN0KGV4cHIpOworCisJaWYg KGNhbl9jb2VyY2UpCisJeworCQljYXN0X2V4cHIgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGVfZXh0 ZW5kZWQocHN0YXRlLCBleHByLCBpbnB1dFR5cGUsCisJCQkJCQkJCQkJCQkgICB0YXJnZXRUeXBl LCB0YXJnZXRUeXBtb2QsCisJCQkJCQkJCQkJCQkgICBDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJ CQkJCQkJCSAgIENPRVJDRV9FWFBMSUNJVF9DQVNULAorCQkJCQkJCQkJCQkJICAgbG9jYXRpb24s CisJCQkJCQkJCQkJCQkgICBkZWZleHByID8gKE5vZGUgKikgJmVzY29udGV4dCA6IE5VTEwpOwor CisJCS8qCisJCSAqIElmIHRoaXMgaXMgYSBzaW1wbGUgQ0FTVCBjb25zdHJ1Y3QsIHJldHVybiB0 aGUgY2FzdCBleHByZXNzaW9uIG5vdywKKwkJICogb3IgdGhyb3cgYW4gZXJyb3IuCisJCSAqLwor CQlpZiAoZGVmZXhwciA9PSBOVUxMKQorCQl7CisJCQlpZiAoY2FzdF9leHByID09IE5VTEwpCisJ CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSks CisJCQkJCQkgZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRvICVzIiwKKwkJCQkJCQkJZm9y bWF0X3R5cGVfYmUoaW5wdXRUeXBlKSwKKwkJCQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlw ZSkpLAorCQkJCQkJIHBhcnNlcl9jb2VyY2lvbl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9u LCBleHByKSkpOworCisJCQlyZXR1cm4gY2FzdF9leHByOworCQl9CisKKwkJaWYgKGNhc3RfZXhw ciA9PSBOVUxMKQorCQkJY2FuX2NvZXJjZSA9IGZhbHNlOworCX0KKworCS8qIEZ1cnRoZXIgY2hl Y2sgQ0FTVCguLi4gREVGQVVMVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUikgY29uc3RydWN0ICov CisJQ29lcmNpb25FcnJvclNhZmVDaGVjayhwc3RhdGUsIGNhc3RfZXhwciwgc3JjZXhwciwgaW5w dXRUeXBlLAorCQkJCQkJICAgdGFyZ2V0VHlwZSk7CisKKwlpZiAoSXNBKHNyY2V4cHIsIENvbnN0 KSAmJiBjYXN0X2V4cHIgJiYgSXNBKGNhc3RfZXhwciwgRnVuY0V4cHIpKQorCXsKKwkJTm9kZQkg ICAqcmVzdWx0OworCisJCS8qCisJCSAqIHByZS1ldmFsdWF0ZSBzaW1wbGUgY29uc3RhbnQgY2Fz dCBleHByZXNzaW9uIGluIGEgZXJyb3Igc2FmZSB3YXkKKwkJICoKKwkJICogUmF0aW9uYWxlOgor CQkgKgorCQkgKiAxLiBXaGVuIGRlcGFyc2luZyBzYWZlIGNhc3QgZXhwcmVzc2lvbiAob3IgaW4g b3RoZXIgY2FzZXMpLAorCQkgKiBldmFsX2NvbnN0X2V4cHJlc3Npb25zIG1pZ2h0IGJlIGludm9r ZWQsIGJ1dCBpdCBjYW5ub3QgaGFuZGxlCisJCSAqIGVycm9ycyBncmFjZWZ1bGx5LgorCQkgKgor CQkgKiAyLiBFdmVuIGlmIEZ1bmNFeHByIChmb3IgY2FzdGZ1bmMpIG5vZGUgaGFzIHRocmVlIGFy Z3VtZW50cywgdGhlCisJCSAqIHNlY29uZCBhbmQgdGhpcmQgYXJndW1lbnRzIHdpbGwgYWxzbyBi ZSBjb25zdGFudHMgcGVyCisJCSAqIGNvZXJjZV90b190YXJnZXRfdHlwZS4gRXZhbHVhdGluZyBh IEZ1bmNFeHByIHdob3NlIGFyZ3VtZW50cyBhcmUKKwkJICogYWxsIENvbnN0IGlzIHNhZmUuCisJ CSAqLworCQlGdW5jRXhwciAgICpuZXdleHByID0gKEZ1bmNFeHByICopIGNvcHlPYmplY3QoY2Fz dF9leHByKTsKKworCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgKE5vZGUgKikgbmV3 ZXhwcik7CisKKwkJcmVzdWx0ID0gKE5vZGUgKikgZXZhbHVhdGVfZXhwcigoRXhwciAqKSBuZXdl eHByLAorCQkJCQkJCQkJCXRhcmdldFR5cGUsCisJCQkJCQkJCQkJdGFyZ2V0VHlwbW9kLAorCQkJ CQkJCQkJCXRhcmdldFR5cGVjb2xsLAorCQkJCQkJCQkJCShOb2RlICopICZlc2NvbnRleHQpOwor CQlpZiAocmVzdWx0ID09IE5VTEwpCisJCXsKKwkJCS8qIGNhbiBub3QgY29lcmNlLCBzZXQgY2Fu X2NvZXJjZSB0byBmYWxzZSAqLworCQkJY2FuX2NvZXJjZSA9IGZhbHNlOworCQkJY2FzdF9leHBy ID0gTlVMTDsKKwkJfQorCX0KKworCUFzc2VydChjYW5fY29lcmNlIHx8IGNhc3RfZXhwciA9PSBO VUxMKTsKKworCXN0YyA9IG1ha2VOb2RlKFNhZmVUeXBlQ2FzdEV4cHIpOworCXN0Yy0+c291cmNl X2V4cHIgPSBzcmNleHByOworCXN0Yy0+Y2FzdF9leHByID0gY2FzdF9leHByOworCXN0Yy0+ZGVm YXVsdF9leHByID0gZGVmZXhwcjsKKwlzdGMtPnJlc3VsdHR5cGUgPSB0YXJnZXRUeXBlOworCXN0 Yy0+cmVzdWx0dHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCXN0Yy0+cmVzdWx0Y29sbGlkID0gdGFy Z2V0VHlwZWNvbGw7CisJc3RjLT5sb2NhdGlvbiA9IGxvY2F0aW9uOworCisJcmV0dXJuIChOb2Rl ICopIHN0YzsKK30KKworLyoKKyAqIENoZWNrIHR5cGUgY29lcmNpb24gaXMgZXJyb3Igc2FmZSBv ciBub3QuICBJZiBub3QgdGhlbiByZXBvcnQgZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK0NvZXJj aW9uRXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpjYXN0ZXhwciwgTm9k ZSAqc291cmNlZXhwciwKKwkJCQkJICAgT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdldFR5cGUpCit7 CisJSGVhcFR1cGxlCXR1cGxlOworCWJvb2wJCWVycm9yc2FmZSA9IHRydWU7CisJYm9vbAkJdXNl cmRlZmluZWQgPSBmYWxzZTsKKwlPaWQJCQlpbnB1dEJhc2VUeXBlOworCU9pZAkJCXRhcmdldEJh c2VUeXBlOworCU9pZAkJCWlucHV0RWxlbWVudFR5cGU7CisJT2lkCQkJaW5wdXRFbGVtZW50QmFz ZVR5cGU7CisJT2lkCQkJdGFyZ2V0RWxlbWVudFR5cGU7CisJT2lkCQkJdGFyZ2V0RWxlbWVudEJh c2VUeXBlOworCisJLyoKKwkgKiBCaW5hcnkgY29lcmNpb24gY2FzdCBpcyBlcXVpdmFsZW50IHRv IG5vIGNhc3QgYXQgYWxsLiAgQ29lcmNlVmlhSU8gY2FuCisJICogYWxzbyBiZSBldmFsdWF0ZWQg aW4gYW4gZXJyb3Itc2FmZSBtYW5uZXIuIFNvIHNraXAgdGhlc2UgdHdvIGNhc2VzLgorCSAqLwor CWlmICghY2FzdGV4cHIgfHwgSXNBKGNhc3RleHByLCBSZWxhYmVsVHlwZSkgfHwKKwkJSXNBKGNh c3RleHByLCBDb2VyY2VWaWFJTykpCisJCXJldHVybjsKKworCS8qCisJICogVHlwZSBjYXN0IGlu dm9sdmluZyB3aXRoIHNvbWUgdHlwZXMgaXMgbm90IGVycm9yIHNhZmUsIGRvIHRoZSBjaGVjawor CSAqIG5vdy4gV2UgbmVlZCBjb25zaWRlciBkb21haW4gb3ZlciBhcnJheSBhbmQgYXJyYXkgb3Zl ciBkb21haW4gc2NhcmVuaW8uCisJICogV2UgYWxyZWFkeSBjaGVja2VkIHVzZXItZGVmaW5lZCB0 eXBlIGNhc3QgYWJvdmUuCisJICovCisJaW5wdXRFbGVtZW50VHlwZSA9IGdldF9lbGVtZW50X3R5 cGUoaW5wdXRUeXBlKTsKKworCWlmIChPaWRJc1ZhbGlkKGlucHV0RWxlbWVudFR5cGUpKQorCQlp bnB1dEVsZW1lbnRCYXNlVHlwZSA9IGdldEJhc2VUeXBlKGlucHV0RWxlbWVudFR5cGUpOworCWVs c2UKKwl7CisJCWlucHV0QmFzZVR5cGUgPSBnZXRCYXNlVHlwZShpbnB1dFR5cGUpOworCisJCWlu cHV0RWxlbWVudEJhc2VUeXBlID0gZ2V0X2VsZW1lbnRfdHlwZShpbnB1dEJhc2VUeXBlKTsKKwkJ aWYgKCFPaWRJc1ZhbGlkKGlucHV0RWxlbWVudEJhc2VUeXBlKSkKKwkJCWlucHV0RWxlbWVudEJh c2VUeXBlID0gaW5wdXRCYXNlVHlwZTsKKwl9CisKKwl0YXJnZXRFbGVtZW50VHlwZSA9IGdldF9l bGVtZW50X3R5cGUodGFyZ2V0VHlwZSk7CisKKwlpZiAoT2lkSXNWYWxpZCh0YXJnZXRFbGVtZW50 VHlwZSkpCisJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IGdldEJhc2VUeXBlKHRhcmdldEVsZW1l bnRUeXBlKTsKKwllbHNlCisJeworCQl0YXJnZXRCYXNlVHlwZSA9IGdldEJhc2VUeXBlKHRhcmdl dFR5cGUpOworCisJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IGdldF9lbGVtZW50X3R5cGUodGFy Z2V0QmFzZVR5cGUpOworCQlpZiAoIU9pZElzVmFsaWQodGFyZ2V0RWxlbWVudEJhc2VUeXBlKSkK KwkJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IHRhcmdldEJhc2VUeXBlOworCX0KKworCWlmIChp bnB1dEVsZW1lbnRCYXNlVHlwZSA9PSBNT05FWU9JRCB8fAorCQl0YXJnZXRFbGVtZW50QmFzZVR5 cGUgPT0gTU9ORVlPSUQgfHwKKwkJKGlucHV0RWxlbWVudEJhc2VUeXBlID09IENJUkNMRU9JRCAm JgorCQkgdGFyZ2V0RWxlbWVudEJhc2VUeXBlID09IFBPTFlHT05PSUQpKQorCXsKKwkJLyoKKwkJ ICogQ2FzdHMgaW52b2x2aW5nIE1PTkVZIHR5cGUgYXJlIG5vdCBlcnJvciBzYWZlLiBUaGUgQ0lS Q0xFIHRvCisJCSAqIFBPTFlHT04gY2FzdCBpcyBhbHNvIHVuc2FmZSBiZWNhdXNlIGl0IHJlbGll cyBvbiBhIFNRTC1sYW5ndWFnZQorCQkgKiBmdW5jdGlvbjsgb25seSBDLWxhbmd1YWdlIGZ1bmN0 aW9ucyBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmb3IKKwkJICogZXJyb3Igc2FmZSBjYXN0cy4K KwkJICovCisJCWVycm9yc2FmZSA9IGZhbHNlOworCX0KKworCWlmIChlcnJvcnNhZmUpCisJewor CQkvKiBMb29rIGluIHBnX2Nhc3QgKi8KKwkJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoQ0FTVFNP VVJDRVRBUkdFVCwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShpbnB1dEVsZW1lbnRCYXNlVHlw ZSksCisJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odGFyZ2V0RWxlbWVudEJhc2VUeXBlKSk7CisK KwkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQl7CisJCQlGb3JtX3BnX2Nhc3QgY2Fz dEZvcm0gPSAoRm9ybV9wZ19jYXN0KSBHRVRTVFJVQ1QodHVwbGUpOworCisJCQlpZiAoY2FzdEZv cm0tPm9pZCA+IEZpcnN0VW5waW5uZWRPYmplY3RJZCkKKwkJCXsKKwkJCQllcnJvcnNhZmUgPSBm YWxzZTsKKwkJCQl1c2VyZGVmaW5lZCA9IHRydWU7CisJCQl9CisKKwkJCVJlbGVhc2VTeXNDYWNo ZSh0dXBsZSk7CisJCX0KKwl9CisKKwlpZiAoIWVycm9yc2FmZSkKIAkJZXJlcG9ydChFUlJPUiwK LQkJCQkoZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLAotCQkJCSBlcnJtc2coImNhbm5v dCBjYXN0IHR5cGUgJXMgdG8gJXMiLAotCQkJCQkJZm9ybWF0X3R5cGVfYmUoaW5wdXRUeXBlKSwK LQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGUpKSwKLQkJCQkgcGFyc2VyX2NvZXJjaW9u X2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24sIGV4cHIpKSk7Ci0KLQlyZXR1cm4gcmVzdWx0 OworCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCWVycm1z ZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyB3aGVuICVzIGV4cHJlc3Npb24gaXMgc3BlY2lm aWVkIGluICVzIiwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUoaW5wdXRUeXBlKSwKKwkJCQkJICAg Zm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSksCisJCQkJCSAgICJERUZBVUxUIiwKKwkJCQkJICAg IkNBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IiKSwKKwkJCQl1c2VyZGVmaW5lZAorCQkJCT8g ZXJyaGludCgiU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHll dCBzdXBwb3J0ZWQiKQorCQkJCTogZXJyaGludCgiRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1 dCBkZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlIiksCisJCQkJcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgZXhwckxvY2F0aW9uKHNvdXJjZWV4cHIpKSk7CiB9CiAKIC8qCkBAIC0zMTkzLDYg KzM0OTgsOCBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQlj YXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgogCQljYXNlIEVYUFJfS0lORF9ET01BSU5f Q0hFQ0s6CiAJCQlyZXR1cm4gIkNIRUNLIjsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxU OgorCQkJcmV0dXJuICJDQVNUIERFRkFVTFQiOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVG QVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJCXJldHVybiAiREVG QVVMVCI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCAyNGY2NzQ1OTIzYi4uNTkwYThhNzg1 YzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjc0Myw2ICsyNzQzLDkgQEAgY2hlY2tf c3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGlu dCBsb2NhdGlvbikKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgogCQkJZXJyID0gXygi c2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0cmFp bnRzIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJZXJy ID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVG QVVMVCBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9E RUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygi c2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVz c2lvbnMiKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jCmluZGV4IGJiN2VjY2RlOWZkLi5lYmExN2Ni ZjI0MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAibGliL3N0cmluZ2luZm8uaCIKICNpbmNs dWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKKyNpbmNsdWRlICJub2Rlcy9taXNjbm9kZXMuaCIKICNp bmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXIuaCIK ICNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgpAQCAtNjYwLDYgKzY2MSwxOSBAQCBzdHJpbmdUeXBl RGF0dW0oVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0eXBtb2QpCiAJcmV0dXJuIE9p ZElucHV0RnVuY3Rpb25DYWxsKHR5cGlucHV0LCBzdHJpbmcsIHR5cGlvcGFyYW0sIGF0dHR5cG1v ZCk7CiB9CiAKKy8qIGVycm9yLXNhZmUgdmVyc2lvbiBvZiBzdHJpbmdUeXBlRGF0dW0gKi8KK2Jv b2wKK3N0cmluZ1R5cGVEYXR1bVNhZmUoVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0 eXBtb2QsCisJCQkJCU5vZGUgKmVzY29udGV4dCwgRGF0dW0gKnJlc3VsdCkKK3sKKwlGb3JtX3Bn X3R5cGUgdHlwZm9ybSA9IChGb3JtX3BnX3R5cGUpIEdFVFNUUlVDVCh0cCk7CisJT2lkCQkJdHlw aW5wdXQgPSB0eXBmb3JtLT50eXBpbnB1dDsKKwlPaWQJCQl0eXBpb3BhcmFtID0gZ2V0VHlwZUlP UGFyYW0odHApOworCisJcmV0dXJuIE9pZElucHV0RnVuY3Rpb25DYWxsU2FmZSh0eXBpbnB1dCwg c3RyaW5nLCB0eXBpb3BhcmFtLCBhdHR0eXBtb2QsCisJCQkJCQkJCQllc2NvbnRleHQsIHJlc3Vs dCk7Cit9CisKIC8qCiAgKiBHaXZlbiBhIHR5cGVpZCwgcmV0dXJuIHRoZSB0eXBlJ3MgdHlwcmVs aWQgKGFzc29jaWF0ZWQgcmVsYXRpb24pLCBpZiBhbnkuCiAgKiBSZXR1cm5zIEludmFsaWRPaWQg aWYgdHlwZSBpcyBub3QgYSBjb21wb3NpdGUgdHlwZS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNt ZC5jCmluZGV4IDk2ZjQ0MmM0MTQ1Li43YWM5NDg2Zjc4MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dXRpbGNtZC5jCkBAIC00OTQzLDcgKzQ5NDMsNyBAQCB0cmFuc2Zvcm1QYXJ0aXRpb25Cb3VuZFZh bHVlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqdmFsLAogCQlhc3NpZ25fZXhwcl9jb2xsYXRp b25zKHBzdGF0ZSwgdmFsdWUpOwogCQl2YWx1ZSA9IChOb2RlICopIGV4cHJlc3Npb25fcGxhbm5l cigoRXhwciAqKSB2YWx1ZSk7CiAJCXZhbHVlID0gKE5vZGUgKikgZXZhbHVhdGVfZXhwcigoRXhw ciAqKSB2YWx1ZSwgY29sVHlwZSwgY29sVHlwbW9kLAotCQkJCQkJCQkJICAgcGFydENvbGxhdGlv bik7CisJCQkJCQkJCQkgICBwYXJ0Q29sbGF0aW9uLCBOVUxMKTsKIAkJaWYgKCFJc0EodmFsdWUs IENvbnN0KSkKIAkJCWVsb2coRVJST1IsICJjb3VsZCBub3QgZXZhbHVhdGUgcGFydGl0aW9uIGJv dW5kIGV4cHJlc3Npb24iKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQv YXJyYXlmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYwppbmRleCBl NzFkMzI3NzNiNS4uYzJlZmZlMTA2MjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYwpA QCAtMzI4OSw2ICszMjg5LDE0IEBAIGFycmF5X21hcChEYXR1bSBhcnJheWQsCiAJCS8qIEFwcGx5 IHRoZSBnaXZlbiBleHByZXNzaW9uIHRvIHNvdXJjZSBlbGVtZW50ICovCiAJCXZhbHVlc1tpXSA9 IEV4ZWNFdmFsRXhwcihleHByc3RhdGUsIGVjb250ZXh0LCAmbnVsbHNbaV0pOwogCisJCS8qIEV4 aXQgZWFybHkgaWYgdGhlIGV2YWx1YXRpb24gZmFpbHMgKi8KKwkJaWYgKFNPRlRfRVJST1JfT0ND VVJSRUQoZXhwcnN0YXRlLT5lc2NvbnRleHQpKQorCQl7CisJCQlwZnJlZSh2YWx1ZXMpOworCQkJ cGZyZWUobnVsbHMpOworCQkJcmV0dXJuIChEYXR1bSkgMDsKKwkJfQorCiAJCWlmIChudWxsc1tp XSkKIAkJCWhhc251bGxzID0gdHJ1ZTsKIAkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5j CmluZGV4IDQxNmYxYTIxYWU0Li5hZTFhMTEzYjlhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRp bHMuYwpAQCAtMTA1NjIsNiArMTA1NjIsMjcgQEAgZ2V0X3J1bGVfZXhwcihOb2RlICpub2RlLCBk ZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfU2Fm ZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpzdGNleHByID0gY2Fz dE5vZGUoU2FmZVR5cGVDYXN0RXhwciwgbm9kZSk7CisKKwkJCQkvKgorCQkJCSAqIEhlcmUsIHdl IGNhbm5vdCBkZXBhcnNpbmcgY2FzdF9leHByIGRpcmVjdGx5LCBzaW5jZQorCQkJCSAqIHRyYW5z Zm9ybVR5cGVTYWZlQ2FzdCBtYXkgaGF2ZSBmb2xkZWQgaXQgaW50byBhIHNpbXBsZQorCQkJCSAq IGNvbnN0YW50IG9yIE5VTEwuIEluc3RlYWQsIHdlIHVzZSBzb3VyY2VfZXhwciBhbmQKKwkJCQkg KiBkZWZhdWx0X2V4cHIgdG8gcmVjb25zdHJ1Y3QgdGhlIENBU1QgREVGQVVMVCBjbGF1c2UuCisJ CQkJICovCisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJDQVNUKCIpOworCQkJCWdl dF9ydWxlX2V4cHIoc3RjZXhwci0+c291cmNlX2V4cHIsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7 CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiBBUyAlcyAiLAorCQkJCQkJCQkgZm9ybWF0 X3R5cGVfd2l0aF90eXBlbW9kKHN0Y2V4cHItPnJlc3VsdHR5cGUsCisJCQkJCQkJCQkJCQkJCSAg c3RjZXhwci0+cmVzdWx0dHlwbW9kKSk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYs ICJERUZBVUxUICIpOworCQkJCWdldF9ydWxlX2V4cHIoc3RjZXhwci0+ZGVmYXVsdF9leHByLCBj b250ZXh0LCBzaG93aW1wbGljaXQpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAi IE9OIENPTlZFUlNJT04gRVJST1IpIik7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0pzb25F eHByOgogCQkJewogCQkJCUpzb25FeHByICAgKmpleHByID0gKEpzb25FeHByICopIG5vZGU7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2ZtZ3IvZm1nci5jCmluZGV4IDA1OTg0ZTdlZjI2Li4yOGZlZDEyNWFmNyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv Zm1nci9mbWdyLmMKQEAgLTE3NTksNiArMTc1OSwyMCBAQCBPaWRJbnB1dEZ1bmN0aW9uQ2FsbChP aWQgZnVuY3Rpb25JZCwgY2hhciAqc3RyLCBPaWQgdHlwaW9wYXJhbSwgaW50MzIgdHlwbW9kKQog CXJldHVybiBJbnB1dEZ1bmN0aW9uQ2FsbCgmZmxpbmZvLCBzdHIsIHR5cGlvcGFyYW0sIHR5cG1v ZCk7CiB9CiAKKy8qIGVycm9yLXNhZmUgdmVyc2lvbiBvZiBPaWRJbnB1dEZ1bmN0aW9uQ2FsbCAq LworYm9vbAorT2lkSW5wdXRGdW5jdGlvbkNhbGxTYWZlKE9pZCBmdW5jdGlvbklkLCBjaGFyICpz dHIsIE9pZCB0eXBpb3BhcmFtLAorCQkJCQkJIGludDMyIHR5cG1vZCwgTm9kZSAqZXNjb250ZXh0 LAorCQkJCQkJIERhdHVtICpyZXN1bHQpCit7CisJRm1nckluZm8JZmxpbmZvOworCisJZm1ncl9p bmZvKGZ1bmN0aW9uSWQsICZmbGluZm8pOworCisJcmV0dXJuIElucHV0RnVuY3Rpb25DYWxsU2Fm ZSgmZmxpbmZvLCBzdHIsIHR5cGlvcGFyYW0sIHR5cG1vZCwKKwkJCQkJCQkJIGVzY29udGV4dCwg cmVzdWx0KTsKK30KKwogY2hhciAqCiBPaWRPdXRwdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9u SWQsIERhdHVtIHZhbCkKIHsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNF eHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCmluZGV4IGFhOWIzNjFmYTMx Li5mYTlkYjhmZDY4NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIu aAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC0yNjUsNiArMjY1LDcg QEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlFRU9QX1hNTEVYUFIsCiAJRUVPUF9KU09OX0NP TlNUUlVDVE9SLAogCUVFT1BfSVNfSlNPTiwKKwlFRU9QX1NBRkVUWVBFX0NBU1QsCiAJRUVPUF9K U09ORVhQUl9QQVRILAogCUVFT1BfSlNPTkVYUFJfQ09FUkNJT04sCiAJRUVPUF9KU09ORVhQUl9D T0VSQ0lPTl9GSU5JU0gsCkBAIC03NTAsNiArNzUxLDEyIEBAIHR5cGVkZWYgc3RydWN0IEV4cHJF dmFsU3RlcAogCQkJSnNvbklzUHJlZGljYXRlICpwcmVkOwkvKiBvcmlnaW5hbCBleHByZXNzaW9u IG5vZGUgKi8KIAkJfQkJCWlzX2pzb247CiAKKwkJLyogZm9yIEVFT1BfU0FGRVRZUEVfQ0FTVCAq LworCQlzdHJ1Y3QKKwkJeworCQkJc3RydWN0IFNhZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0ZTsK KwkJfQkJCXN0Y2V4cHI7CisKIAkJLyogZm9yIEVFT1BfSlNPTkVYUFJfUEFUSCAqLwogCQlzdHJ1 Y3QKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCBiL3Ny Yy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKaW5kZXggNTkyOWFhYmMzNTMuLjhmZmJhOTlk MzUyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCisrKyBiL3Ny Yy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKQEAgLTMyNCw2ICszMjQsNyBAQCBFeGVjUHJv Y05vZGUoUGxhblN0YXRlICpub2RlKQogICogcHJvdG90eXBlcyBmcm9tIGZ1bmN0aW9ucyBpbiBl eGVjRXhwci5jCiAgKi8KIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhwcihFeHByICpub2Rl LCBQbGFuU3RhdGUgKnBhcmVudCk7CitleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdEV4cHJFeHRl bmRlZChFeHByICpub2RlLCBOb2RlICplc2NvbnRleHQsIFBsYW5TdGF0ZSAqcGFyZW50KTsKIGV4 dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhwcldpdGhQYXJhbXMoRXhwciAqbm9kZSwgUGFyYW1M aXN0SW5mbyBleHRfcGFyYW1zKTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0UXVhbChMaXN0 ICpxdWFsLCBQbGFuU3RhdGUgKnBhcmVudCk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdENo ZWNrKExpc3QgKnF1YWwsIFBsYW5TdGF0ZSAqcGFyZW50KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2ZtZ3IuaCBiL3NyYy9pbmNsdWRlL2ZtZ3IuaAppbmRleCAyMmRkNjUyNjE2OS4uNDRkOWVh MDdjNDcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2ZtZ3IuaAorKysgYi9zcmMvaW5jbHVkZS9m bWdyLmgKQEAgLTc1MCw2ICs3NTAsOSBAQCBleHRlcm4gYm9vbCBEaXJlY3RJbnB1dEZ1bmN0aW9u Q2FsbFNhZmUoUEdGdW5jdGlvbiBmdW5jLCBjaGFyICpzdHIsCiAJCQkJCQkJCQkJRGF0dW0gKnJl c3VsdCk7CiBleHRlcm4gRGF0dW0gT2lkSW5wdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9uSWQs IGNoYXIgKnN0ciwKIAkJCQkJCQkJICBPaWQgdHlwaW9wYXJhbSwgaW50MzIgdHlwbW9kKTsKK2V4 dGVybiBib29sIE9pZElucHV0RnVuY3Rpb25DYWxsU2FmZShPaWQgZnVuY3Rpb25JZCwgY2hhciAq c3RyLCBPaWQgdHlwaW9wYXJhbSwKKwkJCQkJCQkJCSBpbnQzMiB0eXBtb2QsIE5vZGUgKmVzY29u dGV4dCwKKwkJCQkJCQkJCSBEYXR1bSAqcmVzdWx0KTsKIGV4dGVybiBjaGFyICpPdXRwdXRGdW5j dGlvbkNhbGwoRm1nckluZm8gKmZsaW5mbywgRGF0dW0gdmFsKTsKIGV4dGVybiBjaGFyICpPaWRP dXRwdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9uSWQsIERhdHVtIHZhbCk7CiBleHRlcm4gRGF0 dW0gUmVjZWl2ZUZ1bmN0aW9uQ2FsbChGbWdySW5mbyAqZmxpbmZvLCBTdHJpbmdJbmZvIGJ1ZiwK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvZXhlY25vZGVzLmgKaW5kZXggMDIyNjU0NTY5NzguLjE4NDJmYWQ4ZjQ1IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaApAQCAtMTA1OSw2ICsxMDU5LDI3IEBAIHR5cGVkZWYgc3RydWN0IERvbWFp bkNvbnN0cmFpbnRTdGF0ZQogCUV4cHJTdGF0ZSAgKmNoZWNrX2V4cHJzdGF0ZTsJLyogY2hlY2tf ZXhwcidzIGV2YWwgc3RhdGUsIG9yIE5VTEwgKi8KIH0gRG9tYWluQ29uc3RyYWludFN0YXRlOwog Cit0eXBlZGVmIHN0cnVjdCBTYWZlVHlwZUNhc3RTdGF0ZQoreworCVNhZmVUeXBlQ2FzdEV4cHIg KnN0Y2V4cHI7CisKKwkvKgorCSAqIEFkZHJlc3MgdG8ganVtcCB0byB3aGVuIHNraXBwaW5nIGFs bCB0aGUgc3RlcHMgdG8gZXZhdWxhdGUgdGhlIGRlZmF1bHQKKwkgKiBleHByZXNzaW9uLgorCSAq LworCWludAkJCWp1bXBfZW5kOworCisJLyoKKwkgKiBGb3IgZXJyb3Itc2FmZSBldmFsdWF0aW9u IG9mIGNvZXJjaW9ucy4gQSBwb2ludGVyIHRvIHRoaXMgaXMgcGFzc2VkIHRvCisJICogRXhlY0lu aXRFeHByUmVjKCkgd2hlbiBpbml0aWFsaXppbmcgdGhlIGNvZXJjaW9uIGV4cHJlc3Npb25zLCBz ZWUKKwkgKiBFeGVjSW5pdFNhZmVUeXBlQ2FzdEV4cHIuCisJICoKKwkgKiBSZXNldCBmb3IgZWFj aCBldmFsdWF0aW9uIG9mIEVFT1BfU0FGRVRZUEVfQ0FTVC4KKwkgKi8KKwlFcnJvclNhdmVDb250 ZXh0IGVzY29udGV4dDsKKworfSBTYWZlVHlwZUNhc3RTdGF0ZTsKKwogLyoKICAqIFN0YXRlIGZv ciBKc29uRXhwciBldmFsdWF0aW9uLCB0b28gYmlnIHRvIGlubGluZS4KICAqCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKaW5kZXggODk2YzRmMzRjYzAuLjYyZjI3ZDMwMWQwIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCkBAIC0zOTcsNiArMzk3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgVHlwZUNhc3QKIAlOb2Rl VGFnCQl0eXBlOwogCU5vZGUJICAgKmFyZzsJCQkvKiB0aGUgZXhwcmVzc2lvbiBiZWluZyBjYXN0 ZWQgKi8KIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0YXJnZXQgdHlwZSAqLworCU5v ZGUJICAgCSpyYXdfZGVmYXVsdDsJLyogdW50cmFuc2Zvcm1lZCBERUZBVUxUIGV4cHJlc3Npb24g Ki8KIAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtu b3duICovCiB9IFR5cGVDYXN0OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmlt bm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDUyMTFjYWRjMjU4 Li42M2RlOTYwZmRkNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgK KysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTc2OSw2ICs3NjksNDIgQEAg dHlwZWRlZiBlbnVtIENvZXJjaW9uRm9ybQogCUNPRVJDRV9TUUxfU1lOVEFYLAkJCS8qIGRpc3Bs YXkgd2l0aCBTUUwtbWFuZGF0ZWQgc3BlY2lhbCBzeW50YXggKi8KIH0gQ29lcmNpb25Gb3JtOwog CisvKgorICogU2FmZVR5cGVDYXN0RXhwciAtCisgKgkJVHJhbnNmb3JtZWQgcmVwcmVzZW50YXRp b24gb2YKKyAqIAkJQ0FTVChleHByIEFTIHR5cGVuYW1lIERFRkFVTFQgZXhwciBPTiBDT05WRVJT SU9OIEVSUk9SKQorICogCQlDQVNUKGV4cHIgQVMgdHlwZW5hbWUgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKQorICovCit0eXBlZGVmIHN0cnVjdCBTYWZlVHlwZUNhc3RFeHByCit7CisJRXhwcgkJ eHByOworCisJLyogdHJhbnNmb3JtZWQgc291cmNlIGV4cHJlc3Npb24gKi8KKwlOb2RlCSAgICpz b3VyY2VfZXhwcjsKKworCS8qCisJICogVGhlIHRyYW5zZm9ybWVkIGNhc3QgZXhwcmVzc2lvbjsg TlVMTCBpZiB3ZSBjYW4gbm90IGNvY2VyY2Ugc291cmNlCisJICogZXhwcmVzc2lvbiB0byB0aGUg dGFyZ2V0IHR5cGUKKwkgKi8KKwlOb2RlCSAgICpjYXN0X2V4cHIgcGdfbm9kZV9hdHRyKHF1ZXJ5 X2p1bWJsZV9pZ25vcmUpOworCisJLyogRmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGV4cHJlc3Np b24gaWYgY2FzdCBldmFsdWF0aW9uIGZhaWxzICovCisJTm9kZQkgICAqZGVmYXVsdF9leHByOwor CisJLyogY2FzdCByZXN1bHQgZGF0YSB0eXBlICovCisJT2lkCQkJcmVzdWx0dHlwZTsKKworCS8q IGNhc3QgcmVzdWx0IGRhdGEgdHlwZSB0eXBtb2QgKHVzdWFsbHkgLTEpICovCisJaW50MzIJCXJl c3VsdHR5cG1vZDsKKworCS8qIGNhc3QgcmVzdWx0IGRhdGEgdHlwZSBjb2xsYXRpb24gKi8KKwlP aWQJCQlyZXN1bHRjb2xsaWQ7CisKKwkvKiBPcmlnaW5hbCBTYWZlVHlwZUNhc3RFeHByJ3MgbG9j YXRpb24gKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsKKworfSBTYWZlVHlwZUNhc3RFeHByOworCiAv KgogICogRnVuY0V4cHIgLSBleHByZXNzaW9uIG5vZGUgZm9yIGEgZnVuY3Rpb24gY2FsbAogICoK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaCBiL3NyYy9pbmNs dWRlL29wdGltaXplci9vcHRpbWl6ZXIuaAppbmRleCA0ODVmNjQxYjNiNC4uYmVkODY0NTk0MzAg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaAorKysgYi9zcmMv aW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmgKQEAgLTE0Myw3ICsxNDMsNyBAQCBleHRlcm4g dm9pZCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVkX3Nhb3AoTm9kZSAqbm9kZSk7CiBleHRlcm4gTm9k ZSAqZXN0aW1hdGVfZXhwcmVzc2lvbl92YWx1ZShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9k ZSk7CiAKIGV4dGVybiBFeHByICpldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRf dHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKLQkJCQkJCSAgIE9pZCByZXN1bHRfY29sbGF0aW9u KTsKKwkJCQkJCSAgIE9pZCByZXN1bHRfY29sbGF0aW9uLCBOb2RlICplc2NvbnRleHQpOwogCiBl eHRlcm4gYm9vbCB2YXJfaXNfbm9ubnVsbGFibGUoUGxhbm5lckluZm8gKnJvb3QsIFZhciAqdmFy LCBib29sIHVzZV9yZWxfaW5mbyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9jb2VyY2UuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaAppbmRleCBh YWJhY2Q0OWI2NS4uMmM5MjE2MTc3NjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9jb2VyY2UuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfY29lcmNlLmgKQEAg LTQzLDExICs0MywyNCBAQCBleHRlcm4gTm9kZSAqY29lcmNlX3RvX3RhcmdldF90eXBlKFBhcnNl U3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJICAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LAogCQkJ CQkJCQkgICBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwKIAkJCQkJCQkJICAgaW50IGxvY2F0aW9uKTsK K2V4dGVybiBOb2RlICpjb2VyY2VfdG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQoUGFyc2VTdGF0ZSAq cHN0YXRlLAorCQkJCQkJCQkJCQlOb2RlICpleHByLAorCQkJCQkJCQkJCQlPaWQgZXhwcnR5cGUs CisJCQkJCQkJCQkJCU9pZCB0YXJnZXR0eXBlLAorCQkJCQkJCQkJCQlpbnQzMiB0YXJnZXR0eXBt b2QsCisJCQkJCQkJCQkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCwKKwkJCQkJCQkJCQkJQ29l cmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJCQkJCQkJCWludCBsb2NhdGlvbiwKKwkJCQkJCQkJCQkJ Tm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBib29sIGNhbl9jb2VyY2VfdHlwZShpbnQgbmFyZ3Ms IGNvbnN0IE9pZCAqaW5wdXRfdHlwZWlkcywgY29uc3QgT2lkICp0YXJnZXRfdHlwZWlkcywKIAkJ CQkJCQlDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQpOwogZXh0ZXJuIE5vZGUgKmNvZXJjZV90eXBl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCQkJCSBPaWQgaW5wdXRUeXBlSWQs IE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCiAJCQkJCQkgQ29lcmNpb25D b250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxvY2F0aW9uKTsKK2V4 dGVybiBOb2RlICpjb2VyY2VfdHlwZV9leHRlbmRlZChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg Km5vZGUsCisJCQkJCQkJCSAgT2lkIGlucHV0VHlwZUlkLCBPaWQgdGFyZ2V0VHlwZUlkLCBpbnQz MiB0YXJnZXRUeXBlTW9kLAorCQkJCQkJCQkgIENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29l cmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJCQkJCSAgaW50IGxvY2F0aW9uLCBOb2RlICplc2NvbnRl eHQpOwogZXh0ZXJuIE5vZGUgKmNvZXJjZV90b19kb21haW4oTm9kZSAqYXJnLCBPaWQgYmFzZVR5 cGVJZCwgaW50MzIgYmFzZVR5cGVNb2QsCiAJCQkJCQkJICBPaWQgdHlwZUlkLAogCQkJCQkJCSAg Q29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxvY2F0 aW9uLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggYTliZmZiOGE3OGYuLmRkNzI5NDRhNWEx IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTY3LDYgKzY3LDggQEAgdHlwZWRlZiBlbnVt IFBhcnNlRXhwcktpbmQKIAlFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRSwJLyogc2luZ2xlLXJvdyBW QUxVRVMgKGluIElOU0VSVCBvbmx5KSAqLwogCUVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5ULCAv KiBDSEVDSyBjb25zdHJhaW50IGZvciBhIHRhYmxlICovCiAJRVhQUl9LSU5EX0RPTUFJTl9DSEVD SywJCS8qIENIRUNLIGNvbnN0cmFpbnQgZm9yIGEgZG9tYWluICovCisJRVhQUl9LSU5EX0NBU1Rf REVGQVVMVCwJCS8qIGRlZmF1bHQgZXhwcmVzc2lvbiBpbgorCQkJCQkJCQkgICBDQVNUIERFRkFV TFQgT04gQ09OVkVSU0lPTiBFUlJPUiAqLwogCUVYUFJfS0lORF9DT0xVTU5fREVGQVVMVCwJLyog ZGVmYXVsdCB2YWx1ZSBmb3IgYSB0YWJsZSBjb2x1bW4gKi8KIAlFWFBSX0tJTkRfRlVOQ1RJT05f REVGQVVMVCwgLyogZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgZm9yIGZ1bmN0aW9uICovCiAJRVhQ Ul9LSU5EX0lOREVYX0VYUFJFU1NJT04sIC8qIGluZGV4IGV4cHJlc3Npb24gKi8KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfdHlwZS5oCmluZGV4IGEzMzU4MDdiMGIwLi5lMzAzYTEwNzNjMSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfdHlwZS5oCkBAIC00Nyw2ICs0Nyw4IEBAIGV4dGVybiBjaGFyICp0eXBlVHlwZU5hbWUo VHlwZSB0KTsKIGV4dGVybiBPaWQJdHlwZVR5cGVSZWxpZChUeXBlIHR5cCk7CiBleHRlcm4gT2lk CXR5cGVUeXBlQ29sbGF0aW9uKFR5cGUgdHlwKTsKIGV4dGVybiBEYXR1bSBzdHJpbmdUeXBlRGF0 dW0oVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0eXBtb2QpOworZXh0ZXJuIGJvb2wg c3RyaW5nVHlwZURhdHVtU2FmZShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1v ZCwKKwkJCQkJCQkJTm9kZSAqZXNjb250ZXh0LCBEYXR1bSAqcmVzdWx0KTsKIAogZXh0ZXJuIE9p ZAl0eXBlaWRUeXBlUmVsaWQoT2lkIHR5cGVfaWQpOwogZXh0ZXJuIE9pZAl0eXBlT3JEb21haW5U eXBlUmVsaWQoT2lkIHR5cGVfaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9jYXN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIwZGM3YjhmYWVhCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dApAQCAtMCwwICsxLDgx MCBAQAorU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0cyA9IDA7CistLSBDQVNUIERFRkFVTFQgT04gQ09O VkVSU0lPTiBFUlJPUgorU0VMRUNUIENBU1QoQicwMScgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVChCSVQnMDEnIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor IGRhdGUgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoVFJVRSBBUyBkYXRlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkYXRlIAorLS0tLS0tCisgCisoMSBy b3cpCisKK1NFTEVDVCBDQVNUKDEuMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyBkYXRlIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKDEgQVMg ZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQor IAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxMTExIEFTICJjaGFyIiBERUZBVUxUICdBJyBPTiBD T05WRVJTSU9OIEVSUk9SKTsKKyBjaGFyIAorLS0tLS0tCisgQQorKDEgcm93KQorCistLXRlc3Qg c291cmNlIGV4cHJlc3Npb24gaXMgYSB1bmtub3duIGNvbnN0CitWQUxVRVMgKENBU1QoJ2Vycm9y JyBBUyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IpKTsgLS1lcnJvcgorRVJST1I6 ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2VyOiAiZXJyb3IiCitMSU5FIDE6 IFZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgRVJST1IgT04gQ09OVkVSU0lPTiBFUlJP UikpOworICAgICAgICAgICAgICAgICAgICAgXgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50 ZWdlciBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisg ICAgICAgIAorKDEgcm93KQorCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFV TFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworIGNvbHVtbjEgCistLS0tLS0tLS0KKyAgICAg IDQyCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAxOCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAxOAorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVy cm9yCitFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1Qg REVGQVVMVCBleHByZXNzaW9ucworTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFV TFQgc3VtKDEpIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBv dmVyKCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgd2luZG93IGZ1bmN0 aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zCitMSU5FIDE6 IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3ZlcigpIE9OIENPTlZFUlNJ T04gRS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNU IENBU1QoJ2EnIGFzIGludCBERUZBVUxUIChTRUxFQ1QgTlVMTCkgT04gQ09OVkVSU0lPTiBFUlJP Uik7IC0tZXJyb3IKK0VSUk9SOiAgY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBDQVNUIERFRkFVTFQg ZXhwcmVzc2lvbgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgKFNFTEVD VCBOVUxMKSBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAnYicgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5 cGUgaW50ZWdlcjogImIiCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAn YicgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCitTRUxFQ1QgQ0FTVCgnYSc6OmludCBhcyBpbnQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZv ciB0eXBlIGludGVnZXI6ICJhIgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYSc6OmludCBhcyBpbnQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IuLi4KKyAgICAgICAgICAgICAgICAgICAg XgorLS10aGUgZGVmYXVsdCBleHByZXNzaW9u4oCZcyBjb2xsYXRpb24gc2hvdWxkIG1hdGNoIHRo ZSBjb2xsYXRpb24gb2YgdGhlIGNhc3QKKy0tdGFyZ2V0IHR5cGUKK1ZBTFVFUyAoQ0FTVCgnZXJy b3InIEFTIHRleHQgREVGQVVMVCAnMScgQ09MTEFURSAiQyIgT04gQ09OVkVSU0lPTiBFUlJPUikp OworRVJST1I6ICB0aGUgY29sbGF0aW9uIG9mIENBU1QgREVGQVVMVCBleHByZXNzaW9uIGNvbmZs aWN0cyB3aXRoIHRhcmdldCB0eXBlIGNvbGxhdGlvbgorTElORSAxOiBWQUxVRVMgKENBU1QoJ2Vy cm9yJyBBUyB0ZXh0IERFRkFVTFQgJzEnIENPTExBVEUgIkMiIE9OIENPTlYuLi4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogICJkZWZhdWx0 IiB2ZXJzdXMgIkMiCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yIERFRkFVTFQg JzEgMycgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgMSAz CisoMSByb3cpCisKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxU ICd7MSAzfScgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisg eyIxIDMifQorKDEgcm93KQorCistLSB0ZXN0IHNvdXJjZSBleHByZXNzaW9uIGNvbnRhaW4gc3Vi cXVlcnkKK1NFTEVDVCBDQVNUKChTRUxFQ1QgYiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxKSwg KFZBTFVFUygnSCcpKSBzKGIpKQorICAgICAgICAgICAgQVMgaW50MnZlY3RvcltdIERFRkFVTFQg J3sxIDN9JyAgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgYiAgICAKKy0tLS0tLS0tLQorIHsi MSAzIn0KKygxIHJvdykKKworU0VMRUNUIENBU1QoKFNFTEVDVCBBUlJBWSgoU0VMRUNUIGIgRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMikgZywgKFZBTFVFUygnSCcpKSBzKGIpKSkpCisgICAgICAg ICAgICBBUyBJTlRbXQorICAgICAgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitDUkVBVEUgRlVOQ1RJT04gcmV0 X2ludDgoKSBSRVRVUk5TIEJJR0lOVCBBUworJCQKK0JFR0lOIFJFVFVSTiAyMTQ3NDgzNjQ4OyBF TkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1VVEFCTEU7CitTRUxFQ1QgQ0FTVCgnYScgYXMg aW50IERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJS T1I6ICBpbnRlZ2VyIG91dCBvZiByYW5nZQorU0VMRUNUIENBU1QoJ2EnIGFzIGRhdGUgREVGQVVM VCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGNhbm5v dCBjb2VyY2UgQ0FTVCBERUZBVUxUIGV4cHJlc3Npb24gdG8gdHlwZSBkYXRlCitMSU5FIDE6IFNF TEVDVCBDQVNUKCdhJyBhcyBkYXRlIERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVS Ui4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIERFRkFV TFQgZXhwcmVzc2lvbiBjYW4gbm90IGJlIHNldC1yZXR1cm5pbmcKK0NSRUFURSBGVU5DVElPTiBy ZXRfc2V0aW50KCkgUkVUVVJOUyBTRVRPRiBpbnRlZ2VyIEFTCiskJAorQkVHSU4gUkVUVVJOIFFV RVJZIEVYRUNVVEUgJ3NlbGVjdCAxIHVuaW9uIGFsbCBzZWxlY3QgMSc7IEVORDsKKyQkCitMQU5H VUFHRSBwbHBnc3FsIElNTVVUQUJMRTsKK0NSRUFURSBUQUJMRSB0Y2FzdChhIHRleHRbXSwgYiBp bnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgSURFTlRJVFkpOworSU5TRVJUIElOVE8gdGNhc3Qg VkFMVUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9JyksICgne3sxLDJ9LCB7YyxkfX0nKSwgKCd7MTN9 Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZF UlNJT04gRVJST1IpIEZST00gdGNhc3Q7IC0tZXJyb3IKK0VSUk9SOiAgc2V0LXJldHVybmluZyBm dW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucworTElO RSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZF UlNJT04gRVIuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NF TEVDVCBDQVNUKHQgQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMiwgJyB8fCBiIHx8ICd9JyBPTiBD T05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CisgICAgIHQgICAgIAorLS0tLS0tLS0t LS0KKyB7MjEsMjIsMX0KKyB7MjEsMjIsMn0KKyB7MjEsMjIsM30KKyB7MjEsMjIsNH0KKyg0IHJv d3MpCisKK1NFTEVDVCBDQVNUKHQuYSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9Jzo6aW50W10g fHwgYiBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CisgICAgIGEgICAgIAor LS0tLS0tLS0tLS0KKyB7MTJ9CisgezIxLDIyLDJ9CisgezIxLDIyLDN9CisgezEzfQorKDQgcm93 cykKKworLS0gdGVzdCB3aXRoIHVzZXItZGVmaW5lZCB0eXBlLCBkb21haW4sIGFycmF5IG92ZXIg ZG9tYWluLCBkb21haW4gb3ZlciBhcnJheQorQ1JFQVRFIERPTUFJTiBkX2ludDQyIGFzIGludCBj aGVjayAodmFsdWUgPSA0MikgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfY2hhcjNfbm90X251 bGwgYXMgY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF92YXJjaGFyIGFzIHZhcmNo YXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfaW50X2FyciBhcyBpbnRbXSBjaGVjayAo dmFsdWUgPSAnezQxLCA0M30nKSBOT1QgTlVMTDsKK0NSRUFURSBUWVBFIGNvbXBfZG9tYWluX3dp dGhfdHlwbW9kIEFTIChhIGRfY2hhcjNfbm90X251bGwsIGIgaW50KTsKK0NSRUFURSBUWVBFIGNv bXAyIEFTIChhIGRfdmFyY2hhcik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBBUyBjb21wMiBERUZB VUxUICcoMTIzMiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHZhbHVl IHRvbyBsb25nIGZvciB0eXBlIGNoYXJhY3RlciB2YXJ5aW5nKDMpCitMSU5FIDE6IFNFTEVDVCBD QVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMyKScgT04gQ09OVkVSU0lPTi4uLgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBD QVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMpJyBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBjb21wMiAKKy0tLS0tLS0KKyAoMTIzKQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxMSBB UyBkX2ludDQyIERFRkFVTFQgNDEgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9S OiAgdmFsdWUgZm9yIGRvbWFpbiBkX2ludDQyIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImRf aW50NDJfY2hlY2siCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgZF9pbnQ0MiAKKy0tLS0tLS0tLQorICAgICAgNDIKKygxIHJvdykK KworU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBkb21haW4gZF9pbnQ0MiBkb2VzIG5vdCBhbGxvdyBu dWxsIHZhbHVlcworU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgZF9pbnQ0MiAKKy0tLS0tLS0tLQorICAgICAgNDIKKygxIHJvdykK KworU0VMRUNUIENBU1QoJygsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY29tcF9kb21haW5fd2l0aF90eXBtb2QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTlVM TCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxLDIpJyBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAoIjEgICIsMikKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOVUxMLDQy KScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCAnKDEyMzQsMiknIE9OIENPTlZF UlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHZhbHVlIHRvbyBsb25nIGZvciB0eXBlIGNo YXJhY3RlcigzKQorTElORSAxOiAuLi5TVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRo X3R5cG1vZCBERUZBVUxUICcoMTIzNCwyKScuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVChBUlJBWVs0 Miw0MV0gQVMgZF9pbnQ0MltdIERFRkFVTFQgJ3s0MiwgNDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezQyLDQyfQorKDEgcm93KQorCitTRUxFQ1QgQ0FT VChBUlJBWVs0Miw0MV0gQVMgZF9pbnRfYXJyIERFRkFVTFQgJ3s0MSwgNDN9JyBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezQxLDQzfQorKDEgcm93KQorCist LSB0ZXN0IGFycmF5IGNvZXJjZQorU0VMRUNUIENBU1QoYXJyYXlbJ2EnOjp0ZXh0XSBBUyBpbnRb XSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW52 YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogImEiCitTRUxFQ1QgQ0FTVChhcnJh eVsnYSddIEFTIGludFtdIERFRkFVTFQgQVJSQVlbMV0gT04gQ09OVkVSU0lPTiBFUlJPUik7Cisg YXJyYXkgCistLS0tLS0tCisgezF9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKGFycmF5WzExLjEy XSBBUyBkYXRlW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAor LS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChhcnJheVsxMTExMTExMTExMTExMTEx MV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAor LS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChhcnJheVtbJ2FiYyddLFs0NTZdXSBB UyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0t LS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCd7MTIzLGFiYyw0NTZ9JyBBUyBpbnRbXSBE RUZBVUxUICd7LTc4OX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworICBpbnQ0ICAKKy0tLS0tLS0t Cisgey03ODl9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCd7MjM0LGRlZiw1Njd9Jzo6dGV4dFtd IEFTIGludGVnZXJbXSBERUZBVUxUICd7LTEwMTF9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAg aW50NCAgIAorLS0tLS0tLS0tCisgey0xMDExfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJB WVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgezEsMn0KKygxIHJvdykKKworU0VM RUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGludFtdIERFRkFV TFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCisgIGFycmF5ICAKKy0tLS0t LS0tLQorIHsyMSwyMn0KKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwg Wyd0aHJlZSc6OmludCwgJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5 cGUgaW50ZWdlcjogInRocmVlIgorTElORSAxOiBTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMidd LCBbJ3RocmVlJzo6aW50LCAnYSddXSBBUyBpbnRbXSAuLi4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKEFSUkFZWzEsICd0aHJlZSc6OmludF0g QVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IK K0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogInRocmVlIgor TElORSAxOiBTRUxFQ1QgQ0FTVChBUlJBWVsxLCAndGhyZWUnOjppbnRdIEFTIGludFtdIERFRkFV TFQgJ3syMSwyMn0uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0tLS1zYWZl IGNhc3Qgd2l0aCBnZW9tZXRyeSBkYXRhIHR5cGUKK1NFTEVDVCBDQVNUKCcoMSwyKSc6OnBvaW50 IEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJveCAgICAg CistLS0tLS0tLS0tLS0tCisgKDEsMiksKDEsMikKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1so TmFOLDEpLChOYU4saW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIChO YU4sSW5maW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKDFlKzMwMCxJbmZpbml0eSks KDFlKzMwMCxJbmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgICAgICAgcG9pbnQgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisg KDFlKzMwMCxJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1soMSwyKSwoMyw0KV0n OjpwYXRoIGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIHBv bHlnb24gCistLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOYU4sMS4wLE5h TixpbmZpbml0eSknOjpib3ggQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIChOYU4sSW5maW5pdHkp CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBsc2Vn IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgbHNlZyAgICAgIAorLS0t LS0tLS0tLS0tLS0tCisgWygyLDIpLCgwLDApXQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIu MCwyLjAsMC4wLDAuMCknOjpib3ggQVMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgICAgICAgICAgcG9seWdvbiAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICgoMCwwKSwoMCwyKSwoMiwyKSwoMiwwKSkKKygxIHJvdykKKworU0VMRUNU IENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIHBhdGggCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENB U1QoJygyLjAsaW5maW5pdHksTmFOLGluZmluaXR5KSc6OmJveCBBUyBjaXJjbGUgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICBjaXJjbGUgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIDwoTmFOLEluZmluaXR5KSxOYU4+CisoMSByb3cpCisKK1NFTEVD VCBDQVNUKCcoTmFOLDAuMCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdvbiBBUyBw b2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHBvaW50ICAgICAg CistLS0tLS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENB U1QoJygyLjAsMC4wKSwoMi4wLDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBwYXRoIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgcGF0aCAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKCgyLDApLCgyLDQpLCgwLDApKQorKDEgcm93KQorCitTRUxF Q1QgQ0FTVCgnKDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIGJveCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJveCAgICAgCistLS0tLS0t LS0tLS0tCisgKDIsNCksKDAsMCkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOYU4saW5maW5p dHkpLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgY2lyY2xlIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgY2lyY2xlICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyA8KE5hTixJbmZpbml0eSksTmFOPgorKDEgcm93KQorCitTRUxF Q1QgQ0FTVCgnPCg1LDEpLDM+Jzo6Y2lyY2xlIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBwb2ludCAKKy0tLS0tLS0KKyAoNSwxKQorKDEgcm93KQorCitTRUxF Q1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgICAgIGJveCAgICAgCistLS0tLS0tLS0tLS0tCisgKDMsNSksKDMsNSkK KygxIHJvdykKKworLS0gbm90IHN1cHBvcnRlZCBiZWNhdXNlIHRoZSBjYXN0IGZyb20gY2lyY2xl IHRvIHBvbHlnb24gaXMgaW1wbGVtZW50ZWQgYXMgYSBTUUwKKy0tIGZ1bmN0aW9uLCB3aGljaCBj YW5ub3QgYmUgZXJyb3Itc2FmZS4KK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMg cG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5v dCBjYXN0IHR5cGUgY2lyY2xlIHRvIHBvbHlnb24gd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMg c3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNU IENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDLi4u CisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQg YnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUKKy0tLS0tc2FmZSBjYXN0IGZyb20vdG8g bW9uZXkgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLCBhbGwgdGhlIGZvbGxvd2luZyB3b3VsZCByZXN1 bHQgZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEw6OmludDggQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGJpZ2ludCB0byBt b25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04g Q09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjppbnQ4IEFTIG1vbmV5 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAgXgor SElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJy b3Igc2FmZQorU0VMRUNUIENBU1QoTlVMTDo6aW50NCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgaW50ZWdlciB0byBt b25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04g Q09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjppbnQ0IEFTIG1vbmV5 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAgXgor SElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJy b3Igc2FmZQorU0VMRUNUIENBU1QoTlVMTDo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgbnVtZXJpYyB0 byBtb25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4g T04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjpudW1lcmljIEFT IG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU8uLi4KKyAgICAgICAgICAgICAgICAgICAg XgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3Qg ZXJyb3Igc2FmZQorU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJpYyBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgbW9uZXkg dG8gbnVtZXJpYyB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAu Li4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjptb25leSBB UyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU8uLi4KKyAgICAgICAgICAgICAgICAg ICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBu b3QgZXJyb3Igc2FmZQorU0VMRUNUIENBU1QoTlVMTDo6bW9uZXlbXSBBUyBudW1lcmljW10gREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBl IG1vbmV5W10gdG8gbnVtZXJpY1tdIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmll ZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5V TEw6Om1vbmV5W10gQVMgbnVtZXJpY1tdIERFRkFVTFQgTlVMTCBPTiBDT05WRS4uLgorICAgICAg ICAgICAgICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZp bml0aW9uIGlzIG5vdCBlcnJvciBzYWZlCistLS0tLXNhZmUgY2FzdCBmcm9tIGJ5dGVhIHR5cGUg dG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1QgKCdceDExMjIzMzQ0NTU2Njc3ODg5OSc6 OmJ5dGVhIEFTIGludDggREVGQVVMVCAxOSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4IAor LS0tLS0tCisgICAxOQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTY3ODlBJzo6Ynl0 ZWEgQVMgaW50NCBERUZBVUxUIDIwIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0t LS0KKyAgIDIwCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Nic6OmJ5dGVhIEFTIGlu dDIgREVGQVVMVCAyMSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQyIAorLS0tLS0tCisgICAy MQorKDEgcm93KQorCistLS0tLXNhZmUgY2FzdCBmcm9tIGJpdCB0eXBlIHRvIG90aGVyIGRhdGEg dHlwZXMKK1NFTEVDVCBDQVNUKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJTlQgREVG QVVMVCAyMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAyMgorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCAoJzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElOVDgg REVGQVVMVCAyMyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4IAorLS0tLS0tCisgICAyMwor KDEgcm93KQorCistLS0tLXNhZmUgY2FzdCBmcm9tIHRleHQgdHlwZSB0byBvdGhlciBkYXRhIHR5 cGVzCitzZWxlY3QgQ0FTVCgnYS5iLmMuZCc6OnRleHQgYXMgcmVnY2xhc3MgZGVmYXVsdCBOVUxM IG9uIGNvbnZlcnNpb24gZXJyb3IpOworIHJlZ2NsYXNzIAorLS0tLS0tLS0tLQorIAorKDEgcm93 KQorCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdChjb2wwIHRleHQpOworSU5TRVJUIElOVE8g dGVzdF9zYWZlY2FzdChjb2wwKSBWQUxVRVMgKCc8dmFsdWU+b25lPC92YWx1ZScpOworU0VMRUNU IGNvbDAgYXMgdGV4dCwKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3JlZ2NsYXNzLAorICAgICAgIENBU1QoY29sMCBB UyByZWdjbGFzcyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTlVMTCBhcyBl eHBlY3RfdHJ1ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgImNoYXIiICBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fY2hhciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbmFtZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbmFtZSwKKyAgICAgICBDQVNU KGNvbDAgQVMgeG1sIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b194bWwK K0ZST00gdGVzdF9zYWZlY2FzdDsKKyAgICAgICB0ZXh0ICAgICAgICB8IHRvX3JlZ2NsYXNzIHwg ZXhwZWN0X3RydWUgfCB0b19jaGFyIHwgICAgICB0b19uYW1lICAgICAgfCB0b194bWwgCistLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLQorIDx2YWx1ZT5vbmU8L3ZhbHVlIHwgICAgICAgICAg ICAgfCB0ICAgICAgICAgICB8IDwgICAgICAgfCA8dmFsdWU+b25lPC92YWx1ZSB8IAorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLngnIGFzIGluZXQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIGluZXQgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENB U1QoJzE5Mi4xNjguMS4yLzMwJyBhcyBjaWRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBjaWRyIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcyMjowMDo1 YzowODo1NTowODowMTowMic6Om1hY2FkZHI4IGFzIG1hY2FkZHIgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIG1hY2FkZHIgCistLS0tLS0tLS0KKyAKKygxIHJvdykKKworLS0t LS1zYWZlIGNhc3QgYmV0d2VlZW4gcmFuZ2UgZGF0YSB0eXBlcworU0VMRUNUIENBU1QoJ1sxLDJd Jzo6aW50NHJhbmdlIEFTIGludDRtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyBpbnQ0bXVsdGlyYW5nZSAKKy0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMyl9Ciso MSByb3cpCisKK1NFTEVDVCBDQVNUKCdbMSwyXSc6OmludDhyYW5nZSBBUyBpbnQ4bXVsdGlyYW5n ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50OG11bHRpcmFuZ2UgCist LS0tLS0tLS0tLS0tLS0tCisge1sxLDMpfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWzEsMl0n OjpudW1yYW5nZSAgQVMgbnVtbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgbnVtbXVsdGlyYW5nZSAKKy0tLS0tLS0tLS0tLS0tLQorIHtbMSwyXX0KKygxIHJv dykKKworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6ZGF0ZXJhbmdlIEFTIGRh dGVtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgZGF0 ZW11bHRpcmFuZ2UgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1staW5maW5pdHks aW5maW5pdHldfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0n Ojp0c3JhbmdlIEFTIHRzbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgICAgICB0c211bHRpcmFuZ2UgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHtbLWluZmluaXR5LGluZmluaXR5XX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1staW5maW5p dHksaW5maW5pdHldJzo6dHN0enJhbmdlIEFTIHRzdHptdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgdHN0em11bHRpcmFuZ2UgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisge1staW5maW5pdHksaW5maW5pdHldfQorKDEgcm93KQorCistLS0t LXNhZmUgY2FzdCBiZXR3ZWVlbiBudW1lcmljIGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSB0ZXN0 X3NhZmVjYXN0MSgKKyAgY29sMSBmbG9hdDQsIGNvbDIgZmxvYXQ4LCBjb2wzIG51bWVyaWMsIGNv bDQgbnVtZXJpY1tdLAorICBjb2w1IGludDIgZGVmYXVsdCAzMjc2NywKKyAgY29sNiBpbnQ0IGRl ZmF1bHQgMzI3NjgsCisgIGNvbDcgaW50OCBkZWZhdWx0IDQyOTQ5NjcyOTYpOworSU5TRVJUIElO VE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCcxMS4xMjM0JywgJzExLjEyMzQnLCAnOTIyMzM3MjAz Njg1NDc3NTgwOCcsICd7MTEuMTIzNH0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gdGVzdF9z YWZlY2FzdDEgVkFMVUVTKCdpbmYnLCAnaW5mJywgJ2luZicsICd7MTEuMTIzNCwgMTIsIGluZiwg TmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJy1p bmYnLCAnLWluZicsICctaW5mJywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNb XSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJ05hTicsICdOYU4nLCAnTmFO JywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitTRUxFQ1QgY29sNSBh cyBpbnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQ0IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNSBB UyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAg ICBDQVNUKGNvbDUgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0OCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENB U1QoY29sNSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19udW1lcmljLAorICAgICAgIENBU1QoY29sNSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2Fm ZWNhc3QxOworIGludDIgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwg dG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCist LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyAzMjc2NyB8ICAg MzI3NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2 NyB8ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCisgMzI3NjcgfCAgIDMyNzY3IHwgICAz Mjc2NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMy NzY3IHwgICAgICAgICAgMzI3NjcuMAorIDMyNzY3IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3 NjcgfCAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgICAzMjc2NyB8ICAgICAg ICAgIDMyNzY3LjAKKyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2 NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4w CisoNCByb3dzKQorCitTRUxFQ1QgY29sNiBhcyBpbnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBp bnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAg IENBU1QoY29sNiBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDYgYXMgaW50OCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDYgYXMg ZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisg ICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sNiBhcyBudW1lcmljIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sNiBh cyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworIGludDQgIHwgdG9faW50MiB8IHRv X2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fbnVt ZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0KKyAzMjc2OCB8ICAgICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwgICAz Mjc2OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAzMjc2 OC4wCisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAg MzI3NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorIDMyNzY4 IHwgICAgICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAg IDMyNzY4IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAKKyAzMjc2OCB8ICAgICAgICAg fCAgIDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAg ICAgMzI3NjggfCAgICAgICAgICAzMjc2OC4wCisoNCByb3dzKQorCitTRUxFQ1QgY29sNyBhcyBp bnQ4LAorICAgICAgIENBU1QoY29sNyBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNyBBUyBpbnQ0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNyBBUyBv aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBD QVNUKGNvbDcgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0OCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1Qo Y29sNyBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljLAorICAgICAgIENBU1QoY29sNyBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNh c3QxOworICAgIGludDggICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8ICB0b19pbnQ4 ICAgfCAgdG9fZmxvYXQ0ICB8IHRvX2Zsb2F0OCAgfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19z Y2FsZSAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2 NzI5NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAg ICAgICAgCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2 NzI5NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAg ICAgICAgCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2 NzI5NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAg ICAgICAgCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2 NzI5NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAg ICAgICAgCisoNCByb3dzKQorCitTRUxFQ1QgY29sMyBhcyBudW1lcmljLAorICAgICAgIENBU1Qo Y29sMyBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQy LAorICAgICAgIENBU1QoY29sMyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMyBBUyBvaWQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDMgYXMgaW50OCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNU KGNvbDMgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19m bG9hdDQsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMyBhcyBudW1lcmljIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENB U1QoY29sMyBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworICAgICAgIG51bWVy aWMgICAgICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCAgdG9fZmxv YXQ0ICB8ICAgICAgdG9fZmxvYXQ4ICAgICAgIHwgICAgIHRvX251bWVyaWMgICAgICB8IHRvX251 bWVyaWNfc2NhbGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyA5MjIzMzcyMDM2ODU0Nzc1 ODA4IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgOS4yMjMzN2UrMTgg fCA5LjIyMzM3MjAzNjg1NDc4ZSsxOCB8IDkyMjMzNzIwMzY4NTQ3NzU4MDggfCAgICAgICAgICAg ICAgICAgCisgICAgICAgICAgICBJbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAg IHwgICAgICAgICB8ICAgIEluZmluaXR5IHwgICAgICAgICAgICAgSW5maW5pdHkgfCAgICAgICAg ICAgIEluZmluaXR5IHwgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAtSW5maW5pdHkgfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgIC1JbmZpbml0eSB8ICAgICAg ICAgICAgLUluZmluaXR5IHwgICAgICAgICAgIC1JbmZpbml0eSB8ICAgICAgICAgICAgICAgICAK KyAgICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAg ICAgIHwgICAgICAgICBOYU4gfCAgICAgICAgICAgICAgICAgIE5hTiB8ICAgICAgICAgICAgICAg ICBOYU4gfCAgICAgICAgICAgICAgTmFOCisoNCByb3dzKQorCitTRUxFQ1QgY29sNCBhcyBudW1f YXJyLAorICAgICAgIENBU1QoY29sNCBBUyBpbnQyW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIGludDJhcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDRbXSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50NGFyciwKKyAgICAgICBDQVNUKGNvbDQg YXMgaW50OFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ4YXJyLAor ICAgICAgIENBU1QoY29sNCBhcyBmbG9hdDRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgZjRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0OFtdIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBmOGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgbnVt ZXJpYygxMCwxKVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBudW1hcnIK K0ZST00gdGVzdF9zYWZlY2FzdDE7CisgICAgICAgICAgbnVtX2FyciAgICAgICAgICAgfCBpbnQy YXJyIHwgaW50NGFyciB8IGludDhhcnIgfCAgICAgICAgICAgZjRhcnIgICAgICAgICAgICB8ICAg ICAgICAgICBmOGFyciAgICAgICAgICAgIHwgbnVtYXJyIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0KKyB7MTEuMTIz NH0gICAgICAgICAgICAgICAgICB8IHsxMX0gICAgfCB7MTF9ICAgIHwgezExfSAgICB8IHsxMS4x MjM0fSAgICAgICAgICAgICAgICAgIHwgezExLjEyMzR9ICAgICAgICAgICAgICAgICAgfCB7MTEu MX0KKyB7MTEuMTIzNCwxMixJbmZpbml0eSxOYU59ICB8ICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgICB8IHsxMS4xMjM0LDEyLEluZmluaXR5LE5hTn0gIHwgezExLjEyMzQsMTIsSW5maW5pdHks TmFOfSAgfCAKKyB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8ICAgICAgICAgfCAgICAgICAg IHwgICAgICAgICB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgezExLjEyMzQsMTIsLUlu ZmluaXR5LE5hTn0gfCAKKyB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8ICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgICB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgezExLjEyMzQs MTIsLUluZmluaXR5LE5hTn0gfCAKKyg0IHJvd3MpCisKK1NFTEVDVCBjb2wxIGFzIGZsb2F0NCwK KyAgICAgICBDQVNUKGNvbDEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDEgQVMgaW50NCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDEgQVMgb2lkIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChj b2wxIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgs CisgICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDEg YXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJp YywKKyAgICAgICBDQVNUKGNvbDEgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsK KyAgZmxvYXQ0ICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCB0b19m bG9hdDQgfCAgICB0b19mbG9hdDggICAgIHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUg CistLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LQorICAgMTEuMTIzNCB8ICAgICAgMTEgfCAgICAgIDExIHwgICAgICAgIHwgICAgICAxMSB8ICAg MTEuMTIzNCB8IDExLjEyMzM5OTczNDQ5NzEgfCAgICAxMS4xMjM0IHwgICAgICAgICAgICAgMTEu MQorICBJbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICBJ bmZpbml0eSB8ICAgICAgICAgSW5maW5pdHkgfCAgIEluZmluaXR5IHwgICAgICAgICAgICAgICAg IAorIC1JbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8IC1J bmZpbml0eSB8ICAgICAgICAtSW5maW5pdHkgfCAgLUluZmluaXR5IHwgICAgICAgICAgICAgICAg IAorICAgICAgIE5hTiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAg ICAgIE5hTiB8ICAgICAgICAgICAgICBOYU4gfCAgICAgICAgTmFOIHwgICAgICAgICAgICAgIE5h TgorKDQgcm93cykKKworU0VMRUNUIGNvbDIgYXMgZmxvYXQ4LAorICAgICAgIENBU1QoY29sMiBB UyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAg ICAgIENBU1QoY29sMiBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDIgYXMgaW50OCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDIg YXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQs CisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMiBhcyBudW1lcmljIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29s MiBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworICBmbG9hdDggICB8IHRvX2lu dDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8 IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgMTEuMTIzNCB8ICAgICAgMTEgfCAgICAgIDEx IHwgICAgICAgIHwgICAgICAxMSB8ICAgMTEuMTIzNCB8ICAgMTEuMTIzNCB8ICAgIDExLjEyMzQg fCAgICAgICAgICAgICAxMS4xCisgIEluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAg ICAgfCAgICAgICAgIHwgIEluZmluaXR5IHwgIEluZmluaXR5IHwgICBJbmZpbml0eSB8ICAgICAg ICAgICAgICAgICAKKyAtSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAg ICAgICAgfCAtSW5maW5pdHkgfCAtSW5maW5pdHkgfCAgLUluZmluaXR5IHwgICAgICAgICAgICAg ICAgIAorICAgICAgIE5hTiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8 ICAgICAgIE5hTiB8ICAgICAgIE5hTiB8ICAgICAgICBOYU4gfCAgICAgICAgICAgICAgTmFOCiso NCByb3dzKQorCistLSBkYXRlL3RpbWVzdGFtcC9pbnRlcnZhbCByZWxhdGVkIHNhZmUgdHlwZSBj YXN0CitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDIoCisgIGNvbDAgZGF0ZSwgY29sMSB0aW1l c3RhbXAsIGNvbDIgdGltZXN0YW1wdHosCisgIGNvbDMgaW50ZXJ2YWwsIGNvbDQgdGltZSwgY29s NSB0aW1ldHopOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDIgVkFMVUVTCisoJy1pbmZpbml0 eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsCisgICcyMDAzLTAzLTA3 IDE1OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnLCAnMjAwMy0wNy0wNyAxNTozNjozOSBBbWVyaWNh L05ld19Zb3JrJyksCisoJy1pbmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0eScsICdpbmZp bml0eScsCisgICcxMTo1OTo1OS45OSBQTScsICcxMTo1OTo1OS45OSBQTSBQRFQnKTsKK1NFTEVD VCBjb2wwIGFzIGRhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNU KGNvbDAgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0 ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWV0eiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMCBB UyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyAgIGRhdGUgICAgfCB0b190aW1l c3RhbXB0eiB8ICB0b19kYXRlICB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9fdGltZXN0YW1w X3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLWluZmluaXR5IHwgLWluZmlu aXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQor IC1pbmZpbml0eSB8IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAgICAgfCAgICAg ICAgICAgfCAtaW5maW5pdHkKKygyIHJvd3MpCisKK1NFTEVDVCBjb2wxIGFzIHRpbWVzdGFtcCwK KyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMSBBUyBkYXRlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1Qo Y29sMSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l cywKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcCgyKSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitG Uk9NIHRlc3Rfc2FmZWNhc3QyOworIHRpbWVzdGFtcCB8IHRvX3RpbWVzdGFtcHR6IHwgIHRvX2Rh dGUgIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtaW5maW5pdHkgfCAtaW5maW5pdHkgICAgICB8IC1pbmZp bml0eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5CisgaW5maW5pdHkgIHwgaW5m aW5pdHkgICAgICAgfCBpbmZpbml0eSAgfCAgICAgICAgICB8ICAgICAgICAgICB8IGluZmluaXR5 CisoMiByb3dzKQorCitTRUxFQ1QgY29sMiBhcyB0aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNv bDIgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMiBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNU KGNvbDIgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190 aW1ldHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNh c3QyOworIHRpbWVzdGFtcHR6IHwgdG9fdGltZXN0YW1wdHogfCAgdG9fZGF0ZSAgfCB0b190aW1l cyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tCisgLWluZmluaXR5ICAgfCAtaW5maW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAg ICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5CisgaW5maW5pdHkgICAgfCBpbmZpbml0eSAg ICAgICB8IGluZmluaXR5ICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgaW5maW5pdHkKKygyIHJv d3MpCisKK1NFTEVDVCBjb2wzIGFzIGludGVydmFsLAorICAgICAgIENBU1QoY29sMyBBUyB0aW1l c3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1w dHosCisgICAgICAgQ0FTVChjb2wzIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMyBBUyB0 aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAg ICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUsCisgICAgICAgQ0FTVChjb2wzIEFTIGludGVy dmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9z Y2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyBpbnRlcnZhbCAgfCB0b190aW1lc3RhbXB0eiB8 IHRvX2RhdGUgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSB8IHRv X2ludGVydmFsX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tCisgLWluZmluaXR5IHwgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAg fCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAtaW5maW5pdHkKKyBpbmZpbml0eSAg fCAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICB8IGluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29sNCBhcyB0aW1l LAorICAgICAgIENBU1QoY29sNCBBUyB0aW1lKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDQgQVMgdGltZXR6IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBJUyBOT1QgTlVMTCBhcyB0b190aW1ldHosCisgICAg ICAgQ0FTVChjb2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9N IHRlc3Rfc2FmZWNhc3QyOworICAgIHRpbWUgICAgIHwgIHRvX3RpbWVzICAgfCB0b190aW1ldHog fCAgICAgICAgICB0b19pbnRlcnZhbCAgICAgICAgICB8ICAgICAgIHRvX2ludGVydmFsX3NjYWxl ICAgICAgIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IDE1OjM2OjM5ICAgIHwgMTU6MzY6MzkgICAgfCB0ICAgICAgICAgfCBAIDE1IGhvdXJzIDM2IG1p bnMgMzkgc2VjcyAgICB8IEAgMTUgaG91cnMgMzYgbWlucyAzOSBzZWNzCisgMjM6NTk6NTkuOTkg fCAyMzo1OTo1OS45OSB8IHQgICAgICAgICB8IEAgMjMgaG91cnMgNTkgbWlucyA1OS45OSBzZWNz IHwgQCAyMyBob3VycyA1OSBtaW5zIDU5Ljk5IHNlY3MKKygyIHJvd3MpCisKK1NFTEVDVCBjb2w1 IGFzIHRpbWV0eiwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSgyKSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZV9zY2FsZSwKKyAgICAg ICBDQVNUKGNvbDUgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0eig2KSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6X3NjYWxlLAorICAgICAgIENBU1QoY29s NSBBUyBpbnRlcnZhbCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0 MjsKKyAgICAgdGltZXR6ICAgICB8ICAgdG9fdGltZSAgIHwgdG9fdGltZV9zY2FsZSB8ICAgdG9f dGltZXR6ICAgIHwgdG9fdGltZXR6X3NjYWxlIHwgdG9faW50ZXJ2YWwgfCB0b19pbnRlcnZhbF9z Y2FsZSAKKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0KKyAxNTozNjozOS0wNCAgICB8IDE1OjM2OjM5ICAgIHwgMTU6MzY6MzkgICAgICB8 IDE1OjM2OjM5LTA0ICAgIHwgMTU6MzY6MzktMDQgICAgIHwgICAgICAgICAgICAgfCAKKyAyMzo1 OTo1OS45OS0wNyB8IDIzOjU5OjU5Ljk5IHwgMjM6NTk6NTkuOTkgICB8IDIzOjU5OjU5Ljk5LTA3 IHwgMjM6NTk6NTkuOTktMDcgIHwgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKK0NSRUFURSBU QUJMRSB0ZXN0X3NhZmVjYXN0Myhjb2wwIGpzb25iKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNh c3QzKGNvbDApIFZBTFVFUyAoJyJ0ZXN0IicpOworU0VMRUNUIGNvbDAgYXMganNvbmIsCisgICAg ICAgQ0FTVChjb2wwIEFTIGludGVnZXIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludGVnZXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG51bWVyaWMgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wwIEFT IGJpZ2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAg ICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0OCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMCBBUyBi b29sZWFuIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19ib29sLAorICAg ICAgIENBU1QoY29sMCBBUyBzbWFsbGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fc21hbGxpbnQKK0ZST00gdGVzdF9zYWZlY2FzdDM7CisganNvbmIgIHwgdG9faW50 ZWdlciB8IHRvX251bWVyaWMgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9f Ym9vbCB8IHRvX3NtYWxsaW50IAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyAidGVzdCIgfCAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAg fCAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAKKygxIHJvdykKKworLS0gdGVzdCBk ZXBhcnNlCitTRVQgZGF0ZXN0eWxlIFRPIElTTywgWU1EOworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2 aWV3IEFTCitTRUxFQ1QgQ0FTVCgnMTIzNCcgYXMgY2hhcigzKSBERUZBVUxUIC0xMTExIE9OIENP TlZFUlNJT04gRVJST1IpLAorICAgICAgIENBU1QoMSBhcyBkYXRlIERFRkFVTFQgKCgnMjAyNS1E ZWMtMDYnOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgY2FzdDAsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsn YSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2Fz dDEsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgZGF0 ZVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MiwKKyAgICAgICBD QVNUKEFSUkFZWyd0aHJlZSddIEFTIElOVFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyBjYXN0MzsKK1xzdiBzYWZlY2FzdHZpZXcKK0NSRUFURSBPUiBSRVBMQUNFIFZJ RVcgcHVibGljLnNhZmVjYXN0dmlldyBBUworIFNFTEVDVCBDQVNUKCcxMjM0JyBBUyBjaGFyYWN0 ZXIoMykgREVGQVVMVCAnLTExMTEnOjppbnRlZ2VyOjpjaGFyYWN0ZXIoMykgT04gQ09OVkVSU0lP TiBFUlJPUikgQVMgYnBjaGFyLAorICAgIENBU1QoMSBBUyBkYXRlIERFRkFVTFQgJzIwMjUtMTIt MDYnOjpkYXRlICsgcmFuZG9tKG1pbiA9PiAxLCBtYXggPT4gMSkgT04gQ09OVkVSU0lPTiBFUlJP UikgQVMgY2FzdDAsCisgICAgQ0FTVChBUlJBWVtBUlJBWVsxXSwgQVJSQVlbJ3RocmVlJ10sIEFS UkFZWydhJ11dIEFTIGludGVnZXJbXSBERUZBVUxUICd7MSwyfSc6OmludGVnZXJbXSBPTiBDT05W RVJTSU9OIEVSUk9SKSBBUyBjYXN0MSwKKyAgICBDQVNUKEFSUkFZW0FSUkFZWycxJywgJzInXSwg QVJSQVlbJ3RocmVlJywgJ2EnXV0gQVMgZGF0ZVtdIERFRkFVTFQgTlVMTDo6ZGF0ZVtdIE9OIENP TlZFUlNJT04gRVJST1IpIEFTIGNhc3QyLAorICAgIENBU1QoQVJSQVlbJ3RocmVlJ10gQVMgaW50 ZWdlcltdIERFRkFVTFQgJ3sxLDJ9Jzo6aW50ZWdlcltdIE9OIENPTlZFUlNJT04gRVJST1IpIEFT IGNhc3QzCitTRUxFQ1QgKiBGUk9NIHNhZmVjYXN0dmlldzsKKyBicGNoYXIgfCAgIGNhc3QwICAg IHwgY2FzdDEgfCBjYXN0MiB8IGNhc3QzIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0r LS0tLS0tLSstLS0tLS0tCisgMTIzICAgIHwgMjAyNS0xMi0wNyB8IHsxLDJ9IHwgICAgICAgfCB7 MSwyfQorKDEgcm93KQorCitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcxIEFTCitTRUxFQ1QgQ0FT VChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBkX2ludF9hcnIKKyAgICAgICAgICAg IERFRkFVTFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAg IENBU1QoQVJSQVlbWycxJywgJzInLCAxLjFdLCBbJ3RocmVlJywgdHJ1ZSwgQicwMSddXSBBUyBk X2ludF9hcnIKKyAgICAgICAgICAgIERFRkFVTFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIGNhc3QyOworXHN2IHNhZmVjYXN0dmlldzEKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcg cHVibGljLnNhZmVjYXN0dmlldzEgQVMKKyBTRUxFQ1QgQ0FTVChBUlJBWVtBUlJBWVsxXSwgQVJS QVlbJ3RocmVlJ10sIEFSUkFZWydhJ11dIEFTIGRfaW50X2FyciBERUZBVUxUICd7NDEsNDN9Jzo6 aW50ZWdlcltdOjpkX2ludF9hcnIgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDEsCisgICAg Q0FTVChBUlJBWVtBUlJBWVsxLCAyLCAxLjE6OmludGVnZXJdLCBBUlJBWVsndGhyZWUnLCB0cnVl LCAnMDEnOjoiYml0Il1dIEFTIGRfaW50X2FyciBERUZBVUxUICd7NDEsNDN9Jzo6aW50ZWdlcltd OjpkX2ludF9hcnIgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDIKK1NFTEVDVCAqIEZST00g c2FmZWNhc3R2aWV3MTsKKyAgY2FzdDEgIHwgIGNhc3QyICAKKy0tLS0tLS0tLSstLS0tLS0tLS0K KyB7NDEsNDN9IHwgezQxLDQzfQorKDEgcm93KQorCitSRVNFVCBkYXRlc3R5bGU7CistLXRlc3Qg Q0FTVCBERUZBVUxUIGV4cHJlc3Npb24gbXV0YWJpbGl0eQorQ1JFQVRFIElOREVYIGNhc3RfZXJy b3JfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50IERFRkFVTFQgcmFuZG9t KG1pbj0+MSwgbWF4PT4xKSBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOworRVJST1I6ICBmdW5jdGlv bnMgaW4gaW5kZXggZXhwcmVzc2lvbiBtdXN0IGJlIG1hcmtlZCBJTU1VVEFCTEUKK0NSRUFURSBJ TkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIHhpZCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsKK0VSUk9SOiAgZGF0YSB0eXBlIHhp ZCBoYXMgbm8gZGVmYXVsdCBvcGVyYXRvciBjbGFzcyBmb3IgYWNjZXNzIG1ldGhvZCAiYnRyZWUi CitISU5UOiAgWW91IG11c3Qgc3BlY2lmeSBhbiBvcGVyYXRvciBjbGFzcyBmb3IgdGhlIGluZGV4 IG9yIGRlZmluZSBhIGRlZmF1bHQgb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBkYXRhIHR5cGUuCitD UkVBVEUgSU5ERVggdGVzdF9zYWZlY2FzdDNfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNv bDAgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOyAtLW9rCitTRUxF Q1QgcGdfZ2V0X2luZGV4ZGVmKCd0ZXN0X3NhZmVjYXN0M19pZHgnOjpyZWdjbGFzcyk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGdfZ2V0X2luZGV4ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBJ TkRFWCB0ZXN0X3NhZmVjYXN0M19pZHggT04gcHVibGljLnRlc3Rfc2FmZWNhc3QzIFVTSU5HIGJ0 cmVlICgoQ0FTVChjb2wwIEFTIGludGVnZXIgREVGQVVMVCBOVUxMOjppbnRlZ2VyIE9OIENPTlZF UlNJT04gRVJST1IpKSkKKygxIHJvdykKKworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0OworRFJP UCBUQUJMRSB0ZXN0X3NhZmVjYXN0MTsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDI7CitEUk9Q IFRBQkxFIHRlc3Rfc2FmZWNhc3QzOworRFJPUCBUQUJMRSB0Y2FzdDsKK0RST1AgRlVOQ1RJT04g cmV0X2ludDg7CitEUk9QIEZVTkNUSU9OIHJldF9zZXRpbnQ7CitEUk9QIFRZUEUgY29tcF9kb21h aW5fd2l0aF90eXBtb2Q7CitEUk9QIFRZUEUgY29tcDI7CitEUk9QIERPTUFJTiBkX3ZhcmNoYXI7 CitEUk9QIERPTUFJTiBkX2ludDQyOworRFJPUCBET01BSU4gZF9jaGFyM19ub3RfbnVsbDsKK1JF U0VUIGV4dHJhX2Zsb2F0X2RpZ2l0czsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVf Y2FzdC5vdXQKaW5kZXggMGU2OTY0NGJjYTIuLjAwNTRlZDBlZjY3IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dApAQCAtODgsNiArODgsMTEgQEAgU0VMRUNUIDEy MzQ6OmludDQ6OmNhc3R0ZXN0dHlwZTsgLS0gU2hvdWxkIHdvcmsgbm93CiAgYmFyMTIzNAogKDEg cm93KQogCitTRUxFQ1QgQ0FTVCgxMjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGNhbm5vdCBjYXN0IHR5 cGUgaW50ZWdlciB0byBjYXN0dGVzdHR5cGUgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3Bl Y2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENB U1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFLi4uCisg ICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZp bmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAogLS0gY2hlY2sgZGVwZW5kZW5jaWVzIGdl bmVyYXRlZCBmb3IgdGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdChjbGFzc2lkLCBvYmpp ZCwgb2Jqc3ViaWQpIGFzIG9iaiwKICAgICAgICBwZ19kZXNjcmliZV9vYmplY3QocmVmY2xhc3Np ZCwgcmVmb2JqaWQsIHJlZm9ianN1YmlkKSBhcyBvYmpyZWYsCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9lcXVpdmNsYXNzLm91dAppbmRleCBhZDhhYjI5NGZmNi4uNWFlZTJjN2E5ZmIgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcXVpdmNsYXNzLm91dApAQCAtOTUsNiArOTUsMTMgQEAg Y3JlYXRlIGZ1bmN0aW9uIGludDhhbGlhczFjbXAoaW50OCwgaW50OGFsaWFzMSkgcmV0dXJucyBp bnQKICAgc3RyaWN0IGltbXV0YWJsZSBsYW5ndWFnZSBpbnRlcm5hbCBhcyAnYnRpbnQ4Y21wJzsK IGFsdGVyIG9wZXJhdG9yIGZhbWlseSBpbnRlZ2VyX29wcyB1c2luZyBidHJlZSBhZGQKICAgZnVu Y3Rpb24gMSBpbnQ4YWxpYXMxY21wIChpbnQ4LCBpbnQ4YWxpYXMxKTsKKy0tIGludDhhbGlhczIg YmluYXJ5LWNvZXJjaWJsZSB0byBpbnQ4LiBzbyB0aGlzIGlzIG9rCitzZWxlY3QgY2FzdCgnMSc6 OmludDggYXMgaW50OGFsaWFzMiBkZWZhdWx0IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7Cisg aW50OGFsaWFzMiAKKy0tLS0tLS0tLS0tLQorIDEKKygxIHJvdykKKwogY3JlYXRlIHRhYmxlIGVj MCAoZmYgaW50OCBwcmltYXJ5IGtleSwgZjEgaW50OCwgZjIgaW50OCk7CiBjcmVhdGUgdGFibGUg ZWMxIChmZiBpbnQ4IHByaW1hcnkga2V5LCBmMSBpbnQ4YWxpYXMxLCBmMiBpbnQ4YWxpYXMyKTsK IGNyZWF0ZSB0YWJsZSBlYzIgKHhmIGludDggcHJpbWFyeSBrZXksIHgxIGludDhhbGlhczEsIHgy IGludDhhbGlhczIpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggOTA1ZjliY2E5 NTkuLmU0MWIzNjhkZDk0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3Nj aGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTgxLDcg KzgxLDcgQEAgdGVzdDogY3JlYXRlX3RhYmxlX2xpa2UgYWx0ZXJfZ2VuZXJpYyBhbHRlcl9vcGVy YXRvciBtaXNjIGFzeW5jIGRic2l6ZSBtZXJnZSBtaXMKICMgY29sbGF0ZS5saW51eC51dGY4IGFu ZCBjb2xsYXRlLmljdS51dGY4IHRlc3RzIGNhbm5vdCBiZSBydW4gaW4gcGFyYWxsZWwgd2l0aCBl YWNoIG90aGVyCiAjIHBzcWwgZGVwZW5kcyBvbiBjcmVhdGVfYW0KICMgYW11dGlscyBkZXBlbmRz IG9uIGdlb21ldHJ5LCBjcmVhdGVfaW5kZXhfc3BnaXN0LCBoYXNoX2luZGV4LCBicmluCi10ZXN0 OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgcHNxbF9waXBlbGluZSBhbXV0aWxzIHN0YXRzX2V4 dCBjb2xsYXRlLmxpbnV4LnV0ZjggY29sbGF0ZS53aW5kb3dzLndpbjEyNTIKK3Rlc3Q6IHJ1bGVz IHBzcWwgcHNxbF9jcm9zc3RhYiBwc3FsX3BpcGVsaW5lIGFtdXRpbHMgc3RhdHNfZXh0IGNvbGxh dGUubGludXgudXRmOCBjb2xsYXRlLndpbmRvd3Mud2luMTI1MiBjYXN0CiAKICMgLS0tLS0tLS0t LQogIyBSdW4gdGhlc2UgYWxvbmUgc28gdGhleSBkb24ndCBydW4gb3V0IG9mIHBhcmFsbGVsIHdv cmtlcnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjliNmYzY2MwNjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvY2FzdC5zcWwKQEAgLTAsMCArMSwzNTAgQEAKK1NFVCBleHRyYV9mbG9hdF9kaWdpdHMgPSAw OworCistLSBDQVNUIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUgorU0VMRUNUIENBU1QoQicw MScgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VChCSVQnMDEnIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VM RUNUIENBU1QoVFJVRSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKDEuMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CitTRUxFQ1QgQ0FTVCgxMTExIEFTICJjaGFyIiBERUZBVUxUICdBJyBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKworLS10ZXN0IHNvdXJjZSBleHByZXNzaW9uIGlzIGEgdW5rbm93biBjb25zdAor VkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9S KSk7IC0tZXJyb3IKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSk7CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQg NDIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxU IDE4IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxU IHN1bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoJ2EnIGFz IGludCBERUZBVUxUIHN1bSgxKSBvdmVyKCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IK K1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAoU0VMRUNUIE5VTEwpIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYSc6OmludCBhcyBpbnQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKKy0tdGhlIGRlZmF1 bHQgZXhwcmVzc2lvbuKAmXMgY29sbGF0aW9uIHNob3VsZCBtYXRjaCB0aGUgY29sbGF0aW9uIG9m IHRoZSBjYXN0CistLXRhcmdldCB0eXBlCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyB0ZXh0IERF RkFVTFQgJzEnIENPTExBVEUgIkMiIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKworVkFMVUVTIChD QVNUKCdlcnJvcicgQVMgaW50MnZlY3RvciBERUZBVUxUICcxIDMnICBPTiBDT05WRVJTSU9OIEVS Uk9SKSk7CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yW10gREVGQVVMVCAnezEg M30nICBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisKKy0tIHRlc3Qgc291cmNlIGV4cHJlc3Npb24g Y29udGFpbiBzdWJxdWVyeQorU0VMRUNUIENBU1QoKFNFTEVDVCBiIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEpLCAoVkFMVUVTKCdIJykpIHMoYikpCisgICAgICAgICAgICBBUyBpbnQydmVjdG9y W10gREVGQVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKChT RUxFQ1QgQVJSQVkoKFNFTEVDVCBiIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpIGcsIChWQUxV RVMoJ0gnKSkgcyhiKSkpKQorICAgICAgICAgICAgQVMgSU5UW10KKyAgICAgICAgICAgIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworQ1JFQVRFIEZVTkNUSU9OIHJldF9pbnQ4 KCkgUkVUVVJOUyBCSUdJTlQgQVMKKyQkCitCRUdJTiBSRVRVUk4gMjE0NzQ4MzY0ODsgRU5EOwor JCQKK0xBTkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50 IERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNU IENBU1QoJ2EnIGFzIGRhdGUgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJST1Ip OyAtLWVycm9yCisKKy0tIERFRkFVTFQgZXhwcmVzc2lvbiBjYW4gbm90IGJlIHNldC1yZXR1cm5p bmcKK0NSRUFURSBGVU5DVElPTiByZXRfc2V0aW50KCkgUkVUVVJOUyBTRVRPRiBpbnRlZ2VyIEFT CiskJAorQkVHSU4gUkVUVVJOIFFVRVJZIEVYRUNVVEUgJ3NlbGVjdCAxIHVuaW9uIGFsbCBzZWxl Y3QgMSc7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRTsKKworQ1JFQVRFIFRB QkxFIHRjYXN0KGEgdGV4dFtdLCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyBJREVOVElU WSk7CitJTlNFUlQgSU5UTyB0Y2FzdCBWQUxVRVMgKCd7MTJ9JyksICgnezEsYSwgYn0nKSwgKCd7 ezEsMn0sIHtjLGR9fScpLCAoJ3sxM30nKTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVM VCByZXRfc2V0aW50KCkgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdDsgLS1lcnJvcgor U0VMRUNUIENBU1QodCBBUyB0ZXh0W10gREVGQVVMVCAnezIxLDIyLCAnIHx8IGIgfHwgJ30nIE9O IENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3QgYXMgdDsKK1NFTEVDVCBDQVNUKHQuYSBBUyBp bnRbXSBERUZBVUxUICd7MjEsMjJ9Jzo6aW50W10gfHwgYiBPTiBDT05WRVJTSU9OIEVSUk9SKSBG Uk9NIHRjYXN0IGFzIHQ7CisKKy0tIHRlc3Qgd2l0aCB1c2VyLWRlZmluZWQgdHlwZSwgZG9tYWlu LCBhcnJheSBvdmVyIGRvbWFpbiwgZG9tYWluIG92ZXIgYXJyYXkKK0NSRUFURSBET01BSU4gZF9p bnQ0MiBhcyBpbnQgY2hlY2sgKHZhbHVlID0gNDIpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBk X2NoYXIzX25vdF9udWxsIGFzIGNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfdmFy Y2hhciBhcyB2YXJjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMg aW50W10gY2hlY2sgKHZhbHVlID0gJ3s0MSwgNDN9JykgTk9UIE5VTEw7CitDUkVBVEUgVFlQRSBj b21wX2RvbWFpbl93aXRoX3R5cG1vZCBBUyAoYSBkX2NoYXIzX25vdF9udWxsLCBiIGludCk7CitD UkVBVEUgVFlQRSBjb21wMiBBUyAoYSBkX3ZhcmNoYXIpOworU0VMRUNUIENBU1QoJyhOVUxMKScg QVMgY29tcDIgREVGQVVMVCAnKDEyMzIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgor U0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMyknIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQxIE9OIENPTlZF UlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQg NDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMIEFTIGRfaW50NDIgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVChOVUxM IEFTIGRfaW50NDIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KCcoLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0 aF90eXBtb2QgREVGQVVMVCAnKDEsMiknIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCAnKDEyMzQs MiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKK1NFTEVDVCBDQVNUKEFSUkFZWzQy LDQxXSBBUyBkX2ludDQyW10gREVGQVVMVCAnezQyLCA0Mn0nIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoQVJSQVlbNDIsNDFdIEFTIGRfaW50X2FyciBERUZBVUxUICd7NDEsIDQz fScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tIHRlc3QgYXJyYXkgY29lcmNlCitTRUxFQ1Qg Q0FTVChhcnJheVsnYSc6OnRleHRdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoYXJyYXlbJ2EnXSBBUyBpbnRbXSBERUZBVUxU IEFSUkFZWzFdIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoYXJyYXlbMTEuMTJd IEFTIGRhdGVbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VChhcnJheVsxMTExMTExMTExMTExMTExMV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoYXJyYXlbWydhYmMnXSxbNDU2XV0gQVMgaW50W10g REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ3sxMjMsYWJj LDQ1Nn0nIEFTIGludFtdIERFRkFVTFQgJ3stNzg5fScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitT RUxFQ1QgQ0FTVCgnezIzNCxkZWYsNTY3fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAn ey0xMDExfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwg Wyd0aHJlZSddLFsnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMg aW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tb2sKK1NFTEVD VCBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnOjppbnQsICdhJ11dIEFTIGludFtdIERF RkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FT VChBUlJBWVsxLCAndGhyZWUnOjppbnRdIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKKy0tLS0tc2FmZSBjYXN0IHdpdGggZ2VvbWV0cnkg ZGF0YSB0eXBlCitTRUxFQ1QgQ0FTVCgnKDEsMiknOjpwb2ludCBBUyBib3ggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1soTmFOLDEpLChOYU4saW5maW5p dHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor U0VMRUNUIENBU1QoJ1soMWUrMzAwLEluZmluaXR5KSwoMWUrMzAwLEluZmluaXR5KV0nOjpsc2Vn IEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KCdbKDEsMiksKDMsNCldJzo6cGF0aCBhcyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTmFOLDEuMCxOYU4saW5maW5pdHkpJzo6Ym94IEFT IHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCco Mi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBsc2VnIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBwb2x5Z29u IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDIu MCwwLjAsMC4wKSc6OmJveCBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKCcoMi4wLGluZmluaXR5LE5hTixpbmZpbml0eSknOjpib3ggQVMgY2ly Y2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTmFO LDAuMCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdvbiBBUyBwb2ludCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwwLjApLCgyLjAs NC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4wLDQuMCksKDAuMCwwLjApJzo6 cG9seWdvbiBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNU IENBU1QoJyhOYU4saW5maW5pdHkpLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24g QVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KCc8KDUsMSksMz4nOjpjaXJjbGUgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBib3ggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLSBub3Qgc3VwcG9ydGVkIGJlY2F1c2UgdGhl IGNhc3QgZnJvbSBjaXJjbGUgdG8gcG9seWdvbiBpcyBpbXBsZW1lbnRlZCBhcyBhIFNRTAorLS0g ZnVuY3Rpb24sIHdoaWNoIGNhbm5vdCBiZSBlcnJvci1zYWZlLgorU0VMRUNUIENBU1QoJzwoMyw1 KSwwPic6OmNpcmNsZSBhcyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKworLS0tLS1zYWZlIGNhc3QgZnJvbS90byBtb25leSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQs IGFsbCB0aGUgZm9sbG93aW5nIHdvdWxkIHJlc3VsdCBlcnJvcgorU0VMRUNUIENBU1QoTlVMTDo6 aW50OCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVChOVUxMOjppbnQ0IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKE5VTEw6Om51bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJpYyBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMOjptb25leVtd IEFTIG51bWVyaWNbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0t c2FmZSBjYXN0IGZyb20gYnl0ZWEgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FT VCAoJ1x4MTEyMjMzNDQ1NTY2Nzc4ODk5Jzo6Ynl0ZWEgQVMgaW50OCBERUZBVUxUIDE5IE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Nzg5QSc6OmJ5dGVhIEFTIGlu dDQgREVGQVVMVCAyMCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdceDEyMzQ1 Nic6OmJ5dGVhIEFTIGludDIgREVGQVVMVCAyMSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0t LS1zYWZlIGNhc3QgZnJvbSBiaXQgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FT VCgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UIERFRkFVTFQgMjIgT04gQ09OVkVS U0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCAoJzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFT IElOVDggREVGQVVMVCAyMyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0tLS1zYWZlIGNhc3Qg ZnJvbSB0ZXh0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworc2VsZWN0IENBU1QoJ2EuYi5jLmQn Ojp0ZXh0IGFzIHJlZ2NsYXNzIGRlZmF1bHQgTlVMTCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKwor Q1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QoY29sMCB0ZXh0KTsKK0lOU0VSVCBJTlRPIHRlc3Rf c2FmZWNhc3QoY29sMCkgVkFMVUVTICgnPHZhbHVlPm9uZTwvdmFsdWUnKTsKKworU0VMRUNUIGNv bDAgYXMgdGV4dCwKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3JlZ2NsYXNzLAorICAgICAgIENBU1QoY29sMCBBUyBy ZWdjbGFzcyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTlVMTCBhcyBleHBl Y3RfdHJ1ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgImNoYXIiICBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fY2hhciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbmFtZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbmFtZSwKKyAgICAgICBDQVNUKGNv bDAgQVMgeG1sIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b194bWwKK0ZS T00gdGVzdF9zYWZlY2FzdDsKKworU0VMRUNUIENBU1QoJzE5Mi4xNjguMS54JyBhcyBpbmV0IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEu Mi8zMCcgYXMgY2lkciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVCgnMjI6MDA6NWM6MDg6NTU6MDg6MDE6MDInOjptYWNhZGRyOCBhcyBtYWNhZGRyIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0tLS1zYWZlIGNhc3QgYmV0d2VlZW4g cmFuZ2UgZGF0YSB0eXBlcworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50NHJhbmdlIEFTIGludDRt dWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KCdbMSwyXSc6OmludDhyYW5nZSBBUyBpbnQ4bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjpudW1yYW5nZSAgQVMgbnVtbXVs dGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgn Wy1pbmZpbml0eSxpbmZpbml0eV0nOjpkYXRlcmFuZ2UgQVMgZGF0ZW11bHRpcmFuZ2UgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5m aW5pdHldJzo6dHNyYW5nZSBBUyB0c211bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6dHN0enJhbmdl IEFTIHRzdHptdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKwor LS0tLS1zYWZlIGNhc3QgYmV0d2VlZW4gbnVtZXJpYyBkYXRhIHR5cGVzCitDUkVBVEUgVEFCTEUg dGVzdF9zYWZlY2FzdDEoCisgIGNvbDEgZmxvYXQ0LCBjb2wyIGZsb2F0OCwgY29sMyBudW1lcmlj LCBjb2w0IG51bWVyaWNbXSwKKyAgY29sNSBpbnQyIGRlZmF1bHQgMzI3NjcsCisgIGNvbDYgaW50 NCBkZWZhdWx0IDMyNzY4LAorICBjb2w3IGludDggZGVmYXVsdCA0Mjk0OTY3Mjk2KTsKK0lOU0VS VCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnMTEuMTIzNCcsICcxMS4xMjM0JywgJzkyMjMz NzIwMzY4NTQ3NzU4MDgnLCAnezExLjEyMzR9Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRl c3Rfc2FmZWNhc3QxIFZBTFVFUygnaW5mJywgJ2luZicsICdpbmYnLCAnezExLjEyMzQsIDEyLCBp bmYsIE5hTn0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVT KCctaW5mJywgJy1pbmYnLCAnLWluZicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1l cmljW10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdOYU4nLCAnTmFOJywg J05hTicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10pOworCitTRUxFQ1Qg Y29sNSBhcyBpbnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQ0IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1Qo Y29sNSBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwK KyAgICAgICBDQVNUKGNvbDUgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w1IGFzIGZs b2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAg ICAgIENBU1QoY29sNSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sNSBhcyBudW1lcmljKDEwLDEpIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRl c3Rfc2FmZWNhc3QxOworCitTRUxFQ1QgY29sNiBhcyBpbnQ0LAorICAgICAgIENBU1QoY29sNiBB UyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAg ICAgIENBU1QoY29sNiBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDYgYXMgaW50OCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDYg YXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQs CisgICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sNiBhcyBudW1lcmljIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29s NiBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworCitTRUxFQ1QgY29sNyBhcyBp bnQ4LAorICAgICAgIENBU1QoY29sNyBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNyBBUyBpbnQ0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNyBBUyBv aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBD QVNUKGNvbDcgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0OCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1Qo Y29sNyBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljLAorICAgICAgIENBU1QoY29sNyBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNh c3QxOworCitTRUxFQ1QgY29sMyBhcyBudW1lcmljLAorICAgICAgIENBU1QoY29sMyBBUyBpbnQy IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENB U1QoY29sMyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19p bnQ0LAorICAgICAgIENBU1QoY29sMyBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDMgYXMgaW50OCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxv YXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAg ICAgQ0FTVChjb2wzIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMyBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMyBhcyBu dW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1l cmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworCitTRUxFQ1QgY29sNCBhcyBudW1fYXJy LAorICAgICAgIENBU1QoY29sNCBBUyBpbnQyW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIGludDJhcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDRbXSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50NGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMg aW50OFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ4YXJyLAorICAg ICAgIENBU1QoY29sNCBhcyBmbG9hdDRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgZjRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0OFtdIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyBmOGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgbnVtZXJp YygxMCwxKVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBudW1hcnIKK0ZS T00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wxIGFzIGZsb2F0NCwKKyAgICAgICBDQVNU KGNvbDEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 MiwKKyAgICAgICBDQVNUKGNvbDEgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDEgQVMgb2lkIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wxIGFzIGludDgg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FT VChjb2wxIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f ZmxvYXQ0LAorICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDEgYXMgbnVtZXJpYyBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBD QVNUKGNvbDEgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNv bDIgYXMgZmxvYXQ4LAorICAgICAgIENBU1QoY29sMiBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMiBBUyBpbnQ0IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1Qo Y29sMiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwK KyAgICAgICBDQVNUKGNvbDIgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wyIGFzIGZs b2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAg ICAgIENBU1QoY29sMiBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMiBhcyBudW1lcmljKDEwLDEpIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRl c3Rfc2FmZWNhc3QxOworCistLSBkYXRlL3RpbWVzdGFtcC9pbnRlcnZhbCByZWxhdGVkIHNhZmUg dHlwZSBjYXN0CitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDIoCisgIGNvbDAgZGF0ZSwgY29s MSB0aW1lc3RhbXAsIGNvbDIgdGltZXN0YW1wdHosCisgIGNvbDMgaW50ZXJ2YWwsIGNvbDQgdGlt ZSwgY29sNSB0aW1ldHopOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDIgVkFMVUVTCisoJy1p bmZpbml0eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsCisgICcyMDAz LTAzLTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnLCAnMjAwMy0wNy0wNyAxNTozNjozOSBB bWVyaWNhL05ld19Zb3JrJyksCisoJy1pbmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0eScs ICdpbmZpbml0eScsCisgICcxMTo1OTo1OS45OSBQTScsICcxMTo1OTo1OS45OSBQTSBQRFQnKTsK KworU0VMRUNUIGNvbDAgYXMgZGF0ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wdHog REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAg ICAgIENBU1QoY29sMCBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXR6IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FT VChjb2wwIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29s MSBhcyB0aW1lc3RhbXAsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNU KGNvbDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0 ZSwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWV0eiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMSBB UyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDIgYXMgdGlt ZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIg QVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAg ICAgICBDQVNUKGNvbDIgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1l c3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFt cF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDMgYXMgaW50ZXJ2YWws CisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDMgQVMgZGF0ZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNU KGNvbDMgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXMsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lc3RhbXAoMikg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZSwK KyAgICAgICBDQVNUKGNvbDMgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitT RUxFQ1QgY29sNCBhcyB0aW1lLAorICAgICAgIENBU1QoY29sNCBBUyB0aW1lKDIpIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDQg QVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBJUyBOT1QgTlVMTCBh cyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDQg QVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dGVydmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sNSBhcyB0aW1l dHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX3RpbWUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUoMikgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVfc2NhbGUsCisgICAgICAgQ0FTVChj b2w1IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXR6LAorICAgICAgIENBU1QoY29sNSBBUyB0aW1ldHooNikgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3RpbWV0el9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50 ZXJ2YWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAor ICAgICAgIENBU1QoY29sNSBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK0NS RUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0Myhjb2wwIGpzb25iKTsKK0lOU0VSVCBJTlRPIHRlc3Rf c2FmZWNhc3QzKGNvbDApIFZBTFVFUyAoJyJ0ZXN0IicpOworU0VMRUNUIGNvbDAgYXMganNvbmIs CisgICAgICAgQ0FTVChjb2wwIEFTIGludGVnZXIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludGVnZXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG51bWVyaWMgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChj b2wwIEFTIGJpZ2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 OCwKKyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0OCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29s MCBBUyBib29sZWFuIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19ib29s LAorICAgICAgIENBU1QoY29sMCBBUyBzbWFsbGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fc21hbGxpbnQKK0ZST00gdGVzdF9zYWZlY2FzdDM7CisKKy0tIHRlc3Qg ZGVwYXJzZQorU0VUIGRhdGVzdHlsZSBUTyBJU08sIFlNRDsKK0NSRUFURSBWSUVXIHNhZmVjYXN0 dmlldyBBUworU0VMRUNUIENBU1QoJzEyMzQnIGFzIGNoYXIoMykgREVGQVVMVCAtMTExMSBPTiBD T05WRVJTSU9OIEVSUk9SKSwKKyAgICAgICBDQVNUKDEgYXMgZGF0ZSBERUZBVUxUICgoJzIwMjUt RGVjLTA2Jzo6ZGF0ZSArIHJhbmRvbShtaW49PjEsIG1heD0+MTo6aW50KSkpIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIGNhc3QwLAorICAgICAgIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxb J2EnXV0gQVMgaW50W10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNh c3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGRh dGVbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDIsCisgICAgICAg Q0FTVChBUlJBWVsndGhyZWUnXSBBUyBJTlRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgY2FzdDM7Citcc3Ygc2FmZWNhc3R2aWV3CitTRUxFQ1QgKiBGUk9NIHNhZmVj YXN0dmlldzsKKworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3MSBBUworU0VMRUNUIENBU1QoQVJS QVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgZF9pbnRfYXJyCisgICAgICAgICAgICBERUZB VUxUICd7NDEsNDN9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwKKyAgICAgICBDQVNU KEFSUkFZW1snMScsICcyJywgMS4xXSwgWyd0aHJlZScsIHRydWUsIEInMDEnXV0gQVMgZF9pbnRf YXJyCisgICAgICAgICAgICBERUZBVUxUICd7NDEsNDN9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyBjYXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcxCitTRUxFQ1QgKiBGUk9NIHNhZmVjYXN0dmlldzE7 CisKK1JFU0VUIGRhdGVzdHlsZTsKKworLS10ZXN0IENBU1QgREVGQVVMVCBleHByZXNzaW9uIG11 dGFiaWxpdHkKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0Mygo Q0FTVChjb2wwIGFzIGludCBERUZBVUxUIHJhbmRvbShtaW49PjEsIG1heD0+MSkgT04gQ09OVkVS U0lPTiBFUlJPUikpKTsKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVj YXN0MygoQ0FTVChjb2wwIGFzIHhpZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikp KTsKK0NSRUFURSBJTkRFWCB0ZXN0X3NhZmVjYXN0M19pZHggT04gdGVzdF9zYWZlY2FzdDMoKENB U1QoY29sMCBhcyBpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKSk7IC0tb2sK K1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoJ3Rlc3Rfc2FmZWNhc3QzX2lkeCc6OnJlZ2NsYXNzKTsK KworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0OworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MTsK K0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDI7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QzOwor RFJPUCBUQUJMRSB0Y2FzdDsKK0RST1AgRlVOQ1RJT04gcmV0X2ludDg7CitEUk9QIEZVTkNUSU9O IHJldF9zZXRpbnQ7CitEUk9QIFRZUEUgY29tcF9kb21haW5fd2l0aF90eXBtb2Q7CitEUk9QIFRZ UEUgY29tcDI7CitEUk9QIERPTUFJTiBkX3ZhcmNoYXI7CitEUk9QIERPTUFJTiBkX2ludDQyOwor RFJPUCBET01BSU4gZF9jaGFyM19ub3RfbnVsbDsKK1JFU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0czsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbAppbmRleCAzMjE4Nzg1M2NjNy4uMGExNWE3 OTVkODcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKQEAgLTYyLDYgKzYyLDcg QEAgJCQgU0VMRUNUICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7ICQkOwogCiBDUkVBVEUgQ0FT VCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggRlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0 KSBBUyBJTVBMSUNJVDsKIFNFTEVDVCAxMjM0OjppbnQ0OjpjYXN0dGVzdHR5cGU7IC0tIFNob3Vs ZCB3b3JrIG5vdworU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgogCiAtLSBjaGVjayBkZXBlbmRl bmNpZXMgZ2VuZXJhdGVkIGZvciB0aGF0CiBTRUxFQ1QgcGdfZGVzY3JpYmVfb2JqZWN0KGNsYXNz aWQsIG9iamlkLCBvYmpzdWJpZCkgYXMgb2JqLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvZXF1aXZjbGFzcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9lcXVpdmNsYXNzLnNx bAppbmRleCA3ZmMyMTU5MzQ5Yi4uNWFkMWQyNjMxMWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2VxdWl2Y2xhc3Muc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2VxdWl2 Y2xhc3Muc3FsCkBAIC05OCw2ICs5OCw5IEBAIGNyZWF0ZSBmdW5jdGlvbiBpbnQ4YWxpYXMxY21w KGludDgsIGludDhhbGlhczEpIHJldHVybnMgaW50CiBhbHRlciBvcGVyYXRvciBmYW1pbHkgaW50 ZWdlcl9vcHMgdXNpbmcgYnRyZWUgYWRkCiAgIGZ1bmN0aW9uIDEgaW50OGFsaWFzMWNtcCAoaW50 OCwgaW50OGFsaWFzMSk7CiAKKy0tIGludDhhbGlhczIgYmluYXJ5LWNvZXJjaWJsZSB0byBpbnQ4 LiBzbyB0aGlzIGlzIG9rCitzZWxlY3QgY2FzdCgnMSc6OmludDggYXMgaW50OGFsaWFzMiBkZWZh dWx0IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7CisKIGNyZWF0ZSB0YWJsZSBlYzAgKGZmIGlu dDggcHJpbWFyeSBrZXksIGYxIGludDgsIGYyIGludDgpOwogY3JlYXRlIHRhYmxlIGVjMSAoZmYg aW50OCBwcmltYXJ5IGtleSwgZjEgaW50OGFsaWFzMSwgZjIgaW50OGFsaWFzMik7CiBjcmVhdGUg dGFibGUgZWMyICh4ZiBpbnQ4IHByaW1hcnkga2V5LCB4MSBpbnQ4YWxpYXMxLCB4MiBpbnQ4YWxp YXMyKTsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggYjllNjcxZmNkYTguLjczMWE5ZTUy NDE2IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjY4OCw2ICsyNjg4LDggQEAgU1RS TEVOCiBTVgogU1lOQ0hST05JWkFUSU9OX0JBUlJJRVIKIFNZU1RFTV9JTkZPCitTYWZlVHlwZUNh c3RFeHByCitTYWZlVHlwZUNhc3RTdGF0ZQogU2FtcGxlU2NhbgogU2FtcGxlU2NhbkdldFNhbXBs ZVNpemVfZnVuY3Rpb24KIFNhbXBsZVNjYW5TdGF0ZQotLSAKMi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Disposition: attachment; filename="v17-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4ltm24 RnJvbSA4ZWFiZTRiZmNiZTdhNmMxMGQ0ODI1ZmZlMjU0ZTg3NTBjYzE0MTI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFN1biwgNCBKYW4gMjAyNiAwMToxMzo1NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDIzLzIzXSBlcnJvciBzYWZlIGZvciB1c2VyIGRlZmluZWQgQ1JFQVRFIENBU1QKCnBnX2Nhc3Qu Y2FzdGVycm9yc2FmZSBjb2x1bW4gdG8gaW5kaWNhdGUgY2FzdGZ1bmMgaXMgZXJyb3Igc2FmZSBv ciBub3QuCmNoYW5nZSBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0IHRvIGluZGljYXRl IHRoYXQgbW9zdCBvZiB0aGUgc3lzdGVtIGNhc3QKZnVuY3Rpb24gc3VwcG9ydCBzb2Z0IGVycm9y IGV2YWx1YXRpb24uCgpUaGUgU0FGRSBrZXl3b3JkIGlzIGludHJvZHVjZWQgZm9yIGFsbG93IHVz ZXItZGVmaW5lZCBDUkVBVEUgQ0FTVCBjYW4gYWxzbyBiZQpldmFsdWF0ZWQgaW4gc29mdC1lcnJv ci4KClRoZSBuZXcgc3lub3BzaXMgb2YgQ1JFQVRFIENBU1QgaXM6CkNSRUFURSBDQVNUIChzb3Vy Y2VfdHlwZSBBUyB0YXJnZXRfdHlwZSkKICAgIFdJVEggW1NBRkVdIEZVTkNUSU9OIGZ1bmN0aW9u X25hbWUgWyAoYXJndW1lbnRfdHlwZSBbLCAuLi5dKSBdCiAgICBbIEFTIEFTU0lHTk1FTlQgfCBB UyBJTVBMSUNJVCBdCgpUaGUgZm9sbG93aW5nIGNhc3QgaW4gY2l0ZXh0LCBoc3RvcmUgY29udHJp YiBtb2R1bGUgcmVmYWN0b3JlZCB0byBlcnJvciBzYWZlOgpDQVNUIChicGNoYXIgQVMgY2l0ZXh0 KQpDQVNUIChib29sZWFuIEFTIGNpdGV4dCkKQ0FTVCAoaW5ldCBBUyBjaXRleHQpCkNBU1QgKHRl eHRbXSBBUyBoc3RvcmUpCkNBU1QgKGhzdG9yZSBBUyBqc29uKQpDQVNUIChoc3RvcmUgQVMganNv bmIpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpj d3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIGNvbnRy aWIvY2l0ZXh0L2NpdGV4dC0tMS40LnNxbCAgICAgICAgICAgIHwgICA2ICstCiBjb250cmliL2Np dGV4dC9leHBlY3RlZC9jaXRleHQub3V0ICAgICAgICB8ICAyNCArLQogY29udHJpYi9jaXRleHQv ZXhwZWN0ZWQvY2l0ZXh0XzEub3V0ICAgICAgfCAgMjQgKy0KIGNvbnRyaWIvY2l0ZXh0L3NxbC9j aXRleHQuc3FsICAgICAgICAgICAgIHwgICA1ICstCiBjb250cmliL2hzdG9yZS9leHBlY3RlZC9o c3RvcmUub3V0ICAgICAgICB8ICAzNyArKysKIGNvbnRyaWIvaHN0b3JlL2hzdG9yZS0tMS4yLS0x LjMuc3FsICAgICAgIHwgICAyICstCiBjb250cmliL2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwgICAg ICAgICAgICB8ICAgNiArLQogY29udHJpYi9oc3RvcmUvaHN0b3JlX2lvLmMgICAgICAgICAgICAg ICAgfCAgIDggKy0KIGNvbnRyaWIvaHN0b3JlL3NxbC9oc3RvcmUuc3FsICAgICAgICAgICAgIHwg IDExICsKIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgIHwgIDE1ICsK IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbCAgICAgICAgIHwgIDE0ICstCiBkb2Mv c3JjL3NnbWwvc3ludGF4LnNnbWwgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19jYXN0LmMgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2Z1bmN0aW9uY21kcy5jICAgICAgIHwgICA5ICstCiBzcmMvYmFja2VuZC9jb21tYW5k cy90eXBlY21kcy5jICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICB8ICAxOCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YyAgICAgICAgICAgfCAgMTAgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQgICAg ICAgICAgIHwgMzMwICsrKysrKysrKysrLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY2FzdC5oICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaCAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAg ICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qu b3V0IHwgICA4ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0ICB8 ICAyNCArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsICAgICAgfCAgIDUg KwogMjQgZmlsZXMgY2hhbmdlZCwgMzUzIGluc2VydGlvbnMoKyksIDIxOCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9jaXRleHQtLTEuNC5zcWwgYi9jb250cmliL2Np dGV4dC9jaXRleHQtLTEuNC5zcWwKaW5kZXggN2IwNjE5ODkzNTIuLjVjODc4MjAzODhmIDEwMDY0 NAotLS0gYS9jb250cmliL2NpdGV4dC9jaXRleHQtLTEuNC5zcWwKKysrIGIvY29udHJpYi9jaXRl eHQvY2l0ZXh0LS0xLjQuc3FsCkBAIC04NSw5ICs4NSw5IEBAIENSRUFURSBDQVNUIChjaXRleHQg QVMgdmFyY2hhcikgV0lUSE9VVCBGVU5DVElPTiBBUyBJTVBMSUNJVDsKIENSRUFURSBDQVNUIChj aXRleHQgQVMgYnBjaGFyKSAgV0lUSE9VVCBGVU5DVElPTiBBUyBBU1NJR05NRU5UOwogQ1JFQVRF IENBU1QgKHRleHQgQVMgY2l0ZXh0KSAgICBXSVRIT1VUIEZVTkNUSU9OIEFTIEFTU0lHTk1FTlQ7 CiBDUkVBVEUgQ0FTVCAodmFyY2hhciBBUyBjaXRleHQpIFdJVEhPVVQgRlVOQ1RJT04gQVMgQVNT SUdOTUVOVDsKLUNSRUFURSBDQVNUIChicGNoYXIgQVMgY2l0ZXh0KSAgV0lUSCBGVU5DVElPTiBj aXRleHQoYnBjaGFyKSAgQVMgQVNTSUdOTUVOVDsKLUNSRUFURSBDQVNUIChib29sZWFuIEFTIGNp dGV4dCkgV0lUSCBGVU5DVElPTiBjaXRleHQoYm9vbGVhbikgQVMgQVNTSUdOTUVOVDsKLUNSRUFU RSBDQVNUIChpbmV0IEFTIGNpdGV4dCkgICAgV0lUSCBGVU5DVElPTiBjaXRleHQoaW5ldCkgICAg QVMgQVNTSUdOTUVOVDsKK0NSRUFURSBDQVNUIChicGNoYXIgQVMgY2l0ZXh0KSAgV0lUSCBTQUZF IEZVTkNUSU9OIGNpdGV4dChicGNoYXIpICBBUyBBU1NJR05NRU5UOworQ1JFQVRFIENBU1QgKGJv b2xlYW4gQVMgY2l0ZXh0KSBXSVRIIFNBRkUgRlVOQ1RJT04gY2l0ZXh0KGJvb2xlYW4pIEFTIEFT U0lHTk1FTlQ7CitDUkVBVEUgQ0FTVCAoaW5ldCBBUyBjaXRleHQpICAgIFdJVEggU0FGRSBGVU5D VElPTiBjaXRleHQoaW5ldCkgICAgQVMgQVNTSUdOTUVOVDsKIAogLS0KIC0tIE9wZXJhdG9yIEZ1 bmN0aW9ucy4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQg Yi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0CmluZGV4IDMzZGExOWQ4ZGY0Li5i ZTMyODcxNTQ5MiAxMDA2NDQKLS0tIGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91 dAorKysgYi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0CkBAIC0xMCwxMSArMTAs MTIgQEAgV0hFUkUgb3BjLm9pZCA+PSAxNjM4NCBBTkQgTk9UIGFtdmFsaWRhdGUob3BjLm9pZCk7 CiAtLS0tLS0tLSstLS0tLS0tLS0KICgwIHJvd3MpCiAKLVNFTEVDVCBDQVNUKCdhYmMnOjpicGNo YXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgot RVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNoYXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZBVUxU IGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IK LUxJTkUgMTogU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJLi4uCi0gICAgICAgICAgICAgICAgICAgIF4KLUhJTlQ6ICBTYWZlIHR5cGUg Y2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZAorU0VMRUNU IENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgYWJjCisoMSByb3cpCisKIC0tIFRlc3QgdGhl IG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5kIDw+LgogU0VM RUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsKQEAgLTUyMyw2ICs1MjQsMTIgQEAg U0VMRUNUIHRydWU6OmNpdGV4dCA9ICd0cnVlJyBBUyB0OwogIHQKICgxIHJvdykKIAorU0VMRUNU IENBU1QodHJ1ZSBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor IGNpdGV4dCAKKy0tLS0tLS0tCisgdHJ1ZQorKDEgcm93KQorCiBTRUxFQ1QgJ3RydWUnOjpjaXRl eHQ6OmJvb2xlYW4gPSB0cnVlIEFTIHQ7CiAgdCAKIC0tLQpAQCAtNzg3LDYgKzc5NCwxMyBAQCBT RUxFQ1QgJzE5Mi4xNjguMTAwLjEyOCc6OmNpdGV4dDo6aW5ldCA9ICcxOTIuMTY4LjEwMC4xMjgn OjppbmV0IEFTIHQ7CiAgdAogKDEgcm93KQogCitTRUxFQ1QgQ0FTVChpbmV0ICcxOTIuMTY4LjEw MC4xMjgnIEFTIGNpdGV4dAorICAgICAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgPSAnMTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0OworIHQgCistLS0KKyB0CisoMSByb3cp CisKIFNFTEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjptYWNhZGRyOjpjaXRleHQgPSAnMDg6MDA6 MmI6MDE6MDI6MDMnIEFTIHQ7CiAgdCAKIC0tLQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQv ZXhwZWN0ZWQvY2l0ZXh0XzEub3V0IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEu b3V0CmluZGV4IDY0N2VlYTE5MTQyLi5lOWY4NDU0YzY2MiAxMDA2NDQKLS0tIGEvY29udHJpYi9j aXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CisrKyBiL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVk L2NpdGV4dF8xLm91dApAQCAtMTAsMTEgKzEwLDEyIEBAIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQg QU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogLS0tLS0tLS0rLS0tLS0tLS0tCiAoMCByb3dz KQogCi1TRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKLUVSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBjaGFy YWN0ZXIgdG8gY2l0ZXh0IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBD QVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCi1MSU5FIDE6IFNFTEVDVCBDQVNUKCdhYmMnOjpi cGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSS4uLgotICAgICAgICAgICAg ICAgICAgICBeCi1ISU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBh cmUgbm90IHlldCBzdXBwb3J0ZWQKK1NFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaXRleHQgCistLS0tLS0tLQor IGFiYworKDEgcm93KQorCiAtLSBUZXN0IHRoZSBvcGVyYXRvcnMgYW5kIGluZGV4aW5nIGZ1bmN0 aW9ucwogLS0gVGVzdCA9IGFuZCA8Pi4KIFNFTEVDVCAnYSc6OmNpdGV4dCA9ICdhJzo6Y2l0ZXh0 IEFTIHQ7CkBAIC01MjMsNiArNTI0LDEyIEBAIFNFTEVDVCB0cnVlOjpjaXRleHQgPSAndHJ1ZScg QVMgdDsKICB0CiAoMSByb3cpCiAKK1NFTEVDVCBDQVNUKHRydWUgQVMgY2l0ZXh0IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaXRleHQgCistLS0tLS0tLQorIHRydWUKKygx IHJvdykKKwogU0VMRUNUICd0cnVlJzo6Y2l0ZXh0Ojpib29sZWFuID0gdHJ1ZSBBUyB0OwogIHQg CiAtLS0KQEAgLTc4Nyw2ICs3OTQsMTMgQEAgU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjpjaXRl eHQ6OmluZXQgPSAnMTkyLjE2OC4xMDAuMTI4Jzo6aW5ldCBBUyB0OwogIHQKICgxIHJvdykKIAor U0VMRUNUIENBU1QoaW5ldCAnMTkyLjE2OC4xMDAuMTI4JyBBUyBjaXRleHQKKyAgICAgICAgICAg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpID0gJzE5Mi4xNjguMTAwLjEyOC8zMicg QVMgdDsKKyB0IAorLS0tCisgdAorKDEgcm93KQorCiBTRUxFQ1QgJzA4OjAwOjJiOjAxOjAyOjAz Jzo6bWFjYWRkcjo6Y2l0ZXh0ID0gJzA4OjAwOjJiOjAxOjAyOjAzJyBBUyB0OwogIHQgCiAtLS0K ZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsIGIvY29udHJpYi9jaXRl eHQvc3FsL2NpdGV4dC5zcWwKaW5kZXggOTk3OTQ0OTdkNDcuLjYyZjgzZDc0OWY5IDEwMDY0NAot LS0gYS9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbAorKysgYi9jb250cmliL2NpdGV4dC9z cWwvY2l0ZXh0LnNxbApAQCAtOSw3ICs5LDcgQEAgU0VMRUNUIGFtbmFtZSwgb3BjbmFtZQogRlJP TSBwZ19vcGNsYXNzIG9wYyBMRUZUIEpPSU4gcGdfYW0gYW0gT04gYW0ub2lkID0gb3BjbWV0aG9k CiBXSEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsKIAot U0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4 dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CiAKIC0tIFRlc3QgdGhlIG9wZXJh dG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAKQEAgLTE2NSw2ICsxNjUsNyBAQCBTRUxFQ1Qg bmFtZSBGUk9NIHNydCBXSEVSRSBuYW1lIFNJTUlMQVIgVE8gJyVBLionOwogCiAtLSBFeHBsaWNp dCBjYXN0cy4KIFNFTEVDVCB0cnVlOjpjaXRleHQgPSAndHJ1ZScgQVMgdDsKK1NFTEVDVCBDQVNU KHRydWUgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKIFNFTEVD VCAndHJ1ZSc6OmNpdGV4dDo6Ym9vbGVhbiA9IHRydWUgQVMgdDsKIAogU0VMRUNUIDQ6OmNpdGV4 dCA9ICc0JyBBUyB0OwpAQCAtMjI0LDYgKzIyNSw4IEBAIFNFTEVDVCAnMTkyLjE2OC4xMDAuMTI4 LzI1Jzo6Y2l0ZXh0OjpjaWRyID0gJzE5Mi4xNjguMTAwLjEyOC8yNSc6OmNpZHIgQVMgdDsKIAog U0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjppbmV0OjpjaXRleHQgPSAnMTkyLjE2OC4xMDAuMTI4 LzMyJyBBUyB0OwogU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjpjaXRleHQ6OmluZXQgPSAnMTky LjE2OC4xMDAuMTI4Jzo6aW5ldCBBUyB0OworU0VMRUNUIENBU1QoaW5ldCAnMTkyLjE2OC4xMDAu MTI4JyBBUyBjaXRleHQKKyAgICAgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpID0gJzE5Mi4xNjguMTAwLjEyOC8zMicgQVMgdDsKIAogU0VMRUNUICcwODowMDoyYjowMTow MjowMyc6Om1hY2FkZHI6OmNpdGV4dCA9ICcwODowMDoyYjowMTowMjowMycgQVMgdDsKIFNFTEVD VCAnMDg6MDA6MmI6MDE6MDI6MDMnOjpjaXRleHQ6Om1hY2FkZHIgPSAnMDg6MDA6MmI6MDE6MDI6 MDMnOjptYWNhZGRyIEFTIHQ7CmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9leHBlY3RlZC9o c3RvcmUub3V0IGIvY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQvaHN0b3JlLm91dAppbmRleCAxODM2 YzlhY2YzOS4uMjYyMjEzN2NiZjkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2V4cGVjdGVk L2hzdG9yZS5vdXQKKysrIGIvY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQvaHN0b3JlLm91dApAQCAt ODQxLDEyICs4NDEsMjggQEAgc2VsZWN0ICd7fSc6OnRleHRbXTo6aHN0b3JlOwogCiBzZWxlY3Qg QVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnXTo6aHN0b3JlOwogRVJST1I6ICBhcnJheSBtdXN0 IGhhdmUgZXZlbiBudW1iZXIgb2YgZWxlbWVudHMKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycs J2InLCdoJywnYXNkJ10gQVMgaHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgQVJSQVlb J2EnLCdnJywnYicsJ2gnLCdhc2QnLCdpJ106OmhzdG9yZTsKICAgICAgICAgICAgICBhcnJheSAg ICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICJhIj0+Imci LCAiYiI9PiJoIiwgImFzZCI9PiJpIgogKDEgcm93KQogCitzZWxlY3QgQVJSQVlbJ2EnLCdnJywn YicsJ2gnLG51bGwsJ2knXTo6aHN0b3JlOworRVJST1I6ICBudWxsIHZhbHVlIG5vdCBhbGxvd2Vk IGZvciBoc3RvcmUga2V5CitzZWxlY3QgQ0FTVChBUlJBWVsnYScsJ2cnLCdiJywnaCcsbnVsbCwn aSddIEFTIGhzdG9yZQorICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0IEFSUkFZW1snYScsJ2cnXSxb J2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3RvcmU7CiAgICAgICAgICAgICAgYXJyYXkgICAgICAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTg1NSw2ICs4NzEs MTMgQEAgc2VsZWN0IEFSUkFZW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3Rv cmU7CiAKIHNlbGVjdCBBUlJBWVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2knXV06OmhzdG9y ZTsKIEVSUk9SOiAgYXJyYXkgbXVzdCBoYXZlIHR3byBjb2x1bW5zCitzZWxlY3QgQ0FTVChBUlJB WVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2knXV0gQVMgaHN0b3JlCisgICAgICAgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93 KQorCiBzZWxlY3QgQVJSQVlbW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dXTo6aHN0 b3JlOwogRVJST1I6ICB3cm9uZyBudW1iZXIgb2YgYXJyYXkgc3Vic2NyaXB0cwogc2VsZWN0IGhz dG9yZSgne30nOjp0ZXh0W10pOwpAQCAtMTU1Myw2ICsxNTc2LDEzIEBAIHNlbGVjdCBjYXN0KCBo c3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAw MTIzNDUsIGY9CiAgeyJiIjogInQiLCAiYyI6IG51bGwsICJkIjogIjEyMzQ1IiwgImUiOiAiMDEy MzQ1IiwgImYiOiAiMS4yMzQiLCAiZyI6ICIyLjM0NWUrNCIsICJhIGtleSI6ICIxIn0KICgxIHJv dykKIAorc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVs bCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpz b24KKyAgICAgICAgICAgIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc29uICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7ImIiOiAidCIsICJjIjogbnVsbCwgImQiOiAiMTIzNDUi LCAiZSI6ICIwMTIzNDUiLCAiZiI6ICIxLjIzNCIsICJnIjogIjIuMzQ1ZSs0IiwgImEga2V5Ijog IjEifQorKDEgcm93KQorCiBzZWxlY3QgaHN0b3JlX3RvX2pzb25fbG9vc2UoJyJhIGtleSIgPT4x LCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBn PT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0wMSInKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaHN0b3JlX3RvX2pzb25fbG9vc2UgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE1NzEsNiArMTYwMSwxMyBAQCBzZWxlY3Qg Y2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUs IGUgPT4gMDEyMzQ1LCBmPQogIHsiYiI6ICJ0IiwgImMiOiBudWxsLCAiZCI6ICIxMjM0NSIsICJl IjogIjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImciOiAiMi4zNDVlKzQiLCAiYSBrZXkiOiAiMSJ9 CiAoMSByb3cpCiAKK3NlbGVjdCBjYXN0KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBj ID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0 JyBhcyBqc29uYgorICAgICAgICAgICAgZGVmYXVsdCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3Ip OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb25iICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiYiI6ICJ0IiwgImMiOiBudWxsLCAiZCI6 ICIxMjM0NSIsICJlIjogIjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImciOiAiMi4zNDVlKzQiLCAi YSBrZXkiOiAiMSJ9CisoMSByb3cpCisKIHNlbGVjdCBoc3RvcmVfdG9fanNvbmJfbG9vc2UoJyJh IGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+ IDEuMjM0LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0wMSInKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhzdG9yZV90b19qc29uYl9sb29zZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3Jl L2hzdG9yZS0tMS4yLS0xLjMuc3FsIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjItLTEuMy5z cWwKaW5kZXggMGE3MDU2MDE1YjcuLmNiYjFhMTM5ZTY5IDEwMDY0NAotLS0gYS9jb250cmliL2hz dG9yZS9oc3RvcmUtLTEuMi0tMS4zLnNxbAorKysgYi9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEu Mi0tMS4zLnNxbApAQCAtOSw3ICs5LDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScsICdoc3RvcmVf dG9fanNvbmInCiBMQU5HVUFHRSBDIElNTVVUQUJMRSBTVFJJQ1Q7CiAKIENSRUFURSBDQVNUICho c3RvcmUgQVMganNvbmIpCi0gIFdJVEggRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25iKGhzdG9yZSk7 CisgIFdJVEggU0FGRSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmIoaHN0b3JlKTsKIAogQ1JFQVRF IEZVTkNUSU9OIGhzdG9yZV90b19qc29uYl9sb29zZShoc3RvcmUpCiBSRVRVUk5TIGpzb25iCmRp ZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwgYi9jb250cmliL2hzdG9y ZS9oc3RvcmUtLTEuNC5zcWwKaW5kZXggNDI5NGQxNGNlYjUuLjQ1MWMyZWQ4MTg3IDEwMDY0NAot LS0gYS9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwKKysrIGIvY29udHJpYi9oc3RvcmUv aHN0b3JlLS0xLjQuc3FsCkBAIC0yMzIsNyArMjMyLDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScs ICdoc3RvcmVfZnJvbV9hcnJheScKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQQVJBTExF TCBTQUZFOwogCiBDUkVBVEUgQ0FTVCAodGV4dFtdIEFTIGhzdG9yZSkKLSAgV0lUSCBGVU5DVElP TiBoc3RvcmUodGV4dFtdKTsKKyAgV0lUSCBTQUZFIEZVTkNUSU9OIGhzdG9yZSh0ZXh0W10pOwog CiBDUkVBVEUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb24oaHN0b3JlKQogUkVUVVJOUyBqc29uCkBA IC0yNDAsNyArMjQwLDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScsICdoc3RvcmVfdG9fanNvbicK IExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQQVJBTExFTCBTQUZFOwogCiBDUkVBVEUgQ0FT VCAoaHN0b3JlIEFTIGpzb24pCi0gIFdJVEggRlVOQ1RJT04gaHN0b3JlX3RvX2pzb24oaHN0b3Jl KTsKKyAgV0lUSCBTQUZFIEZVTkNUSU9OIGhzdG9yZV90b19qc29uKGhzdG9yZSk7CiAKIENSRUFU RSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbl9sb29zZShoc3RvcmUpCiBSRVRVUk5TIGpzb24KQEAg LTI1Myw3ICsyNTMsNyBAQCBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ2hzdG9yZV90b19qc29uYicK IExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQQVJBTExFTCBTQUZFOwogCiBDUkVBVEUgQ0FT VCAoaHN0b3JlIEFTIGpzb25iKQotICBXSVRIIEZVTkNUSU9OIGhzdG9yZV90b19qc29uYihoc3Rv cmUpOworICBXSVRIIFNBRkUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25iKGhzdG9yZSk7CiAKIENS RUFURSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmJfbG9vc2UoaHN0b3JlKQogUkVUVVJOUyBqc29u YgpkaWZmIC0tZ2l0IGEvY29udHJpYi9oc3RvcmUvaHN0b3JlX2lvLmMgYi9jb250cmliL2hzdG9y ZS9oc3RvcmVfaW8uYwppbmRleCAzNGUzOTE4ODExYy4uZjUxNjY2Nzk3ODMgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9pby5jCisrKyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9p by5jCkBAIC03MzgsMjAgKzczOCwyMCBAQCBoc3RvcmVfZnJvbV9hcnJheShQR19GVU5DVElPTl9B UkdTKQogCiAJCWNhc2UgMToKIAkJCWlmICgoQVJSX0RJTVMoaW5fYXJyYXkpWzBdKSAlIDIpCi0J CQkJZXJlcG9ydChFUlJPUiwKKwkJCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAw LAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BUlJBWV9TVUJTQ1JJUFRfRVJST1IpLAogCQkJCQkJ IGVycm1zZygiYXJyYXkgbXVzdCBoYXZlIGV2ZW4gbnVtYmVyIG9mIGVsZW1lbnRzIikpKTsKIAkJ CWJyZWFrOwogCiAJCWNhc2UgMjoKIAkJCWlmICgoQVJSX0RJTVMoaW5fYXJyYXkpWzFdKSAhPSAy KQotCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1 bSkgMCwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfQVJSQVlfU1VCU0NSSVBUX0VSUk9SKSwKIAkJ CQkJCSBlcnJtc2coImFycmF5IG11c3QgaGF2ZSB0d28gY29sdW1ucyIpKSk7CiAJCQlicmVhazsK IAogCQlkZWZhdWx0OgotCQkJZXJlcG9ydChFUlJPUiwKKwkJCQllcmV0dXJuKGZjaW5mby0+Y29u dGV4dCwgKERhdHVtKSAwLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0FSUkFZX1NVQlNDUklQVF9F UlJPUiksCiAJCQkJCSBlcnJtc2coIndyb25nIG51bWJlciBvZiBhcnJheSBzdWJzY3JpcHRzIikp KTsKIAl9CkBAIC03NzIsNyArNzcyLDcgQEAgaHN0b3JlX2Zyb21fYXJyYXkoUEdfRlVOQ1RJT05f QVJHUykKIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkKIAl7CiAJCWlmIChpbl9udWxsc1tp ICogMl0pCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwK IAkJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBub3QgYWxsb3dlZCBmb3IgaHN0b3JlIGtleSIpKSk7 CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3JlL3NxbC9oc3RvcmUuc3FsIGIvY29udHJpYi9o c3RvcmUvc3FsL2hzdG9yZS5zcWwKaW5kZXggZWZlZjkxMjkyYTMuLjhmYTQ2NjMwZDZkIDEwMDY0 NAotLS0gYS9jb250cmliL2hzdG9yZS9zcWwvaHN0b3JlLnNxbAorKysgYi9jb250cmliL2hzdG9y ZS9zcWwvaHN0b3JlLnNxbApAQCAtMTkyLDkgKzE5MiwxNiBAQCBzZWxlY3QgcGdfY29sdW1uX3Np emUoc2xpY2UoaHN0b3JlICdhYT0+MSwgYj0+MiwgYz0+MycsIEFSUkFZWydjJywnYicsJ2FhJ10p KQogLS0gYXJyYXkgaW5wdXQKIHNlbGVjdCAne30nOjp0ZXh0W106OmhzdG9yZTsKIHNlbGVjdCBB UlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCddOjpoc3RvcmU7CitzZWxlY3QgQ0FTVChBUlJBWVsn YScsJ2cnLCdiJywnaCcsJ2FzZCddIEFTIGhzdG9yZQorICAgICAgIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKIHNlbGVjdCBBUlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCcsJ2kn XTo6aHN0b3JlOworc2VsZWN0IEFSUkFZWydhJywnZycsJ2InLCdoJyxudWxsLCdpJ106OmhzdG9y ZTsKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycsJ2InLCdoJyxudWxsLCdpJ10gQVMgaHN0b3Jl CisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwogc2VsZWN0IEFSUkFZ W1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3RvcmU7CiBzZWxlY3QgQVJSQVlb WydhJywnZycsJ2InXSxbJ2gnLCdhc2QnLCdpJ11dOjpoc3RvcmU7CitzZWxlY3QgQ0FTVChBUlJB WVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2knXV0gQVMgaHN0b3JlCisgICAgICAgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwogc2VsZWN0IEFSUkFZW1tbJ2EnLCdnJ10sWydi JywnaCddLFsnYXNkJywnaSddXV06OmhzdG9yZTsKIHNlbGVjdCBoc3RvcmUoJ3t9Jzo6dGV4dFtd KTsKIHNlbGVjdCBoc3RvcmUoQVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnXSk7CkBAIC0zNjMs MTAgKzM3MCwxNCBAQCBzZWxlY3QgY291bnQoKikgZnJvbSB0ZXN0aHN0b3JlIHdoZXJlIGggPSAn cG9zPT45OCwgbGluZT0+MzcxLCBub2RlPT5DQkEsIGluZGV4ZQogLS0ganNvbiBhbmQganNvbmIK IHNlbGVjdCBoc3RvcmVfdG9fanNvbignImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBk PT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcpOwogc2VsZWN0 IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1 LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb24pOworc2VsZWN0 IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1 LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb24KKyAgICAgICAg ICAgIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKIHNlbGVjdCBoc3RvcmVfdG9f anNvbl9sb29zZSgnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUg PT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCwgaD0+ICIyMDE2LTAxLTAxIicpOwog CiBzZWxlY3QgaHN0b3JlX3RvX2pzb25iKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGws IGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0Jyk7CiBzZWxl Y3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIz NDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcgYXMganNvbmIpOworc2Vs ZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEy MzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb25iCisgICAg ICAgICAgICBkZWZhdWx0IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7CiBzZWxlY3QgaHN0b3Jl X3RvX2pzb25iX2xvb3NlKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0 NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0LCBoPT4gIjIwMTYtMDEtMDEi Jyk7CiAKIGNyZWF0ZSB0YWJsZSB0ZXN0X2pzb25fYWdnIChmMSB0ZXh0LCBmMiBoc3RvcmUpOwpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCAyZmM2MzQ0Mjk4MC4uOGZjYTM1MzRmMzIgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC0xODQ5LDYgKzE4NDksMjEgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICA8 bGl0ZXJhbD5iPC9saXRlcmFsPiBtZWFucyB0aGF0IHRoZSB0eXBlcyBhcmUgYmluYXJ5LWNvZXJj aWJsZSwgdGh1cyBubyBjb252ZXJzaW9uIGlzIHJlcXVpcmVkLgogICAgICAgPC9wYXJhPjwvZW50 cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5jYXN0ZXJyb3JzYWZlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4K KyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgZmxhZyBpbmRpY2F0 ZXMgd2hldGhlciB0aGUgPHN0cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1Y3RmaWVsZD4gZnVuY3Rp b24KKyAgICAgICAgaXMgZXJyb3Itc2FmZS4gSXQgaXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gPHN0 cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1Y3RmaWVsZD4KKyAgICAgICAgaXMgbm90IHplcm8uIFVz ZXItZGVmaW5lZCBjYXN0cyBjYW4gc2V0IGl0CisgICAgICAgIHRvIDxsaXRlcmFsPnRydWU8L2xp dGVyYWw+IHZpYSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCI+Q1JFQVRFIENBU1Q8L2xp bms+LgorICAgICAgICBGb3IgZXJyb3Itc2FmZSB0eXBlIGNhc3QsIHNlZSA8eHJlZiBsaW5rZW5k PSJzcWwtc3ludGF4LXR5cGUtY2FzdHMtc2FmZSIvPi4KKyAgICAgICA8L3BhcmE+CisgICAgICA8 L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90 YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbAppbmRleCBiYWQ3NWJjMWRjZS4uODg4ZDcx NDJlNDIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jYXN0LnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAgUG9z dGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JF QVRFIENBU1QgKDxyZXBsYWNlYWJsZT5zb3VyY2VfdHlwZTwvcmVwbGFjZWFibGU+IEFTIDxyZXBs YWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFjZWFibGU+KQotICAgIFdJVEggRlVOQ1RJT04gPHJl cGxhY2VhYmxlPmZ1bmN0aW9uX25hbWU8L3JlcGxhY2VhYmxlPiBbICg8cmVwbGFjZWFibGU+YXJn dW1lbnRfdHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0pIF0KKyAgICBXSVRIIFtTQUZFXSBGVU5D VElPTiA8cmVwbGFjZWFibGU+ZnVuY3Rpb25fbmFtZTwvcmVwbGFjZWFibGU+IFsgKDxyZXBsYWNl YWJsZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSkgXQogICAgIFsgQVMgQVNT SUdOTUVOVCB8IEFTIElNUExJQ0lUIF0KIAogQ1JFQVRFIENBU1QgKDxyZXBsYWNlYWJsZT5zb3Vy Y2VfdHlwZTwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFj ZWFibGU+KQpAQCAtMTk0LDYgKzE5NCwxOCBAQCBTRUxFQ1QgQ0FTVCAoIDIgQVMgbnVtZXJpYyAp ICsgNC4wOwogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+U0FGRTwvbGl0ZXJhbD48L3Rlcm0+Cisg ICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBmdW5jdGlvbiB1c2VkIHRv IHBlcmZvcm0gdGhlIGNhc3Qgc3VwcG9ydCBzb2Z0LWVycm9yIGV2YWx1YXRpb24sCisgICAgICAg Q3VycmVudGx5LCBvbmx5IGZ1bmN0aW9ucyB3cml0dGVuIGluIEMgb3IgdGhlIGludGVybmFsIGxh bmd1YWdlIGFyZSBzdXBwb3J0ZWQuCisgICAgICAgQW4gYWx0ZXJuYXRlIGV4cHJlc3Npb24gY2Fu IGJlIHNwZWNpZmllZCB0byBiZSBldmFsdWF0ZWQgaWYgdGhlIGNhc3QKKyAgICAgICBlcnJvciBv Y2N1cnMuICBTZWUgPGxpbmsgbGlua2VuZD0ic3FsLXN5bnRheC10eXBlLWNhc3RzLXNhZmUiPnNh ZmUgdHlwZSBjYXN0PC9saW5rPi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAg ICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgIDx0ZXJtPjxsaXRl cmFsPjxyZXBsYWNlYWJsZT5mdW5jdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT5bKDxyZXBsYWNlYWJs ZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSldPC9saXRlcmFsPjwvdGVybT4K IApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sIGIvZG9jL3NyYy9zZ21sL3N5 bnRheC5zZ21sCmluZGV4IGQxY2M5MzJmN2IxLi42YWYxZDIxZDQ2NSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3N5bnRheC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbApAQCAt MjE3OCw5ICsyMTc4LDggQEAgQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNl YWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPgogICAgIGRlZmF1bHQgPHJl cGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPgogICAgIHNwZWNpZmllZCBpbiB0aGUg PGxpdGVyYWw+T04gQ09OVkVSU0lPTiBFUlJPUjwvbGl0ZXJhbD4gY2xhdXNlLgogCi0gICAgQXQg cHJlc2VudCwgdGhpcyBvbmx5IHN1cHBvcnQgYnVpbHQtaW4gdHlwZSBjYXN0cywgc2VlIDx4cmVm IGxpbmtlbmQ9ImNhdGFsb2ctcGctY2FzdCIvPi4KICAgICBVc2VyLWRlZmluZWQgdHlwZSBjYXN0 cyBjcmVhdGVkIHdpdGggPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiPkNSRUFURSBDQVNU PC9saW5rPgotICAgIGFyZSBub3Qgc3VwcG9ydGVkLgorICAgIGFyZSBzdXBwb3J0ZWQgdG9vLgog ICA8L3BhcmE+CiAKICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfY2FzdC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXggNTExOWMyYWNk YTIuLjllZmY5NDFlYWJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3Qu YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYwpAQCAtNDgsNyArNDgsOCBAQAog T2JqZWN0QWRkcmVzcwogQ2FzdENyZWF0ZShPaWQgc291cmNldHlwZWlkLCBPaWQgdGFyZ2V0dHlw ZWlkLAogCQkgICBPaWQgZnVuY2lkLCBPaWQgaW5jYXN0aWQsIE9pZCBvdXRjYXN0aWQsCi0JCSAg IGNoYXIgY2FzdGNvbnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgRGVwZW5kZW5jeVR5cGUgYmVoYXZp b3IpCisJCSAgIGNoYXIgY2FzdGNvbnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgYm9vbCBjYXN0ZXJy b3JzYWZlLAorCQkgICBEZXBlbmRlbmN5VHlwZSBiZWhhdmlvcikKIHsKIAlSZWxhdGlvbglyZWxh dGlvbjsKIAlIZWFwVHVwbGUJdHVwbGU7CkBAIC04NCw2ICs4NSw3IEBAIENhc3RDcmVhdGUoT2lk IHNvdXJjZXR5cGVpZCwgT2lkIHRhcmdldHR5cGVpZCwKIAl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nh c3RmdW5jIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGZ1bmNpZCk7CiAJdmFsdWVzW0FudW1fcGdf Y2FzdF9jYXN0Y29udGV4dCAtIDFdID0gQ2hhckdldERhdHVtKGNhc3Rjb250ZXh0KTsKIAl2YWx1 ZXNbQW51bV9wZ19jYXN0X2Nhc3RtZXRob2QgLSAxXSA9IENoYXJHZXREYXR1bShjYXN0bWV0aG9k KTsKKwl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RlcnJvcnNhZmUgLSAxXSA9IEJvb2xHZXREYXR1 bShjYXN0ZXJyb3JzYWZlKTsKIAogCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0 RGVzY3IocmVsYXRpb24pLCB2YWx1ZXMsIG51bGxzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvZnVuY3Rpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9mdW5jdGlv bmNtZHMuYwppbmRleCBhNTE2YjAzN2RlYS4uYjgxODA2NWFmMjcgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2Z1bmN0aW9uY21kcy5jCkBAIC0xNjY3LDYgKzE2NjcsMTMgQEAgQ3JlYXRlQ2FzdChDcmVhdGVD YXN0U3RtdCAqc3RtdCkKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJ TklUSU9OKSwKIAkJCQkJIGVycm1zZygiY2FzdCBmdW5jdGlvbiBtdXN0IG5vdCByZXR1cm4gYSBz ZXQiKSkpOwogCisJCWlmIChzdG10LT5zYWZlICYmCisJCQlwcm9jc3RydWN0LT5wcm9sYW5nICE9 IElOVEVSTkFMbGFuZ3VhZ2VJZCAmJgorCQkJcHJvY3N0cnVjdC0+cHJvbGFuZyAhPSBDbGFuZ3Vh Z2VJZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05P VF9TVVBQT1JURUQpLAorCQkJCQllcnJtc2coIlNhZmUgdHlwZSBjYXN0IGZ1bmN0aW9ucyBhcmUg b25seSBzdXBwb3J0ZWQgZm9yIEMgYW5kIGludGVybmFsIGxhbmd1YWdlcyIpKTsKKwogCQlSZWxl YXNlU3lzQ2FjaGUodHVwbGUpOwogCX0KIAllbHNlCkBAIC0xNzk1LDcgKzE4MDIsNyBAQCBDcmVh dGVDYXN0KENyZWF0ZUNhc3RTdG10ICpzdG10KQogCX0KIAogCW15c2VsZiA9IENhc3RDcmVhdGUo c291cmNldHlwZWlkLCB0YXJnZXR0eXBlaWQsIGZ1bmNpZCwgaW5jYXN0aWQsIG91dGNhc3RpZCwK LQkJCQkJCWNhc3Rjb250ZXh0LCBjYXN0bWV0aG9kLCBERVBFTkRFTkNZX05PUk1BTCk7CisJCQkJ CQljYXN0Y29udGV4dCwgY2FzdG1ldGhvZCwgc3RtdC0+c2FmZSwgREVQRU5ERU5DWV9OT1JNQUwp OwogCXJldHVybiBteXNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IGU1ZmEw NTc4ODg5Li4wNzg1NTFlNDVhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlw ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC0xNzU0LDYg KzE3NTQsNyBAQCBEZWZpbmVSYW5nZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVJhbmdlU3Rt dCAqc3RtdCkKIAkvKiBDcmVhdGUgY2FzdCBmcm9tIHRoZSByYW5nZSB0eXBlIHRvIGl0cyBtdWx0 aXJhbmdlIHR5cGUgKi8KIAlDYXN0Q3JlYXRlKHR5cG9pZCwgbXVsdGlyYW5nZU9pZCwgY2FzdEZ1 bmNPaWQsIEludmFsaWRPaWQsIEludmFsaWRPaWQsCiAJCQkgICBDT0VSQ0lPTl9DT0RFX0VYUExJ Q0lULCBDT0VSQ0lPTl9NRVRIT0RfRlVOQ1RJT04sCisJCQkgICBmYWxzZSwKIAkJCSAgIERFUEVO REVOQ1lfSU5URVJOQUwpOwogCiAJcGZyZWUobXVsdGlyYW5nZUFycmF5TmFtZSk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQppbmRleCAxNWU0ZjA2NDc4Mi4uODliYjcxOGQwZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMzU2LDcg KzM1Niw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxu YW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8ZGVmZWx0Pglkcm9wX29w dGlvbgogJXR5cGUgPGJvb2xlYW4+CW9wdF9vcl9yZXBsYWNlIG9wdF9ubwogCQkJCW9wdF9ncmFu dF9ncmFudF9vcHRpb24KLQkJCQlvcHRfbm93YWl0IG9wdF9pZl9leGlzdHMgb3B0X3dpdGhfZGF0 YQorCQkJCW9wdF9ub3dhaXQgb3B0X3NhZmUgb3B0X2lmX2V4aXN0cyBvcHRfd2l0aF9kYXRhCiAJ CQkJb3B0X3RyYW5zYWN0aW9uX2NoYWluCiAldHlwZSA8bGlzdD4JZ3JhbnRfcm9sZV9vcHRfbGlz dAogJXR5cGUgPGRlZmVsdD4JZ3JhbnRfcm9sZV9vcHQKQEAgLTc3OSw3ICs3NzksNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxp YXNlcywgTm9kZSAqcXVlcnkpOwogCVJFU0VUIFJFU1BFQ1RfUCBSRVNUQVJUIFJFU1RSSUNUIFJF VFVSTiBSRVRVUk5JTkcgUkVUVVJOUyBSRVZPS0UgUklHSFQgUk9MRSBST0xMQkFDSyBST0xMVVAK IAlST1VUSU5FIFJPVVRJTkVTIFJPVyBST1dTIFJVTEUKIAotCVNBVkVQT0lOVCBTQ0FMQVIgU0NI RU1BIFNDSEVNQVMgU0NST0xMIFNFQVJDSCBTRUNPTkRfUCBTRUNVUklUWSBTRUxFQ1QKKwlTQUZF IFNBVkVQT0lOVCBTQ0FMQVIgU0NIRU1BIFNDSEVNQVMgU0NST0xMIFNFQVJDSCBTRUNPTkRfUCBT RUNVUklUWSBTRUxFQ1QKIAlTRVFVRU5DRSBTRVFVRU5DRVMKIAlTRVJJQUxJWkFCTEUgU0VSVkVS IFNFU1NJT04gU0VTU0lPTl9VU0VSIFNFVCBTRVRTIFNFVE9GIFNIQVJFIFNIT1cKIAlTSU1JTEFS IFNJTVBMRSBTS0lQIFNNQUxMSU5UIFNOQVBTSE9UIFNPTUUgU1BMSVQgU09VUkNFIFNRTF9QIFNU QUJMRSBTVEFOREFMT05FX1AKQEAgLTkzNDUsMTQgKzkzNDUsMTUgQEAgZG9zdG10X29wdF9pdGVt OgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVDYXN0U3RtdDogQ1JFQVRFIENBU1Qg JygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcpJwotCQkJCQlXSVRIIEZVTkNUSU9OIGZ1bmN0aW9u X3dpdGhfYXJndHlwZXMgY2FzdF9jb250ZXh0CisJCQkJCVdJVEggb3B0X3NhZmUgRlVOQ1RJT04g ZnVuY3Rpb25fd2l0aF9hcmd0eXBlcyBjYXN0X2NvbnRleHQKIAkJCQl7CiAJCQkJCUNyZWF0ZUNh c3RTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlQ2FzdFN0bXQpOwogCiAJCQkJCW4tPnNvdXJjZXR5 cGUgPSAkNDsKIAkJCQkJbi0+dGFyZ2V0dHlwZSA9ICQ2OwotCQkJCQluLT5mdW5jID0gJDEwOwot CQkJCQluLT5jb250ZXh0ID0gKENvZXJjaW9uQ29udGV4dCkgJDExOworCQkJCQluLT5zYWZlID0g JDk7CisJCQkJCW4tPmZ1bmMgPSAkMTE7CisJCQkJCW4tPmNvbnRleHQgPSAoQ29lcmNpb25Db250 ZXh0KSAkMTI7CiAJCQkJCW4tPmlub3V0ID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsK IAkJCQl9CkBAIC05MzYzLDYgKzkzNjQsNyBAQCBDcmVhdGVDYXN0U3RtdDogQ1JFQVRFIENBU1Qg JygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcpJwogCiAJCQkJCW4tPnNvdXJjZXR5cGUgPSAkNDsK IAkJCQkJbi0+dGFyZ2V0dHlwZSA9ICQ2OworCQkJCQluLT5zYWZlID0gZmFsc2U7CiAJCQkJCW4t PmZ1bmMgPSBOVUxMOwogCQkJCQluLT5jb250ZXh0ID0gKENvZXJjaW9uQ29udGV4dCkgJDEwOwog CQkJCQluLT5pbm91dCA9IGZhbHNlOwpAQCAtOTM3NSw2ICs5Mzc3LDcgQEAgQ3JlYXRlQ2FzdFN0 bXQ6IENSRUFURSBDQVNUICcoJyBUeXBlbmFtZSBBUyBUeXBlbmFtZSAnKScKIAogCQkJCQluLT5z b3VyY2V0eXBlID0gJDQ7CiAJCQkJCW4tPnRhcmdldHR5cGUgPSAkNjsKKwkJCQkJbi0+c2FmZSA9 IGZhbHNlOwogCQkJCQluLT5mdW5jID0gTlVMTDsKIAkJCQkJbi0+Y29udGV4dCA9IChDb2VyY2lv bkNvbnRleHQpICQxMDsKIAkJCQkJbi0+aW5vdXQgPSB0cnVlOwpAQCAtOTM4Nyw2ICs5MzkwLDkg QEAgY2FzdF9jb250ZXh0OiAgQVMgSU1QTElDSVRfUAkJCQkJeyAkJCA9IENPRVJDSU9OX0lNUExJ Q0lUOyB9CiAJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gQ09FUkNJT05fRVhQTElDSVQ7IH0K IAkJOwogCitvcHRfc2FmZTogU0FGRQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCXwgLypFTVBUWSov CQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOwogCiBEcm9wQ2FzdFN0bXQ6IERST1AgQ0FTVCBvcHRf aWZfZXhpc3RzICcoJyBUeXBlbmFtZSBBUyBUeXBlbmFtZSAnKScgb3B0X2Ryb3BfYmVoYXZpb3IK IAkJCQl7CkBAIC0xODE0Nyw2ICsxODE1Myw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwg Uk9VVElORVMKIAkJCXwgUk9XUwogCQkJfCBSVUxFCisJCQl8IFNBRkUKIAkJCXwgU0FWRVBPSU5U CiAJCQl8IFNDQUxBUgogCQkJfCBTQ0hFTUEKQEAgLTE4Nzg1LDYgKzE4NzkyLDcgQEAgYmFyZV9s YWJlbF9rZXl3b3JkOgogCQkJfCBST1cKIAkJCXwgUk9XUwogCQkJfCBSVUxFCisJCQl8IFNBRkUK IAkJCXwgU0FWRVBPSU5UCiAJCQl8IFNDQUxBUgogCQkJfCBTQ0hFTUEKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jCmluZGV4IDZmZWY5MDg4MDRjLi5kYWI3NmEwYmI2NiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jCkBAIC0yOTg5LDcgKzI5ODksNiBAQCBDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4cHIsIE5vZGUgKnNvdXJjZWV4cHIsCiB7CiAJSGVh cFR1cGxlCXR1cGxlOwogCWJvb2wJCWVycm9yc2FmZSA9IHRydWU7Ci0JYm9vbAkJdXNlcmRlZmlu ZWQgPSBmYWxzZTsKIAlPaWQJCQlpbnB1dEJhc2VUeXBlOwogCU9pZAkJCXRhcmdldEJhc2VUeXBl OwogCU9pZAkJCWlucHV0RWxlbWVudFR5cGU7CkBAIC0zMDYxLDExICszMDYwLDggQEAgQ29lcmNp b25FcnJvclNhZmVDaGVjayhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmNhc3RleHByLCBOb2Rl ICpzb3VyY2VleHByLAogCQl7CiAJCQlGb3JtX3BnX2Nhc3QgY2FzdEZvcm0gPSAoRm9ybV9wZ19j YXN0KSBHRVRTVFJVQ1QodHVwbGUpOwogCi0JCQlpZiAoY2FzdEZvcm0tPm9pZCA+IEZpcnN0VW5w aW5uZWRPYmplY3RJZCkKLQkJCXsKKwkJCWlmIChPaWRJc1ZhbGlkKGNhc3RGb3JtLT5jYXN0ZnVu YykgJiYgIWNhc3RGb3JtLT5jYXN0ZXJyb3JzYWZlKQogCQkJCWVycm9yc2FmZSA9IGZhbHNlOwot CQkJCXVzZXJkZWZpbmVkID0gdHJ1ZTsKLQkJCX0KIAogCQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxl KTsKIAkJfQpAQCAtMzA3OSw5ICszMDc1LDcgQEAgQ29lcmNpb25FcnJvclNhZmVDaGVjayhQYXJz ZVN0YXRlICpwc3RhdGUsIE5vZGUgKmNhc3RleHByLCBOb2RlICpzb3VyY2VleHByLAogCQkJCQkg ICBmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSwKIAkJCQkJICAgIkRFRkFVTFQiLAogCQkJCQkg ICAiQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUiIpLAotCQkJCXVzZXJkZWZpbmVkCi0JCQkJ PyBlcnJoaW50KCJTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3Qg eWV0IHN1cHBvcnRlZCIpCi0JCQkJOiBlcnJoaW50KCJFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQg YnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUiKSwKKwkJCQllcnJoaW50KCJFeHBsaWNp dCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUiKSwKIAkJ CQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oc291cmNlZXhwcikpKTsK IH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKaW5kZXggMWI3MThhMTUwNDQuLjMwODU1ZTJjODY0 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0CisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKQEAgLTE5LDY1ICsxOSw2NSBAQAogIyBpbnQyLT5p bnQ0LT5pbnQ4LT5udW1lcmljLT5mbG9hdDQtPmZsb2F0OCwgd2hpbGUgY2FzdHMgaW4gdGhlCiAj IHJldmVyc2UgZGlyZWN0aW9uIGFyZSBhc3NpZ25tZW50LW9ubHkuCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoaW50OCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdp bnQ0KGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcs IGNhc3RmdW5jID0+ICdmbG9hdDQoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRh cmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChpbnQ4KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVyaWMo aW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3Rm dW5jID0+ICdpbnQ4KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4g J2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGludDIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9h dDgoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycs IGNhc3RmdW5jID0+ICdudW1lcmljKGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0 YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoaW50NCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4g J2Zsb2F0NChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdmbG9h dDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNh c3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhpbnQ0KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50 OChmbG9hdDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnaW50Mics IGNhc3RmdW5jID0+ICdpbnQyKGZsb2F0NCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDQnLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoZmxvYXQ0KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9hdDgo ZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMn LAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDQpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDQpJywgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0 ZnVuYyA9PiAnaW50OChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdl dCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGZsb2F0OCknLAotICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdm bG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoZmxvYXQ4KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5j ID0+ICdmbG9hdDQoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQg PT4gJ251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDgpJywgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhm bG9hdDgpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgobnVtZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1l cmljJywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKG51bWVyaWMpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9 PiAnaW50NChudW1lcmljKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ ICdmbG9hdDQnLAotICBjYXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVyaWMpJywgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVy aWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdm bG9hdDgnLAotICBjYXN0ZnVuYyA9PiAnZmxvYXQ4KG51bWVyaWMpJywgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZmxvYXQ4KG51bWVyaWMp JywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ21vbmV5JywgY2FzdHRhcmdldCA9PiAnbnVtZXJp YycsIGNhc3RmdW5jID0+ICdudW1lcmljKG1vbmV5KScsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJn ZXQgPT4gJ21vbmV5JywgY2FzdGZ1bmMgPT4gJ21vbmV5KG51bWVyaWMpJywKQEAgLTg5LDEzICs4 OSwxMyBAQAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGludDQgYW5kIGJv b2wKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2Jvb2wnLCBjYXN0ZnVu YyA9PiAnYm9vbChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICdp bnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9u cyBiZXR3ZWVuIHhpZDggYW5kIHhpZAogeyBjYXN0c291cmNlID0+ICd4aWQ4JywgY2FzdHRhcmdl dCA9PiAneGlkJywgY2FzdGZ1bmMgPT4gJ3hpZCh4aWQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgT0lEIGNhdGVnb3J5OiBhbGxv dyBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gYW55IGludGVncmFsIHR5cGUgKGluY2x1ZGluZwog IyBpbnQ4LCB0byBzdXBwb3J0IE9JRCBsaXRlcmFscyA+IDJHKSB0byBPSUQsIGFzIHdlbGwgYXMg YXNzaWdubWVudCBjb2VyY2lvbgpAQCAtMTA2LDEzICsxMDYsMTMgQEAKICMgY2FzdHMgZnJvbSB0 ZXh0IGFuZCB2YXJjaGFyIHRvIHJlZ2NsYXNzLCB3aGljaCBleGlzdCBtYWlubHkgdG8gc3VwcG9y dAogIyBsZWdhY3kgZm9ybXMgb2YgbmV4dHZhbCgpIGFuZCByZWxhdGVkIGZ1bmN0aW9ucy4KIHsg Y2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICdv aWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMg PT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnb2lk JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0 ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAn aW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9j JywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTIwLDEzICsxMjAsMTMgQEAKIHsgY2FzdHNvdXJjZSA9 PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ4JywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICdpbnQ0 KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2MnLCBj YXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicg fSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0 ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQg PT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4g J3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTEzOCwxMyArMTM4LDEzIEBACiB7 IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVncHJvY2VkdXJlJywgY2Fz dGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdw cm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQn LCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVn cHJvY2VkdXJlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2Fz dGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXInLCBjYXN0ZnVu YyA9PiAnMCcsCkBAIC0xNTIsMTMgKzE1MiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVy JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcicsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdp bnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAnaW50NCcs IGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdi JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0 b3InLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xNzAsMTMgKzE3MCwxMyBAQAogeyBjYXN0c291cmNl ID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywK ICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnb2lk JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXJhdG9yJywgY2Fz dGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9 PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcmF0b3InLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3JlZ29wZXJhdG9yJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICcwJywKQEAgLTE4 NCwxMyArMTg0LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdldCA9 PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdj bGFzcycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdl dCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdy ZWdjbGFzcycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAncmVnY2xhc3MnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5j ID0+ICcwJywKQEAgLTE5OCwxMyArMTk4LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbGxh dGlvbicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4Jywg Y2FzdHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAn aW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xs YXRpb24nLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29sbGF0aW9uJywgY2FzdHRhcmdldCA9 PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjb2xs YXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcs IGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yMTIsMTMgKzIx MiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWd0eXBlJywgY2FzdHRhcmdldCA9PiAnb2lkJywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2Fz dGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWd0 eXBlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2Fz dHRhcmdldCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWd0eXBlJywgY2Fz dHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWd0eXBlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdv aWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yMjYs MTMgKzIyNiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdjb25maWcnLCBjYXN0dGFyZ2V0ID0+ ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2Nv bmZpZycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdl dCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJzAnLAogICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3JlZ2NvbmZpZycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkaWN0aW9uYXJ5JywgY2Fz dGZ1bmMgPT4gJzAnLApAQCAtMjQwLDMxICsyNDAsMzEgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVn ZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ4JywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3RmdW5jID0+ICdvaWQnLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3Rm dW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4g J3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGljdGlvbmFyeScsIGNh c3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAncmVnZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJ3JlZ2Ns YXNzJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywg Y2FzdGZ1bmMgPT4gJ3JlZ2NsYXNzJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9 PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9 PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdy b2xlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0 ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ0JywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdy b2xlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAn MCcsCkBAIC0yNzIsMTMgKzI3MiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWduYW1lc3BhY2Un LCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0 YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJ2ludDQo aW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNl JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0YXJnZXQgPT4gJ2lu dDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnbmFtZXNwYWNl JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTI4NiwxMyArMjg2 LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdHRhcmdldCA9PiAnb2lk JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFz ZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9 PiAncmVnZGF0YWJhc2UnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChv aWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0Jywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiAKQEAgLTMwMiw1NyArMzAyLDU3IEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0 dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0 YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChicGNoYXIpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGJw Y2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2Fz dGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMg PT4gJ3RleHQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRhcmdldCA9PiAnYnBj aGFyJywgY2FzdGZ1bmMgPT4gJ2JwY2hhcihjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBj YXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoY2hhciknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KG5h bWUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnbmFtZScsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3Rm dW5jID0+ICdicGNoYXIobmFtZSknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9 PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd2YXJjaGFyKG5hbWUpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn dGV4dCcsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcih0ZXh0KScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAn Y2hhcih0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICdjaGFy JywgY2FzdGZ1bmMgPT4gJ2NoYXIodGV4dCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRh cmdldCA9PiAnbmFtZScsIGNhc3RmdW5jID0+ICduYW1lKHRleHQpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn YnBjaGFyJywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3RmdW5jID0+ICduYW1lKGJwY2hhcikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3RmdW5j ID0+ICduYW1lKHZhcmNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIAogIyBBbGxvdyBleHBsaWNpdCBjb2VyY2lvbnMgYmV0d2VlbiBi eXRlYSBhbmQgaW50ZWdlciB0eXBlcwogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdl dCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEoaW50MiknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ0JywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEoaW50NCknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAn Ynl0ZWEoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDIn LCBjYXN0ZnVuYyA9PiAnaW50MihieXRlYSknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0 YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChieXRlYSknLAotICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChieXRlYSkn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog CiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGludDQgYW5kICJjaGFyIgogeyBj YXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdp bnQ0KGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBj YXN0ZnVuYyA9PiAnY2hhcihpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgcGdfbm9kZV90cmVlIGNhbiBiZSBjb2VyY2VkIHRv LCBidXQgbm90IGZyb20sIHRleHQKIHsgY2FzdHNvdXJjZSA9PiAncGdfbm9kZV90cmVlJywgY2Fz dHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICcwJywKQEAgLTM3OCw3MyArMzc4LDczIEBA CiAKICMgRGF0ZXRpbWUgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnZGF0ZScsIGNhc3R0YXJn ZXQgPT4gJ3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAoZGF0ZSknLCBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1l c3RhbXAoZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZGF0ZScsIGNhc3R0YXJnZXQg PT4gJ3RpbWVzdGFtcHR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KGRhdGUpJywgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGlt ZXN0YW1wdHooZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZScsIGNhc3R0YXJn ZXQgPT4gJ2ludGVydmFsJywgY2FzdGZ1bmMgPT4gJ2ludGVydmFsKHRpbWUpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndGltZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsIGNhc3RmdW5jID0+ICd0aW1ldHoo dGltZSknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICdkYXRlJywK LSAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wKScsIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lJywKLSAg Y2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wKScsIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXB0eics Ci0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHoodGlt ZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJn ZXQgPT4gJ2RhdGUnLAotICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXB0eiknLCBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdkYXRlKHRp bWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0 YXJnZXQgPT4gJ3RpbWUnLAotICBjYXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXB0eiknLCBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1l KHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNh c3R0YXJnZXQgPT4gJ3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAodGltZXN0 YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 ZnVuYyA9PiAndGltZXN0YW1wKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsCi0gIGNhc3RmdW5jID0+ICd0 aW1ldHoodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdpbnRlcnZhbCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAn dGltZShpbnRlcnZhbCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1ldHonLCBjYXN0dGFyZ2V0ID0+ICd0 aW1lJywgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXR6KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgR2VvbWV0cmljIGNhdGVnb3J5CiB7 IGNhc3Rzb3VyY2UgPT4gJ3BvaW50JywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4g J2JveChwb2ludCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2xzZWcnLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcs IGNhc3RmdW5jID0+ICdwb2ludChsc2VnKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncGF0aCcsIGNhc3R0YXJn ZXQgPT4gJ3BvbHlnb24nLCBjYXN0ZnVuYyA9PiAncG9seWdvbihwYXRoKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYm94JywgY2FzdHRhcmdldCA9PiAncG9pbnQnLCBjYXN0ZnVuYyA9PiAncG9pbnQoYm94KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAnbHNlZycsIGNhc3RmdW5jID0+ICds c2VnKGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLCBj YXN0ZnVuYyA9PiAncG9seWdvbihib3gpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gnLCBjYXN0dGFyZ2V0 ID0+ICdjaXJjbGUnLCBjYXN0ZnVuYyA9PiAnY2lyY2xlKGJveCknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Bv bHlnb24nLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChwb2x5Z29u KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ3BhdGgnLCBjYXN0ZnVu YyA9PiAncGF0aCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ2JveCcs IGNhc3RmdW5jID0+ICdib3gocG9seWdvbiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3BvbHlnb24nLCBjYXN0 dGFyZ2V0ID0+ICdjaXJjbGUnLAotICBjYXN0ZnVuYyA9PiAnY2lyY2xlKHBvbHlnb24pJywgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnY2ly Y2xlKHBvbHlnb24pJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2lyY2xlJywgY2FzdHRhcmdl dCA9PiAncG9pbnQnLCBjYXN0ZnVuYyA9PiAncG9pbnQoY2lyY2xlKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn Y2lyY2xlJywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4gJ2JveChjaXJjbGUpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdwb2x5Z29uJywKLSAgY2FzdGZ1 bmMgPT4gJ3BvbHlnb24oY2lyY2xlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3BvbHlnb24oY2lyY2xlKScsIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZid9LAogCiAjIE1BQyBhZGRyZXNzIGNhdGVnb3J5CiB7IGNh c3Rzb3VyY2UgPT4gJ21hY2FkZHInLCBjYXN0dGFyZ2V0ID0+ICdtYWNhZGRyOCcsIGNhc3RmdW5j ID0+ICdtYWNhZGRyOCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ21hY2FkZHI4JywgY2FzdHRhcmdldCA9PiAn bWFjYWRkcicsIGNhc3RmdW5jID0+ICdtYWNhZGRyJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBJTkVUIGNhdGVnb3J5CiB7IGNhc3Rz b3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICdpbmV0JywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdjaWRyJywgY2FzdGZ1bmMgPT4gJ2NpZHInLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEJp dFN0cmluZyBjYXRlZ29yeQogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICd2 YXJiaXQnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC00NTQsMTMgKzQ1NCwxMyBAQAogCiAjIENyb3Nz LWNhdGVnb3J5IGNhc3RzIGJldHdlZW4gYml0IGFuZCBpbnQ0LCBpbnQ4CiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVuYyA9PiAnYml0KGludDgsaW50 NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnYml0JywgY2FzdGZ1bmMg PT4gJ2JpdChpbnQ0LGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYml0JywgY2FzdHRhcmdldCA9PiAn aW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGJpdCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoYml0KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQ3Jvc3MtY2F0ZWdv cnkgY2FzdHMgdG8gYW5kIGZyb20gVEVYVAogIyBXZSBuZWVkIGVudHJpZXMgaGVyZSBvbmx5IGZv ciBhIGZldyBzcGVjaWFsaXplZCBjYXNlcyB3aGVyZSB0aGUgYmVoYXZpb3IKQEAgLTQ3MSw2OCAr NDcxLDY4IEBACiAjIGJlaGF2aW9yIHdpbGwgZW5zdWUgd2hlbiB0aGUgYXV0b21hdGljIGNhc3Qg aXMgYXBwbGllZCBpbnN0ZWFkIG9mIHRoZQogIyBwZ19jYXN0IGVudHJ5IQogeyBjYXN0c291cmNl ID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9 PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0 JywgY2FzdGZ1bmMgPT4gJ3RleHQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd4bWwnLCBjYXN0dGFy Z2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQg ZnJvbSBWQVJDSEFSCiAjIFdlIHN1cHBvcnQgYWxsIHRoZSBzYW1lIGNhc3RzIGFzIGZvciBURVhU LgogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3Rm dW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4g J3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wn LCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoYm9vbCknLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywK LSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAog IyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJvbSBCUENIQVIKICMgV2Ugc3VwcG9ydCBh bGwgdGhlIHNhbWUgY2FzdHMgYXMgZm9yIFRFWFQuCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBj YXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChp bmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0 ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcsIGNhc3R0YXJnZXQgPT4g J2JwY2hhcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ICd4 bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBMZW5ndGgtY29lcmNpb24gZnVuY3Rpb25zCiB7IGNh c3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsCiAgIGNhc3RmdW5j ID0+ICdicGNoYXIoYnBjaGFyLGludDQsYm9vbCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNo YXInLAogICBjYXN0ZnVuYyA9PiAndmFyY2hhcih2YXJjaGFyLGludDQsYm9vbCknLCBjYXN0Y29u dGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZScsIGNhc3R0 YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAndGltZSh0aW1lLGludDQpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndGltZXN0YW1wJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wJywKICAgY2FzdGZ1bmMg PT4gJ3RpbWVzdGFtcCh0aW1lc3RhbXAsaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBjYXN0dGFyZ2V0ID0+ICd0 aW1lc3RhbXB0eicsCiAgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXB0eixpbnQ0 KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnRlcnZhbCcsIGNhc3R0YXJnZXQgPT4gJ2ludGVydmFsJywKICAgY2FzdGZ1bmMgPT4gJ2ludGVy dmFsKGludGVydmFsLGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLAotICBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3RpbWV0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsCi0gIGNhc3Rm dW5jID0+ICd0aW1ldHoodGltZXR6LGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWV0eixpbnQ0KScsIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVuYyA9 PiAnYml0KGJpdCxpbnQ0LGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyYml0JywgY2FzdHRhcmdl dCA9PiAndmFyYml0JywgY2FzdGZ1bmMgPT4gJ3ZhcmJpdCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVy aWMnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywKLSAgY2FzdGZ1bmMgPT4gJ251bWVyaWMobnVt ZXJpYyxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGZ1bmMgPT4gJ251bWVyaWMobnVtZXJpYyxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIGpzb24gdG8v ZnJvbSBqc29uYgogeyBjYXN0c291cmNlID0+ICdqc29uJywgY2FzdHRhcmdldCA9PiAnanNvbmIn LCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC01NDIsMzYgKzU0MiwzNiBAQAogCiAjIGpzb25iIHRvIG51 bWVyaWMgYW5kIGJvb2wgdHlwZXMKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0 ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jvb2woanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNv bmInLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVyaWMoanNvbmIp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMg PT4gJ2ludDIoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdp bnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBj YXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoanNvbmIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0 KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4Jywg Y2FzdGZ1bmMgPT4gJ2Zsb2F0OChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIHJhbmdlIHRvIG11bHRpcmFuZ2UKIHsgY2Fz dHNvdXJjZSA9PiAnaW50NHJhbmdlJywgY2FzdHRhcmdldCA9PiAnaW50NG11bHRpcmFuZ2UnLAog ICBjYXN0ZnVuYyA9PiAnaW50NG11bHRpcmFuZ2UoaW50NHJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4cmFuZ2UnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ4bXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdpbnQ4bXVsdGlyYW5nZShp bnQ4cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ251bXJhbmdlJywgY2FzdHRhcmdldCA9PiAnbnVtbXVsdGlyYW5nZScsCiAgIGNhc3Rm dW5jID0+ICdudW1tdWx0aXJhbmdlKG51bXJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywKLSAg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdkYXRlcmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdk YXRlbXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Up JywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Rz cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICd0c211bHRpcmFuZ2UnLAotICBjYXN0ZnVuYyA9PiAndHNt dWx0aXJhbmdlKHRzcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0ZnVuYyA9PiAndHNtdWx0aXJhbmdlKHRzcmFuZ2UpJywgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3RzdHpyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ3RzdHptdWx0aXJhbmdlJywK ICAgY2FzdGZ1bmMgPT4gJ3RzdHptdWx0aXJhbmdlKHRzdHpyYW5nZSknLCBjYXN0Y29udGV4dCA9 PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY2FzdC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmgKaW5kZXggMmM5NjMzYTVl Y2IuLjA2OGYzNDRlMjAwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3Qu aAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaApAQCAtNDcsNiArNDcsMTAgQEAg Q0FUQUxPRyhwZ19jYXN0LDI2MDUsQ2FzdFJlbGF0aW9uSWQpCiAKIAkvKiBjYXN0IG1ldGhvZCAq LwogCWNoYXIJCWNhc3RtZXRob2Q7CisKKwkvKiBjYXN0IGZ1bmN0aW9uIGVycm9yIHNhZmUgKi8K Kwlib29sCQljYXN0ZXJyb3JzYWZlIEJLSV9ERUZBVUxUKGYpOworCiB9IEZvcm1EYXRhX3BnX2Nh c3Q7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwMSw2ICsxMDUsNyBAQCBleHRlcm4gT2Jq ZWN0QWRkcmVzcyBDYXN0Q3JlYXRlKE9pZCBzb3VyY2V0eXBlaWQsCiAJCQkJCQkJCU9pZCBvdXRj YXN0aWQsCiAJCQkJCQkJCWNoYXIgY2FzdGNvbnRleHQsCiAJCQkJCQkJCWNoYXIgY2FzdG1ldGhv ZCwKKwkJCQkJCQkJYm9vbCBjYXN0ZXJyb3JzYWZlLAogCQkJCQkJCQlEZXBlbmRlbmN5VHlwZSBi ZWhhdmlvcik7CiAKICNlbmRpZgkJCQkJCQkvKiBQR19DQVNUX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAppbmRleCA2MmYyN2QzMDFkMC4uMWVmMTljYmM1ZTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKQEAgLTQxNzMsNiArNDE3Myw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZUNhc3RTdG10CiAJ T2JqZWN0V2l0aEFyZ3MgKmZ1bmM7CiAJQ29lcmNpb25Db250ZXh0IGNvbnRleHQ7CiAJYm9vbAkJ aW5vdXQ7CisJYm9vbAkJc2FmZTsKIH0gQ3JlYXRlQ2FzdFN0bXQ7CiAKIC8qIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCBmNzc1M2M1YzhhOC4uNjFiODA4MjgxZGYg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmgKQEAgLTM5Nyw2ICszOTcsNyBAQCBQR19LRVlXT1JEKCJyb3V0aW5l cyIsIFJPVVRJTkVTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJyb3ciLCBST1csIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJy b3dzIiwgUk9XUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi cnVsZSIsIFJVTEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQo InNhZmUiLCBTQUZFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJzYXZlcG9pbnQiLCBTQVZFUE9JTlQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoInNjYWxhciIsIFNDQUxBUiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgic2NoZW1hIiwgU0NIRU1BLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9j YXN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CmluZGV4 IDAwNTRlZDBlZjY3Li4xZTMyYzA0MWI5ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9j cmVhdGVfY2FzdC5vdXQKQEAgLTgxLDYgKzgxLDEyIEBAIE5PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gY2FzdCBmcm9tIGludGVnZXIgdG8gY2FzdHRlc3R0eXBlCiAtLSBUcnkgaXQgd2l0aCBhIGZ1 bmN0aW9uIHRoYXQgcmVxdWlyZXMgYW4gaW1wbGljaXQgY2FzdAogQ1JFQVRFIEZVTkNUSU9OIGJh cl9pbnQ0X3RleHQoaW50NCkgUkVUVVJOUyB0ZXh0IExBTkdVQUdFIFNRTCBBUwogJCQgU0VMRUNU ICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7ICQkOworQ1JFQVRFIEZVTkNUSU9OIGJhcl9pbnQ0 X3RleHRfcGxwZyhpbnQ0KSBSRVRVUk5TIHRleHQgTEFOR1VBR0UgcGxwZ3NxbCBBUworJCQgQkVH SU4gUkVUVVJOICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7IEVORCAkJDsKK0NSRUFURSBDQVNU IChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBTQUZFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQo aW50NCkgQVMgSU1QTElDSVQ7IC0tIGVycm9yCitFUlJPUjogIFNhZmUgdHlwZSBjYXN0IGZ1bmN0 aW9ucyBhcmUgb25seSBzdXBwb3J0ZWQgZm9yIEMgYW5kIGludGVybmFsIGxhbmd1YWdlcworQ1JF QVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIFNBRkUgRlVOQ1RJT04gYmFyX2lu dDRfdGV4dF9wbHBnKGludDQpIEFTIElNUExJQ0lUOyAtLSBlcnJvcgorRVJST1I6ICBTYWZlIHR5 cGUgY2FzdCBmdW5jdGlvbnMgYXJlIG9ubHkgc3VwcG9ydGVkIGZvciBDIGFuZCBpbnRlcm5hbCBs YW5ndWFnZXMKIENSRUFURSBDQVNUIChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBGVU5DVElP TiBiYXJfaW50NF90ZXh0KGludDQpIEFTIElNUExJQ0lUOwogU0VMRUNUIDEyMzQ6OmludDQ6OmNh c3R0ZXN0dHlwZTsgLS0gU2hvdWxkIHdvcmsgbm93CiAgY2FzdHRlc3R0eXBlIApAQCAtOTIsNyAr OTgsNyBAQCBTRUxFQ1QgQ0FTVCgxMjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycgogRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBl IGludGVnZXIgdG8gY2FzdHRlc3R0eXBlIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNp ZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCiBMSU5FIDE6IFNFTEVDVCBDQVNU KDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRS4uLgogICAg ICAgICAgICAgICAgICAgICBeCi1ISU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5l ZCB0eXBlcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRl ZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUKIC0tIGNoZWNrIGRlcGVuZGVu Y2llcyBnZW5lcmF0ZWQgZm9yIHRoYXQKIFNFTEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xhc3Np ZCwgb2JqaWQsIG9ianN1YmlkKSBhcyBvYmosCiAgICAgICAgcGdfZGVzY3JpYmVfb2JqZWN0KHJl ZmNsYXNzaWQsIHJlZm9iamlkLCByZWZvYmpzdWJpZCkgYXMgb2JqcmVmLApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggYTM1N2UxZDBjMGUuLjgxZWEyNDQ4NTlm IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTk0Myw4ICs5 NDMsOCBAQCBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSAwIE9S IGNhc3R0YXJnZXQgPSAwIE9SIGNhc3Rjb250ZXh0IE5PVCBJTiAoJ2UnLCAnYScsICdpJykKICAg ICBPUiBjYXN0bWV0aG9kIE5PVCBJTiAoJ2YnLCAnYicgLCdpJyk7Ci0gb2lkIHwgY2FzdHNvdXJj ZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBj YXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gQ2hlY2sgdGhhdCBjYXN0ZnVuYyBpcyBub256 ZXJvIG9ubHkgZm9yIGNhc3QgbWV0aG9kcyB0aGF0IG5lZWQgYSBmdW5jdGlvbiwKQEAgLTk1Myw4 ICs5NTMsOCBAQCBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIChjYXN0bWV0aG9kID0g J2YnIEFORCBjYXN0ZnVuYyA9IDApCiAgICBPUiAoY2FzdG1ldGhvZCBJTiAoJ2InLCAnaScpIEFO RCBjYXN0ZnVuYyA8PiAwKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3Rm dW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2Fz dHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhv ZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dz KQogCiAtLSBMb29rIGZvciBjYXN0cyB0by9mcm9tIHRoZSBzYW1lIHR5cGUgdGhhdCBhcmVuJ3Qg bGVuZ3RoIGNvZXJjaW9uIGZ1bmN0aW9ucy4KQEAgLTk2MywxNSArOTYzLDE1IEBAIFdIRVJFIChj YXN0bWV0aG9kID0gJ2YnIEFORCBjYXN0ZnVuYyA9IDApCiBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0 IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSBjYXN0dGFyZ2V0IEFORCBjYXN0ZnVuYyA9IDA7Ci0gb2lk IHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2Fz dG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogU0VMRUNUIGMuKgogRlJPTSBw Z19jYXN0IGMsIHBnX3Byb2MgcAogV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORCBwLnByb25h cmdzIDwgMiBBTkQgY2FzdHNvdXJjZSA9IGNhc3R0YXJnZXQ7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8 IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0 Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gTG9vayBmb3IgY2FzdCBmdW5jdGlvbnMgdGhhdCBk b24ndCBoYXZlIHRoZSByaWdodCBzaWduYXR1cmUuICBUaGUKQEAgLTk4OSw4ICs5ODksOCBAQCBX SEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5ECiAgICAgICAgICAgICAgT1IgKGMuY2FzdHNvdXJj ZSA9ICdjaGFyYWN0ZXInOjpyZWd0eXBlIEFORAogICAgICAgICAgICAgICAgICBwLnByb2FyZ3R5 cGVzWzBdID0gJ3RleHQnOjpyZWd0eXBlKSkKICAgICAgT1IgTk9UIGJpbmFyeV9jb2VyY2libGUo cC5wcm9yZXR0eXBlLCBjLmNhc3R0YXJnZXQpKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRh cmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Cisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0 IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tCiAoMCByb3dzKQogCiBTRUxFQ1QgYy4qCkBAIC05OTgsOCArOTk4LDggQEAgRlJPTSBwZ19j YXN0IGMsIHBnX3Byb2MgcAogV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORAogICAgICgocC5w cm9uYXJncyA+IDEgQU5EIHAucHJvYXJndHlwZXNbMV0gIT0gJ2ludDQnOjpyZWd0eXBlKSBPUgog ICAgICAocC5wcm9uYXJncyA+IDIgQU5EIHAucHJvYXJndHlwZXNbMl0gIT0gJ2Jvb2wnOjpyZWd0 eXBlKSk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rj b250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJy b3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gTG9v ayBmb3IgYmluYXJ5IGNvbXBhdGlibGUgY2FzdHMgdGhhdCBkbyBub3QgaGF2ZSB0aGUgcmV2ZXJz ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCmluZGV4IDBhMTVhNzk1ZDg3Li4zMGEw ZmYwNzdjOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbApAQCAtNjAsNiArNjAs MTEgQEAgRFJPUCBGVU5DVElPTiBpbnQ0X2Nhc3R0ZXN0dHlwZShpbnQ0KSBDQVNDQURFOwogQ1JF QVRFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgUkVUVVJOUyB0ZXh0IExBTkdVQUdFIFNR TCBBUwogJCQgU0VMRUNUICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7ICQkOwogCitDUkVBVEUg RlVOQ1RJT04gYmFyX2ludDRfdGV4dF9wbHBnKGludDQpIFJFVFVSTlMgdGV4dCBMQU5HVUFHRSBw bHBnc3FsIEFTCiskJCBCRUdJTiBSRVRVUk4gKCdiYXInOjp0ZXh0IHx8ICQxOjp0ZXh0KTsgRU5E ICQkOworCitDUkVBVEUgQ0FTVCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggU0FGRSBGVU5D VElPTiBiYXJfaW50NF90ZXh0KGludDQpIEFTIElNUExJQ0lUOyAtLSBlcnJvcgorQ1JFQVRFIENB U1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIFNBRkUgRlVOQ1RJT04gYmFyX2ludDRfdGV4 dF9wbHBnKGludDQpIEFTIElNUExJQ0lUOyAtLSBlcnJvcgogQ1JFQVRFIENBU1QgKGludDQgQVMg Y2FzdHRlc3R0eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgQVMgSU1QTElD SVQ7CiBTRUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91bGQgd29yayBub3cK IFNFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0021-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v17-0021-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4ltq25 RnJvbSA2MTA2YmQ2YmM2ZmM4OTc1MWJkMzVmODBjYTc5ZTRmODc2OGM2N2EzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMyBKYW4gMjAyNiAxNDo0NDozOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDIxLzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGdlb21ldHJ5IGRhdGEgdHlwZQoKc2VsZWN0 IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUsIHBwLnByb3NyYwpmcm9t IHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3RmdW5jCmpvaW4g cGdfdHlwZSBwdCBvbiBwdC5vaWQgPSBjYXN0c291cmNlCmpvaW4gcGdfdHlwZSBwdDEgb24gcHQx Lm9pZCA9IGNhc3R0YXJnZXQKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgIHB0LnR5cGFycmF5IDw+ IDAKYW5kIHB0LnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCBw dDEudHlwbmFtZXNwYWNlID0gJ3BnX2NhdGFsb2cnOjpyZWduYW1lc3BhY2UKYW5kIChwdC50eXBj YXRlZ29yeSAgPSAnRycgb3IgcHQxLnR5cGNhdGVnb3J5ICA9ICdHJykKb3JkZXIgYnkgY2FzdHNv dXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2FzdHRh cmdldCB8ICAgIHByb3NyYwotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LQogcG9pbnQgICAgICB8IGJveCAgICAgICAgfCBwb2ludF9ib3gKIGxzZWcgICAgICAgfCBwb2lu dCAgICAgIHwgbHNlZ19jZW50ZXIKIHBhdGggICAgICAgfCBwb2x5Z29uICAgIHwgcGF0aF9wb2x5 CiBib3ggICAgICAgIHwgcG9pbnQgICAgICB8IGJveF9jZW50ZXIKIGJveCAgICAgICAgfCBsc2Vn ICAgICAgIHwgYm94X2RpYWdvbmFsCiBib3ggICAgICAgIHwgcG9seWdvbiAgICB8IGJveF9wb2x5 CiBib3ggICAgICAgIHwgY2lyY2xlICAgICB8IGJveF9jaXJjbGUKIHBvbHlnb24gICAgfCBwb2lu dCAgICAgIHwgcG9seV9jZW50ZXIKIHBvbHlnb24gICAgfCBwYXRoICAgICAgIHwgcG9seV9wYXRo CiBwb2x5Z29uICAgIHwgYm94ICAgICAgICB8IHBvbHlfYm94CiBwb2x5Z29uICAgIHwgY2lyY2xl ICAgICB8IHBvbHlfY2lyY2xlCiBjaXJjbGUgICAgIHwgcG9pbnQgICAgICB8IGNpcmNsZV9jZW50 ZXIKIGNpcmNsZSAgICAgfCBib3ggICAgICAgIHwgY2lyY2xlX2JveAogY2lyY2xlICAgICB8IHBv bHlnb24gICAgfAooMTQgcm93cykKCmFscmVhZHkgZXJyb3Igc2FmZTogcG9pbnRfYm94LCBib3hf ZGlhZ29uYWwsIGJveF9wb2x5LCBwb2x5X3BhdGgsIHBvbHlfYm94LApjaXJjbGVfY2VudGVyClRo aXMgcGF0Y2ggbWFrZSB0aGVzZSBmdW5jdGlvbnMgZXJyb3Igc2FmZTogcGF0aF9wb2x5LCBsc2Vn X2NlbnRlciwgYm94X2NlbnRlciwKYm94X2NpcmNsZSwgcG9seV9jZW50ZXIsIHBvbHlfY2lyY2xl LCBjaXJjbGVfYm94CgpjYW4gbm90IGVycm9yIHNhZmU6IGNhc3QgY2lyY2xlIHRvIHBvbHlnb24s IGJlY2F1c2UgaXQncyBhIFNRTCBmdW5jdGlvbi4KZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3Iu ZXMvbS9DQUNKdWZ4SENNenJIT1c9d1JlOEwzMHJNaEIzc2p3QXYxTEU5MjhGYTdzeE11MVR4LWdA bWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIHwgMTky ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUyIGlu c2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9nZW9fb3BzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCmluZGV4 IGM2NTViMDE1YzE0Li45MDIyOGFkMjE3NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2dlb19vcHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBAIC03 Nyw3ICs3Nyw4IEBAIGVudW0gcGF0aF9kZWxpbQogCiAvKiBSb3V0aW5lcyBmb3IgcG9pbnRzICov CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfY29uc3RydWN0KFBvaW50ICpyZXN1bHQsIGZsb2F0 OCB4LCBmbG9hdDggeSk7Ci1zdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfYWRkX3BvaW50KFBvaW50 ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGluZSB2b2lkIHBv aW50X2FkZF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyLAorCQkJ CQkJCQkgICBOb2RlICplc2NvbnRleHQpOwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X3N1Yl9w b2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxp bmUgdm9pZCBwb2ludF9tdWxfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQg KnB0Mik7CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfZGl2X3BvaW50KFBvaW50ICpyZXN1bHQs IFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwpAQCAtMTA4LDcgKzEwOSw3IEBAIHN0YXRpYyBmbG9h dDggbHNlZ19jbG9zZXB0X2xzZWcoUG9pbnQgKnJlc3VsdCwgTFNFRyAqb25fbHNlZywgTFNFRyAq dG9fbHNlZyk7CiAKIC8qIFJvdXRpbmVzIGZvciBib3hlcyAqLwogc3RhdGljIGlubGluZSB2b2lk IGJveF9jb25zdHJ1Y3QoQk9YICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwotc3Rh dGljIHZvaWQgYm94X2NuKFBvaW50ICpjZW50ZXIsIEJPWCAqYm94KTsKK3N0YXRpYyB2b2lkIGJv eF9jbihQb2ludCAqY2VudGVyLCBCT1ggKmJveCwgTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBi b29sIGJveF9vdihCT1ggKmJveDEsIEJPWCAqYm94Mik7CiBzdGF0aWMgZmxvYXQ4IGJveF9hcihC T1ggKmJveCk7CiBzdGF0aWMgZmxvYXQ4IGJveF9odChCT1ggKmJveCk7CkBAIC0xMjUsNyArMTI2 LDcgQEAgc3RhdGljIGZsb2F0OCBjaXJjbGVfYXIoQ0lSQ0xFICpjaXJjbGUpOwogCiAvKiBSb3V0 aW5lcyBmb3IgcG9seWdvbnMgKi8KIHN0YXRpYyB2b2lkIG1ha2VfYm91bmRfYm94KFBPTFlHT04g KnBvbHkpOwotc3RhdGljIHZvaWQgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlH T04gKnBvbHkpOworc3RhdGljIGJvb2wgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBP TFlHT04gKnBvbHksIE5vZGUgKmVzY29udGV4dCk7CiBzdGF0aWMgYm9vbCBsc2VnX2luc2lkZV9w b2x5KFBvaW50ICphLCBQb2ludCAqYiwgUE9MWUdPTiAqcG9seSwgaW50IHN0YXJ0KTsKIHN0YXRp YyBib29sIHBvbHlfY29udGFpbl9wb2x5KFBPTFlHT04gKmNvbnRhaW5zX3BvbHksIFBPTFlHT04g KmNvbnRhaW5lZF9wb2x5KTsKIHN0YXRpYyBib29sIHBsaXN0X3NhbWUoaW50IG5wdHMsIFBvaW50 ICpwMSwgUG9pbnQgKnAyKTsKQEAgLTgzNiw4ICs4MzcsOCBAQCBib3hfZGlzdGFuY2UoUEdfRlVO Q1RJT05fQVJHUykKIAlQb2ludAkJYSwKIAkJCQliOwogCi0JYm94X2NuKCZhLCBib3gxKTsKLQli b3hfY24oJmIsIGJveDIpOworCWJveF9jbigmYSwgYm94MSwgTlVMTCk7CisJYm94X2NuKCZiLCBi b3gyLCBOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQoJmEsICZiLCBmY2luZm8t PmNvbnRleHQpKTsKIH0KQEAgLTg1MSw3ICs4NTIsOSBAQCBib3hfY2VudGVyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJQk9YCQkgICAqYm94ID0gUEdfR0VUQVJHX0JPWF9QKDApOwogCVBvaW50CSAgICpy ZXN1bHQgPSBwYWxsb2Nfb2JqZWN0KFBvaW50KTsKIAotCWJveF9jbihyZXN1bHQsIGJveCk7CisJ Ym94X2NuKHJlc3VsdCwgYm94LCBmY2luZm8tPmNvbnRleHQpOworCWlmICgoU09GVF9FUlJPUl9P Q0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JF VFVSTl9QT0lOVF9QKHJlc3VsdCk7CiB9CkBAIC04NjksMTMgKzg3MiwyNiBAQCBib3hfYXIoQk9Y ICpib3gpCiAvKgkJYm94X2NuCS0JCXN0b3JlcyB0aGUgY2VudGVycG9pbnQgb2YgdGhlIGJveCBp bnRvICpjZW50ZXIuCiAgKi8KIHN0YXRpYyB2b2lkCi1ib3hfY24oUG9pbnQgKmNlbnRlciwgQk9Y ICpib3gpCitib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gsIE5vZGUgKmVzY29udGV4dCkK IHsKLQljZW50ZXItPnggPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueCwgYm94LT5s b3cueCksIDIuMCk7Ci0JY2VudGVyLT55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdo LnksIGJveC0+bG93LnkpLCAyLjApOworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CisKKwl4ID0g ZmxvYXQ4X3BsX3NhZmUoYm94LT5oaWdoLngsIGJveC0+bG93LngsIGVzY29udGV4dCk7CisJaWYg KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuOworCisJY2VudGVyLT54 ID0gZmxvYXQ4X2Rpdl9zYWZlKHgsIDIuMCwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9P Q0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm47CisKKwl5ID0gZmxvYXQ4X3BsX3NhZmUoYm94 LT5oaWdoLnksIGJveC0+bG93LnksIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJS RUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuOworCisJY2VudGVyLT55ID0gZmxvYXQ4X2Rpdl9zYWZl KHksIDIuMCwgZXNjb250ZXh0KTsKIH0KIAotCiAvKgkJYm94X3dkCS0JCXJldHVybnMgdGhlIHdp ZHRoIChsZW5ndGgpIG9mIHRoZSBib3gKICAqCQkJCQkJCQkgIChob3Jpem9udGFsIG1hZ25pdHVk ZSkuCiAgKi8KQEAgLTIzMjksMTMgKzIzNDUsMzEgQEAgbHNlZ19jZW50ZXIoUEdfRlVOQ1RJT05f QVJHUykKIHsKIAlMU0VHCSAgICpsc2VnID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlQb2ludAkg ICAqcmVzdWx0OworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CiAKIAlyZXN1bHQgPSBwYWxsb2Nf b2JqZWN0KFBvaW50KTsKIAotCXJlc3VsdC0+eCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGxzZWct PnBbMF0ueCwgbHNlZy0+cFsxXS54KSwgMi4wKTsKLQlyZXN1bHQtPnkgPSBmbG9hdDhfZGl2KGZs b2F0OF9wbChsc2VnLT5wWzBdLnksIGxzZWctPnBbMV0ueSksIDIuMCk7CisJeCA9IGZsb2F0OF9w bF9zYWZlKGxzZWctPnBbMF0ueCwgbHNlZy0+cFsxXS54LCBmY2luZm8tPmNvbnRleHQpOworCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKwor CXJlc3VsdC0+eCA9IGZsb2F0OF9kaXZfc2FmZSh4LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwor CisJeSA9IGZsb2F0OF9wbF9zYWZlKGxzZWctPnBbMF0ueSwgbHNlZy0+cFsxXS55LCBmY2luZm8t PmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJ CWdvdG8gZmFpbDsKKworCXJlc3VsdC0+eSA9IGZsb2F0OF9kaXZfc2FmZSh5LCAyLjAsIGZjaW5m by0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkK KwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX1BPSU5UX1AocmVzdWx0KTsKKworZmFpbDoKKwlQ R19SRVRVUk5fTlVMTCgpOwogfQogCiAKQEAgLTMyOTAsNyArMzMyNCw3IEBAIGJveF9pbnRlcnB0 X2xzZWcoUG9pbnQgKnJlc3VsdCwgQk9YICpib3gsIExTRUcgKmxzZWcpCiAKIAlpZiAocmVzdWx0 ICE9IE5VTEwpCiAJewotCQlib3hfY24oJnBvaW50LCBib3gpOworCQlib3hfY24oJnBvaW50LCBi b3gsIE5VTEwpOwogCQlsc2VnX2Nsb3NlcHRfcG9pbnQocmVzdWx0LCBsc2VnLCAmcG9pbnQpOwog CX0KIApAQCAtNDEyMSwxMSArNDE1NSwyMCBAQCBjb25zdHJ1Y3RfcG9pbnQoUEdfRlVOQ1RJT05f QVJHUykKIAogCiBzdGF0aWMgaW5saW5lIHZvaWQKLXBvaW50X2FkZF9wb2ludChQb2ludCAqcmVz dWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKQorcG9pbnRfYWRkX3BvaW50KFBvaW50ICpyZXN1 bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIsIE5vZGUgKmVzY29udGV4dCkKIHsKLQlwb2ludF9j b25zdHJ1Y3QocmVzdWx0LAotCQkJCQlmbG9hdDhfcGwocHQxLT54LCBwdDItPngpLAotCQkJCQlm bG9hdDhfcGwocHQxLT55LCBwdDItPnkpKTsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJ eCA9IGZsb2F0OF9wbF9zYWZlKHB0MS0+eCwgcHQyLT54LCBlc2NvbnRleHQpOworCWlmIChTT0ZU X0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybjsKKworCXkgPSBmbG9hdDhfcGxf c2FmZShwdDEtPnksIHB0Mi0+eSwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChlc2NvbnRleHQpKQorCQlyZXR1cm47CisKKwlwb2ludF9jb25zdHJ1Y3QocmVzdWx0LCB4LCB5 KTsKIH0KIAogRGF0dW0KQEAgLTQxMzcsNyArNDE4MCw3IEBAIHBvaW50X2FkZChQR19GVU5DVElP Tl9BUkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7CiAKLQlwb2ludF9hZGRf cG9pbnQocmVzdWx0LCBwMSwgcDIpOworCXBvaW50X2FkZF9wb2ludChyZXN1bHQsIHAxLCBwMiwg TlVMTCk7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOwogfQpAQCAtNDI0OSw4ICs0Mjky LDggQEAgYm94X2FkZChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVj dChCT1gpOwogCi0JcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQtPmhpZ2gsICZib3gtPmhpZ2gsIHAp OwotCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5sb3csICZib3gtPmxvdywgcCk7CisJcG9pbnRf YWRkX3BvaW50KCZyZXN1bHQtPmhpZ2gsICZib3gtPmhpZ2gsIHAsIE5VTEwpOworCXBvaW50X2Fk ZF9wb2ludCgmcmVzdWx0LT5sb3csICZib3gtPmxvdywgcCwgTlVMTCk7CiAKIAlQR19SRVRVUk5f Qk9YX1AocmVzdWx0KTsKIH0KQEAgLTQ0MTMsNyArNDQ1Niw3IEBAIHBhdGhfYWRkX3B0KFBHX0ZV TkNUSU9OX0FSR1MpCiAJaW50CQkJaTsKIAogCWZvciAoaSA9IDA7IGkgPCBwYXRoLT5ucHRzOyBp KyspCi0JCXBvaW50X2FkZF9wb2ludCgmcGF0aC0+cFtpXSwgJnBhdGgtPnBbaV0sIHBvaW50KTsK KwkJcG9pbnRfYWRkX3BvaW50KCZwYXRoLT5wW2ldLCAmcGF0aC0+cFtpXSwgcG9pbnQsIE5VTEwp OwogCiAJUEdfUkVUVVJOX1BBVEhfUChwYXRoKTsKIH0KQEAgLTQ0NzEsNyArNDUxNCw3IEBAIHBh dGhfcG9seShQR19GVU5DVElPTl9BUkdTKQogCiAJLyogVGhpcyBpcyBub3QgdmVyeSBjb25zaXN0 ZW50IC0tLSBvdGhlciBzaW1pbGFyIGNhc2VzIHJldHVybiBOVUxMIC4uLiAqLwogCWlmICghcGF0 aC0+Y2xvc2VkKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwg KERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUp LAogCQkJCSBlcnJtc2coIm9wZW4gcGF0aCBjYW5ub3QgYmUgY29udmVydGVkIHRvIHBvbHlnb24i KSkpOwogCkBAIC00NTIxLDcgKzQ1NjQsOSBAQCBwb2x5X2NlbnRlcihQR19GVU5DVElPTl9BUkdT KQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7CiAKLQlwb2x5X3RvX2NpcmNsZSgm Y2lyY2xlLCBwb2x5KTsKKwlpZiAoIXBvbHlfdG9fY2lyY2xlKCZjaXJjbGUsIHBvbHksIGZjaW5m by0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKIAkqcmVzdWx0ID0gY2lyY2xlLmNl bnRlcjsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7CkBAIC00OTgzLDcgKzUwMjgsNyBA QCBjaXJjbGVfYWRkX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBwYWxsb2Nfb2Jq ZWN0KENJUkNMRSk7CiAKLQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmY2lyY2xl LT5jZW50ZXIsIHBvaW50KTsKKwlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmY2ly Y2xlLT5jZW50ZXIsIHBvaW50LCBOVUxMKTsKIAlyZXN1bHQtPnJhZGl1cyA9IGNpcmNsZS0+cmFk aXVzOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3VsdCk7CkBAIC01MjA0LDE0ICs1MjQ5LDMw IEBAIGNpcmNsZV9ib3goUEdfRlVOQ1RJT05fQVJHUykKIAogCWJveCA9IHBhbGxvY19vYmplY3Qo Qk9YKTsKIAotCWRlbHRhID0gZmxvYXQ4X2RpdihjaXJjbGUtPnJhZGl1cywgc3FydCgyLjApKTsK KwlkZWx0YSA9IGZsb2F0OF9kaXZfc2FmZShjaXJjbGUtPnJhZGl1cywgc3FydCgyLjApLCBmY2lu Zm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkp CisJCWdvdG8gZmFpbDsKIAotCWJveC0+aGlnaC54ID0gZmxvYXQ4X3BsKGNpcmNsZS0+Y2VudGVy LngsIGRlbHRhKTsKLQlib3gtPmxvdy54ID0gZmxvYXQ4X21pKGNpcmNsZS0+Y2VudGVyLngsIGRl bHRhKTsKLQlib3gtPmhpZ2gueSA9IGZsb2F0OF9wbChjaXJjbGUtPmNlbnRlci55LCBkZWx0YSk7 Ci0JYm94LT5sb3cueSA9IGZsb2F0OF9taShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSk7CisJYm94 LT5oaWdoLnggPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNlbnRlci54LCBkZWx0YSwgZmNpbmZv LT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQor CQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy54ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50 ZXIueCwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQo ZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJYm94LT5oaWdoLnkgPSBmbG9hdDhf cGxfc2FmZShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwli b3gtPmxvdy55ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueSwgZGVsdGEsIGZjaW5m by0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkK KwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX0JPWF9QKGJveCk7CisKK2ZhaWw6CisJUEdfUkVU VVJOX05VTEwoKTsKIH0KIAogLyogYm94X2NpcmNsZSgpCkBAIC01MjIyLDE1ICs1MjgzLDM1IEBA IGJveF9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlCT1gJCSAgICpib3ggPSBQR19HRVRB UkdfQk9YX1AoMCk7CiAJQ0lSQ0xFCSAgICpjaXJjbGU7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJ eTsKIAogCWNpcmNsZSA9IHBhbGxvY19vYmplY3QoQ0lSQ0xFKTsKIAotCWNpcmNsZS0+Y2VudGVy LnggPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueCwgYm94LT5sb3cueCksIDIuMCk7 Ci0JY2lyY2xlLT5jZW50ZXIueSA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC55LCBi b3gtPmxvdy55KSwgMi4wKTsKKwl4ID0gZmxvYXQ4X3BsX3NhZmUoYm94LT5oaWdoLngsIGJveC0+ bG93LngsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJY2lyY2xlLT5jZW50ZXIueCA9IGZsb2F0OF9k aXZfc2FmZSh4LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJS RUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJeSA9IGZsb2F0OF9wbF9zYWZl KGJveC0+aGlnaC55LCBib3gtPmxvdy55LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKworCWNpcmNsZS0+ Y2VudGVyLnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4wLCBmY2luZm8tPmNvbnRleHQpOworCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAog CWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCAmYm94LT5oaWdoLCBm Y2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4 dCkpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9DSVJDTEVfUChjaXJjbGUpOworCitmYWls OgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKIApAQCAtNTI5NCwxMCArNTM3NSwxMSBAQCBjaXJj bGVfcG9seShQR19GVU5DVElPTl9BUkdTKQogICogWFhYIFRoaXMgYWxnb3JpdGhtIHNob3VsZCB1 c2Ugd2VpZ2h0ZWQgbWVhbnMgb2YgbGluZSBzZWdtZW50cwogICoJcmF0aGVyIHRoYW4gc3RyYWln aHQgYXZlcmFnZSB2YWx1ZXMgb2YgcG9pbnRzIC0gdGdsIDk3LzAxLzIxLgogICovCi1zdGF0aWMg dm9pZAotcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCitzdGF0 aWMgYm9vbAorcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHksIE5v ZGUgKmVzY29udGV4dCkKIHsKIAlpbnQJCQlpOworCWZsb2F0OAkJeDsKIAogCUFzc2VydChwb2x5 LT5ucHRzID4gMCk7CiAKQEAgLTUzMDYsMTQgKzUzODgsNDMgQEAgcG9seV90b19jaXJjbGUoQ0lS Q0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCiAJcmVzdWx0LT5yYWRpdXMgPSAwOwogCiAJZm9y IChpID0gMDsgaSA8IHBvbHktPm5wdHM7IGkrKykKLQkJcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQt PmNlbnRlciwgJnJlc3VsdC0+Y2VudGVyLCAmcG9seS0+cFtpXSk7Ci0JcmVzdWx0LT5jZW50ZXIu eCA9IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueCwgcG9seS0+bnB0cyk7Ci0JcmVzdWx0LT5j ZW50ZXIueSA9IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueSwgcG9seS0+bnB0cyk7CisJewor CQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLAorCQkJCQkJJnJlc3VsdC0+Y2VudGVy LAorCQkJCQkJJnBvbHktPnBbaV0sCisJCQkJCQllc2NvbnRleHQpOworCQlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZhbHNlOworCX0KKworCXJlc3VsdC0+ Y2VudGVyLnggPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50ZXIueCwKKwkJCQkJCQkJCSAg IHBvbHktPm5wdHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJlc3VsdC0+Y2VudGVyLnkg PSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50ZXIueSwKKwkJCQkJCQkJCSAgIHBvbHktPm5w dHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVz Y29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKIAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRz OyBpKyspCi0JCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsKHJlc3VsdC0+cmFkaXVzLAotCQkJ CQkJCQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBOVUxMKSk7Ci0J cmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KHJlc3VsdC0+cmFkaXVzLCBwb2x5LT5ucHRzKTsK Kwl7CisJCXggPSBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBlc2NvbnRl eHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZh bHNlOworCisJCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsX3NhZmUocmVzdWx0LT5yYWRpdXMs IHgsIGVzY29udGV4dCk7CisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJ CQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2X3NhZmUo cmVzdWx0LT5yYWRpdXMsIHBvbHktPm5wdHMsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1Jf T0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7CiB9 CiAKIERhdHVtCkBAIC01MzI0LDcgKzU0MzUsOCBAQCBwb2x5X2NpcmNsZShQR19GVU5DVElPTl9B UkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChDSVJDTEUpOwogCi0JcG9seV90b19jaXJj bGUocmVzdWx0LCBwb2x5KTsKKwlpZiAoIXBvbHlfdG9fY2lyY2xlKHJlc3VsdCwgcG9seSwgZmNp bmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9DSVJDTEVf UChyZXN1bHQpOwogfQotLSAKMi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0020-refactor-point_dt.patch" Content-Disposition: attachment; filename="v17-0020-refactor-point_dt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4ltv26 RnJvbSBmOTY2YzJiNDU3MTMyNWNhYTU1MjAwZmNiZWYwMzI3MWQwOWExNjk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNSBKYW4gMjAyNiAxMzozMzo1MSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDIwLzIzXSByZWZhY3RvciBwb2ludF9kdAoKcG9pbnRfZHQgaXMgdXNlZCBpbiBtdWx0aXBsZSBs b2NhdGlvbnMgYW5kIHdpbGwgYmUgbmVlZGVkIGJ5IGEgbGF0ZXIgcGF0Y2gsIHRodXMKcmVmYWN0 b3JpbmcgbWFrZSBpdCBlcnJvciBzYWZlLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIHwgNzkgKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDYgaW5zZXJ0 aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2dlb19vcHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMKaW5kZXggYmZi NDg1OWI0Y2IuLmM2NTViMDE1YzE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv Z2VvX29wcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMKQEAgLTgyLDcg KzgyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHBvaW50X3N1Yl9wb2ludChQb2ludCAqcmVzdWx0 LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9tdWxf cG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5s aW5lIHZvaWQgcG9pbnRfZGl2X3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50 ICpwdDIpOwogc3RhdGljIGlubGluZSBib29sIHBvaW50X2VxX3BvaW50KFBvaW50ICpwdDEsIFBv aW50ICpwdDIpOwotc3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfZHQoUG9pbnQgKnB0MSwgUG9p bnQgKnB0Mik7CitzdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9kdChQb2ludCAqcHQxLCBQb2lu dCAqcHQyLCBOb2RlICplc2NvbnRleHQpOwogc3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfc2wo UG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW50CXBvaW50X2luc2lkZShQb2ludCAq cCwgaW50IG5wdHMsIFBvaW50ICpwbGlzdCk7CiAKQEAgLTgzOSw3ICs4MzksNyBAQCBib3hfZGlz dGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAlib3hfY24oJmEsIGJveDEpOwogCWJveF9jbigmYiwg Ym94Mik7CiAKLQlQR19SRVRVUk5fRkxPQVQ4KHBvaW50X2R0KCZhLCAmYikpOworCVBHX1JFVFVS Tl9GTE9BVDgocG9pbnRfZHQoJmEsICZiLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0x ODA4LDcgKzE4MDgsOCBAQCBwYXRoX2xlbmd0aChQR19GVU5DVElPTl9BUkdTKQogCQkJaXByZXYg PSBwYXRoLT5ucHRzIC0gMTsgLyogaW5jbHVkZSB0aGUgY2xvc3VyZSBzZWdtZW50ICovCiAJCX0K IAotCQlyZXN1bHQgPSBmbG9hdDhfcGwocmVzdWx0LCBwb2ludF9kdCgmcGF0aC0+cFtpcHJldl0s ICZwYXRoLT5wW2ldKSk7CisJCXJlc3VsdCA9IGZsb2F0OF9wbChyZXN1bHQsCisJCQkJCQkgICBw b2ludF9kdCgmcGF0aC0+cFtpcHJldl0sICZwYXRoLT5wW2ldLCBmY2luZm8tPmNvbnRleHQpKTsK IAl9CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CkBAIC0xOTk1LDEzICsxOTk2LDI0IEBA IHBvaW50X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUG9pbnQJICAgKnB0MSA9IFBHX0dF VEFSR19QT0lOVF9QKDApOwogCVBvaW50CSAgICpwdDIgPSBQR19HRVRBUkdfUE9JTlRfUCgxKTsK IAotCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQocHQxLCBwdDIpKTsKKwlQR19SRVRVUk5fRkxP QVQ4KHBvaW50X2R0KHB0MSwgcHQyLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogc3RhdGljIGlu bGluZSBmbG9hdDgKLXBvaW50X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIpCitwb2ludF9kdChQ b2ludCAqcHQxLCBQb2ludCAqcHQyLCBOb2RlICplc2NvbnRleHQpCiB7Ci0JcmV0dXJuIGh5cG90 KGZsb2F0OF9taShwdDEtPngsIHB0Mi0+eCksIGZsb2F0OF9taShwdDEtPnksIHB0Mi0+eSkpOwor CWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CisKKwl4ID0gZmxvYXQ4X21pX3NhZmUocHQxLT54LCBw dDItPngsIGVzY29udGV4dCk7CisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkpCisJCXJldHVybiAwLjA7CisKKwl5ID0gZmxvYXQ4X21pX3NhZmUocHQxLT55LCBw dDItPnksIGVzY29udGV4dCk7CisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkpCisJCXJldHVybiAwLjA7CisKKwlyZXR1cm4gaHlwb3QoeCwgeSk7CiB9CiAKIERh dHVtCkBAIC0yMTczLDcgKzIxODUsNyBAQCBsc2VnX2xlbmd0aChQR19GVU5DVElPTl9BUkdTKQog ewogCUxTRUcJICAgKmxzZWcgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCi0JUEdfUkVUVVJOX0ZM T0FUOChwb2ludF9kdCgmbHNlZy0+cFswXSwgJmxzZWctPnBbMV0pKTsKKwlQR19SRVRVUk5fRkxP QVQ4KHBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSk7 CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpAQCAtMjI1OCw4ICsyMjcwLDggQEAgbHNlZ19sdChQR19GVU5DVElPTl9BUkdT KQogCUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBH X0dFVEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGx0KHBvaW50X2R0KCZsMS0+ cFswXSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkp OworCVBHX1JFVFVSTl9CT09MKEZQbHQocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZj aW5mby0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNp bmZvLT5jb250ZXh0KSkpOwogfQogCiBEYXR1bQpAQCAtMjI2OCw4ICsyMjgwLDggQEAgbHNlZ19s ZShQR19GVU5DVElPTl9BUkdTKQogCUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsK IAlMU0VHCSAgICpsMiA9IFBHX0dFVEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChG UGxlKHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+ cFswXSwgJmwyLT5wWzFdKSkpOworCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmwxLT5w WzBdLCAmbDEtPnBbMV0sIGZjaW5mby0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBb MF0sICZsMi0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSkpOwogfQogCiBEYXR1bQpAQCAtMjI3OCw4 ICsyMjkwLDggQEAgbHNlZ19ndChQR19GVU5DVElPTl9BUkdTKQogCUxTRUcJICAgKmwxID0gUEdf R0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dFVEFSR19MU0VHX1AoMSk7CiAK LQlQR19SRVRVUk5fQk9PTChGUGd0KHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdKSwKLQkJ CQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOworCVBHX1JFVFVSTl9CT09MKEZQ Z3QocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZjaW5mby0+Y29udGV4dCksCisJCQkJ CQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSkpOwogfQog CiBEYXR1bQpAQCAtMjI4OCw4ICsyMzAwLDggQEAgbHNlZ19nZShQR19GVU5DVElPTl9BUkdTKQog CUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dF VEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGdlKHBvaW50X2R0KCZsMS0+cFsw XSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOwor CVBHX1JFVFVSTl9CT09MKEZQZ2UocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZjaW5m by0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNpbmZv LT5jb250ZXh0KSkpOwogfQogCiAKQEAgLTI3NDMsNyArMjc1NSw3IEBAIGxpbmVfY2xvc2VwdF9w b2ludChQb2ludCAqcmVzdWx0LCBMSU5FICpsaW5lLCBQb2ludCAqcG9pbnQpCiAJaWYgKHJlc3Vs dCAhPSBOVUxMKQogCQkqcmVzdWx0ID0gY2xvc2VwdDsKIAotCXJldHVybiBwb2ludF9kdCgmY2xv c2VwdCwgcG9pbnQpOworCXJldHVybiBwb2ludF9kdCgmY2xvc2VwdCwgcG9pbnQsIE5VTEwpOwog fQogCiBEYXR1bQpAQCAtMjc4NCw3ICsyNzk2LDcgQEAgbHNlZ19jbG9zZXB0X3BvaW50KFBvaW50 ICpyZXN1bHQsIExTRUcgKmxzZWcsIFBvaW50ICpwdCkKIAlpZiAocmVzdWx0ICE9IE5VTEwpCiAJ CSpyZXN1bHQgPSBjbG9zZXB0OwogCi0JcmV0dXJuIHBvaW50X2R0KCZjbG9zZXB0LCBwdCk7CisJ cmV0dXJuIHBvaW50X2R0KCZjbG9zZXB0LCBwdCwgTlVMTCk7CiB9CiAKIERhdHVtCkBAIC0zMTA4 LDkgKzMxMjAsOSBAQCBvbl9wbChQR19GVU5DVElPTl9BUkdTKQogc3RhdGljIGJvb2wKIGxzZWdf Y29udGFpbl9wb2ludChMU0VHICpsc2VnLCBQb2ludCAqcHQpCiB7Ci0JcmV0dXJuIEZQZXEocG9p bnRfZHQocHQsICZsc2VnLT5wWzBdKSArCi0JCQkJcG9pbnRfZHQocHQsICZsc2VnLT5wWzFdKSwK LQkJCQlwb2ludF9kdCgmbHNlZy0+cFswXSwgJmxzZWctPnBbMV0pKTsKKwlyZXR1cm4gRlBlcShw b2ludF9kdChwdCwgJmxzZWctPnBbMF0sIE5VTEwpICsKKwkJCQlwb2ludF9kdChwdCwgJmxzZWct PnBbMV0sIE5VTEwpLAorCQkJCXBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsxXSwgTlVM TCkpOwogfQogCiBEYXR1bQpAQCAtMzE3NiwxMSArMzE4OCwxMiBAQCBvbl9wcGF0aChQR19GVU5D VElPTl9BUkdTKQogCWlmICghcGF0aC0+Y2xvc2VkKQogCXsKIAkJbiA9IHBhdGgtPm5wdHMgLSAx OwotCQlhID0gcG9pbnRfZHQocHQsICZwYXRoLT5wWzBdKTsKKwkJYSA9IHBvaW50X2R0KHB0LCAm cGF0aC0+cFswXSwgZmNpbmZvLT5jb250ZXh0KTsKIAkJZm9yIChpID0gMDsgaSA8IG47IGkrKykK IAkJewotCQkJYiA9IHBvaW50X2R0KHB0LCAmcGF0aC0+cFtpICsgMV0pOwotCQkJaWYgKEZQZXEo ZmxvYXQ4X3BsKGEsIGIpLCBwb2ludF9kdCgmcGF0aC0+cFtpXSwgJnBhdGgtPnBbaSArIDFdKSkp CisJCQliID0gcG9pbnRfZHQocHQsICZwYXRoLT5wW2kgKyAxXSwgZmNpbmZvLT5jb250ZXh0KTsK KwkJCWlmIChGUGVxKGZsb2F0OF9wbChhLCBiKSwKKwkJCQkJIHBvaW50X2R0KCZwYXRoLT5wW2ld LCAmcGF0aC0+cFtpICsgMV0sIGZjaW5mby0+Y29udGV4dCkpKQogCQkJCVBHX1JFVFVSTl9CT09M KHRydWUpOwogCQkJYSA9IGI7CiAJCX0KQEAgLTQ3NjYsNyArNDc3OSw3IEBAIGNpcmNsZV9vdmVy bGFwKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpjaXJjbGUxID0gUEdfR0VUQVJHX0NJ UkNMRV9QKDApOwogCUNJUkNMRQkgICAqY2lyY2xlMiA9IFBHX0dFVEFSR19DSVJDTEVfUCgxKTsK IAotCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNs ZTItPmNlbnRlciksCisJUEdfUkVUVVJOX0JPT0woRlBsZShwb2ludF9kdCgmY2lyY2xlMS0+Y2Vu dGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2luZm8tPmNvbnRleHQpLAogCQkJCQkJZmxvYXQ4X3Bs KGNpcmNsZTEtPnJhZGl1cywgY2lyY2xlMi0+cmFkaXVzKSkpOwogfQogCkBAIC00ODI4LDcgKzQ4 NDEsNyBAQCBjaXJjbGVfY29udGFpbmVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpj aXJjbGUxID0gUEdfR0VUQVJHX0NJUkNMRV9QKDApOwogCUNJUkNMRQkgICAqY2lyY2xlMiA9IFBH X0dFVEFSR19DSVJDTEVfUCgxKTsKIAotCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNp cmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNlbnRlciksCisJUEdfUkVUVVJOX0JPT0woRlBsZShw b2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2luZm8tPmNvbnRl eHQpLAogCQkJCQkJZmxvYXQ4X21pKGNpcmNsZTItPnJhZGl1cywgY2lyY2xlMS0+cmFkaXVzKSkp OwogfQogCkBAIC00ODQwLDcgKzQ4NTMsNyBAQCBjaXJjbGVfY29udGFpbihQR19GVU5DVElPTl9B UkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMSA9IFBHX0dFVEFSR19DSVJDTEVfUCgwKTsKIAlDSVJD TEUJICAgKmNpcmNsZTIgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9P TChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCVBH X1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNl bnRlciwgZmNpbmZvLT5jb250ZXh0KSwKIAkJCQkJCWZsb2F0OF9taShjaXJjbGUxLT5yYWRpdXMs IGNpcmNsZTItPnJhZGl1cykpKTsKIH0KIApAQCAtNTA2OSw3ICs1MDgyLDcgQEAgY2lyY2xlX2Rp c3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpjaXJjbGUyID0gUEdfR0VUQVJH X0NJUkNMRV9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVzdWx0ID0gZmxvYXQ4X21pKHBv aW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCXJlc3VsdCA9IGZs b2F0OF9taShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2lu Zm8tPmNvbnRleHQpLAogCQkJCQkgICBmbG9hdDhfcGwoY2lyY2xlMS0+cmFkaXVzLCBjaXJjbGUy LT5yYWRpdXMpKTsKIAlpZiAocmVzdWx0IDwgMC4wKQogCQlyZXN1bHQgPSAwLjA7CkBAIC01MDg1 LDcgKzUwOTgsNyBAQCBjaXJjbGVfY29udGFpbl9wdChQR19GVU5DVElPTl9BUkdTKQogCVBvaW50 CSAgICpwb2ludCA9IFBHX0dFVEFSR19QT0lOVF9QKDEpOwogCWZsb2F0OAkJZDsKIAotCWQgPSBw b2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsIHBvaW50KTsKKwlkID0gcG9pbnRfZHQoJmNpcmNsZS0+ Y2VudGVyLCBwb2ludCwgZmNpbmZvLT5jb250ZXh0KTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNp cmNsZS0+cmFkaXVzKTsKIH0KIApAQCAtNTA5Nyw3ICs1MTEwLDcgQEAgcHRfY29udGFpbmVkX2Np cmNsZShQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlID0gUEdfR0VUQVJHX0NJ UkNMRV9QKDEpOwogCWZsb2F0OAkJZDsKIAotCWQgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIs IHBvaW50KTsKKwlkID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCBwb2ludCwgZmNpbmZvLT5j b250ZXh0KTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNpcmNsZS0+cmFkaXVzKTsKIH0KIApAQCAt NTExMiw3ICs1MTI1LDcgQEAgZGlzdF9wYyhQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAq Y2lyY2xlID0gUEdfR0VUQVJHX0NJUkNMRV9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gZmxvYXQ4X21pKHBvaW50X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIpLAorCXJlc3Vs dCA9IGZsb2F0OF9taShwb2ludF9kdChwb2ludCwgJmNpcmNsZS0+Y2VudGVyLCBmY2luZm8tPmNv bnRleHQpLAogCQkJCQkgICBjaXJjbGUtPnJhZGl1cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJ cmVzdWx0ID0gMC4wOwpAQCAtNTEzMCw3ICs1MTQzLDcgQEAgZGlzdF9jcG9pbnQoUEdfRlVOQ1RJ T05fQVJHUykKIAlQb2ludAkgICAqcG9pbnQgPSBQR19HRVRBUkdfUE9JTlRfUCgxKTsKIAlmbG9h dDgJCXJlc3VsdDsKIAotCXJlc3VsdCA9IGZsb2F0OF9taShwb2ludF9kdChwb2ludCwgJmNpcmNs ZS0+Y2VudGVyKSwgY2lyY2xlLT5yYWRpdXMpOworCXJlc3VsdCA9IGZsb2F0OF9taShwb2ludF9k dChwb2ludCwgJmNpcmNsZS0+Y2VudGVyLCBmY2luZm8tPmNvbnRleHQpLCBjaXJjbGUtPnJhZGl1 cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJcmVzdWx0ID0gMC4wOwogCkBAIC01MjE1LDcgKzUy MjgsNyBAQCBib3hfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJY2lyY2xlLT5jZW50ZXIueCA9 IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBib3gtPmxvdy54KSwgMi4wKTsKIAlj aXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLnksIGJveC0+ bG93LnkpLCAyLjApOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50 ZXIsICZib3gtPmhpZ2gpOworCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2Vu dGVyLCAmYm94LT5oaWdoLCBmY2luZm8tPmNvbnRleHQpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9Q KGNpcmNsZSk7CiB9CkBAIC01Mjk5LDcgKzUzMTIsNyBAQCBwb2x5X3RvX2NpcmNsZShDSVJDTEUg KnJlc3VsdCwgUE9MWUdPTiAqcG9seSkKIAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRzOyBp KyspCiAJCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsKHJlc3VsdC0+cmFkaXVzLAotCQkJCQkJ CQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyKSk7CisJCQkJCQkJCSAg IHBvaW50X2R0KCZwb2x5LT5wW2ldLCAmcmVzdWx0LT5jZW50ZXIsIE5VTEwpKTsKIAlyZXN1bHQt PnJhZGl1cyA9IGZsb2F0OF9kaXYocmVzdWx0LT5yYWRpdXMsIHBvbHktPm5wdHMpOwogfQogCi0t IAoyLjM0LjEKCg== --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Disposition: attachment; filename="v17-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lu728 RnJvbSAzMjBiNTVmNDA2YTAxNWY1MjdlNmViYzAyYWExMzljODY4NDc3NGY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgOSBEZWMgMjAyNSAxNDozNjozOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDE4LzIzXSByZWZhY3RvcgogZmxvYXRfb3ZlcmZsb3dfZXJyb3IsZmxvYXRfdW5kZXJmbG93X2Vy cm9yLGZsb2F0X3plcm9fZGl2aWRlX2Vycm9yCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5l cy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBt YWlsLmdtYWlsLmNvbQotLS0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYyB8ICAg MiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jIHwgICA0ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvZmxvYXQuYyAgICAgfCAxMDQgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oICAgICAgICAgfCAgMzQgKysrKystLS0t LQogNCBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA3MiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMgYi9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKaW5kZXggZDljODU5ODM1ZGEuLmE3MzI1YTdiYjI5IDEw MDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKKysrIGIvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0NC5jCkBAIC0xMDEsNyArMTAxLDcgQEAgZmxvYXQ0X2Rp c3QoUEdfRlVOQ1RJT05fQVJHUykKIAogCXIgPSBhIC0gYjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cikpICYmICFpc2luZihhKSAmJiAhaXNpbmYoYikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUNChmYWJz ZihyKSk7CiB9CmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMg Yi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMKaW5kZXggNTY3YmVlZGUxNzguLjdj OTliODRkZTM1IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMK KysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jCkBAIC03OSw3ICs3OSw3IEBA IGdidF9mbG9hdDhfZGlzdChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBGbWdySW5mbyAq ZmxpbmZvKQogCiAJciA9IGFyZzEgLSBhcmcyOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYg IWlzaW5mKGFyZzEpICYmICFpc2luZihhcmcyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsK KwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJcmV0dXJuIGZhYnMocik7CiB9CiAKQEAg LTEwOSw3ICsxMDksNyBAQCBmbG9hdDhfZGlzdChQR19GVU5DVElPTl9BUkdTKQogCiAJciA9IGEg LSBiOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYgIWlzaW5mKGEpICYmICFpc2luZihiKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAKIAlQR19SRVRVUk5fRkxPQVQ4KGZhYnMocikpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2Zsb2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRl eCA1MDIzOThkMjllYy4uNWI3MWM0MGIwMGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC04Mywy NSArODMsMjUgQEAgc3RhdGljIHZvaWQgaW5pdF9kZWdyZWVfY29uc3RhbnRzKHZvaWQpOwogICog VGhpcyBkb2VzIG1lYW4gdGhhdCB5b3UgZG9uJ3QgZ2V0IGEgdXNlZnVsIGVycm9yIGxvY2F0aW9u IGluZGljYXRvci4KICAqLwogcGdfbm9pbmxpbmUgdm9pZAotZmxvYXRfb3ZlcmZsb3dfZXJyb3Io dm9pZCkKK2Zsb2F0X292ZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7Ci0J ZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2RlKEVSUkNPREVf TlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUgb3V0IG9mIHJh bmdlOiBvdmVyZmxvdyIpKSk7CiB9CiAKIHBnX25vaW5saW5lIHZvaWQKLWZsb2F0X3VuZGVyZmxv d19lcnJvcih2b2lkKQorZmxvYXRfdW5kZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRl eHQpCiB7Ci0JZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2Rl KEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUg b3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ciKSkpOwogfQogCiBwZ19ub2lubGluZSB2b2lkCi1mbG9h dF96ZXJvX2RpdmlkZV9lcnJvcih2b2lkKQorZmxvYXRfemVyb19kaXZpZGVfZXJyb3Ioc3RydWN0 IE5vZGUgKmVzY29udGV4dCkKIHsKLQllcmVwb3J0KEVSUk9SLAorCWVycnNhdmUoZXNjb250ZXh0 LAogCQkJKGVycmNvZGUoRVJSQ09ERV9ESVZJU0lPTl9CWV9aRVJPKSwKIAkJCSBlcnJtc2coImRp dmlzaW9uIGJ5IHplcm8iKSkpOwogfQpAQCAtMTQ2MCw5ICsxNDYwLDkgQEAgZHNxcnQoUEdfRlVO Q1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHNxcnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjAp ICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5k ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAt MTQ3OSw5ICsxNDc5LDkgQEAgZGNicnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IGNi cnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTYxNywyNCArMTYxNywyNCBAQCBkcG93KFBH X0ZVTkNUSU9OX0FSR1MpCiAJCQkJaWYgKGFic3ggPT0gMS4wKQogCQkJCQlyZXN1bHQgPSAxLjA7 CiAJCQkJZWxzZSBpZiAoYXJnMiA+PSAwLjAgPyAoYWJzeCA+IDEuMCkgOiAoYWJzeCA8IDEuMCkp Ci0JCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCQkJCWVsc2UKLQkJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJCX0KIAkJfQogCQllbHNlIGlmIChlcnJubyA9 PSBFUkFOR0UpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0gMC4wKQotCQkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwp OwogCQl9CiAJCWVsc2UKIAkJewogCQkJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJCQlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAwLjApCi0JCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CQl9CiAJfQogCkBAIC0xNjc0LDE0ICsxNjc0LDE0IEBAIGRleHAoUEdfRlVOQ1RJT05fQVJHUykK IAkJaWYgKHVubGlrZWx5KGVycm5vID09IEVSQU5HRSkpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0g MC4wKQotCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCQl9CiAJCWVsc2UgaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKE5VTEwpOwogCQllbHNlIGlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSkKLQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CX0KIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKQEAgLTE3MTIsOSArMTcxMiw5IEBAIGRs b2cxKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBsb2coYXJnMSk7CiAJaWYgKHVubGlr ZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3Vs dCA9PSAwLjApICYmIGFyZzEgIT0gMS4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQp OwogfQpAQCAtMTc0NSw5ICsxNzQ1LDkgQEAgZGxvZzEwKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAly ZXN1bHQgPSBsb2cxMChhcmcxKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlz aW5mKGFyZzEpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAxLjAp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVM TCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xNzc4LDcgKzE3NzgsNyBA QCBkYWNvcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gYWNvcyhhcmcxKTsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZs b2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwog fQpAQCAtMTgwOSw3ICsxODA5LDcgQEAgZGFzaW4oUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3Vs dCA9IGFzaW4oYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9v dmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JF VFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE4MzUsNyArMTgzNSw3IEBAIGRhdGFuKFBHX0ZV TkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0gYXRhbihhcmcxKTsKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTg2 MSw3ICsxODYxLDcgQEAgZGF0YW4yKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0g YXRhbjIoYXJnMSwgYXJnMik7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9h dF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBH X1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE5MDIsNyArMTkwMiw3IEBAIGRjb3MoUEdf RlVOQ1RJT05fQVJHUykKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnB1dCBpcyBvdXQgb2YgcmFuZ2UiKSkpOwogCWlmICh1 bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9 CkBAIC0xOTU3LDcgKzE5NTcsNyBAQCBkc2luKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW5w dXQgaXMgb3V0IG9mIHJhbmdlIikpKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0J CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwog CiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjEzNyw3ICsyMTM3LDcgQEAgZGFj b3NkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IDkwLjAgKyBhc2luZF9xMSgtYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjE3NCw3ICsyMTc0LDcgQEAgZGFzaW5kKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCXJlc3VsdCA9IC1hc2luZF9xMSgtYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVz dWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjIwNiw3ICsyMjA2 LDcgQEAgZGF0YW5kKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKGF0YW5fYXJnMSAvIGF0 YW5fMV8wKSAqIDQ1LjA7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjI0Miw3ICsyMjQyLDcgQEAgZGF0YW4yZChQ R19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IChhdGFuMl9hcmcxX2FyZzIgLyBhdGFuXzFfMCkg KiA0NS4wOwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9G TE9BVDgocmVzdWx0KTsKIH0KQEAgLTIzNjUsNyArMjM2NSw3IEBAIGRjb3NkKFBHX0ZVTkNUSU9O X0FSR1MpCiAJcmVzdWx0ID0gc2lnbiAqIGNvc2RfcTEoYXJnMSk7CiAKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjQ4 Nyw3ICsyNDg3LDcgQEAgZHNpbmQoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBzaWduICog c2luZF9xMShhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19S RVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNjQ1LDcgKzI2NDUsNyBAQCBkY29zaChQR19G VU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X2luZmluaXR5KCk7CiAKIAlpZiAo dW5saWtlbHkocmVzdWx0ID09IDAuMCkpCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlm bG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7 CiB9CkBAIC0yNjY1LDcgKzI2NjUsNyBAQCBkdGFuaChQR19GVU5DVElPTl9BUkdTKQogCXJlc3Vs dCA9IHRhbmgoYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjc2NSw3ICsyNzY1LDcgQEAgZGVyZihQR19G VU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZihhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNzg1LDcg KzI3ODUsNyBAQCBkZXJmYyhQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZmMoYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjgxNCw3ICsyODE0LDcgQEAgZGdhbW1hKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCS8qIFBlciBQT1NJWCwgYW4gaW5wdXQgb2YgLUluZiBjYXVzZXMgYSBkb21haW4gZXJyb3Ig Ki8KIAkJaWYgKGFyZzEgPCAwKQogCQl7Ci0JCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X25hbigp OwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCiAJCX0KIAkJZWxzZQpAQCAtMjgzNiwxMiArMjgz NiwxMiBAQCBkZ2FtbWEoUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGVycm5vICE9IDAgfHwgaXNp bmYocmVzdWx0KSB8fCBpc25hbihyZXN1bHQpKQogCQl7CiAJCQlpZiAocmVzdWx0ICE9IDAuMCkK LQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5V TEwpOwogCQkJZWxzZQotCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X3Vu ZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJfQogCQllbHNlIGlmIChyZXN1bHQgPT0gMC4wKQotCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJfQogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwpAQCAtMjg3Myw3ICsyODczLDcgQEAg ZGxnYW1tYShQR19GVU5DVElPTl9BUkdTKQogCSAqIHRvIHJlcG9ydCBvdmVyZmxvdywgYnV0IGl0 IHNob3VsZCBuZXZlciB1bmRlcmZsb3cuCiAJICovCiAJaWYgKGVycm5vID09IEVSQU5HRSB8fCAo aXNpbmYocmVzdWx0KSAmJiAhaXNpbmYoYXJnMSkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVz dWx0KTsKIH0KQEAgLTMwMTMsNyArMzAxMyw3IEBAIGZsb2F0OF9jb21iaW5lKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCXRtcCA9IFN4MSAvIE4xIC0gU3gyIC8gTjI7CiAJCVN4eCA9IFN4eDEgKyBTeHgy ICsgTjEgKiBOMiAqIHRtcCAqIHRtcCAvIE47CiAJCWlmICh1bmxpa2VseShpc2luZihTeHgpKSAm JiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3Io KTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCX0KIAogCS8qCkBAIC0zMDgwLDcg KzMwODAsNyBAQCBmbG9hdDhfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGlzaW5mKFN4 KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVzWzFdKSAmJiAh aXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigpOwogCQl9CkBA IC0zMTYzLDcgKzMxNjMsNyBAQCBmbG9hdDRfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYg KGlzaW5mKFN4KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVz WzFdKSAmJiAhaXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigp OwogCQl9CkBAIC0zNDMwLDcgKzM0MzAsNyBAQCBmbG9hdDhfcmVncl9hY2N1bShQR19GVU5DVElP Tl9BUkdTKQogCQkJCShpc2luZihTeHkpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1sxXSkg JiYgIWlzaW5mKG5ld3ZhbFgpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1szXSkgJiYgIWlz aW5mKG5ld3ZhbFkpKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlpZiAoaXNpbmYoU3h4KSkKIAkJCQlTeHggPSBnZXRf ZmxvYXQ4X25hbigpOwpAQCAtMzYwMywxNSArMzYwMywxNSBAQCBmbG9hdDhfcmVncl9jb21iaW5l KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXRtcDEgPSBTeDEgLyBOMSAtIFN4MiAvIE4yOwogCQlTeHgg PSBTeHgxICsgU3h4MiArIE4xICogTjIgKiB0bXAxICogdG1wMSAvIE47CiAJCWlmICh1bmxpa2Vs eShpc2luZihTeHgpKSAmJiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlTeSA9 IGZsb2F0OF9wbChTeTEsIFN5Mik7CiAJCXRtcDIgPSBTeTEgLyBOMSAtIFN5MiAvIE4yOwogCQlT eXkgPSBTeXkxICsgU3l5MiArIE4xICogTjIgKiB0bXAyICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeXkpKSAmJiAhaXNpbmYoU3l5MSkgJiYgIWlzaW5mKFN5eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlT eHkgPSBTeHkxICsgU3h5MiArIE4xICogTjIgKiB0bXAxICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeHkpKSAmJiAhaXNpbmYoU3h5MSkgJiYgIWlzaW5mKFN4eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlp ZiAoZmxvYXQ4X2VxKEN4MSwgQ3gyKSkKIAkJCUN4ID0gQ3gxOwogCQllbHNlCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApp bmRleCBiMzQwNjc4Y2E5Mi4uZDJlOTg5OTYwYTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMzAsOSArMzAs OSBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IGV4dHJhX2Zsb2F0X2RpZ2l0czsKIC8qCiAgKiBV dGlsaXR5IGZ1bmN0aW9ucyBpbiBmbG9hdC5jCiAgKi8KLXBnX25vcmV0dXJuIGV4dGVybiB2b2lk IGZsb2F0X292ZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxv YXRfdW5kZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxvYXRf emVyb19kaXZpZGVfZXJyb3Iodm9pZCk7CitleHRlcm4gdm9pZCBmbG9hdF9vdmVyZmxvd19lcnJv cihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3VuZGVyZmxvd19l cnJvcihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3plcm9fZGl2 aWRlX2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIGludAlpc19pbmZpbml0 ZShmbG9hdDggdmFsKTsKIGV4dGVybiBmbG9hdDggZmxvYXQ4aW5faW50ZXJuYWwoY2hhciAqbnVt LCBjaGFyICoqZW5kcHRyX3AsCiAJCQkJCQkJCWNvbnN0IGNoYXIgKnR5cGVfbmFtZSwgY29uc3Qg Y2hhciAqb3JpZ19zdHJpbmcsCkBAIC0xMDQsNyArMTA0LDcgQEAgZmxvYXQ0X3BsKGNvbnN0IGZs b2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKyB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMTYsNyArMTE2LDcgQEAgZmxvYXQ4X3Bs KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEg KyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYg IWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxv d19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMjgsNyArMTI4LDcgQEAg ZmxvYXQ0X21pKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3Vs dCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYo dmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9h dF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xNDAsNyAr MTQwLDcgQEAgZmxvYXQ4X21pKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikK IAogCXJlc3VsdCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAm JiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xNTIsOSArMTUyLDkgQEAgZmxvYXQ0X211bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxv YXQ0IHZhbDIpCiAKIAlyZXN1bHQgPSB2YWwxICogdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZs b3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5 KHJlc3VsdCA9PSAwLjBmKSAmJiB2YWwxICE9IDAuMGYgJiYgdmFsMiAhPSAwLjBmKQotCQlmbG9h dF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJ cmV0dXJuIHJlc3VsdDsKIH0KQEAgLTE2Niw5ICsxNjYsOSBAQCBmbG9hdDhfbXVsKGNvbnN0IGZs b2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKiB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgdmFs MiAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTc5LDEyICsxNzksMTIgQEAg ZmxvYXQ0X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJZmxvYXQ0 CQlyZXN1bHQ7CiAKIAlpZiAodW5saWtlbHkodmFsMiA9PSAwLjBmKSAmJiAhaXNuYW4odmFsMSkp Ci0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKCk7CisJCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9y KE5VTEwpOwogCXJlc3VsdCA9IHZhbDEgLyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1 bHQpKSAmJiAhaXNpbmYodmFsMSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0 X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wZikgJiYg dmFsMSAhPSAwLjBmICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xOTUsMTIgKzE5NSwxMiBAQCBmbG9hdDhfZGl2KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBm bG9hdDggdmFsMikKIAlmbG9hdDgJCXJlc3VsdDsKIAogCWlmICh1bmxpa2VseSh2YWwyID09IDAu MCkgJiYgIWlzbmFuKHZhbDEpKQotCQlmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcigpOworCQlmbG9h dF96ZXJvX2RpdmlkZV9lcnJvcihOVUxMKTsKIAlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHko cmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJcmV0 dXJuIHJlc3VsdDsKIH0KLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lua29 RnJvbSBlZjZlNjE3YmNhMTk5MDEwNTNhMWJlYzZlNDczMzEzYTQ5ODMzYTkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTQ6MjY6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAxNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBqc29uYiB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdqc29uYic6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJv c3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGpzb25iICAgICAgfCBib29sZWFuICAgICAgICAgIHwgICAgIDM1NTYgfCBlICAgICAgICAgICB8 IGYgICAgICAgICAgfCBqc29uYl9ib29sICAgIHwgYm9vbAoganNvbmIgICAgICB8IG51bWVyaWMg ICAgICAgICAgfCAgICAgMzQ0OSB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX251 bWVyaWMgfCBudW1lcmljCiBqc29uYiAgICAgIHwgc21hbGxpbnQgICAgICAgICB8ICAgICAzNDUw IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwganNvbmJfaW50MiAgICB8IGludDIKIGpzb25i ICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgIDM0NTEgfCBlICAgICAgICAgICB8IGYgICAg ICAgICAgfCBqc29uYl9pbnQ0ICAgIHwgaW50NAoganNvbmIgICAgICB8IGJpZ2ludCAgICAgICAg ICAgfCAgICAgMzQ1MiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX2ludDggICAg fCBpbnQ4CiBqc29uYiAgICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAzNDUzIHwgZSAgICAg ICAgICAgfCBmICAgICAgICAgIHwganNvbmJfZmxvYXQ0ICB8IGZsb2F0NAoganNvbmIgICAgICB8 IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgMjU4MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGpzb25iX2Zsb2F0OCAgfCBmbG9hdDgKKDcgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1Nmlf NGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMgfCA3 NCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU4 IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9qc29uYi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMKaW5kZXgg MjhlN2Y4MGQ3N2YuLmFiY2Q1YmFhN2MwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmIuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYwpAQCAtMTgxOCw3 ICsxODE4LDcgQEAgSnNvbmJFeHRyYWN0U2NhbGFyKEpzb25iQ29udGFpbmVyICpqYmMsIEpzb25i VmFsdWUgKnJlcykKICAqIEVtaXQgY29ycmVjdCwgdHJhbnNsYXRhYmxlIGNhc3QgZXJyb3IgbWVz c2FnZQogICovCiBzdGF0aWMgdm9pZAotY2Fubm90Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZUeXBl IHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUpCitjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpi dlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSwgTm9kZSAqZXNjb250ZXh0KQogewogCXN0 YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CkBAIC0xODM5LDcgKzE4MzksNyBAQCBjYW5ub3RDYXN0SnNv bmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSkKIAogCWZvciAo aSA9IDA7IGkgPCBsZW5ndGhvZihtZXNzYWdlcyk7IGkrKykKIAkJaWYgKG1lc3NhZ2VzW2ldLnR5 cGUgPT0gdHlwZSkKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJy bXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkpKTsKIApAQCAtMTg1NCw3ICsxODU0LDEwIEBA IGpzb25iX2Jvb2woUEdfRlVOQ1RJT05fQVJHUykKIAlKc29uYlZhbHVlCXY7CiAKIAlpZiAoIUpz b25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUo di50eXBlLCAiYm9vbGVhbiIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi Ym9vbGVhbiIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJ aWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE4NjMsNyArMTg2NiwxMCBAQCBqc29uYl9i b29sKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIik7CisJeworCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVU VVJOX05VTEwoKTsKKwl9CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4sIDApOwogCkBAIC0xODc4LDcg KzE4ODQsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCU51bWVyaWMJCXJl dFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNh bm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiKTsKKwl7CisJCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRV Uk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7CkBAIC0xODg3LDcg KzE4OTYsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2 LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVt ZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZh bC5udW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJvZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNv cHkgdG8KQEAgLTE5MDgsNyArMTkyMCwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290 LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInNtYWxsaW50Iik7CisJewor CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4 dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQog CXsKQEAgLTE5MTcsNyArMTkzMiwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ fQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2 LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi c21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAog CXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDIsCiAJCQkJCQkJCSAg IE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0xOTM1LDcgKzE5NTMsMTAgQEAg anNvbmJfaW50NChQR19GVU5DVElPTl9BUkdTKQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICgh SnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1 ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUs ICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMTk0NCw3ICsxOTY1LDEwIEBAIGpzb25i X2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMp Ci0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiLCBmY2luZm8tPmNvbnRleHQpOworCQlQ R19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShu dW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7 CkBAIC0xOTYyLDcgKzE5ODYsMTAgQEAganNvbmJfaW50OChQR19GVU5DVElPTl9BUkdTKQogCURh dHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYp KQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBH X1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5 NzEsNyArMTk5OCwxMCBAQCBqc29uYl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYg KHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJi aWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBE aXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERh dHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTE5ODksNyArMjAxOSwxMCBAQCBqc29uYl9mbG9hdDQo UEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFj dFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi cmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5m by0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBq YnZOdWxsKQogCXsKQEAgLTE5OTgsNyArMjAzMSwxMCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJ T05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0K IAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0NCwKIAkJCQkJ CQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIwMTYsNyArMjA1Miwx MCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAK IAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIpOworCXsKKwkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIsIGZjaW5mby0+Y29udGV4dCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAg LTIwMjUsNyArMjA2NCwxMCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAK IAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVM TCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0 OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKLS0gCjIuMzQu MQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lue30 RnJvbSBkMzdlNzA3NGYwNmQwOGEwYjc5ZWYzNmZiNTBkMzZlYmVmYWYxMGVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjoxNDozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDE2LzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKICAgICAgIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywg cHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBj LmNhc3RmdW5jCmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBlID0n dGltZXN0YW1wJzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICAg ICAgIGNhc3Rzb3VyY2UgICAgICAgICAgfCAgICAgICAgIGNhc3R0YXJnZXQgICAgICAgICAgfCBj YXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICAgICBwcm9zcmMgICAgICAg ICB8ICAgcHJvbmFtZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIHRpbWVzdGFtcCB3aXRob3V0IHRp bWUgem9uZSB8IGRhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAyMDI5IHwgYSAgICAg ICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX2RhdGUgICAgICAgIHwgZGF0ZQogdGltZXN0 YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSAgICAgIHwgICAg IDEzMTYgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXBfdGltZSAgICAgICAg fCB0aW1lCiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1l IHpvbmUgICAgfCAgICAgMjAyOCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFt cF90aW1lc3RhbXB0eiB8IHRpbWVzdGFtcHR6CiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCAgICAgMTk2MSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IHRpbWVzdGFtcF9zY2FsZSAgICAgICB8IHRpbWVzdGFtcAooNCByb3dzKQoK ZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJq UWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAgNyArKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvdGltZXN0YW1wLmMgfCAxMCArKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggYmU1Mjc3N2Q4 OGQuLmEwNTc0NzEwOTlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTEzMzAsNyArMTMzMCwxMCBA QCB0aW1lc3RhbXBfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcAl0aW1lc3RhbXAg PSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCURhdGVBRFQJCXJlc3VsdDsKIAotCXJlc3VsdCA9 IHRpbWVzdGFtcDJkYXRlX3NhZmUodGltZXN0YW1wLCBOVUxMKTsKKwlyZXN1bHQgPSB0aW1lc3Rh bXAyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCiAJUEdf UkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAwOCw3ICsyMDExLDcgQEAgdGltZXN0 YW1wX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0 aW1lc3RhbXAydG0odGltZXN0YW1wLCBOVUxMLCB0bSwgJmZzZWMsIE5VTEwsIE5VTEwpICE9IDAp Ci0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAs CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJ CSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKaW5kZXggMzYyM2RjYWIzYmYuLjdlZDg4MjYwYjVkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jCkBAIC0zNTIsNyArMzUyLDggQEAgdGltZXN0YW1wX3NjYWxlKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAlyZXN1bHQgPSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JU eXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5 cG1vZCgmcmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxM KCk7CiAKIAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC02NDMyLDggKzY0MzMs MTMgQEAgRGF0dW0KIHRpbWVzdGFtcF90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdTKQogewog CVRpbWVzdGFtcAl0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOworCVRpbWVzdGFt cFR6IHJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1FU1RBTVBUWih0aW1lc3RhbXAydGltZXN0YW1w dHoodGltZXN0YW1wKSk7CisJcmVzdWx0ID0gdGltZXN0YW1wMnRpbWVzdGFtcHR6X3NhZmUodGlt ZXN0YW1wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5m by0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fVElNRVNUQU1Q VFoocmVzdWx0KTsKIH0KIAogLyoKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4luh31 RnJvbSAwMmY3NTFmY2FhOTE4MTc3OTIyOTg3YjU5NDYzZDljMmYxZDQ2OWJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjowNDo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDE1LzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcHR6IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSd0aW1lc3RhbXB0eic6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7Cgog ICAgICAgIGNhc3Rzb3VyY2UgICAgICAgIHwgICAgICAgICBjYXN0dGFyZ2V0ICAgICAgICAgIHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgICAgcHJvc3JjICAgICAg ICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpv bmUgfCBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMTE3OCB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X2RhdGUgICAgICB8IGRhdGUKIHRpbWVzdGFtcCB3 aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUgICAgICB8ICAgICAyMDE5IHwg YSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wdHpfdGltZSAgICAgIHwgdGltZQog dGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwg ICAgIDIwMjcgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el90aW1lc3Rh bXAgfCB0aW1lc3RhbXAKIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aCB0aW1l IHpvbmUgICAgICAgICB8ICAgICAxMzg4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGlt ZXN0YW1wdHpfdGltZXR6ICAgIHwgdGltZXR6CiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgfCB0 aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgICAgfCAgICAgMTk2NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IHRpbWVzdGFtcHR6X3NjYWxlICAgICB8IHRpbWVzdGFtcHR6Cig1IHJvd3MpCgpk aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpR aXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMgICAgICB8ICA5ICsrKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jIHwgMTAgKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IGJjNGM2Nzc3 NWRkLi5iZTUyNzc3ZDg4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0xNDA2LDcgKzE0MDYsMTAg QEAgdGltZXN0YW1wdHpfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcFR6IHRpbWVz dGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgTlVMTCk7CisJcmVzdWx0ID0g dGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmFyZ3MpKQorCQlQR19SRVRVUk5fTlVMTCgpOwor CiAJUEdfUkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAzNiw3ICsyMDM5LDcgQEAg dGltZXN0YW1wdHpfdGltZShQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwog CiAJaWYgKHRpbWVzdGFtcDJ0bSh0aW1lc3RhbXAsICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxM KSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtMjk1NSw3 ICsyOTU4LDcgQEAgdGltZXN0YW1wdHpfdGltZXR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgJnR6LCB0bSwgJmZz ZWMsIE5VTEwsIE5VTEwpICE9IDApCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZv LT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggNjJhN2QyMjMwZDEuLjM2MjNkY2Fi M2JmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC04NzUsNyArODc1LDggQEAgdGlt ZXN0YW1wdHpfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHRpbWVzdGFtcDsK IAotCUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgmcmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlm ICghQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5jb250 ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVBUWihyZXN1 bHQpOwogfQpAQCAtNjQ5NCw4ICs2NDk1LDEzIEBAIERhdHVtCiB0aW1lc3RhbXB0el90aW1lc3Rh bXAoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXBUeiB0aW1lc3RhbXAgPSBQR19HRVRB UkdfVElNRVNUQU1QVFooMCk7CisJVGltZXN0YW1wCXJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1F U1RBTVAodGltZXN0YW1wdHoydGltZXN0YW1wKHRpbWVzdGFtcCkpOworCXJlc3VsdCA9IHRpbWVz dGFtcHR6MnRpbWVzdGFtcF9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo dW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KIAogLyoKLS0g CjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4luk32 RnJvbSA5NDM2MzdlYmMwNmI4MjA0MjI0YmI0Nzk3ZTJiOTJkYmI0MzQyMzViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MDU6MjYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAxNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlcnZhbCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lIGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1 bmMgYW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbnRlcnZh bCc6OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwg ICAgICAgY2FzdHRhcmdldCAgICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0 aG9kIHwgICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KIGludGVydmFsICAgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25l IHwgICAgIDE0MTkgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF90aW1lICB8 IHRpbWUKIGludGVydmFsICAgfCBpbnRlcnZhbCAgICAgICAgICAgICAgIHwgICAgIDEyMDAgfCBp ICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF9zY2FsZSB8IGludGVydmFsCigyIHJv d3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpj d3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgICAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC90aW1lc3RhbXAuYyB8IDMgKystCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCBlOGRjOGQyNzZiZi4uYmM0YzY3 Nzc1ZGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAtMjEwNiw3ICsyMTA2LDcgQEAgaW50ZXJ2YWxf dGltZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVBRFQJCXJlc3VsdDsKIAogCWlmIChJTlRFUlZB TF9OT1RfRklOSVRFKHNwYW4pKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVf T1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBpbmZpbml0ZSBpbnRl cnZhbCB0byB0aW1lIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCmluZGV4IDhkZWIy MzY5NDcxLi42MmE3ZDIyMzBkMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMTMz NCw3ICsxMzM0LDggQEAgaW50ZXJ2YWxfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQg PSBwYWxsb2Nfb2JqZWN0KEludGVydmFsKTsKIAkqcmVzdWx0ID0gKmludGVydmFsOwogCi0JQWRq dXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0 SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fSU5URVJWQUxfUChyZXN1bHQpOwogfQotLSAK Mi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lup33 RnJvbSBiYmM3ZTkyOThlYmFhNjQzYmRiZTE5MzRlYjcwOGY3NDAxODUzZjk3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMzoxNTozMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDEzLzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGRhdGUgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZGF0ZSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCmNhc3Rzb3VyY2UgfCAgICAgICAgIGNh c3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 ICAgICAgcHJvc3JjICAgICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCAgICAgMjAyNCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRh dGVfdGltZXN0YW1wICAgfCB0aW1lc3RhbXAKIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0aCB0 aW1lIHpvbmUgICAgfCAgICAgMTE3NCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRhdGVf dGltZXN0YW1wdHogfCB0aW1lc3RhbXB0egooMiByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2 aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIHwg MTcgKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IDYyMWI5MTc1YzEyLi5lOGRjOGQy NzZiZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC03MzAsMTUgKzczMCw2IEBAIGRhdGUydGltZXN0 YW1wdHpfc2FmZShEYXRlQURUIGRhdGVWYWwsIE5vZGUgKmVzY29udGV4dCkKIAlyZXR1cm4gcmVz dWx0OwogfQogCi0vKgotICogUHJvbW90ZSBkYXRlIHRvIHRpbWVzdGFtcHR6LCB0aHJvd2luZyBl cnJvciBmb3Igb3ZlcmZsb3cuCi0gKi8KLXN0YXRpYyBUaW1lc3RhbXBUegotZGF0ZTJ0aW1lc3Rh bXB0eihEYXRlQURUIGRhdGVWYWwpCi17Ci0JcmV0dXJuIGRhdGUydGltZXN0YW1wdHpfc2FmZShk YXRlVmFsLCBOVUxMKTsKLX0KLQogLyoKICAqIGRhdGUydGltZXN0YW1wX25vX292ZXJmbG93CiAg KgpAQCAtMTMyMyw3ICsxMzE0LDkgQEAgZGF0ZV90aW1lc3RhbXAoUEdfRlVOQ1RJT05fQVJHUykK IAlEYXRlQURUCQlkYXRlVmFsID0gUEdfR0VUQVJHX0RBVEVBRFQoMCk7CiAJVGltZXN0YW1wCXJl c3VsdDsKIAotCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wKGRhdGVWYWwpOworCXJlc3VsdCA9IGRh dGUydGltZXN0YW1wX3NhZmUoZGF0ZVZhbCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZihTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQ R19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC0xMzk2LDcgKzEzODksOSBAQCBkYXRl X3RpbWVzdGFtcHR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dF VEFSR19EQVRFQURUKDApOwogCVRpbWVzdGFtcFR6IHJlc3VsdDsKIAotCXJlc3VsdCA9IGRhdGUy dGltZXN0YW1wdHooZGF0ZVZhbCk7CisJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0el9zYWZlKGRh dGVWYWwsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVAo cmVzdWx0KTsKIH0KLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4luv35 RnJvbSBhYzMwYTkzMTlhYmM1OTM1ZjU4YjAyODVlMTg0YTJjMjEyMDA3YTczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6Mjg6MjAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAxMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ0Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiByZWFsICAgICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAgNjUzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZnRvaTggICAgICAgICAgfCBpbnQ4CiByZWFsICAgICAgIHwgc21h bGxpbnQgICAgICAgICB8ICAgICAgMjM4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRv aTIgICAgICAgICAgfCBpbnQyCiByZWFsICAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg MzE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRvaTQgICAgICAgICAgfCBpbnQ0CiBy ZWFsICAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzExIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZnRvZCAgICAgICAgICAgfCBmbG9hdDgKIHJlYWwgICAgICAgfCBudW1lcmlj ICAgICAgICAgIHwgICAgIDE3NDIgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDRf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDQgKyst LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9udW1lcmljLmMgfCAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zs b2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRleCBiNWE3YzU3ZTUzYS4u NTg1ODBiNWYzY2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBm dG9pNChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtl bHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50 ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMzIzLDcgKzEzMjMsNyBAQCBmdG9pMihQR19G VU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4o bnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJ CWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggNDU0MmQyMzljNWYuLjZkYzM2 MzY3MGM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEzNDIsNyArMTM0Miw3IEBAIGZ0b2k4KFBH X0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25h bihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwK KwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJD T0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVy aWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKaW5kZXggNjVhZjI2ODQ3M2Mu LjhlYjkzNDZiZGU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKQEAgLTQ2NTcsNyArNDY1Nyw4 IEBAIGZsb2F0NF9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7 CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBub3Qgd29ycnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBz cGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zhcl9mcm9tX3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVu ZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRfdmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAm ZW5kcHRyLCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0g bWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lus34 RnJvbSBmZWQ5YTg4YjM4N2I3MTA2YmJkZGE3Y2ZmNjE4MjI0YTVhZTExN2U0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MzE6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAxMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ4Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAg fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBkb3VibGUgcHJlY2lzaW9uIHwgYmlnaW50ICAgICB8ICAgICAgNDgzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZHRvaTggICAgICAgICAgfCBpbnQ4CiBkb3VibGUgcHJlY2lzaW9u IHwgc21hbGxpbnQgICB8ICAgICAgMjM3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRv aTIgICAgICAgICAgfCBpbnQyCiBkb3VibGUgcHJlY2lzaW9uIHwgaW50ZWdlciAgICB8ICAgICAg MzE3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRvaTQgICAgICAgICAgfCBpbnQ0CiBk b3VibGUgcHJlY2lzaW9uIHwgcmVhbCAgICAgICB8ICAgICAgMzEyIHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZHRvZiAgICAgICAgICAgfCBmbG9hdDQKIGRvdWJsZSBwcmVjaXNpb24gfCBu dW1lcmljICAgIHwgICAgIDE3NDMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDhf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDEzICsr KysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8ICAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKaW5kZXgg NTg1ODBiNWYzY2MuLjUwMjM5OGQyOWVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwpAQCAtMTE5OSw5 ICsxMTk5LDE0IEBAIGR0b2YoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IChmbG9hdDQp IG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKG51bSkpCi0JCWZs b2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJ CQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKIAlpZiAodW5saWtl bHkocmVzdWx0ID09IDAuMGYpICYmIG51bSAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJv cigpOworCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAorCQkJCWVycmNvZGUo RVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBv dXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKIAogCVBHX1JFVFVSTl9GTE9BVDQocmVzdWx0KTsK IH0KQEAgLTEyMjQsNyArMTIyOSw3IEBAIGR0b2k0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBS YW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19J Tl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTEy NDksNyArMTI1NCw3IEBAIGR0b2kyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVj ayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19JTl9JTlQxNihu dW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1 bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK IAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YwppbmRleCA2ZGMzNjM2NzBjNy4uMmU4MmJlYzlhMmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYwpAQCAt MTMwNyw3ICsxMzA3LDcgQEAgZHRvaTgoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNo ZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0 KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwppbmRleCA4ZWI5MzQ2YmRlNC4uOGY5N2VlMDc4ZTYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwpAQCAtNDU1OSw3ICs0NTU5LDggQEAgZmxvYXQ4X251bWVyaWMoUEdfRlVOQ1RJT05f QVJHUykKIAlpbml0X3ZhcigmcmVzdWx0KTsKIAogCS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3Jy eSBhYm91dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNlcyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21f c3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJv bV9zdHIoYnVmLCBidWYsICZyZXN1bHQsICZlbmRwdHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtlX3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4z NC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lux36 RnJvbSBmN2E2ZjM2NDBjYzYxYWVmZDJjYmYwZTgxODQyYjE3NDA4ODE1OTUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjU6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAxMC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBudW1lcmljIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ251bWVyaWMn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgpjYXN0c291cmNlIHwgICAg Y2FzdHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAg IHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogbnVtZXJpYyAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgMTc3OSB8IGEgICAgICAg ICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50OCAgIHwgaW50OAogbnVtZXJpYyAgICB8IHNt YWxsaW50ICAgICAgICAgfCAgICAgMTc4MyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51 bWVyaWNfaW50MiAgIHwgaW50MgogbnVtZXJpYyAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAg MTc0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50NCAgIHwgaW50NAog bnVtZXJpYyAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgMTc0NSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IG51bWVyaWNfZmxvYXQ0IHwgZmxvYXQ0CiBudW1lcmljICAgIHwgZG91Ymxl IHByZWNpc2lvbiB8ICAgICAxNzQ2IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJp Y19mbG9hdDggfCBmbG9hdDgKIG51bWVyaWMgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4 MjQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmljX2Nhc2ggICB8IG1vbmV5CiBu dW1lcmljICAgIHwgbnVtZXJpYyAgICAgICAgICB8ICAgICAxNzAzIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgbnVtZXJpYyAgICAgICAgfCBudW1lcmljCig3IHJvd3MpCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhIQ016ckhPVz13UmU4TDMwck1oQjNzandBdjFM RTkyOEZhN3N4TXUxVHgtZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9udW1lcmljLmMgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwppbmRleCA4OTFhZTZiYTdmZS4uNjVhZjI2ODQ3M2MgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwpAQCAtMTI0NCw3ICsxMjQ0LDggQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FS R1MpCiAJICovCiAJaWYgKE5VTUVSSUNfSVNfU1BFQ0lBTChudW0pKQogCXsKLQkJKHZvaWQpIGFw cGx5X3R5cG1vZF9zcGVjaWFsKG51bSwgdHlwbW9kLCBOVUxMKTsKKwkJaWYgKCFhcHBseV90eXBt b2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CiAJCVBHX1JFVFVSTl9OVU1FUklDKGR1cGxpY2F0ZV9udW1lcmljKG51bSkpOwogCX0K IApAQCAtMTI5NSw4ICsxMjk2LDkgQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5p dF92YXIoJnZhcik7CiAKIAlzZXRfdmFyX2Zyb21fbnVtKG51bSwgJnZhcik7Ci0JKHZvaWQpIGFw cGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIE5VTEwpOwotCW5ldyA9IG1ha2VfcmVzdWx0KCZ2YXIp OworCWlmICghYXBwbHlfdHlwbW9kKCZ2YXIsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJ UEdfUkVUVVJOX05VTEwoKTsKKwluZXcgPSBtYWtlX3Jlc3VsdF9zYWZlKCZ2YXIsIGZjaW5mby0+ Y29udGV4dCk7CiAKIAlmcmVlX3ZhcigmdmFyKTsKIApAQCAtMzAxOCw3ICszMDIwLDEwIEBAIG51 bWVyaWNfbXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTnVtZXJpYwkJbnVtMiA9IFBHX0dFVEFSR19O VU1FUklDKDEpOwogCU51bWVyaWMJCXJlczsKIAotCXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVt MSwgbnVtMiwgTlVMTCk7CisJcmVzID0gbnVtZXJpY19tdWxfc2FmZShudW0xLCBudW0yLCBmY2lu Zm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fTlVNRVJJQyhy ZXMpOwogfQpAQCAtNDM5Miw5ICs0Mzk3LDE1IEBAIG51bWVyaWNfaW50NF9zYWZlKE51bWVyaWMg bnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ0KFBHX0ZVTkNUSU9OX0FS R1MpCiB7CisJaW50MzIJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJ QygwKTsKIAotCVBHX1JFVFVSTl9JTlQzMihudW1lcmljX2ludDRfc2FmZShudW0sIE5VTEwpKTsK KwlyZXN1bHQgPSBudW1lcmljX2ludDRfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlp ZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdf UkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9JTlQzMihyZXN1bHQpOwogfQogCiAvKgpAQCAt NDQ2Miw5ICs0NDczLDE1IEBAIG51bWVyaWNfaW50OF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICpl c2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50 NjQJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBH X1JFVFVSTl9JTlQ2NChudW1lcmljX2ludDhfc2FmZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBu dW1lcmljX2ludDhfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHko U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwo KTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCiAKQEAgLTQ0ODgsMTEgKzQ1MDUs MTEgQEAgbnVtZXJpY19pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKE5VTUVSSUNfSVNfU1BF Q0lBTChudW0pKQogCXsKIAkJaWYgKE5VTUVSSUNfSVNfTkFOKG51bSkpCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBOYU4gdG8gJXMiLCAic21hbGxpbnQiKSkpOwogCQllbHNlCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBpbmZpbml0eSB0byAlcyIsICJzbWFsbGludCIpKSk7CiAJfQpAQCAtNDUwMSwxMiAr NDUxOCwxMiBAQCBudW1lcmljX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAlpbml0X3Zhcl9mcm9t X251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJpY3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0J CWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAogCWlmICh1bmxpa2VseSh2YWwgPCBQ R19JTlQxNl9NSU4pIHx8IHVubGlrZWx5KHZhbCA+IFBHX0lOVDE2X01BWCkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21h bGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtNDU3MSwxMCArNDU4OCwxNCBAQCBudW1lcmlj X2Zsb2F0OChQR19GVU5DVElPTl9BUkdTKQogCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVj dEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVt KG51bSkpKTsKLQotCXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ4aW4sIENTdHJp bmdHZXREYXR1bSh0bXApKTsKLQotCXBmcmVlKHRtcCk7CisJaWYgKCFEaXJlY3RJbnB1dEZ1bmN0 aW9uQ2FsbFNhZmUoZmxvYXQ4aW4sIHRtcCwKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAtMSwKKwkJ CQkJCQkJCSAoTm9kZSAqKSBmY2luZm8tPmNvbnRleHQsCisJCQkJCQkJCQkgJnJlc3VsdCkpCisJ eworCQlwZnJlZSh0bXApOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9E QVRVTShyZXN1bHQpOwogfQpAQCAtNDY2Niw3ICs0Njg3LDE0IEBAIG51bWVyaWNfZmxvYXQ0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2Fs bDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKIAot CXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ0aW4sIENTdHJpbmdHZXREYXR1bSh0 bXApKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDRpbiwgdG1wLAor CQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZjaW5mby0+Y29u dGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJCVBHX1JFVFVS Tl9OVUxMKCk7CisJfQogCiAJcGZyZWUodG1wKTsKIAotLSAKMi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lv037 RnJvbSA0MjM2NjQ4YjExOWE5MTliODFhMDgzN2Q5MzA0OWY1ZTgxMmRlNzQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjI6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwOS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaWdpbnQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnYmlnaW50Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBw cm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGJpZ2ludCAgICAgfCBzbWFsbGludCAgICAgICAgIHwgICAgICA3MTQgfCBhICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpbnQ4MiAgICAgICAgfCBpbnQyCiBiaWdpbnQgICAgIHwgaW50ZWdlciAg ICAgICAgICB8ICAgICAgNDgwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50ODQgICAg ICAgIHwgaW50NAogYmlnaW50ICAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgIDY1MiB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9mICAgICAgICB8IGZsb2F0NAogYmlnaW50ICAg ICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDQ4MiB8IGkgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGk4dG9kICAgICAgICB8IGZsb2F0OAogYmlnaW50ICAgICB8IG51bWVyaWMgICAgICAgICAg fCAgICAgMTc4MSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfbnVtZXJpYyB8IG51 bWVyaWMKIGJpZ2ludCAgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4MTIgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCBpbnQ4X2Nhc2ggICAgfCBtb25leQogYmlnaW50ICAgICB8IG9p ZCAgICAgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4 dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3Byb2MgICAgICAgICAgfCAgICAgMTI4 NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50 ICAgICB8IHJlZ3Byb2NlZHVyZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ29wZXIgICAgICAgICAg fCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9p ZAogYmlnaW50ICAgICB8IHJlZ29wZXJhdG9yICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NsYXNz ICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQg ICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbGxhdGlvbiAgICAgfCAgICAgMTI4NyB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8 IHJlZ3R5cGUgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbmZpZyAgICAgICAgfCAgICAg MTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmln aW50ICAgICB8IHJlZ2RpY3Rpb25hcnkgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3JvbGUgICAgICAg ICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8 IG9pZAogYmlnaW50ICAgICB8IHJlZ25hbWVzcGFjZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2Rh dGFiYXNlICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9v aWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAgNjM2OSB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfYnl0ZWEgICB8IGJ5dGVhCiBiaWdpbnQg ICAgIHwgYml0ICAgICAgICAgICAgICB8ICAgICAyMDc1IHwgZSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgYml0ZnJvbWludDggIHwgYml0CigyMSByb3dzKQoKYWxyZWFkeSBlcnJvciBzYWZlOiBp OHRvZiwgaTh0b2QsIGludDhfbnVtZXJpYywgaW50OF9ieXRlYSwgYml0ZnJvbWludDgKZGlzY3Vz c2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZp c2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGls cy9hZHQvaW50OC5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggZDQ1MDkyMDYyMTcuLjQ1NDJk MjM5YzVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEyNTEsNyArMTI1MSw3IEBAIGludDg0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAogCWlm ICh1bmxpa2VseShhcmcgPCBQR19JTlQzMl9NSU4pIHx8IHVubGlrZWx5KGFyZyA+IFBHX0lOVDMy X01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0 dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMjcyLDcgKzEy NzIsNyBAQCBpbnQ4MihQR19GVU5DVElPTl9BUkdTKQogCWludDY0CQlhcmcgPSBQR19HRVRBUkdf SU5UNjQoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnIDwgUEdfSU5UMTZfTUlOKSB8fCB1bmxpa2Vs eShhcmcgPiBQR19JTlQxNl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTEzNTUsNyArMTM1NSw3IEBAIGk4dG9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2 NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IDApIHx8 IHVubGlrZWx5KGFyZyA+IFBHX1VJTlQzMl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0 dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coIk9JRCBvdXQgb2YgcmFuZ2Ui KSkpOwogCi0tIAoyLjM0LjEKCg== --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lv338 RnJvbSBkNWU5NmMyMmYyNThkMmZmMDQyZmQ0NTk3MWE2NDExMDQ1ZTkzM2U3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjA6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwOC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlZ2VyIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVnZXIn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAg IGNhc3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAg IHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogaW50ZWdlciAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgIDQ4MSB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGludDQ4ICAgICAgICB8IGludDgKIGludGVnZXIgICAgfCBzbWFsbGlu dCAgICAgICAgIHwgICAgICAzMTQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpNHRvaTIg ICAgICAgfCBpbnQyCiBpbnRlZ2VyICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAgMzE4IHwg aSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTR0b2YgICAgICAgIHwgZmxvYXQ0CiBpbnRlZ2Vy ICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzE2IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgaTR0b2QgICAgICAgIHwgZmxvYXQ4CiBpbnRlZ2VyICAgIHwgbnVtZXJpYyAgICAgICAg ICB8ICAgICAxNzQwIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50NF9udW1lcmljIHwg bnVtZXJpYwogaW50ZWdlciAgICB8IG1vbmV5ICAgICAgICAgICAgfCAgICAgMzgxMSB8IGEgICAg ICAgICAgIHwgZiAgICAgICAgICB8IGludDRfY2FzaCAgICB8IG1vbmV5CiBpbnRlZ2VyICAgIHwg Ym9vbGVhbiAgICAgICAgICB8ICAgICAyNTU3IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwg aW50NF9ib29sICAgIHwgYm9vbAogaW50ZWdlciAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAg NjM2OCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDRfYnl0ZWEgICB8IGJ5dGVhCiBp bnRlZ2VyICAgIHwgImNoYXIiICAgICAgICAgICB8ICAgICAgIDc4IHwgZSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaTR0b2NoYXIgICAgIHwgY2hhcgogaW50ZWdlciAgICB8IGJpdCAgICAgICAg ICAgICAgfCAgICAgMTY4MyB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdGZyb21pbnQ0 ICB8IGJpdAooMTAgcm93cykKCm9ubHkgaW50NF9jYXNoLCBpNHRvaTIsIGk0dG9jaGFyIG5lZWQg dGFrZSBjYXJlIG9mIGVycm9yIGhhbmRsaW5nLiAgYnV0IHN1cHBvcnQKZm9yIGNhc2ggZGF0YSB0 eXBlIGlzIG5vdCBlYXN5LCBzbyBvbmx5IGk0dG9pMiwgaTR0b2NoYXIgZnVuY3Rpb24gcmVmYWN0 b3JpbmcuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZh LWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMgfCAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQv aW50LmMgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2NoYXIuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXggM2U0ZGVmNjhmZTQuLjY5ODg2MzkyNGVlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5Miw3ICsxOTIsNyBAQCBpNHRvY2hhcihQR19GVU5DVElP Tl9BUkdTKQogCWludDMyCQlhcmcxID0gUEdfR0VUQVJHX0lOVDMyKDApOwogCiAJaWYgKGFyZzEg PCBTQ0hBUl9NSU4gfHwgYXJnMSA+IFNDSEFSX01BWCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5kZXggZDIzMDI2MjY1ODUuLjJkMTI0MTcyYzZm IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNTAsNyArMzUwLDcgQEAgaTR0b2kyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRBUkdfSU5UMzIoMCk7CiAKIAlpZiAodW5saWtl bHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2VseShhcmcxID4gU0hSVF9NQVgpKQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2co InNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lv940 RnJvbSA4OGYxZjM2M2I4ODYwNjgxMDNiNDY1NjY5YzdjYmEwZTQ3NjZkNWU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6Mjg6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwNi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbmV0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2luZXQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9z cmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBp bmV0ICAgICAgIHwgY2lkciAgICAgICAgICAgICAgfCAgICAgMTcxNSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGluZXRfdG9fY2lkciB8IGNpZHIKIGluZXQgICAgICAgfCB0ZXh0ICAgICAg ICAgICAgICB8ICAgICAgNzMwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19z aG93IHwgdGV4dAogaW5ldCAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA3MzAgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCBuZXR3b3JrX3Nob3cgfCB0ZXh0CiBpbmV0ICAgICAg IHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAg ICB8IG5ldHdvcmtfc2hvdyB8IHRleHQKKDQgcm93cykKCmluZXRfdG9fY2lkciBpcyBhbHJlYWR5 IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFK Zlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQot LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpp bmRleCAzYTIwMDIwOTdkZC4uYzdlMDgyODc2NGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpA QCAtMTEzNyw3ICsxMTM3LDcgQEAgbmV0d29ya19zaG93KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlp ZiAocGdfaW5ldF9uZXRfbnRvcChpcF9mYW1pbHkoaXApLCBpcF9hZGRyKGlwKSwgaXBfbWF4Yml0 cyhpcCksCiAJCQkJCQkgdG1wLCBzaXplb2YodG1wKSkgPT0gTlVMTCkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OKSwKIAkJCQkgZXJybXNnKCJjb3Vs ZCBub3QgZm9ybWF0IGluZXQgdmFsdWU6ICVtIikpKTsKIAotLSAKMi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lv639 RnJvbSA4ZDBhMTZhY2E5NzhiNDNkMjRlNDY2OTFlMWRjMjZmMGRjMmU0YmJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MDM6MDYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBtYWNhZGRyOCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J21hY2FkZHI4 Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgIHBy b3NyYyAgICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t CiBtYWNhZGRyOCAgIHwgbWFjYWRkciAgICB8ICAgICA0MTI0IHwgaSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgbWFjYWRkcjh0b21hY2FkZHIgfCBtYWNhZGRyCigxIHJvdykKCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L21hYzguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IGMxYmY5ZmQ1NzgzLi4wNDI1ZWE0NzNhNSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUwLDcgQEAgbWFjYWRkcjh0b21hY2FkZHIoUEdf RlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBwYWxsb2MwX29iamVjdChtYWNhZGRyKTsKIAogCWlm ICgoYWRkci0+ZCAhPSAweEZGKSB8fCAoYWRkci0+ZSAhPSAweEZFKSkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJtYWNhZGRy OCBkYXRhIG91dCBvZiByYW5nZSB0byBjb252ZXJ0IHRvIG1hY2FkZHIiKSwKIAkJCQkgZXJyaGlu dCgiT25seSBhZGRyZXNzZXMgdGhhdCBoYXZlIEZGIGFuZCBGRSBhcyB2YWx1ZXMgaW4gdGhlICIK LS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Disposition: attachment; filename="v17-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lvb41 RnJvbSAyNjAxZDNiNzM5ZDVjYmU3YTQ3OGRkOWFjNTNiMWU3NTM4ODA2NDRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MTM6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwNS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdmFyeWluZyB0byBvdGhl cgogdHlwZXMgcGVyIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFy Z2V0OjpyZWd0eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMgYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQKKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSAnY2hhcmFjdGVyIHZhcnlpbmcnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0 eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAgIHwgICAgY2FzdHRhcmdldCAgICAgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCiBjaGFyYWN0ZXIgdmFy eWluZyB8IHJlZ2NsYXNzICAgICAgICAgIHwgICAgIDEwNzkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCB0ZXh0X3JlZ2NsYXNzIHwgcmVnY2xhc3MKIGNoYXJhY3RlciB2YXJ5aW5nIHwgImNo YXIiICAgICAgICAgICAgfCAgICAgIDk0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRl eHRfY2hhciAgICAgfCBjaGFyCiBjaGFyYWN0ZXIgdmFyeWluZyB8IG5hbWUgICAgICAgICAgICAg IHwgICAgIDE0MDAgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X25hbWUgICAgIHwg bmFtZQogY2hhcmFjdGVyIHZhcnlpbmcgfCB4bWwgICAgICAgICAgICAgICB8ICAgICAyODk2IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgICB8IHhtbAogY2hhcmFjdGVy IHZhcnlpbmcgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNjY5IHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgdmFyY2hhciAgICAgICB8IHZhcmNoYXIKKDUgcm93cykKCnRleHR0b3htbCwg dGV4dF9yZWdjbGFzcyB3YXMgcmVmYWN0b3JlZCBhcyBlcnJvciBzYWZlIGluIHByaW9yIHBhdGNo Lgp0ZXh0X2NoYXIsIHRleHRfbmFtZSBpcyBhbHJlYWR5IGVycm9yIHNhZmUuCnNvIGhlcmUgd2Ug b25seSBuZWVkIGhhbmRsZSBmdW5jdGlvbiAidmFyY2hhciIuCgpkaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2 NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFy LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCA2ZjA4Mzk3M2ZlNy4uYTYyZTU1ZWVjMTkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM0LDcgKzYzNCw3IEBAIHZhcmNoYXIoUEdfRlVO Q1RJT05fQVJHUykKIAl7CiAJCWZvciAoaSA9IG1heG1ibGVuOyBpIDwgbGVuOyBpKyspCiAJCQlp ZiAoc19kYXRhW2ldICE9ICcgJykKLQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJIGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9y IHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoJWQpIiwKIAkJCQkJCQkJbWF4bGVuKSkpOwotLSAKMi4z NC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lvf42 RnJvbSAxOTMyNmQyNjk1OTZhNjJjMjNhYWM5MjM3YmEzYzc1YmFkOWI0NjNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MzE6MTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0ZXh0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ3RleHQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAg fCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogdGV4dCAgICAgICB8 IHJlZ2NsYXNzICAgfCAgICAgMTA3OSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRf cmVnY2xhc3MgfCByZWdjbGFzcwogdGV4dCAgICAgICB8ICJjaGFyIiAgICAgfCAgICAgIDk0NCB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgICAgfCBjaGFyCiB0ZXh0ICAg ICAgIHwgbmFtZSAgICAgICB8ICAgICAgNDA3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwg dGV4dF9uYW1lICAgICB8IG5hbWUKIHRleHQgICAgICAgfCB4bWwgICAgICAgIHwgICAgIDI4OTYg fCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICAgIHwgeG1sCig0IHJvd3Mp CgphbHJlYWR5IGVycm9yIHNhZmU6IHRleHRfbmFtZSwgdGV4dF9jaGFyLgp0ZXh0dG94bWwgaXMg cmVmYWN0b3JlZCBpbiBjaGFyYWN0ZXIgdHlwZSBlcnJvciBzYWZlIHBhdGNoLgoKZGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tR OGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jIHwgMTMgKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC92YXJsZW5hLmMgfCAxMCArKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwu YyAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCB8ICA2ICsrKysK IHNyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaCAgICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQs IDczIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5j CmluZGV4IGMzYjc5YTJiYTQ4Li5lYTk5NjEyMWIwNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5j CkBAIC00NDAsNiArNDQwLDE2IEBAIE9pZAogUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0 IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJCQkJCQkgdWludDMyIGZs YWdzLAogCQkJCQkJIFJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxsYmFjaywgdm9pZCAqY2Fs bGJhY2tfYXJnKQoreworCXJldHVybiBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRTYWZlKHJlbGF0 aW9uLCBsb2NrbW9kZSwgZmxhZ3MsCisJCQkJCQkJCQkJY2FsbGJhY2ssIGNhbGxiYWNrX2FyZywK KwkJCQkJCQkJCQlOVUxMKTsKK30KKworT2lkCitSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRTYWZl KGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsIHVpbnQzMiBmbGFn cywKKwkJCQkJCQkgUmFuZ2VWYXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpjYWxs YmFja19hcmcsCisJCQkJCQkJIE5vZGUgKmVzY29udGV4dCkKIHsKIAl1aW50NjQJCWludmFsX2Nv dW50OwogCU9pZAkJCXJlbElkOwpAQCAtNDU2LDcgKzQ2Niw3IEBAIFJhbmdlVmFyR2V0UmVsaWRF eHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAogCWlm IChyZWxhdGlvbi0+Y2F0YWxvZ25hbWUpCiAJewogCQlpZiAoc3RyY21wKHJlbGF0aW9uLT5jYXRh bG9nbmFtZSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSkgIT0gMCkKLQkJCWVyZXBv cnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjcm9zcy1k YXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IFwiJXMuJXMuJXNcIiIsCiAJ CQkJCQkJcmVsYXRpb24tPmNhdGFsb2duYW1lLCByZWxhdGlvbi0+c2NoZW1hbmFtZSwKQEAgLTUx Myw3ICs1MjMsNyBAQCBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJl bGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJCQkJICogcmV0dXJuIEludmFsaWRPaWQuCiAJ CQkJCSAqLwogCQkJCQlpZiAobmFtZXNwYWNlSWQgIT0gbXlUZW1wTmFtZXNwYWNlKQotCQkJCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAogCQkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEFCTEVfREVGSU5JVElPTiksCiAJCQkJCQkJ CSBlcnJtc2coInRlbXBvcmFyeSB0YWJsZXMgY2Fubm90IHNwZWNpZnkgYSBzY2hlbWEgbmFtZSIp KSk7CiAJCQkJfQpAQCAtNTkzLDEzICs2MDMsMjMgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVk KGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJCXsKIAkJCWlu dAkJCWVsZXZlbCA9IChmbGFncyAmIFJWUl9TS0lQX0xPQ0tFRCkgPyBERUJVRzEgOiBFUlJPUjsK IAotCQkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQotCQkJCWVyZXBvcnQoZWxldmVsLAorCQkJ aWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lICYmIGVsZXZlbCA9PSBERUJVRzEpCisJCQkJZXJlcG9y dChERUJVRzEsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCiAJ CQkJCQkgZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlcy4lc1wi IiwKIAkJCQkJCQkJcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1lKSkpOwot CQkJZWxzZQotCQkJCWVyZXBvcnQoZWxldmVsLAorCQkJZWxzZSBpZiAocmVsYXRpb24tPnNjaGVt YW5hbWUgJiYgZWxldmVsID09IEVSUk9SKQorCQkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlk T2lkLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJCQll cnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzLiVzXCIiLAorCQkJ CQkJCSAgIHJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVsbmFtZSkpOworCQkJZWxz ZSBpZiAoZWxldmVsID09IERFQlVHMSkKKwkJCQllcmVwb3J0KERFQlVHMSwKKwkJCQkJCWVycmNv ZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJTEFCTEUpLAorCQkJCQkJZXJybXNnKCJjb3VsZCBub3Qg b2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCQkgICByZWxhdGlvbi0+cmVs bmFtZSkpOworCQkJZWxzZSBpZiAoZWxldmVsID09IEVSUk9SKQorCQkJCWVyZXR1cm4oZXNjb250 ZXh0LCBJbnZhbGlkT2lkLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJTEFC TEUpLAogCQkJCQkJIGVycm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9uIFwi JXNcIiIsCiAJCQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSkpOwpAQCAtNjI2LDEzICs2NDYsMjMg QEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9D S01PREUgbG9ja21vZGUsCiAJewogCQlpbnQJCQllbGV2ZWwgPSBtaXNzaW5nX29rID8gREVCVUcx IDogRVJST1I7CiAKLQkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQotCQkJZXJlcG9ydChlbGV2 ZWwsCisJCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSAmJiBlbGV2ZWwgPT0gREVCVUcxKQorCQkJ ZXJlcG9ydChERUJVRzEsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX1RBQkxFKSwK IAkJCQkJIGVycm1zZygicmVsYXRpb24gXCIlcy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJ CQlyZWxhdGlvbi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJlbG5hbWUpKSk7Ci0JCWVsc2UKLQkJ CWVyZXBvcnQoZWxldmVsLAorCQllbHNlIGlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSAmJiBlbGV2 ZWwgPT0gRVJST1IpCisJCQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9UQUJMRSksCisJCQkJCWVycm1zZygicmVsYXRpb24gXCIl cy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCSAgIHJlbGF0aW9uLT5zY2hlbWFuYW1lLCBy ZWxhdGlvbi0+cmVsbmFtZSkpOworCQllbHNlIGlmIChlbGV2ZWwgPT0gREVCVUcxKQorCQkJZXJl cG9ydChERUJVRzEsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfVEFCTEUpLAorCQkJ CQllcnJtc2coInJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkgICByZWxh dGlvbi0+cmVsbmFtZSkpOworCQllbHNlIGlmIChlbGV2ZWwgPT0gRVJST1IpCisJCQllcmV0dXJu KGVzY29udGV4dCwgSW52YWxpZE9pZCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURf VEFCTEUpLAogCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAog CQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSkpOwpAQCAtMzYyMiw2ICszNjUyLDEyIEBAIGdldF9u YW1lc3BhY2Vfb2lkKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGJvb2wgbWlzc2luZ19vaykKICAqLwog UmFuZ2VWYXIgKgogbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KGNvbnN0IExpc3QgKm5hbWVzKQor eworCXJldHVybiBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3RTYWZlKG5hbWVzLCBOVUxMKTsKK30K KworUmFuZ2VWYXIgKgorbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0U2FmZShjb25zdCBMaXN0ICpu YW1lcywgTm9kZSAqZXNjb250ZXh0KQogewogCVJhbmdlVmFyICAgKnJlbCA9IG1ha2VSYW5nZVZh cihOVUxMLCBOVUxMLCAtMSk7CiAKQEAgLTM2NDAsNyArMzY3Niw3IEBAIG1ha2VSYW5nZVZhckZy b21OYW1lTGlzdChjb25zdCBMaXN0ICpuYW1lcykKIAkJCXJlbC0+cmVsbmFtZSA9IHN0clZhbChs dGhpcmQobmFtZXMpKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJZXJlcG9ydChFUlJPUiwK KwkJCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxMLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCiAJCQkJCSBlcnJtc2coImltcHJvcGVyIHJlbGF0aW9uIG5hbWUgKHRvbyBtYW55 IGRvdHRlZCBuYW1lcyk6ICVzIiwKIAkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmVncHJvYy5jCmluZGV4IGVlMzRkMWQ4NWY4Li42MDRlMTlhMWNiOSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmVncHJvYy5jCkBAIC0xOTAxLDEyICsxOTAxLDE5IEBAIHRleHRfcmVnY2xh c3MoUEdfRlVOQ1RJT05fQVJHUykKIAl0ZXh0CSAgICpyZWxuYW1lID0gUEdfR0VUQVJHX1RFWFRf UFAoMCk7CiAJT2lkCQkJcmVzdWx0OwogCVJhbmdlVmFyICAgKnJ2OworCUxpc3QJICAgKm5hbWVs aXN0OwogCi0JcnYgPSBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3QodGV4dFRvUXVhbGlmaWVkTmFt ZUxpc3QocmVsbmFtZSkpOworCW5hbWVsaXN0ID0gdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3RTYWZl KHJlbG5hbWUsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNp bmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCXJ2ID0gbWFrZVJhbmdlVmFy RnJvbU5hbWVMaXN0U2FmZShuYW1lbGlzdCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9F UlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJ LyogV2UgbWlnaHQgbm90IGV2ZW4gaGF2ZSBwZXJtaXNzaW9ucyBvbiB0aGlzIHJlbGF0aW9uOyBk b24ndCBsb2NrIGl0LiAqLwotCXJlc3VsdCA9IFJhbmdlVmFyR2V0UmVsaWQocnYsIE5vTG9jaywg ZmFsc2UpOwotCisJcmVzdWx0ID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkU2FmZShydiwgTm9M b2NrLCAwLCBOVUxMLCBOVUxMLAorCQkJCQkJCQkJCSAgZmNpbmZvLT5jb250ZXh0KTsKIAlQR19S RVRVUk5fT0lEKHJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC92YXJsZW5hLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCmluZGV4IGNmY2Mz NTU5MmUzLi5mYTM4ZThhNWJiNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zh cmxlbmEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCkBAIC0yNjY4LDYg KzI2NjgsMTIgQEAgbmFtZV90ZXh0KFBHX0ZVTkNUSU9OX0FSR1MpCiAgKi8KIExpc3QgKgogdGV4 dFRvUXVhbGlmaWVkTmFtZUxpc3QodGV4dCAqdGV4dHZhbCkKK3sKKwlyZXR1cm4gdGV4dFRvUXVh bGlmaWVkTmFtZUxpc3RTYWZlKHRleHR2YWwsIE5VTEwpOworfQorCitMaXN0ICoKK3RleHRUb1F1 YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0ICp0ZXh0dmFsLCBOb2RlICplc2NvbnRleHQpCiB7CiAJ Y2hhcgkgICAqcmF3bmFtZTsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CkBAIC0yNjc5LDEyICsy Njg1LDEyIEBAIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpCiAJcmF3bmFt ZSA9IHRleHRfdG9fY3N0cmluZyh0ZXh0dmFsKTsKIAogCWlmICghU3BsaXRJZGVudGlmaWVyU3Ry aW5nKHJhd25hbWUsICcuJywgJm5hbWVsaXN0KSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVy bihlc2NvbnRleHQsIE5JTCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfTkFNRSksCiAJ CQkJIGVycm1zZygiaW52YWxpZCBuYW1lIHN5bnRheCIpKSk7CiAKIAlpZiAobmFtZWxpc3QgPT0g TklMKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGVzY29udGV4dCwgTklMLAogCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9OQU1FKSwKIAkJCQkgZXJybXNnKCJpbnZhbGlkIG5hbWUg c3ludGF4IikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCmluZGV4IDQzMWMwYmNlYTQ0Li44OTBmZDY3NGJk YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtMTA0Myw3ICsxMDQzLDcgQEAgeG1scGFyc2UodGV4dCAq ZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxvcHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3Bh Y2UsIE5vZGUKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQllcmV0dXJuKGVz Y29udGV4dCwgTlVMTAorCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxMLAogCQkJZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQllcnJtc2coInVuc3VwcG9ydGVkIFhNTCBm ZWF0dXJlIiksCiAJCQllcnJkZXRhaWwoIlRoaXMgZnVuY3Rpb25hbGl0eSByZXF1aXJlcyB0aGUg c2VydmVyIHRvIGJlIGJ1aWx0IHdpdGggbGlieG1sIHN1cHBvcnQuIikpOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmgKaW5kZXggMWEyNTk3MzY4NWMuLjE1M2E0MzllMzc0IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmgKQEAgLTEwMyw2ICsxMDMsMTEgQEAgZXh0ZXJuIE9pZAlSYW5nZVZhckdldFJlbGlk RXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJIExPQ0tNT0RFIGxv Y2ttb2RlLCB1aW50MzIgZmxhZ3MsCiAJCQkJCQkJCQkgUmFuZ2VWYXJHZXRSZWxpZENhbGxiYWNr IGNhbGxiYWNrLAogCQkJCQkJCQkJIHZvaWQgKmNhbGxiYWNrX2FyZyk7CitleHRlcm4gT2lkIFJh bmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAorCQkJ CQkJCQkJCUxPQ0tNT0RFIGxvY2ttb2RlLCB1aW50MzIgZmxhZ3MsCisJCQkJCQkJCQkJUmFuZ2VW YXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLAorCQkJCQkJCQkJCXZvaWQgKmNhbGxiYWNrX2Fy ZywKKwkJCQkJCQkJCQlOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIE9pZAlSYW5nZVZhckdldENy ZWF0aW9uTmFtZXNwYWNlKGNvbnN0IFJhbmdlVmFyICpuZXdSZWxhdGlvbik7CiBleHRlcm4gT2lk CVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShSYW5nZVZhciAqcmVsYXRpb24s CiAJCQkJCQkJCQkJCQkgTE9DS01PREUgbG9ja21vZGUsCkBAIC0xNjgsNiArMTczLDcgQEAgZXh0 ZXJuIE9pZAlMb29rdXBDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBjaGFyICpuc3BuYW1lKTsKIGV4 dGVybiB2b2lkIENoZWNrU2V0TmFtZXNwYWNlKE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQpOwog ZXh0ZXJuIE9pZAlRdWFsaWZpZWROYW1lR2V0Q3JlYXRpb25OYW1lc3BhY2UoY29uc3QgTGlzdCAq bmFtZXMsIGNoYXIgKipvYmpuYW1lX3ApOwogZXh0ZXJuIFJhbmdlVmFyICptYWtlUmFuZ2VWYXJG cm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpOworZXh0ZXJuIFJhbmdlVmFyICptYWtlUmFu Z2VWYXJGcm9tTmFtZUxpc3RTYWZlKGNvbnN0IExpc3QgKm5hbWVzLCBOb2RlICplc2NvbnRleHQp OwogZXh0ZXJuIGNoYXIgKk5hbWVMaXN0VG9TdHJpbmcoY29uc3QgTGlzdCAqbmFtZXMpOwogZXh0 ZXJuIGNoYXIgKk5hbWVMaXN0VG9RdW90ZWRTdHJpbmcoY29uc3QgTGlzdCAqbmFtZXMpOwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmggYi9zcmMvaW5jbHVkZS91dGls cy92YXJsZW5hLmgKaW5kZXggNGIzMjU3NGEwNzUuLjViYzc4YWEwMmMwIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvdmFybGVu YS5oCkBAIC0yNyw2ICsyNyw3IEBAIGV4dGVybiBpbnQJdmFyc3RyX2xldmVuc2h0ZWluX2xlc3Nf ZXF1YWwoY29uc3QgY2hhciAqc291cmNlLCBpbnQgc2xlbiwKIAkJCQkJCQkJCQkgIGludCBpbnNf YywgaW50IGRlbF9jLCBpbnQgc3ViX2MsCiAJCQkJCQkJCQkJICBpbnQgbWF4X2QsIGJvb2wgdHJ1 c3RlZCk7CiBleHRlcm4gTGlzdCAqdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QodGV4dCAqdGV4dHZh bCk7CitleHRlcm4gTGlzdCAqdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3RTYWZlKHRleHQgKnRleHR2 YWwsIE5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gYm9vbCBTcGxpdElkZW50aWZpZXJTdHJpbmco Y2hhciAqcmF3c3RyaW5nLCBjaGFyIHNlcGFyYXRvciwKIAkJCQkJCQkJICBMaXN0ICoqbmFtZWxp c3QpOwogZXh0ZXJuIGJvb2wgU3BsaXREaXJlY3Rvcmllc1N0cmluZyhjaGFyICpyYXdzdHJpbmcs IGNoYXIgc2VwYXJhdG9yLAotLSAKMi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lvi43 RnJvbSA3MTA5M2U0Zjk2NTlhOTc1MTE4ZjhlMWYzZGFmN2JiZjEzMTQ4OTcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTI6NTI6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwMy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3Rm dW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdjaGFyYWN0 ZXInOjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8 ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgIHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogY2hhcmFjdGVyICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICA0MDEgfCBpICAgICAg ICAgICB8IGYgICAgICAgICAgfCBydHJpbTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCBjaGFy YWN0ZXIgdmFyeWluZyB8ICAgICAgNDAxIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgcnRy aW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgImNoYXIiICAgICAgICAgICAgfCAgICAgIDk0 NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgIHwgY2hhcgogY2hhcmFj dGVyICB8IG5hbWUgICAgICAgICAgICAgIHwgICAgICA0MDkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBicGNoYXJfbmFtZSB8IG5hbWUKIGNoYXJhY3RlciAgfCB4bWwgICAgICAgICAgICAg ICB8ICAgICAyODk2IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgfCB4 bWwKIGNoYXJhY3RlciAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgNjY4IHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgYnBjaGFyICAgICAgfCBicGNoYXIKKDYgcm93cykKCm9ubHkgdGV4 dHRveG1sLCBicGNoYXIoUEdfRlVOQ1RJT05fQVJHUykgbmVlZCB0YWtlIGNhcmUgb2YgZXJyb3Ig aGFuZGxpbmcuCm90aGVyIGZ1bmN0aW9ucyBhbHJlYWR5IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4 alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIu YyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgICAgICAgICAgIHwg MTggKysrKysrKysrKysrLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy94bWwuaCAgICAgICAgICAg ICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCA4NmFiMzcwNGI2 Ni4uMGEyZDI1YzFiNjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NDU0Miw3ICs0NTQyLDcgQEAgRXhlY0V2YWxYbWxFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJF dmFsU3RlcCAqb3ApCiAKIAkJCQkqb3AtPnJlc3ZhbHVlID0gUG9pbnRlckdldERhdHVtKHhtbHBh cnNlKGRhdGEsCiAJCQkJCQkJCQkJCQkJCSB4ZXhwci0+eG1sb3B0aW9uLAotCQkJCQkJCQkJCQkJ CQkgcHJlc2VydmVfd2hpdGVzcGFjZSkpOworCQkJCQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVz cGFjZSwgTlVMTCkpOwogCQkJCSpvcC0+cmVzbnVsbCA9IGZhbHNlOwogCQkJfQogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCBkZjMwNTA5ODEzMC4uNmYwODM5NzNmZTcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtMzA3LDcgKzMwNyw3IEBAIGJwY2hhcihQR19GVU5D VElPTl9BUkdTKQogCQl7CiAJCQlmb3IgKGkgPSBtYXhtYmxlbjsgaSA8IGxlbjsgaSsrKQogCQkJ CWlmIChzW2ldICE9ICcgJykKLQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZv ciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJCQkJbWF4bGVuKSkpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5j CmluZGV4IGY2OWRjNjgyODZjLi40MzFjMGJjZWE0NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtNjU5 LDcgKzY1OSw3IEBAIHRleHR0b3htbChQR19GVU5DVElPTl9BUkdTKQogewogCXRleHQJICAgKmRh dGEgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKIAotCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShk YXRhLCB4bWxvcHRpb24sIHRydWUpKTsKKwlQR19SRVRVUk5fWE1MX1AoeG1scGFyc2UoZGF0YSwg eG1sb3B0aW9uLCB0cnVlLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0xMDI4LDE5ICsx MDI4LDI1IEBAIHhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAKIAogeG1sdHlwZSAqCi14bWxw YXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2Vy dmVfd2hpdGVzcGFjZSkKK3htbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0 aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpCiB7CiAj aWZkZWYgVVNFX0xJQlhNTAogCXhtbERvY1B0cglkb2M7CiAKIAlkb2MgPSB4bWxfcGFyc2UoZGF0 YSwgeG1sb3B0aW9uX2FyZywgcHJlc2VydmVfd2hpdGVzcGFjZSwKLQkJCQkJR2V0RGF0YWJhc2VF bmNvZGluZygpLCBOVUxMLCBOVUxMLCBOVUxMKTsKLQl4bWxGcmVlRG9jKGRvYyk7CisJCQkJCUdl dERhdGFiYXNlRW5jb2RpbmcoKSwgTlVMTCwgTlVMTCwgZXNjb250ZXh0KTsKKwlpZiAoZG9jKQor CQl4bWxGcmVlRG9jKGRvYyk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQlO T19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBOVUxMOworCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxM CisJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCWVycm1zZygi dW5zdXBwb3J0ZWQgWE1MIGZlYXR1cmUiKSwKKwkJCWVycmRldGFpbCgiVGhpcyBmdW5jdGlvbmFs aXR5IHJlcXVpcmVzIHRoZSBzZXJ2ZXIgdG8gYmUgYnVpbHQgd2l0aCBsaWJ4bWwgc3VwcG9ydC4i KSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmggYi9z cmMvaW5jbHVkZS91dGlscy94bWwuaAppbmRleCAwM2FjYjI1NTQ0OS4uNTUzYmRjOTZjM2YgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L3htbC5oCkBAIC03Myw3ICs3Myw3IEBAIGV4dGVybiB4bWx0eXBlICp4bWxjb25jYXQoTGlzdCAq YXJncyk7CiBleHRlcm4geG1sdHlwZSAqeG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAkJCQkJ CSAgIGNvbnN0IERhdHVtICpuYW1lZF9hcmd2YWx1ZSwgY29uc3QgYm9vbCAqbmFtZWRfYXJnbnVs bCwKIAkJCQkJCSAgIGNvbnN0IERhdHVtICphcmd2YWx1ZSwgY29uc3QgYm9vbCAqYXJnbnVsbCk7 Ci1leHRlcm4geG1sdHlwZSAqeG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxv cHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UpOworZXh0ZXJuIHhtbHR5cGUgKnht bHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVz ZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbHBp KGNvbnN0IGNoYXIgKnRhcmdldCwgdGV4dCAqYXJnLCBib29sIGFyZ19pc19udWxsLCBib29sICpy ZXN1bHRfaXNfbnVsbCk7CiBleHRlcm4geG1sdHlwZSAqeG1scm9vdCh4bWx0eXBlICpkYXRhLCB0 ZXh0ICp2ZXJzaW9uLCBpbnQgc3RhbmRhbG9uZSk7CiBleHRlcm4gYm9vbCB4bWxfaXNfZG9jdW1l bnQoeG1sdHlwZSAqYXJnKTsKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lvm45 RnJvbSBhNjUyZDU4YjMzZjE2MzU5OTg4ZWQwZTE2ODkyNGY5M2JmNTQwOGFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MDg6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBieXRlYSB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l CmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J2J5dGVhJzo6cmVn dHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogYnl0ZWEgICAgICB8IHNtYWxs aW50ICAgfCAgICAgNjM3MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJ5dGVhX2ludDIg fCBpbnQyCiBieXRlYSAgICAgIHwgaW50ZWdlciAgICB8ICAgICA2MzcxIHwgZSAgICAgICAgICAg fCBmICAgICAgICAgIHwgYnl0ZWFfaW50NCB8IGludDQKIGJ5dGVhICAgICAgfCBiaWdpbnQgICAg IHwgICAgIDYzNzIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQ4IHwgaW50 OAooMyByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZ NFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0t CiBzcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ieXRlYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKaW5k ZXggZmQ3NjYyZDQxZWUuLmEwMmIwNTRiODczIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvYnl0ZWEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYwpAQCAtMTI1 NSw3ICsxMjU1LDcgQEAgYnl0ZWFfaW50MihQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sg dGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9m KHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAo RGF0dW0pIDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQllcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKTsKIApAQCAtMTI4MCw3ICsx MjgwLDcgQEAgYnl0ZWFfaW50NChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0 aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3Vs dCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQllcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpOwogCkBAIC0xMzA1LDcgKzEzMDUsNyBA QCBieXRlYV9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBieXRl IGFycmF5IGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChsZW4gPiBzaXplb2YocmVzdWx0KSkKLQkJ ZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJ CQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCWVycm1z ZygiYmlnaW50IG91dCBvZiByYW5nZSIpKTsKIAotLSAKMi4zNC4xCgo= --0000000000001f7b4b06479dcb39 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v17-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk0r4lvl44 RnJvbSBhZjc4ZTI0ZDM1MjIzYjJkODRjYmY0YjQxMjYxYjZjNzYwMDk3ODkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6MzM6MDggKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NyAwMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaXQvdmFyYml0IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKd2hlcmUgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlw ZSA9J2JpdCc6OnJlZ3R5cGUgb3IKY2FzdHNvdXJjZTo6cmVndHlwZSA9J3ZhcmJpdCc6OnJlZ3R5 cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSAgfCBjYXN0dGFy Z2V0ICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJpdCAgICAgICAgIHwgYmln aW50ICAgICAgfCAgICAgMjA3NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50 OCB8IGludDgKIGJpdCAgICAgICAgIHwgaW50ZWdlciAgICAgfCAgICAgMTY4NCB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50NCB8IGludDQKIGJpdCAgICAgICAgIHwgYml0ICAg ICAgICAgfCAgICAgMTY4NSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdCAgICAgICB8 IGJpdAogYml0IHZhcnlpbmcgfCBiaXQgdmFyeWluZyB8ICAgICAxNjg3IHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgdmFyYml0ICAgIHwgdmFyYml0Cig0IHJvd3MpCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1 M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92 YXJiaXQuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCmluZGV4IDUwZmZlZTY3OWI5Li4yMjNi MDFmOTMwOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYwpAQCAtNDAxLDcgKzQwMSw3IEBAIGJpdChQ R19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fVkFSQklUX1AoYXJnKTsKIAogCWlmICghaXNF eHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRD SCksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyBsZW5ndGggJWQgZG9lcyBub3QgbWF0Y2ggdHlw ZSBiaXQoJWQpIiwKIAkJCQkJCVZBUkJJVExFTihhcmcpLCBsZW4pKSk7CkBAIC03NTIsNyArNzUy LDcgQEAgdmFyYml0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcp OwogCiAJaWYgKCFpc0V4cGxpY2l0KQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFf UklHSFRfVFJVTkNBVElPTiksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyB0b28gbG9uZyBmb3Ig dHlwZSBiaXQgdmFyeWluZyglZCkiLAogCQkJCQkJbGVuKSkpOwpAQCAtMTU5MSw3ICsxNTkxLDcg QEAgYml0dG9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQg c3RyaW5nIGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihy ZXN1bHQpICogQklUU19QRVJfQllURSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFM VUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTE2NzEsNyArMTY3MSw3IEBAIGJpdHRvaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJ LyogQ2hlY2sgdGhhdCB0aGUgYml0IHN0cmluZyBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAoVkFS QklUTEVOKGFyZykgPiBzaXplb2YocmVzdWx0KSAqIEJJVFNfUEVSX0JZVEUpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiYmln aW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --0000000000001f7b4b06479dcb39--