<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>37965</bug_id>
          
          <creation_ts>2010-04-21 19:42:24 -0700</creation_ts>
          <short_desc>REGRESSION(r58036): [chromium] Broke Chromium bots. Seems like a Python version mismatch. (Requested by yuzo on #webkit).</short_desc>
          <delta_ts>2010-04-21 20:12:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>37765</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>yuzo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>215657</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-21 19:42:24 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/58036 broke the build:
[chromium] Broke Chromium bots. Seems like a Python version mismatch. (Requested by yuzo on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215658</commentid>
    <comment_count>1</comment_count>
      <attachid>54017</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-21 19:42:37 -0700</bug_when>
    <thetext>Created attachment 54017
ROLLOUT of r58036

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215659</commentid>
    <comment_count>2</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-21 19:45:05 -0700</bug_when>
    <thetext>Error log:

python ../../../scripts/slave/chromium/layout_test_wrapper.py --target Debug --build-type v8 -o ../../layout-test-results --build-dir src/build --build-number 1538 --builder-name layout_mac
 in dir /b/slave/layout_mac/build (timeout 600 secs)
 watching logfiles {}
 argv: [&apos;python&apos;, &apos;../../../scripts/slave/chromium/layout_test_wrapper.py&apos;, &apos;--target&apos;, &apos;Debug&apos;, &apos;--build-type&apos;, &apos;v8&apos;, &apos;-o&apos;, &apos;../../layout-test-results&apos;, &apos;--build-dir&apos;, &apos;src/build&apos;, &apos;--build-number&apos;, &apos;1538&apos;, &apos;--builder-name&apos;, &apos;layout_mac&apos;]
 environment:
  CHROME_HEADLESS=1
  DISPLAY=/tmp/launch-cW2vII/:0
  HOME=/Users/chrome-bot
  LOGNAME=chrome-bot
  PATH=/b/depot_tools:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
  PWD=/b/slave/layout_mac/build
  PYTHONPATH=/b/scripts/private:/b/scripts/common:/b/scripts/slave:/b/pylibs:/b/symsrc
  SHELL=/bin/bash
  USER=chrome-bot
 closing stdin
 using PTY: True
/b/pylibs/zope/__init__.py:19: UserWarning: Module zope was already imported from /b/pylibs/zope/__init__.pyc, but /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python is being added to sys.path
  import pkg_resources
Warning: Couldn&apos;t disable page heap, if it was already enabled.

strip -S /b/slave/layout_mac/build/src/xcodebuild/Debug/TestShell.app/Contents/MacOS/TestShell

python /b/slave/layout_mac/build/src/webkit/tools/layout_tests/run_webkit_tests.py --noshow-results --verbose --full-results-html --clobber-old-results --results-directory ../../../layout-test-results --target Debug --builder-name layout_mac --build-number 1538 --build-name layout_mac &quot;&quot;
Traceback (most recent call last):
  File &quot;/b/slave/layout_mac/build/src/third_party/WebKit/WebKitTools/Scripts/new-run-webkit-tests&quot;, line 37, in &lt;module&gt;
    sys.exit(run_webkit_tests.main(options, args))
  File &quot;/b/slave/layout_mac/build/src/third_party/WebKit/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py&quot;, line 1485, in main
    port_obj = port.get(options.platform, options)
  File &quot;/b/slave/layout_mac/build/src/third_party/WebKit/WebKitTools/Scripts/webkitpy/layout_tests/port/factory.py&quot;, line 78, in get
    import chromium_mac
  File &quot;/b/slave/layout_mac/build/src/third_party/WebKit/WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_mac.py&quot;, line 38, in &lt;module&gt;
    import chromium
  File &quot;/b/slave/layout_mac/build/src/third_party/WebKit/WebKitTools/Scripts/webkitpy/layout_tests/port/chromium.py&quot;, line 223
    with codecs.open(overrides_file, &quot;r&quot;, &quot;utf-8&quot;) as file
                                                         ^
SyntaxError: invalid syntax
program finished with exit code 1
elapsedTime=3.145948</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215662</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-21 20:09:04 -0700</bug_when>
    <thetext>Fixing now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215664</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-21 20:12:11 -0700</bug_when>
    <thetext>It was a missing &quot;:&quot;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54017</attachid>
            <date>2010-04-21 19:42:37 -0700</date>
            <delta_ts>2010-04-21 19:46:04 -0700</delta_ts>
            <desc>ROLLOUT of r58036</desc>
            <filename>bug-37965-20100422024235.patch</filename>
            <type>text/plain</type>
            <size>92826</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxM2JlYWM5Li44MjY3MzRlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTAtMDQt
MjEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI1ODAzNi4KKyAgICAgICAgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvNTgwMzYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM3OTY1CisKKyAgICAgICAgW2Nocm9taXVtXSBCcm9rZSBDaHJvbWl1
bSBib3RzLiBTZWVtcyBsaWtlIGEgUHl0aG9uIHZlcnNpb24KKyAgICAgICAgbWlzbWF0Y2guIChS
ZXF1ZXN0ZWQgYnkgeXV6byBvbiAjd2Via2l0KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NoZWNrb3V0L2FwaV91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jaGVja291dC9jaGFuZ2Vsb2cucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NvbW1pdGluZm8ucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbV91bml0dGVzdC5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVycy5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90LnB5OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdF91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvc3RhdHVzc2VydmVyLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29tbW9uL3ByZXR0eXBhdGNoLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9hdXRvaW5zdGFsbC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vZGVwcmVjYXRlZF9sb2dnaW5nLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91bml0dGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3Jl
bmRlcl90cmVlX3RocmVhZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX3Jlc3VsdHNfZ2VuZXJhdG9yLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYXBhY2hlX2h0dHBfc2VydmVyLnB5
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0u
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9saW51eC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX21hYy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2d0ay5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2h0dHBfc2VydmVyLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvbWFjLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvbWFjX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvcXQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0
cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVz
L2ltYWdlX2RpZmYucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
dGVzdF90eXBlcy90ZXN0X3R5cGVfYmFzZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2ZpbGVyZWFkZXJfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9hYnN0cmFjdHN0ZXAucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3Bvc3RkaWZmLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9wb3N0ZGlmZmZvcmNvbW1pdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvcG9zdGRpZmZmb3JyZXZlcnQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5OgorCiAyMDEwLTA0LTIxICBFcmljIFNlaWRl
bCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQv
YXBpX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvYXBpX3VuaXR0ZXN0LnB5CmluZGV4IDVlYjE0NjkuLmU5OWNhZWUgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2FwaV91bml0dGVz
dC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9h
cGlfdW5pdHRlc3QucHkKQEAgLTI2LDkgKzI2LDYgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgd2l0aF9zdGF0ZW1lbnQKLQotaW1wb3J0
IGNvZGVjcwogaW1wb3J0IG9zCiBpbXBvcnQgc2h1dGlsCiBpbXBvcnQgdGVtcGZpbGUKQEAgLTQw
LDE0ICszNywxNCBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20gaW1wb3J0IGRl
dGVjdF9zY21fc3lzdGVtLCBDb21taXRNZXNzYWdlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0
ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS50aGly
ZHBhcnR5Lm1vY2sgaW1wb3J0IE1vY2sKIAotCiAjIEZJWE1FOiBDb3BpZWQgZnJvbSBzY21fdW5p
dHRlc3QucHkKLWRlZiB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aChmaWxlX3BhdGgsIGNvbnRlbnRz
LCBlbmNvZGluZz0idXRmLTgiKToKLSAgICB3aXRoIGNvZGVjcy5vcGVuKGZpbGVfcGF0aCwgInci
LCBlbmNvZGluZykgYXMgZmlsZToKLSAgICAgICAgZmlsZS53cml0ZShjb250ZW50cykKK2RlZiB3
cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aChmaWxlX3BhdGgsIGNvbnRlbnRzKToKKyAgICBuZXdfZmls
ZSA9IG9wZW4oZmlsZV9wYXRoLCAndycpCisgICAgbmV3X2ZpbGUud3JpdGUoY29udGVudHMpCisg
ICAgbmV3X2ZpbGUuY2xvc2UoKQogCiAKLV9jaGFuZ2Vsb2cxZW50cnkxID0gdSIiIjIwMTAtMDMt
MjUgIFRvciBBcm5lIFZlc3RiXHUwMGY4ICA8dmVzdGJvQHdlYmtpdC5vcmc+CitfY2hhbmdlbG9n
MWVudHJ5MSA9ICIiIjIwMTAtMDMtMjUgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IHRvIHVuLWJyZWFrIHdlYmtpdC1wYXRjaCBs
YW5kLgogCkBAIC01Niw3ICs1Myw3IEBAIF9jaGFuZ2Vsb2cxZW50cnkxID0gdSIiIjIwMTAtMDMt
MjUgIFRvciBBcm5lIFZlc3RiXHUwMGY4ICA8dmVzdGJvQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9hcGkucHk6IGltcG9ydCBzY20uQ29t
bWl0TWVzc2FnZQogIiIiCi1fY2hhbmdlbG9nMWVudHJ5MiA9IHUiIiIyMDEwLTAzLTI1ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CitfY2hhbmdlbG9nMWVudHJ5MiA9ICIiIjIwMTAt
MDMtMjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KIApAQCAtNjUsOCArNjIsOCBAQCBfY2hhbmdlbG9nMWVudHJ5MiA9
IHUiIiIyMDEwLTAzLTI1ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9hcGkucHk6CiAiIiIKLV9jaGFu
Z2Vsb2cxID0gdSJcbiIuam9pbihbX2NoYW5nZWxvZzFlbnRyeTEsIF9jaGFuZ2Vsb2cxZW50cnky
XSkKLV9jaGFuZ2Vsb2cyID0gdSIiIjIwMTAtMDMtMjUgIFRvciBBcm5lIFZlc3RiXHUwMGY4ICA8
dmVzdGJvQHdlYmtpdC5vcmc+CitfY2hhbmdlbG9nMSA9ICJcbiIuam9pbihbX2NoYW5nZWxvZzFl
bnRyeTEsIF9jaGFuZ2Vsb2cxZW50cnkyXSkKK19jaGFuZ2Vsb2cyID0gIiIiMjAxMC0wMy0yNSAg
RXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWls
ZCBmaXggdG8gdW4tYnJlYWsgd2Via2l0LXBhdGNoIGxhbmQuCiAKQEAgLTgyLDcgKzc5LDcgQEAg
X2NoYW5nZWxvZzIgPSB1IiIiMjAxMC0wMy0yNSAgVG9yIEFybmUgVmVzdGJcdTAwZjggIDx2ZXN0
Ym9Ad2Via2l0Lm9yZz4KICIiIgogCiBjbGFzcyBDb21taXRNZXNzYWdlRm9yVGhpc0NvbW1pdFRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGV4cGVjdGVkX2NvbW1pdF9tZXNzYWdlID0gdSIi
IjIwMTAtMDMtMjUgIFRvciBBcm5lIFZlc3RiXHUwMGY4ICA8dmVzdGJvQHdlYmtpdC5vcmc+Cisg
ICAgZXhwZWN0ZWRfY29tbWl0X21lc3NhZ2UgPSAiIiIyMDEwLTAzLTI1ICBFcmljIFNlaWRlbCAg
PGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCB0byB1bi1i
cmVhayB3ZWJraXQtcGF0Y2ggbGFuZC4KIApAQCAtOTAsNyArODcsNyBAQCBjbGFzcyBDb21taXRN
ZXNzYWdlRm9yVGhpc0NvbW1pdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY2MjkKIAogICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2FwaS5weTogaW1wb3J0IHNjbS5Db21taXRN
ZXNzYWdlCi0yMDEwLTAzLTI1ICBUb3IgQXJuZSBWZXN0Ylx1MDBmOCAgPHZlc3Rib0B3ZWJraXQu
b3JnPgorMjAxMC0wMy0yNSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBidWlsZCBmaXggdG8gdW4tYnJlYWsgd2Via2l0LXBhdGNoIGxhbmQuCiAK
QEAgLTE0MCw4ICsxMzcsOCBAQCBjbGFzcyBDaGVja291dFRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBjaGVja291dC5jaGFuZ2Vsb2dfZW50cmllc19mb3JfcmV2aXNpb24gPSBsYW1i
ZGEgcmV2aXNpb246IFtDaGFuZ2VMb2dFbnRyeShfY2hhbmdlbG9nMWVudHJ5MSldCiAgICAgICAg
IGNvbW1pdGluZm8gPSBjaGVja291dC5jb21taXRfaW5mb19mb3JfcmV2aXNpb24oNCkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRpbmZvLmJ1Z19pZCgpLCAzNjYyOSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21taXRpbmZvLmF1dGhvcl9uYW1lKCksIHUiVG9yIEFybmUgVmVz
dGJcdTAwZjgiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdGluZm8uYXV0aG9yX2Vt
YWlsKCksICJ2ZXN0Ym9Ad2Via2l0Lm9yZyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29t
bWl0aW5mby5hdXRob3JfbmFtZSgpLCAiRXJpYyBTZWlkZWwiKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1pdGluZm8uYXV0aG9yX2VtYWlsKCksICJlcmljQHdlYmtpdC5vcmciKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdGluZm8ucmV2aWV3ZXJfdGV4dCgpLCBOb25lKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdGluZm8ucmV2aWV3ZXIoKSwgTm9uZSkKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRpbmZvLmNvbW1pdHRlcl9lbWFpbCgpLCAiY29t
bWl0dGVyQGV4YW1wbGUuY29tIikKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZy5weQppbmRleCA2MjIwZmJkLi5lOTM4
OTZmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9jaGFuZ2Vsb2cucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvY2hhbmdlbG9nLnB5CkBAIC05OSwxNCArOTksMTAgQEAgY2xhc3MgQ2hhbmdl
TG9nKG9iamVjdCk6CiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIHBhcnNlX2xhdGVzdF9l
bnRyeV9mcm9tX2ZpbGUoY2hhbmdlbG9nX2ZpbGUpOgotICAgICAgICAiIiJjaGFuZ2Vsb2dfZmls
ZSBtdXN0IGJlIGEgZmlsZS1saWtlIG9iamVjdCB3aGljaCByZXR1cm5zCi0gICAgICAgIHVuaWNv
ZGUgc3RyaW5ncy4gIFVzZSBjb2RlY3Mub3BlbiBvciBTdHJpbmdJTyh1bmljb2RlKCkpCi0gICAg
ICAgIHRvIHBhc3MgZmlsZSBvYmplY3RzIHRvIHRoaXMgY2xhc3MuIiIiCiAgICAgICAgIGRhdGVf
bGluZV9yZWdleHAgPSByZS5jb21waWxlKENoYW5nZUxvZ0VudHJ5LmRhdGVfbGluZV9yZWdleHAp
CiAgICAgICAgIGVudHJ5X2xpbmVzID0gW10KICAgICAgICAgIyBUaGUgZmlyc3QgbGluZSBzaG91
bGQgYmUgYSBkYXRlIGxpbmUuCiAgICAgICAgIGZpcnN0X2xpbmUgPSBjaGFuZ2Vsb2dfZmlsZS5y
ZWFkbGluZSgpCi0gICAgICAgIGFzc2VydChpc2luc3RhbmNlKGZpcnN0X2xpbmUsIHVuaWNvZGUp
KQogICAgICAgICBpZiBub3QgZGF0ZV9saW5lX3JlZ2V4cC5tYXRjaChmaXJzdF9saW5lKToKICAg
ICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIGVudHJ5X2xpbmVzLmFwcGVuZChmaXJzdF9s
aW5lKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CmluZGV4IDg2NDQyOGEuLjky
MTBjOWMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2No
ZWNrb3V0L2NoYW5nZWxvZ191bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jaGVja291dC9jaGFuZ2Vsb2dfdW5pdHRlc3QucHkKQEAgLTI2LDEyICsy
Niw5IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1mcm9tIF9fZnV0dXJlX18g
aW1wb3J0IHdpdGhfc3RhdGVtZW50Ci0KLWltcG9ydCBjb2RlY3MKK2ltcG9ydCB1bml0dGVzdAog
aW1wb3J0IG9zCiBpbXBvcnQgdGVtcGZpbGUKLWltcG9ydCB1bml0dGVzdAogCiBmcm9tIFN0cmlu
Z0lPIGltcG9ydCBTdHJpbmdJTwogCkBAIC01NSw3ICs1Miw3IEBAIGNsYXNzIENoYW5nZUxvZ3NU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICcnJwogCiAgICAgIyBNb3JlIGV4YW1wbGUgdGV4dCB0
aGFuIHdlIG5lZWQuICBFdmVudHVhbGx5IHdlIG5lZWQgdG8gc3VwcG9ydCBwYXJzaW5nIHRoaXMg
YWxsIGFuZCB3cml0ZSB0ZXN0cyBmb3IgdGhlIHBhcnNpbmcuCi0gICAgX2V4YW1wbGVfY2hhbmdl
bG9nID0gdSIiIjIwMDktMDgtMTcgIFRvciBBcm5lIFZlc3RiXHhmOCAgPHZlc3Rib0B3ZWJraXQu
b3JnPgorICAgIF9leGFtcGxlX2NoYW5nZWxvZyA9ICcnJzIwMDktMDgtMTcgIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8y
ODM5Mz4gY2hlY2std2Via2l0LXN0eWxlOiBhZGQgY2hlY2sgZm9yIHVzZSBvZiBzdGQ6Om1heCgp
L3N0ZDo6bWluKCkgaW5zdGVhZCBvZiBNQVgoKS9NSU4oKQogCkBAIC04NywxMCArODQsMTAgQEAg
Y2xhc3MgQ2hhbmdlTG9nc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzbyB3ZSBj
YW4ndCBhc3NlcnQgaGVyZS4KIAogPT0gUm9sbGVkIG92ZXIgdG8gQ2hhbmdlTG9nLTIwMDktMDYt
MTYgPT0KLSIiIgorJycnCiAKICAgICBkZWYgdGVzdF9sYXRlc3RfZW50cnlfcGFyc2Uoc2VsZik6
Ci0gICAgICAgIGNoYW5nZWxvZ19jb250ZW50cyA9IHUiJXNcbiVzIiAlIChzZWxmLl9leGFtcGxl
X2VudHJ5LCBzZWxmLl9leGFtcGxlX2NoYW5nZWxvZykKKyAgICAgICAgY2hhbmdlbG9nX2NvbnRl
bnRzID0gIiVzXG4lcyIgJSAoc2VsZi5fZXhhbXBsZV9lbnRyeSwgc2VsZi5fZXhhbXBsZV9jaGFu
Z2Vsb2cpCiAgICAgICAgIGNoYW5nZWxvZ19maWxlID0gU3RyaW5nSU8oY2hhbmdlbG9nX2NvbnRl
bnRzKQogICAgICAgICBsYXRlc3RfZW50cnkgPSBDaGFuZ2VMb2cucGFyc2VfbGF0ZXN0X2VudHJ5
X2Zyb21fZmlsZShjaGFuZ2Vsb2dfZmlsZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGF0
ZXN0X2VudHJ5LmNvbnRlbnRzKCksIHNlbGYuX2V4YW1wbGVfZW50cnkpCkBAIC0xMDAsMTcgKzk3
LDE5IEBAIGNsYXNzIENoYW5nZUxvZ3NUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGxhdGVzdF9lbnRyeS5yZXZpZXdlcigpKSAgIyBNYWtlIHN1cmUgdGhh
dCBvdXIgVVRGOC1iYXNlZCBsb29rdXAgb2YgVG9yIHdvcmtzLgogCiAgICAgQHN0YXRpY21ldGhv
ZAotICAgIGRlZiBfd3JpdGVfdG1wX2ZpbGVfd2l0aF9jb250ZW50cyhieXRlX2FycmF5KToKLSAg
ICAgICAgYXNzZXJ0KGlzaW5zdGFuY2UoYnl0ZV9hcnJheSwgc3RyKSkKKyAgICBkZWYgX3dyaXRl
X3RtcF9maWxlX3dpdGhfY29udGVudHMoY29udGVudHMpOgogICAgICAgICAoZmlsZV9kZXNjcmlw
dG9yLCBmaWxlX3BhdGgpID0gdGVtcGZpbGUubWtzdGVtcCgpICMgTmFtZWRUZW1wb3JhcnlGaWxl
IGFsd2F5cyBkZWxldGVzIHRoZSBmaWxlIG9uIGNsb3NlIGluIHB5dGhvbiA8IDIuNgotICAgICAg
ICB3aXRoIG9zLmZkb3BlbihmaWxlX2Rlc2NyaXB0b3IsICJ3IikgYXMgZmlsZToKLSAgICAgICAg
ICAgIGZpbGUud3JpdGUoYnl0ZV9hcnJheSkKKyAgICAgICAgZmlsZSA9IG9zLmZkb3BlbihmaWxl
X2Rlc2NyaXB0b3IsICd3JykKKyAgICAgICAgZmlsZS53cml0ZShjb250ZW50cykKKyAgICAgICAg
ZmlsZS5jbG9zZSgpCiAgICAgICAgIHJldHVybiBmaWxlX3BhdGgKIAogICAgIEBzdGF0aWNtZXRo
b2QKLSAgICBkZWYgX3JlYWRfZmlsZV9jb250ZW50cyhmaWxlX3BhdGgsIGVuY29kaW5nKToKLSAg
ICAgICAgd2l0aCBjb2RlY3Mub3BlbihmaWxlX3BhdGgsICJyIiwgZW5jb2RpbmcpIGFzIGZpbGU6
Ci0gICAgICAgICAgICByZXR1cm4gZmlsZS5yZWFkKCkKKyAgICBkZWYgX3JlYWRfZmlsZV9jb250
ZW50cyhmaWxlX3BhdGgpOgorICAgICAgICBmaWxlID0gb3BlbihmaWxlX3BhdGgpCisgICAgICAg
IGNvbnRlbnRzID0gZmlsZS5yZWFkKCkKKyAgICAgICAgZmlsZS5jbG9zZSgpCisgICAgICAgIHJl
dHVybiBjb250ZW50cwogCiAgICAgX25ld19lbnRyeV9ib2lsZXJwbGF0ZSA9ICcnJzIwMDktMDgt
MTkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCkBAIC0xMjIsMTEgKzEyMSwxMSBA
QCBjbGFzcyBDaGFuZ2VMb2dzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAnJycKIAogICAgIGRl
ZiB0ZXN0X3NldF9yZXZpZXdlcihzZWxmKToKLSAgICAgICAgY2hhbmdlbG9nX2NvbnRlbnRzID0g
dSIlc1xuJXMiICUgKHNlbGYuX25ld19lbnRyeV9ib2lsZXJwbGF0ZSwgc2VsZi5fZXhhbXBsZV9j
aGFuZ2Vsb2cpCi0gICAgICAgIGNoYW5nZWxvZ19wYXRoID0gc2VsZi5fd3JpdGVfdG1wX2ZpbGVf
d2l0aF9jb250ZW50cyhjaGFuZ2Vsb2dfY29udGVudHMuZW5jb2RlKCJ1dGYtOCIpKQorICAgICAg
ICBjaGFuZ2Vsb2dfY29udGVudHMgPSAiJXNcbiVzIiAlIChzZWxmLl9uZXdfZW50cnlfYm9pbGVy
cGxhdGUsIHNlbGYuX2V4YW1wbGVfY2hhbmdlbG9nKQorICAgICAgICBjaGFuZ2Vsb2dfcGF0aCA9
IHNlbGYuX3dyaXRlX3RtcF9maWxlX3dpdGhfY29udGVudHMoY2hhbmdlbG9nX2NvbnRlbnRzKQog
ICAgICAgICByZXZpZXdlcl9uYW1lID0gJ1Rlc3QgUmV2aWV3ZXInCiAgICAgICAgIENoYW5nZUxv
ZyhjaGFuZ2Vsb2dfcGF0aCkuc2V0X3Jldmlld2VyKHJldmlld2VyX25hbWUpCi0gICAgICAgIGFj
dHVhbF9jb250ZW50cyA9IHNlbGYuX3JlYWRfZmlsZV9jb250ZW50cyhjaGFuZ2Vsb2dfcGF0aCwg
InV0Zi04IikKKyAgICAgICAgYWN0dWFsX2NvbnRlbnRzID0gc2VsZi5fcmVhZF9maWxlX2NvbnRl
bnRzKGNoYW5nZWxvZ19wYXRoKQogICAgICAgICBleHBlY3RlZF9jb250ZW50cyA9IGNoYW5nZWxv
Z19jb250ZW50cy5yZXBsYWNlKCdOT0JPRFkgKE9PUFMhKScsIHJldmlld2VyX25hbWUpCiAgICAg
ICAgIG9zLnJlbW92ZShjaGFuZ2Vsb2dfcGF0aCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
YWN0dWFsX2NvbnRlbnRzLCBleHBlY3RlZF9jb250ZW50cykKQEAgLTE3MCw4ICsxNjksOCBAQCBj
bGFzcyBDaGFuZ2VMb2dzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAnJycKIAogICAgIGRlZiBf
YXNzZXJ0X3VwZGF0ZV9mb3JfcmV2ZXJ0X291dHB1dChzZWxmLCBhcmdzLCBleHBlY3RlZF9lbnRy
eSk6Ci0gICAgICAgIGNoYW5nZWxvZ19jb250ZW50cyA9IHUiJXNcbiVzIiAlIChzZWxmLl9uZXdf
ZW50cnlfYm9pbGVycGxhdGUsIHNlbGYuX2V4YW1wbGVfY2hhbmdlbG9nKQotICAgICAgICBjaGFu
Z2Vsb2dfcGF0aCA9IHNlbGYuX3dyaXRlX3RtcF9maWxlX3dpdGhfY29udGVudHMoY2hhbmdlbG9n
X2NvbnRlbnRzLmVuY29kZSgidXRmLTgiKSkKKyAgICAgICAgY2hhbmdlbG9nX2NvbnRlbnRzID0g
IiVzXG4lcyIgJSAoc2VsZi5fbmV3X2VudHJ5X2JvaWxlcnBsYXRlLCBzZWxmLl9leGFtcGxlX2No
YW5nZWxvZykKKyAgICAgICAgY2hhbmdlbG9nX3BhdGggPSBzZWxmLl93cml0ZV90bXBfZmlsZV93
aXRoX2NvbnRlbnRzKGNoYW5nZWxvZ19jb250ZW50cykKICAgICAgICAgY2hhbmdlbG9nID0gQ2hh
bmdlTG9nKGNoYW5nZWxvZ19wYXRoKQogICAgICAgICBjaGFuZ2Vsb2cudXBkYXRlX2Zvcl9yZXZl
cnQoKmFyZ3MpCiAgICAgICAgIGFjdHVhbF9lbnRyeSA9IGNoYW5nZWxvZy5sYXRlc3RfZW50cnko
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvY29tbWl0aW5mby5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2No
ZWNrb3V0L2NvbW1pdGluZm8ucHkKaW5kZXggNDQ4ZDUzMC4uN2MzMzE1ZiAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY29tbWl0aW5mby5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9jb21t
aXRpbmZvLnB5CkBAIC0yOCw2ICsyOCw4IEBACiAjCiAjIFdlYktpdCdzIHB5dGhvbiBtb2R1bGUg
Zm9yIGhvbGRpbmcgaW5mb3JtYXRpb24gb24gYSBjb21taXQKIAoraW1wb3J0IFN0cmluZ0lPCisK
IGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LmNoYW5nZWxvZyBpbXBvcnQgdmlld19zb3Vy
Y2VfdXJsCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcuY29tbWl0dGVycyBpbXBvcnQgQ29t
bWl0dGVyTGlzdAogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jaGVja291dC9zY20ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9zY20ucHkKaW5kZXggODcwN2YyZS4uMjcwNGYwNyAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS5weQpAQCAtMTQ1
LDcgKzE0NSw3IEBAIGNsYXNzIFNDTToKICAgICAgICAgcmV0dXJuIGZpbGVuYW1lcwogCiAgICAg
ZGVmIHN0cmlwX3JfZnJvbV9zdm5fcmV2aXNpb24oc2VsZiwgc3ZuX3JldmlzaW9uKToKLSAgICAg
ICAgbWF0Y2ggPSByZS5tYXRjaCgiXnIoP1A8c3ZuX3JldmlzaW9uPlxkKykiLCB1bmljb2RlKHN2
bl9yZXZpc2lvbikpCisgICAgICAgIG1hdGNoID0gcmUubWF0Y2goIl5yKD9QPHN2bl9yZXZpc2lv
bj5cZCspIiwgc3ZuX3JldmlzaW9uKQogICAgICAgICBpZiAobWF0Y2gpOgogICAgICAgICAgICAg
cmV0dXJuIG1hdGNoLmdyb3VwKCdzdm5fcmV2aXNpb24nKQogICAgICAgICByZXR1cm4gc3ZuX3Jl
dmlzaW9uCkBAIC0zNDQsNyArMzQ0LDcgQEAgY2xhc3MgU1ZOKFNDTSk6CiAKICAgICBkZWYgY2hh
bmdlZF9maWxlc19mb3JfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24pOgogICAgICAgICAjIEFzIGZh
ciBhcyBJIGNhbiB0ZWxsIHN2biBkaWZmIC0tc3VtbWFyaXplIG91dHB1dCBsb29rcyBqdXN0IGxp
a2Ugc3ZuIHN0YXR1cyBvdXRwdXQuCi0gICAgICAgIHN0YXR1c19jb21tYW5kID0gWyJzdm4iLCAi
ZGlmZiIsICItLXN1bW1hcml6ZSIsICItYyIsIHJldmlzaW9uXQorICAgICAgICBzdGF0dXNfY29t
bWFuZCA9IFsic3ZuIiwgImRpZmYiLCAiLS1zdW1tYXJpemUiLCAiLWMiLCBzdHIocmV2aXNpb24p
XQogICAgICAgICByZXR1cm4gc2VsZi5ydW5fc3RhdHVzX2FuZF9leHRyYWN0X2ZpbGVuYW1lcyhz
dGF0dXNfY29tbWFuZCwgc2VsZi5fc3RhdHVzX3JlZ2V4cCgiQUNETVIiKSkKIAogICAgIGRlZiBj
b25mbGljdGVkX2ZpbGVzKHNlbGYpOgpAQCAtMzYxLDE4ICszNjEsMTggQEAgY2xhc3MgU1ZOKFND
TSk6CiAgICAgICAgIHJldHVybiAic3ZuIgogCiAgICAgZGVmIGNyZWF0ZV9wYXRjaChzZWxmKToK
LSAgICAgICAgcmV0dXJuIHJ1bl9jb21tYW5kKFtzZWxmLnNjcmlwdF9wYXRoKCJzdm4tY3JlYXRl
LXBhdGNoIildLCBjd2Q9c2VsZi5jaGVja291dF9yb290LCByZXR1cm5fc3RkZXJyPUZhbHNlKQor
ICAgICAgICByZXR1cm4gcnVuX2NvbW1hbmQoc2VsZi5zY3JpcHRfcGF0aCgic3ZuLWNyZWF0ZS1w
YXRjaCIpLCBjd2Q9c2VsZi5jaGVja291dF9yb290LCByZXR1cm5fc3RkZXJyPUZhbHNlKQogCiAg
ICAgZGVmIGNvbW1pdHRlcl9lbWFpbF9mb3JfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24pOgotICAg
ICAgICByZXR1cm4gcnVuX2NvbW1hbmQoWyJzdm4iLCAicHJvcGdldCIsICJzdm46YXV0aG9yIiwg
Ii0tcmV2cHJvcCIsICItciIsIHJldmlzaW9uXSkucnN0cmlwKCkKKyAgICAgICAgcmV0dXJuIHJ1
bl9jb21tYW5kKFsic3ZuIiwgInByb3BnZXQiLCAic3ZuOmF1dGhvciIsICItLXJldnByb3AiLCAi
LXIiLCBzdHIocmV2aXNpb24pXSkucnN0cmlwKCkKIAogICAgIGRlZiBjb250ZW50c19hdF9yZXZp
c2lvbihzZWxmLCBwYXRoLCByZXZpc2lvbik6CiAgICAgICAgIHJlbW90ZV9wYXRoID0gIiVzLyVz
IiAlIChzZWxmLl9yZXBvc2l0b3J5X3VybCgpLCBwYXRoKQotICAgICAgICByZXR1cm4gcnVuX2Nv
bW1hbmQoWyJzdm4iLCAiY2F0IiwgIi1yIiwgcmV2aXNpb24sIHJlbW90ZV9wYXRoXSkKKyAgICAg
ICAgcmV0dXJuIHJ1bl9jb21tYW5kKFsic3ZuIiwgImNhdCIsICItciIsIHN0cihyZXZpc2lvbiks
IHJlbW90ZV9wYXRoXSkKIAogICAgIGRlZiBkaWZmX2Zvcl9yZXZpc2lvbihzZWxmLCByZXZpc2lv
bik6CiAgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHByb2JhYmx5IHVzZSBjd2Q9c2VsZi5j
aGVja291dF9yb290Ci0gICAgICAgIHJldHVybiBydW5fY29tbWFuZChbJ3N2bicsICdkaWZmJywg
Jy1jJywgcmV2aXNpb25dKQorICAgICAgICByZXR1cm4gcnVuX2NvbW1hbmQoWydzdm4nLCAnZGlm
ZicsICctYycsIHN0cihyZXZpc2lvbildKQogCiAgICAgZGVmIF9yZXBvc2l0b3J5X3VybChzZWxm
KToKICAgICAgICAgcmV0dXJuIHNlbGYudmFsdWVfZnJvbV9zdm5faW5mbyhzZWxmLmNoZWNrb3V0
X3Jvb3QsICdVUkwnKQpAQCAtNDA1LDcgKzQwNSw3IEBAIGNsYXNzIFNWTihTQ00pOgogICAgICAg
ICByZXR1cm4gcnVuX2NvbW1hbmQoc3ZuX2NvbW1pdF9hcmdzLCBlcnJvcl9oYW5kbGVyPWNvbW1p
dF9lcnJvcl9oYW5kbGVyKQogCiAgICAgZGVmIHN2bl9jb21taXRfbG9nKHNlbGYsIHN2bl9yZXZp
c2lvbik6Ci0gICAgICAgIHN2bl9yZXZpc2lvbiA9IHNlbGYuc3RyaXBfcl9mcm9tX3N2bl9yZXZp
c2lvbihzdm5fcmV2aXNpb24pCisgICAgICAgIHN2bl9yZXZpc2lvbiA9IHNlbGYuc3RyaXBfcl9m
cm9tX3N2bl9yZXZpc2lvbihzdHIoc3ZuX3JldmlzaW9uKSkKICAgICAgICAgcmV0dXJuIHJ1bl9j
b21tYW5kKFsnc3ZuJywgJ2xvZycsICctLW5vbi1pbnRlcmFjdGl2ZScsICctLXJldmlzaW9uJywg
c3ZuX3JldmlzaW9uXSk7CiAKICAgICBkZWYgbGFzdF9zdm5fY29tbWl0X2xvZyhzZWxmKToKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3Nj
bV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNr
b3V0L3NjbV91bml0dGVzdC5weQppbmRleCAwZWQzMTk5Li5jMGE2NGQ0IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY21fdW5pdHRlc3Qu
cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2Nt
X3VuaXR0ZXN0LnB5CkBAIC0yNywxMCArMjcsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAotCiBpbXBvcnQg
YmFzZTY0Ci1pbXBvcnQgY29kZWNzCiBpbXBvcnQgZ2V0cGFzcwogaW1wb3J0IG9zCiBpbXBvcnQg
b3MucGF0aApAQCAtNTksMTYgKzU2LDE2IEBAIGRlZiBydW5fc2lsZW50KGFyZ3MsIGN3ZD1Ob25l
KToKICAgICBpZiBleGl0X2NvZGU6CiAgICAgICAgIHJhaXNlIFNjcmlwdEVycm9yKCdGYWlsZWQg
dG8gcnVuICIlcyIgIGV4aXRfY29kZTogJWQgIGN3ZDogJXMnICUgKGFyZ3MsIGV4aXRfY29kZSwg
Y3dkKSkKIAorZGVmIHdyaXRlX2ludG9fZmlsZV9hdF9wYXRoKGZpbGVfcGF0aCwgY29udGVudHMp
OgorICAgIGZpbGUgPSBvcGVuKGZpbGVfcGF0aCwgJ3cnKQorICAgIGZpbGUud3JpdGUoY29udGVu
dHMpCisgICAgZmlsZS5jbG9zZSgpCiAKLWRlZiB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aChmaWxl
X3BhdGgsIGNvbnRlbnRzLCBlbmNvZGluZz0idXRmLTgiKToKLSAgICB3aXRoIGNvZGVjcy5vcGVu
KGZpbGVfcGF0aCwgInciLCBlbmNvZGluZykgYXMgZmlsZToKLSAgICAgICAgZmlsZS53cml0ZShj
b250ZW50cykKLQotCi1kZWYgcmVhZF9mcm9tX3BhdGgoZmlsZV9wYXRoLCBlbmNvZGluZz0idXRm
LTgiKToKLSAgICB3aXRoIGNvZGVjcy5vcGVuKGZpbGVfcGF0aCwgInIiLCBlbmNvZGluZykgYXMg
ZmlsZToKLSAgICAgICAgcmV0dXJuIGZpbGUucmVhZCgpCi0KK2RlZiByZWFkX2Zyb21fcGF0aChm
aWxlX3BhdGgpOgorICAgIGZpbGUgPSBvcGVuKGZpbGVfcGF0aCwgJ3InKQorICAgIGNvbnRlbnRz
ID0gZmlsZS5yZWFkKCkKKyAgICBmaWxlLmNsb3NlKCkKKyAgICByZXR1cm4gY29udGVudHMKIAog
IyBFeGlzdHMgdG8gc2hhcmUgc3ZuIHJlcG9zaXRvcnkgY3JlYXRpb24gY29kZSBiZXR3ZWVuIHRo
ZSBnaXQgYW5kIHN2biB0ZXN0cwogY2xhc3MgU1ZOVGVzdFJlcG9zaXRvcnk6CkBAIC0zMTEsNyAr
MzA4LDcgQEAgSGNtVj9kMDAwMDEKIAogIiIiCiAgICAgICAgIHNlbGYuY2hlY2tvdXQuYXBwbHlf
cGF0Y2goc2VsZi5fY3JlYXRlX3BhdGNoKGdpdF9iaW5hcnlfYWRkaXRpb24pKQotICAgICAgICBh
ZGRlZCA9IHJlYWRfZnJvbV9wYXRoKCdmaXp6YnV6ejcuZ2lmJywgZW5jb2Rpbmc9Tm9uZSkKKyAg
ICAgICAgYWRkZWQgPSByZWFkX2Zyb21fcGF0aCgnZml6emJ1eno3LmdpZicpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoNTEyLCBsZW4oYWRkZWQpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUo
YWRkZWQuc3RhcnRzd2l0aCgnR0lGODlhJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnZml6
emJ1eno3LmdpZicgaW4gc2VsZi5zY20uY2hhbmdlZF9maWxlcygpKQpAQCAtMzM5LDcgKzMzNiw3
IEBAIHB0VWwtWkc8JWF+I0x3a0lXdiZxIUtTQ0g3dFE4Y0pEaXcrfEdWP01OKVJqWTUwUlRiLXh2
VCZICiAKICIiIgogICAgICAgICBzZWxmLmNoZWNrb3V0LmFwcGx5X3BhdGNoKHNlbGYuX2NyZWF0
ZV9wYXRjaChnaXRfYmluYXJ5X21vZGlmaWNhdGlvbikpCi0gICAgICAgIG1vZGlmaWVkID0gcmVh
ZF9mcm9tX3BhdGgoJ2ZpenpidXp6Ny5naWYnLCBlbmNvZGluZz1Ob25lKQorICAgICAgICBtb2Rp
ZmllZCA9IHJlYWRfZnJvbV9wYXRoKCdmaXp6YnV6ejcuZ2lmJykKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnZm9vYmFyXG4nLCBtb2RpZmllZCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdm
aXp6YnV6ejcuZ2lmJyBpbiBzZWxmLnNjbS5jaGFuZ2VkX2ZpbGVzKCkpCiAKQEAgLTUyMSw3ICs1
MTgsNyBAQCBRMWRUQngwQUFBQjQyaXRnNEdsZ1lKakd3TUREeU9ETXhNRHczNEdCZ1FFQUpQUURK
QT09CiAgICAgICAgIHNlbGYuX3NldHVwX3dlYmtpdHRvb2xzX3NjcmlwdHNfc3ltbGluayhzZWxm
LnNjbSkKICAgICAgICAgcGF0Y2hfZmlsZSA9IHNlbGYuX2NyZWF0ZV9wYXRjaChwYXRjaF9jb250
ZW50cykKICAgICAgICAgc2VsZi5jaGVja291dC5hcHBseV9wYXRjaChwYXRjaF9maWxlKQotICAg
ICAgICBhY3R1YWxfY29udGVudHMgPSByZWFkX2Zyb21fcGF0aCgidGVzdF9maWxlLnN3ZiIsIGVu
Y29kaW5nPU5vbmUpCisgICAgICAgIGFjdHVhbF9jb250ZW50cyA9IHJlYWRfZnJvbV9wYXRoKCJ0
ZXN0X2ZpbGUuc3dmIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfY29udGVudHMs
IGV4cGVjdGVkX2NvbnRlbnRzKQogCiAgICAgZGVmIHRlc3RfYXBwbHlfc3ZuX3BhdGNoKHNlbGYp
OgpAQCAtNzQyLDcgKzczOSw3IEBAIGNsYXNzIEdpdFRlc3QoU0NNVGVzdCk6CiAgICAgICAgIHRl
c3RfZmlsZV9uYW1lID0gJ2JpbmFyeV9maWxlJwogICAgICAgICB0ZXN0X2ZpbGVfcGF0aCA9IG9z
LnBhdGguam9pbihzZWxmLmdpdF9jaGVja291dF9wYXRoLCB0ZXN0X2ZpbGVfbmFtZSkKICAgICAg
ICAgZmlsZV9jb250ZW50cyA9ICcnLmpvaW4obWFwKGNociwgcmFuZ2UoMjU2KSkpCi0gICAgICAg
IHdyaXRlX2ludG9fZmlsZV9hdF9wYXRoKHRlc3RfZmlsZV9wYXRoLCBmaWxlX2NvbnRlbnRzLCBl
bmNvZGluZz1Ob25lKQorICAgICAgICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aCh0ZXN0X2ZpbGVf
cGF0aCwgZmlsZV9jb250ZW50cykKICAgICAgICAgcnVuX2NvbW1hbmQoWydnaXQnLCAnYWRkJywg
dGVzdF9maWxlX25hbWVdKQogICAgICAgICBwYXRjaCA9IHNjbS5jcmVhdGVfcGF0Y2goKQogICAg
ICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKHInXG5saXRlcmFsIDBcbicsIHBhdGNoKSkK
QEAgLTc1MiwxMCArNzQ5LDEwIEBAIGNsYXNzIEdpdFRlc3QoU0NNVGVzdCk6CiAgICAgICAgIHJ1
bl9jb21tYW5kKFsnZ2l0JywgJ3JtJywgJy1mJywgdGVzdF9maWxlX25hbWVdKQogICAgICAgICBz
ZWxmLl9zZXR1cF93ZWJraXR0b29sc19zY3JpcHRzX3N5bWxpbmsoc2NtKQogICAgICAgICBzZWxm
LmNoZWNrb3V0LmFwcGx5X3BhdGNoKHNlbGYuX2NyZWF0ZV9wYXRjaChwYXRjaCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZmlsZV9jb250ZW50cywgcmVhZF9mcm9tX3BhdGgodGVzdF9maWxl
X3BhdGgsIGVuY29kaW5nPU5vbmUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVfY29u
dGVudHMsIHJlYWRfZnJvbV9wYXRoKHRlc3RfZmlsZV9wYXRoKSkKIAogICAgICAgICAjIENoZWNr
IGlmIHdlIGNhbiBjcmVhdGUgYSBwYXRjaCBmcm9tIGEgbG9jYWwgY29tbWl0LgotICAgICAgICB3
cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aCh0ZXN0X2ZpbGVfcGF0aCwgZmlsZV9jb250ZW50cywgZW5j
b2Rpbmc9Tm9uZSkKKyAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgodGVzdF9maWxlX3Bh
dGgsIGZpbGVfY29udGVudHMpCiAgICAgICAgIHJ1bl9jb21tYW5kKFsnZ2l0JywgJ2FkZCcsIHRl
c3RfZmlsZV9uYW1lXSkKICAgICAgICAgcnVuX2NvbW1hbmQoWydnaXQnLCAnY29tbWl0JywgJy1t
JywgJ2JpbmFyeSBkaWZmJ10pCiAgICAgICAgIHBhdGNoX2Zyb21fbG9jYWxfY29tbWl0ID0gc2Nt
LmNyZWF0ZV9wYXRjaF9mcm9tX2xvY2FsX2NvbW1pdCgnSEVBRCcpCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVycy5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5Cmlu
ZGV4IDIxZTRhOWYuLmE5MmRiZDMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5CkBAIC0yNDAsNyArMjQwLDcg
QEAgcmV2aWV3ZXJzX2xpc3QgPSBbCiAgICAgUmV2aWV3ZXIoIlN0ZXZlIEZhbGtlbmJ1cmciLCAi
c2ZhbGtlbkBhcHBsZS5jb20iLCAic2ZhbGtlbiIpLAogICAgIFJldmlld2VyKCJUaW0gT21lcm5p
Y2siLCAidGltb0BhcHBsZS5jb20iKSwKICAgICBSZXZpZXdlcigiVGltb3RoeSBIYXRjaGVyIiwg
WyJ0aW1vdGh5QGhhdGNoZXIubmFtZSIsICJ0aW1vdGh5QGFwcGxlLmNvbSJdLCAieGVub24iKSwK
LSAgICBSZXZpZXdlcih1IlRvciBBcm5lIFZlc3RiXHUwMGY4IiwgInZlc3Rib0B3ZWJraXQub3Jn
IiwgInRvcmFybmUiKSwKKyAgICBSZXZpZXdlcih1J1RvciBBcm5lIFZlc3RiXHhmOCcsICJ2ZXN0
Ym9Ad2Via2l0Lm9yZyIsICJ0b3Jhcm5lIiksCiAgICAgUmV2aWV3ZXIoIlZpY2tpIE11cmxleSIs
ICJ2aWNraUBhcHBsZS5jb20iKSwKICAgICBSZXZpZXdlcigiWGFuIExvcGV6IiwgWyJ4YW4ubG9w
ZXpAZ21haWwuY29tIiwgInhhbkBnbm9tZS5vcmciLCAieGFuQHdlYmtpdC5vcmciXSwgInhhbiIp
LAogICAgIFJldmlld2VyKCJZdXJ5IFNlbWlraGF0c2t5IiwgInl1cnlzQGNocm9taXVtLm9yZyIs
ICJ5dXJ5cyIpLApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2J1Z3ppbGxhLnB5CmluZGV4IDA0NzliZmYuLjY5MjBkNjcgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEucHkKQEAgLTMyLDcg
KzMyLDYgQEAKIAogaW1wb3J0IG9zLnBhdGgKIGltcG9ydCByZQotaW1wb3J0IFN0cmluZ0lPCiBp
bXBvcnQgc3VicHJvY2VzcwogCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSAjIHVzZWQg
aW4gdGltZXN0YW1wKCkKQEAgLTQyOCwxNiArNDI3LDcgQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0
KToKICAgICAgICAgICAgIGlmIGZsYWdbJ3N0YXR1cyddID09ICcrJzoKICAgICAgICAgICAgICAg
ICBhdHRhY2htZW50W3Jlc3VsdF9rZXldID0gZmxhZ1snc2V0dGVyJ10KIAotICAgIGRlZiBfc3Ry
aW5nX2NvbnRlbnRzKHNlbGYsIHNvdXApOgotICAgICAgICAjIFdlYktpdCdzIGJ1Z3ppbGxhIGlu
c3RhbmNlIHVzZXMgVVRGLTguCi0gICAgICAgICMgQmVhdXRpZnVsU291cCBhbHdheXMgcmV0dXJu
cyBVbmljb2RlIHN0cmluZ3MsIGhvd2V2ZXIKLSAgICAgICAgIyB0aGUgLnN0cmluZyBtZXRob2Qg
cmV0dXJucyBhICh1bmljb2RlKSBOYXZpZ2FibGVTdHJpbmcuCi0gICAgICAgICMgTmF2aWdhYmxl
U3RyaW5nIGNhbiBjb25mdXNlIG90aGVyIHBhcnRzIG9mIHRoZSBjb2RlLCBzbyB3ZQotICAgICAg
ICAjIGNvbnZlcnQgZnJvbSBOYXZpZ2FibGVTdHJpbmcgdG8gYSByZWFsIHVuaWNvZGUoKSBvYmpl
Y3QgdXNpbmcgdW5pY29kZSgpLgotICAgICAgICByZXR1cm4gdW5pY29kZShzb3VwLnN0cmluZykK
LQogICAgIGRlZiBfcGFyc2VfYXR0YWNobWVudF9lbGVtZW50KHNlbGYsIGVsZW1lbnQsIGJ1Z19p
ZCk6Ci0KICAgICAgICAgYXR0YWNobWVudCA9IHt9CiAgICAgICAgIGF0dGFjaG1lbnRbJ2J1Z19p
ZCddID0gYnVnX2lkCiAgICAgICAgIGF0dGFjaG1lbnRbJ2lzX29ic29sZXRlJ10gPSAoZWxlbWVu
dC5oYXNfa2V5KCdpc29ic29sZXRlJykgYW5kIGVsZW1lbnRbJ2lzb2Jzb2xldGUnXSA9PSAiMSIp
CkBAIC00NDUsOSArNDM1LDkgQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAgICAgICAgYXR0
YWNobWVudFsnaWQnXSA9IGludChlbGVtZW50LmZpbmQoJ2F0dGFjaGlkJykuc3RyaW5nKQogICAg
ICAgICAjIEZJWE1FOiBObyBuZWVkIHRvIHBhcnNlIG91dCB0aGUgdXJsIGhlcmUuCiAgICAgICAg
IGF0dGFjaG1lbnRbJ3VybCddID0gc2VsZi5hdHRhY2htZW50X3VybF9mb3JfaWQoYXR0YWNobWVu
dFsnaWQnXSkKLSAgICAgICAgYXR0YWNobWVudFsnbmFtZSddID0gc2VsZi5fc3RyaW5nX2NvbnRl
bnRzKGVsZW1lbnQuZmluZCgnZGVzYycpKQotICAgICAgICBhdHRhY2htZW50WydhdHRhY2hlcl9l
bWFpbCddID0gc2VsZi5fc3RyaW5nX2NvbnRlbnRzKGVsZW1lbnQuZmluZCgnYXR0YWNoZXInKSkK
LSAgICAgICAgYXR0YWNobWVudFsndHlwZSddID0gc2VsZi5fc3RyaW5nX2NvbnRlbnRzKGVsZW1l
bnQuZmluZCgndHlwZScpKQorICAgICAgICBhdHRhY2htZW50WyduYW1lJ10gPSB1bmljb2RlKGVs
ZW1lbnQuZmluZCgnZGVzYycpLnN0cmluZykKKyAgICAgICAgYXR0YWNobWVudFsnYXR0YWNoZXJf
ZW1haWwnXSA9IHN0cihlbGVtZW50LmZpbmQoJ2F0dGFjaGVyJykuc3RyaW5nKQorICAgICAgICBh
dHRhY2htZW50Wyd0eXBlJ10gPSBzdHIoZWxlbWVudC5maW5kKCd0eXBlJykuc3RyaW5nKQogICAg
ICAgICBzZWxmLl9wYXJzZV9hdHRhY2htZW50X2ZsYWcoCiAgICAgICAgICAgICAgICAgZWxlbWVu
dCwgJ3JldmlldycsIGF0dGFjaG1lbnQsICdyZXZpZXdlcl9lbWFpbCcpCiAgICAgICAgIHNlbGYu
X3BhcnNlX2F0dGFjaG1lbnRfZmxhZygKQEAgLTQ1OCwxMCArNDQ4LDEwIEBAIGNsYXNzIEJ1Z3pp
bGxhKG9iamVjdCk6CiAgICAgICAgIHNvdXAgPSBCZWF1dGlmdWxTb3VwKHBhZ2UpCiAgICAgICAg
IGJ1ZyA9IHt9CiAgICAgICAgIGJ1Z1siaWQiXSA9IGludChzb3VwLmZpbmQoImJ1Z19pZCIpLnN0
cmluZykKLSAgICAgICAgYnVnWyJ0aXRsZSJdID0gc2VsZi5fc3RyaW5nX2NvbnRlbnRzKHNvdXAu
ZmluZCgic2hvcnRfZGVzYyIpKQotICAgICAgICBidWdbInJlcG9ydGVyX2VtYWlsIl0gPSBzZWxm
Ll9zdHJpbmdfY29udGVudHMoc291cC5maW5kKCJyZXBvcnRlciIpKQotICAgICAgICBidWdbImFz
c2lnbmVkX3RvX2VtYWlsIl0gPSBzZWxmLl9zdHJpbmdfY29udGVudHMoc291cC5maW5kKCJhc3Np
Z25lZF90byIpKQotICAgICAgICBidWdbImNjX2VtYWlscyJdID0gW3NlbGYuX3N0cmluZ19jb250
ZW50cyhlbGVtZW50KQorICAgICAgICBidWdbInRpdGxlIl0gPSB1bmljb2RlKHNvdXAuZmluZCgi
c2hvcnRfZGVzYyIpLnN0cmluZykKKyAgICAgICAgYnVnWyJyZXBvcnRlcl9lbWFpbCJdID0gc3Ry
KHNvdXAuZmluZCgicmVwb3J0ZXIiKS5zdHJpbmcpCisgICAgICAgIGJ1Z1siYXNzaWduZWRfdG9f
ZW1haWwiXSA9IHN0cihzb3VwLmZpbmQoImFzc2lnbmVkX3RvIikuc3RyaW5nKQorICAgICAgICBi
dWdbImNjX2VtYWlscyJdID0gW3N0cihlbGVtZW50LnN0cmluZykKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmb3IgZWxlbWVudCBpbiBzb3VwLmZpbmRBbGwoJ2NjJyldCiAgICAgICAgIGJ1
Z1siYXR0YWNobWVudHMiXSA9IFtzZWxmLl9wYXJzZV9hdHRhY2htZW50X2VsZW1lbnQoZWxlbWVu
dCwgYnVnWyJpZCJdKSBmb3IgZWxlbWVudCBpbiBzb3VwLmZpbmRBbGwoJ2F0dGFjaG1lbnQnKV0K
ICAgICAgICAgcmV0dXJuIGJ1ZwpAQCAtNTU4LDcgKzU0OCw3IEBAIGNsYXNzIEJ1Z3ppbGxhKG9i
amVjdCk6CiAKICAgICBkZWYgX2ZpbGxfYXR0YWNobWVudF9mb3JtKHNlbGYsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRjaF9maWxlX29i
amVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRfdGV4dD1Ob25lLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfcmV2aWV3PUZhbHNlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfY29tbWl0X3F1ZXVlPUZhbHNlLApA
QCAtNTc4LDkgKzU2OCw2IEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgICAgICBw
YXRjaF9uYW1lID0gImJ1Zy0lcy0lcy5wYXRjaCIgJSAoYnVnX2lkLCB0aW1lc3RhbXAoKSkKICAg
ICAgICAgZWxzZToKICAgICAgICAgICAgIHBhdGNoX25hbWUgPSIlcy5wYXRjaCIgJSB0aW1lc3Rh
bXAoKQotCi0gICAgICAgICMgQ2xpZW50Rm9ybSBleHBlY3RzIGEgZmlsZS1saWtlIG9iamVjdAot
ICAgICAgICBwYXRjaF9maWxlX29iamVjdCA9IFN0cmluZ0lPLlN0cmluZ0lPKGRpZmYuZW5jb2Rl
KCJ1dGYtOCIpKQogICAgICAgICBzZWxmLmJyb3dzZXIuYWRkX2ZpbGUocGF0Y2hfZmlsZV9vYmpl
Y3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dC9wbGFpbiIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXRjaF9uYW1lLApAQCAtNTg4LDcgKzU3NSw3IEBAIGNs
YXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAKICAgICBkZWYgYWRkX3BhdGNoX3RvX2J1ZyhzZWxmLAog
ICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Z19pZCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWZmLAorICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoX2ZpbGVfb2JqZWN0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbW1lbnRfdGV4dD1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9y
X3Jldmlldz1GYWxzZSwKQEAgLTYwNyw5ICs1OTQsOCBAQCBjbGFzcyBCdWd6aWxsYShvYmplY3Qp
OgogICAgICAgICBzZWxmLmJyb3dzZXIub3BlbigiJXNhdHRhY2htZW50LmNnaT9hY3Rpb249ZW50
ZXImYnVnaWQ9JXMiICUgKAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJ1Z19zZXJ2
ZXJfdXJsLCBidWdfaWQpKQogICAgICAgICBzZWxmLmJyb3dzZXIuc2VsZWN0X2Zvcm0obmFtZT0i
ZW50cnlmb3JtIikKLQogICAgICAgICBzZWxmLl9maWxsX2F0dGFjaG1lbnRfZm9ybShkZXNjcmlw
dGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2hfZmlsZV9vYmplY3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX3Jldmlldz1tYXJrX2Zvcl9yZXZpZXcs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2NvbW1pdF9xdWV1
ZT1tYXJrX2Zvcl9jb21taXRfcXVldWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1hcmtfZm9yX2xhbmRpbmc9bWFya19mb3JfbGFuZGluZywKQEAgLTY0Miw3ICs2MjgsNyBA
QCBjbGFzcyBCdWd6aWxsYShvYmplY3QpOgogICAgICAgICAgICAgICAgICAgIGJ1Z190aXRsZSwK
ICAgICAgICAgICAgICAgICAgICBidWdfZGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAg
Y29tcG9uZW50PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgZGlmZj1Ob25lLAorICAgICAgICAg
ICAgICAgICAgIHBhdGNoX2ZpbGVfb2JqZWN0PU5vbmUsCiAgICAgICAgICAgICAgICAgICAgcGF0
Y2hfZGVzY3JpcHRpb249Tm9uZSwKICAgICAgICAgICAgICAgICAgICBjYz1Ob25lLAogICAgICAg
ICAgICAgICAgICAgIGJsb2NrZWQ9Tm9uZSwKQEAgLTY2NywxNCArNjUzLDE0IEBAIGNsYXNzIEJ1
Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgIGlmIGNjOgogICAgICAgICAgICAgc2VsZi5icm93c2Vy
WyJjYyJdID0gY2MKICAgICAgICAgaWYgYmxvY2tlZDoKLSAgICAgICAgICAgIHNlbGYuYnJvd3Nl
clsiYmxvY2tlZCJdID0gdW5pY29kZShibG9ja2VkKQorICAgICAgICAgICAgc2VsZi5icm93c2Vy
WyJibG9ja2VkIl0gPSBzdHIoYmxvY2tlZCkKICAgICAgICAgc2VsZi5icm93c2VyWyJzaG9ydF9k
ZXNjIl0gPSBidWdfdGl0bGUKICAgICAgICAgc2VsZi5icm93c2VyWyJjb21tZW50Il0gPSBidWdf
ZGVzY3JpcHRpb24KIAotICAgICAgICBpZiBkaWZmOgorICAgICAgICBpZiBwYXRjaF9maWxlX29i
amVjdDoKICAgICAgICAgICAgIHNlbGYuX2ZpbGxfYXR0YWNobWVudF9mb3JtKAogICAgICAgICAg
ICAgICAgICAgICBwYXRjaF9kZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgZGlmZiwK
KyAgICAgICAgICAgICAgICAgICAgcGF0Y2hfZmlsZV9vYmplY3QsCiAgICAgICAgICAgICAgICAg
ICAgIG1hcmtfZm9yX3Jldmlldz1tYXJrX2Zvcl9yZXZpZXcsCiAgICAgICAgICAgICAgICAgICAg
IG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT1tYXJrX2Zvcl9jb21taXRfcXVldWUpCiAKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC5weSBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC5weQppbmRl
eCBlNGU2MjczLi43NTNlOTA5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvYnVpbGRib3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2J1aWxkYm90LnB5CkBAIC00NCw3ICs0NCw3IEBAIF9sb2cgPSBnZXRf
bG9nZ2VyKF9fZmlsZV9fKQogCiBjbGFzcyBCdWlsZGVyKG9iamVjdCk6CiAgICAgZGVmIF9faW5p
dF9fKHNlbGYsIG5hbWUsIGJ1aWxkYm90KToKLSAgICAgICAgc2VsZi5fbmFtZSA9IG5hbWUKKyAg
ICAgICAgc2VsZi5fbmFtZSA9IHVuaWNvZGUobmFtZSkKICAgICAgICAgc2VsZi5fYnVpbGRib3Qg
PSBidWlsZGJvdAogICAgICAgICBzZWxmLl9idWlsZHNfY2FjaGUgPSB7fQogICAgICAgICBzZWxm
Ll9yZXZpc2lvbl90b19idWlsZF9udW1iZXIgPSBOb25lCkBAIC0yMjMsMTIgKzIyMywxMiBAQCBj
bGFzcyBMYXlvdXRUZXN0UmVzdWx0cyhvYmplY3QpOgogICAgICAgICBwYXJzZWRfcmVzdWx0cyA9
IHt9CiAgICAgICAgIHRhYmxlcyA9IEJlYXV0aWZ1bFNvdXAocGFnZSkuZmluZEFsbCgidGFibGUi
KQogICAgICAgICBmb3IgdGFibGUgaW4gdGFibGVzOgotICAgICAgICAgICAgdGFibGVfdGl0bGUg
PSB1bmljb2RlKHRhYmxlLmZpbmRQcmV2aW91c1NpYmxpbmcoInAiKS5zdHJpbmcpCisgICAgICAg
ICAgICB0YWJsZV90aXRsZSA9IHRhYmxlLmZpbmRQcmV2aW91c1NpYmxpbmcoInAiKS5zdHJpbmcK
ICAgICAgICAgICAgIGlmIHRhYmxlX3RpdGxlIG5vdCBpbiBjbHMuZXhwZWN0ZWRfa2V5czoKICAg
ICAgICAgICAgICAgICAjIFRoaXMgRXhjZXB0aW9uIHNob3VsZCBvbmx5IGV2ZXIgYmUgaGl0IGlm
IHJ1bi13ZWJraXQtdGVzdHMgY2hhbmdlcyBpdHMgcmVzdWx0cy5odG1sIGZvcm1hdC4KLSAgICAg
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIlVuaGFuZGxlZCB0aXRsZTogJXMiICUgdGFibGVf
dGl0bGUpCisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJVbmhhbmRsZWQgdGl0bGU6
ICVzIiAlIHN0cih0YWJsZV90aXRsZSkpCiAgICAgICAgICAgICAjIFdlIG1pZ2h0IHdhbnQgdG8g
dHJhbnNsYXRlIHRhYmxlIHRpdGxlcyBpbnRvIGlkZW50aWZpZXJzIGJlZm9yZSBzdG9yaW5nLgot
ICAgICAgICAgICAgcGFyc2VkX3Jlc3VsdHNbdGFibGVfdGl0bGVdID0gW3VuaWNvZGUocm93LmZp
bmQoImEiKS5zdHJpbmcpIGZvciByb3cgaW4gdGFibGUuZmluZEFsbCgidHIiKV0KKyAgICAgICAg
ICAgIHBhcnNlZF9yZXN1bHRzW3RhYmxlX3RpdGxlXSA9IFtyb3cuZmluZCgiYSIpLnN0cmluZyBm
b3Igcm93IGluIHRhYmxlLmZpbmRBbGwoInRyIildCiAKICAgICAgICAgcmV0dXJuIHBhcnNlZF9y
ZXN1bHRzCiAKQEAgLTM2MSw3ICszNjEsNyBAQCBjbGFzcyBCdWlsZEJvdChvYmplY3QpOgogCiAg
ICAgICAgICMgRmlyc3QgY2VsbCBpcyB0aGUgbmFtZQogICAgICAgICBuYW1lX2xpbmsgPSBzdGF0
dXNfY2VsbHNbMF0uZmluZCgnYScpCi0gICAgICAgIGJ1aWxkZXJbIm5hbWUiXSA9IHVuaWNvZGUo
bmFtZV9saW5rLnN0cmluZykKKyAgICAgICAgYnVpbGRlclsibmFtZSJdID0gbmFtZV9saW5rLnN0
cmluZwogCiAgICAgICAgIHNlbGYuX3BhcnNlX2xhc3RfYnVpbGRfY2VsbChidWlsZGVyLCBzdGF0
dXNfY2VsbHNbMV0pCiAgICAgICAgIHNlbGYuX3BhcnNlX2N1cnJlbnRfYnVpbGRfY2VsbChidWls
ZGVyLCBzdGF0dXNfY2VsbHNbMl0pCkBAIC00MTAsMTMgKzQxMCwxMyBAQCBjbGFzcyBCdWlsZEJv
dChvYmplY3QpOgogICAgICAgICByZXR1cm4gdXJsbGliMi51cmxvcGVuKGJ1aWxkX3N0YXR1c191
cmwpCiAKICAgICBkZWYgX3BhcnNlX3R3aXN0ZWRfZmlsZV9yb3coc2VsZiwgZmlsZV9yb3cpOgot
ICAgICAgICBzdHJpbmdfb3JfZW1wdHkgPSBsYW1iZGEgc291cDogdW5pY29kZShzb3VwLnN0cmlu
ZykgaWYgc291cC5zdHJpbmcgZWxzZSB1IiIKKyAgICAgICAgc3RyaW5nX29yX2VtcHR5ID0gbGFt
YmRhIHN0cmluZzogc3RyKHN0cmluZykgaWYgc3RyaW5nIGVsc2UgIiIKICAgICAgICAgZmlsZV9j
ZWxscyA9IGZpbGVfcm93LmZpbmRBbGwoJ3RkJykKICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAg
ICAgICJmaWxlbmFtZSI6IHN0cmluZ19vcl9lbXB0eShmaWxlX2NlbGxzWzBdLmZpbmQoImEiKSks
Ci0gICAgICAgICAgICAic2l6ZSI6IHN0cmluZ19vcl9lbXB0eShmaWxlX2NlbGxzWzFdKSwKLSAg
ICAgICAgICAgICJ0eXBlIjogc3RyaW5nX29yX2VtcHR5KGZpbGVfY2VsbHNbMl0pLAotICAgICAg
ICAgICAgImVuY29kaW5nIjogc3RyaW5nX29yX2VtcHR5KGZpbGVfY2VsbHNbM10pLAorICAgICAg
ICAgICAgImZpbGVuYW1lIiA6IHN0cmluZ19vcl9lbXB0eShmaWxlX2NlbGxzWzBdLmZpbmQoImEi
KS5zdHJpbmcpLAorICAgICAgICAgICAgInNpemUiIDogc3RyaW5nX29yX2VtcHR5KGZpbGVfY2Vs
bHNbMV0uc3RyaW5nKSwKKyAgICAgICAgICAgICJ0eXBlIiA6IHN0cmluZ19vcl9lbXB0eShmaWxl
X2NlbGxzWzJdLnN0cmluZyksCisgICAgICAgICAgICAiZW5jb2RpbmciIDogc3RyaW5nX29yX2Vt
cHR5KGZpbGVfY2VsbHNbM10uc3RyaW5nKSwKICAgICAgICAgfQogCiAgICAgZGVmIF9wYXJzZV90
d2lzdGVkX2RpcmVjdG9yeV9saXN0aW5nKHNlbGYsIHBhZ2UpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90X3VuaXR0ZXN0LnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90X3VuaXR0ZXN0
LnB5CmluZGV4IDY3YzQ2ZWQuLmY3NjVmNmUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdF91bml0dGVzdC5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3RfdW5pdHRlc3QucHkKQEAg
LTUxLDcgKzUxLDcgQEAgY2xhc3MgQnVpbGRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAg
ICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLmJ1aWxkYm90ID0gQnVpbGRCb3QoKQot
ICAgICAgICBzZWxmLmJ1aWxkZXIgPSBCdWlsZGVyKHUiVGVzdCBCdWlsZGVyIFx1MjY2MSIsIHNl
bGYuYnVpbGRib3QpCisgICAgICAgIHNlbGYuYnVpbGRlciA9IEJ1aWxkZXIoIlRlc3QgQnVpbGRl
ciIsIHNlbGYuYnVpbGRib3QpCiAgICAgICAgIHNlbGYuX2luc3RhbGxfZmV0Y2hfYnVpbGQobGFt
YmRhIGJ1aWxkX251bWJlcjogWyJ0ZXN0MSIsICJ0ZXN0MiJdKQogCiAgICAgZGVmIHRlc3RfZmlu
ZF9mYWlsdXJlX3RyYW5zaXRpb24oc2VsZik6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvc3RhdHVzc2VydmVyLnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L3N0YXR1c3NlcnZlci5weQppbmRleCBkOWI1MmEyLi5l
ODk4N2E5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvc3RhdHVzc2VydmVyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9zdGF0dXNzZXJ2ZXIucHkKQEAgLTUyLDkgKzUyLDkgQEAgY2xhc3MgU3RhdHVzU2Vy
dmVyOgogICAgICAgICBpZiBub3QgcGF0Y2g6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAg
aWYgcGF0Y2guYnVnX2lkKCk6Ci0gICAgICAgICAgICBzZWxmLmJyb3dzZXJbImJ1Z19pZCJdID0g
dW5pY29kZShwYXRjaC5idWdfaWQoKSkKKyAgICAgICAgICAgIHNlbGYuYnJvd3NlclsiYnVnX2lk
Il0gPSBzdHIocGF0Y2guYnVnX2lkKCkpCiAgICAgICAgIGlmIHBhdGNoLmlkKCk6Ci0gICAgICAg
ICAgICBzZWxmLmJyb3dzZXJbInBhdGNoX2lkIl0gPSB1bmljb2RlKHBhdGNoLmlkKCkpCisgICAg
ICAgICAgICBzZWxmLmJyb3dzZXJbInBhdGNoX2lkIl0gPSBzdHIocGF0Y2guaWQoKSkKIAogICAg
IGRlZiBfYWRkX3Jlc3VsdHNfZmlsZShzZWxmLCByZXN1bHRzX2ZpbGUpOgogICAgICAgICBpZiBu
b3QgcmVzdWx0c19maWxlOgpAQCAtNzksNyArNzksNyBAQCBjbGFzcyBTdGF0dXNTZXJ2ZXI6CiAg
ICAgICAgIHVwZGF0ZV9zdm5fcmV2aXNpb25fdXJsID0gIiVzL3VwZGF0ZS1zdm4tcmV2aXNpb24i
ICUgc2VsZi51cmwKICAgICAgICAgc2VsZi5icm93c2VyLm9wZW4odXBkYXRlX3N2bl9yZXZpc2lv
bl91cmwpCiAgICAgICAgIHNlbGYuYnJvd3Nlci5zZWxlY3RfZm9ybShuYW1lPSJ1cGRhdGVfc3Zu
X3JldmlzaW9uIikKLSAgICAgICAgc2VsZi5icm93c2VyWyJudW1iZXIiXSA9IHVuaWNvZGUoc3Zu
X3JldmlzaW9uX251bWJlcikKKyAgICAgICAgc2VsZi5icm93c2VyWyJudW1iZXIiXSA9IHN0cihz
dm5fcmV2aXNpb25fbnVtYmVyKQogICAgICAgICBzZWxmLmJyb3dzZXJbImJyb2tlbl9ib3QiXSA9
IGJyb2tlbl9ib3QKICAgICAgICAgcmV0dXJuIHNlbGYuYnJvd3Nlci5zdWJtaXQoKS5yZWFkKCkK
IApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vcHJldHR5
cGF0Y2gucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9wcmV0dHlwYXRj
aC5weQppbmRleCBlN2M4NzZhLi44MTU3ZjljIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9wcmV0dHlwYXRjaC5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9wcmV0dHlwYXRjaC5weQpAQCAtMzgsNyArMzgsNyBAQCBjbGFz
cyBQcmV0dHlQYXRjaChvYmplY3QpOgogICAgIGRlZiBwcmV0dHlfZGlmZl9maWxlKHNlbGYsIGRp
ZmYpOgogICAgICAgICBwcmV0dHlfZGlmZiA9IHNlbGYucHJldHR5X2RpZmYoZGlmZikKICAgICAg
ICAgZGlmZl9maWxlID0gdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKHN1ZmZpeD0iLmh0bWwi
KQotICAgICAgICBkaWZmX2ZpbGUud3JpdGUocHJldHR5X2RpZmYuZW5jb2RlKCJ1dGYtOCIpKQor
ICAgICAgICBkaWZmX2ZpbGUud3JpdGUocHJldHR5X2RpZmYpCiAgICAgICAgIGRpZmZfZmlsZS5m
bHVzaCgpCiAgICAgICAgIHJldHVybiBkaWZmX2ZpbGUKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2F1dG9pbnN0YWxsLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2F1dG9pbnN0YWxsLnB5CmluZGV4
IDlhZGFiMjkuLjMyZmQyY2YgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9hdXRvaW5zdGFsbC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vYXV0b2luc3RhbGwucHkKQEAgLTMwLDEwICszMCw2IEBA
CiAKICIiIlN1cHBvcnQgZm9yIGF1dG9tYXRpY2FsbHkgZG93bmxvYWRpbmcgUHl0aG9uIHBhY2th
Z2VzIGZyb20gYW4gVVJMLiIiIgogCi0KLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgd2l0aF9zdGF0
ZW1lbnQKLQotaW1wb3J0IGNvZGVjcwogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBuZXcKIGltcG9y
dCBvcwpAQCAtMTE4LDcgKzExNCw3IEBAIGNsYXNzIEF1dG9JbnN0YWxsZXIob2JqZWN0KToKIAog
ICAgICAgICBvcy5tYWtlZGlycyhwYXRoKQogCi0gICAgZGVmIF93cml0ZV9maWxlKHNlbGYsIHBh
dGgsIHRleHQsIGVuY29kaW5nKToKKyAgICBkZWYgX3dyaXRlX2ZpbGUoc2VsZiwgcGF0aCwgdGV4
dCk6CiAgICAgICAgICIiIkNyZWF0ZSBhIGZpbGUgYXQgdGhlIGdpdmVuIHBhdGggd2l0aCBnaXZl
biB0ZXh0LgogCiAgICAgICAgIFRoaXMgbWV0aG9kIG92ZXJ3cml0ZXMgYW55IGV4aXN0aW5nIGZp
bGUuCkBAIC0xMjYsOCArMTIyLDExIEBAIGNsYXNzIEF1dG9JbnN0YWxsZXIob2JqZWN0KToKICAg
ICAgICAgIiIiCiAgICAgICAgIF9sb2cuZGVidWcoIkNyZWF0aW5nIGZpbGUuLi4iKQogICAgICAg
ICBfbG9nLmRlYnVnKCcgICAgIiVzIicgJSBwYXRoKQotICAgICAgICB3aXRoIGNvZGVjcy5vcGVu
KHBhdGgsICJ3IiwgZW5jb2RpbmcpIGFzIGZpbGU6CisgICAgICAgIGZpbGUgPSBvcGVuKHBhdGgs
ICJ3IikKKyAgICAgICAgdHJ5OgogICAgICAgICAgICAgZmlsZS53cml0ZSh0ZXh0KQorICAgICAg
ICBmaW5hbGx5OgorICAgICAgICAgICAgZmlsZS5jbG9zZSgpCiAKICAgICBkZWYgX3NldF91cF90
YXJnZXRfZGlyKHNlbGYsIHRhcmdldF9kaXIsIGFwcGVuZF90b19zZWFyY2hfcGF0aCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1ha2VfcGFja2FnZSk6CkBAIC0xNTUsNyArMTU0LDcgQEAg
Y2xhc3MgQXV0b0luc3RhbGxlcihvYmplY3QpOgogICAgICAgICAgICAgaWYgbm90IG9zLnBhdGgu
ZXhpc3RzKGluaXRfcGF0aCk6CiAgICAgICAgICAgICAgICAgdGV4dCA9ICgiIyBUaGlzIGZpbGUg
aXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyAiCiAgICAgICAgICAgICAgICAg
ICAgICAgICAiZGlyZWN0b3J5IGZvciBtb2R1bGVzLlxuIikKLSAgICAgICAgICAgICAgICBzZWxm
Ll93cml0ZV9maWxlKGluaXRfcGF0aCwgdGV4dCwgImFzY2lpIikKKyAgICAgICAgICAgICAgICBz
ZWxmLl93cml0ZV9maWxlKGluaXRfcGF0aCwgdGV4dCkKIAogICAgIGRlZiBfY3JlYXRlX3NjcmF0
Y2hfZGlyZWN0b3J5X2lubmVyKHNlbGYsIHByZWZpeCk6CiAgICAgICAgICIiIkNyZWF0ZSBhIHNj
cmF0Y2ggZGlyZWN0b3J5IHdpdGhvdXQgZXhjZXB0aW9uIGhhbmRsaW5nLgpAQCAtMjE3LDggKzIx
NiwxMSBAQCBjbGFzcyBBdXRvSW5zdGFsbGVyKG9iamVjdCk6CiAgICAgICAgICAgICBfbG9nLmRl
YnVnKCJObyBVUkwgZmlsZSBmb3VuZC4iKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAg
ICAgICAgd2l0aCBjb2RlY3Mub3Blbih2ZXJzaW9uX3BhdGgsICJyIiwgInV0Zi04IikgYXMgZmls
ZToKKyAgICAgICAgZmlsZSA9IG9wZW4odmVyc2lvbl9wYXRoLCAiciIpCisgICAgICAgIHRyeToK
ICAgICAgICAgICAgIHZlcnNpb24gPSBmaWxlLnJlYWQoKQorICAgICAgICBmaW5hbGx5OgorICAg
ICAgICAgICAgZmlsZS5jbG9zZSgpCiAKICAgICAgICAgcmV0dXJuIHZlcnNpb24uc3RyaXAoKSA9
PSB1cmwuc3RyaXAoKQogCkBAIC0yMjksNyArMjMxLDcgQEAgY2xhc3MgQXV0b0luc3RhbGxlcihv
YmplY3QpOgogICAgICAgICBfbG9nLmRlYnVnKCcgICAgVVJMOiAiJXMiJyAlIHVybCkKICAgICAg
ICAgX2xvZy5kZWJ1ZygnICAgICBUbzogIiVzIicgJSB2ZXJzaW9uX3BhdGgpCiAKLSAgICAgICAg
c2VsZi5fd3JpdGVfZmlsZSh2ZXJzaW9uX3BhdGgsIHVybCwgInV0Zi04IikKKyAgICAgICAgc2Vs
Zi5fd3JpdGVfZmlsZSh2ZXJzaW9uX3BhdGgsIHVybCkKIAogICAgIGRlZiBfZXh0cmFjdF90YXJn
eihzZWxmLCBwYXRoLCBzY3JhdGNoX2Rpcik6CiAgICAgICAgICMgdGFyZmlsZS5leHRyYWN0YWxs
KCkgZXh0cmFjdHMgdG8gYSBwYXRoIHdpdGhvdXQgdGhlCkBAIC0yODIsOCArMjg0LDYgQEAgY2xh
c3MgQXV0b0luc3RhbGxlcihvYmplY3QpOgogICAgICAgICAgICAgIyBPdGhlcndpc2UsIGl0IGlz
IGEgZmlsZS4KIAogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICMgV2Ugb3BlbiB0
aGlzIGZpbGUgdy9vIGVuY29kaW5nLCBhcyB3ZSdyZSByZWFkaW5nL3dyaXRpbmcKLSAgICAgICAg
ICAgICAgICAjIHRoZSByYXcgYnl0ZS1zdHJlYW0gZnJvbSB0aGUgemlwIGZpbGUuCiAgICAgICAg
ICAgICAgICAgb3V0ZmlsZSA9IG9wZW4ocGF0aCwgJ3diJykKICAgICAgICAgICAgIGV4Y2VwdCBJ
T0Vycm9yLCBlcnI6CiAgICAgICAgICAgICAgICAgIyBOb3QgYWxsIHppcCBmaWxlcyBzZWVtIHRv
IGxpc3QgdGhlIGRpcmVjdG9yaWVzIGV4cGxpY2l0bHksCkBAIC0zODQsOCArMzg0LDkgQEAgY2xh
c3MgQXV0b0luc3RhbGxlcihvYmplY3QpOgogCiAgICAgICAgIHNlbGYuX2xvZ190cmFuc2Zlcigi
U3RhcnRpbmcgZG93bmxvYWQuLi4iLCB1cmwsIHRhcmdldF9wYXRoKQogCi0gICAgICAgIHdpdGgg
b3Blbih0YXJnZXRfcGF0aCwgIndiIikgYXMgc3RyZWFtOgotICAgICAgICAgICAgYnl0ZXMgPSBz
ZWxmLl9kb3dubG9hZF90b19zdHJlYW0odXJsLCBzdHJlYW0pCisgICAgICAgIHN0cmVhbSA9IGZp
bGUodGFyZ2V0X3BhdGgsICJ3YiIpCisgICAgICAgIGJ5dGVzID0gc2VsZi5fZG93bmxvYWRfdG9f
c3RyZWFtKHVybCwgc3RyZWFtKQorICAgICAgICBzdHJlYW0uY2xvc2UoKQogCiAgICAgICAgIF9s
b2cuZGVidWcoIkRvd25sb2FkZWQgJXMgYnl0ZXMuIiAlIGJ5dGVzKQogCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZGVwcmVjYXRlZF9sb2dn
aW5nLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2RlcHJl
Y2F0ZWRfbG9nZ2luZy5weQppbmRleCA5ZTZiNTI5Li5iYTFjNWViIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZGVwcmVjYXRlZF9sb2dnaW5n
LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9kZXBy
ZWNhdGVkX2xvZ2dpbmcucHkKQEAgLTMwLDMwICszMCwyNCBAQAogIyBXZWJLaXQncyBQeXRob24g
bW9kdWxlIGZvciBsb2dnaW5nCiAjIFRoaXMgbW9kdWxlIGlzIG5vdyBkZXByZWNhdGVkIGluIGZh
dm9yIG9mIHB5dGhvbidzIGJ1aWx0LWluIGxvZ2dpbmcucHkuCiAKLWltcG9ydCBjb2RlY3MKIGlt
cG9ydCBvcwogaW1wb3J0IHN5cwogCi0KIGRlZiBsb2coc3RyaW5nKToKICAgICBwcmludCA+PiBz
eXMuc3RkZXJyLCBzdHJpbmcKIAotCiBkZWYgZXJyb3Ioc3RyaW5nKToKICAgICBsb2coIkVSUk9S
OiAlcyIgJSBzdHJpbmcpCiAgICAgZXhpdCgxKQogCi0KICMgU2ltcGxlIGNsYXNzIHRvIHNwbGl0
IG91dHB1dCBiZXR3ZWVuIG11bHRpcGxlIGRlc3RpbmF0aW9ucwogY2xhc3MgdGVlOgogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCAqZmlsZXMpOgogICAgICAgICBzZWxmLmZpbGVzID0gZmlsZXMKIAot
ICAgICMgQ2FsbGVycyBzaG91bGQgcGFzcyBhbiBhbHJlYWR5IGVuY29kZWQgc3RyaW5nIGZvciB3
cml0aW5nLgotICAgIGRlZiB3cml0ZShzZWxmLCBieXRlcyk6CisgICAgZGVmIHdyaXRlKHNlbGYs
IHN0cmluZyk6CiAgICAgICAgIGZvciBmaWxlIGluIHNlbGYuZmlsZXM6Ci0gICAgICAgICAgICBm
aWxlLndyaXRlKGJ5dGVzKQotCisgICAgICAgICAgICBmaWxlLndyaXRlKHN0cmluZykKIAogY2xh
c3MgT3V0cHV0VGVlOgogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKQEAgLTc3LDcgKzcxLDcgQEAg
Y2xhc3MgT3V0cHV0VGVlOgogICAgICAgICAobG9nX2RpcmVjdG9yeSwgbG9nX25hbWUpID0gb3Mu
cGF0aC5zcGxpdChsb2dfcGF0aCkKICAgICAgICAgaWYgbG9nX2RpcmVjdG9yeSBhbmQgbm90IG9z
LnBhdGguZXhpc3RzKGxvZ19kaXJlY3RvcnkpOgogICAgICAgICAgICAgb3MubWFrZWRpcnMobG9n
X2RpcmVjdG9yeSkKLSAgICAgICAgcmV0dXJuIGNvZGVjcy5vcGVuKGxvZ19wYXRoLCAiYSsiLCAi
dXRmLTgiKQorICAgICAgICByZXR1cm4gb3Blbihsb2dfcGF0aCwgJ2ErJykKIAogICAgIGRlZiBf
dGVlX291dHB1dHNfdG9fZmlsZXMoc2VsZiwgZmlsZXMpOgogICAgICAgICBpZiBub3Qgc2VsZi5f
b3JpZ2luYWxfc3Rkb3V0OgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkKaW5kZXggOTliY2YyNC4uYjYxMjZlNCAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1
dGl2ZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
ZXhlY3V0aXZlLnB5CkBAIC04OCw3ICs4OCw2IEBAIGRlZiBydW5fY29tbWFuZCgqYXJncywgKipr
d2FyZ3MpOgogY2xhc3MgRXhlY3V0aXZlKG9iamVjdCk6CiAKICAgICBkZWYgX3J1bl9jb21tYW5k
X3dpdGhfdGVlZF9vdXRwdXQoc2VsZiwgYXJncywgdGVlZF9vdXRwdXQpOgotICAgICAgICBhcmdz
ID0gbWFwKHVuaWNvZGUsIGFyZ3MpICAjIFBvcGVuIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlm
IGFyZ3MgYXJlIG5vbi1zdHJpbmdzIChsaWtlIGludCgpKQogICAgICAgICBjaGlsZF9wcm9jZXNz
ID0gc3VicHJvY2Vzcy5Qb3BlbihhcmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCkBAIC0xMDAsMjEg
Kzk5LDE0IEBAIGNsYXNzIEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICAgICAgb3V0cHV0X2xp
bmUgPSBjaGlsZF9wcm9jZXNzLnN0ZG91dC5yZWFkbGluZSgpCiAgICAgICAgICAgICBpZiBvdXRw
dXRfbGluZSA9PSAiIiBhbmQgY2hpbGRfcHJvY2Vzcy5wb2xsKCkgIT0gTm9uZToKICAgICAgICAg
ICAgICAgICByZXR1cm4gY2hpbGRfcHJvY2Vzcy5wb2xsKCkKLSAgICAgICAgICAgICMgV2UgYXNz
dW1lIHRoYXQgdGhlIGNoaWxkIHByb2Nlc3Mgd3JvdGUgdG8gdXMgaW4gdXRmLTgsCi0gICAgICAg
ICAgICAjIHNvIG5vIHJlLWVuY29kaW5nIGlzIG5lY2Vzc2FyeSBiZWZvcmUgd3JpdGluZyBoZXJl
LgogICAgICAgICAgICAgdGVlZF9vdXRwdXQud3JpdGUob3V0cHV0X2xpbmUpCiAKLSAgICAjIEZJ
WE1FOiBSZW1vdmUgdGhpcyBkZXByZWNhdGVkIG1ldGhvZCBhbmQgbW92ZSBjYWxsZXJzIHRvIHJ1
bl9jb21tYW5kLgotICAgICMgRklYTUU6IFRoaXMgbWV0aG9kIGlzIGEgaGFjayB0byBhbGxvdyBy
dW5uaW5nIGNvbW1hbmQgd2hpY2ggYm90aAotICAgICMgY2FwdHVyZSB0aGVpciBvdXRwdXQgYW5k
IHByaW50IG91dCB0byBzdGRpbi4gIFVzZWZ1bCBmb3IgdGhpbmdzCi0gICAgIyBsaWtlICJidWls
ZC13ZWJraXQiIHdoZXJlIHdlIHdhbnQgdG8gZGlzcGxheSB0byB0aGUgdXNlciB0aGF0IHdlJ3Jl
IGJ1aWxkaW5nCi0gICAgIyBidXQgc3RpbGwgaGF2ZSB0aGUgb3V0cHV0IHRvIHN0dWZmIGludG8g
YSBsb2cgZmlsZS4KLSAgICBkZWYgcnVuX2FuZF90aHJvd19pZl9mYWlsKHNlbGYsIGFyZ3MsIHF1
aWV0PUZhbHNlLCBkZWNvZGVfb3V0cHV0PVRydWUpOgorICAgIGRlZiBydW5fYW5kX3Rocm93X2lm
X2ZhaWwoc2VsZiwgYXJncywgcXVpZXQ9RmFsc2UpOgogICAgICAgICAjIENhY2hlIHRoZSBjaGls
ZCdzIG91dHB1dCBsb2NhbGx5IHNvIGl0IGNhbiBiZSB1c2VkIGZvciBlcnJvciByZXBvcnRzLgog
ICAgICAgICBjaGlsZF9vdXRfZmlsZSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKICAgICAgICAgdGVl
X3N0ZG91dCA9IHN5cy5zdGRvdXQKICAgICAgICAgaWYgcXVpZXQ6Ci0gICAgICAgICAgICBkZXZf
bnVsbCA9IG9wZW4ob3MuZGV2bnVsbCwgInciKSAgIyBGSVhNRTogRG9lcyB0aGlzIG5lZWQgYW4g
ZW5jb2Rpbmc/CisgICAgICAgICAgICBkZXZfbnVsbCA9IG9wZW4ob3MuZGV2bnVsbCwgInciKQog
ICAgICAgICAgICAgdGVlX3N0ZG91dCA9IGRldl9udWxsCiAgICAgICAgIGNoaWxkX3N0ZG91dCA9
IHRlZShjaGlsZF9vdXRfZmlsZSwgdGVlX3N0ZG91dCkKICAgICAgICAgZXhpdF9jb2RlID0gc2Vs
Zi5fcnVuX2NvbW1hbmRfd2l0aF90ZWVkX291dHB1dChhcmdzLCBjaGlsZF9zdGRvdXQpCkBAIC0x
MjQsMTAgKzExNiw2IEBAIGNsYXNzIEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICBjaGlsZF9v
dXRwdXQgPSBjaGlsZF9vdXRfZmlsZS5nZXR2YWx1ZSgpCiAgICAgICAgIGNoaWxkX291dF9maWxl
LmNsb3NlKCkKIAotICAgICAgICAjIFdlIGFzc3VtZSB0aGUgY2hpbGQgcHJvY2VzcyBvdXRwdXQg
dXRmLTgKLSAgICAgICAgaWYgZGVjb2RlX291dHB1dDoKLSAgICAgICAgICAgIGNoaWxkX291dHB1
dCA9IGNoaWxkX291dHB1dC5kZWNvZGUoInV0Zi04IikKLQogICAgICAgICBpZiBleGl0X2NvZGU6
CiAgICAgICAgICAgICByYWlzZSBTY3JpcHRFcnJvcihzY3JpcHRfYXJncz1hcmdzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXhpdF9jb2RlPWV4aXRfY29kZSwKQEAgLTE1Nyw3ICsx
NDUsNyBAQCBjbGFzcyBFeGVjdXRpdmUob2JqZWN0KToKICAgICAgICAgICAgICMgb3Mua2lsbCBp
c24ndCBhdmFpbGFibGUgb24gV2luZG93cy4gIEhvd2V2ZXIsIHdoZW4gSSB0cmllZCBpdAogICAg
ICAgICAgICAgIyB1c2luZyBDeWd3aW4sIGl0IHdvcmtlZCBmaW5lLiAgV2Ugc2hvdWxkIGludmVz
dGlnYXRlIHdoZXRoZXIKICAgICAgICAgICAgICMgd2UgbmVlZCB0aGlzIHBsYXRmb3JtIHNwZWNp
ZmljIGNvZGUgaGVyZS4KLSAgICAgICAgICAgIHN1YnByb2Nlc3MuY2FsbCgoJ3Rhc2traWxsLmV4
ZScsICcvZicsICcvcGlkJywgdW5pY29kZShwaWQpKSwKKyAgICAgICAgICAgIHN1YnByb2Nlc3Mu
Y2FsbCgoJ3Rhc2traWxsLmV4ZScsICcvZicsICcvcGlkJywgc3RyKHBpZCkpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0ZGluPW9wZW4ob3MuZGV2bnVsbCwgJ3InKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCkBAIC0xNzUsMzQgKzE2Mywz
MSBAQCBjbGFzcyBFeGVjdXRpdmUob2JqZWN0KToKICAgICBkZWYgaWdub3JlX2Vycm9yKGVycm9y
KToKICAgICAgICAgcGFzcwogCi0gICAgZGVmIF9jb21wdXRlX3N0ZGluKHNlbGYsIGlucHV0KToK
LSAgICAgICAgIiIiUmV0dXJucyAoc3RkaW4sIHN0cmluZ190b19jb21tdW5pY2F0ZSkiIiIKLSAg
ICAgICAgaWYgbm90IGlucHV0OgotICAgICAgICAgICAgcmV0dXJuIChOb25lLCBOb25lKQotICAg
ICAgICBpZiBoYXNhdHRyKGlucHV0LCAicmVhZCIpOiAgIyBDaGVjayBpZiB0aGUgaW5wdXQgaXMg
YSBmaWxlLgotICAgICAgICAgICAgcmV0dXJuIChpbnB1dCwgTm9uZSkgICMgQXNzdW1lIHRoZSBm
aWxlIGlzIGluIHRoZSByaWdodCBlbmNvZGluZy4KLQotICAgICAgICAjIFBvcGVuIGluIFB5dGhv
biAyLjUgYW5kIGJlZm9yZSBkb2VzIG5vdCBhdXRvbWF0aWNhbGx5IGVuY29kZSB1bmljb2RlIG9i
amVjdHMuCi0gICAgICAgICMgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTUyOTAKLSAgICAg
ICAgIyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NTI4Ci0g
ICAgICAgICMgZm9yIGFuIGV4YW1wbGUgb2YgYSByZWdyZXNpb24gY2F1c2VkIGJ5IHBhc3Npbmcg
YSB1bmljb2RlIHN0cmluZyBkaXJlY3RseS4KLSAgICAgICAgIyBGSVhNRTogV2UgbWF5IG5lZWQg
dG8gZW5jb2RlIGRpZmZlcmVudGx5IG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMuCi0gICAgICAgIGlm
IGlzaW5zdGFuY2UoaW5wdXQsIHVuaWNvZGUpOgotICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC5l
bmNvZGUoInV0Zi04IikKLSAgICAgICAgcmV0dXJuIChzdWJwcm9jZXNzLlBJUEUsIGlucHV0KQot
Ci0gICAgIyBGSVhNRTogcnVuX2FuZF90aHJvd19pZl9mYWlsIHNob3VsZCBiZSBtZXJnZWQgaW50
byB0aGlzIG1ldGhvZC4KKyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBtZXJnZWQgd2l0aCBy
dW5fYW5kX3Rocm93X2lmX2ZhaWwKKwogICAgIGRlZiBydW5fY29tbWFuZChzZWxmLAogICAgICAg
ICAgICAgICAgICAgICBhcmdzLAogICAgICAgICAgICAgICAgICAgICBjd2Q9Tm9uZSwKICAgICAg
ICAgICAgICAgICAgICAgaW5wdXQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgZXJyb3JfaGFu
ZGxlcj1Ob25lLAogICAgICAgICAgICAgICAgICAgICByZXR1cm5fZXhpdF9jb2RlPUZhbHNlLAot
ICAgICAgICAgICAgICAgICAgICByZXR1cm5fc3RkZXJyPVRydWUsCi0gICAgICAgICAgICAgICAg
ICAgIGRlY29kZV9vdXRwdXQ9VHJ1ZSk6Ci0gICAgICAgIGFyZ3MgPSBtYXAodW5pY29kZSwgYXJn
cykgICMgUG9wZW4gd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYXJncyBhcmUgbm9uLXN0cmlu
Z3MgKGxpa2UgaW50KCkpCi0gICAgICAgIHN0ZGluLCBzdHJpbmdfdG9fY29tbXVuaWNhdGUgPSBz
ZWxmLl9jb21wdXRlX3N0ZGluKGlucHV0KQotICAgICAgICBzdGRlcnIgPSBzdWJwcm9jZXNzLlNU
RE9VVCBpZiByZXR1cm5fc3RkZXJyIGVsc2UgTm9uZQorICAgICAgICAgICAgICAgICAgICByZXR1
cm5fc3RkZXJyPVRydWUpOgorICAgICAgICBpZiBoYXNhdHRyKGlucHV0LCAncmVhZCcpOiAjIENo
ZWNrIGlmIHRoZSBpbnB1dCBpcyBhIGZpbGUuCisgICAgICAgICAgICBzdGRpbiA9IGlucHV0Cisg
ICAgICAgICAgICBzdHJpbmdfdG9fY29tbXVuaWNhdGUgPSBOb25lCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBzdGRpbiA9IE5vbmUKKyAgICAgICAgICAgIGlmIGlucHV0OgorICAgICAgICAg
ICAgICAgIHN0ZGluID0gc3VicHJvY2Vzcy5QSVBFCisgICAgICAgICAgICAjIHN0cmluZ190b19j
b21tdW5pY2F0ZSBzZWVtcyB0byBuZWVkIHRvIGJlIGEgc3RyIGZvciBwcm9wZXIKKyAgICAgICAg
ICAgICMgY29tbXVuaWNhdGlvbiB3aXRoIHNoZWxsIGNvbW1hbmRzLgorICAgICAgICAgICAgIyBT
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NTI4CisgICAgICAg
ICAgICAjIEZvciBhbiBleGFtcGxlIG9mIGEgcmVncmVzaW9uIGNhdXNlZCBieSBwYXNzaW5nIGEg
dW5pY29kZSBzdHJpbmcgdGhyb3VnaC4KKyAgICAgICAgICAgIHN0cmluZ190b19jb21tdW5pY2F0
ZSA9IHN0cihpbnB1dCkKKyAgICAgICAgaWYgcmV0dXJuX3N0ZGVycjoKKyAgICAgICAgICAgIHN0
ZGVyciA9IHN1YnByb2Nlc3MuU1RET1VUCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdGRl
cnIgPSBOb25lCiAKICAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oYXJncywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkaW49c3RkaW4sCkBAIC0yMTAsOSAr
MTk1LDYgQEAgY2xhc3MgRXhlY3V0aXZlKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0ZGVycj1zdGRlcnIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGN3ZD1jd2QpCiAgICAgICAgIG91dHB1dCA9IHByb2Nlc3MuY29tbXVuaWNhdGUoc3Ry
aW5nX3RvX2NvbW11bmljYXRlKVswXQotICAgICAgICAjIHJ1bl9jb21tYW5kIGF1dG9tYXRpY2Fs
bHkgZGVjb2RlcyB0byB1bmljb2RlKCkgdW5sZXNzIGV4cGxpY2l0bHkgdG9sZCBub3QgdG8uCi0g
ICAgICAgIGlmIGRlY29kZV9vdXRwdXQ6Ci0gICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQuZGVj
b2RlKCJ1dGYtOCIpCiAgICAgICAgIGV4aXRfY29kZSA9IHByb2Nlc3Mud2FpdCgpCiAKICAgICAg
ICAgaWYgcmV0dXJuX2V4aXRfY29kZToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5Cmlu
ZGV4IDY0YzU1MmIuLmFjMzgwZjggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91bml0dGVzdC5weQpA
QCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgRGFuaWVsIEJhdGVzIChkYmF0ZXNAaW50
dWRhdGEuY29tKS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zMSw3
ICszMSw2IEBAIGltcG9ydCB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUsIHJ1bl9jb21tYW5kCiAKLQogY2xhc3MgRXhlY3V0
aXZlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9ydW5fY29tbWFuZF93
aXRoX2JhZF9jb21tYW5kKHNlbGYpOgpAQCAtMzksMjYgKzM4LDUgQEAgY2xhc3MgRXhlY3V0aXZl
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBydW5fY29tbWFuZChbImZvb19i
YXJfY29tbWFuZF9ibGFoIl0sIGVycm9yX2hhbmRsZXI9RXhlY3V0aXZlLmlnbm9yZV9lcnJvciwg
cmV0dXJuX2V4aXRfY29kZT1UcnVlKQogICAgICAgICBzZWxmLmZhaWxVbmxlc3NSYWlzZXMoT1NF
cnJvciwgcnVuX2JhZF9jb21tYW5kKQogCi0gICAgZGVmIHRlc3RfcnVuX2NvbW1hbmRfd2l0aF91
bmljb2RlKHNlbGYpOgotICAgICAgICAiIiJWYWxpZGF0ZSB0aGF0IGl0IGlzIHNhZmUgdG8gcGFz
cyB1bmljb2RlKCkgb2JqZWN0cwotICAgICAgICB0byBFeGVjdXRpdmUucnVuKiBtZXRob2RzLCBh
bmQgdGhleSB3aWxsIHJldHVybiB1bmljb2RlKCkKLSAgICAgICAgb2JqZWN0cyBieSBkZWZhdWx0
IHVubGVzcyBkZWNvZGVfb3V0cHV0PUZhbHNlIiIiCi0gICAgICAgIGV4ZWN1dGl2ZSA9IEV4ZWN1
dGl2ZSgpCi0gICAgICAgIHVuaWNvZGVfdG9yID0gdSJXZWJLaXQgXHUyNjYxIFRvciBBcm5lIFZl
c3RiXHUwMEY4ISIKLSAgICAgICAgdXRmOF90b3IgPSB1bmljb2RlX3Rvci5lbmNvZGUoInV0Zi04
IikKLQotICAgICAgICBvdXRwdXQgPSBleGVjdXRpdmUucnVuX2NvbW1hbmQoWyJjYXQiXSwgaW5w
dXQ9dW5pY29kZV90b3IpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG91dHB1dCwgdW5pY29k
ZV90b3IpCi0KLSAgICAgICAgb3V0cHV0ID0gZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsiZWNobyIs
ICItbiIsIHVuaWNvZGVfdG9yXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3V0cHV0LCB1
bmljb2RlX3RvcikKLQotICAgICAgICBvdXRwdXQgPSBleGVjdXRpdmUucnVuX2NvbW1hbmQoWyJl
Y2hvIiwgIi1uIiwgdW5pY29kZV90b3JdLCBkZWNvZGVfb3V0cHV0PUZhbHNlKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhvdXRwdXQsIHV0ZjhfdG9yKQotCi0gICAgICAgICMgRklYTUU6IFdl
IHNob3VsZCBvbmx5IGhhdmUgb25lIHJ1biogbWV0aG9kIHRvIHRlc3QKLSAgICAgICAgb3V0cHV0
ID0gZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChbImVjaG8iLCAiLW4iLCB1bmljb2Rl
X3Rvcl0sIHF1aWV0PVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG91dHB1dCwgdW5p
Y29kZV90b3IpCi0KLSAgICAgICAgb3V0cHV0ID0gZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZf
ZmFpbChbImVjaG8iLCAiLW4iLCB1bmljb2RlX3Rvcl0sIHF1aWV0PVRydWUsIGRlY29kZV9vdXRw
dXQ9RmFsc2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG91dHB1dCwgdXRmOF90b3IpCitp
ZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5w
eQppbmRleCAxZTQxMmEzLi5lNjFkMTFmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3Ro
cmVhZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9s
YXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpAQCAtMzUsOSArMzUsNiBA
QCB0aGUgb3V0cHV0LiAgV2hlbiB0aGVyZSBhcmUgbm8gbW9yZSBVUkxzIHRvIHByb2Nlc3MgaW4g
dGhlIHNoYXJlZCBxdWV1ZSwgdGhlCiB0aHJlYWQgZXhpdHMuCiAiIiIKIAotZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAotCi1pbXBvcnQgY29kZWNzCiBpbXBvcnQgY29weQog
aW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwpAQCAtOTIsOCArODksNyBAQCBkZWYgcHJvY2Vzc19v
dXRwdXQocG9ydCwgdGVzdF9pbmZvLCB0ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MsIGNvbmZpZ3VyYXRp
b24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5mby5maWxlbmFtZSkp
CiAgICAgICAgIGZpbGVuYW1lID0gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMF0gKyAiLXN0
YWNrLnR4dCIKICAgICAgICAgcG9ydC5tYXliZV9tYWtlX2RpcmVjdG9yeShvcy5wYXRoLnNwbGl0
KGZpbGVuYW1lKVswXSkKLSAgICAgICAgd2l0aCBjb2RlY3Mub3BlbihmaWxlbmFtZSwgIndiIiwg
InV0Zi04IikgYXMgZmlsZToKLSAgICAgICAgICAgIGZpbGUud3JpdGUoZXJyb3IpCisgICAgICAg
IG9wZW4oZmlsZW5hbWUsICJ3YiIpLndyaXRlKGVycm9yKSAgIyBGSVhNRTogVGhpcyBsZWFrcyBh
IGZpbGUgaGFuZGxlLgogICAgIGVsaWYgZXJyb3I6CiAgICAgICAgIF9sb2cuZGVidWcoIlByZXZp
b3VzIHRlc3Qgb3V0cHV0IGV4dHJhIGxpbmVzIGFmdGVyIGR1bXA6XG4lcyIgJQogICAgICAgICAg
ICAgICAgICAgIGVycm9yKQpAQCAtMjk0LDcgKzI5MCw3IEBAIGNsYXNzIFRlc3RTaGVsbFRocmVh
ZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgIyBUaGlzIGlzIGNyZWF0ZWQgaW4gcnVuX3dl
YmtpdF90ZXN0cy5weTpfUHJlcGFyZUxpc3RzQW5kUHJpbnRPdXRwdXQuCiAgICAgICAgIHRlc3Rz
X3J1bl9maWxlbmFtZSA9IG9zLnBhdGguam9pbihzZWxmLl9vcHRpb25zLnJlc3VsdHNfZGlyZWN0
b3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RzX3J1
bi50eHQiKQotICAgICAgICB0ZXN0c19ydW5fZmlsZSA9IGNvZGVjcy5vcGVuKHRlc3RzX3J1bl9m
aWxlbmFtZSwgImEiLCAidXRmLTgiKQorICAgICAgICB0ZXN0c19ydW5fZmlsZSA9IG9wZW4odGVz
dHNfcnVuX2ZpbGVuYW1lLCAiYSIpCiAKICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAg
IGlmIHNlbGYuX2NhbmNlbGVkOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvanNvbl9yZXN1bHRzX2dlbmVyYXRvci5w
eSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL2pzb25fcmVzdWx0c19nZW5lcmF0b3IucHkKaW5kZXggYTMwODZkOS4uNjI2MzU0MCAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0
X3BhY2thZ2UvanNvbl9yZXN1bHRzX2dlbmVyYXRvci5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX3Jlc3VsdHNfZ2Vu
ZXJhdG9yLnB5CkBAIC0yNyw5ICsyNyw2IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50Ci0KLWltcG9ydCBjb2Rl
Y3MKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKIGltcG9ydCBzdWJwcm9jZXNzCkBAIC0xMjEs
NyArMTE4LDcgQEAgY2xhc3MgSlNPTlJlc3VsdHNHZW5lcmF0b3Iob2JqZWN0KToKICAgICAgICAg
IiIiR2VuZXJhdGVzIHRoZSBKU09OIG91dHB1dCBmaWxlLiIiIgogICAgICAgICBqc29uID0gc2Vs
Zi5fZ2V0X2pzb24oKQogICAgICAgICBpZiBqc29uOgotICAgICAgICAgICAgcmVzdWx0c19maWxl
ID0gY29kZWNzLm9wZW4oc2VsZi5fcmVzdWx0c19maWxlX3BhdGgsICJ3IiwgInV0Zi04IikKKyAg
ICAgICAgICAgIHJlc3VsdHNfZmlsZSA9IG9wZW4oc2VsZi5fcmVzdWx0c19maWxlX3BhdGgsICJ3
IikKICAgICAgICAgICAgIHJlc3VsdHNfZmlsZS53cml0ZShqc29uKQogICAgICAgICAgICAgcmVz
dWx0c19maWxlLmNsb3NlKCkKIApAQCAtMTU0LDggKzE1MSw4IEBAIGNsYXNzIEpTT05SZXN1bHRz
R2VuZXJhdG9yKG9iamVjdCk6CiAgICAgICAgIGVycm9yID0gTm9uZQogCiAgICAgICAgIGlmIG9z
LnBhdGguZXhpc3RzKHNlbGYuX3Jlc3VsdHNfZmlsZV9wYXRoKToKLSAgICAgICAgICAgIHdpdGgg
Y29kZWNzLm9wZW4oc2VsZi5fcmVzdWx0c19maWxlX3BhdGgsICJyIiwgInV0Zi04IikgYXMgZmls
ZToKLSAgICAgICAgICAgICAgICBvbGRfcmVzdWx0cyA9IGZpbGUucmVhZCgpCisgICAgICAgICAg
ICBvbGRfcmVzdWx0c19maWxlID0gb3BlbihzZWxmLl9yZXN1bHRzX2ZpbGVfcGF0aCwgInIiKQor
ICAgICAgICAgICAgb2xkX3Jlc3VsdHMgPSBvbGRfcmVzdWx0c19maWxlLnJlYWQoKQogICAgICAg
ICBlbGlmIHNlbGYuX2J1aWxkZXJfYmFzZV91cmw6CiAgICAgICAgICAgICAjIENoZWNrIGlmIHdl
IGhhdmUgdGhlIGFyY2hpdmVkIEpTT04gZmlsZSBvbiB0aGUgYnVpbGRib3Qgc2VydmVyLgogICAg
ICAgICAgICAgcmVzdWx0c19maWxlX3VybCA9IChzZWxmLl9idWlsZGVyX2Jhc2VfdXJsICsKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
YXBhY2hlX2h0dHBfc2VydmVyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9hcGFjaGVfaHR0cF9zZXJ2ZXIucHkKaW5kZXggNGM3OGY3Ny4uMWRkNWI5
MyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9hcGFjaGVfaHR0cF9zZXJ2ZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9hcGFjaGVfaHR0cF9zZXJ2ZXIucHkKQEAgLTI5LDEwICsy
OSw2IEBACiAKICIiIkEgY2xhc3MgdG8gc3RhcnQvc3RvcCB0aGUgYXBhY2hlIGh0dHAgc2VydmVy
IHVzZWQgYnkgbGF5b3V0IHRlc3RzLiIiIgogCi0KLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgd2l0
aF9zdGF0ZW1lbnQKLQotaW1wb3J0IGNvZGVjcwogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcHRw
YXJzZQogaW1wb3J0IG9zCkBAIC0xNTUsOSArMTUxLDcgQEAgY2xhc3MgTGF5b3V0VGVzdEFwYWNo
ZUh0dHBkKGh0dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnZlckJhc2UpOgogICAgICAgICAiIiIKICAg
ICAgICAgaHR0cGRfY29uZmlnID0gc2VsZi5fcG9ydF9vYmouX3BhdGhfdG9fYXBhY2hlX2NvbmZp
Z19maWxlKCkKICAgICAgICAgaHR0cGRfY29uZmlnX2NvcHkgPSBvcy5wYXRoLmpvaW4ob3V0cHV0
X2RpciwgImh0dHBkLmNvbmYiKQotICAgICAgICAjIGh0dHBkLmNvbmYgaXMgYWx3YXlzIHV0Zi04
IGFjY29yZGluZyB0byBodHRwOi8vYXJjaGl2ZS5hcGFjaGUub3JnL2duYXRzLzEwMTI1Ci0gICAg
ICAgIHdpdGggY29kZWNzLm9wZW4oaHR0cGRfY29uZmlnLCAiciIsICJ1dGYtOCIpIGFzIGh0dHBk
X2NvbmZpZ19maWxlOgotICAgICAgICAgICAgaHR0cGRfY29uZiA9IGh0dHBkX2NvbmZpZ19maWxl
LnJlYWQoKQorICAgICAgICBodHRwZF9jb25mID0gb3BlbihodHRwZF9jb25maWcpLnJlYWQoKQog
ICAgICAgICBpZiBzZWxmLl9pc19jeWd3aW4oKToKICAgICAgICAgICAgICMgVGhpcyBpcyBhIGdy
b3NzIGhhY2ssIGJ1dCBpdCBsZXRzIHVzIHVzZSB0aGUgdXBzdHJlYW0gLmNvbmYgZmlsZQogICAg
ICAgICAgICAgIyBhbmQgb3VyIGNoZWNrZWQgaW4gY3lnd2luLiBUaGlzIHRlbGxzIHRoZSBzZXJ2
ZXIgdGhlIHJvb3QKQEAgLTE3MCw4ICsxNjQsOSBAQCBjbGFzcyBMYXlvdXRUZXN0QXBhY2hlSHR0
cGQoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRwU2VydmVyQmFzZSk6CiAgICAgICAgICAgICBodHRwZF9j
b25mID0gaHR0cGRfY29uZi5yZXBsYWNlKCdTZXJ2ZXJSb290ICIvdXNyIicsCiAgICAgICAgICAg
ICAgICAgJ1NlcnZlclJvb3QgIiVzIicgJSBzZWxmLl9nZXRfY3lnd2luX3BhdGgoY3lndXNyKSkK
IAotICAgICAgICB3aXRoIGNvZGVjcy5vcGVuKGh0dHBkX2NvbmZpZ19jb3B5LCAidyIsICJ1dGYt
OCIpIGFzIGZpbGU6Ci0gICAgICAgICAgICBmaWxlLndyaXRlKGh0dHBkX2NvbmYpCisgICAgICAg
IGYgPSBvcGVuKGh0dHBkX2NvbmZpZ19jb3B5LCAnd2InKQorICAgICAgICBmLndyaXRlKGh0dHBk
X2NvbmYpCisgICAgICAgIGYuY2xvc2UoKQogCiAgICAgICAgIGlmIHNlbGYuX2lzX2N5Z3dpbigp
OgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2dldF9jeWd3aW5fcGF0aChodHRwZF9jb25maWdf
Y29weSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW0ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CmluZGV4IGI2ZTM5MTEuLjhiYWUyYTkgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW0ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bS5weQpAQCAtMjksOSArMjksNiBAQAogCiAiIiJDaHJvbWl1bSBpbXBsZW1lbnRh
dGlvbnMgb2YgdGhlIFBvcnQgaW50ZXJmYWNlLiIiIgogCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0
IHdpdGhfc3RhdGVtZW50Ci0KLWltcG9ydCBjb2RlY3MKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQg
b3MKIGltcG9ydCBzaHV0aWwKQEAgLTE0Myw3ICsxNDAsNiBAQCBjbGFzcyBDaHJvbWl1bVBvcnQo
YmFzZS5Qb3J0KToKICAgICAgICAgICAgIGFic3BhdGggPSBvcy5wYXRoLmFic3BhdGgoX19maWxl
X18pCiAgICAgICAgICAgICBvZmZzZXQgPSBhYnNwYXRoLmZpbmQoJ3RoaXJkX3BhcnR5JykKICAg
ICAgICAgICAgIGlmIG9mZnNldCA9PSAtMToKLSAgICAgICAgICAgICAgICAjIEZJWE1FOiBUaGlz
IHNlZW1zIGxpa2UgdGhlIHdyb25nIGVycm9yIHRvIHRocm93LgogICAgICAgICAgICAgICAgIHJh
aXNlIEFzc2VydGlvbkVycm9yKCdjb3VsZCBub3QgZmluZCBDaHJvbWl1bSBiYXNlIGRpciBmcm9t
ICcgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic3BhdGgpCiAgICAg
ICAgICAgICBzZWxmLl9jaHJvbWl1bV9iYXNlX2RpciA9IGFic3BhdGhbMDpvZmZzZXRdCkBAIC0y
MDgsOSArMjA0LDggQEAgY2xhc3MgQ2hyb21pdW1Qb3J0KGJhc2UuUG9ydCk6CiAKICAgICAgICAg
QmFzaWNhbGx5IHRoaXMgc3RyaW5nIHNob3VsZCBjb250YWluIHRoZSBlcXVpdmFsZW50IG9mIGEK
ICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMgZmlsZS4gU2VlIHRlc3RfZXhwZWN0YXRpb25zLnB5
IGZvciBtb3JlIGRldGFpbHMuIiIiCi0gICAgICAgIGV4cGVjdGF0aW9uc19wYXRoID0gc2VsZi5w
YXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKQotICAgICAgICB3aXRoIGNvZGVjcy5vcGVu
KGV4cGVjdGF0aW9uc19maWxlLCAiciIsICJ1dGYtOCIpIGFzIGZpbGU6Ci0gICAgICAgICAgICBy
ZXR1cm4gZmlsZS5yZWFkKCkKKyAgICAgICAgZXhwZWN0YXRpb25zX2ZpbGUgPSBzZWxmLnBhdGhf
dG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZSgpCisgICAgICAgIHJldHVybiBmaWxlKGV4cGVjdGF0
aW9uc19maWxlLCAiciIpLnJlYWQoKQogCiAgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zX292ZXJy
aWRlcyhzZWxmKToKICAgICAgICAgdHJ5OgpAQCAtMjE4LDEwICsyMTMsMTAgQEAgY2xhc3MgQ2hy
b21pdW1Qb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICAgICAgICAgJ2xheW91dF90ZXN0cycsICd0
ZXN0X2V4cGVjdGF0aW9ucy50eHQnKQogICAgICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CiAg
ICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMob3Zl
cnJpZGVzX2ZpbGUpOgorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhvdmVycmlkZXNfZmlsZSk6
CisgICAgICAgICAgICByZXR1cm4gZmlsZShvdmVycmlkZXNfZmlsZSwgInIiKS5yZWFkKCkKKyAg
ICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHdpdGggY29kZWNz
Lm9wZW4ob3ZlcnJpZGVzX2ZpbGUsICJyIiwgInV0Zi04IikgYXMgZmlsZQotICAgICAgICAgICAg
cmV0dXJuIGZpbGUucmVhZCgpCiAKICAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToK
ICAgICAgICAgcmV0dXJuIHNlbGYudGVzdF9iYXNlX3BsYXRmb3JtX25hbWVzKCkgKyAoJ3dpbi14
cCcsCkBAIC0yNzAsNyArMjY1LDcgQEAgY2xhc3MgQ2hyb21pdW1Qb3J0KGJhc2UuUG9ydCk6CiAK
IAogY2xhc3MgQ2hyb21pdW1Ecml2ZXIoYmFzZS5Ecml2ZXIpOgotICAgICIiIkFic3RyYWN0IGlu
dGVyZmFjZSBmb3IgdGVzdF9zaGVsbC4iIiIKKyAgICAiIiJBYnN0cmFjdCBpbnRlcmZhY2UgZm9y
IHRoZSBEdW1wUmVuZGVyVHJlZSBpbnRlcmZhY2UuIiIiCiAKICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcG9ydCwgaW1hZ2VfcGF0aCwgb3B0aW9ucyk6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0
CkBAIC0zOTQsOCArMzg5LDcgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoYmFzZS5Ecml2ZXIpOgog
ICAgICAgICAgICAgICAgIGlmIHNlbGYuX3Byb2MucG9sbCgpIGlzIE5vbmU6CiAgICAgICAgICAg
ICAgICAgICAgIF9sb2cud2FybmluZygnc3RvcHBpbmcgdGVzdCBkcml2ZXIgdGltZWQgb3V0LCAn
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAna2lsbGluZyBpdCcpCi0gICAgICAg
ICAgICAgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHVzZSBFeGVjdXRpdmUuCi0gICAgICAg
ICAgICAgICAgICAgIG51bGwgPSBvcGVuKG9zLmRldm51bGwsICJ3IikgICMgRG9lcyB0aGlzIG5l
ZWQgYW4gZW5jb2Rpbmc/CisgICAgICAgICAgICAgICAgICAgIG51bGwgPSBvcGVuKG9zLmRldm51
bGwsICJ3IikKICAgICAgICAgICAgICAgICAgICAgc3VicHJvY2Vzcy5Qb3BlbihbImtpbGwiLCAi
LTkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLl9wcm9j
LnBpZCldLCBzdGRlcnI9bnVsbCkKICAgICAgICAgICAgICAgICAgICAgbnVsbC5jbG9zZSgpCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX2xpbnV4LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weQppbmRleCAxNTAzYTAzLi45YTU5NWYyIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX2xpbnV4LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXgucHkKQEAgLTEyNiw3ICsxMjYsNiBAQCBjbGFzcyBD
aHJvbWl1bUxpbnV4UG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogCiAKICAgICBkZWYgX2tp
bGxfYWxsX3Byb2Nlc3Moc2VsZiwgcHJvY2Vzc19uYW1lKToKLSAgICAgICAgIyBGSVhNRTogVGhp
cyBzaG91bGQgdXNlIEV4ZWN1dGl2ZS4KICAgICAgICAgbnVsbCA9IG9wZW4ob3MuZGV2bnVsbCkK
ICAgICAgICAgc3VicHJvY2Vzcy5jYWxsKFsna2lsbGFsbCcsICctVEVSTScsICctdScsIG9zLmdl
dGVudignVVNFUicpLAogICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc19uYW1lXSwgc3Rk
ZXJyPW51bGwpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CmluZGV4IDBiZjM4YjUuLmQ1ZTE3
NTcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fbWFjLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CkBAIC05OSw3ICs5OSw2IEBAIGNsYXNz
IENocm9taXVtTWFjUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICByZXR1cm4g
c2VsZi5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgneGNvZGVidWlsZCcsICpjb21wcykKIAogICAg
IGRlZiBfY2hlY2tfd2RpZmZfaW5zdGFsbChzZWxmKToKLSAgICAgICAgIyBGSVhNRTogVGhpcyBz
aG91bGQgdXNlIEV4ZWN1dGl2ZS4KICAgICAgICAgZiA9IG9wZW4ob3MuZGV2bnVsbCwgJ3cnKQog
ICAgICAgICByY29kZSA9IDAKICAgICAgICAgdHJ5OgpAQCAtMTE3LDcgKzExNiw2IEBAIGNsYXNz
IENocm9taXVtTWFjUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogCiAgICAgZGVmIF9raWxs
X2FsbF9wcm9jZXNzKHNlbGYsIHByb2Nlc3NfbmFtZSk6CiAgICAgICAgICIiIktpbGwgYW55IHBy
b2Nlc3NlcyBydW5uaW5nIHVuZGVyIHRoaXMgbmFtZS4iIiIKLSAgICAgICAgIyBGSVhNRTogVGhp
cyBzaG91bGQgdXNlIEV4ZWN1dGl2ZS4KICAgICAgICAgIyBPbiBNYWMgT1MgWCAxMC42LCBraWxs
YWxsIGhhcyBhIG5ldyBjb25zdHJhaW50OiAtU0lHTkFMTkFNRSBvcgogICAgICAgICAjIC1TSUdO
QUxOVU1CRVIgbXVzdCBjb21lIGZpcnN0LiAgRXhhbXBsZSBwcm9ibGVtOgogICAgICAgICAjICAg
JCBraWxsYWxsIC11ICRVU0VSIC1URVJNIGxpZ2h0dHBkCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2d0ay5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrLnB5CmluZGV4IDI3NjljYzYu
LmRlNWUyOGEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvZ3RrLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvZ3RrLnB5CkBAIC02Miw3ICs2Miw2IEBAIGNsYXNzIEd0a1BvcnQoV2Vi
S2l0UG9ydCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FwYWNoZTItZGViaWFuLWh0
dHBkLmNvbmYnKQogCiAgICAgZGVmIF9raWxsX2FsbF9wcm9jZXNzKHNlbGYsIHByb2Nlc3NfbmFt
ZSk6Ci0gICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHVzZSBFeGVjdXRpdmUuCiAgICAgICAg
IG51bGwgPSBvcGVuKG9zLmRldm51bGwpCiAgICAgICAgIHN1YnByb2Nlc3MuY2FsbChbJ2tpbGxh
bGwnLCAnLVRFUk0nLCAnLXUnLCBvcy5nZXRlbnYoJ1VTRVInKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgIHByb2Nlc3NfbmFtZV0sIHN0ZGVycj1udWxsKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZlci5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9zZXJ2ZXIu
cHkKaW5kZXggNTk0M2M2OC4uY2M0MzRiYyAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX3NlcnZlci5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2h0dHBfc2VydmVyLnB5CkBA
IC0yOSw5ICsyOSw3IEBACiAKICIiIkEgY2xhc3MgdG8gaGVscCBzdGFydC9zdG9wIHRoZSBsaWdo
dHRwZCBzZXJ2ZXIgdXNlZCBieSBsYXlvdXQgdGVzdHMuIiIiCiAKLWZyb20gX19mdXR1cmVfXyBp
bXBvcnQgd2l0aF9zdGF0ZW1lbnQKIAotaW1wb3J0IGNvZGVjcwogaW1wb3J0IGxvZ2dpbmcKIGlt
cG9ydCBvcHRwYXJzZQogaW1wb3J0IG9zCkBAIC0xMTYsMTQgKzExNCwxMSBAQCBjbGFzcyBMaWdo
dHRwZChodHRwX3NlcnZlcl9iYXNlLkh0dHBTZXJ2ZXJCYXNlKToKICAgICAgICAgc2VsZi5yZW1v
dmVfbG9nX2ZpbGVzKHNlbGYuX291dHB1dF9kaXIsICJlcnJvci5sb2ctIikKIAogICAgICAgICAj
IFdyaXRlIG91dCB0aGUgY29uZmlnCi0gICAgICAgIHdpdGggY29kZWNzLm9wZW4oYmFzZV9jb25m
X2ZpbGUsICJyIiwgInV0Zi04IikgYXMgZmlsZToKLSAgICAgICAgICAgIGJhc2VfY29uZiA9IGZp
bGUucmVhZCgpCi0KLSAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmUtd29ya2VkIHNv
IHRoYXQgdGhpcyBibG9jayBjYW4KLSAgICAgICAgIyB1c2Ugd2l0aCBvcGVuKCkgaW5zdGVhZCBv
ZiBhIG1hbnVhbCBmaWxlLmNsb3NlKCkgY2FsbC4KLSAgICAgICAgIyBsaWdodHRwZC5jb25mIGZp
bGVzIHNlZW0gdG8gYmUgVVRGLTggd2l0aG91dCBCT006Ci0gICAgICAgICMgaHR0cDovL3JlZG1p
bmUubGlnaHR0cGQubmV0L2lzc3Vlcy85OTIKLSAgICAgICAgZiA9IGNvZGVjcy5vcGVuKG91dF9j
b25mX2ZpbGUsICJ3IiwgInV0Zi04IikKKyAgICAgICAgZiA9IGZpbGUoYmFzZV9jb25mX2ZpbGUs
ICdyYicpCisgICAgICAgIGJhc2VfY29uZiA9IGYucmVhZCgpCisgICAgICAgIGYuY2xvc2UoKQor
CisgICAgICAgIGYgPSBmaWxlKG91dF9jb25mX2ZpbGUsICd3YicpCiAgICAgICAgIGYud3JpdGUo
YmFzZV9jb25mKQogCiAgICAgICAgICMgV3JpdGUgb3V0IG91ciBjZ2kgaGFuZGxlcnMuICBSdW4g
cGVybCB0aHJvdWdoIGVudiBzbyB0aGF0IGl0CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5CmluZGV4IDc5ZGU2OWIuLmNmNGRh
YTggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvbWFjLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvbWFjLnB5CkBAIC0xMzMsNyArMTMzLDYgQEAgY2xhc3MgTWFjUG9ydChXZWJLaXRQ
b3J0KToKIAogICAgICMgRklYTUU6IFRoaXMgZG9lc24ndCBoYXZlIGFueXRoaW5nIHRvIGRvIHdp
dGggV2ViS2l0LgogICAgIGRlZiBfa2lsbF9hbGxfcHJvY2VzcyhzZWxmLCBwcm9jZXNzX25hbWUp
OgotICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgRXhlY3V0aXZlLgogICAgICAgICAj
IE9uIE1hYyBPUyBYIDEwLjYsIGtpbGxhbGwgaGFzIGEgbmV3IGNvbnN0cmFpbnQ6IC1TSUdOQUxO
QU1FIG9yCiAgICAgICAgICMgLVNJR05BTE5VTUJFUiBtdXN0IGNvbWUgZmlyc3QuICBFeGFtcGxl
IHByb2JsZW06CiAgICAgICAgICMgICAkIGtpbGxhbGwgLXUgJFVTRVIgLVRFUk0gbGlnaHR0cGQK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvbWFjX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKaW5kZXggYWU3ZDQwYy4uZTQ3YTRhNCAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNf
dW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgTWFjVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHJlbGF0aXZlX3BhdGhzID0gW3BhdGhbbGVuKHBv
cnQucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCkpOl0gZm9yIHBhdGggaW4gc2tpcHBlZF9wYXRoc10K
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWxhdGl2ZV9wYXRocywgWydMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkJywgJ0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkJ10pCiAKLSAgICBleGFtcGxlX3NraXBwZWRfZmlsZSA9IHUiIiIKKyAgICBleGFtcGxl
X3NraXBwZWRfZmlsZSA9ICIiIgogIyA8cmRhcjovL3Byb2JsZW0vNTY0Nzk1Mj4gZmFzdC9ldmVu
dHMvbW91c2VvdXQtb24td2luZG93Lmh0bWwgbmVlZHMgbWFjIERSVCB0byBpc3N1ZSBtb3VzZSBv
dXQgZXZlbnRzCiBmYXN0L2V2ZW50cy9tb3VzZW91dC1vbi13aW5kb3cuaHRtbAogCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weQpp
bmRleCA2MjA0ODZlLi42N2NkZWZlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkKQEAgLTYzLDcgKzYzLDYgQEAgY2xhc3Mg
UXRQb3J0KFdlYktpdFBvcnQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcGFjaGUy
LWRlYmlhbi1odHRwZC5jb25mJykKIAogICAgIGRlZiBfa2lsbF9hbGxfcHJvY2VzcyhzZWxmLCBw
cm9jZXNzX25hbWUpOgotICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgRXhlY3V0aXZl
LgogICAgICAgICBudWxsID0gb3Blbihvcy5kZXZudWxsKQogICAgICAgICBzdWJwcm9jZXNzLmNh
bGwoWydraWxsYWxsJywgJy1URVJNJywgJy11Jywgb3MuZ2V0ZW52KCdVU0VSJyksCiAgICAgICAg
ICAgICAgICAgICAgICAgICBwcm9jZXNzX25hbWVdLCBzdGRlcnI9bnVsbCkKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvc2VydmVyX3By
b2Nlc3MucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3NlcnZlcl9wcm9jZXNzLnB5CmluZGV4IDcwNTczYTkuLmYxYzZkNzMgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvc2VydmVyX3Byb2Nl
c3MucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9zZXJ2ZXJfcHJvY2Vzcy5weQpAQCAtMjE1LDcgKzIxNSw2IEBAIGNsYXNzIFNlcnZlclByb2Nl
c3M6CiAgICAgICAgICAgICBpZiBzZWxmLl9wcm9jLnBvbGwoKSBpcyBOb25lOgogICAgICAgICAg
ICAgICAgIF9sb2cud2FybmluZygnc3RvcHBpbmcgJXMgdGltZWQgb3V0LCBraWxsaW5nIGl0JyAl
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX25hbWUpCi0gICAgICAgICAgICAg
ICAgIyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIEV4ZWN1dGl2ZS4KICAgICAgICAgICAgICAgICBu
dWxsID0gb3Blbihvcy5kZXZudWxsLCAidyIpCiAgICAgICAgICAgICAgICAgc3VicHJvY2Vzcy5Q
b3BlbihbImtpbGwiLCAiLTkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
cihzZWxmLl9wcm9jLnBpZCldLCBzdGRlcnI9bnVsbCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKaW5kZXggN2M1
NjY5My4uZjJmNTIzNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKQEAgLTI5LDEwICsyOSw2IEBACiAKICIi
IldlYktpdCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIFBvcnQgaW50ZXJmYWNlLiIiIgogCi0KLWZy
b20gX19mdXR1cmVfXyBpbXBvcnQgd2l0aF9zdGF0ZW1lbnQKLQotaW1wb3J0IGNvZGVjcwogaW1w
b3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHBkYgpAQCAtMTM4LDExICsxMzQsOSBAQCBj
bGFzcyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIHNwID0gc2VydmVyX3Byb2Nlc3Mu
U2VydmVyUHJvY2VzcyhzZWxmLCAnSW1hZ2VEaWZmJywgY29tbWFuZCkKIAogICAgICAgICBhY3R1
YWxfbGVuZ3RoID0gb3Muc3RhdChhY3R1YWxfZmlsZW5hbWUpLnN0X3NpemUKLSAgICAgICAgd2l0
aCBvcGVuKGFjdHVhbF9maWxlbmFtZSkgYXMgZmlsZToKLSAgICAgICAgICAgIGFjdHVhbF9maWxl
ID0gZmlsZS5yZWFkKCkKKyAgICAgICAgYWN0dWFsX2ZpbGUgPSBvcGVuKGFjdHVhbF9maWxlbmFt
ZSkucmVhZCgpCiAgICAgICAgIGV4cGVjdGVkX2xlbmd0aCA9IG9zLnN0YXQoZXhwZWN0ZWRfZmls
ZW5hbWUpLnN0X3NpemUKLSAgICAgICAgd2l0aCBvcGVuKGV4cGVjdGVkX2ZpbGVuYW1lKSBhcyBm
aWxlOgotICAgICAgICAgICAgZXhwZWN0ZWRfZmlsZSA9IGZpbGUucmVhZCgpCisgICAgICAgIGV4
cGVjdGVkX2ZpbGUgPSBvcGVuKGV4cGVjdGVkX2ZpbGVuYW1lKS5yZWFkKCkKICAgICAgICAgc3Au
d3JpdGUoJ0NvbnRlbnQtTGVuZ3RoOiAlZFxuJXNDb250ZW50LUxlbmd0aDogJWRcbiVzJyAlCiAg
ICAgICAgICAgICAgICAgIChhY3R1YWxfbGVuZ3RoLCBhY3R1YWxfZmlsZSwgZXhwZWN0ZWRfbGVu
Z3RoLCBleHBlY3RlZF9maWxlKSkKIApAQCAtMTcxLDggKzE2NSw3IEBAIGNsYXNzIFdlYktpdFBv
cnQoYmFzZS5Qb3J0KToKICAgICAgICAgICAgIGlmIG0uZ3JvdXAoMikgPT0gJ3Bhc3NlZCc6CiAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gRmFsc2UKICAgICAgICAgZWxpZiBvdXRwdXQgYW5kIGRp
ZmZfZmlsZW5hbWU6Ci0gICAgICAgICAgICB3aXRoIG9wZW4oZGlmZl9maWxlbmFtZSwgJ3cnKSBh
cyBmaWxlOgotICAgICAgICAgICAgICAgIGZpbGUud3JpdGUob3V0cHV0KQorICAgICAgICAgICAg
b3BlbihkaWZmX2ZpbGVuYW1lLCAndycpLndyaXRlKG91dHB1dCkgICMgRklYTUU6IFRoaXMgbGVh
a3MgYSBmaWxlIGhhbmRsZS4KICAgICAgICAgZWxpZiBzcC50aW1lZF9vdXQ6CiAgICAgICAgICAg
ICBfbG9nLmVycm9yKCJJbWFnZURpZmYgdGltZWQgb3V0IG9uICVzIiAlIGV4cGVjdGVkX2ZpbGVu
YW1lKQogICAgICAgICBlbGlmIHNwLmNyYXNoZWQ6CkBAIC0yNTksMTYgKzI1MiwxNyBAQCBjbGFz
cyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlz
dHMoZmlsZW5hbWUpOgogICAgICAgICAgICAgICAgIF9sb2cud2FybigiRmFpbGVkIHRvIG9wZW4g
U2tpcHBlZCBmaWxlOiAlcyIgJSBmaWxlbmFtZSkKICAgICAgICAgICAgICAgICBjb250aW51ZQot
ICAgICAgICAgICAgd2l0aCBjb2RlY3Mub3BlbihmaWxlbmFtZSwgInIiLCAidXRmLTgiKSBhcyBz
a2lwcGVkX2ZpbGU6Ci0gICAgICAgICAgICAgICAgdGVzdHNfdG9fc2tpcC5leHRlbmQoc2VsZi5f
dGVzdHNfZnJvbV9za2lwcGVkX2ZpbGUoc2tpcHBlZF9maWxlKSkKKyAgICAgICAgICAgIHNraXBw
ZWRfZmlsZSA9IGZpbGUoZmlsZW5hbWUpCisgICAgICAgICAgICB0ZXN0c190b19za2lwLmV4dGVu
ZChzZWxmLl90ZXN0c19mcm9tX3NraXBwZWRfZmlsZShza2lwcGVkX2ZpbGUpKQorICAgICAgICAg
ICAgc2tpcHBlZF9maWxlLmNsb3NlKCkKICAgICAgICAgcmV0dXJuIHRlc3RzX3RvX3NraXAKIAog
ICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgIyBUaGUgV2ViS2l0IG1h
YyBwb3J0IHVzZXMgYSBjb21iaW5hdGlvbiBvZiBhIHRlc3RfZXhwZWN0YXRpb25zIGZpbGUKICAg
ICAgICAgIyBhbmQgJ1NraXBwZWQnIGZpbGVzLgotICAgICAgICBleHBlY3RhdGlvbnNfcGF0aCA9
IHNlbGYucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkKLSAgICAgICAgd2l0aCBjb2Rl
Y3Mub3BlbihleHBlY3RhdGlvbnNfcGF0aCwgInIiLCAidXRmLTgiKSBhcyBmaWxlOgotICAgICAg
ICAgICAgcmV0dXJuIGZpbGUucmVhZCgpICsgc2VsZi5fc2tpcHMoKQorICAgICAgICBleHBlY3Rh
dGlvbnNfZmlsZSA9IHNlbGYucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkKKyAgICAg
ICAgZXhwZWN0YXRpb25zID0gZmlsZShleHBlY3RhdGlvbnNfZmlsZSwgInIiKS5yZWFkKCkKKyAg
ICAgICAgcmV0dXJuIGV4cGVjdGF0aW9ucyArIHNlbGYuX3NraXBzKCkKIAogICAgIGRlZiBfc2tp
cHMoc2VsZik6CiAgICAgICAgICMgRWFjaCBTa2lwcGVkIGZpbGUgY29udGFpbnMgYSBsaXN0IG9m
IGZpbGVzCkBAIC00MDIsNyArMzk2LDcgQEAgY2xhc3MgV2ViS2l0RHJpdmVyKGJhc2UuRHJpdmVy
KToKIAogICAgICAgICBoYXZlX3NlZW5fY29udGVudF90eXBlID0gRmFsc2UKICAgICAgICAgYWN0
dWFsX2ltYWdlX2hhc2ggPSBOb25lCi0gICAgICAgIG91dHB1dCA9IHUnJworICAgICAgICBvdXRw
dXQgPSAnJwogICAgICAgICBpbWFnZSA9ICcnCiAKICAgICAgICAgdGltZW91dCA9IGludCh0aW1l
b3V0bXMpIC8gMTAwMC4wCkBAIC00MTUsOCArNDA5LDcgQEAgY2xhc3MgV2ViS2l0RHJpdmVyKGJh
c2UuRHJpdmVyKToKICAgICAgICAgICAgICAgICBoYXZlX3NlZW5fY29udGVudF90eXBlKToKICAg
ICAgICAgICAgICAgICBoYXZlX3NlZW5fY29udGVudF90eXBlID0gVHJ1ZQogICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICAjIFdlIGV4cGVjdCB0aGUgdGV4dCBjb250ZW50IGZyb20g
RHVtcFJlbmRlclRyZWUgdG8gYmUgVVRGLTgKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gbGlu
ZS5kZWNvZGUoInV0Zi04IikKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gbGluZQogICAgICAg
ICAgICAgbGluZSA9IHNlbGYuX3NlcnZlcl9wcm9jZXNzLnJlYWRfbGluZSh0aW1lb3V0KQogICAg
ICAgICAgICAgdGltZW91dCA9IGRlYWRsaW5lIC0gdGltZS50aW1lKCkKIApAQCAtNDQwLDggKzQz
Myw5IEBAIGNsYXNzIFdlYktpdERyaXZlcihiYXNlLkRyaXZlcik6CiAgICAgICAgICAgICBsaW5l
ID0gc2VsZi5fc2VydmVyX3Byb2Nlc3MucmVhZF9saW5lKHRpbWVvdXQpCiAKICAgICAgICAgaWYg
c2VsZi5faW1hZ2VfcGF0aCBhbmQgbGVuKHNlbGYuX2ltYWdlX3BhdGgpOgotICAgICAgICAgICAg
d2l0aCBvcGVuKHNlbGYuX2ltYWdlX3BhdGgsICJ3YiIpIGFzIGltYWdlX2ZpbGU6Ci0gICAgICAg
ICAgICAgICAgaW1hZ2VfZmlsZS53cml0ZShpbWFnZSkKKyAgICAgICAgICAgIGltYWdlX2ZpbGUg
PSBmaWxlKHNlbGYuX2ltYWdlX3BhdGgsICJ3YiIpCisgICAgICAgICAgICBpbWFnZV9maWxlLndy
aXRlKGltYWdlKQorICAgICAgICAgICAgaW1hZ2VfZmlsZS5jbG9zZSgpCiAgICAgICAgIHJldHVy
biAoc2VsZi5fc2VydmVyX3Byb2Nlc3MuY3Jhc2hlZCwKICAgICAgICAgICAgICAgICBzZWxmLl9z
ZXJ2ZXJfcHJvY2Vzcy50aW1lZF9vdXQsCiAgICAgICAgICAgICAgICAgYWN0dWFsX2ltYWdlX2hh
c2gsCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkKaW5kZXggYTllYWI1ZS4uYTli
YTE2MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weQpAQCAtMzAsOSArMzAs
NiBAQAogIiIiQSBjbGFzcyB0byBoZWxwIHN0YXJ0L3N0b3AgdGhlIFB5V2ViU29ja2V0IHNlcnZl
ciB1c2VkIGJ5IGxheW91dCB0ZXN0cy4iIiIKIAogCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdp
dGhfc3RhdGVtZW50Ci0KLWltcG9ydCBjb2RlY3MKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3B0
cGFyc2UKIGltcG9ydCBvcwpAQCAtMTU0LDcgKzE1MSw3IEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0
dHBfc2VydmVyLkxpZ2h0dHBkKToKICAgICAgICAgZXJyb3JfbG9nID0gb3MucGF0aC5qb2luKHNl
bGYuX291dHB1dF9kaXIsIGxvZ19maWxlX25hbWUgKyAiLWVyci50eHQiKQogCiAgICAgICAgIG91
dHB1dF9sb2cgPSBvcy5wYXRoLmpvaW4oc2VsZi5fb3V0cHV0X2RpciwgbG9nX2ZpbGVfbmFtZSAr
ICItb3V0LnR4dCIpCi0gICAgICAgIHNlbGYuX3dzb3V0ID0gY29kZWNzLm9wZW4ob3V0cHV0X2xv
ZywgInciLCAidXRmLTgiKQorICAgICAgICBzZWxmLl93c291dCA9IG9wZW4ob3V0cHV0X2xvZywg
InciKQogCiAgICAgICAgIHB5dGhvbl9pbnRlcnAgPSBzeXMuZXhlY3V0YWJsZQogICAgICAgICBw
eXdlYnNvY2tldF9iYXNlID0gb3MucGF0aC5qb2luKApAQCAtMjE5LDcgKzIxNiw3IEBAIGNsYXNz
IFB5V2ViU29ja2V0KGh0dHBfc2VydmVyLkxpZ2h0dHBkKToKICAgICAgICAgICAgIHVybCA9ICdo
dHRwJwogICAgICAgICB1cmwgPSB1cmwgKyAnOi8vMTI3LjAuMC4xOiVkLycgJSBzZWxmLl9wb3J0
CiAgICAgICAgIGlmIG5vdCB1cmxfaXNfYWxpdmUodXJsKToKLSAgICAgICAgICAgIGZwID0gY29k
ZWNzLm9wZW4ob3V0cHV0X2xvZywgInV0Zi04IikKKyAgICAgICAgICAgIGZwID0gb3BlbihvdXRw
dXRfbG9nKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIGZw
OgogICAgICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKGxpbmUpCkBAIC0yMzQsOCArMjMxLDkg
QEAgY2xhc3MgUHlXZWJTb2NrZXQoaHR0cF9zZXJ2ZXIuTGlnaHR0cGQpOgogICAgICAgICAgICAg
cmFpc2UgUHlXZWJTb2NrZXROb3RTdGFydGVkKAogICAgICAgICAgICAgICAgICdGYWlsZWQgdG8g
c3RhcnQgJXMgc2VydmVyLicgJSBzZWxmLl9zZXJ2ZXJfbmFtZSkKICAgICAgICAgaWYgc2VsZi5f
cGlkZmlsZToKLSAgICAgICAgICAgIHdpdGggY29kZWNzLm9wZW4oc2VsZi5fcGlkZmlsZSwgInci
LCAiYXNjaWkiKSBhcyBmaWxlOgotICAgICAgICAgICAgICAgIGZpbGUud3JpdGUoIiVkIiAlIHNl
bGYuX3Byb2Nlc3MucGlkKQorICAgICAgICAgICAgZiA9IG9wZW4oc2VsZi5fcGlkZmlsZSwgJ3cn
KQorICAgICAgICAgICAgZi53cml0ZSgiJWQiICUgc2VsZi5fcHJvY2Vzcy5waWQpCisgICAgICAg
ICAgICBmLmNsb3NlKCkKIAogICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKICAgICAg
ICAgaWYgbm90IGZvcmNlIGFuZCBub3Qgc2VsZi5pc19ydW5uaW5nKCk6CkBAIC0yNDUsOCArMjQz
LDkgQEAgY2xhc3MgUHlXZWJTb2NrZXQoaHR0cF9zZXJ2ZXIuTGlnaHR0cGQpOgogICAgICAgICBp
ZiBzZWxmLl9wcm9jZXNzOgogICAgICAgICAgICAgcGlkID0gc2VsZi5fcHJvY2Vzcy5waWQKICAg
ICAgICAgZWxpZiBzZWxmLl9waWRmaWxlOgotICAgICAgICAgICAgd2l0aCBjb2RlY3Mub3Blbihz
ZWxmLl9waWRmaWxlLCAiciIsICJhc2NpaSIpIGFzIGZpbGU6Ci0gICAgICAgICAgICAgICAgcGlk
ID0gaW50KGYucmVhZCgpLnN0cmlwKCkpCisgICAgICAgICAgICBmID0gb3BlbihzZWxmLl9waWRm
aWxlKQorICAgICAgICAgICAgcGlkID0gaW50KGYucmVhZCgpLnN0cmlwKCkpCisgICAgICAgICAg
ICBmLmNsb3NlKCkKIAogICAgICAgICBpZiBub3QgcGlkOgogICAgICAgICAgICAgcmFpc2UgUHlX
ZWJTb2NrZXROb3RGb3VuZCgKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1
bV93ZWJraXRfdGVzdHMucHkKaW5kZXggMTYzMzU0Yi4uYjk3MjE1NCAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1
bV93ZWJraXRfdGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKQEAgLTQxLDkgKzQx
LDYgQEAgVGhlIHNjcmlwdCBkb2VzIHRoZSBmb2xsb3dpbmcgZm9yIGVhY2ggcGxhdGZvcm0gc3Bl
Y2lmaWVkOgogQXQgdGhlIGVuZCwgdGhlIHNjcmlwdCBnZW5lcmF0ZXMgYSBodG1sIHRoYXQgY29t
cGFyZXMgb2xkIGFuZCBuZXcgYmFzZWxpbmVzLgogIiIiCiAKLWZyb20gX19mdXR1cmVfXyBpbXBv
cnQgd2l0aF9zdGF0ZW1lbnQKLQotaW1wb3J0IGNvZGVjcwogaW1wb3J0IGNvcHkKIGltcG9ydCBs
b2dnaW5nCiBpbXBvcnQgb3B0cGFyc2UKQEAgLTYwMSwxMCArNTk4LDkgQEAgY2xhc3MgUmViYXNl
bGluZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgb3MucmVtb3ZlKGJhY2t1cF9maWxl
KQogICAgICAgICAgICAgICAgIF9sb2cuaW5mbygnU2F2aW5nIG9yaWdpbmFsIGZpbGUgdG8gIiVz
IicsIGJhY2t1cF9maWxlKQogICAgICAgICAgICAgICAgIG9zLnJlbmFtZShwYXRoLCBiYWNrdXBf
ZmlsZSkKLSAgICAgICAgICAgICMgRklYTUU6IFdoYXQgZW5jb2RpbmcgYXJlIHRoZXNlIGZpbGVz
PwotICAgICAgICAgICAgIyBPciBpcyBuZXdfZXhwZWN0YXRpb25zIGFsd2F5cyBhIGJ5dGUgYXJy
YXk/Ci0gICAgICAgICAgICB3aXRoIG9wZW4ocGF0aCwgInciKSBhcyBmaWxlOgotICAgICAgICAg
ICAgICAgIGZpbGUud3JpdGUobmV3X2V4cGVjdGF0aW9ucykKKyAgICAgICAgICAgIGYgPSBvcGVu
KHBhdGgsICJ3IikKKyAgICAgICAgICAgIGYud3JpdGUobmV3X2V4cGVjdGF0aW9ucykKKyAgICAg
ICAgICAgIGYuY2xvc2UoKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgX2xvZy5pbmZvKCdO
byB0ZXN0IHdhcyByZWJhc2VsaW5lZCBzbyBub3RoaW5nIHRvIHJlbW92ZS4nKQogCkBAIC03MTks
MTAgKzcxNSw5IEBAIGNsYXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAgICAgICAgIGJhc2VfZmls
ZSA9IGdldF9yZXN1bHRfZmlsZV9mdWxscGF0aChzZWxmLl9vcHRpb25zLmh0bWxfZGlyZWN0b3J5
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmVf
ZmlsZW5hbWUsIHNlbGYuX3BsYXRmb3JtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ29sZCcpCi0gICAgICAgICMgRklYTUU6IFRoaXMgYXNzdW1lcyBydW5f
c2hlbGwgcmV0dXJucyBhIGJ5dGUgYXJyYXkuCi0gICAgICAgICMgV2Ugc2hvdWxkIGJlIHVzaW5n
IGFuIGV4cGxpY2l0IGVuY29kaW5nIGhlcmUuCi0gICAgICAgIHdpdGggb3BlbihiYXNlX2ZpbGUs
ICJ3YiIpIGFzIGZpbGU6Ci0gICAgICAgICAgICBmaWxlLndyaXRlKG91dHB1dCkKKyAgICAgICAg
ZiA9IG9wZW4oYmFzZV9maWxlLCAnd2InKQorICAgICAgICBmLndyaXRlKG91dHB1dCkKKyAgICAg
ICAgZi5jbG9zZSgpCiAgICAgICAgIF9sb2cuaW5mbygnICBIdG1sOiBjcmVhdGVkIG9sZCBiYXNl
bGluZSBmaWxlOiAiJXMiLicsCiAgICAgICAgICAgICAgICAgICBiYXNlX2ZpbGUpCiAKQEAgLTc1
Myw5ICs3NDgsOSBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAgICAgICAgICAg
IGRpZmZfZmlsZSA9IGdldF9yZXN1bHRfZmlsZV9mdWxscGF0aCgKICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fb3B0aW9ucy5odG1sX2RpcmVjdG9yeSwgYmFzZWxpbmVfZmlsZW5hbWUsCiAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3BsYXRmb3JtLCAnZGlmZicpCi0gICAgICAgICAgICAgICAg
IyBGSVhNRTogVGhpcyBhc3N1bWVzIHJ1bl9zaGVsbCByZXR1cm5zIGEgYnl0ZSBhcnJheSwgbm90
IHVuaWNvZGUoKQotICAgICAgICAgICAgICAgIHdpdGggb3BlbihkaWZmX2ZpbGUsICd3YicpIGFz
IGZpbGU6Ci0gICAgICAgICAgICAgICAgICAgIGZpbGUud3JpdGUob3V0cHV0KQorICAgICAgICAg
ICAgICAgIGYgPSBvcGVuKGRpZmZfZmlsZSwgJ3diJykKKyAgICAgICAgICAgICAgICBmLndyaXRl
KG91dHB1dCkKKyAgICAgICAgICAgICAgICBmLmNsb3NlKCkKICAgICAgICAgICAgICAgICBfbG9n
LmluZm8oJyAgSHRtbDogY3JlYXRlZCBiYXNlbGluZSBkaWZmIGZpbGU6ICIlcyIuJywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlmZl9maWxlKQogCkBAIC04NDAsOCArODM1LDkgQEAgY2xh
c3MgSHRtbEdlbmVyYXRvcihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdib2R5JzogaHRtbF9ib2R5fSkKICAgICAgICAgX2xvZy5kZWJ1ZyhodG1sKQog
Ci0gICAgICAgIHdpdGggY29kZWNzLm9wZW4oc2VsZi5faHRtbF9maWxlLCAidyIsICJ1dGYtOCIp
IGFzIGZpbGU6Ci0gICAgICAgICAgICBmaWxlLndyaXRlKGh0bWwpCisgICAgICAgIGYgPSBvcGVu
KHNlbGYuX2h0bWxfZmlsZSwgJ3cnKQorICAgICAgICBmLndyaXRlKGh0bWwpCisgICAgICAgIGYu
Y2xvc2UoKQogCiAgICAgICAgIF9sb2cuaW5mbygnQmFzZWxpbmUgY29tcGFyaXNvbiBodG1sIGdl
bmVyYXRlZCBhdCAiJXMiJywKICAgICAgICAgICAgICAgICAgIHNlbGYuX2h0bWxfZmlsZSkKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93
ZWJraXRfdGVzdHMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDcxNjBlNTUuLjczMTk1YjMgMTAwNzU1Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVz
dHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVu
X3dlYmtpdF90ZXN0cy5weQpAQCAtMzY3LDggKzM2Nyw5IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAg
ICAgICAgICAgICAgICAgZmlsZXMuZXh0ZW5kKHRlc3RfZmlsZXNbMDpleHRyYV0pCiAgICAgICAg
ICAgICB0ZXN0c19ydW5fZmlsZW5hbWUgPSBvcy5wYXRoLmpvaW4oc2VsZi5fb3B0aW9ucy5yZXN1
bHRzX2RpcmVjdG9yeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAidGVzdHNfcnVuLnR4dCIpCi0gICAgICAgICAgICB3aXRoIGNvZGVjcy5vcGVuKHRlc3Rz
X3J1bl9maWxlbmFtZSwgInciLCAidXRmLTgiKSBhcyBmaWxlOgotICAgICAgICAgICAgICAgIGZp
bGUud3JpdGUodGVzdHNfcnVuX21zZyArICJcbiIpCisgICAgICAgICAgICB0ZXN0c19ydW5fZmls
ZSA9IG9wZW4odGVzdHNfcnVuX2ZpbGVuYW1lLCAidyIpCisgICAgICAgICAgICB0ZXN0c19ydW5f
ZmlsZS53cml0ZSh0ZXN0c19ydW5fbXNnICsgIlxuIikKKyAgICAgICAgICAgIHRlc3RzX3J1bl9m
aWxlLmNsb3NlKCkKIAogICAgICAgICAgICAgbGVuX3NraXBfY2h1bmsgPSBpbnQobGVuKGZpbGVz
KSAqIGxlbihza2lwcGVkKSAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9h
dChsZW4oc2VsZi5fdGVzdF9maWxlcykpKQpAQCAtOTY1LDE5ICs5NjYsMjIgQEAgY2xhc3MgVGVz
dFJ1bm5lcjoKICAgICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5nczogbGlzdCBvZiB0ZXN0
IHRpbWVzICh1c2VkIGJ5IHRoZSBmbGFraW5lc3MKICAgICAgICAgICAgIGRhc2hib2FyZCkuCiAg
ICAgICAgICIiIgotICAgICAgICByZXN1bHRzX2RpcmVjdG9yeSA9IHNlbGYuX29wdGlvbnMucmVz
dWx0c19kaXJlY3RvcnkKLSAgICAgICAgX2xvZy5kZWJ1ZygiV3JpdGluZyBKU09OIGZpbGVzIGlu
ICVzLiIgJSByZXN1bHRzX2RpcmVjdG9yeSkKLSAgICAgICAgdW5leHBlY3RlZF9qc29uX3BhdGgg
PSBvcy5wYXRoLmpvaW4ocmVzdWx0c19kaXJlY3RvcnksICJ1bmV4cGVjdGVkX3Jlc3VsdHMuanNv
biIpCi0gICAgICAgIHdpdGggY29kZWNzLm9wZW4odW5leHBlY3RlZF9qc29uX3BhdGgsICJ3Iiwg
InV0Zi04IikgYXMgZmlsZToKLSAgICAgICAgICAgIHNpbXBsZWpzb24uZHVtcCh1bmV4cGVjdGVk
X3Jlc3VsdHMsIGZpbGUsIHNvcnRfa2V5cz1UcnVlLCBpbmRlbnQ9MikKKyAgICAgICAgX2xvZy5k
ZWJ1ZygiV3JpdGluZyBKU09OIGZpbGVzIGluICVzLiIgJQorICAgICAgICAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMucmVzdWx0c19kaXJlY3RvcnkpCisgICAgICAgIHVuZXhwZWN0ZWRfZmlsZSA9
IG9wZW4ob3MucGF0aC5qb2luKHNlbGYuX29wdGlvbnMucmVzdWx0c19kaXJlY3RvcnksCisgICAg
ICAgICAgICAidW5leHBlY3RlZF9yZXN1bHRzLmpzb24iKSwgInciKQorICAgICAgICB1bmV4cGVj
dGVkX2ZpbGUud3JpdGUoc2ltcGxlanNvbi5kdW1wcyh1bmV4cGVjdGVkX3Jlc3VsdHMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0X2tleXM9VHJ1ZSwgaW5kZW50PTIpKQorICAg
ICAgICB1bmV4cGVjdGVkX2ZpbGUuY2xvc2UoKQogCiAgICAgICAgICMgV3JpdGUgYSBqc29uIGZp
bGUgb2YgdGhlIHRlc3RfZXhwZWN0YXRpb25zLnR4dCBmaWxlIGZvciB0aGUgbGF5b3V0CiAgICAg
ICAgICMgdGVzdHMgZGFzaGJvYXJkLgotICAgICAgICBleHBlY3RhdGlvbnNfcGF0aCA9IG9zLnBh
dGguam9pbihyZXN1bHRzX2RpcmVjdG9yeSwgImV4cGVjdGF0aW9ucy5qc29uIikKKyAgICAgICAg
ZXhwZWN0YXRpb25zX2ZpbGUgPSBvcGVuKG9zLnBhdGguam9pbihzZWxmLl9vcHRpb25zLnJlc3Vs
dHNfZGlyZWN0b3J5LAorICAgICAgICAgICAgImV4cGVjdGF0aW9ucy5qc29uIiksICJ3IikKICAg
ICAgICAgZXhwZWN0YXRpb25zX2pzb24gPSBcCiAgICAgICAgICAgICBzZWxmLl9leHBlY3RhdGlv
bnMuZ2V0X2V4cGVjdGF0aW9uc19qc29uX2Zvcl9hbGxfcGxhdGZvcm1zKCkKLSAgICAgICAgd2l0
aCBjb2RlY3Mub3BlbihleHBlY3RhdGlvbnNfcGF0aCwgInciLCAidXRmLTgiKSBhcyBmaWxlOgot
ICAgICAgICAgICAgZmlsZS53cml0ZSh1IkFERF9FWFBFQ1RBVElPTlMoJXMpOyIgJSBleHBlY3Rh
dGlvbnNfanNvbikKKyAgICAgICAgZXhwZWN0YXRpb25zX2ZpbGUud3JpdGUoIkFERF9FWFBFQ1RB
VElPTlMoIiArIGV4cGVjdGF0aW9uc19qc29uICsgIik7IikKKyAgICAgICAgZXhwZWN0YXRpb25z
X2ZpbGUuY2xvc2UoKQogCiAgICAgICAgIGpzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLkpT
T05MYXlvdXRSZXN1bHRzR2VuZXJhdG9yKAogICAgICAgICAgICAgc2VsZi5fcG9ydCwgc2VsZi5f
b3B0aW9ucy5idWlsZGVyX25hbWUsIHNlbGYuX29wdGlvbnMuYnVpbGRfbmFtZSwKQEAgLTEzODgs
OSArMTM5Miw3IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAKICAgICAgICAgb3V0X2ZpbGVuYW1lID0g
b3MucGF0aC5qb2luKHNlbGYuX29wdGlvbnMucmVzdWx0c19kaXJlY3RvcnksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzdWx0cy5odG1sIikKLSAgICAgICAgIyBGSVhN
RTogVGhpcyBzaG91bGQgYmUgcmUtd3JpdHRlbiB0byBwcmVwYXJlIHRoZSBzdHJpbmcgZmlyc3QK
LSAgICAgICAgIyBzbyB0aGF0IHRoZSAib3BlbiIgY2FsbCBjYW4gYmUgd3JhcHBlZCBpbiBhIHdp
dGggc3RhdGVtZW50LgotICAgICAgICBvdXRfZmlsZSA9IGNvZGVjcy5vcGVuKG91dF9maWxlbmFt
ZSwgInciLCAidXRmLTgiKQorICAgICAgICBvdXRfZmlsZSA9IG9wZW4ob3V0X2ZpbGVuYW1lLCAn
dycpCiAgICAgICAgICMgaGVhZGVyCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZnVsbF9yZXN1
bHRzX2h0bWw6CiAgICAgICAgICAgICBoMiA9ICJUZXN0IEZhaWx1cmVzIgpAQCAtMTQwMywxOCAr
MTQwNSwxNyBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICB0ZXN0X2ZpbGVzLnNvcnQoKQog
ICAgICAgICBmb3IgdGVzdF9maWxlIGluIHRlc3RfZmlsZXM6CiAgICAgICAgICAgICB0ZXN0X2Zh
aWx1cmVzID0gcmVzdWx0X3N1bW1hcnkuZmFpbHVyZXMuZ2V0KHRlc3RfZmlsZSwgW10pCi0gICAg
ICAgICAgICBvdXRfZmlsZS53cml0ZSh1IjxwPjxhIGhyZWY9JyVzJz4lczwvYT48YnIgLz5cbiIK
KyAgICAgICAgICAgIG91dF9maWxlLndyaXRlKCI8cD48YSBocmVmPSclcyc+JXM8L2E+PGJyIC8+
XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChzZWxmLl9wb3J0LmZpbGVuYW1lX3Rv
X3VyaSh0ZXN0X2ZpbGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcG9y
dC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKHRlc3RfZmlsZSkpKQogICAgICAgICAgICAgZm9yIGZh
aWx1cmUgaW4gdGVzdF9mYWlsdXJlczoKLSAgICAgICAgICAgICAgICBvdXRfZmlsZS53cml0ZSh1
IiZuYnNwOyZuYnNwOyVzPGJyLz4iCisgICAgICAgICAgICAgICAgb3V0X2ZpbGUud3JpdGUoIiZu
YnNwOyZuYnNwOyVzPGJyLz4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBmYWls
dXJlLnJlc3VsdF9odG1sX291dHB1dCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZSh0ZXN0X2ZpbGUpKSkKICAgICAgICAg
ICAgIG91dF9maWxlLndyaXRlKCI8L3A+XG4iKQogCiAgICAgICAgICMgZm9vdGVyCiAgICAgICAg
IG91dF9maWxlLndyaXRlKCI8L2JvZHk+PC9odG1sPlxuIikKLSAgICAgICAgb3V0X2ZpbGUuY2xv
c2UoKQogICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIF9zaG93X3Jlc3VsdHNfaHRtbF9m
aWxlKHNlbGYpOgpAQCAtMTQzMSw4ICsxNDMyLDcgQEAgZGVmIF9hZGRfdG9fZGljdF9vZl9saXN0
cyhkaWN0LCBrZXksIHZhbHVlKToKIGRlZiByZWFkX3Rlc3RfZmlsZXMoZmlsZXMpOgogICAgIHRl
c3RzID0gW10KICAgICBmb3IgZmlsZSBpbiBmaWxlczoKLSAgICAgICAgIyBGSVhNRTogVGhpcyBj
b3VsZCBiZSBjbGVhbmVyIHVzaW5nIGEgbGlzdCBjb21wcmVoZW5zaW9uLgotICAgICAgICBmb3Ig
bGluZSBpbiBjb2RlY3Mub3BlbihmaWxlLCAiciIsICJ1dGYtOCIpOgorICAgICAgICBmb3IgbGlu
ZSBpbiBvcGVuKGZpbGUpOgogICAgICAgICAgICAgbGluZSA9IHRlc3RfZXhwZWN0YXRpb25zLnN0
cmlwX2NvbW1lbnRzKGxpbmUpCiAgICAgICAgICAgICBpZiBsaW5lOgogICAgICAgICAgICAgICAg
IHRlc3RzLmFwcGVuZChsaW5lKQpAQCAtMTUwNyw4ICsxNTA3LDkgQEAgZGVmIG1haW4ob3B0aW9u
cywgYXJncywgcHJpbnRfcmVzdWx0cz1UcnVlKToKICAgICBpZiBvcHRpb25zLnByaW50X3VuZXhw
ZWN0ZWRfcmVzdWx0cyBvciBvcHRpb25zLnJldHJ5X3VuZXhwZWN0ZWRfcmVzdWx0czoKICAgICAg
ICAgdW5leHBlY3RlZF9yZXN1bHRzX2ZpbGVuYW1lID0gb3MucGF0aC5qb2luKAogICAgICAgICAg
ICBvcHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5LCAidW5leHBlY3RlZF9yZXN1bHRzLmpzb24iKQot
ICAgICAgICB3aXRoIG9wZW4odW5leHBlY3RlZF9yZXN1bHRzX2ZpbGVuYW1lLCAiciIsICJ1dGYt
OCIpIGFzIGZpbGU6Ci0gICAgICAgICAgICByZXN1bHRzID0gc2ltcGxlanNvbi5sb2FkKGZpbGUp
CisgICAgICAgIGYgPSBmaWxlKHVuZXhwZWN0ZWRfcmVzdWx0c19maWxlbmFtZSkKKyAgICAgICAg
cmVzdWx0cyA9IHNpbXBsZWpzb24ubG9hZChmKQorICAgICAgICBmLmNsb3NlKCkKICAgICAgICAg
bGFzdF91bmV4cGVjdGVkX3Jlc3VsdHMgPSByZXN1bHRzWyd0ZXN0cyddLmtleXMoKQogICAgICAg
ICBpZiBvcHRpb25zLnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0czoKICAgICAgICAgICAgIHByaW50
ICJcbiIuam9pbihsYXN0X3VuZXhwZWN0ZWRfcmVzdWx0cykgKyAiXG4iCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL2ltYWdl
X2RpZmYucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0
X3R5cGVzL2ltYWdlX2RpZmYucHkKaW5kZXggMTk0N2RmOC4uYjQxNDM1OCAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy9pbWFn
ZV9kaWZmLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3Rlc3RfdHlwZXMvaW1hZ2VfZGlmZi5weQpAQCAtMzQsOSArMzQsNiBAQCBtYXRjaCwgcmV0dXJu
cyBGYWlsdXJlSW1hZ2VIYXNoTWlzbWF0Y2ggYW5kIG91dHB1dHMgYm90aCBoYXNoZXMgaW50byB0
aGUgbGF5b3V0CiB0ZXN0IHJlc3VsdHMgZGlyZWN0b3J5LgogIiIiCiAKLWZyb20gX19mdXR1cmVf
XyBpbXBvcnQgd2l0aF9zdGF0ZW1lbnQKLQotaW1wb3J0IGNvZGVjcwogaW1wb3J0IGVycm5vCiBp
bXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCkBAIC04MSw4ICs3OCw5IEBAIGNsYXNzIEltYWdlRGlm
Zih0ZXN0X3R5cGVfYmFzZS5UZXN0VHlwZUJhc2UpOgogICAgICAgICAgIHBuZ19wYXRoOiBwYXRo
IHRvIHRoZSBhY3R1YWwgUE5HIHJlc3VsdCBmaWxlCiAgICAgICAgICAgY2hlY2tzdW06IHZhbHVl
IG9mIHRoZSBhY3R1YWwgY2hlY2tzdW0gcmVzdWx0CiAgICAgICAgICIiIgotICAgICAgICB3aXRo
IG9wZW4ocG5nX3BhdGgsICJyYiIpIGFzIHBuZ19maWxlOgotICAgICAgICAgICAgcG5nX2RhdGEg
PSBwbmdfZmlsZS5yZWFkKCkKKyAgICAgICAgcG5nX2ZpbGUgPSBvcGVuKHBuZ19wYXRoLCAicmIi
KQorICAgICAgICBwbmdfZGF0YSA9IHBuZ19maWxlLnJlYWQoKQorICAgICAgICBwbmdfZmlsZS5j
bG9zZSgpCiAgICAgICAgIHNlbGYuX3NhdmVfYmFzZWxpbmVfZGF0YShmaWxlbmFtZSwgcG5nX2Rh
dGEsICIucG5nIikKICAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZV9kYXRhKGZpbGVuYW1lLCBj
aGVja3N1bSwgIi5jaGVja3N1bSIpCiAKQEAgLTE0MiwxMCArMTQwLDggQEAgY2xhc3MgSW1hZ2VE
aWZmKHRlc3RfdHlwZV9iYXNlLlRlc3RUeXBlQmFzZSk6CiAgICAgICAgICAgICBfbG9nLmRlYnVn
KCdVc2luZyAlcycgJSBleHBlY3RlZF9oYXNoX2ZpbGUpCiAgICAgICAgICAgICBfbG9nLmRlYnVn
KCdVc2luZyAlcycgJSBleHBlY3RlZF9wbmdfZmlsZSkKIAotICAgICAgICAjIEZJWE1FOiBXZSBy
ZXBlYXQgdGhpcyBwYXR0ZXJuIG9mdGVuLCB3ZSBzaG91bGQgc2hhcmUgY29kZS4KICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgd2l0aCBjb2RlY3Mub3BlbihleHBlY3RlZF9oYXNoX2ZpbGUsICJy
IiwgImFzY2lpIikgYXMgZmlsZToKLSAgICAgICAgICAgICAgICBleHBlY3RlZF9oYXNoID0gZmls
ZS5yZWFkKCkKKyAgICAgICAgICAgIGV4cGVjdGVkX2hhc2ggPSBvcGVuKGV4cGVjdGVkX2hhc2hf
ZmlsZSwgInIiKS5yZWFkKCkKICAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6CiAgICAgICAgICAg
ICBpZiBlcnJuby5FTk9FTlQgIT0gZS5lcnJubzoKICAgICAgICAgICAgICAgICByYWlzZQpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90
eXBlcy90ZXN0X3R5cGVfYmFzZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGVzdF90eXBlX2Jhc2UucHkKaW5kZXggYzNlNjJhMC4uNGM5
OWJlMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdGVzdF90eXBlcy90ZXN0X3R5cGVfYmFzZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3Rlc3RfdHlwZV9iYXNlLnB5CkBAIC0z
Miw5ICszMiw2IEBACiBBbHNvIGRlZmluZXMgdGhlIFRlc3RBcmd1bWVudHMgInN0cnVjdCIgdG8g
cGFzcyB0aGVtIGFkZGl0aW9uYWwgYXJndW1lbnRzLgogIiIiCiAKLWZyb20gX19mdXR1cmVfXyBp
bXBvcnQgd2l0aF9zdGF0ZW1lbnQKLQotaW1wb3J0IGNvZGVjcwogaW1wb3J0IGNnaQogaW1wb3J0
IGVycm5vCiBpbXBvcnQgbG9nZ2luZwpAQCAtMTUzLDExICsxNTAsMTAgQEAgY2xhc3MgVGVzdFR5
cGVCYXNlKG9iamVjdCk6CiAgICAgICAgICIiIgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRl
ZAogCi0gICAgZGVmIF93cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aChzZWxmLCBmaWxlX3BhdGgsIGJ5
dGVfYXJyYXkpOgotICAgICAgICAiIiJUaGlzIG1ldGhvZCBhc3N1bWVzIHRoYXQgYnl0ZV9hcnJh
eSBpcyBhbHJlYWR5IGVuY29kZWQKLSAgICAgICAgaW50byB0aGUgcmlnaHQgZm9ybWF0LiIiIgot
ICAgICAgICB3aXRoIG9wZW4oZmlsZV9wYXRoLCAid2IiKSBhcyBmaWxlOgotICAgICAgICAgICAg
ZmlsZS53cml0ZShieXRlX2FycmF5KQorICAgIGRlZiBfd3JpdGVfaW50b19maWxlX2F0X3BhdGgo
c2VsZiwgZmlsZV9wYXRoLCBjb250ZW50cyk6CisgICAgICAgIGZpbGUgPSBvcGVuKGZpbGVfcGF0
aCwgIndiIikKKyAgICAgICAgZmlsZS53cml0ZShjb250ZW50cykKKyAgICAgICAgZmlsZS5jbG9z
ZSgpCiAKICAgICBkZWYgd3JpdGVfb3V0cHV0X2ZpbGVzKHNlbGYsIHBvcnQsIGZpbGVuYW1lLCBm
aWxlX3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIGV4cGVjdGVkLCBw
cmludF90ZXh0X2RpZmZzPUZhbHNlKToKQEAgLTE5MiwxNCArMTg4LDE0IEBAIGNsYXNzIFRlc3RU
eXBlQmFzZShvYmplY3QpOgogCiAgICAgICAgIGRpZmYgPSBwb3J0LmRpZmZfdGV4dChleHBlY3Rl
ZCwgb3V0cHV0LCBleHBlY3RlZF9maWxlbmFtZSwgYWN0dWFsX2ZpbGVuYW1lKQogICAgICAgICBk
aWZmX2ZpbGVuYW1lID0gc2VsZi5vdXRwdXRfZmlsZW5hbWUoZmlsZW5hbWUsIHNlbGYuRklMRU5B
TUVfU1VGRklYX0RJRkYgKyBmaWxlX3R5cGUpCi0gICAgICAgIHNlbGYuX3dyaXRlX2ludG9fZmls
ZV9hdF9wYXRoKGRpZmZfZmlsZW5hbWUsIGRpZmYuZW5jb2RlKCJ1dGYtOCIpKQorICAgICAgICBz
ZWxmLl93cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aChkaWZmX2ZpbGVuYW1lLCBkaWZmKQogCiAgICAg
ICAgICMgU2hlbGwgb3V0IHRvIHdkaWZmIHRvIGdldCBjb2xvcmVkIGlubGluZSBkaWZmcy4KICAg
ICAgICAgd2RpZmYgPSBwb3J0LndkaWZmX3RleHQoZXhwZWN0ZWRfZmlsZW5hbWUsIGFjdHVhbF9m
aWxlbmFtZSkKICAgICAgICAgd2RpZmZfZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9maWxlbmFtZShm
aWxlbmFtZSwgc2VsZi5GSUxFTkFNRV9TVUZGSVhfV0RJRkYpCi0gICAgICAgIHNlbGYuX3dyaXRl
X2ludG9fZmlsZV9hdF9wYXRoKHdkaWZmX2ZpbGVuYW1lLCB3ZGlmZi5lbmNvZGUoInV0Zi04Iikp
CisgICAgICAgIHNlbGYuX3dyaXRlX2ludG9fZmlsZV9hdF9wYXRoKHdkaWZmX2ZpbGVuYW1lLCB3
ZGlmZikKIAogICAgICAgICAjIFVzZSBXZWJLaXQncyBQcmV0dHlQYXRjaC5yYiB0byBnZXQgYW4g
SFRNTCBkaWZmLgogICAgICAgICBwcmV0dHlfcGF0Y2ggPSBwb3J0LnByZXR0eV9wYXRjaF90ZXh0
KGRpZmZfZmlsZW5hbWUpCiAgICAgICAgIHByZXR0eV9wYXRjaF9maWxlbmFtZSA9IHNlbGYub3V0
cHV0X2ZpbGVuYW1lKGZpbGVuYW1lLCBzZWxmLkZJTEVOQU1FX1NVRkZJWF9QUkVUVFlfUEFUQ0gp
Ci0gICAgICAgIHNlbGYuX3dyaXRlX2ludG9fZmlsZV9hdF9wYXRoKHByZXR0eV9wYXRjaF9maWxl
bmFtZSwgcHJldHR5X3BhdGNoLmVuY29kZSgidXRmLTgiKSkKKyAgICAgICAgc2VsZi5fd3JpdGVf
aW50b19maWxlX2F0X3BhdGgocHJldHR5X3BhdGNoX2ZpbGVuYW1lLCBwcmV0dHlfcGF0Y2gpCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0
X3R5cGVzL3RleHRfZGlmZi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5CmluZGV4IGQzZTZjYWYuLjhmNzkwN2MgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3Rf
dHlwZXMvdGV4dF9kaWZmLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5CkBAIC0zMyw5ICszMyw2IEBAIElmIHRo
ZSBvdXRwdXQgZG9lc24ndCBtYXRjaCwgcmV0dXJucyBGYWlsdXJlVGV4dE1pc21hdGNoIGFuZCBv
dXRwdXRzIHRoZSBkaWZmCiBmaWxlcyBpbnRvIHRoZSBsYXlvdXQgdGVzdCByZXN1bHRzIGRpcmVj
dG9yeS4KICIiIgogCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50Ci0KLWlt
cG9ydCBjb2RlY3MKIGltcG9ydCBlcnJubwogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcy5wYXRo
CkBAIC03MywxMCArNzAsOCBAQCBjbGFzcyBUZXN0VGV4dERpZmYodGVzdF90eXBlX2Jhc2UuVGVz
dFR5cGVCYXNlKToKICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X25vcm1hbGl6ZWRfdGV4dChleHBl
Y3RlZF9maWxlbmFtZSkKIAogICAgIGRlZiBnZXRfbm9ybWFsaXplZF90ZXh0KHNlbGYsIGZpbGVu
YW1lKToKLSAgICAgICAgIyBGSVhNRTogV2UgcmVwZWF0IHRoaXMgcGF0dGVybiBvZnRlbiwgd2Ug
c2hvdWxkIHNoYXJlIGNvZGUuCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHdpdGggY29kZWNz
Lm9wZW4oZmlsZW5hbWUsICJyIiwgInV0Zi04IikgYXMgZmlsZToKLSAgICAgICAgICAgICAgICB0
ZXh0ID0gZmlsZS5yZWFkKCkKKyAgICAgICAgICAgIHRleHQgPSBvcGVuKGZpbGVuYW1lKS5yZWFk
KCkKICAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6CiAgICAgICAgICAgICBpZiBlcnJuby5FTk9F
TlQgIT0gZS5lcnJubzoKICAgICAgICAgICAgICAgICByYWlzZQpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWxlcmVhZGVyX3VuaXR0ZXN0LnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWxlcmVhZGVyX3VuaXR0ZXN0LnB5Cmlu
ZGV4IDU3YjQxMjYuLjhkMWExNTkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvZmlsZXJlYWRlcl91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2ZpbGVyZWFkZXJfdW5pdHRlc3QucHkKQEAgLTIyLDkgKzIyLDYg
QEAKIAogIiIiQ29udGFpbnMgdW5pdCB0ZXN0cyBmb3IgZmlsZXJlYWRlci5weS4iIiIKIAotZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAotCi1pbXBvcnQgY29kZWNzCiBpbXBv
cnQgb3MKIGltcG9ydCBzaHV0aWwKIGltcG9ydCB0ZW1wZmlsZQpAQCAtNzAsMTIgKzY3LDE0IEBA
IGNsYXNzIFRleHRGaWxlUmVhZGVyVGVzdChMb2dnaW5nVGVzdENhc2UpOgogICAgICAgICBMb2dn
aW5nVGVzdENhc2UudGVhckRvd24oc2VsZikKICAgICAgICAgc2h1dGlsLnJtdHJlZShzZWxmLl90
ZW1wX2RpcikKIAotICAgIGRlZiBfY3JlYXRlX2ZpbGUoc2VsZiwgcmVsX3BhdGgsIHRleHQsIGVu
Y29kaW5nPSJ1dGYtOCIpOgorICAgIGRlZiBfY3JlYXRlX2ZpbGUoc2VsZiwgcmVsX3BhdGgsIHRl
eHQpOgogICAgICAgICAiIiJDcmVhdGUgYSBmaWxlIHdpdGggZ2l2ZW4gdGV4dCBhbmQgcmV0dXJu
IHRoZSBwYXRoIHRvIHRoZSBmaWxlLiIiIgotICAgICAgICAjIEZJWE1FOiBUaGVyZSBhcmUgYmV0
dGVyL21vcmUgc2VjdXJlIEFQSXMgZm9yIGNyZWF0aW4gdG1wIGZpbGUgcGF0aHMuCiAgICAgICAg
IGZpbGVfcGF0aCA9IG9zLnBhdGguam9pbihzZWxmLl90ZW1wX2RpciwgcmVsX3BhdGgpCi0gICAg
ICAgIHdpdGggY29kZWNzLm9wZW4oZmlsZV9wYXRoLCAidyIsIGVuY29kaW5nKSBhcyBmaWxlOgot
ICAgICAgICAgICAgZmlsZS53cml0ZSh0ZXh0KQorCisgICAgICAgIGZpbGUgPSBvcGVuKGZpbGVf
cGF0aCwgJ3cnKQorICAgICAgICBmaWxlLndyaXRlKHRleHQpCisgICAgICAgIGZpbGUuY2xvc2Uo
KQorCiAgICAgICAgIHJldHVybiBmaWxlX3BhdGgKIAogICAgIGRlZiBfcGFzc2VkX3RvX3Byb2Nl
c3NvcihzZWxmKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhp
cmRwYXJ0eS9fX2luaXRfXy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRw
YXJ0eS9fX2luaXRfXy5weQppbmRleCBjMDUyZjAwLi5mMWU1MzM0IDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5CkBAIC0yNCw5
ICsyNCw2IEBACiAKICIiIkF1dG9pbnN0YWxscyB0aGlyZC1wYXJ0eSBjb2RlIHJlcXVpcmVkIGJ5
IFdlYktpdC4iIiIKIAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAotCi1p
bXBvcnQgY29kZWNzCiBpbXBvcnQgb3MKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmF1
dG9pbnN0YWxsIGltcG9ydCBBdXRvSW5zdGFsbGVyCkBAIC05MSw3ICs4OCwxMCBAQCBpbnN0YWxs
ZXIuaW5zdGFsbCh1cmw9Imh0dHA6Ly9pd2ViLmRsLnNvdXJjZWZvcmdlLm5ldC9wcm9qZWN0L3B5
dGhvbi1pcmNsaWIvcHl0aAogCiByZWFkbWVfcGF0aCA9IG9zLnBhdGguam9pbihhdXRvaW5zdGFs
bGVkX2RpciwgIlJFQURNRSIpCiBpZiBub3Qgb3MucGF0aC5leGlzdHMocmVhZG1lX3BhdGgpOgot
ICAgIHdpdGggY29kZWNzLm9wZW4ocmVhZG1lX3BhdGgsICJ3IiwgImFzY2lpIikgYXMgZmlsZToK
KyAgICBmaWxlID0gb3BlbihyZWFkbWVfcGF0aCwgInciKQorICAgIHRyeToKICAgICAgICAgZmls
ZS53cml0ZSgiVGhpcyBkaXJlY3RvcnkgaXMgYXV0by1nZW5lcmF0ZWQgYnkgV2ViS2l0IGFuZCBp
cyAiCiAgICAgICAgICAgICAgICAgICAgInNhZmUgdG8gZGVsZXRlLlxuSXQgY29udGFpbnMgbmVl
ZGVkIHRoaXJkLXBhcnR5IFB5dGhvbiAiCiAgICAgICAgICAgICAgICAgICAgInBhY2thZ2VzIGF1
dG9tYXRpY2FsbHkgZG93bmxvYWRlZCBmcm9tIHRoZSB3ZWIuIikKKyAgICBmaW5hbGx5OgorICAg
ICAgICBmaWxlLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CmluZGV4IDc1
MDVjNjIuLjllYTM0YzAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQpAQCAtMjYs
NiArMjYsOCBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAorZnJvbSBTdHJpbmdJ
TyBpbXBvcnQgU3RyaW5nSU8KKwogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnF1ZXVlcyBp
bXBvcnQgQWJzdHJhY3RSZXZpZXdRdWV1ZQogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNv
bW1pdHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZp
Zy5wb3J0cyBpbXBvcnQgV2ViS2l0UG9ydApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKaW5kZXggNzc1YWE0NC4uZjBkYTM3OSAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1
ZXVlcy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
cXVldWVzLnB5CkBAIC03MSwxMSArNzEsOCBAQCBjbGFzcyBBYnN0cmFjdFF1ZXVlKENvbW1hbmQs
IFF1ZXVlRW5naW5lRGVsZWdhdGUpOgogICAgIGRlZiBydW5fd2Via2l0X3BhdGNoKHNlbGYsIGFy
Z3MpOgogICAgICAgICB3ZWJraXRfcGF0Y2hfYXJncyA9IFtzZWxmLnRvb2wucGF0aCgpXQogICAg
ICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjaywgd2Ugc2hvdWxkIGhhdmUgYSBtb3JlIGdlbmVy
YWwgd2F5IHRvIHBhc3MgZ2xvYmFsIG9wdGlvbnMuCi0gICAgICAgICMgRklYTUU6IFdlIG11c3Qg
YWx3YXlzIHBhc3MgZ2xvYmFsIG9wdGlvbnMgYW5kIHRoZWlyIHZhbHVlIGluIG9uZSBhcmd1bWVu
dAotICAgICAgICAjIGJlY2F1c2Ugb3VyIGdsb2JhbCBvcHRpb24gY29kZSBsb29rcyBmb3IgdGhl
IGZpcnN0IGFyZ3VtZW50IHdoaWNoIGRvZXMKLSAgICAgICAgIyBub3QgYmVnaW4gd2l0aCAiLSIg
YW5kIGFzc3VtZXMgdGhhdCBpcyB0aGUgY29tbWFuZCBuYW1lLgogICAgICAgICB3ZWJraXRfcGF0
Y2hfYXJncyArPSBbIi0tc3RhdHVzLWhvc3Q9JXMiICUgc2VsZi50b29sLnN0YXR1c19zZXJ2ZXIu
aG9zdF0KLSAgICAgICAgd2Via2l0X3BhdGNoX2FyZ3MuZXh0ZW5kKGFyZ3MpCisgICAgICAgIHdl
YmtpdF9wYXRjaF9hcmdzICs9IG1hcChzdHIsIGFyZ3MpCiAgICAgICAgIHJldHVybiBzZWxmLnRv
b2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbCh3ZWJraXRfcGF0Y2hfYXJncykKIAog
ICAgIGRlZiBfbG9nX2RpcmVjdG9yeShzZWxmKToKQEAgLTEyNiwxMCArMTIzLDcgQEAgY2xhc3Mg
QWJzdHJhY3RRdWV1ZShDb21tYW5kLCBRdWV1ZUVuZ2luZURlbGVnYXRlKToKICAgICAgICAgaWYg
aXNfZXJyb3I6CiAgICAgICAgICAgICBtZXNzYWdlID0gIkVycm9yOiAlcyIgJSBtZXNzYWdlCiAg
ICAgICAgIG91dHB1dCA9IHNjcmlwdF9lcnJvci5tZXNzYWdlX3dpdGhfb3V0cHV0KG91dHB1dF9s
aW1pdD0xMDI0KjEwMjQpICMgMU1CCi0gICAgICAgICMgV2UgcHJlLWVuY29kZSB0aGUgc3RyaW5n
IHRvIGEgYnl0ZSBhcnJheSBiZWZvcmUgcGFzc2luZyBpdAotICAgICAgICAjIHRvIHN0YXR1c19z
ZXJ2ZXIsIGJlY2F1c2UgQ2xpZW50Rm9ybSAocGFydCBvZiBtZWNoYW5pemUpCi0gICAgICAgICMg
d2FudHMgYSBmaWxlLWxpa2Ugb2JqZWN0IHdpdGggcHJlLWVuY29kZWQgZGF0YS4KLSAgICAgICAg
cmV0dXJuIHRvb2wuc3RhdHVzX3NlcnZlci51cGRhdGVfc3RhdHVzKGNscy5uYW1lLCBtZXNzYWdl
LCBzdGF0ZVsicGF0Y2giXSwgU3RyaW5nSU8ob3V0cHV0LmVuY29kZSgidXRmLTgiKSkpCisgICAg
ICAgIHJldHVybiB0b29sLnN0YXR1c19zZXJ2ZXIudXBkYXRlX3N0YXR1cyhjbHMubmFtZSwgbWVz
c2FnZSwgc3RhdGVbInBhdGNoIl0sIFN0cmluZ0lPKG91dHB1dCkpCiAKIAogY2xhc3MgQWJzdHJh
Y3RQYXRjaFF1ZXVlKEFic3RyYWN0UXVldWUpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKaW5k
ZXggMTZlYjA1My4uZjBmN2M4NiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CkBAIC03NSw3
ICs3NSw3IEBAIGNsYXNzIEFic3RyYWN0UXVldWVUZXN0KENvbW1hbmRzVGVzdCk6CiAgICAgICAg
IHF1ZXVlLmJpbmRfdG9fdG9vbCh0b29sKQogCiAgICAgICAgIHF1ZXVlLnJ1bl93ZWJraXRfcGF0
Y2gocnVuX2FyZ3MpCi0gICAgICAgIGV4cGVjdGVkX3J1bl9hcmdzID0gWyJlY2hvIiwgIi0tc3Rh
dHVzLWhvc3Q9ZXhhbXBsZS5jb20iXSArIHJ1bl9hcmdzCisgICAgICAgIGV4cGVjdGVkX3J1bl9h
cmdzID0gWyJlY2hvIiwgIi0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20iXSArIG1hcChzdHIsIHJ1
bl9hcmdzKQogICAgICAgICB0b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwuYXNz
ZXJ0X2NhbGxlZF93aXRoKGV4cGVjdGVkX3J1bl9hcmdzKQogCiAgICAgZGVmIHRlc3RfcnVuX3dl
YmtpdF9wYXRjaChzZWxmKToKQEAgLTE1MCw3ICsxNTAsNyBAQCBXYXJuaW5nLCBhdHRhY2htZW50
IDEyOCBvbiBidWcgNDIgaGFzIGludmFsaWQgY29tbWl0dGVyIChub24tY29tbWl0dGVyQGV4YW1w
bGUuYwogV2FybmluZywgYXR0YWNobWVudCAxMjggb24gYnVnIDQyIGhhcyBpbnZhbGlkIGNvbW1p
dHRlciAobm9uLWNvbW1pdHRlckBleGFtcGxlLmNvbSkKIDEgcGF0Y2ggaW4gY29tbWl0LXF1ZXVl
IFsxMDZdCiAiIiIsCi0gICAgICAgICAgICAicHJvY2Vzc193b3JrX2l0ZW0iOiAiTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnZWNobycsICctLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tJywg
J2xhbmQtYXR0YWNobWVudCcsICctLWZvcmNlLWNsZWFuJywgJy0tYnVpbGQnLCAnLS10ZXN0Jywg
Jy0tbm9uLWludGVyYWN0aXZlJywgJy0taWdub3JlLWJ1aWxkZXJzJywgJy0tYnVpbGQtc3R5bGU9
Ym90aCcsICctLXF1aWV0JywgNzY1NDNdXG4iLAorICAgICAgICAgICAgInByb2Nlc3Nfd29ya19p
dGVtIjogIk1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ2VjaG8nLCAnLS1zdGF0dXMtaG9z
dD1leGFtcGxlLmNvbScsICdsYW5kLWF0dGFjaG1lbnQnLCAnLS1mb3JjZS1jbGVhbicsICctLWJ1
aWxkJywgJy0tdGVzdCcsICctLW5vbi1pbnRlcmFjdGl2ZScsICctLWlnbm9yZS1idWlsZGVycycs
ICctLWJ1aWxkLXN0eWxlPWJvdGgnLCAnLS1xdWlldCcsICc3NjU0MyddXG4iLAogICAgICAgICB9
CiAgICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoQ29tbWl0UXVldWUoKSwgdG9vbD10
b29sLCB3b3JrX2l0ZW09cm9sbG91dF9wYXRjaCwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0
ZGVycikKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3VwbG9hZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy91cGxvYWQucHkKaW5kZXggMzNiY2E3YS4uYmRmMDYwYSAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkLnB5CkBAIC0zMCw2
ICszMCw3IEBACiAKIGltcG9ydCBvcwogaW1wb3J0IHJlCitpbXBvcnQgU3RyaW5nSU8KIGltcG9y
dCBzeXMKIAogZnJvbSBvcHRwYXJzZSBpbXBvcnQgbWFrZV9vcHRpb24KQEAgLTI1OSw2ICsyNjAs
MTAgQEAgY2xhc3MgUG9zdENvbW1pdHMoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAg
ICAgICAgICAgY29tbWVudF90ZXh0ICs9IHRvb2wuc2NtKCkuZmlsZXNfY2hhbmdlZF9zdW1tYXJ5
X2Zvcl9jb21taXQoY29tbWl0X2lkKQogICAgICAgICByZXR1cm4gY29tbWVudF90ZXh0CiAKKyAg
ICBkZWYgX2RpZmZfZmlsZV9mb3JfY29tbWl0KHNlbGYsIHRvb2wsIGNvbW1pdF9pZCk6CisgICAg
ICAgIGRpZmYgPSB0b29sLnNjbSgpLmNyZWF0ZV9wYXRjaF9mcm9tX2xvY2FsX2NvbW1pdChjb21t
aXRfaWQpCisgICAgICAgIHJldHVybiBTdHJpbmdJTy5TdHJpbmdJTyhkaWZmKSAjIGFkZF9wYXRj
aF90b19idWcgZXhwZWN0cyBhIGZpbGUtbGlrZSBvYmplY3QKKwogICAgIGRlZiBleGVjdXRlKHNl
bGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgogICAgICAgICBjb21taXRfaWRzID0gdG9vbC5zY20o
KS5jb21taXRfaWRzX2Zyb21fY29tbWl0aXNoX2FyZ3VtZW50cyhhcmdzKQogICAgICAgICBpZiBs
ZW4oY29tbWl0X2lkcykgPiAxMDogIyBXZSBjb3VsZCBsb3dlciB0aGlzIGxpbWl0LCAxMCBpcyB0
b28gbWFueSBmb3Igb25lIGJ1ZyBhcy1pcy4KQEAgLTI3OSwxMCArMjg0LDEwIEBAIGNsYXNzIFBv
c3RDb21taXRzKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kKToKICAgICAgICAgICAgICAgICBz
dGVwcy5PYnNvbGV0ZVBhdGNoZXModG9vbCwgb3B0aW9ucykucnVuKHN0YXRlKQogICAgICAgICAg
ICAgICAgIGhhdmVfb2Jzb2xldGVkX3BhdGNoZXMuYWRkKGJ1Z19pZCkKIAotICAgICAgICAgICAg
ZGlmZiA9IHRvb2wuc2NtKCkuY3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxfY29tbWl0KGNvbW1pdF9p
ZCkKKyAgICAgICAgICAgIGRpZmZfZmlsZSA9IHNlbGYuX2RpZmZfZmlsZV9mb3JfY29tbWl0KHRv
b2wsIGNvbW1pdF9pZCkKICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gb3B0aW9ucy5kZXNjcmlw
dGlvbiBvciBjb21taXRfbWVzc2FnZS5kZXNjcmlwdGlvbihsc3RyaXA9VHJ1ZSwgc3RyaXBfdXJs
PVRydWUpCiAgICAgICAgICAgICBjb21tZW50X3RleHQgPSBzZWxmLl9jb21tZW50X3RleHRfZm9y
X2NvbW1pdChvcHRpb25zLCBjb21taXRfbWVzc2FnZSwgdG9vbCwgY29tbWl0X2lkKQotICAgICAg
ICAgICAgdG9vbC5idWdzLmFkZF9wYXRjaF90b19idWcoYnVnX2lkLCBkaWZmLCBkZXNjcmlwdGlv
biwgY29tbWVudF90ZXh0LCBtYXJrX2Zvcl9yZXZpZXc9b3B0aW9ucy5yZXZpZXcsIG1hcmtfZm9y
X2NvbW1pdF9xdWV1ZT1vcHRpb25zLnJlcXVlc3RfY29tbWl0KQorICAgICAgICAgICAgdG9vbC5i
dWdzLmFkZF9wYXRjaF90b19idWcoYnVnX2lkLCBkaWZmX2ZpbGUsIGRlc2NyaXB0aW9uLCBjb21t
ZW50X3RleHQsIG1hcmtfZm9yX3Jldmlldz1vcHRpb25zLnJldmlldywgbWFya19mb3JfY29tbWl0
X3F1ZXVlPW9wdGlvbnMucmVxdWVzdF9jb21taXQpCiAKIAogIyBGSVhNRTogVGhpcyBjb21tYW5k
IG5lZWRzIHRvIGJlIGJyb3VnaHQgaW50byB0aGUgbW9kZXJuIGFnZSB3aXRoIHN0ZXBzIGFuZCBD
b21taXRJbmZvLgpAQCAtMzk5LDcgKzQwNCw4IEBAIGNsYXNzIENyZWF0ZUJ1ZyhBYnN0cmFjdERl
Y2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgICAgICAgICBjb21tZW50X3RleHQgKz0gdG9vbC5zY20o
KS5maWxlc19jaGFuZ2VkX3N1bW1hcnlfZm9yX2NvbW1pdChjb21taXRfaWQpCiAKICAgICAgICAg
ZGlmZiA9IHRvb2wuc2NtKCkuY3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxfY29tbWl0KGNvbW1pdF9p
ZCkKLSAgICAgICAgYnVnX2lkID0gdG9vbC5idWdzLmNyZWF0ZV9idWcoYnVnX3RpdGxlLCBjb21t
ZW50X3RleHQsIG9wdGlvbnMuY29tcG9uZW50LCBkaWZmLCAiUGF0Y2giLCBjYz1vcHRpb25zLmNj
LCBtYXJrX2Zvcl9yZXZpZXc9b3B0aW9ucy5yZXZpZXcsIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT1v
cHRpb25zLnJlcXVlc3RfY29tbWl0KQorICAgICAgICBkaWZmX2ZpbGUgPSBTdHJpbmdJTy5TdHJp
bmdJTyhkaWZmKSAjIGNyZWF0ZV9idWcgZXhwZWN0cyBhIGZpbGUtbGlrZSBvYmplY3QKKyAgICAg
ICAgYnVnX2lkID0gdG9vbC5idWdzLmNyZWF0ZV9idWcoYnVnX3RpdGxlLCBjb21tZW50X3RleHQs
IG9wdGlvbnMuY29tcG9uZW50LCBkaWZmX2ZpbGUsICJQYXRjaCIsIGNjPW9wdGlvbnMuY2MsIG1h
cmtfZm9yX3Jldmlldz1vcHRpb25zLnJldmlldywgbWFya19mb3JfY29tbWl0X3F1ZXVlPW9wdGlv
bnMucmVxdWVzdF9jb21taXQpCiAKICAgICAgICAgaWYgYnVnX2lkIGFuZCBsZW4oY29tbWl0X2lk
cykgPiAxOgogICAgICAgICAgICAgb3B0aW9ucy5idWdfaWQgPSBidWdfaWQKQEAgLTQxOCw3ICs0
MjQsOCBAQCBjbGFzcyBDcmVhdGVCdWcoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAg
ICAgICAgICAgY29tbWVudF90ZXh0ID0gY29tbWl0X21lc3NhZ2UuYm9keShsc3RyaXA9VHJ1ZSkK
IAogICAgICAgICBkaWZmID0gdG9vbC5zY20oKS5jcmVhdGVfcGF0Y2goKQotICAgICAgICBidWdf
aWQgPSB0b29sLmJ1Z3MuY3JlYXRlX2J1ZyhidWdfdGl0bGUsIGNvbW1lbnRfdGV4dCwgb3B0aW9u
cy5jb21wb25lbnQsIGRpZmYsICJQYXRjaCIsIGNjPW9wdGlvbnMuY2MsIG1hcmtfZm9yX3Jldmll
dz1vcHRpb25zLnJldmlldywgbWFya19mb3JfY29tbWl0X3F1ZXVlPW9wdGlvbnMucmVxdWVzdF9j
b21taXQpCisgICAgICAgIGRpZmZfZmlsZSA9IFN0cmluZ0lPLlN0cmluZ0lPKGRpZmYpICMgY3Jl
YXRlX2J1ZyBleHBlY3RzIGEgZmlsZS1saWtlIG9iamVjdAorICAgICAgICBidWdfaWQgPSB0b29s
LmJ1Z3MuY3JlYXRlX2J1ZyhidWdfdGl0bGUsIGNvbW1lbnRfdGV4dCwgb3B0aW9ucy5jb21wb25l
bnQsIGRpZmZfZmlsZSwgIlBhdGNoIiwgY2M9b3B0aW9ucy5jYywgbWFya19mb3JfcmV2aWV3PW9w
dGlvbnMucmV2aWV3LCBtYXJrX2Zvcl9jb21taXRfcXVldWU9b3B0aW9ucy5yZXF1ZXN0X2NvbW1p
dCkKIAogICAgIGRlZiBwcm9tcHRfZm9yX2J1Z190aXRsZV9hbmRfY29tbWVudChzZWxmKToKICAg
ICAgICAgYnVnX3RpdGxlID0gVXNlci5wcm9tcHQoIkJ1ZyB0aXRsZTogIikKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQppbmRleCAwMTY5NTU5Li5jYzM2
MWZmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rv
b2wucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5
CkBAIC0yNjAsNyArMjYwLDcgQEAgY2xhc3MgTW9ja0J1Z3ppbGxhKE1vY2spOgogICAgICAgICAg
ICAgICAgICAgIGJ1Z190aXRsZSwKICAgICAgICAgICAgICAgICAgICBidWdfZGVzY3JpcHRpb24s
CiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50PU5vbmUsCi0gICAgICAgICAgICAgICAgICAg
ZGlmZj1Ob25lLAorICAgICAgICAgICAgICAgICAgIHBhdGNoX2ZpbGVfb2JqZWN0PU5vbmUsCiAg
ICAgICAgICAgICAgICAgICAgcGF0Y2hfZGVzY3JpcHRpb249Tm9uZSwKICAgICAgICAgICAgICAg
ICAgICBjYz1Ob25lLAogICAgICAgICAgICAgICAgICAgIGJsb2NrZWQ9Tm9uZSwKQEAgLTMwMiw3
ICszMDIsNyBAQCBjbGFzcyBNb2NrQnVnemlsbGEoTW9jayk6CiAKICAgICBkZWYgYWRkX3BhdGNo
X3RvX2J1ZyhzZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Z19pZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWZmLAorICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoX2Zp
bGVfb2JqZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbW1lbnRfdGV4dD1Ob25lLAogICAgICAgICAgICAgICAgICAg
ICAgICAgIG1hcmtfZm9yX3Jldmlldz1GYWxzZSwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hYnN0cmFjdHN0ZXAucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWJzdHJhY3RzdGVwLnB5CmluZGV4IDIxODdmYzAu
LjFhZDM0M2QgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9hYnN0cmFjdHN0ZXAucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL2Fic3RyYWN0c3RlcC5weQpAQCAtMzksNyArMzksNyBAQCBjbGFzcyBBYnN0cmFj
dFN0ZXAob2JqZWN0KToKICAgICBkZWYgX3J1bl9zY3JpcHQoc2VsZiwgc2NyaXB0X25hbWUsIHF1
aWV0PUZhbHNlLCBwb3J0PVdlYktpdFBvcnQpOgogICAgICAgICBsb2coIlJ1bm5pbmcgJXMiICUg
c2NyaXB0X25hbWUpCiAgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHVzZSBzZWxmLnBvcnQo
KQotICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoW3Bv
cnQuc2NyaXB0X3BhdGgoc2NyaXB0X25hbWUpXSwgcXVpZXQpCisgICAgICAgIHNlbGYuX3Rvb2wu
ZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChwb3J0LnNjcmlwdF9wYXRoKHNjcmlwdF9u
YW1lKSwgcXVpZXQpCiAKICAgICAjIEZJWE1FOiBUaGUgcG9ydCBzaG91bGQgbGl2ZSBvbiB0aGUg
dG9vbC4KICAgICBkZWYgcG9ydChzZWxmKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0ZGlmZi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0ZGlmZi5weQppbmRleCA4MGRhY2NhLi42YTNkZWU0IDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGRp
ZmYucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3Rk
aWZmLnB5CkBAIC0yNiw2ICsyNiw4IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CitpbXBvcnQgU3RyaW5nSU8KKwogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0c3Rl
cCBpbXBvcnQgQWJzdHJhY3RTdGVwCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMub3B0aW9ucyBp
bXBvcnQgT3B0aW9ucwogCkBAIC00Miw2ICs0NCw3IEBAIGNsYXNzIFBvc3REaWZmKEFic3RyYWN0
U3RlcCk6CiAKICAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKICAgICAgICAgZGlmZiA9IHNlbGYu
Y2FjaGVkX2xvb2t1cChzdGF0ZSwgImRpZmYiKQorICAgICAgICBkaWZmX2ZpbGUgPSBTdHJpbmdJ
Ty5TdHJpbmdJTyhkaWZmKSAjIGFkZF9wYXRjaF90b19idWcgZXhwZWN0cyBhIGZpbGUtbGlrZSBv
YmplY3QKICAgICAgICAgZGVzY3JpcHRpb24gPSBzZWxmLl9vcHRpb25zLmRlc2NyaXB0aW9uIG9y
ICJQYXRjaCIKICAgICAgICAgY29tbWVudF90ZXh0ID0gTm9uZQogICAgICAgICBjb2RlcmV2aWV3
X2lzc3VlID0gc3RhdGUuZ2V0KCJjb2RlcmV2aWV3X2lzc3VlIikKQEAgLTQ5LDYgKzUyLDYgQEAg
Y2xhc3MgUG9zdERpZmYoQWJzdHJhY3RTdGVwKToKICAgICAgICAgIyBidXQgaXQgbWFrZXMgZG9p
bmcgdGhlIHJpZXR2ZWxkIGludGVncmF0aW9uIGEgbG90IGVhc2llci4KICAgICAgICAgaWYgY29k
ZXJldmlld19pc3N1ZToKICAgICAgICAgICAgIGRlc2NyaXB0aW9uICs9ICItJXMiICUgc3RhdGVb
ImNvZGVyZXZpZXdfaXNzdWUiXQotICAgICAgICBzZWxmLl90b29sLmJ1Z3MuYWRkX3BhdGNoX3Rv
X2J1ZyhzdGF0ZVsiYnVnX2lkIl0sIGRpZmYsIGRlc2NyaXB0aW9uLCBjb21tZW50X3RleHQ9Y29t
bWVudF90ZXh0LCBtYXJrX2Zvcl9yZXZpZXc9c2VsZi5fb3B0aW9ucy5yZXZpZXcsIG1hcmtfZm9y
X2NvbW1pdF9xdWV1ZT1zZWxmLl9vcHRpb25zLnJlcXVlc3RfY29tbWl0KQorICAgICAgICBzZWxm
Ll90b29sLmJ1Z3MuYWRkX3BhdGNoX3RvX2J1ZyhzdGF0ZVsiYnVnX2lkIl0sIGRpZmZfZmlsZSwg
ZGVzY3JpcHRpb24sIGNvbW1lbnRfdGV4dD1jb21tZW50X3RleHQsIG1hcmtfZm9yX3Jldmlldz1z
ZWxmLl9vcHRpb25zLnJldmlldywgbWFya19mb3JfY29tbWl0X3F1ZXVlPXNlbGYuX29wdGlvbnMu
cmVxdWVzdF9jb21taXQpCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMub3Blbl9idWc6CiAgICAg
ICAgICAgICBzZWxmLl90b29sLnVzZXIub3Blbl91cmwoc2VsZi5fdG9vbC5idWdzLmJ1Z191cmxf
Zm9yX2J1Z19pZChzdGF0ZVsiYnVnX2lkIl0pKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3RkaWZmZm9yY29tbWl0LnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3RkaWZmZm9yY29tbWl0LnB5CmluZGV4
IDEzYmMwMGMuLjAzYjllNzggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9wb3N0ZGlmZmZvcmNvbW1pdC5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGRpZmZmb3Jjb21taXQucHkKQEAgLTI2LDYgKzI2
LDggQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK2ltcG9ydCBTdHJpbmdJTwor
CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWJzdHJhY3RzdGVwIGltcG9ydCBBYnN0cmFjdFN0
ZXAKIAogCkBAIC0zMyw3ICszNSw3IEBAIGNsYXNzIFBvc3REaWZmRm9yQ29tbWl0KEFic3RyYWN0
U3RlcCk6CiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CiAgICAgICAgIHNlbGYuX3Rvb2wuYnVn
cy5hZGRfcGF0Y2hfdG9fYnVnKAogICAgICAgICAgICAgc3RhdGVbImJ1Z19pZCJdLAotICAgICAg
ICAgICAgc2VsZi5jYWNoZWRfbG9va3VwKHN0YXRlLCAiZGlmZiIpLAorICAgICAgICAgICAgU3Ry
aW5nSU8uU3RyaW5nSU8oc2VsZi5jYWNoZWRfbG9va3VwKHN0YXRlLCAiZGlmZiIpKSwKICAgICAg
ICAgICAgICJQYXRjaCBmb3IgbGFuZGluZyIsCiAgICAgICAgICAgICBtYXJrX2Zvcl9yZXZpZXc9
RmFsc2UsCiAgICAgICAgICAgICBtYXJrX2Zvcl9sYW5kaW5nPVRydWUpCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGRpZmZmb3JyZXZlcnQu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGRpZmZmb3Jy
ZXZlcnQucHkKaW5kZXggYmZhNjMxZi4uM2I5ZGEwNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3RkaWZmZm9ycmV2ZXJ0LnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0ZGlmZmZvcnJldmVydC5w
eQpAQCAtMjYsNiArMjYsOCBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAoraW1w
b3J0IFN0cmluZ0lPCisKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWd6aWxsYSBpbXBvcnQg
QXR0YWNobWVudAogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0c3RlcCBpbXBvcnQg
QWJzdHJhY3RTdGVwCiAKQEAgLTQyLDcgKzQ0LDcgQEAgZm9sbG93aW5nIGNvbW1hbmQ6XG5cblwK
IHdoZXJlIEFUVEFDSE1FTlRfSUQgaXMgdGhlIElEIG9mIHRoaXMgYXR0YWNobWVudC4iCiAgICAg
ICAgIHNlbGYuX3Rvb2wuYnVncy5hZGRfcGF0Y2hfdG9fYnVnKAogICAgICAgICAgICAgc3RhdGVb
ImJ1Z19pZCJdLAotICAgICAgICAgICAgc2VsZi5jYWNoZWRfbG9va3VwKHN0YXRlLCAiZGlmZiIp
LAorICAgICAgICAgICAgU3RyaW5nSU8uU3RyaW5nSU8oc2VsZi5jYWNoZWRfbG9va3VwKHN0YXRl
LCAiZGlmZiIpKSwKICAgICAgICAgICAgICIlcyVzIiAlIChBdHRhY2htZW50LnJvbGxvdXRfcHJl
YW1ibGUsIHN0YXRlWyJyZXZpc2lvbiJdKSwKICAgICAgICAgICAgIGNvbW1lbnRfdGV4dD1jb21t
ZW50X3RleHQsCiAgICAgICAgICAgICBtYXJrX2Zvcl9yZXZpZXc9RmFsc2UsCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3Qu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRl
c3QucHkKaW5kZXggNWFiZmM2ZC4uNDBiZWU5MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQpAQCAtNDgs
OCArNDgsNyBAQCBjbGFzcyBTdGVwc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0
ZXN0X3VwZGF0ZV9zdGVwKHNlbGYpOgogICAgICAgICBvcHRpb25zID0gTW9jaygpCiAgICAgICAg
IG9wdGlvbnMudXBkYXRlID0gVHJ1ZQotICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiVXBkYXRp
bmcgd29ya2luZyBkaXJlY3RvcnlcbiIKLSAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9v
dXRwdXRzKHNlbGYsIHNlbGYuX3J1bl9zdGVwLCBbVXBkYXRlLCBvcHRpb25zXSwgZXhwZWN0ZWRf
c3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKyAgICAgICAgc2VsZi5fcnVuX3N0ZXAoVXBkYXRlLCBv
cHRpb25zKQogCiAgICAgZGVmIHRlc3RfcHJvbXB0X2Zvcl9idWdfb3JfdGl0bGVfc3RlcChzZWxm
KToKICAgICAgICAgdG9vbCA9IE1vY2tUb29sKCkK
</data>
<flag name="commit-queue"
          id="37873"
          type_id="3"
          status="+"
          setter="yuzo"
    />
          </attachment>
      

    </bug>

</bugzilla>