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 X-Spam-Level: X-Spam-Status: No, score=-5.7 required=3.0 tests=FROM_LOCAL_HEX, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 694A4C10F13 for ; Tue, 16 Apr 2019 21:53:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1E24020821 for ; Tue, 16 Apr 2019 21:53:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729498AbfDPVxC (ORCPT ); Tue, 16 Apr 2019 17:53:02 -0400 Received: from mail-io1-f70.google.com ([209.85.166.70]:36684 "EHLO mail-io1-f70.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727845AbfDPVxB (ORCPT ); Tue, 16 Apr 2019 17:53:01 -0400 Received: by mail-io1-f70.google.com with SMTP id a7so18013867ioq.3 for ; Tue, 16 Apr 2019 14:53:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:date:in-reply-to:message-id:subject :from:to; bh=Rl5YAuXxdXE8dlgSKJmWdL6YL/Z87eEN8fFR1y/Y0Z8=; b=jDExt+gFfPk3HgyGBBOqFuDUkNfP7i5FD4ADuJ53bf2I4GsEJ6Iw6r3mLzbuoVY3iD j3sxROoSO5RKHUf1LhwRWZEsSmB8sOzyH12EkSBDoSlR+Bt/gGuEYLCoVZ38NUNZqk/F wyvXZdrz5u/BMVroaku6HdEuXWVL+PqFIR1+PzQDsqlmYkdoV3c8cGWALhwmeKaJrLpj vopbwtuCD0KUyqhgB6Jd2BTGVC9QPtEB7U4m1VTjCoRQ43Mh+PFs1EC6Q+hV13Mt2AkT 9o0/+J895bd2u9FSMfyYPLB2R9qtb8FUWqauQwf3RCEv550nDx/SBILw34gP6try8X17 yEkg== X-Gm-Message-State: APjAAAUnSYTQMh+q7U4FtYiXxcWHrl7V5C872SonbUXFA1Nn29quvVTm wnvOccRJ8C7ct2I0AVVYgfCelo+PQFxUc+PyAb0HbZ0Bu/fn X-Google-Smtp-Source: APXvYqxKAdRcwuIA9a3u3/y3LcYpI9x90bUjbhk2EXunt+vgHD0f9tJvqP5qXRN0+2SfqIdwPfE7EQk0jxqWdKke31/lVGLfnEQN MIME-Version: 1.0 X-Received: by 2002:a6b:bc06:: with SMTP id m6mr1132864iof.18.1555451580638; Tue, 16 Apr 2019 14:53:00 -0700 (PDT) Date: Tue, 16 Apr 2019 14:53:00 -0700 In-Reply-To: X-Google-Appengine-App-Id: s~syzkaller X-Google-Appengine-App-Id-Alias: syzkaller Message-ID: <000000000000edf1630586acca2b@google.com> Subject: Re: INFO: task hung in usb_kill_urb From: syzbot To: andreyknvl@google.com, gregkh@linuxfoundation.org, gustavo@embeddedor.com, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, stern@rowland.harvard.edu, syzkaller-bugs@googlegroups.com Content-Type: text/plain; charset="UTF-8"; format=flowed; delsp=yes Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, syzbot has tested the proposed patch but the reproducer still triggered crash: INFO: task hung in usb_kill_urb usb-fuzzer-gadget dummy_udc.0: failed to start USB fuzzer: -22 dummy_hcd dummy_hcd.0: Unsupported driver max speed 0 usb-fuzzer-gadget dummy_udc.0: failed to start USB fuzzer: -22 dummy_hcd dummy_hcd.0: Unsupported driver max speed 0 usb-fuzzer-gadget dummy_udc.0: failed to start USB fuzzer: -22 INFO: task kworker/1:1:21 blocked for more than 143 seconds. Not tainted 5.1.0-rc4-g9a33b36-dirty #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/1:1 D26512 21 2 0x80000000 Workqueue: usb_hub_wq hub_event Call Trace: schedule+0x8f/0x180 kernel/sched/core.c:3562 usb_kill_urb drivers/usb/core/urb.c:695 [inline] usb_kill_urb+0x22a/0x2c0 drivers/usb/core/urb.c:687 dummy_hcd dummy_hcd.0: Unsupported driver max speed 0 usb-fuzzer-gadget dummy_udc.0: failed to start USB fuzzer: -22 usb_start_wait_urb+0x257/0x4d0 drivers/usb/core/message.c:63 usb_internal_control_msg drivers/usb/core/message.c:101 [inline] usb_control_msg+0x321/0x4a0 drivers/usb/core/message.c:152 hub_port_init+0x81d/0x2d30 drivers/usb/core/hub.c:4655 hub_port_connect drivers/usb/core/hub.c:5021 [inline] hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] port_event drivers/usb/core/hub.c:5350 [inline] hub_event+0x11b8/0x3b00 drivers/usb/core/hub.c:5432 process_one_work+0x90f/0x1580 kernel/workqueue.c:2269 worker_thread+0x9b/0xe20 kernel/workqueue.c:2415 kthread+0x313/0x420 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 INFO: task kworker/1:2:533 blocked for more than 143 seconds. Not tainted 5.1.0-rc4-g9a33b36-dirty #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/1:2 D25760 533 2 0x80000000 Workqueue: usb_hub_wq hub_event Call Trace: schedule+0x8f/0x180 kernel/sched/core.c:3562 usb_kill_urb drivers/usb/core/urb.c:695 [inline] usb_kill_urb+0x22a/0x2c0 drivers/usb/core/urb.c:687 usb_start_wait_urb+0x257/0x4d0 drivers/usb/core/message.c:63 usb_internal_control_msg drivers/usb/core/message.c:101 [inline] usb_control_msg+0x321/0x4a0 drivers/usb/core/message.c:152 hub_port_init+0x81d/0x2d30 drivers/usb/core/hub.c:4655 dummy_hcd dummy_hcd.0: Unsupported driver max speed 0 hub_port_connect drivers/usb/core/hub.c:5021 [inline] hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] port_event drivers/usb/core/hub.c:5350 [inline] hub_event+0x11b8/0x3b00 drivers/usb/core/hub.c:5432 usb-fuzzer-gadget dummy_udc.0: failed to start USB fuzzer: -22 process_one_work+0x90f/0x1580 kernel/workqueue.c:2269 worker_thread+0x9b/0xe20 kernel/workqueue.c:2415 kthread+0x313/0x420 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 INFO: task kworker/1:3:5711 blocked for more than 143 seconds. Not tainted 5.1.0-rc4-g9a33b36-dirty #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/1:3 D26656 5711 2 0x80000000 Workqueue: usb_hub_wq hub_event Call Trace: schedule+0x8f/0x180 kernel/sched/core.c:3562 usb_kill_urb drivers/usb/core/urb.c:695 [inline] usb_kill_urb+0x22a/0x2c0 drivers/usb/core/urb.c:687 usb_start_wait_urb+0x257/0x4d0 drivers/usb/core/message.c:63 usb_internal_control_msg drivers/usb/core/message.c:101 [inline] usb_control_msg+0x321/0x4a0 drivers/usb/core/message.c:152 hub_port_init+0x81d/0x2d30 drivers/usb/core/hub.c:4655 hub_port_connect drivers/usb/core/hub.c:5021 [inline] hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] port_event drivers/usb/core/hub.c:5350 [inline] hub_event+0x11b8/0x3b00 drivers/usb/core/hub.c:5432 process_one_work+0x90f/0x1580 kernel/workqueue.c:2269 worker_thread+0x9b/0xe20 kernel/workqueue.c:2415 kthread+0x313/0x420 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 INFO: task kworker/1:4:5815 blocked for more than 143 seconds. Not tainted 5.1.0-rc4-g9a33b36-dirty #1 dummy_hcd dummy_hcd.0: Unsupported driver max speed 0 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/1:4 D27416 5815 2 0x80000000 Workqueue: usb_hub_wq hub_event usb-fuzzer-gadget dummy_udc.0: failed to start USB fuzzer: -22 Call Trace: schedule+0x8f/0x180 kernel/sched/core.c:3562 usb_kill_urb drivers/usb/core/urb.c:695 [inline] usb_kill_urb+0x22a/0x2c0 drivers/usb/core/urb.c:687 usb_start_wait_urb+0x257/0x4d0 drivers/usb/core/message.c:63 usb_internal_control_msg drivers/usb/core/message.c:101 [inline] usb_control_msg+0x321/0x4a0 drivers/usb/core/message.c:152 hub_port_init+0x81d/0x2d30 drivers/usb/core/hub.c:4655 hub_port_connect drivers/usb/core/hub.c:5021 [inline] hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] port_event drivers/usb/core/hub.c:5350 [inline] hub_event+0x11b8/0x3b00 drivers/usb/core/hub.c:5432 process_one_work+0x90f/0x1580 kernel/workqueue.c:2269 worker_thread+0x9b/0xe20 kernel/workqueue.c:2415 kthread+0x313/0x420 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 INFO: task kworker/1:5:5854 blocked for more than 144 seconds. Not tainted 5.1.0-rc4-g9a33b36-dirty #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/1:5 D27008 5854 2 0x80000000 Workqueue: usb_hub_wq hub_event Call Trace: schedule+0x8f/0x180 kernel/sched/core.c:3562 usb_kill_urb drivers/usb/core/urb.c:695 [inline] usb_kill_urb+0x22a/0x2c0 drivers/usb/core/urb.c:687 dummy_hcd dummy_hcd.0: Unsupported driver max speed 0 usb_start_wait_urb+0x257/0x4d0 drivers/usb/core/message.c:63 usb-fuzzer-gadget dummy_udc.0: failed to start USB fuzzer: -22 usb_internal_control_msg drivers/usb/core/message.c:101 [inline] usb_control_msg+0x321/0x4a0 drivers/usb/core/message.c:152 hub_port_init+0x81d/0x2d30 drivers/usb/core/hub.c:4655 hub_port_connect drivers/usb/core/hub.c:5021 [inline] hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] port_event drivers/usb/core/hub.c:5350 [inline] hub_event+0x11b8/0x3b00 drivers/usb/core/hub.c:5432 process_one_work+0x90f/0x1580 kernel/workqueue.c:2269 worker_thread+0x9b/0xe20 kernel/workqueue.c:2415 kthread+0x313/0x420 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 INFO: task kworker/1:6:5953 blocked for more than 144 seconds. Not tainted 5.1.0-rc4-g9a33b36-dirty #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/1:6 D28144 5953 2 0x80000000 Workqueue: usb_hub_wq hub_event Call Trace: schedule+0x8f/0x180 kernel/sched/core.c:3562 usb_kill_urb drivers/usb/core/urb.c:695 [inline] usb_kill_urb+0x22a/0x2c0 drivers/usb/core/urb.c:687 usb_start_wait_urb+0x257/0x4d0 drivers/usb/core/message.c:63 usb_internal_control_msg drivers/usb/core/message.c:101 [inline] usb_control_msg+0x321/0x4a0 drivers/usb/core/message.c:152 hub_port_init+0x81d/0x2d30 drivers/usb/core/hub.c:4655 hub_port_connect drivers/usb/core/hub.c:5021 [inline] hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] port_event drivers/usb/core/hub.c:5350 [inline] hub_event+0x11b8/0x3b00 drivers/usb/core/hub.c:5432 dummy_hcd dummy_hcd.0: Unsupported driver max speed 0 usb-fuzzer-gadget dummy_udc.0: failed to start USB fuzzer: -22 process_one_work+0x90f/0x1580 kernel/workqueue.c:2269 worker_thread+0x9b/0xe20 kernel/workqueue.c:2415 kthread+0x313/0x420 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 Showing all locks held in the system: 5 locks held by kworker/1:1/21: #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:855 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:40 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: set_work_data kernel/workqueue.c:619 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:646 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: process_one_work+0x81f/0x1580 kernel/workqueue.c:2240 #1: 0000000066a57f62 ((work_completion)(&hub->events)){+.+.}, at: process_one_work+0x853/0x1580 kernel/workqueue.c:2244 #2: 000000008061858c (&dev->mutex){....}, at: device_lock include/linux/device.h:1207 [inline] #2: 000000008061858c (&dev->mutex){....}, at: hub_event+0x18a/0x3b00 drivers/usb/core/hub.c:5378 #3: 00000000e9c2b745 (&port_dev->status_lock){+.+.}, at: usb_lock_port drivers/usb/core/hub.c:2994 [inline] #3: 00000000e9c2b745 (&port_dev->status_lock){+.+.}, at: hub_port_connect drivers/usb/core/hub.c:5020 [inline] #3: 00000000e9c2b745 (&port_dev->status_lock){+.+.}, at: hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] #3: 00000000e9c2b745 (&port_dev->status_lock){+.+.}, at: port_event drivers/usb/core/hub.c:5350 [inline] #3: 00000000e9c2b745 (&port_dev->status_lock){+.+.}, at: hub_event+0x11a3/0x3b00 drivers/usb/core/hub.c:5432 #4: 0000000074a9c1da (hcd->address0_mutex){+.+.}, at: hub_port_init+0x1bb/0x2d30 drivers/usb/core/hub.c:4529 1 lock held by khungtaskd/23: #0: 000000009a7c2fe9 (rcu_read_lock){....}, at: debug_show_all_locks+0x53/0x269 kernel/locking/lockdep.c:5059 5 locks held by kworker/1:2/533: #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:855 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:40 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: set_work_data kernel/workqueue.c:619 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:646 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: process_one_work+0x81f/0x1580 kernel/workqueue.c:2240 #1: 0000000086e8eaf1 ((work_completion)(&hub->events)){+.+.}, at: process_one_work+0x853/0x1580 kernel/workqueue.c:2244 #2: 000000006469b3a5 (&dev->mutex){....}, at: device_lock include/linux/device.h:1207 [inline] #2: 000000006469b3a5 (&dev->mutex){....}, at: hub_event+0x18a/0x3b00 drivers/usb/core/hub.c:5378 #3: 000000007f0b56f7 (&port_dev->status_lock){+.+.}, at: usb_lock_port drivers/usb/core/hub.c:2994 [inline] #3: 000000007f0b56f7 (&port_dev->status_lock){+.+.}, at: hub_port_connect drivers/usb/core/hub.c:5020 [inline] #3: 000000007f0b56f7 (&port_dev->status_lock){+.+.}, at: hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] #3: 000000007f0b56f7 (&port_dev->status_lock){+.+.}, at: port_event drivers/usb/core/hub.c:5350 [inline] #3: 000000007f0b56f7 (&port_dev->status_lock){+.+.}, at: hub_event+0x11a3/0x3b00 drivers/usb/core/hub.c:5432 #4: 00000000f92a9577 (hcd->address0_mutex){+.+.}, at: hub_port_init+0x1bb/0x2d30 drivers/usb/core/hub.c:4529 1 lock held by rsyslogd/5452: #0: 0000000078f4a532 (&f->f_pos_lock){+.+.}, at: __fdget_pos+0xe8/0x100 fs/file.c:801 2 locks held by getty/5542: #0: 0000000023afba58 (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 00000000bc10d82a (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 2 locks held by getty/5543: #0: 00000000a6ab1d25 (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 00000000d5a44554 (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 dummy_hcd dummy_hcd.0: Unsupported driver max speed 0 2 locks held by getty/5544: usb-fuzzer-gadget dummy_udc.0: failed to start USB fuzzer: -22 #0: 0000000098fc4771 (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 0000000017060772 (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 2 locks held by getty/5545: #0: 000000005fca8b56 (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 000000005a5319f8 (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 2 locks held by getty/5546: #0: 00000000e590919f (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 000000004775329f (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 2 locks held by getty/5547: #0: 00000000179d4d0b (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 000000002922a30b (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 2 locks held by getty/5548: #0: 000000006c2e3908 (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 000000009cdeb0bf (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 5 locks held by kworker/1:3/5711: #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:855 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:40 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: set_work_data kernel/workqueue.c:619 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:646 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: process_one_work+0x81f/0x1580 kernel/workqueue.c:2240 #1: 000000008f65d948 ((work_completion)(&hub->events)){+.+.}, at: process_one_work+0x853/0x1580 kernel/workqueue.c:2244 #2: 00000000d16a6c1c (&dev->mutex){....}, at: device_lock include/linux/device.h:1207 [inline] #2: 00000000d16a6c1c (&dev->mutex){....}, at: hub_event+0x18a/0x3b00 drivers/usb/core/hub.c:5378 #3: 00000000df89ca19 (&port_dev->status_lock){+.+.}, at: usb_lock_port drivers/usb/core/hub.c:2994 [inline] #3: 00000000df89ca19 (&port_dev->status_lock){+.+.}, at: hub_port_connect drivers/usb/core/hub.c:5020 [inline] #3: 00000000df89ca19 (&port_dev->status_lock){+.+.}, at: hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] #3: 00000000df89ca19 (&port_dev->status_lock){+.+.}, at: port_event drivers/usb/core/hub.c:5350 [inline] #3: 00000000df89ca19 (&port_dev->status_lock){+.+.}, at: hub_event+0x11a3/0x3b00 drivers/usb/core/hub.c:5432 #4: 000000007284a231 (hcd->address0_mutex){+.+.}, at: hub_port_init+0x1bb/0x2d30 drivers/usb/core/hub.c:4529 5 locks held by kworker/1:4/5815: #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:855 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:40 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: set_work_data kernel/workqueue.c:619 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:646 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: process_one_work+0x81f/0x1580 kernel/workqueue.c:2240 #1: 00000000b6e140d2 ((work_completion)(&hub->events)){+.+.}, at: process_one_work+0x853/0x1580 kernel/workqueue.c:2244 #2: 0000000054730851 (&dev->mutex){....}, at: device_lock include/linux/device.h:1207 [inline] #2: 0000000054730851 (&dev->mutex){....}, at: hub_event+0x18a/0x3b00 drivers/usb/core/hub.c:5378 #3: 00000000e19c14b6 (&port_dev->status_lock){+.+.}, at: usb_lock_port drivers/usb/core/hub.c:2994 [inline] #3: 00000000e19c14b6 (&port_dev->status_lock){+.+.}, at: hub_port_connect drivers/usb/core/hub.c:5020 [inline] #3: 00000000e19c14b6 (&port_dev->status_lock){+.+.}, at: hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] #3: 00000000e19c14b6 (&port_dev->status_lock){+.+.}, at: port_event drivers/usb/core/hub.c:5350 [inline] #3: 00000000e19c14b6 (&port_dev->status_lock){+.+.}, at: hub_event+0x11a3/0x3b00 drivers/usb/core/hub.c:5432 #4: 000000001c7bddbf (hcd->address0_mutex){+.+.}, at: hub_port_init+0x1bb/0x2d30 drivers/usb/core/hub.c:4529 5 locks held by kworker/1:5/5854: #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:855 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:40 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: set_work_data kernel/workqueue.c:619 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:646 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: process_one_work+0x81f/0x1580 kernel/workqueue.c:2240 dummy_hcd dummy_hcd.0: Unsupported driver max speed 0 #1: 00000000357ce4fb ((work_completion)(&hub->events)){+.+.}, at: process_one_work+0x853/0x1580 kernel/workqueue.c:2244 #2: 000000009d868e2d (&dev->mutex){....}, at: device_lock include/linux/device.h:1207 [inline] #2: 000000009d868e2d (&dev->mutex){....}, at: hub_event+0x18a/0x3b00 drivers/usb/core/hub.c:5378 usb-fuzzer-gadget dummy_udc.0: failed to start USB fuzzer: -22 #3: 00000000938a6414 (&port_dev->status_lock){+.+.}, at: usb_lock_port drivers/usb/core/hub.c:2994 [inline] #3: 00000000938a6414 (&port_dev->status_lock){+.+.}, at: hub_port_connect drivers/usb/core/hub.c:5020 [inline] #3: 00000000938a6414 (&port_dev->status_lock){+.+.}, at: hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] #3: 00000000938a6414 (&port_dev->status_lock){+.+.}, at: port_event drivers/usb/core/hub.c:5350 [inline] #3: 00000000938a6414 (&port_dev->status_lock){+.+.}, at: hub_event+0x11a3/0x3b00 drivers/usb/core/hub.c:5432 #4: 0000000050760949 (hcd->address0_mutex){+.+.}, at: hub_port_init+0x1bb/0x2d30 drivers/usb/core/hub.c:4529 5 locks held by kworker/1:6/5953: #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:855 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:40 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: set_work_data kernel/workqueue.c:619 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:646 [inline] #0: 00000000b3ad1415 ((wq_completion)usb_hub_wq){+.+.}, at: process_one_work+0x81f/0x1580 kernel/workqueue.c:2240 #1: 00000000d3b00b82 ((work_completion)(&hub->events)){+.+.}, at: process_one_work+0x853/0x1580 kernel/workqueue.c:2244 #2: 000000008af22eae (&dev->mutex){....}, at: device_lock include/linux/device.h:1207 [inline] #2: 000000008af22eae (&dev->mutex){....}, at: hub_event+0x18a/0x3b00 drivers/usb/core/hub.c:5378 #3: 000000007f7b7ee0 (&port_dev->status_lock){+.+.}, at: usb_lock_port drivers/usb/core/hub.c:2994 [inline] #3: 000000007f7b7ee0 (&port_dev->status_lock){+.+.}, at: hub_port_connect drivers/usb/core/hub.c:5020 [inline] #3: 000000007f7b7ee0 (&port_dev->status_lock){+.+.}, at: hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] #3: 000000007f7b7ee0 (&port_dev->status_lock){+.+.}, at: port_event drivers/usb/core/hub.c:5350 [inline] #3: 000000007f7b7ee0 (&port_dev->status_lock){+.+.}, at: hub_event+0x11a3/0x3b00 drivers/usb/core/hub.c:5432 #4: 0000000090909ece (hcd->address0_mutex){+.+.}, at: hub_port_init+0x1bb/0x2d30 drivers/usb/core/hub.c:4529 ============================================= NMI backtrace for cpu 0 CPU: 0 PID: 23 Comm: khungtaskd Not tainted 5.1.0-rc4-g9a33b36-dirty #1 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xe8/0x16e lib/dump_stack.c:113 nmi_cpu_backtrace.cold+0x48/0x87 lib/nmi_backtrace.c:101 nmi_trigger_cpumask_backtrace+0x1a6/0x1bd lib/nmi_backtrace.c:62 trigger_all_cpu_backtrace include/linux/nmi.h:146 [inline] check_hung_uninterruptible_tasks kernel/hung_task.c:204 [inline] watchdog+0x98e/0xe20 kernel/hung_task.c:288 kthread+0x313/0x420 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 Sending NMI from CPU 0 to CPUs 1: NMI backtrace for cpu 1 skipped: idling at native_safe_halt+0x2/0x10 arch/x86/include/asm/irqflags.h:57 Tested on: commit: 9a33b369 usb-fuzzer: main usb gadget fuzzer driver git tree: https://github.com/google/kasan/tree/usb-fuzzer console output: https://syzkaller.appspot.com/x/log.txt?x=10b5e057200000 kernel config: https://syzkaller.appspot.com/x/.config?x=23e37f59d94ddd15 compiler: gcc (GCC) 9.0.0 20181231 (experimental) patch: https://syzkaller.appspot.com/x/patch.diff?x=131dca6b200000 From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: INFO: task hung in usb_kill_urb From: syzbot Message-Id: <000000000000edf1630586acca2b@google.com> Date: Tue, 16 Apr 2019 14:53:00 -0700 To: andreyknvl@google.com, gregkh@linuxfoundation.org, gustavo@embeddedor.com, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, stern@rowland.harvard.edu, syzkaller-bugs@googlegroups.com List-ID: SGVsbG8sCgpzeXpib3QgaGFzIHRlc3RlZCB0aGUgcHJvcG9zZWQgcGF0Y2ggYnV0IHRoZSByZXBy b2R1Y2VyIHN0aWxsIHRyaWdnZXJlZCAgCmNyYXNoOgpJTkZPOiB0YXNrIGh1bmcgaW4gdXNiX2tp bGxfdXJiCgp1c2ItZnV6emVyLWdhZGdldCBkdW1teV91ZGMuMDogZmFpbGVkIHRvIHN0YXJ0IFVT QiBmdXp6ZXI6IC0yMgpkdW1teV9oY2QgZHVtbXlfaGNkLjA6IFVuc3VwcG9ydGVkIGRyaXZlciBt YXggc3BlZWQgMAp1c2ItZnV6emVyLWdhZGdldCBkdW1teV91ZGMuMDogZmFpbGVkIHRvIHN0YXJ0 IFVTQiBmdXp6ZXI6IC0yMgpkdW1teV9oY2QgZHVtbXlfaGNkLjA6IFVuc3VwcG9ydGVkIGRyaXZl ciBtYXggc3BlZWQgMAp1c2ItZnV6emVyLWdhZGdldCBkdW1teV91ZGMuMDogZmFpbGVkIHRvIHN0 YXJ0IFVTQiBmdXp6ZXI6IC0yMgpJTkZPOiB0YXNrIGt3b3JrZXIvMToxOjIxIGJsb2NrZWQgZm9y IG1vcmUgdGhhbiAxNDMgc2Vjb25kcy4KICAgICAgIE5vdCB0YWludGVkIDUuMS4wLXJjNC1nOWEz M2IzNi1kaXJ0eSAjMQoiZWNobyAwID4gL3Byb2Mvc3lzL2tlcm5lbC9odW5nX3Rhc2tfdGltZW91 dF9zZWNzIiBkaXNhYmxlcyB0aGlzIG1lc3NhZ2UuCmt3b3JrZXIvMToxICAgICBEMjY1MTIgICAg MjEgICAgICAyIDB4ODAwMDAwMDAKV29ya3F1ZXVlOiB1c2JfaHViX3dxIGh1Yl9ldmVudApDYWxs IFRyYWNlOgogIHNjaGVkdWxlKzB4OGYvMHgxODAga2VybmVsL3NjaGVkL2NvcmUuYzozNTYyCiAg dXNiX2tpbGxfdXJiIGRyaXZlcnMvdXNiL2NvcmUvdXJiLmM6Njk1IFtpbmxpbmVdCiAgdXNiX2tp bGxfdXJiKzB4MjJhLzB4MmMwIGRyaXZlcnMvdXNiL2NvcmUvdXJiLmM6Njg3CmR1bW15X2hjZCBk dW1teV9oY2QuMDogVW5zdXBwb3J0ZWQgZHJpdmVyIG1heCBzcGVlZCAwCnVzYi1mdXp6ZXItZ2Fk Z2V0IGR1bW15X3VkYy4wOiBmYWlsZWQgdG8gc3RhcnQgVVNCIGZ1enplcjogLTIyCiAgdXNiX3N0 YXJ0X3dhaXRfdXJiKzB4MjU3LzB4NGQwIGRyaXZlcnMvdXNiL2NvcmUvbWVzc2FnZS5jOjYzCiAg dXNiX2ludGVybmFsX2NvbnRyb2xfbXNnIGRyaXZlcnMvdXNiL2NvcmUvbWVzc2FnZS5jOjEwMSBb aW5saW5lXQogIHVzYl9jb250cm9sX21zZysweDMyMS8weDRhMCBkcml2ZXJzL3VzYi9jb3JlL21l c3NhZ2UuYzoxNTIKICBodWJfcG9ydF9pbml0KzB4ODFkLzB4MmQzMCBkcml2ZXJzL3VzYi9jb3Jl L2h1Yi5jOjQ2NTUKICBodWJfcG9ydF9jb25uZWN0IGRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTAy MSBbaW5saW5lXQogIGh1Yl9wb3J0X2Nvbm5lY3RfY2hhbmdlIGRyaXZlcnMvdXNiL2NvcmUvaHVi LmM6NTIwNCBbaW5saW5lXQogIHBvcnRfZXZlbnQgZHJpdmVycy91c2IvY29yZS9odWIuYzo1MzUw IFtpbmxpbmVdCiAgaHViX2V2ZW50KzB4MTFiOC8weDNiMDAgZHJpdmVycy91c2IvY29yZS9odWIu Yzo1NDMyCiAgcHJvY2Vzc19vbmVfd29yaysweDkwZi8weDE1ODAga2VybmVsL3dvcmtxdWV1ZS5j OjIyNjkKICB3b3JrZXJfdGhyZWFkKzB4OWIvMHhlMjAga2VybmVsL3dvcmtxdWV1ZS5jOjI0MTUK ICBrdGhyZWFkKzB4MzEzLzB4NDIwIGtlcm5lbC9rdGhyZWFkLmM6MjUzCiAgcmV0X2Zyb21fZm9y aysweDNhLzB4NTAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzozNTIKSU5GTzogdGFzayBrd29y a2VyLzE6Mjo1MzMgYmxvY2tlZCBmb3IgbW9yZSB0aGFuIDE0MyBzZWNvbmRzLgogICAgICAgTm90 IHRhaW50ZWQgNS4xLjAtcmM0LWc5YTMzYjM2LWRpcnR5ICMxCiJlY2hvIDAgPiAvcHJvYy9zeXMv a2VybmVsL2h1bmdfdGFza190aW1lb3V0X3NlY3MiIGRpc2FibGVzIHRoaXMgbWVzc2FnZS4Ka3dv cmtlci8xOjIgICAgIEQyNTc2MCAgIDUzMyAgICAgIDIgMHg4MDAwMDAwMApXb3JrcXVldWU6IHVz Yl9odWJfd3EgaHViX2V2ZW50CkNhbGwgVHJhY2U6CiAgc2NoZWR1bGUrMHg4Zi8weDE4MCBrZXJu ZWwvc2NoZWQvY29yZS5jOjM1NjIKICB1c2Jfa2lsbF91cmIgZHJpdmVycy91c2IvY29yZS91cmIu Yzo2OTUgW2lubGluZV0KICB1c2Jfa2lsbF91cmIrMHgyMmEvMHgyYzAgZHJpdmVycy91c2IvY29y ZS91cmIuYzo2ODcKICB1c2Jfc3RhcnRfd2FpdF91cmIrMHgyNTcvMHg0ZDAgZHJpdmVycy91c2Iv Y29yZS9tZXNzYWdlLmM6NjMKICB1c2JfaW50ZXJuYWxfY29udHJvbF9tc2cgZHJpdmVycy91c2Iv Y29yZS9tZXNzYWdlLmM6MTAxIFtpbmxpbmVdCiAgdXNiX2NvbnRyb2xfbXNnKzB4MzIxLzB4NGEw IGRyaXZlcnMvdXNiL2NvcmUvbWVzc2FnZS5jOjE1MgogIGh1Yl9wb3J0X2luaXQrMHg4MWQvMHgy ZDMwIGRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NDY1NQpkdW1teV9oY2QgZHVtbXlfaGNkLjA6IFVu c3VwcG9ydGVkIGRyaXZlciBtYXggc3BlZWQgMAogIGh1Yl9wb3J0X2Nvbm5lY3QgZHJpdmVycy91 c2IvY29yZS9odWIuYzo1MDIxIFtpbmxpbmVdCiAgaHViX3BvcnRfY29ubmVjdF9jaGFuZ2UgZHJp dmVycy91c2IvY29yZS9odWIuYzo1MjA0IFtpbmxpbmVdCiAgcG9ydF9ldmVudCBkcml2ZXJzL3Vz Yi9jb3JlL2h1Yi5jOjUzNTAgW2lubGluZV0KICBodWJfZXZlbnQrMHgxMWI4LzB4M2IwMCBkcml2 ZXJzL3VzYi9jb3JlL2h1Yi5jOjU0MzIKdXNiLWZ1enplci1nYWRnZXQgZHVtbXlfdWRjLjA6IGZh aWxlZCB0byBzdGFydCBVU0IgZnV6emVyOiAtMjIKICBwcm9jZXNzX29uZV93b3JrKzB4OTBmLzB4 MTU4MCBrZXJuZWwvd29ya3F1ZXVlLmM6MjI2OQogIHdvcmtlcl90aHJlYWQrMHg5Yi8weGUyMCBr ZXJuZWwvd29ya3F1ZXVlLmM6MjQxNQogIGt0aHJlYWQrMHgzMTMvMHg0MjAga2VybmVsL2t0aHJl YWQuYzoyNTMKICByZXRfZnJvbV9mb3JrKzB4M2EvMHg1MCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82 NC5TOjM1MgpJTkZPOiB0YXNrIGt3b3JrZXIvMTozOjU3MTEgYmxvY2tlZCBmb3IgbW9yZSB0aGFu IDE0MyBzZWNvbmRzLgogICAgICAgTm90IHRhaW50ZWQgNS4xLjAtcmM0LWc5YTMzYjM2LWRpcnR5 ICMxCiJlY2hvIDAgPiAvcHJvYy9zeXMva2VybmVsL2h1bmdfdGFza190aW1lb3V0X3NlY3MiIGRp c2FibGVzIHRoaXMgbWVzc2FnZS4Ka3dvcmtlci8xOjMgICAgIEQyNjY1NiAgNTcxMSAgICAgIDIg MHg4MDAwMDAwMApXb3JrcXVldWU6IHVzYl9odWJfd3EgaHViX2V2ZW50CkNhbGwgVHJhY2U6CiAg c2NoZWR1bGUrMHg4Zi8weDE4MCBrZXJuZWwvc2NoZWQvY29yZS5jOjM1NjIKICB1c2Jfa2lsbF91 cmIgZHJpdmVycy91c2IvY29yZS91cmIuYzo2OTUgW2lubGluZV0KICB1c2Jfa2lsbF91cmIrMHgy MmEvMHgyYzAgZHJpdmVycy91c2IvY29yZS91cmIuYzo2ODcKICB1c2Jfc3RhcnRfd2FpdF91cmIr MHgyNTcvMHg0ZDAgZHJpdmVycy91c2IvY29yZS9tZXNzYWdlLmM6NjMKICB1c2JfaW50ZXJuYWxf Y29udHJvbF9tc2cgZHJpdmVycy91c2IvY29yZS9tZXNzYWdlLmM6MTAxIFtpbmxpbmVdCiAgdXNi X2NvbnRyb2xfbXNnKzB4MzIxLzB4NGEwIGRyaXZlcnMvdXNiL2NvcmUvbWVzc2FnZS5jOjE1Mgog IGh1Yl9wb3J0X2luaXQrMHg4MWQvMHgyZDMwIGRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NDY1NQog IGh1Yl9wb3J0X2Nvbm5lY3QgZHJpdmVycy91c2IvY29yZS9odWIuYzo1MDIxIFtpbmxpbmVdCiAg aHViX3BvcnRfY29ubmVjdF9jaGFuZ2UgZHJpdmVycy91c2IvY29yZS9odWIuYzo1MjA0IFtpbmxp bmVdCiAgcG9ydF9ldmVudCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUzNTAgW2lubGluZV0KICBo dWJfZXZlbnQrMHgxMWI4LzB4M2IwMCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjU0MzIKICBwcm9j ZXNzX29uZV93b3JrKzB4OTBmLzB4MTU4MCBrZXJuZWwvd29ya3F1ZXVlLmM6MjI2OQogIHdvcmtl cl90aHJlYWQrMHg5Yi8weGUyMCBrZXJuZWwvd29ya3F1ZXVlLmM6MjQxNQogIGt0aHJlYWQrMHgz MTMvMHg0MjAga2VybmVsL2t0aHJlYWQuYzoyNTMKICByZXRfZnJvbV9mb3JrKzB4M2EvMHg1MCBh cmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjM1MgpJTkZPOiB0YXNrIGt3b3JrZXIvMTo0OjU4MTUg YmxvY2tlZCBmb3IgbW9yZSB0aGFuIDE0MyBzZWNvbmRzLgogICAgICAgTm90IHRhaW50ZWQgNS4x LjAtcmM0LWc5YTMzYjM2LWRpcnR5ICMxCmR1bW15X2hjZCBkdW1teV9oY2QuMDogVW5zdXBwb3J0 ZWQgZHJpdmVyIG1heCBzcGVlZCAwCiJlY2hvIDAgPiAvcHJvYy9zeXMva2VybmVsL2h1bmdfdGFz a190aW1lb3V0X3NlY3MiIGRpc2FibGVzIHRoaXMgbWVzc2FnZS4Ka3dvcmtlci8xOjQgICAgIEQy NzQxNiAgNTgxNSAgICAgIDIgMHg4MDAwMDAwMApXb3JrcXVldWU6IHVzYl9odWJfd3EgaHViX2V2 ZW50CnVzYi1mdXp6ZXItZ2FkZ2V0IGR1bW15X3VkYy4wOiBmYWlsZWQgdG8gc3RhcnQgVVNCIGZ1 enplcjogLTIyCkNhbGwgVHJhY2U6CiAgc2NoZWR1bGUrMHg4Zi8weDE4MCBrZXJuZWwvc2NoZWQv Y29yZS5jOjM1NjIKICB1c2Jfa2lsbF91cmIgZHJpdmVycy91c2IvY29yZS91cmIuYzo2OTUgW2lu bGluZV0KICB1c2Jfa2lsbF91cmIrMHgyMmEvMHgyYzAgZHJpdmVycy91c2IvY29yZS91cmIuYzo2 ODcKICB1c2Jfc3RhcnRfd2FpdF91cmIrMHgyNTcvMHg0ZDAgZHJpdmVycy91c2IvY29yZS9tZXNz YWdlLmM6NjMKICB1c2JfaW50ZXJuYWxfY29udHJvbF9tc2cgZHJpdmVycy91c2IvY29yZS9tZXNz YWdlLmM6MTAxIFtpbmxpbmVdCiAgdXNiX2NvbnRyb2xfbXNnKzB4MzIxLzB4NGEwIGRyaXZlcnMv dXNiL2NvcmUvbWVzc2FnZS5jOjE1MgogIGh1Yl9wb3J0X2luaXQrMHg4MWQvMHgyZDMwIGRyaXZl cnMvdXNiL2NvcmUvaHViLmM6NDY1NQogIGh1Yl9wb3J0X2Nvbm5lY3QgZHJpdmVycy91c2IvY29y ZS9odWIuYzo1MDIxIFtpbmxpbmVdCiAgaHViX3BvcnRfY29ubmVjdF9jaGFuZ2UgZHJpdmVycy91 c2IvY29yZS9odWIuYzo1MjA0IFtpbmxpbmVdCiAgcG9ydF9ldmVudCBkcml2ZXJzL3VzYi9jb3Jl L2h1Yi5jOjUzNTAgW2lubGluZV0KICBodWJfZXZlbnQrMHgxMWI4LzB4M2IwMCBkcml2ZXJzL3Vz Yi9jb3JlL2h1Yi5jOjU0MzIKICBwcm9jZXNzX29uZV93b3JrKzB4OTBmLzB4MTU4MCBrZXJuZWwv d29ya3F1ZXVlLmM6MjI2OQogIHdvcmtlcl90aHJlYWQrMHg5Yi8weGUyMCBrZXJuZWwvd29ya3F1 ZXVlLmM6MjQxNQogIGt0aHJlYWQrMHgzMTMvMHg0MjAga2VybmVsL2t0aHJlYWQuYzoyNTMKICBy ZXRfZnJvbV9mb3JrKzB4M2EvMHg1MCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjM1MgpJTkZP OiB0YXNrIGt3b3JrZXIvMTo1OjU4NTQgYmxvY2tlZCBmb3IgbW9yZSB0aGFuIDE0NCBzZWNvbmRz LgogICAgICAgTm90IHRhaW50ZWQgNS4xLjAtcmM0LWc5YTMzYjM2LWRpcnR5ICMxCiJlY2hvIDAg PiAvcHJvYy9zeXMva2VybmVsL2h1bmdfdGFza190aW1lb3V0X3NlY3MiIGRpc2FibGVzIHRoaXMg bWVzc2FnZS4Ka3dvcmtlci8xOjUgICAgIEQyNzAwOCAgNTg1NCAgICAgIDIgMHg4MDAwMDAwMApX b3JrcXVldWU6IHVzYl9odWJfd3EgaHViX2V2ZW50CkNhbGwgVHJhY2U6CiAgc2NoZWR1bGUrMHg4 Zi8weDE4MCBrZXJuZWwvc2NoZWQvY29yZS5jOjM1NjIKICB1c2Jfa2lsbF91cmIgZHJpdmVycy91 c2IvY29yZS91cmIuYzo2OTUgW2lubGluZV0KICB1c2Jfa2lsbF91cmIrMHgyMmEvMHgyYzAgZHJp dmVycy91c2IvY29yZS91cmIuYzo2ODcKZHVtbXlfaGNkIGR1bW15X2hjZC4wOiBVbnN1cHBvcnRl ZCBkcml2ZXIgbWF4IHNwZWVkIDAKICB1c2Jfc3RhcnRfd2FpdF91cmIrMHgyNTcvMHg0ZDAgZHJp dmVycy91c2IvY29yZS9tZXNzYWdlLmM6NjMKdXNiLWZ1enplci1nYWRnZXQgZHVtbXlfdWRjLjA6 IGZhaWxlZCB0byBzdGFydCBVU0IgZnV6emVyOiAtMjIKICB1c2JfaW50ZXJuYWxfY29udHJvbF9t c2cgZHJpdmVycy91c2IvY29yZS9tZXNzYWdlLmM6MTAxIFtpbmxpbmVdCiAgdXNiX2NvbnRyb2xf bXNnKzB4MzIxLzB4NGEwIGRyaXZlcnMvdXNiL2NvcmUvbWVzc2FnZS5jOjE1MgogIGh1Yl9wb3J0 X2luaXQrMHg4MWQvMHgyZDMwIGRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NDY1NQogIGh1Yl9wb3J0 X2Nvbm5lY3QgZHJpdmVycy91c2IvY29yZS9odWIuYzo1MDIxIFtpbmxpbmVdCiAgaHViX3BvcnRf Y29ubmVjdF9jaGFuZ2UgZHJpdmVycy91c2IvY29yZS9odWIuYzo1MjA0IFtpbmxpbmVdCiAgcG9y dF9ldmVudCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUzNTAgW2lubGluZV0KICBodWJfZXZlbnQr MHgxMWI4LzB4M2IwMCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjU0MzIKICBwcm9jZXNzX29uZV93 b3JrKzB4OTBmLzB4MTU4MCBrZXJuZWwvd29ya3F1ZXVlLmM6MjI2OQogIHdvcmtlcl90aHJlYWQr MHg5Yi8weGUyMCBrZXJuZWwvd29ya3F1ZXVlLmM6MjQxNQogIGt0aHJlYWQrMHgzMTMvMHg0MjAg a2VybmVsL2t0aHJlYWQuYzoyNTMKICByZXRfZnJvbV9mb3JrKzB4M2EvMHg1MCBhcmNoL3g4Ni9l bnRyeS9lbnRyeV82NC5TOjM1MgpJTkZPOiB0YXNrIGt3b3JrZXIvMTo2OjU5NTMgYmxvY2tlZCBm b3IgbW9yZSB0aGFuIDE0NCBzZWNvbmRzLgogICAgICAgTm90IHRhaW50ZWQgNS4xLjAtcmM0LWc5 YTMzYjM2LWRpcnR5ICMxCiJlY2hvIDAgPiAvcHJvYy9zeXMva2VybmVsL2h1bmdfdGFza190aW1l b3V0X3NlY3MiIGRpc2FibGVzIHRoaXMgbWVzc2FnZS4Ka3dvcmtlci8xOjYgICAgIEQyODE0NCAg NTk1MyAgICAgIDIgMHg4MDAwMDAwMApXb3JrcXVldWU6IHVzYl9odWJfd3EgaHViX2V2ZW50CkNh bGwgVHJhY2U6CiAgc2NoZWR1bGUrMHg4Zi8weDE4MCBrZXJuZWwvc2NoZWQvY29yZS5jOjM1NjIK ICB1c2Jfa2lsbF91cmIgZHJpdmVycy91c2IvY29yZS91cmIuYzo2OTUgW2lubGluZV0KICB1c2Jf a2lsbF91cmIrMHgyMmEvMHgyYzAgZHJpdmVycy91c2IvY29yZS91cmIuYzo2ODcKICB1c2Jfc3Rh cnRfd2FpdF91cmIrMHgyNTcvMHg0ZDAgZHJpdmVycy91c2IvY29yZS9tZXNzYWdlLmM6NjMKICB1 c2JfaW50ZXJuYWxfY29udHJvbF9tc2cgZHJpdmVycy91c2IvY29yZS9tZXNzYWdlLmM6MTAxIFtp bmxpbmVdCiAgdXNiX2NvbnRyb2xfbXNnKzB4MzIxLzB4NGEwIGRyaXZlcnMvdXNiL2NvcmUvbWVz c2FnZS5jOjE1MgogIGh1Yl9wb3J0X2luaXQrMHg4MWQvMHgyZDMwIGRyaXZlcnMvdXNiL2NvcmUv aHViLmM6NDY1NQogIGh1Yl9wb3J0X2Nvbm5lY3QgZHJpdmVycy91c2IvY29yZS9odWIuYzo1MDIx IFtpbmxpbmVdCiAgaHViX3BvcnRfY29ubmVjdF9jaGFuZ2UgZHJpdmVycy91c2IvY29yZS9odWIu Yzo1MjA0IFtpbmxpbmVdCiAgcG9ydF9ldmVudCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUzNTAg W2lubGluZV0KICBodWJfZXZlbnQrMHgxMWI4LzB4M2IwMCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5j OjU0MzIKZHVtbXlfaGNkIGR1bW15X2hjZC4wOiBVbnN1cHBvcnRlZCBkcml2ZXIgbWF4IHNwZWVk IDAKdXNiLWZ1enplci1nYWRnZXQgZHVtbXlfdWRjLjA6IGZhaWxlZCB0byBzdGFydCBVU0IgZnV6 emVyOiAtMjIKICBwcm9jZXNzX29uZV93b3JrKzB4OTBmLzB4MTU4MCBrZXJuZWwvd29ya3F1ZXVl LmM6MjI2OQogIHdvcmtlcl90aHJlYWQrMHg5Yi8weGUyMCBrZXJuZWwvd29ya3F1ZXVlLmM6MjQx NQogIGt0aHJlYWQrMHgzMTMvMHg0MjAga2VybmVsL2t0aHJlYWQuYzoyNTMKICByZXRfZnJvbV9m b3JrKzB4M2EvMHg1MCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjM1MgoKU2hvd2luZyBhbGwg bG9ja3MgaGVsZCBpbiB0aGUgc3lzdGVtOgo1IGxvY2tzIGhlbGQgYnkga3dvcmtlci8xOjEvMjE6 CiAgIzA6IDAwMDAwMDAwYjNhZDE0MTUgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59 LCBhdDogIApfX3dyaXRlX29uY2Vfc2l6ZSBpbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmg6MjIwIFtp bmxpbmVdCiAgIzA6IDAwMDAwMDAwYjNhZDE0MTUgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3Ep eysuKy59LCBhdDogIAphcmNoX2F0b21pYzY0X3NldCBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9t aWM2NF82NC5oOjM0IFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwYjNhZDE0MTUgKCh3cV9jb21wbGV0 aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogYXRvbWljNjRfc2V0ICAKaW5jbHVkZS9hc20tZ2Vu ZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmg6ODU1IFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwYjNh ZDE0MTUgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogIAphdG9taWNfbG9u Z19zZXQgaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtbG9uZy5oOjQwIFtpbmxpbmVdCiAgIzA6 IDAwMDAwMDAwYjNhZDE0MTUgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDog c2V0X3dvcmtfZGF0YSAgCmtlcm5lbC93b3JrcXVldWUuYzo2MTkgW2lubGluZV0KICAjMDogMDAw MDAwMDBiM2FkMTQxNSAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiAgCnNl dF93b3JrX3Bvb2xfYW5kX2NsZWFyX3BlbmRpbmcga2VybmVsL3dvcmtxdWV1ZS5jOjY0NiBbaW5s aW5lXQogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsr LisufSwgYXQ6ICAKcHJvY2Vzc19vbmVfd29yaysweDgxZi8weDE1ODAga2VybmVsL3dvcmtxdWV1 ZS5jOjIyNDAKICAjMTogMDAwMDAwMDA2NmE1N2Y2MiAoKHdvcmtfY29tcGxldGlvbikoJmh1Yi0+ ZXZlbnRzKSl7Ky4rLn0sIGF0OiAgCnByb2Nlc3Nfb25lX3dvcmsrMHg4NTMvMHgxNTgwIGtlcm5l bC93b3JrcXVldWUuYzoyMjQ0CiAgIzI6IDAwMDAwMDAwODA2MTg1OGMgKCZkZXYtPm11dGV4KXsu Li4ufSwgYXQ6IGRldmljZV9sb2NrICAKaW5jbHVkZS9saW51eC9kZXZpY2UuaDoxMjA3IFtpbmxp bmVdCiAgIzI6IDAwMDAwMDAwODA2MTg1OGMgKCZkZXYtPm11dGV4KXsuLi4ufSwgYXQ6IGh1Yl9l dmVudCsweDE4YS8weDNiMDAgIApkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUzNzgKICAjMzogMDAw MDAwMDBlOWMyYjc0NSAoJnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4rLn0sIGF0OiB1c2JfbG9j a19wb3J0ICAKZHJpdmVycy91c2IvY29yZS9odWIuYzoyOTk0IFtpbmxpbmVdCiAgIzM6IDAwMDAw MDAwZTljMmI3NDUgKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysuKy59LCBhdDogaHViX3BvcnRf Y29ubmVjdCAgCmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTAyMCBbaW5saW5lXQogICMzOiAwMDAw MDAwMGU5YzJiNzQ1ICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6ICAKaHViX3Bv cnRfY29ubmVjdF9jaGFuZ2UgZHJpdmVycy91c2IvY29yZS9odWIuYzo1MjA0IFtpbmxpbmVdCiAg IzM6IDAwMDAwMDAwZTljMmI3NDUgKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysuKy59LCBhdDog cG9ydF9ldmVudCAgCmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTM1MCBbaW5saW5lXQogICMzOiAw MDAwMDAwMGU5YzJiNzQ1ICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6ICAKaHVi X2V2ZW50KzB4MTFhMy8weDNiMDAgZHJpdmVycy91c2IvY29yZS9odWIuYzo1NDMyCiAgIzQ6IDAw MDAwMDAwNzRhOWMxZGEgKGhjZC0+YWRkcmVzczBfbXV0ZXgpeysuKy59LCBhdDogIApodWJfcG9y dF9pbml0KzB4MWJiLzB4MmQzMCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjQ1MjkKMSBsb2NrIGhl bGQgYnkga2h1bmd0YXNrZC8yMzoKICAjMDogMDAwMDAwMDA5YTdjMmZlOSAocmN1X3JlYWRfbG9j ayl7Li4uLn0sIGF0OiAgCmRlYnVnX3Nob3dfYWxsX2xvY2tzKzB4NTMvMHgyNjkga2VybmVsL2xv Y2tpbmcvbG9ja2RlcC5jOjUwNTkKNSBsb2NrcyBoZWxkIGJ5IGt3b3JrZXIvMToyLzUzMzoKICAj MDogMDAwMDAwMDBiM2FkMTQxNSAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0 OiAgCl9fd3JpdGVfb25jZV9zaXplIGluY2x1ZGUvbGludXgvY29tcGlsZXIuaDoyMjAgW2lubGlu ZV0KICAjMDogMDAwMDAwMDBiM2FkMTQxNSAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4r Ln0sIGF0OiAgCmFyY2hfYXRvbWljNjRfc2V0IGFyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0 XzY0Lmg6MzQgW2lubGluZV0KICAjMDogMDAwMDAwMDBiM2FkMTQxNSAoKHdxX2NvbXBsZXRpb24p dXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiBhdG9taWM2NF9zZXQgIAppbmNsdWRlL2FzbS1nZW5lcmlj L2F0b21pYy1pbnN0cnVtZW50ZWQuaDo4NTUgW2lubGluZV0KICAjMDogMDAwMDAwMDBiM2FkMTQx NSAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiAgCmF0b21pY19sb25nX3Nl dCBpbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1sb25nLmg6NDAgW2lubGluZV0KICAjMDogMDAw MDAwMDBiM2FkMTQxNSAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiBzZXRf d29ya19kYXRhICAKa2VybmVsL3dvcmtxdWV1ZS5jOjYxOSBbaW5saW5lXQogICMwOiAwMDAwMDAw MGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKc2V0X3dv cmtfcG9vbF9hbmRfY2xlYXJfcGVuZGluZyBrZXJuZWwvd29ya3F1ZXVlLmM6NjQ2IFtpbmxpbmVd CiAgIzA6IDAwMDAwMDAwYjNhZDE0MTUgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59 LCBhdDogIApwcm9jZXNzX29uZV93b3JrKzB4ODFmLzB4MTU4MCBrZXJuZWwvd29ya3F1ZXVlLmM6 MjI0MAogICMxOiAwMDAwMDAwMDg2ZThlYWYxICgod29ya19jb21wbGV0aW9uKSgmaHViLT5ldmVu dHMpKXsrLisufSwgYXQ6ICAKcHJvY2Vzc19vbmVfd29yaysweDg1My8weDE1ODAga2VybmVsL3dv cmtxdWV1ZS5jOjIyNDQKICAjMjogMDAwMDAwMDA2NDY5YjNhNSAoJmRldi0+bXV0ZXgpey4uLi59 LCBhdDogZGV2aWNlX2xvY2sgIAppbmNsdWRlL2xpbnV4L2RldmljZS5oOjEyMDcgW2lubGluZV0K ICAjMjogMDAwMDAwMDA2NDY5YjNhNSAoJmRldi0+bXV0ZXgpey4uLi59LCBhdDogaHViX2V2ZW50 KzB4MThhLzB4M2IwMCAgCmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTM3OAogICMzOiAwMDAwMDAw MDdmMGI1NmY3ICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6IHVzYl9sb2NrX3Bv cnQgIApkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjI5OTQgW2lubGluZV0KICAjMzogMDAwMDAwMDA3 ZjBiNTZmNyAoJnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4rLn0sIGF0OiBodWJfcG9ydF9jb25u ZWN0ICAKZHJpdmVycy91c2IvY29yZS9odWIuYzo1MDIwIFtpbmxpbmVdCiAgIzM6IDAwMDAwMDAw N2YwYjU2ZjcgKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysuKy59LCBhdDogIApodWJfcG9ydF9j b25uZWN0X2NoYW5nZSBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUyMDQgW2lubGluZV0KICAjMzog MDAwMDAwMDA3ZjBiNTZmNyAoJnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4rLn0sIGF0OiBwb3J0 X2V2ZW50ICAKZHJpdmVycy91c2IvY29yZS9odWIuYzo1MzUwIFtpbmxpbmVdCiAgIzM6IDAwMDAw MDAwN2YwYjU2ZjcgKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysuKy59LCBhdDogIApodWJfZXZl bnQrMHgxMWEzLzB4M2IwMCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjU0MzIKICAjNDogMDAwMDAw MDBmOTJhOTU3NyAoaGNkLT5hZGRyZXNzMF9tdXRleCl7Ky4rLn0sIGF0OiAgCmh1Yl9wb3J0X2lu aXQrMHgxYmIvMHgyZDMwIGRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NDUyOQoxIGxvY2sgaGVsZCBi eSByc3lzbG9nZC81NDUyOgogICMwOiAwMDAwMDAwMDc4ZjRhNTMyICgmZi0+Zl9wb3NfbG9jayl7 Ky4rLn0sIGF0OiBfX2ZkZ2V0X3BvcysweGU4LzB4MTAwICAKZnMvZmlsZS5jOjgwMQoyIGxvY2tz IGhlbGQgYnkgZ2V0dHkvNTU0MjoKICAjMDogMDAwMDAwMDAyM2FmYmE1OCAoJnR0eS0+bGRpc2Nf c2VtKXsrKysrfSwgYXQ6ICAKdHR5X2xkaXNjX3JlZl93YWl0KzB4MjcvMHg4MCBkcml2ZXJzL3R0 eS90dHlfbGRpc2MuYzoyNzIKICAjMTogMDAwMDAwMDBiYzEwZDgyYSAoJmxkYXRhLT5hdG9taWNf cmVhZF9sb2NrKXsrLisufSwgYXQ6ICAKbl90dHlfcmVhZCsweDIxYy8weDFhNjAgZHJpdmVycy90 dHkvbl90dHkuYzoyMTU2CjIgbG9ja3MgaGVsZCBieSBnZXR0eS81NTQzOgogICMwOiAwMDAwMDAw MGE2YWIxZDI1ICgmdHR5LT5sZGlzY19zZW0peysrKyt9LCBhdDogIAp0dHlfbGRpc2NfcmVmX3dh aXQrMHgyNy8weDgwIGRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjI3MgogICMxOiAwMDAwMDAwMGQ1 YTQ0NTU0ICgmbGRhdGEtPmF0b21pY19yZWFkX2xvY2speysuKy59LCBhdDogIApuX3R0eV9yZWFk KzB4MjFjLzB4MWE2MCBkcml2ZXJzL3R0eS9uX3R0eS5jOjIxNTYKZHVtbXlfaGNkIGR1bW15X2hj ZC4wOiBVbnN1cHBvcnRlZCBkcml2ZXIgbWF4IHNwZWVkIDAKMiBsb2NrcyBoZWxkIGJ5IGdldHR5 LzU1NDQ6CnVzYi1mdXp6ZXItZ2FkZ2V0IGR1bW15X3VkYy4wOiBmYWlsZWQgdG8gc3RhcnQgVVNC IGZ1enplcjogLTIyCiAgIzA6IDAwMDAwMDAwOThmYzQ3NzEgKCZ0dHktPmxkaXNjX3NlbSl7Kysr K30sIGF0OiAgCnR0eV9sZGlzY19yZWZfd2FpdCsweDI3LzB4ODAgZHJpdmVycy90dHkvdHR5X2xk aXNjLmM6MjcyCiAgIzE6IDAwMDAwMDAwMTcwNjA3NzIgKCZsZGF0YS0+YXRvbWljX3JlYWRfbG9j ayl7Ky4rLn0sIGF0OiAgCm5fdHR5X3JlYWQrMHgyMWMvMHgxYTYwIGRyaXZlcnMvdHR5L25fdHR5 LmM6MjE1NgoyIGxvY2tzIGhlbGQgYnkgZ2V0dHkvNTU0NToKICAjMDogMDAwMDAwMDA1ZmNhOGI1 NiAoJnR0eS0+bGRpc2Nfc2VtKXsrKysrfSwgYXQ6ICAKdHR5X2xkaXNjX3JlZl93YWl0KzB4Mjcv MHg4MCBkcml2ZXJzL3R0eS90dHlfbGRpc2MuYzoyNzIKICAjMTogMDAwMDAwMDA1YTUzMTlmOCAo JmxkYXRhLT5hdG9taWNfcmVhZF9sb2NrKXsrLisufSwgYXQ6ICAKbl90dHlfcmVhZCsweDIxYy8w eDFhNjAgZHJpdmVycy90dHkvbl90dHkuYzoyMTU2CjIgbG9ja3MgaGVsZCBieSBnZXR0eS81NTQ2 OgogICMwOiAwMDAwMDAwMGU1OTA5MTlmICgmdHR5LT5sZGlzY19zZW0peysrKyt9LCBhdDogIAp0 dHlfbGRpc2NfcmVmX3dhaXQrMHgyNy8weDgwIGRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjI3Mgog ICMxOiAwMDAwMDAwMDQ3NzUzMjlmICgmbGRhdGEtPmF0b21pY19yZWFkX2xvY2speysuKy59LCBh dDogIApuX3R0eV9yZWFkKzB4MjFjLzB4MWE2MCBkcml2ZXJzL3R0eS9uX3R0eS5jOjIxNTYKMiBs b2NrcyBoZWxkIGJ5IGdldHR5LzU1NDc6CiAgIzA6IDAwMDAwMDAwMTc5ZDRkMGIgKCZ0dHktPmxk aXNjX3NlbSl7KysrK30sIGF0OiAgCnR0eV9sZGlzY19yZWZfd2FpdCsweDI3LzB4ODAgZHJpdmVy cy90dHkvdHR5X2xkaXNjLmM6MjcyCiAgIzE6IDAwMDAwMDAwMjkyMmEzMGIgKCZsZGF0YS0+YXRv bWljX3JlYWRfbG9jayl7Ky4rLn0sIGF0OiAgCm5fdHR5X3JlYWQrMHgyMWMvMHgxYTYwIGRyaXZl cnMvdHR5L25fdHR5LmM6MjE1NgoyIGxvY2tzIGhlbGQgYnkgZ2V0dHkvNTU0ODoKICAjMDogMDAw MDAwMDA2YzJlMzkwOCAoJnR0eS0+bGRpc2Nfc2VtKXsrKysrfSwgYXQ6ICAKdHR5X2xkaXNjX3Jl Zl93YWl0KzB4MjcvMHg4MCBkcml2ZXJzL3R0eS90dHlfbGRpc2MuYzoyNzIKICAjMTogMDAwMDAw MDA5Y2RlYjBiZiAoJmxkYXRhLT5hdG9taWNfcmVhZF9sb2NrKXsrLisufSwgYXQ6ICAKbl90dHlf cmVhZCsweDIxYy8weDFhNjAgZHJpdmVycy90dHkvbl90dHkuYzoyMTU2CjUgbG9ja3MgaGVsZCBi eSBrd29ya2VyLzE6My81NzExOgogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgod3FfY29tcGxldGlv bil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKX193cml0ZV9vbmNlX3NpemUgaW5jbHVkZS9saW51 eC9jb21waWxlci5oOjIyMCBbaW5saW5lXQogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgod3FfY29t cGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKYXJjaF9hdG9taWM2NF9zZXQgYXJjaC94 ODYvaW5jbHVkZS9hc20vYXRvbWljNjRfNjQuaDozNCBbaW5saW5lXQogICMwOiAwMDAwMDAwMGIz YWQxNDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6IGF0b21pYzY0X3Nl dCAgCmluY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oOjg1NSBbaW5saW5l XQogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisu fSwgYXQ6ICAKYXRvbWljX2xvbmdfc2V0IGluY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWxvbmcu aDo0MCBbaW5saW5lXQogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1c2Jf aHViX3dxKXsrLisufSwgYXQ6IHNldF93b3JrX2RhdGEgIAprZXJuZWwvd29ya3F1ZXVlLmM6NjE5 IFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwYjNhZDE0MTUgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJf d3EpeysuKy59LCBhdDogIApzZXRfd29ya19wb29sX2FuZF9jbGVhcl9wZW5kaW5nIGtlcm5lbC93 b3JrcXVldWUuYzo2NDYgW2lubGluZV0KICAjMDogMDAwMDAwMDBiM2FkMTQxNSAoKHdxX2NvbXBs ZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiAgCnByb2Nlc3Nfb25lX3dvcmsrMHg4MWYvMHgx NTgwIGtlcm5lbC93b3JrcXVldWUuYzoyMjQwCiAgIzE6IDAwMDAwMDAwOGY2NWQ5NDggKCh3b3Jr X2NvbXBsZXRpb24pKCZodWItPmV2ZW50cykpeysuKy59LCBhdDogIApwcm9jZXNzX29uZV93b3Jr KzB4ODUzLzB4MTU4MCBrZXJuZWwvd29ya3F1ZXVlLmM6MjI0NAogICMyOiAwMDAwMDAwMGQxNmE2 YzFjICgmZGV2LT5tdXRleCl7Li4uLn0sIGF0OiBkZXZpY2VfbG9jayAgCmluY2x1ZGUvbGludXgv ZGV2aWNlLmg6MTIwNyBbaW5saW5lXQogICMyOiAwMDAwMDAwMGQxNmE2YzFjICgmZGV2LT5tdXRl eCl7Li4uLn0sIGF0OiBodWJfZXZlbnQrMHgxOGEvMHgzYjAwICAKZHJpdmVycy91c2IvY29yZS9o dWIuYzo1Mzc4CiAgIzM6IDAwMDAwMDAwZGY4OWNhMTkgKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2sp eysuKy59LCBhdDogdXNiX2xvY2tfcG9ydCAgCmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6Mjk5NCBb aW5saW5lXQogICMzOiAwMDAwMDAwMGRmODljYTE5ICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsr LisufSwgYXQ6IGh1Yl9wb3J0X2Nvbm5lY3QgIApkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUwMjAg W2lubGluZV0KICAjMzogMDAwMDAwMDBkZjg5Y2ExOSAoJnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7 Ky4rLn0sIGF0OiAgCmh1Yl9wb3J0X2Nvbm5lY3RfY2hhbmdlIGRyaXZlcnMvdXNiL2NvcmUvaHVi LmM6NTIwNCBbaW5saW5lXQogICMzOiAwMDAwMDAwMGRmODljYTE5ICgmcG9ydF9kZXYtPnN0YXR1 c19sb2NrKXsrLisufSwgYXQ6IHBvcnRfZXZlbnQgIApkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUz NTAgW2lubGluZV0KICAjMzogMDAwMDAwMDBkZjg5Y2ExOSAoJnBvcnRfZGV2LT5zdGF0dXNfbG9j ayl7Ky4rLn0sIGF0OiAgCmh1Yl9ldmVudCsweDExYTMvMHgzYjAwIGRyaXZlcnMvdXNiL2NvcmUv aHViLmM6NTQzMgogICM0OiAwMDAwMDAwMDcyODRhMjMxIChoY2QtPmFkZHJlc3MwX211dGV4KXsr LisufSwgYXQ6ICAKaHViX3BvcnRfaW5pdCsweDFiYi8weDJkMzAgZHJpdmVycy91c2IvY29yZS9o dWIuYzo0NTI5CjUgbG9ja3MgaGVsZCBieSBrd29ya2VyLzE6NC81ODE1OgogICMwOiAwMDAwMDAw MGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKX193cml0 ZV9vbmNlX3NpemUgaW5jbHVkZS9saW51eC9jb21waWxlci5oOjIyMCBbaW5saW5lXQogICMwOiAw MDAwMDAwMGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAK YXJjaF9hdG9taWM2NF9zZXQgYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljNjRfNjQuaDozNCBb aW5saW5lXQogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dx KXsrLisufSwgYXQ6IGF0b21pYzY0X3NldCAgCmluY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWlu c3RydW1lbnRlZC5oOjg1NSBbaW5saW5lXQogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgod3FfY29t cGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKYXRvbWljX2xvbmdfc2V0IGluY2x1ZGUv YXNtLWdlbmVyaWMvYXRvbWljLWxvbmcuaDo0MCBbaW5saW5lXQogICMwOiAwMDAwMDAwMGIzYWQx NDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6IHNldF93b3JrX2RhdGEg IAprZXJuZWwvd29ya3F1ZXVlLmM6NjE5IFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwYjNhZDE0MTUg KCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogIApzZXRfd29ya19wb29sX2Fu ZF9jbGVhcl9wZW5kaW5nIGtlcm5lbC93b3JrcXVldWUuYzo2NDYgW2lubGluZV0KICAjMDogMDAw MDAwMDBiM2FkMTQxNSAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiAgCnBy b2Nlc3Nfb25lX3dvcmsrMHg4MWYvMHgxNTgwIGtlcm5lbC93b3JrcXVldWUuYzoyMjQwCiAgIzE6 IDAwMDAwMDAwYjZlMTQwZDIgKCh3b3JrX2NvbXBsZXRpb24pKCZodWItPmV2ZW50cykpeysuKy59 LCBhdDogIApwcm9jZXNzX29uZV93b3JrKzB4ODUzLzB4MTU4MCBrZXJuZWwvd29ya3F1ZXVlLmM6 MjI0NAogICMyOiAwMDAwMDAwMDU0NzMwODUxICgmZGV2LT5tdXRleCl7Li4uLn0sIGF0OiBkZXZp Y2VfbG9jayAgCmluY2x1ZGUvbGludXgvZGV2aWNlLmg6MTIwNyBbaW5saW5lXQogICMyOiAwMDAw MDAwMDU0NzMwODUxICgmZGV2LT5tdXRleCl7Li4uLn0sIGF0OiBodWJfZXZlbnQrMHgxOGEvMHgz YjAwICAKZHJpdmVycy91c2IvY29yZS9odWIuYzo1Mzc4CiAgIzM6IDAwMDAwMDAwZTE5YzE0YjYg KCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysuKy59LCBhdDogdXNiX2xvY2tfcG9ydCAgCmRyaXZl cnMvdXNiL2NvcmUvaHViLmM6Mjk5NCBbaW5saW5lXQogICMzOiAwMDAwMDAwMGUxOWMxNGI2ICgm cG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6IGh1Yl9wb3J0X2Nvbm5lY3QgIApkcml2 ZXJzL3VzYi9jb3JlL2h1Yi5jOjUwMjAgW2lubGluZV0KICAjMzogMDAwMDAwMDBlMTljMTRiNiAo JnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4rLn0sIGF0OiAgCmh1Yl9wb3J0X2Nvbm5lY3RfY2hh bmdlIGRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTIwNCBbaW5saW5lXQogICMzOiAwMDAwMDAwMGUx OWMxNGI2ICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6IHBvcnRfZXZlbnQgIApk cml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUzNTAgW2lubGluZV0KICAjMzogMDAwMDAwMDBlMTljMTRi NiAoJnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4rLn0sIGF0OiAgCmh1Yl9ldmVudCsweDExYTMv MHgzYjAwIGRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTQzMgogICM0OiAwMDAwMDAwMDFjN2JkZGJm IChoY2QtPmFkZHJlc3MwX211dGV4KXsrLisufSwgYXQ6ICAKaHViX3BvcnRfaW5pdCsweDFiYi8w eDJkMzAgZHJpdmVycy91c2IvY29yZS9odWIuYzo0NTI5CjUgbG9ja3MgaGVsZCBieSBrd29ya2Vy LzE6NS81ODU0OgogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1c2JfaHVi X3dxKXsrLisufSwgYXQ6ICAKX193cml0ZV9vbmNlX3NpemUgaW5jbHVkZS9saW51eC9jb21waWxl ci5oOjIyMCBbaW5saW5lXQogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1 c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKYXJjaF9hdG9taWM2NF9zZXQgYXJjaC94ODYvaW5jbHVk ZS9hc20vYXRvbWljNjRfNjQuaDozNCBbaW5saW5lXQogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgo d3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6IGF0b21pYzY0X3NldCAgCmluY2x1 ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oOjg1NSBbaW5saW5lXQogICMwOiAw MDAwMDAwMGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAK YXRvbWljX2xvbmdfc2V0IGluY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWxvbmcuaDo0MCBbaW5s aW5lXQogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsr LisufSwgYXQ6IHNldF93b3JrX2RhdGEgIAprZXJuZWwvd29ya3F1ZXVlLmM6NjE5IFtpbmxpbmVd CiAgIzA6IDAwMDAwMDAwYjNhZDE0MTUgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59 LCBhdDogIApzZXRfd29ya19wb29sX2FuZF9jbGVhcl9wZW5kaW5nIGtlcm5lbC93b3JrcXVldWUu Yzo2NDYgW2lubGluZV0KICAjMDogMDAwMDAwMDBiM2FkMTQxNSAoKHdxX2NvbXBsZXRpb24pdXNi X2h1Yl93cSl7Ky4rLn0sIGF0OiAgCnByb2Nlc3Nfb25lX3dvcmsrMHg4MWYvMHgxNTgwIGtlcm5l bC93b3JrcXVldWUuYzoyMjQwCmR1bW15X2hjZCBkdW1teV9oY2QuMDogVW5zdXBwb3J0ZWQgZHJp dmVyIG1heCBzcGVlZCAwCiAgIzE6IDAwMDAwMDAwMzU3Y2U0ZmIgKCh3b3JrX2NvbXBsZXRpb24p KCZodWItPmV2ZW50cykpeysuKy59LCBhdDogIApwcm9jZXNzX29uZV93b3JrKzB4ODUzLzB4MTU4 MCBrZXJuZWwvd29ya3F1ZXVlLmM6MjI0NAogICMyOiAwMDAwMDAwMDlkODY4ZTJkICgmZGV2LT5t dXRleCl7Li4uLn0sIGF0OiBkZXZpY2VfbG9jayAgCmluY2x1ZGUvbGludXgvZGV2aWNlLmg6MTIw NyBbaW5saW5lXQogICMyOiAwMDAwMDAwMDlkODY4ZTJkICgmZGV2LT5tdXRleCl7Li4uLn0sIGF0 OiBodWJfZXZlbnQrMHgxOGEvMHgzYjAwICAKZHJpdmVycy91c2IvY29yZS9odWIuYzo1Mzc4CnVz Yi1mdXp6ZXItZ2FkZ2V0IGR1bW15X3VkYy4wOiBmYWlsZWQgdG8gc3RhcnQgVVNCIGZ1enplcjog LTIyCiAgIzM6IDAwMDAwMDAwOTM4YTY0MTQgKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysuKy59 LCBhdDogdXNiX2xvY2tfcG9ydCAgCmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6Mjk5NCBbaW5saW5l XQogICMzOiAwMDAwMDAwMDkzOGE2NDE0ICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwg YXQ6IGh1Yl9wb3J0X2Nvbm5lY3QgIApkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUwMjAgW2lubGlu ZV0KICAjMzogMDAwMDAwMDA5MzhhNjQxNCAoJnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4rLn0s IGF0OiAgCmh1Yl9wb3J0X2Nvbm5lY3RfY2hhbmdlIGRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTIw NCBbaW5saW5lXQogICMzOiAwMDAwMDAwMDkzOGE2NDE0ICgmcG9ydF9kZXYtPnN0YXR1c19sb2Nr KXsrLisufSwgYXQ6IHBvcnRfZXZlbnQgIApkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUzNTAgW2lu bGluZV0KICAjMzogMDAwMDAwMDA5MzhhNjQxNCAoJnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4r Ln0sIGF0OiAgCmh1Yl9ldmVudCsweDExYTMvMHgzYjAwIGRyaXZlcnMvdXNiL2NvcmUvaHViLmM6 NTQzMgogICM0OiAwMDAwMDAwMDUwNzYwOTQ5IChoY2QtPmFkZHJlc3MwX211dGV4KXsrLisufSwg YXQ6ICAKaHViX3BvcnRfaW5pdCsweDFiYi8weDJkMzAgZHJpdmVycy91c2IvY29yZS9odWIuYzo0 NTI5CjUgbG9ja3MgaGVsZCBieSBrd29ya2VyLzE6Ni81OTUzOgogICMwOiAwMDAwMDAwMGIzYWQx NDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKX193cml0ZV9vbmNl X3NpemUgaW5jbHVkZS9saW51eC9jb21waWxlci5oOjIyMCBbaW5saW5lXQogICMwOiAwMDAwMDAw MGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKYXJjaF9h dG9taWM2NF9zZXQgYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljNjRfNjQuaDozNCBbaW5saW5l XQogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisu fSwgYXQ6IGF0b21pYzY0X3NldCAgCmluY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1l bnRlZC5oOjg1NSBbaW5saW5lXQogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgod3FfY29tcGxldGlv bil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKYXRvbWljX2xvbmdfc2V0IGluY2x1ZGUvYXNtLWdl bmVyaWMvYXRvbWljLWxvbmcuaDo0MCBbaW5saW5lXQogICMwOiAwMDAwMDAwMGIzYWQxNDE1ICgo d3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6IHNldF93b3JrX2RhdGEgIAprZXJu ZWwvd29ya3F1ZXVlLmM6NjE5IFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwYjNhZDE0MTUgKCh3cV9j b21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogIApzZXRfd29ya19wb29sX2FuZF9jbGVh cl9wZW5kaW5nIGtlcm5lbC93b3JrcXVldWUuYzo2NDYgW2lubGluZV0KICAjMDogMDAwMDAwMDBi M2FkMTQxNSAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiAgCnByb2Nlc3Nf b25lX3dvcmsrMHg4MWYvMHgxNTgwIGtlcm5lbC93b3JrcXVldWUuYzoyMjQwCiAgIzE6IDAwMDAw MDAwZDNiMDBiODIgKCh3b3JrX2NvbXBsZXRpb24pKCZodWItPmV2ZW50cykpeysuKy59LCBhdDog IApwcm9jZXNzX29uZV93b3JrKzB4ODUzLzB4MTU4MCBrZXJuZWwvd29ya3F1ZXVlLmM6MjI0NAog ICMyOiAwMDAwMDAwMDhhZjIyZWFlICgmZGV2LT5tdXRleCl7Li4uLn0sIGF0OiBkZXZpY2VfbG9j ayAgCmluY2x1ZGUvbGludXgvZGV2aWNlLmg6MTIwNyBbaW5saW5lXQogICMyOiAwMDAwMDAwMDhh ZjIyZWFlICgmZGV2LT5tdXRleCl7Li4uLn0sIGF0OiBodWJfZXZlbnQrMHgxOGEvMHgzYjAwICAK ZHJpdmVycy91c2IvY29yZS9odWIuYzo1Mzc4CiAgIzM6IDAwMDAwMDAwN2Y3YjdlZTAgKCZwb3J0 X2Rldi0+c3RhdHVzX2xvY2speysuKy59LCBhdDogdXNiX2xvY2tfcG9ydCAgCmRyaXZlcnMvdXNi L2NvcmUvaHViLmM6Mjk5NCBbaW5saW5lXQogICMzOiAwMDAwMDAwMDdmN2I3ZWUwICgmcG9ydF9k ZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6IGh1Yl9wb3J0X2Nvbm5lY3QgIApkcml2ZXJzL3Vz Yi9jb3JlL2h1Yi5jOjUwMjAgW2lubGluZV0KICAjMzogMDAwMDAwMDA3ZjdiN2VlMCAoJnBvcnRf ZGV2LT5zdGF0dXNfbG9jayl7Ky4rLn0sIGF0OiAgCmh1Yl9wb3J0X2Nvbm5lY3RfY2hhbmdlIGRy aXZlcnMvdXNiL2NvcmUvaHViLmM6NTIwNCBbaW5saW5lXQogICMzOiAwMDAwMDAwMDdmN2I3ZWUw ICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6IHBvcnRfZXZlbnQgIApkcml2ZXJz L3VzYi9jb3JlL2h1Yi5jOjUzNTAgW2lubGluZV0KICAjMzogMDAwMDAwMDA3ZjdiN2VlMCAoJnBv cnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4rLn0sIGF0OiAgCmh1Yl9ldmVudCsweDExYTMvMHgzYjAw IGRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTQzMgogICM0OiAwMDAwMDAwMDkwOTA5ZWNlIChoY2Qt PmFkZHJlc3MwX211dGV4KXsrLisufSwgYXQ6ICAKaHViX3BvcnRfaW5pdCsweDFiYi8weDJkMzAg ZHJpdmVycy91c2IvY29yZS9odWIuYzo0NTI5Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KCk5NSSBiYWNrdHJhY2UgZm9yIGNwdSAwCkNQVTogMCBQSUQ6IDIz IENvbW06IGtodW5ndGFza2QgTm90IHRhaW50ZWQgNS4xLjAtcmM0LWc5YTMzYjM2LWRpcnR5ICMx CkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1 dGUgRW5naW5lLCBCSU9TICAKR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKICBfX2R1bXBf c3RhY2sgbGliL2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQogIGR1bXBfc3RhY2srMHhlOC8weDE2 ZSBsaWIvZHVtcF9zdGFjay5jOjExMwogIG5taV9jcHVfYmFja3RyYWNlLmNvbGQrMHg0OC8weDg3 IGxpYi9ubWlfYmFja3RyYWNlLmM6MTAxCiAgbm1pX3RyaWdnZXJfY3B1bWFza19iYWNrdHJhY2Ur MHgxYTYvMHgxYmQgbGliL25taV9iYWNrdHJhY2UuYzo2MgogIHRyaWdnZXJfYWxsX2NwdV9iYWNr dHJhY2UgaW5jbHVkZS9saW51eC9ubWkuaDoxNDYgW2lubGluZV0KICBjaGVja19odW5nX3VuaW50 ZXJydXB0aWJsZV90YXNrcyBrZXJuZWwvaHVuZ190YXNrLmM6MjA0IFtpbmxpbmVdCiAgd2F0Y2hk b2crMHg5OGUvMHhlMjAga2VybmVsL2h1bmdfdGFzay5jOjI4OAogIGt0aHJlYWQrMHgzMTMvMHg0 MjAga2VybmVsL2t0aHJlYWQuYzoyNTMKICByZXRfZnJvbV9mb3JrKzB4M2EvMHg1MCBhcmNoL3g4 Ni9lbnRyeS9lbnRyeV82NC5TOjM1MgpTZW5kaW5nIE5NSSBmcm9tIENQVSAwIHRvIENQVXMgMToK Tk1JIGJhY2t0cmFjZSBmb3IgY3B1IDEgc2tpcHBlZDogaWRsaW5nIGF0IG5hdGl2ZV9zYWZlX2hh bHQrMHgyLzB4MTAgIAphcmNoL3g4Ni9pbmNsdWRlL2FzbS9pcnFmbGFncy5oOjU3CgoKVGVzdGVk IG9uOgoKY29tbWl0OiAgICAgICAgIDlhMzNiMzY5IHVzYi1mdXp6ZXI6IG1haW4gdXNiIGdhZGdl dCBmdXp6ZXIgZHJpdmVyCmdpdCB0cmVlOiAgICAgICBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xl L2thc2FuL3RyZWUvdXNiLWZ1enplcgpjb25zb2xlIG91dHB1dDogaHR0cHM6Ly9zeXprYWxsZXIu YXBwc3BvdC5jb20veC9sb2cudHh0P3g9MTBiNWUwNTcyMDAwMDAKa2VybmVsIGNvbmZpZzogIGh0 dHBzOi8vc3l6a2FsbGVyLmFwcHNwb3QuY29tL3gvLmNvbmZpZz94PTIzZTM3ZjU5ZDk0ZGRkMTUK Y29tcGlsZXI6ICAgICAgIGdjYyAoR0NDKSA5LjAuMCAyMDE4MTIzMSAoZXhwZXJpbWVudGFsKQpw YXRjaDogICAgICAgICAgaHR0cHM6Ly9zeXprYWxsZXIuYXBwc3BvdC5jb20veC9wYXRjaC5kaWZm P3g9MTMxZGNhNmIyMDAwMDAK