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 1tP3m2-009y5j-O4 for pgsql-hackers@arkaria.postgresql.org; Sat, 21 Dec 2024 18:00:23 +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 1tP3m1-00Az4b-QO for pgsql-hackers@arkaria.postgresql.org; Sat, 21 Dec 2024 18:00:21 +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 1tP3m1-00Ayz6-6Q for pgsql-hackers@lists.postgresql.org; Sat, 21 Dec 2024 18:00:21 +0000 Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tP3lx-000vjl-BD for pgsql-hackers@postgresql.org; Sat, 21 Dec 2024 18:00:20 +0000 Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-5d3e829ff44so7289454a12.0 for ; Sat, 21 Dec 2024 10:00:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734804016; x=1735408816; darn=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=G5MiqtHq1LkZOTdqx6C7j+4/X7Xd2MsTeh6r4gpzROw=; b=IVf1vqPvSJ6GNwcNTQY0vcDz+ggxqiw26t3OKhXkd3sd4IRS+ZSWJEcMzG/DbHi10M SoRL2RJ+cm0Mn8WOE82Edq5lh3TAS1RC7bV1awXIj911IRaTycG60kNMOe0MXZy96Pc1 AnTo0PW+PDn7woNlBizk8KlzNRmdOqhVSZz/tQAr+09onhzNkxC7YO+JzHoAewXWf+aP Zh8wtmKQS4xEJfYNXZhOSKv6fIlm6psNoAfdWmIYDUd+mMcR7M/a2fKOQMZJfoS1ygGH z+UytK+umw3Jy1f6WH8kxZ9tyXI9VAdOX/k9yv+1+tK0JwLnNHemu8Lb/y32z0wxsXzS Z/qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734804016; x=1735408816; 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=G5MiqtHq1LkZOTdqx6C7j+4/X7Xd2MsTeh6r4gpzROw=; b=fXBHTC3rCRQWfM0f0XQ9U6VrNe9BPrcdHDnE9/Pr6CTAmEuSS9+QYFmY4dWQLyZAhj bMJZFQ/hDKjfHrXHFjHlXB7UQ5VCCIAtDJtD/KXHedjzrn9bH/AnGM7gk/I6BvK9cfSJ X1+eXkDSuuJN2gJrx0/9PXqla/z+rHhPWrziOD2P9B/eyGco/oodhAEWLfG4lsA74hPW zTTclz8d0fMlw0tuD906UYGXeSwdcB3IuErfHZeYFa13zyMuOmtX+OtnJNzEYAuT3rND hFYVToQGmGIPhzPRD4EkxcPijPP68DOdImlLUTdAB5MmaKVmpwHTSGwD1F1fBescNVB3 b85A== X-Gm-Message-State: AOJu0YzAlIGSoGKc4UxxE0ljlvKskbl11Jlp3GMfHtn+DZRkJxoca4WW pd7EIKJOnhi+n8/AGoo21kBjWuCpfeVWcpkkVjR4X3tkrg23tjrNd1z6b8XR6XhP8Y29Cv4jgDx FWaMmalSbUo0dTIaT128bTJGEXSQ= X-Gm-Gg: ASbGnctg9CAIFMyiwujEEf40zcKCG0N9eTO35gmGoFgW+RQvNLw0ACM9NGDfQtJnLnc CereFQdzThnSCVqc5xb4B1+QiPJEgCT1X1IH85eqjuJj6LwgoM7a1xOexU6FgaLwFoQb2tmA= X-Google-Smtp-Source: AGHT+IE2UVhcbb0nKHZdlfyal8Lf8Rokw4ZXuiLXGDod7VHNYaka9nH5xiO0zsypn3NVf3KQhFFxG76s+6/d+2c3Caw= X-Received: by 2002:a05:6402:270f:b0:5d3:fcca:cab1 with SMTP id 4fb4d7f45d1cf-5d80248209dmr10407673a12.15.1734804016230; Sat, 21 Dec 2024 10:00:16 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Michail Nikolaev Date: Sat, 21 Dec 2024 19:00:01 +0100 Message-ID: Subject: Re: Revisiting {CREATE INDEX, REINDEX} CONCURRENTLY improvements To: Matthias van de Meent Cc: PostgreSQL Hackers , Andrey Borodin , Melanie Plageman Content-Type: multipart/mixed; boundary="00000000000024b9660629cb89c8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000024b9660629cb89c8 Content-Type: multipart/alternative; boundary="00000000000024b9650629cb89c6" --00000000000024b9650629cb89c6 Content-Type: text/plain; charset="UTF-8" Hello! Added STIR access method, next step is validating indexes using it. Best regards, Mikhail. > --00000000000024b9650629cb89c6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello!

Added STIR access met= hod, next step is validating indexes using it.

Bes= t regards,
Mikhail.
--00000000000024b9650629cb89c6-- --00000000000024b9660629cb89c8 Content-Type: application/octet-stream; name="v7-0001-this-is-https-commitfest.postgresql.org-50-5160-m.patch" Content-Disposition: attachment; filename="v7-0001-this-is-https-commitfest.postgresql.org-50-5160-m.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4yh51b20 RnJvbSAxMmVmYjgyMjA2Y2VlNzg0M2JmMTdjY2FiYWNjOTE0MzVkMGJhYzVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAzMCBOb3YgMjAyNCAxMTozNjoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjcgMS82 XSB0aGlzIGlzIGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy81MC81MTYwLwogbWVy Z2VkIGluIHNpbmdsZSBjb21taXQuIGl0IGlzIHJlcXVpcmVkIGZvciBzdGFiaWxpdHkgb2Ygc3Ry ZXNzIHRlc3RzLgoKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyAgICAgICAg ICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jICAgICAg ICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFydGl0aW9uLmMgICAgICAg ICAgfCAxMTkgKysrKysrKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUu YyAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jICAg ICAgICAgIHwgMTM1ICsrKysrKystLS0KIHNyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5j ICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMv TWFrZWZpbGUgICAgfCAgIDcgKy0KIC4uLi9leHBlY3RlZC9pbmRleF9jb25jdXJyZW50bHlfdXBz ZXJ0Lm91dCAgICB8ICA4MCArKysrKysKIC4uLi9pbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3By ZWRpY2F0ZS5vdXQgICB8ICA4MCArKysrKysKIC4uLi9leHBlY3RlZC9yZWluZGV4X2NvbmN1cnJl bnRseV91cHNlcnQub3V0ICB8IDIzOCArKysrKysrKysrKysrKysrKysKIC4uLm5kZXhfY29uY3Vy cmVudGx5X3Vwc2VydF9vbl9jb25zdHJhaW50Lm91dCB8IDIzOCArKysrKysrKysrKysrKysrKysK IC4uLmVpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3BhcnRpdGlvbmVkLm91dCB8IDIzOCArKysr KysrKysrKysrKysrKysKIHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNvbi5i dWlsZCB8ICAxMSArCiAuLi4vc3BlY3MvaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydC5zcGVjICAg ICAgfCAgNjggKysrKysKIC4uLi9pbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3ByZWRpY2F0ZS5z cGVjICB8ICA3MCArKysrKysKIC4uLi9zcGVjcy9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnQu c3BlYyAgICB8ICA4NiArKysrKysrCiAuLi5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9vbl9jb25z dHJhaW50LnNwZWMgfCAgODYgKysrKysrKwogLi4uaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9w YXJ0aXRpb25lZC5zcGVjIHwgIDg4ICsrKysrKysKIDE4IGZpbGVzIGNoYW5nZWQsIDE1MDUgaW5z ZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv bW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2luZGV4X2NvbmN1cnJlbnRseV91cHNl cnQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9p bnRzL2V4cGVjdGVkL2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnRfcHJlZGljYXRlLm91dAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3Rl ZC9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL3JlaW5kZXhfY29uY3VycmVu dGx5X3Vwc2VydF9vbl9jb25zdHJhaW50Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9yZWluZGV4X2NvbmN1cnJlbnRseV91 cHNlcnRfcGFydGl0aW9uZWQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxl cy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnQuc3BlYwog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVj cy9pbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3ByZWRpY2F0ZS5zcGVjCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL3JlaW5kZXhfY29u Y3VycmVudGx5X3Vwc2VydC5zcGVjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxl cy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9vbl9j b25zdHJhaW50LnNwZWMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL2luamVj dGlvbl9wb2ludHMvc3BlY3MvcmVpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3BhcnRpdGlvbmVk LnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCmluZGV4IDQwNDljZTFhMTBmLi45MzI4NTRk NmM2MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKQEAgLTE3NjYsNiArMTc2Niw3IEBAIERl ZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCSAqIGJlZm9yZSB0aGUgcmVmZXJlbmNlIHNuYXAgd2Fz IHRha2VuLCB3ZSBoYXZlIHRvIHdhaXQgb3V0IGFueQogCSAqIHRyYW5zYWN0aW9ucyB0aGF0IG1p Z2h0IGhhdmUgb2xkZXIgc25hcHNob3RzLgogCSAqLworCUlOSkVDVElPTl9QT0lOVCgiZGVmaW5l X2luZGV4X2JlZm9yZV9zZXRfdmFsaWQiKTsKIAlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFt KFBST0dSRVNTX0NSRUFURUlEWF9QSEFTRSwKIAkJCQkJCQkJIFBST0dSRVNTX0NSRUFURUlEWF9Q SEFTRV9XQUlUXzMpOwogCVdhaXRGb3JPbGRlclNuYXBzaG90cyhsaW1pdFhtaW4sIHRydWUpOwpA QCAtNDIwNiw3ICs0MjA3LDcgQEAgUmVpbmRleFJlbGF0aW9uQ29uY3VycmVudGx5KGNvbnN0IFJl aW5kZXhTdG10ICpzdG10LCBPaWQgcmVsYXRpb25PaWQsIGNvbnN0IFJlaW4KIAkgKiB0aGUgc2Ft ZSB0aW1lIHRvIG1ha2Ugc3VyZSB3ZSBvbmx5IGdldCBjb25zdHJhaW50IHZpb2xhdGlvbnMgZnJv bSB0aGUKIAkgKiBpbmRleGVzIHdpdGggdGhlIGNvcnJlY3QgbmFtZXMuCiAJICovCi0KKwlJTkpF Q1RJT05fUE9JTlQoInJlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwIik7 CiAJU3RhcnRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKIAogCS8qCkBAIC00Mjg1LDYgKzQyODYsNyBA QCBSZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkoY29uc3QgUmVpbmRleFN0bXQgKnN0bXQsIE9p ZCByZWxhdGlvbk9pZCwgY29uc3QgUmVpbgogCSAqIGluZGV4X2Ryb3AoKSBmb3IgbW9yZSBkZXRh aWxzLgogCSAqLwogCisJSU5KRUNUSU9OX1BPSU5UKCJyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJl bnRseV9iZWZvcmVfc2V0X2RlYWQiKTsKIAlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBS T0dSRVNTX0NSRUFURUlEWF9QSEFTRSwKIAkJCQkJCQkJIFBST0dSRVNTX0NSRUFURUlEWF9QSEFT RV9XQUlUXzQpOwogCVdhaXRGb3JMb2NrZXJzTXVsdGlwbGUobG9ja1RhZ3MsIEFjY2Vzc0V4Y2x1 c2l2ZUxvY2ssIHRydWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0lu ZGV4aW5nLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYwppbmRleCBmMGE1 Zjg4NzlhOS4uODIwNzQ5MjM5Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNJbmRleGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCkBA IC0xMTcsNiArMTE3LDcgQEAKICNpbmNsdWRlICJ1dGlscy9tdWx0aXJhbmdldHlwZXMuaCIKICNp bmNsdWRlICJ1dGlscy9yYW5nZXR5cGVzLmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgor I2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2ludC5oIgogCiAvKiB3YWl0TW9kZSBhcmd1bWVu dCB0byBjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnQoKSAqLwogdHlwZWRlZiBl bnVtCkBAIC05MzYsNiArOTM3LDggQEAgcmV0cnk6CiAJZWNvbnRleHQtPmVjeHRfc2NhbnR1cGxl ID0gc2F2ZV9zY2FudHVwbGU7CiAKIAlFeGVjRHJvcFNpbmdsZVR1cGxlVGFibGVTbG90KGV4aXN0 aW5nX3Nsb3QpOworCWlmICghY29uZmxpY3QpCisJCUlOSkVDVElPTl9QT0lOVCgiY2hlY2tfZXhj bHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Iik7CiAKIAlyZXR1cm4gIWNv bmZsaWN0OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcnRpdGlv bi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcnRpdGlvbi5jCmluZGV4IDc2NTE4ODYy MjkxLi5hZWVlZTQxZDVmMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Bh cnRpdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uYwpAQCAt NDgzLDYgKzQ4Myw0OCBAQCBFeGVjRmluZFBhcnRpdGlvbihNb2RpZnlUYWJsZVN0YXRlICptdHN0 YXRlLAogCXJldHVybiBycmk7CiB9CiAKKy8qCisgKiBJc0luZGV4Q29tcGF0aWJsZUFzQXJiaXRl cgorICogCQlDaGVja3MgaWYgdGhlIGluZGV4ZXMgYXJlIGlkZW50aWNhbCBpbiB0ZXJtcyBvZiBi ZWluZyB1c2VkCisgKiAJCWFzIGFyYml0ZXJzIGZvciB0aGUgSU5TRVJUIE9OIENPTkZMSUNUIG9w ZXJhdGlvbiBieSBjb21wYXJpbmcKKyAqIAkJdGhlbSB0byB0aGUgcHJvdmlkZWQgYXJiaXRlciBp bmRleC4KKyAqCisgKiBSZXR1cm5zIHRoZSB0cnVlIGlmIGluZGV4ZXMgYXJlIGNvbXBhdGlibGUu CisgKi8KK3N0YXRpYyBib29sCitJc0luZGV4Q29tcGF0aWJsZUFzQXJiaXRlcihSZWxhdGlvbglh cmJpdGVySW5kZXhSZWxhdGlvbiwKKwkJCQkJCSAgIEluZGV4SW5mbyAgKmFyYml0ZXJJbmRleElu Zm8sCisJCQkJCQkgICBSZWxhdGlvbglpbmRleFJlbGF0aW9uLAorCQkJCQkJICAgSW5kZXhJbmZv ICAqaW5kZXhJbmZvKQoreworCWludCBpOworCisJaWYgKGFyYml0ZXJJbmRleEluZm8tPmlpX1Vu aXF1ZSAhPSBpbmRleEluZm8tPmlpX1VuaXF1ZSkKKwkJcmV0dXJuIGZhbHNlOworCS8qIGl0IGlz IG5vdCBzdXBwb3J0ZWQgZm9yIGNhc2VzIG9mIGV4Y2x1c2lvbiBjb25zdHJhaW50cy4gKi8KKwlp ZiAoYXJiaXRlckluZGV4SW5mby0+aWlfRXhjbHVzaW9uT3BzICE9IE5VTEwgfHwgaW5kZXhJbmZv LT5paV9FeGNsdXNpb25PcHMgIT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChhcmJpdGVy SW5kZXhSZWxhdGlvbi0+cmRfaW5kZXgtPmluZG5rZXlhdHRzICE9IGluZGV4UmVsYXRpb24tPnJk X2luZGV4LT5pbmRua2V5YXR0cykKKwkJcmV0dXJuIGZhbHNlOworCisJZm9yIChpID0gMDsgaSA8 IGluZGV4UmVsYXRpb24tPnJkX2luZGV4LT5pbmRua2V5YXR0czsgaSsrKQorCXsKKwkJaW50CQkJ YXJiaXRlckF0dG9ObyA9IGFyYml0ZXJJbmRleFJlbGF0aW9uLT5yZF9pbmRleC0+aW5ka2V5LnZh bHVlc1tpXTsKKwkJaW50CQkJYXR0b05vID0gaW5kZXhSZWxhdGlvbi0+cmRfaW5kZXgtPmluZGtl eS52YWx1ZXNbaV07CisJCWlmIChhcmJpdGVyQXR0b05vICE9IGF0dG9ObykKKwkJCXJldHVybiBm YWxzZTsKKwl9CisKKwlpZiAobGlzdF9kaWZmZXJlbmNlKFJlbGF0aW9uR2V0SW5kZXhFeHByZXNz aW9ucyhhcmJpdGVySW5kZXhSZWxhdGlvbiksCisJCQkJCQlSZWxhdGlvbkdldEluZGV4RXhwcmVz c2lvbnMoaW5kZXhSZWxhdGlvbikpICE9IE5JTCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKGxp c3RfZGlmZmVyZW5jZShSZWxhdGlvbkdldEluZGV4UHJlZGljYXRlKGFyYml0ZXJJbmRleFJlbGF0 aW9uKSwKKwkJCQkJCVJlbGF0aW9uR2V0SW5kZXhQcmVkaWNhdGUoaW5kZXhSZWxhdGlvbikpICE9 IE5JTCkKKwkJcmV0dXJuIGZhbHNlOworCXJldHVybiB0cnVlOworfQorCiAvKgogICogRXhlY0lu aXRQYXJ0aXRpb25JbmZvCiAgKgkJTG9jayB0aGUgcGFydGl0aW9uIGFuZCBpbml0aWFsaXplIFJl c3VsdFJlbEluZm8uICBBbHNvIHNldHVwIG90aGVyCkBAIC02OTMsNiArNzM1LDggQEAgRXhlY0lu aXRQYXJ0aXRpb25JbmZvKE1vZGlmeVRhYmxlU3RhdGUgKm10c3RhdGUsIEVTdGF0ZSAqZXN0YXRl LAogCQlpZiAocm9vdFJlc3VsdFJlbEluZm8tPnJpX29uQ29uZmxpY3RBcmJpdGVySW5kZXhlcyAh PSBOSUwpCiAJCXsKIAkJCUxpc3QJICAgKmNoaWxkSWR4czsKKwkJCUxpc3QgCSAgICpub25BbmNl c3RvcklkeHMgPSBOSUw7CisJCQlpbnQJCSAgIGksIGosIGFkZGl0aW9uYWxfYXJiaXRlcnMgPSAw OwogCiAJCQljaGlsZElkeHMgPSBSZWxhdGlvbkdldEluZGV4TGlzdChsZWFmX3BhcnRfcnJpLT5y aV9SZWxhdGlvbkRlc2MpOwogCkBAIC03MDMsMjMgKzc0Nyw3NCBAQCBFeGVjSW5pdFBhcnRpdGlv bkluZm8oTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJCQkJTGlz dENlbGwgICAqbGMyOwogCiAJCQkJYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9hbmNlc3RvcnMo Y2hpbGRJZHgpOwotCQkJCWZvcmVhY2gobGMyLCByb290UmVzdWx0UmVsSW5mby0+cmlfb25Db25m bGljdEFyYml0ZXJJbmRleGVzKQorCQkJCWlmIChhbmNlc3RvcnMpCiAJCQkJewotCQkJCQlpZiAo bGlzdF9tZW1iZXJfb2lkKGFuY2VzdG9ycywgbGZpcnN0X29pZChsYzIpKSkKLQkJCQkJCWFyYml0 ZXJJbmRleGVzID0gbGFwcGVuZF9vaWQoYXJiaXRlckluZGV4ZXMsIGNoaWxkSWR4KTsKKwkJCQkJ Zm9yZWFjaChsYzIsIHJvb3RSZXN1bHRSZWxJbmZvLT5yaV9vbkNvbmZsaWN0QXJiaXRlckluZGV4 ZXMpCisJCQkJCXsKKwkJCQkJCWlmIChsaXN0X21lbWJlcl9vaWQoYW5jZXN0b3JzLCBsZmlyc3Rf b2lkKGxjMikpKQorCQkJCQkJCWFyYml0ZXJJbmRleGVzID0gbGFwcGVuZF9vaWQoYXJiaXRlcklu ZGV4ZXMsIGNoaWxkSWR4KTsKKwkJCQkJfQogCQkJCX0KKwkJCQllbHNlIC8qIE5vIGFuY2VzdG9y IHdhcyBmb3VuZCBmb3IgdGhhdCBpbmRleC4gU2F2ZSBpdCBmb3IgcmVjaGVja2luZyBsYXRlci4g Ki8KKwkJCQkJbm9uQW5jZXN0b3JJZHhzID0gbGFwcGVuZF9vaWQobm9uQW5jZXN0b3JJZHhzLCBj aGlsZElkeCk7CiAJCQkJbGlzdF9mcmVlKGFuY2VzdG9ycyk7CiAJCQl9CisKKwkJCS8qCisJCQkg KiBJZiBhbnkgbm9uLWFuY2VzdG9yIGluZGV4ZXMgYXJlIGZvdW5kLCB3ZSBuZWVkIHRvIGNvbXBh cmUgdGhlbSB3aXRoIG90aGVyCisJCQkgKiBpbmRleGVzIG9mIHRoZSByZWxhdGlvbiB0aGF0IHdp bGwgYmUgdXNlZCBhcyBhcmJpdGVycy4gVGhpcyBpcyBuZWNlc3NhcnkKKwkJCSAqIHdoZW4gYSBw YXJ0aXRpb25lZCBpbmRleCBpcyBwcm9jZXNzZWQgYnkgUkVJTkRFWCBDT05DVVJSRU5UTFkuIEJv dGggaW5kZXhlcworCQkJICogbXVzdCBiZSBjb25zaWRlcmVkIGFzIGFyYml0ZXJzIHRvIGVuc3Vy ZSB0aGF0IGFsbCBjb25jdXJyZW50IHRyYW5zYWN0aW9ucworCQkJICogdXNlIHRoZSBzYW1lIHNl dCBvZiBhcmJpdGVycy4KKwkJCSAqLworCQkJaWYgKG5vbkFuY2VzdG9ySWR4cykKKwkJCXsKKwkJ CQlmb3IgKGkgPSAwOyBpIDwgbGVhZl9wYXJ0X3JyaS0+cmlfTnVtSW5kaWNlczsgaSsrKQorCQkJ CXsKKwkJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChub25BbmNlc3RvcklkeHMsIGxlYWZfcGFydF9y cmktPnJpX0luZGV4UmVsYXRpb25EZXNjc1tpXS0+cmRfaW5kZXgtPmluZGV4cmVsaWQpKQorCQkJ CQl7CisJCQkJCQlSZWxhdGlvbiBub25BbmNlc3RvckluZGV4UmVsYXRpb24gPSBsZWFmX3BhcnRf cnJpLT5yaV9JbmRleFJlbGF0aW9uRGVzY3NbaV07CisJCQkJCQlJbmRleEluZm8gKm5vbkFuY2Vz dG9ySW5kZXhJbmZvID0gbGVhZl9wYXJ0X3JyaS0+cmlfSW5kZXhSZWxhdGlvbkluZm9baV07CisJ CQkJCQlBc3NlcnQoIWxpc3RfbWVtYmVyX29pZChhcmJpdGVySW5kZXhlcywgbm9uQW5jZXN0b3JJ bmRleFJlbGF0aW9uLT5yZF9pbmRleC0+aW5kZXhyZWxpZCkpOworCisJCQkJCQkvKiBJdCBpcyB0 b28gZWFybHkgdG8gdXMgbm9uLXJlYWR5IGluZGV4ZXMgYXMgYXJiaXRlcnMgKi8KKwkJCQkJCWlm ICghbm9uQW5jZXN0b3JJbmRleEluZm8tPmlpX1JlYWR5Rm9ySW5zZXJ0cykKKwkJCQkJCQljb250 aW51ZTsKKworCQkJCQkJZm9yIChqID0gMDsgaiA8IGxlYWZfcGFydF9ycmktPnJpX051bUluZGlj ZXM7IGorKykKKwkJCQkJCXsKKwkJCQkJCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFyYml0ZXJJbmRl eGVzLAorCQkJCQkJCQkJCQkJbGVhZl9wYXJ0X3JyaS0+cmlfSW5kZXhSZWxhdGlvbkRlc2NzW2pd LT5yZF9pbmRleC0+aW5kZXhyZWxpZCkpCisJCQkJCQkJeworCQkJCQkJCQlSZWxhdGlvbiBhcmJp dGVySW5kZXhSZWxhdGlvbiA9IGxlYWZfcGFydF9ycmktPnJpX0luZGV4UmVsYXRpb25EZXNjc1tq XTsKKwkJCQkJCQkJSW5kZXhJbmZvICphcmJpdGVySW5kZXhJbmZvID0gbGVhZl9wYXJ0X3JyaS0+ cmlfSW5kZXhSZWxhdGlvbkluZm9bal07CisKKwkJCQkJCQkJLyogSWYgbm9uLWFuY2VzdG9yIGlu ZGV4IGFyZSBjb21wYXRpYmxlIHRvIGFyYml0ZXIgLSB1c2UgaXQgYXMgYXJiaXRlciB0b28uICov CisJCQkJCQkJCWlmIChJc0luZGV4Q29tcGF0aWJsZUFzQXJiaXRlcihhcmJpdGVySW5kZXhSZWxh dGlvbiwgYXJiaXRlckluZGV4SW5mbywKKwkJCQkJCQkJCQkJCQkJCSAgIG5vbkFuY2VzdG9ySW5k ZXhSZWxhdGlvbiwgbm9uQW5jZXN0b3JJbmRleEluZm8pKQorCQkJCQkJCQl7CisJCQkJCQkJCQlh cmJpdGVySW5kZXhlcyA9IGxhcHBlbmRfb2lkKGFyYml0ZXJJbmRleGVzLAorCQkJCQkJCQkJCQkJ CQkJCSBub25BbmNlc3RvckluZGV4UmVsYXRpb24tPnJkX2luZGV4LT5pbmRleHJlbGlkKTsKKwkJ CQkJCQkJCWFkZGl0aW9uYWxfYXJiaXRlcnMrKzsKKwkJCQkJCQkJfQorCQkJCQkJCX0KKwkJCQkJ CX0KKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJCWxpc3RfZnJlZShub25BbmNlc3RvcklkeHMpOwor CisJCQkvKgorCQkJICogSWYgdGhlIHJlc3VsdGluZyBsaXN0cyBhcmUgb2YgaW5lcXVhbCBsZW5n dGgsIHNvbWV0aGluZyBpcyB3cm9uZy4KKwkJCSAqIChUaGlzIHNob3VsZG4ndCBoYXBwZW4sIHNp bmNlIGFyYml0ZXIgaW5kZXggc2VsZWN0aW9uIHNob3VsZCBub3QKKwkJCSAqIHBpY2sgdXAgYSBu b24tcmVhZHkgaW5kZXguKQorCQkJICoKKwkJCSAqIEJ1dCB3ZSBuZWVkIHRvIGNvbnNpZGVyIGFu IGFkZGl0aW9uYWwgYXJiaXRlciBpbmRleGVzIGFsc28uCisJCQkgKi8KKwkJCWlmIChsaXN0X2xl bmd0aChyb290UmVzdWx0UmVsSW5mby0+cmlfb25Db25mbGljdEFyYml0ZXJJbmRleGVzKSAhPQor CQkJCWxpc3RfbGVuZ3RoKGFyYml0ZXJJbmRleGVzKSAtIGFkZGl0aW9uYWxfYXJiaXRlcnMpCisJ CQkJZWxvZyhFUlJPUiwgImludmFsaWQgYXJiaXRlciBpbmRleCBsaXN0Iik7CiAJCX0KLQotCQkv KgotCQkgKiBJZiB0aGUgcmVzdWx0aW5nIGxpc3RzIGFyZSBvZiBpbmVxdWFsIGxlbmd0aCwgc29t ZXRoaW5nIGlzIHdyb25nLgotCQkgKiAoVGhpcyBzaG91bGRuJ3QgaGFwcGVuLCBzaW5jZSBhcmJp dGVyIGluZGV4IHNlbGVjdGlvbiBzaG91bGQgbm90Ci0JCSAqIHBpY2sgdXAgYW4gaW52YWxpZCBp bmRleC4pCi0JCSAqLwotCQlpZiAobGlzdF9sZW5ndGgocm9vdFJlc3VsdFJlbEluZm8tPnJpX29u Q29uZmxpY3RBcmJpdGVySW5kZXhlcykgIT0KLQkJCWxpc3RfbGVuZ3RoKGFyYml0ZXJJbmRleGVz KSkKLQkJCWVsb2coRVJST1IsICJpbnZhbGlkIGFyYml0ZXIgaW5kZXggbGlzdCIpOwogCQlsZWFm X3BhcnRfcnJpLT5yaV9vbkNvbmZsaWN0QXJiaXRlckluZGV4ZXMgPSBhcmJpdGVySW5kZXhlczsK IAogCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxl LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCAxMTYxNTIw Zjc2Yi4uMjNjZjRjNmI1NDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVN b2RpZnlUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5j CkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKICNpbmNsdWRlICJ1 dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMv aW5qZWN0aW9uX3BvaW50LmgiCiAKIAogdHlwZWRlZiBzdHJ1Y3QgTVRUYXJnZXRSZWxMb29rdXAK QEAgLTEwODcsNiArMTA4OCw3IEBAIEV4ZWNJbnNlcnQoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250 ZXh0LAogCQkJCQlyZXR1cm4gTlVMTDsKIAkJCQl9CiAJCQl9CisJCQlJTkpFQ1RJT05fUE9JTlQo ImV4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUiKTsKIAogCQkJLyoKIAkJCSAq IEJlZm9yZSB3ZSBzdGFydCBpbnNlcnRpb24gcHJvcGVyLCBhY3F1aXJlIG91ciAic3BlY3VsYXRp dmUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQuYyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQuYwppbmRleCAxNTMzOTBmMmRjOS4uNTZi NThkMWVkNzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQu YworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMKQEAgLTcxNCwxMiAr NzE0LDE0IEBAIGluZmVyX2FyYml0ZXJfaW5kZXhlcyhQbGFubmVySW5mbyAqcm9vdCkKIAlMaXN0 CSAgICppbmRleExpc3Q7CiAJTGlzdENlbGwgICAqbDsKIAotCS8qIE5vcm1hbGl6ZWQgaW5mZXJl bmNlIGF0dHJpYnV0ZXMgYW5kIGluZmVyZW5jZSBleHByZXNzaW9uczogKi8KLQlCaXRtYXBzZXQg ICppbmZlckF0dHJzID0gTlVMTDsKLQlMaXN0CSAgICppbmZlckVsZW1zID0gTklMOworCS8qIE5v cm1hbGl6ZWQgcmVxdWlyZWQgYXR0cmlidXRlcyBhbmQgZXhwcmVzc2lvbnM6ICovCisJQml0bWFw c2V0ICAqcmVxdWlyZWRBcmJpdGVyQXR0cnMgPSBOVUxMOworCUxpc3QJICAgKnJlcXVpcmVkQXJi aXRlckVsZW1zID0gTklMOworCUxpc3QJICAgKnJlcXVpcmVkSW5kZXhQcmVkRXhwcnMgPSAoTGlz dCAqKSBvbmNvbmZsaWN0LT5hcmJpdGVyV2hlcmU7CiAKIAkvKiBSZXN1bHRzICovCiAJTGlzdAkg ICAqcmVzdWx0cyA9IE5JTDsKKwlib29sCSAgIGZvdW5kVmFsaWQgPSBmYWxzZTsKIAogCS8qCiAJ ICogUXVpY2tseSByZXR1cm4gTklMIGZvciBPTiBDT05GTElDVCBETyBOT1RISU5HIHdpdGhvdXQg YW4gaW5mZXJlbmNlCkBAIC03NTQsOCArNzU2LDggQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVzKFBs YW5uZXJJbmZvICpyb290KQogCiAJCWlmICghSXNBKGVsZW0tPmV4cHIsIFZhcikpCiAJCXsKLQkJ CS8qIElmIG5vdCBhIHBsYWluIFZhciwganVzdCBzaG92ZSBpdCBpbiBpbmZlckVsZW1zIGZvciBu b3cgKi8KLQkJCWluZmVyRWxlbXMgPSBsYXBwZW5kKGluZmVyRWxlbXMsIGVsZW0tPmV4cHIpOwor CQkJLyogSWYgbm90IGEgcGxhaW4gVmFyLCBqdXN0IHNob3ZlIGl0IGluIHJlcXVpcmVkQXJiaXRl ckVsZW1zIGZvciBub3cgKi8KKwkJCXJlcXVpcmVkQXJiaXRlckVsZW1zID0gbGFwcGVuZChyZXF1 aXJlZEFyYml0ZXJFbGVtcywgZWxlbS0+ZXhwcik7CiAJCQljb250aW51ZTsKIAkJfQogCkBAIC03 NjcsMzAgKzc2OSw3NiBAQCBpbmZlcl9hcmJpdGVyX2luZGV4ZXMoUGxhbm5lckluZm8gKnJvb3Qp CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJIGVy cm1zZygid2hvbGUgcm93IHVuaXF1ZSBpbmRleCBpbmZlcmVuY2Ugc3BlY2lmaWNhdGlvbnMgYXJl IG5vdCBzdXBwb3J0ZWQiKSkpOwogCi0JCWluZmVyQXR0cnMgPSBibXNfYWRkX21lbWJlcihpbmZl ckF0dHJzLAorCQlyZXF1aXJlZEFyYml0ZXJBdHRycyA9IGJtc19hZGRfbWVtYmVyKHJlcXVpcmVk QXJiaXRlckF0dHJzLAogCQkJCQkJCQkJYXR0bm8gLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmli dXRlTnVtYmVyKTsKIAl9CiAKKwlpbmRleExpc3QgPSBSZWxhdGlvbkdldEluZGV4TGlzdChyZWxh dGlvbik7CisKIAkvKgogCSAqIExvb2t1cCBuYW1lZCBjb25zdHJhaW50J3MgaW5kZXguICBUaGlz IGlzIG5vdCBpbW1lZGlhdGVseSByZXR1cm5lZAotCSAqIGJlY2F1c2Ugc29tZSBhZGRpdGlvbmFs IHNhbml0eSBjaGVja3MgYXJlIHJlcXVpcmVkLgorCSAqIGJlY2F1c2Ugc29tZSBhZGRpdGlvbmFs IHNhbml0eSBjaGVja3MgYXJlIHJlcXVpcmVkLiBBZGRpdGlvbmFsbHksIHdlCisJICogbmVlZCB0 byBwcm9jZXNzIG90aGVyIGluZGV4ZXMgYXMgcG90ZW50aWFsIGFyYml0ZXJzIHRvIGFjY291bnQg Zm9yCisJICogY2FzZXMgd2hlcmUgUkVJTkRFWCBDT05DVVJSRU5UTFkgaXMgcHJvY2Vzc2luZyBh biBpbmRleCB1c2VkIGFzIGEKKwkgKiBuYW1lZCBjb25zdHJhaW50LgogCSAqLwogCWlmIChvbmNv bmZsaWN0LT5jb25zdHJhaW50ICE9IEludmFsaWRPaWQpCiAJewogCQlpbmRleE9pZEZyb21Db25z dHJhaW50ID0gZ2V0X2NvbnN0cmFpbnRfaW5kZXgob25jb25mbGljdC0+Y29uc3RyYWludCk7CiAK IAkJaWYgKGluZGV4T2lkRnJvbUNvbnN0cmFpbnQgPT0gSW52YWxpZE9pZCkKKwkJewogCQkJZXJl cG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0J CQkJCSBlcnJtc2coImNvbnN0cmFpbnQgaW4gT04gQ09ORkxJQ1QgY2xhdXNlIGhhcyBubyBhc3Nv Y2lhdGVkIGluZGV4IikpKTsKKwkJCQkJZXJybXNnKCJjb25zdHJhaW50IGluIE9OIENPTkZMSUNU IGNsYXVzZSBoYXMgbm8gYXNzb2NpYXRlZCBpbmRleCIpKSk7CisJCX0KKworCQkvKgorCQkgKiBG aW5kIHRoZSBuYW1lZCBjb25zdHJhaW50IGluZGV4IHRvIGV4dHJhY3QgaXRzIGF0dHJpYnV0ZXMg YW5kIHByZWRpY2F0ZXMuCisJCSAqIFdlIG9wZW4gYWxsIGluZGV4ZXMgaW4gdGhlIGxvb3AgdG8g YXZvaWQgZGVhZGxvY2sgb2YgY2hhbmdlZCBvcmRlciBvZiBsb2Nrcy4KKwkJICogKi8KKwkJZm9y ZWFjaChsLCBpbmRleExpc3QpCisJCXsKKwkJCU9pZAkJCWluZGV4b2lkID0gbGZpcnN0X29pZChs KTsKKwkJCVJlbGF0aW9uCWlkeFJlbDsKKwkJCUZvcm1fcGdfaW5kZXggaWR4Rm9ybTsKKwkJCUF0 dHJOdW1iZXIJbmF0dDsKKworCQkJaWR4UmVsID0gaW5kZXhfb3BlbihpbmRleG9pZCwgcnRlLT5y ZWxsb2NrbW9kZSk7CisJCQlpZHhGb3JtID0gaWR4UmVsLT5yZF9pbmRleDsKKworCQkJaWYgKGlk eEZvcm0tPmluZGlzcmVhZHkpCisJCQl7CisJCQkJaWYgKGluZGV4T2lkRnJvbUNvbnN0cmFpbnQg PT0gaWR4Rm9ybS0+aW5kZXhyZWxpZCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIFByZXBhcmUg cmVxdWlyZW1lbnRzIGZvciBvdGhlciBpbmRleGVzIHRvIGJlIHVzZWQgYXMgYXJiaXRlciB0b2dl dGhlcgorCQkJCQkgKiB3aXRoIGluZGV4T2lkRnJvbUNvbnN0cmFpbnQuIEl0IGlzIHJlcXVpcmVk IHRvIGludm9sdmUgYm90aCBlcXVhbHMgaW5kZXhlcworCQkJCQkgKiBpbiBjYXNlIG9mIFJFSU5E RVggQ09OQ1VSUkVOVExZLgorCQkJCQkgKi8KKwkJCQkJZm9yIChuYXR0ID0gMDsgbmF0dCA8IGlk eEZvcm0tPmluZG5rZXlhdHRzOyBuYXR0KyspCisJCQkJCXsKKwkJCQkJCWludAkJCWF0dG5vID0g aWR4UmVsLT5yZF9pbmRleC0+aW5ka2V5LnZhbHVlc1tuYXR0XTsKKworCQkJCQkJaWYgKGF0dG5v ICE9IDApCisJCQkJCQkJcmVxdWlyZWRBcmJpdGVyQXR0cnMgPSBibXNfYWRkX21lbWJlcihyZXF1 aXJlZEFyYml0ZXJBdHRycywKKwkJCQkJCQkJCQkJCQkJICBhdHRubyAtIEZpcnN0TG93SW52YWxp ZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOworCQkJCQl9CisJCQkJCXJlcXVpcmVkQXJiaXRlckVsZW1z ID0gUmVsYXRpb25HZXRJbmRleEV4cHJlc3Npb25zKGlkeFJlbCk7CisJCQkJCXJlcXVpcmVkSW5k ZXhQcmVkRXhwcnMgPSBSZWxhdGlvbkdldEluZGV4UHJlZGljYXRlKGlkeFJlbCk7CisJCQkJCS8q IFdlIGFyZSBkb25lLCBzbywgcXVpdGUgdGhlIGxvb3AuICovCisJCQkJCWluZGV4X2Nsb3NlKGlk eFJlbCwgTm9Mb2NrKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQkJaW5kZXhfY2xvc2Uo aWR4UmVsLCBOb0xvY2spOworCQl9CiAJfQogCiAJLyoKIAkgKiBVc2luZyB0aGF0IHJlcHJlc2Vu dGF0aW9uLCBpdGVyYXRlIHRocm91Z2ggdGhlIGxpc3Qgb2YgaW5kZXhlcyBvbiB0aGUKIAkgKiB0 YXJnZXQgcmVsYXRpb24gdG8gdHJ5IGFuZCBmaW5kIGEgbWF0Y2gKIAkgKi8KLQlpbmRleExpc3Qg PSBSZWxhdGlvbkdldEluZGV4TGlzdChyZWxhdGlvbik7Ci0KIAlmb3JlYWNoKGwsIGluZGV4TGlz dCkKIAl7CiAJCU9pZAkJCWluZGV4b2lkID0gbGZpcnN0X29pZChsKTsKQEAgLTgxMyw3ICs4NjEs MTMgQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVzKFBsYW5uZXJJbmZvICpyb290KQogCQlpZHhSZWwg PSBpbmRleF9vcGVuKGluZGV4b2lkLCBydGUtPnJlbGxvY2ttb2RlKTsKIAkJaWR4Rm9ybSA9IGlk eFJlbC0+cmRfaW5kZXg7CiAKLQkJaWYgKCFpZHhGb3JtLT5pbmRpc3ZhbGlkKQorCQkvKgorCQkg KiBXZSBuZWVkIHRvIGNvbnNpZGVyIGJvdGggaW5kaXN2YWxpZCBhbmQgaW5kaXNyZWFkeSBpbmRl eGVzIGJlY2F1c2UKKwkJICogdGhlbSBtYXkgYmVjb21lIGluZGlzdmFsaWQgYmVmb3JlIGV4ZWN1 dGlvbiBwaGFzZS4gSXQgaXMgcmVxdWlyZWQKKwkJICogdG8ga2VlcCBzZXQgb2YgaW5kZXhlcyB1 c2VkIGFzIGFyYml0ZXIgdG8gYmUgdGhlIHNhbWUgZm9yIGFsbAorCQkgKiBjb25jdXJyZW50IHRy YW5zYWN0aW9ucy4KKwkJICovCisJCWlmICghaWR4Rm9ybS0+aW5kaXNyZWFkeSkKIAkJCWdvdG8g bmV4dDsKIAogCQkvKgpAQCAtODMzLDI3ICs4ODcsMjMgQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVz KFBsYW5uZXJJbmZvICpyb290KQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShF UlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKIAkJCQkJCSBlcnJtc2coIk9OIENPTkZMSUNUIERP IFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRzIikpKTsKLQot CQkJcmVzdWx0cyA9IGxhcHBlbmRfb2lkKHJlc3VsdHMsIGlkeEZvcm0tPmluZGV4cmVsaWQpOwot CQkJbGlzdF9mcmVlKGluZGV4TGlzdCk7Ci0JCQlpbmRleF9jbG9zZShpZHhSZWwsIE5vTG9jayk7 Ci0JCQl0YWJsZV9jbG9zZShyZWxhdGlvbiwgTm9Mb2NrKTsKLQkJCXJldHVybiByZXN1bHRzOwor CQkJZ290byBmb3VuZDsKIAkJfQogCQllbHNlIGlmIChpbmRleE9pZEZyb21Db25zdHJhaW50ICE9 IEludmFsaWRPaWQpCiAJCXsKLQkJCS8qIE5vIHBvaW50IGluIGZ1cnRoZXIgd29yayBmb3IgaW5k ZXggaW4gbmFtZWQgY29uc3RyYWludCBjYXNlICovCi0JCQlnb3RvIG5leHQ7CisJCQkvKiBJbiB0 aGUgY2FzZSBvZiAiT04gY29uc3RyYWludF9uYW1lIERPIFVQREFURSIgd2UgbmVlZCB0byBza2lw IG5vbi11bmlxdWUgY2FuZGlkYXRlcy4gKi8KKwkJCWlmICghaWR4Rm9ybS0+aW5kaXN1bmlxdWUg JiYgb25jb25mbGljdC0+YWN0aW9uID09IE9OQ09ORkxJQ1RfVVBEQVRFKQorCQkJCWdvdG8gbmV4 dDsKKwkJfSAgZWxzZSB7CisJCQkvKgorCQkJICogT25seSBjb25zaWRlcmluZyBjb252ZW50aW9u YWwgaW5mZXJlbmNlIGF0IHRoaXMgcG9pbnQgKG5vdCBuYW1lZAorCQkJICogY29uc3RyYWludHMp LCBzbyBpbmRleCB1bmRlciBjb25zaWRlcmF0aW9uIGNhbiBiZSBpbW1lZGlhdGVseQorCQkJICog c2tpcHBlZCBpZiBpdCdzIG5vdCB1bmlxdWUKKwkJCSAqLworCQkJaWYgKCFpZHhGb3JtLT5pbmRp c3VuaXF1ZSkKKwkJCQlnb3RvIG5leHQ7CiAJCX0KIAotCQkvKgotCQkgKiBPbmx5IGNvbnNpZGVy aW5nIGNvbnZlbnRpb25hbCBpbmZlcmVuY2UgYXQgdGhpcyBwb2ludCAobm90IG5hbWVkCi0JCSAq IGNvbnN0cmFpbnRzKSwgc28gaW5kZXggdW5kZXIgY29uc2lkZXJhdGlvbiBjYW4gYmUgaW1tZWRp YXRlbHkKLQkJICogc2tpcHBlZCBpZiBpdCdzIG5vdCB1bmlxdWUKLQkJICovCi0JCWlmICghaWR4 Rm9ybS0+aW5kaXN1bmlxdWUpCi0JCQlnb3RvIG5leHQ7Ci0KIAkJLyoKIAkJICogU28tY2FsbGVk IHVuaXF1ZSBjb25zdHJhaW50cyB3aXRoIFdJVEhPVVQgT1ZFUkxBUFMgYXJlIHJlYWxseQogCQkg KiBleGNsdXNpb24gY29uc3RyYWludHMsIHNvIHNraXAgdGhvc2UgdG9vLgpAQCAtODczLDcgKzky Myw3IEBAIGluZmVyX2FyYml0ZXJfaW5kZXhlcyhQbGFubmVySW5mbyAqcm9vdCkKIAkJfQogCiAJ CS8qIE5vbi1leHByZXNzaW9uIGF0dHJpYnV0ZXMgKGlmIGFueSkgbXVzdCBtYXRjaCAqLwotCQlp ZiAoIWJtc19lcXVhbChpbmRleGVkQXR0cnMsIGluZmVyQXR0cnMpKQorCQlpZiAoIWJtc19lcXVh bChpbmRleGVkQXR0cnMsIHJlcXVpcmVkQXJiaXRlckF0dHJzKSkKIAkJCWdvdG8gbmV4dDsKIAog CQkvKiBFeHByZXNzaW9uIGF0dHJpYnV0ZXMgKGlmIGFueSkgbXVzdCBtYXRjaCAqLwpAQCAtODgx LDYgKzkzMSwxMCBAQCBpbmZlcl9hcmJpdGVyX2luZGV4ZXMoUGxhbm5lckluZm8gKnJvb3QpCiAJ CWlmIChpZHhFeHBycyAmJiB2YXJubyAhPSAxKQogCQkJQ2hhbmdlVmFyTm9kZXMoKE5vZGUgKikg aWR4RXhwcnMsIDEsIHZhcm5vLCAwKTsKIAorCQkvKgorCQkgKiBJZiBhcmJpdGVyRWxlbXMgYXJl IHByZXNlbnQsIGNoZWNrIHRoZW0uIElmIG5hbWUgPmNvbnN0cmFpbnQgaXMKKwkJICogcHJlc2Vu dCBhcmJpdGVyRWxlbXMgPT0gTklMLgorCQkgKi8KIAkJZm9yZWFjaChlbCwgb25jb25mbGljdC0+ YXJiaXRlckVsZW1zKQogCQl7CiAJCQlJbmZlcmVuY2VFbGVtICplbGVtID0gKEluZmVyZW5jZUVs ZW0gKikgbGZpcnN0KGVsKTsKQEAgLTkxOCwyNyArOTcyLDM1IEBAIGluZmVyX2FyYml0ZXJfaW5k ZXhlcyhQbGFubmVySW5mbyAqcm9vdCkKIAkJfQogCiAJCS8qCi0JCSAqIE5vdyB0aGF0IGFsbCBp bmZlcmVuY2UgZWxlbWVudHMgd2VyZSBtYXRjaGVkLCBlbnN1cmUgdGhhdCB0aGUKKwkJICogSW4g Y2FzZSBvZiB0aGUgY29udmVudGlvbmFsIGluZmVyZW5jZSBpbnZvbHZlZCBlbnN1cmUgdGhhdCB0 aGUKIAkJICogZXhwcmVzc2lvbiBlbGVtZW50cyBmcm9tIGluZmVyZW5jZSBjbGF1c2UgYXJlIG5v dCBtaXNzaW5nIGFueQogCQkgKiBjYXRhbG9nZWQgZXhwcmVzc2lvbnMuICBUaGlzIGRvZXMgdGhl IHJpZ2h0IHRoaW5nIHdoZW4gdW5pcXVlCiAJCSAqIGluZGV4ZXMgcmVkdW5kYW50bHkgcmVwZWF0 IHRoZSBzYW1lIGF0dHJpYnV0ZSwgb3IgaWYgYXR0cmlidXRlcwogCQkgKiByZWR1bmRhbnRseSBh cHBlYXIgbXVsdGlwbGUgdGltZXMgd2l0aGluIGFuIGluZmVyZW5jZSBjbGF1c2UuCisJCSAqCisJ CSAqIEluIHRoZSBjYXNlIG9mIG5hbWVkIGNvbnN0cmFpbnQgZW5zdXJlIGNhbmRpZGF0ZSBoYXMg ZXF1YWwgc2V0CisJCSAqIG9mIGV4cHJlc3Npb25zIGFzIHRoZSBuYW1lZCBjb25zdHJhaW50IGlu ZGV4LgogCQkgKi8KLQkJaWYgKGxpc3RfZGlmZmVyZW5jZShpZHhFeHBycywgaW5mZXJFbGVtcykg IT0gTklMKQorCQlpZiAobGlzdF9kaWZmZXJlbmNlKGlkeEV4cHJzLCByZXF1aXJlZEFyYml0ZXJF bGVtcykgIT0gTklMKQogCQkJZ290byBuZXh0OwogCi0JCS8qCi0JCSAqIElmIGl0J3MgYSBwYXJ0 aWFsIGluZGV4LCBpdHMgcHJlZGljYXRlIG11c3QgYmUgaW1wbGllZCBieSB0aGUgT04KLQkJICog Q09ORkxJQ1QncyBXSEVSRSBjbGF1c2UuCi0JCSAqLwogCQlwcmVkRXhwcnMgPSBSZWxhdGlvbkdl dEluZGV4UHJlZGljYXRlKGlkeFJlbCk7CiAJCWlmIChwcmVkRXhwcnMgJiYgdmFybm8gIT0gMSkK IAkJCUNoYW5nZVZhck5vZGVzKChOb2RlICopIHByZWRFeHBycywgMSwgdmFybm8sIDApOwogCi0J CWlmICghcHJlZGljYXRlX2ltcGxpZWRfYnkocHJlZEV4cHJzLCAoTGlzdCAqKSBvbmNvbmZsaWN0 LT5hcmJpdGVyV2hlcmUsIGZhbHNlKSkKKwkJLyoKKwkJICogSWYgaXQncyBhIHBhcnRpYWwgaW5k ZXggYW5kIGNvbnZlbnRpb25hbCBpbmZlcmVuY2UsIGl0cyBwcmVkaWNhdGUgbXVzdCBiZSBpbXBs aWVkCisJCSAqIGJ5IHRoZSBPTiBDT05GTElDVCdzIFdIRVJFIGNsYXVzZS4KKwkJICovCisJCWlm IChpbmRleE9pZEZyb21Db25zdHJhaW50ID09IEludmFsaWRPaWQgJiYgIXByZWRpY2F0ZV9pbXBs aWVkX2J5KHByZWRFeHBycywgcmVxdWlyZWRJbmRleFByZWRFeHBycywgZmFsc2UpKQorCQkJZ290 byBuZXh0OworCQkvKiBJZiBpdCdzIGEgcGFydGlhbCBpbmRleCBhbmQgbmFtZWQgY29uc3RyYWlu dCBwcmVkaWNhdGVzIG11c3QgYmUgZXF1YWwuICovCisJCWlmIChpbmRleE9pZEZyb21Db25zdHJh aW50ICE9IEludmFsaWRPaWQgJiYgbGlzdF9kaWZmZXJlbmNlKHByZWRFeHBycywgcmVxdWlyZWRJ bmRleFByZWRFeHBycykgIT0gTklMKQogCQkJZ290byBuZXh0OwogCitmb3VuZDoKIAkJcmVzdWx0 cyA9IGxhcHBlbmRfb2lkKHJlc3VsdHMsIGlkeEZvcm0tPmluZGV4cmVsaWQpOworCQlmb3VuZFZh bGlkIHw9IGlkeEZvcm0tPmluZGlzdmFsaWQ7CiBuZXh0OgogCQlpbmRleF9jbG9zZShpZHhSZWws IE5vTG9jayk7CiAJfQpAQCAtOTQ2LDcgKzEwMDgsOCBAQCBuZXh0OgogCWxpc3RfZnJlZShpbmRl eExpc3QpOwogCXRhYmxlX2Nsb3NlKHJlbGF0aW9uLCBOb0xvY2spOwogCi0JaWYgKHJlc3VsdHMg PT0gTklMKQorCS8qIEl0IGlzIHJlcXVpcmVkIHRvIGhhdmUgYXQgbGVhc3Qgb25lIGluZGlzdmFs aWQgaW5kZXggZHVyaW5nIHRoZSBwbGFubmluZy4gKi8KKwlpZiAocmVzdWx0cyA9PSBOSUwgfHwg IWZvdW5kVmFsaWQpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX0NPTFVNTl9SRUZFUkVOQ0UpLAogCQkJCSBlcnJtc2coInRoZXJlIGlzIG5vIHVuaXF1ZSBv ciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNh dGlvbiIpKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy90aW1lL3NuYXBtZ3IuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5jCmluZGV4IGExYTBjMmFkZWI2Li4yMTg5 YmYwZDlhZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvdGltZS9zbmFwbWdyLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvdGltZS9zbmFwbWdyLmMKQEAgLTY0LDYgKzY0LDcgQEAKICNp bmNsdWRlICJ1dGlscy9yZXNvd25lci5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNp bmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2lu dC5oIgogCiAKIC8qCkBAIC0zOTIsNiArMzkzLDcgQEAgSW52YWxpZGF0ZUNhdGFsb2dTbmFwc2hv dCh2b2lkKQogCQlwYWlyaW5naGVhcF9yZW1vdmUoJlJlZ2lzdGVyZWRTbmFwc2hvdHMsICZDYXRh bG9nU25hcHNob3QtPnBoX25vZGUpOwogCQlDYXRhbG9nU25hcHNob3QgPSBOVUxMOwogCQlTbmFw c2hvdFJlc2V0WG1pbigpOworCQlJTkpFQ1RJT05fUE9JTlQoImludmFsaWRhdGVfY2F0YWxvZ19z bmFwc2hvdF9lbmQiKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5q ZWN0aW9uX3BvaW50cy9NYWtlZmlsZSBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50 cy9NYWtlZmlsZQppbmRleCAwNzUzYTlkZjU4Yy4uZjhmODZlOGYzYjYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9NYWtlZmlsZQorKysgYi9zcmMvdGVzdC9t b2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFrZWZpbGUKQEAgLTEzLDcgKzEzLDEyIEBAIFBHRklM RURFU0MgPSAiaW5qZWN0aW9uX3BvaW50cyAtIGZhY2lsaXR5IGZvciBpbmplY3Rpb24gcG9pbnRz IgogUkVHUkVTUyA9IGluamVjdGlvbl9wb2ludHMgcmVpbmRleF9jb25jCiBSRUdSRVNTX09QVFMg PSAtLWRscGF0aD0kKHRvcF9idWlsZGRpcikvc3JjL3Rlc3QvcmVncmVzcwogCi1JU09MQVRJT04g PSBiYXNpYyBpbnBsYWNlCitJU09MQVRJT04gPSBiYXNpYyBpbnBsYWNlIFwKKwkJCXJlaW5kZXhf Y29uY3VycmVudGx5X3Vwc2VydCBcCisJCQlpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0IFwKKwkJ CXJlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wYXJ0aXRpb25lZCBcCisJCQlyZWluZGV4X2Nv bmN1cnJlbnRseV91cHNlcnRfb25fY29uc3RyYWludCBcCisJCQlpbmRleF9jb25jdXJyZW50bHlf dXBzZXJ0X3ByZWRpY2F0ZQogCiBUQVBfVEVTVFMgPSAxCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9pbmRleF9jb25jdXJyZW50bHlfdXBz ZXJ0Lm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9pbmRl eF9jb25jdXJyZW50bHlfdXBzZXJ0Lm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uN2YwNjU5ZTgzNjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVz L2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydC5vdXQK QEAgLTAsMCArMSw4MCBAQAorUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3Rh cnRpbmcgcGVybXV0YXRpb246IHMzX3N0YXJ0X2NyZWF0ZV9pbmRleCBzMV9zdGFydF91cHNlcnQg czRfd2FrZXVwX2RlZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkIHMyX3N0YXJ0X3Vwc2VydCBz NF93YWtldXBfczFfZnJvbV9pbnZhbGlkYXRlX2NhdGFsb2dfc25hcHNob3QgczRfd2FrZXVwX3My IHM0X3dha2V1cF9zMQoraW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9p bnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFy dF9jcmVhdGVfaW5kZXg6IENSRUFURSBVTklRVUUgSU5ERVggQ09OQ1VSUkVOVExZIHRibF9wa2V5 X2R1cGxpY2F0ZSBPTiB0ZXN0LnRibChpKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMV9zdGFydF91 cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3Qo aSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAg czRfd2FrZXVwX2RlZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkOiAKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19kZXRhY2goJ2RlZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkJyk7CisJU0VM RUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdkZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxp ZCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2Fr ZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygx IHJvdykKKworc3RlcCBzM19zdGFydF9jcmVhdGVfaW5kZXg6IDwuLi4gY29tcGxldGVkPgorc3Rl cCBzMl9zdGFydF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkg b24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5n IC4uLj4KK3N0ZXAgczRfd2FrZXVwX3MxX2Zyb21faW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBzaG90 OiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2ludmFsaWRhdGVfY2F0YWxvZ19z bmFwc2hvdF9lbmQnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2ludmFsaWRh dGVfY2F0YWxvZ19zbmFwc2hvdF9lbmQnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQor CitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxF Q1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3Bl Y3VsYXRpdmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0 X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93 KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8 Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25m bGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9u X29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNf ZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAK KygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vw c2VydDogPC4uLiBjb21wbGV0ZWQ+CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVj dGlvbl9wb2ludHMvZXhwZWN0ZWQvaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wcmVkaWNhdGUu b3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2luZGV4X2Nv bmN1cnJlbnRseV91cHNlcnRfcHJlZGljYXRlLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uMjMwMGQ1MTY1ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9t b2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvaW5kZXhfY29uY3VycmVudGx5X3Vwc2Vy dF9wcmVkaWNhdGUub3V0CkBAIC0wLDAgKzEsODAgQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0 IHNlc3Npb25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzM19zdGFydF9jcmVhdGVfaW5kZXgg czFfc3RhcnRfdXBzZXJ0IHM0X3dha2V1cF9kZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZCBz Ml9zdGFydF91cHNlcnQgczRfd2FrZXVwX3MxX2Zyb21faW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBz aG90IHM0X3dha2V1cF9zMiBzNF93YWtldXBfczEKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykK KworaW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK3N0ZXAgczNfc3RhcnRfY3JlYXRlX2luZGV4OiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNV UlJFTlRMWSB0YmxfcGtleV9zcGVjaWFsX2R1cGxpY2F0ZSBPTiB0ZXN0LnRibChhYnMoaSkpIFdI RVJFIGkgPCAxMDAwMDsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMV9zdGFydF91cHNlcnQ6IElOU0VS VCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3QoYWJzKGkpKSB3aGVy ZSBpIDwgMTAwIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+ CitzdGVwIHM0X3dha2V1cF9kZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZDogCisJU0VMRUNU IGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdkZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZCcp OworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZGVmaW5lX2luZGV4X2JlZm9yZV9z ZXRfdmFsaWQnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9p bnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfY3JlYXRlX2luZGV4OiA8Li4uIGNvbXBsZXRl ZD4KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMs bm93KCkpICBvbiBjb25mbGljdChhYnMoaSkpIHdoZXJlIGkgPCAxMDAgZG8gdXBkYXRlIHNldCB1 cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczRfd2FrZXVwX3MxX2Zyb21f aW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBzaG90OiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19k ZXRhY2goJ2ludmFsaWRhdGVfY2F0YWxvZ19zbmFwc2hvdF9lbmQnKTsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c193YWtldXAoJ2ludmFsaWRhdGVfY2F0YWxvZ19zbmFwc2hvdF9lbmQnKTsKKwor aW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg ICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4 ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9u X3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsK KworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVw X3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9v cl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZs aWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193 YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAor KDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21wbGV0ZWQ+CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvcmVpbmRleF9j b25jdXJyZW50bHlfdXBzZXJ0Lm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50 cy9leHBlY3RlZC9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnQub3V0Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yNGJiYmNiZGQ4OAotLS0gL2Rldi9udWxsCisrKyBi L3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9yZWluZGV4X2NvbmN1 cnJlbnRseV91cHNlcnQub3V0CkBAIC0wLDAgKzEsMjM4IEBACitQYXJzZWQgdGVzdCBzcGVjIHdp dGggNCBzZXNzaW9ucworCitzdGFydGluZyBwZXJtdXRhdGlvbjogczNfc3RhcnRfcmVpbmRleCBz MV9zdGFydF91cHNlcnQgczRfd2FrZXVwX3RvX3N3YXAgczJfc3RhcnRfdXBzZXJ0IHM0X3dha2V1 cF9zMSBzNF93YWtldXBfczIgczRfd2FrZXVwX3RvX3NldF9kZWFkCitpbmplY3Rpb25fcG9pbnRz X2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAg CisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50 c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAg IAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5kZXg6IFJFSU5ERVggSU5ERVggQ09OQ1VS UkVOVExZIHRlc3QudGJsX3BrZXk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFfc3RhcnRfdXBzZXJ0 OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRv IHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dh a2V1cF90b19zd2FwOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhf cmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9w b2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcp OworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVw CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJv dykKKworc3RlcCBzMl9zdGFydF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygx Myxub3coKSkgb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7 IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczRfd2FrZXVwX3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25m bGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9u X29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNf ZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAK KygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vw c2VydDogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIHM0X3dha2V1cF9zMjogCisJU0VMRUNUIGluamVj dGlvbl9wb2ludHNfZGV0YWNoKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1bGF0aXZl Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdleGVjX2luc2VydF9iZWZvcmVf aW5zZXJ0X3NwZWN1bGF0aXZlJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5q ZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMyX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21w bGV0ZWQ+CitzdGVwIHM0X3dha2V1cF90b19zZXRfZGVhZDogCisJU0VMRUNUIGluamVjdGlvbl9w b2ludHNfZGV0YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2Rl YWQnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25f Y29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFj aAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSBy b3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4 OiA8Li4uIGNvbXBsZXRlZD4KKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMzX3N0YXJ0X3JlaW5k ZXggczJfc3RhcnRfdXBzZXJ0IHM0X3dha2V1cF90b19zd2FwIHMxX3N0YXJ0X3Vwc2VydCBzNF93 YWtldXBfczEgczRfd2FrZXVwX3MyIHM0X3dha2V1cF90b19zZXRfZGVhZAoraW5qZWN0aW9uX3Bv aW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9w b2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAg ICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiBSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSB0ZXN0LnRibF9wa2V5OyA8d2FpdGluZyAuLi4+CitzdGVwIHMyX3N0YXJ0X3Vw c2VydDogSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5vdygpKSBvbiBjb25mbGljdChp KSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3coKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBz NF93YWtldXBfdG9fc3dhcDogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdyZWlu ZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3 YXAnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dh a2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCiso MSByb3cpCisKK3N0ZXAgczFfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxV RVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5v dygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dha2V1cF9zMTogCisJU0VMRUNUIGluamVjdGlv bl9wb2ludHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9f Y29uZmxpY3QnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2NoZWNrX2V4Y2x1 c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworCitpbmplY3Rpb25fcG9p bnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMV9zdGFy dF91cHNlcnQ6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzNF93YWtldXBfczI6IAorCVNFTEVDVCBp bmplY3Rpb25fcG9pbnRzX2RldGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxh dGl2ZScpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRfYmVm b3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMl9zdGFydF91cHNlcnQ6IDwuLi4g Y29tcGxldGVkPgorc3RlcCBzNF93YWtldXBfdG9fc2V0X2RlYWQ6IAorCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX2RldGFjaCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3Nl dF9kZWFkJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0 aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnKTsKKworaW5qZWN0aW9uX3BvaW50c19k ZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAor KDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfcmVp bmRleDogPC4uLiBjb21wbGV0ZWQ+CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzM19zdGFydF9y ZWluZGV4IHM0X3dha2V1cF90b19zd2FwIHMxX3N0YXJ0X3Vwc2VydCBzMl9zdGFydF91cHNlcnQg czRfd2FrZXVwX3MxIHM0X3dha2V1cF90b19zZXRfZGVhZCBzNF93YWtldXBfczIKK2luamVjdGlv bl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAg ICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rp b25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfcmVpbmRleDogUkVJTkRFWCBJTkRF WCBDT05DVVJSRU5UTFkgdGVzdC50YmxfcGtleTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtl dXBfdG9fc3dhcDogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdyZWluZGV4X3Jl bGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3YXAnKTsK KworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK3N0ZXAgczFfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMs bm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8 d2FpdGluZyAuLi4+CitzdGVwIHMyX3N0YXJ0X3Vwc2VydDogSU5TRVJUIElOVE8gdGVzdC50Ymwg VkFMVUVTKDEzLG5vdygpKSBvbiBjb25mbGljdChpKSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQg PSBub3coKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtldXBfczE6IAorCVNFTEVDVCBpbmpl Y3Rpb25fcG9pbnRzX2RldGFjaCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50 X25vX2NvbmZsaWN0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdjaGVja19l eGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKworaW5qZWN0aW9u X3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczFf c3RhcnRfdXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3RvX3NldF9kZWFk OiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29u Y3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dh a2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisK K2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQor CitzdGVwIHM0X3dha2V1cF9zMjogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdl eGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1bGF0aXZlJyk7CisJU0VMRUNUIGluamVjdGlv bl9wb2ludHNfd2FrZXVwKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1bGF0aXZlJyk7 CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93 KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5kZXg6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzMl9zdGFy dF91cHNlcnQ6IDwuLi4gY29tcGxldGVkPgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9vbl9j b25zdHJhaW50Lm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3Rl ZC9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnRfb25fY29uc3RyYWludC5vdXQKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQxY2ZkMTczMWM4Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL3JlaW5kZXhf Y29uY3VycmVudGx5X3Vwc2VydF9vbl9jb25zdHJhaW50Lm91dApAQCAtMCwwICsxLDIzOCBAQAor UGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246 IHMzX3N0YXJ0X3JlaW5kZXggczFfc3RhcnRfdXBzZXJ0IHM0X3dha2V1cF90b19zd2FwIHMyX3N0 YXJ0X3Vwc2VydCBzNF93YWtldXBfczEgczRfd2FrZXVwX3MyIHM0X3dha2V1cF90b19zZXRfZGVh ZAoraW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiBS RUlOREVYIElOREVYIENPTkNVUlJFTlRMWSB0ZXN0LnRibF9wa2V5OyA8d2FpdGluZyAuLi4+Citz dGVwIHMxX3N0YXJ0X3Vwc2VydDogSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5vdygp KSBvbiBjb25mbGljdCBvbiBjb25zdHJhaW50IHRibF9wa2V5IGRvIHVwZGF0ZSBzZXQgdXBkYXRl ZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dha2V1cF90b19zd2FwOiAKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVu dGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWlu ZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworCitpbmplY3Rpb25fcG9p bnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMl9zdGFy dF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxp Y3Qgb24gY29uc3RyYWludCB0YmxfcGtleSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3co KTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtldXBfczE6IAorCVNFTEVDVCBpbmplY3Rpb25f cG9pbnRzX2RldGFjaCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2Nv bmZsaWN0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdjaGVja19leGNsdXNp b25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKworaW5qZWN0aW9uX3BvaW50 c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAg IAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczFfc3RhcnRf dXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxFQ1QgaW5q ZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRp dmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2JlZm9y ZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitp bmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8Li4uIGNv bXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3RvX3NldF9kZWFkOiAKKwlTRUxFQ1QgaW5qZWN0aW9u X3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zZXRf ZGVhZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlv bl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0 YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygx IHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5k ZXg6IDwuLi4gY29tcGxldGVkPgorCitzdGFydGluZyBwZXJtdXRhdGlvbjogczNfc3RhcnRfcmVp bmRleCBzMl9zdGFydF91cHNlcnQgczRfd2FrZXVwX3RvX3N3YXAgczFfc3RhcnRfdXBzZXJ0IHM0 X3dha2V1cF9zMSBzNF93YWtldXBfczIgczRfd2FrZXVwX3RvX3NldF9kZWFkCitpbmplY3Rpb25f cG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAg ICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9u X3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgIAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5kZXg6IFJFSU5ERVggSU5ERVgg Q09OQ1VSUkVOVExZIHRlc3QudGJsX3BrZXk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczJfc3RhcnRf dXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0 IG9uIGNvbnN0cmFpbnQgdGJsX3BrZXkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7 IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczRfd2FrZXVwX3RvX3N3YXA6IAorCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX2RldGFjaCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3 YXAnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25f Y29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykK KworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogSU5T RVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5vdygpKSBvbiBjb25mbGljdCBvbiBjb25zdHJh aW50IHRibF9wa2V5IGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAu Li4+CitzdGVwIHM0X3dha2V1cF9zMTogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNo KCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVf Y29uc3RyYWludF9ub19jb25mbGljdCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMV9zdGFydF91cHNlcnQ6IDwuLi4g Y29tcGxldGVkPgorc3RlcCBzNF93YWtldXBfczI6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRz X2RldGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCVNFTEVD VCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVj dWxhdGl2ZScpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2lu dHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAKKygxIHJvdykKKworc3RlcCBzMl9zdGFydF91cHNlcnQ6IDwuLi4gY29tcGxldGVkPgorc3Rl cCBzNF93YWtldXBfdG9fc2V0X2RlYWQ6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFj aCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisJU0VM RUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRs eV9iZWZvcmVfc2V0X2RlYWQnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmpl Y3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg ICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfcmVpbmRleDogPC4uLiBjb21w bGV0ZWQ+CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzM19zdGFydF9yZWluZGV4IHM0X3dha2V1 cF90b19zd2FwIHMxX3N0YXJ0X3Vwc2VydCBzMl9zdGFydF91cHNlcnQgczRfd2FrZXVwX3MxIHM0 X3dha2V1cF90b19zZXRfZGVhZCBzNF93YWtldXBfczIKK2luamVjdGlvbl9wb2ludHNfYXR0YWNo CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJv dykKKworaW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFj aAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSBy b3cpCisKK3N0ZXAgczNfc3RhcnRfcmVpbmRleDogUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkg dGVzdC50YmxfcGtleTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtldXBfdG9fc3dhcDogCisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJl bnRseV9iZWZvcmVfc3dhcCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVp bmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3YXAnKTsKKworaW5qZWN0aW9uX3Bv aW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczFfc3Rh cnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZs aWN0IG9uIGNvbnN0cmFpbnQgdGJsX3BrZXkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93 KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0 LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0IG9uIGNvbnN0cmFpbnQgdGJsX3BrZXkg ZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczRf d2FrZXVwX3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1 c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25v X2NvbmZsaWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3Bv aW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21wbGV0ZWQ+Citz dGVwIHM0X3dha2V1cF90b19zZXRfZGVhZDogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0 YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnKTsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVu dGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2lu amVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzNF93YWtldXBfczI6IAorCVNFTEVDVCBp bmplY3Rpb25fcG9pbnRzX2RldGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxh dGl2ZScpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRfYmVm b3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiA8Li4u IGNvbXBsZXRlZD4KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9yZWluZGV4 X2NvbmN1cnJlbnRseV91cHNlcnRfcGFydGl0aW9uZWQub3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wYXJ0 aXRpb25lZC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM5NWZm MjY0ZjEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9p bnRzL2V4cGVjdGVkL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wYXJ0aXRpb25lZC5vdXQK QEAgLTAsMCArMSwyMzggQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0IHNlc3Npb25zCisKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBzM19zdGFydF9yZWluZGV4IHMxX3N0YXJ0X3Vwc2VydCBzNF93 YWtldXBfdG9fc3dhcCBzMl9zdGFydF91cHNlcnQgczRfd2FrZXVwX3MxIHM0X3dha2V1cF9zMiBz NF93YWtldXBfdG9fc2V0X2RlYWQKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0 aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAg czNfc3RhcnRfcmVpbmRleDogUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgdGVzdC50YmxfcGFy dGl0aW9uX3BrZXk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFfc3RhcnRfdXBzZXJ0OiBJTlNFUlQg SU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBz ZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dha2V1cF90b19z d2FwOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25f Y29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2Fr ZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworCitpbmpl Y3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg ICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3Rl cCBzMl9zdGFydF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkg b24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5n IC4uLj4KK3N0ZXAgczRfd2FrZXVwX3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRh Y2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOwor CVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1 ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykK KworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogPC4u LiBjb21wbGV0ZWQ+CitzdGVwIHM0X3dha2V1cF9zMjogCisJU0VMRUNUIGluamVjdGlvbl9wb2lu dHNfZGV0YWNoKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1bGF0aXZlJyk7CisJU0VM RUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3Nw ZWN1bGF0aXZlJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3Bv aW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitzdGVwIHMyX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21wbGV0ZWQ+Citz dGVwIHM0X3dha2V1cF90b19zZXRfZGVhZDogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0 YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnKTsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVu dGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2lu amVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiA8Li4uIGNv bXBsZXRlZD4KKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMzX3N0YXJ0X3JlaW5kZXggczJfc3Rh cnRfdXBzZXJ0IHM0X3dha2V1cF90b19zd2FwIHMxX3N0YXJ0X3Vwc2VydCBzNF93YWtldXBfczEg czRfd2FrZXVwX3MyIHM0X3dha2V1cF90b19zZXRfZGVhZAoraW5qZWN0aW9uX3BvaW50c19hdHRh Y2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEg cm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0 YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygx IHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiBSRUlOREVYIElOREVYIENPTkNVUlJFTlRM WSB0ZXN0LnRibF9wYXJ0aXRpb25fcGtleTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMl9zdGFydF91 cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3Qo aSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAg czRfd2FrZXVwX3RvX3N3YXA6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgncmVp bmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3YXAnKTsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9z d2FwJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193 YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAor KDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogSU5TRVJUIElOVE8gdGVzdC50YmwgVkFM VUVTKDEzLG5vdygpKSBvbiBjb25mbGljdChpKSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBu b3coKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtldXBfczE6IAorCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX2RldGFjaCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25v X2NvbmZsaWN0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdjaGVja19leGNs dXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKworaW5qZWN0aW9uX3Bv aW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczFfc3Rh cnRfdXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3Vs YXRpdmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2Jl Zm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQor CitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8Li4u IGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3RvX3NldF9kZWFkOiAKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9z ZXRfZGVhZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxh dGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisKK2luamVjdGlvbl9wb2ludHNf ZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAK KygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3Jl aW5kZXg6IDwuLi4gY29tcGxldGVkPgorCitzdGFydGluZyBwZXJtdXRhdGlvbjogczNfc3RhcnRf cmVpbmRleCBzNF93YWtldXBfdG9fc3dhcCBzMV9zdGFydF91cHNlcnQgczJfc3RhcnRfdXBzZXJ0 IHM0X3dha2V1cF9zMSBzNF93YWtldXBfdG9fc2V0X2RlYWQgczRfd2FrZXVwX3MyCitpbmplY3Rp b25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0 aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5kZXg6IFJFSU5ERVggSU5E RVggQ09OQ1VSUkVOVExZIHRlc3QudGJsX3BhcnRpdGlvbl9wa2V5OyA8d2FpdGluZyAuLi4+Citz dGVwIHM0X3dha2V1cF90b19zd2FwOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2go J3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGlu amVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZv cmVfc3dhcCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2lu dHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAKKygxIHJvdykKKworc3RlcCBzMV9zdGFydF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJs IFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0 ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5U TyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQg dXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dha2V1cF9zMTogCisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVl X2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtl dXAoJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOwor CitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykK Kworc3RlcCBzMV9zdGFydF91cHNlcnQ6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzNF93YWtldXBf dG9fc2V0X2RlYWQ6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgncmVpbmRleF9y ZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisJU0VMRUNUIGluamVjdGlv bl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0 X2RlYWQnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRz X3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAg CisoMSByb3cpCisKK3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50 c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKwlTRUxF Q1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3Bl Y3VsYXRpdmUnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9p bnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfcmVpbmRleDogPC4uLiBjb21wbGV0ZWQ+Citz dGVwIHMyX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21wbGV0ZWQ+CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVz L2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQKaW5kZXggNThmMTkwMDExNTcuLjkxZmM4Y2U2 ODdmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24u YnVpbGQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1aWxk CkBAIC00NCw3ICs0NCwxNiBAQCB0ZXN0cyArPSB7CiAgICAgJ3NwZWNzJzogWwogICAgICAgJ2Jh c2ljJywKICAgICAgICdpbnBsYWNlJywKKyAgICAgICdyZWluZGV4X2NvbmN1cnJlbnRseV91cHNl cnQnLAorICAgICAgJ2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnQnLAorICAgICAgJ3JlaW5kZXhf Y29uY3VycmVudGx5X3Vwc2VydF9wYXJ0aXRpb25lZCcsCisgICAgICAncmVpbmRleF9jb25jdXJy ZW50bHlfdXBzZXJ0X29uX2NvbnN0cmFpbnQnLAorICAgICAgJ2luZGV4X2NvbmN1cnJlbnRseV91 cHNlcnRfcHJlZGljYXRlJywKICAgICBdLAorICAgICMgVGhlIGluamVjdGlvbiBwb2ludHMgYXJl IGNsdXN0ZXItd2lkZSwgc28gZGlzYWJsZSBpbnN0YWxsY2hlY2sKKyAgICAncnVubmluZ2NoZWNr JzogZmFsc2UsCisgICAgIyBXZSB3YWl0aW5nIGZvciBhbGwgc25hcHNob3RzLCBzbywgYXZvaWQg cGFyYWxsZWwgdGVzdCBleGVjdXRpb25zCisgICAgJ3J1bm5pbmdjaGVjay1wYXJhbGxlbCc6IGZh bHNlLAogICB9LAogICAndGFwJzogewogICAgICdlbnYnOiB7CkBAIC01Myw1ICs2Miw3IEBAIHRl c3RzICs9IHsKICAgICAndGVzdHMnOiBbCiAgICAgICAndC8wMDFfc3RhdHMucGwnLAogICAgIF0s CisgICAgIyBUaGUgaW5qZWN0aW9uIHBvaW50cyBhcmUgY2x1c3Rlci13aWRlLCBzbyBkaXNhYmxl IGluc3RhbGxjaGVjaworICAgICdydW5uaW5nY2hlY2snOiBmYWxzZSwKICAgfSwKIH0KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9pbmRleF9jb25j dXJyZW50bHlfdXBzZXJ0LnNwZWMgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMv c3BlY3MvaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydC5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4wNzU0NTA5MzViNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9pbmRleF9jb25jdXJyZW50bHlfdXBz ZXJ0LnNwZWMKQEAgLTAsMCArMSw2OCBAQAorIyBUZXN0IHJhY2UgY29uZGl0aW9ucyBpbnZvbHZp bmc6CisjIC0gczE6IFVQU0VSVCBhIHR1cGxlCisjIC0gczI6IFVQU0VSVCB0aGUgc2FtZSB0dXBs ZQorIyAtIHMzOiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWQorIyAtIHM0OiBvcGVy YXRpb25zIHdpdGggaW5qZWN0aW9uIHBvaW50cworCitzZXR1cAoreworCUNSRUFURSBFWFRFTlNJ T04gaW5qZWN0aW9uX3BvaW50czsKKwlDUkVBVEUgU0NIRU1BIHRlc3Q7CisJQ1JFQVRFIFVOTE9H R0VEIFRBQkxFIHRlc3QudGJsKGkgaW50IHByaW1hcnkga2V5LCB1cGRhdGVkX2F0IHRpbWVzdGFt cCk7CisJQUxURVIgVEFCTEUgdGVzdC50YmwgU0VUIChwYXJhbGxlbF93b3JrZXJzPTApOworfQor Cit0ZWFyZG93bgoreworCURST1AgU0NIRU1BIHRlc3QgQ0FTQ0FERTsKKwlEUk9QIEVYVEVOU0lP TiBpbmplY3Rpb25fcG9pbnRzOworfQorCitzZXNzaW9uIHMxCitzZXR1cAl7CisJU0VMRUNUIGlu amVjdGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0 YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnLCAn d2FpdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnaW52YWxpZGF0ZV9jYXRh bG9nX3NuYXBzaG90X2VuZCcsICd3YWl0Jyk7Cit9CitzdGVwIHMxX3N0YXJ0X3Vwc2VydAl7IElO U0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3QoaSkgZG8gdXBk YXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IH0KKworc2Vzc2lvbiBzMgorc2V0dXAJeworCVNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX3NldF9sb2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX2F0dGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScsICd3YWl0 Jyk7Cit9CitzdGVwIHMyX3N0YXJ0X3Vwc2VydAl7IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVF UygxMyxub3coKSkgb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93 KCk7IH0KKworc2Vzc2lvbiBzMworc2V0dXAJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3Nl dF9sb2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnZGVmaW5lX2luZGV4 X2JlZm9yZV9zZXRfdmFsaWQnLCAnd2FpdCcpOworfQorc3RlcCBzM19zdGFydF9jcmVhdGVfaW5k ZXgJCXsgQ1JFQVRFIFVOSVFVRSBJTkRFWCBDT05DVVJSRU5UTFkgdGJsX3BrZXlfZHVwbGljYXRl IE9OIHRlc3QudGJsKGkpOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgczRfd2FrZXVwX3MxCQl7CisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVl X2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtl dXAoJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOwor fQorc3RlcCBzNF93YWtldXBfczFfZnJvbV9pbnZhbGlkYXRlX2NhdGFsb2dfc25hcHNob3QJewor CVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnaW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBz aG90X2VuZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnaW52YWxpZGF0ZV9j YXRhbG9nX3NuYXBzaG90X2VuZCcpOworfQorc3RlcCBzNF93YWtldXBfczIJCXsKKwlTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3Vs YXRpdmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2Jl Zm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKK30KK3N0ZXAgczRfd2FrZXVwX2RlZmluZV9pbmRl eF9iZWZvcmVfc2V0X3ZhbGlkCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2Rl ZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNf d2FrZXVwKCdkZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZCcpOworfQorCitwZXJtdXRhdGlv bgorCXMzX3N0YXJ0X2NyZWF0ZV9pbmRleAorCXMxX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF9k ZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZAorCXMyX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1 cF9zMV9mcm9tX2ludmFsaWRhdGVfY2F0YWxvZ19zbmFwc2hvdAorCXM0X3dha2V1cF9zMgorCXM0 X3dha2V1cF9zMQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9pbmRleF9jb25jdXJyZW50bHlfdXBz ZXJ0X3ByZWRpY2F0ZS5zcGVjIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3Nw ZWNzL2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnRfcHJlZGljYXRlLnNwZWMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcwYTI3NDc1ZTEwCi0tLSAvZGV2L251bGwKKysr IGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL2luZGV4X2NvbmN1cnJl bnRseV91cHNlcnRfcHJlZGljYXRlLnNwZWMKQEAgLTAsMCArMSw3MCBAQAorIyBUZXN0IHJhY2Ug Y29uZGl0aW9ucyBpbnZvbHZpbmc6CisjIC0gczE6IFVQU0VSVCBhIHR1cGxlCisjIC0gczI6IFVQ U0VSVCB0aGUgc2FtZSB0dXBsZQorIyAtIHMzOiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJF TlRMWQorIyAtIHM0OiBvcGVyYXRpb25zIHdpdGggaW5qZWN0aW9uIHBvaW50cworCitzZXR1cAor eworCUNSRUFURSBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKKwlDUkVBVEUgU0NIRU1BIHRl c3Q7CisJQ1JFQVRFIFVOTE9HR0VEIFRBQkxFIHRlc3QudGJsKGkgaW50LCB1cGRhdGVkX2F0IHRp bWVzdGFtcCk7CisKKwlDUkVBVEUgVU5JUVVFIElOREVYIHRibF9wa2V5X3NwZWNpYWwgT04gdGVz dC50YmwoYWJzKGkpKSBXSEVSRSBpIDwgMTAwMDsKKwlBTFRFUiBUQUJMRSB0ZXN0LnRibCBTRVQg KHBhcmFsbGVsX3dvcmtlcnM9MCk7Cit9CisKK3RlYXJkb3duCit7CisJRFJPUCBTQ0hFTUEgdGVz dCBDQVNDQURFOworCURST1AgRVhURU5TSU9OIGluamVjdGlvbl9wb2ludHM7Cit9CisKK3Nlc3Np b24gczEKK3NldHVwCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVf Y29uc3RyYWludF9ub19jb25mbGljdCcsICd3YWl0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2lu dHNfYXR0YWNoKCdpbnZhbGlkYXRlX2NhdGFsb2dfc25hcHNob3RfZW5kJywgJ3dhaXQnKTsKK30K K3N0ZXAgczFfc3RhcnRfdXBzZXJ0CXsgSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5v dygpKSBvbiBjb25mbGljdChhYnMoaSkpIHdoZXJlIGkgPCAxMDAgZG8gdXBkYXRlIHNldCB1cGRh dGVkX2F0ID0gbm93KCk7IH0KKworc2Vzc2lvbiBzMgorc2V0dXAJeworCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX3NldF9sb2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgn ZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScsICd3YWl0Jyk7Cit9CitzdGVw IHMyX3N0YXJ0X3Vwc2VydAl7IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkg IG9uIGNvbmZsaWN0KGFicyhpKSkgd2hlcmUgaSA8IDEwMCBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRf YXQgPSBub3coKTsgfQorCitzZXNzaW9uIHMzCitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9w b2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdkZWZp bmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZCcsICd3YWl0Jyk7Cit9CitzdGVwIHMzX3N0YXJ0X2Ny ZWF0ZV9pbmRleAkJeyBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWSB0YmxfcGtleV9z cGVjaWFsX2R1cGxpY2F0ZSBPTiB0ZXN0LnRibChhYnMoaSkpIFdIRVJFIGkgPCAxMDAwMDt9CisK K3Nlc3Npb24gczQKK3N0ZXAgczRfd2FrZXVwX3MxCQl7CisJU0VMRUNUIGluamVjdGlvbl9wb2lu dHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxp Y3QnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2NoZWNrX2V4Y2x1c2lvbl9v cl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworfQorc3RlcCBzNF93YWtldXBfczFf ZnJvbV9pbnZhbGlkYXRlX2NhdGFsb2dfc25hcHNob3QJeworCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX2RldGFjaCgnaW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBzaG90X2VuZCcpOworCVNFTEVDVCBp bmplY3Rpb25fcG9pbnRzX3dha2V1cCgnaW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBzaG90X2VuZCcp OworfQorc3RlcCBzNF93YWtldXBfczIJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRh Y2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKwlTRUxFQ1QgaW5q ZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRp dmUnKTsKK30KK3N0ZXAgczRfd2FrZXVwX2RlZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkCXsK KwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2RlZmluZV9pbmRleF9iZWZvcmVfc2V0 X3ZhbGlkJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdkZWZpbmVfaW5kZXhf YmVmb3JlX3NldF92YWxpZCcpOworfQorCitwZXJtdXRhdGlvbgorCXMzX3N0YXJ0X2NyZWF0ZV9p bmRleAorCXMxX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF9kZWZpbmVfaW5kZXhfYmVmb3JlX3Nl dF92YWxpZAorCXMyX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF9zMV9mcm9tX2ludmFsaWRhdGVf Y2F0YWxvZ19zbmFwc2hvdAorCXM0X3dha2V1cF9zMgorCXM0X3dha2V1cF9zMQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9u X3BvaW50cy9zcGVjcy9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnQuc3BlYyBiL3NyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNl cnQuc3BlYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzhiODZkODQz NDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMv c3BlY3MvcmVpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0LnNwZWMKQEAgLTAsMCArMSw4NiBAQAor IyBUZXN0IHJhY2UgY29uZGl0aW9ucyBpbnZvbHZpbmc6CisjIC0gczE6IFVQU0VSVCBhIHR1cGxl CisjIC0gczI6IFVQU0VSVCB0aGUgc2FtZSB0dXBsZQorIyAtIHMzOiBSRUlOREVYIGNvbmN1cnJl bnQgcHJpbWFyeSBrZXkgaW5kZXgKKyMgLSBzNDogb3BlcmF0aW9ucyB3aXRoIGluamVjdGlvbiBw b2ludHMKKworc2V0dXAKK3sKKwlDUkVBVEUgRVhURU5TSU9OIGluamVjdGlvbl9wb2ludHM7CisJ Q1JFQVRFIFNDSEVNQSB0ZXN0OworCUNSRUFURSBVTkxPR0dFRCBUQUJMRSB0ZXN0LnRibChpIGlu dCBwcmltYXJ5IGtleSwgdXBkYXRlZF9hdCB0aW1lc3RhbXApOworCUFMVEVSIFRBQkxFIHRlc3Qu dGJsIFNFVCAocGFyYWxsZWxfd29ya2Vycz0wKTsKK30KKwordGVhcmRvd24KK3sKKwlEUk9QIFND SEVNQSB0ZXN0IENBU0NBREU7CisJRFJPUCBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKK30K Kworc2Vzc2lvbiBzMQorc2V0dXAJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3NldF9sb2Nh bCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnY2hlY2tfZXhjbHVzaW9uX29y X3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0JywgJ3dhaXQnKTsKK30KK3N0ZXAgczFfc3Rh cnRfdXBzZXJ0CXsgSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5vdygpKSBvbiBjb25m bGljdChpKSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3coKTsgfQorCitzZXNzaW9uIHMy CitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNU IGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1 bGF0aXZlJywgJ3dhaXQnKTsKK30KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0CXsgSU5TRVJUIElOVE8g dGVzdC50YmwgVkFMVUVTKDEzLG5vdygpKSBvbiBjb25mbGljdChpKSBkbyB1cGRhdGUgc2V0IHVw ZGF0ZWRfYXQgPSBub3coKTsgfQorCitzZXNzaW9uIHMzCitzZXR1cAl7CisJU0VMRUNUIGluamVj dGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNo KCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnLCAnd2FpdCcp OworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgncmVpbmRleF9yZWxhdGlvbl9jb25j dXJyZW50bHlfYmVmb3JlX3N3YXAnLCAnd2FpdCcpOworfQorc3RlcCBzM19zdGFydF9yZWluZGV4 CQkJeyBSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSB0ZXN0LnRibF9wa2V5OyB9CisKK3Nlc3Np b24gczQKK3N0ZXAgczRfd2FrZXVwX3RvX3N3YXAJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50 c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJl bnRseV9iZWZvcmVfc3dhcCcpOworfQorc3RlcCBzNF93YWtldXBfczEJCXsKKwlTRUxFQ1QgaW5q ZWN0aW9uX3BvaW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWlu dF9ub19jb25mbGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tf ZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7Cit9CitzdGVwIHM0 X3dha2V1cF9zMgkJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnZXhlY19pbnNl cnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRz X3dha2V1cCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworfQorc3Rl cCBzNF93YWtldXBfdG9fc2V0X2RlYWQJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRh Y2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCVNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50 bHlfYmVmb3JlX3NldF9kZWFkJyk7Cit9CisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRl eAorCXMxX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF90b19zd2FwCisJczJfc3RhcnRfdXBzZXJ0 CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisK K3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRleAorCXMyX3N0YXJ0X3Vwc2VydAorCXM0X3dh a2V1cF90b19zd2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVw X3MyCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVp bmRleAorCXM0X3dha2V1cF90b19zd2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczJfc3RhcnRfdXBz ZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisJczRfd2FrZXVwX3My ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxl cy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9vbl9j b25zdHJhaW50LnNwZWMgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3BlY3Mv cmVpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X29uX2NvbnN0cmFpbnQuc3BlYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2Q4ZTM3MWJiMGEKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3BlY3MvcmVpbmRleF9jb25j dXJyZW50bHlfdXBzZXJ0X29uX2NvbnN0cmFpbnQuc3BlYwpAQCAtMCwwICsxLDg2IEBACisjIFRl c3QgcmFjZSBjb25kaXRpb25zIGludm9sdmluZzoKKyMgLSBzMTogVVBTRVJUIGEgdHVwbGUKKyMg LSBzMjogVVBTRVJUIHRoZSBzYW1lIHR1cGxlCisjIC0gczM6IFJFSU5ERVggY29uY3VycmVudCBw cmltYXJ5IGtleSBpbmRleAorIyAtIHM0OiBvcGVyYXRpb25zIHdpdGggaW5qZWN0aW9uIHBvaW50 cworCitzZXR1cAoreworCUNSRUFURSBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKKwlDUkVB VEUgU0NIRU1BIHRlc3Q7CisJQ1JFQVRFIFVOTE9HR0VEIFRBQkxFIHRlc3QudGJsKGkgaW50IHBy aW1hcnkga2V5LCB1cGRhdGVkX2F0IHRpbWVzdGFtcCk7CisJQUxURVIgVEFCTEUgdGVzdC50Ymwg U0VUIChwYXJhbGxlbF93b3JrZXJzPTApOworfQorCit0ZWFyZG93bgoreworCURST1AgU0NIRU1B IHRlc3QgQ0FTQ0FERTsKKwlEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworfQorCitz ZXNzaW9uIHMxCitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7 CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5p cXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnLCAnd2FpdCcpOworfQorc3RlcCBzMV9zdGFydF91 cHNlcnQJeyBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0 IG9uIGNvbnN0cmFpbnQgdGJsX3BrZXkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7 IH0KKworc2Vzc2lvbiBzMgorc2V0dXAJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3NldF9s b2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnZXhlY19pbnNlcnRfYmVm b3JlX2luc2VydF9zcGVjdWxhdGl2ZScsICd3YWl0Jyk7Cit9CitzdGVwIHMyX3N0YXJ0X3Vwc2Vy dAl7IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3Qgb24g Y29uc3RyYWludCB0YmxfcGtleSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3coKTsgfQor CitzZXNzaW9uIHMzCitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2Fs KCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdyZWluZGV4X3JlbGF0aW9uX2Nv bmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnLCAnd2FpdCcpOworCVNFTEVDVCBpbmplY3Rpb25f cG9pbnRzX2F0dGFjaCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3YXAn LCAnd2FpdCcpOworfQorc3RlcCBzM19zdGFydF9yZWluZGV4CQkJeyBSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSB0ZXN0LnRibF9wa2V5OyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgczRfd2FrZXVw X3RvX3N3YXAJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVs YXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2lu dHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOwor fQorc3RlcCBzNF93YWtldXBfczEJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2go J2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworCVNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9j b25zdHJhaW50X25vX2NvbmZsaWN0Jyk7Cit9CitzdGVwIHM0X3dha2V1cF9zMgkJeworCVNFTEVD VCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVj dWxhdGl2ZScpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRf YmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworfQorc3RlcCBzNF93YWtldXBfdG9fc2V0X2Rl YWQJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25f Y29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRz X3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7 Cit9CisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRleAorCXMxX3N0YXJ0X3Vwc2VydAor CXM0X3dha2V1cF90b19zd2FwCisJczJfc3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRf d2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNfc3Rh cnRfcmVpbmRleAorCXMyX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF90b19zd2FwCisJczFfc3Rh cnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3Nl dF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRleAorCXM0X3dha2V1cF90b19z d2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczJfc3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJ czRfd2FrZXVwX3RvX3NldF9kZWFkCisJczRfd2FrZXVwX3MyClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3Nw ZWNzL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wYXJ0aXRpb25lZC5zcGVjIGIvc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL3JlaW5kZXhfY29uY3VycmVudGx5X3Vw c2VydF9wYXJ0aXRpb25lZC5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5iOTI1MzQ2MzAzOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5q ZWN0aW9uX3BvaW50cy9zcGVjcy9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnRfcGFydGl0aW9u ZWQuc3BlYwpAQCAtMCwwICsxLDg4IEBACisjIFRlc3QgcmFjZSBjb25kaXRpb25zIGludm9sdmlu ZzoKKyMgLSBzMTogVVBTRVJUIGEgdHVwbGUKKyMgLSBzMjogVVBTRVJUIHRoZSBzYW1lIHR1cGxl CisjIC0gczM6IFJFSU5ERVggY29uY3VycmVudCBwcmltYXJ5IGtleSBpbmRleAorIyAtIHM0OiBv cGVyYXRpb25zIHdpdGggaW5qZWN0aW9uIHBvaW50cworCitzZXR1cAoreworCUNSRUFURSBFWFRF TlNJT04gaW5qZWN0aW9uX3BvaW50czsKKwlDUkVBVEUgU0NIRU1BIHRlc3Q7CisJQ1JFQVRFIFRB QkxFIHRlc3QudGJsKGkgaW50IHByaW1hcnkga2V5LCB1cGRhdGVkX2F0IHRpbWVzdGFtcCkgUEFS VElUSU9OIEJZIFJBTkdFIChpKTsKKwlDUkVBVEUgVEFCTEUgdGVzdC50YmxfcGFydGl0aW9uIFBB UlRJVElPTiBPRiB0ZXN0LnRibAorCQlGT1IgVkFMVUVTIEZST00gKDApIFRPICgxMDAwMCkKKwkJ V0lUSCAocGFyYWxsZWxfd29ya2VycyA9IDApOworfQorCit0ZWFyZG93bgoreworCURST1AgU0NI RU1BIHRlc3QgQ0FTQ0FERTsKKwlEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworfQor CitzZXNzaW9uIHMxCitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2Fs KCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdjaGVja19leGNsdXNpb25fb3Jf dW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnLCAnd2FpdCcpOworfQorc3RlcCBzMV9zdGFy dF91cHNlcnQJeyBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZs aWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyB9CisKK3Nlc3Npb24gczIK K3NldHVwCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKKwlTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3Vs YXRpdmUnLCAnd2FpdCcpOworfQorc3RlcCBzMl9zdGFydF91cHNlcnQJeyBJTlNFUlQgSU5UTyB0 ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBk YXRlZF9hdCA9IG5vdygpOyB9CisKK3Nlc3Npb24gczMKK3NldHVwCXsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2go J3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcsICd3YWl0Jyk7 CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1 cnJlbnRseV9iZWZvcmVfc3dhcCcsICd3YWl0Jyk7Cit9CitzdGVwIHMzX3N0YXJ0X3JlaW5kZXgJ CQl7IFJFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIHRlc3QudGJsX3BhcnRpdGlvbl9wa2V5OyB9 CisKK3Nlc3Npb24gczQKK3N0ZXAgczRfd2FrZXVwX3RvX3N3YXAJCXsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9z d2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9u X2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworfQorc3RlcCBzNF93YWtldXBfczEJCXsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVf Y29uc3RyYWludF9ub19jb25mbGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1 cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7Cit9 CitzdGVwIHM0X3dha2V1cF9zMgkJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgn ZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScp OworfQorc3RlcCBzNF93YWtldXBfdG9fc2V0X2RlYWQJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVh ZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9j b25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7Cit9CisKK3Blcm11dGF0aW9uCisJczNfc3Rh cnRfcmVpbmRleAorCXMxX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF90b19zd2FwCisJczJfc3Rh cnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3Nl dF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRleAorCXMyX3N0YXJ0X3Vwc2Vy dAorCXM0X3dha2V1cF90b19zd2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJ czRfd2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNf c3RhcnRfcmVpbmRleAorCXM0X3dha2V1cF90b19zd2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczJf c3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisJczRf d2FrZXVwX3MyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLSAKMi40My4wCgo= --00000000000024b9660629cb89c8 Content-Type: application/octet-stream; name="v7-0003-Allow-advancing-xmin-during-non-unique-non-parall.patch" Content-Disposition: attachment; filename="v7-0003-Allow-advancing-xmin-during-non-unique-non-parall.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4yh51b82 RnJvbSA0NTJlZjcwODlkYjc3OWEwODQyMWExMDg0NTg0YzEzYzU5OWQxMzIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAzMCBOb3YgMjAyNCAxNzo0MToyOSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjcgMy82 XSBBbGxvdyBhZHZhbmNpbmcgeG1pbiBkdXJpbmcgbm9uLXVuaXF1ZSwgbm9uLXBhcmFsbGVsIAog Y29uY3VycmVudCBpbmRleCBidWlsZHMgYnkgcGVyaW9kaWNhbGx5IHJlc2V0dGluZyBzbmFwc2hv dHMKCkxvbmctcnVubmluZyB0cmFuc2FjdGlvbnMgbGlrZSB0aG9zZSB1c2VkIGJ5IENSRUFURSBJ TkRFWCBDT05DVVJSRU5UTFkgYW5kIFJFSU5ERVggQ09OQ1VSUkVOVExZIGNhbiBob2xkIGJhY2sg dGhlIGdsb2JhbCB4bWluIGhvcml6b24sIHByZXZlbnRpbmcgVkFDVVVNIGZyb20gY2xlYW5pbmcg dXAgZGVhZCB0dXBsZXMgYW5kIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gdHJhbnNhY3Rpb24gSUQg d3JhcGFyb3VuZCBpc3N1ZXMuIEluIFBvc3RncmVTUUwgMTQsIGNvbW1pdCBkOWQwNzYyMjJmNWIg YXR0ZW1wdGVkIHRvIGFsbG93IFZBQ1VVTSB0byBpZ25vcmUgaW5kZXhpbmcgdHJhbnNhY3Rpb25z IHdpdGggQ09OQ1VSUkVOVExZIHRvIG1pdGlnYXRlIHRoaXMgcHJvYmxlbS4gSG93ZXZlciwgdGhp cyB3YXMgcmV2ZXJ0ZWQgaW4gY29tbWl0IGUyOGJiODg1MTk2OSBiZWNhdXNlIGl0IGNvdWxkIGNh dXNlIGluZGV4ZXMgdG8gbWlzcyBoZWFwIHR1cGxlcyB0aGF0IHdlcmUgSE9ULXVwZGF0ZWQgYW5k IEhPVC1wcnVuZWQgZHVyaW5nIHRoZSBpbmRleCBjcmVhdGlvbiwgbGVhZGluZyB0byBpbmRleCBj b3JydXB0aW9uLgoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgc2FmZSBhbHRlcm5hdGl2ZSBieSBw ZXJpb2RpY2FsbHkgcmVzZXR0aW5nIHRoZSBzbmFwc2hvdCB1c2VkIGR1cmluZyBub24tdW5pcXVl LCBub24tcGFyYWxsZWwgY29uY3VycmVudCBpbmRleCBidWlsZHMuIEJ5IHJlc2V0dGluZyB0aGUg c25hcHNob3QgZXZlcnkgTiBwYWdlcyBkdXJpbmcgdGhlIGhlYXAgc2Nhbiwgd2UgYWxsb3cgdGhl IHhtaW4gaG9yaXpvbiB0byBhZHZhbmNlIHdpdGhvdXQgcmlza2luZyBpbmRleCBjb3JydXB0aW9u LiBUaGlzIGFwcHJvYWNoIGlzIHNhZmUgZm9yIG5vbi11bmlxdWUgaW5kZXggYnVpbGRzIGJlY2F1 c2UgdGhleSBkbyBub3QgZW5mb3JjZSB1bmlxdWVuZXNzIGNvbnN0cmFpbnRzIHRoYXQgcmVxdWly ZSBhIGNvbnNpc3RlbnQgc25hcHNob3QgYWNyb3NzIHRoZSBlbnRpcmUgc2Nhbi4KCkN1cnJlbnRs eSwgdGhpcyB0ZWNobmlxdWUgaXMgYXBwbGllZCB0bzoKCk5vbi1wYXJhbGxlbCBpbmRleCBidWls ZHM6IFBhcmFsbGVsIGluZGV4IGJ1aWxkcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgYW5kIHdpbGwg YmUgYWRkcmVzc2VkIGluIGEgZnV0dXJlIGNvbW1pdC4KTm9uLXVuaXF1ZSBpbmRleGVzOiBVbmlx dWUgaW5kZXggYnVpbGRzIHN0aWxsIHJlcXVpcmUgYSBjb25zaXN0ZW50IHNuYXBzaG90IHRvIGVu Zm9yY2UgdW5pcXVlbmVzcyBjb25zdHJhaW50cywgYW5kIHN1cHBvcnQgZm9yIHRoZW0gbWF5IGJl IGFkZGVkIGluIHRoZSBmdXR1cmUuCk9ubHkgZHVyaW5nIHRoZSBmaXJzdCBzY2FuIG9mIHRoZSBo ZWFwOiBUaGUgc2Vjb25kIHNjYW4gZHVyaW5nIGluZGV4IHZhbGlkYXRpb24gc3RpbGwgdXNlcyBh IHNpbmdsZSBzbmFwc2hvdCB0byBlbnN1cmUgaW5kZXggY29ycmVjdG5lc3MuCgpUbyBpbXBsZW1l bnQgdGhpcywgYSBuZXcgc2NhbiBvcHRpb24gU09fUkVTRVRfU05BUFNIT1QgaXMgaW50cm9kdWNl ZC4gV2hlbiBzZXQsIGl0IGNhdXNlcyB0aGUgc25hcHNob3QgdG8gYmUgcmVzZXQgZXZlcnkgU09f UkVTRVRfU05BUFNIT1RfRUFDSF9OX1BBR0UgcGFnZXMgZHVyaW5nIHRoZSBzY2FuLiBUaGUgaGVh cCBzY2FuIGNvZGUgaXMgYWRqdXN0ZWQgdG8gc3VwcG9ydCB0aGlzIG9wdGlvbiwgYW5kIHRoZSBp bmRleCBidWlsZCBjb2RlIGlzIG1vZGlmaWVkIHRvIHVzZSBpdCBmb3IgYXBwbGljYWJsZSBjb25j dXJyZW50IGluZGV4IGJ1aWxkcyB0aGF0IGFyZSBub3Qgb24gc3lzdGVtIGNhdGFsb2dzIGFuZCBu b3QgdXNpbmcgcGFyYWxsZWwgd29ya2Vycy4KClRoaXMgYWRkcmVzc2VzIHRoZSBpc3N1ZXMgdGhh dCBsZWQgdG8gdGhlIHJldmVyc2lvbiBvZiBjb21taXQgZDlkMDc2MjIyZjViLCBwcm92aWRpbmcg YSBzYWZlIHdheSB0byBhbGxvdyB4bWluIGFkdmFuY2VtZW50IGR1cmluZyBsb25nLXJ1bm5pbmcg bm9uLXVuaXF1ZSwgbm9uLXBhcmFsbGVsIGNvbmN1cnJlbnQgaW5kZXggYnVpbGRzIHdoaWxlIGVu c3VyaW5nIGluZGV4IGNvcnJlY3RuZXNzLgoKUmVncmVzc2lvbiB0ZXN0cyBhcmUgYWRkZWQgdG8g dmVyaWZ5IHRoZSBiZWhhdmlvci4KLS0tCiBjb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5j ICAgICAgICAgICAgICAgfCAgIDMgKy0KIGNvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0dHVwbGUu YyAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAg ICAgICAgICAgICAgIHwgIDE0ICsrKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMg ICAgICAgICAgICAgIHwgIDQ2ICsrKysrKysrCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1faGFuZGxlci5jICAgICAgfCAgNTcgKysrKysrKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2lu ZGV4L2dlbmFtLmMgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHNvcnQuYyAgICAgICAgICAgfCAgMTQgKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2lu ZGV4LmMgICAgICAgICAgICAgICAgICAgfCAgMzAgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L2luZGV4Y21kcy5jICAgICAgICAgICAgICB8ICAxNCArLS0KIHNyYy9iYWNrZW5kL29wdGltaXpl ci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAgOSArKwogc3JjL2luY2x1ZGUvYWNjZXNzL3Rh YmxlYW0uaCAgICAgICAgICAgICAgICAgIHwgIDI4ICsrKystCiBzcmMvdGVzdC9tb2R1bGVzL2lu amVjdGlvbl9wb2ludHMvTWFrZWZpbGUgICAgfCAgIDIgKy0KIC4uLi9leHBlY3RlZC9jaWNfcmVz ZXRfc25hcHNob3RzLm91dCAgICAgICAgICB8IDEwNyArKysrKysrKysrKysrKysrKysKIHNyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNvbi5idWlsZCB8ICAgMSArCiAuLi4vc3Fs L2NpY19yZXNldF9zbmFwc2hvdHMuc3FsICAgICAgICAgICAgICAgfCAgODYgKysrKysrKysrKysr KysKIDE1IGZpbGVzIGNoYW5nZWQsIDM4NCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhw ZWN0ZWQvY2ljX3Jlc2V0X3NuYXBzaG90cy5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVz dC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3FsL2NpY19yZXNldF9zbmFwc2hvdHMuc3FsCgpk aWZmIC0tZ2l0IGEvY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9uYnRyZWUuYyBiL2NvbnRyaWIvYW1j aGVjay92ZXJpZnlfbmJ0cmVlLmMKaW5kZXggZmZlNGY3MjE2NzIuLjdmYjA1MmNlM2RlIDEwMDY0 NAotLS0gYS9jb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5jCisrKyBiL2NvbnRyaWIvYW1j aGVjay92ZXJpZnlfbmJ0cmVlLmMKQEAgLTY4OSw3ICs2ODksOCBAQCBidF9jaGVja19ldmVyeV9s ZXZlbChSZWxhdGlvbiByZWwsIFJlbGF0aW9uIGhlYXByZWwsIGJvb2wgaGVhcGtleXNwYWNlLAog CQkJCQkJCQkJIDAsIC8qIG51bWJlciBvZiBrZXlzICovCiAJCQkJCQkJCQkgTlVMTCwJLyogc2Nh biBrZXkgKi8KIAkJCQkJCQkJCSB0cnVlLAkvKiBidWZmZXIgYWNjZXNzIHN0cmF0ZWd5IE9LICov Ci0JCQkJCQkJCQkgdHJ1ZSk7IC8qIHN5bmNzY2FuIE9LPyAqLworCQkJCQkJCQkJIHRydWUsIC8q IHN5bmNzY2FuIE9LPyAqLworCQkJCQkJCQkJIGZhbHNlKTsKIAogCQkvKgogCQkgKiBTY2FuIHdp bGwgYmVoYXZlIGFzIHRoZSBmaXJzdCBzY2FuIG9mIGEgQ1JFQVRFIElOREVYIENPTkNVUlJFTlRM WQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXR0dXBsZS5jIGIvY29udHJp Yi9wZ3N0YXR0dXBsZS9wZ3N0YXR0dXBsZS5jCmluZGV4IDQ4Y2I4ZjU5YzRmLi5mZjdjYzA3ZGY5 OSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXR0dXBsZS5jCisrKyBiL2Nv bnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0dHVwbGUuYwpAQCAtMzMyLDcgKzMzMiw3IEBAIHBnc3Rh dF9oZWFwKFJlbGF0aW9uIHJlbCwgRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8pCiAJCQkJIGVycm1z Zygib25seSBoZWFwIEFNIGlzIHN1cHBvcnRlZCIpKSk7CiAKIAkvKiBEaXNhYmxlIHN5bmNzY2Fu IGJlY2F1c2Ugd2UgYXNzdW1lIHdlIHNjYW4gZnJvbSBibG9jayB6ZXJvIHVwd2FyZHMgKi8KLQlz Y2FuID0gdGFibGVfYmVnaW5zY2FuX3N0cmF0KHJlbCwgU25hcHNob3RBbnksIDAsIE5VTEwsIHRy dWUsIGZhbHNlKTsKKwlzY2FuID0gdGFibGVfYmVnaW5zY2FuX3N0cmF0KHJlbCwgU25hcHNob3RB bnksIDAsIE5VTEwsIHRydWUsIGZhbHNlLCBmYWxzZSk7CiAJaHNjYW4gPSAoSGVhcFNjYW5EZXNj KSBzY2FuOwogCiAJSW5pdERpcnR5U25hcHNob3QoU25hcHNob3REaXJ0eSk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJp bi9icmluLmMKaW5kZXggM2FlZGVjODgyY2QuLmQ2OTg1OWFjNGRmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4v YnJpbi5jCkBAIC0yMzY2LDYgKzIzNjYsNyBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVp bGRTdGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAJV2Fs VXNhZ2UgICAqd2FsdXNhZ2U7CiAJQnVmZmVyVXNhZ2UgKmJ1ZmZlcnVzYWdlOwogCWJvb2wJCWxl YWRlcnBhcnRpY2lwYXRlcyA9IHRydWU7CisJYm9vbAkJbmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90 ID0gdHJ1ZTsKIAlpbnQJCQlxdWVyeWxlbjsKIAogI2lmZGVmIERJU0FCTEVfTEVBREVSX1BBUlRJ Q0lQQVRJT04KQEAgLTIzOTEsOSArMjM5MiwxNiBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmlu QnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAJ ICogbGl2ZSBhY2NvcmRpbmcgdG8gdGhhdC4KIAkgKi8KIAlpZiAoIWlzY29uY3VycmVudCkKKwl7 CisJCUFzc2VydChBY3RpdmVTbmFwc2hvdFNldCgpKTsKIAkJc25hcHNob3QgPSBTbmFwc2hvdEFu eTsKKwkJbmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90ID0gZmFsc2U7CisJfQogCWVsc2UKKwl7CiAJ CXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOwor CQlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKKwl9CiAKIAkv KgogCSAqIEVzdGltYXRlIHNpemUgZm9yIG91ciBvd24gUEFSQUxMRUxfS0VZX0JSSU5fU0hBUkVE IHdvcmtzcGFjZS4KQEAgLTI0MzYsNiArMjQ0NCw4IEBAIF9icmluX2JlZ2luX3BhcmFsbGVsKEJy aW5CdWlsZFN0YXRlICpidWlsZHN0YXRlLCBSZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwK IAkvKiBJZiBubyBEU00gc2VnbWVudCB3YXMgYXZhaWxhYmxlLCBiYWNrIG91dCAoZG8gc2VyaWFs IGJ1aWxkKSAqLwogCWlmIChwY3h0LT5zZWcgPT0gTlVMTCkKIAl7CisJCWlmIChuZWVkX3BvcF9h Y3RpdmVfc25hcHNob3QpCisJCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwogCQlpZiAoSXNNVkNDU25h cHNob3Qoc25hcHNob3QpKQogCQkJVW5yZWdpc3RlclNuYXBzaG90KHNuYXBzaG90KTsKIAkJRGVz dHJveVBhcmFsbGVsQ29udGV4dChwY3h0KTsKQEAgLTI1MTUsNiArMjUyNSw4IEBAIF9icmluX2Jl Z2luX3BhcmFsbGVsKEJyaW5CdWlsZFN0YXRlICpidWlsZHN0YXRlLCBSZWxhdGlvbiBoZWFwLCBS ZWxhdGlvbiBpbmRleCwKIAkvKiBJZiBubyB3b3JrZXJzIHdlcmUgc3VjY2Vzc2Z1bGx5IGxhdW5j aGVkLCBiYWNrIG91dCAoZG8gc2VyaWFsIGJ1aWxkKSAqLwogCWlmIChwY3h0LT5ud29ya2Vyc19s YXVuY2hlZCA9PSAwKQogCXsKKwkJaWYgKG5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCkKKwkJCVBv cEFjdGl2ZVNuYXBzaG90KCk7CiAJCV9icmluX2VuZF9wYXJhbGxlbChicmlubGVhZGVyLCBOVUxM KTsKIAkJcmV0dXJuOwogCX0KQEAgLTI1MzEsNiArMjU0Myw4IEBAIF9icmluX2JlZ2luX3BhcmFs bGVsKEJyaW5CdWlsZFN0YXRlICpidWlsZHN0YXRlLCBSZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBp bmRleCwKIAkgKiBzdXJlIHRoYXQgdGhlIGZhaWx1cmUtdG8tc3RhcnQgY2FzZSB3aWxsIG5vdCBo YW5nIGZvcmV2ZXIuCiAJICovCiAJV2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvQXR0YWNoKHBjeHQp OworCWlmIChuZWVkX3BvcF9hY3RpdmVfc25hcHNob3QpCisJCVBvcEFjdGl2ZVNuYXBzaG90KCk7 CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IGQwMDMwMGM1ZGNiLi4xZmRm ZGY5NjQ4MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTUxLDYgKzUxLDcgQEAKICNp bmNsdWRlICJ1dGlscy9kYXR1bS5oIgogI2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCiAjaW5jbHVk ZSAidXRpbHMvc3BjY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9pbmplY3Rpb25fcG9pbnQuaCIK IAogCiBzdGF0aWMgSGVhcFR1cGxlIGhlYXBfcHJlcGFyZV9pbnNlcnQoUmVsYXRpb24gcmVsYXRp b24sIEhlYXBUdXBsZSB0dXAsCkBAIC01NjYsNiArNTY3LDM2IEBAIGhlYXBfcHJlcGFyZV9wYWdl c2NhbihUYWJsZVNjYW5EZXNjIHNzY2FuKQogCUxvY2tCdWZmZXIoYnVmZmVyLCBCVUZGRVJfTE9D S19VTkxPQ0spOwogfQogCisvKgorICogUmVzZXQgdGhlIGFjdGl2ZSBzbmFwc2hvdCBkdXJpbmcg YSBzY2FuLgorICogVGhpcyBlbnN1cmVzIHRoZSB4bWluIGhvcml6b24gY2FuIGFkdmFuY2Ugd2hp bGUgbWFpbnRhaW5pbmcgc2FmZSB0dXBsZSB2aXNpYmlsaXR5LgorICogTm90ZTogTm8gb3RoZXIg c25hcHNob3Qgc2hvdWxkIGJlIGFjdGl2ZSBkdXJpbmcgdGhpcyBvcGVyYXRpb24uCisgKi8KK3N0 YXRpYyBpbmxpbmUgdm9pZAoraGVhcF9yZXNldF9zY2FuX3NuYXBzaG90KFRhYmxlU2NhbkRlc2Mg c3NjYW4pCit7CisJLyogTWFrZSBzdXJlIG5vIG90aGVyIHNuYXBzaG90IHdhcyBzZXQgYXMgYWN0 aXZlLiAqLworCUFzc2VydChHZXRBY3RpdmVTbmFwc2hvdCgpID09IHNzY2FuLT5yc19zbmFwc2hv dCk7CisJLyogQW5kIG1ha2Ugc3VyZSBhY3RpdmUgc25hcHNob3QgaXMgbm90IHJlZ2lzdGVyZWQu ICovCisJQXNzZXJ0KEdldEFjdGl2ZVNuYXBzaG90KCktPnJlZ2RfY291bnQgPT0gMCk7CisJUG9w QWN0aXZlU25hcHNob3QoKTsKKworCXNzY2FuLT5yc19zbmFwc2hvdCA9IEludmFsaWRTbmFwc2hv dDsgLyoganVzdCBvdCBiZSB0aWR5ICovCisJQXNzZXJ0KCFIYXZlUmVnaXN0ZXJlZE9yQWN0aXZl U25hcHNob3QoKSk7CisJSW52YWxpZGF0ZUNhdGFsb2dTbmFwc2hvdCgpOworCisJLyogR29hbCBv ZiBzbmFwc2hvdCByZXNldCBpcyB0byBhbGxvdyBob3Jpem9uIHRvIGFkdmFuY2UuICovCisJQXNz ZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnhtaW4pKTsKKyNpZiBVU0VfSU5KRUNU SU9OX1BPSU5UUworCS8qIEluIHNvbWUgY2FzZXMgaXQgaXMgc3RpbGwgbm90IHBvc3NpYmxlIGR1 ZSB4aWQgYXNzaWduLiAqLworCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT54aWQp KQorCQlJTkpFQ1RJT05fUE9JTlQoImhlYXBfcmVzZXRfc2Nhbl9zbmFwc2hvdF9lZmZlY3RpdmUi KTsKKyNlbmRpZgorCisJUHVzaEFjdGl2ZVNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwor CXNzY2FuLT5yc19zbmFwc2hvdCA9IEdldEFjdGl2ZVNuYXBzaG90KCk7Cit9CisKIC8qCiAgKiBo ZWFwX2ZldGNoX25leHRfYnVmZmVyIC0gcmVhZCBhbmQgcGluIHRoZSBuZXh0IGJsb2NrIGZyb20g TUFJTl9GT1JLTlVNLgogICoKQEAgLTYwNyw3ICs2MzgsMTMgQEAgaGVhcF9mZXRjaF9uZXh0X2J1 ZmZlcihIZWFwU2NhbkRlc2Mgc2NhbiwgU2NhbkRpcmVjdGlvbiBkaXIpCiAKIAlzY2FuLT5yc19j YnVmID0gcmVhZF9zdHJlYW1fbmV4dF9idWZmZXIoc2Nhbi0+cnNfcmVhZF9zdHJlYW0sIE5VTEwp OwogCWlmIChCdWZmZXJJc1ZhbGlkKHNjYW4tPnJzX2NidWYpKQorCXsKIAkJc2Nhbi0+cnNfY2Js b2NrID0gQnVmZmVyR2V0QmxvY2tOdW1iZXIoc2Nhbi0+cnNfY2J1Zik7CisjZGVmaW5lIFNPX1JF U0VUX1NOQVBTSE9UX0VBQ0hfTl9QQUdFIDY0CisJCWlmICgoc2Nhbi0+cnNfYmFzZS5yc19mbGFn cyAmIFNPX1JFU0VUX1NOQVBTSE9UKSAmJgorCQkJKHNjYW4tPnJzX2NibG9jayAlIFNPX1JFU0VU X1NOQVBTSE9UX0VBQ0hfTl9QQUdFID09IDApKQorCQkJaGVhcF9yZXNldF9zY2FuX3NuYXBzaG90 KChUYWJsZVNjYW5EZXNjKSBzY2FuKTsKKwl9CiB9CiAKIC8qCkBAIC0xMjMzLDYgKzEyNzAsMTUg QEAgaGVhcF9lbmRzY2FuKFRhYmxlU2NhbkRlc2Mgc3NjYW4pCiAJaWYgKHNjYW4tPnJzX3BhcmFs bGVsd29ya2VyZGF0YSAhPSBOVUxMKQogCQlwZnJlZShzY2FuLT5yc19wYXJhbGxlbHdvcmtlcmRh dGEpOwogCisJaWYgKHNjYW4tPnJzX2Jhc2UucnNfZmxhZ3MgJiBTT19SRVNFVF9TTkFQU0hPVCkK Kwl7CisJCUFzc2VydCghKHNjYW4tPnJzX2Jhc2UucnNfZmxhZ3MgJiBTT19URU1QX1NOQVBTSE9U KSk7CisJCS8qIE1ha2Ugc3VyZSBubyBvdGhlciBzbmFwc2hvdCB3YXMgc2V0IGFzIGFjdGl2ZS4g Ki8KKwkJQXNzZXJ0KEdldEFjdGl2ZVNuYXBzaG90KCkgPT0gc3NjYW4tPnJzX3NuYXBzaG90KTsK KwkJLyogQW5kIG1ha2Ugc3VyZSBzbmFwc2hvdCBpcyBub3QgcmVnaXN0ZXJlZC4gKi8KKwkJQXNz ZXJ0KEdldEFjdGl2ZVNuYXBzaG90KCktPnJlZ2RfY291bnQgPT0gMCk7CisJfQorCiAJaWYgKHNj YW4tPnJzX2Jhc2UucnNfZmxhZ3MgJiBTT19URU1QX1NOQVBTSE9UKQogCQlVbnJlZ2lzdGVyU25h cHNob3Qoc2Nhbi0+cnNfYmFzZS5yc19zbmFwc2hvdCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW1faGFuZGxlci5jCmluZGV4IGE4ZDk1ZTBmMWMxLi45ODBjNTFlMzJiOSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCkBAIC0xMTkwLDYgKzExOTAsOCBA QCBoZWFwYW1faW5kZXhfYnVpbGRfcmFuZ2Vfc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJ RXhwckNvbnRleHQgKmVjb250ZXh0OwogCVNuYXBzaG90CXNuYXBzaG90OwogCWJvb2wJCW5lZWRf dW5yZWdpc3Rlcl9zbmFwc2hvdCA9IGZhbHNlOworCWJvb2wJCW5lZWRfcG9wX2FjdGl2ZV9zbmFw c2hvdCA9IGZhbHNlOworCWJvb2wJCXJlc2V0X3NuYXBzaG90cyA9IGZhbHNlOwogCVRyYW5zYWN0 aW9uSWQgT2xkZXN0WG1pbjsKIAlCbG9ja051bWJlciBwcmV2aW91c19ibGtubyA9IEludmFsaWRC bG9ja051bWJlcjsKIAlCbG9ja051bWJlciByb290X2Jsa25vID0gSW52YWxpZEJsb2NrTnVtYmVy OwpAQCAtMTIyNCw5ICsxMjI2LDYgQEAgaGVhcGFtX2luZGV4X2J1aWxkX3JhbmdlX3NjYW4oUmVs YXRpb24gaGVhcFJlbGF0aW9uLAogCS8qIEFycmFuZ2UgZm9yIGVjb250ZXh0J3Mgc2NhbiB0dXBs ZSB0byBiZSB0aGUgdHVwbGUgdW5kZXIgdGVzdCAqLwogCWVjb250ZXh0LT5lY3h0X3NjYW50dXBs ZSA9IHNsb3Q7CiAKLQkvKiBTZXQgdXAgZXhlY3V0aW9uIHN0YXRlIGZvciBwcmVkaWNhdGUsIGlm IGFueS4gKi8KLQlwcmVkaWNhdGUgPSBFeGVjUHJlcGFyZVF1YWwoaW5kZXhJbmZvLT5paV9QcmVk aWNhdGUsIGVzdGF0ZSk7Ci0KIAkvKgogCSAqIFByZXBhcmUgZm9yIHNjYW4gb2YgdGhlIGJhc2Ug cmVsYXRpb24uICBJbiBhIG5vcm1hbCBpbmRleCBidWlsZCwgd2UgdXNlCiAJICogU25hcHNob3RB bnkgYmVjYXVzZSB3ZSBtdXN0IHJldHJpZXZlIGFsbCB0dXBsZXMgYW5kIGRvIG91ciBvd24gdGlt ZQpAQCAtMTIzNiw2ICsxMjM1LDE1IEBAIGhlYXBhbV9pbmRleF9idWlsZF9yYW5nZV9zY2FuKFJl bGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkgKi8KIAlPbGRlc3RYbWluID0gSW52YWxpZFRyYW5zYWN0 aW9uSWQ7CiAKKwkvKgorCSAqIEZvciB1bmlxdWUgaW5kZXggd2UgbmVlZCBjb25zaXN0ZW50IHNu YXBzaG90IGZvciB0aGUgd2hvbGUgc2Nhbi4KKwkgKiBJbiBjYXNlIG9mIHBhcmFsbGVsIHNjYW4g c29tZSBhZGRpdGlvbmFsIGluZnJhc3RydWN0dXJlIHJlcXVpcmVkCisJICogdG8gcGVyZm9ybSBz Y2FuIHdpdGggU09fUkVTRVRfU05BUFNIT1Qgd2hpY2ggaXMgbm90IHlldCByZWFkeS4KKwkgKi8K KwlyZXNldF9zbmFwc2hvdHMgPSBpbmRleEluZm8tPmlpX0NvbmN1cnJlbnQgJiYKKwkJCQkJICAh aW5kZXhJbmZvLT5paV9VbmlxdWUgJiYKKwkJCQkJICAhaXNfc3lzdGVtX2NhdGFsb2c7IC8qIGp1 c3QgZm9yIHRoZSBjYXNlICovCisKIAkvKiBva2F5IHRvIGlnbm9yZSBsYXp5IFZBQ1VVTXMgaGVy ZSAqLwogCWlmICghSXNCb290c3RyYXBQcm9jZXNzaW5nTW9kZSgpICYmICFpbmRleEluZm8tPmlp X0NvbmN1cnJlbnQpCiAJCU9sZGVzdFhtaW4gPSBHZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2Fj dGlvbklkKGhlYXBSZWxhdGlvbik7CkBAIC0xMjQ0LDI0ICsxMjUyLDQxIEBAIGhlYXBhbV9pbmRl eF9idWlsZF9yYW5nZV9zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAl7CiAJCS8qCiAJCSAq IFNlcmlhbCBpbmRleCBidWlsZC4KLQkJICoKLQkJICogTXVzdCBiZWdpbiBvdXIgb3duIGhlYXAg c2NhbiBpbiB0aGlzIGNhc2UuICBXZSBtYXkgYWxzbyBuZWVkIHRvCi0JCSAqIHJlZ2lzdGVyIGEg c25hcHNob3Qgd2hvc2UgbGlmZXRpbWUgaXMgdW5kZXIgb3VyIGRpcmVjdCBjb250cm9sLgogCQkg Ki8KIAkJaWYgKCFUcmFuc2FjdGlvbklkSXNWYWxpZChPbGRlc3RYbWluKSkKIAkJewotCQkJc25h cHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldFRyYW5zYWN0aW9uU25hcHNob3QoKSk7Ci0JCQlu ZWVkX3VucmVnaXN0ZXJfc25hcHNob3QgPSB0cnVlOworCQkJc25hcHNob3QgPSBHZXRUcmFuc2Fj dGlvblNuYXBzaG90KCk7CisJCQkvKgorCQkJICogTXVzdCBiZWdpbiBvdXIgb3duIGhlYXAgc2Nh biBpbiB0aGlzIGNhc2UuICBXZSBtYXkgYWxzbyBuZWVkIHRvCisJCQkgKiByZWdpc3RlciBhIHNu YXBzaG90IHdob3NlIGxpZmV0aW1lIGlzIHVuZGVyIG91ciBkaXJlY3QgY29udHJvbC4KKwkJCSAq IEluIGNhc2Ugb2YgcmVzZXR0aW5nIG9mIHNuYXBzaG90IGR1cmluZyB0aGUgc2NhbiByZWdpc3Ry YXRpb24gaXMKKwkJCSAqIG5vdCBhbGxvd2VkIGJlY2F1c2Ugc25hcHNob3QgaXMgZ29pbmcgdG8g YmUgY2hhbmdlZCBldmVyeSBzbworCQkJICogb2Z0ZW4uCisJCQkgKi8KKwkJCWlmICghcmVzZXRf c25hcHNob3RzKQorCQkJeworCQkJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChzbmFwc2hv dCk7CisJCQkJbmVlZF91bnJlZ2lzdGVyX3NuYXBzaG90ID0gdHJ1ZTsKKwkJCX0KKwkJCUFzc2Vy dCghQWN0aXZlU25hcHNob3RTZXQoKSk7CisJCQlQdXNoQWN0aXZlU25hcHNob3Qoc25hcHNob3Qp OworCQkJLyogc3RvcmUgbGluayB0byBzbmFwc2hvdCBiZWNhdXNlIGl0IG1heSBiZSBjb3BpZWQg Ki8KKwkJCXNuYXBzaG90ID0gR2V0QWN0aXZlU25hcHNob3QoKTsKKwkJCW5lZWRfcG9wX2FjdGl2 ZV9zbmFwc2hvdCA9IHRydWU7CiAJCX0KIAkJZWxzZQorCQl7CisJCQlBc3NlcnQoIWluZGV4SW5m by0+aWlfQ29uY3VycmVudCk7CiAJCQlzbmFwc2hvdCA9IFNuYXBzaG90QW55OworCQl9CiAKIAkJ c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdChoZWFwUmVsYXRpb24sCS8qIHJlbGF0aW9uICov CiAJCQkJCQkJCQkgc25hcHNob3QsCS8qIHNuYXBzaG90ICovCiAJCQkJCQkJCQkgMCwgLyogbnVt YmVyIG9mIGtleXMgKi8KIAkJCQkJCQkJCSBOVUxMLAkvKiBzY2FuIGtleSAqLwogCQkJCQkJCQkJ IHRydWUsCS8qIGJ1ZmZlciBhY2Nlc3Mgc3RyYXRlZ3kgT0sgKi8KLQkJCQkJCQkJCSBhbGxvd19z eW5jKTsJLyogc3luY3NjYW4gT0s/ICovCisJCQkJCQkJCQkgYWxsb3dfc3luYywJLyogc3luY3Nj YW4gT0s/ICovCisJCQkJCQkJCQkgcmVzZXRfc25hcHNob3RzIC8qIHJlc2V0IHNuYXBzaG90cz8g Ki8pOwogCX0KIAllbHNlCiAJewpAQCAtMTI3NSw2ICsxMzAwLDggQEAgaGVhcGFtX2luZGV4X2J1 aWxkX3JhbmdlX3NjYW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQlBc3NlcnQoIUlzQm9vdHN0 cmFwUHJvY2Vzc2luZ01vZGUoKSk7CiAJCUFzc2VydChhbGxvd19zeW5jKTsKIAkJc25hcHNob3Qg PSBzY2FuLT5yc19zbmFwc2hvdDsKKwkJUHVzaEFjdGl2ZVNuYXBzaG90KHNuYXBzaG90KTsKKwkJ bmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90ID0gdHJ1ZTsKIAl9CiAKIAloc2NhbiA9IChIZWFwU2Nh bkRlc2MpIHNjYW47CkBAIC0xMjg5LDYgKzEzMTYsMTMgQEAgaGVhcGFtX2luZGV4X2J1aWxkX3Jh bmdlX3NjYW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCUFzc2VydChzbmFwc2hvdCA9PSBTbmFw c2hvdEFueSA/IFRyYW5zYWN0aW9uSWRJc1ZhbGlkKE9sZGVzdFhtaW4pIDoKIAkJICAgIVRyYW5z YWN0aW9uSWRJc1ZhbGlkKE9sZGVzdFhtaW4pKTsKIAlBc3NlcnQoc25hcHNob3QgPT0gU25hcHNo b3RBbnkgfHwgIWFueXZpc2libGUpOworCUFzc2VydChzbmFwc2hvdCA9PSBTbmFwc2hvdEFueSB8 fCBBY3RpdmVTbmFwc2hvdFNldCgpKTsKKworCS8qIFNldCB1cCBleGVjdXRpb24gc3RhdGUgZm9y IHByZWRpY2F0ZSwgaWYgYW55LiAqLworCXByZWRpY2F0ZSA9IEV4ZWNQcmVwYXJlUXVhbChpbmRl eEluZm8tPmlpX1ByZWRpY2F0ZSwgZXN0YXRlKTsKKwkvKiBDbGVhciByZWZlcmVuY2UgdG8gc25h cHNob3Qgc2luY2UgaXQgbWF5IGJlIGNoYW5nZWQgYnkgdGhlIHNjYW4gaXRzZWxmLiAqLworCWlm IChyZXNldF9zbmFwc2hvdHMpCisJCXNuYXBzaG90ID0gSW52YWxpZFNuYXBzaG90OwogCiAJLyog UHVibGlzaCBudW1iZXIgb2YgYmxvY2tzIHRvIHNjYW4gKi8KIAlpZiAocHJvZ3Jlc3MpCkBAIC0x NzI0LDYgKzE3NTgsOCBAQCBoZWFwYW1faW5kZXhfYnVpbGRfcmFuZ2Vfc2NhbihSZWxhdGlvbiBo ZWFwUmVsYXRpb24sCiAKIAl0YWJsZV9lbmRzY2FuKHNjYW4pOwogCisJaWYgKG5lZWRfcG9wX2Fj dGl2ZV9zbmFwc2hvdCkKKwkJUG9wQWN0aXZlU25hcHNob3QoKTsKIAkvKiB3ZSBjYW4gbm93IGZv cmdldCBvdXIgc25hcHNob3QsIGlmIHNldCBhbmQgcmVnaXN0ZXJlZCBieSB1cyAqLwogCWlmIChu ZWVkX3VucmVnaXN0ZXJfc25hcHNob3QpCiAJCVVucmVnaXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7 CkBAIC0xNzk2LDcgKzE4MzIsOCBAQCBoZWFwYW1faW5kZXhfdmFsaWRhdGVfc2NhbihSZWxhdGlv biBoZWFwUmVsYXRpb24sCiAJCQkJCQkJCSAwLCAvKiBudW1iZXIgb2Yga2V5cyAqLwogCQkJCQkJ CQkgTlVMTCwJLyogc2NhbiBrZXkgKi8KIAkJCQkJCQkJIHRydWUsCS8qIGJ1ZmZlciBhY2Nlc3Mg c3RyYXRlZ3kgT0sgKi8KLQkJCQkJCQkJIGZhbHNlKTsJLyogc3luY3NjYW4gbm90IE9LICovCisJ CQkJCQkJCSBmYWxzZSwJLyogc3luY3NjYW4gbm90IE9LICovCisJCQkJCQkJCSBmYWxzZSk7CiAJ aHNjYW4gPSAoSGVhcFNjYW5EZXNjKSBzY2FuOwogCiAJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9w YXJhbShQUk9HUkVTU19TQ0FOX0JMT0NLU19UT1RBTCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9pbmRleC9nZW5hbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMK aW5kZXggNGI0ZWJmZjZhMTcuLmExMDRiYTlkZjc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaW5kZXgvZ2VuYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0u YwpAQCAtNDYzLDcgKzQ2Myw3IEBAIHN5c3RhYmxlX2JlZ2luc2NhbihSZWxhdGlvbiBoZWFwUmVs YXRpb24sCiAJCSAqLwogCQlzeXNzY2FuLT5zY2FuID0gdGFibGVfYmVnaW5zY2FuX3N0cmF0KGhl YXBSZWxhdGlvbiwgc25hcHNob3QsCiAJCQkJCQkJCQkJCSAgbmtleXMsIGtleSwKLQkJCQkJCQkJ CQkJICB0cnVlLCBmYWxzZSk7CisJCQkJCQkJCQkJCSAgdHJ1ZSwgZmFsc2UsIGZhbHNlKTsKIAkJ c3lzc2Nhbi0+aXNjYW4gPSBOVUxMOwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL25idHJlZS9uYnRzb3J0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQu YwppbmRleCAxN2EzNTJkMDQwYy4uNWM0NTgxYWZiMWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0c29ydC5jCkBAIC0xNDEwLDYgKzE0MTAsNyBAQCBfYnRfYmVnaW5fcGFyYWxsZWwoQlRCdWls ZFN0YXRlICpidWlsZHN0YXRlLCBib29sIGlzY29uY3VycmVudCwgaW50IHJlcXVlc3QpCiAJV2Fs VXNhZ2UgICAqd2FsdXNhZ2U7CiAJQnVmZmVyVXNhZ2UgKmJ1ZmZlcnVzYWdlOwogCWJvb2wJCWxl YWRlcnBhcnRpY2lwYXRlcyA9IHRydWU7CisJYm9vbAkJbmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90 ID0gdHJ1ZTsKIAlpbnQJCQlxdWVyeWxlbjsKIAogI2lmZGVmIERJU0FCTEVfTEVBREVSX1BBUlRJ Q0lQQVRJT04KQEAgLTE0MzUsOSArMTQzNiwxNiBAQCBfYnRfYmVnaW5fcGFyYWxsZWwoQlRCdWls ZFN0YXRlICpidWlsZHN0YXRlLCBib29sIGlzY29uY3VycmVudCwgaW50IHJlcXVlc3QpCiAJICog bGl2ZSBhY2NvcmRpbmcgdG8gdGhhdC4KIAkgKi8KIAlpZiAoIWlzY29uY3VycmVudCkKKwl7CisJ CUFzc2VydChBY3RpdmVTbmFwc2hvdFNldCgpKTsKIAkJc25hcHNob3QgPSBTbmFwc2hvdEFueTsK KwkJbmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90ID0gZmFsc2U7CisJfQogCWVsc2UKKwl7CiAJCXNu YXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOworCQlQ dXNoQWN0aXZlU25hcHNob3Qoc25hcHNob3QpOworCX0KIAogCS8qCiAJICogRXN0aW1hdGUgc2l6 ZSBmb3Igb3VyIG93biBQQVJBTExFTF9LRVlfQlRSRUVfU0hBUkVEIHdvcmtzcGFjZSwgYW5kCkBA IC0xNDkxLDYgKzE0OTksOCBAQCBfYnRfYmVnaW5fcGFyYWxsZWwoQlRCdWlsZFN0YXRlICpidWls ZHN0YXRlLCBib29sIGlzY29uY3VycmVudCwgaW50IHJlcXVlc3QpCiAJLyogSWYgbm8gRFNNIHNl Z21lbnQgd2FzIGF2YWlsYWJsZSwgYmFjayBvdXQgKGRvIHNlcmlhbCBidWlsZCkgKi8KIAlpZiAo cGN4dC0+c2VnID09IE5VTEwpCiAJeworCQlpZiAobmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90KQor CQkJUG9wQWN0aXZlU25hcHNob3QoKTsKIAkJaWYgKElzTVZDQ1NuYXBzaG90KHNuYXBzaG90KSkK IAkJCVVucmVnaXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7CiAJCURlc3Ryb3lQYXJhbGxlbENvbnRl eHQocGN4dCk7CkBAIC0xNTg1LDYgKzE1OTUsOCBAQCBfYnRfYmVnaW5fcGFyYWxsZWwoQlRCdWls ZFN0YXRlICpidWlsZHN0YXRlLCBib29sIGlzY29uY3VycmVudCwgaW50IHJlcXVlc3QpCiAJLyog SWYgbm8gd29ya2VycyB3ZXJlIHN1Y2Nlc3NmdWxseSBsYXVuY2hlZCwgYmFjayBvdXQgKGRvIHNl cmlhbCBidWlsZCkgKi8KIAlpZiAocGN4dC0+bndvcmtlcnNfbGF1bmNoZWQgPT0gMCkKIAl7CisJ CWlmIChuZWVkX3BvcF9hY3RpdmVfc25hcHNob3QpCisJCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwog CQlfYnRfZW5kX3BhcmFsbGVsKGJ0bGVhZGVyKTsKIAkJcmV0dXJuOwogCX0KQEAgLTE2MDEsNiAr MTYxMyw4IEBAIF9idF9iZWdpbl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJv b2wgaXNjb25jdXJyZW50LCBpbnQgcmVxdWVzdCkKIAkgKiBzdXJlIHRoYXQgdGhlIGZhaWx1cmUt dG8tc3RhcnQgY2FzZSB3aWxsIG5vdCBoYW5nIGZvcmV2ZXIuCiAJICovCiAJV2FpdEZvclBhcmFs bGVsV29ya2Vyc1RvQXR0YWNoKHBjeHQpOworCWlmIChuZWVkX3BvcF9hY3RpdmVfc25hcHNob3Qp CisJCVBvcEFjdGl2ZVNuYXBzaG90KCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL2luZGV4LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKaW5kZXggMDVk YzZhZGQ3ZWIuLmUwYWRhNWNlMTU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2lu ZGV4LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCkBAIC03OSw2ICs3OSw3IEBA CiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgi CiAjaW5jbHVkZSAidXRpbHMvdHVwbGVzb3J0LmgiCisjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgi CiAKIC8qIFBvdGVudGlhbGx5IHNldCBieSBwZ191cGdyYWRlX3N1cHBvcnQgZnVuY3Rpb25zICov CiBPaWQJCQliaW5hcnlfdXBncmFkZV9uZXh0X2luZGV4X3BnX2NsYXNzX29pZCA9IEludmFsaWRP aWQ7CkBAIC0xNDkwLDggKzE0OTEsOCBAQCBpbmRleF9jb25jdXJyZW50bHlfYnVpbGQoT2lkIGhl YXBSZWxhdGlvbklkLAogCVJlbGF0aW9uCWluZGV4UmVsYXRpb247CiAJSW5kZXhJbmZvICAqaW5k ZXhJbmZvOwogCi0JLyogVGhpcyBoYWQgYmV0dGVyIG1ha2Ugc3VyZSB0aGF0IGEgc25hcHNob3Qg aXMgYWN0aXZlICovCi0JQXNzZXJ0KEFjdGl2ZVNuYXBzaG90U2V0KCkpOworCUFzc2VydCghVHJh bnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT54bWluKSk7CisJQXNzZXJ0KCFUcmFuc2FjdGlvbklk SXNWYWxpZChNeVByb2MtPnhpZCkpOwogCiAJLyogT3BlbiBhbmQgbG9jayB0aGUgcGFyZW50IGhl YXAgcmVsYXRpb24gKi8KIAloZWFwUmVsID0gdGFibGVfb3BlbihoZWFwUmVsYXRpb25JZCwgU2hh cmVVcGRhdGVFeGNsdXNpdmVMb2NrKTsKQEAgLTE1MDksMTkgKzE1MTAsMjggQEAgaW5kZXhfY29u Y3VycmVudGx5X2J1aWxkKE9pZCBoZWFwUmVsYXRpb25JZCwKIAogCWluZGV4UmVsYXRpb24gPSBp bmRleF9vcGVuKGluZGV4UmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CiAKKwkvKiBCdWls ZEluZGV4SW5mbyBtYXkgcmVxdWlyZSBhcyBzbmFwc2hvdCBmb3IgZXhwcmVzc2lvbnMgYW5kIHBy ZWRpY2F0ZXMgKi8KKwlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgp KTsKIAkvKgogCSAqIFdlIGhhdmUgdG8gcmUtYnVpbGQgdGhlIEluZGV4SW5mbyBzdHJ1Y3QsIHNp bmNlIGl0IHdhcyBsb3N0IGluIHRoZQogCSAqIGNvbW1pdCBvZiB0aGUgdHJhbnNhY3Rpb24gd2hl cmUgdGhpcyBjb25jdXJyZW50IGluZGV4IHdhcyBjcmVhdGVkIGF0CiAJICogdGhlIGNhdGFsb2cg bGV2ZWwuCiAJICovCiAJaW5kZXhJbmZvID0gQnVpbGRJbmRleEluZm8oaW5kZXhSZWxhdGlvbik7 CisJLyogRG9uZSB3aXRoIHNuYXBzaG90ICovCisJUG9wQWN0aXZlU25hcHNob3QoKTsKIAlBc3Nl cnQoIWluZGV4SW5mby0+aWlfUmVhZHlGb3JJbnNlcnRzKTsKIAlpbmRleEluZm8tPmlpX0NvbmN1 cnJlbnQgPSB0cnVlOwogCWluZGV4SW5mby0+aWlfQnJva2VuSG90Q2hhaW4gPSBmYWxzZTsKKwlB c3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKE15UHJvYy0+eG1pbikpOwogCiAJLyogTm93IGJ1 aWxkIHRoZSBpbmRleCAqLwogCWluZGV4X2J1aWxkKGhlYXBSZWwsIGluZGV4UmVsYXRpb24sIGlu ZGV4SW5mbywgZmFsc2UsIHRydWUpOwogCisJLyogSW52YWxpZGF0ZSBjYXRhbG9nIHNuYXBzaG90 IGp1c3QgZm9yIGFzc2VydCAqLworCUludmFsaWRhdGVDYXRhbG9nU25hcHNob3QoKTsKKwlBc3Nl cnQoKGluZGV4SW5mby0+aWlfUGFyYWxsZWxXb3JrZXJzIHx8IGluZGV4SW5mby0+aWlfVW5pcXVl KSB8fCAhVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT54bWluKSk7CisKIAkvKiBSb2xsIGJh Y2sgYW55IEdVQyBjaGFuZ2VzIGV4ZWN1dGVkIGJ5IGluZGV4IGZ1bmN0aW9ucyAqLwogCUF0RU9Y YWN0X0dVQyhmYWxzZSwgc2F2ZV9uZXN0bGV2ZWwpOwogCkBAIC0xNTMyLDEyICsxNTQyLDE5IEBA IGluZGV4X2NvbmN1cnJlbnRseV9idWlsZChPaWQgaGVhcFJlbGF0aW9uSWQsCiAJdGFibGVfY2xv c2UoaGVhcFJlbCwgTm9Mb2NrKTsKIAlpbmRleF9jbG9zZShpbmRleFJlbGF0aW9uLCBOb0xvY2sp OwogCisJLyoKKwkgKiBVcGRhdGluZyBwZ19pbmRleCBtaWdodCBpbnZvbHZlIFRPQVNUIHRhYmxl IGFjY2Vzcywgc28gZW5zdXJlIHdlCisJICogaGF2ZSBhIHZhbGlkIHNuYXBzaG90LgorCSAqLwor CVB1c2hBY3RpdmVTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOwogCS8qCiAJICog VXBkYXRlIHRoZSBwZ19pbmRleCByb3cgdG8gbWFyayB0aGUgaW5kZXggYXMgcmVhZHkgZm9yIGlu c2VydHMuIE9uY2Ugd2UKIAkgKiBjb21taXQgdGhpcyB0cmFuc2FjdGlvbiwgYW55IG5ldyB0cmFu c2FjdGlvbnMgdGhhdCBvcGVuIHRoZSB0YWJsZSBtdXN0CiAJICogaW5zZXJ0IG5ldyBlbnRyaWVz IGludG8gdGhlIGluZGV4IGZvciBpbnNlcnRpb25zIGFuZCBub24tSE9UIHVwZGF0ZXMuCiAJICov CiAJaW5kZXhfc2V0X3N0YXRlX2ZsYWdzKGluZGV4UmVsYXRpb25JZCwgSU5ERVhfQ1JFQVRFX1NF VF9SRUFEWSk7CisJLyogd2UgY2FuIGRvIGF3YXkgd2l0aCBvdXIgc25hcHNob3QgKi8KKwlQb3BB Y3RpdmVTbmFwc2hvdCgpOwogfQogCiAvKgpAQCAtMzIwNSw3ICszMjIyLDggQEAgSW5kZXhDaGVj a0V4Y2x1c2lvbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJCQkJCQkJCSAwLCAvKiBudW1iZXIg b2Yga2V5cyAqLwogCQkJCQkJCQkgTlVMTCwJLyogc2NhbiBrZXkgKi8KIAkJCQkJCQkJIHRydWUs CS8qIGJ1ZmZlciBhY2Nlc3Mgc3RyYXRlZ3kgT0sgKi8KLQkJCQkJCQkJIHRydWUpOyAvKiBzeW5j c2NhbiBPSyAqLworCQkJCQkJCQkgdHJ1ZSwgLyogc3luY3NjYW4gT0sgKi8KKwkJCQkJCQkJIGZh bHNlKTsKIAogCXdoaWxlICh0YWJsZV9zY2FuX2dldG5leHRzbG90KHNjYW4sIEZvcndhcmRTY2Fu RGlyZWN0aW9uLCBzbG90KSkKIAl7CkBAIC0zMjY4LDEyICszMjg2LDE2IEBAIEluZGV4Q2hlY2tF eGNsdXNpb24oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogICogYXMgb2YgdGhlIHN0YXJ0IG9mIHRo ZSBzY2FuIChzZWUgdGFibGVfaW5kZXhfYnVpbGRfc2NhbiksIHdoZXJlYXMgYSBub3JtYWwKICAq IGJ1aWxkIHRha2VzIGNhcmUgdG8gaW5jbHVkZSByZWNlbnRseS1kZWFkIHR1cGxlcy4gIFRoaXMg aXMgT0sgYmVjYXVzZQogICogd2Ugd29uJ3QgbWFyayB0aGUgaW5kZXggdmFsaWQgdW50aWwgYWxs IHRyYW5zYWN0aW9ucyB0aGF0IG1pZ2h0IGJlIGFibGUKLSAqIHRvIHNlZSB0aG9zZSB0dXBsZXMg YXJlIGdvbmUuICBUaGUgcmVhc29uIGZvciBkb2luZyB0aGF0IGlzIHRvIGF2b2lkCisgKiB0byBz ZWUgdGhvc2UgdHVwbGVzIGFyZSBnb25lLiAgT25lIG9mIHJlYXNvbnMgZm9yIGRvaW5nIHRoYXQg aXMgdG8gYXZvaWQKICAqIGJvZ3VzIHVuaXF1ZS1pbmRleCBmYWlsdXJlcyBkdWUgdG8gY29uY3Vy cmVudCBVUERBVEVzICh3ZSBtaWdodCBzZWUKICAqIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUg c2FtZSByb3cgYXMgYmVpbmcgdmFsaWQgd2hlbiB3ZSBwYXNzIG92ZXIgdGhlbSwKICAqIGlmIHdl IHVzZWQgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtKS4gIFRoaXMgbGVhdmVzIHVzIHdpdGggYW4g aW5kZXggdGhhdAogICogZG9lcyBub3QgY29udGFpbiBhbnkgdHVwbGVzIGFkZGVkIHRvIHRoZSB0 YWJsZSB3aGlsZSB3ZSBidWlsdCB0aGUgaW5kZXguCiAgKgorICogRnVydGhlcm1vcmUsIGluIGNh c2Ugb2Ygbm9uLXVuaXF1ZSBpbmRleCB3ZSBzZXQgU09fUkVTRVRfU05BUFNIT1QgZm9yIHRoZQor ICogc2Nhbiwgd2hpY2ggY2F1c2VzIG5ldyBzbmFwc2hvdCB0byBiZSBzZXQgYXMgYWN0aXZlIGV2 ZXJ5IHNvIG9mdGVuLiBUaGUgcmVhc29uCisgKiBmb3IgdGhhdCBpcyB0byBwcm9wYWdhdGUgdGhl IHhtaW4gaG9yaXpvbiBmb3J3YXJkLgorICoKICAqIE5leHQsIHdlIG1hcmsgdGhlIGluZGV4ICJp bmRpc3JlYWR5IiAoYnV0IHN0aWxsIG5vdCAiaW5kaXN2YWxpZCIpIGFuZAogICogY29tbWl0IHRo ZSBzZWNvbmQgdHJhbnNhY3Rpb24gYW5kIHN0YXJ0IGEgdGhpcmQuICBBZ2FpbiB3ZSB3YWl0IGZv ciBhbGwKICAqIHRyYW5zYWN0aW9ucyB0aGF0IGNvdWxkIGhhdmUgYmVlbiBtb2RpZnlpbmcgdGhl IHRhYmxlIHRvIHRlcm1pbmF0ZS4gIE5vdwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvaW5kZXhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwppbmRleCA5 MzI4NTRkNmM2MC4uNmMxZmNlOGVkMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2luZGV4Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCkBAIC0x NjcwLDIzICsxNjcwLDE3IEBAIERlZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCSAqIGNoYWlucyBj YW4gYmUgY3JlYXRlZCB3aGVyZSB0aGUgbmV3IHR1cGxlIGFuZCB0aGUgb2xkIHR1cGxlIGluIHRo ZQogCSAqIGNoYWluIGhhdmUgZGlmZmVyZW50IGluZGV4IGtleXMuCiAJICoKLQkgKiBXZSBub3cg dGFrZSBhIG5ldyBzbmFwc2hvdCwgYW5kIGJ1aWxkIHRoZSBpbmRleCB1c2luZyBhbGwgdHVwbGVz IHRoYXQKLQkgKiBhcmUgdmlzaWJsZSBpbiB0aGlzIHNuYXBzaG90LiAgV2UgY2FuIGJlIHN1cmUg dGhhdCBhbnkgSE9UIHVwZGF0ZXMgdG8KKwkgKiBXZSBidWlsZCB0aGUgaW5kZXggdXNpbmcgYWxs IHR1cGxlcyB0aGF0IGFyZSB2aXNpYmxlIHVzaW5nIHNpbmdsZSBvcgorCSAqIG11bHRpcGxlIHJl ZnJlc2hpbmcgc25hcHNob3RzLiBXZSBjYW4gYmUgc3VyZSB0aGF0IGFueSBIT1QgdXBkYXRlcyB0 bwogCSAqIHRoZXNlIHR1cGxlcyB3aWxsIGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgaW5kZXgsIHNp bmNlIGFueSB1cGRhdGVzIG1hZGUKIAkgKiBieSB0cmFuc2FjdGlvbnMgdGhhdCBkaWRuJ3Qga25v dyBhYm91dCB0aGUgaW5kZXggYXJlIG5vdyBjb21taXR0ZWQgb3IKIAkgKiByb2xsZWQgYmFjay4g IFRodXMsIGVhY2ggdmlzaWJsZSB0dXBsZSBpcyBlaXRoZXIgdGhlIGVuZCBvZiBpdHMKIAkgKiBI T1QtY2hhaW4gb3IgdGhlIGV4dGVuc2lvbiBvZiB0aGUgY2hhaW4gaXMgSE9ULXNhZmUgZm9yIHRo aXMgaW5kZXguCiAJICovCiAKLQkvKiBTZXQgQWN0aXZlU25hcHNob3Qgc2luY2UgZnVuY3Rpb25z IGluIHRoZSBpbmRleGVzIG1heSBuZWVkIGl0ICovCi0JUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRy YW5zYWN0aW9uU25hcHNob3QoKSk7Ci0KIAkvKiBQZXJmb3JtIGNvbmN1cnJlbnQgYnVpbGQgb2Yg aW5kZXggKi8KIAlpbmRleF9jb25jdXJyZW50bHlfYnVpbGQodGFibGVJZCwgaW5kZXhSZWxhdGlv bklkKTsKIAotCS8qIHdlIGNhbiBkbyBhd2F5IHdpdGggb3VyIHNuYXBzaG90ICovCi0JUG9wQWN0 aXZlU25hcHNob3QoKTsKLQogCS8qCiAJICogQ29tbWl0IHRoaXMgdHJhbnNhY3Rpb24gdG8gbWFr ZSB0aGUgaW5kaXNyZWFkeSB1cGRhdGUgdmlzaWJsZS4KIAkgKi8KQEAgLTQwODQsOSArNDA3OCw2 IEBAIFJlaW5kZXhSZWxhdGlvbkNvbmN1cnJlbnRseShjb25zdCBSZWluZGV4U3RtdCAqc3RtdCwg T2lkIHJlbGF0aW9uT2lkLCBjb25zdCBSZWluCiAJCWlmIChuZXdpZHgtPnNhZmUpCiAJCQlzZXRf aW5kZXhzYWZlX3Byb2NmbGFncygpOwogCi0JCS8qIFNldCBBY3RpdmVTbmFwc2hvdCBzaW5jZSBm dW5jdGlvbnMgaW4gdGhlIGluZGV4ZXMgbWF5IG5lZWQgaXQgKi8KLQkJUHVzaEFjdGl2ZVNuYXBz aG90KEdldFRyYW5zYWN0aW9uU25hcHNob3QoKSk7Ci0KIAkJLyoKIAkJICogVXBkYXRlIHByb2dy ZXNzIGZvciB0aGUgaW5kZXggdG8gYnVpbGQsIHdpdGggdGhlIGNvcnJlY3QgcGFyZW50CiAJCSAq IHRhYmxlIGludm9sdmVkLgpAQCAtNDEwMSw3ICs0MDkyLDYgQEAgUmVpbmRleFJlbGF0aW9uQ29u Y3VycmVudGx5KGNvbnN0IFJlaW5kZXhTdG10ICpzdG10LCBPaWQgcmVsYXRpb25PaWQsIGNvbnN0 IFJlaW4KIAkJLyogUGVyZm9ybSBjb25jdXJyZW50IGJ1aWxkIG9mIG5ldyBpbmRleCAqLwogCQlp bmRleF9jb25jdXJyZW50bHlfYnVpbGQobmV3aWR4LT50YWJsZUlkLCBuZXdpZHgtPmluZGV4SWQp OwogCi0JCVBvcEFjdGl2ZVNuYXBzaG90KCk7CiAJCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgp OwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5j IGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IGYzODU2YzUxOWY2 Li41Yzc1MTRjOTZhYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAtNjEs NiArNjEsNyBAQAogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxz L3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3NlbGZ1bmNzLmgiCisjaW5jbHVkZSAidXRpbHMvc25h cG1nci5oIgogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwogZG91YmxlCQljdXJzb3JfdHVwbGVfZnJh Y3Rpb24gPSBERUZBVUxUX0NVUlNPUl9UVVBMRV9GUkFDVElPTjsKQEAgLTY3NzksNiArNjc4MCw3 IEBAIHBsYW5fY3JlYXRlX2luZGV4X3dvcmtlcnMoT2lkIHRhYmxlT2lkLCBPaWQgaW5kZXhPaWQp CiAJUmVsYXRpb24JaGVhcDsKIAlSZWxhdGlvbglpbmRleDsKIAlSZWxPcHRJbmZvICpyZWw7CisJ Ym9vbAkJbmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90ID0gZmFsc2U7CiAJaW50CQkJcGFyYWxsZWxf d29ya2VyczsKIAlCbG9ja051bWJlciBoZWFwX2Jsb2NrczsKIAlkb3VibGUJCXJlbHR1cGxlczsK QEAgLTY4MzQsNiArNjgzNiwxMSBAQCBwbGFuX2NyZWF0ZV9pbmRleF93b3JrZXJzKE9pZCB0YWJs ZU9pZCwgT2lkIGluZGV4T2lkKQogCWhlYXAgPSB0YWJsZV9vcGVuKHRhYmxlT2lkLCBOb0xvY2sp OwogCWluZGV4ID0gaW5kZXhfb3BlbihpbmRleE9pZCwgTm9Mb2NrKTsKIAorCS8qIFNldCBBY3Rp dmVTbmFwc2hvdCBzaW5jZSBmdW5jdGlvbnMgaW4gdGhlIGluZGV4ZXMgbWF5IG5lZWQgaXQgKi8K KwlpZiAoIUFjdGl2ZVNuYXBzaG90U2V0KCkpIHsKKwkJUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRy YW5zYWN0aW9uU25hcHNob3QoKSk7CisJCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCA9IHRydWU7 CisJfQogCS8qCiAJICogRGV0ZXJtaW5lIGlmIGl0J3Mgc2FmZSB0byBwcm9jZWVkLgogCSAqCkBA IC02ODkxLDYgKzY4OTgsOCBAQCBwbGFuX2NyZWF0ZV9pbmRleF93b3JrZXJzKE9pZCB0YWJsZU9p ZCwgT2lkIGluZGV4T2lkKQogCQlwYXJhbGxlbF93b3JrZXJzLS07CiAKIGRvbmU6CisJaWYgKG5l ZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCkKKwkJUG9wQWN0aXZlU25hcHNob3QoKTsKIAlpbmRleF9j bG9zZShpbmRleCwgTm9Mb2NrKTsKIAl0YWJsZV9jbG9zZShoZWFwLCBOb0xvY2spOwogCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNz L3RhYmxlYW0uaAppbmRleCBhZGI0NzhhOTNjYS4uZjRjN2QyYTkyYmYgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxl YW0uaApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgInN0b3JhZ2UvcmVhZF9zdHJlYW0uaCIK ICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwc2hvdC5oIgorI2lu Y2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2ludC5oIgogCiAKICNkZWZpbmUgREVGQVVMVF9UQUJM RV9BQ0NFU1NfTUVUSE9ECSJoZWFwIgpAQCAtNjksNiArNzAsMTcgQEAgdHlwZWRlZiBlbnVtIFNj YW5PcHRpb25zCiAJICogbmVlZGVkLiBJZiB0YWJsZSBkYXRhIG1heSBiZSBuZWVkZWQsIHNldCBT T19ORUVEX1RVUExFUy4KIAkgKi8KIAlTT19ORUVEX1RVUExFUyA9IDEgPDwgMTAsCisJLyoKKwkg KiBSZXNldCBzY2FuIGFuZCBjYXRhbG9nIHNuYXBzaG90IGV2ZXJ5IHNvIG9mdGVuPyBJZiBzbywg ZWFjaAorCSAqIFNPX1JFU0VUX1NOQVBTSE9UX0VBQ0hfTl9QQUdFIHBhZ2VzIGFjdGl2ZSBzbmFw c2hvdCBpcyBwb3BwZWQsCisJICogY2F0YWxvZyBzbmFwc2hvdCBpbnZhbGlkYXRlZCwgbGF0ZXN0 IHNuYXBzaG90IHB1c2hlZCBhcyBhY3RpdmUuCisJICoKKwkgKiBBdCB0aGUgZW5kIG9mIHRoZSBz Y2FuIHNuYXBzaG90IGlzIG5vdCBwb3BwZWQuCisJICogR29hbCBvZiBzdWNoIG1vZGUgaXMga2Vl cCB4bWluIHByb3BhZ2F0aW5nIGhvcml6b24gZm9yd2FyZC4KKwkgKgorCSAqIHNlZSBoZWFwX3Jl c2V0X3NjYW5fc25hcHNob3QgZm9yIGRldGFpbHMuCisJICovCisJU09fUkVTRVRfU05BUFNIT1Qg PSAxIDw8IDExLAogfQkJCVNjYW5PcHRpb25zOwogCiAvKgpAQCAtOTM1LDcgKzk0Nyw4IEBAIGV4 dGVybiBUYWJsZVNjYW5EZXNjIHRhYmxlX2JlZ2luc2Nhbl9jYXRhbG9nKFJlbGF0aW9uIHJlbGF0 aW9uLCBpbnQgbmtleXMsCiBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2lu c2Nhbl9zdHJhdChSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkgIGludCBu a2V5cywgc3RydWN0IFNjYW5LZXlEYXRhICprZXksCi0JCQkJCSAgYm9vbCBhbGxvd19zdHJhdCwg Ym9vbCBhbGxvd19zeW5jKQorCQkJCQkgIGJvb2wgYWxsb3dfc3RyYXQsIGJvb2wgYWxsb3dfc3lu YywKKwkJCQkJICBib29sIHJlc2V0X3NuYXBzaG90KQogewogCXVpbnQzMgkJZmxhZ3MgPSBTT19U WVBFX1NFUVNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKIApAQCAtOTQzLDYgKzk1NiwxNSBAQCB0 YWJsZV9iZWdpbnNjYW5fc3RyYXQoUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJ ZmxhZ3MgfD0gU09fQUxMT1dfU1RSQVQ7CiAJaWYgKGFsbG93X3N5bmMpCiAJCWZsYWdzIHw9IFNP X0FMTE9XX1NZTkM7CisJaWYgKHJlc2V0X3NuYXBzaG90KQorCXsKKwkJSU5KRUNUSU9OX1BPSU5U KCJ0YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVzZXRfc25hcHNob3RzIik7CisJCS8qIEFjdGl2ZSBz bmFwc2hvdCBpcyByZXF1aXJlZCBvbiBzdGFydC4gKi8KKwkJQXNzZXJ0KEdldEFjdGl2ZVNuYXBz aG90KCkgPT0gc25hcHNob3QpOworCQkvKiBBY3RpdmUgc25hcHNob3Qgc2hvdWxkIG5vdCBiZSBy ZWdpc3RlcmVkIHRvIGtlZXAgeG1pbiBwcm9wYWdhdGluZy4gKi8KKwkJQXNzZXJ0KEdldEFjdGl2 ZVNuYXBzaG90KCktPnJlZ2RfY291bnQgPT0gMCk7CisJCWZsYWdzIHw9IChTT19SRVNFVF9TTkFQ U0hPVCk7CisJfQogCiAJcmV0dXJuIHJlbC0+cmRfdGFibGVhbS0+c2Nhbl9iZWdpbihyZWwsIHNu YXBzaG90LCBua2V5cywga2V5LCBOVUxMLCBmbGFncyk7CiB9CkBAIC0xNzc5LDYgKzE4MDEsMTAg QEAgdGFibGVfc2Nhbl9hbmFseXplX25leHRfdHVwbGUoVGFibGVTY2FuRGVzYyBzY2FuLCBUcmFu c2FjdGlvbklkIE9sZGVzdFhtaW4sCiAgKiB2ZXJ5IGhhcmQgdG8gZGV0ZWN0IHdoZXRoZXIgdGhl eSdyZSByZWFsbHkgaW5jb21wYXRpYmxlIHdpdGggdGhlIGNoYWluIHRpcC4KICAqIFRoaXMgb25s eSByZWFsbHkgbWFrZXMgc2Vuc2UgZm9yIGhlYXAgQU0sIGl0IG1pZ2h0IG5lZWQgdG8gYmUgZ2Vu ZXJhbGl6ZWQKICAqIGZvciBvdGhlciBBTXMgbGF0ZXIuCisgKgorICogSW4gY2FzZSBvZiBub24t dW5pcXVlIGluZGV4IGFuZCBub24tcGFyYWxsZWwgY29uY3VycmVudCBidWlsZAorICogU09fUkVT RVRfU05BUFNIT1QgaXMgYXBwbGllZCBmb3IgdGhlIHNjYW4uIFRoYXQgbGVhZHMgZm9yIGNoYW5n aW5nIHNuYXBzaG90cworICogb24gdGhlIGZseSB0byBhbGxvdyB4bWluIGhvcml6b24gcHJvcGFn YXRlLgogICovCiBzdGF0aWMgaW5saW5lIGRvdWJsZQogdGFibGVfaW5kZXhfYnVpbGRfc2NhbihS ZWxhdGlvbiB0YWJsZV9yZWwsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlv bl9wb2ludHMvTWFrZWZpbGUgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFr ZWZpbGUKaW5kZXggZjhmODZlOGYzYjYuLjczODkzZDM1MWJiIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFrZWZpbGUKKysrIGIvc3JjL3Rlc3QvbW9kdWxl cy9pbmplY3Rpb25fcG9pbnRzL01ha2VmaWxlCkBAIC0xMCw3ICsxMCw3IEBAIEVYVEVOU0lPTiA9 IGluamVjdGlvbl9wb2ludHMKIERBVEEgPSBpbmplY3Rpb25fcG9pbnRzLS0xLjAuc3FsCiBQR0ZJ TEVERVNDID0gImluamVjdGlvbl9wb2ludHMgLSBmYWNpbGl0eSBmb3IgaW5qZWN0aW9uIHBvaW50 cyIKIAotUkVHUkVTUyA9IGluamVjdGlvbl9wb2ludHMgcmVpbmRleF9jb25jCitSRUdSRVNTID0g aW5qZWN0aW9uX3BvaW50cyByZWluZGV4X2NvbmMgY2ljX3Jlc2V0X3NuYXBzaG90cwogUkVHUkVT U19PUFRTID0gLS1kbHBhdGg9JCh0b3BfYnVpbGRkaXIpL3NyYy90ZXN0L3JlZ3Jlc3MKIAogSVNP TEFUSU9OID0gYmFzaWMgaW5wbGFjZSBcCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2lu amVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvY2ljX3Jlc2V0X3NuYXBzaG90cy5vdXQgYi9zcmMvdGVz dC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvY2ljX3Jlc2V0X3NuYXBzaG90cy5v dXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVkYjU0NTMwZjE3Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVj dGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0CkBAIC0wLDAgKzEsMTA3IEBACitDUkVBVEUgRVhU RU5TSU9OIGluamVjdGlvbl9wb2ludHM7CitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9j YWwoKTsKKyBpbmplY3Rpb25fcG9pbnRzX3NldF9sb2NhbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdo ZWFwX3Jlc2V0X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlJywgJ25vdGljZScpOworIGluamVjdGlv bl9wb2ludHNfYXR0YWNoIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQor CitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ3RhYmxlX2JlZ2luc2Nhbl9zdHJhdF9y ZXNldF9zbmFwc2hvdHMnLCAnbm90aWNlJyk7CisgaW5qZWN0aW9uX3BvaW50c19hdHRhY2ggCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBTQ0hFTUEgY2lj X3Jlc2V0X3NuYXA7CitDUkVBVEUgVEFCTEUgY2ljX3Jlc2V0X3NuYXAudGJsKGkgaW50IHByaW1h cnkga2V5LCBqIGludCk7CitJTlNFUlQgSU5UTyBjaWNfcmVzZXRfc25hcC50YmwgU0VMRUNUIGks IGkgKiBJIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwMCkgcyhpKTsKK0NSRUFURSBGVU5DVElP TiBjaWNfcmVzZXRfc25hcC5wcmVkaWNhdGVfc3RhYmxlKGludGVnZXIpIFJFVFVSTlMgYm9vbCBJ TU1VVEFCTEUKKwkJCQkJCQkJCSAgTEFOR1VBR0UgcGxwZ3NxbCBBUyAkJAorQkVHSU4KKyAgICBF WEVDVVRFICdTRUxFQ1QgdHhpZF9jdXJyZW50KCknOworICAgIFJFVFVSTiBNT0QoJDEsIDIpID0g MDsKK0VORDsgJCQ7CitDUkVBVEUgRlVOQ1RJT04gY2ljX3Jlc2V0X3NuYXAucHJlZGljYXRlX3N0 YWJsZV9ub19wYXJhbSgpIFJFVFVSTlMgYm9vbCBJTU1VVEFCTEUKKwkJCQkJCQkJCSAgTEFOR1VB R0UgcGxwZ3NxbCBBUyAkJAorQkVHSU4KKyAgICBFWEVDVVRFICdTRUxFQ1QgdHhpZF9jdXJyZW50 KCknOworICAgIFJFVFVSTiBmYWxzZTsKK0VORDsgJCQ7CistLS0tLS0tLS0tLS0tLS0tCitBTFRF UiBUQUJMRSBjaWNfcmVzZXRfc25hcC50YmwgU0VUIChwYXJhbGxlbF93b3JrZXJzPTApOworQ1JF QVRFIFVOSVFVRSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChp KTsKK1JFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0RST1Ag SU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0NSRUFURSBJTkRFWCBDT05D VVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKK05PVElDRTogIG5vdGljZSB0 cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVzZXRf c25hcHNob3RzCitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQg aGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZQorUkVJTkRFWCBJTkRFWCBDT05DVVJS RU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3Ig aW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMKK05P VElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0X3Nj YW5fc25hcHNob3RfZWZmZWN0aXZlCitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRf c25hcC5pZHg7CitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25h cC50YmwoTU9EKGksIDIpLCBqKSBXSEVSRSBNT0QoaSwgMikgPSAwOworTk9USUNFOiAgbm90aWNl IHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNl dF9zbmFwc2hvdHMKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2lu dCBoZWFwX3Jlc2V0X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCitSRUlOREVYIElOREVYIENPTkNV UlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZv ciBpbmplY3Rpb24gcG9pbnQgdGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBzaG90cwor Tk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IGhlYXBfcmVzZXRf c2Nhbl9zbmFwc2hvdF9lZmZlY3RpdmUKK0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNl dF9zbmFwLmlkeDsKK0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9z bmFwLnRibChpLCBqKSBXSEVSRSBjaWNfcmVzZXRfc25hcC5wcmVkaWNhdGVfc3RhYmxlKGkpOwor Tk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2lu c2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9y IGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCitSRUlO REVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitOT1RJQ0U6ICBub3Rp Y2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jl c2V0X3NuYXBzaG90cworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBv aW50IGhlYXBfcmVzZXRfc2Nhbl9zbmFwc2hvdF9lZmZlY3RpdmUKK0RST1AgSU5ERVggQ09OQ1VS UkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4 IE9OIGNpY19yZXNldF9zbmFwLnRibChpLCBqKSBXSEVSRSBjaWNfcmVzZXRfc25hcC5wcmVkaWNh dGVfc3RhYmxlX25vX3BhcmFtKCk7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmpl Y3Rpb24gcG9pbnQgdGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBzaG90cworUkVJTkRF WCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworTk9USUNFOiAgbm90aWNl IHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNl dF9zbmFwc2hvdHMKK0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsK K0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibCBVU0lO RyBCUklOKGkpOworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50 IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMKK05PVElDRTogIG5vdGljZSB0 cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0X3NjYW5fc25hcHNob3RfZWZm ZWN0aXZlCitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitO T1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVfYmVnaW5z Y2FuX3N0cmF0X3Jlc2V0X3NuYXBzaG90cworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3Ig aW5qZWN0aW9uIHBvaW50IGhlYXBfcmVzZXRfc2Nhbl9zbmFwc2hvdF9lZmZlY3RpdmUKK0RST1Ag SU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKKy0tIFRoZSBzYW1lIGluIHBh cmFsbGVsIG1vZGUKK0FMVEVSIFRBQkxFIGNpY19yZXNldF9zbmFwLnRibCBTRVQgKHBhcmFsbGVs X3dvcmtlcnM9Mik7CitDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2lj X3Jlc2V0X3NuYXAudGJsKGkpOworUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0 X3NuYXAuaWR4OworRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4Owor Q1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKGkpOwor UkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRF WCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworQ1JFQVRFIElOREVYIENPTkNVUlJF TlRMWSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKE1PRChpLCAyKSwgaikgV0hFUkUgTU9EKGks IDIpID0gMDsKK1JFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsK K0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0NSRUFURSBJTkRF WCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpLCBqKSBXSEVSRSBjaWNf cmVzZXRfc25hcC5wcmVkaWNhdGVfc3RhYmxlKGkpOworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJl ZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hv dHMKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jl c2V0X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBj aWNfcmVzZXRfc25hcC5pZHg7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rp b24gcG9pbnQgdGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBzaG90cworTk9USUNFOiAg bm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IGhlYXBfcmVzZXRfc2Nhbl9zbmFw c2hvdF9lZmZlY3RpdmUKK0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlk eDsKK0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChp LCBqKSBXSEVSRSBjaWNfcmVzZXRfc25hcC5wcmVkaWNhdGVfc3RhYmxlX25vX3BhcmFtKCk7CitS RUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIElOREVY IENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitDUkVBVEUgSU5ERVggQ09OQ1VSUkVO VExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSBERVNDIE5VTExTIExBU1QpOworTk9USUNF OiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX3BhcmFsbGVsc2Nh bl9pbml0aWFsaXplCitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5p ZHg7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVf cGFyYWxsZWxzY2FuX2luaXRpYWxpemUKK0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNl dF9zbmFwLmlkeDsKK0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9z bmFwLnRibCBVU0lORyBCUklOKGkpOworUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jl c2V0X3NuYXAuaWR4OworRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4 OworRFJPUCBTQ0hFTUEgY2ljX3Jlc2V0X3NuYXAgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2Fz Y2FkZXMgdG8gMyBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxl IGNpY19yZXNldF9zbmFwLnRibAorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBjaWNfcmVzZXRf c25hcC5wcmVkaWNhdGVfc3RhYmxlKGludGVnZXIpCitkcm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9u IGNpY19yZXNldF9zbmFwLnByZWRpY2F0ZV9zdGFibGVfbm9fcGFyYW0oKQorRFJPUCBFWFRFTlNJ T04gaW5qZWN0aW9uX3BvaW50czsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0 aW9uX3BvaW50cy9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50 cy9tZXNvbi5idWlsZAppbmRleCA5MWZjOGNlNjg3Zi4uZjI4ODYzM2RhNGYgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNvbi5idWlsZAorKysgYi9zcmMv dGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQKQEAgLTM1LDYgKzM1LDcg QEAgdGVzdHMgKz0gewogICAgICdzcWwnOiBbCiAgICAgICAnaW5qZWN0aW9uX3BvaW50cycsCiAg ICAgICAncmVpbmRleF9jb25jJywKKyAgICAgICdjaWNfcmVzZXRfc25hcHNob3RzJywKICAgICBd LAogICAgICdyZWdyZXNzX2FyZ3MnOiBbJy0tZGxwYXRoJywgbWVzb24uYnVpbGRfcm9vdCgpIC8g J3NyYy90ZXN0L3JlZ3Jlc3MnXSwKICAgICAjIFRoZSBpbmplY3Rpb24gcG9pbnRzIGFyZSBjbHVz dGVyLXdpZGUsIHNvIGRpc2FibGUgaW5zdGFsbGNoZWNrCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9t b2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3FsL2NpY19yZXNldF9zbmFwc2hvdHMuc3FsIGIvc3Jj L3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NxbC9jaWNfcmVzZXRfc25hcHNob3RzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTA3MjUzNWIzNTUKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3FsL2Np Y19yZXNldF9zbmFwc2hvdHMuc3FsCkBAIC0wLDAgKzEsODYgQEAKK0NSRUFURSBFWFRFTlNJT04g aW5qZWN0aW9uX3BvaW50czsKKworU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7 CitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2hlYXBfcmVzZXRfc2Nhbl9zbmFwc2hv dF9lZmZlY3RpdmUnLCAnbm90aWNlJyk7CitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2go J3RhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMnLCAnbm90aWNlJyk7CisKKwor Q1JFQVRFIFNDSEVNQSBjaWNfcmVzZXRfc25hcDsKK0NSRUFURSBUQUJMRSBjaWNfcmVzZXRfc25h cC50YmwoaSBpbnQgcHJpbWFyeSBrZXksIGogaW50KTsKK0lOU0VSVCBJTlRPIGNpY19yZXNldF9z bmFwLnRibCBTRUxFQ1QgaSwgaSAqIEkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAwKSBzKGkp OworCitDUkVBVEUgRlVOQ1RJT04gY2ljX3Jlc2V0X3NuYXAucHJlZGljYXRlX3N0YWJsZShpbnRl Z2VyKSBSRVRVUk5TIGJvb2wgSU1NVVRBQkxFCisJCQkJCQkJCQkgIExBTkdVQUdFIHBscGdzcWwg QVMgJCQKK0JFR0lOCisgICAgRVhFQ1VURSAnU0VMRUNUIHR4aWRfY3VycmVudCgpJzsKKyAgICBS RVRVUk4gTU9EKCQxLCAyKSA9IDA7CitFTkQ7ICQkOworCitDUkVBVEUgRlVOQ1RJT04gY2ljX3Jl c2V0X3NuYXAucHJlZGljYXRlX3N0YWJsZV9ub19wYXJhbSgpIFJFVFVSTlMgYm9vbCBJTU1VVEFC TEUKKwkJCQkJCQkJCSAgTEFOR1VBR0UgcGxwZ3NxbCBBUyAkJAorQkVHSU4KKyAgICBFWEVDVVRF ICdTRUxFQ1QgdHhpZF9jdXJyZW50KCknOworICAgIFJFVFVSTiBmYWxzZTsKK0VORDsgJCQ7CisK Ky0tLS0tLS0tLS0tLS0tLS0KK0FMVEVSIFRBQkxFIGNpY19yZXNldF9zbmFwLnRibCBTRVQgKHBh cmFsbGVsX3dvcmtlcnM9MCk7CisKK0NSRUFURSBVTklRVUUgSU5ERVggQ09OQ1VSUkVOVExZIGlk eCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSk7CitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBj aWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25h cC5pZHg7CisKK0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFw LnRibChpKTsKK1JFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsK K0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKKworQ1JFQVRFIElO REVYIENPTkNVUlJFTlRMWSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKE1PRChpLCAyKSwgaikg V0hFUkUgTU9EKGksIDIpID0gMDsKK1JFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNl dF9zbmFwLmlkeDsKK0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsK KworQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKGks IGopIFdIRVJFIGNpY19yZXNldF9zbmFwLnByZWRpY2F0ZV9zdGFibGUoaSk7CitSRUlOREVYIElO REVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIElOREVYIENPTkNVUlJF TlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CisKK0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4 IE9OIGNpY19yZXNldF9zbmFwLnRibChpLCBqKSBXSEVSRSBjaWNfcmVzZXRfc25hcC5wcmVkaWNh dGVfc3RhYmxlX25vX3BhcmFtKCk7CitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVz ZXRfc25hcC5pZHg7CitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7 CisKK0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibCBV U0lORyBCUklOKGkpOworUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAu aWR4OworRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworCistLSBU aGUgc2FtZSBpbiBwYXJhbGxlbCBtb2RlCitBTFRFUiBUQUJMRSBjaWNfcmVzZXRfc25hcC50Ymwg U0VUIChwYXJhbGxlbF93b3JrZXJzPTIpOworCitDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJF TlRMWSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKGkpOworUkVJTkRFWCBJTkRFWCBDT05DVVJS RU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jl c2V0X3NuYXAuaWR4OworCitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVz ZXRfc25hcC50YmwoaSk7CitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25h cC5pZHg7CitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CisKK0NS RUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChNT0QoaSwg MiksIGopIFdIRVJFIE1PRChpLCAyKSA9IDA7CitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBj aWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25h cC5pZHg7CisKK0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFw LnRibChpLCBqKSBXSEVSRSBjaWNfcmVzZXRfc25hcC5wcmVkaWNhdGVfc3RhYmxlKGkpOworUkVJ TkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRFWCBD T05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworCitDUkVBVEUgSU5ERVggQ09OQ1VSUkVO VExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSwgaikgV0hFUkUgY2ljX3Jlc2V0X3NuYXAu cHJlZGljYXRlX3N0YWJsZV9ub19wYXJhbSgpOworUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkg Y2ljX3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3Nu YXAuaWR4OworCitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25h cC50YmwoaSBERVNDIE5VTExTIExBU1QpOworUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2lj X3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAu aWR4OworCitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50 YmwgVVNJTkcgQlJJTihpKTsKK1JFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9z bmFwLmlkeDsKK0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKKwor RFJPUCBTQ0hFTUEgY2ljX3Jlc2V0X3NuYXAgQ0FTQ0FERTsKKworRFJPUCBFWFRFTlNJT04gaW5q ZWN0aW9uX3BvaW50czsKLS0gCjIuNDMuMAoK --00000000000024b9660629cb89c8 Content-Type: application/octet-stream; name="v7-0002-Add-stress-tests-for-concurrent-index-operations.patch" Content-Disposition: attachment; filename="v7-0002-Add-stress-tests-for-concurrent-index-operations.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4yh51b71 RnJvbSBiNGYyMmExZGE0YmJiZmY2YTI2OGMwZjYyMTk2YTI2NGNiMTI2ODk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAzMCBOb3YgMjAyNCAxNjoyNDoyMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjcgMi82 XSBBZGQgc3RyZXNzIHRlc3RzIGZvciBjb25jdXJyZW50IGluZGV4IG9wZXJhdGlvbnMKCkFkZCBj b21wcmVoZW5zaXZlIHN0cmVzcyB0ZXN0cyBmb3IgY29uY3VycmVudCBpbmRleCBvcGVyYXRpb25z LCBmb2N1c2luZyBvbjoKKiBUZXN0aW5nIENSRUFURS9SRUlOREVYL0RST1AgSU5ERVggQ09OQ1VS UkVOVExZIHVuZGVyIGhlYXZ5IHdyaXRlIGxvYWQKKiBWZXJpZnlpbmcgaW5kZXggaW50ZWdyaXR5 IGR1cmluZyBjb25jdXJyZW50IEhPVCB1cGRhdGVzCiogVGVzdGluZyB2YXJpb3VzIGluZGV4IHR5 cGVzIGluY2x1ZGluZyB1bmlxdWUgYW5kIHBhcnRpYWwgaW5kZXhlcwoqIFZhbGlkYXRpbmcgaW5k ZXggY29ycmVjdG5lc3MgdXNpbmcgYW1jaGVjawoqIEV4ZXJjaXNpbmcgcGFyYWxsZWwgd29ya2Vy IGNvbmZpZ3VyYXRpb25zCgpUaGVzZSBzdHJlc3MgdGVzdHMgaGVscCBlbnN1cmUgcmVsaWFiaWxp dHkgb2YgY29uY3VycmVudCBpbmRleCBvcGVyYXRpb25zCnVuZGVyIGhlYXZ5IGxvYWQgY29uZGl0 aW9ucy4KLS0tCiBzcmMvYmluL3BnX2FtY2hlY2svbWVzb24uYnVpbGQgIHwgICAxICsKIHNyYy9i aW4vcGdfYW1jaGVjay90LzAwNl9jaWMucGwgfCAxNDQgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTQ1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvYmluL3BnX2FtY2hlY2svdC8wMDZfY2ljLnBsCgpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19hbWNoZWNrL21lc29uLmJ1aWxkIGIvc3JjL2Jpbi9wZ19hbWNoZWNrL21lc29uLmJ1 aWxkCmluZGV4IDI5MmIzM2ViMDk0Li40YThmNGZiYzhiMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w Z19hbWNoZWNrL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iaW4vcGdfYW1jaGVjay9tZXNvbi5idWls ZApAQCAtMjgsNiArMjgsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8wMDNfY2hlY2sucGwnLAog ICAgICAgJ3QvMDA0X3ZlcmlmeV9oZWFwYW0ucGwnLAogICAgICAgJ3QvMDA1X29wY2xhc3NfZGFt YWdlLnBsJywKKyAgICAgICd0LzAwNl9jaWMucGwnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX2FtY2hlY2svdC8wMDZfY2ljLnBsIGIvc3JjL2Jpbi9wZ19hbWNoZWNr L3QvMDA2X2NpYy5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTQy ZThmYjg0NWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmluL3BnX2FtY2hlY2svdC8wMDZfY2lj LnBsCkBAIC0wLDAgKzEsMTQ0IEBACisjIENvcHlyaWdodCAoYykgMjAyNCwgUG9zdGdyZVNRTCBH bG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBUZXN0IFJFSU5ERVggQ09OQ1VSUkVOVExZIHdp dGggY29uY3VycmVudCBtb2RpZmljYXRpb25zIGFuZCBIT1QgdXBkYXRlcwordXNlIHN0cmljdDsK K3VzZSB3YXJuaW5ncyBGQVRBTCA9PiAnYWxsJzsKKwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNs dXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKwor VGVzdDo6TW9yZS0+YnVpbGRlci0+dG9kb19zdGFydCgnZmlsZXN5c3RlbSBidWcnKQorICBpZiBQ b3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6aGFzX3dhbF9yZWFkX2J1ZzsKKworbXkgKCRub2RlLCAk cmVzdWx0KTsKKworIworIyBUZXN0IHNldC11cAorIworJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0 OjpDbHVzdGVyLT5uZXcoJ1JDX3Rlc3QnKTsKKyRub2RlLT5pbml0OworJG5vZGUtPmFwcGVuZF9j b25mKCdwb3N0Z3Jlc3FsLmNvbmYnLAorCSdsb2NrX3RpbWVvdXQgPSAnIC4gKDEwMDAgKiAkUG9z dGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRpbWVvdXRfZGVmYXVsdCkpOworJG5vZGUtPmFwcGVuZF9j b25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAnZnN5bmMgPSBvZmYnKTsKKyRub2RlLT5zdGFydDsKKyRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDUkVBVEUgRVhURU5TSU9OIGFtY2hlY2spKTsK KyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDUkVBVEUgVEFCTEUgdGJsKGkgaW50IHBy aW1hcnkga2V5LAorCQkJCQkJCQljMSBtb25leSBkZWZhdWx0IDAsIGMyIG1vbmV5IGRlZmF1bHQg MCwKKwkJCQkJCQkJYzMgbW9uZXkgZGVmYXVsdCAwLCB1cGRhdGVkX2F0IHRpbWVzdGFtcCkpKTsK KyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZ IGlkeCBPTiB0YmwoaSwgdXBkYXRlZF9hdCk7KSk7CisjIGNyZWF0ZSBzZXF1ZW5jZQorJG5vZGUt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKENSRUFURSBVTkxPR0dFRCBTRVFVRU5DRSBpbl9yb3df cmVidWlsZCBTVEFSVCAxIElOQ1JFTUVOVCAxOykpOworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxKFNFTEVDVCBuZXh0dmFsKCdpbl9yb3dfcmVidWlsZCcpOykpOworCisjIENyZWF0ZSBo ZWxwZXIgZnVuY3Rpb25zIGZvciBwcmVkaWNhdGUgdGVzdHMKKyRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgcSgKKwlDUkVBVEUgRlVOQ1RJT04gcHJlZGljYXRlX3N0YWJsZSgpIFJFVFVSTlMg Ym9vbCBJTU1VVEFCTEUKKwlMQU5HVUFHRSBwbHBnc3FsIEFTICQkCisJQkVHSU4KKwkJRVhFQ1VU RSAnU0VMRUNUIHR4aWRfY3VycmVudCgpJzsKKwkJUkVUVVJOIHRydWU7CisJRU5EOyAkJDsKKykp OworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHEoCisJQ1JFQVRFIEZVTkNUSU9OIHBy ZWRpY2F0ZV9jb25zdChpbnRlZ2VyKSBSRVRVUk5TIGJvb2wgSU1NVVRBQkxFCisJTEFOR1VBR0Ug cGxwZ3NxbCBBUyAkJAorCUJFR0lOCisJCVJFVFVSTiBNT0QoJDEsIDIpID0gMDsKKwlFTkQ7ICQk OworKSk7CisKKyMgUnVuIENJQy9SSUMgaW4gZGlmZmVyZW50IG9wdGlvbnMgY29uY3VycmVudGx5 IHdpdGggdXBzZXJ0cworJG5vZGUtPnBnYmVuY2goCisJJy0tbm8tdmFjdXVtIC0tY2xpZW50PTMw IC0tam9icz00IC0tZXhpdC1vbi1hYm9ydCAtLXRyYW5zYWN0aW9ucz0yNTAwJywKKwkwLAorCVtx cnthY3R1YWxseSBwcm9jZXNzZWR9XSwKKwlbcXJ7XiR9XSwKKwknY29uY3VycmVudCBvcGVyYXRp b25zIHdpdGggUkVJTkRFWC9DUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZJywKKwl7CisJCSdjb25j dXJyZW50X29wcycgPT4gcSgKKwkJCVNFTEVDVCBwZ190cnlfYWR2aXNvcnlfbG9jayg0Mik6Omlu dGVnZXIgQVMgZ290bG9jayBcZ3NldAorCQkJXGlmIDpnb3Rsb2NrCisJCQkJU0VMRUNUIG5leHR2 YWwoJ2luX3Jvd19yZWJ1aWxkJykgQVMgbGFzdF92YWx1ZSBcZ3NldAorCQkJCVxzZXQgdmFyaWFu dCByYW5kb20oMCwgNSkKKwkJCQlcc2V0IHBhcmFsbGVscyByYW5kb20oMCwgNCkKKwkJCQlcaWYg Omxhc3RfdmFsdWUgPCAzCisJCQkJCUFMVEVSIFRBQkxFIHRibCBTRVQgKHBhcmFsbGVsX3dvcmtl cnM9OnBhcmFsbGVscyk7CisJCQkJCVxpZiA6dmFyaWFudCA9IDAKKwkJCQkJCUNSRUFURSBJTkRF WCBDT05DVVJSRU5UTFkgaWR4XzIgT04gdGJsKGksIHVwZGF0ZWRfYXQpOworCQkJCQlcZWxpZiA6 dmFyaWFudCA9IDEKKwkJCQkJCUNSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4XzIgT04gdGJs KGksIHVwZGF0ZWRfYXQpIFdIRVJFIHByZWRpY2F0ZV9zdGFibGUoKTsKKwkJCQkJXGVsaWYgOnZh cmlhbnQgPSAyCisJCQkJCQlDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeF8yIE9OIHRibChp LCB1cGRhdGVkX2F0KSBXSEVSRSBNT0QoaSwgMikgPSAwOworCQkJCQlcZWxpZiA6dmFyaWFudCA9 IDMKKwkJCQkJCUNSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4XzIgT04gdGJsKGksIHVwZGF0 ZWRfYXQpIFdIRVJFIHByZWRpY2F0ZV9jb25zdChpKTsKKwkJCQkJXGVsaWYgOnZhcmlhbnQgPSA0 CisJCQkJCQlDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeF8yIE9OIHRibChwcmVkaWNhdGVf Y29uc3QoaSkpOworCQkJCQlcZWxpZiA6dmFyaWFudCA9IDUKKwkJCQkJCUNSRUFURSBJTkRFWCBD T05DVVJSRU5UTFkgaWR4XzIgT04gdGJsKGksIHByZWRpY2F0ZV9jb25zdChpKSwgdXBkYXRlZF9h dCkgV0hFUkUgcHJlZGljYXRlX2NvbnN0KGkpOworCQkJCQlcZW5kaWYKKwkJCQkJXHNsZWVwIDEw IG1zCisJCQkJCVNFTEVDVCBidF9pbmRleF9jaGVjaygnaWR4XzInLCBoZWFwYWxsaW5kZXhlZCA9 PiB0cnVlLCBjaGVja3VuaXF1ZSA9PiB0cnVlKTsKKwkJCQkJUkVJTkRFWCBJTkRFWCBDT05DVVJS RU5UTFkgaWR4XzI7CisJCQkJCVxzbGVlcCAxMCBtcworCQkJCQlTRUxFQ1QgYnRfaW5kZXhfY2hl Y2soJ2lkeF8yJywgaGVhcGFsbGluZGV4ZWQgPT4gdHJ1ZSwgY2hlY2t1bmlxdWUgPT4gdHJ1ZSk7 CisJCQkJCURST1AgSU5ERVggQ09OQ1VSUkVOVExZIGlkeF8yOworCQkJCVxlbmRpZgorCQkJCVNF TEVDVCBwZ19hZHZpc29yeV91bmxvY2soNDIpOworCQkJXGVsc2UKKwkJCQlcc2V0IG51bSByYW5k b20oMTAwMCwgMTAwMDAwKQorCQkJCUJFR0lOOworCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMo Zmxvb3IocmFuZG9tKCkqOm51bSksMCwwLDAsbm93KCkpCisJCQkJCU9OIENPTkZMSUNUKGkpIERP IFVQREFURSBTRVQgdXBkYXRlZF9hdCA9IG5vdygpOworCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxV RVMoZmxvb3IocmFuZG9tKCkqOm51bSksMCwwLDAsbm93KCkpCisJCQkJCU9OIENPTkZMSUNUKGkp IERPIFVQREFURSBTRVQgdXBkYXRlZF9hdCA9IG5vdygpOworCQkJCUlOU0VSVCBJTlRPIHRibCBW QUxVRVMoZmxvb3IocmFuZG9tKCkqOm51bSksMCwwLDAsbm93KCkpCisJCQkJCU9OIENPTkZMSUNU KGkpIERPIFVQREFURSBTRVQgdXBkYXRlZF9hdCA9IG5vdygpOworCQkJCUlOU0VSVCBJTlRPIHRi bCBWQUxVRVMoZmxvb3IocmFuZG9tKCkqOm51bSksMCwwLDAsbm93KCkpCisJCQkJCU9OIENPTkZM SUNUKGkpIERPIFVQREFURSBTRVQgdXBkYXRlZF9hdCA9IG5vdygpOworCQkJCUlOU0VSVCBJTlRP IHRibCBWQUxVRVMoZmxvb3IocmFuZG9tKCkqOm51bSksMCwwLDAsbm93KCkpCisJCQkJCU9OIENP TkZMSUNUKGkpIERPIFVQREFURSBTRVQgdXBkYXRlZF9hdCA9IG5vdygpOworCQkJCVNFTEVDVCBz ZXR2YWwoJ2luX3Jvd19yZWJ1aWxkJywgMSk7CisJCQkJQ09NTUlUOworCQkJXGVuZGlmCisJCSkK Kwl9KTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKFRSVU5DQVRFIFRBQkxFIHRi bDspKTsKKworIyBSdW4gQ0lDL1JJQyBmb3IgdW5pcXVlIGluZGV4IGNvbmN1cnJlbnRseSB3aXRo IHVwc2VydHMKKyRub2RlLT5wZ2JlbmNoKAorCSctLW5vLXZhY3V1bSAtLWNsaWVudD0zMCAtLWpv YnM9NCAtLWV4aXQtb24tYWJvcnQgLS10cmFuc2FjdGlvbnM9MjUwMCcsCisJMCwKKwlbcXJ7YWN0 dWFsbHkgcHJvY2Vzc2VkfV0sCisJW3Fye14kfV0sCisJJ2NvbmN1cnJlbnQgb3BlcmF0aW9ucyB3 aXRoIFJFSU5ERVgvQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWScsCisJeworCQknY29uY3VycmVu dF9vcHNfdW5pcXVlX2lkeCcgPT4gcSgKKwkJCVNFTEVDVCBwZ190cnlfYWR2aXNvcnlfbG9jayg0 Mik6OmludGVnZXIgQVMgZ290bG9jayBcZ3NldAorCQkJXGlmIDpnb3Rsb2NrCisJCQkJU0VMRUNU IG5leHR2YWwoJ2luX3Jvd19yZWJ1aWxkJykgQVMgbGFzdF92YWx1ZSBcZ3NldAorCQkJCVxzZXQg cGFyYWxsZWxzIHJhbmRvbSgwLCA0KQorCQkJCVxpZiA6bGFzdF92YWx1ZSA8IDMKKwkJCQkJQUxU RVIgVEFCTEUgdGJsIFNFVCAocGFyYWxsZWxfd29ya2Vycz06cGFyYWxsZWxzKTsKKwkJCQkJQ1JF QVRFIFVOSVFVRSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4XzIgT04gdGJsKGkpOworCQkJCQlcc2xl ZXAgMTAgbXMKKwkJCQkJU0VMRUNUIGJ0X2luZGV4X2NoZWNrKCdpZHhfMicsIGhlYXBhbGxpbmRl eGVkID0+IHRydWUsIGNoZWNrdW5pcXVlID0+IHRydWUpOworCQkJCQlSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSBpZHhfMjsKKwkJCQkJXHNsZWVwIDEwIG1zCisJCQkJCVNFTEVDVCBidF9pbmRl eF9jaGVjaygnaWR4XzInLCBoZWFwYWxsaW5kZXhlZCA9PiB0cnVlLCBjaGVja3VuaXF1ZSA9PiB0 cnVlKTsKKwkJCQkJRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgaWR4XzI7CisJCQkJXGVuZGlmCisJ CQkJU0VMRUNUIHBnX2Fkdmlzb3J5X3VubG9jayg0Mik7CisJCQlcZWxzZQorCQkJCVxzZXQgbnVt IHJhbmRvbSgxLCBwb3dlcigxMCwgcmFuZG9tKDEsIDUpKSkKKwkJCQlJTlNFUlQgSU5UTyB0Ymwg VkFMVUVTKGZsb29yKHJhbmRvbSgpKjpudW0pLDAsMCwwLG5vdygpKQorCQkJCQlPTiBDT05GTElD VChpKSBETyBVUERBVEUgU0VUIHVwZGF0ZWRfYXQgPSBub3coKTsKKwkJCQlTRUxFQ1Qgc2V0dmFs KCdpbl9yb3dfcmVidWlsZCcsIDEpOworCQkJXGVuZGlmCisJCSkKKwl9KTsKKworJG5vZGUtPnN0 b3A7Citkb25lX3Rlc3RpbmcoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjQz LjAKCg== --00000000000024b9660629cb89c8 Content-Type: application/octet-stream; name="v7-0004-Allow-snapshot-resets-during-parallel-concurrent-.patch" Content-Disposition: attachment; filename="v7-0004-Allow-snapshot-resets-during-parallel-concurrent-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4yh51b93 RnJvbSAxYTJhOGNjOTY5MDExOTc0OTEzYzIyNjA0ZDYwOGEwZDljNGZmYTc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogTW9uLCAyIERlYyAyMDI0IDAxOjMzOjIxICswMTAwClN1YmplY3Q6IFtQQVRDSCB2NyA0LzZd IEFsbG93IHNuYXBzaG90IHJlc2V0cyBkdXJpbmcgcGFyYWxsZWwgY29uY3VycmVudCBpbmRleAog YnVpbGRzCgpQcmV2aW91c2x5LCBub24tdW5pcXVlIGNvbmN1cnJlbnQgaW5kZXggYnVpbGRzIGlu IHBhcmFsbGVsIG1vZGUgcmVxdWlyZWQgYQpjb25zaXN0ZW50IE1WQ0Mgc25hcHNob3QgdGhyb3Vn aG91dCB0aGUgYnVpbGQsIHdoaWNoIGNvdWxkIGhvbGQgYmFjayB0aGUgeG1pbgpob3Jpem9uIGFu ZCBwcmV2ZW50IGRlYWQgdHVwbGUgY2xlYW51cC4gVGhpcyBwYXRjaCBleHRlbmRzIHRoZSBwcmV2 aW91cyB3b3JrCm9uIHNuYXBzaG90IHJlc2V0cyAoaW50cm9kdWNlZCBmb3Igbm9uLXBhcmFsbGVs IGJ1aWxkcykgdG8gYWxzbyBzdXBwb3J0CnBhcmFsbGVsIGJ1aWxkcy4KCktleSBjaGFuZ2VzOgot IEFkZCBpbmZyYXN0cnVjdHVyZSB0byB0cmFjayBzbmFwc2hvdCByZXN0b3JhdGlvbiBpbiBwYXJh bGxlbCB3b3JrZXJzCi0gRXh0ZW5kIHBhcmFsbGVsIHNjYW4gaW5pdGlhbGl6YXRpb24gdG8gc3Vw cG9ydCBwZXJpb2RpYyBzbmFwc2hvdCByZXNldHMKLSBXYWl0IGZvciBwYXJhbGxlbCB3b3JrZXJz IHRvIHJlc3RvcmUgdGhlaXIgaW5pdGlhbCBzbmFwc2hvdHMgYmVmb3JlCiAgcHJvY2VlZGluZyB3 aXRoIHNjYW4KLSBBZGQgcmVncmVzc2lvbiB0ZXN0cyB0byB2ZXJpZnkgYmVoYXZpb3Igd2l0aCB2 YXJpb3VzIGluZGV4IHR5cGVzCgpUaGUgc25hcHNob3QgcmVzZXQgYXBwcm9hY2ggaXMgc2FmZSBm b3Igbm9uLXVuaXF1ZSBpbmRleGVzIHNpbmNlIHRoZXkgZG9uJ3QKbmVlZCBzbmFwc2hvdCBjb25z aXN0ZW5jeSBhY3Jvc3MgdGhlIGVudGlyZSBzY2FuLiBGb3IgdW5pcXVlIGluZGV4ZXMsIHdlCmNv bnRpbnVlIHRvIG1haW50YWluIGEgY29uc2lzdGVudCBzbmFwc2hvdCB0byBwcm9wZXJseSBlbmZv cmNlIHVuaXF1ZW5lc3MKY29uc3RyYWludHMuCgpUaGlzIGhlbHBzIHJlZHVjZSB0aGUgeG1pbiBo b3Jpem9uIGltcGFjdCBvZiBsb25nLXJ1bm5pbmcgY29uY3VycmVudCBpbmRleApidWlsZHMgaW4g cGFyYWxsZWwgbW9kZSwgaW1wcm92aW5nIFZBQ1VVTSdzIGFiaWxpdHkgdG8gY2xlYW4gdXAgZGVh ZCB0dXBsZXMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAgICAgICAgICAg ICAgIHwgNDMgKysrKysrKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X2hhbmRsZXIuYyAgICAgIHwgMTIgKysrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 c29ydC5jICAgICAgICAgICB8IDM4ICsrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv dGFibGUvdGFibGVhbS5jICAgICAgICAgICAgfCAzNyArKysrKysrKysrKystLQogc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0vcGFyYWxsZWwuYyAgICAgICAgIHwgNTAgKysrKysrKysrKysrKysr KystLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAgICAgICAgICAgIHwgIDMg Ky0KIHNyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5jICAgICAgICAgICAgICB8ICA4IC0t LQogc3JjL2luY2x1ZGUvYWNjZXNzL3BhcmFsbGVsLmggICAgICAgICAgICAgICAgIHwgIDMgKy0K IHNyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmggICAgICAgICAgICAgICAgICB8ICAxICsKIHNy Yy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgICAgICB8ICA5ICsrLS0KIC4u Li9leHBlY3RlZC9jaWNfcmVzZXRfc25hcHNob3RzLm91dCAgICAgICAgICB8IDIzICsrKysrKysr LQogLi4uL3NxbC9jaWNfcmVzZXRfc25hcHNob3RzLnNxbCAgICAgICAgICAgICAgIHwgIDcgKyst CiAxMiBmaWxlcyBjaGFuZ2VkLCAxNzggaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbi5jCmluZGV4IGQ2OTg1OWFjNGRmLi4wNzgyYmQ2NGE2YSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9icmluL2JyaW4uYwpAQCAtMTQzLDcgKzE0Myw2IEBAIHR5cGVkZWYgc3RydWN0IEJyaW5M ZWFkZXIKIAkgKi8KIAlCcmluU2hhcmVkICpicmluc2hhcmVkOwogCVNoYXJlZHNvcnQgKnNoYXJl ZHNvcnQ7Ci0JU25hcHNob3QJc25hcHNob3Q7CiAJV2FsVXNhZ2UgICAqd2FsdXNhZ2U7CiAJQnVm ZmVyVXNhZ2UgKmJ1ZmZlcnVzYWdlOwogfSBCcmluTGVhZGVyOwpAQCAtMjMxLDcgKzIzMCw3IEBA IHN0YXRpYyB2b2lkIGJyaW5fZmlsbF9lbXB0eV9yYW5nZXMoQnJpbkJ1aWxkU3RhdGUgKnN0YXRl LAogc3RhdGljIHZvaWQgX2JyaW5fYmVnaW5fcGFyYWxsZWwoQnJpbkJ1aWxkU3RhdGUgKmJ1aWxk c3RhdGUsIFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogCQkJCQkJCQkgYm9vbCBpc2Nv bmN1cnJlbnQsIGludCByZXF1ZXN0KTsKIHN0YXRpYyB2b2lkIF9icmluX2VuZF9wYXJhbGxlbChC cmluTGVhZGVyICpicmlubGVhZGVyLCBCcmluQnVpbGRTdGF0ZSAqc3RhdGUpOwotc3RhdGljIFNp emUgX2JyaW5fcGFyYWxsZWxfZXN0aW1hdGVfc2hhcmVkKFJlbGF0aW9uIGhlYXAsIFNuYXBzaG90 IHNuYXBzaG90KTsKK3N0YXRpYyBTaXplIF9icmluX3BhcmFsbGVsX2VzdGltYXRlX3NoYXJlZChS ZWxhdGlvbiBoZWFwKTsKIHN0YXRpYyBkb3VibGUgX2JyaW5fcGFyYWxsZWxfaGVhcHNjYW4oQnJp bkJ1aWxkU3RhdGUgKnN0YXRlKTsKIHN0YXRpYyBkb3VibGUgX2JyaW5fcGFyYWxsZWxfbWVyZ2Uo QnJpbkJ1aWxkU3RhdGUgKnN0YXRlKTsKIHN0YXRpYyB2b2lkIF9icmluX2xlYWRlcl9wYXJ0aWNp cGF0ZV9hc193b3JrZXIoQnJpbkJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsCkBAIC0yMzU3LDcgKzIz NTYsNiBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwg UmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiB7CiAJUGFyYWxsZWxDb250ZXh0ICpwY3h0 OwogCWludAkJCXNjYW50dXBsZXNvcnRzdGF0ZXM7Ci0JU25hcHNob3QJc25hcHNob3Q7CiAJU2l6 ZQkJZXN0YnJpbnNoYXJlZDsKIAlTaXplCQllc3Rzb3J0OwogCUJyaW5TaGFyZWQgKmJyaW5zaGFy ZWQ7CkBAIC0yMzY3LDYgKzIzNjUsNyBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRT dGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAJQnVmZmVy VXNhZ2UgKmJ1ZmZlcnVzYWdlOwogCWJvb2wJCWxlYWRlcnBhcnRpY2lwYXRlcyA9IHRydWU7CiAJ Ym9vbAkJbmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90ID0gdHJ1ZTsKKwlib29sCQl3YWl0X2Zvcl9z bmFwc2hvdF9hdHRhY2g7CiAJaW50CQkJcXVlcnlsZW47CiAKICNpZmRlZiBESVNBQkxFX0xFQURF Ul9QQVJUSUNJUEFUSU9OCkBAIC0yMzg4LDI1ICsyMzg3LDI1IEBAIF9icmluX2JlZ2luX3BhcmFs bGVsKEJyaW5CdWlsZFN0YXRlICpidWlsZHN0YXRlLCBSZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBp bmRleCwKIAkgKiBQcmVwYXJlIGZvciBzY2FuIG9mIHRoZSBiYXNlIHJlbGF0aW9uLiAgSW4gYSBu b3JtYWwgaW5kZXggYnVpbGQsIHdlIHVzZQogCSAqIFNuYXBzaG90QW55IGJlY2F1c2Ugd2UgbXVz dCByZXRyaWV2ZSBhbGwgdHVwbGVzIGFuZCBkbyBvdXIgb3duIHRpbWUKIAkgKiBxdWFsIGNoZWNr cyAoYmVjYXVzZSB3ZSBoYXZlIHRvIGluZGV4IFJFQ0VOVExZX0RFQUQgdHVwbGVzKS4gIEluIGEK LQkgKiBjb25jdXJyZW50IGJ1aWxkLCB3ZSB0YWtlIGEgcmVndWxhciBNVkNDIHNuYXBzaG90IGFu ZCBpbmRleCB3aGF0ZXZlcidzCi0JICogbGl2ZSBhY2NvcmRpbmcgdG8gdGhhdC4KKwkgKiBjb25j dXJyZW50IGJ1aWxkLCB3ZSB0YWtlIGEgcmVndWxhciBNVkNDIHNuYXBzaG90IGFuZCBwdXNoIGl0 IGFzIGFjdGl2ZS4KKwkgKiBMYXRlciB3ZSBpbmRleCB3aGF0ZXZlcidzIGxpdmUgYWNjb3JkaW5n IHRvIHRoYXQgc25hcHNob3Qgd2hpbGUgdGhhdAorCSAqIHNuYXBzaG90IGlzIHJlc2V0IHBlcmlv ZGljYWxseS4KIAkgKi8KIAlpZiAoIWlzY29uY3VycmVudCkKIAl7CiAJCUFzc2VydChBY3RpdmVT bmFwc2hvdFNldCgpKTsKLQkJc25hcHNob3QgPSBTbmFwc2hvdEFueTsKIAkJbmVlZF9wb3BfYWN0 aXZlX3NuYXBzaG90ID0gZmFsc2U7CiAJfQogCWVsc2UKIAl7Ci0JCXNuYXBzaG90ID0gUmVnaXN0 ZXJTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOworCQlBc3NlcnQoIUFjdGl2ZVNu YXBzaG90U2V0KCkpOwogCQlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hv dCgpKTsKIAl9CiAKIAkvKgogCSAqIEVzdGltYXRlIHNpemUgZm9yIG91ciBvd24gUEFSQUxMRUxf S0VZX0JSSU5fU0hBUkVEIHdvcmtzcGFjZS4KIAkgKi8KLQllc3Ricmluc2hhcmVkID0gX2JyaW5f cGFyYWxsZWxfZXN0aW1hdGVfc2hhcmVkKGhlYXAsIHNuYXBzaG90KTsKKwllc3Ricmluc2hhcmVk ID0gX2JyaW5fcGFyYWxsZWxfZXN0aW1hdGVfc2hhcmVkKGhlYXApOwogCXNobV90b2NfZXN0aW1h dGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwgZXN0YnJpbnNoYXJlZCk7CiAJZXN0c29ydCA9IHR1 cGxlc29ydF9lc3RpbWF0ZV9zaGFyZWQoc2NhbnR1cGxlc29ydHN0YXRlcyk7CiAJc2htX3RvY19l c3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLCBlc3Rzb3J0KTsKQEAgLTI0NDYsOCArMjQ0 NSw2IEBAIF9icmluX2JlZ2luX3BhcmFsbGVsKEJyaW5CdWlsZFN0YXRlICpidWlsZHN0YXRlLCBS ZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwKIAl7CiAJCWlmIChuZWVkX3BvcF9hY3RpdmVf c25hcHNob3QpCiAJCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwotCQlpZiAoSXNNVkNDU25hcHNob3Qo c25hcHNob3QpKQotCQkJVW5yZWdpc3RlclNuYXBzaG90KHNuYXBzaG90KTsKIAkJRGVzdHJveVBh cmFsbGVsQ29udGV4dChwY3h0KTsKIAkJRXhpdFBhcmFsbGVsTW9kZSgpOwogCQlyZXR1cm47CkBA IC0yNDcyLDcgKzI0NjksOCBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAq YnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAKIAl0YWJsZV9wYXJh bGxlbHNjYW5faW5pdGlhbGl6ZShoZWFwLAogCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRnJv bUJyaW5TaGFyZWQoYnJpbnNoYXJlZCksCi0JCQkJCQkJCSAgc25hcHNob3QpOworCQkJCQkJCQkg IGlzY29uY3VycmVudCA/IEludmFsaWRTbmFwc2hvdCA6IFNuYXBzaG90QW55LAorCQkJCQkJCQkg IGlzY29uY3VycmVudCk7CiAKIAkvKgogCSAqIFN0b3JlIHNoYXJlZCB0dXBsZXNvcnQtcHJpdmF0 ZSBzdGF0ZSwgZm9yIHdoaWNoIHdlIHJlc2VydmVkIHNwYWNlLgpAQCAtMjUxOCw3ICsyNTE2LDYg QEAgX2JyaW5fYmVnaW5fcGFyYWxsZWwoQnJpbkJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIFJlbGF0 aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogCQlicmlubGVhZGVyLT5ucGFydGljaXBhbnR0dXBs ZXNvcnRzKys7CiAJYnJpbmxlYWRlci0+YnJpbnNoYXJlZCA9IGJyaW5zaGFyZWQ7CiAJYnJpbmxl YWRlci0+c2hhcmVkc29ydCA9IHNoYXJlZHNvcnQ7Ci0JYnJpbmxlYWRlci0+c25hcHNob3QgPSBz bmFwc2hvdDsKIAlicmlubGVhZGVyLT53YWx1c2FnZSA9IHdhbHVzYWdlOwogCWJyaW5sZWFkZXIt PmJ1ZmZlcnVzYWdlID0gYnVmZmVydXNhZ2U7CiAKQEAgLTI1MzQsNiArMjUzMSwxNiBAQCBfYnJp bl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVh cCwgUmVsYXRpb24gaW5kZXgsCiAJLyogU2F2ZSBsZWFkZXIgc3RhdGUgbm93IHRoYXQgaXQncyBj bGVhciBidWlsZCB3aWxsIGJlIHBhcmFsbGVsICovCiAJYnVpbGRzdGF0ZS0+YnNfbGVhZGVyID0g YnJpbmxlYWRlcjsKIAorCS8qCisJICogSW4gY2FzZSBvZiBjb25jdXJyZW50IGJ1aWxkIHNuYXBz aG90cyBhcmUgZ29pbmcgdG8gYmUgcmVzZXQgcGVyaW9kaWNhbGx5LgorCSAqIEluIGNhc2Ugd2hl biBsZWFkZXIgZ29pbmcgdG8gcmVzZXQgb3duIGFjdGl2ZSBzbmFwc2hvdCBhcyB3ZWxsIC0gd2Ug bmVlZCB0bworCSAqIHdhaXQgdW50aWwgYWxsIHdvcmtlcnMgaW1wb3J0ZWQgaW5pdGlhbCBzbmFw c2hvdC4KKwkgKi8KKwl3YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2ggPSBpc2NvbmN1cnJlbnQgJiYg bGVhZGVycGFydGljaXBhdGVzOworCisJaWYgKHdhaXRfZm9yX3NuYXBzaG90X2F0dGFjaCkKKwkJ V2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvQXR0YWNoKHBjeHQsIHRydWUpOworCiAJLyogSm9pbiBo ZWFwIHNjYW4gb3Vyc2VsdmVzICovCiAJaWYgKGxlYWRlcnBhcnRpY2lwYXRlcykKIAkJX2JyaW5f bGVhZGVyX3BhcnRpY2lwYXRlX2FzX3dvcmtlcihidWlsZHN0YXRlLCBoZWFwLCBpbmRleCk7CkBA IC0yNTQyLDcgKzI1NDksOCBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAq YnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAJICogQ2FsbGVyIG5l ZWRzIHRvIHdhaXQgZm9yIGFsbCBsYXVuY2hlZCB3b3JrZXJzIHdoZW4gd2UgcmV0dXJuLiAgTWFr ZQogCSAqIHN1cmUgdGhhdCB0aGUgZmFpbHVyZS10by1zdGFydCBjYXNlIHdpbGwgbm90IGhhbmcg Zm9yZXZlci4KIAkgKi8KLQlXYWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9BdHRhY2gocGN4dCk7CisJ aWYgKCF3YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2gpCisJCVdhaXRGb3JQYXJhbGxlbFdvcmtlcnNU b0F0dGFjaChwY3h0LCBmYWxzZSk7CiAJaWYgKG5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCkKIAkJ UG9wQWN0aXZlU25hcHNob3QoKTsKIH0KQEAgLTI1NjUsOSArMjU3Myw2IEBAIF9icmluX2VuZF9w YXJhbGxlbChCcmluTGVhZGVyICpicmlubGVhZGVyLCBCcmluQnVpbGRTdGF0ZSAqc3RhdGUpCiAJ Zm9yIChpID0gMDsgaSA8IGJyaW5sZWFkZXItPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkOyBpKysp CiAJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZicmlubGVhZGVyLT5idWZmZXJ1c2FnZVtpXSwg JmJyaW5sZWFkZXItPndhbHVzYWdlW2ldKTsKIAotCS8qIEZyZWUgbGFzdCByZWZlcmVuY2UgdG8g TVZDQyBzbmFwc2hvdCwgaWYgb25lIHdhcyB1c2VkICovCi0JaWYgKElzTVZDQ1NuYXBzaG90KGJy aW5sZWFkZXItPnNuYXBzaG90KSkKLQkJVW5yZWdpc3RlclNuYXBzaG90KGJyaW5sZWFkZXItPnNu YXBzaG90KTsKIAlEZXN0cm95UGFyYWxsZWxDb250ZXh0KGJyaW5sZWFkZXItPnBjeHQpOwogCUV4 aXRQYXJhbGxlbE1vZGUoKTsKIH0KQEAgLTI3NjcsMTQgKzI3NzIsMTQgQEAgX2JyaW5fcGFyYWxs ZWxfbWVyZ2UoQnJpbkJ1aWxkU3RhdGUgKnN0YXRlKQogCiAvKgogICogUmV0dXJucyBzaXplIG9m IHNoYXJlZCBtZW1vcnkgcmVxdWlyZWQgdG8gc3RvcmUgc3RhdGUgZm9yIGEgcGFyYWxsZWwKLSAq IGJyaW4gaW5kZXggYnVpbGQgYmFzZWQgb24gdGhlIHNuYXBzaG90IGl0cyBwYXJhbGxlbCBzY2Fu IHdpbGwgdXNlLgorICogYnJpbiBpbmRleCBidWlsZC4KICAqLwogc3RhdGljIFNpemUKLV9icmlu X3BhcmFsbGVsX2VzdGltYXRlX3NoYXJlZChSZWxhdGlvbiBoZWFwLCBTbmFwc2hvdCBzbmFwc2hv dCkKK19icmluX3BhcmFsbGVsX2VzdGltYXRlX3NoYXJlZChSZWxhdGlvbiBoZWFwKQogewogCS8q IGMuZi4gc2htX3RvY19hbGxvY2F0ZSBhcyB0byB3aHkgQlVGRkVSQUxJR04gaXMgdXNlZCAqLwog CXJldHVybiBhZGRfc2l6ZShCVUZGRVJBTElHTihzaXplb2YoQnJpblNoYXJlZCkpLAotCQkJCQl0 YWJsZV9wYXJhbGxlbHNjYW5fZXN0aW1hdGUoaGVhcCwgc25hcHNob3QpKTsKKwkJCQkJdGFibGVf cGFyYWxsZWxzY2FuX2VzdGltYXRlKGhlYXAsIEludmFsaWRTbmFwc2hvdCkpOwogfQogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKaW5kZXggOTgwYzUxZTMyYjku LjJlNTE2MzYwOWMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1f aGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMK QEAgLTEyMzEsMTQgKzEyMzEsMTMgQEAgaGVhcGFtX2luZGV4X2J1aWxkX3JhbmdlX3NjYW4oUmVs YXRpb24gaGVhcFJlbGF0aW9uLAogCSAqIFNuYXBzaG90QW55IGJlY2F1c2Ugd2UgbXVzdCByZXRy aWV2ZSBhbGwgdHVwbGVzIGFuZCBkbyBvdXIgb3duIHRpbWUKIAkgKiBxdWFsIGNoZWNrcyAoYmVj YXVzZSB3ZSBoYXZlIHRvIGluZGV4IFJFQ0VOVExZX0RFQUQgdHVwbGVzKS4gSW4gYQogCSAqIGNv bmN1cnJlbnQgYnVpbGQsIG9yIGR1cmluZyBib290c3RyYXAsIHdlIHRha2UgYSByZWd1bGFyIE1W Q0Mgc25hcHNob3QKLQkgKiBhbmQgaW5kZXggd2hhdGV2ZXIncyBsaXZlIGFjY29yZGluZyB0byB0 aGF0LgorCSAqIGFuZCBpbmRleCB3aGF0ZXZlcidzIGxpdmUgYWNjb3JkaW5nIHRvIHRoYXQgd2hp bGUgdGhhdCBzbmFwc2hvdCBpcyByZXNldAorCSAqIGV2ZXJ5IHNvIG9mdGVuIChpbiBjYXNlIG9m IG5vbi11bmlxdWUgaW5kZXgpLgogCSAqLwogCU9sZGVzdFhtaW4gPSBJbnZhbGlkVHJhbnNhY3Rp b25JZDsKIAogCS8qCiAJICogRm9yIHVuaXF1ZSBpbmRleCB3ZSBuZWVkIGNvbnNpc3RlbnQgc25h cHNob3QgZm9yIHRoZSB3aG9sZSBzY2FuLgotCSAqIEluIGNhc2Ugb2YgcGFyYWxsZWwgc2NhbiBz b21lIGFkZGl0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUgcmVxdWlyZWQKLQkgKiB0byBwZXJmb3JtIHNj YW4gd2l0aCBTT19SRVNFVF9TTkFQU0hPVCB3aGljaCBpcyBub3QgeWV0IHJlYWR5LgogCSAqLwog CXJlc2V0X3NuYXBzaG90cyA9IGluZGV4SW5mby0+aWlfQ29uY3VycmVudCAmJgogCQkJCQkgICFp bmRleEluZm8tPmlpX1VuaXF1ZSAmJgpAQCAtMTMwMCw4ICsxMjk5LDExIEBAIGhlYXBhbV9pbmRl eF9idWlsZF9yYW5nZV9zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJQXNzZXJ0KCFJc0Jv b3RzdHJhcFByb2Nlc3NpbmdNb2RlKCkpOwogCQlBc3NlcnQoYWxsb3dfc3luYyk7CiAJCXNuYXBz aG90ID0gc2Nhbi0+cnNfc25hcHNob3Q7Ci0JCVB1c2hBY3RpdmVTbmFwc2hvdChzbmFwc2hvdCk7 Ci0JCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCA9IHRydWU7CisJCWlmICghcmVzZXRfc25hcHNo b3RzKQorCQl7CisJCQlQdXNoQWN0aXZlU25hcHNob3Qoc25hcHNob3QpOworCQkJbmVlZF9wb3Bf YWN0aXZlX3NuYXBzaG90ID0gdHJ1ZTsKKwkJfQogCX0KIAogCWhzY2FuID0gKEhlYXBTY2FuRGVz Yykgc2NhbjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKaW5kZXggNWM0NTgxYWZiMWEu LjJhY2JmMTIxNzQ1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNv cnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwpAQCAtMTQxMSw2 ICsxNDExLDggQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwg Ym9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCUJ1ZmZlclVzYWdlICpidWZmZXJ1c2Fn ZTsKIAlib29sCQlsZWFkZXJwYXJ0aWNpcGF0ZXMgPSB0cnVlOwogCWJvb2wJCW5lZWRfcG9wX2Fj dGl2ZV9zbmFwc2hvdCA9IHRydWU7CisJYm9vbAkJcmVzZXRfc25hcHNob3Q7CisJYm9vbAkJd2Fp dF9mb3Jfc25hcHNob3RfYXR0YWNoOwogCWludAkJCXF1ZXJ5bGVuOwogCiAjaWZkZWYgRElTQUJM RV9MRUFERVJfUEFSVElDSVBBVElPTgpAQCAtMTQyOCwxMiArMTQzMCwyMSBAQCBfYnRfYmVnaW5f cGFyYWxsZWwoQlRCdWlsZFN0YXRlICpidWlsZHN0YXRlLCBib29sIGlzY29uY3VycmVudCwgaW50 IHJlcXVlc3QpCiAKIAlzY2FudHVwbGVzb3J0c3RhdGVzID0gbGVhZGVycGFydGljaXBhdGVzID8g cmVxdWVzdCArIDEgOiByZXF1ZXN0OwogCisgICAgLyoKKwkgKiBGb3IgY29uY3VycmVudCBub24t dW5pcXVlIGluZGV4IGJ1aWxkcywgd2UgY2FuIHBlcmlvZGljYWxseSByZXNldCBzbmFwc2hvdHMK KwkgKiB0byBhbGxvdyB0aGUgeG1pbiBob3Jpem9uIHRvIGFkdmFuY2UuIFRoaXMgaXMgc2FmZSBz aW5jZSB0aGVzZSBidWlsZHMgZG9uJ3QKKwkgKiByZXF1aXJlIGEgY29uc2lzdGVudCB2aWV3IGFj cm9zcyB0aGUgZW50aXJlIHNjYW4uIFVuaXF1ZSBpbmRleGVzIHN0aWxsIG5lZWQKKwkgKiBhIHN0 YWJsZSBzbmFwc2hvdCB0byBwcm9wZXJseSBlbmZvcmNlIHVuaXF1ZW5lc3MgY29uc3RyYWludHMu CisgICAgICovCisJcmVzZXRfc25hcHNob3QgPSBpc2NvbmN1cnJlbnQgJiYgIWJ0c3Bvb2wtPmlz dW5pcXVlOworCiAJLyoKIAkgKiBQcmVwYXJlIGZvciBzY2FuIG9mIHRoZSBiYXNlIHJlbGF0aW9u LiAgSW4gYSBub3JtYWwgaW5kZXggYnVpbGQsIHdlIHVzZQogCSAqIFNuYXBzaG90QW55IGJlY2F1 c2Ugd2UgbXVzdCByZXRyaWV2ZSBhbGwgdHVwbGVzIGFuZCBkbyBvdXIgb3duIHRpbWUKIAkgKiBx dWFsIGNoZWNrcyAoYmVjYXVzZSB3ZSBoYXZlIHRvIGluZGV4IFJFQ0VOVExZX0RFQUQgdHVwbGVz KS4gIEluIGEKIAkgKiBjb25jdXJyZW50IGJ1aWxkLCB3ZSB0YWtlIGEgcmVndWxhciBNVkNDIHNu YXBzaG90IGFuZCBpbmRleCB3aGF0ZXZlcidzCi0JICogbGl2ZSBhY2NvcmRpbmcgdG8gdGhhdC4K KwkgKiBsaXZlIGFjY29yZGluZyB0byB0aGF0LCB3aGlsZSB0aGF0IHNuYXBzaG90IG1heSBiZSBy ZXNldCBwZXJpb2RpY2FsbHkgaW4KKwkgKiBjYXNlIG9mIG5vbi11bmlxdWUgaW5kZXguCiAJICov CiAJaWYgKCFpc2NvbmN1cnJlbnQpCiAJewpAQCAtMTQ0MSw2ICsxNDUyLDExIEBAIF9idF9iZWdp bl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wgaXNjb25jdXJyZW50LCBp bnQgcmVxdWVzdCkKIAkJc25hcHNob3QgPSBTbmFwc2hvdEFueTsKIAkJbmVlZF9wb3BfYWN0aXZl X3NuYXBzaG90ID0gZmFsc2U7CiAJfQorCWVsc2UgaWYgKHJlc2V0X3NuYXBzaG90KQorCXsKKwkJ c25hcHNob3QgPSBJbnZhbGlkU25hcHNob3Q7CisJCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRUcmFu c2FjdGlvblNuYXBzaG90KCkpOworCX0KIAllbHNlCiAJewogCQlzbmFwc2hvdCA9IFJlZ2lzdGVy U25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKQEAgLTE1MDEsNyArMTUxNyw3IEBA IF9idF9iZWdpbl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wgaXNjb25j dXJyZW50LCBpbnQgcmVxdWVzdCkKIAl7CiAJCWlmIChuZWVkX3BvcF9hY3RpdmVfc25hcHNob3Qp CiAJCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwotCQlpZiAoSXNNVkNDU25hcHNob3Qoc25hcHNob3Qp KQorCQlpZiAoc25hcHNob3QgIT0gSW52YWxpZFNuYXBzaG90ICYmIElzTVZDQ1NuYXBzaG90KHNu YXBzaG90KSkKIAkJCVVucmVnaXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7CiAJCURlc3Ryb3lQYXJh bGxlbENvbnRleHQocGN4dCk7CiAJCUV4aXRQYXJhbGxlbE1vZGUoKTsKQEAgLTE1MjgsNyArMTU0 NCw4IEBAIF9idF9iZWdpbl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wg aXNjb25jdXJyZW50LCBpbnQgcmVxdWVzdCkKIAlidHNoYXJlZC0+YnJva2VuaG90Y2hhaW4gPSBm YWxzZTsKIAl0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZShidHNwb29sLT5oZWFwLAogCQkJ CQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRnJvbUJUU2hhcmVkKGJ0c2hhcmVkKSwKLQkJCQkJCQkJ ICBzbmFwc2hvdCk7CisJCQkJCQkJCSAgc25hcHNob3QsCisJCQkJCQkJCSAgcmVzZXRfc25hcHNo b3QpOwogCiAJLyoKIAkgKiBTdG9yZSBzaGFyZWQgdHVwbGVzb3J0LXByaXZhdGUgc3RhdGUsIGZv ciB3aGljaCB3ZSByZXNlcnZlZCBzcGFjZS4KQEAgLTE2MDQsNiArMTYyMSwxNiBAQCBfYnRfYmVn aW5fcGFyYWxsZWwoQlRCdWlsZFN0YXRlICpidWlsZHN0YXRlLCBib29sIGlzY29uY3VycmVudCwg aW50IHJlcXVlc3QpCiAJLyogU2F2ZSBsZWFkZXIgc3RhdGUgbm93IHRoYXQgaXQncyBjbGVhciBi dWlsZCB3aWxsIGJlIHBhcmFsbGVsICovCiAJYnVpbGRzdGF0ZS0+YnRsZWFkZXIgPSBidGxlYWRl cjsKIAorCS8qCisJICogSW4gY2FzZSBvZiBjb25jdXJyZW50IGJ1aWxkIHNuYXBzaG90cyBhcmUg Z29pbmcgdG8gYmUgcmVzZXQgcGVyaW9kaWNhbGx5LgorCSAqIEluIGNhc2Ugd2hlbiBsZWFkZXIg Z29pbmcgdG8gcmVzZXQgb3duIGFjdGl2ZSBzbmFwc2hvdCBhcyB3ZWxsIC0gd2UgbmVlZCB0bwor CSAqIHdhaXQgdW50aWwgYWxsIHdvcmtlcnMgaW1wb3J0ZWQgaW5pdGlhbCBzbmFwc2hvdC4KKwkg Ki8KKwl3YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2ggPSByZXNldF9zbmFwc2hvdCAmJiBsZWFkZXJw YXJ0aWNpcGF0ZXM7CisKKwlpZiAod2FpdF9mb3Jfc25hcHNob3RfYXR0YWNoKQorCQlXYWl0Rm9y UGFyYWxsZWxXb3JrZXJzVG9BdHRhY2gocGN4dCwgdHJ1ZSk7CisKIAkvKiBKb2luIGhlYXAgc2Nh biBvdXJzZWx2ZXMgKi8KIAlpZiAobGVhZGVycGFydGljaXBhdGVzKQogCQlfYnRfbGVhZGVyX3Bh cnRpY2lwYXRlX2FzX3dvcmtlcihidWlsZHN0YXRlKTsKQEAgLTE2MTIsNyArMTYzOSw4IEBAIF9i dF9iZWdpbl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wgaXNjb25jdXJy ZW50LCBpbnQgcmVxdWVzdCkKIAkgKiBDYWxsZXIgbmVlZHMgdG8gd2FpdCBmb3IgYWxsIGxhdW5j aGVkIHdvcmtlcnMgd2hlbiB3ZSByZXR1cm4uICBNYWtlCiAJICogc3VyZSB0aGF0IHRoZSBmYWls dXJlLXRvLXN0YXJ0IGNhc2Ugd2lsbCBub3QgaGFuZyBmb3JldmVyLgogCSAqLwotCVdhaXRGb3JQ YXJhbGxlbFdvcmtlcnNUb0F0dGFjaChwY3h0KTsKKwlpZiAoIXdhaXRfZm9yX3NuYXBzaG90X2F0 dGFjaCkKKwkJV2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvQXR0YWNoKHBjeHQsIGZhbHNlKTsKIAlp ZiAobmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90KQogCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwogfQpA QCAtMTYzNiw3ICsxNjY0LDcgQEAgX2J0X2VuZF9wYXJhbGxlbChCVExlYWRlciAqYnRsZWFkZXIp CiAJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZidGxlYWRlci0+YnVmZmVydXNhZ2VbaV0sICZi dGxlYWRlci0+d2FsdXNhZ2VbaV0pOwogCiAJLyogRnJlZSBsYXN0IHJlZmVyZW5jZSB0byBNVkND IHNuYXBzaG90LCBpZiBvbmUgd2FzIHVzZWQgKi8KLQlpZiAoSXNNVkNDU25hcHNob3QoYnRsZWFk ZXItPnNuYXBzaG90KSkKKwlpZiAoYnRsZWFkZXItPnNuYXBzaG90ICE9IEludmFsaWRTbmFwc2hv dCAmJiBJc01WQ0NTbmFwc2hvdChidGxlYWRlci0+c25hcHNob3QpKQogCQlVbnJlZ2lzdGVyU25h cHNob3QoYnRsZWFkZXItPnNuYXBzaG90KTsKIAlEZXN0cm95UGFyYWxsZWxDb250ZXh0KGJ0bGVh ZGVyLT5wY3h0KTsKIAlFeGl0UGFyYWxsZWxNb2RlKCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxl YW0uYwppbmRleCBiZDg3MTViNjc5Ny4uY2FjN2E5ZWE4OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxl L3RhYmxlYW0uYwpAQCAtMTMxLDEwICsxMzEsMTAgQEAgdGFibGVfcGFyYWxsZWxzY2FuX2VzdGlt YXRlKFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QpCiB7CiAJU2l6ZQkJc3ogPSAwOwog Ci0JaWYgKElzTVZDQ1NuYXBzaG90KHNuYXBzaG90KSkKKwlpZiAoc25hcHNob3QgIT0gSW52YWxp ZFNuYXBzaG90ICYmIElzTVZDQ1NuYXBzaG90KHNuYXBzaG90KSkKIAkJc3ogPSBhZGRfc2l6ZShz eiwgRXN0aW1hdGVTbmFwc2hvdFNwYWNlKHNuYXBzaG90KSk7CiAJZWxzZQotCQlBc3NlcnQoc25h cHNob3QgPT0gU25hcHNob3RBbnkpOworCQlBc3NlcnQoc25hcHNob3QgPT0gU25hcHNob3RBbnkg fHwgc25hcHNob3QgPT0gSW52YWxpZFNuYXBzaG90KTsKIAogCXN6ID0gYWRkX3NpemUoc3osIHJl bC0+cmRfdGFibGVhbS0+cGFyYWxsZWxzY2FuX2VzdGltYXRlKHJlbCkpOwogCkBAIC0xNDMsMjEg KzE0MywzNiBAQCB0YWJsZV9wYXJhbGxlbHNjYW5fZXN0aW1hdGUoUmVsYXRpb24gcmVsLCBTbmFw c2hvdCBzbmFwc2hvdCkKIAogdm9pZAogdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUoUmVs YXRpb24gcmVsLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sCi0JCQkJCQkJICBTbmFwc2hv dCBzbmFwc2hvdCkKKwkJCQkJCQkgIFNuYXBzaG90IHNuYXBzaG90LCBib29sIHJlc2V0X3NuYXBz aG90KQogewogCVNpemUJCXNuYXBzaG90X29mZiA9IHJlbC0+cmRfdGFibGVhbS0+cGFyYWxsZWxz Y2FuX2luaXRpYWxpemUocmVsLCBwc2Nhbik7CiAKIAlwc2Nhbi0+cGhzX3NuYXBzaG90X29mZiA9 IHNuYXBzaG90X29mZjsKIAotCWlmIChJc01WQ0NTbmFwc2hvdChzbmFwc2hvdCkpCisJLyoKKwkg KiBJbml0aWFsaXplIHBhcmFsbGVsIHNjYW4gZGVzY3JpcHRpb24uIEZvciBub3JtYWwgc2NhbnMg d2l0aCBhIHJlZ3VsYXIKKwkgKiBNVkNDIHNuYXBzaG90LCBzZXJpYWxpemUgdGhlIHNuYXBzaG90 IGluZm8uIEZvciBzY2FucyB0aGF0IHVzZSBwZXJpb2RpYworCSAqIHNuYXBzaG90IHJlc2V0cywg bWFyayB0aGUgc2NhbiBhY2NvcmRpbmdseS4KKwkgKi8KKwlpZiAocmVzZXRfc25hcHNob3QpCisJ eworCQlBc3NlcnQoc25hcHNob3QgPT0gSW52YWxpZFNuYXBzaG90KTsKKwkJcHNjYW4tPnBoc19z bmFwc2hvdF9hbnkgPSBmYWxzZTsKKwkJcHNjYW4tPnBoc19yZXNldF9zbmFwc2hvdCA9IHRydWU7 CisJCUlOSkVDVElPTl9QT0lOVCgidGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUiKTsKKwl9 CisJZWxzZSBpZiAoSXNNVkNDU25hcHNob3Qoc25hcHNob3QpKQogCXsKIAkJU2VyaWFsaXplU25h cHNob3Qoc25hcHNob3QsIChjaGFyICopIHBzY2FuICsgcHNjYW4tPnBoc19zbmFwc2hvdF9vZmYp OwogCQlwc2Nhbi0+cGhzX3NuYXBzaG90X2FueSA9IGZhbHNlOworCQlwc2Nhbi0+cGhzX3Jlc2V0 X3NuYXBzaG90ID0gZmFsc2U7CiAJfQogCWVsc2UKIAl7CiAJCUFzc2VydChzbmFwc2hvdCA9PSBT bmFwc2hvdEFueSk7CisJCUFzc2VydCghcmVzZXRfc25hcHNob3QpOwogCQlwc2Nhbi0+cGhzX3Nu YXBzaG90X2FueSA9IHRydWU7CisJCXBzY2FuLT5waHNfcmVzZXRfc25hcHNob3QgPSBmYWxzZTsK IAl9CiB9CiAKQEAgLTE3MCw3ICsxODUsMTkgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJl bGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAKIAlBc3NlcnQo UmVsRmlsZUxvY2F0b3JFcXVhbHMocmVsYXRpb24tPnJkX2xvY2F0b3IsIHBzY2FuLT5waHNfbG9j YXRvcikpOwogCi0JaWYgKCFwc2Nhbi0+cGhzX3NuYXBzaG90X2FueSkKKwkvKgorCSAqIEZvciBz Y2FucyB0aGF0CisJICogdXNlIHBlcmlvZGljIHNuYXBzaG90IHJlc2V0cywgbWFyayB0aGUgc2Nh biBhY2NvcmRpbmdseSBhbmQgdXNlIHRoZSBhY3RpdmUKKwkgKiBzbmFwc2hvdCBhcyB0aGUgaW5p dGlhbCBzdGF0ZS4KKwkgKi8KKwlpZiAocHNjYW4tPnBoc19yZXNldF9zbmFwc2hvdCkKKwl7CisJ CUFzc2VydChBY3RpdmVTbmFwc2hvdFNldCgpKTsKKwkJZmxhZ3MgfD0gU09fUkVTRVRfU05BUFNI T1Q7CisJCS8qIFN0YXJ0IHdpdGggY3VycmVudCBhY3RpdmUgc25hcHNob3QuICovCisJCXNuYXBz aG90ID0gR2V0QWN0aXZlU25hcHNob3QoKTsKKwl9CisJZWxzZSBpZiAoIXBzY2FuLT5waHNfc25h cHNob3RfYW55KQogCXsKIAkJLyogU25hcHNob3Qgd2FzIHNlcmlhbGl6ZWQgLS0gcmVzdG9yZSBp dCAqLwogCQlzbmFwc2hvdCA9IFJlc3RvcmVTbmFwc2hvdCgoY2hhciAqKSBwc2NhbiArIHBzY2Fu LT5waHNfc25hcHNob3Rfb2ZmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3BhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9wYXJhbGxlbC5jCmlu ZGV4IDBhMWUwODllYzFkLi5kNDljNmVlNDEwZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vcGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9w YXJhbGxlbC5jCkBAIC03Niw2ICs3Niw3IEBACiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9SRUxNQVBQ RVJfU1RBVEUJCVVJTlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGMDAwRCkKICNkZWZpbmUgUEFSQUxM RUxfS0VZX1VOQ09NTUlUVEVERU5VTVMJCVVJTlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGMDAwRSkK ICNkZWZpbmUgUEFSQUxMRUxfS0VZX0NMSUVOVENPTk5JTkZPCQkJVUlOVDY0Q09OU1QoMHhGRkZG RkZGRkZGRkYwMDBGKQorI2RlZmluZSBQQVJBTExFTF9LRVlfU05BUFNIT1RfUkVTVE9SRUQJCVVJ TlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGMDAxMCkKIAogLyogRml4ZWQtc2l6ZSBwYXJhbGxlbCBz dGF0ZS4gKi8KIHR5cGVkZWYgc3RydWN0IEZpeGVkUGFyYWxsZWxTdGF0ZQpAQCAtMzAxLDYgKzMw MiwxMCBAQCBJbml0aWFsaXplUGFyYWxsZWxEU00oUGFyYWxsZWxDb250ZXh0ICpwY3h0KQogCQkJ CQkJCQkJCXBjeHQtPm53b3JrZXJzKSk7CiAJCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ ZXN0aW1hdG9yLCAxKTsKIAorCQlzaG1fdG9jX2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0 b3IsIG11bF9zaXplKHNpemVvZihib29sKSwKKwkJCQkJCQkgICBwY3h0LT5ud29ya2VycykpOwor CQlzaG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CisKIAkJLyogRXN0 aW1hdGUgaG93IG11Y2ggd2UnbGwgbmVlZCBmb3IgdGhlIGVudHJ5cG9pbnQgaW5mby4gKi8KIAkJ c2htX3RvY19lc3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLCBzdHJsZW4ocGN4dC0+bGli cmFyeV9uYW1lKSArCiAJCQkJCQkJICAgc3RybGVuKHBjeHQtPmZ1bmN0aW9uX25hbWUpICsgMik7 CkBAIC0zNzIsNiArMzc3LDcgQEAgSW5pdGlhbGl6ZVBhcmFsbGVsRFNNKFBhcmFsbGVsQ29udGV4 dCAqcGN4dCkKIAkJY2hhcgkgICAqZW50cnlwb2ludHN0YXRlOwogCQljaGFyCSAgICp1bmNvbW1p dHRlZGVudW1zc3BhY2U7CiAJCWNoYXIJICAgKmNsaWVudGNvbm5pbmZvc3BhY2U7CisJCWJvb2wJ ICAgKnNuYXBzaG90X3NldF9mbGFnX3NwYWNlOwogCQlTaXplCQlsbmFtZWxlbjsKIAogCQkvKiBT ZXJpYWxpemUgc2hhcmVkIGxpYnJhcmllcyB3ZSBoYXZlIGxvYWRlZC4gKi8KQEAgLTQ4Nyw2ICs0 OTMsMTkgQEAgSW5pdGlhbGl6ZVBhcmFsbGVsRFNNKFBhcmFsbGVsQ29udGV4dCAqcGN4dCkKIAkJ c3RyY3B5KGVudHJ5cG9pbnRzdGF0ZSwgcGN4dC0+bGlicmFyeV9uYW1lKTsKIAkJc3RyY3B5KGVu dHJ5cG9pbnRzdGF0ZSArIGxuYW1lbGVuICsgMSwgcGN4dC0+ZnVuY3Rpb25fbmFtZSk7CiAJCXNo bV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX0VOVFJZUE9JTlQsIGVudHJ5cG9p bnRzdGF0ZSk7CisKKwkJLyoKKwkJICogRXN0YWJsaXNoIGR5bmFtaWMgc2hhcmVkIG1lbW9yeSB0 byBwYXNzIGluZm9ybWF0aW9uIGFib3V0IGltcG9ydGluZworCQkgKiBvZiBzbmFwc2hvdC4KKwkJ ICovCisJCXNuYXBzaG90X3NldF9mbGFnX3NwYWNlID0KKwkJCQlzaG1fdG9jX2FsbG9jYXRlKHBj eHQtPnRvYywgbXVsX3NpemUoc2l6ZW9mKGJvb2wpLCBwY3h0LT5ud29ya2VycykpOworCQlmb3Ig KGkgPSAwOyBpIDwgcGN4dC0+bndvcmtlcnM7ICsraSkKKwkJeworCQkJcGN4dC0+d29ya2VyW2ld LnNuYXBzaG90X3Jlc3RvcmVkID0gc25hcHNob3Rfc2V0X2ZsYWdfc3BhY2UgKyBpICogc2l6ZW9m KGJvb2wpOworCQkJKnBjeHQtPndvcmtlcltpXS5zbmFwc2hvdF9yZXN0b3JlZCA9IGZhbHNlOwor CQl9CisJCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1NOQVBTSE9UX1JF U1RPUkVELCBzbmFwc2hvdF9zZXRfZmxhZ19zcGFjZSk7CiAJfQogCiAJLyogVXBkYXRlIG53b3Jr ZXJzX3RvX2xhdW5jaCwgaW4gY2FzZSB3ZSBjaGFuZ2VkIG53b3JrZXJzIGFib3ZlLiAqLwpAQCAt NTQyLDYgKzU2MSwxNyBAQCBSZWluaXRpYWxpemVQYXJhbGxlbERTTShQYXJhbGxlbENvbnRleHQg KnBjeHQpCiAJCQlwY3h0LT53b3JrZXJbaV0uZXJyb3JfbXFoID0gc2htX21xX2F0dGFjaChtcSwg cGN4dC0+c2VnLCBOVUxMKTsKIAkJfQogCX0KKworCS8qIFNldCBzbmFwc2hvdCByZXN0b3JlZCBm bGFnIHRvIGZhbHNlLiAqLworCWlmIChwY3h0LT5ud29ya2VycyA+IDApCisJeworCQlib29sCSAg ICpzbmFwc2hvdF9yZXN0b3JlZF9zcGFjZTsKKwkJaW50CQkJaTsKKwkJc25hcHNob3RfcmVzdG9y ZWRfc3BhY2UgPQorCQkJCXNobV90b2NfbG9va3VwKHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1NO QVBTSE9UX1JFU1RPUkVELCBmYWxzZSk7CisJCWZvciAoaSA9IDA7IGkgPCBwY3h0LT5ud29ya2Vy czsgKytpKQorCQkJc25hcHNob3RfcmVzdG9yZWRfc3BhY2VbaV0gPSBmYWxzZTsKKwl9CiB9CiAK IC8qCkBAIC02NTcsNiArNjg3LDEwIEBAIExhdW5jaFBhcmFsbGVsV29ya2VycyhQYXJhbGxlbENv bnRleHQgKnBjeHQpCiAgKiBXYWl0IGZvciBhbGwgd29ya2VycyB0byBhdHRhY2ggdG8gdGhlaXIg ZXJyb3IgcXVldWVzLCBhbmQgdGhyb3cgYW4gZXJyb3IgaWYKICAqIGFueSB3b3JrZXIgZmFpbHMg dG8gZG8gdGhpcy4KICAqCisgKiB3YWl0X2Zvcl9zbmFwc2hvdDogdHJhY2sgd2hldGhlciBlYWNo IHBhcmFsbGVsIHdvcmtlciBoYXMgc3VjY2Vzc2Z1bGx5IHJlc3RvcmVkCisgKiBpdHMgc25hcHNo b3QuIFRoaXMgaXMgbmVlZGVkIHdoZW4gdXNpbmcgcGVyaW9kaWMgc25hcHNob3QgcmVzZXRzIHRv IGVuc3VyZSBhbGwKKyAqIHdvcmtlcnMgaGF2ZSBhIHZhbGlkIGluaXRpYWwgc25hcHNob3QgYmVm b3JlIHByb2NlZWRpbmcgd2l0aCB0aGUgc2Nhbi4KKyAqCiAgKiBDYWxsZXJzIGNhbiBhc3N1bWUg dGhhdCBpZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgc3VjY2Vzc2Z1bGx5LCB0aGVuIHRoZQogICog bnVtYmVyIG9mIHdvcmtlcnMgZ2l2ZW4gYnkgcGN4dC0+bndvcmtlcnNfbGF1bmNoZWQgaGF2ZSBp bml0aWFsaXplZCBhbmQKICAqIGF0dGFjaGVkIHRvIHRoZWlyIGVycm9yIHF1ZXVlcy4gIFdoZXRo ZXIgb3Igbm90IHRoZXNlIHdvcmtlcnMgYXJlIGd1YXJhbnRlZWQKQEAgLTY4Niw3ICs3MjAsNyBA QCBMYXVuY2hQYXJhbGxlbFdvcmtlcnMoUGFyYWxsZWxDb250ZXh0ICpwY3h0KQogICogY2FsbCB0 aGlzIGZ1bmN0aW9uIGF0IGFsbC4KICAqLwogdm9pZAotV2FpdEZvclBhcmFsbGVsV29ya2Vyc1Rv QXR0YWNoKFBhcmFsbGVsQ29udGV4dCAqcGN4dCkKK1dhaXRGb3JQYXJhbGxlbFdvcmtlcnNUb0F0 dGFjaChQYXJhbGxlbENvbnRleHQgKnBjeHQsIGJvb2wgd2FpdF9mb3Jfc25hcHNob3QpCiB7CiAJ aW50CQkJaTsKIApAQCAtNzMwLDkgKzc2NCwxMiBAQCBXYWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9B dHRhY2goUGFyYWxsZWxDb250ZXh0ICpwY3h0KQogCQkJCW1xID0gc2htX21xX2dldF9xdWV1ZShw Y3h0LT53b3JrZXJbaV0uZXJyb3JfbXFoKTsKIAkJCQlpZiAoc2htX21xX2dldF9zZW5kZXIobXEp ICE9IE5VTEwpCiAJCQkJewotCQkJCQkvKiBZZXMsIHNvIGl0IGlzIGtub3duIHRvIGJlIGF0dGFj aGVkLiAqLwotCQkJCQlwY3h0LT5rbm93bl9hdHRhY2hlZF93b3JrZXJzW2ldID0gdHJ1ZTsKLQkJ CQkJKytwY3h0LT5ua25vd25fYXR0YWNoZWRfd29ya2VyczsKKwkJCQkJaWYgKCF3YWl0X2Zvcl9z bmFwc2hvdCB8fCAqKHBjeHQtPndvcmtlcltpXS5zbmFwc2hvdF9yZXN0b3JlZCkpCisJCQkJCXsK KwkJCQkJCS8qIFllcywgc28gaXQgaXMga25vd24gdG8gYmUgYXR0YWNoZWQuICovCisJCQkJCQlw Y3h0LT5rbm93bl9hdHRhY2hlZF93b3JrZXJzW2ldID0gdHJ1ZTsKKwkJCQkJCSsrcGN4dC0+bmtu b3duX2F0dGFjaGVkX3dvcmtlcnM7CisJCQkJCX0KIAkJCQl9CiAJCQl9CiAJCQllbHNlIGlmIChz dGF0dXMgPT0gQkdXSF9TVE9QUEVEKQpAQCAtMTI5MSw2ICsxMzI4LDcgQEAgUGFyYWxsZWxXb3Jr ZXJNYWluKERhdHVtIG1haW5fYXJnKQogCXNobV90b2MgICAgKnRvYzsKIAlGaXhlZFBhcmFsbGVs U3RhdGUgKmZwczsKIAljaGFyCSAgICplcnJvcl9xdWV1ZV9zcGFjZTsKKwlib29sCSAgICpzbmFw c2hvdF9yZXN0b3JlZF9zcGFjZTsKIAlzaG1fbXEJICAgKm1xOwogCXNobV9tcV9oYW5kbGUgKm1x aDsKIAljaGFyCSAgICpsaWJyYXJ5c3BhY2U7CkBAIC0xNDg5LDYgKzE1MjcsMTAgQEAgUGFyYWxs ZWxXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKQogCQkJCQkJCSAgIGZwcy0+cGFyYWxsZWxfbGVh ZGVyX3BncHJvYyk7CiAJUHVzaEFjdGl2ZVNuYXBzaG90KGFzbmFwc2hvdCk7CiAKKwkvKiBTbmFw c2hvdCBpcyByZXN0b3JlZCwgc2V0IGZsYWcgdG8gbWFrZSBsZWFkZXIga25vdyBhYm91dCBpdC4g Ki8KKwlzbmFwc2hvdF9yZXN0b3JlZF9zcGFjZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxM RUxfS0VZX1NOQVBTSE9UX1JFU1RPUkVELCBmYWxzZSk7CisJc25hcHNob3RfcmVzdG9yZWRfc3Bh Y2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdID0gdHJ1ZTsKKwogCS8qCiAJICogV2UndmUgY2hhbmdl ZCB3aGljaCB0dXBsZXMgd2UgY2FuIHNlZSwgYW5kIG11c3QgdGhlcmVmb3JlIGludmFsaWRhdGUK IAkgKiBzeXN0ZW0gY2FjaGVzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVNlcXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKaW5kZXggN2Ni MTJhMTFjMmQuLjI5MDdiMzY2NzkxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlU2Vxc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKQEAg LTI2Miw3ICsyNjIsOCBAQCBFeGVjU2VxU2NhbkluaXRpYWxpemVEU00oU2VxU2NhblN0YXRlICpu b2RlLAogCXBzY2FuID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIG5vZGUtPnBzY2FuX2xl bik7CiAJdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUobm9kZS0+c3Muc3NfY3VycmVudFJl bGF0aW9uLAogCQkJCQkJCQkgIHBzY2FuLAotCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3Qp OworCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCisJCQkJCQkJCSAgZmFsc2UpOwogCXNo bV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBw c2Nhbik7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJdGFibGVfYmVnaW5zY2Fu X3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4pOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvdGltZS9zbmFwbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy90 aW1lL3NuYXBtZ3IuYwppbmRleCAyMTg5YmYwZDlhZS4uYjNjYzdhMmMxNTAgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L3RpbWUvc25hcG1nci5jCkBAIC0yODcsMTQgKzI4Nyw2IEBAIEdldFRyYW5zYWN0aW9uU25hcHNo b3Qodm9pZCkKIFNuYXBzaG90CiBHZXRMYXRlc3RTbmFwc2hvdCh2b2lkKQogewotCS8qCi0JICog V2UgbWlnaHQgYmUgYWJsZSB0byByZWxheCB0aGlzLCBidXQgbm90aGluZyB0aGF0IGNvdWxkIG90 aGVyd2lzZSB3b3JrCi0JICogbmVlZHMgaXQuCi0JICovCi0JaWYgKElzSW5QYXJhbGxlbE1vZGUo KSkKLQkJZWxvZyhFUlJPUiwKLQkJCSAiY2Fubm90IHVwZGF0ZSBTZWNvbmRhcnlTbmFwc2hvdCBk dXJpbmcgYSBwYXJhbGxlbCBvcGVyYXRpb24iKTsKLQogCS8qCiAJICogU28gZmFyIHRoZXJlIGFy ZSBubyBjYXNlcyByZXF1aXJpbmcgc3VwcG9ydCBmb3IgR2V0TGF0ZXN0U25hcHNob3QoKQogCSAq IGR1cmluZyBsb2dpY2FsIGRlY29kaW5nLCBidXQgaXQgd291bGRuJ3QgYmUgaGFyZCB0byBhZGQg aWYgcmVxdWlyZWQuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcGFyYWxsZWwuaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9wYXJhbGxlbC5oCmluZGV4IDY5ZmZlNTQ5OGY5Li45NjRhN2U5 NDViZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3BhcmFsbGVsLmgKKysrIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3BhcmFsbGVsLmgKQEAgLTI2LDYgKzI2LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgUGFyYWxsZWxXb3JrZXJJbmZvCiB7CiAJQmFja2dyb3VuZFdvcmtlckhhbmRsZSAqYmd3aGFu ZGxlOwogCXNobV9tcV9oYW5kbGUgKmVycm9yX21xaDsKKwlib29sCQkgICpzbmFwc2hvdF9yZXN0 b3JlZDsKIH0gUGFyYWxsZWxXb3JrZXJJbmZvOwogCiB0eXBlZGVmIHN0cnVjdCBQYXJhbGxlbENv bnRleHQKQEAgLTY1LDcgKzY2LDcgQEAgZXh0ZXJuIHZvaWQgSW5pdGlhbGl6ZVBhcmFsbGVsRFNN KFBhcmFsbGVsQ29udGV4dCAqcGN4dCk7CiBleHRlcm4gdm9pZCBSZWluaXRpYWxpemVQYXJhbGxl bERTTShQYXJhbGxlbENvbnRleHQgKnBjeHQpOwogZXh0ZXJuIHZvaWQgUmVpbml0aWFsaXplUGFy YWxsZWxXb3JrZXJzKFBhcmFsbGVsQ29udGV4dCAqcGN4dCwgaW50IG53b3JrZXJzX3RvX2xhdW5j aCk7CiBleHRlcm4gdm9pZCBMYXVuY2hQYXJhbGxlbFdvcmtlcnMoUGFyYWxsZWxDb250ZXh0ICpw Y3h0KTsKLWV4dGVybiB2b2lkIFdhaXRGb3JQYXJhbGxlbFdvcmtlcnNUb0F0dGFjaChQYXJhbGxl bENvbnRleHQgKnBjeHQpOworZXh0ZXJuIHZvaWQgV2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvQXR0 YWNoKFBhcmFsbGVsQ29udGV4dCAqcGN4dCwgYm9vbCB3YWl0X2Zvcl9zbmFwc2hvdCk7CiBleHRl cm4gdm9pZCBXYWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9GaW5pc2goUGFyYWxsZWxDb250ZXh0ICpw Y3h0KTsKIGV4dGVybiB2b2lkIERlc3Ryb3lQYXJhbGxlbENvbnRleHQoUGFyYWxsZWxDb250ZXh0 ICpwY3h0KTsKIGV4dGVybiBib29sIFBhcmFsbGVsQ29udGV4dEFjdGl2ZSh2b2lkKTsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv cmVsc2Nhbi5oCmluZGV4IGUxODg0YWNmNDkzLi5hOTYwMzA4NGFlYiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nh bi5oCkBAIC04OCw2ICs4OCw3IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFsbGVsVGFibGVTY2FuRGVz Y0RhdGEKIAlSZWxGaWxlTG9jYXRvciBwaHNfbG9jYXRvcjsgLyogcGh5c2ljYWwgcmVsYXRpb24g dG8gc2NhbiAqLwogCWJvb2wJCXBoc19zeW5jc2NhbjsJLyogcmVwb3J0IGxvY2F0aW9uIHRvIHN5 bmNzY2FuIGxvZ2ljPyAqLwogCWJvb2wJCXBoc19zbmFwc2hvdF9hbnk7CS8qIFNuYXBzaG90QW55 LCBub3QgcGhzX3NuYXBzaG90X2RhdGE/ICovCisJYm9vbAkJcGhzX3Jlc2V0X3NuYXBzaG90OyAv KiB1c2UgU09fUkVTRVRfU05BUFNIT1Q/ICovCiAJU2l6ZQkJcGhzX3NuYXBzaG90X29mZjsJLyog ZGF0YSBmb3Igc25hcHNob3QgKi8KIH0gUGFyYWxsZWxUYWJsZVNjYW5EZXNjRGF0YTsKIHR5cGVk ZWYgc3RydWN0IFBhcmFsbGVsVGFibGVTY2FuRGVzY0RhdGEgKlBhcmFsbGVsVGFibGVTY2FuRGVz YzsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvdGFibGVhbS5oCmluZGV4IGY0YzdkMmE5MmJmLi45ZWU1ZWExNWZkNCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nl c3MvdGFibGVhbS5oCkBAIC0xMTg0LDcgKzExODQsOCBAQCBleHRlcm4gU2l6ZSB0YWJsZV9wYXJh bGxlbHNjYW5fZXN0aW1hdGUoUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCk7CiAgKi8K IGV4dGVybiB2b2lkIHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplKFJlbGF0aW9uIHJlbCwK IAkJCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKLQkJCQkJCQkJCQkgIFNu YXBzaG90IHNuYXBzaG90KTsKKwkJCQkJCQkJCQkgIFNuYXBzaG90IHNuYXBzaG90LAorCQkJCQkJ CQkJCSAgYm9vbCByZXNldF9zbmFwc2hvdCk7CiAKIC8qCiAgKiBCZWdpbiBhIHBhcmFsbGVsIHNj YW4uIGBwc2NhbmAgbmVlZHMgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkIHdpdGgKQEAgLTE4MDIs OSArMTgwMyw5IEBAIHRhYmxlX3NjYW5fYW5hbHl6ZV9uZXh0X3R1cGxlKFRhYmxlU2NhbkRlc2Mg c2NhbiwgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAogICogVGhpcyBvbmx5IHJlYWxseSBtYWtl cyBzZW5zZSBmb3IgaGVhcCBBTSwgaXQgbWlnaHQgbmVlZCB0byBiZSBnZW5lcmFsaXplZAogICog Zm9yIG90aGVyIEFNcyBsYXRlci4KICAqCi0gKiBJbiBjYXNlIG9mIG5vbi11bmlxdWUgaW5kZXgg YW5kIG5vbi1wYXJhbGxlbCBjb25jdXJyZW50IGJ1aWxkCi0gKiBTT19SRVNFVF9TTkFQU0hPVCBp cyBhcHBsaWVkIGZvciB0aGUgc2Nhbi4gVGhhdCBsZWFkcyBmb3IgY2hhbmdpbmcgc25hcHNob3Rz Ci0gKiBvbiB0aGUgZmx5IHRvIGFsbG93IHhtaW4gaG9yaXpvbiBwcm9wYWdhdGUuCisgKiBJbiBj YXNlIG9mIG5vbi11bmlxdWUgY29uY3VycmVudCAgaW5kZXggYnVpbGQgU09fUkVTRVRfU05BUFNI T1QgaXMgYXBwbGllZAorICogZm9yIHRoZSBzY2FuLiBUaGF0IGxlYWRzIGZvciBjaGFuZ2luZyBz bmFwc2hvdHMgb24gdGhlIGZseSB0byBhbGxvdyB4bWluCisgKiBob3Jpem9uIHByb3BhZ2F0ZS4K ICAqLwogc3RhdGljIGlubGluZSBkb3VibGUKIHRhYmxlX2luZGV4X2J1aWxkX3NjYW4oUmVsYXRp b24gdGFibGVfcmVsLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9p bnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0CmluZGV4IDVk YjU0NTMwZjE3Li41OTVhNDAwMGNlMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmpl Y3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0CisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9jaWNfcmVzZXRfc25hcHNob3Rz Lm91dApAQCAtMTcsNiArMTcsMTIgQEAgU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCd0 YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVzZXRfc25hcHNob3RzJywgJ25vdGljZScKICAKICgxIHJv dykKIAorU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCd0YWJsZV9wYXJhbGxlbHNjYW5f aW5pdGlhbGl6ZScsICdub3RpY2UnKTsKKyBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwogQ1JFQVRFIFNDSEVNQSBjaWNfcmVz ZXRfc25hcDsKIENSRUFURSBUQUJMRSBjaWNfcmVzZXRfc25hcC50YmwoaSBpbnQgcHJpbWFyeSBr ZXksIGogaW50KTsKIElOU0VSVCBJTlRPIGNpY19yZXNldF9zbmFwLnRibCBTRUxFQ1QgaSwgaSAq IEkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAwKSBzKGkpOwpAQCAtNzIsMjQgKzc4LDM1IEBA IE5PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0 X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCiBEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVz ZXRfc25hcC5pZHg7CiAtLSBUaGUgc2FtZSBpbiBwYXJhbGxlbCBtb2RlCiBBTFRFUiBUQUJMRSBj aWNfcmVzZXRfc25hcC50YmwgU0VUIChwYXJhbGxlbF93b3JrZXJzPTIpOworLS0gRGV0YWNoIHRv IGtlZXAgdGVzdCBzdGFibGUsIHNpbmNlIHBhcmFsbGVsIHdvcmtlciBtYXkgY29tcGxldGUgc2Nh biBiZWZvcmUgbGVhZGVyCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2hlYXBfcmVz ZXRfc2Nhbl9zbmFwc2hvdF9lZmZlY3RpdmUnKTsKKyBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwogQ1JFQVRFIFVOSVFVRSBJ TkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKIFJFSU5ERVgg SU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIERST1AgSU5ERVggQ09OQ1VS UkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIENSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4 IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9y IGluamVjdGlvbiBwb2ludCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZQogUkVJTkRFWCBJ TkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworTk9USUNFOiAgbm90aWNlIHRy aWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXpl CiBEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CiBDUkVBVEUgSU5E RVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoTU9EKGksIDIpLCBqKSBX SEVSRSBNT0QoaSwgMikgPSAwOworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0 aW9uIHBvaW50IHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplCiBSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVk IGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUKIERST1Ag SU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIENSRUFURSBJTkRFWCBDT05D VVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpLCBqKSBXSEVSRSBjaWNfcmVzZXRf c25hcC5wcmVkaWNhdGVfc3RhYmxlKGkpOwogTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3Ig aW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMKLU5P VElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0X3Nj YW5fc25hcHNob3RfZWZmZWN0aXZlCiBSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVz ZXRfc25hcC5pZHg7CiBOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9p bnQgdGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBzaG90cwotTk9USUNFOiAgbm90aWNl IHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IGhlYXBfcmVzZXRfc2Nhbl9zbmFwc2hvdF9l ZmZlY3RpdmUKIERST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIENS RUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpLCBqKSBX SEVSRSBjaWNfcmVzZXRfc25hcC5wcmVkaWNhdGVfc3RhYmxlX25vX3BhcmFtKCk7CitOT1RJQ0U6 ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVfcGFyYWxsZWxzY2Fu X2luaXRpYWxpemUKIFJFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlk eDsKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9w YXJhbGxlbHNjYW5faW5pdGlhbGl6ZQogRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0 X3NuYXAuaWR4OwogQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2ljX3Jlc2V0X3Nu YXAudGJsKGkgREVTQyBOVUxMUyBMQVNUKTsKIE5PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9y IGluamVjdGlvbiBwb2ludCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZQpAQCAtOTcsNyAr MTE0LDkgQEAgUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4Owog Tk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX3BhcmFs bGVsc2Nhbl9pbml0aWFsaXplCiBEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25h cC5pZHg7CiBDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50 YmwgVVNJTkcgQlJJTihpKTsKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlv biBwb2ludCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZQogUkVJTkRFWCBJTkRFWCBDT05D VVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBm b3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplCiBEUk9QIElO REVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CiBEUk9QIFNDSEVNQSBjaWNfcmVz ZXRfc25hcCBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAzIG90aGVyIG9iamVj dHMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcWwvY2lj X3Jlc2V0X3NuYXBzaG90cy5zcWwgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMv c3FsL2NpY19yZXNldF9zbmFwc2hvdHMuc3FsCmluZGV4IDUwNzI1MzViMzU1Li4yOTQxYWE3YWUz OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NxbC9jaWNf cmVzZXRfc25hcHNob3RzLnNxbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2lu dHMvc3FsL2NpY19yZXNldF9zbmFwc2hvdHMuc3FsCkBAIC0zLDcgKzMsNyBAQCBDUkVBVEUgRVhU RU5TSU9OIGluamVjdGlvbl9wb2ludHM7CiBTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9j YWwoKTsKIFNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnaGVhcF9yZXNldF9zY2FuX3Nu YXBzaG90X2VmZmVjdGl2ZScsICdub3RpY2UnKTsKIFNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0 dGFjaCgndGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBzaG90cycsICdub3RpY2UnKTsK LQorU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCd0YWJsZV9wYXJhbGxlbHNjYW5faW5p dGlhbGl6ZScsICdub3RpY2UnKTsKIAogQ1JFQVRFIFNDSEVNQSBjaWNfcmVzZXRfc25hcDsKIENS RUFURSBUQUJMRSBjaWNfcmVzZXRfc25hcC50YmwoaSBpbnQgcHJpbWFyeSBrZXksIGogaW50KTsK QEAgLTUzLDYgKzUzLDkgQEAgRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAu aWR4OwogLS0gVGhlIHNhbWUgaW4gcGFyYWxsZWwgbW9kZQogQUxURVIgVEFCTEUgY2ljX3Jlc2V0 X3NuYXAudGJsIFNFVCAocGFyYWxsZWxfd29ya2Vycz0yKTsKIAorLS0gRGV0YWNoIHRvIGtlZXAg dGVzdCBzdGFibGUsIHNpbmNlIHBhcmFsbGVsIHdvcmtlciBtYXkgY29tcGxldGUgc2NhbiBiZWZv cmUgbGVhZGVyCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2hlYXBfcmVzZXRfc2Nh bl9zbmFwc2hvdF9lZmZlY3RpdmUnKTsKKwogQ1JFQVRFIFVOSVFVRSBJTkRFWCBDT05DVVJSRU5U TFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKIFJFSU5ERVggSU5ERVggQ09OQ1VSUkVO VExZIGNpY19yZXNldF9zbmFwLmlkeDsKIERST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNl dF9zbmFwLmlkeDsKQEAgLTgzLDQgKzg2LDQgQEAgRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2lj X3Jlc2V0X3NuYXAuaWR4OwogCiBEUk9QIFNDSEVNQSBjaWNfcmVzZXRfc25hcCBDQVNDQURFOwog Ci1EUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworRFJPUCBFWFRFTlNJT04gaW5qZWN0 aW9uX3BvaW50czsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjQzLjAKCg== --00000000000024b9660629cb89c8 Content-Type: application/octet-stream; name="v7-0005-Allow-snapshot-resets-in-concurrent-unique-index-.patch" Content-Disposition: attachment; filename="v7-0005-Allow-snapshot-resets-in-concurrent-unique-index-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4yh51ba4 RnJvbSBmNDhlNTlhNGIzM2E0YjA1ZTJmMDhkZWRhZGZjZTg2MjhhOGFlMDk0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCA3IERlYyAyMDI0IDIzOjI3OjM0ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2NyA1LzZd IEFsbG93IHNuYXBzaG90IHJlc2V0cyBpbiBjb25jdXJyZW50IHVuaXF1ZSBpbmRleAogYnVpbGRz CgpQcmV2aW91c2x5LCBjb25jdXJyZW50IHVuaXF1ZSBpbmRleCBidWlsZHMgdXNlZCBhIGZpeGVk IHNuYXBzaG90IGZvciB0aGUgZW50aXJlCnNjYW4gdG8gZW5zdXJlIHByb3BlciB1bmlxdWVuZXNz IGNoZWNrcy4gVGhpcyBjb3VsZCBkZWxheSB2YWN1dW0ncyBhYmlsaXR5IHRvCmNsZWFuIHVwIGRl YWQgdHVwbGVzLgoKTm93IHJlc2V0IHNuYXBzaG90cyBwZXJpb2RpY2FsbHkgZHVyaW5nIGNvbmN1 cnJlbnQgdW5pcXVlIGluZGV4IGJ1aWxkcywgd2hpbGUKc3RpbGwgbWFpbnRhaW5pbmcgdW5pcXVl bmVzcyBieToKCjEuIElnbm9yaW5nIGRlYWQgdHVwbGVzIGR1cmluZyB1bmlxdWVuZXNzIGNoZWNr cyBpbiB0dXBsZXNvcnQKMi4gQWRkaW5nIGEgdW5pcXVlbmVzcyBjaGVjayBpbiBfYnRfbG9hZCB0 aGF0IGRldGVjdHMgbXVsdGlwbGUgYWxpdmUgdHVwbGVzIHdpdGggdGhlIHNhbWUga2V5IHZhbHVl cwoKVGhpcyBpbXByb3ZlcyB2YWN1dW0gZWZmZWN0aXZlbmVzcyBkdXJpbmcgbG9uZy1ydW5uaW5n IGluZGV4IGJ1aWxkcyB3aXRob3V0CmNvbXByb21pc2luZyBpbmRleCB1bmlxdWVuZXNzIGVuZm9y Y2VtZW50LgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgICAg ICB8ICAgNiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRkZWR1cC5jICAgICAgICAg IHwgICA4ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYyAgICAgICAgICAg fCAxNzMgKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNw bGl0bG9jLmMgICAgICAgfCAgMTIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dXRp bHMuYyAgICAgICAgICB8ICAyOSArKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyAgICAg ICAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnR2 YXJpYW50cy5jICAgIHwgIDY3ICsrKysrLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9uYnRyZWUuaCAg ICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCAg ICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMvaW5jbHVkZS91dGlscy90dXBsZXNvcnQuaCAg ICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMu b3V0ICAgICAgICAgIHwgICA2ICsKIDExIGZpbGVzIGNoYW5nZWQsIDI0MiBpbnNlcnRpb25zKCsp LCA3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIu YwppbmRleCAyZTUxNjM2MDljMS4uOTIxYjgwNjY0MmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtMTIzMiwxNSArMTIzMiwxNSBAQCBoZWFwYW1faW5kZXhf YnVpbGRfcmFuZ2Vfc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJICogcXVhbCBjaGVja3Mg KGJlY2F1c2Ugd2UgaGF2ZSB0byBpbmRleCBSRUNFTlRMWV9ERUFEIHR1cGxlcykuIEluIGEKIAkg KiBjb25jdXJyZW50IGJ1aWxkLCBvciBkdXJpbmcgYm9vdHN0cmFwLCB3ZSB0YWtlIGEgcmVndWxh ciBNVkNDIHNuYXBzaG90CiAJICogYW5kIGluZGV4IHdoYXRldmVyJ3MgbGl2ZSBhY2NvcmRpbmcg dG8gdGhhdCB3aGlsZSB0aGF0IHNuYXBzaG90IGlzIHJlc2V0Ci0JICogZXZlcnkgc28gb2Z0ZW4g KGluIGNhc2Ugb2Ygbm9uLXVuaXF1ZSBpbmRleCkuCisJICogZXZlcnkgc28gb2Z0ZW4uCiAJICov CiAJT2xkZXN0WG1pbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCiAJLyoKLQkgKiBGb3IgdW5p cXVlIGluZGV4IHdlIG5lZWQgY29uc2lzdGVudCBzbmFwc2hvdCBmb3IgdGhlIHdob2xlIHNjYW4u CisJICogRm9yIGNvbmN1cnJlbnQgYnVpbGRzIG9mIG5vbi1zeXN0ZW0gaW5kZXhlcywgd2UgbWF5 IHdhbnQgdG8gcGVyaW9kaWNhbGx5CisJICogcmVzZXQgc25hcHNob3RzIHRvIGFsbG93IHZhY3V1 bSB0byBjbGVhbiB1cCB0dXBsZXMuCiAJICovCiAJcmVzZXRfc25hcHNob3RzID0gaW5kZXhJbmZv LT5paV9Db25jdXJyZW50ICYmCi0JCQkJCSAgIWluZGV4SW5mby0+aWlfVW5pcXVlICYmCiAJCQkJ CSAgIWlzX3N5c3RlbV9jYXRhbG9nOyAvKiBqdXN0IGZvciB0aGUgY2FzZSAqLwogCiAJLyogb2th eSB0byBpZ25vcmUgbGF6eSBWQUNVVU1zIGhlcmUgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0ZGVkdXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 ZGVkdXAuYwppbmRleCA0NTZkODZiNTFjOS4uMzFiNTkyNjVhMjkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0ZGVkdXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv bmJ0cmVlL25idGRlZHVwLmMKQEAgLTE0OCw3ICsxNDgsNyBAQCBfYnRfZGVkdXBfcGFzcyhSZWxh dGlvbiByZWwsIEJ1ZmZlciBidWYsIEluZGV4VHVwbGUgbmV3aXRlbSwgU2l6ZSBuZXdpdGVtc3os CiAJCQlfYnRfZGVkdXBfc3RhcnRfcGVuZGluZyhzdGF0ZSwgaXR1cCwgb2ZmbnVtKTsKIAkJfQog CQllbHNlIGlmIChzdGF0ZS0+ZGVkdXBsaWNhdGUgJiYKLQkJCQkgX2J0X2tlZXBfbmF0dHNfZmFz dChyZWwsIHN0YXRlLT5iYXNlLCBpdHVwKSA+IG5rZXlhdHRzICYmCisJCQkJIF9idF9rZWVwX25h dHRzX2Zhc3QocmVsLCBzdGF0ZS0+YmFzZSwgaXR1cCwgTlVMTCkgPiBua2V5YXR0cyAmJgogCQkJ CSBfYnRfZGVkdXBfc2F2ZV9odGlkKHN0YXRlLCBpdHVwKSkKIAkJewogCQkJLyoKQEAgLTM3NCw3 ICszNzQsNyBAQCBfYnRfYm90dG9tdXBkZWxfcGFzcyhSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYs IFJlbGF0aW9uIGhlYXBSZWwsCiAJCQkvKiBpdHVwIHN0YXJ0cyBmaXJzdCBwZW5kaW5nIGludGVy dmFsICovCiAJCQlfYnRfZGVkdXBfc3RhcnRfcGVuZGluZyhzdGF0ZSwgaXR1cCwgb2ZmbnVtKTsK IAkJfQotCQllbHNlIGlmIChfYnRfa2VlcF9uYXR0c19mYXN0KHJlbCwgc3RhdGUtPmJhc2UsIGl0 dXApID4gbmtleWF0dHMgJiYKKwkJZWxzZSBpZiAoX2J0X2tlZXBfbmF0dHNfZmFzdChyZWwsIHN0 YXRlLT5iYXNlLCBpdHVwLCBOVUxMKSA+IG5rZXlhdHRzICYmCiAJCQkJIF9idF9kZWR1cF9zYXZl X2h0aWQoc3RhdGUsIGl0dXApKQogCQl7CiAJCQkvKiBUdXBsZSBpcyBlcXVhbDsganVzdCBhZGRl ZCBpdHMgVElEcyB0byBwZW5kaW5nIGludGVydmFsICovCkBAIC03ODksMTIgKzc4OSwxMiBAQCBf YnRfZG9fc2luZ2xldmFsKFJlbGF0aW9uIHJlbCwgUGFnZSBwYWdlLCBCVERlZHVwU3RhdGUgc3Rh dGUsCiAJaXRlbWlkID0gUGFnZUdldEl0ZW1JZChwYWdlLCBtaW5vZmYpOwogCWl0dXAgPSAoSW5k ZXhUdXBsZSkgUGFnZUdldEl0ZW0ocGFnZSwgaXRlbWlkKTsKIAotCWlmIChfYnRfa2VlcF9uYXR0 c19mYXN0KHJlbCwgbmV3aXRlbSwgaXR1cCkgPiBua2V5YXR0cykKKwlpZiAoX2J0X2tlZXBfbmF0 dHNfZmFzdChyZWwsIG5ld2l0ZW0sIGl0dXAsIE5VTEwpID4gbmtleWF0dHMpCiAJewogCQlpdGVt aWQgPSBQYWdlR2V0SXRlbUlkKHBhZ2UsIFBhZ2VHZXRNYXhPZmZzZXROdW1iZXIocGFnZSkpOwog CQlpdHVwID0gKEluZGV4VHVwbGUpIFBhZ2VHZXRJdGVtKHBhZ2UsIGl0ZW1pZCk7CiAKLQkJaWYg KF9idF9rZWVwX25hdHRzX2Zhc3QocmVsLCBuZXdpdGVtLCBpdHVwKSA+IG5rZXlhdHRzKQorCQlp ZiAoX2J0X2tlZXBfbmF0dHNfZmFzdChyZWwsIG5ld2l0ZW0sIGl0dXAsIE5VTEwpID4gbmtleWF0 dHMpCiAJCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9uYnRyZWUvbmJ0c29ydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMK aW5kZXggMmFjYmYxMjE3NDUuLmFjOWU1YWNmYzUzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHNvcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25i dHNvcnQuYwpAQCAtODMsNiArODMsNyBAQCB0eXBlZGVmIHN0cnVjdCBCVFNwb29sCiAJUmVsYXRp b24JaW5kZXg7CiAJYm9vbAkJaXN1bmlxdWU7CiAJYm9vbAkJbnVsbHNfbm90X2Rpc3RpbmN0Owor CWJvb2wJCXVuaXF1ZV9kZWFkX2lnbm9yZWQ7CiB9IEJUU3Bvb2w7CiAKIC8qCkBAIC0xMDEsNiAr MTAyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQlRTaGFyZWQKIAlPaWQJCQlpbmRleHJlbGlkOwogCWJv b2wJCWlzdW5pcXVlOwogCWJvb2wJCW51bGxzX25vdF9kaXN0aW5jdDsKKwlib29sCQl1bmlxdWVf ZGVhZF9pZ25vcmVkOwogCWJvb2wJCWlzY29uY3VycmVudDsKIAlpbnQJCQlzY2FudHVwbGVzb3J0 c3RhdGVzOwogCkBAIC0yMDMsMTUgKzIwNSwxMyBAQCB0eXBlZGVmIHN0cnVjdCBCVExlYWRlcgog ICovCiB0eXBlZGVmIHN0cnVjdCBCVEJ1aWxkU3RhdGUKIHsKLQlib29sCQlpc3VuaXF1ZTsKLQli b29sCQludWxsc19ub3RfZGlzdGluY3Q7CiAJYm9vbAkJaGF2ZWRlYWQ7CiAJUmVsYXRpb24JaGVh cDsKIAlCVFNwb29sICAgICpzcG9vbDsKIAogCS8qCi0JICogc3Bvb2wyIGlzIG5lZWRlZCBvbmx5 IHdoZW4gdGhlIGluZGV4IGlzIGEgdW5pcXVlIGluZGV4LiBEZWFkIHR1cGxlcyBhcmUKLQkgKiBw dXQgaW50byBzcG9vbDIgaW5zdGVhZCBvZiBzcG9vbCBpbiBvcmRlciB0byBhdm9pZCB1bmlxdWVu ZXNzIGNoZWNrLgorCSAqIHNwb29sMiBpcyBuZWVkZWQgb25seSB3aGVuIHRoZSBpbmRleCBpcyBh IHVuaXF1ZSBpbmRleCBhbmQgYnVpbGQgbm9uLWNvbmN1cnJlbnRseS4KKwkgKiBEZWFkIHR1cGxl cyBhcmUgcHV0IGludG8gc3Bvb2wyIGluc3RlYWQgb2Ygc3Bvb2wgaW4gb3JkZXIgdG8gYXZvaWQg dW5pcXVlbmVzcyBjaGVjay4KIAkgKi8KIAlCVFNwb29sICAgICpzcG9vbDI7CiAJZG91YmxlCQlp bmR0dXBsZXM7CkBAIC0zMDMsOCArMzAzLDYgQEAgYnRidWlsZChSZWxhdGlvbiBoZWFwLCBSZWxh dGlvbiBpbmRleCwgSW5kZXhJbmZvICppbmRleEluZm8pCiAJCVJlc2V0VXNhZ2UoKTsKICNlbmRp ZgkJCQkJCQkvKiBCVFJFRV9CVUlMRF9TVEFUUyAqLwogCi0JYnVpbGRzdGF0ZS5pc3VuaXF1ZSA9 IGluZGV4SW5mby0+aWlfVW5pcXVlOwotCWJ1aWxkc3RhdGUubnVsbHNfbm90X2Rpc3RpbmN0ID0g aW5kZXhJbmZvLT5paV9OdWxsc05vdERpc3RpbmN0OwogCWJ1aWxkc3RhdGUuaGF2ZWRlYWQgPSBm YWxzZTsKIAlidWlsZHN0YXRlLmhlYXAgPSBoZWFwOwogCWJ1aWxkc3RhdGUuc3Bvb2wgPSBOVUxM OwpAQCAtMzc5LDYgKzM3NywxMSBAQCBfYnRfc3Bvb2xzX2hlYXBzY2FuKFJlbGF0aW9uIGhlYXAs IFJlbGF0aW9uIGluZGV4LCBCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsCiAJYnRzcG9vbC0+aW5k ZXggPSBpbmRleDsKIAlidHNwb29sLT5pc3VuaXF1ZSA9IGluZGV4SW5mby0+aWlfVW5pcXVlOwog CWJ0c3Bvb2wtPm51bGxzX25vdF9kaXN0aW5jdCA9IGluZGV4SW5mby0+aWlfTnVsbHNOb3REaXN0 aW5jdDsKKyAgICAvKgorICAgICAqIFdlIG5lZWQgdG8gaWdub3JlIGRlYWQgdHVwbGVzIGZvciB1 bmlxdWUgY2hlY2tzIGluIGNhc2Ugb2YgY29uY3VycmVudCBidWlsZC4KKyAgICAgKiBJdCBpcyBy ZXF1aXJlZCBiZWNhdXNlIG9yIHBlcmlvZGljIHJlc2V0IG9mIHNuYXBzaG90LgorICAgICAqLwor CWJ0c3Bvb2wtPnVuaXF1ZV9kZWFkX2lnbm9yZWQgPSBpbmRleEluZm8tPmlpX0NvbmN1cnJlbnQg JiYgaW5kZXhJbmZvLT5paV9VbmlxdWU7CiAKIAkvKiBTYXZlIGFzIHByaW1hcnkgc3Bvb2wgKi8K IAlidWlsZHN0YXRlLT5zcG9vbCA9IGJ0c3Bvb2w7CkBAIC00MjcsOCArNDMwLDkgQEAgX2J0X3Nw b29sc19oZWFwc2NhbihSZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwgQlRCdWlsZFN0YXRl ICpidWlsZHN0YXRlLAogCSAqIHRoZSB1c2Ugb2YgcGFyYWxsZWxpc20gb3IgYW55IG90aGVyIGZh Y3Rvci4KIAkgKi8KIAlidWlsZHN0YXRlLT5zcG9vbC0+c29ydHN0YXRlID0KLQkJdHVwbGVzb3J0 X2JlZ2luX2luZGV4X2J0cmVlKGhlYXAsIGluZGV4LCBidWlsZHN0YXRlLT5pc3VuaXF1ZSwKLQkJ CQkJCQkJCWJ1aWxkc3RhdGUtPm51bGxzX25vdF9kaXN0aW5jdCwKKwkJdHVwbGVzb3J0X2JlZ2lu X2luZGV4X2J0cmVlKGhlYXAsIGluZGV4LCBidHNwb29sLT5pc3VuaXF1ZSwKKwkJCQkJCQkJCWJ0 c3Bvb2wtPm51bGxzX25vdF9kaXN0aW5jdCwKKwkJCQkJCQkJCWJ0c3Bvb2wtPnVuaXF1ZV9kZWFk X2lnbm9yZWQsCiAJCQkJCQkJCQltYWludGVuYW5jZV93b3JrX21lbSwgY29vcmRpbmF0ZSwKIAkJ CQkJCQkJCVRVUExFU09SVF9OT05FKTsKIApAQCAtNDM2LDggKzQ0MCwxMiBAQCBfYnRfc3Bvb2xz X2hlYXBzY2FuKFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LCBCVEJ1aWxkU3RhdGUgKmJ1 aWxkc3RhdGUsCiAJICogSWYgYnVpbGRpbmcgYSB1bmlxdWUgaW5kZXgsIHB1dCBkZWFkIHR1cGxl cyBpbiBhIHNlY29uZCBzcG9vbCB0byBrZWVwCiAJICogdGhlbSBvdXQgb2YgdGhlIHVuaXF1ZW5l c3MgY2hlY2suICBXZSBleHBlY3QgdGhhdCB0aGUgc2Vjb25kIHNwb29sIChmb3IKIAkgKiBkZWFk IHR1cGxlcykgd29uJ3QgZ2V0IHZlcnkgZnVsbCwgc28gd2UgZ2l2ZSBpdCBvbmx5IHdvcmtfbWVt LgorCSAqCisJICogSW4gY2FzZSBvZiBjb25jdXJyZW50IGJ1aWxkIGRlYWQgdHVwbGVzIGFyZSBu b3QgbmVlZCB0byBiZSBwdXQgaW50byBpbmRleAorCSAqIHNpbmNlIHdlIHdhaXQgZm9yIGFsbCBz bmFwc2hvdHMgb2xkZXIgdGhhbiByZWZlcmVuY2Ugc25hcHNob3QgZHVyaW5nIHRoZQorCSAqIHZh bGlkYXRpb24gcGhhc2UuCiAJICovCi0JaWYgKGluZGV4SW5mby0+aWlfVW5pcXVlKQorCWlmIChp bmRleEluZm8tPmlpX1VuaXF1ZSAmJiAhaW5kZXhJbmZvLT5paV9Db25jdXJyZW50KQogCXsKIAkJ QlRTcG9vbCAgICAqYnRzcG9vbDIgPSAoQlRTcG9vbCAqKSBwYWxsb2MwKHNpemVvZihCVFNwb29s KSk7CiAJCVNvcnRDb29yZGluYXRlIGNvb3JkaW5hdGUyID0gTlVMTDsKQEAgLTQ2OCw3ICs0NzYs NyBAQCBfYnRfc3Bvb2xzX2hlYXBzY2FuKFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LCBC VEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsCiAJCSAqIGZ1bGwsIHNvIHdlIGdpdmUgaXQgb25seSB3 b3JrX21lbQogCQkgKi8KIAkJYnVpbGRzdGF0ZS0+c3Bvb2wyLT5zb3J0c3RhdGUgPQotCQkJdHVw bGVzb3J0X2JlZ2luX2luZGV4X2J0cmVlKGhlYXAsIGluZGV4LCBmYWxzZSwgZmFsc2UsIHdvcmtf bWVtLAorCQkJdHVwbGVzb3J0X2JlZ2luX2luZGV4X2J0cmVlKGhlYXAsIGluZGV4LCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCB3b3JrX21lbSwKIAkJCQkJCQkJCQljb29yZGluYXRlMiwgVFVQTEVTT1JU X05PTkUpOwogCX0KIApAQCAtMTE0NywxMyArMTE1NSwxMTYgQEAgX2J0X2xvYWQoQlRXcml0ZVN0 YXRlICp3c3RhdGUsIEJUU3Bvb2wgKmJ0c3Bvb2wsIEJUU3Bvb2wgKmJ0c3Bvb2wyKQogCVNvcnRT dXBwb3J0IHNvcnRLZXlzOwogCWludDY0CQl0dXBsZXNfZG9uZSA9IDA7CiAJYm9vbAkJZGVkdXBs aWNhdGU7CisJYm9vbAkJZmFpbF9vbl9hbGl2ZV9kdXBsaWNhdGU7CiAKIAl3c3RhdGUtPmJ1bGtz dGF0ZSA9IHNtZ3JfYnVsa19zdGFydF9yZWwod3N0YXRlLT5pbmRleCwgTUFJTl9GT1JLTlVNKTsK IAogCWRlZHVwbGljYXRlID0gd3N0YXRlLT5pbnNrZXktPmFsbGVxdWFsaW1hZ2UgJiYgIWJ0c3Bv b2wtPmlzdW5pcXVlICYmCiAJCUJUR2V0RGVkdXBsaWNhdGVJdGVtcyh3c3RhdGUtPmluZGV4KTsK KwkvKgorCSAqIFRoZSB1bmlxdWVfZGVhZF9pZ25vcmVkIGRvZXMgbm90IGd1YXJhbnRlZSBhYnNl bmNlIG9mIG11bHRpcGxlIGFsaXZlCisJICogdHVwbGVzIHdpdGggc2FtZSB2YWx1ZXMgZXhpc3Rz IGluIHRoZSBzcG9vbC4gU3VjaCB0aGluZyBtYXkgaGFwcGVuIGlmCisJICogYWxpdmUgdHVwbGVz IGFyZSBsb2NhdGVkIGJldHdlZW4gYSBmZXcgZGVhZCB0dXBsZXMsIGxpa2UgdGhpczogYWRkZGEu CisJICovCisJZmFpbF9vbl9hbGl2ZV9kdXBsaWNhdGUgPSBidHNwb29sLT51bmlxdWVfZGVhZF9p Z25vcmVkOwogCi0JaWYgKG1lcmdlKQorCWlmIChmYWlsX29uX2FsaXZlX2R1cGxpY2F0ZSkKKwl7 CisJCWJvb2wJc2Vlbl9hbGl2ZSA9IGZhbHNlLAorCQkJCXByZXZfdGVzdGVkID0gZmFsc2U7CisJ CUluZGV4VHVwbGUgcHJldiA9IE5VTEw7CisJCVR1cGxlVGFibGVTbG90IAkJKnNsb3QgPSBNYWtl U2luZ2xlVHVwbGVUYWJsZVNsb3QoUmVsYXRpb25HZXREZXNjcih3c3RhdGUtPmhlYXApLAorCQkJ CQkJCQkJCQkJCQkJICAgJlRUU09wc0J1ZmZlckhlYXBUdXBsZSk7CisJCUluZGV4RmV0Y2hUYWJs ZURhdGEgKmZldGNoID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4od3N0YXRlLT5oZWFwKTsKKwor CQlBc3NlcnQoYnRzcG9vbC0+aXN1bmlxdWUpOworCQlBc3NlcnQoIWJ0c3Bvb2wyKTsKKworCQl3 aGlsZSAoKGl0dXAgPSB0dXBsZXNvcnRfZ2V0aW5kZXh0dXBsZShidHNwb29sLT5zb3J0c3RhdGUs IHRydWUpKSAhPSBOVUxMKQorCQl7CisJCQlib29sCXR1cGxlc19lcXVhbCA9IGZhbHNlOworCisJ CQkvKiBXaGVuIHdlIHNlZSBmaXJzdCB0dXBsZSwgY3JlYXRlIGZpcnN0IGluZGV4IHBhZ2UgKi8K KwkJCWlmIChzdGF0ZSA9PSBOVUxMKQorCQkJCXN0YXRlID0gX2J0X3BhZ2VzdGF0ZSh3c3RhdGUs IDApOworCisJCQlpZiAocHJldiAhPSBOVUxMKSAvKiBpZiBpcyBub3QgdGhlIGZpcnN0IHR1cGxl ICovCisJCQl7CisJCQkJYm9vbAloYXNfbnVsbHMgPSBmYWxzZSwKKwkJCQkJCWNhbGxfYWdhaW4s IC8qIGp1c3QgdG8gcGFzcyBzb21ldGhpbmcgKi8KKwkJCQkJCWlnbm9yZWQsICAvKiBqdXN0IHRv IHBhc3Mgc29tZXRoaW5nICovCisJCQkJCQlub3dfYWxpdmU7CisJCQkJSXRlbVBvaW50ZXJEYXRh IHRpZDsKKworCQkJCS8qIGlmIHRoaXMgdHVwbGVzIGVxdWFsIHRvIHByZXZpb3VzZSBvbmU/ICov CisJCQkJaWYgKHdzdGF0ZS0+aW5za2V5LT5hbGxlcXVhbGltYWdlKQorCQkJCQl0dXBsZXNfZXF1 YWwgPSBfYnRfa2VlcF9uYXR0c19mYXN0KHdzdGF0ZS0+aW5kZXgsIHByZXYsIGl0dXAsICZoYXNf bnVsbHMpID4ga2V5c3o7CisJCQkJZWxzZQorCQkJCQl0dXBsZXNfZXF1YWwgPSBfYnRfa2VlcF9u YXR0cyh3c3RhdGUtPmluZGV4LCBwcmV2LCBpdHVwLHdzdGF0ZS0+aW5za2V5LCAmaGFzX251bGxz KSA+IGtleXN6OworCisJCQkJLyogaGFuZGxlIG51bGwgdmFsdWVzIGNvcnJlY3RseSAqLworCQkJ CWlmIChoYXNfbnVsbHMgJiYgIWJ0c3Bvb2wtPm51bGxzX25vdF9kaXN0aW5jdCkKKwkJCQkJdHVw bGVzX2VxdWFsID0gZmFsc2U7CisKKwkJCQlpZiAodHVwbGVzX2VxdWFsKQorCQkJCXsKKwkJCQkJ LyogY2hlY2sgcHJldmlvdXMgdHVwbGUgaWYgbm90IHlldCAqLworCQkJCQlpZiAoIXByZXZfdGVz dGVkKQorCQkJCQl7CisJCQkJCQljYWxsX2FnYWluID0gZmFsc2U7CisJCQkJCQl0aWQgPSBwcmV2 LT50X3RpZDsKKwkJCQkJCXNlZW5fYWxpdmUgPSB0YWJsZV9pbmRleF9mZXRjaF90dXBsZShmZXRj aCwgJnRpZCwgU25hcHNob3RTZWxmLCBzbG90LCAmY2FsbF9hZ2FpbiwgJmlnbm9yZWQpOworCQkJ CQkJcHJldl90ZXN0ZWQgPSB0cnVlOworCQkJCQl9CisKKwkJCQkJY2FsbF9hZ2FpbiA9IGZhbHNl OworCQkJCQl0aWQgPSBpdHVwLT50X3RpZDsKKwkJCQkJbm93X2FsaXZlID0gdGFibGVfaW5kZXhf ZmV0Y2hfdHVwbGUoZmV0Y2gsICZ0aWQsIFNuYXBzaG90U2VsZiwgc2xvdCwgJmNhbGxfYWdhaW4s ICZpZ25vcmVkKTsKKworCQkJCQkvKiBhcmUgbXVsdGlwbGUgYWxpdmUgdHVwbGVzIGRldGVjdGVk IGluIGVxdWFsIGdyb3VwPyAqLworCQkJCQlpZiAoc2Vlbl9hbGl2ZSAmJiBub3dfYWxpdmUpCisJ CQkJCXsKKwkJCQkJCWNoYXIgKmtleV9kZXNjOworCQkJCQkJVHVwbGVEZXNjIHR1cERlcyA9IFJl bGF0aW9uR2V0RGVzY3Iod3N0YXRlLT5pbmRleCk7CisJCQkJCQlib29sIGlzbnVsbFtJTkRFWF9N QVhfS0VZU107CisJCQkJCQlEYXR1bSB2YWx1ZXNbSU5ERVhfTUFYX0tFWVNdOworCisJCQkJCQlp bmRleF9kZWZvcm1fdHVwbGUoaXR1cCwgdHVwRGVzLCB2YWx1ZXMsIGlzbnVsbCk7CisKKwkJCQkJ CWtleV9kZXNjID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24od3N0YXRlLT5pbmRleCwgdmFs dWVzLCBpc251bGwpOworCisJCQkJCQkvKiBrZWVwIHRoaXMgbWVzc2FnZSBpbiBzeW5jIHdpdGgg dGhlIHNhbWUgaW4gY29tcGFyZXR1cF9pbmRleF9idHJlZV90aWVicmVhayAqLworCQkJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTklRVUVfVklPTEFUSU9OKSwK KwkJCQkJCQkJCQllcnJtc2coImNvdWxkIG5vdCBjcmVhdGUgdW5pcXVlIGluZGV4IFwiJXNcIiIs CisJCQkJCQkJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHdzdGF0ZS0+aW5kZXgpKSwK KwkJCQkJCQkJCQlrZXlfZGVzYyA/IGVycmRldGFpbCgiS2V5ICVzIGlzIGR1cGxpY2F0ZWQuIiwg a2V5X2Rlc2MpIDoKKwkJCQkJCQkJCQllcnJkZXRhaWwoIkR1cGxpY2F0ZSBrZXlzIGV4aXN0LiIp LAorCQkJCQkJCQkJCWVycnRhYmxlY29uc3RyYWludCh3c3RhdGUtPmhlYXAsCisJCQkJCQkJCQkJ CQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHdzdGF0ZS0+aW5kZXgpKSkpOworCQkJCQl9 CisJCQkJCXNlZW5fYWxpdmUgfD0gbm93X2FsaXZlOworCQkJCX0KKwkJCX0KKworCQkJaWYgKCF0 dXBsZXNfZXF1YWwpCisJCQl7CisJCQkJc2Vlbl9hbGl2ZSA9IGZhbHNlOworCQkJCXByZXZfdGVz dGVkID0gZmFsc2U7CisJCQl9CisKKwkJCV9idF9idWlsZGFkZCh3c3RhdGUsIHN0YXRlLCBpdHVw LCAwKTsKKwkJCWlmIChwcmV2KSBwZnJlZShwcmV2KTsKKwkJCXByZXYgPSBDb3B5SW5kZXhUdXBs ZShpdHVwKTsKKworCQkJLyogUmVwb3J0IHByb2dyZXNzICovCisJCQlwZ3N0YXRfcHJvZ3Jlc3Nf dXBkYXRlX3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9UVVBMRVNfRE9ORSwKKwkJCQkJCQkJCQkg Kyt0dXBsZXNfZG9uZSk7CisJCX0KKwkJRXhlY0Ryb3BTaW5nbGVUdXBsZVRhYmxlU2xvdChzbG90 KTsKKwkJdGFibGVfaW5kZXhfZmV0Y2hfZW5kKGZldGNoKTsKKwl9CisJZWxzZSBpZiAobWVyZ2Up CiAJewogCQkvKgogCQkgKiBBbm90aGVyIEJUU3Bvb2wgZm9yIGRlYWQgdHVwbGVzIGV4aXN0cy4g Tm93IHdlIGhhdmUgdG8gbWVyZ2UKQEAgLTEzMTQsNyArMTQyNSw3IEBAIF9idF9sb2FkKEJUV3Jp dGVTdGF0ZSAqd3N0YXRlLCBCVFNwb29sICpidHNwb29sLCBCVFNwb29sICpidHNwb29sMikKIAkJ CQkJCQkJCQlJbnZhbGlkT2Zmc2V0TnVtYmVyKTsKIAkJCX0KIAkJCWVsc2UgaWYgKF9idF9rZWVw X25hdHRzX2Zhc3Qod3N0YXRlLT5pbmRleCwgZHN0YXRlLT5iYXNlLAotCQkJCQkJCQkJCSBpdHVw KSA+IGtleXN6ICYmCisJCQkJCQkJCQkJIGl0dXAsIE5VTEwpID4ga2V5c3ogJiYKIAkJCQkJIF9i dF9kZWR1cF9zYXZlX2h0aWQoZHN0YXRlLCBpdHVwKSkKIAkJCXsKIAkJCQkvKgpAQCAtMTQxMSw3 ICsxNTIyLDYgQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwg Ym9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCUJ1ZmZlclVzYWdlICpidWZmZXJ1c2Fn ZTsKIAlib29sCQlsZWFkZXJwYXJ0aWNpcGF0ZXMgPSB0cnVlOwogCWJvb2wJCW5lZWRfcG9wX2Fj dGl2ZV9zbmFwc2hvdCA9IHRydWU7Ci0JYm9vbAkJcmVzZXRfc25hcHNob3Q7CiAJYm9vbAkJd2Fp dF9mb3Jfc25hcHNob3RfYXR0YWNoOwogCWludAkJCXF1ZXJ5bGVuOwogCkBAIC0xNDMwLDIxICsx NTQwLDEyIEBAIF9idF9iZWdpbl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJv b2wgaXNjb25jdXJyZW50LCBpbnQgcmVxdWVzdCkKIAogCXNjYW50dXBsZXNvcnRzdGF0ZXMgPSBs ZWFkZXJwYXJ0aWNpcGF0ZXMgPyByZXF1ZXN0ICsgMSA6IHJlcXVlc3Q7CiAKLSAgICAvKgotCSAq IEZvciBjb25jdXJyZW50IG5vbi11bmlxdWUgaW5kZXggYnVpbGRzLCB3ZSBjYW4gcGVyaW9kaWNh bGx5IHJlc2V0IHNuYXBzaG90cwotCSAqIHRvIGFsbG93IHRoZSB4bWluIGhvcml6b24gdG8gYWR2 YW5jZS4gVGhpcyBpcyBzYWZlIHNpbmNlIHRoZXNlIGJ1aWxkcyBkb24ndAotCSAqIHJlcXVpcmUg YSBjb25zaXN0ZW50IHZpZXcgYWNyb3NzIHRoZSBlbnRpcmUgc2Nhbi4gVW5pcXVlIGluZGV4ZXMg c3RpbGwgbmVlZAotCSAqIGEgc3RhYmxlIHNuYXBzaG90IHRvIHByb3Blcmx5IGVuZm9yY2UgdW5p cXVlbmVzcyBjb25zdHJhaW50cy4KLSAgICAgKi8KLQlyZXNldF9zbmFwc2hvdCA9IGlzY29uY3Vy cmVudCAmJiAhYnRzcG9vbC0+aXN1bmlxdWU7Ci0KIAkvKgogCSAqIFByZXBhcmUgZm9yIHNjYW4g b2YgdGhlIGJhc2UgcmVsYXRpb24uICBJbiBhIG5vcm1hbCBpbmRleCBidWlsZCwgd2UgdXNlCiAJ ICogU25hcHNob3RBbnkgYmVjYXVzZSB3ZSBtdXN0IHJldHJpZXZlIGFsbCB0dXBsZXMgYW5kIGRv IG91ciBvd24gdGltZQogCSAqIHF1YWwgY2hlY2tzIChiZWNhdXNlIHdlIGhhdmUgdG8gaW5kZXgg UkVDRU5UTFlfREVBRCB0dXBsZXMpLiAgSW4gYQogCSAqIGNvbmN1cnJlbnQgYnVpbGQsIHdlIHRh a2UgYSByZWd1bGFyIE1WQ0Mgc25hcHNob3QgYW5kIGluZGV4IHdoYXRldmVyJ3MKLQkgKiBsaXZl IGFjY29yZGluZyB0byB0aGF0LCB3aGlsZSB0aGF0IHNuYXBzaG90IG1heSBiZSByZXNldCBwZXJp b2RpY2FsbHkgaW4KLQkgKiBjYXNlIG9mIG5vbi11bmlxdWUgaW5kZXguCisJICogbGl2ZSBhY2Nv cmRpbmcgdG8gdGhhdCwgd2hpbGUgdGhhdCBzbmFwc2hvdCBtYXkgYmUgcmVzZXQgcGVyaW9kaWNh bGx5LgogCSAqLwogCWlmICghaXNjb25jdXJyZW50KQogCXsKQEAgLTE0NTIsMTYgKzE1NTMsMTYg QEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgYm9vbCBpc2Nv bmN1cnJlbnQsIGludCByZXF1ZXN0KQogCQlzbmFwc2hvdCA9IFNuYXBzaG90QW55OwogCQluZWVk X3BvcF9hY3RpdmVfc25hcHNob3QgPSBmYWxzZTsKIAl9Ci0JZWxzZSBpZiAocmVzZXRfc25hcHNo b3QpCisJZWxzZQogCXsKKwkJLyoKKwkJICogRm9yIGNvbmN1cnJlbnQgaW5kZXggYnVpbGRzLCB3 ZSBjYW4gcGVyaW9kaWNhbGx5IHJlc2V0IHNuYXBzaG90cyB0byBhbGxvdworCQkgKiB0aGUgeG1p biBob3Jpem9uIHRvIGFkdmFuY2UuIFRoaXMgaXMgc2FmZSBzaW5jZSB0aGVzZSBidWlsZHMgZG9u J3QKKwkJICogcmVxdWlyZSBhIGNvbnNpc3RlbnQgdmlldyBhY3Jvc3MgdGhlIGVudGlyZSBzY2Fu LgorCQkgKi8KIAkJc25hcHNob3QgPSBJbnZhbGlkU25hcHNob3Q7CiAJCVB1c2hBY3RpdmVTbmFw c2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOwogCX0KLQllbHNlCi0JewotCQlzbmFwc2hv dCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKLQkJUHVzaEFj dGl2ZVNuYXBzaG90KHNuYXBzaG90KTsKLQl9CiAKIAkvKgogCSAqIEVzdGltYXRlIHNpemUgZm9y IG91ciBvd24gUEFSQUxMRUxfS0VZX0JUUkVFX1NIQVJFRCB3b3Jrc3BhY2UsIGFuZApAQCAtMTUz MSw2ICsxNjMyLDcgQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0 ZSwgYm9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCWJ0c2hhcmVkLT5pbmRleHJlbGlk ID0gUmVsYXRpb25HZXRSZWxpZChidHNwb29sLT5pbmRleCk7CiAJYnRzaGFyZWQtPmlzdW5pcXVl ID0gYnRzcG9vbC0+aXN1bmlxdWU7CiAJYnRzaGFyZWQtPm51bGxzX25vdF9kaXN0aW5jdCA9IGJ0 c3Bvb2wtPm51bGxzX25vdF9kaXN0aW5jdDsKKwlidHNoYXJlZC0+dW5pcXVlX2RlYWRfaWdub3Jl ZCA9IGJ0c3Bvb2wtPnVuaXF1ZV9kZWFkX2lnbm9yZWQ7CiAJYnRzaGFyZWQtPmlzY29uY3VycmVu dCA9IGlzY29uY3VycmVudDsKIAlidHNoYXJlZC0+c2NhbnR1cGxlc29ydHN0YXRlcyA9IHNjYW50 dXBsZXNvcnRzdGF0ZXM7CiAJYnRzaGFyZWQtPnF1ZXJ5aWQgPSBwZ3N0YXRfZ2V0X215X3F1ZXJ5 X2lkKCk7CkBAIC0xNTQ1LDcgKzE2NDcsNyBAQCBfYnRfYmVnaW5fcGFyYWxsZWwoQlRCdWlsZFN0 YXRlICpidWlsZHN0YXRlLCBib29sIGlzY29uY3VycmVudCwgaW50IHJlcXVlc3QpCiAJdGFibGVf cGFyYWxsZWxzY2FuX2luaXRpYWxpemUoYnRzcG9vbC0+aGVhcCwKIAkJCQkJCQkJICBQYXJhbGxl bFRhYmxlU2NhbkZyb21CVFNoYXJlZChidHNoYXJlZCksCiAJCQkJCQkJCSAgc25hcHNob3QsCi0J CQkJCQkJCSAgcmVzZXRfc25hcHNob3QpOworCQkJCQkJCQkgIGlzY29uY3VycmVudCk7CiAKIAkv KgogCSAqIFN0b3JlIHNoYXJlZCB0dXBsZXNvcnQtcHJpdmF0ZSBzdGF0ZSwgZm9yIHdoaWNoIHdl IHJlc2VydmVkIHNwYWNlLgpAQCAtMTYyNiw3ICsxNzI4LDcgQEAgX2J0X2JlZ2luX3BhcmFsbGVs KEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgYm9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0 KQogCSAqIEluIGNhc2Ugd2hlbiBsZWFkZXIgZ29pbmcgdG8gcmVzZXQgb3duIGFjdGl2ZSBzbmFw c2hvdCBhcyB3ZWxsIC0gd2UgbmVlZCB0bwogCSAqIHdhaXQgdW50aWwgYWxsIHdvcmtlcnMgaW1w b3J0ZWQgaW5pdGlhbCBzbmFwc2hvdC4KIAkgKi8KLQl3YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2gg PSByZXNldF9zbmFwc2hvdCAmJiBsZWFkZXJwYXJ0aWNpcGF0ZXM7CisJd2FpdF9mb3Jfc25hcHNo b3RfYXR0YWNoID0gaXNjb25jdXJyZW50ICYmIGxlYWRlcnBhcnRpY2lwYXRlczsKIAogCWlmICh3 YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2gpCiAJCVdhaXRGb3JQYXJhbGxlbFdvcmtlcnNUb0F0dGFj aChwY3h0LCB0cnVlKTsKQEAgLTE3NDIsNiArMTg0NCw3IEBAIF9idF9sZWFkZXJfcGFydGljaXBh dGVfYXNfd29ya2VyKEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSkKIAlsZWFkZXJ3b3JrZXItPmlu ZGV4ID0gYnVpbGRzdGF0ZS0+c3Bvb2wtPmluZGV4OwogCWxlYWRlcndvcmtlci0+aXN1bmlxdWUg PSBidWlsZHN0YXRlLT5zcG9vbC0+aXN1bmlxdWU7CiAJbGVhZGVyd29ya2VyLT5udWxsc19ub3Rf ZGlzdGluY3QgPSBidWlsZHN0YXRlLT5zcG9vbC0+bnVsbHNfbm90X2Rpc3RpbmN0OworCWxlYWRl cndvcmtlci0+dW5pcXVlX2RlYWRfaWdub3JlZCA9IGJ1aWxkc3RhdGUtPnNwb29sLT51bmlxdWVf ZGVhZF9pZ25vcmVkOwogCiAJLyogSW5pdGlhbGl6ZSBzZWNvbmQgc3Bvb2wsIGlmIHJlcXVpcmVk ICovCiAJaWYgKCFidGxlYWRlci0+YnRzaGFyZWQtPmlzdW5pcXVlKQpAQCAtMTg0NSwxMSArMTk0 OCwxMiBAQCBfYnRfcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9j ICp0b2MpCiAJYnRzcG9vbC0+aW5kZXggPSBpbmRleFJlbDsKIAlidHNwb29sLT5pc3VuaXF1ZSA9 IGJ0c2hhcmVkLT5pc3VuaXF1ZTsKIAlidHNwb29sLT5udWxsc19ub3RfZGlzdGluY3QgPSBidHNo YXJlZC0+bnVsbHNfbm90X2Rpc3RpbmN0OworCWJ0c3Bvb2wtPnVuaXF1ZV9kZWFkX2lnbm9yZWQg PSBidHNoYXJlZC0+dW5pcXVlX2RlYWRfaWdub3JlZDsKIAogCS8qIExvb2sgdXAgc2hhcmVkIHN0 YXRlIHByaXZhdGUgdG8gdHVwbGVzb3J0LmMgKi8KIAlzaGFyZWRzb3J0ID0gc2htX3RvY19sb29r dXAodG9jLCBQQVJBTExFTF9LRVlfVFVQTEVTT1JULCBmYWxzZSk7CiAJdHVwbGVzb3J0X2F0dGFj aF9zaGFyZWQoc2hhcmVkc29ydCwgc2VnKTsKLQlpZiAoIWJ0c2hhcmVkLT5pc3VuaXF1ZSkKKwlp ZiAoIWJ0c2hhcmVkLT5pc3VuaXF1ZSB8fCBidHNoYXJlZC0+aXNjb25jdXJyZW50KQogCXsKIAkJ YnRzcG9vbDIgPSBOVUxMOwogCQlzaGFyZWRzb3J0MiA9IE5VTEw7CkBAIC0xOTI4LDYgKzIwMzIs NyBAQCBfYnRfcGFyYWxsZWxfc2Nhbl9hbmRfc29ydChCVFNwb29sICpidHNwb29sLCBCVFNwb29s ICpidHNwb29sMiwKIAkJCQkJCQkJCQkJCQkgYnRzcG9vbC0+aW5kZXgsCiAJCQkJCQkJCQkJCQkJ IGJ0c3Bvb2wtPmlzdW5pcXVlLAogCQkJCQkJCQkJCQkJCSBidHNwb29sLT5udWxsc19ub3RfZGlz dGluY3QsCisJCQkJCQkJCQkJCQkJIGJ0c3Bvb2wtPnVuaXF1ZV9kZWFkX2lnbm9yZWQsCiAJCQkJ CQkJCQkJCQkJIHNvcnRtZW0sIGNvb3JkaW5hdGUsCiAJCQkJCQkJCQkJCQkJIFRVUExFU09SVF9O T05FKTsKIApAQCAtMTk1MCwxNCArMjA1NSwxMiBAQCBfYnRfcGFyYWxsZWxfc2Nhbl9hbmRfc29y dChCVFNwb29sICpidHNwb29sLCBCVFNwb29sICpidHNwb29sMiwKIAkJY29vcmRpbmF0ZTItPm5Q YXJ0aWNpcGFudHMgPSAtMTsKIAkJY29vcmRpbmF0ZTItPnNoYXJlZHNvcnQgPSBzaGFyZWRzb3J0 MjsKIAkJYnRzcG9vbDItPnNvcnRzdGF0ZSA9Ci0JCQl0dXBsZXNvcnRfYmVnaW5faW5kZXhfYnRy ZWUoYnRzcG9vbC0+aGVhcCwgYnRzcG9vbC0+aW5kZXgsIGZhbHNlLCBmYWxzZSwKKwkJCXR1cGxl c29ydF9iZWdpbl9pbmRleF9idHJlZShidHNwb29sLT5oZWFwLCBidHNwb29sLT5pbmRleCwgZmFs c2UsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQlNaW4oc29ydG1lbSwgd29ya19tZW0pLCBjb29y ZGluYXRlMiwKIAkJCQkJCQkJCQlmYWxzZSk7CiAJfQogCiAJLyogRmlsbCBpbiBidWlsZHN0YXRl IGZvciBfYnRfYnVpbGRfY2FsbGJhY2soKSAqLwotCWJ1aWxkc3RhdGUuaXN1bmlxdWUgPSBidHNo YXJlZC0+aXN1bmlxdWU7Ci0JYnVpbGRzdGF0ZS5udWxsc19ub3RfZGlzdGluY3QgPSBidHNoYXJl ZC0+bnVsbHNfbm90X2Rpc3RpbmN0OwogCWJ1aWxkc3RhdGUuaGF2ZWRlYWQgPSBmYWxzZTsKIAli dWlsZHN0YXRlLmhlYXAgPSBidHNwb29sLT5oZWFwOwogCWJ1aWxkc3RhdGUuc3Bvb2wgPSBidHNw b29sOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzcGxpdGxvYy5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzcGxpdGxvYy5jCmluZGV4IDFmNDBkNDAy NjNlLi5lMmVkNDUzNzAyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9u YnRzcGxpdGxvYy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c3BsaXRsb2Mu YwpAQCAtNjg3LDcgKzY4Nyw3IEBAIF9idF9hZnRlcm5ld2l0ZW1vZmYoRmluZFNwbGl0RGF0YSAq c3RhdGUsIE9mZnNldE51bWJlciBtYXhvZmYsCiAJewogCQlpdGVtaWQgPSBQYWdlR2V0SXRlbUlk KHN0YXRlLT5vcmlncGFnZSwgbWF4b2ZmKTsKIAkJdHVwID0gKEluZGV4VHVwbGUpIFBhZ2VHZXRJ dGVtKHN0YXRlLT5vcmlncGFnZSwgaXRlbWlkKTsKLQkJa2VlcG5hdHRzID0gX2J0X2tlZXBfbmF0 dHNfZmFzdChzdGF0ZS0+cmVsLCB0dXAsIHN0YXRlLT5uZXdpdGVtKTsKKwkJa2VlcG5hdHRzID0g X2J0X2tlZXBfbmF0dHNfZmFzdChzdGF0ZS0+cmVsLCB0dXAsIHN0YXRlLT5uZXdpdGVtLCBOVUxM KTsKIAogCQlpZiAoa2VlcG5hdHRzID4gMSAmJiBrZWVwbmF0dHMgPD0gbmtleWF0dHMpCiAJCXsK QEAgLTcxOCw3ICs3MTgsNyBAQCBfYnRfYWZ0ZXJuZXdpdGVtb2ZmKEZpbmRTcGxpdERhdGEgKnN0 YXRlLCBPZmZzZXROdW1iZXIgbWF4b2ZmLAogCQkhX2J0X2FkamFjZW50aHRpZCgmdHVwLT50X3Rp ZCwgJnN0YXRlLT5uZXdpdGVtLT50X3RpZCkpCiAJCXJldHVybiBmYWxzZTsKIAkvKiBDaGVjayBz YW1lIGNvbmRpdGlvbnMgYXMgcmlnaHRtb3N0IGl0ZW0gY2FzZSwgdG9vICovCi0Ja2VlcG5hdHRz ID0gX2J0X2tlZXBfbmF0dHNfZmFzdChzdGF0ZS0+cmVsLCB0dXAsIHN0YXRlLT5uZXdpdGVtKTsK KwlrZWVwbmF0dHMgPSBfYnRfa2VlcF9uYXR0c19mYXN0KHN0YXRlLT5yZWwsIHR1cCwgc3RhdGUt Pm5ld2l0ZW0sIE5VTEwpOwogCiAJaWYgKGtlZXBuYXR0cyA+IDEgJiYga2VlcG5hdHRzIDw9IG5r ZXlhdHRzKQogCXsKQEAgLTk2Nyw3ICs5NjcsNyBAQCBfYnRfc3RyYXRlZ3koRmluZFNwbGl0RGF0 YSAqc3RhdGUsIFNwbGl0UG9pbnQgKmxlZnRwYWdlLAogCSAqIGF2b2lkIGFwcGVuZGluZyBhIGhl YXAgVElEIGluIG5ldyBoaWdoIGtleSwgd2UncmUgZG9uZS4gIEZpbmlzaCBzcGxpdAogCSAqIHdp dGggZGVmYXVsdCBzdHJhdGVneSBhbmQgaW5pdGlhbCBzcGxpdCBpbnRlcnZhbC4KIAkgKi8KLQlw ZXJmZWN0cGVuYWx0eSA9IF9idF9rZWVwX25hdHRzX2Zhc3Qoc3RhdGUtPnJlbCwgbGVmdG1vc3Qs IHJpZ2h0bW9zdCk7CisJcGVyZmVjdHBlbmFsdHkgPSBfYnRfa2VlcF9uYXR0c19mYXN0KHN0YXRl LT5yZWwsIGxlZnRtb3N0LCByaWdodG1vc3QsIE5VTEwpOwogCWlmIChwZXJmZWN0cGVuYWx0eSA8 PSBpbmRua2V5YXR0cykKIAkJcmV0dXJuIHBlcmZlY3RwZW5hbHR5OwogCkBAIC05ODgsNyArOTg4 LDcgQEAgX2J0X3N0cmF0ZWd5KEZpbmRTcGxpdERhdGEgKnN0YXRlLCBTcGxpdFBvaW50ICpsZWZ0 cGFnZSwKIAkgKiBJZiBwYWdlIGlzIGVudGlyZWx5IGZ1bGwgb2YgZHVwbGljYXRlcywgYSBzaW5n bGUgdmFsdWUgc3RyYXRlZ3kgc3BsaXQKIAkgKiB3aWxsIGJlIHBlcmZvcm1lZC4KIAkgKi8KLQlw ZXJmZWN0cGVuYWx0eSA9IF9idF9rZWVwX25hdHRzX2Zhc3Qoc3RhdGUtPnJlbCwgbGVmdG1vc3Qs IHJpZ2h0bW9zdCk7CisJcGVyZmVjdHBlbmFsdHkgPSBfYnRfa2VlcF9uYXR0c19mYXN0KHN0YXRl LT5yZWwsIGxlZnRtb3N0LCByaWdodG1vc3QsIE5VTEwpOwogCWlmIChwZXJmZWN0cGVuYWx0eSA8 PSBpbmRua2V5YXR0cykKIAl7CiAJCSpzdHJhdGVneSA9IFNQTElUX01BTllfRFVQTElDQVRFUzsK QEAgLTEwMjcsNyArMTAyNyw3IEBAIF9idF9zdHJhdGVneShGaW5kU3BsaXREYXRhICpzdGF0ZSwg U3BsaXRQb2ludCAqbGVmdHBhZ2UsCiAJCWl0ZW1pZCA9IFBhZ2VHZXRJdGVtSWQoc3RhdGUtPm9y aWdwYWdlLCBQX0hJS0VZKTsKIAkJaGlrZXkgPSAoSW5kZXhUdXBsZSkgUGFnZUdldEl0ZW0oc3Rh dGUtPm9yaWdwYWdlLCBpdGVtaWQpOwogCQlwZXJmZWN0cGVuYWx0eSA9IF9idF9rZWVwX25hdHRz X2Zhc3Qoc3RhdGUtPnJlbCwgaGlrZXksCi0JCQkJCQkJCQkJCSBzdGF0ZS0+bmV3aXRlbSk7CisJ CQkJCQkJCQkJCSBzdGF0ZS0+bmV3aXRlbSwgTlVMTCk7CiAJCWlmIChwZXJmZWN0cGVuYWx0eSA8 PSBpbmRua2V5YXR0cykKIAkJCSpzdHJhdGVneSA9IFNQTElUX1NJTkdMRV9WQUxVRTsKIAkJZWxz ZQpAQCAtMTE0OSw3ICsxMTQ5LDcgQEAgX2J0X3NwbGl0X3BlbmFsdHkoRmluZFNwbGl0RGF0YSAq c3RhdGUsIFNwbGl0UG9pbnQgKnNwbGl0KQogCWxhc3RsZWZ0ID0gX2J0X3NwbGl0X2xhc3RsZWZ0 KHN0YXRlLCBzcGxpdCk7CiAJZmlyc3RyaWdodCA9IF9idF9zcGxpdF9maXJzdHJpZ2h0KHN0YXRl LCBzcGxpdCk7CiAKLQlyZXR1cm4gX2J0X2tlZXBfbmF0dHNfZmFzdChzdGF0ZS0+cmVsLCBsYXN0 bGVmdCwgZmlyc3RyaWdodCk7CisJcmV0dXJuIF9idF9rZWVwX25hdHRzX2Zhc3Qoc3RhdGUtPnJl bCwgbGFzdGxlZnQsIGZpcnN0cmlnaHQsIE5VTEwpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR1dGlscy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnR1dGlscy5jCmluZGV4IDUwY2JmMDZjYjQ1Li4zZDZkZGE0YWNlOCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0dXRpbHMuYwpAQCAtMTAwLDggKzEwMCw2IEBAIHN0YXRpYyBib29s IF9idF9jaGVja19yb3djb21wYXJlKFNjYW5LZXkgc2tleSwKIAkJCQkJCQkJIFNjYW5EaXJlY3Rp b24gZGlyLCBib29sICpjb250aW51ZXNjYW4pOwogc3RhdGljIHZvaWQgX2J0X2NoZWNra2V5c19s b29rX2FoZWFkKEluZGV4U2NhbkRlc2Mgc2NhbiwgQlRSZWFkUGFnZVN0YXRlICpwc3RhdGUsCiAJ CQkJCQkJCQkgaW50IHR1cG5hdHRzLCBUdXBsZURlc2MgdHVwZGVzYyk7Ci1zdGF0aWMgaW50CV9i dF9rZWVwX25hdHRzKFJlbGF0aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwKLQkJCQkJCSAg IEluZGV4VHVwbGUgZmlyc3RyaWdodCwgQlRTY2FuSW5zZXJ0IGl0dXBfa2V5KTsKIAogCiAvKgpA QCAtNDY3Miw3ICs0NjcwLDcgQEAgX2J0X3RydW5jYXRlKFJlbGF0aW9uIHJlbCwgSW5kZXhUdXBs ZSBsYXN0bGVmdCwgSW5kZXhUdXBsZSBmaXJzdHJpZ2h0LAogCUFzc2VydCghQlRyZWVUdXBsZUlz UGl2b3QobGFzdGxlZnQpICYmICFCVHJlZVR1cGxlSXNQaXZvdChmaXJzdHJpZ2h0KSk7CiAKIAkv KiBEZXRlcm1pbmUgaG93IG1hbnkgYXR0cmlidXRlcyBtdXN0IGJlIGtlcHQgaW4gdHJ1bmNhdGVk IHR1cGxlICovCi0Ja2VlcG5hdHRzID0gX2J0X2tlZXBfbmF0dHMocmVsLCBsYXN0bGVmdCwgZmly c3RyaWdodCwgaXR1cF9rZXkpOworCWtlZXBuYXR0cyA9IF9idF9rZWVwX25hdHRzKHJlbCwgbGFz dGxlZnQsIGZpcnN0cmlnaHQsIGl0dXBfa2V5LCBOVUxMKTsKIAogI2lmZGVmIERFQlVHX05PX1RS VU5DQVRFCiAJLyogRm9yY2UgdHJ1bmNhdGlvbiB0byBiZSBpbmVmZmVjdGl2ZSBmb3IgdGVzdGlu ZyBwdXJwb3NlcyAqLwpAQCAtNDc5MCwxNyArNDc4OCwyNCBAQCBfYnRfdHJ1bmNhdGUoUmVsYXRp b24gcmVsLCBJbmRleFR1cGxlIGxhc3RsZWZ0LCBJbmRleFR1cGxlIGZpcnN0cmlnaHQsCiAvKgog ICogX2J0X2tlZXBfbmF0dHMgLSBob3cgbWFueSBrZXkgYXR0cmlidXRlcyB0byBrZWVwIHdoZW4g dHJ1bmNhdGluZy4KICAqCisgKiBUaGlzIGlzIGV4cG9ydGVkIHRvIGJlIHVzZWQgYXMgY29tcGFy aXNvbiBmdW5jdGlvbiBkdXJpbmcgY29uY3VycmVudAorICogdW5pcXVlIGluZGV4IGJ1aWxkIGlu IGNhc2UgX2J0X2tlZXBfbmF0dHNfZmFzdCBpcyBub3Qgc3VpdGFibGUgYmVjYXVzZQorICogY29s bGF0aW9uIGlzIG5vdCAiYWxsZXF1YWxpbWFnZSIvZGVkdXBsaWNhdGlvbi1zYWZlLgorICoKICAq IENhbGxlciBwcm92aWRlcyB0d28gdHVwbGVzIHRoYXQgZW5jbG9zZSBhIHNwbGl0IHBvaW50LiAg Q2FsbGVyJ3MgaW5zZXJ0aW9uCiAgKiBzY2Fua2V5IGlzIHVzZWQgdG8gY29tcGFyZSB0aGUgdHVw bGVzOyB0aGUgc2NhbmtleSdzIGFyZ3VtZW50IHZhbHVlcyBhcmUKICAqIG5vdCBjb25zaWRlcmVk IGhlcmUuCiAgKgorICogaGFzbnVsbHMgdmFsdWUgc2V0IHRvIHRydWUgaW4gY2FzZSBvZiBhbnkg bnVsbCBjb2x1bW4gaW4gYW55IHR1cGxlLgorICoKICAqIFRoaXMgY2FuIHJldHVybiBhIG51bWJl ciBvZiBhdHRyaWJ1dGVzIHRoYXQgaXMgb25lIGdyZWF0ZXIgdGhhbiB0aGUKICAqIG51bWJlciBv ZiBrZXkgYXR0cmlidXRlcyBmb3IgdGhlIGluZGV4IHJlbGF0aW9uLiAgVGhpcyBpbmRpY2F0ZXMg dGhhdCB0aGUKICAqIGNhbGxlciBtdXN0IHVzZSBhIGhlYXAgVElEIGFzIGEgdW5pcXVlLWlmaWVy IGluIG5ldyBwaXZvdCB0dXBsZS4KICAqLwotc3RhdGljIGludAoraW50CiBfYnRfa2VlcF9uYXR0 cyhSZWxhdGlvbiByZWwsIEluZGV4VHVwbGUgbGFzdGxlZnQsIEluZGV4VHVwbGUgZmlyc3RyaWdo dCwKLQkJCSAgIEJUU2Nhbkluc2VydCBpdHVwX2tleSkKKwkJCSAgIEJUU2Nhbkluc2VydCBpdHVw X2tleSwKKwkJCSAgIGJvb2wgKmhhc251bGxzKQogewogCWludAkJCW5rZXlhdHRzID0gSW5kZXhS ZWxhdGlvbkdldE51bWJlck9mS2V5QXR0cmlidXRlcyhyZWwpOwogCVR1cGxlRGVzYwlpdHVwZGVz YyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKTsKQEAgLTQ4MjYsNiArNDgzMSw4IEBAIF9idF9rZWVw X25hdHRzKFJlbGF0aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwgSW5kZXhUdXBsZSBmaXJz dHJpZ2h0LAogCiAJCWRhdHVtMSA9IGluZGV4X2dldGF0dHIobGFzdGxlZnQsIGF0dG51bSwgaXR1 cGRlc2MsICZpc051bGwxKTsKIAkJZGF0dW0yID0gaW5kZXhfZ2V0YXR0cihmaXJzdHJpZ2h0LCBh dHRudW0sIGl0dXBkZXNjLCAmaXNOdWxsMik7CisJCWlmIChoYXNudWxscykKKwkJCSgqaGFzbnVs bHMpIHw9IChpc051bGwxIHx8IGlzTnVsbDIpOwogCiAJCWlmIChpc051bGwxICE9IGlzTnVsbDIp CiAJCQlicmVhazsKQEAgLTQ4NDUsNyArNDg1Miw3IEBAIF9idF9rZWVwX25hdHRzKFJlbGF0aW9u IHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwgSW5kZXhUdXBsZSBmaXJzdHJpZ2h0LAogCSAqIGV4 cGVjdGVkIGluIGFuIGFsbGVxdWFsaW1hZ2UgaW5kZXguCiAJICovCiAJQXNzZXJ0KCFpdHVwX2tl eS0+YWxsZXF1YWxpbWFnZSB8fAotCQkgICBrZWVwbmF0dHMgPT0gX2J0X2tlZXBfbmF0dHNfZmFz dChyZWwsIGxhc3RsZWZ0LCBmaXJzdHJpZ2h0KSk7CisJCSAgIGtlZXBuYXR0cyA9PSBfYnRfa2Vl cF9uYXR0c19mYXN0KHJlbCwgbGFzdGxlZnQsIGZpcnN0cmlnaHQsIE5VTEwpKTsKIAogCXJldHVy biBrZWVwbmF0dHM7CiB9CkBAIC00ODU2LDcgKzQ4NjMsOCBAQCBfYnRfa2VlcF9uYXR0cyhSZWxh dGlvbiByZWwsIEluZGV4VHVwbGUgbGFzdGxlZnQsIEluZGV4VHVwbGUgZmlyc3RyaWdodCwKICAq IFRoaXMgaXMgZXhwb3J0ZWQgc28gdGhhdCBhIGNhbmRpZGF0ZSBzcGxpdCBwb2ludCBjYW4gaGF2 ZSBpdHMgZWZmZWN0IG9uCiAgKiBzdWZmaXggdHJ1bmNhdGlvbiBpbmV4cGVuc2l2ZWx5IGV2YWx1 YXRlZCBhaGVhZCBvZiB0aW1lIHdoZW4gZmluZGluZyBhCiAgKiBzcGxpdCBsb2NhdGlvbi4gIEEg bmFpdmUgYml0d2lzZSBhcHByb2FjaCB0byBkYXR1bSBjb21wYXJpc29ucyBpcyB1c2VkIHRvCi0g KiBzYXZlIGN5Y2xlcy4KKyAqIHNhdmUgY3ljbGVzLiBBbHNvLCBpdCBtYXkgYmUgdXNlZCBhcyBj b21wYXJpc29uIGZ1bmN0aW9uIGR1cmluZyBjb25jdXJyZW50CisgKiBidWlsZCBvZiB1bmlxdWUg aW5kZXguCiAgKgogICogVGhlIGFwcHJvYWNoIHRha2VuIGhlcmUgdXN1YWxseSBwcm92aWRlcyB0 aGUgc2FtZSBhbnN3ZXIgYXMgX2J0X2tlZXBfbmF0dHMKICAqIHdpbGwgKGZvciB0aGUgc2FtZSBw YWlyIG9mIHR1cGxlcyBmcm9tIGEgaGVhcGtleXNwYWNlIGluZGV4KSwgc2luY2UgdGhlCkBAIC00 ODY1LDYgKzQ4NzMsOCBAQCBfYnRfa2VlcF9uYXR0cyhSZWxhdGlvbiByZWwsIEluZGV4VHVwbGUg bGFzdGxlZnQsIEluZGV4VHVwbGUgZmlyc3RyaWdodCwKICAqICJlcXVhbCBpbWFnZSIgY29sdW1u cywgcm91dGluZSBpcyBndWFyYW50ZWVkIHRvIGdpdmUgdGhlIHNhbWUgcmVzdWx0IGFzCiAgKiBf YnRfa2VlcF9uYXR0cyB3b3VsZC4KICAqCisgKiBoYXNudWxscyB2YWx1ZSBzZXQgdG8gdHJ1ZSBp biBjYXNlIG9mIGFueSBudWxsIGNvbHVtbiBpbiBhbnkgdHVwbGUuCisgKgogICogQ2FsbGVycyBj YW4gcmVseSBvbiB0aGUgZmFjdCB0aGF0IGF0dHJpYnV0ZXMgY29uc2lkZXJlZCBlcXVhbCBoZXJl IGFyZQogICogZGVmaW5pdGVseSBhbHNvIGVxdWFsIGFjY29yZGluZyB0byBfYnRfa2VlcF9uYXR0 cywgZXZlbiB3aGVuIHRoZSBpbmRleCB1c2VzCiAgKiBhbiBvcGNsYXNzIG9yIGNvbGxhdGlvbiB0 aGF0IGlzIG5vdCAiYWxsZXF1YWxpbWFnZSIvZGVkdXBsaWNhdGlvbi1zYWZlLgpAQCAtNDg3Myw3 ICs0ODgzLDggQEAgX2J0X2tlZXBfbmF0dHMoUmVsYXRpb24gcmVsLCBJbmRleFR1cGxlIGxhc3Rs ZWZ0LCBJbmRleFR1cGxlIGZpcnN0cmlnaHQsCiAgKiBtb3JlIGJhbGFuY2VkIHNwbGl0IHBvaW50 LgogICovCiBpbnQKLV9idF9rZWVwX25hdHRzX2Zhc3QoUmVsYXRpb24gcmVsLCBJbmRleFR1cGxl IGxhc3RsZWZ0LCBJbmRleFR1cGxlIGZpcnN0cmlnaHQpCitfYnRfa2VlcF9uYXR0c19mYXN0KFJl bGF0aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwgSW5kZXhUdXBsZSBmaXJzdHJpZ2h0LAor CQkJCQlib29sICpoYXNudWxscykKIHsKIAlUdXBsZURlc2MJaXR1cGRlc2MgPSBSZWxhdGlvbkdl dERlc2NyKHJlbCk7CiAJaW50CQkJa2V5c3ogPSBJbmRleFJlbGF0aW9uR2V0TnVtYmVyT2ZLZXlB dHRyaWJ1dGVzKHJlbCk7CkBAIC00ODkwLDYgKzQ5MDEsOCBAQCBfYnRfa2VlcF9uYXR0c19mYXN0 KFJlbGF0aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwgSW5kZXhUdXBsZSBmaXJzdHJpZ2h0 KQogCiAJCWRhdHVtMSA9IGluZGV4X2dldGF0dHIobGFzdGxlZnQsIGF0dG51bSwgaXR1cGRlc2Ms ICZpc051bGwxKTsKIAkJZGF0dW0yID0gaW5kZXhfZ2V0YXR0cihmaXJzdHJpZ2h0LCBhdHRudW0s IGl0dXBkZXNjLCAmaXNOdWxsMik7CisJCWlmIChoYXNudWxscykKKwkJCSpoYXNudWxscyB8PSAo aXNOdWxsMSB8IGlzTnVsbDIpOwogCQlhdHQgPSBUdXBsZURlc2NBdHRyKGl0dXBkZXNjLCBhdHRu dW0gLSAxKTsKIAogCQlpZiAoaXNOdWxsMSAhPSBpc051bGwyKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9pbmRleC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCmluZGV4 IGUwYWRhNWNlMTU5Li5mNmExYTJmM2Y5MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9pbmRleC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwpAQCAtMzI5Miw5ICsz MjkyLDkgQEAgSW5kZXhDaGVja0V4Y2x1c2lvbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAgKiBp ZiB3ZSB1c2VkIEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bSkuICBUaGlzIGxlYXZlcyB1cyB3aXRo IGFuIGluZGV4IHRoYXQKICAqIGRvZXMgbm90IGNvbnRhaW4gYW55IHR1cGxlcyBhZGRlZCB0byB0 aGUgdGFibGUgd2hpbGUgd2UgYnVpbHQgdGhlIGluZGV4LgogICoKLSAqIEZ1cnRoZXJtb3JlLCBp biBjYXNlIG9mIG5vbi11bmlxdWUgaW5kZXggd2Ugc2V0IFNPX1JFU0VUX1NOQVBTSE9UIGZvciB0 aGUKLSAqIHNjYW4sIHdoaWNoIGNhdXNlcyBuZXcgc25hcHNob3QgdG8gYmUgc2V0IGFzIGFjdGl2 ZSBldmVyeSBzbyBvZnRlbi4gVGhlIHJlYXNvbgotICogZm9yIHRoYXQgaXMgdG8gcHJvcGFnYXRl IHRoZSB4bWluIGhvcml6b24gZm9yd2FyZC4KKyAqIEZ1cnRoZXJtb3JlLCB3ZSBzZXQgU09fUkVT RVRfU05BUFNIT1QgZm9yIHRoZSBzY2FuLCB3aGljaCBjYXVzZXMgbmV3CisgKiBzbmFwc2hvdCB0 byBiZSBzZXQgYXMgYWN0aXZlIGV2ZXJ5IHNvIG9mdGVuLiBUaGUgcmVhc29uICBmb3IgdGhhdCBp cyB0bworICogcHJvcGFnYXRlIHRoZSB4bWluIGhvcml6b24gZm9yd2FyZC4KICAqCiAgKiBOZXh0 LCB3ZSBtYXJrIHRoZSBpbmRleCAiaW5kaXNyZWFkeSIgKGJ1dCBzdGlsbCBub3QgImluZGlzdmFs aWQiKSBhbmQKICAqIGNvbW1pdCB0aGUgc2Vjb25kIHRyYW5zYWN0aW9uIGFuZCBzdGFydCBhIHRo aXJkLiAgQWdhaW4gd2Ugd2FpdCBmb3IgYWxsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9zb3J0L3R1cGxlc29ydHZhcmlhbnRzLmMgYi9zcmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxl c29ydHZhcmlhbnRzLmMKaW5kZXggZTA3YmE0ZWE0YjEuLmFhNGZjYWFjOWEwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxlc29ydHZhcmlhbnRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnR2YXJpYW50cy5jCkBAIC0xMjMsNiArMTIzLDcgQEAg dHlwZWRlZiBzdHJ1Y3QKIAogCWJvb2wJCWVuZm9yY2VVbmlxdWU7CS8qIGNvbXBsYWluIGlmIHdl IGZpbmQgZHVwbGljYXRlIHR1cGxlcyAqLwogCWJvb2wJCXVuaXF1ZU51bGxzTm90RGlzdGluY3Q7 IC8qIHVuaXF1ZSBjb25zdHJhaW50IG51bGwgdHJlYXRtZW50ICovCisJYm9vbAkJdW5pcXVlRGVh ZElnbm9yZWQ7IC8qIGlnbm9yZSBkZWFkIHR1cGxlcyBpbiB1bmlxdWUgY2hlY2sgKi8KIH0gVHVw bGVzb3J0SW5kZXhCVHJlZUFyZzsKIAogLyoKQEAgLTM0OSw2ICszNTAsNyBAQCB0dXBsZXNvcnRf YmVnaW5faW5kZXhfYnRyZWUoUmVsYXRpb24gaGVhcFJlbCwKIAkJCQkJCQlSZWxhdGlvbiBpbmRl eFJlbCwKIAkJCQkJCQlib29sIGVuZm9yY2VVbmlxdWUsCiAJCQkJCQkJYm9vbCB1bmlxdWVOdWxs c05vdERpc3RpbmN0LAorCQkJCQkJCWJvb2wgdW5pcXVlRGVhZElnbm9yZWQsCiAJCQkJCQkJaW50 IHdvcmtNZW0sCiAJCQkJCQkJU29ydENvb3JkaW5hdGUgY29vcmRpbmF0ZSwKIAkJCQkJCQlpbnQg c29ydG9wdCkKQEAgLTM5MSw2ICszOTMsNyBAQCB0dXBsZXNvcnRfYmVnaW5faW5kZXhfYnRyZWUo UmVsYXRpb24gaGVhcFJlbCwKIAlhcmctPmluZGV4LmluZGV4UmVsID0gaW5kZXhSZWw7CiAJYXJn LT5lbmZvcmNlVW5pcXVlID0gZW5mb3JjZVVuaXF1ZTsKIAlhcmctPnVuaXF1ZU51bGxzTm90RGlz dGluY3QgPSB1bmlxdWVOdWxsc05vdERpc3RpbmN0OworCWFyZy0+dW5pcXVlRGVhZElnbm9yZWQg PSB1bmlxdWVEZWFkSWdub3JlZDsKIAogCWluZGV4U2NhbktleSA9IF9idF9ta3NjYW5rZXkoaW5k ZXhSZWwsIE5VTEwpOwogCkBAIC0xNTIwLDYgKzE1MjMsNyBAQCBjb21wYXJldHVwX2luZGV4X2J0 cmVlX3RpZWJyZWFrKGNvbnN0IFNvcnRUdXBsZSAqYSwgY29uc3QgU29ydFR1cGxlICpiLAogCQlE YXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsKIAkJYm9vbAkJaXNudWxsW0lOREVYX01BWF9L RVlTXTsKIAkJY2hhcgkgICAqa2V5X2Rlc2M7CisJCWJvb2wJCXVuaXF1ZUNoZWNrRmFpbCA9IHRy dWU7CiAKIAkJLyoKIAkJICogU29tZSByYXRoZXIgYnJhaW4tZGVhZCBpbXBsZW1lbnRhdGlvbnMg b2YgcXNvcnQgKHN1Y2ggYXMgdGhlIG9uZSBpbgpAQCAtMTUyOSwxOCArMTUzMyw1NyBAQCBjb21w YXJldHVwX2luZGV4X2J0cmVlX3RpZWJyZWFrKGNvbnN0IFNvcnRUdXBsZSAqYSwgY29uc3QgU29y dFR1cGxlICpiLAogCQkgKi8KIAkJQXNzZXJ0KHR1cGxlMSAhPSB0dXBsZTIpOwogCi0JCWluZGV4 X2RlZm9ybV90dXBsZSh0dXBsZTEsIHR1cERlcywgdmFsdWVzLCBpc251bGwpOwotCi0JCWtleV9k ZXNjID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24oYXJnLT5pbmRleC5pbmRleFJlbCwgdmFs dWVzLCBpc251bGwpOwotCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9V TklRVUVfVklPTEFUSU9OKSwKLQkJCQkgZXJybXNnKCJjb3VsZCBub3QgY3JlYXRlIHVuaXF1ZSBp bmRleCBcIiVzXCIiLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoYXJnLT5pbmRleC5p bmRleFJlbCkpLAotCQkJCSBrZXlfZGVzYyA/IGVycmRldGFpbCgiS2V5ICVzIGlzIGR1cGxpY2F0 ZWQuIiwga2V5X2Rlc2MpIDoKLQkJCQkgZXJyZGV0YWlsKCJEdXBsaWNhdGUga2V5cyBleGlzdC4i KSwKLQkJCQkgZXJydGFibGVjb25zdHJhaW50KGFyZy0+aW5kZXguaGVhcFJlbCwKLQkJCQkJCQkJ CVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGFyZy0+aW5kZXguaW5kZXhSZWwpKSkpOworCQkvKiBU aGlzIGlzIGZhaWwtZmFzdCBjaGVjaywgc2VlIF9idF9sb2FkIGZvciBkZXRhaWxzLiAqLworCQlp ZiAoYXJnLT51bmlxdWVEZWFkSWdub3JlZCkKKwkJeworCQkJYm9vbAlhbnlfdHVwbGVfZGVhZCwK KwkJCQkJY2FsbF9hZ2FpbiA9IGZhbHNlLAorCQkJCQlpZ25vcmVkOworCisJCQlUdXBsZVRhYmxl U2xvdAkqc2xvdCA9IE1ha2VTaW5nbGVUdXBsZVRhYmxlU2xvdChSZWxhdGlvbkdldERlc2NyKGFy Zy0+aW5kZXguaGVhcFJlbCksCisJCQkJCQkJCQkJCQkJCQkgJlRUU09wc0J1ZmZlckhlYXBUdXBs ZSk7CisJCQlJdGVtUG9pbnRlckRhdGEgdGlkID0gdHVwbGUxLT50X3RpZDsKKworCQkJSW5kZXhG ZXRjaFRhYmxlRGF0YSAqZmV0Y2ggPSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihhcmctPmluZGV4 LmhlYXBSZWwpOworCQkJYW55X3R1cGxlX2RlYWQgPSAhdGFibGVfaW5kZXhfZmV0Y2hfdHVwbGUo ZmV0Y2gsICZ0aWQsIFNuYXBzaG90U2VsZiwgc2xvdCwgJmNhbGxfYWdhaW4sICZpZ25vcmVkKTsK KworCQkJaWYgKCFhbnlfdHVwbGVfZGVhZCkKKwkJCXsKKwkJCQljYWxsX2FnYWluID0gZmFsc2U7 CisJCQkJdGlkID0gdHVwbGUyLT50X3RpZDsKKwkJCQlhbnlfdHVwbGVfZGVhZCA9ICF0YWJsZV9p bmRleF9mZXRjaF90dXBsZShmZXRjaCwgJnR1cGxlMi0+dF90aWQsIFNuYXBzaG90U2VsZiwgc2xv dCwgJmNhbGxfYWdhaW4sCisJCQkJCQkJCQkJCQkJCSAgJmlnbm9yZWQpOworCQkJfQorCisJCQlp ZiAoYW55X3R1cGxlX2RlYWQpCisJCQl7CisJCQkJZWxvZyhERUJVRzUsICJza2lwcGluZyBkdXBs aWNhdGUgdmFsdWVzIGJlY2F1c2Ugc29tZSBvZiB0aGVtIGFyZSBkZWFkOiAoJXUsJXUpIHZzICgl dSwldSkiLAorCQkJCQkgSXRlbVBvaW50ZXJHZXRCbG9ja051bWJlcigmdHVwbGUxLT50X3RpZCks CisJCQkJCSBJdGVtUG9pbnRlckdldE9mZnNldE51bWJlcigmdHVwbGUxLT50X3RpZCksCisJCQkJ CSBJdGVtUG9pbnRlckdldEJsb2NrTnVtYmVyKCZ0dXBsZTItPnRfdGlkKSwKKwkJCQkJIEl0ZW1Q b2ludGVyR2V0T2Zmc2V0TnVtYmVyKCZ0dXBsZTItPnRfdGlkKSk7CisKKwkJCQl1bmlxdWVDaGVj a0ZhaWwgPSBmYWxzZTsKKwkJCX0KKwkJCUV4ZWNEcm9wU2luZ2xlVHVwbGVUYWJsZVNsb3Qoc2xv dCk7CisJCQl0YWJsZV9pbmRleF9mZXRjaF9lbmQoZmV0Y2gpOworCQl9CisJCWlmICh1bmlxdWVD aGVja0ZhaWwpCisJCXsKKwkJCWluZGV4X2RlZm9ybV90dXBsZSh0dXBsZTEsIHR1cERlcywgdmFs dWVzLCBpc251bGwpOworCisJCQlrZXlfZGVzYyA9IEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9u KGFyZy0+aW5kZXguaW5kZXhSZWwsIHZhbHVlcywgaXNudWxsKTsKKworCQkJLyoga2VlcCB0aGlz IGVycm9yIG1lc3NhZ2UgaW4gc3luYyB3aXRoIHRoZSBzYW1lIGluIF9idF9sb2FkICovCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOSVFVRV9WSU9MQVRJT04pLAor CQkJCQkJCWVycm1zZygiY291bGQgbm90IGNyZWF0ZSB1bmlxdWUgaW5kZXggXCIlc1wiIiwKKwkJ CQkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoYXJnLT5pbmRleC5pbmRleFJlbCkpLAor CQkJCQkJCWtleV9kZXNjID8gZXJyZGV0YWlsKCJLZXkgJXMgaXMgZHVwbGljYXRlZC4iLCBrZXlf ZGVzYykgOgorCQkJCQkJCWVycmRldGFpbCgiRHVwbGljYXRlIGtleXMgZXhpc3QuIiksCisJCQkJ CQkJZXJydGFibGVjb25zdHJhaW50KGFyZy0+aW5kZXguaGVhcFJlbCwKKwkJCQkJCQkJCQkJICAg UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoYXJnLT5pbmRleC5pbmRleFJlbCkpKSk7CisJCX0KIAl9 CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL25idHJlZS5oIGIvc3JjL2lu Y2x1ZGUvYWNjZXNzL25idHJlZS5oCmluZGV4IDEyM2ZiYTYyNGRiLi40MjAwZDJiZDIwZSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL25idHJlZS5oCisrKyBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9uYnRyZWUuaApAQCAtMTI5Nyw4ICsxMjk3LDEwIEBAIGV4dGVybiBib29sIGJ0cHJvcGVy dHkoT2lkIGluZGV4X29pZCwgaW50IGF0dG5vLAogZXh0ZXJuIGNoYXIgKmJ0YnVpbGRwaGFzZW5h bWUoaW50NjQgcGhhc2VudW0pOwogZXh0ZXJuIEluZGV4VHVwbGUgX2J0X3RydW5jYXRlKFJlbGF0 aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwKIAkJCQkJCQkgICBJbmRleFR1cGxlIGZpcnN0 cmlnaHQsIEJUU2Nhbkluc2VydCBpdHVwX2tleSk7CitleHRlcm4gaW50CV9idF9rZWVwX25hdHRz KFJlbGF0aW9uIHJlbCwgSW5kZXhUdXBsZSBsYXN0bGVmdCwgSW5kZXhUdXBsZSBmaXJzdHJpZ2h0 LAorCQkJCQkJICAgQlRTY2FuSW5zZXJ0IGl0dXBfa2V5LCBib29sICpoYXNudWxscyk7CiBleHRl cm4gaW50CV9idF9rZWVwX25hdHRzX2Zhc3QoUmVsYXRpb24gcmVsLCBJbmRleFR1cGxlIGxhc3Rs ZWZ0LAotCQkJCQkJCQlJbmRleFR1cGxlIGZpcnN0cmlnaHQpOworCQkJCQkJCQlJbmRleFR1cGxl IGZpcnN0cmlnaHQsIGJvb2wgKmhhc251bGxzKTsKIGV4dGVybiBib29sIF9idF9jaGVja19uYXR0 cyhSZWxhdGlvbiByZWwsIGJvb2wgaGVhcGtleXNwYWNlLCBQYWdlIHBhZ2UsCiAJCQkJCQkJT2Zm c2V0TnVtYmVyIG9mZm51bSk7CiBleHRlcm4gdm9pZCBfYnRfY2hlY2tfdGhpcmRfcGFnZShSZWxh dGlvbiByZWwsIFJlbGF0aW9uIGhlYXAsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv dGFibGVhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAppbmRleCA5ZWU1ZWExNWZk NC4uZWMzNzY5NTg1YzMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaApAQCAtMTgwMyw5ICsxODAzLDggQEAg dGFibGVfc2Nhbl9hbmFseXplX25leHRfdHVwbGUoVGFibGVTY2FuRGVzYyBzY2FuLCBUcmFuc2Fj dGlvbklkIE9sZGVzdFhtaW4sCiAgKiBUaGlzIG9ubHkgcmVhbGx5IG1ha2VzIHNlbnNlIGZvciBo ZWFwIEFNLCBpdCBtaWdodCBuZWVkIHRvIGJlIGdlbmVyYWxpemVkCiAgKiBmb3Igb3RoZXIgQU1z IGxhdGVyLgogICoKLSAqIEluIGNhc2Ugb2Ygbm9uLXVuaXF1ZSBjb25jdXJyZW50ICBpbmRleCBi dWlsZCBTT19SRVNFVF9TTkFQU0hPVCBpcyBhcHBsaWVkCi0gKiBmb3IgdGhlIHNjYW4uIFRoYXQg bGVhZHMgZm9yIGNoYW5naW5nIHNuYXBzaG90cyBvbiB0aGUgZmx5IHRvIGFsbG93IHhtaW4KLSAq IGhvcml6b24gcHJvcGFnYXRlLgorICogSW4gY2FzZSBvZiBjb25jdXJyZW50IGluZGV4IGJ1aWxk IFNPX1JFU0VUX1NOQVBTSE9UIGlzIGFwcGxpZWQgZm9yIHRoZSBzY2FuLgorICogVGhhdCBsZWFk cyBmb3IgY2hhbmdpbmcgc25hcHNob3RzIG9uIHRoZSBmbHkgdG8gYWxsb3cgeG1pbiBob3Jpem9u IHByb3BhZ2F0ZS4KICAqLwogc3RhdGljIGlubGluZSBkb3VibGUKIHRhYmxlX2luZGV4X2J1aWxk X3NjYW4oUmVsYXRpb24gdGFibGVfcmVsLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMv dHVwbGVzb3J0LmggYi9zcmMvaW5jbHVkZS91dGlscy90dXBsZXNvcnQuaAppbmRleCBjZGU4M2Y2 MjAxNS4uYWU1ZjRkMjhmZGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3R1cGxlc29y dC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3R1cGxlc29ydC5oCkBAIC00MjgsNiArNDI4LDcg QEAgZXh0ZXJuIFR1cGxlc29ydHN0YXRlICp0dXBsZXNvcnRfYmVnaW5faW5kZXhfYnRyZWUoUmVs YXRpb24gaGVhcFJlbCwKIAkJCQkJCQkJCQkJCSAgIFJlbGF0aW9uIGluZGV4UmVsLAogCQkJCQkJ CQkJCQkJICAgYm9vbCBlbmZvcmNlVW5pcXVlLAogCQkJCQkJCQkJCQkJICAgYm9vbCB1bmlxdWVO dWxsc05vdERpc3RpbmN0LAorCQkJCQkJCQkJCQkJICAgYm9vbAl1bmlxdWVEZWFkSWdub3JlZCwK IAkJCQkJCQkJCQkJCSAgIGludCB3b3JrTWVtLCBTb3J0Q29vcmRpbmF0ZSBjb29yZGluYXRlLAog CQkJCQkJCQkJCQkJICAgaW50IHNvcnRvcHQpOwogZXh0ZXJuIFR1cGxlc29ydHN0YXRlICp0dXBs ZXNvcnRfYmVnaW5faW5kZXhfaGFzaChSZWxhdGlvbiBoZWFwUmVsLApkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hv dHMub3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19y ZXNldF9zbmFwc2hvdHMub3V0CmluZGV4IDU5NWE0MDAwY2UwLi45ZjAzZmEzMDMzYyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNl dF9zbmFwc2hvdHMub3V0CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9l eHBlY3RlZC9jaWNfcmVzZXRfc25hcHNob3RzLm91dApAQCAtNDEsNyArNDEsMTEgQEAgRU5EOyAk JDsKIC0tLS0tLS0tLS0tLS0tLS0KIEFMVEVSIFRBQkxFIGNpY19yZXNldF9zbmFwLnRibCBTRVQg KHBhcmFsbGVsX3dvcmtlcnM9MCk7CiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWSBp ZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKGkpOworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBm b3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMK K05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0 X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCiBSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNf cmVzZXRfc25hcC5pZHg7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24g cG9pbnQgdGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBzaG90cworTk9USUNFOiAgbm90 aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IGhlYXBfcmVzZXRfc2Nhbl9zbmFwc2hv dF9lZmZlY3RpdmUKIERST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsK IENSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsK IE5PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdp bnNjYW5fc3RyYXRfcmVzZXRfc25hcHNob3RzCkBAIC04Niw3ICs5MCw5IEBAIFNFTEVDVCBpbmpl Y3Rpb25fcG9pbnRzX2RldGFjaCgnaGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZScp OwogKDEgcm93KQogCiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2lj X3Jlc2V0X3NuYXAudGJsKGkpOworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0 aW9uIHBvaW50IHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplCiBSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVk IGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUKIERST1Ag SU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIENSRUFURSBJTkRFWCBDT05D VVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKIE5PVElDRTogIG5vdGljZSB0 cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6 ZQotLSAKMi40My4wCgo= --00000000000024b9660629cb89c8 Content-Type: application/octet-stream; name="v7-0006-Add-STIR-Short-Term-Index-Replacement-access-meth.patch" Content-Disposition: attachment; filename="v7-0006-Add-STIR-Short-Term-Index-Replacement-access-meth.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4yh51bb5 RnJvbSBjY2FkOTVjNGMwODBkMGE3M2Q3ZTVjMTQ1OGZkZTgyNWI1NTlmOWZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAyMSBEZWMgMjAyNCAxODozNjoxMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjcgNi82 XSBBZGQgU1RJUiAoU2hvcnQtVGVybSBJbmRleCBSZXBsYWNlbWVudCkgYWNjZXNzIG1ldGhvZAoK VGhpcyBwYXRjaCBwcm92aWRlcyBmb3VuZGF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUgZm9yIHVwY29t aW5nIGVuaGFuY2VtZW50cyB0bwpjb25jdXJyZW50IGluZGV4IGJ1aWxkcyBieSBpbnRyb2R1Y2lu ZzoKCi0gKippaV9BdXhpbGlhcnkqKiBpbiBgSW5kZXhJbmZvYDogSW5kaWNhdGVzIHRoYXQgYW4g aW5kZXggaXMgYW4gYXV4aWxpYXJ5CiAgaW5kZXgsIHNwZWNpZmljYWxseSBmb3IgdXNlIGR1cmlu ZyBjb25jdXJyZW50IGluZGV4IGJ1aWxkcy4KLSAqKnZhbGlkYXRlX2luZGV4KiogaW4gYEluZGV4 VmFjdXVtSW5mb2A6IFNpZ25hbHMgd2hlbiBhIHZhY3V1bSBvciBjbGVhbnVwCiAgb3BlcmF0aW9u IGlzIHZhbGlkYXRpbmcgYSBuZXdseSBidWlsdCBpbmRleCAoZS5nLiwgZHVyaW5nIGNvbmN1cnJl bnQgYnVpbGQpLgoKQWRkaXRpb25hbGx5LCBhIG5ldyAqKlNUSVIgKFNob3J0LVRlcm0gSW5kZXgg UmVwbGFjZW1lbnQpKiogYWNjZXNzIG1ldGhvZCBpcwppbnRyb2R1Y2VkLCBpbnRlbmRlZCBzb2xl bHkgZm9yIHNob3J0LWxpdmVkLCBhdXhpbGlhcnkgdXNhZ2UuIFNUSVIgZnVuY3Rpb25zCmFzIGFu IGVwaGVtZXJhbCBoZWxwZXIgZHVyaW5nIGNvbmN1cnJlbnQgaW5kZXggYnVpbGRzLCB0ZW1wb3Jh cmlseSBzdG9yaW5nIFRJRHMKd2l0aG91dCBwcm92aWRpbmcgdGhlIGZ1bGwgZmVhdHVyZXMgb2Yg YSB0eXBpY2FsIGluZGV4LiBBcyBzdWNoLCBpdCByYWlzZXMKd2FybmluZ3Mgb3IgZXJyb3JzIHdo ZW4gYWNjZXNzZWQgb3V0c2lkZSBpdHMgc3BlY2lhbGl6ZWQgdXNhZ2UgcGF0aC4KClRoZXNlIGNo YW5nZXMgbGF5IGVzc2VudGlhbCBncm91bmR3b3JrIGZvciBmdXJ0aGVyIGltcHJvdmVtZW50cyB0 byBjb25jdXJyZW50CmluZGV4IGJ1aWxkcy4KLS0tCiBjb250cmliL3Bnc3RhdHR1cGxlL3Bnc3Rh dHR1cGxlLmMgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9NYWtlZmlsZSAgICAg ICAgICAgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAg ICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvYWNjZXNzL21lc29uLmJ1aWxkICAgICAgICAgICB8ICAg MSArCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3Rpci9NYWtlZmlsZSAgICAgICAgIHwgIDE4ICsKIHNy Yy9iYWNrZW5kL2FjY2Vzcy9zdGlyL21lc29uLmJ1aWxkICAgICAgfCAgIDUgKwogc3JjL2JhY2tl bmQvYWNjZXNzL3N0aXIvc3Rpci5jICAgICAgICAgICB8IDU3NiArKysrKysrKysrKysrKysrKysr KysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvbm9k ZXMvbWFrZWZ1bmNzLmMgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2Vu YW0uaCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy9yZWxvcHRpb25z LmggICAgICAgICAgfCAgIDMgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9zdGlyLmggICAgICAgICAg ICAgICAgfCAxMTcgKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW0uZGF0ICAgICAgICAg ICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRhdCAgICAgICB8ICAg MyArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdCAgICAgIHwgICAyICsKIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgfCAgIDQgKwogc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICB8ICAgNiArLQogc3JjL2luY2x1ZGUvdXRp bHMvaW5kZXhfc2VsZnVuY3MuaCAgICAgICB8ICAgOCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2FtdXRpbHMub3V0ICAgIHwgICA4ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29w cl9zYW5pdHkub3V0IHwgICA3ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0 ICAgICAgIHwgIDI0ICstCiAyMyBmaWxlcyBjaGFuZ2VkLCA3NzkgaW5zZXJ0aW9ucygrKSwgMTgg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvYWNjZXNzL3N0aXIv TWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9hY2Nlc3Mvc3Rpci9tZXNv bi5idWlsZAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2FjY2Vzcy9zdGlyL3N0aXIu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2FjY2Vzcy9zdGlyLmgKCmRpZmYgLS1n aXQgYS9jb250cmliL3Bnc3RhdHR1cGxlL3Bnc3RhdHR1cGxlLmMgYi9jb250cmliL3Bnc3RhdHR1 cGxlL3Bnc3RhdHR1cGxlLmMKaW5kZXggZmY3Y2MwN2RmOTkuLjAwN2VmYzRlZDBjIDEwMDY0NAot LS0gYS9jb250cmliL3Bnc3RhdHR1cGxlL3Bnc3RhdHR1cGxlLmMKKysrIGIvY29udHJpYi9wZ3N0 YXR0dXBsZS9wZ3N0YXR0dXBsZS5jCkBAIC0yODIsNiArMjgyLDkgQEAgcGdzdGF0X3JlbGF0aW9u KFJlbGF0aW9uIHJlbCwgRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8pCiAJCQljYXNlIFNQR0lTVF9B TV9PSUQ6CiAJCQkJZXJyID0gInNwZ2lzdCBpbmRleCI7CiAJCQkJYnJlYWs7CisJCQljYXNlIFNU SVJfQU1fT0lEOgorCQkJCWVyciA9ICJzdGlyIGluZGV4IjsKKwkJCQlicmVhazsKIAkJCWNhc2Ug QlJJTl9BTV9PSUQ6CiAJCQkJZXJyID0gImJyaW4gaW5kZXgiOwogCQkJCWJyZWFrOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvYWNjZXNzL01h a2VmaWxlCmluZGV4IDE5MzJkMTFkMTU0Li5jZDY1MjRhNTRhYiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9NYWtlZmlsZQpA QCAtOSw2ICs5LDYgQEAgdG9wX2J1aWxkZGlyID0gLi4vLi4vLi4KIGluY2x1ZGUgJCh0b3BfYnVp bGRkaXIpL3NyYy9NYWtlZmlsZS5nbG9iYWwKIAogU1VCRElSUwkgICAgPSBicmluIGNvbW1vbiBn aW4gZ2lzdCBoYXNoIGhlYXAgaW5kZXggbmJ0cmVlIHJtZ3JkZXNjIHNwZ2lzdCBcCi0JCQkgIHNl cXVlbmNlIHRhYmxlIHRhYmxlc2FtcGxlIHRyYW5zYW0KKwkJCSAgc3RpciBzZXF1ZW5jZSB0YWJs ZSB0YWJsZXNhbXBsZSB0cmFuc2FtCiAKIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9zcmMvYmFja2Vu ZC9jb21tb24ubWsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBmMmNhOTQz MDU4MS4uYmVjNzliNDhjYjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAg LTI1MzgsNiArMjUzOCw3IEBAIGxhenlfdmFjdXVtX29uZV9pbmRleChSZWxhdGlvbiBpbmRyZWws IEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqaXN0YXQsCiAJaXZpbmZvLm1lc3NhZ2VfbGV2ZWwgPSBE RUJVRzI7CiAJaXZpbmZvLm51bV9oZWFwX3R1cGxlcyA9IHJlbHR1cGxlczsKIAlpdmluZm8uc3Ry YXRlZ3kgPSB2YWNyZWwtPmJzdHJhdGVneTsKKwlpdmluZm8udmFsaWRhdGVfaW5kZXggPSBmYWxz ZTsKIAogCS8qCiAJICogVXBkYXRlIGVycm9yIHRyYWNlYmFjayBpbmZvcm1hdGlvbi4KQEAgLTI1 ODksNiArMjU5MCw3IEBAIGxhenlfY2xlYW51cF9vbmVfaW5kZXgoUmVsYXRpb24gaW5kcmVsLCBJ bmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAogCiAJaXZpbmZvLm51bV9oZWFwX3R1cGxlcyA9 IHJlbHR1cGxlczsKIAlpdmluZm8uc3RyYXRlZ3kgPSB2YWNyZWwtPmJzdHJhdGVneTsKKwlpdmlu Zm8udmFsaWRhdGVfaW5kZXggPSBmYWxzZTsKIAogCS8qCiAJICogVXBkYXRlIGVycm9yIHRyYWNl YmFjayBpbmZvcm1hdGlvbi4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9tZXNvbi5i dWlsZCBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9tZXNvbi5idWlsZAppbmRleCA2MmEzNzFkYjdmNy4u NjNlZTBlZjEzNGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9tZXNvbi5idWlsZAor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbWVzb24uYnVpbGQKQEAgLTExLDYgKzExLDcgQEAgc3Vi ZGlyKCduYnRyZWUnKQogc3ViZGlyKCdybWdyZGVzYycpCiBzdWJkaXIoJ3NlcXVlbmNlJykKIHN1 YmRpcignc3BnaXN0JykKK3N1YmRpcignc3RpcicpCiBzdWJkaXIoJ3RhYmxlJykKIHN1YmRpcign dGFibGVzYW1wbGUnKQogc3ViZGlyKCd0cmFuc2FtJykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9zdGlyL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3N0aXIvTWFrZWZpbGUK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZhZTU4OThiOGQ3Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3N0aXIvTWFrZWZpbGUKQEAgLTAsMCAr MSwxOCBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMKKyMgTWFrZWZpbGUtLQorIyAgICBNYWtlZmls ZSBmb3IgYWNjZXNzL3N0aXIKKyMKKyMgSURFTlRJRklDQVRJT04KKyMgICAgc3JjL2JhY2tlbmQv YWNjZXNzL3N0aXIvTWFrZWZpbGUKKyMKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3N1YmRpciA9IHNy Yy9iYWNrZW5kL2FjY2Vzcy9zdGlyCit0b3BfYnVpbGRkaXIgPSAuLi8uLi8uLi8uLgoraW5jbHVk ZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbAorCitPQkpTID0gXAorCXN0aXIu bworCitpbmNsdWRlICQodG9wX3NyY2Rpcikvc3JjL2JhY2tlbmQvY29tbW9uLm1rClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3N0aXIv bWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3Rpci9tZXNvbi5idWlsZApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzljNmVjYTg0OGQKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3Rpci9tZXNvbi5idWlsZApAQCAtMCwwICsxLDUg QEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorCitiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCisJJ3N0aXIuYycsCispClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3N0aXIv c3Rpci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3N0aXIvc3Rpci5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44M2FhMjU1MTc2ZgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9zdGlyL3N0aXIuYwpAQCAtMCwwICsxLDU3NiBAQAorLyotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKgorICogc3Rpci5jCisgKgkgIEltcGxlbWVudGF0aW9uIG9mIFNob3J0LVRl cm0gSW5kZXggUmVwbGFjZW1lbnQuCisgKgorICogU1RJUiBpcyBhIHNwZWNpYWxpemVkIGFjY2Vz cyBtZXRob2QgdHlwZSBkZXNpZ25lZCBmb3IgdGVtcG9yYXJ5IHN0b3JhZ2UKKyAqIG9mIFRJRCB2 YWx1ZXMgZHVyaW5nIGNvbmN1cmVybnQgaW5kZXggYnVpbGQgb3BlcmF0aW9ucy4KKyAqCisgKiBU aGUgdHlwaWNhbCBsaWZlY3ljbGUgb2YgYSBTVElSIGluZGV4IGlzOgorICogMS4gY3JlYXRlZCBh cyBhbiBhdXhpbGlhcnkgaW5kZXggZm9yIENJQy9SSUMKKyAqIDIuIGFjY2VwdHMgaW5zZXJ0cyBm b3IgYSBwZXJpb2QKKyAqIDMuIHN0aXJidWxrZGVsZXRlIGNhbGxlZCBkdXJpbmcgaW5kZXggdmFs aWRhdGlvbiBwaGFzZQorICogNS4gZ2V0cyBkcm9wcGVkCisgKgorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAq IElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2FjY2Vzcy9zdGlyL3N0aXIuYworICoK KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1 ZGUgImFjY2Vzcy9zdGlyLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvdmFjdXVtLmgiCisjaW5jbHVk ZSAidXRpbHMvaW5kZXhfc2VsZnVuY3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX29wY2xhc3Mu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX29wZmFtaWx5LmgiCisjaW5jbHVkZSAidXRpbHMvY2F0 Y2FjaGUuaCIKKyNpbmNsdWRlICJhY2Nlc3MvYW12YWxpZGF0ZS5oIgorI2luY2x1ZGUgInV0aWxz L3N5c2NhY2hlLmgiCisjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfYW1wcm9jLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9pbmRleC5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfYW1vcC5oIgorI2luY2x1ZGUgInV0aWxzL3JlZ3Byb2MuaCIKKyNpbmNs dWRlICJzdG9yYWdlL2J1Zm1nci5oIgorI2luY2x1ZGUgImFjY2Vzcy90YWJsZWFtLmgiCisjaW5j bHVkZSAiYWNjZXNzL3JlbG9wdGlvbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgor I2luY2x1ZGUgInV0aWxzL2ZtZ3Jwcm90b3MuaCIKKworLyoKKyAqIFN0aXIgaGFuZGxlciBmdW5j dGlvbjogcmV0dXJuIEluZGV4QW1Sb3V0aW5lIHdpdGggYWNjZXNzIG1ldGhvZCBwYXJhbWV0ZXJz CisgKiBhbmQgY2FsbGJhY2tzLgorICovCitEYXR1bQorc3RpcmhhbmRsZXIoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwlJbmRleEFtUm91dGluZSAqYW1yb3V0aW5lID0gbWFrZU5vZGUoSW5kZXhBbVJv dXRpbmUpOworCisJLyogU2V0IFNUSVItc3BlY2lmaWMgc3RyYXRlZ3kgYW5kIHByb2NlZHVyZSBu dW1iZXJzICovCisJYW1yb3V0aW5lLT5hbXN0cmF0ZWdpZXMgPSBTVElSX05TVFJBVEVHSUVTOwor CWFtcm91dGluZS0+YW1zdXBwb3J0ID0gU1RJUl9OUFJPQzsKKwlhbXJvdXRpbmUtPmFtb3B0c3By b2NudW0gPSBTVElSX09QVElPTlNfUFJPQzsKKworCS8qIFNUSVIgZG9lc24ndCBzdXBwb3J0IG1v c3QgaW5kZXggb3BlcmF0aW9ucyAqLworCWFtcm91dGluZS0+YW1jYW5vcmRlciA9IGZhbHNlOwor CWFtcm91dGluZS0+YW1jYW5vcmRlcmJ5b3AgPSBmYWxzZTsKKwlhbXJvdXRpbmUtPmFtY2FuYmFj a3dhcmQgPSBmYWxzZTsKKwlhbXJvdXRpbmUtPmFtY2FudW5pcXVlID0gZmFsc2U7CisJYW1yb3V0 aW5lLT5hbWNhbm11bHRpY29sID0gdHJ1ZTsKKwlhbXJvdXRpbmUtPmFtb3B0aW9uYWxrZXkgPSB0 cnVlOworCWFtcm91dGluZS0+YW1zZWFyY2hhcnJheSA9IGZhbHNlOworCWFtcm91dGluZS0+YW1z ZWFyY2hudWxscyA9IGZhbHNlOworCWFtcm91dGluZS0+YW1zdG9yYWdlID0gZmFsc2U7CisJYW1y b3V0aW5lLT5hbWNsdXN0ZXJhYmxlID0gZmFsc2U7CisJYW1yb3V0aW5lLT5hbXByZWRsb2NrcyA9 IGZhbHNlOworCWFtcm91dGluZS0+YW1jYW5wYXJhbGxlbCA9IGZhbHNlOworCWFtcm91dGluZS0+ YW1jYW5idWlsZHBhcmFsbGVsID0gZmFsc2U7CisJYW1yb3V0aW5lLT5hbWNhbmluY2x1ZGUgPSB0 cnVlOworCWFtcm91dGluZS0+YW11c2VtYWludGVuYW5jZXdvcmttZW0gPSBmYWxzZTsKKwlhbXJv dXRpbmUtPmFtcGFyYWxsZWx2YWN1dW1vcHRpb25zID0KKwkJCVZBQ1VVTV9PUFRJT05fUEFSQUxM RUxfQlVMS0RFTCB8IFZBQ1VVTV9PUFRJT05fUEFSQUxMRUxfQ0xFQU5VUDsKKwlhbXJvdXRpbmUt PmFta2V5dHlwZSA9IEludmFsaWRPaWQ7CisKKwkvKiBTZXQgdXAgZnVuY3Rpb24gY2FsbGJhY2tz ICovCisJYW1yb3V0aW5lLT5hbWJ1aWxkID0gc3RpcmJ1aWxkOworCWFtcm91dGluZS0+YW1idWls ZGVtcHR5ID0gc3RpcmJ1aWxkZW1wdHk7CisJYW1yb3V0aW5lLT5hbWluc2VydCA9IHN0aXJpbnNl cnQ7CisJYW1yb3V0aW5lLT5hbWluc2VydGNsZWFudXAgPSBOVUxMOworCWFtcm91dGluZS0+YW1i dWxrZGVsZXRlID0gc3RpcmJ1bGtkZWxldGU7CisJYW1yb3V0aW5lLT5hbXZhY3V1bWNsZWFudXAg PSBzdGlydmFjdXVtY2xlYW51cDsKKwlhbXJvdXRpbmUtPmFtY2FucmV0dXJuID0gTlVMTDsKKwlh bXJvdXRpbmUtPmFtY29zdGVzdGltYXRlID0gc3RpcmNvc3Rlc3RpbWF0ZTsKKwlhbXJvdXRpbmUt PmFtb3B0aW9ucyA9IHN0aXJvcHRpb25zOworCWFtcm91dGluZS0+YW1wcm9wZXJ0eSA9IE5VTEw7 CisJYW1yb3V0aW5lLT5hbWJ1aWxkcGhhc2VuYW1lID0gTlVMTDsKKwlhbXJvdXRpbmUtPmFtdmFs aWRhdGUgPSBzdGlydmFsaWRhdGU7CisJYW1yb3V0aW5lLT5hbWFkanVzdG1lbWJlcnMgPSBOVUxM OworCWFtcm91dGluZS0+YW1iZWdpbnNjYW4gPSBzdGlyYmVnaW5zY2FuOworCWFtcm91dGluZS0+ YW1yZXNjYW4gPSBzdGlycmVzY2FuOworCWFtcm91dGluZS0+YW1nZXR0dXBsZSA9IE5VTEw7CisJ YW1yb3V0aW5lLT5hbWdldGJpdG1hcCA9IE5VTEw7CisJYW1yb3V0aW5lLT5hbWVuZHNjYW4gPSBz dGlyZW5kc2NhbjsKKwlhbXJvdXRpbmUtPmFtbWFya3BvcyA9IE5VTEw7CisJYW1yb3V0aW5lLT5h bXJlc3RycG9zID0gTlVMTDsKKwlhbXJvdXRpbmUtPmFtZXN0aW1hdGVwYXJhbGxlbHNjYW4gPSBO VUxMOworCWFtcm91dGluZS0+YW1pbml0cGFyYWxsZWxzY2FuID0gTlVMTDsKKwlhbXJvdXRpbmUt PmFtcGFyYWxsZWxyZXNjYW4gPSBOVUxMOworCisJUEdfUkVUVVJOX1BPSU5URVIoYW1yb3V0aW5l KTsKK30KKworLyoKKyAqIFZhbGlkYXRlcyBvcGVyYXRvciBjbGFzcyBmb3IgU1RJUiBpbmRleC4K KyAqCisgKiBTVElSIGlzIG5vdCBhbiByZWFsIGluZGV4LCBzbyB2YWxpZGF0aW8gbWF5IGJlIHNr aXBwZWQuCisgKiBCdXQgd2UgZG8gaXQganVzdCBmb3IgY29uc2lzdGVuY3kuCisgKi8KK2Jvb2wK K3N0aXJ2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKK3sKKwlib29sIHJlc3VsdCA9IHRydWU7CisJ SGVhcFR1cGxlIGNsYXNzdHVwOworCUZvcm1fcGdfb3BjbGFzcyBjbGFzc2Zvcm07CisJT2lkIG9w ZmFtaWx5b2lkOworCUhlYXBUdXBsZSBmYW1pbHl0dXA7CisJRm9ybV9wZ19vcGZhbWlseSBmYW1p bHlmb3JtOworCWNoYXIgKm9wZmFtaWx5bmFtZTsKKwlDYXRDTGlzdCAqcHJvY2xpc3QsCisJCQkq b3BybGlzdDsKKwlpbnQgaTsKKworCS8qIEZldGNoIG9wY2xhc3MgaW5mb3JtYXRpb24gKi8KKwlj bGFzc3R1cCA9IFNlYXJjaFN5c0NhY2hlMShDTEFPSUQsIE9iamVjdElkR2V0RGF0dW0ob3BjbGFz c29pZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZChjbGFzc3R1cCkpCisJCWVsb2coRVJST1Is ICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBvcGVyYXRvciBjbGFzcyAldSIsIG9wY2xhc3NvaWQp OworCWNsYXNzZm9ybSA9IChGb3JtX3BnX29wY2xhc3MpIEdFVFNUUlVDVChjbGFzc3R1cCk7CisK KwlvcGZhbWlseW9pZCA9IGNsYXNzZm9ybS0+b3BjZmFtaWx5OworCisKKwkvKiBGZXRjaCBvcGZh bWlseSBpbmZvcm1hdGlvbiAqLworCWZhbWlseXR1cCA9IFNlYXJjaFN5c0NhY2hlMShPUEZBTUlM WU9JRCwgT2JqZWN0SWRHZXREYXR1bShvcGZhbWlseW9pZCkpOworCWlmICghSGVhcFR1cGxlSXNW YWxpZChmYW1pbHl0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig b3BlcmF0b3IgZmFtaWx5ICV1Iiwgb3BmYW1pbHlvaWQpOworCWZhbWlseWZvcm0gPSAoRm9ybV9w Z19vcGZhbWlseSkgR0VUU1RSVUNUKGZhbWlseXR1cCk7CisKKwlvcGZhbWlseW5hbWUgPSBOYW1l U3RyKGZhbWlseWZvcm0tPm9wZm5hbWUpOworCisJLyogRmV0Y2ggYWxsIG9wZXJhdG9ycyBhbmQg c3VwcG9ydCBmdW5jdGlvbnMgb2YgdGhlIG9wZmFtaWx5ICovCisJb3BybGlzdCA9IFNlYXJjaFN5 c0NhY2hlTGlzdDEoQU1PUFNUUkFURUdZLCBPYmplY3RJZEdldERhdHVtKG9wZmFtaWx5b2lkKSk7 CisJcHJvY2xpc3QgPSBTZWFyY2hTeXNDYWNoZUxpc3QxKEFNUFJPQ05VTSwgT2JqZWN0SWRHZXRE YXR1bShvcGZhbWlseW9pZCkpOworCisJLyogQ2hlY2sgaW5kaXZpZHVhbCBvcGVyYXRvcnMgKi8K Kwlmb3IgKGkgPSAwOyBpIDwgb3BybGlzdC0+bl9tZW1iZXJzOyBpKyspCisJeworCQlIZWFwVHVw bGUgb3BydHVwID0gJm9wcmxpc3QtPm1lbWJlcnNbaV0tPnR1cGxlOworCQlGb3JtX3BnX2Ftb3Ag b3ByZm9ybSA9IChGb3JtX3BnX2Ftb3ApIEdFVFNUUlVDVChvcHJ0dXApOworCisJCS8qIENoZWNr IGl0J3MgYWxsb3dlZCBzdHJhdGVneSBmb3Igc3RpciAqLworCQlpZiAob3ByZm9ybS0+YW1vcHN0 cmF0ZWd5IDwgMSB8fAorCQkJb3ByZm9ybS0+YW1vcHN0cmF0ZWd5ID4gU1RJUl9OU1RSQVRFR0lF UykKKwkJeworCQkJZXJlcG9ydChJTkZPLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURf T0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJCWVycm1zZygic3RpciBvcGZhbWlseSAlcyBjb250 YWlucyBvcGVyYXRvciAlcyB3aXRoIGludmFsaWQgc3RyYXRlZ3kgbnVtYmVyICVkIiwKKwkJCQkJ CQkJICAgb3BmYW1pbHluYW1lLAorCQkJCQkJCQkgICBmb3JtYXRfb3BlcmF0b3Iob3ByZm9ybS0+ YW1vcG9wciksCisJCQkJCQkJCSAgIG9wcmZvcm0tPmFtb3BzdHJhdGVneSkpKTsKKwkJCXJlc3Vs dCA9IGZhbHNlOworCQl9CisKKwkJLyogc3RpciBkb2Vzbid0IHN1cHBvcnQgT1JERVIgQlkgb3Bl cmF0b3JzICovCisJCWlmIChvcHJmb3JtLT5hbW9wcHVycG9zZSAhPSBBTU9QX1NFQVJDSCB8fAor CQkJT2lkSXNWYWxpZChvcHJmb3JtLT5hbW9wc29ydGZhbWlseSkpCisJCXsKKwkJCWVyZXBvcnQo SU5GTywKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwK KwkJCQkJCQllcnJtc2coInN0aXIgb3BmYW1pbHkgJXMgY29udGFpbnMgaW52YWxpZCBPUkRFUiBC WSBzcGVjaWZpY2F0aW9uIGZvciBvcGVyYXRvciAlcyIsCisJCQkJCQkJCSAgIG9wZmFtaWx5bmFt ZSwKKwkJCQkJCQkJICAgZm9ybWF0X29wZXJhdG9yKG9wcmZvcm0tPmFtb3BvcHIpKSkpOworCQkJ cmVzdWx0ID0gZmFsc2U7CisJCX0KKworCQkvKiBDaGVjayBvcGVyYXRvciBzaWduYXR1cmUgLS0t IHNhbWUgZm9yIGFsbCBzdGlyIHN0cmF0ZWdpZXMgKi8KKwkJaWYgKCFjaGVja19hbW9wX3NpZ25h dHVyZShvcHJmb3JtLT5hbW9wb3ByLCBCT09MT0lELAorCQkJCQkJCQkgIG9wcmZvcm0tPmFtb3Bs ZWZ0dHlwZSwKKwkJCQkJCQkJICBvcHJmb3JtLT5hbW9wcmlnaHR0eXBlKSkKKwkJeworCQkJZXJl cG9ydChJTkZPLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJ T04pLAorCQkJCQkJCWVycm1zZygic3RpciBvcGZhbWlseSAlcyBjb250YWlucyBvcGVyYXRvciAl cyB3aXRoIHdyb25nIHNpZ25hdHVyZSIsCisJCQkJCQkJCSAgIG9wZmFtaWx5bmFtZSwKKwkJCQkJ CQkJICAgZm9ybWF0X29wZXJhdG9yKG9wcmZvcm0tPmFtb3BvcHIpKSkpOworCQkJcmVzdWx0ID0g ZmFsc2U7CisJCX0KKwl9CisKKworCVJlbGVhc2VDYXRDYWNoZUxpc3QocHJvY2xpc3QpOworCVJl bGVhc2VDYXRDYWNoZUxpc3Qob3BybGlzdCk7CisJUmVsZWFzZVN5c0NhY2hlKGZhbWlseXR1cCk7 CisJUmVsZWFzZVN5c0NhY2hlKGNsYXNzdHVwKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKKwor LyoKKyAqIEluaXRpYWxpemUgbWV0YXBhZ2Ugb2YgYSBTVElSIGluZGV4LgorICogVGhlIHNraXBJ bnNlcnRzIGZsYWcgZGV0ZXJtaW5lcyBpZiBuZXcgaW5zZXJ0cyB3aWxsIGJlIGFjY2VwdGVkIG9y IHNraXBwZWQuCisgKi8KK3ZvaWQKK1N0aXJGaWxsTWV0YXBhZ2UoUmVsYXRpb24gaW5kZXgsIFBh Z2UgbWV0YVBhZ2UsIGJvb2wgc2tpcEluc2VydHMpCit7CisJU3Rpck1ldGFQYWdlRGF0YSAqbWV0 YWRhdGE7CisKKwlTdGlySW5pdFBhZ2UobWV0YVBhZ2UsIFNUSVJfTUVUQSk7CisJbWV0YWRhdGEg PSBTdGlyUGFnZUdldE1ldGEobWV0YVBhZ2UpOworCW1lbXNldChtZXRhZGF0YSwgMCwgc2l6ZW9m KFN0aXJNZXRhUGFnZURhdGEpKTsKKwltZXRhZGF0YS0+bWFnaWNrTnVtYmVyID0gU1RJUl9NQUdJ Q0tfTlVNQkVSOworCW1ldGFkYXRhLT5za2lwSW5zZXJ0cyA9IHNraXBJbnNlcnRzOworCSgoUGFn ZUhlYWRlcikgbWV0YVBhZ2UpLT5wZF9sb3dlciArPSBzaXplb2YoU3Rpck1ldGFQYWdlRGF0YSk7 Cit9CisKKy8qCisgKiBDcmVhdGUgYW5kIGluaXRpYWxpemUgdGhlIG1ldGFwYWdlIGZvciBhIFNU SVIgaW5kZXguCisgKiBUaGlzIGlzIGNhbGxlZCBkdXJpbmcgaW5kZXggY3JlYXRpb24uCisgKi8K K3ZvaWQKK1N0aXJJbml0TWV0YXBhZ2UoUmVsYXRpb24gaW5kZXgsIEZvcmtOdW1iZXIgZm9ya251 bSkKK3sKKwlCdWZmZXIgbWV0YUJ1ZmZlcjsKKwlQYWdlIG1ldGFQYWdlOworCUdlbmVyaWNYTG9n U3RhdGUgKnN0YXRlOworCisJLyoKKwkgKiBNYWtlIGEgbmV3IHBhZ2U7IHNpbmNlIGl0IGlzIGZp cnN0IHBhZ2UgaXQgc2hvdWxkIGJlIGFzc29jaWF0ZWQgd2l0aAorCSAqIGJsb2NrIG51bWJlciAw IChTVElSX01FVEFQQUdFX0JMS05PKS4gIE5vIG5lZWQgdG8gaG9sZCB0aGUgZXh0ZW5zaW9uCisJ ICogbG9jayBiZWNhdXNlIHRoZXJlIGNhbm5vdCBiZSBjb25jdXJyZW50IGluc2VydGVycyB5ZXQu CisJICovCisJbWV0YUJ1ZmZlciA9IFJlYWRCdWZmZXJFeHRlbmRlZChpbmRleCwgZm9ya251bSwg UF9ORVcsIFJCTV9OT1JNQUwsIE5VTEwpOworCUxvY2tCdWZmZXIobWV0YUJ1ZmZlciwgQlVGRkVS X0xPQ0tfRVhDTFVTSVZFKTsKKwlBc3NlcnQoQnVmZmVyR2V0QmxvY2tOdW1iZXIobWV0YUJ1ZmZl cikgPT0gU1RJUl9NRVRBUEFHRV9CTEtOTyk7CisKKwkvKiBJbml0aWFsaXplIGNvbnRlbnRzIG9m IG1ldGEgcGFnZSAqLworCXN0YXRlID0gR2VuZXJpY1hMb2dTdGFydChpbmRleCk7CisJbWV0YVBh Z2UgPSBHZW5lcmljWExvZ1JlZ2lzdGVyQnVmZmVyKHN0YXRlLCBtZXRhQnVmZmVyLAorCQkJCQkJ CQkJCSBHRU5FUklDX1hMT0dfRlVMTF9JTUFHRSk7CisJU3RpckZpbGxNZXRhcGFnZShpbmRleCwg bWV0YVBhZ2UsIGZvcmtudW0gPT0gSU5JVF9GT1JLTlVNKTsKKwlHZW5lcmljWExvZ0ZpbmlzaChz dGF0ZSk7CisKKwlVbmxvY2tSZWxlYXNlQnVmZmVyKG1ldGFCdWZmZXIpOworfQorCisvKgorICog SW5pdGlhbGl6ZSBhbnkgcGFnZSBvZiBhIHN0aXIgaW5kZXguCisgKi8KK3ZvaWQKK1N0aXJJbml0 UGFnZShQYWdlIHBhZ2UsIHVpbnQxNiBmbGFncykKK3sKKwlTdGlyUGFnZU9wYXF1ZSBvcGFxdWU7 CisKKwlQYWdlSW5pdChwYWdlLCBCTENLU1osIHNpemVvZihTdGlyUGFnZU9wYXF1ZURhdGEpKTsK KworCW9wYXF1ZSA9IFN0aXJQYWdlR2V0T3BhcXVlKHBhZ2UpOworCW9wYXF1ZS0+ZmxhZ3MgPSBm bGFnczsKKwlvcGFxdWUtPnN0aXJfcGFnZV9pZCA9IFNUSVJfUEFHRV9JRDsKK30KKworLyoKKyAq IEFkZCBhIHR1cGxlIHRvIGEgU1RJUiBwYWdlLiBSZXR1cm5zIGZhbHNlIGlmIHR1cGxlIGRvZXNu J3QgZml0LgorICogVGhlIHR1cGxlIGlzIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIHBhZ2UuCisg Ki8KK3N0YXRpYyBib29sCitTdGlyUGFnZUFkZEl0ZW0oUGFnZSBwYWdlLCBTdGlyVHVwbGUgKnR1 cGxlKQoreworCVN0aXJUdXBsZSAqaXR1cDsKKwlTdGlyUGFnZU9wYXF1ZSBvcGFxdWU7CisJUG9p bnRlciBwdHI7CisKKwkvKiBXZSBzaG91bGRuJ3QgYmUgcG9pbnRlZCB0byBhbiBpbnZhbGlkIHBh Z2UgKi8KKwlBc3NlcnQoIVBhZ2VJc05ldyhwYWdlKSk7CisKKwkvKiBEb2VzIG5ldyB0dXBsZSBm aXQgb24gdGhlIHBhZ2U/ICovCisJaWYgKFN0aXJQYWdlR2V0RnJlZVNwYWNlKHN0YXRlLCBwYWdl KSA8IHNpemVvZihTdGlyVHVwbGUpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBDb3B5IG5ldyB0 dXBsZSB0byB0aGUgZW5kIG9mIHBhZ2UgKi8KKwlvcGFxdWUgPSBTdGlyUGFnZUdldE9wYXF1ZShw YWdlKTsKKwlpdHVwID0gU3RpclBhZ2VHZXRUdXBsZShwYWdlLCBvcGFxdWUtPm1heG9mZiArIDEp OworCW1lbWNweSgoUG9pbnRlcikgaXR1cCwgKFBvaW50ZXIpIHR1cGxlLCBzaXplb2YoU3RpclR1 cGxlKSk7CisKKwkvKiBBZGp1c3QgbWF4b2ZmIGFuZCBwZF9sb3dlciAqLworCW9wYXF1ZS0+bWF4 b2ZmKys7CisJcHRyID0gKFBvaW50ZXIpIFN0aXJQYWdlR2V0VHVwbGUocGFnZSwgb3BhcXVlLT5t YXhvZmYgKyAxKTsKKwkoKFBhZ2VIZWFkZXIpIHBhZ2UpLT5wZF9sb3dlciA9IHB0ciAtIHBhZ2U7 CisKKwkvKiBBc3NlcnQgd2UgZGlkbid0IG92ZXJydW4gYXZhaWxhYmxlIHNwYWNlICovCisJQXNz ZXJ0KCgoUGFnZUhlYWRlcikgcGFnZSktPnBkX2xvd2VyIDw9ICgoUGFnZUhlYWRlcikgcGFnZSkt PnBkX3VwcGVyKTsKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIEluc2VydCBhIG5ldyB0dXBs ZSBpbnRvIGEgU1RJUiBpbmRleC4KKyAqLworYm9vbAorc3Rpcmluc2VydChSZWxhdGlvbiBpbmRl eCwgRGF0dW0gKnZhbHVlcywgYm9vbCAqaXNudWxsLAorCQkgIEl0ZW1Qb2ludGVyIGh0X2N0aWQs IFJlbGF0aW9uIGhlYXBSZWwsCisJCSAgSW5kZXhVbmlxdWVDaGVjayBjaGVja1VuaXF1ZSwKKwkJ ICBib29sIGluZGV4VW5jaGFuZ2VkLAorCQkgIHN0cnVjdCBJbmRleEluZm8gKmluZGV4SW5mbykK K3sKKwlTdGlyVHVwbGUgKml0dXA7CisJTWVtb3J5Q29udGV4dCBvbGRDdHg7CisJTWVtb3J5Q29u dGV4dCBpbnNlcnRDdHg7CisJU3Rpck1ldGFQYWdlRGF0YSAqbWV0YURhdGE7CisJQnVmZmVyIGJ1 ZmZlciwKKwkJCW1ldGFCdWZmZXI7CisJUGFnZSBwYWdlOworCUdlbmVyaWNYTG9nU3RhdGUgKnN0 YXRlOworCXVpbnQxNiBibGtObzsKKworCS8qIENyZWF0ZSB0ZW1wb3JhcnkgY29udGV4dCBmb3Ig aW5zZXJ0IG9wZXJhdGlvbiAqLworCWluc2VydEN0eCA9IEFsbG9jU2V0Q29udGV4dENyZWF0ZShD dXJyZW50TWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJCSAgIlN0aXIgaW5zZXJ0IHRlbXBvcmFyeSBj b250ZXh0IiwKKwkJCQkJCQkJCSAgQUxMT0NTRVRfREVGQVVMVF9TSVpFUyk7CisKKwlvbGRDdHgg PSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oaW5zZXJ0Q3R4KTsKKworCS8qIENyZWF0ZSBuZXcgdHVw bGUgd2l0aCBoZWFwIHBvaW50ZXIgKi8KKwlpdHVwID0gKFN0aXJUdXBsZSAqKSBwYWxsb2MwKHNp emVvZihTdGlyVHVwbGUpKTsKKwlpdHVwLT5oZWFwUHRyID0gKmh0X2N0aWQ7CisKKwltZXRhQnVm ZmVyID0gUmVhZEJ1ZmZlcihpbmRleCwgU1RJUl9NRVRBUEFHRV9CTEtOTyk7CisKKwlmb3IgKDs7 KQorCXsKKwkJTG9ja0J1ZmZlcihtZXRhQnVmZmVyLCBCVUZGRVJfTE9DS19TSEFSRSk7CisJCW1l dGFEYXRhID0gU3RpclBhZ2VHZXRNZXRhKEJ1ZmZlckdldFBhZ2UobWV0YUJ1ZmZlcikpOworCQkv KiBDaGVjayBpZiBpbnNlcnRzIGFyZSBhbGxvd2VkICovCisJCWlmIChtZXRhRGF0YS0+c2tpcElu c2VydHMpCisJCXsKKwkJCVVubG9ja1JlbGVhc2VCdWZmZXIobWV0YUJ1ZmZlcik7CisJCQlyZXR1 cm4gZmFsc2U7CisJCX0KKwkJYmxrTm8gPSBtZXRhRGF0YS0+bGFzdEJsa05vOworCQkvKiBEb24n dCBob2xkIG1ldGFidWZmZXIgbG9jayB3aGlsZSBkb2luZyBpbnNlcnQgKi8KKwkJTG9ja0J1ZmZl cihtZXRhQnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCisJCWlmIChibGtObyA+IDApCisJ CXsKKwkJCWJ1ZmZlciA9IFJlYWRCdWZmZXIoaW5kZXgsIGJsa05vKTsKKwkJCUxvY2tCdWZmZXIo YnVmZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOworCisJCQlzdGF0ZSA9IEdlbmVyaWNYTG9n U3RhcnQoaW5kZXgpOworCQkJcGFnZSA9IEdlbmVyaWNYTG9nUmVnaXN0ZXJCdWZmZXIoc3RhdGUs IGJ1ZmZlciwgMCk7CisKKwkJCUFzc2VydCghUGFnZUlzTmV3KHBhZ2UpKTsKKworCQkJLyogVHJ5 IHRvIGFkZCB0dXBsZSB0byBleGlzdGluZyBwYWdlICovCisJCQlpZiAoU3RpclBhZ2VBZGRJdGVt KHBhZ2UsIGl0dXApKQorCQkJeworCQkJCS8qIFN1Y2Nlc3MhICBBcHBseSB0aGUgY2hhbmdlLCBj bGVhbiB1cCwgYW5kIGV4aXQgKi8KKwkJCQlHZW5lcmljWExvZ0ZpbmlzaChzdGF0ZSk7CisJCQkJ VW5sb2NrUmVsZWFzZUJ1ZmZlcihidWZmZXIpOworCQkJCVJlbGVhc2VCdWZmZXIobWV0YUJ1ZmZl cik7CisJCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZEN0eCk7CisJCQkJTWVtb3J5Q29udGV4 dERlbGV0ZShpbnNlcnRDdHgpOworCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KKworCQkJLyogRGlk bid0IGZpdCwgbXVzdCB0cnkgb3RoZXIgcGFnZXMgKi8KKwkJCUdlbmVyaWNYTG9nQWJvcnQoc3Rh dGUpOworCQkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihidWZmZXIpOworCQl9CisKKwkJLyogTmVlZCB0 byBhZGQgbmV3IHBhZ2UgLSBnZXQgZXhjbHVzaXZlIGxvY2sgb24gbWV0YSBwYWdlICovCisJCUxv Y2tCdWZmZXIobWV0YUJ1ZmZlciwgQlVGRkVSX0xPQ0tfRVhDTFVTSVZFKTsKKworCQlzdGF0ZSA9 IEdlbmVyaWNYTG9nU3RhcnQoaW5kZXgpOworCQltZXRhRGF0YSA9IFN0aXJQYWdlR2V0TWV0YShH ZW5lcmljWExvZ1JlZ2lzdGVyQnVmZmVyKHN0YXRlLCBtZXRhQnVmZmVyLCBHRU5FUklDX1hMT0df RlVMTF9JTUFHRSkpOworCQkvKiBDaGVjayBpZiBhbm90aGVyIGJhY2tlbmQgYWxyZWFkeSBleHRl bmRlZCB0aGUgaW5kZXggKi8KKworCQlpZiAoYmxrTm8gIT0gbWV0YURhdGEtPmxhc3RCbGtObykK KwkJeworCQkJQXNzZXJ0KGJsa05vIDwgbWV0YURhdGEtPmxhc3RCbGtObyk7CisJCQkvKiBTb21l b25lIGVsc2UgaW5zZXJ0ZWQgdGhlIG5ldyBwYWdlIGludG8gdGhlIGluZGV4LCBsZXRzIHRyeSBh Z2FpbiAvCisJCQkgKi8KKwkJCUdlbmVyaWNYTG9nQWJvcnQoc3RhdGUpOworCQkJTG9ja0J1ZmZl cihtZXRhQnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCQkJY29udGludWU7CisJCX0KKwkJ ZWxzZQorCQl7CisJCQkvKiBNdXN0IGV4dGVuZCB0aGUgZmlsZSAqLworCQkJYnVmZmVyID0gRXh0 ZW5kQnVmZmVyZWRSZWwoQk1SX1JFTChpbmRleCksIE1BSU5fRk9SS05VTSwgTlVMTCwKKwkJCQkJ CQkJCSAgIEVCX0xPQ0tfRklSU1QpOworCisJCQlwYWdlID0gR2VuZXJpY1hMb2dSZWdpc3RlckJ1 ZmZlcihzdGF0ZSwgYnVmZmVyLCBHRU5FUklDX1hMT0dfRlVMTF9JTUFHRSk7CisJCQlTdGlySW5p dFBhZ2UocGFnZSwgMCk7CisKKwkJCWlmICghU3RpclBhZ2VBZGRJdGVtKHBhZ2UsIGl0dXApKQor CQkJeworCQkJCS8qIFdlIHNob3VsZG4ndCBiZSBoZXJlIHNpbmNlIHdlJ3JlIGluc2VydGluZyB0 byBhbiBlbXB0eSBwYWdlICovCisJCQkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBhZGQgbmV3IHN0 aXIgdHVwbGUgdG8gZW1wdHkgcGFnZSIpOworCQkJfQorCisJCQkvKiBVcGRhdGUgbWV0YSBwYWdl IHdpdGggbmV3IGxhc3QgYmxvY2sgbnVtYmVyICovCisJCQltZXRhRGF0YS0+bGFzdEJsa05vID0g QnVmZmVyR2V0QmxvY2tOdW1iZXIoYnVmZmVyKTsKKwkJCUdlbmVyaWNYTG9nRmluaXNoKHN0YXRl KTsKKworCQkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihidWZmZXIpOworCQkJVW5sb2NrUmVsZWFzZUJ1 ZmZlcihtZXRhQnVmZmVyKTsKKworCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZEN0eCk7CisJ CQlNZW1vcnlDb250ZXh0RGVsZXRlKGluc2VydEN0eCk7CisKKwkJCXJldHVybiBmYWxzZTsKKwkJ fQorCX0KK30KKworLyoKKyAqIFNUSVIgZG9lc24ndCBzdXBwb3J0IHNjYW5zIC0gdGhlc2UgZnVu Y3Rpb25zIGFsbCBlcnJvciBvdXQKKyAqLworSW5kZXhTY2FuRGVzYyBzdGlyYmVnaW5zY2FuKFJl bGF0aW9uIHIsIGludCBua2V5cywgaW50IG5vcmRlcmJ5cykKK3sKKwllcmVwb3J0KEVSUk9SLCAo ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksIGVycm1zZygiXCIlc1wiIGlz IG5vdCBhIG5vdCBpbXBsZW1lbnRlZCIsIF9fZnVuY19fKSkpOworfQorCit2b2lkCitzdGlycmVz Y2FuKEluZGV4U2NhbkRlc2Mgc2NhbiwgU2NhbktleSBzY2Fua2V5LCBpbnQgbnNjYW5rZXlzLAor CQkgIFNjYW5LZXkgb3JkZXJieXMsIGludCBub3JkZXJieXMpCit7CisJZXJlcG9ydChFUlJPUiwg KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLCBlcnJtc2coIlwiJXNcIiBp cyBub3QgYSBub3QgaW1wbGVtZW50ZWQiLCBfX2Z1bmNfXykpKTsKK30KKwordm9pZCBzdGlyZW5k c2NhbihJbmRleFNjYW5EZXNjIHNjYW4pCit7CisJZXJlcG9ydChFUlJPUiwgKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLCBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSBub3Qg aW1wbGVtZW50ZWQiLCBfX2Z1bmNfXykpKTsKK30KKworLyoKKyAqIEJ1aWxkIGEgU1RJUiBpbmRl eCAtIG9ubHkgYWxsb3dlZCBmb3IgYXV4aWxpYXJ5IGluZGV4ZXMuCisgKiBKdXN0IGluaXRpYWxp emVzIHRoZSBtZXRhIHBhZ2Ugd2l0aG91dCBhbnkgaGVhcCBzY2Fucy4KKyAqLworSW5kZXhCdWls ZFJlc3VsdCAqc3RpcmJ1aWxkKFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAorCQkJCQkJ ICAgc3RydWN0IEluZGV4SW5mbyAqaW5kZXhJbmZvKQoreworCUluZGV4QnVpbGRSZXN1bHQgKnJl c3VsdDsKKworCWlmICghaW5kZXhJbmZvLT5paV9BdXhpbGlhcnkpCisJCWVyZXBvcnQoRVJST1Is IChlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwgZXJybXNnKCJTVElSIGlu ZGV4ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgdG8gYmUgYnVpbHQiKSkpOworCisJU3RpckluaXRNZXRh cGFnZShpbmRleCwgTUFJTl9GT1JLTlVNKTsKKworCXJlc3VsdCA9IChJbmRleEJ1aWxkUmVzdWx0 ICopIHBhbGxvYyhzaXplb2YoSW5kZXhCdWlsZFJlc3VsdCkpOworCXJlc3VsdC0+aGVhcF90dXBs ZXMgPSAwOworCXJlc3VsdC0+aW5kZXhfdHVwbGVzID0gMDsKKwlyZXR1cm4gcmVzdWx0OworfQor Cit2b2lkIHN0aXJidWlsZGVtcHR5KFJlbGF0aW9uIGluZGV4KQoreworCVN0aXJJbml0TWV0YXBh Z2UoaW5kZXgsIElOSVRfRk9SS05VTSk7Cit9CisKK0luZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3Rp cmJ1bGtkZWxldGUoSW5kZXhWYWN1dW1JbmZvICppbmZvLAorCQkJCQkJCQkJIEluZGV4QnVsa0Rl bGV0ZVJlc3VsdCAqc3RhdHMsCisJCQkJCQkJCQkgSW5kZXhCdWxrRGVsZXRlQ2FsbGJhY2sgY2Fs bGJhY2ssCisJCQkJCQkJCQkgdm9pZCAqY2FsbGJhY2tfc3RhdGUpCit7CisJUmVsYXRpb24gaW5k ZXggPSBpbmZvLT5pbmRleDsKKwlCbG9ja051bWJlciBibGtubywgbnBhZ2VzOworCUJ1ZmZlciBi dWZmZXI7CisJUGFnZSBwYWdlOworCisJLyogRm9yIG5vcm1hbCBWQUNVVU0sIG1hcmsgdG8gc2tp cCBpbnNlcnRzIGFuZCB3YXJuIGFib3V0IGluZGV4IGRyb3AgbmVlZGVkICovCisJaWYgKCFpbmZv LT52YWxpZGF0ZV9pbmRleCkKKwl7CisJCVN0aXJNYXJrQXNTa2lwSW5zZXJ0cyhpbmRleCk7CisK KwkJZXJlcG9ydChXQVJOSU5HLCAoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRF RCksCisJCQkJZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgbm90IGltcGxlbWVudGVkLCBzZWVtcyBs aWtlIHRoaXMgaW5kZXggbmVlZCB0byBiZSBkcm9wcGVkIiwgX19mdW5jX18pKSk7CisJCXJldHVy biBOVUxMOworCX0KKworCWlmIChzdGF0cyA9PSBOVUxMKQorCQlzdGF0cyA9IChJbmRleEJ1bGtE ZWxldGVSZXN1bHQgKikgcGFsbG9jMChzaXplb2YoSW5kZXhCdWxrRGVsZXRlUmVzdWx0KSk7CisK KwkvKgorCSAqIEl0ZXJhdGUgb3ZlciB0aGUgcGFnZXMuIFdlIGRvbid0IGNhcmUgYWJvdXQgY29u Y3VycmVudGx5IGFkZGVkIHBhZ2VzLAorCSAqIGJlY2F1c2UgaW5kZXggaXMgbWFya2VkIGFzIG5v dC1yZWFkeSBmb3IgdGhhdCBtb21tZW50IGFuZCBpbmRleCBub3QKKwkgKiB1c2VkIGZvciBpbnNl cnQuCisJICovCisJbnBhZ2VzID0gUmVsYXRpb25HZXROdW1iZXJPZkJsb2NrcyhpbmRleCk7CisJ Zm9yIChibGtubyA9IFNUSVJfSEVBRF9CTEtOTzsgYmxrbm8gPCBucGFnZXM7IGJsa25vKyspCisJ eworCQlTdGlyVHVwbGUgKml0dXAsICppdHVwRW5kOworCisJCXZhY3V1bV9kZWxheV9wb2ludCgp OworCisJCWJ1ZmZlciA9IFJlYWRCdWZmZXJFeHRlbmRlZChpbmRleCwgTUFJTl9GT1JLTlVNLCBi bGtubywKKwkJCQkJCQkJCVJCTV9OT1JNQUwsIGluZm8tPnN0cmF0ZWd5KTsKKworCQlMb2NrQnVm ZmVyKGJ1ZmZlciwgQlVGRkVSX0xPQ0tfU0hBUkUpOworCQlwYWdlID0gQnVmZmVyR2V0UGFnZShi dWZmZXIpOworCisJCWlmIChQYWdlSXNOZXcocGFnZSkpCisJCXsKKwkJCVVubG9ja1JlbGVhc2VC dWZmZXIoYnVmZmVyKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJaXR1cCA9IFN0aXJQYWdlR2V0 VHVwbGUocGFnZSwgRmlyc3RPZmZzZXROdW1iZXIpOworCQlpdHVwRW5kID0gU3RpclBhZ2VHZXRU dXBsZShwYWdlLCBPZmZzZXROdW1iZXJOZXh0KFN0aXJQYWdlR2V0TWF4T2Zmc2V0KHBhZ2UpKSk7 CisJCXdoaWxlIChpdHVwIDwgaXR1cEVuZCkKKwkJeworCQkJLyogRG8gd2UgaGF2ZSB0byBkZWxl dGUgdGhpcyB0dXBsZT8gKi8KKwkJCWlmIChjYWxsYmFjaygmaXR1cC0+aGVhcFB0ciwgY2FsbGJh Y2tfc3RhdGUpKQorCQkJeworCQkJCWVyZXBvcnQoRVJST1IsIChlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwgZXJybXNnKCJ3ZSBuZXZlciBkZWxldGUgaW4gc3RpciIpKSk7 CisJCQl9CisKKwkJCWl0dXAgPSBTdGlyUGFnZUdldE5leHRUdXBsZShpdHVwKTsKKwkJfQorCisJ CVVubG9ja1JlbGVhc2VCdWZmZXIoYnVmZmVyKTsKKwl9CisKKwlyZXR1cm4gc3RhdHM7Cit9CisK Ky8qCisgKiBNYXJrIGEgU1RJUiBpbmRleCB0byBza2lwIGZ1dHVyZSBpbnNlcnRzCisgKi8KK3Zv aWQgU3Rpck1hcmtBc1NraXBJbnNlcnRzKFJlbGF0aW9uIGluZGV4KQoreworCVN0aXJNZXRhUGFn ZURhdGEgKm1ldGFEYXRhOworCUJ1ZmZlciBtZXRhQnVmZmVyOworCVBhZ2UgbWV0YVBhZ2U7CisJ R2VuZXJpY1hMb2dTdGF0ZSAqc3RhdGU7CisKKwltZXRhQnVmZmVyID0gUmVhZEJ1ZmZlcihpbmRl eCwgU1RJUl9NRVRBUEFHRV9CTEtOTyk7CisJTG9ja0J1ZmZlcihtZXRhQnVmZmVyLCBCVUZGRVJf TE9DS19FWENMVVNJVkUpOworCisJc3RhdGUgPSBHZW5lcmljWExvZ1N0YXJ0KGluZGV4KTsKKwlt ZXRhUGFnZSA9IEdlbmVyaWNYTG9nUmVnaXN0ZXJCdWZmZXIoc3RhdGUsIG1ldGFCdWZmZXIsCisJ CQkJCQkJCQkJIEdFTkVSSUNfWExPR19GVUxMX0lNQUdFKTsKKwltZXRhRGF0YSA9IFN0aXJQYWdl R2V0TWV0YShtZXRhUGFnZSk7CisJaWYgKCFtZXRhRGF0YS0+c2tpcEluc2VydHMpCisJeworCQlt ZXRhRGF0YS0+c2tpcEluc2VydHMgPSB0cnVlOworCQlHZW5lcmljWExvZ0ZpbmlzaChzdGF0ZSk7 CisJfQorCWVsc2UKKwl7CisJCUdlbmVyaWNYTG9nQWJvcnQoc3RhdGUpOworCX0KKwlVbmxvY2tS ZWxlYXNlQnVmZmVyKG1ldGFCdWZmZXIpOworfQorCitJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0 aXJ2YWN1dW1jbGVhbnVwKEluZGV4VmFjdXVtSW5mbyAqaW5mbywKKwkJCQkJCQkJCQlJbmRleEJ1 bGtEZWxldGVSZXN1bHQgKnN0YXRzKQoreworCVN0aXJNYXJrQXNTa2lwSW5zZXJ0cyhpbmZvLT5p bmRleCk7CisJZXJlcG9ydChXQVJOSU5HLCAoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCisJCQllcnJtc2coIlwiJXNcIiBpcyBub3QgYSBub3QgaW1wbGVtZW50ZWQsIHNl ZW1zIGxpa2UgdGhpcyBpbmRleCBuZWVkIHRvIGJlIGRyb3BwZWQiLCBfX2Z1bmNfXykpKTsKKwly ZXR1cm4gTlVMTDsKK30KKworYnl0ZWEgKnN0aXJvcHRpb25zKERhdHVtIHJlbG9wdGlvbnMsIGJv b2wgdmFsaWRhdGUpCit7CisJcmV0dXJuIE5VTEw7Cit9CisKK3ZvaWQgc3RpcmNvc3Rlc3RpbWF0 ZShQbGFubmVySW5mbyAqcm9vdCwgSW5kZXhQYXRoICpwYXRoLAorCQkJCQkgZG91YmxlIGxvb3Bf Y291bnQsIENvc3QgKmluZGV4U3RhcnR1cENvc3QsCisJCQkJCSBDb3N0ICppbmRleFRvdGFsQ29z dCwgU2VsZWN0aXZpdHkgKmluZGV4U2VsZWN0aXZpdHksCisJCQkJCSBkb3VibGUgKmluZGV4Q29y cmVsYXRpb24sIGRvdWJsZSAqaW5kZXhQYWdlcykKK3sKKwllcmVwb3J0KEVSUk9SLCAoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksIGVycm1zZygiXCIlc1wiIGlzIG5vdCBh IG5vdCBpbXBsZW1lbnRlZCIsIF9fZnVuY19fKSkpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaW5kZXguYwppbmRleCBmNmExYTJmM2Y5MC4uODI4MTY1ODBlM2MgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYworKysgYi9zcmMvYmFja2VuZC9jYXRh bG9nL2luZGV4LmMKQEAgLTM0MDIsNiArMzQwMiw3IEBAIHZhbGlkYXRlX2luZGV4KE9pZCBoZWFw SWQsIE9pZCBpbmRleElkLCBTbmFwc2hvdCBzbmFwc2hvdCkKIAlpdmluZm8ubWVzc2FnZV9sZXZl bCA9IERFQlVHMjsKIAlpdmluZm8ubnVtX2hlYXBfdHVwbGVzID0gaGVhcFJlbGF0aW9uLT5yZF9y ZWwtPnJlbHR1cGxlczsKIAlpdmluZm8uc3RyYXRlZ3kgPSBOVUxMOworCWl2aW5mby52YWxpZGF0 ZV9pbmRleCA9IHRydWU7CiAKIAkvKgogCSAqIEVuY29kZSBUSURzIGFzIGludDggdmFsdWVzIGZv ciB0aGUgc29ydCwgcmF0aGVyIHRoYW4gZGlyZWN0bHkgc29ydGluZwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6 ZS5jCmluZGV4IDlhNTZkZTIyODJmLi5kNTRkMzEwYmE0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FuYWx5emUu YwpAQCAtNzE4LDYgKzcxOCw3IEBAIGRvX2FuYWx5emVfcmVsKFJlbGF0aW9uIG9uZXJlbCwgVmFj dXVtUGFyYW1zICpwYXJhbXMsCiAJCQlpdmluZm8ubWVzc2FnZV9sZXZlbCA9IGVsZXZlbDsKIAkJ CWl2aW5mby5udW1faGVhcF90dXBsZXMgPSBvbmVyZWwtPnJkX3JlbC0+cmVsdHVwbGVzOwogCQkJ aXZpbmZvLnN0cmF0ZWd5ID0gdmFjX3N0cmF0ZWd5OworCQkJaXZpbmZvLnZhbGlkYXRlX2luZGV4 ID0gZmFsc2U7CiAKIAkJCXN0YXRzID0gaW5kZXhfdmFjdXVtX2NsZWFudXAoJml2aW5mbywgTlVM TCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IDY3Y2JhMTdhNTY0 Li5lNDMyN2I0ZjdkYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFy YWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC04 ODQsNiArODg0LDcgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4KFBhcmFsbGVs VmFjdXVtU3RhdGUgKnB2cywgUmVsYXRpb24gaW5kcmVsLAogCWl2aW5mby5lc3RpbWF0ZWRfY291 bnQgPSBwdnMtPnNoYXJlZC0+ZXN0aW1hdGVkX2NvdW50OwogCWl2aW5mby5udW1faGVhcF90dXBs ZXMgPSBwdnMtPnNoYXJlZC0+cmVsdHVwbGVzOwogCWl2aW5mby5zdHJhdGVneSA9IHB2cy0+YnN0 cmF0ZWd5OworCWl2aW5mby52YWxpZGF0ZV9pbmRleCA9IGZhbHNlOwogCiAJLyogVXBkYXRlIGVy cm9yIHRyYWNlYmFjayBpbmZvcm1hdGlvbiAqLwogCXB2cy0+aW5kbmFtZSA9IHBzdHJkdXAoUmVs YXRpb25HZXRSZWxhdGlvbk5hbWUoaW5kcmVsKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9u b2Rlcy9tYWtlZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL21ha2VmdW5jcy5jCmluZGV4IDdl NWRmN2JlYTRkLi40NGE4YTFmMjg3NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbWFr ZWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMKQEAgLTgyNSw2ICs4 MjUsNyBAQCBtYWtlSW5kZXhJbmZvKGludCBudW1hdHRycywgaW50IG51bWtleWF0dHJzLCBPaWQg YW1vaWQsIExpc3QgKmV4cHJlc3Npb25zLAogCS8qIGluaXRpYWxpemUgaW5kZXgtYnVpbGQgc3Rh dGUgdG8gZGVmYXVsdCAqLwogCW4tPmlpX0Jyb2tlbkhvdENoYWluID0gZmFsc2U7CiAJbi0+aWlf UGFyYWxsZWxXb3JrZXJzID0gMDsKKwluLT5paV9BdXhpbGlhcnkgPSBmYWxzZTsKIAogCS8qIHNl dCB1cCBmb3IgcG9zc2libGUgdXNlIGJ5IGluZGV4IEFNICovCiAJbi0+aWlfQW0gPSBhbW9pZDsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL2dlbmFtLmgKaW5kZXggODE2NTNmZWJjMTguLjE5NGRiYmUxZDBlIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0u aApAQCAtNTIsNiArNTIsNyBAQCB0eXBlZGVmIHN0cnVjdCBJbmRleFZhY3V1bUluZm8KIAlib29s CQllc3RpbWF0ZWRfY291bnQ7CS8qIG51bV9oZWFwX3R1cGxlcyBpcyBhbiBlc3RpbWF0ZSAqLwog CWludAkJCW1lc3NhZ2VfbGV2ZWw7CS8qIGVyZXBvcnQgbGV2ZWwgZm9yIHByb2dyZXNzIG1lc3Nh Z2VzICovCiAJZG91YmxlCQludW1faGVhcF90dXBsZXM7CS8qIHR1cGxlcyByZW1haW5pbmcgaW4g aGVhcCAqLworCWJvb2wJCXZhbGlkYXRlX2luZGV4OyAvKiB2YWxpZGF0aW5nIGNvbmN1cnJlbnRs eSBidWlsdCBpbmRleD8gKi8KIAlCdWZmZXJBY2Nlc3NTdHJhdGVneSBzdHJhdGVneTsJLyogYWNj ZXNzIHN0cmF0ZWd5IGZvciByZWFkcyAqLwogfSBJbmRleFZhY3V1bUluZm87CiAKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxvcHRpb25zLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv cmVsb3B0aW9ucy5oCmluZGV4IGRmNjkyM2M5ZDUwLi4wOTY2Mzk3ZDM0NCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvYWNjZXNzL3JlbG9wdGlvbnMuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv cmVsb3B0aW9ucy5oCkBAIC01MSw4ICs1MSw5IEBAIHR5cGVkZWYgZW51bSByZWxvcHRfa2luZAog CVJFTE9QVF9LSU5EX1ZJRVcgPSAoMSA8PCA5KSwKIAlSRUxPUFRfS0lORF9CUklOID0gKDEgPDwg MTApLAogCVJFTE9QVF9LSU5EX1BBUlRJVElPTkVEID0gKDEgPDwgMTEpLAorCVJFTE9QVF9LSU5E X1NUSVIgPSAoMSA8PCAxMiksCiAJLyogaWYgeW91IGFkZCBhIG5ldyBraW5kLCBtYWtlIHN1cmUg eW91IHVwZGF0ZSAibGFzdF9kZWZhdWx0IiB0b28gKi8KLQlSRUxPUFRfS0lORF9MQVNUX0RFRkFV TFQgPSBSRUxPUFRfS0lORF9QQVJUSVRJT05FRCwKKwlSRUxPUFRfS0lORF9MQVNUX0RFRkFVTFQg PSBSRUxPUFRfS0lORF9TVElSLAogCS8qIHNvbWUgY29tcGlsZXJzIHRyZWF0IGVudW1zIGFzIHNp Z25lZCBpbnRzLCBzbyB3ZSBjYW4ndCB1c2UgMSA8PCAzMSAqLwogCVJFTE9QVF9LSU5EX01BWCA9 ICgxIDw8IDMwKQogfSByZWxvcHRfa2luZDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9zdGlyLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3Rpci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi45OTQzYzQyYTk3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9p bmNsdWRlL2FjY2Vzcy9zdGlyLmgKQEAgLTAsMCArMSwxMTcgQEAKKy8qLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICoKKyAqIHN0aXIuaAorICoJICBoZWFkZXIgZmlsZSBmb3IgcG9zdGdyZXMgc3RpciBhY2Nl c3MgbWV0aG9kIGltcGxlbWVudGF0aW9uLgorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICogc3Jj L2luY2x1ZGUvYWNjZXNzL3N0aXIuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZu ZGVmIF9TVElSX0hfCisjZGVmaW5lIF9TVElSX0hfCisKKyNpbmNsdWRlICJhbWFwaS5oIgorI2lu Y2x1ZGUgInhsb2cuaCIKKyNpbmNsdWRlICJnZW5lcmljX3hsb2cuaCIKKyNpbmNsdWRlICJpdHVw LmgiCisjaW5jbHVkZSAiZm1nci5oIgorI2luY2x1ZGUgIm5vZGVzL3BhdGhub2Rlcy5oIgorCisv KiBTdXBwb3J0IHByb2NlZHVyZXMgbnVtYmVycyAqLworI2RlZmluZSBTVElSX05QUk9DCQkJCTAK KworLyogU2NhbiBzdHJhdGVnaWVzICovCisjZGVmaW5lIFNUSVJfTlNUUkFURUdJRVMJCTEKKwor I2RlZmluZSBTVElSX09QVElPTlNfUFJPQwkJCQkwCisKKy8qIE1hY3JvcyBmb3IgYWNjZXNzaW5n IHN0aXIgcGFnZSBzdHJ1Y3R1cmVzICovCisjZGVmaW5lIFN0aXJQYWdlR2V0T3BhcXVlKHBhZ2Up ICgoU3RpclBhZ2VPcGFxdWUpIFBhZ2VHZXRTcGVjaWFsUG9pbnRlcihwYWdlKSkKKyNkZWZpbmUg U3RpclBhZ2VHZXRNYXhPZmZzZXQocGFnZSkgKFN0aXJQYWdlR2V0T3BhcXVlKHBhZ2UpLT5tYXhv ZmYpCisjZGVmaW5lIFN0aXJQYWdlSXNNZXRhKHBhZ2UpIFwKKwkoKFN0aXJQYWdlR2V0T3BhcXVl KHBhZ2UpLT5mbGFncyAmIFNUSVJfTUVUQSkgIT0gMCkKKyNkZWZpbmUgU3RpclBhZ2VHZXREYXRh KHBhZ2UpCQkoKFN0aXJUdXBsZSAqKVBhZ2VHZXRDb250ZW50cyhwYWdlKSkKKyNkZWZpbmUgU3Rp clBhZ2VHZXRUdXBsZShwYWdlLCBvZmZzZXQpIFwKKwkoKFN0aXJUdXBsZSAqKShQYWdlR2V0Q29u dGVudHMocGFnZSkgXAorCQkrIHNpemVvZihTdGlyVHVwbGUpICogKChvZmZzZXQpIC0gMSkpKQor I2RlZmluZSBTdGlyUGFnZUdldE5leHRUdXBsZSh0dXBsZSkgXAorCSgoU3RpclR1cGxlICopKChQ b2ludGVyKSh0dXBsZSkgKyBzaXplb2YoU3RpclR1cGxlKSkpCisKKworCisvKiBQcmVzZXJ2ZWQg cGFnZSBudW1iZXJzICovCisjZGVmaW5lIFNUSVJfTUVUQVBBR0VfQkxLTk8JKDApCisjZGVmaW5l IFNUSVJfSEVBRF9CTEtOTwkJKDEpIC8qIGZpcnN0IGRhdGEgcGFnZSAqLworCisKKy8qIE9wYXF1 ZSBmb3Igc3RpciBwYWdlcyAqLwordHlwZWRlZiBzdHJ1Y3QgU3RpclBhZ2VPcGFxdWVEYXRhCit7 CisJT2Zmc2V0TnVtYmVyIG1heG9mZjsJCS8qIG51bWJlciBvZiBpbmRleCB0dXBsZXMgb24gcGFn ZSAqLworCXVpbnQxNgkJZmxhZ3M7CQkJLyogc2VlIGJpdCBkZWZpbml0aW9ucyBiZWxvdyAqLwor CXVpbnQxNgkJdW51c2VkOwkJCS8qIHBsYWNlaG9sZGVyIHRvIGZvcmNlIG1heGFsaWduaW5nIG9m IHNpemUgb2YKKwkJCQkJCQkJICogU3RpclBhZ2VPcGFxdWVEYXRhIGFuZCB0byBwbGFjZQorCQkJ CQkJCQkgKiBzdGlyX3BhZ2VfaWQgZXhhY3RseSBhdCB0aGUgZW5kIG9mIHBhZ2UgKi8KKwl1aW50 MTYJCXN0aXJfcGFnZV9pZDsJLyogZm9yIGlkZW50aWZpY2F0aW9uIG9mIFNUSVIgaW5kZXhlcyAq LworfSBTdGlyUGFnZU9wYXF1ZURhdGE7CisKKy8qIFN0aXIgcGFnZSBmbGFncyAqLworI2RlZmlu ZSBTVElSX01FVEEJCSgxPDwwKQorCit0eXBlZGVmIFN0aXJQYWdlT3BhcXVlRGF0YSAqU3RpclBh Z2VPcGFxdWU7CisKKyNkZWZpbmUgU1RJUl9QQUdFX0lECQkweEZGODQKKworLyogTWV0YWRhdGEg b2Ygc3RpciBpbmRleCAqLwordHlwZWRlZiBzdHJ1Y3QgU3Rpck1ldGFQYWdlRGF0YQoreworCXVp bnQzMgkJbWFnaWNrTnVtYmVyOworCXVpbnQxNgkJbGFzdEJsa05vOworCWJvb2wJCXNraXBJbnNl cnRzOwkvKiBzaG91bGQgd2UganVzdCBleGl0IHdpdGhvdXQgYW55IGluc2VydHMgKi8KK30gU3Rp ck1ldGFQYWdlRGF0YTsKKworLyogTWFnaWMgbnVtYmVyIHRvIGRpc3Rpbmd1aXNoIHN0aXIgcGFn ZXMgZnJvbSBvdGhlcnMgKi8KKyNkZWZpbmUgU1RJUl9NQUdJQ0tfTlVNQkVSICgweERCQUMwREVG KQorCisjZGVmaW5lIFN0aXJQYWdlR2V0TWV0YShwYWdlKQkoKFN0aXJNZXRhUGFnZURhdGEgKikg UGFnZUdldENvbnRlbnRzKHBhZ2UpKQorCit0eXBlZGVmIHN0cnVjdCBTdGlyVHVwbGUKK3sKKwlJ dGVtUG9pbnRlckRhdGEgaGVhcFB0cjsKK30gU3RpclR1cGxlOworCisjZGVmaW5lIFN0aXJQYWdl R2V0RnJlZVNwYWNlKHN0YXRlLCBwYWdlKSBcCisJKEJMQ0tTWiAtIE1BWEFMSUdOKFNpemVPZlBh Z2VIZWFkZXJEYXRhKSBcCisJCS0gU3RpclBhZ2VHZXRNYXhPZmZzZXQocGFnZSkgKiAoc2l6ZW9m KFN0aXJUdXBsZSkpIFwKKwkJLSBNQVhBTElHTihzaXplb2YoU3RpclBhZ2VPcGFxdWVEYXRhKSkp CisKK2V4dGVybiB2b2lkIFN0aXJGaWxsTWV0YXBhZ2UoUmVsYXRpb24gaW5kZXgsIFBhZ2UgbWV0 YVBhZ2UsIGJvb2wgc2tpcEluc2VydHMpOworZXh0ZXJuIHZvaWQgU3RpckluaXRNZXRhcGFnZShS ZWxhdGlvbiBpbmRleCwgRm9ya051bWJlciBmb3JrbnVtKTsKK2V4dGVybiB2b2lkIFN0aXJJbml0 UGFnZShQYWdlIHBhZ2UsIHVpbnQxNiBmbGFncyk7CitleHRlcm4gdm9pZCBTdGlyTWFya0FzU2tp cEluc2VydHMoUmVsYXRpb24gaW5kZXgpOworCisvKiBpbmRleCBhY2Nlc3MgbWV0aG9kIGludGVy ZmFjZSBmdW5jdGlvbnMgKi8KK2V4dGVybiBib29sIHN0aXJ2YWxpZGF0ZShPaWQgb3BjbGFzc29p ZCk7CitleHRlcm4gYm9vbCBzdGlyaW5zZXJ0KFJlbGF0aW9uIGluZGV4LCBEYXR1bSAqdmFsdWVz LCBib29sICppc251bGwsCisJCQkJCSBJdGVtUG9pbnRlciBodF9jdGlkLCBSZWxhdGlvbiBoZWFw UmVsLAorCQkJCQkgSW5kZXhVbmlxdWVDaGVjayBjaGVja1VuaXF1ZSwKKwkJCQkJIGJvb2wgaW5k ZXhVbmNoYW5nZWQsCisJCQkJCSBzdHJ1Y3QgSW5kZXhJbmZvICppbmRleEluZm8pOworZXh0ZXJu IEluZGV4U2NhbkRlc2Mgc3RpcmJlZ2luc2NhbihSZWxhdGlvbiByLCBpbnQgbmtleXMsIGludCBu b3JkZXJieXMpOworZXh0ZXJuIHZvaWQgc3RpcnJlc2NhbihJbmRleFNjYW5EZXNjIHNjYW4sIFNj YW5LZXkgc2NhbmtleSwgaW50IG5zY2Fua2V5cywKKwkJCQkJIFNjYW5LZXkgb3JkZXJieXMsIGlu dCBub3JkZXJieXMpOworZXh0ZXJuIHZvaWQgc3RpcmVuZHNjYW4oSW5kZXhTY2FuRGVzYyBzY2Fu KTsKK2V4dGVybiBJbmRleEJ1aWxkUmVzdWx0ICpzdGlyYnVpbGQoUmVsYXRpb24gaGVhcCwgUmVs YXRpb24gaW5kZXgsCisJCQkJCQkJCSBzdHJ1Y3QgSW5kZXhJbmZvICppbmRleEluZm8pOworZXh0 ZXJuIHZvaWQgc3RpcmJ1aWxkZW1wdHkoUmVsYXRpb24gaW5kZXgpOworZXh0ZXJuIEluZGV4QnVs a0RlbGV0ZVJlc3VsdCAqc3RpcmJ1bGtkZWxldGUoSW5kZXhWYWN1dW1JbmZvICppbmZvLAorCQkJ CQkJCQkJCSAgIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMsIEluZGV4QnVsa0RlbGV0ZUNh bGxiYWNrIGNhbGxiYWNrLAorCQkJCQkJCQkJCSAgIHZvaWQgKmNhbGxiYWNrX3N0YXRlKTsKK2V4 dGVybiBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0aXJ2YWN1dW1jbGVhbnVwKEluZGV4VmFjdXVt SW5mbyAqaW5mbywKKwkJCQkJCQkJCQkJICBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0YXRzKTsK K2V4dGVybiBieXRlYSAqc3Rpcm9wdGlvbnMoRGF0dW0gcmVsb3B0aW9ucywgYm9vbCB2YWxpZGF0 ZSk7CisKKyNlbmRpZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfYW0uZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbS5k YXQKaW5kZXggZGI4NzQ5MDI4MjAuLjUxMzUwZGYwYmYwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2FtLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtLmRhdApA QCAtMzMsNSArMzMsOCBAQAogeyBvaWQgPT4gJzM1ODAnLCBvaWRfc3ltYm9sID0+ICdCUklOX0FN X09JRCcsCiAgIGRlc2NyID0+ICdibG9jayByYW5nZSBpbmRleCAoQlJJTikgYWNjZXNzIG1ldGhv ZCcsCiAgIGFtbmFtZSA9PiAnYnJpbicsIGFtaGFuZGxlciA9PiAnYnJpbmhhbmRsZXInLCBhbXR5 cGUgPT4gJ2knIH0sCit7IG9pZCA9PiAnNTU1NScsIG9pZF9zeW1ib2wgPT4gJ1NUSVJfQU1fT0lE JywKKyAgZGVzY3IgPT4gJ3Nob3J0IHRlcm0gaW5kZXggcmVwbGFjZW1lbnQgYWNjZXNzIG1ldGhv ZCcsCisgIGFtbmFtZSA9PiAnc3RpcicsIGFtaGFuZGxlciA9PiAnc3RpcmhhbmRsZXInLCBhbXR5 cGUgPT4gJ2knIH0sCiAKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3Bj bGFzcy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0CmluZGV4IGY1MDNj NjUyZWJjLi43MDY3NDUyYTAzNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19v cGNsYXNzLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0CkBAIC00 ODgsNCArNDg4LDcgQEAKIAogIyBubyBicmluIG9wY2xhc3MgZm9yIHRoZSBnZW9tZXRyaWMgdHlw ZXMgZXhjZXB0IGJveAogCisjIGFsbG93IGFueSB0eXBlcyBmb3IgU1RJUgoreyBvcGNtZXRob2Qg PT4gJ3N0aXInLCBvcGNuYW1lID0+ICdzdGlyX29wcycsIG9wY2ZhbWlseSA9PiAnc3Rpci9hbnlf b3BzJywKKyAgb3BjaW50eXBlID0+ICdhbnknIH0sCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BmYW1p bHkuZGF0CmluZGV4IGM4YWM4YzczZGVmLi40MWVhMGMzY2E1MCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19vcGZhbWlseS5kYXQKQEAgLTMwNCw1ICszMDQsNyBAQAogICBvcGZtZXRob2QgPT4gJ2hhc2gn LCBvcGZuYW1lID0+ICdtdWx0aXJhbmdlX29wcycgfSwKIHsgb2lkID0+ICc2MTU4JywKICAgb3Bm bWV0aG9kID0+ICdnaXN0Jywgb3BmbmFtZSA9PiAnbXVsdGlyYW5nZV9vcHMnIH0sCit7IG9pZCA9 PiAnNTU1OCcsCisgIG9wZm1ldGhvZCA9PiAnc3RpcicsIG9wZm5hbWUgPT4gJ2FueV9vcHMnIH0s CiAKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDBmMjJjMjE3MjM1Li41OWY1MGUyYjAy NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC05MzUsNiArOTM1LDEwIEBACiAgIHByb25h bWUgPT4gJ2JyaW5oYW5kbGVyJywgcHJvdm9sYXRpbGUgPT4gJ3YnLAogICBwcm9yZXR0eXBlID0+ ICdpbmRleF9hbV9oYW5kbGVyJywgcHJvYXJndHlwZXMgPT4gJ2ludGVybmFsJywKICAgcHJvc3Jj ID0+ICdicmluaGFuZGxlcicgfSwKK3sgb2lkID0+ICc1NTU2JywgZGVzY3IgPT4gJ3Nob3J0IHRl cm0gaW5kZXggcmVwbGFjZW1lbnQgYWNjZXNzIG1ldGhvZCBoYW5kbGVyJywKKyAgcHJvbmFtZSA9 PiAnc3RpcmhhbmRsZXInLCBwcm92b2xhdGlsZSA9PiAndicsCisgIHByb3JldHR5cGUgPT4gJ2lu ZGV4X2FtX2hhbmRsZXInLCBwcm9hcmd0eXBlcyA9PiAnaW50ZXJuYWwnLAorICBwcm9zcmMgPT4g J3N0aXJoYW5kbGVyJyB9LAogeyBvaWQgPT4gJzM5NTInLCBkZXNjciA9PiAnYnJpbjogc3RhbmRh bG9uZSBzY2FuIG5ldyB0YWJsZSBwYWdlcycsCiAgIHByb25hbWUgPT4gJ2JyaW5fc3VtbWFyaXpl X25ld192YWx1ZXMnLCBwcm92b2xhdGlsZSA9PiAndicsCiAgIHByb3BhcmFsbGVsID0+ICd1Jywg cHJvcmV0dHlwZSA9PiAnaW50NCcsIHByb2FyZ3R5cGVzID0+ICdyZWdjbGFzcycsCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4 ZWNub2Rlcy5oCmluZGV4IDdmNzFiNzYyNWRmLi43NDg2NTVmZDBjZiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmgKQEAgLTE3MiwxMiArMTcyLDEzIEBAIHR5cGVkZWYgc3RydWN0IEV4cHJTdGF0ZQogICoJ CUJyb2tlbkhvdENoYWluCQlkaWQgd2UgZGV0ZWN0IGFueSBicm9rZW4gSE9UIGNoYWlucz8KICAq CQlTdW1tYXJpemluZwkJCWlzIGl0IGEgc3VtbWFyaXppbmcgaW5kZXg/CiAgKgkJUGFyYWxsZWxX b3JrZXJzCQkjIG9mIHdvcmtlcnMgcmVxdWVzdGVkIChleGNsdWRlcyBsZWFkZXIpCisgKgkJQXV4 aWxpYXJ5CQkJIyBpbmRleC1oZWxwZXIgZm9yIGNvbmN1cnJlbnQgYnVpbGQ/CiAgKgkJQW0JCQkJ CU9pZCBvZiBpbmRleCBBTQogICoJCUFtQ2FjaGUJCQkJcHJpdmF0ZSBjYWNoZSBhcmVhIGZvciBp bmRleCBBTQogICoJCUNvbnRleHQJCQkJbWVtb3J5IGNvbnRleHQgaG9sZGluZyB0aGlzIEluZGV4 SW5mbwogICoKLSAqIGlpX0NvbmN1cnJlbnQsIGlpX0Jyb2tlbkhvdENoYWluLCBhbmQgaWlfUGFy YWxsZWxXb3JrZXJzIGFyZSB1c2VkIG9ubHkKLSAqIGR1cmluZyBpbmRleCBidWlsZDsgdGhleSdy ZSBjb252ZW50aW9uYWxseSB6ZXJvZWQgb3RoZXJ3aXNlLgorICogaWlfQ29uY3VycmVudCwgaWlf QnJva2VuSG90Q2hhaW4sIGlpX0F1eGlsaWFyeSBhbmQgaWlfUGFyYWxsZWxXb3JrZXJzCisgKiBh cmUgdXNlZCBvbmx5IGR1cmluZyBpbmRleCBidWlsZDsgdGhleSdyZSBjb252ZW50aW9uYWxseSB6 ZXJvZWQgb3RoZXJ3aXNlLgogICogLS0tLS0tLS0tLS0tLS0tLQogICovCiB0eXBlZGVmIHN0cnVj dCBJbmRleEluZm8KQEAgLTIwNiw2ICsyMDcsNyBAQCB0eXBlZGVmIHN0cnVjdCBJbmRleEluZm8K IAlib29sCQlpaV9TdW1tYXJpemluZzsKIAlib29sCQlpaV9XaXRob3V0T3ZlcmxhcHM7CiAJaW50 CQkJaWlfUGFyYWxsZWxXb3JrZXJzOworCWJvb2wJCWlpX0F1eGlsaWFyeTsKIAlPaWQJCQlpaV9B bTsKIAl2b2lkCSAgICppaV9BbUNhY2hlOwogCU1lbW9yeUNvbnRleHQgaWlfQ29udGV4dDsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2luZGV4X3NlbGZ1bmNzLmggYi9zcmMvaW5jbHVk ZS91dGlscy9pbmRleF9zZWxmdW5jcy5oCmluZGV4IGE0MWNkMmI3ZmQ5Li42MWYzZDNkZWEwYyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvaW5kZXhfc2VsZnVuY3MuaAorKysgYi9zcmMv aW5jbHVkZS91dGlscy9pbmRleF9zZWxmdW5jcy5oCkBAIC02Miw2ICs2MiwxNCBAQCBleHRlcm4g dm9pZCBzcGdjb3N0ZXN0aW1hdGUoc3RydWN0IFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCVNl bGVjdGl2aXR5ICppbmRleFNlbGVjdGl2aXR5LAogCQkJCQkJCWRvdWJsZSAqaW5kZXhDb3JyZWxh dGlvbiwKIAkJCQkJCQlkb3VibGUgKmluZGV4UGFnZXMpOworZXh0ZXJuIHZvaWQgc3RpcmNvc3Rl c3RpbWF0ZShzdHJ1Y3QgUGxhbm5lckluZm8gKnJvb3QsCisJCQkJCQkJc3RydWN0IEluZGV4UGF0 aCAqcGF0aCwKKwkJCQkJCQlkb3VibGUgbG9vcF9jb3VudCwKKwkJCQkJCQlDb3N0ICppbmRleFN0 YXJ0dXBDb3N0LAorCQkJCQkJCUNvc3QgKmluZGV4VG90YWxDb3N0LAorCQkJCQkJCVNlbGVjdGl2 aXR5ICppbmRleFNlbGVjdGl2aXR5LAorCQkJCQkJCWRvdWJsZSAqaW5kZXhDb3JyZWxhdGlvbiwK KwkJCQkJCQlkb3VibGUgKmluZGV4UGFnZXMpOwogZXh0ZXJuIHZvaWQgZ2luY29zdGVzdGltYXRl KHN0cnVjdCBQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQlzdHJ1Y3QgSW5kZXhQYXRoICpwYXRo LAogCQkJCQkJCWRvdWJsZSBsb29wX2NvdW50LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9hbXV0aWxzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYW11dGls cy5vdXQKaW5kZXggN2FiNjExM2M2MTkuLjkyYzAzM2EyMDEwIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2FtdXRpbHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvYW11dGlscy5vdXQKQEAgLTE3Myw3ICsxNzMsMTMgQEAgc2VsZWN0IGFtbmFtZSwgcHJv cCwgcGdfaW5kZXhhbV9oYXNfcHJvcGVydHkoYS5vaWQsIHByb3ApIGFzIHAKICBzcGdpc3QgfCBj YW5fZXhjbHVkZSAgIHwgdAogIHNwZ2lzdCB8IGNhbl9pbmNsdWRlICAgfCB0CiAgc3BnaXN0IHwg Ym9ndXMgICAgICAgICB8IAotKDM2IHJvd3MpCisgc3RpciAgIHwgY2FuX29yZGVyICAgICB8IGYK KyBzdGlyICAgfCBjYW5fdW5pcXVlICAgIHwgZgorIHN0aXIgICB8IGNhbl9tdWx0aV9jb2wgfCB0 Cisgc3RpciAgIHwgY2FuX2V4Y2x1ZGUgICB8IGYKKyBzdGlyICAgfCBjYW5faW5jbHVkZSAgIHwg dAorIHN0aXIgICB8IGJvZ3VzICAgICAgICAgfCAKKyg0MiByb3dzKQogCiAtLQogLS0gYWRkaXRp b25hbCBjaGVja3MgZm9yIHBnX2luZGV4X2NvbHVtbl9oYXNfcHJvcGVydHkKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CmluZGV4IGI2NzM2NDJhZDFkLi4yNjQ1ZDk3MDYy OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CkBAIC0yMTE5LDkg KzIxMTksMTAgQEAgRlJPTSBwZ19vcGNsYXNzIEFTIGMxCiBXSEVSRSBOT1QgRVhJU1RTKFNFTEVD VCAxIEZST00gcGdfYW1vcCBBUyBhMQogICAgICAgICAgICAgICAgICBXSEVSRSBhMS5hbW9wZmFt aWx5ID0gYzEub3BjZmFtaWx5CiAgICAgICAgICAgICAgICAgICAgQU5EIGJpbmFyeV9jb2VyY2li bGUoYzEub3BjaW50eXBlLCBhMS5hbW9wbGVmdHR5cGUpKTsKLSBvcGNuYW1lIHwgb3BjZmFtaWx5 IAotLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0oMCByb3dzKQorIG9wY25hbWUgIHwgb3BjZmFtaWx5 IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHN0aXJfb3BzIHwgICAgICA1NTU4CisoMSByb3cp CiAKIC0tIENoZWNrIHRoYXQgZWFjaCBvcGVyYXRvciBsaXN0ZWQgaW4gcGdfYW1vcCBoYXMgYW4g YXNzb2NpYXRlZCBvcGNsYXNzLAogLS0gdGhhdCBpcyBvbmUgd2hvc2Ugb3BjaW50eXBlIG1hdGNo ZXMgb3BybGVmdCAocG9zc2libHkgYnkgY29lcmNpb24pLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNx bC5vdXQKaW5kZXggMzZkYzMxYzE2YzQuLmE2ZDg2Y2I0Y2EwIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcHNxbC5vdXQKQEAgLTUwNzQsNyArNTA3NCw4IEBAIExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMK ICBoZWFwICAgfCBUYWJsZQogIGhlYXAyICB8IFRhYmxlCiAgc3BnaXN0IHwgSW5kZXgKLSg4IHJv d3MpCisgc3RpciAgIHwgSW5kZXgKKyg5IHJvd3MpCiAKIFxkQSAqCiBMaXN0IG9mIGFjY2VzcyBt ZXRob2RzCkBAIC01MDg4LDcgKzUwODksOCBAQCBMaXN0IG9mIGFjY2VzcyBtZXRob2RzCiAgaGVh cCAgIHwgVGFibGUKICBoZWFwMiAgfCBUYWJsZQogIHNwZ2lzdCB8IEluZGV4Ci0oOCByb3dzKQor IHN0aXIgICB8IEluZGV4CisoOSByb3dzKQogCiBcZEEgaCoKIExpc3Qgb2YgYWNjZXNzIG1ldGhv ZHMKQEAgLTUxMTMsOSArNTExNSw5IEBAIExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMKIAogXGRBOiBl eHRyYSBhcmd1bWVudCAiYmFyIiBpZ25vcmVkCiBcZEErCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMKLSAgTmFtZSAgfCBUeXBlICB8ICAgICAgIEhh bmRsZXIgICAgICAgIHwgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgICAgICAgICAgICAgCi0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2YgYWNjZXNzIG1ldGhvZHMKKyAgTmFtZSAgfCBUeXBlICB8ICAgICAgIEhhbmRsZXIgICAg ICAgIHwgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgIAorLS0tLS0t LS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYnJpbiAgIHwgSW5kZXggfCBicmluaGFuZGxlciAgICAg ICAgICB8IGJsb2NrIHJhbmdlIGluZGV4IChCUklOKSBhY2Nlc3MgbWV0aG9kCiAgYnRyZWUgIHwg SW5kZXggfCBidGhhbmRsZXIgICAgICAgICAgICB8IGItdHJlZSBpbmRleCBhY2Nlc3MgbWV0aG9k CiAgZ2luICAgIHwgSW5kZXggfCBnaW5oYW5kbGVyICAgICAgICAgICB8IEdJTiBpbmRleCBhY2Nl c3MgbWV0aG9kCkBAIC01MTI0LDEyICs1MTI2LDEzIEBAIExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMK ICBoZWFwICAgfCBUYWJsZSB8IGhlYXBfdGFibGVhbV9oYW5kbGVyIHwgaGVhcCB0YWJsZSBhY2Nl c3MgbWV0aG9kCiAgaGVhcDIgIHwgVGFibGUgfCBoZWFwX3RhYmxlYW1faGFuZGxlciB8IAogIHNw Z2lzdCB8IEluZGV4IHwgc3BnaGFuZGxlciAgICAgICAgICAgfCBTUC1HaVNUIGluZGV4IGFjY2Vz cyBtZXRob2QKLSg4IHJvd3MpCisgc3RpciAgIHwgSW5kZXggfCBzdGlyaGFuZGxlciAgICAgICAg ICB8IHNob3J0IHRlcm0gaW5kZXggcmVwbGFjZW1lbnQgYWNjZXNzIG1ldGhvZAorKDkgcm93cykK IAogXGRBKyAqCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgYWNjZXNzIG1l dGhvZHMKLSAgTmFtZSAgfCBUeXBlICB8ICAgICAgIEhhbmRsZXIgICAgICAgIHwgICAgICAgICAg ICAgIERlc2NyaXB0aW9uICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMKKyAg TmFtZSAgfCBUeXBlICB8ICAgICAgIEhhbmRsZXIgICAgICAgIHwgICAgICAgICAgICAgICAgRGVz Y3JpcHRpb24gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg YnJpbiAgIHwgSW5kZXggfCBicmluaGFuZGxlciAgICAgICAgICB8IGJsb2NrIHJhbmdlIGluZGV4 IChCUklOKSBhY2Nlc3MgbWV0aG9kCiAgYnRyZWUgIHwgSW5kZXggfCBidGhhbmRsZXIgICAgICAg ICAgICB8IGItdHJlZSBpbmRleCBhY2Nlc3MgbWV0aG9kCiAgZ2luICAgIHwgSW5kZXggfCBnaW5o YW5kbGVyICAgICAgICAgICB8IEdJTiBpbmRleCBhY2Nlc3MgbWV0aG9kCkBAIC01MTM4LDcgKzUx NDEsOCBAQCBMaXN0IG9mIGFjY2VzcyBtZXRob2RzCiAgaGVhcCAgIHwgVGFibGUgfCBoZWFwX3Rh YmxlYW1faGFuZGxlciB8IGhlYXAgdGFibGUgYWNjZXNzIG1ldGhvZAogIGhlYXAyICB8IFRhYmxl IHwgaGVhcF90YWJsZWFtX2hhbmRsZXIgfCAKICBzcGdpc3QgfCBJbmRleCB8IHNwZ2hhbmRsZXIg ICAgICAgICAgIHwgU1AtR2lTVCBpbmRleCBhY2Nlc3MgbWV0aG9kCi0oOCByb3dzKQorIHN0aXIg ICB8IEluZGV4IHwgc3RpcmhhbmRsZXIgICAgICAgICAgfCBzaG9ydCB0ZXJtIGluZGV4IHJlcGxh Y2VtZW50IGFjY2VzcyBtZXRob2QKKyg5IHJvd3MpCiAKIFxkQSsgaCoKICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMKLS0gCjIuNDMuMAoK --00000000000024b9660629cb89c8--