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 1vGA8G-0092Zb-7P for pgsql-hackers@arkaria.postgresql.org; Tue, 04 Nov 2025 06:03:04 +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 1vGA8F-00BMcj-3v for pgsql-hackers@arkaria.postgresql.org; Tue, 04 Nov 2025 06:03:02 +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 1vGA8E-00BMcV-Ey for pgsql-hackers@lists.postgresql.org; Tue, 04 Nov 2025 06:03:01 +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 1vGA88-005scg-2j for pgsql-hackers@lists.postgresql.org; Tue, 04 Nov 2025 06:03:01 +0000 Received: by mail-vs1-xe32.google.com with SMTP id ada2fe7eead31-5dbde7f4341so1599933137.1 for ; Mon, 03 Nov 2025 22:02:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762236174; x=1762840974; 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=wxp5Z7YVIJCbn/ixfDDT8VgzDq4TnFV9c0ygPFkvuLM=; b=V8L/sGa7Uq5XsUz1B/VlAsRUBit7w7ztIZoWaB9HaPofL7D1TqnbReyKiwQSsnbdzp yZMadVZmZ7JHh4Qh6JM/VqF+sAOQ7fcHlKja1dZdARCHNx2FW4Fu1xv8zibcFS2kSWgI k56ONjktr60Wu8lPrZTgcZQqeEz4ABmdVkVyPCwPFVI0rACoQlAHJ4ZEsT6ZxxrQPDrt RCJD0vbHjMbqiDsh9PKSi36quX/5mUMf7X/NbaxDWWWgF3AxT42WTCm2vb6pG525BauZ WJlj8F2ES2w9tddsuGK1CiD3Q5rthBHcbYqPKEsVKRKNMo9L7VuuFi154SIVUDCwkmKh lr8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762236174; x=1762840974; 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=wxp5Z7YVIJCbn/ixfDDT8VgzDq4TnFV9c0ygPFkvuLM=; b=IOMtR2PmlQbOXlC/iIAUlEswUWp9zRV0VQoxSWOgAh/rXZ098zeq1iMNOxYRyzEkEm UKt6vjs9nsW4n81mhDod5HRkhbEcOlbBE/tS/DQozz/Yhj1QKQMtlCpcP4LoHDHbJ6hB USxYzCHFly1UwMdRtJyBlBq2trEpodQyHB2tx8dvJHaBtd66iu+z28Vjv0O6/OajH5pu +wkOU00+QdclSFU2oqvai4wvGcQAW2g1o2aexpKQWN/Q2qMwbpEBpvkcpgYvPS1keKUv k95jhHExFjZS29MmN7XfOwcU2TsH50b62wju0EerY8bLL71HvzGka7Zlj8YCSTY9oVcL 3u4w== X-Forwarded-Encrypted: i=1; AJvYcCXyRXEWASAmDhyXRDqQneNF4oH+03GZqAXBM+wHF4hMFGJzxAVnDePyNIxcr0pyoFtrWZ/hVGdcDxD4mFAr@lists.postgresql.org X-Gm-Message-State: AOJu0YxKhhJV3MOw4y7z9I15g7sqHkduIDmoCkVyRBWOSH+tYh242Q5e QSf+L1vI5xNCXwsxupUtjQ0/u+lZUJk/SJF5XR/dr5WuQ836os3jzonKN6Z0UJtxCAftK5+qcYp nVBbO6I4s9IpTDlMwSE7XDvmJmED/9zc= X-Gm-Gg: ASbGncuTzlDGuub4ausndnoWx6zQ9rEmOnW9A2fgEt3yRcZmxMp8qkyKSuYf5ciLRdD AUixrAQ3ATwnI2TAlyHLCDftFHBxt83diFXqEkEkwisHUKwwLIZ/cKbCPiVjv/t1oIWFcWN5nkT 0L8VaxECX3yLIHgq+3yRfj9RP3cWFUboPkNo9f3Vz5bPPltr7qblh0cOpVFWoJw+pvgXjuogIrk F40rvKEPSbBox4B+1hNhgmWWl+E039qNLZEiqfy20D2EXzvt3cAjlqqOJYWPx4yKKpe5m5R7v4U VPxxyeSvHNGrVaeebYBlCk3yMlAjxERV7ChY+9GEY5e709tDjMWoML/39IUgzbUZMqeK9Rx8lAw SNcRrznCUVSQYszxLipX+TMu6KfagLKiip58wOH016QTZDYnuOkjgTkH1iWdp/8gecTjAoACh9g == X-Google-Smtp-Source: AGHT+IFo++61lYmtDBVLeaPzI59kgtqf1VmYXKo6hztYHG4NQ4fNeYzZO4dLgk+BUXMBcSiVq8ihqAa1Pj2besIzrJk= X-Received: by 2002:a05:6102:1a10:10b0:5db:e32d:a3fc with SMTP id ada2fe7eead31-5dbf7bbb97emr481779137.14.1762236173152; Mon, 03 Nov 2025 22:02:53 -0800 (PST) MIME-Version: 1.0 References: <04afcd1f-ed7d-4c0a-add1-50e3719ccbf9@postgresfriends.org> <762ae707-7fdc-43d8-a77a-3a10d12ce21d@postgresfriends.org> In-Reply-To: From: jian he Date: Tue, 4 Nov 2025 14:02:14 +0800 X-Gm-Features: AWmQ_bnRQfN9Hy_z907g1I_UglJtRvw9-oZFCQc_cwgpFdkq-Sj-rv62Cihinis 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="0000000000001ca9fe0642be9580" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001ca9fe0642be9580 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Oct 14, 2025 at 10:00=E2=80=AFAM jian he wrote: > Please check the attached v8. > hi. please see the attached V9 patchset. v9-0001 to v9-0018: refactor pg_cast.castfunc entries, make it error safe. v9-0019: CAST(... AS ... DEFAULT def_expr ON CONVERSION ERROR) select pc.castsource::regtype,pc.casttarget::regtype, castfunc::regproc, pp.prosrc from pg_cast pc join pg_proc pp on pp.oid =3D pc.castfunc join pg_type pt on pt.oid =3D castsource join pg_type pt1 on pt1.oid =3D casttarget and pc.castfunc > 0 and pt.typnamespace =3D 'pg_catalog'::regnamespace and pt1.typnamespace =3D 'pg_catalog'::regnamespace and not pc.casterrorsaf= e; castsource | casttarget | castfunc | prosrc ------------+------------+----------------------+-------------- circle | polygon | pg_catalog.polygon | 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 (5 rows) The above result shows type casts using functions which cannot be error saf= e. Money type related casts still can not be error safe. Cast from circle to polygon cannot be error safe because the associated cas= t function (pg_cast.castfunc) is written in SQL (see src/backend/catalog/system_functions.sql LINE 112). It appears impossible to make SQL language functions error safe, because fmgr_sql ignores fcinfo->context. eval_const_expressions cannot be error safe, so we need to handle source_expr as an UNKNOWN constant in an error safe beforehand. For example, we need handle ('1' AS DATE) in an error safe way for SELECT CAST('1' AS date DEFAULT '2011-01-01' ON ERROR); Since we must handle the source_expr when it is an UNKNOWN constant in an error safe way, we can apply the same handling when source_expr is a Const whose type is not UNKNOWN. For example: SELECT CAST('[(1,2),(3,4)]'::path AS polygon DEFAULT NULL ON CONVERSION ERR= OR); If source_expr is a Const and the cast expression is a FuncExpr, we can be certain that all arguments (FuncExpr->args) are also Const; see the functio= n chain coerce_to_target_type =E2=86=92 coerce_type =E2=86=92 build_coercion_= expression. We don=E2=80=99t need to worry about deparsing the expression because struc= t SafeTypeCastExpr includes source_expr, cast_expr, and default_expr. Even i= f cast_expr is NULL, we can still use source_expr to reconstruct the original= CAST expression. so I introduced: evaluate_expr_safe: error safe version of evaluate_expr CoerceUnknownConstSafe: tests whether an UNKNOWN Const can be coerced to th= e target type. --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3di2 RnJvbSA3OTM2YzZhOTQxNTQ3ZmQwMzk3MmUxNjkyM2ZlZmEyNzM1OGI5MzY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo1ODo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MTcvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcganNvbmIgdG8gb3RoZXIgdHlwZXMgcGVyCiBw 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= --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3dj3 RnJvbSBlNTNhODgwOGJkNTAxZjA4YTk2NjA5MjA4MzA1NTliNTc4NTc0NWE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0NDozNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MTYvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgdGltZXN0YW1wIHRvIG90aGVyIHR5cGVzIHBl 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= --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="UTF-8"; name="v9-0019-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Disposition: attachment; filename="v9-0019-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3d90 RnJvbSA2YjU4YTA5M2YzOTM3ZDk2ZGNkNDA0YmVjMzE0MDY0ZTIwZDNlYTc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgNCBOb3YgMjAyNSAxMzo0NTozNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MTkvMTldIENBU1QoZXhwciBBUyBuZXd0eXBlIERFRkFVTFQgT04gRVJST1IpCgpOb3cgdGhhdCB0 aGUgdHlwZSBjb2VyY2lvbiBub2RlIGlzIGVycm9yLXNhZmUsIHdlIGFsc28gbmVlZCB0byBlbnN1 cmUgdGhhdCB3aGVuCmEgY29lcmNpb24gZmFpbHMsIGl0IGZhbGxzIGJhY2sgdG8gZXZhbHVhdGlu ZyB0aGUgZGVmYXVsdCBub2RlLgpkcmFmdCBkb2MgYWxzbyBhZGRlZC4KCldlIGNhbm5vdCBzaW1w bHkgcHJvaGliaXQgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBpbiBwZ19jYXN0IGZvciBzYWZlIGNh c3QKZXZhbHVhdGlvbiBiZWNhdXNlIENSRUFURSBDQVNUIGNhbiBhbHNvIHV0aWxpemUgYnVpbHQt aW4gZnVuY3Rpb25zLiBTbywgdG8KY29tcGxldGVseSBkaXNhbGxvdyBjdXN0b20gY2FzdHMgY3Jl YXRlZCB2aWEgQ1JFQVRFIENBU1QgdXNlZCBpbiBzYWZlIGNhc3QKZXZhbHVhdGlvbiwgYSBuZXcg ZmllbGQgaW4gcGdfY2FzdCB3b3VsZCB1bmZvcnR1bmF0ZWx5IGJlIG5lY2Vzc2FyeS4KCmRlbW86 ClNFTEVDVCBDQVNUKCcxJyBBUyBkYXRlICBERUZBVUxUICcyMDExLTAxLTAxJyBPTiBFUlJPUiks CiAgICAgICBDQVNUKCd7MjM0LGRlZiw1Njd9Jzo6dGV4dFtdIEFTIGludGVnZXJbXSBERUZBVUxU ICd7LTEwMTF9JyBPTiBFUlJPUik7CiAgICBkYXRlICAgIHwgIGludDQKLS0tLS0tLS0tLS0tKy0t LS0tLS0tLQogMjAxMS0wMS0wMSB8IHstMTAxMX0KClswXTogaHR0cHM6Ly9naXQucG9zdGdyZXNx bC5vcmcvY2dpdC9wb3N0Z3Jlc3FsLmdpdC9jb21taXQvP2lkPWFhYWY5NDQ5ZWM2YmU2MmNiMGQz MGVkMzU4OGRjMzg0ZjU2Mjc0YgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURr TE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFp bC5jb20KLS0tCiAuLi4vcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQgICAg fCAgMjMgKy0KIGNvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsICAgICB8 ICAgNSArCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAg MTIgKwogZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgIDI5 ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2FzdC5jICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCAxMTcgKyst CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAgMzcgKwog c3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgICAgICAgICAgIHwgIDQ5ICsrCiBz cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgNjcgKysKIHNy Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgICAgICB8ICA5MyArKysKIHNy Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAyMiArCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgICAgIHwgNDM0ICsrKysrKysrKyst CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgIDMgKwog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgIDE0ICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMgICAgICAgICAgICAgICB8ICAxNCArCiBzcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgICAgICAgICAgfCAgIDggKwogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgIDIyICsKIHNyYy9iYWNr ZW5kL3V0aWxzL2ZtZ3IvZm1nci5jICAgICAgICAgICAgICAgICB8ICAxMyArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2Nhc3QuZGF0ICAgICAgICAgICAgICAgfCAzMzAgKysrKy0tLS0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oICAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvaW5j bHVkZS9leGVjdXRvci9leGVjRXhwci5oICAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2luY2x1 ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L2ZtZ3IuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9u b2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgMzAgKwogc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9pbmNsdWRlL25vZGVz L3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAzMyArCiBzcmMvaW5jbHVkZS9vcHRpbWl6 ZXIvb3B0aW1pemVyLmggICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV90eXBlLmggICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2Nhc3Qub3V0ICAgICAgICAgICAgfCA3MzAgKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dCAgICAgfCAgIDUgKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAgICAgIHwgIDI0ICstCiBzcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2Nhc3Quc3FsICAgICAgICAgICAgICAgICB8IDMyMCArKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsICAgICAgICAgIHwgICAxICsKIHNyYy90b29scy9w Z2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMyArCiAzNyBmaWxlcyBjaGFu Z2VkLCAyMjkwIGluc2VydGlvbnMoKyksIDE4OCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0CiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0IGIvY29udHJpYi9wZ19zdGF0X3N0 YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dAppbmRleCA3NWM4OTZmMzg4NS4uNmU2Nzk5N2Yw YTIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVj dC5vdXQKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91 dApAQCAtNzMsNiArNzMsMjUgQEAgU0VMRUNUIDEgQVMgImludCIgT0ZGU0VUIDIgRkVUQ0ggRklS U1QgMyBST1cgT05MWTsKIC0tLS0tCiAoMCByb3dzKQogCistLWVycm9yIHNhZmUgdHlwZSBjYXN0 CitTRUxFQ1QgQ0FTVCgnYScgQVMgaW50IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyBpbnQ0IAorLS0tLS0tCisgICAgMgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMTEnIEFTIGlu dCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50NCAKKy0tLS0tLQorICAgMTEK KygxIHJvdykKKworU0VMRUNUIENBU1QoJzEyJyBBUyBudW1lcmljIERFRkFVTFQgMiBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgICAgICAxMgorKDEgcm93KQor CiAtLSBESVNUSU5DVCBhbmQgT1JERVIgQlkgcGF0dGVybnMKIC0tIFRyeSBzb21lIHF1ZXJ5IHBl cm11dGF0aW9ucyB3aGljaCBvbmNlIHByb2R1Y2VkIGlkZW50aWNhbCBxdWVyeSBJRHMKIFNFTEVD VCBESVNUSU5DVCAxIEFTICJpbnQiOwpAQCAtMjIyLDYgKzI0MSw4IEBAIFNFTEVDVCBjYWxscywg cm93cywgcXVlcnkgRlJPTSBwZ19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFU RSAiQyI7CiAgICAgIDIgfCAgICAyIHwgU0VMRUNUICQxIEFTICJpbnQiIE9SREVSIEJZIDEKICAg ICAgMSB8ICAgIDIgfCBTRUxFQ1QgJDEgQVMgaSBVTklPTiBTRUxFQ1QgJDIgT1JERVIgQlkgaQog ICAgICAxIHwgICAgMSB8IFNFTEVDVCAkMSB8fCAkMgorICAgICAyIHwgICAgMiB8IFNFTEVDVCBD QVNUKCQxIEFTIGludCBERUZBVUxUICQyIE9OIENPTlZFUlNJT04gRVJST1IpCisgICAgIDEgfCAg ICAxIHwgU0VMRUNUIENBU1QoJDEgQVMgbnVtZXJpYyBERUZBVUxUICQyIE9OIENPTlZFUlNJT04g RVJST1IpCiAgICAgIDIgfCAgICAyIHwgU0VMRUNUIERJU1RJTkNUICQxIEFTICJpbnQiCiAgICAg IDAgfCAgICAwIHwgU0VMRUNUIGNhbGxzLCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0YXRfc3RhdGVt ZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIgogICAgICAxIHwgICAgMSB8IFNFTEVDVCBw Z19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0CkBAIC0yMzAsNyArMjUx LDcgQEAgU0VMRUNUIGNhbGxzLCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBP UkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKICAgICAgICB8ICAgICAgfCApICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKwogICAgICAgIHwgICAgICB8ICAgU0VMRUNUIGYgRlJPTSB0IE9SREVSIEJZIGYKICAg ICAgMSB8ICAgIDEgfCBzZWxlY3QgJDE6Ompzb25iID8gJDIKLSgxNyByb3dzKQorKDE5IHJvd3Mp CiAKIFNFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0Owog IHQgCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNx bCBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsCmluZGV4IDExNjYy Y2RlMDhjLi43ZWU4MTYwZmQ4NCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVu dHMvc3FsL3NlbGVjdC5zcWwKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3Nl bGVjdC5zcWwKQEAgLTI1LDYgKzI1LDExIEBAIFNFTEVDVCAxIEFTICJpbnQiIExJTUlUIDMgT0ZG U0VUIDM7CiBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQgMSBGRVRDSCBGSVJTVCAyIFJPVyBPTkxZ OwogU0VMRUNUIDEgQVMgImludCIgT0ZGU0VUIDIgRkVUQ0ggRklSU1QgMyBST1cgT05MWTsKIAor LS1lcnJvciBzYWZlIHR5cGUgY2FzdAorU0VMRUNUIENBU1QoJ2EnIEFTIGludCBERUZBVUxUIDIg T04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTEnIEFTIGludCBERUZBVUxUIDIg T04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTInIEFTIG51bWVyaWMgREVGQVVM VCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworCiAtLSBESVNUSU5DVCBhbmQgT1JERVIgQlkgcGF0 dGVybnMKIC0tIFRyeSBzb21lIHF1ZXJ5IHBlcm11dGF0aW9ucyB3aGljaCBvbmNlIHByb2R1Y2Vk IGlkZW50aWNhbCBxdWVyeSBJRHMKIFNFTEVDVCBESVNUSU5DVCAxIEFTICJpbnQiOwpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCA2YzhhMGYxNzNjOS4uNDkyYzk5ZTM3Y2QgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0x ODQ5LDYgKzE4NDksMTggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlv biBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICA8bGl0ZXJh bD5iPC9saXRlcmFsPiBtZWFucyB0aGF0IHRoZSB0eXBlcyBhcmUgYmluYXJ5LWNvZXJjaWJsZSwg dGh1cyBubyBjb252ZXJzaW9uIGlzIHJlcXVpcmVkLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5jYXN0ZXJyb3JzYWZlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgaW5kaWNhdGVzIHdoZXRoZXIgdGhl IDxzdHJ1Y3RmaWVsZD5jYXN0ZnVuYzwvc3RydWN0ZmllbGQ+IGZ1bmN0aW9uIGlzIGVycm9yIHNh ZmUuCisgICAgICAgSWYgdGhlIDxzdHJ1Y3RmaWVsZD5jYXN0ZnVuYzwvc3RydWN0ZmllbGQ+IGZ1 bmN0aW9uIGlzIGVycm9yIHNhZmUsIGl0IGNhbiBiZSB1c2VkIGluIGVycm9yIHNhZmUgdHlwZSBj YXN0LgorICAgICAgIEZvciBmdXJ0aGVyIGRldGFpbHMgc2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1z eW50YXgtdHlwZS1jYXN0cy1zYWZlIi8+LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sIGIvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCmlu ZGV4IDIzN2Q3MzA2ZmU4Li5kMzFhYWVmMjg3NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3N5 bnRheC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbApAQCAtMjEwNiw2ICsyMTA2 LDEwIEBAIENBU1QgKCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IEFTIDxy ZXBsYWNlYWJsZT50eXBlPC9yZXBsYWNlYWJsZT4KICAgICBUaGUgPGxpdGVyYWw+Q0FTVDwvbGl0 ZXJhbD4gc3ludGF4IGNvbmZvcm1zIHRvIFNRTDsgdGhlIHN5bnRheCB3aXRoCiAgICAgPGxpdGVy YWw+Ojo8L2xpdGVyYWw+IGlzIGhpc3RvcmljYWwgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3By b2R1Y3RuYW1lPgogICAgIHVzYWdlLgorICAgIEl0IGNhbiBhbHNvIGJlIHdyaXR0ZW4gYXM6Cis8 c3lub3BzaXM+CitDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBB UyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+IEVSUk9SIE9OIENPTlZFUlNJT04gRVJS T1IgKQorPC9zeW5vcHNpcz4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CkBAIC0yMTYwLDYgKzIx NjQsMzEgQEAgQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMg PHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPgogICAgICA8eHJlZiBsaW5rZW5kPSJzcWwt Y3JlYXRlY2FzdCIvPi4KICAgICA8L3BhcmE+CiAgICA8L25vdGU+CisKKyA8c2VjdDMgaWQ9InNx bC1zeW50YXgtdHlwZS1jYXN0cy1zYWZlIj4KKyAgPHRpdGxlPlNhZmUgVHlwZSBDYXN0PC90aXRs ZT4KKyAgIDxwYXJhPgorU29tZXRpbWVzIGEgdHlwZSBjYXN0IG1heSBmYWlsOyB0byBoYW5kbGUg c3VjaCBjYXNlcywgYW4gPGxpdGVyYWw+T04gRVJST1I8L2xpdGVyYWw+IGNsYXVzZSBjYW4gYmUK K3NwZWNpZmllZCB0byBhdm9pZCBwb3RlbnRpYWwgZXJyb3JzLiBUaGUgc3ludGF4IGlzOgorPHN5 bm9wc2lzPgorQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMg PHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPiBERUZBVUxUIDxyZXBsYWNlYWJsZT5leHBy ZXNzaW9uPC9yZXBsYWNlYWJsZT4gT04gQ09OVkVSU0lPTiBFUlJPUiApCis8L3N5bm9wc2lzPgor ICAgIElmIGNhc3QgdGhlIHNvdXJjZSBleHByZXNzaW9uIHRvIHRhcmdldCB0eXBlIGZhaWxzLCBp dCBmYWxscyBiYWNrIHRvCisgICAgZXZhbHVhdGluZyB0aGUgb3B0aW9uYWxseSBzdXBwbGllZCBk ZWZhdWx0IDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4KKyAgICBzcGVjaWZp ZWQgaW4gT04gPGxpdGVyYWw+T04gRVJST1I8L2xpdGVyYWw+IGNsYXVzZS4KKyAgICBDdXJyZW50 bHksIHRoaXMgb25seSBzdXBwb3J0IGJ1aWx0LWluIHN5c3RlbSB0eXBlIGNhc3RzLAorICAgIGNh c3RzIGNyZWF0ZWQgdXNpbmcgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiPkNSRUFURSBD QVNUPC9saW5rPiBhcmUgbm90IHN1cHBvcnRlZC4KKyAgPC9wYXJhPgorCisgICAgPHBhcmE+Cisg ICAgIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHF1ZXJ5IGF0dGVtcHRzIHRvIGNhc3QgYSA8 dHlwZT50ZXh0PC90eXBlPiB0eXBlIHZhbHVlIHRvIDx0eXBlPmludGVnZXI8L3R5cGU+IHR5cGUs CisgICAgIGJ1dCB3aGVuIHRoZSBjb252ZXJzaW9uIGZhaWxzLCBpdCBmYWxscyBiYWNrIHRvIGV2 YWx1YXRlIHRoZSBzdXBwbGllZCBkZWZhdWx0IGV4cHJlc3Npb24uCis8cHJvZ3JhbWxpc3Rpbmc+ CitTRUxFQ1QgQ0FTVChURVhUICdlcnJvcicgQVMgaW50ZWdlciBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgSVMgTlVMTDsgIDxsaW5lYW5ub3RhdGlvbj50cnVlPC9saW5lYW5ub3Rh dGlvbj4KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgPC9wYXJhPgorICA8L3NlY3QzPgorCiAgIDwv c2VjdDI+CiAKICAgPHNlY3QyIGlkPSJzcWwtc3ludGF4LWNvbGxhdGUtZXhwcnMiPgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX2Nhc3QuYwppbmRleCAxNzczYzljNTQ5MS4uNmZlNjVkMjRkMzEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfY2FzdC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf Y2FzdC5jCkBAIC04NCw2ICs4NCw3IEBAIENhc3RDcmVhdGUoT2lkIHNvdXJjZXR5cGVpZCwgT2lk IHRhcmdldHR5cGVpZCwKIAl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RmdW5jIC0gMV0gPSBPYmpl Y3RJZEdldERhdHVtKGZ1bmNpZCk7CiAJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0Y29udGV4dCAt IDFdID0gQ2hhckdldERhdHVtKGNhc3Rjb250ZXh0KTsKIAl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nh c3RtZXRob2QgLSAxXSA9IENoYXJHZXREYXR1bShjYXN0bWV0aG9kKTsKKwl2YWx1ZXNbQW51bV9w Z19jYXN0X2Nhc3RlcnJvcnNhZmUgLSAxXSA9IEJvb2xHZXREYXR1bShmYWxzZSk7CiAKIAl0dXBs ZSA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbGF0aW9uKSwgdmFsdWVzLCBu dWxscyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IGYxNTY5ODc5YjUyLi41YTRiOWU4 YjUzZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC05OSw2ICs5OSw5IEBAIHN0YXRpYyB2 b2lkIEV4ZWNCdWlsZEFnZ1RyYW5zQ2FsbChFeHByU3RhdGUgKnN0YXRlLCBBZ2dTdGF0ZSAqYWdn c3RhdGUsCiBzdGF0aWMgdm9pZCBFeGVjSW5pdEpzb25FeHByKEpzb25FeHByICpqc2V4cHIsIEV4 cHJTdGF0ZSAqc3RhdGUsCiAJCQkJCQkJIERhdHVtICpyZXN2LCBib29sICpyZXNudWxsLAogCQkJ CQkJCSBFeHByRXZhbFN0ZXAgKnNjcmF0Y2gpOworc3RhdGljIHZvaWQgRXhlY0luaXRTYWZlVHlw ZUNhc3RFeHByKFNhZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHIsIEV4cHJTdGF0ZSAqc3RhdGUsCisJ CQkJCQkJCQkgRGF0dW0gKnJlc3YsIGJvb2wgKnJlc251bGwsCisJCQkJCQkJCQkgRXhwckV2YWxT dGVwICpzY3JhdGNoKTsKIHN0YXRpYyB2b2lkIEV4ZWNJbml0SnNvbkNvZXJjaW9uKEV4cHJTdGF0 ZSAqc3RhdGUsIEpzb25SZXR1cm5pbmcgKnJldHVybmluZywKIAkJCQkJCQkJIEVycm9yU2F2ZUNv bnRleHQgKmVzY29udGV4dCwgYm9vbCBvbWl0X3F1b3RlcywKIAkJCQkJCQkJIGJvb2wgZXhpc3Rz X2NvZXJjZSwKQEAgLTE3MCw2ICsxNzMsNDcgQEAgRXhlY0luaXRFeHByKEV4cHIgKm5vZGUsIFBs YW5TdGF0ZSAqcGFyZW50KQogCXJldHVybiBzdGF0ZTsKIH0KIAorLyoKKyAqIEV4ZWNJbml0RXhw clNhZmU6IHNvZnQgZXJyb3IgdmFyaWFudCBvZiBFeGVjSW5pdEV4cHIuCisgKgorICogdXNlIGl0 IG9ubHkgZm9yIGV4cHJlc3Npb24gbm9kZXMgc3VwcG9ydCBzb2Z0IGVycm9ycywgbm90IGFsbCBl eHByZXNzaW9uCisgKiBub2RlcyBzdXBwb3J0IGl0LgorKi8KK0V4cHJTdGF0ZSAqCitFeGVjSW5p dEV4cHJTYWZlKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KQoreworCUV4cHJTdGF0ZSAg KnN0YXRlOworCUV4cHJFdmFsU3RlcCBzY3JhdGNoID0gezB9OworCisJLyogU3BlY2lhbCBjYXNl OiBOVUxMIGV4cHJlc3Npb24gcHJvZHVjZXMgYSBOVUxMIEV4cHJTdGF0ZSBwb2ludGVyICovCisJ aWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwkvKiBJbml0aWFsaXplIEV4cHJT dGF0ZSB3aXRoIGVtcHR5IHN0ZXAgbGlzdCAqLworCXN0YXRlID0gbWFrZU5vZGUoRXhwclN0YXRl KTsKKwlzdGF0ZS0+ZXhwciA9IG5vZGU7CisJc3RhdGUtPnBhcmVudCA9IHBhcmVudDsKKwlzdGF0 ZS0+ZXh0X3BhcmFtcyA9IE5VTEw7CisJc3RhdGUtPmVzY29udGV4dCA9IG1ha2VOb2RlKEVycm9y U2F2ZUNvbnRleHQpOworCXN0YXRlLT5lc2NvbnRleHQtPnR5cGUgPSBUX0Vycm9yU2F2ZUNvbnRl eHQ7CisJc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwlzdGF0ZS0+ ZXNjb250ZXh0LT5kZXRhaWxzX3dhbnRlZCA9IGZhbHNlOworCisJLyogSW5zZXJ0IHNldHVwIHN0 ZXBzIGFzIG5lZWRlZCAqLworCUV4ZWNDcmVhdGVFeHByU2V0dXBTdGVwcyhzdGF0ZSwgKE5vZGUg Kikgbm9kZSk7CisKKwkvKiBDb21waWxlIHRoZSBleHByZXNzaW9uIHByb3BlciAqLworCUV4ZWNJ bml0RXhwclJlYyhub2RlLCBzdGF0ZSwgJnN0YXRlLT5yZXN2YWx1ZSwgJnN0YXRlLT5yZXNudWxs KTsKKworCS8qIEZpbmFsbHksIGFwcGVuZCBhIERPTkUgc3RlcCAqLworCXNjcmF0Y2gub3Bjb2Rl ID0gRUVPUF9ET05FX1JFVFVSTjsKKwlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7 CisKKwlFeGVjUmVhZHlFeHByKHN0YXRlKTsKKworCXJldHVybiBzdGF0ZTsKK30KKwogLyoKICAq IEV4ZWNJbml0RXhwcldpdGhQYXJhbXM6IHByZXBhcmUgYSBzdGFuZGFsb25lIGV4cHJlc3Npb24g dHJlZSBmb3IgZXhlY3V0aW9uCiAgKgpAQCAtMTcwMSw2ICsxNzQ1LDcgQEAgRXhlY0luaXRFeHBy UmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAKIAkJCQllbGVtc3RhdGUtPmlubmVy bW9zdF9jYXNldmFsID0gKERhdHVtICopIHBhbGxvYyhzaXplb2YoRGF0dW0pKTsKIAkJCQllbGVt c3RhdGUtPmlubmVybW9zdF9jYXNlbnVsbCA9IChib29sICopIHBhbGxvYyhzaXplb2YoYm9vbCkp OworCQkJCWVsZW1zdGF0ZS0+ZXNjb250ZXh0ID0gc3RhdGUtPmVzY29udGV4dDsKIAogCQkJCUV4 ZWNJbml0RXhwclJlYyhhY29lcmNlLT5lbGVtZXhwciwgZWxlbXN0YXRlLAogCQkJCQkJCQkmZWxl bXN0YXRlLT5yZXN2YWx1ZSwgJmVsZW1zdGF0ZS0+cmVzbnVsbCk7CkBAIC0yMTc3LDYgKzIyMjIs MTQgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJ YnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2Fm ZVR5cGVDYXN0RXhwciAgICpzdGNleHByID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0RXhwciwgbm9k ZSk7CisKKwkJCQlFeGVjSW5pdFNhZmVUeXBlQ2FzdEV4cHIoc3RjZXhwciwgc3RhdGUsIHJlc3Ys IHJlc251bGwsICZzY3JhdGNoKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIFRfQ29hbGVz Y2VFeHByOgogCQkJewogCQkJCUNvYWxlc2NlRXhwciAqY29hbGVzY2UgPSAoQ29hbGVzY2VFeHBy ICopIG5vZGU7CkBAIC0yNzQzLDcgKzI3OTYsNyBAQCBFeGVjSW5pdEZ1bmMoRXhwckV2YWxTdGVw ICpzY3JhdGNoLCBFeHByICpub2RlLCBMaXN0ICphcmdzLCBPaWQgZnVuY2lkLAogCiAJLyogSW5p dGlhbGl6ZSBmdW5jdGlvbiBjYWxsIHBhcmFtZXRlciBzdHJ1Y3R1cmUgdG9vICovCiAJSW5pdEZ1 bmN0aW9uQ2FsbEluZm9EYXRhKCpmY2luZm8sIGZsaW5mbywKLQkJCQkJCQkgbmFyZ3MsIGlucHV0 Y29sbGlkLCBOVUxMLCBOVUxMKTsKKwkJCQkJCQkgbmFyZ3MsIGlucHV0Y29sbGlkLCAoTm9kZSAq KSBzdGF0ZS0+ZXNjb250ZXh0LCBOVUxMKTsKIAogCS8qIEtlZXAgZXh0cmEgY29waWVzIG9mIHRo aXMgaW5mbyB0byBzYXZlIGFuIGluZGlyZWN0aW9uIGF0IHJ1bnRpbWUgKi8KIAlzY3JhdGNoLT5k LmZ1bmMuZm5fYWRkciA9IGZsaW5mby0+Zm5fYWRkcjsKQEAgLTQ3NDEsNiArNDc5NCw2OCBAQCBF eGVjQnVpbGRQYXJhbVNldEVxdWFsKFR1cGxlRGVzYyBkZXNjLAogCXJldHVybiBzdGF0ZTsKIH0K IAorLyoKKyAqIFB1c2ggc3RlcHMgdG8gZXZhbHVhdGUgYSBTYWZlVHlwZUNhc3RFeHByIGFuZCBp dHMgdmFyaW91cyBzdWJzaWRpYXJ5CisgKiBleHByZXNzaW9ucy4KKyAqLworc3RhdGljIHZvaWQK K0V4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihTYWZlVHlwZUNhc3RFeHByICpzdGNleHByICwgRXhw clN0YXRlICpzdGF0ZSwKKwkJCQkJCSBEYXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKKwkJCQkJ CSBFeHByRXZhbFN0ZXAgKnNjcmF0Y2gpCit7CisJLyoKKwkgKiBJZiB3ZSBjYW4gbm90IGNvZXJj ZSB0byB0aGUgdGFyZ2V0IHR5cGUsIGZhbGxiYWNrIHRvIHRoZSBERUZBVUxUCisJICogZXhwcmVz c2lvbiBzcGVjaWZpZWQgaW4gdGhlIE9OIENPTlZFUlNJT04gRVJST1IgY2xhdXNlLCBhbmQgd2Ug YXJlIGRvbmUuCisJICovCisJaWYgKHN0Y2V4cHItPmNhc3RfZXhwciA9PSBOVUxMKQorCXsKKwkJ RXhlY0luaXRFeHByUmVjKChFeHByICopIHN0Y2V4cHItPmRlZmF1bHRfZXhwciwKKwkJCQkJCXN0 YXRlLCByZXN2LCByZXNudWxsKTsKKwkJcmV0dXJuOworCX0KKwllbHNlCisJeworCQlFeHByRXZh bFN0ZXAgKmFzOworCQlTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGU7CisJCUVycm9yU2F2ZUNv bnRleHQgKnNhdmVkX2VzY29udGV4dDsKKwkJaW50CQkJCWp1bXBzX3RvX2VuZDsKKworCQlzdGNz dGF0ZSA9IHBhbGxvYzAoc2l6ZW9mKFNhZmVUeXBlQ2FzdFN0YXRlKSk7CisJCXN0Y3N0YXRlLT5z dGNleHByID0gc3RjZXhwcjsKKwkJc3Rjc3RhdGUtPmVzY29udGV4dC50eXBlID0gVF9FcnJvclNh dmVDb250ZXh0OworCQlzdGF0ZS0+ZXNjb250ZXh0ID0gJnN0Y3N0YXRlLT5lc2NvbnRleHQ7CisK KwkJLyogZXZhbHVhdGUgYXJndW1lbnQgZXhwcmVzc2lvbiBpbnRvIHN0ZXAncyByZXN1bHQgYXJl YSAqLworCQlFeGVjSW5pdEV4cHJSZWMoKEV4cHIgKikgc3RjZXhwci0+Y2FzdF9leHByLAorCQkJ CQkJc3RhdGUsIHJlc3YsIHJlc251bGwpOworCisJCXNjcmF0Y2gtPm9wY29kZSA9IEVFT1BfU0FG RVRZUEVfQ0FTVDsKKwkJc2NyYXRjaC0+ZC5zdGNleHByLnN0Y3N0YXRlID0gc3Rjc3RhdGU7CisJ CUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsIHNjcmF0Y2gpOworCQlzdGNzdGF0ZS0+anVtcF9lcnJv ciA9IHN0YXRlLT5zdGVwc19sZW47CisKKwkJLyogSlVNUCB0byBlbmQgaWYgZmFsc2UsIHRoYXQg aXMsIHNraXAgdGhlIE9OIEVSUk9SIGV4cHJlc3Npb24uICovCisJCWp1bXBzX3RvX2VuZCA9IHN0 YXRlLT5zdGVwc19sZW47CisJCXNjcmF0Y2gtPm9wY29kZSA9IEVFT1BfSlVNUF9JRl9OT1RfVFJV RTsKKwkJc2NyYXRjaC0+cmVzdmFsdWUgPSAmc3Rjc3RhdGUtPmVycm9yLnZhbHVlOworCQlzY3Jh dGNoLT5yZXNudWxsID0gJnN0Y3N0YXRlLT5lcnJvci5pc251bGw7CisJCXNjcmF0Y2gtPmQuanVt cC5qdW1wZG9uZSA9IC0xOwkvKiBzZXQgYmVsb3cgKi8KKwkJRXhwckV2YWxQdXNoU3RlcChzdGF0 ZSwgc2NyYXRjaCk7CisKKwkJLyogU3RlcHMgdG8gZXZhbHVhdGUgdGhlIE9OIEVSUk9SIGV4cHJl c3Npb24gKi8KKwkJc2F2ZWRfZXNjb250ZXh0ID0gc3RhdGUtPmVzY29udGV4dDsKKwkJc3RhdGUt PmVzY29udGV4dCA9IE5VTEw7CisJCUV4ZWNJbml0RXhwclJlYygoRXhwciAqKSBzdGNzdGF0ZS0+ c3RjZXhwci0+ZGVmYXVsdF9leHByLAorCQkJCQkJc3RhdGUsIHJlc3YsIHJlc251bGwpOworCQlz dGF0ZS0+ZXNjb250ZXh0ID0gc2F2ZWRfZXNjb250ZXh0OworCisJCWFzID0gJnN0YXRlLT5zdGVw c1tqdW1wc190b19lbmRdOworCQlhcy0+ZC5qdW1wLmp1bXBkb25lID0gc3RhdGUtPnN0ZXBzX2xl bjsKKworCQlzdGNzdGF0ZS0+anVtcF9lbmQgPSBzdGF0ZS0+c3RlcHNfbGVuOworCX0KK30KKwog LyoKICAqIFB1c2ggc3RlcHMgdG8gZXZhbHVhdGUgYSBKc29uRXhwciBhbmQgaXRzIHZhcmlvdXMg c3Vic2lkaWFyeSBleHByZXNzaW9ucy4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHJJbnRlcnAuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50 ZXJwLmMKaW5kZXggNjdmNGUwMGVhYzQuLmJkOGIxMDQ4YzVmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMKQEAgLTU2OCw2ICs1NjgsNyBAQCBFeGVjSW50ZXJwRXhwcihFeHBy U3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkJJiZD QVNFX0VFT1BfWE1MRVhQUiwKIAkJJiZDQVNFX0VFT1BfSlNPTl9DT05TVFJVQ1RPUiwKIAkJJiZD QVNFX0VFT1BfSVNfSlNPTiwKKwkJJiZDQVNFX0VFT1BfU0FGRVRZUEVfQ0FTVCwKIAkJJiZDQVNF X0VFT1BfSlNPTkVYUFJfUEFUSCwKIAkJJiZDQVNFX0VFT1BfSlNPTkVYUFJfQ09FUkNJT04sCiAJ CSYmQ0FTRV9FRU9QX0pTT05FWFBSX0NPRVJDSU9OX0ZJTklTSCwKQEAgLTE5MjYsNiArMTkyNywx MiBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRl eHQsIGJvb2wgKmlzbnVsbCkKIAkJCUVFT19ORVhUKCk7CiAJCX0KIAorCQlFRU9fQ0FTRShFRU9Q X1NBRkVUWVBFX0NBU1QpCisJCXsKKwkJCS8qIHRvbyBjb21wbGV4IGZvciBhbiBpbmxpbmUgaW1w bGVtZW50YXRpb24gKi8KKwkJCUVFT19KVU1QKEV4ZWNFdmFsU2FmZVR5cGVDYXN0KHN0YXRlLCBv cCkpOworCQl9CisKIAkJRUVPX0NBU0UoRUVPUF9KU09ORVhQUl9QQVRIKQogCQl7CiAJCQkvKiB0 b28gY29tcGxleCBmb3IgYW4gaW5saW5lIGltcGxlbWVudGF0aW9uICovCkBAIC0zNjQ0LDYgKzM2 NTEsMTIgQEAgRXhlY0V2YWxBcnJheUNvZXJjZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0 ZXAgKm9wLCBFeHByQ29udGV4dCAqZWNvbnRleHQpCiAJCQkJCQkJICBlY29udGV4dCwKIAkJCQkJ CQkgIG9wLT5kLmFycmF5Y29lcmNlLnJlc3VsdGVsZW10eXBlLAogCQkJCQkJCSAgb3AtPmQuYXJy YXljb2VyY2UuYW1zdGF0ZSk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChvcC0+ZC5hcnJh eWNvZXJjZS5lbGVtZXhwcnN0YXRlLT5lc2NvbnRleHQpKQorCXsKKwkJKm9wLT5yZXN2YWx1ZSA9 IChEYXR1bSkgMDsKKwkJKm9wLT5yZXNudWxsID0gdHJ1ZTsKKwl9CiB9CiAKIC8qCkBAIC01MTgz LDYgKzUxOTYsMzAgQEAgR2V0SnNvbkJlaGF2aW9yVmFsdWVTdHJpbmcoSnNvbkJlaGF2aW9yICpi ZWhhdmlvcikKIAlyZXR1cm4gcHN0cmR1cChiZWhhdmlvcl9uYW1lc1tiZWhhdmlvci0+YnR5cGVd KTsKIH0KIAoraW50CitFeGVjRXZhbFNhZmVUeXBlQ2FzdChFeHByU3RhdGUgKnN0YXRlLCBFeHBy RXZhbFN0ZXAgKm9wKQoreworCVNhZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0ZSA9IG9wLT5kLnN0 Y2V4cHIuc3Rjc3RhdGU7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRCgmc3Rjc3RhdGUtPmVz Y29udGV4dCkpCisJeworCQkqb3AtPnJlc3ZhbHVlID0gKERhdHVtKSAwOworCQkqb3AtPnJlc251 bGwgPSB0cnVlOworCisJCXN0Y3N0YXRlLT5lcnJvci52YWx1ZSA9IEJvb2xHZXREYXR1bSh0cnVl KTsKKworCQkvKgorCQkgKiBSZXNldCBmb3IgbmV4dCB1c2Ugc3VjaCBhcyBmb3IgY2F0Y2hpbmcg ZXJyb3JzIHdoZW4gY29lcmNpbmcgYQorCQkgKiBleHByZXNzaW9uLgorCQkgKi8KKwkJc3Rjc3Rh dGUtPmVzY29udGV4dC5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOworCQlzdGNzdGF0ZS0+ZXNjb250 ZXh0LmRldGFpbHNfd2FudGVkID0gZmFsc2U7CisKKwkJcmV0dXJuIHN0Y3N0YXRlLT5qdW1wX2Vy cm9yOworCX0KKwlyZXR1cm4gc3Rjc3RhdGUtPmp1bXBfZW5kOworfQorCiAvKgogICogQ2hlY2tz IGlmIGFuIGVycm9yIG9jY3VycmVkIGluIEV4ZWNFdmFsSnNvbkNvZXJjaW9uKCkuICBJZiBzbywg dGhpcyBzZXRzCiAgKiBKc29uRXhwclN0YXRlLmVycm9yIHRvIHRyaWdnZXIgdGhlIE9OIEVSUk9S IGhhbmRsaW5nIHN0ZXBzLCB1bmxlc3MgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9qaXQv bGx2bS9sbHZtaml0X2V4cHIuYyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5j CmluZGV4IDcxMmIzNWRmN2U1Li5mNTRmZTU2MzU0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv aml0L2xsdm0vbGx2bWppdF9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWpp dF9leHByLmMKQEAgLTIyNTYsNiArMjI1Niw1NSBAQCBsbHZtX2NvbXBpbGVfZXhwcihFeHByU3Rh dGUgKnN0YXRlKQogCQkJCUxMVk1CdWlsZEJyKGIsIG9wYmxvY2tzW29wbm8gKyAxXSk7CiAJCQkJ YnJlYWs7CiAKKwkJCWNhc2UgRUVPUF9TQUZFVFlQRV9DQVNUOgorCQkJCXsKKwkJCQkJU2FmZVR5 cGVDYXN0U3RhdGUgKnN0Y3N0YXRlID0gb3AtPmQuc3RjZXhwci5zdGNzdGF0ZTsKKwkJCQkJTExW TVZhbHVlUmVmIHZfcmV0OworCisJCQkJCS8qCisJCQkJCSAqIENhbGwgRXhlY0V2YWxTYWZlVHlw ZUNhc3QoKS4gIEl0IHJldHVybnMgdGhlIGFkZHJlc3Mgb2YKKwkJCQkJICogdGhlIHN0ZXAgdG8g cGVyZm9ybSBuZXh0LgorCQkJCQkgKi8KKwkJCQkJdl9yZXQgPSBidWlsZF9FdmFsWEZ1bmMoYiwg bW9kLCAiRXhlY0V2YWxTYWZlVHlwZUNhc3QiLAorCQkJCQkJCQkJCQl2X3N0YXRlLCBvcCwgdl9l Y29udGV4dCk7CisKKwkJCQkJLyoKKwkJCQkJICogQnVpbGQgYSBzd2l0Y2ggdG8gbWFwIHRoZSBy ZXR1cm4gdmFsdWUgKHZfcmV0IGFib3ZlKSwKKwkJCQkJICogd2hpY2ggaXMgYSBydW50aW1lIHZh bHVlIG9mIHRoZSBzdGVwIGFkZHJlc3MgdG8gcGVyZm9ybQorCQkJCQkgKiBuZXh0IHRvIGp1bXBf ZXJyb3IKKwkJCQkJICovCisJCQkJCWlmIChzdGNzdGF0ZS0+anVtcF9lcnJvciA+PSAwKQorCQkJ CQl7CisJCQkJCQlMTFZNVmFsdWVSZWYgdl9qdW1wX2Vycm9yOworCQkJCQkJTExWTVZhbHVlUmVm IHZfc3dpdGNoOworCQkJCQkJTExWTUJhc2ljQmxvY2tSZWYgYl9kb25lLAorCQkJCQkJCQkJYl9l cnJvcjsKKworCQkJCQkJYl9lcnJvciA9CisJCQkJCQkJbF9iYl9iZWZvcmVfdihvcGJsb2Nrc1tv cG5vICsgMV0sCisJCQkJCQkJCQkJICAib3AuJWQuc3RjZXhwcl9lcnJvciIsIG9wbm8pOworCQkJ CQkJYl9kb25lID0KKwkJCQkJCQlsX2JiX2JlZm9yZV92KG9wYmxvY2tzW29wbm8gKyAxXSwKKwkJ CQkJCQkJCQkgICJvcC4lZC5zdGNleHByX2RvbmUiLCBvcG5vKTsKKworCQkJCQkJdl9zd2l0Y2gg PSBMTFZNQnVpbGRTd2l0Y2goYiwKKwkJCQkJCQkJCQkJCSAgIHZfcmV0LAorCQkJCQkJCQkJCQkJ ICAgYl9kb25lLAorCQkJCQkJCQkJCQkJICAgMSk7CisKKwkJCQkJCS8qIFJldHVybmVkIHN0Y3N0 YXRlLT5qdW1wX2Vycm9yPyAqLworCQkJCQkJdl9qdW1wX2Vycm9yID0gbF9pbnQzMl9jb25zdChs Yywgc3Rjc3RhdGUtPmp1bXBfZXJyb3IpOworCQkJCQkJTExWTUFkZENhc2Uodl9zd2l0Y2gsIHZf anVtcF9lcnJvciwgYl9lcnJvcik7CisKKwkJCQkJCS8qIE9OIEVSUk9SIGNvZGUgKi8KKwkJCQkJ CUxMVk1Qb3NpdGlvbkJ1aWxkZXJBdEVuZChiLCBiX2Vycm9yKTsKKwkJCQkJCUxMVk1CdWlsZEJy KGIsIG9wYmxvY2tzW3N0Y3N0YXRlLT5qdW1wX2Vycm9yXSk7CisKKwkJCQkJCUxMVk1Qb3NpdGlv bkJ1aWxkZXJBdEVuZChiLCBiX2RvbmUpOworCQkJCQl9CisJCQkJCUxMVk1CdWlsZEJyKGIsIG9w YmxvY2tzW3N0Y3N0YXRlLT5qdW1wX2VuZF0pOworCQkJCQlicmVhazsKKwkJCQl9CiAJCQljYXNl IEVFT1BfSlNPTkVYUFJfUEFUSDoKIAkJCQl7CiAJCQkJCUpzb25FeHByU3RhdGUgKmpzZXN0YXRl ID0gb3AtPmQuanNvbmV4cHIuanNlc3RhdGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rl cy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGVkZTgz OGNkNDBjLi41MzNlMjExMjBhNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTIwNiw2ICsyMDYs OSBAQCBleHByVHlwZShjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfUm93Q29tcGFyZUV4cHI6 CiAJCQl0eXBlID0gQk9PTE9JRDsKIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhw cjoKKwkJCXR5cGUgPSAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdHR5 cGU7CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXR5cGUgPSAoKGNvbnN0 IENvYWxlc2NlRXhwciAqKSBleHByKS0+Y29hbGVzY2V0eXBlOwogCQkJYnJlYWs7CkBAIC00NTAs NiArNDUzLDggQEAgZXhwclR5cG1vZChjb25zdCBOb2RlICpleHByKQogCQkJCXJldHVybiB0eXBt b2Q7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQlyZXR1 cm4gKChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHR0eXBtb2Q7CiAJCWNh c2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJLyoKQEAgLTk2NSw2ICs5NzAsOSBAQCBleHBy Q29sbGF0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkvKiBSb3dDb21wYXJlRXhwcidzIHJlc3Vs dCBpcyBib29sZWFuIC4uLiAqLwogCQkJY29sbCA9IEludmFsaWRPaWQ7CS8qIC4uLiBzbyBpdCBo YXMgbm8gY29sbGF0aW9uICovCiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6 CisJCQljb2xsID0gKChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHRjb2xs aWQ7CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCWNvbGwgPSAoKGNvbnN0 IENvYWxlc2NlRXhwciAqKSBleHByKS0+Y29hbGVzY2Vjb2xsaWQ7CiAJCQlicmVhazsKQEAgLTEy MzIsNiArMTI0MCw5IEBAIGV4cHJTZXRDb2xsYXRpb24oTm9kZSAqZXhwciwgT2lkIGNvbGxhdGlv bikKIAkJCS8qIFJvd0NvbXBhcmVFeHByJ3MgcmVzdWx0IGlzIGJvb2xlYW4gLi4uICovCiAJCQlB c3NlcnQoIU9pZElzVmFsaWQoY29sbGF0aW9uKSk7IC8qIC4uLiBzbyBuZXZlciBzZXQgYSBjb2xs YXRpb24gKi8KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCSgoU2Fm ZVR5cGVDYXN0RXhwciAqKSBleHByKS0+cmVzdWx0Y29sbGlkID0gY29sbGF0aW9uOworCQkJYnJl YWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQkoKENvYWxlc2NlRXhwciAqKSBleHByKS0+ Y29hbGVzY2Vjb2xsaWQgPSBjb2xsYXRpb247CiAJCQlicmVhazsKQEAgLTE1NTAsNiArMTU2MSwx NSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJCS8qIGp1c3QgdXNlIGxlZnRt b3N0IGFyZ3VtZW50J3MgbG9jYXRpb24gKi8KIAkJCWxvYyA9IGV4cHJMb2NhdGlvbigoTm9kZSAq KSAoKGNvbnN0IFJvd0NvbXBhcmVFeHByICopIGV4cHIpLT5sYXJncyk7CiAJCQlicmVhazsKKwkJ Y2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJY29uc3QgU2FmZVR5cGVDYXN0RXhw ciAqY2FzdF9leHByID0gKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwcjsKKwkJCQlpZiAo Y2FzdF9leHByLT5jYXN0X2V4cHIpCisJCQkJCWxvYyA9IGV4cHJMb2NhdGlvbihjYXN0X2V4cHIt PmNhc3RfZXhwcik7CisJCQkJZWxzZQorCQkJCQlsb2MgPSBleHByTG9jYXRpb24oY2FzdF9leHBy LT5kZWZhdWx0X2V4cHIpOworCQkJCWJyZWFrOworCQkJfQogCQljYXNlIFRfQ29hbGVzY2VFeHBy OgogCQkJLyogQ09BTEVTQ0Uga2V5d29yZCBzaG91bGQgYWx3YXlzIGJlIHRoZSBmaXJzdCB0aGlu ZyAqLwogCQkJbG9jID0gKChjb25zdCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmxvY2F0aW9uOwpA QCAtMjMyMSw2ICsyMzQxLDE4IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpu b2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5 cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKnNjZXhwciA9IChTYWZl VHlwZUNhc3RFeHByICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzY2V4cHItPnNvdXJjZV9leHBy KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc2NleHByLT5jYXN0X2V4cHIpKQor CQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzY2V4cHItPmRlZmF1bHRfZXhwcikpCisJ CQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6 CiAJCQlyZXR1cm4gV0FMSygoKENvYWxlc2NlRXhwciAqKSBub2RlKS0+YXJncyk7CiAJCWNhc2Ug VF9NaW5NYXhFeHByOgpAQCAtMzMzMCw2ICszMzYyLDE5IEBAIGV4cHJlc3Npb25fdHJlZV9tdXRh dG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKIAkJCX0K IAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlw ZUNhc3RFeHByICAgKnNjZXhwciA9IChTYWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisJCQkJU2Fm ZVR5cGVDYXN0RXhwciAgICpuZXdub2RlOworCisJCQkJRkxBVENPUFkobmV3bm9kZSwgc2NleHBy LCBTYWZlVHlwZUNhc3RFeHByKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+c291cmNlX2V4cHIsIHNj ZXhwci0+c291cmNlX2V4cHIsIE5vZGUgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPmNhc3RfZXhw ciwgc2NleHByLT5jYXN0X2V4cHIsIE5vZGUgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPmRlZmF1 bHRfZXhwciwgc2NleHByLT5kZWZhdWx0X2V4cHIsIE5vZGUgKik7CisKKwkJCQlyZXR1cm4gKE5v ZGUgKikgbmV3bm9kZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgog CQkJewogCQkJCUNvYWxlc2NlRXhwciAqY29hbGVzY2VleHByID0gKENvYWxlc2NlRXhwciAqKSBu b2RlOwpAQCAtNDQ2NCw2ICs0NTA5LDI4IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2VyX2lt cGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2Fz ZSBUX1NhZmVUeXBlQ2FzdDoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3QgICAqc2MgPSAoU2FmZVR5 cGVDYXN0ICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzYy0+Y2FzdCkpCisJCQkJCXJldHVybiB0 cnVlOworCQkJCWlmIChXQUxLKHNjLT5kZWZfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJ fQorCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVU eXBlQ2FzdEV4cHIgICAqc3RjID0gKFNhZmVUeXBlQ2FzdEV4cHIgKikgbm9kZTsKKworCQkJCWlm IChXQUxLKHN0Yy0+c291cmNlX2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FM SyhzdGMtPmNhc3RfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHN0Yy0+ ZGVmYXVsdF9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJY2Fz ZSBUX0NvbGxhdGVDbGF1c2U6CiAJCQlyZXR1cm4gV0FMSygoKENvbGxhdGVDbGF1c2UgKikgbm9k ZSktPmFyZyk7CiAJCWNhc2UgVF9Tb3J0Qnk6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2Vz LmMKaW5kZXggODFkNzY4ZmYyYTIuLjA3YjgyOThkZDlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0 aWwvY2xhdXNlcy5jCkBAIC0yOTQ1LDYgKzI5NDUsMzAgQEAgZXZhbF9jb25zdF9leHByZXNzaW9u c19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCQkJCQkJCQkgIGNvcHlPYmplY3QoanZlLT5mb3Jt YXQpKTsKIAkJCX0KIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZl VHlwZUNhc3RFeHByIAkqc3RjID0gKFNhZmVUeXBlQ2FzdEV4cHIgKikgbm9kZTsKKwkJCQlTYWZl VHlwZUNhc3RFeHByCSpuZXdleHByOworCQkJCU5vZGUJICAgKnNvdXJjZV9leHByID0gc3RjLT5z b3VyY2VfZXhwcjsKKwkJCQlOb2RlCSAgICpkZWZhdWx0X2V4cHIgPSBzdGMtPmRlZmF1bHRfZXhw cjsKKworCQkJCXNvdXJjZV9leHByID0gZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKHNv dXJjZV9leHByLCBjb250ZXh0KTsKKwkJCQlkZWZhdWx0X2V4cHIgPSBldmFsX2NvbnN0X2V4cHJl c3Npb25zX211dGF0b3IoZGVmYXVsdF9leHByLCBjb250ZXh0KTsKKworCQkJCS8qCisJCQkJICog V2UgbXVzdCBub3QgcmVkdWNlIGFueSByZWNvZ25pemFibHkgY29uc3RhbnQgc3ViZXhwcmVzc2lv bnMKKwkJCQkgKiBpbiBjYXN0X2V4cHIgaGVyZSwgc2luY2Ugd2UgZG9u4oCZdCB3YW50IGl0IHRv IGZhaWwKKwkJCQkgKiBwcmVtYXR1cmVseS4KKwkJCQkgKi8KKwkJCQluZXdleHByID0gbWFrZU5v ZGUoU2FmZVR5cGVDYXN0RXhwcik7CisJCQkJbmV3ZXhwci0+c291cmNlX2V4cHIgPSBzb3VyY2Vf ZXhwcjsKKwkJCQluZXdleHByLT5jYXN0X2V4cHIgPSBzdGMtPmNhc3RfZXhwcjsKKwkJCQluZXdl eHByLT5kZWZhdWx0X2V4cHIgPSBkZWZhdWx0X2V4cHI7CisJCQkJbmV3ZXhwci0+cmVzdWx0dHlw ZSA9IHN0Yy0+cmVzdWx0dHlwZTsKKwkJCQluZXdleHByLT5yZXN1bHR0eXBtb2QgPSBzdGMtPnJl c3VsdHR5cG1vZDsKKwkJCQluZXdleHByLT5yZXN1bHRjb2xsaWQgPSBzdGMtPnJlc3VsdGNvbGxp ZDsKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3ZXhwcjsKKwkJCX0KIAkJY2FzZSBUX1N1YlBsYW46 CiAJCWNhc2UgVF9BbHRlcm5hdGl2ZVN1YlBsYW46CiAKQEAgLTUxNDcsNiArNTE3MSw3NSBAQCBl dmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5 cG1vZCwKIAkJCQkJCQkgIHJlc3VsdFR5cEJ5VmFsKTsKIH0KIAorLyoKKyAqIGV2YWx1YXRlX2V4 cHJfc2FmZTogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIGV2YWx1YXRlX2V4cHIKKyAqCisgKiBXZSB1 c2UgdGhlIGV4ZWN1dG9yJ3Mgcm91dGluZSBFeGVjRXZhbEV4cHIoKSB0byBhdm9pZCBkdXBsaWNh dGlvbiBvZgorICogY29kZSBhbmQgZW5zdXJlIHdlIGdldCB0aGUgc2FtZSByZXN1bHQgYXMgdGhl IGV4ZWN1dG9yIHdvdWxkIGdldC4KKyAqCisgKiByZXR1cm4gTlVMTCB3aGVuIGV2YXVsYXRpb24g ZmFpbGVkLiBFbnN1cmUgdGhlIGV4cHJlc3Npb24gZXhwciBjYW4gYmUgZXZhdWxhdGVkCisgKiBp biBhIHNvZnQgZXJyb3Igd2F5LgorICoKKyAqIFNlZSBjb21tZW50cyBvbiBldmFsdWF0ZV9leHBy IHRvby4KKyAqLworRXhwciAqCitldmFsdWF0ZV9leHByX3NhZmUoRXhwciAqZXhwciwgT2lkIHJl c3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAorCQkJCSAgIE9pZCByZXN1bHRfY29sbGF0 aW9uKQoreworCUVTdGF0ZQkgICAqZXN0YXRlOworCUV4cHJTdGF0ZSAgKmV4cHJzdGF0ZTsKKwlN ZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisJRGF0dW0JCWNvbnN0X3ZhbDsKKwlib29sCQljb25z dF9pc19udWxsOworCWludDE2CQlyZXN1bHRUeXBMZW47CisJYm9vbAkJcmVzdWx0VHlwQnlWYWw7 CisKKwllc3RhdGUgPSBDcmVhdGVFeGVjdXRvclN0YXRlKCk7CisKKwkvKiBXZSBjYW4gdXNlIHRo ZSBlc3RhdGUncyB3b3JraW5nIGNvbnRleHQgdG8gYXZvaWQgbWVtb3J5IGxlYWtzLiAqLworCW9s ZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZXN0YXRlLT5lc19xdWVyeV9jeHQpOwor CisJLyogTWFrZSBzdXJlIGFueSBvcGZ1bmNpZHMgYXJlIGZpbGxlZCBpbi4gKi8KKwlmaXhfb3Bm dW5jaWRzKChOb2RlICopIGV4cHIpOworCisJLyoKKwkgKiBQcmVwYXJlIGV4cHIgZm9yIGV4ZWN1 dGlvbi4gIChOb3RlOiB3ZSBjYW4ndCB1c2UgRXhlY1ByZXBhcmVFeHByCisJICogYmVjYXVzZSBp dCdkIHJlc3VsdCBpbiByZWN1cnNpdmVseSBpbnZva2luZyBldmFsX2NvbnN0X2V4cHJlc3Npb25z LikKKwkgKi8KKwlleHByc3RhdGUgPSBFeGVjSW5pdEV4cHJTYWZlKGV4cHIsIE5VTEwpOworCisJ Y29uc3RfdmFsID0gRXhlY0V2YWxFeHByU3dpdGNoQ29udGV4dChleHByc3RhdGUsCisJCQkJCQkJ CQkJICBHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSksCisJCQkJCQkJCQkJICAmY29uc3Rf aXNfbnVsbCk7CisKKwkvKiBHZXQgaW5mbyBuZWVkZWQgYWJvdXQgcmVzdWx0IGRhdGF0eXBlICov CisJZ2V0X3R5cGxlbmJ5dmFsKHJlc3VsdF90eXBlLCAmcmVzdWx0VHlwTGVuLCAmcmVzdWx0VHlw QnlWYWwpOworCisJLyogR2V0IGJhY2sgdG8gb3V0ZXIgbWVtb3J5IGNvbnRleHQgKi8KKwlNZW1v cnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChleHByc3RhdGUtPmVzY29udGV4dCkpCisJeworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUp OworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlpZiAoIWNvbnN0X2lzX251bGwpCisJeworCQlpZiAo cmVzdWx0VHlwTGVuID09IC0xKQorCQkJY29uc3RfdmFsID0gUG9pbnRlckdldERhdHVtKFBHX0RF VE9BU1RfREFUVU1fQ09QWShjb25zdF92YWwpKTsKKwkJZWxzZQorCQkJY29uc3RfdmFsID0gZGF0 dW1Db3B5KGNvbnN0X3ZhbCwgcmVzdWx0VHlwQnlWYWwsIHJlc3VsdFR5cExlbik7CisJfQorCisJ RnJlZUV4ZWN1dG9yU3RhdGUoZXN0YXRlKTsKKworCXJldHVybiAoRXhwciAqKSBtYWtlQ29uc3Qo cmVzdWx0X3R5cGUsIHJlc3VsdF90eXBtb2QsIHJlc3VsdF9jb2xsYXRpb24sCisJCQkJCQkJICBy ZXN1bHRUeXBMZW4sCisJCQkJCQkJICBjb25zdF92YWwsIGNvbnN0X2lzX251bGwsCisJCQkJCQkJ ICByZXN1bHRUeXBCeVZhbCk7Cit9CisKIAogLyoKICAqIGlubGluZV9zZXRfcmV0dXJuaW5nX2Z1 bmN0aW9uCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQppbmRleCBhNGIyOWM4MjJlOC4uOGQxZGQwZjI3OGMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQpAQCAtMTU5OTMsNiArMTU5OTMsMjggQEAgZnVuY19leHByX2NvbW1vbl9zdWJleHByOgog CQkJCX0KIAkJCXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVuYW1lICcpJwogCQkJCXsgJCQgPSBt YWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7IH0KKwkJCXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVu YW1lIEVSUk9SX1AgT04gQ09OVkVSU0lPTl9QIEVSUk9SX1AgJyknCisJCQkJeyAkJCA9IG1ha2VU eXBlQ2FzdCgkMywgJDUsIEAxKTsgfQorCQkJfCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUg TlVMTF9QIE9OIENPTlZFUlNJT05fUCBFUlJPUl9QICcpJworCQkJCXsKKwkJCQkJVHlwZUNhc3Qg KmNhc3QgPSAoVHlwZUNhc3QgKikgbWFrZVR5cGVDYXN0KCQzLCAkNSwgQDEpOworCisJCQkJCVNh ZmVUeXBlQ2FzdCAqc2FmZWNhc3QgPSBtYWtlTm9kZShTYWZlVHlwZUNhc3QpOworCQkJCQlzYWZl Y2FzdC0+Y2FzdCA9IChOb2RlICopIGNhc3Q7CisJCQkJCXNhZmVjYXN0LT5kZWZfZXhwciA9IG1h a2VOdWxsQUNvbnN0KC0xKTs7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBzYWZlY2FzdDsKKwkJCQl9 CisJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSBERUZBVUxUIGFfZXhwciBPTiBDT05W RVJTSU9OX1AgRVJST1JfUCAnKScKKwkJCQl7CisJCQkJCVR5cGVDYXN0ICpjYXN0ID0gKFR5cGVD YXN0ICopIG1ha2VUeXBlQ2FzdCgkMywgJDUsIEAxKTsKKworCQkJCQlTYWZlVHlwZUNhc3QgKnNh ZmVjYXN0ID0gbWFrZU5vZGUoU2FmZVR5cGVDYXN0KTsKKwkJCQkJc2FmZWNhc3QtPmNhc3QgPSAo Tm9kZSAqKSBjYXN0OworCQkJCQlzYWZlY2FzdC0+ZGVmX2V4cHIgPSAkNzsKKworCQkJCQkkJCA9 IChOb2RlICopIHNhZmVjYXN0OworCQkJCX0KIAkJCXwgRVhUUkFDVCAnKCcgZXh0cmFjdF9saXN0 ICcpJwogCQkJCXsKIAkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlRnVuY0NhbGwoU3lzdGVtRnVuY05h bWUoImV4dHJhY3QiKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCAzMjU0YzgzY2M2Yy4uNjU3 M2UyYTkzZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTQ4Niw2ICs0ODYsMTIgQEAgY2hl Y2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIpCiAJCQkJZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4g Y2hlY2sgY29uc3RyYWludHMiKTsKIAogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1Rf REVGQVVMVDoKKwkJCWlmIChpc0FnZykKKwkJCQllcnIgPSBfKCJhZ2dyZWdhdGUgZnVuY3Rpb25z IGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKKwkJCWVsc2UK KwkJCQllcnIgPSBfKCJncm91cGluZyBvcGVyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNU IERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKKwkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xV TU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIApAQCAtOTU2 LDYgKzk2Miw5IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwg V2luZG93RnVuYyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJCWVy ciA9IF8oIndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0cmFp bnRzIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJZXJy ID0gXygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4 cHJlc3Npb25zIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6 CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJ3aW5kb3cg ZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYwppbmRleCAxMjExOWYxNDdmYy4uNTk2YWFjNjliMDggMTAwNjQ0Ci0t 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 ImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gREVGQVVMVCBleHByZXNzaW9uIik7CkBAIC0yMDA1LDIy ICsyMDE4LDgwIEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5r 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 ZU5vZGUoQXJyYXlFeHByKTsKIAlMaXN0CSAgICpuZXdlbGVtcyA9IE5JTDsKIAlMaXN0CSAgICpu ZXdjb2VyY2VkZWxlbXMgPSBOSUw7CiAJTGlzdENlbGwgICAqZWxlbWVudDsKIAlPaWQJCQljb2Vy Y2VfdHlwZTsKKwlPaWQJCQljb2VyY2VfdHlwZV9jb2xsOwogCWJvb2wJCWNvZXJjZV9oYXJkOwog CiAJLyoKQEAgLTIwNDUsOSArMjExNiwxMCBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKIAkJCQkJCQkJCSAgKEFfQXJyYXlFeHByICopIGUs CiAJCQkJCQkJCQkgIGFycmF5X3R5cGUsCiAJCQkJCQkJCQkgIGVsZW1lbnRfdHlwZSwKLQkJCQkJ CQkJCSAgdHlwbW9kKTsKKwkJCQkJCQkJCSAgdHlwbW9kLAorCQkJCQkJCQkJICBjYW5fY29lcmNl KTsKIAkJCS8qIHdlIGNlcnRhaW5seSBoYXZlIGFuIGFycmF5IGhlcmUgKi8KLQkJCUFzc2VydChh cnJheV90eXBlID09IEludmFsaWRPaWQgfHwgYXJyYXlfdHlwZSA9PSBleHByVHlwZShuZXdlKSk7 CisJCQlBc3NlcnQoY2FuX2NvZXJjZSB8fCBhcnJheV90eXBlID09IEludmFsaWRPaWQgfHwgYXJy YXlfdHlwZSA9PSBleHByVHlwZShuZXdlKSk7CiAJCQluZXdhLT5tdWx0aWRpbXMgPSB0cnVlOwog CQl9CiAJCWVsc2UKQEAgLTIwODgsNiArMjE2MCw5IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCX0KIAllbHNlCiAJeworCQkvKiBXZSBv YnZpb3VzbHkga25vdyB0aGUgdGFyZ2V0IHR5cGUgd2hlbiBwZXJmb3JtaW5nIHR5cGUtc2FmZSBj YXN0ICovCisJCUFzc2VydChjYW5fY29lcmNlID09IE5VTEwpOworCiAJCS8qIENhbid0IGhhbmRs ZSBhbiBlbXB0eSBhcnJheSB3aXRob3V0IGEgdGFyZ2V0IHR5cGUgKi8KIAkJaWYgKG5ld2VsZW1z ID09IE5JTCkKIAkJCWVyZXBvcnQoRVJST1IsCkBAIC0yMTI1LDYgKzIyMDAsOCBAQCB0cmFuc2Zv cm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKIAkJY29lcmNl X2hhcmQgPSBmYWxzZTsKIAl9CiAKKwljb2VyY2VfdHlwZV9jb2xsID0gZ2V0X3R5cGNvbGxhdGlv bihjb2VyY2VfdHlwZSk7CisKIAkvKgogCSAqIENvZXJjZSBlbGVtZW50cyB0byB0YXJnZXQgdHlw ZQogCSAqCkBAIC0yMTM0LDEzICsyMjExLDQzIEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0 YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCSAqIElmIHRoZSBhcnJheSdzIHR5cGUgd2Fz IG1lcmVseSBkZXJpdmVkIGZyb20gdGhlIGNvbW1vbiB0eXBlIG9mIGl0cwogCSAqIGVsZW1lbnRz LCB0aGVuIHRoZSBlbGVtZW50cyBhcmUgaW1wbGljaXRseSBjb2VyY2VkIHRvIHRoZSBjb21tb24g dHlwZS4KIAkgKiBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCBvdGhlciB1c2VzIG9mIHNlbGVjdF9j b21tb25fdHlwZSgpLgorCSAqCisJICogSWYgY2FuX2NvZXJjZSBpcyBub3QgTlVMTCwgd2UgbmVl ZCB0byBzYWZlbHkgdGVzdCB3aGV0aGVyIGVhY2ggZWxlbWVudAorCSAqIGNhbiBiZSBjb2VyY2Vk IHRvIHRoZSB0YXJnZXQgdHlwZSwgc2ltaWxhciB0byB3aGF0IGlzIGRvbmUgaW4KKwkgKiB0cmFu c2Zvcm1UeXBlU2FmZUNhc3QuCiAJICovCiAJZm9yZWFjaChlbGVtZW50LCBuZXdlbGVtcykKIAl7 CiAJCU5vZGUJICAgKmUgPSAoTm9kZSAqKSBsZmlyc3QoZWxlbWVudCk7CisJCWJvb2wJCWV4cHJf aXNfY29uc3QgPSBmYWxzZTsKIAkJTm9kZQkgICAqbmV3ZTsKIAotCQlpZiAoY29lcmNlX2hhcmQp CisJCS8qCisJCSAqIElmIGFuIFVOS05PV04gY29uc3RhbnQgY2Fubm90IGJlIGNvZXJjZWQgdG8g dGhlIHRhcmdldCB0eXBlLCBzZXQKKwkJICogY2FuX2NvZXJjZSB0byBmYWxzZSBhbmQgY29lcmNl IGl0IHRvIHRoZSBURVhUIGRhdGEgdHlwZSBpbnN0ZWFkLgorCQkgKi8KKwkJaWYgKGNhbl9jb2Vy Y2UgIT0gTlVMTCAmJiBJc0EoZSwgQ29uc3QpKQorCQl7CisJCQlleHByX2lzX2NvbnN0ID0gdHJ1 ZTsKKworCQkJaWYgKGV4cHJUeXBlKGUpID09IFVOS05PV05PSUQgJiYKKwkJCQkhQ29lcmNlVW5r bm93bkNvbnN0U2FmZShwc3RhdGUsIGUsIGNvZXJjZV90eXBlLCB0eXBtb2QpKQorCQkJeworCQkJ CSpjYW5fY29lcmNlID0gZmFsc2U7CisKKwkJCQllID0gIGNvZXJjZV90b190YXJnZXRfdHlwZShw c3RhdGUsIGUsCisJCQkJCQkJCQkJICAgVU5LTk9XTk9JRCwKKwkJCQkJCQkJCQkgICBURVhUT0lE LAorCQkJCQkJCQkJCSAgIC0xLAorCQkJCQkJCQkJCSAgIENPRVJDSU9OX0lNUExJQ0lULAorCQkJ CQkJCQkJCSAgIENPRVJDRV9JTVBMSUNJVF9DQVNULAorCQkJCQkJCQkJCSAgIC0xKTsKKwkJCX0K KwkJfQorCisJCWlmIChjYW5fY29lcmNlICE9IE5VTEwgJiYgKCEqY2FuX2NvZXJjZSkpCisJCQlu ZXdlID0gZTsKKwkJZWxzZSBpZiAoY29lcmNlX2hhcmQpCiAJCXsKIAkJCW5ld2UgPSBjb2VyY2Vf dG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBlLAogCQkJCQkJCQkJCSBleHByVHlwZShlKSwKQEAgLTIx NDksMTMgKzIyNTYsNjggQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9BcnJheUV4cHIgKmEsCiAJCQkJCQkJCQkJIENPRVJDSU9OX0VYUExJQ0lULAogCQkJCQkJCQkJ CSBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKIAkJCQkJCQkJCQkgLTEpOwotCQkJaWYgKG5ld2UgPT0g TlVMTCkKKwkJCWlmIChuZXdlID09IE5VTEwgJiYgY2FuX2NvZXJjZSA9PSBOVUxMKQogCQkJCWVy ZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLAogCQkJ CQkJIGVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyIsCiAJCQkJCQkJCWZvcm1hdF90 eXBlX2JlKGV4cHJUeXBlKGUpKSwKIAkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29lcmNlX3R5cGUp KSwKIAkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oZSkpKSk7 CisKKwkJCWlmIChuZXdlID09IE5VTEwgJiYgY2FuX2NvZXJjZSAhPSBOVUxMKQorCQkJeworCQkJ CW5ld2UgPSBlOworCQkJCSpjYW5fY29lcmNlID0gZmFsc2U7CisJCQl9CisKKwkJCWlmIChuZXdl ICE9IE5VTEwgJiYgY2FuX2NvZXJjZSAhPSBOVUxMICYmIGV4cHJfaXNfY29uc3QpCisJCQl7CisJ CQkJTm9kZQkgICAqb3JpZ2V4cHIgPSBuZXdlOworCQkJCU5vZGUJICAgKnJlc3VsdDsKKwkJCQli b29sCQloYXZlX2NvbGxhdGVfZXhwciA9IGZhbHNlOworCisJCQkJaWYgKElzQShuZXdlLCBDb2xs YXRlRXhwcikpCisJCQkJCWhhdmVfY29sbGF0ZV9leHByID0gdHJ1ZTsKKworCQkJCXdoaWxlIChu ZXdlICYmIElzQShuZXdlLCBDb2xsYXRlRXhwcikpCisJCQkJCW5ld2UgPSAoTm9kZSAqKSAoKENv bGxhdGVFeHByICopIG5ld2UpLT5hcmc7CisKKwkJCQlpZiAoIUlzQShuZXdlLCBGdW5jRXhwcikp CisJCQkJCW5ld2UgPSBvcmlnZXhwcjsKKwkJCQllbHNlCisJCQkJeworCQkJCQkvKgorCQkJCQkg KiBVc2UgZXZhbHVhdGVfZXhwcl9zYWZlIHRvIHByZS1ldmFsdWF0ZSBzaW1wbGUgY29uc3RhbnQK KwkJCQkJICogY2FzdCBleHByZXNzaW9ucyBlYXJseSwgaW4gYSB3YXkgdGhhdCB0b2x0ZXIgZXJy b3JzLgorCQkJCQkgKi8KKwkJCQkJRnVuY0V4cHIgKm5ld2V4cHIgPSAoRnVuY0V4cHIgKikgY29w eU9iamVjdChuZXdlKTsKKworCQkJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgKE5v ZGUgKikgbmV3ZXhwcik7CisKKwkJCQkJcmVzdWx0ID0gKE5vZGUgKikgZXZhbHVhdGVfZXhwcl9z YWZlKChFeHByICopIG5ld2V4cHIsCisJCQkJCQkJCQkJCQkJCSBjb2VyY2VfdHlwZSwKKwkJCQkJ CQkJCQkJCQkJIHR5cG1vZCwKKwkJCQkJCQkJCQkJCQkJIGNvZXJjZV90eXBlX2NvbGwpOworCQkJ CQlpZiAocmVzdWx0ID09IE5VTEwpCisJCQkJCXsKKwkJCQkJCW5ld2UgPSBlOworCQkJCQkJKmNh bl9jb2VyY2UgPSBmYWxzZTsKKwkJCQkJfQorCQkJCQllbHNlIGlmIChoYXZlX2NvbGxhdGVfZXhw cikKKwkJCQkJeworCQkJCQkJLyogUmVpbnN0YWxsIHRvcCBDb2xsYXRlRXhwciAqLworCQkJCQkJ Q29sbGF0ZUV4cHIgKmNvbGwgPSAoQ29sbGF0ZUV4cHIgKikgb3JpZ2V4cHI7CisJCQkJCQlDb2xs YXRlRXhwciAqbmV3Y29sbCA9IG1ha2VOb2RlKENvbGxhdGVFeHByKTsKKworCQkJCQkJbmV3Y29s bC0+YXJnID0gKEV4cHIgKikgcmVzdWx0OworCQkJCQkJbmV3Y29sbC0+Y29sbE9pZCA9IGNvbGwt PmNvbGxPaWQ7CisJCQkJCQluZXdjb2xsLT5sb2NhdGlvbiA9IGNvbGwtPmxvY2F0aW9uOworCQkJ CQkJbmV3ZSA9IChOb2RlICopIG5ld2NvbGw7CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQkJbmV3 ZSA9IHJlc3VsdDsKKwkJCQl9CisJCQl9CiAJCX0KIAkJZWxzZQogCQkJbmV3ZSA9IGNvZXJjZV90 b19jb21tb25fdHlwZShwc3RhdGUsIGUsCkBAIC0yNzQzLDcgKzI5MDUsOCBAQCB0cmFuc2Zvcm1U eXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0YykKIAkJCQkJCQkJCSAgKEFf QXJyYXlFeHByICopIGFyZywKIAkJCQkJCQkJCSAgdGFyZ2V0QmFzZVR5cGUsCiAJCQkJCQkJCQkg IGVsZW1lbnRUeXBlLAotCQkJCQkJCQkJICB0YXJnZXRCYXNlVHlwbW9kKTsKKwkJCQkJCQkJCSAg dGFyZ2V0QmFzZVR5cG1vZCwKKwkJCQkJCQkJCSAgTlVMTCk7CiAJCX0KIAkJZWxzZQogCQkJZXhw ciA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwgYXJnKTsKQEAgLTI3ODAsNiArMjk0Mywy NTkgQEAgdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMp CiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIEhhbmRsZSBhbiBleHBsaWNpdCBDQVNUKC4u LiBERUZBVUxUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SKSBjb25zdHJ1Y3QuCisgKgorICogVHJh bnNmb3JtIFNhZmVUeXBlQ2FzdCBub2RlLCBsb29rIHVwIHRoZSB0eXBlIG5hbWUsIGFuZCBhcHBs eSBhbnkgbmVjZXNzYXJ5CisgKiBjb2VyY2lvbiBmdW5jdGlvbihzKS4KKyAqLworc3RhdGljIE5v ZGUgKgordHJhbnNmb3JtVHlwZVNhZmVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2FmZVR5cGVD YXN0ICp0YykKK3sKKwlTYWZlVHlwZUNhc3RFeHByICAgKnJlc3VsdDsKKwlUeXBlQ2FzdCAgICp0 Y2FzdCA9IChUeXBlQ2FzdCAqKSB0Yy0+Y2FzdDsKKwlOb2RlCSAgICpkZWZfZXhwciA9IE5VTEw7 CisJTm9kZQkgICAqY2FzdF9leHByID0gTlVMTDsKKwlOb2RlCSAgICpzb3VyY2VfZXhwciA9IE5V TEw7CisJT2lkCQkJaW5wdXRUeXBlID0gSW52YWxpZE9pZDsKKwlPaWQJCQl0YXJnZXRUeXBlOwor CU9pZAkJCXRhcmdldEJhc2VUeXBlOworCU9pZAkJCXR5cGVDb2xsOworCWludDMyCQl0YXJnZXRU eXBtb2Q7CisJaW50MzIJCXRhcmdldEJhc2VUeXBtb2Q7CisJYm9vbAkJY2FuX2NvZXJjZSA9IHRy dWU7CisJYm9vbAkJZXhwcl9pc19jb25zdCA9IGZhbHNlOworCWludAkJCWxvY2F0aW9uOworCisJ LyogTG9vayB1cCB0aGUgdHlwZSBuYW1lIGZpcnN0ICovCisJdHlwZW5hbWVUeXBlSWRBbmRNb2Qo cHN0YXRlLCB0Y2FzdC0+dHlwZU5hbWUsICZ0YXJnZXRUeXBlLCAmdGFyZ2V0VHlwbW9kKTsKKwl0 YXJnZXRCYXNlVHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCisJdHlwZUNvbGwgPSBnZXRfdHlwY29s bGF0aW9uKHRhcmdldFR5cGUpOworCisJdGFyZ2V0QmFzZVR5cGUgPSBnZXRCYXNlVHlwZUFuZFR5 cG1vZCh0YXJnZXRUeXBlLCAmdGFyZ2V0QmFzZVR5cG1vZCk7CisKKwkvKiBub3cgbG9va2luZyBh dCBERUZBVUxUIGV4cHJlc3Npb24gKi8KKwlkZWZfZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0YXRl LCB0Yy0+ZGVmX2V4cHIsIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQpOworCisJZGVmX2V4cHIgPSBj b2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBkZWZfZXhwciwgZXhwclR5cGUoZGVmX2V4cHIp LAorCQkJCQkJCQkJIHRhcmdldFR5cGUsIHRhcmdldFR5cG1vZCwKKwkJCQkJCQkJCSBDT0VSQ0lP Tl9FWFBMSUNJVCwKKwkJCQkJCQkJCSBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCSBl eHByTG9jYXRpb24oZGVmX2V4cHIpKTsKKworCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRl LCBkZWZfZXhwcik7CisKKwlpZiAoZGVmX2V4cHIgPT0gTlVMTCkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQllcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCisJCQkJZXJybXNnKCJjYW5ub3Qg Y29lcmNlICVzIGV4cHJlc3Npb24gdG8gdHlwZSAlcyIsCisJCQkJCSAgICJDQVNUIERFRkFVTFQi LAorCQkJCQkgICBmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSksCisJCQkJcGFyc2VyX2NvZXJj aW9uX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHRjLT5kZWZfZXhwciksIGRlZl9l eHByKSk7CisKKwkvKgorCSAqIFRoZSBjb2xsYXRpb24gb2YgREVGQVVMVCBleHByZXNzaW9uIG11 c3QgbWF0Y2ggdGhlIGNvbGxhdGlvbiBvZiB0aGUKKwkgKiB0YXJnZXQgdHlwZS4KKwkgKi8KKwlp ZiAoT2lkSXNWYWxpZCh0eXBlQ29sbCkpCisJeworCQlPaWQJCQlkZWZDb2xsOworCisJCWRlZkNv bGwgPSBleHByQ29sbGF0aW9uKGRlZl9leHByKTsKKworCQlpZiAoT2lkSXNWYWxpZChkZWZDb2xs KSAmJiB0eXBlQ29sbCAhPSBkZWZDb2xsKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJZXJybXNnKCJ0aGUgY29sbGF0aW9u IG9mIENBU1QgREVGQVVMVCBleHByZXNzaW9uIGNvbmZsaWN0cyB3aXRoIHRhcmdldCB0eXBlIGNv bGxhdGlvbiIpLAorCQkJCQllcnJkZXRhaWwoIlwiJXNcIiB2ZXJzdXMgXCIlc1wiIiwKKwkJCQkJ CQkgIGdldF9jb2xsYXRpb25fbmFtZSh0eXBlQ29sbCksCisJCQkJCQkJICBnZXRfY29sbGF0aW9u X25hbWUoZGVmQ29sbCkpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9j YXRpb24oZGVmX2V4cHIpKSk7CisJfQorCisJLyoKKwkgKiBJZiB0aGUgdHlwZSBjYXN0IHRhcmdl dCB0eXBlIGlzIGFuIGFycmF5IHR5cGUsIHdlIGludm9rZQorCSAqIHRyYW5zZm9ybUFycmF5RXhw cigpIGRpcmVjdGx5IHNvIHRoYXQgd2UgY2FuIHBhc3MgZG93biB0aGUgdHlwZQorCSAqIGluZm9y bWF0aW9uLiAgVGhpcyBhdm9pZHMgc29tZSBjYXNlcyB3aGVyZSB0cmFuc2Zvcm1BcnJheUV4cHIo KSBtaWdodCBub3QKKwkgKiBpbmZlciB0aGUgY29ycmVjdCB0eXBlLiAgT3RoZXJ3aXNlLCBqdXN0 IHRyYW5zZm9ybSB0aGUgYXJndW1lbnQgbm9ybWFsbHkuCisJICovCisJaWYgKElzQSh0Y2FzdC0+ YXJnLCBBX0FycmF5RXhwcikpCisJeworCQlPaWQJCQllbGVtZW50VHlwZTsKKworCQkvKgorCQkg KiBJZiB0YXJnZXQgaXMgYSBkb21haW4gb3ZlciBhcnJheSwgd29yayB3aXRoIHRoZSBiYXNlIGFy cmF5IHR5cGUKKwkJICogaGVyZS4gIEJlbG93LCB3ZSdsbCBjYXN0IHRoZSBhcnJheSB0eXBlIHRv IHRoZSBkb21haW4uICBJbiB0aGUKKwkJICogdXN1YWwgY2FzZSB0aGF0IHRoZSB0YXJnZXQgaXMg bm90IGEgZG9tYWluLCB0aGUgcmVtYWluaW5nIHN0ZXBzCisJCSAqIHdpbGwgYmUgYSBuby1vcC4K KwkJICovCisJCWVsZW1lbnRUeXBlID0gZ2V0X2VsZW1lbnRfdHlwZSh0YXJnZXRCYXNlVHlwZSk7 CisKKwkJaWYgKE9pZElzVmFsaWQoZWxlbWVudFR5cGUpKQorCQl7CisJCQlzb3VyY2VfZXhwciA9 IHRyYW5zZm9ybUFycmF5RXhwcihwc3RhdGUsCisJCQkJCQkJCQkJCSAoQV9BcnJheUV4cHIgKikg dGNhc3QtPmFyZywKKwkJCQkJCQkJCQkJIHRhcmdldEJhc2VUeXBlLAorCQkJCQkJCQkJCQkgZWxl bWVudFR5cGUsCisJCQkJCQkJCQkJCSB0YXJnZXRCYXNlVHlwbW9kLAorCQkJCQkJCQkJCQkgJmNh bl9jb2VyY2UpOworCQl9CisJCWVsc2UKKwkJCXNvdXJjZV9leHByID0gdHJhbnNmb3JtRXhwclJl Y3Vyc2UocHN0YXRlLCB0Y2FzdC0+YXJnKTsKKwl9CisJZWxzZQorCQlzb3VyY2VfZXhwciA9IHRy YW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwgdGNhc3QtPmFyZyk7CisKKwlpbnB1dFR5cGUgPSBl eHByVHlwZShzb3VyY2VfZXhwcik7CisJaWYgKGlucHV0VHlwZSA9PSBJbnZhbGlkT2lkKQorCQly ZXR1cm4gKE5vZGUgKikgTlVMTDsJCQkvKiByZXR1cm4gTlVMTCBpZiBOVUxMIGlucHV0ICovCisK KwkvKiBUZXN0IGNvZXJjZSBVTktOT1dOIGNvbnN0YW50IHRvIHRoZSB0YXJnZXQgdHlwZSAqLwor CWlmIChjYW5fY29lcmNlICYmIElzQShzb3VyY2VfZXhwciwgQ29uc3QpKQorCXsKKwkJaWYgKGV4 cHJUeXBlKHNvdXJjZV9leHByKSA9PSBVTktOT1dOT0lEKQorCQkJY2FuX2NvZXJjZSA9IENvZXJj ZVVua25vd25Db25zdFNhZmUocHN0YXRlLAorCQkJCQkJCQkJCQkJc291cmNlX2V4cHIsCisJCQkJ CQkJCQkJCQl0YXJnZXRUeXBlLAorCQkJCQkJCQkJCQkJdGFyZ2V0VHlwbW9kKTsKKwkJZXhwcl9p c19jb25zdCA9IHRydWU7CisJfQorCisJLyoKKwkgKiBMb2NhdGlvbiBvZiB0aGUgY29lcmNpb24g aXMgcHJlZmVyZW50aWFsbHkgdGhlIGxvY2F0aW9uIG9mIENBU1Qgc3ltYm9sLAorCSAqIGJ1dCBp ZiB0aGVyZSBpcyBub25lIHRoZW4gdXNlIHRoZSBsb2NhdGlvbiBvZiB0aGUgdHlwZSBuYW1lICh0 aGlzIGNhbgorCSAqIGhhcHBlbiBpbiBUeXBlTmFtZSAnc3RyaW5nJyBzeW50YXgsIGZvciBpbnN0 YW5jZSkuCisJICovCisJbG9jYXRpb24gPSB0Y2FzdC0+bG9jYXRpb247CisJaWYgKGxvY2F0aW9u IDwgMCkKKwkJbG9jYXRpb24gPSB0Y2FzdC0+dHlwZU5hbWUtPmxvY2F0aW9uOworCisJaWYgKGNh bl9jb2VyY2UpCisJeworCQljYXN0X2V4cHIgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRl LCBzb3VyY2VfZXhwciwgaW5wdXRUeXBlLAorCQkJCQkJCQkJCSAgdGFyZ2V0VHlwZSwgdGFyZ2V0 VHlwbW9kLAorCQkJCQkJCQkJCSAgQ09FUkNJT05fRVhQTElDSVQsCisJCQkJCQkJCQkJICBDT0VS Q0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQkgIGxvY2F0aW9uKTsKKworCQlpZiAoY2FzdF9l eHByID09IE5VTEwpCisJCQljYW5fY29lcmNlID0gZmFsc2U7CisJfQorCisJaWYgKGNhbl9jb2Vy Y2UpCisJeworCQlib29sCWhhdmVfY29sbGF0ZV9leHByID0gZmFsc2U7CisJCU5vZGUJICAgKm9y aWdleHByID0gY2FzdF9leHByOworCisJCWlmIChJc0EoY2FzdF9leHByLCBDb2xsYXRlRXhwcikp CisJCQloYXZlX2NvbGxhdGVfZXhwciA9IHRydWU7CisKKwkJd2hpbGUgKGNhc3RfZXhwciAmJiBJ c0EoY2FzdF9leHByLCBDb2xsYXRlRXhwcikpCisJCQljYXN0X2V4cHIgPSAoTm9kZSAqKSAoKENv bGxhdGVFeHByICopIGNhc3RfZXhwciktPmFyZzsKKworCQlpZiAoSXNBKGNhc3RfZXhwciwgRnVu Y0V4cHIpKQorCQl7CisJCQlIZWFwVHVwbGUJdHVwbGU7CisJCQlMaXN0Q2VsbCAgICpsYzsKKwkJ CU5vZGUJICAgKnNleHByOworCQkJTm9kZQkgICAqcmVzdWx0OworCQkJRnVuY0V4cHIgICAqZmV4 cHIgPSAoRnVuY0V4cHIgKikgY2FzdF9leHByOworCisJCQlsYyA9IGxpc3RfaGVhZChmZXhwci0+ YXJncyk7CisJCQlzZXhwciA9IChOb2RlICopIGxmaXJzdChsYyk7CisKKwkJCS8qIExvb2sgaW4g cGdfY2FzdCAqLworCQkJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoQ0FTVFNPVVJDRVRBUkdFVCwK KwkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0oZXhwclR5cGUoc2V4cHIpKSwKKwkJCQkJCQkJCU9i amVjdElkR2V0RGF0dW0odGFyZ2V0VHlwZSkpOworCisJCQlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0 dXBsZSkpCisJCQl7CisJCQkJRm9ybV9wZ19jYXN0IGNhc3RGb3JtID0gKEZvcm1fcGdfY2FzdCkg R0VUU1RSVUNUKHR1cGxlKTsKKwkJCQlpZiAoIWNhc3RGb3JtLT5jYXN0ZXJyb3JzYWZlKQorCQkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJCQkJCWVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyB3aGVuICVz IGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluICVzIiwKKwkJCQkJCQkJICAgZm9ybWF0X3R5cGVf YmUoaW5wdXRUeXBlKSwKKwkJCQkJCQkJICAgZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSksCisJ CQkJCQkJCSAgICJERUZBVUxUIiwKKwkJCQkJCQkJICAgIkNBU1QgLi4uIE9OIENPTlZFUlNJT04g RVJST1IiKSwKKwkJCQkJCQllcnJoaW50KCJDdXJyZW50bHkgQ0FTVCAuLi4gREVGQVVMVCBPTiBD T05WRVJTSU9OIEVSUk9SIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBjYXN0IiksCisJCQkJCQkJcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHNvdXJjZV9leHByKSkpOworCQkJ fQorCQkJZWxzZQorCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwZ19j YXN0IGVudHJ5ICglcyBjYXN0IHRvICVzKSIsCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUoaW5wdXRU eXBlKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSk7CisJCQlSZWxlYXNlU3lz Q2FjaGUodHVwbGUpOworCisJCQlpZiAoIWV4cHJfaXNfY29uc3QpCisJCQkJY2FzdF9leHByID0g b3JpZ2V4cHI7CisJCQllbHNlCisJCQl7CisJCQkJLyoKKwkJCQkgKiBVc2UgZXZhbHVhdGVfZXhw cl9zYWZlIHRvIHByZS1ldmFsdWF0ZSBzaW1wbGUgY29uc3RhbnQgY2FzdAorCQkJCSAqIGV4cHJl c3Npb25zIGVhcmx5LCBpbiBhIHdheSB0aGF0IHRvbHRlciBlcnJvcnMuCisJCQkJICoKKwkJCQkg KiBSYXRpb25hbGU6CisJCQkJICogMS4gV2hlbiBkZXBhcnNpbmcgc2FmZSBjYXN0IGV4cHJlc3Np b25zIChvciBpbiBvdGhlciBjYXNlcyksCisJCQkJICogICAgZXZhbF9jb25zdF9leHByZXNzaW9u cyBtaWdodCBiZSBpbnZva2VkLCBidXQgaXQgY2Fubm90CisJCQkJICogICAgaGFuZGxlIGVycm9y cyBncmFjZWZ1bGx5LgorCQkJCSAqIDIuIElmIHRoZSBjYXN0IGV4cHJlc3Npb24gaW52b2x2ZXMg b25seSBzaW1wbGUgY29uc3RhbnRzLCB3ZQorCQkJCSAqICAgIGNhbiBzYWZlbHkgZXZhbHVhdGUg aXQgYWhlYWQgb2YgdGltZS4gSWYgdGhlIGV2YWx1YXRpb24KKwkJCQkgKiAgICBmYWlscywgaXQg aW5kaWNhdGVzIHRoYXQgc3VjaCBhIGNhc3QgaXMgbm90IHBvc3NpYmxlLCBhbmQKKwkJCQkgKiAg ICB3ZSBjYW4gdGhlbiBmYWxsIGJhY2sgdG8gdGhlIENBU1QgREVGQVVMVCBleHByZXNzaW9uLgor CQkJCSAqIDMuIEV2ZW4gaWYgdGhlIGZ1bmN0aW9uIGhhcyB0aHJlZSBhcmd1bWVudHMsIHRoZSBz ZWNvbmQgYW5kCisJCQkJICogICAgdGhpcmQgYXJndW1lbnRzIHdpbGwgYWxzbyBiZSBjb25zdGFu dHMgcGVyCisJCQkJICogICAgY29lcmNlX3RvX3RhcmdldF90eXBlLgorCQkJCSAqLworCQkJCUZ1 bmNFeHByICpuZXdleHByID0gKEZ1bmNFeHByICopIGNvcHlPYmplY3QoY2FzdF9leHByKTsKKwor CQkJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCAoTm9kZSAqKSBuZXdleHByKTsKKwor CQkJCXJlc3VsdCA9IChOb2RlICopIGV2YWx1YXRlX2V4cHJfc2FmZSgoRXhwciAqKSBuZXdleHBy LAorCQkJCQkJCQkJCQkJCSB0YXJnZXRUeXBlLAorCQkJCQkJCQkJCQkJCSB0YXJnZXRUeXBtb2Qs CisJCQkJCQkJCQkJCQkJIHR5cGVDb2xsKTsKKwkJCQlpZiAocmVzdWx0ID09IE5VTEwpCisJCQkJ eworCQkJCQljYW5fY29lcmNlID0gZmFsc2U7CisJCQkJCWNhc3RfZXhwciA9IE5VTEw7CisJCQkJ fQorCQkJCWVsc2UgaWYgKGhhdmVfY29sbGF0ZV9leHByKQorCQkJCXsKKwkJCQkJLyogUmVpbnN0 YWxsIHRvcCBDb2xsYXRlRXhwciAqLworCQkJCQlDb2xsYXRlRXhwciAqY29sbCA9IChDb2xsYXRl RXhwciAqKSBvcmlnZXhwcjsKKwkJCQkJQ29sbGF0ZUV4cHIgKm5ld2NvbGwgPSBtYWtlTm9kZShD b2xsYXRlRXhwcik7CisKKwkJCQkJbmV3Y29sbC0+YXJnID0gKEV4cHIgKikgcmVzdWx0OworCQkJ CQluZXdjb2xsLT5jb2xsT2lkID0gY29sbC0+Y29sbE9pZDsKKwkJCQkJbmV3Y29sbC0+bG9jYXRp b24gPSBjb2xsLT5sb2NhdGlvbjsKKwkJCQkJY2FzdF9leHByID0gKE5vZGUgKikgbmV3Y29sbDsK KwkJCQl9CisJCQkJZWxzZQorCQkJCQljYXN0X2V4cHIgPSByZXN1bHQ7CisJCQl9CisJCX0KKwkJ ZWxzZQorCQkJLyogTm90aGluZyB0byBkbywgcmVzdG9yZSBjYXN0X2V4cHIgdG8gaXRzIG9yaWdp bmFsIHZhbHVlICovCisJCQljYXN0X2V4cHIgPSBvcmlnZXhwcjsKKwl9CisKKwlBc3NlcnQoY2Fu X2NvZXJjZSB8fCBjYXN0X2V4cHIgPT0gTlVMTCk7CisKKwlyZXN1bHQgPSBtYWtlTm9kZShTYWZl VHlwZUNhc3RFeHByKTsKKwlyZXN1bHQtPnNvdXJjZV9leHByID0gc291cmNlX2V4cHI7CisJcmVz dWx0LT5jYXN0X2V4cHIgPSBjYXN0X2V4cHI7CisJcmVzdWx0LT5kZWZhdWx0X2V4cHIgPSBkZWZf ZXhwcjsKKwlyZXN1bHQtPnJlc3VsdHR5cGUgPSB0YXJnZXRUeXBlOworCXJlc3VsdC0+cmVzdWx0 dHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCXJlc3VsdC0+cmVzdWx0Y29sbGlkID0gdHlwZUNvbGw7 CisKKwlyZXR1cm4gKE5vZGUgKikgcmVzdWx0OworfQorCiAvKgogICogSGFuZGxlIGFuIGV4cGxp Y2l0IENPTExBVEUgY2xhdXNlLgogICoKQEAgLTMxOTMsNiArMzYwOSw4IEBAIFBhcnNlRXhwcktp bmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NP TlNUUkFJTlQ6CiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJCXJldHVybiAiQ0hF Q0siOworCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQlyZXR1cm4gIkNBU1QgREVG QVVMVCI7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lO RF9GVU5DVElPTl9ERUZBVUxUOgogCQkJcmV0dXJuICJERUZBVUxUIjsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZnVuYy5jCmluZGV4IDc3OGQ2OWM2ZjNjLi5hOTA3MDViOTg0NyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZnVuYy5jCkBAIC0yNzQzLDYgKzI3NDMsOSBAQCBjaGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50IGxvY2F0aW9uKQogCQljYXNlIEVY UFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gY2hlY2sgY29uc3RyYWludHMiKTsKIAkJCWJyZWFrOworCQlj YXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1 bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJ CQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9L SU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3RhcmdldC5jCmluZGV4IDkwNWM5NzVkODNiLi5kYzAzY2Y0Y2U3NCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV90YXJnZXQuYwpAQCAtMTgyMiw2ICsxODIyLDIwIEBAIEZpZ3VyZUNvbG5hbWVJbnRl cm5hbChOb2RlICpub2RlLCBjaGFyICoqbmFtZSkKIAkJCQl9CiAJCQl9CiAJCQlicmVhazsKKwkJ Y2FzZSBUX1NhZmVUeXBlQ2FzdDoKKwkJCXN0cmVuZ3RoID0gRmlndXJlQ29sbmFtZUludGVybmFs KCgoU2FmZVR5cGVDYXN0ICopIG5vZGUpLT5jYXN0LAorCQkJCQkJCQkJCQkgbmFtZSk7CisJCQlp ZiAoc3RyZW5ndGggPD0gMSkKKwkJCXsKKwkJCQlUeXBlQ2FzdCAJKm5vZGVfY2FzdDsKKwkJCQlu b2RlX2Nhc3QgPSAoVHlwZUNhc3QgKikoKFNhZmVUeXBlQ2FzdCAqKSBub2RlKS0+Y2FzdDsKKwkJ CQlpZiAobm9kZV9jYXN0LT50eXBlTmFtZSAhPSBOVUxMKQorCQkJCXsKKwkJCQkJKm5hbWUgPSBz dHJWYWwobGxhc3Qobm9kZV9jYXN0LT50eXBlTmFtZS0+bmFtZXMpKTsKKwkJCQkJcmV0dXJuIDE7 CisJCQkJfQorCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2xsYXRlQ2xhdXNlOgogCQkJcmV0 dXJuIEZpZ3VyZUNvbG5hbWVJbnRlcm5hbCgoKENvbGxhdGVDbGF1c2UgKikgbm9kZSktPmFyZywg bmFtZSk7CiAJCWNhc2UgVF9Hcm91cGluZ0Z1bmM6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdHlwZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYwppbmRl eCA3NzEzYmRjNmFmMC4uZDI2MGFlZWM1ZGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV90eXBlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYwpAQCAt MTksNiArMTksNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImxp Yi9zdHJpbmdpbmZvLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCisjaW5jbHVkZSAi bm9kZXMvbWlzY25vZGVzLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNs dWRlICJwYXJzZXIvcGFyc2VyLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKQEAgLTY2MCw2 ICs2NjEsMTkgQEAgc3RyaW5nVHlwZURhdHVtKFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIg YXR0dHlwbW9kKQogCXJldHVybiBPaWRJbnB1dEZ1bmN0aW9uQ2FsbCh0eXBpbnB1dCwgc3RyaW5n LCB0eXBpb3BhcmFtLCBhdHR0eXBtb2QpOwogfQogCisvKiBlcnJvciBzYWZlIHZlcnNpb24gb2Yg c3RyaW5nVHlwZURhdHVtICovCitib29sCitzdHJpbmdUeXBlRGF0dW1TYWZlKFR5cGUgdHAsIGNo YXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9kLCBEYXR1bSAqcmVzdWx0KQoreworCUZvcm1fcGdf dHlwZSB0eXBmb3JtID0gKEZvcm1fcGdfdHlwZSkgR0VUU1RSVUNUKHRwKTsKKwlPaWQJCQl0eXBp bnB1dCA9IHR5cGZvcm0tPnR5cGlucHV0OworCU9pZAkJCXR5cGlvcGFyYW0gPSBnZXRUeXBlSU9Q YXJhbSh0cCk7CisJRXJyb3JTYXZlQ29udGV4dCBlc2NvbnRleHQgPSB7VF9FcnJvclNhdmVDb250 ZXh0fTsKKworCXJldHVybiBPaWRJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUodHlwaW5wdXQsIHN0cmlu ZywgdHlwaW9wYXJhbSwgYXR0dHlwbW9kLAorCQkJCQkJCQkJKE5vZGUgKikgJmVzY29udGV4dCwg cmVzdWx0KTsKK30KKwogLyoKICAqIEdpdmVuIGEgdHlwZWlkLCByZXR1cm4gdGhlIHR5cGUncyB0 eXByZWxpZCAoYXNzb2NpYXRlZCByZWxhdGlvbiksIGlmIGFueS4KICAqIFJldHVybnMgSW52YWxp ZE9pZCBpZiB0eXBlIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlLgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJh eWZ1bmNzLmMKaW5kZXggYTQ2NDM0OWVlMzMuLmMxYTcwMzFhOTZjIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheWZ1bmNzLmMKQEAgLTMyODksNiArMzI4OSwxNCBAQCBhcnJheV9tYXAoRGF0dW0gYXJy YXlkLAogCQkvKiBBcHBseSB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiB0byBzb3VyY2UgZWxlbWVudCAq LwogCQl2YWx1ZXNbaV0gPSBFeGVjRXZhbEV4cHIoZXhwcnN0YXRlLCBlY29udGV4dCwgJm51bGxz W2ldKTsKIAorCQkvKiBFeGl0IGVhcmx5IGlmIHRoZSBldmFsdWF0aW9uIGZhaWxzICovCisJCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGV4cHJzdGF0ZS0+ZXNjb250ZXh0KSkKKwkJeworCQkJcGZy ZWUodmFsdWVzKTsKKwkJCXBmcmVlKG51bGxzKTsKKwkJCXJldHVybiAoRGF0dW0pIDA7CisJCX0K KwogCQlpZiAobnVsbHNbaV0pCiAJCQloYXNudWxscyA9IHRydWU7CiAJCWVsc2UKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYwppbmRleCA3OWVjMTM2MjMxYi4uNWNjMmY3ZTBjZjIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTEwNTU4LDYgKzEwNTU4LDI4IEBAIGdldF9ydWxlX2V4 cHIoTm9kZSAqbm9kZSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0LAogCQkJfQogCQkJYnJlYWs7 CiAKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhw ciAgICpzdGNleHByID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0RXhwciwgbm9kZSk7CisKKwkJCQkv KgorCQkJCSAqIEhlcmUsIHdlIGNhbm5vdCBzaW1wbHkgZGVwYXJzZSBjYXN0X2V4cHIsIGFzIGl0 IG1heSBoYXZlIGJlZW4KKwkJCQkgKiBvcHRpbWl6ZWQgaW50byBhIHBsYWluIGNvbnN0YW50IGJ5 IHRyYW5zZm9ybVR5cGVTYWZlQ2FzdC4KKwkJCQkgKiBIb3dldmVyLCBpbiB0aGlzIGNvbnRleHQg d2UgbmVlZCB0aGUgb3JpZ2luYWwgQ0FTVAorCQkJCSAqIGV4cHJlc3Npb24uCisJCQkJICovCisJ CQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJDQVNUKCIpOworCQkJCWdldF9ydWxlX2V4 cHIoc3RjZXhwci0+c291cmNlX2V4cHIsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisKKwkJCQlh cHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiBBUyAlcyAiLAorCQkJCQkJCQkgZm9ybWF0X3R5cGVfd2l0 aF90eXBlbW9kKHN0Y2V4cHItPnJlc3VsdHR5cGUsCisJCQkJCQkJCQkJCQkJCSAgc3RjZXhwci0+ cmVzdWx0dHlwbW9kKSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIkRFRkFV TFQgIik7CisJCQkJZ2V0X3J1bGVfZXhwcihzdGNleHByLT5kZWZhdWx0X2V4cHIsIGNvbnRleHQs IHNob3dpbXBsaWNpdCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIgT04gQ09O VkVSU0lPTiBFUlJPUikiKTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfSnNvbkV4cHI6CiAJ CQl7CiAJCQkJSnNvbkV4cHIgICAqamV4cHIgPSAoSnNvbkV4cHIgKikgbm9kZTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1n ci9mbWdyLmMKaW5kZXggMGZlNjNjNmJiODMuLmFhYTRhNDJiMWVhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2Zt Z3IuYwpAQCAtMTc1OSw2ICsxNzU5LDE5IEBAIE9pZElucHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5j dGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLCBpbnQzMiB0eXBtb2QpCiAJcmV0dXJu IElucHV0RnVuY3Rpb25DYWxsKCZmbGluZm8sIHN0ciwgdHlwaW9wYXJhbSwgdHlwbW9kKTsKIH0K IAorYm9vbAorT2lkSW5wdXRGdW5jdGlvbkNhbGxTYWZlKE9pZCBmdW5jdGlvbklkLCBjaGFyICpz dHIsIE9pZCB0eXBpb3BhcmFtLAorCQkJCQkJIGludDMyIHR5cG1vZCwgTm9kZSAqZXNjb250ZXh0 LAorCQkJCQkJIERhdHVtICpyZXN1bHQpCit7CisJRm1nckluZm8JCQlmbGluZm87CisKKwlmbWdy X2luZm8oZnVuY3Rpb25JZCwgJmZsaW5mbyk7CisKKwlyZXR1cm4gSW5wdXRGdW5jdGlvbkNhbGxT YWZlKCZmbGluZm8sIHN0ciwgdHlwaW9wYXJhbSwgdHlwbW9kLAorCQkJCQkJCQkgZXNjb250ZXh0 LCByZXN1bHQpOworfQorCiBjaGFyICoKIE9pZE91dHB1dEZ1bmN0aW9uQ2FsbChPaWQgZnVuY3Rp b25JZCwgRGF0dW0gdmFsKQogewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19j YXN0LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKaW5kZXggZmJmZDY2OTU4 N2YuLmNhNTJjZmNkMDg2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3Qu ZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKQEAgLTE5LDY1ICsxOSw2 NSBAQAogIyBpbnQyLT5pbnQ0LT5pbnQ4LT5udW1lcmljLT5mbG9hdDQtPmZsb2F0OCwgd2hpbGUg Y2FzdHMgaW4gdGhlCiAjIHJldmVyc2UgZGlyZWN0aW9uIGFyZSBhc3NpZ25tZW50LW9ubHkuCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4g J2ludDIoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnaW50NCcs IGNhc3RmdW5jID0+ICdpbnQ0KGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJn ZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoaW50OCknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChpbnQ4 KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1 bmMgPT4gJ251bWVyaWMoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9 PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50Mics IGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0 KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNh c3RmdW5jID0+ICdmbG9hdDgoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdl dCA9PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1lcmljKGludDIpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChpbnQ0KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4g J2ludDIoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0 JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0 dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGludDQpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJp YyhpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBj YXN0ZnVuYyA9PiAnaW50OChmbG9hdDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRh cmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGZsb2F0NCknLAotICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoZmxvYXQ0 KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3Rm dW5jID0+ICdmbG9hdDgoZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJn ZXQgPT4gJ251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDQpJywgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJp YyhmbG9hdDQpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQg PT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxv YXQ4JywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGZsb2F0OCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4g J2ludDQoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2Zs b2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0 OCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9h dDgpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVu YyA9PiAnbnVtZXJpYyhmbG9hdDgpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgobnVtZXJpYyknLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdp bnQyKG51bWVyaWMpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2lu dDQnLCBjYXN0ZnVuYyA9PiAnaW50NChudW1lcmljKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMn LCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLAotICBjYXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVyaWMp JywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9 PiAnZmxvYXQ0KG51bWVyaWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBj YXN0dGFyZ2V0ID0+ICdmbG9hdDgnLAotICBjYXN0ZnVuYyA9PiAnZmxvYXQ4KG51bWVyaWMpJywg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAn ZmxvYXQ4KG51bWVyaWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ21vbmV5JywgY2FzdHRh cmdldCA9PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1lcmljKG1vbmV5KScsCiAgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVt ZXJpYycsIGNhc3R0YXJnZXQgPT4gJ21vbmV5JywgY2FzdGZ1bmMgPT4gJ21vbmV5KG51bWVyaWMp JywKQEAgLTg5LDEzICs4OSwxMyBAQAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3 ZWVuIGludDQgYW5kIGJvb2wKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4g J2Jvb2wnLCBjYXN0ZnVuYyA9PiAnYm9vbChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBj YXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoYm9vbCknLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEFsbG93IGV4 cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIHhpZDggYW5kIHhpZAogeyBjYXN0c291cmNlID0+ICd4 aWQ4JywgY2FzdHRhcmdldCA9PiAneGlkJywgY2FzdGZ1bmMgPT4gJ3hpZCh4aWQ4KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgT0lE IGNhdGVnb3J5OiBhbGxvdyBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gYW55IGludGVncmFsIHR5 cGUgKGluY2x1ZGluZwogIyBpbnQ4LCB0byBzdXBwb3J0IE9JRCBsaXRlcmFscyA+IDJHKSB0byBP SUQsIGFzIHdlbGwgYXMgYXNzaWdubWVudCBjb2VyY2lvbgpAQCAtMTA2LDEzICsxMDYsMTMgQEAK ICMgY2FzdHMgZnJvbSB0ZXh0IGFuZCB2YXJjaGFyIHRvIHJlZ2NsYXNzLCB3aGljaCBleGlzdCBt YWlubHkgdG8gc3VwcG9ydAogIyBsZWdhY3kgZm9ybXMgb2YgbmV4dHZhbCgpIGFuZCByZWxhdGVk IGZ1bmN0aW9ucy4KIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ29pZCcs IGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAn b2lkJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2Fz dHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQg PT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywg Y2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFy Z2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTIwLDEzICsxMjAsMTMgQEAK IHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNh c3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQg PT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJv YycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycs IGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTEzOCwx MyArMTM4LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3R0YXJnZXQg PT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVn cHJvY2VkdXJlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0 dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2Fz dHNvdXJjZSA9PiAncmVncHJvY2VkdXJlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5j ID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFyZ2V0 ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3Jl Z29wZXInLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xNTIsMTMgKzE1MiwxMyBAQAogeyBjYXN0c291 cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4g J2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnb3Bl cicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAnaW50OCcs IGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRh cmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdl dCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xNzAsMTMgKzE3MCwxMyBA QAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBj YXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3Jl Z29wZXJhdG9yJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0 JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVn b3BlcmF0b3InLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5j ID0+ICcwJywKQEAgLTE4NCwxMyArMTg0LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNz JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQyJywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdyZWdjbGFzcycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9 PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY2xhc3MnLCBjYXN0dGFyZ2V0ID0+ICdp bnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxh dGlvbicsIGNhc3RmdW5jID0+ICcwJywKQEAgLTE5OCwxMyArMTk4LDEzIEBACiB7IGNhc3Rzb3Vy Y2UgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywgY2FzdGZ1bmMgPT4g J29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xsYXRpb24n LCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFy Z2V0ID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29sbGF0aW9u JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnMCcs CkBAIC0yMTIsMTMgKzIxMiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWd0eXBlJywgY2FzdHRh cmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0 dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWd0eXBlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdyZWd0eXBlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9 PiAnMCcsCkBAIC0yMjYsMTMgKzIyNiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdjb25maWcn LCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0 YXJnZXQgPT4gJ3JlZ2NvbmZpZycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQyJywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50Mikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbmZpZycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVu YyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRhcmdldCA9 PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdk aWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjQwLDMxICsyNDAsMzEgQEAKIHsgY2Fz dHNvdXJjZSA9PiAncmVnZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3Rm dW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnZGlj dGlvbmFyeScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcs IGNhc3R0YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVn ZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAncmVnZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBj YXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicg fSwKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2Fz dGZ1bmMgPT4gJ3JlZ2NsYXNzJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQg PT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJ3JlZ2NsYXNzJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lk JywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdyb2xl JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdp bnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9PiAnaW50NCcs IGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdi JyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2Un LCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yNzIsMTMgKzI3MiwxMyBAQAogeyBjYXN0c291cmNlID0+ ICdyZWduYW1lc3BhY2UnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICdvaWQn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNlJywgY2Fz dGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9 PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNh c3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAncmVnbmFtZXNwYWNlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywK ICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNl ID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICcwJywK QEAgLTI4NiwxMyArMjg2LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RhdGFiYXNlJywgY2Fz dHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0 ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQy JywgY2FzdHRhcmdldCA9PiAncmVnZGF0YWJhc2UnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0 ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiAKQEAgLTMwMiw1NyArMzAyLDU3IEBACiB7IGNhc3Rzb3VyY2Ug PT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChicGNoYXIp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3Rm dW5jID0+ICd0ZXh0KGJwY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdl dCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9 PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICd0 ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaGFyJywgY2Fz dHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJ2JwY2hhcihjaGFyKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQo Y2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3Rm dW5jID0+ICd0ZXh0KG5hbWUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbmFtZScsIGNhc3R0YXJnZXQgPT4g J2JwY2hhcicsIGNhc3RmdW5jID0+ICdicGNoYXIobmFtZSknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICduYW1l JywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd2YXJjaGFyKG5hbWUpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAn Y2hhcih0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2NoYXIn LCBjYXN0ZnVuYyA9PiAnY2hhcih0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0 dGFyZ2V0ID0+ICdjaGFyJywgY2FzdGZ1bmMgPT4gJ2NoYXIodGV4dCknLAotICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3RmdW5jID0+ICduYW1lKHRleHQpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3RmdW5jID0+ ICduYW1lKGJwY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAn bmFtZScsIGNhc3RmdW5jID0+ICduYW1lKHZhcmNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBBbGxvdyBleHBsaWNpdCBjb2Vy Y2lvbnMgYmV0d2VlbiBieXRlYSBhbmQgaW50ZWdlciB0eXBlcwogeyBjYXN0c291cmNlID0+ICdp bnQyJywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEoaW50MiknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAn Ynl0ZWEoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnYnl0ZWEn LCBjYXN0ZnVuYyA9PiAnYnl0ZWEoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0 YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihieXRlYSknLAotICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChieXRlYSkn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9 PiAnaW50OChieXRlYSknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGludDQg YW5kICJjaGFyIgogeyBjYXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRhcmdldCA9PiAnaW50NCcs IGNhc3RmdW5jID0+ICdpbnQ0KGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJn ZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcihpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgcGdfbm9kZV90cmVlIGNh biBiZSBjb2VyY2VkIHRvLCBidXQgbm90IGZyb20sIHRleHQKIHsgY2FzdHNvdXJjZSA9PiAncGdf bm9kZV90cmVlJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICcwJywKQEAgLTM3 OCw3MyArMzc4LDczIEBACiAKICMgRGF0ZXRpbWUgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAn ZGF0ZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3Rh bXAoZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3RmdW5jID0+ICd0aW1lc3RhbXAoZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZGF0 ZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFt cHR6KGRhdGUpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0ZnVuYyA9PiAndGltZXN0YW1wdHooZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn dGltZScsIGNhc3R0YXJnZXQgPT4gJ2ludGVydmFsJywgY2FzdGZ1bmMgPT4gJ2ludGVydmFsKHRp bWUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsIGNhc3Rm dW5jID0+ICd0aW1ldHoodGltZSknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFy Z2V0ID0+ICdkYXRlJywKLSAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wKScsIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2RhdGUodGlt ZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0 ID0+ICd0aW1lJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0 YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ ICd0aW1lc3RhbXB0eicsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXApJywg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAn dGltZXN0YW1wdHoodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3Rh bXB0eicsIGNhc3R0YXJnZXQgPT4gJ2RhdGUnLAotICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3Rh bXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rm dW5jID0+ICdkYXRlKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1l c3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLAotICBjYXN0ZnVuYyA9PiAndGltZSh0aW1l c3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3RmdW5jID0+ICd0aW1lKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0 aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0 aW1lc3RhbXAodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsCi0g IGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWVzdGFtcHR6KScs IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnRlcnZhbCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWUn LCBjYXN0ZnVuYyA9PiAndGltZShpbnRlcnZhbCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1ldHonLCBj YXN0dGFyZ2V0ID0+ICd0aW1lJywgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXR6KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgR2VvbWV0 cmljIGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ3BvaW50JywgY2FzdHRhcmdldCA9PiAnYm94 JywgY2FzdGZ1bmMgPT4gJ2JveChwb2ludCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2xzZWcnLCBjYXN0dGFy Z2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChsc2VnKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn cGF0aCcsIGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLCBjYXN0ZnVuYyA9PiAncG9seWdvbihwYXRo KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAncG9pbnQnLCBjYXN0ZnVuYyA9 PiAncG9pbnQoYm94KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAnbHNlZycs IGNhc3RmdW5jID0+ICdsc2VnKGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQg PT4gJ3BvbHlnb24nLCBjYXN0ZnVuYyA9PiAncG9seWdvbihib3gpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdi b3gnLCBjYXN0dGFyZ2V0ID0+ICdjaXJjbGUnLCBjYXN0ZnVuYyA9PiAnY2lyY2xlKGJveCknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3BvbHlnb24nLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ ICdwb2ludChwb2x5Z29uKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4g J3BhdGgnLCBjYXN0ZnVuYyA9PiAncGF0aCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0 YXJnZXQgPT4gJ2JveCcsIGNhc3RmdW5jID0+ICdib3gocG9seWdvbiknLAotICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3BvbHlnb24nLCBjYXN0dGFyZ2V0ID0+ICdjaXJjbGUnLAotICBjYXN0ZnVuYyA9PiAnY2lyY2xl KHBvbHlnb24pJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0ZnVuYyA9PiAnY2lyY2xlKHBvbHlnb24pJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2ly Y2xlJywgY2FzdHRhcmdldCA9PiAncG9pbnQnLCBjYXN0ZnVuYyA9PiAncG9pbnQoY2lyY2xlKScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnY2lyY2xlJywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4g J2JveChjaXJjbGUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdwb2x5 Z29uJywKLSAgY2FzdGZ1bmMgPT4gJ3BvbHlnb24oY2lyY2xlKScsIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3BvbHlnb24oY2lyY2xlKScs IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZid9LAogCiAjIE1BQyBhZGRyZXNz IGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ21hY2FkZHInLCBjYXN0dGFyZ2V0ID0+ICdtYWNh ZGRyOCcsIGNhc3RmdW5jID0+ICdtYWNhZGRyOCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ21hY2FkZHI4Jywg Y2FzdHRhcmdldCA9PiAnbWFjYWRkcicsIGNhc3RmdW5jID0+ICdtYWNhZGRyJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBJTkVUIGNh dGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICdpbmV0JywgY2Fz dGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdjaWRyJywgY2FzdGZ1bmMg PT4gJ2NpZHInLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogCiAjIEJpdFN0cmluZyBjYXRlZ29yeQogeyBjYXN0c291cmNlID0+ICdiaXQnLCBj YXN0dGFyZ2V0ID0+ICd2YXJiaXQnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC00NTQsMTMgKzQ1NCwx MyBAQAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIGJldHdlZW4gYml0IGFuZCBpbnQ0LCBpbnQ4 CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVuYyA9 PiAnYml0KGludDgsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAn Yml0JywgY2FzdGZ1bmMgPT4gJ2JpdChpbnQ0LGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYml0Jywg Y2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGJpdCknLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoYml0KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAK ICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgdG8gYW5kIGZyb20gVEVYVAogIyBXZSBuZWVkIGVudHJp ZXMgaGVyZSBvbmx5IGZvciBhIGZldyBzcGVjaWFsaXplZCBjYXNlcyB3aGVyZSB0aGUgYmVoYXZp b3IKQEAgLTQ3MSw2OCArNDcxLDY4IEBACiAjIGJlaGF2aW9yIHdpbGwgZW5zdWUgd2hlbiB0aGUg YXV0b21hdGljIGNhc3QgaXMgYXBwbGllZCBpbnN0ZWFkIG9mIHRoZQogIyBwZ19jYXN0IGVudHJ5 IQogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5j ID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4gJ3Rl eHQnLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0 dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoYm9vbCknLAotICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQn LCBjYXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29y eSBjYXN0cyB0byBhbmQgZnJvbSBWQVJDSEFSCiAjIFdlIHN1cHBvcnQgYWxsIHRoZSBzYW1lIGNh c3RzIGFzIGZvciBURVhULgogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAn dmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcs IGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3Rl eHQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0 ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJvbSBCUENIQVIK ICMgV2Ugc3VwcG9ydCBhbGwgdGhlIHNhbWUgY2FzdHMgYXMgZm9yIFRFWFQuCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChp bmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0 ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcs IGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBj YXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBMZW5ndGgtY29lcmNpb24g ZnVuY3Rpb25zCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hh cicsCiAgIGNhc3RmdW5jID0+ICdicGNoYXIoYnBjaGFyLGludDQsYm9vbCknLCBjYXN0Y29udGV4 dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0 YXJnZXQgPT4gJ3ZhcmNoYXInLAogICBjYXN0ZnVuYyA9PiAndmFyY2hhcih2YXJjaGFyLGludDQs Ym9vbCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAndGltZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAndGltZSh0aW1lLGlu dDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1w JywKICAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcCh0aW1lc3RhbXAsaW50NCknLCBjYXN0Y29udGV4 dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBj YXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXB0eicsCiAgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0 aW1lc3RhbXB0eixpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnRlcnZhbCcsIGNhc3R0YXJnZXQgPT4gJ2ludGVydmFsJywKICAgY2Fz dGZ1bmMgPT4gJ2ludGVydmFsKGludGVydmFsLGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLAot ICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWV0eicsIGNhc3R0YXJnZXQgPT4gJ3Rp bWV0eicsCi0gIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXR6LGludDQpJywgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWV0 eixpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdi aXQnLCBjYXN0ZnVuYyA9PiAnYml0KGJpdCxpbnQ0LGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFy Yml0JywgY2FzdHRhcmdldCA9PiAndmFyYml0JywgY2FzdGZ1bmMgPT4gJ3ZhcmJpdCcsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywKLSAgY2FzdGZ1bmMg PT4gJ251bWVyaWMobnVtZXJpYyxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ251bWVyaWMobnVtZXJpYyxpbnQ0KScsIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogCiAjIGpzb24gdG8vZnJvbSBqc29uYgogeyBjYXN0c291cmNlID0+ICdqc29uJywgY2FzdHRh cmdldCA9PiAnanNvbmInLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC01NDIsMzYgKzU0MiwzNiBAQAog CiAjIGpzb25iIHRvIG51bWVyaWMgYW5kIGJvb2wgdHlwZXMKIHsgY2FzdHNvdXJjZSA9PiAnanNv bmInLCBjYXN0dGFyZ2V0ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jvb2woanNvbmIpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4g J251bWVyaWMoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdp bnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBj YXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoanNvbmIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoanNv bmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0 ZnVuYyA9PiAnZmxvYXQ0KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdl dCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChqc29uYiknLAotICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIHJhbmdlIHRvIG11 bHRpcmFuZ2UKIHsgY2FzdHNvdXJjZSA9PiAnaW50NHJhbmdlJywgY2FzdHRhcmdldCA9PiAnaW50 NG11bHRpcmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAnaW50NG11bHRpcmFuZ2UoaW50NHJhbmdlKScs IGNhc3Rjb250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4 cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4bXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdp bnQ4bXVsdGlyYW5nZShpbnQ4cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bXJhbmdlJywgY2FzdHRhcmdldCA9PiAnbnVtbXVsdGly YW5nZScsCiAgIGNhc3RmdW5jID0+ICdudW1tdWx0aXJhbmdlKG51bXJhbmdlKScsIGNhc3Rjb250 ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdkYXRlcmFuZ2UnLCBj YXN0dGFyZ2V0ID0+ICdkYXRlbXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3RzcmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICd0c211bHRpcmFuZ2UnLAotICBj YXN0ZnVuYyA9PiAndHNtdWx0aXJhbmdlKHRzcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndHNtdWx0aXJhbmdlKHRzcmFuZ2Up JywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RzdHpyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ3Rz dHptdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ3RzdHptdWx0aXJhbmdlKHRzdHpyYW5nZSkn LCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIF0KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmgK aW5kZXggNmEwY2EzMzcxNTMuLjIxOGQ4MWQ1MzVhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2Nhc3QuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaApAQCAt NDcsNiArNDcsMTAgQEAgQ0FUQUxPRyhwZ19jYXN0LDI2MDUsQ2FzdFJlbGF0aW9uSWQpCiAKIAkv KiBjYXN0IG1ldGhvZCAqLwogCWNoYXIJCWNhc3RtZXRob2Q7CisKKwkvKiBjYXN0IGZ1bmN0aW9u IGVycm9yIHNhZmUgKi8KKwlib29sCQljYXN0ZXJyb3JzYWZlIEJLSV9ERUZBVUxUKGYpOworCiB9 IEZvcm1EYXRhX3BnX2Nhc3Q7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVj RXhwci5oCmluZGV4IDc1MzY2MjAzNzA2Li4zNGE4ODRlMzE5NiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVj RXhwci5oCkBAIC0yNjUsNiArMjY1LDcgQEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlFRU9Q X1hNTEVYUFIsCiAJRUVPUF9KU09OX0NPTlNUUlVDVE9SLAogCUVFT1BfSVNfSlNPTiwKKwlFRU9Q X1NBRkVUWVBFX0NBU1QsCiAJRUVPUF9KU09ORVhQUl9QQVRILAogCUVFT1BfSlNPTkVYUFJfQ09F UkNJT04sCiAJRUVPUF9KU09ORVhQUl9DT0VSQ0lPTl9GSU5JU0gsCkBAIC03NTAsNiArNzUxLDEy IEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAogCQkJSnNvbklzUHJlZGljYXRlICpwcmVk OwkvKiBvcmlnaW5hbCBleHByZXNzaW9uIG5vZGUgKi8KIAkJfQkJCWlzX2pzb247CiAKKwkJLyog Zm9yIEVFT1BfU0FGRVRZUEVfQ0FTVCAqLworCQlzdHJ1Y3QKKwkJeworCQkJc3RydWN0IFNhZmVU eXBlQ2FzdFN0YXRlICpzdGNzdGF0ZTsJLyogb3JpZ2luYWwgZXhwcmVzc2lvbiBub2RlICovCisJ CX0JCQlzdGNleHByOworCiAJCS8qIGZvciBFRU9QX0pTT05FWFBSX1BBVEggKi8KIAkJc3RydWN0 CiAJCXsKQEAgLTg5Miw2ICs4OTksNyBAQCBleHRlcm4gaW50CUV4ZWNFdmFsSnNvbkV4cHJQYXRo KEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJCSBFeHByQ29udGV4 dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxKc29uQ29lcmNpb24oRXhwclN0YXRl ICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkJIEV4cHJDb250ZXh0ICplY29udGV4 dCk7CitleHRlcm4gaW50IEV4ZWNFdmFsU2FmZVR5cGVDYXN0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4 cHJFdmFsU3RlcCAqb3ApOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxKc29uQ29lcmNpb25GaW5pc2go RXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CiBleHRlcm4gdm9pZCBFeGVjRXZh bEdyb3VwaW5nRnVuYyhFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVy biB2b2lkIEV4ZWNFdmFsTWVyZ2VTdXBwb3J0RnVuYyhFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZh bFN0ZXAgKm9wLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCBi L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKaW5kZXggZmEyYjY1N2ZiMmYuLmY5OWZj MjZlYjFmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCisrKyBi L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKQEAgLTMyNCw2ICszMjQsNyBAQCBFeGVj UHJvY05vZGUoUGxhblN0YXRlICpub2RlKQogICogcHJvdG90eXBlcyBmcm9tIGZ1bmN0aW9ucyBp biBleGVjRXhwci5jCiAgKi8KIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhwcihFeHByICpu b2RlLCBQbGFuU3RhdGUgKnBhcmVudCk7CitleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdEV4cHJT YWZlKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KTsKIGV4dGVybiBFeHByU3RhdGUgKkV4 ZWNJbml0RXhwcldpdGhQYXJhbXMoRXhwciAqbm9kZSwgUGFyYW1MaXN0SW5mbyBleHRfcGFyYW1z KTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0UXVhbChMaXN0ICpxdWFsLCBQbGFuU3RhdGUg KnBhcmVudCk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdENoZWNrKExpc3QgKnF1YWwsIFBs YW5TdGF0ZSAqcGFyZW50KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2ZtZ3IuaCBiL3NyYy9p bmNsdWRlL2ZtZ3IuaAppbmRleCA3NGZlM2VhMDU3NS4uOTkxZTE0MDM0ZDMgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2ZtZ3IuaAorKysgYi9zcmMvaW5jbHVkZS9mbWdyLmgKQEAgLTc1MCw2ICs3 NTAsOSBAQCBleHRlcm4gYm9vbCBEaXJlY3RJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoUEdGdW5jdGlv biBmdW5jLCBjaGFyICpzdHIsCiAJCQkJCQkJCQkJRGF0dW0gKnJlc3VsdCk7CiBleHRlcm4gRGF0 dW0gT2lkSW5wdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9uSWQsIGNoYXIgKnN0ciwKIAkJCQkJ CQkJICBPaWQgdHlwaW9wYXJhbSwgaW50MzIgdHlwbW9kKTsKK2V4dGVybiBib29sIE9pZElucHV0 RnVuY3Rpb25DYWxsU2FmZShPaWQgZnVuY3Rpb25JZCwgY2hhciAqc3RyLCBPaWQgdHlwaW9wYXJh bSwKKwkJCQkJCQkJCSBpbnQzMiB0eXBtb2QsIE5vZGUgKmVzY29udGV4dCwKKwkJCQkJCQkJCSBE YXR1bSAqcmVzdWx0KTsKIGV4dGVybiBjaGFyICpPdXRwdXRGdW5jdGlvbkNhbGwoRm1nckluZm8g KmZsaW5mbywgRGF0dW0gdmFsKTsKIGV4dGVybiBjaGFyICpPaWRPdXRwdXRGdW5jdGlvbkNhbGwo T2lkIGZ1bmN0aW9uSWQsIERhdHVtIHZhbCk7CiBleHRlcm4gRGF0dW0gUmVjZWl2ZUZ1bmN0aW9u Q2FsbChGbWdySW5mbyAqZmxpbmZvLCBTdHJpbmdJbmZvIGJ1ZiwKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgK aW5kZXggMThhZThmMGQ0YmIuLmY1OTQ5NGM4YzZmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAt MTA1OSw2ICsxMDU5LDM2IEBAIHR5cGVkZWYgc3RydWN0IERvbWFpbkNvbnN0cmFpbnRTdGF0ZQog CUV4cHJTdGF0ZSAgKmNoZWNrX2V4cHJzdGF0ZTsJLyogY2hlY2tfZXhwcidzIGV2YWwgc3RhdGUs IG9yIE5VTEwgKi8KIH0gRG9tYWluQ29uc3RyYWludFN0YXRlOwogCit0eXBlZGVmIHN0cnVjdCBT YWZlVHlwZUNhc3RTdGF0ZQoreworCVNhZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHI7CisKKwkvKiBT ZXQgdG8gdHJ1ZSBpZiB0eXBlIGNhc3QgY2F1c2UgYW4gZXJyb3IuICovCisJTnVsbGFibGVEYXR1 bSBlcnJvcjsKKworCS8qCisJICogQWRkcmVzc2VzIG9mIHN0ZXBzIHRoYXQgaW1wbGVtZW50IERF RkFVTFQgZXhwciBPTiBDT05WRVJTSU9OIEVSUk9SIGZvcgorCSAqIHNhZmUgdHlwZSBjYXN0Lgor CSAqLworCWludCAJCWp1bXBfZXJyb3I7CisKKwkvKgorCSAqIEFkZHJlc3MgdG8ganVtcCB0byB3 aGVuIHNraXBwaW5nIGFsbCB0aGUgc3RlcHMgdG8gZXZhdWxhdGUgdGhlIGRlZmF1bHQKKwkgKiBl eHByZXNzaW9uIGFmdGVyIHBlcmZvcm1pbmcgRXhlY0V2YWxTYWZlVHlwZUNhc3QoKS4KKwkgKi8K KwlpbnQgCQlqdW1wX2VuZDsKKworCS8qCisJICogRm9yIGVycm9yLXNhZmUgZXZhbHVhdGlvbiBv ZiBjb2VyY2lvbnMuICBXaGVuIERFRkFVTFQgZXhwciBPTiBDT05WRVJTSU9OCisJICogT04gRVJS T1IgaXMgc3BlY2lmaWVkLCBhIHBvaW50ZXIgdG8gdGhpcyBpcyBwYXNzZWQgdG8gRXhlY0luaXRF eHByUmVjKCkKKwkgKiB3aGVuIGluaXRpYWxpemluZyB0aGUgY29lcmNpb24gZXhwcmVzc2lvbnMs IHNlZSBFeGVjSW5pdFNhZmVUeXBlQ2FzdEV4cHIuCisJICoKKwkgKiBSZXNldCBmb3IgZWFjaCBl dmFsdWF0aW9uIG9mIEVFT1BfU0FGRVRZUEVfQ0FTVC4KKwkgKi8KKwlFcnJvclNhdmVDb250ZXh0 IGVzY29udGV4dDsKKworfSBTYWZlVHlwZUNhc3RTdGF0ZTsKKwogLyoKICAqIFN0YXRlIGZvciBK c29uRXhwciBldmFsdWF0aW9uLCB0b28gYmlnIHRvIGlubGluZS4KICAqCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKaW5kZXggZWNiZGRkMTJlMWIuLjcxNDAwOTNjNTVkIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCkBAIC00MDAsNiArNDAwLDEyIEBAIHR5cGVkZWYgc3RydWN0IFR5cGVDYXN0CiAJUGFyc2VM b2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogfSBU eXBlQ2FzdDsKIAordHlwZWRlZiBzdHJ1Y3QgU2FmZVR5cGVDYXN0Cit7CisJTm9kZVRhZwkJdHlw ZTsKKwlOb2RlCQkqY2FzdDsKKwlOb2RlCSAgIAkqZGVmX2V4cHI7CQkvKiBkZWZhdWx0IGV4cHIg Ki8KK30gU2FmZVR5cGVDYXN0OwogLyoKICAqIENvbGxhdGVDbGF1c2UgLSBhIENPTExBVEUgZXhw cmVzc2lvbgogICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDFiNDQzNmYyZmY2Li43MGI3MmVk MmY0MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTc2OSw2ICs3NjksMzkgQEAgdHlwZWRlZiBl bnVtIENvZXJjaW9uRm9ybQogCUNPRVJDRV9TUUxfU1lOVEFYLAkJCS8qIGRpc3BsYXkgd2l0aCBT UUwtbWFuZGF0ZWQgc3BlY2lhbCBzeW50YXggKi8KIH0gQ29lcmNpb25Gb3JtOwogCisvKgorICog U2FmZVR5cGVDYXN0RXhwciAtCisgKgkJVHJhbnNmb3JtZWQgcmVwcmVzZW50YXRpb24gb2YKKyAq IENBU1QoZXhwciBBUyB0eXBlbmFtZSBERUZBVUxUIGV4cHIyIE9OIEVSUk9SKQorICogQ0FTVChl eHByIEFTIHR5cGVuYW1lIE5VTEwgT04gRVJST1IpCisgKi8KK3R5cGVkZWYgc3RydWN0IFNhZmVU eXBlQ2FzdEV4cHIKK3sKKwlFeHByCQl4cHI7CisKKwkvKiB0cmFuc2Zvcm1lZCBleHByZXNzaW9u IGJlaW5nIGNhc3RlZCAqLworCU5vZGUJICAgKnNvdXJjZV9leHByOworCisJLyoKKwkgKiBUaGUg dHJhbnNmb3JtZWQgY2FzdCBleHByZXNzaW9uOyBJdCB3aWxsIE5VTEwgaWYgY2FuIG5vdCBjYXN0 IHNvdXJjZSB0eXBlCisJICogdG8gdGFyZ2V0IHR5cGUKKwkgKi8KKwlOb2RlCSAgICpjYXN0X2V4 cHIgCXBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKworCS8qIEZhbGwgYmFjayB0 byB0aGUgZGVmYXVsdCBleHByZXNzaW9uIGlmIGNhc3QgZXZhbHVhdGlvbiBmYWlscyAqLworCU5v ZGUJICAgKmRlZmF1bHRfZXhwcjsKKworCS8qIGNhc3QgcmVzdWx0IGRhdGEgdHlwZSAqLworCU9p ZAkJCXJlc3VsdHR5cGU7CisKKwkvKiBjYXN0IHJlc3VsdCBkYXRhIHR5cGUgdHlwbW9kICh1c3Vh bGx5IC0xKSAqLworCWludDMyCQlyZXN1bHR0eXBtb2Q7CisKKwkvKiBjYXN0IHJlc3VsdCBkYXRh IHR5cGUgY29sbGF0aW9uICovCisJT2lkCQkJcmVzdWx0Y29sbGlkOworCit9IFNhZmVUeXBlQ2Fz dEV4cHI7CisKIC8qCiAgKiBGdW5jRXhwciAtIGV4cHJlc3Npb24gbm9kZSBmb3IgYSBmdW5jdGlv biBjYWxsCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5o IGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oCmluZGV4IGQwYWE4YWIwYzFjLi45 NjRlYzAyNGRlNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5o CisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaApAQCAtMTQ1LDYgKzE0NSw4 IEBAIGV4dGVybiBOb2RlICplc3RpbWF0ZV9leHByZXNzaW9uX3ZhbHVlKFBsYW5uZXJJbmZvICpy b290LCBOb2RlICpub2RlKTsKIGV4dGVybiBFeHByICpldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIs IE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKIAkJCQkJCSAgIE9pZCByZXN1 bHRfY29sbGF0aW9uKTsKIAorZXh0ZXJuIEV4cHIgKmV2YWx1YXRlX2V4cHJfc2FmZShFeHByICpl eHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90eXBtb2QsCisJCQkJCQkJCU9pZCBy ZXN1bHRfY29sbGF0aW9uKTsKIGV4dGVybiBib29sIHZhcl9pc19ub25udWxsYWJsZShQbGFubmVy SW5mbyAqcm9vdCwgVmFyICp2YXIsIGJvb2wgdXNlX3JlbF9pbmZvKTsKIAogZXh0ZXJuIExpc3Qg KmV4cGFuZF9mdW5jdGlvbl9hcmd1bWVudHMoTGlzdCAqYXJncywgYm9vbCBpbmNsdWRlX291dF9h cmd1bWVudHMsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCBmN2QwN2M4NDU0Mi4uOWY1YjMy ZTAzNjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtNjcsNiArNjcsOCBAQCB0eXBlZGVm IGVudW0gUGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9WQUxVRVNfU0lOR0xFLAkvKiBzaW5nbGUt cm93IFZBTFVFUyAoaW4gSU5TRVJUIG9ubHkpICovCiAJRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJ TlQsIC8qIENIRUNLIGNvbnN0cmFpbnQgZm9yIGEgdGFibGUgKi8KIAlFWFBSX0tJTkRfRE9NQUlO X0NIRUNLLAkJLyogQ0hFQ0sgY29uc3RyYWludCBmb3IgYSBkb21haW4gKi8KKwlFWFBSX0tJTkRf Q0FTVF9ERUZBVUxULAkJLyogZGVmYXVsdCBleHByZXNzaW9uIGluCisJCQkJCQkJCSAgIENBU1Qg REVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SICovCiAJRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxU LAkvKiBkZWZhdWx0IHZhbHVlIGZvciBhIHRhYmxlIGNvbHVtbiAqLwogCUVYUFJfS0lORF9GVU5D VElPTl9ERUZBVUxULCAvKiBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZSBmb3IgZnVuY3Rpb24gKi8K IAlFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTiwgLyogaW5kZXggZXhwcmVzc2lvbiAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaCBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV90eXBlLmgKaW5kZXggMGQ5MTlkOGJmYTIuLjEyMzgxYWVkNjRjIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oCisrKyBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV90eXBlLmgKQEAgLTQ3LDYgKzQ3LDggQEAgZXh0ZXJuIGNoYXIgKnR5cGVUeXBl TmFtZShUeXBlIHQpOwogZXh0ZXJuIE9pZAl0eXBlVHlwZVJlbGlkKFR5cGUgdHlwKTsKIGV4dGVy biBPaWQJdHlwZVR5cGVDb2xsYXRpb24oVHlwZSB0eXApOwogZXh0ZXJuIERhdHVtIHN0cmluZ1R5 cGVEYXR1bShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1vZCk7CitleHRlcm4g Ym9vbCBzdHJpbmdUeXBlRGF0dW1TYWZlKFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIgYXR0 dHlwbW9kLAorCQkJCQkJCQlEYXR1bSAqcmVzdWx0KTsKIAogZXh0ZXJuIE9pZAl0eXBlaWRUeXBl UmVsaWQoT2lkIHR5cGVfaWQpOwogZXh0ZXJuIE9pZAl0eXBlT3JEb21haW5UeXBlUmVsaWQoT2lk IHR5cGVfaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZhMGQzMmI0MTIwCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dApAQCAtMCwwICsxLDczMCBAQAorU0VUIGV4 dHJhX2Zsb2F0X2RpZ2l0cyA9IDA7CistLSBDQVNUIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJP UgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBFUlJPUiBPTiBDT05WRVJTSU9OIEVS Uk9SKSk7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50 ZWdlcjogImVycm9yIgorTElORSAxOiBWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIEVS Uk9SIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyAgICAgICAgICAgICAgICAgICAgIF4KK1ZBTFVF UyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSk7Cisg Y29sdW1uMSAKKy0tLS0tLS0tLQorICAgICAgICAKKygxIHJvdykKKworVkFMVUVTIChDQVNUKCdl cnJvcicgQVMgaW50ZWdlciBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1 bW4xIAorLS0tLS0tLS0tCisgICAgICA0MgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxIEFTIGRh dGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGRhdGUgCistLS0tLS0KKyAK KygxIHJvdykKKworU0VMRUNUIENBU1QoMTo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgbnVtZXJpYyB0 byBtb25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4g T04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVCgxOjpudW1lcmljIEFTIG1v bmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAg XgorSElOVDogIEN1cnJlbnRseSBDQVNUIC4uLiBERUZBVUxUIE9OIENPTlZFUlNJT04gRVJST1Ig ZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNhc3QKK1NFTEVDVCBDQVNUKDExMTEgQVMgImNoYXIiIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaGFyIAorLS0tLS0tCisgCisoMSBy b3cpCisKKy0tdGhlIGRlZmF1bHQgZXhwcmVzc2lvbuKAmXMgY29sbGF0aW9uIHNob3VsZCBtYXRj aCB0aGUgY29sbGF0aW9uIG9mIHRoZSBjYXN0CistLXRhcmdldCB0eXBlCitWQUxVRVMgKENBU1Qo J2Vycm9yJyBBUyBURVhUIERFRkFVTFQgJzEnIENPTExBVEUgIkMiIE9OIENPTlZFUlNJT04gRVJS T1IpKTsKK0VSUk9SOiAgdGhlIGNvbGxhdGlvbiBvZiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbiBj b25mbGljdHMgd2l0aCB0YXJnZXQgdHlwZSBjb2xsYXRpb24KK0xJTkUgMTogVkFMVUVTIChDQVNU KCdlcnJvcicgQVMgVEVYVCBERUZBVUxUICcxJyBDT0xMQVRFICJDIiBPTiBDT05WLi4uCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitERVRBSUw6ICAiZGVm YXVsdCIgdmVyc3VzICJDIgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50MnZlY3RvciBERUZB VUxUICcxIDMnICBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQor IDEgMworKDEgcm93KQorCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yW10gREVG QVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0t LQorIHsiMSAzIn0KKygxIHJvdykKKworLS0gdGVzdCBzb3VyY2UgZXhwcmVzc2lvbiBjb250YWlu IHN1YnF1ZXJ5CitTRUxFQ1QgQ0FTVCgoU0VMRUNUIGIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MSksIChWQUxVRVMoJ0gnKSkgcyhiKSkKKyAgICAgICAgICAgIEFTIGludDJ2ZWN0b3JbXSBERUZB VUxUICd7MSAzfScgIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgIGIgICAgCistLS0tLS0tLS0K KyB7IjEgMyJ9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKChTRUxFQ1QgQVJSQVkoKFNFTEVDVCBi IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpIGcsIChWQUxVRVMoJ0gnKSkgcyhiKSkpKQorICAg ICAgICAgICAgQVMgSU5UW10KKyAgICAgICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gcmV0X2ludDgoKSBSRVRVUk5TIEJJR0lOVCBBUworJCQKK0JFR0lOIFJFVFVS TiAyMTQ3NDgzNjQ4OyBFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1VVEFCTEU7CitTRUxF Q1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS1lcnJvcgorRVJST1I6ICBpbnRlZ2VyIG91dCBvZiByYW5nZQorU0VMRUNUIENBU1QoJ2En IGFzIGRhdGUgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9y CitFUlJPUjogIGNhbm5vdCBjb2VyY2UgQ0FTVCBERUZBVUxUIGV4cHJlc3Npb24gdG8gdHlwZSBk YXRlCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBkYXRlIERFRkFVTFQgcmV0X2ludDgoKSBP TiBDT05WRVJTSU9OIEVSUi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KKy0tIHRlc3QgYXJyYXkgY29lcmNlCitTRUxFQ1QgQ0FTVChhcnJheVsxMS4xMl0gQVMg aW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0t LQorIHsxMX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoYXJyYXlbMTEuMTJdIEFTIGRhdGVbXSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCiso MSByb3cpCisKK1NFTEVDVCBDQVNUKGFycmF5WzExMTExMTExMTExMTExMTExXSBBUyBpbnRbXSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCiso MSByb3cpCisKK1NFTEVDVCBDQVNUKGFycmF5W1snYWJjJ10sWzQ1Nl1dIEFTIGludFtdIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJv dykKKworU0VMRUNUIENBU1QoJ3sxMjMsYWJjLDQ1Nn0nIEFTIGludGVnZXJbXSBERUZBVUxUICd7 LTc4OX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworICBpbnQ0ICAKKy0tLS0tLS0tCisgey03ODl9 CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCd7MjM0LGRlZiw1Njd9Jzo6dGV4dFtdIEFTIGludGVn ZXJbXSBERUZBVUxUICd7LTEwMTF9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgaW50NCAgIAor LS0tLS0tLS0tCisgey0xMDExfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwg Wyd0aHJlZSddLFsnYSddXSBBUyBJTlRFR0VSW10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJ T04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIHsxLDJ9CisoMSByb3cpCisKK1NFTEVDVCBD QVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyB0ZXh0W10gREVGQVVMVCAn ezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgYXJyYXkgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tCisge3sxLDJ9LHt0aHJlZSxhfX0KKygxIHJvdykKKworLS0gdGVzdCB2 YWxpZCBERUZBVUxUIGV4cHJlc3Npb24gZm9yIENBU1QgPSBPTiBDT05WRVJTSU9OIEVSUk9SCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiByZXRfc2V0aW50KCkgUkVUVVJOUyBTRVRPRiBpbnRl Z2VyIEFTCiskJAorQkVHSU4gUkVUVVJOIFFVRVJZIEVYRUNVVEUgJ3NlbGVjdCAxIHVuaW9uIGFs bCBzZWxlY3QgMSc7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRTsKK0NSRUFU RSBUQUJMRSB0Y2FzdChhIHRleHRbXSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgSURF TlRJVFksIGMgdGV4dCBkZWZhdWx0ICcxJyk7CitJTlNFUlQgSU5UTyB0Y2FzdCBWQUxVRVMgKCd7 MTJ9JyksICgnezEsYSwgYn0nKSwgKCd7ezEsMn0sIHtjLGR9fScpLCAoJ3sxM30nKTsKK1NFTEVD VCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfc2V0aW50KCkgT04gQ09OVkVSU0lPTiBFUlJP UikgRlJPTSB0Y2FzdDsgLS1lcnJvcgorRVJST1I6ICBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBh cmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zCitMSU5FIDE6IFNFTEVD VCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfc2V0aW50KCkgT04gQ09OVkVSU0lPTiBFUi4u LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1Qo J2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgor RVJST1I6ICBhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFV TFQgZXhwcmVzc2lvbnMKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1 bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3Zlcigp IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHdpbmRvdyBmdW5jdGlvbnMg YXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucworTElORSAxOiBTRUxF Q1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIG92ZXIoKSBPTiBDT05WRVJTSU9OIEUu Li4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNU KCdhJyBhcyBpbnQgREVGQVVMVCAnYicgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VS Uk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogImIiCitMSU5FIDE6 IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAnYicgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVCh0 IEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjIsICcgfHwgYiB8fCAnfScgT04gQ09OVkVSU0lPTiBF UlJPUikgRlJPTSB0Y2FzdCBhcyB0OworICAgICB0ICAgICAKKy0tLS0tLS0tLS0tCisgezIxLDIy LDF9CisgezIxLDIyLDJ9CisgezIxLDIyLDN9CisgezIxLDIyLDR9CisoNCByb3dzKQorCitTRUxF Q1QgQ0FTVCh0LmEgQVMgaW50W10gREVGQVVMVCAnezIxLDIyfSc6OmludFtdIHx8IGIgT04gQ09O VkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0OworICAgICBhICAgICAKKy0tLS0tLS0tLS0t CisgezEyfQorIHsyMSwyMiwyfQorIHsyMSwyMiwzfQorIHsxM30KKyg0IHJvd3MpCisKKy0tIHRl c3Qgd2l0aCBkb21haW4KK0NSRUFURSBET01BSU4gZF9pbnQ0MiBhcyBpbnQgY2hlY2sgKHZhbHVl ID0gNDIpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2NoYXIzX25vdF9udWxsIGFzIGNoYXIo MykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfdmFyY2hhciBhcyB2YXJjaGFyKDMpIE5PVCBO VUxMOworQ1JFQVRFIFRZUEUgY29tcF9kb21haW5fd2l0aF90eXBtb2QgQVMgKGEgZF9jaGFyM19u b3RfbnVsbCwgYiBpbnQpOworQ1JFQVRFIFRZUEUgY29tcDIgQVMgKGEgZF92YXJjaGFyKTsKK1NF TEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMyKScgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgdmFsdWUgdG9vIGxvbmcgZm9yIHR5cGUgY2hhcmFj dGVyIHZhcnlpbmcoMykKK0xJTkUgMTogU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVG QVVMVCAnKDEyMzIpJyBPTiBDT05WRVJTSU9OLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVG QVVMVCAnKDEyMyknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCisgY29tcDIgCistLS0tLS0t CisgKDEyMykKKygxIHJvdykKKworU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQx IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHZhbHVlIGZvciBkb21haW4g ZF9pbnQ0MiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJkX2ludDQyX2NoZWNrIgorU0VMRUNU IENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9r CisgZF9pbnQ0MiAKKy0tLS0tLS0tLQorICAgICAgNDIKKygxIHJvdykKKworU0VMRUNUIENBU1Qo TlVMTCBBUyBkX2ludDQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJv cgorRVJST1I6ICBkb21haW4gZF9pbnQ0MiBkb2VzIG5vdCBhbGxvdyBudWxsIHZhbHVlcworU0VM RUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7 IC0tb2sKKyBkX2ludDQyIAorLS0tLS0tLS0tCisgICAgICA0MgorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnKCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKKyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScgQVMg Y29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCAnKDEsMiknIE9OIENPTlZFUlNJT04gRVJS T1IpOworIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICgiMSAgIiwyKQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBjb21w X2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMTIzNCwyKScgT04gQ09OVkVSU0lPTiBFUlJP Uik7IC0tZXJyb3IKK0VSUk9SOiAgdmFsdWUgdG9vIGxvbmcgZm9yIHR5cGUgY2hhcmFjdGVyKDMp CitMSU5FIDE6IC4uLlNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERF RkFVTFQgJygxMjM0LDIpJy4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tLS0tc2FmZSBjYXN0IHdpdGggZ2VvbWV0cnkg ZGF0YSB0eXBlCitTRUxFQ1QgQ0FTVCgnKDEsMiknOjpwb2ludCBBUyBib3ggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBib3ggICAgIAorLS0tLS0tLS0tLS0tLQorICgx LDIpLCgxLDIpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKE5hTiwxKSwoTmFOLGluZmluaXR5 KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAg ICAgcG9pbnQgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAoTmFOLEluZmluaXR5KQorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnWygxZSszMDAsSW5maW5pdHkpLCgxZSszMDAsSW5maW5pdHkpXSc6 OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAg IHBvaW50ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxZSszMDAsSW5maW5pdHkpCiso MSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKDEsMiksKDMsNCldJzo6cGF0aCBhcyBwb2x5Z29uIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBwb2x5Z29uIAorLS0tLS0tLS0tCisg CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTmFOLDEuMCxOYU4saW5maW5pdHkpJzo6Ym94IEFT IHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgcG9pbnQgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAoTmFOLEluZmluaXR5KQorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgbHNlZyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgICAgIGxzZWcgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorIFsoMiwy KSwoMCwwKV0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94 IEFTIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICAg IHBvbHlnb24gICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoKDAsMCks KDAsMiksKDIsMiksKDIsMCkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAs MC4wKSc6OmJveCBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBw YXRoIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLGluZmluaXR5LE5h TixpbmZpbml0eSknOjpib3ggQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyAgICAgICAgY2lyY2xlICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8 KE5hTixJbmZpbml0eSksTmFOPgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKE5hTiwwLjApLCgy LjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQor IChOYU4sSW5maW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDAuMCksKDIuMCw0 LjApLCgwLjAsMC4wKSc6OnBvbHlnb24gQVMgcGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgICAgICAgIHBhdGggICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICgoMiwwKSwoMiw0KSwoMCwwKSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwo Mi4wLDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworICAgICBib3ggICAgIAorLS0tLS0tLS0tLS0tLQorICgyLDQpLCgwLDAp CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTmFOLGluZmluaXR5KSwoMi4wLDQuMCksKDAuMCxp bmZpbml0eSknOjpwb2x5Z29uIEFTIGNpcmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgICAgICAgIGNpcmNsZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg PChOYU4sSW5maW5pdHkpLE5hTj4KKygxIHJvdykKKworU0VMRUNUIENBU1QoJzwoNSwxKSwzPic6 OmNpcmNsZSBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgcG9p bnQgCistLS0tLS0tCisgKDUsMSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6 OmNpcmNsZSBhcyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBi b3ggICAgIAorLS0tLS0tLS0tLS0tLQorICgzLDUpLCgzLDUpCisoMSByb3cpCisKKy0tIG5vdCBz dXBwb3J0ZWQgYmVjYXVzZSB0aGUgY2FzdCBmcm9tIGNpcmNsZSB0byBwb2x5Z29uIGlzIGltcGxl bWVudGVkIGFzIGEgU1FMCistLSBmdW5jdGlvbiwgd2hpY2ggY2Fubm90IGJlIGVycm9yLXNhZmUu CitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIHBvbHlnb24gREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNpcmNsZSB0 byBwb2x5Z29uIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4u LiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpj aXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQy4uLgorICAgICAgICAgICAgICAgICAg ICBeCitISU5UOiAgQ3VycmVudGx5IENBU1QgLi4uIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJP UiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgY2FzdAorLS0tLS1zYWZlIGNhc3QgZnJvbS90byBtb25l eSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQsIGFsbCB0aGUgZm9sbG93aW5nIHdvdWxkIHJlc3VsdCBl cnJvcgorU0VMRUNUIENBU1QoTlVMTDo6aW50OCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgYmlnaW50IHRvIG1vbmV5 IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05W RVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6OmludDggQVMgbW9uZXkgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5U OiAgQ3VycmVudGx5IENBU1QgLi4uIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUiBkb2VzIG5v dCBzdXBwb3J0IHRoaXMgY2FzdAorU0VMRUNUIENBU1QoTlVMTDo6aW50NCBBUyBtb25leSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUg aW50ZWdlciB0byBtb25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4g Q0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjpp bnQ0IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAg ICAgICAgICAgXgorSElOVDogIEN1cnJlbnRseSBDQVNUIC4uLiBERUZBVUxUIE9OIENPTlZFUlNJ T04gRVJST1IgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNhc3QKK1NFTEVDVCBDQVNUKE5VTEw6Om51 bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6 ICBjYW5ub3QgY2FzdCB0eXBlIG51bWVyaWMgdG8gbW9uZXkgd2hlbiBERUZBVUxUIGV4cHJlc3Np b24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTog U0VMRUNUIENBU1QoTlVMTDo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBDdXJyZW50bHkgQ0FTVCAuLi4g REVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBjYXN0CitT RUxFQ1QgQ0FTVChOVUxMOjptb25leSBBUyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBtb25leSB0byBudW1lcmljIHdo ZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJT SU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6Om1vbmV5IEFTIG51bWVyaWMgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJTy4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAg Q3VycmVudGx5IENBU1QgLi4uIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUiBkb2VzIG5vdCBz dXBwb3J0IHRoaXMgY2FzdAorLS0tLS1zYWZlIGNhc3QgZnJvbSBieXRlYSB0eXBlIHRvIG90aGVy IGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUICgnXHgxMTIyMzM0NDU1NjY3Nzg4OTknOjpieXRlYSBB UyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4IAorLS0tLS0t CisgICAgIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTY3ODlBJzo6Ynl0ZWEgQVMg aW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50NCAKKy0tLS0tLQor ICAgICAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Jzo6Ynl0ZWEgQVMgaW50MiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50MiAKKy0tLS0tLQorICAgICAK KygxIHJvdykKKworLS0tLS1zYWZlIGNhc3QgZnJvbSBiaXQgdHlwZSB0byBvdGhlciBkYXRhIHR5 cGVzCitTRUxFQ1QgQ0FTVCgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAgIAorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCAoJzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElOVDgg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDggCistLS0tLS0KKyAgICAg CisoMSByb3cpCisKKy0tLS0tc2FmZSBjYXN0IGZyb20gdGV4dCB0eXBlIHRvIG90aGVyIGRhdGEg dHlwZXMKK3NlbGVjdCBDQVNUKCdhLmIuYy5kJzo6dGV4dCBhcyByZWdjbGFzcyBkZWZhdWx0IE5V TEwgb24gY29udmVyc2lvbiBlcnJvcik7CisgcmVnY2xhc3MgCistLS0tLS0tLS0tCisgCisoMSBy b3cpCisKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0KGNvbDAgdGV4dCk7CitJTlNFUlQgSU5U TyB0ZXN0X3NhZmVjYXN0KGNvbDApIFZBTFVFUyAoJzx2YWx1ZT5vbmU8L3ZhbHVlJyk7CitTRUxF Q1QgY29sMCBhcyB0ZXh0LAorICAgICAgIENBU1QoY29sMCBBUyByZWdjbGFzcyBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fcmVnY2xhc3MsCisgICAgICAgQ0FTVChjb2ww IEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBJUyBOVUxMIGFz IGV4cGVjdF90cnVlLAorICAgICAgIENBU1QoY29sMCBBUyAiY2hhciIgIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19jaGFyLAorICAgICAgIENBU1QoY29sMCBBUyBuYW1l IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19uYW1lLAorICAgICAgIENB U1QoY29sMCBBUyB4bWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3ht bAorRlJPTSB0ZXN0X3NhZmVjYXN0OworICAgICAgIHRleHQgICAgICAgIHwgdG9fcmVnY2xhc3Mg fCBleHBlY3RfdHJ1ZSB8IHRvX2NoYXIgfCAgICAgIHRvX25hbWUgICAgICB8IHRvX3htbCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tCisgPHZhbHVlPm9uZTwvdmFsdWUgfCAgICAgICAg ICAgICB8IHQgICAgICAgICAgIHwgPCAgICAgICB8IDx2YWx1ZT5vbmU8L3ZhbHVlIHwgCisoMSBy b3cpCisKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEueCcgYXMgaW5ldCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgaW5ldCAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnMTkyLjE2OC4xLjIvMzAnIGFzIGNpZHIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworIGNpZHIgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJzIyOjAw OjVjOjA4OjU1OjA4OjAxOjAyJzo6bWFjYWRkcjggYXMgbWFjYWRkciBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgbWFjYWRkciAKKy0tLS0tLS0tLQorIAorKDEgcm93KQorCist LS0tLXNhZmUgY2FzdCBiZXR3ZWVlbiByYW5nZSBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCgnWzEs Ml0nOjppbnQ0cmFuZ2UgQVMgaW50NG11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworIGludDRtdWx0aXJhbmdlIAorLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwzKX0K KygxIHJvdykKKworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50OHJhbmdlIEFTIGludDhtdWx0aXJh bmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4bXVsdGlyYW5nZSAK Ky0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMyl9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbMSwy XSc6Om51bXJhbmdlICBBUyBudW1tdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyBudW1tdWx0aXJhbmdlIAorLS0tLS0tLS0tLS0tLS0tCisge1sxLDJdfQorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjpkYXRlcmFuZ2UgQVMg ZGF0ZW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBk YXRlbXVsdGlyYW5nZSAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7Wy1pbmZpbml0 eSxpbmZpbml0eV19CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5 XSc6OnRzcmFuZ2UgQVMgdHNtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyAgICAgIHRzbXVsdGlyYW5nZSAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cisge1staW5maW5pdHksaW5maW5pdHldfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWy1pbmZp bml0eSxpbmZpbml0eV0nOjp0c3R6cmFuZ2UgQVMgdHN0em11bHRpcmFuZ2UgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICB0c3R6bXVsdGlyYW5nZSAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyB7Wy1pbmZpbml0eSxpbmZpbml0eV19CisoMSByb3cpCisKKy0t LS0tc2FmZSBjYXN0IGJldHdlZWVuIG51bWVyaWMgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIHRl c3Rfc2FmZWNhc3QxKAorICBjb2wxIGZsb2F0NCwgY29sMiBmbG9hdDgsIGNvbDMgbnVtZXJpYywg Y29sNCBudW1lcmljW10sCisgIGNvbDUgaW50MiBkZWZhdWx0IDMyNzY3LAorICBjb2w2IGludDQg ZGVmYXVsdCAzMjc2OCwKKyAgY29sNyBpbnQ4IGRlZmF1bHQgNDI5NDk2NzI5Nik7CitJTlNFUlQg SU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJzExLjEyMzQnLCAnMTEuMTIzNCcsICc5MjIzMzcy MDM2ODU0Nzc1ODA4JywgJ3sxMS4xMjM0fSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0 X3NhZmVjYXN0MSBWQUxVRVMoJ2luZicsICdpbmYnLCAnaW5mJywgJ3sxMS4xMjM0LCAxMiwgaW5m LCBOYU59Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygn LWluZicsICctaW5mJywgJy1pbmYnLCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJp Y1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnTmFOJywgJ05hTicsICdO YU4nLCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKK1NFTEVDVCBjb2w1 IGFzIGludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w1 IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAg ICAgIENBU1QoY29sNSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDUgYXMgZmxvYXQ4 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAg Q0FTVChjb2w1IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w1IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9z YWZlY2FzdDE7CisgaW50MiAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDgg fCB0b19mbG9hdDQgfCB0b19mbG9hdDggfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAK Ky0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIDMyNzY3IHwg ICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMy NzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAgIDMyNzY3LjAKKyAzMjc2NyB8ICAgMzI3NjcgfCAg IDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAg MzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAz Mjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAg ICAgICAgMzI3NjcuMAorIDMyNzY3IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAgIDMy NzY3IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAgIDMyNzY3 LjAKKyg0IHJvd3MpCisKK1NFTEVDVCBjb2w2IGFzIGludDQsCisgICAgICAgQ0FTVChjb2w2IEFT IGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAg ICAgQ0FTVChjb2w2IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w2IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNiBhcyBpbnQ4IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNiBh cyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwK KyAgICAgICBDQVNUKGNvbDYgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w2IGFzIG51bWVyaWMgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w2 IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgaW50NCAgfCB0b19pbnQyIHwg dG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCB0b19mbG9hdDQgfCB0b19mbG9hdDggfCB0b19u dW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLQorIDMyNzY4IHwgICAgICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAg IDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMy NzY4LjAKKyAzMjc2OCB8ICAgICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAg ICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAzMjc2OC4wCisgMzI3 NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAg ICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorIDMyNzY4IHwgICAgICAg ICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4IHwg ICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAKKyg0IHJvd3MpCisKK1NFTEVDVCBjb2w3IGFz IGludDgsCisgICAgICAgQ0FTVChjb2w3IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w3IEFTIGludDQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w3IEFT IG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAg IENBU1QoY29sNyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnQ4LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ4IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FT VChjb2w3IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X251bWVyaWMsCisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZl Y2FzdDE7CisgICAgaW50OCAgICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgIHRvX2lu dDggICB8ICB0b19mbG9hdDQgIHwgdG9fZmxvYXQ4ICB8IHRvX251bWVyaWMgfCB0b19udW1lcmlj X3NjYWxlIAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0KKyA0Mjk0OTY3Mjk2IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCA0Mjk0 OTY3Mjk2IHwgNC4yOTQ5N2UrMDkgfCA0Mjk0OTY3Mjk2IHwgNDI5NDk2NzI5NiB8ICAgICAgICAg ICAgICAgICAKKyA0Mjk0OTY3Mjk2IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCA0Mjk0 OTY3Mjk2IHwgNC4yOTQ5N2UrMDkgfCA0Mjk0OTY3Mjk2IHwgNDI5NDk2NzI5NiB8ICAgICAgICAg ICAgICAgICAKKyA0Mjk0OTY3Mjk2IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCA0Mjk0 OTY3Mjk2IHwgNC4yOTQ5N2UrMDkgfCA0Mjk0OTY3Mjk2IHwgNDI5NDk2NzI5NiB8ICAgICAgICAg ICAgICAgICAKKyA0Mjk0OTY3Mjk2IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCA0Mjk0 OTY3Mjk2IHwgNC4yOTQ5N2UrMDkgfCA0Mjk0OTY3Mjk2IHwgNDI5NDk2NzI5NiB8ICAgICAgICAg ICAgICAgICAKKyg0IHJvd3MpCisKK1NFTEVDVCBjb2wzIGFzIG51bWVyaWMsCisgICAgICAgQ0FT VChjb2wzIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDIsCisgICAgICAgQ0FTVChjb2wzIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wzIEFTIG9pZCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMyBhcyBpbnQ4 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENB U1QoY29sMyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wzIGFzIG51bWVyaWMg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAg Q0FTVChjb2wzIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgICAgICAgbnVt ZXJpYyAgICAgICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8ICB0b19m bG9hdDQgIHwgICAgICB0b19mbG9hdDggICAgICAgfCAgICAgdG9fbnVtZXJpYyAgICAgIHwgdG9f bnVtZXJpY19zY2FsZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIDkyMjMzNzIwMzY4NTQ3 NzU4MDggfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCA5LjIyMzM3ZSsx OCB8IDkuMjIzMzcyMDM2ODU0NzhlKzE4IHwgOTIyMzM3MjAzNjg1NDc3NTgwOCB8ICAgICAgICAg ICAgICAgICAKKyAgICAgICAgICAgIEluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAg ICAgfCAgICAgICAgIHwgICAgSW5maW5pdHkgfCAgICAgICAgICAgICBJbmZpbml0eSB8ICAgICAg ICAgICAgSW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisgICAgICAgICAgIC1JbmZpbml0eSB8 ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgLUluZmluaXR5IHwgICAg ICAgICAgICAtSW5maW5pdHkgfCAgICAgICAgICAgLUluZmluaXR5IHwgICAgICAgICAgICAgICAg IAorICAgICAgICAgICAgICAgICBOYU4gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgIE5hTiB8ICAgICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICAgICAg ICAgIE5hTiB8ICAgICAgICAgICAgICBOYU4KKyg0IHJvd3MpCisKK1NFTEVDVCBjb2w0IGFzIG51 bV9hcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDJbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgaW50MmFyciwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50NFtdIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ0YXJyLAorICAgICAgIENBU1QoY29s NCBhcyBpbnQ4W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGludDhhcnIs CisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0NFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyBmNGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgZmxvYXQ4W10gREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY4YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBu dW1lcmljKDEwLDEpW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIG51bWFy cgorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgICAgICAgICBudW1fYXJyICAgICAgICAgICB8IGlu dDJhcnIgfCBpbnQ0YXJyIHwgaW50OGFyciB8ICAgICAgICAgICBmNGFyciAgICAgICAgICAgIHwg ICAgICAgICAgIGY4YXJyICAgICAgICAgICAgfCBudW1hcnIgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLQorIHsxMS4x MjM0fSAgICAgICAgICAgICAgICAgIHwgezExfSAgICB8IHsxMX0gICAgfCB7MTF9ICAgIHwgezEx LjEyMzR9ICAgICAgICAgICAgICAgICAgfCB7MTEuMTIzNH0gICAgICAgICAgICAgICAgICB8IHsx MS4xfQorIHsxMS4xMjM0LDEyLEluZmluaXR5LE5hTn0gIHwgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgIHwgezExLjEyMzQsMTIsSW5maW5pdHksTmFOfSAgfCB7MTEuMTIzNCwxMixJbmZpbml0 eSxOYU59ICB8IAorIHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgIHwgezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCB7MTEuMTIzNCwxMiwt SW5maW5pdHksTmFOfSB8IAorIHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgICAgICAgICB8 ICAgICAgICAgfCAgICAgICAgIHwgezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCB7MTEuMTIz NCwxMiwtSW5maW5pdHksTmFOfSB8IAorKDQgcm93cykKKworU0VMRUNUIGNvbDEgYXMgZmxvYXQ0 LAorICAgICAgIENBU1QoY29sMSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMSBBUyBvaWQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNU KGNvbDEgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 OCwKKyAgICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0OCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29s MSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1l cmljLAorICAgICAgIENBU1QoY29sMSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3Qx OworICBmbG9hdDQgICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRv X2Zsb2F0NCB8ICAgIHRvX2Zsb2F0OCAgICAgfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2Fs ZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tCisgICAxMS4xMjM0IHwgICAgICAxMSB8ICAgICAgMTEgfCAgICAgICAgfCAgICAgIDExIHwg ICAxMS4xMjM0IHwgMTEuMTIzMzk5NzM0NDk3MSB8ICAgIDExLjEyMzQgfCAgICAgICAgICAgICAx MS4xCisgIEluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwg IEluZmluaXR5IHwgICAgICAgICBJbmZpbml0eSB8ICAgSW5maW5pdHkgfCAgICAgICAgICAgICAg ICAgCisgLUluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwg LUluZmluaXR5IHwgICAgICAgIC1JbmZpbml0eSB8ICAtSW5maW5pdHkgfCAgICAgICAgICAgICAg ICAgCisgICAgICAgTmFOIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwg ICAgICAgTmFOIHwgICAgICAgICAgICAgIE5hTiB8ICAgICAgICBOYU4gfCAgICAgICAgICAgICAg TmFOCisoNCByb3dzKQorCitTRUxFQ1QgY29sMiBhcyBmbG9hdDgsCisgICAgICAgQ0FTVChjb2wy IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisg ICAgICAgQ0FTVChjb2wyIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wyIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMiBhcyBpbnQ4IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29s MiBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0 NCwKKyAgICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wyIGFzIG51bWVyaWMgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChj b2wyIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgIGZsb2F0OCAgIHwgdG9f aW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4 IHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgICAxMS4xMjM0IHwgICAgICAxMSB8ICAgICAg MTEgfCAgICAgICAgfCAgICAgIDExIHwgICAxMS4xMjM0IHwgICAxMS4xMjM0IHwgICAgMTEuMTIz NCB8ICAgICAgICAgICAgIDExLjEKKyAgSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAg ICAgICB8ICAgICAgICAgfCAgSW5maW5pdHkgfCAgSW5maW5pdHkgfCAgIEluZmluaXR5IHwgICAg ICAgICAgICAgICAgIAorIC1JbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwg ICAgICAgICB8IC1JbmZpbml0eSB8IC1JbmZpbml0eSB8ICAtSW5maW5pdHkgfCAgICAgICAgICAg ICAgICAgCisgICAgICAgTmFOIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAg IHwgICAgICAgTmFOIHwgICAgICAgTmFOIHwgICAgICAgIE5hTiB8ICAgICAgICAgICAgICBOYU4K Kyg0IHJvd3MpCisKKy0tIGRhdGUvdGltZXN0YW1wL2ludGVydmFsIHJlbGF0ZWQgc2FmZSB0eXBl IGNhc3QKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MigKKyAgY29sMCBkYXRlLCBjb2wxIHRp bWVzdGFtcCwgY29sMiB0aW1lc3RhbXB0eiwKKyAgY29sMyBpbnRlcnZhbCwgY29sNCB0aW1lLCBj b2w1IHRpbWV0eik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MiBWQUxVRVMKKygnLWluZmlu aXR5JywgJy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywKKyAgJzIwMDMtMDMt MDcgMTU6MzY6MzkgQW1lcmljYS9OZXdfWW9yaycsICcyMDAzLTA3LTA3IDE1OjM2OjM5IEFtZXJp Y2EvTmV3X1lvcmsnKSwKKygnLWluZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5JywgJ2lu ZmluaXR5JywKKyAgJzExOjU5OjU5Ljk5IFBNJywgJzExOjU5OjU5Ljk5IFBNIFBEVCcpOworU0VM RUNUIGNvbDAgYXMgZGF0ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wdHogREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENB U1QoY29sMCBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19k YXRlLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXR6IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2ww IEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f dGltZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworICAgZGF0ZSAgICB8IHRvX3Rp bWVzdGFtcHR6IHwgIHRvX2RhdGUgIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3Rh bXBfc2NhbGUgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtaW5maW5pdHkgfCAtaW5m aW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5 CisgLWluZmluaXR5IHwgLWluZmluaXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAg ICAgICAgICB8IC1pbmZpbml0eQorKDIgcm93cykKKworU0VMRUNUIGNvbDEgYXMgdGltZXN0YW1w LAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wxIEFTIGRhdGUg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FT VChjb2wxIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWVzLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wKDIp IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUK K0ZST00gdGVzdF9zYWZlY2FzdDI7CisgdGltZXN0YW1wIHwgdG9fdGltZXN0YW1wdHogfCAgdG9f ZGF0ZSAgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSB8IC1pbmZpbml0eSAgICAgIHwgLWlu ZmluaXR5IHwgICAgICAgICAgfCAgICAgICAgICAgfCAtaW5maW5pdHkKKyBpbmZpbml0eSAgfCBp bmZpbml0eSAgICAgICB8IGluZmluaXR5ICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgaW5maW5p dHkKKygyIHJvd3MpCisKK1NFTEVDVCBjb2wyIGFzIHRpbWVzdGFtcHR6LAorICAgICAgIENBU1Qo Y29sMiBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWUg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENB U1QoY29sMiBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gdGVzdF9zYWZl Y2FzdDI7CisgdGltZXN0YW1wdHogfCB0b190aW1lc3RhbXB0eiB8ICB0b19kYXRlICB8IHRvX3Rp bWVzIHwgdG9fdGltZXR6IHwgdG9fdGltZXN0YW1wX3NjYWxlIAorLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAtaW5maW5pdHkgICB8IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwg ICAgICAgICAgfCAgICAgICAgICAgfCAtaW5maW5pdHkKKyBpbmZpbml0eSAgICB8IGluZmluaXR5 ICAgICAgIHwgaW5maW5pdHkgIHwgICAgICAgICAgfCAgICAgICAgICAgfCBpbmZpbml0eQorKDIg cm93cykKKworU0VMRUNUIGNvbDMgYXMgaW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2wzIEFTIHRp bWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3Rh bXB0eiwKKyAgICAgICBDQVNUKGNvbDMgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wzIEFT IHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAor ICAgICAgIENBU1QoY29sMyBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50 ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFs X3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworIGludGVydmFsICB8IHRvX3RpbWVzdGFtcHR6 IHwgdG9fZGF0ZSB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9fdGltZXN0YW1wX3NjYWxlIHwg dG9faW50ZXJ2YWxfc2NhbGUgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0KKyAtaW5maW5pdHkgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAg ICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IC1pbmZpbml0eQorIGluZmluaXR5 ICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgaW5maW5pdHkKKygyIHJvd3MpCisKK1NFTEVDVCBjb2w0IGFzIHRp bWUsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWUoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sNCBBUyB0aW1ldHogREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5PVCBOVUxMIGFzIHRvX3RpbWV0eiwKKyAg ICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZS T00gdGVzdF9zYWZlY2FzdDI7CisgICAgdGltZSAgICAgfCAgdG9fdGltZXMgICB8IHRvX3RpbWV0 eiB8ICAgICAgICAgIHRvX2ludGVydmFsICAgICAgICAgIHwgICAgICAgdG9faW50ZXJ2YWxfc2Nh bGUgICAgICAgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgMTU6MzY6MzkgICAgfCAxNTozNjozOSAgICB8IHQgICAgICAgICB8IEAgMTUgaG91cnMgMzYg bWlucyAzOSBzZWNzICAgIHwgQCAxNSBob3VycyAzNiBtaW5zIDM5IHNlY3MKKyAyMzo1OTo1OS45 OSB8IDIzOjU5OjU5Ljk5IHwgdCAgICAgICAgIHwgQCAyMyBob3VycyA1OSBtaW5zIDU5Ljk5IHNl Y3MgfCBAIDIzIGhvdXJzIDU5IG1pbnMgNTkuOTkgc2VjcworKDIgcm93cykKKworU0VMRUNUIGNv bDUgYXMgdGltZXR6LAorICAgICAgIENBU1QoY29sNSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lLAorICAgICAgIENBU1QoY29sNSBBUyB0aW1lKDIp IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lX3NjYWxlLAorICAg ICAgIENBU1QoY29sNSBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZXR6KDYpIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHpfc2NhbGUsCisgICAgICAgQ0FTVChj b2w1IEFTIGludGVydmFsIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19p bnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNh c3QyOworICAgICB0aW1ldHogICAgIHwgICB0b190aW1lICAgfCB0b190aW1lX3NjYWxlIHwgICB0 b190aW1ldHogICAgfCB0b190aW1ldHpfc2NhbGUgfCB0b19pbnRlcnZhbCB8IHRvX2ludGVydmFs X3NjYWxlIAorLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLQorIDE1OjM2OjM5LTA0ICAgIHwgMTU6MzY6MzkgICAgfCAxNTozNjozOSAgICAg IHwgMTU6MzY6MzktMDQgICAgfCAxNTozNjozOS0wNCAgICAgfCAgICAgICAgICAgICB8IAorIDIz OjU5OjU5Ljk5LTA3IHwgMjM6NTk6NTkuOTkgfCAyMzo1OTo1OS45OSAgIHwgMjM6NTk6NTkuOTkt MDcgfCAyMzo1OTo1OS45OS0wNyAgfCAgICAgICAgICAgICB8IAorKDIgcm93cykKKworQ1JFQVRF IFRFTVAgVEFCTEUgdGVzdF9zYWZlY2FzdDMoY29sMCBqc29uYik7CitJTlNFUlQgSU5UTyB0ZXN0 X3NhZmVjYXN0Myhjb2wwKSBWQUxVRVMgKCcidGVzdCInKTsKK1NFTEVDVCBjb2wwIGFzIGpzb25i LAorICAgICAgIENBU1QoY29sMCBBUyBpbnRlZ2VyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnRlZ2VyLAorICAgICAgIENBU1QoY29sMCBBUyBudW1lcmljIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1Qo Y29sMCBBUyBiaWdpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDgsCisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNv bDAgQVMgYm9vbGVhbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fYm9v bCwKKyAgICAgICBDQVNUKGNvbDAgQVMgc21hbGxpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3NtYWxsaW50CitGUk9NIHRlc3Rfc2FmZWNhc3QzOworIGpzb25iICB8 IHRvX2ludGVnZXIgfCB0b19udW1lcmljIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0 OCB8IHRvX2Jvb2wgfCB0b19zbWFsbGludCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCisgInRlc3QiIHwgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgCisoMSByb3cpCisKKy0t IHRlc3QgZGVwYXJzZQorQ1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMgaW50W107CitDUkVBVEUg VklFVyBzYWZlY2FzdHZpZXcgQVMKK1NFTEVDVCBDQVNUKCcxMjM0JyBhcyBjaGFyKDMpIERFRkFV TFQgLTExMTEgT04gQ09OVkVSU0lPTiBFUlJPUiksCisgICAgICAgQ0FTVCgxIGFzIGRhdGUgREVG QVVMVCAoKG5vdygpOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdGVzdF9zYWZlY2FzdDEsCisgICAgICAgQ0FTVChBUlJBWVtbJzEn XSwgWyd0aHJlZSddLFsnYSddXSBBUyBJTlRFR0VSW10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0 aHJlZScsICdhJ11dIEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyBjYXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcg cHVibGljLnNhZmVjYXN0dmlldyBBUworIFNFTEVDVCBDQVNUKCcxMjM0JyBBUyBjaGFyYWN0ZXIo MykgREVGQVVMVCAnLTExMTEnOjppbnRlZ2VyOjpjaGFyYWN0ZXIoMykgT04gQ09OVkVSU0lPTiBF UlJPUikgQVMgYnBjaGFyLAorICAgIENBU1QoMSBBUyBkYXRlIERFRkFVTFQgbm93KCk6OmRhdGUg KyByYW5kb20obWluID0+IDEsIG1heCA9PiAxKSBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyB0ZXN0 X3NhZmVjYXN0MSwKKyAgICBDQVNUKEFSUkFZW0FSUkFZWzFdLCBBUlJBWVsndGhyZWUnOjp0ZXh0 XSwgQVJSQVlbJ2EnOjp0ZXh0XV0gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3sxLDJ9Jzo6aW50ZWdl cltdIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QxLAorICAgIENBU1QoQVJSQVlbQVJSQVlb JzEnOjp0ZXh0LCAnMic6OnRleHRdLCBBUlJBWVsndGhyZWUnOjp0ZXh0LCAnYSc6OnRleHRdXSBB UyB0ZXh0W10gREVGQVVMVCAnezIxLDIyfSc6OnRleHRbXSBPTiBDT05WRVJTSU9OIEVSUk9SKSBB UyBjYXN0MgorQ1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3MSBBUworU0VMRUNUIENBU1QoQVJSQVlb WycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgZF9pbnRfYXJyIERFRkFVTFQgJ3sxLDJ9JyBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwKKyAgICAgICBDQVNUKEFSUkFZW1snMScsICcyJ10s IFsndGhyZWUnLCAnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgY2FzdDI7Citcc3Ygc2FmZWNhc3R2aWV3MQorQ1JFQVRFIE9SIFJFUExB Q0UgVklFVyBwdWJsaWMuc2FmZWNhc3R2aWV3MSBBUworIFNFTEVDVCBDQVNUKEFSUkFZW0FSUkFZ WzFdLCBBUlJBWVsndGhyZWUnOjp0ZXh0XSwgQVJSQVlbJ2EnOjp0ZXh0XV0gQVMgZF9pbnRfYXJy IERFRkFVTFQgJ3sxLDJ9Jzo6aW50ZWdlcltdOjpkX2ludF9hcnIgT04gQ09OVkVSU0lPTiBFUlJP UikgQVMgY2FzdDEsCisgICAgQ0FTVChBUlJBWVtBUlJBWVsxLCAyXSwgQVJSQVlbJ3RocmVlJzo6 dGV4dCwgJ2EnOjp0ZXh0XV0gQVMgZF9pbnRfYXJyIERFRkFVTFQgJ3syMSwyMn0nOjppbnRlZ2Vy W106OmRfaW50X2FyciBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBjYXN0MgorU0VMRUNUICogRlJP TSBzYWZlY2FzdHZpZXcxOworIGNhc3QxIHwgIGNhc3QyICAKKy0tLS0tLS0rLS0tLS0tLS0tCisg ezEsMn0gfCB7MjEsMjJ9CisoMSByb3cpCisKKy0tZXJyb3IsIGRlZmF1bHQgZXhwcmVzc2lvbiBp cyBtdXRhYmxlCitDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMo KENBU1QoY29sMCBhcyBpbnQgREVGQVVMVCByYW5kb20obWluPT4xLCBtYXg9PjEpIE9OIENPTlZF UlNJT04gRVJST1IpKSk7CitFUlJPUjogIGZ1bmN0aW9ucyBpbiBpbmRleCBleHByZXNzaW9uIG11 c3QgYmUgbWFya2VkIElNTVVUQUJMRQorQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4IE9OIHRl c3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgeGlkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSkpOworRVJST1I6ICBkYXRhIHR5cGUgeGlkIGhhcyBubyBkZWZhdWx0IG9wZXJhdG9y IGNsYXNzIGZvciBhY2Nlc3MgbWV0aG9kICJidHJlZSIKK0hJTlQ6ICBZb3UgbXVzdCBzcGVjaWZ5 IGFuIG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgaW5kZXggb3IgZGVmaW5lIGEgZGVmYXVsdCBvcGVy YXRvciBjbGFzcyBmb3IgdGhlIGRhdGEgdHlwZS4KK0NSRUFURSBJTkRFWCB0ZXN0X3NhZmVjYXN0 M19pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyBpbnQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpKSk7IC0tb2sKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoJ3Rlc3Rf c2FmZWNhc3QzX2lkeCc6OnJlZ2NsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgSU5ERVggdGVzdF9zYWZlY2FzdDNfaWR4 IE9OIHBnX3RlbXAudGVzdF9zYWZlY2FzdDMgVVNJTkcgYnRyZWUgKChDQVNUKGNvbDAgQVMgaW50 ZWdlciBERUZBVUxUIE5VTEw6OmludGVnZXIgT04gQ09OVkVSU0lPTiBFUlJPUikpKQorKDEgcm93 KQorCitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3Q7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3Qx OworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MjsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDM7 CitEUk9QIFRBQkxFIHRjYXN0OworUkVTRVQgZXh0cmFfZmxvYXRfZGlnaXRzOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dAppbmRleCAwZTY5NjQ0YmNhMi4uMzhlYWI0 NTMzNDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CkBAIC04 OCw2ICs4OCwxMSBAQCBTRUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91bGQg d29yayBub3cKICBiYXIxMjM0CiAoMSByb3cpCiAKK1NFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMg Y2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IK K0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBpbnRlZ2VyIHRvIGNhc3R0ZXN0dHlwZSB3aGVuIERF RkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBF UlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVCgxMjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZB VUxUIE5VTEwgT04gQ09OVkUuLi4KKyAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIEN1cnJl bnRseSBDQVNUIC4uLiBERUZBVUxUIE9OIENPTlZFUlNJT04gRVJST1IgZG9lcyBub3Qgc3VwcG9y dCB0aGlzIGNhc3QKIC0tIGNoZWNrIGRlcGVuZGVuY2llcyBnZW5lcmF0ZWQgZm9yIHRoYXQKIFNF TEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKSBhcyBvYmos CiAgICAgICAgcGdfZGVzY3JpYmVfb2JqZWN0KHJlZmNsYXNzaWQsIHJlZm9iamlkLCByZWZvYmpz dWJpZCkgYXMgb2JqcmVmLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9v cHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQK aW5kZXggYTM1N2UxZDBjMGUuLjgxZWEyNDQ4NTlmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTk0Myw4ICs5NDMsOCBAQCBTRUxFQ1QgKgogRlJPTSBwZ19j YXN0IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSAwIE9SIGNhc3R0YXJnZXQgPSAwIE9SIGNhc3Rjb250 ZXh0IE5PVCBJTiAoJ2UnLCAnYScsICdpJykKICAgICBPUiBjYXN0bWV0aG9kIE5PVCBJTiAoJ2Yn LCAnYicgLCdpJyk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3Vy Y2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBj YXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAog LS0gQ2hlY2sgdGhhdCBjYXN0ZnVuYyBpcyBub256ZXJvIG9ubHkgZm9yIGNhc3QgbWV0aG9kcyB0 aGF0IG5lZWQgYSBmdW5jdGlvbiwKQEAgLTk1Myw4ICs5NTMsOCBAQCBTRUxFQ1QgKgogRlJPTSBw Z19jYXN0IGMKIFdIRVJFIChjYXN0bWV0aG9kID0gJ2YnIEFORCBjYXN0ZnVuYyA9IDApCiAgICBP UiAoY2FzdG1ldGhvZCBJTiAoJ2InLCAnaScpIEFORCBjYXN0ZnVuYyA8PiAwKTsKLSBvaWQgfCBj YXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0 aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0 ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBMb29rIGZvciBjYXN0cyB0by9m cm9tIHRoZSBzYW1lIHR5cGUgdGhhdCBhcmVuJ3QgbGVuZ3RoIGNvZXJjaW9uIGZ1bmN0aW9ucy4K QEAgLTk2MywxNSArOTYzLDE1IEBAIFdIRVJFIChjYXN0bWV0aG9kID0gJ2YnIEFORCBjYXN0ZnVu YyA9IDApCiBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSBjYXN0 dGFyZ2V0IEFORCBjYXN0ZnVuYyA9IDA7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQg fCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9p ZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNh c3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQog KDAgcm93cykKIAogU0VMRUNUIGMuKgogRlJPTSBwZ19jYXN0IGMsIHBnX3Byb2MgcAogV0hFUkUg Yy5jYXN0ZnVuYyA9IHAub2lkIEFORCBwLnByb25hcmdzIDwgMiBBTkQgY2FzdHNvdXJjZSA9IGNh c3R0YXJnZXQ7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNh c3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2Ug fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0 ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0g TG9vayBmb3IgY2FzdCBmdW5jdGlvbnMgdGhhdCBkb24ndCBoYXZlIHRoZSByaWdodCBzaWduYXR1 cmUuICBUaGUKQEAgLTk4OSw4ICs5ODksOCBAQCBXSEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5E CiAgICAgICAgICAgICAgT1IgKGMuY2FzdHNvdXJjZSA9ICdjaGFyYWN0ZXInOjpyZWd0eXBlIEFO RAogICAgICAgICAgICAgICAgICBwLnByb2FyZ3R5cGVzWzBdID0gJ3RleHQnOjpyZWd0eXBlKSkK ICAgICAgT1IgTk9UIGJpbmFyeV9jb2VyY2libGUocC5wcm9yZXR0eXBlLCBjLmNhc3R0YXJnZXQp KTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRl eHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0 YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNh ZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiBTRUxFQ1QgYy4q CkBAIC05OTgsOCArOTk4LDggQEAgRlJPTSBwZ19jYXN0IGMsIHBnX3Byb2MgcAogV0hFUkUgYy5j YXN0ZnVuYyA9IHAub2lkIEFORAogICAgICgocC5wcm9uYXJncyA+IDEgQU5EIHAucHJvYXJndHlw ZXNbMV0gIT0gJ2ludDQnOjpyZWd0eXBlKSBPUgogICAgICAocC5wcm9uYXJncyA+IDIgQU5EIHAu cHJvYXJndHlwZXNbMl0gIT0gJ2Jvb2wnOjpyZWd0eXBlKSk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8 IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0 Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gTG9vayBmb3IgYmluYXJ5IGNvbXBhdGlibGUgY2Fz dHMgdGhhdCBkbyBub3QgaGF2ZSB0aGUgcmV2ZXJzZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUKaW5kZXggYTBmNWZhYjBmNWQuLmM2OTM2ZjY0YTg3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUKQEAgLTgxLDcgKzgxLDcgQEAgdGVzdDogY3JlYXRlX3RhYmxlX2xpa2UgYWx0ZXJf Z2VuZXJpYyBhbHRlcl9vcGVyYXRvciBtaXNjIGFzeW5jIGRic2l6ZSBtZXJnZSBtaXMKICMgY29s bGF0ZS5saW51eC51dGY4IGFuZCBjb2xsYXRlLmljdS51dGY4IHRlc3RzIGNhbm5vdCBiZSBydW4g aW4gcGFyYWxsZWwgd2l0aCBlYWNoIG90aGVyCiAjIHBzcWwgZGVwZW5kcyBvbiBjcmVhdGVfYW0K ICMgYW11dGlscyBkZXBlbmRzIG9uIGdlb21ldHJ5LCBjcmVhdGVfaW5kZXhfc3BnaXN0LCBoYXNo X2luZGV4LCBicmluCi10ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgcHNxbF9waXBlbGlu ZSBhbXV0aWxzIHN0YXRzX2V4dCBjb2xsYXRlLmxpbnV4LnV0ZjggY29sbGF0ZS53aW5kb3dzLndp bjEyNTIKK3Rlc3Q6IHJ1bGVzIHBzcWwgcHNxbF9jcm9zc3RhYiBwc3FsX3BpcGVsaW5lIGFtdXRp bHMgc3RhdHNfZXh0IGNvbGxhdGUubGludXgudXRmOCBjb2xsYXRlLndpbmRvd3Mud2luMTI1MiBj YXN0CiAKICMgLS0tLS0tLS0tLQogIyBSdW4gdGhlc2UgYWxvbmUgc28gdGhleSBkb24ndCBydW4g b3V0IG9mIHBhcmFsbGVsIHdvcmtlcnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2Nhc3Quc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkyMzNiODgzMDlkCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKQEAgLTAsMCArMSwzMjAgQEAKK1NFVCBleHRy YV9mbG9hdF9kaWdpdHMgPSAwOworCistLSBDQVNUIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJP UgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBFUlJPUiBPTiBDT05WRVJTSU9OIEVS Uk9SKSk7IC0tZXJyb3IKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSk7CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFV TFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworU0VMRUNUIENBU1QoMSBBUyBkYXRlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKDE6Om51bWVyaWMgQVMg bW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoMTEx MSBBUyAiY2hhciIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworLS10aGUgZGVm YXVsdCBleHByZXNzaW9u4oCZcyBjb2xsYXRpb24gc2hvdWxkIG1hdGNoIHRoZSBjb2xsYXRpb24g b2YgdGhlIGNhc3QKKy0tdGFyZ2V0IHR5cGUKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIFRFWFQg REVGQVVMVCAnMScgQ09MTEFURSAiQyIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworCitWQUxVRVMg KENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yIERFRkFVTFQgJzEgMycgIE9OIENPTlZFUlNJT04g RVJST1IpKTsKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7 MSAzfScgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKworLS0gdGVzdCBzb3VyY2UgZXhwcmVzc2lv biBjb250YWluIHN1YnF1ZXJ5CitTRUxFQ1QgQ0FTVCgoU0VMRUNUIGIgRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMSksIChWQUxVRVMoJ0gnKSkgcyhiKSkKKyAgICAgICAgICAgIEFTIGludDJ2ZWN0 b3JbXSBERUZBVUxUICd7MSAzfScgIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1Qo KFNFTEVDVCBBUlJBWSgoU0VMRUNUIGIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMikgZywgKFZB TFVFUygnSCcpKSBzKGIpKSkpCisgICAgICAgICAgICBBUyBJTlRbXQorICAgICAgICAgICAgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiByZXRfaW50OCgpIFJFVFVSTlMgQklHSU5UIEFTCiskJAorQkVHSU4gUkVUVVJOIDIxNDc0 ODM2NDg7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRTsKKworU0VMRUNUIENB U1QoJ2EnIGFzIGludCBERUZBVUxUIHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0t ZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBkYXRlIERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorCistLSB0ZXN0IGFycmF5IGNvZXJjZQorU0VMRUNUIENB U1QoYXJyYXlbMTEuMTJdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKGFycmF5WzExLjEyXSBBUyBkYXRlW10gREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoYXJyYXlbMTExMTExMTExMTExMTExMTFdIEFT IGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKGFy cmF5W1snYWJjJ10sWzQ1Nl1dIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCd7MTIzLGFiYyw0NTZ9JyBBUyBpbnRlZ2VyW10gREVGQVVMVCAn ey03ODl9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCd7MjM0LGRlZiw1Njd9 Jzo6dGV4dFtdIEFTIGludGVnZXJbXSBERUZBVUxUICd7LTEwMTF9JyBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFTIElOVEVH RVJbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChB UlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwy Mn0nIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLSB0ZXN0IHZhbGlkIERFRkFVTFQgZXhwcmVz c2lvbiBmb3IgQ0FTVCA9IE9OIENPTlZFUlNJT04gRVJST1IKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHJldF9zZXRpbnQoKSBSRVRVUk5TIFNFVE9GIGludGVnZXIgQVMKKyQkCitCRUdJTiBS RVRVUk4gUVVFUlkgRVhFQ1VURSAnc2VsZWN0IDEgdW5pb24gYWxsIHNlbGVjdCAxJzsgRU5EOwor JCQKK0xBTkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworCitDUkVBVEUgVEFCTEUgdGNhc3QoYSB0 ZXh0W10sIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIElERU5USVRZLCBjIHRleHQgZGVm YXVsdCAnMScpOworSU5TRVJUIElOVE8gdGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9 JyksICgne3sxLDJ9LCB7YyxkfX0nKSwgKCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50 IERFRkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3Q7IC0t ZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkg b3ZlcigpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMg aW50IERFRkFVTFQgJ2InIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKK1NFTEVDVCBD QVNUKHQgQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMiwgJyB8fCBiIHx8ICd9JyBPTiBDT05WRVJT SU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CitTRUxFQ1QgQ0FTVCh0LmEgQVMgaW50W10gREVG QVVMVCAnezIxLDIyfSc6OmludFtdIHx8IGIgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2Fz dCBhcyB0OworCistLSB0ZXN0IHdpdGggZG9tYWluCitDUkVBVEUgRE9NQUlOIGRfaW50NDIgYXMg aW50IGNoZWNrICh2YWx1ZSA9IDQyKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF9jaGFyM19u b3RfbnVsbCBhcyBjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX3ZhcmNoYXIgYXMg dmFyY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9k IEFTIChhIGRfY2hhcjNfbm90X251bGwsIGIgaW50KTsKK0NSRUFURSBUWVBFIGNvbXAyIEFTIChh IGRfdmFyY2hhcik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBBUyBjb21wMiBERUZBVUxUICcoMTIz MiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBB UyBjb21wMiBERUZBVUxUICcoMTIzKScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tb2sKK1NFTEVD VCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1l cnJvcgorU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLW9rCitTRUxFQ1QgQ0FTVChOVUxMIEFTIGRfaW50NDIgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVChOVUxMIEFTIGRfaW50NDIg REVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworU0VMRUNUIENBU1QoJygsNDIp JyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1v ZCBERUZBVUxUICcoMSwyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5V TEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMTIzNCwyKScgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKKworLS0tLS1zYWZlIGNhc3Qgd2l0aCBnZW9tZXRy eSBkYXRhIHR5cGUKK1NFTEVDVCBDQVNUKCcoMSwyKSc6OnBvaW50IEFTIGJveCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWyhOYU4sMSksKE5hTixpbmZp bml0eSldJzo6bHNlZyBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CitTRUxFQ1QgQ0FTVCgnWygxZSszMDAsSW5maW5pdHkpLCgxZSszMDAsSW5maW5pdHkpXSc6Omxz ZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoJ1soMSwyKSwoMyw0KV0nOjpwYXRoIGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJyhOYU4sMS4wLE5hTixpbmZpbml0eSknOjpib3gg QVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1Qo JygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIGxzZWcgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIHBvbHln b24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAs Mi4wLDAuMCwwLjApJzo6Ym94IEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworU0VMRUNUIENBU1QoJygyLjAsaW5maW5pdHksTmFOLGluZmluaXR5KSc6OmJveCBBUyBj aXJjbGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJyhO YU4sMC4wKSwoMi4wLDQuMCksKDAuMCxpbmZpbml0eSknOjpwb2x5Z29uIEFTIHBvaW50IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDAuMCksKDIu MCw0LjApLCgwLjAsMC4wKSc6OnBvbHlnb24gQVMgcGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCkn Ojpwb2x5Z29uIEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCgnKE5hTixpbmZpbml0eSksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdv biBBUyBjaXJjbGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoJzwoNSwxKSwzPic6OmNpcmNsZSBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIGJveCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CistLSBub3Qgc3VwcG9ydGVkIGJlY2F1c2UgdGhl IGNhc3QgZnJvbSBjaXJjbGUgdG8gcG9seWdvbiBpcyBpbXBsZW1lbnRlZCBhcyBhIFNRTAorLS0g ZnVuY3Rpb24sIHdoaWNoIGNhbm5vdCBiZSBlcnJvci1zYWZlLgorU0VMRUNUIENBU1QoJzwoMyw1 KSwwPic6OmNpcmNsZSBhcyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKworLS0tLS1zYWZlIGNhc3QgZnJvbS90byBtb25leSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQs IGFsbCB0aGUgZm9sbG93aW5nIHdvdWxkIHJlc3VsdCBlcnJvcgorU0VMRUNUIENBU1QoTlVMTDo6 aW50OCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVChOVUxMOjppbnQ0IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKE5VTEw6Om51bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJpYyBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGZyb20gYnl0 ZWEgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCAoJ1x4MTEyMjMzNDQ1NTY2 Nzc4ODk5Jzo6Ynl0ZWEgQVMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTY3ODlBJzo6Ynl0ZWEgQVMgaW50NCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTYnOjpieXRlYSBBUyBp bnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0tLS1zYWZlIGNhc3Qg ZnJvbSBiaXQgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCgnMTExMTExMTEx MTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUICgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UOCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGZyb20gdGV4 dCB0eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK3NlbGVjdCBDQVNUKCdhLmIuYy5kJzo6dGV4dCBh cyByZWdjbGFzcyBkZWZhdWx0IE5VTEwgb24gY29udmVyc2lvbiBlcnJvcik7CisKK0NSRUFURSBU QUJMRSB0ZXN0X3NhZmVjYXN0KGNvbDAgdGV4dCk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0 KGNvbDApIFZBTFVFUyAoJzx2YWx1ZT5vbmU8L3ZhbHVlJyk7CisKK1NFTEVDVCBjb2wwIGFzIHRl eHQsCisgICAgICAgQ0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19yZWdjbGFzcywKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3Mg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5VTEwgYXMgZXhwZWN0X3RydWUs CisgICAgICAgQ0FTVChjb2wwIEFTICJjaGFyIiAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2NoYXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG5hbWUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX25hbWUsCisgICAgICAgQ0FTVChjb2wwIEFTIHht bCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9feG1sCitGUk9NIHRlc3Rf c2FmZWNhc3Q7CisKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEueCcgYXMgaW5ldCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLjIvMzAnIGFz IGNpZHIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzIy OjAwOjVjOjA4OjU1OjA4OjAxOjAyJzo6bWFjYWRkcjggYXMgbWFjYWRkciBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGJldHdlZWVuIHJhbmdlIGRh dGEgdHlwZXMKK1NFTEVDVCBDQVNUKCdbMSwyXSc6OmludDRyYW5nZSBBUyBpbnQ0bXVsdGlyYW5n ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWzEsMl0n OjppbnQ4cmFuZ2UgQVMgaW50OG11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworU0VMRUNUIENBU1QoJ1sxLDJdJzo6bnVtcmFuZ2UgIEFTIG51bW11bHRpcmFuZ2Ug REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1staW5maW5p dHksaW5maW5pdHldJzo6ZGF0ZXJhbmdlIEFTIGRhdGVtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6 OnRzcmFuZ2UgQVMgdHNtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OnRzdHpyYW5nZSBBUyB0c3R6 bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2Fm ZSBjYXN0IGJldHdlZWVuIG51bWVyaWMgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIHRlc3Rfc2Fm ZWNhc3QxKAorICBjb2wxIGZsb2F0NCwgY29sMiBmbG9hdDgsIGNvbDMgbnVtZXJpYywgY29sNCBu dW1lcmljW10sCisgIGNvbDUgaW50MiBkZWZhdWx0IDMyNzY3LAorICBjb2w2IGludDQgZGVmYXVs dCAzMjc2OCwKKyAgY29sNyBpbnQ4IGRlZmF1bHQgNDI5NDk2NzI5Nik7CitJTlNFUlQgSU5UTyB0 ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJzExLjEyMzQnLCAnMTEuMTIzNCcsICc5MjIzMzcyMDM2ODU0 Nzc1ODA4JywgJ3sxMS4xMjM0fSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVj YXN0MSBWQUxVRVMoJ2luZicsICdpbmYnLCAnaW5mJywgJ3sxMS4xMjM0LCAxMiwgaW5mLCBOYU59 Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnLWluZics ICctaW5mJywgJy1pbmYnLCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsK K0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnTmFOJywgJ05hTicsICdOYU4nLCAn ezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKKworU0VMRUNUIGNvbDUgYXMg aW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50NCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDUgQVMg b2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAg Q0FTVChjb2w1IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDgsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDggREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNU KGNvbDUgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f bnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVj YXN0MTsKKworU0VMRUNUIGNvbDYgYXMgaW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50MiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNU KGNvbDYgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w2IGFzIGludDggREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0 NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAg IENBU1QoY29sNiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVt ZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJp Y19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDcgYXMgaW50OCwKKyAg ICAgICBDQVNUKGNvbDcgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDcgQVMgb2lkIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w3 IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisg ICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDcgYXMg bnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywK KyAgICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKwor U0VMRUNUIGNvbDMgYXMgbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50MiBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDMg QVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAg ICAgICBDQVNUKGNvbDMgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wzIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0NCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1Qo Y29sMyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zs b2F0OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYygx MCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2Fs ZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDQgYXMgbnVtX2FyciwKKyAgICAg ICBDQVNUKGNvbDQgQVMgaW50MltdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyBpbnQyYXJyLAorICAgICAgIENBU1QoY29sNCBBUyBpbnQ0W10gREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIGludDRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGludDhbXSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50OGFyciwKKyAgICAgICBDQVNU KGNvbDQgYXMgZmxvYXQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY0 YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBmbG9hdDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgZjhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIG51bWVyaWMoMTAsMSlb XSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgbnVtYXJyCitGUk9NIHRlc3Rf c2FmZWNhc3QxOworCitTRUxFQ1QgY29sMSBhcyBmbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIEFT IGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAg ICAgQ0FTVChjb2wxIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wxIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMSBhcyBpbnQ4IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMSBh cyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwK KyAgICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wx IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wyIGFzIGZs b2F0OCwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50NCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDIgQVMg b2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAg Q0FTVChjb2wyIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDgsCisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDggREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNU KGNvbDIgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f bnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVj YXN0MTsKKworLS0gZGF0ZS90aW1lc3RhbXAvaW50ZXJ2YWwgcmVsYXRlZCBzYWZlIHR5cGUgY2Fz dAorQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QyKAorICBjb2wwIGRhdGUsIGNvbDEgdGltZXN0 YW1wLCBjb2wyIHRpbWVzdGFtcHR6LAorICBjb2wzIGludGVydmFsLCBjb2w0IHRpbWUsIGNvbDUg dGltZXR6KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QyIFZBTFVFUworKCctaW5maW5pdHkn LCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsICctaW5maW5pdHknLAorICAnMjAwMy0wMy0wNyAx NTozNjozOSBBbWVyaWNhL05ld19Zb3JrJywgJzIwMDMtMDctMDcgMTU6MzY6MzkgQW1lcmljYS9O ZXdfWW9yaycpLAorKCctaW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5p dHknLAorICAnMTE6NTk6NTkuOTkgUE0nLCAnMTE6NTk6NTkuOTkgUE0gUERUJyk7CisKK1NFTEVD VCBjb2wwIGFzIGRhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNU KGNvbDAgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0 ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWV0eiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMCBB UyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDEgYXMgdGlt ZXN0YW1wLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wxIEFT IGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAg ICAgQ0FTVChjb2wxIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0 YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBf c2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2wyIGFzIHRpbWVzdGFtcHR6 LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFTIGRhdGUg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FT VChjb2wyIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWVzLAorICAgICAgIENBU1QoY29sMiBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0YW1wKDIp IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUK K0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2wzIGFzIGludGVydmFsLAorICAgICAg IENBU1QoY29sMyBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wzIEFTIGRhdGUgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wzIEFT IHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAg ICAgIENBU1QoY29sMyBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUsCisgICAgICAg Q0FTVChjb2wzIEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNv bDQgYXMgdGltZSwKKyAgICAgICBDQVNUKGNvbDQgQVMgdGltZSgyKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWV0 eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTk9UIE5VTEwgYXMgdG9fdGlt ZXR6LAorICAgICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w0IEFTIGludGVy dmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9z Y2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDUgYXMgdGltZXR6LAorICAg ICAgIENBU1QoY29sNSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b190aW1lLAorICAgICAgIENBU1QoY29sNSBBUyB0aW1lKDIpIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lX3NjYWxlLAorICAgICAgIENBU1QoY29sNSBBUyB0 aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAg ICAgICBDQVNUKGNvbDUgQVMgdGltZXR6KDYpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1ldHpfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBD QVNUKGNvbDUgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitDUkVBVEUgVEVN UCBUQUJMRSB0ZXN0X3NhZmVjYXN0Myhjb2wwIGpzb25iKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2Fm ZWNhc3QzKGNvbDApIFZBTFVFUyAoJyJ0ZXN0IicpOworU0VMRUNUIGNvbDAgYXMganNvbmIsCisg ICAgICAgQ0FTVChjb2wwIEFTIGludGVnZXIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2ludGVnZXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG51bWVyaWMgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2ww IEFTIGJpZ2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwK KyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0OCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMCBB UyBib29sZWFuIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19ib29sLAor ICAgICAgIENBU1QoY29sMCBBUyBzbWFsbGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fc21hbGxpbnQKK0ZST00gdGVzdF9zYWZlY2FzdDM7CisKKy0tIHRlc3QgZGVw YXJzZQorQ1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMgaW50W107CitDUkVBVEUgVklFVyBzYWZl Y2FzdHZpZXcgQVMKK1NFTEVDVCBDQVNUKCcxMjM0JyBhcyBjaGFyKDMpIERFRkFVTFQgLTExMTEg T04gQ09OVkVSU0lPTiBFUlJPUiksCisgICAgICAgQ0FTVCgxIGFzIGRhdGUgREVGQVVMVCAoKG5v dygpOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdGVzdF9zYWZlY2FzdDEsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJl ZSddLFsnYSddXSBBUyBJTlRFR0VSW10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdh J11dIEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBj YXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcKKworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3MSBBUwor U0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgZF9pbnRfYXJyIERF RkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwKKyAgICAgICBDQVNU KEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAn ezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDI7Citcc3Ygc2FmZWNhc3R2aWV3 MQorU0VMRUNUICogRlJPTSBzYWZlY2FzdHZpZXcxOworCistLWVycm9yLCBkZWZhdWx0IGV4cHJl c3Npb24gaXMgbXV0YWJsZQorQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4IE9OIHRlc3Rfc2Fm ZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50IERFRkFVTFQgcmFuZG9tKG1pbj0+MSwgbWF4PT4xKSBP TiBDT05WRVJTSU9OIEVSUk9SKSkpOworQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4IE9OIHRl c3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgeGlkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSkpOworQ1JFQVRFIElOREVYIHRlc3Rfc2FmZWNhc3QzX2lkeCBPTiB0ZXN0X3NhZmVj YXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikp KTsgLS1vaworU0VMRUNUIHBnX2dldF9pbmRleGRlZigndGVzdF9zYWZlY2FzdDNfaWR4Jzo6cmVn Y2xhc3MpOworCitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3Q7CitEUk9QIFRBQkxFIHRlc3Rfc2Fm ZWNhc3QxOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MjsKK0RST1AgVEFCTEUgdGVzdF9zYWZl Y2FzdDM7CitEUk9QIFRBQkxFIHRjYXN0OworUkVTRVQgZXh0cmFfZmxvYXRfZGlnaXRzOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCmluZGV4IDMyMTg3ODUzY2M3Li4wYTE1YTc5NWQ4 NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbApAQCAtNjIsNiArNjIsNyBAQCAk JCBTRUxFQ1QgKCdiYXInOjp0ZXh0IHx8ICQxOjp0ZXh0KTsgJCQ7CiAKIENSRUFURSBDQVNUIChp bnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBGVU5DVElPTiBiYXJfaW50NF90ZXh0KGludDQpIEFT IElNUExJQ0lUOwogU0VMRUNUIDEyMzQ6OmludDQ6OmNhc3R0ZXN0dHlwZTsgLS0gU2hvdWxkIHdv cmsgbm93CitTRUxFQ1QgQ0FTVCgxMjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCiAKIC0tIGNoZWNrIGRlcGVuZGVuY2ll cyBnZW5lcmF0ZWQgZm9yIHRoYXQKIFNFTEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xhc3NpZCwg b2JqaWQsIG9ianN1YmlkKSBhcyBvYmosCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDAx OGI1OTE5Y2Y2Li5jM2U2NDMyZWMzNSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTI2 NjIsNiArMjY2Miw5IEBAIFNUUkxFTgogU1YKIFNZTkNIUk9OSVpBVElPTl9CQVJSSUVSCiBTWVNU RU1fSU5GTworU2FmZVR5cGVDYXN0CitTYWZlVHlwZUNhc3RFeHByCitTYWZlVHlwZUNhc3RTdGF0 ZQogU2FtcGxlU2NhbgogU2FtcGxlU2NhbkdldFNhbXBsZVNpemVfZnVuY3Rpb24KIFNhbXBsZVNj YW5TdGF0ZQotLSAKMi4zNC4xCgo= --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3dl4 RnJvbSA0MjY2ZDk5MDJmYmI0ZjdiMTFmYTllODgyYjdlOWE3ZjUwODNlZjZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNiBPY3QgMjAyNSAxMjozOToyMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MTUvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgdGltZXN0YW1wdHogdG8gb3RoZXIgdHlwZXMK 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= --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0018-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v9-0018-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3dg1 RnJvbSBjNzg0YzBiMWVmOWIxMWE3MmM2ZTM3MmNhM2JkYTc1MGI4MTdhY2U2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMzEgT2N0IDIwMjUgMDg6MzI6MzIgKzA4MDAKU3ViamVjdDogW1BBVENIIHY5 IDE4LzE5XSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGdlb21ldHJ5IGRhdGEgdHlwZQoKc2VsZWN0 IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUsIHBwLnByb3NyYwpmcm9t IHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3RmdW5jCmpvaW4g cGdfdHlwZSBwdCBvbiBwdC5vaWQgPSBjYXN0c291cmNlCmpvaW4gcGdfdHlwZSBwdDEgb24gcHQx Lm9pZCA9IGNhc3R0YXJnZXQKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgIHB0LnR5cGFycmF5IDw+ IDAKYW5kIHB0LnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCBw dDEudHlwbmFtZXNwYWNlID0gJ3BnX2NhdGFsb2cnOjpyZWduYW1lc3BhY2UKYW5kIChwdC50eXBj YXRlZ29yeSAgPSAnRycgb3IgcHQxLnR5cGNhdGVnb3J5ICA9ICdHJykKb3JkZXIgYnkgY2FzdHNv dXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2FzdHRh cmdldCB8ICAgIHByb3NyYwotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LQogcG9pbnQgICAgICB8IGJveCAgICAgICAgfCBwb2ludF9ib3gKIGxzZWcgICAgICAgfCBwb2lu dCAgICAgIHwgbHNlZ19jZW50ZXIKIHBhdGggICAgICAgfCBwb2x5Z29uICAgIHwgcGF0aF9wb2x5 CiBib3ggICAgICAgIHwgcG9pbnQgICAgICB8IGJveF9jZW50ZXIKIGJveCAgICAgICAgfCBsc2Vn ICAgICAgIHwgYm94X2RpYWdvbmFsCiBib3ggICAgICAgIHwgcG9seWdvbiAgICB8IGJveF9wb2x5 CiBib3ggICAgICAgIHwgY2lyY2xlICAgICB8IGJveF9jaXJjbGUKIHBvbHlnb24gICAgfCBwb2lu dCAgICAgIHwgcG9seV9jZW50ZXIKIHBvbHlnb24gICAgfCBwYXRoICAgICAgIHwgcG9seV9wYXRo CiBwb2x5Z29uICAgIHwgYm94ICAgICAgICB8IHBvbHlfYm94CiBwb2x5Z29uICAgIHwgY2lyY2xl ICAgICB8IHBvbHlfY2lyY2xlCiBjaXJjbGUgICAgIHwgcG9pbnQgICAgICB8IGNpcmNsZV9jZW50 ZXIKIGNpcmNsZSAgICAgfCBib3ggICAgICAgIHwgY2lyY2xlX2JveAogY2lyY2xlICAgICB8IHBv bHlnb24gICAgfAooMTQgcm93cykKCmFscmVhZHkgZXJyb3Igc2FmZTogcG9pbnRfYm94LCBib3hf ZGlhZ29uYWwsIGJveF9wb2x5LCBwb2x5X3BhdGgsIHBvbHlfYm94LCBjaXJjbGVfY2VudGVyCmFs bW9zdCBlcnJvciBzYWZlOiBwYXRoX3BvbHkKY2FuIG5vdCBlcnJvciBzYWZlOiBjYXN0IGNpcmNs ZSB0byBwb2x5Z29uLCBiZWNhdXNlIGl0J3MgYSBTUUwgZnVuY3Rpb24KCmRpc2N1c3Npb246IGh0 dHBzOi8vcG9zdGdyLmVzL20vQ0FDSnVmeEhDTXpySE9XPXdSZThMMzByTWhCM3Nqd0F2MUxFOTI4 RmE3c3hNdTFUeC1nQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lz dC9zcGdwcm9jLmMgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jICAgICAg IHwgICA4ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jICAgICB8IDIzOCArKysr KysrKysrKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX3NwZ2lz dC5jICB8ICAgMiArLQogc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaCAgICAgICAgICAgfCAxMDcg KysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvdXRpbHMvZ2VvX2RlY2xzLmggICAgICAgfCAgIDQg Ky0KIDYgZmlsZXMgY2hhbmdlZCwgMzIzIGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BncHJvYy5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGdwcm9jLmMKaW5kZXggNjYwMDA5MjkxZGEuLmIzZTBmYmM1 OWJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3Byb2MuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3Byb2MuYwpAQCAtNTEsNyArNTEsNyBAQCBw b2ludF9ib3hfZGlzdGFuY2UoUG9pbnQgKnBvaW50LCBCT1ggKmJveCkKIAllbHNlCiAJCWR5ID0g MC4wOwogCi0JcmV0dXJuIEhZUE9UKGR4LCBkeSk7CisJcmV0dXJuIEhZUE9UKGR4LCBkeSwgTlVM TCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCmluZGV4IDY3NDc1NDRiNjc5Li4wNmIyYjZh ZTI5NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKQEAgLTc3Miw3ICs3NzIsNyBAQCBmbG9hdDhwbChQ R19GVU5DVElPTl9BUkdTKQogCWZsb2F0OAkJYXJnMSA9IFBHX0dFVEFSR19GTE9BVDgoMCk7CiAJ ZmxvYXQ4CQlhcmcyID0gUEdfR0VUQVJHX0ZMT0FUOCgxKTsKIAotCVBHX1JFVFVSTl9GTE9BVDgo ZmxvYXQ4X3BsKGFyZzEsIGFyZzIpKTsKKwlQR19SRVRVUk5fRkxPQVQ4KGZsb2F0OF9wbF9zYWZl KGFyZzEsIGFyZzIsIGZjaW5mby0+Y29udGV4dCkpOwogfQogCiBEYXR1bQpAQCAtNzgxLDcgKzc4 MSw3IEBAIGZsb2F0OG1pKFBHX0ZVTkNUSU9OX0FSR1MpCiAJZmxvYXQ4CQlhcmcxID0gUEdfR0VU QVJHX0ZMT0FUOCgwKTsKIAlmbG9hdDgJCWFyZzIgPSBQR19HRVRBUkdfRkxPQVQ4KDEpOwogCi0J UEdfUkVUVVJOX0ZMT0FUOChmbG9hdDhfbWkoYXJnMSwgYXJnMikpOworCVBHX1JFVFVSTl9GTE9B VDgoZmxvYXQ4X21pX3NhZmUoYXJnMSwgYXJnMiwgZmNpbmZvLT5jb250ZXh0KSk7CiB9CiAKIERh dHVtCkBAIC03OTAsNyArNzkwLDcgQEAgZmxvYXQ4bXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJZmxv YXQ4CQlhcmcxID0gUEdfR0VUQVJHX0ZMT0FUOCgwKTsKIAlmbG9hdDgJCWFyZzIgPSBQR19HRVRB UkdfRkxPQVQ4KDEpOwogCi0JUEdfUkVUVVJOX0ZMT0FUOChmbG9hdDhfbXVsKGFyZzEsIGFyZzIp KTsKKwlQR19SRVRVUk5fRkxPQVQ4KGZsb2F0OF9tdWxfc2FmZShhcmcxLCBhcmcyLCBmY2luZm8t PmNvbnRleHQpKTsKIH0KIAogRGF0dW0KQEAgLTc5OSw3ICs3OTksNyBAQCBmbG9hdDhkaXYoUEdf RlVOQ1RJT05fQVJHUykKIAlmbG9hdDgJCWFyZzEgPSBQR19HRVRBUkdfRkxPQVQ4KDApOwogCWZs b2F0OAkJYXJnMiA9IFBHX0dFVEFSR19GTE9BVDgoMSk7CiAKLQlQR19SRVRVUk5fRkxPQVQ4KGZs b2F0OF9kaXYoYXJnMSwgYXJnMikpOworCVBHX1JFVFVSTl9GTE9BVDgoZmxvYXQ4X2Rpdl9zYWZl KGFyZzEsIGFyZzIsIGZjaW5mby0+Y29udGV4dCkpOwogfQogCiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29w cy5jCmluZGV4IDM3N2ExYjNmM2FkLi5iZDAzMTgwNTg1OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2dlb19vcHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29w cy5jCkBAIC03OCwxMSArNzgsMTQgQEAgZW51bSBwYXRoX2RlbGltCiAvKiBSb3V0aW5lcyBmb3Ig cG9pbnRzICovCiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfY29uc3RydWN0KFBvaW50ICpyZXN1 bHQsIGZsb2F0OCB4LCBmbG9hdDggeSk7CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfYWRkX3Bv aW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGlu ZSBib29sIHBvaW50X2FkZF9wb2ludF9zYWZlKFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBv aW50ICpwdDIsCisJCQkJCQkJCQkJTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBpbmxpbmUgdm9p ZCBwb2ludF9zdWJfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7 CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfbXVsX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50 ICpwdDEsIFBvaW50ICpwdDIpOwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2Rpdl9wb2ludChQ b2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgYm9v bCBwb2ludF9lcV9wb2ludChQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUg ZmxvYXQ4IHBvaW50X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGluZSBi b29sIHBvaW50X2R0X3NhZmUoUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9kZSAqZXNjb250ZXh0 LCBmbG9hdDggKnJlc3VsdCk7CiBzdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9zbChQb2ludCAq cHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbnQJcG9pbnRfaW5zaWRlKFBvaW50ICpwLCBpbnQg bnB0cywgUG9pbnQgKnBsaXN0KTsKIApAQCAtMTA5LDYgKzExMiw3IEBAIHN0YXRpYyBmbG9hdDgg bHNlZ19jbG9zZXB0X2xzZWcoUG9pbnQgKnJlc3VsdCwgTFNFRyAqb25fbHNlZywgTFNFRyAqdG9f bHNlZyk7CiAvKiBSb3V0aW5lcyBmb3IgYm94ZXMgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBib3hf Y29uc3RydWN0KEJPWCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyB2 b2lkIGJveF9jbihQb2ludCAqY2VudGVyLCBCT1ggKmJveCk7CitzdGF0aWMgYm9vbCBib3hfY25f c2FmZShQb2ludCAqY2VudGVyLCBCT1ggKmJveCwgTm9kZSogZXNjb250ZXh0KTsKIHN0YXRpYyBi b29sIGJveF9vdihCT1ggKmJveDEsIEJPWCAqYm94Mik7CiBzdGF0aWMgZmxvYXQ4IGJveF9hcihC T1ggKmJveCk7CiBzdGF0aWMgZmxvYXQ4IGJveF9odChCT1ggKmJveCk7CkBAIC0xMjUsNyArMTI5 LDcgQEAgc3RhdGljIGZsb2F0OCBjaXJjbGVfYXIoQ0lSQ0xFICpjaXJjbGUpOwogCiAvKiBSb3V0 aW5lcyBmb3IgcG9seWdvbnMgKi8KIHN0YXRpYyB2b2lkIG1ha2VfYm91bmRfYm94KFBPTFlHT04g KnBvbHkpOwotc3RhdGljIHZvaWQgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlH T04gKnBvbHkpOworc3RhdGljIGJvb2wgcG9seV90b19jaXJjbGVfc2FmZShDSVJDTEUgKnJlc3Vs dCwgUE9MWUdPTiAqcG9seSwgTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBib29sIGxzZWdfaW5z aWRlX3BvbHkoUG9pbnQgKmEsIFBvaW50ICpiLCBQT0xZR09OICpwb2x5LCBpbnQgc3RhcnQpOwog c3RhdGljIGJvb2wgcG9seV9jb250YWluX3BvbHkoUE9MWUdPTiAqY29udGFpbnNfcG9seSwgUE9M WUdPTiAqY29udGFpbmVkX3BvbHkpOwogc3RhdGljIGJvb2wgcGxpc3Rfc2FtZShpbnQgbnB0cywg UG9pbnQgKnAxLCBQb2ludCAqcDIpOwpAQCAtODUxLDcgKzg1NSw4IEBAIGJveF9jZW50ZXIoUEdf RlVOQ1RJT05fQVJHUykKIAlCT1gJCSAgICpib3ggPSBQR19HRVRBUkdfQk9YX1AoMCk7CiAJUG9p bnQJICAgKnJlc3VsdCA9IChQb2ludCAqKSBwYWxsb2Moc2l6ZW9mKFBvaW50KSk7CiAKLQlib3hf Y24ocmVzdWx0LCBib3gpOworCWlmICghYm94X2NuX3NhZmUocmVzdWx0LCBib3gsIGZjaW5mby0+ Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1 bHQpOwogfQpAQCAtODc1LDYgKzg4MCwzMSBAQCBib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpi b3gpCiAJY2VudGVyLT55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLnksIGJveC0+ bG93LnkpLCAyLjApOwogfQogCisvKiBzYWZlIHZlcnNpb24gb2YgYm94X2NuICovCitzdGF0aWMg Ym9vbAorYm94X2NuX3NhZmUoUG9pbnQgKmNlbnRlciwgQk9YICpib3gsIE5vZGUqIGVzY29udGV4 dCkKK3sKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJeCA9IGZsb2F0OF9wbF9zYWZlKGJv eC0+aGlnaC54LCBib3gtPmxvdy54LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCWNlbnRlci0+eCA9IGZsb2F0OF9k aXZfc2FmZSh4LCAyLjAsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJeSA9IGZsb2F0OF9wbF9zYWZlKGJveC0+aGln aC55LCBib3gtPmxvdy55LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVz Y29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCWNlbnRlci0+eSA9IGZsb2F0OF9kaXZfc2Fm ZSh5LCAyLjAsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0 KSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7Cit9CiAKIC8qCQlib3hfd2QJLQkJ cmV0dXJucyB0aGUgd2lkdGggKGxlbmd0aCkgb2YgdGhlIGJveAogICoJCQkJCQkJCSAgKGhvcml6 b250YWwgbWFnbml0dWRlKS4KQEAgLTEyNzYsNyArMTMwNiw3IEBAIGxpbmVfZGlzdGFuY2UoUEdf RlVOQ1RJT05fQVJHUykKIAogCVBHX1JFVFVSTl9GTE9BVDgoZmxvYXQ4X2RpdihmYWJzKGZsb2F0 OF9taShsMS0+QywKIAkJCQkJCQkJCQkJICAgZmxvYXQ4X211bChyYXRpbywgbDItPkMpKSksCi0J CQkJCQkJCUhZUE9UKGwxLT5BLCBsMS0+QikpKTsKKwkJCQkJCQkJSFlQT1QobDEtPkEsIGwxLT5C LCBOVUxMKSkpOwogfQogCiAvKiBsaW5lX2ludGVycHQoKQpAQCAtMjAwMSw5ICsyMDMxLDM0IEBA IHBvaW50X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiBzdGF0aWMgaW5saW5lIGZsb2F0OAog cG9pbnRfZHQoUG9pbnQgKnB0MSwgUG9pbnQgKnB0MikKIHsKLQlyZXR1cm4gSFlQT1QoZmxvYXQ4 X21pKHB0MS0+eCwgcHQyLT54KSwgZmxvYXQ4X21pKHB0MS0+eSwgcHQyLT55KSk7CisJcmV0dXJu IEhZUE9UKGZsb2F0OF9taShwdDEtPngsIHB0Mi0+eCksIGZsb2F0OF9taShwdDEtPnksIHB0Mi0+ eSksIE5VTEwpOwogfQogCisvKiBlcnJyb3Igc2FmZSB2ZXJzaW9uIG9mIHBvaW50X2R0ICovCitz dGF0aWMgaW5saW5lIGJvb2wKK3BvaW50X2R0X3NhZmUoUG9pbnQgKnB0MSwgUG9pbnQgKnB0Miwg Tm9kZSAqZXNjb250ZXh0LCBmbG9hdDggKnJlc3VsdCkKK3sKKwlmbG9hdDgJCXg7CisJZmxvYXQ4 CQl5OworCisJQXNzZXJ0KHJlc3VsdCAhPSBOVUxMKTsKKworCXggPSBmbG9hdDhfbWlfc2FmZShw dDEtPngsIHB0Mi0+eCwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2Nv bnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwl5ICA9IGZsb2F0OF9taV9zYWZlKHB0MS0+eSwg cHQyLT55LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkp CisJCXJldHVybiBmYWxzZTsKKworCSpyZXN1bHQgPSBIWVBPVCh4LCB5LCBlc2NvbnRleHQpOwor CWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKwor CXJldHVybiB0cnVlOworfQorCisKIERhdHVtCiBwb2ludF9zbG9wZShQR19GVU5DVElPTl9BUkdT KQogewpAQCAtMjMxNywxMyArMjM3MiwzMSBAQCBsc2VnX2NlbnRlcihQR19GVU5DVElPTl9BUkdT KQogewogCUxTRUcJICAgKmxzZWcgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCVBvaW50CSAgICpy ZXN1bHQ7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCXJlc3VsdCA9IChQb2ludCAqKSBw YWxsb2Moc2l6ZW9mKFBvaW50KSk7CiAKLQlyZXN1bHQtPnggPSBmbG9hdDhfZGl2KGZsb2F0OF9w bChsc2VnLT5wWzBdLngsIGxzZWctPnBbMV0ueCksIDIuMCk7Ci0JcmVzdWx0LT55ID0gZmxvYXQ4 X2RpdihmbG9hdDhfcGwobHNlZy0+cFswXS55LCBsc2VnLT5wWzFdLnkpLCAyLjApOworCXggPSBm bG9hdDhfcGxfc2FmZShsc2VnLT5wWzBdLngsIGxzZWctPnBbMV0ueCwgZmNpbmZvLT5jb250ZXh0 KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZh aWw7CisKKwlyZXN1bHQtPnggPSBmbG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBmY2luZm8tPmNvbnRl eHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8g ZmFpbDsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShsc2VnLT5wWzBdLnksIGxzZWctPnBbMV0ueSwg ZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRl eHQpKQorCQlnb3RvIGZhaWw7CisKKwlyZXN1bHQtPnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4w LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29u dGV4dCkpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7CisKK2Zh aWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0KIAogCkBAIC00MTE1LDYgKzQxODgsMjcgQEAgcG9p bnRfYWRkX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpCiAJCQkJ CWZsb2F0OF9wbChwdDEtPnksIHB0Mi0+eSkpOwogfQogCisvKiBlcnJvciBzYWZlIHZlcnNpb24g b2YgcG9pbnRfYWRkX3BvaW50ICovCitzdGF0aWMgaW5saW5lIGJvb2wKK3BvaW50X2FkZF9wb2lu dF9zYWZlKFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIsCisJCQkJCSBOb2Rl ICplc2NvbnRleHQpCit7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKKworCXggPSBmbG9hdDhf cGxfc2FmZShwdDEtPngsIHB0Mi0+eCwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NV UlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwl5ID0gZmxvYXQ4X3BsX3NhZmUo cHQxLT55LCBwdDItPnksIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJcG9pbnRfY29uc3RydWN0KHJlc3VsdCwgeCwg eSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwogRGF0dW0KIHBvaW50X2FkZChQR19GVU5DVElPTl9B UkdTKQogewpAQCAtNDQ1OCwxMCArNDU1MiwxNCBAQCBwYXRoX3BvbHkoUEdfRlVOQ1RJT05fQVJH UykKIAogCS8qIFRoaXMgaXMgbm90IHZlcnkgY29uc2lzdGVudCAtLS0gb3RoZXIgc2ltaWxhciBj YXNlcyByZXR1cm4gTlVMTCAuLi4gKi8KIAlpZiAoIXBhdGgtPmNsb3NlZCkKLQkJZXJlcG9ydChF UlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCSBlcnJtc2coIm9wZW4gcGF0aCBjYW5u b3QgYmUgY29udmVydGVkIHRvIHBvbHlnb24iKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJ fQorCiAJLyoKIAkgKiBOZXZlciBvdmVyZmxvd3M6IHRoZSBvbGQgc2l6ZSBmaXQgaW4gTWF4QWxs b2NTaXplLCBhbmQgdGhlIG5ldyBzaXplIGlzCiAJICoganVzdCBhIHNtYWxsIGNvbnN0YW50IGxh cmdlci4KQEAgLTQ1MDgsNyArNDYwNiw5IEBAIHBvbHlfY2VudGVyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAKIAlyZXN1bHQgPSAoUG9pbnQgKikgcGFsbG9jKHNpemVvZihQb2ludCkpOwogCi0JcG9seV90 b19jaXJjbGUoJmNpcmNsZSwgcG9seSk7CisJaWYgKCFwb2x5X3RvX2NpcmNsZV9zYWZlKCZjaXJj bGUsIHBvbHksIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKIAkqcmVz dWx0ID0gY2lyY2xlLmNlbnRlcjsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7CkBAIC01 MDA1LDcgKzUxMDUsNyBAQCBjaXJjbGVfbXVsX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0 ID0gKENJUkNMRSAqKSBwYWxsb2Moc2l6ZW9mKENJUkNMRSkpOwogCiAJcG9pbnRfbXVsX3BvaW50 KCZyZXN1bHQtPmNlbnRlciwgJmNpcmNsZS0+Y2VudGVyLCBwb2ludCk7Ci0JcmVzdWx0LT5yYWRp dXMgPSBmbG9hdDhfbXVsKGNpcmNsZS0+cmFkaXVzLCBIWVBPVChwb2ludC0+eCwgcG9pbnQtPnkp KTsKKwlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9tdWwoY2lyY2xlLT5yYWRpdXMsIEhZUE9UKHBv aW50LT54LCBwb2ludC0+eSwgTlVMTCkpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3VsdCk7 CiB9CkBAIC01MDIwLDcgKzUxMjAsNyBAQCBjaXJjbGVfZGl2X3B0KFBHX0ZVTkNUSU9OX0FSR1Mp CiAJcmVzdWx0ID0gKENJUkNMRSAqKSBwYWxsb2Moc2l6ZW9mKENJUkNMRSkpOwogCiAJcG9pbnRf ZGl2X3BvaW50KCZyZXN1bHQtPmNlbnRlciwgJmNpcmNsZS0+Y2VudGVyLCBwb2ludCk7Ci0JcmVz dWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KGNpcmNsZS0+cmFkaXVzLCBIWVBPVChwb2ludC0+eCwg cG9pbnQtPnkpKTsKKwlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9kaXYoY2lyY2xlLT5yYWRpdXMs IEhZUE9UKHBvaW50LT54LCBwb2ludC0+eSwgTlVMTCkpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9Q KHJlc3VsdCk7CiB9CkBAIC01MTkxLDE0ICs1MjkxLDMwIEBAIGNpcmNsZV9ib3goUEdfRlVOQ1RJ T05fQVJHUykKIAogCWJveCA9IChCT1ggKikgcGFsbG9jKHNpemVvZihCT1gpKTsKIAotCWRlbHRh ID0gZmxvYXQ4X2RpdihjaXJjbGUtPnJhZGl1cywgc3FydCgyLjApKTsKKwlkZWx0YSA9IGZsb2F0 OF9kaXZfc2FmZShjaXJjbGUtPnJhZGl1cywgc3FydCgyLjApLCBmY2luZm8tPmNvbnRleHQpOwor CWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsK IAotCWJveC0+aGlnaC54ID0gZmxvYXQ4X3BsKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQli b3gtPmxvdy54ID0gZmxvYXQ4X21pKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmhp Z2gueSA9IGZsb2F0OF9wbChjaXJjbGUtPmNlbnRlci55LCBkZWx0YSk7Ci0JYm94LT5sb3cueSA9 IGZsb2F0OF9taShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSk7CisJYm94LT5oaWdoLnggPSBmbG9h dDhfcGxfc2FmZShjaXJjbGUtPmNlbnRlci54LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlp ZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisK Kwlib3gtPmxvdy54ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueCwgZGVsdGEsIGZj aW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0 KSkKKwkJZ290byBmYWlsOworCisJYm94LT5oaWdoLnkgPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUt PmNlbnRlci55LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NV UlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy55ID0gZmxv YXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueSwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwog CiAJUEdfUkVUVVJOX0JPWF9QKGJveCk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0K IAogLyogYm94X2NpcmNsZSgpCkBAIC01MjA5LDE1ICs1MzI1LDM1IEBAIGJveF9jaXJjbGUoUEdf RlVOQ1RJT05fQVJHUykKIHsKIAlCT1gJCSAgICpib3ggPSBQR19HRVRBUkdfQk9YX1AoMCk7CiAJ Q0lSQ0xFCSAgICpjaXJjbGU7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCWNpcmNsZSA9 IChDSVJDTEUgKikgcGFsbG9jKHNpemVvZihDSVJDTEUpKTsKIAotCWNpcmNsZS0+Y2VudGVyLngg PSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueCwgYm94LT5sb3cueCksIDIuMCk7Ci0J Y2lyY2xlLT5jZW50ZXIueSA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC55LCBib3gt Pmxvdy55KSwgMi4wKTsKKwl4ID0gZmxvYXQ4X3BsX3NhZmUoYm94LT5oaWdoLngsIGJveC0+bG93 LngsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5j b250ZXh0KSkKKwkJZ290byBmYWlsOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBwb2ludF9kdCgmY2ly Y2xlLT5jZW50ZXIsICZib3gtPmhpZ2gpOworCWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2 X3NhZmUoeCwgMi4wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVE KGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShi b3gtPmhpZ2gueSwgYm94LT5sb3cueSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwljaXJjbGUtPmNl bnRlci55ID0gZmxvYXQ4X2Rpdl9zYWZlKHksIDIuMCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlp ZiAoIXBvaW50X2R0X3NhZmUoJmNpcmNsZS0+Y2VudGVyLCAmYm94LT5oaWdoLCBmY2luZm8tPmNv bnRleHQsCisJCQkJCSAgICZjaXJjbGUtPnJhZGl1cykpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JF VFVSTl9DSVJDTEVfUChjaXJjbGUpOworCitmYWlsOgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAK IApAQCAtNTI4MSwxMCArNTQxNywxMSBAQCBjaXJjbGVfcG9seShQR19GVU5DVElPTl9BUkdTKQog ICogWFhYIFRoaXMgYWxnb3JpdGhtIHNob3VsZCB1c2Ugd2VpZ2h0ZWQgbWVhbnMgb2YgbGluZSBz ZWdtZW50cwogICoJcmF0aGVyIHRoYW4gc3RyYWlnaHQgYXZlcmFnZSB2YWx1ZXMgb2YgcG9pbnRz IC0gdGdsIDk3LzAxLzIxLgogICovCi1zdGF0aWMgdm9pZAotcG9seV90b19jaXJjbGUoQ0lSQ0xF ICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCitzdGF0aWMgYm9vbAorcG9seV90b19jaXJjbGVfc2Fm ZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAqcG9seSwgTm9kZSAqZXNjb250ZXh0KQogewogCWlu dAkJCWk7CisJZmxvYXQ4CQl4OwogCiAJQXNzZXJ0KHBvbHktPm5wdHMgPiAwKTsKIApAQCAtNTI5 MywxNCArNTQzMCw0MSBAQCBwb2x5X3RvX2NpcmNsZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAq cG9seSkKIAlyZXN1bHQtPnJhZGl1cyA9IDA7CiAKIAlmb3IgKGkgPSAwOyBpIDwgcG9seS0+bnB0 czsgaSsrKQotCQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmcmVzdWx0LT5jZW50 ZXIsICZwb2x5LT5wW2ldKTsKLQlyZXN1bHQtPmNlbnRlci54ID0gZmxvYXQ4X2RpdihyZXN1bHQt PmNlbnRlci54LCBwb2x5LT5ucHRzKTsKLQlyZXN1bHQtPmNlbnRlci55ID0gZmxvYXQ4X2Rpdihy ZXN1bHQtPmNlbnRlci55LCBwb2x5LT5ucHRzKTsKKwl7CisJCWlmICghcG9pbnRfYWRkX3BvaW50 X3NhZmUoJnJlc3VsdC0+Y2VudGVyLAorCQkJCQkJCQkgICZyZXN1bHQtPmNlbnRlciwKKwkJCQkJ CQkJICAmcG9seS0+cFtpXSwKKwkJCQkJCQkJICBlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZhbHNl OworCX0KKworCXJlc3VsdC0+Y2VudGVyLnggPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50 ZXIueCwKKwkJCQkJCQkJCSAgIHBvbHktPm5wdHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQpOwor CWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKwor CXJlc3VsdC0+Y2VudGVyLnkgPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50ZXIueSwKKwkJ CQkJCQkJCSAgIHBvbHktPm5wdHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQpOworCWlmIChTT0ZU X0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKIAogCWZvciAoaSA9 IDA7IGkgPCBwb2x5LT5ucHRzOyBpKyspCi0JCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsKHJl c3VsdC0+cmFkaXVzLAotCQkJCQkJCQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+ Y2VudGVyKSk7Ci0JcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KHJlc3VsdC0+cmFkaXVzLCBw b2x5LT5ucHRzKTsKKwl7CisJCWlmICghcG9pbnRfZHRfc2FmZSgmcG9seS0+cFtpXSwgJnJlc3Vs dC0+Y2VudGVyLCBlc2NvbnRleHQsICZ4KSkKKwkJCXJldHVybiBmYWxzZTsKKworCQlyZXN1bHQt PnJhZGl1cyA9IGZsb2F0OF9wbF9zYWZlKHJlc3VsdC0+cmFkaXVzLCB4LCBlc2NvbnRleHQpOwor CQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZhbHNlOwor CX0KKworCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X2Rpdl9zYWZlKHJlc3VsdC0+cmFkaXVzLCBw b2x5LT5ucHRzLCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4 dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOwogfQogCiBEYXR1bQpAQCAtNTMx MSw3ICs1NDc1LDggQEAgcG9seV9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9 IChDSVJDTEUgKikgcGFsbG9jKHNpemVvZihDSVJDTEUpKTsKIAotCXBvbHlfdG9fY2lyY2xlKHJl c3VsdCwgcG9seSk7CisJaWYgKCFwb2x5X3RvX2NpcmNsZV9zYWZlKHJlc3VsdCwgcG9seSwgZmNp bmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9DSVJDTEVf UChyZXN1bHQpOwogfQpAQCAtNTUxNiw3ICs1NjgxLDcgQEAgcGxpc3Rfc2FtZShpbnQgbnB0cywg UG9pbnQgKnAxLCBQb2ludCAqcDIpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIGZsb2F0OAotcGdf aHlwb3QoZmxvYXQ4IHgsIGZsb2F0OCB5KQorcGdfaHlwb3QoZmxvYXQ4IHgsIGZsb2F0OCB5LCBO b2RlICplc2NvbnRleHQpCiB7CiAJZmxvYXQ4CQl5eCwKIAkJCQlyZXN1bHQ7CkBAIC01NTU0LDkg KzU3MTksMjIgQEAgcGdfaHlwb3QoZmxvYXQ4IHgsIGZsb2F0OCB5KQogCXJlc3VsdCA9IHggKiBz cXJ0KDEuMCArICh5eCAqIHl4KSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0J CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJeworCQllcnJzYXZlKGVzY29udGV4dCwKKwkJCWVy cmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQllcnJtc2coInZh bHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKKwkJcmVzdWx0ID0gMC4wOworCX0KKwog CWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7 CisJeworCQllcnJzYXZlKGVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19W QUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiB1bmRl cmZsb3ciKSk7CisKKwkJcmVzdWx0ID0gMC4wOworCX0KIAogCXJldHVybiByZXN1bHQ7CiB9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX3NwZ2lzdC5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2dlb19zcGdpc3QuYwppbmRleCBmZWMzM2U5NTM3Mi4uZmZmZmQzY2QyZGUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fc3BnaXN0LmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2dlb19zcGdpc3QuYwpAQCAtMzkwLDcgKzM5MCw3IEBAIHBvaW50 VG9SZWN0Qm94RGlzdGFuY2UoUG9pbnQgKnBvaW50LCBSZWN0Qm94ICpyZWN0X2JveCkKIAllbHNl CiAJCWR5ID0gMDsKIAotCXJldHVybiBIWVBPVChkeCwgZHkpOworCXJldHVybiBIWVBPVChkeCwg ZHksIE5VTEwpOwogfQogCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2Zsb2F0Lmgg Yi9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oCmluZGV4IGZjMmE5Y2Y2NDc1Li41YTcwMzNmMmE2 MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaAorKysgYi9zcmMvaW5jbHVk ZS91dGlscy9mbG9hdC5oCkBAIC0xMDksNiArMTA5LDI0IEBAIGZsb2F0NF9wbChjb25zdCBmbG9h dDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyogZXJy b3Igc2FmZSB2ZXJzaW9uIG9mIGZsb2F0OF9wbCAqLworc3RhdGljIGlubGluZSBmbG9hdDgKK2Zs b2F0OF9wbF9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0 IE5vZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCXJlc3VsdCA9IHZhbDEg KyB2YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYg IWlzaW5mKHZhbDIpKQorCXsKKwkJZXJyc2F2ZShlc2NvbnRleHQsCisJCQkJZXJyY29kZShFUlJD T0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQllcnJtc2coInZhbHVlIG91dCBv ZiByYW5nZTogb3ZlcmZsb3ciKSk7CisJCXJlc3VsdCA9IDAuMGY7CisJfQorCisJcmV0dXJuIHJl c3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdDgKIGZsb2F0OF9wbChjb25zdCBmbG9hdDgg dmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiB7CkBAIC0xMzMsNiArMTUxLDI0IEBAIGZsb2F0NF9t aShjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJcmV0dXJuIHJlc3VsdDsK IH0KIAorLyogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIGZsb2F0OF9taSAqLworc3RhdGljIGlubGlu ZSBmbG9hdDgKK2Zsb2F0OF9taV9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDgg dmFsMiwgc3RydWN0IE5vZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCXJl c3VsdCA9IHZhbDEgLSB2YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNp bmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQorCXsKKwkJZXJyc2F2ZShlc2NvbnRleHQsCisJCQkJ ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQllcnJtc2co InZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisJCXJlc3VsdCAgPSAwLjBmOworCX0K KworCXJldHVybiByZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4CiBmbG9hdDhfbWko Y29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQogewpAQCAtMTU5LDYgKzE5NSwz NiBAQCBmbG9hdDRfbXVsKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAly ZXR1cm4gcmVzdWx0OwogfQogCisvKiBlcnJvciBzYWZlIHZlcnNpb24gb2YgZmxvYXQ4X211bCAq Lworc3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0OF9tdWxfc2FmZShjb25zdCBmbG9hdDggdmFs MSwgY29uc3QgZmxvYXQ4IHZhbDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCit7CisJZmxvYXQ4 CQlyZXN1bHQ7CisKKwlyZXN1bHQgPSB2YWwxICogdmFsMjsKKwlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKKwl7CisJCWVycnNhdmUo ZXNjb250ZXh0LAorCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5H RSksCisJCQkJZXJybXNnKCJ2YWx1ZSBvdXQgb2YgcmFuZ2U6IG92ZXJmbG93IikpOworCisJCXJl c3VsdCA9IDAuMDsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisKKwlpZiAodW5saWtlbHkocmVzdWx0 ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgdmFsMiAhPSAwLjApCisJeworCQllcnJzYXZlKGVz Y29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ciKSk7CisKKwkJcmVz dWx0ID0gMC4wOworCQlyZXR1cm4gcmVzdWx0OworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisK IHN0YXRpYyBpbmxpbmUgZmxvYXQ4CiBmbG9hdDhfbXVsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25z dCBmbG9hdDggdmFsMikKIHsKQEAgLTE4OSw2ICsyNTUsNDcgQEAgZmxvYXQ0X2Rpdihjb25zdCBm bG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyog ZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIGZsb2F0OF9kaXYgKi8KK3N0YXRpYyBpbmxpbmUgZmxvYXQ4 CitmbG9hdDhfZGl2X3NhZmUoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBz dHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJcmVzdWx0OworCisJaWYgKHVubGlr ZWx5KHZhbDIgPT0gMC4wKSAmJiAhaXNuYW4odmFsMSkpCisJeworCQllcnJzYXZlKGVzY29udGV4 dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfRElWSVNJT05fQllfWkVSTyksCisJCQkJZXJybXNnKCJk aXZpc2lvbiBieSB6ZXJvIikpOworCisJCXJlc3VsdCA9IDAuMDsKKwkJcmV0dXJuIHJlc3VsdDsK Kwl9CisKKwlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKKworCWlmICh1bmxpa2VseShpc2luZihyZXN1 bHQpKSAmJiAhaXNpbmYodmFsMSkpCisJeworCQllcnJzYXZlKGVzY29udGV4dCwKKwkJCQllcnJj b2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJCWVycm1zZygidmFs dWUgb3V0IG9mIHJhbmdlOiBvdmVyZmxvdyIpKTsKKworCQlyZXN1bHQgPSAwLjA7CisJCXJldHVy biByZXN1bHQ7CisJfQorCisJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYmIHZhbDEgIT0g MC4wICYmICFpc2luZih2YWwyKSkKKwl7CisJCWVycnNhdmUoZXNjb250ZXh0LAorCQkJCWVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1 ZSBvdXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKKworCQlyZXN1bHQgPSAwLjA7CisJCXJldHVy biByZXN1bHQ7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9h dDgKIGZsb2F0OF9kaXYoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQogewpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZ2VvX2RlY2xzLmggYi9zcmMvaW5jbHVkZS91 dGlscy9nZW9fZGVjbHMuaAppbmRleCA4YTlkZjc1YzkzYy4uMDA1NmEyNjYzOWYgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3V0aWxzL2dlb19kZWNscy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L2dlb19kZWNscy5oCkBAIC04OCw3ICs4OCw3IEBAIEZQZ2UoZG91YmxlIEEsIGRvdWJsZSBCKQog I2RlZmluZSBGUGdlKEEsQikJCQkJKChBKSA+PSAoQikpCiAjZW5kaWYKIAotI2RlZmluZSBIWVBP VChBLCBCKQkJCQlwZ19oeXBvdChBLCBCKQorI2RlZmluZSBIWVBPVChBLCBCLCBlc2NvbnRleHQp CQkJCXBnX2h5cG90KEEsIEIsIGVzY29udGV4dCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBvaW50 IC0gKHgseSkKQEAgLTI4MCw2ICsyODAsNiBAQCBDaXJjbGVQR2V0RGF0dW0oY29uc3QgQ0lSQ0xF ICpYKQogICogaW4gZ2VvX29wcy5jCiAgKi8KIAotZXh0ZXJuIGZsb2F0OCBwZ19oeXBvdChmbG9h dDggeCwgZmxvYXQ4IHkpOworZXh0ZXJuIGZsb2F0OCBwZ19oeXBvdChmbG9hdDggeCwgZmxvYXQ4 IHksIE5vZGUgKmVzY29udGV4dCk7CiAKICNlbmRpZgkJCQkJCQkvKiBHRU9fREVDTFNfSCAqLwot LSAKMi4zNC4xCgo= --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3dm5 RnJvbSBlZmU3ZWMwYmM0NGUxNjM5OWY4MGEwZmE0NTdjMTY4ZjNhMTA5MzY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0MzoyOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MTQvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgaW50ZXJ2YWwgdG8gb3RoZXIgdHlwZXMgcGVy 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== --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3dp7 RnJvbSA2NTkyOWJmZjI5NTE5YWVlMjkzNWExNmEzOTNiYmE0ZGY3Yzc0ZDUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0MTo1NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MTIvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZmxvYXQ4IHRvIG90aGVyIHR5cGVzIHBlcgog 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 --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3do6 RnJvbSA1MjE0NWY0ZWQyMjAyMWQ1ZWFiOTU4ODZiMjQ2MDc2NDI1YmQwMzgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0Mjo1MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MTMvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZGF0ZSB0byBvdGhlciB0eXBlcyBwZXIKIHBn 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= --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3dr8 RnJvbSBkYmI0NGRmMTAzYTgyMWJmOTc2OTU0OTQ0N2VlOTgzMTM4MDNhMWY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODozMzo1NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MTEvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZmxvYXQ0IHRvIG90aGVyIHR5cGVzIHBlcgog 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= --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3ds9 RnJvbSA4MjI5YjIyZDY3NGI1MWU0ZTQyYzlkZTBhYmI1OWJhMTIzODU3NTk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAyMTo1NzozMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MTAvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgbnVtZXJpYyB0byBvdGhlciB0eXBlcyBwZXIK 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== --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3dt10 RnJvbSAzMjVhODZjNzJjNDUzNTYxNGFhOTFmNzRkOGNkYTU0MmUwYjZjM2JlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNjozODozNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MDkvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgYmlnaW50IHRvIG90aGVyIHR5cGVzIHBlcgog 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 --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3du11 RnJvbSA2ZGI3YmE5OTE2YmFmOTc1ZDJhMWM4OTVjYmRiODlhYzkxOGJiYzhlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNjowNDowNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MDgvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgaW50ZWdlciB0byBvdGhlciB0eXBlcyBwZXIK 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== --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_ca.patch" Content-Disposition: attachment; filename="v9-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_ca.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3dx14 RnJvbSBhYWJmMzkzMmEyYWU0YTdiNjY0NmFiNWRlMTliOTg1MjIzMDNkZDliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOToxNzowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MDUvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgY2hhcmFjdGVyIHZhcnlpbmcgdG8gb3RoZXIK 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 --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3dv12 RnJvbSBjZTE5MDg4NzQ4MTkwNDQzNjFmMTZjODk3NmUxZDg4MzIzMmZjMjY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOToxMjoxMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MDcvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgbWFjYWRkcjggdG8gb3RoZXIgdHlwZXMgcGVy 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== --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3dw13 RnJvbSA2N2MwNjYwOWI0ZDU2NWU4ZWJiMzVjODU1ZGIwNDQ2MmQ0NTM2YTUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTo1NTo1NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MDYvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgaW5ldCB0byBvdGhlciB0eXBlcyBwZXIKIHBn 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= --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3dy15 RnJvbSAxNTg4NmM1ZmE2YjllZjU3ZTE1NTc3NGY4MTc5ZjU0MWZlZDk4NDNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTo0OTo0NiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MDQvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgdGV4dCB0byBvdGhlciB0eXBlcyBwZXIKIHBn 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 ZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKaW5kZXggOGQ3MzU3ODZlNTEuLjVlMjY3NmY3MTgwIDEw 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== --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3e017 RnJvbSA1ZjdmYTg4YjllNDRiN2RjNjg0YTQ5ODk0NzFjMjdkMDAxNzE5MGE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOTowOTo1MyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MDIvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgYml0L3ZhcmJpdCB0byBvdGhlciB0eXBlcyBw 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 --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3dz16 RnJvbSBhZDU1NmQxNDVjZjMzYTNlN2E5ZTZjYmI1NTcyYjIyMjhiMTkzOGJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMyBOb3YgMjAyNSAxMTo1ODo0NiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MDMvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgY2hhcmFjdGVyIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0nY2hhcmFjdGVy Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAg ICBjYXN0dGFyZ2V0ICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwg ICBwcm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0KIGNoYXJhY3RlciAgfCB0ZXh0ICAgICAgICAgICAgICB8ICAgICAgNDAxIHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgcnRyaW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgY2hhcmFj dGVyIHZhcnlpbmcgfCAgICAgIDQwMSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHJ0cmlt MSAgICAgIHwgdGV4dAogY2hhcmFjdGVyICB8ICJjaGFyIiAgICAgICAgICAgIHwgICAgICA5NDQg fCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X2NoYXIgICB8IGNoYXIKIGNoYXJhY3Rl ciAgfCBuYW1lICAgICAgICAgICAgICB8ICAgICAgNDA5IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgYnBjaGFyX25hbWUgfCBuYW1lCiBjaGFyYWN0ZXIgIHwgeG1sICAgICAgICAgICAgICAg fCAgICAgMjg5NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHR0b3htbCAgIHwgeG1s CiBjaGFyYWN0ZXIgIHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDY2OCB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGJwY2hhciAgICAgIHwgYnBjaGFyCig2IHJvd3MpCgpvbmx5IHRleHR0 b3htbCwgYnBjaGFyKFBHX0ZVTkNUSU9OX0FSR1MpIG5lZWQgdGFrZSBjYXJlIG9mIGVycm9yIGhh bmRsaW5nLgpvdGhlciBmdW5jdGlvbnMgYWxyZWFkeSBlcnJvciBzYWZlLgoKZGlzY3Vzc2lvbjog aHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpa dTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwckludGVycC5jIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMg ICAgICAgfCAgNiArKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYyAgICAgICAgICAg fCAxNyArKysrKysrKysrKystLS0tLQogc3JjL2luY2x1ZGUvdXRpbHMveG1sLmggICAgICAgICAg ICAgICB8ICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAu YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggMGUxYTc0OTc2 ZjcuLjY3ZjRlMDBlYWM0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhw ckludGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAg LTQ1NDIsNyArNDU0Miw3IEBAIEV4ZWNFdmFsWG1sRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHBy RXZhbFN0ZXAgKm9wKQogCiAJCQkJKm9wLT5yZXN2YWx1ZSA9IFBvaW50ZXJHZXREYXR1bSh4bWxw YXJzZShkYXRhLAogCQkJCQkJCQkJCQkJCQkgeGV4cHItPnhtbG9wdGlvbiwKLQkJCQkJCQkJCQkJ CQkJIHByZXNlcnZlX3doaXRlc3BhY2UpKTsKKwkJCQkJCQkJCQkJCQkJIHByZXNlcnZlX3doaXRl c3BhY2UsIE5VTEwpKTsKIAkJCQkqb3AtPnJlc251bGwgPSBmYWxzZTsKIAkJCX0KIAkJCWJyZWFr OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKaW5kZXggM2Y0MGM5ZGExYTAuLmE5NWU0YmQwOTRlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKQEAgLTMwNywxMCArMzA3LDE0IEBAIGJwY2hhcihQR19G VU5DVElPTl9BUkdTKQogCQl7CiAJCQlmb3IgKGkgPSBtYXhtYmxlbjsgaSA8IGxlbjsgaSsrKQog CQkJCWlmIChzW2ldICE9ICcgJykKLQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQl7CisJCQkJCWVy cnNhdmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RB VEFfUklHSFRfVFJVTkNBVElPTiksCiAJCQkJCQkJIGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9y IHR5cGUgY2hhcmFjdGVyKCVkKSIsCiAJCQkJCQkJCQltYXhsZW4pKSk7CisKKwkJCQkJUEdfUkVU VVJOX05VTEwoKTsKKwkJCQl9CiAJCX0KIAogCQlsZW4gPSBtYXhtYmxlbjsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwu YwppbmRleCAzNWM5MTU1NzNhMS4uNDcyM2QxMzkyOGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC94bWwuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMKQEAgLTY1 OSw3ICs2NTksNyBAQCB0ZXh0dG94bWwoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAl0ZXh0CSAgICpk YXRhID0gUEdfR0VUQVJHX1RFWFRfUFAoMCk7CiAKLQlQR19SRVRVUk5fWE1MX1AoeG1scGFyc2Uo ZGF0YSwgeG1sb3B0aW9uLCB0cnVlKSk7CisJUEdfUkVUVVJOX1hNTF9QKHhtbHBhcnNlKGRhdGEs IHhtbG9wdGlvbiwgdHJ1ZSwgZmNpbmZvLT5jb250ZXh0KSk7CiB9CiAKIApAQCAtMTAyOCwxOCAr MTAyOCwyNSBAQCB4bWxlbGVtZW50KFhtbEV4cHIgKnhleHByLAogCiAKIHhtbHR5cGUgKgoteG1s cGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxvcHRpb25fYXJnLCBib29sIHByZXNl cnZlX3doaXRlc3BhY2UpCit4bWxwYXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9w dGlvbl9hcmcsIGJvb2wgcHJlc2VydmVfd2hpdGVzcGFjZSwgTm9kZSAqZXNjb250ZXh0KQogewog I2lmZGVmIFVTRV9MSUJYTUwKIAl4bWxEb2NQdHIJZG9jOwogCiAJZG9jID0geG1sX3BhcnNlKGRh dGEsIHhtbG9wdGlvbl9hcmcsIHByZXNlcnZlX3doaXRlc3BhY2UsCi0JCQkJCUdldERhdGFiYXNl RW5jb2RpbmcoKSwgTlVMTCwgTlVMTCwgTlVMTCk7Ci0JeG1sRnJlZURvYyhkb2MpOworCQkJCQlH ZXREYXRhYmFzZUVuY29kaW5nKCksIE5VTEwsIE5VTEwsIGVzY29udGV4dCk7CisJaWYgKGRvYykK KwkJeG1sRnJlZURvYyhkb2MpOworCisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0 KSkKKwkJcmV0dXJuIE5VTEw7CiAKIAlyZXR1cm4gKHhtbHR5cGUgKikgZGF0YTsKICNlbHNlCi0J Tk9fWE1MX1NVUFBPUlQoKTsKKwllcnJzYXZlKGVzY29udGV4dCwKKwkJCWVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJZXJybXNnKCJ1bnN1cHBvcnRlZCBYTUwgZmVh dHVyZSIpLAorCQkJZXJyZGV0YWlsKCJUaGlzIGZ1bmN0aW9uYWxpdHkgcmVxdWlyZXMgdGhlIHNl cnZlciB0byBiZSBidWlsdCB3aXRoIGxpYnhtbCBzdXBwb3J0LiIpKTsKIAlyZXR1cm4gTlVMTDsK ICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmggYi9zcmMvaW5j bHVkZS91dGlscy94bWwuaAppbmRleCA3MzJkYWM0N2JjNC4uYjE1MTY4YzQzMGUgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5o CkBAIC03Myw3ICs3Myw3IEBAIGV4dGVybiB4bWx0eXBlICp4bWxjb25jYXQoTGlzdCAqYXJncyk7 CiBleHRlcm4geG1sdHlwZSAqeG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAkJCQkJCSAgIGNv bnN0IERhdHVtICpuYW1lZF9hcmd2YWx1ZSwgY29uc3QgYm9vbCAqbmFtZWRfYXJnbnVsbCwKIAkJ CQkJCSAgIGNvbnN0IERhdHVtICphcmd2YWx1ZSwgY29uc3QgYm9vbCAqYXJnbnVsbCk7Ci1leHRl cm4geG1sdHlwZSAqeG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxvcHRpb25f YXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UpOworZXh0ZXJuIHhtbHR5cGUgKnhtbHBhcnNl KHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93 aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbHBpKGNvbnN0 IGNoYXIgKnRhcmdldCwgdGV4dCAqYXJnLCBib29sIGFyZ19pc19udWxsLCBib29sICpyZXN1bHRf aXNfbnVsbCk7CiBleHRlcm4geG1sdHlwZSAqeG1scm9vdCh4bWx0eXBlICpkYXRhLCB0ZXh0ICp2 ZXJzaW9uLCBpbnQgc3RhbmRhbG9uZSk7CiBleHRlcm4gYm9vbCB4bWxfaXNfZG9jdW1lbnQoeG1s dHlwZSAqYXJnKTsKLS0gCjIuMzQuMQoK --0000000000001ca9fe0642be9580 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v9-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhk5v3e118 RnJvbSAzNDY1MjU1NjljNjdlYjhmYjlkMTcwNTdhNDY3NDZlMmE2MTJmYzk0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTozNjozNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjkg MDEvMTldIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgYnl0ZWEgdG8gb3RoZXIgdHlwZXMgcGVyCiBw 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= --0000000000001ca9fe0642be9580--