<?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>203500</bug_id>
          
          <creation_ts>2019-10-28 12:43:11 -0700</creation_ts>
          <short_desc>Import WPT tests for scrollend and overscroll events</short_desc>
          <delta_ts>2019-10-30 00:59:17 -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>Scrolling</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>201556</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1584543</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-10-28 12:43:11 -0700</bug_when>
    <thetext>They are located in dom/events/scrolling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584865</commentid>
    <comment_count>1</comment_count>
      <attachid>382171</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-10-29 02:34:43 -0700</bug_when>
    <thetext>Created attachment 382171
Patch WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584888</commentid>
    <comment_count>2</comment_count>
      <attachid>382176</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-10-29 04:52:15 -0700</bug_when>
    <thetext>Created attachment 382176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584977</commentid>
    <comment_count>3</comment_count>
      <attachid>382176</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-10-29 11:00:37 -0700</bug_when>
    <thetext>Comment on attachment 382176
Patch

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

&gt; LayoutTests/TestExpectations:155
&gt; +# Only iOS has an implementation of UIScriptController::sendEventStream().

We should fix that!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584978</commentid>
    <comment_count>4</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-10-29 11:03:12 -0700</bug_when>
    <thetext>I&apos;m not sure what&apos;s happening with some of the bots, but I&apos;ll wait a bit before landing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585051</commentid>
    <comment_count>5</comment_count>
      <attachid>382176</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-29 13:14:35 -0700</bug_when>
    <thetext>Comment on attachment 382176
Patch

Rejecting attachment 382176 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 382176, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=382176&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=203500&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Processing patch 382176 from bug 203500.
Fetching: https://bugs.webkit.org/attachment.cgi?id=382176
Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Simon Fraser&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 25 diffs from patch file(s).
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/imported/w3c/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/TestExpectations
patching file LayoutTests/imported/w3c/resources/import-expectations.json
Hunk #1 succeeded at 108 (offset 3 lines).
Hunk #2 FAILED at 385.
1 out of 2 hunks FAILED -- saving rejects to file LayoutTests/imported/w3c/resources/import-expectations.json.rej
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/overscroll-event-fired-to-document-expected.txt
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/overscroll-event-fired-to-document.html
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/overscroll-event-fired-to-element-with-overscroll-behavior-expected.txt
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/overscroll-event-fired-to-element-with-overscroll-behavior.html
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/overscroll-event-fired-to-scrolled-element-expected.txt
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/overscroll-event-fired-to-scrolled-element.html
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/overscroll-event-fired-to-window-expected.txt
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/overscroll-event-fired-to-window.html
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/scroll_support.js
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-after-snap-expected.txt
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-after-snap.html
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-to-document-expected.txt
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-to-document.html
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-to-element-with-overscroll-behavior-expected.txt
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-to-element-with-overscroll-behavior.html
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-to-scrolled-element-expected.txt
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-to-scrolled-element.html
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-to-window-expected.txt
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-to-window.html
patching file LayoutTests/imported/w3c/web-platform-tests/dom/events/scrolling/w3c-import.log
patching file LayoutTests/platform/ios/TestExpectations
Hunk #1 succeeded at 2560 (offset -2 lines).

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Simon Fraser&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: https://webkit-queues.webkit.org/results/13189001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585101</commentid>
    <comment_count>6</comment_count>
      <attachid>382227</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-10-29 14:32:13 -0700</bug_when>
    <thetext>Created attachment 382227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585297</commentid>
    <comment_count>7</comment_count>
      <attachid>382227</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-30 00:58:33 -0700</bug_when>
    <thetext>Comment on attachment 382227
Patch

Clearing flags on attachment: 382227

Committed r251770: &lt;https://trac.webkit.org/changeset/251770&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585298</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-30 00:58:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585300</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-30 00:59:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/56737022&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382171</attachid>
            <date>2019-10-29 02:34:43 -0700</date>
            <delta_ts>2019-10-29 04:52:11 -0700</delta_ts>
            <desc>Patch WIP</desc>
            <filename>0001-Bug-203500-Import-WPT-tests-for-scrollend-and-oversc.patch</filename>
            <type>text/plain</type>
            <size>33729</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBjYjZmYjE2YWNiNjFmNmI3ZDI4MjEyMGQxZWJmZmI3NWFjNDVmOWU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBUdWUsIDI5IE9jdCAyMDE5IDEwOjE1OjM3ICswMTAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
