Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pbMqz-0007sw-5R for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Mar 2023 14:39:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pbMqx-0004qy-Ca for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Mar 2023 14:39:15 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pbMqw-0004qp-KD for pgsql-hackers@lists.postgresql.org; Sun, 12 Mar 2023 14:39:14 +0000 Received: from mail-oa1-x29.google.com ([2001:4860:4864:20::29]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pbMqp-00019b-Ey for pgsql-hackers@lists.postgresql.org; Sun, 12 Mar 2023 14:39:13 +0000 Received: by mail-oa1-x29.google.com with SMTP id 586e51a60fabf-17711f56136so11233950fac.12 for ; Sun, 12 Mar 2023 07:39:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678631946; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=168UfelZnptGvg6EneF6TU5QQIbdBd2a3iHXjXYm7AU=; b=KNZ774ztbIohb80ns9bwF0v7AZrudizcT7YmfpktzgvhAeVV6J5xrytXljoKhxZ/J7 j3KfLdWMuHMxCaIpc1F20EO6Um5L3iF/Ig1T1Uy0pxguYZSBlFE0gg6JXXr1CvCzQBjv VELka7AeVZw5bFOyiCjIC/eRyPHBHETadAv5mHlQMA/lFBP0fsqxUjjNiWD5FkllQB7B myYeI+/JPjeFwqyed/7e1M3gPHcVBznDXgfuBS+sOTWB6Ood6RXWy1RyR8kOjPn0krhD 7MEAI54dEl6YIPdypZbmAT8jrT5d3YulV9OaIC7KLAM5drmXWYpCpHzj3ewj6/Ub4HX8 /m/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678631946; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=168UfelZnptGvg6EneF6TU5QQIbdBd2a3iHXjXYm7AU=; b=pQo59d8eetR1vbpxIuMFdYl4UwBAlfDh/iljyimyqr4Jht8qVzETzeyo8nQ3KHtcAo A5cDt3H/jlHRC6AwMxnp1GKP6WB2GpEDXg/lnOHyjCSFX23n5qNDd9uaniBkBxR88EKx 4OHLNxAnHYUTZYPyEWt++sX+7P4drlv+6qKPcMVwCaYN4Krf6oMgANJVMnFJiwdVmXEK 04+XnYG3AZeFJ/XHr/asn2c9avcqvTakh7rV/jGAQT3RenvT3w417WNG1kFuRZfXwi2v XzYgiJ+eRBCysPD7bDrkwy9KBN5fmtPxMCAqACLwMMLBK8nNDrhzciV35Kq0H2CpId6Y M+PQ== X-Gm-Message-State: AO0yUKVeEBXZ9qDN29nO0TIcrJx7k1pK8Wn8IWO6awOTTBhmSYM3gb2C xqf4KHaaw9dfRlVeuP6QwC3XojvGApS9NT+R1Nb2CxLi0A4= X-Google-Smtp-Source: AK7set9C2fz6nSQzUXi4FvtKcRjYk7dngv2l8bdz17LYrujqV1Ow4P332W91o9r2PWz3gwrWDDZ11ue1F+bu5GLIkWw= X-Received: by 2002:a05:6870:c384:b0:176:3174:42a8 with SMTP id g4-20020a056870c38400b00176317442a8mr10517112oao.10.1678631946231; Sun, 12 Mar 2023 07:39:06 -0700 (PDT) MIME-Version: 1.0 From: vignesh C Date: Sun, 12 Mar 2023 20:08:23 +0530 Message-ID: Subject: Implement IF NOT EXISTS for CREATE PUBLICATION AND CREATE SUBSCRIPTION To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000ddd85305f6b4f426" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ddd85305f6b4f426 Content-Type: text/plain; charset="UTF-8" Hi, Currently we don't support "IF NOT EXISTS" for Create publication and Create subscription, I felt it would be useful to add this "IF NOT EXISTS" which will create publication/subscription only if the object does not exist. Attached patch for handling the same. Thoughts? Regards, Vignesh --000000000000ddd85305f6b4f426 Content-Type: text/x-patch; charset="US-ASCII"; name="v1-0001-Implement-IF-NOT-EXISTS-for-CREATE-PUBLICATION-AN.patch" Content-Disposition: attachment; filename="v1-0001-Implement-IF-NOT-EXISTS-for-CREATE-PUBLICATION-AN.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lf5i2uc90 RnJvbSA2M2I1M2E4NzI1M2FmNmU1ZDA4ZjQ3M2NiMGQ1NjhjMjMyMWEyYmQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMyBNYXIgMjAyMyAxNTo1NDowMCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjFdIEltcGxl bWVudCBJRiBOT1QgRVhJU1RTIGZvciBDUkVBVEUgUFVCTElDQVRJT04gQU5EIENSRUFURQogU1VC U0NSSVBUSU9OCgpJbXBsZW1lbnQgSUYgTk9UIEVYSVNUUyBmb3IgQ1JFQVRFIFBVQkxJQ0FUSU9O IEFORCBDUkVBVEUgU1VCU0NSSVBUSU9OCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVi bGljYXRpb24uc2dtbCAgIHwgMTQgKysrKysrLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vi c2NyaXB0aW9uLnNnbWwgIHwgMTQgKysrKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMgICAgIHwgMjAgKysrKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jICAgIHwgMTggKysrKysrKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55ICAgICAgICAgICAgICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysrKysrCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgfCAgMiArCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgfCAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgfCAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJs aWNhdGlvbi5zcWwgICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRp b24uc3FsICAgICAgfCAgMSArCiAxMCBmaWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwg MTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVi bGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwK aW5kZXggYTI5NDZmZWFhMy4uYjJmMTdiZDdkOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9w dWJsaWNhdGlvbi5zZ21sCkBAIC0yMSw3ICsyMSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlv bgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgotQ1JFQVRFIFBVQkxJQ0FUSU9OIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KK0NSRUFURSBQ VUJMSUNBVElPTiBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgWyBGT1IgQUxMIFRBQkxFUwogICAgICAgfCBGT1Ig PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFj ZWFibGU+IFssIC4uLiBdIF0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQpAQCAt NTQsNiArNTQsMTggQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgog CiAgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFs PklGIE5PVCBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgYSBwdWJsaWNhdGlvbiB3aXRoIHRo ZSBzYW1lIG5hbWUgYWxyZWFkeSBleGlzdHMuCisgICAgICBBIG5vdGljZSBpcyBpc3N1ZWQgaW4g dGhpcyBjYXNlLiAgTm90ZSB0aGF0IHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0CisgICAgICB0 aGUgZXhpc3RpbmcgcHVibGljYXRpb24gaXMgYW55dGhpbmcgbGlrZSB0aGUgb25lIHRoYXQgd291 bGQgaGF2ZSBiZWVuCisgICAgICBjcmVhdGVkLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAg ICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2Ny aXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbApp bmRleCA1MWM0NWYxN2M3Li40YzdmZTVkY2NkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9z dWJzY3JpcHRpb24uc2dtbApAQCAtMjEsNyArMjEsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRp b24KIAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KLUNSRUFURSBTVUJTQ1JJUFRJT04g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNl YWJsZT4KK0NSRUFURSBTVUJTQ1JJUFRJT04gWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBD T05ORUNUSU9OICc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29ubmluZm88L3JlcGxh Y2VhYmxlPicKICAgICBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cHVibGljYXRpb25fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KICAgICBbIFdJVEggKCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3Vic2NyaXB0aW9uX3BhcmFtZXRlcjwvcmVwbGFj ZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFi bGU+XSBbLCAuLi4gXSApIF0KQEAgLTYxLDYgKzYxLDE4IEBAIENSRUFURSBTVUJTQ1JJUFRJT04g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNl YWJsCiAgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KIAogICA8dmFyaWFibGVsaXN0PgorICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RTPC9saXRlcmFs PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93 IGFuIGVycm9yIGlmIGEgc3Vic2NyaXB0aW9uIHdpdGggdGhlIHNhbWUgbmFtZSBhbHJlYWR5Cisg ICAgICBleGlzdHMuIEEgbm90aWNlIGlzIGlzc3VlZCBpbiB0aGlzIGNhc2UuICBOb3RlIHRoYXQg dGhlcmUgaXMgbm8gZ3VhcmFudGVlCisgICAgICB0aGF0IHRoZSBleGlzdGluZyBzdWJzY3JpcHRp b24gaXMgYW55dGhpbmcgbGlrZSB0aGUgb25lIHRoYXQgd291bGQgaGF2ZQorICAgICAgYmVlbiBj cmVhdGVkLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5 PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5zdWJzY3JpcHRpb25fbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgogICAgIDxsaXN0 aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggZjRiYTU3MjY5 Ny4uNDFlNWYyYzNlMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRp b25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAg LTc2NiwxMCArNzY2LDIyIEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCXB1Ym9pZCA9IEdldFN5c0NhY2hlT2lkMShQ VUJMSUNBVElPTk5BTUUsIEFudW1fcGdfcHVibGljYXRpb25fb2lkLAogCQkJCQkJCSBDU3RyaW5n R2V0RGF0dW0oc3RtdC0+cHVibmFtZSkpOwogCWlmIChPaWRJc1ZhbGlkKHB1Ym9pZCkpCi0JCWVy ZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKLQkJ CQkgZXJybXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAotCQkJCQkJc3Rt dC0+cHVibmFtZSkpKTsKKwl7CisJCWlmIChzdG10LT5pZl9ub3RfZXhpc3RzKQorCQl7CisJCQll cmVwb3J0KE5PVElDRSwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAor CQkJCQllcnJtc2coInB1YmxpY2F0aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmci LAorCQkJCQkJICAgc3RtdC0+cHVibmFtZSkpOworCQkJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNs dXNpdmVMb2NrKTsKKwkJCXJldHVybiBJbnZhbGlkT2JqZWN0QWRkcmVzczsKKwkJfQorCQllbHNl CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpF Q1QpLAorCQkJCQllcnJtc2coInB1YmxpY2F0aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsCisJ CQkJCQkgICBzdG10LT5wdWJuYW1lKSkpOworCX0KIAogCS8qIEZvcm0gYSB0dXBsZS4gKi8KIAlt ZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJz Y3JpcHRpb25jbWRzLmMKaW5kZXggNDY0ZGI2ZDI0Ny4uZjJkZDU5MjQ0YiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtNTkzLDEwICs1OTMsMjAgQEAgQ3JlYXRl U3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAq c3RtdCwKIAkJCQkJCQlNeURhdGFiYXNlSWQsIENTdHJpbmdHZXREYXR1bShzdG10LT5zdWJuYW1l KSk7CiAJaWYgKE9pZElzVmFsaWQoc3ViaWQpKQogCXsKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQko ZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAotCQkJCSBlcnJtc2coInN1YnNjcmlw dGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAotCQkJCQkJc3RtdC0+c3VibmFtZSkpKTsKKwkJ aWYgKHN0bXQtPmlmX25vdF9leGlzdHMpCisJCXsKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQll cnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCWVycm1zZygic3Vic2NyaXB0 aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmciLAorCQkJCQkJICAgc3RtdC0+c3Vi bmFtZSkpOworCQkJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwkJCXJldHVy biBJbnZhbGlkT2JqZWN0QWRkcmVzczsKKwkJfQorCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQllcnJtc2coInN1 YnNjcmlwdGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJCXN0bXQtPnN1Ym5hbWUp KSk7CiAJfQogCiAJaWYgKCFJc1NldChvcHRzLnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfU0xPVF9O QU1FKSAmJgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYTAxMzgzODJhMS4uYWJmZDMzOTE0YyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC0xMDM3MSw2ICsxMDM3MSwxNiBAQCBDcmVhdGVQdWJsaWNhdGlvblN0bXQ6CiAKIAkJ CQkJbi0+cHVibmFtZSA9ICQzOwogCQkJCQluLT5vcHRpb25zID0gJDQ7CisJCQkJCW4tPmlmX25v dF9leGlzdHMgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JF QVRFIFBVQkxJQ0FUSU9OIElGX1AgTk9UIEVYSVNUUyBuYW1lIG9wdF9kZWZpbml0aW9uCisJCQkJ eworCQkJCQlDcmVhdGVQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVQdWJsaWNh dGlvblN0bXQpOworCisJCQkJCW4tPnB1Ym5hbWUgPSAkNjsKKwkJCQkJbi0+b3B0aW9ucyA9ICQ3 OworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwog CQkJCX0KIAkJCXwgQ1JFQVRFIFBVQkxJQ0FUSU9OIG5hbWUgRk9SIEFMTCBUQUJMRVMgb3B0X2Rl ZmluaXRpb24KQEAgLTEwMzgwLDYgKzEwMzkwLDE3IEBAIENyZWF0ZVB1YmxpY2F0aW9uU3RtdDoK IAkJCQkJbi0+cHVibmFtZSA9ICQzOwogCQkJCQluLT5vcHRpb25zID0gJDc7CiAJCQkJCW4tPmZv cl9hbGxfdGFibGVzID0gdHJ1ZTsKKwkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOworCQkJ CQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gSUZfUCBO T1QgRVhJU1RTIG5hbWUgRk9SIEFMTCBUQUJMRVMgb3B0X2RlZmluaXRpb24KKwkJCQl7CisJCQkJ CUNyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVB1YmxpY2F0aW9uU3Rt dCk7CisKKwkJCQkJbi0+cHVibmFtZSA9ICQ2OworCQkJCQluLT5vcHRpb25zID0gJDEwOworCQkJ CQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7CisJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVl OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQkJfCBDUkVBVEUgUFVCTElDQVRJT04g bmFtZSBGT1IgcHViX29ial9saXN0IG9wdF9kZWZpbml0aW9uCkBAIC0xMDM4OSw2ICsxMDQxMCwx OCBAQCBDcmVhdGVQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKIAkJCQkJ bi0+b3B0aW9ucyA9ICQ2OwogCQkJCQluLT5wdWJvYmplY3RzID0gKExpc3QgKikgJDU7CisJCQkJ CW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKKwkJCQkJcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChu LT5wdWJvYmplY3RzLCB5eXNjYW5uZXIpOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQor CQkJfCBDUkVBVEUgUFVCTElDQVRJT04gSUZfUCBOT1QgRVhJU1RTIG5hbWUgRk9SIHB1Yl9vYmpf bGlzdCBvcHRfZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJQ3JlYXRlUHVibGljYXRpb25TdG10ICpu ID0gbWFrZU5vZGUoQ3JlYXRlUHVibGljYXRpb25TdG10KTsKKworCQkJCQluLT5wdWJuYW1lID0g JDY7CisJCQkJCW4tPm9wdGlvbnMgPSAkOTsKKwkJCQkJbi0+cHVib2JqZWN0cyA9IChMaXN0ICop ICQ4OworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJcHJlcHJvY2Vzc19wdWJv YmpfbGlzdChuLT5wdWJvYmplY3RzLCB5eXNjYW5uZXIpOwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQpAQCAtMTA1NjQsNiArMTA1OTcsMTggQEAgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdDoK IAkJCQkJbi0+Y29ubmluZm8gPSAkNTsKIAkJCQkJbi0+cHVibGljYXRpb24gPSAkNzsKIAkJCQkJ bi0+b3B0aW9ucyA9ICQ4OworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CisJCQkJCSQk ID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBTVUJTQ1JJUFRJT04gSUZfUCBOT1Qg RVhJU1RTIG5hbWUgQ09OTkVDVElPTiBTY29uc3QgUFVCTElDQVRJT04gbmFtZV9saXN0IG9wdF9k ZWZpbml0aW9uCisJCQkJeworCQkJCQlDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpuID0KKwkJCQkJ CW1ha2VOb2RlKENyZWF0ZVN1YnNjcmlwdGlvblN0bXQpOworCQkJCQluLT5zdWJuYW1lID0gJDY7 CisJCQkJCW4tPmNvbm5pbmZvID0gJDg7CisJCQkJCW4tPnB1YmxpY2F0aW9uID0gJDEwOworCQkJ CQluLT5vcHRpb25zID0gJDExOworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJ JCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDM3 MWFhMGZmYzUuLmM0N2E4Nzk3ZWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM4NzUsNiAr Mzg3NSw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVB1YmxpY2F0aW9uU3RtdAogCUxpc3QJICAg Km9wdGlvbnM7CQkvKiBMaXN0IG9mIERlZkVsZW0gbm9kZXMgKi8KIAlMaXN0CSAgICpwdWJvYmpl Y3RzOwkJLyogT3B0aW9uYWwgbGlzdCBvZiBwdWJsaWNhdGlvbiBvYmplY3RzICovCiAJYm9vbAkJ Zm9yX2FsbF90YWJsZXM7IC8qIFNwZWNpYWwgcHVibGljYXRpb24gZm9yIGFsbCB0YWJsZXMgaW4g ZGIgKi8KKwlib29sCQlpZl9ub3RfZXhpc3RzOyAgLyogSnVzdCBkbyBub3RoaW5nIGlmIGl0IGFs cmVhZHkgZXhpc3RzPyAqLwogfSBDcmVhdGVQdWJsaWNhdGlvblN0bXQ7CiAKIHR5cGVkZWYgZW51 bSBBbHRlclB1YmxpY2F0aW9uQWN0aW9uCkBAIC0zOTA5LDYgKzM5MTAsNyBAQCB0eXBlZGVmIHN0 cnVjdCBDcmVhdGVTdWJzY3JpcHRpb25TdG10CiAJY2hhcgkgICAqY29ubmluZm87CQkvKiBDb25u ZWN0aW9uIHN0cmluZyB0byBwdWJsaXNoZXIgKi8KIAlMaXN0CSAgICpwdWJsaWNhdGlvbjsJLyog T25lIG9yIG1vcmUgcHVibGljYXRpb24gdG8gc3Vic2NyaWJlIHRvICovCiAJTGlzdAkgICAqb3B0 aW9uczsJCS8qIExpc3Qgb2YgRGVmRWxlbSBub2RlcyAqLworCWJvb2wJCWlmX25vdF9leGlzdHM7 ICAvKiBKdXN0IGRvIG5vdGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHM/ICovCiB9IENyZWF0ZVN1 YnNjcmlwdGlvblN0bXQ7CiAKIHR5cGVkZWYgZW51bSBBbHRlclN1YnNjcmlwdGlvblR5cGUKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggNDI3Zjg3ZWEwNy4u MDQ3NWRmZmRjZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNh dGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQK QEAgLTksNiArOSw4IEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3NfcHVibGlj YXRpb25fdXNlcic7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1Yl9kZWZhdWx0OwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsK K0NSRUFURSBQVUJMSUNBVElPTiBJRiBOT1QgRVhJU1RTIHRlc3RwdWJfZGVmYXVsdDsKK05PVElD RTogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2RlZmF1bHQiIGFscmVhZHkgZXhpc3RzLCBza2lwcGlu ZwogQ09NTUVOVCBPTiBQVUJMSUNBVElPTiB0ZXN0cHViX2RlZmF1bHQgSVMgJ3Rlc3QgcHVibGlj YXRpb24nOwogU0VMRUNUIG9ial9kZXNjcmlwdGlvbihwLm9pZCwgJ3BnX3B1YmxpY2F0aW9uJykg RlJPTSBwZ19wdWJsaWNhdGlvbiBwOwogIG9ial9kZXNjcmlwdGlvbiAgCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggM2Y5OWIxNDM5NC4uNzdkMmM0MWM0 MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAtMzEs NiArMzEsOCBAQCBFUlJPUjogIHB1YmxpY2F0aW9uIG5hbWUgImZvbyIgdXNlZCBtb3JlIHRoYW4g b25jZQogQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5l Y3QgPSBmYWxzZSk7CiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgorQ1JFQVRFIFNVQlNDUklQVElPTiBJ RiBOT1QgRVhJU1RTIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlKTsK K05PVElDRTogIHN1YnNjcmlwdGlvbiAicmVncmVzc190ZXN0c3ViIiBhbHJlYWR5IGV4aXN0cywg c2tpcHBpbmcKIENPTU1FTlQgT04gU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBJUyAndGVz dCBzdWJzY3JpcHRpb24nOwogU0VMRUNUIG9ial9kZXNjcmlwdGlvbihzLm9pZCwgJ3BnX3N1YnNj cmlwdGlvbicpIEZST00gcGdfc3Vic2NyaXB0aW9uIHM7CiAgIG9ial9kZXNjcmlwdGlvbiAgCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKaW5kZXggYTQ3YzU5MzlkNS4uMTQ0NDJjZThi MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTAsNiArMTAsNyBAQCBT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdyZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXInOwogU0VU IGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZGVmYXVsdDsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitDUkVBVEUgUFVCTElDQVRJ T04gSUYgTk9UIEVYSVNUUyB0ZXN0cHViX2RlZmF1bHQ7CiAKIENPTU1FTlQgT04gUFVCTElDQVRJ T04gdGVzdHB1Yl9kZWZhdWx0IElTICd0ZXN0IHB1YmxpY2F0aW9uJzsKIFNFTEVDVCBvYmpfZGVz Y3JpcHRpb24ocC5vaWQsICdwZ19wdWJsaWNhdGlvbicpIEZST00gcGdfcHVibGljYXRpb24gcDsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCmluZGV4IDcyODFmNWZlZTIuLmU5MDUw ZjA5ZDUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbApAQCAtMjYsNiArMjYs NyBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogCiAtLSBvawogQ1JFQVRFIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSk7CitDUkVBVEUgU1VC U0NSSVBUSU9OIElGIE5PVCBFWElTVFMgcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0 ID0gZmFsc2UpOwogCiBDT01NRU5UIE9OIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgSVMg J3Rlc3Qgc3Vic2NyaXB0aW9uJzsKIFNFTEVDVCBvYmpfZGVzY3JpcHRpb24ocy5vaWQsICdwZ19z dWJzY3JpcHRpb24nKSBGUk9NIHBnX3N1YnNjcmlwdGlvbiBzOwotLSAKMi4zNC4xCgo= --000000000000ddd85305f6b4f426--