Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vsjCT-00GkQU-2l for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Feb 2026 15:10:50 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vsjCT-00GPeC-09 for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Feb 2026 15:10:49 +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.96) (envelope-from ) id 1vsj9x-00GMpV-2B for pgsql-hackers@lists.postgresql.org; Wed, 18 Feb 2026 15:08:13 +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.98.2) (envelope-from ) id 1vsj9u-00000001NU7-236k for pgsql-hackers@lists.postgresql.org; Wed, 18 Feb 2026 15:08:13 +0000 Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-79427f739b0so49376477b3.3 for ; Wed, 18 Feb 2026 07:08:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771427289; cv=none; d=google.com; s=arc-20240605; b=a6HIhDJevry2ATIo1j84755jq5PlXqWfQHLNf2apglL7dEi8ui43b8EmcKljLmNZkF FUn+NhMo1T9/qxust6JZevyspiVz0IK2TGCFRSdjLxHA9pxyeTn+UiTosWVlfwi3D2Rg QJu9oH+GitKB0fJSPbysB/DK/JwrDz2TghkdcVPske9AuEw6y53DJoQwCow5hZkJWAzT z9jb0Cq7EDWuAgTVmBBMP7j2viXqqRDDt5LezOb7OAzeSUnMRFs26lXzIKPjzRp6mknE btg79uOqEZzF2TDqb1Lgj9kpBYad1LGG23w00kFV9qcDtBtZrj37FGnKtDY8K40zBzAH BsTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=nO2oil/mD9TgPz/149axrP6r9P+wwcpBA6BIRJv9ASo=; fh=dxJXJbLzq9Nah1LUdsj4QTuQ3JoDScd0wp1YHY64NXM=; b=QTeKYS6AISqBDo2BVOKKdW4RMGVIz6rE9MVYso2oN1ECACm6KKGRN726c5Tmn+p3nz uQ7W+vzc/1MVXIoasY7mjoYaFs+RgDXmv6yXtjk9pOsybr6AF3bJ9VtRl3eRFLyx5sKo hwyO2Bbrkx0G0Zb+52Ii+nb4AZ0oMiAdmcpzTQBpsdhRvzH50mWMIyJ6VUgOOKfLCg5i ggZXhEBDWwl7s5ETMvoksDWGIWV7yQrXlciJLcLyNKwoEsB/1VRa9PjYcPCmk4L5O/Qf zmuHjxztNjzZKNgC7SgzDF042DXCehibvgUfYMCxDUbkkLpmQxZQwW0VQbzmz+75jwaY yjxQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=percona.com; s=google; t=1771427289; x=1772032089; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=nO2oil/mD9TgPz/149axrP6r9P+wwcpBA6BIRJv9ASo=; b=MqGk8kl+5O4Rv7IlJnJI/wimu/Mwz2Cm/UbUwSKzS5xMmlVpnbd2paSZ9naZAdduRZ Vp1H5OixmOE+1E5kJQHtGFJ4Zj9O62C8eYo5X1aUwI2pOeC2wSnikt/ypQrZ65emIaEP uBmRM3C6TU5Ldi+As0J9CrLbQuGESo3/0by90= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771427289; x=1772032089; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nO2oil/mD9TgPz/149axrP6r9P+wwcpBA6BIRJv9ASo=; b=Z7wrWq+B0+tNsnMLGT3YnCvpqQHIgSHS0p9rHcaMwljKEnHLCIjfUgE18IXVrI/SpL lH0zjKPkW1afpI/C3xO4RMfZJj/PYzjdR4FVOS2O/8jGzoPtwgxWX9LgFtRLSuMu/OXo iksGLB6zLZuQOxyegOIVCsEdwqUNQfcXoLSW2vvYqvt+rj41zgNHZhHHL0yKqfGRXcnF vFcLvjx5ZnQM//HgLHQV0gN/PwOFyYbFDX/ywGsypESGDR9nbl8pX0rkJqy+W5Y5dW3M ZVXUjmeoRNflmmjmNU4U5gUyhqg5P24o3ISI6h7eoVJ/AGHtVeN5+xdXVOS2c+HrAZ3D h/qg== X-Gm-Message-State: AOJu0YwO/smSsUokzG5B8p5QaBG2UDperugZgHJTMtotc0RNPIpCUo42 3EdAMTVvwUZQxgVOiF0PxIc3UBzNrwoyzagzhtx3uPOYDPX6sCriUpA4BwWjm6LTqwyglsv6IIs mmf6os2vNLsTBbSMWpLmzdhwagqCqOHfe+MhXtoYE0tIc1+6/7Ky8QWzogiATm8Ei0o4mANza4F Svz5BxtI08AoaMDQiYFKO6V7gKQ9H+aKZhwZB6xI2WJLK6OPbJy7hJJeu13ItodItGvW1hA9grT N+ldH5tT+Mtj0pjdRfeOwSpobnXe1tEGRz7Rm6eSsFJNvz1MJSGC+HPDTvaBemdaDXhifmRzhar PIz9IRI= X-Gm-Gg: AZuq6aKBkbXvd5lL6/tKOD5lRh+k/0rMawNOFq2Hi3M27or5b0M6Rxg/tiw2nWXso7t 8ZMMLyjsPmJs9Qj4jvJV0JPftr0Cxb1U/G8Jncatl0NnLTsnxLV0ddmMPHV2g1tylZAK+ldFigF H3BC5bTE0hgwyAwN6+bNwIhQOCDxJJdLIRRhPa9cx/cjOLcgqrDhRYMXX1OfBKCy6tbrxzIfdpZ X/QCxX1K1Vn3ODFqohUlERdyPzfv91DzOVlwKKxscil249sI8/dqhSoPA90HZ2OPwyq2lfeH+Hj FgXrfhodj+SQpDGan/1GUMszNc9T3rjLLNgzTEVPG5aTn+h7S02ym1Cfbpkf4w2lnV7s X-Received: by 2002:a05:690c:25c1:b0:794:6fa2:a045 with SMTP id 00721157ae682-797f7167a4bmr17492147b3.3.1771427288310; Wed, 18 Feb 2026 07:08:08 -0800 (PST) MIME-Version: 1.0 From: Zsolt Parragi Date: Wed, 18 Feb 2026 15:07:57 +0000 X-Gm-Features: AaiRm50elPeUh-hw85Zp82Fcfliw9LL3k5cd2qMbU14mQKYlN5pcES5tfC_6Row Message-ID: Subject: [oauth] Split and extend PGOAUTHDEBUG To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000044aa61064b1a8e7d" X-CLOUD-SEC-AV-Sent: true X-CLOUD-SEC-AV-Info: percona,google_mail,monitor X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000044aa61064b1a8e7d Content-Type: text/plain; charset="UTF-8" Hello! I'm proposing 2 patches: 1 is the same patch I already sent as part of the PGOAUTHCAFILE discussion[1], rebased on the current master: it splits PGOAUTHDEBUG=UNSAFE into separate unsafe/safe settings which users can toggle one by one. 2 is a new unsafe setting issuer-mismatch, which allows a connection to continue if the client and server issuers don't match. While this isn't useful for end users, it makes testing validators easier, as validators authors should be able to verify that mismatched configurations are rejected properly by the validator. I based 2 on 1 because unconditionally adding this new unsafe option would conflict with some tests. This way that test can use a limited subset of PGOAUTHDEBUG and still work as intended. Even in this form it is a best effort, as this is a debugging/testing flag: a. If a custom client uses a custom PG_AUTHDATA_HOOK and provides a custom token, libpq accepts any issues URL b. If the issuer is a well known URI, used directly by libpq, it accept the URL as is c. if the url is not a well known URI, but doesn't match the server URI - it doesn't work that nicely, it accepts the difference but continues but retrieves the well known URI from the server, so ignores the client setting Technically this was already possible by a variation of (a) without this patch, by implementing a custom client with a PG_AUTHDATA_HOOK, providing a token from a different issuer to it, and lying about the issuer to libpq (providing what the server expects). But that's not an easy way to do it and requires all validators to implement custom clients for testing. Additionally this feature also could be useful for demoing that validators are secure to users ("see, the validator rejects the request even if we trick the client into continuing with authentication") [1] : https://www.postgresql.org/message-id/CAN4CZFNvZ9%2BpQ%3DOA4m%3DHcDgip84GHnekh4gUhYWfK3Q4%2BrBMxA%40mail.gmail.com --00000000000044aa61064b1a8e7d Content-Type: application/octet-stream; name="0002-Add-new-PGOAUTHDEBUG-option-issuer-mismatch.patch" Content-Disposition: attachment; filename="0002-Add-new-PGOAUTHDEBUG-option-issuer-mismatch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mls5mg2h1 RnJvbSA4ZjQzMzFjZmJiMDk5ZTRiNjQxYTViMzFmNTVhMDViZTk2OTkxNWRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBac29sdCBQYXJyYWdpIDx6c29sdC5wYXJyYWdpQGNhbmNlbGxh ci5odT4KRGF0ZTogV2VkLCAxOCBGZWIgMjAyNiAxNDo1MTo0NiArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMi8yXSBBZGQgbmV3IFBHT0FVVEhERUJVRyBvcHRpb246IGlzc3Vlci1taXNtYXRjaAoKVGhp cyBuZXcgdW5zYWZlIG9wdGlvbiBhbGxvd3MgdG8gY29ubmVjdGlvbiB0byBwcm9jZWVkIGlmIHRo ZSBpc3N1ZXIKY29uZmlndXJlZCBvbiB0aGUgc2VydmVyIGFuZCBjbGllbnQgbWlzbWF0Y2gsIGFs bG93aW5nIHRvIHdyaXRlCm1pc21hdGNoZWQtaXNzdWVyIHRlc3RzIGZvciB2YWxpZGF0b3JzLgoK VmFsaWRhdG9ycyBzaG91bGQgdGVzdCBzY2VuYXJpb3MgbGlrZSB0aGlzLCBhcyB0aGUgd2lyZSBh bGxvd3MgdGhpcwpzaXR1YXRpb24sIGJ1dCBwcmV2aW91c2x5IGxpYnBxL3BzcWwgcHJldmVudGVk IGl0LCBtYWtpbmcgd3JpdGluZyB0ZXN0cwpmb3IgdGhpcyBtb3JlIGRpZmZpY3VsdC4KLS0tCiBk b2Mvc3JjL3NnbWwvbGlicHEuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKysrKysr KysrKysrKysrLQogc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtY3VybC5jICAgICAg ICB8IDEzICsrKysrKysrKy0tLS0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgtb2F1dGgt ZGVidWcuYyAgICAgfCAgNyArKysrKysrCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9h dXRoLmMgICAgICAgICAgIHwgMTggKysrKysrKysrKystLS0tLS0tCiBzcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1hdXRoLW9hdXRoLmggICAgICAgICAgIHwgIDEgKwogLi4uL21vZHVsZXMvb2F1dGhf dmFsaWRhdG9yL3QvMDAxX3NlcnZlci5wbCAgICB8IDE1ICsrKysrKysrKy0tLS0tLQogNiBmaWxl cyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbCBiL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCmluZGV4 IDVkNzBjYzJiMjYxLi42ZjI5YTRhNzc1NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xpYnBx LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKQEAgLTEwNTU5LDYgKzEwNTU5LDIw IEBAIFBHT0FVVEhERUJVRz1VTlNBRkUgICAgPGxpbmVhbm5vdGF0aW9uPmxlZ2FjeSBmb3JtYXQ7 IGVuYWJsZXMgYWxsIG9wdGlvbnM8L2xpbmVhCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zh cmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVyYWw+ aXNzdWVyLW1pc21hdGNoPC9saXRlcmFsPiAodW5zYWZlKTwvdGVybT4KKyAgICAgIDxsaXN0aXRl bT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVG9sZXJhdGVzIGEgbWlzbWF0Y2ggYmV0d2VlbiB0 aGUgY2xpZW50J3MgY29uZmlndXJlZAorICAgICAgICA8bGl0ZXJhbD5vYXV0aF9pc3N1ZXI8L2xp dGVyYWw+IGFuZCB0aGUgaXNzdWVyIGZvdW5kIGluIHRoZSBzZXJ2ZXIncworICAgICAgICBkaXNj b3ZlcnkgZG9jdW1lbnQuIFRoaXMgZGlzYWJsZXMgdGhlIG1peC11cCBhdHRhY2sgcHJvdGVjdGlv biBmcm9tCisgICAgICAgIFJGQyA5MjA3IGFuZCBzaG91bGQgb25seSBiZSB1c2VkIGluIGRldmVs b3BtZW50IG9yIHRlc3RpbmcgZW52aXJvbm1lbnRzCisgICAgICAgIHdoZXJlIHRoZSBzZXJ2ZXIn cyBpc3N1ZXIgaWRlbnRpZmllciBkb2VzIG5vdCBtYXRjaCB0aGUgY2xpZW50CisgICAgICAgIGNv bmZpZ3VyYXRpb24uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92 YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgIDx0ZXJtPjxsaXRlcmFs PmZhc3QtcmV0cnk8L2xpdGVyYWw+IChzYWZlKTwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KQEAg LTEwNTk1LDcgKzEwNjA5LDcgQEAgUEdPQVVUSERFQlVHPVVOU0FGRSAgICA8bGluZWFubm90YXRp b24+bGVnYWN5IGZvcm1hdDsgZW5hYmxlcyBhbGwgb3B0aW9uczwvbGluZWEKIAogICAgPHBhcmE+ CiAgICAgVW5zYWZlIG9wdGlvbnMgKDxsaXRlcmFsPmh0dHA8L2xpdGVyYWw+LCA8bGl0ZXJhbD50 cmFjZTwvbGl0ZXJhbD4sCi0gICAgPGxpdGVyYWw+Y3VzdG9tLWNhPC9saXRlcmFsPikgcmVxdWly ZSB0aGUgPGxpdGVyYWw+VU5TQUZFOjwvbGl0ZXJhbD4gcHJlZml4LgorICAgIDxsaXRlcmFsPmN1 c3RvbS1jYTwvbGl0ZXJhbD4sIDxsaXRlcmFsPmlzc3Vlci1taXNtYXRjaDwvbGl0ZXJhbD4pIHJl cXVpcmUgdGhlIDxsaXRlcmFsPlVOU0FGRTo8L2xpdGVyYWw+IHByZWZpeC4KICAgICBJZiB1bnNh ZmUgb3B0aW9ucyBhcmUgc3BlY2lmaWVkIHdpdGhvdXQgdGhpcyBwcmVmaXgsIGEgd2FybmluZyBp cyBwcmludGVkCiAgICAgdG8gc3RhbmRhcmQgZXJyb3IgYW5kIHRoYXQgb3B0aW9uIGlzIGlnbm9y ZWQuIE90aGVyIHZhbGlkIG9wdGlvbnMgaW4gdGhlCiAgICAgbGlzdCBjb250aW51ZSB0byB3b3Jr LiBTYWZlIG9wdGlvbnMgKDxsaXRlcmFsPmZhc3QtcmV0cnk8L2xpdGVyYWw+LApkaWZmIC0tZ2l0 IGEvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtY3VybC5jIGIvc3JjL2ludGVyZmFj ZXMvbGlicHEtb2F1dGgvb2F1dGgtY3VybC5jCmluZGV4IGFjOGI0NjMxZDUzLi5kOTUxMmVmMTdk ZCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtY3VybC5jCisr KyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL29hdXRoLWN1cmwuYwpAQCAtMjIyMywxMCAr MjIyMywxNSBAQCBjaGVja19pc3N1ZXIoc3RydWN0IGFzeW5jX2N0eCAqYWN0eCwgUEdjb25uICpj b25uKQogCSAqLwogCWlmIChzdHJjbXAob2F1dGhfaXNzdWVyX2lkLCBwcm92aWRlci0+aXNzdWVy KSAhPSAwKQogCXsKLQkJYWN0eF9lcnJvcihhY3R4LAotCQkJCSAgICJ0aGUgaXNzdWVyIGlkZW50 aWZpZXIgKCVzKSBkb2VzIG5vdCBtYXRjaCBvYXV0aF9pc3N1ZXIgKCVzKSIsCi0JCQkJICAgcHJv dmlkZXItPmlzc3Vlciwgb2F1dGhfaXNzdWVyX2lkKTsKLQkJcmV0dXJuIGZhbHNlOworCQlpZiAo IWFjdHgtPmRlYnVnX2ZsYWdzLmlzc3Vlcl9taXNtYXRjaCkKKwkJeworCQkJYWN0eF9lcnJvcihh Y3R4LAorCQkJCQkgICAidGhlIGlzc3VlciBpZGVudGlmaWVyICglcykgZG9lcyBub3QgbWF0Y2gg b2F1dGhfaXNzdWVyICglcykiLAorCQkJCQkgICBwcm92aWRlci0+aXNzdWVyLCBvYXV0aF9pc3N1 ZXJfaWQpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJcmV0dXJuIHRydWU7CiAJfQogCiAJ cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9h dXRoLWRlYnVnLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9hdXRoLWRlYnVnLmMK aW5kZXggZjY1ZjA2OWZlZDguLjU1OGIzNGRhNTYxIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1hdXRoLW9hdXRoLWRlYnVnLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtYXV0aC1vYXV0aC1kZWJ1Zy5jCkBAIC01Myw2ICs1MywxMiBAQCBwYXJzZV9kZWJ1Z19vcHRp b24oY29uc3QgY2hhciAqb3B0aW9uLCBvYXV0aF9kZWJ1Z19mbGFncyAqZmxhZ3MsIGJvb2wgKmlz X3Vuc2FmZQogCQkqaXNfdW5zYWZlID0gdHJ1ZTsKIAkJcmV0dXJuIHRydWU7CiAJfQorCWVsc2Ug aWYgKHN0cmNtcChvcHRpb24sICJpc3N1ZXItbWlzbWF0Y2giKSA9PSAwKQorCXsKKwkJZmxhZ3Mt Pmlzc3Vlcl9taXNtYXRjaCA9IHRydWU7CisJCSppc191bnNhZmUgPSB0cnVlOworCQlyZXR1cm4g dHJ1ZTsKKwl9CiAJLyogU2FmZSBvcHRpb25zICovCiAJZWxzZSBpZiAoc3RyY21wKG9wdGlvbiwg ImZhc3QtcmV0cnkiKSA9PSAwKQogCXsKQEAgLTEwMyw2ICsxMDksNyBAQCBvYXV0aF9nZXRfZGVi dWdfZmxhZ3Modm9pZCkKIAkJZmxhZ3MuaHR0cCA9IHRydWU7CiAJCWZsYWdzLnRyYWNlID0gdHJ1 ZTsKIAkJZmxhZ3MuY3VzdG9tX2NhID0gdHJ1ZTsKKwkJZmxhZ3MuaXNzdWVyX21pc21hdGNoID0g dHJ1ZTsKIAkJZmxhZ3MuZmFzdF9yZXRyeSA9IHRydWU7CiAJCWZsYWdzLnBvbGxfY291bnRzID0g dHJ1ZTsKIAkJZmxhZ3MucHJpbnRfcGx1Z2luX2Vycm9ycyA9IHRydWU7CmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9hdXRoLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJw cS9mZS1hdXRoLW9hdXRoLmMKaW5kZXggNWRmZjM1NGMxOWIuLmI2ZDQ3MmEwMzMwIDEwMDY0NAot LS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9hdXRoLmMKKysrIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0aC5jCkBAIC02MDYsMTMgKzYwNiwxNiBAQCBoYW5kbGVf b2F1dGhfc2FzbF9lcnJvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKm1zZywgaW50IG1zZ2xl bikKIAogCQlpZiAoc3RyY21wKGNvbm4tPm9hdXRoX2lzc3Vlcl9pZCwgZGlzY292ZXJ5X2lzc3Vl cikgIT0gMCkKIAkJewotCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwKLQkJCQkJCQkJ CSJzZXJ2ZXIncyBkaXNjb3ZlcnkgZG9jdW1lbnQgYXQgJXMgKGlzc3VlciBcIiVzXCIpIGlzIGlu Y29tcGF0aWJsZSB3aXRoIG9hdXRoX2lzc3VlciAoJXMpIiwKLQkJCQkJCQkJCWN0eC5kaXNjb3Zl cnlfdXJpLCBkaXNjb3ZlcnlfaXNzdWVyLAotCQkJCQkJCQkJY29ubi0+b2F1dGhfaXNzdWVyX2lk KTsKKwkJCWlmICghb2F1dGhfZ2V0X2RlYnVnX2ZsYWdzKCkuaXNzdWVyX21pc21hdGNoKQorCQkJ eworCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sCisJCQkJCQkJCQkJInNlcnZlcidz IGRpc2NvdmVyeSBkb2N1bWVudCBhdCAlcyAoaXNzdWVyIFwiJXNcIikgaXMgaW5jb21wYXRpYmxl IHdpdGggb2F1dGhfaXNzdWVyICglcykiLAorCQkJCQkJCQkJCWN0eC5kaXNjb3ZlcnlfdXJpLCBk aXNjb3ZlcnlfaXNzdWVyLAorCQkJCQkJCQkJCWNvbm4tPm9hdXRoX2lzc3Vlcl9pZCk7CiAKLQkJ CWZyZWUoZGlzY292ZXJ5X2lzc3Vlcik7Ci0JCQlnb3RvIGNsZWFudXA7CisJCQkJZnJlZShkaXNj b3ZlcnlfaXNzdWVyKTsKKwkJCQlnb3RvIGNsZWFudXA7CisJCQl9CiAJCX0KIAogCQlmcmVlKGRp c2NvdmVyeV9pc3N1ZXIpOwpAQCAtNjI1LDcgKzYyOCw4IEBAIGhhbmRsZV9vYXV0aF9zYXNsX2Vy cm9yKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqbXNnLCBpbnQgbXNnbGVuKQogCQllbHNlCiAJ CXsKIAkJCS8qIFRoaXMgbXVzdCBtYXRjaCB0aGUgVVJJIHdlJ2QgcHJldmlvdXNseSBkZXRlcm1p bmVkLiAqLwotCQkJaWYgKHN0cmNtcChjb25uLT5vYXV0aF9kaXNjb3ZlcnlfdXJpLCBjdHguZGlz Y292ZXJ5X3VyaSkgIT0gMCkKKwkJCWlmIChzdHJjbXAoY29ubi0+b2F1dGhfZGlzY292ZXJ5X3Vy aSwgY3R4LmRpc2NvdmVyeV91cmkpICE9IDAKKwkJCQkmJiAhb2F1dGhfZ2V0X2RlYnVnX2ZsYWdz KCkuaXNzdWVyX21pc21hdGNoKQogCQkJewogCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNv bm4sCiAJCQkJCQkJCQkJInNlcnZlcidzIGRpc2NvdmVyeSBkb2N1bWVudCBoYXMgbW92ZWQgdG8g JXMgKHByZXZpb3VzIGxvY2F0aW9uIHdhcyAlcykiLApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvZmUtYXV0aC1vYXV0aC5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1v YXV0aC5oCmluZGV4IDI3MjYzOGVhMzU5Li45MTg2ODFmMTZhNSAxMDA2NDQKLS0tIGEvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0aC5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx L2ZlLWF1dGgtb2F1dGguaApAQCAtNTIsNiArNTIsNyBAQCB0eXBlZGVmIHN0cnVjdCBvYXV0aF9k ZWJ1Z19mbGFncwogCWJvb2wJCWh0dHA7CQkJLyogYWxsb3cgSFRUUCAodW5lbmNyeXB0ZWQpIGNv bm5lY3Rpb25zICovCiAJYm9vbAkJdHJhY2U7CQkJLyogbG9nIEhUVFAgdHJhZmZpYyAoZXhwb3Nl cyBzZWNyZXRzKSAqLwogCWJvb2wJCWN1c3RvbV9jYTsJCS8qIGFsbG93IGN1c3RvbSBDQSBjZXJ0 aWZpY2F0ZSBmaWxlICovCisJYm9vbAkJaXNzdWVyX21pc21hdGNoOwkvKiB0b2xlcmF0ZSBpc3N1 ZXIgbWlzbWF0Y2ggKi8KIAogCS8qIFNBRkUgZmVhdHVyZXMgLSBhbGxvd2VkIHdpdGhvdXQgVU5T QUZFOiBwcmVmaXggKi8KIAlib29sCQlmYXN0X3JldHJ5OwkJLyogYWxsb3cgemVyby1zZWNvbmQg cmV0cnkgaW50ZXJ2YWxzICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL29hdXRoX3Zh bGlkYXRvci90LzAwMV9zZXJ2ZXIucGwgYi9zcmMvdGVzdC9tb2R1bGVzL29hdXRoX3ZhbGlkYXRv ci90LzAwMV9zZXJ2ZXIucGwKaW5kZXggNmI2NDljMGIwNmYuLmI1ODdiNTFiYjE5IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9tb2R1bGVzL29hdXRoX3ZhbGlkYXRvci90LzAwMV9zZXJ2ZXIucGwKKysr IGIvc3JjL3Rlc3QvbW9kdWxlcy9vYXV0aF92YWxpZGF0b3IvdC8wMDFfc2VydmVyLnBsCkBAIC0x MzYsMTIgKzEzNiwxNSBAQCAkbm9kZS0+Y29ubmVjdF9vaygKIAldKTsKIAogIyBUaGUgaXNzdWVy IGxpbmtlZCBieSB0aGUgc2VydmVyIG11c3QgbWF0Y2ggdGhlIGNsaWVudCdzIG9hdXRoX2lzc3Vl ciBzZXR0aW5nLgotJG5vZGUtPmNvbm5lY3RfZmFpbHMoCi0JInVzZXI9JHVzZXIgZGJuYW1lPXBv c3RncmVzIG9hdXRoX2lzc3Vlcj0kaXNzdWVyIG9hdXRoX2NsaWVudF9pZD1mMDJjNjM2MS0wNjM2 IiwKLQkib2F1dGhfaXNzdWVyIG11c3QgbWF0Y2ggZGlzY292ZXJ5IiwKLQlleHBlY3RlZF9zdGRl cnIgPT4KLQkgIHFyQHNlcnZlcidzIGRpc2NvdmVyeSBkb2N1bWVudCBhdCBcUSRpc3N1ZXIvLndl bGwta25vd24vb2F1dGgtYXV0aG9yaXphdGlvbi1zZXJ2ZXIvYWx0ZXJuYXRlXEUgXChpc3N1ZXIg IlxRJGlzc3Vlci9hbHRlcm5hdGVcRSJcKSBpcyBpbmNvbXBhdGlibGUgd2l0aCBvYXV0aF9pc3N1 ZXIgXChcUSRpc3N1ZXJcRVwpQAotKTsKK3sKKwlsb2NhbCAkRU5We1BHT0FVVEhERUJVR30gPSAi VU5TQUZFOmh0dHAiOworCSRub2RlLT5jb25uZWN0X2ZhaWxzKAorCQkidXNlcj0kdXNlciBkYm5h bWU9cG9zdGdyZXMgb2F1dGhfaXNzdWVyPSRpc3N1ZXIgb2F1dGhfY2xpZW50X2lkPWYwMmM2MzYx LTA2MzYiLAorCQkib2F1dGhfaXNzdWVyIG11c3QgbWF0Y2ggZGlzY292ZXJ5IiwKKwkJZXhwZWN0 ZWRfc3RkZXJyID0+CisJCSAgcXJAc2VydmVyJ3MgZGlzY292ZXJ5IGRvY3VtZW50IGF0IFxRJGlz c3Vlci8ud2VsbC1rbm93bi9vYXV0aC1hdXRob3JpemF0aW9uLXNlcnZlci9hbHRlcm5hdGVcRSBc KGlzc3VlciAiXFEkaXNzdWVyL2FsdGVybmF0ZVxFIlwpIGlzIGluY29tcGF0aWJsZSB3aXRoIG9h dXRoX2lzc3VlciBcKFxRJGlzc3VlclxFXClACisJKTsKK30KIAogIyBUZXN0IHJlcXVpcmVfYXV0 aCBzZXR0aW5ncyBhZ2FpbnN0IE9BVVRIQkVBUkVSLgogbXkgQGNhc2VzID0gKAotLSAKMi40My4w Cgo= --00000000000044aa61064b1a8e7d Content-Type: application/octet-stream; name="0001-Split-PGOAUTHDEBUG-UNSAFE-into-multiple-options.patch" Content-Disposition: attachment; filename="0001-Split-PGOAUTHDEBUG-UNSAFE-into-multiple-options.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mls5mg1t0 RnJvbSA5ZWVjNzkxZDY2NmJlYmYzNzM1Y2NiMjg2ZTZmMDQ0ZjM5MWY4NWZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBac29sdCBQYXJyYWdpIDx6c29sdC5wYXJyYWdpQHBlcmNvbmEu Y29tPgpEYXRlOiBUaHUsIDExIERlYyAyMDI1IDIzOjU2OjA4ICswMDAwClN1YmplY3Q6IFtQQVRD SCAxLzJdIFNwbGl0IFBHT0FVVEhERUJVRz1VTlNBRkUgaW50byBtdWx0aXBsZSBvcHRpb25zCgot LS0KIGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgMTQ0ICsr KysrKysrKysrKysrLS0tLQogc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvTWFrZWZpbGUgICAg ICAgICAgfCAgMTIgKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL21lc29uLmJ1aWxkICAg ICAgIHwgICA2ICstCiBzcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC1jdXJsLmMgICAg ICB8ICAxOCArLS0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL29hdXRoLXV0aWxzLmMgICAg IHwgIDExIC0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5oICAgICB8 ICAgMiArLQogc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvdGVzdC1vYXV0aC1jdXJsLmMgfCAg IDggKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxlICAgICAgICAgICAgICAgIHwgICAz ICstCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9hdXRoLWRlYnVnLmMgICB8IDE0NyAr KysrKysrKysrKysrKysrKysrCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9hdXRoLmMg ICAgICAgICB8ICAxNiArLQogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0aC5oICAg ICAgICAgfCAgMTkgKystCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZCAgICAgICAg ICAgICB8ICAgMSArCiAxMiBmaWxlcyBjaGFuZ2VkLCAzMTcgaW5zZXJ0aW9ucygrKSwgNzAgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0 aC1vYXV0aC1kZWJ1Zy5jCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwgYi9k b2Mvc3JjL3NnbWwvbGlicHEuc2dtbAppbmRleCAyMWUxYmEzNGE0ZS4uNWQ3MGNjMmIyNjEgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9saWJw cS5zZ21sCkBAIC0xMDUwOCw0MSArMTA1MDgsMTIzIEBAIHR5cGVkZWYgc3RydWN0IFBHb2F1dGhC ZWFyZXJSZXF1ZXN0CiAgICA8dGl0bGU+RGVidWdnaW5nIGFuZCBEZXZlbG9wZXIgU2V0dGluZ3M8 L3RpdGxlPgogCiAgICA8cGFyYT4KLSAgICBBICJkYW5nZXJvdXMgZGVidWdnaW5nIG1vZGUiIG1h eSBiZSBlbmFibGVkIGJ5IHNldHRpbmcgdGhlIGVudmlyb25tZW50Ci0gICAgdmFyaWFibGUgPGVu dmFyPlBHT0FVVEhERUJVRz1VTlNBRkU8L2VudmFyPi4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHBy b3ZpZGVkCi0gICAgZm9yIGVhc2Ugb2YgbG9jYWwgZGV2ZWxvcG1lbnQgYW5kIHRlc3Rpbmcgb25s eS4gSXQgZG9lcyBzZXZlcmFsIHRoaW5ncyB0aGF0Ci0gICAgeW91IHdpbGwgbm90IHdhbnQgYSBw cm9kdWN0aW9uIHN5c3RlbSB0byBkbzoKKyAgICBEZWJ1ZyBmZWF0dXJlcyBtYXkgYmUgZW5hYmxl ZCBieSBzZXR0aW5nIHRoZSA8ZW52YXI+UEdPQVVUSERFQlVHPC9lbnZhcj4KKyAgICBlbnZpcm9u bWVudCB2YXJpYWJsZS4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHByb3ZpZGVkIGZvciBlYXNlIG9m IGxvY2FsCisgICAgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFRoZSB2YXJpYWJsZSBhY2NlcHRz IGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YKKyAgICBkZWJ1ZyBvcHRpb25zOgorCisgICAgPHBy b2dyYW1saXN0aW5nPgorUEdPQVVUSERFQlVHPW9wdGlvbjEsb3B0aW9uMiwuLi4gICAgPGxpbmVh bm5vdGF0aW9uPmZvciBzYWZlIG9wdGlvbnMgb25seTwvbGluZWFubm90YXRpb24+CitQR09BVVRI REVCVUc9VU5TQUZFOm9wdGlvbjEsb3B0aW9uMiwuLi4gICAgPGxpbmVhbm5vdGF0aW9uPndoZW4g dXNpbmcgdW5zYWZlIG9wdGlvbnM8L2xpbmVhbm5vdGF0aW9uPgorUEdPQVVUSERFQlVHPVVOU0FG RSAgICA8bGluZWFubm90YXRpb24+bGVnYWN5IGZvcm1hdDsgZW5hYmxlcyBhbGwgb3B0aW9uczwv bGluZWFubm90YXRpb24+CisgICAgPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KIAotICAg IDxpdGVtaXplZGxpc3Qgc3BhY2luZz0iY29tcGFjdCI+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAg IDxwYXJhPgotICAgICAgIHBlcm1pdHMgdGhlIHVzZSBvZiB1bmVuY3J5cHRlZCBIVFRQIGR1cmlu ZyB0aGUgT0F1dGggcHJvdmlkZXIgZXhjaGFuZ2UKLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0 aXRlbT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgYWxsb3dzIHRoZSBz eXN0ZW0ncyB0cnVzdGVkIENBIGxpc3QgdG8gYmUgY29tcGxldGVseSByZXBsYWNlZCB1c2luZyB0 aGUKLSAgICAgICA8ZW52YXI+UEdPQVVUSENBRklMRTwvZW52YXI+IGVudmlyb25tZW50IHZhcmlh YmxlCi0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgIDxsaXN0aXRlbT4KLSAg ICAgIDxwYXJhPgotICAgICAgIHByaW50cyBIVFRQIHRyYWZmaWMgKGNvbnRhaW5pbmcgc2V2ZXJh bCBjcml0aWNhbCBzZWNyZXRzKSB0byBzdGFuZGFyZAotICAgICAgIGVycm9yIGR1cmluZyB0aGUg T0F1dGggZmxvdwotICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgICA8bGlzdGl0 ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBwZXJtaXRzIHRoZSB1c2Ugb2YgemVyby1zZWNvbmQg cmV0cnkgaW50ZXJ2YWxzLCB3aGljaCBjYW4gY2F1c2UgdGhlCi0gICAgICAgY2xpZW50IHRvIGJ1 c3ktbG9vcCBhbmQgcG9pbnRsZXNzbHkgY29uc3VtZSBDUFUKLSAgICAgIDwvcGFyYT4KLSAgICAg PC9saXN0aXRlbT4KLSAgICA8L2l0ZW1pemVkbGlzdD4KKyAgIDxwYXJhPgorICAgIEF2YWlsYWJs ZSBkZWJ1ZyBvcHRpb25zOgorCisgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxpc3RlbnRy eT4KKyAgICAgIDx0ZXJtPjxsaXRlcmFsPmh0dHA8L2xpdGVyYWw+ICh1bnNhZmUpPC90ZXJtPgor ICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBQZXJtaXRzIHRoZSB1c2Ug b2YgdW5lbmNyeXB0ZWQgSFRUUCBkdXJpbmcgdGhlIE9BdXRoIHByb3ZpZGVyIGV4Y2hhbmdlLgor ICAgICAgICBUaGlzIGFsbG93cyBPQXV0aCBjcmVkZW50aWFscyB0byBiZSB0cmFuc21pdHRlZCBv dmVyIHVuZW5jcnlwdGVkCisgICAgICAgIGNvbm5lY3Rpb25zLCB3aGljaCBpcyBleHRyZW1lbHkg ZGFuZ2Vyb3VzIGFuZCBzaG91bGQgb25seSBiZSB1c2VkIGZvcgorICAgICAgICBsb2NhbCB0ZXN0 aW5nLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48bGl0ZXJhbD50cmFjZTwv bGl0ZXJhbD4gKHVuc2FmZSk8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+ CisgICAgICAgIFByaW50cyBIVFRQIHRyYWZmaWMgdG8gc3RhbmRhcmQgZXJyb3IgZHVyaW5nIHRo ZSBPQXV0aCBmbG93LiBUaGlzIG91dHB1dAorICAgICAgICBjb250YWlucyBjcml0aWNhbCBzZWNy ZXRzIGluY2x1ZGluZyBiZWFyZXIgdG9rZW5zLCBjbGllbnQgc2VjcmV0cywgYWNjZXNzCisgICAg ICAgIHRva2VucywgYW5kIGF1dGhvcml6YXRpb24gY29kZXMuIE5ldmVyIHNoYXJlIHRoaXMgb3V0 cHV0IHdpdGggdGhpcmQKKyAgICAgICAgcGFydGllcy4KKyAgICAgICA8L3BhcmE+CisgICAgICA8 L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5Pgor ICAgICAgPHRlcm0+PGxpdGVyYWw+Y3VzdG9tLWNhPC9saXRlcmFsPiAodW5zYWZlKTwvdGVybT4K KyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgQWxsb3dzIHRoZSBzeXN0 ZW0ncyB0cnVzdGVkIENBIGxpc3QgdG8gYmUgY29tcGxldGVseSByZXBsYWNlZCB1c2luZyB0aGUK KyAgICAgICAgPGVudmFyPlBHT0FVVEhDQUZJTEU8L2VudmFyPiBlbnZpcm9ubWVudCB2YXJpYWJs ZS4gVGhpcyBjYW4gZmFjaWxpdGF0ZQorICAgICAgICBtYW4taW4tdGhlLW1pZGRsZSBhdHRhY2tz IHdoZW4gdGVzdGluZyB3aXRoIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlcy4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVyYWw+ZmFzdC1yZXRyeTwvbGl0ZXJhbD4gKHNh ZmUpPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBQZXJt aXRzIHRoZSB1c2Ugb2YgemVyby1zZWNvbmQgcmV0cnkgaW50ZXJ2YWxzIGluc3RlYWQgb2YgdGhl IG5vcm1hbAorICAgICAgICBtaW5pbXVtIG9mIG9uZSBzZWNvbmQuIFRoaXMgY2FuIHNwZWVkIHVw IHRlc3RzIGJ1dCBtYXkgY2F1c2UgdGhlIGNsaWVudAorICAgICAgICB0byBidXN5LWxvb3AgYW5k IGNvbnN1bWUgQ1BVIHVubmVjZXNzYXJpbHkuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0 aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg IDx0ZXJtPjxsaXRlcmFsPnBvbGwtY291bnRzPC9saXRlcmFsPiAoc2FmZSk8L3Rlcm0+CisgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFByaW50cyB0aGUgdG90YWwgbnVt YmVyIG9mIHBvbGwoKSBjYWxscyB0byBzdGFuZGFyZCBlcnJvciB3aGVuIHRoZQorICAgICAgICBP QXV0aCBmbG93IGNvbXBsZXRlcy4gVGhpcyBoZWxwcyBkZXZlbG9wZXJzIGRlYnVnIHRoZSBhc3lu YyBtdWx0aXBsZXhlcgorICAgICAgICBiZWhhdmlvci4KKyAgICAgICA8L3BhcmE+CisgICAgICA8 L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5Pgor ICAgICAgPHRlcm0+PGxpdGVyYWw+cHJpbnQtcGx1Z2luLWVycm9yczwvbGl0ZXJhbD4gKHNhZmUp PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBQcmludHMg cGx1Z2luIGxvYWRpbmcgZXJyb3JzIHRvIHN0YW5kYXJkIGVycm9yLiBUaGlzIGhlbHBzIGRldmVs b3BlcnMKKyAgICAgICAgYW5kIHBhY2thZ2UgbWFpbnRhaW5lcnMgZGVidWcgaXNzdWVzIHdoZW4g dGhlIE9BdXRoIHBsdWdpbiBmYWlscyB0byBsb2FkLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwv bGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgIDwvdmFyaWFibGVsaXN0PgorICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBVbnNhZmUgb3B0aW9ucyAoPGxpdGVyYWw+aHR0cDwv bGl0ZXJhbD4sIDxsaXRlcmFsPnRyYWNlPC9saXRlcmFsPiwKKyAgICA8bGl0ZXJhbD5jdXN0b20t Y2E8L2xpdGVyYWw+KSByZXF1aXJlIHRoZSA8bGl0ZXJhbD5VTlNBRkU6PC9saXRlcmFsPiBwcmVm aXguCisgICAgSWYgdW5zYWZlIG9wdGlvbnMgYXJlIHNwZWNpZmllZCB3aXRob3V0IHRoaXMgcHJl Zml4LCBhIHdhcm5pbmcgaXMgcHJpbnRlZAorICAgIHRvIHN0YW5kYXJkIGVycm9yIGFuZCB0aGF0 IG9wdGlvbiBpcyBpZ25vcmVkLiBPdGhlciB2YWxpZCBvcHRpb25zIGluIHRoZQorICAgIGxpc3Qg Y29udGludWUgdG8gd29yay4gU2FmZSBvcHRpb25zICg8bGl0ZXJhbD5mYXN0LXJldHJ5PC9saXRl cmFsPiwKKyAgICA8bGl0ZXJhbD5wb2xsLWNvdW50czwvbGl0ZXJhbD4sIDxsaXRlcmFsPnByaW50 LXBsdWdpbi1lcnJvcnM8L2xpdGVyYWw+KSBjYW4KKyAgICBiZSB1c2VkIHdpdGhvdXQgdGhlIHBy ZWZpeC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVW5yZWNvZ25pemVkIG9wdGlvbiBu YW1lcyB3aWxsIGFsc28gdHJpZ2dlciBhIHdhcm5pbmcgYW5kIGJlIGlnbm9yZWQsIHdoaWxlCisg ICAgdmFsaWQgb3B0aW9ucyBjb250aW51ZSB0byB3b3JrLiBUaGlzIGhlbHBzIGNhdGNoIHR5cG9z IGluIHRoZSBlbnZpcm9ubWVudAorICAgIHZhcmlhYmxlIGNvbmZpZ3VyYXRpb24gd2l0aG91dCBi cmVha2luZyB0aGUgZGVidWdnaW5nIG9mIHZhbGlkIG9wdGlvbnMuCiAgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIEV4YW1wbGVzOgorICAgIDxwcm9ncmFtbGlzdGluZz4KK1BHT0FVVEhERUJV Rz1mYXN0LXJldHJ5LHBvbGwtY291bnRzICAgIDxsaW5lYW5ub3RhdGlvbj5zYWZlIG9wdGlvbnMg b25seTwvbGluZWFubm90YXRpb24+CitQR09BVVRIREVCVUc9VU5TQUZFOmh0dHAsdHJhY2UgICAg PGxpbmVhbm5vdGF0aW9uPmVuYWJsZSBIVFRQIGFuZCB0cmFmZmljIGxvZ2dpbmc8L2xpbmVhbm5v dGF0aW9uPgorUEdPQVVUSERFQlVHPVVOU0FGRTpodHRwLGN1c3RvbS1jYSxwb2xsLWNvdW50cyAg ICA8bGluZWFubm90YXRpb24+bWl4IG9mIHVuc2FmZSBhbmQgc2FmZTwvbGluZWFubm90YXRpb24+ CitQR09BVVRIREVCVUc9VU5TQUZFICAgIDxsaW5lYW5ub3RhdGlvbj5sZWdhY3k7IGVuYWJsZXMg YWxsIG9wdGlvbnM8L2xpbmVhbm5vdGF0aW9uPgorICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8 L3BhcmE+CisKICAgIDx3YXJuaW5nPgogICAgIDxwYXJhPgotICAgICBEbyBub3Qgc2hhcmUgdGhl IG91dHB1dCBvZiB0aGUgT0F1dGggZmxvdyB0cmFmZmljIHdpdGggdGhpcmQgcGFydGllcy4gSXQK LSAgICAgY29udGFpbnMgc2VjcmV0cyB0aGF0IGNhbiBiZSB1c2VkIHRvIGF0dGFjayB5b3VyIGNs aWVudHMgYW5kIHNlcnZlcnMuCisgICAgIE5ldmVyIHVzZSB1bnNhZmUgZGVidWcgb3B0aW9ucyBp biBwcm9kdWN0aW9uIGVudmlyb25tZW50cy4gVGhlCisgICAgIDxsaXRlcmFsPnRyYWNlPC9saXRl cmFsPiBvcHRpb24gaW4gcGFydGljdWxhciBleHBvc2VzIHNlY3JldHMgdGhhdCBjYW4gYmUKKyAg ICAgdXNlZCB0byBhdHRhY2sgeW91ciBjbGllbnRzIGFuZCBzZXJ2ZXJzLiBEbyBub3Qgc2hhcmUg dGhlIG91dHB1dCB3aXRoIHRoaXJkCisgICAgIHBhcnRpZXMuCiAgICAgPC9wYXJhPgogICAgPC93 YXJuaW5nPgogICA8L3NlY3QyPgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1 dGgvTWFrZWZpbGUgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9NYWtlZmlsZQppbmRleCBh NWYyZDY1ZmNhZC4uNjBjZTBhZDhjNTggMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBx LW9hdXRoL01ha2VmaWxlCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL01ha2VmaWxl CkBAIC0zMCwxNSArMzAsMjUgQEAgb3ZlcnJpZGUgQ0ZMQUdTICs9ICQoUFRIUkVBRF9DRkxBR1Mp CiBPQkpTID0gXAogCSQoV0lOMzJSRVMpCiAKLU9CSlNfU1RBVElDID0gb2F1dGgtY3VybC5vCitP QkpTX1NUQVRJQyA9IFwKKwlvYXV0aC1jdXJsLm8gXAorCWZlLWF1dGgtb2F1dGgtZGVidWcubwog CiAjIFRoZSBzaGFyZWQgbGlicmFyeSBuZWVkcyBhZGRpdGlvbmFsIGdsdWUgc3ltYm9scy4KIE9C SlNfU0hMSUIgPSBcCiAJb2F1dGgtY3VybF9zaGxpYi5vIFwKIAlvYXV0aC11dGlscy5vIFwKKwlm ZS1hdXRoLW9hdXRoLWRlYnVnX3NobGliLm8KIAogb2F1dGgtdXRpbHMubzogb3ZlcnJpZGUgQ1BQ RkxBR1MgKz0gLURVU0VfRFlOQU1JQ19PQVVUSAogb2F1dGgtY3VybF9zaGxpYi5vOiBvdmVycmlk ZSBDUFBGTEFHU19TSExJQiArPSAtRFVTRV9EWU5BTUlDX09BVVRICitmZS1hdXRoLW9hdXRoLWRl YnVnX3NobGliLm86IG92ZXJyaWRlIENQUEZMQUdTX1NITElCICs9IC1EVVNFX0RZTkFNSUNfT0FV VEgKKworZmUtYXV0aC1vYXV0aC1kZWJ1Zy5vOiAkKGxpYnBxX3NyY2RpcikvZmUtYXV0aC1vYXV0 aC1kZWJ1Zy5jCisJJChDQykgJChDRkxBR1MpICQoQ1BQRkxBR1MpIC1jICQ8IC1vICRACisKK2Zl LWF1dGgtb2F1dGgtZGVidWdfc2hsaWIubzogJChsaWJwcV9zcmNkaXIpL2ZlLWF1dGgtb2F1dGgt ZGVidWcuYworCSQoQ0MpICQoQ0ZMQUdTKSAkKENGTEFHU19TTCkgJChDUFBGTEFHUykgJChDUFBG TEFHU19TSExJQikgLWMgJDwgLW8gJEAKIAogIyBBZGQgc2hsaWItL3N0bGliLXNwZWNpZmljIG9i amVjdHMuCiAkKHNobGliKTogb3ZlcnJpZGUgT0JKUyArPSAkKE9CSlNfU0hMSUIpCmRpZmYgLS1n aXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9tZXNvbi5idWlsZCBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxLW9hdXRoL21lc29uLmJ1aWxkCmluZGV4IGQ4YTBjMDQwOTVhLi44NmExMGNjY2Ey NyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvbWVzb24uYnVpbGQKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvbWVzb24uYnVpbGQKQEAgLTYsNiArNiw3IEBA IGVuZGlmCiAKIGxpYnBxX29hdXRoX3NvdXJjZXMgPSBmaWxlcygKICAgJ29hdXRoLWN1cmwuYycs CisgICcuLi9saWJwcS9mZS1hdXRoLW9hdXRoLWRlYnVnLmMnLAogKQogCiAjIFRoZSBzaGFyZWQg bGlicmFyeSBuZWVkcyBhZGRpdGlvbmFsIGdsdWUgc3ltYm9scy4KQEAgLTUwLDcgKzUxLDEwIEBA IGxpYnBxX29hdXRoX3NvID0gc2hhcmVkX21vZHVsZShsaWJwcV9vYXV0aF9uYW1lLAogCiBsaWJw cV9vYXV0aF90ZXN0X2RlcHMgPSBbXQogCi1vYXV0aF90ZXN0X3NvdXJjZXMgPSBmaWxlcygndGVz dC1vYXV0aC1jdXJsLmMnKSArIGxpYnBxX29hdXRoX3NvX3NvdXJjZXMKK29hdXRoX3Rlc3Rfc291 cmNlcyA9IGZpbGVzKAorICAndGVzdC1vYXV0aC1jdXJsLmMnLAorICAnLi4vbGlicHEvZmUtYXV0 aC1vYXV0aC1kZWJ1Zy5jJywKKykgKyBsaWJwcV9vYXV0aF9zb19zb3VyY2VzCiAKIGlmIGhvc3Rf c3lzdGVtID09ICd3aW5kb3dzJwogICBvYXV0aF90ZXN0X3NvdXJjZXMgKz0gcmNfYmluX2dlbi5w cm9jZXNzKHdpbjMydmVyX3JjLCBleHRyYV9hcmdzOiBbCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9saWJwcS1vYXV0aC9vYXV0aC1jdXJsLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0 aC9vYXV0aC1jdXJsLmMKaW5kZXggNjkxZTdlYzFkOWYuLmFjOGI0NjMxZDUzIDEwMDY0NAotLS0g YS9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC1jdXJsLmMKKysrIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtY3VybC5jCkBAIC0yNzgsNyArMjc4LDcgQEAgc3RydWN0 IGFzeW5jX2N0eAogCWludAkJCXJ1bm5pbmc7CQkvKiBpcyBhc3luY2hyb25vdXMgd29yayBpbiBw cm9ncmVzcz8gKi8KIAlib29sCQl1c2VyX3Byb21wdGVkOwkvKiBoYXZlIHdlIGFscmVhZHkgc2Vu dCB0aGUgYXV0aHogcHJvbXB0PyAqLwogCWJvb2wJCXVzZWRfYmFzaWNfYXV0aDsJLyogZGlkIHdl IHNlbmQgYSBjbGllbnQgc2VjcmV0PyAqLwotCWJvb2wJCWRlYnVnZ2luZzsJCS8qIGNhbiB3ZSBn aXZlIHVuc2FmZSBkZXZlbG9wZXIgYXNzaXN0YW5jZT8gKi8KKwlvYXV0aF9kZWJ1Z19mbGFncyBk ZWJ1Z19mbGFnczsJLyogY2FuIHdlIGdpdmUgZGV2ZWxvcGVyIGFzc2lzdGFuY2UgKi8KIAlpbnQJ CQlkYmdfbnVtX2NhbGxzOwkvKiAoZGVidWcgbW9kZSkgaG93IG1hbnkgdGltZXMgd2VyZSB3ZSBj YWxsZWQ/ICovCiB9OwogCkBAIC05ODUsNyArOTg1LDcgQEAgcGFyc2VfaW50ZXJ2YWwoc3RydWN0 IGFzeW5jX2N0eCAqYWN0eCwgY29uc3QgY2hhciAqaW50ZXJ2YWxfc3RyKQogCXBhcnNlZCA9IGNl aWwocGFyc2VkKTsKIAogCWlmIChwYXJzZWQgPCAxKQotCQlyZXR1cm4gYWN0eC0+ZGVidWdnaW5n ID8gMCA6IDE7CisJCXJldHVybiBhY3R4LT5kZWJ1Z19mbGFncy5mYXN0X3JldHJ5ID8gMCA6IDE7 CiAKIAllbHNlIGlmIChwYXJzZWQgPj0gSU5UX01BWCkKIAkJcmV0dXJuIElOVF9NQVg7CkBAIC0x NzU5LDcgKzE3NTksNyBAQCBzZXR1cF9jdXJsX2hhbmRsZXMoc3RydWN0IGFzeW5jX2N0eCAqYWN0 eCkKIAkgKi8KIAlDSEVDS19TRVRPUFQoYWN0eCwgQ1VSTE9QVF9OT1NJR05BTCwgMUwsIHJldHVy biBmYWxzZSk7CiAKLQlpZiAoYWN0eC0+ZGVidWdnaW5nKQorCWlmIChhY3R4LT5kZWJ1Z19mbGFn cy50cmFjZSkKIAl7CiAJCS8qCiAJCSAqIFNldCBhIGNhbGxiYWNrIGZvciByZXRyaWV2aW5nIGVy cm9yIGluZm9ybWF0aW9uIGZyb20gbGliY3VybCwgdGhlCkBAIC0xNzkxLDcgKzE3OTEsNyBAQCBz ZXR1cF9jdXJsX2hhbmRsZXMoc3RydWN0IGFzeW5jX2N0eCAqYWN0eCkKIAkJY29uc3QgbG9uZwl1 bnNhZmUgPSBDVVJMUFJPVE9fSFRUUFMgfCBDVVJMUFJPVE9fSFRUUDsKICNlbmRpZgogCi0JCWlm IChhY3R4LT5kZWJ1Z2dpbmcpCisJCWlmIChhY3R4LT5kZWJ1Z19mbGFncy5odHRwKQogCQkJcHJv dG9zID0gdW5zYWZlOwogCiAJCUNIRUNLX1NFVE9QVChhY3R4LCBwb3B0LCBwcm90b3MsIHJldHVy biBmYWxzZSk7CkBAIC0xODA1LDcgKzE4MDUsNyBAQCBzZXR1cF9jdXJsX2hhbmRsZXMoc3RydWN0 IGFzeW5jX2N0eCAqYWN0eCkKIAkgKiB0aGUgZmxvdyB0byB3b3JrIGF0IGFsbCwgc28gYW55IGNo YW5nZXMgdG8gdGhlIHJvb3RzIGFyZSBsaWtlbHkgdG8gYmUKIAkgKiBkb25lIHN5c3RlbS13aWRl LgogCSAqLwotCWlmIChhY3R4LT5kZWJ1Z2dpbmcpCisJaWYgKGFjdHgtPmRlYnVnX2ZsYWdzLmN1 c3RvbV9jYSkKIAl7CiAJCWNvbnN0IGNoYXIgKmVudjsKIApAQCAtMjI3MSw3ICsyMjcxLDcgQEAg Y2hlY2tfZm9yX2RldmljZV9mbG93KHN0cnVjdCBhc3luY19jdHggKmFjdHgpCiAJICogZGVjZW50 IHRpbWUgdG8gYmFpbCBvdXQgaWYgd2UncmUgbm90IHVzaW5nIEhUVFBTIGZvciB0aGUgZW5kcG9p bnRzCiAJICogd2UnbGwgdXNlIGZvciB0aGUgZmxvdy4KIAkgKi8KLQlpZiAoIWFjdHgtPmRlYnVn Z2luZykKKwlpZiAoIWFjdHgtPmRlYnVnX2ZsYWdzLmh0dHApCiAJewogCQlpZiAocGdfc3RybmNh c2VjbXAocHJvdmlkZXItPmRldmljZV9hdXRob3JpemF0aW9uX2VuZHBvaW50LAogCQkJCQkJICAg SFRUUFNfU0NIRU1FLCBzdHJsZW4oSFRUUFNfU0NIRU1FKSkgIT0gMCkKQEAgLTI3OTMsOCArMjc5 Myw4IEBAIHBnX2ZlX3J1bl9vYXV0aF9mbG93X2ltcGwoUEdjb25uICpjb25uKQogCQlhY3R4LT5t dXggPSBQR0lOVkFMSURfU09DS0VUOwogCQlhY3R4LT50aW1lcmZkID0gLTE7CiAKLQkJLyogU2hv dWxkIHdlIGVuYWJsZSB1bnNhZmUgZmVhdHVyZXM/ICovCi0JCWFjdHgtPmRlYnVnZ2luZyA9IG9h dXRoX3Vuc2FmZV9kZWJ1Z2dpbmdfZW5hYmxlZCgpOworCQkvKiBQYXJzZSBkZWJ1ZyBmbGFncyBm cm9tIGVudmlyb25tZW50ICovCisJCWFjdHgtPmRlYnVnX2ZsYWdzID0gb2F1dGhfZ2V0X2RlYnVn X2ZsYWdzKCk7CiAKIAkJc3RhdGUtPmFzeW5jX2N0eCA9IGFjdHg7CiAKQEAgLTMwNzQsNyArMzA3 NCw3IEBAIHBnX2ZlX3J1bl9vYXV0aF9mbG93KFBHY29ubiAqY29ubikKIAlhY3R4ID0gc3RhdGUt PmFzeW5jX2N0eDsKIAlBc3NlcnQoYWN0eCB8fCByZXN1bHQgPT0gUEdSRVNfUE9MTElOR19GQUlM RUQpOwogCi0JaWYgKGFjdHggJiYgYWN0eC0+ZGVidWdnaW5nKQorCWlmIChhY3R4ICYmIGFjdHgt PmRlYnVnX2ZsYWdzLnBvbGxfY291bnRzKQogCXsKIAkJYWN0eC0+ZGJnX251bV9jYWxscysrOwog CQlpZiAocmVzdWx0ID09IFBHUkVTX1BPTExJTkdfT0sgfHwgcmVzdWx0ID09IFBHUkVTX1BPTExJ TkdfRkFJTEVEKQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgt dXRpbHMuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL29hdXRoLXV0aWxzLmMKaW5kZXgg NGViZTdkMDk0OGMuLmZhYjg5OTBiNzQ2IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJw cS1vYXV0aC9vYXV0aC11dGlscy5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL29h dXRoLXV0aWxzLmMKQEAgLTE0MiwxNyArMTQyLDYgQEAgbGlicHFfZ2V0dGV4dChjb25zdCBjaGFy ICptc2dpZCkKIAogI2VuZGlmCQkJCQkJCS8qIEVOQUJMRV9OTFMgKi8KIAotLyoKLSAqIFJldHVy bnMgdHJ1ZSBpZiB0aGUgUEdPQVVUSERFQlVHPVVOU0FGRSBmbGFnIGlzIHNldCBpbiB0aGUgZW52 aXJvbm1lbnQuCi0gKi8KLWJvb2wKLW9hdXRoX3Vuc2FmZV9kZWJ1Z2dpbmdfZW5hYmxlZCh2b2lk KQotewotCWNvbnN0IGNoYXIgKmVudiA9IGdldGVudigiUEdPQVVUSERFQlVHIik7Ci0KLQlyZXR1 cm4gKGVudiAmJiBzdHJjbXAoZW52LCAiVU5TQUZFIikgPT0gMCk7Ci19Ci0KIC8qCiAgKiBEdXBs aWNhdGUgU09DS19FUlJOTyogZGVmaW5pdGlvbnMgZnJvbSBsaWJwcS1pbnQuaCwgZm9yIHVzZSBi eQogICogcHFfYmxvY2svcmVzZXRfc2lncGlwZSgpLgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFj ZXMvbGlicHEtb2F1dGgvb2F1dGgtdXRpbHMuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRo L29hdXRoLXV0aWxzLmgKaW5kZXggOWY0ZDViNjkyZDIuLjRkOTg2ZmNiMzU4IDEwMDY0NAotLS0g YS9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5oCisrKyBiL3NyYy9pbnRl cmZhY2VzL2xpYnBxLW9hdXRoL29hdXRoLXV0aWxzLmgKQEAgLTc2LDcgKzc2LDcgQEAgdHlwZWRl ZiBlbnVtCiB9IFBHVGVybmFyeUJvb2w7CiAKIGV4dGVybiB2b2lkIGxpYnBxX2FwcGVuZF9jb25u X2Vycm9yKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3By aW50ZigyLCAzKTsKLWV4dGVybiBib29sIG9hdXRoX3Vuc2FmZV9kZWJ1Z2dpbmdfZW5hYmxlZCh2 b2lkKTsKK2V4dGVybiBvYXV0aF9kZWJ1Z19mbGFncyBvYXV0aF9nZXRfZGVidWdfZmxhZ3Modm9p ZCk7CiBleHRlcm4gaW50CXBxX2Jsb2NrX3NpZ3BpcGUoc2lnc2V0X3QgKm9zaWdzZXQsIGJvb2wg KnNpZ3BpcGVfcGVuZGluZyk7CiBleHRlcm4gdm9pZCBwcV9yZXNldF9zaWdwaXBlKHNpZ3NldF90 ICpvc2lnc2V0LCBib29sIHNpZ3BpcGVfcGVuZGluZywgYm9vbCBnb3RfZXBpcGUpOwogCmRpZmYg LS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC90ZXN0LW9hdXRoLWN1cmwuYyBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL3Rlc3Qtb2F1dGgtY3VybC5jCmluZGV4IDQzMjhhMzMy NzM4Li5kOTk3MTc5N2I1YyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgv dGVzdC1vYXV0aC1jdXJsLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvdGVzdC1v YXV0aC1jdXJsLmMKQEAgLTg5LDcgKzg5LDEzIEBAIGluaXRfdGVzdF9hY3R4KHZvaWQpCiAKIAlh Y3R4LT5tdXggPSBQR0lOVkFMSURfU09DS0VUOwogCWFjdHgtPnRpbWVyZmQgPSAtMTsKLQlhY3R4 LT5kZWJ1Z2dpbmcgPSB0cnVlOworCWFjdHgtPmRlYnVnX2ZsYWdzLmh0dHAgPSB0cnVlOworCWFj dHgtPmRlYnVnX2ZsYWdzLnRyYWNlID0gdHJ1ZTsKKwlhY3R4LT5kZWJ1Z19mbGFncy5jdXN0b21f Y2EgPSB0cnVlOworCWFjdHgtPmRlYnVnX2ZsYWdzLmlzc3Vlcl9taXNtYXRjaCA9IHRydWU7CisJ YWN0eC0+ZGVidWdfZmxhZ3MuZmFzdF9yZXRyeSA9IHRydWU7CisJYWN0eC0+ZGVidWdfZmxhZ3Mu cG9sbF9jb3VudHMgPSB0cnVlOworCWFjdHgtPmRlYnVnX2ZsYWdzLnByaW50X3BsdWdpbl9lcnJv cnMgPSB0cnVlOwogCiAJaW5pdFBRRXhwQnVmZmVyKCZhY3R4LT5lcnJidWYpOwogCmRpZmYgLS1n aXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZSBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx L01ha2VmaWxlCmluZGV4IGJmNGJhYTkyOTE3Li4xMTY1ODU5ODU5YyAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFr ZWZpbGUKQEAgLTQ0LDcgKzQ0LDggQEAgT0JKUyA9IFwKIAlsZWdhY3ktcHFzaWduYWwubyBcCiAJ bGlicHEtZXZlbnRzLm8gXAogCXBxZXhwYnVmZmVyLm8gXAotCWZlLWF1dGgubworCWZlLWF1dGgu byBcCisJZmUtYXV0aC1vYXV0aC1kZWJ1Zy5vCiAKICMgRmlsZSBzaGFyZWQgYWNyb3NzIGFsbCBT U0wgaW1wbGVtZW50YXRpb25zIHN1cHBvcnRlZC4KIGlmbmVxICgkKHdpdGhfc3NsKSxubykKZGlm ZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgtb2F1dGgtZGVidWcuYyBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgtb2F1dGgtZGVidWcuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjY1ZjA2OWZlZDgKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9hdXRoLWRlYnVnLmMKQEAgLTAsMCArMSwxNDcg QEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGZlLWF1dGgtb2F1dGgtZGVidWcuYworICoJ ICBQYXJzaW5nIGxvZ2ljIGZvciBQR09BVVRIREVCVUcgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAq CisgKiBUaGlzIGZpbGUgY29udGFpbnMgcHVyZSBzdHJpbmcgcGFyc2luZyBsb2dpYyB3aXRoIG5v IGRlcGVuZGVuY2llcyBvbgorICogbGlicHEgb3IgbGlicHEtb2F1dGggaW1wbGVtZW50YXRpb24g ZGV0YWlscy4gSXQncyBjb21waWxlZCBpbnRvIGJvdGgKKyAqIGxpYnJhcmllcyB0byBhdm9pZCBj b2RlIGR1cGxpY2F0aW9uLgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI1 LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAq CisgKiBJREVOVElGSUNBVElPTgorICogCXNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgtb2F1 dGgtZGVidWcuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0 Z3Jlc19mZS5oIgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNp bmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgImZlLWF1dGgtb2F1dGguaCIKKworLyoKKyAq IFBhcnNlIGEgc2luZ2xlIGRlYnVnIG9wdGlvbiBmcm9tIFBHT0FVVEhERUJVRy4KKyAqIFJldHVy bnMgdHJ1ZSBpZiB0aGUgb3B0aW9uIGlzIHJlY29nbml6ZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAq IFNldHMgKmlzX3Vuc2FmZSB0byBpbmRpY2F0ZSBpZiB0aGlzIG9wdGlvbiByZXF1aXJlcyB0aGUg VU5TQUZFOiBwcmVmaXguCisgKi8KK3N0YXRpYyBib29sCitwYXJzZV9kZWJ1Z19vcHRpb24oY29u c3QgY2hhciAqb3B0aW9uLCBvYXV0aF9kZWJ1Z19mbGFncyAqZmxhZ3MsIGJvb2wgKmlzX3Vuc2Fm ZSkKK3sKKwkqaXNfdW5zYWZlID0gZmFsc2U7CisKKwkvKiBVbnNhZmUgb3B0aW9ucyAqLworCWlm IChzdHJjbXAob3B0aW9uLCAiaHR0cCIpID09IDApCisJeworCQlmbGFncy0+aHR0cCA9IHRydWU7 CisJCSppc191bnNhZmUgPSB0cnVlOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisJZWxzZSBpZiAoc3Ry Y21wKG9wdGlvbiwgInRyYWNlIikgPT0gMCkKKwl7CisJCWZsYWdzLT50cmFjZSA9IHRydWU7CisJ CSppc191bnNhZmUgPSB0cnVlOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisJZWxzZSBpZiAoc3RyY21w KG9wdGlvbiwgImN1c3RvbS1jYSIpID09IDApCisJeworCQlmbGFncy0+Y3VzdG9tX2NhID0gdHJ1 ZTsKKwkJKmlzX3Vuc2FmZSA9IHRydWU7CisJCXJldHVybiB0cnVlOworCX0KKwkvKiBTYWZlIG9w dGlvbnMgKi8KKwllbHNlIGlmIChzdHJjbXAob3B0aW9uLCAiZmFzdC1yZXRyeSIpID09IDApCisJ eworCQlmbGFncy0+ZmFzdF9yZXRyeSA9IHRydWU7CisJCXJldHVybiB0cnVlOworCX0KKwllbHNl IGlmIChzdHJjbXAob3B0aW9uLCAicG9sbC1jb3VudHMiKSA9PSAwKQorCXsKKwkJZmxhZ3MtPnBv bGxfY291bnRzID0gdHJ1ZTsKKwkJcmV0dXJuIHRydWU7CisJfQorCWVsc2UgaWYgKHN0cmNtcChv cHRpb24sICJwcmludC1wbHVnaW4tZXJyb3JzIikgPT0gMCkKKwl7CisJCWZsYWdzLT5wcmludF9w bHVnaW5fZXJyb3JzID0gdHJ1ZTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJcmV0dXJuIGZhbHNl OworfQorCisvKgorICogUGFyc2VzIHRoZSBQR09BVVRIREVCVUcgZW52aXJvbm1lbnQgdmFyaWFi bGUgYW5kIHJldHVybnMgZGVidWcgZmxhZ3MuCisgKgorICogU3VwcG9ydGVkIGZvcm1hdHM6Cisg KiAgIFBHT0FVVEhERUJVRz1VTlNBRkUgICAgICAgICAgICAgIC0gbGVnYWN5IGZvcm1hdCwgZW5h YmxlcyBhbGwgZmVhdHVyZXMKKyAqICAgUEdPQVVUSERFQlVHPW9wdGlvbjEsb3B0aW9uMiAgICAg LSBlbmFibGUgc2FmZSBmZWF0dXJlcyBvbmx5CisgKiAgIFBHT0FVVEhERUJVRz1VTlNBRkU6b3B0 MSxvcHQyICAgIC0gZW5hYmxlIHVuc2FmZSBhbmQvb3Igc2FmZSBmZWF0dXJlcworICoKKyAqIFBy aW50cyBhIHdhcm5pbmcgYW5kIHNraXBzIHRoZSBpbnZhbGlkIG9wdGlvbiBpZjoKKyAqIC0gQW4g dW5yZWNvZ25pemVkIG9wdGlvbiBpcyBzcGVjaWZpZWQKKyAqIC0gQW4gdW5zYWZlIG9wdGlvbiBp cyBzcGVjaWZpZWQgd2l0aG91dCB0aGUgVU5TQUZFOiBwcmVmaXgKKyAqLworb2F1dGhfZGVidWdf ZmxhZ3MKK29hdXRoX2dldF9kZWJ1Z19mbGFncyh2b2lkKQoreworCW9hdXRoX2RlYnVnX2ZsYWdz IGZsYWdzID0gezB9OworCWNvbnN0IGNoYXIgKmVudiA9IGdldGVudigiUEdPQVVUSERFQlVHIik7 CisJY2hhcgkgICAqb3B0aW9uc19zdHI7CisJY2hhcgkgICAqb3B0aW9uOworCWNoYXIJICAgKnNh dmVwdHIgPSBOVUxMOworCWJvb2wJCXVuc2FmZV9wcmVmaXggPSBmYWxzZTsKKworCWlmICghZW52 IHx8IGVudlswXSA9PSAnXDAnKQorCQlyZXR1cm4gZmxhZ3M7CisKKwlpZiAoc3RyY21wKGVudiwg IlVOU0FGRSIpID09IDApCisJeworCQlmbGFncy5odHRwID0gdHJ1ZTsKKwkJZmxhZ3MudHJhY2Ug PSB0cnVlOworCQlmbGFncy5jdXN0b21fY2EgPSB0cnVlOworCQlmbGFncy5mYXN0X3JldHJ5ID0g dHJ1ZTsKKwkJZmxhZ3MucG9sbF9jb3VudHMgPSB0cnVlOworCQlmbGFncy5wcmludF9wbHVnaW5f ZXJyb3JzID0gdHJ1ZTsKKwkJcmV0dXJuIGZsYWdzOworCX0KKworCWlmIChzdHJuY21wKGVudiwg IlVOU0FGRToiLCA3KSA9PSAwKQorCXsKKwkJdW5zYWZlX3ByZWZpeCA9IHRydWU7CisJCWVudiAr PSA3OworCX0KKworCW9wdGlvbnNfc3RyID0gc3RyZHVwKGVudik7CisJaWYgKCFvcHRpb25zX3N0 cikKKwkJcmV0dXJuIGZsYWdzOworCisJb3B0aW9uID0gc3RydG9rX3Iob3B0aW9uc19zdHIsICIs IiwgJnNhdmVwdHIpOworCXdoaWxlIChvcHRpb24gIT0gTlVMTCkKKwl7CisJCWJvb2wJCWlzX3Vu c2FmZTsKKworCQlpZiAoIXBhcnNlX2RlYnVnX29wdGlvbihvcHRpb24sICZmbGFncywgJmlzX3Vu c2FmZSkpCisJCXsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCQkiV0FSTklORzogUEdPQVVUSERF QlVHOiB1bnJlY29nbml6ZWQgZGVidWcgb3B0aW9uIFwiJXNcIiAoaWdub3JlZClcbiIsCisJCQkJ CW9wdGlvbik7CisJCX0KKwkJZWxzZSBpZiAoaXNfdW5zYWZlICYmICF1bnNhZmVfcHJlZml4KQor CQl7CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkJIldBUk5JTkc6IFBHT0FVVEhERUJVRzogdW5z YWZlIG9wdGlvbiBcIiVzXCIgcmVxdWlyZXMgVU5TQUZFOiBwcmVmaXggKGlnbm9yZWQpXG4iCisJ CQkJCSJVc2U6IFBHT0FVVEhERUJVRz1VTlNBRkU6JXNcbiIsCisJCQkJCW9wdGlvbiwgb3B0aW9u KTsKKwkJfQorCisJCW9wdGlvbiA9IHN0cnRva19yKE5VTEwsICIsIiwgJnNhdmVwdHIpOworCX0K KworCWZyZWUob3B0aW9uc19zdHIpOworCisJcmV0dXJuIGZsYWdzOworfQpkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0aC5jIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtYXV0aC1vYXV0aC5jCmluZGV4IDY3ODc5ZDY0YjM5Li41ZGZmMzU0YzE5YiAxMDA2NDQK LS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0aC5jCisrKyBiL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLWF1dGgtb2F1dGguYwpAQCAtMzgzLDcgKzM4Myw3IEBAIGlzc3Vlcl9m cm9tX3dlbGxfa25vd25fdXJpKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqd2t1cmkpCiAJCWF1 dGhvcml0eV9zdGFydCA9IHdrdXJpICsgc3RybGVuKEhUVFBTX1NDSEVNRSk7CiAKIAlpZiAoIWF1 dGhvcml0eV9zdGFydAotCQkmJiBvYXV0aF91bnNhZmVfZGVidWdnaW5nX2VuYWJsZWQoKQorCQkm JiBvYXV0aF9nZXRfZGVidWdfZmxhZ3MoKS5odHRwCiAJCSYmIHBnX3N0cm5jYXNlY21wKHdrdXJp LCBIVFRQX1NDSEVNRSwgc3RybGVuKEhUVFBfU0NIRU1FKSkgPT0gMCkKIAl7CiAJCS8qIEFsbG93 IGh0dHA6Ly8gZm9yIHRlc3Rpbmcgb25seS4gKi8KQEAgLTg3Nyw3ICs4NzcsNyBAQCB1c2VfYnVp bHRpbl9mbG93KFBHY29ubiAqY29ubiwgZmVfb2F1dGhfc3RhdGUgKnN0YXRlKQogCQkgKgogCQkg KiBOb3RlIHRoYXQgUE9TSVggZGxlcnJvcigpIGlzbid0IGd1YXJhbnRlZWQgdG8gYmUgdGhyZWFk c2FmZS4KIAkJICovCi0JCWlmIChvYXV0aF91bnNhZmVfZGVidWdnaW5nX2VuYWJsZWQoKSkKKwkJ aWYgKG9hdXRoX2dldF9kZWJ1Z19mbGFncygpLnByaW50X3BsdWdpbl9lcnJvcnMpCiAJCQlmcHJp bnRmKHN0ZGVyciwgImZhaWxlZCBkbG9wZW4gZm9yIGxpYnBxLW9hdXRoOiAlc1xuIiwgZGxlcnJv cigpKTsKIAogCQlyZXR1cm4gZmFsc2U7CkBAIC04OTEsNyArODkxLDcgQEAgdXNlX2J1aWx0aW5f ZmxvdyhQR2Nvbm4gKmNvbm4sIGZlX29hdXRoX3N0YXRlICpzdGF0ZSkKIAkJICogVGhpcyBpcyBt b3JlIG9mIGFuIGVycm9yIGNvbmRpdGlvbiB0aGFuIHRoZSBvbmUgYWJvdmUsIGJ1dCBkdWUgdG8K IAkJICogdGhlIGRsZXJyb3IoKSB0aHJlYWRzYWZldHkgaXNzdWUsIGxvY2sgaXQgYmVoaW5kIFBH T0FVVEhERUJVRyB0b28uCiAJCSAqLwotCQlpZiAob2F1dGhfdW5zYWZlX2RlYnVnZ2luZ19lbmFi bGVkKCkpCisJCWlmIChvYXV0aF9nZXRfZGVidWdfZmxhZ3MoKS5wcmludF9wbHVnaW5fZXJyb3Jz KQogCQkJZnByaW50ZihzdGRlcnIsICJmYWlsZWQgZGxzeW0gZm9yIGxpYnBxLW9hdXRoOiAlc1xu IiwgZGxlcnJvcigpKTsKIAogCQlkbGNsb3NlKHN0YXRlLT5idWlsdGluX2Zsb3cpOwpAQCAtMTM5 MiwxMyArMTM5MiwzIEBAIHBxQ2xlYXJPQXV0aFRva2VuKFBHY29ubiAqY29ubikKIAljb25uLT5v YXV0aF90b2tlbiA9IE5VTEw7CiB9CiAKLS8qCi0gKiBSZXR1cm5zIHRydWUgaWYgdGhlIFBHT0FV VEhERUJVRz1VTlNBRkUgZmxhZyBpcyBzZXQgaW4gdGhlIGVudmlyb25tZW50LgotICovCi1ib29s Ci1vYXV0aF91bnNhZmVfZGVidWdnaW5nX2VuYWJsZWQodm9pZCkKLXsKLQljb25zdCBjaGFyICpl bnYgPSBnZXRlbnYoIlBHT0FVVEhERUJVRyIpOwotCi0JcmV0dXJuIChlbnYgJiYgc3RyY21wKGVu diwgIlVOU0FGRSIpID09IDApOwotfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtYXV0aC1vYXV0aC5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0aC5oCmlu ZGV4IDVjOGEyNGI3NmZhLi4yNzI2MzhlYTM1OSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtYXV0aC1vYXV0aC5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgt b2F1dGguaApAQCAtNDIsOCArNDIsMjUgQEAgdHlwZWRlZiBzdHJ1Y3QKIAl2b2lkCSAgICpidWls dGluX2Zsb3c7CiB9IGZlX29hdXRoX3N0YXRlOwogCisvKgorICogRGVidWcgZmxhZ3MgZm9yIFBH T0FVVEhERUJVRyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKyAqIEVhY2ggZmxhZyBjb250cm9scyBh IHNwZWNpZmljIGRlYnVnIGZlYXR1cmUuCisgKi8KK3R5cGVkZWYgc3RydWN0IG9hdXRoX2RlYnVn X2ZsYWdzCit7CisJLyogVU5TQUZFIGZlYXR1cmVzIC0gcmVxdWlyZSBVTlNBRkU6IHByZWZpeCAq LworCWJvb2wJCWh0dHA7CQkJLyogYWxsb3cgSFRUUCAodW5lbmNyeXB0ZWQpIGNvbm5lY3Rpb25z ICovCisJYm9vbAkJdHJhY2U7CQkJLyogbG9nIEhUVFAgdHJhZmZpYyAoZXhwb3NlcyBzZWNyZXRz KSAqLworCWJvb2wJCWN1c3RvbV9jYTsJCS8qIGFsbG93IGN1c3RvbSBDQSBjZXJ0aWZpY2F0ZSBm aWxlICovCisKKwkvKiBTQUZFIGZlYXR1cmVzIC0gYWxsb3dlZCB3aXRob3V0IFVOU0FGRTogcHJl Zml4ICovCisJYm9vbAkJZmFzdF9yZXRyeTsJCS8qIGFsbG93IHplcm8tc2Vjb25kIHJldHJ5IGlu dGVydmFscyAqLworCWJvb2wJCXBvbGxfY291bnRzOwkvKiBwcmludCBwb2xsKCkgc3RhdGlzdGlj cyAqLworCWJvb2wJCXByaW50X3BsdWdpbl9lcnJvcnM7CS8qIHByaW50IHBsdWdpbiBsb2FkaW5n IGVycm9ycyAqLworfSBvYXV0aF9kZWJ1Z19mbGFnczsKKwogZXh0ZXJuIHZvaWQgcHFDbGVhck9B dXRoVG9rZW4oUEdjb25uICpjb25uKTsKLWV4dGVybiBib29sIG9hdXRoX3Vuc2FmZV9kZWJ1Z2dp bmdfZW5hYmxlZCh2b2lkKTsKK2V4dGVybiBvYXV0aF9kZWJ1Z19mbGFncyBvYXV0aF9nZXRfZGVi dWdfZmxhZ3Modm9pZCk7CiBleHRlcm4gYm9vbCB1c2VfYnVpbHRpbl9mbG93KFBHY29ubiAqY29u biwgZmVfb2F1dGhfc3RhdGUgKnN0YXRlKTsKIAogLyogTWVjaGFuaXNtcyBpbiBmZS1hdXRoLW9h dXRoLmMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKaW5kZXggYzVlY2Q5YzNhODcuLjdmMjk5 OWFlYmIzIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZAorKysg Yi9zcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZApAQCAtMiw2ICsyLDcgQEAKIAogbGli cHFfc291cmNlcyA9IGZpbGVzKAogICAnZmUtYXV0aC1vYXV0aC5jJywKKyAgJ2ZlLWF1dGgtb2F1 dGgtZGVidWcuYycsCiAgICdmZS1hdXRoLXNjcmFtLmMnLAogICAnZmUtYXV0aC5jJywKICAgJ2Zl LWNhbmNlbC5jJywKLS0gCjIuNDMuMAoK --00000000000044aa61064b1a8e7d--