XSBCdWcgMjAzNTAwIC0gSW1wb3J0IFdQVCB0ZXN0cyBmb3Igc2Nyb2xsZW5kIGFuZAogb3ZlcnNj
cm9sbCBldmVudHMKCi0tLQogLi4uL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5q
c29uICAgIHwgIDQgKy0KIC4uLi9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLWRvY3VtZW50Lmh0
bWwgICB8IDYyICsrKysrKysrKysrKysKIC4uLmQtdG8tZWxlbWVudC13aXRoLW92ZXJzY3JvbGwt
YmVoYXZpb3IuaHRtbCB8IDkyICsrKysrKysrKysrKysrKysrKwogLi4uY3JvbGwtZXZlbnQtZmly
ZWQtdG8tc2Nyb2xsZWQtZWxlbWVudC5odG1sIHwgNjUgKysrKysrKysrKysrKwogLi4uL292ZXJz
Y3JvbGwtZXZlbnQtZmlyZWQtdG8td2luZG93Lmh0bWwgICAgIHwgNTIgKysrKysrKysrKysKIC4u
Li9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxfc3VwcG9ydC5qcyAgICB8IDg1ICsrKysrKysr
KysrKysrKysrCiAuLi4vc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLWFmdGVyLXNuYXAuaHRtbCAgICAg
fCA4NiArKysrKysrKysrKysrKysrKwogLi4uL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1kb2N1
bWVudC5odG1sICAgIHwgNjcgKysrKysrKysrKysrKwogLi4uZC10by1lbGVtZW50LXdpdGgtb3Zl
cnNjcm9sbC1iZWhhdmlvci5odG1sIHwgOTMgKysrKysrKysrKysrKysrKysrKwogLi4ubGxlbmQt
ZXZlbnQtZmlyZWQtdG8tc2Nyb2xsZWQtZWxlbWVudC5odG1sIHwgNjcgKysrKysrKysrKysrKwog
Li4uL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by13aW5kb3cuaHRtbCAgICAgIHwgNTQgKysrKysr
KysrKysKIC4uLi9kb20vZXZlbnRzL3Njcm9sbGluZy93M2MtaW1wb3J0LmxvZyAgICAgICB8IDI2
ICsrKysrKwogMTIgZmlsZXMgY2hhbmdlZCwgNzUxIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRv
LWRvY3VtZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZl
bnQtZmlyZWQtdG8tZWxlbWVudC13aXRoLW92ZXJzY3JvbGwtYmVoYXZpb3IuaHRtbAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1zY3JvbGxlZC1l
bGVtZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQt
ZmlyZWQtdG8td2luZG93Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbF9z
dXBwb3J0LmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmly
ZWQtYWZ0ZXItc25hcC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQt
ZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcv
c2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLWVsZW1lbnQtd2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9y
Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10
by1zY3JvbGxlZC1lbGVtZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9s
bGVuZC1ldmVudC1maXJlZC10by13aW5kb3cuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxp
bmcvdzNjLWltcG9ydC5sb2cKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
cmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4IGQxNTA1ZjFkMDFl
Li43MzJiOWU3MzRmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291
cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KQEAgLTEwNSw3ICsxMDUsNyBA
QAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3YwIjogInNraXAiLCAK
ICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbSI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ldmVudHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL3Njcm9sbGluZyI6ICJza2lwIiwgCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL3Njcm9sbGluZyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVFbGVtZW50LW5hbWVzcGFjZS10ZXN0cy9lbXB0
eS5odG1sIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1
bWVudC1jcmVhdGVFbGVtZW50LW5hbWVzcGFjZS10ZXN0cy9lbXB0eS5zdmciOiAic2tpcCIsIAog
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQt
bmFtZXNwYWNlLXRlc3RzL2VtcHR5LnhodG1sIjogInNraXAiLCAKQEAgLTM4Miw0ICszODIsNCBA
QAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMiOiAic2tpcCIsIAogICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMveC1mcmFtZS1vcHRpb25zIjogInNraXAiLCAKICAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL3hociI6ICJpbXBvcnQiCi19Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLWRvY3VtZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9l
dmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzA1NGZmY2E5YzQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQu
aHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgSFRNTD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRy
aXZlci1hY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rk
cml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JvbGxfc3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFyZ2V0RGl2IHsKKyAgd2lkdGg6IDIwMHB4OworICBo
ZWlnaHQ6IDIwMHB4OworICBvdmVyZmxvdzogc2Nyb2xsOworfQorCisjaW5uZXJEaXYgeworICB3
aWR0aDogNDAwcHg7CisgIGhlaWdodDogNDAwcHg7Cit9Cis8L3N0eWxlPgorCis8Ym9keSBzdHls
ZT0ibWFyZ2luOjAiIG9ubG9hZD1ydW5UZXN0KCk+Cis8ZGl2IGlkPSJ0YXJnZXREaXYiPgorICA8
ZGl2IGlkPSJpbm5lckRpdiI+CisgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+CisKKzxzY3JpcHQ+
Cit2YXIgdGFyZ2V0X2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXREaXYnKTsK
K3ZhciBvdmVyc2Nyb2xsZWRfeF9kZWx0YSA9IDA7Cit2YXIgb3ZlcnNjcm9sbGVkX3lfZGVsdGEg
PSAwOworZnVuY3Rpb24gb25PdmVyc2Nyb2xsKGV2ZW50KSB7CisgIGFzc2VydF9mYWxzZShldmVu
dC5jYW5jZWxhYmxlKTsKKyAgLy8gb3ZlcnNjcm9sbCBldmVudHMgYXJlIGJ1YmJsZWQgd2hlbiB0
aGUgdGFyZ2V0IG5vZGUgaXMgZG9jdW1lbnQuCisgIGFzc2VydF90cnVlKGV2ZW50LmJ1YmJsZXMp
OworICBvdmVyc2Nyb2xsZWRfeF9kZWx0YSA9IGV2ZW50LmRlbHRhWDsKKyAgb3ZlcnNjcm9sbGVk
X3lfZGVsdGEgPSBldmVudC5kZWx0YVk7Cit9Citkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJv
dmVyc2Nyb2xsIiwgb25PdmVyc2Nyb2xsKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgcHJv
bWlzZV90ZXN0IChhc3luYyAodCkgPT4geworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IG5vIG92ZXJz
Y3JvbGwgZXZlbnQgaXMgc2VudCB0byB0YXJnZXRfZGl2LgorICAgIHRhcmdldF9kaXYuYWRkRXZl
bnRMaXN0ZW5lcigib3ZlcnNjcm9sbCIsCisgICAgICAgIHQudW5yZWFjaGVkX2Z1bmMoInRhcmdl
dF9kaXYgZ290IHVuZXhwZWN0ZWQgb3ZlcnNjcm9sbCBldmVudC4iKSk7CisgICAgYXdhaXQgd2Fp
dEZvckNvbXBvc2l0b3JDb21taXQoKTsKKworICAgIC8vIFNjcm9sbCB1cCBvbiB0YXJnZXQgZGl2
IGFuZCB3YWl0IGZvciB0aGUgZG9jIHRvIGdldCBvdmVyc2Nyb2xsIGV2ZW50LgorICAgIGF3YWl0
IHRvdWNoU2Nyb2xsSW5UYXJnZXQoMzAwLCB0YXJnZXRfZGl2LCAndXAnKTsKKyAgICBhd2FpdCB3
YWl0Rm9yKCgpID0+IHsgcmV0dXJuIG92ZXJzY3JvbGxlZF95X2RlbHRhIDwgMDsgfSwKKyAgICAg
ICAgJ0RvY3VtZW50IGRpZCBub3QgcmVjZWl2ZSBvdmVyc2Nyb2xsIGV2ZW50IGFmdGVyIHNjcm9s
bCB1cCBvbiB0YXJnZXQuJyk7CisgICAgYXNzZXJ0X2VxdWFscyh0YXJnZXRfZGl2LnNjcm9sbFRv
cCwgMCk7CisKKyAgICAvLyBTY3JvbGwgbGVmdCBvbiB0YXJnZXQgZGl2IGFuZCB3YWl0IGZvciB0
aGUgZG9jIHRvIGdldCBvdmVyc2Nyb2xsIGV2ZW50LgorICAgIGF3YWl0IHRvdWNoU2Nyb2xsSW5U
YXJnZXQoMzAwLCB0YXJnZXRfZGl2LCAnbGVmdCcpOworICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4g
eyByZXR1cm4gb3ZlcnNjcm9sbGVkX3hfZGVsdGEgPCAwOyB9LAorICAgICAgICAnRG9jdW1lbnQg
ZGlkIG5vdCByZWNlaXZlIG92ZXJzY3JvbGwgZXZlbnQgYWZ0ZXIgc2Nyb2xsIGxlZnQgb24gdGFy
Z2V0LicpOworICAgIGFzc2VydF9lcXVhbHModGFyZ2V0X2Rpdi5zY3JvbGxMZWZ0LCAwKTsKKyAg
fSwgJ1Rlc3RzIHRoYXQgdGhlIGRvY3VtZW50IGdldHMgb3ZlcnNjcm9sbCBldmVudCB3aGVuIG5v
IGVsZW1lbnQgc2Nyb2xscyAnICsKKyAgICAgICdhZnRlciB0b3VjaCBzY3JvbGxpbmcuJyk7Cit9
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10
by1lbGVtZW50LXdpdGgtb3ZlcnNjcm9sbC1iZWhhdmlvci5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Ny
b2xsLWV2ZW50LWZpcmVkLXRvLWVsZW1lbnQtd2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9yLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc1MDA4MGU2NTY4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLWVsZW1lbnQt
d2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9yLmh0bWwKQEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBF
IEhUTUw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic2Nyb2xsX3N1cHBvcnQuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI292ZXJzY3Jv
bGxYRGl2IHsKKyAgd2lkdGg6IDYwMHB4OworICBoZWlnaHQ6IDYwMHB4OworICBvdmVyZmxvdzog
c2Nyb2xsOworICBvdmVyc2Nyb2xsLWJlaGF2aW9yLXg6IGNvbnRhaW47Cit9Cisjb3ZlcnNjcm9s
bFlEaXYgeworICB3aWR0aDogNTAwcHg7CisgIGhlaWdodDogNTAwcHg7CisgIG92ZXJmbG93OiBz
Y3JvbGw7CisgIG92ZXJzY3JvbGwtYmVoYXZpb3IteTogbm9uZTsKK30KKyN0YXJnZXREaXYgewor
ICB3aWR0aDogNDAwcHg7CisgIGhlaWdodDogNDAwcHg7CisgIG92ZXJmbG93OiBzY3JvbGw7Cit9
CisuY29udGVudCB7CisgIHdpZHRoOjgwMHB4OworICBoZWlnaHQ6ODAwcHg7Cit9Cis8L3N0eWxl
PgorCis8Ym9keSBzdHlsZT0ibWFyZ2luOjAiIG9ubG9hZD1ydW5UZXN0KCk+Cis8ZGl2IGlkPSJv
dmVyc2Nyb2xsWERpdiI+CisgIDxkaXYgY2xhc3M9Y29udGVudD4KKyAgICA8ZGl2IGlkPSJvdmVy
c2Nyb2xsWURpdiI+CisgICAgICA8ZGl2IGNsYXNzPWNvbnRlbnQ+CisgICAgICAgIDxkaXYgaWQ9
InRhcmdldERpdiI+CisgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CisgICAgICAgICAg
PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2
PgorPC9kaXY+Cis8L2JvZHk+CisKKzxzY3JpcHQ+Cit2YXIgdGFyZ2V0X2RpdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0YXJnZXREaXYnKTsKK3ZhciBvdmVyc2Nyb2xsZWRfeF9kZWx0YSA9
IDA7Cit2YXIgb3ZlcnNjcm9sbGVkX3lfZGVsdGEgPSAwOworZnVuY3Rpb24gb25PdmVyc2Nyb2xs
WChldmVudCkgeworICBhc3NlcnRfZmFsc2UoZXZlbnQuY2FuY2VsYWJsZSk7CisgIGFzc2VydF9m
YWxzZShldmVudC5idWJibGVzKTsKKyAgb3ZlcnNjcm9sbGVkX3hfZGVsdGEgPSBldmVudC5kZWx0
YVg7Cit9CitmdW5jdGlvbiBvbk92ZXJzY3JvbGxZKGV2ZW50KSB7CisgIGFzc2VydF9mYWxzZShl
dmVudC5jYW5jZWxhYmxlKTsKKyAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmJ1YmJsZXMpOworICBvdmVy
c2Nyb2xsZWRfeV9kZWx0YSA9IGV2ZW50LmRlbHRhWTsKK30KKy8vIFRlc3QgdGhhdCBib3RoICJv
bm92ZXJzY3JvbGwiIGFuZCBhZGRFdmVudExpc3RlbmVyKCJvdmVyc2Nyb2xsIi4uLiB3b3JrLgor
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ292ZXJzY3JvbGxYRGl2Jykub25vdmVyc2Nyb2xsID0g
b25PdmVyc2Nyb2xsWDsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdmVyc2Nyb2xsWURpdicp
LgorICAgIGFkZEV2ZW50TGlzdGVuZXIoIm92ZXJzY3JvbGwiLCBvbk92ZXJzY3JvbGxZKTsKKwor
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgcHJvbWlzZV90ZXN0IChhc3luYyAodCkgPT4geworICAg
IC8vIE1ha2Ugc3VyZSB0aGF0IG5vIG92ZXJzY3JvbGwgZXZlbnQgaXMgc2VudCB0byBkb2N1bWVu
dCBvciB0YXJnZXRfZGl2LgorICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm92ZXJzY3Jv
bGwiLAorICAgICAgICB0LnVucmVhY2hlZF9mdW5jKCJEb2N1bWVudCBnb3QgdW5leHBlY3RlZCBv
dmVyc2Nyb2xsIGV2ZW50LiIpKTsKKyAgICB0YXJnZXRfZGl2LmFkZEV2ZW50TGlzdGVuZXIoIm92
ZXJzY3JvbGwiLAorICAgICAgICB0LnVucmVhY2hlZF9mdW5jKCJ0YXJnZXRfZGl2IGdvdCB1bmV4
cGVjdGVkIG92ZXJzY3JvbGwgZXZlbnQuIikpOworICAgIGF3YWl0IHdhaXRGb3JDb21wb3NpdG9y
Q29tbWl0KCk7CisgICAgLy8gU2Nyb2xsIHVwIG9uIHRhcmdldCBkaXYgYW5kIHdhaXQgZm9yIHRo
ZSBlbGVtZW50IHdpdGggb3ZlcnNjcm9sbC15IHRvIGdldAorICAgIC8vIG92ZXJzY3JvbGwgZXZl
bnQuCisgICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAsIHRhcmdldF9kaXYsICd1cCcp
OworICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geyByZXR1cm4gb3ZlcnNjcm9sbGVkX3lfZGVsdGEg
PCAwOyB9LAorICAgICAgICAnRXhwZWN0ZWQgZWxlbWVudCBkaWQgbm90IHJlY2VpdmUgb3ZlcnNj
cm9sbCBldmVudCBhZnRlciBzY3JvbGwgdXAgb24gJyArCisgICAgICAgICd0YXJnZXQuJyk7Cisg
ICAgYXNzZXJ0X2VxdWFscyh0YXJnZXRfZGl2LnNjcm9sbFRvcCwgMCk7CisKKyAgICAvLyBTY3Jv
bGwgbGVmdCBvbiB0YXJnZXQgZGl2IGFuZCB3YWl0IGZvciB0aGUgZWxlbWVudCB3aXRoIG92ZXJz
Y3JvbGwteCB0bworICAgIC8vIGdldCBvdmVyc2Nyb2xsIGV2ZW50LgorICAgIGF3YWl0IHRvdWNo
U2Nyb2xsSW5UYXJnZXQoMzAwLCB0YXJnZXRfZGl2LCAnbGVmdCcpOworICAgIGF3YWl0IHdhaXRG
b3IoKCkgPT4geyByZXR1cm4gb3ZlcnNjcm9sbGVkX3hfZGVsdGEgPCAwOyB9LAorICAgICAgICAn
RXhwZWN0ZWQgZWxlbWVudCBkaWQgbm90IHJlY2VpdmUgb3ZlcnNjcm9sbCBldmVudCBhZnRlciBz
Y3JvbGwgbGVmdCAnICsKKyAgICAgICAgJ29uIHRhcmdldC4nKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHRhcmdldF9kaXYuc2Nyb2xsTGVmdCwgMCk7CisgIH0sICdUZXN0cyB0aGF0IHRoZSBsYXN0IGVs
ZW1lbnQgaW4gdGhlIGN1dCBzY3JvbGwgY2hhaW4gZ2V0cyBvdmVyc2Nyb2xsICcgKworICAgICAn
ZXZlbnQgd2hlbiBubyBlbGVtZW50IHNjcm9sbHMgYnkgdG91Y2guJyk7Cit9Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1zY3JvbGxlZC1l
bGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tc2Nyb2xsZWQt
ZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZmM3
ODJhODA5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJl
ZC10by1zY3JvbGxlZC1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIEhU
TUw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic2Nyb2xsX3N1cHBvcnQuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3Njcm9sbGFibGVE
aXYgeworICB3aWR0aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7CisgIG92ZXJmbG93OiBzY3Jv
bGw7Cit9CisKKyNpbm5lckRpdiB7CisgIHdpZHRoOiA0MDBweDsKKyAgaGVpZ2h0OiA0MDBweDsK
K30KKzwvc3R5bGU+CisKKzxib2R5IHN0eWxlPSJtYXJnaW46MCIgb25sb2FkPXJ1blRlc3QoKT4K
KzxkaXYgaWQ9InNjcm9sbGFibGVEaXYiPgorICA8ZGl2IGlkPSJpbm5lckRpdiI+CisgIDwvZGl2
PgorPC9kaXY+Cis8L2JvZHk+CisKKzxzY3JpcHQ+Cit2YXIgc2Nyb2xsaW5nX2RpdiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxhYmxlRGl2Jyk7Cit2YXIgb3ZlcnNjcm9sbGVkX3hf
ZGVsdGEgPSAwOwordmFyIG92ZXJzY3JvbGxlZF95X2RlbHRhID0gMDsKK2Z1bmN0aW9uIG9uT3Zl
cnNjcm9sbChldmVudCkgeworICBhc3NlcnRfZmFsc2UoZXZlbnQuY2FuY2VsYWJsZSk7CisgIGFz
c2VydF9mYWxzZShldmVudC5idWJibGVzKTsKKyAgb3ZlcnNjcm9sbGVkX3hfZGVsdGEgPSBldmVu
dC5kZWx0YVg7CisgIG92ZXJzY3JvbGxlZF95X2RlbHRhID0gZXZlbnQuZGVsdGFZOworfQorc2Ny
b2xsaW5nX2Rpdi5hZGRFdmVudExpc3RlbmVyKCJvdmVyc2Nyb2xsIiwgb25PdmVyc2Nyb2xsKTsK
KworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgcHJvbWlzZV90ZXN0IChhc3luYyAodCkgPT4gewor
ICAgIC8vIE1ha2Ugc3VyZSB0aGF0IG5vIG92ZXJzY3JvbGwgZXZlbnQgaXMgc2VudCB0byBkb2N1
bWVudC4KKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJvdmVyc2Nyb2xsIiwKKyAgICAg
ICAgdC51bnJlYWNoZWRfZnVuYygiRG9jdW1lbnQgZ290IHVuZXhwZWN0ZWQgb3ZlcnNjcm9sbCBl
dmVudC4iKSk7CisgICAgYXdhaXQgd2FpdEZvckNvbXBvc2l0b3JDb21taXQoKTsKKworICAgIC8v
IERvIGEgaG9yaXpvbnRhbCBzY3JvbGwgYW5kIHdhaXQgZm9yIG92ZXJzY3JvbGwgZXZlbnQuCisg
ICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAsIHNjcm9sbGluZ19kaXYgLCAncmlnaHQn
KTsKKyAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIG92ZXJzY3JvbGxlZF94X2RlbHRh
ID4gMDsgfSwKKyAgICAgICAgJ1Njcm9sbGVyIGRpZCBub3QgcmVjZWl2ZSBvdmVyc2Nyb2xsIGV2
ZW50IGFmdGVyIGhvcml6b250YWwgc2Nyb2xsLicpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nX2Rpdi5zY3JvbGxXaWR0aCAtIHNjcm9sbGluZ19kaXYuc2Nyb2xsTGVmdCwKKyAgICAgICAg
ICAgICAgICBzY3JvbGxpbmdfZGl2LmNsaWVudFdpZHRoKTsKKworICAgIG92ZXJzY3JvbGxlZF94
X2RlbHRhID0gMDsKKyAgICBvdmVyc2Nyb2xsZWRfeV9kZWx0YSA9IDA7CisKKyAgICAvLyBEbyBh
IHZlcnRpY2FsIHNjcm9sbCBhbmQgd2FpdCBmb3Igb3ZlcnNjcm9sbCBldmVudC4KKyAgICBhd2Fp
dCB0b3VjaFNjcm9sbEluVGFyZ2V0KDMwMCwgc2Nyb2xsaW5nX2RpdiwgJ2Rvd24nKTsKKyAgICBh
d2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIG92ZXJzY3JvbGxlZF95X2RlbHRhID4gMDsgfSwK
KyAgICAgICAgJ1Njcm9sbGVyIGRpZCBub3QgcmVjZWl2ZSBvdmVyc2Nyb2xsIGV2ZW50IGFmdGVy
IHZlcnRpY2FsIHNjcm9sbC4nKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ19kaXYuc2Ny
b2xsSGVpZ2h0IC0gc2Nyb2xsaW5nX2Rpdi5zY3JvbGxUb3AsCisgICAgICAgICAgICAgICAgc2Ny
b2xsaW5nX2Rpdi5jbGllbnRIZWlnaHQpOworICB9LCAnVGVzdHMgdGhhdCB0aGUgc2Nyb2xsZWQg
ZWxlbWVudCBnZXRzIG92ZXJzY3JvbGwgZXZlbnQgYWZ0ZXIgZnVsbHkgc2Nyb2xsaW5nIGJ5IHRv
dWNoLicpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZl
bnQtZmlyZWQtdG8td2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQt
dG8td2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVm
NWFlM2RhZWY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZp
cmVkLXRvLXdpbmRvdy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBIVE1MPgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNj
cm9sbF9zdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXJnZXREaXYgeworICB3aWR0
aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7CisgIG92ZXJmbG93OiBzY3JvbGw7Cit9CisKKyNp
bm5lckRpdiB7CisgIHdpZHRoOiA0MDBweDsKKyAgaGVpZ2h0OiA0MDBweDsKK30KKzwvc3R5bGU+
CisKKzxib2R5IHN0eWxlPSJtYXJnaW46MCIgb25sb2FkPXJ1blRlc3QoKT4KKzxkaXYgaWQ9InRh
cmdldERpdiI+CisgIDxkaXYgaWQ9ImlubmVyRGl2Ij4KKyAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9k
eT4KKworPHNjcmlwdD4KK3ZhciB0YXJnZXRfZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RhcmdldERpdicpOwordmFyIHdpbmRvd19yZWNlaXZlZF9vdmVyc2Nyb2xsID0gZmFsc2U7CisK
K2Z1bmN0aW9uIG9uT3ZlcnNjcm9sbChldmVudCkgeworICBhc3NlcnRfZmFsc2UoZXZlbnQuY2Fu
Y2VsYWJsZSk7CisgIC8vIG92ZXJzY3JvbGwgZXZlbnRzIHRhcmdldHRpbmcgZG9jdW1lbnQgYXJl
IGJ1YmJsZWQgdG8gdGhlIHdpbmRvdy4KKyAgYXNzZXJ0X3RydWUoZXZlbnQuYnViYmxlcyk7Cisg
IHdpbmRvd19yZWNlaXZlZF9vdmVyc2Nyb2xsID0gdHJ1ZTsKK30KK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJvdmVyc2Nyb2xsIiwgb25PdmVyc2Nyb2xsKTsKKworZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgcHJvbWlzZV90ZXN0IChhc3luYyAodCkgPT4geworICAgIC8vIE1ha2Ugc3VyZSB0aGF0
IG5vIG92ZXJzY3JvbGwgZXZlbnQgaXMgc2VudCB0byB0YXJnZXRfZGl2LgorICAgIHRhcmdldF9k
aXYuYWRkRXZlbnRMaXN0ZW5lcigib3ZlcnNjcm9sbCIsCisgICAgICAgIHQudW5yZWFjaGVkX2Z1
bmMoInRhcmdldF9kaXYgZ290IHVuZXhwZWN0ZWQgb3ZlcnNjcm9sbCBldmVudC4iKSk7CisgICAg
Ly8gU2Nyb2xsIHVwIG9uIHRhcmdldCBkaXYgYW5kIHdhaXQgZm9yIHRoZSB3aW5kb3cgdG8gZ2V0
IG92ZXJzY3JvbGwgZXZlbnQuCisgICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAsIHRh
cmdldF9kaXYsICd1cCcpOworICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geyByZXR1cm4gd2luZG93
X3JlY2VpdmVkX292ZXJzY3JvbGw7IH0sCisgICAgICAgICdXaW5kb3cgZGlkIG5vdCByZWNlaXZl
IG92ZXJzY3JvbGwgZXZlbnQgYWZ0ZXIgc2Nyb2xsIHVwIG9uIHRhcmdldC4nKTsKKyAgfSwgJ1Rl
c3RzIHRoYXQgdGhlIHdpbmRvdyBnZXRzIG92ZXJzY3JvbGwgZXZlbnQgd2hlbiBubyBlbGVtZW50
IHNjcm9sbHMnICsKKyAgICAgJ2FmdGVyIHRvdWNoIHNjcm9sbGluZy4nKTsKK30KKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxfc3VwcG9ydC5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xs
X3N1cHBvcnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZmZDFi
MzIyOTRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxfc3VwcG9ydC5qcwpAQCAt
MCwwICsxLDg1IEBACitjb25zdCBNQVhfRlJBTUUgPSA3MDA7Citjb25zdCBNQVhfVU5DSEFOR0VE
X0ZSQU1FUyA9IDIwOworCisvLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4g
dGhlIGdpdmVuIGNvbmRpdGlvbiBpcyBtZXQgb3IgcmVqZWN0cworLy8gYWZ0ZXIgTUFYX0ZSQU1F
IGFuaW1hdGlvbiBmcmFtZXMuCitmdW5jdGlvbiB3YWl0Rm9yKGNvbmRpdGlvbiwgZXJyb3JfbWVz
c2FnZSA9ICdSZWFjaGVzIHRoZSBtYXhpbXVtIGZyYW1lcy4nKSB7CisgIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgZnVuY3Rpb24gdGljayhmcmFtZXMpIHsK
KyAgICAgIC8vIFdlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBlaXRoZXIgZm9yIE1BWF9GUkFNIGZy
YW1lcyBvciB1bnRpbCBjb25kaXRpb24KKyAgICAgIC8vIGlzIG1ldC4KKyAgICAgIGlmIChmcmFt
ZXMgPj0gTUFYX0ZSQU1FKQorICAgICAgICByZWplY3QoZXJyb3JfbWVzc2FnZSk7CisgICAgICBl
bHNlIGlmIChjb25kaXRpb24oKSkKKyAgICAgICAgcmVzb2x2ZSgpOworICAgICAgZWxzZQorICAg
ICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljay5iaW5kKHRoaXMsIGZyYW1lcyArIDEpKTsK
KyAgICB9CisgICAgdGljaygwKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3JDb21wb3Np
dG9yQ29tbWl0KCkgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAv
LyByQUYgdHdpY2UuCisgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Cisg
ICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29sdmUpOworICAgIH0pOworICB9
KTsKK30KKworZnVuY3Rpb24gd2FpdEZvckFuaW1hdGlvbkVuZChnZXRWYWx1ZSkgeworICB2YXIg
bGFzdF9jaGFuZ2VkX2ZyYW1lID0gMDsKKyAgdmFyIGxhc3RfcG9zaXRpb24gPSBnZXRWYWx1ZSgp
OworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgIGZ1bmN0
aW9uIHRpY2soZnJhbWVzKSB7CisgICAgLy8gV2UgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGVpdGhl
ciBmb3IgTUFYX0ZSQU1FIG9yIHVudGlsCisgICAgLy8gTUFYX1VOQ0hBTkdFRF9GUkFNRVMgd2l0
aCBubyBjaGFuZ2UgaGF2ZSBiZWVuIG9ic2VydmVkLgorICAgICAgaWYgKGZyYW1lcyA+PSBNQVhf
RlJBTUUgfHwgZnJhbWVzIC0gbGFzdF9jaGFuZ2VkX2ZyYW1lID4gTUFYX1VOQ0hBTkdFRF9GUkFN
RVMpIHsKKyAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgY3VycmVu
dF92YWx1ZSA9IGdldFZhbHVlKCk7CisgICAgICAgIGlmIChsYXN0X3Bvc2l0aW9uICE9IGN1cnJl
bnRfdmFsdWUpIHsKKyAgICAgICAgICBsYXN0X2NoYW5nZWRfZnJhbWUgPSBmcmFtZXM7CisgICAg
ICAgICAgbGFzdF9wb3NpdGlvbiA9IGN1cnJlbnRfdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2suYmluZCh0aGlzLCBmcmFtZXMgKyAxKSk7CisgICAg
ICB9CisgICAgfQorICAgIHRpY2soMCk7CisgIH0pCit9CisKK2Z1bmN0aW9uIHRvdWNoU2Nyb2xs
SW5UYXJnZXQocGl4ZWxzX3RvX3Njcm9sbCwgdGFyZ2V0LCBkaXJlY3Rpb24sIHBhdXNlX3RpbWVf
aW5fbXMgPSAxMDApIHsKKyAgdmFyIHhfZGVsdGEgPSAwOworICB2YXIgeV9kZWx0YSA9IDA7Cisg
IGNvbnN0IG51bV9tb3ZzID0gNTsKKyAgaWYgKGRpcmVjdGlvbiA9PSAiZG93biIpIHsKKyAgICB5
X2RlbHRhID0gLTEgKiBwaXhlbHNfdG9fc2Nyb2xsIC8gbnVtX21vdnM7CisgIH0gZWxzZSBpZiAo
ZGlyZWN0aW9uID09ICJ1cCIpIHsKKyAgICB5X2RlbHRhID0gcGl4ZWxzX3RvX3Njcm9sbCAvIG51
bV9tb3ZzOworICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSAicmlnaHQiKSB7CisgICAgeF9kZWx0
YSA9IC0xICogcGl4ZWxzX3RvX3Njcm9sbCAvIG51bV9tb3ZzOworICB9IGVsc2UgaWYgKGRpcmVj
dGlvbiA9PSAibGVmdCIpIHsKKyAgICB4X2RlbHRhID0gcGl4ZWxzX3RvX3Njcm9sbCAvIG51bV9t
b3ZzOzsKKyAgfSBlbHNlIHsKKyAgICB0aHJvdygic2Nyb2xsIGRpcmVjdGlvbiAnIiArIGRpcmVj
dGlvbiArICInIGlzIG5vdCBleHBlY3RlZCwgZGlyZWN0aW9uIHNob3VsZCBiZSAnZG93bicsICd1
cCcsICdsZWZ0JyBvciAncmlnaHQnIik7CisgIH0KKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5B
Y3Rpb25zKCkKKyAgICAgIC5hZGRQb2ludGVyKCJwb2ludGVyMSIsICJ0b3VjaCIpCisgICAgICAu
cG9pbnRlck1vdmUoMCwgMCwge29yaWdpbjogdGFyZ2V0fSkKKyAgICAgIC5wb2ludGVyRG93bigp
CisgICAgICAucG9pbnRlck1vdmUoeF9kZWx0YSwgeV9kZWx0YSwge29yaWdpbjogdGFyZ2V0fSkK
KyAgICAgIC5wb2ludGVyTW92ZSgyICogeF9kZWx0YSwgMiAqIHlfZGVsdGEsIHtvcmlnaW46IHRh
cmdldH0pCisgICAgICAucG9pbnRlck1vdmUoMyAqIHhfZGVsdGEsIDMgKiB5X2RlbHRhLCB7b3Jp
Z2luOiB0YXJnZXR9KQorICAgICAgLnBvaW50ZXJNb3ZlKDQgKiB4X2RlbHRhLCA0ICogeV9kZWx0
YSwge29yaWdpbjogdGFyZ2V0fSkKKyAgICAgIC5wb2ludGVyTW92ZSg1ICogeF9kZWx0YSwgNSAq
IHlfZGVsdGEsIHtvcmlnaW46IHRhcmdldH0pCisgICAgICAucGF1c2UocGF1c2VfdGltZV9pbl9t
cykKKyAgICAgIC5wb2ludGVyVXAoKQorICAgICAgLnNlbmQoKTsKK30KKworLy8gVHJpZ2dlciBm
bGluZyBieSBkb2luZyBwb2ludGVyVXAgcmlnaHQgYWZ0ZXIgcG9pbnRlck1vdmVzLgorZnVuY3Rp
b24gdG91Y2hGbGluZ0luVGFyZ2V0KHBpeGVsc190b19zY3JvbGwsIHRhcmdldCwgZGlyZWN0aW9u
KSB7CisgIHRvdWNoU2Nyb2xsSW5UYXJnZXQocGl4ZWxzX3RvX3Njcm9sbCwgdGFyZ2V0LCBkaXJl
Y3Rpb24sIDAgLyogcGF1c2VfdGltZSAqLyk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9s
bGVuZC1ldmVudC1maXJlZC1hZnRlci1zbmFwLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVu
dC1maXJlZC1hZnRlci1zbmFwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmVmMWI0OTU3OTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQt
ZXZlbnQtZmlyZWQtYWZ0ZXItc25hcC5odG1sCkBAIC0wLDAgKzEsODYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InNjcm9sbF9zdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2RpdiB7CisgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKK30KKyNzY3JvbGxlciB7CisgIHdpZHRoOiA1MDBweDsKKyAgaGVp
Z2h0OiA1MDBweDsKKyAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgc2Nyb2xsLXNuYXAtdHlwZTogYm90
aCBtYW5kYXRvcnk7CisgIGJvcmRlcjogc29saWQgYmxhY2sgNXB4OworfQorI3NwYWNlIHsKKyAg
d2lkdGg6IDIwMDBweDsKKyAgaGVpZ2h0OiAyMDAwcHg7Cit9CisudGFyZ2V0IHsKKyAgd2lkdGg6
IDIwMHB4OworICBoZWlnaHQ6IDIwMHB4OworICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7Cisg
IGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cit9Cis8L3N0eWxlPgorCis8Ym9keSBzdHlsZT0ibWFy
Z2luOjAiIG9ubG9hZD1ydW5UZXN0cygpPgorICA8ZGl2IGlkPSJzY3JvbGxlciI+CisgICAgPGRp
diBpZD0ic3BhY2UiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InRhcmdldCIgc3R5bGU9ImxlZnQ6
IDBweDsgdG9wOiAwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJ0YXJnZXQiIHN0eWxlPSJs
ZWZ0OiA4MHB4OyB0b3A6IDgwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJ0YXJnZXQiIHN0
eWxlPSJsZWZ0OiAyMDBweDsgdG9wOiAyMDBweDsiPjwvZGl2PgorICA8L2Rpdj4KKzwvYm9keT4K
KworPHNjcmlwdD4KK3ZhciBzY3JvbGxlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3Jv
bGxlciIpOwordmFyIHNwYWNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYWNlIik7Citj
b25zdCBNQVhfRlJBTUVfQ09VTlQgPSA3MDA7Citjb25zdCBNQVhfVU5DSEFOR0VEX0ZSQU1FID0g
MjA7CisKK2Z1bmN0aW9uIHNjcm9sbFRvcCgpIHsKKyAgcmV0dXJuIHNjcm9sbGVyLnNjcm9sbFRv
cDsKK30KKwordmFyIHNjcm9sbF9hcnJpdmVkX2FmdGVyX3Njcm9sbF9lbmQgPSBmYWxzZTsKK3Zh
ciBzY3JvbGxfZW5kX2Fycml2ZWQgPSBmYWxzZTsKK3Njcm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIo
InNjcm9sbCIsICgpID0+IHsKKyAgaWYgKHNjcm9sbF9lbmRfYXJyaXZlZCkKKyAgICBzY3JvbGxf
YXJyaXZlZF9hZnRlcl9zY3JvbGxfZW5kID0gdHJ1ZTsKK30pOworc2Nyb2xsZXIuYWRkRXZlbnRM
aXN0ZW5lcigic2Nyb2xsZW5kIiwgKCkgPT4geworICBzY3JvbGxfZW5kX2Fycml2ZWQgPSB0cnVl
OworfSk7CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICBwcm9taXNlX3Rlc3QgKGFzeW5jICgp
ID0+IHsKKyAgICBhd2FpdCB3YWl0Rm9yQ29tcG9zaXRvckNvbW1pdCgpOworICAgIGF3YWl0IHRv
dWNoU2Nyb2xsSW5UYXJnZXQoMTAwLCBzY3JvbGxlciwgJ2Rvd24nKTsKKyAgICAvLyBXYWl0IGZv
ciB0aGUgc2Nyb2xsIHNuYXAgYW5pbWF0aW9uIHRvIGZpbmlzaC4KKyAgICBhd2FpdCB3YWl0Rm9y
QW5pbWF0aW9uRW5kKHNjcm9sbFRvcCk7CisgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7IHJldHVy
biBzY3JvbGxfZW5kX2Fycml2ZWQ7IH0pOworICAgIC8vIFZlcmlmeSB0aGF0IHNjcm9sbCBzbmFw
IGFuaW1hdGlvbiBoYXMgZmluaXNoZWQgYmVmb3JlIGZpcmluZyBzY3JvbGxlbmQgZXZlbnQuCisg
ICAgYXNzZXJ0X2ZhbHNlKHNjcm9sbF9hcnJpdmVkX2FmdGVyX3Njcm9sbF9lbmQpOworICB9LCAi
VGVzdHMgdGhhdCBzY3JvbGxlbmQgaXMgZmlyZWQgYWZ0ZXIgc2Nyb2xsIHNuYXAgYW5pbWF0aW9u
IGNvbXBsZXRpb24uIik7CisKKyAgcHJvbWlzZV90ZXN0IChhc3luYyAoKSA9PiB7CisgICAgLy8g
UmVzZXQgc2Nyb2xsIHN0YXRlLgorICAgIHNjcm9sbGVyLnNjcm9sbFRvKDAsIDApOworICAgIGF3
YWl0IHdhaXRGb3JDb21wb3NpdG9yQ29tbWl0KCk7CisgICAgc2Nyb2xsX2VuZF9hcnJpdmVkID0g
ZmFsc2U7CisgICAgc2Nyb2xsX2Fycml2ZWRfYWZ0ZXJfc2Nyb2xsX2VuZCA9IGZhbHNlOworCisg
ICAgYXdhaXQgdG91Y2hGbGluZ0luVGFyZ2V0KDUwLCBzY3JvbGxlciwgJ2Rvd24nKTsKKyAgICAv
LyBXYWl0IGZvciB0aGUgc2Nyb2xsIHNuYXAgYW5pbWF0aW9uIHRvIGZpbmlzaC4KKyAgICBhd2Fp
dCB3YWl0Rm9yQW5pbWF0aW9uRW5kKHNjcm9sbFRvcCk7CisgICAgYXdhaXQgd2FpdEZvcigoKSA9
PiB7IHJldHVybiBzY3JvbGxfZW5kX2Fycml2ZWQ7IH0pOworICAgIC8vIFZlcmlmeSB0aGF0IHNj
cm9sbCBzbmFwIGFuaW1hdGlvbiBoYXMgZmluaXNoZWQgYmVmb3JlIGZpcmluZyBzY3JvbGxlbmQg
ZXZlbnQuCisgICAgYXNzZXJ0X2ZhbHNlKHNjcm9sbF9hcnJpdmVkX2FmdGVyX3Njcm9sbF9lbmQp
OworICB9LCAiVGVzdHMgdGhhdCBzY3JvbGxlbmQgaXMgZmlyZWQgYWZ0ZXIgZmxpbmcgc25hcCBh
bmltYXRpb24gY29tcGxldGlvbi4iKTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGlu
Zy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xs
ZW5kLWV2ZW50LWZpcmVkLXRvLWRvY3VtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmEzNTUwOGUyYzU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9z
Y3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDY3IEBACis8
IURPQ1RZUEUgSFRNTD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci1hY3Rpb25zLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzY3JvbGxfc3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisj
dGFyZ2V0RGl2IHsKKyAgd2lkdGg6IDIwMHB4OworICBoZWlnaHQ6IDIwMHB4OworICBvdmVyZmxv
dzogc2Nyb2xsOworfQorCisjaW5uZXJEaXYgeworICB3aWR0aDogNDAwcHg7CisgIGhlaWdodDog
NDAwcHg7Cit9Cis8L3N0eWxlPgorCis8Ym9keSBzdHlsZT0ibWFyZ2luOjAiIG9ubG9hZD1ydW5U
ZXN0KCk+Cis8ZGl2IGlkPSJ0YXJnZXREaXYiPgorICA8ZGl2IGlkPSJpbm5lckRpdiI+CisgIDwv
ZGl2PgorPC9kaXY+Cis8L2JvZHk+CisKKzxzY3JpcHQ+Cit2YXIgdGFyZ2V0X2RpdiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXREaXYnKTsKK3ZhciBob3Jpem9udGFsX3Njcm9sbGVu
ZF9hcnJpdmVkID0gZmFsc2U7Cit2YXIgdmVydGljYWxfc2Nyb2xsZW5kX2Fycml2ZWQgPSBmYWxz
ZTsKK2Z1bmN0aW9uIG9uSG9yaXpvbnRhbFNjcm9sbEVuZChldmVudCkgeworICBhc3NlcnRfZmFs
c2UoZXZlbnQuY2FuY2VsYWJsZSk7CisgIC8vIHNjcm9sbGVuZCBldmVudHMgYXJlIGJ1YmJsZWQg
d2hlbiB0aGUgdGFyZ2V0IG5vZGUgaXMgZG9jdW1lbnQuCisgIGFzc2VydF90cnVlKGV2ZW50LmJ1
YmJsZXMpOworICBob3Jpem9udGFsX3Njcm9sbGVuZF9hcnJpdmVkID0gdHJ1ZTsKK30KK2Z1bmN0
aW9uIG9uVmVydGljYWxTY3JvbGxFbmQoZXZlbnQpIHsKKyAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmNh
bmNlbGFibGUpOworICAvLyBzY3JvbGxlbmQgZXZlbnRzIGFyZSBidWJibGVkIHdoZW4gdGhlIHRh
cmdldCBub2RlIGlzIGRvY3VtZW50LgorICBhc3NlcnRfdHJ1ZShldmVudC5idWJibGVzKTsKKyAg
dmVydGljYWxfc2Nyb2xsZW5kX2Fycml2ZWQgPSB0cnVlOworfQorZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigic2Nyb2xsZW5kIiwgb25Ib3Jpem9udGFsU2Nyb2xsRW5kKTsKK2RvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9uVmVydGljYWxTY3JvbGxFbmQpOworCitmdW5j
dGlvbiBydW5UZXN0KCkgeworICBwcm9taXNlX3Rlc3QgKGFzeW5jICh0KSA9PiB7CisgICAgLy8g
TWFrZSBzdXJlIHRoYXQgbm8gc2Nyb2xsZW5kIGV2ZW50IGlzIHNlbnQgdG8gdGFyZ2V0X2Rpdi4K
KyAgICB0YXJnZXRfZGl2LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsCisgICAgICAgIHQu
dW5yZWFjaGVkX2Z1bmMoInRhcmdldF9kaXYgZ290IHVuZXhwZWN0ZWQgc2Nyb2xsZW5kIGV2ZW50
LiIpKTsKKyAgICBhd2FpdCB3YWl0Rm9yQ29tcG9zaXRvckNvbW1pdCgpOworICAgIC8vIFNjcm9s
bCBsZWZ0IG9uIHRhcmdldCBkaXYgYW5kIHdhaXQgZm9yIHRoZSBkb2MgdG8gZ2V0IHNjcm9sbGVu
ZCBldmVudC4KKyAgICBhd2FpdCB0b3VjaFNjcm9sbEluVGFyZ2V0KDMwMCwgdGFyZ2V0X2Rpdiwg
J2xlZnQnKTsKKyAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIGhvcml6b250YWxfc2Ny
b2xsZW5kX2Fycml2ZWQ7IH0sCisgICAgICAgICdEb2N1bWVudCBkaWQgbm90IHJlY2VpdmUgc2Ny
b2xsZW5kIGV2ZW50IGFmdGVyIHNjcm9sbCBsZWZ0IG9uIHRhcmdldC4nKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKHRhcmdldF9kaXYuc2Nyb2xsTGVmdCwgMCk7CisKKyAgICAvLyBTY3JvbGwgdXAgb24g
dGFyZ2V0IGRpdiBhbmQgd2FpdCBmb3IgdGhlIGRvYyB0byBnZXQgc2Nyb2xsZW5kIGV2ZW50Lgor
ICAgIGF3YWl0IHRvdWNoU2Nyb2xsSW5UYXJnZXQoMzAwLCB0YXJnZXRfZGl2LCAndXAnKTsKKyAg
ICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIHZlcnRpY2FsX3Njcm9sbGVuZF9hcnJpdmVk
OyB9LAorICAgICAgICAnRG9jdW1lbnQgZGlkIG5vdCByZWNlaXZlIHNjcm9sbGVuZCBldmVudCBh
ZnRlciBzY3JvbGwgdXAgb24gdGFyZ2V0LicpOworICAgIGFzc2VydF9lcXVhbHModGFyZ2V0X2Rp
di5zY3JvbGxUb3AsIDApOworICB9LCAnVGVzdHMgdGhhdCB0aGUgZG9jdW1lbnQgZ2V0cyBzY3Jv
bGxlbmQgZXZlbnQgd2hlbiBubyBlbGVtZW50IHNjcm9sbHMgYnkgJyArCisgICAgICd0b3VjaC4n
KTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmly
ZWQtdG8tZWxlbWVudC13aXRoLW92ZXJzY3JvbGwtYmVoYXZpb3IuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Ny
b2xsZW5kLWV2ZW50LWZpcmVkLXRvLWVsZW1lbnQtd2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9yLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAyNjljNjZmZGRlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZWxlbWVu
dC13aXRoLW92ZXJzY3JvbGwtYmVoYXZpb3IuaHRtbApAQCAtMCwwICsxLDkzIEBACis8IURPQ1RZ
UEUgSFRNTD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci1hY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzY3JvbGxfc3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisjb3ZlcnNj
cm9sbFhEaXYgeworICB3aWR0aDogNjAwcHg7CisgIGhlaWdodDogNjAwcHg7CisgIG92ZXJmbG93
OiBzY3JvbGw7CisgIG92ZXJzY3JvbGwtYmVoYXZpb3IteDogY29udGFpbjsKK30KKyNvdmVyc2Ny
b2xsWURpdiB7CisgIHdpZHRoOiA1MDBweDsKKyAgaGVpZ2h0OiA1MDBweDsKKyAgb3ZlcmZsb3c6
IHNjcm9sbDsKKyAgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBub25lOworfQorI3RhcmdldERpdiB7
CisgIHdpZHRoOiA0MDBweDsKKyAgaGVpZ2h0OiA0MDBweDsKKyAgb3ZlcmZsb3c6IHNjcm9sbDsK
K30KKy5jb250ZW50IHsKKyAgd2lkdGg6ODAwcHg7CisgIGhlaWdodDo4MDBweDsKK30KKzwvc3R5
bGU+CisKKzxib2R5IHN0eWxlPSJtYXJnaW46MCIgb25sb2FkPXJ1blRlc3QoKT4KKzxkaXYgaWQ9
Im92ZXJzY3JvbGxYRGl2Ij4KKyAgPGRpdiBjbGFzcz1jb250ZW50PgorICAgIDxkaXYgaWQ9Im92
ZXJzY3JvbGxZRGl2Ij4KKyAgICAgIDxkaXYgY2xhc3M9Y29udGVudD4KKyAgICAgICAgPGRpdiBp
ZD0idGFyZ2V0RGl2Ij4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KKyAgICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9k
aXY+Cis8L2Rpdj4KKzwvYm9keT4KKworPHNjcmlwdD4KK3ZhciB0YXJnZXRfZGl2ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldERpdicpOwordmFyIGhvcml6b250YWxfc2Nyb2xsZW5k
X2Fycml2ZWQgPSBmYWxzZTsKK3ZhciB2ZXJ0aWNhbF9zY3JvbGxlbmRfYXJyaXZlZCA9IGZhbHNl
OworZnVuY3Rpb24gb25Ib3Jpem9udGFsU2Nyb2xsRW5kKGV2ZW50KSB7CisgIGFzc2VydF9mYWxz
ZShldmVudC5jYW5jZWxhYmxlKTsKKyAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmJ1YmJsZXMpOworICBo
b3Jpem9udGFsX3Njcm9sbGVuZF9hcnJpdmVkID0gdHJ1ZTsKK30KK2Z1bmN0aW9uIG9uVmVydGlj
YWxTY3JvbGxFbmQoZXZlbnQpIHsKKyAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmNhbmNlbGFibGUpOwor
ICBhc3NlcnRfZmFsc2UoZXZlbnQuYnViYmxlcyk7CisgIHZlcnRpY2FsX3Njcm9sbGVuZF9hcnJp
dmVkID0gdHJ1ZTsKK30KKy8vIFRlc3QgdGhhdCBib3RoICJvbnNjcm9sbGVuZCIgYW5kIGFkZEV2
ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIuLi4gd29yay4KK2RvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdvdmVyc2Nyb2xsWERpdicpLm9uc2Nyb2xsZW5kID0gb25Ib3Jpem9udGFsU2Nyb2xsRW5kOwor
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ292ZXJzY3JvbGxZRGl2JykuCisgICAgYWRkRXZlbnRM
aXN0ZW5lcigic2Nyb2xsZW5kIiwgb25WZXJ0aWNhbFNjcm9sbEVuZCk7CisKK2Z1bmN0aW9uIHJ1
blRlc3QoKSB7CisgIHByb21pc2VfdGVzdCAoYXN5bmMgKHQpID0+IHsKKyAgICAvLyBNYWtlIHN1
cmUgdGhhdCBubyBzY3JvbGxlbmQgZXZlbnQgaXMgc2VudCB0byBkb2N1bWVudCBvciB0YXJnZXRf
ZGl2LgorICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsCisgICAgICAg
IHQudW5yZWFjaGVkX2Z1bmMoIkRvY3VtZW50IGdvdCB1bmV4cGVjdGVkIHNjcm9sbGVuZCBldmVu
dC4iKSk7CisgICAgdGFyZ2V0X2Rpdi5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLAorICAg
ICAgICB0LnVucmVhY2hlZF9mdW5jKCJ0YXJnZXRfZGl2IGdvdCB1bmV4cGVjdGVkIHNjcm9sbGVu
ZCBldmVudC4iKSk7CisgICAgYXdhaXQgd2FpdEZvckNvbXBvc2l0b3JDb21taXQoKTsKKworICAg
IC8vIFNjcm9sbCBsZWZ0IG9uIHRhcmdldCBkaXYgYW5kIHdhaXQgZm9yIHRoZSBlbGVtZW50IHdp
dGggb3ZlcnNjcm9sbC14IHRvCisgICAgLy8gZ2V0IHNjcm9sbGVuZCBldmVudC4KKyAgICBhd2Fp
dCB0b3VjaFNjcm9sbEluVGFyZ2V0KDMwMCwgdGFyZ2V0X2RpdiwgJ2xlZnQnKTsKKyAgICBhd2Fp
dCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIGhvcml6b250YWxfc2Nyb2xsZW5kX2Fycml2ZWQ7IH0s
CisgICAgICAgICdFeHBlY3RlZCBlbGVtZW50IGRpZCBub3QgcmVjZWl2ZSBzY3JvbGxlbmQgZXZl
bnQgYWZ0ZXIgc2Nyb2xsIGxlZnQgJyArCisgICAgICAgICdvbiB0YXJnZXQuJyk7CisgICAgYXNz
ZXJ0X2VxdWFscyh0YXJnZXRfZGl2LnNjcm9sbExlZnQsIDApOworCisgICAgLy8gU2Nyb2xsIHVw
IG9uIHRhcmdldCBkaXYgYW5kIHdhaXQgZm9yIHRoZSBlbGVtZW50IHdpdGggb3ZlcnNjcm9sbC15
IHRvIGdldAorICAgIC8vIHNjcm9sbGVuZCBldmVudC4KKyAgICBhd2FpdCB0b3VjaFNjcm9sbElu
VGFyZ2V0KDMwMCwgdGFyZ2V0X2RpdiwgJ3VwJyk7CisgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7
IHJldHVybiB2ZXJ0aWNhbF9zY3JvbGxlbmRfYXJyaXZlZDsgfSwKKyAgICAgICAgJ0V4cGVjdGVk
IGVsZW1lbnQgZGlkIG5vdCByZWNlaXZlIHNjcm9sbGVuZCBldmVudCBhZnRlciBzY3JvbGwgdXAg
b24gJyArCisgICAgICAgICd0YXJnZXQuJyk7CisgICAgYXNzZXJ0X2VxdWFscyh0YXJnZXRfZGl2
LnNjcm9sbFRvcCwgMCk7CisgIH0sICdUZXN0cyB0aGF0IHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhl
IGN1dCBzY3JvbGwgY2hhaW4gZ2V0cyBzY3JvbGxlbmQgJyArCisgICAgICdldmVudCB3aGVuIG5v
IGVsZW1lbnQgc2Nyb2xscyBieSB0b3VjaC4nKTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Nj
cm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tc2Nyb2xsZWQtZWxlbWVudC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Nj
cm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tc2Nyb2xsZWQtZWxlbWVudC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44N2NhZDc5ZGY3YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLXNjcm9sbGVkLWVs
ZW1lbnQuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGRyaXZlci1hY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JvbGxfc3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisjc2Nyb2xsYWJsZURpdiB7CisgIHdpZHRoOiAy
MDBweDsKKyAgaGVpZ2h0OiAyMDBweDsKKyAgb3ZlcmZsb3c6IHNjcm9sbDsKK30KKworI2lubmVy
RGl2IHsKKyAgd2lkdGg6IDQwMHB4OworICBoZWlnaHQ6IDQwMHB4OworfQorPC9zdHlsZT4KKwor
PGJvZHkgc3R5bGU9Im1hcmdpbjowIiBvbmxvYWQ9cnVuVGVzdCgpPgorPGRpdiBpZD0ic2Nyb2xs
YWJsZURpdiI+CisgIDxkaXYgaWQ9ImlubmVyRGl2Ij4KKyAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9k
eT4KKworPHNjcmlwdD4KK3ZhciBzY3JvbGxpbmdfZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Njcm9sbGFibGVEaXYnKTsKK3ZhciBob3Jpem9udGFsX3Njcm9sbGVuZF9hcnJpdmVkID0g
ZmFsc2U7Cit2YXIgdmVydGljYWxfc2Nyb2xsZW5kX2Fycml2ZWQgPSBmYWxzZTsKK2Z1bmN0aW9u
IG9uSG9yaXpvbnRhbFNjcm9sbEVuZChldmVudCkgeworICBhc3NlcnRfZmFsc2UoZXZlbnQuY2Fu
Y2VsYWJsZSk7CisgIGFzc2VydF9mYWxzZShldmVudC5idWJibGVzKTsKKyAgaG9yaXpvbnRhbF9z
Y3JvbGxlbmRfYXJyaXZlZCA9IHRydWU7Cit9CitmdW5jdGlvbiBvblZlcnRpY2FsU2Nyb2xsRW5k
KGV2ZW50KSB7CisgIGFzc2VydF9mYWxzZShldmVudC5jYW5jZWxhYmxlKTsKKyAgYXNzZXJ0X2Zh
bHNlKGV2ZW50LmJ1YmJsZXMpOworICB2ZXJ0aWNhbF9zY3JvbGxlbmRfYXJyaXZlZCA9IHRydWU7
Cit9CitzY3JvbGxpbmdfZGl2LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9uSG9yaXpv
bnRhbFNjcm9sbEVuZCk7CitzY3JvbGxpbmdfZGl2LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVu
ZCIsIG9uVmVydGljYWxTY3JvbGxFbmQpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICBwcm9t
aXNlX3Rlc3QgKGFzeW5jICh0KSA9PiB7CisgICAgLy8gTWFrZSBzdXJlIHRoYXQgbm8gc2Nyb2xs
ZW5kIGV2ZW50IGlzIHNlbnQgdG8gZG9jdW1lbnQuCisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigic2Nyb2xsZW5kIiwKKyAgICAgICAgdC51bnJlYWNoZWRfZnVuYygiRG9jdW1lbnQgZ290
IHVuZXhwZWN0ZWQgc2Nyb2xsZW5kIGV2ZW50LiIpKTsKKyAgICBhd2FpdCB3YWl0Rm9yQ29tcG9z
aXRvckNvbW1pdCgpOworCisgICAgLy8gRG8gYSBob3Jpem9udGFsIHNjcm9sbCBhbmQgd2FpdCBm
b3Igc2Nyb2xsZW5kIGV2ZW50LgorICAgIGF3YWl0IHRvdWNoU2Nyb2xsSW5UYXJnZXQoMzAwLCBz
Y3JvbGxpbmdfZGl2LCAncmlnaHQnKTsKKyAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJu
IGhvcml6b250YWxfc2Nyb2xsZW5kX2Fycml2ZWQ7IH0sCisgICAgICAgICdTY3JvbGxlciBkaWQg
bm90IHJlY2VpdmUgc2Nyb2xsZW5kIGV2ZW50IGFmdGVyIGhvcml6b250YWwgc2Nyb2xsLicpOwor
ICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xsaW5nX2Rpdi5zY3JvbGxXaWR0aCAtIHNjcm9sbGluZ19k
aXYuc2Nyb2xsTGVmdCwKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdfZGl2LmNsaWVudFdpZHRo
KTsKKworICAgIC8vIERvIGEgdmVydGljYWwgc2Nyb2xsIGFuZCB3YWl0IGZvciBzY3JvbGxlbmQg
ZXZlbnQuCisgICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAsIHNjcm9sbGluZ19kaXYs
ICdkb3duJyk7CisgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7IHJldHVybiB2ZXJ0aWNhbF9zY3Jv
bGxlbmRfYXJyaXZlZDsgfSwKKyAgICAgICAgJ1Njcm9sbGVyIGRpZCBub3QgcmVjZWl2ZSBzY3Jv
bGxlbmQgZXZlbnQgYWZ0ZXIgdmVydGljYWwgc2Nyb2xsLicpOworICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nX2Rpdi5zY3JvbGxIZWlnaHQgLSBzY3JvbGxpbmdfZGl2LnNjcm9sbFRvcCwKKyAg
ICAgICAgICAgICAgICBzY3JvbGxpbmdfZGl2LmNsaWVudEhlaWdodCk7CisgIH0sICdUZXN0cyB0
aGF0IHRoZSBzY3JvbGxlZCBlbGVtZW50IGdldHMgc2Nyb2xsZW5kIGV2ZW50IGF0IHRoZSBlbmQg
b2YgdG91Y2ggc2Nyb2xsaW5nLicpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5n
L3Njcm9sbGVuZC1ldmVudC1maXJlZC10by13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5k
LWV2ZW50LWZpcmVkLXRvLXdpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5mOTUxMGU2ZTIzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xs
ZW5kLWV2ZW50LWZpcmVkLXRvLXdpbmRvdy5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQ
RSBIVE1MPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InNjcm9sbF9zdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXJnZXRE
aXYgeworICB3aWR0aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7CisgIG92ZXJmbG93OiBzY3Jv
bGw7Cit9CisKKyNpbm5lckRpdiB7CisgIHdpZHRoOiA0MDBweDsKKyAgaGVpZ2h0OiA0MDBweDsK
K30KKzwvc3R5bGU+CisKKzxib2R5IHN0eWxlPSJtYXJnaW46MCIgb25sb2FkPXJ1blRlc3QoKT4K
KzxkaXYgaWQ9InRhcmdldERpdiI+CisgIDxkaXYgaWQ9ImlubmVyRGl2Ij4KKyAgPC9kaXY+Cis8
L2Rpdj4KKzwvYm9keT4KKworPHNjcmlwdD4KK3ZhciB0YXJnZXRfZGl2ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RhcmdldERpdicpOwordmFyIHNjcm9sbGVuZF9hcnJpdmVkID0gZmFsc2U7
CitmdW5jdGlvbiBvblNjcm9sbEVuZChldmVudCkgeworICBhc3NlcnRfZmFsc2UoZXZlbnQuY2Fu
Y2VsYWJsZSk7CisgIC8vIHNjcm9sbGVuZCBldmVudHMgdGFyZ2V0dGluZyBkb2N1bWVudCBhcmUg
YnViYmxlZCB0byB0aGUgd2luZG93LgorICBhc3NlcnRfdHJ1ZShldmVudC5idWJibGVzKTsKKyAg
c2Nyb2xsZW5kX2Fycml2ZWQgPSB0cnVlOworfQord2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNj
cm9sbGVuZCIsIG9uU2Nyb2xsRW5kKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgcHJvbWlz
ZV90ZXN0IChhc3luYyAodCkgPT4geworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IG5vIHNjcm9sbGVu
ZCBldmVudCBpcyBzZW50IHRvIHRhcmdldF9kaXYuCisgICAgdGFyZ2V0X2Rpdi5hZGRFdmVudExp
c3RlbmVyKCJzY3JvbGxlbmQiLAorICAgICAgICB0LnVucmVhY2hlZF9mdW5jKCJ0YXJnZXRfZGl2
IGdvdCB1bmV4cGVjdGVkIHNjcm9sbGVuZCBldmVudC4iKSk7CisgICAgYXdhaXQgd2FpdEZvckNv
bXBvc2l0b3JDb21taXQoKTsKKworICAgIC8vIFNjcm9sbCB1cCBvbiB0YXJnZXQgZGl2IGFuZCB3
YWl0IGZvciB0aGUgZG9jIHRvIGdldCBzY3JvbGxlbmQgZXZlbnQuCisgICAgYXdhaXQgdG91Y2hT
Y3JvbGxJblRhcmdldCgzMDAsIHRhcmdldF9kaXYsICd1cCcpOworICAgIGF3YWl0IHdhaXRGb3Io
KCkgPT4geyByZXR1cm4gc2Nyb2xsZW5kX2Fycml2ZWQ7IH0sCisgICAgICAgICdXaW5kb3cgZGlk
IG5vdCByZWNlaXZlIHNjcm9sbGVuZCBldmVudCBhZnRlciBzY3JvbGwgdXAgb24gdGFyZ2V0Licp
OworICAgIGFzc2VydF9lcXVhbHModGFyZ2V0X2Rpdi5zY3JvbGxUb3AsIDApOworICB9LCAnVGVz
dHMgdGhhdCB0aGUgd2luZG93IGdldHMgc2Nyb2xsZW5kIGV2ZW50IHdoZW4gbm8gZWxlbWVudCBz
Y3JvbGxzICcgKworICAgICAnYWZ0ZXIgdG91Y2ggc2Nyb2xsaW5nLicpOworfQorPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ldmVudHMvc2Nyb2xsaW5nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy93M2MtaW1wb3J0
LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2JlOTEwNTMwZDkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjYg
QEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJ
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKwor
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1By
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0
IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1kb2N1bWVudC5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZl
bnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLWVsZW1lbnQtd2l0aC1vdmVy
c2Nyb2xsLWJlaGF2aW9yLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8t
c2Nyb2xsZWQtZWxlbWVudC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRv
LXdpbmRvdy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxfc3VwcG9ydC5qcworL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xs
ZW5kLWV2ZW50LWZpcmVkLWFmdGVyLXNuYXAuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50
LWZpcmVkLXRvLWRvY3VtZW50Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10
by1lbGVtZW50LXdpdGgtb3ZlcnNjcm9sbC1iZWhhdmlvci5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxl
bmQtZXZlbnQtZmlyZWQtdG8tc2Nyb2xsZWQtZWxlbWVudC5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxl
bmQtZXZlbnQtZmlyZWQtdG8td2luZG93Lmh0bWwKLS0gCjIuMjMuMAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382176</attachid>
            <date>2019-10-29 04:52:15 -0700</date>
            <delta_ts>2019-10-29 14:32:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203500-20191029125214.patch</filename>
            <type>text/plain</type>
            <size>42453</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjk0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2M4MjBiMDFmYjUwYzc5MDIxN2E5
