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 1t8kiW-005mvy-0F for pgsql-hackers@arkaria.postgresql.org; Wed, 06 Nov 2024 18:25:20 +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 1t8kiT-008BPO-7M for pgsql-hackers@arkaria.postgresql.org; Wed, 06 Nov 2024 18:25:17 +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 1t8kiS-008BPG-69 for pgsql-hackers@lists.postgresql.org; Wed, 06 Nov 2024 18:25:17 +0000 Received: from mail-yw1-x112d.google.com ([2607:f8b0:4864:20::112d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1t8kiC-000YAb-6R for pgsql-hackers@lists.postgresql.org; Wed, 06 Nov 2024 18:25:16 +0000 Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-6ea1407e978so543597b3.1 for ; Wed, 06 Nov 2024 10:25:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1730917499; x=1731522299; 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=DR6EqOysQF55zX5fZA7PcOZtZpeEpsoUAuhexztFipk=; b=iUl1Ezz9dpsf6fXOjVLBk6Na2GXCN7HC7x3rzeYEOj+55exFH5YNxFFc9frCfH6RuR 042xqcorIOeXpg7ABBK2LLJiL6ASUzHxaxRWtdBHTUSg5b438bZtxsQiysAPUJ2nJPeK oKj8cCPiDyC5FBr+nBjmtn+Wx/meu+UpRlHZ08adb0Ja48X4Lz0UcE6EUfzPhI2jIbb9 /bN+BI8l+w3fQq9FivGIcfJzSvPUkYEigW4VjKUrmlUcH4QFoWmCneLTxXrA8JhrE47q KQdQjn8Ve2wJ1buAgZwpYSVkT059zjXbrQWuy0h4s1A3t1+7EZhX4o45A9Zg3g/LlnLb vJQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730917499; x=1731522299; 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=DR6EqOysQF55zX5fZA7PcOZtZpeEpsoUAuhexztFipk=; b=m5WpZwBYUIISQMe2ecWrce8+BkjfN3pUsK0vCxHxQj2xbABNBz4zP28UWS1ksbIyNX FPWGqEgY7sWxj91wjFbSSzBhReRkT/hP4E70eJtkgcZZ1P9pMlmISEsKwM0AyH9moeT9 L4C/rZKaJONdcLPGlGiH9hVtLf3P7FvPIbV+fPW5+uZWrR7j8rzSJzdUzlcklirzdzVb mmKSJTDF51IDFI1vYL210Eh4Hhk4RmvBrLutVo5iAgUnDAzM2uUfqX9Txn97mtitoe30 SKrVMbn0nhSoLzMrXX9407zSKMoSTMTgmuMyHMcjQtUkwsRU9XeFu3OG9MwcJgxujjPO 24dw== X-Forwarded-Encrypted: i=1; AJvYcCUbl75Mb3ygi9N0QBPj8i/bKL7Uor4V8FTBELPG5tUEAuj8ygZ9ZgeARwhdf5tOMGU+xwHJ0JlEF8s5Z9qw@lists.postgresql.org X-Gm-Message-State: AOJu0YyiFnLeNdwye5LGlaPvPM4MsoiyFOwRbalvuJ6XML/x3/bDLrkh YSXVIWoZPHDvD605HVWRyNSyO1ZQ09x7l7nr8Fb1r36/iCVk3EbtXdByzoXbodiN8mxCFJ3oVlY bVJ7xo3JZvTrB9OjluWKubLtVfic= X-Google-Smtp-Source: AGHT+IEjsJ3Xh4HKKJ6D5CS7Tw/gDFDdhAqSsljCReN9JPuw+5/074unp1mDKdgK/OwivR+8MpBCMgB7QC0J/FvBx4E= X-Received: by 2002:a05:690c:2082:b0:6ea:3afb:c537 with SMTP id 00721157ae682-6ea64bb23cdmr155306897b3.31.1730917499375; Wed, 06 Nov 2024 10:24:59 -0800 (PST) MIME-Version: 1.0 References: <20200924035637.GF28585@paquier.xyz> <20201001033824.GC8130@paquier.xyz> <51a9a68e8a998d04df17417d45c1dbd4@xs4all.nl> <89817942c99da01cd5e7850fe418436b@xs4all.nl> <56ca532c37eb0b540961f74a7bd5db39@xs4all.nl> <8181bd3abc647bdae5a4f78e71e62478a98c75f4.camel@cybertec.at> <9e67d49deb18270eddb95e602c83f02b98459843.camel@cybertec.at> <3b662dc5b615d4c20a55e8e2fbe6fc00fe00609d.camel@cybertec.at> <6996931e8c9edf3b82223e74e92326a7ed06c1d6.camel@cybertec.at> <67aa68a7e6dfb44c0cbbdf7f97cadfede4269ce5.camel@cybertec.at> <04ec666686e9e21cb515617df06885c66f3d34ce.camel@cybertec.at> <3850a85012d040827b10193189edbe2c23a64f8f.camel@cybertec.at> In-Reply-To: From: Pavel Stehule Date: Wed, 6 Nov 2024 19:24:20 +0100 Message-ID: Subject: Re: proposal: schema variables To: Laurenz Albe Cc: Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000b025da062642a2e5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b025da062642a2e5 Content-Type: multipart/alternative; boundary="000000000000b025d8062642a2e3" --000000000000b025d8062642a2e3 Content-Type: text/plain; charset="UTF-8" Hi only fresh rebase Regards Pavel --000000000000b025d8062642a2e3 Content-Type: text/html; charset="UTF-8"
Hi

only fresh rebase

Regards

Pavel
--000000000000b025d8062642a2e3-- --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0019-transactional-variables.patch" Content-Disposition: attachment; filename="v20241106-0019-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jp9u1 RnJvbSAxYWRiOTI1YmFiNGQyNGMxZTVjZDk5ZmY5ZDlkYjY1NTU0NjIyNDg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDIyOjQwOjU1ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxOS8yMF0gdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKClRoaXMgY29tbWl0IGltcGxlbWVu dHMgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMuIFRoZSBjb250ZW50IG9mIHRyYW5zYWN0aW9uYWwK c2Vzc2lvbiB2YXJpYWJsZXMgaXMgc2Vuc2l0aXZlIHRvIHRyYW5zYWN0aW9ucyBhbmQgc3VidHJh bnNhY3Rpb25zLiBBbnkKdHJhbnNhY3Rpb25hbCB2YXJpYWJsZSBob2xkcyBhIGhpc3Rvcnkgb2Yg dmFsdWVzIG5lY2Vzc2FyeSBmb3IgcmV2ZXJ0LiBUaGlzIGhpc3RvcnkKaXMgY2xlYW5lZCAocHVy Z2VkKSB3aGVuIGEpIHdlIHJlYWQgdGhlIHZhcmlhYmxlLCBiKSB3aGVuIHRoZSB0cmFuc2FjdGlv biBpcyBmaW5pc2hlZC4KCldlIGRvbid0IHRyeSB0byBwdXJnZSwgd2hlbiB0aGUgbGFzdCBtb2Rp ZmljYXRpb24gb2YgYSB2YXJpYWJsZSBpcyBmcm9tCmN1cnJlbnQgc3VidHJhbnNhY3Rpb24sIG9y IHdoZW4gcHVyZ2Ugd2FzIHByb2Nlc3NlZCBpbiBjdXJyZW50IHN1YnRyYW5zYWN0aW9uLgoKVGhp cyBwYXRjaCBpcyBiYXNlZCBvbiBteSB3b3JrIGZyb20gRmViIDIwMjAgYW5kIGl0IGlzIHJlbGF0 ZWQgdG8gZGlzY3Vzc2lvbgphYm91dCBmZWF0dXJlcyByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLiBOb3csIHdoZW4gdGhlIGFsbCBmZWF0dXJlcyBhcmUKc2VwYXJhdGVkIHRvIGlzb2xhdGVk IHBhdGNoZXMgSSBjYW4gcmV2aXRhbGl6ZSB0aGlzIHBhdGNoLCBiZWNhdXNlIGl0IGRvZXNuJ3QK aW5jcmVhc2UgY29tcGxleGl0eSBvZiBiYXNpYyBwYXRjaGVzLgoKVW5saWtlIG90aGVyIHBhdGNo ZXMsIHRoaXMgcGF0Y2ggaXMgd2l0aG91dCBhbnkgcmV2aWV3IGF0IHRoaXMgbW9tZW50IChGZWIg MjAyNCksCmJ1dCB0aGUgZmVhdHVyZSBzaG91bGQgYmUgZnVsbHkgZnVuY3Rpb25hbCBmb3IgcGVv cGxlIHdobyBhcmUgaW50ZXJlc3RlZCBhYm91dAp0aGlzIGZlYXR1cmUgKGZvciB0ZXN0aW5nKS4K LS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTIg KwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDEwICst CiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDQgKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMzAxICsrKysr KysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAg ICAgIHwgIDUwICstLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAg ICAgIHwgIDEwICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAg IHwgIDM2ICsrKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAg IHwgICA0ICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAg fCAgIDUgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICst LQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTEwICsr KysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA1 OCArKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCA1OTIgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAppbmRleCA5YzJkOTA0M2Y1OS4uZTQwMDVkZDJhZmQgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC05ODYyLDYgKzk4NjIsMTggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+ Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAg ICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVu dHJ5PjxzdHJ1Y3RmaWVsZD52YXJpc3RyYW5zYWN0PC9zdHJ1Y3RmaWVsZD48L2VudHJ5PgorICAg ICAgPGVudHJ5Pjx0eXBlPmJvb2xlYW48L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2Vu dHJ5PgorICAgICAgPGVudHJ5PgorICAgICAgIFRydWUsIHdoZW4gdGhlIHZhcmlhYmxlIGlzIDxx dW90ZT50cmFuc2FjdGlvbmFsPC9xdW90ZT4uIEluIHRoZSBjYXNlCisgICAgICAgb2YgYSB0cmFu c2FjdGlvbiByb2xsYmFjaywgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgYXJlIHJlc2V0IHRvIHRo ZQorICAgICAgIHZhbHVlIHRoZXkgaGFkIHdoZW4gdGhlIHRyYW5zYWN0aW9uIHN0YXJ0ZWQuIFRo ZSBkZWZhdWx0IHZhbHVlIGlzCisgICAgICAgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+LgorICAg ICAgPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAg ICAgICAgPHN0cnVjdGZpZWxkPnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8 L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCAwMDkzODc0M2Mw ZC4uYjczZjAzMmRkYmIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAt MjYsNyArMjYsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rp dj4KIDxzeW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFC TEUgXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KK0NSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gWyB7IFRSQU5TQUNUSU9OQUwgfCBUUkFOU0FDVElPTiB9IF0gWyBJ TU1VVEFCTEUgXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KICAgICBbIE5P VCBOVUxMIF0gWyBERUZBVUxUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZWZhdWx0 X2V4cHI8L3JlcGxhY2VhYmxlPiBdIFsgeyBPTiBDT01NSVQgRFJPUCB8IE9OIFRSQU5TQUNUSU9O IEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KQEAgLTQ3LDYg KzQ3LDE0IEBAIENSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFCTEUgXSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjCiAgICBzYW1lIGFzIHJlZ3VsYXIgdmFy aWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+Cisg ICBXaGVuIGEgc2NoZW1hIHZhcmlhYmxlIGlzIGNyZWF0ZWQgd2l0aCBhCisgICA8Y29tbWFuZD5D UkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCwgdGhlIHZhcmlh YmxlcworICAgY29udGVudCBjaGFuZ2VzIGFyZSB0cmFuc2FjdGlvbmFsOiBpbiBjYXNlIG9mIHJv bGxiYWNrLCB0aGV5IGFyZSByZXNldCB0bworICAgdGhlaXIgdmFsdWUgYXQgdGhlIGJlZ2lubmlu ZyBvZiB0aGUgdHJhbnNhY3Rpb24gb3IgdGhlIGxhdGVzdCBzdWJ0cmFuc2FjdGlvbi4KKyAgIFRo ZSB2YXJpYWJsZSBjb250ZW50IGlzIG9ubHkgaG9sZCBpbiBtZW1vcnksIGFuZCB0aHVzIGlzIG5v dCBwZXJzaXN0ZW50LgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBTZXNzaW9uIHZhcmlhYmxl cyBhcmUgcmV0cmlldmVkIGJ5IHRoZSA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CiAgICBjb21t YW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0IHdpdGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4g Y29tbWFuZC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCAzNGIwYjk3MTUxNi4uZjlh NTI4MWVjYzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTQyLDYgKzQyLDcgQEAg c3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUs CiAJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAogCQkJCQkJCQkJIGJvb2wgbm90X251bGws CiAJCQkJCQkJCQkgYm9vbCBpc19pbW11dGFibGUsCisJCQkJCQkJCQkgYm9vbCBpc190cmFuc2Fj dCwKIAkJCQkJCQkJCSBOb2RlICp2YXJEZWZleHByLAogCQkJCQkJCQkJIFZhcmlhYmxlWGFjdEVu ZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKTsKIApAQCAtNTksNiArNjAsNyBAQCBjcmVhdGVfdmFy aWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlib29sIGlmX25vdF9leGlzdHMsCiAJCQkJ Ym9vbCBub3RfbnVsbCwKIAkJCQlib29sIGlzX2ltbXV0YWJsZSwKKwkJCQlib29sIGlzX3RyYW5z YWN0LAogCQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZh clhhY3RFbmRBY3Rpb24pCiB7CkBAIC0xMjMsNiArMTI1LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNv bnN0IGNoYXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9u IC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CiAJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFybm90bnVsbCAtIDFdID0gQm9vbEdldERhdHVtKG5vdF9udWxsKTsKIAl2YWx1 ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc2ltbXV0YWJsZSAtIDFdID0gQm9vbEdldERhdHVtKGlz X2ltbXV0YWJsZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyaXN0cmFuc2FjdCAtIDFd ID0gQm9vbEdldERhdHVtKGlzX3RyYW5zYWN0KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAK IAlpZiAodmFyRGVmZXhwcikKQEAgLTI2Nyw2ICsyNzAsNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJz ZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHN0 bXQtPmlmX25vdF9leGlzdHMsCiAJCQkJCQkJICAgc3RtdC0+bm90X251bGwsCiAJCQkJCQkJICAg c3RtdC0+aXNfaW1tdXRhYmxlLAorCQkJCQkJCSAgIHN0bXQtPmlzX3RyYW5zYWN0LAogCQkJCQkJ CSAgIGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRBY3Rpb24pOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggM2NlYmY0Nzg2YjEuLmM4 MWE2NjA2MWQ5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC00 Nyw2ICs0NywxOSBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0KIAlTdWJU cmFuc2FjdGlvbklkIGRlbGV0aW5nX3N1YmlkOwogfSBTVmFyaWFibGVYQWN0RHJvcEl0ZW07CiAK Ky8qCisgKiBVc2VkIGZvciB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcy4gSG9sZHMgcHJldiB2ZXJz aW9uLgorICovCit0eXBlZGVmIHN0cnVjdCBQcmV2VmFsdWUKK3sKKwlEYXR1bQkJdmFsdWU7CisJ Ym9vbAkJaXNudWxsOworCisJU3ViVHJhbnNhY3Rpb25JZCBtb2RpZnlfc3ViaWQ7CisKKwlzdHJ1 Y3QgUHJldlZhbHVlICpwcmV2X3ZhbHVlOworfSBQcmV2VmFsdWU7CisKIC8qCiAgKiBUaGUgdmFs dWVzIG9mIHNlc3Npb24gdmFyaWFibGVzIGFyZSBzdG9yZWQgaW4gdGhlIGJhY2tlbmQncyBwcml2 YXRlIG1lbW9yeQogICogaW4gdGhlIGRlZGljYXRlZCBtZW1vcnkgY29udGV4dCBTVmFyaWFibGVN ZW1vcnlDb250ZXh0IGluIGJpbmFyeSBmb3JtYXQuCkBAIC02OCw2ICs4MSwyNSBAQCB0eXBlZGVm IHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJYm9vbAkJaXNudWxsOwogCURhdHVtCQl2YWx1ZTsKIAor CS8qCisJICogV2UgZG9uJ3QgbmVlZCBzdGFjayB2ZXJzaW9ucyBtb2RpZmllZCBpbiBzYW1lIHN1 YnRyYW5zYWN0aW9uLgorCSAqIFVzZWQgYnkgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgb25seS4g VGhlIHZhbHVlIG9mIHRyYW5zYWN0aW9uYWwKKwkgKiB2YXJpYWJsZSBjYW4gYmUgcmV0dXJuZWQg aW1tZWRpYXRlbHkgd2hlbiBtb2RpZnlfc3ViaWQgaXMgc2FtZQorCSAqIGxpa2UgY3VycmVudCBz dWJpZC4KKwkgKi8KKwlTdWJUcmFuc2FjdGlvbklkIG1vZGlmeV9zdWJpZDsKKworCS8qCisJICog V2hlbiB0aGUgbW9kaWZ5X3N1YmlkIGlzIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgc3ViaWQsIHRo ZW4KKwkgKiB3ZSBuZWVkIHRvIHJlY2hlY2sgdmVyc2lvbnMgYW5kIHRocm93IHZlcnNpb25zIHJl bGF0ZWQgdG8KKwkgKiByZXZlcnRlZCB0cmFuc2FjdGlvbnMuIFdoZW4gcHVyZ2Vfc3ViaWQgaXMg c2FtZSBsaWtlIGN1cnJlbnQgc3ViaWQKKwkgKiB3ZSBjYW4gcmV0dXJuIHRoZSB2YWx1ZSBvZiB0 cmFuc2FjdGlvbiB2YXJpYWJsZSB3aXRob3V0IHRoaXMKKwkgKiByZWNoZWNrLgorCSAqLworCVN1 YlRyYW5zYWN0aW9uSWQgcHVyZ2Vfc3ViaWQ7CisKKwlQcmV2VmFsdWUgICpwcmV2X3ZhbHVlOwor CiAJT2lkCQkJdHlwaWQ7CiAJaW50MTYJCXR5cGxlbjsKIAlib29sCQl0eXBieXZhbDsKQEAgLTg2 LDYgKzExOCw3IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAogCWJvb2wJCW5vdF9u dWxsOwogCWJvb2wJCWlzX2ltbXV0YWJsZTsKKwlib29sCQlpc190cmFuc2FjdDsKIAogCWJvb2wJ CXJlc2V0X2F0X2VveDsKIApAQCAtMTI1LDYgKzE1OCw5IEBAIHN0YXRpYyBib29sIG5lZWRzX3Zh bGlkYXRpb24gPSBmYWxzZTsKICAqLwogc3RhdGljIGJvb2wgaGFzX3Nlc3Npb25fdmFyaWFibGVz X3dpdGhfcmVzZXRfYXRfZW94ID0gZmFsc2U7CiAKKy8qIHRydWUsIHdoZW4gdHJhbnNhY3Rpb25h bCB2YXJpYWJsZXMgd2FzIG1vZGlmaWVkICovCitzdGF0aWMgYm9vbCBoYXNfbW9kaWZpZWRfdHJh bnNhY3Rpb25hbF92YXJpYWJsZXMgPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250ZW50IG9mIHNl c3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiBXaGVuIGl0CiAgKiBp cyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFuc2FjdGlvbiBlbmQuIEJ1dCB3aGVuIHRo ZSB0cmFuc2FjdGlvbiBmYWlsZWQsCkBAIC0xNDAsNiArMTc2LDcgQEAgc3RhdGljIExpc3QgKnhh Y3RfZHJvcF9pdGVtcyA9IE5JTDsKIAogc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJp YWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lv bl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRpYyBib29sIHB1cmdlX3Nlc3Np b25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIpOwogCiAvKgogICogQ2FsbGJhY2sgZnVuY3Rpb24g Zm9yIHNlc3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9uLgpAQCAtMjkzLDggKzMzMCwyNSBAQCB1 bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKICAqIFJlbGVh c2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQogICovCiBzdGF0aWMgdm9pZAotZnJlZV9zZXNz aW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyKQorZnJlZV9zZXNzaW9uX3ZhcmlhYmxl X3ZhbHVlKFNWYXJpYWJsZSBzdmFyLCBib29sIGRlZXBfZnJlZSkKIHsKKwlpZiAoZGVlcF9mcmVl KQorCXsKKwkJUHJldlZhbHVlICpwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKwkJUHJl dlZhbHVlICpuZXh0X3ZhbHVlOworCisJCXdoaWxlIChwcmV2X3ZhbHVlKQorCQl7CisJCQlpZiAo IXN2YXItPnR5cGJ5dmFsKQorCQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihwcmV2X3ZhbHVlLT52 YWx1ZSkpOworCisJCQluZXh0X3ZhbHVlID0gcHJldl92YWx1ZS0+cHJldl92YWx1ZTsKKwkJCXBm cmVlKHByZXZfdmFsdWUpOworCisJCQlwcmV2X3ZhbHVlID0gbmV4dF92YWx1ZTsKKwkJfQorCX0K KwogCS8qIGNsZWFuIHRoZSBjdXJyZW50IHZhbHVlICovCiAJaWYgKCFzdmFyLT5pc251bGwpCiAJ ewpAQCAtMzkzLDcgKzQ0Nyw3IEBAIHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGJv b2wgYXRFT1gpCiAJCQl7CiAJCQkJT2lkCQkJdmFyaWQgPSBzdmFyLT52YXJpZDsKIAotCQkJCWZy ZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJCQlmcmVlX3Nlc3Npb25fdmFyaWFi bGVfdmFsdWUoc3ZhciwgdHJ1ZSk7CiAJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJp ZCwgSEFTSF9SRU1PVkUsIE5VTEwpOwogCQkJCXN2YXIgPSBOVUxMOwogCQkJfQpAQCAtNDI5LDYg KzQ4Myw5NCBAQCByZW1vdmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9p ZCkKIAloYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKIH0K IAorLyoKKyAqIHJlbW92ZSBwcmV2IHZhbHVlcyBhdCBlb3gKKyAqLworc3RhdGljIHZvaWQKK3Jl bW92ZV9wcmV2X3ZhbHVlc19hdF9lb3goYm9vbCBpc0NvbW1pdCkKK3sKKwlIQVNIX1NFUV9TVEFU VVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJaWYgKCFzZXNzaW9udmFycykKKwkJcmV0 dXJuOworCisJLyogbGVhdmUgcXVja2x5LCB3aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2YXJpYWJs ZXMgKi8KKwlpZiAoIWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcykKKwkJcmV0 dXJuOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisJd2hpbGUgKChz dmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCXsK KwkJaWYgKHN2YXItPmlzX3RyYW5zYWN0ICYmIHN2YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlk U3ViVHJhbnNhY3Rpb25JZCkKKwkJeworCQkJaWYgKGlzQ29tbWl0KQorCQkJeworCQkJCWlmIChw dXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIpKQorCQkJCXsKKwkJCQkJUHJldlZhbHVlICpwcmV2 X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKworCQkJCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJ CQkJeworCQkJCQkJUHJldlZhbHVlICpjdXJyZW50X3B2ID0gcHJldl92YWx1ZTsKKworCQkJCQkJ aWYgKCFzdmFyLT50eXBieXZhbCAmJiAhY3VycmVudF9wdi0+aXNudWxsKQorCQkJCQkJCXBmcmVl KERhdHVtR2V0UG9pbnRlcihjdXJyZW50X3B2LT52YWx1ZSkpOworCisJCQkJCQlwcmV2X3ZhbHVl ID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJCQkJCXBmcmVlKGN1cnJlbnRfcHYpOworCQkJ CQl9CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJz LCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQkJc3ZhciA9IE5VTEw7CisJ CQkJfQorCQkJfQorCQkJZWxzZQorCQkJeworCQkJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2 YXItPnByZXZfdmFsdWU7CisKKwkJCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJCQl7CisJCQkJCVBy ZXZWYWx1ZSAqY3VycmVudF9wdiA9IHByZXZfdmFsdWU7CisKKwkJCQkJaWYgKGN1cnJlbnRfcHYt Pm1vZGlmeV9zdWJpZCA9PSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwkJCQkJCWJyZWFrOwor CisJCQkJCWlmICghc3Zhci0+dHlwYnl2YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCQkJ CXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJyZW50X3B2LT52YWx1ZSkpOworCisJCQkJCXByZXZf dmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2X3ZhbHVlOworCQkJCQlwZnJlZShjdXJyZW50X3B2KTsK KwkJCQl9CisKKwkJCQlpZiAocHJldl92YWx1ZSkKKwkJCQl7CisJCQkJCXN2YXItPnZhbHVlID0g cHJldl92YWx1ZS0+dmFsdWU7CisJCQkJCXN2YXItPmlzbnVsbCA9IHByZXZfdmFsdWUtPmlzbnVs bDsKKworCQkJCQlwZnJlZShwcmV2X3ZhbHVlKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJ CQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5V TEwpOworCQkJCQlzdmFyID0gTlVMTDsKKwkJCQl9CisJCQl9CisKKwkJCS8qIHdoZW4gc3ZhciBp cyBzdGlsbCB2YWxpZCAobm90IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyAqLworCQkJaWYgKHN2 YXIpCisJCQl7CisJCQkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9u SWQ7CisJCQkJc3Zhci0+cHJldl92YWx1ZSA9IE5VTEw7CisJCQl9CisJCX0KKwl9CisKKwloYXNf bW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSBmYWxzZTsKK30KKwogLyoKICAgKiBQ ZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZvciB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAg ICogYW5kIHJlbW92ZSBhbGwgZHJvcHBlZCB2YXJpYWJsZXMgZnJvbSBtZW1vcnkuCkBAIC00NzYs NiArNjE4LDggQEAgQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KQog CQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsKIAl9CiAKKwlyZW1vdmVf cHJldl92YWx1ZXNfYXRfZW94KGlzQ29tbWl0KTsKKwogCS8qCiAJICogV2UgaGF2ZSB0byBjbGVh biB4YWN0X2Ryb3BfaXRlbXMuIEFsbCByZWxhdGVkIHZhcmlhYmxlcyBhcmUgZHJvcHBlZAogCSAq IG5vdywgb3IgbG9zdCBpbnNpZGUgYWJvcnRlZCB0cmFuc2FjdGlvbi4KQEAgLTYyMSw2ICs3NjUs NyBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJv b2wgaXNfd3JpdGUpCiAKIAlzdmFyLT5ub3RfbnVsbCA9IHZhcmZvcm0tPnZhcm5vdG51bGw7CiAJ c3Zhci0+aXNfaW1tdXRhYmxlID0gdmFyZm9ybS0+dmFyaXNpbW11dGFibGU7CisJc3Zhci0+aXNf dHJhbnNhY3QgPSB2YXJmb3JtLT52YXJpc3RyYW5zYWN0OwogCiAJc3Zhci0+aXNfZG9tYWluID0g KGdldF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKIAlzdmFy LT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwpAQCAtNjQ2LDYgKzc5MSwxNyBAQCBzZXR1cF9z ZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUp CiAJc3Zhci0+aXNudWxsID0gdHJ1ZTsKIAlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKIAorCWlm IChzdmFyLT5pc190cmFuc2FjdCkKKwl7CisJCXN2YXItPm1vZGlmeV9zdWJpZCA9IEdldEN1cnJl bnRTdWJUcmFuc2FjdGlvbklkKCk7CisJCWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3Zhcmlh YmxlcyA9IHRydWU7CisJfQorCWVsc2UKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gSW52YWxpZFN1 YlRyYW5zYWN0aW9uSWQ7CisKKwlzdmFyLT5wdXJnZV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2Fj dGlvbklkOworCXN2YXItPnByZXZfdmFsdWUgPSBOVUxMOworCiAJc3Zhci0+aXNfdmFsaWQgPSB0 cnVlOwogCiAJc3Zhci0+aGFzaHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxF T0lELApAQCAtNjc5LDYgKzgzNSw2OSBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7 CiB9CiAKKy8qCisgKiBUcnkgdG8gcmVtb3ZlIGFsbCBwcmV2aW91cyB2ZXJzaW9ucyByZWxhdGVk IHRvIHJldmVydGVkIHRyYW5zYWN0aW9ucy4KKyAqIFJldHVybnMgdHJ1ZSwgd2hlbiB2YWxpZCB2 ZXJzaW9uIHdhcyBmb3VuZC4KKyAqLworc3RhdGljIGJvb2wKK3B1cmdlX3Nlc3Npb25fdmFyaWFi bGUoU1ZhcmlhYmxlIHN2YXIpCit7CisJU3ViVHJhbnNhY3Rpb25JZCBjdXJyZW50X3N1YmlkOwor CVByZXZWYWx1ZQkgICAqcHJldl92YWx1ZTsKKwlib29sCQkJZm91bmQgPSB0cnVlOworCisJQXNz ZXJ0KHN2YXItPmlzX3RyYW5zYWN0KTsKKworCWlmIChzdmFyLT5tb2RpZnlfc3ViaWQgPT0gSW52 YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCXJldHVybiB0cnVlOworCisJY3VycmVudF9zdWJpZCA9 IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisKKwlpZiAoc3Zhci0+bW9kaWZ5X3N1Ymlk ID09IGN1cnJlbnRfc3ViaWQpCisJCXJldHVybiB0cnVlOworCisJaWYgKHN2YXItPnB1cmdlX3N1 YmlkID09IGN1cnJlbnRfc3ViaWQpCisJCXJldHVybiB0cnVlOworCisJaWYgKFN1YlRyYW5zYWN0 aW9uSXNBY3RpdmUoc3Zhci0+bW9kaWZ5X3N1YmlkKSkKKwl7CisJCXN2YXItPnB1cmdlX3N1Ymlk ID0gY3VycmVudF9zdWJpZDsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJcHJldl92YWx1ZSA9IHN2 YXItPnByZXZfdmFsdWU7CisKKwl3aGlsZSAocHJldl92YWx1ZSkKKwl7CisJCVByZXZWYWx1ZSAq Y3VycmVudF9wdiA9IHByZXZfdmFsdWU7CisKKwkJaWYgKGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJp ZCA9PSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCB8fAorCQkJU3ViVHJhbnNhY3Rpb25Jc0FjdGl2 ZShjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQpKQorCQl7CisJCQlzdmFyLT52YWx1ZSA9IGN1cnJl bnRfcHYtPnZhbHVlOworCQkJc3Zhci0+aXNudWxsID0gY3VycmVudF9wdi0+aXNudWxsOworCQkJ c3Zhci0+bW9kaWZ5X3N1YmlkID0gY3VycmVudF9wdi0+bW9kaWZ5X3N1YmlkOworCisJCQlwcmV2 X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJCXBmcmVlKGN1cnJlbnRfcHYpOwor CisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCisJCWlmICghc3Zhci0+dHlwYnl2 YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJy ZW50X3B2LT52YWx1ZSkpOworCisJCXByZXZfdmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2X3ZhbHVl OworCQlwZnJlZShjdXJyZW50X3B2KTsKKwl9CisKKwlzdmFyLT5wcmV2X3ZhbHVlID0gcHJldl92 YWx1ZTsKKwlzdmFyLT5wdXJnZV9zdWJpZCA9IGN1cnJlbnRfc3ViaWQ7CisKKwlyZXR1cm4gZm91 bmQ7Cit9CisKIC8qCiAgKiBBc3NpZ24gYSBuZXcgdmFsdWUgdG8gdGhlIHNlc3Npb24gdmFyaWFi bGUuICBJdCBpcyBjb3BpZWQgdG8KICAqIFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaWYgbmVjZXNz YXJ5LgpAQCAtNjkxLDYgKzkxMCwxMCBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUg c3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCURhdHVtCQluZXd2YWw7CiAJU1Zhcmlh YmxlRGF0YSBsb2NzdmFyLAogCQkJICAgKl9zdmFyOworCVN1YlRyYW5zYWN0aW9uSWQgY3VycmVu dF9zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisJU3ViVHJhbnNhY3Rpb25J ZCBwcmV2X3B1cmdlX3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisJYm9vbAkJc2F2 ZV9wcmV2X3ZhbHVlOworCVByZXZWYWx1ZSAgKnByZXZfdmFsdWU7CiAKIAlBc3NlcnQoc3Zhcik7 CiAJQXNzZXJ0KCFpc251bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKQEAgLTcyNiw2ICs5NDks MjEgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBi b29sIGlzbnVsbCkKIAllbHNlCiAJCV9zdmFyID0gc3ZhcjsKIAorCWlmIChfc3Zhci0+aXNfdHJh bnNhY3QgJiYgX3N2YXItPmNyZWF0ZV9sc24gPT0gc3Zhci0+Y3JlYXRlX2xzbikKKwl7CisJCUFz c2VydChzdmFyLT50eXBpZCA9PSBfc3Zhci0+dHlwaWQpOworCQlBc3NlcnQoc3Zhci0+dHlwYnl2 YWwgPT0gX3N2YXItPnR5cGJ5dmFsKTsKKwkJQXNzZXJ0KHN2YXItPnR5cGxlbiA9PSBfc3Zhci0+ dHlwbGVuKTsKKworCQlzYXZlX3ByZXZfdmFsdWUgPSBzdmFyLT5tb2RpZnlfc3ViaWQgIT0gY3Vy cmVudF9zdWJpZDsKKwkJcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisJfQorCWVsc2UK Kwl7CisJCXNhdmVfcHJldl92YWx1ZSA9IGZhbHNlOworCQlwcmV2X3ZhbHVlID0gTlVMTDsKKwl9 CisKIAlpZiAoIWlzbnVsbCkKIAl7CiAJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOwpAQCAtNzM3LDcgKzk3NSwzNyBA QCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wg aXNudWxsKQogCWVsc2UKIAkJbmV3dmFsID0gdmFsdWU7CiAKLQlmcmVlX3Nlc3Npb25fdmFyaWFi bGVfdmFsdWUoc3Zhcik7CisJaWYgKHNhdmVfcHJldl92YWx1ZSkKKwl7CisJCXZvbGF0aWxlIFBy ZXZWYWx1ZSAqbmV3X3ByZXZfdmFsdWU7CisKKwkJUEdfVFJZKCk7CisJCXsKKwkJCW5ld19wcmV2 X3ZhbHVlID0gTWVtb3J5Q29udGV4dEFsbG9jKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQsCisJCQkJ CQkJCQkJCQlzaXplb2YoUHJldlZhbHVlKSk7CisJCX0KKwkJUEdfQ0FUQ0goKTsKKwkJeworCQkJ LyogcmVsZWFzZSBtZW0gZnJvbSBwZXJzaXN0ZW50IGNvbnRlbnQgKi8KKwkJCWlmIChuZXd2YWwg IT0gdmFsdWUpCisJCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKG5ld3ZhbCkpOworCQkJUEdfUkVf VEhST1coKTsKKwkJfQorCQlQR19FTkRfVFJZKCk7CisKKwkJbmV3X3ByZXZfdmFsdWUtPnZhbHVl ID0gc3Zhci0+dmFsdWU7CisJCW5ld19wcmV2X3ZhbHVlLT5pc251bGwgPSBzdmFyLT5pc251bGw7 CisJCW5ld19wcmV2X3ZhbHVlLT5tb2RpZnlfc3ViaWQgPSBzdmFyLT5tb2RpZnlfc3ViaWQ7CisJ CW5ld19wcmV2X3ZhbHVlLT5wcmV2X3ZhbHVlID0gcHJldl92YWx1ZTsKKworCQlwcmV2X3ZhbHVl ID0gKFByZXZWYWx1ZSAqKSBuZXdfcHJldl92YWx1ZTsKKwkJcHJldl9wdXJnZV9zdWJpZCA9IHN2 YXItPnB1cmdlX3N1YmlkOworCisJCWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxl cyA9IHRydWU7CisKKwl9CisJZWxzZQorCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zh ciwgcHJldl92YWx1ZSA9PSBOVUxMKTsKIAogCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIG5ldyB2YWx1ZSIsCiAJCSBnZXRfbmFtZXNwYWNlX25h bWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCkBAIC03NTAs NiArMTAxOCw5IEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2 YWx1ZSwgYm9vbCBpc251bGwpCiAKIAlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5pc251 bGwgPSBpc251bGw7CisJc3Zhci0+bW9kaWZ5X3N1YmlkID0gY3VycmVudF9zdWJpZDsKKwlzdmFy LT5wdXJnZV9zdWJpZCA9IHByZXZfcHVyZ2Vfc3ViaWQ7CisJc3Zhci0+cHJldl92YWx1ZSA9IHBy ZXZfdmFsdWU7CiAKIAkvKiBkb24ndCBhbGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUgd2hlbiB2 YXJpYWJsZSBpcyBJTU1VVEFCTEUgKi8KIAlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQpAQCAtODUz LDYgKzExMjQsOCBAQCBnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJZWxzZQogCQlz dmFyLT5pc192YWxpZCA9IGZhbHNlOwogCityZWluaXQ6CisKIAkvKgogCSAqIEZvcmNlIHNldHVw IGZvciBub3QgeWV0IGluaXRpYWxpemVkIHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5u b3QKIAkgKiBiZSB2YWxpZGF0ZWQuCkBAIC04ODUsNiArMTE1OCwyOCBAQCBnZXRfc2Vzc2lvbl92 YXJpYWJsZShPaWQgdmFyaWQpCiAJCQkgdmFyaWQpOwogCX0KIAorCS8qCisJICogVHJhbnNhY3Rp b25hbCB2YXJpYWJsZXMgc2hvdWxkIGJlIHB1cmdlZCBiZWZvcmUgKHJlbW92ZQorCSAqIHZlcnNp b25zIGNyZWF0ZWQgYnkgcG9zc2libHkgcmV2ZXJ0ZWQgc3VidHJhbnNhY3Rpb25zKS4KKwkgKi8K KwlpZiAoc3Zhci0+aXNfdHJhbnNhY3QgJiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEdldEN1 cnJlbnRTdWJUcmFuc2FjdGlvbklkKCkgJiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEludmFs aWRTdWJUcmFuc2FjdGlvbklkKQorCXsKKwkJaWYgKCFwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2 YXIpKQorCQl7CisJCQkvKiBmb3JjZSByZWluaXQgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFs c2U7CisKKwkJCS8qCisJCQkgKiBJbiBuZXh0IGl0ZXJhdGlvbiBtb2RpZnlfc3ViaWQgc2hvdWxk IGJlCisJCQkgKiBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCBvciBjdXJyZW50IHN1YmlkLAorCQkJ ICogc28gdGhlcmUgaXMgbm90IHJpc2sgb2YgaW5maW5pdHkgY3ljbGUuCisJCQkgKi8KKwkJCWdv dG8gcmVpbml0OworCQl9CisJfQorCiAJLyogZW5zdXJlIHRoZSByZXR1cm5lZCBkYXRhIGlzIHN0 aWxsIG9mIHRoZSBjb3JyZWN0IGRvbWFpbiAqLwogCWlmIChzdmFyLT5pc19kb21haW4pCiAJewpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggNWFlMDgwNGM0OTMuLjJhNmI0NmUzOWViIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTY2OCw3ICs2NjgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCWpzb25fb2JqZWN0 X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCQkJCWpzb25fYXJyYXlfY29uc3RydWN0b3Jf bnVsbF9jbGF1c2Vfb3B0CiAKLSV0eXBlIDxib29sZWFuPgkJT3B0Tm90TnVsbCBPcHRJbW11dGFi bGUKKyV0eXBlIDxib29sZWFuPgkJT3B0Tm90TnVsbCBPcHRJbW11dGFibGUgT3B0VHJhbnNhY3Rp b25hbAogCiAvKgogICogTm9uLWtleXdvcmQgdG9rZW4gdHlwZXMuICBUaGVzZSBhcmUgaGFyZC13 aXJlZCBpbnRvIHRoZSAiZmxleCIgbGV4ZXIuCkBAIC03NzMsNyArNzczLDcgQEAgc3RhdGljIE5v ZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKIAlTVUJTQ1JJUFRJT04gU1VCU1RSSU5HIFNVUFBPUlQgU1lNTUVUUklD IFNZU0lEIFNZU1RFTV9QIFNZU1RFTV9VU0VSCiAKIAlUQUJMRSBUQUJMRVMgVEFCTEVTQU1QTEUg VEFCTEVTUEFDRSBUQVJHRVQgVEVNUCBURU1QTEFURSBURU1QT1JBUlkgVEVYVF9QIFRIRU4KLQlU SUVTIFRJTUUgVElNRVNUQU1QIFRPIFRSQUlMSU5HIFRSQU5TQUNUSU9OIFRSQU5TRk9STQorCVRJ RVMgVElNRSBUSU1FU1RBTVAgVE8gVFJBSUxJTkcgVFJBTlNBQ1RJT04gVFJBTlNBQ1RJT05BTCBU UkFOU0ZPUk0KIAlUUkVBVCBUUklHR0VSIFRSSU0gVFJVRV9QCiAJVFJVTkNBVEUgVFJVU1RFRCBU WVBFX1AgVFlQRVNfUAogCkBAIC01MjIzLDMxICs1MjIzLDMzIEBAIGNyZWF0ZV9leHRlbnNpb25f b3B0X2l0ZW06CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIENyZWF0ZVNlc3Npb25WYXJTdG10 OgotCQkJQ1JFQVRFIE9wdFRlbXAgT3B0SW1tdXRhYmxlIFZBUklBQkxFIHF1YWxpZmllZF9uYW1l IG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9u VmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQlDUkVBVEUgT3B0VGVtcCBPcHRUcmFu c2FjdGlvbmFsIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlw ZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIg WGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4g PSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ1LT5yZWxwZXJzaXN0ZW5j ZSA9ICQyOwotCQkJCQluLT5pc19pbW11dGFibGUgPSAkMzsKLQkJCQkJbi0+dmFyaWFibGUgPSAk NTsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkNzsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRl Q2xhdXNlICopICQ4OwotCQkJCQluLT5ub3RfbnVsbCA9ICQ5OwotCQkJCQluLT5kZWZleHByID0g JDEwOwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDExOworCQkJCQkkNi0+cmVscGVyc2lzdGVu Y2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDQ7CisJCQkJCW4tPmlzX3RyYW5zYWN0 ID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDY7CisJCQkJCW4tPnR5cGVOYW1lID0gJDg7CisJ CQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJCQkJbi0+bm90X251 bGwgPSAkMTA7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTE7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24g PSAkMTI7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIE9wdFRlbXAgT3B0SW1tdXRhYmxlIFZBUklBQkxFIElG X1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVf Y2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlv bgorCQkJfCBDUkVBVEUgT3B0VGVtcCBPcHRUcmFuc2FjdGlvbmFsIE9wdEltbXV0YWJsZSBWQVJJ QUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9j b2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rp b25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUo Q3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkOC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJ CQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDg7Ci0JCQkJCW4t PnR5cGVOYW1lID0gJDEwOwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikg JDExOwotCQkJCQluLT5ub3RfbnVsbCA9ICQxMjsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMzsKLQkJ CQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxNDsKKwkJCQkJJDktPnJlbHBlcnNpc3RlbmNlID0gJDI7 CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQ0OworCQkJCQluLT5pc190cmFuc2FjdCA9ICQzOwor CQkJCQluLT52YXJpYWJsZSA9ICQ5OworCQkJCQluLT50eXBlTmFtZSA9ICQxMTsKKwkJCQkJbi0+ Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMjsKKwkJCQkJbi0+bm90X251bGwgPSAk MTM7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTQ7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTU7 CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJ CQkJfQpAQCAtNTI3NSw2ICs1Mjc3LDEyIEBAIE9wdEltbXV0YWJsZTogSU1NVVRBQkxFCQkJCQkJ CQl7ICQkID0gdHJ1ZTsgfQogCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0K IAkJOwogCitPcHRUcmFuc2FjdGlvbmFsOgorCQkJVFJBTlNBQ1RJT04JCQkJCQkJCXsgJCQgPSB0 cnVlOyB9CisJCQl8IFRSQU5TQUNUSU9OQUwJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLyog RU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJCTsKKwogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCkBA IC0xODA2Nyw2ICsxODA3NSw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVEVYVF9QCiAJ CQl8IFRJRVMKIAkJCXwgVFJBTlNBQ1RJT04KKwkJCXwgVFJBTlNBQ1RJT05BTAogCQkJfCBUUkFO U0ZPUk0KIAkJCXwgVFJJR0dFUgogCQkJfCBUUlVOQ0FURQpAQCAtMTg3MTUsNiArMTg3MjQsNyBA QCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFRJTUVTVEFNUAogCQkJfCBUUkFJTElORwogCQkJ fCBUUkFOU0FDVElPTgorCQkJfCBUUkFOU0FDVElPTkFMCiAJCQl8IFRSQU5TRk9STQogCQkJfCBU UkVBVAogCQkJfCBUUklHR0VSCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBiODJlM2Q2ZjQyYS4uNzI0NjJiMTJj ZTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYwpAQCAtNTQyNiw2ICs1NDI2LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hp dmUgKmZvdXQpCiAJaW50CQkJaV92YXJjb2xsYXRpb247CiAJaW50CQkJaV92YXJub3RudWxsOwog CWludAkJCWlfdmFyaXNpbW11dGFibGU7CisJaW50CQkJaV92YXJpc3RyYW5zYWN0OwogCWludAkJ CWlfdmFyYWNsOwogCWludAkJCWlfYWNsZGVmYXVsdDsKIAlpbnQJCQlpLApAQCAtNTQ1MCw2ICs1 NDUxLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCQkJCSAgIiAgICAgICBFTkQg QVMgdmFyY29sbGF0aW9uLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJub3RudWxsLFxuIgogCQkJ CQkgICIgICAgICAgdi52YXJpc2ltbXV0YWJsZSxcbiIKKwkJCQkJICAiICAgICAgIHYudmFyaXN0 cmFuc2FjdCxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJk ZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm93bmVyLCB2 LnZhcmFjbCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93bmVyKSBB UyBhY2xkZWZhdWx0XG4iCkBAIC01NDcyLDYgKzU0NzQsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24i KTsKIAlpX3Zhcm5vdG51bGwgPSBQUWZudW1iZXIocmVzLCAidmFybm90bnVsbCIpOwogCWlfdmFy aXNpbW11dGFibGUgPSBQUWZudW1iZXIocmVzLCAidmFyaXNpbW11dGFibGUiKTsKKwlpX3Zhcmlz dHJhbnNhY3QgPSBQUWZudW1iZXIocmVzLCAidmFyaXN0cmFuc2FjdCIpOwogCiAJaV92YXJvd25l ciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOwogCWlfdmFyYWNsID0gUFFmbnVtYmVyKHJl cywgInZhcmFjbCIpOwpAQCAtNTUwMCw2ICs1NTAzLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUg KmZvdXQpCiAJCXZhcmluZm9baV0udmFyY29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVz LCBpLCBpX3ZhcmNvbGxhdGlvbikpOwogCQl2YXJpbmZvW2ldLnZhcm5vdG51bGwgPSAqKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3Zhcm5vdG51bGwpKSA9PSAndCc7CiAJCXZhcmluZm9baV0udmFyaXNp bW11dGFibGUgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmlzaW1tdXRhYmxlKSkgPT0gJ3Qn OworCQl2YXJpbmZvW2ldLnZhcmlzdHJhbnNhY3QgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zh cmlzdHJhbnNhY3QpKSA9PSAndCc7CiAKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbGRl ZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOwpAQCAt NTU0Nyw2ICs1NTUxLDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlh YmxlSW5mbyAqdmFyaW5mbykKIAljb25zdCBjaGFyICp2YXJkZWZleHByOwogCWNvbnN0IGNoYXIg KnZhcnhhY3RlbmRhY3Rpb247CiAJY29uc3QgY2hhciAqdmFyaXNpbW11dGFibGU7CisJY29uc3Qg Y2hhciAqdmFyaXN0cmFuc2FjdDsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAJYm9vbAkJdmFybm90 bnVsbDsKIApAQCAtNTU2NCwxMiArNTU2OSwxMyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91 dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8t PnZhcmNvbGxhdGlvbjsKIAl2YXJub3RudWxsID0gdmFyaW5mby0+dmFybm90bnVsbDsKIAl2YXJp c2ltbXV0YWJsZSA9IHZhcmluZm8tPnZhcmlzaW1tdXRhYmxlID8gIklNTVVUQUJMRSAiIDogIiI7 CisJdmFyaXN0cmFuc2FjdCA9IHZhcmluZm8tPnZhcmlzdHJhbnNhY3QgPyAiVFJBTlNBQ1RJT05B TCAiIDogIiI7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztc biIsCiAJCQkJCSAgcXVhbHZhcm5hbWUpOwogCi0JYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJD UkVBVEUgJXNWQVJJQUJMRSAlcyBBUyAlcyIsCi0JCQkJCSAgdmFyaXNpbW11dGFibGUsIHF1YWx2 YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSAl cyVzVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlzdHJhbnNhY3QsIHZhcmlzaW1tdXRh YmxlLCBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xs YXRpb24pKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDU0NGI3MjU5NjIzLi4yNTM5ZjQxMWVkOCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oCkBAIC03MTQsNiArNzE0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5m bwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJp bmcgKi8KIAlib29sCQl2YXJub3RudWxsOwogCWJvb2wJCXZhcmlzaW1tdXRhYmxlOworCWJvb2wJ CXZhcmlzdHJhbnNhY3Q7CiB9IFZhcmlhYmxlSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1 bXAucGwKaW5kZXggNGQ0OGU2ODQwMmQuLjc2NDU0MGYzNWM4IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbApAQCAtNDA2Nyw2ICs0MDY3LDQyIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAog CisJJ0NSRUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJ YWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5k cycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVFJB TlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU4IEFTIGludGVnZXInLAorCQly ZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1wX3Rl c3QudmFyaWFibGU4IEFTIGludGVnZXI7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVu cywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEs CisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwK KwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKKwknQ1JFQVRF IFRSQU5TQUNUSU9OQUwgSU1NVVRBQkxFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJ YWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5k cycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVFJB TlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlOSBBUyBpbnRl Z2VyJywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFRSQU5TQUNUSU9OQUwgSU1NVVRB QkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTkgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlr ZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNl Y3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVt cF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJ CX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVy ID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCmluZGV4IDg2Njk4NWI4NzlhLi4yNDg0M2QzOTRlNyAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUxNjIs NyArNTE2Miw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJi b3NlKQogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVl cnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2Nv bHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5z bGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNl dC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MTg1LDYgKzUxODUsNyBAQCBsaXN0VmFyaWFi bGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRh bG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAg Tk9UIHYudmFybm90bnVsbCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgTk9UIHYudmFyaXNpbW11 dGFibGUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHYudmFyaXN0cmFuc2FjdCBhcyBcIiVzXCIs XG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsIDApIGFz IFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkg ICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCkBAIC01MTk3LDYgKzUxOTgs NyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOdWxsYWJs ZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTXV0YWJsZSIpLAorCQkJCQkgIGdldHRleHRfbm9v cCgiVHJhbnNhY3Rpb25hbCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiRGVmYXVsdCIpLAogCQkJ CQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIikpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMKaW5kZXggNmU0M2U5NWVhY2EuLjAwMWNhZDMxOWJlIDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCkBAIC0xMzA1LDYgKzEzMDUsOCBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdf dCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAu Li4gKi8KIAl7IlRFWFQgU0VBUkNIIiwgTlVMTCwgTlVMTCwgTlVMTH0sCiAJeyJUUkFOU0ZPUk0i LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBUSElOR19OT19BTFRFUn0sCisJeyJUUkFOU0FDVElP TkFMIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FM VEVSfSwgLyogZm9yIENSRUFURSBUUkFOU0FDVElPTkFMCisJCQkJCQkJCQkJCQkJCQkJCQkJCSog VkFSSUFCTEUgLi4uICovCiAJeyJUUklHR0VSIiwgIlNFTEVDVCB0Z25hbWUgRlJPTSBwZ19jYXRh bG9nLnBnX3RyaWdnZXIgV0hFUkUgdGduYW1lIExJS0UgJyVzJyBBTkQgTk9UIHRnaXNpbnRlcm5h bCJ9LAogCXsiVFlQRSIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXN9 LAogCXsiVU5JUVVFIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRI SU5HX05PX0FMVEVSfSwgLyogZm9yIENSRUFURSBVTklRVUUKQEAgLTM5NDcsOCArMzk0OSwxMSBA QCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAl9CiAvKiBDUkVBVEUgVkFS SUFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0 Y2hlcyAqLwogCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyAqLwor CWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJUUkFOU0FDVElPTnxUUkFOU0FDVElPTkFMIikp CisJCUNPTVBMRVRFX1dJVEgoIklNTVVUQUJMRSIsICJWQVJJQUJMRSIpOwogCWVsc2UgaWYgKFRh aWxNYXRjaGVzKCJDUkVBVEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKIAkJCSBUYWlsTWF0 Y2hlcygiVEVNUHxURU1QT1JBUlkiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKKwkJCSBUYWls TWF0Y2hlcygiVFJBTlNBQ1RJT058VFJBTlNBQ1RJT05BTCIsICJWQVJJQUJMRSIsIE1hdGNoQW55 KSB8fAogCQkJIFRhaWxNYXRjaGVzKCJJTU1VVEFCTEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkp CiAJCUNPTVBMRVRFX1dJVEgoIkFTIik7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxF IiwgTWF0Y2hBbnksICJBUyIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IDY4YmM0 OWEwZTI3Li4xZGM0NGVkZjZlNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNjEs NiArNjEsOSBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQog CS8qIGRvbid0IGFsbG93IGNoYW5nZXMgKi8KIAlib29sCQl2YXJpc2ltbXV0YWJsZSBCS0lfREVG QVVMVChmKTsKIAorCS8qIHN1cHBvcnRzIHRyYW5zYWN0aW9ucyAqLworCWJvb2wJCXZhcmlzdHJh bnNhY3QgQktJX0RFRkFVTFQoZik7CisKIAkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24gZW5kICov CiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChuKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCmluZGV4IDY3N2NlYjQ5NDZmLi45ZGMxYjVjYjQzOCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaApAQCAtMzQ4MSw2ICszNDgxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZh clN0bXQKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkg ZXhpc3RzICovCiAJYm9vbAkJbm90X251bGw7CQkvKiBkaXNhbGxvdyBudWxscyAqLwogCWJvb2wJ CWlzX2ltbXV0YWJsZTsJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLworCWJvb2wJCWlzX3RyYW5z YWN0OwkvKiBzdXBwb3J0cyB0cmFuc2FjdGlvbnMgKi8KIAlOb2RlCSAgICpkZWZleHByOwkJLyog ZGVmYXVsdCBleHByZXNzaW9uICovCiAJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyogb24gdHJhbnNh Y3Rpb24gZW5kIGFjdGlvbiAqLwogfSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aAppbmRleCBhZWZlNTFmMzM1Yi4uMTI1ZWI4MTliNzYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTQ1 NSw2ICs0NTUsNyBAQCBQR19LRVlXT1JEKCJ0aW1lc3RhbXAiLCBUSU1FU1RBTVAsIENPTF9OQU1F X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ0byIsIFRPLCBSRVNFUlZFRF9LRVlX T1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoInRyYWlsaW5nIiwgVFJBSUxJTkcsIFJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmFuc2FjdGlvbiIsIFRSQU5TQUNU SU9OLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJ0cmFuc2Fj dGlvbmFsIiwgVFJBTlNBQ1RJT05BTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgidHJhbnNmb3JtIiwgVFJBTlNGT1JNLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmVhdCIsIFRSRUFULCBDT0xfTkFNRV9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJpZ2dlciIsIFRSSUdHRVIsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IDAyMzNi MGQ4OGQ5Li43ODhiZGEwNGViMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01 OTM1LDIwICs1OTM1LDIwIEBAIENSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBT RVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgdmFyY2hhciBDT0xMQVRFICJDIjsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0 aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2Ny aXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdy ZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBl ICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8 IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFj dGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJs aWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93 KQogCiBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJMSUM7CiBDT01NRU5UIE9O IFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24nOwogXGRWKyB2YXIxCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBO YW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAg ICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFj dGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8 ICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1Ymxp YyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293 bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJp YWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUg fCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAg fCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRyYW5zYWN0 aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAg ICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcg fCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAg IHwgZiAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRl c2NyaXB0aW9uCisgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192 YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1Ag VkFSSUFCTEUgdmFyMTsKQEAgLTY0MTYsOSArNjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAg cm93cykKIAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBl IHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24g fCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwg VHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQg d2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjU5MSw5ICs2NTkxLDkgQEAg aW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2 ZW50LnRyaWdnZXIiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5h bWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogXGRWICJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUg fCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8 IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3 aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBA IC02NzMwLDkgKzY3MzAsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogKDAgcm93 cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJs ZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUg fCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0t Ky0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8 IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBU cmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0t LS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAo MCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQg c2NoZW1hIHF1YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAppbmRleCA4MDI0OGVmMTAwNC4uZTgyZDViNWE2MWUgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00 NSwxMSArNDUsMTEgQEAgU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFU RSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBc ZFYrIHN2YXJ0ZXN0LnZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcwotICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAg IE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0 aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAg ICAgICAgICAgICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHN2YXJ0ZXN0IHwg dmFyMSB8IGludGVnZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAg ICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAotICAgICAg ICAgIHwgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8IAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAg U2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMg ICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLQorIHN2YXJ0ZXN0IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAgfCByZWdyZXNz X3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy PXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAgICAgICAg IHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCiAoMSBy b3cpCiAKIERST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKQEAgLTE3NjQsMyArMTc2NCwxMDMg QEAgU0VMRUNUIHZhcjE7CiBMRVQgdmFyMSA9IDMwOwogRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxl ICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCiBEUk9QIFZBUklBQkxFIHZhcjE7 CistLSB0ZXN0IHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzCitDUkVBVEUgVFJBTlNBQ1RJT04gVkFS SUFCTEUgdHYgQVMgaW50IERFRkFVTFQgMDsKK0JFR0lOOworICBMRVQgdHYgPSAxMDA7CisgIFNF TEVDVCB0djsKKyB0diAgCistLS0tLQorIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsKK1NFTEVD VCB0djsKKyB0diAKKy0tLS0KKyAgMAorKDEgcm93KQorCitMRVQgdHYgPSAxMDA7CitCRUdJTjsK KyAgTEVUIHR2ID0gMTAwMDsKK0NPTU1JVDsKK1NFTEVDVCB0djsKKyAgdHYgIAorLS0tLS0tCisg MTAwMAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVUIHR2ID0gMDsKKyAgU0VMRUNUIHR2OworIHR2 IAorLS0tLQorICAwCisoMSByb3cpCisKK1JPTExCQUNLOworU0VMRUNUIHR2OworICB0diAgCist LS0tLS0KKyAxMDAwCisoMSByb3cpCisKKy0tIHRlc3Qgc3VidHJhbnNhY3Rpb25zCitCRUdJTjsK KyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4 MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7CisgdHYgCist LS0tCisgIDIKKygxIHJvdykKKworICBMRVQgdHYgPSAxMDsKK1JPTExCQUNLIFRPIHgxOworICBT RUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDEKKygxIHJvdykKKworUk9MTEJBQ0s7CitTRUxFQ1Qg dHY7CisgIHR2ICAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworQkVHSU47CisgIExFVCB0diA9 IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQgeDI7CisgIExFVCB0 diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworIHR2IAorLS0tLQorICAyCiso MSByb3cpCisKKyAgTEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2Owor IHR2IAorLS0tLQorICAxCisoMSByb3cpCisKK0NPTU1JVDsKK1NFTEVDVCB0djsKKyB0diAKKy0t LS0KKyAgMQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHR2OwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IGM1ZDZjODUwYmRjLi4zYzAzNzYzNWRkZiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTIwOSwz ICsxMjA5LDYxIEBAIFNFTEVDVCB2YXIxOwogTEVUIHZhcjEgPSAzMDsKIAogRFJPUCBWQVJJQUJM RSB2YXIxOworCistLSB0ZXN0IHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzCitDUkVBVEUgVFJBTlNB Q1RJT04gVkFSSUFCTEUgdHYgQVMgaW50IERFRkFVTFQgMDsKKworQkVHSU47CisgIExFVCB0diA9 IDEwMDsKKyAgU0VMRUNUIHR2OworUk9MTEJBQ0s7CisKK1NFTEVDVCB0djsKKworTEVUIHR2ID0g MTAwOworQkVHSU47CisgIExFVCB0diA9IDEwMDA7CitDT01NSVQ7CisKK1NFTEVDVCB0djsKKwor QkVHSU47CisgIExFVCB0diA9IDA7CisgIFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1Qg dHY7CisKKy0tIHRlc3Qgc3VidHJhbnNhY3Rpb25zCisKK0JFR0lOOworICBMRVQgdHYgPSAxOwor U0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBPSU5UIHgyOworICBMRVQgdHYgPSAz OworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyAgTEVUIHR2ID0gMTA7CitST0xMQkFD SyBUTyB4MTsKKyAgU0VMRUNUIHR2OworUk9MTEJBQ0s7CisKK1NFTEVDVCB0djsKKworQkVHSU47 CisgIExFVCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQg eDI7CisgIExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworICBMRVQg dHYgPSAxMDsKK1JPTExCQUNLIFRPIHgxOworICBTRUxFQ1QgdHY7CitDT01NSVQ7CisKK1NFTEVD VCB0djsKKworRFJPUCBWQVJJQUJMRSB0djsKLS0gCjIuNDcuMAoK --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0018-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20241106-0018-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpa62 RnJvbSAyYTVjNzQ1OTc3NmYxMDg5NWU3OGRlMzMyYWQ5MWYwNDA2YWY2NTlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMTc6MDY6MDQgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIwXSB0aGlzIHBhdGNoIGNoYW5nZXMgZXJyb3IgbWVzc2FnZSAiY29sdW1uIGRvZXNuJ3QgZXhp c3QiCiB0byBtZXNzYWdlICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lc24ndCBleGlzdCIKClRoZSBl cnJvciBtZXNzYWdlIHdpbGwgYmUgbW9yZSBjb3JyZWN0LiBUb2RheSwgbWlzc2luZyBQTC9wZ1NR TCB2YXJpYWJsZSBjYW4gYmUgcmVwb3J0ZWQuIFRoZSBjaGFuZ2UgaGFzCmltcGFjdCBvbiBsb3Qg b2YgcmVncmVzcyB0ZXN0cyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxl cywgYW5kIHRoZW4gaXQgaXMgZGlzdHJpYnV0ZWQgYXMgc2VwYXJhdGUgcGF0Y2gKLS0tCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgMjQgKysrKysrKysrKyst LS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICA4ICsr Ky0tCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oICAgICAgICAgICAgICAgfCAgMiAr Kwogc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0IHwgIDIgKy0K IC4uLi9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQgICB8ICA0ICstLQog Li4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IHwgIDIgKy0KIHNy Yy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQgICAgICAgICB8IDEyICsrKy0tLS0K IC4uLi9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICA0ICstLQog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQgICAgIHwgMzIgKysrKysr KysrLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgICAgICAg ICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dCAgICAgICAg ICB8ICA4ICsrLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0ICAgICAgICAg ICAgfCAxMiArKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQg ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dCAg ICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgICAgICAg ICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAg ICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAg ICAgfCAgMiArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAg IHwgIDYgKystLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0ICAg IHwgIDQgKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dCAgICAgICAgICAg fCAgMiArLQogMjEgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNjMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggYmNiYjFmNTY0YWYuLjE2YmY1MmM5ODU0 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTUyMCw3ICs1MjAsNyBAQCB0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKICAqIHBy aW50ZWQuICBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFi bGVzIGNhbm5vdCBiZQogICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3Ig bWVzc2FnZS4KICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lv bl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIHsKIAlib29sCQlyZXN1bHQg PSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggOTVhZTIxMDgwNDQu LmZhOWEzMGJkMTM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRp b24uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpAQCAtMjcsNiAr MjcsNyBAQAogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25v ZGVGdW5jcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9lbnIuaCIKKyNpbmNsdWRlICJwYXJz ZXIvcGFyc2VfZXhwci5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2lu Y2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5o IgpAQCAtMzczMCw2ICszNzMxLDE5IEBAIGVycm9yTWlzc2luZ1JURShQYXJzZVN0YXRlICpwc3Rh dGUsIFJhbmdlVmFyICpyZWxhdGlvbikKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg cmVsYXRpb24tPmxvY2F0aW9uKSkpOwogfQogCisvKgorICogc2V0IG1lc3NhZ2UgImNvbHVtbiBk b2VzIG5vdCBleGlzdCIgb3IgImNvbHVtbiBvciB2YXJpYWJsZSBkb2VzIG5vdCBleGlzdCIKKyAq IGluIGRlcGVuZGVuY3kgaWYgZXhwcmVzc2lvbiBjb250ZXh0IGFsbG93cyBzZXNzaW9uIHZhcmlh Ymxlcy4KKyAqLworc3RhdGljIGludAorY29sdW1uX29yX3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0 cyhQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IGNoYXIgKmNvbG5hbWUpCit7CisJaWYgKGV4cHJf a2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJCXJl dHVybiBlcnJtc2coImNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBj b2xuYW1lKTsKKwllbHNlCisJCXJldHVybiBlcnJtc2coImNvbHVtbiBcIiVzXCIgZG9lcyBub3Qg ZXhpc3QiLCBjb2xuYW1lKTsKK30KKwogLyoKICAqIEdlbmVyYXRlIGEgc3VpdGFibGUgZXJyb3Ig YWJvdXQgYSBtaXNzaW5nIGNvbHVtbi4KICAqCkBAIC0zNzY0LDcgKzM3NzgsNyBAQCBlcnJvck1p c3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9DT0xVTU4pLAogCQkJCQkgcmVsbmFtZSA/CiAJCQkJCSBlcnJtc2coImNvbHVtbiAl cy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkJIGVycm1zZygi Y29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCQkgY29sdW1uX29y X3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCQkgZXJyZGV0 YWlsKCJUaGVyZSBhcmUgY29sdW1ucyBuYW1lZCBcIiVzXCIsIGJ1dCB0aGV5IGFyZSBpbiB0YWJs ZXMgdGhhdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnku IiwKIAkJCQkJCQkgICBjb2xuYW1lKSwKIAkJCQkJICFyZWxuYW1lID8gZXJyaGludCgiVHJ5IHVz aW5nIGEgdGFibGUtcXVhbGlmaWVkIG5hbWUuIikgOiAwLApAQCAtMzc3NCw3ICszNzg4LDcgQEAg ZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkoZXJyY29kZShFUlJD T0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSByZWxuYW1lID8KIAkJCQkgZXJybXNnKCJjb2x1 bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJIGVycm1z ZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCSBjb2x1bW5f b3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJIGVycmRl dGFpbCgiVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgXCIlc1wiIGluIHRhYmxlIFwiJXNcIiwgYnV0 IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4iLAog CQkJCQkJICAgY29sbmFtZSwgc3RhdGUtPnJleGFjdDEtPmVyZWYtPmFsaWFzbmFtZSksCiAJCQkJ IHJ0ZV92aXNpYmxlX2lmX2xhdGVyYWwocHN0YXRlLCBzdGF0ZS0+cmV4YWN0MSkgPwpAQCAtMzc5 MiwxNCArMzgwNiwxNCBAQCBlcnJvck1pc3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAog CQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCQkgcmVsbmFtZSA/ CiAJCQkJCSBlcnJtc2coImNvbHVtbiAlcy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNv bG5hbWUpIDoKLQkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNv bG5hbWUpLAorCQkJCQkgY29sdW1uX29yX3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUs IGNvbG5hbWUpLAogCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7 CiAJCS8qIEhhbmRsZSBjYXNlIHdoZXJlIHdlIGhhdmUgYSBzaW5nbGUgYWx0ZXJuYXRpdmUgc3Bl bGxpbmcgdG8gb2ZmZXIgKi8KIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RF X1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSByZWxuYW1lID8KIAkJCQkgZXJybXNnKCJjb2x1bW4g JXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJIGVycm1zZygi Y29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCSBjb2x1bW5fb3Jf dmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJIGVycmhpbnQo IlBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uIFwiJXMuJXNcIi4iLAog CQkJCQkJIHN0YXRlLT5yZmlyc3QtPmVyZWYtPmFsaWFzbmFtZSwKIAkJCQkJCSBzdHJWYWwobGlz dF9udGgoc3RhdGUtPnJmaXJzdC0+ZXJlZi0+Y29sbmFtZXMsCkBAIC0zODEzLDcgKzM4MjcsNyBA QCBlcnJvck1pc3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCShlcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNv bHVtbiAlcy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJy bXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVt bl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJy aGludCgiUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gXCIlcy4lc1wi IG9yIHRoZSBjb2x1bW4gXCIlcy4lc1wiLiIsCiAJCQkJCQkgc3RhdGUtPnJmaXJzdC0+ZXJlZi0+ YWxpYXNuYW1lLAogCQkJCQkJIHN0clZhbChsaXN0X250aChzdGF0ZS0+cmZpcnN0LT5lcmVmLT5j b2xuYW1lcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA3NmJmODhjM2NhMi4uNmFm NmI4MDFhZDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTc3OSw3ICs3NzksOSBA QCB0cmFuc2Zvcm1Bc3NpZ25tZW50SW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ aWYgKCF0eXByZWxpZCkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3QgYXNzaWduIHRvIGZp ZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgaXRzIHR5cGUgJXMgaXMgbm90IGEg Y29tcG9zaXRlIHR5cGUiLAorCQkJCQkJIGVycm1zZyhleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25f dmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpID8KKwkJCQkJCQkJICJjYW5ub3QgYXNzaWdu IHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgXCIlc1wiIGJlY2F1c2UgaXRz IHR5cGUgJXMgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiIDoKKwkJCQkJCQkJICJjYW5ub3QgYXNz aWduIHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgaXRzIHR5cGUgJXMg aXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLAogCQkJCQkJCQlzdHJWYWwobiksIHRhcmdldE5hbWUs CiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGVJZCkpLAogCQkJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpAQCAtNzg4LDcgKzc5MCw5IEBAIHRyYW5z Zm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQlpZiAoYXR0 bnVtID09IEludmFsaWRBdHRyTnVtYmVyKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAotCQkJCQkJIGVycm1zZygiY2Fubm90IGFz c2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIFwiJXNcIiBiZWNhdXNlIHRoZXJlIGlzIG5v IHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIsCisJCQkJCQkgZXJybXNnKGV4cHJfa2luZF9h bGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkgPworCQkJCQkJCQkg ImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSBcIiVz XCIgYmVjYXVzZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgJXMiIDoKKwkJ CQkJCQkJICJjYW5ub3QgYXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJl Y2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlICVzIiwKIAkJCQkJCQkJ c3RyVmFsKG4pLCB0YXJnZXROYW1lLAogCQkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBl SWQpKSwKIAkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfZXhwci5oCmluZGV4IDBkNjRiMzAwZjhhLi5lNWFlYmY5OWI0YSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfZXhwci5oCkBAIC0yMyw0ICsyMyw2IEBAIGV4dGVybiBOb2RlICp0cmFuc2Zv cm1FeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHBy S2luCiAKIGV4dGVybiBjb25zdCBjaGFyICpQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5k IGV4cHJLaW5kKTsKIAorZXh0ZXJuIGJvb2wgZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3Zhcmlh YmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKTsKKwogI2VuZGlmCQkJCQkJCS8qIFBBUlNF X0VYUFJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdz cWxfYXJyYXkub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXku b3V0CmluZGV4IGFkNjBlMGU4YmUzLi5jMWFiOWZkN2VkOSAxMDA2NDQKLS0tIGEvc3JjL3BsL3Bs cGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0CisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9leHBlY3RlZC9wbHBnc3FsX2FycmF5Lm91dApAQCAtNDEsNyArNDEsNyBAQCBOT1RJQ0U6 ICBhID0geyIoLDExKSJ9LCBhWzFdLmkgPSAxMQogLS0gcGVyaGFwcyB0aGlzIG91Z2h0IHRvIHdv cmssIGJ1dCBmb3Igbm93IGl0IGRvZXNuJ3Q6CiBkbyAkJCBkZWNsYXJlIGEgY29tcGxleFtdOwog YmVnaW4gYVsxOjJdLmkgOj0gYXJyYXlbMTEsMTJdOyByYWlzZSBub3RpY2UgJ2EgPSAlJywgYTsg ZW5kJCQ7Ci1FUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgImkiIG9mIGNvbHVtbiAiYSIg YmVjYXVzZSBpdHMgdHlwZSBjb21wbGV4W10gaXMgbm90IGEgY29tcG9zaXRlIHR5cGUKK0VSUk9S OiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAiaSIgb2YgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBi ZWNhdXNlIGl0cyB0eXBlIGNvbXBsZXhbXSBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQogTElORSAx OiBhWzE6Ml0uaSA6PSBhcnJheVsxMSwxMl0KICAgICAgICAgXgogUVVFUlk6ICBhWzE6Ml0uaSA6 PSBhcnJheVsxMSwxMl0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3JlY29yZC5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9y ZWNvcmQub3V0CmluZGV4IDY5NzRjOGY0YTQ0Li4zOTcwYWM3MjFjOSAxMDA2NDQKLS0tIGEvc3Jj L3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dAorKysgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CkBAIC0xMzUsNyArMTM1LDcg QEAgRVJST1I6ICByZWNvcmQgImMiIGhhcyBubyBmaWVsZCAieCIKIENPTlRFWFQ6ICBQTC9wZ1NR TCBhc3NpZ25tZW50ICJjLngucTEgPSAxIgogUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVf YmxvY2sgbGluZSAxIGF0IGFzc2lnbm1lbnQKIGRvICQkIGRlY2xhcmUgYyBuZXN0ZWRfaW50OHM7 IGJlZ2luIGMuYzIueCA9IDE7IGVuZCAkJDsKLUVSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVs ZCAieCIgb2YgY29sdW1uICJjIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRh dGEgdHlwZSB0d29faW50OHMKK0VSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2Yg Y29sdW1uIG9yIHZhcmlhYmxlICJjIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGlu IGRhdGEgdHlwZSB0d29faW50OHMKIExJTkUgMTogYy5jMi54ID0gMQogICAgICAgICBeCiBRVUVS WTogIGMuYzIueCA9IDEKQEAgLTE1Nyw3ICsxNTcsNyBAQCBFUlJPUjogIHJlY29yZCAiYyIgaGFz IG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3BnU1FMIGFzc2lnbm1lbnQgImIuYy54LnExID0g MSIKIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBhc3NpZ25t ZW50CiBkbyAkJCA8PGI+PiBkZWNsYXJlIGMgbmVzdGVkX2ludDhzOyBiZWdpbiBiLmMuYzIueCA9 IDE7IGVuZCAkJDsKLUVSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1u ICJiIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0d29faW50 OHMKK0VSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1uIG9yIHZhcmlh YmxlICJiIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0d29f aW50OHMKIExJTkUgMTogYi5jLmMyLnggPSAxCiAgICAgICAgIF4KIFFVRVJZOiAgYi5jLmMyLngg PSAxCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNz aW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUub3V0CmluZGV4IDc4OWMzMTIzYjBjLi5mMDA2ZGI0ZmFhOCAxMDA2NDQK LS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJs ZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQKQEAgLTIzMiw3ICsyMzIsNyBAQCBTRVQgUk9MRSBUTyBERUZBVUxUOwogU0VU IFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOwogLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBu b3QgY3Jhc2gKIFNFTEVDVCB2YXJfcmVhZF9mdW5jKCk7Ci1FUlJPUjogIGNvbHVtbiAicGxwZ3Nx bF9zdl92YXIxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInBs cGdzcWxfc3ZfdmFyMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogcGxwZ3NxbF9zdl92YXIxCiAg ICAgICAgIF4KIFFVRVJZOiAgcGxwZ3NxbF9zdl92YXIxCmRpZmYgLS1naXQgYS9zcmMvcGwvdGNs L2V4cGVjdGVkL3BsdGNsX3F1ZXJpZXMub3V0IGIvc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9x dWVyaWVzLm91dAppbmRleCAzNWNjNmU2MmFhZC4uNDk3Y2QzODE4OWIgMTAwNjQ0Ci0tLSBhL3Ny Yy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQKKysrIGIvc3JjL3BsL3RjbC9leHBl Y3RlZC9wbHRjbF9xdWVyaWVzLm91dApAQCAtNDUwLDEyICs0NTAsMTIgQEAgQ09OVEVYVDogIHdo aWxlIGV4ZWN1dGluZwogIl9fUExUY2xfcHJvY190Y2xfZXZhbF90ZXh0IHNwaV9wcmVwYXJlXCBh XCBcImJcIFx7XCIiCiBpbiBQTC9UY2wgZnVuY3Rpb24gdGNsX2V2YWwodGV4dCkKIHNlbGVjdCB0 Y2xfZXJyb3JfaGFuZGxpbmdfdGVzdCgkdGNsJHNwaV9wcmVwYXJlICJzZWxlY3QgbW9vIiBbXSR0 Y2wkKTsKLSAgICAgICB0Y2xfZXJyb3JfaGFuZGxpbmdfdGVzdCAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFNRTFNUQVRFOiA0MjcwMyAgICAgICAgICAg ICAgICAgICAgICsKLSBjb25kaXRpb246IHVuZGVmaW5lZF9jb2x1bW4gICAgICAgICArCi0gY3Vy c29yX3Bvc2l0aW9uOiA4ICAgICAgICAgICAgICAgICAgKwotIG1lc3NhZ2U6IGNvbHVtbiAibW9v IiBkb2VzIG5vdCBleGlzdCsKKyAgICAgICAgICAgICB0Y2xfZXJyb3JfaGFuZGxpbmdfdGVzdCAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNRTFNUQVRFOiA0MjcwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyBjb25kaXRpb246IHVuZGVmaW5lZF9jb2x1bW4gICAgICAgICAgICAgICAgICAgICArCisg Y3Vyc29yX3Bvc2l0aW9uOiA4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworIG1lc3Nh Z2U6IGNvbHVtbiBvciB2YXJpYWJsZSAibW9vIiBkb2VzIG5vdCBleGlzdCsKICBzdGF0ZW1lbnQ6 IHNlbGVjdCBtb28KICgxIHJvdykKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4 cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVk L3Nlc3Npb24tdmFyaWFibGUub3V0CmluZGV4IDE5YTJlNWE4ZjY0Li4xYzQxNDlmNmVmMSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0 CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApA QCAtMTAsNyArMTAsNyBAQCB0ZXN0CiAKIHN0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsK IHN0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Ci1FUlJPUjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibXl2YXIiIGRvZXMgbm90IGV4aXN0 CiAKIHN0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQogc3RlcCBs ZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKQEAgLTIzLDcgKzIzLDcgQEAgdGVzdAogc3RlcCBzMTog QkVHSU47CiBzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CiBzdGVwIHZhbDogU0VMRUNU IG15dmFyOwotRVJST1I6ICBjb2x1bW4gIm15dmFyIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgIm15dmFyIiBkb2VzIG5vdCBleGlzdAogc3RlcCBzcjE6IFJPTExC QUNLOwogCiBzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJn IHZhbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dAppbmRleCAxNDNh ZTdjMDljMC4uY2Y3NTkxNmY0NWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvYWx0ZXJfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJf dGFibGUub3V0CkBAIC0xMzA5LDE5ICsxMzA5LDE5IEBAIHNlbGVjdCAqIGZyb20gYXRhY2MxOwog KDEgcm93KQogCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSBhOwotRVJST1I6ICBjb2x1 bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9l cyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgYTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBhdGFj YzEgb3JkZXIgYnkgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iOwotRVJST1I6ICBjb2x1 bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjog IGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBu b3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgIi4uLi4uLi4u cGcuZHJvcHBlZC4xLi4uLi4uLi4iLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5IGE7Ci1FUlJPUjogIGNvbHVt biAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSBhOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNj MSBncm91cCBieSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJPUjogIGNvbHVt biAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5v dCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSAiLi4uLi4uLi5w Zy5kcm9wcGVkLjEuLi4uLi4uLiIuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogc2VsZWN0IGF0YWNjMS4qIGZyb20gYXRhY2MxOwpAQCAtMTMzMSw3ICsxMzMxLDcg QEAgc2VsZWN0IGF0YWNjMS4qIGZyb20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgYSBmcm9t IGF0YWNjMTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1 bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBhIGZyb20g YXRhY2MxOwogICAgICAgICAgICAgICAgXgogc2VsZWN0IGF0YWNjMS5hIGZyb20gYXRhY2MxOwpA QCAtMTM0NSwxNSArMTM0NSwxNSBAQCBzZWxlY3QgYixjLGQgZnJvbSBhdGFjYzE7CiAoMSByb3cp CiAKIHNlbGVjdCBhLGIsYyxkIGZyb20gYXRhY2MxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMg bm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogc2VsZWN0IGEsYixjLGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAgICBeCiBz ZWxlY3QgKiBmcm9tIGF0YWNjMSB3aGVyZSBhID0gMTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIHdoZXJlIGEgPSAxOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4u Li4uLi4iIGZyb20gYXRhY2MxOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4x Li4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4u Li4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0 ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAgICAgICAg ICAgIF4KIHNlbGVjdCBhdGFjYzEuIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20g YXRhY2MxOwpAQCAtMTM2MSwxMSArMTM2MSwxMSBAQCBFUlJPUjogIGNvbHVtbiBhdGFjYzEuLi4u Li4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qg YXRhY2MxLiIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAg ICAgICAgICAgIF4KIHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIsYixjLGQg ZnJvbSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4u LiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgIi4uLi4u Li4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iLGIsYyxkIGZyb20gYXRhY2MxOwogICAgICAgICAgICAg ICAgXgogc2VsZWN0ICogZnJvbSBhdGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4u Li4uLi4iID0gMTsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4u IiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcu ZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20g YXRhY2MxIHdoZXJlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IC4uLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBVUERBVEVzCkBAIC0xMzc0LDcgKzEz NzQsNyBAQCBFUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImF0YWNjMSIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYSA9IDM7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KIHVwZGF0ZSBhdGFjYzEgc2V0IGIgPSAyIHdoZXJlIGEgPSAzOwotRVJST1I6 ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi YSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUg YSA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHVwZGF0ZSBh dGFjYzEgc2V0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CkBAIC0xMzgyLDcg KzEzODIsNyBAQCBFUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIg b2YgcmVsYXRpb24gImF0YWNjMSIgZG9lcyBub3QgZXhpcwogTElORSAxOiB1cGRhdGUgYXRhY2Mx IHNldCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwogICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiB1cGRhdGUgYXRhY2MxIHNldCBiID0gMiB3aGVyZSAiLi4uLi4uLi5wZy5k cm9wcGVkLjEuLi4uLi4uLiIgPSAzOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBl ZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBk YXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i Li4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIElOU0VSVHMK QEAgLTE0MzAsMTEgKzE0MzAsMTEgQEAgTElORSAxOiBpbnNlcnQgaW50byBhdGFjYzEgKCIuLi4u Li4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIixiLGMsZCkgdmEuLi4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiAtLSBERUxFVEVzCiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDM7 Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZh cmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBkZWxldGUgZnJvbSBhdGFjYzEgd2hl cmUgYSA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBkZWxldGUgZnJv bSBhdGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMzsKLUVSUk9S OiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i IGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4u Li5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogZGVsZXRlIGZyb20gYXRhY2MxOwpAQCAtMTcyMCw3ICsxNzIwLDcgQEAgc2VsZWN0 IGYxIGZyb20gYzE7CiAKIGFsdGVyIHRhYmxlIGMxIGRyb3AgY29sdW1uIGYxOwogc2VsZWN0IGYx IGZyb20gYzE7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSBm cm9tIGMxOwogICAgICAgICAgICAgICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJl ZmVyZW5jZSB0aGUgY29sdW1uICJjMS5mMiIuCkBAIC0xNzM0LDcgKzE3MzQsNyBAQCBFUlJPUjog IGNhbm5vdCBkcm9wIGluaGVyaXRlZCBjb2x1bW4gImYxIgogYWx0ZXIgdGFibGUgcDEgZHJvcCBj b2x1bW4gZjE7CiAtLSBjMS5mMSBpcyBkcm9wcGVkIG5vdywgc2luY2UgdGhlcmUgaXMgbm8gbG9j YWwgZGVmaW5pdGlvbiBmb3IgaXQKIHNlbGVjdCBmMSBmcm9tIGMxOwotRVJST1I6ICBjb2x1bW4g ImYxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgZjEgZnJvbSBjMTsKICAgICAgICAgICAgICAgIF4K IEhJTlQ6ICBQZXJoYXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiAiYzEuZjIi LgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAppbmRleCA2NGVhMzNhZWFlOC4uNjg3NGY1 YWUwZDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CkBAIC0xNjAsNyArMTYwLDcg QEAgTElORSAxOiBDT1BZIHggVE8gc3Rkb3V0IFdIRVJFIGEgPSAxOwogQ09QWSB4IGZyb20gc3Rk aW4gV0hFUkUgYSA9IDUwMDA0OwogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgYSA+IDYwMDAzOwog Q09QWSB4IGZyb20gc3RkaW4gV0hFUkUgZiA+IDYwMDAzOwotRVJST1I6ICBjb2x1bW4gImYiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZiIgZG9lcyBub3QgZXhp c3QKIExJTkUgMTogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgZiA+IDYwMDAzOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBhID0gbWF4 KHguYik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKaW5kZXggOGM1Mjc0NzRkYWYu LmU1M2FlNDUxZGZjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9y cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0CkBAIC0yNyw3 ICsyNyw3IEBAIExJTkUgMTogc2VsZWN0ICogZnJvbSBub25lc3VjaDsKICAgICAgICAgICAgICAg ICAgICAgICBeCiAtLSBiYWQgbmFtZSBpbiB0YXJnZXQgbGlzdAogc2VsZWN0IG5vbmVzdWNoIGZy b20gcGdfZGF0YWJhc2U7Ci1FUlJPUjogIGNvbHVtbiAibm9uZXN1Y2giIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibm9uZXN1Y2giIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IHNlbGVjdCBub25lc3VjaCBmcm9tIHBnX2RhdGFiYXNlOwogICAgICAgICAgICAgICAg XgogLS0gZW1wdHkgZGlzdGluY3QgbGlzdCBpc24ndCBPSwpAQCAtMzcsMTcgKzM3LDE3IEBAIExJ TkUgMTogc2VsZWN0IGRpc3RpbmN0IGZyb20gcGdfZGF0YWJhc2U7CiAgICAgICAgICAgICAgICAg ICAgICAgICBeCiAtLSBiYWQgYXR0cmlidXRlIG5hbWUgb24gbGhzIG9mIG9wZXJhdG9yCiBzZWxl Y3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIG5vbmVzdWNoID0gcGdfZGF0YWJhc2UuZGF0bmFt ZTsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0 ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBub25lc3VjaCA9IHBnX2RhdGFiYXNlLmRhdG5hLi4u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gYmFkIGF0dHJp YnV0ZSBuYW1lIG9uIHJocyBvZiBvcGVyYXRvcgogc2VsZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3 aGVyZSBwZ19kYXRhYmFzZS5kYXRuYW1lID0gbm9uZXN1Y2g7Ci1FUlJPUjogIGNvbHVtbiAibm9u ZXN1Y2giIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibm9uZXN1 Y2giIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IC4uLmVjdCAqIGZyb20gcGdfZGF0YWJhc2Ugd2hl cmUgcGdfZGF0YWJhc2UuZGF0bmFtZSA9IG5vbmVzdWNoOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmli dXRlIG5hbWUgaW4gc2VsZWN0IGRpc3RpbmN0IG9uCiBzZWxlY3QgZGlzdGluY3Qgb24gKGZvb2Jh cikgKiBmcm9tIHBnX2RhdGFiYXNlOwotRVJST1I6ICBjb2x1bW4gImZvb2JhciIgZG9lcyBub3Qg ZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmb29iYXIiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFyKSAqIGZyb20gcGdfZGF0YWJhc2U7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gZ3JvdXBpbmcgd2l0aCBGT1IgVVBE QVRFCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAppbmRleCA5YjI5NzM2OTRmZi4uZDlmMTZh ZWI5NzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dApAQCAtNjMxMCwxMyArNjMxMCwx MyBAQCBMSU5FIDE6IHNlbGVjdCB0Mi51dW5pcXVlMSBmcm9tCiBISU5UOiAgUGVyaGFwcyB5b3Ug bWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IHV1bmlx dWUxIGZyb20KICAgdGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0MS50d28gPSB0Mi50d287IC0t IGVycm9yLCBzdWdnZXN0IGJvdGggYXQgb25jZQotRVJST1I6ICBjb2x1bW4gInV1bmlxdWUxIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInV1bmlxdWUxIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgdXVuaXF1ZTEgZnJvbQogICAgICAgICAgICAgICAg XgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJ0MS51 bmlxdWUxIiBvciB0aGUgY29sdW1uICJ0Mi51bmlxdWUxIi4KIHNlbGVjdCBjdGlkIGZyb20KICAg dGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBuZWVk IHF1YWxpZmljYXRpb24KLUVSUk9SOiAgY29sdW1uICJjdGlkIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImN0aWQiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNl bGVjdCBjdGlkIGZyb20KICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGFyZSBjb2x1 bW5zIG5hbWVkICJjdGlkIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSBy ZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KQEAgLTc0MTMsNyArNzQxMyw3 IEBAIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20gaW50OF90YmwgdDEsCiAKIC0tIHRlc3Qgc29tZSBl cnJvciBjYXNlcyB3aGVyZSBMQVRFUkFMIHNob3VsZCBoYXZlIGJlZW4gdXNlZCBidXQgd2Fzbid0 CiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEsIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJP UjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJs ZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90Ymwg YSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4g dGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2Yg dGhlIHF1ZXJ5LgpAQCAtNzQyNSw3ICs3NDI1LDcgQEAgTElORSAxOiBzZWxlY3QgZjEsZyBmcm9t IGludDRfdGJsIGEsIChzZWxlY3QgYS5mMSBhcyBnKSBzczsKIERFVEFJTDogIFRoZXJlIGlzIGFu IGVudHJ5IGZvciB0YWJsZSAiYSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRo aXMgcGFydCBvZiB0aGUgcXVlcnkuCiBISU5UOiAgVG8gcmVmZXJlbmNlIHRoYXQgdGFibGUsIHlv dSBtdXN0IG1hcmsgdGhpcyBzdWJxdWVyeSB3aXRoIExBVEVSQUwuCiBzZWxlY3QgZjEsZyBmcm9t IGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwotRVJST1I6ICBjb2x1 bW4gImYxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBk b2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mg am9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5h bWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0 aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzQ2Miw3ICs3NDYyLDcgQEAgTElORSAxOiBzZWxl Y3QgMSBmcm9tIHRlbmsxIGEsIGxhdGVyYWwgKHNlbGVjdCBtYXgoYS51bmlxdWUxKSBmcm9tIGku Li4KIGNyZWF0ZSB0ZW1wIHRhYmxlIHh4MSBhcyBzZWxlY3QgZjEgYXMgeDEsIC1mMSBhcyB4MiBm cm9tIGludDRfdGJsOwogLS0gZXJyb3IsIGNhbid0IGRvIHRoaXM6CiB1cGRhdGUgeHgxIHNldCB4 MiA9IGYxIGZyb20gKHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7Ci1F UlJPUjogIGNvbHVtbiAieDEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJp YWJsZSAieDEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IC4uLiBzZXQgeDIgPSBmMSBmcm9tIChz ZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpIHNzOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJ TDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJ4MSIgaW4gdGFibGUgInh4MSIsIGJ1dCBpdCBj YW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCkBAIC03NDgy LDcgKzc0ODIsNyBAQCB1cGRhdGUgeHgxIHNldCB4MiA9IGYxIGZyb20geHgxLCBsYXRlcmFsIChz ZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpCiBFUlJPUjogIHRhYmxlIG5hbWUg Inh4MSIgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlCiAtLSBhbHNvIGVycm9yczoKIGRlbGV0ZSBm cm9tIHh4MSB1c2luZyAoc2VsZWN0ICogZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsK LUVSUk9SOiAgY29sdW1uICJ4MSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZh cmlhYmxlICJ4MSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4udGUgZnJvbSB4eDEgdXNpbmcg KHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVU QUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgIngxIiBpbiB0YWJsZSAieHgxIiwgYnV0IGl0 IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dAppbmRleCBkYmJkYTcyZDM5NS4uZDk4Nzkz ZjkyYTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQKQEAgLTIzLDcg KzIzLDcgQEAgQkVHSU47CiBTRVQgc2VhcmNoX3BhdGggdG8gcHVibGljLCB0ZXN0X25zX3NjaGVt YV8xOwogQ1JFQVRFIFNDSEVNQSB0ZXN0X25zX3NjaGVtYV8yCiAgICAgICAgQ1JFQVRFIFZJRVcg YWJjX3ZpZXcgQVMgU0VMRUNUIGMgRlJPTSBhYmM7Ci1FUlJPUjogIGNvbHVtbiAiYyIgZG9lcyBu b3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJjIiBkb2VzIG5vdCBleGlzdAog TElORSAyOiAgICAgICAgQ1JFQVRFIFZJRVcgYWJjX3ZpZXcgQVMgU0VMRUNUIGMgRlJPTSBhYmM7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogQ09NTUlU OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQKaW5kZXggOWUyMzE2NmZl ZDEuLjY3MjAxMmUxNDYxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251 bWVyb2xvZ3kub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5v dXQKQEAgLTMxNCw3ICszMTQsNyBAQCBOT1RJQ0U6ICBpID0gMTAwMgogTk9USUNFOiAgaSA9IDEw MDMKIC0tIGVycm9yIGNhc2VzCiBTRUxFQ1QgXzEwMDsKLUVSUk9SOiAgY29sdW1uICJfMTAwIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIl8xMDAiIGRvZXMgbm90 IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCBfMTAwOwogICAgICAgICAgICAgICAgXgogU0VMRUNUIDEw MF87CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dAppbmRleCAwYTY5NDU1ODFiZC4u NWM1OTliYTMxMmUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3Nx bC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dApAQCAtMjU5 OCw3ICsyNTk4LDcgQEAgZW5kOyAkJCBsYW5ndWFnZSBwbHBnc3FsOwogLS0gc2hvdWxkIGZhaWw6 IFNRTFNUQVRFIGFuZCBTUUxFUlJNIGFyZSBvbmx5IGluIGRlZmluZWQgRVhDRVBUSU9OCiAtLSBi bG9ja3MKIHNlbGVjdCBleGNwdF90ZXN0MSgpOwotRVJST1I6ICBjb2x1bW4gInNxbHN0YXRlIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInNxbHN0YXRlIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzcWxzdGF0ZQogICAgICAgICBeCiBRVUVSWTogIHNxbHN0YXRl CkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBiZWdpbgogZW5kOyAkJCBsYW5ndWFnZSBwbHBnc3FsOwog LS0gc2hvdWxkIGZhaWwKIHNlbGVjdCBleGNwdF90ZXN0MigpOwotRVJST1I6ICBjb2x1bW4gInNx bHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInNxbHN0 YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxzdGF0ZQogICAgICAgICBeCiBRVUVSWTog IHNxbHN0YXRlCkBAIC00Njc1LDcgKzQ2NzUsNyBAQCBCRUdJTgogICAgICAgICBSQUlTRSBOT1RJ Q0UgJyUsICUnLCByLnJvb21ubywgci5jb21tZW50OwogICAgIEVORCBMT09QOwogRU5EJCQ7Ci1F UlJPUjogIGNvbHVtbiAiZm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgImZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIHJ0cmltKHJvb21ubykg QVMgcm9vbW5vLCBmb28gRlJPTSBSb29tIE9SREVSIEJZIHJvb21uLi4uCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogUVVFUlk6ICBTRUxFQ1QgcnRyaW0ocm9vbW5v KSBBUyByb29tbm8sIGZvbyBGUk9NIFJvb20gT1JERVIgQlkgcm9vbW5vCkBAIC00NzE3LDcgKzQ3 MTcsNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3ggPSAlJywgeDsKIGVuZDsKICQkOwotRVJS T1I6ICBjb2x1bW4gIngiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJs ZSAieCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogeCArIDEKICAgICAgICAgXgogUVVFUlk6ICB4 ICsgMQpAQCAtNDcyOSw3ICs0NzI5LDcgQEAgYmVnaW4KICAgcmFpc2Ugbm90aWNlICd4ID0gJSwg eSA9ICUnLCB4LCB5OwogZW5kOwogJCQ7Ci1FUlJPUjogIGNvbHVtbiAieCIgZG9lcyBub3QgZXhp c3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4IiBkb2VzIG5vdCBleGlzdAogTElORSAx OiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHggKyAxCkBAIC01NzY5LDcgKzU3NjksNyBAQCBB TFRFUiBUQUJMRSBhbHRlcl90YWJsZV91bmRlcl90cmFuc2l0aW9uX3RhYmxlcwogICBEUk9QIGNv bHVtbiBuYW1lOwogVVBEQVRFIGFsdGVyX3RhYmxlX3VuZGVyX3RyYW5zaXRpb25fdGFibGVzCiAg IFNFVCBpZCA9IGlkOwotRVJST1I6ICBjb2x1bW4gIm5hbWUiIGRvZXMgbm90IGV4aXN0CitFUlJP UjogIGNvbHVtbiBvciB2YXJpYWJsZSAibmFtZSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogKFNF TEVDVCBzdHJpbmdfYWdnKGlkIHx8ICc9JyB8fCBuYW1lLCAnLCcpIEZST00gZCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBRVUVSWTogIChTRUxFQ1Qgc3RyaW5n X2FnZyhpZCB8fCAnPScgfHwgbmFtZSwgJywnKSBGUk9NIGQpCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w c3FsLm91dAppbmRleCBjNWYxZjUzZTcwZS4uMDIzM2IwZDg4ZDkgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dApAQCAtMjE0LDcgKzIxNCw3IEBAIHNlbGVjdCAkMTo6aW50IGFzIGNvbCBc YmluZCAxIFxnIFxiaW5kIDIgXGcKIC0tIGVycm9ycwogLS0gcGFyc2UgZXJyb3IKIFNFTEVDVCBm b28gXGJpbmQgXGcKLUVSUk9SOiAgY29sdW1uICJmb28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjog IGNvbHVtbiBvciB2YXJpYWJsZSAiZm9vIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1Qg Zm9vIAogICAgICAgICAgICAgICAgXgogLS0gdGNvcCBlcnJvcgpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dAppbmRleCAyYjQ3MDEzZjExMy4uMmU5ZGIyOTY5MGQgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xMTkxLDcgKzExOTEsNyBAQCBkcm9wIHJ1bGUgcnVsZXNf Zm9vcnVsZSBvbiBydWxlc19mb287CiAtLSB0aGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgZjEgaXMg bm90IGV4cG9zZWQgZm9yIHVucXVhbGlmaWVkIHJlZmVyZW5jZToKIGNyZWF0ZSBydWxlIHJ1bGVz X2Zvb3J1bGUgYXMgb24gaW5zZXJ0IHRvIHJ1bGVzX2ZvbyB3aGVyZSBmMSA8IDEwMAogZG8gaW5z dGVhZCBpbnNlcnQgaW50byBydWxlc19mb28yIHZhbHVlcyAoZjEpOwotRVJST1I6ICBjb2x1bW4g ImYxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2Vz IG5vdCBleGlzdAogTElORSAyOiBkbyBpbnN0ZWFkIGluc2VydCBpbnRvIHJ1bGVzX2ZvbzIgdmFs dWVzIChmMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KIERFVEFJTDogIFRoZXJlIGFyZSBjb2x1bW5zIG5hbWVkICJmMSIsIGJ1dCB0aGV5IGFy ZSBpbiB0YWJsZXMgdGhhdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0 aGUgcXVlcnkuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CmluZGV4IGRkZTJiYWE4ZmQyLi44MDI0OGVmMTAwNCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTMxMCw3ICszMTAsNyBA QCBFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNuJ3QgZXhpc3QKIExJTkUgMTog TEVUIHZhcjEgPSBwaSgpOwogICAgICAgICAgICAgXgogU0VMRUNUIHZhcjE7Ci1FUlJPUjogIGNv bHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ2 YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFyMTsKICAgICAgICAgICAgICAg IF4KIC0tIHNob3VsZCBiZSBvawpAQCAtNTIyLDcgKzUyMiw3IEBAIFNFTEVDVCB2MTsKIAogLS0g c2hvdWxkIGZhaWwsIGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CiBMRVQgdjEueCA9IDEwOwotRVJS T1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gInYxIiBiZWNhdXNlIHRo ZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQorRVJST1I6ICBjYW5ub3QgYXNz aWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgInYxIiBiZWNhdXNlIHRoZXJl IGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQogTElORSAxOiBMRVQgdjEueCA9IDEw OwogICAgICAgICAgICAgXgogLS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11bHRpIGNvbHVt biBxdWVyeQpAQCAtMTA3MSw3ICsxMDcxLDcgQEAgQkVHSU47CiBEUk9QIFZBUklBQkxFIHZhcjE7 CiAtLSBzaG91bGQgZmFpbAogU0VMRUNUIHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAidmFyMSIgZG9l cyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBkb2VzIG5vdCBl eGlzdAogTElORSAxOiBTRUxFQ1QgdmFyMTsKICAgICAgICAgICAgICAgIF4KIFJPTExCQUNLOwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CmluZGV4IDdmNTc1N2U4 OWM0Li5iMDViMTZkOTRiZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90 cmFuc2FjdGlvbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJhbnNhY3Rp b25zLm91dApAQCAtMjU2LDcgKzI1Niw3IEBAIFNFTEVDVCAqIEZST00gdHJhbnNfYmFyYmF6Owkt LSBzaG91bGQgaGF2ZSAxCiBCRUdJTjsKIAlTQVZFUE9JTlQgb25lOwogCQlTRUxFQ1QgdHJhbnNf Zm9vOwotRVJST1I6ICBjb2x1bW4gInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICJ0cmFuc19mb28iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNF TEVDVCB0cmFuc19mb287CiAgICAgICAgICAgICAgICBeCiAJUk9MTEJBQ0sgVE8gU0FWRVBPSU5U IG9uZTsKQEAgLTMwNSw3ICszMDUsNyBAQCBCRUdJTjsKIAlTQVZFUE9JTlQgb25lOwogCQlJTlNF UlQgSU5UTyBzYXZlcG9pbnRzIFZBTFVFUyAoNSk7CiAJCVNFTEVDVCB0cmFuc19mb287Ci1FUlJP UjogIGNvbHVtbiAidHJhbnNfZm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIHRyYW5z X2ZvbzsKICAgICAgICAgICAgICAgIF4KIENPTU1JVDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlv bi5vdXQKaW5kZXggYzczNjMxYTlhMWQuLjVjMGVhY2M1ZjE1IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3VuaW9uLm91dApAQCAtOTIyLDcgKzkyMiw3IEBAIE9SREVSIEJZIHEyLHExOwogCiAtLSBU aGlzIHNob3VsZCBmYWlsLCBiZWNhdXNlIHEyIGlzbid0IGEgbmFtZSBvZiBhbiBFWENFUFQgb3V0 cHV0IGNvbHVtbgogU0VMRUNUIHExIEZST00gaW50OF90YmwgRVhDRVBUIFNFTEVDVCBxMiBGUk9N IGludDhfdGJsIE9SREVSIEJZIHEyIExJTUlUIDE7Ci1FUlJPUjogIGNvbHVtbiAicTIiIGRvZXMg bm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAicTIiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IC4uLiBpbnQ4X3RibCBFWENFUFQgU0VMRUNUIHEyIEZST00gaW50OF90YmwgT1JE RVIgQlkgcTIgTElNSVQgMS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5h bWVkICJxMiIgaW4gdGFibGUgIipTRUxFQ1QqIDIiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5j ZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgotLSAKMi40Ny4wCgo= --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0016-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20241106-0016-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpap4 RnJvbSAwZDY4NDk2OTNmYWQ2YmQ3MGExYmRlMmZmMTU2Yjc3NTZkZWFmYTZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE2 LzIwXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9z cGkuYyAgICAgICAgICAgICAgICB8ICAzICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5j ICAgICAgICAgICAgICB8IDEyICsrKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAg ICAgICAgICAgICB8ICA4ICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYyAgICAgICAg ICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAg fCAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmggICAgICAgICAgICAgICB8ICA0ICsr CiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jICAgICAgICAgICAgICB8IDU1ICsrKysrKysr KysrKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYyAgICAgICAgICAg ICB8IDI0ICsrKysrKysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgICAgICAgICAg ICAgIHwgMjggKysrKysrKysrKystCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3ds aXN0LmggICB8ICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVkX2t3bGlzdC5o IHwgIDEgKwogc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaCAgICAgICAgICAgICAgfCAxMiAr KysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgfCAgMSArCiAx MyBmaWxlcyBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv c3BpLmMKaW5kZXggMmZiMmU3MzYwNGUuLjVhZTI1ZDA3YWQ3IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9leGVjdXRvci9zcGkuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYwpAQCAt Mjk5MSw2ICsyOTkxLDkgQEAgX1NQSV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpCiAJCQljYXNl IFJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjM6CiAJCQkJZXJyY29udGV4dCgiUEwvcGdTUUwgYXNz aWdubWVudCBcIiVzXCIiLCBxdWVyeSk7CiAJCQkJYnJlYWs7CisJCQljYXNlIFJBV19QQVJTRV9Q TFBHU1FMX0xFVDoKKwkJCQllcnJjb250ZXh0KCJMRVQgc3RhdGVtZW50IFwiJXNcIiIsIHF1ZXJ5 KTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJZXJyY29udGV4dCgiU1FMIHN0YXRlbWVu dCBcIiVzXCIiLCBxdWVyeSk7CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCA0OTZk NzVhNDk0YS4uMmVkYzUxY2ZlZTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMjAxNCw2ICsyMDE0 LDE4IEBAIHRyYW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10 KQogCiAJc3RtdC0+cXVlcnkgPSAoTm9kZSAqKSBxdWVyeTsKIAorCS8qCisJICogSW5zaWRlIFBM L3BnU1FMIHdlIGRvbid0IHdhbnQgdG8gZXhlY3V0ZSBMRVQgc3RhdGVtZW50IGFzIHV0aWxpdHkK KwkgKiBjb21tYW5kLCBiZWNhdXNlIGl0IGRpc2FsbG93IHRvIGV4ZWN1dGUgZXhwcmVzc2lvbiBh cyBzaW1wbGUKKwkgKiBleHByZXNzaW9uLiBTbyBmb3IgUEwvcGdTUUwgd2UgaGF2ZSBleHRyYSBw YXRoLCBhbmQgd2UgcmV0dXJuIFNFTEVDVC4KKwkgKiBUaGVuIGl0IGNhbiBiZSBleGVjdXRlZCBi eSBleGVjX2V2YWxfZXhwci4gUmVzdWx0IGlzIGRpcnJlY3RseSBhc3NpZ25lZAorCSAqIHRvIHRh cmdldCBzZXNzaW9uIHZhcmlhYmxlIGluc2lkZSBQTC9wZ1NRTCBMRVQgc3RhdGVtZW50IGhhbmRs ZXIuIFRoaXMKKwkgKiBpcyBleHRyYSBjb2RlLCBleHRyYSBwYXRoLCBidXQgcG9zc2liaWxpdHkg dG8gZ2V0IGZhc3RlciBleGVjdXRpb24gaXMKKwkgKiB0b28gYXR0cmFjdGl2ZS4KKwkgKi8KKwlp ZiAoc3RtdC0+cGxwZ3NxbF9tb2RlKQorCQlyZXR1cm4gcXVlcnk7CisKIAkvKiByZXByZXNlbnQg dGhlIGNvbW1hbmQgYXMgYSB1dGlsaXR5IFF1ZXJ5ICovCiAJcmVzdWx0ID0gbWFrZU5vZGUoUXVl cnkpOwogCXJlc3VsdC0+Y29tbWFuZFR5cGUgPSBDTURfVVRJTElUWTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4 IGUxODU2ODg4NGZmLi41YWUwODA0YzQ5MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC04MTcsNiArODE3LDcg QEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExp c3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjEK ICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjIKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lH TjMKKyV0b2tlbgkJTU9ERV9QTFBHU1FMX0xFVAogCiAKIC8qIFByZWNlZGVuY2U6IGxvd2VzdCB0 byBoaWdoZXN0ICovCkBAIC05NDgsNiArOTQ5LDEzIEBAIHBhcnNlX3RvcGxldmVsOgogCQkJCXBn X3l5Z2V0X2V4dHJhKHl5c2Nhbm5lciktPnBhcnNldHJlZSA9CiAJCQkJCWxpc3RfbWFrZTEobWFr ZVJhd1N0bXQoKE5vZGUgKikgbiwgQDIpKTsKIAkJCX0KKwkJCXwgTU9ERV9QTFBHU1FMX0xFVCBM ZXRTdG10CisJCQl7CisJCQkJTGV0U3RtdCAqbiA9IChMZXRTdG10ICopICQyOworCQkJCW4tPnBs cGdzcWxfbW9kZSA9IHRydWU7CisJCQkJcGdfeXlnZXRfZXh0cmEoeXlzY2FubmVyKS0+cGFyc2V0 cmVlID0KKwkJCQkJbGlzdF9tYWtlMShtYWtlUmF3U3RtdCgoTm9kZSAqKSBuLCAwKSk7CisJCQl9 CiAJCTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYwppbmRleCAxMTg0ODhjM2YzMC4uZjk0MzBhMzI5MTkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VyLmMKQEAgLTYyLDYgKzYyLDcgQEAgcmF3X3BhcnNlcihjb25zdCBjaGFy ICpzdHIsIFJhd1BhcnNlTW9kZSBtb2RlKQogCQkJW1JBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjFd ID0gTU9ERV9QTFBHU1FMX0FTU0lHTjEsCiAJCQlbUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMl0g PSBNT0RFX1BMUEdTUUxfQVNTSUdOMiwKIAkJCVtSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04zXSA9 IE1PREVfUExQR1NRTF9BU1NJR04zLAorCQkJW1JBV19QQVJTRV9QTFBHU1FMX0xFVF0gPSBNT0RF X1BMUEdTUUxfTEVULAogCQl9OwogCiAJCXl5ZXh0cmEuaGF2ZV9sb29rYWhlYWQgPSB0cnVlOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGMxNjNjOTUyNDQ1Li42NzdjZWI0OTQ2ZiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaApAQCAtMjExNCw2ICsyMTE0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgTGV0 U3RtdAogCU5vZGVUYWcJCXR5cGU7CiAJTGlzdAkgICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJp YWJsZSAqLwogCU5vZGUJICAgKnF1ZXJ5OwkJCS8qIHNvdXJjZSBleHByZXNzaW9uICovCisJYm9v bAkJcGxwZ3NxbF9tb2RlOwkvKiB0cnVlLCB3aGVuIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZAor CQkJCQkJCQkgKiAocGFyc2VkKSBieSBwbHBnc3FsIHJ1bnRpbWUgKi8KIAlpbnQJCQlsb2NhdGlv bjsKIH0gTGV0U3RtdDsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5o IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCmluZGV4IGJlMTg0ZWM1MDY2Li5lZmJjNzZm MGFkNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCisrKyBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZXIuaApAQCAtMzMsNiArMzMsOSBAQAogICogUkFXX1BBUlNFX1BM UEdTUUxfQVNTSUdObjogcGFyc2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50IHN0YXRlbWVudCwKICAq IGFuZCByZXR1cm4gYSBvbmUtZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUu ICAibiIKICAqIGdpdmVzIHRoZSBudW1iZXIgb2YgZG90dGVkIG5hbWVzIGNvbXByaXNpbmcgdGhl IHRhcmdldCBDb2x1bW5SZWYuCisgKgorICogUkFXX1BBUlNFX1BMUEdTUUxfTEVUOiBwYXJzZSBh IExFVCBzdGF0ZW1lbnQsIGFuZCByZXR1cm4gYQorICogb25lLWVsZW1lbnQgTGlzdCBjb250YWlu aW5nIGEgUmF3U3RtdCBub2RlLgogICovCiB0eXBlZGVmIGVudW0KIHsKQEAgLTQyLDYgKzQ1LDcg QEAgdHlwZWRlZiBlbnVtCiAJUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMSwKIAlSQVdfUEFSU0Vf UExQR1NRTF9BU1NJR04yLAogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjMsCisJUkFXX1BBUlNF X1BMUEdTUUxfTEVULAogfSBSYXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVlcyBmb3IgdGhlIGJhY2tz bGFzaF9xdW90ZSBHVUMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDg2YzViZDMyNGE5Li5iNWNi MWJlZTIyMyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYworKysgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAi YWNjZXNzL3R1cGNvbnZlcnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRv ci9zcGkuaCIKICNpbmNsdWRlICJleGVjdXRvci90c3RvcmVSZWNlaXZlci5oIgpAQCAtMzIzLDYg KzMyNCw4IEBAIHN0YXRpYyBpbnQJZXhlY19zdG10X2NvbW1pdChQTHBnU1FMX2V4ZWNzdGF0ZSAq ZXN0YXRlLAogCQkJCQkJCSBQTHBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyBpbnQJ ZXhlY19zdG10X3JvbGxiYWNrKFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsCiAJCQkJCQkJICAg UExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyBpbnQJZXhlY19zdG10X2xldChQ THBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAorCQkJCQkJICBQTHBnU1FMX3N0bXRfbGV0ICpsZXQp OwogCiBzdGF0aWMgdm9pZCBwbHBnc3FsX2VzdGF0ZV9zZXR1cChQTHBnU1FMX2V4ZWNzdGF0ZSAq ZXN0YXRlLAogCQkJCQkJCQkgUExwZ1NRTF9mdW5jdGlvbiAqZnVuYywKQEAgLTIxMTYsNiArMjEx OSwxMCBAQCBleGVjX3N0bXRzKFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsIExpc3QgKnN0bXRz KQogCQkJCXJjID0gZXhlY19zdG10X3JvbGxiYWNrKGVzdGF0ZSwgKFBMcGdTUUxfc3RtdF9yb2xs YmFjayAqKSBzdG10KTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgor CQkJCXJjID0gZXhlY19zdG10X2xldChlc3RhdGUsIChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQp OworCQkJCWJyZWFrOworCiAJCQlkZWZhdWx0OgogCQkJCS8qIHBvaW50IGVycl9zdG10IHRvIHBh cmVudCwgc2luY2UgdGhpcyBvbmUgc2VlbXMgY29ycnVwdCAqLwogCQkJCWVzdGF0ZS0+ZXJyX3N0 bXQgPSBzYXZlX2VzdG10OwpAQCAtNDk5OSw2ICs1MDA2LDU0IEBAIGV4ZWNfc3RtdF9yb2xsYmFj ayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKnN0bXQp CiAJcmV0dXJuIFBMUEdTUUxfUkNfT0s7CiB9CiAKKy8qIC0tLS0tLS0tLS0KKyAqIGV4ZWNfc3Rt dF9sZXQJCQlFdmFsdWF0ZSBhbiBleHByZXNzaW9uIGFuZAorICoJCQkJCXB1dCB0aGUgcmVzdWx0 IGludG8gYSBzZXNzaW9uIHZhcmlhYmxlLgorICogLS0tLS0tLS0tLQorICovCitzdGF0aWMgaW50 CitleGVjX3N0bXRfbGV0KFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsIFBMcGdTUUxfc3RtdF9s ZXQgKnN0bXQpCit7CisJYm9vbAkJaXNOdWxsOworCU9pZAkJCXZhbHR5cGU7CisJaW50MzIJCXZh bHR5cG1vZDsKKwlEYXR1bQkJdmFsdWU7CisJT2lkCQkJdmFyaWQ7CisKKwlMaXN0CSAgICpwbGFu c291cmNlczsKKwlDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlOworCisJdmFsdWUgPSBleGVj X2V2YWxfZXhwcihlc3RhdGUsCisJCQkJCQkgICBzdG10LT5leHByLAorCQkJCQkJICAgJmlzTnVs bCwKKwkJCQkJCSAgICZ2YWx0eXBlLAorCQkJCQkJICAgJnZhbHR5cG1vZCk7CisKKwkvKgorCSAq IE9pZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBzdG9yZWQgaW4gUXVlcnkgc3RydWN0 dXJlLiBJdCBpcworCSAqIHNhZmVyIHRvIHJlYWQgdGhpcyB2YWx1ZSBkaXJlY3RseSBmcm9tIHRo ZSBwbGFuIHRoYW4gdG8gaG9sZCB0aGlzIHZhbHVlCisJICogaW4gdGhlIHBscGdzcWwgY29udGV4 dCwgYmVjYXVzZSBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gaGFuZGxlCisJICogaW52YWxpZGF0aW9u IG9mIHRoZSBjYWNoZWQgdmFsdWUuIE5leHQgb3BlcmF0aW9ucyBhcmUgcmVhZCBvbmx5IHdpdGhv dXQKKwkgKiBhbnkgYWxsb2NhdGlvbnMsIHNvIHdlIGNhbiBleHBlY3QgdGhhdCByZXRyaWV2aW5n IHZhcmlkIGZyb20gUXVlcnkKKwkgKiBzaG91bGQgYmUgZmFzdC4KKwkgKi8KKwlwbGFuc291cmNl cyA9IFNQSV9wbGFuX2dldF9wbGFuX3NvdXJjZXMoc3RtdC0+ZXhwci0+cGxhbik7CisJaWYgKGxp c3RfbGVuZ3RoKHBsYW5zb3VyY2VzKSAhPSAxKQorCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBs ZW5ndGggb2YgcGxhbnNvdXJjZXMgb2YgcXVlcnkgZm9yIExFVCBzdGF0ZW1lbnQiKTsKKworCXBs YW5zb3VyY2UgPSAoQ2FjaGVkUGxhblNvdXJjZSAqKSBsaW5pdGlhbChwbGFuc291cmNlcyk7CisJ aWYgKGxpc3RfbGVuZ3RoKHBsYW5zb3VyY2UtPnF1ZXJ5X2xpc3QpICE9IDEpCisJCWVsb2coRVJS T1IsICJ1bmV4cGVjdGVkIGxlbmd0aCBvZiBwbGFuc291cmNlIG9mIHF1ZXJ5IGZvciBMRVQgc3Rh dGVtZW50Iik7CisKKwl2YXJpZCA9IGxpbml0aWFsX25vZGUoUXVlcnksIHBsYW5zb3VyY2UtPnF1 ZXJ5X2xpc3QpLT5yZXN1bHRWYXJpYWJsZTsKKwlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQll bG9nKEVSUk9SLCAib2lkIG9mIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIGlzIG5vdCB2YWxpZCIp OworCisJU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2sodmFyaWQsIHZhbHVlLCBp c051bGwpOworCisJcmV0dXJuIFBMUEdTUUxfUkNfT0s7Cit9CisKIC8qIC0tLS0tLS0tLS0KICAq IGV4ZWNfYXNzaWduX2V4cHIJCQlQdXQgYW4gZXhwcmVzc2lvbidzIHJlc3VsdCBpbnRvIGEgdmFy aWFibGUuCiAgKiAtLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxf ZnVuY3MuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5jcy5jCmluZGV4IGVlYjdjNGQ3YzA0 Li4xYjM5MzUxZGI3ZiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMK KysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMKQEAgLTI4OCw2ICsyODgsOCBAQCBw bHBnc3FsX3N0bXRfdHlwZW5hbWUoUExwZ1NRTF9zdG10ICpzdG10KQogCQkJcmV0dXJuICJDT01N SVQiOwogCQljYXNlIFBMUEdTUUxfU1RNVF9ST0xMQkFDSzoKIAkJCXJldHVybiAiUk9MTEJBQ0si OworCQljYXNlIFBMUEdTUUxfU1RNVF9MRVQ6CisJCQlyZXR1cm4gIkxFVCI7CiAJfQogCiAJcmV0 dXJuICJ1bmtub3duIjsKQEAgLTM3MCw2ICszNzIsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX3BlcmZv cm0oUExwZ1NRTF9zdG10X3BlcmZvcm0gKnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9jYWxsKFBM cGdTUUxfc3RtdF9jYWxsICpzdG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfY29tbWl0KFBMcGdTUUxf c3RtdF9jb21taXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9yb2xsYmFjayhQTHBnU1FMX3N0 bXRfcm9sbGJhY2sgKnN0bXQpOworc3RhdGljIHZvaWQgZnJlZV9sZXQoUExwZ1NRTF9zdG10X2xl dCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBmcmVlX2V4cHIoUExwZ1NRTF9leHByICpleHByKTsKIAog CkBAIC00NTksNiArNDYyLDkgQEAgZnJlZV9zdG10KFBMcGdTUUxfc3RtdCAqc3RtdCkKIAkJY2Fz ZSBQTFBHU1FMX1NUTVRfUk9MTEJBQ0s6CiAJCQlmcmVlX3JvbGxiYWNrKChQTHBnU1FMX3N0bXRf cm9sbGJhY2sgKikgc3RtdCk7CiAJCQlicmVhazsKKwkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgor CQkJZnJlZV9sZXQoKFBMcGdTUUxfc3RtdF9sZXQgKikgc3RtdCk7CisJCQlicmVhazsKIAkJZGVm YXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgY21kX3R5cGU6ICVkIiwgc3RtdC0+ Y21kX3R5cGUpOwogCQkJYnJlYWs7CkBAIC03MTMsNiArNzE5LDEyIEBAIGZyZWVfZ2V0ZGlhZyhQ THBnU1FMX3N0bXRfZ2V0ZGlhZyAqc3RtdCkKIHsKIH0KIAorc3RhdGljIHZvaWQKK2ZyZWVfbGV0 KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpCit7CisJZnJlZV9leHByKHN0bXQtPmV4cHIpOworfQor CiBzdGF0aWMgdm9pZAogZnJlZV9leHByKFBMcGdTUUxfZXhwciAqZXhwcikKIHsKQEAgLTgxNSw2 ICs4MjcsNyBAQCBzdGF0aWMgdm9pZCBkdW1wX3BlcmZvcm0oUExwZ1NRTF9zdG10X3BlcmZvcm0g KnN0bXQpOwogc3RhdGljIHZvaWQgZHVtcF9jYWxsKFBMcGdTUUxfc3RtdF9jYWxsICpzdG10KTsK IHN0YXRpYyB2b2lkIGR1bXBfY29tbWl0KFBMcGdTUUxfc3RtdF9jb21taXQgKnN0bXQpOwogc3Rh dGljIHZvaWQgZHVtcF9yb2xsYmFjayhQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKnN0bXQpOworc3Rh dGljIHZvaWQgZHVtcF9sZXQoUExwZ1NRTF9zdG10X2xldCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBk dW1wX2V4cHIoUExwZ1NRTF9leHByICpleHByKTsKIAogCkBAIC05MTQsNiArOTI3LDkgQEAgZHVt cF9zdG10KFBMcGdTUUxfc3RtdCAqc3RtdCkKIAkJY2FzZSBQTFBHU1FMX1NUTVRfUk9MTEJBQ0s6 CiAJCQlkdW1wX3JvbGxiYWNrKChQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKikgc3RtdCk7CiAJCQli cmVhazsKKwkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJZHVtcF9sZXQoKFBMcGdTUUxfc3Rt dF9sZXQgKikgc3RtdCk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1 bnJlY29nbml6ZWQgY21kX3R5cGU6ICVkIiwgc3RtdC0+Y21kX3R5cGUpOwogCQkJYnJlYWs7CkBA IC0xNTkwLDYgKzE2MDYsMTQgQEAgZHVtcF9nZXRkaWFnKFBMcGdTUUxfc3RtdF9nZXRkaWFnICpz dG10KQogCXByaW50ZigiXG4iKTsKIH0KIAorc3RhdGljIHZvaWQKK2R1bXBfbGV0KFBMcGdTUUxf c3RtdF9sZXQgKnN0bXQpCit7CisJZHVtcF9pbmQoKTsKKwlkdW1wX2V4cHIoc3RtdC0+ZXhwcik7 CisJcHJpbnRmKCJcbiIpOworfQorCiBzdGF0aWMgdm9pZAogZHVtcF9leHByKFBMcGdTUUxfZXhw ciAqZXhwcikKIHsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55CmluZGV4IDgxODJjZTI4YWExLi4zZjE1NWM0Zjhh NCAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQorKysgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZ3JhbS55CkBAIC0yMDAsNyArMjAwLDcgQEAgc3RhdGljCXZvaWQJCQlj aGVja19yYWlzZV9wYXJhbWV0ZXJzKFBMcGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldHlwZSA8 c3RtdD4Jc3RtdF9yZXR1cm4gc3RtdF9yYWlzZSBzdG10X2Fzc2VydCBzdG10X2V4ZWNzcWwKICV0 eXBlIDxzdG10PglzdG10X2R5bmV4ZWN1dGUgc3RtdF9mb3Igc3RtdF9wZXJmb3JtIHN0bXRfY2Fs bCBzdG10X2dldGRpYWcKICV0eXBlIDxzdG10PglzdG10X29wZW4gc3RtdF9mZXRjaCBzdG10X21v dmUgc3RtdF9jbG9zZSBzdG10X251bGwKLSV0eXBlIDxzdG10PglzdG10X2NvbW1pdCBzdG10X3Jv bGxiYWNrCisldHlwZSA8c3RtdD4Jc3RtdF9jb21taXQgc3RtdF9yb2xsYmFjayBzdG10X2xldAog JXR5cGUgPHN0bXQ+CXN0bXRfY2FzZSBzdG10X2ZvcmVhY2hfYQogCiAldHlwZSA8bGlzdD4JcHJv Y19leGNlcHRpb25zCkBAIC0zMDcsNiArMzA3LDcgQEAgc3RhdGljCXZvaWQJCQljaGVja19yYWlz ZV9wYXJhbWV0ZXJzKFBMcGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldG9rZW4gPGtleXdvcmQ+ CUtfSU5UTwogJXRva2VuIDxrZXl3b3JkPglLX0lTCiAldG9rZW4gPGtleXdvcmQ+CUtfTEFTVAor JXRva2VuIDxrZXl3b3JkPglLX0xFVAogJXRva2VuIDxrZXl3b3JkPglLX0xPRwogJXRva2VuIDxr ZXl3b3JkPglLX0xPT1AKICV0b2tlbiA8a2V5d29yZD4JS19NRVJHRQpAQCAtODc2LDYgKzg3Nyw4 IEBAIHByb2Nfc3RtdAkJOiBwbF9ibG9jayAnOycKIAkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCXwg c3RtdF9yb2xsYmFjawogCQkJCQkJeyAkJCA9ICQxOyB9CisJCQkJfCBzdG10X2xldAorCQkJCQkJ eyAkJCA9ICQxOyB9CiAJCQkJOwogCiBzdG10X3BlcmZvcm0JOiBLX1BFUkZPUk0KQEAgLTk5Miw2 ICs5OTUsMjkgQEAgc3RtdF9hc3NpZ24JCTogVF9EQVRVTQogCQkJCQl9CiAJCQkJOwogCitzdG10 X2xldAkJOiBLX0xFVAorCQkJCQl7CisJCQkJCQlQTHBnU1FMX3N0bXRfbGV0ICpuZXc7CisJCQkJ CQlSYXdQYXJzZU1vZGUgcG1vZGU7CisKKwkJCQkJCXBtb2RlID0gUkFXX1BBUlNFX1BMUEdTUUxf TEVUOworCisJCQkJCQluZXcgPSBwYWxsb2MwKHNpemVvZihQTHBnU1FMX3N0bXRfbGV0KSk7CisJ CQkJCQluZXctPmNtZF90eXBlID0gUExQR1NRTF9TVE1UX0xFVDsKKwkJCQkJCW5ldy0+bGluZW5v ICAgPSBwbHBnc3FsX2xvY2F0aW9uX3RvX2xpbmVubyhAMSk7CisJCQkJCQluZXctPnN0bXRpZCA9 ICsrcGxwZ3NxbF9jdXJyX2NvbXBpbGUtPm5zdGF0ZW1lbnRzOworCisJCQkJCQkvKiBwdXNoIGJh Y2sgdGhlIGhlYWQgbmFtZSB0byBpbmNsdWRlIGl0IGluIHRoZSBzdG10ICovCisJCQkJCQlwbHBn c3FsX3B1c2hfYmFja190b2tlbihLX0xFVCk7CisJCQkJCQluZXctPmV4cHIgPSByZWFkX3NxbF9j b25zdHJ1Y3QoJzsnLCAwLCAwLCAiOyIsCisJCQkJCQkJCQkJCQkJICAgcG1vZGUsCisJCQkJCQkJ CQkJCQkJICAgZmFsc2UsIHRydWUsCisJCQkJCQkJCQkJCQkJICAgTlVMTCwgTlVMTCk7CisKKwkJ CQkJCSQkID0gKFBMcGdTUUxfc3RtdCAqKW5ldzsKKwkJCQkJfQorCQkJCTsKKwogc3RtdF9nZXRk aWFnCTogS19HRVQgZ2V0ZGlhZ19hcmVhX29wdCBLX0RJQUdOT1NUSUNTIGdldGRpYWdfbGlzdCAn OycKIAkJCQkJewogCQkJCQkJUExwZ1NRTF9zdG10X2dldGRpYWcgKm5ldzsKZGlmZiAtLWdpdCBh L3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaCBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaAppbmRleCBkMzM4ZTlmNjM3NC4uYmU5NGFhNzUxYTQg MTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaAorKysg Yi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgKQEAgLTQwLDYgKzQwLDcg QEAgUEdfS0VZV09SRCgiZnJvbSIsIEtfRlJPTSkKIFBHX0tFWVdPUkQoImlmIiwgS19JRikKIFBH X0tFWVdPUkQoImluIiwgS19JTikKIFBHX0tFWVdPUkQoImludG8iLCBLX0lOVE8pCitQR19LRVlX T1JEKCJsZXQiLCBLX0xFVCkKIFBHX0tFWVdPUkQoImxvb3AiLCBLX0xPT1ApCiBQR19LRVlXT1JE KCJub3QiLCBLX05PVCkKIFBHX0tFWVdPUkQoIm51bGwiLCBLX05VTEwpCmRpZmYgLS1naXQgYS9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaCBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9wbF91bnJlc2VydmVkX2t3bGlzdC5oCmluZGV4IDY3MGI0Y2YwYzFlLi42MDI2MjhkN2Qy YSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3VucmVzZXJ2ZWRfa3dsaXN0LmgK KysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3VucmVzZXJ2ZWRfa3dsaXN0LmgKQEAgLTY5LDYg KzY5LDcgQEAgUEdfS0VZV09SRCgiaW5mbyIsIEtfSU5GTykKIFBHX0tFWVdPUkQoImluc2VydCIs IEtfSU5TRVJUKQogUEdfS0VZV09SRCgiaXMiLCBLX0lTKQogUEdfS0VZV09SRCgibGFzdCIsIEtf TEFTVCkKK1BHX0tFWVdPUkQoImxldCIsIEtfTEVUKQogUEdfS0VZV09SRCgibG9nIiwgS19MT0cp CiBQR19LRVlXT1JEKCJtZXJnZSIsIEtfTUVSR0UpCiBQR19LRVlXT1JEKCJtZXNzYWdlIiwgS19N RVNTQUdFKQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaCBiL3NyYy9w bC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKaW5kZXggNTBjM2IyODQ3MmIuLmJiNDAwNjI5YWRiIDEw MDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oCisrKyBiL3NyYy9wbC9wbHBn c3FsL3NyYy9wbHBnc3FsLmgKQEAgLTEyOCw2ICsxMjgsNyBAQCB0eXBlZGVmIGVudW0gUExwZ1NR TF9zdG10X3R5cGUKIAlQTFBHU1FMX1NUTVRfQ0FMTCwKIAlQTFBHU1FMX1NUTVRfQ09NTUlULAog CVBMUEdTUUxfU1RNVF9ST0xMQkFDSywKKwlQTFBHU1FMX1NUTVRfTEVULAogfSBQTHBnU1FMX3N0 bXRfdHlwZTsKIAogLyoKQEAgLTUyMCw2ICs1MjEsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgUExwZ1NR TF9zdG10X2Fzc2lnbgogCVBMcGdTUUxfZXhwciAqZXhwcjsKIH0gUExwZ1NRTF9zdG10X2Fzc2ln bjsKIAorLyoKKyAqIExldCBzdGF0ZW1lbnQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9z dG10X2xldAoreworCVBMcGdTUUxfc3RtdF90eXBlIGNtZF90eXBlOworCWludAkJCWxpbmVubzsK Kwl1bnNpZ25lZCBpbnQgc3RtdGlkOworCVBMcGdTUUxfZXhwciAqZXhwcjsKK30gUExwZ1NRTF9z dG10X2xldDsKKwogLyoKICAqIFBFUkZPUk0gc3RhdGVtZW50CiAgKi8KZGlmZiAtLWdpdCBhL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QKaW5kZXggMjdlMzUyZmEzNDEuLjk2ODViYzFiY2I5IDEwMDY0NAotLS0gYS9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlw ZWRlZnMubGlzdApAQCAtMTg5MCw2ICsxODkwLDcgQEAgUExwZ1NRTF9zdG10X2ZvcnEKIFBMcGdT UUxfc3RtdF9mb3JzCiBQTHBnU1FMX3N0bXRfZ2V0ZGlhZwogUExwZ1NRTF9zdG10X2lmCitQTHBn U1FMX3N0bXRfbGV0CiBQTHBnU1FMX3N0bXRfbG9vcAogUExwZ1NRTF9zdG10X29wZW4KIFBMcGdT UUxfc3RtdF9wZXJmb3JtCi0tIAoyLjQ3LjAKCg== --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0020-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20241106-0020-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jp980 RnJvbSA2OTBhYTM0ODMwNWQ4MjY4ZTI0NDM4NmJlZDA3MjVkMzQ2ZmMzNGNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBTdW4sIDIxIEp1bCAyMDI0IDE3OjA0OjQxICswMjAwClN1YmplY3Q6IFtQ QVRDSCAyMC8yMF0gcGdfcmVzdG9yZSAtQSwgLS12YXJpYWJsZQoKcG9zc2liaWxpdHkgdG8gcmVz dG9yZSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBuYW1lCi0tLQogZG9jL3NyYy9zZ21s L3JlZi9wZ19yZXN0b3JlLnNnbWwgfCAxMSArKysrKysrKysrKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X3Jlc3RvcmUuYyAgICAgfCAgOSArKysrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdf cmVzdG9yZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3JlLnNnbWwKaW5kZXggYjhi MjdlMTcxOWUuLjdhM2E0ZWFiZTI1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jl c3RvcmUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAtMTA2 LDYgKzEwNiwxNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVy bT48b3B0aW9uPi1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3Zhcmlh YmxlPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0t dmFyaWFibGU9PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8 L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8 cGFyYT4KKyAgICAgICAgUmVzdG9yZSBhIG5hbWVkIHNlc3Npb24gdmFyaWFibGUgb25seS4gIE11 bHRpcGxlIHNlc3Npb24gdmFyaWFibGVzIG1heQorICAgICAgICBiZSBzcGVjaWZpZWQgd2l0aCBt dWx0aXBsZSA8b3B0aW9uPi1BPC9vcHRpb24+IHN3aXRjaGVzLgorICAgICAgIDwvcGFyYT4KKyAg ICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50 cnk+CiAgICAgICA8dGVybT48b3B0aW9uPi1jPC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+ PG9wdGlvbj4tLWNsZWFuPC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX3Jlc3RvcmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXggZjJj MTAyMGQwNTMuLmY5MTY3MzZkNzYxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfcmVz dG9yZS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKQEAgLTEwNCw2ICsxMDQs NyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJ0cmlnZ2VyIiwgMSwgTlVMTCwg J1QnfSwKIAkJeyJ1c2UtbGlzdCIsIDEsIE5VTEwsICdMJ30sCiAJCXsidXNlcm5hbWUiLCAxLCBO VUxMLCAnVSd9LAorCQl7InZhcmlhYmxlIiwgMSwgTlVMTCwgJ0EnfSwKIAkJeyJ2ZXJib3NlIiwg MCwgTlVMTCwgJ3YnfSwKIAkJeyJzaW5nbGUtdHJhbnNhY3Rpb24iLCAwLCBOVUxMLCAnMSd9LAog CkBAIC0xNTQsNyArMTU1LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCX0KIAl9 CiAKLQl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYWNDZDplZjpGOmg6STpq OmxMOm46TjpPcDpQOlJzUzp0OlQ6VTp2d1d4MSIsCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmco YXJnYywgYXJndiwgIkE6YWNDZDplZjpGOmg6STpqOmxMOm46TjpPcDpQOlJzUzp0OlQ6VTp2d1d4 MSIsCiAJCQkJCQkJY21kb3B0cywgTlVMTCkpICE9IC0xKQogCXsKIAkJc3dpdGNoIChjKQpAQCAt MTYyLDYgKzE2MywxMSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCWNhc2UgJ2En OgkJCS8qIER1bXAgZGF0YSBvbmx5ICovCiAJCQkJb3B0cy0+ZGF0YU9ubHkgPSAxOwogCQkJCWJy ZWFrOworCQkJY2FzZSAnQSc6CQkJLyogdkFyaWFibGUgKi8KKwkJCQlvcHRzLT5zZWxUeXBlcyA9 IDE7CisJCQkJb3B0cy0+c2VsVmFyaWFibGUgPSAxOworCQkJCXNpbXBsZV9zdHJpbmdfbGlzdF9h cHBlbmQoJm9wdHMtPnZhcmlhYmxlTmFtZXMsIG9wdGFyZyk7CisJCQkJYnJlYWs7CiAJCQljYXNl ICdjJzoJCQkvKiBjbGVhbiAoaS5lLiwgZHJvcCkgc2NoZW1hIHByaW9yIHRvIGNyZWF0ZSAqLwog CQkJCW9wdHMtPmRyb3BTY2hlbWEgPSAxOwogCQkJCWJyZWFrOwpAQCAtNDYyLDYgKzQ2OCw3IEBA IHVzYWdlKGNvbnN0IGNoYXIgKnByb2duYW1lKQogCiAJcHJpbnRmKF8oIlxuT3B0aW9ucyBjb250 cm9sbGluZyB0aGUgcmVzdG9yZTpcbiIpKTsKIAlwcmludGYoXygiICAtYSwgLS1kYXRhLW9ubHkg ICAgICAgICAgICAgIHJlc3RvcmUgb25seSB0aGUgZGF0YSwgbm8gc2NoZW1hXG4iKSk7CisJcHJp bnRmKF8oIiAgLUEsIC0tdmFyaWFibGU9TkFNRSAgICAgICAgICByZXN0b3JlIG5hbWVkIHNlc3Np b24gdmFyaWFibGVcbiIpKTsKIAlwcmludGYoXygiICAtYywgLS1jbGVhbiAgICAgICAgICAgICAg ICAgIGNsZWFuIChkcm9wKSBkYXRhYmFzZSBvYmplY3RzIGJlZm9yZSByZWNyZWF0aW5nXG4iKSk7 CiAJcHJpbnRmKF8oIiAgLUMsIC0tY3JlYXRlICAgICAgICAgICAgICAgICBjcmVhdGUgdGhlIHRh cmdldCBkYXRhYmFzZVxuIikpOwogCXByaW50ZihfKCIgIC1lLCAtLWV4aXQtb24tZXJyb3IgICAg ICAgICAgZXhpdCBvbiBlcnJvciwgZGVmYXVsdCBpcyB0byBjb250aW51ZVxuIikpOwotLSAKMi40 Ny4wCgo= --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0017-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20241106-0017-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpaj3 RnJvbSAxZDU3ZDBhNWE5NzNlMGQ3ZjhiODU2YTE3ZGNjMzFhODc0ZmY5NjkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE3 LzIwXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCA4Y2VlNzMyNTYxZC4uZjc5OTM3OTgwZWUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTQ3NDQsOCArNDc0NCw3IEBAIGlubGluZV9m dW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAog CQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAog CQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+ dGFyZ2V0TGlzdCkgIT0gMSkgfHwKLQkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQor CQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKSkKIAkJZ290byBmYWls OwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQg Ki8KQEAgLTQ5NDksMjEgKzQ5NDgsMzkgQEAgc3Vic3RpdHV0ZV9hY3R1YWxfcGFyYW1ldGVyc19t dXRhdG9yKE5vZGUgKm5vZGUsCiB7CiAJaWYgKG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7 CisKKworCS8qCisJICogU1FMIGZ1bmN0aW9ucyBjYW4gY29udGFpbiB0d28gZGlmZmVyZW50IGtp bmQgb2YgcGFyYW1zLiBUaGUgbm9kZXMgd2l0aAorCSAqIHBhcmFta2luZCBQQVJBTV9FWFRFUk4g YXJlIHJlbGF0ZWQgdG8gZnVuY3Rpb24ncyBhcmd1bWVudHMgKGFuZCBzaG91bGQKKwkgKiBiZSBy ZXBsYWNlZCBpbiB0aGlzIHN0ZXApLCBiZWNhdXNlIHRoaXMgaXMgaG93IHdlIGFwcGx5IHRoZSBm dW5jdGlvbidzCisJICogYXJndW1lbnRzIGZvciBhbiBleHByZXNzaW9uLgorCSAqCisJICogVGhl IG5vZGVzIHdpdGggcGFyYW1raW5kIFBBUkFNX1ZBUklBQkxFIGFyZSByZWxhdGVkIHRvIHVzYWdl IG9mIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMuIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIG5vdCBwYXNzZWQgdG8gZXhwcmVzc2lvbgorCSAqIGJ5IGV4cHJlc3Npb24gYXJndW1l bnRzLCBzbyBpdCBzaG91bGQgbm90IGJlIHJlcGxhY2VkIGhlcmUgYnkKKwkgKiBmdW5jdGlvbidz IGFyZ3VtZW50cy4KKwkgKi8KIAlpZiAoSXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAg ICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBB UkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhURVJOICYmCisJ CQlwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX1ZBUklBQkxFKQogCQkJZWxvZyhFUlJPUiwgInVu ZXhwZWN0ZWQgcGFyYW1raW5kOiAlZCIsIChpbnQpIHBhcmFtLT5wYXJhbWtpbmQpOwotCQlpZiAo cGFyYW0tPnBhcmFtaWQgPD0gMCB8fCBwYXJhbS0+cGFyYW1pZCA+IGNvbnRleHQtPm5hcmdzKQot CQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGFyYW1pZDogJWQiLCBwYXJhbS0+cGFyYW1pZCk7CiAK LQkJLyogQ291bnQgdXNhZ2Ugb2YgcGFyYW1ldGVyICovCi0JCWNvbnRleHQtPnVzZWNvdW50c1tw YXJhbS0+cGFyYW1pZCAtIDFdKys7CisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTikKKwkJeworCQkJaWYgKHBhcmFtLT5wYXJhbWlkIDw9IDAgfHwgcGFyYW0tPnBhcmFtaWQg PiBjb250ZXh0LT5uYXJncykKKwkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBwYXJhbWlkOiAlZCIs IHBhcmFtLT5wYXJhbWlkKTsKIAotCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBh cmcgYW5kIHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KLQkJLyogV2UgZG9uJ3QgbmVlZCB0 byBjb3B5IGF0IHRoaXMgdGltZSAoaXQnbGwgZ2V0IGRvbmUgbGF0ZXIpICovCi0JCXJldHVybiBs aXN0X250aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1pZCAtIDEpOworCQkJLyogQ291bnQg dXNhZ2Ugb2YgcGFyYW1ldGVyICovCisJCQljb250ZXh0LT51c2Vjb3VudHNbcGFyYW0tPnBhcmFt aWQgLSAxXSsrOworCisJCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBhcmcgYW5k IHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KKwkJCS8qIFdlIGRvbid0IG5lZWQgdG8gY29w eSBhdCB0aGlzIHRpbWUgKGl0J2xsIGdldCBkb25lIGxhdGVyKSAqLworCQkJcmV0dXJuIGxpc3Rf bnRoKGNvbnRleHQtPmFyZ3MsIHBhcmFtLT5wYXJhbWlkIC0gMSk7CisJCX0KIAl9CiAJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRl cnNfbXV0YXRvciwKIAkJCQkJCQkJICAgKHZvaWQgKikgY29udGV4dCk7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGI1ZTM4MjA2MDcx Li5kZGUyYmFhOGZkMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKQEAgLTEwNSw3ICsxMDUsNiBAQCBTRUxFQ1QgdmFyMTsKIEVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogU0VMRUNUIHNxbGZ4 KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQotQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxw Z3NxbGZ4KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQogQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBs aW5lIDEgYXQgUkVUVVJOCkBAIC0yMTIsMTAgKzIxMSwxMCBAQCBTRUxFQ1Qgc3FsZngxKHNxbGZ4 MignSGVsbG8nKSk7CiAKIC0tIGlubGluaW5nIGlzIGJsb2NrZWQKIEVYUExBSU4gKENPU1RTIE9G RiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOwotICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFJlc3VsdAotICAgT3V0cHV0OiBzcWxmeDEo c3FsZngyKCdIZWxsbyc6OmNoYXJhY3RlciB2YXJ5aW5nKSkKKyAgIE91dHB1dDogKCh2YXIxIHx8 ICcsICc6OnRleHQpIHx8ICgodmFyMiB8fCAnLCAnOjp0ZXh0KSB8fCAnSGVsbG8nOjp0ZXh0KSkK ICgyIHJvd3MpCiAKIERST1AgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOwotLSAKMi40Ny4wCgo= --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0015-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20241106-0015-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpat5 RnJvbSBkMGFlNTRlNWM1MzA4MmI2MjM0ZDJkODE0Yjk0Y2JmNzljYjM3ODJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDc6NTc6MjkgKzAxMDAKU3ViamVjdDogW1BBVENIIDE1 LzIwXSBhbGxvdyBwYXJhbGxlbCBleGVjdXRpb24gcXVlcmllcyB3aXRoIHNlc3Npb24gdmFyaWFi bGVzCgotLS0KIGRvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sICAgICAgICAgICAgICAgICAgICB8 ICAgNiAtCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAg MTQgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICAgICAgICB8IDE0 NyArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMu YyAgICAgICAgICB8ICAxOCArLS0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dCAgICB8ICAxMiArLQogNSBmaWxlcyBjaGFuZ2VkLCAxNzEgaW5zZXJ0aW9ucygrKSwg MjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbAppbmRleCA2ODNkZWRlNmFkYy4uMWNlOWFiZjg2 ZjUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9wYXJhbGxlbC5zZ21sCkBAIC01MTUsMTIgKzUxNSw2IEBAIEVYUExBSU4gU0VMRUNUICog RlJPTSBwZ2JlbmNoX2FjY291bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUnOwogICAgICAgICBQ bGFuIG5vZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9s aXRlcmFsPi4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgotCi0gICAgPGxpc3RpdGVt PgotICAgICAgPHBhcmE+Ci0gICAgICAgIFBsYW4gbm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZh cmlhYmxlLgotICAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0 PgogCiAgPHNlY3QyIGlkPSJwYXJhbGxlbC1sYWJlbGluZyI+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwppbmRleCBiYTZlMzgyNjNjYy4uYjkyNmQzN2FmMTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwpAQCAtMjExLDcgKzIxMSwxOSBAQCBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAq cXVlcnlEZXNjLCBpbnQgZWZsYWdzKQogCSAqICAgIGJlIGNoYW5nZWQgaW5zaWRlIHF1ZXJ5IGV4 ZWN1dGlvbiB0aW1lLCBhbmQgdGhlbiBhIHJlZmVyZW5jZSB0bwogCSAqICAgIHByZXZpb3VzbHkg cmV0dXJuZWQgdmFsdWUgY2FuIGJlIGNvcnJ1cHRlZCkuCiAJICovCi0JaWYgKHF1ZXJ5RGVzYy0+ cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCisJaWYgKHF1ZXJ5RGVzYy0+bnVtX3Nlc3Np b25fdmFyaWFibGVzID4gMCkKKwl7CisJCS8qCisJCSAqIFdoZW4gYSBwYXJhbGxlbCBxdWVyeSBu ZWVkcyB0byBhY2Nlc3MgcXVlcnkgcGFyYW1ldGVycyAoaW5jbHVkaW5nCisJCSAqIHJlbGF0ZWQg c2Vzc2lvbiB2YXJpYWJsZXMpLCB0aGVuIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlCisJ CSAqIHJlc3RvcmVkIChkZXNlcmlhbGl6ZWQpIGluIHF1ZXJ5RGVzYyBhbHJlYWR5LiBTbyBqdXN0 IHB1c2ggcG9pbnRlcgorCQkgKiBvZiB0aGlzIGFycmF5IHRvIGV4ZWN1dG9yJ3MgZXN0YXRlLgor CQkgKi8KKwkJQXNzZXJ0KElzUGFyYWxsZWxXb3JrZXIoKSk7CisJCWVzdGF0ZS0+ZXNfc2Vzc2lv bl92YXJpYWJsZXMgPSBxdWVyeURlc2MtPnNlc3Npb25fdmFyaWFibGVzOworCQllc3RhdGUtPmVz X251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IHF1ZXJ5RGVzYy0+bnVtX3Nlc3Npb25fdmFyaWFibGVz OworCX0KKwllbHNlIGlmIChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVz KQogCXsKIAkJTGlzdENlbGwgICAqbGM7CiAJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwppbmRleCBiZmIzNDE5ZWZiNy4uY2I0MzRlMjc2OGUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCkBAIC0xMiw4ICsxMiw5IEBACiAgKiB3 b3JrZXJzIGFuZCBlbnN1cmluZyB0aGF0IHRoZWlyIHN0YXRlIGdlbmVyYWxseSBtYXRjaGVzIHRo YXQgb2YgdGhlCiAgKiBsZWFkZXI7IHNlZSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9SRUFE TUUucGFyYWxsZWwgZm9yIGRldGFpbHMuCiAgKiBIb3dldmVyLCB3ZSBtdXN0IHNhdmUgYW5kIHJl c3RvcmUgcmVsZXZhbnQgZXhlY3V0b3Igc3RhdGUsIHN1Y2ggYXMKLSAqIGFueSBQYXJhbUxpc3RJ bmZvIGFzc29jaWF0ZWQgd2l0aCB0aGUgcXVlcnksIGJ1ZmZlci9XQUwgdXNhZ2UgaW5mbywgYW5k Ci0gKiB0aGUgYWN0dWFsIHBsYW4gdG8gYmUgcGFzc2VkIGRvd24gdG8gdGhlIHdvcmtlci4KKyAq IGFueSBQYXJhbUxpc3RJbmZvIGFzc29jaWF0ZWQgd2l0aCB0aGUgcXVlcnksIGJ1ZmZlci9XQUwg dXNhZ2UgaW5mbywKKyAqIHNlc3Npb24gdmFyaWFibGVzIGJ1ZmZlciwgYW5kIHRoZSBhY3R1YWwg cGxhbiB0byBiZSBwYXNzZWQgZG93biB0bworICogdGhlIHdvcmtlci4KICAqCiAgKiBJREVOVElG SUNBVElPTgogICoJICBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtNjQs NiArNjUsNyBAQAogI2RlZmluZSBQQVJBTExFTF9LRVlfUVVFUllfVEVYVAkJVUlOVDY0Q09OU1Qo MHhFMDAwMDAwMDAwMDAwMDA4KQogI2RlZmluZSBQQVJBTExFTF9LRVlfSklUX0lOU1RSVU1FTlRB VElPTiBVSU5UNjRDT05TVCgweEUwMDAwMDAwMDAwMDAwMDkpCiAjZGVmaW5lIFBBUkFMTEVMX0tF WV9XQUxfVVNBR0UJCQlVSU5UNjRDT05TVCgweEUwMDAwMDAwMDAwMDAwMEEpCisjZGVmaW5lIFBB UkFMTEVMX0tFWV9TRVNTSU9OX1ZBUklBQkxFUwlVSU5UNjRDT05TVCgweEUwMDAwMDAwMDAwMDAw MEIpCiAKICNkZWZpbmUgUEFSQUxMRUxfVFVQTEVfUVVFVUVfU0laRQkJNjU1MzYKIApAQCAtMTM4 LDYgKzE0MCwxMiBAQCBzdGF0aWMgYm9vbCBFeGVjUGFyYWxsZWxSZXRyaWV2ZUluc3RydW1lbnRh dGlvbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwKIC8qIEhlbHBlciBmdW5jdGlvbiB0aGF0IHJ1bnMg aW4gdGhlIHBhcmFsbGVsIHdvcmtlci4gKi8KIHN0YXRpYyBEZXN0UmVjZWl2ZXIgKkV4ZWNQYXJh bGxlbEdldFJlY2VpdmVyKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKKy8qIEhl bHBlciBmdW5jdGlvbnMgdGhhdCBjYW4gcGFzcyB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMg Ki8KK3N0YXRpYyBTaXplIEVzdGltYXRlU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSk7 CitzdGF0aWMgdm9pZCBTZXJpYWxpemVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0YXRlLCBj aGFyICoqc3RhcnRfYWRkcmVzcyk7CitzdGF0aWMgU2Vzc2lvblZhcmlhYmxlVmFsdWUgKlJlc3Rv cmVTZXNzaW9uVmFyaWFibGVzKGNoYXIgKipzdGFydF9hZGRyZXNzLAorCQkJCQkJCQkJCQkJCSBp bnQgKm51bV9zZXNzaW9uX3ZhcmlhYmxlcyk7CisKIC8qCiAgKiBDcmVhdGUgYSBzZXJpYWxpemVk IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFuIHRvIGJlIHNlbnQgdG8gZWFjaCB3b3JrZXIuCiAg Ki8KQEAgLTU5Niw2ICs2MDQsNyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBs YW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJY2hhcgkgICAqcHN0bXRfZGF0YTsKIAljaGFyCSAg ICpwc3RtdF9zcGFjZTsKIAljaGFyCSAgICpwYXJhbWxpc3RpbmZvX3NwYWNlOworCWNoYXIJICAg KnNlc3Npb25fdmFyaWFibGVzX3NwYWNlOwogCUJ1ZmZlclVzYWdlICpidWZ1c2FnZV9zcGFjZTsK IAlXYWxVc2FnZSAgICp3YWx1c2FnZV9zcGFjZTsKIAlTaGFyZWRFeGVjdXRvckluc3RydW1lbnRh dGlvbiAqaW5zdHJ1bWVudGF0aW9uID0gTlVMTDsKQEAgLTYwNSw2ICs2MTQsNyBAQCBFeGVjSW5p dFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJaW50 CQkJaW5zdHJ1bWVudGF0aW9uX2xlbiA9IDA7CiAJaW50CQkJaml0X2luc3RydW1lbnRhdGlvbl9s ZW4gPSAwOwogCWludAkJCWluc3RydW1lbnRfb2Zmc2V0ID0gMDsKKwlpbnQJCQlzZXNzaW9uX3Zh cmlhYmxlc19sZW4gPSAwOwogCVNpemUJCWRzYV9taW5zaXplID0gZHNhX21pbmltdW1fc2l6ZSgp OwogCWNoYXIJICAgKnF1ZXJ5X3N0cmluZzsKIAlpbnQJCQlxdWVyeV9sZW47CkBAIC02NjAsNiAr NjcwLDExIEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3Rh dGUgKmVzdGF0ZSwKIAlzaG1fdG9jX2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsIHBh cmFtbGlzdGluZm9fbGVuKTsKIAlzaG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRv ciwgMSk7CiAKKwkvKiBFc3RpbWF0ZSBzcGFjZSBmb3Igc2VyaWFsaXplZCBzZXNzaW9uIHZhcmlh Ymxlcy4gKi8KKwlzZXNzaW9uX3ZhcmlhYmxlc19sZW4gPSBFc3RpbWF0ZVNlc3Npb25WYXJpYWJs ZXMoZXN0YXRlKTsKKwlzaG1fdG9jX2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsIHNl c3Npb25fdmFyaWFibGVzX2xlbik7CisJc2htX3RvY19lc3RpbWF0ZV9rZXlzKCZwY3h0LT5lc3Rp bWF0b3IsIDEpOworCiAJLyoKIAkgKiBFc3RpbWF0ZSBzcGFjZSBmb3IgQnVmZmVyVXNhZ2UuCiAJ ICoKQEAgLTc2MSw2ICs3NzYsMTEgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpw bGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFS QUxMRUxfS0VZX1BBUkFNTElTVElORk8sIHBhcmFtbGlzdGluZm9fc3BhY2UpOwogCVNlcmlhbGl6 ZVBhcmFtTGlzdChlc3RhdGUtPmVzX3BhcmFtX2xpc3RfaW5mbywgJnBhcmFtbGlzdGluZm9fc3Bh Y2UpOwogCisJLyogU3RvcmUgc2VyaWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNz aW9uX3ZhcmlhYmxlc19zcGFjZSA9IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLCBzZXNzaW9u X3ZhcmlhYmxlc19sZW4pOworCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZ X1NFU1NJT05fVkFSSUFCTEVTLCBzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSk7CisJU2VyaWFsaXpl U2Vzc2lvblZhcmlhYmxlcyhlc3RhdGUsICZzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSk7CisKIAkv KiBBbGxvY2F0ZSBzcGFjZSBmb3IgZWFjaCB3b3JrZXIncyBCdWZmZXJVc2FnZTsgbm8gbmVlZCB0 byBpbml0aWFsaXplLiAqLwogCWJ1ZnVzYWdlX3NwYWNlID0gc2htX3RvY19hbGxvY2F0ZShwY3h0 LT50b2MsCiAJCQkJCQkJCQkgIG11bF9zaXplKHNpemVvZihCdWZmZXJVc2FnZSksIHBjeHQtPm53 b3JrZXJzKSk7CkBAIC0xNDExLDYgKzE0MzEsNyBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2Vn bWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJU2hhcmVkSml0SW5zdHJ1bWVudGF0aW9uICpqaXRf aW5zdHJ1bWVudGF0aW9uOwogCWludAkJCWluc3RydW1lbnRfb3B0aW9ucyA9IDA7CiAJdm9pZAkg ICAqYXJlYV9zcGFjZTsKKwljaGFyCSAgICpzZXNzaW9udmFyaWFibGVfc3BhY2U7CiAJZHNhX2Fy ZWEgICAqYXJlYTsKIAlQYXJhbGxlbFdvcmtlckNvbnRleHQgcHdjeHQ7CiAKQEAgLTE0MzYsNiAr MTQ1NywxNCBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0 b2MpCiAJYXJlYV9zcGFjZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0RTQSwg ZmFsc2UpOwogCWFyZWEgPSBkc2FfYXR0YWNoX2luX3BsYWNlKGFyZWFfc3BhY2UsIHNlZyk7CiAK KwkvKiBSZWNvbnN0cnVjdCBzZXNzaW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNzaW9udmFyaWFibGVf c3BhY2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsCisJCQkJCQkJCQkJICAgUEFSQUxMRUxfS0VZX1NF U1NJT05fVkFSSUFCTEVTLAorCQkJCQkJCQkJCSAgIGZhbHNlKTsKKwlxdWVyeURlc2MtPnNlc3Np b25fdmFyaWFibGVzID0KKwkJUmVzdG9yZVNlc3Npb25WYXJpYWJsZXMoJnNlc3Npb252YXJpYWJs ZV9zcGFjZSwKKwkJCQkJCQkJJnF1ZXJ5RGVzYy0+bnVtX3Nlc3Npb25fdmFyaWFibGVzKTsKKwog CS8qIFN0YXJ0IHVwIHRoZSBleGVjdXRvciAqLwogCXF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPmpp dEZsYWdzID0gZnBlcy0+aml0X2ZsYWdzOwogCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCBmcGVz LT5lZmxhZ3MpOwpAQCAtMTUwNCwzICsxNTMzLDExNyBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21f c2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOwog CXJlY2VpdmVyLT5yRGVzdHJveShyZWNlaXZlcik7CiB9CisKKy8qCisgKiBFc3RpbWF0ZSB0aGUg YW1vdW50IG9mIHNwYWNlIHJlcXVpcmVkIHRvIHNlcmlhbGl6ZSBhIHNlc3Npb24gdmFyaWFibGUu CisgKi8KK3N0YXRpYyBTaXplCitFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3Rh dGUpCit7CisJaW50CQkJaTsKKwlTaXplCQlzeiA9IHNpemVvZihpbnQpOworCisJaWYgKGVzdGF0 ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXMgPT0gTlVMTCkKKwkJcmV0dXJuIHN6OworCisJZm9yIChp ID0gMDsgaSA8IGVzdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOyBpKyspCisJeworCQlT ZXNzaW9uVmFyaWFibGVWYWx1ZSAqc3ZhcnZhbDsKKwkJT2lkCQkJdHlwZU9pZDsKKwkJaW50MTYJ CXR5cExlbjsKKwkJYm9vbAkJdHlwQnlWYWw7CisKKwkJc3ZhcnZhbCA9ICZlc3RhdGUtPmVzX3Nl c3Npb25fdmFyaWFibGVzW2ldOworCisJCXR5cGVPaWQgPSBzdmFydmFsLT50eXBpZDsKKworCQlz eiA9IGFkZF9zaXplKHN6LCBzaXplb2YoT2lkKSk7IC8qIHNwYWNlIGZvciB0eXBlIE9JRCAqLwor CisJCS8qIHNwYWNlIGZvciBkYXR1bS9pc251bGwgKi8KKwkJQXNzZXJ0KE9pZElzVmFsaWQodHlw ZU9pZCkpOworCQlnZXRfdHlwbGVuYnl2YWwodHlwZU9pZCwgJnR5cExlbiwgJnR5cEJ5VmFsKTsK KworCQlzeiA9IGFkZF9zaXplKHN6LAorCQkJCQkgIGRhdHVtRXN0aW1hdGVTcGFjZShzdmFydmFs LT52YWx1ZSwgc3ZhcnZhbC0+aXNudWxsLCB0eXBCeVZhbCwgdHlwTGVuKSk7CisJfQorCisJcmV0 dXJuIHN6OworfQorCisvKgorICogU2VyaWFsaXplIGEgc2Vzc2lvbiB2YXJpYWJsZXMgYnVmZmVy IGludG8gY2FsbGVyLXByb3ZpZGVkIHN0b3JhZ2UuCisgKgorICogV2Ugd3JpdGUgdGhlIG51bWJl ciBvZiBwYXJhbWV0ZXJzIGZpcnN0LCBhcyBhIDQtYnl0ZSBpbnRlZ2VyLCBhbmQgdGhlbgorICog d3JpdGUgZGV0YWlscyBmb3IgZWFjaCBwYXJhbWV0ZXIgaW4gdHVybi4gIFRoZSBkZXRhaWxzIGZv ciBlYWNoIHBhcmFtZXRlcgorICogY29uc2lzdCBvZiBhIDQtYnl0ZSB0eXBlIE9JRCwgYW5kIHRo ZW4gdGhlIGRhdHVtIGFzIHNlcmlhbGl6ZWQgYnkKKyAqIGRhdHVtU2VyaWFsaXplKCkuICBUaGUg Y2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBlbnN1cmluZyB0aGF0IHRoZXJlIGlzCisgKiBlbm91 Z2ggc3RvcmFnZSB0byBzdG9yZSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgd2lsbCBiZSB3cml0 dGVuOyB1c2UKKyAqIEVzdGltYXRlU2Vzc2lvblZhcmlhYmxlcyB0byBmaW5kIG91dCBob3cgbWFu eSB3aWxsIGJlIG5lZWRlZC4KKyAqICpzdGFydF9hZGRyZXNzIGlzIHVwZGF0ZWQgdG8gcG9pbnQg dG8gdGhlIGJ5dGUgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRob3NlCisgKiB3cml0dGVuLgorICoK KyAqIFJlc3RvcmVTZXNzaW9uVmFyaWFibGVzIGNhbiBiZSB1c2VkIHRvIHJlY3JlYXRlIGEgc2Vz c2lvbiB2YXJpYWJsZSBidWZmZXIKKyAqIGJhc2VkIG9uIHRoZSBzZXJpYWxpemVkIHJlcHJlc2Vu dGF0aW9uOworICovCitzdGF0aWMgdm9pZAorU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxlcyhFU3Rh dGUgKmVzdGF0ZSwgY2hhciAqKnN0YXJ0X2FkZHJlc3MpCit7CisJaW50CQkJbnBhcmFtczsKKwlp bnQJCQlpOworCisJLyogV3JpdGUgbnVtYmVyIG9mIHBhcmFtZXRlcnMuICovCisJbnBhcmFtcyA9 IGVzdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOworCW1lbWNweSgqc3RhcnRfYWRkcmVz cywgJm5wYXJhbXMsIHNpemVvZihpbnQpKTsKKwkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2YoaW50 KTsKKworCS8qIFdyaXRlIGVhY2ggcGFyYW1ldGVyIGluIHR1cm4uICovCisJZm9yIChpID0gMDsg aSA8IG5wYXJhbXM7IGkrKykKKwl7CisJCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzdmFydmFsOwor CQlPaWQJCQl0eXBlT2lkOworCQlpbnQxNgkJdHlwTGVuOworCQlib29sCQl0eXBCeVZhbDsKKwor CQlzdmFydmFsID0gJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV07CisJCXR5cGVPaWQg PSBzdmFydmFsLT50eXBpZDsKKworCQkvKiBXcml0ZSB0eXBlIE9JRC4gKi8KKwkJbWVtY3B5KCpz dGFydF9hZGRyZXNzLCAmdHlwZU9pZCwgc2l6ZW9mKE9pZCkpOworCQkqc3RhcnRfYWRkcmVzcyAr PSBzaXplb2YoT2lkKTsKKworCQlBc3NlcnQoT2lkSXNWYWxpZCh0eXBlT2lkKSk7CisJCWdldF90 eXBsZW5ieXZhbCh0eXBlT2lkLCAmdHlwTGVuLCAmdHlwQnlWYWwpOworCisJCWRhdHVtU2VyaWFs aXplKHN2YXJ2YWwtPnZhbHVlLCBzdmFydmFsLT5pc251bGwsIHR5cEJ5VmFsLCB0eXBMZW4sCisJ CQkJCSAgIHN0YXJ0X2FkZHJlc3MpOworCX0KK30KKworc3RhdGljIFNlc3Npb25WYXJpYWJsZVZh bHVlICoKK1Jlc3RvcmVTZXNzaW9uVmFyaWFibGVzKGNoYXIgKipzdGFydF9hZGRyZXNzLCBpbnQg Km51bV9zZXNzaW9uX3ZhcmlhYmxlcykKK3sKKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc2Vzc2lv bl92YXJpYWJsZXM7CisJaW50CQkJaTsKKwlpbnQJCQlucGFyYW1zOworCisJbWVtY3B5KCZucGFy YW1zLCAqc3RhcnRfYWRkcmVzcywgc2l6ZW9mKGludCkpOworCSpzdGFydF9hZGRyZXNzICs9IHNp emVvZihpbnQpOworCisJKm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IG5wYXJhbXM7CisJc2Vzc2lv bl92YXJpYWJsZXMgPSAoU2Vzc2lvblZhcmlhYmxlVmFsdWUgKikKKwkJcGFsbG9jKG5wYXJhbXMg KiBzaXplb2YoU2Vzc2lvblZhcmlhYmxlVmFsdWUpKTsKKworCWZvciAoaSA9IDA7IGkgPCBucGFy YW1zOyBpKyspCisJeworCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc3ZhcnZhbCA9ICZzZXNzaW9u X3ZhcmlhYmxlc1tpXTsKKworCQkvKiBSZWFkIHR5cGUgT0lELiAqLworCQltZW1jcHkoJnN2YXJ2 YWwtPnR5cGlkLCAqc3RhcnRfYWRkcmVzcywgc2l6ZW9mKE9pZCkpOworCQkqc3RhcnRfYWRkcmVz cyArPSBzaXplb2YoT2lkKTsKKworCQkvKiBSZWFkIGRhdHVtL2lzbnVsbC4gKi8KKwkJc3ZhcnZh bC0+dmFsdWUgPSBkYXR1bVJlc3RvcmUoc3RhcnRfYWRkcmVzcywgJnN2YXJ2YWwtPmlzbnVsbCk7 CisJfQorCisJcmV0dXJuIHNlc3Npb25fdmFyaWFibGVzOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0 aWwvY2xhdXNlcy5jCmluZGV4IGE1NDUyYzBjOWU0Li44Y2VlNzMyNTYxZCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29w dGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtOTI0LDI1ICs5MjQsMTkgQEAgbWF4X3BhcmFsbGVs X2hhemFyZF93YWxrZXIoTm9kZSAqbm9kZSwgbWF4X3BhcmFsbGVsX2hhemFyZF9jb250ZXh0ICpj b250ZXh0KQogCiAJLyoKIAkgKiBXZSBjYW4ndCBwYXNzIFBhcmFtcyB0byB3b3JrZXJzIGF0IHRo ZSBtb21lbnQgZWl0aGVyLCBzbyB0aGV5IGFyZSBhbHNvCi0JICogcGFyYWxsZWwtcmVzdHJpY3Rl ZCwgdW5sZXNzIHRoZXkgYXJlIFBBUkFNX0VYVEVSTiBQYXJhbXMgb3IgYXJlCi0JICogUEFSQU1f RVhFQyBQYXJhbXMgbGlzdGVkIGluIHNhZmVfcGFyYW1faWRzLCBtZWFuaW5nIHRoZXkgY291bGQg YmUKLQkgKiBlaXRoZXIgZ2VuZXJhdGVkIHdpdGhpbiB3b3JrZXJzIG9yIGNhbiBiZSBjb21wdXRl ZCBieSB0aGUgbGVhZGVyIGFuZAotCSAqIHRoZW4gdGhlaXIgdmFsdWUgY2FuIGJlIHBhc3NlZCB0 byB3b3JrZXJzLgorCSAqIHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVubGVzcyB0aGV5IGFyZSBQQVJB TV9FWFRFUk4gb3IgUEFSQU1fVkFSSUFCTEUKKwkgKiBQYXJhbXMgb3IgYXJlIFBBUkFNX0VYRUMg UGFyYW1zIGxpc3RlZCBpbiBzYWZlX3BhcmFtX2lkcywgbWVhbmluZyB0aGV5CisJICogY291bGQg YmUgZWl0aGVyIGdlbmVyYXRlZCB3aXRoaW4gd29ya2VycyBvciBjYW4gYmUgY29tcHV0ZWQgYnkg dGhlCisJICogbGVhZGVyIGFuZCB0aGVuIHRoZWlyIHZhbHVlIGNhbiBiZSBwYXNzZWQgdG8gd29y a2Vycy4KIAkgKi8KIAllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQogCXsKIAkJUGFyYW0JICAg KnBhcmFtID0gKFBhcmFtICopIG5vZGU7CiAKLQkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFS QU1fRVhURVJOKQorCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4gfHwKKwkJ CXBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCiAJCQlyZXR1cm4gZmFsc2U7CiAK LQkJLyogd2UgZG9uJ3Qgc3VwcG9ydCBwYXNzaW5nIHNlc3Npb24gdmFyaWFibGVzIHRvIHdvcmtl cnMgKi8KLQkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCi0JCXsKLQkJ CWlmIChtYXhfcGFyYWxsZWxfaGF6YXJkX3Rlc3QoUFJPUEFSQUxMRUxfUkVTVFJJQ1RFRCwgY29u dGV4dCkpCi0JCQkJcmV0dXJuIHRydWU7Ci0JCX0KLQogCQlpZiAocGFyYW0tPnBhcmFta2luZCAh PSBQQVJBTV9FWEVDIHx8CiAJCQkhbGlzdF9tZW1iZXJfaW50KGNvbnRleHQtPnNhZmVfcGFyYW1f aWRzLCBwYXJhbS0+cGFyYW1pZCkpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggNDBlM2VhOGE1ZGMuLmI1ZTM4MjA2MDcxIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApA QCAtNjQ0LDEyICs2NDQsMTQgQEAgU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJF IGElMTAgPSB6ZXJvOwogCiAtLSBwYXJhbGxlbCBleGVjdXRpb24gaXMgbm90IHN1cHBvcnRlZCB5 ZXQKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdI RVJFIGElMTAgPSB6ZXJvOwotICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBBZ2dyZWdhdGUKLSAgIC0+ICBTZXEgU2NhbiBvbiBzdmFyX3Rlc3QKLSAg ICAgICAgIEZpbHRlcjogKChhICUgMTApID0gemVybykKLSgzIHJvd3MpCisgICAtPiAgR2F0aGVy CisgICAgICAgICBXb3JrZXJzIFBsYW5uZWQ6IDIKKyAgICAgICAgIC0+ICBQYXJhbGxlbCBTZXEg U2NhbiBvbiBzdmFyX3Rlc3QKKyAgICAgICAgICAgICAgIEZpbHRlcjogKChhICUgMTApID0gemVy bykKKyg1IHJvd3MpCiAKIExFVCB6ZXJvID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVz dCk7CiAtLSByZXN1bHQgc2hvdWxkIGJlIDEwMDAKLS0gCjIuNDcuMAoK --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20241106-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpb47 RnJvbSA4ZmNhMzU4YTU5N2E5MjgwNzBjNDAzNTI0OGM2OGZhMmIzOTdiZWYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAxNDo0MDozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MjBdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoKQWxt b3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDY5ICsrKysrKystCiBzcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNDEgKysrLS0KIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAxOSArKy0KIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgMzYgKysrKwogc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgMTIgKy0KIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICsrLS0KIC4uLi9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDE1NSArKysrKysrKysrKysrKysr Ky0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDEyMiAr KysrKysrKysrKysrKwogMTYgZmlsZXMgY2hhbmdlZCwgNTIzIGluc2VydGlvbnMoKyksIDQ2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggNDBmYjAzZmUyNjUuLjljMmQ5MDQzZjU5IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbApAQCAtOTg0NSw2ICs5ODQ1LDI2IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxh Y2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxl PiZsCiAKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZh cm5vdG51bGw8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgVHJ1ZSBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBkb2Vz bid0IGFsbG93IG51bGwgdmFsdWVzLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS4KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyaXNpbW11dGFibGU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5ib29sZWFuPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVHJ1 ZSBpZiB0aGUgdmFyaWFibGUgaXMgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWlt bXV0YWJsZSI+aW1tdXRhYmxlPC9saW5rPiAoY2Fubm90IGJlIG1vZGlmaWVkKS4KKyAgICAgICBU aGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ dmFyZW94YWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwvdHlwZT4KICAgICAgICA8c3Ry dWN0ZmllbGQ+dmFyeGFjdGVuZGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+ CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9w bHBnc3FsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCmluZGV4IGJmYmZmOWFiNzRl Li5lNzA0ZTA1YTk5MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCkBAIC02MDQ0LDcgKzYwNDQsOCBAQCAkJCBMQU5H VUFHRSBwbHBnc3FsIFNUUklDVCBJTU1VVEFCTEU7CiAgICAgIFlvdSBjYW4gY29uc2lkZXIgdHJh bnNsYXRpbmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNjaGVtYSBpbgogICAgICA8cHJvZHVj dG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFja2FnZSBmdW5jdGlvbnMgYW5kIHBy b2NlZHVyZXMKICAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVz IGluIHRoYXQgc2NoZW1hLCBhbmQgcGFja2FnZQotICAgICB2YXJpYWJsZXMgY291bGQgYmUgdHJh bnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KKyAgICAgdmFyaWFi bGVzIGNvdWxkIGJlIHRyYW5zbGF0ZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgb3IgaW1tdXRhYmxl IHNlc3Npb24KKyAgICAgdmFyaWFibGVzIGluIHRoYXQgc2NoZW1hLgogICAgICAoc2VlIDx4cmVm IGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPikuCiAgICAgPC9wYXJhPgogICAgPC9z ZWN0Mz4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IDgxODdjMThlMjhi Li4wMDkzODc0M2MwZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFi bGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0y Niw4ICsyNiw4IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2 PgogPHN5bm9wc2lzPgotQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBb IElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBl PC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KLSAgICBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1J VCBEUk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQorQ1JFQVRFIFsgeyBURU1QT1JB UlkgfCBURU1QIH0gXSBbIElNTVVUQUJMRSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsg Q09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNl YWJsZT4gXQorICAgIFsgTk9UIE5VTEwgXSBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9Q IHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9w c2lzZGl2PgogIDxyZWZzZWN0MT4KQEAgLTY1LDYgKzY1LDIyIEBAIENSRUFURSBbIHsgVEVNUE9S QVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwCiAKICAgPHZhcmlhYmxlbGlzdD4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNy ZWF0ZXZhcmlhYmxlLWltbXV0YWJsZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+SU1NVVRBQkxFPC9s aXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGFz c2lnbmVkIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBub3QgYmUgY2hhbmdlZC4K KyAgICAgIE9ubHkgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9lc24ndCBoYXZlIGEgZGVmYXVs dCB2YWx1ZSwgYSBzaW5nbGUKKyAgICAgIGluaXRpYWxpemF0aW9uIGlzIGFsbG93ZWQgdXNpbmcg dGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gT25jZQorICAgICAgZG9uZSwgbm8g ZnVydGhlciBjaGFuZ2UgaXMgYWxsb3dlZCB1bnRpbCBlbmQgb2YgdHJhbnNhY3Rpb24KKyAgICAg IGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBjcmVhdGVkIHdpdGggY2xhdXNlIDxsaXRlcmFs Pk9OIFRSQU5TQUNUSU9OCisgICAgICBFTkQgUkVTRVQ8L2xpdGVyYWw+LCBvciB1bnRpbCByZXNl dCBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMgYnkKKyAgICAgIDxjb21tYW5kPkRJU0NBUkQgVkFS SUFCTEVTPC9jb21tYW5kPiwgb3IgdW50aWwgcmVzZXQgb2YgYWxsIHNlc3Npb24KKyAgICAgIG9i amVjdHMgYnkgY29tbWFuZCA8Y29tbWFuZD5ESVNDQVJEIEFMTDwvY29tbWFuZD4uCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0 ZW50cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CiAgICAgPHRlcm0+ PGxpdGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpA QCAtMTA1LDYgKzEyMSwxOCBAQCBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklB QkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icAogICAgIDwvbGlzdGl0 ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLW5vdC1udWxsIj4KKyAgICA8dGVybT48bGl0ZXJhbD5OT1QgTlVMTDwvbGl0ZXJh bD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJh bD5OT1QgTlVMTDwvbGl0ZXJhbD4gY2xhdXNlIGZvcmJpZHMgc2V0dGluZyB0aGUgc2Vzc2lvbgor ICAgICAgdmFyaWFibGUgdG8gYSBudWxsIHZhbHVlLiBBIHNlc3Npb24gdmFyaWFibGUgY3JlYXRl ZCBhcyBOT1QgTlVMTAorICAgICAgc2hvdWxkIG5vdCB0byBoYXZlIGEgZGVjbGFyZWQgZGVmYXVs dCB2YWx1ZSwgYW5kIGlmIHRoZSB2YXJpYWJsZQorICAgICAgaGFzIG5vdCBhc3NpZ25lZCB2YWx1 ZSwgdGhlbiB0aGUgcmVhZGluZyBvZiB0aGlzIHZhcmlhYmxlIGZhaWxzLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5 IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGVmYXVsdCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+REVG QVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90 ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf dmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCA3ODE1 ODdmOTkxMy4uMzRiMGI5NzE1MTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTQw LDYgKzQwLDggQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNo YXIgKnZhck5hbWUsCiAJCQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJD b2xsYXRpb24sCiAJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIGJvb2wg bm90X251bGwsCisJCQkJCQkJCQkgYm9vbCBpc19pbW11dGFibGUsCiAJCQkJCQkJCQkgTm9kZSAq dmFyRGVmZXhwciwKIAkJCQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFj dGlvbik7CiAKQEAgLTU1LDYgKzU3LDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZh ck5hbWUsCiAJCQkJT2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJYm9v bCBpZl9ub3RfZXhpc3RzLAorCQkJCWJvb2wgbm90X251bGwsCisJCQkJYm9vbCBpc19pbW11dGFi bGUsCiAJCQkJTm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFy WGFjdEVuZEFjdGlvbikKIHsKQEAgLTExNyw2ICsxMjEsOCBAQCBjcmVhdGVfdmFyaWFibGUoY29u c3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAx XSA9IEludDMyR2V0RGF0dW0odmFyVHlwbW9kKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0FudW1f cGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxh dGlvbik7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybm90bnVsbCAtIDFdID0gQm9vbEdl dERhdHVtKG5vdF9udWxsKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc2ltbXV0YWJs ZSAtIDFdID0gQm9vbEdldERhdHVtKGlzX2ltbXV0YWJsZSk7CiAJdmFsdWVzW0FudW1fcGdfdmFy aWFibGVfdmFyeGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZhclhhY3RFbmRBY3Rp b24pOwogCiAJaWYgKHZhckRlZmV4cHIpCkBAIC0yNTksNiArMjY1LDggQEAgQ3JlYXRlVmFyaWFi bGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJ CQkgICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+aWZf bm90X2V4aXN0cywKKwkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKKwkJCQkJCQkgICBzdG10LT5p c19pbW11dGFibGUsCiAJCQkJCQkJICAgY29va2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+ WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpp bmRleCBiMWQwZWVhN2Q0OS4uM2NlYmY0Nzg2YjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKQEAgLTg0LDYgKzg0LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxl RGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5zYWN0aW9uSWQg ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlub3RfbnVsbDsKKwlib29sCQlpc19p bW11dGFibGU7CisKIAlib29sCQlyZXNldF9hdF9lb3g7CiAKIAkvKgpAQCAtMTAyLDYgKzEwNSw5 IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAlib29sCQlpc192YWxpZDsKIAogCXVp bnQzMgkJaGFzaHZhbHVlOwkJLyogdXNlZCBmb3IgcGFpcmluZyBzaW52YWwgbWVzc2FnZSAqLwor CisJLyogdHJ1ZSwgd2hlbiB0aGUgdmFsdWUgaXMgYWxyZWFkeSBzZXQsIGFuZCBjYW5ub3QgYmUg Y2hhbmdlZCBtb3JlICovCisJYm9vbAkJcHJvdGVjdF92YWx1ZTsKIH0gU1ZhcmlhYmxlRGF0YTsK IAogdHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CkBAIC01NjYsNiArNTcyLDIzIEBA IGV2YWxfYXNzaWduX2RlZmV4cHIoU1ZhcmlhYmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCiAKIAkJ CU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOwogCQl9CisJCWVsc2UKKwkJeworCQkJLyoK KwkJCSAqIFJhaXNlIGFuIGVycm9yIGlmIHRoaXMgaXMgYSBOT1QgTlVMTCB2YXJpYWJsZSBidXQg dGhlIHJlc3VsdCBvZgorCQkJICogREVGQVVMVCBleHByZXNzaW9uIGlzIE5VTEwuCisJCQkgKi8K KwkJCWlmIChzdmFyLT5ub3RfbnVsbCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkJCSBlcnJtc2coIm51bGwg dmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgXCIlcy4l c1wiIiwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHN2YXItPnZhcmlkKSksCisJCQkJCQkgZXJyZGV0YWlsKCJUaGUgcmVzdWx0IG9mIERFRkFVTFQg ZXhwcmVzc2lvbiBpcyBOVUxMLiIpKSk7CisJCX0KKworCQlpZiAoc3Zhci0+aXNfaW1tdXRhYmxl KQorCQkJc3Zhci0+cHJvdGVjdF92YWx1ZSA9IHRydWU7CiAKIAkJRnJlZUV4ZWN1dG9yU3RhdGUo ZXN0YXRlKTsKIAl9CkBAIC01OTYsNiArNjE5LDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShT VmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCiAJZ2V0X3R5cGxlbmJ5 dmFsKHN2YXItPnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2YWwpOwogCisJc3Zh ci0+bm90X251bGwgPSB2YXJmb3JtLT52YXJub3RudWxsOworCXN2YXItPmlzX2ltbXV0YWJsZSA9 IHZhcmZvcm0tPnZhcmlzaW1tdXRhYmxlOworCiAJc3Zhci0+aXNfZG9tYWluID0gKGdldF90eXB0 eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKIAlzdmFyLT5kb21haW5f Y2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkID0gSW52 YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKQEAgLTYyNSw5ICs2NTEsMzEgQEAgc2V0dXBfc2Vzc2lv bl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCXN2 YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKIAkJCQkJ CQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwogCi0JaWYgKCFpc193cml0ZSkKKwlzdmFy LT5wcm90ZWN0X3ZhbHVlID0gZmFsc2U7CisKKwkvKgorCSAqIFdoZW4gdGhlIHZhcmlhYmxlIGlz IG1hcmtlZCBhcyBJTU1VVEFCTEUsIHdlIHByZWZlciB0byBldmFsdWF0ZQorCSAqIHBvc3NpYmxl IERFRkFVTFQgYmVmb3JlIHdyaXRlIG9wLiBJbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBwcm90ZWN0 CisJICogZGVmYXVsdCB2YWx1ZSBhZ2FpbnN0IGFueSBvdmVyd3JpdGUuCisJICovCisJaWYgKCFp c193cml0ZSB8fAorCQlzdmFyLT5pc19pbW11dGFibGUpCisJewogCQlldmFsX2Fzc2lnbl9kZWZl eHByKHN2YXIsIHR1cCk7CiAKKwkJLyoKKwkJICogUmFpc2UgYW4gZXJyb3IgaWYgdGhpcyBpcyBh IE5PVCBOVUxMIHZhcmlhYmxlIHdpdGhvdXQgZGVmYXVsdAorCQkgKiBleHByZXNzaW9uLgorCQkg Ki8KKwkJaWYgKHN2YXItPmlzbnVsbCAmJiBzdmFyLT5ub3RfbnVsbCkKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxMT1dFRCksCisJCQkJ CSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24g dmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZSh2YXJpZCkpLAorCQkJCQkgZXJyZGV0YWlsKCJUaGUgc2Vzc2lvbiB2YXJpYWJsZSB3 YXMgbm90IGluaXRpYWxpemVkIHlldC4iKSkpOworCX0KKwogCVJlbGVhc2VTeXNDYWNoZSh0dXAp OwogfQogCkBAIC02NDcsNiArNjk1LDIxIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJQXNzZXJ0KHN2YXIpOwogCUFzc2Vy dCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CiAKKwlpZiAoc3Zhci0+cHJvdGVjdF92 YWx1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0VSUk9SX0lOX0FT U0lHTk1FTlQpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlzIGRl Y2xhcmVkIElNTVVUQUJMRSIsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsKKworCS8qIGRvbid0IGFsbG93IGFzc2lnbm1lbnQg b2YgbnVsbCB0byBOT1QgTlVMTCB2YXJpYWJsZSAqLworCWlmIChpc251bGwgJiYgc3Zhci0+bm90 X251bGwpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVF X05PVF9BTExPV0VEKSwKKwkJCQkgZXJybXNnKCJudWxsIHZhbHVlIGlzIG5vdCBhbGxvd2VkIGZv ciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiIsCisJCQkJCQlnZXRfbmFtZXNw YWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJ CQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsKKwogCS8qCiAJ ICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Npb24gdmFyaWFibGUgb25seSB3aGVu IHRoZXkgYXJlCiAJICogdHJ1c3R3b3J0aHkgKHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3YXMg bm90IGFjY2VwdGVkIGZvciB0aGlzCkBAIC02ODcsNiArNzUwLDEwIEBAIHNldF9zZXNzaW9uX3Zh cmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAKIAlzdmFy LT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5pc251bGwgPSBpc251bGw7CisKKwkvKiBkb24ndCBh bGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUgd2hlbiB2YXJpYWJsZSBpcyBJTU1VVEFCTEUgKi8K KwlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQorCQlzdmFyLT5wcm90ZWN0X3ZhbHVlID0gdHJ1ZTsK IH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDQ4MTA1NTIwM2QxLi5lMTg1Njg4ODRmZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CkBAIC02NjgsNiArNjY4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlq c29uX29iamVjdF9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5X2Nv bnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwg T3B0SW1tdXRhYmxlCiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNlIGFy ZSBoYXJkLXdpcmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTUyMTQsMjcgKzUyMTUsMzEg QEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAog Q3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZp ZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJE ZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJs ZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xh dXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgog CQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNz aW9uVmFyU3RtdCk7Ci0JCQkJCSQ0LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52YXJp YWJsZSA9ICQ0OwotCQkJCQluLT50eXBlTmFtZSA9ICQ2OwotCQkJCQluLT5jb2xsQ2xhdXNlID0g KENvbGxhdGVDbGF1c2UgKikgJDc7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkODsKLQkJCQkJbi0+WGFj dEVuZEFjdGlvbiA9ICQ5OworCQkJCQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+ aXNfaW1tdXRhYmxlID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDU7CisJCQkJCW4tPnR5cGVO YW1lID0gJDc7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsKKwkJ CQkJbi0+bm90X251bGwgPSAkOTsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKKwkJCQkJbi0+WGFj dEVuZEFjdGlvbiA9ICQxMTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJCQkk JCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9Q IE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2Ns YXVzZSBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFU RSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVk X25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNl c3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNl c3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkk Ny0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNzsKLQkJCQkJbi0+ dHlwZU5hbWUgPSAkOTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQx MDsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMTsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsK KwkJCQkJJDgtPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQz OworCQkJCQluLT52YXJpYWJsZSA9ICQ4OworCQkJCQluLT50eXBlTmFtZSA9ICQxMDsKKwkJCQkJ bi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMTsKKwkJCQkJbi0+bm90X251bGwg PSAkMTI7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTM7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAk MTQ7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQpAQCAtNTI1NCw2ICs1MjU5LDE0IEBAIFhhY3RFbmRBY3Rpb25PcHRpb246ICBPTiBD T01NSVQgRFJPUAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CiAJCTsKIAogCitP cHROb3ROdWxsOiBOT1QgTlVMTF9QCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBU WSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOworCitPcHRJbW11dGFibGU6IElNTVVUQUJM RQkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZh bHNlOyB9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5T SU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBiOTE2NWU0ZmE4 ZC4uYjgyZTNkNmY0MmEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQyNCw2ICs1NDI0LDggQEAgZ2V0VmFy aWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJ CWlfdmFyb3duZXI7CiAJaW50CQkJaV92YXJjb2xsYXRpb247CisJaW50CQkJaV92YXJub3RudWxs OworCWludAkJCWlfdmFyaXNpbW11dGFibGU7CiAJaW50CQkJaV92YXJhY2w7CiAJaW50CQkJaV9h Y2xkZWZhdWx0OwogCWludAkJCWksCkBAIC01NDQ2LDYgKzU0NDgsOCBAQCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCkKIAkJCQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxu IgogCQkJCQkgICIgICAgICAgICAgICBFTFNFIDBcbiIKIAkJCQkJICAiICAgICAgIEVORCBBUyB2 YXJjb2xsYXRpb24sXG4iCisJCQkJCSAgIiAgICAgICB2LnZhcm5vdG51bGwsXG4iCisJCQkJCSAg IiAgICAgICB2LnZhcmlzaW1tdXRhYmxlLFxuIgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5w Z19nZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAiICAg ICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgn VicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKQEAgLTU0NjYsNiArNTQ3MCw4IEBAIGdl dFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWlfdmFyZGVmZXhwciA9IFBRZm51bWJlcihyZXMs ICJ2YXJkZWZleHByIik7CiAJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywgInZh cnhhY3RlbmRhY3Rpb24iKTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJj b2xsYXRpb24iKTsKKwlpX3Zhcm5vdG51bGwgPSBQUWZudW1iZXIocmVzLCAidmFybm90bnVsbCIp OworCWlfdmFyaXNpbW11dGFibGUgPSBQUWZudW1iZXIocmVzLCAidmFyaXNpbW11dGFibGUiKTsK IAogCWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKIAlpX3ZhcmFjbCA9 IFBRZm51bWJlcihyZXMsICJ2YXJhY2wiKTsKQEAgLTU0OTIsNiArNTQ5OCw4IEBAIGdldFZhcmlh YmxlcyhBcmNoaXZlICpmb3V0KQogCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zh cnhhY3RlbmRhY3Rpb24pKTsKIAogCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQ UWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKKwkJdmFyaW5mb1tpXS52YXJub3Ru dWxsID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJub3RudWxsKSkgPT0gJ3QnOworCQl2YXJp bmZvW2ldLnZhcmlzaW1tdXRhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJpc2ltbXV0 YWJsZSkpID09ICd0JzsKIAogCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOwogCQl2YXJpbmZvW2ldLmRhY2wuYWNsZGVmYXVsdCA9 IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CkBAIC01NTM4LDcg KzU1NDYsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZv ICp2YXJpbmZvKQogCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CiAJY29uc3QgY2hhciAqdmFyZGVm ZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0ZW5kYWN0aW9uOworCWNvbnN0IGNoYXIgKnZhcmlz aW1tdXRhYmxlOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKKwlib29sCQl2YXJub3RudWxsOwogCiAJ Lyogc2tpcCBpZiBub3QgdG8gYmUgZHVtcGVkICovCiAJaWYgKCF2YXJpbmZvLT5kb2JqLmR1bXAg fHwgZG9wdC0+ZGF0YU9ubHkpCkBAIC01NTUyLDEyICs1NTYyLDE0IEBAIGR1bXBWYXJpYWJsZShB cmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJdmFyZGVmZXhwciA9 IHZhcmluZm8tPnZhcmRlZmV4cHI7CiAJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8tPnZhcnhh Y3RlbmRhY3Rpb247CiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOworCXZh cm5vdG51bGwgPSB2YXJpbmZvLT52YXJub3RudWxsOworCXZhcmlzaW1tdXRhYmxlID0gdmFyaW5m by0+dmFyaXNpbW11dGFibGUgPyAiSU1NVVRBQkxFICIgOiAiIjsKIAogCWFwcGVuZFBRRXhwQnVm ZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKIAkJCQkJICBxdWFsdmFybmFtZSk7CiAK LQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAlcyIsCi0J CQkJCSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiQ1JFQVRFICVzVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlzaW1tdXRhYmxlLCBx dWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24p KQogCXsKQEAgLTU1NjksNiArNTU4MSw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBj b25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJs ZShjb2xsKSk7CiAJfQogCisJaWYgKHZhcm5vdG51bGwpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiIE5PVCBOVUxMIik7CisKIAlpZiAodmFyZGVmZXhwcikKIAkJYXBwZW5kUFFFeHBCdWZm ZXIocXVlcnksICIgREVGQVVMVCAlcyIsCiAJCQkJCQkgIHZhcmRlZmV4cHIpOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgK aW5kZXggYWEyYzcxNTJmMDkuLjU0NGI3MjU5NjIzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcxMiw2ICs3 MTIsOCBAQCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCiAJY2hhcgkgICAqaW5pdHJ2YXJh Y2w7CiAJT2lkCQkJdmFyY29sbGF0aW9uOwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkvKiBuYW1l IG9mIG93bmVyLCBvciBlbXB0eSBzdHJpbmcgKi8KKwlib29sCQl2YXJub3RudWxsOworCWJvb2wJ CXZhcmlzaW1tdXRhYmxlOwogfSBWYXJpYWJsZUluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsCmluZGV4IGIwOTA0MzE2MTU5Li40ZDQ4ZTY4NDAyZCAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3Bn X2R1bXAucGwKQEAgLTQwMzEsNiArNDAzMSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwK IAorCSdDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxs X3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycs CisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgSU1NVVRB QkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTUgQVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9 PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxl NSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVt cF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1 bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1 bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBJTU1VVEFCTEUg VkFSSUFCTEUgdGVzdF92YXJpYWJsZSBOT1QgTlVMTCBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5z ICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQlj cmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIElNTVVUQUJMRSBW QVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU3IEFTIGludGVnZXIgTk9UIE5VTEwgREVGQVVMVCAx MCcsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVt cF90ZXN0LnZhcmlhYmxlNyBBUyBpbnRlZ2VyIE5PVCBOVUxMIERFRkFVTFQgMTA7XEUveG0sCisJ CWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJ CQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRl X2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAx LAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9v cmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3Rf dmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwppbmRleCA0NWIzODM5YTg3ZS4uODY2OTg1Yjg3OWEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01 MTYyLDcgKzUxNjIsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wg dmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmlu dFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0 ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVt bnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAw MDApCiAJewpAQCAtNTE4Myw2ICs1MTgzLDggQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpw YXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00g cGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJ CSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlw ZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCiAJ CQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wi LFxuIgorCQkJCQkgICIgIE5PVCB2LnZhcm5vdG51bGwgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIg IE5PVCB2LnZhcmlzaW1tdXRhYmxlIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9n LnBnX2dldF9leHByKHYudmFyZGVmZXhwciwgMCkgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENB U0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBD T01NSVQgRFJPUCdcbiIKQEAgLTUxOTMsNiArNTE5NSw4IEBAIGxpc3RWYXJpYWJsZXMoY29uc3Qg Y2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIp LAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29w KCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTnVsbGFibGUiKSwKKwkJCQkJICBnZXR0 ZXh0X25vb3AoIk11dGFibGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCmluZGV4IGJkZDUyNDMxNjYxLi42ZTQzZTk1ZWFjYSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYwpAQCAtMTI3Myw2ICsxMjczLDggQEAgc3RhdGljIGNvbnN0IHBnc3FsX3RoaW5n X3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJeyJGT1JFSUdOIFRBQkxFIiwgTlVMTCwgTlVM TCwgTlVMTH0sCiAJeyJGVU5DVElPTiIsIE5VTEwsIE5VTEwsIFF1ZXJ5X2Zvcl9saXN0X29mX2Z1 bmN0aW9uc30sCiAJeyJHUk9VUCIsIFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzfSwKKwl7IklNTVVU QUJMRSBWQVJJQUJMRSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RST1AgfCBU SElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgSU1NVVRBQkxFCisJCQkJCQkJCQkJCQkJCQkJ CQkJCQkgKiBWQVJJQUJMRSAuLi4gKi8KIAl7IklOREVYIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zv cl9saXN0X29mX2luZGV4ZXN9LAogCXsiTEFOR1VBR0UiLCBRdWVyeV9mb3JfbGlzdF9vZl9sYW5n dWFnZXN9LAogCXsiTEFSR0UgT0JKRUNUIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdf Tk9fQ1JFQVRFIHwgVEhJTkdfTk9fRFJPUH0sCkBAIC0zNTkzLDcgKzM1OTUsOCBAQCBtYXRjaF9w cmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIC8qIENSRUFURSBUQUJMRSAtLS0gaXMgYWxs b3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29t cGxldGUgIkNSRUFURSBURU1QL1RFTVBPUkFSWSIgd2l0aCB0aGUgcG9zc2libGUgdGVtcCBvYmpl Y3RzICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJURU1QfFRFTVBPUkFSWSIp KQotCQlDT01QTEVURV9XSVRIKCJTRVFVRU5DRSIsICJUQUJMRSIsICJWQVJJQUJMRSIsICJWSUVX Iik7CisJCUNPTVBMRVRFX1dJVEgoIklNTVVUQUJMRSBWQVJJQUJMRSIsICJTRVFVRU5DRSIsICJU QUJMRSIsICJWQVJJQUJMRSIsCisJCQkJCSAgIlZJRVciKTsKIAkvKiBDb21wbGV0ZSAiQ1JFQVRF IFVOTE9HR0VEIiB3aXRoIFRBQkxFIG9yIFNFUVVFTkNFICovCiAJZWxzZSBpZiAoVGFpbE1hdGNo ZXMoIkNSRUFURSIsICJVTkxPR0dFRCIpKQogCQlDT01QTEVURV9XSVRIKCJUQUJMRSIsICJTRVFV RU5DRSIpOwpAQCAtMzk0NSw3ICszOTQ4LDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBh dHRlcm5faWQsCiAvKiBDUkVBVEUgVkFSSUFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFU RSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlIENSRUFURSBWQVJJ QUJMRSA8bmFtZT4gd2l0aCBBUyAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAi VkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKLQkJCSBUYWlsTWF0Y2hlcygiVEVNUHxURU1QT1JBUlki LCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZ IiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkgVGFpbE1hdGNoZXMoIklNTVVUQUJMRSIs ICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQVMiKTsKIAllbHNlIGlm IChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiLCBNYXRjaEFueSwgIkFTIikpCiAJCS8qIENvbXBsZXRl IENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyB0eXBlcyAqLwpAQCAtNDU4OSw2ICs0NTkz LDEwIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKFRh aWxNYXRjaGVzKCJGUk9NIiwgIlNFUlZFUiIsIE1hdGNoQW55LCAiSU5UTyIsIE1hdGNoQW55KSkK IAkJQ09NUExFVEVfV0lUSCgiT1BUSU9OUyAoIik7CiAKKy8qIElNTVVUQUJMRSAtLSBjYW4gYmUg ZXhwZW5kIHRvIElNTVVUQUJMRSBWQVJJQUJMRSAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJD UkVBVEUiLCAiSU1NVVRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEgoIlZBUklBQkxFIik7CisKIC8q IElOU0VSVCAtLS0gY2FuIGJlIGluc2lkZSBFWFBMQUlOLCBSVUxFLCBldGMgKi8KIAkvKiBDb21w bGV0ZSBOT1QgTUFUQ0hFRCBUSEVOIElOU0VSVCAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJO T1QiLCAiTUFUQ0hFRCIsICJUSEVOIiwgIklOU0VSVCIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJs ZS5oCmluZGV4IGU4YmZlZWJlZDExLi42OGJjNDlhMGUyNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFy aWFibGUuaApAQCAtNTUsNiArNTUsMTIgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlh YmxlUmVsYXRpb25JZCkKIAkvKiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLwogCWludDMy CQl2YXJ0eXBtb2QgQktJX0RFRkFVTFQoLTEpOwogCisJLyogZG9uJ3QgYWxsb3cgTlVMTCAqLwor CWJvb2wJCXZhcm5vdG51bGwgQktJX0RFRkFVTFQoZik7CisKKwkvKiBkb24ndCBhbGxvdyBjaGFu Z2VzICovCisJYm9vbAkJdmFyaXNpbW11dGFibGUgQktJX0RFRkFVTFQoZik7CisKIAkvKiBhY3Rp b24gb24gdHJhbnNhY3Rpb24gZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBCS0lfREVG QVVMVChuKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDdhN2E3NWRjZTc5Li5jMTYzYzk1 MjQ0NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzQ3Nyw2ICszNDc3LDggQEAgdHlwZWRl ZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8q IHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCiAJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKIAli b29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICov CisJYm9vbAkJbm90X251bGw7CQkvKiBkaXNhbGxvdyBudWxscyAqLworCWJvb2wJCWlzX2ltbXV0 YWJsZTsJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLwogCU5vZGUJICAgKmRlZmV4cHI7CQkvKiBk ZWZhdWx0IGV4cHJlc3Npb24gKi8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0cmFuc2Fj dGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQKaW5kZXggMjQ3MTk1YjI1MzEuLmM1ZjFmNTNlNzBlIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU5MzUsMjAgKzU5MzUsMjAgQEAgQ1JFQVRFIFJPTEUg cmVncmVzc192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2 YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBl ICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwg VHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlv biAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJh Y3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5 cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxl IHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3Mg cHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcg fCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAg IHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgCiAoMSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsK IENPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZh cjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwg TmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAg ICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAot LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAg fCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8 IHNvbWUgZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAg ICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwg ICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdl cyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncv cmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAog KDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7CkBAIC02NDE2LDkgKzY0MTYsOSBAQCBMaXN0 IG9mIHNjaGVtYXMKICgwIHJvd3MpCiAKIFxkViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUg fCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQg YWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBl IHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEg cXVhbGlmaWNhdGlvbnMuCkBAIC02NTkxLDkgKzY1OTEsOSBAQCBpbXByb3BlciBxdWFsaWZpZWQg bmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5p bnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJv cGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlh YmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0 IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwor IFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11 dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1 dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMu CkBAIC02NzMwLDkgKzY3MzAsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogKDAg cm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJs ZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNj aGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNh Y3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8 IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBE ZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRv dHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggNGNmNGUw N2Y0YWYuLjQwN2I5MGEwYTE2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dApAQCAtNDUsMTEgKzQ1LDExIEBAIFNFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7 CiBTRVQgUk9MRSBUTyBERUZBVUxUOwogXGRWKyBzdmFydGVzdC52YXIxCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxh dGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCi0gc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wg Ci0gICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1hICB8IE5hbWUgfCAgVHlw ZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0 YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAg ICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVn cmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAgICAgICAgIHwgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3Jl Z3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSBzdmFydGVz dC52YXIxOwpAQCAtMTYxOCwzICsxNjE4LDE0OCBAQCBTRUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJ QUJMRSB2YXIxOwogRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CistLSB0ZXN0IE5PVCBOVUxM CistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTDsK Ky0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBu b3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitE RVRBSUw6ICBUaGUgc2Vzc2lvbiB2YXJpYWJsZSB3YXMgbm90IGluaXRpYWxpemVkIHlldC4KKy0t c2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIG9r CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCAwOworLS1zaG91 bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisK Ky0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCist LS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIHRv IGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dl ZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitEUk9QIFZBUklB QkxFIHZhcjE7CistLSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2 YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gTlVMTDsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9U IE5VTEwgREVGQVVMVCB2YXJ0ZXN0X2Z4KCk7CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZh cjE7CitFUlJPUjogIG51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Np b24gdmFyaWFibGUgInB1YmxpYy52YXIxIgorREVUQUlMOiAgVGhlIHJlc3VsdCBvZiBERUZBVUxU IGV4cHJlc3Npb24gaXMgTlVMTC4KK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIG9r CitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygx IHJvdykKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5T IGludCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3Fs OworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZh cjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1Ag RlVOQ1RJT04gdmFydGVzdF9meCgpOworLS0gdGVzdCBJTU1VVEJMRQorQ1JFQVRFIElNTVVUQUJM RSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7Cisg dmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0gZmlyc3Qgd3JpdGUgc2hvdWxkIG9r CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZh cjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xh cmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2 YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lv biB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBW QVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgICAgCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOworLS0g c2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1 YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NS RUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCAxMDsKKy0tIGRvbid0 IGFsbG93IGNoYW5nZSB3aGVuIHZhcmlhYmxlIGhhcyBERUZBVUxUIHZhbHVlCistLSBzaG91bGQg dG8gZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGlj LnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91 bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisK Ky0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxl ICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitEUk9QIFZBUklBQkxFIHZhcjE7 CistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBJTlQg Tk9UIE5VTEwgREVGQVVMVCAxMDsKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDEwOwor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRB QkxFCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFy MSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQg dmFyMSA9IDMwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVj bGFyZWQgSU1NVVRBQkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNGM1YmJlY2RiZTIuLjNjMmVmMTkwZmQ5IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMDg3LDMg KzEwODcsMTI1IEBAIFNFTEVDVCB2YXIxOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIEZV TkNUSU9OIHZhcnRlc3RfZngoKTsKKworLS0gdGVzdCBOT1QgTlVMTAorLS0gc2hvdWxkIGJlIG9r CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEw7CistLSBzaG91bGQgdG8gZmFp bAorU0VMRUNUIHZhcjE7CisKKy0tc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNU IHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCAwOworCistLXNob3VsZCBiZSBv aworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVD VCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2 YXIxID0gTlVMTDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSB0ZXN0IE5PVCBOVUxMCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQk CitCRUdJTgorICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTCBERUZBVUxUIHZhcnRlc3RfZngoKTsK KworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsK KworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JF R0lOCisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworRElTQ0FSRCBW QVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworCistLSB0ZXN0IElNTVVUQkxF CitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxOworLS0gZmlyc3Qgd3JpdGUgc2hvdWxkIG9rCistLSBzaG91bGQgYmUg b2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKKworRElT Q0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKKy0tIHNo b3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hv dWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxM OworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsK KworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxUIDEwOworCist LSBkb24ndCBhbGxvdyBjaGFuZ2Ugd2hlbiB2YXJpYWJsZSBoYXMgREVGQVVMVCB2YWx1ZQorLS0g c2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0g MjA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgSU1N VVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgSU5UIE5PVCBOVUxMIERFRkFVTFQgMTA7CisKKy0tIHNo b3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDEwOworTEVUIHZhcjEgPSAyMDsKKworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMzA7 CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKLS0gCjIuNDcuMAoK --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0014-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20241106-0014-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpaz6 RnJvbSBlNzgxMWM0ZTcyOWU4ODcwMjVjMGFjYmU3NzE4Mzg3ZjlkMzY2YmViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDY6MzE6NDggKzAxMDAKU3ViamVjdDogW1BBVENIIDE0 LzIwXSBhbGxvdyByZWFkIGFuIHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgZGlyZWN0bHkgZnJv bQogZXhwcmVzc2lvbiBleGVjdXRvcgoKVGhlIGV4cHJlc3Npb24gZXhlY3V0b3IgY2FuIGJlIGNh bGxlZCBkaXJlY3RseSAobm90IGluc2lkZSBxdWVyeSBleGVjdXRvcikKd2hlbiBleHByZXNzaW9u IGlzIGV2YWx1YXRlZCBhcyBzaW1wbGUgZXhwcmVzc2lvbiBpbiBwbHBnc3FsIG9yIHdoZW4gZXhw cmVzc2lvbgppcyBhbiBhcmd1bWVudCBvZiBDQUxMIG9yIEVYRUNVVEUgc3RhdGVtZW50cy4gRm9y IHRoZXNlIGNhc2VzIHdlIG5lZWQgdG8gYWxsb3cgZGlyZWN0CmFjY2VzcyB0byBjb250ZW50IG9m IHNlc3Npb24gdmFyaWFibGVzIGZyb20gZXhlY3V0b3IuIFdlIGNhbiBkbyBpdCwgYmVjYXVzZQp3 ZSBrbm93IHNvIHRoZSBleHByZXNzaW9uIGlzIG5vdCBldmFsdWF0ZWQgdW5kZXIgcXVlcnkgYW5k IGNhbm5vdCBiZQpldmFsdWF0ZWQgaW5zaWRlIHBhcmFsbGVsIHdvcmtlci4KClRoaXMgcGF0Y2gg ZW5hYmxlcyBzZXNzaW9uIHZhcmlhYmxlcyBmb3Igc2ltcGxlIGV4cHJlc3Npb24gZXZhbHVhdGlv bi4KClRoaXMgcGF0Y2ggZW5hYmxlcyB1c2FnZSBzZXNzaW9uIHZhcmlhYmxlcyBpbiBhcmd1bWVu dHMgb2YgQ0FMTCBzdG10LgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyAgICAg ICAgICAgICAgICB8ICA4IC0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAg ICAgICAgICAgfCA4MiArKysrKysrKysrKysrKy0tLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwckludGVycC5jICAgICAgICAgfCAxNiArKysrCiBzcmMvYmFja2VuZC9qaXQvbGx2bS9s bHZtaml0X2V4cHIuYyAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYyAgICAgICAgICAgICAgICAgIHwgIDggLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNF eHByLmggICAgICAgICAgICAgICB8IDEyICsrLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUub3V0IHwgIDMgKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMg ICAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQgICAgfCAyNiArKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbCAgICB8IDEyICstLQogMTAgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlv bnMoKyksIDU5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwppbmRleCAzNzM1YjU1 NTRlMC4uZThjMzc1ZGYxOTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBh cmUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKQEAgLTMzOCwxNCArMzM4 LDYgQEAgRXZhbHVhdGVQYXJhbXMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlZFN0YXRlbWVu dCAqcHN0bXQsIExpc3QgKnBhcmFtcywKIAkJaSsrOwogCX0KIAotCS8qCi0JICogVGhlIGFyZ3Vt ZW50cyBvZiBFWEVDVVRFIGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgotCSAq IGV4ZWN1dG9yIGNhbGwuICBUaGlzIG1vZGUgZG9lc24ndCBzdXBwb3J0IHNlc3Npb24gdmFyaWFi bGVzIHlldC4KLQkgKiBJdCB3aWxsIGJlIGVuYWJsZWQgbGF0ZXIuCi0JICovCi0JaWYgKHBzdGF0 ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQotCQllbG9nKEVSUk9SLCAic2Vzc2lvbiB2YXJpYWJs ZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpOwotCiAJLyogUHJlcGFyZSB0aGUgZXhw cmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBFeGVjUHJlcGFyZUV4cHJM aXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggNmRjOGM1 NjJiZWMuLjg0NWJkZDFhZTg1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj RXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTEwMDUsMjUg KzEwMDUsNjkgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUs CiAJCQkJCQkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRl LT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CiAJCQkJCQkJfQogCi0JCQkJCQkJQXNzZXJ0KGVz X3Nlc3Npb25fdmFyaWFibGVzKTsKLQotCQkJCQkJCS8qIHBhcmFtZXRlciBzYW5pdHkgY2hlY2tz ICovCi0JCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3ZhcmlhYmxl cykKLQkJCQkJCQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFyYW0g aXMgb3V0IG9mIHJhbmdlIik7Ci0KLQkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lvbl92YXJpYWJsZXNb cGFyYW0tPnBhcmFtaWRdOwotCi0JCQkJCQkJaWYgKHZhci0+dHlwaWQgIT0gcGFyYW0tPnBhcmFt dHlwZSkKLQkJCQkJCQkJZWxvZyhFUlJPUiwgInR5cGUgb2YgYnVmZmVyZWQgdmFsdWUgaXMgZGlm ZmVyZW50IHRoYW4gUEFSQU1fVkFSSUFCTEUgdHlwZSIpOwotCi0JCQkJCQkJLyoKLQkJCQkJCQkg KiBJbiB0aGlzIGNhc2UsIHBhc3MgdGhlIHZhbHVlIGxpa2UgYQotCQkJCQkJCSAqIGNvbnN0YW50 LgotCQkJCQkJCSAqLwotCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKLQkJCQkJ CQlzY3JhdGNoLmQuY29uc3R2YWwudmFsdWUgPSB2YXItPnZhbHVlOwotCQkJCQkJCXNjcmF0Y2gu ZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlzbnVsbDsKLQkJCQkJCQlFeHByRXZhbFB1c2hTdGVw KHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQkJaWYgKGVzX3Nlc3Npb25fdmFyaWFibGVzKQorCQkJ CQkJCXsKKwkJCQkJCQkJLyoKKwkJCQkJCQkJICogVGhpcyBwYXRoIGlzIHVzZWQgd2hlbiBleHBy ZXNzaW9uIGlzCisJCQkJCQkJCSAqIGV2YWx1YXRlZCBpbnNpZGUgcXVlcnkgZXZhbHVhdGlvbi4g Rm9yCisJCQkJCQkJCSAqIGVuc3VyaW5nIG9mIGltbXV0YWJpbGl0eSBvZiBzZXNzaW9uIHZhcmlh YmxlCisJCQkJCQkJCSAqIGluc2lkZSBxdWVyeSB3ZSB1c2Ugc3BlY2lhbCBidWZmZXIgd2l0aCBj b3B5CisJCQkJCQkJCSAqIG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoaXMgbWV0aG9kIGhl bHBzCisJCQkJCQkJCSAqIHdpdGggcGFyYWxsZWwgZXhlY3V0aW9uIHRvby4KKwkJCQkJCQkJICov CisKKwkJCQkJCQkJLyogcGFyYW1ldGVyIHNhbml0eSBjaGVja3MgKi8KKwkJCQkJCQkJaWYgKHBh cmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcykKKwkJCQkJCQkJCWVsb2co RVJST1IsICJwYXJhbWlkIG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlzIG91dCBvZiByYW5nZSIp OworCisJCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07 CisKKwkJCQkJCQkJaWYgKHZhci0+dHlwaWQgIT0gcGFyYW0tPnBhcmFtdHlwZSkKKwkJCQkJCQkJ CWVsb2coRVJST1IsICJ0eXBlIG9mIGJ1ZmZlcmVkIHZhbHVlIGlzIGRpZmZlcmVudCB0aGFuIFBB UkFNX1ZBUklBQkxFIHR5cGUiKTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJbiB0aGlzIGNh c2UsIHBhc3MgdGhlIHZhbHVlIGxpa2UgYQorCQkJCQkJCQkgKiBjb25zdGFudC4KKwkJCQkJCQkJ ICovCisJCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQkJc2NyYXRj aC5kLmNvbnN0dmFsLnZhbHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQkJc2NyYXRjaC5kLmNvbnN0 dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRl LCAmc2NyYXRjaCk7CisJCQkJCQkJfQorCQkJCQkJCWVsc2UKKwkJCQkJCQl7CisJCQkJCQkJCUFj bFJlc3VsdAlhY2xyZXN1bHQ7CisJCQkJCQkJCU9pZAkJCXZhcmlkID0gcGFyYW0tPnBhcmFtdmFy aWQ7CisJCQkJCQkJCU9pZAkJCXZhcnR5cGUgPSBwYXJhbS0+cGFyYW10eXBlOworCisJCQkJCQkJ CUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJ biBzb21lIGNhc2VzIChwbHBnc3FsJ3Mgc2ltcGxlIGV4cHJlc3Npb24KKwkJCQkJCQkJICogZXZh bHVhdGlvbiBvciBldmFsdWF0aW9uIG9mIENBTEwgYXJndW1lbnRzKSwKKwkJCQkJCQkJICogdGhl IGV4cHJlc3Npb24gZXhlY3V0b3IgaXMgY2FsbGVkIGRpcmVjdGx5LgorCQkJCQkJCQkgKiBXZSBj YW4gYWxsb3cgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uCisJCQkJCQkJCSAqIHZhcmlhYmxlcyAo Y29weSBvbmx5KSwgYmVjYXVzZSB3ZSBrbm93LCBzbworCQkJCQkJCQkgKiBvdXRzaWRlIGlzIG5v dCBhbnkgcXVlcnkgKGFuZCBleHByZXNzaW9uCisJCQkJCQkJCSAqIGNhbm5vdCBiZSBleGVjdXRl ZCBwYXJhbGxlbCkuCisJCQkJCQkJCSAqCisJCQkJCQkJCSAqIEluIHRoaXMgY2FzZSB3ZSBzaG91 bGQgdG8gZG8gYWNsY2hlY2ssCisJCQkJCQkJCSAqIGJlY2F1c2UgdXN1YWwgYWNsY2hlY2sgZnJv bQorCQkJCQkJCQkgKiBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0IGlzIG5vdCBleGVjdXRlZCBpbgor CQkJCQkJCQkgKiB0aGlzIGNhc2UuIEZvcnR1bmF0ZWx5IGl0IGlzIGp1c3Qgb25jZSBwZXIKKwkJ CQkJCQkJICogdHJhbnNhY3Rpb24uCisJCQkJCQkJCSAqLworCQkJCQkJCQlhY2xyZXN1bHQgPSBv YmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJCQkJ CUdldFVzZXJJZCgpLCBBQ0xfU0VMRUNUKTsKKwkJCQkJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xD SEVDS19PSykKKwkJCQkJCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklB QkxFLAorCQkJCQkJCQkJCQkJICAgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOwor CisJCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9QQVJBTV9WQVJJQUJMRTsKKwkJCQkJCQkJ c2NyYXRjaC5kLnZwYXJhbS52YXJpZCA9IHZhcmlkOworCQkJCQkJCQlzY3JhdGNoLmQudnBhcmFt LnZhcnR5cGUgPSB2YXJ0eXBlOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2Ny YXRjaCk7CisJCQkJCQkJfQogCQkJCQkJfQogCQkJCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwckludGVycC5jCmluZGV4IDMwYzVhMTlhYWQ2Li4wYTE1NGI5N2Q2ZSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVk ZSAiYWNjZXNzL2hlYXB0b2FzdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhl Y3V0b3Ivbm9kZVN1YnBsYW4uaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC00NTAsNiArNDUx LDcgQEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250 ZXh0LCBib29sICppc251bGwpCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0VYRUMsCiAJCSYmQ0FTRV9F RU9QX1BBUkFNX0VYVEVSTiwKIAkJJiZDQVNFX0VFT1BfUEFSQU1fQ0FMTEJBQ0ssCisJCSYmQ0FT RV9FRU9QX1BBUkFNX1ZBUklBQkxFLAogCQkmJkNBU0VfRUVPUF9QQVJBTV9TRVQsCiAJCSYmQ0FT RV9FRU9QX0NBU0VfVEVTVFZBTCwKIAkJJiZDQVNFX0VFT1BfTUFLRV9SRUFET05MWSwKQEAgLTEw OTksNiArMTEwMSwyMCBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29u dGV4dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkJCUVFT19ORVhUKCk7CiAJCX0KIAorCQlF RU9fQ0FTRShFRU9QX1BBUkFNX1ZBUklBQkxFKQorCQl7CisJCQkvKgorCQkJICogRGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlICh3aXRob3V0IGJ1ZmZlcmluZykuIEJlY2F1c2UKKwkJ CSAqIHJldHVybmVkIHZhbHVlIGNhbiBiZSB1c2VkICh3aXRob3V0IGFuIGFzc2lnbmVtZW50KSBh ZnRlciB0aGUKKwkJCSAqIHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgdXBkYXRlZCwg d2UgaGF2ZSB0byB1c2UgYW4gY29weQorCQkJICogb2Ygc3RvcmVkIHZhbHVlIGV2ZXJ5IHRpbWUu CisJCQkgKi8KKwkJCSpvcC0+cmVzdmFsdWUgPSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNo ZWNrKG9wLT5kLnZwYXJhbS52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCW9wLT5yZXNudWxsLAorCQkJ CQkJCQkJCQkJCQkJb3AtPmQudnBhcmFtLnZhcnR5cGUpOworCQkJRUVPX05FWFQoKTsKKwkJfQor CiAJCUVFT19DQVNFKEVFT1BfUEFSQU1fU0VUKQogCQl7CiAJCQkvKiBvdXQgb2YgbGluZSwgdW5s aWtlbHkgdG8gbWF0dGVyIHBlcmZvcm1hbmNlLXdpc2UgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWpp dF9leHByLmMKaW5kZXggMGIzYjU3NDhlYTIuLjFjY2I5YzVmNGEwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9qaXQvbGx2 bS9sbHZtaml0X2V4cHIuYwpAQCAtMTE0NSw2ICsxMTQ1LDEyIEBAIGxsdm1fY29tcGlsZV9leHBy KEV4cHJTdGF0ZSAqc3RhdGUpCiAJCQkJCWJyZWFrOwogCQkJCX0KIAorCQkJY2FzZSBFRU9QX1BB UkFNX1ZBUklBQkxFOgorCQkJCWJ1aWxkX0V2YWxYRnVuYyhiLCBtb2QsICJFeGVjRXZhbFBhcmFt VmFyaWFibGUiLAorCQkJCQkJCQl2X3N0YXRlLCBvcCwgdl9lY29udGV4dCk7CisJCQkJTExWTUJ1 aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKKwkJCQlicmVhazsKKwogCQkJY2FzZSBFRU9Q X1BBUkFNX1NFVDoKIAkJCQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2YWxQYXJhbVNl dCIsCiAJCQkJCQkJCXZfc3RhdGUsIG9wLCB2X2Vjb250ZXh0KTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmlu ZGV4IDlkZmQ0MzUxMjhhLi40OTZkNzVhNDk0YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zNDcw LDE0ICszNDcwLDYgQEAgdHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYWxs U3RtdCAqc3RtdCkKIAkJCQkJCQkgdHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ZnVuY2NhbGwtPmxvY2F0 aW9uKTsKIAotCS8qCi0JICogVGhlIGFyZ3VtZW50cyBvZiBDQUxMIHN0YXRlbWVudCBhcmUgZXZh bHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24KLQkgKiBleGVjdXRvciBjYWxsLiAgVGhpcyBw YXRoIGlzIHVuc3VwcG9ydGVkIHlldCwgc28gYmxvY2sgaXQuICBJdCB3aWxsIGJlCi0JICogZW5h YmxlZCBsYXRlci4KLQkgKi8KLQlpZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpCi0J CWVsb2coRVJST1IsICJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3Vt ZW50Iik7Ci0KIAlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgbm9kZSk7CiAKIAlmZXhw ciA9IGNhc3ROb2RlKEZ1bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4 ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCmluZGV4 IGNkOTdkZmEwNjI0Li43MmI1NGIzYTMzZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvZXhlY0V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC0x NTYsMTAgKzE1NiwxMSBAQCB0eXBlZGVmIGVudW0gRXhwckV2YWxPcAogCUVFT1BfQk9PTFRFU1Rf SVNfRkFMU0UsCiAJRUVPUF9CT09MVEVTVF9JU19OT1RfRkFMU0UsCiAKLQkvKiBldmFsdWF0ZSBQ QVJBTV9FWEVDL0VYVEVSTiBwYXJhbWV0ZXJzICovCisJLyogZXZhbHVhdGUgUEFSQU1fRVhFQy9F WFRFUk4vVkFSSUFCTEUgcGFyYW1ldGVycyAqLwogCUVFT1BfUEFSQU1fRVhFQywKIAlFRU9QX1BB UkFNX0VYVEVSTiwKIAlFRU9QX1BBUkFNX0NBTExCQUNLLAorCUVFT1BfUEFSQU1fVkFSSUFCTEUs CiAJLyogc2V0IFBBUkFNX0VYRUMgdmFsdWUgKi8KIAlFRU9QX1BBUkFNX1NFVCwKIApAQCAtNDA5 LDYgKzQxMCwxMyBAQCB0eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJCU9pZAkJCXBhcmFt dHlwZTsJLyogT0lEIG9mIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJCX0JCQljcGFyYW07CiAK KwkJLyogZm9yIEVFT1BfUEFSQU1fVkFSSUFCTEUgKi8KKwkJc3RydWN0CisJCXsKKwkJCU9pZAkJ CXZhcmlkOwkJLyogT0lEIG9mIGFzc2lnbmVkIHZhcmlhYmxlICovCisJCQlPaWQJCQl2YXJ0eXBl OwkvKiBPSUQgb2YgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KKwkJfQkJCXZwYXJhbTsKKwogCQkv KiBmb3IgRUVPUF9DQVNFX1RFU1RWQUwvRE9NQUlOX1RFU1RWQUwgKi8KIAkJc3RydWN0CiAJCXsK QEAgLTgzMSw2ICs4MzksOCBAQCBleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtU2V0KEV4cHJTdGF0 ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJIEV4cHJDb250ZXh0ICplY29udGV4 dCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtRXh0ZXJuKEV4cHJTdGF0ZSAqc3RhdGUsIEV4 cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJCUV4cHJDb250ZXh0ICplY29udGV4dCk7CitleHRlcm4g dm9pZCBFeGVjRXZhbFBhcmFtVmFyaWFibGUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVw ICpvcCwKKwkJCQkJCQkJICBFeHByQ29udGV4dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhl Y0V2YWxDb2VyY2VWaWFJT1NhZmUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7 CiBleHRlcm4gdm9pZCBFeGVjRXZhbFNRTFZhbHVlRnVuY3Rpb24oRXhwclN0YXRlICpzdGF0ZSwg RXhwckV2YWxTdGVwICpvcCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbEN1cnJlbnRPZkV4cHIoRXhw clN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxw Z3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9w bHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CmluZGV4IGVj MDdmMWNiYWU5Li43ODljMzEyM2IwYyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4 cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwv c3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTIxMSw4ICsyMTEs NyBAQCBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAtLSBzaG91bGQgdG8gZmFp bAogU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHNlc3Npb24gdmFyaWFibGUgcGxwZ3NxbF9zdl92YXIxCi1DT05URVhUOiAgU1FMIGV4cHJlc3Np b24gInBscGdzcWxfc3ZfdmFyMSIKLVBML3BnU1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMoKSBs aW5lIDMgYXQgUkFJU0UKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJfcmVhZF9mdW5j KCkgbGluZSAzIGF0IFJBSVNFCiBTRVQgUk9MRSBUTyBERUZBVUxUOwogU0VUIFJPTEUgVE8gcmVn cmVzc192YXJfb3duZXJfcm9sZTsKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwbHBnc3FsX3N2 X3ZhcjEgVE8gcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCAx MzYxYThhODQ4MC4uODZjNWJkMzI0YTkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtODA5OSw4ICs4 MDk5LDcgQEAgZXhlY19pc19zaW1wbGVfcXVlcnkoUExwZ1NRTF9leHByICpleHByKQogCQlxdWVy eS0+c29ydENsYXVzZSB8fAogCQlxdWVyeS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnktPmxpbWl0 Q291bnQgfHwKLQkJcXVlcnktPnNldE9wZXJhdGlvbnMgfHwKLQkJcXVlcnktPmhhc1Nlc3Npb25W YXJpYWJsZXMpCisJCXF1ZXJ5LT5zZXRPcGVyYXRpb25zKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkv KgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApp bmRleCA0MDdiOTBhMGExNi4uNDBlM2VhOGE1ZGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xMDgsOCArMTA4LDcgQEAgRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAg U1FMIGZ1bmN0aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKIFNFTEVDVCBwbHBnc3FsZngoMjApOwog RVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05U RVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAiJDEgKyB2YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24g cGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KK0NPTlRFWFQ6ICBQTC9wZ1NRTCBm dW5jdGlvbiBwbHBnc3FsZngoaW50ZWdlcikgbGluZSAxIGF0IFJFVFVSTgogLS0gc2hvdWxkIGJl IG9rCiBTRUxFQ1Qgc3FsZnhfc2QoMjApOwogIHNxbGZ4X3NkIApAQCAtMjc5LDI3ICsyNzgsMjgg QEAgJCQ7CiBOT1RJQ0U6ICByZXN1bHQgYXJyYXk6IHsxLDIsMyw0LDUsNiw3LDgsOSwxMH0KIERS T1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVkFSSUFCTEUgdmFyMjsKLS0tIENBTEwgc3RhdGVtZW50 IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Np b24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRlbWVudCBp cyBzdXBwb3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKK0xFVCB2ID0gMTsKIENSRUFURSBQ Uk9DRURVUkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVO RCAkJCBMQU5HVUFHRSBwbHBnc3FsOwotLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBz dXBwb3J0ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsKLUVSUk9SOiAgc2Vz c2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorTk9USUNFOiAgMQog RE8gJCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7Ci1FUlJPUjogIHNlc3Npb24gdmFyaWFibGUg Y2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKLUNPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJD QUxMIHAodikiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQg Q0FMTAorTk9USUNFOiAgMQogRFJPUCBQUk9DRURVUkUgcChpbnQpOwogRFJPUCBWQVJJQUJMRSB2 OwotLS0gRVhFQ1VURSBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKLS0tIHJlcXVpcmVz IGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0 b3IKKy0tIEVYRUNVVEUgc3RhdGVtZW50CiBDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CiBMRVQgdiA9 IDIwOwogUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKLS0tIHNob3VsZCBmYWlsCist LSBzaG91bGQgYmUgb2sKIEVYRUNVVEUgcHRlc3Qodik7Ci1FUlJPUjogIHNlc3Npb24gdmFyaWFi bGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0K KyAgICAgICAyMAorKDEgcm93KQorCiBERUFMTE9DQVRFIHB0ZXN0OwogRFJPUCBWQVJJQUJMRSB2 OwogLS0gdGVzdCBzZWFyY2ggcGF0aApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsCmluZGV4IDNjMmVmMTkwZmQ5Li5jNWQ2Yzg1MGJkYyAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMjA3LDEzICsyMDcsMTQgQEAgJCQ7 CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7CiAKLS0tIENBTEwgc3Rh dGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRv IHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRl bWVudCBpcyBzdXBwb3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIAorTEVUIHYgPSAxOwor CiBDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICcl JywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKIAotLS0gc2hvdWxkIG5vdCBjcmFzaCAo YnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsK IAogRE8gJCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7CkBAIC0yMjEsMTMgKzIyMiwxMiBAQCBE TyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKIERST1AgUFJPQ0VEVVJFIHAoaW50KTsKIERS T1AgVkFSSUFCTEUgdjsKIAotLS0gRVhFQ1VURSBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5 ZXQKLS0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4 cHJlc3Npb24gZXhlY3V0b3IKKy0tIEVYRUNVVEUgc3RhdGVtZW50CiBDUkVBVEUgVkFSSUFCTEUg diBpbnQ7CiBMRVQgdiA9IDIwOwogUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKIAot LS0gc2hvdWxkIGZhaWwKKy0tIHNob3VsZCBiZSBvawogRVhFQ1VURSBwdGVzdCh2KTsKIAogREVB TExPQ0FURSBwdGVzdDsKLS0gCjIuNDcuMAoK --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0012-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20241106-0012-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpb98 RnJvbSBlZWJhY2ZlMmVjMjAxZTRhNjU2MGU5YjViYTkxOTZkMGVkNTZiMTIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAxMDo0NDoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIv MjBdIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNzaW9u cwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1bHQg ZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9udmFy cwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNzZnVs bHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFnIGZv ciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21sL2Rk bC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKystLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgMjEgKysrLS0KIGRvYy9zcmMvc2dtbC9y ZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAyNyArKysrKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDg3ICsrKysrKysrKysrKysrKysrKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAyICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMzYgKysrKysrKysKIHNyYy9iaW4v cHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgMyArCiBzcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAzNiArKysrLS0tLQogLi4uL3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNzMgKysrKysrKysrKysrKystLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNDggKysrKysrKysr KwogMjAgZmlsZXMgY2hhbmdlZCwgMzU1IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKaW5kZXggNzUyYjg5NWRlNDUuLjQwZmIwM2ZlMjY1IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bApAQCAtOTg3Nyw2ICs5ODc3LDE0IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtp dGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8 L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmRlZmV4cHI8L3N0cnVjdGZpZWxkPiA8dHlwZT5wZ19u b2RlX3RyZWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUg aW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhcmlhYmxlIGRlZmF1bHQgdmFsdWUKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3Jv dXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggYTE3YjY0NmEwZGUuLjYzOWVhYWI3ZjE0IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBA IC01MzA1LDE0ICs1MzA1LDE0IEBAIFNFTEVDVCBjdXJyZW50X3VzZXJfaWQ7CiAKICAgIDxwYXJh PgogICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1 cnJlbnQgc2Vzc2lvbi4gUmV0cmlldmluZwotICAgIGEgdmFyaWFibGUncyB2YWx1ZSByZXR1cm5z IGEgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCi0gICAgYmVl biBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2luZyB0aGUK LSAgICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlhYmxlcyBh cmUgbm90IHRyYW5zYWN0aW9uYWw6Ci0gICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgdmFsdWUg b2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKLSAgICBiZSB1bmRv bmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFyaWFibGVz IGluCi0gICAgcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNl bHZlcyBjYW4gYmUgcGVyc2lzdGVudAotICAgIG9yIHRlbXBvcmFyeSwgYnV0IHRoZWlyIHZhbHVl cyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlCi0gICAgY29udGVu dCBvZiB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgICBhIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBh IDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IG9yIGEgZGVmYXVsdCB2YWx1ZSwKKyAgICB1bmxlc3Mg aXRzIHZhbHVlIGhhcyAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQg c2Vzc2lvbgorICAgIHVzaW5nIHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBT ZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90CisgICAgdHJhbnNhY3Rpb25hbDogYW55IGNoYW5nZXMg bWFkZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluCisgICAgYSB0cmFuc2Fj dGlvbiB3b24ndCBiZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChq dXN0IGxpa2UKKyAgICB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lv biB2YXJpYWJsZXMgdGhlbXNlbHZlcyBjYW4gYmUKKyAgICBwZXJzaXN0ZW50IG9yIHRlbXBvcmFy eSwgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQKKyAg ICAobGlrZSB0aGUgY29udGVudCBvZiB0ZW1wb3JhcnkgdGFibGVzKS4KICAgIDwvcGFyYT4KIAog ICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBlMWMyOTQw ZDRjYS4uODE4N2MxOGUyOGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApA QCAtMjcsNyArMjcsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNk aXY+CiA8c3lub3BzaXM+CiBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxF IFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5 cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAgIFsgeyBPTiBDT01NSVQgRFJPUCB8IE9O IFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KKyAgICBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1J VCBEUk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3Jl ZnN5bm9wc2lzZGl2PgogIDxyZWZzZWN0MT4KQEAgLTQxLDEwICs0MSwxMCBAQCBDUkVBVEUgWyB7 IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icAogCiAgIDxwYXJhPgogICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJp YWJsZSBpcyBsb2NhbCB0byB0aGUgY3VycmVudCBzZXNzaW9uLiAgUmV0cmlldmluZwotICAgYSBz ZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBOVUxMLCB1bmxlc3MgaXRzIHZhbHVlIGlz IHNldCB0bwotICAgc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgotICAgVGhlIGNvbnRlbnQgb2YgYSBzZXNz aW9uIHZhcmlhYmxlIGlzIG5vdCB0cmFuc2FjdGlvbmFsLiBUaGlzIGlzIHRoZSBzYW1lIGFzCi0g ICByZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdlcy4KKyAgIGEgc2Vzc2lv biB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgTlVMTCBvciBhIGRlZmF1bHQgdmFsdWUsIHVubGVz cyBpdHMgdmFsdWUKKyAgIGlzIHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBz ZXNzaW9uIHdpdGggYSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+CisgICBjb21tYW5kLiAgVGhlIGNv bnRlbnQgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIG5vdCB0cmFuc2FjdGlvbmFsLiAgVGhpcyBp cyB0aGUKKyAgIHNhbWUgYXMgcmVndWxhciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFn ZXMuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTEwNSw2ICsxMDUsMTcgQEAgQ1JFQVRFIFsg eyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InAKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg IDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1kZWZhdWx0Ij4KKyAgICA8dGVy bT48bGl0ZXJhbD5ERUZBVUxUIDxyZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxl PjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRo ZSA8bGl0ZXJhbD5ERUZBVUxUPC9saXRlcmFsPiBjbGF1c2UgY2FuIGJlIHVzZWQgdG8gYXNzaWdu IGEgZGVmYXVsdAorICAgICAgdmFsdWUgdG8gYSBzZXNzaW9uIHZhcmlhYmxlLiBUaGlzIGV4cHJl c3Npb24gaXMgZXZhbHVhdGVkIHdoZW4gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlIGlzIGZp cnN0IGFjY2Vzc2VkIGZvciByZWFkaW5nIGFuZCBoYWQgbm90IHlldCBiZWVuIGFzc2lnbmVkIGEg dmFsdWUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1vbi1jb21taXQtZHJv cCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+T04gQ09NTUlUIERST1A8L2xpdGVyYWw+PC90ZXJtPgog ICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKaW5kZXggNjFiOTY3ZjljOWIuLjZiMGNi OTUwMzRmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbApAQCAtNzEsNyArNzEsOCBAQCBESVNDQVJEIHsg QUxMIHwgUExBTlMgfCBTRVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0K ICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgUmVzZXRzIHRoZSB2YWx1ZSBvZiBh bGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUKLSAgICAgIGlzIGxhdGVyIHJldXNl ZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4uCisgICAg ICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIGVpdGhlcgorICAgICAg PGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gb3IgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgIDwvcGFy YT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zh cmlhYmxlLmMKaW5kZXggZDE3YjI3NTYxNjUuLjc4MTU4N2Y5OTEzIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z192YXJpYWJsZS5jCkBAIC0yNCw2ICsyNCw5IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29lcmNlLmgiCisjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX2NvbGxhdGUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZXhwci5o IgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRp bnMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKQEAgLTM3LDYgKzQwLDcgQEAgc3Rh dGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJ CQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCiAJCQkJ CQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIE5vZGUgKnZhckRlZmV4cHIsCiAJ CQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24pOwogCiAKQEAg LTUxLDYgKzU1LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJ T2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJYm9vbCBpZl9ub3RfZXhp c3RzLAorCQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZh clhhY3RFbmRBY3Rpb24pCiB7CiAJQWNsCQkgICAqdmFyYWNsOwpAQCAtMTE0LDYgKzExOSwxMSBA QCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192 YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9u KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFy R2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAKKwlpZiAodmFyRGVmZXhwcikKKwkJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFyZGVmZXhwciAtIDFdID0gQ1N0cmluZ0dldFRleHREYXR1bShu b2RlVG9TdHJpbmcodmFyRGVmZXhwcikpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ192YXJpYWJs ZV92YXJkZWZleHByIC0gMV0gPSB0cnVlOworCiAJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9h Y2woT0JKRUNUX1ZBUklBQkxFLCB2YXJPd25lciwKIAkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOwog CWlmICh2YXJhY2wgIT0gTlVMTCkKQEAgLTE1MCw2ICsxNjAsMTEgQEAgY3JlYXRlX3ZhcmlhYmxl KGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJcmVjb3JkX29iamVjdF9hZGRyZXNzX2RlcGVuZGVuY2ll cygmbXlzZWxmLCBhZGRycywgREVQRU5ERU5DWV9OT1JNQUwpOwogCWZyZWVfb2JqZWN0X2FkZHJl c3NlcyhhZGRycyk7CiAKKwkvKiBkZXBlbmRlbmN5IG9uIGRlZmF1bHQgZXhwciAqLworCWlmICh2 YXJEZWZleHByKQorCQlyZWNvcmREZXBlbmRlbmN5T25FeHByKCZteXNlbGYsIChOb2RlICopIHZh ckRlZmV4cHIsCisJCQkJCQkJICAgTklMLCBERVBFTkRFTkNZX05PUk1BTCk7CisKIAkvKiBkZXBl bmRlbmN5IG9uIG93bmVyICovCiAJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoVmFyaWFibGVSZWxh dGlvbklkLCB2YXJpZCwgdmFyT3duZXIpOwogCkBAIC0xODUsNiArMjAwLDcgQEAgQ3JlYXRlVmFy aWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAlP aWQJCQljb2xsYXRpb247CiAJT2lkCQkJdHlwY29sbGF0aW9uOwogCU9iamVjdEFkZHJlc3MgdmFy aWFibGU7CisJTm9kZQkgICAqY29va2VkX2RlZmF1bHQgPSBOVUxMOwogCiAJLyogY2hlY2sgY29u c2lzdGVuY3kgb2YgYXJndW1lbnRzICovCiAJaWYgKHN0bXQtPlhhY3RFbmRBY3Rpb24gPT0gVkFS SUFCTEVfWEFDVEVORF9EUk9QCkBAIC0yMjYsNiArMjQyLDE2IEBAIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQlmb3Jt YXRfdHlwZV9iZSh0eXBpZCkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10 LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbikpKTsKIAorCWlmIChzdG10LT5kZWZleHByKQorCXsKKwkJ Y29va2VkX2RlZmF1bHQgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgc3RtdC0+ZGVmZXhwciwKKwkJ CQkJCQkJCSAgIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUKTsKKworCQljb29rZWRfZGVmYXVs dCA9IGNvZXJjZV90b19zcGVjaWZpY190eXBlKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCSBjb29rZWRf ZGVmYXVsdCwgdHlwaWQsICJERUZBVUxUIik7CisJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0 YXRlLCBjb29rZWRfZGVmYXVsdCk7CisJfQorCiAJdmFyaWFibGUgPSBjcmVhdGVfdmFyaWFibGUo c3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsCiAJCQkJCQkJICAgbmFtZXNwYWNlaWQsCiAJCQkJCQkJ ICAgdHlwaWQsCkBAIC0yMzMsNiArMjU5LDcgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCQkgICB2YXJvd25lciwK IAkJCQkJCQkgICBjb2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJ CQkJCQkgICBjb29rZWRfZGVmYXVsdCwKIAkJCQkJCQkgICBzdG10LT5YYWN0RW5kQWN0aW9uKTsK IAogCWVsb2coREVCVUcxLCAicmVjb3JkIGZvciBzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiAob2lk OiVkKSB3YXMgY3JlYXRlZCBpbiBwZ192YXJpYWJsZSIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKaW5kZXggOWM4NjYyZjMyMmQuLmIxZDBlZWE3ZDQ5IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk ZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgog I2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xt Z3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKQEAgLTUxMywxMSArNTE0LDY4IEBAIEF0 RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKIAl9CiB9CiAKKy8qCisg KiBldmFsdWF0ZSBhbiBleHByZXNzaW9uCisgKi8KK3N0YXRpYyB2b2lkCitldmFsX2Fzc2lnbl9k ZWZleHByKFNWYXJpYWJsZSBzdmFyLCBIZWFwVHVwbGUgdHVwKQoreworCURhdHVtCQlkZWZleHBy X3ZhbHVlOworCWJvb2wJCWlzbnVsbDsKKworCUFzc2VydChzdmFyKTsKKwlBc3NlcnQoc3Zhci0+ aXNfdmFsaWQpOworCUFzc2VydChIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpOworCisJZGVmZXhwcl92 YWx1ZSA9IFN5c0NhY2hlR2V0QXR0cihWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCXR1cCwKKwkJCQkJ CQkJCUFudW1fcGdfdmFyaWFibGVfdmFyZGVmZXhwciwKKwkJCQkJCQkJCSZpc251bGwpOworCisJ aWYgKCFpc251bGwpCisJeworCQlFU3RhdGUJICAgKmVzdGF0ZTsKKwkJRXhwclN0YXRlICAqZGVm ZXhwcnM7CisJCUV4cHIJICAgKmRlZmV4cHI7CisJCWNoYXIJICAgKmRlZmV4cHJfc3RyOworCQlE YXR1bQkJdmFsdWU7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCisJCWVzdGF0ZSA9IENyZWF0 ZUV4ZWN1dG9yU3RhdGUoKTsKKworCQlkZWZleHByX3N0ciA9IFRleHREYXR1bUdldENTdHJpbmco ZGVmZXhwcl92YWx1ZSk7CisJCWRlZmV4cHIgPSAoRXhwciAqKSBzdHJpbmdUb05vZGUoZGVmZXhw cl9zdHIpOworCisJCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlc3RhdGUtPmVzX3F1 ZXJ5X2N4dCk7CisKKwkJZGVmZXhwciA9IGV4cHJlc3Npb25fcGxhbm5lcigoRXhwciAqKSBkZWZl eHByKTsKKwkJZGVmZXhwcnMgPSBFeGVjSW5pdEV4cHIoZGVmZXhwciwgTlVMTCk7CisKKwkJdmFs dWUgPSBFeGVjRXZhbEV4cHJTd2l0Y2hDb250ZXh0KGRlZmV4cHJzLAorCQkJCQkJCQkJCSAgR2V0 UGVyVHVwbGVFeHByQ29udGV4dChlc3RhdGUpLAorCQkJCQkJCQkJCSAgJmlzbnVsbCk7CisKKwkJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CisKKwkJaWYgKCFpc251bGwpCisJCXsKKwkJ CW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsK KworCQkJc3Zhci0+dmFsdWUgPSBkYXR1bUNvcHkodmFsdWUsIHN2YXItPnR5cGJ5dmFsLCBzdmFy LT50eXBsZW4pOworCQkJc3Zhci0+aXNudWxsID0gZmFsc2U7CisKKwkJCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRjeHQpOworCQl9CisKKwkJRnJlZUV4ZWN1dG9yU3RhdGUoZXN0YXRlKTsKKwl9 Cit9CisKIC8qCiAgKiBJbml0aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVkIGluICJzdmFyIgogICov CiBzdGF0aWMgdm9pZAotc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lk IHZhcmlkKQorc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlk LCBib29sIGlzX3dyaXRlKQogewogCUhlYXBUdXBsZQl0dXA7CiAJRm9ybV9wZ192YXJpYWJsZSB2 YXJmb3JtOwpAQCAtNTY3LDYgKzYyNSw5IEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1Zhcmlh YmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hW YWx1ZTEoVkFSSUFCTEVPSUQsCiAJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsK IAorCWlmICghaXNfd3JpdGUpCisJCWV2YWxfYXNzaWduX2RlZmV4cHIoc3ZhciwgdHVwKTsKKwog CVJlbGVhc2VTeXNDYWNoZSh0dXApOwogfQogCkBAIC01OTYsNyArNjU3LDcgQEAgc2V0X3Nlc3Np b25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAkg Ki8KIAlpZiAoIXN2YXItPmlzX3ZhbGlkKQogCXsKLQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgm bG9jc3Zhciwgc3Zhci0+dmFyaWQpOworCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZsb2NzdmFy LCBzdmFyLT52YXJpZCwgZmFsc2UpOwogCQlfc3ZhciA9ICZsb2NzdmFyOwogCX0KIAllbHNlCkBA IC03MzEsNyArNzkyLDI1IEBAIGdldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKIAkgKi8K IAlpZiAoIXN2YXItPmlzX3ZhbGlkKQogCXsKLQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFy LCB2YXJpZCk7CisJCS8qIGluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHVzZSBkZWZleHAgaWYgaXQg aXMgZGVmaW5lZCAqLworCQlQR19UUlkoKTsKKwkJeworCQkJLyoKKwkJCSAqIEluIHRoaXMgY2Fz ZSwgdGhlIHNldHVwIGNhbiBleGVjdXRlIGRlZmF1bHQgZXhwcmVzc2lvbi4gV2hlbgorCQkJICog dGhlIGV4ZWN1dGlvbiBvZiBkZWZhdWx0IGV4cHJlc3Npb24gZmFpbHMsIHRoZW4gd2UgbmVlZCB0 bworCQkJICogcmVtb3ZlIGVudHJ5IGZyb20gc2Vzc2lvbiB2YXJzLgorCQkJICovCisJCQlzZXR1 cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkLCBmYWxzZSk7CisJCX0KKwkJUEdfQ0FUQ0go KTsKKwkJeworCQkJLyogdGhpcyBlbnRyeSBjYW5ub3QgYmUgdmFsaWQsIHJlbW92ZSBmcm9tIHNl c3Npb252YXJzICovCisJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JF TU9WRSwgTlVMTCk7CisKKwkJCS8qIHByb3BhZ2F0ZSB0aGUgZXJyb3IgKi8KKwkJCVBHX1JFX1RI Uk9XKCk7CisJCX0KKwkJUEdfRU5EX1RSWSgpOwogCiAJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2 YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAo ZW1pdHRlZCBieSBSRUFEKSIsCiAJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLApAQCAtNzk1LDcgKzg3NCw3IEBAIFNldFNlc3Npb25W YXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKIAogCWlmICghZm91 bmQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkKTsKKwkJc2V0dXBf c2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCwgdHJ1ZSk7CiAKIAkJZWxvZyhERUJVRzEsICJz ZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4g bWVtb3J5IChlbWl0dGVkIGJ5IFdSSVRFKSIsCiAJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXgg MGYxMzgxMGU5MmYuLjQ4MTA1NTIwM2QxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTYzOCw2ICs2MzgsNyBA QCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlz dCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPHBhcnRib3VuZHNwZWM+IFBhcnRpdGlv bkJvdW5kU3BlYwogJXR5cGUgPGxpc3Q+CQloYXNoX3BhcnRib3VuZAogJXR5cGUgPGRlZmVsdD4J CWhhc2hfcGFydGJvdW5kX2VsZW0KKyV0eXBlIDxub2RlPgkJT3B0U2Vzc2lvblZhckRlZkV4cHIK IAogJXR5cGUgPG5vZGU+CWpzb25fZm9ybWF0X2NsYXVzZQogCQkJCWpzb25fZm9ybWF0X2NsYXVz ZV9vcHQKQEAgLTUyMTMsMzAgKzUyMTQsMzYgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToK ICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVB VEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2Nv bGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIFZBUklB QkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0 U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRl U2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CiAJCQkJ CSQ0LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwogCQkJCQluLT52YXJpYWJsZSA9ICQ0OwogCQkJCQlu LT50eXBlTmFtZSA9ICQ2OwogCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikg JDc7Ci0JCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkODsKKwkJCQkJbi0+ZGVmZXhwciA9ICQ4Owor CQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDk7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxz ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFS SUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRf Y29sbGF0ZV9jbGF1c2UgWGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJfCBDUkVBVEUgT3B0VGVtcCBW QVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9w dF9jb2xsYXRlX2NsYXVzZSBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9u CiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNl c3Npb25WYXJTdG10KTsKIAkJCQkJJDctPnJlbHBlcnNpc3RlbmNlID0gJDI7CiAJCQkJCW4tPnZh cmlhYmxlID0gJDc7CiAJCQkJCW4tPnR5cGVOYW1lID0gJDk7CiAJCQkJCW4tPmNvbGxDbGF1c2Ug PSAoQ29sbGF0ZUNsYXVzZSAqKSAkMTA7Ci0JCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7CisJ CQkJCW4tPmRlZmV4cHIgPSAkMTE7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTI7CiAJCQkJ CW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQog CQk7CiAKK09wdFNlc3Npb25WYXJEZWZFeHByOiBERUZBVUxUIGJfZXhwcgkJCQkJeyAkJCA9ICQy OyB9CisJCQl8IC8qIEVNUFRZICovCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJCTsKKwogLyoKICAq IFRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgZHJvcHBlZCBvbiBzdWNjZXNzZnVs CiAgKiB0cmFuc2FjdGlvbiBlbmQgbGlrZSB0YWJsZXMuCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5k ZXggYTczNDMwMDFmMjEuLmRkZmJjZjQyYjc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfYWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC00 ODgsNiArNDg4LDcgQEAgY2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1O X0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQ Ul9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAKIAkJCWlmIChpc0FnZykKIAkJCQllcnIgPSBfKCJh Z2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25z Iik7CkBAIC05MzcsNiArOTM4LDcgQEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBXaW5kb3dGdW5jICp3ZnVuYywKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lO RF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJ Y2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9IF8oIndpbmRvdyBmdW5j dGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKIAkJCWJyZWFr OwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKaW5kZXggMzYwMmMzNTcyZDcuLmJjYmIxZjU2NGFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKQEAgLTU4Miw2ICs1ODIsNyBAQCBleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVz KFBhcnNlRXhwcktpbmQgcF9leHByX2tpbmQpCiAJCWNhc2UgRVhQUl9LSU5EX0pPSU5fVVNJTkc6 CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9U QVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQlyZXN1bHQgPSBm YWxzZTsKIAkJCWJyZWFrOwogCX0KQEAgLTY2Nyw2ICs2NjgsNyBAQCB0cmFuc2Zvcm1Db2x1bW5S ZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5E X0NZQ0xFX01BUks6CiAJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CiAJCWNhc2UgRVhQ Ul9LSU5EX0xFVF9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJ CQkvKiBva2F5ICovCiAJCQlicmVhazsKIApAQCAtMjA3NSw2ICsyMDc3LDcgQEAgdHJhbnNmb3Jt U3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAJCQlicmVhazsK IAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNU SU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQllcnIg PSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRkFVTFQgZXhwcmVzc2lvbiIpOwogCQkJYnJl YWs7CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CkBAIC0zNDI3LDYgKzM0MzAs NyBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQkJcmV0dXJu ICJDSEVDSyI7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJf S0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxU OgogCQkJcmV0dXJuICJERUZBVUxUIjsKIAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lP TjoKIAkJCXJldHVybiAiaW5kZXggZXhwcmVzc2lvbiI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpp bmRleCA5YWE0ZjYwNzY4Yi4uZmNhYzY5NDQ1NWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpA QCAtMjYyMCw2ICsyNjIwLDcgQEAgY2hlY2tfc3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGludCBsb2NhdGlvbikKIAkJCWJyZWFrOwogCQljYXNl IEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVG QVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9IF8oInNl dC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Np b25zIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jCmluZGV4IDAwZDA3MGJkNGEyLi5iOTE2NWU0ZmE4ZCAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC01 NDIwLDYgKzU0MjAsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpbnQJCQlpX3Zh cm5hbWVzcGFjZTsKIAlpbnQJCQlpX3ZhcnR5cGU7CiAJaW50CQkJaV92YXJ0eXBuYW1lOworCWlu dAkJCWlfdmFyZGVmZXhwcjsKIAlpbnQJCQlpX3ZhcnhhY3RlbmRhY3Rpb247CiAJaW50CQkJaV92 YXJvd25lcjsKIAlpbnQJCQlpX3ZhcmNvbGxhdGlvbjsKQEAgLTU0NDUsNiArNTQ0Niw3IEBAIGdl dFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQkJCQkgICIgICAgICAgICAgICBUSEVOIHYudmFy Y29sbGF0aW9uXG4iCiAJCQkJCSAgIiAgICAgICAgICAgIEVMU0UgMFxuIgogCQkJCQkgICIgICAg ICAgRU5EIEFTIHZhcmNvbGxhdGlvbixcbiIKKwkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cucGdf Z2V0X2V4cHIodi52YXJkZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAgIiAgICAg ICB2LnZhcm93bmVyLCB2LnZhcmFjbCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1bHQoJ1Yn LCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCiAJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5w Z192YXJpYWJsZSB2XG4iCkBAIC01NDYxLDYgKzU0NjMsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKIAlpX3Zhcm5hbWVzcGFjZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2Ui KTsKIAlpX3ZhcnR5cGUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwZSIpOwogCWlfdmFydHlwbmFt ZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBuYW1lIik7CisJaV92YXJkZWZleHByID0gUFFmbnVt YmVyKHJlcywgInZhcmRlZmV4cHIiKTsKIAlpX3ZhcnhhY3RlbmRhY3Rpb24gPSBQUWZudW1iZXIo cmVzLCAidmFyeGFjdGVuZGFjdGlvbiIpOwogCWlfdmFyY29sbGF0aW9uID0gUFFmbnVtYmVyKHJl cywgInZhcmNvbGxhdGlvbiIpOwogCkBAIC01NDk2LDYgKzU0OTksMTEgQEAgZ2V0VmFyaWFibGVz KEFyY2hpdmUgKmZvdXQpCiAJCXZhcmluZm9baV0uZGFjbC5pbml0cHJpdnMgPSBOVUxMOwogCQl2 YXJpbmZvW2ldLnJvbG5hbWUgPSBnZXRSb2xlTmFtZShQUWdldHZhbHVlKHJlcywgaSwgaV92YXJv d25lcikpOwogCisJCWlmIChQUWdldGlzbnVsbChyZXMsIGksIGlfdmFyZGVmZXhwcikpCisJCQl2 YXJpbmZvW2ldLnZhcmRlZmV4cHIgPSBOVUxMOworCQllbHNlCisJCQl2YXJpbmZvW2ldLnZhcmRl ZmV4cHIgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyZGVmZXhwcikpOworCiAJ CS8qIGRvIG5vdCB0cnkgdG8gZHVtcCBBQ0wgaWYgbm8gQUNMIGV4aXN0cyAqLwogCQlpZiAoIVBR Z2V0aXNudWxsKHJlcywgaSwgaV92YXJhY2wpKQogCQkJdmFyaW5mb1tpXS5kb2JqLmNvbXBvbmVu dHMgfD0gRFVNUF9DT01QT05FTlRfQUNMOwpAQCAtNTUyOCw2ICs1NTM2LDcgQEAgZHVtcFZhcmlh YmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAlQUUV4cEJ1 ZmZlciBxdWVyeTsKIAljaGFyCSAgICpxdWFsdmFybmFtZTsKIAljb25zdCBjaGFyICp2YXJ0eXBu YW1lOworCWNvbnN0IGNoYXIgKnZhcmRlZmV4cHI7CiAJY29uc3QgY2hhciAqdmFyeGFjdGVuZGFj dGlvbjsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAKQEAgLTU1NDAsNiArNTU0OSw3IEBAIGR1bXBW YXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAKIAlx dWFsdmFybmFtZSA9IHBnX3N0cmR1cChmbXRRdWFsaWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CiAJ dmFydHlwbmFtZSA9IHZhcmluZm8tPnZhcnR5cG5hbWU7CisJdmFyZGVmZXhwciA9IHZhcmluZm8t PnZhcmRlZmV4cHI7CiAJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8tPnZhcnhhY3RlbmRhY3Rp b247CiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOwogCkBAIC01NTU5LDYg KzU1NjksMTAgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5m byAqdmFyaW5mbykKIAkJCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKGNvbGwpKTsKIAl9CiAK KwlpZiAodmFyZGVmZXhwcikKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgREVGQVVMVCAl cyIsCisJCQkJCQkgIHZhcmRlZmV4cHIpOworCiAJaWYgKHN0cmNtcCh2YXJ4YWN0ZW5kYWN0aW9u LCAiciIpID09IDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9OIFRSQU5TQUNUSU9O IEVORCBSRVNFVCIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA5NGNhMTNlNDhjMC4uYWEyYzcxNTJmMDkg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaApAQCAtNzA0LDYgKzcwNCw3IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJs ZUluZm8KIAlEdW1wYWJsZUFjbCBkYWNsOwogCU9pZAkJCXZhcnR5cGU7CiAJY2hhcgkgICAqdmFy dHlwbmFtZTsKKwljaGFyCSAgICp2YXJkZWZleHByOwogCWNoYXIJICAgKnZhcnhhY3RlbmRhY3Rp b247CiAJY2hhcgkgICAqdmFyYWNsOwogCWNoYXIJICAgKnJ2YXJhY2w7CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCmluZGV4IGNmYWUzMzc0OGFjLi5iMDkwNDMxNjE1OSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwKQEAgLTM5OTUsNiArMzk5NSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJ fSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBERUZBVUxUJyA9PiB7CisJCWFs bF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMn LAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklB QkxFIGR1bXBfdGVzdC52YXJpYWJsZTMgQVMgaW50ZWdlciBERUZBVUxUIDEwOycsCisJCXJlZ2V4 cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUzIEFTIGlu dGVnZXIgREVGQVVMVCAxMDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJ JWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwK KwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25s eV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKworCSdDUkVBVEUgVkFSSUFC TEUgdGVzdF92YXJpYWJsZSBERUZBVUxUIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCcgPT4gewor CQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1h bmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBW QVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU0IEFTIGludGVnZXIgREVGQVVMVCAxMCBPTiBUUkFO U0FDVElPTiBFTkQgUkVTRVQnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFC TEUgZHVtcF90ZXN0LnZhcmlhYmxlNCBBUyBpbnRlZ2VyIERFRkFVTFQgMTAgT04gVFJBTlNBQ1RJ T04gRU5EIFJFU0VUO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVt cF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1 bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1 bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3Rf dmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFU RSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggZTAyNzJjNTEwMDAuLjQ1YjM4 MzlhODdlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYwpAQCAtNTE2Miw3ICs1MTYyLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25z dCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKIAlQ R3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKLQlzdGF0 aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJc3RhdGljIGNvbnN0IGJvb2wg dHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgw MDAwKQogCXsKQEAgLTUxODMsNiArNTE4Myw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9N IHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgogCQkJ CQkgICIgICBXSEVSRSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5 cGUgQU5EIHYudmFyY29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgog CQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNc IixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciwgMCkg YXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4iCiAJCQkJ CSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKIAkJCQkJICAiICAgIFdI RU4gJ3InIFRIRU4gJ09OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCdcbiIKQEAgLTUxOTIsNiArNTE5 Myw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQog CQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0 aW9uIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9v cCgiRGVmYXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0 aW9uIikpOwogCiAJaWYgKHZlcmJvc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXgg NjAyOTFlZjdhYzIuLmU4YmZlZWJlZDExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBA IC02Nyw2ICs2Nyw5IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9u SWQpCiAJLyogYWNjZXNzIHBlcm1pc3Npb25zICovCiAJYWNsaXRlbQkJdmFyYWNsWzFdIEJLSV9E RUZBVUxUKF9udWxsXyk7CiAKKwkvKiBsaXN0IG9mIGV4cHJlc3Npb24gdHJlZXMgZm9yIHZhcmlh YmxlIGRlZmF1bHQgKE5VTEwgaWYgbm9uZSkgKi8KKwlwZ19ub2RlX3RyZWUgdmFyZGVmZXhwciBC S0lfREVGQVVMVChfbnVsbF8pOworCiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfdmFyaWFibGU7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA0YTliNzQ5YjlhMS4uN2E3YTc1ZGNlNzkgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM0NzcsNiArMzQ3Nyw3IEBAIHR5cGVkZWYgc3RydWN0IENy ZWF0ZVNlc3Npb25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBv ZiB2YXJpYWJsZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90 X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCU5vZGUJICAg KmRlZmV4cHI7CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gKi8KIAljaGFyCQlYYWN0RW5kQWN0aW9u OwkvKiBvbiB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10 OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCBjMTFmZGIzZDk3MC4uZmE1NjZiMTk0ZDEg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtODQsNiArODQsNyBAQCB0eXBlZGVmIGVudW0g UGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9DWUNMRV9NQVJLLAkJLyogY3ljbGUgbWFyayB2YWx1 ZSAqLwogCUVYUFJfS0lORF9BU1NJR05fVEFSR0VULAkvKiBQTC9wZ1NRTCBhc3NpZ25tZW50IHRh cmdldCAqLwogCUVYUFJfS0lORF9MRVRfVEFSR0VULAkJLyogTEVUIHRhcmdldCAqLworCUVYUFJf S0lORF9WQVJJQUJMRV9ERUZBVUxULCAvKiBkZWZhdWx0IHZhbHVlIGZvciBzZXNzaW9uIHZhcmlh YmxlICovCiB9IFBhcnNlRXhwcktpbmQ7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK aW5kZXggY2NmMjk1MTRkOWEuLjI0NzE5NWIyNTMxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNx bC5vdXQKQEAgLTU5MzUsMjAgKzU5MzUsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJs ZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24g fCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNj ZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBwdWJs aWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg fCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUg ICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9u IAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFj dGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAoMSBy b3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1FTlQg T04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBU eXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2Fj dGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAg ICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0 ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFy aWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAg ICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMK KyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAg IE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAg ICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3Jp cHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8 IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3Zhcmlh YmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAg ICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKQEAg LTY0MTYsOSArNjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRWICJuby5z dWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlv bmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9u IHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0r LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hl bWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NTkxLDkgKzY1OTEsOSBAQCBpbXByb3BlciBxdWFsaWZp ZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGlt cHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5z Y2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJs ZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlv biB8IE93bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0t Ky0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRh dGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjczMCw5ICs2NzMw LDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgwIHJvd3MpCiAKIFxkViByZWdy ZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBD b2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2Fj dGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAt LSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxp ZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dAppbmRleCBiZmJkMjQxZjUyNS4uNGNmNGUwN2Y0YWYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00NSwxMSArNDUsMTEg QEAgU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSBz dmFydGVzdC52YXIxIEFTIGludDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBcZFYrIHN2YXJ0ZXN0 LnZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gIFNjaGVtYSAgfCBOYW1lIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlv bmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAg ICAgICAgICAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLQotIHN2YXJ0ZXN0IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAgfCByZWdy ZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCi0gICAgICAgICAgfCAg ICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAg U2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAg ICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBzdmFydGVz dCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAgICAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIx OwpAQCAtMTU1NSwzICsxNTU1LDY2IEBAIFNFTEVDVCB2YXIxIElTIE5VTEw7CiAoMSByb3cpCiAK IERST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3Rf ZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAndmFydGVzdF9m eCBleGVjdXRlZCc7CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxUIHZhcnRlc3RfZngoKTsKKy0tIHZhcnRl c3RfZnggc2hvdWxkIGJlIHByb3RlY3RlZCBieSBkZXAsIHNob3VsZCBmYWlsCitEUk9QIEZVTkNU SU9OIHZhcnRlc3RfZngoKTsKK0VSUk9SOiAgY2Fubm90IGRyb3AgZnVuY3Rpb24gdmFydGVzdF9m eCgpIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24g dmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIGZ1bmN0aW9uIHZhcnRlc3RfZngoKQorSElOVDogIFVz ZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CitOT1RJQ0U6ICB2YXJ0ZXN0X2Z4IGV4ZWN1dGVk CisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworLS0gdGhlIGRlZmV4cHIgc2hvdWxk IGJlIGV2YWx1YXRlZCBvbmx5IG9uY2UKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg ICAwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gaW4gdGhpcyBjYXNlLCB0aGUg ZGVmZXhwciBzaG91bGQgbm90IGJlIGV2YWx1YXRlZAorTEVUIHZhcjEgPSAxMDA7CitTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxF UzsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQg QVMgJCQKK0JFR0lOCisgIFJBSVNFIEVYQ0VQVElPTiAndmFydGVzdF9meCBpcyBleGVjdXRpbmcn OworICBSRVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CistLSBzaG91bGQgdG8g ZmFpbCwgYnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZhcjE7CitFUlJPUjogIHZhcnRlc3RfZngg aXMgZXhlY3V0aW5nCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFydGVzdF9meCgpIGxp bmUgMyBhdCBSQUlTRQorLS0gYWdhaW4KK1NFTEVDVCB2YXIxOworRVJST1I6ICB2YXJ0ZXN0X2Z4 IGlzIGV4ZWN1dGluZworQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcnRlc3RfZngoKSBs aW5lIDMgYXQgUkFJU0UKKy0tIGJ1dCB3ZSBjYW4gd3JpdGUKK0xFVCB2YXIxID0gMTAwOworU0VM RUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJM RSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggYTQ0OTg5ZWYwYjUuLjRjNWJiZWNkYmUyIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMDM5LDMg KzEwMzksNTEgQEAgUk9MTEJBQ0s7CiBTRUxFQ1QgdmFyMSBJUyBOVUxMOwogCiBEUk9QIFZBUklB QkxFIHZhcjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAndmFydGVzdF9meCBleGVjdXRl ZCc7CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50IERFRkFVTFQgdmFydGVzdF9meCgpOworCistLSB2YXJ0ZXN0X2Z4 IHNob3VsZCBiZSBwcm90ZWN0ZWQgYnkgZGVwLCBzaG91bGQgZmFpbAorRFJPUCBGVU5DVElPTiB2 YXJ0ZXN0X2Z4KCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHRoZSBk ZWZleHByIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBvbmNlCitTRUxFQ1QgdmFyMTsKKworRElT Q0FSRCBWQVJJQUJMRVM7CisKKy0tIGluIHRoaXMgY2FzZSwgdGhlIGRlZmV4cHIgc2hvdWxkIG5v dCBiZSBldmFsdWF0ZWQKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQg VkFSSUFCTEVTOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JF VFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBFWENFUFRJT04gJ3ZhcnRlc3RfZnggaXMg ZXhlY3V0aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCist LSBzaG91bGQgdG8gZmFpbCwgYnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZhcjE7CisKKy0tIGFn YWluCitTRUxFQ1QgdmFyMTsKKworLS0gYnV0IHdlIGNhbiB3cml0ZQorTEVUIHZhcjEgPSAxMDA7 CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0 ZXN0X2Z4KCk7Ci0tIAoyLjQ3LjAKCg== --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0011-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20241106-0011-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpbf9 RnJvbSAyNGFlZTliMmE5NGZhNzY5NTE0NWRhZDA3YTdjYzZkZWRjODA3NDJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjAgTWFyIDIwMjQgMDg6Mzc6MTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzIwXSBJbXBsZW1lbnRhdGlvbiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgY2xhdXNlCgpUaGlz IGlzIHNpbXBsZSBwYXRjaCAtIGp1c3QgYWRkIHNwZWNpYWwgZmxhZyB0byBzZXNzaW9uIHZhcmlh YmxlIG1lbW9yeSBlbnRyeS4KVGhlIGVudHJpZXMgd2l0aCBhY3RpdmUgdGhpcyBmbGFnIGFyZSBy ZW1vdmVkIGZyb20gc2Vzc2lvbnZhcnMgaGFzaCB0YWJsZQphdCB0cmFuc2FjdGlvbiBlbmQuIFRo ZSAiVFJBTlNBQ1RJT04gRU5EIiBpcyBzeW5vbnltcyBmb3IgIkNPTU1JVCBST0xMQkFDSyIKYnV0 IHRoZSAiVFJBTlNBQ1RJT04gRU5EIiBpcyBtb3JlIGlsbHVzdHJhdGl2ZSBhbmQgbGVzcyBjb25m dXNpbmcgdGhlbiAiQ09NTUlUIFJPTExCQUNLIi4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbCAgICAgICAgIHwgMTMgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYyAgICAgICB8IDUxICsrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDExICsrKysKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8IDE4ICsrKysrKysKIHNyYy9iaW4vcHNx bC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAxICsKIC4uLi9pc29sYXRpb24vZXhw ZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICA0ICstCiAuLi4vaXNvbGF0aW9uL3NwZWNz L3Nlc3Npb24tdmFyaWFibGUuc3BlYyAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMzQgKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgMjAgKysrKysrKysKIDEzIGZpbGVz IGNoYW5nZWQsIDE1OCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK aW5kZXggZjRhMjI2ZTE2ODUuLjc1MmI4OTVkZTQ1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTg0OSw3 ICs5ODQ5LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT4KICAgICAg IDxwYXJhPgogICAgICAgIEFjdGlvbiBwZXJmb3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgot ICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRl cmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLAorICAg ICAgIDxsaXRlcmFsPnI8L2xpdGVyYWw+ID0gcmVzZXQgdGhlIHZhcmlhYmxlIHRvIGl0cyBkZWZh dWx0IHZhbHVlLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCA2NDIzNDYxODZmMC4uZTFjMjk0MGQ0Y2Eg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjcsNyArMjcsNyBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBD UkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBd IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQotICAgIFsgT04gQ09NTUlUIERST1AgXQorICAgIFsgeyBPTiBDT01NSVQgRFJP UCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC0xMTcsNiArMTE3LDE3IEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tdHJhbnNhY3Rpb24tZW5kLXJlc2V0 Ij4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+ T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIHRoZSBzZXNz aW9uCisgICAgICB2YXJpYWJsZSB0byBiZSByZXNldCB0byBpdHMgZGVmYXVsdCB2YWx1ZSB3aGVu IHRoZSB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQKKyAgICAgIG9yIHJvbGxlZCBiYWNrLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwvdmFy aWFibGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwppbmRleCBkYjc0N2E5ZGE4MS4uOWM4NjYyZjMyMmQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTgzLDYgKzgzLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg U1ZhcmlhYmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5z YWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlyZXNldF9hdF9lb3g7 CisKIAkvKgogCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgbGFzdCB0 cmFuc2FjdGlvbiB0aGF0IGRyb3BwZWQgdGhlCiAJICogdmFyaWFibGUgaWYgYW55LiAgV2UgbmVl ZCB0aGlzIGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgpAQCAtMTEwLDYg KzExMiwxMiBAQCBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0g TlVMTDsKIC8qIHRydWUgYWZ0ZXIgYWNjZXB0ZWQgc2ludmFsIG1lc3NhZ2UgKi8KIHN0YXRpYyBi b29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAorLyoKKyAqIHRydWUsIHdoZW4gc29tZSB1 c2VkIHNlc3Npb24gdmFyaWFibGUgaGFzIE9OIENPTU1JVCBEUk9QCisgKiBvciBPTiBUUkFOU0FD VElPTiBFTkQgUkVTRVQgY2xhdXNlcworICovCitzdGF0aWMgYm9vbCBoYXNfc2Vzc2lvbl92YXJp YWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250ZW50IG9m IHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiBXaGVuIGl0CiAg KiBpcyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFuc2FjdGlvbiBlbmQuIEJ1dCB3aGVu IHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQsCkBAIC0zODgsNiArMzk2LDMyIEBAIHJlbW92ZV9pbnZh bGlkX3Nlc3Npb25fdmFyaWFibGVzKGJvb2wgYXRFT1gpCiAJfQogfQogCisvKgorICogcmVtb3Zl IGVudHJpZXMgbWFya2VkIGFzICJyZXNldF9hdF9lb3giCisgKi8KK3N0YXRpYyB2b2lkCityZW1v dmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9pZCkKK3sKKwlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJaWYgKCFzZXNzaW9udmFycykK KwkJcmV0dXJuOworCisJLyogbGVhdmUgcXVja2x5LCB3aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2 YXJpYWJsZXMgKi8KKwlpZiAoIWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2Vv eCkKKwkJcmV0dXJuOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisJ d2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBO VUxMKQorCXsKKwkJaWYgKHN2YXItPnJlc2V0X2F0X2VveCkKKwkJCWhhc2hfc2VhcmNoKHNlc3Np b252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwl9CisKKwloYXNfc2Vz c2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKK30KKwogLyoKICAgKiBQ ZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZvciB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAg ICogYW5kIHJlbW92ZSBhbGwgZHJvcHBlZCB2YXJpYWJsZXMgZnJvbSBtZW1vcnkuCkBAIC0zOTUs NiArNDI5LDggQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkK IHZvaWQKIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkKIHsKKwly ZW1vdmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3goKTsKKwogCWlmIChpc0Nv bW1pdCkKIAl7CiAJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCkBAIC01MDYsNiArNTQyLDIxIEBAIHNl dHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFyLT5k b21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlk ID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAorCS8qCisJICogV2UgZG9uJ3QgbmVlZCB0 byBleHBsaWNpdGx5IHJlc2V0IHZhcmlhYmxlcyBtYXJrZWQgT04gQ09NTUlUIERST1AuIEl0CisJ ICogY2FuIGJlIGRvbmUgYnkgc2ludmFsIG1lc3NhZ2UgcHJvY2Vzc2luZy4gQnV0IHRoaXMgcHJv Y2Vzc2luZyBjYW4gYmUKKwkgKiBwb3N0cG9uZWQgZHVlIGFib3J0ZWQgdHJhbnNhY3Rpb24uIE9u IHNlY29uZCBoYW5kIHRoZXJlIGlzIG5vdCBhCisJICogcmVhc29uLCB3aHkgZG9uJ3QgZG8gaXQg YXQgdHJhbnNhY3Rpb24gZW5kIGltbWVkaWF0ZWx5LgorCSAqLworCWlmICh2YXJmb3JtLT52YXJ4 YWN0ZW5kYWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfUkVTRVQgfHwKKwkJdmFyZm9ybS0+dmFy eGFjdGVuZGFjdGlvbiA9PSBWQVJJQUJMRV9YQUNURU5EX0RST1ApCisJeworCQlzdmFyLT5yZXNl dF9hdF9lb3ggPSB0cnVlOworCQloYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9l b3ggPSB0cnVlOworCX0KKwllbHNlCisJCXN2YXItPnJlc2V0X2F0X2VveCA9IGZhbHNlOworCiAJ c3Zhci0+ZHJvcF9seGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKIAlzdmFyLT5pc251bGwg PSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYmRlYzhjZjE0NjIuLjBmMTM4MTBlOTJmIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKQEAgLTUyNDIsNiArNTI0Miw3IEBAIENyZWF0ZVNlc3Npb25WYXJTdG10OgogICogdHJh bnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgogICovCiBYYWN0RW5kQWN0aW9uT3B0aW9uOiAgT04g Q09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsgfQorCQkJfCBPTiBU UkFOU0FDVElPTiBFTkRfUCBSRVNFVAkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX1JFU0VUOyB9 CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfTk9PUDsgfQog CQk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCmluZGV4IDQ3YTg1OWFjMzY1Li4wMGQwNzBiZDRhMiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jCkBAIC01NDIwLDYgKzU0MjAsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlp bnQJCQlpX3Zhcm5hbWVzcGFjZTsKIAlpbnQJCQlpX3ZhcnR5cGU7CiAJaW50CQkJaV92YXJ0eXBu YW1lOworCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zhcm93bmVyOwogCWlu dAkJCWlfdmFyY29sbGF0aW9uOwogCWludAkJCWlfdmFyYWNsOwpAQCAtNTQzNyw2ICs1NDM4LDcg QEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJLyogZ2V0IHRoZSB2YXJpYWJsZXMgaW4g Y3VycmVudCBkYXRhYmFzZSAqLwogCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAogCQkJCQkgICJT RUxFQ1Qgdi50YWJsZW9pZCwgdi5vaWQsIHYudmFybmFtZSxcbiIKKwkJCQkJICAiICAgICAgIHYu dmFyeGFjdGVuZGFjdGlvbixcbiIKIAkJCQkJICAiICAgICAgIHYudmFybmFtZXNwYWNlLCB2LnZh cnR5cGUsXG4iCiAJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYudmFydHlw ZSwgdi52YXJ0eXBtb2QpIGFzIHZhcnR5cG5hbWUsXG4iCiAJCQkJCSAgIiAgICAgICBDQVNFIFdI RU4gdi52YXJjb2xsYXRpb24gPD4gdC50eXBjb2xsYXRpb24gIgpAQCAtNTQ1OSw2ICs1NDYxLDcg QEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaV92YXJuYW1lc3BhY2UgPSBQUWZudW1i ZXIocmVzLCAidmFybmFtZXNwYWNlIik7CiAJaV92YXJ0eXBlID0gUFFmbnVtYmVyKHJlcywgInZh cnR5cGUiKTsKIAlpX3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwbmFtZSIpOwor CWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJ4YWN0ZW5kYWN0aW9uIik7 CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7CiAKIAlp X3Zhcm93bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CkBAIC01NDgyLDYgKzU0ODUs OSBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAogCQl2YXJpbmZvW2ldLnZhcnR5cGUg PSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwZSkpOwogCQl2YXJpbmZvW2ldLnZh cnR5cG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwbmFtZSkpOwor CQl2YXJpbmZvW2ldLnZhcnhhY3RlbmRhY3Rpb24gPQorCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX3ZhcnhhY3RlbmRhY3Rpb24pKTsKKwogCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlv biA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKIAogCQl2YXJp bmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkp OwpAQCAtNTUyMiw2ICs1NTI4LDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0 IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAlQUUV4cEJ1ZmZlciBxdWVyeTsKIAljaGFyCSAgICpx dWFsdmFybmFtZTsKIAljb25zdCBjaGFyICp2YXJ0eXBuYW1lOworCWNvbnN0IGNoYXIgKnZhcnhh Y3RlbmRhY3Rpb247CiAJT2lkCQkJdmFyY29sbGF0aW9uOwogCiAJLyogc2tpcCBpZiBub3QgdG8g YmUgZHVtcGVkICovCkBAIC01NTMzLDYgKzU1NDAsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAq Zm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCiAJcXVhbHZhcm5hbWUgPSBwZ19z dHJkdXAoZm10UXVhbGlmaWVkRHVtcGFibGUodmFyaW5mbykpOwogCXZhcnR5cG5hbWUgPSB2YXJp bmZvLT52YXJ0eXBuYW1lOworCXZhcnhhY3RlbmRhY3Rpb24gPSB2YXJpbmZvLT52YXJ4YWN0ZW5k YWN0aW9uOwogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKIAogCWFwcGVu ZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKQEAgLTU1NTEsNiArNTU1 OSw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZh cmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZShjb2xsKSk7CiAJfQogCisJaWYg KHN0cmNtcCh2YXJ4YWN0ZW5kYWN0aW9uLCAiciIpID09IDApCisJCWFwcGVuZFBRRXhwQnVmZmVy KHF1ZXJ5LCAiIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCIpOworCiAJYXBwZW5kUFFFeHBCdWZm ZXIocXVlcnksICI7XG4iKTsKIAogCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBP TkVOVF9ERUZJTklUSU9OKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggYWYxNWIzZjIxODguLjk0Y2ExM2U0OGMw IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmgKQEAgLTcwNCw2ICs3MDQsNyBAQCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFi bGVJbmZvCiAJRHVtcGFibGVBY2wgZGFjbDsKIAlPaWQJCQl2YXJ0eXBlOwogCWNoYXIJICAgKnZh cnR5cG5hbWU7CisJY2hhcgkgICAqdmFyeGFjdGVuZGFjdGlvbjsKIAljaGFyCSAgICp2YXJhY2w7 CiAJY2hhcgkgICAqcnZhcmFjbDsKIAljaGFyCSAgICppbml0dmFyYWNsOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbAppbmRleCAwYTIyOTVmMDUyMS4uY2ZhZTMzNzQ4YWMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCkBAIC0zOTc3LDYgKzM5NzcsMjQgQEAgbXkgJXRlc3RzID0gKAogCQl9LAog CX0sCiAKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUgT04gVFJBTlNBQ1RJT04gRU5E IFJFU0VUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NS RUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwg ICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBU UkFOU0FDVElPTiBFTkQgUkVTRVQ7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZB UklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFOU0FDVElPTiBFTkQg UkVTRVQ7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rf c2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9 PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFz dXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9 PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcg ZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMg Yi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBkODU3MjE3MWYwZC4uZTAyNzJjNTEwMDAg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5jCkBAIC01MTg1LDYgKzUxODUsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIg KnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2Vy YnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3Rl bmRhY3Rpb25cbiIKIAkJCQkJICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xu IgorCQkJCQkgICIgICAgV0hFTiAncicgVEhFTiAnT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJ1xu IgogCQkJCQkgICIgIEVORCBhcyBcIiVzXCJcbiIsCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hl bWEiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFi bGUuaAppbmRleCAxZTZkZDk4ZDQxNS4uNjAyOTFlZjdhYzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmgKQEAgLTc0LDYgKzc0LDcgQEAgdHlwZWRlZiBlbnVtIFZhcmlhYmxlWGFjdEVuZEFj dGlvbgogewogCVZBUklBQkxFX1hBQ1RFTkRfTk9PUCA9ICduJywJLyogTk9PUCAqLwogCVZBUklB QkxFX1hBQ1RFTkRfRFJPUCA9ICdkJywJLyogT04gQ09NTUlUIERST1AgKi8KKwlWQVJJQUJMRV9Y QUNURU5EX1JFU0VUID0gJ3InLAkvKiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgKi8KIH0JCQlW YXJpYWJsZVhhY3RFbmRBY3Rpb247CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCBiL3NyYy90 ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dAppbmRleCA5ZmJiZjkw NTdhNi4uMTlhMmU1YThmNjQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQv c2Vzc2lvbi12YXJpYWJsZS5vdXQKQEAgLTg1LDExICs4NSwxMiBAQCBteXZhcgogCiBzdGVwIHNy MTogUk9MTEJBQ0s7CiAKLXN0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19j X2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3Rh cnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBvX2VveF9yIGNyZWF0ZTQg bGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgY2xlYW4gc3RhdGUKIHN0ZXAgY3Jl YXRlMzogQ1JFQVRFIFZBUklBQkxFIG15dmFyMyBBUyB0ZXh0Owogc3RlcCBsZXQzOiBMRVQgbXl2 YXIzID0gJ3Rlc3QnOwogc3RlcCBzMzogQkVHSU47CiBzdGVwIG9fY19kOiBDUkVBVEUgVEVNUCBW QVJJQUJMRSBteXZhcl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOworc3RlcCBvX2VveF9y OiBDUkVBVEUgVkFSSUFCTEUgbXl2YXJfb19lb3hfciBBUyB0ZXh0IE9OIFRSQU5TQUNUSU9OIEVO RCBSRVNFVDsgTEVUIG15dmFyX29fZW94X3IgPSAndGVzdCc7CiBzdGVwIGNyZWF0ZTQ6IENSRUFU RSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsKIHN0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0 JzsKIHN0ZXAgZHJvcDQ6IERST1AgVkFSSUFCTEUgbXl2YXI0OwpAQCAtMTAyLDYgKzEwMyw3IEBA IHQKIAogc3RlcCBkaXNjYXJkOiBESVNDQVJEIFZBUklBQkxFUzsKIHN0ZXAgc2MzOiBDT01NSVQ7 CitzdGVwIGNsZWFuOiBEUk9QIFZBUklBQkxFIG15dmFyX29fZW94X3I7CiBzdGVwIHN0YXRlOiBT RUxFQ1QgdmFybmFtZSBGUk9NIHBnX3ZhcmlhYmxlOwogdmFybmFtZQogLS0tLS0tLQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3Ny Yy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKaW5kZXggNDVlNjVk NDA4NWQuLjVkMDg5YzhhNGVkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mv c2Vzc2lvbi12YXJpYWJsZS5zcGVjCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNz aW9uLXZhcmlhYmxlLnNwZWMKQEAgLTI1LDEyICsyNSwxNCBAQCBzZXNzaW9uIHMzCiBzdGVwIHMz CQkJeyBCRUdJTjsgfQogc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KIHN0ZXAg b19jX2QJCXsgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01N SVQgRFJPUDsgfQorc3RlcCBvX2VveF9yCXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyX29fZW94X3Ig QVMgdGV4dCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7IExFVCBteXZhcl9vX2VveF9yID0gJ3Rl c3QnOyB9CiBzdGVwIGNyZWF0ZTQJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7IH0K IHN0ZXAgbGV0NAkJeyBMRVQgbXl2YXI0ID0gJ3Rlc3QnOyB9CiBzdGVwIGRyb3A0CQl7IERST1Ag VkFSSUFCTEUgbXl2YXI0OyB9CiBzdGVwIGludmFsMwkJeyBTRUxFQ1QgQ09VTlQoKikgPj0gMCBG Uk9NIHBnX2ZvcmVpZ25fdGFibGU7IH0KIHN0ZXAgZGlzY2FyZAl7IERJU0NBUkQgVkFSSUFCTEVT OyB9CiBzdGVwIHNjMwkJeyBDT01NSVQ7IH0KK3N0ZXAgY2xlYW4JCXsgRFJPUCBWQVJJQUJMRSBt eXZhcl9vX2VveF9yOyB9CiBzdGVwIHN0YXRlCQl7IFNFTEVDVCB2YXJuYW1lIEZST00gcGdfdmFy aWFibGU7IH0KIAogc2Vzc2lvbiBzNApAQCAtNDgsNCArNTAsNCBAQCBwZXJtdXRhdGlvbiBsZXQg dmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCiAjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVy IHRoZSBjb25jdXJyZW50IGRyb3AKIHBlcm11dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3Jl YXRlIGRiZyB2YWwgc3IxCiAjIHRlc3QgZm9yIERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFs IHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVnaXN0ZXJlZAotcGVybXV0YXRpb24gY3JlYXRlMyBsZXQz IHMzIG9fY19kIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3Rh dGUKK3Blcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBvX2VveF9yIGNyZWF0ZTQgbGV0 NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgY2xlYW4gc3RhdGUKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggOTYzZmZhYTNi MWUuLmJmYmQyNDFmNTI1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dApAQCAtMTUyMSwzICsxNTIxLDM3IEBAIFNFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CiAgICAgIDAKICgxIHJvdykKIAorQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsKK0JFR0lOOworICBM RVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygx IHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIE5VTEw7CitTRUxFQ1QgdmFyMSBJUyBOVUxM OworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworQkVHSU47CisgIExFVCB2 YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93 KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMSBJUyBOVUxMOwor ID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIx OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IGJjMWYw OTMwZDM4Li5hNDQ5ODllZjBiNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbApAQCAtMTAxOSwzICsxMDE5LDIzIEBAIENPTU1JVDsKIFNFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CiAtLSBzaG91bGQgYmUg emVybwogU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsKKworQkVH SU47CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hv dWxkIGJlIE5VTEw7CitTRUxFQ1QgdmFyMSBJUyBOVUxMOworCitCRUdJTjsKKyAgTEVUIHZhcjEg PSAxMDA7CisgIFNFTEVDVCB2YXIxOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBOVUxMCitT RUxFQ1QgdmFyMSBJUyBOVUxMOworCitEUk9QIFZBUklBQkxFIHZhcjE7Ci0tIAoyLjQ3LjAKCg== --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0009-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20241106-0009-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpbx11 RnJvbSA1M2JlZmRkNDlhOGVkYWU4NTEzMWViMWIzYWM0ZGM3OTdmNmU0MDYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDA5 LzIwXSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMg ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgODEgKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNTcgKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5z Z21sCmluZGV4IDhlZTk0MzlmNjExLi40NWQ3MmIxZDUyYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9wcmVwYXJlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wcmVwYXJlLnNnbWwK QEAgLTExNiw4ICsxMTYsOCBAQCBQUkVQQVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcwogICAgIDxsaXN0aXRl bT4KICAgICAgPHBhcmE+CiAgICAgICBBbnkgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiwgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKLSAgICAg IDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwgb3Ig PGNvbW1hbmQ+VkFMVUVTPC9jb21tYW5kPgotICAgICAgc3RhdGVtZW50LgorICAgICAgPGNvbW1h bmQ+REVMRVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+TUVSR0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5W QUxVRVM8L2NvbW1hbmQ+LAorICAgICAgb3IgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBzdGF0ZW1l bnQuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCAzOTA0YjhmZDUxMi4uNWQ3NzRiNjk0NzMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt MTIxNDQsNyArMTIxNDQsOCBAQCBQcmVwYXJhYmxlU3RtdDoKIAkJCXwgSW5zZXJ0U3RtdAogCQkJ fCBVcGRhdGVTdG10CiAJCQl8IERlbGV0ZVN0bXQKLQkJCXwgTWVyZ2VTdG10CQkJCQkJLyogYnkg ZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCisJCQl8IE1lcmdlU3RtdAorCQkJfCBMZXRTdG10CQkJ CQkJLyogYnkgZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCiAJCTsKIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKaW5kZXggZGU5YWU5YjQ4MzQuLmI0YjliNWI2MWM4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdp dGhDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlD b21tb25UYWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJ TGlzdENlbGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBu b3Qgc3VwcG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnks IExldFN0bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lU SCBxdWVyeSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9u KSk7CisKIAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRo Q2xhdXNlLT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21t b25UYWJsZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGRl Yjk1NjNhNTk4Li5kNmI3ZjQ3ZTM1YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtNDYyOSw5 ICs0NjI5LDkgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIlZBTFVFUyIpICYmICFUYWlsTWF0Y2hlcygiREVGQVVMVCIsICJWQUxV RVMiKSkKIAkJQ09NUExFVEVfV0lUSCgiKCIpOwogCi0vKiBMRVQgKi8KKy8qIExFVCwgRVhQTEFJ TiBMRVQsIFBSRVBBUkUgTEVUICovCiAJLyogSWYgcHJldi4gd29yZCBpcyBMRVQgc3VnZ2VzdCBh IGxpc3Qgb2YgdmFyaWFibGVzICovCi0JZWxzZSBpZiAoTWF0Y2hlcygiTEVUIikpCisJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIkxFVCIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCS8qIENvbXBsZXRlIExFVCA8dmFyaWFibGU+IHdp dGggIj0iICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkxFVCIsIE1hdGNoQW55KSkKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggOWY0 ODAwZjBiMDYuLjhhMzJiYWFiNzg0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDM5LDkgKzQzOSw5IEBAIERST1AgVkFSSUFCTEUg dmFyMSwgdmFyMjsKIC0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxvd2VkIGlu IENURQogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OwogV0lUSCB4IEFTIChMRVQgdmFyMSA9 IDEwMCkgU0VMRUNUICogRlJPTSB4OwotRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAi TEVUIgorRVJST1I6ICBMRVQgbm90IHN1cHBvcnRlZCBpbiBXSVRIIHF1ZXJ5CiBMSU5FIDE6IFdJ VEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKLSAgICAgICAgICAgICAg ICAgICBeCisgICAgICAgICAgICAgXgogLS0gc2hvdWxkIGJlIG9rCiBMRVQgdmFyMSA9IGdlbmVy YXRlX3NlcmllcygxLCAxKTsKIC0tIHNob3VsZCBmYWlsCkBAIC0xMzIyLDUgKzEzMjIsODIgQEAg U0VMRUNUIHZhcjE7CiAgICAxMAogKDEgcm93KQogCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZv cmNlX2dlbmVyaWNfcGxhbjsKK1BSRVBBUkUgcDEgQVMgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50 KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKK0xFVCB2YXIxID0gTlVMTDsKK0VYUExBSU4g KENPU1RTIE9GRikgRVhFQ1VURSBwMTsKKyAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdAorICAgSW5pdFBsYW4gMQorICAg ICAtPiAgQWdncmVnYXRlCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3Rf dGFibGUKKyg1IHJvd3MpCisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYsIFRJTUlORyBP RkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGKSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgU0VUIFNFU1NJT04gVkFSSUFCTEUKKyBSZXN1bHQgKGFjdHVhbCByb3dz PTEgbG9vcHM9MSkKKyAgIEluaXRQbGFuIDEKKyAgICAgLT4gIEFnZ3JlZ2F0ZSAoYWN0dWFsIHJv d3M9MSBsb29wcz0xKQorICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdmFyX3RhYl90ZXN0X3Rh YmxlIChhY3R1YWwgcm93cz0xMCBsb29wcz0xKQorKDUgcm93cykKKworLS0gc2hvdWxkIGJlIDEw CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRVQgcGxh bl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CitERUFMTE9DQVRFIHAxOwogRFJPUCBWQVJJQUJMRSB2 YXIxOwogRFJPUCBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGU7CitDUkVBVEUgVkFSSUFCTEUgdmFy MSBudW1lcmljOworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CitQ UkVQQVJFIHAxKG51bWVyaWMpIEFTIExFVCB2YXIxID0gJDE7CitQUkVQQVJFIHAyIEFTIFNFTEVD VCB2YXIxOworRVhFQ1VURSBwMShwaSgpICsgMTAwKTsKK0VYRUNVVEUgcDI7CisgICAgICB2YXIx ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0KKyAxMDMuMTQxNTkyNjUzNTkKKygxIHJvdykKKwor LS0gcHJlcGFyZWQgcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24gdGVzdAorRFJPUCBWQVJJQUJMRSB2 YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKKy0tIHNob3VsZCBiZSBOVUxMCitF WEVDVVRFIHAyOworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK0RFQUxMT0NBVEUg cDE7CitERUFMTE9DQVRFIHAyOworRFJPUCBWQVJJQUJMRSB2YXIxOworU0VUIHBsYW5fY2FjaGVf bW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmlj W107CitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZhcjFbJDFdID0gJDI7CitMRVQg dmFyMSA9ICd7fSc6Om51bWVyaWNbXTsKK0VYRUNVVEUgcDEoMSwgMTAuMik7CitFWEVDVVRFIHAx KDIsIDEwLjMpOworU0VMRUNUIHZhcjE7CisgICAgdmFyMSAgICAgCistLS0tLS0tLS0tLS0tCisg ezEwLjIsMTAuM30KKygxIHJvdykKKworREVBTExPQ0FURSBwMTsKK0RST1AgVkFSSUFCTEUgdmFy MTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBhY2Ey YTA2MjgwZi4uYjYzMjIwMThjZTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKQEAgLTg5NCw1ICs4OTQsNjIgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGLCBUSU1J TkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRikgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCoK IC0tIHNob3VsZCBiZSAxMAogU0VMRUNUIHZhcjE7CiAKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8g Zm9yY2VfZ2VuZXJpY19wbGFuOworCitQUkVQQVJFIHAxIEFTIExFVCB2YXIxID0gKFNFTEVDVCBj b3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisKK0xFVCB2YXIxID0gTlVMTDsKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91bGQgYmUgTlVMTAorU0VM RUNUIHZhcjE7CisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwgU1VN TUFSWSBPRkYpIEVYRUNVVEUgcDE7CisKKy0tIHNob3VsZCBiZSAxMAorU0VMRUNUIHZhcjE7CisK K1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKKworREVBTExPQ0FURSBwMTsKKwogRFJP UCBWQVJJQUJMRSB2YXIxOwogRFJPUCBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGU7CisKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIG51bWVyaWM7CisKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2Vf Z2VuZXJpY19wbGFuOworCitQUkVQQVJFIHAxKG51bWVyaWMpIEFTIExFVCB2YXIxID0gJDE7CitQ UkVQQVJFIHAyIEFTIFNFTEVDVCB2YXIxOworCitFWEVDVVRFIHAxKHBpKCkgKyAxMDApOworRVhF Q1VURSBwMjsKKworLS0gcHJlcGFyZWQgcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24gdGVzdAorRFJP UCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKKworLS0gc2hv dWxkIGJlIE5VTEwKK0VYRUNVVEUgcDI7CisKK0RFQUxMT0NBVEUgcDE7CitERUFMTE9DQVRFIHAy OworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2Vf Z2VuZXJpY19wbGFuOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljW107CisKK1BSRVBB UkUgcDEoaW50LCBudW1lcmljKSBBUyBMRVQgdmFyMVskMV0gPSAkMjsKKworTEVUIHZhcjEgPSAn e30nOjpudW1lcmljW107CitFWEVDVVRFIHAxKDEsIDEwLjIpOworRVhFQ1VURSBwMSgyLCAxMC4z KTsKKworU0VMRUNUIHZhcjE7CisKK0RFQUxMT0NBVEUgcDE7CitEUk9QIFZBUklBQkxFIHZhcjE7 Ci0tIAoyLjQ3LjAKCg== --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0008-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20241106-0008-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpc312 RnJvbSBhNTY5NmFmODE4ZDVkNGEzNTk4M2E5ZTA0MDQ4OTQxN2Y3N2UxYmZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDE4OjI4OjA3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwOC8yMF0gRVhQTEFJTiBMRVQgc3VwcG9ydAoKRW5oYW5jaW5nIEV4cGxhaW5PbmVQbGFu IGlzIG5lY2Vzc2FyeSB0byBiZSBFWFBMQUlOIEFOQUxZWkUgTEVUIGZ1bGx5IHdvcmthYmxlLgpJ biB0aGlzIGNhc2Ugd2Ugd2FudCB0byBiZSByZXN1bHQgb2YgcXVlcnkgb3IgZXhwcmVzc2lvbiB3 cml0dGVuIHRvIHRhcmdldCB2YXJpYWJsZS4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4u c2dtbCAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jICAgICAgICAgICAgICAgIHwgMzEgKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICA1ICsrLQogc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRz L2V4cGxhaW4uaCAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA0MCArKysrKysrKysrKysrKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMSArKysrKysrKysrCiA3 IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2V4 cGxhaW4uc2dtbAppbmRleCBkYjlkM2E4NTQ5YS4uY2FjY2M3MDY1OGMgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFp bi5zZ21sCkBAIC05OCw3ICs5OCw4IEBAIEVYUExBSU4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSA8cmVwCiAgICAgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKICAgICA8 Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sCiAgICAg PGNvbW1hbmQ+Q1JFQVRFIFRBQkxFIEFTPC9jb21tYW5kPiwKLSAgICBvciA8Y29tbWFuZD5FWEVD VVRFPC9jb21tYW5kPiBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiwK KyAgICBvciA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IHN0YXRlbWVudAogICAgIHdpdGhvdXQgbGV0 dGluZyB0aGUgY29tbWFuZCBhZmZlY3QgeW91ciBkYXRhLCB1c2UgdGhpcyBhcHByb2FjaDoKIDxw cm9ncmFtbGlzdGluZz4KIEJFR0lOOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDdjMGZkNjNi MmYwLi5kNDE1MTY0NTRmNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMTgsNiArMTgsNyBA QAogI2luY2x1ZGUgImNvbW1hbmRzL2NyZWF0ZWFzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVm cmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiZm9yZWlnbi9mZHdhcGkuaCIKICNpbmNs dWRlICJqaXQvaml0LmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKQEAgLTUxMiw4ICs1 MTMsOSBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vyc29y T3B0aW9ucywKIAl9CiAKIAkvKiBydW4gaXQgKGlmIG5lZWRlZCkgYW5kIHByb2R1Y2Ugb3V0cHV0 ICovCi0JRXhwbGFpbk9uZVBsYW4ocGxhbiwgaW50bywgZXMsIHF1ZXJ5U3RyaW5nLCBwYXJhbXMs IHF1ZXJ5RW52LAotCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2Fn ZSA6IE5VTEwpLAorCUV4cGxhaW5PbmVQbGFuKHBsYW4sIGludG8sIHF1ZXJ5LT5yZXN1bHRWYXJp YWJsZSwgZXMsIHF1ZXJ5U3RyaW5nLAorCQkJCSAgIHBhcmFtcywgcXVlcnlFbnYsICZwbGFuZHVy YXRpb24sCisJCQkJICAgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCiAJCQkJICAg ZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIH0KIApAQCAtNjExLDYgKzYxMywy NSBAQCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAqaW50 bywgRXhwbGFpblN0YXRlICplcywKIAkJZWxzZQogCQkJRXhwbGFpbkR1bW15R3JvdXAoIk5vdGlm eSIsIE5VTEwsIGVzKTsKIAl9CisJZWxzZSBpZiAoSXNBKHV0aWxpdHlTdG10LCBMZXRTdG10KSkK Kwl7CisJCUxldFN0bXQgICAgKmxldHN0bXQgPSAoTGV0U3RtdCAqKSB1dGlsaXR5U3RtdDsKKwkJ TGlzdAkgICAqcmV3cml0dGVuOworCQlRdWVyeQkgICAqcXVlcnk7CisKKwkJaWYgKGVzLT5mb3Jt YXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoZXMt PnN0ciwgIlNFVCBTRVNTSU9OIFZBUklBQkxFXG4iKTsKKwkJZWxzZQorCQkJRXhwbGFpbkR1bW15 R3JvdXAoIlNldCBTZXNzaW9uIFZhcmlhYmxlIiwgTlVMTCwgZXMpOworCisJCXJld3JpdHRlbiA9 IFF1ZXJ5UmV3cml0ZShjYXN0Tm9kZShRdWVyeSwgY29weU9iamVjdChsZXRzdG10LT5xdWVyeSkp KTsKKworCQlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKwkJcXVlcnkgPSBs aW5pdGlhbF9ub2RlKFF1ZXJ5LCByZXdyaXR0ZW4pOworCQlFeHBsYWluT25lUXVlcnkocXVlcnks CisJCQkJCQlDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBOVUxMLCBlcywKKwkJCQkJCXBzdGF0ZSwg cGFyYW1zKTsKKwl9CiAJZWxzZQogCXsKIAkJaWYgKGVzLT5mb3JtYXQgPT0gRVhQTEFJTl9GT1JN QVRfVEVYVCkKQEAgLTYzNCw4ICs2NTUsOCBAQCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGls aXR5U3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKICAqIHRvIGNhbGwg aXQuCiAgKi8KIHZvaWQKLUV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwg SW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKLQkJCSAgIGNvbnN0IGNoYXIgKnF1 ZXJ5U3RyaW5nLCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKK0V4cGxhaW5PbmVQbGFuKFBsYW5uZWRT dG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgT2lkIHRhcmdldHZhciwKKwkJCSAg IEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLCBQYXJhbUxpc3RJbmZv IHBhcmFtcywKIAkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBjb25zdCBpbnN0cl90 aW1lICpwbGFuZHVyYXRpb24sCiAJCQkgICBjb25zdCBCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsCiAJ CQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1lbV9jb3VudGVycykKQEAgLTY4NCw2 ICs3MDUsOCBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIEludG9D bGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJICovCiAJaWYgKGludG8pCiAJCWRlc3Qg PSBDcmVhdGVJbnRvUmVsRGVzdFJlY2VpdmVyKGludG8pOworCWVsc2UgaWYgKE9pZElzVmFsaWQo dGFyZ2V0dmFyKSkKKwkJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKHRhcmdldHZh cik7CiAJZWxzZSBpZiAoZXMtPnNlcmlhbGl6ZSAhPSBFWFBMQUlOX1NFUklBTElaRV9OT05FKQog CQlkZXN0ID0gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RSZWNlaXZlcihlcyk7CiAJZWxzZQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDQ1NWEwM2NjZTYzLi4zNzM1YjU1NTRlMCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYwpAQCAtNjYyLDggKzY2Miw5IEBAIEV4cGxhaW5FeGVjdXRlUXVlcnko RXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVz LAogCQlQbGFubmVkU3RtdCAqcHN0bXQgPSBsZmlyc3Rfbm9kZShQbGFubmVkU3RtdCwgcCk7CiAK IAkJaWYgKHBzdG10LT5jb21tYW5kVHlwZSAhPSBDTURfVVRJTElUWSkKLQkJCUV4cGxhaW5PbmVQ bGFuKHBzdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLCBwYXJhbUxJLCBwc3RhdGUtPnBfcXVl cnlFbnYsCi0JCQkJCQkgICAmcGxhbmR1cmF0aW9uLCAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2Ug OiBOVUxMKSwKKwkJCUV4cGxhaW5PbmVQbGFuKHBzdG10LCBpbnRvLCBJbnZhbGlkT2lkLCBlcywg cXVlcnlfc3RyaW5nLCBwYXJhbUxJLAorCQkJCQkJICAgcHN0YXRlLT5wX3F1ZXJ5RW52LCAmcGxh bmR1cmF0aW9uLAorCQkJCQkJICAgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCiAJ CQkJCQkgICBlcy0+bWVtb3J5ID8gJm1lbV9jb3VudGVycyA6IE5VTEwpOwogCQllbHNlCiAJCQlF eHBsYWluT25lVXRpbGl0eShwc3RtdC0+dXRpbGl0eVN0bXQsIGludG8sIGVzLCBwc3RhdGUsIHBh cmFtTEkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNjI1MTE3MDAxOTYuLjM5MDRiOGZkNTEyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKQEAgLTEyMTEzLDcgKzEyMTEzLDggQEAgRXhwbGFpbmFibGVTdG10OgogCQkJfCBDcmVh dGVBc1N0bXQKIAkJCXwgQ3JlYXRlTWF0Vmlld1N0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10 Ci0JCQl8IEV4ZWN1dGVTdG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJ CXwgRXhlY3V0ZVN0bXQKKwkJCXwgTGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAk JD0kMSAqLwogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5o CmluZGV4IGFhNTg3MmJjMTU0Li5mNWIwODg1N2FlOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y29tbWFuZHMvZXhwbGFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaApA QCAtMTAzLDcgKzEwMyw4IEBAIGV4dGVybiB2b2lkIEV4cGxhaW5PbmVVdGlsaXR5KE5vZGUgKnV0 aWxpdHlTdG10LCBJbnRvQ2xhdXNlICppbnRvLAogCQkJCQkJCSAgRXhwbGFpblN0YXRlICplcywg UGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCSAgUGFyYW1MaXN0SW5mbyBwYXJhbXMpOwogCi1l eHRlcm4gdm9pZCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIEludG9D bGF1c2UgKmludG8sCitleHRlcm4gdm9pZCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxh bm5lZHN0bXQsCisJCQkJCQkgICBJbnRvQ2xhdXNlICppbnRvLCBPaWQgdGFyZ2V0dmFyLAogCQkJ CQkJICAgRXhwbGFpblN0YXRlICplcywgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkg ICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsCiAJCQkJ CQkgICBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRpb24sCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDczZDNmNThiNmU4Li45ZjQ4 MDBmMGIwNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKQEAgLTEyODQsMyArMTI4NCw0MyBAQCBTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1i aWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CiBEUk9QIFND SEVNQSB4eHRhYiBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZh cmlhYmxlIHh4dGFiLmF2YXIKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGJpZ2ludDsKK0NSRUFURSBU QUJMRSB2YXJfdGFiX3Rlc3RfdGFibGUoYSBpbnQpOworSU5TRVJUIElOVE8gdmFyX3RhYl90ZXN0 X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworVkFDVVVNIEFOQUxZ WkUgdmFyX3RhYl90ZXN0X3RhYmxlOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBMRVQgdmFyMSA9IChT RUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFibGUpOworICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0Cisg ICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dyZWdhdGUKKyAgICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHZhcl90YWJfdGVzdF90YWJsZQorKDUgcm93cykKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NF TEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK0VYUExBSU4gKENP U1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYpIExFVCB2YXIxID0gKFNF TEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdCAoYWN0dWFsIHJv d3M9MSBsb29wcz0xKQorICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlIChhY3R1YWwg cm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3Rf dGFibGUgKGFjdHVhbCByb3dzPTEwIGxvb3BzPTEpCisoNSByb3dzKQorCistLSBzaG91bGQgYmUg MTAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDg4NmMyZjkzZTVlLi5hY2Ey YTA2MjgwZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApA QCAtODc1LDMgKzg3NSwyNCBAQCBTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcgVE8gb2ZmOwogCiBEUk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKIERST1AgU0NIRU1BIHh4dGFi IENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGJpZ2ludDsKKworQ1JFQVRFIFRBQkxF IHZhcl90YWJfdGVzdF90YWJsZShhIGludCk7CisKK0lOU0VSVCBJTlRPIHZhcl90YWJfdGVzdF90 YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKworVkFDVVVNIEFOQUxZ WkUgdmFyX3RhYl90ZXN0X3RhYmxlOworCitFWFBMQUlOIChDT1NUUyBPRkYpIExFVCB2YXIxID0g KFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisKKy0tIHNob3VsZCBi ZSBOVUxMCitTRUxFQ1QgdmFyMTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBB TkFMWVpFLCBTVU1NQVJZIE9GRikgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFy X3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hvdWxkIGJlIDEwCitTRUxFQ1QgdmFyMTsKKworRFJP UCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGU7Ci0tIAoyLjQ3 LjAKCg== --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20241106-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpc913 RnJvbSAzYzk5ZDMwMjRiN2JjZDBiOTMzN2U2MjQzZjVlZjk1MDhhYjkwNGJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDE3OjU1OjI0ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNy8yMF0gR1VDIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCgpJbnNp ZGUgYW4gcXVlcnkgdGhlIHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZC4gVGhpcyBi ZWhhdmlvdXIgaXMgYnkgZGVzaWduLApiZWNhdXNlIHRoaXMgZW5zdXJpbmcgc28gbmV3IHZhcmlh YmxlcyBkb2Vzbid0IGJyZWFrIGV4aXN0aW5nIHF1ZXJpZXMuIEJ1dCB0aGlzCmJlaGF2aW91ciBj YW4gYmUgY29uZnVzaW5nLCBiZWNhdXNlIHNoYWRvd2luZyBpcyBxdWlldC4KCldoZW4gbmV3IEdV QyBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBpcyBvbiwgdGhlbiB0aGUgd2Fy bmluZwppcyBkaXNwbGF5ZWQsIHdoZW4gc29tZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSB1c2Vk LCBidXQgaXQgaXMgbm90IHVzZWQKZHVlIHNoYWRvd2luZy4gVGhpcyBmZWF0dXJlIHNob3VsZCB0 byBoZWxwIHdpdGggaW52ZXN0aWdhdGlvbiBvZiB1bmV4cGVjdGVkCmJlaGF2aW91ci4KCk5vdGU6 IFBMcGdTUUwgaGFzIGFuIG9wdGlvbiB0aGF0IGNvbnRyb2xzIHByaW9yaXR5IG9mIGlkZW50aWZp ZXIncyBzcGFjZXMKKFNRTCBvciBQTHBnU1FMKS4gRGVmYXVsdCBiZWhhdmlvdXIgZG9lc24ndCBh bGxvd3MgY29sbGlzaW9ucy4gSSBiZWxpZXZlCnRoaXMgZGVmYXVsdCBpcyB0aGUgYmVzdC4gSSBj YW5ub3QgdG8gaW1wbGVtZW50IHNpbWlsYXIgdmVyeSBzdHJpY3QKYmVoYXZpb3VyIHRvIHNlc3Np b24gdmFyaWFibGVzLCBiZWNhdXNlIG9uZSB1bmhhcHB5IG5hbWVkIHNlc3Npb24gdmFyaWFibGUK Y2FuIGJyZWFrcyBhbiBhcHBsaWNhdGlvbnMuIFRoZSBwcm9ibGVtcyByZWxhdGVkIHRvIGJhZGx5 IG5hbWVkIFBMcGdTUUwncwp2YXJpYmxlIGlzIGxpbWl0dGVkIGp1c3QgdG8gb25seSBvbmUgcm91 dGluZS4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAg fCA2MCArKysrKysrKysrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAg ICAgICAgICAgICAgICAgfCAxMCArKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j ICAgICAgICAgICAgICAgfCA0OSArKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL21p c2MvZ3VjX3RhYmxlcy5jICAgICAgICAgICB8ICA5ICsrKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEgKwogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUub3V0IHwgMzMgKysrKysrKysrKwogLi4uL3NyYy9zcWwvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjkgKysrKysrKysrCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAyMiArKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrCiAxMCBmaWxlcyBj aGFuZ2VkLCAyMzAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXgg ZDU0ZjkwNDk1NjkuLmRlMWI3YWNkODg5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0xMDczNiw2ICsxMDczNiw2 NiBAQCBkeW5hbWljX2xpYnJhcnlfcGF0aCA9ICdDOlx0b29sc1xwb3N0Z3Jlc3FsO0g6XG15X3By b2plY3RcbGliOyRsaWJkaXInCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRy eT4KIAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtYW1iaWd1 aXR5LXdhcm5pbmciIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmciPgorICAgICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmc8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+ CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmc8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAg PC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBh cmE+CisgICAgICAgIFdoZW4gb24sIGEgd2FybmluZyBpcyByYWlzZWQgd2hlbiBhbnkgaWRlbnRp ZmllciBpbiBhIHF1ZXJ5IGNvdWxkIGJlCisgICAgICAgIHVzZWQgYXMgYm90aCBhIGNvbHVtbiBp ZGVudGlmaWVyLCByb3V0aW5lIHZhcmlhYmxlIG9yIGEgc2Vzc2lvbgorICAgICAgICB2YXJpYWJs ZSBpZGVudGlmaWVyLiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5vZmY8L2xpdGVyYWw+LgorICAg ICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2Fu IGJlIHNoYWRvd2VkIGJ5IGNvbHVtbiByZWZlcmVuY2VzIGluIGEgcXVlcnksIHRoaXMKKyAgICAg ICAgaXMgYW4gZXhwZWN0ZWQgYmVoYXZpb3IuICBQcmV2aW91c2x5IHdvcmtpbmcgcXVlcmllcyBz aG91bGRuJ3QgZXJyb3Igb3V0CisgICAgICAgIGJ5IGNyZWF0aW5nIGFueSBzZXNzaW9uIHZhcmlh YmxlLCBzbyBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgYWx3YXlzIHNoYWRvd2VkCisgICAgICAgIGlm IGFuIGlkZW50aWZpZXIgaXMgYW1iaWd1b3VzLiAgVmFyaWFibGVzIHNob3VsZCBiZSByZWZlcmVu Y2VkIHVzaW5nCisgICAgICAgIGFudW5hbWJpZ3VvdXMgaWRlbnRpZmllciB3aXRob3V0IGFueSBw b3NzaWJpbGl0eSBmb3IgYSBjb2xsaXNpb24gd2l0aAorICAgICAgICBpZGVudGlmaWVyIG9mIG90 aGVyIGRhdGFiYXNlIG9iamVjdHMgKGNvbHVtbiBuYW1lcyBvciByZWNvcmQgZmllbGRzIG5hbWVz KS4KKyAgICAgICAgVGhlIHdhcm5pbmcgbWVzc2FnZXMgZW1pdHRlZCB3aGVuIGVuYWJsaW5nIDx2 YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nPC92YXJuYW1lPgorICAg ICAgICBjYW4gaGVscCBmaW5kaW5nIHN1Y2ggaWRlbnRpZmllciBjb2xsaXNpb24uCis8cHJvZ3Jh bWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgZm9vKGEgaW50KTsKK0lOU0VSVCBJTlRPIGZvbyBWQUxV RVMoMTApOworQ1JFQVRFIFZBUklBQkxFIGEgaW50OworTEVUIGEgPSAxMDA7CitTRUxFQ1QgYSBG Uk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKzxzY3JlZW4+CisgYQorLS0tLQorIDEwCiso MSByb3cpCis8L3NjcmVlbj4KKworPHByb2dyYW1saXN0aW5nPgorU0VUIHNlc3Npb25fdmFyaWFi bGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworU0VMRUNUIGEgRlJPTSBmb287Cis8L3Byb2dy YW1saXN0aW5nPgorCis8c2NyZWVuPgorV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlz IHNoYWRvd2VkCitMSU5FIDE6IFNFTEVDVCBhIEZST00gZm9vOworICAgICAgICAgICAgICAgXgor REVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJv dXRpbmUncyB2YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBu YW1lLgorIGEKKy0tLS0KKyAxMAorKDEgcm93KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgor ICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIGZlYXR1cmUgY2FuIHNpZ25pZmljYW50bHkgaW5j cmVhc2UgbG9nIHNpemUsIHNvIGl0J3MgZGlzYWJsZWQgYnkKKyAgICAgICAgZGVmYXVsdC4gIEZv ciB0ZXN0aW5nIG9yIGRldmVsb3BtZW50IGVudmlyb25tZW50cyBpdCdzIHJlY29tbWVuZGVkIHRv CisgICAgICAgIGVuYWJsZSBpdCBpZiB5b3UgdXNlIHNlc3Npb24gdmFyaWFibGVzLgorICAgICAg IDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAg IDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1zdGFuZGFyZC1jb25mb3JtaW5nLXN0cmluZ3MiIHhyZWZs YWJlbD0ic3RhbmRhcmRfY29uZm9ybWluZ19zdHJpbmdzIj4KICAgICAgIDx0ZXJtPjx2YXJuYW1l PnN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5nczwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5 cGU+KQogICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5zdHJpbmdzPC9wcmltYXJ5PjxzZWNvbmRh cnk+c3RhbmRhcmQgY29uZm9ybWluZzwvc2Vjb25kYXJ5PjwvaW5kZXh0ZXJtPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IGQz YmYwZjYwZmNlLi4zNDE1ZDI3OTkwMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTMyNSw2ICs1MzI1LDE2IEBAIFNFTEVD VCBjdXJyZW50X3VzZXJfaWQ7CiAgICAgdGhlIHNjaGVtYSBuYW1lLCBjb2x1bW5zIGNhbiB1c2Ug dGFibGUgYWxpYXNlcywgcm91dGluZSB2YXJpYWJsZXMgY2FuIHVzZQogICAgIGJsb2NrIGxhYmVs cywgYW5kIHJvdXRpbmUgYXJndW1lbnRzIGNhbiB1c2UgdGhlIHJvdXRpbmUgbmFtZS4KICAgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICAgV2hlbiBhIHF1ZXJ5IGNvbnRhaW5zIGlkZW50aWZpZXJz IG9yIHF1YWxpZmllZCBpZGVudGlmaWVycyB0aGF0IGNvdWxkIGJlCisgICAgdXNlZCBhcyBib3Ro IGEgc2Vzc2lvbiB2YXJpYWJsZSBpZGVudGlmaWVycyBhbmQgYXMgY29sdW1uIGlkZW50aWZpZXIs CisgICAgdGhlbiB0aGUgY29sdW1uIGlkZW50aWZpZXIgaXMgcHJlZmVycmVkIGV2ZXJ5IHRpbWUu ICBXYXJuaW5ncyBjYW4gYmUKKyAgICBlbWl0dGVkIHdoZW4gdGhpcyBzaXR1YXRpb24gaGFwcGVu cyBieSBlbmFibGluZyBjb25maWd1cmF0aW9uIHBhcmFtZXRlciA8eHJlZgorICAgIGxpbmtlbmQ9 Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy1hbWJpZ3VpdHktd2FybmluZyIvPi4gVXNlciBjYW4gZXhw bGljaXRseQorICAgIHF1YWxpZnkgdGhlIHNvdXJjZSBvYmplY3QgYnkgc3ludGF4IDxsaXRlcmFs PnRhYmxlLmNvbHVtbjwvbGl0ZXJhbD4gb3IKKyAgICA8bGl0ZXJhbD5zY2hlbWEudmFyaWFibGU8 L2xpdGVyYWw+LgorICAgPC9wYXJhPgogICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3Ro ZXJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGFiYTUyNTllMDI3Li4zNjAyYzM1NzJk NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00NSw2ICs0NSw3IEBACiAKIC8qIEdVQyBw YXJhbWV0ZXJzICovCiBib29sCQlUcmFuc2Zvcm1fbnVsbF9lcXVhbHMgPSBmYWxzZTsKK2Jvb2wJ CXNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nID0gZmFsc2U7CiAKIAogc3RhdGlj IE5vZGUgKnRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhw cik7CkBAIC05NjAsMTEgKzk2MSw1MSBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCSAqCiAJCSAqIFNFTEVDVCBmb28uYSwgZm9vLmIs IGZvby5jIEZST00gZm9vOwogCQkgKgotCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVz aW5nLCBzbyB3ZSBkaXNhbGxvdyBpdC4gIFdlIGRvbid0IHRyeSB0bwotCQkgKiBpZGVudGlmeSBh IHZhcmlhYmxlIGlmIHdlIGtub3cgdGhhdCBpdCB3b3VsZCBiZSBzaGFkb3dlZC4KLQkJICogLS0t LS0KKwkJICogSG93ZXZlciwgdGhhdCBpcyB2ZXJ5IGNvbmZ1c2luZywgc28gd2UgZGlzYWxsb3cg aXQuCisJCSAqCisJCSAqIFdoZW4gc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcg aXMgcmVxdWVzdGVkLCB0aGVuIHdlCisJCSAqIG5lZWQgdG8gaWRlbnRpZnkgYSB2YXJpYWJsZSBh bHRob3VnaCB3ZSBrbm93LCBzbyB0aGlzIHZhcmlhYmxlCisJCSAqIHdvdWxkIGJlIHNoYWRvd2Vk LgogCQkgKi8KLQkJaWYgKCFub2RlICYmICEocmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19D T0xVTU4pKQorCQlpZiAobm9kZSB8fCAocmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19DT0xV TU4pKQorCQl7CisJCQkvKgorCQkJICogSW4gdGhpcyBwYXRoIHdlIGp1c3QgdHJ5IChpZiBpdCBp cyB3YW50ZWQpIGRldGVjdCBpZiBzZXNzaW9uCisJCQkgKiB2YXJpYWJsZSBpcyBzaGFkb3dlZC4K KwkJCSAqLworCQkJaWYgKHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nKQorCQkJ eworCQkJCS8qCisJCQkJICogVGhlIEFjY2Vzc1NoYXJlTG9jayBpcyBjcmVhdGVkIG9uIHJlbGF0 ZWQgc2Vzc2lvbiB2YXJpYWJsZS4KKwkJCQkgKiBUaGUgbG9jayB3aWxsIGJlIGtlcHQgZm9yIHRo ZSB3aG9sZSB0cmFuc2FjdGlvbi4KKwkJCQkgKi8KKwkJCQl2YXJpZCA9IElkZW50aWZ5VmFyaWFi bGUoY3JlZi0+ZmllbGRzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCB0cnVlKTsKKworCQkJCWlm IChPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCQl7CisJCQkJCS8qIHRoaXMgcGF0aCB3aWxsIGVuZGlu ZyBieSBXQVJOSU5HLiBVbmxvY2sgdmFyaWFibGUgZmlyc3QgKi8KKwkJCQkJVW5sb2NrRGF0YWJh c2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsK KworCQkJCQlpZiAobm9kZSkKKwkJCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9BTUJJR1VPVVNfQ09MVU1OKSwKKwkJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2 YXJpYWJsZSBcIiVzXCIgaXMgc2hhZG93ZWQiLAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmco Y3JlZi0+ZmllbGRzKSksCisJCQkJCQkJCSBlcnJkZXRhaWwoIlNlc3Npb24gdmFyaWFibGVzIGNh biBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5l J3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4iKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOworCQkJCQllbHNlCisJCQkJCQkvKiBz ZXNzaW9uIHZhcmlhYmxlIGlzIHNoYWRvd2VkIGJ5IFJURSAqLworCQkJCQkJZXJlcG9ydChXQVJO SU5HLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19DT0xVTU4pLAorCQkJCQkJ CQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBpcyBzaGFkb3dlZCIsCisJCQkJ CQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2 YXJpZCkpLAorCQkJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSwKKwkJ CQkJCQkJIGVycmRldGFpbCgiU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IHRh YmxlcyBvciB0YWJsZSdzIGFsaWFzZXMgd2l0aCB0aGUgc2FtZSBuYW1lLiIpLAorCQkJCQkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CisJCQkJfQorCQkJ fQorCQl9CisJCWVsc2UKIAkJewogCQkJLyogdGFrZXMgYW4gQWNjZXNzU2hhcmVMb2NrIG9uIHRo ZSBzZXNzaW9uIHZhcmlhYmxlICovCiAJCQl2YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3JlZi0+ ZmllbGRzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv Z3VjX3RhYmxlcy5jCmluZGV4IDhhNjdmMDEyMDBjLi5lZmI2NWIwMjM4MCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE1OTUsNiArMTU5NSwxNSBAQCBzdHJ1Y3QgY29uZmln X2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxzZSwKIAkJTlVMTCwgTlVMTCwgTlVM TAogCX0sCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIiwgUEdD X1VTRVJTRVQsIENMSUVOVF9DT05OX09USEVSLAorCQkJZ2V0dGV4dF9ub29wKCJSYWlzZSBhIHdh cm5pbmcgd2hlbiByZWZlcmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGFtYmlndW91cy4i KSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n LAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCiAJewogCQl7ImRlZmF1bHRfdHJh bnNhY3Rpb25fcmVhZF9vbmx5IiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwK IAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgZGVmYXVsdCByZWFkLW9ubHkgc3RhdHVzIG9mIG5l dyB0cmFuc2FjdGlvbnMuIiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bv c3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwu Y29uZi5zYW1wbGUKaW5kZXggMzlhM2FjMjMxMjcuLjk5MmRkYTNjNjQ0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC03MTQsNiArNzE0LDcg QEAKICNkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9mZgogI2RlZmF1bHRfdHJhbnNh Y3Rpb25fZGVmZXJyYWJsZSA9IG9mZgogI3Nlc3Npb25fcmVwbGljYXRpb25fcm9sZSA9ICdvcmln aW4nCisjc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBvZmYKICNzdGF0ZW1l bnRfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICN0cmFu c2FjdGlvbl90aW1lb3V0ID0gMAkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAj bG9ja190aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9leHByLmgKaW5kZXggOWI0NmRmZDllY2MuLjBkNjRiMzAwZjhhIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9leHByLmgKQEAgLTE3LDYgKzE3LDcgQEAKIAogLyogR1VDIHBhcmFtZXRlcnMg Ki8KIGV4dGVybiBQR0RMTElNUE9SVCBib29sIFRyYW5zZm9ybV9udWxsX2VxdWFsczsKK2V4dGVy biBQR0RMTElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nOwog CiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBn c3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CmluZGV4IDZlOGI0 MTM0YzA2Li5lYzA3ZjFjYmFlOSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVj dGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3Jj L2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTM1NCw2ICszNTQsMzkg QEAgJCQ7CiBOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAogTk9USUNFOiAgcGxwZ3Nx bCB2YXJpYWJsZSBpcyAxMDAwCiBOT1RJQ0U6ICB2YXJpYWJsZSBpcyAxMDAwCistLSBhZ2FpbnQg d2l0aCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyhvbikKK1NFVCBzZXNzaW9u X3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK0RPICQkCis8PG15YmxvY2s+Pgor REVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFy MSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIHBscGdzcWxf c3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAg LS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1 YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2Fybmlu ZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXJpYWJsZSBpcyAl JywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIHRvIHByaW50IHBscGdz cWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNF ICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICBz ZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAorTk9USUNFOiAgcGxwZ3NxbCB2YXJpYWJsZSBpcyAxMDAw CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAicGxwZ3NxbF9zdl92YXIxIiBpcyBzaGFkb3dl ZAorTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKKyAgICAgICAgXgorREVUQUlMOiAgU2Vzc2lvbiB2 YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJpYWJsZXMg YW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLgorUVVFUlk6ICBwbHBn c3FsX3N2X3ZhcjEKK05PVElDRTogIHZhcmlhYmxlIGlzIDEwMDAKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CiBEUk9QIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMTsKIC0tIHRoZSB2YWx1ZSBzaG91bGQgbm90IGJlIGNvcnJ1cHRlZAogQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdiB0ZXh0OwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCmluZGV4IDM5OGU3ZmUyYTdjLi5lZjcwNWE0Y2M4 NyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUuc3FsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3Zh cmlhYmxlLnNxbApAQCAtMjYwLDYgKzI2MCwzNSBAQCBCRUdJTgogRU5EOwogJCQ7CiAKKy0tIGFn YWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nKG9uKQorCitTRVQg c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CisKK0RPICQkCis8PG15 YmxvY2s+PgorREVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAgTEVUIHBscGdz cWxfc3ZfdmFyMSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisg IHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdh cm5pbmcKKyAgLS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUg aXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhv dXQgd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXJp YWJsZSBpcyAlJywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIHRvIHBy aW50IHBscGdzcWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJ U0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CisK K1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKIERST1Ag VkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwogCiAtLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBiZSBj b3JydXB0ZWQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKaW5kZXggZWQzYjNiNjQyYWMuLjczZDNmNThiNmU4IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTI2MiwzICsxMjYyLDI1 IEBAIFNFTEVDVCB2YXIxOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7Cist LSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVBVEUgU0NIRU1B IHh4dGFiOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiLmF2YXIgaW50OworQ1JFQVRFIFRBQkxFIHB1 YmxpYy54eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyBwdWJsaWMueHh0YWIgVkFMVUVTKDEp OworTEVUIHh4dGFiLmF2YXIgPSAyMDsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlf d2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8gcmFpc2Ugd2FybmluZywgc2hvdyAxCitTRUxF Q1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlh YmxlICJ4eHRhYi5hdmFyIiBpcyBzaGFkb3dlZAorTElORSAxOiBTRUxFQ1QgeHh0YWIuYXZhciBG Uk9NIHB1YmxpYy54eHRhYjsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFNlc3Npb24gdmFy aWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFu ZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyBhdmFyIAorLS0tLS0t CisgICAgMQorKDEgcm93KQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcgVE8gb2ZmOworRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9QIFNDSEVNQSB4eHRhYiBD QVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFi LmF2YXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA1 Mjk4NjRkNGUxNi4uODg2YzJmOTNlNWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKQEAgLTg1NSwzICs4NTUsMjMgQEAgQkVHSU47IERST1AgVkFSSUFCTEUg dmFyMTsgUk9MTEJBQ0s7CiBTRUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIy OworCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVBVEUg U0NIRU1BIHh4dGFiOworCitDUkVBVEUgVkFSSUFCTEUgeHh0YWIuYXZhciBpbnQ7CisKK0NSRUFU RSBUQUJMRSBwdWJsaWMueHh0YWIoYXZhciBpbnQpOworCitJTlNFUlQgSU5UTyBwdWJsaWMueHh0 YWIgVkFMVUVTKDEpOworCitMRVQgeHh0YWIuYXZhciA9IDIwOworCitTRVQgc2Vzc2lvbl92YXJp YWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CistLS0gc2hvdWxkIHRvIHJhaXNlIHdhcm5p bmcsIHNob3cgMQorU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSBwdWJsaWMueHh0YWI7CisKK1NFVCBz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKK0RST1AgVEFCTEUg cHVibGljLnh4dGFiOworRFJPUCBTQ0hFTUEgeHh0YWIgQ0FTQ0FERTsKLS0gCjIuNDcuMAoK --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0010-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20241106-0010-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpbp10 RnJvbSBkM2I4MDRjY2VkOWQzOGE5MGU2ZDJlZjJkMWNjN2U0OWE5NGU5MmQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjE6MzY6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDEw LzIwXSBpbXBsZW1lbnRhdGlvbiBvZiB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMKClRoZSB0 ZW1wb3JhcnkgdmFyaWFibGVzIGFyZSBjcmVhdGVkIGluc2lkZSB0ZW1wIHNjaGVtYSBhbmQgdGhl eSBhcmUgZHJvcHBlZCBieSBkcm9wcGluZwp0aGlzIHNjaGVtYS4gRm9yIGNvbnNpc3RlbmN5IHdp dGggdGVtcCB0YWJsZXMsIHRoZSBDUkVBVEUgVEVNUCBWQVJJQUJMRSBjb21tYW5kIHN1cHBvcnRz Ck9OIENPTU1JVCBEUk9QIGNsYXVzZS4gVGhlIHRlbXBvcmFyeSB2YXJpYWJsZXMgd2l0aCB0aGlz IGNsYXVzZSBhcmUgY29sbGVjdGVkIGluIHhhY3RfZHJvcF9pdGVtcwpsaXN0LiBUaGlzIGxpc3Qg c2hvdWxkIGJlIGNhcmVmdWxseSBtYWludGFpbmVkIGFuZCBjYW4gY29udGFpbiBvbmx5IHZhbGlk IGVudHJpZXMgKG5vdAp5ZXQgZHJvcHBlZCkuIEZyb20gdGhpcyByZWFzb25zIG5vdyB0aGUgc3Vi Y29tbWl0IGFuZCBzdWJhYm9ydGluZyBoYXZlIHRvIGJlIGhhbmRsZWQuCi0tLQogZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIGRvYy9zcmMvc2dt bC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDE1ICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94YWN0LmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAyNCArKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE5MCArKysrKysrKysrKysrKysrKy0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMzAgKystCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAgMjIgKy0KIHNy Yy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgIDkgKwogc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICA3ICstCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVk ZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaCAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9pc29sYXRp b24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICAgMyArLQogLi4uL2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgICAzICstCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKystLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTMwICsrKysrKysrKysrLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgIDY2ICsrKysrKwog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAxICsKIDIz IGZpbGVzIGNoYW5nZWQsIDUyMSBpbnNlcnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCmluZGV4IDI2Mzk4N2RhY2NhLi5mNGEyMjZlMTY4NSAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAg LTk4NDMsNiArOTg0MywxNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0 aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJh PjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJ4YWN0ZW5kYWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hh cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFjdGlvbiBwZXJm b3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjb2xsYXRpb248L3N0cnVjdGZpZWxkPiA8 dHlwZT5vaWQ8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggMzQxNWQyNzk5MDMuLmExN2I2NDZhMGRlIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBA IC01MzEwLDkgKzUzMTAsOSBAQCBTRUxFQ1QgY3VycmVudF91c2VyX2lkOwogICAgIDxjb21tYW5k PkxFVDwvY29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgdHJhbnNh Y3Rpb25hbDoKICAgICBhbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSB2YWx1ZSBvZiBhIHNlc3Npb24g dmFyaWFibGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAogICAgIGJlIHVuZG9uZSBpZiB0aGUgdHJh bnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlrZSB2YXJpYWJsZXMgaW4KLSAgICBwcm9j ZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxlcyB0aGVtc2VsdmVzIGFyZSBwZXJz aXN0ZW50LCBidXQKLSAgICB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Ig c2hhcmVkIChsaWtlIHRoZSBjb250ZW50IG9mCi0gICAgdGVtcG9yYXJ5IHRhYmxlcykuCisgICAg cHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBjYW4g YmUgcGVyc2lzdGVudAorICAgIG9yIHRlbXBvcmFyeSwgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbmVp dGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlCisgICAgY29udGVudCBvZiB0ZW1w b3JhcnkgdGFibGVzKS4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfdmFyaWFibGUuc2dtbAppbmRleCAwNWJmNjdlMzQxMS4uNjQyMzQ2MTg2ZjAgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjYsNyArMjYsOCBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KLUNSRUFURSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KK0NSRUFURSBbIHsgVEVNUE9SQVJZ IHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBP TiBDT01NSVQgRFJPUCBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNl Y3QxPgpAQCAtMTA0LDYgKzEwNSwxOCBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICAgIDwv bGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3Fs LWNyZWF0ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9wIj4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBD T01NSVQgRFJPUDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSA8bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD4gY2xhdXNlIHNwZWNp ZmllcyB0aGUgYmVoYXZpb3VyIG9mIGEKKyAgICAgIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxl IGF0IHRyYW5zYWN0aW9uIGNvbW1pdC4gV2l0aCB0aGlzIGNsYXVzZSwgdGhlCisgICAgICBzZXNz aW9uIHZhcmlhYmxlIGlzIGRyb3BwZWQgYXQgY29tbWl0IHRpbWUuIFRoZSBjbGF1c2UgaXMgb25s eSBhbGxvd2VkCisgICAgICBmb3IgdGVtcG9yYXJ5IHZhcmlhYmxlcy4KKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICA8L3ZhcmlhYmxlbGlzdD4K ICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 YWN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKaW5kZXggZTNmNjVkYzY2 YzMuLjAxZTNkNDY5MzA2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0yMzE4LDcg KzIzMTgsNyBAQCBDb21taXRUcmFuc2FjdGlvbih2b2lkKQogCXNtZ3JEb1BlbmRpbmdTeW5jcyh0 cnVlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCiAJLyogcmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVk IHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5ICovCi0JQXRQcmVFT1hhY3RfU2Vzc2lvblZh cmlhYmxlcygpOworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXModHJ1ZSk7CiAKIAkvKiBj bG9zZSBsYXJnZSBvYmplY3RzIGJlZm9yZSBsb3dlci1sZXZlbCBjbGVhbnVwICovCiAJQXRFT1hh Y3RfTGFyZ2VPYmplY3QodHJ1ZSk7CkBAIC0yOTE2LDYgKzI5MTYsNyBAQCBBYm9ydFRyYW5zYWN0 aW9uKHZvaWQpCiAJQXRBYm9ydF9Qb3J0YWxzKCk7CiAJc21nckRvUGVuZGluZ1N5bmNzKGZhbHNl LCBpc19wYXJhbGxlbF93b3JrZXIpOwogCUF0RU9YYWN0X0xhcmdlT2JqZWN0KGZhbHNlKTsKKwlB dFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGZhbHNlKTsKIAlBdEFib3J0X05vdGlmeSgpOwog CUF0RU9YYWN0X1JlbGF0aW9uTWFwKGZhbHNlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCUF0QWJv cnRfVHdvcGhhc2UoKTsKQEAgLTUxOTQsNiArNTE5NSw4IEBAIENvbW1pdFN1YlRyYW5zYWN0aW9u KHZvaWQpCiAJQXRFT1N1YlhhY3RfU1BJKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQpOwogCUF0 RU9TdWJYYWN0X29uX2NvbW1pdF9hY3Rpb25zKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJ CQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKKwlBdEVPU3ViWGFjdF9TZXNz aW9uVmFyaWFibGVzKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCisJCQkJCQkJCSBzLT5wYXJl bnQtPnN1YlRyYW5zYWN0aW9uSWQpOwogCUF0RU9TdWJYYWN0X05hbWVzcGFjZSh0cnVlLCBzLT5z dWJUcmFuc2FjdGlvbklkLAogCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOwog CUF0RU9TdWJYYWN0X0ZpbGVzKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCkBAIC01MzU5LDYg KzUzNjIsOCBAQCBBYm9ydFN1YlRyYW5zYWN0aW9uKHZvaWQpCiAJCUF0RU9TdWJYYWN0X1NQSShm YWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJCUF0RU9TdWJYYWN0X29uX2NvbW1pdF9hY3Rp b25zKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCQkJICBzLT5wYXJlbnQtPnN1 YlRyYW5zYWN0aW9uSWQpOworCQlBdEVPU3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKGZhbHNlLCBz LT5zdWJUcmFuc2FjdGlvbklkLAorCQkJCQkJCQkJIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25J ZCk7CiAJCUF0RU9TdWJYYWN0X05hbWVzcGFjZShmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwK IAkJCQkJCQkgIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJCUF0RU9TdWJYYWN0X0Zp bGVzKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5j CmluZGV4IDBmYjhjN2YyMmE0Li5kMTdiMjc1NjE2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYwpAQCAtMzYsNyArMzYsOCBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFi bGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJCSBpbnQzMiB2YXJUeXBtb2QsCiAJCQkJ CQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCi0JCQkJCQkJ CQkgYm9vbCBpZl9ub3RfZXhpc3RzKTsKKwkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMsCisJ CQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24pOwogCiAKIC8q CkBAIC00OSw3ICs1MCw4IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAog CQkJCWludDMyIHZhclR5cG1vZCwKIAkJCQlPaWQgdmFyT3duZXIsCiAJCQkJT2lkIHZhckNvbGxh dGlvbiwKLQkJCQlib29sIGlmX25vdF9leGlzdHMpCisJCQkJYm9vbCBpZl9ub3RfZXhpc3RzLAor CQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKQogewogCUFjbAkJICAg KnZhcmFjbDsKIAlOYW1lRGF0YQl2YXJuYW1lOwpAQCAtMTEwLDYgKzExMiw3IEBAIGNyZWF0ZV92 YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zh cnR5cG1vZCAtIDFdID0gSW50MzJHZXREYXR1bSh2YXJUeXBtb2QpOwogCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsKIAl2 YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0 dW0odmFyQ29sbGF0aW9uKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0 aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAKIAl2YXJhY2wgPSBn ZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAogCQkJCQkJCQkg IHZhck5hbWVzcGFjZSk7CkBAIC0xODMsNiArMTg2LDEzIEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJT2lkCQkJdHlwY29s bGF0aW9uOwogCU9iamVjdEFkZHJlc3MgdmFyaWFibGU7CiAKKwkvKiBjaGVjayBjb25zaXN0ZW5j eSBvZiBhcmd1bWVudHMgKi8KKwlpZiAoc3RtdC0+WGFjdEVuZEFjdGlvbiA9PSBWQVJJQUJMRV9Y QUNURU5EX0RST1AKKwkJJiYgc3RtdC0+dmFyaWFibGUtPnJlbHBlcnNpc3RlbmNlICE9IFJFTFBF UlNJU1RFTkNFX1RFTVApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJPTiBDT01NSVQgRFJPUCBj YW4gb25seSBiZSB1c2VkIG9uIHRlbXBvcmFyeSB2YXJpYWJsZXMiKSkpOworCiAJbmFtZXNwYWNl aWQgPQogCQlSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRpb25OYW1lc3BhY2Uoc3RtdC0+dmFyaWFi bGUsIE5vTG9jaywgTlVMTCk7CiAKQEAgLTIyMiw3ICsyMzIsOCBAQCBDcmVhdGVWYXJpYWJsZShQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAg IHR5cG1vZCwKIAkJCQkJCQkgICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCi0JCQkJ CQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cyk7CisJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0 cywKKwkJCQkJCQkgICBzdG10LT5YYWN0RW5kQWN0aW9uKTsKIAogCWVsb2coREVCVUcxLCAicmVj b3JkIGZvciBzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiAob2lkOiVkKSB3YXMgY3JlYXRlZCBpbiBw Z192YXJpYWJsZSIsCiAJCSBzdG10LT52YXJpYWJsZS0+cmVsbmFtZSwgdmFyaWFibGUub2JqZWN0 SWQpOwpAQCAtMjMwLDYgKzI0MSw4IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJLyogd2Ugd2FudCBTZXNzaW9uVmFyaWFi bGVDcmVhdGVQb3N0cHJvY2VzcyB0byBzZWUgdGhlIGNhdGFsb2cgY2hhbmdlcy4gKi8KIAlDb21t YW5kQ291bnRlckluY3JlbWVudCgpOwogCisJU2Vzc2lvblZhcmlhYmxlQ3JlYXRlUG9zdHByb2Nl c3ModmFyaWFibGUub2JqZWN0SWQsIHN0bXQtPlhhY3RFbmRBY3Rpb24pOworCiAJcmV0dXJuIHZh cmlhYmxlOwogfQogCkBAIC0yNDIsNiArMjU1LDcgQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFy aWQpCiB7CiAJUmVsYXRpb24JcmVsOwogCUhlYXBUdXBsZQl0dXA7CisJY2hhcgkJWGFjdEVuZEFj dGlvbjsKIAogCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNsdXNp dmVMb2NrKTsKIApAQCAtMjUwLDYgKzI2NCw4IEBAIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlk KQogCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQogCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CiAKKwlYYWN0RW5kQWN0aW9uID0g KChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKSktPnZhcnhhY3RlbmRhY3Rpb247CisK IAlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3NlbGYpOwogCiAJUmVsZWFzZVN5c0Nh Y2hlKHR1cCk7CkBAIC0yNTcsNSArMjczLDUgQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQp CiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAogCS8qIGRvIHRoZSBuZWNl c3NhcnkgY2xlYW51cCBpZiBuZWVkZWQgaW4gbG9jYWwgbWVtb3J5ICovCi0JU2Vzc2lvblZhcmlh YmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlkKTsKKwlTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nl c3ModmFyaWQsIFhhY3RFbmRBY3Rpb24pOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jCmluZGV4IGVhYjkxZTE0NjBjLi5kYjc0N2E5ZGE4MSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMTYsNiArMTYsOCBAQAogCiAjaW5jbHVkZSAi YWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC0zMSw2ICsz MywxOSBAQAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNj YWNoZS5oIgogCit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0KK3sKKwlPaWQJ CQl2YXJpZDsJCQkvKiB2YXJpZCBvZiBzZXNzaW9uIHZhcmlhYmxlICovCisKKwkvKgorCSAqIGNy ZWF0aW5nX3N1YmlkIGlzIHRoZSBJRCBvZiB0aGUgY3JlYXRpbmcgc3VieGFjdC4gSWYgdGhlIGFj dGlvbiB3YXMKKwkgKiB1bnJlZ2lzdGVyZWQgZHVyaW5nIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCBkZWxldGluZ19zdWJpZCBpcyB0aGUgSUQKKwkgKiBvZiB0aGUgZGVsZXRpbmcgc3VieGFjdCwg b3RoZXJ3aXNlIEludmFsaWRTdWJUcmFuc2FjdGlvbklkLgorCSAqLworCVN1YlRyYW5zYWN0aW9u SWQgY3JlYXRpbmdfc3ViaWQ7CisJU3ViVHJhbnNhY3Rpb25JZCBkZWxldGluZ19zdWJpZDsKK30g U1ZhcmlhYmxlWEFjdERyb3BJdGVtOworCiAvKgogICogVGhlIHZhbHVlcyBvZiBzZXNzaW9uIHZh cmlhYmxlcyBhcmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJpdmF0ZSBtZW1vcnkKICAqIGlu IHRoZSBkZWRpY2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpbiBi aW5hcnkgZm9ybWF0LgpAQCAtMTA1LDYgKzEyMCwxMiBAQCBzdGF0aWMgYm9vbCBuZWVkc192YWxp ZGF0aW9uID0gZmFsc2U7CiAgKi8KIHN0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVk X2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisvKiBsaXN0IGhvbGRzIGZpZWxk cyBvZiBTVmFyaWFibGVYQWN0RHJvcEl0ZW0gdHlwZSAqLworc3RhdGljIExpc3QgKnhhY3RfZHJv cF9pdGVtcyA9IE5JTDsKKworc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94 YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJp YWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZv ciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTQxLDE2ICsxNjIsNDUg QEAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWlu dDMyIGhhc2h2YWx1ZSkKIAl9CiB9CiAKKy8qCisgKiBEbyB0aGUgbmVjZXNzYXJ5IHdvcmsgdG8g c2V0dXAgbG9jYWwgbWVtb3J5IG1hbmFnZW1lbnQgb2YgYSBuZXcKKyAqIHZhcmlhYmxlLgorICoK KyAqIENhbGxlciBzaG91bGQgYWxyZWFkeSBoYXZlIGNyZWF0ZWQgdGhlIG5lY2Vzc2FyeSBlbnRy eSBpbiBjYXRhbG9nCisgKiBhbmQgbWFkZSB0aGVtIHZpc2libGUuCisgKi8KK3ZvaWQKK1Nlc3Np b25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9u KQoreworCS8qCisJICogRm9yIHRlbXBvcmFyeSB2YXJpYWJsZXMsIHdlIG5lZWQgdG8gY3JlYXRl IGEgbmV3IGVuZCBvZiB4YWN0IGFjdGlvbiB0bworCSAqIGVuc3VyZSBkZWxldGlvbiBmcm9tIGNh dGFsb2cuCisJICovCisJaWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9Q KQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l c3BhY2UodmFyaWQpKSk7CisKKwkJcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3Ao dmFyaWQpOworCX0KK30KKwogLyoKICAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAg Zm9yIGEgRFJPUCBWQVJJQUJMRSBjb21tYW5kLgogICoKICAqIENhbGxlciBzaG91bGQgdGFrZSBj YXJlIG9mIHJlbW92aW5nIHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KICAqLwogdm9pZAot U2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK1Nlc3Npb25WYXJpYWJs ZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbikKIHsKIAlBc3Nl cnQoTG9jYWxUcmFuc2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOwogCisJaWYg KFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlz VGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisK KwkJdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcCh2YXJpZCk7CisJfQorCiAJ aWYgKHNlc3Npb252YXJzKQogCXsKIAkJYm9vbAkJZm91bmQ7CkBAIC0xNzMsNiArMjIzLDU3IEBA IFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCiAJfQogfQogCisvKgor ICogUmVnaXN0cmF0aW9uIG9mIGFjdGlvbnMgdG8gYmUgZXhlY3V0ZWQgb24gc2Vzc2lvbiB2YXJp YWJsZXMgYXQgdHJhbnNhY3Rpb24KKyAqIGVuZCB0aW1lLiBXZSB3YW50IHRvIGRyb3AgdGVtcG9y YXJ5IHNlc3Npb24gdmFyaWFibGVzIHdpdGggY2xhdXNlIE9OIENPTU1JVAorICogRFJPUC4KKyAq LworCisvKgorICogUmVnaXN0ZXIgYSBzZXNzaW9uIHZhcmlhYmxlIHhhY3QgYWN0aW9uLgorICov CitzdGF0aWMgdm9pZAorcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZh cmlkKQoreworCVNWYXJpYWJsZVhBY3REcm9wSXRlbSAqeGFjdF9haTsKKwlNZW1vcnlDb250ZXh0 IG9sZGN4dDsKKworCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9yeUNv bnRleHQpOworCisJeGFjdF9haSA9IChTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikKKwkJcGFsbG9j KHNpemVvZihTVmFyaWFibGVYQWN0RHJvcEl0ZW0pKTsKKworCXhhY3RfYWktPnZhcmlkID0gdmFy aWQ7CisKKwl4YWN0X2FpLT5jcmVhdGluZ19zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlv bklkKCk7CisJeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25J ZDsKKworCXhhY3RfZHJvcF9pdGVtcyA9IGxjb25zKHhhY3RfYWksIHhhY3RfZHJvcF9pdGVtcyk7 CisKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKK30KKworLyoKKyAqIFVucmVnaXN0 ZXIgYW4gaWQgb2YgYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZHJvcCBsaXN0LiBJbiB0 aGlzCisgKiBtb21lbnQsIHRoZSBhY3Rpb24gaXMganVzdCBtYXJrZWQgYXMgZGVsZXRlZCBieSBz ZXR0aW5nIGRlbGV0aW5nX3N1YmlkLiBUaGUKKyAqIGNhbGxpbmcgZXZlbiBtaWdodCBiZSByb2xs YmFja2VkLCBpbiB3aGljaCBjYXNlIHdlIHNob3VsZCBub3QgbG9zZSB0aGlzCisgKiBhY3Rpb24u CisgKi8KK3N0YXRpYyB2b2lkCit1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9w KE9pZCB2YXJpZCkKK3sKKwlMaXN0Q2VsbCAgICpsOworCisJZm9yZWFjaChsLCB4YWN0X2Ryb3Bf aXRlbXMpCisJeworCQlTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJp YWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QobCk7CisKKwkJaWYgKHhhY3RfYWktPnZhcmlkID09 IHZhcmlkKQorCQkJeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNh Y3Rpb25JZCgpOworCX0KK30KKwogLyoKICAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1l bW9yeQogICovCkBAIC0yODgsMTUgKzM4OSw5MiBAQCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3Zh cmlhYmxlcyhib29sIGF0RU9YKQogfQogCiAvKgotICogUmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVk IHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5LgorICAqIFBlcmZvcm0gT04gQ09NTUlUIERS T1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcywKKyAgKiBhbmQgcmVtb3ZlIGFsbCBk cm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9yeS4KICAqLwogdm9pZAotQXRQcmVFT1hhY3RfU2Vz c2lvblZhcmlhYmxlcyh2b2lkKQorQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlz Q29tbWl0KQogewotCS8qIHdlIGNhbm5vdCB0byBkbyBpdCB3aGVuIHRyYW5zYWN0aW9uIGlzIGFi b3J0ZWQgKi8KLQlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCWlmIChpc0NvbW1pdCkK Kwl7CisJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCisJCXsKKwkJCUxpc3RDZWxsICAgKmw7CisKKwkJ CWZvcmVhY2gobCwgeGFjdF9kcm9wX2l0ZW1zKQorCQkJeworCQkJCVNWYXJpYWJsZVhBY3REcm9w SXRlbSAqeGFjdF9haSA9CisJCQkJCShTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikgbGZpcnN0KGwp OworCisJCQkJLyogaXRlcmF0ZSBvbmx5IG92ZXIgZW50cmllcyB0aGF0IGFyZSBzdGlsbCBwZW5k aW5nICovCisJCQkJaWYgKHhhY3RfYWktPmRlbGV0aW5nX3N1YmlkID09IEludmFsaWRTdWJUcmFu c2FjdGlvbklkKQorCQkJCXsKKwkJCQkJT2JqZWN0QWRkcmVzcyBvYmplY3Q7CisKKwkJCQkJb2Jq ZWN0LmNsYXNzSWQgPSBWYXJpYWJsZVJlbGF0aW9uSWQ7CisJCQkJCW9iamVjdC5vYmplY3RJZCA9 IHhhY3RfYWktPnZhcmlkOworCQkJCQlvYmplY3Qub2JqZWN0U3ViSWQgPSAwOworCisJCQkJCS8q CisJCQkJCSAqIFNpbmNlIHRoaXMgaXMgYW4gYXV0b21hdGljIGRyb3AsIHJhdGhlciB0aGFuIG9u ZQorCQkJCQkgKiBkaXJlY3RseSBpbml0aWF0ZWQgYnkgdGhlIHVzZXIsIHdlIHBhc3MgdGhlCisJ CQkJCSAqIFBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgZmxhZy4KKwkJCQkJICovCisJCQkJCWVs b2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSAob2lkOiV1KSB3aWxsIGJlIGRlbGV0ZWQgKGZv cmNlZCBieSBPTiBDT01NSVQgRFJPUCBjbGF1c2UpIiwKKwkJCQkJCSB4YWN0X2FpLT52YXJpZCk7 CisKKwkJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJCQkJ CVBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgfAorCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9R VUlFVExZKTsKKwkJCQl9CisJCQl9CisJCX0KIAotCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFy aWFibGVzKHRydWUpOworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsK Kwl9CisKKwkvKgorCSAqIFdlIGhhdmUgdG8gY2xlYW4geGFjdF9kcm9wX2l0ZW1zLiBBbGwgcmVs YXRlZCB2YXJpYWJsZXMgYXJlIGRyb3BwZWQKKwkgKiBub3csIG9yIGxvc3QgaW5zaWRlIGFib3J0 ZWQgdHJhbnNhY3Rpb24uCisJICovCisJbGlzdF9mcmVlX2RlZXAoeGFjdF9kcm9wX2l0ZW1zKTsK Kwl4YWN0X2Ryb3BfaXRlbXMgPSBOVUxMOworfQorCisvKgorICogUG9zdC1zdWJjb21taXQgb3Ig cG9zdC1zdWJhYm9ydCBjbGVhbnVwIG9mIHhhY3QgZHJvcCBsaXN0LgorICoKKyAqIER1cmluZyBz dWJhYm9ydCwgd2UgY2FuIGltbWVkaWF0ZWx5IHJlbW92ZSBlbnRyaWVzIGNyZWF0ZWQgZHVyaW5n IHRoaXMKKyAqIHN1YnRyYW5zYWN0aW9uLiBEdXJpbmcgc3ViY29tbWl0LCBqdXN0IHRyYW5zZmVy IGVudHJpZXMgbWFya2VkIGR1cmluZworICogdGhpcyBzdWJ0cmFuc2FjdGlvbiBhcyBiZWluZyB0 aGUgcGFyZW50J3MgcmVzcG9uc2liaWxpdHkuCisgKi8KK3ZvaWQKK0F0RU9TdWJYYWN0X1Nlc3Np b25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKKwkJCQkJCQkgU3ViVHJhbnNhY3Rpb25JZCBteVN1 YmlkLAorCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIHBhcmVudFN1YmlkKQoreworCUxpc3RDZWxs ICAgKmN1cl9pdGVtOworCisJZm9yZWFjaChjdXJfaXRlbSwgeGFjdF9kcm9wX2l0ZW1zKQorCXsK KwkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCShTVmFyaWFibGVYQWN0RHJv cEl0ZW0gKikgbGZpcnN0KGN1cl9pdGVtKTsKKworCQlpZiAoIWlzQ29tbWl0ICYmIHhhY3RfYWkt PmNyZWF0aW5nX3N1YmlkID09IG15U3ViaWQpCisJCXsKKwkJCS8qIGN1cl9pdGVtIG11c3QgYmUg cmVtb3ZlZCAqLworCQkJeGFjdF9kcm9wX2l0ZW1zID0gZm9yZWFjaF9kZWxldGVfY3VycmVudCh4 YWN0X2Ryb3BfaXRlbXMsIGN1cl9pdGVtKTsKKwkJCXBmcmVlKHhhY3RfYWkpOworCQl9CisJCWVs c2UKKwkJeworCQkJLyogY3VyX2l0ZW0gbXVzdCBiZSBwcmVzZXJ2ZWQgKi8KKwkJCWlmICh4YWN0 X2FpLT5jcmVhdGluZ19zdWJpZCA9PSBteVN1YmlkKQorCQkJCXhhY3RfYWktPmNyZWF0aW5nX3N1 YmlkID0gcGFyZW50U3ViaWQ7CisJCQlpZiAoeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPT0gbXlT dWJpZCkKKwkJCQl4YWN0X2FpLT5kZWxldGluZ19zdWJpZCA9IGlzQ29tbWl0ID8gcGFyZW50U3Vi aWQgOiBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwkJfQorCX0KIH0KIAogLyoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zp ZXcuYwppbmRleCAyYmQ0OWViNTVlNi4uYzczNmM1YzQ2ZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZpZXcuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKQEAg LTQ4NCw3ICs0ODQsNyBAQCBEZWZpbmVWaWV3KFZpZXdTdG10ICpzdG10LCBjb25zdCBjaGFyICpx dWVyeVN0cmluZywKIAkgKi8KIAl2aWV3ID0gY29weU9iamVjdChzdG10LT52aWV3KTsJLyogZG9u J3QgY29ycnVwdCBvcmlnaW5hbCBjb21tYW5kICovCiAJaWYgKHZpZXctPnJlbHBlcnNpc3RlbmNl ID09IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVAotCQkmJiBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRp b24odmlld1BhcnNlKSkKKwkJJiYgaXNRdWVyeVVzaW5nVGVtcE9iamVjdCh2aWV3UGFyc2UpKQog CXsKIAkJdmlldy0+cmVscGVyc2lzdGVuY2UgPSBSRUxQRVJTSVNURU5DRV9URU1QOwogCQllcmVw b3J0KE5PVElDRSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDgxYjhiMGE2MzNkLi45ZGZkNDM1MTI4 YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zMzkwLDEwICszMzkwLDEwIEBAIHRyYW5zZm9ybUNy ZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlVGFibGVBc1N0bXQgKnN0 bXQpCiAJCSAqIGNyZWF0aW9uIHF1ZXJ5LiBJdCB3b3VsZCBiZSBoYXJkIHRvIHJlZnJlc2ggZGF0 YSBvciBpbmNyZW1lbnRhbGx5CiAJCSAqIG1haW50YWluIGl0IGlmIGEgc291cmNlIGRpc2FwcGVh cmVkLgogCQkgKi8KLQkJaWYgKGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbihxdWVyeSkpCisJCWlm IChpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KHF1ZXJ5KSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVycm1zZygi bWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVzIG9yIHZpZXdz IikpKTsKKwkJCQkJIGVycm1zZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1w b3JhcnkgdGFibGVzLCB2aWV3cyBvciBzZXNzaW9uIHZhcmlhYmxlcyIpKSk7CiAKIAkJLyoKIAkJ ICogQSBtYXRlcmlhbGl6ZWQgdmlldyB3b3VsZCBlaXRoZXIgbmVlZCB0byBzYXZlIHBhcmFtZXRl cnMgZm9yIHVzZSBpbgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNWQ3NzRiNjk0NzMuLmJkZWM4Y2YxNDYyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTQ2Niw2ICs0NjYsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog JXR5cGUgPGl2YWw+CSBPcHRUZW1wCiAldHlwZSA8aXZhbD4JIE9wdE5vTG9nCiAldHlwZSA8b25j b21taXQ+IE9uQ29tbWl0T3B0aW9uCisldHlwZSA8aXZhbD4JIFhhY3RFbmRBY3Rpb25PcHRpb24K IAogJXR5cGUgPGl2YWw+CWZvcl9sb2NraW5nX3N0cmVuZ3RoCiAldHlwZSA8bm9kZT4JZm9yX2xv Y2tpbmdfaXRlbQpAQCAtNTIxMiwyNiArNTIxMywzOSBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9p dGVtOgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJ CUNSRUFURSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxh dGVfY2xhdXNlCisJCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRf YXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7 CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZh clN0bXQpOwotCQkJCQluLT52YXJpYWJsZSA9ICQzOwotCQkJCQluLT50eXBlTmFtZSA9ICQ1Owot CQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDY7CisJCQkJCSQ0LT5yZWxw ZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT52YXJpYWJsZSA9ICQ0OworCQkJCQluLT50eXBlTmFt ZSA9ICQ2OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDc7CisJCQkJ CW4tPlhhY3RFbmRBY3Rpb24gPSAkODsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwog CQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgVkFSSUFCTEUgSUZfUCBO T1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1 c2UKKwkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmll ZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgWGFjdEVuZEFjdGlvbk9w dGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVh dGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDY7Ci0JCQkJCW4tPnR5cGVO YW1lID0gJDg7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJ CQkJJDctPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPnZhcmlhYmxlID0gJDc7CisJCQkJ CW4tPnR5cGVOYW1lID0gJDk7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAq KSAkMTA7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7CiAJCQkJCW4tPmlmX25vdF9leGlz dHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQk7CiAKKy8qCisgKiBU ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGRyb3BwZWQgb24gc3VjY2Vzc2Z1bAor ICogdHJhbnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgorICovCitYYWN0RW5kQWN0aW9uT3B0aW9u OiAgT04gQ09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsgfQorCQkJ fCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX05PT1A7IH0KKwkJOwor CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIEVYVEVOU0lPTiBuYW1lIFVQ REFURSBbIFRPIHZlcnNpb24gXQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRleCA4 MDc1YjFiOGExYi4uOTVhZTIxMDgwNDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5j CkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgZXhwYW5kVHVwbGVEZXNjKFR1cGxlRGVz YyB0dXBkZXNjLCBBbGlhcyAqZXJlZiwKIHN0YXRpYyBpbnQJc3BlY2lhbEF0dE51bShjb25zdCBj aGFyICphdHRuYW1lKTsKIHN0YXRpYyBib29sIHJ0ZV92aXNpYmxlX2lmX2xhdGVyYWwoUGFyc2VT dGF0ZSAqcHN0YXRlLCBSYW5nZVRibEVudHJ5ICpydGUpOwogc3RhdGljIGJvb2wgcnRlX3Zpc2li bGVfaWZfcXVhbGlmaWVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VUYmxFbnRyeSAqcnRlKTsK LXN0YXRpYyBib29sIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwg dm9pZCAqY29udGV4dCk7CitzdGF0aWMgYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dhbGtl cihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKIAogCiAvKgpAQCAtMzg5NiwxMyArMzg5Niwx MyBAQCBydGVfdmlzaWJsZV9pZl9xdWFsaWZpZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5nZVRi bEVudHJ5ICpydGUpCiAgKiB0aGUgcXVlcnkgaXMgYSB0ZW1wb3JhcnkgcmVsYXRpb24gKHRhYmxl LCB2aWV3LCBvciBtYXRlcmlhbGl6ZWQgdmlldykuCiAgKi8KIGJvb2wKLWlzUXVlcnlVc2luZ1Rl bXBSZWxhdGlvbihRdWVyeSAqcXVlcnkpCitpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KFF1ZXJ5ICpx dWVyeSkKIHsKLQlyZXR1cm4gaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcigoTm9kZSAq KSBxdWVyeSwgTlVMTCk7CisJcmV0dXJuIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2VyKChO b2RlICopIHF1ZXJ5LCBOVUxMKTsKIH0KIAogc3RhdGljIGJvb2wKLWlzUXVlcnlVc2luZ1RlbXBS ZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKK2lzUXVlcnlVc2luZ1Rl bXBPYmplY3Rfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiB7CiAJaWYgKG5vZGUg PT0gTlVMTCkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMzkyOCwxMyArMzkyOCwyMyBAQCBpc1F1ZXJ5 VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAJCX0K IAogCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxrZXIocXVlcnksCi0JCQkJCQkJCSBpc1F1ZXJ5VXNp bmdUZW1wUmVsYXRpb25fd2Fsa2VyLAorCQkJCQkJCQkgaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93 YWxrZXIsCiAJCQkJCQkJCSBjb250ZXh0LAogCQkJCQkJCQkgUVRXX0lHTk9SRV9KT0lOQUxJQVNF Uyk7CiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9 IChQYXJhbSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUp CisJCXsKKwkJCWlmIChpc0FueVRlbXBOYW1lc3BhY2UoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZXNwYWNlKHAtPnBhcmFtdmFyaWQpKSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQorCX0KIAogCXJl dHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsCi0JCQkJCQkJCSAgaXNRdWVyeVVzaW5n VGVtcFJlbGF0aW9uX3dhbGtlciwKKwkJCQkJCQkJICBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dh bGtlciwKIAkJCQkJCQkJICBjb250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBlODExY2NlYWFlNS4u ZDg1NzIxNzFmMGQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MTYyLDcgKzUxNjIsNyBAQCBsaXN0VmFyaWFibGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVm OwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0Owot CXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRy YW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsK QEAgLTUxODIsMTIgKzUxODIsMTYgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJu LCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5 cGUsIHYudmFydHlwbW9kKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxu YW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0 XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9 IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVz XCIsXG4iCi0JCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikg YXMgXCIlc1wiXG4iLAorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFy b3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFjdGlvblxu IgorCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCisJCQkJCSAg IiAgRU5EIGFzIFwiJXNcIlxuIiwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAogCQkJ CQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAog CQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCi0JCQkJCSAgZ2V0dGV4dF9ub29wKCJP d25lciIpKTsKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9u b29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKIAlpZiAodmVyYm9zZSkKIAl7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMKaW5kZXggZDZiN2Y0N2UzNWEuLmJkZDUyNDMxNjYxIDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCkBAIC0zNTkzLDcgKzM1OTMsNyBAQCBtYXRjaF9wcmV2aW91c193b3Jk cyhpbnQgcGF0dGVybl9pZCwKIC8qIENSRUFURSBUQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUg Q1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgIkNSRUFU RSBURU1QL1RFTVBPUkFSWSIgd2l0aCB0aGUgcG9zc2libGUgdGVtcCBvYmplY3RzICovCiAJZWxz ZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJURU1QfFRFTVBPUkFSWSIpKQotCQlDT01QTEVU RV9XSVRIKCJTRVFVRU5DRSIsICJUQUJMRSIsICJWSUVXIik7CisJCUNPTVBMRVRFX1dJVEgoIlNF UVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKIAkvKiBDb21wbGV0ZSAiQ1JF QVRFIFVOTE9HR0VEIiB3aXRoIFRBQkxFIG9yIFNFUVVFTkNFICovCiAJZWxzZSBpZiAoVGFpbE1h dGNoZXMoIkNSRUFURSIsICJVTkxPR0dFRCIpKQogCQlDT01QTEVURV9XSVRIKCJUQUJMRSIsICJT RVFVRU5DRSIpOwpAQCAtMzk0NCw3ICszOTQ0LDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50 IHBhdHRlcm5faWQsCiAJfQogLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lk ZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVB VEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KLQllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JF QVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVB VEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiVEVNUHxURU1Q T1JBUlkiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkFTIik7CiAJ ZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIiwgTWF0Y2hBbnksICJBUyIpKQogCQkvKiBD b21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgdHlwZXMgKi8KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfdmFyaWFibGUuaAppbmRleCBkYjU5M2NkNWJlZC4uMWU2ZGQ5OGQ0MTUgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTU1LDYgKzU1LDkgQEAgQ0FUQUxPRyhwZ192YXJpYWJs ZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlw ZSAqLwogCWludDMyCQl2YXJ0eXBtb2QgQktJX0RFRkFVTFQoLTEpOwogCisJLyogYWN0aW9uIG9u IHRyYW5zYWN0aW9uIGVuZCAqLworCWNoYXIJCXZhcnhhY3RlbmRhY3Rpb24gQktJX0RFRkFVTFQo bik7CisKIAkvKiB2YXJpYWJsZSBjb2xsYXRpb24gKi8KIAlPaWQJCQl2YXJjb2xsYXRpb24gQktJ X0RFRkFVTFQoMCkgQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9uKTsKIApAQCAtNjcsNiArNzAs MTIgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKICNlbmRp ZgogfSBGb3JtRGF0YV9wZ192YXJpYWJsZTsKIAordHlwZWRlZiBlbnVtIFZhcmlhYmxlWGFjdEVu ZEFjdGlvbgoreworCVZBUklBQkxFX1hBQ1RFTkRfTk9PUCA9ICduJywJLyogTk9PUCAqLworCVZB UklBQkxFX1hBQ1RFTkRfRFJPUCA9ICdkJywJLyogT04gQ09NTUlUIERST1AgKi8KK30JCQlWYXJp YWJsZVhhY3RFbmRBY3Rpb247CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0KICAqCQlGb3JtX3BnX3Zh cmlhYmxlIGNvcnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKICAqCQl0aGUg Zm9ybWF0IG9mIHRoZSBwZ192YXJpYWJsZSByZWxhdGlvbi4KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaAppbmRleCAwZDRjNjM1YWU3Yi4uZGM4MzI5NmIxYmEgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTIxLDggKzIxLDExIEBACiAjaW5j bHVkZSAidGNvcC9jbWR0YWcuaCIKICNpbmNsdWRlICJ1dGlscy9xdWVyeWVudmlyb25tZW50Lmgi CiAKLWV4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQp OwotZXh0ZXJuIHZvaWQgQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyh2b2lkKTsKK2V4dGVy biB2b2lkIFNlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBY YWN0RW5kQWN0aW9uKTsKK2V4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vz cyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbik7CitleHRlcm4gdm9pZCBBdFByZUVPWGFj dF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21taXQpOworZXh0ZXJuIHZvaWQgQXRFT1N1Ylhh Y3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LCBTdWJUcmFuc2FjdGlvbklkIG15U3Vi aWQsCisJCQkJCQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpOwogCiBleHRlcm4g dm9pZCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051 bGwpOwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2soT2lk IHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmlu ZGV4IGEzYWNkMmQ4NjY0Li40YTliNzQ5YjlhMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAt MzQ3Nyw2ICszNDc3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlU eXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCiAJQ29sbGF0 ZUNsYXVzZSAqY29sbENsYXVzZTsKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5n IGlmIGl0IGFscmVhZHkgZXhpc3RzICovCisJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyogb24gdHJh bnNhY3Rpb24gZW5kIGFjdGlvbiAqLwogfSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKIAogCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVz L3ByaW1ub2Rlcy5oCmluZGV4IDRiMjQyNGQ2ZDM0Li42MTc0YTU1NjJjNSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJp bW5vZGVzLmgKQEAgLTUxLDcgKzUxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgQWxpYXMKIAlMaXN0CSAg ICpjb2xuYW1lczsJCS8qIG9wdGlvbmFsIGxpc3Qgb2YgY29sdW1uIGFsaWFzZXMgKi8KIH0gQWxp YXM7CiAKLS8qIFdoYXQgdG8gZG8gYXQgY29tbWl0IHRpbWUgZm9yIHRlbXBvcmFyeSByZWxhdGlv bnMgKi8KKy8qCisgKiBXaGF0IHRvIGRvIGF0IGNvbW1pdCB0aW1lIGZvciB0ZW1wb3JhcnkgcmVs YXRpb25zIG9yIHNlc3Npb24gdmFyaWFibGVzLgorICovCiB0eXBlZGVmIGVudW0gT25Db21taXRB Y3Rpb24KIHsKIAlPTkNPTU1JVF9OT09QLAkJCQkvKiBObyBPTiBDT01NSVQgY2xhdXNlIChkbyBu b3RoaW5nKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9u LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaAppbmRleCA5MWZkOGUyNDNi NS4uYTgxMTdiY2FlM2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9yZWxh dGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5oCkBAIC0xMjYs NiArMTI2LDYgQEAgZXh0ZXJuIGludAlhdHRuYW1lQXR0TnVtKFJlbGF0aW9uIHJkLCBjb25zdCBj aGFyICphdHRuYW1lLCBib29sIHN5c0NvbE9LKTsKIGV4dGVybiBjb25zdCBOYW1lRGF0YSAqYXR0 bnVtQXR0TmFtZShSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKIGV4dGVybiBPaWQJYXR0bnVtVHlw ZUlkKFJlbGF0aW9uIHJkLCBpbnQgYXR0aWQpOwogZXh0ZXJuIE9pZAlhdHRudW1Db2xsYXRpb25J ZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKLWV4dGVybiBib29sIGlzUXVlcnlVc2luZ1RlbXBS ZWxhdGlvbihRdWVyeSAqcXVlcnkpOworZXh0ZXJuIGJvb2wgaXNRdWVyeVVzaW5nVGVtcE9iamVj dChRdWVyeSAqcXVlcnkpOwogCiAjZW5kaWYJCQkJCQkJLyogUEFSU0VfUkVMQVRJT05fSCAqLwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUu b3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0Cmlu ZGV4IDI5NjhjY2UwODk1Li45ZmJiZjkwNTdhNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlv bi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtODUsMTAgKzg1LDExIEBAIG15dmFy CiAKIHN0ZXAgc3IxOiBST0xMQkFDSzsKIAotc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMg bGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRl CitzdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIG9fY19kIGNyZWF0ZTQgbGV0 NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKIHN0ZXAgY3JlYXRlMzogQ1JF QVRFIFZBUklBQkxFIG15dmFyMyBBUyB0ZXh0Owogc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rl c3QnOwogc3RlcCBzMzogQkVHSU47CitzdGVwIG9fY19kOiBDUkVBVEUgVEVNUCBWQVJJQUJMRSBt eXZhcl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOwogc3RlcCBjcmVhdGU0OiBDUkVBVEUg VkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7CiBzdGVwIGxldDQ6IExFVCBteXZhcjQgPSAndGVzdCc7 CiBzdGVwIGRyb3A0OiBEUk9QIFZBUklBQkxFIG15dmFyNDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCmluZGV4IGM4NjRmZWU0MDA2Li40NWU2NWQ0 MDg1ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFi bGUuc3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5z cGVjCkBAIC0yNCw2ICsyNCw3IEBAIHN0ZXAgY3JlYXRlCQl7IENSRUFURSBWQVJJQUJMRSBteXZh ciBBUyB0ZXh0OyB9CiBzZXNzaW9uIHMzCiBzdGVwIHMzCQkJeyBCRUdJTjsgfQogc3RlcCBsZXQz CQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAgb19jX2QJCXsgQ1JFQVRFIFRFTVAgVkFS SUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsgfQogc3RlcCBjcmVhdGU0 CXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9CiBzdGVwIGxldDQJCXsgTEVUIG15 dmFyNCA9ICd0ZXN0JzsgfQogc3RlcCBkcm9wNAkJeyBEUk9QIFZBUklBQkxFIG15dmFyNDsgfQpA QCAtNDcsNCArNDgsNCBAQCBwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcg dmFsCiAjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVyIHRoZSBjb25jdXJyZW50IGRyb3AKIHBl cm11dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwgc3IxCiAjIHRlc3Qg Zm9yIERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFsIHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVn aXN0ZXJlZAotcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBk cm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3Blcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBz MyBvX2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRl CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCA5NjljMTNkZTYwNi4uY2NmMjk1MTRk OWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNTkzNSwyMCArNTkzNSwyMCBA QCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogU0VUIFJPTEUgVE8gcmVncmVz c192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFU RSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAg ICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgQWNjZXNzIHByaXZpbGVn ZXMgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxh dGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24g fCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8IAogKDEgcm93KQogCiBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJM SUM7CiBDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24nOwogXGRW KyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5 cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8ICAgICAgICAg ICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24g ICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJh Y3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHJlZ3Jl c3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3Jp cHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAg ICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMK KyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAg IE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAg ICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAK Ky0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0K KyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNz X3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgor ICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3Zh cmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBW QVJJQUJMRSB2YXIxOwpAQCAtNjQxNiw5ICs2NDE2LDkgQEAgTGlzdCBvZiBzY2hlbWFzCiAoMCBy b3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICBMaXN0IG9mIHZhcmlh YmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCi0tLS0tLS0t LSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlv biB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCBy b3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4K QEAgLTY1OTEsOSArNjU5MSw5IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBk b3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1 Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5h bWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZl bnQudHJpZ2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQg ZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NzMwLDkgKzY3 MzAsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogKDAgcm93cykKIAogXGRWIHJl Z3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBU eXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0t LS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2Ug YW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDhhMzJiYWFiNzg0Li45NjNmZmFh M2IxZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKQEAgLTQ1LDExICs0NSwxMSBAQCBTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293 bmVyOwogQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OwogU0VUIFJPTEUgVE8g REVGQVVMVDsKIFxkVisgc3ZhcnRlc3QudmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotICBTY2hlbWEg IHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwg ICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3Jp cHRpb24gCi0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9 cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAotICAgICAgICAgIHwgICAgICB8ICAgICAgICAg fCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9y ZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcworICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAg IE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAg ICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCistLS0t LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBzdmFydGVzdCB8IHZhcjEg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJp YWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCiAoMSByb3cpCiAK IERST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKQEAgLTE0MDEsMyArMTQwMSwxMjMgQEAgU0VM RUNUIHZhcjE7CiAKIERFQUxMT0NBVEUgcDE7CiBEUk9QIFZBUklBQkxFIHZhcjE7CistLSB0ZW1w b3JhcnkgdmFyaWFibGVzCitDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludDsKKy0tIHRo aXMgdmlldyBzaG91bGQgYmUgdGVtcG9yYXJ5CitDUkVBVEUgVklFVyB2YXJfdGVzdF92aWV3IEFT IFNFTEVDVCB2YXIxOworTk9USUNFOiAgdmlldyAidmFyX3Rlc3RfdmlldyIgd2lsbCBiZSBhIHRl bXBvcmFyeSB2aWV3CitEUk9QIFZBUklBQkxFIHZhcjEgQ0FTQ0FERTsKK05PVElDRTogIGRyb3Ag Y2FzY2FkZXMgdG8gdmlldyB2YXJfdGVzdF92aWV3CitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFS SUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitDT01NSVQ7Cist LSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUg dmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCist LSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JF QVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQor CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192 YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAw CisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisK K0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJP UDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKy0t IHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2 YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0t IHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVB VEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEg PSAxMDA7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIHpl cm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFy MSc7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHpl cm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQg CistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklB QkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0FW RVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFJPTExCQUNLIFRPIHMxOworICBT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitDT01NSVQ7Cist LSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUg dmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCist LSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggYjYzMjIwMThjZTkuLmJjMWYwOTMw ZDM4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC04 MjcsNiArODI3LDcgQEAgQkVHSU47CiAgIERST1AgVkFSSUFCTEUgdmFyMTsKICAgU0VMRUNUIHZh cjI7CiBST0xMQkFDSzsKKwogLS0gc2hvdWxkIGJlIG9rCiBTRUxFQ1QgdmFyMTsKIApAQCAtOTUz LDMgKzk1NCw2OCBAQCBTRUxFQ1QgdmFyMTsKIAogREVBTExPQ0FURSBwMTsKIERST1AgVkFSSUFC TEUgdmFyMTsKKworLS0gdGVtcG9yYXJ5IHZhcmlhYmxlcworQ1JFQVRFIFRFTVAgVkFSSUFCTEUg dmFyMSBBUyBpbnQ7CistLSB0aGlzIHZpZXcgc2hvdWxkIGJlIHRlbXBvcmFyeQorQ1JFQVRFIFZJ RVcgdmFyX3Rlc3RfdmlldyBBUyBTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxIENB U0NBREU7CisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBD T01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworQ09NTUlUOwor CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hF UkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFS SUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBT RUxFQ1QgdmFyMTsKK1JPTExCQUNLOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBi ZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitC RUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7 CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0t IHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2 YXJuYW1lID0gJ3ZhcjEnOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJM RSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIERST1Ag VkFSSUFCTEUgdmFyMTsKK1JPTExCQUNLOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNv dW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3Vs ZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor CitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERS T1A7CisgIExFVCB2YXIxID0gMTAwOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUg dmFyMTsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNFTEVDVCB2YXIxOworQ09NTUlUOworCistLSBz aG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFy bmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBiYmZh YWI1NzA4My4uMjdlMzUyZmEzNDEgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yNzk2 LDYgKzI3OTYsNyBAQCBTdXBwb3J0UmVxdWVzdFdGdW5jTW9ub3RvbmljCiBTVmFyaWFibGUKIFNW YXJpYWJsZURhdGEKIFNWYXJpYWJsZVN0YXRlCitTVmFyaWFibGVYQWN0RHJvcEl0ZW0KIFN5bgog U3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0gCjIuNDcuMAoK --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20241106-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpcj14 RnJvbSBjMTM1MTJiYzU3MTcxMTJlM2FkZDU0MzIzOTFjNGUxMTI3YTc4ZTkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTY6MDg6NTIgKzAxMDAKU3ViamVjdDogW1BBVENIIDA2 LzIwXSBwbHBnc3FsIHRlc3RzCgotLS0KIHNyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICB8ICAgMyArLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUub3V0IHwgMzgyICsrKysrKysrKysrKysrKysrKwogc3JjL3BsL3BscGdzcWwvc3Jj L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9zcmMvc3FsL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5zcWwgICAgICB8IDI4OSArKysrKysrKysrKysrCiA0IGZpbGVzIGNo YW5nZWQsIDY3NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5v dXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vz c2lvbl92YXJpYWJsZS5zcWwKCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZp bGUgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKaW5kZXggNjNjYjk2ZmFlM2UuLmJiY2Fl MjdkNDIyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9 IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9j YWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9sIFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3Nx bF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3FsX3JlY29yZCBwbHBnc3FsX3NpbXBsZSBw bHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdz cWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJv cHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQogCiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tl eXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVzCiBUT09MU0RJUiA9ICQodG9wX3NyY2Rp cikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi42ZThiNDEzNGMwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CkBAIC0wLDAgKzEsMzgy IEBACistLSB0ZXN0IG9mIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIgQVMgbnVtZXJpYzsKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CistLSBwYXNz aW5nIHBhcmFtZXRlcnMgdG8gRE8gYmxvY2sKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0Ug J3ZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyOworRU5EOwor JCQ7CitOT1RJQ0U6ICB2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzIDMuMTQxNTkyNjUzNTg5 NzkKKy0tIHBhc3Npbmcgb3V0cHV0IGZyb20gRE8gYmxvY2s7CitETyAkJAorQkVHSU4KKyAgTEVU IHBscGdzcWxfc3ZfdmFyID0gMiAqIHBpKCk7CitFTkQKKyQkOworU0VMRUNUIHBscGdzcWxfc3Zf dmFyIEFTICJwaV9tdWx0aXBseV8yIjsKKyAgcGlfbXVsdGlwbHlfMiAgIAorLS0tLS0tLS0tLS0t LS0tLS0tCisgNi4yODMxODUzMDcxNzk1OQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyOworLS0gdGVzdCBhY2Nlc3MgZnJvbSBQTC9wZ1NRTAorQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIy IEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB1cGRhdGVyX2Z1bmMoKQor UkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gcGxwZ3Nx bF9zdl92YXIxICsgMTAwOworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gcGxwZ3NxbF9zdl92YXIy ICsgMTAwMDAwMDAwMDAwOworICAtLSB2ZXJ5IGxvbmcgdmFsdWUKKyAgTEVUIHBscGdzcWxfc3Zf dmFyMyA9IHBscGdzcWxfc3ZfdmFyMyB8fCBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAw MCkpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9U SUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2YXIyID0g JScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFyMyA9ICUn LCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7Cist LSBleGVjdXRlIHVuZGVyIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3cml0ZXJfZnVuYygp OworIHdyaXRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVh ZGVyX2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTky NjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAK Ky0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVw ZGF0ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJf ZnVuYygpOworTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAw My4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRl cl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitFTkQ7CistLSBleGVjdXRlIG91 dCBvZiB0cmFuc2FjdGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7Cisgd3JpdGVyX2Z1bmMgCist LS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9USUNF OiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAg bGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorIHJlYWRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CisgdXBkYXRlcl9mdW5jIAorLS0tLS0t LS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitOT1RJQ0U6ICB2 YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5CitO T1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CisgcmVhZGVyX2Z1bmMgCistLS0tLS0tLS0t LS0tCisgCisoMSByb3cpCisKKy0tIGV4ZWN1dGUgaW5zaWRlIFBML3BnU1FMIGJsb2NrCitETyAk JAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5j KCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsK K0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2 NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorTk9USUNFOiAgdmFyMSA9 IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1ODk3OQorTk9USUNF OiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorLS0gcGxhbiBjYWNoZXMgc2hvdWxkIGJlIGNvcnJl Y3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxf c3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7CistLSBzaG91bGQgdG8g d29yayBhZ2FpbgorRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMoKTsKKyAgUEVS Rk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOworICBQRVJGT1JN IHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAg dmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIK K05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMuMTQxNTky NjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKK0RST1AgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKK0RST1Ag RlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOworRFJPUCBG VU5DVElPTiB1cGRhdGVyX2Z1bmM7CistLSBhbm90aGVyIGNoZWNrIG9mIGNvcnJlY3QgcGxhbiBj YWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50 OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBpbnRbXTsKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUg diBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTsK KyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2OworICBM RVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltwbHBnc3FsX3N2 X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFyMjsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7MTAw fQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3Fs X3N2X3ZhcjIgQVMgaW50W107CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7MTAwfQor Tk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0RS T1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwg cGxwZ3NxbF9zdl92YXIyOworLS0gY2hlY2sgc2VjdXJlIGFjY2VzcworQ1JFQVRFIFJPTEUgcmVn cmVzc192YXJfb3duZXJfcm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xl OworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfZXhlY19yb2xlOworR1JBTlQgQUxMIE9OIFNDSEVN QSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3Jv bGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVy X3JvbGU7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0xFVCBwbHBn c3FsX3N2X3ZhcjEgPSAxMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcl9yZWFk X2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBw bHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklO RVI7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19y b2xlOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHBscGdzcWxfc3ZfdmFyMQor Q09OVEVYVDogIFNRTCBleHByZXNzaW9uICJwbHBnc3FsX3N2X3ZhcjEiCitQTC9wZ1NRTCBmdW5j dGlvbiB2YXJfcmVhZF9mdW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxU OworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0dSQU5UIFNFTEVDVCBPTiBW QVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8gcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitTRVQg Uk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyX3JlYWRfZnVuYygpOworTk9USUNFOiAgMTAKKyB2YXJf cmVhZF9mdW5jIAorLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVn cmVzc192YXJfZXhlY19yb2xlOworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgY3Jhc2gKK1NF TEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjogIGNvbHVtbiAicGxwZ3NxbF9zdl92YXIxIiBk b2VzIG5vdCBleGlzdAorTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKKyAgICAgICAgXgorUVVFUlk6 ICBwbHBnc3FsX3N2X3ZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJfcmVhZF9m dW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBGVU5DVElP TiB2YXJfcmVhZF9mdW5jOworUkVWT0tFIEFMTCBPTiBTQ0hFTUEgcHVibGljIEZST00gcmVncmVz c192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4 ZWNfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJl Z3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsK Ky0tIHJldHVybnMgdXBkYXRlZCB2YWx1ZQorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBpbmNfdmFyX2ludChpbnQpCitS RVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IENPQUxFU0NF KHBscGdzcWxfc3ZfdmFyMSArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjE7CitF TkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfaW50KDEpOworIGluY192 YXJfaW50IAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBp bmNfdmFyX2ludCgxKTsKKyBpbmNfdmFyX2ludCAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg MgorKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9pbnQoMSk7CisgaW5jX3Zhcl9pbnQgCistLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfaW50KDEp IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworIGluY192YXJfaW50IAorLS0tLS0tLS0tLS0t LQorICAgICAgICAgICA0CisgICAgICAgICAgIDUKKyAgICAgICAgICAgNgorICAgICAgICAgICA3 CisgICAgICAgICAgIDgKKyAgICAgICAgICAgOQorICAgICAgICAgIDEwCisgICAgICAgICAgMTEK KyAgICAgICAgICAxMgorICAgICAgICAgIDEzCisoMTAgcm93cykKKworQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMiBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAuMDsK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfbnVtKG51bWVyaWMpCitSRVRVUk5T IGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IENPQUxFU0NFKHBscGdz cWxfc3ZfdmFyMiArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjI7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9u dW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIGluY192 YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDIK KygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEu MCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0t LS0tCisgICAgICAgICAgIDQKKyAgICAgICAgICAgNQorICAgICAgICAgICA2CisgICAgICAgICAg IDcKKyAgICAgICAgICAgOAorICAgICAgICAgICA5CisgICAgICAgICAgMTAKKyAgICAgICAgICAx MQorICAgICAgICAgIDEyCisgICAgICAgICAgMTMKKygxMCByb3dzKQorCitEUk9QIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworRFJPUCBGVU5DVElPTiBpbmNfdmFy X2ludDsKK0RST1AgRlVOQ1RJT04gaW5jX3Zhcl9udW07CistLSBwbHBnc3FsIHZhcmlhYmxlcyBh cmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdz cWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisg IHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0UgTk9U SUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOworCisg IC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZhcmlhYmxlIGlzICUnLCBt eWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElD RSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAg c2Vzc2lvbiB2YXJpYWJsZSBpcyAxMDAKK05PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAw MAorTk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjE7CistLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBwbHBnc3FsX3N2X3YgPSAnYWJjJzsKK0NSRUFURSBG VU5DVElPTiBmZnVuYygpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBnZnVu YyhwbHBnc3FsX3N2X3YpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEZVTkNU SU9OIGdmdW5jKHQgdGV4dCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdz cWxfc3ZfdiA9ICdCT09NISc7CisgIFJFVFVSTiB0OworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKK3NlbGVjdCBmZnVuYygpOworIGZmdW5jIAorLS0tLS0tLQorIGFiYworKDEgcm93KQorCitE Uk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOworRFJPUCBW QVJJQUJMRSBwbHBnc3FsX3N2X3Y7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVz b24uYnVpbGQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKaW5kZXggM2RkNzM0Yjc3 NmIuLjM5MDVjMGI2ZDQ1IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVp bGQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCkBAIC04OCw2ICs4OCw3IEBA IHRlc3RzICs9IHsKICAgICAgICdwbHBnc3FsX3RyYXAnLAogICAgICAgJ3BscGdzcWxfdHJpZ2dl cicsCiAgICAgICAncGxwZ3NxbF92YXJwcm9wcycsCisgICAgICAncGxwZ3NxbF9zZXNzaW9uX3Zh cmlhYmxlJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3Jj L3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4zOThlN2ZlMmE3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBn c3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMCwwICsxLDI4OSBA QAorLS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CisKKy0tIHBh c3NpbmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7 CiskJDsKKworLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgor ICBMRVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CisKK1NFTEVDVCBwbHBn c3FsX3N2X3ZhciBBUyAicGlfbXVsdGlwbHlfMiI7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXI7CisKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBB UyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOwor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBn c3FsX3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3Zh cjIgKyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9z dl92YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEw MDAwKSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCisKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJ U0UgTk9USUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2 YXIyID0gJScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFy MyA9ICUnLCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdz cWw7CisKKy0tIGV4ZWN1dGUgdW5kZXIgdHJhbnNhY3Rpb24KK0JFR0lOOworU0VMRUNUIHdyaXRl cl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK1NFTEVDVCB1cGRhdGVyX2Z1bmMoKTsK K1NFTEVDVCByZWFkZXJfZnVuYygpOworRU5EOworCistLSBleGVjdXRlIG91dCBvZiB0cmFuc2Fj dGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK1NFTEVD VCB1cGRhdGVyX2Z1bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworCistLSBleGVjdXRlIGlu c2lkZSBQTC9wZ1NRTCBibG9jaworRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMo KTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOwor ICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKKworLS0gcGxhbiBjYWNoZXMgc2hv dWxkIGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIg QVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hhcjsK KworLS0gc2hvdWxkIHRvIHdvcmsgYWdhaW4KK0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRl cl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1 bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKKwor RFJPUCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVyX2Z1bmM7CitE Uk9QIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKworLS0gYW5vdGhlciBjaGVjayBvZiBjb3JyZWN0 IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx IEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgaW50W107CisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQK K0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92 YXIxID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUn LCB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltw bHBnc3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFy MjsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKKwor RFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKKworQ1JFQVRF IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIyIEFTIGludFtdOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisKK0RST1AgRlVOQ1RJ T04gdGVzdF9mdW5jKCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3Fs X3N2X3ZhcjI7CisKKy0tIGNoZWNrIHNlY3VyZSBhY2Nlc3MKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf dmFyX293bmVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NS RUFURSBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworR1JBTlQgQUxMIE9OIFNDSEVNQSBw dWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUs IHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJf cm9sZTsKKworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2 YXJfcmVhZF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNF ICclJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklU WSBERUZJTkVSOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl9leGVjX3JvbGU7CisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyX3JlYWRfZnVu YygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9v d25lcl9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJP TEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2 YXJfcmVhZF9mdW5jKCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyX293bmVyX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwor CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CisKKy0tIHNob3VsZCB0byBmYWlsLCBidXQgbm90IGNyYXNoCitTRUxFQ1QgdmFyX3JlYWRf ZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIEZVTkNUSU9OIHZhcl9yZWFk X2Z1bmM7CisKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3NfdmFyX293 bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3JvbGU7 CisKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworLS0g cmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFT IGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVNDRShw bHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIGluY192YXJfaW50KDEpOworU0VMRUNU IGluY192YXJfaW50KDEpOworU0VMRUNUIGluY192YXJfaW50KDEpOworCitTRUxFQ1QgaW5jX3Zh cl9pbnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAuMDsK KworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JFVFVS TlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0UocGxw Z3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworU0VMRUNU IGluY192YXJfbnVtKDEuMCk7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKworU0VMRUNUIGlu Y192YXJfbnVtKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0RST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0RST1AgRlVOQ1RJT04gaW5j X3Zhcl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworCistLSBwbHBnc3FsIHZhcmlh YmxlcyBhcmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJ QUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworCitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xB UkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAx MDA7CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOworICBS QUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3Zh cjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUg aXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJ U0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOworCistLSB0aGUgdmFsdWUgc2hvdWxkIG5v dCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBw bHBnc3FsX3N2X3YgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVSTlMg dGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBGVU5DVElPTiBnZnVuYyh0IHRleHQpCitSRVRV Uk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3YgPSAnQk9PTSEnOworICBS RVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK3NlbGVjdCBmZnVuYygpOwor CitEUk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOworCitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKLS0gCjIuNDcuMAoK --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20241106-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpco15 RnJvbSBhYTQ2NzU0ZGRmNGI1NWYzZWM3MTI0NzA4MjI4NzQwODNhMzAwMzBmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTg6MjMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA1 LzIwXSBtZW1vcnkgY2xlYW5pbmcgYWZ0ZXIgRFJPUCBWQVJJQUJMRQoKQWNjZXB0IG9mIHNpbnZh bCBtZXNzYWdlIGludmFsaWRhdGVzIGVudHJpZXMgaW4gc2Vzc2lvbnZhcnMgaGFzaCB0YWJsZS4g VGhlc2UgZW50cmllcwphcmUgdmFsaWRhdGVkIGJlZm9yZSBhbnkgcmVhZCBvciB3cml0ZSBvcGVy YXRpb25zIG9uIHNlc3Npb24gdmFyaWFibGVzLiBXaGVuIHRoZSBlbnRyeQpjYW5ub3QgYmUgdmFs aWRhdGVkLCB0aGVuIGl0IGlzIHJlbW92ZWQuIFRoZSByZW1vdmluZyBjYW4gYmUgZGVsYXllZCB3 aGVuIHZhcmlhYmxlCmlzIGRyb3BwZWQgaW5zaWRlIGN1cnJlbnQgdHJhbnNhY3Rpb24uIFRoaXMg dHJhbnNhY3Rpb24gY2FuIGJlIGFib3J0ZWQgYW5kIGluIHRoaXMgY2FzZQp3ZSB3YW50IHRvIHBy ZXNlcnZlIGNvbnRlbnQgb2YgdGhlIHZhcmlhYmxlLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jICAgICAgIHwgMTcyICsrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgIDMgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgMTA5ICsrKysrKysrKwogc3JjL3Rlc3Qv aXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSAgICAgICAgIHwgICAxICsKIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA1MCArKysrCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAyMTggKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAxMjEg KysrKysrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCA2ODAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24v c3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCmlu ZGV4IGI3ZWJjYzJhNTU3Li5lM2Y2NWRjNjZjMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGFjdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3Qu YwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfZW51bS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisjaW5j bHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Rh YmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21t b24vcGdfcHJuZy5oIgpAQCAtMjMxNiw2ICsyMzE3LDkgQEAgQ29tbWl0VHJhbnNhY3Rpb24odm9p ZCkKIAkgKi8KIAlzbWdyRG9QZW5kaW5nU3luY3ModHJ1ZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsK IAorCS8qIHJlbW92ZSB2YWx1ZXMgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tIG1l bW9yeSAqLworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoKTsKKwogCS8qIGNsb3NlIGxh cmdlIG9iamVjdHMgYmVmb3JlIGxvd2VyLWxldmVsIGNsZWFudXAgKi8KIAlBdEVPWGFjdF9MYXJn ZU9iamVjdCh0cnVlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IGVmODk1OTRh MjY4Li4wZmI4YzdmMjJhNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMjIsNiAr MjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisj aW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1p bi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVp bHRpbnMuaCIKQEAgLTI1NCw0ICsyNTUsNyBAQCBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkK IAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwkvKiBkbyB0aGUgbmVjZXNzYXJ5IGNsZWFudXAgaWYgbmVlZGVkIGluIGxvY2Fs IG1lbW9yeSAqLworCVNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vzcyh2YXJpZCk7CiB9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggNjY4YjgxODlhNmMuLmVh YjkxZTE0NjBjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0x NCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNj ZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJs ZVJlY2VpdmVyLmgiCkBAIC02Nyw2ICs2OCwxNCBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVE YXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBk b21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCS8qCisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5z YWN0aW9uIGlkIG9mIHRoZSBsYXN0IHRyYW5zYWN0aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2 YXJpYWJsZSBpZiBhbnkuICBXZSBuZWVkIHRoaXMgaW5mb3JtYXRpb24gdG8gYXZvaWQgZnJlZWlu ZyBtZW1vcnkgZm9yCisJICogdmFyaWFibGUgZHJvcHBlZCBieSB0aGUgbG9jYWwgYmFja2VuZCB0 aGF0IG1heSBiZSBldmVudHVhbGx5CisJICogcm9sbGJhY2tlZC4KKwkgKi8KKwlMb2NhbFRyYW5z YWN0aW9uSWQgZHJvcF9seGlkOworCiAJLyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVz Y3JpcHRpb24gY2FuIGJlIG91dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZSBhCiAJICogc2ludmFsIG1l c3NhZ2UuICBXZSB0aGVuIGhhdmUgdG8gY2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGls bApAQCAtODMsNiArOTIsMTkgQEAgc3RhdGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyog aGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgKi8KIAogc3RhdGljIE1lbW9yeUNvbnRl eHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CiAKKy8qIHRydWUgYWZ0ZXIgYWNjZXB0 ZWQgc2ludmFsIG1lc3NhZ2UgKi8KK3N0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxz ZTsKKworLyoKKyAqIFRoZSBjb250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1v dmVkIGltbWVkaWF0ZWx5LiBXaGVuIGl0CisgKiBpcyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRo ZSB0cmFuc2FjdGlvbiBlbmQuIEJ1dCB3aGVuIHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQsCisgKiB3 ZSBjYW5ub3QgZG8gaXQsIGJlY2F1c2Ugd2UgbG9zdCBhY2Nlc3MgdG8gdGhlIHN5c3RlbSBjYXRh bG9nLiBTbyB3ZQorICogdHJ5IHRvIGRvIGl0IGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIGJlZm9y ZSBhbnkgZ2V0IG9yIHNldCBvZiBhbnkgc2Vzc2lvbgorICogdmFyaWFibGUuIFdlIGRvbid0IHdh bnQgdG8gcmVwZWF0IHRoaXMgb3BlbmluZyBjbGVhbmluZyBpbiB0cmFuc2FjdGlvbiwKKyAqIFNv IHdlIHN0b3JlIHRoZSBpZCBvZiB0aGUgdHJhbnNhY3Rpb24gd2hlcmUgb3BlbmluZyB2YWxpZGF0 aW9uIHdhcyBkb25lLgorICovCitzdGF0aWMgTG9jYWxUcmFuc2FjdGlvbklkIHZhbGlkYXRlZF9s eGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0 aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTE0LDYgKzEz NiwzOSBAQCBwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlk LCB1aW50MzIgaGFzaHZhbHVlKQogCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZh bHVlID09IGhhc2h2YWx1ZSkKIAkJewogCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJCW5l ZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQl9CisJfQorfQorCisvKgorICogSGFuZGxlIHRoZSBs b2NhbCBtZW1vcnkgY2xlYW51cCBmb3IgYSBEUk9QIFZBUklBQkxFIGNvbW1hbmQuCisgKgorICog Q2FsbGVyIHNob3VsZCB0YWtlIGNhcmUgb2YgcmVtb3ZpbmcgdGhlIHBnX3ZhcmlhYmxlIGVudHJ5 IGZpcnN0LgorICovCit2b2lkCitTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZh cmlkKQoreworCUFzc2VydChMb2NhbFRyYW5zYWN0aW9uSWRJc1ZhbGlkKE15UHJvYy0+dnhpZC5s eGlkKSk7CisKKwlpZiAoc2Vzc2lvbnZhcnMpCisJeworCQlib29sCQlmb3VuZDsKKwkJU1Zhcmlh YmxlCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAor CQkJCQkJCQkJCQkJICAgSEFTSF9GSU5ELCAmZm91bmQpOworCisJCWlmIChmb3VuZCkKKwkJewor CQkJLyoKKwkJCSAqIFNhdmUgdGhlIGN1cnJlbnQgdG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9u IGlkIHRvIG1ha2Ugc3VyZSB3ZQorCQkJICogZG9uJ3QgYXV0b21hdGljYWxseSByZW1vdmUgdGhl IGxvY2FsIHZhcmlhYmxlIHN0b3JhZ2UgaW4KKwkJCSAqIHZhbGlkYXRlX2FsbF9zZXNzaW9uX3Zh cmlhYmxlcywgYXMgdGhlIERST1AgVkFSSUFCTEUgd2lsbCBzZW5kCisJCQkgKiBhbiBpbnZhbGlk YXRpb24gbWVzc2FnZS4KKwkJCSAqLworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJCXN2 YXItPmRyb3BfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCisJCQluZWVkc192YWxpZGF0aW9u ID0gdHJ1ZTsKIAkJfQogCX0KIH0KQEAgLTE2Nyw2ICsyMjIsODMgQEAgaXNfc2Vzc2lvbl92YXJp YWJsZV92YWxpZChTVmFyaWFibGUgc3ZhcikKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICog SXQgY2hlY2tzIGFsbCBwb3NzaWJseSBpbnZhbGlkIGVudHJpZXMgYWdhaW5zdCB0aGUgc3lzdGVt IGNhdGFsb2cuCisgKiBEdXJpbmcgdGhpcyB2YWxpZGF0aW9uLCB0aGUgc3lzdGVtIGNhY2hlIGNh biBiZSBpbnZhbGlkYXRlZCwgYW5kIHRoZQorICogc29tZSBzaW52YWwgbWVzc2FnZSBjYW4gYmUg YWNjZXB0ZWQuIFRoaXMgcm91dGluZSBkb2Vzbid0IGVuc3VyZQorICogYWxsIGxpdmluZyBlbnRy aWVzIG9mIHNlc3Npb252YXJzIHdpbGwgaGF2ZSBpc192YWxpZCBmbGFnLCBidXQgaXQgZW5zdXJl cworICogdGhhdCBhbGwgZW50cmllcyBhcmUgY2hlY2tlZCBvbmNlLgorICoKKyAqIFRoaXMgcm91 dGluZSBpcyBjYWxsZWQgYmVmb3JlIGFueSB1c2FnZSAocmVhZCwgd3JpdGUsIGRlYnVnKSBvZiBz ZXNzaW9uCisgKiB2YXJpYWJsZXMgKG9ubHkgb25jZSBpbiBhIHRyYW5zYWN0aW9uKSBvciBhdCBh IHRyYW5zYWN0aW9uIGVuZC4gIEF0IHRoZQorICogZW5kIG9mIHRyYW5zYWN0aW9uIChzcGVjaWZp ZWQgYnkgdHJ1ZSBvZiBhcmd1bWVudCBhdEVPWCkgd2UgY2FuCisgKiB0aHJvdyBhbGwgaW52YWxp ZCB2YXJpYWJsZXMuIEluc2lkZSB0aGUgdHJhbnNhY3Rpb24gKGF0RU9YIGlzIGZhbHNlKSB3ZSB3 YW50CisgKiB0byBwb3N0cG9uZSBjbGVhbmluZyBvZiB2YXJpYWJsZXMgZHJvcHBlZCBpbnNpZGUg dGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24uCisgKiBUaGUgY3VycmVudCB0cmFuc2FjdGlvbiBjYW4g YmUgYWJvcnRlZCwgdGhlIHJlbGF0ZWQgZHJvcCBjb21tYW5kIHdpbGwgYmUKKyAqIGFib3J0ZWQg dG9vLiBJbiB0aGlzIGNhc2Ugd2UgZG9uJ3Qgd2FudCBsb3NlIHRoZSBjb250ZW50IG9mIHRoZSB2 YXJpYWJsZSwKKyAqIGFuZCB0aGVyZWZvcmUgd2UgbmVlZCB0byBob2xkIHRoZSBjb250ZW50IG9m IHRoZSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGUKKyAqIHVudGlsIHRoZSBlbmQgb2YgdGhlIHRy YW5zYWN0aW9uICh3aGVyZSB0aGUgdmFyaWFibGUgd2FzIGRyb3BwZWQpLgorICovCitzdGF0aWMg dm9pZAorcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkKK3sKKwlI QVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJLyoKKwkgKiBUaGUg dmFsaWRhdGlvbiByZXF1aXJlcyBhbiBhY2Nlc3MgdG8gc3lzdGVtIGNhdGFsb2csIGFuZCB0aGVu IHRoZQorCSAqIHNlc3Npb24gc3RhdGUgc2hvdWxkIGJlICJpbiB0cmFuc2FjdGlvbiIuCisJICov CisJQXNzZXJ0KElzVHJhbnNhY3Rpb25TdGF0ZSgpKTsKKworCWlmICghbmVlZHNfdmFsaWRhdGlv biB8fCAhc2Vzc2lvbnZhcnMpCisJCXJldHVybjsKKworCS8qCisJICogUmVzZXQgdGhpcyBmbGFn IGhlcmUsIGJlZm9yZSB3ZSBzdGFydCB0aGUgdmFsaWRhdGlvbi4gSXQgY2FuIGJlIHNldCB0bwor CSAqIG9uIGJ5IGluY29tbWluZyBzaW52YWwgbWVzc2FnZS4KKwkgKi8KKwluZWVkc192YWxpZGF0 aW9uID0gZmFsc2U7CisKKwllbG9nKERFQlVHMSwgImVmZmVjdGl2ZSBjYWxsIG9mIHZhbGlkYXRl X2FsbF9zZXNzaW9uX3ZhcmlhYmxlcygpIik7CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNl c3Npb252YXJzKTsKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2go JnN0YXR1cykpICE9IE5VTEwpCisJeworCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7CisJCQlp ZiAoIWF0RU9YICYmIHN2YXItPmRyb3BfbHhpZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKKwkJCXsK KwkJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJCQljb250aW51ZTsKKwkJCX0KKworCQkJ aWYgKCFpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2YXIpKQorCQkJeworCQkJCU9pZAkJCXZh cmlkID0gc3Zhci0+dmFyaWQ7CisKKwkJCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zh cik7CisJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwgSEFTSF9SRU1PVkUsIE5V TEwpOworCQkJCXN2YXIgPSBOVUxMOworCQkJfQorCQkJZWxzZQorCQkJCXN2YXItPmlzX3ZhbGlk ID0gdHJ1ZTsKKwkJfQorCX0KK30KKworLyoKKyAqIFJlbW92ZSB2YWx1ZXMgb2YgZHJvcHBlZCBz ZXNzaW9uIHZhcmlhYmxlcyBmcm9tIG1lbW9yeS4KKyAqLwordm9pZAorQXRQcmVFT1hhY3RfU2Vz c2lvblZhcmlhYmxlcyh2b2lkKQoreworCS8qIHdlIGNhbm5vdCB0byBkbyBpdCB3aGVuIHRyYW5z YWN0aW9uIGlzIGFib3J0ZWQgKi8KKwlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCisJ cmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModHJ1ZSk7Cit9CisKIC8qCiAgKiBJbml0 aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVkIGluICJzdmFyIgogICovCkBAIC0xOTYsNiArMzI4LDgg QEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkKQogCXN2 YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJh X2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisJc3Zhci0+ZHJvcF9seGlkID0g SW52YWxpZFRyYW5zYWN0aW9uSWQ7CisKIAlzdmFyLT5pc251bGwgPSB0cnVlOwogCXN2YXItPnZh bHVlID0gKERhdHVtKSAwOwogCkBAIC0zMTksMjIgKzQ1Myw0NCBAQCBnZXRfc2Vzc2lvbl92YXJp YWJsZShPaWQgdmFyaWQpCiAJaWYgKCFzZXNzaW9udmFycykKIAkJY3JlYXRlX3Nlc3Npb252YXJz X2hhc2h0YWJsZXMoKTsKIAorCWlmICh2YWxpZGF0ZWRfbHhpZCA9PSBJbnZhbGlkTG9jYWxUcmFu c2FjdGlvbklkIHx8CisJCXZhbGlkYXRlZF9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQorCXsK KwkJLyogdGhyb3cgaW52YWxpZCBlbnRyaWVzLCBza2lwIGVudHJpZXMgZHJvcHBlZCBieSB0aGlz IHRyYW5zYWN0aW9uLiAqLworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhmYWxz ZSk7CisKKwkJLyogZG9uJ3QgcmVwZWF0IGl0IGluIHRoaXMgdHJhbnNhY3Rpb24gKi8KKwkJdmFs aWRhdGVkX2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CisKIAlzdmFyID0gKFNWYXJpYWJs ZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKIAkJCQkJCQkJICAgSEFTSF9FTlRF UiwgJmZvdW5kKTsKIAogCWlmIChmb3VuZCkKIAl7CisJCS8qCisJCSAqIFRoZSBzZXNzaW9uIHZh cmlhYmxlIGNhbiBiZSBkcm9wcGVkIGJ5IERST1AgVkFSSUFCTEUgY29tbWFuZCwKKwkJICogYnV0 IGVmZmVjdCBvZiB0aGlzIGNvbW1hbmQgY2FuIGJlIHJldmVydGVkIGJ5IFJPTExCQUNLIHRvIHNh dmVwb2ludCwKKwkJICogc28gd2UgY2FuIHdvcmsgaGVyZSB3aXRoIHJlYWRhYmxlIHZhbHVlIGlu IHZhcmlhYmxlIG1hcmtlZCBhcyBpbnZhbGlkLgorCQkgKi8KIAkJaWYgKCFzdmFyLT5pc192YWxp ZCkKIAkJewogCQkJLyoKIAkJCSAqIElmIHRoZXJlIHdhcyBhbiBpbnZhbGlkYXRpb24gbWVzc2Fn ZSwgdGhlIHZhcmlhYmxlIG1pZ2h0IHN0aWxsIGJlCiAJCQkgKiB2YWxpZCwgYnV0IHdlIGhhdmUg dG8gY2hlY2sgd2l0aCB0aGUgc3lzdGVtIGNhdGFsb2cuCisJCQkgKgorCQkJICogSWYgd2UgYWNj ZXNzIHRoaXMgc2Vzc2lvbiB2YXJpYWJsZSwgdGhlbiB0aGUgdmFyaWFibGUgc2hvdWxkIGJlCisJ CQkgKiBwb3NzaWJseSB2YWxpZGF0ZWQuIFRoZSBvaWQgc2hvdWxkIGJlIHZhbGlkLCBiZWNhdXNl IHJlbGF0ZWQKKwkJCSAqIHNlc3Npb24gdmFyaWFibGUgaXMgbG9ja2VkIGFscmVhZHksIGFuZCBy ZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcworCQkJICogc2hvdWxkIHRvIHJlbW92ZSB2 YXJpYWJsZXMgZHJvcHBlZCBieSBvdGhlciB0cmFuc2FjdGlvbnMuCiAJCQkgKi8KIAkJCWlmIChp c19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2YXIpKQogCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1 ZTsKIAkJCWVsc2UKLQkJCQkvKiBpZiB0aGUgdmFsdWUgY2Fubm90IGJlIHZhbGlkYXRlZCwgd2Ug aGF2ZSB0byBkaXNjYXJkIGl0ICovCi0JCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2 YXIpOworCQkJeworCQkJCS8qIHdlIGRvbid0IGV4cGVjdCBpdCAqLworCQkJCWVsb2coRVJST1Is ICJ1bmV4cGVjdGVkIHN0YXRlIG9mIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisJCQl9 CiAJCX0KIAl9CiAJZWxzZQpAQCAtMzk1LDYgKzU1MSwxNiBAQCBTZXRTZXNzaW9uVmFyaWFibGUo T2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAJaWYgKCFzZXNzaW9udmFycykK IAkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKIAorCWlmICh2YWxpZGF0ZWRfbHhp ZCA9PSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkIHx8CisJCXZhbGlkYXRlZF9seGlkICE9IE15 UHJvYy0+dnhpZC5seGlkKQorCXsKKwkJLyogdGhyb3cgaW52YWxpZCBlbnRyaWVzLCBza2lwIGVu dHJpZXMgZHJvcHBlZCBieSB0aGlzIHRyYW5zYWN0aW9uICovCisJCXJlbW92ZV9pbnZhbGlkX3Nl c3Npb25fdmFyaWFibGVzKGZhbHNlKTsKKworCQkvKiBkb24ndCByZXBlYXQgaXQgaW4gdGhpcyB0 cmFuc2FjdGlvbiAqLworCQl2YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0K KwogCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAog CQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOwogCkBAIC01ODksNiArNzU1LDggQEAgcGdf c2Vzc2lvbl92YXJpYWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIHsKICNkZWZpbmUgTlVNX1BHX1NF U1NJT05fVkFSSUFCTEVTX0FUVFMgOAogCisJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJs ZXMoZmFsc2UpOworCiAJSW5pdE1hdGVyaWFsaXplZFNSRihmY2luZm8sIDApOwogCiAJaWYgKHNl c3Npb252YXJzKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IDQ0 M2FmYmFmZDRhLi4wZDRjNjM1YWU3YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaApAQCAtMjEsNiArMjEsOSBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5j bHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFy aWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKTsKK2V4dGVybiB2b2lkIEF0UHJlRU9YYWN0 X1Nlc3Npb25WYXJpYWJsZXModm9pZCk7CisKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJs ZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gdm9pZCBTZXRT ZXNzaW9uVmFyaWFibGVXaXRoU2VjdXJpdHlDaGVjayhPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBi b29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwg Ym9vbCAqaXNOdWxsLCBPaWQgKnR5cGlkKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlv bi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBl Y3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uMjk2OGNjZTA4OTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9pc29sYXRp b24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKQEAgLTAsMCArMSwxMDkgQEAKK1BhcnNl ZCB0ZXN0IHNwZWMgd2l0aCA0IHNlc3Npb25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQg dmFsIGRyb3AgdmFsCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNF TEVDVCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBkcm9wOiBE Uk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK0VSUk9SOiAgY29s dW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2 YWwgczEgZHJvcCB2YWwgc3IxCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2 YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBz MTogQkVHSU47CitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIHZhbDogU0VM RUNUIG15dmFyOworRVJST1I6ICBjb2x1bW4gIm15dmFyIiBkb2VzIG5vdCBleGlzdAorc3RlcCBz cjE6IFJPTExCQUNLOworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBkYmcgZHJvcCBj cmVhdGUgZGJnIHZhbAorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBT RUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgZGJnOiBT RUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK K3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0tLQorcHVibGljfG15dmFy fGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3Rl cCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZhciBBUyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVD VCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2No ZW1hfG5hbWV8cmVtb3ZlZAorLS0tLS0tKy0tLS0rLS0tLS0tLQorKDAgcm93cykKKworc3RlcCB2 YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQorICAgICAKKygxIHJvdykKKworCitzdGFy dGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEK K3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOwor bXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBCRUdJTjsKK3N0ZXAgZGJn OiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0tLQorcHVibGljfG15 dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOwor c3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZhciBBUyB0ZXh0Oworc3RlcCBkYmc6IFNF TEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor c2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8 ZiAgICAgIAorKDEgcm93KQorCitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0t CisgICAgIAorKDEgcm93KQorCitzdGVwIHNyMTogUk9MTEJBQ0s7CisKK3N0YXJ0aW5nIHBlcm11 dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBk aXNjYXJkIHNjMyBzdGF0ZQorc3RlcCBjcmVhdGUzOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFT IHRleHQ7CitzdGVwIGxldDM6IExFVCBteXZhcjMgPSAndGVzdCc7CitzdGVwIHMzOiBCRUdJTjsK K3N0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0Oworc3RlcCBsZXQ0 OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOworc3RlcCBkcm9wNDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7 CitzdGVwIGRyb3AzOiBEUk9QIFZBUklBQkxFIG15dmFyMzsKK3N0ZXAgaW52YWwzOiBTRUxFQ1Qg Q09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFibGU7Cis/Y29sdW1uPworLS0tLS0tLS0K K3QgICAgICAgCisoMSByb3cpCisKK3N0ZXAgZGlzY2FyZDogRElTQ0FSRCBWQVJJQUJMRVM7Citz dGVwIHNjMzogQ09NTUlUOworc3RlcCBzdGF0ZTogU0VMRUNUIHZhcm5hbWUgRlJPTSBwZ192YXJp YWJsZTsKK3Zhcm5hbWUKKy0tLS0tLS0KK215dmFyICAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSBiL3NyYy90ZXN0L2lzb2xhdGlv bi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggMTQzMTA5YWE0ZGEuLjc0NTM2ODVkMDQ2IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCisrKyBiL3NyYy90 ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKQEAgLTExNSwzICsxMTUsNCBAQCB0ZXN0 OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDogc2VyaWFsaXphYmxlLXBhcmFsbGVsLTMK IHRlc3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDogbG9jay1ub3dhaXQKK3Rlc3Q6IHNlc3Np b24tdmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9u LXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJs ZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jODY0ZmVlNDAw NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZh cmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBUZXN0IHNlc3Npb24gdmFyaWFibGVzIG1l bW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAKK3sKKyAgICBDUkVBVEUgVkFSSUFCTEUg bXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sKKyAgICBEUk9QIFZBUklBQkxFIElGIEVY SVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMQkJeyBCRUdJTjsgfQorc3RlcCBs ZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAgdmFsCXsgU0VMRUNUIG15dmFyOyB9Citz dGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNLOyB9CisKK3Nlc3Npb24gczIKK3N0ZXAg ZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9CitzdGVwIGNyZWF0ZQkJeyBDUkVBVEUgVkFS SUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9uIHMzCitzdGVwIHMzCQkJeyBCRUdJTjsg fQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAgY3JlYXRlNAl7IENS RUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQorc3RlcCBsZXQ0CQl7IExFVCBteXZhcjQg PSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjQ7IH0KK3N0ZXAg aW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZST00gcGdfZm9yZWlnbl90YWJsZTsgfQor c3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7IH0KK3N0ZXAgc2MzCQl7IENPTU1JVDsg fQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3ZhcmlhYmxlOyB9CisKK3Nl c3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4dDsg fQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15dmFyMzsgfQorCisjIENvbmN1cnJlbnQg ZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGFuIGVycm9yCitwZXJtdXRh dGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1dCB3aXRoIGFuIGV4cGxpY2l0IHRyYW5z YWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQorIyBDb25jdXJyZW50 IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUgc2hvdWxkIGxlYWQgdG8gZW1wdHkgdmFy aWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwKKyMgQ29u Y3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGVt cHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2FjdGlvbiB0byBtYWtlIHN1cmUgdGhhdCB3 ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4KKyMgY2FsbGluZyB0aGUgZGJnIHN0ZXAg YWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0YXRpb24gbGV0IHZhbCBzMSBkYmcgZHJv cCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3IgRElTQ0FSRCBBTEwgd2hlbiBhbGwgaW50 ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCitwZXJtdXRhdGlvbiBjcmVhdGUz IGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0 ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApp bmRleCAyYzQ3NjBmYjY4Ny4uZWQzYjNiNjQyYWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xMDQ0LDMgKzEwNDQsMjIxIEBAIFNF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CiAgICAgIDAKICgxIHJv dykKIAorLS0gZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBtZW1vcnkK Ky0tIGF0IHRoZSBlbmQgb2YgdHJhbnNhY3Rpb24gb3IgYmVmb3JlIG5leHQgdXNhZ2UKKy0tIG9m IGFueSBzZXNzaW9uIHZhcmlhYmxlIGluIG5leHQgdHJhbnNhY3Rpb24uCitMRVQgdmFyMSA9ICdB aG9qJzsKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgICAgICB0eXBuYW1lICAgICAgfCBjYW5f c2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCB0ICAgICAgICAg IHwgdAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUgemVybwor U0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0t LS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLSB0aGUgY29udGVudCBvZiB2YWx1ZSBzaG91bGQg YmUgcHJlc2VydmVkIHdoZW4gdmFyaWFibGUgaXMgZHJvcHBlZAorLS0gYnkgYWJvcnRlZCB0cmFu c2FjdGlvbgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0Fo b2onOworQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQgZmFpbAorU0VMRUNU IHZhcjE7CitFUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VM RUNUIHZhcjE7CisgICAgICAgICAgICAgICBeCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIEFob2oKKygxIHJvdykKKworLS0gYW5vdGhl ciB0ZXN0CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludDsKK0xFVCB2YXIxID0gMTAwOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgMTAwCitT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsK Ky0tIHNob3VsZCBiZSBvaywgcmVzdWx0ICdBaG9qJworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0t LS0tLQorIEFob2oKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJl IHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291 bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEg CistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9z ZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCB0 eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNhbl91cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgaW50ZWdlciB8IHQgICAgICAgICAgfCB0Ciso MSByb3cpCisKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHpl cm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQg CistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCist LS0tLS0KKyAgMTAwCisoMSByb3cpCisKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxl Y3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCB0eXBu YW1lIHwgY2FuX3NlbGVjdCB8IGNhbl91cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgaW50ZWdlciB8IHQgICAgICAgICAgfCB0CisoMSBy b3cpCisKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCist LS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50Owor Q1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50OworTEVUIHZhcjEgPSAxMDsKK0xFVCB2YXIyID0g MDsKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0g Zm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNF TEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sg VE8gczE7CisgIFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICBTRUxFQ1Qg dmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMy OworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0t CisgICAxMAorKDEgcm93KQorCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklB QkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lv biB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93 KQorCisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUg dmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKwor Uk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgIDEwCisoMSByb3cpCisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFC TEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9u IHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cp CisKKyAgU0FWRVBPSU5UIHMyOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90 aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAg IDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkg dG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIg CistLS0tLS0KKyAgICAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworLS0gcmVwZWF0ZWQg YWJvcnRlZCB0cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7 CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklB QkxFIHZhcjE7IFJPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggOTc5YjkwMjll NTguLjUyOTg2NGQ0ZTE2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCkBAIC03MzQsMyArNzM0LDEyNCBAQCBESVNDQVJEIFZBUklBQkxFUzsKIAogLS0gc2hv dWxkIGJlIHplcm8gYWdhaW4KIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFi bGVzKCk7CisKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZyb20gbWVt b3J5CistLSBhdCB0aGUgZW5kIG9mIHRyYW5zYWN0aW9uIG9yIGJlZm9yZSBuZXh0IHVzYWdlCist LSBvZiBhbnkgc2Vzc2lvbiB2YXJpYWJsZSBpbiBuZXh0IHRyYW5zYWN0aW9uLgorCitMRVQgdmFy MSA9ICdBaG9qJzsKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRl IEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCk7CisKKy0tIHRoZSBjb250ZW50IG9mIHZhbHVlIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiB2 YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhYm9ydGVkIHRyYW5zYWN0aW9uCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEgPSAnQWhvaic7CitCRUdJTjsKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOworCitST0xMQkFD SzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gYW5vdGhlciB0ZXN0CitC RUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsK K0xFVCB2YXIxID0gMTAwOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgMTAwCitTRUxFQ1QgdmFy MTsKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgJ0Fob2onCitTRUxFQ1QgdmFy MTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOwor ICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCk7CisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxl Y3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworICBEUk9QIFZBUklB QkxFIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworTEVUIHZh cjIgPSAwOworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOwor ICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUK KyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERS T1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMyOworQ09N TUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworQkVHSU47CisgIFNBVkVQT0lO VCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3Vj aGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNL IFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNU IHZhcjI7CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKK0JFR0lO OworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xl YW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIy OworCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5v dGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsK KyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxl CisgIFNFTEVDVCB2YXIyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsK KworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFSSUFCTEUg dmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKK0JF R0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworCistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7Ci0tIAoyLjQ3LjAKCg== --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20241106-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpcx16 RnJvbSBlNTE1MDZkMWI0ZGI3MWQxNjNhNDJjNTZkNjMyMmQ2NTM0MjA5NjU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIwXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYzICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2FjLi42MWI5NjdmOWM5YiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJk LnNnbWwKQEAgLTIxLDcgKzIxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVm c3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1ESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5D RVMgfCBURU1QT1JBUlkgfCBURU1QIH0KK0RJU0NBUkQgeyBBTEwgfCBQTEFOUyB8IFNFUVVFTkNF UyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC02Niw2ICs2NiwxNiBAQCBESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBT RVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIH0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+VkFSSUFC TEVTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg UmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUK KyAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+VEVNUE9S QVJZPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5URU1QPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlz dGl0ZW0+CkBAIC05Myw2ICsxMDMsNyBAQCBTRUxFQ1QgcGdfYWR2aXNvcnlfdW5sb2NrX2FsbCgp OwogRElTQ0FSRCBQTEFOUzsKIERJU0NBUkQgVEVNUDsKIERJU0NBUkQgU0VRVUVOQ0VTOworRElT Q0FSRCBWQVJJQUJMRVM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k aXNjYXJkLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKaW5kZXggOTJkOTgzYWM3 NDguLmQwNmViYWJhNmY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJk LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCkBAIC0xOCw2ICsxOCw3IEBA CiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kaXNjYXJk LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgpAQCAtNDgsNiArNDks MTAgQEAgRGlzY2FyZENvbW1hbmQoRGlzY2FyZFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkK IAkJCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7CiAJCQlicmVhazsKIAorCQljYXNlIERJU0NB UkRfVkFSSUFCTEVTOgorCQkJUmVzZXRTZXNzaW9uVmFyaWFibGVzKCk7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBESVNDQVJEIHRhcmdldDog JWQiLCBzdG10LT50YXJnZXQpOwogCX0KQEAgLTc1LDQgKzgwLDUgQEAgRGlzY2FyZEFsbChib29s IGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFuQ2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5hbWVzcGFj ZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNoZXMoKTsKKwlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCAxM2FiOTU3NWZh OS4uNjY4YjgxODlhNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK QEAgLTk0LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywg aW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3Zhcmlh YmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2Vy dChzZXNzaW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lv biB2YXJpYWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBh biBpbnZhbGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQor CSAqIGRlc3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lv bnZhcnMpCisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3Bl Y2lmaWVkLCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjYxLDMgKzY2Nywy MyBAQCBwZ19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChE YXR1bSkgMDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBv ZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFu eSBsaXN0IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNl ZCBieSB0aGUgRElTQ0FSRCBWQVJJQUJMRVMgKGFuZCBESVNDQVJEIEFMTCkgY29tbWFuZC4KKyAq Lwordm9pZAorUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogZGVzdHJveSBoYXNo IHRhYmxlIGFuZCByZXNldCByZWxhdGVkIG1lbW9yeSBjb250ZXh0ICovCisJaWYgKHNlc3Npb252 YXJzKQorCXsKKwkJaGFzaF9kZXN0cm95KHNlc3Npb252YXJzKTsKKwkJc2Vzc2lvbnZhcnMgPSBO VUxMOworCX0KKworCS8qIHJlbGVhc2UgbWVtb3J5IGFsbG9jYXRlZCBieSBzZXNzaW9uIHZhcmlh YmxlcyAqLworCWlmIChTVmFyaWFibGVNZW1vcnlDb250ZXh0ICE9IE5VTEwpCisJCU1lbW9yeUNv bnRleHRSZXNldChTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGY3 ZTRjMjdiNTUwLi42MjUxMTcwMDE5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yMDc3LDcgKzIwNzcsMTMg QEAgRGlzY2FyZFN0bXQ6CiAJCQkJCW4tPnRhcmdldCA9IERJU0NBUkRfU0VRVUVOQ0VTOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBESVNDQVJEIFZBUklBQkxFUworCQkJCXsK KwkJCQkJRGlzY2FyZFN0bXQgKm4gPSBtYWtlTm9kZShEaXNjYXJkU3RtdCk7CiAKKwkJCQkJbi0+ dGFyZ2V0ID0gRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CiAJCTsKIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDY5ZDJmN2UxY2VkLi45NzA0NTE0NjBjMiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMKQEAgLTI5NjIsNiArMjk2Miw5IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAq cGFyc2V0cmVlKQogCQkJCWNhc2UgRElTQ0FSRF9TRVFVRU5DRVM6CiAJCQkJCXRhZyA9IENNRFRB R19ESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBESVNDQVJEX1ZBUklB QkxFUzoKKwkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTOworCQkJCQlicmVhazsK IAkJCQlkZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYwppbmRleCAxNzJhMzdlZDc2MC4uZGViOTU2M2E1OTggMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKQEAgLTQwODMsNyArNDA4Myw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIp KQotCQlDT01QTEVURV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsK KwkJQ09NUExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZB UklBQkxFUyIpOwogCiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggYjNmMDNjNjU4MjcuLjQ0M2FmYmFm ZDRhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgK KysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yOSw0ICsy OSw2IEBAIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKE9pZCB2 YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0CiBleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3Rt dChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1z LAogCQkJCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAq cWMpOwogCitleHRlcm4gdm9pZCBSZXNldFNlc3Npb25WYXJpYWJsZXModm9pZCk7CisKICNlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDRlYWY5YzcwOTQ4Li5hM2FjZDJkODY2NCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzk4OCw2ICszOTg4LDcgQEAgdHlwZWRlZiBlbnVtIERp c2NhcmRNb2RlCiAJRElTQ0FSRF9QTEFOUywKIAlESVNDQVJEX1NFUVVFTkNFUywKIAlESVNDQVJE X1RFTVAsCisJRElTQ0FSRF9WQVJJQUJMRVMsCiB9IERpc2NhcmRNb2RlOwogCiB0eXBlZGVmIHN0 cnVjdCBEaXNjYXJkU3RtdApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0 LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBhOTIxYWYyNDg2Zi4uYmQ3 OTY0YWVhNmUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBi L3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgUEdfQ01E VEFHKENNRFRBR19ESVNDQVJEX0FMTCwgIkRJU0NBUkQgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxz ZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9QTEFOUywgIkRJU0NBUkQgUExBTlMiLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1NFUVVFTkNFUywgIkRJ U0NBUkQgU0VRVUVOQ0VTIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf RElTQ0FSRF9URU1QLCAiRElTQ0FSRCBURU1QIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKK1BHX0NN RFRBRyhDTURUQUdfRElTQ0FSRF9WQVJJQUJMRVMsICJESVNDQVJEIFZBUklBQkxFUyIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RPLCAiRE8iLCBmYWxzZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FDQ0VTU19NRVRIT0QsICJEUk9QIEFDQ0VT UyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUdH UkVHQVRFLCAiRFJPUCBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGEyY2IzNWUz ZDdkLi4yYzQ3NjBmYjY4NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTk4MSwzICs5ODEsNjYgQEAgRFJPUCBWQVJJQUJMRSA6IkRC TkFNRSIuOiJEQk5BTUUiLmI7CiBEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJE Qk5BTUUiOwogRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOwogUkVTRVQgc2VhcmNoX3BhdGg7CistLSBt ZW1vcnkgY2xlYW5pbmcgYnkgRElTQ0FSRCBjb21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyB2YXJjaGFyOworTEVUIHZhcjEgPSAnSGVsbG8nOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCist LS0tLS0tCisgSGVsbG8KKygxIHJvdykKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKyB2 YXIxIAorLS0tLS0tCisgCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorIEFIT0oKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7 CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKy0tIGluaXRpYWwgdGVzdCBvZiBkZWJ1ZyBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBm dW5jdGlvbgorLS0gc2hvdWxkIGJlIHplcm8gbm93CitESVNDQVJEIFZBUklBQkxFUzsKK1NFTEVD VCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKKy0t IHNob3VsZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0xFVCB2YXIx ID0gJ0FIT0onOworU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8 IGNhbl9zZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAg ICAgICAgfCB0CisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIHpl cm8gYWdhaW4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Cisg Y291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDY0NDU0NzlkMjJkLi45NzliOTAyOWU1OCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtNjk4LDMgKzY5 OCwzOSBAQCBEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOwogRFJP UCBTQ0hFTUEgOiJEQk5BTUUiOwogCiBSRVNFVCBzZWFyY2hfcGF0aDsKKworLS0gbWVtb3J5IGNs ZWFuaW5nIGJ5IERJU0NBUkQgY29tbWFuZAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hh cjsKK0xFVCB2YXIxID0gJ0hlbGxvJzsKK1NFTEVDVCB2YXIxOworCitESVNDQVJEIEFMTDsKK1NF TEVDVCB2YXIxOworCitMRVQgdmFyMSA9ICdBSE9KJzsKK1NFTEVDVCB2YXIxOworCitESVNDQVJE IFZBUklBQkxFUzsKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGlu aXRpYWwgdGVzdCBvZiBkZWJ1ZyBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmdW5jdGlvbgorLS0gc2hv dWxkIGJlIHplcm8gbm93CitESVNDQVJEIFZBUklBQkxFUzsKKworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFy Y2hhcjsKKworLS0gc2hvdWxkIGJlIHplcm8gc3RpbGwKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0xFVCB2YXIxID0gJ0FIT0onOworCitTRUxFQ1QgbmFt ZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFi bGVzKCk7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgemVybyBhZ2Fpbgor U0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKLS0gCjIuNDcuMAoK --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20241106-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpd317 RnJvbSA2OTJjZmJkYzYzNDZiZDU4NWZkYTExZmJhZDU1MjgxYThmMTVlZjkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIwXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDU0 OGQ5ODM1YzBkLi4xM2FiOTU3NWZhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtNTY5LDMgKzU2OSw5NSBAQCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpw c3RhdGUsCiAKIAlQb3BBY3RpdmVTbmFwc2hvdCgpOwogfQorCisvKgorICogcGdfc2Vzc2lvbl92 YXJpYWJsZXMgLSBkZXNpZ25lZCBmb3IgdGVzdGluZworICoKKyAqIFRoaXMgaXMgYSBmdW5jdGlv biBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQgcmV0dXJucyB0aGUKKyAq IGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXMtaXMsIGFuZCBjYW4gdGhlcmVmb3JlIGRp c3BsYXkgZGF0YSBhYm91dAorICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIGRyb3BwZWQs IGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVk IGludmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1bQorcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdf RlVOQ1RJT05fQVJHUykKK3sKKyNkZWZpbmUgTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFMg OAorCisJSW5pdE1hdGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKHNlc3Npb252YXJz KQorCXsKKwkJUmV0dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZv LT5yZXN1bHRpbmZvOworCQlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCQlTVmFyaWFibGUJc3Zh cjsKKworCQloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCQl3aGlsZSAo KHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJ CXsKKwkJCURhdHVtCQl2YWx1ZXNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJ Ym9vbAkJbnVsbHNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJSGVhcFR1cGxl CXRwOworCQkJYm9vbAkJdmFyX2lzX3ZhbGlkID0gZmFsc2U7CisKKwkJCW1lbXNldCh2YWx1ZXMs IDAsIHNpemVvZih2YWx1ZXMpKTsKKwkJCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7 CisKKwkJCXZhbHVlc1swXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpOworCQkJdmFs dWVzWzNdID0gT2JqZWN0SWRHZXREYXR1bShzdmFyLT50eXBpZCk7CisKKwkJCS8qCisJCQkgKiBJ dCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhl CisJCQkgKiBjYXRhbG9nLCBidXQgbm90IHlldCBwdXJnZWQgZnJvbSB0aGUgaGFzaCB0YWJsZS4K KwkJCSAqLworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0 RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCQkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJ eworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRT VFJVQ1QodHApOworCisJCQkJLyoKKwkJCQkgKiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRoYXQgYSB2 YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGFuZAorCQkJCSAqIHNvbWVvbmUgY3JlYXRlZCBhIG5l dyB2YXJpYWJsZSB3aXRoIHRoZSBzYW1lIG9iamVjdCBJRC4gIFVzZQorCQkJCSAqIHRoZSBjYXRh bG9nIGluZm9ybWF0aW9uIG9ubHkgaWYgdGhhdCBpcyBub3QgdGhlIGNhc2UuCisJCQkJICovCisJ CQkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbikKKwkJCQl7 CisJCQkJCXZhbHVlc1sxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oCisJCQkJCQkJCQkJCQkJZ2V0 X25hbWVzcGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSkpOworCisJCQkJCXZhbHVlc1sy XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7CisJCQkJ CXZhbHVlc1s0XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oZm9ybWF0X3R5cGVfYmUoc3Zhci0+dHlw aWQpKTsKKwkJCQkJdmFsdWVzWzVdID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKworCQkJCQl2YWx1 ZXNbNl0gPSBCb29sR2V0RGF0dW0oCisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFi bGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwg QUNMX1NFTEVDVCkgPT0gQUNMQ0hFQ0tfT0spOworCisJCQkJCXZhbHVlc1s3XSA9IEJvb2xHZXRE YXR1bSgKKwkJCQkJCQkJCQkJIG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHN2 YXItPnZhcmlkLAorCQkJCQkJCQkJCQkJCQkJIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKSA9PSBB Q0xDSEVDS19PSyk7CisKKwkJCQkJdmFyX2lzX3ZhbGlkID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQlS ZWxlYXNlU3lzQ2FjaGUodHApOworCQkJfQorCisJCQkvKiBpZiB0aGVyZSBpcyBubyBtYXRjaGlu ZyBjYXRhbG9nIGVudHJ5LCByZXR1cm4gbnVsbCB2YWx1ZXMgKi8KKwkJCWlmICghdmFyX2lzX3Zh bGlkKQorCQkJeworCQkJCW51bGxzWzFdID0gdHJ1ZTsKKwkJCQludWxsc1syXSA9IHRydWU7CisJ CQkJbnVsbHNbNF0gPSB0cnVlOworCQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bSh0cnVlKTsK KwkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVsbHNbN10gPSB0cnVlOworCQkJfQorCisJCQl0 dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLCB2 YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCXJldHVybiAoRGF0dW0pIDA7Cit9CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAppbmRleCBkNjc2ZWU4M2U0MS4uODlhMzcyYzY1Y2EgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdApAQCAtMTIzOTUsNCArMTIzOTUsMTIgQEAKICAgcHJvYXJndHlwZXMgPT4g J2ludDInLAogICBwcm9zcmMgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCiAKKyMgU2Vz c2lvbiB2YXJpYWJsZXMgc3VwcG9ydAoreyBvaWQgPT4gJzg0ODgnLCBkZXNjciA9PiAnbGlzdCBv ZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzJywKKyAgcHJvbmFtZSA9PiAncGdfc2Vzc2lvbl92YXJp YWJsZXMnLCBwcm9yb3dzID0+ICcxMDAwJywgcHJvcmV0c2V0ID0+ICd0JywKKyAgcHJvdm9sYXRp bGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCisg IHByb2FyZ3R5cGVzID0+ICcnLCBwcm9hbGxhcmd0eXBlcyA9PiAne29pZCx0ZXh0LHRleHQsb2lk LHRleHQsYm9vbCxib29sLGJvb2x9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxv LG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3t2YXJpZCxzY2hlbWEsbmFtZSx0eXBpZCx0eXBuYW1l LHJlbW92ZWQsY2FuX3NlbGVjdCxjYW5fdXBkYXRlfScsCisgIHByb3NyYyA9PiAncGdfc2Vzc2lv bl92YXJpYWJsZXMnIH0sCiBdCi0tIAoyLjQ3LjAKCg== --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20241106-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpd818 RnJvbSBkZjBjNWNiMGU5N2ZmYzlmMGE4ODkwYWRmMTllYWMzMmYyN2RmMTdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjBdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTMgKwogZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMyICsKIGRvYy9zcmMv c2dtbC9wYXJhbGxlbC5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBkb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKwogZG9jL3NyYy9zZ21s L3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9k cm9wX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9yZWYvbGV0 LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKwogZG9jL3NyYy9zZ21sL3JlZmVyZW5j ZS5zZ21sICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL25hbWVz cGFjZS5jICAgICAgICAgICAgICAgfCAzMTUgKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFr ZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29u LmJ1aWxkICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJl LmMgICAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jICAgICAgIHwgNTcxICsrKysrKysrKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9N YWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0V4cHIuYyAgICAgICAgICAgICAgIHwgIDM2ICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNN YWluLmMgICAgICAgICAgICAgICB8ICA1NyArKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24u YnVpbGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJs ZVJlY2VpdmVyLmMgICAgICB8IDIwMSArKysrCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyAgICAgICAgICAgICAgICAgfCAgMTAgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJl ZnMuYyAgICAgICAgICB8IDEzNSArKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBq b2ludHJlZS5jICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2Vz LmMgICAgICAgICAgfCAgMzUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAg ICAgICAgICAgICB8IDI3MSArKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAg ICAgICAgICAgICAgIHwgIDQ5ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAg ICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAg ICAgICAgICAgIHwgMjIwICsrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAg ICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgICAgICAgICAgICAg ICAgICAgICAgIHwgICA3ICsKIHNyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMgICAgICAgICAgICAg ICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAg ICAgICAgfCAgMTYgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgIDQ2ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jICAgICAgICAg ICB8ICA0MSArLQogc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgICAgICAgICAgICAgICAg IHwgIDEwICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAg fCAgMTIgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggICAgICAgICAgICAgICB8 ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAg IDggKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgIDMy ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmggICAgICAgICAgICAgICB8ICAgNCAr CiBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oICAgICAgfCAgMjIgKwog c3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDE2ICsKIHNy Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNyArCiBzcmMv aW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2lu Y2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1 ZGUvb3B0aW1pemVyL3BsYW5tYWluLmggICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdGNv cC9jbWR0YWdsaXN0LmggICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3Rjb3Av ZGVzdC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDkyNSArKysrKysrKysrKysrKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDYzOSArKysrKysrKysr KysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgNSAr CiA1OCBmaWxlcyBjaGFuZ2VkLCAzOTE2IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIu aAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKaW5kZXggMmU4OTI2MDQyODguLjI2Mzk4N2RhY2NhIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbApAQCAtOTc4OCw2ICs5Nzg4LDE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZs dDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAg ICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNyZWF0ZV9sc248L3N0cnVjdGZpZWxkPiA8dHlw ZT5YTG9nUmVjUHRyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg TFNOIG9mIHRoZSB0cmFuc2FjdGlvbiB3aGVyZSB0aGUgdmFyaWFibGUgd2FzIGNyZWF0ZWQuCisg ICAgICAgPHN0cnVjdGZpZWxkPnZhcmNyZWF0ZV9sc248L3N0cnVjdGZpZWxkPiBhbmQKKyAgICAg ICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gdG9nZXRoZXIgZm9ybSB0aGUgYWxsLXRp bWUgdW5pcXVlCisgICAgICAgaWRlbnRpZmllciAoPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0Zmll bGQ+IGFsb25lIGlzIG5vdCBlbm91Z2gsIHNpbmNlCisgICAgICAgb2JqZWN0IGlkZW50aWZpZXJz IGNhbiBnZXQgcmV1c2VkKS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwog ICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+dmFybmFtZTwv c3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv ZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggOTUwMDc5MDczZDkuLmQzYmYw ZjYwZmNlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2RkbC5zZ21sCkBAIC01MjgzLDYgKzUyODMsMzggQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQo KikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEn OwogICAgIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLgogICAgPC9wYXJhPgogCisgICA8cGFy YT4KKyAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIHNldCB3aXRoIHRoZSBT UUwgc3RhdGVtZW50CisgICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPi4gIFRoZSB2YWx1ZSBvZiBh IHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHJldHJpZXZlZAorICAgIHdpdGggdGhlIFNRTCBzdGF0 ZW1lbnQgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPi4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7CitMRVQgdmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVD VCB2YXIxOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgIG9yCisKKzxwcm9ncmFtbGlzdGluZz4K K0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuY3VycmVudF91c2VyX2lkIEFTIGludGVnZXI7CitHUkFO VCBSRUFEIE9OIFZBUklBQkxFIHB1YmxpYy5jdXJyZW50X3VzZXJfaWQgVE8gUFVCTElDOworTEVU IGN1cnJlbnRfdXNlcl9pZCA9IChTRUxFQ1QgaWQgRlJPTSB1c2VycyBXSEVSRSB1c2VuYW1lID0g c2Vzc2lvbl91c2VyKTsKK1NFTEVDVCBjdXJyZW50X3VzZXJfaWQ7Cis8L3Byb2dyYW1saXN0aW5n PgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZh cmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uIFJldHJpZXZpbmcKKyAgICBh IHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBhIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1bmxl c3MgaXRzIHZhbHVlIGhhcworICAgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBj dXJyZW50IHNlc3Npb24gdXNpbmcgdGhlCisgICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21t YW5kLiAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCB0cmFuc2FjdGlvbmFsOgorICAgIGFueSBj aGFuZ2VzIG1hZGUgdG8gdGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRyYW5z YWN0aW9uIHdvbid0CisgICAgYmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQg YmFjayAoanVzdCBsaWtlIHZhcmlhYmxlcyBpbgorICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4g IFNlc3Npb24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgYXJlIHBlcnNpc3RlbnQsIGJ1dAorICAgIHRo ZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlIGNv bnRlbnQgb2YKKyAgICB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgIDwvcGFyYT4KKwogICAgPHBhcmE+ CiAgICAgSW5zaWRlIGEgcXVlcnkgb3IgYW4gZXhwcmVzc2lvbiwgYSBzZXNzaW9uIHZhcmlhYmxl IGNhbiBiZQogICAgIDxxdW90ZT5zaGFkb3dlZDwvcXVvdGU+IGJ5IGEgY29sdW1uIHdpdGggdGhl IHNhbWUgbmFtZS4gIFNpbWlsYXJseSwgdGhlCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFy YWxsZWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCmluZGV4IDFjZTlhYmY4NmY1 Li42ODNkZWRlNmFkYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKQEAgLTUxNSw2ICs1MTUsMTIgQEAgRVhQTEFJ TiBTRUxFQ1QgKiBGUk9NIHBnYmVuY2hfYWNjb3VudHMgV0hFUkUgZmlsbGVyIExJS0UgJyV4JSc7 CiAgICAgICAgIFBsYW4gbm9kZXMgdGhhdCByZWZlcmVuY2UgYSBjb3JyZWxhdGVkIDxsaXRlcmFs PlN1YlBsYW48L2xpdGVyYWw+LgogICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CisKKyAg ICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICAgUGxhbiBub2RlcyB0aGF0IHVzZSBh IHNlc3Npb24gdmFyaWFibGUuCisgICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KICAgPC9p dGVtaXplZGxpc3Q+CiAKICA8c2VjdDIgaWQ9InBhcmFsbGVsLWxhYmVsaW5nIj4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21s CmluZGV4IDc4ZTQ5ODMxMzliLi5iZmJmZjlhYjc0ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3BscGdzcWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCkBAIC02MDM0LDYg KzYwMzQsMjAgQEAgJCQgTEFOR1VBR0UgcGxwZ3NxbCBTVFJJQ1QgSU1NVVRBQkxFOwogPC9wcm9n cmFtbGlzdGluZz4KICAgICA8L3BhcmE+CiAgICA8L3NlY3QzPgorCisgICA8c2VjdDMgaWQ9InBs cGdzcWwtcG9ydGluZy1wYWNrYWdlLXZhcmlhYmxlcyI+CisgICAgPHRpdGxlPjxjb21tYW5kPlBh Y2thZ2VzIGFuZCBwYWNrYWdlIHZhcmlhYmxlczwvY29tbWFuZD48L3RpdGxlPgorCisgICAgPHBh cmE+CisgICAgIFRoZSA8YXBwbGljYXRpb24+UEwvcGdTUUw8L2FwcGxpY2F0aW9uPiBsYW5ndWFn ZSBoYXMgbm8gcGFja2FnZXMsIGFuZAorICAgICB0aGVyZWZvcmUgbm8gcGFja2FnZSB2YXJpYWJs ZXMgb3IgcGFja2FnZSBjb25zdGFudHMuCisgICAgIFlvdSBjYW4gY29uc2lkZXIgdHJhbnNsYXRp bmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNjaGVtYSBpbgorICAgICA8cHJvZHVjdG5hbWU+ UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFja2FnZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVy ZXMKKyAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIGluIHRo YXQgc2NoZW1hLCBhbmQgcGFja2FnZQorICAgICB2YXJpYWJsZXMgY291bGQgYmUgdHJhbnNsYXRl ZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KKyAgICAgKHNlZSA8eHJlZiBs aW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4pLgorICAgIDwvcGFyYT4KKyAgIDwvc2Vj dDM+CiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlkPSJwbHBnc3FsLXBvcnRpbmctYXBwZW5kaXgi PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IDJmNjdkZTNlMjFiLi5jYzNiZDVhYjU0MCAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWxsZmlsZXMuc2dtbApAQCAtMTU4LDYgKzE1OCw3IEBAIENvbXBsZXRlIGxpc3Qgb2Yg dXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgZ3Jh bnQgICAgICAgICAgICAgIFNZU1RFTSAiZ3JhbnQuc2dtbCI+CiA8IUVOVElUWSBpbXBvcnRGb3Jl aWduU2NoZW1hIFNZU1RFTSAiaW1wb3J0X2ZvcmVpZ25fc2NoZW1hLnNnbWwiPgogPCFFTlRJVFkg aW5zZXJ0ICAgICAgICAgICAgIFNZU1RFTSAiaW5zZXJ0LnNnbWwiPgorPCFFTlRJVFkgbGV0ICAg ICAgICAgICAgICAgIFNZU1RFTSAibGV0LnNnbWwiPgogPCFFTlRJVFkgbGlzdGVuICAgICAgICAg ICAgIFNZU1RFTSAibGlzdGVuLnNnbWwiPgogPCFFTlRJVFkgbG9hZCAgICAgICAgICAgICAgIFNZ U1RFTSAibG9hZC5zZ21sIj4KIDwhRU5USVRZIGxvY2sgICAgICAgICAgICAgICBTWVNURU0gImxv Y2suc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKaW5kZXggZDg3NTcwZTdk OGIuLmQyMDM2MzUxZTUzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Zhcmlh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0x NzMsNiArMTczLDcgQEAgQUxURVIgVkFSSUFCTEUgYm9vIFNFVCBTQ0hFTUEgcHJpdmF0ZTsKICAg PHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIDwvcmVmZW50 cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBlYzE2NWFiOTZmYy4u MDViZjY3ZTM0MTEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxl LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMTQ1 LDYgKzE0NSw3IEBAIFNFTEVDVCB2YXIxOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgog ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgog ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+Cisg ICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVs aXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92 YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKaW5kZXgg NWJkYjM1NjBmMGIuLjY3OTg4YjVmY2Q4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ry b3BfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dt bApAQCAtMTExLDYgKzExMSw3IEBAIERST1AgVkFSSUFCTEUgdmFyMTsKICAgPHNpbXBsZWxpc3Qg dHlwZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFi bGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlh YmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1sZXQiLz48L21l bWJlcj4KICAgPC9zaW1wbGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvbGV0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjY0MDU3NmJlZQotLS0gL2Rldi9udWxs CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKQEAgLTAsMCArMSw5NiBAQAorPCEtLQor ZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4K KworPHJlZmVudHJ5IGlkPSJzcWwtbGV0Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1sZXQiPgor ICA8cHJpbWFyeT5MRVQ8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgor ICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PmNoYW5n aW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5 dGl0bGU+TEVUPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAg PHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwv cmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5MRVQ8L3JlZm5hbWU+CisgIDxy ZWZwdXJwb3NlPmNoYW5nZSBhIHNlc3Npb24gdmFyaWFibGUncyB2YWx1ZTwvcmVmcHVycG9zZT4K KyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitMRVQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3JlcGxhY2VhYmxl PiA9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zcWxfZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+ TEVUPC9jb21tYW5kPiBjb21tYW5kIGFzc2lnbnMgYSB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIHNl c3Npb24KKyAgIHZhcmlhYmxlLgorICA8L3BhcmE+CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAg IDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+c2Vzc2lvbl92YXJpYWJsZTwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1l IG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRl cmFsPnNxbF9leHByZXNzaW9uPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgQW4gYXJiaXRyYXJ5IFNRTCBleHByZXNzaW9uLiAgVGhlIHJlc3VsdCBt dXN0IGJlIG9mIGEgZGF0YSB0eXBlIHRoYXQgY2FuCisgICAgICBiZSBjYXN0IHRvIHRoZSB0eXBl IG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGluIGFuIGFzc2lnbm1lbnQuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+ CisKKyAgPHBhcmE+CisgICBFeGFtcGxlOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklB QkxFIG15dmFyIEFTIGludGVnZXI7CitMRVQgbXl2YXIgPSAxMDsKK0xFVCBteXZhciA9IChTRUxF Q1Qgc3VtKHZhbCkgRlJPTSB0YWIpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGlzIGEgPHByb2R1Y3Ru YW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPgorICAgZXh0ZW5zaW9uLgorICA8L3BhcmE+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKwor ICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0i c3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0 MT4KKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggMjU1NzhmMzk0NmMuLjEzZTRhZGM1 ZGYzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC0xODYsNiArMTg2LDcgQEAKICAgICZncmFudDsKICAg ICZpbXBvcnRGb3JlaWduU2NoZW1hOwogICAgJmluc2VydDsKKyAgICZsZXQ7CiAgICAmbGlzdGVu OwogICAgJmxvYWQ7CiAgICAmbG9jazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv ZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggYzlk Njg2NjY1ZGUuLjE0ODcxOWU0OTBlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2Rl cGVuZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtMTg2 NCw2ICsxODY0LDExIEBAIGZpbmRfZXhwcl9yZWZlcmVuY2VzX3dhbGtlcihOb2RlICpub2RlLAog CXsKIAkJUGFyYW0JICAgKnBhcmFtID0gKFBhcmFtICopIG5vZGU7CiAKKwkJLyogYSB2YXJpYWJs ZSBwYXJhbWV0ZXIgZGVwZW5kcyBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGFy YW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJCWFkZF9vYmplY3RfYWRkcmVzcyhW YXJpYWJsZVJlbGF0aW9uSWQsIHBhcmFtLT5wYXJhbXZhcmlkLCAwLAorCQkJCQkJCSAgIGNvbnRl eHQtPmFkZHJzKTsKKwogCQkvKiBBIHBhcmFtZXRlciBtdXN0IGRlcGVuZCBvbiB0aGUgcGFyYW1l dGVyJ3MgZGF0YXR5cGUgKi8KIAkJYWRkX29iamVjdF9hZGRyZXNzKFR5cGVSZWxhdGlvbklkLCBw YXJhbS0+cGFyYW10eXBlLCAwLAogCQkJCQkJICAgY29udGV4dC0+YWRkcnMpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv bmFtZXNwYWNlLmMKaW5kZXggODZlMjI1ODY1N2QuLjQ4NzM1M2VmMmViIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv bmFtZXNwYWNlLmMKQEAgLTM0MTIsNiArMzQxMiwzMjEgQEAgTG9va3VwVmFyaWFibGUoY29uc3Qg Y2hhciAqbnNwbmFtZSwKIAlyZXR1cm4gdmFyb2lkOwogfQogCisvKgorICogVGhlIGlucHV0IGxp c3QgY29udGFpbnMgbmFtZXMgd2l0aCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucyB1c2VkIGFzIHRo ZSBsZWZ0CisgKiBwYXJ0IG9mIExFVCBzdGF0ZW1lbnQuIFRoZSBmb2xsb3dpbmcgcm91dGluZSBy ZXR1cm5zIGEgbmV3IGxpc3Qgd2l0aCBvbmx5CisgKiBpbml0aWFsIHN0cmluZ3MgKG5hbWVzKSAt IHdpdGhvdXQgaW5kaXJlY3Rpb24gZXhwcmVzc2lvbnMuCisgKi8KK0xpc3QgKgorTmFtZXNGcm9t TGlzdChMaXN0ICpuYW1lcykKK3sKKwlMaXN0Q2VsbCAgICpsOworCUxpc3QJICAgKnJlc3VsdCA9 IE5JTDsKKworCWZvcmVhY2gobCwgbmFtZXMpCisJeworCQlOb2RlCSAgICpuID0gbGZpcnN0KGwp OworCisJCWlmIChJc0EobiwgU3RyaW5nKSkKKwkJeworCQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1 bHQsIG4pOworCQl9CisJCWVsc2UKKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9 CisKKy8qIC0tLS0tCisgKiBJZGVudGlmeVZhcmlhYmxlIC0gdHJ5IHRvIGZpbmQgYSB2YXJpYWJs ZSBmcm9tIGEgbGlzdCBvZiBpZGVudGlmaWVycworICoKKyAqIFJldHVybnMgdGhlIE9JRCBvZiB0 aGUgdmFyaWFibGUgZm91bmQsIG9yIEludmFsaWRPaWQuCisgKgorICogIm5hbWVzIiBpcyBhIGxp c3Qgb2YgdXAgdG8gZm91ciBpZGVudGlmaWVyczsgcG9zc2libGUgbWVhbmluZ3MgYXJlOgorICog LSB2YXJpYWJsZSAgKHNlYXJjaGVkIG9uIHRoZSBzZWFyY2hfcGF0aCkKKyAqIC0gc2NoZW1hLnZh cmlhYmxlCisgKiAtIHZhcmlhYmxlLmF0dHJpYnV0ZSAgKHNlYXJjaGVkIG9uIHRoZSBzZWFyY2hf cGF0aCkKKyAqIC0gc2NoZW1hLnZhcmlhYmxlLmF0dHJpYnV0ZQorICogLSBkYXRhYmFzZS5zY2hl bWEudmFyaWFibGUKKyAqIC0gZGF0YWJhc2Uuc2NoZW1hLnZhcmlhYmxlLmF0dHJpYnV0ZQorICoK KyAqIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgd2F5IHRvIGlkZW50aWZ5IGEgdmFyaWFibGUs ICJub3RfdW5pcXVlIiB3aWxsIGJlCisgKiBzZXQgdG8gdHJ1ZS4KKyAqCisgKiBVbmxlc3MgIm5v ZXJyb3IiIGlzIHRydWUsIGFuIGVycm9yIGlzIHJhaXNlZCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFu IGZvdXIKKyAqICBpZGVudGlmaWVycyBpbiB0aGUgbGlzdCwgb3IgaWYgdGhlIG5hbWVkIGRhdGFi YXNlIGlzIG5vdCB0aGUgY3VycmVudCBvbmUuCisgKiBUaGlzIGlzIHVzZWZ1bCBpZiB3ZSB3YW50 IHRvIGlkZW50aWZ5IGEgc2hhZG93ZWQgdmFyaWFibGUuCisgKgorICogSWYgYW4gYXR0cmlidXRl IGlzIGlkZW50aWZpZWQsIGl0IGlzIHN0b3JlZCBpbiAiYXR0cm5hbWUiLCBvdGhlcndpc2UgdGhl CisgKiBwYXJhbWV0ZXIgaXMgc2V0IHRvIE5VTEwuCisgKgorICogVGhlIGlkZW50aWZpZWQgc2Vz c2lvbiB2YXJpYWJsZSB3aWxsIGJlIGxvY2tlZCB3aXRoIGFuIEFjY2Vzc1NoYXJlTG9jay4KKyAq IC0tLS0tCisgKi8KK09pZAorSWRlbnRpZnlWYXJpYWJsZShMaXN0ICpuYW1lcywgY2hhciAqKmF0 dHJuYW1lLCBib29sICpub3RfdW5pcXVlLCBib29sIG5vZXJyb3IpCit7CisJT2lkCQkJdmFyaWQg PSBJbnZhbGlkT2lkOworCU9pZAkJCW9sZF92YXJpZCA9IEludmFsaWRPaWQ7CisJdWludDY0CQlp bnZhbF9jb3VudDsKKwlib29sCQlyZXRyeSA9IGZhbHNlOworCisJLyoKKwkgKiBEREwgb3BlcmF0 aW9ucyBjYW4gY2hhbmdlIHRoZSByZXN1bHRzIG9mIGEgbmFtZSBsb29rdXAuICBTaW5jZSBhbGwg c3VjaAorCSAqIG9wZXJhdGlvbnMgd2lsbCBnZW5lcmF0ZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMs IHdlIGtlZXAgdHJhY2sgb2YKKwkgKiB3aGV0aGVyIGFueSBzdWNoIG1lc3NhZ2VzIHNob3cgdXAg d2hpbGUgd2UncmUgcGVyZm9ybWluZyB0aGUgb3BlcmF0aW9uLAorCSAqIGFuZCByZXRyeSB1bnRp bCBlaXRoZXIgKDEpIG5vIG1vcmUgaW52YWxpZGF0aW9uIG1lc3NhZ2VzIHNob3cgdXAgb3IgKDIp CisJICogdGhlIGFuc3dlciBkb2Vzbid0IGNoYW5nZS4KKwkgKi8KKwlmb3IgKDs7KQorCXsKKwkJ Tm9kZQkgICAqZmllbGQxID0gTlVMTDsKKwkJTm9kZQkgICAqZmllbGQyID0gTlVMTDsKKwkJTm9k ZQkgICAqZmllbGQzID0gTlVMTDsKKwkJTm9kZQkgICAqZmllbGQ0ID0gTlVMTDsKKwkJY2hhcgkg ICAqYSA9IE5VTEw7CisJCWNoYXIJICAgKmIgPSBOVUxMOworCQljaGFyCSAgICpjID0gTlVMTDsK KwkJY2hhcgkgICAqZCA9IE5VTEw7CisJCU9pZAkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBJbnZh bGlkT2lkOworCQlPaWQJCQl2YXJvaWRfd2l0aF9hdHRyID0gSW52YWxpZE9pZDsKKworCQkqbm90 X3VuaXF1ZSA9IGZhbHNlOworCQkqYXR0cm5hbWUgPSBOVUxMOworCQl2YXJpZCA9IEludmFsaWRP aWQ7CisKKwkJaW52YWxfY291bnQgPSBTaGFyZWRJbnZhbGlkTWVzc2FnZUNvdW50ZXI7CisKKwkJ c3dpdGNoIChsaXN0X2xlbmd0aChuYW1lcykpCisJCXsKKwkJCWNhc2UgMToKKwkJCQlmaWVsZDEg PSBsaW5pdGlhbChuYW1lcyk7CisKKwkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisK KwkJCQl2YXJpZCA9IExvb2t1cFZhcmlhYmxlKE5VTEwsIHN0clZhbChmaWVsZDEpLCB0cnVlKTsK KwkJCQlicmVhazsKKworCQkJY2FzZSAyOgorCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsK KwkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKworCQkJCUFzc2VydChJc0EoZmllbGQxLCBT dHJpbmcpKTsKKwkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisKKwkJCQlpZiAoSXNBKGZpZWxkMiwg U3RyaW5nKSkKKwkJCQl7CisJCQkJCS8qIHdoZW4gYm90aCBmaWVsZHMgYXJlIG9mIHN0cmluZyB0 eXBlICovCisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKworCQkJCQkvKgorCQkJCQkgKiBhLmIg Y2FuIG1lYW4gInNjaGVtYSIuInZhcmlhYmxlIiBvciAidmFyaWFibGUiLiJmaWVsZCIuCisJCQkJ CSAqIENoZWNrIGJvdGggdmFyaWFudHMsIGFuZCByZXR1cm5zIEludmFsaWRPaWQgd2l0aAorCQkJ CQkgKiBub3RfdW5pcXVlIGZsYWcsIHdoZW4gYm90aCBpbnRlcnByZXRhdGlvbnMgYXJlCisJCQkJ CSAqIHBvc3NpYmxlLgorCQkJCQkgKi8KKwkJCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IExvb2t1 cFZhcmlhYmxlKGEsIGIsIHRydWUpOworCQkJCQl2YXJvaWRfd2l0aF9hdHRyID0gTG9va3VwVmFy aWFibGUoTlVMTCwgYSwgdHJ1ZSk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCS8qIHRo ZSBsYXN0IGZpZWxkIG9mIGxpc3QgY2FuIGJlIHN0YXIgdG9vICovCisJCQkJCUFzc2VydChJc0Eo ZmllbGQyLCBBX1N0YXIpKTsKKworCQkJCQkvKgorCQkJCQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBm aWVsZDEgc2hvdWxkIGJlIHZhcmlhYmxlIG5hbWUuIEJ1dAorCQkJCQkgKiBkaXJlY3QgdW5ib3hp bmcgb2YgY29tcG9zaXRlIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdAorCQkJCQkgKiBzdXBwb3J0 ZWQgbm93LCBhbmQgdGhlbiB3ZSBkb24ndCBuZWVkIHRvIHRyeSBsb29rdXAKKwkJCQkJICogcmVs YXRlZCB2YXJpYWJsZS4KKwkJCQkJICoKKwkJCQkJICogVW5ib3hpbmcgaXMgc3VwcG9ydGVkIGJ5 IHN5bnRheCAodmFyKS4qCisJCQkJCSAqLworCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJCQl9 CisKKwkJCQlpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlk KHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCXsKKwkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJ CQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElz VmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikpCisJCQkJeworCQkJCQl2YXJpZCA9IHZhcm9pZF93 aXRob3V0X2F0dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhf YXR0cikpCisJCQkJeworCQkJCQkqYXR0cm5hbWUgPSBiOworCQkJCQl2YXJpZCA9IHZhcm9pZF93 aXRoX2F0dHI7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQljYXNlIDM6CisJCQkJeworCQkJCQli b29sCQlmaWVsZDFfaXNfY2F0YWxvZyA9IGZhbHNlOworCisJCQkJCWZpZWxkMSA9IGxpbml0aWFs KG5hbWVzKTsKKwkJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0 aGlyZChuYW1lcyk7CisKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlB c3NlcnQoSXNBKGZpZWxkMiwgU3RyaW5nKSk7CisKKwkJCQkJYSA9IHN0clZhbChmaWVsZDEpOwor CQkJCQliID0gc3RyVmFsKGZpZWxkMik7CisKKwkJCQkJaWYgKElzQShmaWVsZDMsIFN0cmluZykp CisJCQkJCXsKKwkJCQkJCWMgPSBzdHJWYWwoZmllbGQzKTsKKworCQkJCQkJLyoKKwkJCQkJCSAq IGEuYi5jIGNhbiBtZWFuIGNhdGFsb2cuc2NoZW1hLnZhcmlhYmxlIG9yCisJCQkJCQkgKiBzY2hl bWEudmFyaWFibGUuZmllbGQuCisJCQkJCQkgKgorCQkJCQkJICogQ2hlY2sgYm90aCB2YXJpYW50 cywgYW5kIHNldCBub3RfdW5pcXVlIGZsYWcsIHdoZW4KKwkJCQkJCSAqIGJvdGggaW50ZXJwcmV0 YXRpb25zIGFyZSBwb3NzaWJsZS4KKwkJCQkJCSAqCisJCQkJCQkgKiBXaGVuIHRoaXJkIG5vZGUg aXMgc3Rhciwgb25seSBwb3NzaWJsZQorCQkJCQkJICogaW50ZXJwcmV0YXRpb24gaXMgc2NoZW1h LnZhcmlhYmxlLiosIGJ1dCB0aGlzCisJCQkJCQkgKiBwYXR0ZXJuIGlzIG5vdCBzdXBwb3J0ZWQg bm93LgorCQkJCQkJICovCisJCQkJCQl2YXJvaWRfd2l0aF9hdHRyID0gTG9va3VwVmFyaWFibGUo YSwgYiwgdHJ1ZSk7CisKKwkJCQkJCS8qCisJCQkJCQkgKiBjaGVjayBwYXR0ZXJuIGNhdGFsb2cu c2NoZW1hLnZhcmlhYmxlIG9ubHkgd2hlbgorCQkJCQkJICogdGhlcmUgaXMgcG9zc2liaWxpdHkg dG8gc3VjY2Vzcy4KKwkJCQkJCSAqLworCQkJCQkJaWYgKHN0cmNtcChhLCBnZXRfZGF0YWJhc2Vf bmFtZShNeURhdGFiYXNlSWQpKSA9PSAwKQorCQkJCQkJeworCQkJCQkJCWZpZWxkMV9pc19jYXRh bG9nID0gdHJ1ZTsKKwkJCQkJCQl2YXJvaWRfd2l0aG91dF9hdHRyID0gTG9va3VwVmFyaWFibGUo YiwgYywgdHJ1ZSk7CisJCQkJCQl9CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQlB c3NlcnQoSXNBKGZpZWxkMywgQV9TdGFyKSk7CisJCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJ CQkJfQorCisJCQkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpICYmIE9pZElz VmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJCQkJCXsKKwkJCQkJCSpub3RfdW5pcXVlID0gdHJ1 ZTsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQkJfQorCQkJCQllbHNl IGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpKQorCQkJCQl7CisJCQkJCQl2YXJp ZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAoT2lkSXNWYWxp ZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQkJeworCQkJCQkJKmF0dHJuYW1lID0gYzsKKwkJCQkJ CXZhcmlkID0gdmFyb2lkX3dpdGhfYXR0cjsKKwkJCQkJfQorCisJCQkJCS8qCisJCQkJCSAqIFdo ZW4gd2UgZGlkbid0IGZpbmQgdmFyaWFibGUsIHdlIGNhbiAod2hlbiBpdCBpcworCQkJCQkgKiBh bGxvd2VkKSByYWlzZSBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2UgZXJyb3IuCisJCQkJCSAqLwor CQkJCQlpZiAoIU9pZElzVmFsaWQodmFyaWQpICYmICFub2Vycm9yICYmICFmaWVsZDFfaXNfY2F0 YWxvZykKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkJIGVycm1zZygiY3Jvc3MtZGF0YWJhc2UgcmVm ZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJCQkJCQkJTmFtZUxpc3RUb1N0 cmluZyhuYW1lcykpKSk7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQljYXNlIDQ6CisJCQkJewor CQkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJCWZpZWxkMiA9IGxzZWNvbmQobmFt ZXMpOworCQkJCQlmaWVsZDMgPSBsdGhpcmQobmFtZXMpOworCQkJCQlmaWVsZDQgPSBsZm91cnRo KG5hbWVzKTsKKworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisJCQkJCUFzc2Vy dChJc0EoZmllbGQyLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDMsIFN0cmluZykp OworCisJCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKwkJCQkJYiA9IHN0clZhbChmaWVsZDIpOwor CQkJCQljID0gc3RyVmFsKGZpZWxkMyk7CisKKwkJCQkJLyoKKwkJCQkJICogSW4gdGhpcyBjYXNl LCAiYSIgaXMgdXNlZCBhcyBjYXRhbG9nIG5hbWUgLSBjaGVjayBpdC4KKwkJCQkJICovCisJCQkJ CWlmIChzdHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSkgIT0gMCkKKwkJ CQkJeworCQkJCQkJaWYgKCFub2Vycm9yKQorCQkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJCQkgZXJy bXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICVzIiwK KwkJCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQkJCX0KKworCQkJCQlp ZiAoSXNBKGZpZWxkNCwgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJZCA9IHN0clZhbChmaWVsZDQp OworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNzZXJ0KElzQShmaWVsZDQsIEFf U3RhcikpOworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCX0KKworCQkJCQkqYXR0cm5h bWUgPSBkOworCQkJCQl2YXJpZCA9IExvb2t1cFZhcmlhYmxlKGIsIGMsIHRydWUpOworCQkJCX0K KwkJCQlicmVhazsKKworCQkJZGVmYXVsdDoKKwkJCQlpZiAoIW5vZXJyb3IpCisJCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJ CSBlcnJtc2coImltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMp OiAlcyIsCisJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCQlyZXR1cm4g SW52YWxpZE9pZDsKKwkJfQorCisJCS8qCisJCSAqIElmLCB1cG9uIHJldHJ5LCB3ZSBnZXQgYmFj ayB0aGUgc2FtZSBPSUQgd2UgZGlkIGxhc3QgdGltZSwgdGhlbiB0aGUKKwkJICogaW52YWxpZGF0 aW9uIG1lc3NhZ2VzIHdlIHByb2Nlc3NlZCBkaWQgbm90IGNoYW5nZSB0aGUgZmluYWwgYW5zd2Vy LgorCQkgKiBTbyB3ZSdyZSBkb25lLgorCQkgKgorCQkgKiBJZiB3ZSBnb3QgYSBkaWZmZXJlbnQg T0lELCB3ZSd2ZSBsb2NrZWQgdGhlIHZhcmlhYmxlIHRoYXQgdXNlZCB0bworCQkgKiBoYXZlIHRo aXMgbmFtZSByYXRoZXIgdGhhbiB0aGUgb25lIHRoYXQgZG9lcyBub3cuICBTbyByZWxlYXNlIHRo ZQorCQkgKiBsb2NrLgorCQkgKi8KKwkJaWYgKHJldHJ5KQorCQl7CisJCQlpZiAob2xkX3Zhcmlk ID09IHZhcmlkKQorCQkJCWJyZWFrOworCisJCQlpZiAoT2lkSXNWYWxpZChvbGRfdmFyaWQpKQor CQkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgb2xkX3ZhcmlkLCAw LCBBY2Nlc3NTaGFyZUxvY2spOworCQl9CisKKwkJLyoKKwkJICogTG9jayB0aGUgdmFyaWFibGUu ICBUaGlzIHdpbGwgYWxzbyBhY2NlcHQgYW55IHBlbmRpbmcgaW52YWxpZGF0aW9uCisJCSAqIG1l c3NhZ2VzLiAgSWYgd2UgZ290IGJhY2sgSW52YWxpZE9pZCwgaW5kaWNhdGluZyBub3QgZm91bmQs IHRoZW4KKwkJICogdGhlcmUncyBub3RoaW5nIHRvIGxvY2ssIGJ1dCB3ZSBhY2NlcHQgaW52YWxp ZGF0aW9uIG1lc3NhZ2VzCisJCSAqIGFueXdheSwgdG8gZmx1c2ggYW55IG5lZ2F0aXZlIGNhdGNh Y2hlIGVudHJpZXMgdGhhdCBtYXkgYmUKKwkJICogbGluZ2VyaW5nLgorCQkgKi8KKwkJaWYgKCFP aWRJc1ZhbGlkKHZhcmlkKSkKKwkJCUFjY2VwdEludmFsaWRhdGlvbk1lc3NhZ2VzKCk7CisJCWVs c2UgaWYgKE9pZElzVmFsaWQodmFyaWQpKQorCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxl UmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwkJaWYgKGludmFsX2Nv dW50ID09IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcikKKwkJCWJyZWFrOworCisJCXJldHJ5 ID0gdHJ1ZTsKKwkJb2xkX3ZhcmlkID0gdmFyaWQ7CisJCXZhcmlkID0gSW52YWxpZE9pZDsKKwl9 CisKKwlyZXR1cm4gdmFyaWQ7Cit9CisKIC8qCiAgKiBEZWNvbnN0cnVjdFF1YWxpZmllZE5hbWUK ICAqCQlHaXZlbiBhIHBvc3NpYmx5LXF1YWxpZmllZCBuYW1lIGV4cHJlc3NlZCBhcyBhIGxpc3Qg b2YgU3RyaW5nIG5vZGVzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IGUzYTg2MWM4 Y2JhLi5lZjg5NTk0YTI2OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMjYsNiAr MjYsNyBAQAogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMv YnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGls cy9wZ19sc24uaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCiBzdGF0aWMgT2JqZWN0 QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKQEAgLTEwMSw2ICsx MDIsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YXJpZCA9IEdl dE5ld09pZFdpdGhJbmRleChyZWwsIFZhcmlhYmxlT2lkSW5kZXhJZCwgQW51bV9wZ192YXJpYWJs ZV9vaWQpOwogCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfb2lkIC0gMV0gPSBPYmplY3RJZEdl dERhdHVtKHZhcmlkKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjcmVhdGVfbHNuIC0g MV0gPSBMU05HZXREYXR1bShHZXRYTG9nSW5zZXJ0UmVjUHRyKCkpOwogCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX3Zhcm5hbWUgLSAxXSA9IE5hbWVHZXREYXR1bSgmdmFybmFtZSk7CiAJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZh ck5hbWVzcGFjZSk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwZSAtIDFdID0gT2Jq ZWN0SWRHZXREYXR1bSh2YXJUeXBlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKaW5kZXggNDhmNzM0OGY5 MWMuLjFjZmFlY2E1MWVhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmls ZQorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQpAQCAtNTAsNiArNTAsNyBAQCBP QkpTID0gXAogCXNjaGVtYWNtZHMubyBcCiAJc2VjbGFiZWwubyBcCiAJc2VxdWVuY2UubyBcCisJ c2Vzc2lvbl92YXJpYWJsZS5vIFwKIAlzdGF0c2NtZHMubyBcCiAJc3Vic2NyaXB0aW9uY21kcy5v IFwKIAl0YWJsZWNtZHMubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNv bi5idWlsZCBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCmluZGV4IDZkZDAwYTRh YmRlLi5jYTYyMWJlNWVjYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24u YnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKQEAgLTM4LDYgKzM4 LDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAnc2NoZW1hY21kcy5jJywKICAgJ3Nl Y2xhYmVsLmMnLAogICAnc2VxdWVuY2UuYycsCisgICdzZXNzaW9uX3ZhcmlhYmxlLmMnLAogICAn c3RhdHNjbWRzLmMnLAogICAnc3Vic2NyaXB0aW9uY21kcy5jJywKICAgJ3RhYmxlY21kcy5jJywK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3ByZXBhcmUuYwppbmRleCBhOTNmOTcwYTI5Mi4uNDU1YTAzY2NlNjMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9wcmVwYXJlLmMKQEAgLTMzOCw2ICszMzgsMTQgQEAgRXZhbHVhdGVQYXJhbXMoUGFy c2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlZFN0YXRlbWVudCAqcHN0bXQsIExpc3QgKnBhcmFtcywK IAkJaSsrOwogCX0KIAorCS8qCisJICogVGhlIGFyZ3VtZW50cyBvZiBFWEVDVVRFIGFyZSBldmFs dWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgorCSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlzIG1v ZGUgZG9lc24ndCBzdXBwb3J0IHNlc3Npb24gdmFyaWFibGVzIHlldC4KKwkgKiBJdCB3aWxsIGJl IGVuYWJsZWQgbGF0ZXIuCisJICovCisJaWYgKHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVz KQorCQllbG9nKEVSUk9SLCAic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBh cmd1bWVudCIpOworCiAJLyogUHJlcGFyZSB0aGUgZXhwcmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAq LwogCWV4cHJzdGF0ZXMgPSBFeGVjUHJlcGFyZUV4cHJMaXN0KHBhcmFtcywgZXN0YXRlKTsKIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi41NDhkOTgzNWMwZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMCwwICsxLDU3MSBAQAorLyot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lvbl92YXJpYWJsZS5jCisgKgkgIHNlc3Npb24g dmFyaWFibGUgY3JlYXRpb24vbWFuaXB1bGF0aW9uIGNvbW1hbmRzCisgKgorICogUG9ydGlvbnMg Q29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZl cnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Zh cmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1 ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiZnVuY2FwaS5oIgor I2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIu aCIKKyNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIK KyNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIK KyNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgorI2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCisjaW5j bHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgorI2lu Y2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBUaGUgdmFsdWVzIG9mIHNlc3Npb24g dmFyaWFibGVzIGFyZSBzdG9yZWQgaW4gdGhlIGJhY2tlbmQncyBwcml2YXRlIG1lbW9yeQorICog aW4gdGhlIGRlZGljYXRlZCBtZW1vcnkgY29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlu IGJpbmFyeSBmb3JtYXQuCisgKiBUaGV5IGFyZSBzdG9yZWQgaW4gdGhlICJzZXNzaW9udmFycyIg aGFzaCB0YWJsZSwgd2hvc2Uga2V5IGlzIHRoZSBPSUQgb2YgdGhlCisgKiB2YXJpYWJsZS4gIEhv d2V2ZXIsIHRoZSBPSUQgaXMgbm90IGdvb2QgZW5vdWdoIHRvIGlkZW50aWZ5IGEgc2Vzc2lvbgor ICogdmFyaWFibGU6IGNvbmN1cnJlbnQgc2Vzc2lvbnMgY291bGQgZHJvcCB0aGUgc2Vzc2lvbiB2 YXJpYWJsZSBhbmQgY3JlYXRlIGEKKyAqIG5ldyBvbmUsIHdoaWNoIGNvdWxkIGJlIGFzc2lnbmVk IHRoZSBzYW1lIE9JRC4gIFRvIGVuc3VyZSB0aGF0IHRoZSB2YWx1ZXMKKyAqIHN0b3JlZCBpbiBt ZW1vcnkgYW5kIHRoZSBjYXRhbG9nIGRlZmluaXRpb24gbWF0Y2gsIHdlIGFsc28ga2VlcCB0cmFj ayBvZgorICogdGhlICJjcmVhdGVfbHNuIi4gIEJlZm9yZSBhbnkgYWNjZXNzIHRvIHRoZSB2YXJp YWJsZSB2YWx1ZXMsIHdlIG5lZWQgdG8KKyAqIGNoZWNrIGlmIHRoZSBMU04gc3RvcmVkIGluIG1l bW9yeSBtYXRjaGVzIHRoZSBMU04gaW4gdGhlIGNhdGFsb2cuICBJZiB0aGVyZQorICogaXMgYSBt aXNtYXRjaCBiZXR3ZWVuIHRoZSBMU05zLCBvciBpZiB0aGUgT0lEIGlzIG5vdCBwcmVzZW50IGlu IHBnX3ZhcmlhYmxlCisgKiBhdCBhbGwsIHRoZSB2YWx1ZSBzdG9yZWQgaW4gbWVtb3J5IGlzIHJl bGVhc2VkLgorICovCit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCit7CisJT2lkCQkJdmFy aWQ7CQkJLyogcGdfdmFyaWFibGUgT0lEIG9mIHRoZSB2YXJpYWJsZSAoaGFzaCBrZXkpICovCisJ WExvZ1JlY1B0cgljcmVhdGVfbHNuOworCisJYm9vbAkJaXNudWxsOworCURhdHVtCQl2YWx1ZTsK KworCU9pZAkJCXR5cGlkOworCWludDE2CQl0eXBsZW47CisJYm9vbAkJdHlwYnl2YWw7CisKKwli b29sCQlpc19kb21haW47CisKKwkvKgorCSAqIGRvbWFpbl9jaGVja19leHRyYSBob2xkcyBjYWNo ZWQgZG9tYWluIG1ldGFkYXRhLiAgVGhpcyAiZXh0cmEiIGlzCisJICogdXN1YWxseSBzdG9yZWQg aW4gZm5fbWN4dC4gIFdlIGRvIG5vdCBoYXZlIGFjY2VzcyB0byB0aGF0IG1lbW9yeSBjb250ZXh0 CisJICogZm9yIHNlc3Npb24gdmFyaWFibGVzLCBidXQgd2UgY2FuIHVzZSBUb3BUcmFuc2FjdGlv bkNvbnRleHQgaW5zdGVhZC4KKwkgKiBBIGZyZXNoIHZhbHVlIGlzIGZvcmNlZCB3aGVuIHdlIGRl dGVjdCB3ZSBhcmUgaW4gYSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24KKwkgKiAodGhlIGxvY2FsIHRy YW5zYWN0aW9uIElEIGRpZmZlcnMgZnJvbSBkb21haW5fY2hlY2tfZXh0cmFfbHhpZCkuCisJICov CisJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOworCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21h aW5fY2hlY2tfZXh0cmFfbHhpZDsKKworCS8qCisJICogU3RvcmVkIHZhbHVlIGFuZCB0eXBlIGRl c2NyaXB0aW9uIGNhbiBiZSBvdXRkYXRlZCB3aGVuIHdlIHJlY2VpdmUgYQorCSAqIHNpbnZhbCBt ZXNzYWdlLiAgV2UgdGhlbiBoYXZlIHRvIGNoZWNrIGlmIHRoZSBzdG9yZWQgZGF0YSBhcmUgc3Rp bGwKKwkgKiB0cnVzdHdvcnRoeS4KKwkgKi8KKwlib29sCQlpc192YWxpZDsKKworCXVpbnQzMgkJ aGFzaHZhbHVlOwkJLyogdXNlZCBmb3IgcGFpcmluZyBzaW52YWwgbWVzc2FnZSAqLworfSBTVmFy aWFibGVEYXRhOworCit0eXBlZGVmIFNWYXJpYWJsZURhdGEgKlNWYXJpYWJsZTsKKworc3RhdGlj IEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2YXJp YWJsZXMgKi8KKworc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9 IE5VTEw7CisKKy8qCisgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBp bnZhbGlkYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCitwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFj ayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQoreworCUhBU0hfU0VR X1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwllbG9nKERFQlVHMSwgInBnX3Zh cmlhYmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKKworCUFz c2VydChzZXNzaW9udmFycyk7CisKKwkvKgorCSAqIElmIHRoZSBoYXNodmFsdWUgaXMgbm90IHNw ZWNpZmllZCwgd2UgaGF2ZSB0byByZWNoZWNrIGFsbCBjdXJyZW50bHkKKwkgKiB1c2VkIHNlc3Np b24gdmFyaWFibGVzLiAgU2luY2Ugd2UgY2FuJ3QgdGVsbCB0aGUgZXhhY3Qgc2Vzc2lvbiB2YXJp YWJsZQorCSAqIGZyb20gaXRzIGhhc2h2YWx1ZSwgd2UgaGF2ZSB0byBpdGVyYXRlIG92ZXIgYWxs IGl0ZW1zIGluIHRoZSBoYXNoIGJ1Y2tldC4KKwkgKi8KKwloYXNoX3NlcV9pbml0KCZzdGF0dXMs IHNlc3Npb252YXJzKTsKKworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3Nl YXJjaCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmIChoYXNodmFsdWUgPT0gMCB8fCBzdmFy LT5oYXNodmFsdWUgPT0gaGFzaHZhbHVlKQorCQl7CisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNl OworCQl9CisJfQorfQorCisvKgorICogUmVsZWFzZSBzdG9yZWQgdmFsdWUsIGZyZWUgbWVtb3J5 CisgKi8KK3N0YXRpYyB2b2lkCitmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxl IHN2YXIpCit7CisJLyogY2xlYW4gdGhlIGN1cnJlbnQgdmFsdWUgKi8KKwlpZiAoIXN2YXItPmlz bnVsbCkKKwl7CisJCWlmICghc3Zhci0+dHlwYnl2YWwpCisJCQlwZnJlZShEYXR1bUdldFBvaW50 ZXIoc3Zhci0+dmFsdWUpKTsKKworCQlzdmFyLT5pc251bGwgPSB0cnVlOworCX0KKworCXN2YXIt PnZhbHVlID0gKERhdHVtKSAwOworfQorCisvKgorICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIGVu dHJ5IGluIHBnX3ZhcmlhYmxlIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZ2l2ZW4KKyAqIHNlc3Np b24gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBib29sCitpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlk KFNWYXJpYWJsZSBzdmFyKQoreworCUhlYXBUdXBsZQl0cDsKKwlib29sCQlyZXN1bHQgPSBmYWxz ZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHN2YXItPnZhcmlkKSk7CisKKwl0cCA9IFNlYXJjaFN5 c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJpZCkpOworCisJ aWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCXsKKwkJLyoKKwkJICogVGhlIE9JRCBhbG9uZSBp cyBub3QgZW5vdWdoIGFzIGFuIHVuaXF1ZSBpZGVudGlmaWVyLCBiZWNhdXNlIE9JRAorCQkgKiB2 YWx1ZXMgZ2V0IHJlY3ljbGVkLCBhbmQgYSBuZXcgc2Vzc2lvbiB2YXJpYWJsZSBjb3VsZCBoYXZl IGdvdAorCQkgKiB0aGUgc2FtZSBPSUQuICBXZSBkbyBhIHNlY29uZCBjaGVjayBhZ2FpbnN0IHRo ZSA2NC1iaXQgTFNOIHdoZW4KKwkJICogdGhlIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorCQkgKi8K KwkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0gKChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1Qo dHApKS0+dmFyY3JlYXRlX2xzbikKKwkJCXJlc3VsdCA9IHRydWU7CisKKwkJUmVsZWFzZVN5c0Nh Y2hlKHRwKTsKKwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKgorICogSW5pdGlhbGl6ZSBh dHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKKyAqLworc3RhdGljIHZvaWQKK3NldHVwX3Nlc3Np b25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVw OworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlk KSk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0 dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsK KworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwlzdmFy LT52YXJpZCA9IHZhcmlkOworCXN2YXItPmNyZWF0ZV9sc24gPSB2YXJmb3JtLT52YXJjcmVhdGVf bHNuOworCisJc3Zhci0+dHlwaWQgPSB2YXJmb3JtLT52YXJ0eXBlOworCisJZ2V0X3R5cGxlbmJ5 dmFsKHN2YXItPnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2YWwpOworCisJc3Zh ci0+aXNfZG9tYWluID0gKGdldF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVf RE9NQUlOKTsKKwlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOworCXN2YXItPmRvbWFp bl9jaGVja19leHRyYV9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKworCXN2YXIt PmlzbnVsbCA9IHRydWU7CisJc3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7CisKKwlzdmFyLT5pc192 YWxpZCA9IHRydWU7CisKKwlzdmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEo VkFSSUFCTEVPSUQsCisJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCVJl bGVhc2VTeXNDYWNoZSh0dXApOworfQorCisvKgorICogQXNzaWduIGEgbmV3IHZhbHVlIHRvIHRo ZSBzZXNzaW9uIHZhcmlhYmxlLiAgSXQgaXMgY29waWVkIHRvCisgKiBTVmFyaWFibGVNZW1vcnlD b250ZXh0IGlmIG5lY2Vzc2FyeS4KKyAqCisgKiBJZiBhbnkgZXJyb3IgaGFwcGVucywgdGhlIGV4 aXN0aW5nIHZhbHVlIHdvbid0IGJlIG1vZGlmaWVkLgorICovCitzdGF0aWMgdm9pZAorc2V0X3Nl c3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkK K3sKKwlEYXR1bQkJbmV3dmFsOworCVNWYXJpYWJsZURhdGEgbG9jc3ZhciwKKwkJCSAgICpfc3Zh cjsKKworCUFzc2VydChzdmFyKTsKKwlBc3NlcnQoIWlzbnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0p IDApOworCisJLyoKKwkgKiBVc2UgdHlwYnl2YWwsIHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJp YWJsZSBvbmx5IHdoZW4gdGhleSBhcmUKKwkgKiB0cnVzdHdvcnRoeSAodGhlIGludmFsaWRhdGlv biBtZXNzYWdlIHdhcyBub3QgYWNjZXB0ZWQgZm9yIHRoaXMKKwkgKiB2YXJpYWJsZSkuICBJZiB0 aGUgdmFyaWFibGUgbWlnaHQgYmUgaW52YWxpZCwgZm9yY2Ugc2V0dXAuCisJICoKKwkgKiBEbyBu b3Qgb3ZlcndyaXRlIHRoZSBwYXNzZWQgc2Vzc2lvbiB2YXJpYWJsZSB1bnRpbCB3ZSBjYW4gYmUg Y2VydGFpbgorCSAqIHRoYXQgbm8gZXJyb3IgY2FuIGJlIHRocm93bi4KKwkgKi8KKwlpZiAoIXN2 YXItPmlzX3ZhbGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgmbG9jc3Zhciwgc3Zh ci0+dmFyaWQpOworCQlfc3ZhciA9ICZsb2NzdmFyOworCX0KKwllbHNlCisJCV9zdmFyID0gc3Zh cjsKKworCWlmICghaXNudWxsKQorCXsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlD b250ZXh0U3dpdGNoVG8oU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CisKKwkJbmV3dmFsID0gZGF0 dW1Db3B5KHZhbHVlLCBfc3Zhci0+dHlwYnl2YWwsIF9zdmFyLT50eXBsZW4pOworCisJCU1lbW9y eUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOworCX0KKwllbHNlCisJCW5ld3ZhbCA9IHZhbHVlOwor CisJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCisJZWxvZyhERUJVRzEsICJz ZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgbmV3IHZhbHVlIiwKKwkJIGdl dF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFy aWQpKSwKKwkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpLAorCQkgc3Zh ci0+dmFyaWQpOworCisJLyogbm8gbW9yZSBlcnJvciBleHBlY3RlZCwgc28gd2UgY2FuIG92ZXJ3 cml0ZSB0aGUgb2xkIHZhcmlhYmxlIG5vdyAqLworCWlmIChzdmFyICE9IF9zdmFyKQorCQltZW1j cHkoc3ZhciwgX3N2YXIsIHNpemVvZihTVmFyaWFibGVEYXRhKSk7CisKKwlzdmFyLT52YWx1ZSA9 IG5ld3ZhbDsKKwlzdmFyLT5pc251bGwgPSBpc251bGw7Cit9CisKKy8qCisgKiBDcmVhdGUgdGhl IGhhc2ggdGFibGUgZm9yIHN0b3Jpbmcgc2Vzc2lvbiB2YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2 b2lkCitjcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxlcyh2b2lkKQoreworCUhBU0hDVEwJCXZh cnNfY3RsOworCisJQXNzZXJ0KCFzZXNzaW9udmFycyk7CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9y eUNvbnRleHQpCisJeworCQkvKiByZWFkIHNpbnZhbCBtZXNzYWdlcyAqLworCQlDYWNoZVJlZ2lz dGVyU3lzY2FjaGVDYWxsYmFjayhWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCSAgcGdfdmFyaWFibGVf Y2FjaGVfY2FsbGJhY2ssCisJCQkJCQkJCQkgIChEYXR1bSkgMCk7CisKKwkJLyogd2UgbmVlZCBv dXIgb3duIGxvbmctbGl2ZWQgbWVtb3J5IGNvbnRleHQgKi8KKwkJU1ZhcmlhYmxlTWVtb3J5Q29u dGV4dCA9CisJCQlBbGxvY1NldENvbnRleHRDcmVhdGUoVG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJ CQkJICAic2Vzc2lvbiB2YXJpYWJsZXMiLAorCQkJCQkJCQkgIEFMTE9DU0VUX1NUQVJUX1NNQUxM X1NJWkVTKTsKKwl9CisKKwltZW1zZXQoJnZhcnNfY3RsLCAwLCBzaXplb2YodmFyc19jdGwpKTsK Kwl2YXJzX2N0bC5rZXlzaXplID0gc2l6ZW9mKE9pZCk7CisJdmFyc19jdGwuZW50cnlzaXplID0g c2l6ZW9mKFNWYXJpYWJsZURhdGEpOworCXZhcnNfY3RsLmhjeHQgPSBTVmFyaWFibGVNZW1vcnlD b250ZXh0OworCisJc2Vzc2lvbnZhcnMgPSBoYXNoX2NyZWF0ZSgiU2Vzc2lvbiB2YXJpYWJsZXMi LCA2NCwgJnZhcnNfY3RsLAorCQkJCQkJCSAgSEFTSF9FTEVNIHwgSEFTSF9CTE9CUyB8IEhBU0hf Q09OVEVYVCk7Cit9CisKKy8qCisgKiBTZWFyY2ggYSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBo YXNoIHRhYmxlIGdpdmVuIGl0cyBPSUQuICBJZiBpdAorICogZG9lc24ndCBleGlzdCwgdGhlbiBp bnNlcnQgaXQgdGhlcmUuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZG9p bmcgcGVybWlzc2lvbiBjaGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5j dGlvbiBhY3F1aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFi bGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3N0YXRpYyBTVmFyaWFi bGUKK2dldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsK Kwlib29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdGhlIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBh Z2FpbnN0IERST1AgKi8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2 YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0 ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9z ZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5k KTsKKworCWlmIChmb3VuZCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCS8q CisJCQkgKiBJZiB0aGVyZSB3YXMgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2UsIHRoZSB2YXJpYWJs ZSBtaWdodCBzdGlsbCBiZQorCQkJICogdmFsaWQsIGJ1dCB3ZSBoYXZlIHRvIGNoZWNrIHdpdGgg dGhlIHN5c3RlbSBjYXRhbG9nLgorCQkJICovCisJCQlpZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92 YWxpZChzdmFyKSkKKwkJCQlzdmFyLT5pc192YWxpZCA9IHRydWU7CisJCQllbHNlCisJCQkJLyog aWYgdGhlIHZhbHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQsIHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAq LworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJfQorCX0KKwllbHNl CisJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisKKwkvKgorCSAqIEZvcmNlIHNldHVwIGZvciBu b3QgeWV0IGluaXRpYWxpemVkIHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5ub3QKKwkg KiBiZSB2YWxpZGF0ZWQuCisJICovCisJaWYgKCFzdmFyLT5pc192YWxpZCkKKwl7CisJCXNldHVw X3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lv biB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9y eSAoZW1pdHRlZCBieSBSRUFEKSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9u X3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWUodmFyaWQpLAorCQkJIHZhcmlkKTsKKwl9CisKKwkvKiBlbnN1cmUgdGhlIHJldHVybmVkIGRh dGEgaXMgc3RpbGwgb2YgdGhlIGNvcnJlY3QgZG9tYWluICovCisJaWYgKHN2YXItPmlzX2RvbWFp bikKKwl7CisJCS8qCisJCSAqIFN0b3JlICJleHRyYSIgZm9yIGRvbWFpbl9jaGVjaygpIGluIFRv cFRyYW5zYWN0aW9uQ29udGV4dC4gIFdoZW4gd2UKKwkJICogYXJlIGluIGEgbmV3IHRyYW5zYWN0 aW9uLCBkb21haW5fY2hlY2tfZXh0cmEgY2FjaGUgaXMgbm90IHZhbGlkIGFueQorCQkgKiBtb3Jl LgorCQkgKi8KKwkJaWYgKHN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkICE9IE15UHJvYy0+ dnhpZC5seGlkKQorCQkJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKworCQlkb21h aW5fY2hlY2soc3Zhci0+dmFsdWUsIHN2YXItPmlzbnVsbCwKKwkJCQkJIHN2YXItPnR5cGlkLCAm c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhLAorCQkJCQkgVG9wVHJhbnNhY3Rpb25Db250ZXh0KTsK KworCQlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOwor CX0KKworCXJldHVybiBzdmFyOworfQorCisvKgorICogU3RvcmUgdGhlIGdpdmVuIHZhbHVlIGlu IGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgY2FjaGUuCisgKgorICogVGhlIGNhbGxlciBpcyBy ZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlzc2lvbiBjaGVja3MuCisgKgorICogQXMgYSBzaWRl IGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUg c2Vzc2lvbgorICogdmFyaWFibGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisg Ki8KK3ZvaWQKK1NldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29s IGlzTnVsbCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKworCS8qIHByb3Rl Y3QgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIGFnYWluc3QgRFJPUCAqLworCUxvY2tEYXRhYmFzZU9i amVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJ aWYgKCFzZXNzaW9udmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKKwor CXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJ CQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOworCisJaWYgKCFmb3VuZCkKKwl7CisJCXNldHVw X3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lv biB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9y eSAoZW1pdHRlZCBieSBXUklURSkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHN2YXItPnZhcmlkKSwKKwkJCSB2YXJpZCk7CisJfQorCisJLyogaWYgdGhpcyBm YWlscywgaXQgd29uJ3QgY2hhbmdlIHRoZSBzdG9yZWQgdmFsdWUgKi8KKwlzZXRfc2Vzc2lvbl92 YXJpYWJsZShzdmFyLCB2YWx1ZSwgaXNOdWxsKTsKK30KKworLyoKKyAqIFdyYXBwZXIgYXJvdW5k IFNldFNlc3Npb25WYXJpYWJsZSB3aXRoIHBlcm1pc3Npb24gY2hlY2tzLgorICovCit2b2lkCitT ZXRTZXNzaW9uVmFyaWFibGVXaXRoU2VjdXJpdHlDaGVjayhPaWQgdmFyaWQsIERhdHVtIHZhbHVl LCBib29sIGlzTnVsbCkKK3sKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCisJLyogaXMgdGhlIGNh bGxlciBhbGxvd2VkIHRvIHVwZGF0ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZT8gKi8KKwlhY2xyZXN1 bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgR2V0VXNlcklk KCksIEFDTF9VUERBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNo ZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lKHZhcmlkKSk7CisKKwlTZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsIHZhbHVlLCBpc051 bGwpOworfQorCisvKgorICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIHN0b3JlZCBpbiBh IHZhcmlhYmxlLgorICovCitzdGF0aWMgaW5saW5lIERhdHVtCitjb3B5X3Nlc3Npb25fdmFyaWFi bGVfdmFsdWUoU1ZhcmlhYmxlIHN2YXIsIGJvb2wgKmlzTnVsbCkKK3sKKwlEYXR1bQkJdmFsdWU7 CisKKwkvKiBmb3JjZSBjb3B5IG9mIG5vbiBOVUxMIHZhbHVlICovCisJaWYgKCFzdmFyLT5pc251 bGwpCisJeworCQl2YWx1ZSA9IGRhdHVtQ29weShzdmFyLT52YWx1ZSwgc3Zhci0+dHlwYnl2YWws IHN2YXItPnR5cGxlbik7CisJCSppc051bGwgPSBmYWxzZTsKKwl9CisJZWxzZQorCXsKKwkJdmFs dWUgPSAoRGF0dW0pIDA7CisJCSppc051bGwgPSB0cnVlOworCX0KKworCXJldHVybiB2YWx1ZTsK K30KKworLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBvZiB0aGUgc2Vzc2lvbiB2 YXJpYWJsZSAoaW4gdGhlIGN1cnJlbnQgbWVtb3J5CisgKiBjb250ZXh0KS4gIFRoZSBjYWxsZXIg aXMgcmVzcG9uc2libGUgZm9yIHBlcm1pc3Npb24gY2hlY2tzLgorICovCitEYXR1bQorR2V0U2Vz c2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgKnR5cGlkKQoreworCVNW YXJpYWJsZQlzdmFyOworCisJc3ZhciA9IGdldF9zZXNzaW9uX3ZhcmlhYmxlKHZhcmlkKTsKKwor CS8qCisJICogQWx0aG91Z2ggInN2YXIiIGlzIGZyZXNobHkgdmFsaWRhdGVkIGluIHRoaXMgcG9p bnQsIHN2YXItPmlzX3ZhbGlkIGNhbgorCSAqIGJlIGZhbHNlLCBpZiBhbiBpbnZhbGlkYXRpb24g bWVzc2FnZSB3cyBwcm9jZXNzZWQgZHVyaW5nIHRoZSBkb21haW4gY2hlY2suCisJICogQnV0IHRo ZSB2YXJpYWJsZSBhbmQgYWxsIGl0cyBkZXBlbmRlbmNpZXMgYXJlIGxvY2tlZCBub3csIHNvIHdl IGRvbid0IG5lZWQKKwkgKiB0byByZXBlYXQgdGhlIHZhbGlkYXRpb24uCisJICovCisJQXNzZXJ0 KHN2YXIpOworCisJKnR5cGlkID0gc3Zhci0+dHlwaWQ7CisKKwlyZXR1cm4gY29weV9zZXNzaW9u X3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29w eSBvZiB0aGUgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgYWZ0ZXIgY2hlY2tpbmcgaWYg dGhlCisgKiB0eXBlIGlzIHRoZSBzYW1lIGFzICJleHBlY3RlZF90eXBpZCIuICBUaGUgY2FsbGVy IGlzIHJlc3BvbnNpYmxlIGZvcgorICogcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK0RhdHVtCitH ZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBP aWQgZXhwZWN0ZWRfdHlwaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nl c3Npb25fdmFyaWFibGUodmFyaWQpOworCisJQXNzZXJ0KHN2YXIgJiYgc3Zhci0+aXNfdmFsaWQp OworCisJaWYgKGV4cGVjdGVkX3R5cGlkICE9IHN2YXItPnR5cGlkKQorCQllbG9nKEVSUk9SLCAi dHlwZSBvZiB2YXJpYWJsZSBcIiVzLiVzXCIgaXMgZGlmZmVyZW50IHRoYW4gZXhwZWN0ZWQiLAor CQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFy aWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisKKwlyZXR1cm4g Y29weV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBB c3NpZ24gdGhlIHJlc3VsdCBvZiB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24gdG8gdGhlIHNlc3Np b24gdmFyaWFibGUKKyAqLwordm9pZAorRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LAorCQkJICAgTGV0U3RtdCAqc3RtdCwKKwkJCSAgIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJ ICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsCisJCQkgICBRdWVyeUNvbXBsZXRpb24gKnFj KQoreworCVF1ZXJ5CSAgICpxdWVyeSA9IGNhc3ROb2RlKFF1ZXJ5LCBzdG10LT5xdWVyeSk7CisJ TGlzdAkgICAqcmV3cml0dGVuOworCURlc3RSZWNlaXZlciAqZGVzdDsKKwlBY2xSZXN1bHQJYWNs cmVzdWx0OworCVBsYW5uZWRTdG10ICpwbGFuOworCVF1ZXJ5RGVzYyAgKnF1ZXJ5RGVzYzsKKwlP aWQJCQl2YXJpZCA9IHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZTsKKworCUFzc2VydChPaWRJc1ZhbGlk KHZhcmlkKSk7CisKKwkvKiBkbyB3ZSBoYXZlIHBlcm1pc3Npb24gdG8gd3JpdGUgdG8gdGhlIHNl c3Npb24gdmFyaWFibGU/ICovCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxl UmVsYXRpb25JZCwgdmFyaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAoYWNscmVz dWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9W QVJJQUJMRSwgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJLyogY3JlYXRl IGEgZGVzdCByZWNlaXZlciBmb3IgTEVUICovCisJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJl Y2VpdmVyKHZhcmlkKTsKKworCS8qIHJ1biB0aGUgcXVlcnkgcmV3cml0ZXIgKi8KKwlxdWVyeSA9 IGNvcHlPYmplY3QocXVlcnkpOworCisJcmV3cml0dGVuID0gUXVlcnlSZXdyaXRlKHF1ZXJ5KTsK KworCUFzc2VydChsaXN0X2xlbmd0aChyZXdyaXR0ZW4pID09IDEpOworCisJcXVlcnkgPSBsaW5p dGlhbF9ub2RlKFF1ZXJ5LCByZXdyaXR0ZW4pOworCUFzc2VydChxdWVyeS0+Y29tbWFuZFR5cGUg PT0gQ01EX1NFTEVDVCk7CisKKwkvKiBwbGFuIHRoZSBxdWVyeSAqLworCXBsYW4gPSBwZ19wbGFu X3F1ZXJ5KHF1ZXJ5LCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJCSBDVVJTT1JfT1BUX1BB UkFMTEVMX09LLCBwYXJhbXMpOworCisJLyoKKwkgKiBVc2UgYSBzbmFwc2hvdCB3aXRoIGFuIHVw ZGF0ZWQgY29tbWFuZCBJRCB0byBlbnN1cmUgdGhpcyBxdWVyeSBzZWVzIHRoZQorCSAqIHJlc3Vs dHMgb2YgYW55IHByZXZpb3VzbHkgZXhlY3V0ZWQgcXVlcmllcy4gIChUaGlzIGNvdWxkIG9ubHkg bWF0dGVyIGlmCisJICogdGhlIHBsYW5uZXIgZXhlY3V0ZWQgYW4gYWxsZWdlZGx5LXN0YWJsZSBm dW5jdGlvbiB0aGF0IGNoYW5nZWQgdGhlCisJICogZGF0YWJhc2UgY29udGVudHMsIGJ1dCBsZXQn cyBkbyBpdCBhbnl3YXkgdG8gYmUgcGFyYWxsZWwgdG8gdGhlIEVYUExBSU4KKwkgKiBjb2RlIHBh dGguKQorCSAqLworCVB1c2hDb3BpZWRTbmFwc2hvdChHZXRBY3RpdmVTbmFwc2hvdCgpKTsKKwlV cGRhdGVBY3RpdmVTbmFwc2hvdENvbW1hbmRJZCgpOworCisJLyogY3JlYXRlIGEgUXVlcnlEZXNj LCByZWRpcmVjdGluZyBvdXRwdXQgdG8gb3VyIHR1cGxlIHJlY2VpdmVyICovCisJcXVlcnlEZXNj ID0gQ3JlYXRlUXVlcnlEZXNjKHBsYW4sIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQlH ZXRBY3RpdmVTbmFwc2hvdCgpLCBJbnZhbGlkU25hcHNob3QsCisJCQkJCQkJCWRlc3QsIHBhcmFt cywgcXVlcnlFbnYsIDApOworCisJLyogY2FsbCBFeGVjdXRvclN0YXJ0IHRvIHByZXBhcmUgdGhl IHBsYW4gZm9yIGV4ZWN1dGlvbiAqLworCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCAwKTsKKwor CS8qCisJICogUnVuIHRoZSBwbGFuIHRvIGNvbXBsZXRpb24uICBUaGUgcmVzdWx0IHNob3VsZCBi ZSBvbmx5IG9uZSByb3cuICBUbworCSAqIGNoZWNrIGlmIHRoZXJlIGFyZSB0b28gbWFueSByZXN1 bHQgcm93cywgd2UgdHJ5IHRvIGZldGNoIHR3by4KKwkgKi8KKwlFeGVjdXRvclJ1bihxdWVyeURl c2MsIEZvcndhcmRTY2FuRGlyZWN0aW9uLCAyTCwgdHJ1ZSk7CisKKwkvKiBzYXZlIHRoZSByb3dj b3VudCBpZiB3ZSdyZSBnaXZlbiBhIFF1ZXJ5Q29tcGxldGlvbiB0byBmaWxsICovCisJaWYgKHFj KQorCQlTZXRRdWVyeUNvbXBsZXRpb24ocWMsIENNRFRBR19MRVQsIHF1ZXJ5RGVzYy0+ZXN0YXRl LT5lc19wcm9jZXNzZWQpOworCisJLyogYW5kIGNsZWFuIHVwICovCisJRXhlY3V0b3JGaW5pc2go cXVlcnlEZXNjKTsKKwlFeGVjdXRvckVuZChxdWVyeURlc2MpOworCisJRnJlZVF1ZXJ5RGVzYyhx dWVyeURlc2MpOworCisJUG9wQWN0aXZlU25hcHNob3QoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUK aW5kZXggMTExMThkMGNlMDIuLjcxMjQ4YTM0ZjI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQpAQCAt NzYsNiArNzYsNyBAQCBPQkpTID0gXAogCW5vZGVXaW5kb3dBZ2cubyBcCiAJbm9kZVdvcmt0YWJs ZXNjYW4ubyBcCiAJc3BpLm8gXAorCXN2YXJpYWJsZVJlY2VpdmVyLm8gXAogCXRxdWV1ZS5vIFwK IAl0c3RvcmVSZWNlaXZlci5vCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IDhmN2E1MzQw MDU5Li42ZGM4YzU2MmJlYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC0zNCw2ICszNCw3 IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNs dWRlICJleGVjdXRvci9ub2RlU3VicGxhbi5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTk5 MSw2ICs5OTIsNDEgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3Rh dGUsCiAJCQkJCQlzY3JhdGNoLmQucGFyYW0ucGFyYW10eXBlID0gcGFyYW0tPnBhcmFtdHlwZTsK IAkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKIAkJCQkJCWJyZWFrOwor CisJCQkJCWNhc2UgUEFSQU1fVkFSSUFCTEU6CisJCQkJCQl7CisJCQkJCQkJaW50CQkJZXNfbnVt X3Nlc3Npb25fdmFyaWFibGVzID0gMDsKKwkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNf c2Vzc2lvbl92YXJpYWJsZXMgPSBOVUxMOworCQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICp2 YXI7CisKKwkJCQkJCQlpZiAoc3RhdGUtPnBhcmVudCAmJiBzdGF0ZS0+cGFyZW50LT5zdGF0ZSkK KwkJCQkJCQl7CisJCQkJCQkJCWVzX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+ c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzOworCQkJCQkJCQllc19udW1fc2Vzc2lvbl92YXJp YWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOwor CQkJCQkJCX0KKworCQkJCQkJCUFzc2VydChlc19zZXNzaW9uX3ZhcmlhYmxlcyk7CisKKwkJCQkJ CQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcyAqLworCQkJCQkJCWlmIChwYXJhbS0+cGFyYW1p ZCA+PSBlc19udW1fc2Vzc2lvbl92YXJpYWJsZXMpCisJCQkJCQkJCWVsb2coRVJST1IsICJwYXJh bWlkIG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlzIG91dCBvZiByYW5nZSIpOworCisJCQkJCQkJ dmFyID0gJmVzX3Nlc3Npb25fdmFyaWFibGVzW3BhcmFtLT5wYXJhbWlkXTsKKworCQkJCQkJCWlm ICh2YXItPnR5cGlkICE9IHBhcmFtLT5wYXJhbXR5cGUpCisJCQkJCQkJCWVsb2coRVJST1IsICJ0 eXBlIG9mIGJ1ZmZlcmVkIHZhbHVlIGlzIGRpZmZlcmVudCB0aGFuIFBBUkFNX1ZBUklBQkxFIHR5 cGUiKTsKKworCQkJCQkJCS8qCisJCQkJCQkJICogSW4gdGhpcyBjYXNlLCBwYXNzIHRoZSB2YWx1 ZSBsaWtlIGEKKwkJCQkJCQkgKiBjb25zdGFudC4KKwkJCQkJCQkgKi8KKwkJCQkJCQlzY3JhdGNo Lm9wY29kZSA9IEVFT1BfQ09OU1Q7CisJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLnZhbHVlID0g dmFyLT52YWx1ZTsKKwkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwuaXNudWxsID0gdmFyLT5pc251 bGw7CisJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOworCQkJCQkJfQor CQkJCQkJYnJlYWs7CisKIAkJCQkJY2FzZSBQQVJBTV9FWFRFUk46CiAKIAkJCQkJCS8qCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY01haW4uYwppbmRleCBjYzlhNTk0Y2JhNS4uYmE2ZTM4MjYzY2MgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY01haW4uYwpAQCAtNDMsNyArNDMsOSBAQAogI2luY2x1ZGUgImFjY2Vzcy94YWN0 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bh cnRpdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJj b21tYW5kcy9tYXR2aWV3LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj dXRvci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVTdWJwbGFuLmgiCkBAIC0xOTQsNiArMTk2 LDYxIEBAIHN0YW5kYXJkX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBl ZmxhZ3MpCiAJQXNzZXJ0KHF1ZXJ5RGVzYy0+c291cmNlVGV4dCAhPSBOVUxMKTsKIAllc3RhdGUt PmVzX3NvdXJjZVRleHQgPSBxdWVyeURlc2MtPnNvdXJjZVRleHQ7CiAKKwkvKgorCSAqIFRoZSBl eGVjdXRvciBkb2Vzbid0IHdvcmsgd2l0aCBzZXNzaW9uIHZhcmlhYmxlcyBkaXJlY3RseS4gVmFs dWVzIG9mCisJICogcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgY29waWVkIHRvIGEgZGVk aWNhdGVkIGFycmF5LCBhbmQgdGhpcyBhcnJheQorCSAqIGlzIHBhc3NlZCB0byB0aGUgZXhlY3V0 b3IuIFRoaXMgYXJyYXkgaXMgc3RhYmxlICJzbmFwc2hvdCIgb2YgdmFsdWVzIG9mCisJICogdXNl ZCBzZXNzaW9uIHZhcmlhYmxlcy4gVGhlcmUgYXJlIHRocmVlIGJlbmVmaXRzIG9mIHRoaXMgc3Ry YXRlZ3k6CisJICoKKwkgKiAtIGNvbnNpc3RlbmN5IHdpdGggZXh0ZXJuYWwgcGFyYW1ldGVycyBh bmQgcGxwZ3NxbCB2YXJpYWJsZXMsCisJICoKKwkgKiAtIHNlc3Npb24gdmFyaWFibGVzIGNhbiBi ZSBwYXJhbGxlbCBzYWZlLAorCSAqCisJICogLSB3ZSBkb24ndCBuZWVkIG1ha2UgZnJlc2ggY29w eSBmb3IgYW55IHJlYWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZQorCSAqICAgICh0aGlzIGlzIG5lY2Vz c2FyeSBiZWNhdXNlIHRoZSBpbnRlcm5hbGx5IHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbgorCSAq ICAgIGJlIGNoYW5nZWQgaW5zaWRlIHF1ZXJ5IGV4ZWN1dGlvbiB0aW1lLCBhbmQgdGhlbiBhIHJl ZmVyZW5jZSB0bworCSAqICAgIHByZXZpb3VzbHkgcmV0dXJuZWQgdmFsdWUgY2FuIGJlIGNvcnJ1 cHRlZCkuCisJICovCisJaWYgKHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJs ZXMpCisJeworCQlMaXN0Q2VsbCAgICpsYzsKKwkJaW50CQkJblNlc3Npb25WYXJpYWJsZXM7CisJ CWludAkJCWkgPSAwOworCisJCS8qCisJCSAqIEluIHRoaXMgY2FzZSwgdGhlIHF1ZXJ5IHVzZXMg c2Vzc2lvbiB2YXJpYWJsZXMsIGJ1dCB3ZSBoYXZlIHRvCisJCSAqIHByZXBhcmUgdGhlIGFycmF5 IHdpdGggcGFzc2VkIHZhbHVlcyAob2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcykKKwkJICogZmly c3QuCisJCSAqLworCQlBc3NlcnQoIUlzUGFyYWxsZWxXb3JrZXIoKSk7CisJCW5TZXNzaW9uVmFy aWFibGVzID0gbGlzdF9sZW5ndGgocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlh Ymxlcyk7CisKKwkJLyogY3JlYXRlIHRoZSBhcnJheSB1c2VkIGZvciBwYXNzaW5nIHZhbHVlcyBv ZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzICovCisJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJs ZXMgPSAoU2Vzc2lvblZhcmlhYmxlVmFsdWUgKikKKwkJCXBhbGxvYyhuU2Vzc2lvblZhcmlhYmxl cyAqIHNpemVvZihTZXNzaW9uVmFyaWFibGVWYWx1ZSkpOworCisJCS8qIGZpbGwgdGhlIGFycmF5 ICovCisJCWZvcmVhY2gobGMsIHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJs ZXMpCisJCXsKKwkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJCQlPaWQJCQl2YXJpZCA9IGxmaXJz dF9vaWQobGMpOworCisJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxh dGlvbklkLCB2YXJpZCwgR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpOworCQkJaWYgKGFjbHJlc3Vs dCAhPSBBQ0xDSEVDS19PSykKKwkJCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9W QVJJQUJMRSwKKwkJCQkJCQkgICBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisK KwkJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFyaWQgPSB2YXJpZDsKKwkJCWVz dGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFsdWUgPSBHZXRTZXNzaW9uVmFyaWFibGUo dmFyaWQsCisJCQkJCQkJCQkJCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVz W2ldLmlzbnVsbCwKKwkJCQkJCQkJCQkJCQkJCQkJICAgJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJp YWJsZXNbaV0udHlwaWQpOworCisJCQlpKys7CisJCX0KKworCQllc3RhdGUtPmVzX251bV9zZXNz aW9uX3ZhcmlhYmxlcyA9IG5TZXNzaW9uVmFyaWFibGVzOworCX0KKwogCS8qCiAJICogRmlsbCBp biB0aGUgcXVlcnkgZW52aXJvbm1lbnQsIGlmIGFueSwgZnJvbSBxdWVyeURlc2MuCiAJICovCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL21lc29uLmJ1aWxkCmluZGV4IGI1MTFhNDI5YWRmLi5iNjY2MmM2ZThmYyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvbWVzb24uYnVpbGQKQEAgLTY0LDYgKzY0LDcgQEAgYmFja2VuZF9zb3VyY2Vz ICs9IGZpbGVzKAogICAnbm9kZVdpbmRvd0FnZy5jJywKICAgJ25vZGVXb3JrdGFibGVzY2FuLmMn LAogICAnc3BpLmMnLAorICAnc3ZhcmlhYmxlUmVjZWl2ZXIuYycsCiAgICd0cXVldWUuYycsCiAg ICd0c3RvcmVSZWNlaXZlci5jJywKICkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNl aXZlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNGNmZjQ0ZWNm NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2Vp dmVyLmMKQEAgLTAsMCArMSwyMDEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHN2YXJp YWJsZVJlY2VpdmVyLmMKKyAqCSAgQW4gaW1wbGVtZW50YXRpb24gb2YgRGVzdFJlY2VpdmVyIHRo YXQgc3RvcmVzIHRoZSByZXN1bHQgdmFsdWUgaW4KKyAqCSAgYSBzZXNzaW9uIHZhcmlhYmxlLgor ICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElP TgorICoJICBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCisgKgorICot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisjaW5jbHVkZSAi bWlzY2FkbWluLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvZGV0b2FzdC5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJz dG9yYWdlL2xvY2suaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0 aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBU aGlzIERlc3RSZWNlaXZlciBpcyB1c2VkIGJ5IHRoZSBMRVQgY29tbWFuZCBmb3Igc3RvcmluZyB0 aGUgcmVzdWx0IHRvIGEKKyAqIHNlc3Npb24gdmFyaWFibGUuICBUaGUgcmVzdWx0IGhhcyB0byBo YXZlIG9ubHkgb25lIHR1cGxlIHdpdGggb25seSBvbmUKKyAqIG5vbi1kZWxldGVkIGF0dHJpYnV0 ZS4gIFRoZSByb3cgY291bnRlciAoZmllbGQgInJvd3MiKSBpcyBpbmNyZW1lbnRlZAorICogYWZ0 ZXIgcmVjZWl2aW5nIGEgcm93LCBhbmQgYW4gZXJyb3IgaXMgcmFpc2VkIHdoZW4gdGhlcmUgYXJl IG5vIHJvd3Mgb3IKKyAqIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIHJlY2VpdmVkIHJvd3MuICBC ZWNhdXNlIGEgcmVjZWl2ZWQgdHVwbGUgY2FuIGhhdmUKKyAqIGRlbGV0ZWQgYXR0cmlidXRlcywg d2UgbmVlZCB0byBmaW5kIHRoZSBmaXJzdCBub24tZGVsZXRlZCBhdHRyaWJ1dGUKKyAqIChmaWVs ZCAic2xvdF9vZmZzZXQiKS4gIFRoZSB2YWx1ZSBpcyBkZXRvYXN0ZWQgYmVmb3JlIHN0b3Jpbmcg aXQgaW4gdGhlCisgKiBzZXNzaW9uIHZhcmlhYmxlLgorICovCit0eXBlZGVmIHN0cnVjdAorewor CURlc3RSZWNlaXZlciBwdWI7CisJT2lkCQkJdmFyaWQ7CisJYm9vbAkJbmVlZF9kZXRvYXN0OwkJ LyogZG8gd2UgbmVlZCB0byBkZXRvYXN0IHRoZSBhdHRyaWJ1dGU/ICovCisJaW50CQkJc2xvdF9v ZmZzZXQ7CQkvKiBwb3NpdGlvbiBvZiBub24tZGVsZXRlZCBhdHRyaWJ1dGUgKi8KKwlpbnQJCQly b3dzOwkJCQkvKiByb3cgY291bnRlciAqLworfSBTVmFyaWFibGVTdGF0ZTsKKworLyoKKyAqIFBy ZXBhcmUgdG8gcmVjZWl2ZSB0dXBsZXMgZnJvbSBleGVjdXRvci4KKyAqLworc3RhdGljIHZvaWQK K3N2YXJpYWJsZVN0YXJ0dXBSZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYsIGludCBvcGVyYXRp b24sIFR1cGxlRGVzYyB0eXBlaW5mbykKK3sKKwlTVmFyaWFibGVTdGF0ZSAqbXlTdGF0ZSA9IChT VmFyaWFibGVTdGF0ZSAqKSBzZWxmOworCWludAkJCW5hdHRzID0gdHlwZWluZm8tPm5hdHRzOwor CWludAkJCW91dGNvbHMgPSAwOworCWludAkJCWk7CisJTE9DS1RBRwkJbG9ja3RhZyBQR19VU0VE X0ZPUl9BU1NFUlRTX09OTFk7CisKKwlBc3NlcnQobXlTdGF0ZS0+cHViLm15ZGVzdCA9PSBEZXN0 VmFyaWFibGUpOworCUFzc2VydChPaWRJc1ZhbGlkKG15U3RhdGUtPnZhcmlkKSk7CisJQXNzZXJ0 KFNlYXJjaFN5c0NhY2hlRXhpc3RzMShWQVJJQUJMRU9JRCwgbXlTdGF0ZS0+dmFyaWQpKTsKKwor I2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKworCVNFVF9MT0NLVEFHX09CSkVDVChsb2NrdGFn LAorCQkJCQkgICBNeURhdGFiYXNlSWQsCisJCQkJCSAgIFZhcmlhYmxlUmVsYXRpb25JZCwKKwkJ CQkJICAgbXlTdGF0ZS0+dmFyaWQsCisJCQkJCSAgIDApOworCisJQXNzZXJ0KExvY2tIZWxkQnlN ZSgmbG9ja3RhZywgQWNjZXNzU2hhcmVMb2NrLCBmYWxzZSkpOworCisjZW5kaWYKKworCWZvciAo aSA9IDA7IGkgPCBuYXR0czsgaSsrKQorCXsKKwkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ciA9IFR1 cGxlRGVzY0F0dHIodHlwZWluZm8sIGkpOworCQlPaWQJCQl0eXBpZDsKKwkJT2lkCQkJY29sbGlk OworCQlpbnQzMgkJdHlwbW9kOworCisJCWlmIChhdHRyLT5hdHRpc2Ryb3BwZWQpCisJCQljb250 aW51ZTsKKworCQlpZiAoKytvdXRjb2xzID4gMSkKKwkJCWNvbnRpbnVlOworCisJCWdldF9zZXNz aW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChteVN0YXRlLT52YXJpZCwKKwkJCQkJCQkJ CQkJCSZ0eXBpZCwKKwkJCQkJCQkJCQkJCSZ0eXBtb2QsCisJCQkJCQkJCQkJCQkmY29sbGlkKTsK KworCQkvKgorCQkgKiBEb3VibGUgY2hlY2sgLSB0aGUgdHlwZSBhbmQgdHlwbW9kIG9mIHRhcmdl dCB2YXJpYWJsZSBzaG91bGQgYmUgdGhlCisJCSAqIHNhbWUgYXMgdGhlIHR5cGUgYW5kIHR5cG1v ZCBvZiBhc3NpZ25tZW50IGV4cHJlc3Npb24uICBUaGUKKwkJICogZXhwcmVzc2lvbiBzaG91bGQg YmUgd3JhcHBlZCBieSBhIGNhc3QgdG8gdGhlIHRhcmdldCB0eXBlL3R5cG1vZC4KKwkJICovCisJ CWlmIChhdHRyLT5hdHR0eXBpZCAhPSB0eXBpZCB8fAorCQkJKGF0dHItPmF0dHR5cG1vZCA+PSAw ICYmCisJCQkgYXR0ci0+YXR0dHlwbW9kICE9IHR5cG1vZCkpCisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygi dGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgaXMgb2YgdHlwZSAlcyIKKwkJCQkJCQkiIGJ1dCBleHBy ZXNzaW9uIGlzIG9mIHR5cGUgJXMiLAorCQkJCQkJCWZvcm1hdF90eXBlX3dpdGhfdHlwZW1vZCh0 eXBpZCwgdHlwbW9kKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2QoYXR0ci0+YXR0 dHlwaWQsCisJCQkJCQkJCQkJCQkJIGF0dHItPmF0dHR5cG1vZCkpKSk7CisKKwkJbXlTdGF0ZS0+ bmVlZF9kZXRvYXN0ID0gYXR0ci0+YXR0bGVuID09IC0xOworCQlteVN0YXRlLT5zbG90X29mZnNl dCA9IGk7CisJfQorCisJaWYgKG91dGNvbHMgIT0gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVycm1zZ19wbHVyYWwoImFzc2ln bm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAlZCBjb2x1bW4iLAorCQkJCQkJCSAgICJhc3NpZ25t ZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1ucyIsCisJCQkJCQkJICAgb3V0Y29scywK KwkJCQkJCQkgICBvdXRjb2xzKSkpOworCisJbXlTdGF0ZS0+cm93cyA9IDA7Cit9CisKKy8qCisg KiBSZWNlaXZlIGEgdHVwbGUgZnJvbSB0aGUgZXhlY3V0b3IgYW5kIHN0b3JlIGl0IGluIHRoZSBz ZXNzaW9uIHZhcmlhYmxlLgorICovCitzdGF0aWMgYm9vbAorc3ZhcmlhYmxlUmVjZWl2ZVNsb3Qo VHVwbGVUYWJsZVNsb3QgKnNsb3QsIERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlTVmFyaWFibGVT dGF0ZSAqbXlTdGF0ZSA9IChTVmFyaWFibGVTdGF0ZSAqKSBzZWxmOworCURhdHVtCQl2YWx1ZTsK Kwlib29sCQlpc251bGw7CisJYm9vbAkJZnJlZXZhbCA9IGZhbHNlOworCisJLyogbWFrZSBzdXJl IHRoZSB0dXBsZSBpcyBmdWxseSBkZWNvbnN0cnVjdGVkICovCisJc2xvdF9nZXRhbGxhdHRycyhz bG90KTsKKworCXZhbHVlID0gc2xvdC0+dHRzX3ZhbHVlc1tteVN0YXRlLT5zbG90X29mZnNldF07 CisJaXNudWxsID0gc2xvdC0+dHRzX2lzbnVsbFtteVN0YXRlLT5zbG90X29mZnNldF07CisKKwlp ZiAobXlTdGF0ZS0+bmVlZF9kZXRvYXN0ICYmICFpc251bGwgJiYgVkFSQVRUX0lTX0VYVEVSTkFM KERhdHVtR2V0UG9pbnRlcih2YWx1ZSkpKQorCXsKKwkJdmFsdWUgPSBQb2ludGVyR2V0RGF0dW0o ZGV0b2FzdF9leHRlcm5hbF9hdHRyKChzdHJ1Y3QgdmFybGVuYSAqKQorCQkJCQkJCQkJCQkJCSAg RGF0dW1HZXRQb2ludGVyKHZhbHVlKSkpOworCQlmcmVldmFsID0gdHJ1ZTsKKwl9CisKKwlteVN0 YXRlLT5yb3dzICs9IDE7CisKKwlpZiAobXlTdGF0ZS0+cm93cyA+IDEpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9UT09fTUFOWV9ST1dTKSwKKwkJCQkgZXJybXNnKCJl eHByZXNzaW9uIHJldHVybmVkIG1vcmUgdGhhbiBvbmUgcm93IikpKTsKKworCVNldFNlc3Npb25W YXJpYWJsZShteVN0YXRlLT52YXJpZCwgdmFsdWUsIGlzbnVsbCk7CisKKwlpZiAoZnJlZXZhbCkK KwkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKHZhbHVlKSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwor LyoKKyAqIENsZWFuIHVwIGF0IGVuZCBvZiB0aGUgZXhlY3V0b3IgcnVuCisgKi8KK3N0YXRpYyB2 b2lkCitzdmFyaWFibGVTaHV0ZG93blJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlp ZiAoKChTVmFyaWFibGVTdGF0ZSAqKSBzZWxmKS0+cm93cyA9PSAwKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfTk9fREFUQV9GT1VORCksCisJCQkJIGVycm1zZygiZXhw cmVzc2lvbiByZXR1cm5lZCBubyByb3dzIikpKTsKK30KKworLyoKKyAqIERlc3Ryb3kgdGhlIHJl Y2VpdmVyIHdoZW4gd2UgYXJlIGRvbmUgd2l0aCBpdAorICovCitzdGF0aWMgdm9pZAorc3Zhcmlh YmxlRGVzdHJveVJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlwZnJlZShzZWxmKTsK K30KKworLyoKKyAqIEluaXRpYWxseSBjcmVhdGUgYSBEZXN0UmVjZWl2ZXIgb2JqZWN0LgorICov CitEZXN0UmVjZWl2ZXIgKgorQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlkKQor eworCVNWYXJpYWJsZVN0YXRlICpzZWxmID0gKFNWYXJpYWJsZVN0YXRlICopIHBhbGxvYzAoc2l6 ZW9mKFNWYXJpYWJsZVN0YXRlKSk7CisKKwlzZWxmLT5wdWIucmVjZWl2ZVNsb3QgPSBzdmFyaWFi bGVSZWNlaXZlU2xvdDsKKwlzZWxmLT5wdWIuclN0YXJ0dXAgPSBzdmFyaWFibGVTdGFydHVwUmVj ZWl2ZXI7CisJc2VsZi0+cHViLnJTaHV0ZG93biA9IHN2YXJpYWJsZVNodXRkb3duUmVjZWl2ZXI7 CisJc2VsZi0+cHViLnJEZXN0cm95ID0gc3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVyOworCXNlbGYt PnB1Yi5teWRlc3QgPSBEZXN0VmFyaWFibGU7CisKKwlzZWxmLT52YXJpZCA9IHZhcmlkOworCisJ cmV0dXJuIChEZXN0UmVjZWl2ZXIgKikgc2VsZjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXgg MzA2MDg0N2IxMzMuLjhmYzY3ZjA4ZDc2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9u b2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtNDM0MSw2 ICs0MzQxLDE2IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwK IAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX0xldFN0bXQ6CisJ CQl7CisJCQkJTGV0U3RtdCAgICAqc3RtdCA9IChMZXRTdG10ICopIG5vZGU7CisKKwkJCQlpZiAo V0FMSyhzdG10LT50YXJnZXQpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzdG10 LT5xdWVyeSkpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Q TEFzc2lnblN0bXQ6CiAJCQl7CiAJCQkJUExBc3NpZ25TdG10ICpzdG10ID0gKFBMQXNzaWduU3Rt dCAqKSBub2RlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5l ci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IDBmNDIzZTk2 ODQ3Li42MDBkZmJmN2Q0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v cGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAt MzI1LDYgKzMyNSw3IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFy ICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCWdsb2ItPmxhc3RQbGFuTm9kZUlk ID0gMDsKIAlnbG9iLT50cmFuc2llbnRQbGFuID0gZmFsc2U7CiAJZ2xvYi0+ZGVwZW5kc09uUm9s ZSA9IGZhbHNlOworCWdsb2ItPnNlc3Npb25WYXJpYWJsZXMgPSBOSUw7CiAKIAkvKgogCSAqIEFz c2VzcyB3aGV0aGVyIGl0J3MgZmVhc2libGUgdG8gdXNlIHBhcmFsbGVsIG1vZGUgZm9yIHRoaXMg cXVlcnkuIFdlCkBAIC01NjUsNiArNTY2LDcgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFy c2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJcmVzdWx0 LT5wYXJhbUV4ZWNUeXBlcyA9IGdsb2ItPnBhcmFtRXhlY1R5cGVzOwogCS8qIHV0aWxpdHlTdG10 IHNob3VsZCBiZSBudWxsLCBidXQgd2UgbWlnaHQgYXMgd2VsbCBjb3B5IGl0ICovCiAJcmVzdWx0 LT51dGlsaXR5U3RtdCA9IHBhcnNlLT51dGlsaXR5U3RtdDsKKwlyZXN1bHQtPnNlc3Npb25WYXJp YWJsZXMgPSBnbG9iLT5zZXNzaW9uVmFyaWFibGVzOwogCXJlc3VsdC0+c3RtdF9sb2NhdGlvbiA9 IHBhcnNlLT5zdG10X2xvY2F0aW9uOwogCXJlc3VsdC0+c3RtdF9sZW4gPSBwYXJzZS0+c3RtdF9s ZW47CiAKQEAgLTczNSw2ICs3MzcsMTMgQEAgc3VicXVlcnlfcGxhbm5lcihQbGFubmVyR2xvYmFs ICpnbG9iLCBRdWVyeSAqcGFyc2UsIFBsYW5uZXJJbmZvICpwYXJlbnRfcm9vdCwKIAkgKi8KIAlw dWxsX3VwX3N1YnF1ZXJpZXMocm9vdCk7CiAKKwkvKgorCSAqIENoZWNrIGlmIHNvbWUgc3VicXVl cnkgdXNlcyBhIHNlc3Npb24gdmFyaWFibGUuICBUaGUgZmxhZworCSAqIGhhc1Nlc3Npb25WYXJp YWJsZXMgc2hvdWxkIGJlIHRydWUgaWYgdGhlIHF1ZXJ5IG9yIHNvbWUgc3VicXVlcnkgdXNlcyBh CisJICogc2Vzc2lvbiB2YXJpYWJsZS4KKwkgKi8KKwlwdWxsX3VwX2hhc19zZXNzaW9uX3Zhcmlh Ymxlcyhyb290KTsKKwogCS8qCiAJICogSWYgdGhpcyBpcyBhIHNpbXBsZSBVTklPTiBBTEwgcXVl cnksIGZsYXR0ZW4gaXQgaW50byBhbiBhcHBlbmRyZWwuIFdlCiAJICogZG8gdGhpcyBub3cgYmVj YXVzZSBpdCByZXF1aXJlcyBhcHBseWluZyBwdWxsX3VwX3N1YnF1ZXJpZXMgdG8gdGhlIGxlYWYK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRleCA5MWM3YzRmZTJmZS4uMWZhMmVj ZjVjMjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKQEAgLTIxMCw2ICsyMTAs OSBAQCBzdGF0aWMgTGlzdCAqc2V0X3JldHVybmluZ19jbGF1c2VfcmVmZXJlbmNlcyhQbGFubmVy SW5mbyAqcm9vdCwKIHN0YXRpYyBMaXN0ICpzZXRfd2luZG93YWdnX3J1bmNvbmRpdGlvbl9yZWZl cmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJCQkJICAgTGlzdCAqcnVuY29uZGl0 aW9uLAogCQkJCQkJCQkJCQkJICAgUGxhbiAqcGxhbik7CitzdGF0aWMgYm9vbCBwdWxsX3VwX2hh c19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9kZSwKKwkJCQkJCQkJCQkJCSBQbGFu bmVySW5mbyAqcm9vdCk7CitzdGF0aWMgdm9pZCByZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRl bmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpOwogCiAKIC8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgpAQCAtMTMxMCw2ICsxMzEzLDUwIEBAIHNldF9wbGFuX3JlZnMoUGxhbm5lckluZm8gKnJv b3QsIFBsYW4gKnBsYW4sIGludCBydG9mZnNldCkKIAlyZXR1cm4gcGxhbjsKIH0KIAorLyoKKyAq IFNlYXJjaCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpbiBzdWJxdWVyaWVzCisgKi8KK3Zv aWQKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBsYW5uZXJJbmZvICpyb290KQorewor CVF1ZXJ5CSAgICpxdWVyeSA9IHJvb3QtPnBhcnNlOworCisJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9u VmFyaWFibGVzKQorCXsKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisJfQor CWVsc2UKKwl7CisJCSh2b2lkKSBxdWVyeV90cmVlX3dhbGtlcihxdWVyeSwKKwkJCQkJCQkJIHB1 bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJv b3QsIDApOworCX0KK30KKworc3RhdGljIGJvb2wKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFi bGVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqcm9vdCkKK3sKKwlpZiAobm9kZSA9 PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKElzQShub2RlLCBRdWVyeSkpCisJeworCQlR dWVyeQkgICAqcXVlcnkgPSAoUXVlcnkgKikgbm9kZTsKKworCQlpZiAocXVlcnktPmhhc1Nlc3Np b25WYXJpYWJsZXMpCisJCXsKKwkJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOwor CQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJLyogcmVjdXJzZSBpbnRvIHN1YnNlbGVjdHMgKi8K KwkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKChRdWVyeSAqKSBub2RlLAorCQkJCQkJCQkgcHVs bF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgKHZvaWQgKikgcm9v dCwgMCk7CisJfQorCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHB1bGxfdXBf aGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICAodm9pZCAqKSByb290KTsK K30KKwogLyoKICAqIHNldF9pbmRleG9ubHlzY2FuX3JlZmVyZW5jZXMKICAqCQlEbyBzZXRfcGxh bl9yZWZlcmVuY2VzIHByb2Nlc3Npbmcgb24gYW4gSW5kZXhPbmx5U2NhbgpAQCAtMTk1OCw4ICsy MDA1LDkgQEAgY29weVZhcihWYXIgKnZhcikKICAqIFRoaXMgaXMgY29kZSB0aGF0IGlzIGNvbW1v biB0byBhbGwgdmFyaWFudHMgb2YgZXhwcmVzc2lvbi1maXhpbmcuCiAgKiBXZSBtdXN0IGxvb2sg dXAgb3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKICAq IGFkZCBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxh dGlvbk9pZHMsIGFuZAotICogYWRkIFBsYW5JbnZhbEl0ZW1zIGZvciB1c2VyLWRlZmluZWQgZnVu Y3Rpb25zIGludG8gcm9vdC0+Z2xvYi0+aW52YWxJdGVtcy4KLSAqIFdlIGFsc28gZmlsbCBpbiBj b2x1bW4gaW5kZXggbGlzdHMgZm9yIEdST1VQSU5HKCkgZXhwcmVzc2lvbnMuCisgKiBhZGQgUGxh bkludmFsSXRlbXMgZm9yIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgYW5kIHNlc3Npb24gdmFyaWFi bGVzIGludG8KKyAqIHJvb3QtPmdsb2ItPmludmFsSXRlbXMuICBXZSBhbHNvIGZpbGwgaW4gY29s dW1uIGluZGV4IGxpc3RzIGZvciBHUk9VUElORygpCisgKiBleHByZXNzaW9ucy4KICAqCiAgKiBX ZSBhc3N1bWUgaXQncyBva2F5IHRvIHVwZGF0ZSBvcGNvZGUgaW5mbyBpbi1wbGFjZS4gIFNvIHRo aXMgY291bGQgcG9zc2libHkKICAqIHNjcmliYmxlIG9uIHRoZSBwbGFubmVyJ3MgaW5wdXQgZGF0 YSBzdHJ1Y3R1cmVzLCBidXQgaXQncyBPSy4KQEAgLTIwNDksNiArMjA5NywxMyBAQCBmaXhfZXhw cl9jb21tb24oUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAJCQkJZy0+Y29scyA9IGNv bHM7CiAJCX0KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAg ICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJ QUJMRSkKKwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3kocm9vdCwgcC0+cGFyYW12 YXJpZCk7CisJfQogfQogCiAvKgpAQCAtMjA1OCw2ICsyMTEzLDEwIEBAIGZpeF9leHByX2NvbW1v bihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSkKICAqIElmIGl0J3MgYSBQQVJBTV9NVUxU SUVYUFIsIHJlcGxhY2UgaXQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgUGFyYW0gZnJvbQogICogcm9v dC0+bXVsdGlleHByX3BhcmFtczsgb3RoZXJ3aXNlIG5vIGNoYW5nZSBpcyBuZWVkZWQuCiAgKiBK dXN0IGZvciBwYXJhbm9pYSdzIHNha2UsIHdlIG1ha2UgYSBjb3B5IG9mIHRoZSBub2RlIGluIGVp dGhlciBjYXNlLgorICoKKyAqIElmIGl0J3MgYSBQQVJBTV9WQVJJQUJMRSwgdGhlbiB3ZSBjb2xs ZWN0IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaW4KKyAqIHRoZSBsaXN0IHJvb3QtPmdsb2ItPnNl c3Npb25WYXJpYWJsZS4gIEFsc28sIGFzc2lnbiB0aGUgcGFyYW1ldGVyJ3MKKyAqICJwYXJhbWlk IiB0byB0aGUgcGFyYW1ldGVyJ3MgcG9zaXRpb24gaW4gdGhhdCBsaXN0LgogICovCiBzdGF0aWMg Tm9kZSAqCiBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAqcm9vdCwgUGFyYW0gKnApCkBAIC0y MDc2LDYgKzIxMzUsNDEgQEAgZml4X3BhcmFtX25vZGUoUGxhbm5lckluZm8gKnJvb3QsIFBhcmFt ICpwKQogCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgUEFSQU1fTVVMVElFWFBSIElEOiAlZCIs IHAtPnBhcmFtaWQpOwogCQlyZXR1cm4gY29weU9iamVjdChsaXN0X250aChwYXJhbXMsIGNvbG5v IC0gMSkpOwogCX0KKworCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJewor CQlMaXN0Q2VsbCAgICpsYzsKKwkJaW50CQkJbiA9IDA7CisJCWJvb2wJCWZvdW5kID0gZmFsc2U7 CisKKwkJLyogd2Ugd2lsbCBtb2RpZnkgb2JqZWN0ICovCisJCXAgPSAoUGFyYW0gKikgY29weU9i amVjdChwKTsKKworCQkvKgorCQkgKiBOb3csIHdlIGNhbiBhY3R1YWxpemUgbGlzdCBvZiBzZXNz aW9uIHZhcmlhYmxlcywgYW5kIHdlIGNhbgorCQkgKiBjb21wbGV0ZSBwYXJhbWlkIHBhcmFtZXRl ci4KKwkJICovCisJCWZvcmVhY2gobGMsIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMpCisJ CXsKKwkJCWlmIChsZmlyc3Rfb2lkKGxjKSA9PSBwLT5wYXJhbXZhcmlkKQorCQkJeworCQkJCXAt PnBhcmFtaWQgPSBuOworCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCW4g Kz0gMTsKKwkJfQorCisJCWlmICghZm91bmQpCisJCXsKKwkJCXJvb3QtPmdsb2ItPnNlc3Npb25W YXJpYWJsZXMgPSBsYXBwZW5kX29pZChyb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzLAorCQkJ CQkJCQkJCQkJCSAgIHAtPnBhcmFtdmFyaWQpOworCQkJcC0+cGFyYW1pZCA9IG47CisJCX0KKwor CQlyZXR1cm4gKE5vZGUgKikgcDsKKwl9CisKIAlyZXR1cm4gKE5vZGUgKikgY29weU9iamVjdChw KTsKIH0KIApAQCAtMjEzNyw3ICsyMjMxLDEwIEBAIGZpeF9hbHRlcm5hdGl2ZV9zdWJwbGFuKFBs YW5uZXJJbmZvICpyb290LCBBbHRlcm5hdGl2ZVN1YlBsYW4gKmFzcGxhbiwKICAqIHJlcGxhY2lu ZyBBZ2dyZWYgbm9kZXMgdGhhdCBzaG91bGQgYmUgcmVwbGFjZWQgYnkgaW5pdHBsYW4gb3V0cHV0 IFBhcmFtcywKICAqIGNob29zaW5nIHRoZSBiZXN0IGltcGxlbWVudGF0aW9uIGZvciBBbHRlcm5h dGl2ZVN1YlBsYW5zLAogICogbG9va2luZyB1cCBvcGVyYXRvciBvcGNvZGUgaW5mbyBmb3IgT3BF eHByIGFuZCByZWxhdGVkIG5vZGVzLAotICogYW5kIGFkZGluZyBPSURzIGZyb20gcmVnY2xhc3Mg Q29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxhdGlvbk9pZHMuCisgKiBhZGRpbmcgT0lE cyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRz LAorICogYXNzaWduaW5nIHBhcmFtdmFyaWQgdG8gUEFSQU1fVkFSSUFCTEUgcGFyYW1zLCBhbmQg Y29sbGVjdGluZyB0aGUKKyAqIE9JRHMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhlIHJvb3Qt Pmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgbGlzdAorICogKHBhcmFtdmFyaWQgaXMgdGhlIHBvc2l0 aW9uIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoaXMgbGlzdCkuCiAgKgogICogJ25vZGUn OiB0aGUgZXhwcmVzc2lvbiB0byBiZSBtb2RpZmllZAogICogJ3J0b2Zmc2V0JzogaG93IG11Y2gg dG8gaW5jcmVtZW50IHZhcm5vcyBieQpAQCAtMjE1OSw3ICsyMjU2LDggQEAgZml4X3NjYW5fZXhw cihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSwgaW50IHJ0b2Zmc2V0LCBkb3VibGUgbnVt X2V4ZWMpCiAJCXJvb3QtPm11bHRpZXhwcl9wYXJhbXMgIT0gTklMIHx8CiAJCXJvb3QtPmdsb2It Pmxhc3RQSElkICE9IDAgfHwKIAkJcm9vdC0+bWlubWF4X2FnZ3MgIT0gTklMIHx8Ci0JCXJvb3Qt Pmhhc0FsdGVybmF0aXZlU3ViUGxhbnMpCisJCXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMg fHwKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAl7CiAJCXJldHVybiBmaXhfc2Nhbl9l eHByX211dGF0b3Iobm9kZSwgJmNvbnRleHQpOwogCX0KQEAgLTM1NDQsNiArMzY0MiwyNSBAQCBy ZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBpZCkK IAl9CiB9CiAKKy8qCisgKiBSZWNvcmQgZGVwZW5kZW5jeSBvbiBhIHNlc3Npb24gdmFyaWFibGUu ICBUaGUgdmFyaWFibGUgY2FuIGJlIHVzZWQgYXMgYQorICogc2Vzc2lvbiB2YXJpYWJsZSBpbiBh biBleHByZXNzaW9uIGxpc3QsIG9yIGFzIHRoZSB0YXJnZXQgb2YgYSBMRVQgc3RhdGVtZW50Lgor ICovCitzdGF0aWMgdm9pZAorcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShQbGFubmVy SW5mbyAqcm9vdCwgT2lkIHZhcmlkKQoreworCVBsYW5JbnZhbEl0ZW0gKmludmFsX2l0ZW0gPSBt YWtlTm9kZShQbGFuSW52YWxJdGVtKTsKKworCS8qIHBhcmFtaWQgaXMgc3RpbGwgc2Vzc2lvbiB2 YXJpYWJsZSBpZCAqLworCWludmFsX2l0ZW0tPmNhY2hlSWQgPSBWQVJJQUJMRU9JRDsKKwlpbnZh bF9pdGVtLT5oYXNoVmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCisJ CQkJCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCS8qIGFwcGVuZCB0aGlz IHZhcmlhYmxlIHRvIGdsb2JhbCwgcmVnaXN0ZXIgZGVwZW5kZW5jeSAqLworCXJvb3QtPmdsb2It PmludmFsSXRlbXMgPSBsYXBwZW5kKHJvb3QtPmdsb2ItPmludmFsSXRlbXMsCisJCQkJCQkJCQkg aW52YWxfaXRlbSk7Cit9CisKIC8qCiAgKiBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llcwogICoJ CUdpdmVuIGEgcmV3cml0dGVuLCBidXQgbm90IHlldCBwbGFubmVkLCBxdWVyeSBvciBxdWVyaWVz CkBAIC0zNjI5LDkgKzM3NDYsOSBAQCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIo Tm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpCiAJCQl9CiAKIAkJCS8qCi0JCQkgKiBJ Z25vcmUgb3RoZXIgdXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1Y2ggYXMgRVhQ TEFJTikKLQkJCSAqIHRoYXQgY29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnku ICBGb3IgdGhvc2UsIHdlCi0JCQkgKiBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlv biB0byB0aGUgY29udGFpbmVkIHF1ZXJ5LgorCQkJICogSWdub3JlIG90aGVyIHV0aWxpdHkgc3Rh dGVtZW50cywgZXhjZXB0IHRob3NlIChzdWNoIGFzIEVYUExBSU4KKwkJCSAqIG9yIExFVCkgdGhh dCBjb250YWluIGEgcGFyc2VkLWJ1dC1ub3QtcGxhbm5lZCBxdWVyeS4gIEZvciB0aG9zZSwKKwkJ CSAqIHdlIGp1c3QgbmVlZCB0byB0cmFuc2ZlciBvdXIgYXR0ZW50aW9uIHRvIHRoZSBjb250YWlu ZWQgcXVlcnkuCiAJCQkgKi8KIAkJCXF1ZXJ5ID0gVXRpbGl0eUNvbnRhaW5zUXVlcnkocXVlcnkt PnV0aWxpdHlTdG10KTsKIAkJCWlmIChxdWVyeSA9PSBOVUxMKQpAQCAtMzY1NCw2ICszNzcxLDEw IEBAIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVy SW5mbyAqY29udGV4dCkKIAkJCQkJbGFwcGVuZF9vaWQoY29udGV4dC0+Z2xvYi0+cmVsYXRpb25P aWRzLCBydGUtPnJlbGlkKTsKIAkJfQogCisJCS8qIHJlY29yZCBkZXBlbmRlbmN5IG9uIHRoZSB0 YXJnZXQgdmFyaWFibGUgb2YgYSBMRVQgY29tbWFuZCAqLworCQlpZiAoT2lkSXNWYWxpZChxdWVy eS0+cmVzdWx0VmFyaWFibGUpKQorCQkJcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShj b250ZXh0LCBxdWVyeS0+cmVzdWx0VmFyaWFibGUpOworCiAJCS8qIEFuZCByZWN1cnNlIGludG8g dGhlIHF1ZXJ5J3Mgc3ViZXhwcmVzc2lvbnMgKi8KIAkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2Vy KHF1ZXJ5LCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIsCiAJCQkJCQkJCSAodm9p ZCAqKSBjb250ZXh0LCAwKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVw L3ByZXBqb2ludHJlZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVl LmMKaW5kZXggMzNiMTBkNzJjYjUuLjlmNjk4YTQ2ZDg3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwpAQCAtMTQxMCw2ICsxNDEwLDkgQEAgcHVsbF91cF9zaW1w bGVfc3VicXVlcnkoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmp0bm9kZSwgUmFuZ2VUYmxFbnRy eSAqcnRlLAogCS8qIElmIHN1YnF1ZXJ5IGhhZCBhbnkgUkxTIGNvbmRpdGlvbnMsIG5vdyBtYWlu IHF1ZXJ5IGRvZXMgdG9vICovCiAJcGFyc2UtPmhhc1Jvd1NlY3VyaXR5IHw9IHN1YnF1ZXJ5LT5o YXNSb3dTZWN1cml0eTsKIAorCS8qIGlmIHRoZSBzdWJxdWVyeSBoYWQgc2Vzc2lvbiB2YXJpYWJs ZXMsIHRoZSBtYWluIHF1ZXJ5IGRvZXMgdG9vICovCisJcGFyc2UtPmhhc1Nlc3Npb25WYXJpYWJs ZXMgfD0gc3VicXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXM7CisKIAkvKgogCSAqIHN1YnF1ZXJ5 IHdvbid0IGJlIHB1bGxlZCB1cCBpZiBpdCBoYXNBZ2dzLCBoYXNXaW5kb3dGdW5jcywgb3IKIAkg KiBoYXNUYXJnZXRTUkZzLCBzbyBubyB3b3JrIG5lZWRlZCBvbiB0aG9zZSBmbGFncwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IDhlMzk3OTVlMjQ1Li5hNTQ1MmMwYzllNCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtMjQsNiArMjQsNyBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2Mu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRl ICJleGVjdXRvci9mdW5jdGlvbnMuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05MzUsNiAr OTM2LDEzIEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9wYXJh bGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0g UEFSQU1fRVhURVJOKQogCQkJcmV0dXJuIGZhbHNlOwogCisJCS8qIHdlIGRvbid0IHN1cHBvcnQg cGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCisJCWlmIChwYXJhbS0+cGFy YW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQl7CisJCQlpZiAobWF4X3BhcmFsbGVsX2hhemFy ZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQorCQkJCXJldHVybiB0cnVl OworCQl9CisKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAogCQkJIWxp c3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFtaWQpKQog CQl7CkBAIC0yMzg5LDYgKzIzOTcsNyBAQCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVkX3Nhb3Bfd2Fs a2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAgKgkgIHZhbHVlIG9mIHRoZSBQYXJhbS4K ICAqIDIuIEZvbGQgc3RhYmxlLCBhcyB3ZWxsIGFzIGltbXV0YWJsZSwgZnVuY3Rpb25zIHRvIGNv bnN0YW50cy4KICAqIDMuIFJlZHVjZSBQbGFjZUhvbGRlclZhciBub2RlcyB0byB0aGVpciBjb250 YWluZWQgZXhwcmVzc2lvbnMuCisgKiA0LiBDdXJyZW50IHZhbHVlIG9mIHNlc3Npb24gdmFyaWFi bGUgY2FuIGJlIHVzZWQgZm9yIGVzdGltYXRpb24gdG9vLgogICotLS0tLS0tLS0tLS0tLS0tLS0t LQogICovCiBOb2RlICoKQEAgLTI1MTUsNiArMjUyNCwyOSBAQCBldmFsX2NvbnN0X2V4cHJlc3Np b25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCX0KIAkJCQkJfQogCQkJCX0KKwkJCQllbHNl IGlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFICYmCisJCQkJCQkgY29udGV4 dC0+ZXN0aW1hdGUpCisJCQkJeworCQkJCQlpbnQxNgkJdHlwTGVuOworCQkJCQlib29sCQl0eXBC eVZhbDsKKwkJCQkJRGF0dW0JCXB2YWw7CisJCQkJCWJvb2wJCWlzbnVsbDsKKworCQkJCQlnZXRf dHlwbGVuYnl2YWwocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCSZ0eXBMZW4sICZ0eXBCeVZh bCk7CisKKwkJCQkJcHZhbCA9IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2socGFyYW0t PnBhcmFtdmFyaWQsCisJCQkJCQkJCQkJCQkJCSAgICZpc251bGwsCisJCQkJCQkJCQkJCQkJCSAg IHBhcmFtLT5wYXJhbXR5cGUpOworCisJCQkJCXJldHVybiAoTm9kZSAqKSBtYWtlQ29uc3QocGFy YW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCQkJICBwYXJhbS0+cGFyYW10eXBtb2QsCisJCQkJCQkJ CQkJCSAgcGFyYW0tPnBhcmFtY29sbGlkLAorCQkJCQkJCQkJCQkgIChpbnQpIHR5cExlbiwKKwkJ CQkJCQkJCQkJICBwdmFsLAorCQkJCQkJCQkJCQkgIGlzbnVsbCwKKwkJCQkJCQkJCQkJICB0eXBC eVZhbCk7CisJCQkJfQogCiAJCQkJLyoKIAkJCQkgKiBOb3QgcmVwbGFjZWFibGUsIHNvIGp1c3Qg Y29weSB0aGUgUGFyYW0gKG5vIG5lZWQgdG8KQEAgLTQ3MTgsNyArNDc1MCw4IEBAIGlubGluZV9m dW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAog CQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAog CQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJbGlzdF9sZW5ndGgocXVlcnl0cmVlLT50 YXJnZXRMaXN0KSAhPSAxKQorCQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAh PSAxKSB8fAorCQlxdWVyeXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCWdvdG8gZmFpbDsK IAogCS8qIElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNvbHZlIGl0ICov CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYwppbmRleCA1MDZlMDYzMTYxNS4uODFiOGIwYTYzM2QgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2FuYWx5emUuYwpAQCAtMjUsOSArMjUsMTIgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAj aW5jbHVkZSAiYWNjZXNzL3N5c2F0dHIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5k cy9kZWZyZW0uaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5j bHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVk ZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC01MSw2ICs1NCw3IEBACiAjaW5jbHVkZSAidXRpbHMv YmFja2VuZF9zdGF0dXMuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUg InV0aWxzL2d1Yy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0 aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKQEAgLTgzLDYgKzg3LDgg QEAgc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1DcmVhdGVUYWJsZUFzU3RtdChQYXJzZVN0YXRlICpw c3RhdGUsCiAJCQkJCQkJCQkJIENyZWF0ZVRhYmxlQXNTdG10ICpzdG10KTsKIHN0YXRpYyBRdWVy eSAqdHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQlDYWxsU3Rt dCAqc3RtdCk7CitzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLAorCQkJCQkJCSAgIExldFN0bXQgKnN0bXQpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtTG9j a2luZ0NsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFF1ZXJ5ICpxcnksCiAJCQkJCQkJCSAgIExv Y2tpbmdDbGF1c2UgKmxjLCBib29sIHB1c2hlZERvd24pOwogI2lmZGVmIERFQlVHX05PREVfVEVT VFNfRU5BQkxFRApAQCAtNDE0LDYgKzQyMCw3IEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpwYXJzZVRyZWUpCiAJCQljYXNlIFRfVXBkYXRlU3RtdDoKIAkJCWNhc2Ug VF9EZWxldGVTdG10OgogCQkJY2FzZSBUX01lcmdlU3RtdDoKKwkJCWNhc2UgVF9MZXRTdG10Ogog CQkJCSh2b2lkKSB0ZXN0X3Jhd19leHByZXNzaW9uX2NvdmVyYWdlKHBhcnNlVHJlZSwgTlVMTCk7 CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgpAQCAtNDkzLDYgKzUwMCwxMSBAQCB0cmFuc2Zvcm1T dG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqcGFyc2VUcmVlKQogCQkJCQkJCQkJICAgKENh bGxTdG10ICopIHBhcnNlVHJlZSk7CiAJCQlicmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJ CXJlc3VsdCA9IHRyYW5zZm9ybUxldFN0bXQocHN0YXRlLAorCQkJCQkJCQkJICAoTGV0U3RtdCAq KSBwYXJzZVRyZWUpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAogCQkJLyoKQEAgLTU0NSw2 ICs1NTcsNyBAQCBzdG10X3JlcXVpcmVzX3BhcnNlX2FuYWx5c2lzKFJhd1N0bXQgKnBhcnNlVHJl ZSkKIAkJY2FzZSBUX1NlbGVjdFN0bXQ6CiAJCWNhc2UgVF9SZXR1cm5TdG10OgogCQljYXNlIFRf UExBc3NpZ25TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCXJlc3VsdCA9IHRydWU7CiAJCQli cmVhazsKIApAQCAtNjUzLDYgKzY2Niw3IEBAIHRyYW5zZm9ybURlbGV0ZVN0bXQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBEZWxldGVTdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3Rh dGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hh c1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5o YXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlh c3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTEwNzksNiArMTA5Myw3 IEBAIHRyYW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJbnNlcnRTdG10ICpz dG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJ cXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Np b25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9x dWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMTU0NCw2ICsxNTU5LDcgQEAgdHJh bnNmb3JtU2VsZWN0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJ cXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhh c1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBw c3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBf aGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWZvcmVhY2gobCwgc3RtdC0+bG9ja2luZ0NsYXVzZSkK IAl7CkBAIC0xNzcwLDEyICsxNzg2LDI0MiBAQCB0cmFuc2Zvcm1WYWx1ZXNDbGF1c2UoUGFyc2VT dGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+am9pbnRyZWUgPSBtYWtlRnJv bUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKIAogCXFyeS0+aGFzU3ViTGlua3MgPSBw c3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRl LT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3Rh dGUsIHFyeSk7CiAKIAlyZXR1cm4gcXJ5OwogfQogCisvKgorICogdHJhbnNmb3JtTGV0U3RtdCAt CisgKgkgIHRyYW5zZm9ybSBhbiBMZXQgU3RhdGVtZW50CisgKi8KK3N0YXRpYyBRdWVyeSAqCit0 cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCkKK3sKKwlR dWVyeQkgICAqcXVlcnk7CisJUXVlcnkJICAgKnJlc3VsdDsKKwlMaXN0CSAgICpleHByTGlzdCA9 IE5JTDsKKwlMaXN0CSAgICpleHByTGlzdENvZXIgPSBOSUw7CisJTGlzdENlbGwgICAqbGM7CisJ TGlzdENlbGwgICAqaW5kaXJlY3Rpb25faGVhZCA9IE5VTEw7CisJUXVlcnkJICAgKnNlbGVjdFF1 ZXJ5OworCU9pZAkJCXZhcmlkOworCWNoYXIJICAgKmF0dHJuYW1lID0gTlVMTDsKKwlib29sCQlu b3RfdW5pcXVlOworCWJvb2wJCWlzX3Jvd3R5cGU7CisJT2lkCQkJdHlwaWQ7CisJaW50MzIJCXR5 cG1vZDsKKwlPaWQJCQljb2xsaWQ7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlMaXN0CSAgICpu YW1lcyA9IE5VTEw7CisJaW50CQkJaW5kaXJlY3Rpb25fc3RhcnQ7CisJaW50CQkJaSA9IDA7CisK KwkvKiB0aGVyZSBjYW4ndCBiZSBhbnkgb3V0ZXIgV0lUSCB0byB3b3JyeSBhYm91dCAqLworCUFz c2VydChwc3RhdGUtPnBfY3RlbmFtZXNwYWNlID09IE5JTCk7CisKKwluYW1lcyA9IE5hbWVzRnJv bUxpc3Qoc3RtdC0+dGFyZ2V0KTsKKworCS8qIGxvY2tzIHRoZSB2YXJpYWJsZSB3aXRoIGFuIEFj Y2Vzc1NoYXJlTG9jayAqLworCXZhcmlkID0gSWRlbnRpZnlWYXJpYWJsZShuYW1lcywgJmF0dHJu YW1lLCAmbm90X3VuaXF1ZSwgZmFsc2UpOworCWlmIChub3RfdW5pcXVlKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJIGVy cm1zZygidGFyZ2V0IFwiJXNcIiBvZiBMRVQgY29tbWFuZCBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJ TmFtZUxpc3RUb1N0cmluZyhuYW1lcykpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBzdG10LT5sb2NhdGlvbikpKTsKKworCWlmICghT2lkSXNWYWxpZCh2YXJpZCkpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkg ZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBkb2Vzbid0IGV4aXN0IiwKKwkJCQkJCU5h bWVMaXN0VG9TdHJpbmcobmFtZXMpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg c3RtdC0+bG9jYXRpb24pKSk7CisKKwkvKgorCSAqIENhbGN1bGF0ZSBzdGFydCBvZiBwb3NzaWJs ZSBwb3NpdGlvbiBvZiBhbiBpbmRpcmVjdGlvbiBpbiBsaXN0LCBhbmQKKwkgKiB3aGVuIGl0IGlz IGluc2lkZSB0aGUgbGlzdCwgc3RvcmUgcG9pbnRlciBvbiBmaXJzdCBub2RlIG9mIGluZGlyZWN0 aW9uLgorCSAqLworCWluZGlyZWN0aW9uX3N0YXJ0ID0gbGlzdF9sZW5ndGgobmFtZXMpIC0gKGF0 dHJuYW1lID8gMSA6IDApOworCWlmIChsaXN0X2xlbmd0aChzdG10LT50YXJnZXQpID4gaW5kaXJl Y3Rpb25fc3RhcnQpCisJCWluZGlyZWN0aW9uX2hlYWQgPSBsaXN0X250aF9jZWxsKHN0bXQtPnRh cmdldCwgaW5kaXJlY3Rpb25fc3RhcnQpOworCisJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90 eXBtb2RfY29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBtb2QsICZjb2xsaWQpOworCisJaXNfcm93 dHlwZSA9IHR5cGVfaXNfcm93dHlwZSh0eXBpZCk7CisKKwlpZiAoYXR0cm5hbWUgJiYgIWlzX3Jv d3R5cGUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpF Q1RfVFlQRSksCisJCQkJIGVycm1zZygidHlwZSBcIiVzXCIgb2YgdGFyZ2V0IHNlc3Npb24gdmFy aWFibGUgXCIlcy4lc1wiIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCWZvcm1hdF90 eXBlX2JlKHR5cGlkKSwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo dmFyaWQpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+bG9jYXRpb24p KSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2 YXJpZCwgR2V0VXNlcklkKCksIEFDTF9VUERBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hF Q0tfT0spCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBOYW1l TGlzdFRvU3RyaW5nKG5hbWVzKSk7CisKKwlwc3RhdGUtPnBfZXhwcl9raW5kID0gRVhQUl9LSU5E X0xFVF9UQVJHRVQ7CisKKwkvKiB3ZSBuZWVkIHRvIHBvc3Rwb25lIGNvbnZlcnNpb24gb2YgInVu a25vd24iIHRvIHRleHQgKi8KKwlwc3RhdGUtPnBfcmVzb2x2ZV91bmtub3ducyA9IGZhbHNlOwor CisJc2VsZWN0UXVlcnkgPSB0cmFuc2Zvcm1TdG10KHBzdGF0ZSwgc3RtdC0+cXVlcnkpOworCisJ LyogdGhlIGdyYW1tYXIgc2hvdWxkIGhhdmUgcHJvZHVjZWQgYSBTRUxFQ1QgKi8KKwlBc3NlcnQo SXNBKHNlbGVjdFF1ZXJ5LCBRdWVyeSkgJiYgc2VsZWN0UXVlcnktPmNvbW1hbmRUeXBlID09IENN RF9TRUxFQ1QpOworCisJLyoKKwkgKiBHZW5lcmF0ZSBhbiBleHByZXNzaW9uIGxpc3QgZm9yIHRo ZSBMRVQgdGhhdCBzZWxlY3RzIGFsbCB0aGUgbm9uLXJlc2p1bmsKKwkgKiBjb2x1bW5zIGZyb20g dGhlIHN1YnF1ZXJ5LgorCSAqLworCWV4cHJMaXN0ID0gTklMOworCWZvcmVhY2gobGMsIHNlbGVj dFF1ZXJ5LT50YXJnZXRMaXN0KQorCXsKKwkJVGFyZ2V0RW50cnkgKnRsZSA9IChUYXJnZXRFbnRy eSAqKSBsZmlyc3QobGMpOworCisJCWlmICh0bGUtPnJlc2p1bmspCisJCQljb250aW51ZTsKKwor CQlleHByTGlzdCA9IGxhcHBlbmQoZXhwckxpc3QsIHRsZS0+ZXhwcik7CisJfQorCisJLyogZG9u J3QgYWxsb3cgbXVsdGljb2x1bW4gcmVzdWx0ICovCisJaWYgKGxpc3RfbGVuZ3RoKGV4cHJMaXN0 KSAhPSAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VS Uk9SKSwKKwkJCQkgZXJybXNnX3BsdXJhbCgiYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVk ICVkIGNvbHVtbiIsCisJCQkJCQkJICAgImFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAl ZCBjb2x1bW5zIiwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlzdCksCisJCQkJCQkJICAg bGlzdF9sZW5ndGgoZXhwckxpc3QpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwK KwkJCQkJCQkJCWV4cHJMb2NhdGlvbigoTm9kZSAqKSBleHByTGlzdCkpKSk7CisKKwlleHByTGlz dENvZXIgPSBOSUw7CisKKwlmb3JlYWNoKGxjLCBleHByTGlzdCkKKwl7CisJCUV4cHIJICAgKmV4 cHIgPSAoRXhwciAqKSBsZmlyc3QobGMpOworCQlFeHByCSAgICpjb2VyY2VkX2V4cHI7CisJCVBh cmFtCSAgICpwYXJhbTsKKwkJT2lkCQkJZXhwcnR5cGlkOworCisJCS8qIG5vdyB3ZSBjYW4gcmVh ZCB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiAqLworCQlleHBydHlwaWQgPSBleHByVHlwZSgo Tm9kZSAqKSBleHByKTsKKworCQlwYXJhbSA9IG1ha2VOb2RlKFBhcmFtKTsKKwkJcGFyYW0tPnBh cmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCQlwYXJhbS0+cGFyYW12YXJpZCA9IHZhcmlkOwor CQlwYXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7CisJCXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1v ZDsKKworCQlpZiAoaW5kaXJlY3Rpb25faGVhZCkKKwkJeworCQkJYm9vbAkJdGFyZ2V0SXNBcnJh eTsKKwkJCWNoYXIJICAgKnRhcmdldE5hbWU7CisKKwkJCXRhcmdldE5hbWUgPSBnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lKHZhcmlkKTsKKwkJCXRhcmdldElzQXJyYXkgPSBPaWRJc1ZhbGlkKGdl dF9lbGVtZW50X3R5cGUodHlwaWQpKTsKKworCQkJcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJs ZXMgPSB0cnVlOworCisJCQljb2VyY2VkX2V4cHIgPSAoRXhwciAqKQorCQkJCXRyYW5zZm9ybUFz c2lnbm1lbnRJbmRpcmVjdGlvbihwc3RhdGUsCisJCQkJCQkJCQkJCSAgIChOb2RlICopIHBhcmFt LAorCQkJCQkJCQkJCQkgICB0YXJnZXROYW1lLAorCQkJCQkJCQkJCQkgICB0YXJnZXRJc0FycmF5 LAorCQkJCQkJCQkJCQkgICB0eXBpZCwKKwkJCQkJCQkJCQkJICAgdHlwbW9kLAorCQkJCQkJCQkJ CQkgICBJbnZhbGlkT2lkLAorCQkJCQkJCQkJCQkgICBzdG10LT50YXJnZXQsCisJCQkJCQkJCQkJ CSAgIGluZGlyZWN0aW9uX2hlYWQsCisJCQkJCQkJCQkJCSAgIChOb2RlICopIGV4cHIsCisJCQkJ CQkJCQkJCSAgIENPRVJDSU9OX0FTU0lHTk1FTlQsCisJCQkJCQkJCQkJCSAgIHN0bXQtPmxvY2F0 aW9uKTsKKwkJfQorCQllbHNlCisJCQljb2VyY2VkX2V4cHIgPSAoRXhwciAqKQorCQkJCWNvZXJj ZV90b190YXJnZXRfdHlwZShwc3RhdGUsCisJCQkJCQkJCQkgIChOb2RlICopIGV4cHIsCisJCQkJ CQkJCQkgIGV4cHJ0eXBpZCwKKwkJCQkJCQkJCSAgdHlwaWQsIHR5cG1vZCwKKwkJCQkJCQkJCSAg Q09FUkNJT05fQVNTSUdOTUVOVCwKKwkJCQkJCQkJCSAgQ09FUkNFX0lNUExJQ0lUX0NBU1QsCisJ CQkJCQkJCQkgIHN0bXQtPmxvY2F0aW9uKTsKKworCQlpZiAoY29lcmNlZF9leHByID09IE5VTEwp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01B VENIKSwKKwkJCQkJIGVycm1zZygidmFyaWFibGUgXCIlcy4lc1wiIGlzIG9mIHR5cGUgJXMsIgor CQkJCQkJCSIgYnV0IGV4cHJlc3Npb24gaXMgb2YgdHlwZSAlcyIsCisJCQkJCQkJZ2V0X25hbWVz cGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJ CWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZvcm1hdF90eXBlX2Jl KHR5cGlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHBydHlwaWQpKSwKKwkJCQkJIGVycmhp bnQoIllvdSB3aWxsIG5lZWQgdG8gcmV3cml0ZSBvciBjYXN0IHRoZSBleHByZXNzaW9uLiIpLAor CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIGV4 cHIpKSkpOworCisJCWV4cHJMaXN0Q29lciA9IGxhcHBlbmQoZXhwckxpc3RDb2VyLCBjb2VyY2Vk X2V4cHIpOworCX0KKworCS8qIGdlbmVyYXRlIHF1ZXJ5J3MgdGFyZ2V0IGxpc3QgdXNpbmcgdGhl IGNvbXB1dGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMgKi8KKwlxdWVyeSA9IG1ha2VOb2RlKFF1ZXJ5 KTsKKwlxdWVyeS0+Y29tbWFuZFR5cGUgPSBDTURfU0VMRUNUOworCisJZm9yZWFjaChsYywgZXhw ckxpc3RDb2VyKQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CisJ CVRhcmdldEVudHJ5ICp0bGU7CisKKwkJdGxlID0gbWFrZVRhcmdldEVudHJ5KGV4cHIsCisJCQkJ CQkJICBpICsgMSwKKwkJCQkJCQkgIEZpZ3VyZUNvbG5hbWUoKE5vZGUgKikgZXhwciksCisJCQkJ CQkJICBmYWxzZSk7CisJCXF1ZXJ5LT50YXJnZXRMaXN0ID0gbGFwcGVuZChxdWVyeS0+dGFyZ2V0 TGlzdCwgdGxlKTsKKwl9CisKKwkvKiBkb25lIGJ1aWxkaW5nIHRoZSByYW5nZSB0YWJsZSBhbmQg am9pbnRyZWUgKi8KKwlxdWVyeS0+cnRhYmxlID0gcHN0YXRlLT5wX3J0YWJsZTsKKwlxdWVyeS0+ am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKKworCXF1 ZXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CisJcXVlcnktPmhh c1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXF1ZXJ5LT5oYXNTZXNzaW9uVmFy aWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CisKKwkvKiB0aGlzIGlzIHRv cC1sZXZlbCBxdWVyeSAqLworCXF1ZXJ5LT5jYW5TZXRUYWcgPSB0cnVlOworCisJLyoKKwkgKiBT YXZlIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIElELiAgVGhpcyB2YWx1ZSBpcyB1c2VkIG11bHRp cGxlIHRpbWVzOiBieQorCSAqIHRoZSBxdWVyeSByZXdyaXRlciAoZm9yIGdldHRpbmcgcmVsYXRl ZCBkZWZleHByKSwgYnkgcGxhbm5lciAoZm9yCisJICogYWNxdWlyaW5nIGFuIEFjY2Vzc1NoYXJl TG9jayBvbiB0YXJnZXQgdmFyaWFibGUpLCBhbmQgYnkgdGhlIGV4ZWN1dG9yCisJICogKHdlIG5l ZWQgdG8ga25vdyB0aGUgdGFyZ2V0IHZhcmlhYmxlIElEKS4KKwkgKi8KKwlxdWVyeS0+cmVzdWx0 VmFyaWFibGUgPSB2YXJpZDsKKworCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXVl cnkpOworCisJLyoKKwkgKiBUaGUgcXVlcnkgaXMgZXhlY3V0ZWQgYXMgdXRpbGl0eSBjb21tYW5k IGJ5IG5lc3RlZCBleGVjdXRvciBjYWxsLgorCSAqIEFzc2lnbmVkIHF1ZXJ5SWQgaXMgcmVxdWly ZWQgaW4gdGhpcyBjYXNlLgorCSAqLworCWlmIChJc1F1ZXJ5SWRFbmFibGVkKCkpCisJCUp1bWJs ZVF1ZXJ5KHF1ZXJ5KTsKKworCXN0bXQtPnF1ZXJ5ID0gKE5vZGUgKikgcXVlcnk7CisKKwkvKiBy ZXByZXNlbnQgdGhlIGNvbW1hbmQgYXMgYSB1dGlsaXR5IFF1ZXJ5ICovCisJcmVzdWx0ID0gbWFr ZU5vZGUoUXVlcnkpOworCXJlc3VsdC0+Y29tbWFuZFR5cGUgPSBDTURfVVRJTElUWTsKKwlyZXN1 bHQtPnV0aWxpdHlTdG10ID0gKE5vZGUgKikgc3RtdDsKKworCXJldHVybiByZXN1bHQ7Cit9CisK IC8qCiAgKiB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10IC0KICAqCSAgdHJhbnNmb3JtcyBhIHNl dC1vcGVyYXRpb25zIHRyZWUKQEAgLTIwMjEsNiArMjI2Nyw3IEBAIHRyYW5zZm9ybVNldE9wZXJh dGlvblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+aGFz V2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRT UkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5w X2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Np b25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGwsIGxvY2tpbmdDbGF1c2UpCiAJewpAQCAtMjQ5Niw2 ICsyNzQzLDcgQEAgdHJhbnNmb3JtUmV0dXJuU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFJldHVy blN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dG dW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlx cnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJs ZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xs YXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjU2Myw2ICsyODExLDcgQEAgdHJhbnNmb3JtVXBk YXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQgKnN0bXQpCiAKIAlxcnktPmhh c1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc1N1Ykxpbmtz ID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBz dGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMo cHN0YXRlLCBxcnkpOwogCkBAIC0yNzUwLDkgKzI5OTksMTUgQEAgdHJhbnNmb3JtUExBc3NpZ25T dG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCS8qCiAJICogVHJh bnNmb3JtIHRoZSB0YXJnZXQgcmVmZXJlbmNlLiAgVHlwaWNhbGx5IHdlIHdpbGwgZ2V0IGJhY2sg YSBQYXJhbQogCSAqIG5vZGUsIGJ1dCB0aGVyZSdzIG5vIHJlYXNvbiB0byBiZSB0b28gcGlja3kg YWJvdXQgaXRzIHR5cGUuCisJICoKKwkgKiBTZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgbm90IGJl IHVzZWQgYXMgdGFyZ2V0IG9mIGEgUEwvcGdTUUwgYXNzaWduCisJICogc3RhdGVtZW50LiAgU28g d2Ugc2hvdWxkIHVzZSBhIGRlZGljYXRlZCBleHByZXNzaW9uIGtpbmQgYW5kIGRpc2FsbG93CisJ ICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhlcmUuICBUaGUgZGVkaWNhdGVkIGNvbnRleHQgYWxsb3dz IHRvIGVsaW1pbmF0ZQorCSAqIHVuZGVzaXJhYmxlIHdhcm5pbmdzIGFib3V0IHRoZSBwb3NzaWJp bGl0eSBvZiBhIHRhcmdldCBQTC9wZ1NRTCB2YXJpYWJsZQorCSAqIHNoYWRvd2luZyBhIHNlc3Np b24gdmFyaWFibGUuCiAJICovCiAJdGFyZ2V0ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIChOb2Rl ICopIGNyZWYsCi0JCQkJCQkgICBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVCk7CisJCQkJCQkgICBF WFBSX0tJTkRfQVNTSUdOX1RBUkdFVCk7CiAJdGFyZ2V0dHlwZSA9IGV4cHJUeXBlKHRhcmdldCk7 CiAJdGFyZ2V0dHlwbW9kID0gZXhwclR5cG1vZCh0YXJnZXQpOwogCXRhcmdldGNvbGxhdGlvbiA9 IGV4cHJDb2xsYXRpb24odGFyZ2V0KTsKQEAgLTI3OTQsNiArMzA0OSwxMCBAQCB0cmFuc2Zvcm1Q TEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJICov CiAJdHlwZV9pZCA9IGV4cHJUeXBlKChOb2RlICopIHRsZS0+ZXhwcik7CiAKKwkvKgorCSAqIEZv ciBpbmRpcmVjdGlvbiBwcm9jZXNzaW5nIGFuZCBhZGRpdGlvbmFsIGNhc3RzIHdlIGNhbiB1c2Ug ZXhwcl9raW5kCisJICogRVhQUl9LSU5EX1VQREFURV9UQVJHRVQuCisJICovCiAJcHN0YXRlLT5w X2V4cHJfa2luZCA9IEVYUFJfS0lORF9VUERBVEVfVEFSR0VUOwogCiAJaWYgKGluZGlyZWN0aW9u KQpAQCAtMjkzNiw2ICszMTk1LDggQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUg KnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCQkJCQkJCSAgIChMb2NraW5nQ2xhdXNlICop IGxmaXJzdChsKSwgZmFsc2UpOwogCX0KIAorCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBz dGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMo cHN0YXRlLCBxcnkpOwogCiAJLyogdGhpcyBtdXN0IGJlIGRvbmUgYWZ0ZXIgY29sbGF0aW9ucywg Zm9yIHJlbGlhYmxlIGNvbXBhcmlzb24gb2YgZXhwcnMgKi8KQEAgLTMyMDksNiArMzQ3MCwxNCBA QCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIENhbGxTdG10ICpzdG10KQog CQkJCQkJCSB0cnVlLAogCQkJCQkJCSBzdG10LT5mdW5jY2FsbC0+bG9jYXRpb24pOwogCisJLyoK KwkgKiBUaGUgYXJndW1lbnRzIG9mIENBTEwgc3RhdGVtZW50IGFyZSBldmFsdWF0ZWQgYnkgYSBk aXJlY3QgZXhwcmVzc2lvbgorCSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlzIHBhdGggaXMgdW5zdXBw b3J0ZWQgeWV0LCBzbyBibG9jayBpdC4gIEl0IHdpbGwgYmUKKwkgKiBlbmFibGVkIGxhdGVyLgor CSAqLworCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJZWxvZyhFUlJPUiwg InNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKTsKKwogCWFz c2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBub2RlKTsKIAogCWZleHByID0gY2FzdE5vZGUo RnVuY0V4cHIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNTlkYTNiNTBhYjkuLmY3ZTRjMjdiNTUw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKQEAgLTI5Myw3ICsyOTMsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vy c2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogCQlEcm9wVHJhbnNmb3JtU3RtdAogCQlEcm9wVXNlck1hcHBpbmdTdG10IEV4cGxhaW5TdG10 IEZldGNoU3RtdAogCQlHcmFudFN0bXQgR3JhbnRSb2xlU3RtdCBJbXBvcnRGb3JlaWduU2NoZW1h U3RtdCBJbmRleFN0bXQgSW5zZXJ0U3RtdAotCQlMaXN0ZW5TdG10IExvYWRTdG10IExvY2tTdG10 IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxhaW5hYmxlU3RtdCBQcmVwYXJhYmxlU3RtdAorCQlM ZXRTdG10IExpc3RlblN0bXQgTG9hZFN0bXQgTG9ja1N0bXQgTWVyZ2VTdG10IE5vdGlmeVN0bXQg RXhwbGFpbmFibGVTdG10IFByZXBhcmFibGVTdG10CiAJCUNyZWF0ZUZ1bmN0aW9uU3RtdCBBbHRl ckZ1bmN0aW9uU3RtdCBSZWluZGV4U3RtdCBSZW1vdmVBZ2dyU3RtdAogCQlSZW1vdmVGdW5jU3Rt dCBSZW1vdmVPcGVyU3RtdCBSZW5hbWVTdG10IFJldHVyblN0bXQgUmV2b2tlU3RtdCBSZXZva2VS b2xlU3RtdAogCQlSdWxlQWN0aW9uU3RtdCBSdWxlQWN0aW9uU3RtdE9yRW1wdHkgUnVsZVN0bXQK QEAgLTQ0Myw2ICs0NDMsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3Qo Y2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCVRyaWdnZXJU cmFuc2l0aW9ucyBUcmlnZ2VyUmVmZXJlbmNpbmcKIAkJCQl2YWN1dW1fcmVsYXRpb25fbGlzdCBv cHRfdmFjdXVtX3JlbGF0aW9uX2xpc3QKIAkJCQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpfbGlz dAorCQkJCWxldF90YXJnZXQKIAogJXR5cGUgPG5vZGU+CW9wdF9yb3V0aW5lX2JvZHkKICV0eXBl IDxncm91cGNsYXVzZT4gZ3JvdXBfY2xhdXNlCkBAIC03MzQsNyArNzM1LDcgQEAgc3RhdGljIE5v ZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKIAlLRUVQIEtFWSBLRVlTCiAKIAlMQUJFTCBMQU5HVUFHRSBMQVJHRV9Q IExBU1RfUCBMQVRFUkFMX1AKLQlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZUIExFVkVMIExJ S0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKKwlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZU IExFVCBMRVZFTCBMSUtFIExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCiAJTE9DQUxUSU1FIExPQ0FM VElNRVNUQU1QIExPQ0FUSU9OIExPQ0tfUCBMT0NLRUQgTE9HR0VECiAKIAlNQVBQSU5HIE1BVENI IE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1FUkdFX0FDVElPTiBNRVRIT0QK QEAgLTEwODEsNiArMTA4Miw3IEBAIHN0bXQ6CiAJCQl8IEltcG9ydEZvcmVpZ25TY2hlbWFTdG10 CiAJCQl8IEluZGV4U3RtdAogCQkJfCBJbnNlcnRTdG10CisJCQl8IExldFN0bXQKIAkJCXwgTGlz dGVuU3RtdAogCQkJfCBSZWZyZXNoTWF0Vmlld1N0bXQKIAkJCXwgTG9hZFN0bXQKQEAgLTEyNzUz LDYgKzEyNzU1LDQ3IEBAIG9wdF9ob2xkOiAvKiBFTVBUWSAqLwkJCQkJCXsgJCQgPSAwOyB9CiAJ CQl8IFdJVEhPVVQgSE9MRAkJCQkJeyAkJCA9IDA7IH0KIAkJOwogCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKyAqCisgKgkJUVVFUlk6CisgKgkJCQlMRVQgU1RBVEVNRU5UCisgKgorICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworTGV0U3RtdDoJTEVUIGxldF90YXJnZXQgJz0nIGFfZXhwcgorCQkJCXsK KwkJCQkJTGV0U3RtdAkgICAqbiA9IG1ha2VOb2RlKExldFN0bXQpOworCQkJCQlTZWxlY3RTdG10 ICpzZWxlY3Q7CisJCQkJCVJlc1RhcmdldCAgKnJlczsKKworCQkJCQluLT50YXJnZXQgPSAkMjsK KworCQkJCQlzZWxlY3QgPSBtYWtlTm9kZShTZWxlY3RTdG10KTsKKwkJCQkJcmVzID0gbWFrZU5v ZGUoUmVzVGFyZ2V0KTsKKworCQkJCQkvKiBjcmVhdGUgdGFyZ2V0IGxpc3QgZm9yIGltcGxpY2l0 IHF1ZXJ5ICovCisJCQkJCXJlcy0+bmFtZSA9IE5VTEw7CisJCQkJCXJlcy0+aW5kaXJlY3Rpb24g PSBOSUw7CisJCQkJCXJlcy0+dmFsID0gKE5vZGUgKikgJDQ7CisJCQkJCXJlcy0+bG9jYXRpb24g PSBANDsKKworCQkJCQlzZWxlY3QtPnRhcmdldExpc3QgPSBsaXN0X21ha2UxKHJlcyk7CisJCQkJ CW4tPnF1ZXJ5ID0gKE5vZGUgKikgc2VsZWN0OworCisJCQkJCW4tPmxvY2F0aW9uID0gQDI7CisJ CQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKworbGV0X3RhcmdldDoKKwkJCUNvbElk IG9wdF9pbmRpcmVjdGlvbgorCQkJCXsKKwkJCQkJJCQgPSBsaXN0X21ha2UxKG1ha2VTdHJpbmco JDEpKTsKKwkJCQkJaWYgKCQyKQorCQkJCQkJICAkJCA9IGxpc3RfY29uY2F0KCQkLAorCQkJCQkJ CQkJCSAgIGNoZWNrX2luZGlyZWN0aW9uKCQyLCB5eXNjYW5uZXIpKTsKKwkJCQl9CisJCTsKKwog LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCiAgKgogICoJCVFVRVJZOgpAQCAtMTc4MjMsNiArMTc4NjYs NyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IExBUkdFX1AKIAkJCXwgTEFTVF9QCiAJCQl8 IExFQUtQUk9PRgorCQkJfCBMRVQKIAkJCXwgTEVWRUwKIAkJCXwgTElTVEVOCiAJCQl8IExPQUQK QEAgLTE4NDM0LDYgKzE4NDc4LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBMRUFLUFJP T0YKIAkJCXwgTEVBU1QKIAkJCXwgTEVGVAorCQkJfCBMRVQKIAkJCXwgTEVWRUwKIAkJCXwgTElL RQogCQkJfCBMSVNURU4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCBlZmE3MzBjMTY3Ni4uYTcz NDMwMDFmMjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTU4MCw2ICs1ODAsMTEgQEAgY2hl Y2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIpCiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOwogCisJCWNhc2UgRVhQUl9LSU5EX0FT U0lHTl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQllcnJraW5kID0g dHJ1ZTsKKwkJCWJyZWFrOworCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBu byBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCiAJCQkgKiBjb21waWxlciB3aWxsIHdh cm4gaWYgd2UgYWRkIGEgbmV3IFBhcnNlRXhwcktpbmQgd2l0aG91dApAQCAtOTcwLDYgKzk3NSwx MCBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0Z1 bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJZXJya2luZCA9IHRy dWU7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBF WFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCWVycmtpbmQgPSB0cnVlOworCQkJYnJlYWs7CiAKIAkJ CS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwg c28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGMyODA2Mjk3YWE0Li5hYmE1 MjU5ZTAyNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC0xNyw2ICsxNyw3IEBACiAKICNp bmNsdWRlICJjYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5k cy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMv bWFrZWZ1bmNzLmgiCkBAIC0zMywxMSArMzQsMTMgQEAKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vf cmVsYXRpb24uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdGFyZ2V0LmgiCiAjaW5jbHVkZSAi cGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRl ICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2RhdGUuaCIKICNpbmNsdWRlICJ1 dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUg InV0aWxzL3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgInV0aWxzL3R5cGNhY2hlLmgiCiAjaW5jbHVk ZSAidXRpbHMveG1sLmgiCiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCkBAIC0xMDYsNiArMTA5LDkg QEAgc3RhdGljIEV4cHIgKm1ha2VfZGlzdGluY3Rfb3AoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0 ICpvcG5hbWUsCiAJCQkJCQkJICBOb2RlICpsdHJlZSwgTm9kZSAqcnRyZWUsIGludCBsb2NhdGlv bik7CiBzdGF0aWMgTm9kZSAqbWFrZV9udWxsdGVzdF9mcm9tX2Rpc3RpbmN0KFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkJCQkJCQkJCQkgQV9FeHByICpkaXN0aW5jdGEsIE5vZGUgKmFyZyk7CitzdGF0 aWMgTm9kZSAqbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJ CQkJCQkJCSAgT2lkIHZhcmlkLCBPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwK KwkJCQkJCQkJCSAgY2hhciAqYXR0cm5hbWUsIGludCBsb2NhdGlvbik7CiAKIAogLyoKQEAgLTQ5 OSw2ICs1MDUsODkgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBB X0luZGlyZWN0aW9uICppbmQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIFJldHVybnMg dHJ1ZSBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBraW5kIGlzIHZhbGlkIGZvciBzZXNzaW9uIHZh cmlhYmxlcy4KKyAqIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSB1c2VkIGV2ZXJ5d2hlcmUgd2hl cmUgZXh0ZXJuYWwgcGFyYW1ldGVycyBjYW4gYmUKKyAqIHVzZWQuICBTZXNzaW9uIHZhcmlhYmxl cyBhcmUgbm90IGFsbG93ZWQgaW4gRERMIGNvbW1hbmRzIG9yIGluIGNvbnN0cmFpbnRzLgorICoK KyAqIEFuIGlkZW50aWZpZXIgY2FuIGJlIHBhcnNlZCBhcyBhIHNlc3Npb24gdmFyaWFibGUgb25s eSBmb3IgZXhwcmVzc2lvbiBraW5kcworICogd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGFs bG93ZWQuICBUaGlzIGlzIHRoZSBwcmltYXJ5IHVzYWdlIG9mIHRoaXMKKyAqIGZ1bmN0aW9uLgor ICoKKyAqIFRoZSBzZWNvbmQgdXNhZ2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBkZWNpZGUgd2hl dGhlciBhICJjb2x1bW4gZG9lcyBub3QKKyAqIGV4aXN0IiBvciBhICJjb2x1bW4gb3IgdmFyaWFi bGUgZG9lcyBub3QgZXhpc3QiIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIGJlCisgKiBwcmludGVkLiAg V2hlbiB3ZSBhcmUgaW4gYW4gZXhwcmVzc2lvbiB3aGVyZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW5u b3QgYmUKKyAqIHVzZWQsIHdlIHJhaXNlIHRoZSBmaXJzdCBmb3JtIG9mIGVycm9yIG1lc3NhZ2Uu CisgKi8KK3N0YXRpYyBib29sCitleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKFBh cnNlRXhwcktpbmQgcF9leHByX2tpbmQpCit7CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7CisKKwlz d2l0Y2ggKHBfZXhwcl9raW5kKQorCXsKKwkJY2FzZSBFWFBSX0tJTkRfTk9ORToKKwkJCUFzc2Vy dChmYWxzZSk7CQkvKiBjYW4ndCBoYXBwZW4gKi8KKwkJCXJldHVybiBmYWxzZTsKKworCQkvKiBz ZXNzaW9uIHZhcmlhYmxlcyBhbGxvd2VkICovCisJCWNhc2UgRVhQUl9LSU5EX09USEVSOgorCQlj YXNlIEVYUFJfS0lORF9KT0lOX09OOgorCQljYXNlIEVYUFJfS0lORF9GUk9NX1NVQlNFTEVDVDoK KwkJY2FzZSBFWFBSX0tJTkRfRlJPTV9GVU5DVElPTjoKKwkJY2FzZSBFWFBSX0tJTkRfV0hFUkU6 CisJCWNhc2UgRVhQUl9LSU5EX0hBVklORzoKKwkJY2FzZSBFWFBSX0tJTkRfRklMVEVSOgorCQlj YXNlIEVYUFJfS0lORF9XSU5ET1dfUEFSVElUSU9OOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1df T1JERVI6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9SQU5HRToKKwkJY2FzZSBFWFBS X0tJTkRfV0lORE9XX0ZSQU1FX1JPV1M6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9H Uk9VUFM6CisJCWNhc2UgRVhQUl9LSU5EX1NFTEVDVF9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5E X0lOU0VSVF9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9TT1VSQ0U6CisJCWNhc2Ug RVhQUl9LSU5EX1VQREFURV9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX01FUkdFX1dIRU46CisJ CWNhc2UgRVhQUl9LSU5EX01FUkdFX1JFVFVSTklORzoKKwkJY2FzZSBFWFBSX0tJTkRfR1JPVVBf Qlk6CisJCWNhc2UgRVhQUl9LSU5EX09SREVSX0JZOgorCQljYXNlIEVYUFJfS0lORF9ESVNUSU5D VF9PTjoKKwkJY2FzZSBFWFBSX0tJTkRfTElNSVQ6CisJCWNhc2UgRVhQUl9LSU5EX09GRlNFVDoK KwkJY2FzZSBFWFBSX0tJTkRfUkVUVVJOSU5HOgorCQljYXNlIEVYUFJfS0lORF9WQUxVRVM6CisJ CWNhc2UgRVhQUl9LSU5EX1ZBTFVFU19TSU5HTEU6CisJCWNhc2UgRVhQUl9LSU5EX0FMVEVSX0NP TF9UUkFOU0ZPUk06CisJCWNhc2UgRVhQUl9LSU5EX0VYRUNVVEVfUEFSQU1FVEVSOgorCQljYXNl IEVYUFJfS0lORF9QT0xJQ1k6CisJCWNhc2UgRVhQUl9LSU5EX0NBTExfQVJHVU1FTlQ6CisJCWNh c2UgRVhQUl9LSU5EX0NPUFlfV0hFUkU6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJ CQlyZXN1bHQgPSB0cnVlOworCQkJYnJlYWs7CisKKwkJLyogc2Vzc2lvbiB2YXJpYWJsZXMgbm90 IGFsbG93ZWQgKi8KKwkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKKwkJY2FzZSBF WFBSX0tJTkRfRE9NQUlOX0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoK KwkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfSU5E RVhfRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfUFJFRElDQVRFOgorCQljYXNl IEVYUFJfS0lORF9TVEFUU19FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9UUklHR0VSX1dI RU46CisJCWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9CT1VORDoKKwkJY2FzZSBFWFBSX0tJTkRf UEFSVElUSU9OX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46 CisJCWNhc2UgRVhQUl9LSU5EX0pPSU5fVVNJTkc6CisJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01B Uks6CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQlyZXN1bHQgPSBmYWxzZTsK KwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBUcmFuc2Zvcm0g YSBDb2x1bW5SZWYuCiAgKgpAQCAtNTc1LDYgKzY2NCw4IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQ YXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfQ09Q WV9XSEVSRToKIAkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJY2FzZSBFWFBS X0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2Fz ZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCS8qIG9rYXkgKi8KIAkJCWJyZWFrOwogCkBAIC04 NDcsOCArOTM4LDYxIEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENv bHVtblJlZiAqY3JlZikKIAl9CiAKIAkvKgotCSAqIFRocm93IGVycm9yIGlmIG5vIHRyYW5zbGF0 aW9uIGZvdW5kLgorCSAqIFRoZXJlIGFyZSBjb250ZXh0cyB3aGVyZSBzZXNzaW9uIHZhcmlhYmxl cyBhcmUgbm90IGFsbG93ZWQuICBXZSBkb24ndAorCSAqIG5lZWQgdG8gaWRlbnRpZnkgc2Vzc2lv biB2YXJpYWJsZXMgaW4gc3VjaCBhIGNvbnRleHQsIGJ1dCBpZGVudGlmeWluZworCSAqIHRoZW0g YWxsb3dzIHVzIHRvIHJhaXNlIG1lYW5pbmdmdWwgZXJyb3IgbWVzc2FnZXMgbGlrZSAieW91IGNh bm5vdCB1c2UKKwkgKiBzZXNzaW9uIHZhcmlhYmxlcyBoZXJlIi4KIAkgKi8KKwlpZiAoZXhwcl9r aW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSkKKwl7CisJ CU9pZAkJCXZhcmlkID0gSW52YWxpZE9pZDsKKwkJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOwor CQlib29sCQlub3RfdW5pcXVlOworCisJCS8qIC0tLS0tCisJCSAqIFNlc3Npb24gdmFyaWFibGVz IGFyZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lIHZhcmlhYmxlcyBvcgorCQkgKiByb3V0 aW5lIGFyZ3VtZW50cy4gIFdlIGNlcnRhaW5seSBkb24ndCB3YW50IHRvIHVzZSBhIHNlc3Npb24g dmFyaWFibGUKKwkJICogd2hlbiBpdCBpcyBleGFjdGx5IHNoYWRvd2VkLCBidXQgYSBSVEUgbGlr ZSB0aGlzIGlzIGNvbmNlaXZhYmxlOgorCQkgKgorCQkgKiBDUkVBVEUgVFlQRSB0IEFTIChjIGlu dCk7CisJCSAqIENSRUFURSBWQVJJQUJMRSBmb28gQVMgdDsKKwkJICogQ1JFQVRFIFRBQkxFIGZv byhhIGludCwgYiBpbnQpOworCQkgKgorCQkgKiBTRUxFQ1QgZm9vLmEsIGZvby5iLCBmb28uYyBG Uk9NIGZvbzsKKwkJICoKKwkJICogSG93ZXZlciwgdGhhdCBpcyB2ZXJ5IGNvbmZ1c2luZywgc28g d2UgZGlzYWxsb3cgaXQuICBXZSBkb24ndCB0cnkgdG8KKwkJICogaWRlbnRpZnkgYSB2YXJpYWJs ZSBpZiB3ZSBrbm93IHRoYXQgaXQgd291bGQgYmUgc2hhZG93ZWQuCisJCSAqIC0tLS0tCisJCSAq LworCQlpZiAoIW5vZGUgJiYgIShyZWxuYW1lICYmIGNyZXJyID09IENSRVJSX05PX0NPTFVNTikp CisJCXsKKwkJCS8qIHRha2VzIGFuIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbiB2YXJp YWJsZSAqLworCQkJdmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKGNyZWYtPmZpZWxkcywgJmF0dHJu YW1lLCAmbm90X3VuaXF1ZSwgZmFsc2UpOworCisJCQlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJ CQl7CisJCQkJT2lkCQkJdHlwaWQ7CisJCQkJaW50MzIJCXR5cG1vZDsKKwkJCQlPaWQJCQljb2xs aWQ7CisKKwkJCQlpZiAobm90X3VuaXF1ZSkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQko ZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19QQVJBTUVURVIpLAorCQkJCQkJCSBlcnJtc2coInNl c3Npb24gdmFyaWFibGUgcmVmZXJlbmNlIFwiJXNcIiBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJCQkJ TmFtZUxpc3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CisKKwkJCQlnZXRfc2Vzc2lvbl92YXJpYWJs ZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBpZCwgJnR5cG1vZCwKKwkJCQkJCQkJCQkJ CQkJJmNvbGxpZCk7CisKKwkJCQlub2RlID0gbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0 ZSwKKwkJCQkJCQkJCQkJCXZhcmlkLCB0eXBpZCwgdHlwbW9kLCBjb2xsaWQsCisJCQkJCQkJCQkJ CQlhdHRybmFtZSwgY3JlZi0+bG9jYXRpb24pOworCQkJfQorCQl9CisJfQorCisJLyogdGhyb3cg YW4gZXJyb3IgaWYgbm8gdHJhbnNsYXRpb24gd2FzIGZvdW5kICovCiAJaWYgKG5vZGUgPT0gTlVM TCkKIAl7CiAJCXN3aXRjaCAoY3JlcnIpCkBAIC04ODAsNiArMTAyNCw3MiBAQCB0cmFuc2Zvcm1D b2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJcmV0dXJuIG5v ZGU7CiB9CiAKKy8qCisgKiBHZW5lcmF0ZSBwYXJhbSB2YXJpYWJsZSBmb3IgcmVmZXJlbmNlIHRv IHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIE5vZGUgKgorbWFrZVBhcmFtU2Vzc2lvblZh cmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCSBPaWQgdmFyaWQsIE9pZCB0eXBpZCwg aW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAorCQkJCQkJIGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9j YXRpb24pCit7CisJUGFyYW0JICAgKnBhcmFtOworCisJcGFyYW0gPSBtYWtlTm9kZShQYXJhbSk7 CisKKwlwYXJhbS0+cGFyYW1raW5kID0gUEFSQU1fVkFSSUFCTEU7CisJcGFyYW0tPnBhcmFtdmFy aWQgPSB2YXJpZDsKKwlwYXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7CisJcGFyYW0tPnBhcmFtdHlw bW9kID0gdHlwbW9kOworCXBhcmFtLT5wYXJhbWNvbGxpZCA9IGNvbGxpZDsKKworCXBzdGF0ZS0+ cF9oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKworCWlmIChhdHRybmFtZSAhPSBOVUxMKQor CXsKKwkJVHVwbGVEZXNjCXR1cGRlc2M7CisJCWludAkJCWk7CisKKwkJdHVwZGVzYyA9IGxvb2t1 cF9yb3d0eXBlX3R1cGRlc2Nfbm9lcnJvcih0eXBpZCwgdHlwbW9kLCB0cnVlKTsKKwkJaWYgKCF0 dXBkZXNjKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19P QkpFQ1RfVFlQRSksCisJCQkJCSBlcnJtc2coInZhcmlhYmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBl IFwiJXNcIiwgd2hpY2ggaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLAorCQkJCQkJCWdldF9uYW1l c3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJ CQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9i ZSh0eXBpZCkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7 CisKKwkJZm9yIChpID0gMDsgaSA8IHR1cGRlc2MtPm5hdHRzOyBpKyspCisJCXsKKwkJCUZvcm1f cGdfYXR0cmlidXRlIGF0dCA9IFR1cGxlRGVzY0F0dHIodHVwZGVzYywgaSk7CisKKwkJCWlmIChz dHJjbXAoYXR0cm5hbWUsIE5hbWVTdHIoYXR0LT5hdHRuYW1lKSkgPT0gMCAmJgorCQkJCSFhdHQt PmF0dGlzZHJvcHBlZCkKKwkJCXsKKwkJCQkvKiBzdWNjZXNzLCBzbyBnZW5lcmF0ZSBhIEZpZWxk U2VsZWN0IGV4cHJlc3Npb24gKi8KKwkJCQlGaWVsZFNlbGVjdCAqZnNlbGVjdCA9IG1ha2VOb2Rl KEZpZWxkU2VsZWN0KTsKKworCQkJCWZzZWxlY3QtPmFyZyA9IChFeHByICopIHBhcmFtOworCQkJ CWZzZWxlY3QtPmZpZWxkbnVtID0gaSArIDE7CisJCQkJZnNlbGVjdC0+cmVzdWx0dHlwZSA9IGF0 dC0+YXR0dHlwaWQ7CisJCQkJZnNlbGVjdC0+cmVzdWx0dHlwbW9kID0gYXR0LT5hdHR0eXBtb2Q7 CisJCQkJLyogc2F2ZSBhdHRyaWJ1dGUncyBjb2xsYXRpb24gZm9yIHBhcnNlX2NvbGxhdGUuYyAq LworCQkJCWZzZWxlY3QtPnJlc3VsdGNvbGxpZCA9IGF0dC0+YXR0Y29sbGF0aW9uOworCisJCQkJ UmVsZWFzZVR1cGxlRGVzYyh0dXBkZXNjKTsKKwkJCQlyZXR1cm4gKE5vZGUgKikgZnNlbGVjdDsK KwkJCX0KKwkJfQorCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfQ09MVU1OKSwKKwkJCQkgZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgY29sdW1uIFwi JXNcIiBpbiB2YXJpYWJsZSIsIGF0dHJuYW1lKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgbG9jYXRpb24pKSk7CisJfQorCisJcmV0dXJuIChOb2RlICopIHBhcmFtOworfQorCiBz dGF0aWMgTm9kZSAqCiB0cmFuc2Zvcm1QYXJhbVJlZihQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFt UmVmICpwcmVmKQogewpAQCAtMTgxNSw2ICsyMDI1LDcgQEAgdHJhbnNmb3JtU3ViTGluayhQYXJz ZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAJCWNhc2UgRVhQUl9LSU5EX1ZBTFVF UzoKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRToKIAkJY2FzZSBFWFBSX0tJTkRfQ1lD TEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCS8qIG9rYXkgKi8KIAkJ CWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgpAQCAtMTg1OCw2ICsy MDY5LDkgQEAgdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1 YmxpbmspCiAJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CiAJCQllcnIgPSBfKCJj YW5ub3QgdXNlIHN1YnF1ZXJ5IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24iKTsKIAkJ CWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJZXJyID0gXygiY2Fu bm90IHVzZSBzdWJxdWVyeSBhcyB0YXJnZXQgb2YgYXNzaWduIHN0YXRlbWVudCIpOworCQkJYnJl YWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNh c2UgaGVyZSwgc28gdGhhdCB0aGUKQEAgLTMxOTcsNiArMzQxMSwxMCBAQCBQYXJzZUV4cHJLaW5k TmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQkJcmV0dXJuICJHRU5FUkFURUQgQVMiOwog CQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJcmV0dXJuICJDWUNMRSI7CisJCWNhc2Ug RVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQlyZXR1cm4gIkFTU0lHTiI7CisJCWNhc2UgRVhQ Ul9LSU5EX0xFVF9UQVJHRVQ6CisJCQlyZXR1cm4gIkxFVCI7CiAKIAkJCS8qCiAJCQkgKiBUaGVy ZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IDliMjMzNDRhM2IxLi45YWE0ZjYwNzY4YiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jCkBAIC0yNjU2LDYgKzI2NTYsOCBAQCBjaGVja19zcmZfY2FsbF9w bGFjZW1lbnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50IGxvY2F0aW9u KQogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGlu IGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBS X0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2Fz ZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jIGIvc3JjL2JhY2tlbmQvdGNvcC9k ZXN0LmMKaW5kZXggOTZmODBiMzA0NjMuLmRhYzc4YmE1Y2NlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC90Y29wL2Rlc3QuYworKysgYi9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYwpAQCAtMzgsNiAr MzgsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL2Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgImV4ZWN1 dG9yL3RxdWV1ZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3RzdG9yZVJlY2VpdmVyLmgiCisjaW5j bHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJsaWJwcS9saWJw cS5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCiAKQEAgLTE1NSw2ICsxNTYsOSBAQCBD cmVhdGVEZXN0UmVjZWl2ZXIoQ29tbWFuZERlc3QgZGVzdCkKIAogCQljYXNlIERlc3RFeHBsYWlu U2VyaWFsaXplOgogCQkJcmV0dXJuIENyZWF0ZUV4cGxhaW5TZXJpYWxpemVEZXN0UmVjZWl2ZXIo TlVMTCk7CisKKwkJY2FzZSBEZXN0VmFyaWFibGU6CisJCQlyZXR1cm4gQ3JlYXRlVmFyaWFibGVE ZXN0UmVjZWl2ZXIoSW52YWxpZE9pZCk7CiAJfQogCiAJLyogc2hvdWxkIG5ldmVyIGdldCBoZXJl ICovCkBAIC0xOTEsNiArMTk1LDcgQEAgRW5kQ29tbWFuZChjb25zdCBRdWVyeUNvbXBsZXRpb24g KnFjLCBDb21tYW5kRGVzdCBkZXN0LCBib29sIGZvcmNlX3VuZGVjb3JhdGVkX28KIAkJY2FzZSBE ZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERlc3RFeHBs YWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0KIH0KQEAg LTIzNyw2ICsyNDIsNyBAQCBOdWxsQ29tbWFuZChDb21tYW5kRGVzdCBkZXN0KQogCQljYXNlIERl c3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4cGxh aW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpAQCAt MjgxLDYgKzI4Nyw3IEBAIFJlYWR5Rm9yUXVlcnkoQ29tbWFuZERlc3QgZGVzdCkKIAkJY2FzZSBE ZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERlc3RFeHBs YWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0KIH0KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMgYi9zcmMvYmFja2VuZC90Y29wL3Bx dWVyeS5jCmluZGV4IDBjNDVmY2YzMThmLi44NWI4MDljYjA3MSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdGNvcC9wcXVlcnkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jCkBAIC04 Niw2ICs4Niw5IEBAIENyZWF0ZVF1ZXJ5RGVzYyhQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsCiAJ cWQtPnF1ZXJ5RW52ID0gcXVlcnlFbnY7CiAJcWQtPmluc3RydW1lbnRfb3B0aW9ucyA9IGluc3Ry dW1lbnRfb3B0aW9uczsJLyogaW5zdHJ1bWVudGF0aW9uIHdhbnRlZD8gKi8KIAorCXFkLT5udW1f c2Vzc2lvbl92YXJpYWJsZXMgPSAwOworCXFkLT5zZXNzaW9uX3ZhcmlhYmxlcyA9IE5VTEw7CisK IAkvKiBudWxsIHRoZXNlIGZpZWxkcyB1bnRpbCBzZXQgYnkgRXhlY3V0b3JTdGFydCAqLwogCXFk LT50dXBEZXNjID0gTlVMTDsKIAlxZC0+ZXN0YXRlID0gTlVMTDsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXgg MjE3YzYwMjg0OTcuLjY5ZDJmN2UxY2VkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0 aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtNDksNiArNDksNyBA QAogI2luY2x1ZGUgImNvbW1hbmRzL3NjaGVtYWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9z ZWNsYWJlbC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlv bmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21t YW5kcy90YWJsZXNwYWNlLmgiCkBAIC0yMzUsNiArMjM2LDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29t bWFuZEFzUmVhZE9ubHkoTm9kZSAqcGFyc2V0cmVlKQogCiAJCWNhc2UgVF9DYWxsU3RtdDoKIAkJ Y2FzZSBUX0RvU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBD b21tYW5kcyBpbnNpZGUgdGhlIERPIGJsb2NrIG9yIHRoZSBjYWxsZWQgcHJvY2VkdXJlIG1pZ2h0 CkBAIC0xMDY3LDYgKzEwNjksMTEgQEAgc3RhbmRhcmRfUHJvY2Vzc1V0aWxpdHkoUGxhbm5lZFN0 bXQgKnBzdG10LAogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJRXhl Y3V0ZUxldFN0bXQocHN0YXRlLCAoTGV0U3RtdCAqKSBwYXJzZXRyZWUsIHBhcmFtcywKKwkJCQkJ CSAgIHF1ZXJ5RW52LCBxYyk7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJLyogQWxsIG90 aGVyIHN0YXRlbWVudCB0eXBlcyBoYXZlIGV2ZW50IHRyaWdnZXIgc3VwcG9ydCAqLwogCQkJUHJv Y2Vzc1V0aWxpdHlTbG93KHBzdGF0ZSwgcHN0bXQsIHF1ZXJ5U3RyaW5nLApAQCAtMjIwNiw2ICsy MjEzLDEwIEBAIFV0aWxpdHlDb250YWluc1F1ZXJ5KE5vZGUgKnBhcnNldHJlZSkKIAkJCQlyZXR1 cm4gVXRpbGl0eUNvbnRhaW5zUXVlcnkocXJ5LT51dGlsaXR5U3RtdCk7CiAJCQlyZXR1cm4gcXJ5 OwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJcXJ5ID0gY2FzdE5vZGUoUXVlcnksICgoTGV0U3Rt dCAqKSBwYXJzZXRyZWUpLT5xdWVyeSk7CisJCQlyZXR1cm4gcXJ5OworCiAJCWRlZmF1bHQ6CiAJ CQlyZXR1cm4gTlVMTDsKIAl9CkBAIC0yNDA0LDYgKzI0MTUsMTAgQEAgQ3JlYXRlQ29tbWFuZFRh ZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl0YWcgPSBDTURUQUdfU0VMRUNUOwogCQkJYnJlYWs7CiAK KwkJY2FzZSBUX0xldFN0bXQ6CisJCQl0YWcgPSBDTURUQUdfTEVUOworCQkJYnJlYWs7CisKIAkJ CS8qIHV0aWxpdHkgc3RhdGVtZW50cyAtLS0gc2FtZSB3aGV0aGVyIHJhdyBvciBjb29rZWQgKi8K IAkJY2FzZSBUX1RyYW5zYWN0aW9uU3RtdDoKIAkJCXsKQEAgLTMyODksNiArMzMwNCw3IEBAIEdl dENvbW1hbmRMb2dMZXZlbChOb2RlICpwYXJzZXRyZWUpCiAJCQlicmVhazsKIAogCQljYXNlIFRf UExBc3NpZ25TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCWxldiA9IExPR1NUTVRfQUxMOwog CQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCAyMTc3ZDE3ZTI3OC4u OGY0NzJmMGZkM2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTM3LDYgKzM3LDcg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpY19leHQuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1vbi9rZXl3b3Jk cy5oIgpAQCAtNTI4LDYgKzUyOSw3IEBAIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9mdW5jdGlvbl9u YW1lKE9pZCBmdW5jaWQsIGludCBuYXJncywKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9vcGVyYXRv cl9uYW1lKE9pZCBvcGVyaWQsIE9pZCBhcmcxLCBPaWQgYXJnMik7CiBzdGF0aWMgdm9pZCBhZGRf Y2FzdF90byhTdHJpbmdJbmZvIGJ1ZiwgT2lkIHR5cGlkKTsKIHN0YXRpYyBjaGFyICpnZW5lcmF0 ZV9xdWFsaWZpZWRfdHlwZV9uYW1lKE9pZCB0eXBpZCk7CitzdGF0aWMgY2hhciAqZ2VuZXJhdGVf c2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCk7CiBzdGF0aWMgdGV4dCAqc3RyaW5nX3Rv X3RleHQoY2hhciAqc3RyKTsKIHN0YXRpYyBjaGFyICpmbGF0dGVuX3JlbG9wdGlvbnMoT2lkIHJl bGlkKTsKIHN0YXRpYyB2b2lkIGdldF9yZWxvcHRpb25zKFN0cmluZ0luZm8gYnVmLCBEYXR1bSBy ZWxvcHRpb25zKTsKQEAgLTg1OTUsNiArODU5NywxNCBAQCBnZXRfcGFyYW1ldGVyKFBhcmFtICpw YXJhbSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCQlyZXR1cm47CiAJfQogCisJLyogdHJh bnNsYXRlIHBhcmFtdmFyaWQgdG8gc2Vzc2lvbiB2YXJpYWJsZSBuYW1lICovCisJaWYgKHBhcmFt LT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJeworCQlhcHBlbmRTdHJpbmdJbmZvKGNv bnRleHQtPmJ1ZiwgIiVzIiwKKwkJCQkJCSBnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo cGFyYW0tPnBhcmFtdmFyaWQpKTsKKwkJcmV0dXJuOworCX0KKwogCS8qCiAJICogQWx0ZXJuYXRp dmVseSwgbWF5YmUgaXQncyBhIHN1YnBsYW4gb3V0cHV0LCB3aGljaCB3ZSBwcmludCBhcyBhCiAJ ICogcmVmZXJlbmNlIHRvIHRoZSBzdWJwbGFuLiAgKFdlIGNvdWxkIGRyaWxsIGRvd24gaW50byB0 aGUgc3VicGxhbiBhbmQKQEAgLTEzMzc3LDYgKzEzMzg3LDQyIEBAIGdlbmVyYXRlX2NvbGxhdGlv bl9uYW1lKE9pZCBjb2xsaWQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIGdlbmVyYXRl X3Nlc3Npb25fdmFyaWFibGVfbmFtZQorICoJCUNvbXB1dGUgdGhlIG5hbWUgdG8gZGlzcGxheSBm b3IgYSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBPSUQKKyAqCisgKiBUaGUgcmVzdWx0 IGluY2x1ZGVzIGFsbCBuZWNlc3NhcnkgcXVvdGluZyBhbmQgc2NoZW1hLXByZWZpeGluZy4KKyAq Lworc3RhdGljIGNoYXIgKgorZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJp ZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwljaGFy CSAgICp2YXJuYW1lOworCWNoYXIJICAgKm5zcG5hbWU7CisJY2hhcgkgICAqcmVzdWx0OworCisJ dHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlk KSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hl IGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcm5hbWUgPSBOYW1lU3RyKHZh cmZvcm0tPnZhcm5hbWUpOworCisJaWYgKCFWYXJpYWJsZUlzVmlzaWJsZSh2YXJpZCkpCisJCW5z cG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcCh2YXJmb3JtLT52YXJuYW1lc3BhY2Up OworCWVsc2UKKwkJbnNwbmFtZSA9IE5VTEw7CisKKwlyZXN1bHQgPSBxdW90ZV9xdWFsaWZpZWRf aWRlbnRpZmllcihuc3BuYW1lLCB2YXJuYW1lKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOwor CisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIEdpdmVuIGEgQyBzdHJpbmcsIHByb2R1Y2Ug YSBURVhUIGRhdHVtLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Bs YW5jYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKaW5kZXggNWFm MWExNjhlYzIuLjdlMWU5ZTI4ZjEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9wbGFuY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwpA QCAtNTgsNiArNTgsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRl ICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIK ICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgog I2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgpAQCAtMTYyLDYgKzE2Myw3IEBAIEluaXRQbGFu Q2FjaGUodm9pZCkKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhBTU9QT1BJRCwgUGxh bkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2Fs bGJhY2soRk9SRUlHTlNFUlZFUk9JRCwgUGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7 CiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soRk9SRUlHTkRBVEFXUkFQUEVST0lELCBQ bGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsKKwlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVD YWxsYmFjayhWQVJJQUJMRU9JRCwgUGxhbkNhY2hlT2JqZWN0Q2FsbGJhY2ssIChEYXR1bSkgMCk7 CiB9CiAKIC8qCkBAIC0xOTAzLDE4ICsxOTA1LDMzIEBAIFNjYW5RdWVyeUZvckxvY2tzKFF1ZXJ5 ICpwYXJzZXRyZWUsIGJvb2wgYWNxdWlyZSkKIAogCS8qCiAJICogUmVjdXJzZSBpbnRvIHN1Ymxp bmsgc3VicXVlcmllcywgdG9vLiAgQnV0IHdlIGFscmVhZHkgZGlkIHRoZSBvbmVzIGluCi0JICog dGhlIHJ0YWJsZSBhbmQgY3RlTGlzdC4KKwkgKiB0aGUgcnRhYmxlIGFuZCBjdGVMaXN0LiAgV2Ug bmVlZCB0byBmb3JjZSBhIHJlY3Vyc2l2ZSBjYWxsIGZvciBzZXNzaW9uCisJICogdmFyaWFibGVz IHRvbywgdG8gZmluZCBhbmQgbG9jayB2YXJpYWJsZXMgdXNlZCBpbiB0aGUgcXVlcnkgKHNlZQor CSAqIFNjYW5RdWVyeVdhbGtlcikuCiAJICovCi0JaWYgKHBhcnNldHJlZS0+aGFzU3ViTGlua3Mp CisJaWYgKHBhcnNldHJlZS0+aGFzU3ViTGlua3MgfHwKKwkJcGFyc2V0cmVlLT5oYXNTZXNzaW9u VmFyaWFibGVzKQogCXsKIAkJcXVlcnlfdHJlZV93YWxrZXIocGFyc2V0cmVlLCBTY2FuUXVlcnlX YWxrZXIsCiAJCQkJCQkgICh2b2lkICopICZhY3F1aXJlLAogCQkJCQkJICBRVFdfSUdOT1JFX1JD X1NVQlFVRVJJRVMpOwogCX0KKworCS8qIHByb2Nlc3Mgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlp ZiAoT2lkSXNWYWxpZChwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlKSkKKwl7CisJCWlmIChhY3F1 aXJlKQorCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcGFyc2V0cmVl LT5yZXN1bHRWYXJpYWJsZSwKKwkJCQkJCQkgICAwLCBBY2Nlc3NTaGFyZUxvY2spOworCQllbHNl CisJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcnNldHJlZS0+ cmVzdWx0VmFyaWFibGUsCisJCQkJCQkJCSAwLCBBY2Nlc3NTaGFyZUxvY2spOworCX0KIH0KIAog LyoKLSAqIFdhbGtlciB0byBmaW5kIHN1Ymxpbmsgc3VicXVlcmllcyBmb3IgU2NhblF1ZXJ5Rm9y TG9ja3MKKyAqIFdhbGtlciB0byBmaW5kIHN1Ymxpbmsgc3VicXVlcmllcyBvciByZWZlcmVuY2Vk IHNlc3Npb24gdmFyaWFibGVzCisgKiBmb3IgU2NhblF1ZXJ5Rm9yTG9ja3MKICAqLwogc3RhdGlj IGJvb2wKIFNjYW5RdWVyeVdhbGtlcihOb2RlICpub2RlLCBib29sICphY3F1aXJlKQpAQCAtMTky OSw2ICsxOTQ2LDIwIEBAIFNjYW5RdWVyeVdhbGtlcihOb2RlICpub2RlLCBib29sICphY3F1aXJl KQogCQlTY2FuUXVlcnlGb3JMb2NrcyhjYXN0Tm9kZShRdWVyeSwgc3ViLT5zdWJzZWxlY3QpLCAq YWNxdWlyZSk7CiAJCS8qIEZhbGwgdGhyb3VnaCB0byBwcm9jZXNzIGxlZnRoYW5kIGFyZ3Mgb2Yg U3ViTGluayAqLwogCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0J ICAgKnAgPSAoUGFyYW0gKikgbm9kZTsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZB UklBQkxFKQorCQl7CisJCQlpZiAoYWNxdWlyZSkKKwkJCQlMb2NrRGF0YWJhc2VPYmplY3QoVmFy aWFibGVSZWxhdGlvbklkLCBwLT5wYXJhbXZhcmlkLAorCQkJCQkJCQkgICAwLCBBY2Nlc3NTaGFy ZUxvY2spOworCQkJZWxzZQorCQkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRp b25JZCwgcC0+cGFyYW12YXJpZCwKKwkJCQkJCQkJCSAwLCBBY2Nlc3NTaGFyZUxvY2spOworCQl9 CisJfQogCiAJLyoKIAkgKiBEbyBOT1QgcmVjdXJzZSBpbnRvIFF1ZXJ5IG5vZGVzLCBiZWNhdXNl IFNjYW5RdWVyeUZvckxvY2tzIGFscmVhZHkKQEAgLTIwNjAsNyArMjA5MSw5IEBAIFBsYW5DYWNo ZVJlbENhbGxiYWNrKERhdHVtIGFyZywgT2lkIHJlbGlkKQogCiAvKgogICogUGxhbkNhY2hlT2Jq ZWN0Q2FsbGJhY2sKLSAqCQlTeXNjYWNoZSBpbnZhbCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgUFJP Q09JRCBhbmQgVFlQRU9JRCBjYWNoZXMKKyAqCQlTeXNjYWNoZSBpbnZhbCBjYWxsYmFjayBmdW5j dGlvbiBmb3IgVFlQRU9JRCwgUFJPQ09JRCwgTkFNRVNQQUNFT0lELAorICoJCU9QRVJPSUQsIEFN T1BPUElELCBGT1JFSUdOU0VSVkVST0lELCBGT1JFSUdOREFUQVdSQVBQRVJPSUQgYW5kCisgKgkJ VkFSSUFCTEVPSUQgY2FjaGVzLgogICoKICAqIEludmFsaWRhdGUgYWxsIHBsYW5zIG1lbnRpb25p bmcgdGhlIG9iamVjdCB3aXRoIHRoZSBzcGVjaWZpZWQgaGFzaCB2YWx1ZSwKICAqIG9yIGFsbCBw bGFucyBtZW50aW9uaW5nIGFueSBtZW1iZXIgb2YgdGhpcyBjYWNoZSBpZiBoYXNodmFsdWUgPT0g MC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvZm1nci9mbWdyLmMKaW5kZXggZTQ4YTg2YmU1NGIuLmVhYWUwYzVhOTMzIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9mbWdyL2ZtZ3IuYwpAQCAtMjAyNiw5ICsyMDI2LDEzIEBAIGdldF9jYWxsX2V4cHJfYXJn X3N0YWJsZShOb2RlICpleHByLCBpbnQgYXJnbnVtKQogCSAqLwogCWlmIChJc0EoYXJnLCBDb25z dCkpCiAJCXJldHVybiB0cnVlOwotCWlmIChJc0EoYXJnLCBQYXJhbSkgJiYKLQkJKChQYXJhbSAq KSBhcmcpLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOKQotCQlyZXR1cm4gdHJ1ZTsKKwlpZiAo SXNBKGFyZywgUGFyYW0pKQorCXsKKwkJUGFyYW0JICAgKnAgPSAoUGFyYW0gKikgYXJnOworCisJ CWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOIHx8IHAtPnBhcmFta2luZCA9PSBQQVJB TV9WQVJJQUJMRSkKKwkJCXJldHVybiB0cnVlOworCX0KIAogCXJldHVybiBmYWxzZTsKIH0KZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYwppbmRleCBlYmIwNGNkZWFlYS4uMTcyYTM3ZWQ3NjAgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKQEAgLTEyMTQsOCArMTIxNCw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBzcWxfY29tbWFuZHNbXSA9IHsKIAkiQUJPUlQiLCAiQUxURVIiLCAiQU5BTFlaRSIsICJC RUdJTiIsICJDQUxMIiwgIkNIRUNLUE9JTlQiLCAiQ0xPU0UiLCAiQ0xVU1RFUiIsCiAJIkNPTU1F TlQiLCAiQ09NTUlUIiwgIkNPUFkiLCAiQ1JFQVRFIiwgIkRFQUxMT0NBVEUiLCAiREVDTEFSRSIs CiAJIkRFTEVURSBGUk9NIiwgIkRJU0NBUkQiLCAiRE8iLCAiRFJPUCIsICJFTkQiLCAiRVhFQ1VU RSIsICJFWFBMQUlOIiwKLQkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1B IiwgIklOU0VSVCBJTlRPIiwgIkxJU1RFTiIsICJMT0FEIiwgIkxPQ0siLAotCSJNRVJHRSBJTlRP IiwgIk1PVkUiLCAiTk9USUZZIiwgIlBSRVBBUkUiLAorCSJGRVRDSCIsICJHUkFOVCIsICJJTVBP UlQgRk9SRUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTEVUIiwKKwkiTElTVEVOIiwgIkxP QUQiLCAiTE9DSyIsICJNRVJHRSBJTlRPIiwgIk1PVkUiLCAiTk9USUZZIiwgIlBSRVBBUkUiLAog CSJSRUFTU0lHTiIsICJSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIiwgIlJFSU5ERVgiLCAiUkVM RUFTRSIsCiAJIlJFU0VUIiwgIlJFVk9LRSIsICJST0xMQkFDSyIsCiAJIlNBVkVQT0lOVCIsICJT RUNVUklUWSBMQUJFTCIsICJTRUxFQ1QiLCAiU0VUIiwgIlNIT1ciLCAiU1RBUlQiLApAQCAtNDYy OSw2ICs0NjI5LDE0IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVs c2UgaWYgKFRhaWxNYXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMoIkRFRkFVTFQiLCAi VkFMVUVTIikpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAorLyogTEVUICovCisJLyogSWYgcHJl di4gd29yZCBpcyBMRVQgc3VnZ2VzdCBhIGxpc3Qgb2YgdmFyaWFibGVzICovCisJZWxzZSBpZiAo TWF0Y2hlcygiTEVUIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9s aXN0X29mX3ZhcmlhYmxlcyk7CisJLyogQ29tcGxldGUgTEVUIDx2YXJpYWJsZT4gd2l0aCAiPSIg Ki8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9X SVRIKCI9Iik7CisKIC8qIExPQ0sgKi8KIAkvKiBDb21wbGV0ZSBMT0NLIFtUQUJMRV0gW09OTFld IHdpdGggYSBsaXN0IG9mIHRhYmxlcyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkxPQ0siKSkKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDE4ZWE2YWM4M2E1Li5kZWY2OTFkYWZiMyAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL25hbWVzcGFjZS5oCkBAIC0xNzEsNyArMTcxLDkgQEAgZXh0ZXJuIFNlYXJjaFBhdGhN YXRjaGVyICpHZXRTZWFyY2hQYXRoTWF0Y2hlcihNZW1vcnlDb250ZXh0IGNvbnRleHQpOwogZXh0 ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpDb3B5U2VhcmNoUGF0aE1hdGNoZXIoU2VhcmNoUGF0aE1h dGNoZXIgKnBhdGgpOwogZXh0ZXJuIGJvb2wgU2VhcmNoUGF0aE1hdGNoZXNDdXJyZW50RW52aXJv bm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogCitleHRlcm4gTGlzdCAqTmFtZXNGcm9t TGlzdChMaXN0ICpuYW1lcyk7CiBleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIg Km5zcG5hbWUsIGNvbnN0IGNoYXIgKnZhcm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4g T2lkCUlkZW50aWZ5VmFyaWFibGUoTGlzdCAqbmFtZXMsIGNoYXIgKiphdHRybmFtZSwgYm9vbCAq bm90X3VuaXF1ZSwgYm9vbCBub2Vycm9yKTsKIAogZXh0ZXJuIE9pZAlnZXRfY29sbGF0aW9uX29p ZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X2NvbnZl cnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmgKaW5kZXggMzgxMGUwNDBmMjguLmRiNTkzY2Q1YmVkIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ192YXJpYWJsZS5oCkBAIC0zNSw2ICszNSwxNCBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDky MjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIE9JRCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2 YXJpYWJsZSdzIHR5cGUgKi8KIAlPaWQJCQl2YXJ0eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CiAK KwkvKgorCSAqIFVzZWQgZm9yIGlkZW50aXR5IGNoZWNrIFtvaWQsIGNyZWF0ZV9sc25dLgorCSAq CisJICogVGhpcyBjb2x1bW4gb2YgdGhlIDgtYnl0ZSBYbG9nUmVjUHRyIHR5cGUgc2hvdWxkIGJl IGF0IGFuIGFkZHJlc3MgdGhhdAorCSAqIGlzIGRpdmlzaWJsZSBieSA4LCBidXQgYmVmb3JlIGFu eSBjb2x1bW4gb2YgdHlwZSBOYW1lRGF0YS4KKwkgKi8KKwlYTG9nUmVjUHRyCXZhcmNyZWF0ZV9s c247CisKIAkvKiB2YXJpYWJsZSBuYW1lICovCiAJTmFtZURhdGEJdmFybmFtZTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1 ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5iM2YwM2M2NTgyNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMCwwICsxLDMyIEBACisvKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqCisgKiBzZXNzaW9udmFyaWFibGUuaAorICoJICBwcm90b3R5cGVzIGZvciBz ZXNzaW9udmFyaWFibGUuYy4KKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2 LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5p YQorICoKKyAqIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorICoKKyAq LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgU0VTU0lPTlZBUklBQkxFX0gKKyNkZWZp bmUgU0VTU0lPTlZBUklBQkxFX0gKKworI2luY2x1ZGUgIm5vZGVzL3BhcmFtcy5oIgorI2luY2x1 ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgor I2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCisjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVu dC5oIgorCitleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2 YWx1ZSwgYm9vbCBpc051bGwpOworZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNl Y3VyaXR5Q2hlY2soT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOworZXh0ZXJu IERhdHVtIEdldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkICp0 eXBpZCk7CitleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhPaWQg dmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkIGV4cGVjdGVkX3R5cGlkKTsKKworZXh0ZXJuIHZvaWQg RXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10LCBQYXJhbUxp c3RJbmZvIHBhcmFtcywKKwkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBRdWVy eUNvbXBsZXRpb24gKnFjKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVj dXRvci9leGVjZGVzYy5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaAppbmRleCAw YTcyNzRlMjZjOC4uZDFiMmY1OWUwY2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2V4ZWNkZXNjLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaApAQCAtNDgs NiArNDgsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnlEZXNjCiAJRVN0YXRlCSAgICplc3RhdGU7 CQkJLyogZXhlY3V0b3IncyBxdWVyeS13aWRlIHN0YXRlICovCiAJUGxhblN0YXRlICAqcGxhbnN0 YXRlOwkJLyogdHJlZSBvZiBwZXItcGxhbi1ub2RlIHN0YXRlICovCiAKKwkvKiByZWZlcmVuY2Ug dG8gc2Vzc2lvbiB2YXJpYWJsZXMgYnVmZmVyICovCisJaW50CQkJbnVtX3Nlc3Npb25fdmFyaWFi bGVzOworCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzZXNzaW9uX3ZhcmlhYmxlczsKKwogCS8qIFRo aXMgZmllbGQgaXMgc2V0IGJ5IEV4ZWN1dG9yUnVuICovCiAJYm9vbAkJYWxyZWFkeV9leGVjdXRl ZDsJLyogdHJ1ZSBpZiBwcmV2aW91c2x5IGV4ZWN1dGVkICovCiAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9leGVjdXRv ci9zdmFyaWFibGVSZWNlaXZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5kYjQ0ZDhiOTRjNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmgKQEAgLTAsMCArMSwyMiBAQAorLyotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKgorICogc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoJICBwcm90b3R5cGVzIGZvciBzdmFyaWFi bGVSZWNlaXZlci5jCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0 LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAq CisgKiBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCisgKgorICotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBTVkFSSUFCTEVfUkVDRUlWRVJfSAorI2RlZmlu ZSBTVkFSSUFCTEVfUkVDRUlWRVJfSAorCisjaW5jbHVkZSAidGNvcC9kZXN0LmgiCisKK2V4dGVy biBEZXN0UmVjZWl2ZXIgKkNyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKE9pZCB2YXJpZCk7CisK KyNlbmRpZgkJCQkJCQkvKiBTVkFSSUFCTEVfUkVDRUlWRVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aAppbmRleCAxODJhNjk1NmJiMC4uYjQ0NjRlZGMyMmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBA IC02MTcsNiArNjE3LDE4IEBAIHR5cGVkZWYgc3RydWN0IEFzeW5jUmVxdWVzdAogCQkJCQkJCQkg KiB0dXBsZXMpICovCiB9IEFzeW5jUmVxdWVzdDsKIAorLyogLS0tLS0tLS0tLS0tLS0tLQorICog U2Vzc2lvblZhcmlhYmxlVmFsdWUKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBz dHJ1Y3QgU2Vzc2lvblZhcmlhYmxlVmFsdWUKK3sKKwlPaWQJCQl2YXJpZDsKKwlPaWQJCQl0eXBp ZDsKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOworfSBTZXNzaW9uVmFyaWFibGVWYWx1 ZTsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJICBFU3RhdGUgaW5mb3JtYXRpb24KICAqCkBA IC02NjksNiArNjgxLDEwIEBAIHR5cGVkZWYgc3RydWN0IEVTdGF0ZQogCVBhcmFtTGlzdEluZm8g ZXNfcGFyYW1fbGlzdF9pbmZvOwkvKiB2YWx1ZXMgb2YgZXh0ZXJuYWwgcGFyYW1zICovCiAJUGFy YW1FeGVjRGF0YSAqZXNfcGFyYW1fZXhlY192YWxzOwkvKiB2YWx1ZXMgb2YgaW50ZXJuYWwgcGFy YW1zICovCiAKKwkvKiBTZXNzaW9uIHZhcmlhYmxlcyBpbmZvOiAqLworCWludAkJCWVzX251bV9z ZXNzaW9uX3ZhcmlhYmxlczsJCS8qIG51bWJlciBvZiB1c2VkIHZhcmlhYmxlcyAqLworCVNlc3Np b25WYXJpYWJsZVZhbHVlICplc19zZXNzaW9uX3ZhcmlhYmxlczsJLyogYXJyYXkgb2YgY29waWVz IG9mIHZhbHVlcyAqLworCiAJUXVlcnlFbnZpcm9ubWVudCAqZXNfcXVlcnlFbnY7CS8qIHF1ZXJ5 IGVudmlyb25tZW50ICovCiAKIAkvKiBPdGhlciB3b3JraW5nIHN0YXRlOiAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCmluZGV4IDhlZTFjYzVhMTMxLi40ZWFmOWM3MDk0OCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaApAQCAtMTQyLDYgKzE0Miw5IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJICovCiAJ aW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwog CisJLyogdGFyZ2V0IHZhcmlhYmxlIG9mIExFVCBzdGF0ZW1lbnQgKi8KKwlPaWQJCQlyZXN1bHRW YXJpYWJsZTsKKwogCS8qIGhhcyBhZ2dyZWdhdGVzIGluIHRsaXN0IG9yIGhhdmluZ1F1YWwgKi8K IAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBo YXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAqLwpAQCAtMTYyLDYgKzE2NSw4IEBAIHR5cGVk ZWYgc3RydWN0IFF1ZXJ5CiAJYm9vbAkJaGFzUm93U2VjdXJpdHkgcGdfbm9kZV9hdHRyKHF1ZXJ5 X2p1bWJsZV9pZ25vcmUpOwogCS8qIHBhcnNlciBoYXMgYWRkZWQgYW4gUlRFX0dST1VQIFJURSAq LwogCWJvb2wJCWhhc0dyb3VwUlRFIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK KwkvKiB1c2VzIHNlc3Npb24gdmFyaWFibGVzICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxl cyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaXMgYSBSRVRVUk4gc3Rh dGVtZW50ICovCiAJYm9vbAkJaXNSZXR1cm4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25v cmUpOwogCkBAIC0yMTAwLDYgKzIxMDUsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgTWVyZ2VTdG10CiAJ UGFyc2VMb2MJc3RtdF9sZW47CQkvKiBsZW5ndGggaW4gYnl0ZXM7IDAgbWVhbnMgInJlc3Qgb2Yg c3RyaW5nIiAqLwogfSBNZXJnZVN0bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CQlMZXQgU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYg c3RydWN0IExldFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAgKnRhcmdldDsJCQkv KiB0YXJnZXQgdmFyaWFibGUgKi8KKwlOb2RlCSAgICpxdWVyeTsJCQkvKiBzb3VyY2UgZXhwcmVz c2lvbiAqLworCWludAkJCWxvY2F0aW9uOworfSBMZXRTdG10OworCiAvKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgKgkJU2VsZWN0IFN0YXRlbWVudAogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5k ZXggYWRkMGY5ZTQ1ZmMuLmVhMWY3NmQwZmJiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rl cy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaApAQCAtMTYz LDYgKzE2Myw5IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZXJHbG9iYWwKIAogCS8qIHBhcnRpdGlv biBkZXNjcmlwdG9ycyAqLwogCVBhcnRpdGlvbkRpcmVjdG9yeSBwYXJ0aXRpb25fZGlyZWN0b3J5 IHBnX25vZGVfYXR0cihyZWFkX3dyaXRlX2lnbm9yZSk7CisKKwkvKiBsaXN0IG9mIHVzZWQgc2Vz c2lvbiB2YXJpYWJsZXMgKi8KKwlMaXN0CSAgICpzZXNzaW9uVmFyaWFibGVzOwogfSBQbGFubmVy R2xvYmFsOwogCiAvKiBtYWNybyBmb3IgZmV0Y2hpbmcgdGhlIFBsYW4gYXNzb2NpYXRlZCB3aXRo IGEgU3ViUGxhbiBub2RlICovCkBAIC01MDgsNiArNTExLDggQEAgc3RydWN0IFBsYW5uZXJJbmZv CiAJYm9vbAkJcGxhY2Vob2xkZXJzRnJvemVuOwogCS8qIHRydWUgaWYgcGxhbm5pbmcgYSByZWN1 cnNpdmUgV0lUSCBpdGVtICovCiAJYm9vbAkJaGFzUmVjdXJzaW9uOworCS8qIHRydWUgaWYgc2Vz c2lvbiB2YXJpYWJsZXMgd2VyZSB1c2VkICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxlczsK IAogCS8qCiAJICogVGhlIHJhbmdldGFibGUgaW5kZXggZm9yIHRoZSBSVEVfR1JPVVAgUlRFLCBv ciAwIGlmIHRoZXJlIGlzIG5vCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9k ZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCmluZGV4IDUyZjI5YmNkYjY5Li40 NTQ5MzY2Y2Y1OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKKysr IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgUGxhbm5lZFN0bXQKIAogCU5vZGVUYWcJCXR5cGU7CiAKLQlDbWRUeXBlCQljb21t YW5kVHlwZTsJLyogc2VsZWN0fGluc2VydHx1cGRhdGV8ZGVsZXRlfG1lcmdlfHV0aWxpdHkgKi8K KwlDbWRUeXBlCQljb21tYW5kVHlwZTsJLyogc2VsZWN0fGxldHxpbnNlcnR8dXBkYXRlfGRlbGV0 ZXxtZXJnZXx1dGlsaXR5ICovCiAKIAl1aW50NjQJCXF1ZXJ5SWQ7CQkvKiBxdWVyeSBpZGVudGlm aWVyIChjb3BpZWQgZnJvbSBRdWVyeSkgKi8KIApAQCAtOTQsNiArOTQsOCBAQCB0eXBlZGVmIHN0 cnVjdCBQbGFubmVkU3RtdAogCiAJTm9kZQkgICAqdXRpbGl0eVN0bXQ7CS8qIG5vbi1udWxsIGlm IHRoaXMgaXMgdXRpbGl0eSBzdG10ICovCiAKKwlMaXN0CSAgICpzZXNzaW9uVmFyaWFibGVzOwkv KiBPSURzIGZvciBQQVJBTV9WQVJJQUJMRSBQYXJhbXMgKi8KKwogCS8qIHN0YXRlbWVudCBsb2Nh dGlvbiBpbiBzb3VyY2Ugc3RyaW5nIChjb3BpZWQgZnJvbSBRdWVyeSkgKi8KIAlQYXJzZUxvYwlz dG10X2xvY2F0aW9uOwkvKiBzdGFydCBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBh cnNlTG9jCXN0bXRfbGVuOwkJLyogbGVuZ3RoIGluIGJ5dGVzOyAwIG1lYW5zICJyZXN0IG9mIHN0 cmluZyIgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggYjBlZjE5NTJlOGYuLjRiMjQyNGQ2ZDM0 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMzYxLDYgKzM2MSw5IEBAIHR5cGVkZWYgc3RydWN0 IENvbnN0CiAgKgkJCQlvZiB0aGUgYHBhcmFtaWQnIGZpZWxkIGNvbnRhaW4gdGhlIFN1Ykxpbmsn cyBzdWJMaW5rSWQsIGFuZAogICoJCQkJdGhlIGxvdy1vcmRlciAxNiBiaXRzIGNvbnRhaW4gdGhl IGNvbHVtbiBudW1iZXIuICAoVGhpcyB0eXBlCiAgKgkJCQlvZiBQYXJhbSBpcyBhbHNvIGNvbnZl cnRlZCB0byBQQVJBTV9FWEVDIGR1cmluZyBwbGFubmluZy4pCisgKgorICoJCVBBUkFNX1ZBUklB QkxFOiAgVGhlIHBhcmFtZXRlciBpcyBhIHJlZmVyZW5jZSB0byBhIHNlc3Npb24gdmFyaWFibGUK KyAqCQkJCShwYXJhbWlkIGhvbGRzIHRoZSB2YXJpYWJsZSdzIE9JRCkuCiAgKi8KIHR5cGVkZWYg ZW51bSBQYXJhbUtpbmQKIHsKQEAgLTM2OCw2ICszNzEsNyBAQCB0eXBlZGVmIGVudW0gUGFyYW1L aW5kCiAJUEFSQU1fRVhFQywKIAlQQVJBTV9TVUJMSU5LLAogCVBBUkFNX01VTFRJRVhQUiwKKwlQ QVJBTV9WQVJJQUJMRSwKIH0gUGFyYW1LaW5kOwogCiB0eXBlZGVmIHN0cnVjdCBQYXJhbQpAQCAt MzgwLDYgKzM4NCw4IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtCiAJaW50MzIJCXBhcmFtdHlwbW9k IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBPSUQgb2YgY29sbGF0aW9u LCBvciBJbnZhbGlkT2lkIGlmIG5vbmUgKi8KIAlPaWQJCQlwYXJhbWNvbGxpZCBwZ19ub2RlX2F0 dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisJLyogT0lEIG9mIHNlc3Npb24gdmFyaWFibGUgaWYg aXQgaXMgdXNlZCAqLworCU9pZAkJCXBhcmFtdmFyaWQ7CiAJLyogdG9rZW4gbG9jYXRpb24sIG9y IC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlsb2NhdGlvbjsKIH0gUGFyYW07CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCBiL3NyYy9pbmNsdWRlL29wdGlt aXplci9wbGFubWFpbi5oCmluZGV4IDkzMTM3MjYxZTQ4Li42MTM0MWM1MGNmNyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0 aW1pemVyL3BsYW5tYWluLmgKQEAgLTEyNCw0ICsxMjQsNiBAQCBleHRlcm4gdm9pZCByZWNvcmRf cGxhbl9mdW5jdGlvbl9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgZnVuY2lkKTsK IGV4dGVybiB2b2lkIHJlY29yZF9wbGFuX3R5cGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9v dCwgT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dh bGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCk7CiAKK2V4dGVybiB2b2lkIHB1 bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBsYW5uZXJJbmZvICpyb290KTsKKwogI2VuZGlm CQkJCQkJCS8qIFBMQU5NQUlOX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCA1NjY3MGU2NWIxMS4u YWVmZTUxZjMzNWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysg Yi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTI1Niw2ICsyNTYsNyBAQCBQR19LRVlX T1JEKCJsZWFkaW5nIiwgTEVBRElORywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoImxlYWtwcm9vZiIsIExFQUtQUk9PRiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgibGVhc3QiLCBMRUFTVCwgQ09MX05BTUVfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlZnQiLCBMRUZULCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JE LCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgibGV0IiwgTEVULCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZXZlbCIsIExFVkVMLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsaWtlIiwgTElLRSwgVFlQRV9GVU5DX05BTUVf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxpbWl0IiwgTElNSVQsIFJFU0VSVkVE X0tFWVdPUkQsIEFTX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggMjM3NWU5NWMx MDcuLmMxMWZkYjNkOTcwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9k ZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTgyLDYgKzgyLDgg QEAgdHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlFWFBSX0tJTkRfQ09QWV9XSEVSRSwJCS8q IFdIRVJFIGNvbmRpdGlvbiBpbiBDT1BZIEZST00gKi8KIAlFWFBSX0tJTkRfR0VORVJBVEVEX0NP TFVNTiwgLyogZ2VuZXJhdGlvbiBleHByZXNzaW9uIGZvciBhIGNvbHVtbiAqLwogCUVYUFJfS0lO RF9DWUNMRV9NQVJLLAkJLyogY3ljbGUgbWFyayB2YWx1ZSAqLworCUVYUFJfS0lORF9BU1NJR05f VEFSR0VULAkvKiBQTC9wZ1NRTCBhc3NpZ25tZW50IHRhcmdldCAqLworCUVYUFJfS0lORF9MRVRf VEFSR0VULAkJLyogTEVUIHRhcmdldCAqLwogfSBQYXJzZUV4cHJLaW5kOwogCiAKQEAgLTI0NCw2 ICsyNDYsNyBAQCBzdHJ1Y3QgUGFyc2VTdGF0ZQogCWJvb2wJCXBfaGFzVGFyZ2V0U1JGczsKIAli b29sCQlwX2hhc1N1YkxpbmtzOwogCWJvb2wJCXBfaGFzTW9kaWZ5aW5nQ1RFOworCWJvb2wJCXBf aGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCU5vZGUJICAgKnBfbGFzdF9zcmY7CQkvKiBtb3N0IHJl Y2VudCBzZXQtcmV0dXJuaW5nIGZ1bmMvb3AgZm91bmQgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApp bmRleCA5NDY1ZGY3YjJmZi4uYTkyMWFmMjQ4NmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rj b3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0x ODYsNiArMTg2LDcgQEAgUEdfQ01EVEFHKENNRFRBR19HUkFOVCwgIkdSQU5UIiwgdHJ1ZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19HUkFOVF9ST0xFLCAiR1JBTlQgUk9MRSIsIGZh bHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0lNUE9SVF9GT1JFSUdOX1NDSEVN QSwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfSU5TRVJULCAiSU5TRVJUIiwgZmFsc2UsIGZhbHNlLCB0cnVlKQorUEdfQ01EVEFH KENNRFRBR19MRVQsICJMRVQiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRB R19MSVNURU4sICJMSVNURU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRB R19MT0FELCAiTE9BRCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0xP Q0tfVEFCTEUsICJMT0NLIFRBQkxFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKaW5kZXgg YTNkNTIxYjZmOTcuLjM4Y2M4N2Y0ZTdhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2Rl c3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaApAQCAtOTcsNiArOTcsNyBAQCB0eXBl ZGVmIGVudW0KIAlEZXN0VHJhbnNpZW50UmVsLAkJCS8qIHJlc3VsdHMgc2VudCB0byB0cmFuc2ll bnQgcmVsYXRpb24gKi8KIAlEZXN0VHVwbGVRdWV1ZSwJCQkJLyogcmVzdWx0cyBzZW50IHRvIHR1 cGxlIHF1ZXVlICovCiAJRGVzdEV4cGxhaW5TZXJpYWxpemUsCQkvKiByZXN1bHRzIGFyZSBzZXJp YWxpemVkIGFuZCBkaXNjYXJkZWQgKi8KKwlEZXN0VmFyaWFibGUsCQkJCS8qIHJlc3VsdHMgc2Vu dCB0byBzZXNzaW9uIHZhcmlhYmxlICovCiB9IENvbW1hbmREZXN0OwogCiAvKiAtLS0tLS0tLS0t LS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jIGIvc3JjL3Bs L3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCA4NmM1YmQzMjRhOS4uMTM2MWE4YTg0ODAgMTAw NjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL3BsX2V4ZWMuYwpAQCAtODA5OSw3ICs4MDk5LDggQEAgZXhlY19pc19zaW1wbGVfcXVl cnkoUExwZ1NRTF9leHByICpleHByKQogCQlxdWVyeS0+c29ydENsYXVzZSB8fAogCQlxdWVyeS0+ bGltaXRPZmZzZXQgfHwKIAkJcXVlcnktPmxpbWl0Q291bnQgfHwKLQkJcXVlcnktPnNldE9wZXJh dGlvbnMpCisJCXF1ZXJ5LT5zZXRPcGVyYXRpb25zIHx8CisJCXF1ZXJ5LT5oYXNTZXNzaW9uVmFy aWFibGVzKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBkMGFmZjU2YTAxZC4uYTJjYjM1ZTNk N2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CkBAIC01NiwzICs1Niw5MjggQEAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOwogRFJP UCBTQ0hFTUEgc3ZhcnRlc3Q7CiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CiBE Uk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMK K0NSRUFURSBST0xFIHJlZ3Jlc3Nfbm9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFT ICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0Ug RlVOQ1RJT04gc3FsZnhfc2QoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFy MSAkJCBMQU5HVUFHRSBzcWwgU0VDVVJJVFkgREVGSU5FUjsKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHBscGdzcWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEg KyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHBscGdzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEg KyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklUWSBERUZJTkVSOworTEVUIHZh cjEgPSAxMDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQor ICAgMTAKKygxIHJvdykKKworU0VMRUNUIHNxbGZ4KDIwKTsKKyBzcWxmeCAKKy0tLS0tLS0KKyAg ICAzMAorKDEgcm93KQorCitTRUxFQ1Qgc3FsZnhfc2QoMjApOworIHNxbGZ4X3NkIAorLS0tLS0t LS0tLQorICAgICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngoMjApOworIHBscGdz cWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3Fs Znhfc2QoMjApOworIHBscGdzcWxmeF9zZCAKKy0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDMw CisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7 CitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFy aWFibGUgdmFyMQorU0VMRUNUIHNxbGZ4KDIwKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngi IHN0YXRlbWVudCAxCitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJl c3Npb24gIiQxICsgdmFyMSIKK1BML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBs aW5lIDEgYXQgUkVUVVJOCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBzcWxmeF9zZCgyMCk7Cisg c3FsZnhfc2QgCistLS0tLS0tLS0tCisgICAgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdz cWxmeF9zZCgyMCk7CisgcGxwZ3NxbGZ4X3NkIAorLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg MzAKKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSB2YXIxIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKKy0tIHNob3VsZCBiZSBvaworU0VUIFJPTEUg VE8gcmVncmVzc19ub293bmVyOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAK KygxIHJvdykKKworU0VMRUNUIHNxbGZ4KDIwKTsKKyBzcWxmeCAKKy0tLS0tLS0KKyAgICAzMAor KDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0t LQorICAgICAgICAzMAorKDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJ QUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiBzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBn c3FsZngoaW50KTsKK0RST1AgRlVOQ1RJT04gc3FsZnhfc2QoaW50KTsKK0RST1AgRlVOQ1RJT04g cGxwZ3NxbGZ4X3NkKGludCk7CitEUk9QIFJPTEUgcmVncmVzc19ub293bmVyOworLS0gdXNlIHZh cmlhYmxlcyBpbnNpZGUgdmlld3MKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7Cist LSB1c2UgdmFyaWFibGVzIGluIHZpZXdzCitDUkVBVEUgVklFVyB0ZXN0X3ZpZXcgQVMgU0VMRUNU IENPQUxFU0NFKHZhcjEgKyB2LCAwKSBBUyByZXN1bHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwy KSBnKHYpOworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAg ICAgIDAKKyAgICAgIDAKKygyIHJvd3MpCisKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZS T00gdGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICA0LjE0CisgICA1LjE0CisoMiBy b3dzKQorCistLSBzdGFydCBhIG5ldyBzZXNzaW9uCitcYworU0VMRUNUICogRlJPTSB0ZXN0X3Zp ZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgIDAKKyAgICAgIDAKKygyIHJvd3MpCisKK0xF VCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0t LS0tCisgICA0LjE0CisgICA1LjE0CisoMiByb3dzKQorCistLSBzaG91bGQgZmFpbCwgZGVwZW5k ZW5jeQorRFJPUCBWQVJJQUJMRSB2YXIxOworRVJST1I6ICBjYW5ub3QgZHJvcCBzZXNzaW9uIHZh cmlhYmxlIHZhcjEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAg dmlldyB0ZXN0X3ZpZXcgZGVwZW5kcyBvbiBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0hJTlQ6ICBV c2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCist LSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworTk9USUNFOiAgZHJv cCBjYXNjYWRlcyB0byB2aWV3IHRlc3RfdmlldworQ1JFQVRFIFZBUklBQkxFIHZhcjEgdGV4dDsK K0NSRUFURSBWQVJJQUJMRSB2YXIyIHRleHQ7CistLSB1c2UgdmFyaWFibGVzIGluIFNRTCBmdW5j dGlvbnMKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKQorUkVUVVJO UyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIxIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3Fs OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngyKCB2YXJjaGFyKQorUkVUVVJOUyB2 YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIyIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOwor TEVUIHZhcjEgPSAnc3RyMSc7CitMRVQgdmFyMiA9ICdzdHIyJzsKK1NFTEVDVCBzcWxmeDEoc3Fs ZngyKCdIZWxsbycpKTsKKyAgICAgIHNxbGZ4MSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0K KyBzdHIxLCBzdHIyLCBIZWxsbworKDEgcm93KQorCistLSBpbmxpbmluZyBpcyBibG9ja2VkCitF WFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIFNFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycp KTsKKyAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgUmVzdWx0CisgICBPdXRwdXQ6IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJzo6Y2hhcmFjdGVyIHZh cnlpbmcpKQorKDIgcm93cykKKworRFJPUCBGVU5DVElPTiBzcWxmeDEodmFyY2hhcik7CitEUk9Q IEZVTkNUSU9OIHNxbGZ4Mih2YXJjaGFyKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFS SUFCTEUgdmFyMjsKKy0tIGFjY2VzcyBmcm9tIGNhY2hlZCBwbGFucyBzaG91bGQgd29yaworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O IHBscGdzcWxmeCgpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQgQkVHSU4gUkVUVVJOIHZhcjE7IEVO RCAkJCBMQU5HVUFHRSBwbHBnc3FsOworc2V0IHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5l cmljX3BsYW47CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3Nx bGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgIDMuMTQKKygxIHJvdykKKworTEVUIHZhcjEgPSAzLjE0 ICogMjsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAg ICAgNi4yOAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBkZXBlbmRlbmN5IChw bGFuIGludmFsaWRhdGlvbikgc2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51 bWVyaWM7CitMRVQgdmFyMSA9IDMuMTQgKiAzOworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdz cWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICA5LjQyCisoMSByb3cpCisKK0xFVCB2YXIxID0gMy4x NCAqIDQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAg ICAgMTIuNTYKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiBw bHBnc3FsZngoKTsKK3NldCBwbGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKKy0tIHVzYWdlIExF VCBzdGF0ZW1lbnQgaW4gcGxwZ3NxbCBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEg aW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgbnVtZXJpY1tdOworRE8gJCQKK0JFR0lOCisgIExF VCB2YXIyID0gJ3t9Jzo6aW50W107CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQg dmFyMSA9IGk7CisgICAgTEVUIHZhcjJbdmFyMV0gPSBpOworICBFTkQgTE9PUDsKKyAgUkFJU0Ug Tk9USUNFICdyZXN1bHQgYXJyYXk6ICUnLCB2YXIyOworRU5EOworJCQ7CitOT1RJQ0U6ICByZXN1 bHQgYXJyYXk6IHsxLDIsMyw0LDUsNiw3LDgsOSwxMH0KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgVkFSSUFCTEUgdmFyMjsKKy0tIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0 CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHBy ZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitDUkVBVEUgUFJPQ0VEVVJF IHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJnOyBFTkQgJCQgTEFO R1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBpcyBub3Qgc3VwcG9ydGVk IHlldCkKK0NBTEwgcCh2KTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNl ZCBhcyBhbiBhcmd1bWVudAorRE8gJCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7CitFUlJPUjog IHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK0NPTlRFWFQ6 ICBTUUwgc3RhdGVtZW50ICJDQUxMIHAodikiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29k ZV9ibG9jayBsaW5lIDEgYXQgQ0FMTAorRFJPUCBQUk9DRURVUkUgcChpbnQpOworRFJPUCBWQVJJ QUJMRSB2OworLS0gRVhFQ1VURSBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJl cXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24g ZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2IGludDsKK0xFVCB2ID0gMjA7CitQUkVQQVJFIHB0 ZXN0KGludCkgQVMgU0VMRUNUICQxOworLS0gc2hvdWxkIGZhaWwKK0VYRUNVVEUgcHRlc3Qodik7 CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQK K0RFQUxMT0NBVEUgcHRlc3Q7CitEUk9QIFZBUklBQkxFIHY7CistLSB0ZXN0IHNlYXJjaCBwYXRo CitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEg QVMgbnVtZXJpYzsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IHBpKCk7CitFUlJPUjogIHNl c3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNuJ3QgZXhpc3QKK0xJTkUgMTogTEVUIHZhcjEgPSBw aSgpOworICAgICAgICAgICAgXgorU0VMRUNUIHZhcjE7CitFUlJPUjogIGNvbHVtbiAidmFyMSIg ZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAgICBeCist LSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdC52YXIxID0gcGkoKTsKK1NFTEVDVCBzdmFydGVz dC52YXIxOworICAgICAgIHZhcjEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAzLjE0MTU5 MjY1MzU4OTc5CisoMSByb3cpCisKK1NFVCBzZWFyY2hfcGF0aCBUTyBzdmFydGVzdDsKKy0tIHNo b3VsZCBiZSBvaworTEVUIHZhcjEgPSBwaSgpICsgMTA7CitTRUxFQ1QgdmFyMTsKKyAgICAgICB2 YXIxICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tCisgMTMuMTQxNTkyNjUzNTg5OAorKDEgcm93 KQorCitSRVNFVCBzZWFyY2hfcGF0aDsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CitO T1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3QudmFyMQor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKKy0tIHZhcmlhYmxlcyBjYW4gYmUgdXBkYXRl ZCB1bmRlciBSTyB0cmFuc2FjdGlvbgorQkVHSU47CitTRVQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZ OworTEVUIHZhcjEgPSAnaGVsbG8nOworQ09NTUlUOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCist LS0tLS0tCisgaGVsbG8KKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gdGVzdCBv ZiBkb21haW5zCitDUkVBVEUgRE9NQUlOIGludF9kb21haW4gQVMgaW50IE5PVCBOVUxMIENIRUNL IChWQUxVRSA+IDEwMCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnRfZG9tYWluOworLS0g c2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOworRVJST1I6ICBkb21haW4gaW50X2RvbWFpbiBkb2Vz IG5vdCBhbGxvdyBudWxsIHZhbHVlcworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwMDA7 CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgMTAwMAorKDEgcm93KQorCistLSBzaG91 bGQgZmFpbAorTEVUIHZhcjEgPSAxMDsKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBpbnRfZG9t YWluIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImludF9kb21haW5fY2hlY2siCistLSBzaG91 bGQgZmFpbAorTEVUIHZhcjEgPSBOVUxMOworRVJST1I6ICBkb21haW4gaW50X2RvbWFpbiBkb2Vz IG5vdCBhbGxvdyBudWxsIHZhbHVlcworLS0gbm90ZSAtIGRvbWFpbiBkZWZhdWx0cyBhcmUgbm90 IHN1cHBvcnRlZCB5ZXQgKGxpa2UgUExwZ1NRTCkKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1Ag RE9NQUlOIGludF9kb21haW47CistLSB0aGUgZXhwcmVzc2lvbiBzaG91bGQgcmVtYWluICJ1bmtu b3duIgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50NG11bHRpcmFuZ2VbXTsKKy0tIHNob3Vs ZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOworTEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0KX0i LCJ7WzUsOCksWzEyLDE0KX0ifSc7CitMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsK K1NFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgICAgdmFyMSAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsie1syLDgpLFsxMSwx NCl9Iiwie1s1LDgpLFsxMiwxMDApfSJ9CisoMSByb3cpCisKKy0tSXQgc2hvdWxkIHdvcmsgaW4g cGxwZ3NxbCB0b28KK0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IE5VTEw7CisgIExFVCB2YXIx ID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworICBMRVQgdmFyMVsy XSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKKworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5E OworJCQ7CitOT1RJQ0U6ICB7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTAwKX0ifQor RFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdCBDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQgQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitMRVQgc3ZhcnRlc3QudmFy MSA9IDEwMDsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCiso MSByb3cpCisKK1NFVCBzZWFyY2hfcGF0aCB0byBwdWJsaWMsIHN2YXJ0ZXN0OworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworRFJPUCBTQ0hFTUEgc3ZhcnRl c3QgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMiBvdGhlciBvYmplY3RzCitE RVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGZvbworZHJvcCBjYXNjYWRlcyB0byBzZXNz aW9uIHZhcmlhYmxlIHZhcjEKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBW QVJJQUJMRSB2YXIyIEFTIGludFtdOworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjpp bnRbXTsKK0xFVCB2YXIyW3ZhcjFdID0gMDsKK1NFTEVDVCB2YXIyOworICAgdmFyMiAgICAKKy0t LS0tLS0tLS0tCisgWzI6Ml09ezB9CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFy MjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFT IGludFtdOworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKK1NFTEVDVCB2 YXIyOworIHZhcjIgCistLS0tLS0KKyB7fQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjEs IHZhcjI7CistLSB0aGUgTEVUIHN0YXRlbWVudCBzaG91bGQgYmUgZGlzYWxsb3dlZCBpbiBDVEUK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK1dJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDAp IFNFTEVDVCAqIEZST00geDsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIkxFVCIK K0xJTkUgMTogV0lUSCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OworICAg ICAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMSk7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMo MSwgMik7CitFUlJPUjogIGV4cHJlc3Npb24gcmV0dXJuZWQgbW9yZSB0aGFuIG9uZSByb3cKK0xF VCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDApOworRVJST1I6ICBleHByZXNzaW9uIHJldHVy bmVkIG5vIHJvd3MKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGNvbXBvc2l0ZSB2YXJpYWJsZXMK K0NSRUFURSBUWVBFIHN2X3h5eiBBUyAoeCBpbnQsIHkgaW50LCB6IG51bWVyaWMoMTAsMikpOwor Q1JFQVRFIFZBUklBQkxFIHYxIEFTIHN2X3h5ejsKK0NSRUFURSBWQVJJQUJMRSB2MiBBUyBzdl94 eXo7CitMRVQgdjEgPSAoMSwgMiwgMy4xNCk7CitMRVQgdjIgPSAoMTAsIDIwLCAzLjE0ICogMTAp OworLS0gc2hvdWxkIHdvcmsgdG9vIC0gdGhlcmUgYXJlIHByZXBhcmVkIGNhc3RzCitMRVQgdjEg PSAoMSwgMiwgMyk7CitTRUxFQ1QgdjE7CisgICAgIHYxICAgICAKKy0tLS0tLS0tLS0tLQorICgx LDIsMy4wMCkKKygxIHJvdykKKworU0VMRUNUIHYyOworICAgICAgdjIgICAgICAgCistLS0tLS0t LS0tLS0tLS0KKyAoMTAsMjAsMzEuNDApCisoMSByb3cpCisKK1NFTEVDVCAodjEpLio7CisgeCB8 IHkgfCAgeiAgIAorLS0tKy0tLSstLS0tLS0KKyAxIHwgMiB8IDMuMDAKKygxIHJvdykKKworU0VM RUNUICh2MikuKjsKKyB4ICB8IHkgIHwgICB6ICAgCistLS0tKy0tLS0rLS0tLS0tLQorIDEwIHwg MjAgfCAzMS40MAorKDEgcm93KQorCitTRUxFQ1QgdjEueCArIHYxLno7CisgP2NvbHVtbj8gCist LS0tLS0tLS0tCisgICAgIDQuMDAKKygxIHJvdykKKworU0VMRUNUIHYyLnggKyB2Mi56OworID9j b2x1bW4/IAorLS0tLS0tLS0tLQorICAgIDQxLjQwCisoMSByb3cpCisKKy0tIGFjY2VzcyB0byBj b21wb3NpdGUgZmllbGRzIHNob3VsZCBiZSBzYWZlIHRvbworQ1JFQVRFIFJPTEUgcmVncmVzc192 YXJfdGVzdF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hv dWxkIGZhaWwKK1NFTEVDVCB2Mi54OworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vz c2lvbiB2YXJpYWJsZSB2MgorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdjE7 CitEUk9QIFZBUklBQkxFIHYyOworRFJPUCBUWVBFIHN2X3h5ejsKK0RST1AgUk9MRSByZWdyZXNz X3Zhcl90ZXN0X3JvbGU7CitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVtZXJpYywgYyB0 ZXh0KTsKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyB0MTsKK0xFVCB2MSA9ICgxLCBwaSgpLCAnaGVs bG8nKTsKK1NFTEVDVCB2MTsKKyAgICAgICAgICAgICB2MSAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMSwzLjE0MTU5MjY1MzU4OTc5LGhlbGxvKQorKDEgcm93 KQorCitMRVQgdjEuYiA9IDEwLjIyMjI7CitTRUxFQ1QgdjE7CisgICAgICAgIHYxICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEsMTAuMjIyMixoZWxsbykKKygxIHJvdykKKworLS0g c2hvdWxkIGZhaWwsIGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CitMRVQgdjEueCA9IDEwOworRVJS T1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gInYxIiBiZWNhdXNlIHRo ZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQorTElORSAxOiBMRVQgdjEueCA9 IDEwOworICAgICAgICAgICAgXgorLS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11bHRpIGNv bHVtbiBxdWVyeQorTEVUIHYxID0gKE5VTEw6OnQxKS4qOworRVJST1I6ICBhc3NpZ25tZW50IGV4 cHJlc3Npb24gcmV0dXJuZWQgMyBjb2x1bW5zCitMSU5FIDE6IExFVCB2MSA9IChOVUxMOjp0MSku KjsKKyAgICAgICAgICAgICAgICAgIF4KKy0tIGFsbG93IERST1Agb3IgQUREIEFUVFJJQlVURSBv biBjb21wb3NpdGUgdHlwZXMKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFU VFJJQlVURSBjOworU0VMRUNUIHYxOworICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLQorICgx LDEwLjIyMjIpCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQg QVRUUklCVVRFIGMgaW50OworU0VMRUNUIHYxOworICAgICAgdjEgICAgICAKKy0tLS0tLS0tLS0t LS0tCisgKDEsMTAuMjIyMiwpCisoMSByb3cpCisKK0xFVCB2MSA9ICgxMCwgMTAuMywgMjApOwor U0VMRUNUIHYxOworICAgICAgdjEgICAgICAKKy0tLS0tLS0tLS0tLS0tCisgKDEwLDEwLjMsMjAp CisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVU RSBiOworU0VMRUNUIHYxOworICAgdjEgICAgCistLS0tLS0tLS0KKyAoMTAsMjApCisoMSByb3cp CisKKy0tIHNob3VsZCBmYWlsLCBkaXNhbGxvdyBkYXRhIHR5cGUgY2hhbmdlCitBTFRFUiBUWVBF IHQxIEFMVEVSIEFUVFJJQlVURSBjIFRZUEUgaW50OworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlw ZSAidDEiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnYxIiB1c2VzIGl0CitEUk9Q IFZBUklBQkxFIHYxOworRFJPUCBUWVBFIHQxOworLS0gdGhlIHRhYmxlIHR5cGUgY2FuIGJlIHVz ZWQgYXMgY29tcG9zaXRlIHR5cGUgdG9vCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50LCBi IG51bWVyaWMsIGMgZGF0ZSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBzdmFyX3Rlc3Q7CitM RVQgdmFyMSA9ICgxMCwgcGkoKSwgJzIwMjMtMDUtMjYnKTsKK1NFTEVDVCB2YXIxOworICAgICAg ICAgICAgICAgdmFyMSAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICgxMCwzLjE0MTU5MjY1MzU4OTc5LDA1LTI2LTIwMjMpCisoMSByb3cpCisKKy0t IHNob3VsZCBmYWlsIGR1ZSBkZXBlbmRlbmN5CitBTFRFUiBUQUJMRSBzdmFyX3Rlc3QgQUxURVIg Q09MVU1OIGEgVFlQRSB0ZXh0OworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgInN2YXJfdGVz dCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorLS0gc2hv dWxkIGZhaWwKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworRVJST1I6ICBjYW5ub3QgZHJvcCB0YWJs ZSBzdmFyX3Rlc3QgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAg c2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSBzdmFyX3Rlc3QKK0hJTlQ6ICBV c2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitE Uk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKKy0tIGFycmF5cyBhcmUg c3VwcG9ydGVkCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljW107CitMRVQgdmFyMSA9 IEFSUkFZWzEuMSwyLjFdOworTEVUIHZhcjFbMV0gPSAxMC4xOworU0VMRUNUIHZhcjE7CisgICAg dmFyMSAgICAKKy0tLS0tLS0tLS0tLQorIHsxMC4xLDIuMX0KKygxIHJvdykKKworLS0gTEVUIHRh cmdldCBkb2Vzbid0IGFsbG93IHNyZiwgc2hvdWxkIGZhaWwKK0xFVCB2YXIxW2dlbmVyYXRlX3Nl cmllcygxLDMpXSA9IDEwMDsKK0VSUk9SOiAgc2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5v dCBhbGxvd2VkIGluIExFVAorTElORSAxOiBMRVQgdmFyMVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0g PSAxMDA7CisgICAgICAgICAgICAgICAgIF4KK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGFycmF5 cyBpbnNpZGUgY29tcG9zaXRlCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBudW1lcmljLCBiIG51bWVy aWNbXSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKK0xFVCB2YXIxID0gKDEwLjEsIEFS UkFZWzAuMCwgMC4wXSk7CitMRVQgdmFyMS5hID0gMTAuMjsKK1NFTEVDVCB2YXIxOworICAgICAg ICB2YXIxICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEwLjIsInswLjAsMC4wfSIp CisoMSByb3cpCisKK0xFVCB2YXIxLmJbMV0gPSAxMC4zOworU0VMRUNUIHZhcjE7CisgICAgICAg IHZhcjEgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxMC4yLCJ7MTAuMywwLjB9 IikKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHQxOworLS0gRW5j b3VyYWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3QgPSAw OworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9z Y2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAyOwor LS0gdGVzdCBvbiBxdWVyeSB3aXRoIHdvcmtlcnMKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBp bnQpOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsMTAwMCk7CitBTkFMWVpFIHN2YXJfdGVzdDsKK0NSRUFURSBWQVJJQUJMRSB6ZXJvIGludDsK K0xFVCB6ZXJvID0gMDsKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwCitTRUxFQ1QgY291bnQoKikg RlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisgY291bnQgCistLS0tLS0tCisgICAx MDAKKygxIHJvdykKKworLS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgeWV0 CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVS RSBhJTEwID0gemVybzsKKyAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIFNlcSBT Y2FuIG9uIHN2YXJfdGVzdAorICAgICAgICAgRmlsdGVyOiAoKGEgJSAxMCkgPSB6ZXJvKQorKDMg cm93cykKKworTEVUIHplcm8gPSAoU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0KTsKKy0t IHJlc3VsdCBzaG91bGQgYmUgMTAwMAorU0VMRUNUIHplcm87CisgemVybyAKKy0tLS0tLQorIDEw MDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB6ZXJvOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7 CitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQgcGFyYWxsZWxfdHVwbGVfY29zdDsK K1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitSRVNFVCBtYXhfcGFyYWxsZWxf d29ya2Vyc19wZXJfZ2F0aGVyOworLS0gdGhlIHJlc3VsdCBvZiB2aWV3IHNob3VsZCBiZSBzYW1l IGluIHBhcmFsbGVsIG1vZGUgdG9vCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQg dmFyMSA9IDEwOworQ1JFQVRFIFZJRVcgdmFyMXZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEs IDApIEFTIHJlc3VsdDsKK1NFTEVDVCAqIEZST00gdmFyMXZpZXc7CisgcmVzdWx0IAorLS0tLS0t LS0KKyAgICAgMTAKKygxIHJvdykKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9uOwor U0VMRUNUICogRlJPTSB2YXIxdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAxMAorKDEg cm93KQorCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8gb2ZmOworRFJPUCBWSUVXIHZhcjF2 aWV3OworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcmlkIGludDsKK0NS RUFURSBUQUJMRSBzdmFyX3Rlc3QoaWQgaW50LCB2IGludCk7CitMRVQgdmFyaWQgPSAxOworSU5T RVJUIElOVE8gc3Zhcl90ZXN0IFZBTFVFUyh2YXJpZCwgMTAwKTsKK1NFTEVDVCAqIEZST00gc3Zh cl90ZXN0OworIGlkIHwgIHYgIAorLS0tLSstLS0tLQorICAxIHwgMTAwCisoMSByb3cpCisKK1VQ REFURSBzdmFyX3Rlc3QgU0VUIHYgPSAyMDAgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZS T00gc3Zhcl90ZXN0OworIGlkIHwgIHYgIAorLS0tLSstLS0tLQorICAxIHwgMjAwCisoMSByb3cp CisKK0RFTEVURSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJP TSBzdmFyX3Rlc3Q7CisgaWQgfCB2IAorLS0tLSstLS0KKygwIHJvd3MpCisKK0RST1AgVEFCTEUg c3Zhcl90ZXN0OworRFJPUCBWQVJJQUJMRSB2YXJpZDsKKy0tIHZpc2liaWxpdHkgY2hlY2sKKy0t IHZhcmlhYmxlcyBzaG91bGQgYmUgc2hhZG93ZWQgYWx3YXlzCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyB0ZXh0OworU0VMRUNUIHZhcjEucmVsbmFtZSBGUk9NIHBnX2NsYXNzIHZhcjEgV0hFUkUg dmFyMS5yZWxuYW1lID0gJ3BnX2NsYXNzJzsKKyByZWxuYW1lICAKKy0tLS0tLS0tLS0KKyBwZ19j bGFzcworKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVEFCTEUgeHh0YWIo YXZhciBpbnQpOworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDMzMyk7CitDUkVBVEUgVFlQRSB4 eHR5cGUgQVMgKGF2YXIgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB4eHRhYiBBUyB4eHR5cGU7CitJ TlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMTApOworLS0gaXQgaXMgYW1iaWd1b3VzLCBidXQgY29s dW1ucyBhcmUgcHJlZmVycmVkCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworIGF2YXIg CistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworLS0gc2hvdWxkIGJlIG9rCitTRUxF Q1QgYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93 cykKKworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5hdmFyIEFTIGludDsKKy0tIHNob3VsZCBiZSBv aywgc2VlIHRoZSB0YWJsZQorU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0t CisgIDMzMworICAgMTAKKygyIHJvd3MpCisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHB1Ymxp Yy5hdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAgICAKKyAgICAgCisoMiByb3dz KQorCitEUk9QIFZBUklBQkxFIHh4dGFiOworU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsK KyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKK0RST1AgVkFSSUFCTEUg cHVibGljLmF2YXI7CitEUk9QIFRZUEUgeHh0eXBlOworRFJPUCBUQUJMRSB4eHRhYjsKKy0tIFRo ZSB2YXJpYWJsZSBjYW4gYmUgc2hhZG93ZWQgYnkgdGFibGUgb3IgYnkgYWxpYXMKK0NSRUFURSBU WVBFIHB1YmxpYy5zdmFyX3R5cGUgQVMgKGEgaW50LCBiIGludCwgYyBpbnQpOworQ1JFQVRFIFZB UklBQkxFIHB1YmxpYy5zdmFyIEFTIHB1YmxpYy5zdmFyX3R5cGU7CitDUkVBVEUgVEFCTEUgcHVi bGljLnN2YXIoYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHB1YmxpYy5zdmFyIFZBTFVFUygx MCwgMjApOworTEVUIHB1YmxpYy5zdmFyID0gKDEwMCwgMjAwLCAzMDApOworLS0gc2hvdWxkIGJl IG9rCistLSBzaG93IHRhYmxlCitTRUxFQ1QgKiBGUk9NIHB1YmxpYy5zdmFyOworIGEgIHwgYiAg CistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJs aWMuc3ZhcjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci4qIEZST00g cHVibGljLnN2YXI7CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKwor LS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworICAgICBzdmFyICAgICAgCist LS0tLS0tLS0tLS0tLS0KKyAoMTAwLDIwMCwzMDApCisoMSByb3cpCisKK1NFTEVDVCBwdWJsaWMu c3Zhci5jOworICBjICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK1NFTEVDVCAocHVibGljLnN2 YXIpLio7CisgIGEgIHwgIGIgIHwgIGMgIAorLS0tLS0rLS0tLS0rLS0tLS0KKyAxMDAgfCAyMDAg fCAzMDAKKygxIHJvdykKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBlcnJv cgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKK0VSUk9SOiAgY29sdW1u IHN2YXIuYyBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9N IHB1YmxpYy5zdmFyOworICAgICAgICAgICAgICAgXgorLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFz CitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7CisgIGMgIAorLS0tLS0K KyAzMDAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworIGEgIAor LS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKyBh ICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCistLSBzaG93IHZhcmlhYmxl CitTRUxFQ1QgcHVibGljLnN2YXI7CisgICAgIHN2YXIgICAgICAKKy0tLS0tLS0tLS0tLS0tLQor ICgxMDAsMjAwLDMwMCkKKygxIHJvdykKKworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CisgIGMgIAor LS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKyAgYSAgfCAg YiAgfCAgYyAgCistLS0tLSstLS0tLSstLS0tLQorIDEwMCB8IDIwMCB8IDMwMAorKDEgcm93KQor CistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGlj LnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworRVJST1I6ICBjb2x1bW4gc3Zhci5jIGRvZXMgbm90 IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7Cisg ICAgICAgICAgICAgICBeCistLSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMu c3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93KQor CitEUk9QIFZBUklBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUQUJMRSBwdWJsaWMuc3ZhcjsKK0RS T1AgVFlQRSBwdWJsaWMuc3Zhcl90eXBlOworQ1JFQVRFIFRZUEUgYWIgQVMgKGEgaW50ZWdlciwg YiBpbnRlZ2VyKTsKK0NSRUFURSBWQVJJQUJMRSB2X2FiIEFTIGFiOworQ1JFQVRFIFRBQkxFIHZf YWIgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKK0lOU0VSVCBJTlRPIHZfYWIgVkFMVUVTKDEwLDIw KTsKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2X2FiOworIGEg IAorLS0tLQorIDEwCisoMSByb3cpCisKK0NSRUFURSBTQ0hFTUEgdl9hYjsKK0NSRUFURSBWQVJJ QUJMRSB2X2FiLmEgQVMgaW50ZWdlcjsKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB2 X2FiLmEgRlJPTSB2X2FiOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFC TEUgdl9hYjsKK0RST1AgVEFCTEUgdl9hYjsKK0RST1AgVFlQRSBhYjsKK0RST1AgVkFSSUFCTEUg dl9hYi5hOworRFJPUCBTQ0hFTUEgdl9hYjsKK0NSRUFURSBUWVBFIHRfYW1fdHlwZSBBUyAoYiBp bnQpOworQ1JFQVRFIFNDSEVNQSB4eHhfYW07CitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOwor Q1JFQVRFIFZBUklBQkxFIHh4eF9hbSBBUyB0X2FtX3R5cGU7CitMRVQgeHh4X2FtID0gUk9XKDEw KTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHh4eF9hbTsKKyB4eHhfYW0gCistLS0tLS0tLQor ICgxMCkKKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHh4eF9hbS5iIEFTIGludDsKK0xFVCA6 IkRCTkFNRSIueHh4X2FtLmIgPSAyMDsKKy0tIHNob3VsZCBiZSBzdGlsbCBvaworU0VMRUNUIHh4 eF9hbTsKKyB4eHhfYW0gCistLS0tLS0tLQorICgxMCkKKygxIHJvdykKKworLS0gc2hvdWxkIGZh aWwsIHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIHh4eF9hbS5iOwor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAieHh4X2FtLmIiIGlzIGFtYmlndW91 cworTElORSAxOiBTRUxFQ1QgeHh4X2FtLmI7CisgICAgICAgICAgICAgICBeCistLSBlbmhhbmNl ZCByZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy54eHhfYW0uYjsKKyBiICAK Ky0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1QgOiJEQk5BTUUiLnh4eF9hbS5iOworIGIgIAor LS0tLQorIDIwCisoMSByb3cpCisKK0NSRUFURSBUQUJMRSB4eHhfYW0oYiAgaW50KTsKK0lOU0VS VCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNU IHh4eF9hbS5iIEZST00geHh4X2FtOworIGIgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVD VCB4LmIgRlJPTSB4eHhfYW0geDsKKyBiICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitEUk9QIFRB QkxFIHh4eF9hbTsKK0RST1AgVkFSSUFCTEUgcHVibGljLnh4eF9hbTsKK0RST1AgVkFSSUFCTEUg eHh4X2FtLmI7CitEUk9QIFNDSEVNQSB4eHhfYW07CitDUkVBVEUgU0NIRU1BIDoiREJOQU1FIjsK K0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIiBBUyB0X2FtX3R5 cGU7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iIEFTIGludDsKK1NFVCBz ZWFyY2hfcGF0aCBUTyA6IkRCTkFNRSI7CistLSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1Qg OiJEQk5BTUUiLmI7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlICJyZWdyZXNz aW9uLmIiIGlzIGFtYmlndW91cworTElORSAxOiBTRUxFQ1QgInJlZ3Jlc3Npb24iLmI7CisgICAg ICAgICAgICAgICBeCistLSBzaG91bGQgYmUgYW1iaWd1b3VzIHRvbworU0VMRUNUIDoiREJOQU1F Ii46IkRCTkFNRSIuYjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInJlZ3Jl c3Npb24ucmVncmVzc2lvbi5iIiBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogU0VMRUNUICJyZWdyZXNz aW9uIi4icmVncmVzc2lvbiIuYjsKKyAgICAgICAgICAgICAgIF4KK0NSRUFURSBUQUJMRSA6IkRC TkFNRSIoYiBpbnQpOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgOiJEQk5BTUUiLmIgRlJPTSA6 IkRCTkFNRSI7CisgYiAKKy0tLQorKDAgcm93cykKKworRFJPUCBUQUJMRSA6IkRCTkFNRSI7CitE Uk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKK0RST1AgVkFSSUFCTEUgOiJEQk5B TUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CitEUk9QIFNDSEVNQSA6IkRCTkFNRSI7CitSRVNFVCBz ZWFyY2hfcGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApp bmRleCA4MjY3OWNiZjQ4ZS4uNjQ0NTQ3OWQyMmQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTU5LDMgKzU5LDY0MiBAQCBEUk9QIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjE7CiBEUk9QIFNDSEVNQSBzdmFydGVzdDsKIERST1AgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX3JlYWRlcjsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCistLSBj aGVjayBhY2Nlc3MgcmlnaHRzCitDUkVBVEUgUk9MRSByZWdyZXNzX25vb3duZXI7CisKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Fs ZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBz cWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4X3NkKGludCkKK1JFVFVSTlMg aW50IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsIFNFQ1VSSVRZIERFRklO RVI7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpCitSRVRVUk5T IGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCkKK1JFVFVS TlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBn c3FsIFNFQ1VSSVRZIERFRklORVI7CisKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCB2YXIxOworU0VMRUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBzcWxmeF9zZCgyMCk7CitT RUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworCistLSBzaG91 bGQgZmFpbAorU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOworCitTRUxFQ1QgdmFyMTsKK1NF TEVDVCBzcWxmeCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1Qgc3FsZnhfc2QoMjApOworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisKK1NFVCBS T0xFIFRPIERFRkFVTFQ7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNz X25vb3duZXI7CisKKy0tIHNob3VsZCBiZSBvaworU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVy OworCitTRUxFQ1QgdmFyMTsKK1NFTEVDVCBzcWxmeCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIw KTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVO Q1RJT04gc3FsZngoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCk7CitEUk9QIEZV TkNUSU9OIHNxbGZ4X3NkKGludCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQpOwor CitEUk9QIFJPTEUgcmVncmVzc19ub293bmVyOworCistLSB1c2UgdmFyaWFibGVzIGluc2lkZSB2 aWV3cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKKworLS0gdXNlIHZhcmlhYmxl cyBpbiB2aWV3cworQ1JFQVRFIFZJRVcgdGVzdF92aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIx ICsgdiwgMCkgQVMgcmVzdWx0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMikgZyh2KTsKK1NFTEVD VCAqIEZST00gdGVzdF92aWV3OworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0 X3ZpZXc7CisKKy0tIHN0YXJ0IGEgbmV3IHNlc3Npb24KK1xjCisKK1NFTEVDVCAqIEZST00gdGVz dF92aWV3OworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisKKy0t IHNob3VsZCBmYWlsLCBkZXBlbmRlbmN5CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3Vs ZCBiZSBvaworRFJPUCBWQVJJQUJMRSB2YXIxIENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIHRleHQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiB0ZXh0OworCistLSB1c2UgdmFyaWFibGVz IGluIFNRTCBmdW5jdGlvbnMKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4MSh2YXJj aGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIxIHx8ICcsICcgfHwgJDEgJCQg TEFOR1VBR0Ugc3FsOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDIoIHZhcmNo YXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjIgfHwgJywgJyB8fCAkMSAkJCBM QU5HVUFHRSBzcWw7CisKK0xFVCB2YXIxID0gJ3N0cjEnOworTEVUIHZhcjIgPSAnc3RyMic7CisK K1NFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKworLS0gaW5saW5pbmcgaXMgYmxvY2tl ZAorRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVs bG8nKSk7CisKK0RST1AgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOworRFJPUCBGVU5DVElPTiBz cWxmeDIodmFyY2hhcik7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7 CisKKy0tIGFjY2VzcyBmcm9tIGNhY2hlZCBwbGFucyBzaG91bGQgd29yaworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgbnVtZXJpYzsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3Nx bGZ4KCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAkJCBCRUdJTiBSRVRVUk4gdmFyMTsgRU5EICQkIExB TkdVQUdFIHBscGdzcWw7CisKK3NldCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJpY19w bGFuOworCitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CitMRVQgdmFyMSA9 IDMuMTQgKiAyOworU0VMRUNUIHBscGdzcWxmeCgpOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisK Ky0tIGRlcGVuZGVuY3kgKHBsYW4gaW52YWxpZGF0aW9uKSBzaG91bGQgd29yaworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKKworTEVUIHZhcjEgPSAzLjE0ICogMzsKK1NFTEVDVCBw bHBnc3FsZngoKTsKK0xFVCB2YXIxID0gMy4xNCAqIDQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisK K0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KCk7CisKK3NldCBw bGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKKworLS0gdXNhZ2UgTEVUIHN0YXRlbWVudCBpbiBw bHBnc3FsIHNob3VsZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBpbnQ7CitDUkVBVEUgVkFS SUFCTEUgdmFyMiBudW1lcmljW107CisKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMiA9ICd7fSc6 OmludFtdOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSBpOworICAg IExFVCB2YXIyW3ZhcjFdID0gaTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAncmVzdWx0 IGFycmF5OiAlJywgdmFyMjsKK0VORDsKKyQkOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9Q IFZBUklBQkxFIHZhcjI7CisKKy0tIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0 CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHBy ZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CisKK0NSRUFURSBQUk9DRURV UkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBM QU5HVUFHRSBwbHBnc3FsOworCistLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBv cnRlZCB5ZXQpCitDQUxMIHAodik7CisKK0RPICQkIEJFR0lOIENBTEwgcCh2KTsgRU5EICQkOwor CitEUk9QIFBST0NFRFVSRSBwKGludCk7CitEUk9QIFZBUklBQkxFIHY7CisKKy0tIEVYRUNVVEUg c3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNz IHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFS SUFCTEUgdiBpbnQ7CitMRVQgdiA9IDIwOworUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAk MTsKKworLS0gc2hvdWxkIGZhaWwKK0VYRUNVVEUgcHRlc3Qodik7CisKK0RFQUxMT0NBVEUgcHRl c3Q7CitEUk9QIFZBUklBQkxFIHY7CisKKy0tIHRlc3Qgc2VhcmNoIHBhdGgKK0NSRUFURSBTQ0hF TUEgc3ZhcnRlc3Q7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBudW1lcmljOwor CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBwaSgpOworU0VMRUNUIHZhcjE7CisKKy0tIHNo b3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0LnZhcjEgPSBwaSgpOworU0VMRUNUIHN2YXJ0ZXN0LnZh cjE7CisKK1NFVCBzZWFyY2hfcGF0aCBUTyBzdmFydGVzdDsKKworLS0gc2hvdWxkIGJlIG9rCitM RVQgdmFyMSA9IHBpKCkgKyAxMDsKK1NFTEVDVCB2YXIxOworCitSRVNFVCBzZWFyY2hfcGF0aDsK K0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IHRleHQ7CisKKy0tIHZhcmlhYmxlcyBjYW4gYmUgdXBkYXRlZCB1bmRlciBSTyB0cmFuc2FjdGlv bgorQkVHSU47CitTRVQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworTEVUIHZhcjEgPSAnaGVsbG8n OworQ09NTUlUOworCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSB0 ZXN0IG9mIGRvbWFpbnMKK0NSRUFURSBET01BSU4gaW50X2RvbWFpbiBBUyBpbnQgTk9UIE5VTEwg Q0hFQ0sgKFZBTFVFID4gMTAwKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludF9kb21haW47 CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQg dmFyMSA9IDEwMDA7CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0g MTA7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IE5VTEw7CisKKy0tIG5vdGUgLSBkb21h aW4gZGVmYXVsdHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0IChsaWtlIFBMcGdTUUwpCisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKK0RST1AgRE9NQUlOIGludF9kb21haW47CisKKy0tIHRoZSBleHByZXNz aW9uIHNob3VsZCByZW1haW4gInVua25vd24iCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ0 bXVsdGlyYW5nZVtdOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CitMRVQgdmFy MSA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKK0xFVCB2YXIxWzJd ID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworU0VMRUNUIHZhcjE7CisKKy0tSXQgc2hvdWxkIHdvcmsg aW4gcGxwZ3NxbCB0b28KK0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IE5VTEw7CisgIExFVCB2 YXIxID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworICBMRVQgdmFy MVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKKworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOwor RU5EOworJCQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVz dCBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitM RVQgc3ZhcnRlc3QudmFyMSA9IDEwMDsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworCitTRVQgc2Vh cmNoX3BhdGggdG8gcHVibGljLCBzdmFydGVzdDsKKworU0VMRUNUIHZhcjE7CisKK0RST1AgU0NI RU1BIHN2YXJ0ZXN0IENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NS RUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOworCitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9 ICd7fSc6OmludFtdOworCitMRVQgdmFyMlt2YXIxXSA9IDA7CisKK1NFTEVDVCB2YXIyOworCitE Uk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsK K0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOworCitMRVQgdmFyMSA9IDI7CitMRVQgdmFy MiA9ICd7fSc6OmludFtdOworCitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2 YXIyOworCistLSB0aGUgTEVUIHN0YXRlbWVudCBzaG91bGQgYmUgZGlzYWxsb3dlZCBpbiBDVEUK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK1dJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDAp IFNFTEVDVCAqIEZST00geDsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IGdlbmVyYXRl X3NlcmllcygxLCAxKTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2Vy aWVzKDEsIDIpOworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMCk7CisKK0RST1AgVkFS SUFCTEUgdmFyMTsKKworLS0gY29tcG9zaXRlIHZhcmlhYmxlcworQ1JFQVRFIFRZUEUgc3ZfeHl6 IEFTICh4IGludCwgeSBpbnQsIHogbnVtZXJpYygxMCwyKSk7CisKK0NSRUFURSBWQVJJQUJMRSB2 MSBBUyBzdl94eXo7CitDUkVBVEUgVkFSSUFCTEUgdjIgQVMgc3ZfeHl6OworCitMRVQgdjEgPSAo MSwgMiwgMy4xNCk7CitMRVQgdjIgPSAoMTAsIDIwLCAzLjE0ICogMTApOworCistLSBzaG91bGQg d29yayB0b28gLSB0aGVyZSBhcmUgcHJlcGFyZWQgY2FzdHMKK0xFVCB2MSA9ICgxLCAyLCAzKTsK KworU0VMRUNUIHYxOworU0VMRUNUIHYyOworU0VMRUNUICh2MSkuKjsKK1NFTEVDVCAodjIpLio7 CisKK1NFTEVDVCB2MS54ICsgdjEuejsKK1NFTEVDVCB2Mi54ICsgdjIuejsKKworLS0gYWNjZXNz IHRvIGNvbXBvc2l0ZSBmaWVsZHMgc2hvdWxkIGJlIHNhZmUgdG9vCitDUkVBVEUgUk9MRSByZWdy ZXNzX3Zhcl90ZXN0X3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsK KworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2Mi54OworCitTRVQgUk9MRSBUTyBERUZBVUxUOwor CitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBWQVJJQUJMRSB2MjsKK0RST1AgVFlQRSBzdl94eXo7 CitEUk9QIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworCitDUkVBVEUgVFlQRSB0MSBBUyAo YSBpbnQsIGIgbnVtZXJpYywgYyB0ZXh0KTsKKworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHQxOwor TEVUIHYxID0gKDEsIHBpKCksICdoZWxsbycpOworU0VMRUNUIHYxOworTEVUIHYxLmIgPSAxMC4y MjIyOworU0VMRUNUIHYxOworCistLSBzaG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhp c3QKK0xFVCB2MS54ID0gMTA7CisKKy0tIHNob3VsZCBmYWlsLCBkb24ndCBhbGxvdyBtdWx0aSBj b2x1bW4gcXVlcnkKK0xFVCB2MSA9IChOVUxMOjp0MSkuKjsKKworLS0gYWxsb3cgRFJPUCBvciBB REQgQVRUUklCVVRFIG9uIGNvbXBvc2l0ZSB0eXBlcworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBU WVBFIHQxIERST1AgQVRUUklCVVRFIGM7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBiZSBvawor QUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50OworU0VMRUNUIHYxOworCitMRVQgdjEg PSAoMTAsIDEwLjMsIDIwKTsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBU WVBFIHQxIERST1AgQVRUUklCVVRFIGI7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBmYWlsLCBk aXNhbGxvdyBkYXRhIHR5cGUgY2hhbmdlCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBj IFRZUEUgaW50OworCitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBUWVBFIHQxOworCistLSB0aGUg dGFibGUgdHlwZSBjYW4gYmUgdXNlZCBhcyBjb21wb3NpdGUgdHlwZSB0b28KK0NSRUFURSBUQUJM RSBzdmFyX3Rlc3QoYSBpbnQsIGIgbnVtZXJpYywgYyBkYXRlKTsKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIHN2YXJfdGVzdDsKKworTEVUIHZhcjEgPSAoMTAsIHBpKCksICcyMDIzLTA1LTI2Jyk7 CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwgZHVlIGRlcGVuZGVuY3kKK0FMVEVSIFRB QkxFIHN2YXJfdGVzdCBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7CisKKy0tIHNob3VsZCBmYWls CitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJM RSBzdmFyX3Rlc3Q7CisKKy0tIGFycmF5cyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBudW1lcmljW107CitMRVQgdmFyMSA9IEFSUkFZWzEuMSwyLjFdOworTEVUIHZhcjFb MV0gPSAxMC4xOworU0VMRUNUIHZhcjE7CisKKy0tIExFVCB0YXJnZXQgZG9lc24ndCBhbGxvdyBz cmYsIHNob3VsZCBmYWlsCitMRVQgdmFyMVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0gPSAxMDA7CisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gYXJyYXlzIGluc2lkZSBjb21wb3NpdGUKK0NSRUFU RSBUWVBFIHQxIEFTIChhIG51bWVyaWMsIGIgbnVtZXJpY1tdKTsKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIHQxOworTEVUIHZhcjEgPSAoMTAuMSwgQVJSQVlbMC4wLCAwLjBdKTsKK0xFVCB2YXIx LmEgPSAxMC4yOworU0VMRUNUIHZhcjE7CitMRVQgdmFyMS5iWzFdID0gMTAuMzsKK1NFTEVDVCB2 YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7CisKKy0tIEVuY291cmFn ZSB1c2Ugb2YgcGFyYWxsZWwgcGxhbnMKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsKK1NF VCBwYXJhbGxlbF90dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9z aXplID0gMDsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKKworLS0g dGVzdCBvbiBxdWVyeSB3aXRoIHdvcmtlcnMKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQp OworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs MTAwMCk7CitBTkFMWVpFIHN2YXJfdGVzdDsKK0NSRUFURSBWQVJJQUJMRSB6ZXJvIGludDsKK0xF VCB6ZXJvID0gMDsKKworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAKK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKKworLS0gcGFyYWxsZWwgZXhlY3V0aW9u IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgq KSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKKworTEVUIHplcm8gPSAoU0VMRUNU IGNvdW50KCopIEZST00gc3Zhcl90ZXN0KTsKKworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCitT RUxFQ1QgemVybzsKKworRFJPUCBWQVJJQUJMRSB6ZXJvOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7 CisKK1JFU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0 OworUkVTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxl bF93b3JrZXJzX3Blcl9nYXRoZXI7CisKKy0tIHRoZSByZXN1bHQgb2YgdmlldyBzaG91bGQgYmUg c2FtZSBpbiBwYXJhbGxlbCBtb2RlIHRvbworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50Owor TEVUIHZhcjEgPSAxMDsKKworQ1JFQVRFIFZJRVcgdmFyMXZpZXcgQVMgU0VMRUNUIENPQUxFU0NF KHZhcjEsIDApIEFTIHJlc3VsdDsKKworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKworU0VUIGRl YnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9uOworCitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworCitT RVQgZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8gb2ZmOworCitEUk9QIFZJRVcgdmFyMXZpZXc7CitE Uk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBWQVJJQUJMRSB2YXJpZCBpbnQ7CitDUkVBVEUg VEFCTEUgc3Zhcl90ZXN0KGlkIGludCwgdiBpbnQpOworCitMRVQgdmFyaWQgPSAxOworSU5TRVJU IElOVE8gc3Zhcl90ZXN0IFZBTFVFUyh2YXJpZCwgMTAwKTsKK1NFTEVDVCAqIEZST00gc3Zhcl90 ZXN0OworVVBEQVRFIHN2YXJfdGVzdCBTRVQgdiA9IDIwMCBXSEVSRSBpZCA9IHZhcmlkOworU0VM RUNUICogRlJPTSBzdmFyX3Rlc3Q7CitERUxFVEUgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgaWQgPSB2 YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsK K0RST1AgVkFSSUFCTEUgdmFyaWQ7CisKKworLS0gdmlzaWJpbGl0eSBjaGVjaworLS0gdmFyaWFi bGVzIHNob3VsZCBiZSBzaGFkb3dlZCBhbHdheXMKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRl eHQ7CitTRUxFQ1QgdmFyMS5yZWxuYW1lIEZST00gcGdfY2xhc3MgdmFyMSBXSEVSRSB2YXIxLnJl bG5hbWUgPSAncGdfY2xhc3MnOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBUQUJM RSB4eHRhYihhdmFyIGludCk7CisKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygzMzMpOworCitD UkVBVEUgVFlQRSB4eHR5cGUgQVMgKGF2YXIgaW50KTsKKworQ1JFQVRFIFZBUklBQkxFIHh4dGFi IEFTIHh4dHlwZTsKKworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDEwKTsKKworLS0gaXQgaXMg YW1iaWd1b3VzLCBidXQgY29sdW1ucyBhcmUgcHJlZmVycmVkCitTRUxFQ1QgeHh0YWIuYXZhciBG Uk9NIHh4dGFiOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisK K0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuYXZhciBBUyBpbnQ7CisKKy0tIHNob3VsZCBiZSBvaywg c2VlIHRoZSB0YWJsZQorU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgcHVibGljLmF2YXIgRlJPTSB4eHRhYjsKKworRFJPUCBWQVJJQUJMRSB4eHRhYjsK KworU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMu YXZhcjsKKworRFJPUCBUWVBFIHh4dHlwZTsKKworRFJPUCBUQUJMRSB4eHRhYjsKKworLS0gVGhl IHZhcmlhYmxlIGNhbiBiZSBzaGFkb3dlZCBieSB0YWJsZSBvciBieSBhbGlhcworQ1JFQVRFIFRZ UEUgcHVibGljLnN2YXJfdHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIGludCk7CitDUkVBVEUgVkFS SUFCTEUgcHVibGljLnN2YXIgQVMgcHVibGljLnN2YXJfdHlwZTsKKworQ1JFQVRFIFRBQkxFIHB1 YmxpYy5zdmFyKGEgaW50LCBiIGludCk7CisKK0lOU0VSVCBJTlRPIHB1YmxpYy5zdmFyIFZBTFVF UygxMCwgMjApOworCitMRVQgcHVibGljLnN2YXIgPSAoMTAwLCAyMDAsIDMwMCk7CisKKy0tIHNo b3VsZCBiZSBvaworLS0gc2hvdyB0YWJsZQorU0VMRUNUICogRlJPTSBwdWJsaWMuc3ZhcjsKK1NF TEVDVCBzdmFyLmEgRlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMu c3ZhcjsKKworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworU0VMRUNUIHB1 YmxpYy5zdmFyLmM7CitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworCistLSB0aGUgdmFyaWFibGUg aXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1Ymxp Yy5zdmFyOworCistLSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5j IEZST00gcHVibGljLnN2YXIgeDsKKworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOwor U0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworCistLSBzaG93IHZhcmlhYmxlCitTRUxF Q1QgcHVibGljLnN2YXI7CitTRUxFQ1QgcHVibGljLnN2YXIuYzsKK1NFTEVDVCAocHVibGljLnN2 YXIpLio7CisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVD VCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CisKKy0tIGNhbiBiZSBmaXhlZCBieSBh bGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworCitEUk9QIFZB UklBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVFlQRSBw dWJsaWMuc3Zhcl90eXBlOworCitDUkVBVEUgVFlQRSBhYiBBUyAoYSBpbnRlZ2VyLCBiIGludGVn ZXIpOworCitDUkVBVEUgVkFSSUFCTEUgdl9hYiBBUyBhYjsKKworQ1JFQVRFIFRBQkxFIHZfYWIg KGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKK0lOU0VSVCBJTlRPIHZfYWIgVkFMVUVTKDEwLDIwKTsK KworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7CisKK0NS RUFURSBTQ0hFTUEgdl9hYjsKKworQ1JFQVRFIFZBUklBQkxFIHZfYWIuYSBBUyBpbnRlZ2VyOwor CistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKworRFJP UCBWQVJJQUJMRSB2X2FiOworRFJPUCBUQUJMRSB2X2FiOworRFJPUCBUWVBFIGFiOworRFJPUCBW QVJJQUJMRSB2X2FiLmE7CitEUk9QIFNDSEVNQSB2X2FiOworCitDUkVBVEUgVFlQRSB0X2FtX3R5 cGUgQVMgKGIgaW50KTsKK0NSRUFURSBTQ0hFTUEgeHh4X2FtOworCitTRVQgc2VhcmNoX3BhdGgg VE8gcHVibGljOworCitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1fdHlwZTsKK0xFVCB4 eHhfYW0gPSBST1coMTApOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4eHhfYW07CisKK0NS RUFURSBWQVJJQUJMRSB4eHhfYW0uYiBBUyBpbnQ7CitMRVQgOiJEQk5BTUUiLnh4eF9hbS5iID0g MjA7CisKKy0tIHNob3VsZCBiZSBzdGlsbCBvaworU0VMRUNUIHh4eF9hbTsKKworLS0gc2hvdWxk IGZhaWwsIHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIHh4eF9hbS5i OworCistLSBlbmhhbmNlZCByZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy54 eHhfYW0uYjsKK1NFTEVDVCA6IkRCTkFNRSIueHh4X2FtLmI7CisKK0NSRUFURSBUQUJMRSB4eHhf YW0oYiAgaW50KTsKK0lOU0VSVCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOworCistLSB3ZSBzaG91 bGQgc2VlIHRhYmxlCitTRUxFQ1QgeHh4X2FtLmIgRlJPTSB4eHhfYW07CitTRUxFQ1QgeC5iIEZS T00geHh4X2FtIHg7CisKK0RST1AgVEFCTEUgeHh4X2FtOworRFJPUCBWQVJJQUJMRSBwdWJsaWMu eHh4X2FtOworRFJPUCBWQVJJQUJMRSB4eHhfYW0uYjsKK0RST1AgU0NIRU1BIHh4eF9hbTsKKwor Q1JFQVRFIFNDSEVNQSA6IkRCTkFNRSI7CisKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJE Qk5BTUUiLjoiREJOQU1FIiBBUyB0X2FtX3R5cGU7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUi LjoiREJOQU1FIi5iIEFTIGludDsKKworU0VUIHNlYXJjaF9wYXRoIFRPIDoiREJOQU1FIjsKKwor LS0gc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIDoiREJOQU1FIi5iOworCistLSBzaG91bGQg YmUgYW1iaWd1b3VzIHRvbworU0VMRUNUIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKKworQ1JFQVRF IFRBQkxFIDoiREJOQU1FIihiIGludCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIDoiREJO QU1FIi5iIEZST00gOiJEQk5BTUUiOworCitEUk9QIFRBQkxFIDoiREJOQU1FIjsKKworRFJPUCBW QVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46 IkRCTkFNRSIuOiJEQk5BTUUiOworRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOworCitSRVNFVCBzZWFy Y2hfcGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggNWIxZTc3MmY2M2QuLmJiZmFh YjU3MDgzIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysg Yi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTQ5OCw2ICsxNDk4LDcgQEAg TGFyZ2VPYmplY3REZXNjCiBMYXRjaAogTGF1bmNoZXJMYXN0U3RhcnRUaW1lc0VudHJ5CiBMZXJw RnVuYworTGV0U3RtdAogTGV4RGVzY3IKIExleGVtZUVudHJ5CiBMZXhlbWVIYXNoS2V5CkBAIC0y NjAxLDYgKzI2MDIsNyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQogU2Vzc2lvbgogU2Vz c2lvbkJhY2t1cFN0YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlhYmxlVmFsdWUKIFNl dENvbnN0cmFpbnRTdGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0Q29uc3RyYWludFRy aWdnZXJEYXRhCkBAIC0yNzkxLDYgKzI3OTMsOSBAQCBTdXBwb3J0UmVxdWVzdFJvd3MKIFN1cHBv cnRSZXF1ZXN0U2VsZWN0aXZpdHkKIFN1cHBvcnRSZXF1ZXN0U2ltcGxpZnkKIFN1cHBvcnRSZXF1 ZXN0V0Z1bmNNb25vdG9uaWMKK1NWYXJpYWJsZQorU1ZhcmlhYmxlRGF0YQorU1ZhcmlhYmxlU3Rh dGUKIFN5bgogU3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0gCjIuNDcuMAoK --000000000000b025da062642a2e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241106-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20241106-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m367jpdh19 RnJvbSBiMTEzYzQwOWI2YzY1Y2Y3N2ZkOTQ3MDlmY2NhZThkODBlMTcxMDQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIwXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIwICsrKysrKysrKwogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDMxICsrKwogZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDEzICsKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAgICAgICAgICAg ICAgICB8ICAxNSArKwogZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAg ICAgIHwgICAzICsKIC4uLi9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCAg ICB8ICAyNiArLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAg IHwgMTc4ICsrKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgICAgICAg ICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sICAg ICAgICAgICB8ICAgNyArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAg ICAgICAgIHwgMTUxICsrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUu c2dtbCAgICAgICAgICAgfCAxMTcgKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dt bCAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBkb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21s ICAgICAgICAgICAgICAgICAgfCAgIDcgKwogZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sICAg ICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAg ICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jICAgICAg ICAgICAgICAgICAgfCAgNzcgKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3ku YyAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCAg ICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAg ICAgICAgICAgICB8IDEzMyArKysrKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRk cmVzcy5jICAgICAgICAgICB8IDEyMSArKysrKysrKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdf c2hkZXBlbmQuYyAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zh cmlhYmxlLmMgICAgICAgICAgICAgfCAyNTUgKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy9hbHRlci5jICAgICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvZHJvcGNtZHMuYyAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jb21t YW5kcy9zZWNsYWJlbC5jICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDQxICsrKwogc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTA1ICsrKysrKystCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDE2ICsrCiBzcmMvYmFja2VuZC91dGls cy9hZHQvYWNsLmMgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvbHN5c2NhY2hlLmMgICAgICAgICAgIHwgMTEzICsrKysrKysrCiBzcmMvYmluL3BnX2R1 bXAvY29tbW9uLmMgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wZ19kdW1w L2R1bXB1dGlscy5jICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iaW4vcGdfZHVtcC9w Z19iYWNrdXAuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmluL3BnX2R1bXAvcGdf YmFja3VwX2FyY2hpdmVyLmMgICAgICAgICAgfCAgIDkgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTk1ICsrKysrKysrKysrKystCiBzcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKysKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgNjQgKysrKysKIHNyYy9iaW4vcHNx bC9jb21tYW5kLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3BzcWwv ZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgOTYgKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNx bC9oZWxwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgNDIgKystCiBzcmMvaW5jbHVkZS9j YXRhbG9nL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9pbmNsdWRlL2Nh dGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRh bG9nL25hbWVzcGFjZS5oICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19kZWZhdWx0X2FjbC5oICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgODEgKysrKysrCiBzcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMTYgKysKIHNyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgg ICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNo ZS5oICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Rl cGVuZGVuY3kub3V0ICAgICAgfCAgMTcgKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lk am9pbnMub3V0ICAgICAgICB8ICAgNCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwu b3V0ICAgICAgICAgICAgfCAgNTAgKysrKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0ICAgIHwgIDU4ICsrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2No ZWR1bGUgICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5j eS5zcWwgICAgICAgICAgIHwgIDE0ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsICAg ICAgICAgICAgICAgICB8ICAyMSArKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsICAgIHwgIDYxICsrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dCAgICAgICAgICAgICAgfCAgIDQgKwogNjUgZmlsZXMgY2hhbmdlZCwgMjM2NCBpbnNlcnRpb25z KCspLCAyNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3Jl Zi9kcm9wX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggOTY0Yzgx OWEwMmQuLjJlODkyNjA0Mjg4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtMzY5LDYgKzM2OSwxMSBAQAog ICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdXNlci1tYXBwaW5nIj48c3Ry dWN0bmFtZT5wZ191c2VyX21hcHBpbmc8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CiAgICAg ICA8ZW50cnk+bWFwcGluZ3Mgb2YgdXNlcnMgdG8gZm9yZWlnbiBzZXJ2ZXJzPC9lbnRyeT4KICAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRh bG9nLXBnLXZhcmlhYmxlIj48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L2xp bms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5zZXNzaW9uIHZhcmlhYmxlczwvZW50cnk+CisgICAg IDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KQEAgLTk3Mzcs NCArOTc0MiwxMTkgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBj b3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgPC90YWJsZT4KICA8L3Nl Y3QxPgogCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj4KKyAgPHRpdGxlPjxzdHJ1 Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6 b25lPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj4KKyAgIDxwcmltYXJ5PnBnX3ZhcmlhYmxlPC9wcmlt YXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3Ru YW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBzdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQKKyAg IHNlc3Npb24gdmFyaWFibGVzLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxz dHJ1Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0 Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg RGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Ro ZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dmFydHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAg ICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXR5cGUiPjxzdHJ1Y3Ru YW1lPnBnX3R5cGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3Rm aWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgT0lEIG9mIHRo ZSB2YXJpYWJsZSdzIGRhdGEgdHlwZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJu YW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUKKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+dmFybmFtZXNwYWNlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90 eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctbmFtZXNw YWNlIj48c3RydWN0bmFtZT5wZ19uYW1lc3BhY2U8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0 ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBUaGUgT0lEIG9mIHRoZSBuYW1lc3BhY2UgdGhhdCBjb250YWlucyB0aGlzIHZhcmlhYmxl CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm93bmVyPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ct cGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19hdXRoaWQ8L3N0cnVjdG5hbWU+PC9saW5rPi48c3Ry dWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBPd25lciBvZiB0aGUgdmFyaWFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+dmFydHlwbW9kPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZp ZWxkPiByZWNvcmRzIHR5cGUtc3BlY2lmaWMgZGF0YQorICAgICAgIHN1cHBsaWVkIGF0IHZhcmlh YmxlIGNyZWF0aW9uIHRpbWUgKGZvciBleGFtcGxlLCB0aGUgbWF4aW11bQorICAgICAgIGxlbmd0 aCBvZiBhIDx0eXBlPnZhcmNoYXI8L3R5cGU+IGNvbHVtbikuICBJdCBpcyBwYXNzZWQgdG8KKyAg ICAgICB0eXBlLXNwZWNpZmljIGlucHV0IGZ1bmN0aW9ucyBhbmQgbGVuZ3RoIGNvZXJjaW9uIGZ1 bmN0aW9ucy4KKyAgICAgICBUaGUgdmFsdWUgd2lsbCBnZW5lcmFsbHkgYmUgLTEgZm9yIHR5cGVz IHRoYXQgZG8gbm90IG5lZWQgPHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+Lgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjb2xsYXRpb248L3N0cnVjdGZpZWxkPiA8 dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxv Zy1wZy1jb2xsYXRpb24iPjxzdHJ1Y3RuYW1lPnBnX2NvbGxhdGlvbjwvc3RydWN0bmFtZT48L2xp bms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIFRoZSBkZWZpbmVkIGNvbGxhdGlvbiBvZiB0aGUgdmFyaWFibGUsIG9y IHplcm8gaWYgdGhlIHZhcmlhYmxlIGlzCisgICAgICAgbm90IG9mIGEgY29sbGF0YWJsZSBkYXRh IHR5cGUuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmFjbDwvc3RydWN0ZmllbGQ+ IDx0eXBlPmFjbGl0ZW1bXTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIEFjY2VzcyBwcml2aWxlZ2VzOyBzZWUKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtZ3Jh bnQiLz4gYW5kCisgICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLXJldm9rZSIvPgorICAgICAgIGZv ciBkZXRhaWxzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICA8L3Ri b2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KIDwvY2hhcHRlcj4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApp bmRleCBmMDJmNjdkN2I4Ni4uOTUwMDc5MDczZDkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9k ZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTUyNjQsNiArNTI2NCwzNyBA QCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUg Jmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAgICA8L3BhcmE+CiAgPC9zZWN0MT4KIAorICA8c2Vj dDEgaWQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyI+CisgICA8dGl0bGU+U2Vzc2lvbiBWYXJpYWJs ZXM8L3RpdGxlPgorCisgICA8aW5kZXh0ZXJtIHpvbmU9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyI+ CisgICAgPHByaW1hcnk+U2Vzc2lvbiB2YXJpYWJsZXM8L3ByaW1hcnk+CisgICA8L2luZGV4dGVy bT4KKworICAgPGluZGV4dGVybT4KKyAgICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmlt YXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxwYXJhPgorICAgIFNlc3Npb24gdmFyaWFibGVz IGFyZSBkYXRhYmFzZSBvYmplY3RzIHRoYXQgY2FuIGhvbGQgYSB2YWx1ZS4KKyAgICBTZXNzaW9u IHZhcmlhYmxlcywgbGlrZSByZWxhdGlvbnMsIGV4aXN0IHdpdGhpbiBhIHNjaGVtYSBhbmQgdGhl aXIgYWNjZXNzCisgICAgaXMgY29udHJvbGxlZCB2aWEgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+ IGFuZCA8Y29tbWFuZD5SRVZPS0U8L2NvbW1hbmQ+CisgICAgY29tbWFuZHMuICBBIHNlc3Npb24g dmFyaWFibGUgY2FuIGJlIGNyZWF0ZWQgYnkgdGhlIDxjb21tYW5kPkNSRUFURQorICAgIFZBUklB QkxFPC9jb21tYW5kPiBjb21tYW5kLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJbnNp ZGUgYSBxdWVyeSBvciBhbiBleHByZXNzaW9uLCBhIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlCisg ICAgPHF1b3RlPnNoYWRvd2VkPC9xdW90ZT4gYnkgYSBjb2x1bW4gd2l0aCB0aGUgc2FtZSBuYW1l LiAgU2ltaWxhcmx5LCB0aGUKKyAgICBuYW1lIG9mIGEgZnVuY3Rpb24gb3IgcHJvY2VkdXJlIGFy Z3VtZW50IG9yIGEgUEwvcGdTUUwgdmFyaWFibGUgKHNlZQorICAgIDx4cmVmIGxpbmtlbmQ9InBs cGdzcWwtZGVjbGFyYXRpb25zIi8+KSBjYW4gc2hhZG93IGEgc2Vzc2lvbiB2YXJpYWJsZQorICAg IGluIHRoZSByb3V0aW5lJ3MgYm9keS4gIFN1Y2ggY29sbGlzaW9ucyBvZiBpZGVudGlmaWVycyBj YW4gYmUgcmVzb2x2ZWQKKyAgICBieSB1c2luZyBxdWFsaWZpZWQgaWRlbnRpZmllcnM6IFNlc3Np b24gdmFyaWFibGVzIGNhbiBiZSBxdWFsaWZpZWQgd2l0aAorICAgIHRoZSBzY2hlbWEgbmFtZSwg Y29sdW1ucyBjYW4gdXNlIHRhYmxlIGFsaWFzZXMsIHJvdXRpbmUgdmFyaWFibGVzIGNhbiB1c2UK KyAgICBibG9jayBsYWJlbHMsIGFuZCByb3V0aW5lIGFyZ3VtZW50cyBjYW4gdXNlIHRoZSByb3V0 aW5lIG5hbWUuCisgICA8L3BhcmE+CisgIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImRkbC1vdGhl cnMiPgogICA8dGl0bGU+T3RoZXIgRGF0YWJhc2UgT2JqZWN0czwvdGl0bGU+CiAKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4 IDczOTc5ZjIwZmZmLi41NmNhYTEwNTFhMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNTczNiw2ICsyNTczNiwxOSBA QCBTRUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzIFdIRVJFIHBnX3RhYmxlX2lzX3Zpc2libGUo b2lkKTsKICAgICAgICAgSXMgdHlwZSAob3IgZG9tYWluKSB2aXNpYmxlIGluIHNlYXJjaCBwYXRo PwogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+Cisg ICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2ln bmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5PnBnX3Zhcmlh YmxlX2lzX3Zpc2libGU8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICA8 ZnVuY3Rpb24+cGdfdmFyaWFibGVfaXNfdmlzaWJsZTwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52 YXJpYWJsZTwvcGFyYW1ldGVyPiA8dHlwZT5vaWQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVybnZh bHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgSXMgc2Vzc2lvbiB2YXJpYWJsZSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPworICAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CiAgICAgIDwvdGJvZHk+CiAgICAgPC90 Z3JvdXA+CiAgICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNn bWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBmNTRmMjVjMWM2Yi4uZDBjYjUz NzYzYWEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0xNjY0LDYgKzE2NjQsMjEgQEAKICAgIDwvZ2xvc3Nk ZWY+CiAgIDwvZ2xvc3NlbnRyeT4KIAorICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2Vzc2lv bi12YXJpYWJsZSI+CisgICA8Z2xvc3N0ZXJtPlNlc3Npb24gdmFyaWFibGU8L2dsb3NzdGVybT4K KyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBwZXJzaXN0ZW50IGRhdGFiYXNlIG9i amVjdCB0aGF0IGhvbGRzIGEgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzCisgICAgIHZh bHVlIGlzIHByaXZhdGUgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBz ZXNzaW9uIGVuZHMuCisgICAgIFJlYWQgb3Igd3JpdGUgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFi bGVzIGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywKKyAgICAgc2ltaWxhciB0byBvdGhlciBk YXRhYmFzZSBvYmplY3RzLgorICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICAgRm9yIG1vcmUg aW5mb3JtYXRpb24sIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4u CisgICAgPC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5PgorCiAgIDxnbG9z c2VudHJ5IGlkPSJnbG9zc2FyeS1zaGFyZWQtbWVtb3J5Ij4KICAgIDxnbG9zc3Rlcm0+U2hhcmVk IG1lbW9yeTwvZ2xvc3N0ZXJtPgogICAgPGdsb3NzZGVmPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCmlu ZGV4IGY1YmU2Mzg4NjdhLi4yZjY3ZGUzZTIxYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9hbGxmaWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbApAQCAt NDcsNiArNDcsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBp biB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGFsdGVyVHlwZSAgICAgICAgICBTWVNURU0gImFs dGVyX3R5cGUuc2dtbCI+CiA8IUVOVElUWSBhbHRlclVzZXIgICAgICAgICAgU1lTVEVNICJhbHRl cl91c2VyLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJVc2VyTWFwcGluZyAgIFNZU1RFTSAiYWx0ZXJf dXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgYWx0ZXJWYXJpYWJsZSAgICAgIFNZU1RFTSAi YWx0ZXJfdmFyaWFibGUuc2dtbCI+CiA8IUVOVElUWSBhbHRlclZpZXcgICAgICAgICAgU1lTVEVN ICJhbHRlcl92aWV3LnNnbWwiPgogPCFFTlRJVFkgYW5hbHl6ZSAgICAgICAgICAgIFNZU1RFTSAi YW5hbHl6ZS5zZ21sIj4KIDwhRU5USVRZIGJlZ2luICAgICAgICAgICAgICBTWVNURU0gImJlZ2lu LnNnbWwiPgpAQCAtOTksNiArMTAwLDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBz b3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBjcmVhdGVUeXBlICAgICAg ICAgU1lTVEVNICJjcmVhdGVfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVVzZXIgICAgICAg ICBTWVNURU0gImNyZWF0ZV91c2VyLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNlck1hcHBpbmcg IFNZU1RFTSAiY3JlYXRlX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZIGNyZWF0ZVZhcmlh YmxlICAgICBTWVNURU0gImNyZWF0ZV92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVZp ZXcgICAgICAgICBTWVNURU0gImNyZWF0ZV92aWV3LnNnbWwiPgogPCFFTlRJVFkgZGVhbGxvY2F0 ZSAgICAgICAgIFNZU1RFTSAiZGVhbGxvY2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRlY2xhcmUgICAg ICAgICAgICBTWVNURU0gImRlY2xhcmUuc2dtbCI+CkBAIC0xNDcsNiArMTQ5LDcgQEAgQ29tcGxl dGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8 IUVOVElUWSBkcm9wVHlwZSAgICAgICAgICAgU1lTVEVNICJkcm9wX3R5cGUuc2dtbCI+CiA8IUVO VElUWSBkcm9wVXNlciAgICAgICAgICAgU1lTVEVNICJkcm9wX3VzZXIuc2dtbCI+CiA8IUVOVElU WSBkcm9wVXNlck1hcHBpbmcgICAgU1lTVEVNICJkcm9wX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwh RU5USVRZIGRyb3BWYXJpYWJsZSAgICAgICBTWVNURU0gImRyb3BfdmFyaWFibGUuc2dtbCI+CiA8 IUVOVElUWSBkcm9wVmlldyAgICAgICAgICAgU1lTVEVNICJkcm9wX3ZpZXcuc2dtbCI+CiA8IUVO VElUWSBlbmQgICAgICAgICAgICAgICAgU1lTVEVNICJlbmQuc2dtbCI+CiA8IUVOVElUWSBleGVj dXRlICAgICAgICAgICAgU1lTVEVNICJleGVjdXRlLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKaW5kZXggODlhYWNlYzRmYWIuLjA0MWM3 OGQ0MzJmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmls ZWdlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2Vz LnNnbWwKQEAgLTUxLDYgKzUxLDEwIEBAIEdSQU5UIHsgeyBVU0FHRSB8IENSRUFURSB9CiAgICAg T04gU0NIRU1BUwogICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRIIEdS QU5UIE9QVElPTiBdCiAKK0dSQU5UIHsgU0VMRUNUIHwgVVBEQVRFIHwgQUxMIFsgUFJJVklMRUdF UyBdIH0KKyAgICBPTiBWQVJJQUJMRVMKKyAgICBUTyB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAu Li5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQorCiBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0K ICAgICB7IHsgU0VMRUNUIHwgSU5TRVJUIHwgVVBEQVRFIHwgREVMRVRFIHwgVFJVTkNBVEUgfCBS RUZFUkVOQ0VTIHwgVFJJR0dFUiB8IE1BSU5UQUlOIH0KICAgICBbLCAuLi5dIHwgQUxMIFsgUFJJ VklMRUdFUyBdIH0KQEAgLTgzLDYgKzg3LDEyIEBAIFJFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1Ig XQogICAgIE9OIFNDSEVNQVMKICAgICBGUk9NIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0K ICAgICBbIENBU0NBREUgfCBSRVNUUklDVCBdCisKK1JFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1Ig XQorICAgIHsgeyBTRUxFQ1QgfCBVUERBVEUgfSBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBd IH0KKyAgICBPTiBWQVJJQUJMRVMKKyAgICBGUk9NIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4u Ll0KKyAgICBbIENBU0NBREUgfCBSRVNUUklDVCBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3Bz aXNkaXY+CiAKQEAgLTExNywxNCArMTI3LDE0IEBAIFJFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1Ig XQogICA8cGFyYT4KICAgIEN1cnJlbnRseSwKICAgIG9ubHkgdGhlIHByaXZpbGVnZXMgZm9yIHNj aGVtYXMsIHRhYmxlcyAoaW5jbHVkaW5nIHZpZXdzIGFuZCBmb3JlaWduCi0gICB0YWJsZXMpLCBz ZXF1ZW5jZXMsIGZ1bmN0aW9ucywgYW5kIHR5cGVzIChpbmNsdWRpbmcgZG9tYWlucykgY2FuIGJl Ci0gICBhbHRlcmVkLiAgRm9yIHRoaXMgY29tbWFuZCwgZnVuY3Rpb25zIGluY2x1ZGUgYWdncmVn YXRlcyBhbmQgcHJvY2VkdXJlcy4KLSAgIFRoZSB3b3JkcyA8bGl0ZXJhbD5GVU5DVElPTlM8L2xp dGVyYWw+IGFuZCA8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gYXJlCi0gICBlcXVpdmFsZW50 IGluIHRoaXMgY29tbWFuZC4gICg8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gaXMgcHJlZmVy cmVkCi0gICBnb2luZyBmb3J3YXJkIGFzIHRoZSBzdGFuZGFyZCB0ZXJtIGZvciBmdW5jdGlvbnMg YW5kIHByb2NlZHVyZXMgdGFrZW4KLSAgIHRvZ2V0aGVyLiAgSW4gZWFybGllciBQb3N0Z3JlU1FM IHJlbGVhc2VzLCBvbmx5IHRoZQotICAgd29yZCA8bGl0ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+ IHdhcyBhbGxvd2VkLiAgSXQgaXMgbm90IHBvc3NpYmxlIHRvIHNldAotICAgZGVmYXVsdCBwcml2 aWxlZ2VzIGZvciBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgc2VwYXJhdGVseS4pCisgICB0YWJs ZXMpLCBzZXF1ZW5jZXMsIGZ1bmN0aW9ucywgdHlwZXMgKGluY2x1ZGluZyBkb21haW5zKSwgYW5k IHNlc3Npb24KKyAgIHZhcmlhYmxlcyBjYW4gYmUgYWx0ZXJlZC4gIEZvciB0aGlzIGNvbW1hbmQs IGZ1bmN0aW9ucyBpbmNsdWRlIGFnZ3JlZ2F0ZXMKKyAgIGFuZCBwcm9jZWR1cmVzLiAgVGhlIHdv cmRzIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kCisgICA8bGl0ZXJhbD5ST1VUSU5F UzwvbGl0ZXJhbD4gYXJlIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21tYW5kLgorICAgKDxsaXRlcmFs PlJPVVRJTkVTPC9saXRlcmFsPiBpcyBwcmVmZXJyZWQgZ29pbmcgZm9yd2FyZCBhcyB0aGUgc3Rh bmRhcmQKKyAgIHRlcm0gZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbiB0b2dldGhl ci4gIEluIGVhcmxpZXIgUG9zdGdyZVNRTAorICAgcmVsZWFzZXMsIG9ubHkgdGhlIHdvcmQgPGxp dGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiB3YXMgYWxsb3dlZC4gIEl0IGlzIG5vdAorICAgcG9z c2libGUgdG8gc2V0IGRlZmF1bHQgcHJpdmlsZWdlcyBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1 cmVzIHNlcGFyYXRlbHkuKQogICA8L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ4 NzU3MGU3ZDhiCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJp YWJsZS5zZ21sCkBAIC0wLDAgKzEsMTc4IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRy eSBpZD0ic3FsLWFsdGVydmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWFsdGVydmFy aWFibGUiPgorICA8cHJpbWFyeT5BTFRFUiBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2luZGV4dGVy bT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+ CisgIDxzZWNvbmRhcnk+YWx0ZXJpbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxy ZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5BTFRFUiBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4K KyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFn ZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4K KyAgPHJlZm5hbWU+QUxURVIgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPgorICAg Y2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZQorICA8L3JlZnB1cnBv c2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQUxU RVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8 L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNF UiB9CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3 X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJsZT4KKzwvc3lub3BzaXM+CisgPC9y ZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRs ZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5BTFRFUiBWQVJJQUJMRTwvY29tbWFuZD4g Y29tbWFuZCBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGFuCisgICBleGlzdGluZyBzZXNzaW9u IHZhcmlhYmxlLiBUaGVyZSBhcmUgc2V2ZXJhbCBzdWJmb3JtczoKKworICA8dmFyaWFibGVsaXN0 PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5PV05FUjwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBjaGFu Z2VzIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUgbmFtZSBvZiB0aGUgc2Vz c2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5TRVQgU0NI RU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhpcyBmb3JtIG1vdmVzIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGludG8gYW5vdGhlciBzY2hlbWEu CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAg PC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIE9ubHkgdGhlIG93bmVy IG9yIGEgc3VwZXJ1c2VyIGlzIGFsbG93ZWQgdG8gYWx0ZXIgYSBzZXNzaW9uIHZhcmlhYmxlLgor ICAgSW4gb3JkZXIgdG8gbW92ZSBhIHNlc3Npb24gdmFyaWFibGUgZnJvbSBvbmUgc2NoZW1hIHRv IGFub3RoZXIsIHRoZSB1c2VyCisgICBtdXN0IGFsc28gaGF2ZSB0aGUgPGxpdGVyYWw+Q1JFQVRF PC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIG5ldyBzY2hlbWEgKG9yCisgICBiZSBhIHN1cGVy dXNlcikuCisKKyAgIEluIG9yZGVyIHRvIG1vdmUgdGhlIHNlc3Npb24gdmFyaWFibGUgb3duZXJz aGlwIGZyb20gb25lIHJvbGUgdG8gYW5vdGhlciwKKyAgIHRoZSB1c2VyIG11c3QgYWxzbyBiZSBh IGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIgb2YgdGhlIG5ldworICAgb3duaW5nIHJvbGUsIGFu ZCB0aGF0IHJvbGUgbXVzdCBoYXZlIHRoZSA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZp bGVnZQorICAgb24gdGhlIHNlc3Npb24gdmFyaWFibGUncyBzY2hlbWEgKG9yIGJlIGEgc3VwZXJ1 c2VyKS4gVGhlc2UgcmVzdHJpY3Rpb25zCisgICBlbmZvcmNlIHRoYXQgYWx0ZXJpbmcgdGhlIG93 bmVyIGRvZXNuJ3QgZG8gYW55dGhpbmcgeW91IGNvdWxkbid0IGRvIGJ5CisgICBkcm9wcGluZyBh bmQgcmVjcmVhdGluZyB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICAgPHBh cmE+CisgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJt PjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+ CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBuYW1lIChwb3Nz aWJseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgZXhpc3Rpbmcgc2Vzc2lvbiB2YXJpYWJsZQor ICAgICAgICB0byBhbHRlci4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+ CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBuZXcgbmFtZSBm b3IgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRl bT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0 ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxl PjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIHVz ZXIgbmFtZSBvZiB0aGUgbmV3IG93bmVyIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAg IDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAg IDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAg ICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IHNjaGVtYSBmb3IgdGhlIHNlc3Npb24gdmFyaWFi bGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50 cnk+CisgICAgPC92YXJpYWJsZWxpc3Q+CisgICA8L3BhcmE+CisgIDwvcmVmc2VjdDE+CisKKyA8 cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyBy ZW5hbWUgYSBzZXNzaW9uIHZhcmlhYmxlOgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgVkFSSUFC TEUgZm9vIFJFTkFNRSBUTyBib287Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIDxs aXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwvbGl0ZXJhbD46Cis8cHJv Z3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBib28gT1dORVIgVE8gam9lOworPC9wcm9ncmFt bGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRoZSBzY2hlbWEg b2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9saXRlcmFsPiB0bworICAgPGxp dGVyYWw+cHJpdmF0ZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJM RSBib28gU0VUIFNDSEVNQSBwcml2YXRlOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRs ZT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFuZCB0aGlzIGNvbW1hbmQgaW4g cGFydGljdWxhciBhcmUgYSBQb3N0Z3JlU1FMIGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVm c2VjdDE+CisKKyA8cmVmc2VjdDEgaWQ9InNxbC1hbHRlcnZhcmlhYmxlLXNlZS1hbHNvIj4KKyAg PHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgor ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4K KyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgor ICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5z Z21sCmluZGV4IDViNDNjNTZiMTMzLi4yMWNkODA4MThmYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9jb21tZW50LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwK QEAgLTY1LDYgKzY1LDcgQEAgQ09NTUVOVCBPTgogICBUUkFOU0ZPUk0gRk9SIDxyZXBsYWNlYWJs ZT50eXBlX25hbWU8L3JlcGxhY2VhYmxlPiBMQU5HVUFHRSA8cmVwbGFjZWFibGU+bGFuZ19uYW1l PC9yZXBsYWNlYWJsZT4gfAogICBUUklHR0VSIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij50cmlnZ2VyX25hbWU8L3JlcGxhY2VhYmxlPiBPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVFlQRSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CisgIFZBUklBQkxFIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwK ICAgVklFVyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxh Y2VhYmxlPgogfSBJUyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdHJpbmdfbGl0 ZXJhbDwvcmVwbGFjZWFibGU+IHwgTlVMTCB9CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3NjaGVtYS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNn bWwKaW5kZXggZWQ2OTI5OGNjYzYuLmE4MzRjODc2YmM5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9z Y2hlbWEuc2dtbApAQCAtMTAzLDkgKzEwMywxMCBAQCBDUkVBVEUgU0NIRU1BIElGIE5PVCBFWElT VFMgQVVUSE9SSVpBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcAog ICAgICAgICBzY2hlbWEuIEN1cnJlbnRseSwgb25seSA8Y29tbWFuZD5DUkVBVEUKICAgICAgICAg VEFCTEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUgVklFVzwvY29tbWFuZD4sIDxjb21tYW5k PkNSRUFURQogICAgICAgICBJTkRFWDwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURSBTRVFVRU5D RTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURQotICAgICAgICBUUklHR0VSPC9jb21tYW5kPiBh bmQgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFyZSBhY2NlcHRlZCBhcyBjbGF1c2VzCi0gICAg ICAgIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUgU0NIRU1BPC9jb21tYW5kPi4gT3RoZXIga2luZHMg b2Ygb2JqZWN0cyBtYXkKLSAgICAgICAgYmUgY3JlYXRlZCBpbiBzZXBhcmF0ZSBjb21tYW5kcyBh ZnRlciB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQuCisgICAgICAgIFRSSUdHRVI8L2NvbW1hbmQ+LCA8 Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkNSRUFURQorICAgICAgICBWQVJJ QUJMRTwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNsYXVzZXMgd2l0aGluIDxjb21tYW5kPkNS RUFURQorICAgICAgICBTQ0hFTUE8L2NvbW1hbmQ+LiBPdGhlciBraW5kcyBvZiBvYmplY3RzIG1h eSBiZSBjcmVhdGVkIGluIHNlcGFyYXRlCisgICAgICAgIGNvbW1hbmRzIGFmdGVyIHRoZSBzY2hl bWEgaXMgY3JlYXRlZC4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8 L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lYzE2NWFiOTZmYwotLS0gL2Rldi9udWxs CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwx NTEgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKK1Bvc3Rn cmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlh YmxlIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1jcmVhdGV2YXJpYWJsZSI+CisgIDxwcmltYXJ5 PkNSRUFURSBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+ CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+ZGVm aW5pbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50 cnl0aXRsZT5DUkVBVEUgVkFSSUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+Nzwv bWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVm bWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkNSRUFU RSBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5lIGEgc2Vzc2lvbiB2YXJp YWJsZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8 c3lub3BzaXM+CitDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IF0gWyBDT0xMQVRFIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCis8 L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVz Y3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBWQVJJ QUJMRTwvY29tbWFuZD4gY29tbWFuZCBjcmVhdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIFNl c3Npb24gdmFyaWFibGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFu ZCB0aGVpciBhY2Nlc3MgaXMKKyAgIGNvbnRyb2xsZWQgdmlhIHRoZSBjb21tYW5kcyA8Y29tbWFu ZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4uCisgIDwvcGFy YT4KKworICA8cGFyYT4KKyAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9j YWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gIFJldHJpZXZpbmcKKyAgIGEgc2Vzc2lvbiB2YXJp YWJsZSdzIHZhbHVlIHJldHVybnMgTlVMTCwgdW5sZXNzIGl0cyB2YWx1ZSBpcyBzZXQgdG8KKyAg IHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gd2l0aCBhIDxjb21tYW5kPkxF VDwvY29tbWFuZD4gY29tbWFuZC4KKyAgIFRoZSBjb250ZW50IG9mIGEgc2Vzc2lvbiB2YXJpYWJs ZSBpcyBub3QgdHJhbnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcworICAgcmVndWxhciB2 YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4K KyAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNFTEVD VDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGVpciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUgPGNv bW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgorICA8L3BhcmE+CisKKyAgPG5vdGU+CisgICA8 cGFyYT4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgPHF1b3RlPnNoYWRvd2VkPC9xdW90 ZT4gYnkgb3RoZXIgaWRlbnRpZmllcnMuCisgICAgRm9yIGRldGFpbHMsIHNlZSA8eHJlZiBsaW5r ZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4uCisgICA8L3BhcmE+CisgIDwvbm90ZT4KKyA8 L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisK KyAgPHZhcmlhYmxlbGlzdD4KKworICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2YXJp YWJsZS1pZi1ub3QtZXhpc3RzIj4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RTPC9s aXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90 IHRocm93IGFuIGVycm9yIGlmIHRoZSBuYW1lIGFscmVhZHkgZXhpc3RzLiBBIG5vdGljZSBpcyBp c3N1ZWQgaW4KKyAgICAgIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZh cmlhYmxlLW5hbWUiPgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBzZXNzaW9u IHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGF0YV90eXBl Ij4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9y ZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRo ZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBkYXRhIHR5cGUgb2Yg dGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRl dmFyaWFibGUtY29sbGF0ZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+Q09MTEFURSA8cmVwbGFjZWFi bGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+Q09MTEFURTwvbGl0ZXJhbD4gY2xh dXNlIGFzc2lnbnMgYSBjb2xsYXRpb24gdG8gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlICh3 aGljaCBtdXN0IGJlIG9mIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUpLiAgSWYgbm90IHNwZWNpZmll ZCwKKyAgICAgIHRoZSBkYXRhIHR5cGUncyBkZWZhdWx0IGNvbGxhdGlvbiBpcyB1c2VkLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwvdmFy aWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Ob3Rlczwv dGl0bGU+CisKKyAgPHBhcmE+CisgICBVc2UgdGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2Nv bW1hbmQ+IGNvbW1hbmQgdG8gcmVtb3ZlIGEgc2Vzc2lvbgorICAgdmFyaWFibGUuCisgIDwvcGFy YT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxl PgorCisgIDxwYXJhPgorICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJh bD52YXIxPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGRhdGU7CitMRVQgdmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCB2YXIxOworPC9wcm9n cmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5k PkNSRUFURSBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+ UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBs ZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVy dmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2 YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9y ZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjViZGIzNTYwZjBiCi0tLSAvZGV2L251bGwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxMTcgQEAKKzwhLS0K K2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50 YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1kcm9wdmFyaWFibGUiPgorIDxpbmRleHRl cm0gem9uZT0ic3FsLWRyb3B2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkRST1AgVkFSSUFCTEU8L3By aW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9u IHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PnJlbW92aW5nPC9zZWNvbmRhcnk+Cisg PC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBWQVJJQUJM RTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNj aW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+ CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBWQVJJQUJMRTwvcmVmbmFtZT4KKyAg PHJlZnB1cnBvc2U+cmVtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8L3Jl Zm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIFZBUklBQkxF IFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPiBbLCAuLi5dIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+CisgPC9y ZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRs ZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IHJlbW92 ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgQSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBvbmx5IGJl IHJlbW92ZWQgYnkgaXRzIG93bmVyIG9yIGEgc3VwZXJ1c2VyLgorICA8L3BhcmE+CisgPC9yZWZz ZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2 YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIEVY SVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBkb2VzIG5vdCBl eGlzdC4gQSBub3RpY2UgaXMKKyAgICAgIGlzc3VlZCBpbiB0aGlzIGNhc2UuCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50 cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5h bWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NBREU8L2xpdGVyYWw+PC90ZXJt PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBdXRvbWF0aWNhbGx5IGRyb3Ag b2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoc3VjaCBhcworICAg ICAgdmlld3MpLCBhbmQgaW4gdHVybiBhbGwgb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aG9zZSBv YmplY3RzCisgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQiLz4pLgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJFU1RSSUNUPC9saXRlcmFsPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgUmVmdXNlIHRvIGRyb3AgdGhlIHNlc3Np b24gdmFyaWFibGUgaWYgYW55IG9iamVjdHMgZGVwZW5kIG9uIGl0LiAgVGhpcyBpcworICAgICAg dGhlIGRlZmF1bHQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0 ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByZW1vdmUgdGhlIHNl c3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46CisKKzxwcm9ncmFtbGlzdGlu Zz4KK0RST1AgVkFSSUFCTEUgdmFyMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVm c2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5k IGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9u LgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBB bHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVs aXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2dyYW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKaW5kZXggOTk5 ZjY1N2Q1YzAuLjc4ZmYxMGZjZjVlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50 LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sCkBAIC0xMDEsNiArMTAxLDEy IEBAIEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxh Y2VhYmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNlCiAgICAgWyBXSVRIIHsgQURNSU4gfCBJTkhFUklU IHwgU0VUIH0geyBPUFRJT04gfCBUUlVFIHwgRkFMU0UgfSBdCiAgICAgWyBHUkFOVEVEIEJZIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2Vh YmxlPiBdCiAKK0dSQU5UIHsgU0VMRUNUIHwgVVBEQVRFIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0K KyAgICBPTiBWQVJJQUJMRSA8cmVwbGFjZWFibGU+dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+ IFssIC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gfQorICAg IFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3Jl cGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQorICAgIFsgR1JBTlRFRCBC WSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBs YWNlYWJsZT4gXQorCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBjYW4gYmU6PC9waHJhc2U+CiAKICAg ICBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVw bGFjZWFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAppbmRleCA4ZGY0OTIyODFhMS4uNjI2YzAyMzFkMGQg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9yZXZva2Uuc2dtbApAQCAtMTM3LDYgKzEzNywxMyBAQCBSRVZPS0UgWyB7IEFETUlO IHwgSU5IRVJJVCB8IFNFVCB9IE9QVElPTiBGT1IgXQogICB8IENVUlJFTlRfUk9MRQogICB8IENV UlJFTlRfVVNFUgogICB8IFNFU1NJT05fVVNFUgorCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9S IF0KKyAgICB7IHsgU0VMRUNUIHwgVVBEQVRFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMg XSB9CisgICAgT04gVkFSSUFCTEUgPHJlcGxhY2VhYmxlPnZhcmlhYmxlX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dCisgICAgICAgfCBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIH0K KyAgICBGUk9NIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xl X25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0KKyAgICBbIENBU0NBREUgfCBS RVNUUklDVCBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dt bAppbmRleCBmZjg1YWNlODNmYy4uMjU1NzhmMzk0NmMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTc1 LDYgKzc1LDcgQEAKICAgICZhbHRlclR5cGU7CiAgICAmYWx0ZXJVc2VyOwogICAgJmFsdGVyVXNl ck1hcHBpbmc7CisgICAmYWx0ZXJWYXJpYWJsZTsKICAgICZhbHRlclZpZXc7CiAgICAmYW5hbHl6 ZTsKICAgICZiZWdpbjsKQEAgLTEyNyw2ICsxMjgsNyBAQAogICAgJmNyZWF0ZVR5cGU7CiAgICAm Y3JlYXRlVXNlcjsKICAgICZjcmVhdGVVc2VyTWFwcGluZzsKKyAgICZjcmVhdGVWYXJpYWJsZTsK ICAgICZjcmVhdGVWaWV3OwogICAgJmRlYWxsb2NhdGU7CiAgICAmZGVjbGFyZTsKQEAgLTE3NSw2 ICsxNzcsNyBAQAogICAgJmRyb3BUeXBlOwogICAgJmRyb3BVc2VyOwogICAgJmRyb3BVc2VyTWFw cGluZzsKKyAgICZkcm9wVmFyaWFibGU7CiAgICAmZHJvcFZpZXc7CiAgICAmZW5kOwogICAgJmV4 ZWN1dGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9NYWtlZmlsZQppbmRleCAxNTg5YTc1ZmQ1My4uN2E5MGZjZmM0NTcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9NYWtlZmlsZQpAQCAtNDUsNiArNDUsNyBAQCBPQkpTID0gXAogCXBnX3NoZGVwZW5k Lm8gXAogCXBnX3N1YnNjcmlwdGlvbi5vIFwKIAlwZ190eXBlLm8gXAorCXBnX3ZhcmlhYmxlLm8g XAogCXN0b3JhZ2UubyBcCiAJdG9hc3RpbmcubwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL2FjbGNoay5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCA5NWVi MGIxMjI3Ny4uMGQ3ZTE2ZjcwOGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNs Y2hrLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtNjQsNiArNjQsNyBA QAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFi bGVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dl ci5oIgpAQCAtMjkxLDYgKzI5Miw5IEBAIHJlc3RyaWN0X2FuZF9jaGVja19ncmFudChib29sIGlz X2dyYW50LCBBY2xNb2RlIGF2YWlsX2dvcHRpb25zLCBib29sIGFsbF9wcml2cywKIAkJY2FzZSBP QkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19QQVJB TUVURVJfQUNMOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJd2hvbGVf bWFzayA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJ CQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsIG9ianR5cGUpOwog CQkJLyogbm90IHJlYWNoZWQsIGJ1dCBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC01MzUsNiAr NTM5LDEwIEBAIEV4ZWN1dGVHcmFudFN0bXQoR3JhbnRTdG10ICpzdG10KQogCQkJYWxsX3ByaXZp bGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJZXJyb3Jtc2cgPSBnZXR0 ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9yIHBhcmFtZXRlciIpOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xf QUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlk IHByaXZpbGVnZSB0eXBlICVzIGZvciBzZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6 ICVkIiwKIAkJCQkgKGludCkgc3RtdC0+b2JqdHlwZSk7CkBAIC02NDAsNiArNjQ4LDkgQEAgRXhl Y0dyYW50U3RtdF9vaWRzKEludGVybmFsR3JhbnQgKmlzdG10KQogCQljYXNlIE9CSkVDVF9QQVJB TUVURVJfQUNMOgogCQkJRXhlY0dyYW50X1BhcmFtZXRlcihpc3RtdCk7CiAJCQlicmVhazsKKwkJ Y2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlFeGVjR3JhbnRfY29tbW9uKGlzdG10LCBWYXJpYWJs ZVJlbGF0aW9uSWQsIEFDTF9BTExfUklHSFRTX1ZBUklBQkxFLCBOVUxMKTsKKwkJCWJyZWFrOwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlw ZTogJWQiLAogCQkJCSAoaW50KSBpc3RtdC0+b2JqdHlwZSk7CkBAIC04MzAsNiArODQxLDE4IEBA IG9iamVjdE5hbWVzVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqb2JqbmFtZXMsIGJv b2wgaXNfZ3JhbnQpCiAJCQkJCW9iamVjdHMgPSBsYXBwZW5kX29pZChvYmplY3RzLCBwYXJhbWV0 ZXJJZCk7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlmb3Jl YWNoKGNlbGwsIG9iam5hbWVzKQorCQkJeworCQkJCVJhbmdlVmFyICAgKnZhcnZhciA9IChSYW5n ZVZhciAqKSBsZmlyc3QoY2VsbCk7CisJCQkJT2lkCQkJcmVsT2lkOworCisJCQkJcmVsT2lkID0g TG9va3VwVmFyaWFibGUodmFydmFyLT5zY2hlbWFuYW1lLAorCQkJCQkJCQkJCXZhcnZhci0+cmVs bmFtZSwKKwkJCQkJCQkJCQlmYWxzZSk7CisJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVj dHMsIHJlbE9pZCk7CisJCQl9CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgb2JqdHlw ZSk7CkBAIC05MTksNiArOTQyLDMyIEBAIG9iamVjdHNJblNjaGVtYVRvT2lkcyhPYmplY3RUeXBl IG9ianR5cGUsIExpc3QgKm5zcG5hbWVzKQogCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1No YXJlTG9jayk7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJ CQkJeworCQkJCQlTY2FuS2V5RGF0YSBrZXk7CisJCQkJCVJlbGF0aW9uCXJlbDsKKwkJCQkJVGFi bGVTY2FuRGVzYyBzY2FuOworCQkJCQlIZWFwVHVwbGUJdHVwbGU7CisKKwkJCQkJU2NhbktleUlu aXQoJmtleSwKKwkJCQkJCQkJQW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UsCisJCQkJCQkJ CUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1 bShuYW1lc3BhY2VJZCkpOworCisJCQkJCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlv bklkLCBBY2Nlc3NTaGFyZUxvY2spOworCQkJCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuX2NhdGFs b2cocmVsLCAxLCAma2V5KTsKKworCQkJCQl3aGlsZSAoKHR1cGxlID0gaGVhcF9nZXRuZXh0KHNj YW4sIEZvcndhcmRTY2FuRGlyZWN0aW9uKSkgIT0gTlVMTCkKKwkJCQkJeworCQkJCQkJT2lkCQkJ b2lkID0gKChGb3JtX3BnX3Byb2MpIEdFVFNUUlVDVCh0dXBsZSkpLT5vaWQ7CisKKwkJCQkJCW9i amVjdHMgPSBsYXBwZW5kX29pZChvYmplY3RzLCBvaWQpOworCQkJCQl9CisKKwkJCQkJdGFibGVf ZW5kc2NhbihzY2FuKTsKKwkJCQkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwor CQkJCX0KKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogc2hvdWxkIG5vdCBoYXBwZW4g Ki8KIAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIs CkBAIC0xMDc4LDYgKzExMjcsMTAgQEAgRXhlY0FsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQgKnMKIAkJCWFsbF9w cml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfU0NIRU1BOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0 X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9yIHNjaGVtYSIpOwogCQkJYnJlYWs7 CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJ R0hUU19WQVJJQUJMRTsKKwkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZp bGVnZSB0eXBlICVzIGZvciBzZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKIAkJZGVmYXVs dDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwK IAkJCQkgKGludCkgYWN0aW9uLT5vYmp0eXBlKTsKQEAgLTEyNjksNiArMTMyMiwxMiBAQCBTZXRE ZWZhdWx0QUNMKEludGVybmFsRGVmYXVsdEFDTCAqaWFjbHMpCiAJCQkJdGhpc19wcml2aWxlZ2Vz ID0gQUNMX0FMTF9SSUdIVFNfU0NIRU1BOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBPQkpFQ1RfVkFS SUFCTEU6CisJCQlvYmp0eXBlID0gREVGQUNMT0JKX1ZBUklBQkxFOworCQkJaWYgKGlhY2xzLT5h bGxfcHJpdnMgJiYgdGhpc19wcml2aWxlZ2VzID09IEFDTF9OT19SSUdIVFMpCisJCQkJdGhpc19w cml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKKwogCQlkZWZh dWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLAogCQkJ CSAoaW50KSBpYWNscy0+b2JqdHlwZSk7CkBAIC0xNTEyLDYgKzE1NzEsOSBAQCBSZW1vdmVSb2xl RnJvbU9iamVjdEFDTChPaWQgcm9sZWlkLCBPaWQgY2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2Fz ZSBERUZBQ0xPQkpfTkFNRVNQQUNFOgogCQkJCWlhY2xzLm9ianR5cGUgPSBPQkpFQ1RfU0NIRU1B OwogCQkJCWJyZWFrOworCQkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJaWFjbHMub2Jq dHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyog U2hvdWxkbid0IGdldCBoZXJlICovCiAJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgZGVmYXVs dCBBQ0wgdHlwZTogJWQiLApAQCAtMTU3Miw2ICsxNjM0LDkgQEAgUmVtb3ZlUm9sZUZyb21PYmpl Y3RBQ0woT2lkIHJvbGVpZCwgT2lkIGNsYXNzaWQsIE9pZCBvYmppZCkKIAkJCWNhc2UgUGFyYW1l dGVyQWNsUmVsYXRpb25JZDoKIAkJCQlpc3RtdC5vYmp0eXBlID0gT0JKRUNUX1BBUkFNRVRFUl9B Q0w7CiAJCQkJYnJlYWs7CisJCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCQlpc3RtdC5v Ymp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQll bG9nKEVSUk9SLCAidW5leHBlY3RlZCBvYmplY3QgY2xhc3MgJXUiLCBjbGFzc2lkKTsKIAkJCQli cmVhazsKQEAgLTI4MTMsNiArMjg3OCw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xl cnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJCW1z ZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIHR5cGUgJXMiKTsKIAkJCQkJ CWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQkJCW1zZyA9IGdldHRleHRf bm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXMiKTsKKwkJCQkJ CWJyZWFrOwogCQkJCQljYXNlIE9CSkVDVF9WSUVXOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29w KCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgdmlldyAlcyIpOwogCQkJCQkJYnJlYWs7CkBAIC0yOTI0 LDYgKzI5OTIsOSBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBl IG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25v b3AoIm11c3QgYmUgb3duZXIgb2YgdHlwZSAlcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVy IG9mIHNlc3Npb24gdmFyaWFibGUgJXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNlIE9CSkVD VF9WSUVXOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHZpZXcg JXMiKTsKIAkJCQkJCWJyZWFrOwpAQCAtMzA3Miw2ICszMTQzLDggQEAgcGdfYWNsbWFzayhPYmpl Y3RUeXBlIG9ianR5cGUsIE9pZCBvYmplY3Rfb2lkLCBBdHRyTnVtYmVyIGF0dG51bSwgT2lkIHJv bGVpZCwKIAkJCXJldHVybiBBQ0xfTk9fUklHSFRTOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJ cmV0dXJuIG9iamVjdF9hY2xtYXNrKFR5cGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQs IG1hc2ssIGhvdyk7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuIG9iamVjdF9h Y2xtYXNrKFZhcmlhYmxlUmVsYXRpb25JZCwgb2JqZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBob3cp OwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTog JWQiLAogCQkJCSAoaW50KSBvYmp0eXBlKTsKQEAgLTQzMzksNiArNDQxMiwxMCBAQCBnZXRfdXNl cl9kZWZhdWx0X2FjbChPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBvd25lcklkLCBPaWQgbnNwX29p ZCkKIAkJCWRlZmFjbG9ianR5cGUgPSBERUZBQ0xPQkpfTkFNRVNQQUNFOwogCQkJYnJlYWs7CiAK KwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlkZWZhY2xvYmp0eXBlID0gREVGQUNMT0JKX1ZB UklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCXJldHVybiBOVUxMOwogCX0KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggMDQ4OWNiYWJjYjguLmM5ZDY4NjY2NWRlIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtNjUsMTIgKzY1LDE0IEBACiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21t YW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvZXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcG9saWN5Lmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFu ZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCkBA IC0xNDQ0LDYgKzE0NDYsMTAgQEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmpl Y3QsIGludCBmbGFncykKIAkJCVJlbW92ZVB1YmxpY2F0aW9uQnlJZChvYmplY3QtPm9iamVjdElk KTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJRHJvcFZhcmlh YmxlQnlJZChvYmplY3QtPm9iamVjdElkKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgQ2FzdFJlbGF0 aW9uSWQ6CiAJCWNhc2UgQ29sbGF0aW9uUmVsYXRpb25JZDoKIAkJY2FzZSBDb252ZXJzaW9uUmVs YXRpb25JZDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9z cmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IDJmM2RlZDhhMGU3Li5iZmRiNGRh MzMwMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9z cmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC0zMiw2ICszMiw3IEBAIGJhY2tlbmRf c291cmNlcyArPSBmaWxlcygKICAgJ3BnX3NoZGVwZW5kLmMnLAogICAncGdfc3Vic2NyaXB0aW9u LmMnLAogICAncGdfdHlwZS5jJywKKyAgJ3BnX3ZhcmlhYmxlLmMnLAogICAnc3RvcmFnZS5jJywK ICAgJ3RvYXN0aW5nLmMnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1l c3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggMzA4MDdmOTE5 MDQuLjg2ZTIyNTg2NTdkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFj ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKQEAgLTQxLDYgKzQxLDcg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3BhcnNlci5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdHNfdGVtcGxhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5o IgogI2luY2x1ZGUgImNvbW1vbi9oYXNoZm5fdW5zdGFibGUuaCIKICNpbmNsdWRlICJmdW5jYXBp LmgiCkBAIC05ODYsNiArOTg3LDY3IEBAIFJlbGF0aW9uSXNWaXNpYmxlRXh0KE9pZCByZWxpZCwg Ym9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFZhcmlhYmxl SXNWaXNpYmxlCisgKgkJRGV0ZXJtaW5lIHdoZXRoZXIgYSB2YXJpYWJsZSAoaWRlbnRpZmllZCBi eSBPSUQpIGlzIHZpc2libGUgaW4gdGhlCisgKgkJY3VycmVudCBzZWFyY2ggcGF0aC4gVmlzaWJs ZSBtZWFucyAid291bGQgYmUgZm91bmQgYnkgc2VhcmNoaW5nCisgKgkJZm9yIHRoZSB1bnF1YWxp ZmllZCB2YXJpYWJsZSBuYW1lIi4KKyAqLworYm9vbAorVmFyaWFibGVJc1Zpc2libGUoT2lkIHZh cmlkKQoreworCUhlYXBUdXBsZQl2YXJ0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOwor CU9pZAkJCXZhcm5hbWVzcGFjZTsKKwlib29sCQl2aXNpYmxlOworCisJdmFydHVwID0gU2VhcmNo U3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisJaWYgKCFI ZWFwVHVwbGVJc1ZhbGlkKHZhcnR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFp bGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCXZhcmZvcm0gPSAoRm9ybV9w Z192YXJpYWJsZSkgR0VUU1RSVUNUKHZhcnR1cCk7CisKKwlyZWNvbXB1dGVOYW1lc3BhY2VQYXRo KCk7CisKKwkvKgorCSAqIFF1aWNrIGNoZWNrOiBpZiBpdCBhaW4ndCBpbiB0aGUgcGF0aCBhdCBh bGwsIGl0IGFpbid0IHZpc2libGUuIFdlCisJICogZG9uJ3QgZXhwZWN0IHVzYWdlIG9mIHNlc3Np b24gdmFyaWFibGVzIGluIHRoZSBzeXN0ZW0gbmFtZXNwYWNlLgorCSAqLworCXZhcm5hbWVzcGFj ZSA9IHZhcmZvcm0tPnZhcm5hbWVzcGFjZTsKKwlpZiAoIWxpc3RfbWVtYmVyX29pZChhY3RpdmVT ZWFyY2hQYXRoLCB2YXJuYW1lc3BhY2UpKQorCQl2aXNpYmxlID0gZmFsc2U7CisJZWxzZQorCXsK KwkJLyoKKwkJICogSWYgaXQgaXMgaW4gdGhlIHBhdGgsIGl0IG1pZ2h0IHN0aWxsIG5vdCBiZSB2 aXNpYmxlOyBpdCBjb3VsZCBiZQorCQkgKiBoaWRkZW4gYnkgYW5vdGhlciB2YXJpYWJsZSBvZiB0 aGUgc2FtZSBuYW1lIGVhcmxpZXIgaW4gdGhlIHBhdGguIFNvCisJCSAqIHdlIG11c3QgZG8gYSBz bG93IGNoZWNrIGZvciBjb25mbGljdGluZyByZWxhdGlvbnMuCisJCSAqLworCQljaGFyCSAgICp2 YXJuYW1lID0gTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKTsKKwkJTGlzdENlbGwgICAqbDsKKwor CQl2aXNpYmxlID0gZmFsc2U7CisJCWZvcmVhY2gobCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJewor CQkJT2lkCQkJbmFtZXNwYWNlSWQgPSBsZmlyc3Rfb2lkKGwpOworCisJCQlpZiAobmFtZXNwYWNl SWQgPT0gdmFybmFtZXNwYWNlKQorCQkJeworCQkJCS8qIGZvdW5kIGl0IGZpcnN0IGluIHBhdGgg Ki8KKwkJCQl2aXNpYmxlID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmIChPaWRJc1Zh bGlkKGdldF92YXJuYW1lX3ZhcmlkKHZhcm5hbWUsIG5hbWVzcGFjZUlkKSkpCisJCQl7CisJCQkJ LyogZm91bmQgc29tZXRoaW5nIGVsc2UgZmlyc3QgaW4gcGF0aCAqLworCQkJCWJyZWFrOworCQkJ fQorCQl9CisJfQorCisJUmVsZWFzZVN5c0NhY2hlKHZhcnR1cCk7CisKKwlyZXR1cm4gdmlzaWJs ZTsKK30KIAogLyoKICAqIFR5cGVuYW1lR2V0VHlwaWQKQEAgLTMyODksNiArMzM1MSw2NiBAQCBU U0NvbmZpZ0lzVmlzaWJsZUV4dChPaWQgY2ZnaWQsIGJvb2wgKmlzX21pc3NpbmcpCiAJcmV0dXJu IHZpc2libGU7CiB9CiAKKy8qCisgKiBSZXR1cm5zIG9pZCBvZiBzZXNzaW9uIHZhcmlhYmxlIHNw ZWNpZmllZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRlbnRpZmllci4KKyAqCisgKiBJZiBub3Qg Zm91bmQsIHJldHVybnMgSW52YWxpZE9pZCBpZiBtaXNzaW5nX29rLCBlbHNlIHRocm93cyBlcnJv ci4KKyAqLworT2lkCitMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLAorCQkJICAg Y29uc3QgY2hhciAqdmFybmFtZSwKKwkJCSAgIGJvb2wgbWlzc2luZ19vaykKK3sKKwlPaWQJCQlu YW1lc3BhY2VJZDsKKwlPaWQJCQl2YXJvaWQgPSBJbnZhbGlkT2lkOworCUxpc3RDZWxsICAgKmw7 CisKKwlpZiAobnNwbmFtZSkKKwl7CisJCW5hbWVzcGFjZUlkID0gTG9va3VwRXhwbGljaXROYW1l c3BhY2UobnNwbmFtZSwgbWlzc2luZ19vayk7CisKKwkJLyogaWYgbnNwbmFtZSBpcyBhIGtub3du IG5hbWVzcGFjZSwgdGhlIHZhcmlhYmxlIG11c3QgYmUgdGhlcmUgKi8KKwkJaWYgKE9pZElzVmFs aWQobmFtZXNwYWNlSWQpKQorCQl7CisJCQl2YXJvaWQgPSBHZXRTeXNDYWNoZU9pZDIoVkFSSUFC TEVOQU1FTlNQLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJCQkJCQkJCSBQb2ludGVyR2V0RGF0 dW0odmFybmFtZSksCisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOwor CQl9CisJfQorCWVsc2UKKwl7CisJCS8qIGl0ZXJhdGUgb3ZlciB0aGUgc2NoZW1hcyBvbiB0aGUg c2VhcmNoX3BhdGggKi8KKwkJcmVjb21wdXRlTmFtZXNwYWNlUGF0aCgpOworCisJCWZvcmVhY2go bCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJbmFtZXNwYWNlSWQgPSBsZmlyc3Rfb2lkKGwp OworCisJCQl2YXJvaWQgPSBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQLCBBbnVtX3Bn X3ZhcmlhYmxlX29pZCwKKwkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJCQkJ CQkJCQkgT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOworCisJCQlpZiAoT2lkSXNWYWxp ZCh2YXJvaWQpKQorCQkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKCFPaWRJc1ZhbGlkKHZhcm9p ZCkgJiYgIW1pc3Npbmdfb2spCisJeworCQlpZiAobnNwbmFtZSkKKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2co InNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQluc3Bu YW1lLCB2YXJuYW1lKSkpOworCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlh YmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJdmFybmFtZSkpKTsKKwl9CisKKwly ZXR1cm4gdmFyb2lkOworfQogCiAvKgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lCkBAIC01 MDg1LDMgKzUyMDcsMTQgQEAgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEoUEdfRlVOQ1RJT05fQVJH UykKIAogCVBHX1JFVFVSTl9CT09MKGlzT3RoZXJUZW1wTmFtZXNwYWNlKG9pZCkpOwogfQorCitE YXR1bQorcGdfdmFyaWFibGVfaXNfdmlzaWJsZShQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJ CW9pZCA9IFBHX0dFVEFSR19PSUQoMCk7CisKKwlpZiAoIVNlYXJjaFN5c0NhY2hlRXhpc3RzMShW QVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShvaWQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsK KworCVBHX1JFVFVSTl9CT09MKFZhcmlhYmxlSXNWaXNpYmxlKG9pZCkpOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL29iamVjdGFkZHJlc3MuYwppbmRleCA4NWE3YjdlNjQxYS4uZWU3MGVlZWVkNDQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgi CkBAIC02MzYsNiArNjM3LDIwIEBAIHN0YXRpYyBjb25zdCBPYmplY3RQcm9wZXJ0eVR5cGUgT2Jq ZWN0UHJvcGVydHlbXSA9CiAJCU9CSkVDVF9VU0VSX01BUFBJTkcsCiAJCWZhbHNlCiAJfSwKKwl7 CisJCSJzZXNzaW9uIHZhcmlhYmxlIiwKKwkJVmFyaWFibGVSZWxhdGlvbklkLAorCQlWYXJpYWJs ZU9pZEluZGV4SWQsCisJCVZBUklBQkxFT0lELAorCQlWQVJJQUJMRU5BTUVOU1AsCisJCUFudW1f cGdfdmFyaWFibGVfb2lkLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWUsCisJCUFudW1fcGdf dmFyaWFibGVfdmFybmFtZXNwYWNlLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyLAorCQlB bnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCwKKwkJT0JKRUNUX1ZBUklBQkxFLAorCQl0cnVlCisJfQog fTsKIAogLyoKQEAgLTgzMSw2ICs4NDYsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9iamVjdF90 eXBlX21hcAogCX0sCiAJewogCQkic3RhdGlzdGljcyBvYmplY3QiLCBPQkpFQ1RfU1RBVElTVElD X0VYVAorCX0sCisJeworCQkic2Vzc2lvbiB2YXJpYWJsZSIsIE9CSkVDVF9WQVJJQUJMRQogCX0K IH07CiAKQEAgLTg1Niw2ICs4NzQsNyBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0 X2FkZHJlc3NfYXR0cmRlZihPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJCQlib29sIG1p c3Npbmdfb2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX3R5cGUo T2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQkJCQkJCQkgVHlwZU5hbWUgKnR5cGVuYW1lLCBib29s IG1pc3Npbmdfb2spOworc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX3Zh cmlhYmxlKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRy ZXNzIGdldF9vYmplY3RfYWRkcmVzc19vcGNmKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqb2Jq ZWN0LAogCQkJCQkJCQkJCQkgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNz IGdldF9vYmplY3RfYWRkcmVzc19vcGZfbWVtYmVyKE9iamVjdFR5cGUgb2JqdHlwZSwKQEAgLTEx MjYsNiArMTE0NSw5IEBAIGdldF9vYmplY3RfYWRkcmVzcyhPYmplY3RUeXBlIG9ianR5cGUsIE5v ZGUgKm9iamVjdCwKIAkJCQkJCQkJCQkJCQkJCSBtaXNzaW5nX29rKTsKIAkJCQlhZGRyZXNzLm9i amVjdFN1YklkID0gMDsKIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJ CWFkZHJlc3MgPSBnZXRfb2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoY2FzdE5vZGUoTGlzdCwgb2Jq ZWN0KSwgbWlzc2luZ19vayk7CisJCQkJYnJlYWs7CiAJCQkJLyogbm8gZGVmYXVsdCwgdG8gbGV0 IGNvbXBpbGVyIHdhcm4gYWJvdXQgbWlzc2luZyBjYXNlICovCiAJCX0KIApAQCAtMjAwMCwxNiAr MjAyMiwyMCBAQCBnZXRfb2JqZWN0X2FkZHJlc3NfZGVmYWNsKExpc3QgKm9iamVjdCwgYm9vbCBt aXNzaW5nX29rKQogCQljYXNlIERFRkFDTE9CSl9OQU1FU1BBQ0U6CiAJCQlvYmp0eXBlX3N0ciA9 ICJzY2hlbWFzIjsKIAkJCWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCW9i anR5cGVfc3RyID0gInZhcmlhYmxlcyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVyZXBv cnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUp LAogCQkJCQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgZGVmYXVsdCBBQ0wgb2JqZWN0IHR5cGUgXCIl Y1wiIiwgb2JqdHlwZSksCi0JCQkJCSBlcnJoaW50KCJWYWxpZCBvYmplY3QgdHlwZXMgYXJlIFwi JWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLiIsCisJCQkJCSBlcnJoaW50KCJW YWxpZCBvYmplY3QgdHlwZXMgYXJlIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIl Y1wiLCBcIiVjXCIuIiwKIAkJCQkJCQkgREVGQUNMT0JKX1JFTEFUSU9OLAogCQkJCQkJCSBERUZB Q0xPQkpfU0VRVUVOQ0UsCiAJCQkJCQkJIERFRkFDTE9CSl9GVU5DVElPTiwKIAkJCQkJCQkgREVG QUNMT0JKX1RZUEUsCi0JCQkJCQkJIERFRkFDTE9CSl9OQU1FU1BBQ0UpKSk7CisJCQkJCQkJIERF RkFDTE9CSl9OQU1FU1BBQ0UsCisJCQkJCQkJIERFRkFDTE9CSl9WQVJJQUJMRSkpKTsKIAl9CiAK IAkvKgpAQCAtMjA5Myw2ICsyMTE5LDI0IEBAIHRleHRhcnJheV90b19zdHJ2YWx1ZWxpc3QoQXJy YXlUeXBlICphcnIpCiAJcmV0dXJuIGxpc3Q7CiB9CiAKKy8qCisgKiBGaW5kIHRoZSBPYmplY3RB ZGRyZXNzIGZvciBhIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIE9iamVjdEFkZHJlc3MK K2dldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2luZ19v aykKK3sKKwlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CisJY2hhcgkgICAqbnNwbmFtZSA9IE5VTEw7 CisJY2hhcgkgICAqdmFybmFtZSA9IE5VTEw7CisKKwlPYmplY3RBZGRyZXNzU2V0KGFkZHJlc3Ms IFZhcmlhYmxlUmVsYXRpb25JZCwgSW52YWxpZE9pZCk7CisKKwlEZWNvbnN0cnVjdFF1YWxpZmll ZE5hbWUob2JqZWN0LCAmbnNwbmFtZSwgJnZhcm5hbWUpOworCWFkZHJlc3Mub2JqZWN0SWQgPSBM b29rdXBWYXJpYWJsZShuc3BuYW1lLCB2YXJuYW1lLCBtaXNzaW5nX29rKTsKKworCXJldHVybiBh ZGRyZXNzOworfQorCiAvKgogICogU1FMLWNhbGxhYmxlIHZlcnNpb24gb2YgZ2V0X29iamVjdF9h ZGRyZXNzCiAgKi8KQEAgLTIyODcsNiArMjMzMSw3IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQ R19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgogCQljYXNlIE9C SkVDVF9PUENMQVNTOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKKwkJY2FzZSBPQkpFQ1RfVkFS SUFCTEU6CiAJCQlvYmpub2RlID0gKE5vZGUgKikgbmFtZTsKIAkJCWJyZWFrOwogCQljYXNlIE9C SkVDVF9BQ0NFU1NfTUVUSE9EOgpAQCAtMjQ1OCw2ICsyNTAzLDcgQEAgY2hlY2tfb2JqZWN0X293 bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3MgYWRk cmVzcywKIAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJY2FzZSBPQkpFQ1RfVFNESUNU SU9OQVJZOgogCQljYXNlIE9CSkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZB UklBQkxFOgogCQkJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhhZGRyZXNzLmNsYXNzSWQsIGFkZHJl c3Mub2JqZWN0SWQsIHJvbGVpZCkpCiAJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09X TkVSLCBvYmp0eXBlLAogCQkJCQkJCSAgIE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwg b2JqZWN0KSkpOwpAQCAtMzQ0Niw2ICszNDkyLDMyIEBAIGdldE9iamVjdERlc2NyaXB0aW9uKGNv bnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCWJyZWFrOwog CQkJfQogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAgKm5z cG5hbWU7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07 CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0 dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQor CQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQl2YXJmb3JtID0gKEZvcm1f cGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJCQkJaWYgKFZhcmlhYmxlSXNWaXNpYmxl KG9iamVjdC0+b2JqZWN0SWQpKQorCQkJCQluc3BuYW1lID0gTlVMTDsKKwkJCQllbHNlCisJCQkJ CW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWUodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKwor CQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygic2Vzc2lvbiB2YXJpYWJsZSAlcyIpLAor CQkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwKKwkJCQkJCQkJCQkJ CQkJCU5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpKTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZSh0 dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgVFNQYXJzZXJSZWxhdGlvbklkOgogCQkJ ewogCQkJCUhlYXBUdXBsZQl0dXA7CkBAIC0zNzk4LDYgKzM4NzAsMTYgQEAgZ2V0T2JqZWN0RGVz Y3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJ CQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2NoZW1hcyBiZWxvbmdpbmcg dG8gcm9sZSAlcyIpLAogCQkJCQkJCQkJCSByb2xlbmFtZSk7CiAJCQkJCQlicmVhazsKKwkJCQkJ Y2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJCQlpZiAobnNwbmFtZSkKKwkJCQkJCQlhcHBl bmRTdHJpbmdJbmZvKCZidWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMg b24gbmV3IHNlc3Npb24gdmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xlICVzIGluIHNjaGVtYSAl cyIpLAorCQkJCQkJCQkJCQkgcm9sZW5hbWUsIG5zcG5hbWUpOworCQkJCQkJZWxzZQorCQkJCQkJ CWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmls ZWdlcyBvbiBuZXcgc2Vzc2lvbiB2YXJpYWJsZXMgYmVsb25naW5nIHRvIHJvbGUgJXMiKSwKKwkJ CQkJCQkJCQkJIHJvbGVuYW1lKTsKKwkJCQkJCWJyZWFrOwogCQkJCQlkZWZhdWx0OgogCQkJCQkJ Lyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJCQkJCQlpZiAobnNwbmFtZSkKQEAgLTQ2MTQsNiAr NDY5NiwxMCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAq b2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZm ZXIsICJ0cmFuc2Zvcm0iKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklk OgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAic2Vzc2lvbiB2YXJpYWJsZSIp OworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBv YmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFzc0lkKTsKIAl9CkBAIC01NzIwLDYgKzU4MDYs MTAgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3Qs CiAJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCiAJCQkJCQkJCQkJCSAgICIg b24gc2NoZW1hcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxF OgorCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAorCQkJCQkJCQkJCQkgICAi IG9uIHNlc3Npb24gdmFyaWFibGVzIik7CisJCQkJCQlicmVhazsKIAkJCQl9CiAKIAkJCQlpZiAo b2JqbmFtZSkKQEAgLTU5NjAsNiArNjA1MCwzMyBAQCBnZXRPYmplY3RJZGVudGl0eVBhcnRzKGNv bnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVmFy aWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAgKnNjaGVtYTsKKwkJCQljaGFyCSAg ICp2YXJuYW1lOworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ192YXJpYWJsZSB2YXJm b3JtOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdl dERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVw KSkKKwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFy aWFibGUgJXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCXNjaGVtYSA9IGdldF9uYW1l c3BhY2VfbmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisJCQkJdmFybmFtZSA9 IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZm ZXIsICIlcyIsCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihzY2hlbWEsIHZh cm5hbWUpKTsKKworCQkJCWlmIChvYmpuYW1lKQorCQkJCQkqb2JqbmFtZSA9IGxpc3RfbWFrZTIo c2NoZW1hLCB2YXJuYW1lKTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFr OworCQkJfQorCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0 IGNsYXNzOiAldSIsIG9iamVjdC0+Y2xhc3NJZCk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVu ZC5jCmluZGV4IDc1M2FmYjg4NDUzLi4xZWEzZDZkYjA1YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hk ZXBlbmQuYwpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNl cl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgpAQCAtMTcxNCw2ICsxNzE1LDcgQEAgc2hkZXBSZWFz c2lnbk93bmVkX093bmVyKEZvcm1fcGdfc2hkZXBlbmQgc2RlcEZvcm0sIE9pZCBuZXdyb2xlKQog CQljYXNlIERhdGFiYXNlUmVsYXRpb25JZDoKIAkJY2FzZSBUU0NvbmZpZ1JlbGF0aW9uSWQ6CiAJ CWNhc2UgVFNEaWN0aW9uYXJ5UmVsYXRpb25JZDoKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6 CiAJCQlBbHRlck9iamVjdE93bmVyX2ludGVybmFsKHNkZXBGb3JtLT5jbGFzc2lkLAogCQkJCQkJ CQkJICBzZGVwRm9ybS0+b2JqaWQsCiAJCQkJCQkJCQkgIG5ld3JvbGUpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z192YXJpYWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lM2E4 NjFjOGNiYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYwpAQCAtMCwwICsxLDI1NSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfdmFy aWFibGUuYworICoJCXNlc3Npb24gdmFyaWFibGVzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2Yg Q2FsaWZvcm5pYQorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkJc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ192YXJpYWJsZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUg InBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1 ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3Mu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1 ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVk ZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNs dWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCitzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFy aWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKKwkJCQkJCQkJCSBPaWQgdmFyTmFtZXNwYWNlLAor CQkJCQkJCQkJIE9pZCB2YXJUeXBlLAorCQkJCQkJCQkJIGludDMyIHZhclR5cG1vZCwKKwkJCQkJ CQkJCSBPaWQgdmFyT3duZXIsCisJCQkJCQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKKwkJCQkJCQkJ CSBib29sIGlmX25vdF9leGlzdHMpOworCisKKy8qCisgKiBDcmVhdGVzIGVudHJ5IGluIHBnX3Zh cmlhYmxlIHRhYmxlCisgKi8KK3N0YXRpYyBPYmplY3RBZGRyZXNzCitjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKKwkJCQlPaWQgdmFyTmFtZXNwYWNlLAorCQkJCU9pZCB2YXJU eXBlLAorCQkJCWludDMyIHZhclR5cG1vZCwKKwkJCQlPaWQgdmFyT3duZXIsCisJCQkJT2lkIHZh ckNvbGxhdGlvbiwKKwkJCQlib29sIGlmX25vdF9leGlzdHMpCit7CisJQWNsCQkgICAqdmFyYWNs OworCU5hbWVEYXRhCXZhcm5hbWU7CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfdmFyaWFibGVdOwor CURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfdmFyaWFibGVdOworCVJlbGF0aW9uCXJlbDsKKwlIZWFw VHVwbGUJdHVwOworCVR1cGxlRGVzYwl0dXBkZXNjOworCU9iamVjdEFkZHJlc3MgbXlzZWxmLAor CQkJCXJlZmVyZW5jZWQ7CisJT2JqZWN0QWRkcmVzc2VzICphZGRyczsKKwlPaWQJCQl2YXJpZDsK KworCUFzc2VydCh2YXJOYW1lKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJOYW1lc3BhY2UpKTsK KwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJUeXBlKSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyT3du ZXIpKTsKKworCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNsdXNp dmVMb2NrKTsKKworCS8qCisJICogQ2hlY2sgZm9yIGR1cGxpY2F0ZXMuIE5vdGUgdGhhdCB0aGlz IGRvZXMgbm90IHJlYWxseSBwcmV2ZW50CisJICogZHVwbGljYXRlcywgaXQncyBoZXJlIGp1c3Qg dG8gcHJvdmlkZSBuaWNlciBlcnJvciBtZXNzYWdlIGluIGNvbW1vbgorCSAqIGNhc2UuIFRoZSBy ZWFsIHByb3RlY3Rpb24gaXMgdGhlIHVuaXF1ZSBrZXkgb24gdGhlIGNhdGFsb2cuCisJICovCisJ aWYgKFNlYXJjaFN5c0NhY2hlRXhpc3RzMihWQVJJQUJMRU5BTUVOU1AsCisJCQkJCQkJICBQb2lu dGVyR2V0RGF0dW0odmFyTmFtZSksCisJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHZhck5hbWVz cGFjZSkpKQorCXsKKwkJaWYgKGlmX25vdF9leGlzdHMpCisJCQllcmVwb3J0KE5PVElDRSwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vz c2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nIiwKKwkJCQkJCQl2 YXJOYW1lKSkpOworCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwi JXNcIiBhbHJlYWR5IGV4aXN0cyIsCisJCQkJCQkJdmFyTmFtZSkpKTsKKworCQl0YWJsZV9jbG9z ZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJCXJldHVybiBJbnZhbGlkT2JqZWN0QWRkcmVz czsKKwl9CisKKwltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51 bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CisKKwluYW1lc3RyY3B5KCZ2YXJuYW1lLCB2YXJO YW1lKTsKKworCXZhcmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRl eElkLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCk7CisKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9v aWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3Zhcmlh YmxlX3Zhcm5hbWUgLSAxXSA9IE5hbWVHZXREYXR1bSgmdmFybmFtZSk7CisJdmFsdWVzW0FudW1f cGdfdmFyaWFibGVfdmFybmFtZXNwYWNlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck5hbWVz cGFjZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwZSAtIDFdID0gT2JqZWN0SWRH ZXREYXR1bSh2YXJUeXBlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAx XSA9IEludDMyR2V0RGF0dW0odmFyVHlwbW9kKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CisJdmFsdWVzW0FudW1f cGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxh dGlvbik7CisKKwl2YXJhY2wgPSBnZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUs IHZhck93bmVyLAorCQkJCQkJCQkgIHZhck5hbWVzcGFjZSk7CisJaWYgKHZhcmFjbCAhPSBOVUxM KQorCQl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IFBvaW50ZXJHZXREYXR1 bSh2YXJhY2wpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9 IHRydWU7CisKKwl0dXBkZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWwpOworCisJdHVwID0gaGVh cF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2Vy dChyZWwsIHR1cCk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCWFkZHJzID0gbmV3 X29iamVjdF9hZGRyZXNzZXMoKTsKKworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBWYXJpYWJs ZVJlbGF0aW9uSWQsIHZhcmlkKTsKKworCS8qIGRlcGVuZGVuY3kgb24gbmFtZXNwYWNlICovCisJ T2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBOYW1lc3BhY2VSZWxhdGlvbklkLCB2YXJOYW1l c3BhY2UpOworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOwor CisJLyogZGVwZW5kZW5jeSBvbiB1c2VkIHR5cGUgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVy ZW5jZWQsIFR5cGVSZWxhdGlvbklkLCB2YXJUeXBlKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJl c3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gY29sbGF0aW9uICov CisJaWYgKE9pZElzVmFsaWQodmFyQ29sbGF0aW9uKSAmJgorCQl2YXJDb2xsYXRpb24gIT0gREVG QVVMVF9DT0xMQVRJT05fT0lEKQorCXsKKwkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBD b2xsYXRpb25SZWxhdGlvbklkLCB2YXJDb2xsYXRpb24pOworCQlhZGRfZXhhY3Rfb2JqZWN0X2Fk ZHJlc3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsKKwl9CisKKwlyZWNvcmRfb2JqZWN0X2FkZHJlc3Nf ZGVwZW5kZW5jaWVzKCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CisJZnJlZV9v YmplY3RfYWRkcmVzc2VzKGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gb3duZXIgKi8KKwly ZWNvcmREZXBlbmRlbmN5T25Pd25lcihWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCB2YXJPd25l cik7CisKKwkvKiBkZXBlbmRlbmNpZXMgb24gcm9sZXMgbWVudGlvbmVkIGluIGRlZmF1bHQgQUNM ICovCisJcmVjb3JkRGVwZW5kZW5jeU9uTmV3QWNsKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQs IDAsIHZhck93bmVyLCB2YXJhY2wpOworCisJLyogZGVwZW5kZW5jeSBvbiBleHRlbnNpb24gKi8K KwlyZWNvcmREZXBlbmRlbmN5T25DdXJyZW50RXh0ZW5zaW9uKCZteXNlbGYsIGZhbHNlKTsKKwor CWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwkvKiBwb3N0IGNyZWF0aW9uIGhvb2sgZm9yIG5ldyBm dW5jdGlvbiAqLworCUludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKFZhcmlhYmxlUmVsYXRpb25J ZCwgdmFyaWQsIDApOworCisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwor CXJldHVybiBteXNlbGY7Cit9CisKKy8qCisgKiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlCisgKgor ICogVXNlZCBieSBDUkVBVEUgVkFSSUFCTEUgY29tbWFuZAorICovCitPYmplY3RBZGRyZXNzCitD cmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpz dG10KQoreworCU9pZAkJCW5hbWVzcGFjZWlkOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJT2lk CQkJdHlwaWQ7CisJaW50MzIJCXR5cG1vZDsKKwlPaWQJCQl2YXJvd25lciA9IEdldFVzZXJJZCgp OworCU9pZAkJCWNvbGxhdGlvbjsKKwlPaWQJCQl0eXBjb2xsYXRpb247CisJT2JqZWN0QWRkcmVz cyB2YXJpYWJsZTsKKworCW5hbWVzcGFjZWlkID0KKwkJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0 aW9uTmFtZXNwYWNlKHN0bXQtPnZhcmlhYmxlLCBOb0xvY2ssIE5VTEwpOworCisJdHlwZW5hbWVU eXBlSWRBbmRNb2QocHN0YXRlLCBzdG10LT50eXBlTmFtZSwgJnR5cGlkLCAmdHlwbW9kKTsKKwor CS8qIGRpc2FsbG93IHBzZXVkb3R5cGVzICovCisJaWYgKGdldF90eXB0eXBlKHR5cGlkKSA9PSBU WVBUWVBFX1BTRVVETykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dS T05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBi ZSBwc2V1ZG8tdHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpKSk7CisKKwlh Y2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVHlwZVJlbGF0aW9uSWQsIHR5cGlkLCBHZXRVc2Vy SWQoKSwgQUNMX1VTQUdFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xj aGVja19lcnJvcl90eXBlKGFjbHJlc3VsdCwgdHlwaWQpOworCisJdHlwY29sbGF0aW9uID0gZ2V0 X3R5cGNvbGxhdGlvbih0eXBpZCk7CisKKwlpZiAoc3RtdC0+Y29sbENsYXVzZSkKKwkJY29sbGF0 aW9uID0gTG9va3VwQ29sbGF0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2Ut PmNvbGxuYW1lLAorCQkJCQkJCQkJc3RtdC0+Y29sbENsYXVzZS0+bG9jYXRpb24pOworCWVsc2UK KwkJY29sbGF0aW9uID0gdHlwY29sbGF0aW9uOzsKKworCS8qIGNvbXBsYWluIGlmIENPTExBVEUg aXMgYXBwbGllZCB0byBhbiB1bmNvbGxhdGFibGUgdHlwZSAqLworCWlmIChPaWRJc1ZhbGlkKGNv bGxhdGlvbikgJiYgIU9pZElzVmFsaWQodHlwY29sbGF0aW9uKSkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJybXNnKCJj b2xsYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHR5cGUgJXMiLAorCQkJCQkJZm9ybWF0X3R5 cGVfYmUodHlwaWQpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+Y29s bENsYXVzZS0+bG9jYXRpb24pKSk7CisKKwl2YXJpYWJsZSA9IGNyZWF0ZV92YXJpYWJsZShzdG10 LT52YXJpYWJsZS0+cmVsbmFtZSwKKwkJCQkJCQkgICBuYW1lc3BhY2VpZCwKKwkJCQkJCQkgICB0 eXBpZCwKKwkJCQkJCQkgICB0eXBtb2QsCisJCQkJCQkJICAgdmFyb3duZXIsCisJCQkJCQkJICAg Y29sbGF0aW9uLAorCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9leGlzdHMpOworCisJZWxvZyhERUJV RzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wiIChvaWQ6JWQpIHdhcyBjcmVh dGVkIGluIHBnX3ZhcmlhYmxlIiwKKwkJIHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLCB2YXJpYWJs ZS5vYmplY3RJZCk7CisKKwkvKiB3ZSB3YW50IFNlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9j ZXNzIHRvIHNlZSB0aGUgY2F0YWxvZyBjaGFuZ2VzLiAqLworCUNvbW1hbmRDb3VudGVySW5jcmVt ZW50KCk7CisKKwlyZXR1cm4gdmFyaWFibGU7Cit9CisKKy8qCisgKiBEcm9wIHZhcmlhYmxlIGJ5 IE9JRCwgYW5kIHJlZ2lzdGVyIHRoZSBuZWVkZWQgc2Vzc2lvbiB2YXJpYWJsZQorICogY2xlYW51 cC4KKyAqLwordm9pZAorRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQpCit7CisJUmVsYXRpb24J cmVsOworCUhlYXBUdXBsZQl0dXA7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxlUmVsYXRp b25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFC TEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUg JXUiLCB2YXJpZCk7CisKKwlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3NlbGYpOwor CisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2 ZUxvY2spOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKaW5kZXggNGY5OWViYjQ0NzAuLjYzZmE5OWZhZDM0 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2FsdGVyLmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BnX3RzX2RpY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3BhcnNlci5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHNfdGVtcGxhdGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Zhcmlh YmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9j b2xsYXRpb25jbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgpAQCAtMTM5 LDYgKzE0MCwxMCBAQCByZXBvcnRfbmFtZXNwYWNlX2NvbmZsaWN0KE9pZCBjbGFzc0lkLCBjb25z dCBjaGFyICpuYW1lLCBPaWQgbnNwT2lkKQogCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7 CiAJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoInRleHQgc2VhcmNoIGNvbmZpZ3VyYXRpb24gXCIl c1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVtYSBcIiVzXCIiKTsKIAkJCWJyZWFrOworCQljYXNl IFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCUFzc2VydChPaWRJc1ZhbGlkKG5zcE9pZCkpOworCQkJ bXNnZm10ID0gZ2V0dGV4dF9ub29wKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBhbHJlYWR5IGV4 aXN0cyBpbiBzY2hlbWEgXCIlc1wiIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2co RVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1IiwgY2xhc3NJZCk7CiAJCQlicmVh azsKQEAgLTQxOCw2ICs0MjMsNyBAQCBFeGVjUmVuYW1lU3RtdChSZW5hbWVTdG10ICpzdG10KQog CQljYXNlIE9CSkVDVF9UU1RFTVBMQVRFOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTjoKIAkJ Y2FzZSBPQkpFQ1RfU1VCU0NSSVBUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsK IAkJCQlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsKQEAgLTU2 MSw2ICs1NjcsNyBAQCBFeGVjQWx0ZXJPYmplY3RTY2hlbWFTdG10KEFsdGVyT2JqZWN0U2NoZW1h U3RtdCAqc3RtdCwKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9CSkVDVF9U U1BBUlNFUjoKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKKwkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CiAJCQl7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsKIAkJCQlSZWxhdGlvbglyZWxhdGlvbjsK QEAgLTY0NSw2ICs2NTIsNyBAQCBBbHRlck9iamVjdE5hbWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQs IE9pZCBvYmppZCwgT2lkIG5zcE9pZCwKIAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgog CQljYXNlIFRTVGVtcGxhdGVSZWxhdGlvbklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoK KwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsK IApAQCAtODc1LDYgKzg4Myw3IEBAIEV4ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAq c3RtdCkKIAkJY2FzZSBPQkpFQ1RfVEFCTEVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9O QVJZOgogCQljYXNlIE9CSkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgogCQkJewogCQkJCVJlbGF0aW9uCXJlbGF0aW9uOwogCQkJCU9iamVjdEFkZHJlc3MgYWRk cmVzczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IDg1ZWVjN2UzOTQ3Li4zY2NlMTdlOTJh ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCkBAIC00NzYsNiArNDc2LDEwIEBAIGRvZXNfbm90 X2V4aXN0X3NraXBwaW5nKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0KQogCQkJbXNn ID0gZ2V0dGV4dF9ub29wKCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBw aW5nIik7CiAJCQluYW1lID0gc3RyVmFsKG9iamVjdCk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQltc2cgPSBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIl c1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIpOworCQkJbmFtZSA9IE5hbWVMaXN0VG9TdHJp bmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSk7CisJCQlicmVhazsKIAogCQljYXNlIE9CSkVDVF9D T0xVTU46CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJp Z2dlci5jCmluZGV4IGRjZmMxZGJhZmZkLi5kMDNjYjk0N2U2NyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2V2ZW50X3RyaWdnZXIuYwpAQCAtMjE0OSw2ICsyMTQ5LDggQEAgc3RyaW5naWZ5X2dyYW50X29i anR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQQUNFIjsKIAkJY2Fz ZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiAiVFlQRSI7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxF OgorCQkJcmV0dXJuICJWQVJJQUJMRSI7CiAJCQkvKiB0aGVzZSBjdXJyZW50bHkgYXJlbid0IHVz ZWQgKi8KIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJY2FzZSBPQkpFQ1RfQUdHUkVH QVRFOgpAQCAtMjIzMiw2ICsyMjM0LDggQEAgc3RyaW5naWZ5X2FkZWZwcml2c19vYmp0eXBlKE9i amVjdFR5cGUgb2JqdHlwZSkKIAkJCXJldHVybiAiVEFCTEVTUEFDRVMiOwogCQljYXNlIE9CSkVD VF9UWVBFOgogCQkJcmV0dXJuICJUWVBFUyI7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJ cmV0dXJuICJWQVJJQUJMRVMiOwogCQkJLyogdGhlc2UgY3VycmVudGx5IGFyZW4ndCB1c2VkICov CiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZWNsYWJlbC5jCmluZGV4IDU2MDcyNzNiZjlmLi5jMDI2YWI1ZGNiOCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZWNsYWJlbC5jCkBAIC05Miw2ICs5Miw3IEBAIFNlY0xhYmVsU3VwcG9ydHNP YmplY3RUeXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJ CWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKKwkJ Y2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQlyZXR1cm4gZmFsc2U7CiAKIAkJCS8qCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCmluZGV4IDQzNDViOTZkZTVlLi5kMzdlYzQzYmNkMyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlX3hs b2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0aW5nLmgiCkBAIC02NzM4LDYgKzY3MzksNyBA QCBBVFR5cGVkVGFibGVSZWN1cnNpb24oTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRl clRhYmxlQ21kICpjbWQsCiAgKiAocG9zc2libHkgbmVzdGVkIHNldmVyYWwgbGV2ZWxzIGRlZXAg aW4gY29tcG9zaXRlIHR5cGVzLCBhcnJheXMsIGV0YyEpLgogICogRXZlbnR1YWxseSwgd2UnZCBs aWtlIHRvIHByb3BhZ2F0ZSB0aGUgY2hlY2sgb3IgcmV3cml0ZSBvcGVyYXRpb24KICAqIGludG8g c3VjaCB0YWJsZXMsIGJ1dCBmb3Igbm93LCBqdXN0IGVycm9yIG91dCBpZiB3ZSBmaW5kIGFueS4K KyAqIEFsc28sIGNoZWNrIGlmICJ0eXBlT2lkIiBpcyB1c2VkIGFzIHR5cGUgb2Ygc29tZSBzZXNz aW9uIHZhcmlhYmxlLgogICoKICAqIENhbGxlciBzaG91bGQgcHJvdmlkZSBlaXRoZXIgdGhlIGFz c29jaWF0ZWQgcmVsYXRpb24gb2YgYSByb3d0eXBlLAogICogb3IgYSB0eXBlIG5hbWUgKG5vdCBi b3RoKSBmb3IgdXNlIGluIHRoZSBlcnJvciBtZXNzYWdlLCBpZiBhbnkuCkBAIC02ODAxLDYgKzY4 MDMsNDUgQEAgZmluZF9jb21wb3NpdGVfdHlwZV9kZXBlbmRlbmNpZXMoT2lkIHR5cGVPaWQsIFJl bGF0aW9uIG9yaWdSZWxhdGlvbiwKIAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJLyogY2hlY2sgaWYg dGhlIHR5cGUgaXMgdXNlZCBhcyB0eXBlIG9mIHNvbWUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlp ZiAocGdfZGVwZW5kLT5jbGFzc2lkID09IFZhcmlhYmxlUmVsYXRpb25JZCkKKwkJeworCQkJT2lk CQkJdmFyaWQgPSBwZ19kZXBlbmQtPm9iamlkOworCisJCQlpZiAob3JpZ1R5cGVOYW1lKQorCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVzZSBz ZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJb3JpZ1R5cGVOYW1l LAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkp OworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9D T01QT1NJVEVfVFlQRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHR5 cGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJ CQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdl dF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwK KwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlm IChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUp CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1Rf U1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBmb3JlaWduIHRhYmxlIFwi JXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJ CQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmlnUmVsYXRpb24pLAorCQkJCQkJCQlnZXRfbmFt ZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJ CQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3Jp Z1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAorCQkJCQkg b3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXIHx8CisJCQkJ CSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RB QkxFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdGFibGUgXCIlc1wi IGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3Bh Y2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJ Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisKKwkJCWNvbnRpbnVlOworCQl9 CisKIAkJLyogRWxzZSwgaWdub3JlIGRlcGVuZGVlcyB0aGF0IGFyZW4ndCByZWxhdGlvbnMgKi8K IAkJaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCAhPSBSZWxhdGlvblJlbGF0aW9uSWQpCiAJCQljb250 aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CmluZGV4IDg5ZmRiOTRjMjM3Li41OWRhM2I1MGFiOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmlnZ2VyLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rl ZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJncmFtcGFy c2UuaCIKQEAgLTI4MSw4ICsyODIsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdT ZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlDb25z dHJhaW50c1NldFN0bXQgQ29weVN0bXQgQ3JlYXRlQXNTdG10IENyZWF0ZUNhc3RTdG10CiAJCUNy ZWF0ZURvbWFpblN0bXQgQ3JlYXRlRXh0ZW5zaW9uU3RtdCBDcmVhdGVHcm91cFN0bXQgQ3JlYXRl T3BDbGFzc1N0bXQKIAkJQ3JlYXRlT3BGYW1pbHlTdG10IEFsdGVyT3BGYW1pbHlTdG10IENyZWF0 ZVBMYW5nU3RtdAotCQlDcmVhdGVTY2hlbWFTdG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU3RtdCBD cmVhdGVTdGF0c1N0bXQgQ3JlYXRlVGFibGVTcGFjZVN0bXQKLQkJQ3JlYXRlRmR3U3RtdCBDcmVh dGVGb3JlaWduU2VydmVyU3RtdCBDcmVhdGVGb3JlaWduVGFibGVTdG10CisJCUNyZWF0ZVNjaGVt YVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVTZXNzaW9uVmFyU3RtdCBDcmVhdGVTdG10IENyZWF0 ZVN0YXRzU3RtdAorCQlDcmVhdGVUYWJsZVNwYWNlU3RtdCBDcmVhdGVGZHdTdG10IENyZWF0ZUZv cmVpZ25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKIAkJQ3JlYXRlQXNzZXJ0aW9u U3RtdCBDcmVhdGVUcmFuc2Zvcm1TdG10IENyZWF0ZVRyaWdTdG10IENyZWF0ZUV2ZW50VHJpZ1N0 bXQKIAkJQ3JlYXRlVXNlclN0bXQgQ3JlYXRlVXNlck1hcHBpbmdTdG10IENyZWF0ZVJvbGVTdG10 IENyZWF0ZVBvbGljeVN0bXQKIAkJQ3JlYXRlZGJTdG10IERlY2xhcmVDdXJzb3JTdG10IERlZmlu ZVN0bXQgRGVsZXRlU3RtdCBEaXNjYXJkU3RtdCBEb1N0bXQKQEAgLTc3NSw4ICs3NzYsOCBAQCBz dGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAq YWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVVFU0NBUEUgVU5CT1VOREVEIFVOQ09ORElUSU9OQUwg VU5DT01NSVRURUQgVU5FTkNSWVBURUQgVU5JT04gVU5JUVVFIFVOS05PV04KIAlVTkxJU1RFTiBV TkxPR0dFRCBVTlRJTCBVUERBVEUgVVNFUiBVU0lORwogCi0JVkFDVVVNIFZBTElEIFZBTElEQVRF IFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZBUklBRElDIFZBUllJTkcKLQlWRVJC T1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZPTEFUSUxFCisJVkFDVVVNIFZBTElEIFZBTElEQVRF IFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZBUklBQkxFIFZBUklBQkxFUworCVZB UklBRElDIFZBUllJTkcgVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWT0xBVElMRQogCiAJ V0hFTiBXSEVSRSBXSElURVNQQUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBX UkFQUEVSIFdSSVRFCiAKQEAgLTEwNDIsNiArMTA0Myw3IEBAIHN0bXQ6CiAJCQl8IENyZWF0ZVBv bGljeVN0bXQKIAkJCXwgQ3JlYXRlUExhbmdTdG10CiAJCQl8IENyZWF0ZVNjaGVtYVN0bXQKKwkJ CXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJCXwgQ3JlYXRlU2VxU3RtdAogCQkJfCBDcmVhdGVT dG10CiAJCQl8IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQKQEAgLTE1ODQsNiArMTU4Niw3IEBAIHNj aGVtYV9zdG10OgogCQkJfCBDcmVhdGVUcmlnU3RtdAogCQkJfCBHcmFudFN0bXQKIAkJCXwgVmll d1N0bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJOwogCiAKQEAgLTUxOTMsNiArNTE5 NiwzNCBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogCQkJCX0KIAkJOwogCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKyAqCisgKgkJUVVFUlkgOgorICoJCQkJQ1JFQVRFIFZBUklBQkxFIHZh cm5hbWUgW0FTXSB0eXBlCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitDcmVhdGVTZXNz aW9uVmFyU3RtdDoKKwkJCUNSRUFURSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlw ZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3Rt dCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKKwkJCQkJbi0+dmFyaWFibGUg PSAkMzsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkNTsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xs YXRlQ2xhdXNlICopICQ2OworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CisJCQkJCSQk ID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBWQVJJQUJMRSBJRl9QIE5PVCBFWElT VFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJ CXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9u VmFyU3RtdCk7CisJCQkJCW4tPnZhcmlhYmxlID0gJDY7CisJCQkJCW4tPnR5cGVOYW1lID0gJDg7 CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJCQkJbi0+aWZf bm90X2V4aXN0cyA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwog LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBEQVRF IFsgVE8gdmVyc2lvbiBdCkBAIC02OTgxLDYgKzcwMTIsNyBAQCBvYmplY3RfdHlwZV9hbnlfbmFt ZToKIAkJCXwgVEVYVF9QIFNFQVJDSCBESUNUSU9OQVJZCQkJCXsgJCQgPSBPQkpFQ1RfVFNESUNU SU9OQVJZOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggVEVNUExBVEUJCQkJeyAkJCA9IE9CSkVDVF9U U1RFTVBMQVRFOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggQ09ORklHVVJBVElPTgkJCXsgJCQgPSBP QkpFQ1RfVFNDT05GSUdVUkFUSU9OOyB9CisJCQl8IFZBUklBQkxFCQkJCQkJCQl7ICQkID0gT0JK RUNUX1ZBUklBQkxFOyB9CiAJCTsKIAogLyoKQEAgLTc4NTcsNiArNzg4OSwxNCBAQCBwcml2aWxl Z2VfdGFyZ2V0OgogCQkJCQluLT5vYmpzID0gJDI7CiAJCQkJCSQkID0gbjsKIAkJCQl9CisJCQl8 IFZBUklBQkxFIHF1YWxpZmllZF9uYW1lX2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4g PSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFy Z3R5cGUgPSBBQ0xfVEFSR0VUX09CSkVDVDsKKwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9WQVJJ QUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQyOworCQkJCQkkJCA9IG47CisJCQkJfQogCQkJfCBBTEwg VEFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAogCQkJCXsKIAkJCQkJUHJpdlRhcmdldCAqbiA9 IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOwpAQCAtNzkwMiw2ICs3 OTQyLDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6CiAJCQkJCW4tPm9ianMgPSAkNTsKIAkJCQkJJCQg PSBuOwogCQkJCX0KKwkJCXwgQUxMIFZBUklBQkxFUyBJTl9QIFNDSEVNQSBuYW1lX2xpc3QKKwkJ CQl7CisJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFBy aXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX0FMTF9JTl9TQ0hFTUE7 CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9ianMgPSAkNTsK KwkJCQkJJCQgPSBuOworCQkJCX0KIAkJOwogCiAKQEAgLTgwOTksNiArODE0Nyw3IEBAIGRlZmFj bF9wcml2aWxlZ2VfdGFyZ2V0OgogCQkJfCBTRVFVRU5DRVMJCXsgJCQgPSBPQkpFQ1RfU0VRVUVO Q0U7IH0KIAkJCXwgVFlQRVNfUAkJeyAkJCA9IE9CSkVDVF9UWVBFOyB9CiAJCQl8IFNDSEVNQVMJ CXsgJCQgPSBPQkpFQ1RfU0NIRU1BOyB9CisJCQl8IFZBUklBQkxFUwkJeyAkJCA9IE9CSkVDVF9W QVJJQUJMRTsgfQogCQk7CiAKIApAQCAtOTg4Nyw2ICs5OTM2LDI0IEBAIFJlbmFtZVN0bXQ6IEFM VEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBSRU5BTUUgVE8gbmFtZQogCQkJ CQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJ CQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlS ZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFtZVR5cGUg PSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQlu LT5uZXduYW1lID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAo Tm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFt ZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJl bmFtZVN0bXQpOworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQlu LT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJCQluLT5t aXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7CiAKIG9w dF9jb2x1bW46IENPTFVNTgpAQCAtMTAyNDgsNiArMTAzMTUsMjQgQEAgQWx0ZXJPYmplY3RTY2hl bWFTdG10OgogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikg bjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIFNFVCBTQ0hFTUEgbmFtZQor CQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPYmpl Y3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJ CQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld3NjaGVtYSA9ICQ2OworCQkJ CQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJ CXwgQUxURVIgVkFSSUFCTEUgSUZfUCBFWElTVFMgYW55X25hbWUgU0VUIFNDSEVNQSBuYW1lCisJ CQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck9iamVj dFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJ CQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDg7CisJCQkJ CW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsK IAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMDUyOSw2ICsxMDYxNCwxNCBAQCBBbHRlck93 bmVyU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIE9XTkVSIFRP IFJvbGVTcGVjCiAJCQkJCW4tPm5ld293bmVyID0gJDY7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsK IAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIE9XTkVSIFRPIFJvbGVTcGVjCisJ CQkJeworCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT3duZXJTdG10KTsK KwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0g KE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld293bmVyID0gJDY7CisJCQkJCSQkID0gKE5vZGUgKilu OworCQkJCX0KIAkJOwogCiAKQEAgLTE3OTAwLDYgKzE3OTkzLDggQEAgdW5yZXNlcnZlZF9rZXl3 b3JkOgogCQkJfCBWQUxJREFURQogCQkJfCBWQUxJREFUT1IKIAkJCXwgVkFMVUVfUAorCQkJfCBW QVJJQUJMRQorCQkJfCBWQVJJQUJMRVMKIAkJCXwgVkFSWUlORwogCQkJfCBWRVJTSU9OX1AKIAkJ CXwgVklFVwpAQCAtMTg1NTMsNiArMTg2NDgsOCBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8 IFZBTFVFX1AKIAkJCXwgVkFMVUVTCiAJCQl8IFZBUkNIQVIKKwkJCXwgVkFSSUFCTEUKKwkJCXwg VkFSSUFCTEVTCiAJCQl8IFZBUklBRElDCiAJCQl8IFZFUkJPU0UKIAkJCXwgVkVSU0lPTl9QCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCAxZTE1Y2UxMGI0OC4uNjI5NTQ2OGY4NDkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtMTA0LDYgKzEwNCw3IEBAIHR5cGVk ZWYgc3RydWN0CiAJTGlzdAkgICAqaW5kZXhlczsJCS8qIENSRUFURSBJTkRFWCBpdGVtcyAqLwog CUxpc3QJICAgKnRyaWdnZXJzOwkJLyogQ1JFQVRFIFRSSUdHRVIgaXRlbXMgKi8KIAlMaXN0CSAg ICpncmFudHM7CQkJLyogR1JBTlQgaXRlbXMgKi8KKwlMaXN0CSAgICp2YXJpYWJsZXM7CQkvKiBD UkVBVEUgVkFSSUFCTEUgaXRlbXMgKi8KIH0gQ3JlYXRlU2NoZW1hU3RtdENvbnRleHQ7CiAKIApA QCAtMzg5NSw2ICszODk2LDcgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExp c3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJY3h0LmluZGV4ZXMgPSBO SUw7CiAJY3h0LnRyaWdnZXJzID0gTklMOwogCWN4dC5ncmFudHMgPSBOSUw7CisJY3h0LnZhcmlh YmxlcyA9IE5JTDsKIAogCS8qCiAJICogUnVuIHRocm91Z2ggZWFjaCBzY2hlbWEgZWxlbWVudCBp biB0aGUgc2NoZW1hIGVsZW1lbnQgbGlzdC4gU2VwYXJhdGUKQEAgLTM5NjMsNiArMzk2NSwxNSBA QCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29u c3QgY2hhciAqc2NoZW1hTmFtZSkKIAkJCQljeHQuZ3JhbnRzID0gbGFwcGVuZChjeHQuZ3JhbnRz LCBlbGVtZW50KTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10 OgorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKmVscCA9IChDcmVhdGVTZXNzaW9u VmFyU3RtdCAqKSBlbGVtZW50OworCisJCQkJCXNldFNjaGVtYU5hbWUoY3h0LnNjaGVtYW5hbWUs ICZlbHAtPnZhcmlhYmxlLT5zY2hlbWFuYW1lKTsKKwkJCQkJY3h0LnZhcmlhYmxlcyA9IGxhcHBl bmQoY3h0LnZhcmlhYmxlcywgZWxlbWVudCk7CisJCQkJfQorCQkJCWJyZWFrOworCiAJCQlkZWZh dWx0OgogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJ CSAoaW50KSBub2RlVGFnKGVsZW1lbnQpKTsKQEAgLTM5NzYsNiArMzk4Nyw3IEBAIHRyYW5zZm9y bUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpz Y2hlbWFOYW1lKQogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LmluZGV4ZXMpOwog CXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LnRyaWdnZXJzKTsKIAlyZXN1bHQgPSBs aXN0X2NvbmNhdChyZXN1bHQsIGN4dC5ncmFudHMpOworCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJl c3VsdCwgY3h0LnZhcmlhYmxlcyk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpp bmRleCBmMjhiZjM3MTA1OS4uMjE3YzYwMjg0OTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rj b3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0yMyw2ICsy Myw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfaW5oZXJpdHMuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy90b2FzdGluZy5oIgog I2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIK QEAgLTE4Miw2ICsxODMsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2Rl ICpwYXJzZXRyZWUpCiAJCWNhc2UgVF9DcmVhdGVSYW5nZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVS b2xlU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNjaGVtYVN0bXQ6CisJCWNhc2UgVF9DcmVhdGVTZXNz aW9uVmFyU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNlcVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTdGF0 c1N0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTdG10OgpAQCAtMTM4OSw2ICsxMzkxLDEwIEBAIFByb2Nl c3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJfQogCQkJCWJyZWFrOwogCisJ CQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQkJYWRkcmVzcyA9IENyZWF0ZVZhcmlh YmxlKHBzdGF0ZSwgKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIHBhcnNldHJlZSk7CisJCQkJYnJl YWs7CisKIAkJCQkvKgogCQkJCSAqICoqKioqKioqKioqKiogb2JqZWN0IGNyZWF0aW9uIC8gZGVz dHJ1Y3Rpb24gKioqKioqKioqKioqKioKIAkJCQkgKi8KQEAgLTIzNDEsNiArMjM0Nyw5IEBAIEFs dGVyT2JqZWN0VHlwZUNvbW1hbmRUYWcoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVD VF9TVEFUSVNUSUNfRVhUOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX1NUQVRJU1RJQ1M7CiAJCQli cmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl0YWcgPSBDTURUQUdfQUxURVJfVkFS SUFCTEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCXRhZyA9IENNRFRBR19VTktOT1dOOwog CQkJYnJlYWs7CkBAIC0yNjQ5LDYgKzI2NTgsOSBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBh cnNldHJlZSkKIAkJCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQkJCQl0YWcgPSBDTURU QUdfRFJPUF9TVEFUSVNUSUNTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9WQVJJQUJM RToKKwkJCQkJdGFnID0gQ01EVEFHX0RST1BfVkFSSUFCTEU7CisJCQkJCWJyZWFrOwogCQkJCWRl ZmF1bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpAQCAtMzIyNSw2ICszMjM3 LDEwIEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJfQogCQkJYnJlYWs7 CiAKKwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJdGFnID0gQ01EVEFHX0NSRUFU RV9WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKFdBUk5JTkcsICJ1 bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcocGFyc2V0cmVl KSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvYWNsLmMKaW5kZXggMmE3MTZjYzZiN2YuLjk4NTIyYTQ1NjEyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2FjbC5jCkBAIC04NTEsNiArODUxLDEwIEBAIGFjbGRlZmF1bHQoT2JqZWN0VHlwZSBvYmp0 eXBlLCBPaWQgb3duZXJJZCkKIAkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwogCQkJ b3duZXJfZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQlicmVhazsK KwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hU UzsKKwkJCW93bmVyX2RlZmF1bHQgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFr OwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTog JWQiLCAoaW50KSBvYmp0eXBlKTsKIAkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwkv KiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC05NDgsNiArOTUyLDkgQEAgYWNsZGVmYXVsdF9z cWwoUEdfRlVOQ1RJT05fQVJHUykKIAkJY2FzZSAnVCc6CiAJCQlvYmp0eXBlID0gT0JKRUNUX1RZ UEU7CiAJCQlicmVhazsKKwkJY2FzZSAnVic6CisJCQlvYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxF OworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9i amVjdCB0eXBlIGFiYnJldmlhdGlvbjogJWMiLCBvYmp0eXBlYyk7CiAJfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYwppbmRleCBhODVkYzBkODkxZi4uYjQ2NGE3ZjA5MGEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19zdWJzY3JpcHRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyYW5zZm9ybS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFy aWFibGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVu Y3MuaCIKICNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgpAQCAtMzcxNCwzICszNzE1LDExNSBAQCBn ZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAKIAlyZXR1 cm4gc3VibmFtZTsKIH0KKworLyoJCQkJLS0tLS0tLS0tLSBQR19WQVJJQUJMRSBDQUNIRSAtLS0t LS0tLS0tCQkJCSAqLworCisvKgorICogZ2V0X3Zhcm5hbWVfdmFyaWQKKyAqCQlHaXZlbiBuYW1l IGFuZCBuYW1lc3BhY2Ugb2YgdmFyaWFibGUsIGxvb2sgdXAgdGhlIE9JRC4KKyAqLworT2lkCitn ZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJuYW1lLCBPaWQgdmFybmFtZXNwYWNlKQor eworCXJldHVybiBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQLCBBbnVtX3BnX3Zhcmlh YmxlX29pZCwKKwkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwKKwkJCQkJCSAgIE9i amVjdElkR2V0RGF0dW0odmFybmFtZXNwYWNlKSk7Cit9CisKKy8qCisgKiBnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lCisgKgkJUmV0dXJucyBhIHBhbGxvYydkIGNvcHkgb2YgdGhlIG5hbWUgb2Yg YSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitjaGFyICoKK2dldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJs ZSB2YXJmb3JtOworCWNoYXIJICAgKnZhcm5hbWU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEo VkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxl SXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vz c2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJs ZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lID0gcHN0cmR1cChOYW1lU3RyKHZhcmZvcm0t PnZhcm5hbWUpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZhcm5hbWU7 Cit9CisKKy8qCisgKiBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UKKyAqCQlSZXR1cm5z IHRoZSBwZ19uYW1lc3BhY2UgT0lEIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIHNlc3Npb24gdmFy aWFibGUuCisgKi8KK09pZAorZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2YXJp ZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwlPaWQJ CQl2YXJuYW1lc3BhY2U7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9i amVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQor CQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJp ZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJ dmFybmFtZXNwYWNlID0gdmFyZm9ybS0+dmFybmFtZXNwYWNlOworCisJUmVsZWFzZVN5c0NhY2hl KHR1cCk7CisKKwlyZXR1cm4gdmFybmFtZXNwYWNlOworfQorCisvKgorICogUmV0dXJucyB0aGUg dHlwZSBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworT2lkCitnZXRfc2Vzc2lv bl92YXJpYWJsZV90eXBlKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdf dmFyaWFibGUgdmFyZm9ybTsKKwlPaWQJCQl2YXJ0eXBlOworCisJdHVwID0gU2VhcmNoU3lzQ2Fj aGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBU dXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFy aWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFydHlwZSA9IHZhcmZvcm0tPnZhcnR5cGU7CisK KwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiB2YXJ0eXBlOworfQorCisvKgorICog UmV0dXJucyB0aGUgdHlwZSwgdHlwbW9kIGFuZCBjb2xsaWQgb2YgdGhlIGdpdmVuIHNlc3Npb24g dmFyaWFibGUuCisgKi8KK3ZvaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2Nv bGxpZChPaWQgdmFyaWQsIE9pZCAqdHlwaWQsIGludDMyICp0eXBtb2QsCisJCQkJCQkJCQkJT2lk ICpjb2xsaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07 CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0o dmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAi Y2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKwor CXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkqdHlwaWQg PSB2YXJmb3JtLT52YXJ0eXBlOworCSp0eXBtb2QgPSB2YXJmb3JtLT52YXJ0eXBtb2Q7CisJKmNv bGxpZCA9IHZhcmZvcm0tPnZhcmNvbGxhdGlvbjsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOwor fQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jIGIvc3JjL2Jpbi9wZ19kdW1w L2NvbW1vbi5jCmluZGV4IDliMmQzNGUyODE1Li43MDE4ZWMyNjBjNyAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL2NvbW1vbi5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYwpAQCAt MjQ1LDYgKzI0NSw5IEBAIGdldFNjaGVtYURhdGEoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJs ZXNQdHIpCiAJcGdfbG9nX2luZm8oInJlYWRpbmcgc3Vic2NyaXB0aW9uIG1lbWJlcnNoaXAgb2Yg dGFibGVzIik7CiAJZ2V0U3Vic2NyaXB0aW9uVGFibGVzKGZvdXQpOwogCisJcGdfbG9nX2luZm8o InJlYWRpbmcgdmFyaWFibGVzIik7CisJZ2V0VmFyaWFibGVzKGZvdXQpOworCiAJZnJlZShpbmhp bmZvKTsJCQkJLyogbm90IG5lZWRlZCBhbnkgbG9uZ2VyICovCiAKIAkqbnVtVGFibGVzUHRyID0g bnVtVGFibGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jIGIvc3Jj L2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCmluZGV4IDU2NDk4NTlhYTFlLi41MGRlNWQwZWEyOSAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9kdW1wdXRpbHMuYwpAQCAtNTExLDYgKzUxMSwxMiBAQCBkbyB7IFwKIAkJQ09OVkVSVF9Q UklWKCdyJywgIlNFTEVDVCIpOwogCQlDT05WRVJUX1BSSVYoJ3cnLCAiVVBEQVRFIik7CiAJfQor CWVsc2UgaWYgKHN0cmNtcCh0eXBlLCAiVkFSSUFCTEUiKSA9PSAwIHx8CisJCQkgc3RyY21wKHR5 cGUsICJWQVJJQUJMRVMiKSA9PSAwKQorCXsKKwkJQ09OVkVSVF9QUklWKCdyJywgIlNFTEVDVCIp OworCQlDT05WRVJUX1BSSVYoJ3cnLCAiVVBEQVRFIik7CisJfQogCWVsc2UKIAkJYWJvcnQoKTsK IApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2JhY2t1cC5oCmluZGV4IDY4YWUyOTcwYWRlLi4zZmE2MTA5MGM2NCAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19i YWNrdXAuaApAQCAtMTM0LDEyICsxMzQsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgX3Jlc3RvcmVPcHRp b25zCiAJaW50CQkJc2VsRnVuY3Rpb247CiAJaW50CQkJc2VsVHJpZ2dlcjsKIAlpbnQJCQlzZWxU YWJsZTsKKwlpbnQJCQlzZWxWYXJpYWJsZTsKIAlTaW1wbGVTdHJpbmdMaXN0IGluZGV4TmFtZXM7 CiAJU2ltcGxlU3RyaW5nTGlzdCBmdW5jdGlvbk5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3Qgc2No ZW1hTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBzY2hlbWFFeGNsdWRlTmFtZXM7CiAJU2ltcGxl U3RyaW5nTGlzdCB0cmlnZ2VyTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCB0YWJsZU5hbWVzOwor CVNpbXBsZVN0cmluZ0xpc3QgdmFyaWFibGVOYW1lczsKIAogCWludAkJCXVzZURCOwogCUNvbm5Q YXJhbXMJY3BhcmFtczsJCS8qIHBhcmFtZXRlcnMgdG8gdXNlIGlmIHVzZURCICovCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgYi9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKaW5kZXggOGMyMGMyNjNjNGIuLjZmMDEyYTFiNTU4IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCkBAIC0zMDk4LDYgKzMwOTgsMTQgQEAg X3RvY0VudHJ5UmVxdWlyZWQoVG9jRW50cnkgKnRlLCB0ZVNlY3Rpb24gY3VyU2VjdGlvbiwgQXJj aGl2ZUhhbmRsZSAqQUgpCiAJCQkJCSFzaW1wbGVfc3RyaW5nX2xpc3RfbWVtYmVyKCZyb3B0LT50 cmlnZ2VyTmFtZXMsIHRlLT50YWcpKQogCQkJCQlyZXR1cm4gMDsKIAkJCX0KKwkJCWVsc2UgaWYg KHN0cmNtcCh0ZS0+ZGVzYywgIlZBUklBQkxFIikgPT0gMCkKKwkJCXsKKwkJCQlpZiAoIXJvcHQt PnNlbFZhcmlhYmxlKQorCQkJCQlyZXR1cm4gMDsKKwkJCQlpZiAocm9wdC0+dmFyaWFibGVOYW1l cy5oZWFkICE9IE5VTEwgJiYKKwkJCQkJIXNpbXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQt PnZhcmlhYmxlTmFtZXMsIHRlLT50YWcpKQorCQkJCQlyZXR1cm4gMDsKKwkJCX0KIAkJCWVsc2UK IAkJCQlyZXR1cm4gMDsKIAkJfQpAQCAtMzY0Nyw2ICszNjU1LDcgQEAgX2dldE9iamVjdERlc2Ny aXB0aW9uKFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3QgVG9jRW50cnkgKnRlKQogCQlzdHJjbXAodHlw ZSwgIlRFWFQgU0VBUkNIIERJQ1RJT05BUlkiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVEVY VCBTRUFSQ0ggQ09ORklHVVJBVElPTiIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJUWVBFIikg PT0gMCB8fAorCQlzdHJjbXAodHlwZSwgIlZBUklBQkxFIikgPT0gMCB8fAogCQlzdHJjbXAodHlw ZSwgIlZJRVciKSA9PSAwIHx8CiAJLyogbm9uLXNjaGVtYS1zcGVjaWZpZWQgb2JqZWN0cyAqLwog CQlzdHJjbXAodHlwZSwgIkRBVEFCQVNFIikgPT0gMCB8fApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggYjJmNGVi MmM2ZGUuLjQ3YTg1OWFjMzY1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j CisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTM1OSw2ICszNTksNyBAQCBzdGF0 aWMgdm9pZCBkdW1wUHVibGljYXRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25J bmZvICpwdWJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8pOwogc3RhdGljIHZvaWQg ZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpz dWJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBTdWJzY3JpcHRpb25UYWJsZShBcmNoaXZlICpmb3V0 LCBjb25zdCBTdWJSZWxJbmZvICpzdWJyaW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wVmFyaWFibGUo QXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKTsKIHN0YXRpYyB2b2lk IGR1bXBEYXRhYmFzZShBcmNoaXZlICpmb3V0KTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZUNv bmZpZyhBcmNoaXZlICpBSCwgUFFFeHBCdWZmZXIgb3V0YnVmLAogCQkJCQkJCSAgIGNvbnN0IGNo YXIgKmRibmFtZSwgT2lkIGRib2lkKTsKQEAgLTU0MDMsNiArNTQwNCwxOTAgQEAgZ2V0X25leHRf cG9zc2libGVfZnJlZV9wZ190eXBlX29pZChBcmNoaXZlICpmb3V0LCBQUUV4cEJ1ZmZlciB1cGdy YWRlX3F1ZXJ5KQogCXJldHVybiBuZXh0X3Bvc3NpYmxlX2ZyZWVfb2lkOwogfQogCisvKgorICog Z2V0VmFyaWFibGVzCisgKgkgIGdldCBpbmZvcm1hdGlvbiBhYm91dCB2YXJpYWJsZXMKKyAqLwor dm9pZAorZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7 CisJUEdyZXN1bHQgICAqcmVzOworCVZhcmlhYmxlSW5mbyAqdmFyaW5mbzsKKwlpbnQJCQlpX3Rh Ymxlb2lkOworCWludAkJCWlfb2lkOworCWludAkJCWlfdmFybmFtZTsKKwlpbnQJCQlpX3Zhcm5h bWVzcGFjZTsKKwlpbnQJCQlpX3ZhcnR5cGU7CisJaW50CQkJaV92YXJ0eXBuYW1lOworCWludAkJ CWlfdmFyb3duZXI7CisJaW50CQkJaV92YXJjb2xsYXRpb247CisJaW50CQkJaV92YXJhY2w7CisJ aW50CQkJaV9hY2xkZWZhdWx0OworCWludAkJCWksCisJCQkJbnR1cHM7CisKKwlpZiAoZm91dC0+ cmVtb3RlVmVyc2lvbiA8IDE4MDAwMCkKKwkJcmV0dXJuOworCisJcXVlcnkgPSBjcmVhdGVQUUV4 cEJ1ZmZlcigpOworCisJcmVzZXRQUUV4cEJ1ZmZlcihxdWVyeSk7CisKKwkvKiBnZXQgdGhlIHZh cmlhYmxlcyBpbiBjdXJyZW50IGRhdGFiYXNlICovCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnks CisJCQkJCSAgIlNFTEVDVCB2LnRhYmxlb2lkLCB2Lm9pZCwgdi52YXJuYW1lLFxuIgorCQkJCQkg ICIgICAgICAgdi52YXJuYW1lc3BhY2UsIHYudmFydHlwZSxcbiIKKwkJCQkJICAiICAgICAgIHBn X2NhdGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlwbmFt ZSxcbiIKKwkJCQkJICAiICAgICAgIENBU0UgV0hFTiB2LnZhcmNvbGxhdGlvbiA8PiB0LnR5cGNv bGxhdGlvbiAiCisJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIKKwkJ CQkJICAiICAgICAgICAgICAgRUxTRSAwXG4iCisJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29s bGF0aW9uLFxuIgorCQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2wsXG4iCisJCQkJ CSAgIiAgICAgICBhY2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVmYXVsdFxuIgor CQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdlxuIgorCQkJCQkgICJKT0lOIHBn X2NhdGFsb2cucGdfdHlwZSB0ICIKKwkJCQkJICAiT04gKHYudmFydHlwZSA9IHQub2lkKSIpOwor CisJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNf T0spOworCisJbnR1cHMgPSBQUW50dXBsZXMocmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZudW1i ZXIocmVzLCAidGFibGVvaWQiKTsKKwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlp X3Zhcm5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFybmFtZSIpOworCWlfdmFybmFtZXNwYWNlID0g UFFmbnVtYmVyKHJlcywgInZhcm5hbWVzcGFjZSIpOworCWlfdmFydHlwZSA9IFBRZm51bWJlcihy ZXMsICJ2YXJ0eXBlIik7CisJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5h bWUiKTsKKwlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsK KworCWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKKwlpX3ZhcmFjbCA9 IFBRZm51bWJlcihyZXMsICJ2YXJhY2wiKTsKKwlpX2FjbGRlZmF1bHQgPSBQUWZudW1iZXIocmVz LCAiYWNsZGVmYXVsdCIpOworCisJdmFyaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihW YXJpYWJsZUluZm8pKTsKKworCWZvciAoaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsKKwkJVHlw ZUluZm8gICAqdnR5cGU7CisKKwkJdmFyaW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19WQVJJQUJM RTsKKwkJdmFyaW5mb1tpXS5kb2JqLmNhdElkLnRhYmxlb2lkID0KKwkJCWF0b29pZChQUWdldHZh bHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOworCQl2YXJpbmZvW2ldLmRvYmouY2F0SWQub2lkID0g YXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJnZhcmlu Zm9baV0uZG9iaik7CisJCXZhcmluZm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFs dWUocmVzLCBpLCBpX3Zhcm5hbWUpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLm5hbWVzcGFjZSA9CisJ CQlmaW5kTmFtZXNwYWNlKGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJuYW1lc3BhY2Up KSk7CisKKwkJdmFyaW5mb1tpXS52YXJ0eXBlID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3ZhcnR5cGUpKTsKKwkJdmFyaW5mb1tpXS52YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFs dWUocmVzLCBpLCBpX3ZhcnR5cG5hbWUpKTsKKwkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBh dG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CisKKwkJdmFyaW5mb1tp XS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKKwkJ dmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGks IGlfYWNsZGVmYXVsdCkpOworCQl2YXJpbmZvW2ldLmRhY2wucHJpdnR5cGUgPSAwOworCQl2YXJp bmZvW2ldLmRhY2wuaW5pdHByaXZzID0gTlVMTDsKKwkJdmFyaW5mb1tpXS5yb2xuYW1lID0gZ2V0 Um9sZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyb3duZXIpKTsKKworCQkvKiBkbyBub3Qg dHJ5IHRvIGR1bXAgQUNMIGlmIG5vIEFDTCBleGlzdHMgKi8KKwkJaWYgKCFQUWdldGlzbnVsbChy ZXMsIGksIGlfdmFyYWNsKSkKKwkJCXZhcmluZm9baV0uZG9iai5jb21wb25lbnRzIHw9IERVTVBf Q09NUE9ORU5UX0FDTDsKKworCQlpZiAoc3RybGVuKHZhcmluZm9baV0ucm9sbmFtZSkgPT0gMCkK KwkJCXBnX2xvZ193YXJuaW5nKCJvd25lciBvZiB2YXJpYWJsZSBcIiVzXCIgYXBwZWFycyB0byBi ZSBpbnZhbGlkIiwKKwkJCQkJCSAgIHZhcmluZm9baV0uZG9iai5uYW1lKTsKKworCQkvKiBkZWNp ZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KKwkJc2VsZWN0RHVtcGFibGVPYmplY3Qo Jih2YXJpbmZvW2ldLmRvYmopLCBmb3V0KTsKKworCQl2dHlwZSA9IGZpbmRUeXBlQnlPaWQodmFy aW5mb1tpXS52YXJ0eXBlKTsKKwkJYWRkT2JqZWN0RGVwZW5kZW5jeSgmdmFyaW5mb1tpXS5kb2Jq LCB2dHlwZS0+ZG9iai5kdW1wSWQpOworCX0KKwlQUWNsZWFyKHJlcyk7CisKKwlkZXN0cm95UFFF eHBCdWZmZXIocXVlcnkpOworfQorCisvKgorICogZHVtcFZhcmlhYmxlCisgKgkgIGR1bXAgdGhl IGRlZmluaXRpb24gb2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIHZv aWQKK2R1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmlu Zm8pCit7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCisJUFFFeHBCdWZmZXIg ZGVscTsKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwljaGFyCSAgICpxdWFsdmFybmFtZTsKKwljb25z dCBjaGFyICp2YXJ0eXBuYW1lOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKworCS8qIHNraXAgaWYg bm90IHRvIGJlIGR1bXBlZCAqLworCWlmICghdmFyaW5mby0+ZG9iai5kdW1wIHx8IGRvcHQtPmRh dGFPbmx5KQorCQlyZXR1cm47CisKKwlkZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlxdWVy eSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlxdWFsdmFybmFtZSA9IHBnX3N0cmR1cChmbXRR dWFsaWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CisJdmFydHlwbmFtZSA9IHZhcmluZm8tPnZhcnR5 cG5hbWU7CisJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOworCisJYXBwZW5k UFFFeHBCdWZmZXIoZGVscSwgIkRST1AgVkFSSUFCTEUgJXM7XG4iLAorCQkJCQkgIHF1YWx2YXJu YW1lKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFZBUklBQkxFICVzIEFT ICVzIiwKKwkJCQkJICBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CisKKwlpZiAoT2lkSXNWYWxp ZCh2YXJjb2xsYXRpb24pKQorCXsKKwkJQ29sbEluZm8gICAqY29sbDsKKworCQljb2xsID0gZmlu ZENvbGxhdGlvbkJ5T2lkKHZhcmNvbGxhdGlvbik7CisJCWlmIChjb2xsKQorCQkJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICIgQ09MTEFURSAlcyIsCisJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1w YWJsZShjb2xsKSk7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICI7XG4iKTsKKwor CWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OKQorCQlB cmNoaXZlRW50cnkoZm91dCwgdmFyaW5mby0+ZG9iai5jYXRJZCwgdmFyaW5mby0+ZG9iai5kdW1w SWQsCisJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IHZhcmluZm8tPmRvYmoubmFtZSwKKwkJCQkJ CQkJICAubmFtZXNwYWNlID0gdmFyaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwKKwkJ CQkJCQkJICAub3duZXIgPSB2YXJpbmZvLT5yb2xuYW1lLAorCQkJCQkJCQkgIC5kZXNjcmlwdGlv biA9ICJWQVJJQUJMRSIsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRBLAor CQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnktPmRhdGEsCisJCQkJCQkJCSAgLmRyb3BTdG10 ID0gZGVscS0+ZGF0YSkpOworCisJLyogZHVtcCBjb21tZW50IGlmIGFueSAqLworCWlmICh2YXJp bmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9DT01NRU5UKQorCQlkdW1wQ29tbWVudChm b3V0LCAiVkFSSUFCTEUiLCBxdWFsdmFybmFtZSwKKwkJCQkJTlVMTCwgdmFyaW5mby0+cm9sbmFt ZSwKKwkJCQkJdmFyaW5mby0+ZG9iai5jYXRJZCwgMCwgdmFyaW5mby0+ZG9iai5kdW1wSWQpOwor CisJLyogZHVtcCBBQ0wgaWYgYW55ICovCisJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAmIERVTVBf Q09NUE9ORU5UX0FDTCkKKwl7CisJCWNoYXIJICAgKnF2YXJuYW1lID0gcGdfc3RyZHVwKGZtdElk KHZhcmluZm8tPmRvYmoubmFtZSkpOworCisJCWR1bXBBQ0woZm91dCwgdmFyaW5mby0+ZG9iai5k dW1wSWQsIEludmFsaWREdW1wSWQsICJWQVJJQUJMRSIsCisJCQkJcXZhcm5hbWUsIE5VTEwsCisJ CQkJdmFyaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwgTlVMTCwgdmFyaW5mby0+cm9s bmFtZSwKKwkJCQkmdmFyaW5mby0+ZGFjbCk7CisKKwkJZnJlZShxdmFybmFtZSk7CisJfQorCisJ ZGVzdHJveVBRRXhwQnVmZmVyKGRlbHEpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisK KwlmcmVlKHF1YWx2YXJuYW1lKTsKK30KKwogc3RhdGljIHZvaWQKIGJpbmFyeV91cGdyYWRlX3Nl dF90eXBlX29pZHNfYnlfdHlwZV9vaWQoQXJjaGl2ZSAqZm91dCwKIAkJCQkJCQkJCQkgUFFFeHBC dWZmZXIgdXBncmFkZV9idWZmZXIsCkBAIC05OTc3LDcgKzEwMTYyLDggQEAgZ2V0QWRkaXRpb25h bEFDTHMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19UQUJMRSB8fAog CQkJCQlkb2JqLT5vYmpUeXBlID09IERPX1BST0NMQU5HIHx8CiAJCQkJCWRvYmotPm9ialR5cGUg PT0gRE9fRkRXIHx8Ci0JCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fRk9SRUlHTl9TRVJWRVIpCisJ CQkJCWRvYmotPm9ialR5cGUgPT0gRE9fRk9SRUlHTl9TRVJWRVIgfHwKKwkJCQkJZG9iai0+b2Jq VHlwZSA9PSBET19WQVJJQUJMRSkKIAkJCQl7CiAJCQkJCUR1bXBhYmxlT2JqZWN0V2l0aEFjbCAq ZGFvYmogPSAoRHVtcGFibGVPYmplY3RXaXRoQWNsICopIGRvYmo7CiAKQEAgLTEwNTc2LDYgKzEw NzYyLDkgQEAgZHVtcER1bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0 ICpkb2JqKQogCQljYXNlIERPX1NVQlNDUklQVElPTl9SRUw6CiAJCQlkdW1wU3Vic2NyaXB0aW9u VGFibGUoZm91dCwgKGNvbnN0IFN1YlJlbEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKKwkJY2Fz ZSBET19WQVJJQUJMRToKKwkJCWR1bXBWYXJpYWJsZShmb3V0LCAoVmFyaWFibGVJbmZvICopIGRv YmopOworCQkJYnJlYWs7CiAJCWNhc2UgRE9fUFJFX0RBVEFfQk9VTkRBUlk6CiAJCWNhc2UgRE9f UE9TVF9EQVRBX0JPVU5EQVJZOgogCQkJLyogbmV2ZXIgZHVtcGVkLCBub3RoaW5nIHRvIGRvICov CkBAIC0xNTAyNSw2ICsxNTIxNCw5IEBAIGR1bXBEZWZhdWx0QUNMKEFyY2hpdmUgKmZvdXQsIGNv bnN0IERlZmF1bHRBQ0xJbmZvICpkYWNsaW5mbykKIAkJY2FzZSBERUZBQ0xPQkpfTkFNRVNQQUNF OgogCQkJdHlwZSA9ICJTQ0hFTUFTIjsKIAkJCWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJ QUJMRToKKwkJCXR5cGUgPSAiVkFSSUFCTEVTIjsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJ Lyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJCQlwZ19mYXRhbCgidW5yZWNvZ25pemVkIG9iamVj dCB0eXBlIGluIGRlZmF1bHQgcHJpdmlsZWdlczogJWQiLApAQCAtMTg2NDQsNiArMTg4MzYsNyBA QCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVt T2JqcywKIAkJCWNhc2UgRE9fQ09OVkVSU0lPTjoKIAkJCWNhc2UgRE9fVEFCTEU6CiAJCQljYXNl IERPX1RBQkxFX0FUVEFDSDoKKwkJCWNhc2UgRE9fVkFSSUFCTEU6CiAJCQljYXNlIERPX0FUVFJE RUY6CiAJCQljYXNlIERPX1BST0NMQU5HOgogCQkJY2FzZSBET19DQVNUOgpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5k ZXggOWY5MDdlZDVhZDQuLmFmMTViM2YyMTg4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTUyLDYgKzUyLDcg QEAgdHlwZWRlZiBlbnVtCiAJRE9fVEFCTEUsCiAJRE9fVEFCTEVfQVRUQUNILAogCURPX0FUVFJE RUYsCisJRE9fVkFSSUFCTEUsCiAJRE9fSU5ERVgsCiAJRE9fSU5ERVhfQVRUQUNILAogCURPX1NU QVRTRVhULApAQCAtNjk0LDYgKzY5NSwyMyBAQCB0eXBlZGVmIHN0cnVjdCBfU3ViUmVsSW5mbwog CWNoYXIJICAgKnNyc3VibHNuOwogfSBTdWJSZWxJbmZvOwogCisvKgorICogVGhlIFZhcmlhYmxl SW5mbyBzdHJ1Y3QgaXMgdXNlZCB0byByZXByZXNlbnQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAqLwor dHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5mbworeworCUR1bXBhYmxlT2JqZWN0IGRvYmo7CisJ RHVtcGFibGVBY2wgZGFjbDsKKwlPaWQJCQl2YXJ0eXBlOworCWNoYXIJICAgKnZhcnR5cG5hbWU7 CisJY2hhcgkgICAqdmFyYWNsOworCWNoYXIJICAgKnJ2YXJhY2w7CisJY2hhcgkgICAqaW5pdHZh cmFjbDsKKwljaGFyCSAgICppbml0cnZhcmFjbDsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisJY29u c3QgY2hhciAqcm9sbmFtZTsJCS8qIG5hbWUgb2Ygb3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLwor fSBWYXJpYWJsZUluZm87CisKIC8qCiAgKgljb21tb24gdXRpbGl0eSBmdW5jdGlvbnMKICAqLwpA QCAtNzc3LDUgKzc5NSw2IEBAIGV4dGVybiB2b2lkIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hp dmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sCiAJCQkJCQkJCSBpbnQgbnVtVGFibGVzKTsK IGV4dGVybiB2b2lkIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCk7CiBleHRlcm4gdm9p ZCBnZXRTdWJzY3JpcHRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCk7CitleHRlcm4gdm9pZCBnZXRW YXJpYWJsZXMoQXJjaGl2ZSAqZm91dCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQR19EVU1QX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRleCAzYzhmMmViODA4ZC4uY2EzMjMxNzFhYTggMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTc3LDYgKzc3LDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlv cml0aWVzCiAJUFJJT19EVU1NWV9UWVBFLAogCVBSSU9fQVRUUkRFRiwKIAlQUklPX0xBUkdFX09C SkVDVCwKKwlQUklPX1ZBUklBQkxFLAogCVBSSU9fUFJFX0RBVEFfQk9VTkRBUlksCQkvKiBib3Vu ZGFyeSEgKi8KIAlQUklPX1RBQkxFX0RBVEEsCiAJUFJJT19TRVFVRU5DRV9TRVQsCkBAIC0xMTgs NiArMTE5LDcgQEAgc3RhdGljIGNvbnN0IGludCBkYk9iamVjdFR5cGVQcmlvcml0eVtdID0KIAlb RE9fVEFCTEVdID0gUFJJT19UQUJMRSwKIAlbRE9fVEFCTEVfQVRUQUNIXSA9IFBSSU9fVEFCTEVf QVRUQUNILAogCVtET19BVFRSREVGXSA9IFBSSU9fQVRUUkRFRiwKKwlbRE9fVkFSSUFCTEVdID0g UFJJT19WQVJJQUJMRSwKIAlbRE9fSU5ERVhdID0gUFJJT19JTkRFWCwKIAlbRE9fSU5ERVhfQVRU QUNIXSA9IFBSSU9fSU5ERVhfQVRUQUNILAogCVtET19TVEFUU0VYVF0gPSBQUklPX1NUQVRTRVhU LApAQCAtMTUwMCw2ICsxNTAyLDEwIEBAIGRlc2NyaWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVP YmplY3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJQT1NULURBVEEgQk9V TkRBUlkgIChJRCAlZCkiLAogCQkJCQkgb2JqLT5kdW1wSWQpOwogCQkJcmV0dXJuOworCQljYXNl IERPX1ZBUklBQkxFOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlZBUklBQkxF ICVzICAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPm5hbWUsIG9iai0+ZHVtcElkLCBvYmot PmNhdElkLm9pZCk7CiAJfQogCS8qIHNob3VsZG4ndCBnZXQgaGVyZSAqLwogCXNucHJpbnRmKGJ1 ZiwgYnVmc2l6ZSwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs IGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggYWM2MDgyOWQ2ODYuLjBh MjI5NWYwNTIxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAor KysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNzg5LDYgKzc4OSwxNiBA QCBteSAldGVzdHMgPSAoCiAJCXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0sCiAJICB9LAog CisJJ0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9y b2xlIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDJworCSAgPT4geworCQljcmVh dGVfb3JkZXIgPT4gNTYsCisJCWNyZWF0ZV9zcWwgICA9PiAnQUxURVIgREVGQVVMVCBQUklWSUxF R0VTIEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklB QkxFUyBUTyBQVUJMSUM7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQUxURVIgREVGQVVMVCBQ UklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9O IFZBUklBQkxFUyBUTyBQVUJMSUM7XEUveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0 aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAxLCB9LAor CSAgfSwKKwogCSdBTFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUnID0+IHsKIAkJcmVn ZXhwID0+IHFyL14KIAkJCVxRQUxURVIgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIFdJVEgg XEUKQEAgLTE2NzQsNiArMTY4NCwyMyBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdD T01NRU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29y ZGVyID0+IDcxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlMQorCQkJCQkgICBJUyBcJ2NvbW1lbnQgb24gdmFyaWFibGVcJzsnLAorCQly ZWdleHAgPT4KKwkJICBxci9eXFFDT01NRU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJs ZTEgSVMgJ2NvbW1lbnQgb24gdmFyaWFibGUnO1xFL20sCisJCWxpa2UgPT4geworCQkJJWZ1bGxf cnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhICAg ICA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1h ID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJ J0NPUFkgdGVzdF90YWJsZScgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNCwKIAkJY3JlYXRlX3Nx bCA9PiAnSU5TRVJUIElOVE8gZHVtcF90ZXN0LnRlc3RfdGFibGUgKGNvbDEpICcKQEAgLTM5MzIs NiArMzk1OSwyNCBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFC TEUgdGVzdF92YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxs ICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQlj cmVhdGVfc3FsICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIEFTIGlu dGVnZXI7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVz dC52YXJpYWJsZTEgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5z LAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwK KwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAor CQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUg VklFVyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3Fs ID0+ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CkBAIC00Mzk0LDYgKzQ0MzksMjUg QEAgbXkgJXRlc3RzID0gKAogCQlsaWtlID0+IHt9LAogCX0sCiAKKwknR1JBTlQgU0VMRUNUIE9O IFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDcz LAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rl c3QudmFyaWFibGUxIFRPIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKKwkJcmVnZXhwID0+IHFy L14KKwkJCVxRR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8g cmVncmVzc19kdW1wX3Rlc3Rfcm9sZTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxs X3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9 PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+ IDEsCisJCQlub19wcml2cyAgICAgICAgICAgICAgICAgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFz dXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknUkVGUkVTSCBNQVRFUklBTElaRUQgVklF VyBtYXR2aWV3JyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eXFFSRUZSRVNIIE1BVEVSSUFMSVpFRCBW SUVXIGR1bXBfdGVzdC5tYXR2aWV3O1xFL20sCiAJCWxpa2UgPT4KZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDFmM2NiYjEx ZjdjLi43NTk0ZjEwMTBhNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysg Yi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC0xMDc3LDYgKzEwNzcsOSBAQCBleGVjX2NvbW1h bmRfZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3Qg Y2hhciAqY21kKQogCQkJCQkJYnJlYWs7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSAnVic6 CQkJLyogVmFyaWFibGVzICovCisJCQkJc3VjY2VzcyA9IGxpc3RWYXJpYWJsZXMocGF0dGVybiwg c2hvd192ZXJib3NlKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ3gnOgkJCS8qIEV4dGVuc2lvbnMg Ki8KIAkJCQlpZiAoc2hvd192ZXJib3NlKQogCQkJCQlzdWNjZXNzID0gbGlzdEV4dGVuc2lvbkNv bnRlbnRzKHBhdHRlcm4pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAzN2I0M2ZiMTIyMS4uZTgxMWNjZWFhZTUgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCkBAIC01MTUxLDYgKzUxNTEsMTAyIEBAIGVycm9yX3JldHVybjoKIAlyZXR1cm4gZmFs c2U7CiB9CiAKKy8qCisgKiBcZFYKKyAqCisgKiBsaXN0VmFyaWFibGVzKCkKKyAqLworYm9vbAor bGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCit7CisJUFFF eHBCdWZmZXJEYXRhIGJ1ZjsKKwlQR3Jlc3VsdCAgICpyZXM7CisJcHJpbnRRdWVyeU9wdCBteW9w dCA9IHBzZXQucG9wdDsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0g e2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKworCWlm IChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQorCXsKKwkJY2hhcgkJc3ZlcmJ1ZlszMl07CisKKwkJ cGdfbG9nX2Vycm9yKCJUaGUgc2VydmVyICh2ZXJzaW9uICVzKSBkb2VzIG5vdCBzdXBwb3J0IHNl c3Npb24gdmFyaWFibGVzLiIsCisJCQkJCSBmb3JtYXRQR1ZlcnNpb25OdW1iZXIocHNldC5zdmVy c2lvbiwgZmFsc2UsCisJCQkJCQkJCQkJICAgc3ZlcmJ1Ziwgc2l6ZW9mKHN2ZXJidWYpKSk7CisJ CXJldHVybiB0cnVlOworCX0KKworCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworCXByaW50ZlBR RXhwQnVmZmVyKCZidWYsCisJCQkJCSAgIlNFTEVDVCBuLm5zcG5hbWUgYXMgXCIlc1wiLFxuIgor CQkJCQkgICIgIHYudmFybmFtZSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5m b3JtYXRfdHlwZSh2LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAg IiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdf Y2F0YWxvZy5wZ190eXBlIGJ0XG4iCisJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xs YXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlw Y29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNl cmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU2No ZW1hIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJCQkJCSAgZ2V0dGV4dF9ub29w KCJUeXBlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKSwKKwkJCQkJICBnZXR0 ZXh0X25vb3AoIk93bmVyIikpOworCisJaWYgKHZlcmJvc2UpCisJeworCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cigmYnVmLCAiLFxuICAiKTsKKwkJcHJpbnRBQ0xDb2x1bW4oJmJ1ZiwgInYudmFyYWNs Iik7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsXG4gIHBnX2NhdGFsb2cu b2JqX2Rlc2NyaXB0aW9uKHYub2lkLCAncGdfdmFyaWFibGUnKSBBUyBcIiVzXCIiLAorCQkJCQkJ ICBnZXR0ZXh0X25vb3AoIkRlc2NyaXB0aW9uIikpOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVy U3RyKCZidWYsCisJCQkJCQkgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHYiCisJCQkJ CQkgIlxuICAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9 IHYudmFybmFtZXNwYWNlIik7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5XSEVS RSB0cnVlXG4iKTsKKwlpZiAoIXBhdHRlcm4pCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs ICIgICAgICBBTkQgbi5uc3BuYW1lIDw+ICdwZ19jYXRhbG9nJ1xuIgorCQkJCQkJCSAiICAgICAg QU5EIG4ubnNwbmFtZSA8PiAnaW5mb3JtYXRpb25fc2NoZW1hJ1xuIik7CisKKwlpZiAoIXZhbGlk YXRlU1FMTmFtZVBhdHRlcm4oJmJ1ZiwgcGF0dGVybiwgdHJ1ZSwgZmFsc2UsCisJCQkJCQkJCSJu Lm5zcG5hbWUiLCAidi52YXJuYW1lIiwgTlVMTCwKKwkJCQkJCQkJInBnX2NhdGFsb2cucGdfdmFy aWFibGVfaXNfdmlzaWJsZSh2Lm9pZCkiLAorCQkJCQkJCQlOVUxMLCAzKSkKKwkJcmV0dXJuIGZh bHNlOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDEsMjsiKTsKKwor CXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJaWYg KCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCS8qCisJICogTW9zdCBmdW5jdGlvbnMgaW4gdGhp cyBmaWxlIGFyZSBjb250ZW50IHRvIHByaW50IGFuIGVtcHR5IHRhYmxlIHdoZW4KKwkgKiB0aGVy ZSBhcmUgbm8gbWF0Y2hpbmcgb2JqZWN0cy4gIFdlIGludGVudGlvbmFsbHkgZGV2aWF0ZSBmcm9t IHRoYXQKKwkgKiBoZXJlLCBidXQgb25seSBpbiAhcXVpZXQgbW9kZSwgZm9yIGhpc3RvcmljYWwg cmVhc29ucy4KKwkgKi8KKwlpZiAoUFFudHVwbGVzKHJlcykgPT0gMCAmJiAhcHNldC5xdWlldCkK Kwl7CisJCWlmIChwYXR0ZXJuKQorCQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHNl c3Npb24gdmFyaWFibGUgbmFtZWQgXCIlc1wiLiIsCisJCQkJCQkgcGF0dGVybik7CisJCWVsc2UK KwkJCXBnX2xvZ19lcnJvcigiRGlkIG5vdCBmaW5kIGFueSBzZXNzaW9uIHZhcmlhYmxlcy4iKTsK Kwl9CisJZWxzZQorCXsKKwkJbXlvcHQubnVsbFByaW50ID0gTlVMTDsKKwkJbXlvcHQudGl0bGUg PSBfKCJMaXN0IG9mIHZhcmlhYmxlcyIpOworCQlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1 ZTsKKwkJbXlvcHQudHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKKwkJbXlv cHQubl90cmFuc2xhdGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsKKwor CQlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9n ZmlsZSk7CisJfQorCisJUFFjbGVhcihyZXMpOworCXJldHVybiB0cnVlOworfQogCiAvKgogICog XGRGcApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmggYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuaAppbmRleCAyNzNmOTc0NTM4ZS4uNGUxNWExODBlYTYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5oCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCkBAIC0x NDksNCArMTQ5LDcgQEAgZXh0ZXJuIGJvb2wgbGlzdE9wRmFtaWx5RnVuY3Rpb25zKGNvbnN0IGNo YXIgKmFjY2Vzc19tZXRob2RfcGF0dGVybiwKIC8qIFxkbCBvciBcbG9fbGlzdCAqLwogZXh0ZXJu IGJvb2wgbGlzdExhcmdlT2JqZWN0cyhib29sIHZlcmJvc2UpOwogCisvKiBcZFYgKi8KK2V4dGVy biBib29sIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2YXJib3NlKTsK KwogI2VuZGlmCQkJCQkJCS8qIERFU0NSSUJFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC9oZWxwLmMgYi9zcmMvYmluL3BzcWwvaGVscC5jCmluZGV4IDAyZmU1ZDE1MWUwLi4zMTdiYzJl YWI2ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2hlbHAuYworKysgYi9zcmMvYmluL3BzcWwv aGVscC5jCkBAIC0yNjUsNiArMjY1LDcgQEAgc2xhc2hVc2FnZSh1bnNpZ25lZCBzaG9ydCBpbnQg cGFnZXIpCiAJSEVMUDAoIiAgXFxkVFtTK10gW1BBVFRFUk5dICAgICAgbGlzdCBkYXRhIHR5cGVz XG4iKTsKIAlIRUxQMCgiICBcXGR1W1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IHJvbGVzXG4iKTsK IAlIRUxQMCgiICBcXGR2W1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IHZpZXdzXG4iKTsKKwlIRUxQ MCgiICBcXGRWICAgICBbUEFUVEVSTl0gICAgICBsaXN0IHNlc3Npb24gdmFyaWFibGVzXG4iKTsK IAlIRUxQMCgiICBcXGR4WytdICBbUEFUVEVSTl0gICAgICBsaXN0IGV4dGVuc2lvbnNcbiIpOwog CUhFTFAwKCIgIFxcZFggICAgIFtQQVRURVJOXSAgICAgIGxpc3QgZXh0ZW5kZWQgc3RhdGlzdGlj c1xuIik7CiAJSEVMUDAoIiAgXFxkeVsrXSAgW1BBVFRFUk5dICAgICAgbGlzdCBldmVudCB0cmln Z2Vyc1xuIik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggMWJlMDA1NmFmNzMuLmViYjA0Y2Rl YWVhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC05NzAsNiArOTcwLDEzIEBAIHN0YXRpYyBj b25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfdHJpZ2dlcl9vZl90YWJsZSA9IHsKIAkucmVmbmFt ZXNwYWNlID0gImMxLnJlbG5hbWVzcGFjZSIsCiB9OwogCitzdGF0aWMgY29uc3QgU2NoZW1hUXVl cnkgUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzID0geworCS5taW5fc2VydmVyX3ZlcnNpb24g PSAxODAwMDAsCisJLmNhdG5hbWUgPSAicGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2IiwKKwkudmlz Y29uZGl0aW9uID0gInBnX2NhdGFsb2cucGdfdmFyaWFibGVfaXNfdmlzaWJsZSh2Lm9pZCkiLAor CS5uYW1lc3BhY2UgPSAidi52YXJuYW1lc3BhY2UiLAorCS5yZXN1bHQgPSAidi52YXJuYW1lIiwK K307CiAKIC8qCiAgKiBRdWVyaWVzIHRvIGdldCBsaXN0cyBvZiBuYW1lcyBvZiB2YXJpb3VzIGtp bmRzIG9mIHRoaW5ncywgcG9zc2libHkKQEAgLTEzMDQsNiArMTMxMSw3IEBAIHN0YXRpYyBjb25z dCBwZ3NxbF90aGluZ190IHdvcmRzX2FmdGVyX2NyZWF0ZVtdID0gewogCQkJCQkJCQkJCQkJCQkJ CQkJCSAqIFRBQkxFIC4uLiAqLwogCXsiVVNFUiIsIFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzLCBO VUxMLCBOVUxMLCBLZXl3b3Jkc19mb3JfdXNlcl90aGluZ30sCiAJeyJVU0VSIE1BUFBJTkcgRk9S IiwgTlVMTCwgTlVMTCwgTlVMTH0sCisJeyJWQVJJQUJMRSIsIE5VTEwsIE5VTEwsICZRdWVyeV9m b3JfbGlzdF9vZl92YXJpYWJsZXN9LAogCXsiVklFVyIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3Jf bGlzdF9vZl92aWV3c30sCiAJe05VTEx9CQkJCQkJLyogZW5kIG9mIGxpc3QgKi8KIH07CkBAIC0x ODY1LDcgKzE4NzMsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0 YXJ0LCBpbnQgZW5kKQogCQkiXFxkRiIsICJcXGRGZCIsICJcXGRGcCIsICJcXGRGdCIsICJcXGRn IiwgIlxcZGkiLCAiXFxkbCIsICJcXGRMIiwKIAkJIlxcZG0iLCAiXFxkbiIsICJcXGRvIiwgIlxc ZE8iLCAiXFxkcCIsICJcXGRQIiwgIlxcZFBpIiwgIlxcZFB0IiwKIAkJIlxcZHJkcyIsICJcXGRy ZyIsICJcXGRScyIsICJcXGRScCIsICJcXGRzIiwKLQkJIlxcZHQiLCAiXFxkVCIsICJcXGR2Iiwg IlxcZHUiLCAiXFxkeCIsICJcXGRYIiwgIlxcZHkiLAorCQkiXFxkdCIsICJcXGRUIiwgIlxcZHYi LCAiXFxkdSIsICJcXGR4IiwgIlxcZFgiLCAiXFxkeSIsICJcXGRWIiwKIAkJIlxcZWNobyIsICJc XGVkaXQiLCAiXFxlZiIsICJcXGVsaWYiLCAiXFxlbHNlIiwgIlxcZW5jb2RpbmciLAogCQkiXFxl bmRpZiIsICJcXGVycnZlcmJvc2UiLCAiXFxldiIsCiAJCSJcXGYiLApAQCAtMjU1Niw2ICsyNTY0 LDkgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCQkJCQkJICAi QUxMIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiU1lTVEVNIiwgIlNFVCIsIE1hdGNo QW55KSkKIAkJQ09NUExFVEVfV0lUSCgiVE8iKTsKKwkvKiBBTFRFUiBWQVJJQUJMRSA8bmFtZT4g Ki8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwkJ Q09NUExFVEVfV0lUSCgiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKIAkv KiBBTFRFUiBWSUVXIDxuYW1lPiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlZJRVci LCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkFMVEVSIENPTFVNTiIsICJPV05FUiBUTyIs ICJSRU5BTUUiLCAiUkVTRVQiLCAiU0VUIik7CkBAIC0zMTIxLDcgKzMxMzIsNyBAQCBtYXRjaF9w cmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJICAiUk9VVElORSIsICJSVUxFIiwg IlNDSEVNQSIsICJTRVFVRU5DRSIsICJTRVJWRVIiLAogCQkJCQkgICJTVEFUSVNUSUNTIiwgIlNV QlNDUklQVElPTiIsICJUQUJMRSIsCiAJCQkJCSAgIlRBQkxFU1BBQ0UiLCAiVEVYVCBTRUFSQ0gi LCAiVFJBTlNGT1JNIEZPUiIsCi0JCQkJCSAgIlRSSUdHRVIiLCAiVFlQRSIsICJWSUVXIik7CisJ CQkJCSAgIlRSSUdHRVIiLCAiVFlQRSIsICJWQVJJQUJMRSIsICJWSUVXIik7CiAJZWxzZSBpZiAo TWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJBQ0NFU1MiLCAiTUVUSE9EIikpCiAJCUNPTVBMRVRF X1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfYWNjZXNzX21ldGhvZHMpOwogCWVsc2UgaWYg KE1hdGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiQ09OU1RSQUlOVCIpKQpAQCAtMzkzMSw2ICszOTQy LDEzIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQllbHNlIGlmIChU YWlsTWF0Y2hlcygiPSIsIE1hdGNoQW55RXhjZXB0KCIqKSIpKSkKIAkJCUNPTVBMRVRFX1dJVEgo IiwiLCAiKSIpOwogCX0KKy8qIENSRUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUg Q1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCisJLyogQ29tcGxldGUgQ1JFQVRF IFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFU RSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiQVMiKTsKKwllbHNl IGlmIChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiLCBNYXRjaEFueSwgIkFTIikpCisJCS8qIENvbXBs ZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyB0eXBlcyAqLworCQlDT01QTEVURV9X SVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMpOwogCiAvKiBDUkVB VEUgVklFVyAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxN YXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFsgT1IgUkVQTEFDRSBdIFZJRVcgPG5hbWU+ IHdpdGggQVMgb3IgV0lUSCAqLwpAQCAtNDE5Myw2ICs0MjExLDEyIEBAIG1hdGNoX3ByZXZpb3Vz X3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVFJBTlNG T1JNIiwgIkZPUiIsIE1hdGNoQW55LCAiTEFOR1VBR0UiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRF X1dJVEgoIkNBU0NBREUiLCAiUkVTVFJJQ1QiKTsKIAorCS8qIERST1AgVkFSSUFCTEUgKi8KKwll bHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlZBUklBQkxFIikpCisJCUNPTVBMRVRFX1dJVEhfU0NI RU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CisJZWxzZSBpZiAoTWF0Y2hl cygiRFJPUCIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FE RSIsICJSRVNUUklDVCIpOworCiAvKiBFWEVDVVRFICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRVhF Q1VURSIpKQogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ByZXBhcmVk X3N0YXRlbWVudHMpOwpAQCAtNDM5NCw3ICs0NDE4LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMo aW50IHBhdHRlcm5faWQsCiAJCSAqIG9iamVjdHMgc3VwcG9ydGVkLgogCQkgKi8KIAkJaWYgKEhl YWRNYXRjaGVzKCJBTFRFUiIsICJERUZBVUxUIiwgIlBSSVZJTEVHRVMiKSkKLQkJCUNPTVBMRVRF X1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBST0NFRFVSRVMiLCAi Uk9VVElORVMiLCAiVFlQRVMiLCAiU0NIRU1BUyIpOworCQkJQ09NUExFVEVfV0lUSCgiVEFCTEVT IiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIsICJU WVBFUyIsICJTQ0hFTUFTIiwgIlZBUklBQkxFUyIpOwogCQllbHNlCiAJCQlDT01QTEVURV9XSVRI X1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX2dyYW50YWJsZXMsCiAJCQkJCQkJ CQkJCSJBTEwgRlVOQ1RJT05TIElOIFNDSEVNQSIsCkBAIC00NDE2LDcgKzQ0NDAsOCBAQCBtYXRj aF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkJIlNFUVVFTkNFIiwK IAkJCQkJCQkJCQkJIlRBQkxFIiwKIAkJCQkJCQkJCQkJIlRBQkxFU1BBQ0UiLAotCQkJCQkJCQkJ CQkiVFlQRSIpOworCQkJCQkJCQkJCQkiVFlQRSIsCisJCQkJCQkJCQkJCSJWQVJJQUJMRSIpOwog CX0KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JBTlR8UkVWT0tFIiwgTWF0Y2hBbnksICJPTiIs ICJBTEwiKSB8fAogCQkJIFRhaWxNYXRjaGVzKCJSRVZPS0UiLCAiR1JBTlQiLCAiT1BUSU9OIiwg IkZPUiIsIE1hdGNoQW55LCAiT04iLCAiQUxMIikpCkBAIC00NDI0LDcgKzQ0NDksOCBAQCBtYXRj aF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJICAiUFJPQ0VEVVJFUyBJTiBT Q0hFTUEiLAogCQkJCQkgICJST1VUSU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkgICJTRVFVRU5DRVMg SU4gU0NIRU1BIiwKLQkJCQkJICAiVEFCTEVTIElOIFNDSEVNQSIpOworCQkJCQkgICJUQUJMRVMg SU4gU0NIRU1BIiwKKwkJCQkJICAiVkFSSUFCTEVTIElOIFNDSEVNQSIpOwogCWVsc2UgaWYgKFRh aWxNYXRjaGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9OIiwgIkZPUkVJR04iKSB8fAog CQkJIFRhaWxNYXRjaGVzKCJSRVZPS0UiLCAiR1JBTlQiLCAiT1BUSU9OIiwgIkZPUiIsIE1hdGNo QW55LCAiT04iLCAiRk9SRUlHTiIpKQogCQlDT01QTEVURV9XSVRIKCJEQVRBIFdSQVBQRVIiLCAi U0VSVkVSIik7CkBAIC00NDYwLDYgKzQ0ODYsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQg cGF0dGVybl9pZCwKIAkJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFi bGVzcGFjZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVFlQRSIpKQogCQkJQ09NUExFVEVf V0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzKTsKKwkJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIikpCisJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVS WShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygi R1JBTlQiLCBNYXRjaEFueSwgTWF0Y2hBbnksIE1hdGNoQW55KSkKIAkJCUNPTVBMRVRFX1dJVEgo IlRPIik7CiAJCWVsc2UKQEAgLTQ3NjIsNyArNDc5MCw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRz KGludCBwYXR0ZXJuX2lkLAogCiAvKiBQUkVQQVJFIHh4IEFTICovCiAJZWxzZSBpZiAoTWF0Y2hl cygiUFJFUEFSRSIsIE1hdGNoQW55LCAiQVMiKSkKLQkJQ09NUExFVEVfV0lUSCgiU0VMRUNUIiwg IlVQREFURSIsICJJTlNFUlQgSU5UTyIsICJERUxFVEUgRlJPTSIpOworCQlDT01QTEVURV9XSVRI KCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VSVCBJTlRPIiwgIkRFTEVURSBGUk9NIiwgIkxFVCIp OwogCiAvKgogICogUFJFUEFSRSBUUkFOU0FDVElPTiBpcyBtaXNzaW5nIG9uIHB1cnBvc2UuIEl0 J3MgaW50ZW5kZWQgZm9yIHRyYW5zYWN0aW9uCkBAIC01MjI4LDYgKzUyNTYsOCBAQCBtYXRjaF9w cmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl9yb2xlcyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkdioiKSkK IAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3MpOwor CWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZFYqIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1B X1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNo ZXNDUygiXFxkeCoiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9l eHRlbnNpb25zKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGRYKiIpKQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFr ZWZpbGUKaW5kZXggMTY3ZjkxYTZlM2YuLjUwN2YzODA4MjE4IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUK QEAgLTgxLDcgKzgxLDggQEAgQ0FUQUxPR19IRUFERVJTIDo9IFwKIAlwZ19wdWJsaWNhdGlvbl9u YW1lc3BhY2UuaCBcCiAJcGdfcHVibGljYXRpb25fcmVsLmggXAogCXBnX3N1YnNjcmlwdGlvbi5o IFwKLQlwZ19zdWJzY3JpcHRpb25fcmVsLmgKKwlwZ19zdWJzY3JpcHRpb25fcmVsLmggXAorCXBn X3ZhcmlhYmxlLmgKIAogR0VORVJBVEVEX0hFQURFUlMgOj0gJChDQVRBTE9HX0hFQURFUlM6JS5o PSVfZC5oKQogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCBmNzBkMWRhYmE1Mi4uNmVlYzc5 ZDJlZWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZApAQCAtNjksNiArNjksNyBAQCBjYXRhbG9n X2hlYWRlcnMgPSBbCiAgICdwZ19wdWJsaWNhdGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRp b24uaCcsCiAgICdwZ19zdWJzY3JpcHRpb25fcmVsLmgnLAorICAncGdfdmFyaWFibGUuaCcsCiBd CiAKICMgVGhlIC5kYXQgZmlsZXMgd2UgbmVlZCBjYW4ganVzdCBiZSBsaXN0ZWQgYWxwaGFiZXRp Y2FsbHkuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAppbmRleCA4ZDQzNGQ0OGQ1Ny4uMThlYTZhYzgz YTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaApAQCAtOTcsNiArOTcsOCBAQCBleHRlcm4gT2lk CVR5cGVuYW1lR2V0VHlwaWQoY29uc3QgY2hhciAqdHlwbmFtZSk7CiBleHRlcm4gT2lkCVR5cGVu YW1lR2V0VHlwaWRFeHRlbmRlZChjb25zdCBjaGFyICp0eXBuYW1lLCBib29sIHRlbXBfb2spOwog ZXh0ZXJuIGJvb2wgVHlwZUlzVmlzaWJsZShPaWQgdHlwaWQpOwogCitleHRlcm4gYm9vbCBWYXJp YWJsZUlzVmlzaWJsZShPaWQgdmFyaWQpOworCiBleHRlcm4gRnVuY0NhbmRpZGF0ZUxpc3QgRnVu Y25hbWVHZXRDYW5kaWRhdGVzKExpc3QgKm5hbWVzLAogCQkJCQkJCQkJCQkgICBpbnQgbmFyZ3Ms IExpc3QgKmFyZ25hbWVzLAogCQkJCQkJCQkJCQkgICBib29sIGV4cGFuZF92YXJpYWRpYywKQEAg LTE2OSw2ICsxNzEsOCBAQCBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkdldFNlYXJjaFBhdGhN YXRjaGVyKE1lbW9yeUNvbnRleHQgY29udGV4dCk7CiBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIg KkNvcHlTZWFyY2hQYXRoTWF0Y2hlcihTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRlcm4g Ym9vbCBTZWFyY2hQYXRoTWF0Y2hlc0N1cnJlbnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0Y2hl ciAqcGF0aCk7CiAKK2V4dGVybiBPaWQJTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFt ZSwgY29uc3QgY2hhciAqdmFybmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKKwogZXh0ZXJuIE9pZAln ZXRfY29sbGF0aW9uX29pZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVy biBPaWQJZ2V0X2NvbnZlcnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7 CiBleHRlcm4gT2lkCUZpbmREZWZhdWx0Q29udmVyc2lvblByb2MoaW50MzIgZm9yX2VuY29kaW5n LCBpbnQzMiB0b19lbmNvZGluZyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2RlZmF1bHRfYWNsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKaW5k ZXggZDI3MmNkZjA4YjQuLjUyOWQ1M2M2YmI2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2RlZmF1bHRfYWNsLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0 X2FjbC5oCkBAIC02OCw2ICs2OCw3IEBAIE1BS0VfU1lTQ0FDSEUoREVGQUNMUk9MRU5TUE9CSiwg cGdfZGVmYXVsdF9hY2xfcm9sZV9uc3Bfb2JqX2luZGV4LCA4KTsKICNkZWZpbmUgREVGQUNMT0JK X0ZVTkNUSU9OCQknZicgLyogZnVuY3Rpb24gKi8KICNkZWZpbmUgREVGQUNMT0JKX1RZUEUJCQkn VCcgLyogdHlwZSAqLwogI2RlZmluZSBERUZBQ0xPQkpfTkFNRVNQQUNFCQknbicgLyogbmFtZXNw YWNlICovCisjZGVmaW5lIERFRkFDTE9CSl9WQVJJQUJMRQkJJ1YnIC8qIHZhcmlhYmxlICovCiAK ICNlbmRpZgkJCQkJCQkvKiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUgKi8KIApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKaW5kZXggZjIzMzIxYTQxZjEuLmQ2NzZlZTgzZTQxIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKQEAgLTY1NTYsNiArNjU1Niw5IEBACiAgIHByb25hbWUgPT4gJ3BnX2NvbGxhdGlv bl9pc192aXNpYmxlJywgcHJvY29zdCA9PiAnMTAnLCBwcm92b2xhdGlsZSA9PiAncycsCiAgIHBy b3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKICAgcHJvc3JjID0+ICdw Z19jb2xsYXRpb25faXNfdmlzaWJsZScgfSwKK3sgb2lkID0+ICc5MjIxJywgZGVzY3IgPT4gJ2lz IHNlc3Npb24gdmFyaWFibGUgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8nLAorICBwcm9uYW1lID0+ ICdwZ192YXJpYWJsZV9pc192aXNpYmxlJywgcHJvY29zdCA9PiAnMTAnLCBwcm92b2xhdGlsZSA9 PiAncycsCisgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywgcHJv c3JjID0+ICdwZ192YXJpYWJsZV9pc192aXNpYmxlJyB9LAogCiB7IG9pZCA9PiAnMjg1NCcsIGRl c2NyID0+ICdnZXQgT0lEIG9mIGN1cnJlbnQgc2Vzc2lvblwncyB0ZW1wIHNjaGVtYSwgaWYgYW55 JywKICAgcHJvbmFtZSA9PiAncGdfbXlfdGVtcF9zY2hlbWEnLCBwcm92b2xhdGlsZSA9PiAncycs IHByb3BhcmFsbGVsID0+ICdyJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf dmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzgxMGUwNDBmMjgKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTAsMCArMSw4MSBAQAor LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfdmFyaWFibGUuaAorICoJICBkZWZpbml0aW9u IG9mIHNlc3Npb24gdmFyaWFibGVzIHN5c3RlbSBjYXRhbG9nIChwZ192YXJpYWJsZXMpCisgKgor ICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmgKKyAqCisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBt b2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlv bi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19WQVJJQUJMRV9ICisj ZGVmaW5lIFBHX1ZBUklBQkxFX0gKKworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5j bHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZV9kLmgiCisjaW5jbHVkZSAidXRpbHMvYWNsLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0K KyAqCQlwZ192YXJpYWJsZSBkZWZpbml0aW9uLiAgY3BwIHR1cm5zIHRoaXMgaW50bworICoJCXR5 cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX3ZhcmlhYmxlCisgKiAtLS0tLS0tLS0tLS0tLS0tCisg Ki8KK0NBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCit7CisJT2lk CQkJb2lkOwkJCS8qIG9pZCAqLworCisJLyogT0lEIG9mIGVudHJ5IGluIHBnX3R5cGUgZm9yIHZh cmlhYmxlJ3MgdHlwZSAqLworCU9pZAkJCXZhcnR5cGUgQktJX0xPT0tVUChwZ190eXBlKTsKKwor CS8qIHZhcmlhYmxlIG5hbWUgKi8KKwlOYW1lRGF0YQl2YXJuYW1lOworCisJLyogT0lEIG9mIG5h bWVzcGFjZSBjb250YWluaW5nIHZhcmlhYmxlIGNsYXNzICovCisJT2lkCQkJdmFybmFtZXNwYWNl IEJLSV9MT09LVVAocGdfbmFtZXNwYWNlKTsKKworCS8qIHZhcmlhYmxlIG93bmVyICovCisJT2lk CQkJdmFyb3duZXIgQktJX0xPT0tVUChwZ19hdXRoaWQpOworCisJLyogdHlwbW9kIGZvciB2YXJp YWJsZSdzIHR5cGUgKi8KKwlpbnQzMgkJdmFydHlwbW9kIEJLSV9ERUZBVUxUKC0xKTsKKworCS8q IHZhcmlhYmxlIGNvbGxhdGlvbiAqLworCU9pZAkJCXZhcmNvbGxhdGlvbiBCS0lfREVGQVVMVCgw KSBCS0lfTE9PS1VQX09QVChwZ19jb2xsYXRpb24pOworCisKKyNpZmRlZiBDQVRBTE9HX1ZBUkxF TgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLworCisJLyogYWNjZXNz IHBlcm1pc3Npb25zICovCisJYWNsaXRlbQkJdmFyYWNsWzFdIEJLSV9ERUZBVUxUKF9udWxsXyk7 CisKKyNlbmRpZgorfSBGb3JtRGF0YV9wZ192YXJpYWJsZTsKKworLyogLS0tLS0tLS0tLS0tLS0t LQorICoJCUZvcm1fcGdfdmFyaWFibGUgY29ycmVzcG9uZHMgdG8gYSBwb2ludGVyIHRvIGEgdHVw bGUgd2l0aAorICoJCXRoZSBmb3JtYXQgb2YgdGhlIHBnX3ZhcmlhYmxlIHJlbGF0aW9uLgorICog LS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIEZvcm1EYXRhX3BnX3ZhcmlhYmxlICpGb3Jt X3BnX3ZhcmlhYmxlOworCitERUNMQVJFX1RPQVNUKHBnX3ZhcmlhYmxlLCA5MjIzLCA5MjI0KTsK KworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ192YXJpYWJsZV9vaWRfaW5kZXgsIDkyMjUs IFZhcmlhYmxlT2lkSW5kZXhJZCwgcGdfdmFyaWFibGUsIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitE RUNMQVJFX1VOSVFVRV9JTkRFWChwZ192YXJpYWJsZV92YXJuYW1lX25zcF9pbmRleCwgOTIyNiwg VmFyaWFibGVOYW1lTnNwSW5kZXhJZCwgcGdfdmFyaWFibGUsIGJ0cmVlKHZhcm5hbWUgbmFtZV9v cHMsIHZhcm5hbWVzcGFjZSBvaWRfb3BzKSk7CisKK2V4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0 ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkJCUNyZWF0ZVNlc3Npb25WYXJT dG10ICpzdG10KTsKK2V4dGVybiB2b2lkIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKTsKKwor TUFLRV9TWVNDQUNIRShWQVJJQUJMRU5BTUVOU1AsIHBnX3ZhcmlhYmxlX3Zhcm5hbWVfbnNwX2lu ZGV4LCA4KTsKK01BS0VfU1lTQ0FDSEUoVkFSSUFCTEVPSUQsIHBnX3ZhcmlhYmxlX29pZF9pbmRl eCwgOCk7CisKKyNlbmRpZgkJCQkJCQkvKiBQR19WQVJJQUJMRV9IICovCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKaW5kZXggMGQ5NmRiNTYzODYuLjhlZTFjYzVhMTMxIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCkBAIC0yMzE2LDYgKzIzMTYsNyBAQCB0eXBlZGVmIGVudW0gT2JqZWN0VHlwZQogCU9CSkVD VF9UU1RFTVBMQVRFLAogCU9CSkVDVF9UWVBFLAogCU9CSkVDVF9VU0VSX01BUFBJTkcsCisJT0JK RUNUX1ZBUklBQkxFLAogCU9CSkVDVF9WSUVXLAogfSBPYmplY3RUeXBlOwogCkBAIC0zNDQ3LDYg KzM0NDgsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJTdGF0c1N0bXQKIAlib29sCQltaXNzaW5n X29rOwkJLyogc2tpcCBlcnJvciBpZiBzdGF0aXN0aWNzIG9iamVjdCBpcyBtaXNzaW5nICovCiB9 IEFsdGVyU3RhdHNTdG10OwogCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQl7Q3Jl YXRlfEFsdGVyfSBWQVJJQUJMRSBTdGF0ZW1lbnQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLwordHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKK3sKKwlOb2RlVGFnCQl0 eXBlOworCVJhbmdlVmFyICAgKnZhcmlhYmxlOwkJLyogdGhlIHZhcmlhYmxlIHRvIGNyZWF0ZSAq LworCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KKwlD b2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNlOworCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5v dGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KK30gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CisK KwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCUNyZWF0ZSBGdW5jdGlvbiBTdGF0ZW1l bnQKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bh cnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCA4OTlkNjRh ZDU1Zi4uNTY2NzBlNjViMTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTQ4NCw2ICs0ODQsOCBAQCBQ R19LRVlXT1JEKCJ2YWxpZGF0b3IiLCBWQUxJREFUT1IsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhbHVlIiwgVkFMVUVfUCwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFsdWVzIiwgVkFMVUVTLCBDT0xfTkFNRV9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyY2hhciIsIFZBUkNIQVIsIENPTF9OQU1F X0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJ2YXJpYWJsZSIsIFZBUklBQkxFLCBV TlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJ2YXJpYWJsZXMiLCBW QVJJQUJMRVMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZh cmlhZGljIiwgVkFSSUFESUMsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJ2YXJ5aW5nIiwgVkFSWUlORywgVU5SRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBH X0tFWVdPUkQoInZlcmJvc2UiLCBWRVJCT1NFLCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJF X0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMv aW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCA3ZmRjZWM2ZGQ5My4uOTQ2NWRmN2IyZmYg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNs dWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC02OCw2ICs2OCw3IEBAIFBHX0NNRFRBRyhDTURUQUdf QUxURVJfVFJBTlNGT1JNLCAiQUxURVIgVFJBTlNGT1JNIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19BTFRFUl9UUklHR0VSLCAiQUxURVIgVFJJR0dFUiIsIHRydWUsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFlQRSwgIkFMVEVSIFRZUEUiLCB0 cnVlLCB0cnVlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVVNFUl9NQVBQSU5HLCAi QUxURVIgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRB R19BTFRFUl9WQVJJQUJMRSwgIkFMVEVSIFZBUklBQkxFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19BTFRFUl9WSUVXLCAiQUxURVIgVklFVyIsIHRydWUsIGZhbHNlLCBm YWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQU5BTFlaRSwgIkFOQUxZWkUiLCBmYWxzZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19CRUdJTiwgIkJFR0lOIiwgZmFsc2UsIGZhbHNlLCBm YWxzZSkKQEAgLTEyMyw2ICsxMjQsNyBAQCBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UUkFOU0ZP Uk0sICJDUkVBVEUgVFJBTlNGT1JNIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19DUkVBVEVfVFJJR0dFUiwgIkNSRUFURSBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFlQRSwgIkNSRUFURSBUWVBFIiwgdHJ1ZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVVNFUl9NQVBQSU5HLCAiQ1JFQVRF IFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQ1JF QVRFX1ZBUklBQkxFLCAiQ1JFQVRFIFZBUklBQkxFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdf Q01EVEFHKENNRFRBR19DUkVBVEVfVklFVywgIkNSRUFURSBWSUVXIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQogUEdfQ01EVEFHKENNRFRBR19ERUFMTE9DQVRFLCAiREVBTExPQ0FURSIsIGZhbHNlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxMT0NBVEVfQUxMLCAiREVBTExPQ0FU RSBBTEwiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTc1LDYgKzE3Nyw3IEBAIFBHX0NNRFRB RyhDTURUQUdfRFJPUF9UUkFOU0ZPUk0sICJEUk9QIFRSQU5TRk9STSIsIHRydWUsIGZhbHNlLCBm YWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUklHR0VSLCAiRFJPUCBUUklHR0VSIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1RZUEUsICJEUk9QIFRZUEUi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVVNFUl9NQVBQSU5H LCAiRFJPUCBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01E VEFHX0RST1BfVkFSSUFCTEUsICJEUk9QIFZBUklBQkxFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19EUk9QX1ZJRVcsICJEUk9QIFZJRVciLCB0cnVlLCBmYWxzZSwgZmFs c2UpCiBQR19DTURUQUcoQ01EVEFHX0VYRUNVVEUsICJFWEVDVVRFIiwgZmFsc2UsIGZhbHNlLCBm YWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhQTEFJTiwgIkVYUExBSU4iLCBmYWxzZSwgZmFsc2Us IGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmggYi9zcmMvaW5jbHVk ZS91dGlscy9hY2wuaAppbmRleCA3MzFkODRiMmE5My4uOThhYWI5ODIyOWUgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCkBA IC0xNjksNiArMTY5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQXJyYXlUeXBlIEFjbDsKICNkZWZpbmUg QUNMX0FMTF9SSUdIVFNfU0NIRU1BCQkoQUNMX1VTQUdFfEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFD TF9BTExfUklHSFRTX1RBQkxFU1BBQ0UJKEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklH SFRTX1RZUEUJCQkoQUNMX1VTQUdFKQorI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRQkJ KEFDTF9TRUxFQ1R8QUNMX1VQREFURSkKIAogLyogb3BlcmF0aW9uIGNvZGVzIGZvciBwZ18qX2Fj bG1hc2sgKi8KIHR5cGVkZWYgZW51bQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5 c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAppbmRleCAyMDQ0NmY2Zjgz Ni4uOGEzNjg0ZTcxMWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5o CisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBAIC0xMzQsNiArMTM0LDcgQEAg ZXh0ZXJuIGNoYXIgZ2V0X2Z1bmNfcHJva2luZChPaWQgZnVuY2lkKTsKIGV4dGVybiBib29sIGdl dF9mdW5jX2xlYWtwcm9vZihPaWQgZnVuY2lkKTsKIGV4dGVybiBSZWdQcm9jZWR1cmUgZ2V0X2Z1 bmNfc3VwcG9ydChPaWQgZnVuY2lkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbG5hbWVfcmVsaWQoY29u c3QgY2hhciAqcmVsbmFtZSwgT2lkIHJlbG5hbWVzcGFjZSk7CitleHRlcm4gT2lkCWdldF92YXJu YW1lX3ZhcmlkKGNvbnN0IGNoYXIgKnZhcm5hbWUsIE9pZCB2YXJuYW1lc3BhY2UpOwogZXh0ZXJu IGNoYXIgKmdldF9yZWxfbmFtZShPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsX25hbWVz cGFjZShPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsX3R5cGVfaWQoT2lkIHJlbGlkKTsK QEAgLTIwNiw2ICsyMDcsMTQgQEAgZXh0ZXJuIGNoYXIgKmdldF9wdWJsaWNhdGlvbl9uYW1lKE9p ZCBwdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X3N1YnNjcmlwdGlvbl9v aWQoY29uc3QgY2hhciAqc3VibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBjaGFyICpn ZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spOwogCitleHRl cm4gY2hhciAqZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpOworZXh0ZXJuIE9p ZAlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKTsKK2V4dGVybiBPaWQJ Z2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZShPaWQgdmFyaWQpOworZXh0ZXJuIHZvaWQgZ2V0X3Nl c3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKE9pZCB2YXJpZCwKKwkJCQkJCQkJCQkJ CQlPaWQgKnR5cGlkLAorCQkJCQkJCQkJCQkJCWludDMyICp0eXBtb2QsCisJCQkJCQkJCQkJCQkJ T2lkICpjb2xsaWQpOworCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXkodHlwaWQpICAoZ2V0X2VsZW1l bnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKIC8qIHR5cGVfaXNfYXJyYXlfZG9tYWluIGFj Y2VwdHMgYm90aCBwbGFpbiBhcnJheXMgYW5kIGRvbWFpbnMgb3ZlciBhcnJheXMgKi8KICNkZWZp bmUgdHlwZV9pc19hcnJheV9kb21haW4odHlwaWQpICAoZ2V0X2Jhc2VfZWxlbWVudF90eXBlKHR5 cGlkKSAhPSBJbnZhbGlkT2lkKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9kZXBlbmRlbmN5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5v dXQKaW5kZXggNzRkOWZmMjk5OGQuLmMzMzZmNjdhNTk2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZGVwZW5kZW5jeS5vdXQKQEAgLTE1MSwzICsxNTEsMjAgQEAgb3duZXIgb2YgdHlwZSBk ZXB0ZXN0X3QKIERST1AgT1dORUQgQlkgcmVncmVzc19kZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3Vz ZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVw X3VzZXIwOworLS0gZGVwZW5kZW5jeSBvbiB0eXBlCitDUkVBVEUgRE9NQUlOIHZhcmRvbWFpbiBB UyBpbnQ7CitDUkVBVEUgVFlQRSB2YXJ0eXBlIEFTIChhIGludCwgYiBpbnQsIGMgdmFyZG9tYWlu KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnR5cGU7CistLSBzaG91bGQgZmFpbAorRFJP UCBET01BSU4gdmFyZG9tYWluOworRVJST1I6ICBjYW5ub3QgZHJvcCB0eXBlIHZhcmRvbWFpbiBi ZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBjb2x1bW4gYyBvZiBj b21wb3NpdGUgdHlwZSB2YXJ0eXBlIGRlcGVuZHMgb24gdHlwZSB2YXJkb21haW4KK0hJTlQ6ICBV c2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitE Uk9QIFRZUEUgdmFydHlwZTsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdHlwZSB2YXJ0eXBlIGJlY2F1 c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUg dmFyMSBkZXBlbmRzIG9uIHR5cGUgdmFydHlwZQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURF IHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIGNsZWFuIHVwCitEUk9QIFZB UklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdmFydHlwZTsKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKaW5kZXggMjE1ZWI4OTliZTMuLmQ5 OTUzMzIxNDAyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5z Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dApAQCAtMjY2 LDMgKzI2Niw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbiB7c3ViZGJpZH0g PT4gcGdfZGF0YWJhc2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbiB7 c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2Ny aXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4gcGdfc3Vic2NyaXB0aW9uIHtvaWR9CiBOT1RJQ0U6ICBj aGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnJlbGlkfSA9PiBwZ19jbGFzcyB7b2lkfQor Tk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3ZhcnR5cGV9ID0+IHBnX3R5cGUge29pZH0K K05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJuYW1lc3BhY2V9ID0+IHBnX25hbWVz cGFjZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3Zhcm93bmVyfSA9PiBw Z19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJjb2xsYXRp b259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5k ZXggMzgxOWJmNWUyNTQuLjk2OWMxM2RlNjA2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5v dXQKQEAgLTU5MzAsNiArNTkzMCwzMCBAQCBDT01NSVQ7CiAjIGZpbmFsIE9OX0VSUk9SX1JPTExC QUNLOiBvZmYKIERST1AgVEFCTEUgYmxhOwogRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOworLS0g c2Vzc2lvbiB2YXJpYWJsZSB0ZXN0CitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy OworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CitcZFYrIHZhcjEKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBO YW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAg ICAgIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFj dGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAg ICAgICAgICAgICAgfCAKKygxIHJvdykKKworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEg VE8gUFVCTElDOworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9u JzsKK1xkVisgdmFyMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAg ICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCAg ICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2Ny aXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEg fCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIg fCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21l IGRlc2NyaXB0aW9uCisgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIg ICAgICAgICAgICAgICAgICAgICAgICB8IAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7 CitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7 CiAtLSBjaGVjayBkZXNjcmliaW5nIGludmFsaWQgbXVsdGlwYXJ0IG5hbWVzCiBcZEEgcmVncmVz c2lvbi5oZWFwCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVz KTogcmVncmVzc2lvbi5oZWFwCkBAIC02MTUxLDYgKzYxNzUsMTIgQEAgY3Jvc3MtZGF0YWJhc2Ug cmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBub25lc3VjaC5wdWJsaWMuZnVuY19kZXBz X3N0YXQKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiBy ZWdyZXNzaW9uLm15ZXZ0CiBcZHkgbm9uZXN1Y2gubXlldnQKIGltcHJvcGVyIHF1YWxpZmllZCBu YW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiBub25lc3VjaC5teWV2dAorXGRWIGhvc3QucmVn cmVzc2lvbi5wdWJsaWMudmFyCitpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90 dGVkIG5hbWVzKTogaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK1xkViByZWdyZXNzaW9ufG15 ZGIucHVibGljLnZhcgorY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVu dGVkOiByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorXGRWIG5vbmVzdWNoLnB1YmxpYy52YXIK K2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9uZXN1Y2gu cHVibGljLnZhcgogLS0gY2hlY2sgdGhhdCBkb3RzIHdpdGhpbiBxdW90ZWQgbmFtZSBzZWdtZW50 cyBhcmUgbm90IGNvdW50ZWQKIFxkQSAibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgogTGlzdCBvZiBh Y2Nlc3MgbWV0aG9kcwpAQCAtNjM4NSw2ICs2NDE1LDEyIEBAIExpc3Qgb2Ygc2NoZW1hcwogLS0t LS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0KICgwIHJvd3Mp CiAKK1xkViAibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz CisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1 dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZEEgIm5vLnN1Y2guc2NoZW1h Ii4ibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBt YW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhv ZCIKQEAgLTY1NTQsNiArNjU5MCwxMiBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1h bnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogCiBcZHkg Im5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlm aWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxl IgorICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8 IENvbGxhdGlvbiB8IE93bmVyIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tCisoMCByb3dzKQorCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBh bmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCByZWdyZXNzaW9uLiJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCiAgICAgICBMaXN0IG9mIHJlbGF0aW9u cwpAQCAtNjY4Nyw2ICs2NzI5LDEyIEBAIExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAt LS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0t LS0tCiAoMCByb3dzKQogCitcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo LnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1l IHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRh dGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0ICJuby5zdWNoLmRh dGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgogY3Jvc3Mt ZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFz ZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKQEAgLTY3MzQsNiAr Njc4Miw4IEBAIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDog Im5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVu Y2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2gu c2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogY3Jvc3MtZGF0YWJhc2UgcmVm ZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2gu c2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWICJuby5zdWNoLmRhdGFi YXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgorY3Jvc3MtZGF0YWJhc2Ug cmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1 Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKIC0tIGNoZWNrIFxkcmcgYW5kIFxkdQogQ1JF QVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMDsKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTE7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMGFmZjU2YTAxZAotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CkBAIC0wLDAgKzEsNTggQEAKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7 CistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKy0tIHNob3Vs ZCBmYWlsLCBwc2V1ZG90eXBlcyBhcmUgbm90IGFsbG93ZWQKK0NSRUFURSBWQVJJQUJMRSB2YXIy IEFTIGFueWVsZW1lbnQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHBzZXVk by10eXBlIGFueWVsZW1lbnQKKy0tIHNob3VsZCBiZSBvaywgZG8gbm90aGluZworRFJPUCBWQVJJ QUJMRSBJRiBFWElTVFMgdmFyMjsKK05PVElDRTogIHNlc3Npb24gdmFyaWFibGUgInZhcjIiIGRv ZXMgbm90IGV4aXN0LCBza2lwcGluZworLS0gZG8gbm90aGluZworQ1JFQVRFIFZBUklBQkxFIElG IE5PVCBFWElTVFMgdmFyMSBBUyBpbnQ7CitOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIx IiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmcKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGFscmVhZHkg ZXhpc3RzCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjE7Cist LSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7 CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgdmFyaWFibGUgY29tbWVudCc7CitT RUxFQ1QgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAncGdfdmFyaWFibGUnKSBGUk9N IHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgICAgb2JqX2Rlc2NyaXB0aW9u ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzb21lIHZhcmlhYmxlIGNvbW1lbnQKKygx IHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5k IHN1cHBvcnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBT Q0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJM RSBzdmFydGVzdC52YXIxIEFTIGludDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVh ZGVyOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192 YXJpYWJsZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJP TSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEg T1dORVIgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcjEgUkVOQU1FIFRPIHZhcnh4OworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyeHggU0VU IFNDSEVNQSBwdWJsaWM7CitEUk9QIFZBUklBQkxFIHB1YmxpYy52YXJ4eDsKK0FMVEVSIERFRkFV TFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgorICAgSU4g U0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfcmVhZGVyOworLS0gY3JlYXRpbmcgdmFyaWFibGUgd2l0aCBkZWZhdWx0IHByaXZp bGVnZXMKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFC TEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitTRVQgUk9MRSBUTyBERUZBVUxUOworXGRWKyBzdmFy dGVzdC52YXIxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCAgICAgICAgICAgICAgICBBY2Nl c3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0r LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLQorIHN2YXJ0ZXN0IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX293bmVyIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxl X293bmVyK3wgCisgICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFy aWFibGVfb3duZXIgfCAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOwor RFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXI7 CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3Nj aGVkdWxlCmluZGV4IDgxZTQyMjJkMjZhLi4wNWViNzg0ZjYyYiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFs bGVsX3NjaGVkdWxlCkBAIC0xMTEsNyArMTExLDcgQEAgdGVzdDoganNvbiBqc29uYiBqc29uX2Vu Y29kaW5nIGpzb25wYXRoIGpzb25wYXRoX2VuY29kaW5nIGpzb25iX2pzb25wYXRoIHNxbGpzb24K ICMgTkI6IHRlbXAuc3FsIGRvZXMgYSByZWNvbm5lY3Qgd2hpY2ggdHJhbnNpZW50bHkgdXNlcyAy IGNvbm5lY3Rpb25zLAogIyBzbyBrZWVwIHRoaXMgcGFyYWxsZWwgZ3JvdXAgdG8gYXQgbW9zdCAx OSB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5 MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRl cl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2Jq ZWN0IHdpdGggeG1sCit0ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRv bWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBz ZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGgg eG1sIHNlc3Npb25fdmFyaWFibGVzCiAKICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3VwIG9m IHBhcmFsbGVsIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRl bmN5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCmluZGV4IDhkNzRl ZDcxMjJjLi42YzE4YjdmODQwYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVw ZW5kZW5jeS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwKQEAg LTExNCwzICsxMTQsMTcgQEAgRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJPUCBPV05F RCBCWSByZWdyZXNzX2RlcF91c2VyMiwgcmVncmVzc19kZXBfdXNlcjA7CiBEUk9QIFVTRVIgcmVn cmVzc19kZXBfdXNlcjI7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjA7CisKKy0tIGRlcGVu ZGVuY3kgb24gdHlwZQorQ1JFQVRFIERPTUFJTiB2YXJkb21haW4gQVMgaW50OworQ1JFQVRFIFRZ UEUgdmFydHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIHZhcmRvbWFpbik7CitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyB2YXJ0eXBlOworCistLSBzaG91bGQgZmFpbAorRFJPUCBET01BSU4gdmFyZG9t YWluOworRFJPUCBUWVBFIHZhcnR5cGU7CisKKy0tIGNsZWFuIHVwCitEUk9QIFZBUklBQkxFIHZh cjE7CitEUk9QIFRZUEUgdmFydHlwZTsKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHNxbC5zcWwKaW5kZXggYzUwMjFmYzBiMTMuLjY2NmVkZGI2MzJkIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3Fs LnNxbApAQCAtMTYzMSw2ICsxNjMxLDE5IEBAIENPTU1JVDsKIERST1AgVEFCTEUgYmxhOwogRFJP UCBGVU5DVElPTiBwc3FsX2Vycm9yOwogCistLSBzZXNzaW9uIHZhcmlhYmxlIHRlc3QKK0NSRUFU RSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcmlh YmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsK K1xkVisgdmFyMQorR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOworQ09N TUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKK1xkVisgdmFyMQor RFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBST0xFIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXI7CisKIC0tIGNoZWNrIGRlc2NyaWJpbmcgaW52YWxpZCBtdWx0 aXBhcnQgbmFtZXMKIFxkQSByZWdyZXNzaW9uLmhlYXAKIFxkQSBub25lc3VjaC5oZWFwCkBAIC0x NzQyLDYgKzE3NTUsOSBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFggbm9uZXN1Y2gu cHVibGljLmZ1bmNfZGVwc19zdGF0CiBcZHkgcmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVzdWNo Lm15ZXZ0CitcZFYgaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK1xkViByZWdyZXNzaW9ufG15 ZGIucHVibGljLnZhcgorXGRWIG5vbmVzdWNoLnB1YmxpYy52YXIKIAogLS0gY2hlY2sgdGhhdCBk b3RzIHdpdGhpbiBxdW90ZWQgbmFtZSBzZWdtZW50cyBhcmUgbm90IGNvdW50ZWQKIFxkQSAibm8u c3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAtMTc4Myw2ICsxNzk5LDggQEAgRFJPUCBGVU5DVElPTiBw c3FsX2Vycm9yOwogXGR4ICJuby5zdWNoLmluc3RhbGxlZC5leHRlbnNpb24iCiBcZFggIm5vLnN1 Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIFxkeSAibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRW ICJuby5zdWNoLnZhcmlhYmxlIgorCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1h IHF1YWxpZmljYXRpb25zLgogXGRBICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1l dGhvZCIKQEAgLTE4MjMsNiArMTg0MSw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxk eCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhbGxlZC5leHRlbnNpb24iCiBcZFggIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogXGR5ICJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8uc3VjaC5zY2hlbWEiLiJu by5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBh bmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCByZWdyZXNzaW9uLiJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC0xODQ3LDYgKzE4NjYsNyBAQCBE Uk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLnBhcnRpdGlvbmVkLnJlbGF0aW9uIgogXGRUIHJlZ3Jlc3Npb24uIm5vLnN1Y2gu c2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgcmVncmVzc2lvbi4ibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVk IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0ICJuby5zdWNo LmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgpAQCAt MTg3Miw2ICsxODkyLDcgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGRQICJuby5zdWNo LmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJlbGF0aW9u IgogXGRUICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEu dHlwZSIKIFxkWCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5l eHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBjaGVjayBcZHJnIGFuZCBcZHUKIENSRUFURSBS T0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgyNjc5Y2Jm NDhlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsCkBAIC0wLDAgKzEsNjEgQEAKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CisKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50Owor CistLSBzaG91bGQgZmFpbCwgcHNldWRvdHlwZXMgYXJlIG5vdCBhbGxvd2VkCitDUkVBVEUgVkFS SUFCTEUgdmFyMiBBUyBhbnllbGVtZW50OworCistLSBzaG91bGQgYmUgb2ssIGRvIG5vdGhpbmcK K0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjI7CisKKy0tIGRvIG5vdGhpbmcKK0NSRUFURSBW QVJJQUJMRSBJRiBOT1QgRVhJU1RTIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgZmFpbAorQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFC TEUgSUYgRVhJU1RTIHZhcjE7CisKKy0tIGNoZWNrIGNvbW1lbnQgb24gdmFyaWFibGUKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29t ZSB2YXJpYWJsZSBjb21tZW50JzsKK1NFTEVDVCBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihv aWQsICdwZ192YXJpYWJsZScpIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIx JzsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cyBhbmQg c3VwcG9ydGVkIEFMVEVSCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworR1JBTlQgQUxMIE9OIFND SEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitDUkVBVEUgVkFSSUFC TEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CisKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cmVhZGVyOworCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBUTyByZWdy ZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFy MSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCitBTFRFUiBWQVJJQUJMRSBzdmFydGVz dC52YXIxIE9XTkVSIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitBTFRFUiBWQVJJQUJMRSBz dmFydGVzdC52YXIxIFJFTkFNRSBUTyB2YXJ4eDsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZh cnh4IFNFVCBTQ0hFTUEgcHVibGljOworCitEUk9QIFZBUklBQkxFIHB1YmxpYy52YXJ4eDsKKwor QUxURVIgREVGQVVMVCBQUklWSUxFR0VTCisgICBGT1IgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293 bmVyCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3QKKyAgIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMg VE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CisKKy0tIGNyZWF0aW5nIHZhcmlhYmxlIHdpdGgg ZGVmYXVsdCBwcml2aWxlZ2VzCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworU0VUIFJPTEUgVE8gREVGQVVM VDsKKworXGRWKyBzdmFydGVzdC52YXIxCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsK KworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFk ZXI7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKZGlmZiAtLWdpdCBhL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QKaW5kZXggMTg0N2JiZmE5NWMuLjViMWU3NzJmNjNkIDEwMDY0NAotLS0gYS9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdApAQCAtNTM1LDYgKzUzNSw3IEBAIENyZWF0ZVJvbGVTdG10CiBDcmVhdGVTY2hlbWFT dG10CiBDcmVhdGVTY2hlbWFTdG10Q29udGV4dAogQ3JlYXRlU2VxU3RtdAorQ3JlYXRlU2Vzc2lv blZhclN0bXQKIENyZWF0ZVN0YXRzU3RtdAogQ3JlYXRlU3RtdAogQ3JlYXRlU3RtdENvbnRleHQK QEAgLTg3NCw2ICs4NzUsNyBAQCBGb3JtRGF0YV9wZ190c19wYXJzZXIKIEZvcm1EYXRhX3BnX3Rz X3RlbXBsYXRlCiBGb3JtRGF0YV9wZ190eXBlCiBGb3JtRGF0YV9wZ191c2VyX21hcHBpbmcKK0Zv cm1EYXRhX3BnX3ZhcmlhYmxlCiBGb3JtRXh0cmFEYXRhX3BnX2F0dHJpYnV0ZQogRm9ybV9wZ19h Z2dyZWdhdGUKIEZvcm1fcGdfYW0KQEAgLTkzMyw2ICs5MzUsNyBAQCBGb3JtX3BnX3RzX3BhcnNl cgogRm9ybV9wZ190c190ZW1wbGF0ZQogRm9ybV9wZ190eXBlCiBGb3JtX3BnX3VzZXJfbWFwcGlu ZworRm9ybV9wZ192YXJpYWJsZQogRm9ybWF0Tm9kZQogRnJlZUJsb2NrTnVtYmVyQXJyYXkKIEZy ZWVMaXN0RGF0YQpAQCAtMzA3Nyw2ICszMDgwLDcgQEAgVmFyU3RyaW5nCiBWYXJTdHJpbmdTb3J0 U3VwcG9ydAogVmFyaWFibGUKIFZhcmlhYmxlQXNzaWduSG9vaworVmFyaWFibGVJbmZvCiBWYXJp YWJsZVNldEtpbmQKIFZhcmlhYmxlU2V0U3RtdAogVmFyaWFibGVTaG93U3RtdAotLSAKMi40Ny4w Cgo= --000000000000b025da062642a2e5--