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 1uk1RJ-00Else-Oo for pgsql-hackers@arkaria.postgresql.org; Thu, 07 Aug 2025 14:17:54 +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 1uk1RI-004wzH-HO for pgsql-hackers@arkaria.postgresql.org; Thu, 07 Aug 2025 14:17:52 +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 1uk1RI-004wz9-2Q for pgsql-hackers@lists.postgresql.org; Thu, 07 Aug 2025 14:17:52 +0000 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uk1RE-001H2v-3A for pgsql-hackers@lists.postgresql.org; Thu, 07 Aug 2025 14:17:51 +0000 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-32106b0930eso1224083a91.0 for ; Thu, 07 Aug 2025 07:17:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754576267; x=1755181067; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=D4mp8yAUQfZmDsqL+Z7rj3oxEyiAu3LLZJZniA8hB+k=; b=bfsQBNlnVjafvp/mAxMMAGuaiFik1lXfd4dXIjkjeL6fCQqPthLbJR3g7SEQXLTfAA ip4IL09PLQKDWdIbJZ/62rXcsIE/zKUv73s53v/CmVJyy2VFj6hdV4mg+53SZkYnlgtM LfeS4pZ2/U1oP0M/VAOMAhSCZz2+E97dDiHGLA5ukqlkkoUKOTd2rxWK/GGtMXS6EPS7 uDi8HD2YkYWZG3wJiOCX5armb0PakgoejSDjBYLZWxOAvtH/mI28oJEDUlRZT0HqztxY w2WUGDHW3o/SWLMVPE0pv3AxQka2jYPfpkcCj5JMTZA93UrR2jvKd/SCiTOkTHcSoHWt VocQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754576267; x=1755181067; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=D4mp8yAUQfZmDsqL+Z7rj3oxEyiAu3LLZJZniA8hB+k=; b=njVGlZ/yFcyEBKQlbVeQgFd5tDeW0I5zl038epzgWjV0PbXi8CFcCuocU/AZHH+oMa 3ySi25TaT4wgdLSzNK9yRryimo4phYG4dG+uPPJqfRVFN0YkXp47wrTc71nHSOI2asB2 WhOnS9RiHKJTwWfoMu8crb9UwuwF8aDRpieXDMXQLtjsbLJ+yXQP6IJAKu0ZeirZogXO DDocxxzrOrz744pBTq9v89DuLQK8M5fPyhzsSIGt2VYtkICgnle5kO0PVXkIOqhu58J7 sPElKB70hfWVlJsY0OSGtsLv8/NUfqSWAb6xRgJs3D6j+mgZ2izii0hkFQSzsG4yNcDF oaZw== X-Gm-Message-State: AOJu0YwEBsbbjreewv90uPVrSp3FLqXtzJEDoTSRIDGgoJOq2QcP6w3+ Jv3tvRctrOHOrmJrd4FUL4Bj8cLrAttWOhBTGI2uCAvgQpb/tx8dcJwdRRnXgdU11U4Zricvghv cq7je0ugx7Yht6RnXisPJkmsHHjpC41sDPg== X-Gm-Gg: ASbGncvdN2Cjcg6hXuErSOmL04AdYBFqLnXs2F2BfZ995V/5sAcG1Qj+d2ZPIA8t5CN LP1O77Hfeid7xlqfiOPQ0qmbDjLAdFQnlXR+aIJFOc6Iq/vPMSS8mQo2vhxjNb20G88h0tGgW3S LlJvNEux8q1K0Y8tYoPiQ67oAK8gNiqomveD2IS3RNBKONDuLBdZlVPACx0LPWRDT52umX/J78C WElxf7w X-Google-Smtp-Source: AGHT+IHR3+ID8vqGWB5/85H1iScDWM1I2kwDkJI9EKhPz5MN6s0+WMLViogkXlaqxU05hbXj5Q3Kw/4uiYfys8E6Eb0= X-Received: by 2002:a17:90a:d607:b0:31e:ebb6:6499 with SMTP id 98e67ed59e1d1-32166cc68fdmr10015958a91.24.1754576266257; Thu, 07 Aug 2025 07:17:46 -0700 (PDT) MIME-Version: 1.0 From: Amul Sul Date: Thu, 7 Aug 2025 19:47:08 +0530 X-Gm-Features: Ac12FXyaowBqzP7F17KsJVpJFi0-gLEmL6YUJUVLpqBB2KrInniQdDUJluIIxgk Message-ID: Subject: pg_waldump: support decoding of WAL inside tarfile To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000161d88063bc71fd6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000161d88063bc71fd6 Content-Type: text/plain; charset="UTF-8" Hi All, Attaching patch to support a new feature that let pg_waldump decode WAL files directly from a tar archive. This was worked to address a limitation in pg_verifybackup[1], which couldn't parse WAL files from tar-formatted backups. The implementation will align with pg_waldump's existing xlogreader design, which uses three callback functions to manage WAL segments: open, read, and close. For tar archives, however, the approach will be simpler. Instead of using separate callbacks for opening and closing, the tar archive will be opened once at the start and closed explicitly at the end. The core logic will be in the WAL page reading callback. When xlogreader requests a new WAL page, this callback will be invoked. It will then call the archive streamer routine to read the WAL data from the tar archive into a buffer. This data will then be copied into xlogreader's own buffer, completing the read. Essentially, this is plumbing work: the new code will be responsible for getting WAL data from the tar archive and feeding it to the existing xlogreader. All other WAL page and record decoding logic, which is already robust within xlogreader, will be reused as is. This feature is being implemented in a series of patches as: - Refactoring: The first few patches (0001-0004) are dedicated to refactoring and minor code changes. - 005: This patch introduces the core functionality for pg_waldump to read WAL from a tar archive using the same archive streamer (fe_utils/astreamer.h) used in pg_verifybackup. This version requires WAL files in the archive to be in sequential order. - 006: This patch removes the sequential order restriction. If pg_waldump encounters an out-of-order WAL file, it writes the file to a temporary directory. The utility will then continue decoding and read from this temporary location later. - 007 and onwards: These patches will update pg_verifybackup to remove the restriction on WAL parsing for tar-formatted backups. 008 patch renames the "--wal-directory" switch to "--wal-path" to make it more generic, allowing it accepts a directory path or a tar archive path. ----------------------------------- Known Issues & Status: ----------------------------------- - Timeline Switching: The current implementation in patch 006 does not correctly handle timeline switching. This is a known issue, especially when a timeline change occurs on a WAL file that has been written to a temporary location. - Testing: Local regression tests on CentOS and macOS M4 are passing. However, some tests on macOS Sonoma (specifically 008_untar.pl and 010_client_untar.pl) are failing in the GitHub workflow with a "WAL parsing failed for timeline 1" error. This issue is currently being investigated. Please take a look at the attached patch and let me know your thoughts. This is an initial version, and I am making incremental improvements to address known issues and limitations. 1] https://git.postgresql.org/pg/commitdiff/8dfd3129027969fdd2d9d294220c867d2efd84aa -- Regards, Amul Sul EDB: http://www.enterprisedb.com --000000000000161d88063bc71fd6 Content-Type: application/x-patch; name="v1-0001-Refactor-pg_waldump-Move-some-declarations-to-new.patch" Content-Disposition: attachment; filename="v1-0001-Refactor-pg_waldump-Move-some-declarations-to-new.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me1gf9bt0 RnJvbSA0MjBhYjRlMDU1NjZmODFmYjE1NDg4YWU3MDYwYjlkNTY0ODk5NGI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjQgSnVuIDIwMjUgMTE6MzM6MjAgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxIDEvOV0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IE1vdmUgc29tZSBkZWNsYXJhdGlvbnMgdG8gbmV3CiBwZ193YWxk dW1wLmgKClRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIGFkZGluZyBhIHNlY29uZCBzb3VyY2Ug ZmlsZSB0byB0aGlzCmRpcmVjdG9yeS4KLS0tCiBzcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVt cC5jIHwgMTEgKystLS0tLS0tLS0KIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmggfCAy NyArKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0 aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmluL3BnX3dh bGR1bXAvcGdfd2FsZHVtcC5oCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dh bGR1bXAuYyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggMTNkM2VjMmY1 YmUuLmE0OWIyZmQ5NmM3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVt cC5jCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTI5LDYgKzI5LDcg QEAKICNpbmNsdWRlICJjb21tb24vbG9nZ2luZy5oIgogI2luY2x1ZGUgImNvbW1vbi9yZWxwYXRo LmgiCiAjaW5jbHVkZSAiZ2V0b3B0X2xvbmcuaCIKKyNpbmNsdWRlICJwZ193YWxkdW1wLmgiCiAj aW5jbHVkZSAicm1ncmRlc2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1ZnBhZ2UuaCIKIApAQCAt MzksMTkgKzQwLDExIEBACiAKIHN0YXRpYyBjb25zdCBjaGFyICpwcm9nbmFtZTsKIAotc3RhdGlj IGludAlXYWxTZWdTejsKK2ludAkJCVdhbFNlZ1N6ID0gREVGQVVMVF9YTE9HX1NFR19TSVpFOwog c3RhdGljIHZvbGF0aWxlIHNpZ19hdG9taWNfdCB0aW1lX3RvX3N0b3AgPSBmYWxzZTsKIAogc3Rh dGljIGNvbnN0IFJlbEZpbGVMb2NhdG9yIGVtcHR5UmVsRmlsZUxvY2F0b3IgPSB7MCwgMCwgMH07 CiAKLXR5cGVkZWYgc3RydWN0IFhMb2dEdW1wUHJpdmF0ZQotewotCVRpbWVMaW5lSUQJdGltZWxp bmU7Ci0JWExvZ1JlY1B0cglzdGFydHB0cjsKLQlYTG9nUmVjUHRyCWVuZHB0cjsKLQlib29sCQll bmRwdHJfcmVhY2hlZDsKLX0gWExvZ0R1bXBQcml2YXRlOwotCiB0eXBlZGVmIHN0cnVjdCBYTG9n RHVtcENvbmZpZwogewogCS8qIGRpc3BsYXkgb3B0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaCBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1w LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNkOWEzNmQ3NDQ3Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaApAQCAtMCww ICsxLDI3IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ193YWxkdW1wLmggLSBkZWNv ZGUgYW5kIGRpc3BsYXkgV0FMCisgKgorICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICogSURFTlRJRklDQVRJT04KKyAq CQkgIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICovCisjaWZuZGVmIFBHX1dBTERVTVBfSAorI2RlZmluZSBQR19XQUxEVU1QX0gKKworI2luY2x1 ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgorCitleHRlcm4gaW50IFdhbFNlZ1N6OworCisvKiBDb250 YWlucyB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIGRyaXZlIFdBTCBkZWNvZGluZyAqLwor dHlwZWRlZiBzdHJ1Y3QgWExvZ0R1bXBQcml2YXRlCit7CisJVGltZUxpbmVJRAl0aW1lbGluZTsK KwlYTG9nUmVjUHRyCXN0YXJ0cHRyOworCVhMb2dSZWNQdHIJZW5kcHRyOworCWJvb2wJCWVuZHB0 cl9yZWFjaGVkOworfSBYTG9nRHVtcFByaXZhdGU7CisKKyNlbmRpZgkJLyogZW5kIG9mIFBHX1dB TERVTVBfSCAqLwotLSAKMi40Ny4xCgo= --000000000000161d88063bc71fd6 Content-Type: application/x-patch; name="v1-0002-Refactor-pg_waldump-Separate-logic-used-to-calcul.patch" Content-Disposition: attachment; filename="v1-0002-Refactor-pg_waldump-Separate-logic-used-to-calcul.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me1gfd6o1 RnJvbSAzMGEyMjZiMWFlNWNlM2QxNDYwYmIzMzU5Yzk2YTRlOWE5M2Q2YjMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjYgSnVuIDIwMjUgMTE6NDI6NTMgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxIDIvOV0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IFNlcGFyYXRlIGxvZ2ljIHVzZWQgdG8gY2FsY3VsYXRlCiB0aGUg cmVxdWlyZWQgcmVhZCBzaXplLgoKVGhpcyByZWZhY3RvcmluZyBwcmVwYXJlcyB0aGUgY29kZWJh c2UgZm9yIGFuIHVwY29taW5nIHBhdGNoIHRoYXQgd2lsbApzdXBwb3J0IHJlYWRpbmcgV0FMIGZy b20gdGFyIGZpbGVzLiBUaGUgbG9naWMgZm9yIGNhbGN1bGF0aW5nIHRoZQpyZXF1aXJlZCByZWFk IHNpemUgaGFzIGJlZW4gdXBkYXRlZCB0byBoYW5kbGUgYm90aCBub3JtYWwgV0FMIGZpbGVzCmFu ZCBXQUwgZmlsZXMgbG9jYXRlZCBpbnNpZGUgYSB0YXIgYXJjaGl2ZS4KLS0tCiBzcmMvYmluL3Bn X3dhbGR1bXAvcGdfd2FsZHVtcC5jIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyBiL3NyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggYTQ5YjJmZDk2YzcuLjhkMGNkOWU3MTU2IDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTMyNiw2ICszMjYsMjkgQEAgaWRlbnRpZnlfdGFyZ2V0 X2RpcmVjdG9yeShjaGFyICpkaXJlY3RvcnksIGNoYXIgKmZuYW1lKQogCXJldHVybiBOVUxMOwkJ CQkvKiBub3QgcmVhY2hlZCAqLwogfQogCisvKiBSZXR1cm5zIHRoZSBzaXplIGluIGJ5dGVzIG9m IHRoZSBkYXRhIHRvIGJlIHJlYWQuICovCitzdGF0aWMgaW5saW5lIGludAorcmVxdWlyZWRfcmVh ZF9sZW4oWExvZ0R1bXBQcml2YXRlICpwcml2YXRlLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIs CisJCQkJICBpbnQgcmVxTGVuKQoreworCWludAkJCWNvdW50ID0gWExPR19CTENLU1o7CisKKwlp ZiAocHJpdmF0ZS0+ZW5kcHRyICE9IEludmFsaWRYTG9nUmVjUHRyKQorCXsKKwkJaWYgKHRhcmdl dFBhZ2VQdHIgKyBYTE9HX0JMQ0tTWiA8PSBwcml2YXRlLT5lbmRwdHIpCisJCQljb3VudCA9IFhM T0dfQkxDS1NaOworCQllbHNlIGlmICh0YXJnZXRQYWdlUHRyICsgcmVxTGVuIDw9IHByaXZhdGUt PmVuZHB0cikKKwkJCWNvdW50ID0gcHJpdmF0ZS0+ZW5kcHRyIC0gdGFyZ2V0UGFnZVB0cjsKKwkJ ZWxzZQorCQl7CisJCQlwcml2YXRlLT5lbmRwdHJfcmVhY2hlZCA9IHRydWU7CisJCQlyZXR1cm4g LTE7CisJCX0KKwl9CisKKwlyZXR1cm4gY291bnQ7Cit9CisKIC8qIHBnX3dhbGR1bXAncyBYTG9n UmVhZGVyUm91dGluZS0+c2VnbWVudF9vcGVuIGNhbGxiYWNrICovCiBzdGF0aWMgdm9pZAogV0FM RHVtcE9wZW5TZWdtZW50KFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhMb2dTZWdObyBuZXh0U2Vn Tm8sCkBAIC0zODMsMjEgKzQwNiwxMSBAQCBXQUxEdW1wUmVhZFBhZ2UoWExvZ1JlYWRlclN0YXRl ICpzdGF0ZSwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBpbnQgcmVxTGVuLAogCQkJCVhMb2dS ZWNQdHIgdGFyZ2V0UHRyLCBjaGFyICpyZWFkQnVmZikKIHsKIAlYTG9nRHVtcFByaXZhdGUgKnBy aXZhdGUgPSBzdGF0ZS0+cHJpdmF0ZV9kYXRhOwotCWludAkJCWNvdW50ID0gWExPR19CTENLU1o7 CisJaW50CQkJY291bnQgPSByZXF1aXJlZF9yZWFkX2xlbihwcml2YXRlLCB0YXJnZXRQYWdlUHRy LCByZXFMZW4pOwogCVdBTFJlYWRFcnJvciBlcnJpbmZvOwogCi0JaWYgKHByaXZhdGUtPmVuZHB0 ciAhPSBJbnZhbGlkWExvZ1JlY1B0cikKLQl7Ci0JCWlmICh0YXJnZXRQYWdlUHRyICsgWExPR19C TENLU1ogPD0gcHJpdmF0ZS0+ZW5kcHRyKQotCQkJY291bnQgPSBYTE9HX0JMQ0tTWjsKLQkJZWxz ZSBpZiAodGFyZ2V0UGFnZVB0ciArIHJlcUxlbiA8PSBwcml2YXRlLT5lbmRwdHIpCi0JCQljb3Vu dCA9IHByaXZhdGUtPmVuZHB0ciAtIHRhcmdldFBhZ2VQdHI7Ci0JCWVsc2UKLQkJewotCQkJcHJp dmF0ZS0+ZW5kcHRyX3JlYWNoZWQgPSB0cnVlOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JfQorCWlm IChwcml2YXRlLT5lbmRwdHJfcmVhY2hlZCkKKwkJcmV0dXJuIC0xOwogCiAJaWYgKCFXQUxSZWFk KHN0YXRlLCByZWFkQnVmZiwgdGFyZ2V0UGFnZVB0ciwgY291bnQsIHByaXZhdGUtPnRpbWVsaW5l LAogCQkJCSAmZXJyaW5mbykpCi0tIAoyLjQ3LjEKCg== --000000000000161d88063bc71fd6 Content-Type: application/x-patch; name="v1-0003-Refactor-pg_waldump-Restructure-TAP-tests.patch" Content-Disposition: attachment; filename="v1-0003-Refactor-pg_waldump-Restructure-TAP-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me1gfigc2 RnJvbSA5ZTkxMjE0MzNmZjQzOTQyMzg2OThiZDI3YjM0MTFkYWFjZTVmZDg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMzAgSnVsIDIwMjUgMTI6NDM6MzAgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxIDMvOV0gUmVm YWN0b3I6IHBnX3dhbGR1bXA6IFJlc3RydWN0dXJlIFRBUCB0ZXN0cy4KClJlc3RydWN0dXJlZCBz b21lIHRlc3RzIHRvIHJ1biBpbnNpZGUgYSBsb29wLCBmYWNpbGl0YXRpbmcgdGhlaXIKcmUtZXhl Y3V0aW9uIGZvciBkZWNvZGluZyBXQUwgZnJvbSB0YXIgYXJjaGl2ZXMuCi0tLQogc3JjL2Jpbi9w Z193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsIHwgMTIzICsrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4v cGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAppbmRleCBmMjZkNzVlMDFjZi4uMWI3MTJlOGQ3NGQg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMv YmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwKQEAgLTE5OCwyOCArMTk4LDYgQEAgY29tbWFu ZF9saWtlKAogCV0sCiAJcXIvLi8sCiAJJ3J1bnMgd2l0aCBzdGFydCBhbmQgZW5kIHNlZ21lbnQg c3BlY2lmaWVkJyk7Ci1jb21tYW5kX2ZhaWxzX2xpa2UoCi0JWyAncGdfd2FsZHVtcCcsICctLXBh dGgnID0+ICRub2RlLT5kYXRhX2RpciBdLAotCXFyL2Vycm9yOiBubyBzdGFydCBXQUwgbG9jYXRp b24gZ2l2ZW4vLAotCSdwYXRoIG9wdGlvbiByZXF1aXJlcyBzdGFydCBsb2NhdGlvbicpOwotY29t bWFuZF9saWtlKAotCVsKLQkJJ3BnX3dhbGR1bXAnLAotCQknLS1wYXRoJyA9PiAkbm9kZS0+ZGF0 YV9kaXIsCi0JCSctLXN0YXJ0JyA9PiAkc3RhcnRfbHNuLAotCQknLS1lbmQnID0+ICRlbmRfbHNu LAotCV0sCi0JcXIvLi8sCi0JJ3J1bnMgd2l0aCBwYXRoIG9wdGlvbiBhbmQgc3RhcnQgYW5kIGVu ZCBsb2NhdGlvbnMnKTsKLWNvbW1hbmRfZmFpbHNfbGlrZSgKLQlbCi0JCSdwZ193YWxkdW1wJywK LQkJJy0tcGF0aCcgPT4gJG5vZGUtPmRhdGFfZGlyLAotCQknLS1zdGFydCcgPT4gJHN0YXJ0X2xz biwKLQldLAotCXFyL2Vycm9yOiBlcnJvciBpbiBXQUwgcmVjb3JkIGF0LywKLQknZmFsbGluZyBv ZmYgdGhlIGVuZCBvZiB0aGUgV0FMIHJlc3VsdHMgaW4gYW4gZXJyb3InKTsKLQogY29tbWFuZF9s aWtlKAogCVsKIAkJJ3BnX3dhbGR1bXAnLCAnLS1xdWlldCcsCkBAIC0yMjcsMTUgKzIwNSw2IEBA IGNvbW1hbmRfbGlrZSgKIAldLAogCXFyL14kLywKIAknbm8gb3V0cHV0IHdpdGggLS1xdWlldCBv cHRpb24nKTsKLWNvbW1hbmRfZmFpbHNfbGlrZSgKLQlbCi0JCSdwZ193YWxkdW1wJywgJy0tcXVp ZXQnLAotCQknLS1wYXRoJyA9PiAkbm9kZS0+ZGF0YV9kaXIsCi0JCSctLXN0YXJ0JyA9PiAkc3Rh cnRfbHNuCi0JXSwKLQlxci9lcnJvcjogZXJyb3IgaW4gV0FMIHJlY29yZCBhdC8sCi0JJ2Vycm9y cyBhcmUgc2hvd24gd2l0aCAtLXF1aWV0Jyk7Ci0KIAogIyBUZXN0IGZvcjogRGlzcGxheSBhIG1l c3NhZ2UgdGhhdCB3ZSdyZSBza2lwcGluZyBkYXRhIGlmIGBmcm9tYAogIyB3YXNuJ3QgYSBwb2lu dGVyIHRvIHRoZSBzdGFydCBvZiBhIHJlY29yZC4KQEAgLTI3Miw3ICsyNDEsNiBAQCBzdWIgdGVz dF9wZ193YWxkdW1wCiAKIAlteSAkcmVzdWx0ID0gSVBDOjpSdW46OnJ1biBbCiAJCSdwZ193YWxk dW1wJywKLQkJJy0tcGF0aCcgPT4gJG5vZGUtPmRhdGFfZGlyLAogCQknLS1zdGFydCcgPT4gJHN0 YXJ0X2xzbiwKIAkJJy0tZW5kJyA9PiAkZW5kX2xzbiwKIAkJQG9wdHMKQEAgLTI4OCwzOCArMjU2 LDgxIEBAIHN1YiB0ZXN0X3BnX3dhbGR1bXAKIAogbXkgQGxpbmVzOwogCi1AbGluZXMgPSB0ZXN0 X3BnX3dhbGR1bXA7Ci1pcyhncmVwKCEvXnJtZ3I6IFx3LywgQGxpbmVzKSwgMCwgJ2FsbCBvdXRw dXQgbGluZXMgYXJlIHJtZ3IgbGluZXMnKTsKK215IEBzY2VuYXJpbyA9ICgKKwl7CisJCSdwYXRo JyA9PiAkbm9kZS0+ZGF0YV9kaXIKKwl9KTsKIAotQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCct LWxpbWl0JyA9PiA2KTsKLWlzKEBsaW5lcywgNiwgJ2xpbWl0IG9wdGlvbiBvYnNlcnZlZCcpOwor Zm9yIG15ICRzY2VuYXJpbyAoQHNjZW5hcmlvKQoreworCW15ICRwYXRoID0gJHNjZW5hcmlvLT57 J3BhdGgnfTsKIAotQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLWZ1bGxwYWdlJyk7Ci1pcyhn cmVwKCEvXnJtZ3I6LipcYkZQV1xiLywgQGxpbmVzKSwgMCwgJ2FsbCBvdXRwdXQgbGluZXMgYXJl IEZQVycpOworCVNLSVA6CisJeworCQljb21tYW5kX2ZhaWxzX2xpa2UoCisJCQlbICdwZ193YWxk dW1wJywgJy0tcGF0aCcgPT4gJHBhdGggXSwKKwkJCXFyL2Vycm9yOiBubyBzdGFydCBXQUwgbG9j YXRpb24gZ2l2ZW4vLAorCQkJJ3BhdGggb3B0aW9uIHJlcXVpcmVzIHN0YXJ0IGxvY2F0aW9uJyk7 CisJCWNvbW1hbmRfbGlrZSgKKwkJCVsKKwkJCQkncGdfd2FsZHVtcCcsCisJCQkJJy0tcGF0aCcg PT4gJHBhdGgsCisJCQkJJy0tc3RhcnQnID0+ICRzdGFydF9sc24sCisJCQkJJy0tZW5kJyA9PiAk ZW5kX2xzbiwKKwkJCV0sCisJCQlxci8uLywKKwkJCSdydW5zIHdpdGggcGF0aCBvcHRpb24gYW5k IHN0YXJ0IGFuZCBlbmQgbG9jYXRpb25zJyk7CisJCWNvbW1hbmRfZmFpbHNfbGlrZSgKKwkJCVsK KwkJCQkncGdfd2FsZHVtcCcsCisJCQkJJy0tcGF0aCcgPT4gJHBhdGgsCisJCQkJJy0tc3RhcnQn ID0+ICRzdGFydF9sc24sCisJCQldLAorCQkJcXIvZXJyb3I6IGVycm9yIGluIFdBTCByZWNvcmQg YXQvLAorCQkJJ2ZhbGxpbmcgb2ZmIHRoZSBlbmQgb2YgdGhlIFdBTCByZXN1bHRzIGluIGFuIGVy cm9yJyk7CiAKLUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1zdGF0cycpOwotbGlrZSgkbGlu ZXNbMF0sIHFyL1dBTCBzdGF0aXN0aWNzLywgInN0YXRpc3RpY3Mgb24gc3Rkb3V0Iik7Ci1pcyhn cmVwKC9ecm1ncjovLCBAbGluZXMpLCAwLCAnbm8gcm1nciBsaW5lcyBvdXRwdXQnKTsKKwkJY29t bWFuZF9mYWlsc19saWtlKAorCQkJWworCQkJCSdwZ193YWxkdW1wJywgJy0tcXVpZXQnLAorCQkJ CSctLXBhdGgnID0+ICRwYXRoLAorCQkJCSctLXN0YXJ0JyA9PiAkc3RhcnRfbHNuCisJCQldLAor CQkJcXIvZXJyb3I6IGVycm9yIGluIFdBTCByZWNvcmQgYXQvLAorCQkJJ2Vycm9ycyBhcmUgc2hv d24gd2l0aCAtLXF1aWV0Jyk7CiAKLUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1zdGF0cz1y ZWNvcmQnKTsKLWxpa2UoJGxpbmVzWzBdLCBxci9XQUwgc3RhdGlzdGljcy8sICJzdGF0aXN0aWNz IG9uIHN0ZG91dCIpOwotaXMoZ3JlcCgvXnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3IgbGlu ZXMgb3V0cHV0Jyk7CisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0 aCk7CisJCWlzKGdyZXAoIS9ecm1ncjogXHcvLCBAbGluZXMpLCAwLCAnYWxsIG91dHB1dCBsaW5l cyBhcmUgcm1nciBsaW5lcycpOwogCi1AbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcm1ncicg PT4gJ0J0cmVlJyk7Ci1pcyhncmVwKCEvXnJtZ3I6IEJ0cmVlLywgQGxpbmVzKSwgMCwgJ29ubHkg QnRyZWUgbGluZXMnKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRw YXRoLCAnLS1saW1pdCcgPT4gNik7CisJCWlzKEBsaW5lcywgNiwgJ2xpbWl0IG9wdGlvbiBvYnNl cnZlZCcpOwogCi1AbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tZm9yaycgPT4gJ2luaXQnKTsK LWlzKGdyZXAoIS9mb3JrIGluaXQvLCBAbGluZXMpLCAwLCAnb25seSBpbml0IGZvcmsgbGluZXMn KTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1mdWxs cGFnZScpOworCQlpcyhncmVwKCEvXnJtZ3I6LipcYkZQV1xiLywgQGxpbmVzKSwgMCwgJ2FsbCBv dXRwdXQgbGluZXMgYXJlIEZQVycpOwogCi1AbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoCi0JJy0t cmVsYXRpb24nID0+ICIkZGVmYXVsdF90c19vaWQvJHBvc3RncmVzX2RiX29pZC8kcmVsX3QxX29p ZCIpOwotaXMoZ3JlcCghL3JlbCAkZGVmYXVsdF90c19vaWRcLyRwb3N0Z3Jlc19kYl9vaWRcLyRy ZWxfdDFfb2lkLywgQGxpbmVzKSwKLQkwLCAnb25seSBsaW5lcyBmb3Igc2VsZWN0ZWQgcmVsYXRp b24nKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1z dGF0cycpOworCQlsaWtlKCRsaW5lc1swXSwgcXIvV0FMIHN0YXRpc3RpY3MvLCAic3RhdGlzdGlj cyBvbiBzdGRvdXQiKTsKKwkJaXMoZ3JlcCgvXnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3Ig bGluZXMgb3V0cHV0Jyk7CiAKLUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgKLQknLS1yZWxhdGlv bicgPT4gIiRkZWZhdWx0X3RzX29pZC8kcG9zdGdyZXNfZGJfb2lkLyRyZWxfaTFhX29pZCIsCi0J Jy0tYmxvY2snID0+IDEpOwotaXMoZ3JlcCghL1xiYmxrIDFcYi8sIEBsaW5lcyksIDAsICdvbmx5 IGxpbmVzIGZvciBzZWxlY3RlZCBibG9jaycpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAo Jy0tcGF0aCcgPT4gJHBhdGgsICctLXN0YXRzPXJlY29yZCcpOworCQlsaWtlKCRsaW5lc1swXSwg cXIvV0FMIHN0YXRpc3RpY3MvLCAic3RhdGlzdGljcyBvbiBzdGRvdXQiKTsKKwkJaXMoZ3JlcCgv XnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3IgbGluZXMgb3V0cHV0Jyk7CiAKKwkJQGxpbmVz ID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1ybWdyJyA9PiAnQnRyZWUn KTsKKwkJaXMoZ3JlcCghL15ybWdyOiBCdHJlZS8sIEBsaW5lcyksIDAsICdvbmx5IEJ0cmVlIGxp bmVzJyk7CisKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAn LS1mb3JrJyA9PiAnaW5pdCcpOworCQlpcyhncmVwKCEvZm9yayBpbml0LywgQGxpbmVzKSwgMCwg J29ubHkgaW5pdCBmb3JrIGxpbmVzJyk7CisKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCct LXBhdGgnID0+ICRwYXRoLAorCQkJJy0tcmVsYXRpb24nID0+ICIkZGVmYXVsdF90c19vaWQvJHBv c3RncmVzX2RiX29pZC8kcmVsX3QxX29pZCIpOworCQlpcyhncmVwKCEvcmVsICRkZWZhdWx0X3Rz X29pZFwvJHBvc3RncmVzX2RiX29pZFwvJHJlbF90MV9vaWQvLCBAbGluZXMpLAorCQkJMCwgJ29u bHkgbGluZXMgZm9yIHNlbGVjdGVkIHJlbGF0aW9uJyk7CisKKwkJQGxpbmVzID0gdGVzdF9wZ193 YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLAorCQkJJy0tcmVsYXRpb24nID0+ICIkZGVmYXVsdF90 c19vaWQvJHBvc3RncmVzX2RiX29pZC8kcmVsX2kxYV9vaWQiLAorCQkJJy0tYmxvY2snID0+IDEp OworCQlpcyhncmVwKCEvXGJibGsgMVxiLywgQGxpbmVzKSwgMCwgJ29ubHkgbGluZXMgZm9yIHNl bGVjdGVkIGJsb2NrJyk7CisJfQorfQogCiBkb25lX3Rlc3RpbmcoKTsKLS0gCjIuNDcuMQoK --000000000000161d88063bc71fd6 Content-Type: application/x-patch; name="v1-0004-pg_waldump-Rename-directory-creation-routine-for-.patch" Content-Disposition: attachment; filename="v1-0004-pg_waldump-Rename-directory-creation-routine-for-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me1gfndc3 RnJvbSA1ODA2MjkxNGZiNTZhYTRmOGUwMDVkYmQyNGUwNzIyNTFmMzE1MGI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjkgSnVsIDIwMjUgMTQ6NTk6MDEgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxIDQvOV0gcGdf d2FsZHVtcDogUmVuYW1lIGRpcmVjdG9yeSBjcmVhdGlvbiByb3V0aW5lIGZvcgogZ2VuZXJhbGl6 ZWQgdXNlLgoKVGhlIGNyZWF0ZV9mdWxscGFnZV9kaXJlY3RvcnkoKSBmdW5jdGlvbiwgY3VycmVu dGx5IHVzZWQgb25seSBmb3IKc3RvcmluZyBmdWxsLXBhZ2UgaW1hZ2VzIGZyb20gV0FMIHJlY29y ZHMsIHNob3VsZCBiZSByZW5hbWVkIHRvIGEgbW9yZQpnZW5lcmFsaXplZCBuYW1lLiBUaGlzIHdv dWxkIGFsbG93IGl0IHRvIGJlIHJldXNlZCBpbiBmdXR1cmUgcGF0Y2hlcwpmb3IgY3JlYXRpbmcg b3RoZXIgZGlyZWN0b3JpZXMgYXMgbmVlZGVkLgotLS0KIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193 YWxkdW1wLmMgfCAxMiArKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dh bGR1bXAuYyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggOGQwY2Q5ZTcx NTYuLjQ3NzUyNzVjMDdhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVt cC5jCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTExNCwxMSArMTE0 LDExIEBAIHZlcmlmeV9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyZWN0b3J5KQogfQogCiAvKgot ICogQ3JlYXRlIGlmIG5lY2Vzc2FyeSB0aGUgZGlyZWN0b3J5IHN0b3JpbmcgdGhlIGZ1bGwtcGFn ZSBpbWFnZXMgZXh0cmFjdGVkCi0gKiBmcm9tIHRoZSBXQUwgcmVjb3JkcyByZWFkLgorICogQ3Jl YXRlIHRoZSBkaXJlY3RvcnkgaWYgaXQgZG9lc24ndCBleGlzdC4gUmVwb3J0IGFuIGVycm9yIGlm IGNyZWF0aW9uIGZhaWxzCisgKiBvciBpZiBhbiBleGlzdGluZyBkaXJlY3RvcnkgaXMgbm90IGVt cHR5LgogICovCiBzdGF0aWMgdm9pZAotY3JlYXRlX2Z1bGxwYWdlX2RpcmVjdG9yeShjaGFyICpw YXRoKQorY3JlYXRlX2RpcmVjdG9yeShjaGFyICpwYXRoKQogewogCWludAkJCXJldDsKIApAQCAt MTExMiw4ICsxMTEyLDEyIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAJfQog CisJLyoKKwkgKiBDcmVhdGUgaWYgbmVjZXNzYXJ5IHRoZSBkaXJlY3Rvcnkgc3RvcmluZyB0aGUg ZnVsbC1wYWdlIGltYWdlcworCSAqIGV4dHJhY3RlZCBmcm9tIHRoZSBXQUwgcmVjb3JkcyByZWFk LgorCSAqLwogCWlmIChjb25maWcuc2F2ZV9mdWxscGFnZV9wYXRoICE9IE5VTEwpCi0JCWNyZWF0 ZV9mdWxscGFnZV9kaXJlY3RvcnkoY29uZmlnLnNhdmVfZnVsbHBhZ2VfcGF0aCk7CisJCWNyZWF0 ZV9kaXJlY3RvcnkoY29uZmlnLnNhdmVfZnVsbHBhZ2VfcGF0aCk7CiAKIAkvKiBwYXJzZSBmaWxl cyBhcyBzdGFydC9lbmQgYm91bmRhcmllcywgZXh0cmFjdCBwYXRoIGlmIG5vdCBzcGVjaWZpZWQg Ki8KIAlpZiAob3B0aW5kIDwgYXJnYykKLS0gCjIuNDcuMQoK --000000000000161d88063bc71fd6 Content-Type: application/x-patch; name="v1-0005-pg_waldump-Add-support-for-archived-WAL-decoding.patch" Content-Disposition: attachment; filename="v1-0005-pg_waldump-Add-support-for-archived-WAL-decoding.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me1gfs5v4 RnJvbSAyMWQ5ZDYwNGNhNGI0YWIwOGM1YmMzMmRlY2YxYWZjOGQ4ODFjNDNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMTYgSnVsIDIwMjUgMTg6Mzc6NTkgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxIDUvOV0gcGdf d2FsZHVtcDogQWRkIHN1cHBvcnQgZm9yIGFyY2hpdmVkIFdBTCBkZWNvZGluZy4KCnBnX3dhbGR1 bXAgY2FuIG5vdyBhY2NlcHQgdGhlIHBhdGggdG8gYSB0YXIgYXJjaGl2ZSBjb250YWluaW5nIFdB TApmaWxlcyBhbmQgZGVjb2RlIHRoZW0uIFRoaXMgZmVhdHVyZSB3YXMgYWRkZWQgcHJpbWFyaWx5 IGZvcgpwZ192ZXJpZnliYWNrdXAsIHdoaWNoIHByZXZpb3VzbHkgZGlzYWJsZWQgV0FMIHBhcnNp bmcgZm9yCnRhci1mb3JtYXR0ZWQgYmFja3Vwcy4KCk5vdGUgdGhhdCB0aGlzIHBhdGNoIHJlcXVp cmVzIHRoYXQgdGhlIFdBTCBmaWxlcyB3aXRoaW4gdGhlIGFyY2hpdmUgYmUKaW4gc2VxdWVudGlh bCBvcmRlcjsgYW4gZXJyb3Igd2lsbCBiZSByZXBvcnRlZCBvdGhlcndpc2UuIFRoZSBuZXh0CnBh dGNoIGlzIHBsYW5uZWQgdG8gcmVtb3ZlIHRoaXMgcmVzdHJpY3Rpb24uCi0tLQogZG9jL3NyYy9z Z21sL3JlZi9wZ193YWxkdW1wLnNnbWwgICAgICAgfCAgIDggKy0KIHNyYy9iaW4vcGdfd2FsZHVt cC9NYWtlZmlsZSAgICAgICAgICAgIHwgICA3ICstCiBzcmMvYmluL3BnX3dhbGR1bXAvYXN0cmVh bWVyX3dhbGR1bXAuYyB8IDM3OCArKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmluL3Bn X3dhbGR1bXAvbWVzb24uYnVpbGQgICAgICAgICB8ICAgNCArLQogc3JjL2Jpbi9wZ193YWxkdW1w L3BnX3dhbGR1bXAuYyAgICAgICAgfCAzNjEgKysrKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9i aW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmggICAgICAgIHwgIDIxICstCiBzcmMvYmluL3BnX3dh bGR1bXAvdC8wMDFfYmFzaWMucGwgICAgICB8ICA2NCArKysrLQogc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QgICAgICAgfCAgIDEgKwogOCBmaWxlcyBjaGFuZ2VkLCA3NjUgaW5zZXJ0 aW9ucygrKSwgNzkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2Jpbi9wZ193 YWxkdW1wL2FzdHJlYW1lcl93YWxkdW1wLmMKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L3BnX3dhbGR1bXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfd2FsZHVtcC5zZ21sCmluZGV4 IGNlMjNhZGQ1NTc3Li5kMDA0YmIwZjY3ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9w Z193YWxkdW1wLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ193YWxkdW1wLnNnbWwKQEAg LTE0MSwxMyArMTQxLDE3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAgICAgPHRlcm0+ PG9wdGlvbj4tLXBhdGg9PHJlcGxhY2VhYmxlPnBhdGg8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwv dGVybT4KICAgICAgIDxsaXN0aXRlbT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgU3BlY2lmaWVz IGEgZGlyZWN0b3J5IHRvIHNlYXJjaCBmb3IgV0FMIHNlZ21lbnQgZmlsZXMgb3IgYQotICAgICAg ICBkaXJlY3Rvcnkgd2l0aCBhIDxsaXRlcmFsPnBnX3dhbDwvbGl0ZXJhbD4gc3ViZGlyZWN0b3J5 IHRoYXQKKyAgICAgICAgU3BlY2lmaWVzIGEgdGFyIGFyY2hpdmUgb3IgYSBkaXJlY3RvcnkgdG8g c2VhcmNoIGZvciBXQUwgc2VnbWVudCBmaWxlcworICAgICAgICBvciBhIGRpcmVjdG9yeSB3aXRo IGEgPGxpdGVyYWw+cGdfd2FsPC9saXRlcmFsPiBzdWJkaXJlY3RvcnkgdGhhdAogICAgICAgICBj b250YWlucyBzdWNoIGZpbGVzLiAgVGhlIGRlZmF1bHQgaXMgdG8gc2VhcmNoIGluIHRoZSBjdXJy ZW50CiAgICAgICAgIGRpcmVjdG9yeSwgdGhlIDxsaXRlcmFsPnBnX3dhbDwvbGl0ZXJhbD4gc3Vi ZGlyZWN0b3J5IG9mIHRoZQogICAgICAgICBjdXJyZW50IGRpcmVjdG9yeSwgYW5kIHRoZSA8bGl0 ZXJhbD5wZ193YWw8L2xpdGVyYWw+IHN1YmRpcmVjdG9yeQogICAgICAgICBvZiA8ZW52YXI+UEdE QVRBPC9lbnZhcj4uCiAgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBJZiBh IHRhciBhcmNoaXZlIGlzIHByb3ZpZGVkLCBpdHMgV0FMIHNlZ21lbnQgZmlsZXMgbXVzdCBiZSBp bgorICAgICAgICBzZXF1ZW50aWFsIG9yZGVyOyBvdGhlcndpc2UsIGFuIGVycm9yIHdpbGwgYmUg cmVwb3J0ZWQuCisgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJs aXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC9NYWtlZmlsZSBiL3Ny Yy9iaW4vcGdfd2FsZHVtcC9NYWtlZmlsZQppbmRleCA0YzFlZTY0OTUwMS4uYjIzNDYxM2ViNTAg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC9NYWtlZmlsZQorKysgYi9zcmMvYmluL3Bn X3dhbGR1bXAvTWFrZWZpbGUKQEAgLTMsNiArMyw5IEBACiBQR0ZJTEVERVNDID0gInBnX3dhbGR1 bXAgLSBkZWNvZGUgYW5kIGRpc3BsYXkgV0FMIgogUEdBUFBJQ09OPXdpbjMyCiAKKyMgbWFrZSB0 aGVzZSBhdmFpbGFibGUgdG8gVEFQIHRlc3Qgc2NyaXB0cworZXhwb3J0IFRBUgorCiBzdWJkaXIg PSBzcmMvYmluL3BnX3dhbGR1bXAKIHRvcF9idWlsZGRpciA9IC4uLy4uLy4uCiBpbmNsdWRlICQo dG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCkBAIC0xMiwxMSArMTUsMTMgQEAgT0JK UyA9IFwKIAkkKFdJTjMyUkVTKSBcCiAJY29tcGF0Lm8gXAogCXBnX3dhbGR1bXAubyBcCisJYXN0 cmVhbWVyX3dhbGR1bXAubyBcCiAJcm1ncmRlc2MubyBcCiAJeGxvZ3JlYWRlci5vIFwKIAl4bG9n c3RhdHMubwogCi1vdmVycmlkZSBDUFBGTEFHUyA6PSAtREZST05URU5EICQoQ1BQRkxBR1MpCitv dmVycmlkZSBDUFBGTEFHUyA6PSAtREZST05URU5EIC1JJChsaWJwcV9zcmNkaXIpICQoQ1BQRkxB R1MpCitMREZMQUdTX0lOVEVSTkFMICs9IC1MJCh0b3BfYnVpbGRkaXIpL3NyYy9mZV91dGlscyAt bHBnZmV1dGlscwogCiBSTUdSREVTQ1NPVVJDRVMgPSAkKHNvcnQgJChub3RkaXIgJCh3aWxkY2Fy ZCAkKHRvcF9zcmNkaXIpL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy8qZGVzYyouYykpKQog Uk1HUkRFU0NPQkpTID0gJChwYXRzdWJzdCAlLmMsJS5vLCQoUk1HUkRFU0NTT1VSQ0VTKSkKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC9hc3RyZWFtZXJfd2FsZHVtcC5jIGIvc3JjL2Jp bi9wZ193YWxkdW1wL2FzdHJlYW1lcl93YWxkdW1wLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmQwYWM5MDNjNTRlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jpbi9w Z193YWxkdW1wL2FzdHJlYW1lcl93YWxkdW1wLmMKQEAgLTAsMCArMSwzNzggQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIGFzdHJlYW1lcl93YWxkdW1wLmMKKyAqCQlBIGdlbmVyaWMgZmFj aWxpdHkgZm9yIHJlYWRpbmcgV0FMIGRhdGEgZnJvbSB0YXIgYXJjaGl2ZXMgdmlhIGFyY2hpdmUK KyAqCQlzdHJlYW1lci4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICogSURFTlRJRklDQVRJT04KKyAq CQlzcmMvYmluL3BnX3dhbGR1bXAvYXN0cmVhbWVyX3dhbGR1bXAuYworICoKKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgorCisjaW5jbHVkZSA8dW5p c3RkLmg+CisKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ19pbnRlcm5hbC5oIgorI2luY2x1ZGUgImFj Y2Vzcy94bG9nZGVmcy5oIgorI2luY2x1ZGUgImNvbW1vbi9sb2dnaW5nLmgiCisjaW5jbHVkZSAi ZmVfdXRpbHMvc2ltcGxlX2xpc3QuaCIKKyNpbmNsdWRlICJwZ193YWxkdW1wLmgiCisKKy8qCisg KiBIb3cgbWFueSBieXRlcyBzaG91bGQgd2UgdHJ5IHRvIHJlYWQgZnJvbSBhIGZpbGUgYXQgb25j ZT8KKyAqLworI2RlZmluZSBSRUFEX0NIVU5LX1NJWkUJCQkJKDEyOCAqIDEwMjQpCisKK3R5cGVk ZWYgc3RydWN0IGFzdHJlYW1lcl93YWxkdW1wCit7CisJLyogVGhlc2UgZmllbGRzIGRvbid0IGNo YW5nZSBvbmNlIGluaXRpYWxpemVkLiAqLworCWFzdHJlYW1lcgliYXNlOworCVhMb2dTZWdObwlz dGFydFNlZ05vOworCVhMb2dTZWdObwllbmRTZWdObzsKKwlYTG9nRHVtcFByaXZhdGUgKnByaXZh dGVJbmZvOworCisJLyogVGhlc2UgZmllbGRzIGNoYW5nZSB3aXRoIGFyY2hpdmUgbWVtYmVyLiAq LworCWJvb2wJCXNraXBUaGlzU2VnOworCVhMb2dTZWdObwluZXh0U2VnTm87CQkvKiBOZXh0IGV4 cGVjdGVkIHNlZ21lbnQgdG8gc3RyZWFtICovCit9IGFzdHJlYW1lcl93YWxkdW1wOworCitzdGF0 aWMgaW50CWFzdHJlYW1lcl9hcmNoaXZlX3JlYWQoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5m byk7CitzdGF0aWMgdm9pZCBhc3RyZWFtZXJfd2FsZHVtcF9jb250ZW50KGFzdHJlYW1lciAqc3Ry ZWFtZXIsCisJCQkJCQkJCQkgIGFzdHJlYW1lcl9tZW1iZXIgKm1lbWJlciwKKwkJCQkJCQkJCSAg Y29uc3QgY2hhciAqZGF0YSwgaW50IGxlbiwKKwkJCQkJCQkJCSAgYXN0cmVhbWVyX2FyY2hpdmVf Y29udGV4dCBjb250ZXh0KTsKK3N0YXRpYyB2b2lkIGFzdHJlYW1lcl93YWxkdW1wX2ZpbmFsaXpl KGFzdHJlYW1lciAqc3RyZWFtZXIpOworc3RhdGljIHZvaWQgYXN0cmVhbWVyX3dhbGR1bXBfZnJl ZShhc3RyZWFtZXIgKnN0cmVhbWVyKTsKKworc3RhdGljIGJvb2wgbWVtYmVyX2lzX3JlbGV2YW50 X3dhbChhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsCisJCQkJCQkJCSAgIFRpbWVMaW5lSUQgc3Rh cnRUaW1lTGluZUlELAorCQkJCQkJCQkgICBYTG9nU2VnTm8gc3RhcnRTZWdObywKKwkJCQkJCQkJ ICAgWExvZ1NlZ05vIGVuZFNlZ05vLAorCQkJCQkJCQkgICBYTG9nU2VnTm8gbmV4dFNlZ05vLAor CQkJCQkJCQkgICBYTG9nU2VnTm8gKmN1clNlZ05vLAorCQkJCQkJCQkgICBUaW1lTGluZUlEICpj dXJTZWdUaW1lbGluZSk7CisKK3N0YXRpYyBjb25zdCBhc3RyZWFtZXJfb3BzIGFzdHJlYW1lcl93 YWxkdW1wX29wcyA9IHsKKwkuY29udGVudCA9IGFzdHJlYW1lcl93YWxkdW1wX2NvbnRlbnQsCisJ LmZpbmFsaXplID0gYXN0cmVhbWVyX3dhbGR1bXBfZmluYWxpemUsCisJLmZyZWUgPSBhc3RyZWFt ZXJfd2FsZHVtcF9mcmVlCit9OworCisvKgorICogQ29waWVzIFdBTCBkYXRhIGZyb20gYXN0cmVh bWVyIHRvIHJlYWRCdWZmOyBpZiB1bmF2YWlsYWJsZSwgZmV0Y2hlcyBtb3JlCisgKiBmcm9tIHRo ZSB0YXIgYXJjaGl2ZSB2aWEgYXN0cmVhbWVyLgorICovCitpbnQKK2FzdHJlYW1lcl93YWxfcmVh ZChjaGFyICpyZWFkQnVmZiwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBTaXplIGNvdW50LAor CQkJCSAgIFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8pCit7CisJY2hhcgkgICAqcCA9IHJl YWRCdWZmOworCVNpemUJCW5ieXRlcyA9IGNvdW50OworCVhMb2dSZWNQdHIJcmVjcHRyID0gdGFy Z2V0UGFnZVB0cjsKKwl2b2xhdGlsZSBTdHJpbmdJbmZvIGFzdHJlYW1lcl9idWYgPSBwcml2YXRl SW5mby0+YXJjaGl2ZV9zdHJlYW1lcl9idWY7CisKKwl3aGlsZSAobmJ5dGVzID4gMCkKKwl7CisJ CWNoYXIJICAgKmJ1ZiA9IGFzdHJlYW1lcl9idWYtPmRhdGE7CisJCWludAkJCWxlbiA9IGFzdHJl YW1lcl9idWYtPmxlbjsKKworCQkvKiBXQUwgcmVjb3JkIHJhbmdlIHRoYXQgdGhlIGJ1ZmZlciBj b250YWlucyAqLworCQlYTG9nUmVjUHRyCWVuZFB0ciA9IHByaXZhdGVJbmZvLT5hcmNoaXZlX3N0 cmVhbWVyX3JlYWRfcHRyOworCQlYTG9nUmVjUHRyCXN0YXJ0UHRyID0gKGVuZFB0ciA+IGxlbikg PyBlbmRQdHIgLSBsZW4gOiAwOworCisJCS8qCisJCSAqIElnbm9yZSBleGlzdGluZyBkYXRhIGlm IHRoZSByZXF1aXJlZCB0YXJnZXQgcGFnZSBoYXMgbm90IHlldCBiZWVuCisJCSAqIHJlYWQuCisJ CSAqLworCQlpZiAocmVjcHRyID49IGVuZFB0cikKKwkJeworCQkJbGVuID0gMDsKKworCQkJLyog UmVzZXQgdGhlIGJ1ZmZlciAqLworCQkJcmVzZXRTdHJpbmdJbmZvKGFzdHJlYW1lcl9idWYpOwor CQl9CisKKwkJaWYgKGxlbiA+IDAgJiYgcmVjcHRyID4gc3RhcnRQdHIpCisJCXsKKwkJCWludAkJ CXNraXBCeXRlcyA9IDA7CisKKwkJCS8qCisJCQkgKiBUaGUgcmVxdWlyZWQgb2Zmc2V0IGlzIG5v dCBhdCB0aGUgc3RhcnQgb2YgdGhlIGFyY2hpdmUgc3RyZWFtZXIKKwkJCSAqIGJ1ZmZlciwgc28g c2tpcCBieXRlcyB1bnRpbCByZWFjaGluZyB0aGUgZGVzaXJlZCBvZmZzZXQgb2YgdGhlCisJCQkg KiB0YXJnZXQgcGFnZS4KKwkJCSAqLworCQkJc2tpcEJ5dGVzID0gcmVjcHRyIC0gc3RhcnRQdHI7 CisKKwkJCWJ1ZiArPSBza2lwQnl0ZXM7CisJCQlsZW4gLT0gc2tpcEJ5dGVzOworCQl9CisKKwkJ aWYgKGxlbiA+IDApCisJCXsKKwkJCWludAkJCXJlYWRCeXRlcyA9IGxlbiA+PSBuYnl0ZXMgPyBu Ynl0ZXMgOiBsZW47CisKKwkJCS8qCisJCQkgKiBFbnN1cmUgd2UgYXJlIHJlYWRpbmcgdGhlIGNv cnJlY3QgcGFnZSwgdW5sZXNzIHdlJ3ZlIHJlY2VpdmVkIGFuCisJCQkgKiBpbnZhbGlkIHJlY29y ZCBwb2ludGVyLiBJbiB0aGF0IHNwZWNpZmljIGNhc2UsIGl0J3MgYWNjZXB0YWJsZQorCQkJICog dG8gcmVhZCBhbnkgcGFnZS4KKwkJCSAqLworCQkJQXNzZXJ0KFhMb2dSZWNQdHJJc0ludmFsaWQo cmVjcHRyKSB8fAorCQkJCSAgIChyZWNwdHIgPj0gc3RhcnRQdHIgJiYgcmVjcHRyIDwgZW5kUHRy KSk7CisKKwkJCW1lbWNweShwLCBidWYsIHJlYWRCeXRlcyk7CisKKwkJCS8qIFVwZGF0ZSBzdGF0 ZSBmb3IgcmVhZCAqLworCQkJbmJ5dGVzIC09IHJlYWRCeXRlczsKKwkJCXAgKz0gcmVhZEJ5dGVz OworCQkJcmVjcHRyICs9IHJlYWRCeXRlczsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIEZldGNo IG1vcmUgZGF0YSAqLworCQkJaWYgKGFzdHJlYW1lcl9hcmNoaXZlX3JlYWQocHJpdmF0ZUluZm8p ID09IDApCisJCQkJYnJlYWs7CQkJLyogTm8gZGF0YSByZW1haW5pbmcgKi8KKwkJfQorCX0KKwor CXJldHVybiAoY291bnQgLSBuYnl0ZXMpID8gKGNvdW50IC0gbmJ5dGVzKSA6IC0xOworfQorCisv KgorICogUmVhZHMgdGhlIGFyY2hpdmUgYW5kIHBhc3NlcyBpdCB0byB0aGUgYXJjaGl2ZSBzdHJl YW1lciBmb3IgZGVjb21wcmVzc2lvbi4KKyAqLworc3RhdGljIGludAorYXN0cmVhbWVyX2FyY2hp dmVfcmVhZChYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvKQoreworCWludAkJCXJjOworCWNo YXIJICAgKmJ1ZmZlcjsKKworCWJ1ZmZlciA9IHBnX21hbGxvYyhSRUFEX0NIVU5LX1NJWkUgKiBz aXplb2YodWludDgpKTsKKworCS8qIFJlYWQgbW9yZSBkYXRhIGZyb20gdGhlIHRhciBmaWxlICov CisJcmMgPSByZWFkKHByaXZhdGVJbmZvLT5hcmNoaXZlX2ZkLCBidWZmZXIsIFJFQURfQ0hVTktf U0laRSk7CisJaWYgKHJjIDwgMCkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCByZWFkIGZpbGUgXCIl c1wiOiAlbSIsCisJCQkJIHByaXZhdGVJbmZvLT5hcmNoaXZlX25hbWUpOworCisJLyoKKwkgKiBE ZWNyeXB0IChpZiByZXF1aXJlZCksIGFuZCB0aGVuIHBhcnNlIHRoZSBwcmV2aW91c2x5IHJlYWQg Y29udGVudHMgb2YKKwkgKiB0aGUgdGFyIGZpbGUuCisJICovCisJaWYgKHJjID4gMCkKKwkJYXN0 cmVhbWVyX2NvbnRlbnQocHJpdmF0ZUluZm8tPmFyY2hpdmVfc3RyZWFtZXIsIE5VTEwsCisJCQkJ CQkgIGJ1ZmZlciwgcmMsIEFTVFJFQU1FUl9VTktOT1dOKTsKKwlwZ19mcmVlKGJ1ZmZlcik7CisK KwlyZXR1cm4gcmM7Cit9CisKKy8qCisgKiBDcmVhdGUgYW4gYXN0cmVhbWVyIHRoYXQgY2FuIHJl YWQgV0FMIGZyb20gdGFyIGZpbGUuCisgKi8KK2FzdHJlYW1lciAqCithc3RyZWFtZXJfd2FsZHVt cF9jb250ZW50X25ldyhhc3RyZWFtZXIgKm5leHQsIFhMb2dSZWNQdHIgc3RhcnRwdHIsCisJCQkJ CQkJICBYTG9nUmVjUHRyIGVuZFB0ciwgWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbykKK3sK Kwlhc3RyZWFtZXJfd2FsZHVtcCAqc3RyZWFtZXI7CisKKwlzdHJlYW1lciA9IHBhbGxvYzAoc2l6 ZW9mKGFzdHJlYW1lcl93YWxkdW1wKSk7CisJKigoY29uc3QgYXN0cmVhbWVyX29wcyAqKikgJnN0 cmVhbWVyLT5iYXNlLmJic19vcHMpID0KKwkJJmFzdHJlYW1lcl93YWxkdW1wX29wczsKKworCXN0 cmVhbWVyLT5iYXNlLmJic19uZXh0ID0gbmV4dDsKKwlpbml0U3RyaW5nSW5mbygmc3RyZWFtZXIt PmJhc2UuYmJzX2J1ZmZlcik7CisKKwlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChzdGFydHB0cikp CisJCXN0cmVhbWVyLT5zdGFydFNlZ05vID0gMDsKKwllbHNlCisJeworCQlYTEJ5dGVUb1NlZyhz dGFydHB0ciwgc3RyZWFtZXItPnN0YXJ0U2VnTm8sIFdhbFNlZ1N6KTsKKworCQkvKgorCQkgKiBJ bml0aWFsaXplIHRoZSByZWNvcmQgcG9pbnRlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaXJz dAorCQkgKiBzZWdtZW50OyB0aGlzIHBvaW50ZXIgd2lsbCB0cmFjayB0aGUgV0FMIHJlY29yZCBy ZWFkaW5nIHN0YXR1cy4KKwkJICovCisJCVhMb2dTZWdOb09mZnNldFRvUmVjUHRyKHN0cmVhbWVy LT5zdGFydFNlZ05vLCAwLCBXYWxTZWdTeiwKKwkJCQkJCQkJcHJpdmF0ZUluZm8tPmFyY2hpdmVf c3RyZWFtZXJfcmVhZF9wdHIpOworCX0KKworCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKGVuZFB0 cikpCisJCXN0cmVhbWVyLT5lbmRTZWdObyA9IFVJTlQ2NF9NQVg7CisJZWxzZQorCQlYTEJ5dGVU b1NlZyhlbmRQdHIsIHN0cmVhbWVyLT5lbmRTZWdObywgV2FsU2VnU3opOworCisJc3RyZWFtZXIt Pm5leHRTZWdObyA9IHN0cmVhbWVyLT5zdGFydFNlZ05vOworCXN0cmVhbWVyLT5wcml2YXRlSW5m byA9IHByaXZhdGVJbmZvOworCisJcmV0dXJuICZzdHJlYW1lci0+YmFzZTsKK30KKworLyoKKyAq IE1haW4gZW50cnkgcG9pbnQgb2YgdGhlIGFyY2hpdmUgc3RyZWFtZXIgZm9yIHJlYWRpbmcgV0FM IGZyb20gYSB0YXIgZmlsZS4KKyAqLworc3RhdGljIHZvaWQKK2FzdHJlYW1lcl93YWxkdW1wX2Nv bnRlbnQoYXN0cmVhbWVyICpzdHJlYW1lciwgYXN0cmVhbWVyX21lbWJlciAqbWVtYmVyLAorCQkJ CQkJICBjb25zdCBjaGFyICpkYXRhLCBpbnQgbGVuLAorCQkJCQkJICBhc3RyZWFtZXJfYXJjaGl2 ZV9jb250ZXh0IGNvbnRleHQpCit7CisJYXN0cmVhbWVyX3dhbGR1bXAgKm15c3RyZWFtZXIgPSAo YXN0cmVhbWVyX3dhbGR1bXAgKikgc3RyZWFtZXI7CisJWExvZ0R1bXBQcml2YXRlICpwcml2YXRl SW5mbyA9IG15c3RyZWFtZXItPnByaXZhdGVJbmZvOworCisJQXNzZXJ0KGNvbnRleHQgIT0gQVNU UkVBTUVSX1VOS05PV04pOworCisJc3dpdGNoIChjb250ZXh0KQorCXsKKwkJY2FzZSBBU1RSRUFN RVJfTUVNQkVSX0hFQURFUjoKKwkJCXsKKwkJCQlYTG9nU2VnTm8Jc2VnTm87CisJCQkJVGltZUxp bmVJRAl0aW1lbGluZTsKKworCQkJCXBnX2xvZ19kZWJ1ZygicGdfd2FsZHVtcDogcmVhZGluZyBc IiVzXCIiLCBtZW1iZXItPnBhdGhuYW1lKTsKKworCQkJCW15c3RyZWFtZXItPnNraXBUaGlzU2Vn ID0gZmFsc2U7CisKKwkJCQlpZiAoIW1lbWJlcl9pc19yZWxldmFudF93YWwobWVtYmVyLAorCQkJ CQkJCQkJCQlwcml2YXRlSW5mby0+dGltZWxpbmUsCisJCQkJCQkJCQkJCW15c3RyZWFtZXItPnN0 YXJ0U2VnTm8sCisJCQkJCQkJCQkJCW15c3RyZWFtZXItPmVuZFNlZ05vLAorCQkJCQkJCQkJCQlt eXN0cmVhbWVyLT5uZXh0U2VnTm8sCisJCQkJCQkJCQkJCSZzZWdObywgJnRpbWVsaW5lKSkKKwkJ CQl7CisJCQkJCW15c3RyZWFtZXItPnNraXBUaGlzU2VnID0gdHJ1ZTsKKwkJCQkJYnJlYWs7CisJ CQkJfQorCisJCQkJLyoKKwkJCQkgKiBJZiBuZXh0U2VnTm8gaXMgMCwgdGhlIGNoZWNrIGlzIHNr aXBwZWQsIGFuZCBhbnkgV0FMIGZpbGUKKwkJCQkgKiBjYW4gYmUgcmVhZCAtLSB0aGlzIHR5cGlj YWxseSBvY2N1cnMgZHVyaW5nIGluaXRpYWwKKwkJCQkgKiB2ZXJpZmljYXRpb24uCisJCQkJICov CisJCQkJaWYgKG15c3RyZWFtZXItPm5leHRTZWdObyA9PSAwKQorCQkJCQlicmVhazsKKworCQkJ CS8qIFdBTCBzZWdtZW50cyBtdXN0IGJlIGFyY2hpdmVkIGluIG9yZGVyICovCisJCQkJaWYgKG15 c3RyZWFtZXItPm5leHRTZWdObyAhPSBzZWdObykKKwkJCQl7CisJCQkJCXBnX2xvZ19lcnJvcigi V0FMIGZpbGVzIGFyZSBub3QgYXJjaGl2ZWQgaW4gc2VxdWVudGlhbCBvcmRlciIpOworCQkJCQlw Z19sb2dfZXJyb3JfZGV0YWlsKCJFeHBlY3Rpbmcgc2VnbWVudCBudW1iZXIgIiBVSU5UNjRfRk9S TUFUICIgYnV0IGZvdW5kICIgVUlOVDY0X0ZPUk1BVCAiLiIsCisJCQkJCQkJCQkJbXlzdHJlYW1l ci0+bmV4dFNlZ05vLCBzZWdObyk7CisJCQkJCWV4aXQoMSk7CisJCQkJfQorCisJCQkJLyoKKwkJ CQkgKiBXZSB0cmFjayB0aGUgcmVhZGluZyBvZiBXQUwgc2VnbWVudCByZWNvcmRzIHVzaW5nIGEg cG9pbnRlcgorCQkJCSAqIHRoYXQncyBjb250aW51b3VzbHkgaW5jcmVtZW50ZWQgYnkgdGhlIGxl bmd0aCBvZiB0aGUKKwkJCQkgKiByZWNlaXZlZCBkYXRhLiBUaGlzIHBvaW50ZXIgaXMgY3J1Y2lh bCBmb3Igc2VydmluZyBXQUwgcGFnZQorCQkJCSAqIHJlcXVlc3RzIGZyb20gdGhlIFdBTCBkZWNv ZGluZyByb3V0aW5lLCBzbyBpdCBtdXN0IGJlCisJCQkJICogYWNjdXJhdGUuCisJCQkJICovCisj aWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCQkJCWlmIChteXN0cmVhbWVyLT5uZXh0U2VnTm8g IT0gMCkKKwkJCQl7CisJCQkJCVhMb2dSZWNQdHIJcmVjUHRyOworCisJCQkJCVhMb2dTZWdOb09m ZnNldFRvUmVjUHRyKHNlZ05vLCAwLCBXYWxTZWdTeiwgcmVjUHRyKTsKKwkJCQkJQXNzZXJ0KHBy aXZhdGVJbmZvLT5hcmNoaXZlX3N0cmVhbWVyX3JlYWRfcHRyID09IHJlY1B0cik7CisJCQkJfQor I2VuZGlmCisKKwkJCQkvKiBTYXZlIHRoZSB0aW1lbGluZSAqLworCQkJCXByaXZhdGVJbmZvLT50 aW1lbGluZSA9IHRpbWVsaW5lOworCisJCQkJLyogVXBkYXRlIHRoZSBuZXh0IGV4cGVjdGVkIHNl Z21lbnQgbnVtYmVyICovCisJCQkJbXlzdHJlYW1lci0+bmV4dFNlZ05vICs9IDE7CisJCQl9CisJ CQlicmVhazsKKworCQljYXNlIEFTVFJFQU1FUl9NRU1CRVJfQ09OVEVOVFM6CisJCQkvKiBTa2lw IHRoaXMgc2VnbWVudCAqLworCQkJaWYgKG15c3RyZWFtZXItPnNraXBUaGlzU2VnKQorCQkJCWJy ZWFrOworCisJCQkvKiBPciwgY29weSBjb250ZW50cyB0byBidWZmZXIgKi8KKwkJCXByaXZhdGVJ bmZvLT5hcmNoaXZlX3N0cmVhbWVyX3JlYWRfcHRyICs9IGxlbjsKKwkJCWFzdHJlYW1lcl9idWZm ZXJfYnl0ZXMoc3RyZWFtZXIsICZkYXRhLCAmbGVuLCBsZW4pOworCQkJYnJlYWs7CisKKwkJY2Fz ZSBBU1RSRUFNRVJfTUVNQkVSX1RSQUlMRVI6CisJCQlicmVhazsKKworCQljYXNlIEFTVFJFQU1F Ul9BUkNISVZFX1RSQUlMRVI6CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJLyogU2hvdWxk bid0IGhhcHBlbi4gKi8KKwkJCXBnX2ZhdGFsKCJ1bmV4cGVjdGVkIHN0YXRlIHdoaWxlIHBhcnNp bmcgdGFyIGZpbGUiKTsKKwl9Cit9CisKKy8qCisgKiBFbmQtb2Ytc3RyZWFtIHByb2Nlc3Npbmcg Zm9yIGEgYXN0cmVhbWVyX3dhbGR1bXAgc3RyZWFtLgorICovCitzdGF0aWMgdm9pZAorYXN0cmVh bWVyX3dhbGR1bXBfZmluYWxpemUoYXN0cmVhbWVyICpzdHJlYW1lcikKK3sKKwlBc3NlcnQoc3Ry ZWFtZXItPmJic19uZXh0ID09IE5VTEwpOworfQorCisvKgorICogRnJlZSBtZW1vcnkgYXNzb2Np YXRlZCB3aXRoIGEgYXN0cmVhbWVyX3dhbGR1bXAgc3RyZWFtLgorICovCitzdGF0aWMgdm9pZAor YXN0cmVhbWVyX3dhbGR1bXBfZnJlZShhc3RyZWFtZXIgKnN0cmVhbWVyKQoreworCUFzc2VydChz dHJlYW1lci0+YmJzX25leHQgPT0gTlVMTCk7CisKKwlwZnJlZShzdHJlYW1lci0+YmJzX2J1ZmZl ci5kYXRhKTsKKwlwZnJlZShzdHJlYW1lcik7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRydWUgaWYg dGhlIGFyY2hpdmUgbWVtYmVyIG5hbWUgbWF0Y2hlcyB0aGUgV0FMIG5hbWluZyBmb3JtYXQgYW5k CisgKiB0aGUgY29ycmVzcG9uZGluZyBXQUwgc2VnbWVudCBmYWxscyB3aXRoaW4gdGhlIFdBTCBk ZWNvZGluZyB0YXJnZXQgcmFuZ2U7CisgKiBvdGhlcndpc2UsIHJldHVybnMgZmFsc2UuCisgKi8K K3N0YXRpYyBib29sCittZW1iZXJfaXNfcmVsZXZhbnRfd2FsKGFzdHJlYW1lcl9tZW1iZXIgKm1l bWJlciwgVGltZUxpbmVJRCBzdGFydFRpbWVMaW5lSUQsCisJCQkJCSAgIFhMb2dTZWdObyBzdGFy dFNlZ05vLCBYTG9nU2VnTm8gZW5kU2VnTm8sCisJCQkJCSAgIFhMb2dTZWdObyBuZXh0U2VnTm8s IFhMb2dTZWdObyAqY3VyU2VnTm8sCisJCQkJCSAgIFRpbWVMaW5lSUQgKmN1clNlZ1RpbWVsaW5l KQoreworCWludAkJCXBhdGhsZW47CisJWExvZ1NlZ05vCXNlZ05vOworCVRpbWVMaW5lSUQJdGlt ZWxpbmU7CisJY2hhcgkgICAqZm5hbWU7CisKKwkvKiBXZSBhcmUgb25seSBpbnRlcmVzdGVkIGlu IG5vcm1hbCBmaWxlcy4gKi8KKwlpZiAobWVtYmVyLT5pc19kaXJlY3RvcnkgfHwgbWVtYmVyLT5p c19saW5rKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwYXRobGVuID0gc3RybGVuKG1lbWJlci0+cGF0 aG5hbWUpOworCWlmIChwYXRobGVuIDwgWExPR19GTkFNRV9MRU4pCisJCXJldHVybiBmYWxzZTsK KworCS8qIFdBTCBmaWxlIGNvdWxkIGJlIHdpdGggZnVsbCBwYXRoICovCisJZm5hbWUgPSBtZW1i ZXItPnBhdGhuYW1lICsgKHBhdGhsZW4gLSBYTE9HX0ZOQU1FX0xFTik7CisJaWYgKCFJc1hMb2dG aWxlTmFtZShmbmFtZSkpCisJCXJldHVybiBmYWxzZTsKKworCS8qIFBhcnNlIHBvc2l0aW9uIGZy b20gZmlsZSAqLworCVhMb2dGcm9tRmlsZU5hbWUoZm5hbWUsICZ0aW1lbGluZSwgJnNlZ05vLCBX YWxTZWdTeik7CisKKwkvKiBJZ25vcmUgdGhlIG9sZGVyIHRpbWVsaW5lICovCisJaWYgKHN0YXJ0 VGltZUxpbmVJRCA+IHRpbWVsaW5lKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBTa2lwIGlmIHRo ZSBjdXJyZW50IHNlZ21lbnQgaXMgbm90IHRoZSBkZXNpcmVkIG9uZSAqLworCWlmIChzdGFydFNl Z05vID4gc2VnTm8gfHwgZW5kU2VnTm8gPCBzZWdObykKKwkJcmV0dXJuIGZhbHNlOworCisJKmN1 clNlZ05vID0gc2VnTm87CisJKmN1clNlZ1RpbWVsaW5lID0gdGltZWxpbmU7CisKKwlyZXR1cm4g dHJ1ZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC9tZXNvbi5idWlsZCBiL3Ny Yy9iaW4vcGdfd2FsZHVtcC9tZXNvbi5idWlsZAppbmRleCA5MzdlMGQ2ODg0MS4uMmEwMzAwZGMz MzkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC9tZXNvbi5idWlsZAorKysgYi9zcmMv YmluL3BnX3dhbGR1bXAvbWVzb24uYnVpbGQKQEAgLTMsNiArMyw3IEBACiBwZ193YWxkdW1wX3Nv dXJjZXMgPSBmaWxlcygKICAgJ2NvbXBhdC5jJywKICAgJ3BnX3dhbGR1bXAuYycsCisgICdhc3Ry ZWFtZXJfd2FsZHVtcC5jJywKICAgJ3JtZ3JkZXNjLmMnLAogKQogCkBAIC0xOCw3ICsxOSw3IEBA IGVuZGlmCiAKIHBnX3dhbGR1bXAgPSBleGVjdXRhYmxlKCdwZ193YWxkdW1wJywKICAgcGdfd2Fs ZHVtcF9zb3VyY2VzLAotICBkZXBlbmRlbmNpZXM6IFtmcm9udGVuZF9jb2RlLCBsejQsIHpzdGRd LAorICBkZXBlbmRlbmNpZXM6IFtmcm9udGVuZF9jb2RlLCBsejQsIHpzdGQsIGxpYnBxXSwKICAg Y19hcmdzOiBbJy1ERlJPTlRFTkQnXSwgIyBuZWVkZWQgZm9yIHhsb2dyZWFkZXIgZXQgYWwKICAg a3dhcmdzOiBkZWZhdWx0X2Jpbl9hcmdzLAogKQpAQCAtMjksNiArMzAsNyBAQCB0ZXN0cyArPSB7 CiAgICdzZCc6IG1lc29uLmN1cnJlbnRfc291cmNlX2RpcigpLAogICAnYmQnOiBtZXNvbi5jdXJy ZW50X2J1aWxkX2RpcigpLAogICAndGFwJzogeworICAgICdlbnYnOiB7J1RBUic6IHRhci5mb3Vu ZCgpID8gdGFyLmZ1bGxfcGF0aCgpIDogJyd9LAogICAgICd0ZXN0cyc6IFsKICAgICAgICd0LzAw MV9iYXNpYy5wbCcsCiAgICAgICAndC8wMDJfc2F2ZV9mdWxscGFnZS5wbCcsCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3Bn X3dhbGR1bXAuYwppbmRleCA0Nzc1Mjc1YzA3YS4uNjRmM2E2NWI3MzUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3Bn X3dhbGR1bXAuYwpAQCAtMTgyLDEwICsxODIsOSBAQCBvcGVuX2ZpbGVfaW5fZGlyZWN0b3J5KGNv bnN0IGNoYXIgKmRpcmVjdG9yeSwgY29uc3QgY2hhciAqZm5hbWUpCiB7CiAJaW50CQkJZmQgPSAt MTsKIAljaGFyCQlmcGF0aFtNQVhQR1BBVEhdOworCWNoYXIJICAgKmRpciA9IGRpcmVjdG9yeSA/ IChjaGFyICopIGRpcmVjdG9yeSA6ICIuIjsKIAotCUFzc2VydChkaXJlY3RvcnkgIT0gTlVMTCk7 Ci0KLQlzbnByaW50ZihmcGF0aCwgTUFYUEdQQVRILCAiJXMvJXMiLCBkaXJlY3RvcnksIGZuYW1l KTsKKwlzbnByaW50ZihmcGF0aCwgTUFYUEdQQVRILCAiJXMvJXMiLCBkaXIsIGZuYW1lKTsKIAlm ZCA9IG9wZW4oZnBhdGgsIE9fUkRPTkxZIHwgUEdfQklOQVJZLCAwKTsKIAogCWlmIChmZCA8IDAg JiYgZXJybm8gIT0gRU5PRU5UKQpAQCAtMzI2LDYgKzMyNSwxNjAgQEAgaWRlbnRpZnlfdGFyZ2V0 X2RpcmVjdG9yeShjaGFyICpkaXJlY3RvcnksIGNoYXIgKmZuYW1lKQogCXJldHVybiBOVUxMOwkJ CQkvKiBub3QgcmVhY2hlZCAqLwogfQogCisvKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZl biBmaWxlIGlzIGEgdGFyIGFyY2hpdmUgYW5kIG91dHB1dHMgaXRzIGNvbXByZXNzaW9uCisgKiBh bGdvcml0aG0uCisgKi8KK3N0YXRpYyBib29sCitpc190YXJfZmlsZShjb25zdCBjaGFyICpmbmFt ZSwgcGdfY29tcHJlc3NfYWxnb3JpdGhtICpjb21wcmVzc2lvbikKK3sKKwlpbnQJCQlmbmFtZV9s ZW4gPSBzdHJsZW4oZm5hbWUpOworCXBnX2NvbXByZXNzX2FsZ29yaXRobSBjb21wcmVzc19hbGdv OworCisJLyogTm93LCBjaGVjayB0aGUgY29tcHJlc3Npb24gdHlwZSBvZiB0aGUgdGFyICovCisJ aWYgKGZuYW1lX2xlbiA+IDQgJiYKKwkJc3RyY21wKGZuYW1lICsgZm5hbWVfbGVuIC0gNCwgIi50 YXIiKSA9PSAwKQorCQljb21wcmVzc19hbGdvID0gUEdfQ09NUFJFU1NJT05fTk9ORTsKKwllbHNl IGlmIChmbmFtZV9sZW4gPiA0ICYmCisJCQkgc3RyY21wKGZuYW1lICsgZm5hbWVfbGVuIC0gNCwg Ii50Z3oiKSA9PSAwKQorCQljb21wcmVzc19hbGdvID0gUEdfQ09NUFJFU1NJT05fR1pJUDsKKwll bHNlIGlmIChmbmFtZV9sZW4gPiA3ICYmCisJCQkgc3RyY21wKGZuYW1lICsgZm5hbWVfbGVuIC0g NywgIi50YXIuZ3oiKSA9PSAwKQorCQljb21wcmVzc19hbGdvID0gUEdfQ09NUFJFU1NJT05fR1pJ UDsKKwllbHNlIGlmIChmbmFtZV9sZW4gPiA4ICYmCisJCQkgc3RyY21wKGZuYW1lICsgZm5hbWVf bGVuIC0gOCwgIi50YXIubHo0IikgPT0gMCkKKwkJY29tcHJlc3NfYWxnbyA9IFBHX0NPTVBSRVNT SU9OX0xaNDsKKwllbHNlIGlmIChmbmFtZV9sZW4gPiA4ICYmCisJCQkgc3RyY21wKGZuYW1lICsg Zm5hbWVfbGVuIC0gOCwgIi50YXIuenN0IikgPT0gMCkKKwkJY29tcHJlc3NfYWxnbyA9IFBHX0NP TVBSRVNTSU9OX1pTVEQ7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7CisKKwkqY29tcHJlc3Npb24g PSBjb21wcmVzc19hbGdvOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBDcmVhdGVzIGFu IGFwcHJvcHJpYXRlIGNoYWluIG9mIGFyY2hpdmUgc3RyZWFtZXJzIGZvciByZWFkaW5nIHRoZSBn aXZlbgorICogdGFyIGFyY2hpdmUuCisgKi8KK3N0YXRpYyB2b2lkCitzZXR1cF9hc3RyZWFtZXIo WExvZ0R1bXBQcml2YXRlICpwcml2YXRlLCBwZ19jb21wcmVzc19hbGdvcml0aG0gY29tcHJlc3Np b24sCisJCQkJWExvZ1JlY1B0ciBzdGFydHB0ciwgWExvZ1JlY1B0ciBlbmRwdHIpCit7CisJYXN0 cmVhbWVyICAqc3RyZWFtZXIgPSBOVUxMOworCisJc3RyZWFtZXIgPSBhc3RyZWFtZXJfd2FsZHVt cF9jb250ZW50X25ldyhOVUxMLCBzdGFydHB0ciwgZW5kcHRyLCBwcml2YXRlKTsKKworCS8qCisJ ICogRmluYWwgZXh0cmFjdGVkIFdBTCBkYXRhIHdpbGwgcmVzaWRlIGluIHRoaXMgc3RyZWFtZXIu IEhvd2V2ZXIsIHNpbmNlCisJICogaXQgc2l0cyBhdCB0aGUgYm90dG9tIG9mIHRoZSBzdGFjayBh bmQgaXNuJ3QgZGVzaWduZWQgdG8gcHJvcGFnYXRlIGRhdGEKKwkgKiB1cHdhcmQsIHdlIG5lZWQg dG8gaG9sZCBhIHBvaW50ZXIgdG8gaXRzIGRhdGEgYnVmZmVyIGluIG9yZGVyIHRvIGNvcHkuCisJ ICovCisJcHJpdmF0ZS0+YXJjaGl2ZV9zdHJlYW1lcl9idWYgPSAmc3RyZWFtZXItPmJic19idWZm ZXI7CisKKwkvKiBCZWZvcmUgdGhhdCB3ZSBtdXN0IHBhcnNlIHRoZSB0YXIgYXJjaGl2ZS4gKi8K KwlzdHJlYW1lciA9IGFzdHJlYW1lcl90YXJfcGFyc2VyX25ldyhzdHJlYW1lcik7CisKKwkvKiBC ZWZvcmUgdGhhdCB3ZSBtdXN0IGRlY29tcHJlc3MsIGlmIGFyY2hpdmUgaXMgY29tcHJlc3NlZC4g Ki8KKwlpZiAoY29tcHJlc3Npb24gPT0gUEdfQ09NUFJFU1NJT05fR1pJUCkKKwkJc3RyZWFtZXIg PSBhc3RyZWFtZXJfZ3ppcF9kZWNvbXByZXNzb3JfbmV3KHN0cmVhbWVyKTsKKwllbHNlIGlmIChj b21wcmVzc2lvbiA9PSBQR19DT01QUkVTU0lPTl9MWjQpCisJCXN0cmVhbWVyID0gYXN0cmVhbWVy X2x6NF9kZWNvbXByZXNzb3JfbmV3KHN0cmVhbWVyKTsKKwllbHNlIGlmIChjb21wcmVzc2lvbiA9 PSBQR19DT01QUkVTU0lPTl9aU1REKQorCQlzdHJlYW1lciA9IGFzdHJlYW1lcl96c3RkX2RlY29t cHJlc3Nvcl9uZXcoc3RyZWFtZXIpOworCisJcHJpdmF0ZS0+YXJjaGl2ZV9zdHJlYW1lciA9IHN0 cmVhbWVyOworfQorCisvKgorICogSW5pdGlhbGl6ZXMgdGhlIGFyY2hpdmUgcmVhZGVyIGZvciBh IHRhciBmaWxlLgorICovCitzdGF0aWMgdm9pZAoraW5pdF90YXJfYXJjaGl2ZV9yZWFkZXIoWExv Z0R1bXBQcml2YXRlICpwcml2YXRlLCBjaGFyICp3YWxkaXIsCisJCQkJCQlwZ19jb21wcmVzc19h bGdvcml0aG0gY29tcHJlc3Npb24pCit7CisJaW50CQkJZmQ7CisKKwkvKiBOb3csIHRoZSB0YXIg YXJjaGl2ZSBhbmQgc3RvcmUgaXRzIGZpbGUgZGVzY3JpcHRvciAqLworCWZkID0gb3Blbl9maWxl X2luX2RpcmVjdG9yeSh3YWxkaXIsIHByaXZhdGUtPmFyY2hpdmVfbmFtZSk7CisKKwlpZiAoZmQg PCAwKQorCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCIiLCBwcml2YXRlLT5h cmNoaXZlX25hbWUpOworCisJcHJpdmF0ZS0+YXJjaGl2ZV9mZCA9IGZkOworCisJLyogU2V0dXAg dGFyIGFyY2hpdmUgcmVhZGluZyBmYWNpbGl0eSAqLworCXNldHVwX2FzdHJlYW1lcihwcml2YXRl LCBjb21wcmVzc2lvbiwgcHJpdmF0ZS0+c3RhcnRwdHIsIHByaXZhdGUtPmVuZHB0cik7Cit9CisK Ky8qCisgKiBSZWxlYXNlIHRoZSBhcmNoaXZlIHN0cmVhbWVyIGNoYWluIGFuZCBjbG9zZSB0aGUg YXJjaGl2ZSBmaWxlLgorICovCitzdGF0aWMgdm9pZAorZnJlZV90YXJfYXJjaGl2ZV9yZWFkZXIo WExvZ0R1bXBQcml2YXRlICpwcml2YXRlKQoreworCS8qCisJICogTkI6IE5vcm1hbGx5LCBhc3Ry ZWFtZXJfZmluYWxpemUoKSBpcyBjYWxsZWQgYmVmb3JlIGFzdHJlYW1lcl9mcmVlKCkgdG8KKwkg KiBmbHVzaCBhbnkgcmVtYWluaW5nIGJ1ZmZlcmVkIGRhdGEgb3IgdG8gZW5zdXJlIHRoZSBlbmQg b2YgdGhlIHRhcgorCSAqIGFyY2hpdmUgaXMgcmVhY2hlZC4gSG93ZXZlciwgd2hlbiBkZWNvZGlu ZyBhIFdBTCBmaWxlLCBvbmNlIHdlIGhpdCB0aGUKKwkgKiBlbmQgTFNOLCBhbnkgcmVtYWluaW5n IFdBTCBkYXRhIGluIHRoZSBidWZmZXIgb3IgdGhlIHRhciBhcmNoaXZlJ3MKKwkgKiB1bnJlYWNo ZWQgZW5kIGNhbiBiZSBzYWZlbHkgaWdub3JlZC4KKwkgKi8KKwlhc3RyZWFtZXJfZnJlZShwcml2 YXRlLT5hcmNoaXZlX3N0cmVhbWVyKTsKKworCS8qIENsb3NlIHRoZSBmaWxlLiAqLworCWlmIChj bG9zZShwcml2YXRlLT5hcmNoaXZlX2ZkKSAhPSAwKQorCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5v dCBjbG9zZSBmaWxlIFwiJXNcIjogJW0iLAorCQkJCQkgcHJpdmF0ZS0+YXJjaGl2ZV9uYW1lKTsK K30KKworLyoKKyAqIFJlYWRzIGEgV0FMIHBhZ2UgZnJvbSB0aGUgYXJjaGl2ZSBhbmQgdmVyaWZp ZXMgV0FMIHNlZ21lbnQgc2l6ZS4KKyAqLworc3RhdGljIHZvaWQKK3ZlcmlmeV90YXJfYXJjaGl2 ZShYTG9nRHVtcFByaXZhdGUgKnByaXZhdGUsIGNvbnN0IGNoYXIgKndhbGRpciwKKwkJCQkgICBw Z19jb21wcmVzc19hbGdvcml0aG0gY29tcHJlc3Npb24pCit7CisJUEdBbGlnbmVkWExvZ0Jsb2Nr IGJ1ZjsKKwlpbnQJCQlyOworCisJc2V0dXBfYXN0cmVhbWVyKHByaXZhdGUsIGNvbXByZXNzaW9u LCBJbnZhbGlkWExvZ1JlY1B0ciwgSW52YWxpZFhMb2dSZWNQdHIpOworCisJLyogTm93LCB0aGUg dGFyIGFyY2hpdmUgYW5kIHN0b3JlIGl0cyBmaWxlIGRlc2NyaXB0b3IgKi8KKwlwcml2YXRlLT5h cmNoaXZlX2ZkID0gb3Blbl9maWxlX2luX2RpcmVjdG9yeSh3YWxkaXIsIHByaXZhdGUtPmFyY2hp dmVfbmFtZSk7CisKKwlpZiAocHJpdmF0ZS0+YXJjaGl2ZV9mZCA8IDApCisJCXBnX2ZhdGFsKCJj b3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIiIsIHByaXZhdGUtPmFyY2hpdmVfbmFtZSk7CisKKwkv KiBSZWFkIGEgd2FsIHBhZ2UgKi8KKwlyID0gYXN0cmVhbWVyX3dhbF9yZWFkKGJ1Zi5kYXRhLCBJ bnZhbGlkWExvZ1JlY1B0ciwgWExPR19CTENLU1osIHByaXZhdGUpOworCisJLyogU2V0IFdhbFNl Z1N6IGlmIFdBTCBkYXRhIGlzIHN1Y2Nlc3NmdWxseSByZWFkICovCisJaWYgKHIgPT0gWExPR19C TENLU1opCisJeworCQlYTG9nTG9uZ1BhZ2VIZWFkZXIgbG9uZ2hkciA9IChYTG9nTG9uZ1BhZ2VI ZWFkZXIpIGJ1Zi5kYXRhOworCisJCVdhbFNlZ1N6ID0gbG9uZ2hkci0+eGxwX3NlZ19zaXplOwor CisJCWlmICghSXNWYWxpZFdhbFNlZ1NpemUoV2FsU2VnU3opKQorCQl7CisJCQlwZ19sb2dfZXJy b3IobmdldHRleHQoImludmFsaWQgV0FMIHNlZ21lbnQgc2l6ZSBpbiBXQUwgZmlsZSBcIiVzXCIg KCVkIGJ5dGUpIiwKKwkJCQkJCQkJICAiaW52YWxpZCBXQUwgc2VnbWVudCBzaXplIGluIFdBTCBm aWxlIFwiJXNcIiAoJWQgYnl0ZXMpIiwKKwkJCQkJCQkJICBXYWxTZWdTeiksCisJCQkJCQkgcHJp dmF0ZS0+YXJjaGl2ZV9uYW1lLCBXYWxTZWdTeik7CisJCQlwZ19sb2dfZXJyb3JfZGV0YWlsKCJU aGUgV0FMIHNlZ21lbnQgc2l6ZSBtdXN0IGJlIGEgcG93ZXIgb2YgdHdvIGJldHdlZW4gMSBNQiBh bmQgMSBHQi4iKTsKKwkJCWV4aXQoMSk7CisJCX0KKwl9CisJZWxzZQorCQlwZ19mYXRhbCgiY291 bGQgbm90IHJlYWQgV0FMIGRhdGEgZnJvbSBcIiVzXCIgYXJjaGl2ZTogcmVhZCAlZCBvZiAlZCIs CisJCQkJIHByaXZhdGUtPmFyY2hpdmVfbmFtZSwgciwgWExPR19CTENLU1opOworCisJZnJlZV90 YXJfYXJjaGl2ZV9yZWFkZXIocHJpdmF0ZSk7Cit9CisKIC8qIFJldHVybnMgdGhlIHNpemUgaW4g Ynl0ZXMgb2YgdGhlIGRhdGEgdG8gYmUgcmVhZC4gKi8KIHN0YXRpYyBpbmxpbmUgaW50CiByZXF1 aXJlZF9yZWFkX2xlbihYTG9nRHVtcFByaXZhdGUgKnByaXZhdGUsIFhMb2dSZWNQdHIgdGFyZ2V0 UGFnZVB0ciwKQEAgLTQwNiw3ICs1NTksNyBAQCBXQUxEdW1wUmVhZFBhZ2UoWExvZ1JlYWRlclN0 YXRlICpzdGF0ZSwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBpbnQgcmVxTGVuLAogCQkJCVhM b2dSZWNQdHIgdGFyZ2V0UHRyLCBjaGFyICpyZWFkQnVmZikKIHsKIAlYTG9nRHVtcFByaXZhdGUg KnByaXZhdGUgPSBzdGF0ZS0+cHJpdmF0ZV9kYXRhOwotCWludAkJCWNvdW50ID0gcmVxdWlyZWRf cmVhZF9sZW4ocHJpdmF0ZSwgdGFyZ2V0UGFnZVB0ciwgcmVxTGVuKTsKKwlpbnQJCQljb3VudCA9 IHJlcXVpcmVkX3JlYWRfbGVuKHByaXZhdGUsIHRhcmdldFB0ciwgcmVxTGVuKTsKIAlXQUxSZWFk RXJyb3IgZXJyaW5mbzsKIAogCWlmIChwcml2YXRlLT5lbmRwdHJfcmVhY2hlZCkKQEAgLTQzNiw2 ICs1ODksNDQgQEAgV0FMRHVtcFJlYWRQYWdlKFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhMb2dS ZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcUxlbiwKIAlyZXR1cm4gY291bnQ7CiB9CiAKKy8q CisgKiBwZ193YWxkdW1wJ3MgWExvZ1JlYWRlclJvdXRpbmUtPnNlZ21lbnRfb3BlbiBjYWxsYmFj ayB0byBzdXBwb3J0IGR1bXBpbmcgV0FMCisgKiBmaWxlcyBmcm9tIHRhciBhcmNoaXZlcy4KKyAq Lworc3RhdGljIHZvaWQKK1RhcldBTER1bXBPcGVuU2VnbWVudChYTG9nUmVhZGVyU3RhdGUgKnN0 YXRlLCBYTG9nU2VnTm8gbmV4dFNlZ05vLAorCQkJCQkgIFRpbWVMaW5lSUQgKnRsaV9wKQorewor CS8qIE5vIGFjdGlvbiBuZWVkZWQgKi8KK30KKworLyoKKyAqIHBnX3dhbGR1bXAncyBYTG9nUmVh ZGVyUm91dGluZS0+c2VnbWVudF9jbG9zZSBjYWxsYmFjay4KKyAqLworc3RhdGljIHZvaWQKK1Rh cldBTER1bXBDbG9zZVNlZ21lbnQoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSkKK3sKKwkvKiBObyBh Y3Rpb24gbmVlZGVkICovCit9CisKKy8qCisgKiBwZ193YWxkdW1wJ3MgWExvZ1JlYWRlclJvdXRp bmUtPnBhZ2VfcmVhZCBjYWxsYmFjayB0byBzdXBwb3J0IGR1bXBpbmcgV0FMCisgKiBmaWxlcyBm cm9tIHRhciBhcmNoaXZlcy4KKyAqLworc3RhdGljIGludAorVGFyV0FMRHVtcFJlYWRQYWdlKFhM b2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcUxl biwKKwkJCQkgICBYTG9nUmVjUHRyIHRhcmdldFB0ciwgY2hhciAqcmVhZEJ1ZmYpCit7CisJWExv Z0R1bXBQcml2YXRlICpwcml2YXRlID0gc3RhdGUtPnByaXZhdGVfZGF0YTsKKwlpbnQJCQljb3Vu dCA9IHJlcXVpcmVkX3JlYWRfbGVuKHByaXZhdGUsIHRhcmdldFB0ciwgcmVxTGVuKTsKKworCWlm IChwcml2YXRlLT5lbmRwdHJfcmVhY2hlZCkKKwkJcmV0dXJuIC0xOworCisJLyogUmVhZCB0aGUg V0FMIHBhZ2UgZnJvbSB0aGUgYXJjaGl2ZSBzdHJlYW1lciAqLworCXJldHVybiBhc3RyZWFtZXJf d2FsX3JlYWQocmVhZEJ1ZmYsIHRhcmdldFBhZ2VQdHIsIGNvdW50LCBwcml2YXRlKTsKK30KKwog LyoKICAqIEJvb2xlYW4gdG8gcmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIFdBTCByZWNvcmQgbWF0 Y2hlcyBhIHNwZWNpZmljIHJlbGF0aW9uCiAgKiBhbmQgb3B0aW9uYWxseSBibG9jay4KQEAgLTc3 Myw4ICs5NjQsOCBAQCB1c2FnZSh2b2lkKQogCXByaW50ZihfKCIgIC1GLCAtLWZvcms9Rk9SSyAg ICAgICAgb25seSBzaG93IHJlY29yZHMgdGhhdCBtb2RpZnkgYmxvY2tzIGluIGZvcmsgRk9SSztc biIKIAkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkIG5hbWVzIGFyZSBtYWluLCBm c20sIHZtLCBpbml0XG4iKSk7CiAJcHJpbnRmKF8oIiAgLW4sIC0tbGltaXQ9TiAgICAgICAgICBu dW1iZXIgb2YgcmVjb3JkcyB0byBkaXNwbGF5XG4iKSk7Ci0JcHJpbnRmKF8oIiAgLXAsIC0tcGF0 aD1QQVRIICAgICAgICBkaXJlY3RvcnkgaW4gd2hpY2ggdG8gZmluZCBXQUwgc2VnbWVudCBmaWxl cyBvciBhXG4iCi0JCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rvcnkgd2l0aCBh IC4vcGdfd2FsIHRoYXQgY29udGFpbnMgc3VjaCBmaWxlc1xuIgorCXByaW50ZihfKCIgIC1wLCAt LXBhdGg9UEFUSCAgICAgICAgdGFyIGFyY2hpdmUgb3IgYSBkaXJlY3RvcnkgaW4gd2hpY2ggdG8g ZmluZCBXQUwgc2VnbWVudCBmaWxlcyBvclxuIgorCQkJICIgICAgICAgICAgICAgICAgICAgICAg ICAgYSBkaXJlY3Rvcnkgd2l0aCBhIC4vcGdfd2FsIHRoYXQgY29udGFpbnMgc3VjaCBmaWxlc1xu IgogCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQ6IGN1cnJlbnQgZGlyZWN0 b3J5LCAuL3BnX3dhbCwgJFBHREFUQS9wZ193YWwpXG4iKSk7CiAJcHJpbnRmKF8oIiAgLXEsIC0t cXVpZXQgICAgICAgICAgICBkbyBub3QgcHJpbnQgYW55IG91dHB1dCwgZXhjZXB0IGZvciBlcnJv cnNcbiIpKTsKIAlwcmludGYoXygiICAtciwgLS1ybWdyPVJNR1IgICAgICAgIG9ubHkgc2hvdyBy ZWNvcmRzIGdlbmVyYXRlZCBieSByZXNvdXJjZSBtYW5hZ2VyIFJNR1I7XG4iCkBAIC04MDYsNyAr OTk3LDExIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCVhMb2dSZWNvcmQgKnJlY29y ZDsKIAlYTG9nUmVjUHRyCWZpcnN0X3JlY29yZDsKIAljaGFyCSAgICp3YWxkaXIgPSBOVUxMOwor CWNoYXIJICAgKndhbHBhdGggPSBOVUxMOwogCWNoYXIJICAgKmVycm9ybXNnOworCWJvb2wJCWlz X3RhciA9IGZhbHNlOworCVhMb2dSZWFkZXJSb3V0aW5lICpyb3V0aW5lID0gTlVMTDsKKwlwZ19j b21wcmVzc19hbGdvcml0aG0gY29tcHJlc3Npb247CiAKIAlzdGF0aWMgc3RydWN0IG9wdGlvbiBs b25nX29wdGlvbnNbXSA9IHsKIAkJeyJia3AtZGV0YWlscyIsIG5vX2FyZ3VtZW50LCBOVUxMLCAn Yid9LApAQCAtOTM4LDcgKzExMzMsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJ CQl9CiAJCQkJYnJlYWs7CiAJCQljYXNlICdwJzoKLQkJCQl3YWxkaXIgPSBwZ19zdHJkdXAob3B0 YXJnKTsKKwkJCQl3YWxwYXRoID0gcGdfc3RyZHVwKG9wdGFyZyk7CiAJCQkJYnJlYWs7CiAJCQlj YXNlICdxJzoKIAkJCQljb25maWcucXVpZXQgPSB0cnVlOwpAQCAtMTEwMiwxMCArMTI5NywyMCBA QCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJZ290byBiYWRfYXJndW1lbnQ7CiAJfQog Ci0JaWYgKHdhbGRpciAhPSBOVUxMKQorCWlmICh3YWxwYXRoICE9IE5VTEwpCiAJeworCQkvKiB2 YWxpZGF0ZSBwYXRoIHBvaW50cyB0byB0YXIgYXJjaGl2ZSAqLworCQlpZiAoaXNfdGFyX2ZpbGUo d2FscGF0aCwgJmNvbXByZXNzaW9uKSkKKwkJeworCQkJY2hhcgkgICAqZm5hbWUgPSBOVUxMOwor CisJCQlzcGxpdF9wYXRoKHdhbHBhdGgsICZ3YWxkaXIsICZmbmFtZSk7CisKKwkJCXByaXZhdGUu YXJjaGl2ZV9uYW1lID0gZm5hbWU7CisJCQlpc190YXIgPSB0cnVlOworCQl9CiAJCS8qIHZhbGlk YXRlIHBhdGggcG9pbnRzIHRvIGRpcmVjdG9yeSAqLwotCQlpZiAoIXZlcmlmeV9kaXJlY3Rvcnko d2FsZGlyKSkKKwkJZWxzZSBpZiAoIXZlcmlmeV9kaXJlY3Rvcnkod2FscGF0aCkpCiAJCXsKIAkJ CXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9wZW4gZGlyZWN0b3J5IFwiJXNcIjogJW0iLCB3YWxk aXIpOwogCQkJZ290byBiYWRfYXJndW1lbnQ7CkBAIC0xMTI5LDQ0ICsxMzM0LDIzIEBAIG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJCXNwbGl0X3BhdGgoYXJndltvcHRpbmRdLCAmZGly ZWN0b3J5LCAmZm5hbWUpOwogCi0JCWlmICh3YWxkaXIgPT0gTlVMTCAmJiBkaXJlY3RvcnkgIT0g TlVMTCkKKwkJaWYgKHdhbHBhdGggPT0gTlVMTCAmJiBkaXJlY3RvcnkgIT0gTlVMTCkKIAkJewot CQkJd2FsZGlyID0gZGlyZWN0b3J5OworCQkJd2FscGF0aCA9IGRpcmVjdG9yeTsKIAotCQkJaWYg KCF2ZXJpZnlfZGlyZWN0b3J5KHdhbGRpcikpCisJCQlpZiAoIXZlcmlmeV9kaXJlY3Rvcnkod2Fs cGF0aCkpCiAJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGRpcmVjdG9yeSBcIiVzXCI6ICVt Iiwgd2FsZGlyKTsKIAkJfQogCi0JCXdhbGRpciA9IGlkZW50aWZ5X3RhcmdldF9kaXJlY3Rvcnko d2FsZGlyLCBmbmFtZSk7Ci0JCWZkID0gb3Blbl9maWxlX2luX2RpcmVjdG9yeSh3YWxkaXIsIGZu YW1lKTsKLQkJaWYgKGZkIDwgMCkKLQkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwi JXNcIiIsIGZuYW1lKTsKLQkJY2xvc2UoZmQpOwotCi0JCS8qIHBhcnNlIHBvc2l0aW9uIGZyb20g ZmlsZSAqLwotCQlYTG9nRnJvbUZpbGVOYW1lKGZuYW1lLCAmcHJpdmF0ZS50aW1lbGluZSwgJnNl Z25vLCBXYWxTZWdTeik7Ci0KLQkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQocHJpdmF0ZS5zdGFy dHB0cikpCi0JCQlYTG9nU2VnTm9PZmZzZXRUb1JlY1B0cihzZWdubywgMCwgV2FsU2VnU3osIHBy aXZhdGUuc3RhcnRwdHIpOwotCQllbHNlIGlmICghWExCeXRlSW5TZWcocHJpdmF0ZS5zdGFydHB0 ciwgc2Vnbm8sIFdhbFNlZ1N6KSkKKwkJaWYgKGZuYW1lICE9IE5VTEwgJiYgaXNfdGFyX2ZpbGUo Zm5hbWUsICZjb21wcmVzc2lvbikpCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigic3RhcnQgV0FMIGxv Y2F0aW9uICVYLyUwOFggaXMgbm90IGluc2lkZSBmaWxlIFwiJXNcIiIsCi0JCQkJCQkgTFNOX0ZP Uk1BVF9BUkdTKHByaXZhdGUuc3RhcnRwdHIpLAotCQkJCQkJIGZuYW1lKTsKLQkJCWdvdG8gYmFk X2FyZ3VtZW50OworCQkJcHJpdmF0ZS5hcmNoaXZlX25hbWUgPSBmbmFtZTsKKwkJCXdhbGRpciA9 IHdhbHBhdGg7CisJCQlpc190YXIgPSB0cnVlOwogCQl9Ci0KLQkJLyogbm8gc2Vjb25kIGZpbGUg c3BlY2lmaWVkLCBzZXQgZW5kIHBvc2l0aW9uICovCi0JCWlmICghKG9wdGluZCArIDEgPCBhcmdj KSAmJiBYTG9nUmVjUHRySXNJbnZhbGlkKHByaXZhdGUuZW5kcHRyKSkKLQkJCVhMb2dTZWdOb09m ZnNldFRvUmVjUHRyKHNlZ25vICsgMSwgMCwgV2FsU2VnU3osIHByaXZhdGUuZW5kcHRyKTsKLQot CQkvKiBwYXJzZSBFTkRTRUcgaWYgcGFzc2VkICovCi0JCWlmIChvcHRpbmQgKyAxIDwgYXJnYykK KwkJZWxzZQogCQl7Ci0JCQlYTG9nU2VnTm8JZW5kc2Vnbm87Ci0KLQkJCS8qIGlnbm9yZSBkaXJl Y3RvcnksIGFscmVhZHkgaGF2ZSB0aGF0ICovCi0JCQlzcGxpdF9wYXRoKGFyZ3Zbb3B0aW5kICsg MV0sICZkaXJlY3RvcnksICZmbmFtZSk7CisJCQl3YWxkaXIgPSBpZGVudGlmeV90YXJnZXRfZGly ZWN0b3J5KHdhbHBhdGgsIGZuYW1lKTsKIAogCQkJZmQgPSBvcGVuX2ZpbGVfaW5fZGlyZWN0b3J5 KHdhbGRpciwgZm5hbWUpOwogCQkJaWYgKGZkIDwgMCkKQEAgLTExNzQsMzIgKzEzNTgsNjcgQEAg bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQljbG9zZShmZCk7CiAKIAkJCS8qIHBhcnNl IHBvc2l0aW9uIGZyb20gZmlsZSAqLwotCQkJWExvZ0Zyb21GaWxlTmFtZShmbmFtZSwgJnByaXZh dGUudGltZWxpbmUsICZlbmRzZWdubywgV2FsU2VnU3opOworCQkJWExvZ0Zyb21GaWxlTmFtZShm bmFtZSwgJnByaXZhdGUudGltZWxpbmUsICZzZWdubywgV2FsU2VnU3opOwogCi0JCQlpZiAoZW5k c2Vnbm8gPCBzZWdubykKLQkJCQlwZ19mYXRhbCgiRU5EU0VHICVzIGlzIGJlZm9yZSBTVEFSVFNF RyAlcyIsCi0JCQkJCQkgYXJndltvcHRpbmQgKyAxXSwgYXJndltvcHRpbmRdKTsKKwkJCWlmIChY TG9nUmVjUHRySXNJbnZhbGlkKHByaXZhdGUuc3RhcnRwdHIpKQorCQkJCVhMb2dTZWdOb09mZnNl dFRvUmVjUHRyKHNlZ25vLCAwLCBXYWxTZWdTeiwgcHJpdmF0ZS5zdGFydHB0cik7CisJCQllbHNl IGlmICghWExCeXRlSW5TZWcocHJpdmF0ZS5zdGFydHB0ciwgc2Vnbm8sIFdhbFNlZ1N6KSkKKwkJ CXsKKwkJCQlwZ19sb2dfZXJyb3IoInN0YXJ0IFdBTCBsb2NhdGlvbiAlWC8lMDhYIGlzIG5vdCBp bnNpZGUgZmlsZSBcIiVzXCIiLAorCQkJCQkJCSBMU05fRk9STUFUX0FSR1MocHJpdmF0ZS5zdGFy dHB0ciksCisJCQkJCQkJIGZuYW1lKTsKKwkJCQlnb3RvIGJhZF9hcmd1bWVudDsKKwkJCX0KIAot CQkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQocHJpdmF0ZS5lbmRwdHIpKQotCQkJCVhMb2dTZWdO b09mZnNldFRvUmVjUHRyKGVuZHNlZ25vICsgMSwgMCwgV2FsU2VnU3osCi0JCQkJCQkJCQkJcHJp dmF0ZS5lbmRwdHIpOworCQkJLyogbm8gc2Vjb25kIGZpbGUgc3BlY2lmaWVkLCBzZXQgZW5kIHBv c2l0aW9uICovCisJCQlpZiAoIShvcHRpbmQgKyAxIDwgYXJnYykgJiYgWExvZ1JlY1B0cklzSW52 YWxpZChwcml2YXRlLmVuZHB0cikpCisJCQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoc2Vnbm8g KyAxLCAwLCBXYWxTZWdTeiwgcHJpdmF0ZS5lbmRwdHIpOwogCi0JCQkvKiBzZXQgc2Vnbm8gdG8g ZW5kc2Vnbm8gZm9yIGNoZWNrIG9mIC0tZW5kICovCi0JCQlzZWdubyA9IGVuZHNlZ25vOwotCQl9 CisJCQkvKiBwYXJzZSBFTkRTRUcgaWYgcGFzc2VkICovCisJCQlpZiAob3B0aW5kICsgMSA8IGFy Z2MpCisJCQl7CisJCQkJWExvZ1NlZ05vCWVuZHNlZ25vOwogCisJCQkJLyogaWdub3JlIGRpcmVj dG9yeSwgYWxyZWFkeSBoYXZlIHRoYXQgKi8KKwkJCQlzcGxpdF9wYXRoKGFyZ3Zbb3B0aW5kICsg MV0sICZkaXJlY3RvcnksICZmbmFtZSk7CiAKLQkJaWYgKCFYTEJ5dGVJblNlZyhwcml2YXRlLmVu ZHB0ciwgc2Vnbm8sIFdhbFNlZ1N6KSAmJgotCQkJcHJpdmF0ZS5lbmRwdHIgIT0gKHNlZ25vICsg MSkgKiBXYWxTZWdTeikKLQkJewotCQkJcGdfbG9nX2Vycm9yKCJlbmQgV0FMIGxvY2F0aW9uICVY LyUwOFggaXMgbm90IGluc2lkZSBmaWxlIFwiJXNcIiIsCi0JCQkJCQkgTFNOX0ZPUk1BVF9BUkdT KHByaXZhdGUuZW5kcHRyKSwKLQkJCQkJCSBhcmd2W2FyZ2MgLSAxXSk7Ci0JCQlnb3RvIGJhZF9h cmd1bWVudDsKKwkJCQlmZCA9IG9wZW5fZmlsZV9pbl9kaXJlY3Rvcnkod2FsZGlyLCBmbmFtZSk7 CisJCQkJaWYgKGZkIDwgMCkKKwkJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIl c1wiIiwgZm5hbWUpOworCQkJCWNsb3NlKGZkKTsKKworCQkJCS8qIHBhcnNlIHBvc2l0aW9uIGZy b20gZmlsZSAqLworCQkJCVhMb2dGcm9tRmlsZU5hbWUoZm5hbWUsICZwcml2YXRlLnRpbWVsaW5l LCAmZW5kc2Vnbm8sIFdhbFNlZ1N6KTsKKworCQkJCWlmIChlbmRzZWdubyA8IHNlZ25vKQorCQkJ CQlwZ19mYXRhbCgiRU5EU0VHICVzIGlzIGJlZm9yZSBTVEFSVFNFRyAlcyIsCisJCQkJCQkJIGFy Z3Zbb3B0aW5kICsgMV0sIGFyZ3Zbb3B0aW5kXSk7CisKKwkJCQlpZiAoWExvZ1JlY1B0cklzSW52 YWxpZChwcml2YXRlLmVuZHB0cikpCisJCQkJCVhMb2dTZWdOb09mZnNldFRvUmVjUHRyKGVuZHNl Z25vICsgMSwgMCwgV2FsU2VnU3osCisJCQkJCQkJCQkJCXByaXZhdGUuZW5kcHRyKTsKKworCQkJ CS8qIHNldCBzZWdubyB0byBlbmRzZWdubyBmb3IgY2hlY2sgb2YgLS1lbmQgKi8KKwkJCQlzZWdu byA9IGVuZHNlZ25vOworCQkJfQorCisKKwkJCWlmICghWExCeXRlSW5TZWcocHJpdmF0ZS5lbmRw dHIsIHNlZ25vLCBXYWxTZWdTeikgJiYKKwkJCQlwcml2YXRlLmVuZHB0ciAhPSAoc2Vnbm8gKyAx KSAqIFdhbFNlZ1N6KQorCQkJeworCQkJCXBnX2xvZ19lcnJvcigiZW5kIFdBTCBsb2NhdGlvbiAl WC8lMDhYIGlzIG5vdCBpbnNpZGUgZmlsZSBcIiVzXCIiLAorCQkJCQkJCSBMU05fRk9STUFUX0FS R1MocHJpdmF0ZS5lbmRwdHIpLAorCQkJCQkJCSBhcmd2W2FyZ2MgLSAxXSk7CisJCQkJZ290byBi YWRfYXJndW1lbnQ7CisJCQl9CiAJCX0KIAl9Ci0JZWxzZQotCQl3YWxkaXIgPSBpZGVudGlmeV90 YXJnZXRfZGlyZWN0b3J5KHdhbGRpciwgTlVMTCk7CisJZWxzZSBpZiAoIWlzX3RhcikKKwkJd2Fs ZGlyID0gaWRlbnRpZnlfdGFyZ2V0X2RpcmVjdG9yeSh3YWxwYXRoLCBOVUxMKTsKKworCS8qIFZl cmlmeSB0aGF0IHRoZSBhcmNoaXZlIGNvbnRhaW5zIHZhbGlkIFdBTCBmaWxlcyAqLworCWlmIChp c190YXIpCisJCXZlcmlmeV90YXJfYXJjaGl2ZSgmcHJpdmF0ZSwgd2FsZGlyLCBjb21wcmVzc2lv bik7CiAKIAkvKiB3ZSBkb24ndCBrbm93IHdoYXQgdG8gcHJpbnQgKi8KIAlpZiAoWExvZ1JlY1B0 cklzSW52YWxpZChwcml2YXRlLnN0YXJ0cHRyKSkKQEAgLTEyMTEsMTEgKzE0MzAsMjYgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJLyogZG9uZSB3aXRoIGFyZ3VtZW50IHBhcnNpbmcs IGRvIHRoZSBhY3R1YWwgd29yayAqLwogCiAJLyogd2UgaGF2ZSBldmVyeXRoaW5nIHdlIG5lZWQs IHN0YXJ0IHJlYWRpbmcgKi8KKwlpZiAoaXNfdGFyKQorCXsKKwkJLyogU2V0IHVwIGZvciByZWFk aW5nIHRhciBmaWxlICovCisJCWluaXRfdGFyX2FyY2hpdmVfcmVhZGVyKCZwcml2YXRlLCB3YWxk aXIsIGNvbXByZXNzaW9uKTsKKworCQkvKiBSb3V0aW5lIHRvIGRlY29kZSBXQUwgZmlsZXMgaW4g dGFyIGFyY2hpdmUgKi8KKwkJcm91dGluZSA9IFhMX1JPVVRJTkUoLnBhZ2VfcmVhZCA9IFRhcldB TER1bXBSZWFkUGFnZSwKKwkJCQkJCQkgLnNlZ21lbnRfb3BlbiA9IFRhcldBTER1bXBPcGVuU2Vn bWVudCwKKwkJCQkJCQkgLnNlZ21lbnRfY2xvc2UgPSBUYXJXQUxEdW1wQ2xvc2VTZWdtZW50KTsK Kwl9CisJZWxzZQorCXsKKwkJLyogUm91dGluZSB0byBkZWNvZGUgV0FMIGZpbGVzICovCisJCXJv dXRpbmUgPSBYTF9ST1VUSU5FKC5wYWdlX3JlYWQgPSBXQUxEdW1wUmVhZFBhZ2UsCisJCQkJCQkJ IC5zZWdtZW50X29wZW4gPSBXQUxEdW1wT3BlblNlZ21lbnQsCisJCQkJCQkJIC5zZWdtZW50X2Ns b3NlID0gV0FMRHVtcENsb3NlU2VnbWVudCk7CisJfQorCiAJeGxvZ3JlYWRlcl9zdGF0ZSA9Ci0J CVhMb2dSZWFkZXJBbGxvY2F0ZShXYWxTZWdTeiwgd2FsZGlyLAotCQkJCQkJICAgWExfUk9VVElO RSgucGFnZV9yZWFkID0gV0FMRHVtcFJlYWRQYWdlLAotCQkJCQkJCQkJICAuc2VnbWVudF9vcGVu ID0gV0FMRHVtcE9wZW5TZWdtZW50LAotCQkJCQkJCQkJICAuc2VnbWVudF9jbG9zZSA9IFdBTER1 bXBDbG9zZVNlZ21lbnQpLAorCQlYTG9nUmVhZGVyQWxsb2NhdGUoV2FsU2VnU3osIHdhbGRpciwg cm91dGluZSwKIAkJCQkJCSAgICZwcml2YXRlKTsKIAlpZiAoIXhsb2dyZWFkZXJfc3RhdGUpCiAJ CXBnX2ZhdGFsKCJvdXQgb2YgbWVtb3J5IHdoaWxlIGFsbG9jYXRpbmcgYSBXQUwgcmVhZGluZyBw cm9jZXNzb3IiKTsKQEAgLTEzMjUsNiArMTU1OSw5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogCiAJWExvZ1JlYWRlckZyZWUoeGxvZ3JlYWRlcl9zdGF0ZSk7CiAKKwlpZiAoaXNfdGFy KQorCQlmcmVlX3Rhcl9hcmNoaXZlX3JlYWRlcigmcHJpdmF0ZSk7CisKIAlyZXR1cm4gRVhJVF9T VUNDRVNTOwogCiBiYWRfYXJndW1lbnQ6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAv cGdfd2FsZHVtcC5oIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaAppbmRleCBjZDlh MzZkNzQ0Ny4uZDJjMjMwN2Q2YzIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193 YWxkdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaApAQCAtMTIsNiAr MTIsOCBAQAogI2RlZmluZSBQR19XQUxEVU1QX0gKIAogI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVm cy5oIgorI2luY2x1ZGUgImZlX3V0aWxzL2FzdHJlYW1lci5oIgorI2luY2x1ZGUgImxpYi9zdHJp bmdpbmZvLmgiCiAKIGV4dGVybiBpbnQgV2FsU2VnU3o7CiAKQEAgLTIyLDYgKzI0LDIzIEBAIHR5 cGVkZWYgc3RydWN0IFhMb2dEdW1wUHJpdmF0ZQogCVhMb2dSZWNQdHIJc3RhcnRwdHI7CiAJWExv Z1JlY1B0cgllbmRwdHI7CiAJYm9vbAkJZW5kcHRyX3JlYWNoZWQ7CisKKwkvKiBGaWVsZHMgcmVx dWlyZWQgdG8gcmVhZCBXQUwgZnJvbSBhcmNoaXZlICovCisJY2hhcgkgICAqYXJjaGl2ZV9uYW1l OwkvKiBUYXIgYXJjaGl2ZSBuYW1lICovCisJaW50CQkJYXJjaGl2ZV9mZDsJCS8qIEZpbGUgZGVz Y3JpcHRvciBmb3IgdGhlIG9wZW4gdGFyIGZpbGUgKi8KKworCWFzdHJlYW1lciAgKmFyY2hpdmVf c3RyZWFtZXI7CisJU3RyaW5nSW5mbwlhcmNoaXZlX3N0cmVhbWVyX2J1ZjsJLyogQnVmZmVyIGZv ciByZWNlaXZpbmcgV0FMIGRhdGEgKi8KKwlYTG9nUmVjUHRyCWFyY2hpdmVfc3RyZWFtZXJfcmVh ZF9wdHI7IC8qIFBvcHVsYXRlIHRoZSBidWZmZXIgd2l0aCByZWNvcmRzCisJCQkJCQkJCQkJCSAg dW50aWwgdGhpcyByZWNvcmQgcG9pbnRlciAqLwogfSBYTG9nRHVtcFByaXZhdGU7CiAKLSNlbmRp ZgkJLyogZW5kIG9mIFBHX1dBTERVTVBfSCAqLworCitleHRlcm4gYXN0cmVhbWVyICphc3RyZWFt ZXJfd2FsZHVtcF9jb250ZW50X25ldyhhc3RyZWFtZXIgKm5leHQsCisJCQkJCQkJCQkJCQlYTG9n UmVjUHRyIHN0YXJ0cHRyLAorCQkJCQkJCQkJCQkJWExvZ1JlY1B0ciBlbmRwdHIsCisJCQkJCQkJ CQkJCQlYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvKTsKK2V4dGVybiBpbnQJYXN0cmVhbWVy X3dhbF9yZWFkKGNoYXIgKnJlYWRCdWZmLCBYTG9nUmVjUHRyIHN0YXJ0cHRyLCBTaXplIGNvdW50 LAorCQkJCQkJCSAgIFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8pOworCisjZW5kaWYJCQkJ CQkJLyogZW5kIG9mIFBHX1dBTERVTVBfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxk dW1wL3QvMDAxX2Jhc2ljLnBsIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsCmlu ZGV4IDFiNzEyZThkNzRkLi44MDI5OGQyYTUxZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193YWxk dW1wL3QvMDAxX2Jhc2ljLnBsCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5w bApAQCAtMywxMCArMywxMyBAQAogCiB1c2Ugc3RyaWN0OwogdXNlIHdhcm5pbmdzIEZBVEFMID0+ ICdhbGwnOwordXNlIEN3ZDsKIHVzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwogdXNlIFBv c3RncmVTUUw6OlRlc3Q6OlV0aWxzOwogdXNlIFRlc3Q6Ok1vcmU7CiAKK215ICR0YXIgPSAkRU5W e1RBUn07CisKIHByb2dyYW1faGVscF9vaygncGdfd2FsZHVtcCcpOwogcHJvZ3JhbV92ZXJzaW9u X29rKCdwZ193YWxkdW1wJyk7CiBwcm9ncmFtX29wdGlvbnNfaGFuZGxpbmdfb2soJ3BnX3dhbGR1 bXAnKTsKQEAgLTIzNSw3ICsyMzgsNyBAQCBjb21tYW5kX2xpa2UoCiBzdWIgdGVzdF9wZ193YWxk dW1wCiB7CiAJbG9jYWwgJFRlc3Q6OkJ1aWxkZXI6OkxldmVsID0gJFRlc3Q6OkJ1aWxkZXI6Okxl dmVsICsgMTsKLQlteSBAb3B0cyA9IEBfOworCW15ICgkcGF0aCwgQG9wdHMpID0gQF87CiAKIAlt eSAoJHN0ZG91dCwgJHN0ZGVycik7CiAKQEAgLTI0Myw2ICsyNDYsNyBAQCBzdWIgdGVzdF9wZ193 YWxkdW1wCiAJCSdwZ193YWxkdW1wJywKIAkJJy0tc3RhcnQnID0+ICRzdGFydF9sc24sCiAJCSct LWVuZCcgPT4gJGVuZF9sc24sCisJCSctLXBhdGgnID0+ICRwYXRoLAogCQlAb3B0cwogCSAgXSwK IAkgICc+JyA9PiBcJHN0ZG91dCwKQEAgLTI1NCwxMSArMjU4LDI3IEBAIHN1YiB0ZXN0X3BnX3dh bGR1bXAKIAlyZXR1cm4gQGxpbmVzOwogfQogCi1teSBAbGluZXM7CitteSAkdG1wX2RpciA9IFBv c3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0ZW1wZGlyX3Nob3J0KCk7CiAKIG15IEBzY2VuYXJpbyA9 ICgKIAl7Ci0JCSdwYXRoJyA9PiAkbm9kZS0+ZGF0YV9kaXIKKwkJJ3BhdGgnID0+ICRub2RlLT5k YXRhX2RpciwKKwkJJ2lzX2FyY2hpdmUnID0+IDAsCisJCSdlbmFibGVkJyA9PiAxCisJfSwKKwl7 CisJCSdwYXRoJyA9PiAiJHRtcF9kaXIvcGdfd2FsLnRhciIsCisJCSdjb21wcmVzc2lvbl9tZXRo b2QnID0+ICdub25lJywKKwkJJ2NvbXByZXNzaW9uX2ZsYWdzJyA9PiAnLWNmJywKKwkJJ2lzX2Fy Y2hpdmUnID0+IDEsCisJCSdlbmFibGVkJyA9PiAxCisJfSwKKwl7CisJCSdwYXRoJyA9PiAiJHRt cF9kaXIvcGdfd2FsLnRhci5neiIsCisJCSdjb21wcmVzc2lvbl9tZXRob2QnID0+ICdnemlwJywK KwkJJ2NvbXByZXNzaW9uX2ZsYWdzJyA9PiAnLWN6ZicsCisJCSdpc19hcmNoaXZlJyA9PiAxLAor CQknZW5hYmxlZCcgPT4gY2hlY2tfcGdfY29uZmlnKCIjZGVmaW5lIEhBVkVfTElCWiAxIikKIAl9 KTsKIAogZm9yIG15ICRzY2VuYXJpbyAoQHNjZW5hcmlvKQpAQCAtMjY3LDYgKzI4NywyMiBAQCBm b3IgbXkgJHNjZW5hcmlvIChAc2NlbmFyaW8pCiAKIAlTS0lQOgogCXsKKwkJc2tpcCAidGFyIGNv bW1hbmQgaXMgbm90IGF2YWlsYWJsZSIsIDMKKwkJICBpZiAhZGVmaW5lZCAkdGFyOworCQlza2lw ICIkc2NlbmFyaW8tPnsnY29tcHJlc3Npb25fbWV0aG9kJ30gY29tcHJlc3Npb24gbm90IHN1cHBv cnRlZCBieSB0aGlzIGJ1aWxkIiwgMworCQkgIGlmICEkc2NlbmFyaW8tPnsnZW5hYmxlZCd9ICYm ICRzY2VuYXJpby0+eydpc19hcmNoaXZlJ307CisKKwkJICAjIGNyZWF0ZSBwZ193YWwgYXJjaGl2 ZQorCQkgIGlmICgkc2NlbmFyaW8tPnsnaXNfYXJjaGl2ZSd9KQorCQkgIHsKKwkJCSAgIyBtb3Zl IGludG8gdGhlIFdBTCBkaXJlY3RvcnkgYmVmb3JlIGFyY2hpdmluZyBmaWxlcworCQkJICBteSAk Y3dkID0gZ2V0Y3dkOworCQkJICBjaGRpcigkbm9kZS0+ZGF0YV9kaXIgLiAnL3BnX3dhbC8nKSB8 fCBkaWUgImNoZGlyOiAkISI7CisJCQkgIGNvbW1hbmRfb2soCisJCQkJICBbICR0YXIsICRzY2Vu YXJpby0+eydjb21wcmVzc2lvbl9mbGFncyd9LCAkcGF0aCAsICcuJyBdKTsKKwkJCSAgY2hkaXIo JGN3ZCkgfHwgZGllICJjaGRpcjogJCEiOworCQkgIH0KKwogCQljb21tYW5kX2ZhaWxzX2xpa2Uo CiAJCQlbICdwZ193YWxkdW1wJywgJy0tcGF0aCcgPT4gJHBhdGggXSwKIAkJCXFyL2Vycm9yOiBu byBzdGFydCBXQUwgbG9jYXRpb24gZ2l2ZW4vLApAQCAtMjk4LDM4ICszMzQsNDIgQEAgZm9yIG15 ICRzY2VuYXJpbyAoQHNjZW5hcmlvKQogCQkJcXIvZXJyb3I6IGVycm9yIGluIFdBTCByZWNvcmQg YXQvLAogCQkJJ2Vycm9ycyBhcmUgc2hvd24gd2l0aCAtLXF1aWV0Jyk7CiAKLQkJQGxpbmVzID0g dGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoKTsKKwkJbXkgQGxpbmVzOworCQlAbGlu ZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgpOwogCQlpcyhncmVwKCEvXnJtZ3I6IFx3LywgQGxp bmVzKSwgMCwgJ2FsbCBvdXRwdXQgbGluZXMgYXJlIHJtZ3IgbGluZXMnKTsKIAotCQlAbGluZXMg PSB0ZXN0X3BnX3dhbGR1bXAoJy0tcGF0aCcgPT4gJHBhdGgsICctLWxpbWl0JyA9PiA2KTsKKwkJ QGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRoLCAnLS1saW1pdCcgPT4gNik7CiAJCWlzKEBs aW5lcywgNiwgJ2xpbWl0IG9wdGlvbiBvYnNlcnZlZCcpOwogCi0JCUBsaW5lcyA9IHRlc3RfcGdf d2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0aCwgJy0tZnVsbHBhZ2UnKTsKKwkJQGxpbmVzID0gdGVz dF9wZ193YWxkdW1wKCRwYXRoLCAnLS1mdWxscGFnZScpOwogCQlpcyhncmVwKCEvXnJtZ3I6Lipc YkZQV1xiLywgQGxpbmVzKSwgMCwgJ2FsbCBvdXRwdXQgbGluZXMgYXJlIEZQVycpOwogCi0JCUBs aW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0aCwgJy0tc3RhdHMnKTsKKwkJ QGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRoLCAnLS1zdGF0cycpOwogCQlsaWtlKCRsaW5l c1swXSwgcXIvV0FMIHN0YXRpc3RpY3MvLCAic3RhdGlzdGljcyBvbiBzdGRvdXQiKTsKIAkJaXMo Z3JlcCgvXnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3IgbGluZXMgb3V0cHV0Jyk7CiAKLQkJ QGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1zdGF0cz1yZWNv cmQnKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRoLCAnLS1zdGF0cz1yZWNvcmQn KTsKIAkJbGlrZSgkbGluZXNbMF0sIHFyL1dBTCBzdGF0aXN0aWNzLywgInN0YXRpc3RpY3Mgb24g c3Rkb3V0Iik7CiAJCWlzKGdyZXAoL15ybWdyOi8sIEBsaW5lcyksIDAsICdubyBybWdyIGxpbmVz IG91dHB1dCcpOwogCi0JCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0 aCwgJy0tcm1ncicgPT4gJ0J0cmVlJyk7CisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgkcGF0 aCwgJy0tcm1ncicgPT4gJ0J0cmVlJyk7CiAJCWlzKGdyZXAoIS9ecm1ncjogQnRyZWUvLCBAbGlu ZXMpLCAwLCAnb25seSBCdHJlZSBsaW5lcycpOwogCi0JCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVt cCgnLS1wYXRoJyA9PiAkcGF0aCwgJy0tZm9yaycgPT4gJ2luaXQnKTsKKwkJQGxpbmVzID0gdGVz dF9wZ193YWxkdW1wKCRwYXRoLCAnLS1mb3JrJyA9PiAnaW5pdCcpOwogCQlpcyhncmVwKCEvZm9y ayBpbml0LywgQGxpbmVzKSwgMCwgJ29ubHkgaW5pdCBmb3JrIGxpbmVzJyk7CiAKLQkJQGxpbmVz ID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLAorCQlAbGluZXMgPSB0ZXN0X3Bn X3dhbGR1bXAoJHBhdGgsCiAJCQknLS1yZWxhdGlvbicgPT4gIiRkZWZhdWx0X3RzX29pZC8kcG9z dGdyZXNfZGJfb2lkLyRyZWxfdDFfb2lkIik7CiAJCWlzKGdyZXAoIS9yZWwgJGRlZmF1bHRfdHNf b2lkXC8kcG9zdGdyZXNfZGJfb2lkXC8kcmVsX3QxX29pZC8sIEBsaW5lcyksCiAJCQkwLCAnb25s eSBsaW5lcyBmb3Igc2VsZWN0ZWQgcmVsYXRpb24nKTsKIAotCQlAbGluZXMgPSB0ZXN0X3BnX3dh bGR1bXAoJy0tcGF0aCcgPT4gJHBhdGgsCisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgkcGF0 aCwKIAkJCSctLXJlbGF0aW9uJyA9PiAiJGRlZmF1bHRfdHNfb2lkLyRwb3N0Z3Jlc19kYl9vaWQv JHJlbF9pMWFfb2lkIiwKIAkJCSctLWJsb2NrJyA9PiAxKTsKIAkJaXMoZ3JlcCghL1xiYmxrIDFc Yi8sIEBsaW5lcyksIDAsICdvbmx5IGxpbmVzIGZvciBzZWxlY3RlZCBibG9jaycpOworCisJCSMg Q2xlYW51cC4KKwkJdW5saW5rICRwYXRoIGlmICRzY2VuYXJpby0+eydpc19hcmNoaXZlJ307CiAJ fQogfQogCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGU2ZjJlOTNiMmQ2Li5kODQyOGNl MjM1MiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTM0NDUsNiArMzQ0NSw3IEBAIGFz dHJlYW1lcl9yZWNvdmVyeV9pbmplY3RvcgogYXN0cmVhbWVyX3Rhcl9hcmNoaXZlcgogYXN0cmVh bWVyX3Rhcl9wYXJzZXIKIGFzdHJlYW1lcl92ZXJpZnkKK2FzdHJlYW1lcl93YWxkdW1wCiBhc3Ry ZWFtZXJfenN0ZF9mcmFtZQogYXV0aF9wYXNzd29yZF9ob29rX3R5cAogYXV0b3ZhY190YWJsZQot LSAKMi40Ny4xCgo= --000000000000161d88063bc71fd6 Content-Type: application/x-patch; name="v1-0006-WIP-pg_waldump-Remove-the-restriction-on-the-orde.patch" Content-Disposition: attachment; filename="v1-0006-WIP-pg_waldump-Remove-the-restriction-on-the-orde.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me1gfwk65 RnJvbSA3NDY5YjdiNmJmM2RkODRkMDkyZmQ4NmY2OWJmNWFiNTc0ZWU0Zjg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgNyBBdWcgMjAyNSAxNzozNzoyMyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjEgNi85XSBXSVAt cGdfd2FsZHVtcDogUmVtb3ZlIHRoZSByZXN0cmljdGlvbiBvbiB0aGUgb3JkZXIgb2YKIGFyY2hp dmVkIFdBTCBmaWxlcy4KCldpdGggcHJldmlvdXMgcGF0Y2gsIHBnX3dhbGR1bXAgd291bGQgc3Rv cCBkZWNvZGluZyBpZiBXQUwgZmlsZXMgd2VyZQpub3QgaW4gdGhlIHJlcXVpcmVkIHNlcXVlbmNl LiBXaXRoIHRoaXMgcGF0Y2gsIGRlY29kaW5nIHdpbGwgbm93CmNvbnRpbnVlLiAgQW55IFdBTCBm aWxlIHRoYXQgaXMgb3V0IG9mIG9yZGVyIHdpbGwgYmUgd3JpdHRlbiB0byBhCnRlbXBvcmFyeSBs b2NhdGlvbiwgZnJvbSB3aGljaCBpdCB3aWxsIGJlIHJlYWQgbGF0ZXIuIE9uY2UgYSB0ZW1wb3Jh cnkKZmlsZSBoYXMgYmVlbiByZWFkLCBpdCB3aWxsIGJlIHJlbW92ZWQuCgpUT0RPOgogIFRpbWVs aW5lIHN3aXRjaGluZyBpcyBub3QgaGFuZGxlZCBjb3JyZWN0bHksIGVzcGVjaWFsbHkgd2hlbiBh CiAgdGltZWxpbmUgY2hhbmdlIG9jY3VycyBvbiB0aGUgbmV4dCBXQUwgZmlsZSB0aGF0IHdhcyBw cmV2aW91c2x5CiAgd3JpdHRlbiB0byBhIHRlbXBvcmFyeSBsb2NhdGlvbi4KLS0tCiBkb2Mvc3Jj L3NnbWwvcmVmL3BnX3dhbGR1bXAuc2dtbCAgICAgICB8ICAgOCArLQogc3JjL2Jpbi9wZ193YWxk dW1wL2FzdHJlYW1lcl93YWxkdW1wLmMgfCAxODggKysrKysrKysrKysrKysrKysrKysrLS0tLQog c3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyAgICAgICAgfCAgOTkgKysrKysrKysrKysr LQogc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaCAgICAgICAgfCAgIDEgKwogc3JjL2Jp bi9wZ193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsICAgICAgfCAgNDAgKysrKystCiA1IGZpbGVzIGNo YW5nZWQsIDMwMSBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3BnX3dhbGR1bXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfd2Fs ZHVtcC5zZ21sCmluZGV4IGQwMDRiYjBmNjdlLi44YTI4YjRmMGY5MSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9wZ193YWxkdW1wLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ193 YWxkdW1wLnNnbWwKQEAgLTE0OSw4ICsxNDksMTIgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9u CiAgICAgICAgIG9mIDxlbnZhcj5QR0RBVEE8L2VudmFyPi4KICAgICAgICA8L3BhcmE+CiAgICAg ICAgPHBhcmE+Ci0gICAgICAgIElmIGEgdGFyIGFyY2hpdmUgaXMgcHJvdmlkZWQsIGl0cyBXQUwg c2VnbWVudCBmaWxlcyBtdXN0IGJlIGluCi0gICAgICAgIHNlcXVlbnRpYWwgb3JkZXI7IG90aGVy d2lzZSwgYW4gZXJyb3Igd2lsbCBiZSByZXBvcnRlZC4KKyAgICAgICAgSWYgYSB0YXIgYXJjaGl2 ZSBpcyBwcm92aWRlZCBhbmQgaXRzIFdBTCBzZWdtZW50IGZpbGVzIGFyZSBub3QgaW4KKyAgICAg ICAgc2VxdWVudGlhbCBvcmRlciwgdGhvc2UgZmlsZXMgd2lsbCBiZSB3cml0dGVuIHRvIGEgdGVt cG9yYXJ5IGRpcmVjdG9yeQorICAgICAgICBuYW1lZCA8ZmlsZW5hbWU+cGdfd2FsZHVtcF90bXBf ZGlyLzwvZmlsZW5hbWU+LiBUaGlzIGRpcmVjdG9yeSB3aWxsIGJlCisgICAgICAgIGNyZWF0ZWQg aW5zaWRlIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5IHRoZSA8ZW52YXI+VE1QRElSPC9lbnZh cj4KKyAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgaWYgaXQgaXMgc2V0OyBvdGhlcndpc2Us IGl0IHdpbGwgYmUgY3JlYXRlZCB3aXRoaW4KKyAgICAgICAgdGhlIHNhbWUgZGlyZWN0b3J5IGFz IHRoZSB0YXIgYXJjaGl2ZS4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAg ICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC9hc3RyZWFt ZXJfd2FsZHVtcC5jIGIvc3JjL2Jpbi9wZ193YWxkdW1wL2FzdHJlYW1lcl93YWxkdW1wLmMKaW5k ZXggZDBhYzkwM2M1NGUuLmEwODhjMzNiMTZmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1 bXAvYXN0cmVhbWVyX3dhbGR1bXAuYworKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvYXN0cmVhbWVy X3dhbGR1bXAuYwpAQCAtMTgsNiArMTgsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dfaW50 ZXJuYWwuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJjb21tb24v ZmlsZV9wZXJtLmgiCiAjaW5jbHVkZSAiY29tbW9uL2xvZ2dpbmcuaCIKICNpbmNsdWRlICJmZV91 dGlscy9zaW1wbGVfbGlzdC5oIgogI2luY2x1ZGUgInBnX3dhbGR1bXAuaCIKQEAgLTM3LDYgKzM4 LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgYXN0cmVhbWVyX3dhbGR1bXAKIAogCS8qIFRoZXNlIGZpZWxk cyBjaGFuZ2Ugd2l0aCBhcmNoaXZlIG1lbWJlci4gKi8KIAlib29sCQlza2lwVGhpc1NlZzsKKwli b29sCQl3cml0ZVRoaXNTZWc7CisJRklMRQkgICAqc2VnRnA7CisJU2ltcGxlU3RyaW5nTGlzdCBl eHBvcnRlZFNlZ0xpc3Q7CS8qIFRlbXBvcmFyeSBleHBvcnRlZCBzZWdtZW50IGxpc3QgKi8KIAlY TG9nU2VnTm8JbmV4dFNlZ05vOwkJLyogTmV4dCBleHBlY3RlZCBzZWdtZW50IHRvIHN0cmVhbSAq LwogfSBhc3RyZWFtZXJfd2FsZHVtcDsKIApAQCAtNTMsOCArNTcsMTEgQEAgc3RhdGljIGJvb2wg bWVtYmVyX2lzX3JlbGV2YW50X3dhbChhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsCiAJCQkJCQkJ CSAgIFhMb2dTZWdObyBzdGFydFNlZ05vLAogCQkJCQkJCQkgICBYTG9nU2VnTm8gZW5kU2VnTm8s CiAJCQkJCQkJCSAgIFhMb2dTZWdObyBuZXh0U2VnTm8sCisJCQkJCQkJCSAgIGNoYXIgKipjdXJG bmFtZSwKIAkJCQkJCQkJICAgWExvZ1NlZ05vICpjdXJTZWdObywKIAkJCQkJCQkJICAgVGltZUxp bmVJRCAqY3VyU2VnVGltZWxpbmUpOworc3RhdGljIGJvb2wgbWVtYmVyX25lZWRzX3RlbXBfd3Jp dGUoYXN0cmVhbWVyX3dhbGR1bXAgKm15c3RyZWFtZXIsCisJCQkJCQkJCQljb25zdCBjaGFyICpm bmFtZSk7CiAKIHN0YXRpYyBjb25zdCBhc3RyZWFtZXJfb3BzIGFzdHJlYW1lcl93YWxkdW1wX29w cyA9IHsKIAkuY29udGVudCA9IGFzdHJlYW1lcl93YWxkdW1wX2NvbnRlbnQsCkBAIC0xODksMTcg KzE5Niw4IEBAIGFzdHJlYW1lcl93YWxkdW1wX2NvbnRlbnRfbmV3KGFzdHJlYW1lciAqbmV4dCwg WExvZ1JlY1B0ciBzdGFydHB0ciwKIAlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChzdGFydHB0cikp CiAJCXN0cmVhbWVyLT5zdGFydFNlZ05vID0gMDsKIAllbHNlCi0JewogCQlYTEJ5dGVUb1NlZyhz dGFydHB0ciwgc3RyZWFtZXItPnN0YXJ0U2VnTm8sIFdhbFNlZ1N6KTsKIAotCQkvKgotCQkgKiBJ bml0aWFsaXplIHRoZSByZWNvcmQgcG9pbnRlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaXJz dAotCQkgKiBzZWdtZW50OyB0aGlzIHBvaW50ZXIgd2lsbCB0cmFjayB0aGUgV0FMIHJlY29yZCBy ZWFkaW5nIHN0YXR1cy4KLQkJICovCi0JCVhMb2dTZWdOb09mZnNldFRvUmVjUHRyKHN0cmVhbWVy LT5zdGFydFNlZ05vLCAwLCBXYWxTZWdTeiwKLQkJCQkJCQkJcHJpdmF0ZUluZm8tPmFyY2hpdmVf c3RyZWFtZXJfcmVhZF9wdHIpOwotCX0KLQogCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKGVuZFB0 cikpCiAJCXN0cmVhbWVyLT5lbmRTZWdObyA9IFVJTlQ2NF9NQVg7CiAJZWxzZQpAQCAtMjI4LDE5 ICsyMjYsMjEgQEAgYXN0cmVhbWVyX3dhbGR1bXBfY29udGVudChhc3RyZWFtZXIgKnN0cmVhbWVy LCBhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsCiAJewogCQljYXNlIEFTVFJFQU1FUl9NRU1CRVJf SEVBREVSOgogCQkJeworCQkJCWNoYXIJICAgKmZuYW1lOwogCQkJCVhMb2dTZWdObwlzZWdObzsK IAkJCQlUaW1lTGluZUlECXRpbWVsaW5lOwogCiAJCQkJcGdfbG9nX2RlYnVnKCJwZ193YWxkdW1w OiByZWFkaW5nIFwiJXNcIiIsIG1lbWJlci0+cGF0aG5hbWUpOwogCiAJCQkJbXlzdHJlYW1lci0+ c2tpcFRoaXNTZWcgPSBmYWxzZTsKKwkJCQlteXN0cmVhbWVyLT53cml0ZVRoaXNTZWcgPSBmYWxz ZTsKIAogCQkJCWlmICghbWVtYmVyX2lzX3JlbGV2YW50X3dhbChtZW1iZXIsCiAJCQkJCQkJCQkJ CXByaXZhdGVJbmZvLT50aW1lbGluZSwKIAkJCQkJCQkJCQkJbXlzdHJlYW1lci0+c3RhcnRTZWdO bywKIAkJCQkJCQkJCQkJbXlzdHJlYW1lci0+ZW5kU2VnTm8sCiAJCQkJCQkJCQkJCW15c3RyZWFt ZXItPm5leHRTZWdObywKLQkJCQkJCQkJCQkJJnNlZ05vLCAmdGltZWxpbmUpKQorCQkJCQkJCQkJ CQkmZm5hbWUsICZzZWdObywgJnRpbWVsaW5lKSkKIAkJCQl7CiAJCQkJCW15c3RyZWFtZXItPnNr aXBUaGlzU2VnID0gdHJ1ZTsKIAkJCQkJYnJlYWs7CkBAIC0yNTQsMjQgKzI1NCwzNyBAQCBhc3Ry ZWFtZXJfd2FsZHVtcF9jb250ZW50KGFzdHJlYW1lciAqc3RyZWFtZXIsIGFzdHJlYW1lcl9tZW1i ZXIgKm1lbWJlciwKIAkJCQlpZiAobXlzdHJlYW1lci0+bmV4dFNlZ05vID09IDApCiAJCQkJCWJy ZWFrOwogCi0JCQkJLyogV0FMIHNlZ21lbnRzIG11c3QgYmUgYXJjaGl2ZWQgaW4gb3JkZXIgKi8K LQkJCQlpZiAobXlzdHJlYW1lci0+bmV4dFNlZ05vICE9IHNlZ05vKQorCQkJCS8qCisJCQkJICog V2hlbiBXQUwgc2VnbWVudHMgYXJlIG5vdCBhcmNoaXZlZCBzZXF1ZW50aWFsbHksIGl0IGJlY29t ZXMKKwkJCQkgKiBuZWNlc3NhcnkgdG8gd3JpdGUgb3V0IChvciBwcmVzZXJ2ZSkgc2VnbWVudHMg dGhhdCBtaWdodCBiZQorCQkJCSAqIHJlcXVpcmVkIGF0IGEgbGF0ZXIgcG9pbnQuCisJCQkJICov CisJCQkJaWYgKG15c3RyZWFtZXItPm5leHRTZWdObyAhPSBzZWdObyAmJgorCQkJCQltZW1iZXJf bmVlZHNfdGVtcF93cml0ZShteXN0cmVhbWVyLCBmbmFtZSkpCiAJCQkJewotCQkJCQlwZ19sb2df ZXJyb3IoIldBTCBmaWxlcyBhcmUgbm90IGFyY2hpdmVkIGluIHNlcXVlbnRpYWwgb3JkZXIiKTsK LQkJCQkJcGdfbG9nX2Vycm9yX2RldGFpbCgiRXhwZWN0aW5nIHNlZ21lbnQgbnVtYmVyICIgVUlO VDY0X0ZPUk1BVCAiIGJ1dCBmb3VuZCAiIFVJTlQ2NF9GT1JNQVQgIi4iLAotCQkJCQkJCQkJCW15 c3RyZWFtZXItPm5leHRTZWdObywgc2VnTm8pOwotCQkJCQlleGl0KDEpOworCQkJCQlteXN0cmVh bWVyLT53cml0ZVRoaXNTZWcgPSB0cnVlOworCQkJCQlicmVhazsKIAkJCQl9CiAKIAkJCQkvKgot CQkJCSAqIFdlIHRyYWNrIHRoZSByZWFkaW5nIG9mIFdBTCBzZWdtZW50IHJlY29yZHMgdXNpbmcg YSBwb2ludGVyCi0JCQkJICogdGhhdCdzIGNvbnRpbnVvdXNseSBpbmNyZW1lbnRlZCBieSB0aGUg bGVuZ3RoIG9mIHRoZQotCQkJCSAqIHJlY2VpdmVkIGRhdGEuIFRoaXMgcG9pbnRlciBpcyBjcnVj aWFsIGZvciBzZXJ2aW5nIFdBTCBwYWdlCi0JCQkJICogcmVxdWVzdHMgZnJvbSB0aGUgV0FMIGRl Y29kaW5nIHJvdXRpbmUsIHNvIGl0IG11c3QgYmUKLQkJCQkgKiBhY2N1cmF0ZS4KKwkJCQkgKiBX ZSBhcmUgbm93IHN0cmVhbWluZyBzZWdtZW50IGNvbnRhaW50LgorCQkJCSAqCisJCQkJICogV2Ug bmVlZCB0byB0cmFjayB0aGUgcmVhZGluZyBvZiBXQUwgc2VnbWVudCByZWNvcmRzIHVzaW5nIGEK KwkJCQkgKiBwb2ludGVyIHRoYXQncyB0eXBpY2FsbHkgaW5jcmVtZW50ZWQgYnkgdGhlIGxlbmd0 aCBvZiB0aGUKKwkJCQkgKiBkYXRhIHJlYWQuIEhvd2V2ZXIsIHdlIHNvbWV0aW1lcyBleHBvcnQg dGhlIFdBTCBmaWxlIHRvCisJCQkJICogdGVtcG9yYXJ5IHN0b3JhZ2UsIGFsbG93aW5nIHRoZSBk ZWNvZGluZyByb3V0aW5lIHRvIHJlYWQKKwkJCQkgKiBkaXJlY3RseSBmcm9tIHRoZXJlLiBUaGlz IG1ha2VzIGNvbnRpbnVvdXMgcG9pbnRlcgorCQkJCSAqIGluY3JlbWVudGluZyBjaGFsbGVuZ2lu ZywgYXMgZmlsZSByZWFkcyBjYW4gb2NjdXIgZnJvbSBhbnkKKwkJCQkgKiBvZmZzZXQsIGxlYWRp bmcgdG8gcG90ZW50aWFsIGVycm9ycy4gVGhlcmVmb3JlLCB3ZSBub3cKKwkJCQkgKiByZXNldCB0 aGUgcG9pbnRlciB3aGVuIHJlYWRpbmcgZnJvbSBhIGZpbGUgZm9yIHN0cmVhbWluZy4KKwkJCQkg KiBBbHNvLCBpZiB0aGVyZSdzIGFueSBleGlzdGluZyBkYXRhIGluIHRoZSBidWZmZXIsIHRoZSBu ZXh0CisJCQkJICogV0FMIHJlY29yZCBzaG91bGQgbG9naWNhbGx5IGZvbGxvdyBpdC4KIAkJCQkg Ki8KICNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCi0JCQkJaWYgKG15c3RyZWFtZXItPm5leHRT ZWdObyAhPSAwKQorCQkJCUFzc2VydCghbXlzdHJlYW1lci0+c2tpcFRoaXNTZWcpOworCQkJCUFz c2VydCghbXlzdHJlYW1lci0+d3JpdGVUaGlzU2VnKTsKKworCQkJCWlmIChwcml2YXRlSW5mby0+ YXJjaGl2ZV9zdHJlYW1lcl9idWYtPmxlbiAhPSAwKQogCQkJCXsKIAkJCQkJWExvZ1JlY1B0cgly ZWNQdHI7CiAKQEAgLTI4MCw2ICsyOTMsMTMgQEAgYXN0cmVhbWVyX3dhbGR1bXBfY29udGVudChh c3RyZWFtZXIgKnN0cmVhbWVyLCBhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsCiAJCQkJfQogI2Vu ZGlmCiAKKwkJCQkvKgorCQkJCSAqIEluaXRpYWxpemVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhl IGN1cnJlbnQgc2VnbWVudCBiZWluZworCQkJCSAqIHN0cmVhbWVkIHRocm91Z2ggdGhlIGJ1ZmZl ci4KKwkJCQkgKi8KKwkJCQlYTG9nU2VnTm9PZmZzZXRUb1JlY1B0cihzZWdObywgMCwgV2FsU2Vn U3osCisJCQkJCQkJCQkJcHJpdmF0ZUluZm8tPmFyY2hpdmVfc3RyZWFtZXJfcmVhZF9wdHIpOwor CiAJCQkJLyogU2F2ZSB0aGUgdGltZWxpbmUgKi8KIAkJCQlwcml2YXRlSW5mby0+dGltZWxpbmUg PSB0aW1lbGluZTsKIApAQCAtMjkzLDEyICszMTMsNDQgQEAgYXN0cmVhbWVyX3dhbGR1bXBfY29u dGVudChhc3RyZWFtZXIgKnN0cmVhbWVyLCBhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsCiAJCQlp ZiAobXlzdHJlYW1lci0+c2tpcFRoaXNTZWcpCiAJCQkJYnJlYWs7CiAKKwkJCS8qIE9yLCB3cml0 ZSBjb250ZW50cyB0byBmaWxlICovCisJCQlpZiAobXlzdHJlYW1lci0+d3JpdGVUaGlzU2VnKQor CQkJeworCQkJCUFzc2VydChteXN0cmVhbWVyLT5zZWdGcCAhPSBOVUxMKTsKKworCQkJCWVycm5v ID0gMDsKKwkJCQlpZiAobGVuID4gMCAmJiBmd3JpdGUoZGF0YSwgbGVuLCAxLCBteXN0cmVhbWVy LT5zZWdGcCkgIT0gMSkKKwkJCQl7CisJCQkJCWNoYXIJICAgKmZuYW1lOworCQkJCQlpbnQJCQlw YXRobGVuID0gc3RybGVuKG1lbWJlci0+cGF0aG5hbWUpOworCisJCQkJCUFzc2VydChwYXRobGVu ID49IFhMT0dfRk5BTUVfTEVOKTsKKworCQkJCQlmbmFtZSA9IG1lbWJlci0+cGF0aG5hbWUgKyAo cGF0aGxlbiAtIFhMT0dfRk5BTUVfTEVOKTsKKworCQkJCQkvKgorCQkJCQkgKiBJZiB3cml0ZSBk aWRuJ3Qgc2V0IGVycm5vLCBhc3N1bWUgcHJvYmxlbSBpcyBubyBkaXNrCisJCQkJCSAqIHNwYWNl CisJCQkJCSAqLworCQkJCQlpZiAoZXJybm8gPT0gMCkKKwkJCQkJCWVycm5vID0gRU5PU1BDOwor CQkJCQlwZ19mYXRhbCgiY291bGQgbm90IHdyaXRlIHRvIGZpbGUgXCIlcy8lc1wiOiAlbSIsCisJ CQkJCQkJIHByaXZhdGVJbmZvLT50bXBkaXIsIGZuYW1lKTsKKwkJCQl9CisJCQkJYnJlYWs7CisJ CQl9CisKIAkJCS8qIE9yLCBjb3B5IGNvbnRlbnRzIHRvIGJ1ZmZlciAqLwogCQkJcHJpdmF0ZUlu Zm8tPmFyY2hpdmVfc3RyZWFtZXJfcmVhZF9wdHIgKz0gbGVuOwogCQkJYXN0cmVhbWVyX2J1ZmZl cl9ieXRlcyhzdHJlYW1lciwgJmRhdGEsICZsZW4sIGxlbik7CiAJCQlicmVhazsKIAogCQljYXNl IEFTVFJFQU1FUl9NRU1CRVJfVFJBSUxFUjoKKwkJCWlmIChteXN0cmVhbWVyLT5zZWdGcCAhPSBO VUxMKQorCQkJeworCQkJCWZjbG9zZShteXN0cmVhbWVyLT5zZWdGcCk7CisJCQkJbXlzdHJlYW1l ci0+c2VnRnAgPSBOVUxMOworCQkJfQogCQkJYnJlYWs7CiAKIAkJY2FzZSBBU1RSRUFNRVJfQVJD SElWRV9UUkFJTEVSOgpAQCAtMzI1LDggKzM3NywxNCBAQCBhc3RyZWFtZXJfd2FsZHVtcF9maW5h bGl6ZShhc3RyZWFtZXIgKnN0cmVhbWVyKQogc3RhdGljIHZvaWQKIGFzdHJlYW1lcl93YWxkdW1w X2ZyZWUoYXN0cmVhbWVyICpzdHJlYW1lcikKIHsKKwlhc3RyZWFtZXJfd2FsZHVtcCAqbXlzdHJl YW1lcjsKKwogCUFzc2VydChzdHJlYW1lci0+YmJzX25leHQgPT0gTlVMTCk7CiAKKwlteXN0cmVh bWVyID0gKGFzdHJlYW1lcl93YWxkdW1wICopIHN0cmVhbWVyOworCWlmIChteXN0cmVhbWVyLT5z ZWdGcCAhPSBOVUxMKQorCQlmY2xvc2UobXlzdHJlYW1lci0+c2VnRnApOworCiAJcGZyZWUoc3Ry ZWFtZXItPmJic19idWZmZXIuZGF0YSk7CiAJcGZyZWUoc3RyZWFtZXIpOwogfQpAQCAtMzM5LDgg KzM5Nyw4IEBAIGFzdHJlYW1lcl93YWxkdW1wX2ZyZWUoYXN0cmVhbWVyICpzdHJlYW1lcikKIHN0 YXRpYyBib29sCiBtZW1iZXJfaXNfcmVsZXZhbnRfd2FsKGFzdHJlYW1lcl9tZW1iZXIgKm1lbWJl ciwgVGltZUxpbmVJRCBzdGFydFRpbWVMaW5lSUQsCiAJCQkJCSAgIFhMb2dTZWdObyBzdGFydFNl Z05vLCBYTG9nU2VnTm8gZW5kU2VnTm8sCi0JCQkJCSAgIFhMb2dTZWdObyBuZXh0U2VnTm8sIFhM b2dTZWdObyAqY3VyU2VnTm8sCi0JCQkJCSAgIFRpbWVMaW5lSUQgKmN1clNlZ1RpbWVsaW5lKQor CQkJCQkgICBYTG9nU2VnTm8gbmV4dFNlZ05vLCBjaGFyICoqY3VyRm5hbWUsCisJCQkJCSAgIFhM b2dTZWdObyAqY3VyU2VnTm8sIFRpbWVMaW5lSUQgKmN1clNlZ1RpbWVsaW5lKQogewogCWludAkJ CXBhdGhsZW47CiAJWExvZ1NlZ05vCXNlZ05vOwpAQCAtMzcxLDggKzQyOSw5MCBAQCBtZW1iZXJf aXNfcmVsZXZhbnRfd2FsKGFzdHJlYW1lcl9tZW1iZXIgKm1lbWJlciwgVGltZUxpbmVJRCBzdGFy dFRpbWVMaW5lSUQsCiAJaWYgKHN0YXJ0U2VnTm8gPiBzZWdObyB8fCBlbmRTZWdObyA8IHNlZ05v KQogCQlyZXR1cm4gZmFsc2U7CiAKKwkvKgorCSAqIEEgY29ybmVyIGNhc2Ugd2hlcmUgd2UndmUg YWxyZWFkeSBzdHJlYW1lZCB0aGUgY29udGVudHMgb2YgYW4gYXJjaGl2ZWQKKwkgKiBXQUwgc2Vn bWVudCB3aXRoIGEgc2ltaWxhciBuYW1lLCBzbyBpZ25vcmluZyB0aGlzIGR1cGxpY2F0ZS4KKwkg Ki8KKwlpZiAobmV4dFNlZ05vID4gc2VnTm8pCisJCXJldHVybiBmYWxzZTsKKworCSpjdXJGbmFt ZSA9IGZuYW1lOwogCSpjdXJTZWdObyA9IHNlZ05vOwogCSpjdXJTZWdUaW1lbGluZSA9IHRpbWVs aW5lOwogCiAJcmV0dXJuIHRydWU7CiB9CisKKy8qCisgKiBSZXR1cm5zIHRydWUgYW5kIGNyZWF0 ZXMgYSB0ZW1wb3JhcnkgZmlsZSBpZiB0aGUgZ2l2ZW4gV0FMIHNlZ21lbnQgbmVlZHMgdG8KKyAq IGJlIHdyaXR0ZW4gdG8gdGVtcG9yYXJ5IHNwYWNlLiBUaGlzIGlzIHJlcXVpcmVkIHdoZW4gdGhl IHNlZ21lbnQgaXMgbm90IHRoZQorICogb25lIGN1cnJlbnRseSBiZWluZyBkZWNvZGVkLiBDb252 ZXJzZWx5LCBpZiBhIHRlbXBvcmFyeSBmaWxlIGZvciB0aGUKKyAqIHByZWNlZGluZyBzZWdtZW50 IGFscmVhZHkgZXhpc3RzIGFuZCB0aGUgY3VycmVudCBzZWdtZW50IGlzIGl0cyBkaXJlY3QKKyAq IHN1Y2Nlc3NvciwgdGhlbiB3cml0aW5nIHRvIHRlbXBvcmFyeSBzcGFjZSBpcyBub3QgbmVjZXNz YXJ5LCBhbmQgZmFsc2UgaXMKKyAqIHJldHVybmVkLgorICovCitzdGF0aWMgYm9vbAorbWVtYmVy X25lZWRzX3RlbXBfd3JpdGUoYXN0cmVhbWVyX3dhbGR1bXAgKm15c3RyZWFtZXIsIGNvbnN0IGNo YXIgKmZuYW1lKQoreworCWJvb2wJCWV4aXN0czsKKwlYTG9nU2VnTm8Jc2VnTm87CisJVGltZUxp bmVJRAl0aW1lbGluZTsKKwlYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvID0gbXlzdHJlYW1l ci0+cHJpdmF0ZUluZm87CisKKwkvKiBQYXJzZSBwb3NpdGlvbiBmcm9tIGZpbGUgKi8KKwlYTG9n RnJvbUZpbGVOYW1lKGZuYW1lLCAmdGltZWxpbmUsICZzZWdObywgV2FsU2VnU3opOworCisJLyoK KwkgKiBJZiB3ZSBmaW5kIGEgZmlsZSB0aGF0IHdhcyBwcmV2aW91c2x5IHdyaXR0ZW4gdG8gdGhl IHRlbXBvcmFyeSBzcGFjZSwKKwkgKiBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29ycmVzcG9uZGlu ZyBXQUwgc2VnbWVudCByZXF1ZXN0IGhhcyBhbHJlYWR5CisJICogYmVlbiBmdWxmaWxsZWQuIElu IHRoYXQgY2FzZSwgd2UgaW5jcmVtZW50IHRoZSBuZXh0U2VnTm8gY291bnRlciBhbmQKKwkgKiBj aGVjayBhZ2FpbiB3aGV0aGVyIHRoZSBjdXJyZW50IHNlZ21lbnQgbnVtYmVyIG1hdGNoZXMgdGhl IHJlcXVpcmVkIFdBTAorCSAqIHNlZ21lbnQgKGkuZS4gbmV4dFNlZ05vKS4gSWYgaXQgZG9lcywg d2UgYWxsb3cgaXQgdG8gc3RyZWFtIG5vcm1hbGx5CisJICogdGhyb3VnaCB0aGUgYnVmZmVyLiBP dGhlcndpc2UsIHdlIHdyaXRlIGl0IHRvIHRoZSB0ZW1wb3Jhcnkgc3BhY2UsIGZyb20KKwkgKiB3 aGVyZSB0aGUgY2FsbGVyIGlzIGV4cGVjdGVkIHRvIHJlYWQgaXQgZGlyZWN0bHkuCisJICovCisJ ZG8KKwl7CisJCWNoYXIJCXNlZ05hbWVbTUFYRk5BTUVMRU5dOworCisJCVhMb2dGaWxlTmFtZShz ZWdOYW1lLCB0aW1lbGluZSwgbXlzdHJlYW1lci0+bmV4dFNlZ05vLCBXYWxTZWdTeik7CisKKwkJ LyoKKwkJICogSWYgdGhlIFdBTCBzZWdtZW50IGhhcyBhbHJlYWR5IGJlZW4gZXhwb3J0ZWQsIGlu Y3JlbWVudCB0aGUgY291bnRlcgorCQkgKiBhbmQgY2hlY2sgZm9yIHRoZSBuZXh0IHNlZ21lbnQu CisJCSAqLworCQlleGlzdHMgPSBmYWxzZTsKKwkJaWYgKHNpbXBsZV9zdHJpbmdfbGlzdF9tZW1i ZXIoJm15c3RyZWFtZXItPmV4cG9ydGVkU2VnTGlzdCwgc2VnTmFtZSkpCisJCXsKKwkJCW15c3Ry ZWFtZXItPm5leHRTZWdObyArPSAxOworCQkJZXhpc3RzID0gdHJ1ZTsKKwkJfQorCX0gd2hpbGUg KGV4aXN0cyk7CisKKwkvKgorCSAqIE5lZWQgdG8gZXhwb3J0IHRoaXMgc2VnbWVudCB0byBkaXNr OyBjcmVhdGUgYW4gZW1wdHkgcGxhY2Vob2xkZXIgZmlsZQorCSAqIHRvIGJlIHdyaXR0ZW4gb25j ZSBpdHMgY29udGVudCBpcyByZWNlaXZlZC4KKwkgKi8KKwlpZiAobXlzdHJlYW1lci0+bmV4dFNl Z05vICE9IHNlZ05vKQorCXsKKwkJY2hhcgkJZnBhdGhbTUFYUEdQQVRIXTsKKworCQlzbnByaW50 ZihmcGF0aCwgTUFYUEdQQVRILCAiJXMvJXMiLCBwcml2YXRlSW5mby0+dG1wZGlyLCBmbmFtZSk7 CisKKwkJbXlzdHJlYW1lci0+c2VnRnAgPSBmb3BlbihmcGF0aCwgUEdfQklOQVJZX1cpOworCQlp ZiAobXlzdHJlYW1lci0+c2VnRnAgPT0gTlVMTCkKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3QgY3Jl YXRlIGZpbGUgXCIlc1wiOiAlbSIsIGZwYXRoKTsKKworI2lmbmRlZiBXSU4zMgorCQlpZiAoY2ht b2QoZnBhdGgsIHBnX2ZpbGVfY3JlYXRlX21vZGUpKQorCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBz ZXQgcGVybWlzc2lvbnMgb24gZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkJIGZwYXRoKTsKKyNlbmRp ZgorCisJCS8qIFJlY29yZCB0aGlzIHNlZ21lbnQncyBleHBvcnQgdG8gdGVtcG9yYXJ5IHNwYWNl ICovCisJCXNpbXBsZV9zdHJpbmdfbGlzdF9hcHBlbmQoJm15c3RyZWFtZXItPmV4cG9ydGVkU2Vn TGlzdCwgZm5hbWUpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jIGIvc3JjL2Jpbi9wZ193 YWxkdW1wL3BnX3dhbGR1bXAuYwppbmRleCA2NGYzYTY1YjczNS4uNTRhM2IyZGFjZGEgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ193 YWxkdW1wL3BnX3dhbGR1bXAuYwpAQCAtMzI1LDYgKzMyNSw1MSBAQCBpZGVudGlmeV90YXJnZXRf ZGlyZWN0b3J5KGNoYXIgKmRpcmVjdG9yeSwgY2hhciAqZm5hbWUpCiAJcmV0dXJuIE5VTEw7CQkJ CS8qIG5vdCByZWFjaGVkICovCiB9CiAKKy8qCisgKiBTZXQgdXAgYSB0ZW1wb3JhcnkgZGlyZWN0 b3J5IHRvIHRlbXBvcmFyaWx5IHN0b3JlIFdBTCBzZWdtZW50cy4KKyAqLworc3RhdGljIGNoYXIg Kgorc2V0dXBfdG1wX2RpcihjaGFyICp3YWxkaXIpCit7CisJY2hhcgkgICAqdG1wZGlyID0gd2Fs ZGlyICE9IE5VTEwgPyBwc3RyZHVwKHdhbGRpcikgOiAgcHN0cmR1cCgiLiIpOworCisJY2Fub25p Y2FsaXplX3BhdGgodG1wZGlyKTsKKwl0bXBkaXIgPSBwc3ByaW50ZigiJXMvcGdfd2FsZHVtcF90 bXBfZGlyIiwKKwkJCQkJICBnZXRlbnYoIlRNUERJUiIpID8gZ2V0ZW52KCJUTVBESVIiKSA6IHRt cGRpcik7CisKKwljcmVhdGVfZGlyZWN0b3J5KHRtcGRpcik7CisKKwlyZXR1cm4gdG1wZGlyOwor fQorCisvKgorICogUmVtb3ZlcyBhIGRpcmVjdG9yeSBhbG9uZyB3aXRoIGl0cyBjb250ZW50cywg aWYgYW55LgorICovCitzdGF0aWMgdm9pZAorcmVtb3ZlX3RtcF9kaXIoY2hhciAqdG1wZGlyKQor eworCURJUgkJICAgKmRpcjsKKwlzdHJ1Y3QgZGlyZW50ICpkZTsKKworCWRpciA9IG9wZW5kaXIo dG1wZGlyKTsKKwl3aGlsZSAoKGRlID0gcmVhZGRpcihkaXIpKSAhPSBOVUxMKQorCXsKKwkJY2hh cgkJcGF0aFtNQVhQR1BBVEhdOworCisJCWlmIChzdHJjbXAoZGUtPmRfbmFtZSwgIi4iKSA9PSAw IHx8CisJCQlzdHJjbXAoZGUtPmRfbmFtZSwgIi4uIikgPT0gMCkKKwkJCWNvbnRpbnVlOworCisJ CXNucHJpbnRmKHBhdGgsIE1BWFBHUEFUSCwgIiVzLyVzIiwgdG1wZGlyLCBkZS0+ZF9uYW1lKTsK KwkJdW5saW5rKHBhdGgpOworCX0KKwljbG9zZWRpcihkaXIpOworCisJaWYgKHJtZGlyKHRtcGRp cikgPCAwKQorCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCByZW1vdmUgZGlyZWN0b3J5IFwiJXNc IjogJW0iLAorCQkJCQkgdG1wZGlyKTsKK30KKwogLyoKICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUg Z2l2ZW4gZmlsZSBpcyBhIHRhciBhcmNoaXZlIGFuZCBvdXRwdXRzIGl0cyBjb21wcmVzc2lvbgog ICogYWxnb3JpdGhtLgpAQCAtNTU5LDcgKzYwNCw3IEBAIFdBTER1bXBSZWFkUGFnZShYTG9nUmVh ZGVyU3RhdGUgKnN0YXRlLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIsIGludCByZXFMZW4sCiAJ CQkJWExvZ1JlY1B0ciB0YXJnZXRQdHIsIGNoYXIgKnJlYWRCdWZmKQogewogCVhMb2dEdW1wUHJp dmF0ZSAqcHJpdmF0ZSA9IHN0YXRlLT5wcml2YXRlX2RhdGE7Ci0JaW50CQkJY291bnQgPSByZXF1 aXJlZF9yZWFkX2xlbihwcml2YXRlLCB0YXJnZXRQdHIsIHJlcUxlbik7CisJaW50CQkJY291bnQg PSByZXF1aXJlZF9yZWFkX2xlbihwcml2YXRlLCB0YXJnZXRQYWdlUHRyLCByZXFMZW4pOwogCVdB TFJlYWRFcnJvciBlcnJpbmZvOwogCiAJaWYgKHByaXZhdGUtPmVuZHB0cl9yZWFjaGVkKQpAQCAt NjE4LDEyICs2NjMsNTMgQEAgVGFyV0FMRHVtcFJlYWRQYWdlKFhMb2dSZWFkZXJTdGF0ZSAqc3Rh dGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcUxlbiwKIAkJCQkgICBYTG9nUmVj UHRyIHRhcmdldFB0ciwgY2hhciAqcmVhZEJ1ZmYpCiB7CiAJWExvZ0R1bXBQcml2YXRlICpwcml2 YXRlID0gc3RhdGUtPnByaXZhdGVfZGF0YTsKLQlpbnQJCQljb3VudCA9IHJlcXVpcmVkX3JlYWRf bGVuKHByaXZhdGUsIHRhcmdldFB0ciwgcmVxTGVuKTsKKwlpbnQJCQljb3VudCA9IHJlcXVpcmVk X3JlYWRfbGVuKHByaXZhdGUsIHRhcmdldFBhZ2VQdHIsIHJlcUxlbik7CisJWExvZ1NlZ05vCW5l eHRTZWdObzsKIAogCWlmIChwcml2YXRlLT5lbmRwdHJfcmVhY2hlZCkKIAkJcmV0dXJuIC0xOwog Ci0JLyogUmVhZCB0aGUgV0FMIHBhZ2UgZnJvbSB0aGUgYXJjaGl2ZSBzdHJlYW1lciAqLworCS8q CisJICogSWYgdGhlIHRhcmdldCBwYWdlIGlzIGluIGEgZGlmZmVyZW50IHNlZ21lbnQsIGZpcnN0 IGNoZWNrIGZvciB0aGUgV0FMCisJICogc2VnbWVudCdzIHBoeXNpY2FsIGV4aXN0ZW5jZSBpbiB0 aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KKwkgKgorCSAqIFhYWDogVGltZWxpbmUgY2hhbmdlIGlz IG5vdCBoYW5kbGVkLgorCSAqLworCW5leHRTZWdObyA9IHN0YXRlLT5zZWcud3Nfc2Vnbm87CisJ aWYgKCFYTEJ5dGVJblNlZyh0YXJnZXRQYWdlUHRyLCBuZXh0U2VnTm8sIFdhbFNlZ1N6KSkKKwl7 CisJCWNoYXIJCWZuYW1lW01BWFBHUEFUSF07CisKKwkJaWYgKHN0YXRlLT5zZWcud3NfZmlsZSA+ PSAwKQorCQl7CisJCQljaGFyCQlmcGF0aFtNQVhQR1BBVEhdOworCisJCQljbG9zZShzdGF0ZS0+ c2VnLndzX2ZpbGUpOworCQkJc3RhdGUtPnNlZy53c19maWxlID0gLTE7CisKKwkJCS8qIFJlbW92 ZSB0aGlzIGZpbGUsIGFzIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuICovCisJCQlYTG9nRmlsZU5h bWUoZm5hbWUsIHN0YXRlLT5zZWcud3NfdGxpLCBuZXh0U2VnTm8sIFdhbFNlZ1N6KTsKKwkJCXNu cHJpbnRmKGZwYXRoLCBNQVhQR1BBVEgsICIlcy8lcyIsIHByaXZhdGUtPnRtcGRpciwgZm5hbWUp OworCQkJdW5saW5rKGZwYXRoKTsKKwkJfQorCisJCVhMQnl0ZVRvU2VnKHRhcmdldFBhZ2VQdHIs IG5leHRTZWdObywgV2FsU2VnU3opOworCQlzdGF0ZS0+c2VnLndzX3RsaSA9IHByaXZhdGUtPnRp bWVsaW5lOworCQlzdGF0ZS0+c2VnLndzX3NlZ25vID0gbmV4dFNlZ05vOworCisJCS8qCisJCSAq IElmIHRoZSBuZXh0IHNlZ21lbnQgZXhpc3RzLCBvcGVuIGl0IGFuZCBjb250aW51ZSByZWFkaW5n IGZyb20gdGhlcmUKKwkJICovCisJCVhMb2dGaWxlTmFtZShmbmFtZSwgcHJpdmF0ZS0+dGltZWxp bmUsIG5leHRTZWdObywgV2FsU2VnU3opOworCQlzdGF0ZS0+c2VnLndzX2ZpbGUgPSBvcGVuX2Zp bGVfaW5fZGlyZWN0b3J5KHByaXZhdGUtPnRtcGRpciwgZm5hbWUpOworCX0KKworCS8qIENvbnRp bnVlIHJlYWRpbmcgZnJvbSB0aGUgb3BlbiBXQUwgc2VnbWVudCwgaWYgYW55ICovCisJaWYgKHN0 YXRlLT5zZWcud3NfZmlsZSA+PSAwKQorCQlyZXR1cm4gV0FMRHVtcFJlYWRQYWdlKHN0YXRlLCB0 YXJnZXRQYWdlUHRyLCByZXFMZW4sIHRhcmdldFB0ciwKKwkJCQkJCQkgICByZWFkQnVmZik7CisK KwkvKiBPdGhlcndpc2UsIHJlYWQgdGhlIFdBTCBwYWdlIGZyb20gdGhlIGFyY2hpdmUgc3RyZWFt ZXIgKi8KIAlyZXR1cm4gYXN0cmVhbWVyX3dhbF9yZWFkKHJlYWRCdWZmLCB0YXJnZXRQYWdlUHRy LCBjb3VudCwgcHJpdmF0ZSk7CiB9CiAKQEAgLTE0MzUsNiArMTUyMSw5IEBAIG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogCQkvKiBTZXQgdXAgZm9yIHJlYWRpbmcgdGFyIGZpbGUgKi8KIAkJ aW5pdF90YXJfYXJjaGl2ZV9yZWFkZXIoJnByaXZhdGUsIHdhbGRpciwgY29tcHJlc3Npb24pOwog CisJCS8qIENyZWF0ZSB0ZW1wb3Jhcnkgc3BhY2UgZm9yIHdyaXRpbmcgV0FMIHNlZ21lbnRzLiAq LworCQlwcml2YXRlLnRtcGRpciA9IHNldHVwX3RtcF9kaXIod2FsZGlyKTsKKwogCQkvKiBSb3V0 aW5lIHRvIGRlY29kZSBXQUwgZmlsZXMgaW4gdGFyIGFyY2hpdmUgKi8KIAkJcm91dGluZSA9IFhM X1JPVVRJTkUoLnBhZ2VfcmVhZCA9IFRhcldBTER1bXBSZWFkUGFnZSwKIAkJCQkJCQkgLnNlZ21l bnRfb3BlbiA9IFRhcldBTER1bXBPcGVuU2VnbWVudCwKQEAgLTE1NDksNiArMTYzOCwxMCBAQCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAlpZiAoY29uZmlnLnN0YXRzID09IHRydWUgJiYg IWNvbmZpZy5xdWlldCkKIAkJWExvZ0R1bXBEaXNwbGF5U3RhdHMoJmNvbmZpZywgJnN0YXRzKTsK IAorCS8qIFJlbW92ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGlmIGFueSAqLworCWlmIChwcml2YXRl LnRtcGRpciAhPSBOVUxMKQorCQlyZW1vdmVfdG1wX2Rpcihwcml2YXRlLnRtcGRpcik7CisKIAlp ZiAodGltZV90b19zdG9wKQogCQlleGl0KDApOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dh bGR1bXAvcGdfd2FsZHVtcC5oIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaAppbmRl eCBkMmMyMzA3ZDZjMi4uMjY0NGQ4NDdiNDcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVt cC9wZ193YWxkdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaApAQCAt MzMsNiArMzMsNyBAQCB0eXBlZGVmIHN0cnVjdCBYTG9nRHVtcFByaXZhdGUKIAlTdHJpbmdJbmZv CWFyY2hpdmVfc3RyZWFtZXJfYnVmOwkvKiBCdWZmZXIgZm9yIHJlY2VpdmluZyBXQUwgZGF0YSAq LwogCVhMb2dSZWNQdHIJYXJjaGl2ZV9zdHJlYW1lcl9yZWFkX3B0cjsgLyogUG9wdWxhdGUgdGhl IGJ1ZmZlciB3aXRoIHJlY29yZHMKIAkJCQkJCQkJCQkJICB1bnRpbCB0aGlzIHJlY29yZCBwb2lu dGVyICovCisJY2hhcgkgICAqdG1wZGlyOwogfSBYTG9nRHVtcFByaXZhdGU7CiAKIApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsIGIvc3JjL2Jpbi9wZ193YWxk dW1wL3QvMDAxX2Jhc2ljLnBsCmluZGV4IDgwMjk4ZDJhNTFkLi5hM2JmOTUwZGI5NyAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsCisrKyBiL3NyYy9iaW4vcGdf d2FsZHVtcC90LzAwMV9iYXNpYy5wbApAQCAtNyw2ICs3LDggQEAgdXNlIEN3ZDsKIHVzZSBQb3N0 Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwogdXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwogdXNl IFRlc3Q6Ok1vcmU7Cit1c2UgRmlsZTo6UGF0aCBxdyhybXRyZWUpOwordXNlIExpc3Q6OlV0aWwg cXcoc2h1ZmZsZSk7CiAKIG15ICR0YXIgPSAkRU5We1RBUn07CiAKQEAgLTI1OCw2ICsyNjAsMzIg QEAgc3ViIHRlc3RfcGdfd2FsZHVtcAogCXJldHVybiBAbGluZXM7CiB9CiAKKyMgQ3JlYXRlIGEg dGFyIGFyY2hpdmUsIHNodWZmbGluZyB0aGUgZmlsZSBvcmRlcgorc3ViIGdlbmVyYXRlX2FyY2hp dmUKK3sKKwlteSAoJGFyY2hpdmUsICRkaXJlY3RvcnksICRjb21wcmVzc2lvbl9mbGFncykgPSBA XzsKKworCW15IEBmaWxlczsKKwlvcGVuZGlyIG15ICRkaCwgJGRpcmVjdG9yeSBvciBkaWUgIm9w ZW5kaXI6ICQhIjsKKwl3aGlsZSAobXkgJGVudHJ5ID0gcmVhZGRpciAkZGgpIHsKKwkJIyBTa2lw ICcuJyBhbmQgJy4uJworCQluZXh0IGlmICRlbnRyeSBlcSAnLicgfHwgJGVudHJ5IGVxICcuLic7 CisJCXB1c2ggQGZpbGVzLCAkZW50cnk7CisJfQorCWNsb3NlZGlyICRkaDsKKworCUBmaWxlcyA9 IHNodWZmbGUgQGZpbGVzOworCisJIyBtb3ZlIGludG8gdGhlIFdBTCBkaXJlY3RvcnkgYmVmb3Jl IGFyY2hpdmluZyBmaWxlcworCW15ICRjd2QgPSBnZXRjd2Q7CisJY2hkaXIoJGRpcmVjdG9yeSkg fHwgZGllICJjaGRpcjogJCEiOworCWNvbW1hbmRfb2soWyR0YXIsICRjb21wcmVzc2lvbl9mbGFn cywgJGFyY2hpdmUsIEBmaWxlc10pOworCWNoZGlyKCRjd2QpIHx8IGRpZSAiY2hkaXI6ICQhIjsK KworCSMgZ2l2ZSBuZWNlc3NhcnkgcGVybWlzc2lvbgorCWNobW9kKDA3NTUsICRhcmNoaXZlKSB8 fCBkaWUgImNobW9kICRhcmNoaXZlOiAkISI7Cit9CisKIG15ICR0bXBfZGlyID0gUG9zdGdyZVNR TDo6VGVzdDo6VXRpbHM6OnRlbXBkaXJfc2hvcnQoKTsKIAogbXkgQHNjZW5hcmlvID0gKApAQCAt MjkxLDE2ICszMTksMTYgQEAgZm9yIG15ICRzY2VuYXJpbyAoQHNjZW5hcmlvKQogCQkgIGlmICFk ZWZpbmVkICR0YXI7CiAJCXNraXAgIiRzY2VuYXJpby0+eydjb21wcmVzc2lvbl9tZXRob2QnfSBj b21wcmVzc2lvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQiLCAzCiAJCSAgaWYgISRzY2Vu YXJpby0+eydlbmFibGVkJ30gJiYgJHNjZW5hcmlvLT57J2lzX2FyY2hpdmUnfTsKKwkJc2tpcCAi dW5peC1zdHlsZSBwZXJtaXNzaW9ucyBub3Qgc3VwcG9ydGVkIG9uIFdpbmRvd3MiLCAzCisJCSAg aWYgKCRzY2VuYXJpby0+eydpc19hcmNoaXZlJ30KKwkJCSYmICgkd2luZG93c19vcyB8fCAkQ29u ZmlnOjpDb25maWd7b3NuYW1lfSBlcSAnY3lnd2luJykpOwogCiAJCSAgIyBjcmVhdGUgcGdfd2Fs IGFyY2hpdmUKIAkJICBpZiAoJHNjZW5hcmlvLT57J2lzX2FyY2hpdmUnfSkKIAkJICB7Ci0JCQkg ICMgbW92ZSBpbnRvIHRoZSBXQUwgZGlyZWN0b3J5IGJlZm9yZSBhcmNoaXZpbmcgZmlsZXMKLQkJ CSAgbXkgJGN3ZCA9IGdldGN3ZDsKLQkJCSAgY2hkaXIoJG5vZGUtPmRhdGFfZGlyIC4gJy9wZ193 YWwvJykgfHwgZGllICJjaGRpcjogJCEiOwotCQkJICBjb21tYW5kX29rKAotCQkJCSAgWyAkdGFy LCAkc2NlbmFyaW8tPnsnY29tcHJlc3Npb25fZmxhZ3MnfSwgJHBhdGggLCAnLicgXSk7Ci0JCQkg IGNoZGlyKCRjd2QpIHx8IGRpZSAiY2hkaXI6ICQhIjsKKwkJCSAgZ2VuZXJhdGVfYXJjaGl2ZSgk cGF0aCwKKwkJCQkgICRub2RlLT5kYXRhX2RpciAuICcvcGdfd2FsJywKKwkJCQkgICRzY2VuYXJp by0+eydjb21wcmVzc2lvbl9mbGFncyd9KTsKIAkJICB9CiAKIAkJY29tbWFuZF9mYWlsc19saWtl KAotLSAKMi40Ny4xCgo= --000000000000161d88063bc71fd6 Content-Type: application/x-patch; name="v1-0007-pg_verifybackup-Delay-default-WAL-directory-prepa.patch" Content-Disposition: attachment; filename="v1-0007-pg_verifybackup-Delay-default-WAL-directory-prepa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me1gg3ka6 RnJvbSAxMDgxNmY1NDVlN2YyZjNkZjFmYjkwNzUzMjFkMmJkODFkZjE5NWQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMTYgSnVsIDIwMjUgMTQ6NDc6NDMgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxIDcvOV0gcGdf dmVyaWZ5YmFja3VwOiBEZWxheSBkZWZhdWx0IFdBTCBkaXJlY3RvcnkKIHByZXBhcmF0aW9uLgoK V2UgYXJlIG5vdCBzdXJlIHdoZXRoZXIgdG8gcGFyc2UgV0FMIGZyb20gYSBkaXJlY3Rvcnkgb3Ig YW4gYXJjaGl2ZQp1bnRpbCB0aGUgYmFja3VwIGZvcm1hdCBpcyBrbm93bi4gVGhlcmVmb3JlLCB3 ZSBkZWxheSBwcmVwYXJpbmcgdGhlCmRlZmF1bHQgV0FMIGRpcmVjdG9yeSB1bnRpbCB0aGUgcG9p bnQgb2YgcGFyc2luZy4gVGhpcyBkZWxheSBpcwpoYXJtbGVzcywgYXMgdGhlIFdBTCBkaXJlY3Rv cnkgaXMgbm90IHVzZWQgZWxzZXdoZXJlLgotLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bn X3ZlcmlmeWJhY2t1cC5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1 cC9wZ192ZXJpZnliYWNrdXAuYyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJh Y2t1cC5jCmluZGV4IDVlNmMxM2JiOTIxLi4zMWViYzE1ODFmYiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKKysrIGIvc3JjL2Jpbi9wZ192ZXJp ZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKQEAgLTI4NSwxMCArMjg1LDYgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAJCW1hbmlmZXN0X3BhdGggPSBwc3ByaW50ZigiJXMvYmFja3Vw X21hbmlmZXN0IiwKIAkJCQkJCQkJIGNvbnRleHQuYmFja3VwX2RpcmVjdG9yeSk7CiAKLQkvKiBC eSBkZWZhdWx0LCBsb29rIGZvciB0aGUgV0FMIGluIHRoZSBiYWNrdXAgZGlyZWN0b3J5LCB0b28u ICovCi0JaWYgKHdhbF9kaXJlY3RvcnkgPT0gTlVMTCkKLQkJd2FsX2RpcmVjdG9yeSA9IHBzcHJp bnRmKCIlcy9wZ193YWwiLCBjb250ZXh0LmJhY2t1cF9kaXJlY3RvcnkpOwotCiAJLyoKIAkgKiBU cnkgdG8gcmVhZCB0aGUgbWFuaWZlc3QuIFdlIHRyZWF0IGFueSBlcnJvcnMgZW5jb3VudGVyZWQg d2hpbGUgcGFyc2luZwogCSAqIHRoZSBtYW5pZmVzdCBhcyBmYXRhbDsgdGhlcmUgZG9lc24ndCBz ZWVtIHRvIGJlIG11Y2ggcG9pbnQgaW4gdHJ5aW5nIHRvCkBAIC0zNjgsNiArMzY0LDEwIEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWlmIChjb250ZXh0LmZvcm1hdCA9PSAncCcgJiYg IWNvbnRleHQuc2tpcF9jaGVja3N1bXMpCiAJCXZlcmlmeV9iYWNrdXBfY2hlY2tzdW1zKCZjb250 ZXh0KTsKIAorCS8qIEJ5IGRlZmF1bHQsIGxvb2sgZm9yIHRoZSBXQUwgaW4gdGhlIGJhY2t1cCBk aXJlY3RvcnksIHRvby4gKi8KKwlpZiAod2FsX2RpcmVjdG9yeSA9PSBOVUxMKQorCQl3YWxfZGly ZWN0b3J5ID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNvbnRleHQuYmFja3VwX2RpcmVjdG9yeSk7 CisKIAkvKgogCSAqIFRyeSB0byBwYXJzZSB0aGUgcmVxdWlyZWQgcmFuZ2VzIG9mIFdBTCByZWNv cmRzLCB1bmxlc3Mgd2Ugd2VyZSB0b2xkCiAJICogbm90IHRvIGRvIHNvLgotLSAKMi40Ny4xCgo= --000000000000161d88063bc71fd6 Content-Type: application/x-patch; name="v1-0008-pg_verifybackup-Rename-the-wal-directory-switch-t.patch" Content-Disposition: attachment; filename="v1-0008-pg_verifybackup-Rename-the-wal-directory-switch-t.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me1gg80l7 RnJvbSBjODE4N2Q0OTk2ZGYyNzExMTdhZmI2MjNkYjZjNzJkMzAzM2Q0YjA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjQgSnVsIDIwMjUgMTY6Mzc6NDMgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxIDgvOV0gcGdf dmVyaWZ5YmFja3VwOiBSZW5hbWUgdGhlIHdhbC1kaXJlY3Rvcnkgc3dpdGNoIHRvCiB3YWwtcGF0 aAoKRnV0dXJlIHBhdGNoZXMgdG8gcGdfd2FsZHVtcCB3aWxsIGVuYWJsZSBpdCB0byBkZWNvZGUg V0FMIGRpcmVjdGx5CmZyb20gdGFyIGZpbGVzLiBUaGlzIG1lYW5zIHlvdSdsbCBiZSBhYmxlIHRv IHNwZWNpZnkgYSB0YXIgYXJjaGl2ZQpwYXRoIGluc3RlYWQgb2YgYSB0cmFkaXRpb25hbCBXQUwg ZGlyZWN0b3J5LgoKVG8ga2VlcCB0aGluZ3MgY29uc2lzdGVudCBhbmQgbW9yZSB2ZXJzYXRpbGUs IHdlIHNob3VsZCBhbHNvCmdlbmVyYWxpemUgdGhlIGlucHV0IHN3aXRjaCBmb3IgcGdfdmVyaWZ5 YmFja3VwLiBJdCBzaG91bGQgYWNjZXB0CmVpdGhlciBhIGRpcmVjdG9yeSBvciBhIHRhciBmaWxl IHBhdGggdGhhdCBjb250YWlucyBXQUxzLiBUaGlzIGNoYW5nZQp3aWxsIGFsc28gYWxpZ25pbmcg aXQgd2l0aCB0aGUgZXhpc3RpbmcgbWFuaWZlc3QtcGF0aCBzd2l0Y2ggbmFtaW5nLgotLS0KIGRv Yy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNnbWwgICAgIHwgIDIgKy0KIHNyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5jIHwgMjIgKysrKysrKysrKystLS0tLS0t LS0tLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZGUucG8gICAgICAgICAgfCAgNCArKy0t CiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9lbC5wbyAgICAgICAgICB8ICA0ICsrLS0KIHNy Yy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2VzLnBvICAgICAgICAgIHwgIDQgKystLQogc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcG8vZnIucG8gICAgICAgICAgfCAgNCArKy0tCiBzcmMvYmluL3Bn X3ZlcmlmeWJhY2t1cC9wby9pdC5wbyAgICAgICAgICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3BvL2phLnBvICAgICAgICAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvcG8va2EucG8gICAgICAgICAgfCAgNCArKy0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1 cC9wby9rby5wbyAgICAgICAgICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bv L3J1LnBvICAgICAgICAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vc3Yu cG8gICAgICAgICAgfCAgNCArKy0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby91ay5wbyAg ICAgICAgICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL3poX0NOLnBvICAg ICAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vemhfVFcucG8gICAgICAg fCAgNCArKy0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwN193YWwucGwgICAgICB8ICA0 ICsrLS0KIDE2IGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sCmluZGV4IDYxYzEyOTc1ZTRhLi5l OWI4YmZkNTFiMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sCkBAIC0yNjEs NyArMjYxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICAgICAgPHZhcmxpc3RlbnRy eT4KICAgICAgIDx0ZXJtPjxvcHRpb24+LXcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnBhdGg8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KLSAgICAgIDx0ZXJtPjxvcHRpb24+ LS13YWwtZGlyZWN0b3J5PTxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXRoPC9yZXBs YWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0td2FsLXBhdGg9 PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdGg8L3JlcGxhY2VhYmxlPjwvb3B0aW9u PjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KICAgICAgICA8cGFyYT4KICAgICAgICAgVHJ5IHRv IHBhcnNlIFdBTCBmaWxlcyBzdG9yZWQgaW4gdGhlIHNwZWNpZmllZCBkaXJlY3RvcnksIHJhdGhl ciB0aGFuCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNr dXAuYyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5jCmluZGV4IDMx ZWJjMTU4MWZiLi4xZWU0MDAxOTlkYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNr dXAvcGdfdmVyaWZ5YmFja3VwLmMKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVy aWZ5YmFja3VwLmMKQEAgLTkzLDcgKzkzLDcgQEAgc3RhdGljIHZvaWQgdmVyaWZ5X2ZpbGVfY2hl Y2tzdW0odmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwKIAkJCQkJCQkJIHVpbnQ4ICpidWZmZXIp Owogc3RhdGljIHZvaWQgcGFyc2VfcmVxdWlyZWRfd2FsKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRl eHQsCiAJCQkJCQkJICAgY2hhciAqcGdfd2FsZHVtcF9wYXRoLAotCQkJCQkJCSAgIGNoYXIgKndh bF9kaXJlY3RvcnkpOworCQkJCQkJCSAgIGNoYXIgKndhbF9wYXRoKTsKIHN0YXRpYyBhc3RyZWFt ZXIgKmNyZWF0ZV9hcmNoaXZlX3ZlcmlmaWVyKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsCiAJ CQkJCQkJCQkJICBjaGFyICphcmNoaXZlX25hbWUsCiAJCQkJCQkJCQkJICBPaWQgdGJsc3BjX29p ZCwKQEAgLTEyNiw3ICsxMjYsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJw cm9ncmVzcyIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnUCd9LAogCQl7InF1aWV0Iiwgbm9fYXJndW1l bnQsIE5VTEwsICdxJ30sCiAJCXsic2tpcC1jaGVja3N1bXMiLCBub19hcmd1bWVudCwgTlVMTCwg J3MnfSwKLQkJeyJ3YWwtZGlyZWN0b3J5IiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICd3J30s CisJCXsid2FsLXBhdGgiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ3cnfSwKIAkJe05VTEws IDAsIE5VTEwsIDB9CiAJfTsKIApAQCAtMTM1LDcgKzEzNSw3IEBAIG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogCWNoYXIJICAgKm1hbmlmZXN0X3BhdGggPSBOVUxMOwogCWJvb2wJCW5vX3Bh cnNlX3dhbCA9IGZhbHNlOwogCWJvb2wJCXF1aWV0ID0gZmFsc2U7Ci0JY2hhcgkgICAqd2FsX2Rp cmVjdG9yeSA9IE5VTEw7CisJY2hhcgkgICAqd2FsX3BhdGggPSBOVUxMOwogCWNoYXIJICAgKnBn X3dhbGR1bXBfcGF0aCA9IE5VTEw7CiAJRElSCQkgICAqZGlyOwogCkBAIC0yMjEsOCArMjIxLDgg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJY29udGV4dC5za2lwX2NoZWNrc3Vt cyA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQljYXNlICd3JzoKLQkJCQl3YWxfZGlyZWN0b3J5ID0g cHN0cmR1cChvcHRhcmcpOwotCQkJCWNhbm9uaWNhbGl6ZV9wYXRoKHdhbF9kaXJlY3RvcnkpOwor CQkJCXdhbF9wYXRoID0gcHN0cmR1cChvcHRhcmcpOworCQkJCWNhbm9uaWNhbGl6ZV9wYXRoKHdh bF9wYXRoKTsKIAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogZ2V0b3B0X2xvbmcgYWxy ZWFkeSBlbWl0dGVkIGEgY29tcGxhaW50ICovCkBAIC0zNjUsMTUgKzM2NSwxNSBAQCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKIAkJdmVyaWZ5X2JhY2t1cF9jaGVja3N1bXMoJmNvbnRleHQp OwogCiAJLyogQnkgZGVmYXVsdCwgbG9vayBmb3IgdGhlIFdBTCBpbiB0aGUgYmFja3VwIGRpcmVj dG9yeSwgdG9vLiAqLwotCWlmICh3YWxfZGlyZWN0b3J5ID09IE5VTEwpCi0JCXdhbF9kaXJlY3Rv cnkgPSBwc3ByaW50ZigiJXMvcGdfd2FsIiwgY29udGV4dC5iYWNrdXBfZGlyZWN0b3J5KTsKKwlp ZiAod2FsX3BhdGggPT0gTlVMTCkKKwkJd2FsX3BhdGggPSBwc3ByaW50ZigiJXMvcGdfd2FsIiwg Y29udGV4dC5iYWNrdXBfZGlyZWN0b3J5KTsKIAogCS8qCiAJICogVHJ5IHRvIHBhcnNlIHRoZSBy ZXF1aXJlZCByYW5nZXMgb2YgV0FMIHJlY29yZHMsIHVubGVzcyB3ZSB3ZXJlIHRvbGQKIAkgKiBu b3QgdG8gZG8gc28uCiAJICovCiAJaWYgKCFub19wYXJzZV93YWwpCi0JCXBhcnNlX3JlcXVpcmVk X3dhbCgmY29udGV4dCwgcGdfd2FsZHVtcF9wYXRoLCB3YWxfZGlyZWN0b3J5KTsKKwkJcGFyc2Vf cmVxdWlyZWRfd2FsKCZjb250ZXh0LCBwZ193YWxkdW1wX3BhdGgsIHdhbF9wYXRoKTsKIAogCS8q CiAJICogSWYgZXZlcnl0aGluZyBsb29rcyBPSywgdGVsbCB0aGUgdXNlciB0aGlzLCB1bmxlc3Mg d2Ugd2VyZSBhc2tlZCB0bwpAQCAtMTE5OCw3ICsxMTk4LDcgQEAgdmVyaWZ5X2ZpbGVfY2hlY2tz dW0odmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgbWFuaWZlc3RfZmlsZSAqbSwKICAqLwogc3Rh dGljIHZvaWQKIHBhcnNlX3JlcXVpcmVkX3dhbCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBj aGFyICpwZ193YWxkdW1wX3BhdGgsCi0JCQkJICAgY2hhciAqd2FsX2RpcmVjdG9yeSkKKwkJCQkg ICBjaGFyICp3YWxfcGF0aCkKIHsKIAltYW5pZmVzdF9kYXRhICptYW5pZmVzdCA9IGNvbnRleHQt Pm1hbmlmZXN0OwogCW1hbmlmZXN0X3dhbF9yYW5nZSAqdGhpc193YWxfcmFuZ2UgPSBtYW5pZmVz dC0+Zmlyc3Rfd2FsX3JhbmdlOwpAQCAtMTIwOCw3ICsxMjA4LDcgQEAgcGFyc2VfcmVxdWlyZWRf d2FsKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIGNoYXIgKnBnX3dhbGR1bXBfcGF0aCwKIAkJ Y2hhcgkgICAqcGdfd2FsZHVtcF9jbWQ7CiAKIAkJcGdfd2FsZHVtcF9jbWQgPSBwc3ByaW50Zigi XCIlc1wiIC0tcXVpZXQgLS1wYXRoPVwiJXNcIiAtLXRpbWVsaW5lPSV1IC0tc3RhcnQ9JVgvJTA4 WCAtLWVuZD0lWC8lMDhYXG4iLAotCQkJCQkJCQkgIHBnX3dhbGR1bXBfcGF0aCwgd2FsX2RpcmVj dG9yeSwgdGhpc193YWxfcmFuZ2UtPnRsaSwKKwkJCQkJCQkJICBwZ193YWxkdW1wX3BhdGgsIHdh bF9wYXRoLCB0aGlzX3dhbF9yYW5nZS0+dGxpLAogCQkJCQkJCQkgIExTTl9GT1JNQVRfQVJHUyh0 aGlzX3dhbF9yYW5nZS0+c3RhcnRfbHNuKSwKIAkJCQkJCQkJICBMU05fRk9STUFUX0FSR1ModGhp c193YWxfcmFuZ2UtPmVuZF9sc24pKTsKIAkJZmZsdXNoKE5VTEwpOwpAQCAtMTM3Niw3ICsxMzc2 LDcgQEAgdXNhZ2Uodm9pZCkKIAlwcmludGYoXygiICAtUCwgLS1wcm9ncmVzcyAgICAgICAgICAg ICAgc2hvdyBwcm9ncmVzcyBpbmZvcm1hdGlvblxuIikpOwogCXByaW50ZihfKCIgIC1xLCAtLXF1 aWV0ICAgICAgICAgICAgICAgICBkbyBub3QgcHJpbnQgYW55IG91dHB1dCwgZXhjZXB0IGZvciBl cnJvcnNcbiIpKTsKIAlwcmludGYoXygiICAtcywgLS1za2lwLWNoZWNrc3VtcyAgICAgICAgc2tp cCBjaGVja3N1bSB2ZXJpZmljYXRpb25cbiIpKTsKLQlwcmludGYoXygiICAtdywgLS13YWwtZGly ZWN0b3J5PVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIpKTsKKwlw cmludGYoXygiICAtdywgLS13YWwtcGF0aD1QQVRIICAgICAgICAgdXNlIHNwZWNpZmllZCBwYXRo IGZvciBXQUwgZmlsZXNcbiIpKTsKIAlwcmludGYoXygiICAtViwgLS12ZXJzaW9uICAgICAgICAg ICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24sIHRoZW4gZXhpdFxuIikpOwogCXByaW50 ZihfKCIgIC0/LCAtLWhlbHAgICAgICAgICAgICAgICAgICBzaG93IHRoaXMgaGVscCwgdGhlbiBl eGl0XG4iKSk7CiAJcHJpbnRmKF8oIlxuUmVwb3J0IGJ1Z3MgdG8gPCVzPi5cbiIpLCBQQUNLQUdF X0JVR1JFUE9SVCk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9kZS5w byBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2RlLnBvCmluZGV4IGE5ZTI0OTMxMTAwLi45 YjVjZDU4OThjZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZGUucG8K KysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZGUucG8KQEAgLTc4NSw4ICs3ODUsOCBA QCBtc2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIMOcYmVycHLDvGZ1bmcgZGVy IFByw7xmc3VtbWVuIMO8YmVyc3ByaW5nZQogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzoxMzc5CiAj LCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAgIHVzZSBzcGVj aWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCi1tc2dzdHIgIiAgLXcsIC0td2FsLWRpcmVjdG9y eT1QRkFEICAgIGFuZ2VnZWJlbmVuIFBmYWQgZsO8ciBXQUwtRGF0ZWllbiB2ZXJ3ZW5kZW5cbiIK K21zZ2lkICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBX QUwgZmlsZXNcbiIKK21zZ3N0ciAiICAtdywgLS13YWwtcGF0aD1QRkFEICAgIGFuZ2VnZWJlbmVu IFBmYWQgZsO8ciBXQUwtRGF0ZWllbiB2ZXJ3ZW5kZW5cbiIKIAogIzogcGdfdmVyaWZ5YmFja3Vw LmM6MTM4MAogIywgYy1mb3JtYXQKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BvL2VsLnBvIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZWwucG8KaW5kZXggM2UzZjIw YzY3YzUuLjgxNDQyZjUxYzE3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9w by9lbC5wbworKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9lbC5wbwpAQCAtNDk0LDgg KzQ5NCw4IEBAIG1zZ3N0ciAiICAtcywgLS1za2lwLWNoZWNrc3VtcyAgICAgICAgz4DOsc+BzqzO us6xzrzPiM61IM+EzrfOvSDOtc+AzrHOu86uzrjOtc+FCiAKICM6IHBnX3ZlcmlmeWJhY2t1cC5j Ojk5MgogIywgYy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICB1 c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgotbXNnc3RyICIgIC13LCAtLXdhbC1k aXJlY3Rvcnk9UEFUSCAgICDPh8+BzrfPg865zrzOv8+Azr/Or863z4POtSDPhM63zr0gzrrOsc64 zr/Pgc65z4POvM6tzr3OtyDOtM65zrHOtM+Bzr/OvM6uIM6zzrnOsSDOsc+Bz4fOtc6vzrEgV0FM XG4iCittc2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBm b3IgV0FMIGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICDPh8+BzrfP g865zrzOv8+Azr/Or863z4POtSDPhM63zr0gzrrOsc64zr/Pgc65z4POvM6tzr3OtyDOtM65zrHO tM+Bzr/OvM6uIM6zzrnOsSDOsc+Bz4fOtc6vzrEgV0FMXG4iCiAKICM6IHBnX3ZlcmlmeWJhY2t1 cC5jOjk5MwogIywgYy1mb3JtYXQKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BvL2VzLnBvIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZXMucG8KaW5kZXggMGNiOTU4 ZjM0NDguLjdmNzI5ZmEzNWJhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9w by9lcy5wbworKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9lcy5wbwpAQCAtNDk1LDgg KzQ5NSw4IEBAIG1zZ3N0ciAiICAtcywgLS1za2lwLWNoZWNrc3VtcyAgICAgICAgb21pdGlyIGxh IHZlcmlmaWNhY2nDs24gZGUgbGEgc3VtYSBkZSBjb21wCiAKICM6IHBnX3ZlcmlmeWJhY2t1cC5j Ojk5MgogIywgYy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICB1 c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgotbXNnc3RyICIgIC13LCAtLXdhbC1k aXJlY3Rvcnk9UEFUSCAgICB1dGlsaXphciBsYSBydXRhIGVzcGVjaWZpY2FkYSBwYXJhIGxvcyBh cmNoaXZvcyBXQUxcbiIKK21zZ2lkICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgdXNlIHNwZWNp ZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKK21zZ3N0ciAiICAtdywgLS13YWwtcGF0aD1QQVRI ICAgIHV0aWxpemFyIGxhIHJ1dGEgZXNwZWNpZmljYWRhIHBhcmEgbG9zIGFyY2hpdm9zIFdBTFxu IgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5OTMKICMsIGMtZm9ybWF0CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9mci5wbyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BvL2ZyLnBvCmluZGV4IGRhOGM3MmY2NDI3Li4wOTkzNzk2NmZhNyAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vZnIucG8KKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNr dXAvcG8vZnIucG8KQEAgLTQ5OCw4ICs0OTgsOCBAQCBtc2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVj a3N1bXMgICAgICAgIGlnbm9yZSBsYSB2w6lyaWZpY2F0aW9uIGRlcyBzb21tZXMgZGUgY29udAog CiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5OTIKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAtdywgLS13 YWwtZGlyZWN0b3J5PVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIK LW1zZ3N0ciAiICAtdywgLS13YWwtZGlyZWN0b3J5PUNIRU1JTiAgdXRpbGlzZSBsZSBjaGVtaW4g c3DDqWNpZmnDqSBwb3VyIGxlcyBmaWNoaWVycyBXQUxcbiIKK21zZ2lkICIgIC13LCAtLXdhbC1w YXRoPVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKK21zZ3N0ciAi ICAtdywgLS13YWwtcGF0aD1DSEVNSU4gIHV0aWxpc2UgbGUgY2hlbWluIHNww6ljaWZpw6kgcG91 ciBsZXMgZmljaGllcnMgV0FMXG4iCiAKICM6IHBnX3ZlcmlmeWJhY2t1cC5jOjk5MwogIywgYy1m b3JtYXQKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2l0LnBvIGIvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vaXQucG8KaW5kZXggMzE3YjBiNzFlN2YuLjRkYTY4ZDAw NzRlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9pdC5wbworKysgYi9z cmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9pdC5wbwpAQCAtNDcyLDggKzQ3Miw4IEBAIG1zZ3N0 ciAiICAtcywgLS1za2lwLWNoZWNrc3VtcyAgICAgICAgIHNhbHRhIGxhIHZlcmlmaWNhIGRlbCBj aGVja3N1bVxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5MTEKICMsIGMtZm9ybWF0Ci1tc2dp ZCAiICAtdywgLS13YWwtZGlyZWN0b3J5PVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBX QUwgZmlsZXNcbiIKLW1zZ3N0ciAiICAtdywgLS13YWwtZGlyZWN0b3J5PVBBVEggICAgIHVzYSBp bCBwZXJjb3JzbyBzcGVjaWZpY2F0byBwZXIgaSBmaWxlIFdBTFxuIgorbXNnaWQgIiAgLXcsIC0t d2FsLXBhdGg9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgorbXNn c3RyICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgIHVzYSBpbCBwZXJjb3JzbyBzcGVjaWZpY2F0 byBwZXIgaSBmaWxlIFdBTFxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5MTIKICMsIGMtZm9y bWF0CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9qYS5wbyBiL3NyYy9i aW4vcGdfdmVyaWZ5YmFja3VwL3BvL2phLnBvCmluZGV4IGM5MTBmYjIzNmNjLi5hOTQ4OTU5YjU0 ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vamEucG8KKysrIGIvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vamEucG8KQEAgLTY3Miw4ICs2NzIsOCBAQCBtc2dzdHIg IiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIOODgeOCp+ODg+OCr+OCteODoOaknOiovOOC kuOCueOCreODg+ODl1xuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzoxMzc5CiAjLCBjLWZvcm1h dAotbXNnaWQgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0 aCBmb3IgV0FMIGZpbGVzXG4iCi1tc2dzdHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAg IFdBTOODleOCoeOCpOODq+OBq+aMh+WumuOBl+OBn+ODkeOCueOCkuS9v+eUqOOBmeOCi1xuIgor bXNnaWQgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdB TCBmaWxlc1xuIgorbXNnc3RyICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgV0FM44OV44Kh44Kk 44Or44Gr5oyH5a6a44GX44Gf44OR44K544KS5L2/55So44GZ44KLXG4iCiAKICM6IHBnX3Zlcmlm eWJhY2t1cC5jOjEzODAKICMsIGMtZm9ybWF0CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Zlcmlm eWJhY2t1cC9wby9rYS5wbyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2thLnBvCmluZGV4 IDk4Mjc1MTk4NGM3Li5lZjI3OTkzMTZhOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvcG8va2EucG8KKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8va2EucG8KQEAg LTc4NCw4ICs3ODQsOCBAQCBtc2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIOGD oeGDkOGDmeGDneGDnOGDouGDoOGDneGDmuGDnSDhg6/hg5Dhg5sKIAogIzogcGdfdmVyaWZ5YmFj a3VwLmM6MTM3OQogIywgYy1mb3JtYXQKLW1zZ2lkICIgIC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFU SCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIgotbXNnc3RyICIgIC13LCAt LXdhbC1kaXJlY3Rvcnk94YOR4YOY4YOa4YOY4YOZ4YOYICAgIFdBTCDhg6Thg5Dhg5jhg5rhg5Th g5Hhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOb4YOY4YOX4YOY4YOX4YOU4YOR4YOj4YOa4YOYIOGDkeGD mOGDmuGDmOGDmeGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5BcbiIKK21zZ2lk ICIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmls ZXNcbiIKK21zZ3N0ciAiICAtdywgLS13YWwtcGF0aD3hg5Hhg5jhg5rhg5jhg5nhg5ggICAgV0FM IOGDpOGDkOGDmOGDmuGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSDhg5vhg5jhg5fhg5jhg5fhg5Th g5Hhg6Phg5rhg5gg4YOR4YOY4YOa4YOY4YOZ4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGD lOGDkeGDkFxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzoxMzgwCiAjLCBjLWZvcm1hdApkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8va28ucG8gYi9zcmMvYmluL3BnX3Zl cmlmeWJhY2t1cC9wby9rby5wbwppbmRleCBhY2RjM2RhNWUwMi4uZWFmOTFlZjFlOTggMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL2tvLnBvCisrKyBiL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3BvL2tvLnBvCkBAIC01MDEsOCArNTAxLDggQEAgbXNnc3RyICIgIC1zLCAt LXNraXAtY2hlY2tzdW1zICAgICAgICDssrTtgazshKwg6rKA7IKsIOqxtOuEiOucgFxuIgogCiAj OiBwZ192ZXJpZnliYWNrdXAuYzo5OTIKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAtdywgLS13YWwt ZGlyZWN0b3J5PVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKLW1z Z3N0ciAiICAtdywgLS13YWwtZGlyZWN0b3J5PeqyveuhnCAgICBXQUwg7YyM7J287J20IOyeiOuK lCDqsr3roZwg7KeA7KCVXG4iCittc2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBz cGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg9 6rK966GcICAgIFdBTCDtjIzsnbzsnbQg7J6I64qUIOqyveuhnCDsp4DsoJVcbiIKIAogIzogcGdf dmVyaWZ5YmFja3VwLmM6OTkzCiAjLCBjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192 ZXJpZnliYWNrdXAvcG8vcnUucG8gYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby9ydS5wbwpp bmRleCA2NDAwNWZlZWRmZC4uN2ZiMGU1YWIxZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3BvL3J1LnBvCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BvL3J1LnBv CkBAIC01MDcsOSArNTA3LDkgQEAgbXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tzdW1zICAgICAg ICDQv9GA0L7Qv9GD0YHRgtC40YLRjCDQv9GA0L7QstC10YDQutGDINC60L4KIAogIzogcGdfdmVy aWZ5YmFja3VwLmM6OTkyCiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2FsLWRpcmVjdG9y eT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCittc2dpZCAiICAt dywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4i CiBtc2dzdHIgIiIKLSIgIC13LCAtLXdhbC1kaXJlY3Rvcnk90J/Qo9Ci0KwgICAg0LjRgdC/0L7Q u9GM0LfQvtCy0LDRgtGMINC30LDQtNCw0L3QvdGL0Lkg0L/Rg9GC0Ywg0Log0YTQsNC50LvQsNC8 IFdBTFxuIgorIiAgLXcsIC0td2FsLXBhdGg90J/Qo9Ci0KwgICAg0LjRgdC/0L7Qu9GM0LfQvtCy 0LDRgtGMINC30LDQtNCw0L3QvdGL0Lkg0L/Rg9GC0Ywg0Log0YTQsNC50LvQsNC8IFdBTFxuIgog CiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5OTMKICMsIGMtZm9ybWF0CmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC9wby9zdi5wbyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bv L3N2LnBvCmluZGV4IDE3MjQwZmVlYjVjLi45NzEyNTgzOGU4YyAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcG8vc3YucG8KKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAv cG8vc3YucG8KQEAgLTQ5Miw4ICs0OTIsOCBAQCBtc2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVja3N1 bXMgICAgICAgIGhvcHBhIMO2dmVyIHZlcmlmaWVyaW5nIGF2IGtvbnRyb2xsc3VtbW9yXAogCiAj OiBwZ192ZXJpZnliYWNrdXAuYzo5OTIKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAtdywgLS13YWwt ZGlyZWN0b3J5PVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmlsZXNcbiIKLW1z Z3N0ciAiICAtdywgLS13YWwtZGlyZWN0b3J5PVPDlktWw4RHICBhbnbDpG5kIGRlbm5hIHPDtmt2 w6RnIHRpbGwgV0FMLWZpbGVyXG4iCittc2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVz ZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBh dGg9U8OWS1bDhEcgIGFudsOkbmQgZGVubmEgc8O2a3bDpGcgdGlsbCBXQUwtZmlsZXJcbiIKIAog IzogcGdfdmVyaWZ5YmFja3VwLmM6OTkzCiAjLCBjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcG8vdWsucG8gYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby91 ay5wbwppbmRleCAwMzRiOTc2NDIzMi4uNjNmODA0MWFiMzggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3BvL3VrLnBvCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bv L3VrLnBvCkBAIC00ODQsOCArNDg0LDggQEAgbXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tzdW1z INC90LUg0L/QtdGA0LXQstGW0YDRj9GC0Lgg0LrQvtC90YLRgNC+0LvRjNC90ZYg0YEKIAogIzog cGdfdmVyaWZ5YmFja3VwLmM6OTkyCiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2FsLWRp cmVjdG9yeT1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCi1tc2dz dHIgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIINCy0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw 0YLQuCDQstC60LDQt9Cw0L3QuNC5INGI0LvRj9GFINC00LvRjyDRhNCw0LnQu9GW0LIgV0FMXG4i Cittc2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3Ig V0FMIGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCDQstC40LrQvtGA0LjR gdGC0L7QstGD0LLQsNGC0Lgg0LLQutCw0LfQsNC90LjQuSDRiNC70Y/RhSDQtNC70Y8g0YTQsNC5 0LvRltCyIFdBTFxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5OTMKICMsIGMtZm9ybWF0CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby96aF9DTi5wbyBiL3NyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3BvL3poX0NOLnBvCmluZGV4IGI3ZDk3Yzg5NzZkLi5mYjZmY2FlOGI4 MiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vemhfQ04ucG8KKysrIGIv c3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcG8vemhfQ04ucG8KQEAgLTQ2NSw4ICs0NjUsOCBAQCBt c2dzdHIgIiAgLXMsIC0tc2tpcC1jaGVja3N1bXMgICAgICAgIOi3s+i/h+agoemqjOWSjOmqjOiv gVxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5MTkKICMsIGMtZm9ybWF0Ci1tc2dpZCAiICAt dywgLS13YWwtZGlyZWN0b3J5PVBBVEggICAgdXNlIHNwZWNpZmllZCBwYXRoIGZvciBXQUwgZmls ZXNcbiIKLW1zZ3N0ciAiICAtdywgLS13YWwtZGlyZWN0b3J5PVBBVEggICAg5a+5V0FM5paH5Lu2 5L2/55So5oyH5a6a6Lev5b6EXG4iCittc2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVz ZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBh dGg9UEFUSCAgICDlr7lXQUzmlofku7bkvb/nlKjmjIflrprot6/lvoRcbiIKIAogIzogcGdfdmVy aWZ5YmFja3VwLmM6OTIwCiAjLCBjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJp ZnliYWNrdXAvcG8vemhfVFcucG8gYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wby96aF9UVy5w bwppbmRleCBjMWI3MTBiMGEzNi4uNTY4Zjk3MmIwYmIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3BvL3poX1RXLnBvCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Bv L3poX1RXLnBvCkBAIC01NTUsOCArNTU1LDggQEAgbXNnc3RyICIgIC1zLCAtLXNraXAtY2hlY2tz dW1zICAgICAgICDot7PpgY7mqqLmn6XnorzpqZforYlcbiIKIAogIzogcGdfdmVyaWZ5YmFja3Vw LmM6OTkyCiAjLCBjLWZvcm1hdAotbXNnaWQgIiAgLXcsIC0td2FsLWRpcmVjdG9yeT1QQVRIICAg IHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FMIGZpbGVzXG4iCi1tc2dzdHIgIiAgLXcsIC0td2Fs LWRpcmVjdG9yeT1QQVRIICAgIOeUqOaMh+WumueahOi3r+W+keWtmOaUviBXQUwg5qqUXG4iCitt c2dpZCAiICAtdywgLS13YWwtcGF0aD1QQVRIICAgIHVzZSBzcGVjaWZpZWQgcGF0aCBmb3IgV0FM IGZpbGVzXG4iCittc2dzdHIgIiAgLXcsIC0td2FsLXBhdGg9UEFUSCAgICDnlKjmjIflrprnmoTo t6/lvpHlrZjmlL4gV0FMIOaqlFxuIgogCiAjOiBwZ192ZXJpZnliYWNrdXAuYzo5OTMKICMsIGMt Zm9ybWF0CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwN193YWwucGwg Yi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwN193YWwucGwKaW5kZXggYmFiYzRmMGE4NmIu LmIwN2Y4MDcxOWIwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwN193 YWwucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDdfd2FsLnBsCkBAIC00Miwx MCArNDIsMTAgQEAgY29tbWFuZF9vayhbICdwZ192ZXJpZnliYWNrdXAnLCAnLS1uby1wYXJzZS13 YWwnLCAkYmFja3VwX3BhdGggXSwKIGNvbW1hbmRfb2soCiAJWwogCQkncGdfdmVyaWZ5YmFja3Vw JywKLQkJJy0td2FsLWRpcmVjdG9yeScgPT4gJHJlbG9jYXRlZF9wZ193YWwsCisJCSctLXdhbC1w YXRoJyA9PiAkcmVsb2NhdGVkX3BnX3dhbCwKIAkJJGJhY2t1cF9wYXRoCiAJXSwKLQknLS13YWwt ZGlyZWN0b3J5IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgV0FMIGRpcmVjdG9yeScpOworCSctLXdh bC1wYXRoIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgV0FMIGRpcmVjdG9yeScpOwogCiAjIE1vdmUg ZGlyZWN0b3J5IGJhY2sgdG8gb3JpZ2luYWwgbG9jYXRpb24uCiByZW5hbWUoJHJlbG9jYXRlZF9w Z193YWwsICRvcmlnaW5hbF9wZ193YWwpIHx8IGRpZSAicmVuYW1lIHBnX3dhbCBiYWNrOiAkISI7 Ci0tIAoyLjQ3LjEKCg== --000000000000161d88063bc71fd6 Content-Type: application/x-patch; name="v1-0009-pg_verifybackup-enabled-WAL-parsing-for-tar-forma.patch" Content-Disposition: attachment; filename="v1-0009-pg_verifybackup-enabled-WAL-parsing-for-tar-forma.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me1ggbsa8 RnJvbSA5MjNhNzY3YjA3NmUwNGM3NWY2NDcyZDI4MDBhMjJjYTk5YTMxZDUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMTcgSnVsIDIwMjUgMTY6Mzk6MzYgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxIDkvOV0gcGdf dmVyaWZ5YmFja3VwOiBlbmFibGVkIFdBTCBwYXJzaW5nIGZvciB0YXItZm9ybWF0CiBiYWNrdXAK Ck5vdyB0aGF0IHBnX3dhbGR1bXAgc3VwcG9ydHMgZGVjb2RpbmcgZnJvbSB0YXIgYXJjaGl2ZXMs IHdlIHNob3VsZApsZXZlcmFnZSB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gcmVtb3ZlIHRoZSBwcmV2 aW91cyByZXN0cmljdGlvbiBvbiBXQUwKcGFyc2luZyBmb3IgdGFyLWJhY2tlZCBmb3JtYXRzLgot LS0KIGRvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNnbWwgICAgICAgICB8ICA1ICst CiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyAgICAgfCA2NiArKysr KysrKysrKysrLS0tLS0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwMl9hbGdvcml0aG0u cGwgICAgfCAgNCAtLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5w bCAgIHwgIDQgKy0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDA4X3VudGFyLnBsICAgICAg ICB8ICAzICstCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwg fCAgMyArLQogNiBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbAppbmRleCBlOWI4YmZkNTFiMS4u MTZiNTBiNWE0ZGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3Vw LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbApAQCAtMzYs MTAgKzM2LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICA8bGl0ZXJhbD5iYWNrdXBf bWFuaWZlc3Q8L2xpdGVyYWw+IGdlbmVyYXRlZCBieSB0aGUgc2VydmVyIGF0IHRoZSB0aW1lCiAg ICBvZiB0aGUgYmFja3VwLiBUaGUgYmFja3VwIG1heSBiZSBzdG9yZWQgZWl0aGVyIGluIHRoZSAi cGxhaW4iIG9yIHRoZSAidGFyIgogICAgZm9ybWF0OyB0aGlzIGluY2x1ZGVzIHRhci1mb3JtYXQg YmFja3VwcyBjb21wcmVzc2VkIHdpdGggYW55IGFsZ29yaXRobQotICAgc3VwcG9ydGVkIGJ5IDxh cHBsaWNhdGlvbj5wZ19iYXNlYmFja3VwPC9hcHBsaWNhdGlvbj4uIEhvd2V2ZXIsIGF0IHByZXNl bnQsCi0gICA8bGl0ZXJhbD5XQUw8L2xpdGVyYWw+IHZlcmlmaWNhdGlvbiBpcyBzdXBwb3J0ZWQg b25seSBmb3IgcGxhaW4tZm9ybWF0Ci0gICBiYWNrdXBzLiBUaGVyZWZvcmUsIGlmIHRoZSBiYWNr dXAgaXMgc3RvcmVkIGluIHRhci1mb3JtYXQsIHRoZQotICAgPGxpdGVyYWw+LW4sIC0tbm8tcGFy c2Utd2FsPC9saXRlcmFsPiBvcHRpb24gc2hvdWxkIGJlIHVzZWQuCisgICBzdXBwb3J0ZWQgYnkg PGFwcGxpY2F0aW9uPnBnX2Jhc2ViYWNrdXA8L2FwcGxpY2F0aW9uPi4KICAgPC9wYXJhPgogCiAg IDxwYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFj a3VwLmMgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYwppbmRleCAx ZWU0MDAxOTlkYS4uNGJmZTZmZGZmMTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFj a3VwL3BnX3ZlcmlmeWJhY2t1cC5jCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3Zl cmlmeWJhY2t1cC5jCkBAIC03NCw3ICs3NCw5IEBAIHBnX25vcmV0dXJuIHN0YXRpYyB2b2lkIHJl cG9ydF9tYW5pZmVzdF9lcnJvcihKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsCiAJ CQkJCQkJCQkJCSAgY29uc3QgY2hhciAqZm10LC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmludGYo MiwgMyk7CiAKLXN0YXRpYyB2b2lkIHZlcmlmeV90YXJfYmFja3VwKHZlcmlmaWVyX2NvbnRleHQg KmNvbnRleHQsIERJUiAqZGlyKTsKK3N0YXRpYyB2b2lkIHZlcmlmeV90YXJfYmFja3VwKHZlcmlm aWVyX2NvbnRleHQgKmNvbnRleHQsIERJUiAqZGlyLAorCQkJCQkJCSAgY2hhciAqKmJhc2VfYXJj aGl2ZV9wYXRoLAorCQkJCQkJCSAgY2hhciAqKndhbF9hcmNoaXZlX3BhdGgpOwogc3RhdGljIHZv aWQgdmVyaWZ5X3BsYWluX2JhY2t1cF9kaXJlY3RvcnkodmVyaWZpZXJfY29udGV4dCAqY29udGV4 dCwKIAkJCQkJCQkJCQkgIGNoYXIgKnJlbHBhdGgsIGNoYXIgKmZ1bGxwYXRoLAogCQkJCQkJCQkJ CSAgRElSICpkaXIpOwpAQCAtODMsNyArODUsOSBAQCBzdGF0aWMgdm9pZCB2ZXJpZnlfcGxhaW5f YmFja3VwX2ZpbGUodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hhciAqcmVscGF0aCwKIHN0 YXRpYyB2b2lkIHZlcmlmeV9jb250cm9sX2ZpbGUoY29uc3QgY2hhciAqY29udHJvbHBhdGgsCiAJ CQkJCQkJCXVpbnQ2NCBtYW5pZmVzdF9zeXN0ZW1faWRlbnRpZmllcik7CiBzdGF0aWMgdm9pZCBw cmVjaGVja190YXJfYmFja3VwX2ZpbGUodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hhciAq cmVscGF0aCwKLQkJCQkJCQkJCSBjaGFyICpmdWxscGF0aCwgU2ltcGxlUHRyTGlzdCAqdGFyZmls ZXMpOworCQkJCQkJCQkJIGNoYXIgKmZ1bGxwYXRoLCBTaW1wbGVQdHJMaXN0ICp0YXJmaWxlcywK KwkJCQkJCQkJCSBjaGFyICoqYmFzZV9hcmNoaXZlX3BhdGgsCisJCQkJCQkJCQkgY2hhciAqKndh bF9hcmNoaXZlX3BhdGgpOwogc3RhdGljIHZvaWQgdmVyaWZ5X3Rhcl9maWxlKHZlcmlmaWVyX2Nv bnRleHQgKmNvbnRleHQsIGNoYXIgKnJlbHBhdGgsCiAJCQkJCQkJY2hhciAqZnVsbHBhdGgsIGFz dHJlYW1lciAqc3RyZWFtZXIpOwogc3RhdGljIHZvaWQgcmVwb3J0X2V4dHJhX2JhY2t1cF9maWxl cyh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0KTsKQEAgLTEzNiw2ICsxNDAsOCBAQCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKIAlib29sCQlub19wYXJzZV93YWwgPSBmYWxzZTsKIAlib29s CQlxdWlldCA9IGZhbHNlOwogCWNoYXIJICAgKndhbF9wYXRoID0gTlVMTDsKKwljaGFyCSAgICpi YXNlX2FyY2hpdmVfcGF0aCA9IE5VTEw7CisJY2hhcgkgICAqd2FsX2FyY2hpdmVfcGF0aCA9IE5V TEw7CiAJY2hhcgkgICAqcGdfd2FsZHVtcF9wYXRoID0gTlVMTDsKIAlESVIJCSAgICpkaXI7CiAK QEAgLTMyNywxNyArMzMzLDYgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXBmcmVl KHBhdGgpOwogCX0KIAotCS8qCi0JICogWFhYOiBJbiB0aGUgZnV0dXJlLCB3ZSBzaG91bGQgY29u c2lkZXIgZW5oYW5jaW5nIHBnX3dhbGR1bXAgdG8gcmVhZCBXQUwKLQkgKiBmaWxlcyBmcm9tIGFu IGFyY2hpdmUuCi0JICovCi0JaWYgKCFub19wYXJzZV93YWwgJiYgY29udGV4dC5mb3JtYXQgPT0g J3QnKQotCXsKLQkJcGdfbG9nX2Vycm9yKCJwZ193YWxkdW1wIGNhbm5vdCByZWFkIHRhciBmaWxl cyIpOwotCQlwZ19sb2dfZXJyb3JfaGludCgiWW91IG11c3QgdXNlIC1uLy0tbm8tcGFyc2Utd2Fs IHdoZW4gdmVyaWZ5aW5nIGEgdGFyLWZvcm1hdCBiYWNrdXAuIik7Ci0JCWV4aXQoMSk7Ci0JfQot CiAJLyoKIAkgKiBQZXJmb3JtIHRoZSBhcHByb3ByaWF0ZSB0eXBlIG9mIHZlcmlmaWNhdGlvbiBh cHByb3ByaWF0ZSBiYXNlZCBvbiB0aGUKIAkgKiBiYWNrdXAgZm9ybWF0LiBUaGlzIHdpbGwgY2xv c2UgJ2RpcicuCkBAIC0zNDYsNyArMzQxLDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAJCXZlcmlmeV9wbGFpbl9iYWNrdXBfZGlyZWN0b3J5KCZjb250ZXh0LCBOVUxMLCBjb250ZXh0 LmJhY2t1cF9kaXJlY3RvcnksCiAJCQkJCQkJCQkgIGRpcik7CiAJZWxzZQotCQl2ZXJpZnlfdGFy X2JhY2t1cCgmY29udGV4dCwgZGlyKTsKKwkJdmVyaWZ5X3Rhcl9iYWNrdXAoJmNvbnRleHQsIGRp ciwgJmJhc2VfYXJjaGl2ZV9wYXRoLCAmd2FsX2FyY2hpdmVfcGF0aCk7CiAKIAkvKgogCSAqIFRo ZSAibWF0Y2hlZCIgZmxhZyBzaG91bGQgbm93IGJlIHNldCBvbiBldmVyeSBlbnRyeSBpbiB0aGUg aGFzaCB0YWJsZS4KQEAgLTM2NCw5ICszNTksMjggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpCiAJaWYgKGNvbnRleHQuZm9ybWF0ID09ICdwJyAmJiAhY29udGV4dC5za2lwX2NoZWNrc3Vt cykKIAkJdmVyaWZ5X2JhY2t1cF9jaGVja3N1bXMoJmNvbnRleHQpOwogCi0JLyogQnkgZGVmYXVs dCwgbG9vayBmb3IgdGhlIFdBTCBpbiB0aGUgYmFja3VwIGRpcmVjdG9yeSwgdG9vLiAqLworCS8q CisJICogQnkgZGVmYXVsdCwgV0FMIGZpbGVzIGFyZSBleHBlY3RlZCB0byBiZSBmb3VuZCBpbiB0 aGUgYmFja3VwIGRpcmVjdG9yeQorCSAqIGZvciBwbGFpbi1mb3JtYXQgYmFja3Vwcy4gSW4gdGhl IGNhc2Ugb2YgdGFyLWZvcm1hdCBiYWNrdXBzLCBpZiBhCisJICogc2VwYXJhdGUgV0FMIGFyY2hp dmUgaXMgbm90IGZvdW5kLCB0aGUgV0FMIGZpbGVzIGFyZSBtb3N0IGxpa2VseQorCSAqIGluY2x1 ZGVkIHdpdGhpbiB0aGUgbWFpbiBkYXRhIGRpcmVjdG9yeSBhcmNoaXZlLgorCSAqLwogCWlmICh3 YWxfcGF0aCA9PSBOVUxMKQotCQl3YWxfcGF0aCA9IHBzcHJpbnRmKCIlcy9wZ193YWwiLCBjb250 ZXh0LmJhY2t1cF9kaXJlY3RvcnkpOworCXsKKwkJaWYgKGNvbnRleHQuZm9ybWF0ID09ICdwJykK KwkJCXdhbF9wYXRoID0gcHNwcmludGYoIiVzL3BnX3dhbCIsIGNvbnRleHQuYmFja3VwX2RpcmVj dG9yeSk7CisJCWVsc2UgaWYgKHdhbF9hcmNoaXZlX3BhdGgpCisJCQl3YWxfcGF0aCA9IHdhbF9h cmNoaXZlX3BhdGg7CisJCWVsc2UgaWYgKGJhc2VfYXJjaGl2ZV9wYXRoKQorCQkJd2FsX3BhdGgg PSBiYXNlX2FyY2hpdmVfcGF0aDsKKwkJZWxzZQorCQl7CisJCQlwZ19sb2dfZXJyb3IoIndhbCBh cmNoaXZlIG5vdCBmb3VuZCIpOworCQkJcGdfbG9nX2Vycm9yX2hpbnQoIlNwZWNpZnkgdGhlIGNv cnJlY3QgcGF0aCB1c2luZyB0aGUgb3B0aW9uIC13Ly0td2FsLXBhdGguIgorCQkJCQkJCSAgIk9y IHlvdSBtdXN0IHVzZSAtbi8tLW5vLXBhcnNlLXdhbCB3aGVuIHZlcmlmeWluZyBhIHRhci1mb3Jt YXQgYmFja3VwLiIpOworCQkJZXhpdCgxKTsKKwkJfQorCX0KIAogCS8qCiAJICogVHJ5IHRvIHBh cnNlIHRoZSByZXF1aXJlZCByYW5nZXMgb2YgV0FMIHJlY29yZHMsIHVubGVzcyB3ZSB3ZXJlIHRv bGQKQEAgLTc4Nyw3ICs4MDEsOCBAQCB2ZXJpZnlfY29udHJvbF9maWxlKGNvbnN0IGNoYXIgKmNv bnRyb2xwYXRoLCB1aW50NjQgbWFuaWZlc3Rfc3lzdGVtX2lkZW50aWZpZXIpCiAgKiBjbG9zZSB3 aGVuIHdlJ3JlIGRvbmUgd2l0aCBpdC4KICAqLwogc3RhdGljIHZvaWQKLXZlcmlmeV90YXJfYmFj a3VwKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIERJUiAqZGlyKQordmVyaWZ5X3Rhcl9iYWNr dXAodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgRElSICpkaXIsIGNoYXIgKipiYXNlX2FyY2hp dmVfcGF0aCwKKwkJCQkgIGNoYXIgKip3YWxfYXJjaGl2ZV9wYXRoKQogewogCXN0cnVjdCBkaXJl bnQgKmRpcmVudDsKIAlTaW1wbGVQdHJMaXN0IHRhcmZpbGVzID0ge05VTEwsIE5VTEx9OwpAQCAt ODE2LDcgKzgzMSw4IEBAIHZlcmlmeV90YXJfYmFja3VwKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRl eHQsIERJUiAqZGlyKQogCQkJY2hhcgkgICAqZnVsbHBhdGg7CiAKIAkJCWZ1bGxwYXRoID0gcHNw cmludGYoIiVzLyVzIiwgY29udGV4dC0+YmFja3VwX2RpcmVjdG9yeSwgZmlsZW5hbWUpOwotCQkJ cHJlY2hlY2tfdGFyX2JhY2t1cF9maWxlKGNvbnRleHQsIGZpbGVuYW1lLCBmdWxscGF0aCwgJnRh cmZpbGVzKTsKKwkJCXByZWNoZWNrX3Rhcl9iYWNrdXBfZmlsZShjb250ZXh0LCBmaWxlbmFtZSwg ZnVsbHBhdGgsICZ0YXJmaWxlcywKKwkJCQkJCQkJCSBiYXNlX2FyY2hpdmVfcGF0aCwgd2FsX2Fy Y2hpdmVfcGF0aCk7CiAJCQlwZnJlZShmdWxscGF0aCk7CiAJCX0KIAl9CkBAIC04NzUsMTEgKzg5 MSwxMyBAQCB2ZXJpZnlfdGFyX2JhY2t1cCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBESVIg KmRpcikKICAqCiAgKiBUaGUgYXJndW1lbnRzIHRvIHRoaXMgZnVuY3Rpb24gYXJlIG1vc3RseSB0 aGUgc2FtZSBhcyB0aGUKICAqIHZlcmlmeV9wbGFpbl9iYWNrdXBfZmlsZS4gVGhlIGFkZGl0aW9u YWwgYXJndW1lbnQgb3V0cHV0cyBhIGxpc3Qgb2YgdmFsaWQKLSAqIHRhciBmaWxlcy4KKyAqIHRh ciBmaWxlcywgYWxvbmcgd2l0aCB0aGUgZnVsbCBwYXRocyB0byB0aGUgbWFpbiBhcmNoaXZlIGFu ZCB0aGUgV0FMCisgKiBkaXJlY3RvcnkgYXJjaGl2ZS4KICAqLwogc3RhdGljIHZvaWQKIHByZWNo ZWNrX3Rhcl9iYWNrdXBfZmlsZSh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjaGFyICpyZWxw YXRoLAotCQkJCQkJIGNoYXIgKmZ1bGxwYXRoLCBTaW1wbGVQdHJMaXN0ICp0YXJmaWxlcykKKwkJ CQkJCSBjaGFyICpmdWxscGF0aCwgU2ltcGxlUHRyTGlzdCAqdGFyZmlsZXMsCisJCQkJCQkgY2hh ciAqKmJhc2VfYXJjaGl2ZV9wYXRoLCBjaGFyICoqd2FsX2FyY2hpdmVfcGF0aCkKIHsKIAlzdHJ1 Y3Qgc3RhdCBzYjsKIAlPaWQJCQl0YmxzcGNfb2lkID0gSW52YWxpZE9pZDsKQEAgLTkxOCw5ICs5 MzYsMTcgQEAgcHJlY2hlY2tfdGFyX2JhY2t1cF9maWxlKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRl eHQsIGNoYXIgKnJlbHBhdGgsCiAJICogZXh0ZW5zaW9uIHN1Y2ggYXMgLmd6LCAubHo0LCBvciAu enN0LgogCSAqLwogCWlmIChzdHJuY21wKCJiYXNlIiwgcmVscGF0aCwgNCkgPT0gMCkKKwl7CiAJ CXN1ZmZpeCA9IHJlbHBhdGggKyA0OworCisJCSpiYXNlX2FyY2hpdmVfcGF0aCA9IHBzdHJkdXAo ZnVsbHBhdGgpOworCX0KIAllbHNlIGlmIChzdHJuY21wKCJwZ193YWwiLCByZWxwYXRoLCA2KSA9 PSAwKQorCXsKIAkJc3VmZml4ID0gcmVscGF0aCArIDY7CisKKwkJKndhbF9hcmNoaXZlX3BhdGgg PSBwc3RyZHVwKGZ1bGxwYXRoKTsKKwl9CiAJZWxzZQogCXsKIAkJLyogRXhwZWN0ZWQgYSA8dGFi bGVzcGFjZW9pZD4udGFyIGZpbGUgaGVyZS4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3QvMDAyX2FsZ29yaXRobS5wbCBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Qv MDAyX2FsZ29yaXRobS5wbAppbmRleCBhZTE2YzExYmM0ZC4uNGYyODRhOWU4MjggMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDAyX2FsZ29yaXRobS5wbAorKysgYi9zcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwMl9hbGdvcml0aG0ucGwKQEAgLTMwLDEwICszMCw2IEBA IHN1YiB0ZXN0X2NoZWNrc3VtcwogCXsKIAkJIyBBZGQgc3dpdGNoIHRvIGdldCBhIHRhci1mb3Jt YXQgYmFja3VwCiAJCXB1c2ggQGJhY2t1cCwgKCctLWZvcm1hdCcgPT4gJ3RhcicpOwotCi0JCSMg QWRkIHN3aXRjaCB0byBza2lwIFdBTCB2ZXJpZmljYXRpb24sIHdoaWNoIGlzIG5vdCB5ZXQgc3Vw cG9ydGVkIGZvcgotCQkjIHRhci1mb3JtYXQgYmFja3VwcwotCQlwdXNoIEB2ZXJpZnksICgnLS1u by1wYXJzZS13YWwnKTsKIAl9CiAKIAkjIEEgYmFja3VwIHdpdGggYSBib2d1cyBhbGdvcml0aG0g c2hvdWxkIGZhaWwuCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwM19j b3JydXB0aW9uLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5w bAppbmRleCAxZGQ2MGY3MDljZi4uZjFlYmRiYjQ2YjQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3QvMDAzX2NvcnJ1cHRpb24ucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvdC8wMDNfY29ycnVwdGlvbi5wbApAQCAtMTkzLDEwICsxOTMsOCBAQCBmb3IgbXkgJHNj ZW5hcmlvIChAc2NlbmFyaW8pCiAJCQljb21tYW5kX29rKFsgJHRhciwgJy1jZicgPT4gIiR0YXJf YmFja3VwX3BhdGgvYmFzZS50YXIiLCAnLicgXSk7CiAJCQljaGRpcigkY3dkKSB8fCBkaWUgImNo ZGlyOiAkISI7CiAKLQkJCSMgTm93IGNoZWNrIHRoYXQgdGhlIGJhY2t1cCBubyBsb25nZXIgdmVy aWZpZXMuIFdlIG11c3QgdXNlIC1uCi0JCQkjIGhlcmUsIGJlY2F1c2UgcGdfd2FsZHVtcCBjYW4n dCB5ZXQgcmVhZCBXQUwgZnJvbSBhIHRhcmZpbGUuCiAJCQljb21tYW5kX2ZhaWxzX2xpa2UoCi0J CQkJWyAncGdfdmVyaWZ5YmFja3VwJywgJy0tbm8tcGFyc2Utd2FsJywgJHRhcl9iYWNrdXBfcGF0 aCBdLAorCQkJCVsgJ3BnX3ZlcmlmeWJhY2t1cCcsICR0YXJfYmFja3VwX3BhdGggXSwKIAkJCQkk c2NlbmFyaW8tPnsnZmFpbHNfbGlrZSd9LAogCQkJCSJjb3JydXB0IGJhY2t1cCBmYWlscyB2ZXJp ZmljYXRpb246ICRuYW1lIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3QvMDA4X3VudGFyLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDhfdW50YXIucGwK aW5kZXggYmMzZDZiMzUyYWQuLjBjZmUxZjk1MzJjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Zl cmlmeWJhY2t1cC90LzAwOF91bnRhci5wbAorKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90 LzAwOF91bnRhci5wbApAQCAtMTIzLDggKzEyMyw3IEBAIGZvciBteSAkdGMgKEB0ZXN0X2NvbmZp Z3VyYXRpb24pCiAJCSMgVmVyaWZ5IHRhciBiYWNrdXAuCiAJCSRwcmltYXJ5LT5jb21tYW5kX29r KAogCQkJWwotCQkJCSdwZ192ZXJpZnliYWNrdXAnLCAnLS1uby1wYXJzZS13YWwnLAotCQkJCSct LWV4aXQtb24tZXJyb3InLCAkYmFja3VwX3BhdGgsCisJCQkJJ3BnX3ZlcmlmeWJhY2t1cCcsICct LWV4aXQtb24tZXJyb3InLCAkYmFja3VwX3BhdGgsCiAJCQldLAogCQkJInZlcmlmeSBiYWNrdXAs IGNvbXByZXNzaW9uICRtZXRob2QiKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvdC8wMTBfY2xpZW50X3VudGFyLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8w MTBfY2xpZW50X3VudGFyLnBsCmluZGV4IGI2MmZhZWI1YWNmLi43NjI2OWE3MzY3MyAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMTBfY2xpZW50X3VudGFyLnBsCisrKyBi L3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDEwX2NsaWVudF91bnRhci5wbApAQCAtMTM3LDgg KzEzNyw3IEBAIGZvciBteSAkdGMgKEB0ZXN0X2NvbmZpZ3VyYXRpb24pCiAJCSMgVmVyaWZ5IHRh ciBiYWNrdXAuCiAJCSRwcmltYXJ5LT5jb21tYW5kX29rKAogCQkJWwotCQkJCSdwZ192ZXJpZnli YWNrdXAnLCAnLS1uby1wYXJzZS13YWwnLAotCQkJCSctLWV4aXQtb24tZXJyb3InLCAkYmFja3Vw X3BhdGgsCisJCQkJJ3BnX3ZlcmlmeWJhY2t1cCcsICctLWV4aXQtb24tZXJyb3InLCAkYmFja3Vw X3BhdGgsCiAJCQldLAogCQkJInZlcmlmeSBiYWNrdXAsIGNvbXByZXNzaW9uICRtZXRob2QiKTsK IAotLSAKMi40Ny4xCgo= --000000000000161d88063bc71fd6--