NzBkNTUzM2NjY2ZjNzRmOGYzNi4uYjY3NGQwNDgzZGUzNTFiNjc5M2NlMDhiYWVmMzc5ODgyYzVh
ZjVkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTI5ICBGcmVkZXJpYyBXYW5nICA8
ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBvcnQgV1BUIHRlc3RzIGZvciBzY3JvbGxl
bmQgYW5kIG92ZXJzY3JvbGwgZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDM1MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlIHRlc3RzIG9uIG1v
c3QgcGxhdGZvcm1zLCBzaW5jZQorICAgICAgICBzZW5kRXZlbnRTdHJlYW0gaXMgbm90IHN1cHBv
cnRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczogRW5hYmxlIHRo
ZSB0ZXN0cyBvbiBpT1MuCisKIDIwMTktMTAtMjggIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13KiBhcmUgZmxha3kgdGlt
ZW91dHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDY3MzAwODdkNzI1ZmY0MDUy
ZDQ3MzdjOTRlMDFlMjA5NjIzOTcxN2IuLmYzMjY3YmYxY2VjODc2NDhhYjhjNmFiMDRkZDVkZGE5
ZDM1OWRlOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDE5LTEwLTI5ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAg
ICBJbXBvcnQgV1BUIHRlc3RzIGZvciBzY3JvbGxlbmQgYW5kIG92ZXJzY3JvbGwgZXZlbnRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM1MDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRv
LWRvY3VtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tZWxlbWVu
dC13aXRoLW92ZXJzY3JvbGwtYmVoYXZpb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVu
dC1maXJlZC10by1zY3JvbGxlZC1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZl
bnQtZmlyZWQtdG8td2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC1h
ZnRlci1zbmFwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1kb2N1bWVu
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
ZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZWxlbWVudC13aXRoLW92
ZXJzY3JvbGwtYmVoYXZpb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRv
LXNjcm9sbGVkLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRv
LXdpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDE5LTEwLTI4ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBjc3MvY3NzLXRleHQt
ZGVjb3IgV1BUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5ZWJkODVhNzQ4ZDAyMzRmMDgxODNmODI5
ZTA3Njg2NTkzZGU2N2NmLi4wMDU0MTNhMDUxZDM0ZGM1M2RkNTAxZTg0NmRjZDFkOTc5MjVmM2Vh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1Miw2ICsxNTIsOSBAQCBmYXN0L2Zvcm1zL2NhbGwt
dGV4dC1kaWQtY2hhbmdlLWluLXRleHQtZmllbGQtd2hlbi10eXBpbmcuaHRtbCBbIFNraXAgXQog
IyBPbmx5IE1hYyBhbmQgaU9TIGhhdmUgYW4gaW1wbGVtZW50YXRpb24gb2YgVUlTY3JpcHRDb250
cm9sbGVyOjpkb0FzeW5jVGFzaygpLgogZmFzdC9oYXJuZXNzL3Vpc2NyaXB0Y29udHJvbGxlciBb
IFNraXAgXQogCisjIE9ubHkgaU9TIGhhcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBVSVNjcmlwdENv
bnRyb2xsZXI6OnNlbmRFdmVudFN0cmVhbSgpLgoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZyBbIFNraXAgXQorCiAjIFRoaXMgdGVzdCBvbmx5IG1h
a2VzIHNlbnNlIG9uIE1hYwogZmFzdC9hdHRhY2htZW50L2F0dGFjaG1lbnQtc3VidGl0bGUtcmVz
aXplLmh0bWwgWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgppbmRleCBkMTUwNWYxZDAx
ZTk0ZTllMDIyZDA3YTU5MWI0ZGQzZTVjMmQxMThhLi43MzJiOWU3MzRmNzYyNmRlYTBmNWVhNmY0
OWUwMTVjODI2OGU5NDI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVz
b3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgpAQCAtMTA1LDcgKzEwNSw3
IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvdjAiOiAic2tpcCIs
IAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL2V2ZW50cyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nIjogInNraXAiLCAKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNlLXRlc3RzL2Vt
cHR5Lmh0bWwiOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0Rv
Y3VtZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNlLXRlc3RzL2VtcHR5LnN2ZyI6ICJza2lwIiwg
CiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtY3JlYXRlRWxlbWVu
dC1uYW1lc3BhY2UtdGVzdHMvZW1wdHkueGh0bWwiOiAic2tpcCIsIApAQCAtMzgyLDQgKzM4Miw0
IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cyI6ICJza2lwIiwgCiAgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy94LWZyYW1lLW9wdGlvbnMiOiAic2tpcCIsIAogICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMveGhyIjogImltcG9ydCIKLX0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tZG9jdW1l
bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLWRvY3Vt
ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2MxYjNlN2ZiNjk3MDhjNDZhMGJkMTEwYmJi
MTlhNGFmMTM0MThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50
LWZpcmVkLXRvLWRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBU
ZXN0cyB0aGF0IHRoZSBkb2N1bWVudCBnZXRzIG92ZXJzY3JvbGwgZXZlbnQgd2hlbiBubyBlbGVt
ZW50IHNjcm9sbHMgYWZ0ZXIgdG91Y2ggc2Nyb2xsaW5nLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIkRvY3VtZW50IGRpZCBub3QgcmVjZWl2ZSBvdmVyc2Ny
b2xsIGV2ZW50IGFmdGVyIHNjcm9sbCB1cCBvbiB0YXJnZXQuIgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xs
aW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3Zl
cnNjcm9sbC1ldmVudC1maXJlZC10by1kb2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNTRmZmNh
OWM0NzFmNzhjZTVkMWNiYWEyMTBmYTdhYWQzYWVlM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xs
aW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDYy
IEBACis8IURPQ1RZUEUgSFRNTD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci1hY3Rpb25zLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JvbGxfc3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c3R5
bGU+CisjdGFyZ2V0RGl2IHsKKyAgd2lkdGg6IDIwMHB4OworICBoZWlnaHQ6IDIwMHB4OworICBv
dmVyZmxvdzogc2Nyb2xsOworfQorCisjaW5uZXJEaXYgeworICB3aWR0aDogNDAwcHg7CisgIGhl
aWdodDogNDAwcHg7Cit9Cis8L3N0eWxlPgorCis8Ym9keSBzdHlsZT0ibWFyZ2luOjAiIG9ubG9h
ZD1ydW5UZXN0KCk+Cis8ZGl2IGlkPSJ0YXJnZXREaXYiPgorICA8ZGl2IGlkPSJpbm5lckRpdiI+
CisgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+CisKKzxzY3JpcHQ+Cit2YXIgdGFyZ2V0X2RpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXREaXYnKTsKK3ZhciBvdmVyc2Nyb2xsZWRf
eF9kZWx0YSA9IDA7Cit2YXIgb3ZlcnNjcm9sbGVkX3lfZGVsdGEgPSAwOworZnVuY3Rpb24gb25P
dmVyc2Nyb2xsKGV2ZW50KSB7CisgIGFzc2VydF9mYWxzZShldmVudC5jYW5jZWxhYmxlKTsKKyAg
Ly8gb3ZlcnNjcm9sbCBldmVudHMgYXJlIGJ1YmJsZWQgd2hlbiB0aGUgdGFyZ2V0IG5vZGUgaXMg
ZG9jdW1lbnQuCisgIGFzc2VydF90cnVlKGV2ZW50LmJ1YmJsZXMpOworICBvdmVyc2Nyb2xsZWRf
eF9kZWx0YSA9IGV2ZW50LmRlbHRhWDsKKyAgb3ZlcnNjcm9sbGVkX3lfZGVsdGEgPSBldmVudC5k
ZWx0YVk7Cit9Citkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJvdmVyc2Nyb2xsIiwgb25PdmVy
c2Nyb2xsKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgcHJvbWlzZV90ZXN0IChhc3luYyAo
dCkgPT4geworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IG5vIG92ZXJzY3JvbGwgZXZlbnQgaXMgc2Vu
dCB0byB0YXJnZXRfZGl2LgorICAgIHRhcmdldF9kaXYuYWRkRXZlbnRMaXN0ZW5lcigib3ZlcnNj
cm9sbCIsCisgICAgICAgIHQudW5yZWFjaGVkX2Z1bmMoInRhcmdldF9kaXYgZ290IHVuZXhwZWN0
ZWQgb3ZlcnNjcm9sbCBldmVudC4iKSk7CisgICAgYXdhaXQgd2FpdEZvckNvbXBvc2l0b3JDb21t
aXQoKTsKKworICAgIC8vIFNjcm9sbCB1cCBvbiB0YXJnZXQgZGl2IGFuZCB3YWl0IGZvciB0aGUg
ZG9jIHRvIGdldCBvdmVyc2Nyb2xsIGV2ZW50LgorICAgIGF3YWl0IHRvdWNoU2Nyb2xsSW5UYXJn
ZXQoMzAwLCB0YXJnZXRfZGl2LCAndXAnKTsKKyAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0
dXJuIG92ZXJzY3JvbGxlZF95X2RlbHRhIDwgMDsgfSwKKyAgICAgICAgJ0RvY3VtZW50IGRpZCBu
b3QgcmVjZWl2ZSBvdmVyc2Nyb2xsIGV2ZW50IGFmdGVyIHNjcm9sbCB1cCBvbiB0YXJnZXQuJyk7
CisgICAgYXNzZXJ0X2VxdWFscyh0YXJnZXRfZGl2LnNjcm9sbFRvcCwgMCk7CisKKyAgICAvLyBT
Y3JvbGwgbGVmdCBvbiB0YXJnZXQgZGl2IGFuZCB3YWl0IGZvciB0aGUgZG9jIHRvIGdldCBvdmVy
c2Nyb2xsIGV2ZW50LgorICAgIGF3YWl0IHRvdWNoU2Nyb2xsSW5UYXJnZXQoMzAwLCB0YXJnZXRf
ZGl2LCAnbGVmdCcpOworICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geyByZXR1cm4gb3ZlcnNjcm9s
bGVkX3hfZGVsdGEgPCAwOyB9LAorICAgICAgICAnRG9jdW1lbnQgZGlkIG5vdCByZWNlaXZlIG92
ZXJzY3JvbGwgZXZlbnQgYWZ0ZXIgc2Nyb2xsIGxlZnQgb24gdGFyZ2V0LicpOworICAgIGFzc2Vy
dF9lcXVhbHModGFyZ2V0X2Rpdi5zY3JvbGxMZWZ0LCAwKTsKKyAgfSwgJ1Rlc3RzIHRoYXQgdGhl
IGRvY3VtZW50IGdldHMgb3ZlcnNjcm9sbCBldmVudCB3aGVuIG5vIGVsZW1lbnQgc2Nyb2xscyAn
ICsKKyAgICAgICdhZnRlciB0b3VjaCBzY3JvbGxpbmcuJyk7Cit9Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2
ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1lbGVtZW50LXdpdGgtb3Zl
cnNjcm9sbC1iZWhhdmlvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQt
ZmlyZWQtdG8tZWxlbWVudC13aXRoLW92ZXJzY3JvbGwtYmVoYXZpb3ItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk2NDc2MDFmZDkwODc2MzRiZWJlZGVmN2U4YzdhYzdiM2FiM2U4ZGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tZWxlbWVudC13
aXRoLW92ZXJzY3JvbGwtYmVoYXZpb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitG
QUlMIFRlc3RzIHRoYXQgdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgY3V0IHNjcm9sbCBjaGFpbiBn
ZXRzIG92ZXJzY3JvbGwgZXZlbnQgd2hlbiBubyBlbGVtZW50IHNjcm9sbHMgYnkgdG91Y2guIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiRXhwZWN0ZWQgZWxl
bWVudCBkaWQgbm90IHJlY2VpdmUgb3ZlcnNjcm9sbCBldmVudCBhZnRlciBzY3JvbGwgdXAgb24g
dGFyZ2V0LiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRv
LWVsZW1lbnQtd2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3Jv
bGwtZXZlbnQtZmlyZWQtdG8tZWxlbWVudC13aXRoLW92ZXJzY3JvbGwtYmVoYXZpb3IuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43NTAwODBlNjU2OGU4NjNhOTI0OWJjNjJlNTI5NzFkOTQ1OWY4NDE4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLWVsZW1lbnQt
d2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9yLmh0bWwKQEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBF
IEhUTUw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic2Nyb2xsX3N1cHBvcnQuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI292ZXJzY3Jv
bGxYRGl2IHsKKyAgd2lkdGg6IDYwMHB4OworICBoZWlnaHQ6IDYwMHB4OworICBvdmVyZmxvdzog
c2Nyb2xsOworICBvdmVyc2Nyb2xsLWJlaGF2aW9yLXg6IGNvbnRhaW47Cit9Cisjb3ZlcnNjcm9s
bFlEaXYgeworICB3aWR0aDogNTAwcHg7CisgIGhlaWdodDogNTAwcHg7CisgIG92ZXJmbG93OiBz
Y3JvbGw7CisgIG92ZXJzY3JvbGwtYmVoYXZpb3IteTogbm9uZTsKK30KKyN0YXJnZXREaXYgewor
ICB3aWR0aDogNDAwcHg7CisgIGhlaWdodDogNDAwcHg7CisgIG92ZXJmbG93OiBzY3JvbGw7Cit9
CisuY29udGVudCB7CisgIHdpZHRoOjgwMHB4OworICBoZWlnaHQ6ODAwcHg7Cit9Cis8L3N0eWxl
PgorCis8Ym9keSBzdHlsZT0ibWFyZ2luOjAiIG9ubG9hZD1ydW5UZXN0KCk+Cis8ZGl2IGlkPSJv
dmVyc2Nyb2xsWERpdiI+CisgIDxkaXYgY2xhc3M9Y29udGVudD4KKyAgICA8ZGl2IGlkPSJvdmVy
c2Nyb2xsWURpdiI+CisgICAgICA8ZGl2IGNsYXNzPWNvbnRlbnQ+CisgICAgICAgIDxkaXYgaWQ9
InRhcmdldERpdiI+CisgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CisgICAgICAgICAg
PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2
PgorPC9kaXY+Cis8L2JvZHk+CisKKzxzY3JpcHQ+Cit2YXIgdGFyZ2V0X2RpdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0YXJnZXREaXYnKTsKK3ZhciBvdmVyc2Nyb2xsZWRfeF9kZWx0YSA9
IDA7Cit2YXIgb3ZlcnNjcm9sbGVkX3lfZGVsdGEgPSAwOworZnVuY3Rpb24gb25PdmVyc2Nyb2xs
WChldmVudCkgeworICBhc3NlcnRfZmFsc2UoZXZlbnQuY2FuY2VsYWJsZSk7CisgIGFzc2VydF9m
YWxzZShldmVudC5idWJibGVzKTsKKyAgb3ZlcnNjcm9sbGVkX3hfZGVsdGEgPSBldmVudC5kZWx0
YVg7Cit9CitmdW5jdGlvbiBvbk92ZXJzY3JvbGxZKGV2ZW50KSB7CisgIGFzc2VydF9mYWxzZShl
dmVudC5jYW5jZWxhYmxlKTsKKyAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmJ1YmJsZXMpOworICBvdmVy
c2Nyb2xsZWRfeV9kZWx0YSA9IGV2ZW50LmRlbHRhWTsKK30KKy8vIFRlc3QgdGhhdCBib3RoICJv
bm92ZXJzY3JvbGwiIGFuZCBhZGRFdmVudExpc3RlbmVyKCJvdmVyc2Nyb2xsIi4uLiB3b3JrLgor
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ292ZXJzY3JvbGxYRGl2Jykub25vdmVyc2Nyb2xsID0g
b25PdmVyc2Nyb2xsWDsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdmVyc2Nyb2xsWURpdicp
LgorICAgIGFkZEV2ZW50TGlzdGVuZXIoIm92ZXJzY3JvbGwiLCBvbk92ZXJzY3JvbGxZKTsKKwor
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgcHJvbWlzZV90ZXN0IChhc3luYyAodCkgPT4geworICAg
IC8vIE1ha2Ugc3VyZSB0aGF0IG5vIG92ZXJzY3JvbGwgZXZlbnQgaXMgc2VudCB0byBkb2N1bWVu
dCBvciB0YXJnZXRfZGl2LgorICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm92ZXJzY3Jv
bGwiLAorICAgICAgICB0LnVucmVhY2hlZF9mdW5jKCJEb2N1bWVudCBnb3QgdW5leHBlY3RlZCBv
dmVyc2Nyb2xsIGV2ZW50LiIpKTsKKyAgICB0YXJnZXRfZGl2LmFkZEV2ZW50TGlzdGVuZXIoIm92
ZXJzY3JvbGwiLAorICAgICAgICB0LnVucmVhY2hlZF9mdW5jKCJ0YXJnZXRfZGl2IGdvdCB1bmV4
cGVjdGVkIG92ZXJzY3JvbGwgZXZlbnQuIikpOworICAgIGF3YWl0IHdhaXRGb3JDb21wb3NpdG9y
Q29tbWl0KCk7CisgICAgLy8gU2Nyb2xsIHVwIG9uIHRhcmdldCBkaXYgYW5kIHdhaXQgZm9yIHRo
ZSBlbGVtZW50IHdpdGggb3ZlcnNjcm9sbC15IHRvIGdldAorICAgIC8vIG92ZXJzY3JvbGwgZXZl
bnQuCisgICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAsIHRhcmdldF9kaXYsICd1cCcp
OworICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geyByZXR1cm4gb3ZlcnNjcm9sbGVkX3lfZGVsdGEg
PCAwOyB9LAorICAgICAgICAnRXhwZWN0ZWQgZWxlbWVudCBkaWQgbm90IHJlY2VpdmUgb3ZlcnNj
cm9sbCBldmVudCBhZnRlciBzY3JvbGwgdXAgb24gJyArCisgICAgICAgICd0YXJnZXQuJyk7Cisg
ICAgYXNzZXJ0X2VxdWFscyh0YXJnZXRfZGl2LnNjcm9sbFRvcCwgMCk7CisKKyAgICAvLyBTY3Jv
bGwgbGVmdCBvbiB0YXJnZXQgZGl2IGFuZCB3YWl0IGZvciB0aGUgZWxlbWVudCB3aXRoIG92ZXJz
Y3JvbGwteCB0bworICAgIC8vIGdldCBvdmVyc2Nyb2xsIGV2ZW50LgorICAgIGF3YWl0IHRvdWNo
U2Nyb2xsSW5UYXJnZXQoMzAwLCB0YXJnZXRfZGl2LCAnbGVmdCcpOworICAgIGF3YWl0IHdhaXRG
b3IoKCkgPT4geyByZXR1cm4gb3ZlcnNjcm9sbGVkX3hfZGVsdGEgPCAwOyB9LAorICAgICAgICAn
RXhwZWN0ZWQgZWxlbWVudCBkaWQgbm90IHJlY2VpdmUgb3ZlcnNjcm9sbCBldmVudCBhZnRlciBz
Y3JvbGwgbGVmdCAnICsKKyAgICAgICAgJ29uIHRhcmdldC4nKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHRhcmdldF9kaXYuc2Nyb2xsTGVmdCwgMCk7CisgIH0sICdUZXN0cyB0aGF0IHRoZSBsYXN0IGVs
ZW1lbnQgaW4gdGhlIGN1dCBzY3JvbGwgY2hhaW4gZ2V0cyBvdmVyc2Nyb2xsICcgKworICAgICAn
ZXZlbnQgd2hlbiBubyBlbGVtZW50IHNjcm9sbHMgYnkgdG91Y2guJyk7Cit9Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1zY3JvbGxlZC1l
bGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1z
Y3JvbGxlZC1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDE1MTc4M2YzNjNkNTEz
ZDkzMjE0ZWIxMGE3NzY1OTg3ZjQxNzNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVy
c2Nyb2xsLWV2ZW50LWZpcmVkLXRvLXNjcm9sbGVkLWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitGQUlMIFRlc3RzIHRoYXQgdGhlIHNjcm9sbGVkIGVsZW1lbnQgZ2V0cyBv
dmVyc2Nyb2xsIGV2ZW50IGFmdGVyIGZ1bGx5IHNjcm9sbGluZyBieSB0b3VjaC4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTY3JvbGxlciBkaWQgbm90IHJl
Y2VpdmUgb3ZlcnNjcm9sbCBldmVudCBhZnRlciBob3Jpem9udGFsIHNjcm9sbC4iCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2
ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1zY3JvbGxlZC1lbGVtZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9l
dmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tc2Nyb2xsZWQtZWxlbWVu
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNmYzc4MmE4MDlhN2U3M2E5ZDBhODRkOTM4Y2FhYzZhNzA0ZDc4
NGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8t
c2Nyb2xsZWQtZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBIVE1MPgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InNjcm9sbF9zdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyNzY3JvbGxhYmxlRGl2IHsK
KyAgd2lkdGg6IDIwMHB4OworICBoZWlnaHQ6IDIwMHB4OworICBvdmVyZmxvdzogc2Nyb2xsOwor
fQorCisjaW5uZXJEaXYgeworICB3aWR0aDogNDAwcHg7CisgIGhlaWdodDogNDAwcHg7Cit9Cis8
L3N0eWxlPgorCis8Ym9keSBzdHlsZT0ibWFyZ2luOjAiIG9ubG9hZD1ydW5UZXN0KCk+Cis8ZGl2
IGlkPSJzY3JvbGxhYmxlRGl2Ij4KKyAgPGRpdiBpZD0iaW5uZXJEaXYiPgorICA8L2Rpdj4KKzwv
ZGl2PgorPC9ib2R5PgorCis8c2NyaXB0PgordmFyIHNjcm9sbGluZ19kaXYgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnc2Nyb2xsYWJsZURpdicpOwordmFyIG92ZXJzY3JvbGxlZF94X2RlbHRh
ID0gMDsKK3ZhciBvdmVyc2Nyb2xsZWRfeV9kZWx0YSA9IDA7CitmdW5jdGlvbiBvbk92ZXJzY3Jv
bGwoZXZlbnQpIHsKKyAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmNhbmNlbGFibGUpOworICBhc3NlcnRf
ZmFsc2UoZXZlbnQuYnViYmxlcyk7CisgIG92ZXJzY3JvbGxlZF94X2RlbHRhID0gZXZlbnQuZGVs
dGFYOworICBvdmVyc2Nyb2xsZWRfeV9kZWx0YSA9IGV2ZW50LmRlbHRhWTsKK30KK3Njcm9sbGlu
Z19kaXYuYWRkRXZlbnRMaXN0ZW5lcigib3ZlcnNjcm9sbCIsIG9uT3ZlcnNjcm9sbCk7CisKK2Z1
bmN0aW9uIHJ1blRlc3QoKSB7CisgIHByb21pc2VfdGVzdCAoYXN5bmMgKHQpID0+IHsKKyAgICAv
LyBNYWtlIHN1cmUgdGhhdCBubyBvdmVyc2Nyb2xsIGV2ZW50IGlzIHNlbnQgdG8gZG9jdW1lbnQu
CisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigib3ZlcnNjcm9sbCIsCisgICAgICAgIHQu
dW5yZWFjaGVkX2Z1bmMoIkRvY3VtZW50IGdvdCB1bmV4cGVjdGVkIG92ZXJzY3JvbGwgZXZlbnQu
IikpOworICAgIGF3YWl0IHdhaXRGb3JDb21wb3NpdG9yQ29tbWl0KCk7CisKKyAgICAvLyBEbyBh
IGhvcml6b250YWwgc2Nyb2xsIGFuZCB3YWl0IGZvciBvdmVyc2Nyb2xsIGV2ZW50LgorICAgIGF3
YWl0IHRvdWNoU2Nyb2xsSW5UYXJnZXQoMzAwLCBzY3JvbGxpbmdfZGl2ICwgJ3JpZ2h0Jyk7Cisg
ICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7IHJldHVybiBvdmVyc2Nyb2xsZWRfeF9kZWx0YSA+IDA7
IH0sCisgICAgICAgICdTY3JvbGxlciBkaWQgbm90IHJlY2VpdmUgb3ZlcnNjcm9sbCBldmVudCBh
ZnRlciBob3Jpem9udGFsIHNjcm9sbC4nKTsKKyAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ19k
aXYuc2Nyb2xsV2lkdGggLSBzY3JvbGxpbmdfZGl2LnNjcm9sbExlZnQsCisgICAgICAgICAgICAg
ICAgc2Nyb2xsaW5nX2Rpdi5jbGllbnRXaWR0aCk7CisKKyAgICBvdmVyc2Nyb2xsZWRfeF9kZWx0
YSA9IDA7CisgICAgb3ZlcnNjcm9sbGVkX3lfZGVsdGEgPSAwOworCisgICAgLy8gRG8gYSB2ZXJ0
aWNhbCBzY3JvbGwgYW5kIHdhaXQgZm9yIG92ZXJzY3JvbGwgZXZlbnQuCisgICAgYXdhaXQgdG91
Y2hTY3JvbGxJblRhcmdldCgzMDAsIHNjcm9sbGluZ19kaXYsICdkb3duJyk7CisgICAgYXdhaXQg
d2FpdEZvcigoKSA9PiB7IHJldHVybiBvdmVyc2Nyb2xsZWRfeV9kZWx0YSA+IDA7IH0sCisgICAg
ICAgICdTY3JvbGxlciBkaWQgbm90IHJlY2VpdmUgb3ZlcnNjcm9sbCBldmVudCBhZnRlciB2ZXJ0
aWNhbCBzY3JvbGwuJyk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdfZGl2LnNjcm9sbEhl
aWdodCAtIHNjcm9sbGluZ19kaXYuc2Nyb2xsVG9wLAorICAgICAgICAgICAgICAgIHNjcm9sbGlu
Z19kaXYuY2xpZW50SGVpZ2h0KTsKKyAgfSwgJ1Rlc3RzIHRoYXQgdGhlIHNjcm9sbGVkIGVsZW1l
bnQgZ2V0cyBvdmVyc2Nyb2xsIGV2ZW50IGFmdGVyIGZ1bGx5IHNjcm9sbGluZyBieSB0b3VjaC4n
KTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZp
cmVkLXRvLXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmly
ZWQtdG8td2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGNmMDY1MjZjMDNmOWYzNDA2
ZGY3NDg0NmFhZTcxNzQ1MjAzZDcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Ny
b2xsLWV2ZW50LWZpcmVkLXRvLXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K0ZBSUwgVGVzdHMgdGhhdCB0aGUgd2luZG93IGdldHMgb3ZlcnNjcm9sbCBldmVudCB3aGVuIG5v
IGVsZW1lbnQgc2Nyb2xsc2FmdGVyIHRvdWNoIHNjcm9sbGluZy4gcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJXaW5kb3cgZGlkIG5vdCByZWNlaXZlIG92ZXJz
Y3JvbGwgZXZlbnQgYWZ0ZXIgc2Nyb2xsIHVwIG9uIHRhcmdldC4iCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3Jv
bGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by13aW5kb3cuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3Zl
cnNjcm9sbC1ldmVudC1maXJlZC10by13aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjVhZTNkYWVm
ODE1OGM5NDI0Y2YwN2FkMDkxYzZhOTQ1NDU2ZDBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGlu
Zy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLXdpbmRvdy5odG1sCkBAIC0wLDAgKzEsNTIgQEAK
KzwhRE9DVFlQRSBIVE1MPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InNjcm9sbF9zdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
KyN0YXJnZXREaXYgeworICB3aWR0aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7CisgIG92ZXJm
bG93OiBzY3JvbGw7Cit9CisKKyNpbm5lckRpdiB7CisgIHdpZHRoOiA0MDBweDsKKyAgaGVpZ2h0
OiA0MDBweDsKK30KKzwvc3R5bGU+CisKKzxib2R5IHN0eWxlPSJtYXJnaW46MCIgb25sb2FkPXJ1
blRlc3QoKT4KKzxkaXYgaWQ9InRhcmdldERpdiI+CisgIDxkaXYgaWQ9ImlubmVyRGl2Ij4KKyAg
PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKworPHNjcmlwdD4KK3ZhciB0YXJnZXRfZGl2ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldERpdicpOwordmFyIHdpbmRvd19yZWNlaXZlZF9v
dmVyc2Nyb2xsID0gZmFsc2U7CisKK2Z1bmN0aW9uIG9uT3ZlcnNjcm9sbChldmVudCkgeworICBh
c3NlcnRfZmFsc2UoZXZlbnQuY2FuY2VsYWJsZSk7CisgIC8vIG92ZXJzY3JvbGwgZXZlbnRzIHRh
cmdldHRpbmcgZG9jdW1lbnQgYXJlIGJ1YmJsZWQgdG8gdGhlIHdpbmRvdy4KKyAgYXNzZXJ0X3Ry
dWUoZXZlbnQuYnViYmxlcyk7CisgIHdpbmRvd19yZWNlaXZlZF9vdmVyc2Nyb2xsID0gdHJ1ZTsK
K30KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvdmVyc2Nyb2xsIiwgb25PdmVyc2Nyb2xsKTsK
KworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgcHJvbWlzZV90ZXN0IChhc3luYyAodCkgPT4gewor
ICAgIC8vIE1ha2Ugc3VyZSB0aGF0IG5vIG92ZXJzY3JvbGwgZXZlbnQgaXMgc2VudCB0byB0YXJn
ZXRfZGl2LgorICAgIHRhcmdldF9kaXYuYWRkRXZlbnRMaXN0ZW5lcigib3ZlcnNjcm9sbCIsCisg
ICAgICAgIHQudW5yZWFjaGVkX2Z1bmMoInRhcmdldF9kaXYgZ290IHVuZXhwZWN0ZWQgb3ZlcnNj
cm9sbCBldmVudC4iKSk7CisgICAgLy8gU2Nyb2xsIHVwIG9uIHRhcmdldCBkaXYgYW5kIHdhaXQg
Zm9yIHRoZSB3aW5kb3cgdG8gZ2V0IG92ZXJzY3JvbGwgZXZlbnQuCisgICAgYXdhaXQgdG91Y2hT
Y3JvbGxJblRhcmdldCgzMDAsIHRhcmdldF9kaXYsICd1cCcpOworICAgIGF3YWl0IHdhaXRGb3Io
KCkgPT4geyByZXR1cm4gd2luZG93X3JlY2VpdmVkX292ZXJzY3JvbGw7IH0sCisgICAgICAgICdX
aW5kb3cgZGlkIG5vdCByZWNlaXZlIG92ZXJzY3JvbGwgZXZlbnQgYWZ0ZXIgc2Nyb2xsIHVwIG9u
IHRhcmdldC4nKTsKKyAgfSwgJ1Rlc3RzIHRoYXQgdGhlIHdpbmRvdyBnZXRzIG92ZXJzY3JvbGwg
ZXZlbnQgd2hlbiBubyBlbGVtZW50IHNjcm9sbHMnICsKKyAgICAgJ2FmdGVyIHRvdWNoIHNjcm9s
bGluZy4nKTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxfc3VwcG9y
dC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2
ZW50cy9zY3JvbGxpbmcvc2Nyb2xsX3N1cHBvcnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZkMWIzMjI5NGJi
ODkzM2I1ZTk5MThlYTgyNjBiODczYjk4N2Y4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcv
c2Nyb2xsX3N1cHBvcnQuanMKQEAgLTAsMCArMSw4NSBAQAorY29uc3QgTUFYX0ZSQU1FID0gNzAw
OworY29uc3QgTUFYX1VOQ0hBTkdFRF9GUkFNRVMgPSAyMDsKKworLy8gUmV0dXJucyBhIHByb21p
c2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBnaXZlbiBjb25kaXRpb24gaXMgbWV0IG9yIHJlamVj
dHMKKy8vIGFmdGVyIE1BWF9GUkFNRSBhbmltYXRpb24gZnJhbWVzLgorZnVuY3Rpb24gd2FpdEZv
cihjb25kaXRpb24sIGVycm9yX21lc3NhZ2UgPSAnUmVhY2hlcyB0aGUgbWF4aW11bSBmcmFtZXMu
JykgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgIGZ1
bmN0aW9uIHRpY2soZnJhbWVzKSB7CisgICAgICAvLyBXZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUg
ZWl0aGVyIGZvciBNQVhfRlJBTSBmcmFtZXMgb3IgdW50aWwgY29uZGl0aW9uCisgICAgICAvLyBp
cyBtZXQuCisgICAgICBpZiAoZnJhbWVzID49IE1BWF9GUkFNRSkKKyAgICAgICAgcmVqZWN0KGVy
cm9yX21lc3NhZ2UpOworICAgICAgZWxzZSBpZiAoY29uZGl0aW9uKCkpCisgICAgICAgIHJlc29s
dmUoKTsKKyAgICAgIGVsc2UKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2suYmlu
ZCh0aGlzLCBmcmFtZXMgKyAxKSk7CisgICAgfQorICAgIHRpY2soMCk7CisgIH0pOworfQorCitm
dW5jdGlvbiB3YWl0Rm9yQ29tcG9zaXRvckNvbW1pdCgpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7CisgICAgLy8gckFGIHR3aWNlLgorICAgIHdpbmRvdy5yZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShy
ZXNvbHZlKTsKKyAgICB9KTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3JBbmltYXRpb25F
bmQoZ2V0VmFsdWUpIHsKKyAgdmFyIGxhc3RfY2hhbmdlZF9mcmFtZSA9IDA7CisgIHZhciBsYXN0
X3Bvc2l0aW9uID0gZ2V0VmFsdWUoKTsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCBy
ZWplY3QpID0+IHsKKyAgICBmdW5jdGlvbiB0aWNrKGZyYW1lcykgeworICAgIC8vIFdlIHJlcXVl
c3RBbmltYXRpb25GcmFtZSBlaXRoZXIgZm9yIE1BWF9GUkFNRSBvciB1bnRpbAorICAgIC8vIE1B
WF9VTkNIQU5HRURfRlJBTUVTIHdpdGggbm8gY2hhbmdlIGhhdmUgYmVlbiBvYnNlcnZlZC4KKyAg
ICAgIGlmIChmcmFtZXMgPj0gTUFYX0ZSQU1FIHx8IGZyYW1lcyAtIGxhc3RfY2hhbmdlZF9mcmFt
ZSA+IE1BWF9VTkNIQU5HRURfRlJBTUVTKSB7CisgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0g
ZWxzZSB7CisgICAgICAgIGN1cnJlbnRfdmFsdWUgPSBnZXRWYWx1ZSgpOworICAgICAgICBpZiAo
bGFzdF9wb3NpdGlvbiAhPSBjdXJyZW50X3ZhbHVlKSB7CisgICAgICAgICAgbGFzdF9jaGFuZ2Vk
X2ZyYW1lID0gZnJhbWVzOworICAgICAgICAgIGxhc3RfcG9zaXRpb24gPSBjdXJyZW50X3ZhbHVl
OworICAgICAgICB9CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aWNrLmJpbmQodGhp
cywgZnJhbWVzICsgMSkpOworICAgICAgfQorICAgIH0KKyAgICB0aWNrKDApOworICB9KQorfQor
CitmdW5jdGlvbiB0b3VjaFNjcm9sbEluVGFyZ2V0KHBpeGVsc190b19zY3JvbGwsIHRhcmdldCwg
ZGlyZWN0aW9uLCBwYXVzZV90aW1lX2luX21zID0gMTAwKSB7CisgIHZhciB4X2RlbHRhID0gMDsK
KyAgdmFyIHlfZGVsdGEgPSAwOworICBjb25zdCBudW1fbW92cyA9IDU7CisgIGlmIChkaXJlY3Rp
b24gPT0gImRvd24iKSB7CisgICAgeV9kZWx0YSA9IC0xICogcGl4ZWxzX3RvX3Njcm9sbCAvIG51
bV9tb3ZzOworICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSAidXAiKSB7CisgICAgeV9kZWx0YSA9
IHBpeGVsc190b19zY3JvbGwgLyBudW1fbW92czsKKyAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT0g
InJpZ2h0IikgeworICAgIHhfZGVsdGEgPSAtMSAqIHBpeGVsc190b19zY3JvbGwgLyBudW1fbW92
czsKKyAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT0gImxlZnQiKSB7CisgICAgeF9kZWx0YSA9IHBp
eGVsc190b19zY3JvbGwgLyBudW1fbW92czs7CisgIH0gZWxzZSB7CisgICAgdGhyb3coInNjcm9s
bCBkaXJlY3Rpb24gJyIgKyBkaXJlY3Rpb24gKyAiJyBpcyBub3QgZXhwZWN0ZWQsIGRpcmVjdGlv
biBzaG91bGQgYmUgJ2Rvd24nLCAndXAnLCAnbGVmdCcgb3IgJ3JpZ2h0JyIpOworICB9CisgIHJl
dHVybiBuZXcgdGVzdF9kcml2ZXIuQWN0aW9ucygpCisgICAgICAuYWRkUG9pbnRlcigicG9pbnRl
cjEiLCAidG91Y2giKQorICAgICAgLnBvaW50ZXJNb3ZlKDAsIDAsIHtvcmlnaW46IHRhcmdldH0p
CisgICAgICAucG9pbnRlckRvd24oKQorICAgICAgLnBvaW50ZXJNb3ZlKHhfZGVsdGEsIHlfZGVs
dGEsIHtvcmlnaW46IHRhcmdldH0pCisgICAgICAucG9pbnRlck1vdmUoMiAqIHhfZGVsdGEsIDIg
KiB5X2RlbHRhLCB7b3JpZ2luOiB0YXJnZXR9KQorICAgICAgLnBvaW50ZXJNb3ZlKDMgKiB4X2Rl
bHRhLCAzICogeV9kZWx0YSwge29yaWdpbjogdGFyZ2V0fSkKKyAgICAgIC5wb2ludGVyTW92ZSg0
ICogeF9kZWx0YSwgNCAqIHlfZGVsdGEsIHtvcmlnaW46IHRhcmdldH0pCisgICAgICAucG9pbnRl
ck1vdmUoNSAqIHhfZGVsdGEsIDUgKiB5X2RlbHRhLCB7b3JpZ2luOiB0YXJnZXR9KQorICAgICAg
LnBhdXNlKHBhdXNlX3RpbWVfaW5fbXMpCisgICAgICAucG9pbnRlclVwKCkKKyAgICAgIC5zZW5k
KCk7Cit9CisKKy8vIFRyaWdnZXIgZmxpbmcgYnkgZG9pbmcgcG9pbnRlclVwIHJpZ2h0IGFmdGVy
IHBvaW50ZXJNb3Zlcy4KK2Z1bmN0aW9uIHRvdWNoRmxpbmdJblRhcmdldChwaXhlbHNfdG9fc2Ny
b2xsLCB0YXJnZXQsIGRpcmVjdGlvbikgeworICB0b3VjaFNjcm9sbEluVGFyZ2V0KHBpeGVsc190
b19zY3JvbGwsIHRhcmdldCwgZGlyZWN0aW9uLCAwIC8qIHBhdXNlX3RpbWUgKi8pOworfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
ZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtYWZ0ZXItc25hcC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9l
dmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC1hZnRlci1zbmFwLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNzM2YmMxNDBhNDAwYTM4Mzc2MDgxZjM2MzVhMTczMGU4ODk0NmVk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtYWZ0ZXIt
c25hcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK0ZBSUwgVGVzdHMgdGhhdCBzY3Jv
bGxlbmQgaXMgZmlyZWQgYWZ0ZXIgc2Nyb2xsIHNuYXAgYW5pbWF0aW9uIGNvbXBsZXRpb24uIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiUmVhY2hlcyB0aGUg
bWF4aW11bSBmcmFtZXMuIgorRkFJTCBUZXN0cyB0aGF0IHNjcm9sbGVuZCBpcyBmaXJlZCBhZnRl
ciBmbGluZyBzbmFwIGFuaW1hdGlvbiBjb21wbGV0aW9uLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlJlYWNoZXMgdGhlIG1heGltdW0gZnJhbWVzLiIKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtYWZ0ZXItc25hcC5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRz
L3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtYWZ0ZXItc25hcC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVmMWI0OTU3OTFjYWQxMDc5MDYzMTgwNjE5ODYxYmZiYjBkNWU2ODIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9l
dmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC1hZnRlci1zbmFwLmh0bWwKQEAg
LTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJp
dmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0
aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZl
bmRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2Nyb2xsX3N1cHBvcnQuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgorZGl2IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworfQorI3Njcm9sbGVy
IHsKKyAgd2lkdGg6IDUwMHB4OworICBoZWlnaHQ6IDUwMHB4OworICBvdmVyZmxvdzogc2Nyb2xs
OworICBzY3JvbGwtc25hcC10eXBlOiBib3RoIG1hbmRhdG9yeTsKKyAgYm9yZGVyOiBzb2xpZCBi
bGFjayA1cHg7Cit9Cisjc3BhY2UgeworICB3aWR0aDogMjAwMHB4OworICBoZWlnaHQ6IDIwMDBw
eDsKK30KKy50YXJnZXQgeworICB3aWR0aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7CisgIHNj
cm9sbC1zbmFwLWFsaWduOiBzdGFydDsKKyAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKzwv
c3R5bGU+CisKKzxib2R5IHN0eWxlPSJtYXJnaW46MCIgb25sb2FkPXJ1blRlc3RzKCk+CisgIDxk
aXYgaWQ9InNjcm9sbGVyIj4KKyAgICA8ZGl2IGlkPSJzcGFjZSI+PC9kaXY+CisgICAgPGRpdiBj
bGFzcz0idGFyZ2V0IiBzdHlsZT0ibGVmdDogMHB4OyB0b3A6IDBweDsiPjwvZGl2PgorICAgIDxk
aXYgY2xhc3M9InRhcmdldCIgc3R5bGU9ImxlZnQ6IDgwcHg7IHRvcDogODBweDsiPjwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9InRhcmdldCIgc3R5bGU9ImxlZnQ6IDIwMHB4OyB0b3A6IDIwMHB4OyI+
PC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorCis8c2NyaXB0PgordmFyIHNjcm9sbGVyID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcm9sbGVyIik7Cit2YXIgc3BhY2UgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3BhY2UiKTsKK2NvbnN0IE1BWF9GUkFNRV9DT1VOVCA9IDcwMDsKK2Nv
bnN0IE1BWF9VTkNIQU5HRURfRlJBTUUgPSAyMDsKKworZnVuY3Rpb24gc2Nyb2xsVG9wKCkgewor
ICByZXR1cm4gc2Nyb2xsZXIuc2Nyb2xsVG9wOworfQorCit2YXIgc2Nyb2xsX2Fycml2ZWRfYWZ0
ZXJfc2Nyb2xsX2VuZCA9IGZhbHNlOwordmFyIHNjcm9sbF9lbmRfYXJyaXZlZCA9IGZhbHNlOwor
c2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgKCkgPT4geworICBpZiAoc2Nyb2xs
X2VuZF9hcnJpdmVkKQorICAgIHNjcm9sbF9hcnJpdmVkX2FmdGVyX3Njcm9sbF9lbmQgPSB0cnVl
OworfSk7CitzY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLCAoKSA9PiB7Cisg
IHNjcm9sbF9lbmRfYXJyaXZlZCA9IHRydWU7Cit9KTsKKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7
CisgIHByb21pc2VfdGVzdCAoYXN5bmMgKCkgPT4geworICAgIGF3YWl0IHdhaXRGb3JDb21wb3Np
dG9yQ29tbWl0KCk7CisgICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgxMDAsIHNjcm9sbGVy
LCAnZG93bicpOworICAgIC8vIFdhaXQgZm9yIHRoZSBzY3JvbGwgc25hcCBhbmltYXRpb24gdG8g
ZmluaXNoLgorICAgIGF3YWl0IHdhaXRGb3JBbmltYXRpb25FbmQoc2Nyb2xsVG9wKTsKKyAgICBh
d2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIHNjcm9sbF9lbmRfYXJyaXZlZDsgfSk7CisgICAg
Ly8gVmVyaWZ5IHRoYXQgc2Nyb2xsIHNuYXAgYW5pbWF0aW9uIGhhcyBmaW5pc2hlZCBiZWZvcmUg
ZmlyaW5nIHNjcm9sbGVuZCBldmVudC4KKyAgICBhc3NlcnRfZmFsc2Uoc2Nyb2xsX2Fycml2ZWRf
YWZ0ZXJfc2Nyb2xsX2VuZCk7CisgIH0sICJUZXN0cyB0aGF0IHNjcm9sbGVuZCBpcyBmaXJlZCBh
ZnRlciBzY3JvbGwgc25hcCBhbmltYXRpb24gY29tcGxldGlvbi4iKTsKKworICBwcm9taXNlX3Rl
c3QgKGFzeW5jICgpID0+IHsKKyAgICAvLyBSZXNldCBzY3JvbGwgc3RhdGUuCisgICAgc2Nyb2xs
ZXIuc2Nyb2xsVG8oMCwgMCk7CisgICAgYXdhaXQgd2FpdEZvckNvbXBvc2l0b3JDb21taXQoKTsK
KyAgICBzY3JvbGxfZW5kX2Fycml2ZWQgPSBmYWxzZTsKKyAgICBzY3JvbGxfYXJyaXZlZF9hZnRl
cl9zY3JvbGxfZW5kID0gZmFsc2U7CisKKyAgICBhd2FpdCB0b3VjaEZsaW5nSW5UYXJnZXQoNTAs
IHNjcm9sbGVyLCAnZG93bicpOworICAgIC8vIFdhaXQgZm9yIHRoZSBzY3JvbGwgc25hcCBhbmlt
YXRpb24gdG8gZmluaXNoLgorICAgIGF3YWl0IHdhaXRGb3JBbmltYXRpb25FbmQoc2Nyb2xsVG9w
KTsKKyAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIHNjcm9sbF9lbmRfYXJyaXZlZDsg
fSk7CisgICAgLy8gVmVyaWZ5IHRoYXQgc2Nyb2xsIHNuYXAgYW5pbWF0aW9uIGhhcyBmaW5pc2hl
ZCBiZWZvcmUgZmlyaW5nIHNjcm9sbGVuZCBldmVudC4KKyAgICBhc3NlcnRfZmFsc2Uoc2Nyb2xs
X2Fycml2ZWRfYWZ0ZXJfc2Nyb2xsX2VuZCk7CisgIH0sICJUZXN0cyB0aGF0IHNjcm9sbGVuZCBp
cyBmaXJlZCBhZnRlciBmbGluZyBzbmFwIGFuaW1hdGlvbiBjb21wbGV0aW9uLiIpOworfQorPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1kb2N1
bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1kb2N1
bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAxN2I5MTRlNDJhNWY0YjY2ZjYzZjViNWQ5
Y2E3Y2IwMjA1N2Q2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50
LWZpcmVkLXRvLWRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBU
ZXN0cyB0aGF0IHRoZSBkb2N1bWVudCBnZXRzIHNjcm9sbGVuZCBldmVudCB3aGVuIG5vIGVsZW1l
bnQgc2Nyb2xscyBieSB0b3VjaC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6ICJEb2N1bWVudCBkaWQgbm90IHJlY2VpdmUgc2Nyb2xsZW5kIGV2ZW50IGFmdGVy
IHNjcm9sbCBsZWZ0IG9uIHRhcmdldC4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5k
LWV2ZW50LWZpcmVkLXRvLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1m
aXJlZC10by1kb2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNTUwOGUyYzU1N2E5MjgwODAyYWIz
ZDBkOTM3ZmNlMDM2MjhlNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1l
dmVudC1maXJlZC10by1kb2N1bWVudC5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBI
VE1MPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InNjcm9sbF9zdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXJnZXREaXYg
eworICB3aWR0aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7CisgIG92ZXJmbG93OiBzY3JvbGw7
Cit9CisKKyNpbm5lckRpdiB7CisgIHdpZHRoOiA0MDBweDsKKyAgaGVpZ2h0OiA0MDBweDsKK30K
Kzwvc3R5bGU+CisKKzxib2R5IHN0eWxlPSJtYXJnaW46MCIgb25sb2FkPXJ1blRlc3QoKT4KKzxk
aXYgaWQ9InRhcmdldERpdiI+CisgIDxkaXYgaWQ9ImlubmVyRGl2Ij4KKyAgPC9kaXY+Cis8L2Rp
dj4KKzwvYm9keT4KKworPHNjcmlwdD4KK3ZhciB0YXJnZXRfZGl2ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RhcmdldERpdicpOwordmFyIGhvcml6b250YWxfc2Nyb2xsZW5kX2Fycml2ZWQg
PSBmYWxzZTsKK3ZhciB2ZXJ0aWNhbF9zY3JvbGxlbmRfYXJyaXZlZCA9IGZhbHNlOworZnVuY3Rp
b24gb25Ib3Jpem9udGFsU2Nyb2xsRW5kKGV2ZW50KSB7CisgIGFzc2VydF9mYWxzZShldmVudC5j
YW5jZWxhYmxlKTsKKyAgLy8gc2Nyb2xsZW5kIGV2ZW50cyBhcmUgYnViYmxlZCB3aGVuIHRoZSB0
YXJnZXQgbm9kZSBpcyBkb2N1bWVudC4KKyAgYXNzZXJ0X3RydWUoZXZlbnQuYnViYmxlcyk7Cisg
IGhvcml6b250YWxfc2Nyb2xsZW5kX2Fycml2ZWQgPSB0cnVlOworfQorZnVuY3Rpb24gb25WZXJ0
aWNhbFNjcm9sbEVuZChldmVudCkgeworICBhc3NlcnRfZmFsc2UoZXZlbnQuY2FuY2VsYWJsZSk7
CisgIC8vIHNjcm9sbGVuZCBldmVudHMgYXJlIGJ1YmJsZWQgd2hlbiB0aGUgdGFyZ2V0IG5vZGUg
aXMgZG9jdW1lbnQuCisgIGFzc2VydF90cnVlKGV2ZW50LmJ1YmJsZXMpOworICB2ZXJ0aWNhbF9z
Y3JvbGxlbmRfYXJyaXZlZCA9IHRydWU7Cit9Citkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJz
Y3JvbGxlbmQiLCBvbkhvcml6b250YWxTY3JvbGxFbmQpOworZG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigic2Nyb2xsZW5kIiwgb25WZXJ0aWNhbFNjcm9sbEVuZCk7CisKK2Z1bmN0aW9uIHJ1blRl
c3QoKSB7CisgIHByb21pc2VfdGVzdCAoYXN5bmMgKHQpID0+IHsKKyAgICAvLyBNYWtlIHN1cmUg
dGhhdCBubyBzY3JvbGxlbmQgZXZlbnQgaXMgc2VudCB0byB0YXJnZXRfZGl2LgorICAgIHRhcmdl
dF9kaXYuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwKKyAgICAgICAgdC51bnJlYWNoZWRf
ZnVuYygidGFyZ2V0X2RpdiBnb3QgdW5leHBlY3RlZCBzY3JvbGxlbmQgZXZlbnQuIikpOworICAg
IGF3YWl0IHdhaXRGb3JDb21wb3NpdG9yQ29tbWl0KCk7CisgICAgLy8gU2Nyb2xsIGxlZnQgb24g
dGFyZ2V0IGRpdiBhbmQgd2FpdCBmb3IgdGhlIGRvYyB0byBnZXQgc2Nyb2xsZW5kIGV2ZW50Lgor
ICAgIGF3YWl0IHRvdWNoU2Nyb2xsSW5UYXJnZXQoMzAwLCB0YXJnZXRfZGl2LCAnbGVmdCcpOwor
ICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geyByZXR1cm4gaG9yaXpvbnRhbF9zY3JvbGxlbmRfYXJy
aXZlZDsgfSwKKyAgICAgICAgJ0RvY3VtZW50IGRpZCBub3QgcmVjZWl2ZSBzY3JvbGxlbmQgZXZl
bnQgYWZ0ZXIgc2Nyb2xsIGxlZnQgb24gdGFyZ2V0LicpOworICAgIGFzc2VydF9lcXVhbHModGFy
Z2V0X2Rpdi5zY3JvbGxMZWZ0LCAwKTsKKworICAgIC8vIFNjcm9sbCB1cCBvbiB0YXJnZXQgZGl2
IGFuZCB3YWl0IGZvciB0aGUgZG9jIHRvIGdldCBzY3JvbGxlbmQgZXZlbnQuCisgICAgYXdhaXQg
dG91Y2hTY3JvbGxJblRhcmdldCgzMDAsIHRhcmdldF9kaXYsICd1cCcpOworICAgIGF3YWl0IHdh
aXRGb3IoKCkgPT4geyByZXR1cm4gdmVydGljYWxfc2Nyb2xsZW5kX2Fycml2ZWQ7IH0sCisgICAg
ICAgICdEb2N1bWVudCBkaWQgbm90IHJlY2VpdmUgc2Nyb2xsZW5kIGV2ZW50IGFmdGVyIHNjcm9s
bCB1cCBvbiB0YXJnZXQuJyk7CisgICAgYXNzZXJ0X2VxdWFscyh0YXJnZXRfZGl2LnNjcm9sbFRv
cCwgMCk7CisgIH0sICdUZXN0cyB0aGF0IHRoZSBkb2N1bWVudCBnZXRzIHNjcm9sbGVuZCBldmVu
dCB3aGVuIG5vIGVsZW1lbnQgc2Nyb2xscyBieSAnICsKKyAgICAgJ3RvdWNoLicpOworfQorPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1lbGVt
ZW50LXdpdGgtb3ZlcnNjcm9sbC1iZWhhdmlvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9s
bGVuZC1ldmVudC1maXJlZC10by1lbGVtZW50LXdpdGgtb3ZlcnNjcm9sbC1iZWhhdmlvci1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ2NGZhZWFiZjdlMGU4ZTQ5MzljNzIyYWU4OTg2ZmExMjE1
ZjIzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRv
LWVsZW1lbnQtd2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworRkFJTCBUZXN0cyB0aGF0IHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGN1dCBzY3Jv
bGwgY2hhaW4gZ2V0cyBzY3JvbGxlbmQgZXZlbnQgd2hlbiBubyBlbGVtZW50IHNjcm9sbHMgYnkg
dG91Y2guIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiRXhw
ZWN0ZWQgZWxlbWVudCBkaWQgbm90IHJlY2VpdmUgc2Nyb2xsZW5kIGV2ZW50IGFmdGVyIHNjcm9s
bCBsZWZ0IG9uIHRhcmdldC4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50
LWZpcmVkLXRvLWVsZW1lbnQtd2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9yLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5n
L3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1lbGVtZW50LXdpdGgtb3ZlcnNjcm9sbC1iZWhhdmlv
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAyNjljNjZmZGRlMTkyMmNhOWQ5OTdhMzE4OTgzMTEzNmJhNTli
MTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1l
bGVtZW50LXdpdGgtb3ZlcnNjcm9sbC1iZWhhdmlvci5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzwh
RE9DVFlQRSBIVE1MPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InNjcm9sbF9zdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyNv
dmVyc2Nyb2xsWERpdiB7CisgIHdpZHRoOiA2MDBweDsKKyAgaGVpZ2h0OiA2MDBweDsKKyAgb3Zl
cmZsb3c6IHNjcm9sbDsKKyAgb3ZlcnNjcm9sbC1iZWhhdmlvci14OiBjb250YWluOworfQorI292
ZXJzY3JvbGxZRGl2IHsKKyAgd2lkdGg6IDUwMHB4OworICBoZWlnaHQ6IDUwMHB4OworICBvdmVy
Zmxvdzogc2Nyb2xsOworICBvdmVyc2Nyb2xsLWJlaGF2aW9yLXk6IG5vbmU7Cit9CisjdGFyZ2V0
RGl2IHsKKyAgd2lkdGg6IDQwMHB4OworICBoZWlnaHQ6IDQwMHB4OworICBvdmVyZmxvdzogc2Ny
b2xsOworfQorLmNvbnRlbnQgeworICB3aWR0aDo4MDBweDsKKyAgaGVpZ2h0OjgwMHB4OworfQor
PC9zdHlsZT4KKworPGJvZHkgc3R5bGU9Im1hcmdpbjowIiBvbmxvYWQ9cnVuVGVzdCgpPgorPGRp
diBpZD0ib3ZlcnNjcm9sbFhEaXYiPgorICA8ZGl2IGNsYXNzPWNvbnRlbnQ+CisgICAgPGRpdiBp
ZD0ib3ZlcnNjcm9sbFlEaXYiPgorICAgICAgPGRpdiBjbGFzcz1jb250ZW50PgorICAgICAgICA8
ZGl2IGlkPSJ0YXJnZXREaXYiPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgorICAg
ICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2Pgor
ICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorCis8c2NyaXB0PgordmFyIHRhcmdldF9kaXYgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0RGl2Jyk7Cit2YXIgaG9yaXpvbnRhbF9zY3Jv
bGxlbmRfYXJyaXZlZCA9IGZhbHNlOwordmFyIHZlcnRpY2FsX3Njcm9sbGVuZF9hcnJpdmVkID0g
ZmFsc2U7CitmdW5jdGlvbiBvbkhvcml6b250YWxTY3JvbGxFbmQoZXZlbnQpIHsKKyAgYXNzZXJ0
X2ZhbHNlKGV2ZW50LmNhbmNlbGFibGUpOworICBhc3NlcnRfZmFsc2UoZXZlbnQuYnViYmxlcyk7
CisgIGhvcml6b250YWxfc2Nyb2xsZW5kX2Fycml2ZWQgPSB0cnVlOworfQorZnVuY3Rpb24gb25W
ZXJ0aWNhbFNjcm9sbEVuZChldmVudCkgeworICBhc3NlcnRfZmFsc2UoZXZlbnQuY2FuY2VsYWJs
ZSk7CisgIGFzc2VydF9mYWxzZShldmVudC5idWJibGVzKTsKKyAgdmVydGljYWxfc2Nyb2xsZW5k
X2Fycml2ZWQgPSB0cnVlOworfQorLy8gVGVzdCB0aGF0IGJvdGggIm9uc2Nyb2xsZW5kIiBhbmQg
YWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIi4uLiB3b3JrLgorZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ292ZXJzY3JvbGxYRGl2Jykub25zY3JvbGxlbmQgPSBvbkhvcml6b250YWxTY3JvbGxF
bmQ7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3ZlcnNjcm9sbFlEaXYnKS4KKyAgICBhZGRF
dmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLCBvblZlcnRpY2FsU2Nyb2xsRW5kKTsKKworZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgcHJvbWlzZV90ZXN0IChhc3luYyAodCkgPT4geworICAgIC8vIE1h
a2Ugc3VyZSB0aGF0IG5vIHNjcm9sbGVuZCBldmVudCBpcyBzZW50IHRvIGRvY3VtZW50IG9yIHRh
cmdldF9kaXYuCisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwKKyAg
ICAgICAgdC51bnJlYWNoZWRfZnVuYygiRG9jdW1lbnQgZ290IHVuZXhwZWN0ZWQgc2Nyb2xsZW5k
IGV2ZW50LiIpKTsKKyAgICB0YXJnZXRfZGl2LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIs
CisgICAgICAgIHQudW5yZWFjaGVkX2Z1bmMoInRhcmdldF9kaXYgZ290IHVuZXhwZWN0ZWQgc2Ny
b2xsZW5kIGV2ZW50LiIpKTsKKyAgICBhd2FpdCB3YWl0Rm9yQ29tcG9zaXRvckNvbW1pdCgpOwor
CisgICAgLy8gU2Nyb2xsIGxlZnQgb24gdGFyZ2V0IGRpdiBhbmQgd2FpdCBmb3IgdGhlIGVsZW1l
bnQgd2l0aCBvdmVyc2Nyb2xsLXggdG8KKyAgICAvLyBnZXQgc2Nyb2xsZW5kIGV2ZW50LgorICAg
IGF3YWl0IHRvdWNoU2Nyb2xsSW5UYXJnZXQoMzAwLCB0YXJnZXRfZGl2LCAnbGVmdCcpOworICAg
IGF3YWl0IHdhaXRGb3IoKCkgPT4geyByZXR1cm4gaG9yaXpvbnRhbF9zY3JvbGxlbmRfYXJyaXZl
ZDsgfSwKKyAgICAgICAgJ0V4cGVjdGVkIGVsZW1lbnQgZGlkIG5vdCByZWNlaXZlIHNjcm9sbGVu
ZCBldmVudCBhZnRlciBzY3JvbGwgbGVmdCAnICsKKyAgICAgICAgJ29uIHRhcmdldC4nKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHRhcmdldF9kaXYuc2Nyb2xsTGVmdCwgMCk7CisKKyAgICAvLyBTY3Jv
bGwgdXAgb24gdGFyZ2V0IGRpdiBhbmQgd2FpdCBmb3IgdGhlIGVsZW1lbnQgd2l0aCBvdmVyc2Ny
b2xsLXkgdG8gZ2V0CisgICAgLy8gc2Nyb2xsZW5kIGV2ZW50LgorICAgIGF3YWl0IHRvdWNoU2Ny
b2xsSW5UYXJnZXQoMzAwLCB0YXJnZXRfZGl2LCAndXAnKTsKKyAgICBhd2FpdCB3YWl0Rm9yKCgp
ID0+IHsgcmV0dXJuIHZlcnRpY2FsX3Njcm9sbGVuZF9hcnJpdmVkOyB9LAorICAgICAgICAnRXhw
ZWN0ZWQgZWxlbWVudCBkaWQgbm90IHJlY2VpdmUgc2Nyb2xsZW5kIGV2ZW50IGFmdGVyIHNjcm9s
bCB1cCBvbiAnICsKKyAgICAgICAgJ3RhcmdldC4nKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhcmdl
dF9kaXYuc2Nyb2xsVG9wLCAwKTsKKyAgfSwgJ1Rlc3RzIHRoYXQgdGhlIGxhc3QgZWxlbWVudCBp
biB0aGUgY3V0IHNjcm9sbCBjaGFpbiBnZXRzIHNjcm9sbGVuZCAnICsKKyAgICAgJ2V2ZW50IHdo
ZW4gbm8gZWxlbWVudCBzY3JvbGxzIGJ5IHRvdWNoLicpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVu
dHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1zY3JvbGxlZC1lbGVtZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLXNjcm9sbGVkLWVs
ZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmZDRiZjY2Y2Y1M2UwNDU2NDBmODAwYjNk
MWRjMDAwZDVmM2YyNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVu
dC1maXJlZC10by1zY3JvbGxlZC1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworRkFJTCBUZXN0cyB0aGF0IHRoZSBzY3JvbGxlZCBlbGVtZW50IGdldHMgc2Nyb2xsZW5kIGV2
ZW50IGF0IHRoZSBlbmQgb2YgdG91Y2ggc2Nyb2xsaW5nLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlNjcm9sbGVyIGRpZCBub3QgcmVjZWl2ZSBzY3JvbGxl
bmQgZXZlbnQgYWZ0ZXIgaG9yaXpvbnRhbCBzY3JvbGwuIgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5n
L3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1zY3JvbGxlZC1lbGVtZW50Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5n
L3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1zY3JvbGxlZC1lbGVtZW50Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODdjYWQ3OWRmN2MyYWYxODM1ZGIyZmM3ZmU5MjE5OGNlZWVmODNlYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2
ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLXNjcm9sbGVkLWVsZW1lbnQu
aHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRy
aXZlci1hY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rk
cml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JvbGxfc3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisjc2Nyb2xsYWJsZURpdiB7CisgIHdpZHRoOiAyMDBweDsK
KyAgaGVpZ2h0OiAyMDBweDsKKyAgb3ZlcmZsb3c6IHNjcm9sbDsKK30KKworI2lubmVyRGl2IHsK
KyAgd2lkdGg6IDQwMHB4OworICBoZWlnaHQ6IDQwMHB4OworfQorPC9zdHlsZT4KKworPGJvZHkg
c3R5bGU9Im1hcmdpbjowIiBvbmxvYWQ9cnVuVGVzdCgpPgorPGRpdiBpZD0ic2Nyb2xsYWJsZURp
diI+CisgIDxkaXYgaWQ9ImlubmVyRGl2Ij4KKyAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKwor
PHNjcmlwdD4KK3ZhciBzY3JvbGxpbmdfZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nj
cm9sbGFibGVEaXYnKTsKK3ZhciBob3Jpem9udGFsX3Njcm9sbGVuZF9hcnJpdmVkID0gZmFsc2U7
Cit2YXIgdmVydGljYWxfc2Nyb2xsZW5kX2Fycml2ZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIG9uSG9y
aXpvbnRhbFNjcm9sbEVuZChldmVudCkgeworICBhc3NlcnRfZmFsc2UoZXZlbnQuY2FuY2VsYWJs
ZSk7CisgIGFzc2VydF9mYWxzZShldmVudC5idWJibGVzKTsKKyAgaG9yaXpvbnRhbF9zY3JvbGxl
bmRfYXJyaXZlZCA9IHRydWU7Cit9CitmdW5jdGlvbiBvblZlcnRpY2FsU2Nyb2xsRW5kKGV2ZW50
KSB7CisgIGFzc2VydF9mYWxzZShldmVudC5jYW5jZWxhYmxlKTsKKyAgYXNzZXJ0X2ZhbHNlKGV2
ZW50LmJ1YmJsZXMpOworICB2ZXJ0aWNhbF9zY3JvbGxlbmRfYXJyaXZlZCA9IHRydWU7Cit9Citz
Y3JvbGxpbmdfZGl2LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9uSG9yaXpvbnRhbFNj
cm9sbEVuZCk7CitzY3JvbGxpbmdfZGl2LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9u
VmVydGljYWxTY3JvbGxFbmQpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICBwcm9taXNlX3Rl
c3QgKGFzeW5jICh0KSA9PiB7CisgICAgLy8gTWFrZSBzdXJlIHRoYXQgbm8gc2Nyb2xsZW5kIGV2
ZW50IGlzIHNlbnQgdG8gZG9jdW1lbnQuCisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
c2Nyb2xsZW5kIiwKKyAgICAgICAgdC51bnJlYWNoZWRfZnVuYygiRG9jdW1lbnQgZ290IHVuZXhw
ZWN0ZWQgc2Nyb2xsZW5kIGV2ZW50LiIpKTsKKyAgICBhd2FpdCB3YWl0Rm9yQ29tcG9zaXRvckNv
bW1pdCgpOworCisgICAgLy8gRG8gYSBob3Jpem9udGFsIHNjcm9sbCBhbmQgd2FpdCBmb3Igc2Ny
b2xsZW5kIGV2ZW50LgorICAgIGF3YWl0IHRvdWNoU2Nyb2xsSW5UYXJnZXQoMzAwLCBzY3JvbGxp
bmdfZGl2LCAncmlnaHQnKTsKKyAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIGhvcml6
b250YWxfc2Nyb2xsZW5kX2Fycml2ZWQ7IH0sCisgICAgICAgICdTY3JvbGxlciBkaWQgbm90IHJl
Y2VpdmUgc2Nyb2xsZW5kIGV2ZW50IGFmdGVyIGhvcml6b250YWwgc2Nyb2xsLicpOworICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nX2Rpdi5zY3JvbGxXaWR0aCAtIHNjcm9sbGluZ19kaXYuc2Ny
b2xsTGVmdCwKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdfZGl2LmNsaWVudFdpZHRoKTsKKwor
ICAgIC8vIERvIGEgdmVydGljYWwgc2Nyb2xsIGFuZCB3YWl0IGZvciBzY3JvbGxlbmQgZXZlbnQu
CisgICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAsIHNjcm9sbGluZ19kaXYsICdkb3du
Jyk7CisgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7IHJldHVybiB2ZXJ0aWNhbF9zY3JvbGxlbmRf
YXJyaXZlZDsgfSwKKyAgICAgICAgJ1Njcm9sbGVyIGRpZCBub3QgcmVjZWl2ZSBzY3JvbGxlbmQg
ZXZlbnQgYWZ0ZXIgdmVydGljYWwgc2Nyb2xsLicpOworICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nX2Rpdi5zY3JvbGxIZWlnaHQgLSBzY3JvbGxpbmdfZGl2LnNjcm9sbFRvcCwKKyAgICAgICAg
ICAgICAgICBzY3JvbGxpbmdfZGl2LmNsaWVudEhlaWdodCk7CisgIH0sICdUZXN0cyB0aGF0IHRo
ZSBzY3JvbGxlZCBlbGVtZW50IGdldHMgc2Nyb2xsZW5kIGV2ZW50IGF0IHRoZSBlbmQgb2YgdG91
Y2ggc2Nyb2xsaW5nLicpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9s
bGVuZC1ldmVudC1maXJlZC10by13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxl
bmQtZXZlbnQtZmlyZWQtdG8td2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDk1Mjgw
NjY0MDYyMzI4YWJjODdiNDZkODBjM2U0YWFlNmZhMTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9s
bGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8td2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworRkFJTCBUZXN0cyB0aGF0IHRoZSB3aW5kb3cgZ2V0cyBzY3JvbGxlbmQgZXZl
bnQgd2hlbiBubyBlbGVtZW50IHNjcm9sbHMgYWZ0ZXIgdG91Y2ggc2Nyb2xsaW5nLiBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIldpbmRvdyBkaWQgbm90IHJl
Y2VpdmUgc2Nyb2xsZW5kIGV2ZW50IGFmdGVyIHNjcm9sbCB1cCBvbiB0YXJnZXQuIgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9l
dmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by13aW5kb3cuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3Jv
bGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLXdpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5
NTEwZTZlMjMxNjE1MTVkNDg1NmUyOThiMjIzYjA4YzQ0YTMzYjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
c2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by13aW5kb3cuaHRtbApAQCAtMCwwICsx
LDU0IEBACis8IURPQ1RZUEUgSFRNTD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci1hY3Rpb25zLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JvbGxfc3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CisjdGFyZ2V0RGl2IHsKKyAgd2lkdGg6IDIwMHB4OworICBoZWlnaHQ6IDIwMHB4Owor
ICBvdmVyZmxvdzogc2Nyb2xsOworfQorCisjaW5uZXJEaXYgeworICB3aWR0aDogNDAwcHg7Cisg
IGhlaWdodDogNDAwcHg7Cit9Cis8L3N0eWxlPgorCis8Ym9keSBzdHlsZT0ibWFyZ2luOjAiIG9u
bG9hZD1ydW5UZXN0KCk+Cis8ZGl2IGlkPSJ0YXJnZXREaXYiPgorICA8ZGl2IGlkPSJpbm5lckRp
diI+CisgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+CisKKzxzY3JpcHQ+Cit2YXIgdGFyZ2V0X2Rp
diA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXREaXYnKTsKK3ZhciBzY3JvbGxlbmRf
YXJyaXZlZCA9IGZhbHNlOworZnVuY3Rpb24gb25TY3JvbGxFbmQoZXZlbnQpIHsKKyAgYXNzZXJ0
X2ZhbHNlKGV2ZW50LmNhbmNlbGFibGUpOworICAvLyBzY3JvbGxlbmQgZXZlbnRzIHRhcmdldHRp
bmcgZG9jdW1lbnQgYXJlIGJ1YmJsZWQgdG8gdGhlIHdpbmRvdy4KKyAgYXNzZXJ0X3RydWUoZXZl
bnQuYnViYmxlcyk7CisgIHNjcm9sbGVuZF9hcnJpdmVkID0gdHJ1ZTsKK30KK3dpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLCBvblNjcm9sbEVuZCk7CisKK2Z1bmN0aW9uIHJ1blRl
c3QoKSB7CisgIHByb21pc2VfdGVzdCAoYXN5bmMgKHQpID0+IHsKKyAgICAvLyBNYWtlIHN1cmUg
dGhhdCBubyBzY3JvbGxlbmQgZXZlbnQgaXMgc2VudCB0byB0YXJnZXRfZGl2LgorICAgIHRhcmdl
dF9kaXYuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwKKyAgICAgICAgdC51bnJlYWNoZWRf
ZnVuYygidGFyZ2V0X2RpdiBnb3QgdW5leHBlY3RlZCBzY3JvbGxlbmQgZXZlbnQuIikpOworICAg
IGF3YWl0IHdhaXRGb3JDb21wb3NpdG9yQ29tbWl0KCk7CisKKyAgICAvLyBTY3JvbGwgdXAgb24g
dGFyZ2V0IGRpdiBhbmQgd2FpdCBmb3IgdGhlIGRvYyB0byBnZXQgc2Nyb2xsZW5kIGV2ZW50Lgor
ICAgIGF3YWl0IHRvdWNoU2Nyb2xsSW5UYXJnZXQoMzAwLCB0YXJnZXRfZGl2LCAndXAnKTsKKyAg
ICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIHNjcm9sbGVuZF9hcnJpdmVkOyB9LAorICAg
ICAgICAnV2luZG93IGRpZCBub3QgcmVjZWl2ZSBzY3JvbGxlbmQgZXZlbnQgYWZ0ZXIgc2Nyb2xs
IHVwIG9uIHRhcmdldC4nKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhcmdldF9kaXYuc2Nyb2xsVG9w
LCAwKTsKKyAgfSwgJ1Rlc3RzIHRoYXQgdGhlIHdpbmRvdyBnZXRzIHNjcm9sbGVuZCBldmVudCB3
aGVuIG5vIGVsZW1lbnQgc2Nyb2xscyAnICsKKyAgICAgJ2FmdGVyIHRvdWNoIHNjcm9sbGluZy4n
KTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3Jv
bGxpbmcvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JlOTEwNTMwZDkzMWQyZDNjYWE5MmFl
MzlkYTM4ZTUwNmNjZjQzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwyNiBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZp
cmVkLXRvLWRvY3VtZW50Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8t
ZWxlbWVudC13aXRoLW92ZXJzY3JvbGwtYmVoYXZpb3IuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9s
bC1ldmVudC1maXJlZC10by1zY3JvbGxlZC1lbGVtZW50Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3Jv
bGwtZXZlbnQtZmlyZWQtdG8td2luZG93Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbF9zdXBwb3J0Lmpz
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRz
L3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtYWZ0ZXItc25hcC5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGlu
Zy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xs
ZW5kLWV2ZW50LWZpcmVkLXRvLWVsZW1lbnQtd2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9yLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
c2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1zY3JvbGxlZC1lbGVtZW50Lmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
c2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by13aW5kb3cuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyZjFlMjgwNDRkOTgxM2IyNWI5
OTViMmJmOGIxZWFkOGNjNWYzZjQ3Li45YmE3NDA3NjVkZDUyNTQ2M2JlMDcxOTM1M2I3MzUzZWYw
MjVhNjhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MjU2Miw2ICsyNTYyLDggQEAgbWVkaWEvVzNDL2F1ZGlvL2NhblBsYXlUeXBlL2NhblBsYXlUeXBl
X3N1cHBvcnRlZF9idXRfbm9fY29kZWNzX3BhcmFtZXRlcl8xLmh0bWwKIAogbWVkaWEvdmlkZW8t
c2Vlay10by1jdXJyZW50LXRpbWUuaHRtbCBbIEZhaWx1cmUgXQogCitpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nIFsgUGFzcyBdCisKIGZhc3QvYXR0
YWNobWVudC9hdHRhY2htZW50LXdyYXBwaW5nLWFjdGlvbi5odG1sIFsgUGFzcyBdCiBmYXN0L2F0
dGFjaG1lbnQvYXR0YWNobWVudC1ib3JkZXJsZXNzLmh0bWwgWyBQYXNzIF0KIGZhc3QvaW1hZ2Vz
L3BkZi1hcy1pbWFnZS1kZXN0LXJlY3QtY2hhbmdlLmh0bWwgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382227</attachid>
            <date>2019-10-29 14:32:13 -0700</date>
            <delta_ts>2019-10-30 00:58:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203500-20191029223211.patch</filename>
            <type>text/plain</type>
            <size>42248</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNzM0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzFlOTQxYzMwYWQ5OWZmMmVlOWQ2
