Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v7CA7-00GTIB-HR for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Oct 2025 12:23:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1v7CA5-00C33L-8E for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Oct 2025 12:23:54 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v7CA4-00C33C-M2 for pgsql-hackers@lists.postgresql.org; Fri, 10 Oct 2025 12:23:53 +0000 Received: from mail-vs1-xe32.google.com ([2607:f8b0:4864:20::e32]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1v7CA0-001Pkb-2T for pgsql-hackers@lists.postgresql.org; Fri, 10 Oct 2025 12:23:53 +0000 Received: by mail-vs1-xe32.google.com with SMTP id ada2fe7eead31-5d40e0106b6so1118014137.2 for ; Fri, 10 Oct 2025 05:23:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760099026; x=1760703826; 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=1qAqbc+jMKl9nR3N5uMIZAPCdIqgQxuoYlNPtYHhZq0=; b=Pv0prY/aaMHchpCrQn7vR/QzPjYRrEi4LcDJRKXO5OcK4ukKCDkL8P5U6LNP/uLTdH OYSg8cpyRtT5P1nYU0CPkeXQOc/8b/9pATrqOFTRjMHn0QhFPyd094Q6W3nhoiyFHuma uoVJUXEJdtlcCOLO3j6rtByqZdZfmbK5R4F1JbJsrsh/OeAf9dkDiU/01DKBexmtB/Tp O0M49CuUG7F61BHJmXV0MYKe4t0IgSozpvQxFRGqZRqT0xr5T11othnWcHihH/P0laRy r+OoxXuNn9Kxydk0XEz2Vrl8DQ29Ozpuf7RAqcEmX9yDo0AmUE0H234tfNXiCFi7MiLt Arjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760099026; x=1760703826; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=1qAqbc+jMKl9nR3N5uMIZAPCdIqgQxuoYlNPtYHhZq0=; b=agoo+m3vT0gqOBSQ8r5JKlDIkfJgRvT3ZwZbExkJUUTHkxdhMO9X1IKH2ir8qAStW6 pZqbpnq2xO/92HhmWDlDb+W+Crsx/Y3Ch/1FOR9pwvmNcoaTZubZBV72mseR2kuxP2T+ I80QJgmsS/XprbVrpKRCh4FW7KwK6611IoUGO3IU2oGd+KKWrIWablKNEi7lH5zOCrN1 nol9KOTZifb+RHYo3zaZlez7RA1r0oOUxaNsdoN0QqMqQIEijDm4azm+ws8K4RButnMn Ap7bej9ZruUDnW/mDQ8V1VvCIw0brd+6e6Yhp8wUDL0PX/b+2vlC9FFIjf7rYXOgm/SR 4xUQ== X-Forwarded-Encrypted: i=1; AJvYcCUlvoBTmbxgRy8TprpScYXmFDEA62+e/RA/brIr/IWa0dwFZGcNfmEt5zDJIU8t/PDvMK03peTS0wdZTAw4@lists.postgresql.org X-Gm-Message-State: AOJu0YyBo4w35KYX0UwaJGQV+0BmYJsF1N72d4t9H5+StsqQSunpQWFP w0qLKZjtLCfiIxZXPrvYMNAPCt+pTPUGQB8+YjPywSZ+C/yAh43xN2i1f9RKR3BEcNr+dqf6BBx fO1meIjmVf7E5Ad4yAeXyG+/aS/FhvPU= X-Gm-Gg: ASbGncvgCzVdlaNxHQ+ORcemCL/NiMJ2EOi+e27EtCtTtYAwyDFRjUTdCFAeuGLn5P7 XwsUELqQFM/O90DSE6ZRh3wQrB5QM1xGhQ/ISoRIF3UaeC11aiv5R1pHWQC+3qppXvFIZCoPAAh QRBDXA5zWjLDxBYLUs1Ls3Pm9MP6yP7cMAittOzOfF+/Alg6Y6zAmh1T1i9p05GP+hjtz+wjGxM oGCY7aQcaDCdMSeT7NgI+kjJKZZKJ6Cn/fckbFd+cOoAiRs1Ti7ZW9O7CQ1PaktGoNbmP832+Rr doL8Oj5Qw7pkmXgM1mKvtME1is5hcaF5+/M43Fv+HwIlMOCJIzMD1knq8Z9bvCAaG3F3L6Fxkyb 5x3SiUGJ8PRoPdy5NoNwa0Hmk2gvoCV/AgF/rTP4SNg== X-Google-Smtp-Source: AGHT+IFjZQ2LjUSLSN4cNbox4Z6jLX3H6Gcpquky0/f3KLh3gtXheuF7o7ZWAXegxi8hVoB4xt/aqBu2gN+i5AR6DzU= X-Received: by 2002:a05:6102:162c:b0:5d5:f6ae:74b4 with SMTP id ada2fe7eead31-5d5f6ae7587mr2033586137.40.1760099026368; Fri, 10 Oct 2025 05:23:46 -0700 (PDT) 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: Fri, 10 Oct 2025 20:23:07 +0800 X-Gm-Features: AS18NWC57_4ezhVSvYRhUDkFqAOy-0j6ZXxyZzvjMIZRjrJpRlo0lcvWo1cKdjY Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Corey Huinker Cc: Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000003caa5b0640ccfd41" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003caa5b0640ccfd41 Content-Type: text/plain; charset="UTF-8" hi. First of all, rebase v6. select distinct castsource::regtype, casttarget::regtype, pp.prosrc from pg_cast pc join pg_proc pp on pp.oid = pc.castfunc join pg_type pt on pt.oid = castsource join pg_type pt1 on pt1.oid = casttarget and pc.castfunc > 0 and pt.typarray <> 0 and pt.typnamespace = 'pg_catalog'::regnamespace and pt1.typnamespace = 'pg_catalog'::regnamespace order by castsource::regtype, casttarget::regtype; The above query will list all cast functions in PG_CATALOG schema that need to be refactored to be error-safe. looking around, I found that the below source data type, the cast function is already error safe: boolean name "char" ("char" to integer was handled in integer cast part) regprocedure regoper regoperator regclass regtype regconfig regdictionary regproc oid regnamespace regrole regcollation regdatabase int4range numrange tsrange tstzrange daterange int8range xid8 time without time zone time with time zone After applying the attached v7 patch patchset, the below are cast functions that I didn't refactor to error safe yet. select pc.castsource::regtype, pc.casttarget::regtype, castfunc::regproc, pp.prosrc from pg_cast pc join pg_proc pp on pp.oid = pc.castfunc join pg_type pt on pt.oid = castsource join pg_type pt1 on pt1.oid = casttarget and pc.castfunc > 0 and pt.typnamespace = 'pg_catalog'::regnamespace and pt1.typnamespace = 'pg_catalog'::regnamespace and not pc.casterrorsafe; castsource | casttarget | castfunc | prosrc ------------+------------+----------------------+-------------- bigint | money | pg_catalog.money | int8_cash integer | money | pg_catalog.money | int4_cash numeric | money | pg_catalog.money | numeric_cash money | numeric | pg_catalog."numeric" | cash_numeric (4 rows) The reason I don't refactor these cast functions related to money data type is because 1. I am not sure if the PGLC_localeconv() function is error safe or not. 2. refactoring such ``DirectFunctionCall1(numeric_int8, amount));`` requires more effort. please check the attached v7 patch set: 01-error-safe-for-casting-bytea-to-other-types 02-error-safe-for-casting-bit-varbit-to-other-types 03-error-safe-for-casting-character-to-other-types 04-error-safe-for-casting-text-to-other-types 05-error-safe-for-casting-character-varying-to-other-types 06-error-safe-for-casting-inet-to-other-types 07-error-safe-for-casting-macaddr8-to-other-types 08-error-safe-for-casting-integer-to-other-types 09-error-safe-for-casting-bigint-to-other-types 10-error-safe-for-casting-numeric-to-other-types 11-error-safe-for-casting-float4-to-other-types 12-error-safe-for-casting-float8-to-other-types 13-error-safe-for-casting-date-to-other-types 14-error-safe-for-casting-interval-to-other-types 15-error-safe-for-casting-timestamptz-to-other-types 16-error-safe-for-casting-timestamp-to-other-types 17-error-safe-for-casting-jsonb-to-other-types 18-error-safe-for-casting-geometry-data-types 19-invent_some_error_safe_function.patch 20-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch Each patch includes a commit message explaining which function is being refactored to be error-safe. I also made some changes for "20-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" If the source expression is Const, it can be unknown type or other type. * for UNKNOWN type, example: SELECT CAST ('\x112233445566778899'::bytea AS int8 DEFAULT NULL ON CONVERSION ERROR); We use CoerceUnknownConstSafe to verify earlier that such Const can be coerced to target data type or not. * for other data type, example: SELECT CAST ('\x112233445566778899'::bytea AS int8 DEFAULT NULL ON CONVERSION ERROR); we use evaluate_expr_safe to evaluate it error safe way earlier in transformTypeSafeCast. similar to transformPartitionBoundValue call evaluate_expr The geometry cast functions ``(poly_circle(PG_FUNCTION_ARGS)`` have problems making it error safe, working on it. --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0019-invent-some-error-safe-functions.patch" Content-Disposition: attachment; filename="v7-0019-invent-some-error-safe-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgozm1 RnJvbSBhNzBkNjVjZTgxODNlZWY3NjhlYmEyZTM0MGIyMDg3NDM1MzlkZGQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTAgT2N0IDIwMjUgMTg6NTc6MjEgKzA4MDAKU3ViamVjdDogW1BBVENIIHY3 IDE5LzIwXSBpbnZlbnQgc29tZSBlcnJvciBzYWZlIGZ1bmN0aW9ucwoKc3RyaW5nVHlwZURhdHVt U2FmZTogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIHN0cmluZ1R5cGVEYXR1bQpldmFsdWF0ZV9leHBy X3NhZmU6IGVycm9yIHNhZmUgdmVyc2lvbiBvZiBldmFsdWF0ZV9leHByCkV4ZWNJbml0RXhwclNh ZmU6IHNvZnQgZXJyb3IgdmFyaWFudCBvZiBFeGVjSW5pdEV4cHIKT2lkSW5wdXRGdW5jdGlvbkNh bGxTYWZlOiBzb2Z0IGVycm9yIHZhcmlhbnQgb2YgT2lkSW5wdXRGdW5jdGlvbkNhbGwKCmRpc2N1 c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5W aXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHIuYyAgICAgIHwgNDEgKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2NsYXVzZXMuYyB8IDY5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMgICAgICB8IDE0ICsrKysrKwogc3Jj L2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgICAgICAgIHwgMTMgKysrKysrCiBzcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9mbWdyLmggICAg ICAgICAgICAgICAgICAgfCAgMyArKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5o ICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaCAgICAgIHwgIDIgKwog OCBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5j CmluZGV4IGYxNTY5ODc5YjUyLi5iMzAyYmUzNmY3MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5j CkBAIC0xNzAsNiArMTcwLDQ3IEBAIEV4ZWNJbml0RXhwcihFeHByICpub2RlLCBQbGFuU3RhdGUg KnBhcmVudCkKIAlyZXR1cm4gc3RhdGU7CiB9CiAKKy8qCisgKiBFeGVjSW5pdEV4cHJTYWZlOiBz b2Z0IGVycm9yIHZhcmlhbnQgb2YgRXhlY0luaXRFeHByLgorICoKKyAqIHVzZSBpdCBvbmx5IGZv ciBleHByZXNzaW9uIG5vZGVzIHN1cHBvcnQgc29mdCBlcnJvcnMsIG5vdCBhbGwgZXhwcmVzc2lv bgorICogbm9kZXMgc3VwcG9ydCBpdC4KKyovCitFeHByU3RhdGUgKgorRXhlY0luaXRFeHByU2Fm ZShFeHByICpub2RlLCBQbGFuU3RhdGUgKnBhcmVudCkKK3sKKwlFeHByU3RhdGUgICpzdGF0ZTsK KwlFeHByRXZhbFN0ZXAgc2NyYXRjaCA9IHswfTsKKworCS8qIFNwZWNpYWwgY2FzZTogTlVMTCBl eHByZXNzaW9uIHByb2R1Y2VzIGEgTlVMTCBFeHByU3RhdGUgcG9pbnRlciAqLworCWlmIChub2Rl ID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJLyogSW5pdGlhbGl6ZSBFeHByU3RhdGUgd2l0 aCBlbXB0eSBzdGVwIGxpc3QgKi8KKwlzdGF0ZSA9IG1ha2VOb2RlKEV4cHJTdGF0ZSk7CisJc3Rh dGUtPmV4cHIgPSBub2RlOworCXN0YXRlLT5wYXJlbnQgPSBwYXJlbnQ7CisJc3RhdGUtPmV4dF9w YXJhbXMgPSBOVUxMOworCXN0YXRlLT5lc2NvbnRleHQgPSBtYWtlTm9kZShFcnJvclNhdmVDb250 ZXh0KTsKKwlzdGF0ZS0+ZXNjb250ZXh0LT50eXBlID0gVF9FcnJvclNhdmVDb250ZXh0OworCXN0 YXRlLT5lc2NvbnRleHQtPmVycm9yX29jY3VycmVkID0gZmFsc2U7CisJc3RhdGUtPmVzY29udGV4 dC0+ZGV0YWlsc193YW50ZWQgPSBmYWxzZTsKKworCS8qIEluc2VydCBzZXR1cCBzdGVwcyBhcyBu ZWVkZWQgKi8KKwlFeGVjQ3JlYXRlRXhwclNldHVwU3RlcHMoc3RhdGUsIChOb2RlICopIG5vZGUp OworCisJLyogQ29tcGlsZSB0aGUgZXhwcmVzc2lvbiBwcm9wZXIgKi8KKwlFeGVjSW5pdEV4cHJS ZWMobm9kZSwgc3RhdGUsICZzdGF0ZS0+cmVzdmFsdWUsICZzdGF0ZS0+cmVzbnVsbCk7CisKKwkv KiBGaW5hbGx5LCBhcHBlbmQgYSBET05FIHN0ZXAgKi8KKwlzY3JhdGNoLm9wY29kZSA9IEVFT1Bf RE9ORV9SRVRVUk47CisJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOworCisJRXhl Y1JlYWR5RXhwcihzdGF0ZSk7CisKKwlyZXR1cm4gc3RhdGU7Cit9CisKIC8qCiAgKiBFeGVjSW5p dEV4cHJXaXRoUGFyYW1zOiBwcmVwYXJlIGEgc3RhbmRhbG9uZSBleHByZXNzaW9uIHRyZWUgZm9y IGV4ZWN1dGlvbgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2Ns YXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCA4MWQ3 NjhmZjJhMi4uM2Y5ZmY0NTViYTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMK QEAgLTUxNDcsNiArNTE0Nyw3NSBAQCBldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1 bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKIAkJCQkJCQkgIHJlc3VsdFR5cEJ5VmFsKTsK IH0KIAorLyoKKyAqIGV2YWx1YXRlX2V4cHJfc2FmZTogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIGV2 YWx1YXRlX2V4cHIKKyAqCisgKiBXZSB1c2UgdGhlIGV4ZWN1dG9yJ3Mgcm91dGluZSBFeGVjRXZh bEV4cHIoKSB0byBhdm9pZCBkdXBsaWNhdGlvbiBvZgorICogY29kZSBhbmQgZW5zdXJlIHdlIGdl dCB0aGUgc2FtZSByZXN1bHQgYXMgdGhlIGV4ZWN1dG9yIHdvdWxkIGdldC4KKyAqCisgKiByZXR1 cm4gTlVMTCB3aGVuIGV2YXVsYXRpb24gZmFpbGVkLiBFbnN1cmUgdGhlIGV4cHJlc3Npb24gZXhw ciBjYW4gYmUgZXZhdWxhdGVkCisgKiBpbiBhIHNvZnQgZXJyb3Igd2F5LgorICoKKyAqIFNlZSBj b21tZW50cyBvbiBldmFsdWF0ZV9leHByIHRvby4KKyAqLworRXhwciAqCitldmFsdWF0ZV9leHBy X3NhZmUoRXhwciAqZXhwciwgT2lkIHJlc3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAor CQkJCSAgIE9pZCByZXN1bHRfY29sbGF0aW9uKQoreworCUVTdGF0ZQkgICAqZXN0YXRlOworCUV4 cHJTdGF0ZSAgKmV4cHJzdGF0ZTsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisJRGF0dW0J CWNvbnN0X3ZhbDsKKwlib29sCQljb25zdF9pc19udWxsOworCWludDE2CQlyZXN1bHRUeXBMZW47 CisJYm9vbAkJcmVzdWx0VHlwQnlWYWw7CisKKwllc3RhdGUgPSBDcmVhdGVFeGVjdXRvclN0YXRl KCk7CisKKwkvKiBXZSBjYW4gdXNlIHRoZSBlc3RhdGUncyB3b3JraW5nIGNvbnRleHQgdG8gYXZv aWQgbWVtb3J5IGxlYWtzLiAqLworCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8o ZXN0YXRlLT5lc19xdWVyeV9jeHQpOworCisJLyogTWFrZSBzdXJlIGFueSBvcGZ1bmNpZHMgYXJl IGZpbGxlZCBpbi4gKi8KKwlmaXhfb3BmdW5jaWRzKChOb2RlICopIGV4cHIpOworCisJLyoKKwkg KiBQcmVwYXJlIGV4cHIgZm9yIGV4ZWN1dGlvbi4gIChOb3RlOiB3ZSBjYW4ndCB1c2UgRXhlY1By ZXBhcmVFeHByCisJICogYmVjYXVzZSBpdCdkIHJlc3VsdCBpbiByZWN1cnNpdmVseSBpbnZva2lu ZyBldmFsX2NvbnN0X2V4cHJlc3Npb25zLikKKwkgKi8KKwlleHByc3RhdGUgPSBFeGVjSW5pdEV4 cHJTYWZlKGV4cHIsIE5VTEwpOworCisJY29uc3RfdmFsID0gRXhlY0V2YWxFeHByU3dpdGNoQ29u dGV4dChleHByc3RhdGUsCisJCQkJCQkJCQkJICBHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0 ZSksCisJCQkJCQkJCQkJICAmY29uc3RfaXNfbnVsbCk7CisKKwkvKiBHZXQgaW5mbyBuZWVkZWQg YWJvdXQgcmVzdWx0IGRhdGF0eXBlICovCisJZ2V0X3R5cGxlbmJ5dmFsKHJlc3VsdF90eXBlLCAm cmVzdWx0VHlwTGVuLCAmcmVzdWx0VHlwQnlWYWwpOworCisJLyogR2V0IGJhY2sgdG8gb3V0ZXIg bWVtb3J5IGNvbnRleHQgKi8KKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisK KwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChleHByc3RhdGUtPmVzY29udGV4dCkpCisJeworCQlG cmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlpZiAoIWNv bnN0X2lzX251bGwpCisJeworCQlpZiAocmVzdWx0VHlwTGVuID09IC0xKQorCQkJY29uc3RfdmFs ID0gUG9pbnRlckdldERhdHVtKFBHX0RFVE9BU1RfREFUVU1fQ09QWShjb25zdF92YWwpKTsKKwkJ ZWxzZQorCQkJY29uc3RfdmFsID0gZGF0dW1Db3B5KGNvbnN0X3ZhbCwgcmVzdWx0VHlwQnlWYWws IHJlc3VsdFR5cExlbik7CisJfQorCisJRnJlZUV4ZWN1dG9yU3RhdGUoZXN0YXRlKTsKKworCXJl dHVybiAoRXhwciAqKSBtYWtlQ29uc3QocmVzdWx0X3R5cGUsIHJlc3VsdF90eXBtb2QsIHJlc3Vs dF9jb2xsYXRpb24sCisJCQkJCQkJICByZXN1bHRUeXBMZW4sCisJCQkJCQkJICBjb25zdF92YWws IGNvbnN0X2lzX251bGwsCisJCQkJCQkJICByZXN1bHRUeXBCeVZhbCk7Cit9CisKIAogLyoKICAq IGlubGluZV9zZXRfcmV0dXJuaW5nX2Z1bmN0aW9uCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdHlwZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYwppbmRl eCA3NzEzYmRjNmFmMC4uZDI2MGFlZWM1ZGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV90eXBlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYwpAQCAt MTksNiArMTksNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImxp Yi9zdHJpbmdpbmZvLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCisjaW5jbHVkZSAi bm9kZXMvbWlzY25vZGVzLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNs dWRlICJwYXJzZXIvcGFyc2VyLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKQEAgLTY2MCw2 ICs2NjEsMTkgQEAgc3RyaW5nVHlwZURhdHVtKFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIg YXR0dHlwbW9kKQogCXJldHVybiBPaWRJbnB1dEZ1bmN0aW9uQ2FsbCh0eXBpbnB1dCwgc3RyaW5n LCB0eXBpb3BhcmFtLCBhdHR0eXBtb2QpOwogfQogCisvKiBlcnJvciBzYWZlIHZlcnNpb24gb2Yg c3RyaW5nVHlwZURhdHVtICovCitib29sCitzdHJpbmdUeXBlRGF0dW1TYWZlKFR5cGUgdHAsIGNo YXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9kLCBEYXR1bSAqcmVzdWx0KQoreworCUZvcm1fcGdf dHlwZSB0eXBmb3JtID0gKEZvcm1fcGdfdHlwZSkgR0VUU1RSVUNUKHRwKTsKKwlPaWQJCQl0eXBp bnB1dCA9IHR5cGZvcm0tPnR5cGlucHV0OworCU9pZAkJCXR5cGlvcGFyYW0gPSBnZXRUeXBlSU9Q YXJhbSh0cCk7CisJRXJyb3JTYXZlQ29udGV4dCBlc2NvbnRleHQgPSB7VF9FcnJvclNhdmVDb250 ZXh0fTsKKworCXJldHVybiBPaWRJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUodHlwaW5wdXQsIHN0cmlu ZywgdHlwaW9wYXJhbSwgYXR0dHlwbW9kLAorCQkJCQkJCQkJKE5vZGUgKikgJmVzY29udGV4dCwg cmVzdWx0KTsKK30KKwogLyoKICAqIEdpdmVuIGEgdHlwZWlkLCByZXR1cm4gdGhlIHR5cGUncyB0 eXByZWxpZCAoYXNzb2NpYXRlZCByZWxhdGlvbiksIGlmIGFueS4KICAqIFJldHVybnMgSW52YWxp ZE9pZCBpZiB0eXBlIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlLgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwpp bmRleCAwZmU2M2M2YmI4My4uYWFhNGE0MmIxZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2ZtZ3IvZm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCkBAIC0x NzU5LDYgKzE3NTksMTkgQEAgT2lkSW5wdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9uSWQsIGNo YXIgKnN0ciwgT2lkIHR5cGlvcGFyYW0sIGludDMyIHR5cG1vZCkKIAlyZXR1cm4gSW5wdXRGdW5j dGlvbkNhbGwoJmZsaW5mbywgc3RyLCB0eXBpb3BhcmFtLCB0eXBtb2QpOwogfQogCitib29sCitP aWRJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoT2lkIGZ1bmN0aW9uSWQsIGNoYXIgKnN0ciwgT2lkIHR5 cGlvcGFyYW0sCisJCQkJCQkgaW50MzIgdHlwbW9kLCBOb2RlICplc2NvbnRleHQsCisJCQkJCQkg RGF0dW0gKnJlc3VsdCkKK3sKKwlGbWdySW5mbwkJCWZsaW5mbzsKKworCWZtZ3JfaW5mbyhmdW5j dGlvbklkLCAmZmxpbmZvKTsKKworCXJldHVybiBJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoJmZsaW5m bywgc3RyLCB0eXBpb3BhcmFtLCB0eXBtb2QsCisJCQkJCQkJCSBlc2NvbnRleHQsIHJlc3VsdCk7 Cit9CisKIGNoYXIgKgogT2lkT3V0cHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlvbklkLCBEYXR1 bSB2YWwpCiB7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oIGIv c3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAppbmRleCAzMjQ4ZTc4Y2QyOC4uZmY5OTk3 ZTFjYzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKKysrIGIv c3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaApAQCAtMzIxLDYgKzMyMSw3IEBAIEV4ZWNQ cm9jTm9kZShQbGFuU3RhdGUgKm5vZGUpCiAgKiBwcm90b3R5cGVzIGZyb20gZnVuY3Rpb25zIGlu IGV4ZWNFeHByLmMKICAqLwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRFeHByKEV4cHIgKm5v ZGUsIFBsYW5TdGF0ZSAqcGFyZW50KTsKK2V4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhwclNh ZmUoRXhwciAqbm9kZSwgUGxhblN0YXRlICpwYXJlbnQpOwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhl Y0luaXRFeHByV2l0aFBhcmFtcyhFeHByICpub2RlLCBQYXJhbUxpc3RJbmZvIGV4dF9wYXJhbXMp OwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRRdWFsKExpc3QgKnF1YWwsIFBsYW5TdGF0ZSAq cGFyZW50KTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0Q2hlY2soTGlzdCAqcXVhbCwgUGxh blN0YXRlICpwYXJlbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZm1nci5oIGIvc3JjL2lu Y2x1ZGUvZm1nci5oCmluZGV4IDc0ZmUzZWEwNTc1Li45OTFlMTQwMzRkMyAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvZm1nci5oCisrKyBiL3NyYy9pbmNsdWRlL2ZtZ3IuaApAQCAtNzUwLDYgKzc1 MCw5IEBAIGV4dGVybiBib29sIERpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShQR0Z1bmN0aW9u IGZ1bmMsIGNoYXIgKnN0ciwKIAkJCQkJCQkJCQlEYXR1bSAqcmVzdWx0KTsKIGV4dGVybiBEYXR1 bSBPaWRJbnB1dEZ1bmN0aW9uQ2FsbChPaWQgZnVuY3Rpb25JZCwgY2hhciAqc3RyLAogCQkJCQkJ CQkgIE9pZCB0eXBpb3BhcmFtLCBpbnQzMiB0eXBtb2QpOworZXh0ZXJuIGJvb2wgT2lkSW5wdXRG dW5jdGlvbkNhbGxTYWZlKE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFt LAorCQkJCQkJCQkJIGludDMyIHR5cG1vZCwgTm9kZSAqZXNjb250ZXh0LAorCQkJCQkJCQkJIERh dHVtICpyZXN1bHQpOwogZXh0ZXJuIGNoYXIgKk91dHB1dEZ1bmN0aW9uQ2FsbChGbWdySW5mbyAq ZmxpbmZvLCBEYXR1bSB2YWwpOwogZXh0ZXJuIGNoYXIgKk9pZE91dHB1dEZ1bmN0aW9uQ2FsbChP aWQgZnVuY3Rpb25JZCwgRGF0dW0gdmFsKTsKIGV4dGVybiBEYXR1bSBSZWNlaXZlRnVuY3Rpb25D YWxsKEZtZ3JJbmZvICpmbGluZm8sIFN0cmluZ0luZm8gYnVmLApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGlt aXplci5oCmluZGV4IGEzNDExMzkwM2MwLi5mMWI2MzgxZDA4NCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9v cHRpbWl6ZXIuaApAQCAtMTQ2LDYgKzE0Niw4IEBAIGV4dGVybiBOb2RlICplc3RpbWF0ZV9leHBy ZXNzaW9uX3ZhbHVlKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKTsKIGV4dGVybiBFeHBy ICpldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0 X3R5cG1vZCwKIAkJCQkJCSAgIE9pZCByZXN1bHRfY29sbGF0aW9uKTsKIAorZXh0ZXJuIEV4cHIg KmV2YWx1YXRlX2V4cHJfc2FmZShFeHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJl c3VsdF90eXBtb2QsCisJCQkJCQkJCU9pZCByZXN1bHRfY29sbGF0aW9uKTsKIGV4dGVybiBib29s IHZhcl9pc19ub25udWxsYWJsZShQbGFubmVySW5mbyAqcm9vdCwgVmFyICp2YXIsIGJvb2wgdXNl X3JlbF9pbmZvKTsKIAogZXh0ZXJuIExpc3QgKmV4cGFuZF9mdW5jdGlvbl9hcmd1bWVudHMoTGlz dCAqYXJncywgYm9vbCBpbmNsdWRlX291dF9hcmd1bWVudHMsCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUu aAppbmRleCAwZDkxOWQ4YmZhMi4uMTIzODFhZWQ2NGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV90eXBlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUu aApAQCAtNDcsNiArNDcsOCBAQCBleHRlcm4gY2hhciAqdHlwZVR5cGVOYW1lKFR5cGUgdCk7CiBl eHRlcm4gT2lkCXR5cGVUeXBlUmVsaWQoVHlwZSB0eXApOwogZXh0ZXJuIE9pZAl0eXBlVHlwZUNv bGxhdGlvbihUeXBlIHR5cCk7CiBleHRlcm4gRGF0dW0gc3RyaW5nVHlwZURhdHVtKFR5cGUgdHAs IGNoYXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9kKTsKK2V4dGVybiBib29sIHN0cmluZ1R5cGVE YXR1bVNhZmUoVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0eXBtb2QsCisJCQkJCQkJ CURhdHVtICpyZXN1bHQpOwogCiBleHRlcm4gT2lkCXR5cGVpZFR5cGVSZWxpZChPaWQgdHlwZV9p ZCk7CiBleHRlcm4gT2lkCXR5cGVPckRvbWFpblR5cGVSZWxpZChPaWQgdHlwZV9pZCk7Ci0tIAoy LjM0LjEKCg== --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="UTF-8"; name="v7-0020-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Disposition: attachment; filename="v7-0020-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgozg0 RnJvbSAzZTM1MGNhMzg3MTE3ZjA1Mzg4ZTM0MGUwNDhjMTRhOTVjZTcyNGUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTAgT2N0IDIwMjUgMTk6MDY6MTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHY3 IDIwLzIwXSBDQVNUKGV4cHIgQVMgbmV3dHlwZSBERUZBVUxUIE9OIEVSUk9SKQoKTm93IHRoYXQg dGhlIHR5cGUgY29lcmNpb24gbm9kZSBpcyBlcnJvci1zYWZlLCB3ZSBhbHNvIG5lZWQgdG8gZW5z dXJlIHRoYXQgd2hlbgphIGNvZXJjaW9uIGZhaWxzLCBpdCBmYWxscyBiYWNrIHRvIGV2YWx1YXRp bmcgdGhlIGRlZmF1bHQgbm9kZS4KZHJhZnQgZG9jIGFsc28gYWRkZWQuCgpXZSBjYW5ub3Qgc2lt cGx5IHByb2hpYml0IHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgaW4gcGdfY2FzdCBmb3Igc2FmZSBj YXN0CmV2YWx1YXRpb24gYmVjYXVzZSBDUkVBVEUgQ0FTVCBjYW4gYWxzbyB1dGlsaXplIGJ1aWx0 LWluIGZ1bmN0aW9ucy4gU28sIHRvCmNvbXBsZXRlbHkgZGlzYWxsb3cgY3VzdG9tIGNhc3RzIGNy ZWF0ZWQgdmlhIENSRUFURSBDQVNUIHVzZWQgaW4gc2FmZSBjYXN0CmV2YWx1YXRpb24sIGEgbmV3 IGZpZWxkIGluIHBnX2Nhc3Qgd291bGQgdW5mb3J0dW5hdGVseSBiZSBuZWNlc3NhcnkuCgpkZW1v OgpTRUxFQ1QgQ0FTVCgnMScgQVMgZGF0ZSAgREVGQVVMVCAnMjAxMS0wMS0wMScgT04gRVJST1Ip LAogICAgICAgQ0FTVCgnezIzNCxkZWYsNTY3fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10gREVGQVVM VCAney0xMDExfScgT04gRVJST1IpOwogICAgZGF0ZSAgICB8ICBpbnQ0Ci0tLS0tLS0tLS0tLSst LS0tLS0tLS0KIDIwMTEtMDEtMDEgfCB7LTEwMTF9CgpbMF06IGh0dHBzOi8vZ2l0LnBvc3RncmVz cWwub3JnL2NnaXQvcG9zdGdyZXNxbC5naXQvY29tbWl0Lz9pZD1hYWFmOTQ0OWVjNmJlNjJjYjBk MzBlZDM1ODhkYzM4NGY1NjI3NGIKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FE a0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21h aWwuY29tCi0tLQogLi4uL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0ICAg IHwgIDIzICstCiBjb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbCAgICAg fCAgIDUgKwogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwg IDEyICsKIGRvYy9zcmMvc2dtbC9zeW50YXguc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAx NiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYyAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgICAgIHwgIDc2ICst CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAgMzcgKwog c3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgICAgICAgICAgIHwgIDQ4ICsrCiBz cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgNjcgKysKIHNy Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgICAgICB8ICAyNCArCiBzcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKy0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAzODMgKysrKysrKysrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgICAgIHwgICAzICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICAxNCArCiBzcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgICAgICAgICAgfCAgMTMgKwogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgIDE2ICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQgICAgICAgICAgICAgICB8IDMzMCArKysrLS0tLS0KIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oICAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMv aW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oICAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2lu Y2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDMwICsKIHNyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgMzMgKwogc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY2FzdC5vdXQgICAgICAgICAgICB8IDY4MSArKysrKysrKysrKysrKysrKysK IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0ICAgICB8ICAgNSArCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0ICAgICAgfCAgMjQgKy0KIHNy Yy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgMiArLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwgICAgICAgICAgICAgICAgIHwgMzAxICsrKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgICAgICAgICAgfCAgIDEgKwog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAzICsKIDMx IGZpbGVzIGNoYW5nZWQsIDIwMTEgaW5zZXJ0aW9ucygrKSwgMTkwIGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jYXN0LnNxbAoKZGlmZiAtLWdpdCBh L2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQgYi9jb250cmli L3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0CmluZGV4IDc1Yzg5NmYzODg1 Li42ZTY3OTk3ZjBhMiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhw ZWN0ZWQvc2VsZWN0Lm91dAorKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3Rl ZC9zZWxlY3Qub3V0CkBAIC03Myw2ICs3MywyNSBAQCBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQg MiBGRVRDSCBGSVJTVCAzIFJPVyBPTkxZOwogLS0tLS0KICgwIHJvd3MpCiAKKy0tZXJyb3Igc2Fm ZSB0eXBlIGNhc3QKK1NFTEVDVCBDQVNUKCdhJyBBUyBpbnQgREVGQVVMVCAyIE9OIENPTlZFUlNJ T04gRVJST1IpOworIGludDQgCistLS0tLS0KKyAgICAyCisoMSByb3cpCisKK1NFTEVDVCBDQVNU KCcxMScgQVMgaW50IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0t LS0tCisgICAxMQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMTInIEFTIG51bWVyaWMgREVGQVVM VCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworIG51bWVyaWMgCistLS0tLS0tLS0KKyAgICAgIDEy CisoMSByb3cpCisKIC0tIERJU1RJTkNUIGFuZCBPUkRFUiBCWSBwYXR0ZXJucwogLS0gVHJ5IHNv bWUgcXVlcnkgcGVybXV0YXRpb25zIHdoaWNoIG9uY2UgcHJvZHVjZWQgaWRlbnRpY2FsIHF1ZXJ5 IElEcwogU0VMRUNUIERJU1RJTkNUIDEgQVMgImludCI7CkBAIC0yMjIsNiArMjQxLDggQEAgU0VM RUNUIGNhbGxzLCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBx dWVyeSBDT0xMQVRFICJDIjsKICAgICAgMiB8ICAgIDIgfCBTRUxFQ1QgJDEgQVMgImludCIgT1JE RVIgQlkgMQogICAgICAxIHwgICAgMiB8IFNFTEVDVCAkMSBBUyBpIFVOSU9OIFNFTEVDVCAkMiBP UkRFUiBCWSBpCiAgICAgIDEgfCAgICAxIHwgU0VMRUNUICQxIHx8ICQyCisgICAgIDIgfCAgICAy IHwgU0VMRUNUIENBU1QoJDEgQVMgaW50IERFRkFVTFQgJDIgT04gQ09OVkVSU0lPTiBFUlJPUikK KyAgICAgMSB8ICAgIDEgfCBTRUxFQ1QgQ0FTVCgkMSBBUyBudW1lcmljIERFRkFVTFQgJDIgT04g Q09OVkVSU0lPTiBFUlJPUikKICAgICAgMiB8ICAgIDIgfCBTRUxFQ1QgRElTVElOQ1QgJDEgQVMg ImludCIKICAgICAgMCB8ICAgIDAgfCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdf c3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiCiAgICAgIDEgfCAgICAx IHwgU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQKQEAg LTIzMCw3ICsyNTEsNyBAQCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdfc3RhdF9z dGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOwogICAgICAgIHwgICAgICB8ICkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCiAgICAgICAgfCAgICAgIHwgICBTRUxFQ1QgZiBGUk9NIHQgT1JE RVIgQlkgZgogICAgICAxIHwgICAgMSB8IHNlbGVjdCAkMTo6anNvbmIgPyAkMgotKDE3IHJvd3Mp CisoMTkgcm93cykKIAogU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBO VUxMIEFTIHQ7CiAgdCAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3Nx bC9zZWxlY3Quc3FsIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5zcWwK aW5kZXggMTE2NjJjZGUwOGMuLjdlZTgxNjBmZDg0IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3N0 YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbAorKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVt ZW50cy9zcWwvc2VsZWN0LnNxbApAQCAtMjUsNiArMjUsMTEgQEAgU0VMRUNUIDEgQVMgImludCIg TElNSVQgMyBPRkZTRVQgMzsKIFNFTEVDVCAxIEFTICJpbnQiIE9GRlNFVCAxIEZFVENIIEZJUlNU IDIgUk9XIE9OTFk7CiBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQgMiBGRVRDSCBGSVJTVCAzIFJP VyBPTkxZOwogCistLWVycm9yIHNhZmUgdHlwZSBjYXN0CitTRUxFQ1QgQ0FTVCgnYScgQVMgaW50 IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcxMScgQVMgaW50 IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcxMicgQVMgbnVt ZXJpYyBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKIC0tIERJU1RJTkNUIGFuZCBP UkRFUiBCWSBwYXR0ZXJucwogLS0gVHJ5IHNvbWUgcXVlcnkgcGVybXV0YXRpb25zIHdoaWNoIG9u Y2UgcHJvZHVjZWQgaWRlbnRpY2FsIHF1ZXJ5IElEcwogU0VMRUNUIERJU1RJTkNUIDEgQVMgImlu dCI7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sCmluZGV4IDliM2FhZTg2MDNiLi45NTcwNDFhZGQ3YiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKQEAgLTE4NDksNiArMTg0OSwxOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4m bHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAg ICAgIDxsaXRlcmFsPmI8L2xpdGVyYWw+IG1lYW5zIHRoYXQgdGhlIHR5cGVzIGFyZSBiaW5hcnkt Y29lcmNpYmxlLCB0aHVzIG5vIGNvbnZlcnNpb24gaXMgcmVxdWlyZWQuCiAgICAgICA8L3BhcmE+ PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPmNhc3RlcnJvcnNhZmU8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBpbmRpY2F0ZXMg d2hldGhlciB0aGUgPHN0cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1Y3RmaWVsZD4gZnVuY3Rpb24g aXMgZXJyb3Igc2FmZS4KKyAgICAgICBJZiB0aGUgPHN0cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1 Y3RmaWVsZD4gZnVuY3Rpb24gaXMgZXJyb3Igc2FmZSwgaXQgY2FuIGJlIHVzZWQgaW4KKyAgICAg ICAgIEZvciBmdXJ0aGVyIGRldGFpbHMgc2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1zeW50YXgtdHlw ZS1jYXN0cyIvPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgIDwv dGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9zeW50YXguc2dtbCBiL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbAppbmRleCAyMzdkNzMwNmZl OC4uOWFjYjdkNjk2NDUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKQEAgLTIxMDYsNiArMjEwNiwyMiBAQCBDQVNUICgg PHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFjZWFibGU+dHlw ZTwvcmVwbGFjZWFibGU+CiAgICAgVGhlIDxsaXRlcmFsPkNBU1Q8L2xpdGVyYWw+IHN5bnRheCBj b25mb3JtcyB0byBTUUw7IHRoZSBzeW50YXggd2l0aAogICAgIDxsaXRlcmFsPjo6PC9saXRlcmFs PiBpcyBoaXN0b3JpY2FsIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KICAg ICB1c2FnZS4KKyAgICBJdCBjYW4gYWxzbyBiZSB3cml0dGVuIGFzOgorPHN5bm9wc2lzPgorQ0FT VCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxl PnR5cGU8L3JlcGxhY2VhYmxlPiBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SICkKKzwvc3lub3Bz aXM+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorVHlwZSBjYXN0IGNhbiBhbHNvIGJlIGVycm9y IHNhZmUuCis8c3lub3BzaXM+CitDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxh Y2VhYmxlPiBBUyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+IERFRkFVTFQgPHJlcGxh Y2VhYmxlPmRlZmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBPTiBDT05WRVJTSU9OIEVSUk9SICkK Kzwvc3lub3BzaXM+CisgICAgRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgcXVlcnkgd2lsbCBl dmFsdWF0ZSB0aGUgZGVmYXVsdCBleHByZXNzaW9uIGFuZCByZXR1cm4gNDIuCisgICAgVE9ETzog bW9yZSBleHBsYW5hdGlvbgorPHByb2dyYW1saXN0aW5nPgorU0VMRUNUIENBU1QoJ2Vycm9yJyBB UyBpbnRlZ2VyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7Cis8L3Byb2dyYW1saXN0 aW5nPgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfY2FzdC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXggMTc3 M2M5YzU0OTEuLjZmZTY1ZDI0ZDMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X2Nhc3QuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYwpAQCAtODQsNiArODQs NyBAQCBDYXN0Q3JlYXRlKE9pZCBzb3VyY2V0eXBlaWQsIE9pZCB0YXJnZXR0eXBlaWQsCiAJdmFs dWVzW0FudW1fcGdfY2FzdF9jYXN0ZnVuYyAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShmdW5jaWQp OwogCXZhbHVlc1tBbnVtX3BnX2Nhc3RfY2FzdGNvbnRleHQgLSAxXSA9IENoYXJHZXREYXR1bShj YXN0Y29udGV4dCk7CiAJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0bWV0aG9kIC0gMV0gPSBDaGFy R2V0RGF0dW0oY2FzdG1ldGhvZCk7CisJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0ZXJyb3JzYWZl IC0gMV0gPSBCb29sR2V0RGF0dW0oZmFsc2UpOwogCiAJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUo UmVsYXRpb25HZXREZXNjcihyZWxhdGlvbiksIHZhbHVlcywgbnVsbHMpOwogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYwppbmRleCBiMzAyYmUzNmY3My4uODhhNjQ3ZTQ0ZmEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYwpAQCAtOTksNiArOTksOSBAQCBzdGF0aWMgdm9pZCBFeGVjQnVpbGRBZ2dUcmFu c0NhbGwoRXhwclN0YXRlICpzdGF0ZSwgQWdnU3RhdGUgKmFnZ3N0YXRlLAogc3RhdGljIHZvaWQg RXhlY0luaXRKc29uRXhwcihKc29uRXhwciAqanNleHByLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJ CQkJCSBEYXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKIAkJCQkJCQkgRXhwckV2YWxTdGVwICpz Y3JhdGNoKTsKK3N0YXRpYyB2b2lkIEV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihTYWZlVHlwZUNh c3RFeHByICpzdGNleHByLCBFeHByU3RhdGUgKnN0YXRlLAorCQkJCQkJCQkJIERhdHVtICpyZXN2 LCBib29sICpyZXNudWxsLAorCQkJCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCk7CiBzdGF0 aWMgdm9pZCBFeGVjSW5pdEpzb25Db2VyY2lvbihFeHByU3RhdGUgKnN0YXRlLCBKc29uUmV0dXJu aW5nICpyZXR1cm5pbmcsCiAJCQkJCQkJCSBFcnJvclNhdmVDb250ZXh0ICplc2NvbnRleHQsIGJv b2wgb21pdF9xdW90ZXMsCiAJCQkJCQkJCSBib29sIGV4aXN0c19jb2VyY2UsCkBAIC0xNzQyLDYg KzE3NDUsNyBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwK IAogCQkJCWVsZW1zdGF0ZS0+aW5uZXJtb3N0X2Nhc2V2YWwgPSAoRGF0dW0gKikgcGFsbG9jKHNp emVvZihEYXR1bSkpOwogCQkJCWVsZW1zdGF0ZS0+aW5uZXJtb3N0X2Nhc2VudWxsID0gKGJvb2wg KikgcGFsbG9jKHNpemVvZihib29sKSk7CisJCQkJZWxlbXN0YXRlLT5lc2NvbnRleHQgPSBzdGF0 ZS0+ZXNjb250ZXh0OwogCiAJCQkJRXhlY0luaXRFeHByUmVjKGFjb2VyY2UtPmVsZW1leHByLCBl bGVtc3RhdGUsCiAJCQkJCQkJCSZlbGVtc3RhdGUtPnJlc3ZhbHVlLCAmZWxlbXN0YXRlLT5yZXNu dWxsKTsKQEAgLTIyMTgsNiArMjIyMiwxNCBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwg RXhwclN0YXRlICpzdGF0ZSwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFRfU2FmZVR5cGVD YXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKnN0Y2V4cHIgPSBjYXN0Tm9k ZShTYWZlVHlwZUNhc3RFeHByLCBub2RlKTsKKworCQkJCUV4ZWNJbml0U2FmZVR5cGVDYXN0RXhw cihzdGNleHByLCBzdGF0ZSwgcmVzdiwgcmVzbnVsbCwgJnNjcmF0Y2gpOworCQkJCWJyZWFrOwor CQkJfQorCiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJQ29hbGVzY2VFeHByICpj b2FsZXNjZSA9IChDb2FsZXNjZUV4cHIgKikgbm9kZTsKQEAgLTI3ODQsNyArMjc5Niw3IEBAIEV4 ZWNJbml0RnVuYyhFeHByRXZhbFN0ZXAgKnNjcmF0Y2gsIEV4cHIgKm5vZGUsIExpc3QgKmFyZ3Ms IE9pZCBmdW5jaWQsCiAKIAkvKiBJbml0aWFsaXplIGZ1bmN0aW9uIGNhbGwgcGFyYW1ldGVyIHN0 cnVjdHVyZSB0b28gKi8KIAlJbml0RnVuY3Rpb25DYWxsSW5mb0RhdGEoKmZjaW5mbywgZmxpbmZv LAotCQkJCQkJCSBuYXJncywgaW5wdXRjb2xsaWQsIE5VTEwsIE5VTEwpOworCQkJCQkJCSBuYXJn cywgaW5wdXRjb2xsaWQsIChOb2RlICopIHN0YXRlLT5lc2NvbnRleHQsIE5VTEwpOwogCiAJLyog S2VlcCBleHRyYSBjb3BpZXMgb2YgdGhpcyBpbmZvIHRvIHNhdmUgYW4gaW5kaXJlY3Rpb24gYXQg cnVudGltZSAqLwogCXNjcmF0Y2gtPmQuZnVuYy5mbl9hZGRyID0gZmxpbmZvLT5mbl9hZGRyOwpA QCAtNDc4Miw2ICs0Nzk0LDY4IEBAIEV4ZWNCdWlsZFBhcmFtU2V0RXF1YWwoVHVwbGVEZXNjIGRl c2MsCiAJcmV0dXJuIHN0YXRlOwogfQogCisvKgorICogUHVzaCBzdGVwcyB0byBldmFsdWF0ZSBh IFNhZmVUeXBlQ2FzdEV4cHIgYW5kIGl0cyB2YXJpb3VzIHN1YnNpZGlhcnkKKyAqIGV4cHJlc3Np b25zLgorICovCitzdGF0aWMgdm9pZAorRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByKFNhZmVUeXBl Q2FzdEV4cHIgKnN0Y2V4cHIgLCBFeHByU3RhdGUgKnN0YXRlLAorCQkJCQkJIERhdHVtICpyZXN2 LCBib29sICpyZXNudWxsLAorCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCkKK3sKKwkvKgor CSAqIElmIGNvZXJjaW9uIHRvIHRoZSB0YXJnZXQgdHlwZSBmYWlscywgZmFsbGJhY2sgdG8gdGhl IERFRkFVTFQgZXhwcmVzc2lvbgorCSAqIHNwZWNpZmllZCBpbiB0aGUgT04gQ09OVkVSU0lPTiBF UlJPUiBjbGF1c2UuCisJKi8KKwlpZiAoc3RjZXhwci0+Y2FzdF9leHByID09IE5VTEwpCisJewor CQlFeGVjSW5pdEV4cHJSZWMoKEV4cHIgKikgc3RjZXhwci0+ZGVmYXVsdF9leHByLAorCQkJCQkJ c3RhdGUsIHJlc3YsIHJlc251bGwpOworCQlyZXR1cm47CisJfQorCWVsc2UKKwl7CisJCUV4cHJF dmFsU3RlcCAqYXM7CisJCVNhZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0ZTsKKwkJRXJyb3JTYXZl Q29udGV4dCAqc2F2ZWRfZXNjb250ZXh0OworCQlpbnQJCQkJanVtcHNfdG9fZW5kOworCisJCXN0 Y3N0YXRlID0gcGFsbG9jMChzaXplb2YoU2FmZVR5cGVDYXN0U3RhdGUpKTsKKwkJc3Rjc3RhdGUt PnN0Y2V4cHIgPSBzdGNleHByOworCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LnR5cGUgPSBUX0Vycm9y U2F2ZUNvbnRleHQ7CisJCXN0YXRlLT5lc2NvbnRleHQgPSAmc3Rjc3RhdGUtPmVzY29udGV4dDsK KworCQkvKiBldmFsdWF0ZSBhcmd1bWVudCBleHByZXNzaW9uIGludG8gc3RlcCdzIHJlc3VsdCBh cmVhICovCisJCUV4ZWNJbml0RXhwclJlYygoRXhwciAqKSBzdGNleHByLT5jYXN0X2V4cHIsCisJ CQkJCQlzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisKKwkJc2NyYXRjaC0+b3Bjb2RlID0gRUVPUF9T QUZFVFlQRV9DQVNUOworCQlzY3JhdGNoLT5kLnN0Y2V4cHIuc3Rjc3RhdGUgPSBzdGNzdGF0ZTsK KwkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgc2NyYXRjaCk7CisJCXN0Y3N0YXRlLT5qdW1wX2Vy cm9yID0gc3RhdGUtPnN0ZXBzX2xlbjsKKworCQkvKiBKVU1QIHRvIGVuZCBpZiBmYWxzZSwgdGhh dCBpcywgc2tpcCB0aGUgT04gRVJST1IgZXhwcmVzc2lvbi4gKi8KKwkJanVtcHNfdG9fZW5kID0g c3RhdGUtPnN0ZXBzX2xlbjsKKwkJc2NyYXRjaC0+b3Bjb2RlID0gRUVPUF9KVU1QX0lGX05PVF9U UlVFOworCQlzY3JhdGNoLT5yZXN2YWx1ZSA9ICZzdGNzdGF0ZS0+ZXJyb3IudmFsdWU7CisJCXNj cmF0Y2gtPnJlc251bGwgPSAmc3Rjc3RhdGUtPmVycm9yLmlzbnVsbDsKKwkJc2NyYXRjaC0+ZC5q dW1wLmp1bXBkb25lID0gLTE7CS8qIHNldCBiZWxvdyAqLworCQlFeHByRXZhbFB1c2hTdGVwKHN0 YXRlLCBzY3JhdGNoKTsKKworCQkvKiBTdGVwcyB0byBldmFsdWF0ZSB0aGUgT04gRVJST1IgZXhw cmVzc2lvbiAqLworCQlzYXZlZF9lc2NvbnRleHQgPSBzdGF0ZS0+ZXNjb250ZXh0OworCQlzdGF0 ZS0+ZXNjb250ZXh0ID0gTlVMTDsKKwkJRXhlY0luaXRFeHByUmVjKChFeHByICopIHN0Y3N0YXRl LT5zdGNleHByLT5kZWZhdWx0X2V4cHIsCisJCQkJCQlzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisJ CXN0YXRlLT5lc2NvbnRleHQgPSBzYXZlZF9lc2NvbnRleHQ7CisKKwkJYXMgPSAmc3RhdGUtPnN0 ZXBzW2p1bXBzX3RvX2VuZF07CisJCWFzLT5kLmp1bXAuanVtcGRvbmUgPSBzdGF0ZS0+c3RlcHNf bGVuOworCisJCXN0Y3N0YXRlLT5qdW1wX2VuZCA9IHN0YXRlLT5zdGVwc19sZW47CisJfQorfQor CiAvKgogICogUHVzaCBzdGVwcyB0byBldmFsdWF0ZSBhIEpzb25FeHByIGFuZCBpdHMgdmFyaW91 cyBzdWJzaWRpYXJ5IGV4cHJlc3Npb25zLgogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJ bnRlcnAuYwppbmRleCA2N2Y0ZTAwZWFjNC4uNDlkYTI5MDU4MTAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNTY4LDYgKzU2OCw3IEBAIEV4ZWNJbnRlcnBFeHByKEV4 cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkm JkNBU0VfRUVPUF9YTUxFWFBSLAogCQkmJkNBU0VfRUVPUF9KU09OX0NPTlNUUlVDVE9SLAogCQkm JkNBU0VfRUVPUF9JU19KU09OLAorCQkmJkNBU0VfRUVPUF9TQUZFVFlQRV9DQVNULAogCQkmJkNB U0VfRUVPUF9KU09ORVhQUl9QQVRILAogCQkmJkNBU0VfRUVPUF9KU09ORVhQUl9DT0VSQ0lPTiwK IAkJJiZDQVNFX0VFT1BfSlNPTkVYUFJfQ09FUkNJT05fRklOSVNILApAQCAtMTkyNiw2ICsxOTI3 LDEyIEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29u dGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCUVFT19DQVNFKEVF T1BfU0FGRVRZUEVfQ0FTVCkKKwkJeworCQkJLyogdG9vIGNvbXBsZXggZm9yIGFuIGlubGluZSBp bXBsZW1lbnRhdGlvbiAqLworCQkJRUVPX0pVTVAoRXhlY0V2YWxTYWZlVHlwZUNhc3Qoc3RhdGUs IG9wKSk7CisJCX0KKwogCQlFRU9fQ0FTRShFRU9QX0pTT05FWFBSX1BBVEgpCiAJCXsKIAkJCS8q IHRvbyBjb21wbGV4IGZvciBhbiBpbmxpbmUgaW1wbGVtZW50YXRpb24gKi8KQEAgLTM2NDQsNiAr MzY1MSwxMiBAQCBFeGVjRXZhbEFycmF5Q29lcmNlKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFs U3RlcCAqb3AsIEV4cHJDb250ZXh0ICplY29udGV4dCkKIAkJCQkJCQkgIGVjb250ZXh0LAogCQkJ CQkJCSAgb3AtPmQuYXJyYXljb2VyY2UucmVzdWx0ZWxlbXR5cGUsCiAJCQkJCQkJICBvcC0+ZC5h cnJheWNvZXJjZS5hbXN0YXRlKTsKKworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKG9wLT5kLmFy cmF5Y29lcmNlLmVsZW1leHByc3RhdGUtPmVzY29udGV4dCkpCisJeworCQkqb3AtPnJlc3ZhbHVl ID0gKERhdHVtKSAwOworCQkqb3AtPnJlc251bGwgPSB0cnVlOworCX0KIH0KIAogLyoKQEAgLTUx ODMsNiArNTE5NiwzMCBAQCBHZXRKc29uQmVoYXZpb3JWYWx1ZVN0cmluZyhKc29uQmVoYXZpb3Ig KmJlaGF2aW9yKQogCXJldHVybiBwc3RyZHVwKGJlaGF2aW9yX25hbWVzW2JlaGF2aW9yLT5idHlw ZV0pOwogfQogCitpbnQKK0V4ZWNFdmFsU2FmZVR5cGVDYXN0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4 cHJFdmFsU3RlcCAqb3ApCit7CisJU2FmZVR5cGVDYXN0U3RhdGUgKnN0Y3N0YXRlID0gb3AtPmQu c3RjZXhwci5zdGNzdGF0ZTsKKworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKCZzdGNzdGF0ZS0+ ZXNjb250ZXh0KSkKKwl7CisJCSpvcC0+cmVzdmFsdWUgPSAoRGF0dW0pIDA7CisJCSpvcC0+cmVz bnVsbCA9IHRydWU7CisKKwkJc3Rjc3RhdGUtPmVycm9yLnZhbHVlID0gQm9vbEdldERhdHVtKHRy dWUpOworCisJCS8qCisJCSAqIFJlc2V0IGZvciBuZXh0IHVzZSBzdWNoIGFzIGZvciBjYXRjaGlu ZyBlcnJvcnMgd2hlbiBjb2VyY2luZyBhCisJCSAqIHN0Y2V4cHIgZXhwcmVzc2lvbi4KKwkJICov CisJCXN0Y3N0YXRlLT5lc2NvbnRleHQuZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwkJc3Rjc3Rh dGUtPmVzY29udGV4dC5kZXRhaWxzX3dhbnRlZCA9IGZhbHNlOworCisJCXJldHVybiBzdGNzdGF0 ZS0+anVtcF9lcnJvcjsKKwl9CisJcmV0dXJuIHN0Y3N0YXRlLT5qdW1wX2VuZDsKK30KKwogLyoK ICAqIENoZWNrcyBpZiBhbiBlcnJvciBvY2N1cnJlZCBpbiBFeGVjRXZhbEpzb25Db2VyY2lvbigp LiAgSWYgc28sIHRoaXMgc2V0cwogICogSnNvbkV4cHJTdGF0ZS5lcnJvciB0byB0cmlnZ2VyIHRo ZSBPTiBFUlJPUiBoYW5kbGluZyBzdGVwcywgdW5sZXNzIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZt aml0X2V4cHIuYwppbmRleCA3MTJiMzVkZjdlNS4uZWJlYTdjNDQ0NWYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2ppdC9s bHZtL2xsdm1qaXRfZXhwci5jCkBAIC0yMjU2LDYgKzIyNTYsNTQgQEAgbGx2bV9jb21waWxlX2V4 cHIoRXhwclN0YXRlICpzdGF0ZSkKIAkJCQlMTFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tvcG5vICsg MV0pOwogCQkJCWJyZWFrOwogCisJCQljYXNlIEVFT1BfU0FGRVRZUEVfQ0FTVDoKKwkJCQl7CisJ CQkJCVNhZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0ZSA9IG9wLT5kLnN0Y2V4cHIuc3Rjc3RhdGU7 CisJCQkJCUxMVk1WYWx1ZVJlZiB2X3JldDsKKworCQkJCQkvKgorCQkJCQkgKiBDYWxsIEV4ZWNF dmFsU2FmZVR5cGVDYXN0KCkuICBJdCByZXR1cm5zIHRoZSBhZGRyZXNzIG9mCisJCQkJCSAqIHRo ZSBzdGVwIHRvIHBlcmZvcm0gbmV4dC4KKwkJCQkJICovCisJCQkJCXZfcmV0ID0gYnVpbGRfRXZh bFhGdW5jKGIsIG1vZCwgIkV4ZWNFdmFsU2FmZVR5cGVDYXN0IiwKKwkJCQkJCQkJCQkJdl9zdGF0 ZSwgb3AsIHZfZWNvbnRleHQpOworCisJCQkJCS8qCisJCQkJCSAqIEJ1aWxkIGEgc3dpdGNoIHRv IG1hcCB0aGUgcmV0dXJuIHZhbHVlICh2X3JldCBhYm92ZSksCisJCQkJCSAqIHdoaWNoIGlzIGEg cnVudGltZSB2YWx1ZSBvZiB0aGUgc3RlcCBhZGRyZXNzIHRvIHBlcmZvcm0KKwkJCQkJICogbmV4 dCB0byBqdW1wX2Vycm9yCisJCQkJCSAqLworCQkJCQlpZiAoc3Rjc3RhdGUtPmp1bXBfZXJyb3Ig Pj0gMCkKKwkJCQkJeworCQkJCQkJTExWTVZhbHVlUmVmIHZfanVtcF9lcnJvcjsKKwkJCQkJCUxM Vk1WYWx1ZVJlZiB2X3N3aXRjaDsKKwkJCQkJCUxMVk1CYXNpY0Jsb2NrUmVmIGJfZG9uZSwKKwkJ CQkJCQkJCWJfZXJyb3I7CisKKwkJCQkJCWJfZXJyb3IgPQorCQkJCQkJCWxfYmJfYmVmb3JlX3Yo b3BibG9ja3Nbb3BubyArIDFdLAorCQkJCQkJCQkJCSAgIm9wLiVkLnN0Y2V4cHJfZXJyb3IiLCBv cG5vKTsKKwkJCQkJCWJfZG9uZSA9CisJCQkJCQkJbF9iYl9iZWZvcmVfdihvcGJsb2Nrc1tvcG5v ICsgMV0sCisJCQkJCQkJCQkJICAib3AuJWQuc3RjZXhwcl9kb25lIiwgb3Bubyk7CisKKwkJCQkJ CXZfc3dpdGNoID0gTExWTUJ1aWxkU3dpdGNoKGIsCisJCQkJCQkJCQkJCQkgICB2X3JldCwKKwkJ CQkJCQkJCQkJCSAgIGJfZG9uZSwKKwkJCQkJCQkJCQkJCSAgIDEpOworCisJCQkJCQkvKiBSZXR1 cm5lZCBzdGNzdGF0ZS0+anVtcF9lcnJvcj8gKi8KKwkJCQkJCXZfanVtcF9lcnJvciA9IGxfaW50 MzJfY29uc3QobGMsIHN0Y3N0YXRlLT5qdW1wX2Vycm9yKTsKKwkJCQkJCUxMVk1BZGRDYXNlKHZf c3dpdGNoLCB2X2p1bXBfZXJyb3IsIGJfZXJyb3IpOworCisJCQkJCQkvKiBPTiBFUlJPUiBjb2Rl ICovCisJCQkJCQlMTFZNUG9zaXRpb25CdWlsZGVyQXRFbmQoYiwgYl9lcnJvcik7CisJCQkJCQlM TFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tzdGNzdGF0ZS0+anVtcF9lcnJvcl0pOworCisJCQkJCQlM TFZNUG9zaXRpb25CdWlsZGVyQXRFbmQoYiwgYl9kb25lKTsKKwkJCQkJfQorCQkJCQlMTFZNQnVp bGRCcihiLCBvcGJsb2Nrc1tzdGNzdGF0ZS0+anVtcF9lbmRdKTsKKwkJCQkJYnJlYWs7CiAJCQlj YXNlIEVFT1BfSlNPTkVYUFJfUEFUSDoKIAkJCQl7CiAJCQkJCUpzb25FeHByU3RhdGUgKmpzZXN0 YXRlID0gb3AtPmQuanNvbmV4cHIuanNlc3RhdGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGVk ZTgzOGNkNDBjLi41MzNlMjExMjBhNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9k ZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTIwNiw2ICsy MDYsOSBAQCBleHByVHlwZShjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfUm93Q29tcGFyZUV4 cHI6CiAJCQl0eXBlID0gQk9PTE9JRDsKIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0 RXhwcjoKKwkJCXR5cGUgPSAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3Vs dHR5cGU7CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXR5cGUgPSAoKGNv bnN0IENvYWxlc2NlRXhwciAqKSBleHByKS0+Y29hbGVzY2V0eXBlOwogCQkJYnJlYWs7CkBAIC00 NTAsNiArNDUzLDggQEAgZXhwclR5cG1vZChjb25zdCBOb2RlICpleHByKQogCQkJCXJldHVybiB0 eXBtb2Q7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQly ZXR1cm4gKChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHR0eXBtb2Q7CiAJ CWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJLyoKQEAgLTk2NSw2ICs5NzAsOSBAQCBl eHByQ29sbGF0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkvKiBSb3dDb21wYXJlRXhwcidzIHJl c3VsdCBpcyBib29sZWFuIC4uLiAqLwogCQkJY29sbCA9IEludmFsaWRPaWQ7CS8qIC4uLiBzbyBp dCBoYXMgbm8gY29sbGF0aW9uICovCiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4 cHI6CisJCQljb2xsID0gKChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHRj b2xsaWQ7CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCWNvbGwgPSAoKGNv bnN0IENvYWxlc2NlRXhwciAqKSBleHByKS0+Y29hbGVzY2Vjb2xsaWQ7CiAJCQlicmVhazsKQEAg LTEyMzIsNiArMTI0MCw5IEBAIGV4cHJTZXRDb2xsYXRpb24oTm9kZSAqZXhwciwgT2lkIGNvbGxh dGlvbikKIAkJCS8qIFJvd0NvbXBhcmVFeHByJ3MgcmVzdWx0IGlzIGJvb2xlYW4gLi4uICovCiAJ CQlBc3NlcnQoIU9pZElzVmFsaWQoY29sbGF0aW9uKSk7IC8qIC4uLiBzbyBuZXZlciBzZXQgYSBj b2xsYXRpb24gKi8KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCSgo U2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+cmVzdWx0Y29sbGlkID0gY29sbGF0aW9uOworCQkJ YnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQkoKENvYWxlc2NlRXhwciAqKSBleHBy KS0+Y29hbGVzY2Vjb2xsaWQgPSBjb2xsYXRpb247CiAJCQlicmVhazsKQEAgLTE1NTAsNiArMTU2 MSwxNSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJCS8qIGp1c3QgdXNlIGxl ZnRtb3N0IGFyZ3VtZW50J3MgbG9jYXRpb24gKi8KIAkJCWxvYyA9IGV4cHJMb2NhdGlvbigoTm9k ZSAqKSAoKGNvbnN0IFJvd0NvbXBhcmVFeHByICopIGV4cHIpLT5sYXJncyk7CiAJCQlicmVhazsK KwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJY29uc3QgU2FmZVR5cGVDYXN0 RXhwciAqY2FzdF9leHByID0gKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwcjsKKwkJCQlp ZiAoY2FzdF9leHByLT5jYXN0X2V4cHIpCisJCQkJCWxvYyA9IGV4cHJMb2NhdGlvbihjYXN0X2V4 cHItPmNhc3RfZXhwcik7CisJCQkJZWxzZQorCQkJCQlsb2MgPSBleHByTG9jYXRpb24oY2FzdF9l eHByLT5kZWZhdWx0X2V4cHIpOworCQkJCWJyZWFrOworCQkJfQogCQljYXNlIFRfQ29hbGVzY2VF eHByOgogCQkJLyogQ09BTEVTQ0Uga2V5d29yZCBzaG91bGQgYWx3YXlzIGJlIHRoZSBmaXJzdCB0 aGluZyAqLwogCQkJbG9jID0gKChjb25zdCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmxvY2F0aW9u OwpAQCAtMjMyMSw2ICsyMzQxLDE4IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2Rl ICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2Fm ZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKnNjZXhwciA9IChT YWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzY2V4cHItPnNvdXJjZV9l eHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc2NleHByLT5jYXN0X2V4cHIp KQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzY2V4cHItPmRlZmF1bHRfZXhwcikp CisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4 cHI6CiAJCQlyZXR1cm4gV0FMSygoKENvYWxlc2NlRXhwciAqKSBub2RlKS0+YXJncyk7CiAJCWNh c2UgVF9NaW5NYXhFeHByOgpAQCAtMzMzMCw2ICszMzYyLDE5IEBAIGV4cHJlc3Npb25fdHJlZV9t dXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKIAkJ CX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZl VHlwZUNhc3RFeHByICAgKnNjZXhwciA9IChTYWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisJCQkJ U2FmZVR5cGVDYXN0RXhwciAgICpuZXdub2RlOworCisJCQkJRkxBVENPUFkobmV3bm9kZSwgc2Nl eHByLCBTYWZlVHlwZUNhc3RFeHByKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+c291cmNlX2V4cHIs IHNjZXhwci0+c291cmNlX2V4cHIsIE5vZGUgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPmNhc3Rf ZXhwciwgc2NleHByLT5jYXN0X2V4cHIsIE5vZGUgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPmRl ZmF1bHRfZXhwciwgc2NleHByLT5kZWZhdWx0X2V4cHIsIE5vZGUgKik7CisKKwkJCQlyZXR1cm4g KE5vZGUgKikgbmV3bm9kZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHBy OgogCQkJewogCQkJCUNvYWxlc2NlRXhwciAqY29hbGVzY2VleHByID0gKENvYWxlc2NlRXhwciAq KSBub2RlOwpAQCAtNDQ2NCw2ICs0NTA5LDI4IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2Vy X2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJ Y2FzZSBUX1NhZmVUeXBlQ2FzdDoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3QgICAqc2MgPSAoU2Fm ZVR5cGVDYXN0ICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzYy0+Y2FzdCkpCisJCQkJCXJldHVy biB0cnVlOworCQkJCWlmIChXQUxLKHNjLT5kZWZfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOwor CQkJfQorCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNh ZmVUeXBlQ2FzdEV4cHIgICAqc3RjID0gKFNhZmVUeXBlQ2FzdEV4cHIgKikgbm9kZTsKKworCQkJ CWlmIChXQUxLKHN0Yy0+c291cmNlX2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAo V0FMSyhzdGMtPmNhc3RfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHN0 Yy0+ZGVmYXVsdF9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJ Y2FzZSBUX0NvbGxhdGVDbGF1c2U6CiAJCQlyZXR1cm4gV0FMSygoKENvbGxhdGVDbGF1c2UgKikg bm9kZSktPmFyZyk7CiAJCWNhc2UgVF9Tb3J0Qnk6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1 c2VzLmMKaW5kZXggM2Y5ZmY0NTViYTYuLjE0ZTBkZjNiZWUyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3V0aWwvY2xhdXNlcy5jCkBAIC0yOTQ1LDYgKzI5NDUsMzAgQEAgZXZhbF9jb25zdF9leHByZXNz aW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCQkJCQkJCQkgIGNvcHlPYmplY3QoanZlLT5m b3JtYXQpKTsKIAkJCX0KIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlT YWZlVHlwZUNhc3RFeHByICpzdGMgPSAoU2FmZVR5cGVDYXN0RXhwciAqKSBub2RlOworCQkJCVNh ZmVUeXBlQ2FzdEV4cHIJICAgKm5ld2V4cHI7CisJCQkJTm9kZQkgICAqc291cmNlX2V4cHIgPSBz dGMtPnNvdXJjZV9leHByOworCQkJCU5vZGUJICAgKmRlZmF1bHRfZXhwciA9IHN0Yy0+ZGVmYXVs dF9leHByOworCisJCQkJc291cmNlX2V4cHIgPSBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0 b3Ioc291cmNlX2V4cHIsIGNvbnRleHQpOworCQkJCWRlZmF1bHRfZXhwciA9IGV2YWxfY29uc3Rf ZXhwcmVzc2lvbnNfbXV0YXRvcihkZWZhdWx0X2V4cHIsIGNvbnRleHQpOworCisJCQkJLyoKKwkJ CQkgKiBXZSBtdXN0IG5vdCByZWR1Y2UgYW55IHJlY29nbml6YWJseSBjb25zdGFudCBzdWJleHBy ZXNzaW9ucworCQkJCSAqIGluIGNhc3RfZXhwciBoZXJlLCBzaW5jZSB3ZSBkb27igJl0IHdhbnQg aXQgdG8gZmFpbAorCQkJCSAqIHByZW1hdHVyZWx5LgorCQkJCSovCisJCQkJbmV3ZXhwciA9IG1h a2VOb2RlKFNhZmVUeXBlQ2FzdEV4cHIpOworCQkJCW5ld2V4cHItPnNvdXJjZV9leHByID0gc291 cmNlX2V4cHI7CisJCQkJbmV3ZXhwci0+Y2FzdF9leHByID0gc3RjLT5jYXN0X2V4cHI7CisJCQkJ bmV3ZXhwci0+ZGVmYXVsdF9leHByID0gZGVmYXVsdF9leHByOworCQkJCW5ld2V4cHItPnJlc3Vs dHR5cGUgPSBzdGMtPnJlc3VsdHR5cGU7CisJCQkJbmV3ZXhwci0+cmVzdWx0dHlwbW9kID0gc3Rj LT5yZXN1bHR0eXBtb2Q7CisJCQkJbmV3ZXhwci0+cmVzdWx0Y29sbGlkID0gc3RjLT5yZXN1bHRj b2xsaWQ7CisJCQkJcmV0dXJuIChOb2RlICopIG5ld2V4cHI7CisJCQl9CiAJCWNhc2UgVF9TdWJQ bGFuOgogCQljYXNlIFRfQWx0ZXJuYXRpdmVTdWJQbGFuOgogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAyMWNh ZjJkNDNiZi4uYzYyZTlhYzhlZGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjQ5LDYgKzY0OSw3IEBAIHN0 YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICph bGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8cGFydGJvdW5kc3BlYz4gUGFydGl0aW9uQm91 bmRTcGVjCiAldHlwZSA8bGlzdD4JCWhhc2hfcGFydGJvdW5kCiAldHlwZSA8ZGVmZWx0PgkJaGFz aF9wYXJ0Ym91bmRfZWxlbQorJXR5cGUgPG5vZGU+CWNhc3Rfb25fZXJyb3JfY2xhdXNlX29wdAog CiAldHlwZSA8bm9kZT4JanNvbl9mb3JtYXRfY2xhdXNlCiAJCQkJanNvbl9mb3JtYXRfY2xhdXNl X29wdApAQCAtMTU5ODIsOCArMTU5ODMsMjAgQEAgZnVuY19leHByX2NvbW1vbl9zdWJleHByOgog CQkJCXsKIAkJCQkJJCQgPSBtYWtlU1FMVmFsdWVGdW5jdGlvbihTVkZPUF9DVVJSRU5UX1NDSEVN QSwgLTEsIEAxKTsKIAkJCQl9Ci0JCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSAnKScK LQkJCQl7ICQkID0gbWFrZVR5cGVDYXN0KCQzLCAkNSwgQDEpOyB9CisJCQl8IENBU1QgJygnIGFf ZXhwciBBUyBUeXBlbmFtZSBjYXN0X29uX2Vycm9yX2NsYXVzZV9vcHQgJyknCisJCQkJeworCQkJ CQlUeXBlQ2FzdCAqY2FzdCA9IChUeXBlQ2FzdCAqKSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7 CisJCQkJCWlmICgkNiA9PSBOVUxMKQorCQkJCQkJJCQgPSAoTm9kZSAqKSBjYXN0OworCQkJCQll bHNlCisJCQkJCXsKKwkJCQkJCVNhZmVUeXBlQ2FzdCAqc2FmZWNhc3QgPSBtYWtlTm9kZShTYWZl VHlwZUNhc3QpOworCQkJCQkJc2FmZWNhc3QtPmNhc3QgPSAoTm9kZSAqKSBjYXN0OworCQkJCQkJ c2FmZWNhc3QtPmRlZl9leHByID0gJDY7CisKKwkJCQkJCSQkID0gKE5vZGUgKikgc2FmZWNhc3Q7 CisJCQkJCX0KKwkJCQl9CiAJCQl8IEVYVFJBQ1QgJygnIGV4dHJhY3RfbGlzdCAnKScKIAkJCQl7 CiAJCQkJCSQkID0gKE5vZGUgKikgbWFrZUZ1bmNDYWxsKFN5c3RlbUZ1bmNOYW1lKCJleHRyYWN0 IiksCkBAIC0xNjM3MCw2ICsxNjM4MywxMyBAQCBmdW5jX2V4cHJfY29tbW9uX3N1YmV4cHI6CiAJ CQk7CiAKIAorY2FzdF9vbl9lcnJvcl9jbGF1c2Vfb3B0OgorCQkJREVGQVVMVCBhX2V4cHIgT04g Q09OVkVSU0lPTl9QIEVSUk9SX1AgCQkJeyAkJCA9ICQyOyB9CisJCQl8IEVSUk9SX1AgT04gQ09O VkVSU0lPTl9QIEVSUk9SX1AgCQkJCXsgJCQgPSBOVUxMOyB9CisJCQl8IE5VTExfUCBPTiBDT05W RVJTSU9OX1AgRVJST1JfUCAJCQkJeyAkJCA9IG1ha2VOdWxsQUNvbnN0KC0xKTsgfQorCQkJfCAv KiBFTVBUWSAqLyAJCQkJCQkJCSAJeyAkJCA9IE5VTEw7IH0KKwkJOworCiAvKgogICogU1FML1hN TCBzdXBwb3J0CiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCAzMjU0YzgzY2M2Yy4uNjU3 M2UyYTkzZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTQ4Niw2ICs0ODYsMTIgQEAgY2hl Y2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIpCiAJCQkJZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4g Y2hlY2sgY29uc3RyYWludHMiKTsKIAogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1Rf REVGQVVMVDoKKwkJCWlmIChpc0FnZykKKwkJCQllcnIgPSBfKCJhZ2dyZWdhdGUgZnVuY3Rpb25z IGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKKwkJCWVsc2UK KwkJCQllcnIgPSBfKCJncm91cGluZyBvcGVyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNU IERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKKwkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xV TU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIApAQCAtOTU2 LDYgKzk2Miw5IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwg V2luZG93RnVuYyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJCWVy ciA9IF8oIndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0cmFp bnRzIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJZXJy ID0gXygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4 cHJlc3Npb25zIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6 CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJ3aW5kb3cg ZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYwppbmRleCAxMjExOWYxNDdmYy4uYWM2MGI3NGRjZWIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYwpAQCAtMTcsNiArMTcsOCBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL2h0 dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19jYXN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVk ZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zNyw2ICszOSw3IEBACiAjaW5jbHVkZSAidXRpbHMv ZGF0ZS5oIgogI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5 c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy90 aW1lc3RhbXAuaCIKICNpbmNsdWRlICJ1dGlscy94bWwuaCIKIApAQCAtNjAsNyArNjMsOCBAQCBz dGF0aWMgTm9kZSAqdHJhbnNmb3JtTXVsdGlBc3NpZ25SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBN dWx0aUFzc2lnblJlZiAqbWFyZWYpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNhc2VFeHByKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ2FzZUV4cHIgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybVN1 YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKTsKIHN0YXRpYyBOb2Rl ICp0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwK LQkJCQkJCQkJT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUsIGludDMyIHR5cG1vZCk7 CisJCQkJCQkJCU9pZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBtb2Qs CisJCQkJCQkJCWJvb2wgKmNhbl9jb2VyY2UpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybVJvd0V4 cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSb3dFeHByICpyLCBib29sIGFsbG93RGVmYXVsdCk7CiBz dGF0aWMgTm9kZSAqdHJhbnNmb3JtQ29hbGVzY2VFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29h bGVzY2VFeHByICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1NaW5NYXhFeHByKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTWluTWF4RXhwciAqbSk7CkBAIC03Niw2ICs4MCw3IEBAIHN0YXRpYyBOb2Rl ICp0cmFuc2Zvcm1XaG9sZVJvd1JlZihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCSAgaW50 IHN1YmxldmVsc191cCwgaW50IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1JbmRp cmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBzdGF0aWMg Tm9kZSAqdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMp Oworc3RhdGljIE5vZGUgKnRyYW5zZm9ybVR5cGVTYWZlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUs IFNhZmVUeXBlQ2FzdCAqdGMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2Uo UGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2xsYXRlQ2xhdXNlICpjKTsKIHN0YXRpYyBOb2RlICp0cmFu c2Zvcm1Kc29uT2JqZWN0Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJ CQlKc29uT2JqZWN0Q29uc3RydWN0b3IgKmN0b3IpOwpAQCAtMTA3LDYgKzExMiw4IEBAIHN0YXRp YyBFeHByICptYWtlX2Rpc3RpbmN0X29wKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqb3BuYW1l LAogCQkJCQkJCSAgTm9kZSAqbHRyZWUsIE5vZGUgKnJ0cmVlLCBpbnQgbG9jYXRpb24pOwogc3Rh dGljIE5vZGUgKm1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0aW5jdChQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJIEFfRXhwciAqZGlzdGluY3RhLCBOb2RlICphcmcpOworc3RhdGljIGJvb2wg Q29lcmNlVW5rbm93bkNvbnN0U2FmZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCisJ CQkJCQkJCSAgIE9pZCB0YXJnZXRUeXBlLCBpbnQzMiB0YXJnZXRUeXBlTW9kKTsKIAogCiAvKgpA QCAtMTY0LDEzICsxNzEsMTcgQEAgdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBOb2RlICpleHByKQogCiAJCWNhc2UgVF9BX0FycmF5RXhwcjoKIAkJCXJlc3VsdCA9IHRy YW5zZm9ybUFycmF5RXhwcihwc3RhdGUsIChBX0FycmF5RXhwciAqKSBleHByLAotCQkJCQkJCQkJ CUludmFsaWRPaWQsIEludmFsaWRPaWQsIC0xKTsKKwkJCQkJCQkJCQlJbnZhbGlkT2lkLCBJbnZh bGlkT2lkLCAtMSwgTlVMTCk7CiAJCQlicmVhazsKIAogCQljYXNlIFRfVHlwZUNhc3Q6CiAJCQly ZXN1bHQgPSB0cmFuc2Zvcm1UeXBlQ2FzdChwc3RhdGUsIChUeXBlQ2FzdCAqKSBleHByKTsKIAkJ CWJyZWFrOwogCisJCWNhc2UgVF9TYWZlVHlwZUNhc3Q6CisJCQlyZXN1bHQgPSB0cmFuc2Zvcm1U eXBlU2FmZUNhc3QocHN0YXRlLCAoU2FmZVR5cGVDYXN0ICopIGV4cHIpOworCQkJYnJlYWs7CisK IAkJY2FzZSBUX0NvbGxhdGVDbGF1c2U6CiAJCQlyZXN1bHQgPSB0cmFuc2Zvcm1Db2xsYXRlQ2xh dXNlKHBzdGF0ZSwgKENvbGxhdGVDbGF1c2UgKikgZXhwcik7CiAJCQlicmVhazsKQEAgLTU3Niw2 ICs1ODcsNyBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5S ZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5EX0NPUFlfV0hFUkU6CiAJCWNhc2UgRVhQUl9LSU5E X0dFTkVSQVRFRF9DT0xVTU46CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2Ug RVhQUl9LSU5EX0NBU1RfREVGQVVMVDoKIAkJCS8qIG9rYXkgKi8KIAkJCWJyZWFrOwogCkBAIC0x ODI0LDYgKzE4MzYsNyBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3Vi TGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgogCQkJZXJyID0g XygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjaGVjayBjb25zdHJhaW50Iik7CiAJCQlicmVhazsK KwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5f REVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJCWVyciA9IF8o ImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gREVGQVVMVCBleHByZXNzaW9uIik7CkBAIC0yMDA1LDE2 ICsyMDE4LDczIEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5r ICpzdWJsaW5rKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBSZXR1cm4gdHJ1ZSBpZiBz dWNjZXNzZnVseSBjb2VyY2VkIGEgVW5rbm93biBDb25zdCB0byB0YXJnZXRUeXBlCisqLworc3Rh dGljIGJvb2wKK0NvZXJjZVVua25vd25Db25zdFNhZmUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2Rl ICpub2RlLAorCQkJCQkgICBPaWQgdGFyZ2V0VHlwZSwgaW50MzIgdGFyZ2V0VHlwZU1vZCkKK3sK KwlPaWQJCQliYXNlVHlwZUlkOworCWludDMyCQliYXNlVHlwZU1vZDsKKwlpbnQzMgkJaW5wdXRU eXBlTW9kOworCVR5cGUJCWJhc2VUeXBlOworCWNoYXIJCSpzdHJpbmc7CisJRGF0dW0JCWRhdHVt OworCWJvb2wJCWNvbnZlcnRlZDsKKwlDb25zdAkgICAqY29uOworCisJQXNzZXJ0KElzQShub2Rl LCBDb25zdCkpOworCUFzc2VydChleHByVHlwZShub2RlKSA9PSBVTktOT1dOT0lEKTsKKworCWNv biA9IChDb25zdCAqKSBub2RlOworCWJhc2VUeXBlTW9kID0gdGFyZ2V0VHlwZU1vZDsKKwliYXNl VHlwZUlkID0gZ2V0QmFzZVR5cGVBbmRUeXBtb2QodGFyZ2V0VHlwZSwgJmJhc2VUeXBlTW9kKTsK KworCWlmIChiYXNlVHlwZUlkID09IElOVEVSVkFMT0lEKQorCQlpbnB1dFR5cGVNb2QgPSBiYXNl VHlwZU1vZDsKKwllbHNlCisJCWlucHV0VHlwZU1vZCA9IC0xOworCisJYmFzZVR5cGUgPSB0eXBl aWRUeXBlKGJhc2VUeXBlSWQpOworCisJLyoKKwkgKiBXZSBhc3N1bWUgaGVyZSB0aGF0IFVOS05P V04ncyBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBpcyB0aGUgc2FtZSBhcworCSAqIENTVFJJTkcu CisJKi8KKwlpZiAoIWNvbi0+Y29uc3Rpc251bGwpCisJCXN0cmluZyA9IERhdHVtR2V0Q1N0cmlu Zyhjb24tPmNvbnN0dmFsdWUpOworCWVsc2UKKwkJc3RyaW5nID0gTlVMTDsKKworCWNvbnZlcnRl ZCA9IHN0cmluZ1R5cGVEYXR1bVNhZmUoYmFzZVR5cGUsCisJCQkJCQkJCQlzdHJpbmcsCisJCQkJ CQkJCQlpbnB1dFR5cGVNb2QsCisJCQkJCQkJCQkmZGF0dW0pOworCisJUmVsZWFzZVN5c0NhY2hl KGJhc2VUeXBlKTsKKworCXJldHVybiBjb252ZXJ0ZWQ7Cit9CisKKwogLyoKICAqIHRyYW5zZm9y bUFycmF5RXhwcgogICoKICAqIElmIHRoZSBjYWxsZXIgc3BlY2lmaWVzIHRoZSB0YXJnZXQgdHlw ZSwgdGhlIHJlc3VsdGluZyBhcnJheSB3aWxsCiAgKiBiZSBvZiBleGFjdGx5IHRoYXQgdHlwZS4g IE90aGVyd2lzZSB3ZSB0cnkgdG8gaW5mZXIgYSBjb21tb24gdHlwZQogICogZm9yIHRoZSBlbGVt ZW50cyB1c2luZyBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKyAqCisgKiBNb3N0IG9mIHRoZSB0aW1l LCB0aGUgY2FsbGVyIHdpbGwgcGFzcyBjYW5fY29lcmNlIGFzIE5VTEwuCisgKiBjYW5fY29lcmNl IGlzIG5vdCBOVUxMIG9ubHkgd2hlbiBwZXJmb3JtaW5nIHBhcnNlIGFuYWx5c2lzIGZvciBleHBy ZXNzaW9ucworICogbGlrZSBDQVNUKERFRkFVTFQgLi4uIE9OIENPTlZFUlNJT04gRVJST1IpLgor ICogV2hlbiBjYW5fY29lcmNlIGlzIG5vdCBOVUxMLCBpdCBzaG91bGQgYmUgYXNzdW1lZCB0byBk ZWZhdWx0IHRvIHRydWUuICBJZgorICogY29lcmNlIGFycmF5IGVsZW1lbnRzIHRvIHRoZSB0YXJn ZXQgdHlwZSBmYWlscywgY2FuX2NvZXJjZSB3aWxsIGJlIHNldCB0bworICogZmFsc2UuCiAgKi8K IHN0YXRpYyBOb2RlICoKIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFf QXJyYXlFeHByICphLAotCQkJCSAgIE9pZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBp bnQzMiB0eXBtb2QpCisJCQkJICAgT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUsIGlu dDMyIHR5cG1vZCwgYm9vbCAqY2FuX2NvZXJjZSkKIHsKIAlBcnJheUV4cHIgICpuZXdhID0gbWFr ZU5vZGUoQXJyYXlFeHByKTsKIAlMaXN0CSAgICpuZXdlbGVtcyA9IE5JTDsKQEAgLTIwMjIsNiAr MjA5Miw3IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlF eHByICphLAogCUxpc3RDZWxsICAgKmVsZW1lbnQ7CiAJT2lkCQkJY29lcmNlX3R5cGU7CiAJYm9v bAkJY29lcmNlX2hhcmQ7CisJYm9vbAkJZXhwcl9pc19jb25zdCA9IGZhbHNlOwogCiAJLyoKIAkg KiBUcmFuc2Zvcm0gdGhlIGVsZW1lbnQgZXhwcmVzc2lvbnMKQEAgLTIwNDUsOSArMjExNiwxMCBA QCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwK IAkJCQkJCQkJCSAgKEFfQXJyYXlFeHByICopIGUsCiAJCQkJCQkJCQkgIGFycmF5X3R5cGUsCiAJ CQkJCQkJCQkgIGVsZW1lbnRfdHlwZSwKLQkJCQkJCQkJCSAgdHlwbW9kKTsKKwkJCQkJCQkJCSAg dHlwbW9kLAorCQkJCQkJCQkJICBjYW5fY29lcmNlKTsKIAkJCS8qIHdlIGNlcnRhaW5seSBoYXZl IGFuIGFycmF5IGhlcmUgKi8KLQkJCUFzc2VydChhcnJheV90eXBlID09IEludmFsaWRPaWQgfHwg YXJyYXlfdHlwZSA9PSBleHByVHlwZShuZXdlKSk7CisJCQlBc3NlcnQoY2FuX2NvZXJjZSB8fCBh cnJheV90eXBlID09IEludmFsaWRPaWQgfHwgYXJyYXlfdHlwZSA9PSBleHByVHlwZShuZXdlKSk7 CiAJCQluZXdhLT5tdWx0aWRpbXMgPSB0cnVlOwogCQl9CiAJCWVsc2UKQEAgLTIwODgsNiArMjE2 MCw5IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHBy ICphLAogCX0KIAllbHNlCiAJeworCQkvKiBXZSBvYnZpb3VzbHkga25vdyB0aGUgdGFyZ2V0IHR5 cGUgd2hlbiBwZXJmb3JtaW5nIHR5cGUtc2FmZSBjYXN0ICovCisJCUFzc2VydChjYW5fY29lcmNl ID09IE5VTEwpOworCiAJCS8qIENhbid0IGhhbmRsZSBhbiBlbXB0eSBhcnJheSB3aXRob3V0IGEg dGFyZ2V0IHR5cGUgKi8KIAkJaWYgKG5ld2VsZW1zID09IE5JTCkKIAkJCWVyZXBvcnQoRVJST1Is CkBAIC0yMTQwLDcgKzIyMTUsMzYgQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJCU5vZGUJICAgKmUgPSAoTm9kZSAqKSBsZmlyc3QoZWxl bWVudCk7CiAJCU5vZGUJICAgKm5ld2U7CiAKLQkJaWYgKGNvZXJjZV9oYXJkKQorCQkvKgorCQkg KiBGb3IgZXJyb3Itc2FmZSB0eXBlIGNhc3RpbmcsIHdlIG5lZWQgdG8gc2FmZWx5IGNoZWNrIHdo ZXRoZXIgdGhlCisJCSAqIFVOS05PV04gY29uc3RhbnQgY2FuIGJlIGNvZXJjZWQgdG8gdGhlIHRh cmdldCB0eXBlLiBJZiBpdCBjYW5ub3QsIHNldAorCQkgKiBjYW5fY29lcmNlIHRvIGZhbHNlIGFu ZCBjb2VyY2Ugc291cmNlIGVsZW1lbnQgdG8gVEVYVCBkYXRhIHR5cGUuCisJCSAqIHNlZSBjb2Vy Y2VfdHlwZSBmdW5jdGlvbiBhbHNvLgorCQkqLworCQlpZiAoY2FuX2NvZXJjZSAhPSBOVUxMICYm IElzQShlLCBDb25zdCkpCisJCXsKKwkJCWlmIChleHByVHlwZShlKSA9PSBVTktOT1dOT0lEKQor CQkJeworCQkJCWlmICghQ29lcmNlVW5rbm93bkNvbnN0U2FmZShwc3RhdGUsIGUsIGNvZXJjZV90 eXBlLCB0eXBtb2QpKQorCQkJCXsKKwkJCQkJKmNhbl9jb2VyY2UgPSBmYWxzZTsKKworCQkJCQkv KiBzZWUgcmVzb2x2ZVRhcmdldExpc3RVbmtub3ducyBhbHNvICovCisJCQkJCWUgPSAgY29lcmNl X3RvX3RhcmdldF90eXBlKHBzdGF0ZSwgZSwKKwkJCQkJCQkJCQkJICAgVU5LTk9XTk9JRCwKKwkJ CQkJCQkJCQkJICAgVEVYVE9JRCwKKwkJCQkJCQkJCQkJICAgLTEsCisJCQkJCQkJCQkJCSAgIENP RVJDSU9OX0lNUExJQ0lULAorCQkJCQkJCQkJCQkgICBDT0VSQ0VfSU1QTElDSVRfQ0FTVCwKKwkJ CQkJCQkJCQkJICAgLTEpOworCQkJCX0KKwkJCX0KKwkJCWV4cHJfaXNfY29uc3QgPSB0cnVlOwor CQl9CisKKwkJaWYgKGNhbl9jb2VyY2UgIT0gTlVMTCAmJiAoISpjYW5fY29lcmNlKSkKKwkJCW5l d2UgPSBlOworCQllbHNlIGlmIChjb2VyY2VfaGFyZCkKIAkJewogCQkJbmV3ZSA9IGNvZXJjZV90 b190YXJnZXRfdHlwZShwc3RhdGUsIGUsCiAJCQkJCQkJCQkJIGV4cHJUeXBlKGUpLApAQCAtMjE0 OSwxMyArMjI1Myw1MSBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBB X0FycmF5RXhwciAqYSwKIAkJCQkJCQkJCQkgQ09FUkNJT05fRVhQTElDSVQsCiAJCQkJCQkJCQkJ IENPRVJDRV9FWFBMSUNJVF9DQVNULAogCQkJCQkJCQkJCSAtMSk7Ci0JCQlpZiAobmV3ZSA9PSBO VUxMKQorCQkJaWYgKG5ld2UgPT0gTlVMTCAmJiBjYW5fY29lcmNlID09IE5VTEwpCiAJCQkJZXJl cG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCiAJCQkJ CQkgZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRvICVzIiwKIAkJCQkJCQkJZm9ybWF0X3R5 cGVfYmUoZXhwclR5cGUoZSkpLAogCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShjb2VyY2VfdHlwZSkp LAogCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihlKSkpKTsK KworCQkJaWYgKGNhbl9jb2VyY2UgIT0gTlVMTCkKKwkJCXsKKwkJCQlpZiAobmV3ZSA9PSBOVUxM KQorCQkJCXsKKwkJCQkJbmV3ZSA9IGU7CisJCQkJCSpjYW5fY29lcmNlID0gZmFsc2U7CisJCQkJ fQorCQkJCWVsc2UgaWYgKGV4cHJfaXNfY29uc3QgJiYgIUlzQShuZXdlLCBDb25zdCkpCisJCQkJ eworCQkJCQkvKgorCQkJCQkgKiBVc2UgZXZhbHVhdGVfZXhwcl9zYWZlIHRvIHByZS1ldmFsdWF0 ZSBzaW1wbGUgY29uc3RhbnQKKwkJCQkJICogY2FzdCBleHByZXNzaW9ucyBlYXJseSwgaW4gYSB3 YXkgdGhhdCB0b2x0ZXIgZXJyb3JzIC4KKwkJCQkJICoKKwkJCQkJICogUmF0aW9uYWxlOgorCQkJ CQkgKiAxLiBXaGVuIGRlcGFyc2luZyBzYWZlIGNhc3QgZXhwcmVzc2lvbnMgKG9yIGluIG90aGVy CisJCQkJCSAqICAgIGNhc2VzKSwgZXZhbF9jb25zdF9leHByZXNzaW9ucyBtaWdodCBiZSBpbnZv a2VkLCBidXQKKwkJCQkJICogICAgaXQgY2Fubm90IGhhbmRsZSBlcnJvcnMgZ3JhY2VmdWxseS4K KwkJCQkJICogMi4gSWYgdGhlIGNhc3QgZXhwcmVzc2lvbiBpbnZvbHZlcyBvbmx5IHNpbXBsZSBj b25zdGFudHMsCisJCQkJCSAqICAgIHdlIGNhbiBzYWZlbHkgZXZhbHVhdGUgaXQgYWhlYWQgb2Yg dGltZS4gSWYgdGhlCisJCQkJCSAqICAgIGV2YWx1YXRpb24gZmFpbHMsIGl0IGluZGljYXRlcyB0 aGF0IHN1Y2ggYSBjYXN0IGlzIG5vdAorCQkJCQkgKiAgICBwb3NzaWJsZSwgYW5kIHdlIGNhbiB0 aGVuIGZhbGwgYmFjayB0byB0aGUgQ0FTVAorCQkJCQkgKiAgICBERUZBVUxUIGV4cHJlc3Npb24u CisJCQkJCSovCisJCQkJCUV4cHIgKm5ld2VfY29weSA9IChFeHByICopIGNvcHlPYmplY3QobmV3 ZSk7CisKKwkJCQkJbmV3ZSA9IChOb2RlICopIGV2YWx1YXRlX2V4cHJfc2FmZShuZXdlX2NvcHks CisJCQkJCQkJCQkJCQkJICAgY29lcmNlX3R5cGUsCisJCQkJCQkJCQkJCQkJICAgdHlwbW9kLAor CQkJCQkJCQkJCQkJCSAgIGV4cHJDb2xsYXRpb24obmV3ZSkpOworCQkJCQlpZiAobmV3ZSA9PSBO VUxMKQorCQkJCQl7CisJCQkJCQluZXdlID0gZTsKKwkJCQkJCSpjYW5fY29lcmNlID0gZmFsc2U7 CisJCQkJCX0KKwkJCQl9CisJCQkJZXhwcl9pc19jb25zdCA9IGZhbHNlOworCQkJfQogCQl9CiAJ CWVsc2UKIAkJCW5ld2UgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCBlLApAQCAtMjc0 Myw3ICsyODg1LDggQEAgdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBl Q2FzdCAqdGMpCiAJCQkJCQkJCQkgIChBX0FycmF5RXhwciAqKSBhcmcsCiAJCQkJCQkJCQkgIHRh cmdldEJhc2VUeXBlLAogCQkJCQkJCQkJICBlbGVtZW50VHlwZSwKLQkJCQkJCQkJCSAgdGFyZ2V0 QmFzZVR5cG1vZCk7CisJCQkJCQkJCQkgIHRhcmdldEJhc2VUeXBtb2QsCisJCQkJCQkJCQkgIE5V TEwpOwogCQl9CiAJCWVsc2UKIAkJCWV4cHIgPSB0cmFuc2Zvcm1FeHByUmVjdXJzZShwc3RhdGUs IGFyZyk7CkBAIC0yNzgwLDYgKzI5MjMsMjI4IEBAIHRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3Rh dGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRjKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBI YW5kbGUgYW4gZXhwbGljaXQgQ0FTVCguLi4gREVGQVVMVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJP UikgY29uc3RydWN0LgorICoKKyAqIFRyYW5zZm9ybSBTYWZlVHlwZUNhc3Qgbm9kZSwgbG9vayB1 cCB0aGUgdHlwZSBuYW1lLCBhbmQgYXBwbHkgYW55IG5lY2Vzc2FyeQorICogY29lcmNpb24gZnVu Y3Rpb24ocykuCisgKi8KK3N0YXRpYyBOb2RlICoKK3RyYW5zZm9ybVR5cGVTYWZlQ2FzdChQYXJz ZVN0YXRlICpwc3RhdGUsIFNhZmVUeXBlQ2FzdCAqdGMpCit7CisJU2FmZVR5cGVDYXN0RXhwciAg ICpyZXN1bHQ7CisJVHlwZUNhc3QgICAqdGNhc3QgPSAoVHlwZUNhc3QgKikgdGMtPmNhc3Q7CisJ Tm9kZQkgICAqZGVmX2V4cHIgPSBOVUxMOworCU5vZGUJICAgKmNhc3RfZXhwciA9IE5VTEw7CisJ Tm9kZQkgICAqc291cmNlX2V4cHIgPSBOVUxMOworCU9pZAkJCWlucHV0VHlwZSA9IEludmFsaWRP aWQ7CisJT2lkCQkJdGFyZ2V0VHlwZTsKKwlPaWQJCQl0YXJnZXRCYXNlVHlwZTsKKwlPaWQJCQl0 eXBlQ29sbDsKKwlpbnQzMgkJdGFyZ2V0VHlwbW9kOworCWludDMyCQl0YXJnZXRCYXNlVHlwbW9k OworCWJvb2wJCWNhbl9jb2VyY2UgPSB0cnVlOworCWJvb2wJCWV4cHJfaXNfY29uc3QgPSBmYWxz ZTsKKwlpbnQJCQlsb2NhdGlvbjsKKworCS8qIExvb2sgdXAgdGhlIHR5cGUgbmFtZSBmaXJzdCAq LworCXR5cGVuYW1lVHlwZUlkQW5kTW9kKHBzdGF0ZSwgdGNhc3QtPnR5cGVOYW1lLCAmdGFyZ2V0 VHlwZSwgJnRhcmdldFR5cG1vZCk7CisJdGFyZ2V0QmFzZVR5cG1vZCA9IHRhcmdldFR5cG1vZDsK KworCXR5cGVDb2xsID0gZ2V0X3R5cGNvbGxhdGlvbih0YXJnZXRUeXBlKTsKKwl0YXJnZXRCYXNl VHlwZSA9IGdldEJhc2VUeXBlQW5kVHlwbW9kKHRhcmdldFR5cGUsICZ0YXJnZXRCYXNlVHlwbW9k KTsKKworCS8qIG5vdyBsb29raW5nIGF0IGNhc3QgZGVmYXVsdCBleHByZXNzaW9uICovCisJZGVm X2V4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgdGMtPmRlZl9leHByLCBFWFBSX0tJTkRfQ0FT VF9ERUZBVUxUKTsKKworCWRlZl9leHByID0gY29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwg ZGVmX2V4cHIsIGV4cHJUeXBlKGRlZl9leHByKSwKKwkJCQkJCQkJCSB0YXJnZXRUeXBlLCB0YXJn ZXRUeXBtb2QsCisJCQkJCQkJCQkgQ09FUkNJT05fRVhQTElDSVQsCisJCQkJCQkJCQkgQ09FUkNF X0VYUExJQ0lUX0NBU1QsCisJCQkJCQkJCQkgZXhwckxvY2F0aW9uKGRlZl9leHByKSk7CisKKwlh c3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgZGVmX2V4cHIpOworCisJaWYgKGRlZl9leHBy ID09IE5VTEwpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0NBTk5PVF9D T0VSQ0UpLAorCQkJCWVycm1zZygiY2Fubm90IGNvZXJjZSAlcyBleHByZXNzaW9uIHRvIHR5cGUg JXMiLAorCQkJCQkgICAiQ0FTVCBERUZBVUxUIiwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUodGFy Z2V0VHlwZSkpLAorCQkJCXBhcnNlcl9jb2VyY2lvbl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJM b2NhdGlvbih0Yy0+ZGVmX2V4cHIpLCBkZWZfZXhwcikpOworCisJLyoKKwkgKiBUaGUgY29sbGF0 aW9uIG9mIERFRkFVTFQgZXhwcmVzc2lvbiBtdXN0IG1hdGNoIHRoZSBjb2xsYXRpb24gb2YgdGhl CisJICogdGFyZ2V0IHR5cGUuCisJKi8KKwlpZiAoT2lkSXNWYWxpZCh0eXBlQ29sbCkpCisJewor CQlPaWQJCQlkZWZDb2xsOworCisJCWRlZkNvbGwgPSBleHByQ29sbGF0aW9uKGRlZl9leHByKTsK KworCQlpZiAoT2lkSXNWYWxpZChkZWZDb2xsKSAmJiB0eXBlQ29sbCAhPSBkZWZDb2xsKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwK KwkJCQkJZXJybXNnKCJ0aGUgY29sbGF0aW9uIG9mIENBU1QgREVGQVVMVCBleHByZXNzaW9uIGNv bmZsaWN0cyB3aXRoIHRhcmdldCB0eXBlIGNvbGxhdGlvbiIpLAorCQkJCQllcnJkZXRhaWwoIlwi JXNcIiB2ZXJzdXMgXCIlc1wiIiwKKwkJCQkJCQkgIGdldF9jb2xsYXRpb25fbmFtZSh0eXBlQ29s bCksCisJCQkJCQkJICBnZXRfY29sbGF0aW9uX25hbWUoZGVmQ29sbCkpLAorCQkJCQlwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oZGVmX2V4cHIpKSk7CisJfQorCisJLyoK KwkgKiBJZiB0aGUgdHlwZSBjYXN0IHRhcmdldCB0eXBlIGlzIGFuIGFycmF5IHR5cGUsIHdlIGlu dm9rZQorCSAqIHRyYW5zZm9ybUFycmF5RXhwcigpIGRpcmVjdGx5IHNvIHRoYXQgd2UgY2FuIHBh c3MgZG93biB0aGUgdHlwZQorCSAqIGluZm9ybWF0aW9uLiAgVGhpcyBhdm9pZHMgc29tZSBjYXNl cyB3aGVyZSB0cmFuc2Zvcm1BcnJheUV4cHIoKSBtaWdodCBub3QKKwkgKiBpbmZlciB0aGUgY29y cmVjdCB0eXBlLiAgT3RoZXJ3aXNlLCBqdXN0IHRyYW5zZm9ybSB0aGUgYXJndW1lbnQgbm9ybWFs bHkuCisJICovCisJaWYgKElzQSh0Y2FzdC0+YXJnLCBBX0FycmF5RXhwcikpCisJeworCQlPaWQJ CQllbGVtZW50VHlwZTsKKworCQkvKgorCQkgKiBJZiB0YXJnZXQgaXMgYSBkb21haW4gb3ZlciBh cnJheSwgd29yayB3aXRoIHRoZSBiYXNlIGFycmF5IHR5cGUKKwkJICogaGVyZS4gIEJlbG93LCB3 ZSdsbCBjYXN0IHRoZSBhcnJheSB0eXBlIHRvIHRoZSBkb21haW4uICBJbiB0aGUKKwkJICogdXN1 YWwgY2FzZSB0aGF0IHRoZSB0YXJnZXQgaXMgbm90IGEgZG9tYWluLCB0aGUgcmVtYWluaW5nIHN0 ZXBzCisJCSAqIHdpbGwgYmUgYSBuby1vcC4KKwkJICovCisJCWVsZW1lbnRUeXBlID0gZ2V0X2Vs ZW1lbnRfdHlwZSh0YXJnZXRCYXNlVHlwZSk7CisKKwkJaWYgKE9pZElzVmFsaWQoZWxlbWVudFR5 cGUpKQorCQl7CisJCQlzb3VyY2VfZXhwciA9IHRyYW5zZm9ybUFycmF5RXhwcihwc3RhdGUsCisJ CQkJCQkJCQkJCSAoQV9BcnJheUV4cHIgKikgdGNhc3QtPmFyZywKKwkJCQkJCQkJCQkJIHRhcmdl dEJhc2VUeXBlLAorCQkJCQkJCQkJCQkgZWxlbWVudFR5cGUsCisJCQkJCQkJCQkJCSB0YXJnZXRC YXNlVHlwbW9kLAorCQkJCQkJCQkJCQkgJmNhbl9jb2VyY2UpOworCQl9CisJCWVsc2UKKwkJCXNv dXJjZV9leHByID0gdHJhbnNmb3JtRXhwclJlY3Vyc2UocHN0YXRlLCB0Y2FzdC0+YXJnKTsKKwl9 CisJZWxzZQorCQlzb3VyY2VfZXhwciA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwgdGNh c3QtPmFyZyk7CisKKwlpbnB1dFR5cGUgPSBleHByVHlwZShzb3VyY2VfZXhwcik7CisJaWYgKGlu cHV0VHlwZSA9PSBJbnZhbGlkT2lkKQorCQlyZXR1cm4gKE5vZGUgKikgTlVMTDsJCQkvKiByZXR1 cm4gTlVMTCBpZiBOVUxMIGlucHV0ICovCisKKwlpZiAoY2FuX2NvZXJjZSAmJiBJc0Eoc291cmNl X2V4cHIsIENvbnN0KSkKKwl7CisJCWlmIChleHByVHlwZShzb3VyY2VfZXhwcikgPT0gVU5LTk9X Tk9JRCkKKwkJCWNhbl9jb2VyY2UgPSBDb2VyY2VVbmtub3duQ29uc3RTYWZlKHBzdGF0ZSwKKwkJ CQkJCQkJCQkJCXNvdXJjZV9leHByLAorCQkJCQkJCQkJCQkJdGFyZ2V0VHlwZSwKKwkJCQkJCQkJ CQkJCXRhcmdldFR5cG1vZCk7CisJCWV4cHJfaXNfY29uc3QgPSB0cnVlOworCX0KKworCS8qCisJ ICogTG9jYXRpb24gb2YgdGhlIGNvZXJjaW9uIGlzIHByZWZlcmVudGlhbGx5IHRoZSBsb2NhdGlv biBvZiBDQVNUIHN5bWJvbCwKKwkgKiBidXQgaWYgdGhlcmUgaXMgbm9uZSB0aGVuIHVzZSB0aGUg bG9jYXRpb24gb2YgdGhlIHR5cGUgbmFtZSAodGhpcyBjYW4KKwkgKiBoYXBwZW4gaW4gVHlwZU5h bWUgJ3N0cmluZycgc3ludGF4LCBmb3IgaW5zdGFuY2UpLgorCSAqLworCWxvY2F0aW9uID0gdGNh c3QtPmxvY2F0aW9uOworCWlmIChsb2NhdGlvbiA8IDApCisJCWxvY2F0aW9uID0gdGNhc3QtPnR5 cGVOYW1lLT5sb2NhdGlvbjsKKworCWlmIChjYW5fY29lcmNlKQorCXsKKwkJTm9kZQkgICAqb3Jp Z2V4cHI7CisKKwkJY2FzdF9leHByID0gY29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwgc291 cmNlX2V4cHIsIGlucHV0VHlwZSwKKwkJCQkJCQkJCQkgIHRhcmdldFR5cGUsIHRhcmdldFR5cG1v ZCwKKwkJCQkJCQkJCQkgIENPRVJDSU9OX0VYUExJQ0lULAorCQkJCQkJCQkJCSAgQ09FUkNFX0VY UExJQ0lUX0NBU1QsCisJCQkJCQkJCQkJICBsb2NhdGlvbik7CisJCW9yaWdleHByID0gY2FzdF9l eHByOworCisJCXdoaWxlIChjYXN0X2V4cHIgJiYgSXNBKGNhc3RfZXhwciwgQ29sbGF0ZUV4cHIp KQorCQkJY2FzdF9leHByID0gKE5vZGUgKikgKChDb2xsYXRlRXhwciAqKSBjYXN0X2V4cHIpLT5h cmc7CisKKwkJaWYgKGNhc3RfZXhwciAhPSBOVUxMICYmIElzQShjYXN0X2V4cHIsIEZ1bmNFeHBy KSkKKwkJeworCQkJSGVhcFR1cGxlCXR1cGxlOworCQkJTGlzdENlbGwgICAqbGM7CisJCQlOb2Rl CSAgICpzZXhwcjsKKwkJCUZ1bmNFeHByICAgKmZleHByID0gKEZ1bmNFeHByICopIGNhc3RfZXhw cjsKKworCQkJbGMgPSBsaXN0X2hlYWQoZmV4cHItPmFyZ3MpOworCQkJc2V4cHIgPSAoTm9kZSAq KSBsZmlyc3QobGMpOworCisJCQkvKiBMb29rIGluIHBnX2Nhc3QgKi8KKwkJCXR1cGxlID0gU2Vh cmNoU3lzQ2FjaGUyKENBU1RTT1VSQ0VUQVJHRVQsCisJCQkJCQkJCQlPYmplY3RJZEdldERhdHVt KGV4cHJUeXBlKHNleHByKSksCisJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHRhcmdldFR5cGUp KTsKKworCQkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQkJeworCQkJCUZvcm1fcGdf Y2FzdCBjYXN0Rm9ybSA9IChGb3JtX3BnX2Nhc3QpIEdFVFNUUlVDVCh0dXBsZSk7CisJCQkJaWYg KCFjYXN0Rm9ybS0+Y2FzdGVycm9yc2FmZSkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQll cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQllcnJtc2coImNh bm5vdCBjYXN0IHR5cGUgJXMgdG8gJXMgd2hlbiAlcyBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBp biAlcyIsCisJCQkJCQkJCSAgIGZvcm1hdF90eXBlX2JlKGlucHV0VHlwZSksCisJCQkJCQkJCSAg IGZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGUpLAorCQkJCQkJCQkgICAiREVGQVVMVCIsCisJCQkJ CQkJCSAgICJDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SIiksCisJCQkJCQkJZXJyaGludCgi Q3VycmVudGx5IENBU1QgLi4uIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUiBkb2VzIG5vdCBz dXBwb3J0IHRoaXMgY2FzdCIpLAorCQkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4 cHJMb2NhdGlvbihzb3VyY2VfZXhwcikpKTsKKwkJCX0KKwkJCWVsc2UKKwkJCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcGdfY2FzdCBlbnRyeSAoJXMgY2FzdCB0byAlcyki LAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKGlucHV0VHlwZSksCisJCQkJCQkJZm9ybWF0X3R5cGVf YmUodGFyZ2V0VHlwZSkpOworCQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKworCQkJaWYgKGV4 cHJfaXNfY29uc3QpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBVc2UgZXZhbHVhdGVfZXhwcl9zYWZl IHRvIHByZS1ldmFsdWF0ZSBzaW1wbGUgY29uc3RhbnQgY2FzdAorCQkJCSAqIGV4cHJlc3Npb25z IGVhcmx5LCBpbiBhIHdheSB0aGF0IHRvbHRlciBlcnJvcnMgLgorCQkJCSAqCisJCQkJICogUmF0 aW9uYWxlOgorCQkJCSAqIDEuIFdoZW4gZGVwYXJzaW5nIHNhZmUgY2FzdCBleHByZXNzaW9ucyAo b3IgaW4gb3RoZXIgY2FzZXMpLAorCQkJCSAqICAgIGV2YWxfY29uc3RfZXhwcmVzc2lvbnMgbWln aHQgYmUgaW52b2tlZCwgYnV0IGl0IGNhbm5vdAorCQkJCSAqICAgIGhhbmRsZSBlcnJvcnMgZ3Jh Y2VmdWxseS4KKwkJCQkgKiAyLiBJZiB0aGUgY2FzdCBleHByZXNzaW9uIGludm9sdmVzIG9ubHkg c2ltcGxlIGNvbnN0YW50cywgd2UKKwkJCQkgKiAgICBjYW4gc2FmZWx5IGV2YWx1YXRlIGl0IGFo ZWFkIG9mIHRpbWUuIElmIHRoZSBldmFsdWF0aW9uCisJCQkJICogICAgZmFpbHMsIGl0IGluZGlj YXRlcyB0aGF0IHN1Y2ggYSBjYXN0IGlzIG5vdCBwb3NzaWJsZSwgYW5kCisJCQkJICogICAgd2Ug Y2FuIHRoZW4gZmFsbCBiYWNrIHRvIHRoZSBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbi4KKwkJCQkg Ki8KKwkJCQlGdW5jRXhwciAqbmV3ZXhwciA9IChGdW5jRXhwciAqKSBjb3B5T2JqZWN0KGNhc3Rf ZXhwcik7CisKKwkJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgKE5vZGUgKikgbmV3 ZXhwcik7CisKKwkJCQljYXN0X2V4cHIgPSAoTm9kZSAqKSBldmFsdWF0ZV9leHByX3NhZmUoKEV4 cHIgKikgbmV3ZXhwciwKKwkJCQkJCQkJCQkJCQkJdGFyZ2V0VHlwZSwKKwkJCQkJCQkJCQkJCQkJ dGFyZ2V0VHlwbW9kLAorCQkJCQkJCQkJCQkJCQl0eXBlQ29sbCk7CisJCQl9CisJCX0KKworCQkv KgorCQkgKiBzZXQgY2FzdF9leHByIGJhY2sgYXMgaXMsIGNhc3RfZXhwciBjYW4gYmUgTlVMTCBh ZnRlcgorCQkgKiBldmFsdWF0ZV9leHByX3NhZmUKKwkJICovCisJCWlmIChjYXN0X2V4cHIgIT0g TlVMTCkKKwkJCWNhc3RfZXhwciA9IG9yaWdleHByOworCX0KKworCUFzc2VydChjYW5fY29lcmNl IHx8IGNhc3RfZXhwciA9PSBOVUxMKTsKKworCXJlc3VsdCA9IG1ha2VOb2RlKFNhZmVUeXBlQ2Fz dEV4cHIpOworCXJlc3VsdC0+c291cmNlX2V4cHIgPSBzb3VyY2VfZXhwcjsKKwlyZXN1bHQtPmNh c3RfZXhwciA9IGNhc3RfZXhwcjsKKwlyZXN1bHQtPmRlZmF1bHRfZXhwciA9IGRlZl9leHByOwor CXJlc3VsdC0+cmVzdWx0dHlwZSA9IHRhcmdldFR5cGU7CisJcmVzdWx0LT5yZXN1bHR0eXBtb2Qg PSB0YXJnZXRUeXBtb2Q7CisJcmVzdWx0LT5yZXN1bHRjb2xsaWQgPSB0eXBlQ29sbDsKKworCXJl dHVybiAoTm9kZSAqKSByZXN1bHQ7Cit9CisKIC8qCiAgKiBIYW5kbGUgYW4gZXhwbGljaXQgQ09M TEFURSBjbGF1c2UuCiAgKgpAQCAtMzE5Myw2ICszNTU4LDggQEAgUGFyc2VFeHByS2luZE5hbWUo UGFyc2VFeHByS2luZCBleHByS2luZCkKIAkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlO VDoKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgogCQkJcmV0dXJuICJDSEVDSyI7CisJ CWNhc2UgRVhQUl9LSU5EX0NBU1RfREVGQVVMVDoKKwkJCXJldHVybiAiQ0FTVCBERUZBVUxUIjsK IAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNU SU9OX0RFRkFVTFQ6CiAJCQlyZXR1cm4gIkRFRkFVTFQiOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMK aW5kZXggNzc4ZDY5YzZmM2MuLmE5MDcwNWI5ODQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMK QEAgLTI3NDMsNiArMjc0Myw5IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCWNhc2UgRVhQUl9LSU5E X0RPTUFJTl9DSEVDSzoKIAkJCWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBu b3QgYWxsb3dlZCBpbiBjaGVjayBjb25zdHJhaW50cyIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQ Ul9LSU5EX0NBU1RfREVGQVVMVDoKKwkJCWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25z IGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKKwkJCWJyZWFr OwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVO Q1RJT05fREVGQVVMVDoKIAkJCWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBu b3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFy Z2V0LmMKaW5kZXggOTA1Yzk3NWQ4M2IuLmQ2N2U1ZjhhNWI3IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3RhcmdldC5jCkBAIC0xODIyLDYgKzE4MjIsMjAgQEAgRmlndXJlQ29sbmFtZUludGVybmFsKE5v ZGUgKm5vZGUsIGNoYXIgKipuYW1lKQogCQkJCX0KIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRf U2FmZVR5cGVDYXN0OgorCQkJc3RyZW5ndGggPSBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoKChTYWZl VHlwZUNhc3QgKikgbm9kZSktPmNhc3QsCisJCQkJCQkJCQkJCSBuYW1lKTsKKwkJCWlmIChzdHJl bmd0aCA8PSAxKQorCQkJeworCQkJCVR5cGVDYXN0ICpub2RlX2Nhc3Q7CisJCQkJbm9kZV9jYXN0 ID0gKFR5cGVDYXN0ICopKChTYWZlVHlwZUNhc3QgKikgbm9kZSktPmNhc3Q7CisJCQkJaWYgKG5v ZGVfY2FzdC0+dHlwZU5hbWUgIT0gTlVMTCkKKwkJCQl7CisJCQkJCSpuYW1lID0gc3RyVmFsKGxs YXN0KG5vZGVfY2FzdC0+dHlwZU5hbWUtPm5hbWVzKSk7CisJCQkJCXJldHVybiAxOworCQkJCX0K KwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfQ29sbGF0ZUNsYXVzZToKIAkJCXJldHVybiBGaWd1 cmVDb2xuYW1lSW50ZXJuYWwoKChDb2xsYXRlQ2xhdXNlICopIG5vZGUpLT5hcmcsIG5hbWUpOwog CQljYXNlIFRfR3JvdXBpbmdGdW5jOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2FycmF5ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKaW5kZXgg YTg5NTFmNTViOTMuLjMxY2IzNmE1NmU2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvYXJyYXlmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMK QEAgLTMyODksNiArMzI4OSwxOSBAQCBhcnJheV9tYXAoRGF0dW0gYXJyYXlkLAogCQkvKiBBcHBs eSB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiB0byBzb3VyY2UgZWxlbWVudCAqLwogCQl2YWx1ZXNbaV0g PSBFeGVjRXZhbEV4cHIoZXhwcnN0YXRlLCBlY29udGV4dCwgJm51bGxzW2ldKTsKIAorCQlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChleHByc3RhdGUtPmVzY29udGV4dCkpCisJCXsKKwkJCXBmcmVl KHZhbHVlcyk7CisJCQlwZnJlZShudWxscyk7CisJCQlyZXR1cm4gKERhdHVtKSAwOworCQl9CisK KwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXhwcnN0YXRlLT5lc2NvbnRleHQpKQorCQl7CisJ CQlwZnJlZSh2YWx1ZXMpOworCQkJcGZyZWUobnVsbHMpOworCQkJcmV0dXJuIChEYXR1bSkgMDsK KwkJfQogCQlpZiAobnVsbHNbaV0pCiAJCQloYXNudWxscyA9IHRydWU7CiAJCWVsc2UKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCAwNTBlZWY5N2E0Yy4uNDI3OGU0NGI0YTkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTEwNTU4LDYgKzEwNTU4LDIyIEBAIGdldF9ydWxl X2V4cHIoTm9kZSAqbm9kZSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0LAogCQkJfQogCQkJYnJl YWs7CiAKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0 RXhwciAgICpzdGNleHByID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0RXhwciwgbm9kZSk7CisKKwkJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIkNBU1QoIik7CisJCQkJZ2V0X3J1bGVfZXhw cihzdGNleHByLT5zb3VyY2VfZXhwciwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKKworCQkJCWFw cGVuZFN0cmluZ0luZm8oYnVmLCAiIEFTICVzICIsCisJCQkJCQkJCSBmb3JtYXRfdHlwZV93aXRo X3R5cGVtb2Qoc3RjZXhwci0+cmVzdWx0dHlwZSwKKwkJCQkJCQkJCQkJCQkJICBzdGNleHByLT5y ZXN1bHR0eXBtb2QpKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiREVGQVVM VCAiKTsKKwkJCQlnZXRfcnVsZV9leHByKHN0Y2V4cHItPmRlZmF1bHRfZXhwciwgY29udGV4dCwg c2hvd2ltcGxpY2l0KTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBPTiBDT05W RVJTSU9OIEVSUk9SKSIpOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Kc29uRXhwcjoKIAkJ CXsKIAkJCQlKc29uRXhwciAgICpqZXhwciA9IChKc29uRXhwciAqKSBub2RlOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY2FzdC5kYXQKaW5kZXggZmJmZDY2OTU4N2YuLjFlZjU5YTk4MmFmIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY2FzdC5kYXQKQEAgLTE5LDY1ICsxOSw2NSBAQAogIyBpbnQyLT5pbnQ0LT5pbnQ4LT5udW1l cmljLT5mbG9hdDQtPmZsb2F0OCwgd2hpbGUgY2FzdHMgaW4gdGhlCiAjIHJldmVyc2UgZGlyZWN0 aW9uIGFyZSBhc3NpZ25tZW50LW9ubHkuCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFy Z2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoaW50OCknLAotICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ4JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGludDgpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdm bG9hdDQoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4 JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0 dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVyaWMoaW50OCknLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGlu dDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVu YyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdm bG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50Mics IGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9hdDgoaW50MiknLAotICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ICdu dW1lcmljKGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgn LCBjYXN0ZnVuYyA9PiAnaW50OChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFy Z2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoaW50NCknLAotICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ0JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChpbnQ0KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9 PiAnZmxvYXQ4KGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ251 bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0 NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChmbG9hdDQpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdp bnQyKGZsb2F0NCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0 JywgY2FzdGZ1bmMgPT4gJ2ludDQoZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNh c3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9hdDgoZmxvYXQ0KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLAotICBjYXN0ZnVuYyA9 PiAnbnVtZXJpYyhmbG9hdDQpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDQpJywgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChm bG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNh c3RmdW5jID0+ICdpbnQyKGZsb2F0OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoZmxv YXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLAot ICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDgpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDgpJywgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1 bmMgPT4gJ2ludDgobnVtZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdl dCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKG51bWVyaWMpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn bnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChudW1lcmlj KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLAotICBj YXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVyaWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVyaWMpJywgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLAotICBjYXN0 ZnVuYyA9PiAnZmxvYXQ4KG51bWVyaWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZmxvYXQ4KG51bWVyaWMpJywgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ21vbmV5JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ ICdudW1lcmljKG1vbmV5KScsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ21vbmV5Jywg Y2FzdGZ1bmMgPT4gJ21vbmV5KG51bWVyaWMpJywKQEAgLTg5LDEzICs4OSwxMyBAQAogCiAjIEFs bG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGludDQgYW5kIGJvb2wKIHsgY2FzdHNvdXJj ZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2Jvb2wnLCBjYXN0ZnVuYyA9PiAnYm9vbChpbnQ0 KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMg PT4gJ2ludDQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIHhpZDgg YW5kIHhpZAogeyBjYXN0c291cmNlID0+ICd4aWQ4JywgY2FzdHRhcmdldCA9PiAneGlkJywgY2Fz dGZ1bmMgPT4gJ3hpZCh4aWQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgT0lEIGNhdGVnb3J5OiBhbGxvdyBpbXBsaWNpdCBjb252 ZXJzaW9uIGZyb20gYW55IGludGVncmFsIHR5cGUgKGluY2x1ZGluZwogIyBpbnQ4LCB0byBzdXBw b3J0IE9JRCBsaXRlcmFscyA+IDJHKSB0byBPSUQsIGFzIHdlbGwgYXMgYXNzaWdubWVudCBjb2Vy Y2lvbgpAQCAtMTA2LDEzICsxMDYsMTMgQEAKICMgY2FzdHMgZnJvbSB0ZXh0IGFuZCB2YXJjaGFy IHRvIHJlZ2NsYXNzLCB3aGljaCBleGlzdCBtYWlubHkgdG8gc3VwcG9ydAogIyBsZWdhY3kgZm9y bXMgb2YgbmV4dHZhbCgpIGFuZCByZWxhdGVkIGZ1bmN0aW9ucy4KIHsgY2FzdHNvdXJjZSA9PiAn aW50OCcsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50Mikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChv aWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4g JzAnLApAQCAtMTIwLDEzICsxMjAsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNh c3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdl dCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywg Y2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChv aWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0 ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwK IHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScs IGNhc3RmdW5jID0+ICcwJywKQEAgLTEzOCwxMyArMTM4LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4g J3JlZ3Byb2NlZHVyZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVncHJvY2VkdXJlJywgY2FzdGZ1bmMgPT4gJ29pZCcs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0 ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvY2VkdXJlJywgY2Fz dHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXInLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0x NTIsMTMgKzE1MiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9 PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdv cGVyJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0 ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ0JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdv cGVyJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9 PiAnMCcsCkBAIC0xNzAsMTMgKzE3MCwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyYXRv cicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2Fz dHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdGZ1bmMgPT4gJ2ludDQo aW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3In LCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn YicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcmF0b3InLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4 JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXJhdG9yJywg Y2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFy Z2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICcwJywKQEAgLTE4NCwxMyArMTg0LDEzIEBA CiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5j ID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3Mn LCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFy Z2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjbGFzcycsIGNhc3R0 YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn cmVnY2xhc3MnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29p ZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ICcwJywKQEAgLTE5 OCwxMyArMTk4LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3R0YXJn ZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAn cmVnY29sbGF0aW9uJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAncmVnY29sbGF0aW9uJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3Rm dW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4g J3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yMTIsMTMgKzIxMiwxMyBAQAogeyBjYXN0 c291cmNlID0+ICdyZWd0eXBlJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJ29pZCcs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMg PT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVn dHlwZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWd0eXBlJywgY2FzdHRhcmdldCA9PiAnaW50 OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWd0eXBlJywgY2Fz dHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0 ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yMjYsMTMgKzIyNiwxMyBAQAog eyBjYXN0c291cmNlID0+ICdyZWdjb25maWcnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbmZpZycsIGNhc3RmdW5j ID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnY29uZmln JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRh cmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbmZpZycsIGNh c3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAncmVnY29uZmlnJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJzAnLApA QCAtMjQwLDMxICsyNDAsMzEgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGljdGlvbmFyeScsIGNh c3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdl dCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQyJywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3RmdW5jID0+ICdpbnQ0KGlu dDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnkn LCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn YicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ2lu dDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGljdGlvbmFy eScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJ3JlZ2NsYXNzJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJ3Jl Z2NsYXNzJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMg PT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdyb2xlJywg Y2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdl dCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdyb2xlJywgY2FzdHRhcmdl dCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdy b2xlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBj YXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yNzIsMTMg KzI3MiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0dGFyZ2V0ID0+ ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ25h bWVzcGFjZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRh cmdldCA9PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9 PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnbmFtZXNwYWNlJywgY2FzdHRhcmdldCA9 PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdk YXRhYmFzZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTI4NiwxMyArMjg2LDEzIEBACiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnZGF0YWJhc2Un LCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFy Z2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdkYXRhYmFzZScs IGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiAKQEAgLTMwMiw1 NyArMzAyLDU3IEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ICd2YXJj aGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3RleHQn LCBjYXN0ZnVuYyA9PiAndGV4dChicGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2Fz dHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGJwY2hhciknLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICcwJywK ICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNl ID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoY2hhcikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMg PT4gJ2JwY2hhcihjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICd2 YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICduYW1lJywg Y2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KG5hbWUpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnbmFtZScsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICdicGNoYXIo bmFtZSknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNh c3RmdW5jID0+ICd2YXJjaGFyKG5hbWUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJn ZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcih0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jw Y2hhcicsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcih0ZXh0KScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICdjaGFyJywgY2FzdGZ1bmMgPT4g J2NoYXIodGV4dCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAnbmFtZScs IGNhc3RmdW5jID0+ICduYW1lKHRleHQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRh cmdldCA9PiAnbmFtZScsIGNhc3RmdW5jID0+ICduYW1lKGJwY2hhciknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3RmdW5jID0+ICduYW1lKHZhcmNo YXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIAogIyBBbGxvdyBleHBsaWNpdCBjb2VyY2lvbnMgYmV0d2VlbiBieXRlYSBhbmQgaW50ZWdl ciB0eXBlcwogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBj YXN0ZnVuYyA9PiAnYnl0ZWEoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdl dCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEoaW50NCknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ4JywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEoaW50OCknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAn aW50MihieXRlYSknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDQn LCBjYXN0ZnVuYyA9PiAnaW50NChieXRlYSknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0 YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChieXRlYSknLAotICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEFsbG93IGV4cGxp Y2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGludDQgYW5kICJjaGFyIgogeyBjYXN0c291cmNlID0+ICdj aGFyJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGNoYXIpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hh cihpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiAKICMgcGdfbm9kZV90cmVlIGNhbiBiZSBjb2VyY2VkIHRvLCBidXQgbm90IGZyb20s IHRleHQKIHsgY2FzdHNvdXJjZSA9PiAncGdfbm9kZV90cmVlJywgY2FzdHRhcmdldCA9PiAndGV4 dCcsIGNhc3RmdW5jID0+ICcwJywKQEAgLTM3OCw3MyArMzc4LDczIEBACiAKICMgRGF0ZXRpbWUg Y2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnZGF0ZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFt cCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAoZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAoZGF0ZSknLCBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZGF0ZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6 JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KGRhdGUpJywgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHooZGF0ZSkn LCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZScsIGNhc3R0YXJnZXQgPT4gJ2ludGVydmFs JywgY2FzdGZ1bmMgPT4gJ2ludGVydmFsKHRpbWUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZScsIGNh c3R0YXJnZXQgPT4gJ3RpbWV0eicsIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZSknLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICdkYXRlJywKLSAgY2FzdGZ1bmMgPT4g J2RhdGUodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lJywKLSAgY2FzdGZ1bmMgPT4gJ3Rp bWUodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXB0eicsCi0gIGNhc3RmdW5jID0+ ICd0aW1lc3RhbXB0eih0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHoodGltZXN0YW1wKScsIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ2RhdGUnLAot ICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdkYXRlKHRpbWVzdGFtcHR6KScsIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWUn LAotICBjYXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lKHRpbWVzdGFtcHR6KScs IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3Rp bWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAodGltZXN0YW1wdHopJywgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXN0 YW1wKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eics IGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsCi0gIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXN0YW1w dHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVu YyA9PiAndGltZXR6KHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnRl cnZhbCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAndGltZShpbnRlcnZhbCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd0aW1ldHonLCBjYXN0dGFyZ2V0ID0+ICd0aW1lJywgY2FzdGZ1bmMg PT4gJ3RpbWUodGltZXR6KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiAKICMgR2VvbWV0cmljIGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4g J3BvaW50JywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4gJ2JveChwb2ludCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2xzZWcnLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdw b2ludChsc2VnKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncGF0aCcsIGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24n LCBjYXN0ZnVuYyA9PiAncG9seWdvbihwYXRoKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm94JywgY2FzdHRh cmdldCA9PiAncG9pbnQnLCBjYXN0ZnVuYyA9PiAncG9pbnQoYm94KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn Ym94JywgY2FzdHRhcmdldCA9PiAnbHNlZycsIGNhc3RmdW5jID0+ICdsc2VnKGJveCknLAotICBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLCBjYXN0ZnVuYyA9PiAncG9s eWdvbihib3gpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gnLCBjYXN0dGFyZ2V0ID0+ICdjaXJjbGUnLCBj YXN0ZnVuYyA9PiAnY2lyY2xlKGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3BvbHlnb24nLCBjYXN0dGFy Z2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChwb2x5Z29uKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ3BhdGgnLCBjYXN0ZnVuYyA9PiAncGF0aCcsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ2JveCcsIGNhc3RmdW5jID0+ICdi b3gocG9seWdvbiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3BvbHlnb24nLCBjYXN0dGFyZ2V0ID0+ICdjaXJj bGUnLAotICBjYXN0ZnVuYyA9PiAnY2lyY2xlKHBvbHlnb24pJywgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnY2lyY2xlKHBvbHlnb24pJywg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2lyY2xlJywgY2FzdHRhcmdldCA9PiAncG9pbnQnLCBj YXN0ZnVuYyA9PiAncG9pbnQoY2lyY2xlKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2lyY2xlJywgY2FzdHRh cmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4gJ2JveChjaXJjbGUpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdj aXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdwb2x5Z29uJywKLSAgY2FzdGZ1bmMgPT4gJ3BvbHlnb24o Y2lyY2xlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGZ1bmMgPT4gJ3BvbHlnb24oY2lyY2xlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgTUFDIGFkZHJlc3MgY2F0ZWdv cnkKIHsgY2FzdHNvdXJjZSA9PiAnbWFjYWRkcicsIGNhc3R0YXJnZXQgPT4gJ21hY2FkZHI4Jywg Y2FzdGZ1bmMgPT4gJ21hY2FkZHI4JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbWFjYWRkcjgnLCBjYXN0dGFy Z2V0ID0+ICdtYWNhZGRyJywgY2FzdGZ1bmMgPT4gJ21hY2FkZHInLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIElORVQgY2F0ZWdvcnkK IHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNhc3R0YXJnZXQgPT4gJ2luZXQnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4gJ2NpZHInLCBjYXN0ZnVuYyA9PiAnY2lk cicsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiAKICMgQml0U3RyaW5nIGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJn ZXQgPT4gJ3ZhcmJpdCcsIGNhc3RmdW5jID0+ICcwJywKQEAgLTQ1NCwxMyArNDU0LDEzIEBACiAK ICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgYmV0d2VlbiBiaXQgYW5kIGludDQsIGludDgKIHsgY2Fz dHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQo aW50OCxpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBj YXN0ZnVuYyA9PiAnYml0KGludDQsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoYml0KScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jp dCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChiaXQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9z cy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJvbSBURVhUCiAjIFdlIG5lZWQgZW50cmllcyBoZXJl IG9ubHkgZm9yIGEgZmV3IHNwZWNpYWxpemVkIGNhc2VzIHdoZXJlIHRoZSBiZWhhdmlvcgpAQCAt NDcxLDY4ICs0NzEsNjggQEAKICMgYmVoYXZpb3Igd2lsbCBlbnN1ZSB3aGVuIHRoZSBhdXRvbWF0 aWMgY2FzdCBpcyBhcHBsaWVkIGluc3RlYWQgb2YgdGhlCiAjIHBnX2Nhc3QgZW50cnkhCiB7IGNh c3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3Rl eHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNh c3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQg PT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcs IGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0 YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3Rz IHRvIGFuZCBmcm9tIFZBUkNIQVIKICMgV2Ugc3VwcG9ydCBhbGwgdGhlIHNhbWUgY2FzdHMgYXMg Zm9yIFRFWFQuCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFy JywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbmV0JywgY2FzdHRh cmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29s KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIHRvIGFuZCBmcm9tIEJQQ0hBUgogIyBXZSBz dXBwb3J0IGFsbCB0aGUgc2FtZSBjYXN0cyBhcyBmb3IgVEVYVC4KIHsgY2FzdHNvdXJjZSA9PiAn Y2lkcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ2JwY2hh cicsIGNhc3RmdW5jID0+ICd0ZXh0KGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAneG1sJywgY2FzdHRh cmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJn ZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIExlbmd0aC1jb2VyY2lvbiBmdW5jdGlv bnMKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywKICAg Y2FzdGZ1bmMgPT4gJ2JwY2hhcihicGNoYXIsaW50NCxib29sKScsIGNhc3Rjb250ZXh0ID0+ICdp JywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9 PiAndmFyY2hhcicsCiAgIGNhc3RmdW5jID0+ICd2YXJjaGFyKHZhcmNoYXIsaW50NCxib29sKScs IGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1l JywgY2FzdHRhcmdldCA9PiAndGltZScsIGNhc3RmdW5jID0+ICd0aW1lKHRpbWUsaW50NCknLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXAnLAogICBj YXN0ZnVuYyA9PiAndGltZXN0YW1wKHRpbWVzdGFtcCxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdp JywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJn ZXQgPT4gJ3RpbWVzdGFtcHR6JywKICAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KHRpbWVzdGFt cHR6LGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludGVydmFsJywgY2FzdHRhcmdldCA9PiAnaW50ZXJ2YWwnLAogICBjYXN0ZnVuYyA9 PiAnaW50ZXJ2YWwoaW50ZXJ2YWwsaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXR6JywgY2FzdHRhcmdldCA9PiAndGltZXR6JywK LSAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1ldHosaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXR6LGludDQp JywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ2JpdCcsIGNh c3RmdW5jID0+ICdiaXQoYml0LGludDQsYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJiaXQnLCBj YXN0dGFyZ2V0ID0+ICd2YXJiaXQnLCBjYXN0ZnVuYyA9PiAndmFyYml0JywKLSAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVt ZXJpYyhudW1lcmljLGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhudW1lcmljLGludDQpJywgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMg anNvbiB0by9mcm9tIGpzb25iCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb24nLCBjYXN0dGFyZ2V0ID0+ ICdqc29uYicsIGNhc3RmdW5jID0+ICcwJywKQEAgLTU0MiwzNiArNTQyLDM2IEBACiAKICMganNv bmIgdG8gbnVtZXJpYyBhbmQgYm9vbCB0eXBlcwogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNh c3R0YXJnZXQgPT4gJ2Jvb2wnLCBjYXN0ZnVuYyA9PiAnYm9vbChqc29uYiknLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJp Yyhqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBj YXN0ZnVuYyA9PiAnaW50Mihqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJn ZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChqc29uYiknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdq c29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChqc29uYiknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ ICdmbG9hdDQoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdm bG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgcmFuZ2UgdG8gbXVsdGlyYW5n ZQogeyBjYXN0c291cmNlID0+ICdpbnQ0cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0bXVsdGly YW5nZScsCiAgIGNhc3RmdW5jID0+ICdpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UpJywgY2FzdGNv bnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDhyYW5nZScs IGNhc3R0YXJnZXQgPT4gJ2ludDhtdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ2ludDhtdWx0 aXJhbmdlKGludDhyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnbnVtcmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdudW1tdWx0aXJhbmdlJywK ICAgY2FzdGZ1bmMgPT4gJ251bW11bHRpcmFuZ2UobnVtcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4g J2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2RhdGVyYW5nZScsIGNhc3R0YXJn ZXQgPT4gJ2RhdGVtdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ2RhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndHNyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ3RzbXVsdGlyYW5nZScsCi0gIGNhc3RmdW5j ID0+ICd0c211bHRpcmFuZ2UodHNyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0c211bHRpcmFuZ2UodHNyYW5nZSknLCBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAndHN0enJhbmdlJywgY2FzdHRhcmdldCA9PiAndHN0em11bHRp cmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAndHN0em11bHRpcmFuZ2UodHN0enJhbmdlKScsIGNhc3Rj b250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19jYXN0LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaAppbmRleCA2 YTBjYTMzNzE1My4uMjE4ZDgxZDUzNWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY2FzdC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oCkBAIC00Nyw2ICs0 NywxMCBAQCBDQVRBTE9HKHBnX2Nhc3QsMjYwNSxDYXN0UmVsYXRpb25JZCkKIAogCS8qIGNhc3Qg bWV0aG9kICovCiAJY2hhcgkJY2FzdG1ldGhvZDsKKworCS8qIGNhc3QgZnVuY3Rpb24gZXJyb3Ig c2FmZSAqLworCWJvb2wJCWNhc3RlcnJvcnNhZmUgQktJX0RFRkFVTFQoZik7CisKIH0gRm9ybURh dGFfcGdfY2FzdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgK aW5kZXggNzUzNjYyMDM3MDYuLjM0YTg4NGUzMTk2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9l eGVjdXRvci9leGVjRXhwci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgK QEAgLTI2NSw2ICsyNjUsNyBAQCB0eXBlZGVmIGVudW0gRXhwckV2YWxPcAogCUVFT1BfWE1MRVhQ UiwKIAlFRU9QX0pTT05fQ09OU1RSVUNUT1IsCiAJRUVPUF9JU19KU09OLAorCUVFT1BfU0FGRVRZ UEVfQ0FTVCwKIAlFRU9QX0pTT05FWFBSX1BBVEgsCiAJRUVPUF9KU09ORVhQUl9DT0VSQ0lPTiwK IAlFRU9QX0pTT05FWFBSX0NPRVJDSU9OX0ZJTklTSCwKQEAgLTc1MCw2ICs3NTEsMTIgQEAgdHlw ZWRlZiBzdHJ1Y3QgRXhwckV2YWxTdGVwCiAJCQlKc29uSXNQcmVkaWNhdGUgKnByZWQ7CS8qIG9y aWdpbmFsIGV4cHJlc3Npb24gbm9kZSAqLwogCQl9CQkJaXNfanNvbjsKIAorCQkvKiBmb3IgRUVP UF9TQUZFVFlQRV9DQVNUICovCisJCXN0cnVjdAorCQl7CisJCQlzdHJ1Y3QgU2FmZVR5cGVDYXN0 U3RhdGUgKnN0Y3N0YXRlOwkvKiBvcmlnaW5hbCBleHByZXNzaW9uIG5vZGUgKi8KKwkJfQkJCXN0 Y2V4cHI7CisKIAkJLyogZm9yIEVFT1BfSlNPTkVYUFJfUEFUSCAqLwogCQlzdHJ1Y3QKIAkJewpA QCAtODkyLDYgKzg5OSw3IEBAIGV4dGVybiBpbnQJRXhlY0V2YWxKc29uRXhwclBhdGgoRXhwclN0 YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkJIEV4cHJDb250ZXh0ICplY29u dGV4dCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbEpzb25Db2VyY2lvbihFeHByU3RhdGUgKnN0YXRl LCBFeHByRXZhbFN0ZXAgKm9wLAogCQkJCQkJCQkgRXhwckNvbnRleHQgKmVjb250ZXh0KTsKK2V4 dGVybiBpbnQgRXhlY0V2YWxTYWZlVHlwZUNhc3QoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxT dGVwICpvcCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbEpzb25Db2VyY2lvbkZpbmlzaChFeHByU3Rh dGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsR3JvdXBp bmdGdW5jKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3ApOwogZXh0ZXJuIHZvaWQg RXhlY0V2YWxNZXJnZVN1cHBvcnRGdW5jKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAq b3AsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNs dWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IGEzNjY1M2MzN2Y5Li4wMTVjZDlmNDdlNyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvZXhlY25vZGVzLmgKQEAgLTEwNTMsNiArMTA1MywzNiBAQCB0eXBlZGVmIHN0cnVjdCBE b21haW5Db25zdHJhaW50U3RhdGUKIAlFeHByU3RhdGUgICpjaGVja19leHByc3RhdGU7CS8qIGNo ZWNrX2V4cHIncyBldmFsIHN0YXRlLCBvciBOVUxMICovCiB9IERvbWFpbkNvbnN0cmFpbnRTdGF0 ZTsKIAordHlwZWRlZiBzdHJ1Y3QgU2FmZVR5cGVDYXN0U3RhdGUKK3sKKwlTYWZlVHlwZUNhc3RF eHByICpzdGNleHByOworCisJLyogU2V0IHRvIHRydWUgaWYgdHlwZSBjYXN0IGNhdXNlIGFuIGVy cm9yLiAqLworCU51bGxhYmxlRGF0dW0gZXJyb3I7CisKKwkvKgorCSAqIEFkZHJlc3NlcyBvZiBz dGVwcyB0aGF0IGltcGxlbWVudCBERUZBVUxUIGV4cHIgT04gQ09OVkVSU0lPTiBFUlJPUiBmb3IK KwkgKiBzYWZlIHR5cGUgY2FzdC4KKwkgKi8KKwlpbnQgCQlqdW1wX2Vycm9yOworCisJLyoKKwkg KiBBZGRyZXNzIHRvIGp1bXAgdG8gd2hlbiBza2lwcGluZyBhbGwgdGhlIHN0ZXBzIHRvIGV2YXVs YXRlIHRoZSBkZWZhdWx0CisJICogZXhwcmVzc2lvbiBhZnRlciBwZXJmb3JtaW5nIEV4ZWNFdmFs U2FmZVR5cGVDYXN0KCkuCisJICovCisJaW50IAkJanVtcF9lbmQ7CisKKwkvKgorCSAqIEZvciBl cnJvci1zYWZlIGV2YWx1YXRpb24gb2YgY29lcmNpb25zLiAgV2hlbiBERUZBVUxUIGV4cHIgT04g Q09OVkVSU0lPTgorCSAqIE9OIEVSUk9SIGlzIHNwZWNpZmllZCwgYSBwb2ludGVyIHRvIHRoaXMg aXMgcGFzc2VkIHRvIEV4ZWNJbml0RXhwclJlYygpCisJICogd2hlbiBpbml0aWFsaXppbmcgdGhl IGNvZXJjaW9uIGV4cHJlc3Npb25zLCBzZWUgRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByLgorCSAq CisJICogUmVzZXQgZm9yIGVhY2ggZXZhbHVhdGlvbiBvZiBFRU9QX1NBRkVUWVBFX0NBU1QuCisJ ICovCisJRXJyb3JTYXZlQ29udGV4dCBlc2NvbnRleHQ7CisKK30gU2FmZVR5cGVDYXN0U3RhdGU7 CisKIC8qCiAgKiBTdGF0ZSBmb3IgSnNvbkV4cHIgZXZhbHVhdGlvbiwgdG9vIGJpZyB0byBpbmxp bmUuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGRjMDlkMWEzZjAzLi44MzU0OTE1MWJm YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDAwLDYgKzQwMCwxMiBAQCB0eXBlZGVmIHN0 cnVjdCBUeXBlQ2FzdAogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9y IC0xIGlmIHVua25vd24gKi8KIH0gVHlwZUNhc3Q7CiAKK3R5cGVkZWYgc3RydWN0IFNhZmVUeXBl Q2FzdAoreworCU5vZGVUYWcJCXR5cGU7CisJTm9kZQkJKmNhc3Q7CisJTm9kZQkgICAJKmRlZl9l eHByOwkJLyogZGVmYXVsdCBleHByICovCit9IFNhZmVUeXBlQ2FzdDsKIC8qCiAgKiBDb2xsYXRl Q2xhdXNlIC0gYSBDT0xMQVRFIGV4cHJlc3Npb24KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRl eCAxYjQ0MzZmMmZmNi4uNzBiNzJlZDJmNDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC03Njks NiArNzY5LDM5IEBAIHR5cGVkZWYgZW51bSBDb2VyY2lvbkZvcm0KIAlDT0VSQ0VfU1FMX1NZTlRB WCwJCQkvKiBkaXNwbGF5IHdpdGggU1FMLW1hbmRhdGVkIHNwZWNpYWwgc3ludGF4ICovCiB9IENv ZXJjaW9uRm9ybTsKIAorLyoKKyAqIFNhZmVUeXBlQ2FzdEV4cHIgLQorICoJCVRyYW5zZm9ybWVk IHJlcHJlc2VudGF0aW9uIG9mCisgKiBDQVNUKGV4cHIgQVMgdHlwZW5hbWUgREVGQVVMVCBleHBy MiBPTiBFUlJPUikKKyAqIENBU1QoZXhwciBBUyB0eXBlbmFtZSBOVUxMIE9OIEVSUk9SKQorICov Cit0eXBlZGVmIHN0cnVjdCBTYWZlVHlwZUNhc3RFeHByCit7CisJRXhwcgkJeHByOworCisJLyog dHJhbnNmb3JtZWQgZXhwcmVzc2lvbiBiZWluZyBjYXN0ZWQgKi8KKwlOb2RlCSAgICpzb3VyY2Vf ZXhwcjsKKworCS8qCisJICogVGhlIHRyYW5zZm9ybWVkIGNhc3QgZXhwcmVzc2lvbjsgSXQgd2ls bCBOVUxMIGlmIGNhbiBub3QgY2FzdCBzb3VyY2UgdHlwZQorCSAqIHRvIHRhcmdldCB0eXBlCisJ ICovCisJTm9kZQkgICAqY2FzdF9leHByIAlwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9y ZSk7CisKKwkvKiBGYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgZXhwcmVzc2lvbiBpZiBjYXN0IGV2 YWx1YXRpb24gZmFpbHMgKi8KKwlOb2RlCSAgICpkZWZhdWx0X2V4cHI7CisKKwkvKiBjYXN0IHJl c3VsdCBkYXRhIHR5cGUgKi8KKwlPaWQJCQlyZXN1bHR0eXBlOworCisJLyogY2FzdCByZXN1bHQg ZGF0YSB0eXBlIHR5cG1vZCAodXN1YWxseSAtMSkgKi8KKwlpbnQzMgkJcmVzdWx0dHlwbW9kOwor CisJLyogY2FzdCByZXN1bHQgZGF0YSB0eXBlIGNvbGxhdGlvbiAqLworCU9pZAkJCXJlc3VsdGNv bGxpZDsKKworfSBTYWZlVHlwZUNhc3RFeHByOworCiAvKgogICogRnVuY0V4cHIgLSBleHByZXNz aW9uIG5vZGUgZm9yIGEgZnVuY3Rpb24gY2FsbAogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmlu ZGV4IGY3ZDA3Yzg0NTQyLi45ZjViMzJlMDM2MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBA IC02Nyw2ICs2Nyw4IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5EX1ZB TFVFU19TSU5HTEUsCS8qIHNpbmdsZS1yb3cgVkFMVUVTIChpbiBJTlNFUlQgb25seSkgKi8KIAlF WFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVCwgLyogQ0hFQ0sgY29uc3RyYWludCBmb3IgYSB0YWJs ZSAqLwogCUVYUFJfS0lORF9ET01BSU5fQ0hFQ0ssCQkvKiBDSEVDSyBjb25zdHJhaW50IGZvciBh IGRvbWFpbiAqLworCUVYUFJfS0lORF9DQVNUX0RFRkFVTFQsCQkvKiBkZWZhdWx0IGV4cHJlc3Np b24gaW4KKwkJCQkJCQkJICAgQ0FTVCBERUZBVUxUIE9OIENPTlZFUlNJT04gRVJST1IgKi8KIAlF WFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQsCS8qIGRlZmF1bHQgdmFsdWUgZm9yIGEgdGFibGUgY29s dW1uICovCiAJRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQsIC8qIGRlZmF1bHQgcGFyYW1ldGVy IHZhbHVlIGZvciBmdW5jdGlvbiAqLwogCUVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OLCAvKiBp bmRleCBleHByZXNzaW9uICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2Nhc3Qub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjYxNGJhMzM3MGMKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0CkBAIC0wLDAgKzEsNjgxIEBA CitTRVQgZXh0cmFfZmxvYXRfZGlnaXRzID0gMDsKKy0tIENBU1QgREVGQVVMVCBPTiBDT05WRVJT SU9OIEVSUk9SCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZF UlNJT04gRVJST1IpKTsgLS1lcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3Ig dHlwZSBpbnRlZ2VyOiAiZXJyb3IiCitMSU5FIDE6IFZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGlu dGVnZXIgRVJST1IgT04gQ09OVkVSU0lPTiBFUlJPUikpOworICAgICAgICAgICAgICAgICAgICAg XgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgICAgICAgIAorKDEgcm93KQorCitWQUxVRVMg KENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUikp OworIGNvbHVtbjEgCistLS0tLS0tLS0KKyAgICAgIDQyCisoMSByb3cpCisKK1NFTEVDVCBDQVNU KDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0t LS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxOjpudW1lcmljIEFTIG1vbmV5IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBu dW1lcmljIHRvIG1vbmV5IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBD QVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKDE6Om51bWVy aWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAg ICAgICAgICBeCitISU5UOiAgQ3VycmVudGx5IENBU1QgLi4uIERFRkFVTFQgT04gQ09OVkVSU0lP TiBFUlJPUiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgY2FzdAorU0VMRUNUIENBU1QoMTExMSBBUyAi Y2hhciIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNoYXIgCistLS0tLS0K KyAKKygxIHJvdykKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcmV0X2ludDgoKSBSRVRV Uk5TIGJpZ2ludCBBUworJCQKK0JFR0lOIFJFVFVSTiAyMTQ3NDgzNjQ4OyBFTkQ7CiskJAorTEFO R1VBR0UgcGxwZ3NxbCBJTU1VVEFCTEU7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQg cmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBpbnRlZ2Vy IG91dCBvZiByYW5nZQorU0VMRUNUIENBU1QoJ2EnIGFzIGRhdGUgREVGQVVMVCByZXRfaW50OCgp IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGNhbm5vdCBjb2VyY2UgQ0FT VCBERUZBVUxUIGV4cHJlc3Npb24gdG8gdHlwZSBkYXRlCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdh JyBhcyBkYXRlIERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUi4uLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIHRlc3QgYXJyYXkgY29lcmNl CitTRUxFQ1QgQ0FTVChhcnJheVsxMS4xMl0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIHsxMX0KKygxIHJvdykKKworU0VMRUNU IENBU1QoYXJyYXlbMTEuMTJdIEFTIGRhdGVbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKGFycmF5 WzExMTExMTExMTExMTExMTExXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKGFycmF5 W1snYWJjJ10sWzQ1Nl1dIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ3sxMjMsYWJj LDQ1Nn0nIEFTIGludGVnZXJbXSBERUZBVUxUICd7LTc4OX0nIE9OIENPTlZFUlNJT04gRVJST1Ip OworICBpbnQ0ICAKKy0tLS0tLS0tCisgey03ODl9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCd7 MjM0LGRlZiw1Njd9Jzo6dGV4dFtdIEFTIGludGVnZXJbXSBERUZBVUxUICd7LTEwMTF9JyBPTiBD T05WRVJTSU9OIEVSUk9SKTsKKyAgaW50NCAgIAorLS0tLS0tLS0tCisgey0xMDExfQorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBJTlRFR0VS W10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0t LQorIHsxLDJ9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhy ZWUnLCAnYSddXSBBUyB0ZXh0W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgICAgICAgYXJyYXkgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisge3sxLDJ9LHt0 aHJlZSxhfX0KKygxIHJvdykKKworLS0gdGVzdCB2YWxpZCBERUZBVUxUIGV4cHJlc3Npb24gZm9y IENBU1QgPSBPTiBDT05WRVJTSU9OIEVSUk9SCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBy ZXRfc2V0aW50KCkgUkVUVVJOUyBTRVRPRiBpbnRlZ2VyIEFTCiskJAorQkVHSU4gUkVUVVJOIFFV RVJZIEVYRUNVVEUgJ3NlbGVjdCAxIHVuaW9uIGFsbCBzZWxlY3QgMSc7IEVORDsKKyQkCitMQU5H VUFHRSBwbHBnc3FsIElNTVVUQUJMRTsKK0NSRUFURSBUQUJMRSB0Y2FzdChhIHRleHRbXSwgYiBp bnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgSURFTlRJVFksIGMgdGV4dCBkZWZhdWx0ICcxJyk7 CitJTlNFUlQgSU5UTyB0Y2FzdCBWQUxVRVMgKCd7MTJ9JyksICgnezEsYSwgYn0nKSwgKCd7ezEs Mn0sIHtjLGR9fScpLCAoJ3sxM30nKTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBy ZXRfc2V0aW50KCkgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdDsgLS1lcnJvcgorRVJS T1I6ICBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZB VUxUIGV4cHJlc3Npb25zCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBy ZXRfc2V0aW50KCkgT04gQ09OVkVSU0lPTiBFUi4uLgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBP TiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBhZ2dyZWdhdGUgZnVuY3Rpb25z IGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMKK0xJTkUgMTogU0VM RUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdh JyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3ZlcigpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVy cm9yCitFUlJPUjogIHdpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVG QVVMVCBleHByZXNzaW9ucworTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQg c3VtKDEpIG92ZXIoKSBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAnYicgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXgg Zm9yIHR5cGUgaW50ZWdlcjogImIiCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVG QVVMVCAnYicgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVCh0IEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjIs ICcgfHwgYiB8fCAnfScgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0OworICAg ICB0ICAgICAKKy0tLS0tLS0tLS0tCisgezIxLDIyLDF9CisgezIxLDIyLDJ9CisgezIxLDIyLDN9 CisgezIxLDIyLDR9CisoNCByb3dzKQorCitTRUxFQ1QgQ0FTVCh0LmEgQVMgaW50W10gREVGQVVM VCAnezIxLDIyfSc6OmludFtdIHx8IGIgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBh cyB0OworICAgICBhICAgICAKKy0tLS0tLS0tLS0tCisgezEyfQorIHsyMSwyMiwyfQorIHsyMSwy MiwzfQorIHsxM30KKyg0IHJvd3MpCisKKy0tIHRlc3Qgd2l0aCBkb21haW4KK0NSRUFURSBET01B SU4gZF9pbnQ0MiBhcyBpbnQgY2hlY2sgKHZhbHVlID0gNDIpIE5PVCBOVUxMOworQ1JFQVRFIERP TUFJTiBkX2NoYXIzX25vdF9udWxsIGFzIGNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlO IGRfdmFyY2hhciBhcyB2YXJjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIFRZUEUgY29tcF9kb21h aW5fd2l0aF90eXBtb2QgQVMgKGEgZF9jaGFyM19ub3RfbnVsbCwgYiBpbnQpOworQ1JFQVRFIFRZ UEUgY29tcDIgQVMgKGEgZF92YXJjaGFyKTsKK1NFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAy IERFRkFVTFQgJygxMjMyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAg dmFsdWUgdG9vIGxvbmcgZm9yIHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoMykKK0xJTkUgMTogU0VM RUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMzIpJyBPTiBDT05WRVJTSU9O Li4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VM RUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMyknIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLW9rCisgY29tcDIgCistLS0tLS0tCisgKDEyMykKKygxIHJvdykKKworU0VMRUNU IENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQxIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVy cm9yCitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gZF9pbnQ0MiB2aW9sYXRlcyBjaGVjayBjb25z dHJhaW50ICJkX2ludDQyX2NoZWNrIgorU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxU IDQyIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCisgZF9pbnQ0MiAKKy0tLS0tLS0tLQorICAg ICAgNDIKKygxIHJvdykKKworU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBkb21haW4gZF9pbnQ0MiBk b2VzIG5vdCBhbGxvdyBudWxsIHZhbHVlcworU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERF RkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tb2sKKyBkX2ludDQyIAorLS0tLS0tLS0t CisgICAgICA0MgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKCw0MiknIEFTIGNvbXBfZG9tYWlu X3dpdGhfdHlwbW9kIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjb21wX2Rv bWFpbl93aXRoX3R5cG1vZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykK KworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVG QVVMVCAnKDEsMiknIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNvbXBfZG9tYWluX3dpdGhfdHlw bW9kIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgiMSAgIiwyKQorKDEgcm93KQorCitT RUxFQ1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxU ICcoMTIzNCwyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgdmFsdWUg dG9vIGxvbmcgZm9yIHR5cGUgY2hhcmFjdGVyKDMpCitMSU5FIDE6IC4uLlNUKCcoTlVMTCw0Mikn IEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIpJy4uLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K Ky0tLS0tc2FmZSBjYXN0IHdpdGggZ2VvbWV0cnkgZGF0YSB0eXBlCitTRUxFQ1QgQ0FTVCgnKDEs MiknOjpwb2ludCBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAg ICBib3ggICAgIAorLS0tLS0tLS0tLS0tLQorICgxLDIpLCgxLDIpCisoMSByb3cpCisKK1NFTEVD VCBDQVNUKCdbKE5hTiwxKSwoTmFOLGluZmluaXR5KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgcG9pbnQgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0KKyAoTmFOLEluZmluaXR5KQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWygxZSszMDAs SW5maW5pdHkpLCgxZSszMDAsSW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgIHBvaW50ICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLQorICgxZSszMDAsSW5maW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKDEs MiksKDMsNCldJzo6cGF0aCBhcyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBwb2x5Z29uIAorLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCco TmFOLDEuMCxOYU4saW5maW5pdHkpJzo6Ym94IEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyAgICAgcG9pbnQgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAoTmFO LEluZmluaXR5KQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpi b3ggQVMgbHNlZyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGxzZWcg ICAgICAKKy0tLS0tLS0tLS0tLS0tLQorIFsoMiwyKSwoMCwwKV0KKygxIHJvdykKKworU0VMRUNU IENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIHBvbHlnb24gREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworICAgICAgICAgIHBvbHlnb24gICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoKDAsMCksKDAsMiksKDIsMiksKDIsMCkpCisoMSByb3cp CisKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBwYXRoIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBwYXRoIAorLS0tLS0tCisgCisoMSByb3cpCisK K1NFTEVDVCBDQVNUKCcoMi4wLGluZmluaXR5LE5hTixpbmZpbml0eSknOjpib3ggQVMgY2lyY2xl IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgY2lyY2xlICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8KE5hTixJbmZpbml0eSksTmFOPgorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnKE5hTiwwLjApLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBv bHlnb24gQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBw b2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIChOYU4sSW5maW5pdHkpCisoMSByb3cpCisK K1NFTEVDVCBDQVNUKCcoMi4wLDAuMCksKDIuMCw0LjApLCgwLjAsMC4wKSc6OnBvbHlnb24gQVMg cGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgIHBhdGggICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgoMiwwKSwoMiw0KSwoMCwwKSkKKygxIHJv dykKKworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4wLDQuMCksKDAuMCwwLjApJzo6cG9seWdv biBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBib3ggICAg IAorLS0tLS0tLS0tLS0tLQorICgyLDQpLCgwLDApCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCco TmFOLGluZmluaXR5KSwoMi4wLDQuMCksKDAuMCxpbmZpbml0eSknOjpwb2x5Z29uIEFTIGNpcmNs ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgIGNpcmNsZSAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgPChOYU4sSW5maW5pdHkpLE5hTj4KKygxIHJv dykKKworU0VMRUNUIENBU1QoJzwoNSwxKSwzPic6OmNpcmNsZSBBUyBwb2ludCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgcG9pbnQgCistLS0tLS0tCisgKDUsMSkKKygxIHJv dykKKworU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBib3ggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBib3ggICAgIAorLS0tLS0tLS0tLS0tLQorICgz LDUpLCgzLDUpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMg cG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5v dCBjb252ZXJ0IGNpcmNsZSB3aXRoIHJhZGl1cyB6ZXJvIHRvIHBvbHlnb24KK0NPTlRFWFQ6ICBT UUwgZnVuY3Rpb24gInBvbHlnb24iIHN0YXRlbWVudCAxCistLS0tLXNhZmUgY2FzdCBmcm9tL3Rv IG1vbmV5IHR5cGUgaXMgbm90IHN1cHBvcnRlZCwgYWxsIHRoZSBmb2xsb3dpbmcgd291bGQgcmVz dWx0IGVycm9yCitTRUxFQ1QgQ0FTVChOVUxMOjppbnQ4IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBiaWdpbnQgdG8g bW9uZXkgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9O IENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6aW50OCBBUyBtb25l eSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgIF4K K0hJTlQ6ICBDdXJyZW50bHkgQ0FTVCAuLi4gREVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SIGRv ZXMgbm90IHN1cHBvcnQgdGhpcyBjYXN0CitTRUxFQ1QgQ0FTVChOVUxMOjppbnQ0IEFTIG1vbmV5 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3Qg dHlwZSBpbnRlZ2VyIHRvIG1vbmV5IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmll ZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5V TEw6OmludDQgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAg ICAgICAgICAgICAgICBeCitISU5UOiAgQ3VycmVudGx5IENBU1QgLi4uIERFRkFVTFQgT04gQ09O VkVSU0lPTiBFUlJPUiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgY2FzdAorU0VMRUNUIENBU1QoTlVM TDo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitF UlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgbnVtZXJpYyB0byBtb25leSB3aGVuIERFRkFVTFQgZXhw cmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElO RSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU8uLi4KKyAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIEN1cnJlbnRseSBDQVNU IC4uLiBERUZBVUxUIE9OIENPTlZFUlNJT04gRVJST1IgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNh c3QKK1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5IEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIG1vbmV5IHRvIG51bWVy aWMgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENP TlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJp YyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJ TlQ6ICBDdXJyZW50bHkgQ0FTVCAuLi4gREVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SIGRvZXMg bm90IHN1cHBvcnQgdGhpcyBjYXN0CisvKgordGhlIGZvbGxvd2luZyBhcmUgc2FmZSBjYXN0IHRl c3Qgd2l0aCB0eXBlCit7CisgYnl0ZWEsIGJpdCBjaGFyYWN0ZXIsIHRleHQsIGNoYXJhY3Rlci12 YXJ5aW5nLAorIGluZXQsIG1hY2FkZHI4CisgaW50MiwgaW50ZWdlciwgYmlnaW50LCBudW1lcmlj LCBmbG9hdDQsIGZsb2F0OCwKKyBkYXRlLCBpbnRlcnZhbCwgdGltZXN0YW1wdHosIHRpbWVzdGFt cAorIGpzb25iCit9CisqLworLS0tLS1zYWZlIGNhc3QgZnJvbSBieXRlYSB0eXBlIHRvIG90aGVy IHR5cGUKK1NFTEVDVCBDQVNUICgnXHgxMTIyMzM0NDU1NjY3Nzg4OTknOjpieXRlYSBBUyBpbnQ4 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4IAorLS0tLS0tCisgICAg IAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTY3ODlBJzo6Ynl0ZWEgQVMgaW50NCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50NCAKKy0tLS0tLQorICAgICAK KygxIHJvdykKKworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Jzo6Ynl0ZWEgQVMgaW50MiBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50MiAKKy0tLS0tLQorICAgICAKKygxIHJv dykKKworU0VMRUNUIENBU1QoJzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElOVCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50NCAKKy0tLS0tLQorICAgICAKKygx IHJvdykKKworU0VMRUNUIENBU1QgKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJTlQ4 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4IAorLS0tLS0tCisgICAg IAorKDEgcm93KQorCitzZWxlY3QgQ0FTVCgnYS5iLmMuZCc6OnRleHQgYXMgcmVnY2xhc3MgZGVm YXVsdCBOVUxMIG9uIGNvbnZlcnNpb24gZXJyb3IpOworIHJlZ2NsYXNzIAorLS0tLS0tLS0tLQor IAorKDEgcm93KQorCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdChjb2wwIHRleHQpOworSU5T RVJUIElOVE8gdGVzdF9zYWZlY2FzdChjb2wwKSBWQUxVRVMgKCc8dmFsdWU+b25lPC92YWx1ZScp OworU0VMRUNUIGNvbDAgYXMgdGV4dCwKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3JlZ2NsYXNzLAorICAgICAgIENB U1QoY29sMCBBUyByZWdjbGFzcyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMg TlVMTCBhcyBleHBlY3RfdHJ1ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgImNoYXIiICBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fY2hhciwKKyAgICAgICBDQVNUKGNvbDAg QVMgbmFtZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbmFtZSwKKyAg ICAgICBDQVNUKGNvbDAgQVMgeG1sIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b194bWwKK0ZST00gdGVzdF9zYWZlY2FzdDsKKyAgICAgICB0ZXh0ICAgICAgICB8IHRvX3Jl Z2NsYXNzIHwgZXhwZWN0X3RydWUgfCB0b19jaGFyIHwgICAgICB0b19uYW1lICAgICAgfCB0b194 bWwgCistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLQorIDx2YWx1ZT5vbmU8L3ZhbHVlIHwg ICAgICAgICAgICAgfCB0ICAgICAgICAgICB8IDwgICAgICAgfCA8dmFsdWU+b25lPC92YWx1ZSB8 IAorKDEgcm93KQorCistLS0tLXNhZmUgY2FzdCBmcm9tIG90aGVyIHR5cGUgdG8gaW5ldC9jaWRy CitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLngnIGFzIGluZXQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworIGluZXQgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1Qo JzE5Mi4xNjguMS4yLzMwJyBhcyBjaWRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBjaWRyIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcyMjowMDo1Yzow ODo1NTowODowMTowMic6Om1hY2FkZHI4IGFzIG1hY2FkZHIgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworIG1hY2FkZHIgCistLS0tLS0tLS0KKyAKKygxIHJvdykKKworLS0tLS1z YWZlIGNhc3QgZnJvbSByYW5nZSB0eXBlIHRvIG90aGVyIHR5cGUKK1NFTEVDVCBDQVNUKCdbMSwy XSc6OmludDRyYW5nZSBBUyBpbnQ0bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgaW50NG11bHRpcmFuZ2UgCistLS0tLS0tLS0tLS0tLS0tCisge1sxLDMpfQor KDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjppbnQ4cmFuZ2UgQVMgaW50OG11bHRpcmFu Z2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDhtdWx0aXJhbmdlIAor LS0tLS0tLS0tLS0tLS0tLQorIHtbMSwzKX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1sxLDJd Jzo6bnVtcmFuZ2UgIEFTIG51bW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworIG51bW11bHRpcmFuZ2UgCistLS0tLS0tLS0tLS0tLS0KKyB7WzEsMl19CisoMSBy b3cpCisKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OmRhdGVyYW5nZSBBUyBk YXRlbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGRh dGVtdWx0aXJhbmdlICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbLWluZmluaXR5 LGluZmluaXR5XX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHld Jzo6dHNyYW5nZSBBUyB0c211bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworICAgICAgdHNtdWx0aXJhbmdlICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyB7Wy1pbmZpbml0eSxpbmZpbml0eV19CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbLWluZmlu aXR5LGluZmluaXR5XSc6OnRzdHpyYW5nZSBBUyB0c3R6bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHRzdHptdWx0aXJhbmdlICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHtbLWluZmluaXR5LGluZmluaXR5XX0KKygxIHJvdykKKworLS10 ZXN0IGNhc3QgbnVtZXJpYyB2YWx1ZSB3aXRoIGZyYWN0aW9uIHRvIGFub3RoZXIgbnVtZXJpYyB2 YWx1ZQorQ1JFQVRFIFRBQkxFIHNhZmVjYXN0KGNvbDEgZmxvYXQ0LCBjb2wyIGZsb2F0OCwgY29s MyBudW1lcmljLCBjb2w0IG51bWVyaWNbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbDUg aW50MiBkZWZhdWx0IDMyNzY3LAorICAgICAgICAgICAgICAgICAgICAgICAgY29sNiBpbnQ0IGRl ZmF1bHQgMzI3NjgsCisgICAgICAgICAgICAgICAgICAgICAgICBjb2w3IGludDggZGVmYXVsdCA0 Mjk0OTY3Mjk2KTsKK0lOU0VSVCBJTlRPIHNhZmVjYXN0IFZBTFVFUygnMTEuMTIzNCcsICcxMS4x MjM0JywgJzkyMjMzNzIwMzY4NTQ3NzU4MDgnLCAnezExLjEyMzR9Jzo6bnVtZXJpY1tdKTsKK0lO U0VSVCBJTlRPIHNhZmVjYXN0IFZBTFVFUygnaW5mJywgJ2luZicsICdpbmYnLCAnezExLjEyMzQs IDEyLCBpbmYsIE5hTn0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gc2FmZWNhc3QgVkFMVUVT KCctaW5mJywgJy1pbmYnLCAnLWluZicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1l cmljW10pOworSU5TRVJUIElOVE8gc2FmZWNhc3QgVkFMVUVTKCdOYU4nLCAnTmFOJywgJ05hTics ICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10pOworU0VMRUNUIGNvbDUgYXMg aW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50NCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDUgQVMg b2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAg Q0FTVChjb2w1IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDgsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDggREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNU KGNvbDUgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f bnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSBzYWZlY2FzdDsK KyBpbnQyICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0 NCB8IHRvX2Zsb2F0OCB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgMzI3NjcgfCAgIDMyNzY3IHwg ICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAg IDMyNzY3IHwgICAgICAgICAgMzI3NjcuMAorIDMyNzY3IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAg MzI3NjcgfCAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgICAzMjc2NyB8ICAg ICAgICAgIDMyNzY3LjAKKyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAz Mjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2 Ny4wCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAg MzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAgICAgICAgMzI3NjcuMAorKDQgcm93 cykKKworU0VMRUNUIGNvbDYgYXMgaW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50MiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNv bDYgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwK KyAgICAgICBDQVNUKGNvbDYgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w2IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0NCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENB U1QoY29sNiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJp YygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19z Y2FsZQorRlJPTSBzYWZlY2FzdDsKKyBpbnQ0ICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lk IHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX251bWVyaWMgfCB0b19udW1l cmljX3NjYWxlIAorLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t CisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3 NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorIDMyNzY4IHwg ICAgICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMy NzY4IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAKKyAzMjc2OCB8ICAgICAgICAgfCAg IDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAg MzI3NjggfCAgICAgICAgICAzMjc2OC4wCisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAz Mjc2OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAg ICAgICAgMzI3NjguMAorKDQgcm93cykKKworU0VMRUNUIGNvbDcgYXMgaW50OCwKKyAgICAgICBD QVNUKGNvbDcgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50MiwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDcgQVMgb2lkIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w3IGFzIGlu dDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAg Q0FTVChjb2w3IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVtZXJp YyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAg ICBDQVNUKGNvbDcgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSBzYWZlY2FzdDsKKyAgICBpbnQ4ICAgIHwg dG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCAgdG9faW50OCAgIHwgIHRvX2Zsb2F0NCAgfCB0 b19mbG9hdDggIHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIDQyOTQ5NjcyOTYg fCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSswOSB8 IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5NjcyOTYg fCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSswOSB8 IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5NjcyOTYg fCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSswOSB8 IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5NjcyOTYg fCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSswOSB8 IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorKDQgcm93cykKKwor U0VMRUNUIGNvbDMgYXMgbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50MiBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDMg QVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAg ICAgICBDQVNUKGNvbDMgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wzIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0NCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1Qo Y29sMyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zs b2F0OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYygx MCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2Fs ZQorRlJPTSBzYWZlY2FzdDsKKyAgICAgICBudW1lcmljICAgICAgIHwgdG9faW50MiB8IHRvX2lu dDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgIHRvX2Zsb2F0NCAgfCAgICAgIHRvX2Zsb2F0OCAgICAg ICB8ICAgICB0b19udW1lcmljICAgICAgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tCisgOTIyMzM3MjAzNjg1NDc3NTgwOCB8ICAgICAgICAgfCAgICAgICAgIHwg ICAgICAgIHwgICAgICAgICB8IDkuMjIzMzdlKzE4IHwgOS4yMjMzNzIwMzY4NTQ3OGUrMTggfCA5 MjIzMzcyMDM2ODU0Nzc1ODA4IHwgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgSW5maW5p dHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICBJbmZpbml0eSB8 ICAgICAgICAgICAgIEluZmluaXR5IHwgICAgICAgICAgICBJbmZpbml0eSB8ICAgICAgICAgICAg ICAgICAKKyAgICAgICAgICAgLUluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAg fCAgICAgICAgIHwgICAtSW5maW5pdHkgfCAgICAgICAgICAgIC1JbmZpbml0eSB8ICAgICAgICAg ICAtSW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIE5hTiB8ICAg ICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgTmFOIHwgICAgICAg ICAgICAgICAgICBOYU4gfCAgICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICAgICAgIE5hTgor KDQgcm93cykKKworU0VMRUNUIGNvbDQgYXMgbnVtX2FyciwKKyAgICAgICBDQVNUKGNvbDQgQVMg aW50MltdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQyYXJyLAorICAg ICAgIENBU1QoY29sNCBBUyBpbnQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIGludDRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGludDhbXSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgaW50OGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgZmxvYXQ0 W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY0YXJyLAorICAgICAgIENB U1QoY29sNCBhcyBmbG9hdDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg ZjhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIG51bWVyaWMoMTAsMSlbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgbnVtYXJyCitGUk9NIHNhZmVjYXN0OworICAgICAgICAg IG51bV9hcnIgICAgICAgICAgIHwgaW50MmFyciB8IGludDRhcnIgfCBpbnQ4YXJyIHwgICAgICAg ICAgIGY0YXJyICAgICAgICAgICAgfCAgICAgICAgICAgZjhhcnIgICAgICAgICAgICB8IG51bWFy ciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tCisgezExLjEyMzR9ICAgICAgICAgICAgICAgICAgfCB7MTF9ICAgIHwg ezExfSAgICB8IHsxMX0gICAgfCB7MTEuMTIzNH0gICAgICAgICAgICAgICAgICB8IHsxMS4xMjM0 fSAgICAgICAgICAgICAgICAgIHwgezExLjF9CisgezExLjEyMzQsMTIsSW5maW5pdHksTmFOfSAg fCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB7MTEuMTIzNCwxMixJbmZpbml0eSxOYU59 ICB8IHsxMS4xMjM0LDEyLEluZmluaXR5LE5hTn0gIHwgCisgezExLjEyMzQsMTIsLUluZmluaXR5 LE5hTn0gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB7MTEuMTIzNCwxMiwtSW5maW5p dHksTmFOfSB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgCisgezExLjEyMzQsMTIsLUlu ZmluaXR5LE5hTn0gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB7MTEuMTIzNCwxMiwt SW5maW5pdHksTmFOfSB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgCisoNCByb3dzKQor CitTRUxFQ1QgY29sMSBhcyBmbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIEFTIGludDIgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2wx IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisg ICAgICAgQ0FTVChjb2wxIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNU KGNvbDEgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19m bG9hdDgsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMo MTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2Nh bGUKK0ZST00gc2FmZWNhc3Q7CisgIGZsb2F0NCAgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19v aWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgICAgdG9fZmxvYXQ4ICAgICB8IHRvX251bWVyaWMg fCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDExLjEyMzQgfCAgICAgIDExIHwgICAgICAxMSB8ICAg ICAgICB8ICAgICAgMTEgfCAgIDExLjEyMzQgfCAxMS4xMjMzOTk3MzQ0OTcxIHwgICAgMTEuMTIz NCB8ICAgICAgICAgICAgIDExLjEKKyAgSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAg ICAgICB8ICAgICAgICAgfCAgSW5maW5pdHkgfCAgICAgICAgIEluZmluaXR5IHwgICBJbmZpbml0 eSB8ICAgICAgICAgICAgICAgICAKKyAtSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAg ICAgICB8ICAgICAgICAgfCAtSW5maW5pdHkgfCAgICAgICAgLUluZmluaXR5IHwgIC1JbmZpbml0 eSB8ICAgICAgICAgICAgICAgICAKKyAgICAgICBOYU4gfCAgICAgICAgIHwgICAgICAgICB8ICAg ICAgICB8ICAgICAgICAgfCAgICAgICBOYU4gfCAgICAgICAgICAgICAgTmFOIHwgICAgICAgIE5h TiB8ICAgICAgICAgICAgICBOYU4KKyg0IHJvd3MpCisKK1NFTEVDVCBjb2wyIGFzIGZsb2F0OCwK KyAgICAgICBDQVNUKGNvbDIgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50NCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDIgQVMgb2lkIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChj b2wyIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgs CisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDIg YXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJp YywKKyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSBzYWZlY2FzdDsKKyAgZmxv YXQ4ICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCB0b19mbG9hdDQg fCB0b19mbG9hdDggfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDExLjEyMzQgfCAgICAg IDExIHwgICAgICAxMSB8ICAgICAgICB8ICAgICAgMTEgfCAgIDExLjEyMzQgfCAgIDExLjEyMzQg fCAgICAxMS4xMjM0IHwgICAgICAgICAgICAgMTEuMQorICBJbmZpbml0eSB8ICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICBJbmZpbml0eSB8ICBJbmZpbml0eSB8ICAgSW5m aW5pdHkgfCAgICAgICAgICAgICAgICAgCisgLUluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgfCAgICAgICAgIHwgLUluZmluaXR5IHwgLUluZmluaXR5IHwgIC1JbmZpbml0eSB8 ICAgICAgICAgICAgICAgICAKKyAgICAgICBOYU4gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICB8ICAgICAgICAgfCAgICAgICBOYU4gfCAgICAgICBOYU4gfCAgICAgICAgTmFOIHwgICAgICAg ICAgICAgIE5hTgorKDQgcm93cykKKworLS10ZXN0IGRhdGUvdGltZXN0YW1wL2ludGVydmFsIHJl YWx0ZWQgY2FzdAorQ1JFQVRFIFRBQkxFIHNhZmVjYXN0MShjb2wwIGRhdGUsIGNvbDEgdGltZXN0 YW1wLCBjb2wyIHRpbWVzdGFtcHR6LCBjb2wzIGludGVydmFsLCBjb2w0IHRpbWUsIGNvbDUgdGlt ZXR6KTsKK2luc2VydCBpbnRvIHNhZmVjYXN0MSBWQUxVRVMKKygnLWluZmluaXR5JywgJy1pbmZp bml0eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywKKyAgJzIwMDMtMDMtMDcgMTU6MzY6Mzkg QW1lcmljYS9OZXdfWW9yaycsICcyMDAzLTA3LTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsn KSwKKygnLWluZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5JywKKyAg JzExOjU5OjU5Ljk5IFBNJywgJzExOjU5OjU5Ljk5IFBNIFBEVCcpOworU0VMRUNUIGNvbDAgYXMg ZGF0ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMCBBUyBk YXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAg IENBU1QoY29sMCBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1lcywKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVzdGFt cCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3Nj YWxlCitGUk9NIHNhZmVjYXN0MTsKKyAgIGRhdGUgICAgfCB0b190aW1lc3RhbXB0eiB8ICB0b19k YXRlICB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9fdGltZXN0YW1wX3NjYWxlIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLWluZmluaXR5IHwgLWluZmluaXR5ICAgICAgfCAtaW5m aW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQorIC1pbmZpbml0eSB8IC1p bmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAgICAgfCAgICAgICAgICAgfCAtaW5maW5p dHkKKygyIHJvd3MpCisKK1NFTEVDVCBjb2wxIGFzIHRpbWVzdGFtcCwKKyAgICAgICBDQVNUKGNv bDEgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNU KGNvbDEgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190 aW1ldHosCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHNhZmVjYXN0MTsK KyB0aW1lc3RhbXAgfCB0b190aW1lc3RhbXB0eiB8ICB0b19kYXRlICB8IHRvX3RpbWVzIHwgdG9f dGltZXR6IHwgdG9fdGltZXN0YW1wX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t CisgLWluZmluaXR5IHwgLWluZmluaXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAg ICAgICAgICB8IC1pbmZpbml0eQorIGluZmluaXR5ICB8IGluZmluaXR5ICAgICAgIHwgaW5maW5p dHkgIHwgICAgICAgICAgfCAgICAgICAgICAgfCBpbmZpbml0eQorKDIgcm93cykKKworU0VMRUNU IGNvbDIgYXMgdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcHR6IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAg ICBDQVNUKGNvbDIgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWV0eiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1Qo Y29sMiBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSBzYWZlY2FzdDE7CisgdGltZXN0YW1wdHogfCB0b190 aW1lc3RhbXB0eiB8ICB0b19kYXRlICB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9fdGltZXN0 YW1wX3NjYWxlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtaW5maW5pdHkgICB8 IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAgICAgfCAgICAgICAgICAgfCAtaW5m aW5pdHkKKyBpbmZpbml0eSAgICB8IGluZmluaXR5ICAgICAgIHwgaW5maW5pdHkgIHwgICAgICAg ICAgfCAgICAgICAgICAgfCBpbmZpbml0eQorKDIgcm93cykKKworU0VMRUNUIGNvbDMgYXMgaW50 ZXJ2YWwsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDMgQVMg ZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAg ICBDQVNUKGNvbDMgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lc3Rh bXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9z Y2FsZSwKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9NIHNhZmVjYXN0MTsKKyBp bnRlcnZhbCAgfCB0b190aW1lc3RhbXB0eiB8IHRvX2RhdGUgfCB0b190aW1lcyB8IHRvX3RpbWV0 eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSB8IHRvX2ludGVydmFsX3NjYWxlIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgLWluZmluaXR5IHwgICAgICAgICAg ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAtaW5maW5pdHkKKyBpbmZpbml0eSAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IGluZmluaXR5CisoMiBy b3dzKQorCitTRUxFQ1QgY29sNCBhcyB0aW1lLAorICAgICAgIENBU1QoY29sNCBBUyB0aW1lKDIp IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBD QVNUKGNvbDQgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1ldHosCisgICAgICAgQ0FTVChjb2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDQgQVMg aW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVy dmFsX3NjYWxlCitGUk9NIHNhZmVjYXN0MTsKKyAgICB0aW1lICAgICB8ICB0b190aW1lcyAgIHwg ICB0b190aW1ldHogICAgfCAgICAgICAgICB0b19pbnRlcnZhbCAgICAgICAgICB8ICAgICAgIHRv X2ludGVydmFsX3NjYWxlICAgICAgIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgMTU6MzY6MzkgICAgfCAxNTozNjozOSAgICB8IDE1OjM2OjM5 LTA3ICAgIHwgQCAxNSBob3VycyAzNiBtaW5zIDM5IHNlY3MgICAgfCBAIDE1IGhvdXJzIDM2IG1p bnMgMzkgc2VjcworIDIzOjU5OjU5Ljk5IHwgMjM6NTk6NTkuOTkgfCAyMzo1OTo1OS45OS0wNyB8 IEAgMjMgaG91cnMgNTkgbWlucyA1OS45OSBzZWNzIHwgQCAyMyBob3VycyA1OSBtaW5zIDU5Ljk5 IHNlY3MKKygyIHJvd3MpCisKK1NFTEVDVCBjb2w1IGFzIHRpbWV0eiwKKyAgICAgICBDQVNUKGNv bDUgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZSwK KyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZV9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZXR6IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChj b2w1IEFTIHRpbWV0eig2KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f dGltZXR6X3NjYWxlLAorICAgICAgIENBU1QoY29sNSBBUyBpbnRlcnZhbCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w1IEFT IGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRl cnZhbF9zY2FsZQorRlJPTSBzYWZlY2FzdDE7CisgICAgIHRpbWV0eiAgICAgfCAgIHRvX3RpbWUg ICB8IHRvX3RpbWVfc2NhbGUgfCAgIHRvX3RpbWV0eiAgICB8IHRvX3RpbWV0el9zY2FsZSB8IHRv X2ludGVydmFsIHwgdG9faW50ZXJ2YWxfc2NhbGUgCistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgMTU6MzY6MzktMDQgICAgfCAxNToz NjozOSAgICB8IDE1OjM2OjM5ICAgICAgfCAxNTozNjozOS0wNCAgICB8IDE1OjM2OjM5LTA0ICAg ICB8ICAgICAgICAgICAgIHwgCisgMjM6NTk6NTkuOTktMDcgfCAyMzo1OTo1OS45OSB8IDIzOjU5 OjU5Ljk5ICAgfCAyMzo1OTo1OS45OS0wNyB8IDIzOjU5OjU5Ljk5LTA3ICB8ICAgICAgICAgICAg IHwgCisoMiByb3dzKQorCitDUkVBVEUgVEVNUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MShjb2wwIGpz b25iKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxKGNvbDApIFZBTFVFUyAoJyJ0ZXN0Iicp OworU0VMRUNUIGNvbDAgYXMganNvbmIsCisgICAgICAgQ0FTVChjb2wwIEFTIGludGVnZXIgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVnZXIsCisgICAgICAgQ0FT VChjb2wwIEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X251bWVyaWMsCisgICAgICAgQ0FTVChjb2wwIEFTIGJpZ2ludCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ0IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FT VChjb2wwIEFTIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f ZmxvYXQ4LAorICAgICAgIENBU1QoY29sMCBBUyBib29sZWFuIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19ib29sLAorICAgICAgIENBU1QoY29sMCBBUyBzbWFsbGludCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fc21hbGxpbnQKK0ZST00gdGVz dF9zYWZlY2FzdDE7CisganNvbmIgIHwgdG9faW50ZWdlciB8IHRvX251bWVyaWMgfCB0b19pbnQ4 IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fYm9vbCB8IHRvX3NtYWxsaW50IAorLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyAidGVzdCIgfCAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgICAgICAKKygxIHJvdykKKworLS0gdGVzdCBkZXBhcnNlCitDUkVBVEUgRE9NQUlOIGRfaW50 X2FyciBhcyBpbnRbXTsKK0NSRUFURSBWSUVXIHNhZmVjYXN0dmlldyBBUworU0VMRUNUIENBU1Qo JzEyMzQnIGFzIGNoYXIoMykgREVGQVVMVCAtMTExMSBPTiBDT05WRVJTSU9OIEVSUk9SKSwKKyAg ICAgICBDQVNUKDEgYXMgZGF0ZSBERUZBVUxUICgobm93KCk6OmRhdGUgKyByYW5kb20obWluPT4x LCBtYXg9PjE6OmludCkpKSBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBzYWZlY2FzdCwKKyAgICAg ICBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFTIElOVEVHRVJbXSBERUZBVUxU ICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDEsCisgICAgICAgQ0FTVChBUlJB WVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMn0n IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QyOworXHN2IHNhZmVjYXN0dmlldworQ1JFQVRF IE9SIFJFUExBQ0UgVklFVyBwdWJsaWMuc2FmZWNhc3R2aWV3IEFTCisgU0VMRUNUIENBU1QoJzEy MzQnIEFTIGNoYXJhY3RlcigzKSBERUZBVUxUICctMTExMSc6OmludGVnZXI6OmNoYXJhY3Rlcigz KSBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBicGNoYXIsCisgICAgQ0FTVCgxIEFTIGRhdGUgREVG QVVMVCBub3coKTo6ZGF0ZSArIHJhbmRvbShtaW4gPT4gMSwgbWF4ID0+IDEpIE9OIENPTlZFUlNJ T04gRVJST1IpIEFTIHNhZmVjYXN0LAorICAgIENBU1QoQVJSQVlbQVJSQVlbMV0sIEFSUkFZWyd0 aHJlZSc6OnRleHRdLCBBUlJBWVsnYSc6OnRleHRdXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAnezEs Mn0nOjppbnRlZ2VyW10gT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDEsCisgICAgQ0FTVChB UlJBWVtBUlJBWVsnMSc6OnRleHQsICcyJzo6dGV4dF0sIEFSUkFZWyd0aHJlZSc6OnRleHQsICdh Jzo6dGV4dF1dIEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjJ9Jzo6dGV4dFtdIE9OIENPTlZFUlNJ T04gRVJST1IpIEFTIGNhc3QyCitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcxIEFTCitTRUxFQ1Qg Q0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAn ezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlb WycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGRfaW50X2FyciBERUZBVUxUICd7MjEsMjJ9 JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcxCitDUkVB VEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy5zYWZlY2FzdHZpZXcxIEFTCisgU0VMRUNUIENBU1Qo QVJSQVlbQVJSQVlbMV0sIEFSUkFZWyd0aHJlZSc6OnRleHRdLCBBUlJBWVsnYSc6OnRleHRdXSBB UyBkX2ludF9hcnIgREVGQVVMVCAnezEsMn0nOjppbnRlZ2VyW106OmRfaW50X2FyciBPTiBDT05W RVJTSU9OIEVSUk9SKSBBUyBjYXN0MSwKKyAgICBDQVNUKEFSUkFZW0FSUkFZWzEsIDJdLCBBUlJB WVsndGhyZWUnOjp0ZXh0LCAnYSc6OnRleHRdXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezIxLDIy fSc6OmludGVnZXJbXTo6ZF9pbnRfYXJyIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QyCitT RUxFQ1QgKiBGUk9NIHNhZmVjYXN0dmlldzE7CisgY2FzdDEgfCAgY2FzdDIgIAorLS0tLS0tLSst LS0tLS0tLS0KKyB7MSwyfSB8IHsyMSwyMn0KKygxIHJvdykKKworQ1JFQVRFIElOREVYIGNhc3Rf ZXJyb3JfaWR4ICBPTiB0Y2FzdCgoY2FzdChjIGFzIGludCBERUZBVUxUIHJhbmRvbShtaW49PjEs IG1heD0+MSkgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsgLS1lcnJvcgorRVJST1I6ICBmdW5jdGlv bnMgaW4gaW5kZXggZXhwcmVzc2lvbiBtdXN0IGJlIG1hcmtlZCBJTU1VVEFCTEUKK1JFU0VUIGV4 dHJhX2Zsb2F0X2RpZ2l0czsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y3JlYXRlX2Nhc3Qub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5v dXQKaW5kZXggMGU2OTY0NGJjYTIuLjM4ZWFiNDUzMzQ0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dApAQCAtODgsNiArODgsMTEgQEAgU0VMRUNUIDEyMzQ6Omlu dDQ6OmNhc3R0ZXN0dHlwZTsgLS0gU2hvdWxkIHdvcmsgbm93CiAgYmFyMTIzNAogKDEgcm93KQog CitTRUxFQ1QgQ0FTVCgxMjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgaW50 ZWdlciB0byBjYXN0dGVzdHR5cGUgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVk IGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoMTIz NDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFLi4uCisgICAgICAg ICAgICAgICAgICAgIF4KK0hJTlQ6ICBDdXJyZW50bHkgQ0FTVCAuLi4gREVGQVVMVCBPTiBDT05W RVJTSU9OIEVSUk9SIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBjYXN0CiAtLSBjaGVjayBkZXBlbmRl bmNpZXMgZ2VuZXJhdGVkIGZvciB0aGF0CiBTRUxFQ1QgcGdfZGVzY3JpYmVfb2JqZWN0KGNsYXNz aWQsIG9iamlkLCBvYmpzdWJpZCkgYXMgb2JqLAogICAgICAgIHBnX2Rlc2NyaWJlX29iamVjdChy ZWZjbGFzc2lkLCByZWZvYmppZCwgcmVmb2Jqc3ViaWQpIGFzIG9ianJlZiwKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CmluZGV4IGEzNTdlMWQwYzBlLi44MWVhMjQ0ODU5 ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CkBAIC05NDMsOCAr OTQzLDggQEAgU0VMRUNUICoKIEZST00gcGdfY2FzdCBjCiBXSEVSRSBjYXN0c291cmNlID0gMCBP UiBjYXN0dGFyZ2V0ID0gMCBPUiBjYXN0Y29udGV4dCBOT1QgSU4gKCdlJywgJ2EnLCAnaScpCiAg ICAgT1IgY2FzdG1ldGhvZCBOT1QgSU4gKCdmJywgJ2InICwnaScpOwotIG9pZCB8IGNhc3Rzb3Vy Y2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgCi0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwg Y2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIENoZWNrIHRoYXQgY2FzdGZ1bmMgaXMgbm9u emVybyBvbmx5IGZvciBjYXN0IG1ldGhvZHMgdGhhdCBuZWVkIGEgZnVuY3Rpb24sCkBAIC05NTMs OCArOTUzLDggQEAgU0VMRUNUICoKIEZST00gcGdfY2FzdCBjCiBXSEVSRSAoY2FzdG1ldGhvZCA9 ICdmJyBBTkQgY2FzdGZ1bmMgPSAwKQogICAgT1IgKGNhc3RtZXRob2QgSU4gKCdiJywgJ2knKSBB TkQgY2FzdGZ1bmMgPD4gMCk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0 ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNh c3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRo b2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93 cykKIAogLS0gTG9vayBmb3IgY2FzdHMgdG8vZnJvbSB0aGUgc2FtZSB0eXBlIHRoYXQgYXJlbid0 IGxlbmd0aCBjb2VyY2lvbiBmdW5jdGlvbnMuCkBAIC05NjMsMTUgKzk2MywxNSBAQCBXSEVSRSAo Y2FzdG1ldGhvZCA9ICdmJyBBTkQgY2FzdGZ1bmMgPSAwKQogU0VMRUNUICoKIEZST00gcGdfY2Fz dCBjCiBXSEVSRSBjYXN0c291cmNlID0gY2FzdHRhcmdldCBBTkQgY2FzdGZ1bmMgPSAwOwotIG9p ZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNh c3RtZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8 IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIFNFTEVDVCBjLioKIEZST00g cGdfY2FzdCBjLCBwZ19wcm9jIHAKIFdIRVJFIGMuY2FzdGZ1bmMgPSBwLm9pZCBBTkQgcC5wcm9u YXJncyA8IDIgQU5EIGNhc3Rzb3VyY2UgPSBjYXN0dGFyZ2V0OwotIG9pZCB8IGNhc3Rzb3VyY2Ug fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgCi0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2Fz dGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIExvb2sgZm9yIGNhc3QgZnVuY3Rpb25zIHRoYXQg ZG9uJ3QgaGF2ZSB0aGUgcmlnaHQgc2lnbmF0dXJlLiAgVGhlCkBAIC05ODksOCArOTg5LDggQEAg V0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORAogICAgICAgICAgICAgIE9SIChjLmNhc3Rzb3Vy Y2UgPSAnY2hhcmFjdGVyJzo6cmVndHlwZSBBTkQKICAgICAgICAgICAgICAgICAgcC5wcm9hcmd0 eXBlc1swXSA9ICd0ZXh0Jzo6cmVndHlwZSkpCiAgICAgIE9SIE5PVCBiaW5hcnlfY29lcmNpYmxl KHAucHJvcmV0dHlwZSwgYy5jYXN0dGFyZ2V0KSk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0 YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4 dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLQogKDAgcm93cykKIAogU0VMRUNUIGMuKgpAQCAtOTk4LDggKzk5OCw4IEBAIEZST00gcGdf Y2FzdCBjLCBwZ19wcm9jIHAKIFdIRVJFIGMuY2FzdGZ1bmMgPSBwLm9pZCBBTkQKICAgICAoKHAu cHJvbmFyZ3MgPiAxIEFORCBwLnByb2FyZ3R5cGVzWzFdICE9ICdpbnQ0Jzo6cmVndHlwZSkgT1IK ICAgICAgKHAucHJvbmFyZ3MgPiAyIEFORCBwLnByb2FyZ3R5cGVzWzJdICE9ICdib29sJzo6cmVn dHlwZSkpOwotIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0 Y29udGV4dCB8IGNhc3RtZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwg Y2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVy cm9yc2FmZSAKKy0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIExv b2sgZm9yIGJpbmFyeSBjb21wYXRpYmxlIGNhc3RzIHRoYXQgZG8gbm90IGhhdmUgdGhlIHJldmVy c2UKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMv dGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IGY5NDUwY2RjNDc3Li41NzNhNjY5 OWE2MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC04MSw3ICs4MSw3IEBAIHRl c3Q6IGJyaW5fYmxvb20gYnJpbl9tdWx0aQogdGVzdDogY3JlYXRlX3RhYmxlX2xpa2UgYWx0ZXJf Z2VuZXJpYyBhbHRlcl9vcGVyYXRvciBtaXNjIGFzeW5jIGRic2l6ZSBtZXJnZSBtaXNjX2Z1bmN0 aW9ucyBzeXN2aWV3cyB0c3JmIHRpZCB0aWRzY2FuIHRpZHJhbmdlc2NhbiBjb2xsYXRlLnV0Zjgg Y29sbGF0ZS5pY3UudXRmOCBpbmNyZW1lbnRhbF9zb3J0IGNyZWF0ZV9yb2xlIHdpdGhvdXRfb3Zl cmxhcHMgZ2VuZXJhdGVkX3ZpcnR1YWwKIAogIyBjb2xsYXRlLmxpbnV4LnV0ZjggYW5kIGNvbGxh dGUuaWN1LnV0ZjggdGVzdHMgY2Fubm90IGJlIHJ1biBpbiBwYXJhbGxlbCB3aXRoIGVhY2ggb3Ro ZXIKLXRlc3Q6IHJ1bGVzIHBzcWwgcHNxbF9jcm9zc3RhYiBwc3FsX3BpcGVsaW5lIGFtdXRpbHMg c3RhdHNfZXh0IGNvbGxhdGUubGludXgudXRmOCBjb2xsYXRlLndpbmRvd3Mud2luMTI1MgordGVz dDogcnVsZXMgcHNxbCBwc3FsX2Nyb3NzdGFiIHBzcWxfcGlwZWxpbmUgYW11dGlscyBzdGF0c19l eHQgY29sbGF0ZS5saW51eC51dGY4IGNvbGxhdGUud2luZG93cy53aW4xMjUyIGNhc3QKIAogIyAt LS0tLS0tLS0tCiAjIFJ1biB0aGVzZSBhbG9uZSBzbyB0aGV5IGRvbid0IHJ1biBvdXQgb2YgcGFy YWxsZWwgd29ya2VycwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jYXN0LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uZWI2OGVjMjE4NTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9jYXN0LnNxbApAQCAtMCwwICsxLDMwMSBAQAorU0VUIGV4dHJhX2Zsb2F0X2Rp Z2l0cyA9IDA7CisKKy0tIENBU1QgREVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SCitWQUxVRVMg KENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IpKTsgLS1l cnJvcgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpKTsKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgREVGQVVMVCA0MiBPTiBD T05WRVJTSU9OIEVSUk9SKSk7CitTRUxFQ1QgQ0FTVCgxIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoMTo6bnVtZXJpYyBBUyBtb25leSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgxMTExIEFTICJjaGFy IiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHJldF9pbnQ4KCkgUkVUVVJOUyBiaWdpbnQgQVMKKyQkCitCRUdJTiBSRVRVUk4g MjE0NzQ4MzY0ODsgRU5EOworJCQKK0xBTkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworCitTRUxF Q1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS1lcnJvcgorU0VMRUNUIENBU1QoJ2EnIGFzIGRhdGUgREVGQVVMVCByZXRfaW50OCgpIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKKy0tIHRlc3QgYXJyYXkgY29lcmNlCitTRUxF Q1QgQ0FTVChhcnJheVsxMS4xMl0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworU0VMRUNUIENBU1QoYXJyYXlbMTEuMTJdIEFTIGRhdGVbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChhcnJheVsxMTExMTExMTExMTExMTEx MV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoYXJyYXlbWydhYmMnXSxbNDU2XV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoJ3sxMjMsYWJjLDQ1Nn0nIEFTIGludGVnZXJbXSBERUZB VUxUICd7LTc4OX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ3syMzQsZGVm LDU2N30nOjp0ZXh0W10gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3stMTAxMX0nIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMg SU5URUdFUltdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyB0ZXh0W10gREVGQVVMVCAn ezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tIHRlc3QgdmFsaWQgREVGQVVMVCBl eHByZXNzaW9uIGZvciBDQVNUID0gT04gQ09OVkVSU0lPTiBFUlJPUgorQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gcmV0X3NldGludCgpIFJFVFVSTlMgU0VUT0YgaW50ZWdlciBBUworJCQKK0JF R0lOIFJFVFVSTiBRVUVSWSBFWEVDVVRFICdzZWxlY3QgMSB1bmlvbiBhbGwgc2VsZWN0IDEnOyBF TkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1VVEFCTEU7CisKK0NSRUFURSBUQUJMRSB0Y2Fz dChhIHRleHRbXSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgSURFTlRJVFksIGMgdGV4 dCBkZWZhdWx0ICcxJyk7CitJTlNFUlQgSU5UTyB0Y2FzdCBWQUxVRVMgKCd7MTJ9JyksICgnezEs YSwgYn0nKSwgKCd7ezEsMn0sIHtjLGR9fScpLCAoJ3sxM30nKTsKK1NFTEVDVCBDQVNUKCdhJyBh cyBpbnQgREVGQVVMVCByZXRfc2V0aW50KCkgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2Fz dDsgLS1lcnJvcgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1 bSgxKSBvdmVyKCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdh JyBhcyBpbnQgREVGQVVMVCAnYicgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKKworU0VM RUNUIENBU1QodCBBUyB0ZXh0W10gREVGQVVMVCAnezIxLDIyLCAnIHx8IGIgfHwgJ30nIE9OIENP TlZFUlNJT04gRVJST1IpIEZST00gdGNhc3QgYXMgdDsKK1NFTEVDVCBDQVNUKHQuYSBBUyBpbnRb XSBERUZBVUxUICd7MjEsMjJ9Jzo6aW50W10gfHwgYiBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9N IHRjYXN0IGFzIHQ7CisKKy0tIHRlc3Qgd2l0aCBkb21haW4KK0NSRUFURSBET01BSU4gZF9pbnQ0 MiBhcyBpbnQgY2hlY2sgKHZhbHVlID0gNDIpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2No YXIzX25vdF9udWxsIGFzIGNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfdmFyY2hh ciBhcyB2YXJjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIFRZUEUgY29tcF9kb21haW5fd2l0aF90 eXBtb2QgQVMgKGEgZF9jaGFyM19ub3RfbnVsbCwgYiBpbnQpOworQ1JFQVRFIFRZUEUgY29tcDIg QVMgKGEgZF92YXJjaGFyKTsKK1NFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQg JygxMjMyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCcoTlVM TCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vawor U0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQxIE9OIENPTlZFUlNJT04gRVJST1Ip OyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tb2sKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9p bnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCitTRUxFQ1QgQ0FTVCgn KCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhf dHlwbW9kIERFRkFVTFQgJygxLDIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIp JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorCistLS0tLXNhZmUgY2FzdCB3aXRoIGdl b21ldHJ5IGRhdGEgdHlwZQorU0VMRUNUIENBU1QoJygxLDIpJzo6cG9pbnQgQVMgYm94IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbKE5hTiwxKSwoTmFO LGluZmluaXR5KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCdbKDFlKzMwMCxJbmZpbml0eSksKDFlKzMwMCxJbmZpbml0eSld Jzo6bHNlZyBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCgnWygxLDIpLCgzLDQpXSc6OnBhdGggYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5hTiwxLjAsTmFOLGluZmluaXR5KSc6 OmJveCBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgbHNlZyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMg cG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgn KDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgcGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCxpbmZpbml0eSxOYU4saW5maW5pdHkpJzo6Ym94 IEFTIGNpcmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VCgnKE5hTiwwLjApLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgcG9pbnQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMC4w KSwoMi4wLDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDAuMCksKDIuMCw0LjApLCgwLjAs MC4wKSc6OnBvbHlnb24gQVMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKCcoTmFOLGluZmluaXR5KSwoMi4wLDQuMCksKDAuMCxpbmZpbml0eSknOjpw b2x5Z29uIEFTIGNpcmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCgnPCg1LDEpLDM+Jzo6Y2lyY2xlIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgYm94IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4n OjpjaXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisK Ky0tLS0tc2FmZSBjYXN0IGZyb20vdG8gbW9uZXkgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLCBhbGwg dGhlIGZvbGxvd2luZyB3b3VsZCByZXN1bHQgZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEw6OmludDgg QVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1Qo TlVMTDo6aW50NCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitT RUxFQ1QgQ0FTVChOVUxMOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5IEFTIG51bWVyaWMgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCisvKgordGhlIGZvbGxvd2luZyBhcmUgc2FmZSBj YXN0IHRlc3Qgd2l0aCB0eXBlCit7CisgYnl0ZWEsIGJpdCBjaGFyYWN0ZXIsIHRleHQsIGNoYXJh Y3Rlci12YXJ5aW5nLAorIGluZXQsIG1hY2FkZHI4CisgaW50MiwgaW50ZWdlciwgYmlnaW50LCBu dW1lcmljLCBmbG9hdDQsIGZsb2F0OCwKKyBkYXRlLCBpbnRlcnZhbCwgdGltZXN0YW1wdHosIHRp bWVzdGFtcAorIGpzb25iCit9CisqLworLS0tLS1zYWZlIGNhc3QgZnJvbSBieXRlYSB0eXBlIHRv IG90aGVyIHR5cGUKK1NFTEVDVCBDQVNUICgnXHgxMTIyMzM0NDU1NjY3Nzg4OTknOjpieXRlYSBB UyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdc eDEyMzQ1Njc4OUEnOjpieXRlYSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Nic6OmJ5dGVhIEFTIGludDIgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworCitTRUxFQ1QgQ0FTVCgnMTExMTExMTExMTAwMDAxJzo6 Yml0KDEwMCkgQVMgSU5UIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUICgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UOCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisKK3NlbGVjdCBDQVNUKCdhLmIuYy5kJzo6dGV4dCBhcyBy ZWdjbGFzcyBkZWZhdWx0IE5VTEwgb24gY29udmVyc2lvbiBlcnJvcik7CisKK0NSRUFURSBUQUJM RSB0ZXN0X3NhZmVjYXN0KGNvbDAgdGV4dCk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0KGNv bDApIFZBTFVFUyAoJzx2YWx1ZT5vbmU8L3ZhbHVlJyk7CisKK1NFTEVDVCBjb2wwIGFzIHRleHQs CisgICAgICAgQ0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19yZWdjbGFzcywKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5VTEwgYXMgZXhwZWN0X3RydWUsCisg ICAgICAgQ0FTVChjb2wwIEFTICJjaGFyIiAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2NoYXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG5hbWUgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX25hbWUsCisgICAgICAgQ0FTVChjb2wwIEFTIHhtbCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9feG1sCitGUk9NIHRlc3Rfc2Fm ZWNhc3Q7CisKKy0tLS0tc2FmZSBjYXN0IGZyb20gb3RoZXIgdHlwZSB0byBpbmV0L2NpZHIKK1NF TEVDVCBDQVNUKCcxOTIuMTY4LjEueCcgYXMgaW5ldCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLjIvMzAnIGFzIGNpZHIgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzIyOjAwOjVjOjA4OjU1OjA4 OjAxOjAyJzo6bWFjYWRkcjggYXMgbWFjYWRkciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGZyb20gcmFuZ2UgdHlwZSB0byBvdGhlciB0eXBlCitT RUxFQ1QgQ0FTVCgnWzEsMl0nOjppbnQ0cmFuZ2UgQVMgaW50NG11bHRpcmFuZ2UgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50OHJhbmdl IEFTIGludDhtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKCdbMSwyXSc6Om51bXJhbmdlICBBUyBudW1tdWx0aXJhbmdlIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5 XSc6OmRhdGVyYW5nZSBBUyBkYXRlbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjp0c3JhbmdlIEFT IHRzbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjp0c3R6cmFuZ2UgQVMgdHN0em11bHRpcmFuZ2Ug REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLXRlc3QgY2FzdCBudW1lcmlj IHZhbHVlIHdpdGggZnJhY3Rpb24gdG8gYW5vdGhlciBudW1lcmljIHZhbHVlCitDUkVBVEUgVEFC TEUgc2FmZWNhc3QoY29sMSBmbG9hdDQsIGNvbDIgZmxvYXQ4LCBjb2wzIG51bWVyaWMsIGNvbDQg bnVtZXJpY1tdLAorICAgICAgICAgICAgICAgICAgICAgICAgY29sNSBpbnQyIGRlZmF1bHQgMzI3 NjcsCisgICAgICAgICAgICAgICAgICAgICAgICBjb2w2IGludDQgZGVmYXVsdCAzMjc2OCwKKyAg ICAgICAgICAgICAgICAgICAgICAgIGNvbDcgaW50OCBkZWZhdWx0IDQyOTQ5NjcyOTYpOworSU5T RVJUIElOVE8gc2FmZWNhc3QgVkFMVUVTKCcxMS4xMjM0JywgJzExLjEyMzQnLCAnOTIyMzM3MjAz Njg1NDc3NTgwOCcsICd7MTEuMTIzNH0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gc2FmZWNh c3QgVkFMVUVTKCdpbmYnLCAnaW5mJywgJ2luZicsICd7MTEuMTIzNCwgMTIsIGluZiwgTmFOfSc6 Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyBzYWZlY2FzdCBWQUxVRVMoJy1pbmYnLCAnLWluZics ICctaW5mJywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQg SU5UTyBzYWZlY2FzdCBWQUxVRVMoJ05hTicsICdOYU4nLCAnTmFOJywgJ3sxMS4xMjM0LCAxMiwg LWluZiwgTmFOfSc6Om51bWVyaWNbXSk7CisKK1NFTEVDVCBjb2w1IGFzIGludDIsCisgICAgICAg Q0FTVChjb2w1IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w1IEFTIG9pZCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNSBhcyBp bnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAg IENBU1QoY29sNSBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDUgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w1IGFzIG51bWVy aWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAg ICAgQ0FTVChjb2w1IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gc2FmZWNhc3Q7CisKK1NFTEVDVCBjb2w2 IGFzIGludDQsCisgICAgICAgQ0FTVChjb2w2IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w2IEFTIGludDQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w2 IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAg ICAgIENBU1QoY29sNiBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNiBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDYgYXMgZmxvYXQ4 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAg Q0FTVChjb2w2IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w2IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gc2FmZWNh c3Q7CisKK1NFTEVDVCBjb2w3IGFzIGludDgsCisgICAgICAgQ0FTVChjb2w3IEFTIGludDIgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChj b2w3IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQs CisgICAgICAgQ0FTVChjb2w3IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBD QVNUKGNvbDcgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVy aWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNf c2NhbGUKK0ZST00gc2FmZWNhc3Q7CisKK1NFTEVDVCBjb2wzIGFzIG51bWVyaWMsCisgICAgICAg Q0FTVChjb2wzIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDIsCisgICAgICAgQ0FTVChjb2wzIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wzIEFTIG9pZCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMyBhcyBp bnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAg IENBU1QoY29sMyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wzIGFzIG51bWVy aWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAg ICAgQ0FTVChjb2wzIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gc2FmZWNhc3Q7CisKK1NFTEVDVCBjb2w0 IGFzIG51bV9hcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDJbXSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgaW50MmFyciwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50NFtd IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ0YXJyLAorICAgICAgIENB U1QoY29sNCBhcyBpbnQ4W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGlu dDhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0NFtdIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyBmNGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgZmxvYXQ4W10gREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY4YXJyLAorICAgICAgIENBU1QoY29s NCBhcyBudW1lcmljKDEwLDEpW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IG51bWFycgorRlJPTSBzYWZlY2FzdDsKKworU0VMRUNUIGNvbDEgYXMgZmxvYXQ0LAorICAgICAg IENBU1QoY29sMSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnQyLAorICAgICAgIENBU1QoY29sMSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMSBBUyBvaWQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDEgYXMg aW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAg ICBDQVNUKGNvbDEgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMSBhcyBudW1l cmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAg ICAgIENBU1QoY29sMSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHNhZmVjYXN0OworCitTRUxFQ1QgY29s MiBhcyBmbG9hdDgsCisgICAgICAgQ0FTVChjb2wyIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2wyIEFTIGludDQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChj b2wyIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAor ICAgICAgIENBU1QoY29sMiBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDIgYXMgZmxv YXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAg ICAgQ0FTVChjb2wyIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wyIGFzIG51bWVyaWMoMTAsMSkgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gc2Fm ZWNhc3Q7CisKKy0tdGVzdCBkYXRlL3RpbWVzdGFtcC9pbnRlcnZhbCByZWFsdGVkIGNhc3QKK0NS RUFURSBUQUJMRSBzYWZlY2FzdDEoY29sMCBkYXRlLCBjb2wxIHRpbWVzdGFtcCwgY29sMiB0aW1l c3RhbXB0eiwgY29sMyBpbnRlcnZhbCwgY29sNCB0aW1lLCBjb2w1IHRpbWV0eik7CitpbnNlcnQg aW50byBzYWZlY2FzdDEgVkFMVUVTCisoJy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWluZmlu aXR5JywgJy1pbmZpbml0eScsCisgICcyMDAzLTAzLTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3X1lv cmsnLCAnMjAwMy0wNy0wNyAxNTozNjozOSBBbWVyaWNhL05ld19Zb3JrJyksCisoJy1pbmZpbml0 eScsICdpbmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0eScsCisgICcxMTo1OTo1OS45OSBQ TScsICcxMTo1OTo1OS45OSBQTSBQRFQnKTsKKworU0VMRUNUIGNvbDAgYXMgZGF0ZSwKKyAgICAg ICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMCBBUyBkYXRlIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMCBB UyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAg ICAgICBDQVNUKGNvbDAgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHNh ZmVjYXN0MTsKKworU0VMRUNUIGNvbDEgYXMgdGltZXN0YW1wLAorICAgICAgIENBU1QoY29sMSBB UyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wxIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWUgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29s MSBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0 eiwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gc2FmZWNhc3QxOworCitT RUxFQ1QgY29sMiBhcyB0aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0YW1w dHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAor ICAgICAgIENBU1QoY29sMiBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXR6 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAg Q0FTVChjb2wyIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHNhZmVjYXN0MTsKKworU0VMRUNUIGNvbDMg YXMgaW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNv bDMgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwK KyAgICAgICBDQVNUKGNvbDMgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMyBBUyB0 aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVz dGFtcF9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9NIHNhZmVjYXN0 MTsKKworU0VMRUNUIGNvbDQgYXMgdGltZSwKKyAgICAgICBDQVNUKGNvbDQgQVMgdGltZSgyKSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FT VChjb2w0IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f dGltZXR6LAorICAgICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w0IEFTIGlu dGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZh bF9zY2FsZQorRlJPTSBzYWZlY2FzdDE7CisKK1NFTEVDVCBjb2w1IGFzIHRpbWV0eiwKKyAgICAg ICBDQVNUKGNvbDUgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fdGltZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSgyKSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZV9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGlt ZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAg ICAgQ0FTVChjb2w1IEFTIHRpbWV0eig2KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fdGltZXR6X3NjYWxlLAorICAgICAgIENBU1QoY29sNSBBUyBpbnRlcnZhbCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FT VChjb2w1IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSBzYWZlY2FzdDE7CisKK0NSRUFURSBURU1QIFRBQkxF IHRlc3Rfc2FmZWNhc3QxKGNvbDAganNvbmIpOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEo Y29sMCkgVkFMVUVTICgnInRlc3QiJyk7CitTRUxFQ1QgY29sMCBhcyBqc29uYiwKKyAgICAgICBD QVNUKGNvbDAgQVMgaW50ZWdlciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50ZWdlciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDAgQVMgYmln aW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAg IENBU1QoY29sMCBBUyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wwIEFTIGJvb2xl YW4gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Jvb2wsCisgICAgICAg Q0FTVChjb2wwIEFTIHNtYWxsaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19zbWFsbGludAorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworLS0gdGVzdCBkZXBhcnNlCitD UkVBVEUgRE9NQUlOIGRfaW50X2FyciBhcyBpbnRbXTsKK0NSRUFURSBWSUVXIHNhZmVjYXN0dmll dyBBUworU0VMRUNUIENBU1QoJzEyMzQnIGFzIGNoYXIoMykgREVGQVVMVCAtMTExMSBPTiBDT05W RVJTSU9OIEVSUk9SKSwKKyAgICAgICBDQVNUKDEgYXMgZGF0ZSBERUZBVUxUICgobm93KCk6OmRh dGUgKyByYW5kb20obWluPT4xLCBtYXg9PjE6OmludCkpKSBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyBzYWZlY2FzdCwKKyAgICAgICBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFT IElOVEVHRVJbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDEs CisgICAgICAgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgdGV4dFtd IERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QyOworXHN2IHNh ZmVjYXN0dmlldworCitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcxIEFTCitTRUxFQ1QgQ0FTVChB UlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezEsMn0n IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywg JzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGRfaW50X2FyciBERUZBVUxUICd7MjEsMjJ9JyBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcxCitTRUxFQ1QgKiBG Uk9NIHNhZmVjYXN0dmlldzE7CisKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCAgT04gdGNh c3QoKGNhc3QoYyBhcyBpbnQgREVGQVVMVCByYW5kb20obWluPT4xLCBtYXg9PjEpIE9OIENPTlZF UlNJT04gRVJST1IpKSk7IC0tZXJyb3IKK1JFU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0czsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbAppbmRleCAzMjE4Nzg1M2NjNy4uMGExNWE3OTVkODcg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKQEAgLTYyLDYgKzYyLDcgQEAgJCQg U0VMRUNUICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7ICQkOwogCiBDUkVBVEUgQ0FTVCAoaW50 NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggRlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBBUyBJ TVBMSUNJVDsKIFNFTEVDVCAxMjM0OjppbnQ0OjpjYXN0dGVzdHR5cGU7IC0tIFNob3VsZCB3b3Jr IG5vdworU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgogCiAtLSBjaGVjayBkZXBlbmRlbmNpZXMg Z2VuZXJhdGVkIGZvciB0aGF0CiBTRUxFQ1QgcGdfZGVzY3JpYmVfb2JqZWN0KGNsYXNzaWQsIG9i amlkLCBvYmpzdWJpZCkgYXMgb2JqLApkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA1Mjkw YjkxZTgzZS4uNzk5Njg1NGIzYTUgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yNjYw LDYgKzI2NjAsOSBAQCBTVFJMRU4KIFNWCiBTWU5DSFJPTklaQVRJT05fQkFSUklFUgogU1lTVEVN X0lORk8KK1NhZmVUeXBlQ2FzdAorU2FmZVR5cGVDYXN0RXhwcgorU2FmZVR5cGVDYXN0U3RhdGUK IFNhbXBsZVNjYW4KIFNhbXBsZVNjYW5HZXRTYW1wbGVTaXplX2Z1bmN0aW9uCiBTYW1wbGVTY2Fu U3RhdGUKLS0gCjIuMzQuMQoK --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgozr4 RnJvbSAyZjIxNjg2ODhiNTllMmQzZDA1Njg2MzZmMzIxOTBhZmU2N2U5NjllIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0NDozNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MTYvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgdGltZXN0YW1wIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLCBjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUKZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0ZnVu YwphbmQgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlwZSA9J3RpbWVzdGFt cCc6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogICAgICAgICBjYXN0 c291cmNlICAgICAgICAgIHwgICAgICAgICBjYXN0dGFyZ2V0ICAgICAgICAgIHwgY2FzdGZ1bmMg fCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgICAgcHJvc3JjICAgICAgICAgfCAgIHBy b25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMjAyOSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IHRpbWVzdGFtcF9kYXRlICAgICAgICB8IGRhdGUKIHRpbWVzdGFtcCB3aXRo b3V0IHRpbWUgem9uZSB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUgICAgICB8ICAgICAxMzE2IHwg YSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX3RpbWUgICAgICAgIHwgdGltZQog dGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGltZSB6b25lICAg IHwgICAgIDIwMjggfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXBfdGltZXN0 YW1wdHogfCB0aW1lc3RhbXB0egogdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0 YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgICAgIDE5NjEgfCBpICAgICAgICAgICB8IGYgICAgICAg ICAgfCB0aW1lc3RhbXBfc2NhbGUgICAgICAgfCB0aW1lc3RhbXAKKDQgcm93cykKCmRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNr UThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyAgICAgIHwgMTMgKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jIHwgMTcgKysrKysrKysrKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjYg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCAxMTFi ZmQ4ZjUxOS4uYzU1NjJiNTYzZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9k YXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAtMTM3Myw3ICsxMzcz LDE2IEBAIHRpbWVzdGFtcF9kYXRlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJVGltZXN0YW1wCXRpbWVz dGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gdGltZXN0YW1wMmRhdGVfb3B0X292ZXJmbG93KHRpbWVzdGFtcCwgTlVMTCk7CisJaWYg KGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkKKwkJcmVzdWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9v cHRfb3ZlcmZsb3codGltZXN0YW1wLCBOVUxMKTsKKwllbHNlCisJeworCQlpbnQJCQlvdmVyZmxv dzsKKwkJcmVzdWx0ID0gdGltZXN0YW1wMmRhdGVfb3B0X292ZXJmbG93KHRpbWVzdGFtcCwgJm92 ZXJmbG93KTsKKworCQlpZiAob3ZlcmZsb3cgIT0gMCkKKwkJCVBHX1JFVFVSTl9OVUxMKCk7CisJ fQogCVBHX1JFVFVSTl9EQVRFQURUKHJlc3VsdCk7CiB9CiAKQEAgLTIwODksNyArMjA5OCw3IEBA IHRpbWVzdGFtcF90aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9OVUxMKCk7CiAK IAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgTlVMTCwgdG0sICZmc2VjLCBOVUxMLCBOVUxM KSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jCmluZGV4IDExNmUzZWYyOGZjLi43YTU3YWMzZWFmNiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMzUyLDcgKzM1Miw4IEBAIHRpbWVzdGFtcF9zY2FsZShQ R19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gdGltZXN0YW1wOwogCi0JQWRqdXN0VGltZXN0 YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgTlVMTCk7CisJaWYgKCFBZGp1c3RUaW1lc3Rh bXBGb3JUeXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRV Uk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX1RJTUVTVEFNUChyZXN1bHQpOwogfQpAQCAtNjQzMCw3 ICs2NDMxLDE5IEBAIHRpbWVzdGFtcF90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdTKQogewog CVRpbWVzdGFtcAl0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCi0JUEdfUkVU VVJOX1RJTUVTVEFNUFRaKHRpbWVzdGFtcDJ0aW1lc3RhbXB0eih0aW1lc3RhbXApKTsKKwlpZiAo bGlrZWx5KCFmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fVElNRVNUQU1QVFoodGltZXN0 YW1wMnRpbWVzdGFtcHR6KHRpbWVzdGFtcCkpOworCWVsc2UKKwl7CisJCVRpbWVzdGFtcFR6IHJl c3VsdDsKKwkJaW50CQkJb3ZlcmZsb3c7CisKKwkJcmVzdWx0ID0gdGltZXN0YW1wMnRpbWVzdGFt cHR6X29wdF9vdmVyZmxvdyh0aW1lc3RhbXAsICZvdmVyZmxvdyk7CisJCWlmIChvdmVyZmxvdyAh PSAwKQorCQkJUEdfUkVUVVJOX05VTEwoKTsKKwkJZWxzZQorCQkJUEdfUkVUVVJOX1RJTUVTVEFN UFRaKHJlc3VsdCk7CisJfQogfQogCiAvKgotLSAKMi4zNC4xCgo= --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgozo2 RnJvbSBhNDAyMDUxZDczZTNiM2VkODZmMjk3MjYzOWJkMzkxMGVlN2I3Y2ZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTo0OTo0NiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MDQvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgdGV4dCB0byBvdGhlciB0eXBlcyBwZXIKIHBn X2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBj YXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1lIGZy b20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMgYW5k IHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICd0ZXh0Jzo6cmVndHlw ZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0 IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9zcmMgICAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KIHRleHQgICAgICAgfCBy ZWdjbGFzcyAgIHwgICAgIDEwNzkgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X3Jl Z2NsYXNzIHwgcmVnY2xhc3MKIHRleHQgICAgICAgfCAiY2hhciIgICAgIHwgICAgICA5NDQgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X2NoYXIgICAgIHwgY2hhcgogdGV4dCAgICAg ICB8IG5hbWUgICAgICAgfCAgICAgIDQwNyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRl eHRfbmFtZSAgICAgfCBuYW1lCiB0ZXh0ICAgICAgIHwgeG1sICAgICAgICB8ICAgICAyODk2IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgICB8IHhtbAooNCByb3dzKQoK YWxyZWFkeSBlcnJvciBzYWZlOiB0ZXh0X25hbWUsIHRleHRfY2hhci4KdGV4dHRveG1sIGlzIHJl ZmFjdG9yZWQgaW4gY2hhcmFjdGVyIHR5cGUgZXJyb3Igc2FmZSBwYXRjaC4KCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYyB8IDE2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYyB8ICAzMyArKysrKystCiBzcmMvYmFja2VuZC91dGls cy9hZHQvdmFybGVuYS5jIHwgIDQyICsrKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVz cGFjZS5oIHwgICA2ICsrCiBzcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmggICAgIHwgICAxICsK IDUgZmlsZXMgY2hhbmdlZCwgMjQ2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggZDIzNDc0ZGE0ZmIuLmEwNGQxNzljN2ZiIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbmFtZXNwYWNlLmMKQEAgLTY0MCw2ICs2NDAsMTM3IEBAIFJhbmdlVmFyR2V0UmVsaWRF eHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAogCXJl dHVybiByZWxJZDsKIH0KIAorLyogc2FmZSB2ZXJzaW9uIG9mIFJhbmdlVmFyR2V0UmVsaWRFeHRl bmRlZCAqLworT2lkCitSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRTYWZlKGNvbnN0IFJhbmdlVmFy ICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCisJCQkJCQkJIHVpbnQzMiBmbGFncywgUmFu Z2VWYXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpjYWxsYmFja19hcmcsCisJCQkJ CQkJIE5vZGUgKmVzY29udGV4dCkKK3sKKwl1aW50NjQJCWludmFsX2NvdW50OworCU9pZAkJCXJl bElkOworCU9pZAkJCW9sZFJlbElkID0gSW52YWxpZE9pZDsKKwlib29sCQlyZXRyeSA9IGZhbHNl OworCWJvb2wJCW1pc3Npbmdfb2sgPSAoZmxhZ3MgJiBSVlJfTUlTU0lOR19PSykgIT0gMDsKKwor CS8qIHZlcmlmeSB0aGF0IGZsYWdzIGRvIG5vIGNvbmZsaWN0ICovCisJQXNzZXJ0KCEoKGZsYWdz ICYgUlZSX05PV0FJVCkgJiYgKGZsYWdzICYgUlZSX1NLSVBfTE9DS0VEKSkpOworCisJLyoKKwkg KiBXZSBjaGVjayB0aGUgY2F0YWxvZyBuYW1lIGFuZCB0aGVuIGlnbm9yZSBpdC4KKwkgKi8KKwlp ZiAocmVsYXRpb24tPmNhdGFsb2duYW1lKQorCXsKKwkJaWYgKHN0cmNtcChyZWxhdGlvbi0+Y2F0 YWxvZ25hbWUsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpICE9IDApCisJCQllcmV0 dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBh cmUgbm90IGltcGxlbWVudGVkOiBcIiVzLiVzLiVzXCIiLAorCQkJCQkJCXJlbGF0aW9uLT5jYXRh bG9nbmFtZSwgcmVsYXRpb24tPnNjaGVtYW5hbWUsCisJCQkJCQkJcmVsYXRpb24tPnJlbG5hbWUp KTsKKwl9CisKKwlmb3IgKDs7KQorCXsKKwkJaW52YWxfY291bnQgPSBTaGFyZWRJbnZhbGlkTWVz c2FnZUNvdW50ZXI7CisKKwkJaWYgKHJlbGF0aW9uLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJT SVNURU5DRV9URU1QKQorCQl7CisJCQlpZiAoIU9pZElzVmFsaWQobXlUZW1wTmFtZXNwYWNlKSkK KwkJCQlyZWxJZCA9IEludmFsaWRPaWQ7CisJCQllbHNlCisJCQl7CisJCQkJaWYgKHJlbGF0aW9u LT5zY2hlbWFuYW1lKQorCQkJCXsKKwkJCQkJT2lkCQkJbmFtZXNwYWNlSWQ7CisKKwkJCQkJbmFt ZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShyZWxhdGlvbi0+c2NoZW1hbmFtZSwg bWlzc2luZ19vayk7CisKKwkJCQkJLyoKKwkJCQkJICogRm9yIG1pc3Npbmdfb2ssIGFsbG93IGEg bm9uLWV4aXN0ZW50IHNjaGVtYSBuYW1lIHRvCisJCQkJCSAqIHJldHVybiBJbnZhbGlkT2lkLgor CQkJCQkgKi8KKwkJCQkJaWYgKG5hbWVzcGFjZUlkICE9IG15VGVtcE5hbWVzcGFjZSkKKwkJCQkJ CWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAorCQkJCQkJCQllcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9UQUJMRV9ERUZJTklUSU9OKSwKKwkJCQkJCQkJZXJybXNnKCJ0ZW1wb3JhcnkgdGFi bGVzIGNhbm5vdCBzcGVjaWZ5IGEgc2NoZW1hIG5hbWUiKSk7CisJCQkJfQorCisJCQkJcmVsSWQg PSBnZXRfcmVsbmFtZV9yZWxpZChyZWxhdGlvbi0+cmVsbmFtZSwgbXlUZW1wTmFtZXNwYWNlKTsK KwkJCX0KKwkJfQorCQllbHNlIGlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSkKKwkJeworCQkJT2lk CQkJbmFtZXNwYWNlSWQ7CisKKwkJCS8qIHVzZSBleGFjdCBzY2hlbWEgZ2l2ZW4gKi8KKwkJCW5h bWVzcGFjZUlkID0gTG9va3VwRXhwbGljaXROYW1lc3BhY2UocmVsYXRpb24tPnNjaGVtYW5hbWUs IG1pc3Npbmdfb2spOworCQkJaWYgKG1pc3Npbmdfb2sgJiYgIU9pZElzVmFsaWQobmFtZXNwYWNl SWQpKQorCQkJCXJlbElkID0gSW52YWxpZE9pZDsKKwkJCWVsc2UKKwkJCQlyZWxJZCA9IGdldF9y ZWxuYW1lX3JlbGlkKHJlbGF0aW9uLT5yZWxuYW1lLCBuYW1lc3BhY2VJZCk7CisJCX0KKwkJZWxz ZQorCQl7CisJCQkvKiBzZWFyY2ggdGhlIG5hbWVzcGFjZSBwYXRoICovCisJCQlyZWxJZCA9IFJl bG5hbWVHZXRSZWxpZChyZWxhdGlvbi0+cmVsbmFtZSk7CisJCX0KKworCQlpZiAoY2FsbGJhY2sp CisJCQljYWxsYmFjayhyZWxhdGlvbiwgcmVsSWQsIG9sZFJlbElkLCBjYWxsYmFja19hcmcpOwor CisJCWlmIChsb2NrbW9kZSA9PSBOb0xvY2spCisJCQlicmVhazsKKworCQlpZiAocmV0cnkpCisJ CXsKKwkJCWlmIChyZWxJZCA9PSBvbGRSZWxJZCkKKwkJCQlicmVhazsKKwkJCWlmIChPaWRJc1Zh bGlkKG9sZFJlbElkKSkKKwkJCQlVbmxvY2tSZWxhdGlvbk9pZChvbGRSZWxJZCwgbG9ja21vZGUp OworCQl9CisKKwkJaWYgKCFPaWRJc1ZhbGlkKHJlbElkKSkKKwkJCUFjY2VwdEludmFsaWRhdGlv bk1lc3NhZ2VzKCk7CisJCWVsc2UgaWYgKCEoZmxhZ3MgJiAoUlZSX05PV0FJVCB8IFJWUl9TS0lQ X0xPQ0tFRCkpKQorCQkJTG9ja1JlbGF0aW9uT2lkKHJlbElkLCBsb2NrbW9kZSk7CisJCWVsc2Ug aWYgKCFDb25kaXRpb25hbExvY2tSZWxhdGlvbk9pZChyZWxJZCwgbG9ja21vZGUpKQorCQl7CisJ CQlpZiAocmVsYXRpb24tPnNjaGVtYW5hbWUpCisJCQkJZXJlcG9ydChERUJVRzEsCisJCQkJCQll cnJjb2RlKEVSUkNPREVfTE9DS19OT1RfQVZBSUxBQkxFKSwKKwkJCQkJCWVycm1zZygiY291bGQg bm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9uIFwiJXMuJXNcIiIsCisJCQkJCQkJCXJlbGF0aW9u LT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVsbmFtZSkpOworCQkJZWxzZQorCQkJCWVyZXBvcnQo REVCVUcxLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJ CQllcnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzXCIiLAorCQkJ CQkJCSAgIHJlbGF0aW9uLT5yZWxuYW1lKSk7CisKKwkJCXJldHVybiBJbnZhbGlkT2lkOworCQl9 CisKKwkJaWYgKGludmFsX2NvdW50ID09IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcikKKwkJ CWJyZWFrOworCisJCXJldHJ5ID0gdHJ1ZTsKKwkJb2xkUmVsSWQgPSByZWxJZDsKKwl9CisKKwlp ZiAoIU9pZElzVmFsaWQocmVsSWQpKQorCXsKKwkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQor CQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRPaWQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9V TkRFRklORURfVEFCTEUpLAorCQkJCQllcnJtc2coInJlbGF0aW9uIFwiJXMuJXNcIiBkb2VzIG5v dCBleGlzdCIsCisJCQkJCQkJcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1l KSk7CisJCWVsc2UKKwkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAorCQkJCQllcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX1RBQkxFKSwKKwkJCQkJZXJybXNnKCJyZWxhdGlvbiBcIiVz XCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSk7CisJfQorCXJl dHVybiByZWxJZDsKK30KKwogLyoKICAqIFJhbmdlVmFyR2V0Q3JlYXRpb25OYW1lc3BhY2UKICAq CQlHaXZlbiBhIFJhbmdlVmFyIGRlc2NyaWJpbmcgYSB0by1iZS1jcmVhdGVkIHJlbGF0aW9uLApA QCAtMzY1MCw2ICszNzgxLDQyIEBAIG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdChjb25zdCBMaXN0 ICpuYW1lcykKIAlyZXR1cm4gcmVsOwogfQogCisvKgorICogbWFrZVJhbmdlVmFyRnJvbU5hbWVM aXN0U2FmZQorICoJCVV0aWxpdHkgcm91dGluZSB0byBjb252ZXJ0IGEgcXVhbGlmaWVkLW5hbWUg bGlzdCBpbnRvIFJhbmdlVmFyIGZvcm0uCisgKiBUaGUgcmVzdWx0IG1heWJlIE5VTEwuCisgKi8K K1JhbmdlVmFyICoKK21ha2VSYW5nZVZhckZyb21OYW1lTGlzdFNhZmUoY29uc3QgTGlzdCAqbmFt ZXMsIE5vZGUgKmVzY29udGV4dCkKK3sKKwlSYW5nZVZhciAgICpyZWwgPSBtYWtlUmFuZ2VWYXIo TlVMTCwgTlVMTCwgLTEpOworCisJc3dpdGNoIChsaXN0X2xlbmd0aChuYW1lcykpCisJeworCQlj YXNlIDE6CisJCQlyZWwtPnJlbG5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFtZXMpKTsKKwkJCWJy ZWFrOworCQljYXNlIDI6CisJCQlyZWwtPnNjaGVtYW5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFt ZXMpKTsKKwkJCXJlbC0+cmVsbmFtZSA9IHN0clZhbChsc2Vjb25kKG5hbWVzKSk7CisJCQlicmVh azsKKwkJY2FzZSAzOgorCQkJcmVsLT5jYXRhbG9nbmFtZSA9IHN0clZhbChsaW5pdGlhbChuYW1l cykpOworCQkJcmVsLT5zY2hlbWFuYW1lID0gc3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCXJl bC0+cmVsbmFtZSA9IHN0clZhbChsdGhpcmQobmFtZXMpKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0 OgorCQkJZXJyc2F2ZShlc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJS T1IpLAorCQkJCQllcnJtc2coImltcHJvcGVyIHJlbGF0aW9uIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6ICVzIiwKKwkJCQkJCSAgIE5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSk7CisJCQly ZWwgPSBOVUxMOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlbDsKK30KKwogLyoKICAqIE5h bWVMaXN0VG9TdHJpbmcKICAqCQlVdGlsaXR5IHJvdXRpbmUgdG8gY29udmVydCBhIHF1YWxpZmll ZC1uYW1lIGxpc3QgaW50byBhIHN0cmluZy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9yZWdwcm9jLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jCmluZGV4IGU1 YzIyNDZmMmM5Li4wNTlkMDE1NDMzNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3JlZ3Byb2MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jCkBAIC0xOTAy LDEwICsxOTAyLDM3IEBAIHRleHRfcmVnY2xhc3MoUEdfRlVOQ1RJT05fQVJHUykKIAlPaWQJCQly ZXN1bHQ7CiAJUmFuZ2VWYXIgICAqcnY7CiAKLQlydiA9IG1ha2VSYW5nZVZhckZyb21OYW1lTGlz dCh0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdChyZWxuYW1lKSk7CisJaWYgKGxpa2VseSghZmNpbmZv LT5jb250ZXh0KSkKKwl7CisJCXJ2ID0gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KHRleHRUb1F1 YWxpZmllZE5hbWVMaXN0KHJlbG5hbWUpKTsKIAotCS8qIFdlIG1pZ2h0IG5vdCBldmVuIGhhdmUg cGVybWlzc2lvbnMgb24gdGhpcyByZWxhdGlvbjsgZG9uJ3QgbG9jayBpdC4gKi8KLQlyZXN1bHQg PSBSYW5nZVZhckdldFJlbGlkKHJ2LCBOb0xvY2ssIGZhbHNlKTsKKwkJLyoKKwkJICogV2UgbWln aHQgbm90IGV2ZW4gaGF2ZSBwZXJtaXNzaW9ucyBvbiB0aGlzIHJlbGF0aW9uOyBkb24ndCBsb2Nr IGl0LgorCQkgKi8KKwkJcmVzdWx0ID0gUmFuZ2VWYXJHZXRSZWxpZChydiwgTm9Mb2NrLCBmYWxz ZSk7CisJfQorCWVsc2UKKwl7CisJCUxpc3QgICAJCSpydm5hbWVzOworCisJCXJ2bmFtZXMgPSB0 ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUocmVsbmFtZSwgZmNpbmZvLT5jb250ZXh0KTsKKwkJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CisKKwkJcnYgPSBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3RTYWZlKHJ2bmFtZXMsIGZj aW5mby0+Y29udGV4dCk7CisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4 dCkpCisJCQlQR19SRVRVUk5fTlVMTCgpOworCisJCXJlc3VsdCA9IFJhbmdlVmFyR2V0UmVsaWRF eHRlbmRlZFNhZmUocnYsCisJCQkJCQkJCQkJCSAgTm9Mb2NrLAorCQkJCQkJCQkJCQkgIDAsCisJ CQkJCQkJCQkJCSAgTlVMTCwKKwkJCQkJCQkJCQkJICBOVUxMLAorCQkJCQkJCQkJCQkgIGZjaW5m by0+Y29udGV4dCk7CisKKwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0 KSkKKwkJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJUEdfUkVUVVJOX09JRChyZXN1bHQpOwog fQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKaW5kZXggMmMzOThjZDllNWMuLjExMTc5Mzk0MzBhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKQEAgLTI3MTcsNiArMjcxNyw0OCBAQCB0ZXh0VG9RdWFs aWZpZWROYW1lTGlzdCh0ZXh0ICp0ZXh0dmFsKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qIGVy cm9yIHNhZmUgdmVyc2lvbiBvZiB0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCAqLworTGlzdCAqCit0 ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUodGV4dCAqdGV4dHZhbCwgTm9kZSAqZXNjb250ZXh0 KQoreworCWNoYXIJICAgKnJhd25hbWU7CisJTGlzdAkgICAqcmVzdWx0ID0gTklMOworCUxpc3QJ ICAgKm5hbWVsaXN0OworCUxpc3RDZWxsICAgKmw7CisKKwkvKiBDb252ZXJ0IHRvIEMgc3RyaW5n IChoYW5kbGVzIHBvc3NpYmxlIGRldG9hc3RpbmcpLiAqLworCS8qIE5vdGUgd2UgcmVseSBvbiBi ZWluZyBhYmxlIHRvIG1vZGlmeSByYXduYW1lIGJlbG93LiAqLworCXJhd25hbWUgPSB0ZXh0X3Rv X2NzdHJpbmcodGV4dHZhbCk7CisKKwlpZiAoIVNwbGl0SWRlbnRpZmllclN0cmluZyhyYXduYW1l LCAnLicsICZuYW1lbGlzdCkpCisJeworCQllcnJzYXZlKGVzY29udGV4dCwKKwkJCQllcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9OQU1FKSwKKwkJCQllcnJtc2coImludmFsaWQgbmFtZSBzeW50YXgi KSk7CisJCXJldHVybiBOSUw7CisJfQorCisJaWYgKG5hbWVsaXN0ID09IE5JTCkKKwl7CisJCWVy cnNhdmUoZXNjb250ZXh0LAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX05BTUUpLAorCQkJ CWVycm1zZygiaW52YWxpZCBuYW1lIHN5bnRheCIpKTsKKwkJcmV0dXJuIE5JTDsKKwl9CisKKwlm b3JlYWNoKGwsIG5hbWVsaXN0KQorCXsKKwkJY2hhcgkgICAqY3VybmFtZSA9IChjaGFyICopIGxm aXJzdChsKTsKKworCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgbWFrZVN0cmluZyhwc3RyZHVw KGN1cm5hbWUpKSk7CisJfQorCisJcGZyZWUocmF3bmFtZSk7CisJbGlzdF9mcmVlKG5hbWVsaXN0 KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBTcGxpdElkZW50aWZpZXJTdHJpbmcg LS0tIHBhcnNlIGEgc3RyaW5nIGNvbnRhaW5pbmcgaWRlbnRpZmllcnMKICAqCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9u YW1lc3BhY2UuaAppbmRleCBmMTQyM2YyOGMzMi4uYWI2MWFmNTVkZGMgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9u YW1lc3BhY2UuaApAQCAtMTAzLDYgKzEwMywxMSBAQCBleHRlcm4gT2lkCVJhbmdlVmFyR2V0UmVs aWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sCiAJCQkJCQkJCQkgTE9DS01PREUg bG9ja21vZGUsIHVpbnQzMiBmbGFncywKIAkJCQkJCQkJCSBSYW5nZVZhckdldFJlbGlkQ2FsbGJh Y2sgY2FsbGJhY2ssCiAJCQkJCQkJCQkgdm9pZCAqY2FsbGJhY2tfYXJnKTsKK2V4dGVybiBPaWQg UmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkU2FmZShjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sCisJ CQkJCQkJCQkJTE9DS01PREUgbG9ja21vZGUsIHVpbnQzMiBmbGFncywKKwkJCQkJCQkJCQlSYW5n ZVZhckdldFJlbGlkQ2FsbGJhY2sgY2FsbGJhY2ssCisJCQkJCQkJCQkJdm9pZCAqY2FsbGJhY2tf YXJnLAorCQkJCQkJCQkJCU5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gT2lkCVJhbmdlVmFyR2V0 Q3JlYXRpb25OYW1lc3BhY2UoY29uc3QgUmFuZ2VWYXIgKm5ld1JlbGF0aW9uKTsKIGV4dGVybiBP aWQJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKFJhbmdlVmFyICpyZWxhdGlv biwKIAkJCQkJCQkJCQkJCSBMT0NLTU9ERSBsb2NrbW9kZSwKQEAgLTE2OCw2ICsxNzMsNyBAQCBl eHRlcm4gT2lkCUxvb2t1cENyZWF0aW9uTmFtZXNwYWNlKGNvbnN0IGNoYXIgKm5zcG5hbWUpOwog ZXh0ZXJuIHZvaWQgQ2hlY2tTZXROYW1lc3BhY2UoT2lkIG9sZE5zcE9pZCwgT2lkIG5zcE9pZCk7 CiBleHRlcm4gT2lkCVF1YWxpZmllZE5hbWVHZXRDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBMaXN0 ICpuYW1lcywgY2hhciAqKm9iam5hbWVfcCk7CiBleHRlcm4gUmFuZ2VWYXIgKm1ha2VSYW5nZVZh ckZyb21OYW1lTGlzdChjb25zdCBMaXN0ICpuYW1lcyk7CitleHRlcm4gUmFuZ2VWYXIgKm1ha2VS YW5nZVZhckZyb21OYW1lTGlzdFNhZmUoY29uc3QgTGlzdCAqbmFtZXMsIE5vZGUgKmVzY29udGV4 dCk7CiBleHRlcm4gY2hhciAqTmFtZUxpc3RUb1N0cmluZyhjb25zdCBMaXN0ICpuYW1lcyk7CiBl eHRlcm4gY2hhciAqTmFtZUxpc3RUb1F1b3RlZFN0cmluZyhjb25zdCBMaXN0ICpuYW1lcyk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaCBiL3NyYy9pbmNsdWRlL3V0 aWxzL3ZhcmxlbmEuaAppbmRleCBkYjlmZGY3Mjk0MS4uMGNmMDFhZTUyODEgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy92YXJs ZW5hLmgKQEAgLTI3LDYgKzI3LDcgQEAgZXh0ZXJuIGludAl2YXJzdHJfbGV2ZW5zaHRlaW5fbGVz c19lcXVhbChjb25zdCBjaGFyICpzb3VyY2UsIGludCBzbGVuLAogCQkJCQkJCQkJCSAgaW50IGlu c19jLCBpbnQgZGVsX2MsIGludCBzdWJfYywKIAkJCQkJCQkJCQkgIGludCBtYXhfZCwgYm9vbCB0 cnVzdGVkKTsKIGV4dGVybiBMaXN0ICp0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCh0ZXh0ICp0ZXh0 dmFsKTsKK2V4dGVybiBMaXN0ICp0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUodGV4dCAqdGV4 dHZhbCwgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBib29sIFNwbGl0SWRlbnRpZmllclN0cmlu ZyhjaGFyICpyYXdzdHJpbmcsIGNoYXIgc2VwYXJhdG9yLAogCQkJCQkJCQkgIExpc3QgKipuYW1l bGlzdCk7CiBleHRlcm4gYm9vbCBTcGxpdERpcmVjdG9yaWVzU3RyaW5nKGNoYXIgKnJhd3N0cmlu ZywgY2hhciBzZXBhcmF0b3IsCi0tIAoyLjM0LjEKCg== --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgozq3 RnJvbSA4ZjQ2MjUzMmJiY2MzNTYxODFmMjEyZWViOWY4ZjFhMDcwYjg4ZWZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo1ODo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MTcvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcganNvbmIgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnanNvbmInOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3Ny YyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBq c29uYiAgICAgIHwgYm9vbGVhbiAgICAgICAgICB8ICAgICAzNTU2IHwgZSAgICAgICAgICAgfCBm ICAgICAgICAgIHwganNvbmJfYm9vbCAgICB8IGJvb2wKIGpzb25iICAgICAgfCBudW1lcmljICAg ICAgICAgIHwgICAgIDM0NDkgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBqc29uYl9udW1l cmljIHwgbnVtZXJpYwoganNvbmIgICAgICB8IHNtYWxsaW50ICAgICAgICAgfCAgICAgMzQ1MCB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX2ludDIgICAgfCBpbnQyCiBqc29uYiAg ICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAzNDUxIHwgZSAgICAgICAgICAgfCBmICAgICAg ICAgIHwganNvbmJfaW50NCAgICB8IGludDQKIGpzb25iICAgICAgfCBiaWdpbnQgICAgICAgICAg IHwgICAgIDM0NTIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBqc29uYl9pbnQ4ICAgIHwg aW50OAoganNvbmIgICAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgMzQ1MyB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGpzb25iX2Zsb2F0NCAgfCBmbG9hdDQKIGpzb25iICAgICAgfCBk b3VibGUgcHJlY2lzaW9uIHwgICAgIDI1ODAgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBq c29uYl9mbG9hdDggIHwgZmxvYXQ4Cig3IHJvd3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rn ci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRo UUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYi5jIHwgOTEg KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3NSBp bnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvanNvbmIuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYi5jCmluZGV4IGRh OTRkNDI0ZDYxLi4xZmYwMGY3MmY3OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2pzb25iLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMKQEAgLTIwMDUsNyAr MjAwNSw3IEBAIEpzb25iRXh0cmFjdFNjYWxhcihKc29uYkNvbnRhaW5lciAqamJjLCBKc29uYlZh bHVlICpyZXMpCiAgKiBFbWl0IGNvcnJlY3QsIHRyYW5zbGF0YWJsZSBjYXN0IGVycm9yIG1lc3Nh Z2UKICAqLwogc3RhdGljIHZvaWQKLWNhbm5vdENhc3RKc29uYlZhbHVlKGVudW0gamJ2VHlwZSB0 eXBlLCBjb25zdCBjaGFyICpzcWx0eXBlKQorY2Fubm90Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZU eXBlIHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUsIE5vZGUgKmVzY29udGV4dCkKIHsKIAlzdGF0 aWMgY29uc3Qgc3RydWN0CiAJewpAQCAtMjAyNiw5ICsyMDI2LDEyIEBAIGNhbm5vdENhc3RKc29u YlZhbHVlKGVudW0gamJ2VHlwZSB0eXBlLCBjb25zdCBjaGFyICpzcWx0eXBlKQogCiAJZm9yIChp ID0gMDsgaSA8IGxlbmd0aG9mKG1lc3NhZ2VzKTsgaSsrKQogCQlpZiAobWVzc2FnZXNbaV0udHlw ZSA9PSB0eXBlKQotCQkJZXJlcG9ydChFUlJPUiwKKwkJeworCQkJZXJyc2F2ZShlc2NvbnRleHQs CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkg ZXJybXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkpKTsKKwkJCXJldHVybjsKKwkJfQogCiAJ Lyogc2hvdWxkIGJlIHVucmVhY2hhYmxlICovCiAJZWxvZyhFUlJPUiwgInVua25vd24ganNvbmIg dHlwZTogJWQiLCAoaW50KSB0eXBlKTsKQEAgLTIwNDEsNyArMjA0NCwxMSBAQCBqc29uYl9ib29s KFBHX0ZVTkNUSU9OX0FSR1MpCiAJSnNvbmJWYWx1ZQl2OwogCiAJaWYgKCFKc29uYkV4dHJhY3RT Y2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJv b2xlYW4iKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJvb2xlYW4iLCBm Y2luZm8tPmNvbnRleHQpOworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlw ZSA9PSBqYnZOdWxsKQogCXsKQEAgLTIwNTAsNyArMjA1NywxMSBAQCBqc29uYl9ib29sKFBHX0ZV TkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1 ZSh2LnR5cGUsICJib29sZWFuIiwgZmNpbmZvLT5jb250ZXh0KTsKKworCQlQR19SRVRVUk5fTlVM TCgpOworCX0KIAogCVBHX0ZSRUVfSUZfQ09QWShpbiwgMCk7CiAKQEAgLTIwNjUsNyArMjA3Niwx MSBAQCBqc29uYl9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTnVtZXJpYwkJcmV0VmFsdWU7 CiAKIAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2Fz dEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFs dWUodi50eXBlLCAibnVtZXJpYyIsIGZjaW5mby0+Y29udGV4dCk7CisKKwkJUEdfUkVUVVJOX05V TEwoKTsKKwl9CiAKIAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMjA3NCw3ICsyMDg5 LDExIEBAIGpzb25iX251bWVyaWMoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBl ICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMi KTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBmY2luZm8t PmNvbnRleHQpOworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZhbC5u dW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJvZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNvcHkg dG8KQEAgLTIwOTUsNyArMjExNCwxMSBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ RGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAm dikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInNtYWxsaW50Iik7CisJeworCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4dCk7 CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlpZiAodi50eXBlID09IGpidk51bGwpCiAJ ewpAQCAtMjEwNCw3ICsyMTI3LDExIEBAIGpzb25iX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAl9 CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgInNtYWxsaW50Iik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJz bWFsbGludCIsIGZjaW5mby0+Y29udGV4dCk7CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlyZXRWYWx1ZSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19pbnQyLAogCQkJCQkJCQkg ICBOdW1lcmljR2V0RGF0dW0odi52YWwubnVtZXJpYykpOwpAQCAtMjEyMiw3ICsyMTQ5LDExIEBA IGpzb25iX2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAo IUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFs dWUodi50eXBlLCAiaW50ZWdlciIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBl LCAiaW50ZWdlciIsIGZjaW5mby0+Y29udGV4dCk7CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9 CiAKIAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMjEzMSw3ICsyMTYyLDExIEBAIGpz b25iX2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVy aWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiKTsKKwl7CisJCWNh bm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiLCBmY2luZm8tPmNvbnRleHQpOwor CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBEaXJlY3RGdW5jdGlvbkNh bGwxKG51bWVyaWNfaW50NCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVy aWMpKTsKQEAgLTIxNDksNyArMjE4NCwxMSBAQCBqc29uYl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1Mp CiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290 LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIpOworCXsKKwkJ Y2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiYmlnaW50IiwgZmNpbmZvLT5jb250ZXh0KTsK KworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7 CkBAIC0yMTU4LDcgKzIxOTcsMTEgQEAganNvbmJfaW50OChQR19GVU5DVElPTl9BUkdTKQogCX0K IAogCWlmICh2LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50 eXBlLCAiYmlnaW50Iik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdp bnQiLCBmY2luZm8tPmNvbnRleHQpOworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0 VmFsdWUgPSBEaXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50OCwKIAkJCQkJCQkJICAgTnVt ZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIxNzYsNyArMjIxOSwxMSBAQCBqc29u Yl9mbG9hdDQoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpz b25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUo di50eXBlLCAicmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVh bCIsIGZjaW5mby0+Y29udGV4dCk7CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlpZiAo di50eXBlID09IGpidk51bGwpCiAJewpAQCAtMjE4NSw3ICsyMjMyLDExIEBAIGpzb25iX2Zsb2F0 NChQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJ Y2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5mby0+Y29udGV4dCk7CisKKwkJUEdfUkVUVVJO X05VTEwoKTsKKwl9CiAKIAlyZXRWYWx1ZSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19m bG9hdDQsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0y MjAzLDcgKzIyNTQsMTEgQEAganNvbmJfZmxvYXQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0dW0J CXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0J CWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJ CWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8t PmNvbnRleHQpOworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBq YnZOdWxsKQogCXsKQEAgLTIyMTIsNyArMjI2NywxMSBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJ T05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8tPmNvbnRleHQpOwor CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBEaXJlY3RGdW5jdGlvbkNh bGwxKG51bWVyaWNfZmxvYXQ4LAogCQkJCQkJCQkgICBOdW1lcmljR2V0RGF0dW0odi52YWwubnVt ZXJpYykpOwotLSAKMi4zNC4xCgo= --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgozw7 RnJvbSBkNWM1NzdhNmNlM2U2OTQxNzk0MGRiYmEwNDllMmFiZGU5YmQ5MzRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0Mjo1MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MTMvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZGF0ZSB0byBvdGhlciB0eXBlcyBwZXIKIHBn X2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBj YXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1lIGZy b20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMgYW5k IHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdkYXRlJzo6cmVndHlw ZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKY2FzdHNvdXJjZSB8ICAgICAgICAgY2Fz dHRhcmdldCAgICAgICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwg ICAgICBwcm9zcmMgICAgICB8ICAgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogZGF0ZSAgICAgICB8IHRpbWVzdGFtcCB3aXRo b3V0IHRpbWUgem9uZSB8ICAgICAyMDI0IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZGF0 ZV90aW1lc3RhbXAgICB8IHRpbWVzdGFtcAogZGF0ZSAgICAgICB8IHRpbWVzdGFtcCB3aXRoIHRp bWUgem9uZSAgICB8ICAgICAxMTc0IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZGF0ZV90 aW1lc3RhbXB0eiB8IHRpbWVzdGFtcHR6CigyIHJvd3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZp XzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgfCAy MiArKysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0 ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCAzNDRmNThiOTJmNy4uYzdh M2NkZTJkODEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAtMTM1MCw3ICsxMzUwLDE2IEBAIGRhdGVf dGltZXN0YW1wKFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dFVEFS R19EQVRFQURUKDApOwogCVRpbWVzdGFtcAlyZXN1bHQ7CiAKLQlyZXN1bHQgPSBkYXRlMnRpbWVz dGFtcChkYXRlVmFsKTsKKwlpZiAobGlrZWx5KCFmY2luZm8tPmNvbnRleHQpKQorCQlyZXN1bHQg PSBkYXRlMnRpbWVzdGFtcChkYXRlVmFsKTsKKwllbHNlCisJeworCQlpbnQJCQlvdmVyZmxvdzsK KworCQlyZXN1bHQgPSBkYXRlMnRpbWVzdGFtcF9vcHRfb3ZlcmZsb3coZGF0ZVZhbCwgJm92ZXJm bG93KTsKKwkJaWYgKG92ZXJmbG93ICE9IDApCisJCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAog CVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KQEAgLTE0MzUsNyArMTQ0NCwxNiBAQCBk YXRlX3RpbWVzdGFtcHR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBH X0dFVEFSR19EQVRFQURUKDApOwogCVRpbWVzdGFtcFR6IHJlc3VsdDsKIAotCXJlc3VsdCA9IGRh dGUydGltZXN0YW1wdHooZGF0ZVZhbCk7CisJaWYgKGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkK KwkJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0eihkYXRlVmFsKTsKKwllbHNlCisJeworCQlpbnQJ CQlvdmVyZmxvdzsKKwkJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0el9vcHRfb3ZlcmZsb3coZGF0 ZVZhbCwgJm92ZXJmbG93KTsKKworCQlpZiAob3ZlcmZsb3cgIT0gMCkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CisJfQogCiAJUEdfUkVUVVJOX1RJTUVTVEFNUChyZXN1bHQpOwogfQotLSAKMi4zNC4x Cgo= --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgozu6 RnJvbSAxNDMzN2M2YmE2ZTY1NmQ4NWJjZjk1YWE0YzE4YzA3OGZiYmZiNzQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0MzoyOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MTQvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgaW50ZXJ2YWwgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnaW50ZXJ2YWwn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAg ICAgIGNhc3R0YXJnZXQgICAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhv ZCB8ICAgICBwcm9zcmMgICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCiBpbnRlcnZhbCAgIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSB8 ICAgICAxNDE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50ZXJ2YWxfdGltZSAgfCB0 aW1lCiBpbnRlcnZhbCAgIHwgaW50ZXJ2YWwgICAgICAgICAgICAgICB8ICAgICAxMjAwIHwgaSAg ICAgICAgICAgfCBmICAgICAgICAgIHwgaW50ZXJ2YWxfc2NhbGUgfCBpbnRlcnZhbAooMiByb3dz KQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3 TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQv dGltZXN0YW1wLmMgfCAzICsrLQogMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggYzdhM2NkZTJkODEuLjRmMGYzZDI2 OTg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTIxODAsNyArMjE4MCw3IEBAIGludGVydmFsX3Rp bWUoUEdfRlVOQ1RJT05fQVJHUykKIAlUaW1lQURUCQlyZXN1bHQ7CiAKIAlpZiAoSU5URVJWQUxf Tk9UX0ZJTklURShzcGFuKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNv bnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEVUSU1FX1ZBTFVFX09V VF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiY2Fubm90IGNvbnZlcnQgaW5maW5pdGUgaW50ZXJ2 YWwgdG8gdGltZSIpKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1l c3RhbXAuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwppbmRleCAxNTZhNDgz MGZmZC4uN2I1NjVjYzZkNjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1l c3RhbXAuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKQEAgLTEzMzQs NyArMTMzNCw4IEBAIGludGVydmFsX3NjYWxlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0g cGFsbG9jKHNpemVvZihJbnRlcnZhbCkpOwogCSpyZXN1bHQgPSAqaW50ZXJ2YWw7CiAKLQlBZGp1 c3RJbnRlcnZhbEZvclR5cG1vZChyZXN1bHQsIHR5cG1vZCwgTlVMTCk7CisJaWYgKCFBZGp1c3RJ bnRlcnZhbEZvclR5cG1vZChyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdf UkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9JTlRFUlZBTF9QKHJlc3VsdCk7CiB9Ci0tIAoy LjM0LjEKCg== --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgozs5 RnJvbSBlNTY1MTViMzdlM2E1NjAxZDdiZDMxNWJhODgxNmE3ZDU2OWM3ODI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNiBPY3QgMjAyNSAxMjozOToyMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MTUvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgdGltZXN0YW1wdHogdG8gb3RoZXIgdHlwZXMK IHBlciBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3Rm dW5jCmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBlID0ndGltZXN0 YW1wdHonOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgICAgICBj YXN0c291cmNlICAgICAgICB8ICAgICAgICAgY2FzdHRhcmdldCAgICAgICAgICB8IGNhc3RmdW5j IHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgICAgIHByb3NyYyAgICAgICAgIHwgICBw cm9uYW1lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogdGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgZGF0 ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDExNzggfCBhICAgICAgICAgICB8IGYgICAg ICAgICAgfCB0aW1lc3RhbXB0el9kYXRlICAgICAgfCBkYXRlCiB0aW1lc3RhbXAgd2l0aCB0aW1l IHpvbmUgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25lICAgICAgfCAgICAgMjAxOSB8IGEgICAgICAg ICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X3RpbWUgICAgICB8IHRpbWUKIHRpbWVzdGFt cCB3aXRoIHRpbWUgem9uZSB8IHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8ICAgICAyMDI3 IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wdHpfdGltZXN0YW1wIHwgdGlt ZXN0YW1wCiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgfCB0aW1lIHdpdGggdGltZSB6b25lICAg ICAgICAgfCAgICAgMTM4OCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6 X3RpbWV0eiAgICB8IHRpbWV0egogdGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZXN0YW1w IHdpdGggdGltZSB6b25lICAgIHwgICAgIDE5NjcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAg fCB0aW1lc3RhbXB0el9zY2FsZSAgICAgfCB0aW1lc3RhbXB0egooNSByb3dzKQoKZGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tR OGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvZGF0ZS5jICAgICAgfCAxNiArKysrKysrKysrKysrLS0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvdGltZXN0YW1wLmMgfCAxNyArKysrKysrKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAy OCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IDRm MGYzZDI2OTg5Li4xMTFiZmQ4ZjUxOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2RhdGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0xNDY4LDcgKzE0 NjgsMTcgQEAgdGltZXN0YW1wdHpfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcFR6 IHRpbWVzdGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJcmVzdWx0Owog Ci0JcmVzdWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9vcHRfb3ZlcmZsb3codGltZXN0YW1wLCBOVUxM KTsKKwlpZiAobGlrZWx5KCFmY2luZm8tPmNvbnRleHQpKQorCQlyZXN1bHQgPSB0aW1lc3RhbXB0 ejJkYXRlX29wdF9vdmVyZmxvdyh0aW1lc3RhbXAsIE5VTEwpOworCWVsc2UKKwl7CisJCWludAkJ CW92ZXJmbG93OworCQlyZXN1bHQgPSB0aW1lc3RhbXB0ejJkYXRlX29wdF9vdmVyZmxvdyh0aW1l c3RhbXAsICZvdmVyZmxvdyk7CisKKwkJaWYgKG92ZXJmbG93ICE9IDApCisJCQlQR19SRVRVUk5f TlVMTCgpOworCX0KKwogCVBHX1JFVFVSTl9EQVRFQURUKHJlc3VsdCk7CiB9CiAKQEAgLTIxMTAs NyArMjEyMCw3IEBAIHRpbWVzdGFtcHR6X3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVU VVJOX05VTEwoKTsKIAogCWlmICh0aW1lc3RhbXAydG0odGltZXN0YW1wLCAmdHosIHRtLCAmZnNl YywgTlVMTCwgTlVMTCkgIT0gMCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8t PmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEVUSU1FX1ZBTFVF X09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygidGltZXN0YW1wIG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTMwMjksNyArMzAzOSw3IEBAIHRpbWVzdGFtcHR6X3RpbWV0eihQR19GVU5DVElPTl9B UkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJaWYgKHRpbWVzdGFtcDJ0bSh0aW1lc3RhbXAs ICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxMKSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQll cmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVf REFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVz dGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCmluZGV4IDdiNTY1Y2M2 ZDY2Li4xMTZlM2VmMjhmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVz dGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtODc1LDcg Kzg3NSw4IEBAIHRpbWVzdGFtcHR6X3NjYWxlKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQg PSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JUeXBtb2QoJnJlc3VsdCwgdHlwbW9k LCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgmcmVzdWx0LCB0eXBtb2Qs IGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fVElN RVNUQU1QVFoocmVzdWx0KTsKIH0KQEAgLTY1MDcsNyArNjUwOCwxOSBAQCB0aW1lc3RhbXB0el90 aW1lc3RhbXAoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXBUeiB0aW1lc3RhbXAgPSBQ R19HRVRBUkdfVElNRVNUQU1QVFooMCk7CiAKLQlQR19SRVRVUk5fVElNRVNUQU1QKHRpbWVzdGFt cHR6MnRpbWVzdGFtcCh0aW1lc3RhbXApKTsKKwlpZiAobGlrZWx5KCFmY2luZm8tPmNvbnRleHQp KQorCQlQR19SRVRVUk5fVElNRVNUQU1QKHRpbWVzdGFtcHR6MnRpbWVzdGFtcCh0aW1lc3RhbXAp KTsKKwllbHNlCisJeworCQlpbnQJCQlvdmVyZmxvdzsKKwkJVGltZXN0YW1wCXJlc3VsdDsKKwor CQlyZXN1bHQgPSB0aW1lc3RhbXB0ejJ0aW1lc3RhbXBfb3B0X292ZXJmbG93KHRpbWVzdGFtcCwg Jm92ZXJmbG93KTsKKwkJaWYgKG92ZXJmbG93ICE9IDApCisJCQlQR19SRVRVUk5fTlVMTCgpOwor CQllbHNlCisJCQlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CisJfQogfQogCiAvKgotLSAK Mi4zNC4xCgo= --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgozy8 RnJvbSA1NTU4Yzc1YWM2ODc2YTgzZTczOWE0YTIxOWY0ZjE2NmYzZmE4YTA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0MTo1NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MTIvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZmxvYXQ4IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2Zsb2F0OCc6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICBjYXN0c291cmNlICAgIHwg Y2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgIHBy b3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogZG91YmxlIHByZWNpc2lvbiB8IGJpZ2ludCAgICAgfCAgICAgIDQ4MyB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IGR0b2k4ICAgICAgICAgIHwgaW50OAogZG91YmxlIHByZWNpc2lvbiB8 IHNtYWxsaW50ICAgfCAgICAgIDIzNyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGR0b2ky ICAgICAgICAgIHwgaW50MgogZG91YmxlIHByZWNpc2lvbiB8IGludGVnZXIgICAgfCAgICAgIDMx NyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGR0b2k0ICAgICAgICAgIHwgaW50NAogZG91 YmxlIHByZWNpc2lvbiB8IHJlYWwgICAgICAgfCAgICAgIDMxMiB8IGEgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGR0b2YgICAgICAgICAgIHwgZmxvYXQ0CiBkb3VibGUgcHJlY2lzaW9uIHwgbnVt ZXJpYyAgICB8ICAgICAxNzQzIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZmxvYXQ4X251 bWVyaWMgfCBudW1lcmljCig1IHJvd3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9t L0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWls LmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jICAgfCAyOSArKysr KysrKysrKysrKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyAg ICB8ICA2ICsrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8ICAzICsrLQog MyBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2Zsb2F0LmMKaW5kZXggZGQ4YTJmZjM3OGIuLjY3NDc1NDRiNjc5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv ZmxvYXQuYwpAQCAtMTE5OSw5ICsxMTk5LDIyIEBAIGR0b2YoUEdfRlVOQ1RJT05fQVJHUykKIAog CXJlc3VsdCA9IChmbG9hdDQpIG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYg IWlzaW5mKG51bSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJeworCQllcnJzYXZlKGZj aW5mby0+Y29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0Zf UkFOR0UpLAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiBvdmVyZmxvdyIpKTsKKwor CQlQR19SRVRVUk5fTlVMTCgpOworCX0KKwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wZikg JiYgbnVtICE9IDAuMCkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJeworCQllcnJzYXZl KGZjaW5mby0+Y29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRf T0ZfUkFOR0UpLAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ciKSk7 CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlQR19SRVRVUk5fRkxPQVQ0KHJlc3VsdCk7 CiB9CkBAIC0xMjI0LDEwICsxMjM3LDE0IEBAIGR0b2k0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkv KiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklU U19JTl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZv LT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFO R0UpLAogCQkJCSBlcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19SRVRV Uk5fTlVMTCgpOworCX0KKwogCVBHX1JFVFVSTl9JTlQzMigoaW50MzIpIG51bSk7CiB9CiAKQEAg LTEyNDksMTAgKzEyNjYsMTQgQEAgZHRvaTIoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdl IGNoZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lO VDE2KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRl eHQsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJ CQkJIGVycm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19SRVRVUk5fTlVM TCgpOworCX0KKwogCVBHX1JFVFVSTl9JTlQxNigoaW50MTYpIG51bSk7CiB9CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv aW50OC5jCmluZGV4IGJjZGIwMjBhOTFjLi40MzdkYmJjY2Q0YSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2ludDguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5j CkBAIC0xMjY4LDEwICsxMjY4LDE0IEBAIGR0b2k4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBS YW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19J Tl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5j b250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9O VUxMKCk7CisJfQorCiAJUEdfUkVUVVJOX0lOVDY0KChpbnQ2NCkgbnVtKTsKIH0KIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9udW1lcmljLmMKaW5kZXggODgzOWIwOTVmNjAuLjc2Y2Q5ODAwYzJhIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9udW1lcmljLmMKQEAgLTQ1NzAsNyArNDU3MCw4IEBAIGZsb2F0OF9udW1lcmljKFBHX0ZV TkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBu b3Qgd29ycnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBzcGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zh cl9mcm9tX3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVuZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRf dmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBmY2luZm8tPmNvbnRleHQp KQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0gbWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAK LS0gCjIuMzQuMQoK --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgozz9 RnJvbSBhYjQzODJlYzVhZDcxMzQ4Mjc5ZjZmZDFiZTNkMDRkNjZiYjMzOTllIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODozMzo1NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MTEvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZmxvYXQ0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2Zsb2F0NCc6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgIHBy b3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogcmVhbCAgICAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgIDY1MyB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IGZ0b2k4ICAgICAgICAgIHwgaW50OAogcmVhbCAgICAgICB8IHNtYWxs aW50ICAgICAgICAgfCAgICAgIDIzOCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGZ0b2ky ICAgICAgICAgIHwgaW50MgogcmVhbCAgICAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAgIDMx OSB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGZ0b2k0ICAgICAgICAgIHwgaW50NAogcmVh bCAgICAgICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDMxMSB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGZ0b2QgICAgICAgICAgIHwgZmxvYXQ4CiByZWFsICAgICAgIHwgbnVtZXJpYyAg ICAgICAgICB8ICAgICAxNzQyIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZmxvYXQ0X251 bWVyaWMgfCBudW1lcmljCig1IHJvd3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9t L0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWls LmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jICAgfCAxMiArKysr KysrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgICAgfCAgNiArKysrKy0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgfCAgMyArKy0KIDMgZmlsZXMgY2hhbmdlZCwg MTcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvZmxvYXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCmluZGV4 IDdiOTdkMmJlNmNhLi5kZDhhMmZmMzc4YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2Zsb2F0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKQEAgLTEyOTgs MTAgKzEyOTgsMTQgQEAgZnRvaTQoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNoZWNr ICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUNF9GSVRTX0lOX0lOVDMyKG51 bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJ fQorCiAJUEdfUkVUVVJOX0lOVDMyKChpbnQzMikgbnVtKTsKIH0KIApAQCAtMTMyMywxMCArMTMy NywxNCBAQCBmdG9pMihQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlp ZiAodW5saWtlbHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0J CWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkoZXJy Y29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJz bWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJ UEdfUkVUVVJOX0lOVDE2KChpbnQxNikgbnVtKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludDguYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXgg M2IyZDEwMGJlOTIuLmJjZGIwMjBhOTFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvaW50OC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEzMDMsMTAg KzEzMDMsMTQgQEAgZnRvaTgoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNoZWNrICov CiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUNF9GSVRTX0lOX0lOVDY0KG51bSkp KQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJ KGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1z ZygiYmlnaW50IG91dCBvZiByYW5nZSIpKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisK IAlQR19SRVRVUk5fSU5UNjQoKGludDY0KSBudW0pOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMu YwppbmRleCBjZTVmNzExMDllNy4uODgzOWIwOTVmNjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMu YwpAQCAtNDY2OCw3ICs0NjY4LDggQEAgZmxvYXQ0X251bWVyaWMoUEdfRlVOQ1RJT05fQVJHUykK IAlpbml0X3ZhcigmcmVzdWx0KTsKIAogCS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3JyeSBhYm91 dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNlcyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21fc3RyKGJ1 ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJvbV9zdHIo YnVmLCBidWYsICZyZXN1bHQsICZlbmRwdHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVS Tl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtlX3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4zNC4xCgo= --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgp0110 RnJvbSBmOWFmNjI5NzBiMjNkZmVlNTA2ZWU4ZmQ0NmZkYmVlODAxNzBlNmZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAyMTo1NzozMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MTAvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgbnVtZXJpYyB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdudW1lcmljJzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKY2FzdHNvdXJjZSB8ICAgIGNh c3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICBw cm9zcmMgICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0KIG51bWVyaWMgICAgfCBiaWdpbnQgICAgICAgICAgIHwgICAgIDE3NzkgfCBhICAgICAgICAg ICB8IGYgICAgICAgICAgfCBudW1lcmljX2ludDggICB8IGludDgKIG51bWVyaWMgICAgfCBzbWFs bGludCAgICAgICAgIHwgICAgIDE3ODMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1l cmljX2ludDIgICB8IGludDIKIG51bWVyaWMgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgIDE3 NDQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmljX2ludDQgICB8IGludDQKIG51 bWVyaWMgICAgfCByZWFsICAgICAgICAgICAgIHwgICAgIDE3NDUgfCBpICAgICAgICAgICB8IGYg ICAgICAgICAgfCBudW1lcmljX2Zsb2F0NCB8IGZsb2F0NAogbnVtZXJpYyAgICB8IGRvdWJsZSBw cmVjaXNpb24gfCAgICAgMTc0NiB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNf ZmxvYXQ4IHwgZmxvYXQ4CiBudW1lcmljICAgIHwgbW9uZXkgICAgICAgICAgICB8ICAgICAzODI0 IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJpY19jYXNoICAgfCBtb25leQogbnVt ZXJpYyAgICB8IG51bWVyaWMgICAgICAgICAgfCAgICAgMTcwMyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IG51bWVyaWMgICAgICAgIHwgbnVtZXJpYwooNyByb3dzKQoKZGlzY3Vzc2lvbjog aHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4SENNenJIT1c9d1JlOEwzMHJNaEIzc2p3QXYxTEU5 MjhGYTdzeE11MVR4LWdAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQv bnVtZXJpYy5jIHwgNjggKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9u dW1lcmljLmMKaW5kZXggMjUwMTAwN2Q5ODEuLmNlNWY3MTEwOWU3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9u dW1lcmljLmMKQEAgLTEyNDQsNyArMTI0NCw4IEBAIG51bWVyaWMJCShQR19GVU5DVElPTl9BUkdT KQogCSAqLwogCWlmIChOVU1FUklDX0lTX1NQRUNJQUwobnVtKSkKIAl7Ci0JCSh2b2lkKSBhcHBs eV90eXBtb2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgTlVMTCk7CisJCWlmICghYXBwbHlfdHlwbW9k X3NwZWNpYWwobnVtLCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCQlQR19SRVRVUk5fTlVM TCgpOwogCQlQR19SRVRVUk5fTlVNRVJJQyhkdXBsaWNhdGVfbnVtZXJpYyhudW0pKTsKIAl9CiAK QEAgLTEyOTUsOCArMTI5Niw5IEBAIG51bWVyaWMJCShQR19GVU5DVElPTl9BUkdTKQogCWluaXRf dmFyKCZ2YXIpOwogCiAJc2V0X3Zhcl9mcm9tX251bShudW0sICZ2YXIpOwotCSh2b2lkKSBhcHBs eV90eXBtb2QoJnZhciwgdHlwbW9kLCBOVUxMKTsKLQluZXcgPSBtYWtlX3Jlc3VsdCgmdmFyKTsK KwlpZiAoIWFwcGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CisJbmV3ID0gbWFrZV9yZXN1bHRfc2FmZSgmdmFyLCBmY2luZm8tPmNv bnRleHQpOwogCiAJZnJlZV92YXIoJnZhcik7CiAKQEAgLTMwMTksNyArMzAyMSwxMCBAQCBudW1l cmljX211bChQR19GVU5DVElPTl9BUkdTKQogCU51bWVyaWMJCW51bTIgPSBQR19HRVRBUkdfTlVN RVJJQygxKTsKIAlOdW1lcmljCQlyZXM7CiAKLQlyZXMgPSBudW1lcmljX211bF9zYWZlKG51bTEs IG51bTIsIE5VTEwpOworCXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVtMSwgbnVtMiwgZmNpbmZv LT5jb250ZXh0KTsKKworCWlmICh1bmxpa2VseShTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+ Y29udGV4dCkpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX05VTUVSSUMocmVz KTsKIH0KQEAgLTQzOTMsOSArNDM5OCwxNSBAQCBudW1lcmljX2ludDRfc2FmZShOdW1lcmljIG51 bSwgTm9kZSAqZXNjb250ZXh0KQogRGF0dW0KIG51bWVyaWNfaW50NChQR19GVU5DVElPTl9BUkdT KQogeworCWludDMyCQlyZXN1bHQ7CiAJTnVtZXJpYwkJbnVtID0gUEdfR0VUQVJHX05VTUVSSUMo MCk7CiAKLQlQR19SRVRVUk5fSU5UMzIobnVtZXJpY19pbnQ0X3NhZmUobnVtLCBOVUxMKSk7CisJ cmVzdWx0ID0gbnVtZXJpY19pbnQ0X3NhZmUobnVtLCBmY2luZm8tPmNvbnRleHQpOworCisJaWYg KHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkpCisJCVBHX1JF VFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fSU5UMzIocmVzdWx0KTsKIH0KIAogLyoKQEAgLTQ0 NjMsOSArNDQ3NCwxNSBAQCBudW1lcmljX2ludDhfc2FmZShOdW1lcmljIG51bSwgTm9kZSAqZXNj b250ZXh0KQogRGF0dW0KIG51bWVyaWNfaW50OChQR19GVU5DVElPTl9BUkdTKQogeworCWludDY0 CQlyZXN1bHQ7CiAJTnVtZXJpYwkJbnVtID0gUEdfR0VUQVJHX05VTUVSSUMoMCk7CiAKLQlQR19S RVRVUk5fSU5UNjQobnVtZXJpY19pbnQ4X3NhZmUobnVtLCBOVUxMKSk7CisJcmVzdWx0ID0gbnVt ZXJpY19pbnQ4X3NhZmUobnVtLCBmY2luZm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5KFNP RlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7 CisKKwlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KIAogCkBAIC00NDg5LDI4ICs0NTA2LDM4 IEBAIG51bWVyaWNfaW50MihQR19GVU5DVElPTl9BUkdTKQogCWlmIChOVU1FUklDX0lTX1NQRUNJ QUwobnVtKSkKIAl7CiAJCWlmIChOVU1FUklDX0lTX05BTihudW0pKQotCQkJZXJlcG9ydChFUlJP UiwKKwkJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCSBlcnJtc2coImNhbm5vdCBjb252ZXJ0IE5hTiB0 byAlcyIsICJzbWFsbGludCIpKSk7CiAJCWVsc2UKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcnJz YXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBpbmZpbml0eSB0byAlcyIs ICJzbWFsbGludCIpKSk7CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAl9CiAKIAkvKiBDb252ZXJ0 IHRvIHZhcmlhYmxlIGZvcm1hdCBhbmQgdGhlbmNlIHRvIGludDggKi8KIAlpbml0X3Zhcl9mcm9t X251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJpY3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0J CWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkoZXJy Y29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJz bWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJ aWYgKHVubGlrZWx5KHZhbCA8IFBHX0lOVDE2X01JTikgfHwgdW5saWtlbHkodmFsID4gUEdfSU5U MTZfTUFYKSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0 LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJ CSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwo KTsKKwl9CisKIAkvKiBEb3duLWNvbnZlcnQgdG8gaW50MiAqLwogCXJlc3VsdCA9IChpbnQxNikg dmFsOwogCkBAIC00NTcyLDEwICs0NTk5LDE0IEBAIG51bWVyaWNfZmxvYXQ4KFBHX0ZVTkNUSU9O X0FSR1MpCiAKIAl0bXAgPSBEYXR1bUdldENTdHJpbmcoRGlyZWN0RnVuY3Rpb25DYWxsMShudW1l cmljX291dCwKIAkJCQkJCQkJCQkJICBOdW1lcmljR2V0RGF0dW0obnVtKSkpOwotCi0JcmVzdWx0 ID0gRGlyZWN0RnVuY3Rpb25DYWxsMShmbG9hdDhpbiwgQ1N0cmluZ0dldERhdHVtKHRtcCkpOwot Ci0JcGZyZWUodG1wKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDhp biwgdG1wLAorCQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZj aW5mby0+Y29udGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJUEdfUkVUVVJOX0RBVFVNKHJlc3VsdCk7CiB9CkBA IC00NjY3LDcgKzQ2OTgsMTQgQEAgbnVtZXJpY19mbG9hdDQoUEdfRlVOQ1RJT05fQVJHUykKIAl0 bXAgPSBEYXR1bUdldENTdHJpbmcoRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX291dCwKIAkJ CQkJCQkJCQkJICBOdW1lcmljR2V0RGF0dW0obnVtKSkpOwogCi0JcmVzdWx0ID0gRGlyZWN0RnVu Y3Rpb25DYWxsMShmbG9hdDRpbiwgQ1N0cmluZ0dldERhdHVtKHRtcCkpOworCWlmICghRGlyZWN0 SW5wdXRGdW5jdGlvbkNhbGxTYWZlKGZsb2F0NGluLCB0bXAsCisJCQkJCQkJCQkgSW52YWxpZE9p ZCwgLTEsCisJCQkJCQkJCQkgKE5vZGUgKikgZmNpbmZvLT5jb250ZXh0LAorCQkJCQkJCQkJICZy ZXN1bHQpKQorCXsKKwkJcGZyZWUodG1wKTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlw ZnJlZSh0bXApOwogCi0tIAoyLjM0LjEKCg== --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgp0512 RnJvbSBhZmE5N2ZjNDMwMDcxMWJhZjU3Mzc5OWE3ZjM2MzY0NGZlZTAzYjRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNjowNDowNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MDgvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgaW50ZWdlciB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbnRlZ2VyJzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBw cm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGludGVnZXIgICAgfCBiaWdpbnQgICAgICAgICAgIHwgICAgICA0ODEgfCBpICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpbnQ0OCAgICAgICAgfCBpbnQ4CiBpbnRlZ2VyICAgIHwgc21hbGxpbnQg ICAgICAgICB8ICAgICAgMzE0IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTR0b2kyICAg ICAgIHwgaW50MgogaW50ZWdlciAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgIDMxOCB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk0dG9mICAgICAgICB8IGZsb2F0NAogaW50ZWdlciAg ICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDMxNiB8IGkgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGk0dG9kICAgICAgICB8IGZsb2F0OAogaW50ZWdlciAgICB8IG51bWVyaWMgICAgICAgICAg fCAgICAgMTc0MCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDRfbnVtZXJpYyB8IG51 bWVyaWMKIGludGVnZXIgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4MTEgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCBpbnQ0X2Nhc2ggICAgfCBtb25leQogaW50ZWdlciAgICB8IGJv b2xlYW4gICAgICAgICAgfCAgICAgMjU1NyB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGlu dDRfYm9vbCAgICB8IGJvb2wKIGludGVnZXIgICAgfCBieXRlYSAgICAgICAgICAgIHwgICAgIDYz NjggfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnQ0X2J5dGVhICAgfCBieXRlYQogaW50 ZWdlciAgICB8ICJjaGFyIiAgICAgICAgICAgfCAgICAgICA3OCB8IGUgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGk0dG9jaGFyICAgICB8IGNoYXIKIGludGVnZXIgICAgfCBiaXQgICAgICAgICAg ICAgIHwgICAgIDE2ODMgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBiaXRmcm9taW50NCAg fCBiaXQKKDEwIHJvd3MpCgpvbmx5IGludDRfY2FzaCwgaTR0b2kyLCBpNHRvY2hhciBuZWVkIHRh a2UgY2FyZSBvZiBlcnJvciBoYW5kbGluZy4gIGJ1dCBzdXBwb3J0CmZvciBjYXNoIGRhdGEgdHlw ZSBpcyBub3QgZWFzeSwgc28gb25seSBpNHRvaTIsIGk0dG9jaGFyIGZ1bmN0aW9uIHJlZmFjdG9y aW5nLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1q Y3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvY2hhci5jIHwgNiArKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9pbnQuYyAgfCA1ICsrKystCiAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2NoYXIuYwppbmRleCAyMmRiZmM5NTBiMS4uN2NmMDlkOTU0 ZTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2NoYXIuYwpAQCAtMTkyLDEwICsxOTIsMTQgQEAgaTR0b2NoYXIoUEdf RlVOQ1RJT05fQVJHUykKIAlpbnQzMgkJYXJnMSA9IFBHX0dFVEFSR19JTlQzMigwKTsKIAogCWlm IChhcmcxIDwgU0NIQVJfTUlOIHx8IGFyZzEgPiBTQ0hBUl9NQVgpCi0JCWVyZXBvcnQoRVJST1Is CisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2Yg cmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJUEdfUkVUVVJOX0NIQVIo KGludDgpIGFyZzEpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50 LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5kZXggYjU3ODE5ODlhNjQuLjRkM2Nl MjNhNGFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNTAsMTAgKzM1MCwxMyBAQCBpNHRvaTIoUEdf RlVOQ1RJT05fQVJHUykKIAlpbnQzMgkJYXJnMSA9IFBHX0dFVEFSR19JTlQzMigwKTsKIAogCWlm ICh1bmxpa2VseShhcmcxIDwgU0hSVF9NSU4pIHx8IHVubGlrZWx5KGFyZzEgPiBTSFJUX01BWCkp Ci0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQko ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNn KCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQog CVBHX1JFVFVSTl9JTlQxNigoaW50MTYpIGFyZzEpOwogfQogCi0tIAoyLjM0LjEKCg== --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgp0311 RnJvbSBlY2NlOTg1MGI1NzkzMTc0ZmI2NzY5OWI5NTEwNmMzNjM4MjA4ODhjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNjozODozNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MDkvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgYmlnaW50IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2JpZ2ludCc6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJv c3JjICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBi aWdpbnQgICAgIHwgc21hbGxpbnQgICAgICAgICB8ICAgICAgNzE0IHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaW50ODIgICAgICAgIHwgaW50MgogYmlnaW50ICAgICB8IGludGVnZXIgICAg ICAgICAgfCAgICAgIDQ4MCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDg0ICAgICAg ICB8IGludDQKIGJpZ2ludCAgICAgfCByZWFsICAgICAgICAgICAgIHwgICAgICA2NTIgfCBpICAg ICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvZiAgICAgICAgfCBmbG9hdDQKIGJpZ2ludCAgICAg fCBkb3VibGUgcHJlY2lzaW9uIHwgICAgICA0ODIgfCBpICAgICAgICAgICB8IGYgICAgICAgICAg fCBpOHRvZCAgICAgICAgfCBmbG9hdDgKIGJpZ2ludCAgICAgfCBudW1lcmljICAgICAgICAgIHwg ICAgIDE3ODEgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnQ4X251bWVyaWMgfCBudW1l cmljCiBiaWdpbnQgICAgIHwgbW9uZXkgICAgICAgICAgICB8ICAgICAzODEyIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgaW50OF9jYXNoICAgIHwgbW9uZXkKIGJpZ2ludCAgICAgfCBvaWQg ICAgICAgICAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRv b2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdwcm9jICAgICAgICAgIHwgICAgIDEyODcg fCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAg ICAgfCByZWdwcm9jZWR1cmUgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAg ICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdvcGVyICAgICAgICAgIHwg ICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQK IGJpZ2ludCAgICAgfCByZWdvcGVyYXRvciAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdjbGFzcyAg ICAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAg ICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdjb2xsYXRpb24gICAgIHwgICAgIDEyODcgfCBpICAg ICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCBy ZWd0eXBlICAgICAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBp OHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdjb25maWcgICAgICAgIHwgICAgIDEy ODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2lu dCAgICAgfCByZWdkaWN0aW9uYXJ5ICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdyb2xlICAgICAgICAg IHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBv aWQKIGJpZ2ludCAgICAgfCByZWduYW1lc3BhY2UgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAg ICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdkYXRh YmFzZSAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lk ICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCBieXRlYSAgICAgICAgICAgIHwgICAgIDYzNjkgfCBl ICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnQ4X2J5dGVhICAgfCBieXRlYQogYmlnaW50ICAg ICB8IGJpdCAgICAgICAgICAgICAgfCAgICAgMjA3NSB8IGUgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGJpdGZyb21pbnQ4ICB8IGJpdAooMjEgcm93cykKCmFscmVhZHkgZXJyb3Igc2FmZTogaTh0 b2YsIGk4dG9kLCBpbnQ4X251bWVyaWMsIGludDhfYnl0ZWEsIGJpdGZyb21pbnQ4CmRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNr UThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2ludDguYyB8IDE4ICsrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2ludDguYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggYmRlYTQ5 MDIwMmEuLjNiMmQxMDBiZTkyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50 OC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEyMDQsMTAgKzEyMDQs MTQgQEAgaW50ODQoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2NAkJYXJnID0gUEdfR0VUQVJHX0lO VDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IFBHX0lOVDMyX01JTikgfHwgdW5saWtlbHko YXJnID4gUEdfSU5UMzJfTUFYKSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNp bmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0Zf UkFOR0UpLAogCQkJCSBlcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19S RVRVUk5fTlVMTCgpOworCX0KKwogCVBHX1JFVFVSTl9JTlQzMigoaW50MzIpIGFyZyk7CiB9CiAK QEAgLTEyMjUsMTAgKzEyMjksMTQgQEAgaW50ODIoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2NAkJ YXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IFBHX0lOVDE2 X01JTikgfHwgdW5saWtlbHkoYXJnID4gUEdfSU5UMTZfTUFYKSkKLQkJZXJlcG9ydChFUlJPUiwK Kwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiBy YW5nZSIpKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisKIAlQR19SRVRVUk5fSU5UMTYo KGludDE2KSBhcmcpOwogfQogCkBAIC0xMzA4LDEwICsxMzE2LDE0IEBAIGk4dG9vaWQoUEdfRlVO Q1RJT05fQVJHUykKIAlpbnQ2NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVu bGlrZWx5KGFyZyA8IDApIHx8IHVubGlrZWx5KGFyZyA+IFBHX1VJTlQzMl9NQVgpKQotCQllcmVw b3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiT0lEIG91 dCBvZiByYW5nZSIpKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisKIAlQR19SRVRVUk5f T0lEKChPaWQpIGFyZyk7CiB9CiAKLS0gCjIuMzQuMQoK --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgp0714 RnJvbSAxMDE2NTFlOWEzN2ZhMzk0MTEzMDA2ZjNmNWJhMzAyMThkMWZiNjBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTo1NTo1NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MDYvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgaW5ldCB0byBvdGhlciB0eXBlcyBwZXIKIHBn X2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBj YXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1lIGZy b20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMgYW5k IHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbmV0Jzo6cmVndHlw ZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBjYXN0dGFy Z2V0ICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJvc3Jj ICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogaW5l dCAgICAgICB8IGNpZHIgICAgICAgICAgICAgIHwgICAgIDE3MTUgfCBhICAgICAgICAgICB8IGYg ICAgICAgICAgfCBpbmV0X3RvX2NpZHIgfCBjaWRyCiBpbmV0ICAgICAgIHwgdGV4dCAgICAgICAg ICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG5ldHdvcmtfc2hv dyB8IHRleHQKIGluZXQgICAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNzMwIHwgYSAg ICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19zaG93IHwgdGV4dAogaW5ldCAgICAgICB8 IGNoYXJhY3RlciAgICAgICAgIHwgICAgICA3MzAgfCBhICAgICAgICAgICB8IGYgICAgICAgICAg fCBuZXR3b3JrX3Nob3cgfCB0ZXh0Cig0IHJvd3MpCgppbmV0X3RvX2NpZHIgaXMgYWxyZWFkeSBl cnJvciBzYWZlLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZ NFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0t CiBzcmMvYmFja2VuZC91dGlscy9hZHQvbmV0d29yay5jIHwgNiArKysrKy0KIDEgZmlsZSBjaGFu Z2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsu YwppbmRleCAzY2IwYWI2ODI5YS4uZjM0MjI4NzYzZGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsu YwpAQCAtMTEzNywxMCArMTEzNywxNCBAQCBuZXR3b3JrX3Nob3coUEdfRlVOQ1RJT05fQVJHUykK IAogCWlmIChwZ19pbmV0X25ldF9udG9wKGlwX2ZhbWlseShpcCksIGlwX2FkZHIoaXApLCBpcF9t YXhiaXRzKGlwKSwKIAkJCQkJCSB0bXAsIHNpemVvZih0bXApKSA9PSBOVUxMKQotCQllcmVwb3J0 KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX0JJTkFSWV9SRVBSRVNFTlRBVElPTiksCiAJCQkJIGVycm1zZygiY291bGQg bm90IGZvcm1hdCBpbmV0IHZhbHVlOiAlbSIpKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9 CisKIAkvKiBBZGQgL24gaWYgbm90IHByZXNlbnQgKHdoaWNoIGl0IHdvbid0IGJlKSAqLwogCWlm IChzdHJjaHIodG1wLCAnLycpID09IE5VTEwpCiAJewotLSAKMi4zNC4xCgo= --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgp0613 RnJvbSA3ZDUxNTJlODhjYjg1MDY4MTFmNjFmODNmZjJiYjlhN2YzY2ZhY2JlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOToxMjoxMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MDcvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgbWFjYWRkcjggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3RmdW5j CmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdtYWNhZGRyOCc6 OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2Fz dHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgICBwcm9z cmMgICAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQog bWFjYWRkcjggICB8IG1hY2FkZHIgICAgfCAgICAgNDEyNCB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IG1hY2FkZHI4dG9tYWNhZGRyIHwgbWFjYWRkcgooMSByb3cpCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1 M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9t YWM4LmMgfCA2ICsrKysrLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IDA4ZTQxYmE0ZWVhLi5lMmE3YTkwZTQyYyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUwLDggQEAgbWFjYWRkcjh0b21hY2FkZHIo UEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSAobWFjYWRkciAqKSBwYWxsb2MwKHNpemVvZiht YWNhZGRyKSk7CiAKIAlpZiAoKGFkZHItPmQgIT0gMHhGRikgfHwgKGFkZHItPmUgIT0gMHhGRSkp Ci0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQko ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNn KCJtYWNhZGRyOCBkYXRhIG91dCBvZiByYW5nZSB0byBjb252ZXJ0IHRvIG1hY2FkZHIiKSwKIAkJ CQkgZXJyaGludCgiT25seSBhZGRyZXNzZXMgdGhhdCBoYXZlIEZGIGFuZCBGRSBhcyB2YWx1ZXMg aW4gdGhlICIKQEAgLTU1OCw2ICs1NTksOSBAQCBtYWNhZGRyOHRvbWFjYWRkcihQR19GVU5DVElP Tl9BUkdTKQogCQkJCQkJICJ4eDp4eDp4eDpmZjpmZTp4eDp4eDp4eCwgYXJlIGVsaWdpYmxlIHRv IGJlIGNvbnZlcnRlZCAiCiAJCQkJCQkgImZyb20gbWFjYWRkcjggdG8gbWFjYWRkci4iKSkpOwog CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJcmVzdWx0LT5hID0gYWRkci0+YTsKIAlyZXN1 bHQtPmIgPSBhZGRyLT5iOwogCXJlc3VsdC0+YyA9IGFkZHItPmM7Ci0tIAoyLjM0LjEKCg== --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgp0916 RnJvbSBhNmM0N2M0YzM1MWYyZDY5ZTVhNmJlMmU3N2M1NzAxYTczZTZhMjRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTo0NjoxNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MDMvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgY2hhcmFjdGVyIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0nY2hhcmFjdGVy Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAg ICBjYXN0dGFyZ2V0ICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwg ICBwcm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0KIGNoYXJhY3RlciAgfCB0ZXh0ICAgICAgICAgICAgICB8ICAgICAgNDAxIHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgcnRyaW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgY2hhcmFj dGVyIHZhcnlpbmcgfCAgICAgIDQwMSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHJ0cmlt MSAgICAgIHwgdGV4dAogY2hhcmFjdGVyICB8ICJjaGFyIiAgICAgICAgICAgIHwgICAgICA5NDQg fCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X2NoYXIgICB8IGNoYXIKIGNoYXJhY3Rl ciAgfCBuYW1lICAgICAgICAgICAgICB8ICAgICAgNDA5IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgYnBjaGFyX25hbWUgfCBuYW1lCiBjaGFyYWN0ZXIgIHwgeG1sICAgICAgICAgICAgICAg fCAgICAgMjg5NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHR0b3htbCAgIHwgeG1s CiBjaGFyYWN0ZXIgIHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDY2OCB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGJwY2hhciAgICAgIHwgYnBjaGFyCig2IHJvd3MpCgpvbmx5IHRleHR0 b3htbCwgYnBjaGFyKFBHX0ZVTkNUSU9OX0FSR1MpIG5lZWQgdGFrZSBjYXJlIG9mIGVycm9yIGhh bmRsaW5nLgpvdGhlciBmdW5jdGlvbnMgYWxyZWFkeSBlcnJvciBzYWZlLgoKZGlzY3Vzc2lvbjog aHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpa dTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwckludGVycC5jIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMg ICAgICAgfCAgNiArKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYyAgICAgICAgICAg fCAxMiArKysrKysrKy0tLS0KIHNyYy9pbmNsdWRlL3V0aWxzL3htbC5oICAgICAgICAgICAgICAg fCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IDBlMWE3NDk3NmY3Li42 N2Y0ZTAwZWFjNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRl cnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC00NTQy LDcgKzQ1NDIsNyBAQCBFeGVjRXZhbFhtbEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxT dGVwICpvcCkKIAogCQkJCSpvcC0+cmVzdmFsdWUgPSBQb2ludGVyR2V0RGF0dW0oeG1scGFyc2Uo ZGF0YSwKIAkJCQkJCQkJCQkJCQkJIHhleHByLT54bWxvcHRpb24sCi0JCQkJCQkJCQkJCQkJCSBw cmVzZXJ2ZV93aGl0ZXNwYWNlKSk7CisJCQkJCQkJCQkJCQkJCSBwcmVzZXJ2ZV93aGl0ZXNwYWNl LCBOVUxMKSk7CiAJCQkJKm9wLT5yZXNudWxsID0gZmFsc2U7CiAJCQl9CiAJCQlicmVhazsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvdmFyY2hhci5jCmluZGV4IDNmNDBjOWRhMWEwLi5hOTVlNGJkMDk0ZSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvdmFyY2hhci5jCkBAIC0zMDcsMTAgKzMwNywxNCBAQCBicGNoYXIoUEdfRlVOQ1RJ T05fQVJHUykKIAkJewogCQkJZm9yIChpID0gbWF4bWJsZW47IGkgPCBsZW47IGkrKykKIAkJCQlp ZiAoc1tpXSAhPSAnICcpCi0JCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJeworCQkJCQllcnJzYXZl KGZjaW5mby0+Y29udGV4dCwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX1JJ R0hUX1RSVU5DQVRJT04pLAogCQkJCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZvciB0eXBl IGNoYXJhY3RlciglZCkiLAogCQkJCQkJCQkJbWF4bGVuKSkpOworCisJCQkJCVBHX1JFVFVSTl9O VUxMKCk7CisJCQkJfQogCQl9CiAKIAkJbGVuID0gbWF4bWJsZW47CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQveG1sLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMKaW5k ZXggNjZiNDQxODM2OTUuLmU2YTViZThkOWNjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQveG1sLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCkBAIC02NTksNyAr NjU5LDcgQEAgdGV4dHRveG1sKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJdGV4dAkgICAqZGF0YSA9 IFBHX0dFVEFSR19URVhUX1BQKDApOwogCi0JUEdfUkVUVVJOX1hNTF9QKHhtbHBhcnNlKGRhdGEs IHhtbG9wdGlvbiwgdHJ1ZSkpOworCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShkYXRhLCB4bWxv cHRpb24sIHRydWUsIGZjaW5mby0+Y29udGV4dCkpOwogfQogCiAKQEAgLTEwMjgsMTQgKzEwMjgs MTggQEAgeG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAogCiB4bWx0eXBlICoKLXhtbHBhcnNl KHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93 aGl0ZXNwYWNlKQoreG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxvcHRpb25f YXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UsIE5vZGUgKmVzY29udGV4dCkKIHsKICNpZmRl ZiBVU0VfTElCWE1MCiAJeG1sRG9jUHRyCWRvYzsKIAogCWRvYyA9IHhtbF9wYXJzZShkYXRhLCB4 bWxvcHRpb25fYXJnLCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLAotCQkJCQlHZXREYXRhYmFzZUVuY29k aW5nKCksIE5VTEwsIE5VTEwsIE5VTEwpOwotCXhtbEZyZWVEb2MoZG9jKTsKKwkJCQkJR2V0RGF0 YWJhc2VFbmNvZGluZygpLCBOVUxMLCBOVUxMLCBlc2NvbnRleHQpOworCWlmIChkb2MpCisJCXht bEZyZWVEb2MoZG9jKTsKKworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJ CXJldHVybiBOVUxMOwogCiAJcmV0dXJuICh4bWx0eXBlICopIGRhdGE7CiAjZWxzZQpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmggYi9zcmMvaW5jbHVkZS91dGlscy94bWwuaApp bmRleCAwZDdhODE2YjlmOS4uYjNkM2YxMWZhYzQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0 aWxzL3htbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oCkBAIC03Myw3ICs3Myw3IEBA IGV4dGVybiB4bWx0eXBlICp4bWxjb25jYXQoTGlzdCAqYXJncyk7CiBleHRlcm4geG1sdHlwZSAq eG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAkJCQkJCSAgIERhdHVtICpuYW1lZF9hcmd2YWx1 ZSwgYm9vbCAqbmFtZWRfYXJnbnVsbCwKIAkJCQkJCSAgIERhdHVtICphcmd2YWx1ZSwgYm9vbCAq YXJnbnVsbCk7Ci1leHRlcm4geG1sdHlwZSAqeG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9u VHlwZSB4bWxvcHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UpOworZXh0ZXJuIHht bHR5cGUgKnhtbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywg Ym9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIHhtbHR5 cGUgKnhtbHBpKGNvbnN0IGNoYXIgKnRhcmdldCwgdGV4dCAqYXJnLCBib29sIGFyZ19pc19udWxs LCBib29sICpyZXN1bHRfaXNfbnVsbCk7CiBleHRlcm4geG1sdHlwZSAqeG1scm9vdCh4bWx0eXBl ICpkYXRhLCB0ZXh0ICp2ZXJzaW9uLCBpbnQgc3RhbmRhbG9uZSk7CiBleHRlcm4gYm9vbCB4bWxf aXNfZG9jdW1lbnQoeG1sdHlwZSAqYXJnKTsKLS0gCjIuMzQuMQoK --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_ca.patch" Content-Disposition: attachment; filename="v7-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_ca.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgp0815 RnJvbSAwODQ5ZmZlNmM2MmZjY2YxOGNlMDNjYmQ4ZWY1OTNhNjAxZGFmNTBmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOToxNzowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MDUvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgY2hhcmFjdGVyIHZhcnlpbmcgdG8gb3RoZXIK IHR5cGVzIHBlciBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdl dDo6cmVndHlwZSwgY2FzdGZ1bmMsIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywg cHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBj LmNhc3RmdW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kCihjYXN0c291cmNlOjpyZWd0eXBlID0g J2NoYXJhY3RlciB2YXJ5aW5nJzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlw ZTsKCiAgICBjYXN0c291cmNlICAgICB8ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBj YXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9zcmMgICAgIHwgcHJvbmFtZQotLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogY2hhcmFjdGVyIHZhcnlp bmcgfCByZWdjbGFzcyAgICAgICAgICB8ICAgICAxMDc5IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgdGV4dF9yZWdjbGFzcyB8IHJlZ2NsYXNzCiBjaGFyYWN0ZXIgdmFyeWluZyB8ICJjaGFy IiAgICAgICAgICAgIHwgICAgICA5NDQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0 X2NoYXIgICAgIHwgY2hhcgogY2hhcmFjdGVyIHZhcnlpbmcgfCBuYW1lICAgICAgICAgICAgICB8 ICAgICAxNDAwIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dF9uYW1lICAgICB8IG5h bWUKIGNoYXJhY3RlciB2YXJ5aW5nIHwgeG1sICAgICAgICAgICAgICAgfCAgICAgMjg5NiB8IGUg ICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHR0b3htbCAgICAgfCB4bWwKIGNoYXJhY3RlciB2 YXJ5aW5nIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCAgICAgIDY2OSB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IHZhcmNoYXIgICAgICAgfCB2YXJjaGFyCig1IHJvd3MpCgp0ZXh0dG94bWwsIHRl eHRfcmVnY2xhc3Mgd2FzIHJlZmFjdG9yZWQgYXMgZXJyb3Igc2FmZSBpbiBwcmlvciBwYXRjaC4K dGV4dF9jaGFyLCB0ZXh0X25hbWUgaXMgYWxyZWFkeSBlcnJvciBzYWZlLgpzbyBoZXJlIHdlIG9u bHkgbmVlZCBoYW5kbGUgZnVuY3Rpb24gInZhcmNoYXIiLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2 aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5j IHwgNiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCBhOTVlNGJkMDk0ZS4uZmRiZWYyNzJjMzkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM4LDEwICs2MzgsMTQgQEAgdmFyY2hhcihQ R19GVU5DVElPTl9BUkdTKQogCXsKIAkJZm9yIChpID0gbWF4bWJsZW47IGkgPCBsZW47IGkrKykK IAkJCWlmIChzX2RhdGFbaV0gIT0gJyAnKQotCQkJCWVyZXBvcnQoRVJST1IsCisJCQl7CisJCQkJ ZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCShlcnJjb2RlKEVSUkNP REVfU1RSSU5HX0RBVEFfUklHSFRfVFJVTkNBVElPTiksCiAJCQkJCQkgZXJybXNnKCJ2YWx1ZSB0 b28gbG9uZyBmb3IgdHlwZSBjaGFyYWN0ZXIgdmFyeWluZyglZCkiLAogCQkJCQkJCQltYXhsZW4p KSk7CisKKwkJCQlQR19SRVRVUk5fTlVMTCgpOworCQkJfQogCX0KIAogCVBHX1JFVFVSTl9WQVJD SEFSX1AoKFZhckNoYXIgKikgY3N0cmluZ190b190ZXh0X3dpdGhfbGVuKHNfZGF0YSwKLS0gCjIu MzQuMQoK --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgp0b17 RnJvbSBmZWQ0Zjc1ZDBhMmE3N2M5OWVlYmNkNjM1MWZmMDk5ZDM4NTU4N2JmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOTowOTo1MyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MDIvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgYml0L3ZhcmJpdCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKICAgICAgIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywg cHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBj LmNhc3RmdW5jCndoZXJlIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSdiaXQnOjpyZWd0eXBlIG9yCmNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSd2YXJiaXQnOjpyZWd0eXBl KQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgIHwgY2FzdHRhcmdl dCAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICBwcm9zcmMgICB8IHBy b25hbWUKLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBiaXQgICAgICAgICB8IGJpZ2lu dCAgICAgIHwgICAgIDIwNzYgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBiaXR0b2ludDgg fCBpbnQ4CiBiaXQgICAgICAgICB8IGludGVnZXIgICAgIHwgICAgIDE2ODQgfCBlICAgICAgICAg ICB8IGYgICAgICAgICAgfCBiaXR0b2ludDQgfCBpbnQ0CiBiaXQgICAgICAgICB8IGJpdCAgICAg ICAgIHwgICAgIDE2ODUgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBiaXQgICAgICAgfCBi aXQKIGJpdCB2YXJ5aW5nIHwgYml0IHZhcnlpbmcgfCAgICAgMTY4NyB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IHZhcmJpdCAgICB8IHZhcmJpdAooNCByb3dzKQoKZGlzY3Vzc2lvbjogaHR0 cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNU el9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvdmFy Yml0LmMgfCAyNCArKysrKysrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMCBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC92YXJiaXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYwppbmRleCAy MDVhNjdkYWZjNS4uYmZjZWExOGY0YjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC92YXJiaXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyYml0LmMKQEAgLTQwMSwx MSArNDAxLDE1IEBAIGJpdChQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fVkFSQklUX1Ao YXJnKTsKIAogCWlmICghaXNFeHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNh dmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFfTEVO R1RIX01JU01BVENIKSwKIAkJCQkgZXJybXNnKCJiaXQgc3RyaW5nIGxlbmd0aCAlZCBkb2VzIG5v dCBtYXRjaCB0eXBlIGJpdCglZCkiLAogCQkJCQkJVkFSQklUTEVOKGFyZyksIGxlbikpKTsKIAor CQlQR19SRVRVUk5fTlVMTCgpOworCX0KKwogCXJsZW4gPSBWQVJCSVRUT1RBTExFTihsZW4pOwog CS8qIHNldCB0byAwIHNvIHRoYXQgc3RyaW5nIGlzIHplcm8tcGFkZGVkICovCiAJcmVzdWx0ID0g KFZhckJpdCAqKSBwYWxsb2MwKHJsZW4pOwpAQCAtNzUyLDExICs3NTYsMTUgQEAgdmFyYml0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcpOwogCiAJaWYgKCFpc0V4 cGxpY2l0KQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQs CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9TVFJJTkdfREFUQV9SSUdIVF9UUlVOQ0FUSU9OKSwKIAkJ CQkgZXJybXNnKCJiaXQgc3RyaW5nIHRvbyBsb25nIGZvciB0eXBlIGJpdCB2YXJ5aW5nKCVkKSIs CiAJCQkJCQlsZW4pKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisKIAlybGVuID0gVkFS QklUVE9UQUxMRU4obGVuKTsKIAlyZXN1bHQgPSAoVmFyQml0ICopIHBhbGxvYyhybGVuKTsKIAlT RVRfVkFSU0laRShyZXN1bHQsIHJsZW4pOwpAQCAtMTU5MSwxMCArMTU5OSwxNCBAQCBiaXR0b2lu dDQoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIENoZWNrIHRoYXQgdGhlIGJpdCBzdHJpbmcgaXMg bm90IHRvbyBsb25nICovCiAJaWYgKFZBUkJJVExFTihhcmcpID4gc2l6ZW9mKHJlc3VsdCkgKiBC SVRTX1BFUl9CWVRFKQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNv bnRleHQsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9O VUxMKCk7CisJfQorCiAJcmVzdWx0ID0gMDsKIAlmb3IgKHIgPSBWQVJCSVRTKGFyZyk7IHIgPCBW QVJCSVRFTkQoYXJnKTsgcisrKQogCXsKQEAgLTE2NzEsMTAgKzE2ODMsMTQgQEAgYml0dG9pbnQ4 KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQgc3RyaW5nIGlzIG5v dCB0b28gbG9uZyAqLwogCWlmIChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihyZXN1bHQpICogQklU U19QRVJfQllURSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250 ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAog CQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxM KCk7CisJfQorCiAJcmVzdWx0ID0gMDsKIAlmb3IgKHIgPSBWQVJCSVRTKGFyZyk7IHIgPCBWQVJC SVRFTkQoYXJnKTsgcisrKQogCXsKLS0gCjIuMzQuMQoK --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0018-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v7-0018-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgp0c18 RnJvbSBjZWRkMTZiYjNiYzdkZjQ4NzBmNjY4OWNiOTBlMTM3ZTgzZGNjNjZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOToxOTowNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MTgvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZ2VvbWV0cnkgZGF0YSB0eXBlCgpzZWxlY3Qg Y2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwgcHAucHJvc3JjCmZyb20g cGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1bmMKam9pbiBw Z190eXBlIHB0IG9uIHB0Lm9pZCA9IGNhc3Rzb3VyY2UKam9pbiBwZ190eXBlIHB0MSBvbiBwdDEu b2lkID0gY2FzdHRhcmdldAphbmQgcGMuY2FzdGZ1bmMgPiAwIGFuZCAgcHQudHlwYXJyYXkgPD4g MAphbmQgcHQudHlwbmFtZXNwYWNlID0gJ3BnX2NhdGFsb2cnOjpyZWduYW1lc3BhY2UKYW5kIHB0 MS50eXBuYW1lc3BhY2UgPSAncGdfY2F0YWxvZyc6OnJlZ25hbWVzcGFjZQphbmQgKHB0LnR5cGNh dGVnb3J5ICA9ICdHJyBvciBwdDEudHlwY2F0ZWdvcnkgID0gJ0cnKQpvcmRlciBieSBjYXN0c291 cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgICAgcHJvc3JjCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t CiBwb2ludCAgICAgIHwgYm94ICAgICAgICB8IHBvaW50X2JveAogbHNlZyAgICAgICB8IHBvaW50 ICAgICAgfCBsc2VnX2NlbnRlcgogcGF0aCAgICAgICB8IHBvbHlnb24gICAgfCBwYXRoX3BvbHkK IGJveCAgICAgICAgfCBwb2ludCAgICAgIHwgYm94X2NlbnRlcgogYm94ICAgICAgICB8IGxzZWcg ICAgICAgfCBib3hfZGlhZ29uYWwKIGJveCAgICAgICAgfCBwb2x5Z29uICAgIHwgYm94X3BvbHkK IGJveCAgICAgICAgfCBjaXJjbGUgICAgIHwgYm94X2NpcmNsZQogcG9seWdvbiAgICB8IHBvaW50 ICAgICAgfCBwb2x5X2NlbnRlcgogcG9seWdvbiAgICB8IHBhdGggICAgICAgfCBwb2x5X3BhdGgK IHBvbHlnb24gICAgfCBib3ggICAgICAgIHwgcG9seV9ib3gKIHBvbHlnb24gICAgfCBjaXJjbGUg ICAgIHwgcG9seV9jaXJjbGUKIGNpcmNsZSAgICAgfCBwb2ludCAgICAgIHwgY2lyY2xlX2NlbnRl cgogY2lyY2xlICAgICB8IGJveCAgICAgICAgfCBjaXJjbGVfYm94CiBjaXJjbGUgICAgIHwgcG9s eWdvbiAgICB8CigxNCByb3dzKQoKYWxyZWFkeSBlcnJvciBzYWZlOiBwb2ludF9ib3gsIGJveF9k aWFnb25hbCwgYm94X3BvbHksIHBvbHlfcGF0aCwgcG9seV9ib3gsIGNpcmNsZV9jZW50ZXIKYWxt b3N0IGVycm9yIHNhZmU6IHBhdGhfcG9seQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQUNKdWZ4SENNenJIT1c9d1JlOEwzMHJNaEIzc2p3QXYxTEU5MjhGYTdzeE11MVR4LWdAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3Byb2MuYyB8ICAg MiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICAgICAgfCAgIDggKy0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMgICAgIHwgMjgyICsrKysrKysrKysrKysrKysrKysr KysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fc3BnaXN0LmMgIHwgICAyICstCiBz cmMvaW5jbHVkZS91dGlscy9mbG9hdC5oICAgICAgICAgICB8IDEwNyArKysrKysrKysrKwogc3Jj L2luY2x1ZGUvdXRpbHMvZ2VvX2RlY2xzLmggICAgICAgfCAgIDQgKy0KIDYgZmlsZXMgY2hhbmdl ZCwgMzU4IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BncHJvYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lz dC9zcGdwcm9jLmMKaW5kZXggNjYwMDA5MjkxZGEuLmIzZTBmYmM1OWJhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3Byb2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3Mvc3BnaXN0L3NwZ3Byb2MuYwpAQCAtNTEsNyArNTEsNyBAQCBwb2ludF9ib3hfZGlzdGFuY2Uo UG9pbnQgKnBvaW50LCBCT1ggKmJveCkKIAllbHNlCiAJCWR5ID0gMC4wOwogCi0JcmV0dXJuIEhZ UE9UKGR4LCBkeSk7CisJcmV0dXJuIEhZUE9UKGR4LCBkeSwgTlVMTCk7CiB9CiAKIC8qCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCmluZGV4IDY3NDc1NDRiNjc5Li4wNmIyYjZhZTI5NSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2Zsb2F0LmMKQEAgLTc3Miw3ICs3NzIsNyBAQCBmbG9hdDhwbChQR19GVU5DVElPTl9BUkdTKQog CWZsb2F0OAkJYXJnMSA9IFBHX0dFVEFSR19GTE9BVDgoMCk7CiAJZmxvYXQ4CQlhcmcyID0gUEdf R0VUQVJHX0ZMT0FUOCgxKTsKIAotCVBHX1JFVFVSTl9GTE9BVDgoZmxvYXQ4X3BsKGFyZzEsIGFy ZzIpKTsKKwlQR19SRVRVUk5fRkxPQVQ4KGZsb2F0OF9wbF9zYWZlKGFyZzEsIGFyZzIsIGZjaW5m by0+Y29udGV4dCkpOwogfQogCiBEYXR1bQpAQCAtNzgxLDcgKzc4MSw3IEBAIGZsb2F0OG1pKFBH X0ZVTkNUSU9OX0FSR1MpCiAJZmxvYXQ4CQlhcmcxID0gUEdfR0VUQVJHX0ZMT0FUOCgwKTsKIAlm bG9hdDgJCWFyZzIgPSBQR19HRVRBUkdfRkxPQVQ4KDEpOwogCi0JUEdfUkVUVVJOX0ZMT0FUOChm bG9hdDhfbWkoYXJnMSwgYXJnMikpOworCVBHX1JFVFVSTl9GTE9BVDgoZmxvYXQ4X21pX3NhZmUo YXJnMSwgYXJnMiwgZmNpbmZvLT5jb250ZXh0KSk7CiB9CiAKIERhdHVtCkBAIC03OTAsNyArNzkw LDcgQEAgZmxvYXQ4bXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJZmxvYXQ4CQlhcmcxID0gUEdfR0VU QVJHX0ZMT0FUOCgwKTsKIAlmbG9hdDgJCWFyZzIgPSBQR19HRVRBUkdfRkxPQVQ4KDEpOwogCi0J UEdfUkVUVVJOX0ZMT0FUOChmbG9hdDhfbXVsKGFyZzEsIGFyZzIpKTsKKwlQR19SRVRVUk5fRkxP QVQ4KGZsb2F0OF9tdWxfc2FmZShhcmcxLCBhcmcyLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAog RGF0dW0KQEAgLTc5OSw3ICs3OTksNyBAQCBmbG9hdDhkaXYoUEdfRlVOQ1RJT05fQVJHUykKIAlm bG9hdDgJCWFyZzEgPSBQR19HRVRBUkdfRkxPQVQ4KDApOwogCWZsb2F0OAkJYXJnMiA9IFBHX0dF VEFSR19GTE9BVDgoMSk7CiAKLQlQR19SRVRVUk5fRkxPQVQ4KGZsb2F0OF9kaXYoYXJnMSwgYXJn MikpOworCVBHX1JFVFVSTl9GTE9BVDgoZmxvYXQ4X2Rpdl9zYWZlKGFyZzEsIGFyZzIsIGZjaW5m by0+Y29udGV4dCkpOwogfQogCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9n ZW9fb3BzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCmluZGV4IDM3N2ExYjNm M2FkLi5hNWYyNTM3ZGEyNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19v cHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBAIC03OCwxMSArNzgs MTQgQEAgZW51bSBwYXRoX2RlbGltCiAvKiBSb3V0aW5lcyBmb3IgcG9pbnRzICovCiBzdGF0aWMg aW5saW5lIHZvaWQgcG9pbnRfY29uc3RydWN0KFBvaW50ICpyZXN1bHQsIGZsb2F0OCB4LCBmbG9h dDggeSk7CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfYWRkX3BvaW50KFBvaW50ICpyZXN1bHQs IFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGluZSBib29sIHBvaW50X2FkZF9w b2ludF9zYWZlKFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIsCisJCQkJCQkJ CQkJTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9zdWJfcG9pbnQo UG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5saW5lIHZv aWQgcG9pbnRfbXVsX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIp Owogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2Rpdl9wb2ludChQb2ludCAqcmVzdWx0LCBQb2lu dCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgYm9vbCBwb2ludF9lcV9wb2ludChQ b2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4IHBvaW50X2R0KFBv aW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGluZSBib29sIHBvaW50X2R0X3NhZmUo UG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9kZSAqZXNjb250ZXh0LCBmbG9hdDggKnJlc3VsdCk7 CiBzdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9zbChQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsK IHN0YXRpYyBpbnQJcG9pbnRfaW5zaWRlKFBvaW50ICpwLCBpbnQgbnB0cywgUG9pbnQgKnBsaXN0 KTsKIApAQCAtMTA5LDYgKzExMiw3IEBAIHN0YXRpYyBmbG9hdDggbHNlZ19jbG9zZXB0X2xzZWco UG9pbnQgKnJlc3VsdCwgTFNFRyAqb25fbHNlZywgTFNFRyAqdG9fbHNlZyk7CiAvKiBSb3V0aW5l cyBmb3IgYm94ZXMgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBib3hfY29uc3RydWN0KEJPWCAqcmVz dWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyB2b2lkIGJveF9jbihQb2ludCAq Y2VudGVyLCBCT1ggKmJveCk7CitzdGF0aWMgYm9vbCBib3hfY25fc2FmZShQb2ludCAqY2VudGVy LCBCT1ggKmJveCwgTm9kZSogZXNjb250ZXh0KTsKIHN0YXRpYyBib29sIGJveF9vdihCT1ggKmJv eDEsIEJPWCAqYm94Mik7CiBzdGF0aWMgZmxvYXQ4IGJveF9hcihCT1ggKmJveCk7CiBzdGF0aWMg ZmxvYXQ4IGJveF9odChCT1ggKmJveCk7CkBAIC0xMjUsNyArMTI5LDcgQEAgc3RhdGljIGZsb2F0 OCBjaXJjbGVfYXIoQ0lSQ0xFICpjaXJjbGUpOwogCiAvKiBSb3V0aW5lcyBmb3IgcG9seWdvbnMg Ki8KIHN0YXRpYyB2b2lkIG1ha2VfYm91bmRfYm94KFBPTFlHT04gKnBvbHkpOwotc3RhdGljIHZv aWQgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpOworc3RhdGlj IGJvb2wgcG9seV90b19jaXJjbGVfc2FmZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAqcG9seSwg Tm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBib29sIGxzZWdfaW5zaWRlX3BvbHkoUG9pbnQgKmEs IFBvaW50ICpiLCBQT0xZR09OICpwb2x5LCBpbnQgc3RhcnQpOwogc3RhdGljIGJvb2wgcG9seV9j b250YWluX3BvbHkoUE9MWUdPTiAqY29udGFpbnNfcG9seSwgUE9MWUdPTiAqY29udGFpbmVkX3Bv bHkpOwogc3RhdGljIGJvb2wgcGxpc3Rfc2FtZShpbnQgbnB0cywgUG9pbnQgKnAxLCBQb2ludCAq cDIpOwpAQCAtODUxLDcgKzg1NSw4IEBAIGJveF9jZW50ZXIoUEdfRlVOQ1RJT05fQVJHUykKIAlC T1gJCSAgICpib3ggPSBQR19HRVRBUkdfQk9YX1AoMCk7CiAJUG9pbnQJICAgKnJlc3VsdCA9IChQ b2ludCAqKSBwYWxsb2Moc2l6ZW9mKFBvaW50KSk7CiAKLQlib3hfY24ocmVzdWx0LCBib3gpOwor CWlmICghYm94X2NuX3NhZmUocmVzdWx0LCBib3gsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOwogfQpAQCAtODc1LDYg Kzg4MCwzMSBAQCBib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gpCiAJY2VudGVyLT55ID0g ZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLnksIGJveC0+bG93LnkpLCAyLjApOwogfQog CisvKiBzYWZlIHZlcnNpb24gb2YgYm94X2NuICovCitzdGF0aWMgYm9vbAorYm94X2NuX3NhZmUo UG9pbnQgKmNlbnRlciwgQk9YICpib3gsIE5vZGUqIGVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXg7 CisJZmxvYXQ4CQl5OworCisJeCA9IGZsb2F0OF9wbF9zYWZlKGJveC0+aGlnaC54LCBib3gtPmxv dy54LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJ CXJldHVybiBmYWxzZTsKKworCWNlbnRlci0+eCA9IGZsb2F0OF9kaXZfc2FmZSh4LCAyLjAsIGVz Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJu IGZhbHNlOworCisJeSA9IGZsb2F0OF9wbF9zYWZlKGJveC0+aGlnaC55LCBib3gtPmxvdy55LCBl c2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVy biBmYWxzZTsKKworCWNlbnRlci0+eSA9IGZsb2F0OF9kaXZfc2FmZSh5LCAyLjAsIGVzY29udGV4 dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNl OworCisJcmV0dXJuIHRydWU7Cit9CiAKIC8qCQlib3hfd2QJLQkJcmV0dXJucyB0aGUgd2lkdGgg KGxlbmd0aCkgb2YgdGhlIGJveAogICoJCQkJCQkJCSAgKGhvcml6b250YWwgbWFnbml0dWRlKS4K QEAgLTEyNzYsNyArMTMwNiw3IEBAIGxpbmVfZGlzdGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAog CVBHX1JFVFVSTl9GTE9BVDgoZmxvYXQ4X2RpdihmYWJzKGZsb2F0OF9taShsMS0+QywKIAkJCQkJ CQkJCQkJICAgZmxvYXQ4X211bChyYXRpbywgbDItPkMpKSksCi0JCQkJCQkJCUhZUE9UKGwxLT5B LCBsMS0+QikpKTsKKwkJCQkJCQkJSFlQT1QobDEtPkEsIGwxLT5CLCBOVUxMKSkpOwogfQogCiAv KiBsaW5lX2ludGVycHQoKQpAQCAtMjAwMSw5ICsyMDMxLDM0IEBAIHBvaW50X2Rpc3RhbmNlKFBH X0ZVTkNUSU9OX0FSR1MpCiBzdGF0aWMgaW5saW5lIGZsb2F0OAogcG9pbnRfZHQoUG9pbnQgKnB0 MSwgUG9pbnQgKnB0MikKIHsKLQlyZXR1cm4gSFlQT1QoZmxvYXQ4X21pKHB0MS0+eCwgcHQyLT54 KSwgZmxvYXQ4X21pKHB0MS0+eSwgcHQyLT55KSk7CisJcmV0dXJuIEhZUE9UKGZsb2F0OF9taShw dDEtPngsIHB0Mi0+eCksIGZsb2F0OF9taShwdDEtPnksIHB0Mi0+eSksIE5VTEwpOwogfQogCisv KiBlcnJyb3Igc2FmZSB2ZXJzaW9uIG9mIHBvaW50X2R0ICovCitzdGF0aWMgaW5saW5lIGJvb2wK K3BvaW50X2R0X3NhZmUoUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9kZSAqZXNjb250ZXh0LCBm bG9hdDggKnJlc3VsdCkKK3sKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJQXNzZXJ0KHJl c3VsdCAhPSBOVUxMKTsKKworCXggPSBmbG9hdDhfbWlfc2FmZShwdDEtPngsIHB0Mi0+eCwgZXNj b250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4g ZmFsc2U7CisKKwl5ICA9IGZsb2F0OF9taV9zYWZlKHB0MS0+eSwgcHQyLT55LCBlc2NvbnRleHQp OworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsK KworCSpyZXN1bHQgPSBIWVBPVCh4LCB5LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQor CisKIERhdHVtCiBwb2ludF9zbG9wZShQR19GVU5DVElPTl9BUkdTKQogewpAQCAtMjMxNywxMyAr MjM3MiwzMSBAQCBsc2VnX2NlbnRlcihQR19GVU5DVElPTl9BUkdTKQogewogCUxTRUcJICAgKmxz ZWcgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCVBvaW50CSAgICpyZXN1bHQ7CisJZmxvYXQ4CQl4 OworCWZsb2F0OAkJeTsKIAogCXJlc3VsdCA9IChQb2ludCAqKSBwYWxsb2Moc2l6ZW9mKFBvaW50 KSk7CiAKLQlyZXN1bHQtPnggPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChsc2VnLT5wWzBdLngsIGxz ZWctPnBbMV0ueCksIDIuMCk7Ci0JcmVzdWx0LT55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwobHNl Zy0+cFswXS55LCBsc2VnLT5wWzFdLnkpLCAyLjApOworCXggPSBmbG9hdDhfcGxfc2FmZShsc2Vn LT5wWzBdLngsIGxzZWctPnBbMV0ueCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlyZXN1bHQtPngg PSBmbG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKworCXkgPSBmbG9h dDhfcGxfc2FmZShsc2VnLT5wWzBdLnksIGxzZWctPnBbMV0ueSwgZmNpbmZvLT5jb250ZXh0KTsK KwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7 CisKKwlyZXN1bHQtPnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4wLCBmY2luZm8tPmNvbnRleHQp OworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFp bDsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05V TEwoKTsKIH0KIAogCkBAIC00MTE1LDYgKzQxODgsMjcgQEAgcG9pbnRfYWRkX3BvaW50KFBvaW50 ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpCiAJCQkJCWZsb2F0OF9wbChwdDEtPnks IHB0Mi0+eSkpOwogfQogCisvKiBlcnJvciBzYWZlIHZlcnNpb24gb2YgcG9pbnRfYWRkX3BvaW50 ICovCitzdGF0aWMgaW5saW5lIGJvb2wKK3BvaW50X2FkZF9wb2ludF9zYWZlKFBvaW50ICpyZXN1 bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIsCisJCQkJCSBOb2RlICplc2NvbnRleHQpCit7CisJ ZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKKworCXggPSBmbG9hdDhfcGxfc2FmZShwdDEtPngsIHB0 Mi0+eCwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQor CQlyZXR1cm4gZmFsc2U7CisKKwl5ID0gZmxvYXQ4X3BsX3NhZmUocHQxLT55LCBwdDItPnksIGVz Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJu IGZhbHNlOworCisJcG9pbnRfY29uc3RydWN0KHJlc3VsdCwgeCwgeSk7CisKKwlyZXR1cm4gdHJ1 ZTsKK30KKwogRGF0dW0KIHBvaW50X2FkZChQR19GVU5DVElPTl9BUkdTKQogewpAQCAtNDQ1OCwx MCArNDU1MiwxNCBAQCBwYXRoX3BvbHkoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFRoaXMgaXMg bm90IHZlcnkgY29uc2lzdGVudCAtLS0gb3RoZXIgc2ltaWxhciBjYXNlcyByZXR1cm4gTlVMTCAu Li4gKi8KIAlpZiAoIXBhdGgtPmNsb3NlZCkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNh dmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVU RVJfVkFMVUUpLAogCQkJCSBlcnJtc2coIm9wZW4gcGF0aCBjYW5ub3QgYmUgY29udmVydGVkIHRv IHBvbHlnb24iKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJLyoKIAkgKiBOZXZl ciBvdmVyZmxvd3M6IHRoZSBvbGQgc2l6ZSBmaXQgaW4gTWF4QWxsb2NTaXplLCBhbmQgdGhlIG5l dyBzaXplIGlzCiAJICoganVzdCBhIHNtYWxsIGNvbnN0YW50IGxhcmdlci4KQEAgLTQ1MDgsNyAr NDYwNiw5IEBAIHBvbHlfY2VudGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSAoUG9p bnQgKikgcGFsbG9jKHNpemVvZihQb2ludCkpOwogCi0JcG9seV90b19jaXJjbGUoJmNpcmNsZSwg cG9seSk7CisJaWYgKCFwb2x5X3RvX2NpcmNsZV9zYWZlKCZjaXJjbGUsIHBvbHksIGZjaW5mby0+ Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKIAkqcmVzdWx0ID0gY2lyY2xlLmNlbnRl cjsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7CkBAIC01MDA1LDcgKzUxMDUsNyBAQCBj aXJjbGVfbXVsX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKENJUkNMRSAqKSBwYWxs b2Moc2l6ZW9mKENJUkNMRSkpOwogCiAJcG9pbnRfbXVsX3BvaW50KCZyZXN1bHQtPmNlbnRlciwg JmNpcmNsZS0+Y2VudGVyLCBwb2ludCk7Ci0JcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfbXVsKGNp cmNsZS0+cmFkaXVzLCBIWVBPVChwb2ludC0+eCwgcG9pbnQtPnkpKTsKKwlyZXN1bHQtPnJhZGl1 cyA9IGZsb2F0OF9tdWwoY2lyY2xlLT5yYWRpdXMsIEhZUE9UKHBvaW50LT54LCBwb2ludC0+eSwg TlVMTCkpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3VsdCk7CiB9CkBAIC01MDIwLDcgKzUx MjAsNyBAQCBjaXJjbGVfZGl2X3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKENJUkNM RSAqKSBwYWxsb2Moc2l6ZW9mKENJUkNMRSkpOwogCiAJcG9pbnRfZGl2X3BvaW50KCZyZXN1bHQt PmNlbnRlciwgJmNpcmNsZS0+Y2VudGVyLCBwb2ludCk7Ci0JcmVzdWx0LT5yYWRpdXMgPSBmbG9h dDhfZGl2KGNpcmNsZS0+cmFkaXVzLCBIWVBPVChwb2ludC0+eCwgcG9pbnQtPnkpKTsKKwlyZXN1 bHQtPnJhZGl1cyA9IGZsb2F0OF9kaXYoY2lyY2xlLT5yYWRpdXMsIEhZUE9UKHBvaW50LT54LCBw b2ludC0+eSwgTlVMTCkpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3VsdCk7CiB9CkBAIC01 MTkxLDE0ICs1MjkxLDMwIEBAIGNpcmNsZV9ib3goUEdfRlVOQ1RJT05fQVJHUykKIAogCWJveCA9 IChCT1ggKikgcGFsbG9jKHNpemVvZihCT1gpKTsKIAotCWRlbHRhID0gZmxvYXQ4X2RpdihjaXJj bGUtPnJhZGl1cywgc3FydCgyLjApKTsKKwlkZWx0YSA9IGZsb2F0OF9kaXZfc2FmZShjaXJjbGUt PnJhZGl1cywgc3FydCgyLjApLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAotCWJveC0+aGlnaC54ID0g ZmxvYXQ4X3BsKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmxvdy54ID0gZmxvYXQ4 X21pKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmhpZ2gueSA9IGZsb2F0OF9wbChj aXJjbGUtPmNlbnRlci55LCBkZWx0YSk7Ci0JYm94LT5sb3cueSA9IGZsb2F0OF9taShjaXJjbGUt PmNlbnRlci55LCBkZWx0YSk7CisJYm94LT5oaWdoLnggPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUt PmNlbnRlci54LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NV UlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy54ID0gZmxv YXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueCwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwor CisJYm94LT5oaWdoLnkgPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSwg ZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRl eHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy55ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xl LT5jZW50ZXIueSwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0ND VVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX0JPWF9Q KGJveCk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0KIAogLyogYm94X2NpcmNsZSgp CkBAIC01MjA5LDE1ICs1MzI1LDM1IEBAIGJveF9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykKIHsK IAlCT1gJCSAgICpib3ggPSBQR19HRVRBUkdfQk9YX1AoMCk7CiAJQ0lSQ0xFCSAgICpjaXJjbGU7 CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCWNpcmNsZSA9IChDSVJDTEUgKikgcGFsbG9j KHNpemVvZihDSVJDTEUpKTsKIAotCWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2KGZsb2F0 OF9wbChib3gtPmhpZ2gueCwgYm94LT5sb3cueCksIDIuMCk7Ci0JY2lyY2xlLT5jZW50ZXIueSA9 IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC55LCBib3gtPmxvdy55KSwgMi4wKTsKKwl4 ID0gZmxvYXQ4X3BsX3NhZmUoYm94LT5oaWdoLngsIGJveC0+bG93LngsIGZjaW5mby0+Y29udGV4 dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBm YWlsOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsICZib3gt PmhpZ2gpOworCWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBmY2lu Zm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkp CisJCWdvdG8gZmFpbDsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShib3gtPmhpZ2gueSwgYm94LT5s b3cueSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8t PmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwljaXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2Rp dl9zYWZlKHksIDIuMCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlpZiAoIXBvaW50X2R0X3NhZmUo JmNpcmNsZS0+Y2VudGVyLCAmYm94LT5oaWdoLCBmY2luZm8tPmNvbnRleHQsCisJCQkJCSAgICZj aXJjbGUtPnJhZGl1cykpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9DSVJDTEVfUChjaXJj bGUpOworCitmYWlsOgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKIApAQCAtNTIzMCwyOCArNTM2 NiwzOCBAQCBjaXJjbGVfcG9seShQR19GVU5DVElPTl9BUkdTKQogCWludAkJCWJhc2Vfc2l6ZSwK IAkJCQlzaXplOwogCWludAkJCWk7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAlmbG9hdDgJ CWFuZ2xlOwogCWZsb2F0OAkJYW5nbGVzdGVwOwogCiAJaWYgKEZQemVybyhjaXJjbGUtPnJhZGl1 cykpCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygi Y2Fubm90IGNvbnZlcnQgY2lyY2xlIHdpdGggcmFkaXVzIHplcm8gdG8gcG9seWdvbiIpKSk7CisJ CWdvdG8gZmFpbDsKKwl9CiAKIAlpZiAobnB0cyA8IDIpCi0JCWVyZXBvcnQoRVJST1IsCisJewor CQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURf UEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJybXNnKCJtdXN0IHJlcXVlc3QgYXQgbGVhc3QgMiBw b2ludHMiKSkpOworCQlnb3RvIGZhaWw7CisJfQogCiAJYmFzZV9zaXplID0gc2l6ZW9mKHBvbHkt PnBbMF0pICogbnB0czsKIAlzaXplID0gb2Zmc2V0b2YoUE9MWUdPTiwgcCkgKyBiYXNlX3NpemU7 CiAKIAkvKiBDaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdyAqLwogCWlmIChiYXNlX3NpemUgLyBu cHRzICE9IHNpemVvZihwb2x5LT5wWzBdKSB8fCBzaXplIDw9IGJhc2Vfc2l6ZSkKLQkJZXJlcG9y dChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVS UkNPREVfUFJPR1JBTV9MSU1JVF9FWENFRURFRCksCiAJCQkJIGVycm1zZygidG9vIG1hbnkgcG9p bnRzIHJlcXVlc3RlZCIpKSk7Ci0KKwkJZ290byBmYWlsOworCX0KIAlwb2x5ID0gKFBPTFlHT04g KikgcGFsbG9jMChzaXplKTsJLyogemVybyBhbnkgaG9sZXMgKi8KIAlTRVRfVkFSU0laRShwb2x5 LCBzaXplKTsKIAlwb2x5LT5ucHRzID0gbnB0czsKQEAgLTUyNjAsMTcgKzU0MDYsMzMgQEAgY2ly Y2xlX3BvbHkoUEdfRlVOQ1RJT05fQVJHUykKIAogCWZvciAoaSA9IDA7IGkgPCBucHRzOyBpKysp CiAJewotCQlhbmdsZSA9IGZsb2F0OF9tdWwoYW5nbGVzdGVwLCBpKTsKKwkJYW5nbGUgPSBmbG9h dDhfbXVsX3NhZmUoYW5nbGVzdGVwLCBpLCBmY2luZm8tPmNvbnRleHQpOworCQlpZiAoU09GVF9F UlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQkJZ290byBmYWlsOwogCi0JCXBvbHkt PnBbaV0ueCA9IGZsb2F0OF9taShjaXJjbGUtPmNlbnRlci54LAotCQkJCQkJCQkgZmxvYXQ4X211 bChjaXJjbGUtPnJhZGl1cywgY29zKGFuZ2xlKSkpOwotCQlwb2x5LT5wW2ldLnkgPSBmbG9hdDhf cGwoY2lyY2xlLT5jZW50ZXIueSwKLQkJCQkJCQkJIGZsb2F0OF9tdWwoY2lyY2xlLT5yYWRpdXMs IHNpbihhbmdsZSkpKTsKKwkJeCA9IGZsb2F0OF9tdWxfc2FmZShjaXJjbGUtPnJhZGl1cywgY29z KGFuZ2xlKSwgZmNpbmZvLT5jb250ZXh0KTsKKwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNp bmZvLT5jb250ZXh0KSkKKwkJCWdvdG8gZmFpbDsKKworCQlwb2x5LT5wW2ldLnggPSBmbG9hdDhf bWlfc2FmZShjaXJjbGUtPmNlbnRlci54LCB4LCBmY2luZm8tPmNvbnRleHQpOworCQlpZiAoU09G VF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQkJZ290byBmYWlsOworCisJCXkg PSBmbG9hdDhfbXVsX3NhZmUoY2lyY2xlLT5yYWRpdXMsIHNpbihhbmdsZSksZmNpbmZvLT5jb250 ZXh0KTsKKwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJCWdv dG8gZmFpbDsKKworCQlwb2x5LT5wW2ldLnkgPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNlbnRl ci55LCB5LCBmY2luZm8tPmNvbnRleHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2lu Zm8tPmNvbnRleHQpKQorCQkJZ290byBmYWlsOwogCX0KIAogCW1ha2VfYm91bmRfYm94KHBvbHkp OwogCiAJUEdfUkVUVVJOX1BPTFlHT05fUChwb2x5KTsKKworZmFpbDoKKwlQR19SRVRVUk5fTlVM TCgpOwogfQogCiAvKgpAQCAtNTI4MSwxMCArNTQ0MywxMSBAQCBjaXJjbGVfcG9seShQR19GVU5D VElPTl9BUkdTKQogICogWFhYIFRoaXMgYWxnb3JpdGhtIHNob3VsZCB1c2Ugd2VpZ2h0ZWQgbWVh bnMgb2YgbGluZSBzZWdtZW50cwogICoJcmF0aGVyIHRoYW4gc3RyYWlnaHQgYXZlcmFnZSB2YWx1 ZXMgb2YgcG9pbnRzIC0gdGdsIDk3LzAxLzIxLgogICovCi1zdGF0aWMgdm9pZAotcG9seV90b19j aXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCitzdGF0aWMgYm9vbAorcG9seV90 b19jaXJjbGVfc2FmZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAqcG9seSwgTm9kZSAqZXNjb250 ZXh0KQogewogCWludAkJCWk7CisJZmxvYXQ4CQl4OwogCiAJQXNzZXJ0KHBvbHktPm5wdHMgPiAw KTsKIApAQCAtNTI5MywxNCArNTQ1Niw0MSBAQCBwb2x5X3RvX2NpcmNsZShDSVJDTEUgKnJlc3Vs dCwgUE9MWUdPTiAqcG9seSkKIAlyZXN1bHQtPnJhZGl1cyA9IDA7CiAKIAlmb3IgKGkgPSAwOyBp IDwgcG9seS0+bnB0czsgaSsrKQotCQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAm cmVzdWx0LT5jZW50ZXIsICZwb2x5LT5wW2ldKTsKLQlyZXN1bHQtPmNlbnRlci54ID0gZmxvYXQ4 X2RpdihyZXN1bHQtPmNlbnRlci54LCBwb2x5LT5ucHRzKTsKLQlyZXN1bHQtPmNlbnRlci55ID0g ZmxvYXQ4X2RpdihyZXN1bHQtPmNlbnRlci55LCBwb2x5LT5ucHRzKTsKKwl7CisJCWlmICghcG9p bnRfYWRkX3BvaW50X3NhZmUoJnJlc3VsdC0+Y2VudGVyLAorCQkJCQkJCQkgICZyZXN1bHQtPmNl bnRlciwKKwkJCQkJCQkJICAmcG9seS0+cFtpXSwKKwkJCQkJCQkJICBlc2NvbnRleHQpKQorCQkJ cmV0dXJuIGZhbHNlOworCX0KKworCXJlc3VsdC0+Y2VudGVyLnggPSBmbG9hdDhfZGl2X3NhZmUo cmVzdWx0LT5jZW50ZXIueCwKKwkJCQkJCQkJCSAgIHBvbHktPm5wdHMsCisJCQkJCQkJCQkgICBl c2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVy biBmYWxzZTsKKworCXJlc3VsdC0+Y2VudGVyLnkgPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5j ZW50ZXIueSwKKwkJCQkJCQkJCSAgIHBvbHktPm5wdHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQp OworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsK IAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRzOyBpKyspCi0JCXJlc3VsdC0+cmFkaXVzID0g ZmxvYXQ4X3BsKHJlc3VsdC0+cmFkaXVzLAotCQkJCQkJCQkgICBwb2ludF9kdCgmcG9seS0+cFtp XSwgJnJlc3VsdC0+Y2VudGVyKSk7Ci0JcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KHJlc3Vs dC0+cmFkaXVzLCBwb2x5LT5ucHRzKTsKKwl7CisJCWlmICghcG9pbnRfZHRfc2FmZSgmcG9seS0+ cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBlc2NvbnRleHQsICZ4KSkKKwkJCXJldHVybiBmYWxzZTsK KworCQlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9wbF9zYWZlKHJlc3VsdC0+cmFkaXVzLCB4LCBl c2NvbnRleHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0 dXJuIGZhbHNlOworCX0KKworCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X2Rpdl9zYWZlKHJlc3Vs dC0+cmFkaXVzLCBwb2x5LT5ucHRzLCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOwogfQogCiBE YXR1bQpAQCAtNTMxMSw3ICs1NTAxLDggQEAgcG9seV9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykK IAogCXJlc3VsdCA9IChDSVJDTEUgKikgcGFsbG9jKHNpemVvZihDSVJDTEUpKTsKIAotCXBvbHlf dG9fY2lyY2xlKHJlc3VsdCwgcG9seSk7CisJaWYgKCFwb2x5X3RvX2NpcmNsZV9zYWZlKHJlc3Vs dCwgcG9seSwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JF VFVSTl9DSVJDTEVfUChyZXN1bHQpOwogfQpAQCAtNTUxNiw3ICs1NzA3LDcgQEAgcGxpc3Rfc2Ft ZShpbnQgbnB0cywgUG9pbnQgKnAxLCBQb2ludCAqcDIpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8K IGZsb2F0OAotcGdfaHlwb3QoZmxvYXQ4IHgsIGZsb2F0OCB5KQorcGdfaHlwb3QoZmxvYXQ4IHgs IGZsb2F0OCB5LCBOb2RlICplc2NvbnRleHQpCiB7CiAJZmxvYXQ4CQl5eCwKIAkJCQlyZXN1bHQ7 CkBAIC01NTU0LDkgKzU3NDUsMjIgQEAgcGdfaHlwb3QoZmxvYXQ4IHgsIGZsb2F0OCB5KQogCXJl c3VsdCA9IHggKiBzcXJ0KDEuMCArICh5eCAqIHl4KSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJeworCQllcnJzYXZlKGVzY29u dGV4dCwKKwkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJ CQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKKwkJcmVzdWx0ID0g MC4wOworCX0KKwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSkKLQkJZmxvYXRfdW5kZXJm bG93X2Vycm9yKCk7CisJeworCQllcnJzYXZlKGVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNP REVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9m IHJhbmdlOiB1bmRlcmZsb3ciKSk7CisKKwkJcmVzdWx0ID0gMC4wOworCX0KIAogCXJldHVybiBy ZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX3NwZ2lzdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19zcGdpc3QuYwppbmRleCBmZWMzM2U5NTM3Mi4u ZmZmZmQzY2QyZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fc3BnaXN0 LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19zcGdpc3QuYwpAQCAtMzkwLDcgKzM5 MCw3IEBAIHBvaW50VG9SZWN0Qm94RGlzdGFuY2UoUG9pbnQgKnBvaW50LCBSZWN0Qm94ICpyZWN0 X2JveCkKIAllbHNlCiAJCWR5ID0gMDsKIAotCXJldHVybiBIWVBPVChkeCwgZHkpOworCXJldHVy biBIWVBPVChkeCwgZHksIE5VTEwpOwogfQogCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmggYi9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oCmluZGV4IGZjMmE5Y2Y2NDc1 Li41YTcwMzNmMmE2MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaAorKysg Yi9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oCkBAIC0xMDksNiArMTA5LDI0IEBAIGZsb2F0NF9w bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJcmV0dXJuIHJlc3VsdDsK IH0KIAorLyogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIGZsb2F0OF9wbCAqLworc3RhdGljIGlubGlu ZSBmbG9hdDgKK2Zsb2F0OF9wbF9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDgg dmFsMiwgc3RydWN0IE5vZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCXJl c3VsdCA9IHZhbDEgKyB2YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNp bmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQorCXsKKwkJZXJyc2F2ZShlc2NvbnRleHQsCisJCQkJ ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQllcnJtc2co InZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisJCXJlc3VsdCA9IDAuMGY7CisJfQor CisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdDgKIGZsb2F0OF9wbChj b25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiB7CkBAIC0xMzMsNiArMTUxLDI0 IEBAIGZsb2F0NF9taShjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJcmV0 dXJuIHJlc3VsdDsKIH0KIAorLyogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIGZsb2F0OF9taSAqLwor c3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0OF9taV9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBj b25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5vZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJl c3VsdDsKKworCXJlc3VsdCA9IHZhbDEgLSB2YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1 bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQorCXsKKwkJZXJyc2F2ZShlc2Nv bnRleHQsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK KwkJCQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisJCXJlc3VsdCAg PSAwLjBmOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4 CiBmbG9hdDhfbWkoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQogewpAQCAt MTU5LDYgKzE5NSwzNiBAQCBmbG9hdDRfbXVsKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9h dDQgdmFsMikKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKiBlcnJvciBzYWZlIHZlcnNpb24gb2Yg ZmxvYXQ4X211bCAqLworc3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0OF9tdWxfc2FmZShjb25z dCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQp Cit7CisJZmxvYXQ4CQlyZXN1bHQ7CisKKwlyZXN1bHQgPSB2YWwxICogdmFsMjsKKwlpZiAodW5s aWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKKwl7 CisJCWVycnNhdmUoZXNjb250ZXh0LAorCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVF X09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBvdXQgb2YgcmFuZ2U6IG92ZXJmbG93 IikpOworCisJCXJlc3VsdCA9IDAuMDsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisKKwlpZiAodW5s aWtlbHkocmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgdmFsMiAhPSAwLjApCisJewor CQllcnJzYXZlKGVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9P VVRfT0ZfUkFOR0UpLAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ci KSk7CisKKwkJcmVzdWx0ID0gMC4wOworCQlyZXR1cm4gcmVzdWx0OworCX0KKworCXJldHVybiBy ZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4CiBmbG9hdDhfbXVsKGNvbnN0IGZsb2F0 OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIHsKQEAgLTE4OSw2ICsyNTUsNDcgQEAgZmxvYXQ0 X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJcmV0dXJuIHJlc3Vs dDsKIH0KIAorLyogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIGZsb2F0OF9kaXYgKi8KK3N0YXRpYyBp bmxpbmUgZmxvYXQ4CitmbG9hdDhfZGl2X3NhZmUoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZs b2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJcmVzdWx0Owor CisJaWYgKHVubGlrZWx5KHZhbDIgPT0gMC4wKSAmJiAhaXNuYW4odmFsMSkpCisJeworCQllcnJz YXZlKGVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfRElWSVNJT05fQllfWkVSTyksCisJ CQkJZXJybXNnKCJkaXZpc2lvbiBieSB6ZXJvIikpOworCisJCXJlc3VsdCA9IDAuMDsKKwkJcmV0 dXJuIHJlc3VsdDsKKwl9CisKKwlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKKworCWlmICh1bmxpa2Vs eShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkpCisJeworCQllcnJzYXZlKGVzY29udGV4 dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJ CWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiBvdmVyZmxvdyIpKTsKKworCQlyZXN1bHQgPSAw LjA7CisJCXJldHVybiByZXN1bHQ7CisJfQorCisJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjAp ICYmIHZhbDEgIT0gMC4wICYmICFpc2luZih2YWwyKSkKKwl7CisJCWVycnNhdmUoZXNjb250ZXh0 LAorCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJ ZXJybXNnKCJ2YWx1ZSBvdXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKKworCQlyZXN1bHQgPSAw LjA7CisJCXJldHVybiByZXN1bHQ7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGlj IGlubGluZSBmbG9hdDgKIGZsb2F0OF9kaXYoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0 OCB2YWwyKQogewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZ2VvX2RlY2xzLmggYi9z cmMvaW5jbHVkZS91dGlscy9nZW9fZGVjbHMuaAppbmRleCA4YTlkZjc1YzkzYy4uMDA1NmEyNjYz OWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2dlb19kZWNscy5oCisrKyBiL3NyYy9p bmNsdWRlL3V0aWxzL2dlb19kZWNscy5oCkBAIC04OCw3ICs4OCw3IEBAIEZQZ2UoZG91YmxlIEEs IGRvdWJsZSBCKQogI2RlZmluZSBGUGdlKEEsQikJCQkJKChBKSA+PSAoQikpCiAjZW5kaWYKIAot I2RlZmluZSBIWVBPVChBLCBCKQkJCQlwZ19oeXBvdChBLCBCKQorI2RlZmluZSBIWVBPVChBLCBC LCBlc2NvbnRleHQpCQkJCXBnX2h5cG90KEEsIEIsIGVzY29udGV4dCkKIAogLyotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAqIFBvaW50IC0gKHgseSkKQEAgLTI4MCw2ICsyODAsNiBAQCBDaXJjbGVQR2V0RGF0dW0o Y29uc3QgQ0lSQ0xFICpYKQogICogaW4gZ2VvX29wcy5jCiAgKi8KIAotZXh0ZXJuIGZsb2F0OCBw Z19oeXBvdChmbG9hdDggeCwgZmxvYXQ4IHkpOworZXh0ZXJuIGZsb2F0OCBwZ19oeXBvdChmbG9h dDggeCwgZmxvYXQ4IHksIE5vZGUgKmVzY29udGV4dCk7CiAKICNlbmRpZgkJCQkJCQkvKiBHRU9f REVDTFNfSCAqLwotLSAKMi4zNC4xCgo= --0000000000003caa5b0640ccfd41 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v7-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgktgp0d19 RnJvbSAxMzM4Y2M1YzJmODY3ZmZhZDQ1N2ZiNTYyNGViOWQwZTA2MjdlNjdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTozNjozNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MDEvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgYnl0ZWEgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZQpm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdieXRlYSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2FzdHRhcmdl dCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICBwcm9zcmMgICB8IHBy b25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJ5dGVhICAgICAgfCBzbWFsbGlu dCAgIHwgICAgIDYzNzAgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQyIHwg aW50MgogYnl0ZWEgICAgICB8IGludGVnZXIgICAgfCAgICAgNjM3MSB8IGUgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGJ5dGVhX2ludDQgfCBpbnQ0CiBieXRlYSAgICAgIHwgYmlnaW50ICAgICB8 ICAgICA2MzcyIHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgYnl0ZWFfaW50OCB8IGludDgK KDMgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRV ZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMgfCAxOCArKysrKysrKysrKysrKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ieXRlYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2J5dGVhLmMKaW5kZXggNmU3YjkxNGM1NjMuLjRhOGFkY2I4MjA0IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0 ZWEuYwpAQCAtMTAyNywxMCArMTAyNywxNCBAQCBieXRlYV9pbnQyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAKIAkvKiBDaGVjayB0aGF0IHRoZSBieXRlIGFycmF5IGlzIG5vdCB0b28gbG9uZyAqLwogCWlm IChsZW4gPiBzaXplb2YocmVzdWx0KSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUo ZmNpbmZvLT5jb250ZXh0LAogCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9P Rl9SQU5HRSksCiAJCQkJZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSk7CiAKKwkJUEdf UkVUVVJOX05VTEwoKTsKKwl9CisKIAkvKiBDb252ZXJ0IGl0IHRvIGFuIGludGVnZXI7IG1vc3Qg c2lnbmlmaWNhbnQgYnl0ZXMgY29tZSBmaXJzdCAqLwogCXJlc3VsdCA9IDA7CiAJZm9yIChpbnQg aSA9IDA7IGkgPCBsZW47IGkrKykKQEAgLTEwNTIsMTAgKzEwNTYsMTQgQEAgYnl0ZWFfaW50NChQ R19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3Qg dG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1Is CisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQllcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCWVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFu Z2UiKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisKIAkvKiBDb252ZXJ0IGl0IHRvIGFu IGludGVnZXI7IG1vc3Qgc2lnbmlmaWNhbnQgYnl0ZXMgY29tZSBmaXJzdCAqLwogCXJlc3VsdCA9 IDA7CiAJZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykKQEAgLTEwNzcsMTAgKzEwODUsMTQg QEAgYnl0ZWFfaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0aGUgYnl0 ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3VsdCkpCi0J CWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQllcnJj b2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCWVycm1zZygiYmln aW50IG91dCBvZiByYW5nZSIpKTsKIAorCQlQR19SRVRVUk5fTlVMTCgpOworCX0KKwogCS8qIENv bnZlcnQgaXQgdG8gYW4gaW50ZWdlcjsgbW9zdCBzaWduaWZpY2FudCBieXRlcyBjb21lIGZpcnN0 ICovCiAJcmVzdWx0ID0gMDsKIAlmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKQotLSAKMi4z NC4xCgo= --0000000000003caa5b0640ccfd41--