<?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>77746</bug_id>
          
          <creation_ts>2012-02-03 09:35:24 -0800</creation_ts>
          <short_desc>[CSSRegions]Implement NamedFlow::getRegionsByContentNode</short_desc>
          <delta_ts>2012-03-20 03:08:51 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>57312</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihnea Ovidenie">mihnea</reporter>
          <assigned_to name="Mihnea Ovidenie">mihnea</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>548794</commentid>
    <comment_count>0</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-02-03 09:35:24 -0800</bug_when>
    <thetext>Spec: http://dev.w3.org/csswg/css3-regions/#the-namedflow-interface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561873</commentid>
    <comment_count>1</comment_count>
      <attachid>128181</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-02-22 05:21:05 -0800</bug_when>
    <thetext>Created attachment 128181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562314</commentid>
    <comment_count>2</comment_count>
      <attachid>128181</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-02-22 13:18:31 -0800</bug_when>
    <thetext>Comment on attachment 128181
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562322</commentid>
    <comment_count>3</comment_count>
      <attachid>128181</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-22 13:24:48 -0800</bug_when>
    <thetext>Comment on attachment 128181
Patch

Rejecting attachment 128181 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
st.h
patching file Source/WebCore/dom/WebKitNamedFlow.cpp
patching file Source/WebCore/dom/WebKitNamedFlow.h
patching file Source/WebCore/dom/WebKitNamedFlow.idl
patching file Source/WebCore/rendering/RenderFlowThread.cpp
patching file Source/WebCore/rendering/RenderFlowThread.h
patching file Source/WebCore/rendering/RenderRegion.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;David Hyatt&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/11569139</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565378</commentid>
    <comment_count>4</comment_count>
      <attachid>128964</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-02-26 23:29:03 -0800</bug_when>
    <thetext>Created attachment 128964
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565449</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 01:19:30 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 128964:

css3/filters/effect-invert-hw.html bug 79639 (author: cmarrin@apple.com)
inspector/protocol/console-agent.html bug 79563 (authors: caseq@chromium.org, loislo@chromium.org, and pfeldman@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565450</commentid>
    <comment_count>6</comment_count>
      <attachid>128964</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 01:22:09 -0800</bug_when>
    <thetext>Comment on attachment 128964
Patch for landing

Clearing flags on attachment: 128964

Committed r108970: &lt;http://trac.webkit.org/changeset/108970&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565451</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 01:22:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578211</commentid>
    <comment_count>8</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-03-14 00:28:59 -0700</bug_when>
    <thetext>The current implementation, making the returned NodeList a live collection had some issues and was removed from trunk in https://bugs.webkit.org/show_bug.cgi?id=81021.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579330</commentid>
    <comment_count>9</comment_count>
      <attachid>132037</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-03-15 06:42:00 -0700</bug_when>
    <thetext>Created attachment 132037
Patch 3

Implement the list of regions as a static list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581655</commentid>
    <comment_count>10</comment_count>
      <attachid>132037</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-18 23:59:40 -0700</bug_when>
    <thetext>Comment on attachment 132037
Patch 3

View in context: https://bugs.webkit.org/attachment.cgi?id=132037&amp;action=review

The pathc looks reasonable but I need to either learn how RenderFlowThread works or let someone else review that.

&gt; LayoutTests/fast/regions/get-regions-by-content-node-expected.txt:10
&gt; +PASS
&gt; +PASS
&gt; +PASS
&gt; +PASS
&gt; +PASS
&gt; +PASS

These test results are impossible read. What did pass here?
If you use js-test-pre.js, then you can use assertEqual, etc... to have more meaningful outputs here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581937</commentid>
    <comment_count>11</comment_count>
      <attachid>132607</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-03-19 10:58:05 -0700</bug_when>
    <thetext>Created attachment 132607
Patch 4

Taking comments into account, simplify tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582078</commentid>
    <comment_count>12</comment_count>
      <attachid>132607</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-03-19 12:46:36 -0700</bug_when>
    <thetext>Comment on attachment 132607
Patch 4

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582126</commentid>
    <comment_count>13</comment_count>
      <attachid>132607</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-19 13:19:55 -0700</bug_when>
    <thetext>Comment on attachment 132607
Patch 4

Rejecting attachment 132607 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
Kit/chromium/third_party/yasm/source/patched-yasm --revision 126079 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
48&gt;At revision 126079.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/11985561</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582135</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-19 13:24:05 -0700</bug_when>
    <thetext>Lets try again.  This may be a CQ bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582141</commentid>
    <comment_count>15</comment_count>
      <attachid>132607</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-19 13:26:06 -0700</bug_when>
    <thetext>Comment on attachment 132607
Patch 4

Rejecting attachment 132607 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ing file Source/WebCore/dom/WebKitNamedFlow.idl
Hunk #1 FAILED at 32.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/dom/WebKitNamedFlow.idl.rej
patching file Source/WebCore/rendering/RenderFlowThread.cpp
patching file Source/WebCore/rendering/RenderFlowThread.h
patching file Source/WebCore/rendering/RenderRegion.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;David Hyatt&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/11984707</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582819</commentid>
    <comment_count>16</comment_count>
      <attachid>132774</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-03-20 00:42:23 -0700</bug_when>
    <thetext>Created attachment 132774
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582888</commentid>
    <comment_count>17</comment_count>
      <attachid>132774</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 03:08:45 -0700</bug_when>
    <thetext>Comment on attachment 132774
Patch for landing

Clearing flags on attachment: 132774

Committed r111376: &lt;http://trac.webkit.org/changeset/111376&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582889</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 03:08:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128181</attachid>
            <date>2012-02-22 05:21:05 -0800</date>
            <delta_ts>2012-02-26 23:28:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>77746.patch</filename>
            <type>text/plain</type>
            <size>90852</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OWE4MDgyLi41NzIwYWM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDIt
MjIgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzQ2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
Z2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1idC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1j
b250ZW50LW5vZGUtaG9yaXotYnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25z
L2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei10Yi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9y
aXotdGIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5
LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVy
dC1ybC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVn
aW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1ybC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQt
bm9kZTIuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMjIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MDg0NjguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMt
YnktY29udGVudC1ub2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9n
ZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjM2OTZiMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE1IEBACitUZXN0IGZvciA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5h
bWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUKKworT24gc3VjY2VzcywgeW91IHNob3Vs
ZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxvdy4KKworUEFTUworUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUworUEFTUworCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1idC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2Rl
LWhvcml6LWJ0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li41ZGRjMjAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dl
dC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1idC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0OCBAQAorVGVzdCBmb3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6
OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlCisKK09uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEg
c2VyaWVzIG9mIFBBU1MgYmVsb3cuCisKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKKworCisKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jp
ei1idC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRl
bnQtbm9kZS1ob3Jpei1idC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjNjMTNiMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0
LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LWJ0Lmh0bWwKQEAgLTAsMCArMSwxNzEgQEAK
KzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3JlZ2lvbi1zdHlsZS5jc3MiPgorICAgICAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzdHls
ZT4KKyAgICAgICAgICAgIGh0bWwgeyAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1i
dDsgfQorICAgICAgICAgICAgYm9keSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IH0KKyAgICAg
ICAgICAgIC5yZWdpb25Cb3ggeyB3aWR0aDogMjUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAg
ICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorICAgICAgICAgICAg
I3JlZ2lvbiwgI3JlZ2lvbjIsICNyZWdpb24zIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IH0K
KworICAgICAgICAgICAgI2FydGljbGUyIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3cyOyB9Cisg
ICAgICAgICAgICAjcmVnaW9uNCwgI3JlZ2lvbjUgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7
IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxk
aXYgaWQ9ImNvbnRhaW5lck1lc3NhZ2UiPgorICAgICAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJl
Zj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzQ2Ij4KKyAgICAg
ICAgICAgIDc3NzQ2OiBbQ1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25z
QnlDb250ZW50Tm9kZTwvYT48L3A+CisgICAgICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hv
dWxkIHNlZSBhIHNlcmllcyBvZiBQQVNTIGJlbG93LjwvcD4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgICAgICA8IS0tIHNvbWUgdGVzdHMgd2l0
aCBpbmxpbmUgZWxlbWVudHMgLS0+CisgICAgICAgIDxkaXYgaWQ9ImFydGljbGUiPgorICAgICAg
ICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlIj5UZXh0IGluc2lkZSBzcGFuLjwvc3Bhbj4KKyAgICAg
ICAgICAgIFRleHQgb3V0c2lkZSBzcGFuLiBUZXh0IG91dHNpZGUgc3Bhbi4gVGV4dCBvdXRzaWRl
IHNwYW4uCisgICAgICAgICAgICA8c3BhbiBpZD0ic3Bhbk5vZGUyIj5UZXh0IGluc2lkZSBzcGFu
Mi48L3NwYW4+CisgICAgICAgICAgICA8c3BhbiBpZD0ic3Bhbk5vZGUzIj5UZXh0IGluc2lkZSBz
cGFuMzwvc3Bhbj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xh
c3M9InJlZ2lvbkJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjIiIGNsYXNzPSJy
ZWdpb25Cb3giPjwvZGl2PgorCisgICAgICAgIDwhLS0gc29tZSB0ZXN0cyB3aXRoIGJsb2NrIGVs
ZW1lbnRzIC0tPgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlMiI+CisgICAgICAgICAgICA8cCBp
ZD0icDEiPlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMS48L3A+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8ZGl2IGlkPSJyZWdpb240IiBjbGFzcz0icmVnaW9uQm94Ij48L3JlZ2lvbj4KKyAgICAg
ICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgICAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlO
YW1lKCJmbG93Iik7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGhpZGVSZWdpb25zKCkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNs
ZSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLnN0eWxl
LnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVnaW9uMiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMyIpLnN0eWxlLnZpc2liaWxp
dHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVnaW9uNCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlk
ZGVuIjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RBcnRpY2xl
ID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJhcnRpY2xlIikpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlICE9
IG51bGwsICJSZWdpb24gbGlzdCBmb3IgYXJ0aWNsZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGggPT0gMiwgIlJlZ2lvbiBs
aXN0IGZvciBhcnRpY2xlIHNob3VsZCBoYXZlIDIgZWxlbWVudHMsIGhhcyAiICsgcmVnaW9uTGlz
dEFydGljbGUubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0QXJ0aWNsZS5sZW5n
dGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDAp
ID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0IGVsZW1lbnQgaW4g
cmVnaW9uIGxpc3QgZm9yIGFydGljbGUgc2hvdWxkIGJlIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lv
bkxpc3RBcnRpY2xlLml0ZW0oMCkuaWQpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RBcnRp
Y2xlLmxlbmd0aCA+IDEpCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xl
Lml0ZW0oMSkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIlNlY29uZCBl
bGVtZW50IGluIHJlZ2lvbiBsaXN0IGZvciBhcnRpY2xlIHNob3VsZCBiZSByZWdpb24yLCBpdCBp
cyAiICsgcmVnaW9uTGlzdEFydGljbGUuaXRlbSgxKS5pZCk7CisKKyAgICAgICAgICAgIHZhciBz
cGFuTm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZSIpOworICAgICAgICAg
ICAgdmFyIHJlZ2lvbkxpc3RTcGFuID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
KHNwYW5Ob2RlKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbiAhPSBudWxsLCAi
UmVnaW9uIGxpc3QgZm9yIHNwYW4gc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdFNwYW4ubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3Igc3BhbiBz
aG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFNwYW4ubGVuZ3RoKTsKKyAg
ICAgICAgICAgIGlmIChyZWdpb25MaXN0U3Bhbi5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0U3Bhbi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZWdpb24iKSwgIkZpcnN0IHJlZ2lvbiBmb3Igc3BhbiBzaG91bGQgYmUgcmVnaW9uLCBpdCBp
cyAiICsgcmVnaW9uTGlzdFNwYW4uaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIHZhciBzcGFu
Tm9kZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUyIik7CisgICAgICAgICAg
ICB2YXIgcmVnaW9uTGlzdFNwYW4yID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
KHNwYW5Ob2RlMik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4yICE9IG51bGws
ICJSZWdpb24gbGlzdCBmb3Igc3BhbjIgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdFNwYW4yLmxlbmd0aCA9PSAyLCAiUmVnaW9uIGxpc3QgZm9yIHNw
YW4yIHNob3VsZCBoYXZlIDIgZWxlbWVudHMsIGhhcyAiICsgcmVnaW9uTGlzdFNwYW4yLmxlbmd0
aCk7CisKKyAgICAgICAgICAgIHZhciBzcGFuTm9kZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic3Bhbk5vZGUzIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4zID0gbmFtZWRG
bG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlMyk7CisgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFNwYW4zICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3Igc3BhbjMgc2hvdWxk
IG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4zLmxlbmd0
aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4zIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFz
ICIgKyByZWdpb25MaXN0U3BhbjMubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0
U3BhbjMubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4z
Lml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJl
Z2lvbiBmb3Igc3BhbiBub2RlIDMgc2hvdWxkIGJlIHRoZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAi
ICsgcmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICB2YXIgdGV4dE5v
ZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQg
bm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiAiKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQo
dGV4dE5vZGUpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZSA9IG5hbWVkRmxv
dy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZSk7CisgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdFRleHROb2RlICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNo
b3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9k
ZS5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgc2hvdWxkIGhhdmUgMSBl
bGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGgpOworICAgICAgICAgICAg
aWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2Vy
dChyZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgc2hvdWxkIGJlIHNlY29uZCBy
ZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgwKS5pZCk7CisKKyAgICAg
ICAgICAgIC8vIEFkZCBhbm90aGVyIHRleHQgbm9kZSB0aGF0IHdpbGwgb3ZlcmZsb3cgdGhlIHJl
Z2lvbjIuCisgICAgICAgICAgICB2YXIgdGV4dE5vZGUyID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIlRleHQgbm9kZTIuIik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
YXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2RlMik7CisgICAgICAgICAgICB2YXIgcmVnaW9u
TGlzdFRleHROb2RlMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9k
ZTIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIgIT0gbnVsbCwgIlJl
Z2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMiBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAg
ICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3Qg
Zm9yIHRleHQgbm9kZSAyIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0
VGV4dE5vZGUyLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMi5s
ZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLml0
ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lv
biBmb3IgdGV4dCBub2RlIDIgc2hvdWxkIGJlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdp
b25MaXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhl
ciB0ZXh0IG5vZGUgdGhhdCBpcyBpbiB0aGUgb3ZlcmZsb3cgb2YgdGhlIGxhc3QgcmVnaW9uLgor
ICAgICAgICAgICAgdmFyIHRleHROb2RlMyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0
IG5vZGUzLiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUi
KS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTMpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0
Tm9kZTMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUzKTsKKyAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzICE9IG51bGwsICJSZWdpb24gbGlz
dCBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0
IG5vZGUgMyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2Rl
My5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoID4g
MCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDApID09
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHRl
eHQgbm9kZSAzIHNob3VsZCBiZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRl
eHROb2RlMy5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIgcmVnaW9u
IHRvIHRha2UgdGhlIG92ZXJmbG93aW5nIGVsZW1lbnRzIGZyb20gc2Vjb25kIHJlZ2lvbi4KKyAg
ICAgICAgICAgIHZhciByZWdpb24zID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgICAgICAgICByZWdpb24zLmlkID0gInJlZ2lvbjMiOworICAgICAgICAgICAgcmVnaW9uMy5j
bGFzc05hbWUgPSAicmVnaW9uQm94IjsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQocmVnaW9uMyk7CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUyID0g
bmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlKTsKKyAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUgPT0gcmVnaW9uTGlzdFRleHROb2RlMiwgIlJlZ2lv
biBsaXN0cyBmb3IgdGV4dCBub2RlIHNob3VsZCByZWZlcmVuY2UgdGhlIHNhbWUgb2JqZWN0Iik7
CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPT0gMiwgIlJl
Z2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgc2hvdWxkIGhhdmUgMiBlbGVtZW50LCBoYXMgIiArIHJl
Z2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4
dE5vZGUyLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0
Tm9kZTIuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmly
c3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgc2hvdWxkIGJlIHRoZSBzZWNvbmQgcmVnaW9uIGZyb20g
ZmxvdywgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKS5pZCk7CisgICAgICAg
ICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPiAxKQorICAgICAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZ2lvbjMiKSwgIlNlY29uZCByZWdpb24gZm9yIHRleHQgbm9kZSBzaG91bGQgYmUg
dGhlIHRoaXJkIHJlZ2lvbiBmcm9tIGZsb3csIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUy
Lml0ZW0oMSkuaWQpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMzIgPSBu
YW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUzKTsKKyAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzID09IHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLCAiUmVn
aW9uIGxpc3RzIGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgcmVmZXJlbmNlIHRoZSBzYW1lIG9iamVj
dCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCA9PSAx
LCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAzIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFz
ICIgKyByZWdpb25MaXN0VGV4dE5vZGUzLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9u
TGlzdFRleHROb2RlMzIubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9u
TGlzdFRleHROb2RlMzIuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9u
MyIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgYmUgdGhlIHRoaXJkIHJl
Z2lvbiBmcm9tIGZsb3csIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUzMi5pdGVtKDApLmlk
KTsKKworICAgICAgICAgICAgdmFyIG5hbWVkRmxvdzIgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93
QnlOYW1lKCJmbG93MiIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMSA9IG5hbWVkRmxv
dzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAxIikp
OworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMSAhPSBudWxsLCAiUmVnaW9uIGxpc3Qg
Zm9yIHAxIG5vZGUgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVn
aW9uTGlzdFAxLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAxIG5vZGUgc2hvdWxkIGhh
dmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RQMS5sZW5ndGgpOworICAgICAgICAgICAg
aWYgKHJlZ2lvbkxpc3RQMS5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdp
b25MaXN0UDEuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLCAi
Rmlyc3QgcmVnaW9uIGZvciBwMSBub2RlIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVn
aW9uTGlzdFAxLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICB2YXIgcDIgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJwIik7CisgICAgICAgICAgICBwMi5pZCA9ICJwMiI7CisgICAgICAgICAg
ICBwMi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFy
YWdyYXBoIHAyLiIpKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRp
Y2xlMiIpLmFwcGVuZENoaWxkKHAyKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDIgPSBu
YW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dChyZWdpb25MaXN0UDIgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBwMiBub2RlIHNob3VsZCBu
b3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMi5sZW5ndGggPT0g
MSwgIlJlZ2lvbiBsaXN0IGZvciBwMiBub2RlIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIg
KyByZWdpb25MaXN0UDIubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0UDIubGVu
Z3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyLml0ZW0oMCkgPT0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjQiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDIg
c2hvdWxkIGJlIHJlZ2lvbjQsIGl0IGlzICIgKyByZWdpb25MaXN0UDIuaXRlbSgwKS5pZCk7Cisg
CisgICAgICAgICAgICAvLyBhZGQgYW5vdGhlciBlbGVtZW50IHAsIGluIHRoZSBvdmVyZmxvdyBw
YXJ0IG9mIHRoZSByZWdpb240CisgICAgICAgICAgICB2YXIgcDMgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJwIik7CisgICAgICAgICAgICBwMy5pZCA9ICJwMyI7CisgICAgICAgICAgICBwMy5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBo
IHAzLiIpKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIp
LmFwcGVuZENoaWxkKHAzKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDMgPSBuYW1lZEZs
b3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHAzKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdp
b25MaXN0UDMgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBwMyBub2RlIHNob3VsZCBub3QgYmUg
bnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMy5sZW5ndGggPT0gMSwgIlJl
Z2lvbiBsaXN0IGZvciBwMyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlz
dFAzLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFAzLmxlbmd0aCA+IDApCisg
ICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMy5pdGVtKDApID09IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZWdpb240IiksICJGaXJzdCByZWdpb24gZm9yIHAzIHNob3VsZCBiZSBy
ZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAzLml0ZW0oMCkuaWQpOworCisgICAgICAgICAg
ICAvLyBhZGQgYW5vdGhlciByZWdpb24gdG8gZmxvdzIsIHAyIGFuZCBwMyBnbyB0byByZWdpb241
CisgICAgICAgICAgICB2YXIgcmVnaW9uNSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OworICAgICAgICAgICAgcmVnaW9uNS5pZCA9ICJyZWdpb241IjsKKyAgICAgICAgICAgIHJlZ2lv
bjUuY2xhc3NOYW1lID0gInJlZ2lvbkJveCI7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKHJlZ2lvbjUpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAyMiA9IG5h
bWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocDIpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RQMiA9PSByZWdpb25MaXN0UDIyLCAiUmVnaW9uIGxpc3RzIGZvciBwMiBzaG91
bGQgcmVmZXIgdGhlIHNhbWUgcmVnaW9uIGxpc3QiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdp
b25MaXN0UDIyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAyIHNob3VsZCBoYXZlIDEg
ZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDIubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChy
ZWdpb25MaXN0UDIyLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxp
c3RQMjIuaXRlbSgwKSA9PSByZWdpb241LCAiRmlyc3QgcmVnaW9uIGZvciBwMiBzaG91bGQgYmUg
cmVnaW9uNSwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMi5pdGVtKDApLmlkKTsKKworICAgICAgICAg
ICAgaGlkZVJlZ2lvbnMoKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNv
bnRlbnQtbm9kZS1ob3Jpei10Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LXRiLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGRjMjAxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1o
b3Jpei10Yi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OCBAQAorVGVzdCBmb3IgNzc3NDY6IFtD
U1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlCisK
K09uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mIFBBU1MgYmVsb3cuCisKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKKworCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dl
dC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei10Yi5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei10Yi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzMGFhNWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhv
cml6LXRiLmh0bWwKQEAgLTAsMCArMSwxNzEgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2Vz
L3JlZ2lvbi1zdHlsZS5jc3MiPgorICAgICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2hlbHBl
ci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGJvZHkgeyBmb250
LWZhbWlseTogbW9ub3NwYWNlOyB9CisgICAgICAgICAgICAucmVnaW9uQm94IHsgd2lkdGg6IDI1
MHB4OyBoZWlnaHQ6IDUwcHg7IH0gCisgICAgICAgICAgICAjYXJ0aWNsZSB7IC13ZWJraXQtZmxv
dy1pbnRvOiBmbG93OyB9CisgICAgICAgICAgICAjcmVnaW9uLCAjcmVnaW9uMiwgI3JlZ2lvbjMg
eyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgfQorCisgICAgICAgICAgICAjYXJ0aWNsZTIgeyAt
d2Via2l0LWZsb3ctaW50bzogZmxvdzI7IH0KKyAgICAgICAgICAgICNyZWdpb240LCAjcmVnaW9u
NSB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93MjsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwv
aGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzQ2Ij4KKyAgICAgICAgNzc3NDY6IFtD
U1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlPC9h
PjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2Yg
UEFTUyBiZWxvdy48L3A+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgICAg
ICA8IS0tIHNvbWUgdGVzdHMgd2l0aCBpbmxpbmUgZWxlbWVudHMgLS0+CisgICAgICAgIDxkaXYg
aWQ9ImFydGljbGUiPgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlIj5UZXh0IGluc2lk
ZSBzcGFuLjwvc3Bhbj4KKyAgICAgICAgICAgIFRleHQgb3V0c2lkZSBzcGFuLiBUZXh0IG91dHNp
ZGUgc3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4uCisgICAgICAgICAgICA8c3BhbiBpZD0ic3Bhbk5v
ZGUyIj5UZXh0IGluc2lkZSBzcGFuMi48L3NwYW4+CisgICAgICAgICAgICA8c3BhbiBpZD0ic3Bh
bk5vZGUzIj5UZXh0IGluc2lkZSBzcGFuMzwvc3Bhbj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9InJlZ2lvbkJveCI+PC9kaXY+CisgICAgICAgIDxkaXYg
aWQ9InJlZ2lvbjIiIGNsYXNzPSJyZWdpb25Cb3giPjwvZGl2PgorCisgICAgICAgIDwhLS0gc29t
ZSB0ZXN0cyB3aXRoIGJsb2NrIGVsZW1lbnRzIC0tPgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xl
MiI+CisgICAgICAgICAgICA8cCBpZD0icDEiPlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMS48L3A+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb240IiBjbGFzcz0icmVnaW9u
Qm94Ij48L3JlZ2lvbj4KKworICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICB3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgICAgICBmdW5jdGlvbiBoaWRlUmVn
aW9ucygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImFydGljbGUiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuc3R5bGUudmlzaWJpbGl0
eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWdpb24iKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRl
biI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMiKS5z
dHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlZ2lvbjQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjUiKS5zdHlsZS52aXNp
YmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBuYW1l
ZEZsb3cgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93Iik7CisKKyAgICAgICAg
ICAgIHZhciByZWdpb25MaXN0QXJ0aWNsZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50
Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpKTsKKyAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0QXJ0aWNsZSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIGFydGljbGUg
c2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGlj
bGUubGVuZ3RoID09IDIsICJSZWdpb24gbGlzdCBmb3IgYXJ0aWNsZSBzaG91bGQgaGF2ZSAyIGVs
ZW1lbnRzLCBoYXMgIiArIHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCk7CisgICAgICAgICAgICBp
ZiAocmVnaW9uTGlzdEFydGljbGUubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdEFydGljbGUuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVn
aW9uIiksICJGaXJzdCBlbGVtZW50IGluIHJlZ2lvbiBsaXN0IGZvciBhcnRpY2xlIHNob3VsZCBi
ZSByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApLmlkKTsKKyAgICAg
ICAgICAgIGlmIChyZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGggPiAxKQorICAgICAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDEpID09IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZWdpb24yIiksICJTZWNvbmQgZWxlbWVudCBpbiByZWdpb24gbGlzdCBmb3IgYXJ0aWNs
ZSBzaG91bGQgYmUgcmVnaW9uMiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSku
aWQpOworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic3Bhbk5vZGUiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbiA9IG5hbWVkRmxv
dy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZSk7CisgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdFNwYW4gIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuIHNob3VsZCBub3Qg
YmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuLmxlbmd0aCA9PSAx
LCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4gc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJl
Z2lvbkxpc3RTcGFuLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFNwYW4ubGVu
Z3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4uaXRlbSgwKSA9
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIiksICJGaXJzdCByZWdpb24gZm9yIHNw
YW4gc2hvdWxkIGJlIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RTcGFuLml0ZW0oMCkuaWQp
OworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InNwYW5Ob2RlMiIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RTcGFuMiA9IG5hbWVkRmxv
dy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZTIpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RTcGFuMiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4yIHNob3VsZCBu
b3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMi5sZW5ndGgg
PT0gMiwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMiBzaG91bGQgaGF2ZSAyIGVsZW1lbnRzLCBoYXMg
IiArIHJlZ2lvbkxpc3RTcGFuMi5sZW5ndGgpOworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlMyIpOworICAgICAgICAgICAgdmFy
IHJlZ2lvbkxpc3RTcGFuMyA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFu
Tm9kZTMpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMyAhPSBudWxsLCAiUmVn
aW9uIGxpc3QgZm9yIHNwYW4zIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RTcGFuMy5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMyBz
aG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFNwYW4zLmxlbmd0aCk7Cisg
ICAgICAgICAgICBpZiAocmVnaW9uTGlzdFNwYW4zLmxlbmd0aCA+IDApCisgICAgICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMy5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHNwYW4gbm9kZSAzIHNob3VsZCBiZSB0
aGUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RTcGFuMy5pdGVtKDApLmlkKTsK
KworICAgICAgICAgICAgdmFyIHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRl
eHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0
IG5vZGUuIFRleHQgbm9kZS4gIik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2RlKTsKKyAgICAgICAgICAgIHZhciByZWdp
b25MaXN0VGV4dE5vZGUgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5v
ZGUpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZSAhPSBudWxsLCAiUmVn
aW9uIGxpc3QgZm9yIHRleHQgbm9kZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3Ig
dGV4dCBub2RlIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5v
ZGUubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUubGVuZ3RoID4g
MCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlLml0ZW0oMCkgPT0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4
dCBub2RlIHNob3VsZCBiZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHRO
b2RlLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhlciB0ZXh0IG5vZGUg
dGhhdCB3aWxsIG92ZXJmbG93IHRoZSByZWdpb24yLgorICAgICAgICAgICAgdmFyIHRleHROb2Rl
MiA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUyLiIpOworICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTIp
OworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVn
aW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUyKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0VGV4dE5vZGUyICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDIgc2hvdWxk
IG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5s
ZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMiBzaG91bGQgaGF2ZSAxIGVs
ZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGgpOworICAgICAgICAgICAg
aWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSAyIHNob3VsZCBiZSBzZWNv
bmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApLmlkKTsKKwor
ICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIgdGV4dCBub2RlIHRoYXQgaXMgaW4gdGhlIG92ZXJm
bG93IG9mIHRoZSBsYXN0IHJlZ2lvbi4KKyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZTMgPSBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlMy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUzKTsKKyAgICAg
ICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUzID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlKHRleHROb2RlMyk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHRO
b2RlMyAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAzIHNob3VsZCBub3QgYmUg
bnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoID09
IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBo
YXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdp
b25MaXN0VGV4dE5vZGUzLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RUZXh0Tm9kZTMuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9u
MiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgYmUgc2Vjb25kIHJlZ2lv
biwgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTMuaXRlbSgwKS5pZCk7CisKKyAgICAgICAg
ICAgIC8vIEFkZCBhbm90aGVyIHJlZ2lvbiB0byB0YWtlIHRoZSBvdmVyZmxvd2luZyBlbGVtZW50
cyBmcm9tIHNlY29uZCByZWdpb24uCisgICAgICAgICAgICB2YXIgcmVnaW9uMyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgcmVnaW9uMy5pZCA9ICJyZWdpb24z
IjsKKyAgICAgICAgICAgIHJlZ2lvbjMuY2xhc3NOYW1lID0gInJlZ2lvbkJveCI7CisgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlZ2lvbjMpOworCisgICAgICAgICAgICB2
YXIgcmVnaW9uTGlzdFRleHROb2RlMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9k
ZSh0ZXh0Tm9kZSk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlID09IHJl
Z2lvbkxpc3RUZXh0Tm9kZTIsICJSZWdpb24gbGlzdHMgZm9yIHRleHQgbm9kZSBzaG91bGQgcmVm
ZXJlbmNlIHRoZSBzYW1lIG9iamVjdCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RU
ZXh0Tm9kZTIubGVuZ3RoID09IDIsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBo
YXZlIDIgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCk7CisgICAg
ICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPiAwKQorICAgICAgICAgICAg
ICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIHNob3VsZCBi
ZSB0aGUgc2Vjb25kIHJlZ2lvbiBmcm9tIGZsb3csIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5v
ZGUyLml0ZW0oMCkuaWQpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVu
Z3RoID4gMSkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5pdGVt
KDEpID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24zIiksICJTZWNvbmQgcmVnaW9u
IGZvciB0ZXh0IG5vZGUgc2hvdWxkIGJlIHRoZSB0aGlyZCByZWdpb24gZnJvbSBmbG93LCBpdCBp
cyAiICsgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDEpLmlkKTsKKworICAgICAgICAgICAgdmFy
IHJlZ2lvbkxpc3RUZXh0Tm9kZTMyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
KHRleHROb2RlMyk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMyA9PSBy
ZWdpb25MaXN0VGV4dE5vZGUzMiwgIlJlZ2lvbiBsaXN0cyBmb3IgdGV4dCBub2RlIDMgc2hvdWxk
IHJlZmVyZW5jZSB0aGUgc2FtZSBvYmplY3QiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0VGV4dE5vZGUzMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMyBz
aG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgp
OworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCA+IDApCisgICAg
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLml0ZW0oMCkgPT0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2Rl
IDMgc2hvdWxkIGJlIHRoZSB0aGlyZCByZWdpb24gZnJvbSBmbG93LCBpdCBpcyAiICsgcmVnaW9u
TGlzdFRleHROb2RlMzIuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cy
ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdzIiKTsKKyAgICAgICAgICAgIHZh
ciByZWdpb25MaXN0UDEgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJwMSIpKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
UDEgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBwMSBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIp
OworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMS5sZW5ndGggPT0gMSwgIlJlZ2lvbiBs
aXN0IGZvciBwMSBub2RlIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0
UDEubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0UDEubGVuZ3RoID4gMCkKKyAg
ICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAxLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlZ2lvbjQiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDEgbm9kZSBzaG91bGQg
YmUgcmVnaW9uNCwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMS5pdGVtKDApLmlkKTsKKworICAgICAg
ICAgICAgdmFyIHAyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAg
cDIuaWQgPSAicDIiOworICAgICAgICAgICAgcDIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMi4iKSk7CisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5hcHBlbmRDaGlsZChwMik7CisgICAgICAg
ICAgICB2YXIgcmVnaW9uTGlzdFAyID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9k
ZShwMik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyICE9IG51bGwsICJSZWdpb24g
bGlzdCBmb3IgcDIgbm9kZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2Vy
dChyZWdpb25MaXN0UDIubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgcDIgbm9kZSBzaG91
bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFAyLmxlbmd0aCk7CisgICAgICAg
ICAgICBpZiAocmVnaW9uTGlzdFAyLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RQMi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240
IiksICJGaXJzdCByZWdpb24gZm9yIHAyIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVn
aW9uTGlzdFAyLml0ZW0oMCkuaWQpOworIAorICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIgZWxl
bWVudCBwLCBpbiB0aGUgb3ZlcmZsb3cgcGFydCBvZiB0aGUgcmVnaW9uNAorICAgICAgICAgICAg
dmFyIHAzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAgcDMuaWQg
PSAicDMiOworICAgICAgICAgICAgcDMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMy4iKSk7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5hcHBlbmRDaGlsZChwMyk7CisgICAgICAgICAgICB2
YXIgcmVnaW9uTGlzdFAzID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMyk7
CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAzICE9IG51bGwsICJSZWdpb24gbGlzdCBm
b3IgcDMgbm9kZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdp
b25MaXN0UDMubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgcDMgc2hvdWxkIGhhdmUgMSBl
bGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RQMy5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJl
Z2lvbkxpc3RQMy5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
UDMuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLCAiRmlyc3Qg
cmVnaW9uIGZvciBwMyBzaG91bGQgYmUgcmVnaW9uNCwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMy5p
dGVtKDApLmlkKTsKKworICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIgcmVnaW9uIHRvIGZsb3cy
LCBwMiBhbmQgcDMgZ28gdG8gcmVnaW9uNQorICAgICAgICAgICAgdmFyIHJlZ2lvbjUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJlZ2lvbjUuaWQgPSAicmVn
aW9uNSI7CisgICAgICAgICAgICByZWdpb241LmNsYXNzTmFtZSA9ICJyZWdpb25Cb3giOworICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb241KTsKKworICAgICAgICAg
ICAgdmFyIHJlZ2lvbkxpc3RQMjIgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
KHAyKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIgPT0gcmVnaW9uTGlzdFAyMiwg
IlJlZ2lvbiBsaXN0cyBmb3IgcDIgc2hvdWxkIHJlZmVyIHRoZSBzYW1lIHJlZ2lvbiBsaXN0Iik7
CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBs
aXN0IGZvciBwMiBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFAyLmxl
bmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFAyMi5sZW5ndGggPiAwKQorICAgICAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIyLml0ZW0oMCkgPT0gcmVnaW9uNSwgIkZpcnN0
IHJlZ2lvbiBmb3IgcDIgc2hvdWxkIGJlIHJlZ2lvbjUsIGl0IGlzICIgKyByZWdpb25MaXN0UDIu
aXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIGhpZGVSZWdpb25zKCk7CisgICAgICAgIDwvc2Ny
aXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUt
dmVydC1sci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NWRkYzIwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQt
cmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1sci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
OCBAQAorVGVzdCBmb3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6Omdl
dFJlZ2lvbnNCeUNvbnRlbnROb2RlCisKK09uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgc2Vy
aWVzIG9mIFBBU1MgYmVsb3cuCisKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKKworCisKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1u
b2RlLXZlcnQtbHIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDM5
NDRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdp
b25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLmh0bWwKQEAgLTAsMCArMSwxNzIgQEAKKzwhZG9j
dHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0icmVzb3VyY2VzL3JlZ2lvbi1zdHlsZS5jc3MiPgorICAgICAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzdHlsZT4KKyAg
ICAgICAgICAgIGh0bWwgeyAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7IH0KKyAg
ICAgICAgICAgIGJvZHkgeyBmb250LWZhbWlseTogbW9ub3NwYWNlOyB9CisgICAgICAgICAgICAu
cmVnaW9uQm94IHsgIGhlaWdodDogMjUwcHg7IHdpZHRoOiA1MHB4OyB9CisKKyAgICAgICAgICAg
ICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7IH0KKyAgICAgICAgICAgICNyZWdp
b24sICNyZWdpb24yLCAjcmVnaW9uMyB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB9CisKKyAg
ICAgICAgICAgICNhcnRpY2xlMiB7IC13ZWJraXQtZmxvdy1pbnRvOiBmbG93MjsgfQorICAgICAg
ICAgICAgI3JlZ2lvbjQsICNyZWdpb241IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOyB9Cisg
ICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlk
PSJjb250YWluZXJNZXNzYWdlIj4KKyAgICAgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzc0NiI+CisgICAgICAgICAg
ICA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29u
dGVudE5vZGU8L2E+PC9wPgorICAgICAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBz
ZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxvdy48L3A+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPCEtLSBzb21lIHRlc3RzIHdpdGggaW5s
aW5lIGVsZW1lbnRzIC0tPgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIj4KKyAgICAgICAgICAg
IDxzcGFuIGlkPSJzcGFuTm9kZSI+VGV4dCBpbnNpZGUgc3Bhbi48L3NwYW4+CisgICAgICAgICAg
ICBUZXh0IG91dHNpZGUgc3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4uIFRleHQgb3V0c2lkZSBzcGFu
LgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlMiI+VGV4dCBpbnNpZGUgc3BhbjIuIFRl
eHQuPC9zcGFuPgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlMyI+VGV4dCBpbnNpZGUg
c3BhbjM8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24iIGNs
YXNzPSJyZWdpb25Cb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24yIiBjbGFzcz0i
cmVnaW9uQm94Ij48L2Rpdj4KKworICAgICAgICA8IS0tIHNvbWUgdGVzdHMgd2l0aCBibG9jayBl
bGVtZW50cyAtLT4KKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZTIiPgorICAgICAgICAgICAgPHAg
aWQ9InAxIj5UZXh0IGluc2lkZSBwYXJhZ3JhcGggcDEuPC9wPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGRpdiBpZD0icmVnaW9uNCIgY2xhc3M9InJlZ2lvbkJveCI+PC9yZWdpb24+CisgICAg
ICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5
TmFtZSgiZmxvdyIpOworCisgICAgICAgICAgICBmdW5jdGlvbiBoaWRlUmVnaW9ucygpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGlj
bGUiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4i
OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKS5zdHls
ZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZ2lvbjIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMiKS5zdHlsZS52aXNpYmls
aXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbjQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjUiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhp
ZGRlbiI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0QXJ0aWNs
ZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiYXJ0aWNsZSIpKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0QXJ0aWNsZSAh
PSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIGFydGljbGUgc2hvdWxkIG5vdCBiZSBudWxsIik7Cisg
ICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUubGVuZ3RoID09IDIsICJSZWdpb24g
bGlzdCBmb3IgYXJ0aWNsZSBzaG91bGQgaGF2ZSAyIGVsZW1lbnRzLCBoYXMgIiArIHJlZ2lvbkxp
c3RBcnRpY2xlLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdEFydGljbGUubGVu
Z3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUuaXRlbSgw
KSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIiksICJGaXJzdCBlbGVtZW50IGlu
IHJlZ2lvbiBsaXN0IGZvciBhcnRpY2xlIHNob3VsZCBiZSByZWdpb24sIGl0IGlzICIgKyByZWdp
b25MaXN0QXJ0aWNsZS5pdGVtKDApLmlkKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0QXJ0
aWNsZS5sZW5ndGggPiAxKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0QXJ0aWNs
ZS5pdGVtKDEpID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJTZWNvbmQg
ZWxlbWVudCBpbiByZWdpb24gbGlzdCBmb3IgYXJ0aWNsZSBzaG91bGQgYmUgcmVnaW9uMiwgaXQg
aXMgIiArIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSkuaWQpOworCisgICAgICAgICAgICB2YXIg
c3Bhbk5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUiKTsKKyAgICAgICAg
ICAgIHZhciByZWdpb25MaXN0U3BhbiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9k
ZShzcGFuTm9kZSk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4gIT0gbnVsbCwg
IlJlZ2lvbiBsaXN0IGZvciBzcGFuIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAg
YXNzZXJ0KHJlZ2lvbkxpc3RTcGFuLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4g
c2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RTcGFuLmxlbmd0aCk7Cisg
ICAgICAgICAgICBpZiAocmVnaW9uTGlzdFNwYW4ubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdFNwYW4uaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVnaW9uIiksICJGaXJzdCByZWdpb24gZm9yIHNwYW4gc2hvdWxkIGJlIHJlZ2lvbiwgaXQg
aXMgIiArIHJlZ2lvbkxpc3RTcGFuLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICB2YXIgc3Bh
bk5vZGUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlMiIpOworICAgICAgICAg
ICAgdmFyIHJlZ2lvbkxpc3RTcGFuMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9k
ZShzcGFuTm9kZTIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMiAhPSBudWxs
LCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4yIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMi5sZW5ndGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZvciBz
cGFuMiBzaG91bGQgaGF2ZSAyIGVsZW1lbnRzLCBoYXMgIiArIHJlZ2lvbkxpc3RTcGFuMi5sZW5n
dGgpOworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInNwYW5Ob2RlMyIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RTcGFuMyA9IG5hbWVk
Rmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZTMpOworICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RTcGFuMyAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4zIHNob3Vs
ZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMy5sZW5n
dGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhh
cyAiICsgcmVnaW9uTGlzdFNwYW4zLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlz
dFNwYW4zLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFu
My5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCBy
ZWdpb24gZm9yIHNwYW4gbm9kZSAzIHNob3VsZCBiZSB0aGUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMg
IiArIHJlZ2lvbkxpc3RTcGFuMy5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgdmFyIHRleHRO
b2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0
IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gIik7Cisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxk
KHRleHROb2RlKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUgPSBuYW1lZEZs
b3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RUZXh0Tm9kZSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSBz
aG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5v
ZGUubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBoYXZlIDEg
ZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUubGVuZ3RoKTsKKyAgICAgICAgICAg
IGlmIChyZWdpb25MaXN0VGV4dE5vZGUubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFRleHROb2RlLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIHNob3VsZCBiZSBzZWNvbmQg
cmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlLml0ZW0oMCkuaWQpOworCisgICAg
ICAgICAgICAvLyBBZGQgYW5vdGhlciB0ZXh0IG5vZGUgdGhhdCB3aWxsIG92ZXJmbG93IHRoZSBy
ZWdpb24yLgorICAgICAgICAgICAgdmFyIHRleHROb2RlMiA9IGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJUZXh0IG5vZGUyLiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTIpOworICAgICAgICAgICAgdmFyIHJlZ2lv
bkxpc3RUZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5v
ZGUyKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyICE9IG51bGwsICJS
ZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDIgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAg
ICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0
IGZvciB0ZXh0IG5vZGUgMiBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlz
dFRleHROb2RlMi5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTIu
bGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5p
dGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdp
b24gZm9yIHRleHQgbm9kZSAyIHNob3VsZCBiZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVn
aW9uTGlzdFRleHROb2RlMi5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgLy8gQWRkIGFub3Ro
ZXIgdGV4dCBub2RlIHRoYXQgaXMgaW4gdGhlIG92ZXJmbG93IG9mIHRoZSBsYXN0IHJlZ2lvbi4K
KyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZTMgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4
dCBub2RlMy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xl
IikuYXBwZW5kQ2hpbGQodGV4dE5vZGUzKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4
dE5vZGUzID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlMyk7Cisg
ICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMyAhPSBudWxsLCAiUmVnaW9uIGxp
c3QgZm9yIHRleHQgbm9kZSAzIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4
dCBub2RlIDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9k
ZTMubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUzLmxlbmd0aCA+
IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMuaXRlbSgwKSA9
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0
ZXh0IG5vZGUgMyBzaG91bGQgYmUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RU
ZXh0Tm9kZTMuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHJlZ2lv
biB0byB0YWtlIHRoZSBvdmVyZmxvd2luZyBlbGVtZW50cyBmcm9tIHNlY29uZCByZWdpb24uCisg
ICAgICAgICAgICB2YXIgcmVnaW9uMyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgICAgICAgICAgcmVnaW9uMy5pZCA9ICJyZWdpb24zIjsKKyAgICAgICAgICAgIHJlZ2lvbjMu
Y2xhc3NOYW1lID0gInJlZ2lvbkJveCI7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKHJlZ2lvbjMpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMiA9
IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZSk7CisgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlID09IHJlZ2lvbkxpc3RUZXh0Tm9kZTIsICJSZWdp
b24gbGlzdHMgZm9yIHRleHQgbm9kZSBzaG91bGQgcmVmZXJlbmNlIHRoZSBzYW1lIG9iamVjdCIp
OworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoID09IDIsICJS
ZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBoYXZlIDIgZWxlbWVudCwgaGFzICIgKyBy
ZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRl
eHROb2RlMi5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4
dE5vZGUyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZp
cnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIHNob3VsZCBiZSB0aGUgc2Vjb25kIHJlZ2lvbiBmcm9t
IGZsb3csIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQpOworICAgICAg
ICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoID4gMSkKKyAgICAgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDEpID09IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb24zIiksICJTZWNvbmQgcmVnaW9uIGZvciB0ZXh0IG5vZGUgc2hvdWxkIGJl
IHRoZSB0aGlyZCByZWdpb24gZnJvbSBmbG93LCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2Rl
Mi5pdGVtKDEpLmlkKTsKKworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTMyID0g
bmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlMyk7CisgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMyA9PSByZWdpb25MaXN0VGV4dE5vZGUzMiwgIlJl
Z2lvbiBsaXN0cyBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIHJlZmVyZW5jZSB0aGUgc2FtZSBvYmpl
Y3QiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzMi5sZW5ndGggPT0g
MSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhh
cyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lv
bkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RUZXh0Tm9kZTMyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lv
bjMiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIGJlIHRoZSB0aGlyZCBy
ZWdpb24gZnJvbSBmbG93LCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMzIuaXRlbSgwKS5p
ZCk7CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cyID0gZG9jdW1lbnQud2Via2l0R2V0Rmxv
d0J5TmFtZSgiZmxvdzIiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDEgPSBuYW1lZEZs
b3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMSIp
KTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDEgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0
IGZvciBwMSBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJl
Z2lvbkxpc3RQMS5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMSBub2RlIHNob3VsZCBo
YXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDEubGVuZ3RoKTsKKyAgICAgICAgICAg
IGlmIChyZWdpb25MaXN0UDEubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVn
aW9uTGlzdFAxLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjQiKSwg
IkZpcnN0IHJlZ2lvbiBmb3IgcDEgbm9kZSBzaG91bGQgYmUgcmVnaW9uNCwgaXQgaXMgIiArIHJl
Z2lvbkxpc3RQMS5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgdmFyIHAyID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAgcDIuaWQgPSAicDIiOworICAgICAgICAg
ICAgcDIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgaW5zaWRlIHBh
cmFncmFwaCBwMi4iKSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0
aWNsZTIiKS5hcHBlbmRDaGlsZChwMik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAyID0g
bmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMik7CisgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFAyICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgcDIgbm9kZSBzaG91bGQg
bm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIubGVuZ3RoID09
IDEsICJSZWdpb24gbGlzdCBmb3IgcDIgbm9kZSBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAi
ICsgcmVnaW9uTGlzdFAyLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFAyLmxl
bmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMi5pdGVtKDApID09
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240IiksICJGaXJzdCByZWdpb24gZm9yIHAy
IHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAyLml0ZW0oMCkuaWQpOwor
IAorICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIgZWxlbWVudCBwLCBpbiB0aGUgb3ZlcmZsb3cg
cGFydCBvZiB0aGUgcmVnaW9uNAorICAgICAgICAgICAgdmFyIHAzID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgicCIpOworICAgICAgICAgICAgcDMuaWQgPSAicDMiOworICAgICAgICAgICAgcDMu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgaW5zaWRlIHBhcmFncmFw
aCBwMy4iKSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIi
KS5hcHBlbmRDaGlsZChwMyk7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAzID0gbmFtZWRG
bG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMyk7CisgICAgICAgICAgICBhc3NlcnQocmVn
aW9uTGlzdFAzICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgcDMgbm9kZSBzaG91bGQgbm90IGJl
IG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDMubGVuZ3RoID09IDEsICJS
ZWdpb24gbGlzdCBmb3IgcDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxp
c3RQMy5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RQMy5sZW5ndGggPiAwKQor
ICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDMuaXRlbSgwKSA9PSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMyBzaG91bGQgYmUg
cmVnaW9uNCwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMy5pdGVtKDApLmlkKTsKKworICAgICAgICAg
ICAgLy8gYWRkIGFub3RoZXIgcmVnaW9uIHRvIGZsb3cyLCBwMiBhbmQgcDMgZ28gdG8gcmVnaW9u
NQorICAgICAgICAgICAgdmFyIHJlZ2lvbjUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICAgICAgICAgIHJlZ2lvbjUuaWQgPSAicmVnaW9uNSI7CisgICAgICAgICAgICByZWdp
b241LmNsYXNzTmFtZSA9ICJyZWdpb25Cb3giOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChyZWdpb241KTsKKworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMjIgPSBu
YW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dChyZWdpb25MaXN0UDIgPT0gcmVnaW9uTGlzdFAyMiwgIlJlZ2lvbiBsaXN0cyBmb3IgcDIgc2hv
dWxkIHJlZmVyIHRoZSBzYW1lIHJlZ2lvbiBsaXN0Iik7CisgICAgICAgICAgICBhc3NlcnQocmVn
aW9uTGlzdFAyMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMiBzaG91bGQgaGF2ZSAx
IGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFAyLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAo
cmVnaW9uTGlzdFAyMi5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0UDIyLml0ZW0oMCkgPT0gcmVnaW9uNSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDIgc2hvdWxkIGJl
IHJlZ2lvbjUsIGl0IGlzICIgKyByZWdpb25MaXN0UDIuaXRlbSgwKS5pZCk7CisKKyAgICAgICAg
ICAgIGhpZGVSZWdpb25zKCk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1j
b250ZW50LW5vZGUtdmVydC1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtcmwtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkZGMyMDEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZl
cnQtcmwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDggQEAKK1Rlc3QgZm9yIDc3NzQ2OiBbQ1NT
UmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZQorCitP
biBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNTIGJlbG93LgorCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQt
cmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1ybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LXJsLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBmNzcwMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1y
bC5odG1sCkBAIC0wLDAgKzEsMTcyIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxo
ZWFkPgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9yZWdp
b24tc3R5bGUuY3NzIj4KKyAgICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9oZWxwZXIuanMi
Pjwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBodG1sIHsgLXdlYmtpdC13
cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyB9CisgICAgICAgICAgICBib2R5IHsgZm9udC1mYW1p
bHk6IG1vbm9zcGFjZTsgfQorICAgICAgICAgICAgLnJlZ2lvbkJveCB7ICBoZWlnaHQ6IDI1MHB4
OyB3aWR0aDogNTBweDsgfQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50
bzogZmxvdzsgfQorICAgICAgICAgICAgI3JlZ2lvbiwgI3JlZ2lvbjIsICNyZWdpb24zIHsgLXdl
YmtpdC1mbG93LWZyb206IGZsb3c7IH0KKworICAgICAgICAgICAgI2FydGljbGUyIHsgLXdlYmtp
dC1mbG93LWludG86IGZsb3cyOyB9CisgICAgICAgICAgICAjcmVnaW9uNCwgI3JlZ2lvbjUgeyAt
d2Via2l0LWZsb3ctZnJvbTogZmxvdzI7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+
CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lck1lc3NhZ2UiPgorICAgICAg
ICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc3NzQ2Ij4KKyAgICAgICAgICAgIDc3NzQ2OiBbQ1NTUmVnaW9uc11JbXBsZW1l
bnQgTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZTwvYT48L3A+CisgICAgICAgICAg
ICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNTIGJlbG93Ljwv
cD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAg
ICAgICA8IS0tIHNvbWUgdGVzdHMgd2l0aCBpbmxpbmUgZWxlbWVudHMgLS0+CisgICAgICAgIDxk
aXYgaWQ9ImFydGljbGUiPgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlIj5UZXh0IGlu
c2lkZSBzcGFuLjwvc3Bhbj4KKyAgICAgICAgICAgIFRleHQgb3V0c2lkZSBzcGFuLiBUZXh0IG91
dHNpZGUgc3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4uCisgICAgICAgICAgICA8c3BhbiBpZD0ic3Bh
bk5vZGUyIj5UZXh0IGluc2lkZSBzcGFuMi4gVGV4dC48L3NwYW4+CisgICAgICAgICAgICA8c3Bh
biBpZD0ic3Bhbk5vZGUzIj5UZXh0IGluc2lkZSBzcGFuMzwvc3Bhbj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9InJlZ2lvbkJveCI+PC9kaXY+CisgICAg
ICAgIDxkaXYgaWQ9InJlZ2lvbjIiIGNsYXNzPSJyZWdpb25Cb3giPjwvZGl2PgorCisgICAgICAg
IDwhLS0gc29tZSB0ZXN0cyB3aXRoIGJsb2NrIGVsZW1lbnRzIC0tPgorICAgICAgICA8ZGl2IGlk
PSJhcnRpY2xlMiI+CisgICAgICAgICAgICA8cCBpZD0icDEiPlRleHQgaW5zaWRlIHBhcmFncmFw
aCBwMS48L3A+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb240IiBjbGFz
cz0icmVnaW9uQm94Ij48L3JlZ2lvbj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHZhciBuYW1lZEZs
b3cgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93Iik7CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGhpZGVSZWdpb25zKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlk
ZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIi
KS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLnN0eWxlLnZp
c2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVnaW9uMyIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLnN0eWxlLnZpc2liaWxpdHkg
PSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVn
aW9uNSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgdmFyIHJlZ2lvbkxpc3RBcnRpY2xlID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikpOworICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgYXJ0
aWNsZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
QXJ0aWNsZS5sZW5ndGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZvciBhcnRpY2xlIHNob3VsZCBoYXZl
IDIgZWxlbWVudHMsIGhhcyAiICsgcmVnaW9uTGlzdEFydGljbGUubGVuZ3RoKTsKKyAgICAgICAg
ICAgIGlmIChyZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZWdpb24iKSwgIkZpcnN0IGVsZW1lbnQgaW4gcmVnaW9uIGxpc3QgZm9yIGFydGljbGUgc2hv
dWxkIGJlIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMCkuaWQpOwor
ICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCA+IDEpCisgICAgICAgICAg
ICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSkgPT0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZ2lvbjIiKSwgIlNlY29uZCBlbGVtZW50IGluIHJlZ2lvbiBsaXN0IGZvciBh
cnRpY2xlIHNob3VsZCBiZSByZWdpb24yLCBpdCBpcyAiICsgcmVnaW9uTGlzdEFydGljbGUuaXRl
bSgxKS5pZCk7CisKKyAgICAgICAgICAgIHZhciBzcGFuTm9kZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzcGFuTm9kZSIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RTcGFuID0gbmFt
ZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlKTsKKyAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0U3BhbiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4gc2hvdWxk
IG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4ubGVuZ3Ro
ID09IDEsICJSZWdpb24gbGlzdCBmb3Igc3BhbiBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAi
ICsgcmVnaW9uTGlzdFNwYW4ubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0U3Bh
bi5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3Bhbi5pdGVt
KDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0IHJlZ2lvbiBm
b3Igc3BhbiBzaG91bGQgYmUgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFNwYW4uaXRlbSgw
KS5pZCk7CisKKyAgICAgICAgICAgIHZhciBzcGFuTm9kZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgic3Bhbk5vZGUyIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4yID0gbmFt
ZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlMik7CisgICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdFNwYW4yICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3Igc3BhbjIgc2hv
dWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4yLmxl
bmd0aCA9PSAyLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4yIHNob3VsZCBoYXZlIDIgZWxlbWVudHMs
IGhhcyAiICsgcmVnaW9uTGlzdFNwYW4yLmxlbmd0aCk7CisKKyAgICAgICAgICAgIHZhciBzcGFu
Tm9kZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUzIik7CisgICAgICAgICAg
ICB2YXIgcmVnaW9uTGlzdFNwYW4zID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
KHNwYW5Ob2RlMyk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4zICE9IG51bGws
ICJSZWdpb24gbGlzdCBmb3Igc3BhbjMgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdFNwYW4zLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHNw
YW4zIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0U3BhbjMubGVuZ3Ro
KTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0U3BhbjMubGVuZ3RoID4gMCkKKyAgICAgICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3Igc3BhbiBub2RlIDMgc2hvdWxk
IGJlIHRoZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFNwYW4zLml0ZW0oMCku
aWQpOworCisgICAgICAgICAgICB2YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUu
IFRleHQgbm9kZS4gVGV4dCBub2RlLiAiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOworICAgICAgICAgICAgdmFy
IHJlZ2lvbkxpc3RUZXh0Tm9kZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0
ZXh0Tm9kZSk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlICE9IG51bGws
ICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAg
ICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0
IGZvciB0ZXh0IG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RU
ZXh0Tm9kZS5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5n
dGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgw
KSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZv
ciB0ZXh0IG5vZGUgc2hvdWxkIGJlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0
VGV4dE5vZGUuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHRleHQg
bm9kZSB0aGF0IHdpbGwgb3ZlcmZsb3cgdGhlIHJlZ2lvbjIuCisgICAgICAgICAgICB2YXIgdGV4
dE5vZGUyID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZTIuIik7CisgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHRO
b2RlMik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMiA9IG5hbWVkRmxvdy5n
ZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTIpOworICAgICAgICAgICAgYXNzZXJ0KHJl
Z2lvbkxpc3RUZXh0Tm9kZTIgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMiBz
aG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5v
ZGUyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAyIHNob3VsZCBoYXZl
IDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCk7CisgICAgICAg
ICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIDIgc2hvdWxkIGJl
IHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQp
OworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhlciB0ZXh0IG5vZGUgdGhhdCBpcyBpbiB0aGUg
b3ZlcmZsb3cgb2YgdGhlIGxhc3QgcmVnaW9uLgorICAgICAgICAgICAgdmFyIHRleHROb2RlMyA9
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUzLiIpOworICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTMpOwor
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9u
c0J5Q29udGVudE5vZGUodGV4dE5vZGUzKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
VGV4dE5vZGUzICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIG5v
dCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMy5sZW5n
dGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgaGF2ZSAxIGVsZW1l
bnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgpOworICAgICAgICAgICAgaWYg
KHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSAzIHNob3VsZCBiZSBzZWNvbmQg
cmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDApLmlkKTsKKworICAg
ICAgICAgICAgLy8gQWRkIGFub3RoZXIgcmVnaW9uIHRvIHRha2UgdGhlIG92ZXJmbG93aW5nIGVs
ZW1lbnRzIGZyb20gc2Vjb25kIHJlZ2lvbi4KKyAgICAgICAgICAgIHZhciByZWdpb24zID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICByZWdpb24zLmlkID0gInJl
Z2lvbjMiOworICAgICAgICAgICAgcmVnaW9uMy5jbGFzc05hbWUgPSAicmVnaW9uQm94IjsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVnaW9uMyk7CisKKyAgICAgICAg
ICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRl
bnROb2RlKHRleHROb2RlKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUg
PT0gcmVnaW9uTGlzdFRleHROb2RlMiwgIlJlZ2lvbiBsaXN0cyBmb3IgdGV4dCBub2RlIHNob3Vs
ZCByZWZlcmVuY2UgdGhlIHNhbWUgb2JqZWN0Iik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9u
TGlzdFRleHROb2RlMi5sZW5ndGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgc2hv
dWxkIGhhdmUgMiBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoKTsK
KyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA+IDApCisgICAgICAg
ICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKSA9PSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgc2hv
dWxkIGJlIHRoZSBzZWNvbmQgcmVnaW9uIGZyb20gZmxvdywgaXQgaXMgIiArIHJlZ2lvbkxpc3RU
ZXh0Tm9kZTIuaXRlbSgwKS5pZCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2Rl
Mi5sZW5ndGggPiAxKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUy
Lml0ZW0oMSkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMiKSwgIlNlY29uZCBy
ZWdpb24gZm9yIHRleHQgbm9kZSBzaG91bGQgYmUgdGhlIHRoaXJkIHJlZ2lvbiBmcm9tIGZsb3cs
IGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkuaWQpOworCisgICAgICAgICAg
ICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMzIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVu
dE5vZGUodGV4dE5vZGUzKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUz
ID09IHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLCAiUmVnaW9uIGxpc3RzIGZvciB0ZXh0IG5vZGUgMyBz
aG91bGQgcmVmZXJlbmNlIHRoZSBzYW1lIG9iamVjdCIpOworICAgICAgICAgICAgYXNzZXJ0KHJl
Z2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9k
ZSAzIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUzLmxl
bmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMzIubGVuZ3RoID4gMCkK
KyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMzIuaXRlbSgwKSA9PSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMyIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0
IG5vZGUgMyBzaG91bGQgYmUgdGhlIHRoaXJkIHJlZ2lvbiBmcm9tIGZsb3csIGl0IGlzICIgKyBy
ZWdpb25MaXN0VGV4dE5vZGUzMi5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgdmFyIG5hbWVk
RmxvdzIgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93MiIpOworICAgICAgICAg
ICAgdmFyIHJlZ2lvbkxpc3RQMSA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAxIikpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RQMSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHAxIG5vZGUgc2hvdWxkIG5vdCBiZSBu
dWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAxLmxlbmd0aCA9PSAxLCAiUmVn
aW9uIGxpc3QgZm9yIHAxIG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lv
bkxpc3RQMS5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RQMS5sZW5ndGggPiAw
KQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDEuaXRlbSgwKSA9PSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMSBub2RlIHNo
b3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAxLml0ZW0oMCkuaWQpOworCisg
ICAgICAgICAgICB2YXIgcDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CisgICAgICAg
ICAgICBwMi5pZCA9ICJwMiI7CisgICAgICAgICAgICBwMi5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAyLiIpKTsKKyAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxkKHAyKTsKKyAg
ICAgICAgICAgIHZhciByZWdpb25MaXN0UDIgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRl
bnROb2RlKHAyKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIgIT0gbnVsbCwgIlJl
Z2lvbiBsaXN0IGZvciBwMiBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAg
YXNzZXJ0KHJlZ2lvbkxpc3RQMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMiBub2Rl
IHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDIubGVuZ3RoKTsKKyAg
ICAgICAgICAgIGlmIChyZWdpb25MaXN0UDIubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdFAyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
Z2lvbjQiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDIgc2hvdWxkIGJlIHJlZ2lvbjQsIGl0IGlzICIg
KyByZWdpb25MaXN0UDIuaXRlbSgwKS5pZCk7CisgCisgICAgICAgICAgICAvLyBhZGQgYW5vdGhl
ciBlbGVtZW50IHAsIGluIHRoZSBvdmVyZmxvdyBwYXJ0IG9mIHRoZSByZWdpb240CisgICAgICAg
ICAgICB2YXIgcDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CisgICAgICAgICAgICBw
My5pZCA9ICJwMyI7CisgICAgICAgICAgICBwMy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAzLiIpKTsKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxkKHAzKTsKKyAgICAgICAg
ICAgIHZhciByZWdpb25MaXN0UDMgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
KHAzKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDMgIT0gbnVsbCwgIlJlZ2lvbiBs
aXN0IGZvciBwMyBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RQMy5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMyBzaG91bGQgaGF2
ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFAzLmxlbmd0aCk7CisgICAgICAgICAgICBp
ZiAocmVnaW9uTGlzdFAzLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RQMy5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240IiksICJG
aXJzdCByZWdpb24gZm9yIHAzIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlz
dFAzLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICAvLyBhZGQgYW5vdGhlciByZWdpb24gdG8g
ZmxvdzIsIHAyIGFuZCBwMyBnbyB0byByZWdpb241CisgICAgICAgICAgICB2YXIgcmVnaW9uNSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgcmVnaW9uNS5pZCA9
ICJyZWdpb241IjsKKyAgICAgICAgICAgIHJlZ2lvbjUuY2xhc3NOYW1lID0gInJlZ2lvbkJveCI7
CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlZ2lvbjUpOworCisgICAg
ICAgICAgICB2YXIgcmVnaW9uTGlzdFAyMiA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVu
dE5vZGUocDIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMiA9PSByZWdpb25MaXN0
UDIyLCAiUmVnaW9uIGxpc3RzIGZvciBwMiBzaG91bGQgcmVmZXIgdGhlIHNhbWUgcmVnaW9uIGxp
c3QiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIyLmxlbmd0aCA9PSAxLCAiUmVn
aW9uIGxpc3QgZm9yIHAyIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0
UDIubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0UDIyLmxlbmd0aCA+IDApCisg
ICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMjIuaXRlbSgwKSA9PSByZWdpb241LCAi
Rmlyc3QgcmVnaW9uIGZvciBwMiBzaG91bGQgYmUgcmVnaW9uNSwgaXQgaXMgIiArIHJlZ2lvbkxp
c3RQMi5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgaGlkZVJlZ2lvbnMoKTsKKyAgICAgICAg
PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUyYTcyMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUuaHRt
bApAQCAtMCwwICsxLDg5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9yZWdpb24tc3R5
bGUuY3NzIj4KKyAgICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9oZWxwZXIuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6IG1v
bm9zcGFjZTsgfQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxv
dzsgfQorICAgICAgICAgICAgLmJvcmRlciB7IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsgfQorICAg
ICAgICAgICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB3aWR0aDogMjUwcHg7
IGhlaWdodDogNTBweDsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDIwMHB4
OyB9CisKKyAgICAgICAgICAgICNhcnRpY2xlMiB7IC13ZWJraXQtZmxvdy1pbnRvOiBmbG93Mjsg
fQorICAgICAgICAgICAgI3JlZ2lvbjIxIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOyB3aWR0
aDogMjUwcHg7IGhlaWdodDogNTBweDsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyMHB4OyB0
b3A6IDMwMHB4O30KKyAgICAgICAgICAgICNyZWdpb24yMiB7IC13ZWJraXQtZmxvdy1mcm9tOiBm
bG93Mjsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVm
dDogMjBweDsgdG9wOiAzNTBweDt9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAg
IDxib2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3NDYiPgorICAgICAgICA3Nzc0NjogW0NTU1JlZ2lvbnNd
SW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGU8L2E+PC9wPgorICAg
ICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNTIGJlbG93
LjwvcD4KKworICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPGRpdiBp
ZD0iYXJ0aWNsZSI+CisgICAgICAgICAgICA8cCBpZD0icDEiPlRleHQgZmxvd24gaW50byByZWdp
b24uPC9wPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0i
Ym9yZGVyIj48L2Rpdj4KKworICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlMiI+CisgICAgICAgICAg
ICA8cCBpZD0icDIiPlRleHQgZmxvd24gaW4gdHdvIHJlZ2lvbnMuIFRleHQgZmxvd24gaW4gdHdv
IHJlZ2lvbnMuIFRleHQgZmxvd24gaW4gdHdvIHJlZ2lvbnMuPC9wPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGRpdiBpZD0icmVnaW9uMjEiIGNsYXNzPSJib3JkZXIiPjwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJyZWdpb24yMiIgY2xhc3M9ImJvcmRlciI+PC9kaXY+CisgICAgICAgIDxzY3Jp
cHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICAg
ICAgdmFyIG5hbWVkRmxvdzEgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93Iik7
CisgICAgICAgICAgICB2YXIgcDFSZWdpb25zSW5GbG93MSA9IG5hbWVkRmxvdzEuZ2V0UmVnaW9u
c0J5Q29udGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAxIikpOworICAgICAgICAg
ICAgdmFyIG5hbWVkRmxvdzIgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93MiIp
OworICAgICAgICAgICAgdmFyIHAyUmVnaW9uc0luRmxvdzIgPSBuYW1lZEZsb3cyLmdldFJlZ2lv
bnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMiIpKTsKKworICAgICAg
ICAgICAgZnVuY3Rpb24gdGVzdEdldFJlZ2lvbnNCeUNvbnRlbnROb2RlMSgpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgdmFyIG5hbWVkRmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZs
b3dCeU5hbWUoImZsb3ciKTsKKyAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0Tm9kZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJwMSIpOworICAgICAgICAgICAgICAgIHZhciByZWdpb25zTGlz
dCA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0YXJnZXROb2RlKTsKKworICAg
ICAgICAgICAgICAgIGFzc2VydChyZWdpb25zTGlzdCA9PSBwMVJlZ2lvbnNJbkZsb3cxLCAiUmVn
aW9uIGxpc3QgZm9yIHAxIGluIGZsb3cxIHNob3VsZCBiZSBhIGxpdmUgb2JqZWN0Iik7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbnNMaXN0Lmxlbmd0aCA9PSAxLCAiVGhlIHJlZ2lvbiBs
aXN0IGNvdW50IHNob3VsZCBiZSAxLCBpdCBpcyAiICsgcmVnaW9uc0xpc3QubGVuZ3RoKTsKKyAg
ICAgICAgICAgICAgICBpZiAocmVnaW9uc0xpc3QubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0KHJlZ2lvbnNMaXN0Lml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlZ2lvbiIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMSBzaG91bGQgYmUgcmVnaW9uLCBpdCBp
cyAiICsgcmVnaW9uc0xpc3QuaXRlbSgwKS5pZCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIHRlc3RHZXRSZWdpb25zQnlDb250ZW50Tm9kZTIoKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIHZhciBuYW1lZEZsb3cgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93
QnlOYW1lKCJmbG93MiIpOworCisgICAgICAgICAgICAgICAgLy8gVGVzdCB0aGF0IHRoZSBwMiBl
bGVtZW50IGlzIGZsb3duIGludG8gMiByZWdpb25zCisgICAgICAgICAgICAgICAgdmFyIHRhcmdl
dE5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDIiKTsKKyAgICAgICAgICAgICAgICB2
YXIgcmVnaW9uTGlzdCA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0YXJnZXRO
b2RlKTsKKworICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0ID09IHAyUmVnaW9uc0lu
RmxvdzIsICJSZWdpb24gbGlzdCBmb3IgcDIgaW4gZmxvdzIgc2hvdWxkIGJlIGEgbGl2ZSBvYmpl
Y3QiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdC5sZW5ndGggPT0gMiwgIlRo
ZSByZWdpb24gbGlzdCBjb3VudCBzaG91bGQgYmUgMiwgaXQgaXMgIiArIHJlZ2lvbkxpc3QubGVu
Z3RoKTsKKyAgICAgICAgICAgICAgICBpZiAocmVnaW9uTGlzdC5sZW5ndGggPiAwKQorICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdC5pdGVtKDApID09IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZWdpb24yMSIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMiBzaG91bGQgYmUgcmVn
aW9uMjEsIGl0IGlzICIgKyByZWdpb25MaXN0Lml0ZW0oMCkuaWQpOworICAgICAgICAgICAgICAg
IGlmIChyZWdpb25MaXN0Lmxlbmd0aCA+IDEpCisgICAgICAgICAgICAgICAgICAgIGFzc2VydChy
ZWdpb25MaXN0Lml0ZW0oMSkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIyIiks
ICJGaXJzdCByZWdpb24gZm9yIHAyIHNob3VsZCBiZSByZWdpb24yMiwgaXQgaXMgIiArIHJlZ2lv
bkxpc3QuaXRlbSgxKS5pZCk7CisKKyAgICAgICAgICAgICAgICAvLyBUZXN0IHRoYXQgcDEgZWxl
bWVudCBpcyBub3QgaW4gZmxvdzIKKyAgICAgICAgICAgICAgICB0YXJnZXROb2RlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInAxIik7CisgICAgICAgICAgICAgICAgcmVnaW9uTGlzdCA9IG5h
bWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0YXJnZXROb2RlKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQocmVnaW9uTGlzdC5sZW5ndGggPT0gMCwgIlRoZSByZWdpb24gbGlzdCBjb3Vu
dCBzaG91bGQgYmUgMCwgaXQgaXMgIiArIHJlZ2lvbkxpc3QubGVuZ3RoKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZnVuY3Rpb24gaGlkZVJlZ2lvbnNBbmRGbG93cygpIHsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLnN0eWxlLnZpc2li
aWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYXJ0aWNsZTIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLnN0eWxlLnZpc2liaWxpdHkgPSAi
aGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9u
MjEiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIyIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4i
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZXN0R2V0UmVnaW9uc0J5Q29udGVudE5v
ZGUxKCk7CisgICAgICAgICAgICB0ZXN0R2V0UmVnaW9uc0J5Q29udGVudE5vZGUyKCk7CisKKyAg
ICAgICAgICAgIGhpZGVSZWdpb25zQW5kRmxvd3MoKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dl
dC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZTItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjYjU2OTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlMi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMiBAQAorVGVzdCBmb3IgNzc3NDY6IFtDU1NSZWdpb25z
XUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlCisKK09uIHN1Y2Nl
c3MsIHlvdSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mIFBBU1MgYmVsb3cuCisKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZTIuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY5YTg5MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5v
ZGUyLmh0bWwKQEAgLTAsMCArMSwxMDIgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3Jl
Z2lvbi1zdHlsZS5jc3MiPgorICAgICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2hlbHBlci5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGJvZHkgeyBmb250LWZh
bWlseTogbW9ub3NwYWNlOyB9CisgICAgICAgICAgICAjcmVnaW9uLCAjcmVnaW9uMiB7IHdpZHRo
OiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAuYXJ0aWNsZSB7IC13ZWJraXQt
Zmxvdy1pbnRvOiBmbG93OyB9CisgICAgICAgICAgICAuYXJ0aWNsZTIgeyAtd2Via2l0LWZsb3ct
aW50bzogZmxvdzI7IH0KKyAgICAgICAgICAgIC5yZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTog
ZmxvdzsgfQorICAgICAgICAgICAgLnJlZ2lvbjIgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7
IH0KKyAgICAgICAgICAgIC5ub1JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBub25lOyB9Cisg
ICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0
IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3
NDYiPgorICAgICAgICA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0
UmVnaW9uc0J5Q29udGVudE5vZGU8L2E+PC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ug
c2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNTIGJlbG93LjwvcD4KKyAgICAgICAgPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImFydGljbGUiIGNsYXNzPSJhcnRpY2xl
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uIj48L2Rpdj4K
KyAgICAgICAgPGRpdiBpZD0icmVnaW9uMiI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICAgICAgdmFyIG5h
bWVkRmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKTsKKworICAgICAg
ICAgICAgLy8gR2V0dGluZyB0aGUgcmVnaW9ucyBmb3IgYSBub24gZXhpc3RhbnQgbm9kZSBzaG91
bGQgcmV0dXJuIG51bGwuCisgICAgICAgICAgICB2YXIgcEVsZW1lbnQ7CisgICAgICAgICAgICB2
YXIgcmVnaW9uTGlzdCA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVu
dCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdCA9PSBudWxsLCAiUmVnaW9uIGxpc3Qg
Zm9yIGEgbm9uLWV4aXN0YW50IG5vZGUgc2hvdWxkIHJldHVybiBudWxsIik7CisKKyAgICAgICAg
ICAgIC8vIEdldHRpbmcgdGhlIHJlZ2lvbnMgZm9yIGFuIGVsZW1lbnQgdGhhdCB3YXMgbm90IGFk
ZGVkIHRvIHRoZSBkb20gc2hvdWxkIHJldHVybiBhbiBlbXB0eSBsaXN0LgorICAgICAgICAgICAg
cEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CisKKyAgICAgICAgICAgIHZh
ciByZWdpb25MaXN0MiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVu
dCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDIgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0
IDIgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDIu
bGVuZ3RoID09IDAsICJSZWdpb24gbGlzdCAyIHNob3VsZCBiZSBlbXB0eSwgaGFzICIgKyByZWdp
b25MaXN0Mi5sZW5ndGggKyAiIGVsZW1lbnRzLiIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3QgIT0gcmVnaW9uTGlzdDIsICJSZWdpb24gbGlzdHMgc2hvdWxkIGJlIGRpZmZlcmVudCIp
OworCisgICAgICAgICAgICAvLyBBZGQgdGhlIGVsZW1lbnQgdG8gdGhlIGRvbSBidXQgbm90IGlu
IHRoZSBmbG93LiBUaGUgcmVnaW9uIGxpc3Qgc2hvdWxkIGJlIGVtcHR5LgorICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwRWxlbWVudCk7CisgICAgICAgICAgICB2YXIgcmVn
aW9uTGlzdDMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1lbnQpOwor
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3QzICE9IG51bGwsICJSZWdpb24gbGlzdCAzIHNo
b3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3QzLmxlbmd0
aCA9PSAwLCAiUmVnaW9uIGxpc3QgMyBzaG91bGQgYmUgZW1wdHksIGhhcyAiICsgcmVnaW9uTGlz
dDMubGVuZ3RoICsgIiBlbGVtZW50cy4iKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
MiA9PSByZWdpb25MaXN0MywgIlJlZ2lvbnMgbGlzdCAyIGFuZCAzIHNob3VsZCByZWZlciB0aGUg
c2FtZSBOb2RlTGlzdCBvYmplY3QiKTsKKworICAgICAgICAgICAgLy8gQWRkIHRoZSBzYW1lIGVs
ZW1lbnQgdG8gdGhlIGZsb3cuIFRoZSByZWdpb24gbGlzdCBzaG91bGQgY29udGFpbiBvbmUgcmVn
aW9uLgorICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwRWxlbWVudCk7Cisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxk
KHBFbGVtZW50KTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0NCA9IG5hbWVkRmxvdy5nZXRS
ZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVudCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9u
TGlzdDQgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IDQgZm9yIG5vZGUgaW4gZmxvdyBzaG91bGQgbm90
IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0NC5sZW5ndGggPT0gMSwg
IlJlZ2lvbiBsaXN0IDQgZm9yIG5vZGUgaW4gZmxvdyBzaG91bGQgaGF2ZSAxIHJlZ2lvbiwgaGFz
ICIgKyByZWdpb25MaXN0NC5sZW5ndGggKyAiIGVsZW1lbnRzIik7CisgICAgICAgICAgICBpZiAo
cmVnaW9uTGlzdDQubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlz
dDQuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIiksICJGaXJzdCBl
bGVtZW50IGluIHJlZ2lvbiBsaXN0IDQgc2hvdWxkIGJlIHRoZSBmaXJzdCByZWdpb24sIGl0IGlz
ICIgKyByZWdpb25MaXN0NC5pdGVtKDApLmlkKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0NCA9PSByZWdpb25MaXN0MywgIlJlZ2lvbnMgbGlzdCAzIGFuZCA0IHNob3VsZCByZWZlciB0
aGUgc2FtZSBOb2RlTGlzdCBvYmplY3QiKTsKKworICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBy
ZWdpb24gbm9kZSBhbmQgZ2V0IHRoZSByZWdpb24gbGlzdC4gVGhlIGxpc3Qgc2hvdWxkIGJlIGVt
cHR5LgorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLmNsYXNz
TmFtZSA9ICJub1JlZ2lvbiI7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdDUgPSBuYW1lZEZs
b3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1lbnQpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3Q1ICE9IG51bGwsICJSZWdpb24gbGlzdCA1IHNob3VsZCBub3QgYmUgbnVsbCIp
OworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q1Lmxlbmd0aCA9PSAwLCAiUmVnaW9uIGxp
c3QgNSBzaG91bGQgYmUgZW1wdHksIGhhcyAiICsgcmVnaW9uTGlzdDUubGVuZ3RoICsgIiBlbGVt
ZW50cyIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q1ID09IHJlZ2lvbkxpc3Q0LCAi
UmVnaW9ucyBsaXN0IDQgYW5kIDUgc2hvdWxkIHJlZmVyIHRoZSBzYW1lIE5vZGVMaXN0IG9iamVj
dCIpOworCisgICAgICAgICAgICAvLyBCcmluZyBiYWNrIHRoZSByZWdpb24gYW5kIGdldCB0aGUg
cmVnaW9uIGxpc3QuIFRoZSBsaXN0IHNob3VsZCBoYXZlIG9uZSBlbGVtZW50LgorICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLmNsYXNzTmFtZSA9ICJyZWdpb24i
OworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3Q2ID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlKHBFbGVtZW50KTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0NiAhPSBu
dWxsLCAiUmVnaW9uIGxpc3QgNiBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0Ni5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IDYgc2hvdWxkIGhhdmUg
MSByZWdpb24sIGhhcyAiICsgcmVnaW9uTGlzdDYubGVuZ3RoICsgIiBlbGVtZW50cyIpOworICAg
ICAgICAgICAgaWYgKHJlZ2lvbkxpc3Q2Lmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3Q2Lml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lv
biIpLCAiRmlyc3QgZWxlbWVudCBpbiByZWdpb24gbGlzdCA2IHNob3VsZCBiZSB0aGUgZmlyc3Qg
cmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdDYuaXRlbSgwKS5pZCk7CisgICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdDYgPT0gcmVnaW9uTGlzdDUsICJSZWdpb24gbGlzdCA1IGFuZCA2IHNo
b3VsZCByZWZlciB0aGUgc2FtZSBOb2RlTGlzdCBvYmplY3QiKTsKKworICAgICAgICAgICAgLy8g
UmVtb3ZlIHRoZSBuYW1lZCBmbG93LCB0aGUgcmVnaW9uIGxpc3Qgc2hvdWxkIGJlIGVtcHR5Lgor
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5jbGFzc05hbWUg
PSAiIjsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0NyA9IG5hbWVkRmxvdy5nZXRSZWdpb25z
QnlDb250ZW50Tm9kZShwRWxlbWVudCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDcg
IT0gbnVsbCwgIlJlZ2lvbiBsaXN0IDcgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdDcubGVuZ3RoID09IDAsICJSZWdpb24gbGlzdCA3IHNob3VsZCBi
ZSBlbXB0eSwgaXQgaGFzICIgKyByZWdpb25MaXN0Ny5sZW5ndGggKyAiIGVsZW1lbnRzIik7Cisg
ICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDcgPT0gcmVnaW9uTGlzdDYsICJSZWdpb24gbGlz
dCA2IGFuZCA3IHNob3VsZCByZWZlciB0aGUgc2FtZSBOb2RlTGlzdCBvYmplY3QiKTsKKworICAg
ICAgICAgICAgLy8gTW92ZSB0aGUgYXJ0aWNsZSB0byBhbm90aGVyIG5hbWVkIGZsb3csIHRoZSBy
ZWdpb24gbGlzdCBzaG91bGQgYmUgZW1wdHkuCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYXJ0aWNsZSIpLmNsYXNzTmFtZSA9ICJhcnRpY2xlMiI7CisgICAgICAgICAgICB2
YXIgbmFtZWRGbG93MiA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3cyIik7Cisg
ICAgICAgICAgICB2YXIgcmVnaW9uTGlzdDggPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRl
bnROb2RlKHBFbGVtZW50KTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0OCAhPSBudWxs
LCAiUmVnaW9uIGxpc3QgOCBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2Vy
dChyZWdpb25MaXN0OC5sZW5ndGggPT0gMCwgIlJlZ2lvbiBsaXN0IDggc2hvdWxkIGJlIGVtcHR5
LCBpdCBoYXMgIiArIHJlZ2lvbkxpc3Q4Lmxlbmd0aCArICIgZWxlbWVudHMiKTsKKyAgICAgICAg
ICAgIGFzc2VydChyZWdpb25MaXN0OCAhPSByZWdpb25MaXN0NywgIlJlZ2lvbiBsaXN0IDcgYW5k
IDggc2hvdWxkIHJlZmVyIGRpZmZlcmVudCBOb2RlTGlzdCBvYmplY3RzIik7CisKKyAgICAgICAg
ICAgIC8vIEFkZCBhIHJlZ2lvbiB0byB0aGUgc2Vjb25kIG5hbWVkIGZsb3csIHRoZSByZWdpb24g
bGlzdCBzaG91bGQgY29udGFpbiBvbmUgZWxlbWVudAorICAgICAgICAgICAgLy8gc2luY2UgdGhl
IHAgZWxlbWVudCBpcyBhIGNoaWxkIG9mIGFydGljbGUgdGhhdCBpcyBjb2xsZWN0ZWQgYnkgZmxv
dzIuCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLmNsYXNz
TmFtZSA9ICJyZWdpb24yIjsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0OSA9IG5hbWVkRmxv
dzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1lbnQpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3Q5ICE9IG51bGwsICJSZWdpb24gbGlzdCA5IHNob3VsZCBub3QgYmUgbnVsbCIp
OworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q5Lmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxp
c3QgOSBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGl0IGhhcyAiICsgcmVnaW9uTGlzdDkubGVuZ3Ro
ICsgIiBlbGVtZW50cyIpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3Q5Lmxlbmd0aCA+IDAp
CisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q5ID09IHJlZ2lvbkxpc3Q4LCAiUmVn
aW9uIGxpc3QgOCBhbmQgOSBzaG91bGQgcmVmZXJlIHRoZSBzYW1lIE5vZGVMaXN0IG9iamVjdCIp
OworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggNGY4M2M2My4uYmM1OTJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTYw
MSw2ICs2MDEsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL1F1YWxpZmllZE5hbWUu
Y3BwCiAgICAgZG9tL1JhbmdlLmNwcAogICAgIGRvbS9SYW5nZUV4Y2VwdGlvbi5jcHAKKyAgICBk
b20vUmVnaW9uTm9kZUxpc3QuY3BwCiAgICAgZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmNw
cAogICAgIGRvbS9TY29wZWRFdmVudFF1ZXVlLmNwcAogICAgIGRvbS9TY3JpcHRhYmxlRG9jdW1l
bnRQYXJzZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNiY2I1OC4uYTE0ZGI0NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDU4IEBACisyMDEyLTAyLTIyICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRv
YmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJl
Z2lvbnNCeUNvbnRlbnROb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03Nzc0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3RzOiBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2Rl
LWhvcml6LWJ0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1i
eS1jb250ZW50LW5vZGUtaG9yaXotdGIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25z
L2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1ybC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5v
ZGUyLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Ob2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlbW92ZUNhY2hlZFJlZ2lvbk5vZGVMaXN0KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Z2V0UmVnaW9uc0J5
Q29udGVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmludmFs
aWRhdGVDYWNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmlzRW1w
dHkpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KE5vZGUpOgorICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKE5vZGVMaXN0
c05vZGVEYXRhKToKKyAgICAgICAgKiBkb20vUmVnaW9uTm9kZUxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWdpb25Ob2RlTGlzdDo6UmVnaW9uTm9kZUxp
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVnaW9uTm9kZUxpc3Q6On5SZWdpb25Ob2RlTGlzdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZWdpb25Ob2RlTGlzdDo6bm9kZU1hdGNoZXMpOgorICAgICAg
ICAqIGRvbS9SZWdpb25Ob2RlTGlzdC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChS
ZWdpb25Ob2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZWdpb25Ob2RlTGlzdDo6Y3JlYXRl
KToKKyAgICAgICAgKiBkb20vV2ViS2l0TmFtZWRGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYktpdE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvdy5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJLaXROYW1lZEZsb3cpOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1l
ZEZsb3cuaWRsOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnJlZ2lvbkluUmFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpvYmplY3RJ
bkZsb3dSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyUmVnaW9uOjpmbG93VGhyZWFkKToKKwogMjAxMi0wMi0yMiAgQ3NhYmEgT3N6dHJvZ29uw6Fj
ICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcg
YWZ0ZXIgcjEwODQ2NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDYzOWYxYjQu
LmU4NDIxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTY2MCw2ICsxNjYw
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VFeGNl
cHRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lv
bk5vZGVMaXN0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lvbk5vZGVMaXN0LmggXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGZlNGIyMjgu
LmVjMWU2YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTYwLDYgKzU2MCw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGRvbS9SYW5nZS5jcHAgXAogICAgIGRvbS9SYW5nZUV4Y2VwdGlvbi5jcHAgXAogICAgIGRv
bS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaCBcCisgICAgZG9tL1JlZ2lvbk5vZGVMaXN0LmNwcCBc
CiAgICAgZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmNwcCBcCiAgICAgZG9tL1Njb3BlZEV2
ZW50UXVldWUuY3BwIFwKICAgICBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggNzFlOTYzNi4uMWIxNWEzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtNTEwNyw2ICs1MTA3LDggQEAKICAgICAgICAgICAgICdkb20vUmFuZ2UuY3BwJywKICAgICAg
ICAgICAgICdkb20vUmFuZ2VFeGNlcHRpb24uY3BwJywKICAgICAgICAgICAgICdkb20vUmFuZ2VF
eGNlcHRpb24uaCcsCisgICAgICAgICAgICAnZG9tL1JlZ2lvbk5vZGVMaXN0LmNwcCcsCisgICAg
ICAgICAgICAnZG9tL1JlZ2lvbk5vZGVMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9SYXdEYXRh
RG9jdW1lbnRQYXJzZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1JlZ2lzdGVyZWRFdmVudExpc3Rl
bmVyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNr
LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCAwNjFjNDNmLi42ZWVmMGNiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtNTA2NDIsNiArNTA2NDIsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFJlZ2lvbk5vZGVMaXN0LmNwcCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFJl
Z2lvbk5vZGVMaXN0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGRvbVxSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAiCiAJCQkJPgogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDJiN2Q3NjcuLjE2NzZhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMwMzMsNiArMzAz
Myw4IEBACiAJCThBQTYxQ0ZGMTQ0RDU5NUIwMEYzNzM1MCAvKiBXZWJLaXRDU1NSZWdpb25SdWxl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBQTYx
Q0ZEMTQ0RDU5NUIwMEYzNzM1MCAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCAqLzsgfTsKIAkJ
OEFBNjFEMDAxNDRENTk1QjAwRjM3MzUwIC8qIFdlYktpdENTU1JlZ2lvblJ1bGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBQTYxQ0ZFMTQ0RDU5NUIw
MEYzNzM1MCAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmggKi87IH07CiAJCThBQjRCQzc3MTI2RkRC
NzEwMERFQjcyNyAvKiBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEFCNEJDNzYxMjZG
REI3MTAwREVCNzI3IC8qIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgg
Ki87IH07CisJCThBQkFGQjlGMTRGNTEwNzUwMEE0OTg0QiAvKiBSZWdpb25Ob2RlTGlzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUJBRkI5RDE0
RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3QuY3BwICovOyB9OworCQk4QUJBRkJBMDE0
RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBQkFGQjlFMTRGNTEwNzUwMEE0OTg0QiAvKiBSZWdp
b25Ob2RlTGlzdC5oICovOyB9OwogCQk4QUQwQTU5NDE0Qzg4MzM2MDAwRDgzQzUgLyogSlNXZWJL
aXRDU1NSZWdpb25SdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDhBQ0MyNENEMTQ4RTI0QjIwMEVGQ0MwRCAvKiBKU1dlYktpdENTU1JlZ2lvblJ1
bGUuY3BwICovOyB9OwogCQk4QUQwQTU5NTE0Qzg4MzM2MDAwRDgzQzUgLyogSlNXZWJLaXRDU1NS
ZWdpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4QUNDMjRDRTE0OEUyNEIyMDBFRkNDMEQgLyogSlNXZWJLaXRDU1NSZWdpb25SdWxlLmggKi87
IH07CiAJCThBRDBBNTk2MTRDODgzNTgwMDBEODNDNSAvKiBET01XZWJLaXRDU1NSZWdpb25SdWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUNDMjgx
NzE0OEU0N0U3MDBFRkNDMEQgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZS5oICovOyB9OwpAQCAt
OTg5OCw2ICs5OTAwLDggQEAKIAkJOEFBNjFDRkQxNDRENTk1QjAwRjM3MzUwIC8qIFdlYktpdENT
U1JlZ2lvblJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
S2l0Q1NTUmVnaW9uUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBQTYx
Q0ZFMTQ0RDU5NUIwMEYzNzM1MCAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdENTU1JlZ2lvblJ1bGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOEFCNEJDNzYxMjZGREI3MTAwREVCNzI3IC8qIElnbm9yZURlc3Ry
dWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCThBQkFGQjlEMTRGNTEwNzUwMEE0OTg0QiAvKiBSZWdpb25O
b2RlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWdpb25O
b2RlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThBQkFGQjlFMTRGNTEw
NzUwMEE0OTg0QiAvKiBSZWdpb25Ob2RlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZWdpb25Ob2RlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
QUNDMjRDRDE0OEUyNEIyMDBFRkNDMEQgLyogSlNXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBQ0MyNENFMTQ4RTI0QjIwMEVGQ0Mw
RCAvKiBKU1dlYktpdENTU1JlZ2lvblJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNXZWJLaXRDU1NSZWdpb25SdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCThBQ0MyODE3MTQ4RTQ3RTcwMEVGQ0MwRCAvKiBET01XZWJLaXRDU1NSZWdpb25SdWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdENTU1JlZ2lvblJ1bGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwODA4LDYgKzIwODEyLDggQEAKIAkJ
CQlEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCAqLywKIAkJCQlE
MjNDQTU0ODBBQjBFOTgzMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaWRsICovLAogCQkJCUE4
NEQ4MjdCMTFEMzMzRUQwMDk3Mjk5MCAvKiBSYXdEYXRhRG9jdW1lbnRQYXJzZXIuaCAqLywKKwkJ
CQk4QUJBRkI5RDE0RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3QuY3BwICovLAorCQkJ
CThBQkFGQjlFMTRGNTEwNzUwMEE0OTg0QiAvKiBSZWdpb25Ob2RlTGlzdC5oICovLAogCQkJCTg1
MDMxQjM1MEE0NEVGQzcwMEY5OTJFMCAvKiBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAgKi8s
CiAJCQkJODUwMzFCMzYwQTQ0RUZDNzAwRjk5MkUwIC8qIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVy
LmggKi8sCiAJCQkJQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRN
YXJrZXIuaCAqLywKQEAgLTI0MzMyLDYgKzI0MzM4LDcgQEAKIAkJCQlFMUJFNTEyRTBDRjZDNTEy
MDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUw
RjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1
MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
QUJBRkJBMDE0RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjcyODIsNiArMjcyODksNyBAQAogCQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAv
KiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5
QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ1MzczNTIx
MzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCThBQkFG
QjlGMTRGNTEwNzUwMEE0OTg0QiAvKiBSZWdpb25Ob2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAppbmRleCA5MWYxNTFmLi5mZDYyNmYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBA
IC0xMDMxLDYgKzEwMzEsMTYgQEAgdm9pZCBOb2RlOjpyZW1vdmVDYWNoZWRDbGFzc05vZGVMaXN0
KENsYXNzTm9kZUxpc3QqIGxpc3QsIGNvbnN0IFN0cmluZyYgY2xhc3NOYW0KICAgICBkYXRhLT5t
X2NsYXNzTm9kZUxpc3RDYWNoZS5yZW1vdmUoY2xhc3NOYW1lKTsKIH0KIAordm9pZCBOb2RlOjpy
ZW1vdmVDYWNoZWRSZWdpb25Ob2RlTGlzdChSZWdpb25Ob2RlTGlzdCogbGlzdCwgY29uc3QgQXRv
bWljU3RyaW5nJiBmbG93TmFtZSkKK3sKKyAgICBBU1NFUlQocmFyZURhdGEoKSk7CisgICAgQVNT
RVJUKHJhcmVEYXRhKCktPm5vZGVMaXN0cygpKTsKKworICAgIE5vZGVMaXN0c05vZGVEYXRhKiBk
YXRhID0gcmFyZURhdGEoKS0+bm9kZUxpc3RzKCk7CisgICAgQVNTRVJUX1VOVVNFRChsaXN0LCBs
aXN0ID09IGRhdGEtPm1fcmVnaW9uTm9kZUxpc3RDYWNoZS5nZXQoZmxvd05hbWUpKTsKKyAgICBk
YXRhLT5tX3JlZ2lvbk5vZGVMaXN0Q2FjaGUucmVtb3ZlKGZsb3dOYW1lKTsKK30KKwogdm9pZCBO
b2RlOjpyZW1vdmVDYWNoZWROYW1lTm9kZUxpc3QoTmFtZU5vZGVMaXN0KiBsaXN0LCBjb25zdCBT
dHJpbmcmIG5vZGVOYW1lKQogewogICAgIEFTU0VSVChyYXJlRGF0YSgpKTsKQEAgLTE2NjcsNiAr
MTY3NywxOCBAQCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBOb2RlOjpnZXRFbGVtZW50c0J5Q2xhc3NO
YW1lKGNvbnN0IFN0cmluZyYgY2xhc3NOYW1lcykKICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7
CiB9CiAKK1Bhc3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
KGNvbnN0IEF0b21pY1N0cmluZyYgZmxvd05hbWUpCit7CisgICAgcGFpcjxOb2RlTGlzdHNOb2Rl
RGF0YTo6UmVnaW9uTm9kZUxpc3RDYWNoZTo6aXRlcmF0b3IsIGJvb2w+IHJlc3VsdAorICAgID0g
ZW5zdXJlUmFyZURhdGEoKS0+ZW5zdXJlTm9kZUxpc3RzKHRoaXMpLT5tX3JlZ2lvbk5vZGVMaXN0
Q2FjaGUuYWRkKGZsb3dOYW1lLCAwKTsKKyAgICBpZiAoIXJlc3VsdC5zZWNvbmQpCisgICAgICAg
IHJldHVybiBQYXNzUmVmUHRyPE5vZGVMaXN0PihyZXN1bHQuZmlyc3QtPnNlY29uZCk7CisgICAg
CisgICAgUmVmUHRyPFJlZ2lvbk5vZGVMaXN0PiBsaXN0ID0gUmVnaW9uTm9kZUxpc3Q6OmNyZWF0
ZSh0aGlzLCBmbG93TmFtZSk7CisgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQgPSBsaXN0LmdldCgp
OworICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKK30KKwogUGFzc1JlZlB0cjxFbGVtZW50PiBO
b2RlOjpxdWVyeVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBpZiAoc2VsZWN0b3JzLmlzRW1wdHkoKSkgewpAQCAtMjM0OSw2ICsyMzcx
LDkgQEAgdm9pZCBOb2RlTGlzdHNOb2RlRGF0YTo6aW52YWxpZGF0ZUNhY2hlcygpCiAgICAgVGFn
Tm9kZUxpc3RDYWNoZU5TOjpjb25zdF9pdGVyYXRvciB0YWdDYWNoZU5TRW5kID0gbV90YWdOb2Rl
TGlzdENhY2hlTlMuZW5kKCk7CiAgICAgZm9yIChUYWdOb2RlTGlzdENhY2hlTlM6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gbV90YWdOb2RlTGlzdENhY2hlTlMuYmVnaW4oKTsgaXQgIT0gdGFnQ2FjaGVO
U0VuZDsgKytpdCkKICAgICAgICAgaXQtPnNlY29uZC0+aW52YWxpZGF0ZUNhY2hlKCk7CisgICAg
UmVnaW9uTm9kZUxpc3RDYWNoZTo6Y29uc3RfaXRlcmF0b3IgcmVnaW9uTGlzdENhY2hlRW5kID0g
bV9yZWdpb25Ob2RlTGlzdENhY2hlLmVuZCgpOworICAgIGZvciAoUmVnaW9uTm9kZUxpc3RDYWNo
ZTo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3JlZ2lvbk5vZGVMaXN0Q2FjaGUuYmVnaW4oKTsgaXQg
IT0gcmVnaW9uTGlzdENhY2hlRW5kOyArK2l0KQorICAgICAgICBpdC0+c2Vjb25kLT5pbnZhbGlk
YXRlQ2FjaGUoKTsKICAgICBpbnZhbGlkYXRlQ2FjaGVzVGhhdERlcGVuZE9uQXR0cmlidXRlcygp
OwogfQogCkBAIC0yMzk1LDEwICsyNDIwLDEyIEBAIGJvb2wgTm9kZUxpc3RzTm9kZURhdGE6Omlz
RW1wdHkoKSBjb25zdAogICAgIGlmICghbV9taWNyb0RhdGFJdGVtTGlzdENhY2hlLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCisgICAgaWYgKCFtX3JlZ2lvbk5vZGVM
aXN0Q2FjaGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobV9s
YWJlbHNOb2RlTGlzdENhY2hlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KKyAgICAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggZTQyZWE1MC4uNTNmZTBkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCkBAIC03Miw2ICs3Miw3IEBAIGNsYXNzIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDsKIGNs
YXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIGNsYXNzIFBsYXRmb3JtV2hlZWxFdmVudDsKIGNsYXNz
IFF1YWxpZmllZE5hbWU7CitjbGFzcyBSZWdpb25Ob2RlTGlzdDsKIGNsYXNzIFJlZ2lzdGVyZWRF
dmVudExpc3RlbmVyOwogY2xhc3MgUmVuZGVyQXJlbmE7CiBjbGFzcyBSZW5kZXJCb3g7CkBAIC01
NDksNiArNTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgdW5yZWdpc3RlckR5bmFtaWNTdWJ0cmVl
Tm9kZUxpc3QoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCopOwogICAgIHZvaWQgaW52YWxpZGF0ZU5v
ZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsK
ICAgICB2b2lkIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQ2hpbGRyZW5DaGFuZ2VkKCk7
CisgICAgdm9pZCBpbnZhbGlkYXRlUmVnaW9uTGlzdENhY2hlKCk7CiAgICAgdm9pZCBub3RpZnlM
b2NhbE5vZGVMaXN0c0xhYmVsQ2hhbmdlZCgpOwogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkQ2xhc3NO
b2RlTGlzdChDbGFzc05vZGVMaXN0KiwgY29uc3QgU3RyaW5nJik7CiAKQEAgLTU1Niw2ICs1NTgs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVDYWNoZWRUYWdOb2RlTGlzdChUYWdOb2RlTGlz
dCosIGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkVGFnTm9kZUxp
c3QoVGFnTm9kZUxpc3QqLCBjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdm9pZCByZW1vdmVD
YWNoZWRMYWJlbHNOb2RlTGlzdChEeW5hbWljU3VidHJlZU5vZGVMaXN0Kik7CisgICAgdm9pZCBy
ZW1vdmVDYWNoZWRSZWdpb25Ob2RlTGlzdChSZWdpb25Ob2RlTGlzdCosIGNvbnN0IEF0b21pY1N0
cmluZyYpOwogCiAgICAgdm9pZCByZW1vdmVDYWNoZWRDaGlsZE5vZGVMaXN0KCk7CiAKQEAgLTU2
Myw2ICs1NjYsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0RWxlbWVu
dHNCeVRhZ05hbWVOUyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRv
bWljU3RyaW5nJiBsb2NhbE5hbWUpOwogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdldEVsZW1l
bnRzQnlOYW1lKGNvbnN0IFN0cmluZyYgZWxlbWVudE5hbWUpOwogICAgIFBhc3NSZWZQdHI8Tm9k
ZUxpc3Q+IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoY29uc3QgU3RyaW5nJiBjbGFzc05hbWVzKTsK
KyAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBnZXRSZWdpb25zQnlDb250ZW50Tm9kZShjb25zdCBB
dG9taWNTdHJpbmcmIGZsb3dOYW1lKTsKIAogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gcXVlcnlT
ZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBh
c3NSZWZQdHI8Tm9kZUxpc3Q+IHF1ZXJ5U2VsZWN0b3JBbGwoY29uc3QgU3RyaW5nJiBzZWxlY3Rv
cnMsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCAwODY0
YjI2Li5kMDQ3NzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgogI2luY2x1ZGUg
Ik5hbWVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKKyNpbmNsdWRlICJS
ZWdpb25Ob2RlTGlzdC5oIgogI2luY2x1ZGUgIlRhZ05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC03MSw2
ICs3Miw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgTGFiZWxzTm9kZUxpc3QqIG1fbGFiZWxz
Tm9kZUxpc3RDYWNoZTsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIFJlZ2lv
bk5vZGVMaXN0Kj4gUmVnaW9uTm9kZUxpc3RDYWNoZTsKKyAgICBSZWdpb25Ob2RlTGlzdENhY2hl
IG1fcmVnaW9uTm9kZUxpc3RDYWNoZTsKICAKICAgICBzdGF0aWMgUGFzc093blB0cjxOb2RlTGlz
dHNOb2RlRGF0YT4gY3JlYXRlKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUmVnaW9uTm9kZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lvbk5vZGVMaXN0
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTE2ZDNiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lvbk5vZGVMaXN0LmNwcApAQCAtMCww
ICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0
ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICog
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
CisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJSZWdpb25Ob2RlTGlzdC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCisjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCisj
aW5jbHVkZSAiV2ViS2l0TmFtZWRGbG93LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVn
aW9uTm9kZUxpc3Q6OlJlZ2lvbk5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBmbG93TmFtZSkKKzogRHluYW1pY1N1YnRyZWVOb2RlTGlzdChub2RlLT5k
b2N1bWVudCgpKQorLCBtX2NvbnRlbnROb2RlKG5vZGUpCissIG1fZmxvd05hbWUoZmxvd05hbWUp
Cit7Cit9CisKK1JlZ2lvbk5vZGVMaXN0Ojp+UmVnaW9uTm9kZUxpc3QoKQoreworICAgIG1fY29u
dGVudE5vZGUtPnJlbW92ZUNhY2hlZFJlZ2lvbk5vZGVMaXN0KHRoaXMsIG1fZmxvd05hbWUpOwor
fSAKKworYm9vbCBSZWdpb25Ob2RlTGlzdDo6bm9kZU1hdGNoZXMoRWxlbWVudCogdGVzdE5vZGUp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2NvbnRlbnROb2RlLT5yZW5kZXJlcigpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXRlc3ROb2RlLT5yZW5kZXJlcigpIHx8ICF0ZXN0Tm9k
ZS0+cmVuZGVyZXIoKS0+aXNSZW5kZXJSZWdpb24oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSB0b1JlbmRlclJlZ2lvbih0ZXN0Tm9kZS0+cmVu
ZGVyZXIoKSk7CisgICAgaWYgKCFyZWdpb24tPmlzVmFsaWQoKSB8fCAocmVnaW9uLT5zdHlsZSgp
LT5yZWdpb25UaHJlYWQoKSAhPSBtX2Zsb3dOYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgcmV0dXJuIHJlZ2lvbi0+Zmxvd1RocmVhZCgpLT5vYmplY3RJbkZsb3dSZWdpb24obV9j
b250ZW50Tm9kZS0+cmVuZGVyZXIoKSwgcmVnaW9uKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmVnaW9uTm9kZUxpc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9SZWdpb25Ob2RlTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjgxMzk1N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmVnaW9uTm9kZUxpc3QuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0
IDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgUmVnaW9uTm9kZUxpc3RfaAorI2RlZmluZSBSZWdpb25Ob2RlTGlz
dF9oCisKKyNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVnaW9uTm9kZUxpc3QgOiBwdWJsaWMgRHlu
YW1pY1N1YnRyZWVOb2RlTGlzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVn
aW9uTm9kZUxpc3Q+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIGNvbnN0IEF0b21pY1N0
cmluZyYgZmxvd05hbWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlZ2lv
bk5vZGVMaXN0KG5vZGUsIGZsb3dOYW1lKSk7CisgICAgfQorICAgIAorICAgIHZpcnR1YWwgflJl
Z2lvbk5vZGVMaXN0KCk7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZU1hdGNo
ZXMoRWxlbWVudCopIGNvbnN0OworCitwcml2YXRlOgorICAgIFJlZ2lvbk5vZGVMaXN0KFBhc3NS
ZWZQdHI8Tm9kZT4sIGNvbnN0IEF0b21pY1N0cmluZyYgZmxvd05hbWUpOworICAgIAorICAgIFJl
ZlB0cjxOb2RlPiBtX2NvbnRlbnROb2RlOworICAgIEF0b21pY1N0cmluZyBtX2Zsb3dOYW1lOwor
fTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKaW5kZXggYmNlZDk2NS4uMmFmNGJjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3cuaCIKIAorI2luY2x1ZGUgIk5v
ZGUuaCIKKyNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDksNCArNTEsMTMgQEAgYm9vbCBXZWJLaXRO
YW1lZEZsb3c6Om92ZXJmbG93KCkgY29uc3QKICAgICByZXR1cm4gbV9wYXJlbnRGbG93VGhyZWFk
LT5vdmVyZmxvdygpOwogfQogCitQYXNzUmVmUHRyPE5vZGVMaXN0PiBXZWJLaXROYW1lZEZsb3c6
OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKE5vZGUqIGNvbnRlbnROb2RlKQoreworICAgIGlmICgh
Y29udGVudE5vZGUpCisgICAgICAgIHJldHVybiAwOworICAgIG1fcGFyZW50Rmxvd1RocmVhZC0+
ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7IAorICAg
IHJldHVybiBjb250ZW50Tm9kZS0+Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUobV9wYXJlbnRGbG93
VGhyZWFkLT5mbG93VGhyZWFkKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaAppbmRleCBlODE1ZjAzLi5mY2QxMzI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCkBAIC0zNSw2ICszNSw4IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgTm9kZTsKK2NsYXNzIE5vZGVMaXN0OwogY2xhc3MgUmVu
ZGVyRmxvd1RocmVhZDsKIAogY2xhc3MgV2ViS2l0TmFtZWRGbG93IDogcHVibGljIFJlZkNvdW50
ZWQ8V2ViS2l0TmFtZWRGbG93PiB7CkBAIC00Nyw2ICs0OSw4IEBAIHB1YmxpYzoKICAgICB+V2Vi
S2l0TmFtZWRGbG93KCk7CiAKICAgICBib29sIG92ZXJmbG93KCkgY29uc3Q7CisgICAgUGFzc1Jl
ZlB0cjxOb2RlTGlzdD4gZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoTm9kZSopOworCiBwcml2YXRl
OgogICAgIFdlYktpdE5hbWVkRmxvdyhSZW5kZXJGbG93VGhyZWFkKik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwKaW5kZXggMmEwNjVkZC4uODVhYTE2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwKQEAgLTMyLDUgKzMyLDcgQEAgbW9kdWxlIGNv
cmUgewogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAogICAgIF0gV2ViS2l0TmFtZWRGbG93
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb3ZlcmZsb3c7CisgICAgICAg
IE5vZGVMaXN0IGdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGluIE5vZGUgY29udGVudE5vZGUpOwog
ICAgIH07CiB9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmNwcAppbmRleCA5ZTQ3ZDRkLi4zZTc1YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCkBAIC0xMyw3ICsxMyw3IEBACiAgKiAgICBkaXNjbGFp
bWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKICAqICAgIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIg
QU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKICAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgogICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKQEAgLTkwNSw0
ICs5MDUsNzAgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21wdXRlT3ZlcmZsb3dTdGF0ZUZv
clJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckUKICAgICBtX292ZXJmbG93ID0gbGFz
dFJlZyAmJiAobGFzdFJlZy0+cmVnaW9uU3RhdGUoKSA9PSBSZW5kZXJSZWdpb246OlJlZ2lvbk92
ZXJmbG93KTsKIH0KIAorYm9vbCBSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25JblJhbmdlKGNvbnN0
IFJlbmRlclJlZ2lvbiogdGFyZ2V0UmVnaW9uLCBjb25zdCBSZW5kZXJSZWdpb24qIHN0YXJ0UmVn
aW9uLCBjb25zdCBSZW5kZXJSZWdpb24qIGVuZFJlZ2lvbikgY29uc3QKK3sKKyAgICBBU1NFUlQo
dGFyZ2V0UmVnaW9uKTsKKworICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6Y29uc3RfaXRlcmF0
b3IgaXQgPSBtX3JlZ2lvbkxpc3QuZmluZChjb25zdF9jYXN0PFJlbmRlclJlZ2lvbio+KHN0YXJ0
UmVnaW9uKSk7IGl0ICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdCkgeworICAgICAgICBjb25z
dCBSZW5kZXJSZWdpb24qIGN1cnJSZWdpb24gPSAqaXQ7CisgICAgICAgIGlmICghY3VyclJlZ2lv
bi0+aXNWYWxpZCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICh0YXJnZXRS
ZWdpb24gPT0gY3VyclJlZ2lvbikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBp
ZiAoY3VyclJlZ2lvbiA9PSBlbmRSZWdpb24pCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVuZGVyRmxvd1RocmVhZDo6b2JqZWN0SW5G
bG93UmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBSZW5kZXJSZWdpb24q
IHJlZ2lvbikgY29uc3QKK3sKKyAgICBBU1NFUlQob2JqZWN0KTsKKyAgICBBU1NFUlQocmVnaW9u
KTsKKworICAgIGlmICghb2JqZWN0LT5pblJlbmRlckZsb3dUaHJlYWQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmIChvYmplY3QtPmVuY2xvc2luZ1JlbmRlckZsb3dUaHJlYWQoKSAh
PSB0aGlzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFtX3JlZ2lvbkxpc3QuY29u
dGFpbnMoY29uc3RfY2FzdDxSZW5kZXJSZWdpb24qPihyZWdpb24pKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgUmVuZGVyQm94KiBlbmNsb3NpbmdCb3ggPSBvYmplY3QtPmVuY2xvc2lu
Z0JveCgpOworICAgIFJlbmRlclJlZ2lvbiogZW5jbG9zaW5nQm94U3RhcnRSZWdpb24gPSAwOwor
ICAgIFJlbmRlclJlZ2lvbiogZW5jbG9zaW5nQm94RW5kUmVnaW9uID0gMDsKKyAgICBnZXRSZWdp
b25SYW5nZUZvckJveChlbmNsb3NpbmdCb3gsIGVuY2xvc2luZ0JveFN0YXJ0UmVnaW9uLCBlbmNs
b3NpbmdCb3hFbmRSZWdpb24pOworICAgIGlmICghcmVnaW9uSW5SYW5nZShyZWdpb24sIGVuY2xv
c2luZ0JveFN0YXJ0UmVnaW9uLCBlbmNsb3NpbmdCb3hFbmRSZWdpb24pKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBpZiAob2JqZWN0LT5pc0JveCgpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIExheW91dFJlY3Qgb2JqZWN0QUJCUmVjdCA9IG9iamVjdC0+YWJzb2x1dGVCb3Vu
ZGluZ0JveFJlY3QodHJ1ZSk7CisgICAgaWYgKCFvYmplY3RBQkJSZWN0LndpZHRoKCkpCisgICAg
ICAgIG9iamVjdEFCQlJlY3Quc2V0V2lkdGgoMSk7CisgICAgaWYgKCFvYmplY3RBQkJSZWN0Lmhl
aWdodCgpKQorICAgICAgICBvYmplY3RBQkJSZWN0LnNldEhlaWdodCgxKTsgCisgICAgaWYgKG9i
amVjdEFCQlJlY3QuaW50ZXJzZWN0cyhyZWdpb24tPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KHRy
dWUpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAocmVnaW9uID09IGxhc3RSZWdp
b24oKSkgeworICAgICAgICAvLyBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGludGVyc2VjdCBhbnkg
b2YgdGhlIGVuY2xvc2luZyBib3ggcmVnaW9ucworICAgICAgICAvLyB0aGVuIHRoZSBvYmplY3Qg
aXMgaW4gbGFzdCByZWdpb24uCisgICAgICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBtX3JlZ2lvbkxpc3QuZmluZChlbmNsb3NpbmdCb3hTdGFydFJlZ2lvbik7
IGl0ICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdCkgeworICAgICAgICAgICAgY29uc3QgUmVu
ZGVyUmVnaW9uKiBjdXJyUmVnaW9uID0gKml0OworICAgICAgICAgICAgaWYgKCFyZWdpb24tPmlz
VmFsaWQoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChjdXJy
UmVnaW9uID09IHJlZ2lvbikKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlm
IChvYmplY3RBQkJSZWN0LmludGVyc2VjdHMoY3VyclJlZ2lvbi0+YWJzb2x1dGVCb3VuZGluZ0Jv
eFJlY3QodHJ1ZSkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmgKaW5kZXggZDA1OTM4OC4uZjNhYTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCkBAIC0xMyw3ICsxMyw3IEBACiAgKiAgICBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKICAqICAg
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqIAotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJ
UyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKICAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgogICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKQEAgLTEz
Niw2ICsxMzYsMTAgQEAgcHVibGljOgogICAgIHZvaWQgY29tcHV0ZU92ZXJmbG93U3RhdGVGb3JS
ZWdpb25zKExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlKTsKIAogICAgIGJvb2wgb3ZlcmZs
b3coKSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93OyB9CisKKyAgICAvLyBDaGVjayBpZiB0aGUg
b2JqZWN0IGlzIGluIHJlZ2lvbiBhbmQgdGhlIHJlZ2lvbiBpcyBwYXJ0IG9mIHRoaXMgZmxvdyB0
aHJlYWQuCisgICAgYm9vbCBvYmplY3RJbkZsb3dSZWdpb24oY29uc3QgUmVuZGVyT2JqZWN0Kiwg
Y29uc3QgUmVuZGVyUmVnaW9uKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25z
dCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlckZsb3dUaHJlYWQiOyB9
CiAKQEAgLTE0Niw2ICsxNTAsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRSZXBhaW50
KGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKIAorICAgIGJvb2wgcmVnaW9uSW5SYW5nZShjb25z
dCBSZW5kZXJSZWdpb24qIHRhcmdldFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBzdGFydFJl
Z2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBlbmRSZWdpb24pIGNvbnN0OworCiAgICAgdHlwZWRl
ZiBMaXN0SGFzaFNldDxSZW5kZXJPYmplY3QqPiBGbG93VGhyZWFkQ2hpbGRMaXN0OwogICAgIEZs
b3dUaHJlYWRDaGlsZExpc3QgbV9mbG93VGhyZWFkQ2hpbGRMaXN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKaW5kZXggZDQ2ZDZkYS4uYjkxYjRmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBhdHRhY2hSZWdpb24oKTsKICAgICB2b2lkIGRldGFjaFJlZ2lvbigpOwogCisg
ICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxvd1Ro
cmVhZDsgfQogICAgIFJlbmRlckZsb3dUaHJlYWQqIHBhcmVudEZsb3dUaHJlYWQoKSBjb25zdCB7
IHJldHVybiBtX3BhcmVudEZsb3dUaHJlYWQ7IH0KIAogICAgIC8vIFZhbGlkIHJlZ2lvbnMgZG8g
bm90IGNyZWF0ZSBjaXJjdWxhciBkZXBlbmRlbmNpZXMgd2l0aCBvdGhlciBmbG93cy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128964</attachid>
            <date>2012-02-26 23:29:03 -0800</date>
            <delta_ts>2012-03-15 06:42:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-77746-20120227092900.patch</filename>
            <type>text/plain</type>
            <size>92977</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4OTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QxZjYxMDI3OTc5YjI3
YmI3MTcwYjY0MDZlOGZjMmRmMTI2OWFhMS4uMTAzYzY1ZTc2NDU4MjkwYmRmMjY5MTgxMWZiMjE2
ZDc1ZGViNzZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTAyLTI2ICBNaWhu
ZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXUlt
cGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzc0NgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhdmlkIEh5YXR0LgorCisgICAgICAgIFRlc3RzOiBmYXN0L3JlZ2lvbnMvZ2V0LXJl
Z2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LWJ0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
cmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotdGIuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxy
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50
LW5vZGUtdmVydC1ybC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lv
bnMtYnktY29udGVudC1ub2RlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9nZXQt
cmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlbW92ZUNh
Y2hlZFJlZ2lvbk5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVDYWNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZUxpc3RzTm9kZURhdGE6OmlzRW1wdHkpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEu
aDoKKyAgICAgICAgKE5vZGVMaXN0c05vZGVEYXRhKToKKyAgICAgICAgKiBkb20vUmVnaW9uTm9k
ZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWdpb25O
b2RlTGlzdDo6UmVnaW9uTm9kZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVnaW9uTm9kZUxp
c3Q6On5SZWdpb25Ob2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZWdpb25Ob2RlTGlzdDo6
bm9kZU1hdGNoZXMpOgorICAgICAgICAqIGRvbS9SZWdpb25Ob2RlTGlzdC5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChSZWdpb25Ob2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWdpb25Ob2RlTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vV2ViS2l0TmFtZWRGbG93LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVu
dE5vZGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxv
dy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXROYW1lZEZsb3cpOgorICAg
ICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuaWRsOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnJl
Z2lvbkluUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbG93VGhyZWFkOjpvYmplY3RJbkZsb3dSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpmbG93VGhyZWFkKToKKwogMjAxMi0wMi0y
NiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFj
XSBSZWxlYXNlIGxvY2FsaXplZCBTdHJpbmdzIGluc3RlYWQgb2YgQXV0b1JlbGVhc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggZmVjYTlmMzdiNjIwZTY4ZWFiODdiNzJjYWU3ODk1OTRkOGJkOWI1
Yi4uYTRkOWY3OGEwNzllZDZjZDEzMjVlNzA1NGE2ZDExMGRjMjYwYWIwMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTYwNiw2ICs2MDYsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9t
L1F1YWxpZmllZE5hbWUuY3BwCiAgICAgZG9tL1JhbmdlLmNwcAogICAgIGRvbS9SYW5nZUV4Y2Vw
dGlvbi5jcHAKKyAgICBkb20vUmVnaW9uTm9kZUxpc3QuY3BwCiAgICAgZG9tL1JlZ2lzdGVyZWRF
dmVudExpc3RlbmVyLmNwcAogICAgIGRvbS9TY29wZWRFdmVudFF1ZXVlLmNwcAogICAgIGRvbS9T
Y3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCA1ZDg4Yjk2YjcyMWE1YjQ0ODU2YzQ3ZjQ3ZTc2YWI2YzI4NWZjMDNmLi5iMjg3YjYyMDUx
ZTMzNDExZGE2NTk4MThmZTRhNDgwZWFjYzM4NmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTE3MTksNiArMTcxOSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9SYW5n
ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmggXAorCVNv
dXJjZS9XZWJDb3JlL2RvbS9SZWdpb25Ob2RlTGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Rv
bS9SZWdpb25Ob2RlTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUmVnaXN0ZXJlZEV2ZW50
TGlzdGVuZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUmVnaXN0ZXJlZEV2ZW50TGlzdGVu
ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1JlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQppbmRleCAwYzYzZWE4OTY2ZjQwZWZhYjVjYzc1N2Q3NzAwOGI5YjFmNWQ2NDYwLi45
NWQwNGRkMTJmMDYwOGM0NjU3MWY1YmI0YmZmOWY5MDYzMWUxMjk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAg
LTU2MSw2ICs1NjEsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vUmFuZ2UuY3BwIFwKICAgICBk
b20vUmFuZ2VFeGNlcHRpb24uY3BwIFwKICAgICBkb20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmgg
XAorICAgIGRvbS9SZWdpb25Ob2RlTGlzdC5jcHAgXAogICAgIGRvbS9SZWdpc3RlcmVkRXZlbnRM
aXN0ZW5lci5jcHAgXAogICAgIGRvbS9TY29wZWRFdmVudFF1ZXVlLmNwcCBcCiAgICAgZG9tL1Nj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDg0Nzkz
OTFjODg5MjYxMDJkODk0YjM0OGQ2NzA0ZDBhYmQ1NTNlNjEuLjMwMDY5M2NlYzUzNmNkZWI4YTNl
MzkxOGQ1OTdmY2Y4NWIzNWEwYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTUxMzQsNiArNTEzNCw4
IEBACiAgICAgICAgICAgICAnZG9tL1JhbmdlLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1Jhbmdl
RXhjZXB0aW9uLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1JhbmdlRXhjZXB0aW9uLmgnLAorICAg
ICAgICAgICAgJ2RvbS9SZWdpb25Ob2RlTGlzdC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9SZWdp
b25Ob2RlTGlzdC5oJywKICAgICAgICAgICAgICdkb20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmgn
LAogICAgICAgICAgICAgJ2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAnLAogICAgICAg
ICAgICAgJ2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZjcxMWFmNjQ2NzA2MWM3
NjRhZjQyMmNhN2JiOTIzOTdiZDJlMzQwYS4uZmU5NDAzNGEwNWQ1OTkxOTNlOWVmZWIyN2EwNGE3
OWNlMTc5ZjJhZiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTUwODY2LDYgKzUwODY2LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxSZWdpb25Ob2RlTGlzdC5jcHAiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxSZWdpb25Ob2Rl
TGlzdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
Llxkb21cUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBhOTZmNjMyOTRiOGQ3NDE3YTM5Mjg1ZjkxOWFiMDI3NzJhMzY5ZGJjLi5m
NzdlZjViZmM3ZGFlY2NjOWIzMmIyZDIxZWEwOTY5YWY0YWYzMDAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMDExLDYgKzMw
MTEsOCBAQAogCQk4QUE2MUNGRjE0NEQ1OTVCMDBGMzczNTAgLyogV2ViS2l0Q1NTUmVnaW9uUnVs
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUE2
MUNGRDE0NEQ1OTVCMDBGMzczNTAgLyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAgKi87IH07CiAJ
CThBQTYxRDAwMTQ0RDU5NUIwMEYzNzM1MCAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUE2MUNGRTE0NEQ1OTVC
MDBGMzczNTAgLyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5oICovOyB9OwogCQk4QUI0QkM3NzEyNkZE
QjcxMDBERUI3MjcgLyogSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBQjRCQzc2MTI2
RkRCNzEwMERFQjcyNyAvKiBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5o
ICovOyB9OworCQk4QUJBRkI5RjE0RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEFCQUZCOUQx
NEY1MTA3NTAwQTQ5ODRCIC8qIFJlZ2lvbk5vZGVMaXN0LmNwcCAqLzsgfTsKKwkJOEFCQUZCQTAx
NEY1MTA3NTAwQTQ5ODRCIC8qIFJlZ2lvbk5vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUJBRkI5RTE0RjUxMDc1MDBBNDk4NEIgLyogUmVn
aW9uTm9kZUxpc3QuaCAqLzsgfTsKIAkJOEFEMEE1OTQxNEM4ODMzNjAwMEQ4M0M1IC8qIEpTV2Vi
S2l0Q1NTUmVnaW9uUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4QUNDMjRDRDE0OEUyNEIyMDBFRkNDMEQgLyogSlNXZWJLaXRDU1NSZWdpb25S
dWxlLmNwcCAqLzsgfTsKIAkJOEFEMEE1OTUxNEM4ODMzNjAwMEQ4M0M1IC8qIEpTV2ViS2l0Q1NT
UmVnaW9uUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOEFDQzI0Q0UxNDhFMjRCMjAwRUZDQzBEIC8qIEpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5oICov
OyB9OwogCQk4QUQwQTU5NjE0Qzg4MzU4MDAwRDgzQzUgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVs
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEFDQzI4
MTcxNDhFNDdFNzAwRUZDQzBEIC8qIERPTVdlYktpdENTU1JlZ2lvblJ1bGUuaCAqLzsgfTsKQEAg
LTk4ODMsNiArOTg4NSw4IEBACiAJCThBQTYxQ0ZEMTQ0RDU5NUIwMEYzNzM1MCAvKiBXZWJLaXRD
U1NSZWdpb25SdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YktpdENTU1JlZ2lvblJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QUE2
MUNGRTE0NEQ1OTVCMDBGMzczNTAgLyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRDU1NSZWdpb25SdWxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCThBQjRCQzc2MTI2RkRCNzEwMERFQjcyNyAvKiBJZ25vcmVEZXN0
cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4QUJBRkI5RDE0RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9u
Tm9kZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVnaW9u
Tm9kZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4QUJBRkI5RTE0RjUx
MDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVnaW9uTm9kZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OEFDQzI0Q0QxNDhFMjRCMjAwRUZDQzBEIC8qIEpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdENTU1JlZ2lvblJ1bGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QUNDMjRDRTE0OEUyNEIyMDBFRkND
MEQgLyogSlNXZWJLaXRDU1NSZWdpb25SdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4QUNDMjgxNzE0OEU0N0U3MDBFRkNDMEQgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRDU1NSZWdpb25SdWxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDg0Nyw2ICsyMDg1MSw4IEBACiAJ
CQkJRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi8sCiAJCQkJ
RDIzQ0E1NDgwQUIwRTk4MzAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmlkbCAqLywKIAkJCQlB
ODREODI3QjExRDMzM0VEMDA5NzI5OTAgLyogUmF3RGF0YURvY3VtZW50UGFyc2VyLmggKi8sCisJ
CQkJOEFCQUZCOUQxNEY1MTA3NTAwQTQ5ODRCIC8qIFJlZ2lvbk5vZGVMaXN0LmNwcCAqLywKKwkJ
CQk4QUJBRkI5RTE0RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3QuaCAqLywKIAkJCQk4
NTAzMUIzNTBBNDRFRkM3MDBGOTkyRTAgLyogUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuY3BwICov
LAogCQkJCTg1MDMxQjM2MEE0NEVGQzcwMEY5OTJFMCAvKiBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5l
ci5oICovLAogCQkJCUE3NkU1RjdFMTM1RTBEQ0YwMEE2OTgzNyAvKiBSZW5kZXJlZERvY3VtZW50
TWFya2VyLmggKi8sCkBAIC0yNDM3Niw2ICsyNDM4Miw3IEBACiAJCQkJRTFCRTUxMkUwQ0Y2QzUx
MjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3RTJF
MEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
NTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OEFCQUZCQTAxNEY1MTA3NTAwQTQ5ODRCIC8qIFJlZ2lvbk5vZGVMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTI3MzMwLDYgKzI3MzM3LDcgQEAKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkg
LyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJGMEZD
OUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENTM3MzUy
MTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4QUJB
RkI5RjE0RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKaW5kZXggMmU5YzYxYTdlMWQwMzAxMjU4OTAzMjZjM2IzNTQwMzc4NmUz
NGYyZi4uZGQxZGM5M2E4ODA5NDNlMGJjMmYyYjEyZDE2YTIyZjNmYjNlNzA4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcApAQCAtMTAzMSw2ICsxMDMxLDE2IEBAIHZvaWQgTm9kZTo6cmVtb3ZlQ2FjaGVkQ2xh
c3NOb2RlTGlzdChDbGFzc05vZGVMaXN0KiBsaXN0LCBjb25zdCBTdHJpbmcmIGNsYXNzTmFtCiAg
ICAgZGF0YS0+bV9jbGFzc05vZGVMaXN0Q2FjaGUucmVtb3ZlKGNsYXNzTmFtZSk7CiB9CiAKK3Zv
aWQgTm9kZTo6cmVtb3ZlQ2FjaGVkUmVnaW9uTm9kZUxpc3QoUmVnaW9uTm9kZUxpc3QqIGxpc3Qs
IGNvbnN0IEF0b21pY1N0cmluZyYgZmxvd05hbWUpCit7CisgICAgQVNTRVJUKHJhcmVEYXRhKCkp
OworICAgIEFTU0VSVChyYXJlRGF0YSgpLT5ub2RlTGlzdHMoKSk7CisKKyAgICBOb2RlTGlzdHNO
b2RlRGF0YSogZGF0YSA9IHJhcmVEYXRhKCktPm5vZGVMaXN0cygpOworICAgIEFTU0VSVF9VTlVT
RUQobGlzdCwgbGlzdCA9PSBkYXRhLT5tX3JlZ2lvbk5vZGVMaXN0Q2FjaGUuZ2V0KGZsb3dOYW1l
KSk7CisgICAgZGF0YS0+bV9yZWdpb25Ob2RlTGlzdENhY2hlLnJlbW92ZShmbG93TmFtZSk7Cit9
CisKIHZvaWQgTm9kZTo6cmVtb3ZlQ2FjaGVkTmFtZU5vZGVMaXN0KE5hbWVOb2RlTGlzdCogbGlz
dCwgY29uc3QgU3RyaW5nJiBub2RlTmFtZSkKIHsKICAgICBBU1NFUlQocmFyZURhdGEoKSk7CkBA
IC0xNjY3LDYgKzE2NzcsMTggQEAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gTm9kZTo6Z2V0RWxlbWVu
dHNCeUNsYXNzTmFtZShjb25zdCBTdHJpbmcmIGNsYXNzTmFtZXMpCiAgICAgcmV0dXJuIGxpc3Qu
cmVsZWFzZSgpOwogfQogCitQYXNzUmVmUHRyPE5vZGVMaXN0PiBOb2RlOjpnZXRSZWdpb25zQnlD
b250ZW50Tm9kZShjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dOYW1lKQoreworICAgIHBhaXI8Tm9k
ZUxpc3RzTm9kZURhdGE6OlJlZ2lvbk5vZGVMaXN0Q2FjaGU6Oml0ZXJhdG9yLCBib29sPiByZXN1
bHQKKyAgICA9IGVuc3VyZVJhcmVEYXRhKCktPmVuc3VyZU5vZGVMaXN0cyh0aGlzKS0+bV9yZWdp
b25Ob2RlTGlzdENhY2hlLmFkZChmbG93TmFtZSwgMCk7CisgICAgaWYgKCFyZXN1bHQuc2Vjb25k
KQorICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxOb2RlTGlzdD4ocmVzdWx0LmZpcnN0LT5zZWNv
bmQpOworICAgIAorICAgIFJlZlB0cjxSZWdpb25Ob2RlTGlzdD4gbGlzdCA9IFJlZ2lvbk5vZGVM
aXN0OjpjcmVhdGUodGhpcywgZmxvd05hbWUpOworICAgIHJlc3VsdC5maXJzdC0+c2Vjb25kID0g
bGlzdC5nZXQoKTsKKyAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7Cit9CisKIFBhc3NSZWZQdHI8
RWxlbWVudD4gTm9kZTo6cXVlcnlTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKHNlbGVjdG9ycy5pc0VtcHR5KCkpIHsKQEAgLTIz
NTIsNiArMjM3NCw5IEBAIHZvaWQgTm9kZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVDYWNoZXMo
KQogICAgIFRhZ05vZGVMaXN0Q2FjaGVOUzo6Y29uc3RfaXRlcmF0b3IgdGFnQ2FjaGVOU0VuZCA9
IG1fdGFnTm9kZUxpc3RDYWNoZU5TLmVuZCgpOwogICAgIGZvciAoVGFnTm9kZUxpc3RDYWNoZU5T
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fdGFnTm9kZUxpc3RDYWNoZU5TLmJlZ2luKCk7IGl0ICE9
IHRhZ0NhY2hlTlNFbmQ7ICsraXQpCiAgICAgICAgIGl0LT5zZWNvbmQtPmludmFsaWRhdGVDYWNo
ZSgpOworICAgIFJlZ2lvbk5vZGVMaXN0Q2FjaGU6OmNvbnN0X2l0ZXJhdG9yIHJlZ2lvbkxpc3RD
YWNoZUVuZCA9IG1fcmVnaW9uTm9kZUxpc3RDYWNoZS5lbmQoKTsKKyAgICBmb3IgKFJlZ2lvbk5v
ZGVMaXN0Q2FjaGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9yZWdpb25Ob2RlTGlzdENhY2hlLmJl
Z2luKCk7IGl0ICE9IHJlZ2lvbkxpc3RDYWNoZUVuZDsgKytpdCkKKyAgICAgICAgaXQtPnNlY29u
ZC0+aW52YWxpZGF0ZUNhY2hlKCk7CiAgICAgaW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0
dHJpYnV0ZXMoKTsKIH0KIApAQCAtMjM5OCwxMCArMjQyMywxMiBAQCBib29sIE5vZGVMaXN0c05v
ZGVEYXRhOjppc0VtcHR5KCkgY29uc3QKICAgICBpZiAoIW1fbWljcm9EYXRhSXRlbUxpc3RDYWNo
ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgorICAgIGlmICghbV9y
ZWdpb25Ob2RlTGlzdENhY2hlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgaWYgKG1fbGFiZWxzTm9kZUxpc3RDYWNoZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotCisg
ICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGFkNDZkY2QwNDVkMzU0
NGJlMGJjOTRjM2RiY2Y1ZTBkYjQ5OWM3ZjEuLjQ1NjE2YTEwZmYzZGMxNTgwMzlhMjFmM2EzZTEw
ZGIzNDg5YmMwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtNzIsNiArNzIsNyBAQCBjbGFzcyBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQ7CiBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBQbGF0Zm9y
bVdoZWVsRXZlbnQ7CiBjbGFzcyBRdWFsaWZpZWROYW1lOworY2xhc3MgUmVnaW9uTm9kZUxpc3Q7
CiBjbGFzcyBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcjsKIGNsYXNzIFJlbmRlckFyZW5hOwogY2xh
c3MgUmVuZGVyQm94OwpAQCAtNTUwLDYgKzU1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVucmVn
aXN0ZXJEeW5hbWljU3VidHJlZU5vZGVMaXN0KER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqKTsKICAg
ICB2b2lkIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJik7CiAgICAgdm9pZCBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRl
ckNoaWxkcmVuQ2hhbmdlZCgpOworICAgIHZvaWQgaW52YWxpZGF0ZVJlZ2lvbkxpc3RDYWNoZSgp
OwogICAgIHZvaWQgbm90aWZ5TG9jYWxOb2RlTGlzdHNMYWJlbENoYW5nZWQoKTsKICAgICB2b2lk
IHJlbW92ZUNhY2hlZENsYXNzTm9kZUxpc3QoQ2xhc3NOb2RlTGlzdCosIGNvbnN0IFN0cmluZyYp
OwogCkBAIC01NTcsNiArNTU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkVGFn
Tm9kZUxpc3QoVGFnTm9kZUxpc3QqLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKICAgICB2b2lkIHJl
bW92ZUNhY2hlZFRhZ05vZGVMaXN0KFRhZ05vZGVMaXN0KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYp
OwogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkTGFiZWxzTm9kZUxpc3QoRHluYW1pY1N1YnRyZWVOb2Rl
TGlzdCopOworICAgIHZvaWQgcmVtb3ZlQ2FjaGVkUmVnaW9uTm9kZUxpc3QoUmVnaW9uTm9kZUxp
c3QqLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKIAogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkQ2hpbGRO
b2RlTGlzdCgpOwogCkBAIC01NjQsNiArNTY3LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8
Tm9kZUxpc3Q+IGdldEVsZW1lbnRzQnlUYWdOYW1lTlMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
c3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKTsKICAgICBQYXNzUmVmUHRy
PE5vZGVMaXN0PiBnZXRFbGVtZW50c0J5TmFtZShjb25zdCBTdHJpbmcmIGVsZW1lbnROYW1lKTsK
ICAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNvbnN0IFN0
cmluZyYgY2xhc3NOYW1lcyk7CisgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0UmVnaW9uc0J5
Q29udGVudE5vZGUoY29uc3QgQXRvbWljU3RyaW5nJiBmbG93TmFtZSk7CiAKICAgICBQYXNzUmVm
UHRyPEVsZW1lbnQ+IHF1ZXJ5U2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvcnMsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBxdWVyeVNlbGVjdG9yQWxsKGNv
bnN0IFN0cmluZyYgc2VsZWN0b3JzLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJh
cmVEYXRhLmgKaW5kZXggMDg2NGIyNjI2Y2MzYTUzZWYzZmRiMDFlMTQ1NDNiNTZmOGMwOTNjMC4u
ZDA0Nzc5MWU3M2Y4YzlkOTIxNjZhZDQ2ZWI3NDE5MDllMGZiOWEzMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmFyZURhdGEuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uaCIKICNpbmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKICNpbmNsdWRlICJR
dWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiUmVnaW9uTm9kZUxpc3QuaCIKICNpbmNsdWRlICJU
YWdOb2RlTGlzdC5oIgogI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNzEsNiArNzIsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIExhYmVsc05vZGVMaXN0KiBtX2xhYmVsc05vZGVMaXN0Q2FjaGU7CisKKyAgICB0eXBlZGVm
IEhhc2hNYXA8QXRvbWljU3RyaW5nLCBSZWdpb25Ob2RlTGlzdCo+IFJlZ2lvbk5vZGVMaXN0Q2Fj
aGU7CisgICAgUmVnaW9uTm9kZUxpc3RDYWNoZSBtX3JlZ2lvbk5vZGVMaXN0Q2FjaGU7CiAgCiAg
ICAgc3RhdGljIFBhc3NPd25QdHI8Tm9kZUxpc3RzTm9kZURhdGE+IGNyZWF0ZSgpCiAgICAgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lvbk5vZGVMaXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9SZWdpb25Ob2RlTGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjExNmQzYmNjOWI1
OGM4NmJlYmUxNTM3MzU0YTNkNDQ3ZjE3MTkzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9SZWdpb25Ob2RlTGlzdC5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENv
cHlyaWdodCAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUK
KyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2Ns
YWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVnaW9uTm9k
ZUxpc3QuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyRmxvd1Ro
cmVhZC5oIgorI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgorI2luY2x1ZGUgIldlYktpdE5hbWVk
Rmxvdy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZ2lvbk5vZGVMaXN0OjpSZWdpb25O
b2RlTGlzdChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgZmxvd05h
bWUpCis6IER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qobm9kZS0+ZG9jdW1lbnQoKSkKKywgbV9jb250
ZW50Tm9kZShub2RlKQorLCBtX2Zsb3dOYW1lKGZsb3dOYW1lKQoreworfQorCitSZWdpb25Ob2Rl
TGlzdDo6flJlZ2lvbk5vZGVMaXN0KCkKK3sKKyAgICBtX2NvbnRlbnROb2RlLT5yZW1vdmVDYWNo
ZWRSZWdpb25Ob2RlTGlzdCh0aGlzLCBtX2Zsb3dOYW1lKTsKK30gCisKK2Jvb2wgUmVnaW9uTm9k
ZUxpc3Q6Om5vZGVNYXRjaGVzKEVsZW1lbnQqIHRlc3ROb2RlKSBjb25zdAoreworICAgIGlmICgh
bV9jb250ZW50Tm9kZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
aWYgKCF0ZXN0Tm9kZS0+cmVuZGVyZXIoKSB8fCAhdGVzdE5vZGUtPnJlbmRlcmVyKCktPmlzUmVu
ZGVyUmVnaW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlbmRlclJlZ2lvbiog
cmVnaW9uID0gdG9SZW5kZXJSZWdpb24odGVzdE5vZGUtPnJlbmRlcmVyKCkpOworICAgIGlmICgh
cmVnaW9uLT5pc1ZhbGlkKCkgfHwgKHJlZ2lvbi0+c3R5bGUoKS0+cmVnaW9uVGhyZWFkKCkgIT0g
bV9mbG93TmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiByZWdpb24t
PmZsb3dUaHJlYWQoKS0+b2JqZWN0SW5GbG93UmVnaW9uKG1fY29udGVudE5vZGUtPnJlbmRlcmVy
KCksIHJlZ2lvbik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1JlZ2lvbk5vZGVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UmVnaW9uTm9kZUxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTM5NTdkMmQzNzRjNTZjMmVjZjhlMGFiNWRj
MjE4ZTU0YjhiZTVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lv
bk5vZGVMaXN0LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEyIEFkb2Jl
IFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFJlZ2lvbk5vZGVMaXN0X2gKKyNkZWZpbmUgUmVnaW9uTm9kZUxpc3RfaAorCisjaW5j
bHVkZSAiRHluYW1pY05vZGVMaXN0LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFJlZ2lvbk5vZGVMaXN0IDogcHVibGljIER5bmFtaWNTdWJ0cmVl
Tm9kZUxpc3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlZ2lvbk5vZGVMaXN0
PiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dO
YW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZWdpb25Ob2RlTGlzdChu
b2RlLCBmbG93TmFtZSkpOworICAgIH0KKyAgICAKKyAgICB2aXJ0dWFsIH5SZWdpb25Ob2RlTGlz
dCgpOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBib29sIG5vZGVNYXRjaGVzKEVsZW1lbnQq
KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBSZWdpb25Ob2RlTGlzdChQYXNzUmVmUHRyPE5vZGU+
LCBjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dOYW1lKTsKKyAgICAKKyAgICBSZWZQdHI8Tm9kZT4g
bV9jb250ZW50Tm9kZTsKKyAgICBBdG9taWNTdHJpbmcgbV9mbG93TmFtZTsKK307CisgICAgCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRO
YW1lZEZsb3cuY3BwCmluZGV4IDZkM2I4ZTA4NGQ5YmU5NzQ1ODQ1MTgxMjJiN2IwY2UxMjk1ZmIy
NDQuLmMzNjI5OTQzMDhjOTYzYzc5MWQ0NzdhYjhhYTg4MDc2ODUyMGVmNDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0TmFtZWRGbG93LmgiCiAKKyNpbmNsdWRlICJOb2Rl
LmgiCisjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDQgKzUxLDEzIEBAIGJvb2wgV2ViS2l0TmFt
ZWRGbG93OjpvdmVyZmxvdygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFyZW50Rmxvd1RocmVhZC0+
b3ZlcmZsb3coKTsKIH0KIAorUGFzc1JlZlB0cjxOb2RlTGlzdD4gV2ViS2l0TmFtZWRGbG93Ojpn
ZXRSZWdpb25zQnlDb250ZW50Tm9kZShOb2RlKiBjb250ZW50Tm9kZSkKK3sKKyAgICBpZiAoIWNv
bnRlbnROb2RlKQorICAgICAgICByZXR1cm4gMDsKKyAgICBtX3BhcmVudEZsb3dUaHJlYWQtPmRv
Y3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOyAKKyAgICBy
ZXR1cm4gY29udGVudE5vZGUtPmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKG1fcGFyZW50Rmxvd1Ro
cmVhZC0+Zmxvd1RocmVhZCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKaW5kZXggOWVmM2M1YWE5NDQ2ZGUyMjg5OGExNTNk
MTdjZTgzNTBmZGQwZGUxOC4uYjZmNThjMTJhZTdkNzNmNzhmOWJjNTY2ZDI3OGRjYTE3NGE4MGM3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaApAQCAtMzUsNiArMzUsOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE5vZGU7CitjbGFzcyBOb2RlTGlzdDsKIGNs
YXNzIFJlbmRlckZsb3dUaHJlYWQ7CiAKIGNsYXNzIFdlYktpdE5hbWVkRmxvdyA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYktpdE5hbWVkRmxvdz4gewpAQCAtNDcsNiArNDksOCBAQCBwdWJsaWM6CiAg
ICAgfldlYktpdE5hbWVkRmxvdygpOwogCiAgICAgYm9vbCBvdmVyZmxvdygpIGNvbnN0OworICAg
IFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKE5vZGUqKTsKKwog
cHJpdmF0ZToKICAgICBXZWJLaXROYW1lZEZsb3coUmVuZGVyRmxvd1RocmVhZCopOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsCmluZGV4IGEzNjgxODg5ZjkxYTg2YzE4MTcy
ODEzZWVmNzE3NGI0ODY5MmM3ZjcuLjEwYTRkOWU5ODFjNjBiZTMwNTNjNjYxMTA4YTQ5OGQwZDAz
Nzg3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsCkBAIC0zMiw1ICsz
Miw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKICAgICBd
IFdlYktpdE5hbWVkRmxvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG92
ZXJmbG93OworICAgICAgICBOb2RlTGlzdCBnZXRSZWdpb25zQnlDb250ZW50Tm9kZShpbiBOb2Rl
IGNvbnRlbnROb2RlKTsKICAgICB9OwogfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXggNzk4MTZhYTRiOWQyZTEzMTA1ZTFkYzUwZmU5ZGNl
MDE0MDBmOWZmMS4uZTI0MWQ5NjcwZGZhMTMwY2UxNjcxZGNjMDA2YmZlMjNiNWNhNDBhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtMTMs
NyArMTMsNyBAQAogICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzCiAgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAg
KiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg
4oCcQVMgSVPigJ0gQU5EIEFOWQorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKICAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSIEJFCkBAIC05MDUsNCArOTA1LDcwIEBAIHZvaWQgUmVuZGVyRmxvd1RocmVh
ZDo6Y29tcHV0ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKExheW91dFVuaXQgb2xkQ2xpZW50QWZ0
ZXJFCiAgICAgbV9vdmVyZmxvdyA9IGxhc3RSZWcgJiYgKGxhc3RSZWctPnJlZ2lvblN0YXRlKCkg
PT0gUmVuZGVyUmVnaW9uOjpSZWdpb25PdmVyZmxvdyk7CiB9CiAKK2Jvb2wgUmVuZGVyRmxvd1Ro
cmVhZDo6cmVnaW9uSW5SYW5nZShjb25zdCBSZW5kZXJSZWdpb24qIHRhcmdldFJlZ2lvbiwgY29u
c3QgUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBlbmRSZWdp
b24pIGNvbnN0Cit7CisgICAgQVNTRVJUKHRhcmdldFJlZ2lvbik7CisKKyAgICBmb3IgKFJlbmRl
clJlZ2lvbkxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9yZWdpb25MaXN0LmZpbmQoY29uc3Rf
Y2FzdDxSZW5kZXJSZWdpb24qPihzdGFydFJlZ2lvbikpOyBpdCAhPSBtX3JlZ2lvbkxpc3QuZW5k
KCk7ICsraXQpIHsKKyAgICAgICAgY29uc3QgUmVuZGVyUmVnaW9uKiBjdXJyUmVnaW9uID0gKml0
OworICAgICAgICBpZiAoIWN1cnJSZWdpb24tPmlzVmFsaWQoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBpZiAodGFyZ2V0UmVnaW9uID09IGN1cnJSZWdpb24pCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGN1cnJSZWdpb24gPT0gZW5kUmVnaW9uKQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFJl
bmRlckZsb3dUaHJlYWQ6Om9iamVjdEluRmxvd1JlZ2lvbihjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCwgY29uc3QgUmVuZGVyUmVnaW9uKiByZWdpb24pIGNvbnN0Cit7CisgICAgQVNTRVJUKG9i
amVjdCk7CisgICAgQVNTRVJUKHJlZ2lvbik7CisKKyAgICBpZiAoIW9iamVjdC0+aW5SZW5kZXJG
bG93VGhyZWFkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAob2JqZWN0LT5lbmNs
b3NpbmdSZW5kZXJGbG93VGhyZWFkKCkgIT0gdGhpcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghbV9yZWdpb25MaXN0LmNvbnRhaW5zKGNvbnN0X2Nhc3Q8UmVuZGVyUmVnaW9uKj4o
cmVnaW9uKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlbmRlckJveCogZW5jbG9z
aW5nQm94ID0gb2JqZWN0LT5lbmNsb3NpbmdCb3goKTsKKyAgICBSZW5kZXJSZWdpb24qIGVuY2xv
c2luZ0JveFN0YXJ0UmVnaW9uID0gMDsKKyAgICBSZW5kZXJSZWdpb24qIGVuY2xvc2luZ0JveEVu
ZFJlZ2lvbiA9IDA7CisgICAgZ2V0UmVnaW9uUmFuZ2VGb3JCb3goZW5jbG9zaW5nQm94LCBlbmNs
b3NpbmdCb3hTdGFydFJlZ2lvbiwgZW5jbG9zaW5nQm94RW5kUmVnaW9uKTsKKyAgICBpZiAoIXJl
Z2lvbkluUmFuZ2UocmVnaW9uLCBlbmNsb3NpbmdCb3hTdGFydFJlZ2lvbiwgZW5jbG9zaW5nQm94
RW5kUmVnaW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKG9iamVjdC0+aXNC
b3goKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBMYXlvdXRSZWN0IG9iamVjdEFCQlJl
Y3QgPSBvYmplY3QtPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KHRydWUpOworICAgIGlmICghb2Jq
ZWN0QUJCUmVjdC53aWR0aCgpKQorICAgICAgICBvYmplY3RBQkJSZWN0LnNldFdpZHRoKDEpOwor
ICAgIGlmICghb2JqZWN0QUJCUmVjdC5oZWlnaHQoKSkKKyAgICAgICAgb2JqZWN0QUJCUmVjdC5z
ZXRIZWlnaHQoMSk7IAorICAgIGlmIChvYmplY3RBQkJSZWN0LmludGVyc2VjdHMocmVnaW9uLT5h
YnNvbHV0ZUJvdW5kaW5nQm94UmVjdCh0cnVlKSkpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgaWYgKHJlZ2lvbiA9PSBsYXN0UmVnaW9uKCkpIHsKKyAgICAgICAgLy8gSWYgdGhlIG9iamVj
dCBkb2VzIG5vdCBpbnRlcnNlY3QgYW55IG9mIHRoZSBlbmNsb3NpbmcgYm94IHJlZ2lvbnMKKyAg
ICAgICAgLy8gdGhlbiB0aGUgb2JqZWN0IGlzIGluIGxhc3QgcmVnaW9uLgorICAgICAgICBmb3Ig
KFJlbmRlclJlZ2lvbkxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9yZWdpb25MaXN0LmZpbmQo
ZW5jbG9zaW5nQm94U3RhcnRSZWdpb24pOyBpdCAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXQp
IHsKKyAgICAgICAgICAgIGNvbnN0IFJlbmRlclJlZ2lvbiogY3VyclJlZ2lvbiA9ICppdDsKKyAg
ICAgICAgICAgIGlmICghcmVnaW9uLT5pc1ZhbGlkKCkpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICBpZiAoY3VyclJlZ2lvbiA9PSByZWdpb24pCisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBpZiAob2JqZWN0QUJCUmVjdC5pbnRlcnNlY3RzKGN1cnJS
ZWdpb24tPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KHRydWUpKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IGJkYTc4NWRjMjc3YmVm
Mjk5Y2VkYzc4Y2NjMjBmNTM4YjMxNWY2NjIuLmI5NThlYjE2NDUwMjc2MDcyYTZmMTZlZTFkMDJk
NmZjOTIxNDg4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJl
YWQuaApAQCAtMTMsNyArMTMsNyBAQAogICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCiAgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCiAgKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CiAgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKICAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCkBAIC0xMzYsNiArMTM2LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyhMYXlvdXRVbml0IG9sZENs
aWVudEFmdGVyRWRnZSk7CiAKICAgICBib29sIG92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9v
dmVyZmxvdzsgfQorCisgICAgLy8gQ2hlY2sgaWYgdGhlIG9iamVjdCBpcyBpbiByZWdpb24gYW5k
IHRoZSByZWdpb24gaXMgcGFydCBvZiB0aGlzIGZsb3cgdGhyZWFkLgorICAgIGJvb2wgb2JqZWN0
SW5GbG93UmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlclJlZ2lvbiopIGNv
bnN0OworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNv
bnN0IHsgcmV0dXJuICJSZW5kZXJGbG93VGhyZWFkIjsgfQogCkBAIC0xNDYsNiArMTUwLDggQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkUmVwYWludChjb25zdCBMYXlvdXRSZWN0JikgY29u
c3Q7CiAKKyAgICBib29sIHJlZ2lvbkluUmFuZ2UoY29uc3QgUmVuZGVyUmVnaW9uKiB0YXJnZXRS
ZWdpb24sIGNvbnN0IFJlbmRlclJlZ2lvbiogc3RhcnRSZWdpb24sIGNvbnN0IFJlbmRlclJlZ2lv
biogZW5kUmVnaW9uKSBjb25zdDsKKwogICAgIHR5cGVkZWYgTGlzdEhhc2hTZXQ8UmVuZGVyT2Jq
ZWN0Kj4gRmxvd1RocmVhZENoaWxkTGlzdDsKICAgICBGbG93VGhyZWFkQ2hpbGRMaXN0IG1fZmxv
d1RocmVhZENoaWxkTGlzdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5o
CmluZGV4IDE0M2VhY2RhM2QzNzhhYTdiNWFjYTkzZjlkZDU2YjM4NjM5MTM1ZjQuLjcwZmEyM2Iz
MDdhMDhmMGYxNWJiNGMwNDg2ZDRhODgzOTM2MzAyMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgYXR0
YWNoUmVnaW9uKCk7CiAgICAgdm9pZCBkZXRhY2hSZWdpb24oKTsKIAorICAgIFJlbmRlckZsb3dU
aHJlYWQqIGZsb3dUaHJlYWQoKSBjb25zdCB7IHJldHVybiBtX2Zsb3dUaHJlYWQ7IH0KICAgICBS
ZW5kZXJGbG93VGhyZWFkKiBwYXJlbnRGbG93VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV9wYXJl
bnRGbG93VGhyZWFkOyB9CiAKICAgICAvLyBWYWxpZCByZWdpb25zIGRvIG5vdCBjcmVhdGUgY2ly
Y3VsYXIgZGVwZW5kZW5jaWVzIHdpdGggb3RoZXIgZmxvd3MuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTNjODBmYzY3NjUy
ODVmMTczYzc3NmIzZGUyMGIzZGY1YzI4NzIyMi4uYzg0N2UzZmFjZDhlM2JmZDBmZGQ5MjVmNjNm
YjcxMTNlMmYyOWQ3NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAyLTI2ICBNaWhuZWEg
T3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXUltcGxl
bWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzc0NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhdmlkIEh5YXR0LgorCisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5
LWNvbnRlbnQtbm9kZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9u
cy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotYnQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhv
cml6LWJ0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1i
eS1jb250ZW50LW5vZGUtaG9yaXotdGItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LXRiLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUt
dmVydC1sci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQt
cmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1sci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtcmwtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVu
dC1ub2RlLXZlcnQtcmwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1y
ZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lv
bnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTAyLTI2ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9udW1iZXIvaW5wdXQtbnVtYmVyLWV2
ZW50cy5odG1sIGlzIGZhaWxpbmcgc2luY2UgcjEwODIyOApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjk2YjEzZDI4NGQyOWY1YTA2YTVlOWJhNDdmZjQyMjdh
MzJhODQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1y
ZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVz
dCBmb3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNC
eUNvbnRlbnROb2RlCisKK09uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mIFBB
U1MgYmVsb3cuCisKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9u
cy1ieS1jb250ZW50LW5vZGUtaG9yaXotYnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1idC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWRkYzIwMTU4ZTUzZGU4MzkzNDZhNTRlMTE2ZDNkMzdhMTcyOTQ0Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1i
eS1jb250ZW50LW5vZGUtaG9yaXotYnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDggQEAKK1Rl
c3QgZm9yIDc3NzQ2OiBbQ1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25z
QnlDb250ZW50Tm9kZQorCitPbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQ
QVNTIGJlbG93LgorCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotYnQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9y
aXotYnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzEzYjM1ZTZjYjk1N2I5MjNjOGU3YjQ5Mzk4YjhlM2Q0
MDE1MjcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1y
ZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1idC5odG1sCkBAIC0wLDAgKzEsMTcxIEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9yZWdpb24tc3R5bGUuY3NzIj4KKyAgICAgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy9oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+
CisgICAgICAgICAgICBodG1sIHsgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQ7
IH0KKyAgICAgICAgICAgIGJvZHkgeyBmb250LWZhbWlseTogbW9ub3NwYWNlOyB9CisgICAgICAg
ICAgICAucmVnaW9uQm94IHsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAg
ICAgICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7IH0KKyAgICAgICAgICAgICNy
ZWdpb24sICNyZWdpb24yLCAjcmVnaW9uMyB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB9CisK
KyAgICAgICAgICAgICNhcnRpY2xlMiB7IC13ZWJraXQtZmxvdy1pbnRvOiBmbG93MjsgfQorICAg
ICAgICAgICAgI3JlZ2lvbjQsICNyZWdpb241IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOyB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2
IGlkPSJjb250YWluZXJNZXNzYWdlIj4KKyAgICAgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzc0NiI+CisgICAgICAg
ICAgICA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5
Q29udGVudE5vZGU8L2E+PC9wPgorICAgICAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3Vs
ZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxvdy48L3A+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPCEtLSBzb21lIHRlc3RzIHdpdGgg
aW5saW5lIGVsZW1lbnRzIC0tPgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIj4KKyAgICAgICAg
ICAgIDxzcGFuIGlkPSJzcGFuTm9kZSI+VGV4dCBpbnNpZGUgc3Bhbi48L3NwYW4+CisgICAgICAg
ICAgICBUZXh0IG91dHNpZGUgc3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4uIFRleHQgb3V0c2lkZSBz
cGFuLgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlMiI+VGV4dCBpbnNpZGUgc3BhbjIu
PC9zcGFuPgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlMyI+VGV4dCBpbnNpZGUgc3Bh
bjM8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNz
PSJyZWdpb25Cb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24yIiBjbGFzcz0icmVn
aW9uQm94Ij48L2Rpdj4KKworICAgICAgICA8IS0tIHNvbWUgdGVzdHMgd2l0aCBibG9jayBlbGVt
ZW50cyAtLT4KKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZTIiPgorICAgICAgICAgICAgPHAgaWQ9
InAxIj5UZXh0IGluc2lkZSBwYXJhZ3JhcGggcDEuPC9wPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGRpdiBpZD0icmVnaW9uNCIgY2xhc3M9InJlZ2lvbkJveCI+PC9yZWdpb24+CisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFt
ZSgiZmxvdyIpOworCisgICAgICAgICAgICBmdW5jdGlvbiBoaWRlUmVnaW9ucygpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUi
KS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKS5zdHlsZS52
aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZ2lvbjIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMiKS5zdHlsZS52aXNpYmlsaXR5
ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
Z2lvbjQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjUiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRl
biI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0QXJ0aWNsZSA9
IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYXJ0aWNsZSIpKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0QXJ0aWNsZSAhPSBu
dWxsLCAiUmVnaW9uIGxpc3QgZm9yIGFydGljbGUgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUubGVuZ3RoID09IDIsICJSZWdpb24gbGlz
dCBmb3IgYXJ0aWNsZSBzaG91bGQgaGF2ZSAyIGVsZW1lbnRzLCBoYXMgIiArIHJlZ2lvbkxpc3RB
cnRpY2xlLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdEFydGljbGUubGVuZ3Ro
ID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUuaXRlbSgwKSA9
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIiksICJGaXJzdCBlbGVtZW50IGluIHJl
Z2lvbiBsaXN0IGZvciBhcnRpY2xlIHNob3VsZCBiZSByZWdpb24sIGl0IGlzICIgKyByZWdpb25M
aXN0QXJ0aWNsZS5pdGVtKDApLmlkKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0QXJ0aWNs
ZS5sZW5ndGggPiAxKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0QXJ0aWNsZS5p
dGVtKDEpID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJTZWNvbmQgZWxl
bWVudCBpbiByZWdpb24gbGlzdCBmb3IgYXJ0aWNsZSBzaG91bGQgYmUgcmVnaW9uMiwgaXQgaXMg
IiArIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSkuaWQpOworCisgICAgICAgICAgICB2YXIgc3Bh
bk5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUiKTsKKyAgICAgICAgICAg
IHZhciByZWdpb25MaXN0U3BhbiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShz
cGFuTm9kZSk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4gIT0gbnVsbCwgIlJl
Z2lvbiBsaXN0IGZvciBzcGFuIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RTcGFuLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4gc2hv
dWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RTcGFuLmxlbmd0aCk7CisgICAg
ICAgICAgICBpZiAocmVnaW9uTGlzdFNwYW4ubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdFNwYW4uaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVnaW9uIiksICJGaXJzdCByZWdpb24gZm9yIHNwYW4gc2hvdWxkIGJlIHJlZ2lvbiwgaXQgaXMg
IiArIHJlZ2lvbkxpc3RTcGFuLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICB2YXIgc3Bhbk5v
ZGUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlMiIpOworICAgICAgICAgICAg
dmFyIHJlZ2lvbkxpc3RTcGFuMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShz
cGFuTm9kZTIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMiAhPSBudWxsLCAi
UmVnaW9uIGxpc3QgZm9yIHNwYW4yIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAg
YXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMi5sZW5ndGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZvciBzcGFu
MiBzaG91bGQgaGF2ZSAyIGVsZW1lbnRzLCBoYXMgIiArIHJlZ2lvbkxpc3RTcGFuMi5sZW5ndGgp
OworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InNwYW5Ob2RlMyIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RTcGFuMyA9IG5hbWVkRmxv
dy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZTMpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RTcGFuMyAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4zIHNob3VsZCBu
b3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMy5sZW5ndGgg
PT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAi
ICsgcmVnaW9uTGlzdFNwYW4zLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFNw
YW4zLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMy5p
dGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdp
b24gZm9yIHNwYW4gbm9kZSAzIHNob3VsZCBiZSB0aGUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMgIiAr
IHJlZ2lvbkxpc3RTcGFuMy5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgdmFyIHRleHROb2Rl
ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5v
ZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gIik7CisgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRl
eHROb2RlKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUgPSBuYW1lZEZsb3cu
Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUpOworICAgICAgICAgICAgYXNzZXJ0KHJl
Z2lvbkxpc3RUZXh0Tm9kZSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSBzaG91
bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUu
bGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBoYXZlIDEgZWxl
bWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUubGVuZ3RoKTsKKyAgICAgICAgICAgIGlm
IChyZWdpb25MaXN0VGV4dE5vZGUubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdFRleHROb2RlLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
Z2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIHNob3VsZCBiZSBzZWNvbmQgcmVn
aW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlLml0ZW0oMCkuaWQpOworCisgICAgICAg
ICAgICAvLyBBZGQgYW5vdGhlciB0ZXh0IG5vZGUgdGhhdCB3aWxsIG92ZXJmbG93IHRoZSByZWdp
b24yLgorICAgICAgICAgICAgdmFyIHRleHROb2RlMiA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJUZXh0IG5vZGUyLiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFy
dGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxp
c3RUZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUy
KTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyICE9IG51bGwsICJSZWdp
b24gbGlzdCBmb3IgdGV4dCBub2RlIDIgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZv
ciB0ZXh0IG5vZGUgMiBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRl
eHROb2RlMi5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVu
Z3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5pdGVt
KDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdpb24g
Zm9yIHRleHQgbm9kZSAyIHNob3VsZCBiZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9u
TGlzdFRleHROb2RlMi5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIg
dGV4dCBub2RlIHRoYXQgaXMgaW4gdGhlIG92ZXJmbG93IG9mIHRoZSBsYXN0IHJlZ2lvbi4KKyAg
ICAgICAgICAgIHZhciB0ZXh0Tm9kZTMgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBu
b2RlMy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIiku
YXBwZW5kQ2hpbGQodGV4dE5vZGUzKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5v
ZGUzID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlMyk7CisgICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMyAhPSBudWxsLCAiUmVnaW9uIGxpc3Qg
Zm9yIHRleHQgbm9kZSAzIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBu
b2RlIDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTMu
bGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUzLmxlbmd0aCA+IDAp
CisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMuaXRlbSgwKSA9PSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0
IG5vZGUgMyBzaG91bGQgYmUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0
Tm9kZTMuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHJlZ2lvbiB0
byB0YWtlIHRoZSBvdmVyZmxvd2luZyBlbGVtZW50cyBmcm9tIHNlY29uZCByZWdpb24uCisgICAg
ICAgICAgICB2YXIgcmVnaW9uMyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAg
ICAgICAgICAgcmVnaW9uMy5pZCA9ICJyZWdpb24zIjsKKyAgICAgICAgICAgIHJlZ2lvbjMuY2xh
c3NOYW1lID0gInJlZ2lvbkJveCI7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKHJlZ2lvbjMpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMiA9IG5h
bWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZSk7CisgICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdFRleHROb2RlID09IHJlZ2lvbkxpc3RUZXh0Tm9kZTIsICJSZWdpb24g
bGlzdHMgZm9yIHRleHQgbm9kZSBzaG91bGQgcmVmZXJlbmNlIHRoZSBzYW1lIG9iamVjdCIpOwor
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoID09IDIsICJSZWdp
b24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBoYXZlIDIgZWxlbWVudCwgaGFzICIgKyByZWdp
b25MaXN0VGV4dE5vZGUyLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRleHRO
b2RlMi5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5v
ZGUyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0
IHJlZ2lvbiBmb3IgdGV4dCBub2RlIHNob3VsZCBiZSB0aGUgc2Vjb25kIHJlZ2lvbiBmcm9tIGZs
b3csIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQpOworICAgICAgICAg
ICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoID4gMSkKKyAgICAgICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDEpID09IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZWdpb24zIiksICJTZWNvbmQgcmVnaW9uIGZvciB0ZXh0IG5vZGUgc2hvdWxkIGJlIHRo
ZSB0aGlyZCByZWdpb24gZnJvbSBmbG93LCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMi5p
dGVtKDEpLmlkKTsKKworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTMyID0gbmFt
ZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlMyk7CisgICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdFRleHROb2RlMyA9PSByZWdpb25MaXN0VGV4dE5vZGUzMiwgIlJlZ2lv
biBsaXN0cyBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIHJlZmVyZW5jZSB0aGUgc2FtZSBvYmplY3Qi
KTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzMi5sZW5ndGggPT0gMSwg
IlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAi
ICsgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxp
c3RUZXh0Tm9kZTMyLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxp
c3RUZXh0Tm9kZTMyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMi
KSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIGJlIHRoZSB0aGlyZCByZWdp
b24gZnJvbSBmbG93LCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMzIuaXRlbSgwKS5pZCk7
CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cyID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5
TmFtZSgiZmxvdzIiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDEgPSBuYW1lZEZsb3cy
LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMSIpKTsK
KyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDEgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZv
ciBwMSBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RQMS5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMSBub2RlIHNob3VsZCBoYXZl
IDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDEubGVuZ3RoKTsKKyAgICAgICAgICAgIGlm
IChyZWdpb25MaXN0UDEubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9u
TGlzdFAxLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjQiKSwgIkZp
cnN0IHJlZ2lvbiBmb3IgcDEgbm9kZSBzaG91bGQgYmUgcmVnaW9uNCwgaXQgaXMgIiArIHJlZ2lv
bkxpc3RQMS5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgdmFyIHAyID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAgcDIuaWQgPSAicDIiOworICAgICAgICAgICAg
cDIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgaW5zaWRlIHBhcmFn
cmFwaCBwMi4iKSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNs
ZTIiKS5hcHBlbmRDaGlsZChwMik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAyID0gbmFt
ZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMik7CisgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdFAyICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgcDIgbm9kZSBzaG91bGQgbm90
IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIubGVuZ3RoID09IDEs
ICJSZWdpb24gbGlzdCBmb3IgcDIgbm9kZSBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsg
cmVnaW9uTGlzdFAyLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFAyLmxlbmd0
aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMi5pdGVtKDApID09IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240IiksICJGaXJzdCByZWdpb24gZm9yIHAyIHNo
b3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAyLml0ZW0oMCkuaWQpOworIAor
ICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIgZWxlbWVudCBwLCBpbiB0aGUgb3ZlcmZsb3cgcGFy
dCBvZiB0aGUgcmVnaW9uNAorICAgICAgICAgICAgdmFyIHAzID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgicCIpOworICAgICAgICAgICAgcDMuaWQgPSAicDMiOworICAgICAgICAgICAgcDMuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgaW5zaWRlIHBhcmFncmFwaCBw
My4iKSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5h
cHBlbmRDaGlsZChwMyk7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAzID0gbmFtZWRGbG93
Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMyk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9u
TGlzdFAzICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgcDMgbm9kZSBzaG91bGQgbm90IGJlIG51
bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDMubGVuZ3RoID09IDEsICJSZWdp
b24gbGlzdCBmb3IgcDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RQ
My5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RQMy5sZW5ndGggPiAwKQorICAg
ICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDMuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMyBzaG91bGQgYmUgcmVn
aW9uNCwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMy5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAg
Ly8gYWRkIGFub3RoZXIgcmVnaW9uIHRvIGZsb3cyLCBwMiBhbmQgcDMgZ28gdG8gcmVnaW9uNQor
ICAgICAgICAgICAgdmFyIHJlZ2lvbjUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICAgICAgICAgIHJlZ2lvbjUuaWQgPSAicmVnaW9uNSI7CisgICAgICAgICAgICByZWdpb241
LmNsYXNzTmFtZSA9ICJyZWdpb25Cb3giOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChyZWdpb241KTsKKworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMjIgPSBuYW1l
ZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHAyKTsKKyAgICAgICAgICAgIGFzc2VydChy
ZWdpb25MaXN0UDIgPT0gcmVnaW9uTGlzdFAyMiwgIlJlZ2lvbiBsaXN0cyBmb3IgcDIgc2hvdWxk
IHJlZmVyIHRoZSBzYW1lIHJlZ2lvbiBsaXN0Iik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9u
TGlzdFAyMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMiBzaG91bGQgaGF2ZSAxIGVs
ZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFAyLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVn
aW9uTGlzdFAyMi5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
UDIyLml0ZW0oMCkgPT0gcmVnaW9uNSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDIgc2hvdWxkIGJlIHJl
Z2lvbjUsIGl0IGlzICIgKyByZWdpb25MaXN0UDIuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAg
IGhpZGVSZWdpb25zKCk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250
ZW50LW5vZGUtaG9yaXotdGItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei10Yi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWRkYzIwMTU4ZTUzZGU4MzkzNDZhNTRlMTE2ZDNkMzdhMTcyOTQ0MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50
LW5vZGUtaG9yaXotdGItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDggQEAKK1Rlc3QgZm9yIDc3
NzQ2OiBbQ1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50
Tm9kZQorCitPbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNTIGJlbG93
LgorCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotdGIuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotdGIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wMzBhYTVlMjI4NzU5ODU4OWU0NzFhZjFmZmZmZTM3ZjU2YWJiZTU2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5
LWNvbnRlbnQtbm9kZS1ob3Jpei10Yi5odG1sCkBAIC0wLDAgKzEsMTcxIEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9InJlc291cmNlcy9yZWdpb24tc3R5bGUuY3NzIj4KKyAgICAgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy9oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+CisgICAgICAg
ICAgICBib2R5IHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgfQorICAgICAgICAgICAgLnJlZ2lv
bkJveCB7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB9IAorICAgICAgICAgICAgI2FydGlj
bGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorICAgICAgICAgICAgI3JlZ2lvbiwgI3Jl
Z2lvbjIsICNyZWdpb24zIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IH0KKworICAgICAgICAg
ICAgI2FydGljbGUyIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3cyOyB9CisgICAgICAgICAgICAj
cmVnaW9uNCwgI3JlZ2lvbjUgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7IH0KKyAgICAgICAg
PC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzc0NiI+Cisg
ICAgICAgIDc3NzQ2OiBbQ1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25z
QnlDb250ZW50Tm9kZTwvYT48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQg
c2VlIGEgc2VyaWVzIG9mIFBBU1MgYmVsb3cuPC9wPgorICAgICAgICA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKyAgICAgICAgPCEtLSBzb21lIHRlc3RzIHdpdGggaW5saW5lIGVsZW1lbnRzIC0t
PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIj4KKyAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFu
Tm9kZSI+VGV4dCBpbnNpZGUgc3Bhbi48L3NwYW4+CisgICAgICAgICAgICBUZXh0IG91dHNpZGUg
c3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4uIFRleHQgb3V0c2lkZSBzcGFuLgorICAgICAgICAgICAg
PHNwYW4gaWQ9InNwYW5Ob2RlMiI+VGV4dCBpbnNpZGUgc3BhbjIuPC9zcGFuPgorICAgICAgICAg
ICAgPHNwYW4gaWQ9InNwYW5Ob2RlMyI+VGV4dCBpbnNpZGUgc3BhbjM8L3NwYW4+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25Cb3giPjwvZGl2
PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24yIiBjbGFzcz0icmVnaW9uQm94Ij48L2Rpdj4KKwor
ICAgICAgICA8IS0tIHNvbWUgdGVzdHMgd2l0aCBibG9jayBlbGVtZW50cyAtLT4KKyAgICAgICAg
PGRpdiBpZD0iYXJ0aWNsZTIiPgorICAgICAgICAgICAgPHAgaWQ9InAxIj5UZXh0IGluc2lkZSBw
YXJhZ3JhcGggcDEuPC9wPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9u
NCIgY2xhc3M9InJlZ2lvbkJveCI+PC9yZWdpb24+CisKKyAgICAgICAgPHNjcmlwdD4KKyAgICAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAg
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICAgICAg
ZnVuY3Rpb24gaGlkZVJlZ2lvbnMoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRk
ZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIp
LnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVnaW9uIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIikuc3R5bGUudmlz
aWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZWdpb24zIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240Iikuc3R5bGUudmlzaWJpbGl0eSA9
ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdp
b241Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICB2YXIgbmFtZWRGbG93ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxv
dyIpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdEFydGljbGUgPSBuYW1lZEZsb3cuZ2V0
UmVnaW9uc0J5Q29udGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKSk7
CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUgIT0gbnVsbCwgIlJlZ2lvbiBs
aXN0IGZvciBhcnRpY2xlIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCA9PSAyLCAiUmVnaW9uIGxpc3QgZm9yIGFydGljbGUg
c2hvdWxkIGhhdmUgMiBlbGVtZW50cywgaGFzICIgKyByZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGgp
OworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCA+IDApCisgICAgICAg
ICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlZ2lvbiIpLCAiRmlyc3QgZWxlbWVudCBpbiByZWdpb24gbGlzdCBmb3Ig
YXJ0aWNsZSBzaG91bGQgYmUgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdEFydGljbGUuaXRl
bSgwKS5pZCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdEFydGljbGUubGVuZ3RoID4gMSkK
KyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUuaXRlbSgxKSA9PSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiU2Vjb25kIGVsZW1lbnQgaW4gcmVnaW9u
IGxpc3QgZm9yIGFydGljbGUgc2hvdWxkIGJlIHJlZ2lvbjIsIGl0IGlzICIgKyByZWdpb25MaXN0
QXJ0aWNsZS5pdGVtKDEpLmlkKTsKKworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlz
dFNwYW4gPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUpOworICAg
ICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3Ig
c3BhbiBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
U3Bhbi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuIHNob3VsZCBoYXZlIDEgZWxl
bWVudCwgaGFzICIgKyByZWdpb25MaXN0U3Bhbi5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJl
Z2lvbkxpc3RTcGFuLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxp
c3RTcGFuLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLCAiRmly
c3QgcmVnaW9uIGZvciBzcGFuIHNob3VsZCBiZSByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0
U3Bhbi5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlMiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZTIiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0
U3BhbjIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUyKTsKKyAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjIgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZv
ciBzcGFuMiBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0U3BhbjIubGVuZ3RoID09IDIsICJSZWdpb24gbGlzdCBmb3Igc3BhbjIgc2hvdWxkIGhhdmUg
MiBlbGVtZW50cywgaGFzICIgKyByZWdpb25MaXN0U3BhbjIubGVuZ3RoKTsKKworICAgICAgICAg
ICAgdmFyIHNwYW5Ob2RlMyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZTMiKTsK
KyAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbjMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5
Q29udGVudE5vZGUoc3Bhbk5vZGUzKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3Bh
bjMgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMyBzaG91bGQgbm90IGJlIG51bGwiKTsK
KyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjMubGVuZ3RoID09IDEsICJSZWdpb24g
bGlzdCBmb3Igc3BhbjMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RT
cGFuMy5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RTcGFuMy5sZW5ndGggPiAw
KQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjMuaXRlbSgwKSA9PSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciBzcGFuIG5v
ZGUgMyBzaG91bGQgYmUgdGhlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0U3Bh
bjMuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUu
IFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuICIpOworICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7CisgICAg
ICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlKHRleHROb2RlKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5v
ZGUgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgc2hvdWxkIG5vdCBiZSBudWxs
Iik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlLmxlbmd0aCA9PSAxLCAi
UmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsg
cmVnaW9uTGlzdFRleHROb2RlLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRl
eHROb2RlLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0
Tm9kZS5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJz
dCByZWdpb24gZm9yIHRleHQgbm9kZSBzaG91bGQgYmUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMgIiAr
IHJlZ2lvbkxpc3RUZXh0Tm9kZS5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgLy8gQWRkIGFu
b3RoZXIgdGV4dCBub2RlIHRoYXQgd2lsbCBvdmVyZmxvdyB0aGUgcmVnaW9uMi4KKyAgICAgICAg
ICAgIHZhciB0ZXh0Tm9kZTIgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlMi4i
KTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5k
Q2hpbGQodGV4dE5vZGUyKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUyID0g
bmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlMik7CisgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHRl
eHQgbm9kZSAyIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RUZXh0Tm9kZTIubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDIg
c2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3Ro
KTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA+IDApCisgICAg
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKSA9PSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUg
MiBzaG91bGQgYmUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIu
aXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHRleHQgbm9kZSB0aGF0
IGlzIGluIHRoZSBvdmVyZmxvdyBvZiB0aGUgbGFzdCByZWdpb24uCisgICAgICAgICAgICB2YXIg
dGV4dE5vZGUzID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZTMuIik7CisgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRl
eHROb2RlMyk7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMyA9IG5hbWVkRmxv
dy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTMpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RUZXh0Tm9kZTMgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUg
MyBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4
dE5vZGUzLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAzIHNob3VsZCBo
YXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUzLmxlbmd0aCk7CisgICAg
ICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGggPiAwKQorICAgICAgICAgICAg
ICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIDMgc2hvdWxk
IGJlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUzLml0ZW0oMCku
aWQpOworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhlciByZWdpb24gdG8gdGFrZSB0aGUgb3Zl
cmZsb3dpbmcgZWxlbWVudHMgZnJvbSBzZWNvbmQgcmVnaW9uLgorICAgICAgICAgICAgdmFyIHJl
Z2lvbjMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJlZ2lv
bjMuaWQgPSAicmVnaW9uMyI7CisgICAgICAgICAgICByZWdpb24zLmNsYXNzTmFtZSA9ICJyZWdp
b25Cb3giOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb24zKTsK
KworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVn
aW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxp
c3RUZXh0Tm9kZSA9PSByZWdpb25MaXN0VGV4dE5vZGUyLCAiUmVnaW9uIGxpc3RzIGZvciB0ZXh0
IG5vZGUgc2hvdWxkIHJlZmVyZW5jZSB0aGUgc2FtZSBvYmplY3QiKTsKKyAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA9PSAyLCAiUmVnaW9uIGxpc3QgZm9yIHRl
eHQgbm9kZSBzaG91bGQgaGF2ZSAyIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2Rl
Mi5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoID4g
MCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApID09
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHRl
eHQgbm9kZSBzaG91bGQgYmUgdGhlIHNlY29uZCByZWdpb24gZnJvbSBmbG93LCBpdCBpcyAiICsg
cmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApLmlkKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25M
aXN0VGV4dE5vZGUyLmxlbmd0aCA+IDEpCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxp
c3RUZXh0Tm9kZTIuaXRlbSgxKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMyIp
LCAiU2Vjb25kIHJlZ2lvbiBmb3IgdGV4dCBub2RlIHNob3VsZCBiZSB0aGUgdGhpcmQgcmVnaW9u
IGZyb20gZmxvdywgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgxKS5pZCk7CisK
KyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUzMiA9IG5hbWVkRmxvdy5nZXRSZWdp
b25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTMpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxp
c3RUZXh0Tm9kZTMgPT0gcmVnaW9uTGlzdFRleHROb2RlMzIsICJSZWdpb24gbGlzdHMgZm9yIHRl
eHQgbm9kZSAzIHNob3VsZCByZWZlcmVuY2UgdGhlIHNhbWUgb2JqZWN0Iik7CisgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMzIubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBm
b3IgdGV4dCBub2RlIDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RU
ZXh0Tm9kZTMubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUzMi5s
ZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzMi5p
dGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24zIiksICJGaXJzdCByZWdp
b24gZm9yIHRleHQgbm9kZSAzIHNob3VsZCBiZSB0aGUgdGhpcmQgcmVnaW9uIGZyb20gZmxvdywg
aXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLml0ZW0oMCkuaWQpOworCisgICAgICAgICAg
ICB2YXIgbmFtZWRGbG93MiA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3cyIik7
CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAxID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlD
b250ZW50Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDEiKSk7CisgICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdFAxICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgcDEgbm9kZSBzaG91
bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDEubGVuZ3Ro
ID09IDEsICJSZWdpb24gbGlzdCBmb3IgcDEgbm9kZSBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhh
cyAiICsgcmVnaW9uTGlzdFAxLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFAx
Lmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMS5pdGVtKDAp
ID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240IiksICJGaXJzdCByZWdpb24gZm9y
IHAxIG5vZGUgc2hvdWxkIGJlIHJlZ2lvbjQsIGl0IGlzICIgKyByZWdpb25MaXN0UDEuaXRlbSgw
KS5pZCk7CisKKyAgICAgICAgICAgIHZhciBwMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAi
KTsKKyAgICAgICAgICAgIHAyLmlkID0gInAyIjsKKyAgICAgICAgICAgIHAyLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IGluc2lkZSBwYXJhZ3JhcGggcDIuIikpOwor
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuYXBwZW5kQ2hp
bGQocDIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMiA9IG5hbWVkRmxvdzIuZ2V0UmVn
aW9uc0J5Q29udGVudE5vZGUocDIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMiAh
PSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHAyIG5vZGUgc2hvdWxkIG5vdCBiZSBudWxsIik7Cisg
ICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3Qg
Zm9yIHAyIG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RQMi5s
ZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RQMi5sZW5ndGggPiAwKQorICAgICAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMiBzaG91bGQgYmUgcmVnaW9u
NCwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMi5pdGVtKDApLmlkKTsKKyAKKyAgICAgICAgICAgIC8v
IGFkZCBhbm90aGVyIGVsZW1lbnQgcCwgaW4gdGhlIG92ZXJmbG93IHBhcnQgb2YgdGhlIHJlZ2lv
bjQKKyAgICAgICAgICAgIHZhciBwMyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAg
ICAgICAgICAgIHAzLmlkID0gInAzIjsKKyAgICAgICAgICAgIHAzLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IGluc2lkZSBwYXJhZ3JhcGggcDMuIikpOworICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuYXBwZW5kQ2hpbGQocDMp
OworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMyA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5
Q29udGVudE5vZGUocDMpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMyAhPSBudWxs
LCAiUmVnaW9uIGxpc3QgZm9yIHAzIG5vZGUgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAg
ICAgICBhc3NlcnQocmVnaW9uTGlzdFAzLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAz
IHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDMubGVuZ3RoKTsKKyAg
ICAgICAgICAgIGlmIChyZWdpb25MaXN0UDMubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdFAzLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
Z2lvbjQiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDMgc2hvdWxkIGJlIHJlZ2lvbjQsIGl0IGlzICIg
KyByZWdpb25MaXN0UDMuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIC8vIGFkZCBhbm90aGVy
IHJlZ2lvbiB0byBmbG93MiwgcDIgYW5kIHAzIGdvIHRvIHJlZ2lvbjUKKyAgICAgICAgICAgIHZh
ciByZWdpb241ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICBy
ZWdpb241LmlkID0gInJlZ2lvbjUiOworICAgICAgICAgICAgcmVnaW9uNS5jbGFzc05hbWUgPSAi
cmVnaW9uQm94IjsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVnaW9u
NSk7CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDIyID0gbmFtZWRGbG93Mi5nZXRSZWdp
b25zQnlDb250ZW50Tm9kZShwMik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyID09
IHJlZ2lvbkxpc3RQMjIsICJSZWdpb24gbGlzdHMgZm9yIHAyIHNob3VsZCByZWZlciB0aGUgc2Ft
ZSByZWdpb24gbGlzdCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMjIubGVuZ3Ro
ID09IDEsICJSZWdpb24gbGlzdCBmb3IgcDIgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiAr
IHJlZ2lvbkxpc3RQMi5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RQMjIubGVu
Z3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyMi5pdGVtKDApID09
IHJlZ2lvbjUsICJGaXJzdCByZWdpb24gZm9yIHAyIHNob3VsZCBiZSByZWdpb241LCBpdCBpcyAi
ICsgcmVnaW9uTGlzdFAyLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICBoaWRlUmVnaW9ucygp
OworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVy
dC1sci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMt
YnktY29udGVudC1ub2RlLXZlcnQtbHItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkZGMyMDE1
OGU1M2RlODM5MzQ2YTU0ZTExNmQzZDM3YTE3Mjk0NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtbHIt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDggQEAKK1Rlc3QgZm9yIDc3NzQ2OiBbQ1NTUmVnaW9u
c11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZQorCitPbiBzdWNj
ZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNTIGJlbG93LgorCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9u
cy1ieS1jb250ZW50LW5vZGUtdmVydC1sci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQz
OTQ0ZDljMzA5NDhjYzYwZWY4MDA3ZDUyYTU3YWVjODEzZTI2NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVy
dC1sci5odG1sCkBAIC0wLDAgKzEsMTcyIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9y
ZWdpb24tc3R5bGUuY3NzIj4KKyAgICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9oZWxwZXIu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBodG1sIHsgLXdlYmtp
dC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOyB9CisgICAgICAgICAgICBib2R5IHsgZm9udC1m
YW1pbHk6IG1vbm9zcGFjZTsgfQorICAgICAgICAgICAgLnJlZ2lvbkJveCB7ICBoZWlnaHQ6IDI1
MHB4OyB3aWR0aDogNTBweDsgfQorCisgICAgICAgICAgICAjYXJ0aWNsZSB7IC13ZWJraXQtZmxv
dy1pbnRvOiBmbG93OyB9CisgICAgICAgICAgICAjcmVnaW9uLCAjcmVnaW9uMiwgI3JlZ2lvbjMg
eyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgfQorCisgICAgICAgICAgICAjYXJ0aWNsZTIgeyAt
d2Via2l0LWZsb3ctaW50bzogZmxvdzI7IH0KKyAgICAgICAgICAgICNyZWdpb240LCAjcmVnaW9u
NSB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93MjsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwv
aGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyTWVzc2FnZSI+Cisg
ICAgICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Nzc3NDYiPgorICAgICAgICAgICAgNzc3NDY6IFtDU1NSZWdpb25zXUlt
cGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlPC9hPjwvcD4KKyAgICAg
ICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mIFBBU1MgYmVs
b3cuPC9wPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisgICAgICAgIDwhLS0gc29tZSB0ZXN0cyB3aXRoIGlubGluZSBlbGVtZW50cyAtLT4KKyAgICAg
ICAgPGRpdiBpZD0iYXJ0aWNsZSI+CisgICAgICAgICAgICA8c3BhbiBpZD0ic3Bhbk5vZGUiPlRl
eHQgaW5zaWRlIHNwYW4uPC9zcGFuPgorICAgICAgICAgICAgVGV4dCBvdXRzaWRlIHNwYW4uIFRl
eHQgb3V0c2lkZSBzcGFuLiBUZXh0IG91dHNpZGUgc3Bhbi4KKyAgICAgICAgICAgIDxzcGFuIGlk
PSJzcGFuTm9kZTIiPlRleHQgaW5zaWRlIHNwYW4yLiBUZXh0Ljwvc3Bhbj4KKyAgICAgICAgICAg
IDxzcGFuIGlkPSJzcGFuTm9kZTMiPlRleHQgaW5zaWRlIHNwYW4zPC9zcGFuPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uQm94Ij48L2Rpdj4K
KyAgICAgICAgPGRpdiBpZD0icmVnaW9uMiIgY2xhc3M9InJlZ2lvbkJveCI+PC9kaXY+CisKKyAg
ICAgICAgPCEtLSBzb21lIHRlc3RzIHdpdGggYmxvY2sgZWxlbWVudHMgLS0+CisgICAgICAgIDxk
aXYgaWQ9ImFydGljbGUyIj4KKyAgICAgICAgICAgIDxwIGlkPSJwMSI+VGV4dCBpbnNpZGUgcGFy
YWdyYXBoIHAxLjwvcD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjQi
IGNsYXNzPSJyZWdpb25Cb3giPjwvcmVnaW9uPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdmFyIG5h
bWVkRmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKTsKKworICAgICAg
ICAgICAgZnVuY3Rpb24gaGlkZVJlZ2lvbnMoKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuc3R5bGUudmlzaWJpbGl0eSA9
ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRp
Y2xlMiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4i
OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIikuc3R5
bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZWdpb24zIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240Iikuc3R5bGUudmlzaWJp
bGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZWdpb241Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdEFydGljbGUgPSBuYW1lZEZsb3cuZ2V0UmVnaW9u
c0J5Q29udGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKSk7CisgICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZv
ciBhcnRpY2xlIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RBcnRpY2xlLmxlbmd0aCA9PSAyLCAiUmVnaW9uIGxpc3QgZm9yIGFydGljbGUgc2hvdWxk
IGhhdmUgMiBlbGVtZW50cywgaGFzICIgKyByZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGgpOworICAg
ICAgICAgICAgaWYgKHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCA+IDApCisgICAgICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZ2lvbiIpLCAiRmlyc3QgZWxlbWVudCBpbiByZWdpb24gbGlzdCBmb3IgYXJ0aWNs
ZSBzaG91bGQgYmUgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdEFydGljbGUuaXRlbSgwKS5p
ZCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdEFydGljbGUubGVuZ3RoID4gMSkKKyAgICAg
ICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUuaXRlbSgxKSA9PSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiU2Vjb25kIGVsZW1lbnQgaW4gcmVnaW9uIGxpc3Qg
Zm9yIGFydGljbGUgc2hvdWxkIGJlIHJlZ2lvbjIsIGl0IGlzICIgKyByZWdpb25MaXN0QXJ0aWNs
ZS5pdGVtKDEpLmlkKTsKKworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInNwYW5Ob2RlIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4g
PSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUpOworICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3Igc3BhbiBz
aG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3Bhbi5s
ZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuIHNob3VsZCBoYXZlIDEgZWxlbWVudCwg
aGFzICIgKyByZWdpb25MaXN0U3Bhbi5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxp
c3RTcGFuLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFu
Lml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLCAiRmlyc3QgcmVn
aW9uIGZvciBzcGFuIHNob3VsZCBiZSByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0U3Bhbi5p
dGVtKDApLmlkKTsKKworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlMiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzcGFuTm9kZTIiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbjIg
PSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUyKTsKKyAgICAgICAg
ICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjIgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBzcGFu
MiBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3Bh
bjIubGVuZ3RoID09IDIsICJSZWdpb24gbGlzdCBmb3Igc3BhbjIgc2hvdWxkIGhhdmUgMiBlbGVt
ZW50cywgaGFzICIgKyByZWdpb25MaXN0U3BhbjIubGVuZ3RoKTsKKworICAgICAgICAgICAgdmFy
IHNwYW5Ob2RlMyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZTMiKTsKKyAgICAg
ICAgICAgIHZhciByZWdpb25MaXN0U3BhbjMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVu
dE5vZGUoc3Bhbk5vZGUzKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjMgIT0g
bnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMyBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAg
ICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjMubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBm
b3Igc3BhbjMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RTcGFuMy5s
ZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RTcGFuMy5sZW5ndGggPiAwKQorICAg
ICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjMuaXRlbSgwKSA9PSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciBzcGFuIG5vZGUgMyBz
aG91bGQgYmUgdGhlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0U3BhbjMuaXRl
bSgwKS5pZCk7CisKKyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQg
bm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuICIpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7CisgICAgICAgICAg
ICB2YXIgcmVnaW9uTGlzdFRleHROb2RlID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnRO
b2RlKHRleHROb2RlKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUgIT0g
bnVsbCwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgc2hvdWxkIG5vdCBiZSBudWxsIik7Cisg
ICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlLmxlbmd0aCA9PSAxLCAiUmVnaW9u
IGxpc3QgZm9yIHRleHQgbm9kZSBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9u
TGlzdFRleHROb2RlLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2Rl
Lmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZS5p
dGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdp
b24gZm9yIHRleHQgbm9kZSBzaG91bGQgYmUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lv
bkxpc3RUZXh0Tm9kZS5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIg
dGV4dCBub2RlIHRoYXQgd2lsbCBvdmVyZmxvdyB0aGUgcmVnaW9uMi4KKyAgICAgICAgICAgIHZh
ciB0ZXh0Tm9kZTIgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlMi4iKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQo
dGV4dE5vZGUyKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUyID0gbmFtZWRG
bG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlMik7CisgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFRleHROb2RlMiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9k
ZSAyIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RU
ZXh0Tm9kZTIubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDIgc2hvdWxk
IGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoKTsKKyAg
ICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA+IDApCisgICAgICAgICAg
ICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgMiBzaG91
bGQgYmUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgw
KS5pZCk7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHRleHQgbm9kZSB0aGF0IGlzIGlu
IHRoZSBvdmVyZmxvdyBvZiB0aGUgbGFzdCByZWdpb24uCisgICAgICAgICAgICB2YXIgdGV4dE5v
ZGUzID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZTMuIik7CisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2Rl
Myk7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMyA9IG5hbWVkRmxvdy5nZXRS
ZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTMpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RUZXh0Tm9kZTMgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMyBzaG91
bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUz
Lmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAzIHNob3VsZCBoYXZlIDEg
ZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUzLmxlbmd0aCk7CisgICAgICAgICAg
ICBpZiAocmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0VGV4dE5vZGUzLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIGJlIHNl
Y29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUzLml0ZW0oMCkuaWQpOwor
CisgICAgICAgICAgICAvLyBBZGQgYW5vdGhlciByZWdpb24gdG8gdGFrZSB0aGUgb3ZlcmZsb3dp
bmcgZWxlbWVudHMgZnJvbSBzZWNvbmQgcmVnaW9uLgorICAgICAgICAgICAgdmFyIHJlZ2lvbjMg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJlZ2lvbjMuaWQg
PSAicmVnaW9uMyI7CisgICAgICAgICAgICByZWdpb24zLmNsYXNzTmFtZSA9ICJyZWdpb25Cb3gi
OworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb24zKTsKKworICAg
ICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5
Q29udGVudE5vZGUodGV4dE5vZGUpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0
Tm9kZSA9PSByZWdpb25MaXN0VGV4dE5vZGUyLCAiUmVnaW9uIGxpc3RzIGZvciB0ZXh0IG5vZGUg
c2hvdWxkIHJlZmVyZW5jZSB0aGUgc2FtZSBvYmplY3QiKTsKKyAgICAgICAgICAgIGFzc2VydChy
ZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA9PSAyLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9k
ZSBzaG91bGQgaGF2ZSAyIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMi5sZW5n
dGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoID4gMCkKKyAg
ICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApID09IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9k
ZSBzaG91bGQgYmUgdGhlIHNlY29uZCByZWdpb24gZnJvbSBmbG93LCBpdCBpcyAiICsgcmVnaW9u
TGlzdFRleHROb2RlMi5pdGVtKDApLmlkKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4
dE5vZGUyLmxlbmd0aCA+IDEpCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0
Tm9kZTIuaXRlbSgxKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMyIpLCAiU2Vj
b25kIHJlZ2lvbiBmb3IgdGV4dCBub2RlIHNob3VsZCBiZSB0aGUgdGhpcmQgcmVnaW9uIGZyb20g
ZmxvdywgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgxKS5pZCk7CisKKyAgICAg
ICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUzMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlD
b250ZW50Tm9kZSh0ZXh0Tm9kZTMpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0
Tm9kZTMgPT0gcmVnaW9uTGlzdFRleHROb2RlMzIsICJSZWdpb24gbGlzdHMgZm9yIHRleHQgbm9k
ZSAzIHNob3VsZCByZWZlcmVuY2UgdGhlIHNhbWUgb2JqZWN0Iik7CisgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFRleHROb2RlMzIubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4
dCBub2RlIDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9k
ZTMubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUzMi5sZW5ndGgg
PiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzMi5pdGVtKDAp
ID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24zIiksICJGaXJzdCByZWdpb24gZm9y
IHRleHQgbm9kZSAzIHNob3VsZCBiZSB0aGUgdGhpcmQgcmVnaW9uIGZyb20gZmxvdywgaXQgaXMg
IiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICB2YXIg
bmFtZWRGbG93MiA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3cyIik7CisgICAg
ICAgICAgICB2YXIgcmVnaW9uTGlzdFAxID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50
Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDEiKSk7CisgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdFAxICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgcDEgbm9kZSBzaG91bGQgbm90
IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDEubGVuZ3RoID09IDEs
ICJSZWdpb24gbGlzdCBmb3IgcDEgbm9kZSBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsg
cmVnaW9uTGlzdFAxLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFAxLmxlbmd0
aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMS5pdGVtKDApID09IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240IiksICJGaXJzdCByZWdpb24gZm9yIHAxIG5v
ZGUgc2hvdWxkIGJlIHJlZ2lvbjQsIGl0IGlzICIgKyByZWdpb25MaXN0UDEuaXRlbSgwKS5pZCk7
CisKKyAgICAgICAgICAgIHZhciBwMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAg
ICAgICAgICAgIHAyLmlkID0gInAyIjsKKyAgICAgICAgICAgIHAyLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IGluc2lkZSBwYXJhZ3JhcGggcDIuIikpOworICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuYXBwZW5kQ2hpbGQocDIp
OworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMiA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5
Q29udGVudE5vZGUocDIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMiAhPSBudWxs
LCAiUmVnaW9uIGxpc3QgZm9yIHAyIG5vZGUgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAg
ICAgICBhc3NlcnQocmVnaW9uTGlzdFAyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAy
IG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RQMi5sZW5ndGgp
OworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RQMi5sZW5ndGggPiAwKQorICAgICAgICAgICAg
ICAgIGFzc2VydChyZWdpb25MaXN0UDIuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMiBzaG91bGQgYmUgcmVnaW9uNCwgaXQg
aXMgIiArIHJlZ2lvbkxpc3RQMi5pdGVtKDApLmlkKTsKKyAKKyAgICAgICAgICAgIC8vIGFkZCBh
bm90aGVyIGVsZW1lbnQgcCwgaW4gdGhlIG92ZXJmbG93IHBhcnQgb2YgdGhlIHJlZ2lvbjQKKyAg
ICAgICAgICAgIHZhciBwMyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAgICAgICAg
ICAgIHAzLmlkID0gInAzIjsKKyAgICAgICAgICAgIHAzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJUZXh0IGluc2lkZSBwYXJhZ3JhcGggcDMuIikpOworICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuYXBwZW5kQ2hpbGQocDMpOworICAg
ICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMyA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVu
dE5vZGUocDMpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMyAhPSBudWxsLCAiUmVn
aW9uIGxpc3QgZm9yIHAzIG5vZGUgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdFAzLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAzIHNob3Vs
ZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDMubGVuZ3RoKTsKKyAgICAgICAg
ICAgIGlmIChyZWdpb25MaXN0UDMubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdFAzLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjQi
KSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDMgc2hvdWxkIGJlIHJlZ2lvbjQsIGl0IGlzICIgKyByZWdp
b25MaXN0UDMuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIC8vIGFkZCBhbm90aGVyIHJlZ2lv
biB0byBmbG93MiwgcDIgYW5kIHAzIGdvIHRvIHJlZ2lvbjUKKyAgICAgICAgICAgIHZhciByZWdp
b241ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICByZWdpb241
LmlkID0gInJlZ2lvbjUiOworICAgICAgICAgICAgcmVnaW9uNS5jbGFzc05hbWUgPSAicmVnaW9u
Qm94IjsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVnaW9uNSk7CisK
KyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDIyID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlD
b250ZW50Tm9kZShwMik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyID09IHJlZ2lv
bkxpc3RQMjIsICJSZWdpb24gbGlzdHMgZm9yIHAyIHNob3VsZCByZWZlciB0aGUgc2FtZSByZWdp
b24gbGlzdCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMjIubGVuZ3RoID09IDEs
ICJSZWdpb24gbGlzdCBmb3IgcDIgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lv
bkxpc3RQMi5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RQMjIubGVuZ3RoID4g
MCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyMi5pdGVtKDApID09IHJlZ2lv
bjUsICJGaXJzdCByZWdpb24gZm9yIHAyIHNob3VsZCBiZSByZWdpb241LCBpdCBpcyAiICsgcmVn
aW9uTGlzdFAyLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICBoaWRlUmVnaW9ucygpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtcmwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRl
bnQtbm9kZS12ZXJ0LXJsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGRjMjAxNThlNTNkZTgz
OTM0NmE1NGUxMTZkM2QzN2ExNzI5NDQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LXJsLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQ4IEBACitUZXN0IGZvciA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVt
ZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUKKworT24gc3VjY2VzcywgeW91
IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxvdy4KKworUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFT
UworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFT
UworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworCisKKwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29u
dGVudC1ub2RlLXZlcnQtcmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVn
aW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1ybC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwZjc3MDI1NjE2
MmJlNGM3YTVmZWVmNGRmMjlhYzc2NTllMmJhOTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtcmwuaHRt
bApAQCAtMCwwICsxLDE3MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVnaW9uLXN0
eWxlLmNzcyI+CisgICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaGVscGVyLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgaHRtbCB7IC13ZWJraXQtd3JpdGlu
Zy1tb2RlOiB2ZXJ0aWNhbC1ybDsgfQorICAgICAgICAgICAgYm9keSB7IGZvbnQtZmFtaWx5OiBt
b25vc3BhY2U7IH0KKyAgICAgICAgICAgIC5yZWdpb25Cb3ggeyAgaGVpZ2h0OiAyNTBweDsgd2lk
dGg6IDUwcHg7IH0KKyAgICAgICAgICAgICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZs
b3c7IH0KKyAgICAgICAgICAgICNyZWdpb24sICNyZWdpb24yLCAjcmVnaW9uMyB7IC13ZWJraXQt
Zmxvdy1mcm9tOiBmbG93OyB9CisKKyAgICAgICAgICAgICNhcnRpY2xlMiB7IC13ZWJraXQtZmxv
dy1pbnRvOiBmbG93MjsgfQorICAgICAgICAgICAgI3JlZ2lvbjQsICNyZWdpb241IHsgLXdlYmtp
dC1mbG93LWZyb206IGZsb3cyOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAg
IDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJjb250YWluZXJNZXNzYWdlIj4KKyAgICAgICAgICAg
IDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03Nzc0NiI+CisgICAgICAgICAgICA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5h
bWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGU8L2E+PC9wPgorICAgICAgICAgICAgPHA+
T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxvdy48L3A+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAg
PCEtLSBzb21lIHRlc3RzIHdpdGggaW5saW5lIGVsZW1lbnRzIC0tPgorICAgICAgICA8ZGl2IGlk
PSJhcnRpY2xlIj4KKyAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZSI+VGV4dCBpbnNpZGUg
c3Bhbi48L3NwYW4+CisgICAgICAgICAgICBUZXh0IG91dHNpZGUgc3Bhbi4gVGV4dCBvdXRzaWRl
IHNwYW4uIFRleHQgb3V0c2lkZSBzcGFuLgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2Rl
MiI+VGV4dCBpbnNpZGUgc3BhbjIuIFRleHQuPC9zcGFuPgorICAgICAgICAgICAgPHNwYW4gaWQ9
InNwYW5Ob2RlMyI+VGV4dCBpbnNpZGUgc3BhbjM8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25Cb3giPjwvZGl2PgorICAgICAgICA8
ZGl2IGlkPSJyZWdpb24yIiBjbGFzcz0icmVnaW9uQm94Ij48L2Rpdj4KKworICAgICAgICA8IS0t
IHNvbWUgdGVzdHMgd2l0aCBibG9jayBlbGVtZW50cyAtLT4KKyAgICAgICAgPGRpdiBpZD0iYXJ0
aWNsZTIiPgorICAgICAgICAgICAgPHAgaWQ9InAxIj5UZXh0IGluc2lkZSBwYXJhZ3JhcGggcDEu
PC9wPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uNCIgY2xhc3M9InJl
Z2lvbkJveCI+PC9yZWdpb24+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93ID0g
ZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpOworCisgICAgICAgICAgICBmdW5j
dGlvbiBoaWRlUmVnaW9ucygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuc3R5
bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZWdpb24iKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKS5zdHlsZS52aXNpYmls
aXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbjMiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhp
ZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjUi
KS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIHZhciByZWdpb25MaXN0QXJ0aWNsZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50
Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpKTsKKyAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0QXJ0aWNsZSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIGFydGljbGUg
c2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGlj
bGUubGVuZ3RoID09IDIsICJSZWdpb24gbGlzdCBmb3IgYXJ0aWNsZSBzaG91bGQgaGF2ZSAyIGVs
ZW1lbnRzLCBoYXMgIiArIHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCk7CisgICAgICAgICAgICBp
ZiAocmVnaW9uTGlzdEFydGljbGUubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdEFydGljbGUuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVn
aW9uIiksICJGaXJzdCBlbGVtZW50IGluIHJlZ2lvbiBsaXN0IGZvciBhcnRpY2xlIHNob3VsZCBi
ZSByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApLmlkKTsKKyAgICAg
ICAgICAgIGlmIChyZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGggPiAxKQorICAgICAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDEpID09IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZWdpb24yIiksICJTZWNvbmQgZWxlbWVudCBpbiByZWdpb24gbGlzdCBmb3IgYXJ0aWNs
ZSBzaG91bGQgYmUgcmVnaW9uMiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSku
aWQpOworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic3Bhbk5vZGUiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbiA9IG5hbWVkRmxv
dy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZSk7CisgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdFNwYW4gIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuIHNob3VsZCBub3Qg
YmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuLmxlbmd0aCA9PSAx
LCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4gc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJl
Z2lvbkxpc3RTcGFuLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFNwYW4ubGVu
Z3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4uaXRlbSgwKSA9
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIiksICJGaXJzdCByZWdpb24gZm9yIHNw
YW4gc2hvdWxkIGJlIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RTcGFuLml0ZW0oMCkuaWQp
OworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InNwYW5Ob2RlMiIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RTcGFuMiA9IG5hbWVkRmxv
dy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZTIpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RTcGFuMiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4yIHNob3VsZCBu
b3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMi5sZW5ndGgg
PT0gMiwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMiBzaG91bGQgaGF2ZSAyIGVsZW1lbnRzLCBoYXMg
IiArIHJlZ2lvbkxpc3RTcGFuMi5sZW5ndGgpOworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlMyIpOworICAgICAgICAgICAgdmFy
IHJlZ2lvbkxpc3RTcGFuMyA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFu
Tm9kZTMpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMyAhPSBudWxsLCAiUmVn
aW9uIGxpc3QgZm9yIHNwYW4zIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RTcGFuMy5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMyBz
aG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFNwYW4zLmxlbmd0aCk7Cisg
ICAgICAgICAgICBpZiAocmVnaW9uTGlzdFNwYW4zLmxlbmd0aCA+IDApCisgICAgICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMy5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHNwYW4gbm9kZSAzIHNob3VsZCBiZSB0
aGUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RTcGFuMy5pdGVtKDApLmlkKTsK
KworICAgICAgICAgICAgdmFyIHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRl
eHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0
IG5vZGUuIFRleHQgbm9kZS4gIik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2RlKTsKKyAgICAgICAgICAgIHZhciByZWdp
b25MaXN0VGV4dE5vZGUgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5v
ZGUpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZSAhPSBudWxsLCAiUmVn
aW9uIGxpc3QgZm9yIHRleHQgbm9kZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3Ig
dGV4dCBub2RlIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5v
ZGUubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUubGVuZ3RoID4g
MCkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlLml0ZW0oMCkgPT0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4
dCBub2RlIHNob3VsZCBiZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHRO
b2RlLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhlciB0ZXh0IG5vZGUg
dGhhdCB3aWxsIG92ZXJmbG93IHRoZSByZWdpb24yLgorICAgICAgICAgICAgdmFyIHRleHROb2Rl
MiA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUyLiIpOworICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTIp
OworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVn
aW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUyKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0VGV4dE5vZGUyICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDIgc2hvdWxk
IG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5s
ZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMiBzaG91bGQgaGF2ZSAxIGVs
ZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGgpOworICAgICAgICAgICAg
aWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoID4gMCkKKyAgICAgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSAyIHNob3VsZCBiZSBzZWNv
bmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApLmlkKTsKKwor
ICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIgdGV4dCBub2RlIHRoYXQgaXMgaW4gdGhlIG92ZXJm
bG93IG9mIHRoZSBsYXN0IHJlZ2lvbi4KKyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZTMgPSBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlMy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUzKTsKKyAgICAg
ICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUzID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlKHRleHROb2RlMyk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHRO
b2RlMyAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAzIHNob3VsZCBub3QgYmUg
bnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoID09
IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBo
YXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdp
b25MaXN0VGV4dE5vZGUzLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RUZXh0Tm9kZTMuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9u
MiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgYmUgc2Vjb25kIHJlZ2lv
biwgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTMuaXRlbSgwKS5pZCk7CisKKyAgICAgICAg
ICAgIC8vIEFkZCBhbm90aGVyIHJlZ2lvbiB0byB0YWtlIHRoZSBvdmVyZmxvd2luZyBlbGVtZW50
cyBmcm9tIHNlY29uZCByZWdpb24uCisgICAgICAgICAgICB2YXIgcmVnaW9uMyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgcmVnaW9uMy5pZCA9ICJyZWdpb24z
IjsKKyAgICAgICAgICAgIHJlZ2lvbjMuY2xhc3NOYW1lID0gInJlZ2lvbkJveCI7CisgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlZ2lvbjMpOworCisgICAgICAgICAgICB2
YXIgcmVnaW9uTGlzdFRleHROb2RlMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9k
ZSh0ZXh0Tm9kZSk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlID09IHJl
Z2lvbkxpc3RUZXh0Tm9kZTIsICJSZWdpb24gbGlzdHMgZm9yIHRleHQgbm9kZSBzaG91bGQgcmVm
ZXJlbmNlIHRoZSBzYW1lIG9iamVjdCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RU
ZXh0Tm9kZTIubGVuZ3RoID09IDIsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBo
YXZlIDIgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCk7CisgICAg
ICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPiAwKQorICAgICAgICAgICAg
ICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIHNob3VsZCBi
ZSB0aGUgc2Vjb25kIHJlZ2lvbiBmcm9tIGZsb3csIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5v
ZGUyLml0ZW0oMCkuaWQpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVu
Z3RoID4gMSkKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5pdGVt
KDEpID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24zIiksICJTZWNvbmQgcmVnaW9u
IGZvciB0ZXh0IG5vZGUgc2hvdWxkIGJlIHRoZSB0aGlyZCByZWdpb24gZnJvbSBmbG93LCBpdCBp
cyAiICsgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDEpLmlkKTsKKworICAgICAgICAgICAgdmFy
IHJlZ2lvbkxpc3RUZXh0Tm9kZTMyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
KHRleHROb2RlMyk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMyA9PSBy
ZWdpb25MaXN0VGV4dE5vZGUzMiwgIlJlZ2lvbiBsaXN0cyBmb3IgdGV4dCBub2RlIDMgc2hvdWxk
IHJlZmVyZW5jZSB0aGUgc2FtZSBvYmplY3QiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0VGV4dE5vZGUzMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMyBz
aG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgp
OworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCA+IDApCisgICAg
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLml0ZW0oMCkgPT0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2Rl
IDMgc2hvdWxkIGJlIHRoZSB0aGlyZCByZWdpb24gZnJvbSBmbG93LCBpdCBpcyAiICsgcmVnaW9u
TGlzdFRleHROb2RlMzIuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cy
ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdzIiKTsKKyAgICAgICAgICAgIHZh
ciByZWdpb25MaXN0UDEgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJwMSIpKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
UDEgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBwMSBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIp
OworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMS5sZW5ndGggPT0gMSwgIlJlZ2lvbiBs
aXN0IGZvciBwMSBub2RlIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0
UDEubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0UDEubGVuZ3RoID4gMCkKKyAg
ICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAxLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlZ2lvbjQiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDEgbm9kZSBzaG91bGQg
YmUgcmVnaW9uNCwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMS5pdGVtKDApLmlkKTsKKworICAgICAg
ICAgICAgdmFyIHAyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAg
cDIuaWQgPSAicDIiOworICAgICAgICAgICAgcDIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMi4iKSk7CisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5hcHBlbmRDaGlsZChwMik7CisgICAgICAg
ICAgICB2YXIgcmVnaW9uTGlzdFAyID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9k
ZShwMik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyICE9IG51bGwsICJSZWdpb24g
bGlzdCBmb3IgcDIgbm9kZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2Vy
dChyZWdpb25MaXN0UDIubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgcDIgbm9kZSBzaG91
bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFAyLmxlbmd0aCk7CisgICAgICAg
ICAgICBpZiAocmVnaW9uTGlzdFAyLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RQMi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240
IiksICJGaXJzdCByZWdpb24gZm9yIHAyIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVn
aW9uTGlzdFAyLml0ZW0oMCkuaWQpOworIAorICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIgZWxl
bWVudCBwLCBpbiB0aGUgb3ZlcmZsb3cgcGFydCBvZiB0aGUgcmVnaW9uNAorICAgICAgICAgICAg
dmFyIHAzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAgcDMuaWQg
PSAicDMiOworICAgICAgICAgICAgcDMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMy4iKSk7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5hcHBlbmRDaGlsZChwMyk7CisgICAgICAgICAgICB2
YXIgcmVnaW9uTGlzdFAzID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMyk7
CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAzICE9IG51bGwsICJSZWdpb24gbGlzdCBm
b3IgcDMgbm9kZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdp
b25MaXN0UDMubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgcDMgc2hvdWxkIGhhdmUgMSBl
bGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RQMy5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHJl
Z2lvbkxpc3RQMy5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
UDMuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLCAiRmlyc3Qg
cmVnaW9uIGZvciBwMyBzaG91bGQgYmUgcmVnaW9uNCwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMy5p
dGVtKDApLmlkKTsKKworICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIgcmVnaW9uIHRvIGZsb3cy
LCBwMiBhbmQgcDMgZ28gdG8gcmVnaW9uNQorICAgICAgICAgICAgdmFyIHJlZ2lvbjUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJlZ2lvbjUuaWQgPSAicmVn
aW9uNSI7CisgICAgICAgICAgICByZWdpb241LmNsYXNzTmFtZSA9ICJyZWdpb25Cb3giOworICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb241KTsKKworICAgICAgICAg
ICAgdmFyIHJlZ2lvbkxpc3RQMjIgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
KHAyKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIgPT0gcmVnaW9uTGlzdFAyMiwg
IlJlZ2lvbiBsaXN0cyBmb3IgcDIgc2hvdWxkIHJlZmVyIHRoZSBzYW1lIHJlZ2lvbiBsaXN0Iik7
CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBs
aXN0IGZvciBwMiBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFAyLmxl
bmd0aCk7CisgICAgICAgICAgICBpZiAocmVnaW9uTGlzdFAyMi5sZW5ndGggPiAwKQorICAgICAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIyLml0ZW0oMCkgPT0gcmVnaW9uNSwgIkZpcnN0
IHJlZ2lvbiBmb3IgcDIgc2hvdWxkIGJlIHJlZ2lvbjUsIGl0IGlzICIgKyByZWdpb25MaXN0UDIu
aXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIGhpZGVSZWdpb25zKCk7CisgICAgICAgIDwvc2Ny
aXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFlMmE3MjI0MDM2ZjU3NGNlMzkyODVhYjRiMTIzMDI5ZWRiODc4NWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2Rl
Lmh0bWwKQEAgLTAsMCArMSw4OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVnaW9u
LXN0eWxlLmNzcyI+CisgICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaGVscGVyLmpzIj48
L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgYm9keSB7IGZvbnQtZmFtaWx5
OiBtb25vc3BhY2U7IH0KKyAgICAgICAgICAgICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86
IGZsb3c7IH0KKyAgICAgICAgICAgIC5ib3JkZXIgeyBib3JkZXI6IDFweCBzb2xpZCByZWQ7IH0K
KyAgICAgICAgICAgICNyZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgd2lkdGg6IDI1
MHB4OyBoZWlnaHQ6IDUwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgdG9wOiAy
MDBweDsgfQorCisgICAgICAgICAgICAjYXJ0aWNsZTIgeyAtd2Via2l0LWZsb3ctaW50bzogZmxv
dzI7IH0KKyAgICAgICAgICAgICNyZWdpb24yMSB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93Mjsg
d2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMjBw
eDsgdG9wOiAzMDBweDt9CisgICAgICAgICAgICAjcmVnaW9uMjIgeyAtd2Via2l0LWZsb3ctZnJv
bTogZmxvdzI7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7
IGxlZnQ6IDIwcHg7IHRvcDogMzUwcHg7fQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4K
KyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzQ2Ij4KKyAgICAgICAgNzc3NDY6IFtDU1NSZWdp
b25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlPC9hPjwvcD4K
KyAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBi
ZWxvdy48L3A+CisKKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAgIDxk
aXYgaWQ9ImFydGljbGUiPgorICAgICAgICAgICAgPHAgaWQ9InAxIj5UZXh0IGZsb3duIGludG8g
cmVnaW9uLjwvcD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xh
c3M9ImJvcmRlciI+PC9kaXY+CisKKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZTIiPgorICAgICAg
ICAgICAgPHAgaWQ9InAyIj5UZXh0IGZsb3duIGluIHR3byByZWdpb25zLiBUZXh0IGZsb3duIGlu
IHR3byByZWdpb25zLiBUZXh0IGZsb3duIGluIHR3byByZWdpb25zLjwvcD4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjIxIiBjbGFzcz0iYm9yZGVyIj48L2Rpdj4KKyAg
ICAgICAgPGRpdiBpZD0icmVnaW9uMjIiIGNsYXNzPSJib3JkZXIiPjwvZGl2PgorICAgICAgICA8
c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAg
ICAgICAgIHZhciBuYW1lZEZsb3cxID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxv
dyIpOworICAgICAgICAgICAgdmFyIHAxUmVnaW9uc0luRmxvdzEgPSBuYW1lZEZsb3cxLmdldFJl
Z2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMSIpKTsKKyAgICAg
ICAgICAgIHZhciBuYW1lZEZsb3cyID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxv
dzIiKTsKKyAgICAgICAgICAgIHZhciBwMlJlZ2lvbnNJbkZsb3cyID0gbmFtZWRGbG93Mi5nZXRS
ZWdpb25zQnlDb250ZW50Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDIiKSk7CisKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIHRlc3RHZXRSZWdpb25zQnlDb250ZW50Tm9kZTEoKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHZhciBuYW1lZEZsb3cgPSBkb2N1bWVudC53ZWJraXRH
ZXRGbG93QnlOYW1lKCJmbG93Iik7CisgICAgICAgICAgICAgICAgdmFyIHRhcmdldE5vZGUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDEiKTsKKyAgICAgICAgICAgICAgICB2YXIgcmVnaW9u
c0xpc3QgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGFyZ2V0Tm9kZSk7CisK
KyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uc0xpc3QgPT0gcDFSZWdpb25zSW5GbG93MSwg
IlJlZ2lvbiBsaXN0IGZvciBwMSBpbiBmbG93MSBzaG91bGQgYmUgYSBsaXZlIG9iamVjdCIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25zTGlzdC5sZW5ndGggPT0gMSwgIlRoZSByZWdp
b24gbGlzdCBjb3VudCBzaG91bGQgYmUgMSwgaXQgaXMgIiArIHJlZ2lvbnNMaXN0Lmxlbmd0aCk7
CisgICAgICAgICAgICAgICAgaWYgKHJlZ2lvbnNMaXN0Lmxlbmd0aCA+IDApCisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydChyZWdpb25zTGlzdC5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDEgc2hvdWxkIGJlIHJlZ2lvbiwg
aXQgaXMgIiArIHJlZ2lvbnNMaXN0Lml0ZW0oMCkuaWQpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0UmVnaW9uc0J5Q29udGVudE5vZGUyKCkKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICB2YXIgbmFtZWRGbG93ID0gZG9jdW1lbnQud2Via2l0R2V0
Rmxvd0J5TmFtZSgiZmxvdzIiKTsKKworICAgICAgICAgICAgICAgIC8vIFRlc3QgdGhhdCB0aGUg
cDIgZWxlbWVudCBpcyBmbG93biBpbnRvIDIgcmVnaW9ucworICAgICAgICAgICAgICAgIHZhciB0
YXJnZXROb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAyIik7CisgICAgICAgICAgICAg
ICAgdmFyIHJlZ2lvbkxpc3QgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGFy
Z2V0Tm9kZSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdCA9PSBwMlJlZ2lv
bnNJbkZsb3cyLCAiUmVnaW9uIGxpc3QgZm9yIHAyIGluIGZsb3cyIHNob3VsZCBiZSBhIGxpdmUg
b2JqZWN0Iik7CisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3QubGVuZ3RoID09IDIs
ICJUaGUgcmVnaW9uIGxpc3QgY291bnQgc2hvdWxkIGJlIDIsIGl0IGlzICIgKyByZWdpb25MaXN0
Lmxlbmd0aCk7CisgICAgICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3QubGVuZ3RoID4gMCkKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3QuaXRlbSgwKSA9PSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVnaW9uMjEiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDIgc2hvdWxkIGJl
IHJlZ2lvbjIxLCBpdCBpcyAiICsgcmVnaW9uTGlzdC5pdGVtKDApLmlkKTsKKyAgICAgICAgICAg
ICAgICBpZiAocmVnaW9uTGlzdC5sZW5ndGggPiAxKQorICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdC5pdGVtKDEpID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24y
MiIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMiBzaG91bGQgYmUgcmVnaW9uMjIsIGl0IGlzICIgKyBy
ZWdpb25MaXN0Lml0ZW0oMSkuaWQpOworCisgICAgICAgICAgICAgICAgLy8gVGVzdCB0aGF0IHAx
IGVsZW1lbnQgaXMgbm90IGluIGZsb3cyCisgICAgICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMSIpOworICAgICAgICAgICAgICAgIHJlZ2lvbkxpc3Qg
PSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGFyZ2V0Tm9kZSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3QubGVuZ3RoID09IDAsICJUaGUgcmVnaW9uIGxpc3Qg
Y291bnQgc2hvdWxkIGJlIDAsIGl0IGlzICIgKyByZWdpb25MaXN0Lmxlbmd0aCk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGhpZGVSZWdpb25zQW5kRmxvd3MoKSB7Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5zdHlsZS52
aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImFydGljbGUyIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKS5zdHlsZS52aXNpYmlsaXR5
ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
Z2lvbjIxIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yMiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlk
ZGVuIjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdEdldFJlZ2lvbnNCeUNvbnRl
bnROb2RlMSgpOworICAgICAgICAgICAgdGVzdEdldFJlZ2lvbnNCeUNvbnRlbnROb2RlMigpOwor
CisgICAgICAgICAgICBoaWRlUmVnaW9uc0FuZEZsb3dzKCk7CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jY2I1NjkyNDM2Y2U3YTI3NGM2MjgyZWZjMmRhOTQ2ZWFiMGIyYTEyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNv
bnRlbnQtbm9kZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKK1Rlc3QgZm9yIDc3NzQ2
OiBbQ1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9k
ZQorCitPbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNTIGJlbG93Lgor
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5v
ZGUyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVu
dC1ub2RlMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2OWE4OTNhNWJmZjMzNDk2ZTkzMDY2NjdhYmNmZDg2
YmM3MmZjNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0
LXJlZ2lvbnMtYnktY29udGVudC1ub2RlMi5odG1sCkBAIC0wLDAgKzEsMTAyIEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9InJlc291cmNlcy9yZWdpb24tc3R5bGUuY3NzIj4KKyAgICAgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy9oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+CisgICAg
ICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgfQorICAgICAgICAgICAgI3Jl
Z2lvbiwgI3JlZ2lvbjIgeyB3aWR0aDogMjUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAg
ICAgLmFydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorICAgICAgICAgICAgLmFy
dGljbGUyIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3cyOyB9CisgICAgICAgICAgICAucmVnaW9u
IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IH0KKyAgICAgICAgICAgIC5yZWdpb24yIHsgLXdl
YmtpdC1mbG93LWZyb206IGZsb3cyOyB9CisgICAgICAgICAgICAubm9SZWdpb24geyAtd2Via2l0
LWZsb3ctZnJvbTogbm9uZTsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc3NzQ2Ij4KKyAgICAgICAgNzc3NDY6IFtDU1NSZWdpb25zXUlt
cGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlPC9hPjwvcD4KKyAgICAg
ICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxvdy48
L3A+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJh
cnRpY2xlIiBjbGFzcz0iYXJ0aWNsZSI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIg
Y2xhc3M9InJlZ2lvbiI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjIiPjwvZGl2Pgor
ICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlO
YW1lKCJmbG93Iik7CisKKyAgICAgICAgICAgIC8vIEdldHRpbmcgdGhlIHJlZ2lvbnMgZm9yIGEg
bm9uIGV4aXN0YW50IG5vZGUgc2hvdWxkIHJldHVybiBudWxsLgorICAgICAgICAgICAgdmFyIHBF
bGVtZW50OworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3QgPSBuYW1lZEZsb3cuZ2V0UmVnaW9u
c0J5Q29udGVudE5vZGUocEVsZW1lbnQpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Qg
PT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBhIG5vbi1leGlzdGFudCBub2RlIHNob3VsZCByZXR1
cm4gbnVsbCIpOworCisgICAgICAgICAgICAvLyBHZXR0aW5nIHRoZSByZWdpb25zIGZvciBhbiBl
bGVtZW50IHRoYXQgd2FzIG5vdCBhZGRlZCB0byB0aGUgZG9tIHNob3VsZCByZXR1cm4gYW4gZW1w
dHkgbGlzdC4KKyAgICAgICAgICAgIHBFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
cCIpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdDIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9u
c0J5Q29udGVudE5vZGUocEVsZW1lbnQpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Qy
ICE9IG51bGwsICJSZWdpb24gbGlzdCAyIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3QyLmxlbmd0aCA9PSAwLCAiUmVnaW9uIGxpc3QgMiBzaG91bGQg
YmUgZW1wdHksIGhhcyAiICsgcmVnaW9uTGlzdDIubGVuZ3RoICsgIiBlbGVtZW50cy4iKTsKKyAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0ICE9IHJlZ2lvbkxpc3QyLCAiUmVnaW9uIGxpc3Rz
IHNob3VsZCBiZSBkaWZmZXJlbnQiKTsKKworICAgICAgICAgICAgLy8gQWRkIHRoZSBlbGVtZW50
IHRvIHRoZSBkb20gYnV0IG5vdCBpbiB0aGUgZmxvdy4gVGhlIHJlZ2lvbiBsaXN0IHNob3VsZCBi
ZSBlbXB0eS4KKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocEVsZW1lbnQp
OworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3QzID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlKHBFbGVtZW50KTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0MyAhPSBu
dWxsLCAiUmVnaW9uIGxpc3QgMyBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0My5sZW5ndGggPT0gMCwgIlJlZ2lvbiBsaXN0IDMgc2hvdWxkIGJlIGVt
cHR5LCBoYXMgIiArIHJlZ2lvbkxpc3QzLmxlbmd0aCArICIgZWxlbWVudHMuIik7CisgICAgICAg
ICAgICBhc3NlcnQocmVnaW9uTGlzdDIgPT0gcmVnaW9uTGlzdDMsICJSZWdpb25zIGxpc3QgMiBh
bmQgMyBzaG91bGQgcmVmZXIgdGhlIHNhbWUgTm9kZUxpc3Qgb2JqZWN0Iik7CisKKyAgICAgICAg
ICAgIC8vIEFkZCB0aGUgc2FtZSBlbGVtZW50IHRvIHRoZSBmbG93LiBUaGUgcmVnaW9uIGxpc3Qg
c2hvdWxkIGNvbnRhaW4gb25lIHJlZ2lvbi4KKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQocEVsZW1lbnQpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImFydGljbGUiKS5hcHBlbmRDaGlsZChwRWxlbWVudCk7CisgICAgICAgICAgICB2YXIgcmVnaW9u
TGlzdDQgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1lbnQpOworICAg
ICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q0ICE9IG51bGwsICJSZWdpb24gbGlzdCA0IGZvciBu
b2RlIGluIGZsb3cgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVn
aW9uTGlzdDQubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCA0IGZvciBub2RlIGluIGZsb3cgc2hv
dWxkIGhhdmUgMSByZWdpb24sIGhhcyAiICsgcmVnaW9uTGlzdDQubGVuZ3RoICsgIiBlbGVtZW50
cyIpOworICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3Q0Lmxlbmd0aCA+IDApCisgICAgICAgICAg
ICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q0Lml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlZ2lvbiIpLCAiRmlyc3QgZWxlbWVudCBpbiByZWdpb24gbGlzdCA0IHNob3VsZCBiZSB0
aGUgZmlyc3QgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdDQuaXRlbSgwKS5pZCk7CisgICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDQgPT0gcmVnaW9uTGlzdDMsICJSZWdpb25zIGxpc3Qg
MyBhbmQgNCBzaG91bGQgcmVmZXIgdGhlIHNhbWUgTm9kZUxpc3Qgb2JqZWN0Iik7CisKKyAgICAg
ICAgICAgIC8vIFJlbW92ZSB0aGUgcmVnaW9uIG5vZGUgYW5kIGdldCB0aGUgcmVnaW9uIGxpc3Qu
IFRoZSBsaXN0IHNob3VsZCBiZSBlbXB0eS4KKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb24iKS5jbGFzc05hbWUgPSAibm9SZWdpb24iOworICAgICAgICAgICAgdmFy
IHJlZ2lvbkxpc3Q1ID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHBFbGVtZW50
KTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0NSAhPSBudWxsLCAiUmVnaW9uIGxpc3Qg
NSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0NS5s
ZW5ndGggPT0gMCwgIlJlZ2lvbiBsaXN0IDUgc2hvdWxkIGJlIGVtcHR5LCBoYXMgIiArIHJlZ2lv
bkxpc3Q1Lmxlbmd0aCArICIgZWxlbWVudHMiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0NSA9PSByZWdpb25MaXN0NCwgIlJlZ2lvbnMgbGlzdCA0IGFuZCA1IHNob3VsZCByZWZlciB0
aGUgc2FtZSBOb2RlTGlzdCBvYmplY3QiKTsKKworICAgICAgICAgICAgLy8gQnJpbmcgYmFjayB0
aGUgcmVnaW9uIGFuZCBnZXQgdGhlIHJlZ2lvbiBsaXN0LiBUaGUgbGlzdCBzaG91bGQgaGF2ZSBv
bmUgZWxlbWVudC4KKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24i
KS5jbGFzc05hbWUgPSAicmVnaW9uIjsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0NiA9IG5h
bWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVudCk7CisgICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdDYgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IDYgc2hvdWxkIG5vdCBiZSBu
dWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDYubGVuZ3RoID09IDEsICJSZWdp
b24gbGlzdCA2IHNob3VsZCBoYXZlIDEgcmVnaW9uLCBoYXMgIiArIHJlZ2lvbkxpc3Q2Lmxlbmd0
aCArICIgZWxlbWVudHMiKTsKKyAgICAgICAgICAgIGlmIChyZWdpb25MaXN0Ni5sZW5ndGggPiAw
KQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0Ni5pdGVtKDApID09IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0IGVsZW1lbnQgaW4gcmVnaW9uIGxpc3Qg
NiBzaG91bGQgYmUgdGhlIGZpcnN0IHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3Q2Lml0ZW0o
MCkuaWQpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q2ID09IHJlZ2lvbkxpc3Q1LCAi
UmVnaW9uIGxpc3QgNSBhbmQgNiBzaG91bGQgcmVmZXIgdGhlIHNhbWUgTm9kZUxpc3Qgb2JqZWN0
Iik7CisKKyAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgbmFtZWQgZmxvdywgdGhlIHJlZ2lvbiBs
aXN0IHNob3VsZCBiZSBlbXB0eS4KKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJhcnRpY2xlIikuY2xhc3NOYW1lID0gIiI7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdDcg
PSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1lbnQpOworICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3Q3ICE9IG51bGwsICJSZWdpb24gbGlzdCA3IHNob3VsZCBub3Qg
YmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q3Lmxlbmd0aCA9PSAwLCAi
UmVnaW9uIGxpc3QgNyBzaG91bGQgYmUgZW1wdHksIGl0IGhhcyAiICsgcmVnaW9uTGlzdDcubGVu
Z3RoICsgIiBlbGVtZW50cyIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q3ID09IHJl
Z2lvbkxpc3Q2LCAiUmVnaW9uIGxpc3QgNiBhbmQgNyBzaG91bGQgcmVmZXIgdGhlIHNhbWUgTm9k
ZUxpc3Qgb2JqZWN0Iik7CisKKyAgICAgICAgICAgIC8vIE1vdmUgdGhlIGFydGljbGUgdG8gYW5v
dGhlciBuYW1lZCBmbG93LCB0aGUgcmVnaW9uIGxpc3Qgc2hvdWxkIGJlIGVtcHR5LgorICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5jbGFzc05hbWUgPSAiYXJ0
aWNsZTIiOworICAgICAgICAgICAgdmFyIG5hbWVkRmxvdzIgPSBkb2N1bWVudC53ZWJraXRHZXRG
bG93QnlOYW1lKCJmbG93MiIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3Q4ID0gbmFtZWRG
bG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVudCk7CisgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdDggIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IDggc2hvdWxkIG5vdCBiZSBudWxs
Iik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDgubGVuZ3RoID09IDAsICJSZWdpb24g
bGlzdCA4IHNob3VsZCBiZSBlbXB0eSwgaXQgaGFzICIgKyByZWdpb25MaXN0OC5sZW5ndGggKyAi
IGVsZW1lbnRzIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDggIT0gcmVnaW9uTGlz
dDcsICJSZWdpb24gbGlzdCA3IGFuZCA4IHNob3VsZCByZWZlciBkaWZmZXJlbnQgTm9kZUxpc3Qg
b2JqZWN0cyIpOworCisgICAgICAgICAgICAvLyBBZGQgYSByZWdpb24gdG8gdGhlIHNlY29uZCBu
YW1lZCBmbG93LCB0aGUgcmVnaW9uIGxpc3Qgc2hvdWxkIGNvbnRhaW4gb25lIGVsZW1lbnQKKyAg
ICAgICAgICAgIC8vIHNpbmNlIHRoZSBwIGVsZW1lbnQgaXMgYSBjaGlsZCBvZiBhcnRpY2xlIHRo
YXQgaXMgY29sbGVjdGVkIGJ5IGZsb3cyLgorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZ2lvbjIiKS5jbGFzc05hbWUgPSAicmVnaW9uMiI7CisgICAgICAgICAgICB2YXIg
cmVnaW9uTGlzdDkgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHBFbGVtZW50
KTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0OSAhPSBudWxsLCAiUmVnaW9uIGxpc3Qg
OSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0OS5s
ZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IDkgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBpdCBoYXMg
IiArIHJlZ2lvbkxpc3Q5Lmxlbmd0aCArICIgZWxlbWVudHMiKTsKKyAgICAgICAgICAgIGlmIChy
ZWdpb25MaXN0OS5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
OSA9PSByZWdpb25MaXN0OCwgIlJlZ2lvbiBsaXN0IDggYW5kIDkgc2hvdWxkIHJlZmVyZSB0aGUg
c2FtZSBOb2RlTGlzdCBvYmplY3QiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5Pgor
PC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132037</attachid>
            <date>2012-03-15 06:42:00 -0700</date>
            <delta_ts>2012-03-19 10:58:05 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>77746-3.patch</filename>
            <type>text/plain</type>
            <size>67910</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZGFkNWRiLi45NGUyODU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDMt
MTUgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzQ2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGxpc3Qgb2YgcmVn
aW9ucyByZXR1cm5lZCBpcyBhIHN0YXRpYyBub2RlIGxpc3QuCisKKyAgICAgICAgKiBmYXN0L3Jl
Z2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1i
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9u
cy1ieS1jb250ZW50LW5vZGUtaG9yaXotYnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9y
ZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei10Yi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5v
ZGUtaG9yaXotdGIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdp
b25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5v
ZGUtdmVydC1ybC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9n
ZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1ybC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNv
bnRlbnQtbm9kZTIuaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMTMgIE5pa29sYXMgWmltbWVybWFu
biAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgRW5hYmxlIGFuaW1WYWwgc3VwcG9y
dCBmb3IgU1ZHTGVuZ3RoTGlzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzNlYWUzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdCBmb3IgNzc3NDY6IFtDU1NSZWdpb25z
XUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlCisKK09uIHN1Y2Nl
c3MsIHlvdSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mIFBBU1MgYmVsb3cuCisKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotYnQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9k
ZS1ob3Jpei1idC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMDkzZDQ0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9n
ZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotYnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNDUgQEAKK1Rlc3QgZm9yIDc3NzQ2OiBbQ1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93
OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZQorCitPbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBh
IHNlcmllcyBvZiBQQVNTIGJlbG93LgorCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotYnQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotYnQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjkxNzhkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRl
bnQtbm9kZS1ob3Jpei1idC5odG1sCkBAIC0wLDAgKzEsMTU2IEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
InJlc291cmNlcy9yZWdpb24tc3R5bGUuY3NzIj4KKyAgICAgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBo
dG1sIHsgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQ7IH0KKyAgICAgICAgICAg
IGJvZHkgeyBmb250LWZhbWlseTogbW9ub3NwYWNlOyB9CisgICAgICAgICAgICAjYXJ0aWNsZSB7
IC13ZWJraXQtZmxvdy1pbnRvOiBmbG93OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtp
dC1mbG93LWZyb206IGZsb3c7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisgICAgICAg
ICAgICAjcmVnaW9uMiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB3aWR0aDogMjUwcHg7IGhl
aWdodDogNTBweDsgfQorICAgICAgICAgICAgI3JlZ2lvbjMgeyAtd2Via2l0LWZsb3ctZnJvbTog
Zmxvdzsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKworICAgICAgICAgICAgI2FydGlj
bGUyIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3cyOyB9CisgICAgICAgICAgICAjcmVnaW9uNCB7
IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93Mjsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IH0K
KyAgICAgICAgICAgICNyZWdpb241IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOyB3aWR0aDog
MjUwcHg7IGhlaWdodDogNTBweDsgfQorCisgICAgICAgICAgICAubm9SZWdpb24geyAtd2Via2l0
LWZsb3ctZnJvbTogbm9uZTsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keT4KKyAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyTWVzc2FnZSI+CisgICAgICAgICAgICA8
cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzc3NDYiPgorICAgICAgICAgICAgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1l
ZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDxwPk9u
IHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mIFBBU1MgYmVsb3cuPC9wPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAgIDwh
LS0gc29tZSB0ZXN0cyB3aXRoIGlubGluZSBlbGVtZW50cyAtLT4KKyAgICAgICAgPGRpdiBpZD0i
YXJ0aWNsZSI+CisgICAgICAgICAgICA8c3BhbiBpZD0ic3Bhbk5vZGUiPlRleHQgaW5zaWRlIHNw
YW4uPC9zcGFuPgorICAgICAgICAgICAgVGV4dCBvdXRzaWRlIHNwYW4uIFRleHQgb3V0c2lkZSBz
cGFuLiBUZXh0IG91dHNpZGUgc3Bhbi4KKyAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZTIi
PlRleHQgaW5zaWRlIHNwYW4yLjwvc3Bhbj4KKyAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9k
ZTMiPlRleHQgaW5zaWRlIHNwYW4zPC9zcGFuPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRp
diBpZD0icmVnaW9uIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uMiI+PC9kaXY+CisK
KyAgICAgICAgPCEtLSBzb21lIHRlc3RzIHdpdGggYmxvY2sgZWxlbWVudHMgLS0+CisgICAgICAg
IDxkaXYgaWQ9ImFydGljbGUyIj4KKyAgICAgICAgICAgIDxwIGlkPSJwMSI+VGV4dCBpbnNpZGUg
cGFyYWdyYXBoIHAxLjwvcD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lv
bjQiPjwvcmVnaW9uPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdmFyIG5hbWVkRmxvdyA9IGRvY3Vt
ZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKTsKKworICAgICAgICAgICAgZnVuY3Rpb24g
aGlkZVJlZ2lvbnMoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLnN0eWxlLnZp
c2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVnaW9uIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIikuc3R5bGUudmlzaWJpbGl0eSA9
ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdp
b24zIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4i
OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb241Iikuc3R5
bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2
YXIgcmVnaW9uTGlzdEFydGljbGUgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKSk7CisgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdEFydGljbGUgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBhcnRpY2xlIHNob3Vs
ZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlLmxl
bmd0aCA9PSAyLCAiUmVnaW9uIGxpc3QgZm9yIGFydGljbGUgc2hvdWxkIGhhdmUgMiBlbGVtZW50
cywgaGFzICIgKyByZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
Z2lvbiIpLCAiRmlyc3QgZWxlbWVudCBpbiByZWdpb24gbGlzdCBmb3IgYXJ0aWNsZSBzaG91bGQg
YmUgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdEFydGljbGUuaXRlbSgwKS5pZCk7CisgICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUuaXRlbSgxKSA9PSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVnaW9uMiIpLCAiU2Vjb25kIGVsZW1lbnQgaW4gcmVnaW9uIGxpc3QgZm9y
IGFydGljbGUgc2hvdWxkIGJlIHJlZ2lvbjIsIGl0IGlzICIgKyByZWdpb25MaXN0QXJ0aWNsZS5p
dGVtKDEpLmlkKTsKKworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInNwYW5Ob2RlIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4gPSBu
YW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUpOworICAgICAgICAgICAg
YXNzZXJ0KHJlZ2lvbkxpc3RTcGFuICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3Igc3BhbiBzaG91
bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3Bhbi5sZW5n
dGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFz
ICIgKyByZWdpb25MaXN0U3Bhbi5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxp
c3RTcGFuLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLCAiRmly
c3QgcmVnaW9uIGZvciBzcGFuIHNob3VsZCBiZSByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0
U3Bhbi5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlMiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZTIiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0
U3BhbjIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUyKTsKKyAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjIgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZv
ciBzcGFuMiBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0U3BhbjIubGVuZ3RoID09IDIsICJSZWdpb24gbGlzdCBmb3Igc3BhbjIgc2hvdWxkIGhhdmUg
MiBlbGVtZW50cywgaGFzICIgKyByZWdpb25MaXN0U3BhbjIubGVuZ3RoKTsKKworICAgICAgICAg
ICAgdmFyIHNwYW5Ob2RlMyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZTMiKTsK
KyAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbjMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5
Q29udGVudE5vZGUoc3Bhbk5vZGUzKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3Bh
bjMgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMyBzaG91bGQgbm90IGJlIG51bGwiKTsK
KyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjMubGVuZ3RoID09IDEsICJSZWdpb24g
bGlzdCBmb3Igc3BhbjMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RT
cGFuMy5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMy5pdGVtKDAp
ID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9y
IHNwYW4gbm9kZSAzIHNob3VsZCBiZSB0aGUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lv
bkxpc3RTcGFuMy5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgdmFyIHRleHROb2RlID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRl
eHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gIik7CisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2Rl
KTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUgPSBuYW1lZEZsb3cuZ2V0UmVn
aW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxp
c3RUZXh0Tm9kZSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSBzaG91bGQgbm90
IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUubGVuZ3Ro
ID09IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBoYXZlIDEgZWxlbWVudCwg
aGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydChy
ZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVn
aW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgc2hvdWxkIGJlIHNlY29uZCByZWdp
b24sIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgwKS5pZCk7CisKKyAgICAgICAg
ICAgIC8vIEFkZCBhbm90aGVyIHRleHQgbm9kZSB0aGF0IHdpbGwgb3ZlcmZsb3cgdGhlIHJlZ2lv
bjIuCisgICAgICAgICAgICB2YXIgdGV4dE5vZGUyID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
IlRleHQgbm9kZTIuIik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0
aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2RlMik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlz
dFRleHROb2RlMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTIp
OworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIgIT0gbnVsbCwgIlJlZ2lv
biBsaXN0IGZvciB0ZXh0IG5vZGUgMiBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9y
IHRleHQgbm9kZSAyIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4
dE5vZGUyLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5p
dGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdp
b24gZm9yIHRleHQgbm9kZSAyIHNob3VsZCBiZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVn
aW9uTGlzdFRleHROb2RlMi5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgLy8gQWRkIGFub3Ro
ZXIgdGV4dCBub2RlIHRoYXQgaXMgaW4gdGhlIG92ZXJmbG93IG9mIHRoZSBsYXN0IHJlZ2lvbi4K
KyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZTMgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4
dCBub2RlMy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xl
IikuYXBwZW5kQ2hpbGQodGV4dE5vZGUzKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4
dE5vZGUzID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlMyk7Cisg
ICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMyAhPSBudWxsLCAiUmVnaW9uIGxp
c3QgZm9yIHRleHQgbm9kZSAzIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4
dCBub2RlIDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9k
ZTMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzLml0ZW0o
MCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBm
b3IgdGV4dCBub2RlIDMgc2hvdWxkIGJlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25M
aXN0VGV4dE5vZGUzLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhlciBy
ZWdpb24gdG8gdGFrZSB0aGUgb3ZlcmZsb3dpbmcgZWxlbWVudHMgZnJvbSBzZWNvbmQgcmVnaW9u
LgorICAgICAgICAgICAgdmFyIHJlZ2lvbjMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICAgICAgICAgIHJlZ2lvbjMuaWQgPSAicmVnaW9uMyI7CisgICAgICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlZ2lvbjMpOworCisgICAgICAgICAgICB2YXIgcmVnaW9u
TGlzdFRleHROb2RlMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9k
ZSk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPT0gMiwg
IlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgc2hvdWxkIGhhdmUgMiBlbGVtZW50LCBoYXMgIiAr
IHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0VGV4dE5vZGUyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIi
KSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIHNob3VsZCBiZSB0aGUgc2Vjb25kIHJlZ2lv
biBmcm9tIGZsb3csIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQpOwor
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgxKSA9PSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMyIpLCAiU2Vjb25kIHJlZ2lvbiBmb3IgdGV4dCBub2Rl
IHNob3VsZCBiZSB0aGUgdGhpcmQgcmVnaW9uIGZyb20gZmxvdywgaXQgaXMgIiArIHJlZ2lvbkxp
c3RUZXh0Tm9kZTIuaXRlbSgxKS5pZCk7CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4
dE5vZGUzMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTMpOwor
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCA9PSAxLCAiUmVn
aW9uIGxpc3QgZm9yIHRleHQgbm9kZSAzIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyBy
ZWdpb25MaXN0VGV4dE5vZGUzLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlz
dFRleHROb2RlMzIuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMyIp
LCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgYmUgdGhlIHRoaXJkIHJlZ2lv
biBmcm9tIGZsb3csIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUzMi5pdGVtKDApLmlkKTsK
KworICAgICAgICAgICAgdmFyIG5hbWVkRmxvdzIgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlO
YW1lKCJmbG93MiIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMSA9IG5hbWVkRmxvdzIu
Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAxIikpOwor
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9y
IHAxIG5vZGUgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9u
TGlzdFAxLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAxIG5vZGUgc2hvdWxkIGhhdmUg
MSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RQMS5sZW5ndGgpOworICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RQMS5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdp
b240IiksICJGaXJzdCByZWdpb24gZm9yIHAxIG5vZGUgc2hvdWxkIGJlIHJlZ2lvbjQsIGl0IGlz
ICIgKyByZWdpb25MaXN0UDEuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIHZhciBwMiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAgICAgICAgICAgIHAyLmlkID0gInAyIjsKKyAg
ICAgICAgICAgIHAyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IGlu
c2lkZSBwYXJhZ3JhcGggcDIuIikpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImFydGljbGUyIikuYXBwZW5kQ2hpbGQocDIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxp
c3RQMiA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocDIpOworICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHAyIG5vZGUg
c2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyLmxl
bmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAyIG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50
LCBoYXMgIiArIHJlZ2lvbkxpc3RQMi5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RQMi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240IiksICJG
aXJzdCByZWdpb24gZm9yIHAyIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlz
dFAyLml0ZW0oMCkuaWQpOworIAorICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIgZWxlbWVudCBw
LCBpbiB0aGUgb3ZlcmZsb3cgcGFydCBvZiB0aGUgcmVnaW9uNAorICAgICAgICAgICAgdmFyIHAz
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAgcDMuaWQgPSAicDMi
OworICAgICAgICAgICAgcDMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRl
eHQgaW5zaWRlIHBhcmFncmFwaCBwMy4iKSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYXJ0aWNsZTIiKS5hcHBlbmRDaGlsZChwMyk7CisgICAgICAgICAgICB2YXIgcmVn
aW9uTGlzdFAzID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMyk7CisgICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAzICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgcDMg
bm9kZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
UDMubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgcDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50
LCBoYXMgIiArIHJlZ2lvbkxpc3RQMy5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RQMy5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240IiksICJG
aXJzdCByZWdpb24gZm9yIHAzIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlz
dFAzLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICAvLyBhZGQgYW5vdGhlciByZWdpb24gdG8g
ZmxvdzIsIHAyIGFuZCBwMyBnbyB0byByZWdpb241CisgICAgICAgICAgICB2YXIgcmVnaW9uNSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgcmVnaW9uNS5pZCA9
ICJyZWdpb241IjsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVnaW9u
NSk7CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDIyID0gbmFtZWRGbG93Mi5nZXRSZWdp
b25zQnlDb250ZW50Tm9kZShwMik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyMi5s
ZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMiBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhh
cyAiICsgcmVnaW9uTGlzdFAyLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlz
dFAyMi5pdGVtKDApID09IHJlZ2lvbjUsICJGaXJzdCByZWdpb24gZm9yIHAyIHNob3VsZCBiZSBy
ZWdpb241LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAyLml0ZW0oMCkuaWQpOworCisgICAgICAgICAg
ICBoaWRlUmVnaW9ucygpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29u
dGVudC1ub2RlLWhvcml6LXRiLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotdGItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5M2Q0NGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhv
cml6LXRiLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ1IEBACitUZXN0IGZvciA3Nzc0NjogW0NT
U1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUKKwor
T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxvdy4KKworUEFT
UworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFT
UworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworCisKKworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVu
dC1ub2RlLWhvcml6LXRiLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lv
bnMtYnktY29udGVudC1ub2RlLWhvcml6LXRiLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYjU4NzZlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotdGIuaHRtbApAQCAtMCww
ICsxLDE1NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVnaW9uLXN0eWxlLmNzcyI+
CisgICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaGVscGVyLmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHN0eWxlPgorICAgICAgICAgICAgYm9keSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7
IH0KKyAgICAgICAgICAgICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7IH0KKyAg
ICAgICAgICAgICNyZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgd2lkdGg6IDI1MHB4
OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNyZWdpb24yIHsgLXdlYmtpdC1mbG93LWZy
b206IGZsb3c7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAjcmVn
aW9uMyB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB3aWR0aDogMjUwcHg7IGhlaWdodDogNTBw
eDsgfQorCisgICAgICAgICAgICAjYXJ0aWNsZTIgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzI7
IH0KKyAgICAgICAgICAgICNyZWdpb240IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOyB3aWR0
aDogMjUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAgI3JlZ2lvbjUgeyAtd2Via2l0
LWZsb3ctZnJvbTogZmxvdzI7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisKKyAgICAg
ICAgICAgIC5ub1JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBub25lOyB9CisgICAgICAgIDwv
c3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3NDYiPgorICAg
ICAgICA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5
Q29udGVudE5vZGU8L2E+PC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNl
ZSBhIHNlcmllcyBvZiBQQVNTIGJlbG93LjwvcD4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisgICAgICAgIDwhLS0gc29tZSB0ZXN0cyB3aXRoIGlubGluZSBlbGVtZW50cyAtLT4K
KyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZSI+CisgICAgICAgICAgICA8c3BhbiBpZD0ic3Bhbk5v
ZGUiPlRleHQgaW5zaWRlIHNwYW4uPC9zcGFuPgorICAgICAgICAgICAgVGV4dCBvdXRzaWRlIHNw
YW4uIFRleHQgb3V0c2lkZSBzcGFuLiBUZXh0IG91dHNpZGUgc3Bhbi4KKyAgICAgICAgICAgIDxz
cGFuIGlkPSJzcGFuTm9kZTIiPlRleHQgaW5zaWRlIHNwYW4yLjwvc3Bhbj4KKyAgICAgICAgICAg
IDxzcGFuIGlkPSJzcGFuTm9kZTMiPlRleHQgaW5zaWRlIHNwYW4zPC9zcGFuPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0i
cmVnaW9uMiI+PC9kaXY+CisKKyAgICAgICAgPCEtLSBzb21lIHRlc3RzIHdpdGggYmxvY2sgZWxl
bWVudHMgLS0+CisgICAgICAgIDxkaXYgaWQ9ImFydGljbGUyIj4KKyAgICAgICAgICAgIDxwIGlk
PSJwMSI+VGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAxLjwvcD4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxkaXYgaWQ9InJlZ2lvbjQiPjwvcmVnaW9uPgorCisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAg
IHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGhpZGVSZWdpb25zKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlk
ZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIi
KS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLnN0eWxlLnZp
c2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVnaW9uMyIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLnN0eWxlLnZpc2liaWxpdHkg
PSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVn
aW9uNSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgdmFyIG5hbWVkRmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZs
b3ciKTsKKworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RBcnRpY2xlID0gbmFtZWRGbG93Lmdl
dFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikp
OworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlICE9IG51bGwsICJSZWdpb24g
bGlzdCBmb3IgYXJ0aWNsZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2Vy
dChyZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZvciBhcnRpY2xl
IHNob3VsZCBoYXZlIDIgZWxlbWVudHMsIGhhcyAiICsgcmVnaW9uTGlzdEFydGljbGUubGVuZ3Ro
KTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApID09IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0IGVsZW1lbnQgaW4gcmVnaW9uIGxp
c3QgZm9yIGFydGljbGUgc2hvdWxkIGJlIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RBcnRp
Y2xlLml0ZW0oMCkuaWQpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlLml0
ZW0oMSkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIlNlY29uZCBlbGVt
ZW50IGluIHJlZ2lvbiBsaXN0IGZvciBhcnRpY2xlIHNob3VsZCBiZSByZWdpb24yLCBpdCBpcyAi
ICsgcmVnaW9uTGlzdEFydGljbGUuaXRlbSgxKS5pZCk7CisKKyAgICAgICAgICAgIHZhciBzcGFu
Tm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZSIpOworICAgICAgICAgICAg
dmFyIHJlZ2lvbkxpc3RTcGFuID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNw
YW5Ob2RlKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbiAhPSBudWxsLCAiUmVn
aW9uIGxpc3QgZm9yIHNwYW4gc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFNwYW4ubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3Igc3BhbiBzaG91
bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFNwYW4ubGVuZ3RoKTsKKyAgICAg
ICAgICAgIGFzc2VydChyZWdpb25MaXN0U3Bhbi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0IHJlZ2lvbiBmb3Igc3BhbiBzaG91bGQgYmUgcmVnaW9u
LCBpdCBpcyAiICsgcmVnaW9uTGlzdFNwYW4uaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIHZh
ciBzcGFuTm9kZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUyIik7CisgICAg
ICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4yID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRl
bnROb2RlKHNwYW5Ob2RlMik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4yICE9
IG51bGwsICJSZWdpb24gbGlzdCBmb3Igc3BhbjIgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4yLmxlbmd0aCA9PSAyLCAiUmVnaW9uIGxpc3Qg
Zm9yIHNwYW4yIHNob3VsZCBoYXZlIDIgZWxlbWVudHMsIGhhcyAiICsgcmVnaW9uTGlzdFNwYW4y
Lmxlbmd0aCk7CisKKyAgICAgICAgICAgIHZhciBzcGFuTm9kZTMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic3Bhbk5vZGUzIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4zID0g
bmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlMyk7CisgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdFNwYW4zICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3Igc3BhbjMg
c2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4z
Lmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4zIHNob3VsZCBoYXZlIDEgZWxlbWVu
dCwgaGFzICIgKyByZWdpb25MaXN0U3BhbjMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydChy
ZWdpb25MaXN0U3BhbjMuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9u
MiIpLCAiRmlyc3QgcmVnaW9uIGZvciBzcGFuIG5vZGUgMyBzaG91bGQgYmUgdGhlIHNlY29uZCBy
ZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0U3BhbjMuaXRlbSgwKS5pZCk7CisKKyAgICAgICAg
ICAgIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUuIFRl
eHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0
IG5vZGUuICIpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUi
KS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHRO
b2RlID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlKTsKKyAgICAg
ICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZv
ciB0ZXh0IG5vZGUgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVn
aW9uTGlzdFRleHROb2RlLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSBz
aG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlLmxlbmd0aCk7
CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlLml0ZW0oMCkgPT0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2Rl
IHNob3VsZCBiZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlLml0
ZW0oMCkuaWQpOworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhlciB0ZXh0IG5vZGUgdGhhdCB3
aWxsIG92ZXJmbG93IHRoZSByZWdpb24yLgorICAgICAgICAgICAgdmFyIHRleHROb2RlMiA9IGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUyLiIpOworICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTIpOworICAg
ICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5
Q29udGVudE5vZGUodGV4dE5vZGUyKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4
dE5vZGUyICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDIgc2hvdWxkIG5vdCBi
ZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGgg
PT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMiBzaG91bGQgaGF2ZSAxIGVsZW1lbnQs
IGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgMiBzaG91bGQgYmUgc2Vjb25k
IHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKS5pZCk7CisKKyAg
ICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHRleHQgbm9kZSB0aGF0IGlzIGluIHRoZSBvdmVyZmxv
dyBvZiB0aGUgbGFzdCByZWdpb24uCisgICAgICAgICAgICB2YXIgdGV4dE5vZGUzID0gZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZTMuIik7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2RlMyk7CisgICAgICAg
ICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMyA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250
ZW50Tm9kZSh0ZXh0Tm9kZTMpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9k
ZTMgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgbm90IGJlIG51
bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzLmxlbmd0aCA9PSAx
LCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAzIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFz
ICIgKyByZWdpb25MaXN0VGV4dE5vZGUzLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQocmVn
aW9uTGlzdFRleHROb2RlMy5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdp
b24yIiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSAzIHNob3VsZCBiZSBzZWNvbmQgcmVn
aW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDApLmlkKTsKKworICAgICAg
ICAgICAgLy8gQWRkIGFub3RoZXIgcmVnaW9uIHRvIHRha2UgdGhlIG92ZXJmbG93aW5nIGVsZW1l
bnRzIGZyb20gc2Vjb25kIHJlZ2lvbi4KKyAgICAgICAgICAgIHZhciByZWdpb24zID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICByZWdpb24zLmlkID0gInJlZ2lv
bjMiOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb24zKTsKKwor
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9u
c0J5Q29udGVudE5vZGUodGV4dE5vZGUpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RU
ZXh0Tm9kZTIubGVuZ3RoID09IDIsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBo
YXZlIDIgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCk7CisgICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApID09IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSBzaG91
bGQgYmUgdGhlIHNlY29uZCByZWdpb24gZnJvbSBmbG93LCBpdCBpcyAiICsgcmVnaW9uTGlzdFRl
eHROb2RlMi5pdGVtKDApLmlkKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5v
ZGUyLml0ZW0oMSkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMiKSwgIlNlY29u
ZCByZWdpb24gZm9yIHRleHQgbm9kZSBzaG91bGQgYmUgdGhlIHRoaXJkIHJlZ2lvbiBmcm9tIGZs
b3csIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkuaWQpOworCisgICAgICAg
ICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMzIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29u
dGVudE5vZGUodGV4dE5vZGUzKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5v
ZGUzMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgaGF2
ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgpOworICAgICAg
ICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlZ2lvbjMiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIDMgc2hv
dWxkIGJlIHRoZSB0aGlyZCByZWdpb24gZnJvbSBmbG93LCBpdCBpcyAiICsgcmVnaW9uTGlzdFRl
eHROb2RlMzIuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cyID0gZG9j
dW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdzIiKTsKKyAgICAgICAgICAgIHZhciByZWdp
b25MaXN0UDEgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJwMSIpKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDEgIT0g
bnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBwMSBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAg
ICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMS5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZv
ciBwMSBub2RlIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDEubGVu
Z3RoKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDEuaXRlbSgwKSA9PSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMSBub2RlIHNo
b3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAxLml0ZW0oMCkuaWQpOworCisg
ICAgICAgICAgICB2YXIgcDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CisgICAgICAg
ICAgICBwMi5pZCA9ICJwMiI7CisgICAgICAgICAgICBwMi5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAyLiIpKTsKKyAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxkKHAyKTsKKyAg
ICAgICAgICAgIHZhciByZWdpb25MaXN0UDIgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRl
bnROb2RlKHAyKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIgIT0gbnVsbCwgIlJl
Z2lvbiBsaXN0IGZvciBwMiBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAg
YXNzZXJ0KHJlZ2lvbkxpc3RQMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMiBub2Rl
IHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDIubGVuZ3RoKTsKKyAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMiBzaG91bGQgYmUgcmVnaW9u
NCwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMi5pdGVtKDApLmlkKTsKKyAKKyAgICAgICAgICAgIC8v
IGFkZCBhbm90aGVyIGVsZW1lbnQgcCwgaW4gdGhlIG92ZXJmbG93IHBhcnQgb2YgdGhlIHJlZ2lv
bjQKKyAgICAgICAgICAgIHZhciBwMyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAg
ICAgICAgICAgIHAzLmlkID0gInAzIjsKKyAgICAgICAgICAgIHAzLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IGluc2lkZSBwYXJhZ3JhcGggcDMuIikpOworICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuYXBwZW5kQ2hpbGQocDMp
OworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMyA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5
Q29udGVudE5vZGUocDMpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMyAhPSBudWxs
LCAiUmVnaW9uIGxpc3QgZm9yIHAzIG5vZGUgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAg
ICAgICBhc3NlcnQocmVnaW9uTGlzdFAzLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAz
IHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDMubGVuZ3RoKTsKKyAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDMuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMyBzaG91bGQgYmUgcmVnaW9u
NCwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMy5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgLy8g
YWRkIGFub3RoZXIgcmVnaW9uIHRvIGZsb3cyLCBwMiBhbmQgcDMgZ28gdG8gcmVnaW9uNQorICAg
ICAgICAgICAgdmFyIHJlZ2lvbjUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICAgICAgICAgIHJlZ2lvbjUuaWQgPSAicmVnaW9uNSI7CisgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKHJlZ2lvbjUpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAy
MiA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocDIpOworICAgICAgICAgICAg
YXNzZXJ0KHJlZ2lvbkxpc3RQMjIubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgcDIgc2hv
dWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RQMi5sZW5ndGgpOworICAgICAg
ICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMjIuaXRlbSgwKSA9PSByZWdpb241LCAiRmlyc3QgcmVn
aW9uIGZvciBwMiBzaG91bGQgYmUgcmVnaW9uNSwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMi5pdGVt
KDApLmlkKTsKKworICAgICAgICAgICAgaGlkZVJlZ2lvbnMoKTsKKyAgICAgICAgPC9zY3JpcHQ+
CisgICAgPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtbHItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0
LWxyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTNk
NDRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdp
b25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ1IEBA
CitUZXN0IGZvciA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVn
aW9uc0J5Q29udGVudE5vZGUKKworT24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMg
b2YgUEFTUyBiZWxvdy4KKworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFT
UworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFT
UworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
Z2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtbHIuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1sci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2MDgzMzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZl
cnQtbHIuaHRtbApAQCAtMCwwICsxLDE1OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMv
cmVnaW9uLXN0eWxlLmNzcyI+CisgICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaGVscGVy
LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgaHRtbCB7IC13ZWJr
aXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsgfQorICAgICAgICAgICAgYm9keSB7IGZvbnQt
ZmFtaWx5OiBtb25vc3BhY2U7IH0KKyAgICAgICAgICAgICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93
LWludG86IGZsb3c7IH0KKyAgICAgICAgICAgIC5yZWdpb25Cb3ggeyAgaGVpZ2h0OiAyNTBweDsg
d2lkdGg6IDUwcHg7IH0KKyAgICAgICAgICAgICNyZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTog
ZmxvdzsgfQorICAgICAgICAgICAgI3JlZ2lvbjIgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsg
fQorICAgICAgICAgICAgI3JlZ2lvbjMgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgfQorCisg
ICAgICAgICAgICAjYXJ0aWNsZTIgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzI7IH0KKyAgICAg
ICAgICAgICNyZWdpb240IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOyB9CisgICAgICAgICAg
ICAjcmVnaW9uNSB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93MjsgfQorCisgICAgICAgICAgICAu
bm9SZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogbm9uZTsgfQorICAgICAgICA8L3N0eWxlPgor
ICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyTWVzc2Fn
ZSI+CisgICAgICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3NDYiPgorICAgICAgICAgICAgNzc3NDY6IFtDU1NSZWdp
b25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlPC9hPjwvcD4K
KyAgICAgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mIFBB
U1MgYmVsb3cuPC9wPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisgICAgICAgIDwhLS0gc29tZSB0ZXN0cyB3aXRoIGlubGluZSBlbGVtZW50cyAtLT4K
KyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZSI+CisgICAgICAgICAgICA8c3BhbiBpZD0ic3Bhbk5v
ZGUiPlRleHQgaW5zaWRlIHNwYW4uPC9zcGFuPgorICAgICAgICAgICAgVGV4dCBvdXRzaWRlIHNw
YW4uIFRleHQgb3V0c2lkZSBzcGFuLiBUZXh0IG91dHNpZGUgc3Bhbi4KKyAgICAgICAgICAgIDxz
cGFuIGlkPSJzcGFuTm9kZTIiPlRleHQgaW5zaWRlIHNwYW4yLiBUZXh0Ljwvc3Bhbj4KKyAgICAg
ICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZTMiPlRleHQgaW5zaWRlIHNwYW4zPC9zcGFuPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uQm94Ij48
L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uMiIgY2xhc3M9InJlZ2lvbkJveCI+PC9kaXY+
CisKKyAgICAgICAgPCEtLSBzb21lIHRlc3RzIHdpdGggYmxvY2sgZWxlbWVudHMgLS0+CisgICAg
ICAgIDxkaXYgaWQ9ImFydGljbGUyIj4KKyAgICAgICAgICAgIDxwIGlkPSJwMSI+VGV4dCBpbnNp
ZGUgcGFyYWdyYXBoIHAxLjwvcD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJl
Z2lvbjQiIGNsYXNzPSJyZWdpb25Cb3giPjwvcmVnaW9uPgorICAgICAgICA8c2NyaXB0PgorICAg
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAg
dmFyIG5hbWVkRmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKTsKKwor
ICAgICAgICAgICAgZnVuY3Rpb24gaGlkZVJlZ2lvbnMoKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuc3R5bGUudmlzaWJp
bGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJhcnRpY2xlMiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIikuc3R5bGUudmlzaWJpbGl0eSA9ICJo
aWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24y
Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZWdpb24zIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240Iikuc3R5bGUu
dmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb241Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdEFydGljbGUgPSBuYW1lZEZsb3cuZ2V0
UmVnaW9uc0J5Q29udGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKSk7
CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUgIT0gbnVsbCwgIlJlZ2lvbiBs
aXN0IGZvciBhcnRpY2xlIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCA9PSAyLCAiUmVnaW9uIGxpc3QgZm9yIGFydGljbGUg
c2hvdWxkIGhhdmUgMiBlbGVtZW50cywgaGFzICIgKyByZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGgp
OworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMCkgPT0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLCAiRmlyc3QgZWxlbWVudCBpbiByZWdpb24gbGlz
dCBmb3IgYXJ0aWNsZSBzaG91bGQgYmUgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdEFydGlj
bGUuaXRlbSgwKS5pZCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUuaXRl
bSgxKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiU2Vjb25kIGVsZW1l
bnQgaW4gcmVnaW9uIGxpc3QgZm9yIGFydGljbGUgc2hvdWxkIGJlIHJlZ2lvbjIsIGl0IGlzICIg
KyByZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDEpLmlkKTsKKworICAgICAgICAgICAgdmFyIHNwYW5O
b2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlIik7CisgICAgICAgICAgICB2
YXIgcmVnaW9uTGlzdFNwYW4gPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bh
bk5vZGUpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuICE9IG51bGwsICJSZWdp
b24gbGlzdCBmb3Igc3BhbiBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2Vy
dChyZWdpb25MaXN0U3Bhbi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuIHNob3Vs
ZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0U3Bhbi5sZW5ndGgpOworICAgICAg
ICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZ2lvbiIpLCAiRmlyc3QgcmVnaW9uIGZvciBzcGFuIHNob3VsZCBiZSByZWdpb24s
IGl0IGlzICIgKyByZWdpb25MaXN0U3Bhbi5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgdmFy
IHNwYW5Ob2RlMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZTIiKTsKKyAgICAg
ICAgICAgIHZhciByZWdpb25MaXN0U3BhbjIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVu
dE5vZGUoc3Bhbk5vZGUyKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjIgIT0g
bnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMiBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAg
ICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjIubGVuZ3RoID09IDIsICJSZWdpb24gbGlzdCBm
b3Igc3BhbjIgc2hvdWxkIGhhdmUgMiBlbGVtZW50cywgaGFzICIgKyByZWdpb25MaXN0U3BhbjIu
bGVuZ3RoKTsKKworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlMyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzcGFuTm9kZTMiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbjMgPSBu
YW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUzKTsKKyAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0U3BhbjMgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMyBz
aG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjMu
bGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3Igc3BhbjMgc2hvdWxkIGhhdmUgMSBlbGVtZW50
LCBoYXMgIiArIHJlZ2lvbkxpc3RTcGFuMy5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0KHJl
Z2lvbkxpc3RTcGFuMy5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24y
IiksICJGaXJzdCByZWdpb24gZm9yIHNwYW4gbm9kZSAzIHNob3VsZCBiZSB0aGUgc2Vjb25kIHJl
Z2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RTcGFuMy5pdGVtKDApLmlkKTsKKworICAgICAgICAg
ICAgdmFyIHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZS4gVGV4
dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQg
bm9kZS4gIik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIp
LmFwcGVuZENoaWxkKHRleHROb2RlKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5v
ZGUgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUpOworICAgICAg
ICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9y
IHRleHQgbm9kZSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdp
b25MaXN0VGV4dE5vZGUubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNo
b3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUubGVuZ3RoKTsK
KyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgwKSA9PSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUg
c2hvdWxkIGJlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUuaXRl
bSgwKS5pZCk7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHRleHQgbm9kZSB0aGF0IHdp
bGwgb3ZlcmZsb3cgdGhlIHJlZ2lvbjIuCisgICAgICAgICAgICB2YXIgdGV4dE5vZGUyID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZTIuIik7CisgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2RlMik7CisgICAg
ICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlD
b250ZW50Tm9kZSh0ZXh0Tm9kZTIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0
Tm9kZTIgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMiBzaG91bGQgbm90IGJl
IG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA9
PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAyIHNob3VsZCBoYXZlIDEgZWxlbWVudCwg
aGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSAyIHNob3VsZCBiZSBzZWNvbmQg
cmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApLmlkKTsKKworICAg
ICAgICAgICAgLy8gQWRkIGFub3RoZXIgdGV4dCBub2RlIHRoYXQgaXMgaW4gdGhlIG92ZXJmbG93
IG9mIHRoZSBsYXN0IHJlZ2lvbi4KKyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZTMgPSBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlMy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUzKTsKKyAgICAgICAg
ICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUzID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRl
bnROb2RlKHRleHROb2RlMyk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2Rl
MyAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAzIHNob3VsZCBub3QgYmUgbnVs
bCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoID09IDEs
ICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMg
IiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdp
b25MaXN0VGV4dE5vZGUzLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lv
bjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIGJlIHNlY29uZCByZWdp
b24sIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUzLml0ZW0oMCkuaWQpOworCisgICAgICAg
ICAgICAvLyBBZGQgYW5vdGhlciByZWdpb24gdG8gdGFrZSB0aGUgb3ZlcmZsb3dpbmcgZWxlbWVu
dHMgZnJvbSBzZWNvbmQgcmVnaW9uLgorICAgICAgICAgICAgdmFyIHJlZ2lvbjMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJlZ2lvbjMuaWQgPSAicmVnaW9u
MyI7CisgICAgICAgICAgICByZWdpb24zLmNsYXNzTmFtZSA9ICJyZWdpb25Cb3giOworICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb24zKTsKKworICAgICAgICAgICAg
dmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5v
ZGUodGV4dE5vZGUpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVu
Z3RoID09IDIsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBoYXZlIDIgZWxlbWVu
dCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCk7CisgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSBzaG91bGQgYmUgdGhlIHNl
Y29uZCByZWdpb24gZnJvbSBmbG93LCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVt
KDApLmlkKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkg
PT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMiKSwgIlNlY29uZCByZWdpb24gZm9y
IHRleHQgbm9kZSBzaG91bGQgYmUgdGhlIHRoaXJkIHJlZ2lvbiBmcm9tIGZsb3csIGl0IGlzICIg
KyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkuaWQpOworCisgICAgICAgICAgICB2YXIgcmVn
aW9uTGlzdFRleHROb2RlMzIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4
dE5vZGUzKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzMi5sZW5ndGgg
PT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQs
IGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbjMiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIGJlIHRoZSB0
aGlyZCByZWdpb24gZnJvbSBmbG93LCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMzIuaXRl
bSgwKS5pZCk7CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cyID0gZG9jdW1lbnQud2Via2l0
R2V0Rmxvd0J5TmFtZSgiZmxvdzIiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDEgPSBu
YW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJwMSIpKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDEgIT0gbnVsbCwgIlJlZ2lv
biBsaXN0IGZvciBwMSBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RQMS5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMSBub2RlIHNo
b3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDEubGVuZ3RoKTsKKyAgICAg
ICAgICAgIGFzc2VydChyZWdpb25MaXN0UDEuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMSBub2RlIHNob3VsZCBiZSByZWdp
b240LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAxLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICB2
YXIgcDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CisgICAgICAgICAgICBwMi5pZCA9
ICJwMiI7CisgICAgICAgICAgICBwMi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAyLiIpKTsKKyAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxkKHAyKTsKKyAgICAgICAgICAgIHZh
ciByZWdpb25MaXN0UDIgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHAyKTsK
KyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZv
ciBwMiBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RQMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMiBub2RlIHNob3VsZCBoYXZl
IDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDIubGVuZ3RoKTsKKyAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0UDIuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVn
aW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMiBzaG91bGQgYmUgcmVnaW9uNCwgaXQgaXMgIiAr
IHJlZ2lvbkxpc3RQMi5pdGVtKDApLmlkKTsKKyAKKyAgICAgICAgICAgIC8vIGFkZCBhbm90aGVy
IGVsZW1lbnQgcCwgaW4gdGhlIG92ZXJmbG93IHBhcnQgb2YgdGhlIHJlZ2lvbjQKKyAgICAgICAg
ICAgIHZhciBwMyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAgICAgICAgICAgIHAz
LmlkID0gInAzIjsKKyAgICAgICAgICAgIHAzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJUZXh0IGluc2lkZSBwYXJhZ3JhcGggcDMuIikpOworICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuYXBwZW5kQ2hpbGQocDMpOworICAgICAgICAg
ICAgdmFyIHJlZ2lvbkxpc3RQMyA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUo
cDMpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMyAhPSBudWxsLCAiUmVnaW9uIGxp
c3QgZm9yIHAzIG5vZGUgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdFAzLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAzIHNob3VsZCBoYXZl
IDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0UDMuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVn
aW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMyBzaG91bGQgYmUgcmVnaW9uNCwgaXQgaXMgIiAr
IHJlZ2lvbkxpc3RQMy5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIg
cmVnaW9uIHRvIGZsb3cyLCBwMiBhbmQgcDMgZ28gdG8gcmVnaW9uNQorICAgICAgICAgICAgdmFy
IHJlZ2lvbjUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJl
Z2lvbjUuaWQgPSAicmVnaW9uNSI7CisgICAgICAgICAgICByZWdpb241LmNsYXNzTmFtZSA9ICJy
ZWdpb25Cb3giOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb241
KTsKKworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMjIgPSBuYW1lZEZsb3cyLmdldFJlZ2lv
bnNCeUNvbnRlbnROb2RlKHAyKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIyLmxl
bmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAyIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFz
ICIgKyByZWdpb25MaXN0UDIubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
UDIyLml0ZW0oMCkgPT0gcmVnaW9uNSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDIgc2hvdWxkIGJlIHJl
Z2lvbjUsIGl0IGlzICIgKyByZWdpb25MaXN0UDIuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAg
IGhpZGVSZWdpb25zKCk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250
ZW50LW5vZGUtdmVydC1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
Z2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtcmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5M2Q0NGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQt
cmwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDUgQEAKK1Rlc3QgZm9yIDc3NzQ2OiBbQ1NTUmVn
aW9uc11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZQorCitPbiBz
dWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNTIGJlbG93LgorCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCisKKworCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5v
ZGUtdmVydC1ybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5
LWNvbnRlbnQtbm9kZS12ZXJ0LXJsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYTdlNmEzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1ybC5odG1sCkBAIC0wLDAgKzEsMTU5
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9yZWdpb24tc3R5bGUuY3NzIj4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c3R5bGU+CisgICAgICAgICAgICBodG1sIHsgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2Fs
LXJsOyB9CisgICAgICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgfQorICAg
ICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorICAgICAgICAg
ICAgLnJlZ2lvbkJveCB7ICBoZWlnaHQ6IDI1MHB4OyB3aWR0aDogNTBweDsgfQorICAgICAgICAg
ICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB9CisgICAgICAgICAgICAjcmVn
aW9uMiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB9CisgICAgICAgICAgICAjcmVnaW9uMyB7
IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB9CisKKyAgICAgICAgICAgICNhcnRpY2xlMiB7IC13
ZWJraXQtZmxvdy1pbnRvOiBmbG93MjsgfQorICAgICAgICAgICAgI3JlZ2lvbjQgeyAtd2Via2l0
LWZsb3ctZnJvbTogZmxvdzI7IH0KKyAgICAgICAgICAgICNyZWdpb241IHsgLXdlYmtpdC1mbG93
LWZyb206IGZsb3cyOyB9CisKKyAgICAgICAgICAgIC5ub1JlZ2lvbiB7IC13ZWJraXQtZmxvdy1m
cm9tOiBub25lOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5Pgor
ICAgICAgICA8ZGl2IGlkPSJjb250YWluZXJNZXNzYWdlIj4KKyAgICAgICAgICAgIDxwPlRlc3Qg
Zm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzc0
NiI+CisgICAgICAgICAgICA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6
Z2V0UmVnaW9uc0J5Q29udGVudE5vZGU8L2E+PC9wPgorICAgICAgICAgICAgPHA+T24gc3VjY2Vz
cywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxvdy48L3A+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPCEtLSBzb21l
IHRlc3RzIHdpdGggaW5saW5lIGVsZW1lbnRzIC0tPgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xl
Ij4KKyAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZSI+VGV4dCBpbnNpZGUgc3Bhbi48L3Nw
YW4+CisgICAgICAgICAgICBUZXh0IG91dHNpZGUgc3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4uIFRl
eHQgb3V0c2lkZSBzcGFuLgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlMiI+VGV4dCBp
bnNpZGUgc3BhbjIuIFRleHQuPC9zcGFuPgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2Rl
MyI+VGV4dCBpbnNpZGUgc3BhbjM8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2
IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25Cb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJy
ZWdpb24yIiBjbGFzcz0icmVnaW9uQm94Ij48L2Rpdj4KKworICAgICAgICA8IS0tIHNvbWUgdGVz
dHMgd2l0aCBibG9jayBlbGVtZW50cyAtLT4KKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZTIiPgor
ICAgICAgICAgICAgPHAgaWQ9InAxIj5UZXh0IGluc2lkZSBwYXJhZ3JhcGggcDEuPC9wPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uNCIgY2xhc3M9InJlZ2lvbkJveCI+
PC9yZWdpb24+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93ID0gZG9jdW1lbnQu
d2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpOworCisgICAgICAgICAgICBmdW5jdGlvbiBoaWRl
UmVnaW9ucygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImFydGljbGUiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuc3R5bGUudmlzaWJp
bGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZWdpb24iKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhp
ZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMi
KS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlZ2lvbjQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjUiKS5zdHlsZS52
aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBy
ZWdpb25MaXN0QXJ0aWNsZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdp
b25MaXN0QXJ0aWNsZSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIGFydGljbGUgc2hvdWxkIG5v
dCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUubGVuZ3Ro
ID09IDIsICJSZWdpb24gbGlzdCBmb3IgYXJ0aWNsZSBzaG91bGQgaGF2ZSAyIGVsZW1lbnRzLCBo
YXMgIiArIHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQocmVn
aW9uTGlzdEFydGljbGUuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9u
IiksICJGaXJzdCBlbGVtZW50IGluIHJlZ2lvbiBsaXN0IGZvciBhcnRpY2xlIHNob3VsZCBiZSBy
ZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApLmlkKTsKKyAgICAgICAg
ICAgIGFzc2VydChyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDEpID09IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb24yIiksICJTZWNvbmQgZWxlbWVudCBpbiByZWdpb24gbGlzdCBmb3IgYXJ0
aWNsZSBzaG91bGQgYmUgcmVnaW9uMiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0o
MSkuaWQpOworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgic3Bhbk5vZGUiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbiA9IG5hbWVk
Rmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZSk7CisgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFNwYW4gIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuIHNob3VsZCBu
b3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuLmxlbmd0aCA9
PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4gc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiAr
IHJlZ2lvbkxpc3RTcGFuLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNw
YW4uaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIiksICJGaXJzdCBy
ZWdpb24gZm9yIHNwYW4gc2hvdWxkIGJlIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RTcGFu
Lml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInNwYW5Ob2RlMiIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RTcGFu
MiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZTIpOworICAgICAg
ICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHNw
YW4yIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RT
cGFuMi5sZW5ndGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMiBzaG91bGQgaGF2ZSAyIGVs
ZW1lbnRzLCBoYXMgIiArIHJlZ2lvbkxpc3RTcGFuMi5sZW5ndGgpOworCisgICAgICAgICAgICB2
YXIgc3Bhbk5vZGUzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlMyIpOworICAg
ICAgICAgICAgdmFyIHJlZ2lvbkxpc3RTcGFuMyA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250
ZW50Tm9kZShzcGFuTm9kZTMpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMyAh
PSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4zIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAg
ICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuMy5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0
IGZvciBzcGFuMyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFNwYW4z
Lmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkgPT0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3Igc3Bh
biBub2RlIDMgc2hvdWxkIGJlIHRoZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlz
dFNwYW4zLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICB2YXIgdGV4dE5vZGUgPSBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBu
b2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiAiKTsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOwor
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25z
QnlDb250ZW50Tm9kZSh0ZXh0Tm9kZSk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRl
eHROb2RlICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBub3QgYmUg
bnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGggPT0g
MSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMg
IiArIHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RUZXh0Tm9kZS5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24y
IiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSBzaG91bGQgYmUgc2Vjb25kIHJlZ2lvbiwg
aXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZS5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAg
Ly8gQWRkIGFub3RoZXIgdGV4dCBub2RlIHRoYXQgd2lsbCBvdmVyZmxvdyB0aGUgcmVnaW9uMi4K
KyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZTIgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4
dCBub2RlMi4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xl
IikuYXBwZW5kQ2hpbGQodGV4dE5vZGUyKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4
dE5vZGUyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlMik7Cisg
ICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMiAhPSBudWxsLCAiUmVnaW9uIGxp
c3QgZm9yIHRleHQgbm9kZSAyIHNob3VsZCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4
dCBub2RlIDIgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9k
ZTIubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0o
MCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBm
b3IgdGV4dCBub2RlIDIgc2hvdWxkIGJlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25M
aXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQpOworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhlciB0
ZXh0IG5vZGUgdGhhdCBpcyBpbiB0aGUgb3ZlcmZsb3cgb2YgdGhlIGxhc3QgcmVnaW9uLgorICAg
ICAgICAgICAgdmFyIHRleHROb2RlMyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5v
ZGUzLiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5h
cHBlbmRDaGlsZCh0ZXh0Tm9kZTMpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9k
ZTMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUzKTsKKyAgICAg
ICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzICE9IG51bGwsICJSZWdpb24gbGlzdCBm
b3IgdGV4dCBub2RlIDMgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5v
ZGUgMyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5s
ZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMuaXRlbSgwKSA9
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0
ZXh0IG5vZGUgMyBzaG91bGQgYmUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RU
ZXh0Tm9kZTMuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHJlZ2lv
biB0byB0YWtlIHRoZSBvdmVyZmxvd2luZyBlbGVtZW50cyBmcm9tIHNlY29uZCByZWdpb24uCisg
ICAgICAgICAgICB2YXIgcmVnaW9uMyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgICAgICAgICAgcmVnaW9uMy5pZCA9ICJyZWdpb24zIjsKKyAgICAgICAgICAgIHJlZ2lvbjMu
Y2xhc3NOYW1lID0gInJlZ2lvbkJveCI7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKHJlZ2lvbjMpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMiA9
IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZSk7CisgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZv
ciB0ZXh0IG5vZGUgc2hvdWxkIGhhdmUgMiBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0
Tm9kZTIubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLml0
ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lv
biBmb3IgdGV4dCBub2RlIHNob3VsZCBiZSB0aGUgc2Vjb25kIHJlZ2lvbiBmcm9tIGZsb3csIGl0
IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQpOworICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgxKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVnaW9uMyIpLCAiU2Vjb25kIHJlZ2lvbiBmb3IgdGV4dCBub2RlIHNob3VsZCBiZSB0aGUg
dGhpcmQgcmVnaW9uIGZyb20gZmxvdywgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRl
bSgxKS5pZCk7CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUzMiA9IG5hbWVk
Rmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTMpOworICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRl
eHQgbm9kZSAzIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5v
ZGUzLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMzIuaXRl
bSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMyIpLCAiRmlyc3QgcmVnaW9u
IGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgYmUgdGhlIHRoaXJkIHJlZ2lvbiBmcm9tIGZsb3csIGl0
IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUzMi5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAg
dmFyIG5hbWVkRmxvdzIgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93MiIpOwor
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMSA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29u
dGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAxIikpOworICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RQMSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHAxIG5vZGUgc2hvdWxk
IG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAxLmxlbmd0aCA9
PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAxIG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMg
IiArIHJlZ2lvbkxpc3RQMS5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQ
MS5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240IiksICJGaXJzdCBy
ZWdpb24gZm9yIHAxIG5vZGUgc2hvdWxkIGJlIHJlZ2lvbjQsIGl0IGlzICIgKyByZWdpb25MaXN0
UDEuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIHZhciBwMiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInAiKTsKKyAgICAgICAgICAgIHAyLmlkID0gInAyIjsKKyAgICAgICAgICAgIHAyLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IGluc2lkZSBwYXJhZ3JhcGgg
cDIuIikpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIiku
YXBwZW5kQ2hpbGQocDIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMiA9IG5hbWVkRmxv
dzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocDIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RQMiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHAyIG5vZGUgc2hvdWxkIG5vdCBiZSBu
dWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyLmxlbmd0aCA9PSAxLCAiUmVn
aW9uIGxpc3QgZm9yIHAyIG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lv
bkxpc3RQMi5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMi5pdGVtKDAp
ID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240IiksICJGaXJzdCByZWdpb24gZm9y
IHAyIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAyLml0ZW0oMCkuaWQp
OworIAorICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIgZWxlbWVudCBwLCBpbiB0aGUgb3ZlcmZs
b3cgcGFydCBvZiB0aGUgcmVnaW9uNAorICAgICAgICAgICAgdmFyIHAzID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAgcDMuaWQgPSAicDMiOworICAgICAgICAgICAg
cDMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgaW5zaWRlIHBhcmFn
cmFwaCBwMy4iKSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNs
ZTIiKS5hcHBlbmRDaGlsZChwMyk7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAzID0gbmFt
ZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMyk7CisgICAgICAgICAgICBhc3NlcnQo
cmVnaW9uTGlzdFAzICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgcDMgbm9kZSBzaG91bGQgbm90
IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDMubGVuZ3RoID09IDEs
ICJSZWdpb24gbGlzdCBmb3IgcDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lv
bkxpc3RQMy5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMy5pdGVtKDAp
ID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240IiksICJGaXJzdCByZWdpb24gZm9y
IHAzIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAzLml0ZW0oMCkuaWQp
OworCisgICAgICAgICAgICAvLyBhZGQgYW5vdGhlciByZWdpb24gdG8gZmxvdzIsIHAyIGFuZCBw
MyBnbyB0byByZWdpb241CisgICAgICAgICAgICB2YXIgcmVnaW9uNSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgcmVnaW9uNS5pZCA9ICJyZWdpb241IjsKKyAg
ICAgICAgICAgIHJlZ2lvbjUuY2xhc3NOYW1lID0gInJlZ2lvbkJveCI7CisgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlZ2lvbjUpOworCisgICAgICAgICAgICB2YXIgcmVn
aW9uTGlzdFAyMiA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocDIpOworICAg
ICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMjIubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBm
b3IgcDIgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RQMi5sZW5ndGgp
OworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMjIuaXRlbSgwKSA9PSByZWdpb241LCAi
Rmlyc3QgcmVnaW9uIGZvciBwMiBzaG91bGQgYmUgcmVnaW9uNSwgaXQgaXMgIiArIHJlZ2lvbkxp
c3RQMi5pdGVtKDApLmlkKTsKKworICAgICAgICAgICAgaGlkZVJlZ2lvbnMoKTsKKyAgICAgICAg
PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNWMyY2MKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLmh0bWwK
QEAgLTAsMCArMSw3OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAg
ICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVnaW9uLXN0eWxl
LmNzcyI+CisgICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaGVscGVyLmpzIj48L3Njcmlw
dD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgYm9keSB7IGZvbnQtZmFtaWx5OiBtb25v
c3BhY2U7IH0KKyAgICAgICAgICAgICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7
IH0KKyAgICAgICAgICAgIC5ib3JkZXIgeyBib3JkZXI6IDFweCBzb2xpZCByZWQ7IH0KKyAgICAg
ICAgICAgICNyZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgd2lkdGg6IDI1MHB4OyBo
ZWlnaHQ6IDUwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgdG9wOiAyMDBweDsg
fQorCisgICAgICAgICAgICAjYXJ0aWNsZTIgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzI7IH0K
KyAgICAgICAgICAgICNyZWdpb24yMSB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93Mjsgd2lkdGg6
IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMjBweDsgdG9w
OiAzMDBweDt9CisgICAgICAgICAgICAjcmVnaW9uMjIgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxv
dzI7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6
IDIwcHg7IHRvcDogMzUwcHg7fQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc3NzQ2Ij4KKyAgICAgICAgNzc3NDY6IFtDU1NSZWdpb25zXUlt
cGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlPC9hPjwvcD4KKyAgICAg
ICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxvdy48
L3A+CisKKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9
ImFydGljbGUiPgorICAgICAgICAgICAgPHAgaWQ9InAxIj5UZXh0IGZsb3duIGludG8gcmVnaW9u
LjwvcD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9ImJv
cmRlciI+PC9kaXY+CisKKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZTIiPgorICAgICAgICAgICAg
PHAgaWQ9InAyIj5UZXh0IGZsb3duIGluIHR3byByZWdpb25zLiBUZXh0IGZsb3duIGluIHR3byBy
ZWdpb25zLiBUZXh0IGZsb3duIGluIHR3byByZWdpb25zLjwvcD4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxkaXYgaWQ9InJlZ2lvbjIxIiBjbGFzcz0iYm9yZGVyIj48L2Rpdj4KKyAgICAgICAg
PGRpdiBpZD0icmVnaW9uMjIiIGNsYXNzPSJib3JkZXIiPjwvZGl2PgorICAgICAgICA8c2NyaXB0
PgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIHRlc3RHZXRSZWdpb25zQnlDb250ZW50Tm9kZTEoKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIHZhciBuYW1lZEZsb3cgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlO
YW1lKCJmbG93Iik7CisgICAgICAgICAgICAgICAgdmFyIHRhcmdldE5vZGUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicDEiKTsKKyAgICAgICAgICAgICAgICB2YXIgcmVnaW9uc0xpc3QgPSBu
YW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGFyZ2V0Tm9kZSk7CisKKyAgICAgICAg
ICAgICAgICBhc3NlcnQocmVnaW9uc0xpc3QubGVuZ3RoID09IDEsICJUaGUgcmVnaW9uIGxpc3Qg
Y291bnQgc2hvdWxkIGJlIDEsIGl0IGlzICIgKyByZWdpb25zTGlzdC5sZW5ndGgpOworICAgICAg
ICAgICAgICAgIGFzc2VydChyZWdpb25zTGlzdC5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDEgc2hvdWxkIGJlIHJlZ2lvbiwg
aXQgaXMgIiArIHJlZ2lvbnNMaXN0Lml0ZW0oMCkuaWQpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0UmVnaW9uc0J5Q29udGVudE5vZGUyKCkKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICB2YXIgbmFtZWRGbG93ID0gZG9jdW1lbnQud2Via2l0R2V0
Rmxvd0J5TmFtZSgiZmxvdzIiKTsKKyAgICAgCisgICAgICAgICAgICAgICAgLy8gVGVzdCB0aGF0
IHRoZSBwMiBlbGVtZW50IGlzIGZsb3duIGludG8gMiByZWdpb25zCisgICAgICAgICAgICAgICAg
dmFyIHRhcmdldE5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDIiKTsKKyAgICAgICAg
ICAgICAgICB2YXIgcmVnaW9uTGlzdCA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9k
ZSh0YXJnZXROb2RlKTsKKworICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0Lmxlbmd0
aCA9PSAyLCAiVGhlIHJlZ2lvbiBsaXN0IGNvdW50IHNob3VsZCBiZSAyLCBpdCBpcyAiICsgcmVn
aW9uTGlzdC5sZW5ndGgpOworICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0Lml0ZW0o
MCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIxIiksICJGaXJzdCByZWdpb24g
Zm9yIHAyIHNob3VsZCBiZSByZWdpb24yMSwgaXQgaXMgIiArIHJlZ2lvbkxpc3QuaXRlbSgwKS5p
ZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3QuaXRlbSgxKSA9PSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDIgc2hvdWxk
IGJlIHJlZ2lvbjIyLCBpdCBpcyAiICsgcmVnaW9uTGlzdC5pdGVtKDEpLmlkKTsKKworICAgICAg
ICAgICAgICAgIC8vIFRlc3QgdGhhdCBwMSBlbGVtZW50IGlzIG5vdCBpbiBmbG93MgorICAgICAg
ICAgICAgICAgIHRhcmdldE5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDEiKTsKKyAg
ICAgICAgICAgICAgICByZWdpb25MaXN0ID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnRO
b2RlKHRhcmdldE5vZGUpOworICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0Lmxlbmd0
aCA9PSAwLCAiVGhlIHJlZ2lvbiBsaXN0IGNvdW50IHNob3VsZCBiZSAwLCBpdCBpcyAiICsgcmVn
aW9uTGlzdC5sZW5ndGgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBo
aWRlUmVnaW9uc0FuZEZsb3dzKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJhcnRpY2xlIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLnN0eWxlLnZpc2liaWxp
dHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVnaW9uIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yMSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlk
ZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMjIi
KS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIHRlc3RHZXRSZWdpb25zQnlDb250ZW50Tm9kZTEoKTsKKyAgICAgICAgICAgIHRlc3RHZXRS
ZWdpb25zQnlDb250ZW50Tm9kZTIoKTsKKworICAgICAgICAgICAgaGlkZVJlZ2lvbnNBbmRGbG93
cygpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlMi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29u
dGVudC1ub2RlMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMzE1YTdlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9n
ZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBA
CitUZXN0IGZvciA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVn
aW9uc0J5Q29udGVudE5vZGUKKworT24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMg
b2YgUEFTUyBiZWxvdy4KKworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFT
UworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUworUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZTIuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjg5OTA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZTIuaHRtbApAQCAt
MCwwICsxLDkyIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9yZWdpb24tc3R5bGUuY3Nz
Ij4KKyAgICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9oZWxwZXIuanMiPjwvc2NyaXB0Pgor
ICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6IG1vbm9zcGFj
ZTsgfQorICAgICAgICAgICAgI3JlZ2lvbiwgI3JlZ2lvbjIgeyB3aWR0aDogMjUwcHg7IGhlaWdo
dDogNTBweDsgfQorICAgICAgICAgICAgLmFydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxv
dzsgfQorICAgICAgICAgICAgLmFydGljbGUyIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3cyOyB9
CisgICAgICAgICAgICAucmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IH0KKyAgICAg
ICAgICAgIC5yZWdpb24yIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOyB9CisgICAgICAgICAg
ICAubm9SZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogbm9uZTsgfQorICAgICAgICA8L3N0eWxl
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzQ2Ij4KKyAgICAgICAg
Nzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRl
bnROb2RlPC9hPjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBz
ZXJpZXMgb2YgUEFTUyBiZWxvdy48L3A+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iYXJ0aWNsZSI+PC9kaXY+CisgICAg
ICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9InJlZ2lvbiI+PC9kaXY+CisgICAgICAgIDxkaXYg
aWQ9InJlZ2lvbjIiPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cgPSBkb2N1
bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93Iik7CisKKyAgICAgICAgICAgIC8vIEdldHRp
bmcgdGhlIHJlZ2lvbnMgZm9yIGEgbm9uIGV4aXN0YW50IG5vZGUgc2hvdWxkIHJldHVybiBudWxs
LgorICAgICAgICAgICAgdmFyIHBFbGVtZW50OworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3Qg
PSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1lbnQpOworICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3QgPT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBhIG5vbi1leGlz
dGFudCBub2RlIHNob3VsZCByZXR1cm4gbnVsbCIpOworCisgICAgICAgICAgICAvLyBHZXR0aW5n
IHRoZSByZWdpb25zIGZvciBhbiBlbGVtZW50IHRoYXQgd2FzIG5vdCBhZGRlZCB0byB0aGUgZG9t
IHNob3VsZCByZXR1cm4gYW4gZW1wdHkgbGlzdC4KKyAgICAgICAgICAgIHBFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdDIg
PSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1lbnQpOworICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3QyICE9IG51bGwsICJSZWdpb24gbGlzdCAyIHNob3VsZCBub3Qg
YmUgbnVsbCIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3QyLmxlbmd0aCA9PSAwLCAi
UmVnaW9uIGxpc3QgMiBzaG91bGQgYmUgZW1wdHksIGhhcyAiICsgcmVnaW9uTGlzdDIubGVuZ3Ro
ICsgIiBlbGVtZW50cy4iKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0ICE9IHJlZ2lv
bkxpc3QyLCAiUmVnaW9uIGxpc3RzIHNob3VsZCBiZSBkaWZmZXJlbnQiKTsKKworICAgICAgICAg
ICAgLy8gQWRkIHRoZSBlbGVtZW50IHRvIHRoZSBkb20gYnV0IG5vdCBpbiB0aGUgZmxvdy4gVGhl
IHJlZ2lvbiBsaXN0IHNob3VsZCBiZSBlbXB0eS4KKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQocEVsZW1lbnQpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3QzID0gbmFt
ZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHBFbGVtZW50KTsKKyAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0MyAhPSBudWxsLCAiUmVnaW9uIGxpc3QgMyBzaG91bGQgbm90IGJlIG51
bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0My5sZW5ndGggPT0gMCwgIlJlZ2lv
biBsaXN0IDMgc2hvdWxkIGJlIGVtcHR5LCBoYXMgIiArIHJlZ2lvbkxpc3QzLmxlbmd0aCArICIg
ZWxlbWVudHMuIik7CisKKyAgICAgICAgICAgIC8vIEFkZCB0aGUgc2FtZSBlbGVtZW50IHRvIHRo
ZSBmbG93LiBUaGUgcmVnaW9uIGxpc3Qgc2hvdWxkIGNvbnRhaW4gb25lIHJlZ2lvbi4KKyAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocEVsZW1lbnQpOworICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZChwRWxlbWVudCk7
CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdDQgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29u
dGVudE5vZGUocEVsZW1lbnQpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q0ICE9IG51
bGwsICJSZWdpb24gbGlzdCA0IGZvciBub2RlIGluIGZsb3cgc2hvdWxkIG5vdCBiZSBudWxsIik7
CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDQubGVuZ3RoID09IDEsICJSZWdpb24gbGlz
dCA0IGZvciBub2RlIGluIGZsb3cgc2hvdWxkIGhhdmUgMSByZWdpb24sIGhhcyAiICsgcmVnaW9u
TGlzdDQubGVuZ3RoICsgIiBlbGVtZW50cyIpOworICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxp
c3Q0Lml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLCAiRmlyc3Qg
ZWxlbWVudCBpbiByZWdpb24gbGlzdCA0IHNob3VsZCBiZSB0aGUgZmlyc3QgcmVnaW9uLCBpdCBp
cyAiICsgcmVnaW9uTGlzdDQuaXRlbSgwKS5pZCk7CisKKyAgICAgICAgICAgIC8vIFJlbW92ZSB0
aGUgcmVnaW9uIG5vZGUgYW5kIGdldCB0aGUgcmVnaW9uIGxpc3QuIFRoZSBsaXN0IHNob3VsZCBi
ZSBlbXB0eS4KKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKS5j
bGFzc05hbWUgPSAibm9SZWdpb24iOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3Q1ID0gbmFt
ZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHBFbGVtZW50KTsKKyAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0NSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgNSBzaG91bGQgbm90IGJlIG51
bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0NS5sZW5ndGggPT0gMCwgIlJlZ2lv
biBsaXN0IDUgc2hvdWxkIGJlIGVtcHR5LCBoYXMgIiArIHJlZ2lvbkxpc3Q1Lmxlbmd0aCArICIg
ZWxlbWVudHMiKTsKKworICAgICAgICAgICAgLy8gQnJpbmcgYmFjayB0aGUgcmVnaW9uIGFuZCBn
ZXQgdGhlIHJlZ2lvbiBsaXN0LiBUaGUgbGlzdCBzaG91bGQgaGF2ZSBvbmUgZWxlbWVudC4KKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKS5jbGFzc05hbWUgPSAi
cmVnaW9uIjsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0NiA9IG5hbWVkRmxvdy5nZXRSZWdp
b25zQnlDb250ZW50Tm9kZShwRWxlbWVudCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlz
dDYgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IDYgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAg
ICAgICBhc3NlcnQocmVnaW9uTGlzdDYubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCA2IHNob3Vs
ZCBoYXZlIDEgcmVnaW9uLCBoYXMgIiArIHJlZ2lvbkxpc3Q2Lmxlbmd0aCArICIgZWxlbWVudHMi
KTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0Ni5pdGVtKDApID09IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0IGVsZW1lbnQgaW4gcmVnaW9uIGxpc3QgNiBz
aG91bGQgYmUgdGhlIGZpcnN0IHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3Q2Lml0ZW0oMCku
aWQpOworCisgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIG5hbWVkIGZsb3csIHRoZSByZWdpb24g
bGlzdCBzaG91bGQgYmUgZW1wdHkuCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYXJ0aWNsZSIpLmNsYXNzTmFtZSA9ICIiOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3Q3
ID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHBFbGVtZW50KTsKKyAgICAgICAg
ICAgIGFzc2VydChyZWdpb25MaXN0NyAhPSBudWxsLCAiUmVnaW9uIGxpc3QgNyBzaG91bGQgbm90
IGJlIG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0Ny5sZW5ndGggPT0gMCwg
IlJlZ2lvbiBsaXN0IDcgc2hvdWxkIGJlIGVtcHR5LCBpdCBoYXMgIiArIHJlZ2lvbkxpc3Q3Lmxl
bmd0aCArICIgZWxlbWVudHMiKTsKKworICAgICAgICAgICAgLy8gTW92ZSB0aGUgYXJ0aWNsZSB0
byBhbm90aGVyIG5hbWVkIGZsb3csIHRoZSByZWdpb24gbGlzdCBzaG91bGQgYmUgZW1wdHkuCisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmNsYXNzTmFtZSA9
ICJhcnRpY2xlMiI7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93MiA9IGRvY3VtZW50LndlYmtp
dEdldEZsb3dCeU5hbWUoImZsb3cyIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdDggPSBu
YW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHBFbGVtZW50KTsKKyAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0OCAhPSBudWxsLCAiUmVnaW9uIGxpc3QgOCBzaG91bGQgbm90IGJl
IG51bGwiKTsKKyAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0OC5sZW5ndGggPT0gMCwgIlJl
Z2lvbiBsaXN0IDggc2hvdWxkIGJlIGVtcHR5LCBpdCBoYXMgIiArIHJlZ2lvbkxpc3Q4Lmxlbmd0
aCArICIgZWxlbWVudHMiKTsKKworICAgICAgICAgICAgLy8gQWRkIGEgcmVnaW9uIHRvIHRoZSBz
ZWNvbmQgbmFtZWQgZmxvdywgdGhlIHJlZ2lvbiBsaXN0IHNob3VsZCBjb250YWluIG9uZSBlbGVt
ZW50CisgICAgICAgICAgICAvLyBzaW5jZSB0aGUgcCBlbGVtZW50IGlzIGEgY2hpbGQgb2YgYXJ0
aWNsZSB0aGF0IGlzIGNvbGxlY3RlZCBieSBmbG93Mi4KKyAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZWdpb24yIikuY2xhc3NOYW1lID0gInJlZ2lvbjIiOworICAgICAgICAg
ICAgdmFyIHJlZ2lvbkxpc3Q5ID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShw
RWxlbWVudCk7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDkgIT0gbnVsbCwgIlJlZ2lv
biBsaXN0IDkgc2hvdWxkIG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICBhc3NlcnQocmVnaW9u
TGlzdDkubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCA5IHNob3VsZCBoYXZlIDEgZWxlbWVudCwg
aXQgaGFzICIgKyByZWdpb25MaXN0OS5sZW5ndGggKyAiIGVsZW1lbnRzIik7CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM3ZTk4NTIuLjQx
NDMxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMi0wMy0xNSAgTWlobmVhIE92
aWRlbmllICA8bWlobmVhQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTUmVnaW9uc11JbXBsZW1l
bnQgTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3NDYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbGlzdCBvZiByZWdpb25zIHJldHVybmVk
IGlzIGEgc3RhdGljIG5vZGUgbGlzdC4KKworICAgICAgICBUZXN0czogZmFzdC9yZWdpb25zL2dl
dC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1idC5odG1sCisgICAgICAgICAgICAgICBm
YXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LXRiLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVy
dC1sci5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29u
dGVudC1ub2RlLXZlcnQtcmwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2dldC1y
ZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMv
Z2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlMi5odG1sCisKKyAgICAgICAgKiBkb20vV2ViS2l0
TmFtZWRGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE5hbWVkRmxvdzo6Z2V0UmVn
aW9uc0J5Q29udGVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1dl
YktpdE5hbWVkRmxvdy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXROYW1l
ZEZsb3cpOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuaWRsOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZs
b3dUaHJlYWQ6OnJlZ2lvbkluUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpvYmplY3RJbkZsb3dSZWdpb24pOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clJlZ2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpmbG93VGhyZWFkKToK
KwogMjAxMi0wMy0xMyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4K
IAogICAgICAgICBFbmFibGUgYW5pbVZhbCBzdXBwb3J0IGZvciBTVkdMZW5ndGhMaXN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCmluZGV4IDEyOTliN2MuLjdmNzU5ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwCkBAIC0zMCw3ICszMCwxMSBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdE5hbWVkRmxvdy5oIgogCisjaW5j
bHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxv
d1RocmVhZC5oIgorI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgorI2luY2x1ZGUgIlN0YXRpY05v
ZGVMaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDksNSArNTMsMjggQEAgYm9v
bCBXZWJLaXROYW1lZEZsb3c6Om92ZXJmbG93KCkgY29uc3QKICAgICByZXR1cm4gbV9wYXJlbnRG
bG93VGhyZWFkLT5vdmVyZmxvdygpOwogfQogCitQYXNzUmVmUHRyPE5vZGVMaXN0PiBXZWJLaXRO
YW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKE5vZGUqIGNvbnRlbnROb2RlKQorewor
ICAgIGlmICghY29udGVudE5vZGUpCisgICAgICAgIHJldHVybiAwOworCisgICAgbV9wYXJlbnRG
bG93VGhyZWFkLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMoKTsKKworICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiByZWdpb25Ob2RlczsKKyAgICBpZiAo
Y29udGVudE5vZGUtPnJlbmRlcmVyKCkKKyAgICAgICAgJiYgY29udGVudE5vZGUtPnJlbmRlcmVy
KCktPmluUmVuZGVyRmxvd1RocmVhZCgpCisgICAgICAgICYmIG1fcGFyZW50Rmxvd1RocmVhZCA9
PSBjb250ZW50Tm9kZS0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nUmVuZGVyRmxvd1RocmVhZCgpKSB7
CisgICAgICAgIGNvbnN0IFJlbmRlclJlZ2lvbkxpc3QmIHJlZ2lvbkxpc3QgPSBtX3BhcmVudEZs
b3dUaHJlYWQtPnJlbmRlclJlZ2lvbkxpc3QoKTsKKyAgICAgICAgZm9yIChSZW5kZXJSZWdpb25M
aXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gcmVnaW9uTGlzdC5iZWdpbigpOyBpdGVyICE9IHJl
Z2lvbkxpc3QuZW5kKCk7ICsraXRlcikgeworICAgICAgICAgICAgY29uc3QgUmVuZGVyUmVnaW9u
KiByZW5kZXJSZWdpb24gPSAqaXRlcjsKKyAgICAgICAgICAgIGlmICghcmVuZGVyUmVnaW9uLT5p
c1ZhbGlkKCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAobV9w
YXJlbnRGbG93VGhyZWFkLT5vYmplY3RJbkZsb3dSZWdpb24oY29udGVudE5vZGUtPnJlbmRlcmVy
KCksIHJlbmRlclJlZ2lvbikpCisgICAgICAgICAgICAgICAgcmVnaW9uTm9kZXMuYXBwZW5kKHJl
bmRlclJlZ2lvbi0+bm9kZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gU3RhdGlj
Tm9kZUxpc3Q6OmFkb3B0KHJlZ2lvbk5vZGVzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKaW5kZXggZjc2ZjEyMC4uYjZmNThj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaApAQCAtMzUsNiArMzUsOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE5vZGU7CitjbGFzcyBOb2RlTGlzdDsKIGNs
YXNzIFJlbmRlckZsb3dUaHJlYWQ7CiAKIGNsYXNzIFdlYktpdE5hbWVkRmxvdyA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYktpdE5hbWVkRmxvdz4gewpAQCAtNDcsNiArNDksNyBAQCBwdWJsaWM6CiAg
ICAgfldlYktpdE5hbWVkRmxvdygpOwogCiAgICAgYm9vbCBvdmVyZmxvdygpIGNvbnN0OworICAg
IFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKE5vZGUqKTsKIAog
cHJpdmF0ZToKICAgICBXZWJLaXROYW1lZEZsb3coUmVuZGVyRmxvd1RocmVhZCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbAppbmRleCAyNjFkNDQ0Li4xMGE0ZDllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbApAQCAtMzIsNiArMzIsNyBAQCBtb2R1
bGUgY29yZSB7CiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0CiAgICAgXSBXZWJLaXROYW1l
ZEZsb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvdmVyZmxvdzsKKyAg
ICAgICAgTm9kZUxpc3QgZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoaW4gTm9kZSBjb250ZW50Tm9k
ZSk7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dU
aHJlYWQuY3BwCmluZGV4IDExMzU1Y2QuLjFjODkyYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTk1Miw1ICs5NTIsNjkgQEAgdm9pZCBS
ZW5kZXJGbG93VGhyZWFkOjpyZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyRmlyZWQoVGltZXI8
UmVuZGVyRmxvd1RocmVhZD4KICAgICB9CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK2Jv
b2wgUmVuZGVyRmxvd1RocmVhZDo6cmVnaW9uSW5SYW5nZShjb25zdCBSZW5kZXJSZWdpb24qIHRh
cmdldFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiwgY29uc3QgUmVuZGVy
UmVnaW9uKiBlbmRSZWdpb24pIGNvbnN0Cit7CisgICAgQVNTRVJUKHRhcmdldFJlZ2lvbik7CisK
KyAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9yZWdpb25M
aXN0LmZpbmQoY29uc3RfY2FzdDxSZW5kZXJSZWdpb24qPihzdGFydFJlZ2lvbikpOyBpdCAhPSBt
X3JlZ2lvbkxpc3QuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgY29uc3QgUmVuZGVyUmVnaW9uKiBj
dXJyUmVnaW9uID0gKml0OworICAgICAgICBpZiAoIWN1cnJSZWdpb24tPmlzVmFsaWQoKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAodGFyZ2V0UmVnaW9uID09IGN1cnJSZWdp
b24pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGN1cnJSZWdpb24gPT0g
ZW5kUmVnaW9uKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIFJlbmRlckZsb3dUaHJlYWQ6Om9iamVjdEluRmxvd1JlZ2lvbihjb25zdCBS
ZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyUmVnaW9uKiByZWdpb24pIGNvbnN0Cit7
CisgICAgQVNTRVJUKG9iamVjdCk7CisgICAgQVNTRVJUKHJlZ2lvbik7CisKKyAgICBpZiAoIW9i
amVjdC0+aW5SZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAob2JqZWN0LT5lbmNsb3NpbmdSZW5kZXJGbG93VGhyZWFkKCkgIT0gdGhpcykKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmICghbV9yZWdpb25MaXN0LmNvbnRhaW5zKGNvbnN0X2Nhc3Q8
UmVuZGVyUmVnaW9uKj4ocmVnaW9uKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJl
bmRlckJveCogZW5jbG9zaW5nQm94ID0gb2JqZWN0LT5lbmNsb3NpbmdCb3goKTsKKyAgICBSZW5k
ZXJSZWdpb24qIGVuY2xvc2luZ0JveFN0YXJ0UmVnaW9uID0gMDsKKyAgICBSZW5kZXJSZWdpb24q
IGVuY2xvc2luZ0JveEVuZFJlZ2lvbiA9IDA7CisgICAgZ2V0UmVnaW9uUmFuZ2VGb3JCb3goZW5j
bG9zaW5nQm94LCBlbmNsb3NpbmdCb3hTdGFydFJlZ2lvbiwgZW5jbG9zaW5nQm94RW5kUmVnaW9u
KTsKKyAgICBpZiAoIXJlZ2lvbkluUmFuZ2UocmVnaW9uLCBlbmNsb3NpbmdCb3hTdGFydFJlZ2lv
biwgZW5jbG9zaW5nQm94RW5kUmVnaW9uKSkKKyAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAob2JqZWN0LT5pc0JveCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgIExheW91dFJl
Y3Qgb2JqZWN0QUJCUmVjdCA9IG9iamVjdC0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSk7
CisgICAgaWYgKCFvYmplY3RBQkJSZWN0LndpZHRoKCkpCisgICAgICAgIG9iamVjdEFCQlJlY3Qu
c2V0V2lkdGgoMSk7CisgICAgaWYgKCFvYmplY3RBQkJSZWN0LmhlaWdodCgpKQorICAgICAgICBv
YmplY3RBQkJSZWN0LnNldEhlaWdodCgxKTsgCisgICAgaWYgKG9iamVjdEFCQlJlY3QuaW50ZXJz
ZWN0cyhyZWdpb24tPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KHRydWUpKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBpZiAocmVnaW9uID09IGxhc3RSZWdpb24oKSkgeworICAgICAgICAv
LyBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGludGVyc2VjdCBhbnkgb2YgdGhlIGVuY2xvc2luZyBi
b3ggcmVnaW9ucworICAgICAgICAvLyB0aGVuIHRoZSBvYmplY3QgaXMgaW4gbGFzdCByZWdpb24u
CisgICAgICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Jl
Z2lvbkxpc3QuZmluZChlbmNsb3NpbmdCb3hTdGFydFJlZ2lvbik7IGl0ICE9IG1fcmVnaW9uTGlz
dC5lbmQoKTsgKytpdCkgeworICAgICAgICAgICAgY29uc3QgUmVuZGVyUmVnaW9uKiBjdXJyUmVn
aW9uID0gKml0OworICAgICAgICAgICAgaWYgKCFyZWdpb24tPmlzVmFsaWQoKSkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChjdXJyUmVnaW9uID09IHJlZ2lvbikK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChvYmplY3RBQkJSZWN0Lmlu
dGVyc2VjdHMoY3VyclJlZ2lvbi0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSkpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IDJj
ZjVhOTUuLmJkMzZmMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dU
aHJlYWQuaApAQCAtMTM3LDYgKzEzNyw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgb3ZlcmZsb3co
KSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93OyB9CiAKKyAgICAvLyBDaGVjayBpZiB0aGUgb2Jq
ZWN0IGlzIGluIHJlZ2lvbiBhbmQgdGhlIHJlZ2lvbiBpcyBwYXJ0IG9mIHRoaXMgZmxvdyB0aHJl
YWQuCisgICAgYm9vbCBvYmplY3RJbkZsb3dSZWdpb24oY29uc3QgUmVuZGVyT2JqZWN0KiwgY29u
c3QgUmVuZGVyUmVnaW9uKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBj
aGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlckZsb3dUaHJlYWQiOyB9CiAK
QEAgLTE0Nyw2ICsxNTAsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRSZXBhaW50KGNv
bnN0IExheW91dFJlY3QmKSBjb25zdDsKICAgICB2b2lkIHJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50
VGltZXJGaXJlZChUaW1lcjxSZW5kZXJGbG93VGhyZWFkPiopOworICAgIGJvb2wgcmVnaW9uSW5S
YW5nZShjb25zdCBSZW5kZXJSZWdpb24qIHRhcmdldFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9u
KiBzdGFydFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBlbmRSZWdpb24pIGNvbnN0OwogCiAg
ICAgdHlwZWRlZiBMaXN0SGFzaFNldDxSZW5kZXJPYmplY3QqPiBGbG93VGhyZWFkQ2hpbGRMaXN0
OwogICAgIEZsb3dUaHJlYWRDaGlsZExpc3QgbV9mbG93VGhyZWFkQ2hpbGRMaXN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCmluZGV4IDc0MWRlNjUuLjk3ZTYxZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKQEAgLTU3LDYgKzU3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGV0YWNoUmVnaW9uKCk7CiAKICAgICBSZW5kZXJGbG93VGhyZWFk
KiBwYXJlbnRGbG93VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnRGbG93VGhyZWFkOyB9
CisgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxv
d1RocmVhZDsgfQogCiAgICAgLy8gVmFsaWQgcmVnaW9ucyBkbyBub3QgY3JlYXRlIGNpcmN1bGFy
IGRlcGVuZGVuY2llcyB3aXRoIG90aGVyIGZsb3dzLgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0
IHsgcmV0dXJuIG1faXNWYWxpZDsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132607</attachid>
            <date>2012-03-19 10:58:05 -0700</date>
            <delta_ts>2012-03-20 00:42:12 -0700</delta_ts>
            <desc>Patch 4</desc>
            <filename>77746-4.patch</filename>
            <type>text/plain</type>
            <size>60393</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiOTcxOTY3Li5iZGJmN2EwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDMt
MTkgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzQ2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGxpc3Qgb2YgcmVn
aW9ucyByZXR1cm5lZCBpcyBhIHN0YXRpYyBub2RlIGxpc3QuCisKKyAgICAgICAgKiBmYXN0L3Jl
Z2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1i
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9u
cy1ieS1jb250ZW50LW5vZGUtaG9yaXotYnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9y
ZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei10Yi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5v
ZGUtaG9yaXotdGIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdp
b25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5v
ZGUtdmVydC1ybC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9n
ZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1ybC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNv
bnRlbnQtbm9kZTIuaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMTkgIExldmkgV2VpbnRyYXViICA8
bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmViYXNlbGluaW5nIGZp
eGVkLXBvc2l0aW9uLXNjcm9sbCBub3cgdGhhdCBtb3JlIGJvdHMgaGF2ZSBjb21lIGluLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQt
bm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMt
YnktY29udGVudC1ub2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41MTZjOWI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NyBAQAorVGVzdCBmb3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6Omdl
dFJlZ2lvbnNCeUNvbnRlbnROb2RlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyByZWdpb25MaXN0Lmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3QuaXRlbSgwKS5pZCBp
cyAicmVnaW9uIgorUEFTUyByZWdpb25MaXN0Lmxlbmd0aCBpcyAyCitQQVNTIHJlZ2lvbkxpc3Qu
aXRlbSgwKS5pZCBpcyAicmVnaW9uMjEiCitQQVNTIHJlZ2lvbkxpc3QuaXRlbSgxKS5pZCBpcyAi
cmVnaW9uMjIiCitQQVNTIHJlZ2lvbkxpc3QubGVuZ3RoIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1idC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29u
dGVudC1ub2RlLWhvcml6LWJ0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45NGU5YTk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1idC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0OSBAQAorVGVzdCBmb3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBO
YW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHJlZ2lvbkxpc3RBcnRpY2xlIGlzIG5vbi1udWxsLgorUEFTUyByZWdp
b25MaXN0QXJ0aWNsZS5sZW5ndGggaXMgMgorUEFTUyByZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDAp
LmlkIGlzICJyZWdpb24iCitQQVNTIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSkuaWQgaXMgInJl
Z2lvbjIiCitQQVNTIHJlZ2lvbkxpc3RTcGFuIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0
U3Bhbi5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0U3Bhbi5pdGVtKDApLmlkIGlzICJyZWdp
b24iCitQQVNTIHJlZ2lvbkxpc3RTcGFuMiBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFNw
YW4yLmxlbmd0aCBpcyAyCitQQVNTIHJlZ2lvbkxpc3RTcGFuMyBpcyBub24tbnVsbC4KK1BBU1Mg
cmVnaW9uTGlzdFNwYW4zLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RTcGFuMy5pdGVtKDAp
LmlkIGlzICJyZWdpb24yIgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUgaXMgbm9uLW51bGwuCitQ
QVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0VGV4dE5v
ZGUuaXRlbSgwKS5pZCBpcyAicmVnaW9uMiIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMiBpcyBu
b24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggaXMgMQorUEFTUyByZWdp
b25MaXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjIiCitQQVNTIHJlZ2lvbkxpc3RU
ZXh0Tm9kZTMgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoIGlz
IDEKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDApLmlkIGlzICJyZWdpb24yIgorUEFT
UyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCBpcyAyCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9k
ZTIuaXRlbSgwKS5pZCBpcyAicmVnaW9uMiIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVt
KDEpLmlkIGlzICJyZWdpb24zIgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUzMi5sZW5ndGggaXMg
MQorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUzMi5pdGVtKDApLmlkIGlzICJyZWdpb24zIgorUEFT
UyByZWdpb25MaXN0UDEgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RQMS5sZW5ndGggaXMg
MQorUEFTUyByZWdpb25MaXN0UDEuaXRlbSgwKS5pZCBpcyAicmVnaW9uNCIKK1BBU1MgcmVnaW9u
TGlzdFAyIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0UDIubGVuZ3RoIGlzIDEKK1BBU1Mg
cmVnaW9uTGlzdFAyLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjQiCitQQVNTIHJlZ2lvbkxpc3RQMyBp
cyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFAzLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxp
c3RQMy5pdGVtKDApLmlkIGlzICJyZWdpb240IgorUEFTUyByZWdpb25MaXN0UDIyLmxlbmd0aCBp
cyAxCitQQVNTIHJlZ2lvbkxpc3RQMjIuaXRlbSgwKS5pZCBpcyAicmVnaW9uNSIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2Rl
LWhvcml6LWJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnkt
Y29udGVudC1ub2RlLWhvcml6LWJ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZTgzZWE2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotYnQuaHRtbApAQCAtMCwwICsxLDE1
MSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgaHRtbCB7IC13ZWJraXQtd3JpdGluZy1tb2Rl
OiBob3Jpem9udGFsLWJ0OyB9CisgICAgICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6IG1vbm9z
cGFjZTsgfQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsg
fQorICAgICAgICAgICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB3aWR0aDog
MjUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAgI3JlZ2lvbjIgeyAtd2Via2l0LWZs
b3ctZnJvbTogZmxvdzsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAg
ICNyZWdpb24zIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHdpZHRoOiAyNTBweDsgaGVpZ2h0
OiA1MHB4OyB9CisKKyAgICAgICAgICAgICNhcnRpY2xlMiB7IC13ZWJraXQtZmxvdy1pbnRvOiBm
bG93MjsgfQorICAgICAgICAgICAgI3JlZ2lvbjQgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7
IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uNSB7IC13
ZWJraXQtZmxvdy1mcm9tOiBmbG93Mjsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKwor
ICAgICAgICAgICAgLm5vUmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IG5vbmU7IH0KKyAgICAg
ICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDwhLS0gc29tZSB0
ZXN0cyB3aXRoIGlubGluZSBlbGVtZW50cyAtLT4KKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZSI+
CisgICAgICAgICAgICA8c3BhbiBpZD0ic3Bhbk5vZGUiPlRleHQgaW5zaWRlIHNwYW4uPC9zcGFu
PgorICAgICAgICAgICAgVGV4dCBvdXRzaWRlIHNwYW4uIFRleHQgb3V0c2lkZSBzcGFuLiBUZXh0
IG91dHNpZGUgc3Bhbi4KKyAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZTIiPlRleHQgaW5z
aWRlIHNwYW4yLjwvc3Bhbj4KKyAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZTMiPlRleHQg
aW5zaWRlIHNwYW4zPC9zcGFuPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVn
aW9uIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uMiI+PC9kaXY+CisKKyAgICAgICAg
PCEtLSBzb21lIHRlc3RzIHdpdGggYmxvY2sgZWxlbWVudHMgLS0+CisgICAgICAgIDxkaXYgaWQ9
ImFydGljbGUyIj4KKyAgICAgICAgICAgIDxwIGlkPSJwMSI+VGV4dCBpbnNpZGUgcGFyYWdyYXBo
IHAxLjwvcD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjQiPjwvcmVn
aW9uPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIDc3NzQ2OiBb
Q1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZSIp
OworICAgICAgICAgICAgdmFyIG5hbWVkRmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5h
bWUoImZsb3ciKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gaGlkZVJlZ2lvbnMoKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xl
Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIikuc3R5bGUu
dmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb24yIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24zIikuc3R5bGUudmlzaWJpbGl0
eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWdpb240Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb241Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRk
ZW4iOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdEFydGljbGUg
PSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImFydGljbGUiKSk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RB
cnRpY2xlIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0QXJ0aWNs
ZS5sZW5ndGgiLCAyKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9u
TGlzdEFydGljbGUuaXRlbSgwKS5pZCIsICJyZWdpb24iKTsKKyAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVnaW9uTGlzdEFydGljbGUuaXRlbSgxKS5pZCIsICJyZWdpb24yIik7
CisKKyAgICAgICAgICAgIHZhciBzcGFuTm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
cGFuTm9kZSIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RTcGFuID0gbmFtZWRGbG93Lmdl
dFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9u
TnVsbCgicmVnaW9uTGlzdFNwYW4iKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJl
Z2lvbkxpc3RTcGFuLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWdpb25MaXN0U3Bhbi5pdGVtKDApLmlkIiwgInJlZ2lvbiIpOworCisgICAgICAgICAg
ICB2YXIgc3Bhbk5vZGUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlMiIpOwor
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RTcGFuMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlD
b250ZW50Tm9kZShzcGFuTm9kZTIpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdp
b25MaXN0U3BhbjIiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RT
cGFuMi5sZW5ndGgiLCAyKTsKKworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlMyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZTMiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0
U3BhbjMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUzKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdFNwYW4zIik7CisgICAgICAgICAg
ICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0U3BhbjMubGVuZ3RoIiwgMSk7CisgICAgICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RTcGFuMy5pdGVtKDApLmlkIiwg
InJlZ2lvbjIiKTsKKworICAgICAgICAgICAgdmFyIHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIlRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4
dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gIik7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2RlKTsKKyAgICAgICAg
ICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVu
dE5vZGUodGV4dE5vZGUpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0
VGV4dE5vZGUiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RUZXh0
Tm9kZS5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVn
aW9uTGlzdFRleHROb2RlLml0ZW0oMCkuaWQiLCAicmVnaW9uMiIpOworCisgICAgICAgICAgICAv
LyBBZGQgYW5vdGhlciB0ZXh0IG5vZGUgdGhhdCB3aWxsIG92ZXJmbG93IHRoZSByZWdpb24yLgor
ICAgICAgICAgICAgdmFyIHRleHROb2RlMiA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0
IG5vZGUyLiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUi
KS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0
Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUyKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdFRleHROb2RlMiIpOworICAgICAg
ICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGgiLCAxKTsK
KyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFRleHROb2RlMi5p
dGVtKDApLmlkIiwgInJlZ2lvbjIiKTsKKworICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIgdGV4
dCBub2RlIHRoYXQgaXMgaW4gdGhlIG92ZXJmbG93IG9mIHRoZSBsYXN0IHJlZ2lvbi4KKyAgICAg
ICAgICAgIHZhciB0ZXh0Tm9kZTMgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBub2Rl
My4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBw
ZW5kQ2hpbGQodGV4dE5vZGUzKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUz
ID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlMyk7CisgICAgICAg
ICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RUZXh0Tm9kZTMiKTsKKyAgICAgICAgICAg
IHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoIiwgMSk7CisgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9kZTMuaXRlbSgw
KS5pZCIsICJyZWdpb24yIik7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHJlZ2lvbiB0
byB0YWtlIHRoZSBvdmVyZmxvd2luZyBlbGVtZW50cyBmcm9tIHNlY29uZCByZWdpb24uCisgICAg
ICAgICAgICB2YXIgcmVnaW9uMyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAg
ICAgICAgICAgcmVnaW9uMy5pZCA9ICJyZWdpb24zIjsKKyAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQocmVnaW9uMyk7CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4
dE5vZGUyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlKTsKKyAg
ICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoIiwg
Mik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9k
ZTIuaXRlbSgwKS5pZCIsICJyZWdpb24yIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgxKS5pZCIsICJyZWdpb24zIik7CisKKyAg
ICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUzMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25z
QnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTMpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygi
cmVnaW9uTGlzdFRleHROb2RlMzIubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9kZTMyLml0ZW0oMCkuaWQiLCAicmVnaW9uMyIp
OworCisgICAgICAgICAgICB2YXIgbmFtZWRGbG93MiA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dC
eU5hbWUoImZsb3cyIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAxID0gbmFtZWRGbG93
Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDEiKSk7
CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RQMSIpOworICAgICAgICAg
ICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFAxLmxlbmd0aCIsIDEpOworICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0UDEuaXRlbSgwKS5pZCIsICJyZWdp
b240Iik7CisKKyAgICAgICAgICAgIHZhciBwMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAi
KTsKKyAgICAgICAgICAgIHAyLmlkID0gInAyIjsKKyAgICAgICAgICAgIHAyLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IGluc2lkZSBwYXJhZ3JhcGggcDIuIikpOwor
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuYXBwZW5kQ2hp
bGQocDIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMiA9IG5hbWVkRmxvdzIuZ2V0UmVn
aW9uc0J5Q29udGVudE5vZGUocDIpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdp
b25MaXN0UDIiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RQMi5s
ZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlz
dFAyLml0ZW0oMCkuaWQiLCAicmVnaW9uNCIpOworIAorICAgICAgICAgICAgLy8gYWRkIGFub3Ro
ZXIgZWxlbWVudCBwLCBpbiB0aGUgb3ZlcmZsb3cgcGFydCBvZiB0aGUgcmVnaW9uNAorICAgICAg
ICAgICAgdmFyIHAzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAg
cDMuaWQgPSAicDMiOworICAgICAgICAgICAgcDMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMy4iKSk7CisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5hcHBlbmRDaGlsZChwMyk7CisgICAgICAg
ICAgICB2YXIgcmVnaW9uTGlzdFAzID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9k
ZShwMyk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RQMyIpOworICAg
ICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFAzLmxlbmd0aCIsIDEpOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0UDMuaXRlbSgwKS5pZCIs
ICJyZWdpb240Iik7CisKKyAgICAgICAgICAgIC8vIGFkZCBhbm90aGVyIHJlZ2lvbiB0byBmbG93
MiwgcDIgYW5kIHAzIGdvIHRvIHJlZ2lvbjUKKyAgICAgICAgICAgIHZhciByZWdpb241ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICByZWdpb241LmlkID0gInJl
Z2lvbjUiOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb241KTsK
KworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMjIgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNC
eUNvbnRlbnROb2RlKHAyKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxp
c3RQMjIubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
Z2lvbkxpc3RQMjIuaXRlbSgwKS5pZCIsICJyZWdpb241Iik7CisKKyAgICAgICAgICAgIGhpZGVS
ZWdpb25zKCk7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lv
bnMtYnktY29udGVudC1ub2RlLWhvcml6LXRiLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotdGItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxN2M5ZWQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVu
dC1ub2RlLWhvcml6LXRiLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ5IEBACitUZXN0IGZvciA3
Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVu
dE5vZGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVnaW9uTGlzdEFy
dGljbGUgIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGggaXMgMgor
UEFTUyByZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApLmlkIGlzICJyZWdpb24iCitQQVNTIHJlZ2lv
bkxpc3RBcnRpY2xlLml0ZW0oMSkuaWQgaXMgInJlZ2lvbjIiCitQQVNTIHJlZ2lvbkxpc3RTcGFu
IGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0U3Bhbi5sZW5ndGggaXMgMQorUEFTUyByZWdp
b25MaXN0U3Bhbi5pdGVtKDApLmlkIGlzICJyZWdpb24iCitQQVNTIHJlZ2lvbkxpc3RTcGFuMiBp
cyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFNwYW4yLmxlbmd0aCBpcyAyCitQQVNTIHJlZ2lv
bkxpc3RTcGFuMyBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFNwYW4zLmxlbmd0aCBpcyAx
CitQQVNTIHJlZ2lvbkxpc3RTcGFuMy5pdGVtKDApLmlkIGlzICJyZWdpb24yIgorUEFTUyByZWdp
b25MaXN0VGV4dE5vZGUgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5n
dGggaXMgMQorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgwKS5pZCBpcyAicmVnaW9uMiIK
K1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMiBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFRl
eHROb2RlMi5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQg
aXMgInJlZ2lvbjIiCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTMgaXMgbm9uLW51bGwuCitQQVNT
IHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdFRleHROb2Rl
My5pdGVtKDApLmlkIGlzICJyZWdpb24yIgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0
aCBpcyAyCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKS5pZCBpcyAicmVnaW9uMiIK
K1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDEpLmlkIGlzICJyZWdpb24zIgorUEFTUyBy
ZWdpb25MaXN0VGV4dE5vZGUzMi5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUz
Mi5pdGVtKDApLmlkIGlzICJyZWdpb24zIgorUEFTUyByZWdpb25MaXN0UDEgaXMgbm9uLW51bGwu
CitQQVNTIHJlZ2lvbkxpc3RQMS5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0UDEuaXRlbSgw
KS5pZCBpcyAicmVnaW9uNCIKK1BBU1MgcmVnaW9uTGlzdFAyIGlzIG5vbi1udWxsLgorUEFTUyBy
ZWdpb25MaXN0UDIubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdFAyLml0ZW0oMCkuaWQgaXMg
InJlZ2lvbjQiCitQQVNTIHJlZ2lvbkxpc3RQMyBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlz
dFAzLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RQMy5pdGVtKDApLmlkIGlzICJyZWdpb240
IgorUEFTUyByZWdpb25MaXN0UDIyLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RQMjIuaXRl
bSgwKS5pZCBpcyAicmVnaW9uNSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LXRiLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LXRiLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZhMTUyMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5v
ZGUtaG9yaXotdGIuaHRtbApAQCAtMCwwICsxLDE1NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAg
ICAgYm9keSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IH0KKyAgICAgICAgICAgICNhcnRpY2xl
IHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7IH0KKyAgICAgICAgICAgICNyZWdpb24geyAtd2Vi
a2l0LWZsb3ctZnJvbTogZmxvdzsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAg
ICAgICAgICNyZWdpb24yIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHdpZHRoOiAyNTBweDsg
aGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uMyB7IC13ZWJraXQtZmxvdy1mcm9t
OiBmbG93OyB3aWR0aDogMjUwcHg7IGhlaWdodDogNTBweDsgfQorCisgICAgICAgICAgICAjYXJ0
aWNsZTIgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzI7IH0KKyAgICAgICAgICAgICNyZWdpb240
IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOyB3aWR0aDogMjUwcHg7IGhlaWdodDogNTBweDsg
fQorICAgICAgICAgICAgI3JlZ2lvbjUgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7IHdpZHRo
OiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisKKyAgICAgICAgICAgIC5ub1JlZ2lvbiB7IC13ZWJr
aXQtZmxvdy1mcm9tOiBub25lOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAg
IDxib2R5PgorICAgICAgICA8IS0tIHNvbWUgdGVzdHMgd2l0aCBpbmxpbmUgZWxlbWVudHMgLS0+
CisgICAgICAgIDxkaXYgaWQ9ImFydGljbGUiPgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5O
b2RlIj5UZXh0IGluc2lkZSBzcGFuLjwvc3Bhbj4KKyAgICAgICAgICAgIFRleHQgb3V0c2lkZSBz
cGFuLiBUZXh0IG91dHNpZGUgc3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4uCisgICAgICAgICAgICA8
c3BhbiBpZD0ic3Bhbk5vZGUyIj5UZXh0IGluc2lkZSBzcGFuMi48L3NwYW4+CisgICAgICAgICAg
ICA8c3BhbiBpZD0ic3Bhbk5vZGUzIj5UZXh0IGluc2lkZSBzcGFuMzwvc3Bhbj4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9
InJlZ2lvbjIiPjwvZGl2PgorCisgICAgICAgIDwhLS0gc29tZSB0ZXN0cyB3aXRoIGJsb2NrIGVs
ZW1lbnRzIC0tPgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlMiI+CisgICAgICAgICAgICA8cCBp
ZD0icDEiPlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMS48L3A+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8ZGl2IGlkPSJyZWdpb240Ij48L3JlZ2lvbj4KKworICAgICAgICA8c2NyaXB0PgorICAg
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgICAg
ICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1l
ZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlIik7CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGhpZGVSZWdpb25zKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5zdHlsZS52
aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZ2lvbiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLnN0eWxlLnZpc2liaWxpdHkg
PSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVn
aW9uMyIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVu
IjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNSIpLnN0
eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
dmFyIG5hbWVkRmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKTsKKwor
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RBcnRpY2xlID0gbmFtZWRGbG93LmdldFJlZ2lvbnNC
eUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikpOworICAgICAg
ICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0QXJ0aWNsZSAiKTsKKyAgICAgICAgICAg
IHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCIsIDIpOworICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApLmlk
IiwgInJlZ2lvbiIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25M
aXN0QXJ0aWNsZS5pdGVtKDEpLmlkIiwgInJlZ2lvbjIiKTsKKworICAgICAgICAgICAgdmFyIHNw
YW5Ob2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlIik7CisgICAgICAgICAg
ICB2YXIgcmVnaW9uTGlzdFNwYW4gPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUo
c3Bhbk5vZGUpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0U3BhbiIp
OworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFNwYW4ubGVuZ3RoIiwg
MSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RTcGFuLml0
ZW0oMCkuaWQiLCAicmVnaW9uIik7CisKKyAgICAgICAgICAgIHZhciBzcGFuTm9kZTIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUyIik7CisgICAgICAgICAgICB2YXIgcmVnaW9u
TGlzdFNwYW4yID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlMik7
CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RTcGFuMiIpOworICAgICAg
ICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFNwYW4yLmxlbmd0aCIsIDIpOworCisg
ICAgICAgICAgICB2YXIgc3Bhbk5vZGUzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5O
b2RlMyIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RTcGFuMyA9IG5hbWVkRmxvdy5nZXRS
ZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZTMpOworICAgICAgICAgICAgc2hvdWxkQmVOb25O
dWxsKCJyZWdpb25MaXN0U3BhbjMiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJl
Z2lvbkxpc3RTcGFuMy5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkuaWQiLCAicmVnaW9uMiIpOworCisgICAgICAg
ICAgICB2YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlLiBU
ZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4
dCBub2RlLiAiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xl
IikuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0
Tm9kZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZSk7CisgICAg
ICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RUZXh0Tm9kZSIpOworICAgICAgICAg
ICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFRleHROb2RlLmxlbmd0aCIsIDEpOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgw
KS5pZCIsICJyZWdpb24yIik7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHRleHQgbm9k
ZSB0aGF0IHdpbGwgb3ZlcmZsb3cgdGhlIHJlZ2lvbjIuCisgICAgICAgICAgICB2YXIgdGV4dE5v
ZGUyID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZTIuIik7CisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2Rl
Mik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMiA9IG5hbWVkRmxvdy5nZXRS
ZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTIpOworICAgICAgICAgICAgc2hvdWxkQmVOb25O
dWxsKCJyZWdpb25MaXN0VGV4dE5vZGUyIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRv
KCJyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQiLCAicmVnaW9uMiIp
OworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhlciB0ZXh0IG5vZGUgdGhhdCBpcyBpbiB0aGUg
b3ZlcmZsb3cgb2YgdGhlIGxhc3QgcmVnaW9uLgorICAgICAgICAgICAgdmFyIHRleHROb2RlMyA9
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUzLiIpOworICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTMpOwor
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9u
c0J5Q29udGVudE5vZGUodGV4dE5vZGUzKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgi
cmVnaW9uTGlzdFRleHROb2RlMyIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVn
aW9uTGlzdFRleHROb2RlMy5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDApLmlkIiwgInJlZ2lvbjIiKTsKKwor
ICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIgcmVnaW9uIHRvIHRha2UgdGhlIG92ZXJmbG93aW5n
IGVsZW1lbnRzIGZyb20gc2Vjb25kIHJlZ2lvbi4KKyAgICAgICAgICAgIHZhciByZWdpb24zID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICByZWdpb24zLmlkID0g
InJlZ2lvbjMiOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb24z
KTsKKworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0
UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVh
dGVUbygicmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGgiLCAyKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApLmlkIiwgInJlZ2lv
bjIiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFRleHRO
b2RlMi5pdGVtKDEpLmlkIiwgInJlZ2lvbjMiKTsKKworICAgICAgICAgICAgdmFyIHJlZ2lvbkxp
c3RUZXh0Tm9kZTMyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2Rl
Myk7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0VGV4dE5vZGUzMi5s
ZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlz
dFRleHROb2RlMzIuaXRlbSgwKS5pZCIsICJyZWdpb24zIik7CisKKyAgICAgICAgICAgIHZhciBu
YW1lZEZsb3cyID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdzIiKTsKKyAgICAg
ICAgICAgIHZhciByZWdpb25MaXN0UDEgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnRO
b2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMSIpKTsKKyAgICAgICAgICAgIHNob3VsZEJl
Tm9uTnVsbCgicmVnaW9uTGlzdFAxIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJy
ZWdpb25MaXN0UDEubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlZ2lvbkxpc3RQMS5pdGVtKDApLmlkIiwgInJlZ2lvbjQiKTsKKworICAgICAgICAgICAg
dmFyIHAyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAgcDIuaWQg
PSAicDIiOworICAgICAgICAgICAgcDIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMi4iKSk7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5hcHBlbmRDaGlsZChwMik7CisgICAgICAgICAgICB2
YXIgcmVnaW9uTGlzdFAyID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMik7
CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RQMiIpOworICAgICAgICAg
ICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFAyLmxlbmd0aCIsIDEpOworICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0UDIuaXRlbSgwKS5pZCIsICJyZWdp
b240Iik7CisgCisgICAgICAgICAgICAvLyBhZGQgYW5vdGhlciBlbGVtZW50IHAsIGluIHRoZSBv
dmVyZmxvdyBwYXJ0IG9mIHRoZSByZWdpb240CisgICAgICAgICAgICB2YXIgcDMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJwIik7CisgICAgICAgICAgICBwMy5pZCA9ICJwMyI7CisgICAgICAg
ICAgICBwMy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUg
cGFyYWdyYXBoIHAzLiIpKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJh
cnRpY2xlMiIpLmFwcGVuZENoaWxkKHAzKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDMg
PSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHAzKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdFAzIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0
ZVRvKCJyZWdpb25MaXN0UDMubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZ2lvbkxpc3RQMy5pdGVtKDApLmlkIiwgInJlZ2lvbjQiKTsKKworICAgICAg
ICAgICAgLy8gYWRkIGFub3RoZXIgcmVnaW9uIHRvIGZsb3cyLCBwMiBhbmQgcDMgZ28gdG8gcmVn
aW9uNQorICAgICAgICAgICAgdmFyIHJlZ2lvbjUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICAgICAgICAgIHJlZ2lvbjUuaWQgPSAicmVnaW9uNSI7CisgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlZ2lvbjUpOworCisgICAgICAgICAgICB2YXIgcmVn
aW9uTGlzdFAyMiA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocDIpOworICAg
ICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFAyMi5sZW5ndGgiLCAxKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFAyMi5pdGVtKDApLmlk
IiwgInJlZ2lvbjUiKTsKKworICAgICAgICAgICAgaGlkZVJlZ2lvbnMoKTsKKyAgICAgICAgPC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12
ZXJ0LWxyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9u
cy1ieS1jb250ZW50LW5vZGUtdmVydC1sci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uOTRlOWE5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1sci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0OSBAQAorVGVzdCBmb3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxl
bWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHJlZ2lvbkxpc3RBcnRpY2xlIGlzIG5vbi1udWxsLgorUEFT
UyByZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGggaXMgMgorUEFTUyByZWdpb25MaXN0QXJ0aWNsZS5p
dGVtKDApLmlkIGlzICJyZWdpb24iCitQQVNTIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSkuaWQg
aXMgInJlZ2lvbjIiCitQQVNTIHJlZ2lvbkxpc3RTcGFuIGlzIG5vbi1udWxsLgorUEFTUyByZWdp
b25MaXN0U3Bhbi5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0U3Bhbi5pdGVtKDApLmlkIGlz
ICJyZWdpb24iCitQQVNTIHJlZ2lvbkxpc3RTcGFuMiBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9u
TGlzdFNwYW4yLmxlbmd0aCBpcyAyCitQQVNTIHJlZ2lvbkxpc3RTcGFuMyBpcyBub24tbnVsbC4K
K1BBU1MgcmVnaW9uTGlzdFNwYW4zLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RTcGFuMy5p
dGVtKDApLmlkIGlzICJyZWdpb24yIgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUgaXMgbm9uLW51
bGwuCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0
VGV4dE5vZGUuaXRlbSgwKS5pZCBpcyAicmVnaW9uMiIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2Rl
MiBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggaXMgMQorUEFT
UyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjIiCitQQVNTIHJlZ2lv
bkxpc3RUZXh0Tm9kZTMgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVu
Z3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDApLmlkIGlzICJyZWdpb24y
IgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCBpcyAyCitQQVNTIHJlZ2lvbkxpc3RU
ZXh0Tm9kZTIuaXRlbSgwKS5pZCBpcyAicmVnaW9uMiIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2Rl
Mi5pdGVtKDEpLmlkIGlzICJyZWdpb24zIgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUzMi5sZW5n
dGggaXMgMQorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUzMi5pdGVtKDApLmlkIGlzICJyZWdpb24z
IgorUEFTUyByZWdpb25MaXN0UDEgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RQMS5sZW5n
dGggaXMgMQorUEFTUyByZWdpb25MaXN0UDEuaXRlbSgwKS5pZCBpcyAicmVnaW9uNCIKK1BBU1Mg
cmVnaW9uTGlzdFAyIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0UDIubGVuZ3RoIGlzIDEK
K1BBU1MgcmVnaW9uTGlzdFAyLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjQiCitQQVNTIHJlZ2lvbkxp
c3RQMyBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFAzLmxlbmd0aCBpcyAxCitQQVNTIHJl
Z2lvbkxpc3RQMy5pdGVtKDApLmlkIGlzICJyZWdpb240IgorUEFTUyByZWdpb25MaXN0UDIyLmxl
bmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RQMjIuaXRlbSgwKS5pZCBpcyAicmVnaW9uNSIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVu
dC1ub2RlLXZlcnQtbHIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9u
cy1ieS1jb250ZW50LW5vZGUtdmVydC1sci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjJlNjZmNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtbHIuaHRtbApAQCAtMCwwICsx
LDE1NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgaHRtbCB7IC13ZWJraXQtd3JpdGluZy1t
b2RlOiB2ZXJ0aWNhbC1scjsgfQorICAgICAgICAgICAgYm9keSB7IGZvbnQtZmFtaWx5OiBtb25v
c3BhY2U7IH0KKyAgICAgICAgICAgICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7
IH0KKyAgICAgICAgICAgIC5yZWdpb25Cb3ggeyAgaGVpZ2h0OiAyNTBweDsgd2lkdGg6IDUwcHg7
IH0KKyAgICAgICAgICAgICNyZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgfQorICAg
ICAgICAgICAgI3JlZ2lvbjIgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgfQorICAgICAgICAg
ICAgI3JlZ2lvbjMgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgfQorCisgICAgICAgICAgICAj
YXJ0aWNsZTIgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzI7IH0KKyAgICAgICAgICAgICNyZWdp
b240IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOyB9CisgICAgICAgICAgICAjcmVnaW9uNSB7
IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93MjsgfQorCisgICAgICAgICAgICAubm9SZWdpb24geyAt
d2Via2l0LWZsb3ctZnJvbTogbm9uZTsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4K
KyAgICA8Ym9keT4KKyAgICAgICAgPCEtLSBzb21lIHRlc3RzIHdpdGggaW5saW5lIGVsZW1lbnRz
IC0tPgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIj4KKyAgICAgICAgICAgIDxzcGFuIGlkPSJz
cGFuTm9kZSI+VGV4dCBpbnNpZGUgc3Bhbi48L3NwYW4+CisgICAgICAgICAgICBUZXh0IG91dHNp
ZGUgc3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4uIFRleHQgb3V0c2lkZSBzcGFuLgorICAgICAgICAg
ICAgPHNwYW4gaWQ9InNwYW5Ob2RlMiI+VGV4dCBpbnNpZGUgc3BhbjIuIFRleHQuPC9zcGFuPgor
ICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlMyI+VGV4dCBpbnNpZGUgc3BhbjM8L3NwYW4+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25C
b3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24yIiBjbGFzcz0icmVnaW9uQm94Ij48
L2Rpdj4KKworICAgICAgICA8IS0tIHNvbWUgdGVzdHMgd2l0aCBibG9jayBlbGVtZW50cyAtLT4K
KyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZTIiPgorICAgICAgICAgICAgPHAgaWQ9InAxIj5UZXh0
IGluc2lkZSBwYXJhZ3JhcGggcDEuPC9wPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBp
ZD0icmVnaW9uNCIgY2xhc3M9InJlZ2lvbkJveCI+PC9yZWdpb24+CisgICAgICAgIDxzY3JpcHQ+
CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBO
YW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlIik7CisgICAgICAgICAgICB2YXIgbmFt
ZWRGbG93ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpOworCisgICAgICAg
ICAgICBmdW5jdGlvbiBoaWRlUmVnaW9ucygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5zdHlsZS52aXNpYmlsaXR5ID0g
ImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGlj
bGUyIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKS5zdHls
ZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZ2lvbjMiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjQiKS5zdHlsZS52aXNpYmls
aXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZ2lvbjUiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIHZhciByZWdpb25MaXN0QXJ0aWNsZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25z
QnlDb250ZW50Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdEFydGljbGUiKTsKKyAgICAgICAgICAg
IHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCIsIDIpOworICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApLmlk
IiwgInJlZ2lvbiIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25M
aXN0QXJ0aWNsZS5pdGVtKDEpLmlkIiwgInJlZ2lvbjIiKTsKKworICAgICAgICAgICAgdmFyIHNw
YW5Ob2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlIik7CisgICAgICAgICAg
ICB2YXIgcmVnaW9uTGlzdFNwYW4gPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUo
c3Bhbk5vZGUpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0U3BhbiIp
OworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFNwYW4ubGVuZ3RoIiwg
MSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RTcGFuLml0
ZW0oMCkuaWQiLCAicmVnaW9uIik7CisKKyAgICAgICAgICAgIHZhciBzcGFuTm9kZTIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUyIik7CisgICAgICAgICAgICB2YXIgcmVnaW9u
TGlzdFNwYW4yID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlMik7
CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RTcGFuMiIpOworICAgICAg
ICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFNwYW4yLmxlbmd0aCIsIDIpOworCisg
ICAgICAgICAgICB2YXIgc3Bhbk5vZGUzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5O
b2RlMyIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RTcGFuMyA9IG5hbWVkRmxvdy5nZXRS
ZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZTMpOworICAgICAgICAgICAgc2hvdWxkQmVOb25O
dWxsKCJyZWdpb25MaXN0U3BhbjMiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJl
Z2lvbkxpc3RTcGFuMy5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkuaWQiLCAicmVnaW9uMiIpOworCisgICAgICAg
ICAgICB2YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlLiBU
ZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4
dCBub2RlLiAiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xl
IikuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0
Tm9kZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZSk7CisgICAg
ICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RUZXh0Tm9kZSIpOworICAgICAgICAg
ICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFRleHROb2RlLmxlbmd0aCIsIDEpOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgw
KS5pZCIsICJyZWdpb24yIik7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHRleHQgbm9k
ZSB0aGF0IHdpbGwgb3ZlcmZsb3cgdGhlIHJlZ2lvbjIuCisgICAgICAgICAgICB2YXIgdGV4dE5v
ZGUyID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZTIuIik7CisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2Rl
Mik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMiA9IG5hbWVkRmxvdy5nZXRS
ZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTIpOworICAgICAgICAgICAgc2hvdWxkQmVOb25O
dWxsKCJyZWdpb25MaXN0VGV4dE5vZGUyIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRv
KCJyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQiLCAicmVnaW9uMiIp
OworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhlciB0ZXh0IG5vZGUgdGhhdCBpcyBpbiB0aGUg
b3ZlcmZsb3cgb2YgdGhlIGxhc3QgcmVnaW9uLgorICAgICAgICAgICAgdmFyIHRleHROb2RlMyA9
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUzLiIpOworICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTMpOwor
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9u
c0J5Q29udGVudE5vZGUodGV4dE5vZGUzKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgi
cmVnaW9uTGlzdFRleHROb2RlMyIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVn
aW9uTGlzdFRleHROb2RlMy5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDApLmlkIiwgInJlZ2lvbjIiKTsKKwor
ICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIgcmVnaW9uIHRvIHRha2UgdGhlIG92ZXJmbG93aW5n
IGVsZW1lbnRzIGZyb20gc2Vjb25kIHJlZ2lvbi4KKyAgICAgICAgICAgIHZhciByZWdpb24zID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICByZWdpb24zLmlkID0g
InJlZ2lvbjMiOworICAgICAgICAgICAgcmVnaW9uMy5jbGFzc05hbWUgPSAicmVnaW9uQm94IjsK
KyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVnaW9uMyk7CisKKyAgICAg
ICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlKHRleHROb2RlKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lv
bkxpc3RUZXh0Tm9kZTIubGVuZ3RoIiwgMik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKS5pZCIsICJyZWdpb24yIik7CisgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgx
KS5pZCIsICJyZWdpb24zIik7CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUz
MiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTMpOworICAgICAg
ICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFRleHROb2RlMzIubGVuZ3RoIiwgMSk7
CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9kZTMy
Lml0ZW0oMCkuaWQiLCAicmVnaW9uMyIpOworCisgICAgICAgICAgICB2YXIgbmFtZWRGbG93MiA9
IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3cyIik7CisgICAgICAgICAgICB2YXIg
cmVnaW9uTGlzdFAxID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicDEiKSk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJl
Z2lvbkxpc3RQMSIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFAx
Lmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25M
aXN0UDEuaXRlbSgwKS5pZCIsICJyZWdpb240Iik7CisKKyAgICAgICAgICAgIHZhciBwMiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAgICAgICAgICAgIHAyLmlkID0gInAyIjsKKyAg
ICAgICAgICAgIHAyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IGlu
c2lkZSBwYXJhZ3JhcGggcDIuIikpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImFydGljbGUyIikuYXBwZW5kQ2hpbGQocDIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxp
c3RQMiA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocDIpOworICAgICAgICAg
ICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0UDIiKTsKKyAgICAgICAgICAgIHNob3VsZEV2
YWx1YXRlVG8oInJlZ2lvbkxpc3RQMi5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFAyLml0ZW0oMCkuaWQiLCAicmVnaW9uNCIpOworIAor
ICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIgZWxlbWVudCBwLCBpbiB0aGUgb3ZlcmZsb3cgcGFy
dCBvZiB0aGUgcmVnaW9uNAorICAgICAgICAgICAgdmFyIHAzID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgicCIpOworICAgICAgICAgICAgcDMuaWQgPSAicDMiOworICAgICAgICAgICAgcDMuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgaW5zaWRlIHBhcmFncmFwaCBw
My4iKSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5h
cHBlbmRDaGlsZChwMyk7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAzID0gbmFtZWRGbG93
Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMyk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51
bGwoInJlZ2lvbkxpc3RQMyIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9u
TGlzdFAzLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWdpb25MaXN0UDMuaXRlbSgwKS5pZCIsICJyZWdpb240Iik7CisKKyAgICAgICAgICAgIC8vIGFk
ZCBhbm90aGVyIHJlZ2lvbiB0byBmbG93MiwgcDIgYW5kIHAzIGdvIHRvIHJlZ2lvbjUKKyAgICAg
ICAgICAgIHZhciByZWdpb241ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
ICAgICAgICByZWdpb241LmlkID0gInJlZ2lvbjUiOworICAgICAgICAgICAgcmVnaW9uNS5jbGFz
c05hbWUgPSAicmVnaW9uQm94IjsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQocmVnaW9uNSk7CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDIyID0gbmFtZWRGbG93
Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0
ZVRvKCJyZWdpb25MaXN0UDIyLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWdpb25MaXN0UDIyLml0ZW0oMCkuaWQiLCAicmVnaW9uNSIpOworCisgICAg
ICAgICAgICBoaWRlUmVnaW9ucygpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LXJsLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1y
bC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRlOWE5
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9u
cy1ieS1jb250ZW50LW5vZGUtdmVydC1ybC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OSBAQAor
VGVzdCBmb3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lv
bnNCeUNvbnRlbnROb2RlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJl
Z2lvbkxpc3RBcnRpY2xlIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0QXJ0aWNsZS5sZW5n
dGggaXMgMgorUEFTUyByZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApLmlkIGlzICJyZWdpb24iCitQ
QVNTIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSkuaWQgaXMgInJlZ2lvbjIiCitQQVNTIHJlZ2lv
bkxpc3RTcGFuIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0U3Bhbi5sZW5ndGggaXMgMQor
UEFTUyByZWdpb25MaXN0U3Bhbi5pdGVtKDApLmlkIGlzICJyZWdpb24iCitQQVNTIHJlZ2lvbkxp
c3RTcGFuMiBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFNwYW4yLmxlbmd0aCBpcyAyCitQ
QVNTIHJlZ2lvbkxpc3RTcGFuMyBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFNwYW4zLmxl
bmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RTcGFuMy5pdGVtKDApLmlkIGlzICJyZWdpb24yIgor
UEFTUyByZWdpb25MaXN0VGV4dE5vZGUgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RUZXh0
Tm9kZS5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgwKS5pZCBpcyAi
cmVnaW9uMiIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMiBpcyBub24tbnVsbC4KK1BBU1MgcmVn
aW9uTGlzdFRleHROb2RlMi5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyLml0
ZW0oMCkuaWQgaXMgInJlZ2lvbjIiCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTMgaXMgbm9uLW51
bGwuCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlz
dFRleHROb2RlMy5pdGVtKDApLmlkIGlzICJyZWdpb24yIgorUEFTUyByZWdpb25MaXN0VGV4dE5v
ZGUyLmxlbmd0aCBpcyAyCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKS5pZCBpcyAi
cmVnaW9uMiIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDEpLmlkIGlzICJyZWdpb24z
IgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUzMi5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0
VGV4dE5vZGUzMi5pdGVtKDApLmlkIGlzICJyZWdpb24zIgorUEFTUyByZWdpb25MaXN0UDEgaXMg
bm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RQMS5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0
UDEuaXRlbSgwKS5pZCBpcyAicmVnaW9uNCIKK1BBU1MgcmVnaW9uTGlzdFAyIGlzIG5vbi1udWxs
LgorUEFTUyByZWdpb25MaXN0UDIubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdFAyLml0ZW0o
MCkuaWQgaXMgInJlZ2lvbjQiCitQQVNTIHJlZ2lvbkxpc3RQMyBpcyBub24tbnVsbC4KK1BBU1Mg
cmVnaW9uTGlzdFAzLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RQMy5pdGVtKDApLmlkIGlz
ICJyZWdpb240IgorUEFTUyByZWdpb25MaXN0UDIyLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxp
c3RQMjIuaXRlbSgwKS5pZCBpcyAicmVnaW9uNSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtcmwuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1y
bC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmMmYzZmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29u
dGVudC1ub2RlLXZlcnQtcmwuaHRtbApAQCAtMCwwICsxLDE1NCBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAg
ICAgICAgICAgaHRtbCB7IC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsgfQorICAg
ICAgICAgICAgYm9keSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IH0KKyAgICAgICAgICAgICNh
cnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7IH0KKyAgICAgICAgICAgIC5yZWdpb25C
b3ggeyAgaGVpZ2h0OiAyNTBweDsgd2lkdGg6IDUwcHg7IH0KKyAgICAgICAgICAgICNyZWdpb24g
eyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgfQorICAgICAgICAgICAgI3JlZ2lvbjIgeyAtd2Vi
a2l0LWZsb3ctZnJvbTogZmxvdzsgfQorICAgICAgICAgICAgI3JlZ2lvbjMgeyAtd2Via2l0LWZs
b3ctZnJvbTogZmxvdzsgfQorCisgICAgICAgICAgICAjYXJ0aWNsZTIgeyAtd2Via2l0LWZsb3ct
aW50bzogZmxvdzI7IH0KKyAgICAgICAgICAgICNyZWdpb240IHsgLXdlYmtpdC1mbG93LWZyb206
IGZsb3cyOyB9CisgICAgICAgICAgICAjcmVnaW9uNSB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93
MjsgfQorCisgICAgICAgICAgICAubm9SZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogbm9uZTsg
fQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPCEt
LSBzb21lIHRlc3RzIHdpdGggaW5saW5lIGVsZW1lbnRzIC0tPgorICAgICAgICA8ZGl2IGlkPSJh
cnRpY2xlIj4KKyAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZSI+VGV4dCBpbnNpZGUgc3Bh
bi48L3NwYW4+CisgICAgICAgICAgICBUZXh0IG91dHNpZGUgc3Bhbi4gVGV4dCBvdXRzaWRlIHNw
YW4uIFRleHQgb3V0c2lkZSBzcGFuLgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlMiI+
VGV4dCBpbnNpZGUgc3BhbjIuIFRleHQuPC9zcGFuPgorICAgICAgICAgICAgPHNwYW4gaWQ9InNw
YW5Ob2RlMyI+VGV4dCBpbnNpZGUgc3BhbjM8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25Cb3giPjwvZGl2PgorICAgICAgICA8ZGl2
IGlkPSJyZWdpb24yIiBjbGFzcz0icmVnaW9uQm94Ij48L2Rpdj4KKworICAgICAgICA8IS0tIHNv
bWUgdGVzdHMgd2l0aCBibG9jayBlbGVtZW50cyAtLT4KKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNs
ZTIiPgorICAgICAgICAgICAgPHAgaWQ9InAxIj5UZXh0IGluc2lkZSBwYXJhZ3JhcGggcDEuPC9w
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uNCIgY2xhc3M9InJlZ2lv
bkJveCI+PC9yZWdpb24+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdCBm
b3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlIik7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93ID0gZG9jdW1lbnQud2Via2l0
R2V0Rmxvd0J5TmFtZSgiZmxvdyIpOworCisgICAgICAgICAgICBmdW5jdGlvbiBoaWRlUmVnaW9u
cygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImFydGljbGUiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuc3R5bGUudmlzaWJpbGl0eSA9
ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdp
b24iKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMiKS5zdHls
ZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZ2lvbjQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjUiKS5zdHlsZS52aXNpYmls
aXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciByZWdpb25M
aXN0QXJ0aWNsZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgi
cmVnaW9uTGlzdEFydGljbGUiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lv
bkxpc3RBcnRpY2xlLmxlbmd0aCIsIDIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApLmlkIiwgInJlZ2lvbiIpOworICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDEpLmlkIiwg
InJlZ2lvbjIiKTsKKworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInNwYW5Ob2RlIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4gPSBu
YW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUpOworICAgICAgICAgICAg
c2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0U3BhbiIpOworICAgICAgICAgICAgc2hvdWxkRXZh
bHVhdGVUbygicmVnaW9uTGlzdFNwYW4ubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RTcGFuLml0ZW0oMCkuaWQiLCAicmVnaW9uIik7CisK
KyAgICAgICAgICAgIHZhciBzcGFuTm9kZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bh
bk5vZGUyIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4yID0gbmFtZWRGbG93Lmdl
dFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlMik7CisgICAgICAgICAgICBzaG91bGRCZU5v
bk51bGwoInJlZ2lvbkxpc3RTcGFuMiIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygi
cmVnaW9uTGlzdFNwYW4yLmxlbmd0aCIsIDIpOworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlMyIpOworICAgICAgICAgICAgdmFy
IHJlZ2lvbkxpc3RTcGFuMyA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFu
Tm9kZTMpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0U3BhbjMiKTsK
KyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RTcGFuMy5sZW5ndGgiLCAx
KTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFNwYW4zLml0
ZW0oMCkuaWQiLCAicmVnaW9uMiIpOworCisgICAgICAgICAgICB2YXIgdGV4dE5vZGUgPSBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4
dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiAiKTsKKyAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUp
OworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZSA9IG5hbWVkRmxvdy5nZXRSZWdp
b25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZSk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwo
InJlZ2lvbkxpc3RUZXh0Tm9kZSIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVn
aW9uTGlzdFRleHROb2RlLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgwKS5pZCIsICJyZWdpb24yIik7CisKKyAg
ICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHRleHQgbm9kZSB0aGF0IHdpbGwgb3ZlcmZsb3cgdGhl
IHJlZ2lvbjIuCisgICAgICAgICAgICB2YXIgdGV4dE5vZGUyID0gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIlRleHQgbm9kZTIuIik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2RlMik7CisgICAgICAgICAgICB2YXIgcmVn
aW9uTGlzdFRleHROb2RlMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0
Tm9kZTIpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0VGV4dE5vZGUy
Iik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0VGV4dE5vZGUyLmxl
bmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0
VGV4dE5vZGUyLml0ZW0oMCkuaWQiLCAicmVnaW9uMiIpOworCisgICAgICAgICAgICAvLyBBZGQg
YW5vdGhlciB0ZXh0IG5vZGUgdGhhdCBpcyBpbiB0aGUgb3ZlcmZsb3cgb2YgdGhlIGxhc3QgcmVn
aW9uLgorICAgICAgICAgICAgdmFyIHRleHROb2RlMyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJUZXh0IG5vZGUzLiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFy
dGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTMpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxp
c3RUZXh0Tm9kZTMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUz
KTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdFRleHROb2RlMyIpOwor
ICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgi
LCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFRleHRO
b2RlMy5pdGVtKDApLmlkIiwgInJlZ2lvbjIiKTsKKworICAgICAgICAgICAgLy8gQWRkIGFub3Ro
ZXIgcmVnaW9uIHRvIHRha2UgdGhlIG92ZXJmbG93aW5nIGVsZW1lbnRzIGZyb20gc2Vjb25kIHJl
Z2lvbi4KKyAgICAgICAgICAgIHZhciByZWdpb24zID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CisgICAgICAgICAgICByZWdpb24zLmlkID0gInJlZ2lvbjMiOworICAgICAgICAgICAg
cmVnaW9uMy5jbGFzc05hbWUgPSAicmVnaW9uQm94IjsKKyAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQocmVnaW9uMyk7CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4
dE5vZGUyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlKTsKKyAg
ICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoIiwg
Mik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9k
ZTIuaXRlbSgwKS5pZCIsICJyZWdpb24yIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgxKS5pZCIsICJyZWdpb24zIik7CisKKyAg
ICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUzMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25z
QnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTMpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygi
cmVnaW9uTGlzdFRleHROb2RlMzIubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9kZTMyLml0ZW0oMCkuaWQiLCAicmVnaW9uMyIp
OworCisgICAgICAgICAgICB2YXIgbmFtZWRGbG93MiA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dC
eU5hbWUoImZsb3cyIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAxID0gbmFtZWRGbG93
Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDEiKSk7
CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RQMSIpOworICAgICAgICAg
ICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFAxLmxlbmd0aCIsIDEpOworICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0UDEuaXRlbSgwKS5pZCIsICJyZWdp
b240Iik7CisKKyAgICAgICAgICAgIHZhciBwMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAi
KTsKKyAgICAgICAgICAgIHAyLmlkID0gInAyIjsKKyAgICAgICAgICAgIHAyLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IGluc2lkZSBwYXJhZ3JhcGggcDIuIikpOwor
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuYXBwZW5kQ2hp
bGQocDIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMiA9IG5hbWVkRmxvdzIuZ2V0UmVn
aW9uc0J5Q29udGVudE5vZGUocDIpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdp
b25MaXN0UDIiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RQMi5s
ZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlz
dFAyLml0ZW0oMCkuaWQiLCAicmVnaW9uNCIpOworIAorICAgICAgICAgICAgLy8gYWRkIGFub3Ro
ZXIgZWxlbWVudCBwLCBpbiB0aGUgb3ZlcmZsb3cgcGFydCBvZiB0aGUgcmVnaW9uNAorICAgICAg
ICAgICAgdmFyIHAzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICAgICAg
cDMuaWQgPSAicDMiOworICAgICAgICAgICAgcDMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMy4iKSk7CisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5hcHBlbmRDaGlsZChwMyk7CisgICAgICAg
ICAgICB2YXIgcmVnaW9uTGlzdFAzID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9k
ZShwMyk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RQMyIpOworICAg
ICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFAzLmxlbmd0aCIsIDEpOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0UDMuaXRlbSgwKS5pZCIs
ICJyZWdpb240Iik7CisKKyAgICAgICAgICAgIC8vIGFkZCBhbm90aGVyIHJlZ2lvbiB0byBmbG93
MiwgcDIgYW5kIHAzIGdvIHRvIHJlZ2lvbjUKKyAgICAgICAgICAgIHZhciByZWdpb241ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICByZWdpb241LmlkID0gInJl
Z2lvbjUiOworICAgICAgICAgICAgcmVnaW9uNS5jbGFzc05hbWUgPSAicmVnaW9uQm94IjsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVnaW9uNSk7CisKKyAgICAgICAg
ICAgIHZhciByZWdpb25MaXN0UDIyID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9k
ZShwMik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0UDIyLmxlbmd0
aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0UDIy
Lml0ZW0oMCkuaWQiLCAicmVnaW9uNSIpOworCisgICAgICAgICAgICBoaWRlUmVnaW9ucygpOwor
ICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRl
bnQtbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNv
bnRlbnQtbm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwY2Rm
NGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lv
bnMtYnktY29udGVudC1ub2RlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAg
ICAgICAgICAgYm9keSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IH0KKyAgICAgICAgICAgICNh
cnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7IH0KKyAgICAgICAgICAgIC5ib3JkZXIg
eyBib3JkZXI6IDFweCBzb2xpZCByZWQ7IH0KKyAgICAgICAgICAgICNyZWdpb24geyAtd2Via2l0
LWZsb3ctZnJvbTogZmxvdzsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IHBvc2l0aW9uOiBh
YnNvbHV0ZTsgbGVmdDogMTBweDsgdG9wOiAyMDBweDsgfQorCisgICAgICAgICAgICAjYXJ0aWNs
ZTIgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzI7IH0KKyAgICAgICAgICAgICNyZWdpb24yMSB7
IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93Mjsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IHBv
c2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMjBweDsgdG9wOiAzMDBweDt9CisgICAgICAgICAgICAj
cmVnaW9uMjIgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7IHdpZHRoOiAyNTBweDsgaGVpZ2h0
OiA1MHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDIwcHg7IHRvcDogMzUwcHg7fQorICAg
ICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0i
YXJ0aWNsZSI+CisgICAgICAgICAgICA8cCBpZD0icDEiPlRleHQgZmxvd24gaW50byByZWdpb24u
PC9wPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0iYm9y
ZGVyIj48L2Rpdj4KKworICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlMiI+CisgICAgICAgICAgICA8
cCBpZD0icDIiPlRleHQgZmxvd24gaW4gdHdvIHJlZ2lvbnMuIFRleHQgZmxvd24gaW4gdHdvIHJl
Z2lvbnMuIFRleHQgZmxvd24gaW4gdHdvIHJlZ2lvbnMuPC9wPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGRpdiBpZD0icmVnaW9uMjEiIGNsYXNzPSJib3JkZXIiPjwvZGl2PgorICAgICAgICA8
ZGl2IGlkPSJyZWdpb24yMiIgY2xhc3M9ImJvcmRlciI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+
CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICAgICAg
ZGVzY3JpcHRpb24oIlRlc3QgZm9yIDc3NzQ2OiBbQ1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRG
bG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZS4iKTsKKworICAgICAgICAgICAgdmFyIG5hbWVk
RmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKTsKKyAgICAgICAgICAg
IHZhciB0YXJnZXROb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAxIik7CisgICAgICAg
ICAgICB2YXIgcmVnaW9uTGlzdCA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0
YXJnZXROb2RlKTsKKworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdC5s
ZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlz
dC5pdGVtKDApLmlkIiwgInJlZ2lvbiIpOworCisgICAgICAgICAgICBuYW1lZEZsb3cgPSBkb2N1
bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93MiIpOworICAgICAgICAgICAgLy8gVGVzdCB0
aGF0IHRoZSBwMiBlbGVtZW50IGlzIGZsb3duIGludG8gMiByZWdpb25zCisgICAgICAgICAgICB0
YXJnZXROb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAyIik7CisgICAgICAgICAgICBy
ZWdpb25MaXN0ID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRhcmdldE5vZGUp
OworCisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0Lmxlbmd0aCIsIDIp
OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0Lml0ZW0oMCku
aWQiLCAicmVnaW9uMjEiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVn
aW9uTGlzdC5pdGVtKDEpLmlkIiwgInJlZ2lvbjIyIik7CisKKyAgICAgICAgICAgIC8vIFRlc3Qg
dGhhdCBwMSBlbGVtZW50IGlzIG5vdCBpbiBmbG93MgorICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMSIpOworICAgICAgICAgICAgcmVnaW9uTGlzdCA9
IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0YXJnZXROb2RlKTsKKyAgICAgICAg
ICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3QubGVuZ3RoIiwgMCk7CisKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIGhpZGVSZWdpb25zQW5kRmxvd3MoKSB7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRl
biI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIiku
c3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZWdpb24iKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIxIikuc3R5bGUudmlz
aWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZWdpb24yMiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgaGlkZVJlZ2lvbnNBbmRGbG93cygpOworICAgICAgICA8L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZTItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQt
bm9kZTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3
NDY4ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJl
Z2lvbnMtYnktY29udGVudC1ub2RlMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBAQAorVGVz
dCBmb3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNC
eUNvbnRlbnROb2RlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlZ2lv
bkxpc3QgaXMgbnVsbAorUEFTUyByZWdpb25MaXN0MiBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9u
TGlzdDIubGVuZ3RoIGlzIDAKK1BBU1MgcmVnaW9uTGlzdCAhPSByZWdpb25MaXN0MiBpcyB0cnVl
CitQQVNTIHJlZ2lvbkxpc3QzIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0My5sZW5ndGgg
aXMgMAorUEFTUyByZWdpb25MaXN0NCBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdDQubGVu
Z3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdDQuaXRlbSgwKS5pZCBpcyAicmVnaW9uIgorUEFTUyBy
ZWdpb25MaXN0NSBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdDUubGVuZ3RoIGlzIDAKK1BB
U1MgcmVnaW9uTGlzdDYgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3Q2Lmxlbmd0aCBpcyAx
CitQQVNTIHJlZ2lvbkxpc3Q2Lml0ZW0oMCkuaWQgaXMgInJlZ2lvbiIKK1BBU1MgcmVnaW9uTGlz
dDcgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3Q3Lmxlbmd0aCBpcyAwCitQQVNTIHJlZ2lv
bkxpc3Q4IGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0OC5sZW5ndGggaXMgMAorUEFTUyBy
ZWdpb25MaXN0OSBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdDkubGVuZ3RoIGlzIDEKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2Rl
Mi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQt
bm9kZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjdlYTdlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5
LWNvbnRlbnQtbm9kZTIuaHRtbApAQCAtMCwwICsxLDkwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+CisgICAgICAg
ICAgICBib2R5IHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgfQorICAgICAgICAgICAgI3JlZ2lv
biwgI3JlZ2lvbjIgeyB3aWR0aDogMjUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAg
LmFydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorICAgICAgICAgICAgLmFydGlj
bGUyIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3cyOyB9CisgICAgICAgICAgICAucmVnaW9uIHsg
LXdlYmtpdC1mbG93LWZyb206IGZsb3c7IH0KKyAgICAgICAgICAgIC5yZWdpb24yIHsgLXdlYmtp
dC1mbG93LWZyb206IGZsb3cyOyB9CisgICAgICAgICAgICAubm9SZWdpb24geyAtd2Via2l0LWZs
b3ctZnJvbTogbm9uZTsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eT4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImFy
dGljbGUiIGNsYXNzPSJhcnRpY2xlIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBj
bGFzcz0icmVnaW9uIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uMiI+PC9kaXY+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1w
bGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUiKTsKKworICAgICAgICAg
ICAgdmFyIG5hbWVkRmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKTsK
KworICAgICAgICAgICAgLy8gR2V0dGluZyB0aGUgcmVnaW9ucyBmb3IgYSBub24gZXhpc3RhbnQg
bm9kZSBzaG91bGQgcmV0dXJuIG51bGwuCisgICAgICAgICAgICB2YXIgcEVsZW1lbnQ7CisgICAg
ICAgICAgICB2YXIgcmVnaW9uTGlzdCA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9k
ZShwRWxlbWVudCk7CisgICAgICAgICAgICBzaG91bGRCZU51bGwoInJlZ2lvbkxpc3QiKTsKKwor
ICAgICAgICAgICAgLy8gR2V0dGluZyB0aGUgcmVnaW9ucyBmb3IgYW4gZWxlbWVudCB0aGF0IHdh
cyBub3QgYWRkZWQgdG8gdGhlIGRvbSBzaG91bGQgcmV0dXJuIGFuIGVtcHR5IGxpc3QuCisgICAg
ICAgICAgICBwRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKworICAgICAg
ICAgICAgdmFyIHJlZ2lvbkxpc3QyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
KHBFbGVtZW50KTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdDIiKTsK
KyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3QyLmxlbmd0aCIsIDApOwor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJyZWdpb25MaXN0ICE9IHJlZ2lvbkxpc3QyIik7CisK
KyAgICAgICAgICAgIC8vIEFkZCB0aGUgZWxlbWVudCB0byB0aGUgZG9tIGJ1dCBub3QgaW4gdGhl
IGZsb3cuIFRoZSByZWdpb24gbGlzdCBzaG91bGQgYmUgZW1wdHkuCisgICAgICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHBFbGVtZW50KTsKKyAgICAgICAgICAgIHZhciByZWdpb25M
aXN0MyA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVudCk7CisgICAg
ICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3QzIik7CisgICAgICAgICAgICBzaG91
bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0My5sZW5ndGgiLCAwKTsKKworICAgICAgICAgICAgLy8g
QWRkIHRoZSBzYW1lIGVsZW1lbnQgdG8gdGhlIGZsb3cuIFRoZSByZWdpb24gbGlzdCBzaG91bGQg
Y29udGFpbiBvbmUgcmVnaW9uLgorICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChwRWxlbWVudCk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNs
ZSIpLmFwcGVuZENoaWxkKHBFbGVtZW50KTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0NCA9
IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVudCk7CisgICAgICAgICAg
ICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3Q0Iik7CisgICAgICAgICAgICBzaG91bGRFdmFs
dWF0ZVRvKCJyZWdpb25MaXN0NC5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygicmVnaW9uTGlzdDQuaXRlbSgwKS5pZCIsICJyZWdpb24iKTsKKworICAgICAg
ICAgICAgLy8gUmVtb3ZlIHRoZSByZWdpb24gbm9kZSBhbmQgZ2V0IHRoZSByZWdpb24gbGlzdC4g
VGhlIGxpc3Qgc2hvdWxkIGJlIGVtcHR5LgorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZ2lvbiIpLmNsYXNzTmFtZSA9ICJub1JlZ2lvbiI7CisgICAgICAgICAgICB2YXIg
cmVnaW9uTGlzdDUgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1lbnQp
OworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0NSIpOworICAgICAgICAg
ICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdDUubGVuZ3RoIiwgMCk7CisKKyAgICAgICAg
ICAgIC8vIEJyaW5nIGJhY2sgdGhlIHJlZ2lvbiBhbmQgZ2V0IHRoZSByZWdpb24gbGlzdC4gVGhl
IGxpc3Qgc2hvdWxkIGhhdmUgb25lIGVsZW1lbnQuCisgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVnaW9uIikuY2xhc3NOYW1lID0gInJlZ2lvbiI7CisgICAgICAgICAgICB2
YXIgcmVnaW9uTGlzdDYgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1l
bnQpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0NiIpOworICAgICAg
ICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdDYubGVuZ3RoIiwgMSk7CisgICAgICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3Q2Lml0ZW0oMCkuaWQiLCAicmVn
aW9uIik7CisKKyAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgbmFtZWQgZmxvdywgdGhlIHJlZ2lv
biBsaXN0IHNob3VsZCBiZSBlbXB0eS4KKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJhcnRpY2xlIikuY2xhc3NOYW1lID0gIiI7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlz
dDcgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1lbnQpOworICAgICAg
ICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0NyIpOworICAgICAgICAgICAgc2hvdWxk
RXZhbHVhdGVUbygicmVnaW9uTGlzdDcubGVuZ3RoIiwgMCk7CisKKyAgICAgICAgICAgIC8vIE1v
dmUgdGhlIGFydGljbGUgdG8gYW5vdGhlciBuYW1lZCBmbG93LCB0aGUgcmVnaW9uIGxpc3Qgc2hv
dWxkIGJlIGVtcHR5LgorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGlj
bGUiKS5jbGFzc05hbWUgPSAiYXJ0aWNsZTIiOworICAgICAgICAgICAgdmFyIG5hbWVkRmxvdzIg
PSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93MiIpOworICAgICAgICAgICAgdmFy
IHJlZ2lvbkxpc3Q4ID0gbmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVu
dCk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3Q4Iik7CisgICAgICAg
ICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0OC5sZW5ndGgiLCAwKTsKKworICAgICAg
ICAgICAgLy8gQWRkIGEgcmVnaW9uIHRvIHRoZSBzZWNvbmQgbmFtZWQgZmxvdywgdGhlIHJlZ2lv
biBsaXN0IHNob3VsZCBjb250YWluIG9uZSBlbGVtZW50CisgICAgICAgICAgICAvLyBzaW5jZSB0
aGUgcCBlbGVtZW50IGlzIGEgY2hpbGQgb2YgYXJ0aWNsZSB0aGF0IGlzIGNvbGxlY3RlZCBieSBm
bG93Mi4KKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIikuY2xh
c3NOYW1lID0gInJlZ2lvbjIiOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3Q5ID0gbmFtZWRG
bG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVudCk7CisgICAgICAgICAgICBzaG91
bGRCZU5vbk51bGwoInJlZ2lvbkxpc3Q5Iik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRv
KCJyZWdpb25MaXN0OS5sZW5ndGgiLCAxKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMzYzRkOWIuLjVhZDIy
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMi0wMy0xOSAgTWlobmVhIE92aWRl
bmllICA8bWlobmVhQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTUmVnaW9uc11JbXBsZW1lbnQg
TmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3NDYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbGlzdCBvZiByZWdpb25zIHJldHVybmVkIGlz
IGEgc3RhdGljIG5vZGUgbGlzdC4KKworICAgICAgICBUZXN0czogZmFzdC9yZWdpb25zL2dldC1y
ZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1idC5odG1sCisgICAgICAgICAgICAgICBmYXN0
L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LXRiLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1s
ci5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVu
dC1ub2RlLXZlcnQtcmwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2dldC1yZWdp
b25zLWJ5LWNvbnRlbnQtbm9kZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvZ2V0
LXJlZ2lvbnMtYnktY29udGVudC1ub2RlMi5odG1sCisKKyAgICAgICAgKiBkb20vV2ViS2l0TmFt
ZWRGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE5hbWVkRmxvdzo6Z2V0UmVnaW9u
c0J5Q29udGVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1dlYktp
dE5hbWVkRmxvdy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXROYW1lZEZs
b3cpOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuaWRsOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dU
aHJlYWQ6OnJlZ2lvbkluUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJGbG93VGhyZWFkOjpvYmplY3RJbkZsb3dSZWdpb24pOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJl
Z2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpmbG93VGhyZWFkKToKKwog
MjAxMi0wMy0xOSAgQWxleGFuZGVyIEbDpnLDuHkgIDxhbGV4YW5kZXIuZmFlcm95QG5va2lhLmNv
bT4KIAogICAgICAgICBBZGQgTm9kZVJlbmRlclN0eWxlLmggdG8gVG91Y2hBZGp1c3RtZW50LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcAppbmRleCAxMjk5YjdjLi43Zjc1
OWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcApAQCAtMzAsNyArMzAs
MTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3cuaCIK
IAorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlJl
bmRlckZsb3dUaHJlYWQuaCIKKyNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKKyNpbmNsdWRlICJT
dGF0aWNOb2RlTGlzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5LDUgKzUzLDI4
IEBAIGJvb2wgV2ViS2l0TmFtZWRGbG93OjpvdmVyZmxvdygpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cGFyZW50Rmxvd1RocmVhZC0+b3ZlcmZsb3coKTsKIH0KIAorUGFzc1JlZlB0cjxOb2RlTGlzdD4g
V2ViS2l0TmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZShOb2RlKiBjb250ZW50Tm9k
ZSkKK3sKKyAgICBpZiAoIWNvbnRlbnROb2RlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIG1f
cGFyZW50Rmxvd1RocmVhZC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CisKKyAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gcmVnaW9uTm9kZXM7Cisg
ICAgaWYgKGNvbnRlbnROb2RlLT5yZW5kZXJlcigpCisgICAgICAgICYmIGNvbnRlbnROb2RlLT5y
ZW5kZXJlcigpLT5pblJlbmRlckZsb3dUaHJlYWQoKQorICAgICAgICAmJiBtX3BhcmVudEZsb3dU
aHJlYWQgPT0gY29udGVudE5vZGUtPnJlbmRlcmVyKCktPmVuY2xvc2luZ1JlbmRlckZsb3dUaHJl
YWQoKSkgeworICAgICAgICBjb25zdCBSZW5kZXJSZWdpb25MaXN0JiByZWdpb25MaXN0ID0gbV9w
YXJlbnRGbG93VGhyZWFkLT5yZW5kZXJSZWdpb25MaXN0KCk7CisgICAgICAgIGZvciAoUmVuZGVy
UmVnaW9uTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IHJlZ2lvbkxpc3QuYmVnaW4oKTsgaXRl
ciAhPSByZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgICAgIGNvbnN0IFJlbmRl
clJlZ2lvbiogcmVuZGVyUmVnaW9uID0gKml0ZXI7CisgICAgICAgICAgICBpZiAoIXJlbmRlclJl
Z2lvbi0+aXNWYWxpZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
aWYgKG1fcGFyZW50Rmxvd1RocmVhZC0+b2JqZWN0SW5GbG93UmVnaW9uKGNvbnRlbnROb2RlLT5y
ZW5kZXJlcigpLCByZW5kZXJSZWdpb24pKQorICAgICAgICAgICAgICAgIHJlZ2lvbk5vZGVzLmFw
cGVuZChyZW5kZXJSZWdpb24tPm5vZGUoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJu
IFN0YXRpY05vZGVMaXN0OjphZG9wdChyZWdpb25Ob2Rlcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxv
dy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCmluZGV4IGY3NmYxMjAu
LmI2ZjU4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKQEAgLTM1LDYgKzM1
LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBOb2RlOworY2xhc3MgTm9kZUxp
c3Q7CiBjbGFzcyBSZW5kZXJGbG93VGhyZWFkOwogCiBjbGFzcyBXZWJLaXROYW1lZEZsb3cgOiBw
dWJsaWMgUmVmQ291bnRlZDxXZWJLaXROYW1lZEZsb3c+IHsKQEAgLTQ3LDYgKzQ5LDcgQEAgcHVi
bGljOgogICAgIH5XZWJLaXROYW1lZEZsb3coKTsKIAogICAgIGJvb2wgb3ZlcmZsb3coKSBjb25z
dDsKKyAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBnZXRSZWdpb25zQnlDb250ZW50Tm9kZShOb2Rl
Kik7CiAKIHByaXZhdGU6CiAgICAgV2ViS2l0TmFtZWRGbG93KFJlbmRlckZsb3dUaHJlYWQqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsIGIvU291
cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwKaW5kZXggMjYxZDQ0NC4uMTBhNGQ5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwKQEAgLTMyLDYgKzMyLDcg
QEAgbW9kdWxlIGNvcmUgewogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAogICAgIF0gV2Vi
S2l0TmFtZWRGbG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb3ZlcmZs
b3c7CisgICAgICAgIE5vZGVMaXN0IGdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGluIE5vZGUgY29u
dGVudE5vZGUpOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmNwcAppbmRleCAxMTM1NWNkLi4xYzg5MmM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCkBAIC05NTIsNSArOTUyLDY5IEBA
IHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6cmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lckZpcmVk
KFRpbWVyPFJlbmRlckZsb3dUaHJlYWQ+CiAgICAgfQogfQogCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCitib29sIFJlbmRlckZsb3dUaHJlYWQ6OnJlZ2lvbkluUmFuZ2UoY29uc3QgUmVuZGVyUmVn
aW9uKiB0YXJnZXRSZWdpb24sIGNvbnN0IFJlbmRlclJlZ2lvbiogc3RhcnRSZWdpb24sIGNvbnN0
IFJlbmRlclJlZ2lvbiogZW5kUmVnaW9uKSBjb25zdAoreworICAgIEFTU0VSVCh0YXJnZXRSZWdp
b24pOworCisgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1f
cmVnaW9uTGlzdC5maW5kKGNvbnN0X2Nhc3Q8UmVuZGVyUmVnaW9uKj4oc3RhcnRSZWdpb24pKTsg
aXQgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0KSB7CisgICAgICAgIGNvbnN0IFJlbmRlclJl
Z2lvbiogY3VyclJlZ2lvbiA9ICppdDsKKyAgICAgICAgaWYgKCFjdXJyUmVnaW9uLT5pc1ZhbGlk
KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKHRhcmdldFJlZ2lvbiA9PSBj
dXJyUmVnaW9uKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChjdXJyUmVn
aW9uID09IGVuZFJlZ2lvbikKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBSZW5kZXJGbG93VGhyZWFkOjpvYmplY3RJbkZsb3dSZWdpb24o
Y29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJlbmRlclJlZ2lvbiogcmVnaW9uKSBj
b25zdAoreworICAgIEFTU0VSVChvYmplY3QpOworICAgIEFTU0VSVChyZWdpb24pOworCisgICAg
aWYgKCFvYmplY3QtPmluUmVuZGVyRmxvd1RocmVhZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKG9iamVjdC0+ZW5jbG9zaW5nUmVuZGVyRmxvd1RocmVhZCgpICE9IHRoaXMpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1fcmVnaW9uTGlzdC5jb250YWlucyhjb25z
dF9jYXN0PFJlbmRlclJlZ2lvbio+KHJlZ2lvbikpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBSZW5kZXJCb3gqIGVuY2xvc2luZ0JveCA9IG9iamVjdC0+ZW5jbG9zaW5nQm94KCk7Cisg
ICAgUmVuZGVyUmVnaW9uKiBlbmNsb3NpbmdCb3hTdGFydFJlZ2lvbiA9IDA7CisgICAgUmVuZGVy
UmVnaW9uKiBlbmNsb3NpbmdCb3hFbmRSZWdpb24gPSAwOworICAgIGdldFJlZ2lvblJhbmdlRm9y
Qm94KGVuY2xvc2luZ0JveCwgZW5jbG9zaW5nQm94U3RhcnRSZWdpb24sIGVuY2xvc2luZ0JveEVu
ZFJlZ2lvbik7CisgICAgaWYgKCFyZWdpb25JblJhbmdlKHJlZ2lvbiwgZW5jbG9zaW5nQm94U3Rh
cnRSZWdpb24sIGVuY2xvc2luZ0JveEVuZFJlZ2lvbikpCisgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKG9iamVjdC0+aXNCb3goKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICBM
YXlvdXRSZWN0IG9iamVjdEFCQlJlY3QgPSBvYmplY3QtPmFic29sdXRlQm91bmRpbmdCb3hSZWN0
KHRydWUpOworICAgIGlmICghb2JqZWN0QUJCUmVjdC53aWR0aCgpKQorICAgICAgICBvYmplY3RB
QkJSZWN0LnNldFdpZHRoKDEpOworICAgIGlmICghb2JqZWN0QUJCUmVjdC5oZWlnaHQoKSkKKyAg
ICAgICAgb2JqZWN0QUJCUmVjdC5zZXRIZWlnaHQoMSk7IAorICAgIGlmIChvYmplY3RBQkJSZWN0
LmludGVyc2VjdHMocmVnaW9uLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCh0cnVlKSkpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKHJlZ2lvbiA9PSBsYXN0UmVnaW9uKCkpIHsKKyAg
ICAgICAgLy8gSWYgdGhlIG9iamVjdCBkb2VzIG5vdCBpbnRlcnNlY3QgYW55IG9mIHRoZSBlbmNs
b3NpbmcgYm94IHJlZ2lvbnMKKyAgICAgICAgLy8gdGhlbiB0aGUgb2JqZWN0IGlzIGluIGxhc3Qg
cmVnaW9uLgorICAgICAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gbV9yZWdpb25MaXN0LmZpbmQoZW5jbG9zaW5nQm94U3RhcnRSZWdpb24pOyBpdCAhPSBtX3Jl
Z2lvbkxpc3QuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgICAgIGNvbnN0IFJlbmRlclJlZ2lvbiog
Y3VyclJlZ2lvbiA9ICppdDsKKyAgICAgICAgICAgIGlmICghcmVnaW9uLT5pc1ZhbGlkKCkpCisg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAoY3VyclJlZ2lvbiA9PSBy
ZWdpb24pCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAob2JqZWN0QUJC
UmVjdC5pbnRlcnNlY3RzKGN1cnJSZWdpb24tPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KHRydWUp
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApp
bmRleCAyY2Y1YTk1Li5iZDM2ZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxvd1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmgKQEAgLTEzNyw2ICsxMzcsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIG92
ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdzsgfQogCisgICAgLy8gQ2hlY2sgaWYg
dGhlIG9iamVjdCBpcyBpbiByZWdpb24gYW5kIHRoZSByZWdpb24gaXMgcGFydCBvZiB0aGlzIGZs
b3cgdGhyZWFkLgorICAgIGJvb2wgb2JqZWN0SW5GbG93UmVnaW9uKGNvbnN0IFJlbmRlck9iamVj
dCosIGNvbnN0IFJlbmRlclJlZ2lvbiopIGNvbnN0OworCiBwcml2YXRlOgogICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJGbG93VGhyZWFk
IjsgfQogCkBAIC0xNDcsNiArMTUwLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkUmVw
YWludChjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CiAgICAgdm9pZCByZWdpb25MYXlvdXRVcGRh
dGVFdmVudFRpbWVyRmlyZWQoVGltZXI8UmVuZGVyRmxvd1RocmVhZD4qKTsKKyAgICBib29sIHJl
Z2lvbkluUmFuZ2UoY29uc3QgUmVuZGVyUmVnaW9uKiB0YXJnZXRSZWdpb24sIGNvbnN0IFJlbmRl
clJlZ2lvbiogc3RhcnRSZWdpb24sIGNvbnN0IFJlbmRlclJlZ2lvbiogZW5kUmVnaW9uKSBjb25z
dDsKIAogICAgIHR5cGVkZWYgTGlzdEhhc2hTZXQ8UmVuZGVyT2JqZWN0Kj4gRmxvd1RocmVhZENo
aWxkTGlzdDsKICAgICBGbG93VGhyZWFkQ2hpbGRMaXN0IG1fZmxvd1RocmVhZENoaWxkTGlzdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAppbmRleCA3NDFkZTY1Li45N2U2
MWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCkBAIC01Nyw2ICs1
Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRldGFjaFJlZ2lvbigpOwogCiAgICAgUmVuZGVyRmxv
d1RocmVhZCogcGFyZW50Rmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50Rmxvd1Ro
cmVhZDsgfQorICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQoKSBjb25zdCB7IHJldHVy
biBtX2Zsb3dUaHJlYWQ7IH0KIAogICAgIC8vIFZhbGlkIHJlZ2lvbnMgZG8gbm90IGNyZWF0ZSBj
aXJjdWxhciBkZXBlbmRlbmNpZXMgd2l0aCBvdGhlciBmbG93cy4KICAgICBib29sIGlzVmFsaWQo
KSBjb25zdCB7IHJldHVybiBtX2lzVmFsaWQ7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132774</attachid>
            <date>2012-03-20 00:42:23 -0700</date>
            <delta_ts>2012-03-20 03:08:45 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-77746-20120320094221.patch</filename>
            <type>text/plain</type>
            <size>61618</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDcxNzUzMzYwY2UyOGNi
YmYzNzYyMzhmNTJjNDE5MmE2OGFmMThhYi4uNjFlYzVhNzQ3Y2QyZWFmNGY5MWNlYzA3NWIyYTJh
YTRkZTdjOGYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAzLTIwICBNaWhu
ZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXUlt
cGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzc0NgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhdmlkIEh5YXR0LgorCisgICAgICAgIFRoZSBsaXN0IG9mIHJlZ2lvbnMgcmV0dXJu
ZWQgaXMgYSBzdGF0aWMgbm9kZSBsaXN0LgorCisgICAgICAgIFRlc3RzOiBmYXN0L3JlZ2lvbnMv
Z2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LWJ0Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotdGIuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12
ZXJ0LWxyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1j
b250ZW50LW5vZGUtdmVydC1ybC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvZ2V0
LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9u
cy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLmh0bWwKKworICAgICAgICAqIGRvbS9XZWJL
aXROYW1lZEZsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TmFtZWRGbG93OjpnZXRS
ZWdpb25zQnlDb250ZW50Tm9kZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20v
V2ViS2l0TmFtZWRGbG93Lmg6CisgICAgICAgIChXZWJLaXROYW1lZEZsb3cpOgorICAgICAgICAq
IGRvbS9XZWJLaXROYW1lZEZsb3cuaWRsOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93
VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnJlZ2lvbklu
UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93
VGhyZWFkOjpvYmplY3RJbkZsb3dSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpmbG93VGhyZWFkKToKKwogMjAxMi0wMy0xOSAgQmVu
amFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBmaXgg
Zm9yIERlYnVnIGJ1aWxkIGFmdGVyIHIxMTEzNTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVk
Rmxvdy5jcHAKaW5kZXggMzJhNDk3OTdhMTRlZmI3MGI5NjVlMDUxYTgwMTgyMWQwZDNhNTc0MS4u
YjE1NzQwNTRkZTc1MjNkYTJkOWY2ZDZjN2QyM2YwMDA1NTFhYWUwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJOb2Rl
LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgi
CisjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODUsNSArODYsMjggQEAgdm9pZCBXZWJLaXROYW1l
ZEZsb3c6OnJlZ2lzdGVyQ29udGVudE5vZGUoTm9kZSogY29udGVudE5vZGUpCiAgICAgbV9jb250
ZW50Tm9kZXMuYWRkKGNvbnRlbnROb2RlKTsKIH0KIAorUGFzc1JlZlB0cjxOb2RlTGlzdD4gV2Vi
S2l0TmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZShOb2RlKiBjb250ZW50Tm9kZSkK
K3sKKyAgICBpZiAoIWNvbnRlbnROb2RlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIG1fcGFy
ZW50Rmxvd1RocmVhZC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CisKKyAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gcmVnaW9uTm9kZXM7CisgICAg
aWYgKGNvbnRlbnROb2RlLT5yZW5kZXJlcigpCisgICAgICAgICYmIGNvbnRlbnROb2RlLT5yZW5k
ZXJlcigpLT5pblJlbmRlckZsb3dUaHJlYWQoKQorICAgICAgICAmJiBtX3BhcmVudEZsb3dUaHJl
YWQgPT0gY29udGVudE5vZGUtPnJlbmRlcmVyKCktPmVuY2xvc2luZ1JlbmRlckZsb3dUaHJlYWQo
KSkgeworICAgICAgICBjb25zdCBSZW5kZXJSZWdpb25MaXN0JiByZWdpb25MaXN0ID0gbV9wYXJl
bnRGbG93VGhyZWFkLT5yZW5kZXJSZWdpb25MaXN0KCk7CisgICAgICAgIGZvciAoUmVuZGVyUmVn
aW9uTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IHJlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAh
PSByZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgICAgIGNvbnN0IFJlbmRlclJl
Z2lvbiogcmVuZGVyUmVnaW9uID0gKml0ZXI7CisgICAgICAgICAgICBpZiAoIXJlbmRlclJlZ2lv
bi0+aXNWYWxpZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYg
KG1fcGFyZW50Rmxvd1RocmVhZC0+b2JqZWN0SW5GbG93UmVnaW9uKGNvbnRlbnROb2RlLT5yZW5k
ZXJlcigpLCByZW5kZXJSZWdpb24pKQorICAgICAgICAgICAgICAgIHJlZ2lvbk5vZGVzLmFwcGVu
ZChyZW5kZXJSZWdpb24tPm5vZGUoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFN0
YXRpY05vZGVMaXN0OjphZG9wdChyZWdpb25Ob2Rlcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCmluZGV4IGRkMzNiNDExODg0
N2U1YTAwM2UxM2EzYjg3YjEyYzVmN2ZjNDU5YzkuLjViNjUxNjA3OTc4NGQ4MmYyYjZmMjQ2ZjVi
MGE5Nzk5Mjc0MWM4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1l
ZEZsb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKQEAgLTUx
LDYgKzUxLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBvdmVyZmxvdygpIGNvbnN0OwogICAgIFBh
c3NSZWZQdHI8Tm9kZUxpc3Q+IGNvbnRlbnROb2RlcygpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8
Tm9kZUxpc3Q+IGdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKE5vZGUqKTsKIAogICAgIHZvaWQgcmVn
aXN0ZXJDb250ZW50Tm9kZShOb2RlKiBjb250ZW50Tm9kZSk7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
Q29udGVudE5vZGUoTm9kZSogY29udGVudE5vZGUpIHsgbV9jb250ZW50Tm9kZXMucmVtb3ZlKGNv
bnRlbnROb2RlKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVk
Rmxvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbAppbmRleCAx
N2E0NGM2YzMwM2ViYzhkYTI2NzI5NzA3N2I5MGRmZGMwNjU3Njg5Li5jOGQzZjJkZmVjZTNmZDFj
MmZlOWEyY2EzZDI3NTYwZjIyMGY4OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
V2ViS2l0TmFtZWRGbG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRG
bG93LmlkbApAQCAtMzMsNiArMzMsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgXSBXZWJLaXROYW1l
ZEZsb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvdmVyZmxvdzsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGNvbnRlbnROb2RlczsKKyAgICAgICAg
Tm9kZUxpc3QgZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoaW4gTm9kZSBjb250ZW50Tm9kZSk7CiAg
ICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
b3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQu
Y3BwCmluZGV4IDExMzU1Y2Q1ODllZDYyMmYyOWFhMDkxZDZlZjM4NGQ2OWU1MWQ0YTUuLjFjODky
Yzg4ZWMyMzQwZTNmYjkzZWNhZGYxMmI5NTg0NzFhODYwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTk1Miw1ICs5NTIsNjkgQEAgdm9p
ZCBSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyRmlyZWQoVGlt
ZXI8UmVuZGVyRmxvd1RocmVhZD4KICAgICB9CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
K2Jvb2wgUmVuZGVyRmxvd1RocmVhZDo6cmVnaW9uSW5SYW5nZShjb25zdCBSZW5kZXJSZWdpb24q
IHRhcmdldFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiwgY29uc3QgUmVu
ZGVyUmVnaW9uKiBlbmRSZWdpb24pIGNvbnN0Cit7CisgICAgQVNTRVJUKHRhcmdldFJlZ2lvbik7
CisKKyAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9yZWdp
b25MaXN0LmZpbmQoY29uc3RfY2FzdDxSZW5kZXJSZWdpb24qPihzdGFydFJlZ2lvbikpOyBpdCAh
PSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgY29uc3QgUmVuZGVyUmVnaW9u
KiBjdXJyUmVnaW9uID0gKml0OworICAgICAgICBpZiAoIWN1cnJSZWdpb24tPmlzVmFsaWQoKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAodGFyZ2V0UmVnaW9uID09IGN1cnJS
ZWdpb24pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGN1cnJSZWdpb24g
PT0gZW5kUmVnaW9uKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIFJlbmRlckZsb3dUaHJlYWQ6Om9iamVjdEluRmxvd1JlZ2lvbihjb25z
dCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyUmVnaW9uKiByZWdpb24pIGNvbnN0
Cit7CisgICAgQVNTRVJUKG9iamVjdCk7CisgICAgQVNTRVJUKHJlZ2lvbik7CisKKyAgICBpZiAo
IW9iamVjdC0+aW5SZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAob2JqZWN0LT5lbmNsb3NpbmdSZW5kZXJGbG93VGhyZWFkKCkgIT0gdGhpcykKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghbV9yZWdpb25MaXN0LmNvbnRhaW5zKGNvbnN0X2Nh
c3Q8UmVuZGVyUmVnaW9uKj4ocmVnaW9uKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IFJlbmRlckJveCogZW5jbG9zaW5nQm94ID0gb2JqZWN0LT5lbmNsb3NpbmdCb3goKTsKKyAgICBS
ZW5kZXJSZWdpb24qIGVuY2xvc2luZ0JveFN0YXJ0UmVnaW9uID0gMDsKKyAgICBSZW5kZXJSZWdp
b24qIGVuY2xvc2luZ0JveEVuZFJlZ2lvbiA9IDA7CisgICAgZ2V0UmVnaW9uUmFuZ2VGb3JCb3go
ZW5jbG9zaW5nQm94LCBlbmNsb3NpbmdCb3hTdGFydFJlZ2lvbiwgZW5jbG9zaW5nQm94RW5kUmVn
aW9uKTsKKyAgICBpZiAoIXJlZ2lvbkluUmFuZ2UocmVnaW9uLCBlbmNsb3NpbmdCb3hTdGFydFJl
Z2lvbiwgZW5jbG9zaW5nQm94RW5kUmVnaW9uKSkKKyAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAob2JqZWN0LT5pc0JveCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgIExheW91
dFJlY3Qgb2JqZWN0QUJCUmVjdCA9IG9iamVjdC0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1
ZSk7CisgICAgaWYgKCFvYmplY3RBQkJSZWN0LndpZHRoKCkpCisgICAgICAgIG9iamVjdEFCQlJl
Y3Quc2V0V2lkdGgoMSk7CisgICAgaWYgKCFvYmplY3RBQkJSZWN0LmhlaWdodCgpKQorICAgICAg
ICBvYmplY3RBQkJSZWN0LnNldEhlaWdodCgxKTsgCisgICAgaWYgKG9iamVjdEFCQlJlY3QuaW50
ZXJzZWN0cyhyZWdpb24tPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KHRydWUpKSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICBpZiAocmVnaW9uID09IGxhc3RSZWdpb24oKSkgeworICAgICAg
ICAvLyBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGludGVyc2VjdCBhbnkgb2YgdGhlIGVuY2xvc2lu
ZyBib3ggcmVnaW9ucworICAgICAgICAvLyB0aGVuIHRoZSBvYmplY3QgaXMgaW4gbGFzdCByZWdp
b24uCisgICAgICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBt
X3JlZ2lvbkxpc3QuZmluZChlbmNsb3NpbmdCb3hTdGFydFJlZ2lvbik7IGl0ICE9IG1fcmVnaW9u
TGlzdC5lbmQoKTsgKytpdCkgeworICAgICAgICAgICAgY29uc3QgUmVuZGVyUmVnaW9uKiBjdXJy
UmVnaW9uID0gKml0OworICAgICAgICAgICAgaWYgKCFyZWdpb24tPmlzVmFsaWQoKSkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChjdXJyUmVnaW9uID09IHJlZ2lv
bikKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChvYmplY3RBQkJSZWN0
LmludGVyc2VjdHMoY3VyclJlZ2lvbi0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSkpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhy
ZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4
IDJjZjVhOTU3NGM5MGRlOGM2NTc3ZWJlMmJlNzlmMTZlOWIxODVhMTQuLmJkMzZmMjJkNzc5ZDk1
NDY1MmVkYTU2NDM5ZGYzY2Q3MWRmNmFiYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZsb3dUaHJlYWQuaApAQCAtMTM3LDYgKzEzNyw5IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgb3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93OyB9CiAKKyAgICAvLyBDaGVj
ayBpZiB0aGUgb2JqZWN0IGlzIGluIHJlZ2lvbiBhbmQgdGhlIHJlZ2lvbiBpcyBwYXJ0IG9mIHRo
aXMgZmxvdyB0aHJlYWQuCisgICAgYm9vbCBvYmplY3RJbkZsb3dSZWdpb24oY29uc3QgUmVuZGVy
T2JqZWN0KiwgY29uc3QgUmVuZGVyUmVnaW9uKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgdmly
dHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlckZsb3dU
aHJlYWQiOyB9CiAKQEAgLTE0Nyw2ICsxNTAsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91
bGRSZXBhaW50KGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKICAgICB2b2lkIHJlZ2lvbkxheW91
dFVwZGF0ZUV2ZW50VGltZXJGaXJlZChUaW1lcjxSZW5kZXJGbG93VGhyZWFkPiopOworICAgIGJv
b2wgcmVnaW9uSW5SYW5nZShjb25zdCBSZW5kZXJSZWdpb24qIHRhcmdldFJlZ2lvbiwgY29uc3Qg
UmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBlbmRSZWdpb24p
IGNvbnN0OwogCiAgICAgdHlwZWRlZiBMaXN0SGFzaFNldDxSZW5kZXJPYmplY3QqPiBGbG93VGhy
ZWFkQ2hpbGRMaXN0OwogICAgIEZsb3dUaHJlYWRDaGlsZExpc3QgbV9mbG93VGhyZWFkQ2hpbGRM
aXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCmluZGV4IDc0MWRlNjU3
MmE0YjUzOWI5YmQwN2NjN2NhNGFiMTMzODIyMjUyMjkuLjk3ZTYxZmUxMTZlMzg1NGEzMzY4NmIy
NjFkNGY0N2FkNDZhZDIxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGV0YWNoUmVnaW9uKCk7CiAK
ICAgICBSZW5kZXJGbG93VGhyZWFkKiBwYXJlbnRGbG93VGhyZWFkKCkgY29uc3QgeyByZXR1cm4g
bV9wYXJlbnRGbG93VGhyZWFkOyB9CisgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCgp
IGNvbnN0IHsgcmV0dXJuIG1fZmxvd1RocmVhZDsgfQogCiAgICAgLy8gVmFsaWQgcmVnaW9ucyBk
byBub3QgY3JlYXRlIGNpcmN1bGFyIGRlcGVuZGVuY2llcyB3aXRoIG90aGVyIGZsb3dzLgogICAg
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWYWxpZDsgfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY2ZjU5
MzNmMjVhYmU4MTBjOTE4N2JjOTJhN2YxMmQxNTM2YjQyZjIuLjE5NGU3YTU5MGFkNmQ5MTk1MDJh
YjkyN2U2MDFjOGRkYjcxMzgwZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wMy0yMCAg
TWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTUmVnaW9u
c11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3NDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KKworICAgICAgICBUaGUgbGlzdCBvZiByZWdpb25zIHJl
dHVybmVkIGlzIGEgc3RhdGljIG5vZGUgbGlzdC4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy9n
ZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LWJ0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNv
bnRlbnQtbm9kZS1ob3Jpei1idC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
Z2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LXRiLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jp
ei10Yi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnkt
Y29udGVudC1ub2RlLXZlcnQtbHItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtbHIuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0
LXJsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdp
b25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LXJsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
cmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZTItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1u
b2RlMi5odG1sOiBBZGRlZC4KKwogMjAxMi0wMy0xOSAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFJlYmFzZWxpbmluZyBuZXN0ZWQtZnJh
Z21lbnQtcGFyc2VyLWNyYXNoLmh0bWwgYWdhaW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUxNmM5YjZjYzM3MzI1ZTRjODVkNzJmOWVmZjFmMzBkMjhkMjZk
NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lv
bnMtYnktY29udGVudC1ub2RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0IGZv
ciA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29u
dGVudE5vZGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlZ2lvbkxp
c3QubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdC5pdGVtKDApLmlkIGlzICJyZWdpb24iCitQ
QVNTIHJlZ2lvbkxpc3QubGVuZ3RoIGlzIDIKK1BBU1MgcmVnaW9uTGlzdC5pdGVtKDApLmlkIGlz
ICJyZWdpb24yMSIKK1BBU1MgcmVnaW9uTGlzdC5pdGVtKDEpLmlkIGlzICJyZWdpb24yMiIKK1BB
U1MgcmVnaW9uTGlzdC5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LWJ0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9y
aXotYnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZTlhOTViNGNiNmFmM2VmMzlhYTQwYjRi
NDJjNzAwZTg1OWQ5NmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LWJ0LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQ5IEBACitUZXN0IGZvciA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVk
Rmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgcmVnaW9uTGlzdEFydGljbGUgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxp
c3RBcnRpY2xlLmxlbmd0aCBpcyAyCitQQVNTIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMCkuaWQg
aXMgInJlZ2lvbiIKK1BBU1MgcmVnaW9uTGlzdEFydGljbGUuaXRlbSgxKS5pZCBpcyAicmVnaW9u
MiIKK1BBU1MgcmVnaW9uTGlzdFNwYW4gaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RTcGFu
Lmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RTcGFuLml0ZW0oMCkuaWQgaXMgInJlZ2lvbiIK
K1BBU1MgcmVnaW9uTGlzdFNwYW4yIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0U3BhbjIu
bGVuZ3RoIGlzIDIKK1BBU1MgcmVnaW9uTGlzdFNwYW4zIGlzIG5vbi1udWxsLgorUEFTUyByZWdp
b25MaXN0U3BhbjMubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkuaWQg
aXMgInJlZ2lvbjIiCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZSBpcyBub24tbnVsbC4KK1BBU1Mg
cmVnaW9uTGlzdFRleHROb2RlLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZS5p
dGVtKDApLmlkIGlzICJyZWdpb24yIgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyIGlzIG5vbi1u
dWxsLgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxp
c3RUZXh0Tm9kZTIuaXRlbSgwKS5pZCBpcyAicmVnaW9uMiIKK1BBU1MgcmVnaW9uTGlzdFRleHRO
b2RlMyBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGggaXMgMQor
UEFTUyByZWdpb25MaXN0VGV4dE5vZGUzLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjIiCitQQVNTIHJl
Z2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoIGlzIDIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMi5p
dGVtKDApLmlkIGlzICJyZWdpb24yIgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSku
aWQgaXMgInJlZ2lvbjMiCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCBpcyAxCitQ
QVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjMiCitQQVNTIHJl
Z2lvbkxpc3RQMSBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFAxLmxlbmd0aCBpcyAxCitQ
QVNTIHJlZ2lvbkxpc3RQMS5pdGVtKDApLmlkIGlzICJyZWdpb240IgorUEFTUyByZWdpb25MaXN0
UDIgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RQMi5sZW5ndGggaXMgMQorUEFTUyByZWdp
b25MaXN0UDIuaXRlbSgwKS5pZCBpcyAicmVnaW9uNCIKK1BBU1MgcmVnaW9uTGlzdFAzIGlzIG5v
bi1udWxsLgorUEFTUyByZWdpb25MaXN0UDMubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdFAz
Lml0ZW0oMCkuaWQgaXMgInJlZ2lvbjQiCitQQVNTIHJlZ2lvbkxpc3RQMjIubGVuZ3RoIGlzIDEK
K1BBU1MgcmVnaW9uTGlzdFAyMi5pdGVtKDApLmlkIGlzICJyZWdpb241IgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9y
aXotYnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250
ZW50LW5vZGUtaG9yaXotYnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODNlYTY0MjI5Y2Y5MTMwZjRkZmQ5
N2RlMTQ2NWVmZjUxYWE4YjAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1idC5odG1sCkBAIC0wLDAg
KzEsMTUxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBodG1sIHsgLXdlYmtpdC13cml0aW5n
LW1vZGU6IGhvcml6b250YWwtYnQ7IH0KKyAgICAgICAgICAgIGJvZHkgeyBmb250LWZhbWlseTog
bW9ub3NwYWNlOyB9CisgICAgICAgICAgICAjYXJ0aWNsZSB7IC13ZWJraXQtZmxvdy1pbnRvOiBm
bG93OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHdp
ZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uMiB7IC13ZWJr
aXQtZmxvdy1mcm9tOiBmbG93OyB3aWR0aDogMjUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAg
ICAgICAgI3JlZ2lvbjMgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgd2lkdGg6IDI1MHB4OyBo
ZWlnaHQ6IDUwcHg7IH0KKworICAgICAgICAgICAgI2FydGljbGUyIHsgLXdlYmtpdC1mbG93LWlu
dG86IGZsb3cyOyB9CisgICAgICAgICAgICAjcmVnaW9uNCB7IC13ZWJraXQtZmxvdy1mcm9tOiBm
bG93Mjsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNyZWdpb241
IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOyB3aWR0aDogMjUwcHg7IGhlaWdodDogNTBweDsg
fQorCisgICAgICAgICAgICAubm9SZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogbm9uZTsgfQor
ICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPCEtLSBz
b21lIHRlc3RzIHdpdGggaW5saW5lIGVsZW1lbnRzIC0tPgorICAgICAgICA8ZGl2IGlkPSJhcnRp
Y2xlIj4KKyAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZSI+VGV4dCBpbnNpZGUgc3Bhbi48
L3NwYW4+CisgICAgICAgICAgICBUZXh0IG91dHNpZGUgc3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4u
IFRleHQgb3V0c2lkZSBzcGFuLgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlMiI+VGV4
dCBpbnNpZGUgc3BhbjIuPC9zcGFuPgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlMyI+
VGV4dCBpbnNpZGUgc3BhbjM8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlk
PSJyZWdpb24iPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24yIj48L2Rpdj4KKworICAg
ICAgICA8IS0tIHNvbWUgdGVzdHMgd2l0aCBibG9jayBlbGVtZW50cyAtLT4KKyAgICAgICAgPGRp
diBpZD0iYXJ0aWNsZTIiPgorICAgICAgICAgICAgPHAgaWQ9InAxIj5UZXh0IGluc2lkZSBwYXJh
Z3JhcGggcDEuPC9wPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uNCI+
PC9yZWdpb24+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgNzc3
NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnRO
b2RlIik7CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxv
d0J5TmFtZSgiZmxvdyIpOworCisgICAgICAgICAgICBmdW5jdGlvbiBoaWRlUmVnaW9ucygpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFy
dGljbGUiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRk
ZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKS5z
dHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlZ2lvbjIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMiKS5zdHlsZS52aXNp
YmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlZ2lvbjQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjUiKS5zdHlsZS52aXNpYmlsaXR5ID0g
ImhpZGRlbiI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0QXJ0
aWNsZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYXJ0aWNsZSIpKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9u
TGlzdEFydGljbGUiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RB
cnRpY2xlLmxlbmd0aCIsIDIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApLmlkIiwgInJlZ2lvbiIpOworICAgICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDEpLmlkIiwgInJlZ2lv
bjIiKTsKKworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInNwYW5Ob2RlIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4gPSBuYW1lZEZs
b3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUpOworICAgICAgICAgICAgc2hvdWxk
QmVOb25OdWxsKCJyZWdpb25MaXN0U3BhbiIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVU
bygicmVnaW9uTGlzdFNwYW4ubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZ2lvbkxpc3RTcGFuLml0ZW0oMCkuaWQiLCAicmVnaW9uIik7CisKKyAgICAg
ICAgICAgIHZhciBzcGFuTm9kZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUy
Iik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4yID0gbmFtZWRGbG93LmdldFJlZ2lv
bnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlMik7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwo
InJlZ2lvbkxpc3RTcGFuMiIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9u
TGlzdFNwYW4yLmxlbmd0aCIsIDIpOworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlMyIpOworICAgICAgICAgICAgdmFyIHJlZ2lv
bkxpc3RTcGFuMyA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZTMp
OworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0U3BhbjMiKTsKKyAgICAg
ICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RTcGFuMy5sZW5ndGgiLCAxKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFNwYW4zLml0ZW0oMCku
aWQiLCAicmVnaW9uMiIpOworCisgICAgICAgICAgICB2YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2Rl
LiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiAiKTsKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOworICAg
ICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlD
b250ZW50Tm9kZSh0ZXh0Tm9kZSk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lv
bkxpc3RUZXh0Tm9kZSIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlz
dFRleHROb2RlLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgwKS5pZCIsICJyZWdpb24yIik7CisKKyAgICAgICAg
ICAgIC8vIEFkZCBhbm90aGVyIHRleHQgbm9kZSB0aGF0IHdpbGwgb3ZlcmZsb3cgdGhlIHJlZ2lv
bjIuCisgICAgICAgICAgICB2YXIgdGV4dE5vZGUyID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
IlRleHQgbm9kZTIuIik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0
aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2RlMik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlz
dFRleHROb2RlMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTIp
OworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0VGV4dE5vZGUyIik7Cisg
ICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCIs
IDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0VGV4dE5v
ZGUyLml0ZW0oMCkuaWQiLCAicmVnaW9uMiIpOworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhl
ciB0ZXh0IG5vZGUgdGhhdCBpcyBpbiB0aGUgb3ZlcmZsb3cgb2YgdGhlIGxhc3QgcmVnaW9uLgor
ICAgICAgICAgICAgdmFyIHRleHROb2RlMyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0
IG5vZGUzLiIpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUi
KS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTMpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0
Tm9kZTMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUzKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdFRleHROb2RlMyIpOworICAgICAg
ICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgiLCAxKTsK
KyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFRleHROb2RlMy5p
dGVtKDApLmlkIiwgInJlZ2lvbjIiKTsKKworICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIgcmVn
aW9uIHRvIHRha2UgdGhlIG92ZXJmbG93aW5nIGVsZW1lbnRzIGZyb20gc2Vjb25kIHJlZ2lvbi4K
KyAgICAgICAgICAgIHZhciByZWdpb24zID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgICAgICAgICAgICByZWdpb24zLmlkID0gInJlZ2lvbjMiOworICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb24zKTsKKworICAgICAgICAgICAgdmFyIHJlZ2lvbkxp
c3RUZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUp
OworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFRleHROb2RlMi5sZW5n
dGgiLCAyKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFRl
eHROb2RlMi5pdGVtKDApLmlkIiwgInJlZ2lvbjIiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygicmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDEpLmlkIiwgInJlZ2lvbjMiKTsK
KworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTMyID0gbmFtZWRGbG93LmdldFJl
Z2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlMyk7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0
ZVRvKCJyZWdpb25MaXN0VGV4dE5vZGUzMi5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFRleHROb2RlMzIuaXRlbSgwKS5pZCIsICJyZWdp
b24zIik7CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cyID0gZG9jdW1lbnQud2Via2l0R2V0
Rmxvd0J5TmFtZSgiZmxvdzIiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDEgPSBuYW1l
ZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJw
MSIpKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdFAxIik7CisgICAg
ICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0UDEubGVuZ3RoIiwgMSk7CisgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RQMS5pdGVtKDApLmlkIiwg
InJlZ2lvbjQiKTsKKworICAgICAgICAgICAgdmFyIHAyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgicCIpOworICAgICAgICAgICAgcDIuaWQgPSAicDIiOworICAgICAgICAgICAgcDIuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMi4i
KSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5hcHBl
bmRDaGlsZChwMik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAyID0gbmFtZWRGbG93Mi5n
ZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMik7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwo
InJlZ2lvbkxpc3RQMiIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlz
dFAyLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdp
b25MaXN0UDIuaXRlbSgwKS5pZCIsICJyZWdpb240Iik7CisgCisgICAgICAgICAgICAvLyBhZGQg
YW5vdGhlciBlbGVtZW50IHAsIGluIHRoZSBvdmVyZmxvdyBwYXJ0IG9mIHRoZSByZWdpb240Cisg
ICAgICAgICAgICB2YXIgcDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CisgICAgICAg
ICAgICBwMy5pZCA9ICJwMyI7CisgICAgICAgICAgICBwMy5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAzLiIpKTsKKyAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxkKHAzKTsKKyAg
ICAgICAgICAgIHZhciByZWdpb25MaXN0UDMgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRl
bnROb2RlKHAzKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdFAzIik7
CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0UDMubGVuZ3RoIiwgMSk7
CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RQMy5pdGVtKDAp
LmlkIiwgInJlZ2lvbjQiKTsKKworICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIgcmVnaW9uIHRv
IGZsb3cyLCBwMiBhbmQgcDMgZ28gdG8gcmVnaW9uNQorICAgICAgICAgICAgdmFyIHJlZ2lvbjUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJlZ2lvbjUuaWQg
PSAicmVnaW9uNSI7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlZ2lv
bjUpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAyMiA9IG5hbWVkRmxvdzIuZ2V0UmVn
aW9uc0J5Q29udGVudE5vZGUocDIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVn
aW9uTGlzdFAyMi5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVnaW9uTGlzdFAyMi5pdGVtKDApLmlkIiwgInJlZ2lvbjUiKTsKKworICAgICAgICAgICAg
aGlkZVJlZ2lvbnMoKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQt
cmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotdGItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei10Yi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE3YzllZDQ3Y2FkYTU1YmYxYjRkMDc1ZjY2NDc4NTJhNGE0
ODA3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVn
aW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotdGItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDkg
QEAKK1Rlc3QgZm9yIDc3NzQ2OiBbQ1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRS
ZWdpb25zQnlDb250ZW50Tm9kZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyByZWdpb25MaXN0QXJ0aWNsZSAgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RBcnRpY2xl
Lmxlbmd0aCBpcyAyCitQQVNTIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMCkuaWQgaXMgInJlZ2lv
biIKK1BBU1MgcmVnaW9uTGlzdEFydGljbGUuaXRlbSgxKS5pZCBpcyAicmVnaW9uMiIKK1BBU1Mg
cmVnaW9uTGlzdFNwYW4gaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RTcGFuLmxlbmd0aCBp
cyAxCitQQVNTIHJlZ2lvbkxpc3RTcGFuLml0ZW0oMCkuaWQgaXMgInJlZ2lvbiIKK1BBU1MgcmVn
aW9uTGlzdFNwYW4yIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0U3BhbjIubGVuZ3RoIGlz
IDIKK1BBU1MgcmVnaW9uTGlzdFNwYW4zIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0U3Bh
bjMubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkuaWQgaXMgInJlZ2lv
bjIiCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZSBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlz
dFRleHROb2RlLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZS5pdGVtKDApLmlk
IGlzICJyZWdpb24yIgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyIGlzIG5vbi1udWxsLgorUEFT
UyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9k
ZTIuaXRlbSgwKS5pZCBpcyAicmVnaW9uMiIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMyBpcyBu
b24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGggaXMgMQorUEFTUyByZWdp
b25MaXN0VGV4dE5vZGUzLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjIiCitQQVNTIHJlZ2lvbkxpc3RU
ZXh0Tm9kZTIubGVuZ3RoIGlzIDIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApLmlk
IGlzICJyZWdpb24yIgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkuaWQgaXMgInJl
Z2lvbjMiCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lv
bkxpc3RUZXh0Tm9kZTMyLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjMiCitQQVNTIHJlZ2lvbkxpc3RQ
MSBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFAxLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lv
bkxpc3RQMS5pdGVtKDApLmlkIGlzICJyZWdpb240IgorUEFTUyByZWdpb25MaXN0UDIgaXMgbm9u
LW51bGwuCitQQVNTIHJlZ2lvbkxpc3RQMi5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0UDIu
aXRlbSgwKS5pZCBpcyAicmVnaW9uNCIKK1BBU1MgcmVnaW9uTGlzdFAzIGlzIG5vbi1udWxsLgor
UEFTUyByZWdpb25MaXN0UDMubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdFAzLml0ZW0oMCku
aWQgaXMgInJlZ2lvbjQiCitQQVNTIHJlZ2lvbkxpc3RQMjIubGVuZ3RoIGlzIDEKK1BBU1MgcmVn
aW9uTGlzdFAyMi5pdGVtKDApLmlkIGlzICJyZWdpb241IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotdGIuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUt
aG9yaXotdGIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmExNTIyNzZmY2M5N2U2MGU1Yjk1MzVmOGUwNWRm
YjVkMThhMGIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dl
dC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei10Yi5odG1sCkBAIC0wLDAgKzEsMTU0IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c3R5bGU+CisgICAgICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsg
fQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorICAg
ICAgICAgICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB3aWR0aDogMjUwcHg7
IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAgI3JlZ2lvbjIgeyAtd2Via2l0LWZsb3ctZnJv
bTogZmxvdzsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNyZWdp
b24zIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4
OyB9CisKKyAgICAgICAgICAgICNhcnRpY2xlMiB7IC13ZWJraXQtZmxvdy1pbnRvOiBmbG93Mjsg
fQorICAgICAgICAgICAgI3JlZ2lvbjQgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7IHdpZHRo
OiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uNSB7IC13ZWJraXQt
Zmxvdy1mcm9tOiBmbG93Mjsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKworICAgICAg
ICAgICAgLm5vUmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IG5vbmU7IH0KKyAgICAgICAgPC9z
dHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDwhLS0gc29tZSB0ZXN0cyB3
aXRoIGlubGluZSBlbGVtZW50cyAtLT4KKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZSI+CisgICAg
ICAgICAgICA8c3BhbiBpZD0ic3Bhbk5vZGUiPlRleHQgaW5zaWRlIHNwYW4uPC9zcGFuPgorICAg
ICAgICAgICAgVGV4dCBvdXRzaWRlIHNwYW4uIFRleHQgb3V0c2lkZSBzcGFuLiBUZXh0IG91dHNp
ZGUgc3Bhbi4KKyAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZTIiPlRleHQgaW5zaWRlIHNw
YW4yLjwvc3Bhbj4KKyAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZTMiPlRleHQgaW5zaWRl
IHNwYW4zPC9zcGFuPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIj48
L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uMiI+PC9kaXY+CisKKyAgICAgICAgPCEtLSBz
b21lIHRlc3RzIHdpdGggYmxvY2sgZWxlbWVudHMgLS0+CisgICAgICAgIDxkaXYgaWQ9ImFydGlj
bGUyIj4KKyAgICAgICAgICAgIDxwIGlkPSJwMSI+VGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAxLjwv
cD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjQiPjwvcmVnaW9uPgor
CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciA3Nzc0NjogW0NT
U1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUiKTsK
KworICAgICAgICAgICAgZnVuY3Rpb24gaGlkZVJlZ2lvbnMoKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuc3R5bGUudmlz
aWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJhcnRpY2xlMiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIikuc3R5bGUudmlzaWJpbGl0eSA9
ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdp
b24yIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24zIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4i
OworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240Iikuc3R5
bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZWdpb241Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICB2YXIgbmFtZWRGbG93ID0gZG9jdW1lbnQud2Via2l0R2V0
Rmxvd0J5TmFtZSgiZmxvdyIpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdEFydGljbGUg
PSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImFydGljbGUiKSk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RB
cnRpY2xlICIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdEFydGlj
bGUubGVuZ3RoIiwgMik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lv
bkxpc3RBcnRpY2xlLml0ZW0oMCkuaWQiLCAicmVnaW9uIik7CisgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSkuaWQiLCAicmVnaW9uMiIp
OworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c3Bhbk5vZGUiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbiA9IG5hbWVkRmxvdy5n
ZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZSk7CisgICAgICAgICAgICBzaG91bGRCZU5v
bk51bGwoInJlZ2lvbkxpc3RTcGFuIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJy
ZWdpb25MaXN0U3Bhbi5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVnaW9uTGlzdFNwYW4uaXRlbSgwKS5pZCIsICJyZWdpb24iKTsKKworICAgICAgICAg
ICAgdmFyIHNwYW5Ob2RlMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZTIiKTsK
KyAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbjIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5
Q29udGVudE5vZGUoc3Bhbk5vZGUyKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVn
aW9uTGlzdFNwYW4yIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0
U3BhbjIubGVuZ3RoIiwgMik7CisKKyAgICAgICAgICAgIHZhciBzcGFuTm9kZTMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUzIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlz
dFNwYW4zID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlMyk7Cisg
ICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RTcGFuMyIpOworICAgICAgICAg
ICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFNwYW4zLmxlbmd0aCIsIDEpOworICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0U3BhbjMuaXRlbSgwKS5pZCIs
ICJyZWdpb24yIik7CisKKyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRl
eHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuICIpOworICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7CisgICAgICAg
ICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRl
bnROb2RlKHRleHROb2RlKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlz
dFRleHROb2RlIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0VGV4
dE5vZGUubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
Z2lvbkxpc3RUZXh0Tm9kZS5pdGVtKDApLmlkIiwgInJlZ2lvbjIiKTsKKworICAgICAgICAgICAg
Ly8gQWRkIGFub3RoZXIgdGV4dCBub2RlIHRoYXQgd2lsbCBvdmVyZmxvdyB0aGUgcmVnaW9uMi4K
KyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZTIgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4
dCBub2RlMi4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xl
IikuYXBwZW5kQ2hpbGQodGV4dE5vZGUyKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4
dE5vZGUyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlMik7Cisg
ICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RUZXh0Tm9kZTIiKTsKKyAgICAg
ICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoIiwgMSk7
CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9kZTIu
aXRlbSgwKS5pZCIsICJyZWdpb24yIik7CisKKyAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHRl
eHQgbm9kZSB0aGF0IGlzIGluIHRoZSBvdmVyZmxvdyBvZiB0aGUgbGFzdCByZWdpb24uCisgICAg
ICAgICAgICB2YXIgdGV4dE5vZGUzID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9k
ZTMuIik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFw
cGVuZENoaWxkKHRleHROb2RlMyk7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2Rl
MyA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTMpOworICAgICAg
ICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0VGV4dE5vZGUzIik7CisgICAgICAgICAg
ICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0VGV4dE5vZGUzLmxlbmd0aCIsIDEpOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0VGV4dE5vZGUzLml0ZW0o
MCkuaWQiLCAicmVnaW9uMiIpOworCisgICAgICAgICAgICAvLyBBZGQgYW5vdGhlciByZWdpb24g
dG8gdGFrZSB0aGUgb3ZlcmZsb3dpbmcgZWxlbWVudHMgZnJvbSBzZWNvbmQgcmVnaW9uLgorICAg
ICAgICAgICAgdmFyIHJlZ2lvbjMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICAgICAgICAgIHJlZ2lvbjMuaWQgPSAicmVnaW9uMyI7CisgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKHJlZ2lvbjMpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRl
eHROb2RlMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZSk7Cisg
ICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCIs
IDIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0VGV4dE5v
ZGUyLml0ZW0oMCkuaWQiLCAicmVnaW9uMiIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkuaWQiLCAicmVnaW9uMyIpOworCisg
ICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMzIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9u
c0J5Q29udGVudE5vZGUodGV4dE5vZGUzKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8o
InJlZ2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0VGV4dE5vZGUzMi5pdGVtKDApLmlkIiwgInJlZ2lvbjMi
KTsKKworICAgICAgICAgICAgdmFyIG5hbWVkRmxvdzIgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93
QnlOYW1lKCJmbG93MiIpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMSA9IG5hbWVkRmxv
dzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAxIikp
OworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0UDEiKTsKKyAgICAgICAg
ICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RQMS5sZW5ndGgiLCAxKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFAxLml0ZW0oMCkuaWQiLCAicmVn
aW9uNCIpOworCisgICAgICAgICAgICB2YXIgcDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJw
Iik7CisgICAgICAgICAgICBwMi5pZCA9ICJwMiI7CisgICAgICAgICAgICBwMi5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAyLiIpKTsK
KyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENo
aWxkKHAyKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDIgPSBuYW1lZEZsb3cyLmdldFJl
Z2lvbnNCeUNvbnRlbnROb2RlKHAyKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVn
aW9uTGlzdFAyIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0UDIu
bGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxp
c3RQMi5pdGVtKDApLmlkIiwgInJlZ2lvbjQiKTsKKyAKKyAgICAgICAgICAgIC8vIGFkZCBhbm90
aGVyIGVsZW1lbnQgcCwgaW4gdGhlIG92ZXJmbG93IHBhcnQgb2YgdGhlIHJlZ2lvbjQKKyAgICAg
ICAgICAgIHZhciBwMyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAgICAgICAgICAg
IHAzLmlkID0gInAzIjsKKyAgICAgICAgICAgIHAzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJUZXh0IGluc2lkZSBwYXJhZ3JhcGggcDMuIikpOworICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuYXBwZW5kQ2hpbGQocDMpOworICAgICAg
ICAgICAgdmFyIHJlZ2lvbkxpc3RQMyA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5v
ZGUocDMpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0UDMiKTsKKyAg
ICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RQMy5sZW5ndGgiLCAxKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFAzLml0ZW0oMCkuaWQi
LCAicmVnaW9uNCIpOworCisgICAgICAgICAgICAvLyBhZGQgYW5vdGhlciByZWdpb24gdG8gZmxv
dzIsIHAyIGFuZCBwMyBnbyB0byByZWdpb241CisgICAgICAgICAgICB2YXIgcmVnaW9uNSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgcmVnaW9uNS5pZCA9ICJy
ZWdpb241IjsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVnaW9uNSk7
CisKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDIyID0gbmFtZWRGbG93Mi5nZXRSZWdpb25z
QnlDb250ZW50Tm9kZShwMik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25M
aXN0UDIyLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWdpb25MaXN0UDIyLml0ZW0oMCkuaWQiLCAicmVnaW9uNSIpOworCisgICAgICAgICAgICBoaWRl
UmVnaW9ucygpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5
PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJl
Z2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtbHItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NGU5YTk1YjRjYjZhZjNlZjM5YWE0MGI0YjQyYzcwMGU4NTlkOTZl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25z
LWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ5IEBACitU
ZXN0IGZvciA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9u
c0J5Q29udGVudE5vZGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVn
aW9uTGlzdEFydGljbGUgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0
aCBpcyAyCitQQVNTIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMCkuaWQgaXMgInJlZ2lvbiIKK1BB
U1MgcmVnaW9uTGlzdEFydGljbGUuaXRlbSgxKS5pZCBpcyAicmVnaW9uMiIKK1BBU1MgcmVnaW9u
TGlzdFNwYW4gaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RTcGFuLmxlbmd0aCBpcyAxCitQ
QVNTIHJlZ2lvbkxpc3RTcGFuLml0ZW0oMCkuaWQgaXMgInJlZ2lvbiIKK1BBU1MgcmVnaW9uTGlz
dFNwYW4yIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0U3BhbjIubGVuZ3RoIGlzIDIKK1BB
U1MgcmVnaW9uTGlzdFNwYW4zIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0U3BhbjMubGVu
Z3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjIiCitQ
QVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZSBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFRleHRO
b2RlLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZS5pdGVtKDApLmlkIGlzICJy
ZWdpb24yIgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyIGlzIG5vbi1udWxsLgorUEFTUyByZWdp
b25MaXN0VGV4dE5vZGUyLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRl
bSgwKS5pZCBpcyAicmVnaW9uMiIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMyBpcyBub24tbnVs
bC4KK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0
VGV4dE5vZGUzLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjIiCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9k
ZTIubGVuZ3RoIGlzIDIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApLmlkIGlzICJy
ZWdpb24yIgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkuaWQgaXMgInJlZ2lvbjMi
CitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RU
ZXh0Tm9kZTMyLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjMiCitQQVNTIHJlZ2lvbkxpc3RQMSBpcyBu
b24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFAxLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RQ
MS5pdGVtKDApLmlkIGlzICJyZWdpb240IgorUEFTUyByZWdpb25MaXN0UDIgaXMgbm9uLW51bGwu
CitQQVNTIHJlZ2lvbkxpc3RQMi5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0UDIuaXRlbSgw
KS5pZCBpcyAicmVnaW9uNCIKK1BBU1MgcmVnaW9uTGlzdFAzIGlzIG5vbi1udWxsLgorUEFTUyBy
ZWdpb25MaXN0UDMubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdFAzLml0ZW0oMCkuaWQgaXMg
InJlZ2lvbjQiCitQQVNTIHJlZ2lvbkxpc3RQMjIubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlz
dFAyMi5pdGVtKDApLmlkIGlzICJyZWdpb241IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1sci5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmU2NmY0YzU4ZmFhNGI3MzUwNDk0ZDBjZjViNTA4ZDg1Y2Q4ZWMw
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9u
cy1ieS1jb250ZW50LW5vZGUtdmVydC1sci5odG1sCkBAIC0wLDAgKzEsMTU0IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgICAgICA8c3R5
bGU+CisgICAgICAgICAgICBodG1sIHsgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxy
OyB9CisgICAgICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgfQorICAgICAg
ICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorICAgICAgICAgICAg
LnJlZ2lvbkJveCB7ICBoZWlnaHQ6IDI1MHB4OyB3aWR0aDogNTBweDsgfQorICAgICAgICAgICAg
I3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB9CisgICAgICAgICAgICAjcmVnaW9u
MiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB9CisgICAgICAgICAgICAjcmVnaW9uMyB7IC13
ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB9CisKKyAgICAgICAgICAgICNhcnRpY2xlMiB7IC13ZWJr
aXQtZmxvdy1pbnRvOiBmbG93MjsgfQorICAgICAgICAgICAgI3JlZ2lvbjQgeyAtd2Via2l0LWZs
b3ctZnJvbTogZmxvdzI7IH0KKyAgICAgICAgICAgICNyZWdpb241IHsgLXdlYmtpdC1mbG93LWZy
b206IGZsb3cyOyB9CisKKyAgICAgICAgICAgIC5ub1JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9t
OiBub25lOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAg
ICAgICA8IS0tIHNvbWUgdGVzdHMgd2l0aCBpbmxpbmUgZWxlbWVudHMgLS0+CisgICAgICAgIDxk
aXYgaWQ9ImFydGljbGUiPgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlIj5UZXh0IGlu
c2lkZSBzcGFuLjwvc3Bhbj4KKyAgICAgICAgICAgIFRleHQgb3V0c2lkZSBzcGFuLiBUZXh0IG91
dHNpZGUgc3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4uCisgICAgICAgICAgICA8c3BhbiBpZD0ic3Bh
bk5vZGUyIj5UZXh0IGluc2lkZSBzcGFuMi4gVGV4dC48L3NwYW4+CisgICAgICAgICAgICA8c3Bh
biBpZD0ic3Bhbk5vZGUzIj5UZXh0IGluc2lkZSBzcGFuMzwvc3Bhbj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9InJlZ2lvbkJveCI+PC9kaXY+CisgICAg
ICAgIDxkaXYgaWQ9InJlZ2lvbjIiIGNsYXNzPSJyZWdpb25Cb3giPjwvZGl2PgorCisgICAgICAg
IDwhLS0gc29tZSB0ZXN0cyB3aXRoIGJsb2NrIGVsZW1lbnRzIC0tPgorICAgICAgICA8ZGl2IGlk
PSJhcnRpY2xlMiI+CisgICAgICAgICAgICA8cCBpZD0icDEiPlRleHQgaW5zaWRlIHBhcmFncmFw
aCBwMS48L3A+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb240IiBjbGFz
cz0icmVnaW9uQm94Ij48L3JlZ2lvbj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9u
KCJUZXN0IGZvciA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVn
aW9uc0J5Q29udGVudE5vZGUiKTsKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cgPSBkb2N1bWVu
dC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93Iik7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGhp
ZGVSZWdpb25zKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiYXJ0aWNsZSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5zdHlsZS52aXNp
YmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlZ2lvbiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLnN0eWxlLnZpc2liaWxpdHkgPSAi
aGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9u
MyIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNSIpLnN0eWxl
LnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFy
IHJlZ2lvbkxpc3RBcnRpY2xlID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikpOworICAgICAgICAgICAgc2hvdWxkQmVO
b25OdWxsKCJyZWdpb25MaXN0QXJ0aWNsZSIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVU
bygicmVnaW9uTGlzdEFydGljbGUubGVuZ3RoIiwgMik7CisgICAgICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMCkuaWQiLCAicmVnaW9uIik7Cisg
ICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0o
MSkuaWQiLCAicmVnaW9uMiIpOworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0
U3BhbiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZSk7CisgICAg
ICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RTcGFuIik7CisgICAgICAgICAgICBz
aG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0U3Bhbi5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFNwYW4uaXRlbSgwKS5pZCIsICJyZWdp
b24iKTsKKworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlMiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzcGFuTm9kZTIiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbjIgPSBuYW1l
ZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUyKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdFNwYW4yIik7CisgICAgICAgICAgICBzaG91bGRFdmFs
dWF0ZVRvKCJyZWdpb25MaXN0U3BhbjIubGVuZ3RoIiwgMik7CisKKyAgICAgICAgICAgIHZhciBz
cGFuTm9kZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUzIik7CisgICAgICAg
ICAgICB2YXIgcmVnaW9uTGlzdFNwYW4zID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnRO
b2RlKHNwYW5Ob2RlMyk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RT
cGFuMyIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFNwYW4zLmxl
bmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0
U3BhbjMuaXRlbSgwKS5pZCIsICJyZWdpb24yIik7CisKKyAgICAgICAgICAgIHZhciB0ZXh0Tm9k
ZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBu
b2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuICIpOworICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0
ZXh0Tm9kZSk7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlID0gbmFtZWRGbG93
LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlKTsKKyAgICAgICAgICAgIHNob3VsZEJl
Tm9uTnVsbCgicmVnaW9uTGlzdFRleHROb2RlIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0
ZVRvKCJyZWdpb25MaXN0VGV4dE5vZGUubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9kZS5pdGVtKDApLmlkIiwgInJlZ2lvbjIi
KTsKKworICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIgdGV4dCBub2RlIHRoYXQgd2lsbCBvdmVy
ZmxvdyB0aGUgcmVnaW9uMi4KKyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZTIgPSBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlMi4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUyKTsKKyAgICAgICAgICAg
IHZhciByZWdpb25MaXN0VGV4dE5vZGUyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnRO
b2RlKHRleHROb2RlMik7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RU
ZXh0Tm9kZTIiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RUZXh0
Tm9kZTIubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
Z2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKS5pZCIsICJyZWdpb24yIik7CisKKyAgICAgICAgICAg
IC8vIEFkZCBhbm90aGVyIHRleHQgbm9kZSB0aGF0IGlzIGluIHRoZSBvdmVyZmxvdyBvZiB0aGUg
bGFzdCByZWdpb24uCisgICAgICAgICAgICB2YXIgdGV4dE5vZGUzID0gZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIlRleHQgbm9kZTMuIik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2RlMyk7CisgICAgICAgICAgICB2YXIg
cmVnaW9uTGlzdFRleHROb2RlMyA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0
ZXh0Tm9kZTMpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0VGV4dE5v
ZGUzIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0VGV4dE5vZGUz
Lmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25M
aXN0VGV4dE5vZGUzLml0ZW0oMCkuaWQiLCAicmVnaW9uMiIpOworCisgICAgICAgICAgICAvLyBB
ZGQgYW5vdGhlciByZWdpb24gdG8gdGFrZSB0aGUgb3ZlcmZsb3dpbmcgZWxlbWVudHMgZnJvbSBz
ZWNvbmQgcmVnaW9uLgorICAgICAgICAgICAgdmFyIHJlZ2lvbjMgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJlZ2lvbjMuaWQgPSAicmVnaW9uMyI7CisgICAg
ICAgICAgICByZWdpb24zLmNsYXNzTmFtZSA9ICJyZWdpb25Cb3giOworICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb24zKTsKKworICAgICAgICAgICAgdmFyIHJlZ2lv
bkxpc3RUZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5v
ZGUpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFRleHROb2RlMi5s
ZW5ndGgiLCAyKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlz
dFRleHROb2RlMi5pdGVtKDApLmlkIiwgInJlZ2lvbjIiKTsKKyAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDEpLmlkIiwgInJlZ2lvbjMi
KTsKKworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTMyID0gbmFtZWRGbG93Lmdl
dFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlMyk7CisgICAgICAgICAgICBzaG91bGRFdmFs
dWF0ZVRvKCJyZWdpb25MaXN0VGV4dE5vZGUzMi5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFRleHROb2RlMzIuaXRlbSgwKS5pZCIsICJy
ZWdpb24zIik7CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cyID0gZG9jdW1lbnQud2Via2l0
R2V0Rmxvd0J5TmFtZSgiZmxvdzIiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDEgPSBu
YW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJwMSIpKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdFAxIik7Cisg
ICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0UDEubGVuZ3RoIiwgMSk7Cisg
ICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RQMS5pdGVtKDApLmlk
IiwgInJlZ2lvbjQiKTsKKworICAgICAgICAgICAgdmFyIHAyID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgicCIpOworICAgICAgICAgICAgcDIuaWQgPSAicDIiOworICAgICAgICAgICAgcDIuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgaW5zaWRlIHBhcmFncmFwaCBw
Mi4iKSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5h
cHBlbmRDaGlsZChwMik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAyID0gbmFtZWRGbG93
Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMik7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51
bGwoInJlZ2lvbkxpc3RQMiIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9u
TGlzdFAyLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWdpb25MaXN0UDIuaXRlbSgwKS5pZCIsICJyZWdpb240Iik7CisgCisgICAgICAgICAgICAvLyBh
ZGQgYW5vdGhlciBlbGVtZW50IHAsIGluIHRoZSBvdmVyZmxvdyBwYXJ0IG9mIHRoZSByZWdpb240
CisgICAgICAgICAgICB2YXIgcDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CisgICAg
ICAgICAgICBwMy5pZCA9ICJwMyI7CisgICAgICAgICAgICBwMy5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAzLiIpKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxkKHAzKTsK
KyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDMgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlKHAzKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdFAz
Iik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0UDMubGVuZ3RoIiwg
MSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RQMy5pdGVt
KDApLmlkIiwgInJlZ2lvbjQiKTsKKworICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIgcmVnaW9u
IHRvIGZsb3cyLCBwMiBhbmQgcDMgZ28gdG8gcmVnaW9uNQorICAgICAgICAgICAgdmFyIHJlZ2lv
bjUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJlZ2lvbjUu
aWQgPSAicmVnaW9uNSI7CisgICAgICAgICAgICByZWdpb241LmNsYXNzTmFtZSA9ICJyZWdpb25C
b3giOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb241KTsKKwor
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMjIgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlKHAyKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RQ
MjIubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lv
bkxpc3RQMjIuaXRlbSgwKS5pZCIsICJyZWdpb241Iik7CisKKyAgICAgICAgICAgIGhpZGVSZWdp
b25zKCk7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMt
YnktY29udGVudC1ub2RlLXZlcnQtcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LXJsLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NGU5YTk1YjRjYjZhZjNlZjM5YWE0MGI0YjQyYzcwMGU4NTlkOTZlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNv
bnRlbnQtbm9kZS12ZXJ0LXJsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ5IEBACitUZXN0IGZv
ciA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29u
dGVudE5vZGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVnaW9uTGlz
dEFydGljbGUgaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCBpcyAy
CitQQVNTIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMCkuaWQgaXMgInJlZ2lvbiIKK1BBU1MgcmVn
aW9uTGlzdEFydGljbGUuaXRlbSgxKS5pZCBpcyAicmVnaW9uMiIKK1BBU1MgcmVnaW9uTGlzdFNw
YW4gaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3RTcGFuLmxlbmd0aCBpcyAxCitQQVNTIHJl
Z2lvbkxpc3RTcGFuLml0ZW0oMCkuaWQgaXMgInJlZ2lvbiIKK1BBU1MgcmVnaW9uTGlzdFNwYW4y
IGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0U3BhbjIubGVuZ3RoIGlzIDIKK1BBU1MgcmVn
aW9uTGlzdFNwYW4zIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0U3BhbjMubGVuZ3RoIGlz
IDEKK1BBU1MgcmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjIiCitQQVNTIHJl
Z2lvbkxpc3RUZXh0Tm9kZSBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlLmxl
bmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZS5pdGVtKDApLmlkIGlzICJyZWdpb24y
IgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25MaXN0
VGV4dE5vZGUyLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKS5p
ZCBpcyAicmVnaW9uMiIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMyBpcyBub24tbnVsbC4KK1BB
U1MgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0VGV4dE5v
ZGUzLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjIiCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVu
Z3RoIGlzIDIKK1BBU1MgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApLmlkIGlzICJyZWdpb24y
IgorUEFTUyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkuaWQgaXMgInJlZ2lvbjMiCitQQVNT
IHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RUZXh0Tm9k
ZTMyLml0ZW0oMCkuaWQgaXMgInJlZ2lvbjMiCitQQVNTIHJlZ2lvbkxpc3RQMSBpcyBub24tbnVs
bC4KK1BBU1MgcmVnaW9uTGlzdFAxLmxlbmd0aCBpcyAxCitQQVNTIHJlZ2lvbkxpc3RQMS5pdGVt
KDApLmlkIGlzICJyZWdpb240IgorUEFTUyByZWdpb25MaXN0UDIgaXMgbm9uLW51bGwuCitQQVNT
IHJlZ2lvbkxpc3RQMi5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0UDIuaXRlbSgwKS5pZCBp
cyAicmVnaW9uNCIKK1BBU1MgcmVnaW9uTGlzdFAzIGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25M
aXN0UDMubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdFAzLml0ZW0oMCkuaWQgaXMgInJlZ2lv
bjQiCitQQVNTIHJlZ2lvbkxpc3RQMjIubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdFAyMi5p
dGVtKDApLmlkIGlzICJyZWdpb241IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1ybC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LXJsLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmYyZjNmZDY0ODBhNWVhNTQxNGI4Y2EzNWE5NDgyMjQyNWM5ZjFlMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1j
b250ZW50LW5vZGUtdmVydC1ybC5odG1sCkBAIC0wLDAgKzEsMTU0IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+Cisg
ICAgICAgICAgICBodG1sIHsgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyB9Cisg
ICAgICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgfQorICAgICAgICAgICAg
I2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorICAgICAgICAgICAgLnJlZ2lv
bkJveCB7ICBoZWlnaHQ6IDI1MHB4OyB3aWR0aDogNTBweDsgfQorICAgICAgICAgICAgI3JlZ2lv
biB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB9CisgICAgICAgICAgICAjcmVnaW9uMiB7IC13
ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB9CisgICAgICAgICAgICAjcmVnaW9uMyB7IC13ZWJraXQt
Zmxvdy1mcm9tOiBmbG93OyB9CisKKyAgICAgICAgICAgICNhcnRpY2xlMiB7IC13ZWJraXQtZmxv
dy1pbnRvOiBmbG93MjsgfQorICAgICAgICAgICAgI3JlZ2lvbjQgeyAtd2Via2l0LWZsb3ctZnJv
bTogZmxvdzI7IH0KKyAgICAgICAgICAgICNyZWdpb241IHsgLXdlYmtpdC1mbG93LWZyb206IGZs
b3cyOyB9CisKKyAgICAgICAgICAgIC5ub1JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBub25l
OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8
IS0tIHNvbWUgdGVzdHMgd2l0aCBpbmxpbmUgZWxlbWVudHMgLS0+CisgICAgICAgIDxkaXYgaWQ9
ImFydGljbGUiPgorICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2RlIj5UZXh0IGluc2lkZSBz
cGFuLjwvc3Bhbj4KKyAgICAgICAgICAgIFRleHQgb3V0c2lkZSBzcGFuLiBUZXh0IG91dHNpZGUg
c3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4uCisgICAgICAgICAgICA8c3BhbiBpZD0ic3Bhbk5vZGUy
Ij5UZXh0IGluc2lkZSBzcGFuMi4gVGV4dC48L3NwYW4+CisgICAgICAgICAgICA8c3BhbiBpZD0i
c3Bhbk5vZGUzIj5UZXh0IGluc2lkZSBzcGFuMzwvc3Bhbj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9InJlZ2lvbkJveCI+PC9kaXY+CisgICAgICAgIDxk
aXYgaWQ9InJlZ2lvbjIiIGNsYXNzPSJyZWdpb25Cb3giPjwvZGl2PgorCisgICAgICAgIDwhLS0g
c29tZSB0ZXN0cyB3aXRoIGJsb2NrIGVsZW1lbnRzIC0tPgorICAgICAgICA8ZGl2IGlkPSJhcnRp
Y2xlMiI+CisgICAgICAgICAgICA8cCBpZD0icDEiPlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMS48
L3A+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb240IiBjbGFzcz0icmVn
aW9uQm94Ij48L3JlZ2lvbj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0
IGZvciA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5
Q29udGVudE5vZGUiKTsKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cgPSBkb2N1bWVudC53ZWJr
aXRHZXRGbG93QnlOYW1lKCJmbG93Iik7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGhpZGVSZWdp
b25zKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiYXJ0aWNsZSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5zdHlsZS52aXNpYmlsaXR5
ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
Z2lvbiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVu
IjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMyIpLnN0
eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVnaW9uNCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNSIpLnN0eWxlLnZpc2li
aWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHJlZ2lv
bkxpc3RBcnRpY2xlID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxs
KCJyZWdpb25MaXN0QXJ0aWNsZSIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVn
aW9uTGlzdEFydGljbGUubGVuZ3RoIiwgMik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMCkuaWQiLCAicmVnaW9uIik7CisgICAgICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSkuaWQi
LCAicmVnaW9uMiIpOworCisgICAgICAgICAgICB2YXIgc3Bhbk5vZGUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3Bhbk5vZGUiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbiA9
IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShzcGFuTm9kZSk7CisgICAgICAgICAg
ICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RTcGFuIik7CisgICAgICAgICAgICBzaG91bGRF
dmFsdWF0ZVRvKCJyZWdpb25MaXN0U3Bhbi5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFNwYW4uaXRlbSgwKS5pZCIsICJyZWdpb24iKTsK
KworICAgICAgICAgICAgdmFyIHNwYW5Ob2RlMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
cGFuTm9kZTIiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbjIgPSBuYW1lZEZsb3cu
Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUyKTsKKyAgICAgICAgICAgIHNob3VsZEJl
Tm9uTnVsbCgicmVnaW9uTGlzdFNwYW4yIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRv
KCJyZWdpb25MaXN0U3BhbjIubGVuZ3RoIiwgMik7CisKKyAgICAgICAgICAgIHZhciBzcGFuTm9k
ZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUzIik7CisgICAgICAgICAgICB2
YXIgcmVnaW9uTGlzdFNwYW4zID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNw
YW5Ob2RlMyk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RTcGFuMyIp
OworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFNwYW4zLmxlbmd0aCIs
IDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0U3BhbjMu
aXRlbSgwKS5pZCIsICJyZWdpb24yIik7CisKKyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBU
ZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuICIpOworICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9k
ZSk7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlID0gbmFtZWRGbG93LmdldFJl
Z2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVs
bCgicmVnaW9uTGlzdFRleHROb2RlIik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJy
ZWdpb25MaXN0VGV4dE5vZGUubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZ2lvbkxpc3RUZXh0Tm9kZS5pdGVtKDApLmlkIiwgInJlZ2lvbjIiKTsKKwor
ICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIgdGV4dCBub2RlIHRoYXQgd2lsbCBvdmVyZmxvdyB0
aGUgcmVnaW9uMi4KKyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZTIgPSBkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgiVGV4dCBub2RlMi4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUyKTsKKyAgICAgICAgICAgIHZhciBy
ZWdpb25MaXN0VGV4dE5vZGUyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRl
eHROb2RlMik7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lvbkxpc3RUZXh0Tm9k
ZTIiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RUZXh0Tm9kZTIu
bGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxp
c3RUZXh0Tm9kZTIuaXRlbSgwKS5pZCIsICJyZWdpb24yIik7CisKKyAgICAgICAgICAgIC8vIEFk
ZCBhbm90aGVyIHRleHQgbm9kZSB0aGF0IGlzIGluIHRoZSBvdmVyZmxvdyBvZiB0aGUgbGFzdCBy
ZWdpb24uCisgICAgICAgICAgICB2YXIgdGV4dE5vZGUzID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIlRleHQgbm9kZTMuIik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
YXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2RlMyk7CisgICAgICAgICAgICB2YXIgcmVnaW9u
TGlzdFRleHROb2RlMyA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9k
ZTMpOworICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJyZWdpb25MaXN0VGV4dE5vZGUzIik7
CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0VGV4dE5vZGUzLmxlbmd0
aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0VGV4
dE5vZGUzLml0ZW0oMCkuaWQiLCAicmVnaW9uMiIpOworCisgICAgICAgICAgICAvLyBBZGQgYW5v
dGhlciByZWdpb24gdG8gdGFrZSB0aGUgb3ZlcmZsb3dpbmcgZWxlbWVudHMgZnJvbSBzZWNvbmQg
cmVnaW9uLgorICAgICAgICAgICAgdmFyIHJlZ2lvbjMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKKyAgICAgICAgICAgIHJlZ2lvbjMuaWQgPSAicmVnaW9uMyI7CisgICAgICAgICAg
ICByZWdpb24zLmNsYXNzTmFtZSA9ICJyZWdpb25Cb3giOworICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChyZWdpb24zKTsKKworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RU
ZXh0Tm9kZTIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUpOwor
ICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGgi
LCAyKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFRleHRO
b2RlMi5pdGVtKDApLmlkIiwgInJlZ2lvbjIiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDEpLmlkIiwgInJlZ2lvbjMiKTsKKwor
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTMyID0gbmFtZWRGbG93LmdldFJlZ2lv
bnNCeUNvbnRlbnROb2RlKHRleHROb2RlMyk7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRv
KCJyZWdpb25MaXN0VGV4dE5vZGUzMi5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVnaW9uTGlzdFRleHROb2RlMzIuaXRlbSgwKS5pZCIsICJyZWdpb24z
Iik7CisKKyAgICAgICAgICAgIHZhciBuYW1lZEZsb3cyID0gZG9jdW1lbnQud2Via2l0R2V0Rmxv
d0J5TmFtZSgiZmxvdzIiKTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDEgPSBuYW1lZEZs
b3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMSIp
KTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdFAxIik7CisgICAgICAg
ICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0UDEubGVuZ3RoIiwgMSk7CisgICAgICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RQMS5pdGVtKDApLmlkIiwgInJl
Z2lvbjQiKTsKKworICAgICAgICAgICAgdmFyIHAyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
cCIpOworICAgICAgICAgICAgcDIuaWQgPSAicDIiOworICAgICAgICAgICAgcDIuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgaW5zaWRlIHBhcmFncmFwaCBwMi4iKSk7
CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5hcHBlbmRD
aGlsZChwMik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAyID0gbmFtZWRGbG93Mi5nZXRS
ZWdpb25zQnlDb250ZW50Tm9kZShwMik7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJl
Z2lvbkxpc3RQMiIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdFAy
Lmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25M
aXN0UDIuaXRlbSgwKS5pZCIsICJyZWdpb240Iik7CisgCisgICAgICAgICAgICAvLyBhZGQgYW5v
dGhlciBlbGVtZW50IHAsIGluIHRoZSBvdmVyZmxvdyBwYXJ0IG9mIHRoZSByZWdpb240CisgICAg
ICAgICAgICB2YXIgcDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CisgICAgICAgICAg
ICBwMy5pZCA9ICJwMyI7CisgICAgICAgICAgICBwMy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAzLiIpKTsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxkKHAzKTsKKyAgICAg
ICAgICAgIHZhciByZWdpb25MaXN0UDMgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnRO
b2RlKHAzKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdFAzIik7Cisg
ICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0UDMubGVuZ3RoIiwgMSk7Cisg
ICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RQMy5pdGVtKDApLmlk
IiwgInJlZ2lvbjQiKTsKKworICAgICAgICAgICAgLy8gYWRkIGFub3RoZXIgcmVnaW9uIHRvIGZs
b3cyLCBwMiBhbmQgcDMgZ28gdG8gcmVnaW9uNQorICAgICAgICAgICAgdmFyIHJlZ2lvbjUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHJlZ2lvbjUuaWQgPSAi
cmVnaW9uNSI7CisgICAgICAgICAgICByZWdpb241LmNsYXNzTmFtZSA9ICJyZWdpb25Cb3giOwor
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWdpb241KTsKKworICAgICAg
ICAgICAgdmFyIHJlZ2lvbkxpc3RQMjIgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnRO
b2RlKHAyKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3RQMjIubGVu
Z3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxpc3RQ
MjIuaXRlbSgwKS5pZCIsICJyZWdpb241Iik7CisKKyAgICAgICAgICAgIGhpZGVSZWdpb25zKCk7
CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29u
dGVudC1ub2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnkt
Y29udGVudC1ub2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBjZGY0ZDEzMWVjYjFjOGI5MDFiNjU0NTQ1
ZDIwNThlMjFiODI4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c3R5bGU+CisgICAgICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgfQorICAg
ICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorICAgICAgICAg
ICAgLmJvcmRlciB7IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsgfQorICAgICAgICAgICAgI3JlZ2lv
biB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB3aWR0aDogMjUwcHg7IGhlaWdodDogNTBweDsg
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDIwMHB4OyB9CisKKyAgICAgICAg
ICAgICNhcnRpY2xlMiB7IC13ZWJraXQtZmxvdy1pbnRvOiBmbG93MjsgfQorICAgICAgICAgICAg
I3JlZ2lvbjIxIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOyB3aWR0aDogMjUwcHg7IGhlaWdo
dDogNTBweDsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyMHB4OyB0b3A6IDMwMHB4O30KKyAg
ICAgICAgICAgICNyZWdpb24yMiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93Mjsgd2lkdGg6IDI1
MHB4OyBoZWlnaHQ6IDUwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMjBweDsgdG9wOiAz
NTBweDt9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAg
ICA8ZGl2IGlkPSJhcnRpY2xlIj4KKyAgICAgICAgICAgIDxwIGlkPSJwMSI+VGV4dCBmbG93biBp
bnRvIHJlZ2lvbi48L3A+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24i
IGNsYXNzPSJib3JkZXIiPjwvZGl2PgorCisgICAgICAgIDxkaXYgaWQ9ImFydGljbGUyIj4KKyAg
ICAgICAgICAgIDxwIGlkPSJwMiI+VGV4dCBmbG93biBpbiB0d28gcmVnaW9ucy4gVGV4dCBmbG93
biBpbiB0d28gcmVnaW9ucy4gVGV4dCBmbG93biBpbiB0d28gcmVnaW9ucy48L3A+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24yMSIgY2xhc3M9ImJvcmRlciI+PC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjIyIiBjbGFzcz0iYm9yZGVyIj48L2Rpdj4KKyAgICAg
ICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxl
bWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlLiIpOworCisgICAgICAgICAg
ICB2YXIgbmFtZWRGbG93ID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpOwor
ICAgICAgICAgICAgdmFyIHRhcmdldE5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDEi
KTsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0ID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlKHRhcmdldE5vZGUpOworCisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJy
ZWdpb25MaXN0Lmxlbmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZWdpb25MaXN0Lml0ZW0oMCkuaWQiLCAicmVnaW9uIik7CisKKyAgICAgICAgICAgIG5hbWVk
RmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3cyIik7CisgICAgICAgICAg
ICAvLyBUZXN0IHRoYXQgdGhlIHAyIGVsZW1lbnQgaXMgZmxvd24gaW50byAyIHJlZ2lvbnMKKyAg
ICAgICAgICAgIHRhcmdldE5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDIiKTsKKyAg
ICAgICAgICAgIHJlZ2lvbkxpc3QgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUo
dGFyZ2V0Tm9kZSk7CisKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3Qu
bGVuZ3RoIiwgMik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbkxp
c3QuaXRlbSgwKS5pZCIsICJyZWdpb24yMSIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZWdpb25MaXN0Lml0ZW0oMSkuaWQiLCAicmVnaW9uMjIiKTsKKworICAgICAgICAg
ICAgLy8gVGVzdCB0aGF0IHAxIGVsZW1lbnQgaXMgbm90IGluIGZsb3cyCisgICAgICAgICAgICB0
YXJnZXROb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAxIik7CisgICAgICAgICAgICBy
ZWdpb25MaXN0ID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRhcmdldE5vZGUp
OworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygicmVnaW9uTGlzdC5sZW5ndGgiLCAwKTsK
KworICAgICAgICAgICAgZnVuY3Rpb24gaGlkZVJlZ2lvbnNBbmRGbG93cygpIHsKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLnN0eWxlLnZpc2liaWxp
dHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
YXJ0aWNsZTIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlk
ZGVuIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMjEi
KS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIyIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBoaWRlUmVnaW9uc0FuZEZsb3dzKCk7CisgICAg
ICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1u
b2RlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMt
YnktY29udGVudC1ub2RlMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0NjhlYzA3NDQ1MTZk
OTc0NjIxYWEzZmU1MTlkYzg4MjY0OWZiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDI5IEBACitUZXN0IGZvciA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5h
bWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgcmVnaW9uTGlzdCBpcyBudWxsCitQQVNTIHJlZ2lvbkxpc3QyIGlzIG5v
bi1udWxsLgorUEFTUyByZWdpb25MaXN0Mi5sZW5ndGggaXMgMAorUEFTUyByZWdpb25MaXN0ICE9
IHJlZ2lvbkxpc3QyIGlzIHRydWUKK1BBU1MgcmVnaW9uTGlzdDMgaXMgbm9uLW51bGwuCitQQVNT
IHJlZ2lvbkxpc3QzLmxlbmd0aCBpcyAwCitQQVNTIHJlZ2lvbkxpc3Q0IGlzIG5vbi1udWxsLgor
UEFTUyByZWdpb25MaXN0NC5sZW5ndGggaXMgMQorUEFTUyByZWdpb25MaXN0NC5pdGVtKDApLmlk
IGlzICJyZWdpb24iCitQQVNTIHJlZ2lvbkxpc3Q1IGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25M
aXN0NS5sZW5ndGggaXMgMAorUEFTUyByZWdpb25MaXN0NiBpcyBub24tbnVsbC4KK1BBU1MgcmVn
aW9uTGlzdDYubGVuZ3RoIGlzIDEKK1BBU1MgcmVnaW9uTGlzdDYuaXRlbSgwKS5pZCBpcyAicmVn
aW9uIgorUEFTUyByZWdpb25MaXN0NyBpcyBub24tbnVsbC4KK1BBU1MgcmVnaW9uTGlzdDcubGVu
Z3RoIGlzIDAKK1BBU1MgcmVnaW9uTGlzdDggaXMgbm9uLW51bGwuCitQQVNTIHJlZ2lvbkxpc3Q4
Lmxlbmd0aCBpcyAwCitQQVNTIHJlZ2lvbkxpc3Q5IGlzIG5vbi1udWxsLgorUEFTUyByZWdpb25M
aXN0OS5sZW5ndGggaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVn
aW9ucy1ieS1jb250ZW50LW5vZGUyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0
LXJlZ2lvbnMtYnktY29udGVudC1ub2RlMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmN2VhN2U2YmEyZmQ5
NGQyMTliMGFkMDAxZDRhOTMxM2M0YjYxMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlMi5odG1sCkBAIC0wLDAg
KzEsOTAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGJvZHkgeyBmb250LWZhbWlseTogbW9u
b3NwYWNlOyB9CisgICAgICAgICAgICAjcmVnaW9uLCAjcmVnaW9uMiB7IHdpZHRoOiAyNTBweDsg
aGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAuYXJ0aWNsZSB7IC13ZWJraXQtZmxvdy1pbnRv
OiBmbG93OyB9CisgICAgICAgICAgICAuYXJ0aWNsZTIgeyAtd2Via2l0LWZsb3ctaW50bzogZmxv
dzI7IH0KKyAgICAgICAgICAgIC5yZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgfQor
ICAgICAgICAgICAgLnJlZ2lvbjIgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7IH0KKyAgICAg
ICAgICAgIC5ub1JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBub25lOyB9CisgICAgICAgIDwv
c3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZSIgY2xhc3M9ImFydGljbGUiPjwvZGl2
PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb24iPjwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJyZWdpb24yIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3QgZm9yIDc3NzQ2OiBbQ1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25z
QnlDb250ZW50Tm9kZSIpOworCisgICAgICAgICAgICB2YXIgbmFtZWRGbG93ID0gZG9jdW1lbnQu
d2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdyIpOworCisgICAgICAgICAgICAvLyBHZXR0aW5nIHRo
ZSByZWdpb25zIGZvciBhIG5vbiBleGlzdGFudCBub2RlIHNob3VsZCByZXR1cm4gbnVsbC4KKyAg
ICAgICAgICAgIHZhciBwRWxlbWVudDsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0ID0gbmFt
ZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHBFbGVtZW50KTsKKyAgICAgICAgICAgIHNo
b3VsZEJlTnVsbCgicmVnaW9uTGlzdCIpOworCisgICAgICAgICAgICAvLyBHZXR0aW5nIHRoZSBy
ZWdpb25zIGZvciBhbiBlbGVtZW50IHRoYXQgd2FzIG5vdCBhZGRlZCB0byB0aGUgZG9tIHNob3Vs
ZCByZXR1cm4gYW4gZW1wdHkgbGlzdC4KKyAgICAgICAgICAgIHBFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgicCIpOworCisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdDIgPSBuYW1l
ZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1lbnQpOworICAgICAgICAgICAgc2hv
dWxkQmVOb25OdWxsKCJyZWdpb25MaXN0MiIpOworICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVU
bygicmVnaW9uTGlzdDIubGVuZ3RoIiwgMCk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoInJl
Z2lvbkxpc3QgIT0gcmVnaW9uTGlzdDIiKTsKKworICAgICAgICAgICAgLy8gQWRkIHRoZSBlbGVt
ZW50IHRvIHRoZSBkb20gYnV0IG5vdCBpbiB0aGUgZmxvdy4gVGhlIHJlZ2lvbiBsaXN0IHNob3Vs
ZCBiZSBlbXB0eS4KKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocEVsZW1l
bnQpOworICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3QzID0gbmFtZWRGbG93LmdldFJlZ2lvbnNC
eUNvbnRlbnROb2RlKHBFbGVtZW50KTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVn
aW9uTGlzdDMiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3QzLmxl
bmd0aCIsIDApOworCisgICAgICAgICAgICAvLyBBZGQgdGhlIHNhbWUgZWxlbWVudCB0byB0aGUg
Zmxvdy4gVGhlIHJlZ2lvbiBsaXN0IHNob3VsZCBjb250YWluIG9uZSByZWdpb24uCisgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHBFbGVtZW50KTsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQocEVsZW1lbnQpOwor
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3Q0ID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRl
bnROb2RlKHBFbGVtZW50KTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlz
dDQiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3Q0Lmxlbmd0aCIs
IDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25MaXN0NC5pdGVt
KDApLmlkIiwgInJlZ2lvbiIpOworCisgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIHJlZ2lvbiBu
b2RlIGFuZCBnZXQgdGhlIHJlZ2lvbiBsaXN0LiBUaGUgbGlzdCBzaG91bGQgYmUgZW1wdHkuCisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIikuY2xhc3NOYW1lID0g
Im5vUmVnaW9uIjsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0NSA9IG5hbWVkRmxvdy5nZXRS
ZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVudCk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51
bGwoInJlZ2lvbkxpc3Q1Iik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25M
aXN0NS5sZW5ndGgiLCAwKTsKKworICAgICAgICAgICAgLy8gQnJpbmcgYmFjayB0aGUgcmVnaW9u
IGFuZCBnZXQgdGhlIHJlZ2lvbiBsaXN0LiBUaGUgbGlzdCBzaG91bGQgaGF2ZSBvbmUgZWxlbWVu
dC4KKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKS5jbGFzc05h
bWUgPSAicmVnaW9uIjsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0NiA9IG5hbWVkRmxvdy5n
ZXRSZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVudCk7CisgICAgICAgICAgICBzaG91bGRCZU5v
bk51bGwoInJlZ2lvbkxpc3Q2Iik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdp
b25MaXN0Ni5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVnaW9uTGlzdDYuaXRlbSgwKS5pZCIsICJyZWdpb24iKTsKKworICAgICAgICAgICAgLy8gUmVt
b3ZlIHRoZSBuYW1lZCBmbG93LCB0aGUgcmVnaW9uIGxpc3Qgc2hvdWxkIGJlIGVtcHR5LgorICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5jbGFzc05hbWUgPSAi
IjsKKyAgICAgICAgICAgIHZhciByZWdpb25MaXN0NyA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlD
b250ZW50Tm9kZShwRWxlbWVudCk7CisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoInJlZ2lv
bkxpc3Q3Iik7CisgICAgICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWdpb25MaXN0Ny5sZW5n
dGgiLCAwKTsKKworICAgICAgICAgICAgLy8gTW92ZSB0aGUgYXJ0aWNsZSB0byBhbm90aGVyIG5h
bWVkIGZsb3csIHRoZSByZWdpb24gbGlzdCBzaG91bGQgYmUgZW1wdHkuCisgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmNsYXNzTmFtZSA9ICJhcnRpY2xlMiI7
CisgICAgICAgICAgICB2YXIgbmFtZWRGbG93MiA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5h
bWUoImZsb3cyIik7CisgICAgICAgICAgICB2YXIgcmVnaW9uTGlzdDggPSBuYW1lZEZsb3cyLmdl
dFJlZ2lvbnNCeUNvbnRlbnROb2RlKHBFbGVtZW50KTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9u
TnVsbCgicmVnaW9uTGlzdDgiKTsKKyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lv
bkxpc3Q4Lmxlbmd0aCIsIDApOworCisgICAgICAgICAgICAvLyBBZGQgYSByZWdpb24gdG8gdGhl
IHNlY29uZCBuYW1lZCBmbG93LCB0aGUgcmVnaW9uIGxpc3Qgc2hvdWxkIGNvbnRhaW4gb25lIGVs
ZW1lbnQKKyAgICAgICAgICAgIC8vIHNpbmNlIHRoZSBwIGVsZW1lbnQgaXMgYSBjaGlsZCBvZiBh
cnRpY2xlIHRoYXQgaXMgY29sbGVjdGVkIGJ5IGZsb3cyLgorICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKS5jbGFzc05hbWUgPSAicmVnaW9uMiI7CisgICAgICAg
ICAgICB2YXIgcmVnaW9uTGlzdDkgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
KHBFbGVtZW50KTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbCgicmVnaW9uTGlzdDkiKTsK
KyAgICAgICAgICAgIHNob3VsZEV2YWx1YXRlVG8oInJlZ2lvbkxpc3Q5Lmxlbmd0aCIsIDEpOwor
ICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgor
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>