ZmM4Mjg2NjcxY2U4NWRmMDViZC4uMzg3OTA1MzI5MTIzYjg3ZTA5OTczZGJjN2U3NTQzMjY4OWRi
ZWI1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTI5ICBGcmVkZXJpYyBXYW5nICA8
ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBvcnQgV1BUIHRlc3RzIGZvciBzY3JvbGxl
bmQgYW5kIG92ZXJzY3JvbGwgZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDM1MDAKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFz
ZXIuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOiBTa2lwIHRoZSB0ZXN0cyBvbiBtb3N0
IHBsYXRmb3Jtcywgc2luY2UKKyAgICAgICAgc2VuZEV2ZW50U3RyZWFtIGlzIG5vdCBzdXBwb3J0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6IEVuYWJsZSB0aGUg
dGVzdHMgb24gaU9TLgorCiAyMDE5LTEwLTI5ICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBs
ZS5jb20+CiAKICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXNpemluZy9keW5hbWljLWF2YWlsYWJsZS1zaXplLWlmcmFtZS5odG1sIGlzIGZsYWtleQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZjU0ZTA1OWVjOGQ3YWEzMjYyZTI2YmYzNzZl
NWY3ZDk4NGZhODQ5Ny4uMjQ2NTU3MWExNmY0OGFkYWNkZWRmOGViYzE1NTcxNWJkODhiY2U3OSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMTAt
MjkgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisgICAgICAgIEltcG9ydCBX
UFQgdGVzdHMgZm9yIHNjcm9sbGVuZCBhbmQgb3ZlcnNjcm9sbCBldmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzUwMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLWRvY3VtZW50LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVu
dHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tZWxlbWVudC13aXRoLW92ZXJz
Y3JvbGwtYmVoYXZpb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1z
Y3JvbGxlZC1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8t
d2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC1hZnRlci1zbmFwLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVu
dHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1kb2N1bWVudC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9s
bGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZWxlbWVudC13aXRoLW92ZXJzY3JvbGwtYmVo
YXZpb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLXNjcm9sbGVkLWVs
ZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLXdpbmRvdy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorCiAyMDE5LTEwLTI5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBjc3MvY3NzLW11bHRpY29sIFdQVApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNGU0MDBlMGY4OTczMjE1ODY2YTE0MzQzOTE2NzMzODA2ZmQxMDll
Ni4uYTZiZDZmZjY2MTk4NGM2MzA4MmMxMTU0OWU0Mjc3ZTg2NWEwMDk3MiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0xNTIsNiArMTUyLDkgQEAgZmFzdC9mb3Jtcy9jYWxsLXRleHQtZGlkLWNoYW5n
ZS1pbi10ZXh0LWZpZWxkLXdoZW4tdHlwaW5nLmh0bWwgWyBTa2lwIF0KICMgT25seSBNYWMgYW5k
IGlPUyBoYXZlIGFuIGltcGxlbWVudGF0aW9uIG9mIFVJU2NyaXB0Q29udHJvbGxlcjo6ZG9Bc3lu
Y1Rhc2soKS4KIGZhc3QvaGFybmVzcy91aXNjcmlwdGNvbnRyb2xsZXIgWyBTa2lwIF0KIAorIyBP
bmx5IGlPUyBoYXMgYW4gaW1wbGVtZW50YXRpb24gb2YgVUlTY3JpcHRDb250cm9sbGVyOjpzZW5k
RXZlbnRTdHJlYW0oKS4KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9zY3JvbGxpbmcgWyBTa2lwIF0KKwogIyBUaGlzIHRlc3Qgb25seSBtYWtlcyBzZW5zZSBvbiBN
YWMKIGZhc3QvYXR0YWNobWVudC9hdHRhY2htZW50LXN1YnRpdGxlLXJlc2l6ZS5odG1sIFsgU2tp
cCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1w
b3J0LWV4cGVjdGF0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNl
cy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KaW5kZXggZDlmZWUzMmY2ZDBkYjQ2NmEwNGFhZmUx
OTk4OTZjZTkwMDRlMzhiMi4uMDUxNDE2ZWQ4OGIzNTEzNjViNjY2ZmU3NmVkMmVmMDlmODNiNmUy
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQt
ZXhwZWN0YXRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNl
cy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KQEAgLTEwOCw3ICsxMDgsNyBAQAogICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3YwIjogInNraXAiLCAKICAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2RvbSI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ldmVudHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRz
L3Njcm9sbGluZyI6ICJza2lwIiwgCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRz
L3Njcm9sbGluZyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rl
cy9Eb2N1bWVudC1jcmVhdGVFbGVtZW50LW5hbWVzcGFjZS10ZXN0cy9lbXB0eS5odG1sIjogInNr
aXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVF
bGVtZW50LW5hbWVzcGFjZS10ZXN0cy9lbXB0eS5zdmciOiAic2tpcCIsIAogICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNlLXRl
c3RzL2VtcHR5LnhodG1sIjogInNraXAiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9s
bC1ldmVudC1maXJlZC10by1kb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3Jv
bGwtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3YzFi
M2U3ZmI2OTcwOGM0NmEwYmQxMTBiYmIxOWE0YWYxMzQxOGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Ny
b2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitGQUlMIFRlc3RzIHRoYXQgdGhlIGRvY3VtZW50IGdldHMgb3ZlcnNj
cm9sbCBldmVudCB3aGVuIG5vIGVsZW1lbnQgc2Nyb2xscyBhZnRlciB0b3VjaCBzY3JvbGxpbmcu
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiRG9jdW1lbnQg
ZGlkIG5vdCByZWNlaXZlIG92ZXJzY3JvbGwgZXZlbnQgYWZ0ZXIgc2Nyb2xsIHVwIG9uIHRhcmdl
dC4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1kb2N1
bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLWRvY3VtZW50Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzA1NGZmY2E5YzQ3MWY3OGNlNWQxY2JhYTIxMGZhN2FhZDNhZWUzYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1kb2N1
bWVudC5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBIVE1MPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcm9sbF9zdXBw
b3J0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXJnZXREaXYgeworICB3aWR0aDogMjAwcHg7
CisgIGhlaWdodDogMjAwcHg7CisgIG92ZXJmbG93OiBzY3JvbGw7Cit9CisKKyNpbm5lckRpdiB7
CisgIHdpZHRoOiA0MDBweDsKKyAgaGVpZ2h0OiA0MDBweDsKK30KKzwvc3R5bGU+CisKKzxib2R5
IHN0eWxlPSJtYXJnaW46MCIgb25sb2FkPXJ1blRlc3QoKT4KKzxkaXYgaWQ9InRhcmdldERpdiI+
CisgIDxkaXYgaWQ9ImlubmVyRGl2Ij4KKyAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKworPHNj
cmlwdD4KK3ZhciB0YXJnZXRfZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldERp
dicpOwordmFyIG92ZXJzY3JvbGxlZF94X2RlbHRhID0gMDsKK3ZhciBvdmVyc2Nyb2xsZWRfeV9k
ZWx0YSA9IDA7CitmdW5jdGlvbiBvbk92ZXJzY3JvbGwoZXZlbnQpIHsKKyAgYXNzZXJ0X2ZhbHNl
KGV2ZW50LmNhbmNlbGFibGUpOworICAvLyBvdmVyc2Nyb2xsIGV2ZW50cyBhcmUgYnViYmxlZCB3
aGVuIHRoZSB0YXJnZXQgbm9kZSBpcyBkb2N1bWVudC4KKyAgYXNzZXJ0X3RydWUoZXZlbnQuYnVi
Ymxlcyk7CisgIG92ZXJzY3JvbGxlZF94X2RlbHRhID0gZXZlbnQuZGVsdGFYOworICBvdmVyc2Ny
b2xsZWRfeV9kZWx0YSA9IGV2ZW50LmRlbHRhWTsKK30KK2RvY3VtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoIm92ZXJzY3JvbGwiLCBvbk92ZXJzY3JvbGwpOworCitmdW5jdGlvbiBydW5UZXN0KCkgewor
ICBwcm9taXNlX3Rlc3QgKGFzeW5jICh0KSA9PiB7CisgICAgLy8gTWFrZSBzdXJlIHRoYXQgbm8g
b3ZlcnNjcm9sbCBldmVudCBpcyBzZW50IHRvIHRhcmdldF9kaXYuCisgICAgdGFyZ2V0X2Rpdi5h
ZGRFdmVudExpc3RlbmVyKCJvdmVyc2Nyb2xsIiwKKyAgICAgICAgdC51bnJlYWNoZWRfZnVuYygi
dGFyZ2V0X2RpdiBnb3QgdW5leHBlY3RlZCBvdmVyc2Nyb2xsIGV2ZW50LiIpKTsKKyAgICBhd2Fp
dCB3YWl0Rm9yQ29tcG9zaXRvckNvbW1pdCgpOworCisgICAgLy8gU2Nyb2xsIHVwIG9uIHRhcmdl
dCBkaXYgYW5kIHdhaXQgZm9yIHRoZSBkb2MgdG8gZ2V0IG92ZXJzY3JvbGwgZXZlbnQuCisgICAg
YXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAsIHRhcmdldF9kaXYsICd1cCcpOworICAgIGF3
YWl0IHdhaXRGb3IoKCkgPT4geyByZXR1cm4gb3ZlcnNjcm9sbGVkX3lfZGVsdGEgPCAwOyB9LAor
ICAgICAgICAnRG9jdW1lbnQgZGlkIG5vdCByZWNlaXZlIG92ZXJzY3JvbGwgZXZlbnQgYWZ0ZXIg
c2Nyb2xsIHVwIG9uIHRhcmdldC4nKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhcmdldF9kaXYuc2Ny
b2xsVG9wLCAwKTsKKworICAgIC8vIFNjcm9sbCBsZWZ0IG9uIHRhcmdldCBkaXYgYW5kIHdhaXQg
Zm9yIHRoZSBkb2MgdG8gZ2V0IG92ZXJzY3JvbGwgZXZlbnQuCisgICAgYXdhaXQgdG91Y2hTY3Jv
bGxJblRhcmdldCgzMDAsIHRhcmdldF9kaXYsICdsZWZ0Jyk7CisgICAgYXdhaXQgd2FpdEZvcigo
KSA9PiB7IHJldHVybiBvdmVyc2Nyb2xsZWRfeF9kZWx0YSA8IDA7IH0sCisgICAgICAgICdEb2N1
bWVudCBkaWQgbm90IHJlY2VpdmUgb3ZlcnNjcm9sbCBldmVudCBhZnRlciBzY3JvbGwgbGVmdCBv
biB0YXJnZXQuJyk7CisgICAgYXNzZXJ0X2VxdWFscyh0YXJnZXRfZGl2LnNjcm9sbExlZnQsIDAp
OworICB9LCAnVGVzdHMgdGhhdCB0aGUgZG9jdW1lbnQgZ2V0cyBvdmVyc2Nyb2xsIGV2ZW50IHdo
ZW4gbm8gZWxlbWVudCBzY3JvbGxzICcgKworICAgICAgJ2FmdGVyIHRvdWNoIHNjcm9sbGluZy4n
KTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZp
cmVkLXRvLWVsZW1lbnQtd2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9yLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3Jv
bGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1lbGVtZW50LXdpdGgtb3ZlcnNjcm9sbC1i
ZWhhdmlvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY0NzYwMWZkOTA4NzYzNGJlYmVkZWY3
ZThjN2FjN2IzYWIzZThkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1l
dmVudC1maXJlZC10by1lbGVtZW50LXdpdGgtb3ZlcnNjcm9sbC1iZWhhdmlvci1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgVGVzdHMgdGhhdCB0aGUgbGFzdCBlbGVtZW50IGlu
IHRoZSBjdXQgc2Nyb2xsIGNoYWluIGdldHMgb3ZlcnNjcm9sbCBldmVudCB3aGVuIG5vIGVsZW1l
bnQgc2Nyb2xscyBieSB0b3VjaC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6ICJFeHBlY3RlZCBlbGVtZW50IGRpZCBub3QgcmVjZWl2ZSBvdmVyc2Nyb2xsIGV2
ZW50IGFmdGVyIHNjcm9sbCB1cCBvbiB0YXJnZXQuIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292
ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tZWxlbWVudC13aXRoLW92ZXJzY3JvbGwtYmVoYXZpb3Iu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2
ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1lbGVtZW50LXdpdGgtb3Zl
cnNjcm9sbC1iZWhhdmlvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MDA4MGU2NTY4ZTg2M2E5MjQ5YmM2
MmU1Mjk3MWQ5NDU5Zjg0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwt
ZXZlbnQtZmlyZWQtdG8tZWxlbWVudC13aXRoLW92ZXJzY3JvbGwtYmVoYXZpb3IuaHRtbApAQCAt
MCwwICsxLDkyIEBACis8IURPQ1RZUEUgSFRNTD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci1hY3Rp
b25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVu
ZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JvbGxfc3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c3R5bGU+Cisjb3ZlcnNjcm9sbFhEaXYgeworICB3aWR0aDogNjAwcHg7CisgIGhlaWdo
dDogNjAwcHg7CisgIG92ZXJmbG93OiBzY3JvbGw7CisgIG92ZXJzY3JvbGwtYmVoYXZpb3IteDog
Y29udGFpbjsKK30KKyNvdmVyc2Nyb2xsWURpdiB7CisgIHdpZHRoOiA1MDBweDsKKyAgaGVpZ2h0
OiA1MDBweDsKKyAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBu
b25lOworfQorI3RhcmdldERpdiB7CisgIHdpZHRoOiA0MDBweDsKKyAgaGVpZ2h0OiA0MDBweDsK
KyAgb3ZlcmZsb3c6IHNjcm9sbDsKK30KKy5jb250ZW50IHsKKyAgd2lkdGg6ODAwcHg7CisgIGhl
aWdodDo4MDBweDsKK30KKzwvc3R5bGU+CisKKzxib2R5IHN0eWxlPSJtYXJnaW46MCIgb25sb2Fk
PXJ1blRlc3QoKT4KKzxkaXYgaWQ9Im92ZXJzY3JvbGxYRGl2Ij4KKyAgPGRpdiBjbGFzcz1jb250
ZW50PgorICAgIDxkaXYgaWQ9Im92ZXJzY3JvbGxZRGl2Ij4KKyAgICAgIDxkaXYgY2xhc3M9Y29u
dGVudD4KKyAgICAgICAgPGRpdiBpZD0idGFyZ2V0RGl2Ij4KKyAgICAgICAgICA8ZGl2IGNsYXNz
PSJjb250ZW50Ij4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rp
dj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKworPHNjcmlwdD4KK3Zh
ciB0YXJnZXRfZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldERpdicpOwordmFy
IG92ZXJzY3JvbGxlZF94X2RlbHRhID0gMDsKK3ZhciBvdmVyc2Nyb2xsZWRfeV9kZWx0YSA9IDA7
CitmdW5jdGlvbiBvbk92ZXJzY3JvbGxYKGV2ZW50KSB7CisgIGFzc2VydF9mYWxzZShldmVudC5j
YW5jZWxhYmxlKTsKKyAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmJ1YmJsZXMpOworICBvdmVyc2Nyb2xs
ZWRfeF9kZWx0YSA9IGV2ZW50LmRlbHRhWDsKK30KK2Z1bmN0aW9uIG9uT3ZlcnNjcm9sbFkoZXZl
bnQpIHsKKyAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmNhbmNlbGFibGUpOworICBhc3NlcnRfZmFsc2Uo
ZXZlbnQuYnViYmxlcyk7CisgIG92ZXJzY3JvbGxlZF95X2RlbHRhID0gZXZlbnQuZGVsdGFZOwor
fQorLy8gVGVzdCB0aGF0IGJvdGggIm9ub3ZlcnNjcm9sbCIgYW5kIGFkZEV2ZW50TGlzdGVuZXIo
Im92ZXJzY3JvbGwiLi4uIHdvcmsuCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3ZlcnNjcm9s
bFhEaXYnKS5vbm92ZXJzY3JvbGwgPSBvbk92ZXJzY3JvbGxYOworZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ292ZXJzY3JvbGxZRGl2JykuCisgICAgYWRkRXZlbnRMaXN0ZW5lcigib3ZlcnNjcm9s
bCIsIG9uT3ZlcnNjcm9sbFkpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICBwcm9taXNlX3Rl
c3QgKGFzeW5jICh0KSA9PiB7CisgICAgLy8gTWFrZSBzdXJlIHRoYXQgbm8gb3ZlcnNjcm9sbCBl
dmVudCBpcyBzZW50IHRvIGRvY3VtZW50IG9yIHRhcmdldF9kaXYuCisgICAgZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigib3ZlcnNjcm9sbCIsCisgICAgICAgIHQudW5yZWFjaGVkX2Z1bmMoIkRv
Y3VtZW50IGdvdCB1bmV4cGVjdGVkIG92ZXJzY3JvbGwgZXZlbnQuIikpOworICAgIHRhcmdldF9k
aXYuYWRkRXZlbnRMaXN0ZW5lcigib3ZlcnNjcm9sbCIsCisgICAgICAgIHQudW5yZWFjaGVkX2Z1
bmMoInRhcmdldF9kaXYgZ290IHVuZXhwZWN0ZWQgb3ZlcnNjcm9sbCBldmVudC4iKSk7CisgICAg
YXdhaXQgd2FpdEZvckNvbXBvc2l0b3JDb21taXQoKTsKKyAgICAvLyBTY3JvbGwgdXAgb24gdGFy
Z2V0IGRpdiBhbmQgd2FpdCBmb3IgdGhlIGVsZW1lbnQgd2l0aCBvdmVyc2Nyb2xsLXkgdG8gZ2V0
CisgICAgLy8gb3ZlcnNjcm9sbCBldmVudC4KKyAgICBhd2FpdCB0b3VjaFNjcm9sbEluVGFyZ2V0
KDMwMCwgdGFyZ2V0X2RpdiwgJ3VwJyk7CisgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7IHJldHVy
biBvdmVyc2Nyb2xsZWRfeV9kZWx0YSA8IDA7IH0sCisgICAgICAgICdFeHBlY3RlZCBlbGVtZW50
IGRpZCBub3QgcmVjZWl2ZSBvdmVyc2Nyb2xsIGV2ZW50IGFmdGVyIHNjcm9sbCB1cCBvbiAnICsK
KyAgICAgICAgJ3RhcmdldC4nKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhcmdldF9kaXYuc2Nyb2xs
VG9wLCAwKTsKKworICAgIC8vIFNjcm9sbCBsZWZ0IG9uIHRhcmdldCBkaXYgYW5kIHdhaXQgZm9y
IHRoZSBlbGVtZW50IHdpdGggb3ZlcnNjcm9sbC14IHRvCisgICAgLy8gZ2V0IG92ZXJzY3JvbGwg
ZXZlbnQuCisgICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAsIHRhcmdldF9kaXYsICds
ZWZ0Jyk7CisgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7IHJldHVybiBvdmVyc2Nyb2xsZWRfeF9k
ZWx0YSA8IDA7IH0sCisgICAgICAgICdFeHBlY3RlZCBlbGVtZW50IGRpZCBub3QgcmVjZWl2ZSBv
dmVyc2Nyb2xsIGV2ZW50IGFmdGVyIHNjcm9sbCBsZWZ0ICcgKworICAgICAgICAnb24gdGFyZ2V0
LicpOworICAgIGFzc2VydF9lcXVhbHModGFyZ2V0X2Rpdi5zY3JvbGxMZWZ0LCAwKTsKKyAgfSwg
J1Rlc3RzIHRoYXQgdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgY3V0IHNjcm9sbCBjaGFpbiBnZXRz
IG92ZXJzY3JvbGwgJyArCisgICAgICdldmVudCB3aGVuIG5vIGVsZW1lbnQgc2Nyb2xscyBieSB0
b3VjaC4nKTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2
ZW50LWZpcmVkLXRvLXNjcm9sbGVkLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVy
c2Nyb2xsLWV2ZW50LWZpcmVkLXRvLXNjcm9sbGVkLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAwMTUxNzgzZjM2M2Q1MTNkOTMyMTRlYjEwYTc3NjU5ODdmNDE3M2IKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tc2Nyb2xsZWQtZWxl
bWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgVGVzdHMgdGhhdCB0aGUg
c2Nyb2xsZWQgZWxlbWVudCBnZXRzIG92ZXJzY3JvbGwgZXZlbnQgYWZ0ZXIgZnVsbHkgc2Nyb2xs
aW5nIGJ5IHRvdWNoLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogIlNjcm9sbGVyIGRpZCBub3QgcmVjZWl2ZSBvdmVyc2Nyb2xsIGV2ZW50IGFmdGVyIGhvcml6
b250YWwgc2Nyb2xsLiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZp
cmVkLXRvLXNjcm9sbGVkLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1m
aXJlZC10by1zY3JvbGxlZC1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZjNzgyYTgwOWE3ZTcz
YTlkMGE4NGQ5MzhjYWFjNmE3MDRkNzg0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3Zl
cnNjcm9sbC1ldmVudC1maXJlZC10by1zY3JvbGxlZC1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSw2
NSBAQAorPCFET0NUWVBFIEhUTUw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9ucy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2Nyb2xsX3N1cHBvcnQuanMiPjwvc2NyaXB0PgorPHN0
eWxlPgorI3Njcm9sbGFibGVEaXYgeworICB3aWR0aDogMjAwcHg7CisgIGhlaWdodDogMjAwcHg7
CisgIG92ZXJmbG93OiBzY3JvbGw7Cit9CisKKyNpbm5lckRpdiB7CisgIHdpZHRoOiA0MDBweDsK
KyAgaGVpZ2h0OiA0MDBweDsKK30KKzwvc3R5bGU+CisKKzxib2R5IHN0eWxlPSJtYXJnaW46MCIg
b25sb2FkPXJ1blRlc3QoKT4KKzxkaXYgaWQ9InNjcm9sbGFibGVEaXYiPgorICA8ZGl2IGlkPSJp
bm5lckRpdiI+CisgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+CisKKzxzY3JpcHQ+Cit2YXIgc2Ny
b2xsaW5nX2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxhYmxlRGl2Jyk7Cit2
YXIgb3ZlcnNjcm9sbGVkX3hfZGVsdGEgPSAwOwordmFyIG92ZXJzY3JvbGxlZF95X2RlbHRhID0g
MDsKK2Z1bmN0aW9uIG9uT3ZlcnNjcm9sbChldmVudCkgeworICBhc3NlcnRfZmFsc2UoZXZlbnQu
Y2FuY2VsYWJsZSk7CisgIGFzc2VydF9mYWxzZShldmVudC5idWJibGVzKTsKKyAgb3ZlcnNjcm9s
bGVkX3hfZGVsdGEgPSBldmVudC5kZWx0YVg7CisgIG92ZXJzY3JvbGxlZF95X2RlbHRhID0gZXZl
bnQuZGVsdGFZOworfQorc2Nyb2xsaW5nX2Rpdi5hZGRFdmVudExpc3RlbmVyKCJvdmVyc2Nyb2xs
Iiwgb25PdmVyc2Nyb2xsKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgcHJvbWlzZV90ZXN0
IChhc3luYyAodCkgPT4geworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IG5vIG92ZXJzY3JvbGwgZXZl
bnQgaXMgc2VudCB0byBkb2N1bWVudC4KKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJv
dmVyc2Nyb2xsIiwKKyAgICAgICAgdC51bnJlYWNoZWRfZnVuYygiRG9jdW1lbnQgZ290IHVuZXhw
ZWN0ZWQgb3ZlcnNjcm9sbCBldmVudC4iKSk7CisgICAgYXdhaXQgd2FpdEZvckNvbXBvc2l0b3JD
b21taXQoKTsKKworICAgIC8vIERvIGEgaG9yaXpvbnRhbCBzY3JvbGwgYW5kIHdhaXQgZm9yIG92
ZXJzY3JvbGwgZXZlbnQuCisgICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAsIHNjcm9s
bGluZ19kaXYgLCAncmlnaHQnKTsKKyAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIG92
ZXJzY3JvbGxlZF94X2RlbHRhID4gMDsgfSwKKyAgICAgICAgJ1Njcm9sbGVyIGRpZCBub3QgcmVj
ZWl2ZSBvdmVyc2Nyb2xsIGV2ZW50IGFmdGVyIGhvcml6b250YWwgc2Nyb2xsLicpOworICAgIGFz
c2VydF9lcXVhbHMoc2Nyb2xsaW5nX2Rpdi5zY3JvbGxXaWR0aCAtIHNjcm9sbGluZ19kaXYuc2Ny
b2xsTGVmdCwKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdfZGl2LmNsaWVudFdpZHRoKTsKKwor
ICAgIG92ZXJzY3JvbGxlZF94X2RlbHRhID0gMDsKKyAgICBvdmVyc2Nyb2xsZWRfeV9kZWx0YSA9
IDA7CisKKyAgICAvLyBEbyBhIHZlcnRpY2FsIHNjcm9sbCBhbmQgd2FpdCBmb3Igb3ZlcnNjcm9s
bCBldmVudC4KKyAgICBhd2FpdCB0b3VjaFNjcm9sbEluVGFyZ2V0KDMwMCwgc2Nyb2xsaW5nX2Rp
diwgJ2Rvd24nKTsKKyAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIG92ZXJzY3JvbGxl
ZF95X2RlbHRhID4gMDsgfSwKKyAgICAgICAgJ1Njcm9sbGVyIGRpZCBub3QgcmVjZWl2ZSBvdmVy
c2Nyb2xsIGV2ZW50IGFmdGVyIHZlcnRpY2FsIHNjcm9sbC4nKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ19kaXYuc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsaW5nX2Rpdi5zY3JvbGxUb3AsCisg
ICAgICAgICAgICAgICAgc2Nyb2xsaW5nX2Rpdi5jbGllbnRIZWlnaHQpOworICB9LCAnVGVzdHMg
dGhhdCB0aGUgc2Nyb2xsZWQgZWxlbWVudCBnZXRzIG92ZXJzY3JvbGwgZXZlbnQgYWZ0ZXIgZnVs
bHkgc2Nyb2xsaW5nIGJ5IHRvdWNoLicpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xs
aW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8td2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxp
bmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by13aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcwY2YwNjUyNmMwM2Y5ZjM0MDZkZjc0ODQ2YWFlNzE3NDUyMDNkNzIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9l
dmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8td2luZG93LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBUZXN0cyB0aGF0IHRoZSB3aW5kb3cgZ2V0cyBv
dmVyc2Nyb2xsIGV2ZW50IHdoZW4gbm8gZWxlbWVudCBzY3JvbGxzYWZ0ZXIgdG91Y2ggc2Nyb2xs
aW5nLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIldpbmRv
dyBkaWQgbm90IHJlY2VpdmUgb3ZlcnNjcm9sbCBldmVudCBhZnRlciBzY3JvbGwgdXAgb24gdGFy
Z2V0LiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLXdp
bmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLXdpbmRvdy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVmNWFlM2RhZWY4MTU4Yzk0MjRjZjA3YWQwOTFjNmE5NDU0NTZkMGEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8td2luZG93
Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIEhUTUw+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rk
cml2ZXItYWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2Nyb2xsX3N1cHBvcnQu
anMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3RhcmdldERpdiB7CisgIHdpZHRoOiAyMDBweDsKKyAg
aGVpZ2h0OiAyMDBweDsKKyAgb3ZlcmZsb3c6IHNjcm9sbDsKK30KKworI2lubmVyRGl2IHsKKyAg
d2lkdGg6IDQwMHB4OworICBoZWlnaHQ6IDQwMHB4OworfQorPC9zdHlsZT4KKworPGJvZHkgc3R5
bGU9Im1hcmdpbjowIiBvbmxvYWQ9cnVuVGVzdCgpPgorPGRpdiBpZD0idGFyZ2V0RGl2Ij4KKyAg
PGRpdiBpZD0iaW5uZXJEaXYiPgorICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorCis8c2NyaXB0
PgordmFyIHRhcmdldF9kaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0RGl2Jyk7
Cit2YXIgd2luZG93X3JlY2VpdmVkX292ZXJzY3JvbGwgPSBmYWxzZTsKKworZnVuY3Rpb24gb25P
dmVyc2Nyb2xsKGV2ZW50KSB7CisgIGFzc2VydF9mYWxzZShldmVudC5jYW5jZWxhYmxlKTsKKyAg
Ly8gb3ZlcnNjcm9sbCBldmVudHMgdGFyZ2V0dGluZyBkb2N1bWVudCBhcmUgYnViYmxlZCB0byB0
aGUgd2luZG93LgorICBhc3NlcnRfdHJ1ZShldmVudC5idWJibGVzKTsKKyAgd2luZG93X3JlY2Vp
dmVkX292ZXJzY3JvbGwgPSB0cnVlOworfQord2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm92ZXJz
Y3JvbGwiLCBvbk92ZXJzY3JvbGwpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICBwcm9taXNl
X3Rlc3QgKGFzeW5jICh0KSA9PiB7CisgICAgLy8gTWFrZSBzdXJlIHRoYXQgbm8gb3ZlcnNjcm9s
bCBldmVudCBpcyBzZW50IHRvIHRhcmdldF9kaXYuCisgICAgdGFyZ2V0X2Rpdi5hZGRFdmVudExp
c3RlbmVyKCJvdmVyc2Nyb2xsIiwKKyAgICAgICAgdC51bnJlYWNoZWRfZnVuYygidGFyZ2V0X2Rp
diBnb3QgdW5leHBlY3RlZCBvdmVyc2Nyb2xsIGV2ZW50LiIpKTsKKyAgICAvLyBTY3JvbGwgdXAg
b24gdGFyZ2V0IGRpdiBhbmQgd2FpdCBmb3IgdGhlIHdpbmRvdyB0byBnZXQgb3ZlcnNjcm9sbCBl
dmVudC4KKyAgICBhd2FpdCB0b3VjaFNjcm9sbEluVGFyZ2V0KDMwMCwgdGFyZ2V0X2RpdiwgJ3Vw
Jyk7CisgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7IHJldHVybiB3aW5kb3dfcmVjZWl2ZWRfb3Zl
cnNjcm9sbDsgfSwKKyAgICAgICAgJ1dpbmRvdyBkaWQgbm90IHJlY2VpdmUgb3ZlcnNjcm9sbCBl
dmVudCBhZnRlciBzY3JvbGwgdXAgb24gdGFyZ2V0LicpOworICB9LCAnVGVzdHMgdGhhdCB0aGUg
d2luZG93IGdldHMgb3ZlcnNjcm9sbCBldmVudCB3aGVuIG5vIGVsZW1lbnQgc2Nyb2xscycgKwor
ICAgICAnYWZ0ZXIgdG91Y2ggc2Nyb2xsaW5nLicpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
c2Nyb2xsaW5nL3Njcm9sbF9zdXBwb3J0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxfc3VwcG9ydC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42ZmQxYjMyMjk0YmI4OTMzYjVlOTkxOGVhODI2MGI4NzNiOTg3ZjhhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxfc3VwcG9ydC5qcwpAQCAtMCwwICsxLDg1IEBA
Citjb25zdCBNQVhfRlJBTUUgPSA3MDA7Citjb25zdCBNQVhfVU5DSEFOR0VEX0ZSQU1FUyA9IDIw
OworCisvLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGdpdmVuIGNv
bmRpdGlvbiBpcyBtZXQgb3IgcmVqZWN0cworLy8gYWZ0ZXIgTUFYX0ZSQU1FIGFuaW1hdGlvbiBm
cmFtZXMuCitmdW5jdGlvbiB3YWl0Rm9yKGNvbmRpdGlvbiwgZXJyb3JfbWVzc2FnZSA9ICdSZWFj
aGVzIHRoZSBtYXhpbXVtIGZyYW1lcy4nKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2
ZSwgcmVqZWN0KSA9PiB7CisgICAgZnVuY3Rpb24gdGljayhmcmFtZXMpIHsKKyAgICAgIC8vIFdl
IHJlcXVlc3RBbmltYXRpb25GcmFtZSBlaXRoZXIgZm9yIE1BWF9GUkFNIGZyYW1lcyBvciB1bnRp
bCBjb25kaXRpb24KKyAgICAgIC8vIGlzIG1ldC4KKyAgICAgIGlmIChmcmFtZXMgPj0gTUFYX0ZS
QU1FKQorICAgICAgICByZWplY3QoZXJyb3JfbWVzc2FnZSk7CisgICAgICBlbHNlIGlmIChjb25k
aXRpb24oKSkKKyAgICAgICAgcmVzb2x2ZSgpOworICAgICAgZWxzZQorICAgICAgICByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUodGljay5iaW5kKHRoaXMsIGZyYW1lcyArIDEpKTsKKyAgICB9CisgICAg
dGljaygwKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3JDb21wb3NpdG9yQ29tbWl0KCkg
eworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAvLyByQUYgdHdpY2Uu
CisgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICB3aW5kb3cu
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29sdmUpOworICAgIH0pOworICB9KTsKK30KKworZnVu
Y3Rpb24gd2FpdEZvckFuaW1hdGlvbkVuZChnZXRWYWx1ZSkgeworICB2YXIgbGFzdF9jaGFuZ2Vk
X2ZyYW1lID0gMDsKKyAgdmFyIGxhc3RfcG9zaXRpb24gPSBnZXRWYWx1ZSgpOworICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgIGZ1bmN0aW9uIHRpY2soZnJh
bWVzKSB7CisgICAgLy8gV2UgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGVpdGhlciBmb3IgTUFYX0ZS
QU1FIG9yIHVudGlsCisgICAgLy8gTUFYX1VOQ0hBTkdFRF9GUkFNRVMgd2l0aCBubyBjaGFuZ2Ug
aGF2ZSBiZWVuIG9ic2VydmVkLgorICAgICAgaWYgKGZyYW1lcyA+PSBNQVhfRlJBTUUgfHwgZnJh
bWVzIC0gbGFzdF9jaGFuZ2VkX2ZyYW1lID4gTUFYX1VOQ0hBTkdFRF9GUkFNRVMpIHsKKyAgICAg
ICAgcmVzb2x2ZSgpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgY3VycmVudF92YWx1ZSA9IGdl
dFZhbHVlKCk7CisgICAgICAgIGlmIChsYXN0X3Bvc2l0aW9uICE9IGN1cnJlbnRfdmFsdWUpIHsK
KyAgICAgICAgICBsYXN0X2NoYW5nZWRfZnJhbWUgPSBmcmFtZXM7CisgICAgICAgICAgbGFzdF9w
b3NpdGlvbiA9IGN1cnJlbnRfdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcmVxdWVzdEFuaW1h
dGlvbkZyYW1lKHRpY2suYmluZCh0aGlzLCBmcmFtZXMgKyAxKSk7CisgICAgICB9CisgICAgfQor
ICAgIHRpY2soMCk7CisgIH0pCit9CisKK2Z1bmN0aW9uIHRvdWNoU2Nyb2xsSW5UYXJnZXQocGl4
ZWxzX3RvX3Njcm9sbCwgdGFyZ2V0LCBkaXJlY3Rpb24sIHBhdXNlX3RpbWVfaW5fbXMgPSAxMDAp
IHsKKyAgdmFyIHhfZGVsdGEgPSAwOworICB2YXIgeV9kZWx0YSA9IDA7CisgIGNvbnN0IG51bV9t
b3ZzID0gNTsKKyAgaWYgKGRpcmVjdGlvbiA9PSAiZG93biIpIHsKKyAgICB5X2RlbHRhID0gLTEg
KiBwaXhlbHNfdG9fc2Nyb2xsIC8gbnVtX21vdnM7CisgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09
ICJ1cCIpIHsKKyAgICB5X2RlbHRhID0gcGl4ZWxzX3RvX3Njcm9sbCAvIG51bV9tb3ZzOworICB9
IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSAicmlnaHQiKSB7CisgICAgeF9kZWx0YSA9IC0xICogcGl4
ZWxzX3RvX3Njcm9sbCAvIG51bV9tb3ZzOworICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSAibGVm
dCIpIHsKKyAgICB4X2RlbHRhID0gcGl4ZWxzX3RvX3Njcm9sbCAvIG51bV9tb3ZzOzsKKyAgfSBl
bHNlIHsKKyAgICB0aHJvdygic2Nyb2xsIGRpcmVjdGlvbiAnIiArIGRpcmVjdGlvbiArICInIGlz
IG5vdCBleHBlY3RlZCwgZGlyZWN0aW9uIHNob3VsZCBiZSAnZG93bicsICd1cCcsICdsZWZ0JyBv
ciAncmlnaHQnIik7CisgIH0KKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25zKCkKKyAg
ICAgIC5hZGRQb2ludGVyKCJwb2ludGVyMSIsICJ0b3VjaCIpCisgICAgICAucG9pbnRlck1vdmUo
MCwgMCwge29yaWdpbjogdGFyZ2V0fSkKKyAgICAgIC5wb2ludGVyRG93bigpCisgICAgICAucG9p
bnRlck1vdmUoeF9kZWx0YSwgeV9kZWx0YSwge29yaWdpbjogdGFyZ2V0fSkKKyAgICAgIC5wb2lu
dGVyTW92ZSgyICogeF9kZWx0YSwgMiAqIHlfZGVsdGEsIHtvcmlnaW46IHRhcmdldH0pCisgICAg
ICAucG9pbnRlck1vdmUoMyAqIHhfZGVsdGEsIDMgKiB5X2RlbHRhLCB7b3JpZ2luOiB0YXJnZXR9
KQorICAgICAgLnBvaW50ZXJNb3ZlKDQgKiB4X2RlbHRhLCA0ICogeV9kZWx0YSwge29yaWdpbjog
dGFyZ2V0fSkKKyAgICAgIC5wb2ludGVyTW92ZSg1ICogeF9kZWx0YSwgNSAqIHlfZGVsdGEsIHtv
cmlnaW46IHRhcmdldH0pCisgICAgICAucGF1c2UocGF1c2VfdGltZV9pbl9tcykKKyAgICAgIC5w
b2ludGVyVXAoKQorICAgICAgLnNlbmQoKTsKK30KKworLy8gVHJpZ2dlciBmbGluZyBieSBkb2lu
ZyBwb2ludGVyVXAgcmlnaHQgYWZ0ZXIgcG9pbnRlck1vdmVzLgorZnVuY3Rpb24gdG91Y2hGbGlu
Z0luVGFyZ2V0KHBpeGVsc190b19zY3JvbGwsIHRhcmdldCwgZGlyZWN0aW9uKSB7CisgIHRvdWNo
U2Nyb2xsSW5UYXJnZXQocGl4ZWxzX3RvX3Njcm9sbCwgdGFyZ2V0LCBkaXJlY3Rpb24sIDAgLyog
cGF1c2VfdGltZSAqLyk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1m
aXJlZC1hZnRlci1zbmFwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZp
cmVkLWFmdGVyLXNuYXAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3MzZiYzE0MGE0MDBhMzgz
NzYwODFmMzYzNWExNzMwZTg4OTQ2ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9s
bGVuZC1ldmVudC1maXJlZC1hZnRlci1zbmFwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
KworRkFJTCBUZXN0cyB0aGF0IHNjcm9sbGVuZCBpcyBmaXJlZCBhZnRlciBzY3JvbGwgc25hcCBh
bmltYXRpb24gY29tcGxldGlvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6ICJSZWFjaGVzIHRoZSBtYXhpbXVtIGZyYW1lcy4iCitGQUlMIFRlc3RzIHRoYXQg
c2Nyb2xsZW5kIGlzIGZpcmVkIGFmdGVyIGZsaW5nIHNuYXAgYW5pbWF0aW9uIGNvbXBsZXRpb24u
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiUmVhY2hlcyB0
aGUgbWF4aW11bSBmcmFtZXMuIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVu
dC1maXJlZC1hZnRlci1zbmFwLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC1h
ZnRlci1zbmFwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWYxYjQ5NTc5MWNhZDEwNzkwNjMxODA2MTk4NjFi
ZmJiMGQ1ZTY4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZp
cmVkLWFmdGVyLXNuYXAuaHRtbApAQCAtMCwwICsxLDg2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGRyaXZlci1hY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
Y3JvbGxfc3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitkaXYgeworICBwb3NpdGlvbjog
YWJzb2x1dGU7Cit9Cisjc2Nyb2xsZXIgeworICB3aWR0aDogNTAwcHg7CisgIGhlaWdodDogNTAw
cHg7CisgIG92ZXJmbG93OiBzY3JvbGw7CisgIHNjcm9sbC1zbmFwLXR5cGU6IGJvdGggbWFuZGF0
b3J5OworICBib3JkZXI6IHNvbGlkIGJsYWNrIDVweDsKK30KKyNzcGFjZSB7CisgIHdpZHRoOiAy
MDAwcHg7CisgIGhlaWdodDogMjAwMHB4OworfQorLnRhcmdldCB7CisgIHdpZHRoOiAyMDBweDsK
KyAgaGVpZ2h0OiAyMDBweDsKKyAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0OworICBiYWNrZ3Jv
dW5kLWNvbG9yOiBibHVlOworfQorPC9zdHlsZT4KKworPGJvZHkgc3R5bGU9Im1hcmdpbjowIiBv
bmxvYWQ9cnVuVGVzdHMoKT4KKyAgPGRpdiBpZD0ic2Nyb2xsZXIiPgorICAgIDxkaXYgaWQ9InNw
YWNlIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJ0YXJnZXQiIHN0eWxlPSJsZWZ0OiAwcHg7IHRv
cDogMHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0idGFyZ2V0IiBzdHlsZT0ibGVmdDogODBw
eDsgdG9wOiA4MHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0idGFyZ2V0IiBzdHlsZT0ibGVm
dDogMjAwcHg7IHRvcDogMjAwcHg7Ij48L2Rpdj4KKyAgPC9kaXY+Cis8L2JvZHk+CisKKzxzY3Jp
cHQ+Cit2YXIgc2Nyb2xsZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Nyb2xsZXIiKTsK
K3ZhciBzcGFjZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFjZSIpOworY29uc3QgTUFY
X0ZSQU1FX0NPVU5UID0gNzAwOworY29uc3QgTUFYX1VOQ0hBTkdFRF9GUkFNRSA9IDIwOworCitm
dW5jdGlvbiBzY3JvbGxUb3AoKSB7CisgIHJldHVybiBzY3JvbGxlci5zY3JvbGxUb3A7Cit9CisK
K3ZhciBzY3JvbGxfYXJyaXZlZF9hZnRlcl9zY3JvbGxfZW5kID0gZmFsc2U7Cit2YXIgc2Nyb2xs
X2VuZF9hcnJpdmVkID0gZmFsc2U7CitzY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwi
LCAoKSA9PiB7CisgIGlmIChzY3JvbGxfZW5kX2Fycml2ZWQpCisgICAgc2Nyb2xsX2Fycml2ZWRf
YWZ0ZXJfc2Nyb2xsX2VuZCA9IHRydWU7Cit9KTsKK3Njcm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIo
InNjcm9sbGVuZCIsICgpID0+IHsKKyAgc2Nyb2xsX2VuZF9hcnJpdmVkID0gdHJ1ZTsKK30pOwor
CitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgcHJvbWlzZV90ZXN0IChhc3luYyAoKSA9PiB7Cisg
ICAgYXdhaXQgd2FpdEZvckNvbXBvc2l0b3JDb21taXQoKTsKKyAgICBhd2FpdCB0b3VjaFNjcm9s
bEluVGFyZ2V0KDEwMCwgc2Nyb2xsZXIsICdkb3duJyk7CisgICAgLy8gV2FpdCBmb3IgdGhlIHNj
cm9sbCBzbmFwIGFuaW1hdGlvbiB0byBmaW5pc2guCisgICAgYXdhaXQgd2FpdEZvckFuaW1hdGlv
bkVuZChzY3JvbGxUb3ApOworICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geyByZXR1cm4gc2Nyb2xs
X2VuZF9hcnJpdmVkOyB9KTsKKyAgICAvLyBWZXJpZnkgdGhhdCBzY3JvbGwgc25hcCBhbmltYXRp
b24gaGFzIGZpbmlzaGVkIGJlZm9yZSBmaXJpbmcgc2Nyb2xsZW5kIGV2ZW50LgorICAgIGFzc2Vy
dF9mYWxzZShzY3JvbGxfYXJyaXZlZF9hZnRlcl9zY3JvbGxfZW5kKTsKKyAgfSwgIlRlc3RzIHRo
YXQgc2Nyb2xsZW5kIGlzIGZpcmVkIGFmdGVyIHNjcm9sbCBzbmFwIGFuaW1hdGlvbiBjb21wbGV0
aW9uLiIpOworCisgIHByb21pc2VfdGVzdCAoYXN5bmMgKCkgPT4geworICAgIC8vIFJlc2V0IHNj
cm9sbCBzdGF0ZS4KKyAgICBzY3JvbGxlci5zY3JvbGxUbygwLCAwKTsKKyAgICBhd2FpdCB3YWl0
Rm9yQ29tcG9zaXRvckNvbW1pdCgpOworICAgIHNjcm9sbF9lbmRfYXJyaXZlZCA9IGZhbHNlOwor
ICAgIHNjcm9sbF9hcnJpdmVkX2FmdGVyX3Njcm9sbF9lbmQgPSBmYWxzZTsKKworICAgIGF3YWl0
IHRvdWNoRmxpbmdJblRhcmdldCg1MCwgc2Nyb2xsZXIsICdkb3duJyk7CisgICAgLy8gV2FpdCBm
b3IgdGhlIHNjcm9sbCBzbmFwIGFuaW1hdGlvbiB0byBmaW5pc2guCisgICAgYXdhaXQgd2FpdEZv
ckFuaW1hdGlvbkVuZChzY3JvbGxUb3ApOworICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geyByZXR1
cm4gc2Nyb2xsX2VuZF9hcnJpdmVkOyB9KTsKKyAgICAvLyBWZXJpZnkgdGhhdCBzY3JvbGwgc25h
cCBhbmltYXRpb24gaGFzIGZpbmlzaGVkIGJlZm9yZSBmaXJpbmcgc2Nyb2xsZW5kIGV2ZW50Lgor
ICAgIGFzc2VydF9mYWxzZShzY3JvbGxfYXJyaXZlZF9hZnRlcl9zY3JvbGxfZW5kKTsKKyAgfSwg
IlRlc3RzIHRoYXQgc2Nyb2xsZW5kIGlzIGZpcmVkIGFmdGVyIGZsaW5nIHNuYXAgYW5pbWF0aW9u
IGNvbXBsZXRpb24uIik7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xs
ZW5kLWV2ZW50LWZpcmVkLXRvLWRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xs
ZW5kLWV2ZW50LWZpcmVkLXRvLWRvY3VtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDE3
YjkxNGU0MmE1ZjRiNjZmNjNmNWI1ZDljYTdjYjAyMDU3ZDYyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Nj
cm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitGQUlMIFRlc3RzIHRoYXQgdGhlIGRvY3VtZW50IGdldHMgc2Nyb2xs
ZW5kIGV2ZW50IHdoZW4gbm8gZWxlbWVudCBzY3JvbGxzIGJ5IHRvdWNoLiBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIkRvY3VtZW50IGRpZCBub3QgcmVjZWl2
ZSBzY3JvbGxlbmQgZXZlbnQgYWZ0ZXIgc2Nyb2xsIGxlZnQgb24gdGFyZ2V0LiIKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZl
bnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3Jv
bGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLWRvY3VtZW50Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTM1NTA4ZTJjNTU3YTkyODA4MDJhYjNkMGQ5MzdmY2UwMzYyOGU0NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLWRvY3VtZW50Lmh0bWwKQEAgLTAs
MCArMSw2NyBAQAorPCFET0NUWVBFIEhUTUw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9u
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRv
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2Nyb2xsX3N1cHBvcnQuanMiPjwvc2NyaXB0
PgorPHN0eWxlPgorI3RhcmdldERpdiB7CisgIHdpZHRoOiAyMDBweDsKKyAgaGVpZ2h0OiAyMDBw
eDsKKyAgb3ZlcmZsb3c6IHNjcm9sbDsKK30KKworI2lubmVyRGl2IHsKKyAgd2lkdGg6IDQwMHB4
OworICBoZWlnaHQ6IDQwMHB4OworfQorPC9zdHlsZT4KKworPGJvZHkgc3R5bGU9Im1hcmdpbjow
IiBvbmxvYWQ9cnVuVGVzdCgpPgorPGRpdiBpZD0idGFyZ2V0RGl2Ij4KKyAgPGRpdiBpZD0iaW5u
ZXJEaXYiPgorICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorCis8c2NyaXB0PgordmFyIHRhcmdl
dF9kaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0RGl2Jyk7Cit2YXIgaG9yaXpv
bnRhbF9zY3JvbGxlbmRfYXJyaXZlZCA9IGZhbHNlOwordmFyIHZlcnRpY2FsX3Njcm9sbGVuZF9h
cnJpdmVkID0gZmFsc2U7CitmdW5jdGlvbiBvbkhvcml6b250YWxTY3JvbGxFbmQoZXZlbnQpIHsK
KyAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmNhbmNlbGFibGUpOworICAvLyBzY3JvbGxlbmQgZXZlbnRz
IGFyZSBidWJibGVkIHdoZW4gdGhlIHRhcmdldCBub2RlIGlzIGRvY3VtZW50LgorICBhc3NlcnRf
dHJ1ZShldmVudC5idWJibGVzKTsKKyAgaG9yaXpvbnRhbF9zY3JvbGxlbmRfYXJyaXZlZCA9IHRy
dWU7Cit9CitmdW5jdGlvbiBvblZlcnRpY2FsU2Nyb2xsRW5kKGV2ZW50KSB7CisgIGFzc2VydF9m
YWxzZShldmVudC5jYW5jZWxhYmxlKTsKKyAgLy8gc2Nyb2xsZW5kIGV2ZW50cyBhcmUgYnViYmxl
ZCB3aGVuIHRoZSB0YXJnZXQgbm9kZSBpcyBkb2N1bWVudC4KKyAgYXNzZXJ0X3RydWUoZXZlbnQu
YnViYmxlcyk7CisgIHZlcnRpY2FsX3Njcm9sbGVuZF9hcnJpdmVkID0gdHJ1ZTsKK30KK2RvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9uSG9yaXpvbnRhbFNjcm9sbEVuZCk7
Citkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLCBvblZlcnRpY2FsU2Nyb2xs
RW5kKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgcHJvbWlzZV90ZXN0IChhc3luYyAodCkg
PT4geworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IG5vIHNjcm9sbGVuZCBldmVudCBpcyBzZW50IHRv
IHRhcmdldF9kaXYuCisgICAgdGFyZ2V0X2Rpdi5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQi
LAorICAgICAgICB0LnVucmVhY2hlZF9mdW5jKCJ0YXJnZXRfZGl2IGdvdCB1bmV4cGVjdGVkIHNj
cm9sbGVuZCBldmVudC4iKSk7CisgICAgYXdhaXQgd2FpdEZvckNvbXBvc2l0b3JDb21taXQoKTsK
KyAgICAvLyBTY3JvbGwgbGVmdCBvbiB0YXJnZXQgZGl2IGFuZCB3YWl0IGZvciB0aGUgZG9jIHRv
IGdldCBzY3JvbGxlbmQgZXZlbnQuCisgICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAs
IHRhcmdldF9kaXYsICdsZWZ0Jyk7CisgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7IHJldHVybiBo
b3Jpem9udGFsX3Njcm9sbGVuZF9hcnJpdmVkOyB9LAorICAgICAgICAnRG9jdW1lbnQgZGlkIG5v
dCByZWNlaXZlIHNjcm9sbGVuZCBldmVudCBhZnRlciBzY3JvbGwgbGVmdCBvbiB0YXJnZXQuJyk7
CisgICAgYXNzZXJ0X2VxdWFscyh0YXJnZXRfZGl2LnNjcm9sbExlZnQsIDApOworCisgICAgLy8g
U2Nyb2xsIHVwIG9uIHRhcmdldCBkaXYgYW5kIHdhaXQgZm9yIHRoZSBkb2MgdG8gZ2V0IHNjcm9s
bGVuZCBldmVudC4KKyAgICBhd2FpdCB0b3VjaFNjcm9sbEluVGFyZ2V0KDMwMCwgdGFyZ2V0X2Rp
diwgJ3VwJyk7CisgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7IHJldHVybiB2ZXJ0aWNhbF9zY3Jv
bGxlbmRfYXJyaXZlZDsgfSwKKyAgICAgICAgJ0RvY3VtZW50IGRpZCBub3QgcmVjZWl2ZSBzY3Jv
bGxlbmQgZXZlbnQgYWZ0ZXIgc2Nyb2xsIHVwIG9uIHRhcmdldC4nKTsKKyAgICBhc3NlcnRfZXF1
YWxzKHRhcmdldF9kaXYuc2Nyb2xsVG9wLCAwKTsKKyAgfSwgJ1Rlc3RzIHRoYXQgdGhlIGRvY3Vt
ZW50IGdldHMgc2Nyb2xsZW5kIGV2ZW50IHdoZW4gbm8gZWxlbWVudCBzY3JvbGxzIGJ5ICcgKwor
ICAgICAndG91Y2guJyk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xs
ZW5kLWV2ZW50LWZpcmVkLXRvLWVsZW1lbnQtd2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLWVsZW1lbnQtd2l0aC1v
dmVyc2Nyb2xsLWJlaGF2aW9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDY0ZmFlYWJmN2Uw
ZThlNDkzOWM3MjJhZTg5ODZmYTEyMTVmMjMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9z
Y3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZWxlbWVudC13aXRoLW92ZXJzY3JvbGwtYmVoYXZpb3It
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIFRlc3RzIHRoYXQgdGhlIGxhc3Qg
ZWxlbWVudCBpbiB0aGUgY3V0IHNjcm9sbCBjaGFpbiBnZXRzIHNjcm9sbGVuZCBldmVudCB3aGVu
IG5vIGVsZW1lbnQgc2Nyb2xscyBieSB0b3VjaC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6ICJFeHBlY3RlZCBlbGVtZW50IGRpZCBub3QgcmVjZWl2ZSBzY3Jv
bGxlbmQgZXZlbnQgYWZ0ZXIgc2Nyb2xsIGxlZnQgb24gdGFyZ2V0LiIKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Nj
cm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZWxlbWVudC13aXRoLW92ZXJzY3JvbGwt
YmVoYXZpb3IuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLWVsZW1lbnQt
d2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI2OWM2NmZkZGUxOTIy
Y2E5ZDk5N2EzMTg5ODMxMTM2YmE1OWIxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Ny
b2xsZW5kLWV2ZW50LWZpcmVkLXRvLWVsZW1lbnQtd2l0aC1vdmVyc2Nyb2xsLWJlaGF2aW9yLmh0
bWwKQEAgLTAsMCArMSw5MyBAQAorPCFET0NUWVBFIEhUTUw+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXItYWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJp
dmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2Nyb2xsX3N1cHBvcnQuanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgorI292ZXJzY3JvbGxYRGl2IHsKKyAgd2lkdGg6IDYwMHB4Owor
ICBoZWlnaHQ6IDYwMHB4OworICBvdmVyZmxvdzogc2Nyb2xsOworICBvdmVyc2Nyb2xsLWJlaGF2
aW9yLXg6IGNvbnRhaW47Cit9Cisjb3ZlcnNjcm9sbFlEaXYgeworICB3aWR0aDogNTAwcHg7Cisg
IGhlaWdodDogNTAwcHg7CisgIG92ZXJmbG93OiBzY3JvbGw7CisgIG92ZXJzY3JvbGwtYmVoYXZp
b3IteTogbm9uZTsKK30KKyN0YXJnZXREaXYgeworICB3aWR0aDogNDAwcHg7CisgIGhlaWdodDog
NDAwcHg7CisgIG92ZXJmbG93OiBzY3JvbGw7Cit9CisuY29udGVudCB7CisgIHdpZHRoOjgwMHB4
OworICBoZWlnaHQ6ODAwcHg7Cit9Cis8L3N0eWxlPgorCis8Ym9keSBzdHlsZT0ibWFyZ2luOjAi
IG9ubG9hZD1ydW5UZXN0KCk+Cis8ZGl2IGlkPSJvdmVyc2Nyb2xsWERpdiI+CisgIDxkaXYgY2xh
c3M9Y29udGVudD4KKyAgICA8ZGl2IGlkPSJvdmVyc2Nyb2xsWURpdiI+CisgICAgICA8ZGl2IGNs
YXNzPWNvbnRlbnQ+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldERpdiI+CisgICAgICAgICAgPGRp
diBjbGFzcz0iY29udGVudCI+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAg
ICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+CisKKzxzY3Jp
cHQ+Cit2YXIgdGFyZ2V0X2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXREaXYn
KTsKK3ZhciBob3Jpem9udGFsX3Njcm9sbGVuZF9hcnJpdmVkID0gZmFsc2U7Cit2YXIgdmVydGlj
YWxfc2Nyb2xsZW5kX2Fycml2ZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIG9uSG9yaXpvbnRhbFNjcm9s
bEVuZChldmVudCkgeworICBhc3NlcnRfZmFsc2UoZXZlbnQuY2FuY2VsYWJsZSk7CisgIGFzc2Vy
dF9mYWxzZShldmVudC5idWJibGVzKTsKKyAgaG9yaXpvbnRhbF9zY3JvbGxlbmRfYXJyaXZlZCA9
IHRydWU7Cit9CitmdW5jdGlvbiBvblZlcnRpY2FsU2Nyb2xsRW5kKGV2ZW50KSB7CisgIGFzc2Vy
dF9mYWxzZShldmVudC5jYW5jZWxhYmxlKTsKKyAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmJ1YmJsZXMp
OworICB2ZXJ0aWNhbF9zY3JvbGxlbmRfYXJyaXZlZCA9IHRydWU7Cit9CisvLyBUZXN0IHRoYXQg
Ym90aCAib25zY3JvbGxlbmQiIGFuZCBhZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLi4uIHdv
cmsuCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3ZlcnNjcm9sbFhEaXYnKS5vbnNjcm9sbGVu
ZCA9IG9uSG9yaXpvbnRhbFNjcm9sbEVuZDsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdmVy
c2Nyb2xsWURpdicpLgorICAgIGFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9uVmVydGlj
YWxTY3JvbGxFbmQpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICBwcm9taXNlX3Rlc3QgKGFz
eW5jICh0KSA9PiB7CisgICAgLy8gTWFrZSBzdXJlIHRoYXQgbm8gc2Nyb2xsZW5kIGV2ZW50IGlz
IHNlbnQgdG8gZG9jdW1lbnQgb3IgdGFyZ2V0X2Rpdi4KKyAgICBkb2N1bWVudC5hZGRFdmVudExp
c3RlbmVyKCJzY3JvbGxlbmQiLAorICAgICAgICB0LnVucmVhY2hlZF9mdW5jKCJEb2N1bWVudCBn
b3QgdW5leHBlY3RlZCBzY3JvbGxlbmQgZXZlbnQuIikpOworICAgIHRhcmdldF9kaXYuYWRkRXZl
bnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwKKyAgICAgICAgdC51bnJlYWNoZWRfZnVuYygidGFyZ2V0
X2RpdiBnb3QgdW5leHBlY3RlZCBzY3JvbGxlbmQgZXZlbnQuIikpOworICAgIGF3YWl0IHdhaXRG
b3JDb21wb3NpdG9yQ29tbWl0KCk7CisKKyAgICAvLyBTY3JvbGwgbGVmdCBvbiB0YXJnZXQgZGl2
IGFuZCB3YWl0IGZvciB0aGUgZWxlbWVudCB3aXRoIG92ZXJzY3JvbGwteCB0bworICAgIC8vIGdl
dCBzY3JvbGxlbmQgZXZlbnQuCisgICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAsIHRh
cmdldF9kaXYsICdsZWZ0Jyk7CisgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7IHJldHVybiBob3Jp
em9udGFsX3Njcm9sbGVuZF9hcnJpdmVkOyB9LAorICAgICAgICAnRXhwZWN0ZWQgZWxlbWVudCBk
aWQgbm90IHJlY2VpdmUgc2Nyb2xsZW5kIGV2ZW50IGFmdGVyIHNjcm9sbCBsZWZ0ICcgKworICAg
ICAgICAnb24gdGFyZ2V0LicpOworICAgIGFzc2VydF9lcXVhbHModGFyZ2V0X2Rpdi5zY3JvbGxM
ZWZ0LCAwKTsKKworICAgIC8vIFNjcm9sbCB1cCBvbiB0YXJnZXQgZGl2IGFuZCB3YWl0IGZvciB0
aGUgZWxlbWVudCB3aXRoIG92ZXJzY3JvbGwteSB0byBnZXQKKyAgICAvLyBzY3JvbGxlbmQgZXZl
bnQuCisgICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAsIHRhcmdldF9kaXYsICd1cCcp
OworICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geyByZXR1cm4gdmVydGljYWxfc2Nyb2xsZW5kX2Fy
cml2ZWQ7IH0sCisgICAgICAgICdFeHBlY3RlZCBlbGVtZW50IGRpZCBub3QgcmVjZWl2ZSBzY3Jv
bGxlbmQgZXZlbnQgYWZ0ZXIgc2Nyb2xsIHVwIG9uICcgKworICAgICAgICAndGFyZ2V0LicpOwor
ICAgIGFzc2VydF9lcXVhbHModGFyZ2V0X2Rpdi5zY3JvbGxUb3AsIDApOworICB9LCAnVGVzdHMg
dGhhdCB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBjdXQgc2Nyb2xsIGNoYWluIGdldHMgc2Nyb2xs
ZW5kICcgKworICAgICAnZXZlbnQgd2hlbiBubyBlbGVtZW50IHNjcm9sbHMgYnkgdG91Y2guJyk7
Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVk
LXRvLXNjcm9sbGVkLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZl
bnQtZmlyZWQtdG8tc2Nyb2xsZWQtZWxlbWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZk
NGJmNjZjZjUzZTA0NTY0MGY4MDBiM2QxZGMwMDBkNWYzZjI2MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9z
Y3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLXNjcm9sbGVkLWVsZW1lbnQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIFRlc3RzIHRoYXQgdGhlIHNjcm9sbGVkIGVs
ZW1lbnQgZ2V0cyBzY3JvbGxlbmQgZXZlbnQgYXQgdGhlIGVuZCBvZiB0b3VjaCBzY3JvbGxpbmcu
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU2Nyb2xsZXIg
ZGlkIG5vdCByZWNlaXZlIHNjcm9sbGVuZCBldmVudCBhZnRlciBob3Jpem9udGFsIHNjcm9sbC4i
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLXNjcm9sbGVk
LWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLXNjcm9sbGVk
LWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2NhZDc5ZGY3YzJhZjE4MzVkYjJmYzdmZTkyMTk4
Y2VlZWY4M2VhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmly
ZWQtdG8tc2Nyb2xsZWQtZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBI
VE1MPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InNjcm9sbF9zdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyNzY3JvbGxhYmxl
RGl2IHsKKyAgd2lkdGg6IDIwMHB4OworICBoZWlnaHQ6IDIwMHB4OworICBvdmVyZmxvdzogc2Ny
b2xsOworfQorCisjaW5uZXJEaXYgeworICB3aWR0aDogNDAwcHg7CisgIGhlaWdodDogNDAwcHg7
Cit9Cis8L3N0eWxlPgorCis8Ym9keSBzdHlsZT0ibWFyZ2luOjAiIG9ubG9hZD1ydW5UZXN0KCk+
Cis8ZGl2IGlkPSJzY3JvbGxhYmxlRGl2Ij4KKyAgPGRpdiBpZD0iaW5uZXJEaXYiPgorICA8L2Rp
dj4KKzwvZGl2PgorPC9ib2R5PgorCis8c2NyaXB0PgordmFyIHNjcm9sbGluZ19kaXYgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nyb2xsYWJsZURpdicpOwordmFyIGhvcml6b250YWxfc2Ny
b2xsZW5kX2Fycml2ZWQgPSBmYWxzZTsKK3ZhciB2ZXJ0aWNhbF9zY3JvbGxlbmRfYXJyaXZlZCA9
IGZhbHNlOworZnVuY3Rpb24gb25Ib3Jpem9udGFsU2Nyb2xsRW5kKGV2ZW50KSB7CisgIGFzc2Vy
dF9mYWxzZShldmVudC5jYW5jZWxhYmxlKTsKKyAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmJ1YmJsZXMp
OworICBob3Jpem9udGFsX3Njcm9sbGVuZF9hcnJpdmVkID0gdHJ1ZTsKK30KK2Z1bmN0aW9uIG9u
VmVydGljYWxTY3JvbGxFbmQoZXZlbnQpIHsKKyAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmNhbmNlbGFi
bGUpOworICBhc3NlcnRfZmFsc2UoZXZlbnQuYnViYmxlcyk7CisgIHZlcnRpY2FsX3Njcm9sbGVu
ZF9hcnJpdmVkID0gdHJ1ZTsKK30KK3Njcm9sbGluZ19kaXYuYWRkRXZlbnRMaXN0ZW5lcigic2Ny
b2xsZW5kIiwgb25Ib3Jpem9udGFsU2Nyb2xsRW5kKTsKK3Njcm9sbGluZ19kaXYuYWRkRXZlbnRM
aXN0ZW5lcigic2Nyb2xsZW5kIiwgb25WZXJ0aWNhbFNjcm9sbEVuZCk7CisKK2Z1bmN0aW9uIHJ1
blRlc3QoKSB7CisgIHByb21pc2VfdGVzdCAoYXN5bmMgKHQpID0+IHsKKyAgICAvLyBNYWtlIHN1
cmUgdGhhdCBubyBzY3JvbGxlbmQgZXZlbnQgaXMgc2VudCB0byBkb2N1bWVudC4KKyAgICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLAorICAgICAgICB0LnVucmVhY2hlZF9m
dW5jKCJEb2N1bWVudCBnb3QgdW5leHBlY3RlZCBzY3JvbGxlbmQgZXZlbnQuIikpOworICAgIGF3
YWl0IHdhaXRGb3JDb21wb3NpdG9yQ29tbWl0KCk7CisKKyAgICAvLyBEbyBhIGhvcml6b250YWwg
c2Nyb2xsIGFuZCB3YWl0IGZvciBzY3JvbGxlbmQgZXZlbnQuCisgICAgYXdhaXQgdG91Y2hTY3Jv
bGxJblRhcmdldCgzMDAsIHNjcm9sbGluZ19kaXYsICdyaWdodCcpOworICAgIGF3YWl0IHdhaXRG
b3IoKCkgPT4geyByZXR1cm4gaG9yaXpvbnRhbF9zY3JvbGxlbmRfYXJyaXZlZDsgfSwKKyAgICAg
ICAgJ1Njcm9sbGVyIGRpZCBub3QgcmVjZWl2ZSBzY3JvbGxlbmQgZXZlbnQgYWZ0ZXIgaG9yaXpv
bnRhbCBzY3JvbGwuJyk7CisgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdfZGl2LnNjcm9sbFdp
ZHRoIC0gc2Nyb2xsaW5nX2Rpdi5zY3JvbGxMZWZ0LAorICAgICAgICAgICAgICAgIHNjcm9sbGlu
Z19kaXYuY2xpZW50V2lkdGgpOworCisgICAgLy8gRG8gYSB2ZXJ0aWNhbCBzY3JvbGwgYW5kIHdh
aXQgZm9yIHNjcm9sbGVuZCBldmVudC4KKyAgICBhd2FpdCB0b3VjaFNjcm9sbEluVGFyZ2V0KDMw
MCwgc2Nyb2xsaW5nX2RpdiwgJ2Rvd24nKTsKKyAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0
dXJuIHZlcnRpY2FsX3Njcm9sbGVuZF9hcnJpdmVkOyB9LAorICAgICAgICAnU2Nyb2xsZXIgZGlk
IG5vdCByZWNlaXZlIHNjcm9sbGVuZCBldmVudCBhZnRlciB2ZXJ0aWNhbCBzY3JvbGwuJyk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdfZGl2LnNjcm9sbEhlaWdodCAtIHNjcm9sbGluZ19k
aXYuc2Nyb2xsVG9wLAorICAgICAgICAgICAgICAgIHNjcm9sbGluZ19kaXYuY2xpZW50SGVpZ2h0
KTsKKyAgfSwgJ1Rlc3RzIHRoYXQgdGhlIHNjcm9sbGVkIGVsZW1lbnQgZ2V0cyBzY3JvbGxlbmQg
ZXZlbnQgYXQgdGhlIGVuZCBvZiB0b3VjaCBzY3JvbGxpbmcuJyk7Cit9Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRvLXdpbmRvdy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9l
dmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by13aW5kb3ctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQwOTUyODA2NjQwNjIzMjhhYmM4N2I0NmQ4MGMzZTRhYWU2ZmExMzEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by13aW5k
b3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIFRlc3RzIHRoYXQgdGhlIHdp
bmRvdyBnZXRzIHNjcm9sbGVuZCBldmVudCB3aGVuIG5vIGVsZW1lbnQgc2Nyb2xscyBhZnRlciB0
b3VjaCBzY3JvbGxpbmcuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiAiV2luZG93IGRpZCBub3QgcmVjZWl2ZSBzY3JvbGxlbmQgZXZlbnQgYWZ0ZXIgc2Nyb2xs
IHVwIG9uIHRhcmdldC4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZp
cmVkLXRvLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8td2lu
ZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk1MTBlNmUyMzE2MTUxNWQ0ODU2ZTI5OGIyMjNiMDhjNDRh
MzNiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRv
LXdpbmRvdy5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBIVE1MPgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcm9sbF9z
dXBwb3J0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXJnZXREaXYgeworICB3aWR0aDogMjAw
cHg7CisgIGhlaWdodDogMjAwcHg7CisgIG92ZXJmbG93OiBzY3JvbGw7Cit9CisKKyNpbm5lckRp
diB7CisgIHdpZHRoOiA0MDBweDsKKyAgaGVpZ2h0OiA0MDBweDsKK30KKzwvc3R5bGU+CisKKzxi
b2R5IHN0eWxlPSJtYXJnaW46MCIgb25sb2FkPXJ1blRlc3QoKT4KKzxkaXYgaWQ9InRhcmdldERp
diI+CisgIDxkaXYgaWQ9ImlubmVyRGl2Ij4KKyAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKwor
PHNjcmlwdD4KK3ZhciB0YXJnZXRfZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rhcmdl
dERpdicpOwordmFyIHNjcm9sbGVuZF9hcnJpdmVkID0gZmFsc2U7CitmdW5jdGlvbiBvblNjcm9s
bEVuZChldmVudCkgeworICBhc3NlcnRfZmFsc2UoZXZlbnQuY2FuY2VsYWJsZSk7CisgIC8vIHNj
cm9sbGVuZCBldmVudHMgdGFyZ2V0dGluZyBkb2N1bWVudCBhcmUgYnViYmxlZCB0byB0aGUgd2lu
ZG93LgorICBhc3NlcnRfdHJ1ZShldmVudC5idWJibGVzKTsKKyAgc2Nyb2xsZW5kX2Fycml2ZWQg
PSB0cnVlOworfQord2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9uU2Nyb2xs
RW5kKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgcHJvbWlzZV90ZXN0IChhc3luYyAodCkg
PT4geworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IG5vIHNjcm9sbGVuZCBldmVudCBpcyBzZW50IHRv
IHRhcmdldF9kaXYuCisgICAgdGFyZ2V0X2Rpdi5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQi
LAorICAgICAgICB0LnVucmVhY2hlZF9mdW5jKCJ0YXJnZXRfZGl2IGdvdCB1bmV4cGVjdGVkIHNj
cm9sbGVuZCBldmVudC4iKSk7CisgICAgYXdhaXQgd2FpdEZvckNvbXBvc2l0b3JDb21taXQoKTsK
KworICAgIC8vIFNjcm9sbCB1cCBvbiB0YXJnZXQgZGl2IGFuZCB3YWl0IGZvciB0aGUgZG9jIHRv
IGdldCBzY3JvbGxlbmQgZXZlbnQuCisgICAgYXdhaXQgdG91Y2hTY3JvbGxJblRhcmdldCgzMDAs
IHRhcmdldF9kaXYsICd1cCcpOworICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geyByZXR1cm4gc2Ny
b2xsZW5kX2Fycml2ZWQ7IH0sCisgICAgICAgICdXaW5kb3cgZGlkIG5vdCByZWNlaXZlIHNjcm9s
bGVuZCBldmVudCBhZnRlciBzY3JvbGwgdXAgb24gdGFyZ2V0LicpOworICAgIGFzc2VydF9lcXVh
bHModGFyZ2V0X2Rpdi5zY3JvbGxUb3AsIDApOworICB9LCAnVGVzdHMgdGhhdCB0aGUgd2luZG93
IGdldHMgc2Nyb2xsZW5kIGV2ZW50IHdoZW4gbm8gZWxlbWVudCBzY3JvbGxzICcgKworICAgICAn
YWZ0ZXIgdG91Y2ggc2Nyb2xsaW5nLicpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xs
aW5nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YmU5MTA1MzBkOTMxZDJkM2NhYTkyYWUzOWRhMzhlNTA2Y2NmNDNiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRz
L3Njcm9sbGluZy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI2IEBACitUaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0Rv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xs
aW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3Zl
cnNjcm9sbC1ldmVudC1maXJlZC10by1lbGVtZW50LXdpdGgtb3ZlcnNjcm9sbC1iZWhhdmlvci5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZl
bnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLXNjcm9sbGVkLWVsZW1lbnQu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2
ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by13aW5kb3cuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3Jv
bGxpbmcvc2Nyb2xsX3N1cHBvcnQuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC1h
ZnRlci1zbmFwLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by1kb2N1bWVu
dC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
ZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZWxlbWVudC13aXRoLW92
ZXJzY3JvbGwtYmVoYXZpb3IuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRv
LXNjcm9sbGVkLWVsZW1lbnQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLXRv
LXdpbmRvdy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGY5NzRmMjczMzRhMzgzNGM4ODFkZjZjNTNmNzQ4MmI1OGU4MGVhMDQuLjI2M2UwZGJmNzJj
Y2JjMjhmZmQ0NDRkYTI5ZDgwZDEwMzQwNTA3NjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNTYwLDYgKzI1NjAsOCBAQCBtZWRpYS9XM0MvYXVkaW8v
Y2FuUGxheVR5cGUvY2FuUGxheVR5cGVfc3VwcG9ydGVkX2J1dF9ub19jb2RlY3NfcGFyYW1ldGVy
XzEuaHRtbAogCiBtZWRpYS92aWRlby1zZWVrLXRvLWN1cnJlbnQtdGltZS5odG1sIFsgRmFpbHVy
ZSBdCiAKK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxp
bmcgWyBQYXNzIF0KKwogZmFzdC9hdHRhY2htZW50L2F0dGFjaG1lbnQtd3JhcHBpbmctYWN0aW9u
Lmh0bWwgWyBQYXNzIF0KIGZhc3QvYXR0YWNobWVudC9hdHRhY2htZW50LWJvcmRlcmxlc3MuaHRt
bCBbIFBhc3MgXQogZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLWRlc3QtcmVjdC1jaGFuZ2UuaHRt
bCBbIFBhc3MgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>