From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C560CC83F18 for ; Mon, 28 Aug 2023 15:19:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230526AbjH1PSo (ORCPT ); Mon, 28 Aug 2023 11:18:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43388 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231792AbjH1PST (ORCPT ); Mon, 28 Aug 2023 11:18:19 -0400 Received: from mail-il1-x132.google.com (mail-il1-x132.google.com [IPv6:2607:f8b0:4864:20::132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 00E27EA for ; Mon, 28 Aug 2023 08:18:11 -0700 (PDT) Received: by mail-il1-x132.google.com with SMTP id e9e14a558f8ab-34cb4b85bacso1927225ab.0 for ; Mon, 28 Aug 2023 08:18:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; t=1693235891; x=1693840691; h=cc:to:subject:from:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=z/bc+pRSaezRJep7824XfWtB4nuKUKOdebl9HF3noEc=; b=VLUHUjMkPClEDaKyV8gE7NMwdCz0MV1wJ6zfvSg9930MD3HWqLagRse0n3BCqImCC5 ydsyWI6VtY+yrm3WPH3KYZBV5lAYv3OdAoYFgTxw56pMhPgbrrS3GOE2jwh5jiaegNzI fAQS8yWlDnTKkizxeainX+QbreMfuLxeDKt5g= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693235891; x=1693840691; h=cc:to:subject:from:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=z/bc+pRSaezRJep7824XfWtB4nuKUKOdebl9HF3noEc=; b=AGh6TpytGz/YdWPGRbVJbpmIm1nqUt2+2/d4xgByU7qlLsvw1Zemw83RM+0l7Ve9tg 3O8NqLfmmz92BPavyKBe7km7eOx3xSkjex0J1CfqPH8sKXsHZjfAugESB8pvDuwnyQ1J QPPhERI6km1KKz4bz3EeHoUP8WQ88JcQ4XAB/syNJjESiPHaYx4sbXoFl7OrUWWEpLb4 OIKLeno4SsNw5dQ7fNMACJ1JxI0AX1ihSpx13l+zgEyI6jkkVQuHaaSJkhEkCK1xWpbU jM92+a8qw5qUiByfSz+GirxhAvPMQtiJLWPIPaqe/3ojOgnUwt/mQ9bxF+PT4GE/ZcSf gCyg== X-Gm-Message-State: AOJu0YwTsR/lKiX07tIo6cf/zmrUXW+iD2tTwunAYFb023UeoMUD8Ib5 vP1yd0KXVLNtu2ngSRz6wU6VgrOd5WaouXc92Pc= X-Google-Smtp-Source: AGHT+IGFy+yhCNoUhxCpe7DFgPATsyqNHx+Fs4VucV+Bbud4NAMFKeI63qG2Bw+39Zxsk4jtcwSXbQ== X-Received: by 2002:a05:6602:2e13:b0:792:9b50:3c3d with SMTP id o19-20020a0566022e1300b007929b503c3dmr7836830iow.1.1693235891290; Mon, 28 Aug 2023 08:18:11 -0700 (PDT) Received: from [192.168.1.128] ([38.15.45.1]) by smtp.gmail.com with ESMTPSA id r7-20020a6b4407000000b00785cfdd968bsm2594328ioa.5.2023.08.28.08.18.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 28 Aug 2023 08:18:10 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------qn6J8CJ9nACdp695Bf9d4qLh" Message-ID: <60f2cdf4-8d85-58ee-eb6c-ba15bb97d783@linuxfoundation.org> Date: Mon, 28 Aug 2023 09:18:10 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Content-Language: en-US From: Shuah Khan Subject: [GIT PULL] Kselftest update for Linux 6.6-rc1 To: Linus Torvalds Cc: shuah@kernel.org, skhan@linuxfoundation.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. --------------qn6J8CJ9nACdp695Bf9d4qLh Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Linus, Please pull the following Kselftest update for Linux 6.6-rc1. This Kselftest update for Linux 6.6-rc1 consists of a mix of fixes, enhancements, and new tests. Bulk of the changes enhance and fix rseq and resctrl tests. In addition, user_events, dmabuf-heaps and perf_events are added to default kselftest build and test coverage. A futex test fix, enhance prctl test coverage, and minor fixes are included in this update. diff is attached. thanks, -- Shuah ---------------------------------------------------------------- The following changes since commit 6eaae198076080886b9e7d57f4ae06fa782f90ef: Linux 6.5-rc3 (2023-07-23 15:24:10 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest tags/linux-kselftest-next-6.6-rc1 for you to fetch changes up to 9b1db732866bee060b9bca9493e5ebf5e8874c48: selftests: cachestat: use proper syscall number macro (2023-08-16 11:12:44 -0600) ---------------------------------------------------------------- linux-kselftest-next-6.6-rc1 This Kselftest update for Linux 6.6-rc1 consists of a mix of fixes, enhancements, and new tests. Bulk of the changes enhance and fix rseq and resctrl tests. In addition, user_events, dmabuf-heaps and perf_events are added to default kselftest build and test coverage. A futex test fix, enhance prctl test coverage, and minor fixes are included in this update. ---------------------------------------------------------------- Andre Przywara (2): selftests: cachestat: properly link in librt selftests: cachestat: use proper syscall number macro Hui Min Mina Chou (1): selftests/filesystems: Add six consecutive 'x' characters to mktemp Ilpo Järvinen (19): selftests/resctrl: Add resctrl.h into build deps selftests/resctrl: Don't leak buffer in fill_cache() selftests/resctrl: Unmount resctrl FS if child fails to run benchmark selftests/resctrl: Close perf value read fd on errors selftests/resctrl: Unmount resctrl FS before starting the first test selftests/resctrl: Move resctrl FS mount/umount to higher level selftests/resctrl: Refactor remount_resctrl(bool mum_resctrlfs) to mount_resctrl() selftests/resctrl: Remove mum_resctrlfs from struct resctrl_val_param selftests/resctrl: Convert span to size_t selftests/resctrl: Express span internally in bytes selftests/resctrl: Remove duplicated preparation for span arg selftests/resctrl: Remove "malloc_and_init_memory" param from run_fill_buf() selftests/resctrl: Remove unnecessary startptr global from fill_buf selftests/resctrl: Improve parameter consistency in fill_buf selftests/resctrl: Don't pass test name to fill_buf selftests/resctrl: Don't use variable argument list for ->setup() selftests/resctrl: Move CAT/CMT test global vars to function they are used in selftests/resctrl: Pass the real number of tests to show_cache_info() selftests/resctrl: Remove test type checks from cat_val() Mark Brown (2): selftests/user_events: Reenable build selftests: Hook more tests into the build infrastructure Mathieu Desnoyers (4): selftests/rseq: Fix CID_ID typo in Makefile selftests/rseq: Implement rseq_unqual_scalar_typeof selftests/rseq: Fix arm64 buggy load-acquire/store-release macros selftests/rseq: Use rseq_unqual_scalar_typeof in macros Nysal Jan K.A (1): selftests/futex: Order calls to futex_lock_pi Osama Muhammad (1): selftests: prctl: Add new prctl test for PR_SET_NAME Shuah Khan (2): selftests:prctl: Fix make clean override warning selftests:prctl: add set-process-name to .gitignore tools/testing/selftests/Makefile | 4 + tools/testing/selftests/cachestat/Makefile | 2 +- tools/testing/selftests/cachestat/test_cachestat.c | 7 +- .../selftests/filesystems/fat/run_fat_tests.sh | 2 +- .../futex/functional/futex_wait_timeout.c | 7 ++ tools/testing/selftests/prctl/.gitignore | 1 + tools/testing/selftests/prctl/Makefile | 4 +- tools/testing/selftests/prctl/set-process-name.c | 62 +++++++++++++++ tools/testing/selftests/resctrl/Makefile | 2 +- tools/testing/selftests/resctrl/cache.c | 66 ++++++++-------- tools/testing/selftests/resctrl/cat_test.c | 28 ++----- tools/testing/selftests/resctrl/cmt_test.c | 29 ++------ tools/testing/selftests/resctrl/fill_buf.c | 87 ++++++++-------------- tools/testing/selftests/resctrl/mba_test.c | 9 +-- tools/testing/selftests/resctrl/mbm_test.c | 17 ++--- tools/testing/selftests/resctrl/resctrl.h | 17 ++--- tools/testing/selftests/resctrl/resctrl_tests.c | 83 ++++++++++++++------- tools/testing/selftests/resctrl/resctrl_val.c | 7 +- tools/testing/selftests/resctrl/resctrlfs.c | 64 ++++++++-------- tools/testing/selftests/rseq/Makefile | 2 +- tools/testing/selftests/rseq/compiler.h | 26 +++++++ tools/testing/selftests/rseq/rseq-arm.h | 4 +- tools/testing/selftests/rseq/rseq-arm64.h | 58 ++++++++------- tools/testing/selftests/rseq/rseq-mips.h | 4 +- tools/testing/selftests/rseq/rseq-ppc.h | 4 +- tools/testing/selftests/rseq/rseq-riscv.h | 6 +- tools/testing/selftests/rseq/rseq-s390.h | 4 +- tools/testing/selftests/rseq/rseq-x86.h | 4 +- tools/testing/selftests/user_events/Makefile | 8 -- 29 files changed, 328 insertions(+), 290 deletions(-) create mode 100644 tools/testing/selftests/prctl/set-process-name.c ---------------------------------------------------------------- --------------qn6J8CJ9nACdp695Bf9d4qLh Content-Type: text/x-patch; charset=UTF-8; name="linux-kselftest-next-6.6-rc1.diff" Content-Disposition: attachment; filename="linux-kselftest-next-6.6-rc1.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL01ha2VmaWxlIGIvdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMvTWFrZWZpbGUKaW5kZXggNjY2YjU2ZjIyYTQxLi5hODU3M2Ez YTU0MzAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL01ha2VmaWxlCisr KyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL01ha2VmaWxlCkBAIC0xMiw2ICsxMiw3IEBA IFRBUkdFVFMgKz0gY29yZQogVEFSR0VUUyArPSBjcHVmcmVxCiBUQVJHRVRTICs9IGNwdS1o b3RwbHVnCiBUQVJHRVRTICs9IGRhbW9uCitUQVJHRVRTICs9IGRtYWJ1Zi1oZWFwcwogVEFS R0VUUyArPSBkcml2ZXJzL2RtYS1idWYKIFRBUkdFVFMgKz0gZHJpdmVycy9zMzkweC91dmRl dmljZQogVEFSR0VUUyArPSBkcml2ZXJzL25ldC9ib25kaW5nCkBAIC01Niw2ICs1Nyw3IEBA IFRBUkdFVFMgKz0gbmV0L21wdGNwCiBUQVJHRVRTICs9IG5ldC9vcGVudnN3aXRjaAogVEFS R0VUUyArPSBuZXRmaWx0ZXIKIFRBUkdFVFMgKz0gbnNmcworVEFSR0VUUyArPSBwZXJmX2V2 ZW50cwogVEFSR0VUUyArPSBwaWRmZAogVEFSR0VUUyArPSBwaWRfbmFtZXNwYWNlCiBUQVJH RVRTICs9IHBvd2VycGMKQEAgLTg4LDcgKzkwLDkgQEAgZW5kaWYKIFRBUkdFVFMgKz0gdG1w ZnMKIFRBUkdFVFMgKz0gdHBtMgogVEFSR0VUUyArPSB0dHkKK1RBUkdFVFMgKz0gdWV2ZW50 cwogVEFSR0VUUyArPSB1c2VyCitUQVJHRVRTICs9IHVzZXJfZXZlbnRzCiBUQVJHRVRTICs9 IHZEU08KIFRBUkdFVFMgKz0gbW0KIFRBUkdFVFMgKz0geDg2CmRpZmYgLS1naXQgYS90b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9jYWNoZXN0YXQvTWFrZWZpbGUgYi90b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9jYWNoZXN0YXQvTWFrZWZpbGUKaW5kZXggZmNhNzNhYWE3ZDE0Li43Nzhi NTRlYmIwMzYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2NhY2hlc3Rh dC9NYWtlZmlsZQorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9jYWNoZXN0YXQvTWFr ZWZpbGUKQEAgLTMsNiArMyw2IEBAIFRFU1RfR0VOX1BST0dTIDo9IHRlc3RfY2FjaGVzdGF0 CiAKIENGTEFHUyArPSAkKEtIRFJfSU5DTFVERVMpCiBDRkxBR1MgKz0gLVdhbGwKLUNGTEFH UyArPSAtbHJ0CitMRExJQlMgKz0gLWxydAogCiBpbmNsdWRlIC4uL2xpYi5tawpkaWZmIC0t Z2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvY2FjaGVzdGF0L3Rlc3RfY2FjaGVzdGF0 LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9jYWNoZXN0YXQvdGVzdF9jYWNoZXN0YXQu YwppbmRleCA1NGQwOWI4MjBlZDQuLmE1YTRhYzhkY2I3NiAxMDA2NDQKLS0tIGEvdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMvY2FjaGVzdGF0L3Rlc3RfY2FjaGVzdGF0LmMKKysrIGIvdG9v bHMvdGVzdGluZy9zZWxmdGVzdHMvY2FjaGVzdGF0L3Rlc3RfY2FjaGVzdGF0LmMKQEAgLTE5 LDcgKzE5LDYgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBkZXZfZmlsZXNbXSA9IHsK IAkiL2Rldi96ZXJvIiwgIi9kZXYvbnVsbCIsICIvZGV2L3VyYW5kb20iLAogCSIvcHJvYy92 ZXJzaW9uIiwgIi9wcm9jIgogfTsKLXN0YXRpYyBjb25zdCBpbnQgY2FjaGVzdGF0X25yID0g NDUxOwogCiB2b2lkIHByaW50X2NhY2hlc3RhdChzdHJ1Y3QgY2FjaGVzdGF0ICpjcykKIHsK QEAgLTEyNiw3ICsxMjUsNyBAQCBib29sIHRlc3RfY2FjaGVzdGF0KGNvbnN0IGNoYXIgKmZp bGVuYW1lLCBib29sIHdyaXRlX3JhbmRvbSwgYm9vbCBjcmVhdGUsCiAJCX0KIAl9CiAKLQlz eXNjYWxsX3JldCA9IHN5c2NhbGwoY2FjaGVzdGF0X25yLCBmZCwgJmNzX3JhbmdlLCAmY3Ms IDApOworCXN5c2NhbGxfcmV0ID0gc3lzY2FsbChfX05SX2NhY2hlc3RhdCwgZmQsICZjc19y YW5nZSwgJmNzLCAwKTsKIAogCWtzZnRfcHJpbnRfbXNnKCJDYWNoZXN0YXQgY2FsbCByZXR1 cm5lZCAlbGRcbiIsIHN5c2NhbGxfcmV0KTsKIApAQCAtMTUyLDcgKzE1MSw3IEBAIGJvb2wg dGVzdF9jYWNoZXN0YXQoY29uc3QgY2hhciAqZmlsZW5hbWUsIGJvb2wgd3JpdGVfcmFuZG9t LCBib29sIGNyZWF0ZSwKIAkJCWtzZnRfcHJpbnRfbXNnKCJmc3luYyBmYWlscy5cbiIpOwog CQkJcmV0ID0gZmFsc2U7CiAJCX0gZWxzZSB7Ci0JCQlzeXNjYWxsX3JldCA9IHN5c2NhbGwo Y2FjaGVzdGF0X25yLCBmZCwgJmNzX3JhbmdlLCAmY3MsIDApOworCQkJc3lzY2FsbF9yZXQg PSBzeXNjYWxsKF9fTlJfY2FjaGVzdGF0LCBmZCwgJmNzX3JhbmdlLCAmY3MsIDApOwogCiAJ CQlrc2Z0X3ByaW50X21zZygiQ2FjaGVzdGF0IGNhbGwgKGFmdGVyIGZzeW5jKSByZXR1cm5l ZCAlbGRcbiIsCiAJCQkJc3lzY2FsbF9yZXQpOwpAQCAtMjEzLDcgKzIxMiw3IEBAIGJvb2wg dGVzdF9jYWNoZXN0YXRfc2htZW0odm9pZCkKIAkJZ290byBjbG9zZV9mZDsKIAl9CiAKLQlz eXNjYWxsX3JldCA9IHN5c2NhbGwoY2FjaGVzdGF0X25yLCBmZCwgJmNzX3JhbmdlLCAmY3Ms IDApOworCXN5c2NhbGxfcmV0ID0gc3lzY2FsbChfX05SX2NhY2hlc3RhdCwgZmQsICZjc19y YW5nZSwgJmNzLCAwKTsKIAogCWlmIChzeXNjYWxsX3JldCkgewogCQlrc2Z0X3ByaW50X21z ZygiQ2FjaGVzdGF0IHJldHVybmVkIG5vbi16ZXJvLlxuIik7CmRpZmYgLS1naXQgYS90b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9maWxlc3lzdGVtcy9mYXQvcnVuX2ZhdF90ZXN0cy5zaCBi L3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2ZpbGVzeXN0ZW1zL2ZhdC9ydW5fZmF0X3Rlc3Rz LnNoCmluZGV4IDdmMzVkYzNkMTVkZi4uZDYxMjY0ZDQ3OTVkIDEwMDc1NQotLS0gYS90b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9maWxlc3lzdGVtcy9mYXQvcnVuX2ZhdF90ZXN0cy5zaAor KysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9maWxlc3lzdGVtcy9mYXQvcnVuX2ZhdF90 ZXN0cy5zaApAQCAtMTIsNyArMTIsNyBAQCBzZXQgLXUKIHNldCAtbyBwaXBlZmFpbAogCiBC QVNFX0RJUj0iJChkaXJuYW1lICQwKSIKLVRNUF9ESVI9IiQobWt0ZW1wIC1kIC90bXAvZmF0 X3Rlc3RzX3RtcC5YWFhYKSIKK1RNUF9ESVI9IiQobWt0ZW1wIC1kIC90bXAvZmF0X3Rlc3Rz X3RtcC5YWFhYWFgpIgogSU1HX1BBVEg9IiR7VE1QX0RJUn0vZmF0LmltZyIKIE1OVF9QQVRI PSIke1RNUF9ESVJ9L21udCIKIApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVz dHMvZnV0ZXgvZnVuY3Rpb25hbC9mdXRleF93YWl0X3RpbWVvdXQuYyBiL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL2Z1dGV4L2Z1bmN0aW9uYWwvZnV0ZXhfd2FpdF90aW1lb3V0LmMKaW5k ZXggMzY1MWNlMTdiZWViLi5kMTgzZjg3ODM2MGIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL2Z1dGV4L2Z1bmN0aW9uYWwvZnV0ZXhfd2FpdF90aW1lb3V0LmMKKysr IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZnV0ZXgvZnVuY3Rpb25hbC9mdXRleF93YWl0 X3RpbWVvdXQuYwpAQCAtMjQsNiArMjQsNyBAQAogCiBzdGF0aWMgbG9uZyB0aW1lb3V0X25z ID0gMTAwMDAwOwkvKiAxMDB1cyBkZWZhdWx0IHRpbWVvdXQgKi8KIHN0YXRpYyBmdXRleF90 IGZ1dGV4X3BpOworc3RhdGljIHB0aHJlYWRfYmFycmllcl90IGJhcnJpZXI7CiAKIHZvaWQg dXNhZ2UoY2hhciAqcHJvZykKIHsKQEAgLTQ4LDYgKzQ5LDggQEAgdm9pZCAqZ2V0X3BpX2xv Y2sodm9pZCAqYXJnKQogCWlmIChyZXQgIT0gMCkKIAkJZXJyb3IoImZ1dGV4X2xvY2tfcGkg ZmFpbGVkXG4iLCByZXQpOwogCisJcHRocmVhZF9iYXJyaWVyX3dhaXQoJmJhcnJpZXIpOwor CiAJLyogQmxvY2tzIGZvcmV2ZXIgKi8KIAlyZXQgPSBmdXRleF93YWl0KCZsb2NrLCAwLCBO VUxMLCAwKTsKIAllcnJvcigiZnV0ZXhfd2FpdCBmYWlsZWRcbiIsIHJldCk7CkBAIC0xMzAs NiArMTMzLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkgICAgICAg YmFzZW5hbWUoYXJndlswXSkpOwogCWtzZnRfcHJpbnRfbXNnKCJcdEFyZ3VtZW50czogdGlt ZW91dD0lbGRuc1xuIiwgdGltZW91dF9ucyk7CiAKKwlwdGhyZWFkX2JhcnJpZXJfaW5pdCgm YmFycmllciwgTlVMTCwgMik7CiAJcHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgZ2V0 X3BpX2xvY2ssIE5VTEwpOwogCiAJLyogaW5pdGlhbGl6ZSByZWxhdGl2ZSB0aW1lb3V0ICov CkBAIC0xNjMsNiArMTY3LDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IAlyZXMgPSBmdXRleF93YWl0X3JlcXVldWVfcGkoJmYxLCBmMSwgJmZ1dGV4X3BpLCAmdG8s IDApOwogCXRlc3RfdGltZW91dChyZXMsICZyZXQsICJmdXRleF93YWl0X3JlcXVldWVfcGkg bW9ub3RvbmljIiwgRVRJTUVET1VUKTsKIAorCS8qIFdhaXQgdW50aWwgdGhlIG90aGVyIHRo cmVhZCBjYWxscyBmdXRleF9sb2NrX3BpKCkgKi8KKwlwdGhyZWFkX2JhcnJpZXJfd2FpdCgm YmFycmllcik7CisJcHRocmVhZF9iYXJyaWVyX2Rlc3Ryb3koJmJhcnJpZXIpOwogCS8qCiAJ ICogRlVURVhfTE9DS19QSSB3aXRoIENMT0NLX1JFQUxUSU1FCiAJICogRHVlIHRvIGhpc3Rv cmljYWwgcmVhc29ucywgRlVURVhfTE9DS19QSSBzdXBwb3J0cyBvbmx5IHJlYWx0aW1lCmRp ZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wcmN0bC8uZ2l0aWdub3JlIGIv dG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcHJjdGwvLmdpdGlnbm9yZQppbmRleCA3YTY1N2Iy NWY2ODYuLjA1ZDVlMzE2NjFkZiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVz dHMvcHJjdGwvLmdpdGlnbm9yZQorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9wcmN0 bC8uZ2l0aWdub3JlCkBAIC0zLDMgKzMsNCBAQCBkaXNhYmxlLXRzYy1jdHh0LXN3LXN0cmVz cy10ZXN0CiBkaXNhYmxlLXRzYy1vbi1vZmYtc3RyZXNzLXRlc3QKIGRpc2FibGUtdHNjLXRl c3QKIHNldC1hbm9uLXZtYS1uYW1lLXRlc3QKK3NldC1wcm9jZXNzLW5hbWUKZGlmZiAtLWdp dCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3ByY3RsL01ha2VmaWxlIGIvdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMvcHJjdGwvTWFrZWZpbGUKaW5kZXggYzA1OGI4MWVlYjQxLi4wMWRj OTBmYmI1MDkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3ByY3RsL01h a2VmaWxlCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3ByY3RsL01ha2VmaWxlCkBA IC01LDEyICs1LDEwIEBAIEFSQ0ggPz0gJChzaGVsbCBlY2hvICQodW5hbWVfTSkgfCBzZWQg LWUgcy9pLjg2L3g4Ni8gLWUgcy94ODZfNjQveDg2LykKIAogaWZlcSAoJChBUkNIKSx4ODYp CiBURVNUX1BST0dTIDo9IGRpc2FibGUtdHNjLWN0eHQtc3ctc3RyZXNzLXRlc3QgZGlzYWJs ZS10c2Mtb24tb2ZmLXN0cmVzcy10ZXN0IFwKLQkJZGlzYWJsZS10c2MtdGVzdCBzZXQtYW5v bi12bWEtbmFtZS10ZXN0CisJCWRpc2FibGUtdHNjLXRlc3Qgc2V0LWFub24tdm1hLW5hbWUt dGVzdCBzZXQtcHJvY2Vzcy1uYW1lCiBhbGw6ICQoVEVTVF9QUk9HUykKIAogaW5jbHVkZSAu Li9saWIubWsKIAotY2xlYW46Ci0Jcm0gLWZyICQoVEVTVF9QUk9HUykKIGVuZGlmCiBlbmRp ZgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcHJjdGwvc2V0LXByb2Nl c3MtbmFtZS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcHJjdGwvc2V0LXByb2Nlc3Mt bmFtZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2JjNWUw ZTA5ZWI5Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcHJj dGwvc2V0LXByb2Nlc3MtbmFtZS5jCkBAIC0wLDAgKzEsNjIgQEAKKy8vIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogVGhpcyB0ZXN0IGNvdmVycyB0aGUgUFJf U0VUX05BTUUgZnVuY3Rpb25hbGl0eSBvZiBwcmN0bCBjYWxscworICovCisKKyNpbmNsdWRl IDxlcnJuby5oPgorI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgorI2luY2x1ZGUgPHN0cmluZy5o PgorCisjaW5jbHVkZSAiLi4va3NlbGZ0ZXN0X2hhcm5lc3MuaCIKKworI2RlZmluZSBDSEFO R0VfTkFNRSAiY2hhbmdlbmFtZSIKKyNkZWZpbmUgRU1QVFlfTkFNRSAiIgorI2RlZmluZSBU QVNLX0NPTU1fTEVOIDE2CisKK2ludCBzZXRfbmFtZShjaGFyICpuYW1lKQoreworCWludCBy ZXM7CisKKwlyZXMgPSBwcmN0bChQUl9TRVRfTkFNRSwgbmFtZSwgTlVMTCwgTlVMTCwgTlVM TCk7CisKKwlpZiAocmVzIDwgMCkKKwkJcmV0dXJuIC1lcnJubzsKKwlyZXR1cm4gcmVzOwor fQorCitpbnQgY2hlY2tfaXNfbmFtZV9jb3JyZWN0KGNoYXIgKmNoZWNrX25hbWUpCit7CisJ Y2hhciBuYW1lW1RBU0tfQ09NTV9MRU5dOworCWludCByZXM7CisKKwlyZXMgPSBwcmN0bChQ Ul9HRVRfTkFNRSwgbmFtZSwgTlVMTCwgTlVMTCwgTlVMTCk7CisKKwlpZiAocmVzIDwgMCkK KwkJcmV0dXJuIC1lcnJubzsKKworCXJldHVybiAhc3RyY21wKG5hbWUsIGNoZWNrX25hbWUp OworfQorCitpbnQgY2hlY2tfbnVsbF9wb2ludGVyKGNoYXIgKmNoZWNrX25hbWUpCit7CisJ Y2hhciAqbmFtZSA9IE5VTEw7CisJaW50IHJlczsKKworCXJlcyA9IHByY3RsKFBSX0dFVF9O QU1FLCBuYW1lLCBOVUxMLCBOVUxMLCBOVUxMKTsKKworCXJldHVybiByZXM7Cit9CisKK1RF U1QocmVuYW1lX3Byb2Nlc3MpIHsKKworCUVYUEVDVF9HRShzZXRfbmFtZShDSEFOR0VfTkFN RSksIDApOworCUVYUEVDVF9UUlVFKGNoZWNrX2lzX25hbWVfY29ycmVjdChDSEFOR0VfTkFN RSkpOworCisJRVhQRUNUX0dFKHNldF9uYW1lKEVNUFRZX05BTUUpLCAwKTsKKwlFWFBFQ1Rf VFJVRShjaGVja19pc19uYW1lX2NvcnJlY3QoRU1QVFlfTkFNRSkpOworCisJRVhQRUNUX0dF KHNldF9uYW1lKENIQU5HRV9OQU1FKSwgMCk7CisJRVhQRUNUX0xUKGNoZWNrX251bGxfcG9p bnRlcihDSEFOR0VfTkFNRSksIDApOworfQorCitURVNUX0hBUk5FU1NfTUFJTgpkaWZmIC0t Z2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcmVzY3RybC9NYWtlZmlsZSBiL3Rvb2xz L3Rlc3Rpbmcvc2VsZnRlc3RzL3Jlc2N0cmwvTWFrZWZpbGUKaW5kZXggNzNkNTMyNTdkZjQy Li41MDczZGJjOTYxMjUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jl c2N0cmwvTWFrZWZpbGUKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcmVzY3RybC9N YWtlZmlsZQpAQCAtNyw0ICs3LDQgQEAgVEVTVF9HRU5fUFJPR1MgOj0gcmVzY3RybF90ZXN0 cwogCiBpbmNsdWRlIC4uL2xpYi5tawogCi0kKE9VVFBVVCkvcmVzY3RybF90ZXN0czogJCh3 aWxkY2FyZCAqLmMpCiskKE9VVFBVVCkvcmVzY3RybF90ZXN0czogJCh3aWxkY2FyZCAqLltj aF0pCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNjdHJsL2NhY2hl LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNjdHJsL2NhY2hlLmMKaW5kZXggOGE0 ZmU4NjkzYmU2Li5kM2NiYjgyOWZmNmEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2Vs ZnRlc3RzL3Jlc2N0cmwvY2FjaGUuYworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9y ZXNjdHJsL2NhY2hlLmMKQEAgLTg3LDIxICs4NywxOSBAQCBzdGF0aWMgaW50IHJlc2V0X2Vu YWJsZV9sbGNfcGVyZihwaWRfdCBwaWQsIGludCBjcHVfbm8pCiBzdGF0aWMgaW50IGdldF9s bGNfcGVyZih1bnNpZ25lZCBsb25nICpsbGNfcGVyZl9taXNzKQogewogCV9fdTY0IHRvdGFs X21pc3NlczsKKwlpbnQgcmV0OwogCiAJLyogU3RvcCBjb3VudGVycyBhZnRlciBvbmUgc3Bh biB0byBnZXQgbWlzcyByYXRlICovCiAKIAlpb2N0bChmZF9sbSwgUEVSRl9FVkVOVF9JT0Nf RElTQUJMRSwgMCk7CiAKLQlpZiAocmVhZChmZF9sbSwgJnJmX2NxbSwgc2l6ZW9mKHN0cnVj dCByZWFkX2Zvcm1hdCkpID09IC0xKSB7CisJcmV0ID0gcmVhZChmZF9sbSwgJnJmX2NxbSwg c2l6ZW9mKHN0cnVjdCByZWFkX2Zvcm1hdCkpOworCWlmIChyZXQgPT0gLTEpIHsKIAkJcGVy cm9yKCJDb3VsZCBub3QgZ2V0IGxsYyBtaXNzZXMgdGhyb3VnaCBwZXJmIik7Ci0KIAkJcmV0 dXJuIC0xOwogCX0KIAogCXRvdGFsX21pc3NlcyA9IHJmX2NxbS52YWx1ZXNbMF0udmFsdWU7 Ci0KLQljbG9zZShmZF9sbSk7Ci0KIAkqbGxjX3BlcmZfbWlzcyA9IHRvdGFsX21pc3NlczsK IAogCXJldHVybiAwOwpAQCAtMjEyLDcgKzIxMCw3IEBAIGludCBtZWFzdXJlX2NhY2hlX3Zh bHMoc3RydWN0IHJlc2N0cmxfdmFsX3BhcmFtICpwYXJhbSwgaW50IGJtX3BpZCkKICAqLwog aW50IGNhdF92YWwoc3RydWN0IHJlc2N0cmxfdmFsX3BhcmFtICpwYXJhbSkKIHsKLQlpbnQg bWFsbG9jX2FuZF9pbml0X21lbW9yeSA9IDEsIG1lbWZsdXNoID0gMSwgb3BlcmF0aW9uID0g MCwgcmV0ID0gMDsKKwlpbnQgbWVtZmx1c2ggPSAxLCBvcGVyYXRpb24gPSAwLCByZXQgPSAw OwogCWNoYXIgKnJlc2N0cmxfdmFsID0gcGFyYW0tPnJlc2N0cmxfdmFsOwogCXBpZF90IGJt X3BpZDsKIApAQCAtMjMyLDQwICsyMzAsMzggQEAgaW50IGNhdF92YWwoc3RydWN0IHJlc2N0 cmxfdmFsX3BhcmFtICpwYXJhbSkKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaWYg KCFzdHJuY21wKHJlc2N0cmxfdmFsLCBDQVRfU1RSLCBzaXplb2YoQ0FUX1NUUikpKQotCQlp bml0aWFsaXplX2xsY19wZXJmKCk7CisJaW5pdGlhbGl6ZV9sbGNfcGVyZigpOwogCiAJLyog VGVzdCBydW5zIHVudGlsIHRoZSBjYWxsYmFjayBzZXR1cCgpIHRlbGxzIHRoZSB0ZXN0IHRv IHN0b3AuICovCiAJd2hpbGUgKDEpIHsKLQkJaWYgKCFzdHJuY21wKHJlc2N0cmxfdmFsLCBD QVRfU1RSLCBzaXplb2YoQ0FUX1NUUikpKSB7Ci0JCQlyZXQgPSBwYXJhbS0+c2V0dXAoMSwg cGFyYW0pOwotCQkJaWYgKHJldCA9PSBFTkRfT0ZfVEVTVFMpIHsKLQkJCQlyZXQgPSAwOwot CQkJCWJyZWFrOwotCQkJfQotCQkJaWYgKHJldCA8IDApCi0JCQkJYnJlYWs7Ci0JCQlyZXQg PSByZXNldF9lbmFibGVfbGxjX3BlcmYoYm1fcGlkLCBwYXJhbS0+Y3B1X25vKTsKLQkJCWlm IChyZXQpCi0JCQkJYnJlYWs7Ci0KLQkJCWlmIChydW5fZmlsbF9idWYocGFyYW0tPnNwYW4s IG1hbGxvY19hbmRfaW5pdF9tZW1vcnksCi0JCQkJCSBtZW1mbHVzaCwgb3BlcmF0aW9uLCBy ZXNjdHJsX3ZhbCkpIHsKLQkJCQlmcHJpbnRmKHN0ZGVyciwgIkVycm9yLXJ1bm5pbmcgZmls bCBidWZmZXJcbiIpOwotCQkJCXJldCA9IC0xOwotCQkJCWJyZWFrOwotCQkJfQotCi0JCQlz bGVlcCgxKTsKLQkJCXJldCA9IG1lYXN1cmVfY2FjaGVfdmFscyhwYXJhbSwgYm1fcGlkKTsK LQkJCWlmIChyZXQpCi0JCQkJYnJlYWs7Ci0JCX0gZWxzZSB7CisJCXJldCA9IHBhcmFtLT5z ZXR1cChwYXJhbSk7CisJCWlmIChyZXQgPT0gRU5EX09GX1RFU1RTKSB7CisJCQlyZXQgPSAw OworCQkJYnJlYWs7CisJCX0KKwkJaWYgKHJldCA8IDApCisJCQlicmVhazsKKwkJcmV0ID0g cmVzZXRfZW5hYmxlX2xsY19wZXJmKGJtX3BpZCwgcGFyYW0tPmNwdV9ubyk7CisJCWlmIChy ZXQpCiAJCQlicmVhazsKKworCQlpZiAocnVuX2ZpbGxfYnVmKHBhcmFtLT5zcGFuLCBtZW1m bHVzaCwgb3BlcmF0aW9uLCB0cnVlKSkgeworCQkJZnByaW50ZihzdGRlcnIsICJFcnJvci1y dW5uaW5nIGZpbGwgYnVmZmVyXG4iKTsKKwkJCXJldCA9IC0xOworCQkJZ290byBwZV9jbG9z ZTsKIAkJfQorCisJCXNsZWVwKDEpOworCQlyZXQgPSBtZWFzdXJlX2NhY2hlX3ZhbHMocGFy YW0sIGJtX3BpZCk7CisJCWlmIChyZXQpCisJCQlnb3RvIHBlX2Nsb3NlOwogCX0KIAogCXJl dHVybiByZXQ7CisKK3BlX2Nsb3NlOgorCWNsb3NlKGZkX2xtKTsKKwlyZXR1cm4gcmV0Owog fQogCiAvKgpAQCAtMjgyLDcgKzI3OCw3IEBAIGludCBjYXRfdmFsKHN0cnVjdCByZXNjdHJs X3ZhbF9wYXJhbSAqcGFyYW0pCiAgKiBSZXR1cm46CQkwIG9uIHN1Y2Nlc3MuIG5vbi16ZXJv IG9uIGZhaWx1cmUuCiAgKi8KIGludCBzaG93X2NhY2hlX2luZm8odW5zaWduZWQgbG9uZyBz dW1fbGxjX3ZhbCwgaW50IG5vX29mX2JpdHMsCi0JCSAgICB1bnNpZ25lZCBsb25nIGNhY2hl X3NwYW4sIHVuc2lnbmVkIGxvbmcgbWF4X2RpZmYsCisJCSAgICBzaXplX3QgY2FjaGVfc3Bh biwgdW5zaWduZWQgbG9uZyBtYXhfZGlmZiwKIAkJICAgIHVuc2lnbmVkIGxvbmcgbWF4X2Rp ZmZfcGVyY2VudCwgdW5zaWduZWQgbG9uZyBudW1fb2ZfcnVucywKIAkJICAgIGJvb2wgcGxh dGZvcm0sIGJvb2wgY210KQogewpAQCAtMjkxLDcgKzI4Nyw3IEBAIGludCBzaG93X2NhY2hl X2luZm8odW5zaWduZWQgbG9uZyBzdW1fbGxjX3ZhbCwgaW50IG5vX29mX2JpdHMsCiAJbG9u ZyBhdmdfZGlmZiA9IDA7CiAJaW50IHJldDsKIAotCWF2Z19sbGNfdmFsID0gc3VtX2xsY192 YWwgLyAobnVtX29mX3J1bnMgLSAxKTsKKwlhdmdfbGxjX3ZhbCA9IHN1bV9sbGNfdmFsIC8g bnVtX29mX3J1bnM7CiAJYXZnX2RpZmYgPSAobG9uZylhYnMoY2FjaGVfc3BhbiAtIGF2Z19s bGNfdmFsKTsKIAlkaWZmX3BlcmNlbnQgPSAoKGZsb2F0KWNhY2hlX3NwYW4gLSBhdmdfbGxj X3ZhbCkgLyBjYWNoZV9zcGFuICogMTAwOwogCkBAIC0zMDQsNyArMzAwLDcgQEAgaW50IHNo b3dfY2FjaGVfaW5mbyh1bnNpZ25lZCBsb25nIHN1bV9sbGNfdmFsLCBpbnQgbm9fb2ZfYml0 cywKIAlrc2Z0X3ByaW50X21zZygiUGVyY2VudCBkaWZmPSVkXG4iLCBhYnMoKGludClkaWZm X3BlcmNlbnQpKTsKIAlrc2Z0X3ByaW50X21zZygiTnVtYmVyIG9mIGJpdHM6ICVkXG4iLCBu b19vZl9iaXRzKTsKIAlrc2Z0X3ByaW50X21zZygiQXZlcmFnZSBMTEMgdmFsOiAlbHVcbiIs IGF2Z19sbGNfdmFsKTsKLQlrc2Z0X3ByaW50X21zZygiQ2FjaGUgc3BhbiAoJXMpOiAlbHVc biIsIGNtdCA/ICJieXRlcyIgOiAibGluZXMiLAorCWtzZnRfcHJpbnRfbXNnKCJDYWNoZSBz cGFuICglcyk6ICV6dVxuIiwgY210ID8gImJ5dGVzIiA6ICJsaW5lcyIsCiAJCSAgICAgICBj YWNoZV9zcGFuKTsKIAogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9yZXNjdHJsL2NhdF90ZXN0LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0 cy9yZXNjdHJsL2NhdF90ZXN0LmMKaW5kZXggZmIxNDQzZjg4OGM0Li4zODQ4ZGZiNDZhYmEg MTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jlc2N0cmwvY2F0X3Rlc3Qu YworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNjdHJsL2NhdF90ZXN0LmMKQEAg LTE3LDI3ICsxNywxNiBAQAogI2RlZmluZSBNQVhfRElGRl9QRVJDRU5UCTQKICNkZWZpbmUg TUFYX0RJRkYJCTEwMDAwMDAKIAotc3RhdGljIGludCBjb3VudF9vZl9iaXRzOwotc3RhdGlj IGNoYXIgY2JtX21hc2tbMjU2XTsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmdfbWFzazsK LXN0YXRpYyB1bnNpZ25lZCBsb25nIGNhY2hlX3NpemU7Ci0KIC8qCiAgKiBDaGFuZ2Ugc2No ZW1hdGEuIFdyaXRlIHNjaGVtYXRhIHRvIHNwZWNpZmllZAogICogY29uX21vbiBncnAsIG1v bl9ncnAgaW4gcmVzY3RybCBGUy4KICAqIFJ1biA1IHRpbWVzIGluIG9yZGVyIHRvIGdldCBh dmVyYWdlIHZhbHVlcy4KICAqLwotc3RhdGljIGludCBjYXRfc2V0dXAoaW50IG51bSwgLi4u KQorc3RhdGljIGludCBjYXRfc2V0dXAoc3RydWN0IHJlc2N0cmxfdmFsX3BhcmFtICpwKQog ewotCXN0cnVjdCByZXNjdHJsX3ZhbF9wYXJhbSAqcDsKIAljaGFyIHNjaGVtYXRhWzY0XTsK LQl2YV9saXN0IHBhcmFtOwogCWludCByZXQgPSAwOwogCi0JdmFfc3RhcnQocGFyYW0sIG51 bSk7Ci0JcCA9IHZhX2FyZyhwYXJhbSwgc3RydWN0IHJlc2N0cmxfdmFsX3BhcmFtICopOwot CXZhX2VuZChwYXJhbSk7Ci0KIAkvKiBSdW4gTlVNX09GX1JVTlMgdGltZXMgKi8KIAlpZiAo cC0+bnVtX29mX3J1bnMgPj0gTlVNX09GX1JVTlMpCiAJCXJldHVybiBFTkRfT0ZfVEVTVFM7 CkBAIC04OCw3ICs3Nyw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfcmVzdWx0cyhzdHJ1Y3QgcmVz Y3RybF92YWxfcGFyYW0gKnBhcmFtKQogCW5vX29mX2JpdHMgPSBjb3VudF9iaXRzKHBhcmFt LT5tYXNrKTsKIAogCXJldHVybiBzaG93X2NhY2hlX2luZm8oc3VtX2xsY19wZXJmX21pc3Ms IG5vX29mX2JpdHMsIHBhcmFtLT5zcGFuIC8gNjQsCi0JCQkgICAgICAgTUFYX0RJRkYsIE1B WF9ESUZGX1BFUkNFTlQsIE5VTV9PRl9SVU5TLAorCQkJICAgICAgIE1BWF9ESUZGLCBNQVhf RElGRl9QRVJDRU5ULCBydW5zIC0gMSwKIAkJCSAgICAgICBnZXRfdmVuZG9yKCkgPT0gQVJD SF9JTlRFTCwgZmFsc2UpOwogfQogCkBAIC0xMDIsMTQgKzkxLDEyIEBAIGludCBjYXRfcGVy Zl9taXNzX3ZhbChpbnQgY3B1X25vLCBpbnQgbiwgY2hhciAqY2FjaGVfdHlwZSkKIHsKIAl1 bnNpZ25lZCBsb25nIGxfbWFzaywgbF9tYXNrXzE7CiAJaW50IHJldCwgcGlwZWZkWzJdLCBz aWJsaW5nX2NwdV9ubzsKKwl1bnNpZ25lZCBsb25nIGNhY2hlX3NpemUgPSAwOworCXVuc2ln bmVkIGxvbmcgbG9uZ19tYXNrOworCWNoYXIgY2JtX21hc2tbMjU2XTsKKwlpbnQgY291bnRf b2ZfYml0czsKIAljaGFyIHBpcGVfbWVzc2FnZTsKIAotCWNhY2hlX3NpemUgPSAwOwotCi0J cmV0ID0gcmVtb3VudF9yZXNjdHJsZnModHJ1ZSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJl dDsKLQogCS8qIEdldCBkZWZhdWx0IGNibSBtYXNrIGZvciBMMy9MMiBjYWNoZSAqLwogCXJl dCA9IGdldF9jYm1fbWFzayhjYWNoZV90eXBlLCBjYm1fbWFzayk7CiAJaWYgKHJldCkKQEAg LTE0NCw3ICsxMzEsNiBAQCBpbnQgY2F0X3BlcmZfbWlzc192YWwoaW50IGNwdV9ubywgaW50 IG4sIGNoYXIgKmNhY2hlX3R5cGUpCiAJc3RydWN0IHJlc2N0cmxfdmFsX3BhcmFtIHBhcmFt ID0gewogCQkucmVzY3RybF92YWwJPSBDQVRfU1RSLAogCQkuY3B1X25vCQk9IGNwdV9ubywK LQkJLm11bV9yZXNjdHJsZnMJPSBmYWxzZSwKIAkJLnNldHVwCQk9IGNhdF9zZXR1cCwKIAl9 OwogCkBAIC0yMjcsOCArMjEzLDYgQEAgaW50IGNhdF9wZXJmX21pc3NfdmFsKGludCBjcHVf bm8sIGludCBuLCBjaGFyICpjYWNoZV90eXBlKQogCiBvdXQ6CiAJY2F0X3Rlc3RfY2xlYW51 cCgpOwotCWlmIChibV9waWQpCi0JCXVtb3VudF9yZXNjdHJsZnMoKTsKIAogCXJldHVybiBy ZXQ7CiB9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNjdHJsL2Nt dF90ZXN0LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNjdHJsL2NtdF90ZXN0LmMK aW5kZXggYWY3MWIyMTQxMjcxLi5jYjIxOTc2NDdjNmMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rl c3Rpbmcvc2VsZnRlc3RzL3Jlc2N0cmwvY210X3Rlc3QuYworKysgYi90b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9yZXNjdHJsL2NtdF90ZXN0LmMKQEAgLTE2LDIwICsxNiw4IEBACiAjZGVm aW5lIE1BWF9ESUZGCQkyMDAwMDAwCiAjZGVmaW5lIE1BWF9ESUZGX1BFUkNFTlQJMTUKIAot c3RhdGljIGludCBjb3VudF9vZl9iaXRzOwotc3RhdGljIGNoYXIgY2JtX21hc2tbMjU2XTsK LXN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmdfbWFzazsKLXN0YXRpYyB1bnNpZ25lZCBsb25n IGNhY2hlX3NpemU7Ci0KLXN0YXRpYyBpbnQgY210X3NldHVwKGludCBudW0sIC4uLikKK3N0 YXRpYyBpbnQgY210X3NldHVwKHN0cnVjdCByZXNjdHJsX3ZhbF9wYXJhbSAqcCkKIHsKLQlz dHJ1Y3QgcmVzY3RybF92YWxfcGFyYW0gKnA7Ci0JdmFfbGlzdCBwYXJhbTsKLQotCXZhX3N0 YXJ0KHBhcmFtLCBudW0pOwotCXAgPSB2YV9hcmcocGFyYW0sIHN0cnVjdCByZXNjdHJsX3Zh bF9wYXJhbSAqKTsKLQl2YV9lbmQocGFyYW0pOwotCiAJLyogUnVuIE5VTV9PRl9SVU5TIHRp bWVzICovCiAJaWYgKHAtPm51bV9vZl9ydW5zID49IE5VTV9PRl9SVU5TKQogCQlyZXR1cm4g RU5EX09GX1RFU1RTOwpAQCAtNzEsNyArNTksNyBAQCBzdGF0aWMgaW50IGNoZWNrX3Jlc3Vs dHMoc3RydWN0IHJlc2N0cmxfdmFsX3BhcmFtICpwYXJhbSwgaW50IG5vX29mX2JpdHMpCiAJ ZmNsb3NlKGZwKTsKIAogCXJldHVybiBzaG93X2NhY2hlX2luZm8oc3VtX2xsY19vY2N1X3Jl c2MsIG5vX29mX2JpdHMsIHBhcmFtLT5zcGFuLAotCQkJICAgICAgIE1BWF9ESUZGLCBNQVhf RElGRl9QRVJDRU5ULCBOVU1fT0ZfUlVOUywKKwkJCSAgICAgICBNQVhfRElGRiwgTUFYX0RJ RkZfUEVSQ0VOVCwgcnVucyAtIDEsCiAJCQkgICAgICAgdHJ1ZSwgdHJ1ZSk7CiB9CiAKQEAg LTgyLDE0ICs3MCwxMiBAQCB2b2lkIGNtdF90ZXN0X2NsZWFudXAodm9pZCkKIAogaW50IGNt dF9yZXNjdHJsX3ZhbChpbnQgY3B1X25vLCBpbnQgbiwgY2hhciAqKmJlbmNobWFya19jbWQp CiB7CisJdW5zaWduZWQgbG9uZyBjYWNoZV9zaXplID0gMDsKKwl1bnNpZ25lZCBsb25nIGxv bmdfbWFzazsKKwljaGFyIGNibV9tYXNrWzI1Nl07CisJaW50IGNvdW50X29mX2JpdHM7CiAJ aW50IHJldDsKIAotCWNhY2hlX3NpemUgPSAwOwotCi0JcmV0ID0gcmVtb3VudF9yZXNjdHJs ZnModHJ1ZSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQogCWlmICghdmFsaWRhdGVf cmVzY3RybF9mZWF0dXJlX3JlcXVlc3QoQ01UX1NUUikpCiAJCXJldHVybiAtMTsKIApAQCAt MTE3LDcgKzEwMyw2IEBAIGludCBjbXRfcmVzY3RybF92YWwoaW50IGNwdV9ubywgaW50IG4s IGNoYXIgKipiZW5jaG1hcmtfY21kKQogCQkuY3RybGdycAk9ICJjMSIsCiAJCS5tb25ncnAJ CT0gIm0xIiwKIAkJLmNwdV9ubwkJPSBjcHVfbm8sCi0JCS5tdW1fcmVzY3RybGZzCT0gZmFs c2UsCiAJCS5maWxlbmFtZQk9IFJFU1VMVF9GSUxFX05BTUUsCiAJCS5tYXNrCQk9IH4obG9u Z19tYXNrIDw8IG4pICYgbG9uZ19tYXNrLAogCQkuc3BhbgkJPSBjYWNoZV9zaXplICogbiAv IGNvdW50X29mX2JpdHMsCkBAIC0xMjYsNyArMTExLDcgQEAgaW50IGNtdF9yZXNjdHJsX3Zh bChpbnQgY3B1X25vLCBpbnQgbiwgY2hhciAqKmJlbmNobWFya19jbWQpCiAJfTsKIAogCWlm IChzdHJjbXAoYmVuY2htYXJrX2NtZFswXSwgImZpbGxfYnVmIikgPT0gMCkKLQkJc3ByaW50 ZihiZW5jaG1hcmtfY21kWzFdLCAiJWx1IiwgcGFyYW0uc3Bhbik7CisJCXNwcmludGYoYmVu Y2htYXJrX2NtZFsxXSwgIiV6dSIsIHBhcmFtLnNwYW4pOwogCiAJcmVtb3ZlKFJFU1VMVF9G SUxFX05BTUUpOwogCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNj dHJsL2ZpbGxfYnVmLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNjdHJsL2ZpbGxf YnVmLmMKaW5kZXggMzQxY2M5M2NhODRjLi4wZDQyNWYyNjU4M2EgMTAwNjQ0Ci0tLSBhL3Rv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jlc2N0cmwvZmlsbF9idWYuYworKysgYi90b29scy90 ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNjdHJsL2ZpbGxfYnVmLmMKQEAgLTIyLDggKzIyLDYgQEAK ICNkZWZpbmUgUEFHRV9TSVpFCQkoNCAqIDEwMjQpCiAjZGVmaW5lIE1CCQkJKDEwMjQgKiAx MDI0KQogCi1zdGF0aWMgdW5zaWduZWQgY2hhciAqc3RhcnRwdHI7Ci0KIHN0YXRpYyB2b2lk IHNiKHZvaWQpCiB7CiAjaWYgZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQp CkBAIC00MCwzMiArMzgsMzIgQEAgc3RhdGljIHZvaWQgY2xfZmx1c2godm9pZCAqcCkKICNl bmRpZgogfQogCi1zdGF0aWMgdm9pZCBtZW1fZmx1c2godm9pZCAqcCwgc2l6ZV90IHMpCitz dGF0aWMgdm9pZCBtZW1fZmx1c2godW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmX3Np emUpCiB7Ci0JY2hhciAqY3AgPSAoY2hhciAqKXA7CisJdW5zaWduZWQgY2hhciAqY3AgPSBi dWY7CiAJc2l6ZV90IGkgPSAwOwogCi0JcyA9IHMgLyBDTF9TSVpFOyAvKiBtZW0gc2l6ZSBp biBjYWNoZSBsbGluZXMgKi8KKwlidWZfc2l6ZSA9IGJ1Zl9zaXplIC8gQ0xfU0laRTsgLyog bWVtIHNpemUgaW4gY2FjaGUgbGluZXMgKi8KIAotCWZvciAoaSA9IDA7IGkgPCBzOyBpKysp CisJZm9yIChpID0gMDsgaSA8IGJ1Zl9zaXplOyBpKyspCiAJCWNsX2ZsdXNoKCZjcFtpICog Q0xfU0laRV0pOwogCiAJc2IoKTsKIH0KIAotc3RhdGljIHZvaWQgKm1hbGxvY19hbmRfaW5p dF9tZW1vcnkoc2l6ZV90IHMpCitzdGF0aWMgdm9pZCAqbWFsbG9jX2FuZF9pbml0X21lbW9y eShzaXplX3QgYnVmX3NpemUpCiB7CiAJdm9pZCAqcCA9IE5VTEw7CiAJdWludDY0X3QgKnA2 NDsKIAlzaXplX3QgczY0OwogCWludCByZXQ7CiAKLQlyZXQgPSBwb3NpeF9tZW1hbGlnbigm cCwgUEFHRV9TSVpFLCBzKTsKKwlyZXQgPSBwb3NpeF9tZW1hbGlnbigmcCwgUEFHRV9TSVpF LCBidWZfc2l6ZSk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiBOVUxMOwogCiAJcDY0ID0g KHVpbnQ2NF90ICopcDsKLQlzNjQgPSBzIC8gc2l6ZW9mKHVpbnQ2NF90KTsKKwlzNjQgPSBi dWZfc2l6ZSAvIHNpemVvZih1aW50NjRfdCk7CiAKIAl3aGlsZSAoczY0ID4gMCkgewogCQkq cDY0ID0gKHVpbnQ2NF90KXJhbmQoKTsKQEAgLTc2LDEyICs3NCwxMyBAQCBzdGF0aWMgdm9p ZCAqbWFsbG9jX2FuZF9pbml0X21lbW9yeShzaXplX3QgcykKIAlyZXR1cm4gcDsKIH0KIAot c3RhdGljIGludCBmaWxsX29uZV9zcGFuX3JlYWQodW5zaWduZWQgY2hhciAqc3RhcnRfcHRy LCB1bnNpZ25lZCBjaGFyICplbmRfcHRyKQorc3RhdGljIGludCBmaWxsX29uZV9zcGFuX3Jl YWQodW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmX3NpemUpCiB7CisJdW5zaWduZWQg Y2hhciAqZW5kX3B0ciA9IGJ1ZiArIGJ1Zl9zaXplOwogCXVuc2lnbmVkIGNoYXIgc3VtLCAq cDsKIAogCXN1bSA9IDA7Ci0JcCA9IHN0YXJ0X3B0cjsKKwlwID0gYnVmOwogCXdoaWxlIChw IDwgZW5kX3B0cikgewogCQlzdW0gKz0gKnA7CiAJCXAgKz0gKENMX1NJWkUgLyAyKTsKQEAg LTkwLDI3ICs4OSwyNiBAQCBzdGF0aWMgaW50IGZpbGxfb25lX3NwYW5fcmVhZCh1bnNpZ25l ZCBjaGFyICpzdGFydF9wdHIsIHVuc2lnbmVkIGNoYXIgKmVuZF9wdHIpCiAJcmV0dXJuIHN1 bTsKIH0KIAotc3RhdGljCi12b2lkIGZpbGxfb25lX3NwYW5fd3JpdGUodW5zaWduZWQgY2hh ciAqc3RhcnRfcHRyLCB1bnNpZ25lZCBjaGFyICplbmRfcHRyKQorc3RhdGljIHZvaWQgZmls bF9vbmVfc3Bhbl93cml0ZSh1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBidWZfc2l6ZSkK IHsKKwl1bnNpZ25lZCBjaGFyICplbmRfcHRyID0gYnVmICsgYnVmX3NpemU7CiAJdW5zaWdu ZWQgY2hhciAqcDsKIAotCXAgPSBzdGFydF9wdHI7CisJcCA9IGJ1ZjsKIAl3aGlsZSAocCA8 IGVuZF9wdHIpIHsKIAkJKnAgPSAnMSc7CiAJCXAgKz0gKENMX1NJWkUgLyAyKTsKIAl9CiB9 CiAKLXN0YXRpYyBpbnQgZmlsbF9jYWNoZV9yZWFkKHVuc2lnbmVkIGNoYXIgKnN0YXJ0X3B0 ciwgdW5zaWduZWQgY2hhciAqZW5kX3B0ciwKLQkJCSAgIGNoYXIgKnJlc2N0cmxfdmFsKQor c3RhdGljIGludCBmaWxsX2NhY2hlX3JlYWQodW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3Qg YnVmX3NpemUsIGJvb2wgb25jZSkKIHsKIAlpbnQgcmV0ID0gMDsKIAlGSUxFICpmcDsKIAog CXdoaWxlICgxKSB7Ci0JCXJldCA9IGZpbGxfb25lX3NwYW5fcmVhZChzdGFydF9wdHIsIGVu ZF9wdHIpOwotCQlpZiAoIXN0cm5jbXAocmVzY3RybF92YWwsIENBVF9TVFIsIHNpemVvZihD QVRfU1RSKSkpCisJCXJldCA9IGZpbGxfb25lX3NwYW5fcmVhZChidWYsIGJ1Zl9zaXplKTsK KwkJaWYgKG9uY2UpCiAJCQlicmVhazsKIAl9CiAKQEAgLTEyNiw3NSArMTI0LDUyIEBAIHN0 YXRpYyBpbnQgZmlsbF9jYWNoZV9yZWFkKHVuc2lnbmVkIGNoYXIgKnN0YXJ0X3B0ciwgdW5z aWduZWQgY2hhciAqZW5kX3B0ciwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBmaWxs X2NhY2hlX3dyaXRlKHVuc2lnbmVkIGNoYXIgKnN0YXJ0X3B0ciwgdW5zaWduZWQgY2hhciAq ZW5kX3B0ciwKLQkJCSAgICBjaGFyICpyZXNjdHJsX3ZhbCkKK3N0YXRpYyBpbnQgZmlsbF9j YWNoZV93cml0ZSh1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBidWZfc2l6ZSwgYm9vbCBv bmNlKQogewogCXdoaWxlICgxKSB7Ci0JCWZpbGxfb25lX3NwYW5fd3JpdGUoc3RhcnRfcHRy LCBlbmRfcHRyKTsKLQkJaWYgKCFzdHJuY21wKHJlc2N0cmxfdmFsLCBDQVRfU1RSLCBzaXpl b2YoQ0FUX1NUUikpKQorCQlmaWxsX29uZV9zcGFuX3dyaXRlKGJ1ZiwgYnVmX3NpemUpOwor CQlpZiAob25jZSkKIAkJCWJyZWFrOwogCX0KIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMg aW50Ci1maWxsX2NhY2hlKHVuc2lnbmVkIGxvbmcgbG9uZyBidWZfc2l6ZSwgaW50IG1hbGxv Y19hbmRfaW5pdCwgaW50IG1lbWZsdXNoLAotCSAgIGludCBvcCwgY2hhciAqcmVzY3RybF92 YWwpCitzdGF0aWMgaW50IGZpbGxfY2FjaGUoc2l6ZV90IGJ1Zl9zaXplLCBpbnQgbWVtZmx1 c2gsIGludCBvcCwgYm9vbCBvbmNlKQogewotCXVuc2lnbmVkIGNoYXIgKnN0YXJ0X3B0ciwg KmVuZF9wdHI7Ci0JdW5zaWduZWQgbG9uZyBsb25nIGk7CisJdW5zaWduZWQgY2hhciAqYnVm OwogCWludCByZXQ7CiAKLQlpZiAobWFsbG9jX2FuZF9pbml0KQotCQlzdGFydF9wdHIgPSBt YWxsb2NfYW5kX2luaXRfbWVtb3J5KGJ1Zl9zaXplKTsKLQllbHNlCi0JCXN0YXJ0X3B0ciA9 IG1hbGxvYyhidWZfc2l6ZSk7Ci0KLQlpZiAoIXN0YXJ0X3B0cikKKwlidWYgPSBtYWxsb2Nf YW5kX2luaXRfbWVtb3J5KGJ1Zl9zaXplKTsKKwlpZiAoIWJ1ZikKIAkJcmV0dXJuIC0xOwog Ci0Jc3RhcnRwdHIgPSBzdGFydF9wdHI7Ci0JZW5kX3B0ciA9IHN0YXJ0X3B0ciArIGJ1Zl9z aXplOwotCi0JLyoKLQkgKiBJdCdzIGJldHRlciB0byB0b3VjaCB0aGUgbWVtb3J5IG9uY2Ug dG8gYXZvaWQgYW55IGNvbXBpbGVyCi0JICogb3B0aW1pemF0aW9ucwotCSAqLwotCWlmICgh bWFsbG9jX2FuZF9pbml0KSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBidWZfc2l6ZTsgaSsrKQot CQkJKnN0YXJ0X3B0cisrID0gKHVuc2lnbmVkIGNoYXIpcmFuZCgpOwotCX0KLQotCXN0YXJ0 X3B0ciA9IHN0YXJ0cHRyOwotCiAJLyogRmx1c2ggdGhlIG1lbW9yeSBiZWZvcmUgdXNpbmcg dG8gYXZvaWQgImNhY2hlIGhvdCBwYWdlcyIgZWZmZWN0ICovCiAJaWYgKG1lbWZsdXNoKQot CQltZW1fZmx1c2goc3RhcnRfcHRyLCBidWZfc2l6ZSk7CisJCW1lbV9mbHVzaChidWYsIGJ1 Zl9zaXplKTsKIAogCWlmIChvcCA9PSAwKQotCQlyZXQgPSBmaWxsX2NhY2hlX3JlYWQoc3Rh cnRfcHRyLCBlbmRfcHRyLCByZXNjdHJsX3ZhbCk7CisJCXJldCA9IGZpbGxfY2FjaGVfcmVh ZChidWYsIGJ1Zl9zaXplLCBvbmNlKTsKIAllbHNlCi0JCXJldCA9IGZpbGxfY2FjaGVfd3Jp dGUoc3RhcnRfcHRyLCBlbmRfcHRyLCByZXNjdHJsX3ZhbCk7CisJCXJldCA9IGZpbGxfY2Fj aGVfd3JpdGUoYnVmLCBidWZfc2l6ZSwgb25jZSk7CisKKwlmcmVlKGJ1Zik7CiAKIAlpZiAo cmV0KSB7CiAJCXByaW50ZigiXG4gRXJyb3IgaW4gZmlsbCBjYWNoZSByZWFkL3dyaXRlLi4u XG4iKTsKIAkJcmV0dXJuIC0xOwogCX0KIAotCWZyZWUoc3RhcnRwdHIpOwogCiAJcmV0dXJu IDA7CiB9CiAKLWludCBydW5fZmlsbF9idWYodW5zaWduZWQgbG9uZyBzcGFuLCBpbnQgbWFs bG9jX2FuZF9pbml0X21lbW9yeSwKLQkJIGludCBtZW1mbHVzaCwgaW50IG9wLCBjaGFyICpy ZXNjdHJsX3ZhbCkKK2ludCBydW5fZmlsbF9idWYoc2l6ZV90IHNwYW4sIGludCBtZW1mbHVz aCwgaW50IG9wLCBib29sIG9uY2UpCiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nIGNhY2hlX3Np emUgPSBzcGFuOworCXNpemVfdCBjYWNoZV9zaXplID0gc3BhbjsKIAlpbnQgcmV0OwogCi0J cmV0ID0gZmlsbF9jYWNoZShjYWNoZV9zaXplLCBtYWxsb2NfYW5kX2luaXRfbWVtb3J5LCBt ZW1mbHVzaCwgb3AsCi0JCQkgcmVzY3RybF92YWwpOworCXJldCA9IGZpbGxfY2FjaGUoY2Fj aGVfc2l6ZSwgbWVtZmx1c2gsIG9wLCBvbmNlKTsKIAlpZiAocmV0KSB7CiAJCXByaW50Zigi XG4gRXJyb3IgaW4gZmlsbCBjYWNoZVxuIik7CiAJCXJldHVybiAtMTsKZGlmZiAtLWdpdCBh L3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jlc2N0cmwvbWJhX3Rlc3QuYyBiL3Rvb2xzL3Rl c3Rpbmcvc2VsZnRlc3RzL3Jlc2N0cmwvbWJhX3Rlc3QuYwppbmRleCBjZGUzNzgxYTlhYjAu LjRkMmYxNDU4MDRiOCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcmVz Y3RybC9tYmFfdGVzdC5jCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jlc2N0cmwv bWJhX3Rlc3QuYwpAQCAtMjIsMTggKzIyLDEyIEBACiAgKiBjb25fbW9uIGdycCwgbW9uX2dy cCBpbiByZXNjdHJsIEZTLgogICogRm9yIGVhY2ggYWxsb2NhdGlvbiwgcnVuIDUgdGltZXMg aW4gb3JkZXIgdG8gZ2V0IGF2ZXJhZ2UgdmFsdWVzLgogICovCi1zdGF0aWMgaW50IG1iYV9z ZXR1cChpbnQgbnVtLCAuLi4pCitzdGF0aWMgaW50IG1iYV9zZXR1cChzdHJ1Y3QgcmVzY3Ry bF92YWxfcGFyYW0gKnApCiB7CiAJc3RhdGljIGludCBydW5zX3Blcl9hbGxvY2F0aW9uLCBh bGxvY2F0aW9uID0gMTAwOwotCXN0cnVjdCByZXNjdHJsX3ZhbF9wYXJhbSAqcDsKIAljaGFy IGFsbG9jYXRpb25fc3RyWzY0XTsKLQl2YV9saXN0IHBhcmFtOwogCWludCByZXQ7CiAKLQl2 YV9zdGFydChwYXJhbSwgbnVtKTsKLQlwID0gdmFfYXJnKHBhcmFtLCBzdHJ1Y3QgcmVzY3Ry bF92YWxfcGFyYW0gKik7Ci0JdmFfZW5kKHBhcmFtKTsKLQogCWlmIChydW5zX3Blcl9hbGxv Y2F0aW9uID49IE5VTV9PRl9SVU5TKQogCQlydW5zX3Blcl9hbGxvY2F0aW9uID0gMDsKIApA QCAtMTU0LDcgKzE0OCw2IEBAIGludCBtYmFfc2NoZW1hdGFfY2hhbmdlKGludCBjcHVfbm8s IGNoYXIgKmJ3X3JlcG9ydCwgY2hhciAqKmJlbmNobWFya19jbWQpCiAJCS5jdHJsZ3JwCT0g ImMxIiwKIAkJLm1vbmdycAkJPSAibTEiLAogCQkuY3B1X25vCQk9IGNwdV9ubywKLQkJLm11 bV9yZXNjdHJsZnMJPSB0cnVlLAogCQkuZmlsZW5hbWUJPSBSRVNVTFRfRklMRV9OQU1FLAog CQkuYndfcmVwb3J0CT0gYndfcmVwb3J0LAogCQkuc2V0dXAJCT0gbWJhX3NldHVwCmRpZmYg LS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNjdHJsL21ibV90ZXN0LmMgYi90 b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNjdHJsL21ibV90ZXN0LmMKaW5kZXggNTM4ZDM1 YTY0ODVhLi5jN2RlNmY1OTc3ZjYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRl c3RzL3Jlc2N0cmwvbWJtX3Rlc3QuYworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9y ZXNjdHJsL21ibV90ZXN0LmMKQEAgLTE1LDcgKzE1LDcgQEAKICNkZWZpbmUgTlVNX09GX1JV TlMJCTUKIAogc3RhdGljIGludAotc2hvd19id19pbmZvKHVuc2lnbmVkIGxvbmcgKmJ3X2lt YywgdW5zaWduZWQgbG9uZyAqYndfcmVzYywgaW50IHNwYW4pCitzaG93X2J3X2luZm8odW5z aWduZWQgbG9uZyAqYndfaW1jLCB1bnNpZ25lZCBsb25nICpid19yZXNjLCBzaXplX3Qgc3Bh bikKIHsKIAl1bnNpZ25lZCBsb25nIGF2Z19id19pbWMgPSAwLCBhdmdfYndfcmVzYyA9IDA7 CiAJdW5zaWduZWQgbG9uZyBzdW1fYndfaW1jID0gMCwgc3VtX2J3X3Jlc2MgPSAwOwpAQCAt NDAsMTQgKzQwLDE0IEBAIHNob3dfYndfaW5mbyh1bnNpZ25lZCBsb25nICpid19pbWMsIHVu c2lnbmVkIGxvbmcgKmJ3X3Jlc2MsIGludCBzcGFuKQogCWtzZnRfcHJpbnRfbXNnKCIlcyBD aGVjayBNQk0gZGlmZiB3aXRoaW4gJWQlJVxuIiwKIAkJICAgICAgIHJldCA/ICJGYWlsOiIg OiAiUGFzczoiLCBNQVhfRElGRl9QRVJDRU5UKTsKIAlrc2Z0X3ByaW50X21zZygiYXZnX2Rp ZmZfcGVyOiAlZCUlXG4iLCBhdmdfZGlmZl9wZXIpOwotCWtzZnRfcHJpbnRfbXNnKCJTcGFu IChNQik6ICVkXG4iLCBzcGFuKTsKKwlrc2Z0X3ByaW50X21zZygiU3BhbiAoTUIpOiAlenVc biIsIHNwYW4gLyBNQik7CiAJa3NmdF9wcmludF9tc2coImF2Z19id19pbWM6ICVsdVxuIiwg YXZnX2J3X2ltYyk7CiAJa3NmdF9wcmludF9tc2coImF2Z19id19yZXNjOiAlbHVcbiIsIGF2 Z19id19yZXNjKTsKIAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgY2hlY2tfcmVz dWx0cyhpbnQgc3BhbikKK3N0YXRpYyBpbnQgY2hlY2tfcmVzdWx0cyhzaXplX3Qgc3BhbikK IHsKIAl1bnNpZ25lZCBsb25nIGJ3X2ltY1tOVU1fT0ZfUlVOU10sIGJ3X3Jlc2NbTlVNX09G X1JVTlNdOwogCWNoYXIgdGVtcFsxMDI0XSwgKnRva2VuX2FycmF5WzhdOwpAQCAtODYsMTYg Kzg2LDEwIEBAIHN0YXRpYyBpbnQgY2hlY2tfcmVzdWx0cyhpbnQgc3BhbikKIAlyZXR1cm4g cmV0OwogfQogCi1zdGF0aWMgaW50IG1ibV9zZXR1cChpbnQgbnVtLCAuLi4pCitzdGF0aWMg aW50IG1ibV9zZXR1cChzdHJ1Y3QgcmVzY3RybF92YWxfcGFyYW0gKnApCiB7Ci0Jc3RydWN0 IHJlc2N0cmxfdmFsX3BhcmFtICpwOwotCXZhX2xpc3QgcGFyYW07CiAJaW50IHJldCA9IDA7 CiAKLQl2YV9zdGFydChwYXJhbSwgbnVtKTsKLQlwID0gdmFfYXJnKHBhcmFtLCBzdHJ1Y3Qg cmVzY3RybF92YWxfcGFyYW0gKik7Ci0JdmFfZW5kKHBhcmFtKTsKLQogCS8qIFJ1biBOVU1f T0ZfUlVOUyB0aW1lcyAqLwogCWlmIChwLT5udW1fb2ZfcnVucyA+PSBOVU1fT0ZfUlVOUykK IAkJcmV0dXJuIEVORF9PRl9URVNUUzsKQEAgLTExNSw3ICsxMDksNyBAQCB2b2lkIG1ibV90 ZXN0X2NsZWFudXAodm9pZCkKIAlyZW1vdmUoUkVTVUxUX0ZJTEVfTkFNRSk7CiB9CiAKLWlu dCBtYm1fYndfY2hhbmdlKGludCBzcGFuLCBpbnQgY3B1X25vLCBjaGFyICpid19yZXBvcnQs IGNoYXIgKipiZW5jaG1hcmtfY21kKQoraW50IG1ibV9id19jaGFuZ2Uoc2l6ZV90IHNwYW4s IGludCBjcHVfbm8sIGNoYXIgKmJ3X3JlcG9ydCwgY2hhciAqKmJlbmNobWFya19jbWQpCiB7 CiAJc3RydWN0IHJlc2N0cmxfdmFsX3BhcmFtIHBhcmFtID0gewogCQkucmVzY3RybF92YWwJ PSBNQk1fU1RSLApAQCAtMTIzLDcgKzExNyw2IEBAIGludCBtYm1fYndfY2hhbmdlKGludCBz cGFuLCBpbnQgY3B1X25vLCBjaGFyICpid19yZXBvcnQsIGNoYXIgKipiZW5jaG1hcmtfY21k KQogCQkubW9uZ3JwCQk9ICJtMSIsCiAJCS5zcGFuCQk9IHNwYW4sCiAJCS5jcHVfbm8JCT0g Y3B1X25vLAotCQkubXVtX3Jlc2N0cmxmcwk9IHRydWUsCiAJCS5maWxlbmFtZQk9IFJFU1VM VF9GSUxFX05BTUUsCiAJCS5id19yZXBvcnQJPSAgYndfcmVwb3J0LAogCQkuc2V0dXAJCT0g bWJtX3NldHVwCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNjdHJs L3Jlc2N0cmwuaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jlc2N0cmwvcmVzY3RybC5o CmluZGV4IDg3ZTM5NDU2ZGVlMC4uODM4ZDFhNDM4ZjMzIDEwMDY0NAotLS0gYS90b29scy90 ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNjdHJsL3Jlc2N0cmwuaAorKysgYi90b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9yZXNjdHJsL3Jlc2N0cmwuaApAQCAtMyw3ICszLDYgQEAKICNpZm5kZWYg UkVTQ1RSTF9ICiAjZGVmaW5lIFJFU0NUUkxfSAogI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5j bHVkZSA8c3RkYXJnLmg+CiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPGVycm5vLmg+ CiAjaW5jbHVkZSA8c2NoZWQuaD4KQEAgLTQzLDYgKzQyLDcgQEAKIAlkbyB7CQkJCQlcCiAJ CXBlcnJvcihlcnJfbXNnKTsJCVwKIAkJa2lsbChwcGlkLCBTSUdLSUxMKTsJCVwKKwkJdW1v dW50X3Jlc2N0cmxmcygpOwkJXAogCQlleGl0KEVYSVRfRkFJTFVSRSk7CQlcCiAJfSB3aGls ZSAoMCkKIApAQCAtNTMsNyArNTMsNiBAQAogICogQG1vbmdycDoJCU5hbWUgb2YgdGhlIG1v bml0b3IgZ3JvdXAgKG1vbiBncnApCiAgKiBAY3B1X25vOgkJQ1BVIG51bWJlciB0byB3aGlj aCB0aGUgYmVuY2htYXJrIHdvdWxkIGJlIGJpbmRlZAogICogQHNwYW46CQlNZW1vcnkgYnl0 ZXMgYWNjZXNzZWQgaW4gZWFjaCBiZW5jaG1hcmsgaXRlcmF0aW9uCi0gKiBAbXVtX3Jlc2N0 cmxmczoJU2hvdWxkIHRoZSByZXNjdHJsIEZTIGJlIHJlbW91bnRlZD8KICAqIEBmaWxlbmFt ZToJCU5hbWUgb2YgZmlsZSB0byB3aGljaCB0aGUgby9wIHNob3VsZCBiZSB3cml0dGVuCiAg KiBAYndfcmVwb3J0OgkJQmFuZHdpZHRoIHJlcG9ydCB0eXBlIChyZWFkcyB2cyB3cml0ZXMp CiAgKiBAc2V0dXA6CQlDYWxsIGJhY2sgZnVuY3Rpb24gdG8gc2V0dXAgdGVzdCBlbnZpcm9u bWVudApAQCAtNjMsMTMgKzYyLDEyIEBAIHN0cnVjdCByZXNjdHJsX3ZhbF9wYXJhbSB7CiAJ Y2hhcgkJY3RybGdycFs2NF07CiAJY2hhcgkJbW9uZ3JwWzY0XTsKIAlpbnQJCWNwdV9ubzsK LQl1bnNpZ25lZCBsb25nCXNwYW47Ci0JYm9vbAkJbXVtX3Jlc2N0cmxmczsKKwlzaXplX3QJ CXNwYW47CiAJY2hhcgkJZmlsZW5hbWVbNjRdOwogCWNoYXIJCSpid19yZXBvcnQ7CiAJdW5z aWduZWQgbG9uZwltYXNrOwogCWludAkJbnVtX29mX3J1bnM7Ci0JaW50CQkoKnNldHVwKShp bnQgbnVtLCAuLi4pOworCWludAkJKCpzZXR1cCkoc3RydWN0IHJlc2N0cmxfdmFsX3BhcmFt ICpwYXJhbSk7CiB9OwogCiAjZGVmaW5lIE1CTV9TVFIJCQkibWJtIgpAQCAtODQsOCArODIs OCBAQCBleHRlcm4gY2hhciBsbGNfb2NjdXBfcGF0aFsxMDI0XTsKIGludCBnZXRfdmVuZG9y KHZvaWQpOwogYm9vbCBjaGVja19yZXNjdHJsZnNfc3VwcG9ydCh2b2lkKTsKIGludCBmaWx0 ZXJfZG1lc2codm9pZCk7Ci1pbnQgcmVtb3VudF9yZXNjdHJsZnMoYm9vbCBtdW1fcmVzY3Ry bGZzKTsKIGludCBnZXRfcmVzb3VyY2VfaWQoaW50IGNwdV9ubywgaW50ICpyZXNvdXJjZV9p ZCk7CitpbnQgbW91bnRfcmVzY3RybGZzKHZvaWQpOwogaW50IHVtb3VudF9yZXNjdHJsZnMo dm9pZCk7CiBpbnQgdmFsaWRhdGVfYndfcmVwb3J0X3JlcXVlc3QoY2hhciAqYndfcmVwb3J0 KTsKIGJvb2wgdmFsaWRhdGVfcmVzY3RybF9mZWF0dXJlX3JlcXVlc3QoY29uc3QgY2hhciAq cmVzY3RybF92YWwpOwpAQCAtOTgsMTAgKzk2LDkgQEAgaW50IHdyaXRlX2JtX3BpZF90b19y ZXNjdHJsKHBpZF90IGJtX3BpZCwgY2hhciAqY3RybGdycCwgY2hhciAqbW9uZ3JwLAogCQkJ ICAgIGNoYXIgKnJlc2N0cmxfdmFsKTsKIGludCBwZXJmX2V2ZW50X29wZW4oc3RydWN0IHBl cmZfZXZlbnRfYXR0ciAqaHdfZXZlbnQsIHBpZF90IHBpZCwgaW50IGNwdSwKIAkJICAgIGlu dCBncm91cF9mZCwgdW5zaWduZWQgbG9uZyBmbGFncyk7Ci1pbnQgcnVuX2ZpbGxfYnVmKHVu c2lnbmVkIGxvbmcgc3BhbiwgaW50IG1hbGxvY19hbmRfaW5pdF9tZW1vcnksIGludCBtZW1m bHVzaCwKLQkJIGludCBvcCwgY2hhciAqcmVzY3RybF92YSk7CitpbnQgcnVuX2ZpbGxfYnVm KHNpemVfdCBzcGFuLCBpbnQgbWVtZmx1c2gsIGludCBvcCwgYm9vbCBvbmNlKTsKIGludCBy ZXNjdHJsX3ZhbChjaGFyICoqYmVuY2htYXJrX2NtZCwgc3RydWN0IHJlc2N0cmxfdmFsX3Bh cmFtICpwYXJhbSk7Ci1pbnQgbWJtX2J3X2NoYW5nZShpbnQgc3BhbiwgaW50IGNwdV9ubywg Y2hhciAqYndfcmVwb3J0LCBjaGFyICoqYmVuY2htYXJrX2NtZCk7CitpbnQgbWJtX2J3X2No YW5nZShzaXplX3Qgc3BhbiwgaW50IGNwdV9ubywgY2hhciAqYndfcmVwb3J0LCBjaGFyICoq YmVuY2htYXJrX2NtZCk7CiB2b2lkIHRlc3RzX2NsZWFudXAodm9pZCk7CiB2b2lkIG1ibV90 ZXN0X2NsZWFudXAodm9pZCk7CiBpbnQgbWJhX3NjaGVtYXRhX2NoYW5nZShpbnQgY3B1X25v LCBjaGFyICpid19yZXBvcnQsIGNoYXIgKipiZW5jaG1hcmtfY21kKTsKQEAgLTEyMCw3ICsx MTcsNyBAQCB2b2lkIGNtdF90ZXN0X2NsZWFudXAodm9pZCk7CiBpbnQgZ2V0X2NvcmVfc2li bGluZyhpbnQgY3B1X25vKTsKIGludCBtZWFzdXJlX2NhY2hlX3ZhbHMoc3RydWN0IHJlc2N0 cmxfdmFsX3BhcmFtICpwYXJhbSwgaW50IGJtX3BpZCk7CiBpbnQgc2hvd19jYWNoZV9pbmZv KHVuc2lnbmVkIGxvbmcgc3VtX2xsY192YWwsIGludCBub19vZl9iaXRzLAotCQkgICAgdW5z aWduZWQgbG9uZyBjYWNoZV9zcGFuLCB1bnNpZ25lZCBsb25nIG1heF9kaWZmLAorCQkgICAg c2l6ZV90IGNhY2hlX3NwYW4sIHVuc2lnbmVkIGxvbmcgbWF4X2RpZmYsCiAJCSAgICB1bnNp Z25lZCBsb25nIG1heF9kaWZmX3BlcmNlbnQsIHVuc2lnbmVkIGxvbmcgbnVtX29mX3J1bnMs CiAJCSAgICBib29sIHBsYXRmb3JtLCBib29sIGNtdCk7CiAKZGlmZiAtLWdpdCBhL3Rvb2xz L3Rlc3Rpbmcvc2VsZnRlc3RzL3Jlc2N0cmwvcmVzY3RybF90ZXN0cy5jIGIvdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMvcmVzY3RybC9yZXNjdHJsX3Rlc3RzLmMKaW5kZXggOWI5NzUxMjA2 ZTFjLi5kNTExZGFlYjY4NTEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L3Jlc2N0cmwvcmVzY3RybF90ZXN0cy5jCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L3Jlc2N0cmwvcmVzY3RybF90ZXN0cy5jCkBAIC03MCw2MCArNzAsODEgQEAgdm9pZCB0ZXN0 c19jbGVhbnVwKHZvaWQpCiAJY2F0X3Rlc3RfY2xlYW51cCgpOwogfQogCi1zdGF0aWMgdm9p ZCBydW5fbWJtX3Rlc3QoYm9vbCBoYXNfYmVuLCBjaGFyICoqYmVuY2htYXJrX2NtZCwgaW50 IHNwYW4sCitzdGF0aWMgdm9pZCBydW5fbWJtX3Rlc3QoY2hhciAqKmJlbmNobWFya19jbWQs IHNpemVfdCBzcGFuLAogCQkJIGludCBjcHVfbm8sIGNoYXIgKmJ3X3JlcG9ydCkKIHsKIAlp bnQgcmVzOwogCiAJa3NmdF9wcmludF9tc2coIlN0YXJ0aW5nIE1CTSBCVyBjaGFuZ2UgLi4u XG4iKTsKIAorCXJlcyA9IG1vdW50X3Jlc2N0cmxmcygpOworCWlmIChyZXMpIHsKKwkJa3Nm dF9leGl0X2ZhaWxfbXNnKCJGYWlsZWQgdG8gbW91bnQgcmVzY3RybCBGU1xuIik7CisJCXJl dHVybjsKKwl9CisKIAlpZiAoIXZhbGlkYXRlX3Jlc2N0cmxfZmVhdHVyZV9yZXF1ZXN0KE1C TV9TVFIpIHx8IChnZXRfdmVuZG9yKCkgIT0gQVJDSF9JTlRFTCkpIHsKIAkJa3NmdF90ZXN0 X3Jlc3VsdF9za2lwKCJIYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IE1CTSBvciBNQk0gaXMg ZGlzYWJsZWRcbiIpOwotCQlyZXR1cm47CisJCWdvdG8gdW1vdW50OwogCX0KIAotCWlmICgh aGFzX2JlbikKLQkJc3ByaW50ZihiZW5jaG1hcmtfY21kWzVdLCAiJXMiLCBNQkFfU1RSKTsK IAlyZXMgPSBtYm1fYndfY2hhbmdlKHNwYW4sIGNwdV9ubywgYndfcmVwb3J0LCBiZW5jaG1h cmtfY21kKTsKIAlrc2Z0X3Rlc3RfcmVzdWx0KCFyZXMsICJNQk06IGJ3IGNoYW5nZVxuIik7 CiAJaWYgKChnZXRfdmVuZG9yKCkgPT0gQVJDSF9JTlRFTCkgJiYgcmVzKQogCQlrc2Z0X3By aW50X21zZygiSW50ZWwgTUJNIG1heSBiZSBpbmFjY3VyYXRlIHdoZW4gU3ViLU5VTUEgQ2x1 c3RlcmluZyBpcyBlbmFibGVkLiBDaGVjayBCSU9TIGNvbmZpZ3VyYXRpb24uXG4iKTsKKwor dW1vdW50OgorCXVtb3VudF9yZXNjdHJsZnMoKTsKIH0KIAotc3RhdGljIHZvaWQgcnVuX21i YV90ZXN0KGJvb2wgaGFzX2JlbiwgY2hhciAqKmJlbmNobWFya19jbWQsIGludCBzcGFuLAot CQkJIGludCBjcHVfbm8sIGNoYXIgKmJ3X3JlcG9ydCkKK3N0YXRpYyB2b2lkIHJ1bl9tYmFf dGVzdChjaGFyICoqYmVuY2htYXJrX2NtZCwgaW50IGNwdV9ubywgY2hhciAqYndfcmVwb3J0 KQogewogCWludCByZXM7CiAKIAlrc2Z0X3ByaW50X21zZygiU3RhcnRpbmcgTUJBIFNjaGVt YXRhIGNoYW5nZSAuLi5cbiIpOwogCisJcmVzID0gbW91bnRfcmVzY3RybGZzKCk7CisJaWYg KHJlcykgeworCQlrc2Z0X2V4aXRfZmFpbF9tc2coIkZhaWxlZCB0byBtb3VudCByZXNjdHJs IEZTXG4iKTsKKwkJcmV0dXJuOworCX0KKwogCWlmICghdmFsaWRhdGVfcmVzY3RybF9mZWF0 dXJlX3JlcXVlc3QoTUJBX1NUUikgfHwgKGdldF92ZW5kb3IoKSAhPSBBUkNIX0lOVEVMKSkg ewogCQlrc2Z0X3Rlc3RfcmVzdWx0X3NraXAoIkhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQg TUJBIG9yIE1CQSBpcyBkaXNhYmxlZFxuIik7Ci0JCXJldHVybjsKKwkJZ290byB1bW91bnQ7 CiAJfQogCi0JaWYgKCFoYXNfYmVuKQotCQlzcHJpbnRmKGJlbmNobWFya19jbWRbMV0sICIl ZCIsIHNwYW4pOwogCXJlcyA9IG1iYV9zY2hlbWF0YV9jaGFuZ2UoY3B1X25vLCBid19yZXBv cnQsIGJlbmNobWFya19jbWQpOwogCWtzZnRfdGVzdF9yZXN1bHQoIXJlcywgIk1CQTogc2No ZW1hdGEgY2hhbmdlXG4iKTsKKwordW1vdW50OgorCXVtb3VudF9yZXNjdHJsZnMoKTsKIH0K IAotc3RhdGljIHZvaWQgcnVuX2NtdF90ZXN0KGJvb2wgaGFzX2JlbiwgY2hhciAqKmJlbmNo bWFya19jbWQsIGludCBjcHVfbm8pCitzdGF0aWMgdm9pZCBydW5fY210X3Rlc3QoY2hhciAq KmJlbmNobWFya19jbWQsIGludCBjcHVfbm8pCiB7CiAJaW50IHJlczsKIAogCWtzZnRfcHJp bnRfbXNnKCJTdGFydGluZyBDTVQgdGVzdCAuLi5cbiIpOworCisJcmVzID0gbW91bnRfcmVz Y3RybGZzKCk7CisJaWYgKHJlcykgeworCQlrc2Z0X2V4aXRfZmFpbF9tc2coIkZhaWxlZCB0 byBtb3VudCByZXNjdHJsIEZTXG4iKTsKKwkJcmV0dXJuOworCX0KKwogCWlmICghdmFsaWRh dGVfcmVzY3RybF9mZWF0dXJlX3JlcXVlc3QoQ01UX1NUUikpIHsKIAkJa3NmdF90ZXN0X3Jl c3VsdF9za2lwKCJIYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IENNVCBvciBDTVQgaXMgZGlz YWJsZWRcbiIpOwotCQlyZXR1cm47CisJCWdvdG8gdW1vdW50OwogCX0KIAotCWlmICghaGFz X2JlbikKLQkJc3ByaW50ZihiZW5jaG1hcmtfY21kWzVdLCAiJXMiLCBDTVRfU1RSKTsKIAly ZXMgPSBjbXRfcmVzY3RybF92YWwoY3B1X25vLCA1LCBiZW5jaG1hcmtfY21kKTsKIAlrc2Z0 X3Rlc3RfcmVzdWx0KCFyZXMsICJDTVQ6IHRlc3RcbiIpOwogCWlmICgoZ2V0X3ZlbmRvcigp ID09IEFSQ0hfSU5URUwpICYmIHJlcykKIAkJa3NmdF9wcmludF9tc2coIkludGVsIENNVCBt YXkgYmUgaW5hY2N1cmF0ZSB3aGVuIFN1Yi1OVU1BIENsdXN0ZXJpbmcgaXMgZW5hYmxlZC4g Q2hlY2sgQklPUyBjb25maWd1cmF0aW9uLlxuIik7CisKK3Vtb3VudDoKKwl1bW91bnRfcmVz Y3RybGZzKCk7CiB9CiAKIHN0YXRpYyB2b2lkIHJ1bl9jYXRfdGVzdChpbnQgY3B1X25vLCBp bnQgbm9fb2ZfYml0cykKQEAgLTEzMiwyMiArMTUzLDMyIEBAIHN0YXRpYyB2b2lkIHJ1bl9j YXRfdGVzdChpbnQgY3B1X25vLCBpbnQgbm9fb2ZfYml0cykKIAogCWtzZnRfcHJpbnRfbXNn KCJTdGFydGluZyBDQVQgdGVzdCAuLi5cbiIpOwogCisJcmVzID0gbW91bnRfcmVzY3RybGZz KCk7CisJaWYgKHJlcykgeworCQlrc2Z0X2V4aXRfZmFpbF9tc2coIkZhaWxlZCB0byBtb3Vu dCByZXNjdHJsIEZTXG4iKTsKKwkJcmV0dXJuOworCX0KKwogCWlmICghdmFsaWRhdGVfcmVz Y3RybF9mZWF0dXJlX3JlcXVlc3QoQ0FUX1NUUikpIHsKIAkJa3NmdF90ZXN0X3Jlc3VsdF9z a2lwKCJIYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IENBVCBvciBDQVQgaXMgZGlzYWJsZWRc biIpOwotCQlyZXR1cm47CisJCWdvdG8gdW1vdW50OwogCX0KIAogCXJlcyA9IGNhdF9wZXJm X21pc3NfdmFsKGNwdV9ubywgbm9fb2ZfYml0cywgIkwzIik7CiAJa3NmdF90ZXN0X3Jlc3Vs dCghcmVzLCAiQ0FUOiB0ZXN0XG4iKTsKKwordW1vdW50OgorCXVtb3VudF9yZXNjdHJsZnMo KTsKIH0KIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWJvb2wgaGFz X2JlbiA9IGZhbHNlLCBtYm1fdGVzdCA9IHRydWUsIG1iYV90ZXN0ID0gdHJ1ZSwgY210X3Rl c3QgPSB0cnVlOwotCWludCBjLCBjcHVfbm8gPSAxLCBzcGFuID0gMjUwLCBhcmdjX25ldyA9 IGFyZ2MsIGksIG5vX29mX2JpdHMgPSAwOwogCWNoYXIgKmJlbmNobWFya19jbWRbQkVOQ0hN QVJLX0FSR1NdLCBid19yZXBvcnRbNjRdLCBibV90eXBlWzY0XTsKIAljaGFyIGJlbmNobWFy a19jbWRfYXJlYVtCRU5DSE1BUktfQVJHU11bQkVOQ0hNQVJLX0FSR19TSVpFXTsKKwlpbnQg YywgY3B1X25vID0gMSwgYXJnY19uZXcgPSBhcmdjLCBpLCBub19vZl9iaXRzID0gMDsKIAlp bnQgYmVuX2luZCwgYmVuX2NvdW50LCB0ZXN0cyA9IDA7CisJc2l6ZV90IHNwYW4gPSAyNTAg KiBNQjsKIAlib29sIGNhdF90ZXN0ID0gdHJ1ZTsKIAogCWZvciAoaSA9IDA7IGkgPCBhcmdj OyBpKyspIHsKQEAgLTIzMiwxNiArMjYzLDE1IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAkJYmVuY2htYXJrX2NtZFtiZW5fY291bnRdID0gTlVMTDsKIAl9IGVsc2Ug ewogCQkvKiBJZiBubyBiZW5jaG1hcmsgaXMgZ2l2ZW4gYnkgIi1iIiBhcmd1bWVudCwgdXNl IGZpbGxfYnVmLiAqLwotCQlmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKQorCQlmb3IgKGkgPSAw OyBpIDwgNTsgaSsrKQogCQkJYmVuY2htYXJrX2NtZFtpXSA9IGJlbmNobWFya19jbWRfYXJl YVtpXTsKIAogCQlzdHJjcHkoYmVuY2htYXJrX2NtZFswXSwgImZpbGxfYnVmIik7Ci0JCXNw cmludGYoYmVuY2htYXJrX2NtZFsxXSwgIiVkIiwgc3Bhbik7CisJCXNwcmludGYoYmVuY2ht YXJrX2NtZFsxXSwgIiV6dSIsIHNwYW4pOwogCQlzdHJjcHkoYmVuY2htYXJrX2NtZFsyXSwg IjEiKTsKLQkJc3RyY3B5KGJlbmNobWFya19jbWRbM10sICIxIik7Ci0JCXN0cmNweShiZW5j aG1hcmtfY21kWzRdLCAiMCIpOwotCQlzdHJjcHkoYmVuY2htYXJrX2NtZFs1XSwgIiIpOwot CQliZW5jaG1hcmtfY21kWzZdID0gTlVMTDsKKwkJc3RyY3B5KGJlbmNobWFya19jbWRbM10s ICIwIik7CisJCXN0cmNweShiZW5jaG1hcmtfY21kWzRdLCAiZmFsc2UiKTsKKwkJYmVuY2ht YXJrX2NtZFs1XSA9IE5VTEw7CiAJfQogCiAJc3ByaW50Zihid19yZXBvcnQsICJyZWFkcyIp OwpAQCAtMjUwLDIzICsyODAsMjQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQogCWlmICghY2hlY2tfcmVzY3RybGZzX3N1cHBvcnQoKSkKIAkJcmV0dXJuIGtzZnRfZXhp dF9za2lwKCJyZXNjdHJsIEZTIGRvZXMgbm90IGV4aXN0LiBFbmFibGUgWDg2X0NQVV9SRVND VFJMIGNvbmZpZyBvcHRpb24uXG4iKTsKIAorCWlmICh1bW91bnRfcmVzY3RybGZzKCkpCisJ CXJldHVybiBrc2Z0X2V4aXRfc2tpcCgicmVzY3RybCBGUyB1bm1vdW50IGZhaWxlZC5cbiIp OworCiAJZmlsdGVyX2RtZXNnKCk7CiAKIAlrc2Z0X3NldF9wbGFuKHRlc3RzID8gOiA0KTsK IAogCWlmIChtYm1fdGVzdCkKLQkJcnVuX21ibV90ZXN0KGhhc19iZW4sIGJlbmNobWFya19j bWQsIHNwYW4sIGNwdV9ubywgYndfcmVwb3J0KTsKKwkJcnVuX21ibV90ZXN0KGJlbmNobWFy a19jbWQsIHNwYW4sIGNwdV9ubywgYndfcmVwb3J0KTsKIAogCWlmIChtYmFfdGVzdCkKLQkJ cnVuX21iYV90ZXN0KGhhc19iZW4sIGJlbmNobWFya19jbWQsIHNwYW4sIGNwdV9ubywgYndf cmVwb3J0KTsKKwkJcnVuX21iYV90ZXN0KGJlbmNobWFya19jbWQsIGNwdV9ubywgYndfcmVw b3J0KTsKIAogCWlmIChjbXRfdGVzdCkKLQkJcnVuX2NtdF90ZXN0KGhhc19iZW4sIGJlbmNo bWFya19jbWQsIGNwdV9ubyk7CisJCXJ1bl9jbXRfdGVzdChiZW5jaG1hcmtfY21kLCBjcHVf bm8pOwogCiAJaWYgKGNhdF90ZXN0KQogCQlydW5fY2F0X3Rlc3QoY3B1X25vLCBub19vZl9i aXRzKTsKIAotCXVtb3VudF9yZXNjdHJsZnMoKTsKLQogCWtzZnRfZmluaXNoZWQoKTsKIH0K ZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jlc2N0cmwvcmVzY3RybF92 YWwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jlc2N0cmwvcmVzY3RybF92YWwuYwpp bmRleCBhYjFlYWIxZTdmZjYuLmYwZjZjNWY2ZTk4YiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMvcmVzY3RybC9yZXNjdHJsX3ZhbC5jCisrKyBiL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL3Jlc2N0cmwvcmVzY3RybF92YWwuYwpAQCAtNjQ4LDEwICs2NDgsNiBA QCBpbnQgcmVzY3RybF92YWwoY2hhciAqKmJlbmNobWFya19jbWQsIHN0cnVjdCByZXNjdHJs X3ZhbF9wYXJhbSAqcGFyYW0pCiAJCQlyZXR1cm4gcmV0OwogCX0KIAotCXJldCA9IHJlbW91 bnRfcmVzY3RybGZzKHBhcmFtLT5tdW1fcmVzY3RybGZzKTsKLQlpZiAocmV0KQotCQlyZXR1 cm4gcmV0OwotCiAJLyoKIAkgKiBJZiBiZW5jaG1hcmsgd2Fzbid0IHN1Y2Nlc3NmdWxseSBz dGFydGVkIGJ5IGNoaWxkLCB0aGVuIGNoaWxkIHNob3VsZAogCSAqIGtpbGwgcGFyZW50LCBz byBzYXZlIHBhcmVudCdzIHBpZApAQCAtNzYzLDcgKzc1OSw3IEBAIGludCByZXNjdHJsX3Zh bChjaGFyICoqYmVuY2htYXJrX2NtZCwgc3RydWN0IHJlc2N0cmxfdmFsX3BhcmFtICpwYXJh bSkKIAogCS8qIFRlc3QgcnVucyB1bnRpbCB0aGUgY2FsbGJhY2sgc2V0dXAoKSB0ZWxscyB0 aGUgdGVzdCB0byBzdG9wLiAqLwogCXdoaWxlICgxKSB7Ci0JCXJldCA9IHBhcmFtLT5zZXR1 cCgxLCBwYXJhbSk7CisJCXJldCA9IHBhcmFtLT5zZXR1cChwYXJhbSk7CiAJCWlmIChyZXQg PT0gRU5EX09GX1RFU1RTKSB7CiAJCQlyZXQgPSAwOwogCQkJYnJlYWs7CkBAIC03ODgsNyAr Nzg0LDYgQEAgaW50IHJlc2N0cmxfdmFsKGNoYXIgKipiZW5jaG1hcmtfY21kLCBzdHJ1Y3Qg cmVzY3RybF92YWxfcGFyYW0gKnBhcmFtKQogCXNpZ25hbF9oYW5kbGVyX3VucmVnaXN0ZXIo KTsKIG91dDoKIAlraWxsKGJtX3BpZCwgU0lHS0lMTCk7Ci0JdW1vdW50X3Jlc2N0cmxmcygp OwogCiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRl c3RzL3Jlc2N0cmwvcmVzY3RybGZzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNj dHJsL3Jlc2N0cmxmcy5jCmluZGV4IGZiMDAyNDVkZWU5Mi4uYmQzNmVlMjA2NjAyIDEwMDY0 NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yZXNjdHJsL3Jlc2N0cmxmcy5jCisr KyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jlc2N0cmwvcmVzY3RybGZzLmMKQEAgLTQ4 LDI5ICs0OCwyMCBAQCBzdGF0aWMgaW50IGZpbmRfcmVzY3RybF9tb3VudChjaGFyICpidWZm ZXIpCiB9CiAKIC8qCi0gKiByZW1vdW50X3Jlc2N0cmxmcyAtIFJlbW91bnQgcmVzY3RybCBG UyBhdCAvc3lzL2ZzL3Jlc2N0cmwKLSAqIEBtdW1fcmVzY3RybGZzOglTaG91bGQgdGhlIHJl c2N0cmwgRlMgYmUgcmVtb3VudGVkPworICogbW91bnRfcmVzY3RybGZzIC0gTW91bnQgcmVz Y3RybCBGUyBhdCAvc3lzL2ZzL3Jlc2N0cmwKICAqCi0gKiBJZiBub3QgbW91bnRlZCwgbW91 bnQgaXQuCi0gKiBJZiBtb3VudGVkIGFuZCBtdW1fcmVzY3RybGZzIHRoZW4gcmVtb3VudCBy ZXNjdHJsIEZTLgotICogSWYgbW91bnRlZCBhbmQgIW11bV9yZXNjdHJsZnMgdGhlbiBub29w CisgKiBNb3VudHMgcmVzY3RybCBGUy4gRmFpbHMgaWYgcmVzY3RybCBGUyBpcyBhbHJlYWR5 IG1vdW50ZWQgdG8gYXZvaWQKKyAqIHByZS1leGlzdGluZyBzZXR0aW5ncyBpbnRlcmZlcmlu ZyB3aXRoIHRoZSB0ZXN0IHJlc3VsdHMuCiAgKgogICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Ms IG5vbi16ZXJvIG9uIGZhaWx1cmUKICAqLwotaW50IHJlbW91bnRfcmVzY3RybGZzKGJvb2wg bXVtX3Jlc2N0cmxmcykKK2ludCBtb3VudF9yZXNjdHJsZnModm9pZCkKIHsKLQljaGFyIG1v dW50cG9pbnRbMjU2XTsKIAlpbnQgcmV0OwogCi0JcmV0ID0gZmluZF9yZXNjdHJsX21vdW50 KG1vdW50cG9pbnQpOwotCWlmIChyZXQpCi0JCXN0cmNweShtb3VudHBvaW50LCBSRVNDVFJM X1BBVEgpOwotCi0JaWYgKCFyZXQgJiYgbXVtX3Jlc2N0cmxmcyAmJiB1bW91bnQobW91bnRw b2ludCkpCi0JCWtzZnRfcHJpbnRfbXNnKCJGYWlsOiB1bm1vdW50aW5nIFwiJXNcIlxuIiwg bW91bnRwb2ludCk7Ci0KLQlpZiAoIXJldCAmJiAhbXVtX3Jlc2N0cmxmcykKLQkJcmV0dXJu IDA7CisJcmV0ID0gZmluZF9yZXNjdHJsX21vdW50KE5VTEwpOworCWlmIChyZXQgIT0gLUVO T0VOVCkKKwkJcmV0dXJuIC0xOwogCiAJa3NmdF9wcmludF9tc2coIk1vdW50aW5nIHJlc2N0 cmwgdG8gXCIlc1wiXG4iLCBSRVNDVFJMX1BBVEgpOwogCXJldCA9IG1vdW50KCJyZXNjdHJs IiwgUkVTQ1RSTF9QQVRILCAicmVzY3RybCIsIDAsIE5VTEwpOwpAQCAtODIsMTAgKzczLDE2 IEBAIGludCByZW1vdW50X3Jlc2N0cmxmcyhib29sIG11bV9yZXNjdHJsZnMpCiAKIGludCB1 bW91bnRfcmVzY3RybGZzKHZvaWQpCiB7Ci0JaWYgKGZpbmRfcmVzY3RybF9tb3VudChOVUxM KSkKKwljaGFyIG1vdW50cG9pbnRbMjU2XTsKKwlpbnQgcmV0OworCisJcmV0ID0gZmluZF9y ZXNjdHJsX21vdW50KG1vdW50cG9pbnQpOworCWlmIChyZXQgPT0gLUVOT0VOVCkKIAkJcmV0 dXJuIDA7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAotCWlmICh1bW91bnQoUkVTQ1RS TF9QQVRIKSkgeworCWlmICh1bW91bnQobW91bnRwb2ludCkpIHsKIAkJcGVycm9yKCIjIFVu YWJsZSB0byB1bW91bnQgcmVzY3RybCIpOwogCiAJCXJldHVybiBlcnJubzsKQEAgLTMwNSwx MCArMzAyLDEwIEBAIGludCB0YXNrc2V0X2JlbmNobWFyayhwaWRfdCBibV9waWQsIGludCBj cHVfbm8pCiAgKi8KIHZvaWQgcnVuX2JlbmNobWFyayhpbnQgc2lnbnVtLCBzaWdpbmZvX3Qg KmluZm8sIHZvaWQgKnVjb250ZXh0KQogewotCWludCBvcGVyYXRpb24sIHJldCwgbWFsbG9j X2FuZF9pbml0X21lbW9yeSwgbWVtZmx1c2g7Ci0JdW5zaWduZWQgbG9uZyBzcGFuLCBidWZm ZXJfc3BhbjsKKwlpbnQgb3BlcmF0aW9uLCByZXQsIG1lbWZsdXNoOwogCWNoYXIgKipiZW5j aG1hcmtfY21kOwotCWNoYXIgcmVzY3RybF92YWxbNjRdOworCXNpemVfdCBzcGFuOworCWJv b2wgb25jZTsKIAlGSUxFICpmcDsKIAogCWJlbmNobWFya19jbWQgPSBpbmZvLT5zaV9wdHI7 CkBAIC0zMjQsMTggKzMyMSwxNiBAQCB2b2lkIHJ1bl9iZW5jaG1hcmsoaW50IHNpZ251bSwg c2lnaW5mb190ICppbmZvLCB2b2lkICp1Y29udGV4dCkKIAlpZiAoc3RyY21wKGJlbmNobWFy a19jbWRbMF0sICJmaWxsX2J1ZiIpID09IDApIHsKIAkJLyogRXhlY3V0ZSBkZWZhdWx0IGZp bGxfYnVmIGJlbmNobWFyayAqLwogCQlzcGFuID0gc3RydG91bChiZW5jaG1hcmtfY21kWzFd LCBOVUxMLCAxMCk7Ci0JCW1hbGxvY19hbmRfaW5pdF9tZW1vcnkgPSBhdG9pKGJlbmNobWFy a19jbWRbMl0pOwotCQltZW1mbHVzaCA9ICBhdG9pKGJlbmNobWFya19jbWRbM10pOwotCQlv cGVyYXRpb24gPSBhdG9pKGJlbmNobWFya19jbWRbNF0pOwotCQlzcHJpbnRmKHJlc2N0cmxf dmFsLCAiJXMiLCBiZW5jaG1hcmtfY21kWzVdKTsKLQotCQlpZiAoc3RybmNtcChyZXNjdHJs X3ZhbCwgQ01UX1NUUiwgc2l6ZW9mKENNVF9TVFIpKSkKLQkJCWJ1ZmZlcl9zcGFuID0gc3Bh biAqIE1COworCQltZW1mbHVzaCA9ICBhdG9pKGJlbmNobWFya19jbWRbMl0pOworCQlvcGVy YXRpb24gPSBhdG9pKGJlbmNobWFya19jbWRbM10pOworCQlpZiAoIXN0cmNtcChiZW5jaG1h cmtfY21kWzRdLCAidHJ1ZSIpKQorCQkJb25jZSA9IHRydWU7CisJCWVsc2UgaWYgKCFzdHJj bXAoYmVuY2htYXJrX2NtZFs0XSwgImZhbHNlIikpCisJCQlvbmNlID0gZmFsc2U7CiAJCWVs c2UKLQkJCWJ1ZmZlcl9zcGFuID0gc3BhbjsKKwkJCVBBUkVOVF9FWElUKCJJbnZhbGlkIG9u Y2UgcGFyYW1ldGVyIik7CiAKLQkJaWYgKHJ1bl9maWxsX2J1ZihidWZmZXJfc3BhbiwgbWFs bG9jX2FuZF9pbml0X21lbW9yeSwgbWVtZmx1c2gsCi0JCQkJIG9wZXJhdGlvbiwgcmVzY3Ry bF92YWwpKQorCQlpZiAocnVuX2ZpbGxfYnVmKHNwYW4sIG1lbWZsdXNoLCBvcGVyYXRpb24s IG9uY2UpKQogCQkJZnByaW50ZihzdGRlcnIsICJFcnJvciBpbiBydW5uaW5nIGZpbGwgYnVm ZmVyXG4iKTsKIAl9IGVsc2UgewogCQkvKiBFeGVjdXRlIHNwZWNpZmllZCBiZW5jaG1hcmsg Ki8KQEAgLTYxMSw3ICs2MDYsOCBAQCBjaGFyICpmZ3JlcChGSUxFICppbmYsIGNvbnN0IGNo YXIgKnN0cikKICAqIHZhbGlkYXRlX3Jlc2N0cmxfZmVhdHVyZV9yZXF1ZXN0IC0gQ2hlY2sg aWYgcmVxdWVzdGVkIGZlYXR1cmUgaXMgdmFsaWQuCiAgKiBAcmVzY3RybF92YWw6CVJlcXVl c3RlZCBmZWF0dXJlCiAgKgotICogUmV0dXJuOiBUcnVlIGlmIHRoZSBmZWF0dXJlIGlzIHN1 cHBvcnRlZCwgZWxzZSBmYWxzZQorICogUmV0dXJuOiBUcnVlIGlmIHRoZSBmZWF0dXJlIGlz IHN1cHBvcnRlZCwgZWxzZSBmYWxzZS4gRmFsc2UgaXMgYWxzbworICogICAgICAgICByZXR1 cm5lZCBpZiByZXNjdHJsIEZTIGlzIG5vdCBtb3VudGVkLgogICovCiBib29sIHZhbGlkYXRl X3Jlc2N0cmxfZmVhdHVyZV9yZXF1ZXN0KGNvbnN0IGNoYXIgKnJlc2N0cmxfdmFsKQogewpA QCAtNjE5LDExICs2MTUsMTMgQEAgYm9vbCB2YWxpZGF0ZV9yZXNjdHJsX2ZlYXR1cmVfcmVx dWVzdChjb25zdCBjaGFyICpyZXNjdHJsX3ZhbCkKIAlib29sIGZvdW5kID0gZmFsc2U7CiAJ Y2hhciAqcmVzOwogCUZJTEUgKmluZjsKKwlpbnQgcmV0OwogCiAJaWYgKCFyZXNjdHJsX3Zh bCkKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKHJlbW91bnRfcmVzY3RybGZzKGZhbHNlKSkK KwlyZXQgPSBmaW5kX3Jlc2N0cmxfbW91bnQoTlVMTCk7CisJaWYgKHJldCkKIAkJcmV0dXJu IGZhbHNlOwogCiAJaWYgKCFzdHJuY21wKHJlc2N0cmxfdmFsLCBDQVRfU1RSLCBzaXplb2Yo Q0FUX1NUUikpKSB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yc2Vx L01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcnNlcS9NYWtlZmlsZQppbmRl eCBiMzU3YmEyNGFmMDYuLjhmMDIzYjdjYWI2MCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvcnNlcS9NYWtlZmlsZQorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0 cy9yc2VxL01ha2VmaWxlCkBAIC0zMSw3ICszMSw3IEBAICQoT1VUUFVUKS8lOiAlLmMgJChU RVNUX0dFTl9QUk9HU19FWFRFTkRFRCkgcnNlcS5oIHJzZXEtKi5oCiAJJChDQykgJChDRkxB R1MpICQ8ICQoTERMSUJTKSAtbHJzZXEgLW8gJEAKIAogJChPVVRQVVQpL2Jhc2ljX3BlcmNw dV9vcHNfbW1fY2lkX3Rlc3Q6IGJhc2ljX3BlcmNwdV9vcHNfdGVzdC5jICQoVEVTVF9HRU5f UFJPR1NfRVhURU5ERUQpIHJzZXEuaCByc2VxLSouaAotCSQoQ0MpICQoQ0ZMQUdTKSAtREJV SUxET1BUX1JTRVFfUEVSQ1BVX01NX0NJRF9JRCAkPCAkKExETElCUykgLWxyc2VxIC1vICRA CisJJChDQykgJChDRkxBR1MpIC1EQlVJTERPUFRfUlNFUV9QRVJDUFVfTU1fQ0lEICQ8ICQo TERMSUJTKSAtbHJzZXEgLW8gJEAKIAogJChPVVRQVVQpL3BhcmFtX3Rlc3RfYmVuY2htYXJr OiBwYXJhbV90ZXN0LmMgJChURVNUX0dFTl9QUk9HU19FWFRFTkRFRCkgXAogCQkJCQlyc2Vx LmggcnNlcS0qLmgKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEv Y29tcGlsZXIuaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvY29tcGlsZXIuaApp bmRleCBmNDcwOTJiZGRlYmEuLjQ5ZDYyZmJkNmRkYSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMvcnNlcS9jb21waWxlci5oCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2Vs ZnRlc3RzL3JzZXEvY29tcGlsZXIuaApAQCAtMzMsNCArMzMsMzAgQEAKICNkZWZpbmUgUlNF UV9DT01CSU5FX1RPS0VOUyhfdG9rZW5hLCBfdG9rZW5iKQlcCiAJUlNFUV9fQ09NQklORV9U T0tFTlMoX3Rva2VuYSwgX3Rva2VuYikKIAorI2lmZGVmIF9fY3BsdXNwbHVzCisjZGVmaW5l IHJzZXFfdW5xdWFsX3NjYWxhcl90eXBlb2YoeCkJCQkJCVwKKwlzdGQ6OnJlbW92ZV9jdjxz dGQ6OnJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoeCk+Ojp0eXBlPjo6dHlwZQorI2Vsc2UK KyNkZWZpbmUgcnNlcV9zY2FsYXJfdHlwZV90b19leHByKHR5cGUpCQkJCQlcCisJdW5zaWdu ZWQgdHlwZTogKHVuc2lnbmVkIHR5cGUpMCwJCQkJXAorCXNpZ25lZCB0eXBlOiAoc2lnbmVk IHR5cGUpMAorCisvKgorICogVXNlIEMxMSBfR2VuZXJpYyB0byBleHByZXNzIHVucXVhbGlm aWVkIHR5cGUgZnJvbSBleHByZXNzaW9uLiBUaGlzIHJlbW92ZXMKKyAqIHZvbGF0aWxlIHF1 YWxpZmllciBmcm9tIGV4cHJlc3Npb24gdHlwZS4KKyAqLworI2RlZmluZSByc2VxX3VucXVh bF9zY2FsYXJfdHlwZW9mKHgpCQkJCQlcCisJX190eXBlb2ZfXygJCQkJCQkJXAorCQlfR2Vu ZXJpYygoeCksCQkJCQkJXAorCQkJY2hhcjogKGNoYXIpMCwJCQkJCVwKKwkJCXJzZXFfc2Nh bGFyX3R5cGVfdG9fZXhwcihjaGFyKSwJCQlcCisJCQlyc2VxX3NjYWxhcl90eXBlX3RvX2V4 cHIoc2hvcnQpLAkJXAorCQkJcnNlcV9zY2FsYXJfdHlwZV90b19leHByKGludCksCQkJXAor CQkJcnNlcV9zY2FsYXJfdHlwZV90b19leHByKGxvbmcpLAkJCVwKKwkJCXJzZXFfc2NhbGFy X3R5cGVfdG9fZXhwcihsb25nIGxvbmcpLAkJXAorCQkJZGVmYXVsdDogKHgpCQkJCQlcCisJ CSkJCQkJCQkJXAorCSkKKyNlbmRpZgorCiAjZW5kaWYgIC8qIFJTRVFfQ09NUElMRVJfSF8g Ki8KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvcnNlcS1hcm0u aCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvcnNlcS1hcm0uaAppbmRleCA4NDE0 ZmMzZWFjMTUuLmQ4ODdiM2JiZTI1NyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxm dGVzdHMvcnNlcS9yc2VxLWFybS5oCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jz ZXEvcnNlcS1hcm0uaApAQCAtNjYsNyArNjYsNyBAQAogCiAjZGVmaW5lIHJzZXFfc21wX2xv YWRfYWNxdWlyZShwKQkJCQkJXAogX19leHRlbnNpb25fXyAoewkJCQkJCQlcCi0JX190eXBl b2YoKnApIF9fX19wMSA9IFJTRVFfUkVBRF9PTkNFKCpwKTsJCQlcCisJcnNlcV91bnF1YWxf c2NhbGFyX3R5cGVvZigqKHApKSBfX19fcDEgPSBSU0VRX1JFQURfT05DRSgqKHApKTsJXAog CXJzZXFfc21wX21iKCk7CQkJCQkJCVwKIAlfX19fcDE7CQkJCQkJCQlcCiB9KQpAQCAtNzYs NyArNzYsNyBAQCBfX2V4dGVuc2lvbl9fICh7CQkJCQkJCVwKICNkZWZpbmUgcnNlcV9zbXBf c3RvcmVfcmVsZWFzZShwLCB2KQkJCQkJXAogZG8gewkJCQkJCQkJCVwKIAlyc2VxX3NtcF9t YigpOwkJCQkJCQlcCi0JUlNFUV9XUklURV9PTkNFKCpwLCB2KTsJCQkJCQlcCisJUlNFUV9X UklURV9PTkNFKCoocCksIHYpOwkJCQkJXAogfSB3aGlsZSAoMCkKIAogI2RlZmluZSBfX1JT RVFfQVNNX0RFRklORV9UQUJMRShsYWJlbCwgdmVyc2lvbiwgZmxhZ3MsIHN0YXJ0X2lwLAlc CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yc2VxL3JzZXEtYXJtNjQu aCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvcnNlcS1hcm02NC5oCmluZGV4IDg1 YjkwOTc3ZTdlNi4uMjFlMTYyNmE3MjM1IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy9yc2VxL3JzZXEtYXJtNjQuaAorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0 cy9yc2VxL3JzZXEtYXJtNjQuaApAQCAtMjcsNTkgKzI3LDYxIEBACiAKICNkZWZpbmUgcnNl cV9zbXBfbG9hZF9hY3F1aXJlKHApCQkJCQkJXAogX19leHRlbnNpb25fXyAoewkJCQkJCQkJ XAotCV9fdHlwZW9mKCpwKSBfX19fcDE7CQkJCQkJCVwKLQlzd2l0Y2ggKHNpemVvZigqcCkp IHsJCQkJCQkJXAorCXVuaW9uIHsgcnNlcV91bnF1YWxfc2NhbGFyX3R5cGVvZigqKHApKSBf X3ZhbDsgY2hhciBfX2Nbc2l6ZW9mKCoocCkpXTsgfSBfX3U7IFwKKwlzd2l0Y2ggKHNpemVv ZigqKHApKSkgewkJCQkJCQlcCiAJY2FzZSAxOgkJCQkJCQkJCVwKLQkJYXNtIHZvbGF0aWxl ICgibGRhcmIgJXcwLCAlMSIJCQkJCVwKLQkJCTogIj1yIiAoKihfX3U4ICopcCkJCQkJCVwK LQkJCTogIlEiICgqcCkgOiAibWVtb3J5Iik7CQkJCQlcCisJCV9fYXNtX18gX192b2xhdGls ZV9fICgibGRhcmIgJXcwLCAlMSIJCQkJXAorCQkJOiAiPXIiICgqKF9fdTggKilfX3UuX19j KQkJCQlcCisJCQk6ICJRIiAoKihwKSkgOiAibWVtb3J5Iik7CQkJCVwKIAkJYnJlYWs7CQkJ CQkJCQlcCiAJY2FzZSAyOgkJCQkJCQkJCVwKLQkJYXNtIHZvbGF0aWxlICgibGRhcmggJXcw LCAlMSIJCQkJCVwKLQkJCTogIj1yIiAoKihfX3UxNiAqKXApCQkJCQlcCi0JCQk6ICJRIiAo KnApIDogIm1lbW9yeSIpOwkJCQkJXAorCQlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImxkYXJo ICV3MCwgJTEiCQkJCVwKKwkJCTogIj1yIiAoKihfX3UxNiAqKV9fdS5fX2MpCQkJCVwKKwkJ CTogIlEiICgqKHApKSA6ICJtZW1vcnkiKTsJCQkJXAogCQlicmVhazsJCQkJCQkJCVwKIAlj YXNlIDQ6CQkJCQkJCQkJXAotCQlhc20gdm9sYXRpbGUgKCJsZGFyICV3MCwgJTEiCQkJCQlc Ci0JCQk6ICI9ciIgKCooX191MzIgKilwKQkJCQkJXAotCQkJOiAiUSIgKCpwKSA6ICJtZW1v cnkiKTsJCQkJCVwKKwkJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJsZGFyICV3MCwgJTEiCQkJ CVwKKwkJCTogIj1yIiAoKihfX3UzMiAqKV9fdS5fX2MpCQkJCVwKKwkJCTogIlEiICgqKHAp KSA6ICJtZW1vcnkiKTsJCQkJXAogCQlicmVhazsJCQkJCQkJCVwKIAljYXNlIDg6CQkJCQkJ CQkJXAotCQlhc20gdm9sYXRpbGUgKCJsZGFyICUwLCAlMSIJCQkJCVwKLQkJCTogIj1yIiAo KihfX3U2NCAqKXApCQkJCQlcCi0JCQk6ICJRIiAoKnApIDogIm1lbW9yeSIpOwkJCQkJXAor CQlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImxkYXIgJTAsICUxIgkJCQlcCisJCQk6ICI9ciIg KCooX191NjQgKilfX3UuX19jKQkJCQlcCisJCQk6ICJRIiAoKihwKSkgOiAibWVtb3J5Iik7 CQkJCVwKIAkJYnJlYWs7CQkJCQkJCQlcCiAJfQkJCQkJCQkJCVwKLQlfX19fcDE7CQkJCQkJ CQkJXAorCShyc2VxX3VucXVhbF9zY2FsYXJfdHlwZW9mKCoocCkpKV9fdS5fX3ZhbDsJCQkJ XAogfSkKIAogI2RlZmluZSByc2VxX3NtcF9hY3F1aXJlX19hZnRlcl9jdHJsX2RlcCgpCXJz ZXFfc21wX3JtYigpCiAKICNkZWZpbmUgcnNlcV9zbXBfc3RvcmVfcmVsZWFzZShwLCB2KQkJ CQkJCVwKIGRvIHsJCQkJCQkJCQkJXAotCXN3aXRjaCAoc2l6ZW9mKCpwKSkgewkJCQkJCQlc CisJdW5pb24geyByc2VxX3VucXVhbF9zY2FsYXJfdHlwZW9mKCoocCkpIF9fdmFsOyBjaGFy IF9fY1tzaXplb2YoKihwKSldOyB9IF9fdSA9IFwKKwkJeyAuX192YWwgPSAocnNlcV91bnF1 YWxfc2NhbGFyX3R5cGVvZigqKHApKSkgKHYpIH07CQlcCisJc3dpdGNoIChzaXplb2YoKihw KSkpIHsJCQkJCQkJXAogCWNhc2UgMToJCQkJCQkJCQlcCi0JCWFzbSB2b2xhdGlsZSAoInN0 bHJiICV3MSwgJTAiCQkJCQlcCi0JCQkJOiAiPVEiICgqcCkJCQkJCVwKLQkJCQk6ICJyIiAo KF9fdTgpdikJCQkJCVwKKwkJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzdGxyYiAldzEsICUw IgkJCQlcCisJCQkJOiAiPVEiICgqKHApKQkJCQkJXAorCQkJCTogInIiICgqKF9fdTggKilf X3UuX19jKQkJCVwKIAkJCQk6ICJtZW1vcnkiKTsJCQkJCVwKIAkJYnJlYWs7CQkJCQkJCQlc CiAJY2FzZSAyOgkJCQkJCQkJCVwKLQkJYXNtIHZvbGF0aWxlICgic3RscmggJXcxLCAlMCIJ CQkJCVwKLQkJCQk6ICI9USIgKCpwKQkJCQkJXAotCQkJCTogInIiICgoX191MTYpdikJCQkJ XAorCQlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN0bHJoICV3MSwgJTAiCQkJCVwKKwkJCQk6 ICI9USIgKCoocCkpCQkJCQlcCisJCQkJOiAiciIgKCooX191MTYgKilfX3UuX19jKQkJCVwK IAkJCQk6ICJtZW1vcnkiKTsJCQkJCVwKIAkJYnJlYWs7CQkJCQkJCQlcCiAJY2FzZSA0OgkJ CQkJCQkJCVwKLQkJYXNtIHZvbGF0aWxlICgic3RsciAldzEsICUwIgkJCQkJXAotCQkJCTog Ij1RIiAoKnApCQkJCQlcCi0JCQkJOiAiciIgKChfX3UzMil2KQkJCQlcCisJCV9fYXNtX18g X192b2xhdGlsZV9fICgic3RsciAldzEsICUwIgkJCQlcCisJCQkJOiAiPVEiICgqKHApKQkJ CQkJXAorCQkJCTogInIiICgqKF9fdTMyICopX191Ll9fYykJCQlcCiAJCQkJOiAibWVtb3J5 Iik7CQkJCQlcCiAJCWJyZWFrOwkJCQkJCQkJXAogCWNhc2UgODoJCQkJCQkJCQlcCi0JCWFz bSB2b2xhdGlsZSAoInN0bHIgJTEsICUwIgkJCQkJXAotCQkJCTogIj1RIiAoKnApCQkJCQlc Ci0JCQkJOiAiciIgKChfX3U2NCl2KQkJCQlcCisJCV9fYXNtX18gX192b2xhdGlsZV9fICgi c3RsciAlMSwgJTAiCQkJCVwKKwkJCQk6ICI9USIgKCoocCkpCQkJCQlcCisJCQkJOiAiciIg KCooX191NjQgKilfX3UuX19jKQkJCVwKIAkJCQk6ICJtZW1vcnkiKTsJCQkJCVwKIAkJYnJl YWs7CQkJCQkJCQlcCiAJfQkJCQkJCQkJCVwKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcv c2VsZnRlc3RzL3JzZXEvcnNlcS1taXBzLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9y c2VxL3JzZXEtbWlwcy5oCmluZGV4IDUwYjk1MGNmOTU4NS4uNDJlZjhlOTQ2NjkzIDEwMDY0 NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yc2VxL3JzZXEtbWlwcy5oCisrKyBi L3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvcnNlcS1taXBzLmgKQEAgLTQ1LDcgKzQ1 LDcgQEAKIAogI2RlZmluZSByc2VxX3NtcF9sb2FkX2FjcXVpcmUocCkJCQkJCVwKIF9fZXh0 ZW5zaW9uX18gKHsJCQkJCQkJXAotCV9fdHlwZW9mKCpwKSBfX19fcDEgPSBSU0VRX1JFQURf T05DRSgqcCk7CQkJXAorCXJzZXFfdW5xdWFsX3NjYWxhcl90eXBlb2YoKihwKSkgX19fX3Ax ID0gUlNFUV9SRUFEX09OQ0UoKihwKSk7CVwKIAlyc2VxX3NtcF9tYigpOwkJCQkJCQlcCiAJ X19fX3AxOwkJCQkJCQkJXAogfSkKQEAgLTU1LDcgKzU1LDcgQEAgX19leHRlbnNpb25fXyAo ewkJCQkJCQlcCiAjZGVmaW5lIHJzZXFfc21wX3N0b3JlX3JlbGVhc2UocCwgdikJCQkJCVwK IGRvIHsJCQkJCQkJCQlcCiAJcnNlcV9zbXBfbWIoKTsJCQkJCQkJXAotCVJTRVFfV1JJVEVf T05DRSgqcCwgdik7CQkJCQkJXAorCVJTRVFfV1JJVEVfT05DRSgqKHApLCB2KTsJCQkJCVwK IH0gd2hpbGUgKDApCiAKICNpZiBfTUlQU19TWkxPTkcgPT0gNjQKZGlmZiAtLWdpdCBhL3Rv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvcnNlcS1wcGMuaCBiL3Rvb2xzL3Rlc3Rpbmcv c2VsZnRlc3RzL3JzZXEvcnNlcS1wcGMuaAppbmRleCBkYzkxOTBmYWNlZTkuLjU3YjE2MDU5 NzE4OSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcnNlcS9yc2VxLXBw Yy5oCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvcnNlcS1wcGMuaApAQCAt MjMsNyArMjMsNyBAQAogCiAjZGVmaW5lIHJzZXFfc21wX2xvYWRfYWNxdWlyZShwKQkJCQkJ XAogX19leHRlbnNpb25fXyAoewkJCQkJCQlcCi0JX190eXBlb2YoKnApIF9fX19wMSA9IFJT RVFfUkVBRF9PTkNFKCpwKTsJCQlcCisJcnNlcV91bnF1YWxfc2NhbGFyX3R5cGVvZigqKHAp KSBfX19fcDEgPSBSU0VRX1JFQURfT05DRSgqKHApKTsJXAogCXJzZXFfc21wX2x3c3luYygp OwkJCQkJCVwKIAlfX19fcDE7CQkJCQkJCQlcCiB9KQpAQCAtMzMsNyArMzMsNyBAQCBfX2V4 dGVuc2lvbl9fICh7CQkJCQkJCVwKICNkZWZpbmUgcnNlcV9zbXBfc3RvcmVfcmVsZWFzZShw LCB2KQkJCQkJXAogZG8gewkJCQkJCQkJCVwKIAlyc2VxX3NtcF9sd3N5bmMoKTsJCQkJCQlc Ci0JUlNFUV9XUklURV9PTkNFKCpwLCB2KTsJCQkJCQlcCisJUlNFUV9XUklURV9PTkNFKCoo cCksIHYpOwkJCQkJXAogfSB3aGlsZSAoMCkKIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rl c3Rpbmcvc2VsZnRlc3RzL3JzZXEvcnNlcS1yaXNjdi5oIGIvdG9vbHMvdGVzdGluZy9zZWxm dGVzdHMvcnNlcS9yc2VxLXJpc2N2LmgKaW5kZXggMTc5MzJhNzllMDY2Li4zN2U1OThkMGEz NjUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvcnNlcS1yaXNj di5oCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvcnNlcS1yaXNjdi5oCkBA IC0zNiw4ICszNiw4IEBACiAKICNkZWZpbmUgcnNlcV9zbXBfbG9hZF9hY3F1aXJlKHApCQkJ CQlcCiBfX2V4dGVuc2lvbl9fICh7CQkJCQkJCVwKLQlfX3R5cGVvZigqKHApKSBfX19fcDEg PSBSU0VRX1JFQURfT05DRSgqKHApKTsJCQlcCi0JUklTQ1ZfRkVOQ0UociwgcncpCQkJCQkJ XAorCXJzZXFfdW5xdWFsX3NjYWxhcl90eXBlb2YoKihwKSkgX19fX3AxID0gUlNFUV9SRUFE X09OQ0UoKihwKSk7CVwKKwlSSVNDVl9GRU5DRShyLCBydyk7CQkJCQkJXAogCV9fX19wMTsJ CQkJCQkJCVwKIH0pCiAKQEAgLTQ2LDcgKzQ2LDcgQEAgX19leHRlbnNpb25fXyAoewkJCQkJ CQlcCiAjZGVmaW5lIHJzZXFfc21wX3N0b3JlX3JlbGVhc2UocCwgdikJCQkJCVwKIGRvIHsJ CQkJCQkJCQlcCiAJUklTQ1ZfRkVOQ0UocncsIHcpOwkJCQkJCVwKLQlSU0VRX1dSSVRFX09O Q0UoKihwKSwgdik7CQkJCQkJXAorCVJTRVFfV1JJVEVfT05DRSgqKHApLCB2KTsJCQkJCVwK IH0gd2hpbGUgKDApCiAKICNkZWZpbmUgX19SU0VRX0FTTV9ERUZJTkVfVEFCTEUobGFiZWws IHZlcnNpb24sIGZsYWdzLCBzdGFydF9pcCwJXApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvcnNlcS9yc2VxLXMzOTAuaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L3JzZXEvcnNlcS1zMzkwLmgKaW5kZXggNDZjOTI1OThhY2M3Li4zM2JhYWE5Zjk5OTcgMTAw NjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvcnNlcS1zMzkwLmgKKysr IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcnNlcS9yc2VxLXMzOTAuaApAQCAtMTUsNyAr MTUsNyBAQAogCiAjZGVmaW5lIHJzZXFfc21wX2xvYWRfYWNxdWlyZShwKQkJCQkJXAogX19l eHRlbnNpb25fXyAoewkJCQkJCQlcCi0JX190eXBlb2YoKnApIF9fX19wMSA9IFJTRVFfUkVB RF9PTkNFKCpwKTsJCQlcCisJcnNlcV91bnF1YWxfc2NhbGFyX3R5cGVvZigqKHApKSBfX19f cDEgPSBSU0VRX1JFQURfT05DRSgqKHApKTsJXAogCXJzZXFfYmFycmllcigpOwkJCQkJCQlc CiAJX19fX3AxOwkJCQkJCQkJXAogfSkKQEAgLTI1LDcgKzI1LDcgQEAgX19leHRlbnNpb25f XyAoewkJCQkJCQlcCiAjZGVmaW5lIHJzZXFfc21wX3N0b3JlX3JlbGVhc2UocCwgdikJCQkJ CVwKIGRvIHsJCQkJCQkJCQlcCiAJcnNlcV9iYXJyaWVyKCk7CQkJCQkJCVwKLQlSU0VRX1dS SVRFX09OQ0UoKnAsIHYpOwkJCQkJCVwKKwlSU0VRX1dSSVRFX09OQ0UoKihwKSwgdik7CQkJ CQlcCiB9IHdoaWxlICgwKQogCiAjaWZkZWYgX19zMzkweF9fCmRpZmYgLS1naXQgYS90b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9yc2VxL3JzZXEteDg2LmggYi90b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy9yc2VxL3JzZXEteDg2LmgKaW5kZXggZmI2NWVmNTRiMGZiLi5hMmFhNDI4YmEx NTEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvcnNlcS14ODYu aAorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yc2VxL3JzZXEteDg2LmgKQEAgLTQy LDcgKzQyLDcgQEAKIAogI2RlZmluZSByc2VxX3NtcF9sb2FkX2FjcXVpcmUocCkJCQkJCVwK IF9fZXh0ZW5zaW9uX18gKHsJCQkJCQkJXAotCV9fdHlwZW9mKCpwKSBfX19fcDEgPSBSU0VR X1JFQURfT05DRSgqcCk7CQkJXAorCXJzZXFfdW5xdWFsX3NjYWxhcl90eXBlb2YoKihwKSkg X19fX3AxID0gUlNFUV9SRUFEX09OQ0UoKihwKSk7CVwKIAlyc2VxX2JhcnJpZXIoKTsJCQkJ CQkJXAogCV9fX19wMTsJCQkJCQkJCVwKIH0pCkBAIC01Miw3ICs1Miw3IEBAIF9fZXh0ZW5z aW9uX18gKHsJCQkJCQkJXAogI2RlZmluZSByc2VxX3NtcF9zdG9yZV9yZWxlYXNlKHAsIHYp CQkJCQlcCiBkbyB7CQkJCQkJCQkJXAogCXJzZXFfYmFycmllcigpOwkJCQkJCQlcCi0JUlNF UV9XUklURV9PTkNFKCpwLCB2KTsJCQkJCQlcCisJUlNFUV9XUklURV9PTkNFKCoocCksIHYp OwkJCQkJXAogfSB3aGlsZSAoMCkKIAogI2RlZmluZSBfX1JTRVFfQVNNX0RFRklORV9UQUJM RShsYWJlbCwgdmVyc2lvbiwgZmxhZ3MsCQkJXApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvdXNlcl9ldmVudHMvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0 ZXN0cy91c2VyX2V2ZW50cy9NYWtlZmlsZQppbmRleCA5ZTk1YmQ0MWIwYjQuLjEwZmNkMDA2 NjIwMyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdXNlcl9ldmVudHMv TWFrZWZpbGUKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdXNlcl9ldmVudHMvTWFr ZWZpbGUKQEAgLTIsMTQgKzIsNiBAQAogQ0ZMQUdTICs9IC1XbCwtbm8tYXMtbmVlZGVkIC1X YWxsICQoS0hEUl9JTkNMVURFUykKIExETElCUyArPSAtbHJ0IC1scHRocmVhZCAtbG0KIAot IyBOb3RlOgotIyBUaGlzIHRlc3QgZGVwZW5kcyBvbiA8bGludXgvdXNlcl9ldmVudHMuaD4g ZXhwb3J0ZWQgaW4gdWFwaQotIyBUaGUgZm9sbG93aW5nIGNvbW1pdCByZW1vdmVkIHVzZXJf ZXZlbnRzLmggb3V0IG9mIHVhcGk6Ci0jIGNvbW1pdCA1Y2ZmZjU2OWNhYjhiZjU0NGJhYjYy YzkxMWM1ZDZlZmQ1YWY1ZTA1Ci0jIHRyYWNpbmc6IE1vdmUgdXNlcl9ldmVudHMuaCB0ZW1w b3JhcmlseSBvdXQgb2YgaW5jbHVkZS91YXBpCi0jIFRoaXMgdGVzdCB3aWxsIG5vdCBjb21w aWxlIHVudGlsIHVzZXJfZXZlbnRzLmggaXMgYWRkZWQKLSMgYmFjayB0byB1YXBpLgotCiBU RVNUX0dFTl9QUk9HUyA9IGZ0cmFjZV90ZXN0IGR5bl90ZXN0IHBlcmZfdGVzdCBhYmlfdGVz dAogCiBURVNUX0ZJTEVTIDo9IHNldHRpbmdzCg== --------------qn6J8CJ9nACdp695Bf9d4qLh--