From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3sfm0v2HFPzDsgc for ; Thu, 22 Sep 2016 15:54:55 +1000 (AEST) Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id u8M5rEY0023665 for ; Thu, 22 Sep 2016 01:54:53 -0400 Received: from e28smtp07.in.ibm.com (e28smtp07.in.ibm.com [125.16.236.7]) by mx0a-001b2d01.pphosted.com with ESMTP id 25ktaag9h9-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Thu, 22 Sep 2016 01:54:52 -0400 Received: from localhost by e28smtp07.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 22 Sep 2016 11:24:47 +0530 Received: from d28relay09.in.ibm.com (d28relay09.in.ibm.com [9.184.220.160]) by d28dlp01.in.ibm.com (Postfix) with ESMTP id 8467CE0040 for ; Thu, 22 Sep 2016 11:24:07 +0530 (IST) Received: from d28av02.in.ibm.com (d28av02.in.ibm.com [9.184.220.64]) by d28relay09.in.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u8M5sitH18874574 for ; Thu, 22 Sep 2016 11:24:44 +0530 Received: from d28av02.in.ibm.com (localhost [127.0.0.1]) by d28av02.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u8M5sf2U003048 for ; Thu, 22 Sep 2016 11:24:44 +0530 Date: Thu, 22 Sep 2016 13:54:30 +0800 From: xinhui MIME-Version: 1.0 To: kbuild test robot CC: kbuild-all@01.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, benh@kernel.crashing.org, paulus@samba.org, mpe@ellerman.id.au, peterz@infradead.org, mingo@redhat.com, paulmck@linux.vnet.ibm.com, waiman.long@hpe.com, virtualization@lists.linux-foundation.org Subject: Re: [PATCH v7 6/6] powerpc: pSeries: Add pv-qspinlock build config/make References: <201609191651.3BF51xRa%fengguang.wu@intel.com> In-Reply-To: <201609191651.3BF51xRa%fengguang.wu@intel.com> Content-Type: text/plain; charset=UTF-8; format=flowed Message-Id: <57E37216.1030505@linux.vnet.ibm.com> List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , hi, all ok, this patch set depends on https://patchwork.kernel.org/patch/8953981/ [V4] powerpc: Implement {cmp}xchg for u8 and u16 sorry. On 2016年09月19日 16:58, kbuild test robot wrote: > Hi Pan, > > [auto build test ERROR on powerpc/next] > [also build test ERROR on v4.8-rc7 next-20160916] > [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] > [Suggest to use git(>=2.9.0) format-patch --base= (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] > [Check https://git-scm.com/docs/git-format-patch for more information] > > url: https://github.com/0day-ci/linux/commits/Pan-Xinhui/Implement-qspinlock-pv-qspinlock-on-ppc/20160919-133130 > base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next > config: powerpc-allyesconfig (attached as .config) > compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705 > reproduce: > wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # save the attached .config to linux build tree > make.cross ARCH=powerpc > > All errors (new ones prefixed by >>): > > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:326:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); > ^~~~~~~~~~~~~~~~ > In function '__cmpxchg', > inlined from 'pv_wait_node' at kernel/locking/qspinlock_paravirt.h:328:3, > inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:538:3: > include/linux/compiler.h:491:38: error: call to '__compiletime_assert_326' declared with attribute error: Unsupported size for __cmpxchg > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^ > include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' > prefix ## suffix(); \ > ^~~~~~ > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:326:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); > ^~~~~~~~~~~~~~~~ > In function '__cmpxchg', > inlined from 'pv_wait_head_or_lock' at kernel/locking/qspinlock_paravirt.h:109:10, > inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:573:5: > include/linux/compiler.h:491:38: error: call to '__compiletime_assert_326' declared with attribute error: Unsupported size for __cmpxchg > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^ > include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' > prefix ## suffix(); \ > ^~~~~~ > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:326:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); > ^~~~~~~~~~~~~~~~ > In function '__xchg_relaxed', > inlined from 'pv_wait_head_or_lock' at kernel/locking/qspinlock_paravirt.h:442:8, > inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:573:5: > include/linux/compiler.h:491:38: error: call to '__compiletime_assert_113' declared with attribute error: Unsupported size for __xchg_local > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^ > include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' > prefix ## suffix(); \ > ^~~~~~ > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:113:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local"); > ^~~~~~~~~~~~~~~~ > In function '__cmpxchg', > inlined from 'pv_kick_node' at kernel/locking/qspinlock_paravirt.h:366:6, > inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:616:2: > include/linux/compiler.h:491:38: error: call to '__compiletime_assert_326' declared with attribute error: Unsupported size for __cmpxchg > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^ > include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' > prefix ## suffix(); \ > ^~~~~~ > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:326:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); > ^~~~~~~~~~~~~~~~ > In function '__xchg_relaxed', > inlined from '__pv_queued_spin_lock_slowpath' at kernel/locking/qspinlock.c:184:14: > include/linux/compiler.h:491:38: error: call to '__compiletime_assert_113' declared with attribute error: Unsupported size for __xchg_local > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^ > include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' > prefix ## suffix(); \ > ^~~~~~ > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:113:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local"); > ^~~~~~~~~~~~~~~~ > In function '__cmpxchg_relaxed', > inlined from '__pv_queued_spin_unlock' at kernel/locking/qspinlock_paravirt.h:547:11: >>> include/linux/compiler.h:491:38: error: call to '__compiletime_assert_358' declared with attribute error: Unsupported size for __cmpxchg_relaxed > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^ > include/linux/compiler.h:474:4: note: in definition of macro '__compiletime_assert' > prefix ## suffix(); \ > ^~~~~~ > include/linux/compiler.h:491:2: note: in expansion of macro '_compiletime_assert' > _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > ^~~~~~~~~~~~~~~~~~~ > include/linux/bug.h:51:37: note: in expansion of macro 'compiletime_assert' > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > ^~~~~~~~~~~~~~~~~~ > arch/powerpc/include/asm/cmpxchg.h:358:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_relaxed"); > ^~~~~~~~~~~~~~~~ > > vim +/__compiletime_assert_358 +491 include/linux/compiler.h > > 9a8ab1c3 Daniel Santos 2013-02-21 475 __compiletime_error_fallback(__cond); \ > 9a8ab1c3 Daniel Santos 2013-02-21 476 } while (0) > 9a8ab1c3 Daniel Santos 2013-02-21 477 > 9a8ab1c3 Daniel Santos 2013-02-21 478 #define _compiletime_assert(condition, msg, prefix, suffix) \ > 9a8ab1c3 Daniel Santos 2013-02-21 479 __compiletime_assert(condition, msg, prefix, suffix) > 9a8ab1c3 Daniel Santos 2013-02-21 480 > 9a8ab1c3 Daniel Santos 2013-02-21 481 /** > 9a8ab1c3 Daniel Santos 2013-02-21 482 * compiletime_assert - break build and emit msg if condition is false > 9a8ab1c3 Daniel Santos 2013-02-21 483 * @condition: a compile-time constant condition to check > 9a8ab1c3 Daniel Santos 2013-02-21 484 * @msg: a message to emit if condition is false > 9a8ab1c3 Daniel Santos 2013-02-21 485 * > 9a8ab1c3 Daniel Santos 2013-02-21 486 * In tradition of POSIX assert, this macro will break the build if the > 9a8ab1c3 Daniel Santos 2013-02-21 487 * supplied condition is *false*, emitting the supplied error message if the > 9a8ab1c3 Daniel Santos 2013-02-21 488 * compiler has support to do so. > 9a8ab1c3 Daniel Santos 2013-02-21 489 */ > 9a8ab1c3 Daniel Santos 2013-02-21 490 #define compiletime_assert(condition, msg) \ > 9a8ab1c3 Daniel Santos 2013-02-21 @491 _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) > 9a8ab1c3 Daniel Santos 2013-02-21 492 > 47933ad4 Peter Zijlstra 2013-11-06 493 #define compiletime_assert_atomic_type(t) \ > 47933ad4 Peter Zijlstra 2013-11-06 494 compiletime_assert(__native_word(t), \ > 47933ad4 Peter Zijlstra 2013-11-06 495 "Need native word sized stores/loads for atomicity.") > 47933ad4 Peter Zijlstra 2013-11-06 496 > 9c3cdc1f Linus Torvalds 2008-05-10 497 /* > 9c3cdc1f Linus Torvalds 2008-05-10 498 * Prevent the compiler from merging or refetching accesses. The compiler > 9c3cdc1f Linus Torvalds 2008-05-10 499 * is also forbidden from reordering successive instances of ACCESS_ONCE(), > > :::::: The code at line 491 was first introduced by commit > :::::: 9a8ab1c39970a4938a72d94e6fd13be88a797590 bug.h, compiler.h: introduce compiletime_assert & BUILD_BUG_ON_MSG > > :::::: TO: Daniel Santos > :::::: CC: Linus Torvalds > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Corporation > From mboxrd@z Thu Jan 1 00:00:00 1970 From: xinhui Subject: Re: [PATCH v7 6/6] powerpc: pSeries: Add pv-qspinlock build config/make Date: Thu, 22 Sep 2016 13:54:30 +0800 Message-ID: <57E37216.1030505@linux.vnet.ibm.com> References: <201609191651.3BF51xRa%fengguang.wu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <201609191651.3BF51xRa%fengguang.wu@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: kbuild test robot Cc: peterz@infradead.org, mpe@ellerman.id.au, linux-kernel@vger.kernel.org, waiman.long@hpe.com, virtualization@lists.linux-foundation.org, mingo@redhat.com, paulus@samba.org, kbuild-all@01.org, benh@kernel.crashing.org, paulmck@linux.vnet.ibm.com, linuxppc-dev@lists.ozlabs.org List-Id: virtualization@lists.linuxfoundation.org aGksIGFsbAoJb2ssIHRoaXMgcGF0Y2ggc2V0IGRlcGVuZHMgb24KaHR0cHM6Ly9wYXRjaHdvcmsu a2VybmVsLm9yZy9wYXRjaC84OTUzOTgxLyBbVjRdIHBvd2VycGM6IEltcGxlbWVudCB7Y21wfXhj aGcgZm9yIHU4IGFuZCB1MTYKCnNvcnJ5LgoKT24gMjAxNuW5tDA55pyIMTnml6UgMTY6NTgsIGti dWlsZCB0ZXN0IHJvYm90IHdyb3RlOgo+IEhpIFBhbiwKPgo+IFthdXRvIGJ1aWxkIHRlc3QgRVJS T1Igb24gcG93ZXJwYy9uZXh0XQo+IFthbHNvIGJ1aWxkIHRlc3QgRVJST1Igb24gdjQuOC1yYzcg bmV4dC0yMDE2MDkxNl0KPiBbaWYgeW91ciBwYXRjaCBpcyBhcHBsaWVkIHRvIHRoZSB3cm9uZyBn aXQgdHJlZSwgcGxlYXNlIGRyb3AgdXMgYSBub3RlIHRvIGhlbHAgaW1wcm92ZSB0aGUgc3lzdGVt XQo+IFtTdWdnZXN0IHRvIHVzZSBnaXQoPj0yLjkuMCkgZm9ybWF0LXBhdGNoIC0tYmFzZT08Y29t bWl0PiAob3IgLS1iYXNlPWF1dG8gZm9yIGNvbnZlbmllbmNlKSB0byByZWNvcmQgd2hhdCAocHVi bGljLCB3ZWxsLWtub3duKSBjb21taXQgeW91ciBwYXRjaCBzZXJpZXMgd2FzIGJ1aWx0IG9uXQo+ IFtDaGVjayBodHRwczovL2dpdC1zY20uY29tL2RvY3MvZ2l0LWZvcm1hdC1wYXRjaCBmb3IgbW9y ZSBpbmZvcm1hdGlvbl0KPgo+IHVybDogICAgaHR0cHM6Ly9naXRodWIuY29tLzBkYXktY2kvbGlu dXgvY29tbWl0cy9QYW4tWGluaHVpL0ltcGxlbWVudC1xc3BpbmxvY2stcHYtcXNwaW5sb2NrLW9u LXBwYy8yMDE2MDkxOS0xMzMxMzAKPiBiYXNlOiAgIGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHVi L3NjbS9saW51eC9rZXJuZWwvZ2l0L3Bvd2VycGMvbGludXguZ2l0IG5leHQKPiBjb25maWc6IHBv d2VycGMtYWxseWVzY29uZmlnIChhdHRhY2hlZCBhcyAuY29uZmlnKQo+IGNvbXBpbGVyOiBwb3dl cnBjNjQtbGludXgtZ251LWdjYyAoRGViaWFuIDYuMS4xLTkpIDYuMS4xIDIwMTYwNzA1Cj4gcmVw cm9kdWNlOgo+ICAgICAgICAgIHdnZXQgaHR0cHM6Ly9naXQua2VybmVsLm9yZy9jZ2l0L2xpbnV4 L2tlcm5lbC9naXQvd2ZnL2xrcC10ZXN0cy5naXQvcGxhaW4vc2Jpbi9tYWtlLmNyb3NzIC1PIH4v YmluL21ha2UuY3Jvc3MKPiAgICAgICAgICBjaG1vZCAreCB+L2Jpbi9tYWtlLmNyb3NzCj4gICAg ICAgICAgIyBzYXZlIHRoZSBhdHRhY2hlZCAuY29uZmlnIHRvIGxpbnV4IGJ1aWxkIHRyZWUKPiAg ICAgICAgICBtYWtlLmNyb3NzIEFSQ0g9cG93ZXJwYwo+Cj4gQWxsIGVycm9ycyAobmV3IG9uZXMg cHJlZml4ZWQgYnkgPj4pOgo+Cj4gICAgIGluY2x1ZGUvbGludXgvY29tcGlsZXIuaDo0OTE6Mjog bm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdfY29tcGlsZXRpbWVfYXNzZXJ0Jwo+ICAgICAg IF9jb21waWxldGltZV9hc3NlcnQoY29uZGl0aW9uLCBtc2csIF9fY29tcGlsZXRpbWVfYXNzZXJ0 XywgX19MSU5FX18pCj4gICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgo+ICAgICBpbmNsdWRlL2xp bnV4L2J1Zy5oOjUxOjM3OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gJ2NvbXBpbGV0aW1l X2Fzc2VydCcKPiAgICAgICNkZWZpbmUgQlVJTERfQlVHX09OX01TRyhjb25kLCBtc2cpIGNvbXBp bGV0aW1lX2Fzc2VydCghKGNvbmQpLCBtc2cpCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KPiAgICAgYXJjaC9wb3dlcnBjL2luY2x1 ZGUvYXNtL2NtcHhjaGcuaDozMjY6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdCVUlM RF9CVUdfT05fTVNHJwo+ICAgICAgIEJVSUxEX0JVR19PTl9NU0coMSwgIlVuc3VwcG9ydGVkIHNp emUgZm9yIF9fY21weGNoZyIpOwo+ICAgICAgIF5+fn5+fn5+fn5+fn5+fn4KPiAgICAgSW4gZnVu Y3Rpb24gJ19fY21weGNoZycsCj4gICAgICAgICBpbmxpbmVkIGZyb20gJ3B2X3dhaXRfbm9kZScg YXQga2VybmVsL2xvY2tpbmcvcXNwaW5sb2NrX3BhcmF2aXJ0Lmg6MzI4OjMsCj4gICAgICAgICBp bmxpbmVkIGZyb20gJ19fcHZfcXVldWVkX3NwaW5fbG9ja19zbG93cGF0aCcgYXQga2VybmVsL2xv Y2tpbmcvcXNwaW5sb2NrLmM6NTM4OjM6Cj4gICAgIGluY2x1ZGUvbGludXgvY29tcGlsZXIuaDo0 OTE6Mzg6IGVycm9yOiBjYWxsIHRvICdfX2NvbXBpbGV0aW1lX2Fzc2VydF8zMjYnIGRlY2xhcmVk IHdpdGggYXR0cmlidXRlIGVycm9yOiBVbnN1cHBvcnRlZCBzaXplIGZvciBfX2NtcHhjaGcKPiAg ICAgICBfY29tcGlsZXRpbWVfYXNzZXJ0KGNvbmRpdGlvbiwgbXNnLCBfX2NvbXBpbGV0aW1lX2Fz c2VydF8sIF9fTElORV9fKQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KPiAgICAgaW5jbHVkZS9saW51eC9jb21waWxlci5oOjQ3NDo0OiBub3RlOiBpbiBkZWZp bml0aW9uIG9mIG1hY3JvICdfX2NvbXBpbGV0aW1lX2Fzc2VydCcKPiAgICAgICAgIHByZWZpeCAj IyBzdWZmaXgoKTsgICAgXAo+ICAgICAgICAgXn5+fn5+Cj4gICAgIGluY2x1ZGUvbGludXgvY29t cGlsZXIuaDo0OTE6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdfY29tcGlsZXRpbWVf YXNzZXJ0Jwo+ICAgICAgIF9jb21waWxldGltZV9hc3NlcnQoY29uZGl0aW9uLCBtc2csIF9fY29t cGlsZXRpbWVfYXNzZXJ0XywgX19MSU5FX18pCj4gICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgo+ ICAgICBpbmNsdWRlL2xpbnV4L2J1Zy5oOjUxOjM3OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFj cm8gJ2NvbXBpbGV0aW1lX2Fzc2VydCcKPiAgICAgICNkZWZpbmUgQlVJTERfQlVHX09OX01TRyhj b25kLCBtc2cpIGNvbXBpbGV0aW1lX2Fzc2VydCghKGNvbmQpLCBtc2cpCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KPiAgICAgYXJj aC9wb3dlcnBjL2luY2x1ZGUvYXNtL2NtcHhjaGcuaDozMjY6Mjogbm90ZTogaW4gZXhwYW5zaW9u IG9mIG1hY3JvICdCVUlMRF9CVUdfT05fTVNHJwo+ICAgICAgIEJVSUxEX0JVR19PTl9NU0coMSwg IlVuc3VwcG9ydGVkIHNpemUgZm9yIF9fY21weGNoZyIpOwo+ICAgICAgIF5+fn5+fn5+fn5+fn5+ fn4KPiAgICAgSW4gZnVuY3Rpb24gJ19fY21weGNoZycsCj4gICAgICAgICBpbmxpbmVkIGZyb20g J3B2X3dhaXRfaGVhZF9vcl9sb2NrJyBhdCBrZXJuZWwvbG9ja2luZy9xc3BpbmxvY2tfcGFyYXZp cnQuaDoxMDk6MTAsCj4gICAgICAgICBpbmxpbmVkIGZyb20gJ19fcHZfcXVldWVkX3NwaW5fbG9j a19zbG93cGF0aCcgYXQga2VybmVsL2xvY2tpbmcvcXNwaW5sb2NrLmM6NTczOjU6Cj4gICAgIGlu Y2x1ZGUvbGludXgvY29tcGlsZXIuaDo0OTE6Mzg6IGVycm9yOiBjYWxsIHRvICdfX2NvbXBpbGV0 aW1lX2Fzc2VydF8zMjYnIGRlY2xhcmVkIHdpdGggYXR0cmlidXRlIGVycm9yOiBVbnN1cHBvcnRl ZCBzaXplIGZvciBfX2NtcHhjaGcKPiAgICAgICBfY29tcGlsZXRpbWVfYXNzZXJ0KGNvbmRpdGlv biwgbXNnLCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8sIF9fTElORV9fKQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KPiAgICAgaW5jbHVkZS9saW51eC9jb21waWxl ci5oOjQ3NDo0OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdfX2NvbXBpbGV0aW1lX2Fz c2VydCcKPiAgICAgICAgIHByZWZpeCAjIyBzdWZmaXgoKTsgICAgXAo+ICAgICAgICAgXn5+fn5+ Cj4gICAgIGluY2x1ZGUvbGludXgvY29tcGlsZXIuaDo0OTE6Mjogbm90ZTogaW4gZXhwYW5zaW9u IG9mIG1hY3JvICdfY29tcGlsZXRpbWVfYXNzZXJ0Jwo+ICAgICAgIF9jb21waWxldGltZV9hc3Nl cnQoY29uZGl0aW9uLCBtc2csIF9fY29tcGlsZXRpbWVfYXNzZXJ0XywgX19MSU5FX18pCj4gICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fgo+ICAgICBpbmNsdWRlL2xpbnV4L2J1Zy5oOjUxOjM3OiBu b3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gJ2NvbXBpbGV0aW1lX2Fzc2VydCcKPiAgICAgICNk ZWZpbmUgQlVJTERfQlVHX09OX01TRyhjb25kLCBtc2cpIGNvbXBpbGV0aW1lX2Fzc2VydCghKGNv bmQpLCBtc2cpCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn4KPiAgICAgYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2NtcHhjaGcuaDoz MjY6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdCVUlMRF9CVUdfT05fTVNHJwo+ICAg ICAgIEJVSUxEX0JVR19PTl9NU0coMSwgIlVuc3VwcG9ydGVkIHNpemUgZm9yIF9fY21weGNoZyIp Owo+ICAgICAgIF5+fn5+fn5+fn5+fn5+fn4KPiAgICAgSW4gZnVuY3Rpb24gJ19feGNoZ19yZWxh eGVkJywKPiAgICAgICAgIGlubGluZWQgZnJvbSAncHZfd2FpdF9oZWFkX29yX2xvY2snIGF0IGtl cm5lbC9sb2NraW5nL3FzcGlubG9ja19wYXJhdmlydC5oOjQ0Mjo4LAo+ICAgICAgICAgaW5saW5l ZCBmcm9tICdfX3B2X3F1ZXVlZF9zcGluX2xvY2tfc2xvd3BhdGgnIGF0IGtlcm5lbC9sb2NraW5n L3FzcGlubG9jay5jOjU3Mzo1Ogo+ICAgICBpbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmg6NDkxOjM4 OiBlcnJvcjogY2FsbCB0byAnX19jb21waWxldGltZV9hc3NlcnRfMTEzJyBkZWNsYXJlZCB3aXRo IGF0dHJpYnV0ZSBlcnJvcjogVW5zdXBwb3J0ZWQgc2l6ZSBmb3IgX194Y2hnX2xvY2FsCj4gICAg ICAgX2NvbXBpbGV0aW1lX2Fzc2VydChjb25kaXRpb24sIG1zZywgX19jb21waWxldGltZV9hc3Nl cnRfLCBfX0xJTkVfXykKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCj4gICAgIGluY2x1ZGUvbGludXgvY29tcGlsZXIuaDo0NzQ6NDogbm90ZTogaW4gZGVmaW5p dGlvbiBvZiBtYWNybyAnX19jb21waWxldGltZV9hc3NlcnQnCj4gICAgICAgICBwcmVmaXggIyMg c3VmZml4KCk7ICAgIFwKPiAgICAgICAgIF5+fn5+fgo+ICAgICBpbmNsdWRlL2xpbnV4L2NvbXBp bGVyLmg6NDkxOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnX2NvbXBpbGV0aW1lX2Fz c2VydCcKPiAgICAgICBfY29tcGlsZXRpbWVfYXNzZXJ0KGNvbmRpdGlvbiwgbXNnLCBfX2NvbXBp bGV0aW1lX2Fzc2VydF8sIF9fTElORV9fKQo+ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KPiAg ICAgaW5jbHVkZS9saW51eC9idWcuaDo1MTozNzogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv ICdjb21waWxldGltZV9hc3NlcnQnCj4gICAgICAjZGVmaW5lIEJVSUxEX0JVR19PTl9NU0coY29u ZCwgbXNnKSBjb21waWxldGltZV9hc3NlcnQoIShjb25kKSwgbXNnKQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+Cj4gICAgIGFyY2gv cG93ZXJwYy9pbmNsdWRlL2FzbS9jbXB4Y2hnLmg6MTEzOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyAnQlVJTERfQlVHX09OX01TRycKPiAgICAgICBCVUlMRF9CVUdfT05fTVNHKDEsICJV bnN1cHBvcnRlZCBzaXplIGZvciBfX3hjaGdfbG9jYWwiKTsKPiAgICAgICBefn5+fn5+fn5+fn5+ fn5+Cj4gICAgIEluIGZ1bmN0aW9uICdfX2NtcHhjaGcnLAo+ICAgICAgICAgaW5saW5lZCBmcm9t ICdwdl9raWNrX25vZGUnIGF0IGtlcm5lbC9sb2NraW5nL3FzcGlubG9ja19wYXJhdmlydC5oOjM2 Njo2LAo+ICAgICAgICAgaW5saW5lZCBmcm9tICdfX3B2X3F1ZXVlZF9zcGluX2xvY2tfc2xvd3Bh dGgnIGF0IGtlcm5lbC9sb2NraW5nL3FzcGlubG9jay5jOjYxNjoyOgo+ICAgICBpbmNsdWRlL2xp bnV4L2NvbXBpbGVyLmg6NDkxOjM4OiBlcnJvcjogY2FsbCB0byAnX19jb21waWxldGltZV9hc3Nl cnRfMzI2JyBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSBlcnJvcjogVW5zdXBwb3J0ZWQgc2l6ZSBm b3IgX19jbXB4Y2hnCj4gICAgICAgX2NvbXBpbGV0aW1lX2Fzc2VydChjb25kaXRpb24sIG1zZywg X19jb21waWxldGltZV9hc3NlcnRfLCBfX0xJTkVfXykKPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCj4gICAgIGluY2x1ZGUvbGludXgvY29tcGlsZXIuaDo0NzQ6 NDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAnX19jb21waWxldGltZV9hc3NlcnQnCj4g ICAgICAgICBwcmVmaXggIyMgc3VmZml4KCk7ICAgIFwKPiAgICAgICAgIF5+fn5+fgo+ICAgICBp bmNsdWRlL2xpbnV4L2NvbXBpbGVyLmg6NDkxOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byAnX2NvbXBpbGV0aW1lX2Fzc2VydCcKPiAgICAgICBfY29tcGlsZXRpbWVfYXNzZXJ0KGNvbmRp dGlvbiwgbXNnLCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8sIF9fTElORV9fKQo+ICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn4KPiAgICAgaW5jbHVkZS9saW51eC9idWcuaDo1MTozNzogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvICdjb21waWxldGltZV9hc3NlcnQnCj4gICAgICAjZGVmaW5lIEJV SUxEX0JVR19PTl9NU0coY29uZCwgbXNnKSBjb21waWxldGltZV9hc3NlcnQoIShjb25kKSwgbXNn KQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+Cj4gICAgIGFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9jbXB4Y2hnLmg6MzI2OjI6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnQlVJTERfQlVHX09OX01TRycKPiAgICAgICBCVUlM RF9CVUdfT05fTVNHKDEsICJVbnN1cHBvcnRlZCBzaXplIGZvciBfX2NtcHhjaGciKTsKPiAgICAg ICBefn5+fn5+fn5+fn5+fn5+Cj4gICAgIEluIGZ1bmN0aW9uICdfX3hjaGdfcmVsYXhlZCcsCj4g ICAgICAgICBpbmxpbmVkIGZyb20gJ19fcHZfcXVldWVkX3NwaW5fbG9ja19zbG93cGF0aCcgYXQg a2VybmVsL2xvY2tpbmcvcXNwaW5sb2NrLmM6MTg0OjE0Ogo+ICAgICBpbmNsdWRlL2xpbnV4L2Nv bXBpbGVyLmg6NDkxOjM4OiBlcnJvcjogY2FsbCB0byAnX19jb21waWxldGltZV9hc3NlcnRfMTEz JyBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSBlcnJvcjogVW5zdXBwb3J0ZWQgc2l6ZSBmb3IgX194 Y2hnX2xvY2FsCj4gICAgICAgX2NvbXBpbGV0aW1lX2Fzc2VydChjb25kaXRpb24sIG1zZywgX19j b21waWxldGltZV9hc3NlcnRfLCBfX0xJTkVfXykKPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCj4gICAgIGluY2x1ZGUvbGludXgvY29tcGlsZXIuaDo0NzQ6NDog bm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyAnX19jb21waWxldGltZV9hc3NlcnQnCj4gICAg ICAgICBwcmVmaXggIyMgc3VmZml4KCk7ICAgIFwKPiAgICAgICAgIF5+fn5+fgo+ICAgICBpbmNs dWRlL2xpbnV4L2NvbXBpbGVyLmg6NDkxOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAn X2NvbXBpbGV0aW1lX2Fzc2VydCcKPiAgICAgICBfY29tcGlsZXRpbWVfYXNzZXJ0KGNvbmRpdGlv biwgbXNnLCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8sIF9fTElORV9fKQo+ICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn4KPiAgICAgaW5jbHVkZS9saW51eC9idWcuaDo1MTozNzogbm90ZTogaW4gZXhw YW5zaW9uIG9mIG1hY3JvICdjb21waWxldGltZV9hc3NlcnQnCj4gICAgICAjZGVmaW5lIEJVSUxE X0JVR19PTl9NU0coY29uZCwgbXNnKSBjb21waWxldGltZV9hc3NlcnQoIShjb25kKSwgbXNnKQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+Cj4gICAgIGFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9jbXB4Y2hnLmg6MTEzOjI6IG5vdGU6 IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnQlVJTERfQlVHX09OX01TRycKPiAgICAgICBCVUlMRF9C VUdfT05fTVNHKDEsICJVbnN1cHBvcnRlZCBzaXplIGZvciBfX3hjaGdfbG9jYWwiKTsKPiAgICAg ICBefn5+fn5+fn5+fn5+fn5+Cj4gICAgIEluIGZ1bmN0aW9uICdfX2NtcHhjaGdfcmVsYXhlZCcs Cj4gICAgICAgICBpbmxpbmVkIGZyb20gJ19fcHZfcXVldWVkX3NwaW5fdW5sb2NrJyBhdCBrZXJu ZWwvbG9ja2luZy9xc3BpbmxvY2tfcGFyYXZpcnQuaDo1NDc6MTE6Cj4+PiBpbmNsdWRlL2xpbnV4 L2NvbXBpbGVyLmg6NDkxOjM4OiBlcnJvcjogY2FsbCB0byAnX19jb21waWxldGltZV9hc3NlcnRf MzU4JyBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSBlcnJvcjogVW5zdXBwb3J0ZWQgc2l6ZSBmb3Ig X19jbXB4Y2hnX3JlbGF4ZWQKPiAgICAgICBfY29tcGlsZXRpbWVfYXNzZXJ0KGNvbmRpdGlvbiwg bXNnLCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8sIF9fTElORV9fKQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KPiAgICAgaW5jbHVkZS9saW51eC9jb21waWxlci5o OjQ3NDo0OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvICdfX2NvbXBpbGV0aW1lX2Fzc2Vy dCcKPiAgICAgICAgIHByZWZpeCAjIyBzdWZmaXgoKTsgICAgXAo+ICAgICAgICAgXn5+fn5+Cj4g ICAgIGluY2x1ZGUvbGludXgvY29tcGlsZXIuaDo0OTE6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvICdfY29tcGlsZXRpbWVfYXNzZXJ0Jwo+ICAgICAgIF9jb21waWxldGltZV9hc3NlcnQo Y29uZGl0aW9uLCBtc2csIF9fY29tcGlsZXRpbWVfYXNzZXJ0XywgX19MSU5FX18pCj4gICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fgo+ICAgICBpbmNsdWRlL2xpbnV4L2J1Zy5oOjUxOjM3OiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8gJ2NvbXBpbGV0aW1lX2Fzc2VydCcKPiAgICAgICNkZWZp bmUgQlVJTERfQlVHX09OX01TRyhjb25kLCBtc2cpIGNvbXBpbGV0aW1lX2Fzc2VydCghKGNvbmQp LCBtc2cpCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn4KPiAgICAgYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2NtcHhjaGcuaDozNTg6 Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdCVUlMRF9CVUdfT05fTVNHJwo+ICAgICAg IEJVSUxEX0JVR19PTl9NU0coMSwgIlVuc3VwcG9ydGVkIHNpemUgZm9yIF9fY21weGNoZ19yZWxh eGVkIik7Cj4gICAgICAgXn5+fn5+fn5+fn5+fn5+fgo+Cj4gdmltICsvX19jb21waWxldGltZV9h c3NlcnRfMzU4ICs0OTEgaW5jbHVkZS9saW51eC9jb21waWxlci5oCj4KPiA5YThhYjFjMyBEYW5p ZWwgU2FudG9zICAyMDEzLTAyLTIxICA0NzUgIAkJX19jb21waWxldGltZV9lcnJvcl9mYWxsYmFj ayhfX2NvbmQpOwkJCVwKPiA5YThhYjFjMyBEYW5pZWwgU2FudG9zICAyMDEzLTAyLTIxICA0NzYg IAl9IHdoaWxlICgwKQo+IDlhOGFiMWMzIERhbmllbCBTYW50b3MgIDIwMTMtMDItMjEgIDQ3Nwo+ IDlhOGFiMWMzIERhbmllbCBTYW50b3MgIDIwMTMtMDItMjEgIDQ3OCAgI2RlZmluZSBfY29tcGls ZXRpbWVfYXNzZXJ0KGNvbmRpdGlvbiwgbXNnLCBwcmVmaXgsIHN1ZmZpeCkgXAo+IDlhOGFiMWMz IERhbmllbCBTYW50b3MgIDIwMTMtMDItMjEgIDQ3OSAgCV9fY29tcGlsZXRpbWVfYXNzZXJ0KGNv bmRpdGlvbiwgbXNnLCBwcmVmaXgsIHN1ZmZpeCkKPiA5YThhYjFjMyBEYW5pZWwgU2FudG9zICAy MDEzLTAyLTIxICA0ODAKPiA5YThhYjFjMyBEYW5pZWwgU2FudG9zICAyMDEzLTAyLTIxICA0ODEg IC8qKgo+IDlhOGFiMWMzIERhbmllbCBTYW50b3MgIDIwMTMtMDItMjEgIDQ4MiAgICogY29tcGls ZXRpbWVfYXNzZXJ0IC0gYnJlYWsgYnVpbGQgYW5kIGVtaXQgbXNnIGlmIGNvbmRpdGlvbiBpcyBm YWxzZQo+IDlhOGFiMWMzIERhbmllbCBTYW50b3MgIDIwMTMtMDItMjEgIDQ4MyAgICogQGNvbmRp dGlvbjogYSBjb21waWxlLXRpbWUgY29uc3RhbnQgY29uZGl0aW9uIHRvIGNoZWNrCj4gOWE4YWIx YzMgRGFuaWVsIFNhbnRvcyAgMjAxMy0wMi0yMSAgNDg0ICAgKiBAbXNnOiAgICAgICBhIG1lc3Nh Z2UgdG8gZW1pdCBpZiBjb25kaXRpb24gaXMgZmFsc2UKPiA5YThhYjFjMyBEYW5pZWwgU2FudG9z ICAyMDEzLTAyLTIxICA0ODUgICAqCj4gOWE4YWIxYzMgRGFuaWVsIFNhbnRvcyAgMjAxMy0wMi0y MSAgNDg2ICAgKiBJbiB0cmFkaXRpb24gb2YgUE9TSVggYXNzZXJ0LCB0aGlzIG1hY3JvIHdpbGwg YnJlYWsgdGhlIGJ1aWxkIGlmIHRoZQo+IDlhOGFiMWMzIERhbmllbCBTYW50b3MgIDIwMTMtMDIt MjEgIDQ4NyAgICogc3VwcGxpZWQgY29uZGl0aW9uIGlzICpmYWxzZSosIGVtaXR0aW5nIHRoZSBz dXBwbGllZCBlcnJvciBtZXNzYWdlIGlmIHRoZQo+IDlhOGFiMWMzIERhbmllbCBTYW50b3MgIDIw MTMtMDItMjEgIDQ4OCAgICogY29tcGlsZXIgaGFzIHN1cHBvcnQgdG8gZG8gc28uCj4gOWE4YWIx YzMgRGFuaWVsIFNhbnRvcyAgMjAxMy0wMi0yMSAgNDg5ICAgKi8KPiA5YThhYjFjMyBEYW5pZWwg U2FudG9zICAyMDEzLTAyLTIxICA0OTAgICNkZWZpbmUgY29tcGlsZXRpbWVfYXNzZXJ0KGNvbmRp dGlvbiwgbXNnKSBcCj4gOWE4YWIxYzMgRGFuaWVsIFNhbnRvcyAgMjAxMy0wMi0yMSBANDkxICAJ X2NvbXBpbGV0aW1lX2Fzc2VydChjb25kaXRpb24sIG1zZywgX19jb21waWxldGltZV9hc3NlcnRf LCBfX0xJTkVfXykKPiA5YThhYjFjMyBEYW5pZWwgU2FudG9zICAyMDEzLTAyLTIxICA0OTIKPiA0 NzkzM2FkNCBQZXRlciBaaWpsc3RyYSAyMDEzLTExLTA2ICA0OTMgICNkZWZpbmUgY29tcGlsZXRp bWVfYXNzZXJ0X2F0b21pY190eXBlKHQpCQkJCVwKPiA0NzkzM2FkNCBQZXRlciBaaWpsc3RyYSAy MDEzLTExLTA2ICA0OTQgIAljb21waWxldGltZV9hc3NlcnQoX19uYXRpdmVfd29yZCh0KSwJCQkJ XAo+IDQ3OTMzYWQ0IFBldGVyIFppamxzdHJhIDIwMTMtMTEtMDYgIDQ5NSAgCQkiTmVlZCBuYXRp dmUgd29yZCBzaXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKQo+IDQ3OTMzYWQ0IFBl dGVyIFppamxzdHJhIDIwMTMtMTEtMDYgIDQ5Ngo+IDljM2NkYzFmIExpbnVzIFRvcnZhbGRzIDIw MDgtMDUtMTAgIDQ5NyAgLyoKPiA5YzNjZGMxZiBMaW51cyBUb3J2YWxkcyAyMDA4LTA1LTEwICA0 OTggICAqIFByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gbWVyZ2luZyBvciByZWZldGNoaW5nIGFj Y2Vzc2VzLiAgVGhlIGNvbXBpbGVyCj4gOWMzY2RjMWYgTGludXMgVG9ydmFsZHMgMjAwOC0wNS0x MCAgNDk5ICAgKiBpcyBhbHNvIGZvcmJpZGRlbiBmcm9tIHJlb3JkZXJpbmcgc3VjY2Vzc2l2ZSBp bnN0YW5jZXMgb2YgQUNDRVNTX09OQ0UoKSwKPgo+IDo6Ojo6OiBUaGUgY29kZSBhdCBsaW5lIDQ5 MSB3YXMgZmlyc3QgaW50cm9kdWNlZCBieSBjb21taXQKPiA6Ojo6OjogOWE4YWIxYzM5OTcwYTQ5 MzhhNzJkOTRlNmZkMTNiZTg4YTc5NzU5MCBidWcuaCwgY29tcGlsZXIuaDogaW50cm9kdWNlIGNv bXBpbGV0aW1lX2Fzc2VydCAmIEJVSUxEX0JVR19PTl9NU0cKPgo+IDo6Ojo6OiBUTzogRGFuaWVs IFNhbnRvcyA8ZGFuaWVsLnNhbnRvc0Bwb2JveC5jb20+Cj4gOjo6Ojo6IENDOiBMaW51cyBUb3J2 YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+Cj4KPiAtLS0KPiAwLURBWSBrZXJu ZWwgdGVzdCBpbmZyYXN0cnVjdHVyZSAgICAgICAgICAgICAgICBPcGVuIFNvdXJjZSBUZWNobm9s b2d5IENlbnRlcgo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9rYnVpbGQtYWxsICAg ICAgICAgICAgICAgICAgIEludGVsIENvcnBvcmF0aW9uCj4KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApW aXJ0dWFsaXphdGlvbkBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxp bnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby92aXJ0dWFsaXphdGlvbg==