<?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>127375</bug_id>
          
          <creation_ts>2014-01-21 15:30:32 -0800</creation_ts>
          <short_desc>Remove layout tests for the old Inspector UI.</short_desc>
          <delta_ts>2014-05-12 10:06:33 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>970449</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-01-21 15:30:32 -0800</bug_when>
    <thetext>Remove layout tests for the old Inspector UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970450</commentid>
    <comment_count>1</comment_count>
      <attachid>221796</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-01-21 15:31:09 -0800</bug_when>
    <thetext>Created attachment 221796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971017</commentid>
    <comment_count>2</comment_count>
      <attachid>221796</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-22 21:14:57 -0800</bug_when>
    <thetext>Comment on attachment 221796
Patch

You should mention that these tests are all disabled so removing them will have no effect on test coverage.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221796</attachid>
            <date>2014-01-21 15:31:09 -0800</date>
            <delta_ts>2014-01-22 21:14:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127375.diff</filename>
            <type>text/plain</type>
            <size>2559087</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYmU0ZmQ2Li4yNzdhZTY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI3OSBAQAorMjAxNC0w
MS0yMSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IGxheW91dCB0ZXN0cyBmb3IgdGhlIG9sZCBJbnNwZWN0b3IgVUkuCisgICAgICAgIDxodHRwczov
L3dlYmtpdC5vcmcvYi8xMjczNzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yLWVuYWJsZWQvY29uc29sZS1jbGVhci1hcmd1bWVudHMtb24tZnJhbWUtbmF2aWdh
dGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0
b3ItZW5hYmxlZC9jb25zb2xlLWNsZWFyLWFyZ3VtZW50cy1vbi1mcmFtZS1uYXZpZ2F0aW9uLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9jb25z
b2xlLWNsZWFyLWFyZ3VtZW50cy1vbi1mcmFtZS1yZW1vdmUtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvY29uc29sZS1jbGVhci1h
cmd1bWVudHMtb24tZnJhbWUtcmVtb3ZlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9jb25zb2xlLWxvZy1iZWZvcmUtZnJhbWUtbmF2aWdhdGlv
bi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3It
ZW5hYmxlZC9jb25zb2xlLWxvZy1iZWZvcmUtZnJhbWUtbmF2aWdhdGlvbi5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZGF0YWJhc2Utb3Blbi1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5h
YmxlZC9kYXRhYmFzZS1vcGVuLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9p
bnNwZWN0b3ItZW5hYmxlZC9kZWRpY2F0ZWQtd29ya2Vycy1saXN0LWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2RlZGljYXRlZC13
b3JrZXJzLWxpc3QuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci1lbmFibGVkL2RvY3VtZW50LXdyaXRlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2RvY3VtZW50LXdyaXRlLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9kb20tc3RvcmFnZS1v
cGVuLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci1lbmFibGVkL2RvbS1zdG9yYWdlLW9wZW4uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2R5bmFtaWMtc2NyaXB0cy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9keW5hbWljLXNj
cmlwdHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFi
bGVkL2luamVjdGVkLXNjcmlwdC1kaXNjYXJkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2luamVjdGVkLXNjcmlwdC1kaXNjYXJk
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9y
ZXNvdXJjZXMvY29uc29sZS1jbGVhci1hcmd1bWVudHMtaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9yZXNvdXJjZXMvY29uc29sZS1j
bGVhci1hcmd1bWVudHMtdGVzdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci1lbmFibGVkL3Jlc291cmNlcy9jb25zb2xlLWxvZy1mcmFtZS1hZnRlci1uYXZpZ2F0
aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxl
ZC9yZXNvdXJjZXMvY29uc29sZS1sb2ctZnJhbWUtYmVmb3JlLW5hdmlnYXRpb24uaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL3Jlc291cmNlcy9k
ZWRpY2F0ZWQtd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVj
dG9yLWVuYWJsZWQvcmVzb3VyY2VzL2R5bmFtaWMtc2NyaXB0LmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNhY2hlL2FwcGNhY2hlLWlmcmFtZS1tYW5pZmVz
dHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L2FwcGNhY2hlL2FwcGNhY2hlLWlmcmFtZS1tYW5pZmVzdHMuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9hcHBjYWNoZS1tYW5pZmVzdC13aXRo
LW5vbi1leGlzdGluZy1maWxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9hcHBjYWNoZS1tYW5pZmVzdC13aXRoLW5vbi1leGlz
dGluZy1maWxlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
YXBwY2FjaGUvYXBwY2FjaGUtc3dhcC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9pbnNwZWN0b3IvYXBwY2FjaGUvYXBwY2FjaGUtc3dhcC5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNhY2hlL2FwcGNhY2hlLXRlc3Qu
anM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvYXBwY2FjaGUvcmVz
b3VyY2VzL21hbmlmZXN0LnBocDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9hcHBjYWNoZS9yZXNvdXJjZXMvcGFnZS13aXRoLW1hbmlmZXN0LnBocDogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9yZXNvdXJjZXMvdmVyc2lv
bmVkLW1hbmlmZXN0LnBocDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9hcHBjYWNoZS9yZXNvdXJjZXMvd2l0aC12ZXJzaW9uZWQtbWFuaWZlc3QucGhwOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9yZXNvdXJjZXMvYWJlLnBu
ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9hdWRpdHMvc2V0LWNv
b2tpZS1oZWFkZXItYXVkaXQtbm8tZmFsc2UtcG9zaXRpdmUtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9zZXQtY29va2llLWhlYWRl
ci1hdWRpdC1uby1mYWxzZS1wb3NpdGl2ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL2NoYW5nZS1pZnJhbWUtc3JjLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jaGFuZ2UtaWZyYW1lLXNyYy5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNjcmlwdC1t
YXBwaW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNvdXJjZS1tYXBwaW5nLWRlYnVnLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1z
b3VyY2UtbWFwcGluZy1kZWJ1Zy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25z
b2xlLWNkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS1sb2dnaW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS1yZXNvdXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtd2Vic29ja2V0LWVy
cm9yLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS14aHItbG9nZ2luZy1hc3luYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy1hc3luYy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUteGhyLWxvZ2dpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci10ZXN0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzLXRlc3QuanM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy1oZWFkZXJzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWhlYWRlcnMuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWlmcmFtZS1ldmFs
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zLWlmcmFtZS1ldmFsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1pZ25vcmUtY2FjaGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtaWdub3JlLWNhY2hl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy1uZXR3b3JrLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLW5ldHdvcmstcmVkaXJlY3QuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLW5ldHdvcmstdGVz
dC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
LXRlc3QuanM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhl
ZGRiL2RhdGFiYXNlLWRhdGEtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9kYXRhYmFzZS1kYXRhLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLW5hbWVzLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRl
eGVkZGIvZGF0YWJhc2UtbmFtZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Ut
c3RydWN0dXJlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5kZXhlZGRiL2luZGV4ZWRkYi10ZXN0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9yZXNvdXJjZXMtcGFuZWwtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9yZXNvdXJjZXMt
cGFuZWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRl
eGVkZGIvcmVzb3VyY2VzL3dpdGhvdXQtaW5kZXhlZC1kYi5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3QtZWxlbWVudC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdC1lbGVtZW50Lmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdC1pZnJh
bWUtZnJvbS1kaWZmZXJlbnQtZG9tYWluLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0LWlmcmFtZS1mcm9tLWRpZmZlcmVudC1kb21h
aW4uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pc29s
YXRlZC1maWxlc3lzdGVtLXRlc3QuanM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbGl2ZS1lZGl0LXRlc3QuanM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbW9kaWZ5LWNyb3NzLWRvbWFpbi1ydWxlLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9tb2RpZnktY3Jvc3MtZG9tYWluLXJ1
bGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
LXByZWZsaWdodC1vcHRpb25zLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay10ZXN0LmpzOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvYXN5bmMteGhyLWpzb24t
bWltZS10eXBlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL2FzeW5jLXhoci1qc29uLW1pbWUtdHlwZS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvY2FjaGVkLXJlc291cmNlLWRl
c3Ryb3llZC1tb3ZlZC10by1zdG9yYWdlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2NhY2hlZC1yZXNvdXJjZS1kZXN0cm95ZWQt
bW92ZWQtdG8tc3RvcmFnZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvY2FjaGVkLXJlc291cmNlLWRlc3Ryb3llZC10b28tYmlnLWRpc2NhcmRl
ZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9jYWNoZWQtcmVzb3VyY2UtZGVzdHJveWVkLXRvby1iaWctZGlzY2FyZGVkLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9jc3Mtc291
cmNlLW1hcHBpbmctdXJsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL2Nzcy1zb3VyY2UtbWFwcGluZy11cmwuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Rvd25sb2FkLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L2Rvd25sb2FkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9oYXItY29udGVudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9oYXItY29udGVudC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvaW1hZ2UtYXMtdGV4dC1sb2FkaW5n
LWRhdGEtdXJsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL2ltYWdlLWFzLXRleHQtbG9hZGluZy1kYXRhLXVybC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jYWNo
ZWRyZXNvdXJjZXMtd2l0aC1zYW1lLXVybHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jYWNoZWRyZXNvdXJjZXMt
d2l0aC1zYW1lLXVybHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstY2xlYXItY2FjaGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jbGVhci1jYWNo
ZS5odG1sLWRpc2FibGVkOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1jbGVhci1jb29raWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2xlYXItY29va2ll
cy5odG1sLWRpc2FibGVkOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LWVtYmVkLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
Y29udGVudC1yZXBsYWNlbWVudC1lbWJlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LXhoci1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLWNvbnRlbnQtcmVwbGFjZW1lbnQteGhyLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWN5cmlsbGljLXhoci1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLWN5cmlsbGljLXhoci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hlLW1lbW9yeS1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLWRpc2FibGUtY2FjaGUtbWVtb3J5Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWRpc2FibGUtY2FjaGUteGhycy1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLWRpc2FibGUtY2FjaGUteGhycy5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxpbmctY2hlY2stbm8t
bWVtb3J5LWxlYWstZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxpbmctY2hlY2stbm8tbWVtb3J5LWxlYWsu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25l
dHdvcmstZW1iZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1lbWJlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1lbXB0eS14aHItZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1lbXB0eS14aHIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstaWZyYW1lLWxvYWQtYW5kLWRlbGV0ZS1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3Jr
LWlmcmFtZS1sb2FkLWFuZC1kZWxldGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstaW1hZ2UtNDA0LWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstaW1h
Z2UtNDA0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLWluaXRpYXRvci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWluaXRpYXRvci1mcm9tLWNvbnNv
bGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1pbml0aWF0b3ItZnJvbS1jb25zb2xlLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWluaXRpYXRvci5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1wcmV2aWV3LWpzb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1wcmV2aWV3LWpzb24uaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstcmVxdWVz
dC1yZXZpc2lvbi1jb250ZW50LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstcmVxdWVzdC1yZXZpc2lvbi1jb250ZW50
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9u
ZXR3b3JrLXNoYXJlZC13b3JrZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaGFyZWQtd29ya2VyLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNp
ZGViYXItd2lkdGgtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaWRlYmFyLXdpZHRoLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtl
ZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWV4cGVjdGVkLWNodW5rZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1zaXplLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1zeW5jLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1zeW5j
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9u
ZXR3b3JrLXNpemUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL25ldHdvcmstdGltaW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstdGltaW5nLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXdvcmtl
ci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9uZXR3b3JrLXdvcmtlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItYXN5bmMtZG91YmxlLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdv
cmsteGhyLWFzeW5jLWRvdWJsZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItYXN5bmMtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItYXN5
bmMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmsteGhyLXJlcGxheS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXhoci1yZXBsYXkuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmsteGhyLXNh
bWUtdXJsLWFzLW1haW4tcmVzb3VyY2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItc2FtZS11cmwtYXMtbWFp
bi1yZXNvdXJjZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay14aHItc3luYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXhoci1zeW5jLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9waW5nLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3BpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3JlcXVlc3QtbmFtZS1wYXRoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3JlcXVlc3QtbmFtZS1wYXRoLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXF1ZXN0LXBhcmFt
ZXRlcnMtZGVjb2RpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVxdWVzdC1wYXJhbWV0ZXJzLWRlY29kaW5nLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMv
NDA0LnBocDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlcy9jcDEyNTEueG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL2N5cmlsbGljLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvZG93bmxvYWQuenp6OiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Vz
L2VjaG8tcGF5bG9hZC5waHA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZXMvZW1wdHkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9pbml0aWF0b3IuY3NzOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL2pzb24u
cGhwOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2VzL3BsdWdpbi1kYXRhLnBocDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yYW5kb20tY2FjaGVkLnBocDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yYW5kb20tc2Ny
aXB0LnBocDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlcy9yZXNvdXJjZS5waHA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc2NyaXB0LWFzLXRleHQtd2l0aC1hLXZlcnktdmVy
eS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnkt
dmVyeS1sb25nLXVybC5waHA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZXMvc2NyaXB0LWFzLXRleHQucGhwOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3NjcmlwdC5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9z
ZXQtY29va2llLnBocDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3NpbGVudF9zY3JpcHQuanM6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMv
c291cmNlLW1hcC10ZXN0LXN0eWxlLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9zb3VyY2UtbWFwLXRlc3Qtc3R5bGUuY3NzLm1h
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlcy9zb3VyY2UtbWFwLXRlc3Qtc3R5bGUuc2NzczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9zdHlsZS5jc3M6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvdXRmOC54bWw6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZXMvd29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2VzL3gtZnJhbWUtb3B0aW9ucy1kZW55LmNnaTogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3NjcmlwdC1hcy10ZXh0LWxvYWRpbmct
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvc2NyaXB0LWFzLXRleHQtbG9hZGluZy1sb25nLXVybC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9zY3JpcHQtYXMtdGV4
dC1sb2FkaW5nLWxvbmctdXJsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9zY3JpcHQtYXMtdGV4dC1sb2FkaW5nLXdpdGgtY2FyZXQtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
c2NyaXB0LWFzLXRleHQtbG9hZGluZy13aXRoLWNhcmV0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9zY3JpcHQtYXMtdGV4dC1sb2FkaW5nLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay94LWZy
YW1lLW9wdGlvbnMtZGVueS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay94LWZyYW1lLW9wdGlvbnMtZGVueS5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sLXRlc3QuanM6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNp
b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlLWhhci1jb252ZXJzaW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWhlYWRlcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1oZWFkZXJzLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFy
LXBhZ2VzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS1oYXItcGFnZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS1tYWluLWNvb2tpZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLW1haW4tY29va2llcy5w
aHA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFy
YW1ldGVycy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtcmVxdWVzdC1jb250ZW50LWFm
dGVyLWxvYWRpbmctYW5kLWNsZWFyaW5nLWNhY2hlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXJlcXVl
c3QtY29udGVudC1hZnRlci1sb2FkaW5nLWFuZC1jbGVhcmluZy1jYWNoZS5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2Ut
cmVxdWVzdC1jb250ZW50LXdoaWxlLWxvYWRpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtcmVxdWVz
dC1jb250ZW50LXdoaWxlLWxvYWRpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZG9jdW1lbnQtdXJsLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZG9jdW1lbnQtdXJsLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWVy
cm9ycy1yZWxvYWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1lcnJvcnMtcmVsb2FkLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9y
ZXNvdXJjZS10cmVlLWV2ZW50cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWV2ZW50cy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUv
cmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1h
ZGQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2aWdhdGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2Ut
dHJlZS1mcmFtZS1uYXZpZ2F0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1pbnZhbGlkLW1pbWUtdHlwZS1j
c3MtY29udGVudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWludmFsaWQtbWltZS10eXBlLWNz
cy1jb250ZW50Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLW1pbWV0eXBlLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNl
LXRyZWUtbWltZXR5cGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtbm8teGhycy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNv
dXJjZS10cmVlLW5vLXhocnMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtbm9uLXVuaXF1ZS11cmwtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
LXRyZWUvcmVzb3VyY2UtdHJlZS1ub24tdW5pcXVlLXVybC5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1yZWxv
YWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1yZWxvYWQuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtdGVz
dC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10
cmVlL3Jlc291cmNlcy9kdW1teS1pZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9keW5hbWljLXNjcmlwdC5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVl
L3Jlc291cmNlcy9lbXB0eS5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQtaWZy
YW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2UtdHJlZS9yZXNvdXJjZXMvcmVzb3VyY2UtdHJlZS1mcmFtZS1uYXZpZ2F0ZS1pZnJhbWUtYWZ0
ZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS10cmVlL3Jlc291cmNlcy9yZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRlLWlmcmFtZS1iZWZv
cmUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS10cmVlL3Jlc291cmNlcy9yZXNvdXJjZS10cmVlLW5vbi11bmlxdWUtdXJsLWlmcmFtZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUv
cmVzb3VyY2VzL3Jlc291cmNlLXRyZWUtcmVsb2FkLWlmcmFtZS5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3Njcmlw
dC1pbml0aWFsLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLXRyZWUvcmVzb3VyY2VzL3NjcmlwdC1uYXZpZ2F0ZWQuanM6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc3R5bGVz
LWluaXRpYWwtMi5jc3M6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc3R5bGVzLWluaXRpYWwuY3NzOiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3N0eWxl
cy1uYXZpZ2F0ZWQuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3N0eWxlcy1ub24tdW5pcXVlLXVybC5jc3M6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJj
ZXMvc3R5bGVzaGVldC10ZXh0LXBsYWluLnBocDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMtdGVzdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY29tcGlsZWQuanM6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvbnNvbGUtY2QtY29tcGxldGlvbnMt
aWZyYW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL2NvbnNvbGUtY2QtaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLWlmcmFtZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9j
b3JzLXRhcmdldC5waHA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvZWNoby1oZWFkZXJzLnBocDogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvZW1wdHkuemlwOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leGFtcGxlLmNz
cy5tYXA6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2V4YW1wbGUuc2NzczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvZXh0ZW5zaW9uLW1haW4uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvZXh0ZW5zaW9uLW1haW4uanM6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2V4dGVuc2lvbi1wYW5lbC5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRl
bnNpb24tc2lkZWJhci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9leHRlbnNpb25zLWZyYW1lLWV2YWwuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaGFyLXBhZ2VzLWlmcmFtZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9oYXIt
cGFnZXMtbmF2aWdhdGlvbi10YXJnZXQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaWZyYW1lLWZyb20tZGlmZmVyZW50LWRvbWFpbi1kYXRh
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2luc3BlY3QtZWxlbWVudC1pZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9yZXNvdXJjZS1mb3JtLWRhdGEtcmVj
ZWl2ZXItaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL3NvdXJjZS1tYXAuanNvbjogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc291cmNlMS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc291cmNlMi5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvdGVzdC1zY2FubmVyLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlz
dHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gv
cmVzb3VyY2VzLXNlYXJjaC1tYXRjaC1pbmRleC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy1zZWFyY2gtbWF0Y2gt
aW5kZXguaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFy
Y2gvcmVzb3VyY2VzL3NlYXJjaC1jb25jYXRlbmF0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJjaC5jc3M6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFy
Y2guaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gv
cmVzb3VyY2VzL3NlYXJjaC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9zZWFyY2gvc2NyaXB0cy1zZWFyY2gtc2NvcGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zY3JpcHRzLXNlYXJjaC1zY29w
ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9z
ZWFyY2gtaW4tY29uY2F0ZW5hdGVkLXNjcmlwdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1jb25jYXRlbmF0ZWQt
c2NyaXB0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2Vh
cmNoL3NlYXJjaC1pbi1ub24tZXhpc3RpbmctcmVzb3VyY2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tbm9uLWV4
aXN0aW5nLXJlc291cmNlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNw
ZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1yZXNvdXJjZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1yZXNvdXJjZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFy
Y2gtaW4tcmVzb3VyY2VzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXJlc291cmNlcy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tc2NyaXB0LWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFy
Y2gvc2VhcmNoLWluLXNjcmlwdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tc3RhdGljLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXN0YXRpYy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFy
Y2gtdGVzdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zdGFj
a3RyYWNlcy9jc3AtaW5qZWN0ZWQtY29udGVudC13YXJuaW5nLWNvbnRhaW5zLXN0YWNrdHJhY2Ut
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3N0
YWNrdHJhY2VzL2NzcC1pbmplY3RlZC1jb250ZW50LXdhcm5pbmctY29udGFpbnMtc3RhY2t0cmFj
ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3N0YWNrdHJh
Y2VzL2NzcC1pbmxpbmUtd2FybmluZy1jb250YWlucy1zdGFja3RyYWNlLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zdGFja3RyYWNlcy9jc3At
aW5saW5lLXdhcm5pbmctY29udGFpbnMtc3RhY2t0cmFjZS5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3N0YWNrdHJhY2VzL2NzcC1zZXRJbnRlcnZhbC13YXJu
aW5nLWNvbnRhaW5zLXN0YWNrdHJhY2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL3N0YWNrdHJhY2VzL2NzcC1zZXRJbnRlcnZhbC13YXJuaW5n
LWNvbnRhaW5zLXN0YWNrdHJhY2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9zdGFja3RyYWNlcy9jc3Atc2V0VGltZW91dC13YXJuaW5nLWNvbnRhaW5zLXN0
YWNrdHJhY2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL3N0YWNrdHJhY2VzL2NzcC1zZXRUaW1lb3V0LXdhcm5pbmctY29udGFpbnMtc3RhY2t0
cmFjZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3N0YWNr
dHJhY2VzL3Jlc291cmNlcy9jc3AtaW5saW5lLXRlc3QuanM6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3RhY2t0cmFjZXMvcmVzb3VyY2VzL3N0YWNrdHJhY2UtdGVz
dC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zdHlsZXMvbW9k
aWZ5LWNyb3NzLWRvbWFpbi1ydWxlLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1yZWRpcmVjdGVkLWNzcy5jc3M6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9z
dHlsZXMtcmVkaXJlY3RlZC1jc3MucGhwOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMveHNsLXRyYW5zZm9ybWVkLnhzbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXJlZGlyZWN0ZWQt
Y3NzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvc3R5bGVzLXJlZGlyZWN0ZWQtY3NzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3hzbC10cmFuc2Zvcm1lZC1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3hzbC10cmFu
c2Zvcm1lZC54bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzaGVldC1zb3VyY2UtbWFwcGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzaGVldC1zb3VyY2UtbWFwcGluZy5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXRlc3QuanM6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd2ViLXNvY2tldC1mcmFtZS1l
cnJvci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0
b3Ivd2ViLXNvY2tldC1mcmFtZS1lcnJvci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL3dlYnNvY2tldC90aW1lbGluZS13ZWJzb2NrZXQtZXZlbnQtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3dlYnNvY2tl
dC90aW1lbGluZS13ZWJzb2NrZXQtZXZlbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci93ZWJzb2NrZXQvd2ViLXNvY2tldC1mcmFtZS1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd2Vic29ja2V0L3dlYi1z
b2NrZXQtZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci93b3Jrc3BhY2UtdGVzdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRz
L2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rp
b25hbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2F1ZGl0cy9h
dWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXRlc3QuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2F1ZGl0cy9yZXNvdXJjZXMvYXVkaXRzLXNjcmlwdDEuanM6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2F1ZGl0cy9yZXNvdXJjZXMvYXVkaXRzLXNjcmlwdDIuanM6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2F1ZGl0cy9yZXNvdXJjZXMvYXVkaXRzLXN0eWxlMS5j
c3M6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvYWxlcnQtdG9TdHJpbmct
ZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29u
c29sZS9hbGVydC10b1N0cmluZy1leGNlcHRpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvY29uc29sZS9jbGllbnRzLWlnbm9yZWQtaW4tcHJpdmF0ZWJyb3dzaW5nLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jbGllbnRzLWln
bm9yZWQtaW4tcHJpdmF0ZWJyb3dzaW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1nZXRFdmVudExpc3RlbmVy
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29t
bWFuZC1saW5lLWFwaS1nZXRFdmVudExpc3RlbmVycy5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGktaW5zcGVjdC1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1p
bnNwZWN0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFu
ZC1saW5lLWFwaS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtT2JqZWN0LW92ZXJ3cml0dGVuLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLU9iamVjdC1vdmVyd3JpdHRlbi5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYXBpLW9uLWNhbGwtZnJh
bWUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtYXBpLW9uLWNhbGwtZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvY29uc29sZS9jb25zb2xlLWFzc2VydC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hc3NlcnQuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWJpZy1hcnJheS1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1iaWctYXJyYXkuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWJpbmQtZmFr
ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS1iaW5kLWZha2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWNsZWFyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvY29uc29sZS9jb25zb2xlLWNsZWFyLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNsZWFyLWZ1bmN0aW9uLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1jbGVhci5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY29tbWFuZC1j
bGVhci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1jb21tYW5kLWNsZWFyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1jc3Mtd2FybmluZ3MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY3NzLXdhcm5pbmdzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXItZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLWdsb2Jh
bC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS1kaXItZ2xvYmFsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNv
bGUvY29uc29sZS1kaXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWRpcnhtbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS1kaXJ4bWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtYmxvY2tlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLWJsb2NrZWQuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtY29tbWVu
dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS1ldmFsLWNvbW1lbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLWV2YWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC1mYWtlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtZmFrZS5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC1nbG9iYWwtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZh
bC1nbG9iYWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWV2YWwtc2NvcGVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvY29uc29sZS9jb25zb2xlLWV2YWwtc2NvcGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLXN5bnRh
eC1lcnJvci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtZXZhbC10aHJvdy11bmRlZmluZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC10aHJvdy11bmRlZmluZWQuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtdW5kZWZpbmVk
LW92ZXJyaWRlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLWV2YWwtdW5kZWZpbmVkLW92ZXJyaWRlLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1leGNlcHRpb24tc3RhY2stdHJhY2VzLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LWV4Y2VwdGlvbi1zdGFjay10cmFjZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvY29uc29sZS9jb25zb2xlLWV4dGVybmFsLWFycmF5LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV4dGVybmFsLWFycmF5Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1maWx0ZXItdGVz
dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS1maWx0ZXItdGVzdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1jb2xsZWN0aW9ucy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LWZvcm1hdC1zdHlsZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0LWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS13
aGl0ZWxpc3QuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWZvcm1hdC1zdHlsZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtZm9ybWF0LXRhYmxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0Lmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sYXN0LXJlc3VsdC1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sYXN0
LXJlc3VsdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtbG9nLWJlZm9yZS1pbnNwZWN0b3Itb3Blbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb2ctYmVmb3JlLWluc3BlY3Rvci1vcGVu
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb2ct
ZG9jdW1lbnQtcHJvdG8tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtbG9nLWRvY3VtZW50LXByb3RvLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb2ctbmF0aXZlLWZ1bmNzLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy1z
eW50YXgtZXJyb3ItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtbG9nLXN5bnRheC1lcnJvci5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLXRvU3RyaW5nLW9iamVjdC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb2ctdG9T
dHJpbmctb2JqZWN0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1sb25nLWV2YWwtY3Jhc2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9uZy1ldmFsLWNyYXNoLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1tZXNzYWdlLWZvcm1hdC1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1t
ZXNzYWdlLWZvcm1hdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtbWVzc2FnZXMtc3RhY2stdHJhY2VzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW1lc3NhZ2VzLXN0YWNrLXRyYWNlcy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbmF0aXZl
LWZ1bmN0aW9uLXRvLXN0cmluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1uYXRpdmUtZnVuY3Rpb24tdG8tc3RyaW5nLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1uZXN0ZWQtZ3JvdXAt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtbmVzdGVkLWdyb3VwLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNv
bGUvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3It
bmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
b2JqZWN0LXByZXZpZXctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtb2JqZWN0LXByZXZpZXcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW9yaWdpbmF0aW5nLWNvbW1hbmQtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtb3JpZ2lu
YXRpbmctY29tbWFuZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtcHJlc2VydmUtbG9nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXByZXNlcnZlLWxvZy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtcmVwZWF0LWNvdW50LWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXJlcGVhdC1j
b3VudC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
c3RyaW5nLWZvcm1hdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1zdHJpbmctZm9ybWF0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1zdWJzdGl0dXRlZC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1zdWJzdGl0dXRlZC5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdGVzdHMtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
dGVzdHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LXRyYWNlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLXRyYWNlLWluLWV2YWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2UtaW4tZXZhbC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2UuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRyaW0tbG9uZy11cmxzLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRy
aW0tbG9uZy11cmxzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS11bmNhdWdodC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdW5jYXVnaHQtZXhjZXB0aW9uLWluLWV2YWwt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtdW5jYXVnaHQtZXhjZXB0aW9uLWluLWV2YWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXVuY2F1Z2h0LWV4Y2VwdGlvbi5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdXJsLWxpbmUtY29sdW1uLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LXVybC1saW5lLWNvbHVtbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUteG1sLWRvY3VtZW50LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXhtbC1kb2N1bWVudC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUteHBhdGgtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUteHBhdGguaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9pbnNwZWN0LWh0bWwtYWxsLWNv
bGxlY3Rpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25z
b2xlL2luc3BlY3QtaHRtbC1hbGwtY29sbGVjdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jb25zb2xlL3Jlc291cmNlcy9sb2ctc291cmNlLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9jb25zb2xlL3Jlc291cmNlcy9zeW50YXgtZXJyb3IuanM6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvcmVzb3VyY2VzL3VuY2F1Z2h0LWluLWlm
cmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb29raWUtcGFyc2VyLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29va2llLXBhcnNlci5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb29raWUtcmVzb3VyY2UtbWF0Y2gt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb29raWUtcmVzb3Vy
Y2UtbWF0Y2guaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY3VybC1jb21tYW5k
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY3VybC1jb21tYW5k
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RhdGFiYXNlLXRhYmxlLW5hbWUt
ZXhjYXBpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kYXRh
YmFzZS10YWJsZS1uYW1lLWV4Y2FwaW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2RhdGFncmlkLWF1dG9zaXplLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZGF0YWdyaWQtYXV0b3NpemUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLWxpc3RlbmVy
cy1jb3VudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtbWFuYWdlci1saXN0ZW5lcnMtY291bnQuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGxzdGFjay1wbGFjYXJkcy1kaXNj
YXJkZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9jYWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL2NvbnRlbnQtcHJvdmlkZXJzLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvY29udGVudC1wcm92aWRlcnMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvY29weS1zdGFjay10cmFjZS1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2NvcHkt
c3RhY2stdHJhY2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
ZGVidWctaW5saW5lZC1zY3JpcHRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvZGVidWctaW5saW5lZC1zY3JpcHRzLmh0bWwtZGlzYWJsZWQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWFjdGl2YXRpb24t
Y3Jhc2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9kZWJ1Z2dlci1hY3RpdmF0aW9uLWNyYXNoLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWFjdGl2YXRpb24tY3Jhc2gyLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItYWN0aXZhdGlv
bi1jcmFzaDIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVi
dWdnZXItYXV0b2NvbnRpbnVlLW9uLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWF1dG9jb250aW51ZS1vbi1z
eW50YXgtZXJyb3IuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
ZGVidWdnZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRlZC1vbi1yZWxvYWQtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1icmVha3Bv
aW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jb21waWxlLWFuZC1ydW4tZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jb21waWxlLWFu
ZC1ydW4uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdn
ZXItY29tcGxldGlvbnMtb24tY2FsbC1mcmFtZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNvbXBsZXRpb25zLW9uLWNhbGwtZnJh
bWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXIt
Y3ljbGljLXJlZi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RlYnVnZ2VyLWN5Y2xpYy1yZWYuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXZhbC1vbi1jYWxsLWZyYW1lLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXZhbC1vbi1j
YWxsLWZyYW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Rl
YnVnZ2VyLWV2YWwtd2hpbGUtcGF1c2VkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXZhbC13aGlsZS1wYXVzZWQuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXhwYW5kLXNjb3Bl
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVi
dWdnZXItZXhwYW5kLXNjb3BlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RlYnVnZ2VyLW5vLW5lc3RlZC1wYXVzZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLW5vLW5lc3RlZC1wYXVzZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1p
bi1ldmFsLXNjcmlwdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLWluLWV2YWwtc2NyaXB0Lmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLWluLWludGVybmFsLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdn
ZXItcGF1c2UtaW4taW50ZXJuYWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvZGVidWdnZXItcGF1c2Utb24tYmxvY2tlZC1ldmVudC1oYW5kbGVyLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1
c2Utb24tYmxvY2tlZC1ldmVudC1oYW5kbGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLW9uLWJsb2NrZWQtc2NyaXB0LWluamVjdGlv
bi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Rl
YnVnZ2VyLXBhdXNlLW9uLWJsb2NrZWQtc2NyaXB0LWluamVjdGlvbi5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1ibG9ja2VkLXNj
cmlwdC11cmwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1ibG9ja2VkLXNjcmlwdC11cmwuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2Utb24tZGVidWdnZXIt
c3RhdGVtZW50LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvZGVidWdnZXItcGF1c2Utb24tZGVidWdnZXItc3RhdGVtZW50Lmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLW9uLWV4Y2VwdGlv
bi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Rl
YnVnZ2VyLXBhdXNlLW9uLWV4Y2VwdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1mYWlsZWQtYXNzZXJ0aW9uLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1
c2Utb24tZmFpbGVkLWFzc2VydGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9kZWJ1Z2dlci1wcm90by1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXByb3RvLXByb3BlcnR5Lmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXJlbG9h
ZC1vbi1wYXVzZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RlYnVnZ2VyLXJlbG9hZC1vbi1wYXVzZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zY3JpcHQtcHJlcHJvY2Vzc29yLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2Ny
aXB0LXByZXByb2Nlc3Nvci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9kZWJ1Z2dlci1zY3JpcHRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2NyaXB0cy1yZWxvYWQtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zY3JpcHRzLXJl
bG9hZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dl
ci1zY3JpcHRzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Rl
YnVnZ2VyLXNldC1icmVha3BvaW50LXJlZ2V4LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2V0LWJyZWFrcG9pbnQtcmVnZXguaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3RlcC1p
bi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Rl
YnVnZ2VyLXN0ZXAtaW4uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvZGVidWdnZXItc3RlcC1pbnRvLWV2ZW50LWxpc3RlbmVyLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3RlcC1pbnRvLWV2ZW50
LWxpc3RlbmVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Rl
YnVnZ2VyLXN0ZXAtb3V0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvZGVidWdnZXItc3RlcC1vdXQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3RlcC1vdmVyLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3RlcC1vdmVyLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXN1c3BlbmQt
YWN0aXZlLWRvbS1vYmplY3RzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3VzcGVuZC1hY3RpdmUtZG9tLW9iamVjdHMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGlzYWJsZS1zY3JpcHQtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kaXNhYmxl
LXNjcmlwdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kb20t
YnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0cy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2Ny
aXB0cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1p
bi13YXRjaC1leHByZXNzaW9ucy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL2Vycm9yLWluLXdhdGNoLWV4cHJlc3Npb25zLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWwtb24tcGF1c2UtYmxvY2tlZC1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWwtb24t
cGF1c2UtYmxvY2tlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9ldmVudC1saXN0ZW5lci1icmVha3BvaW50cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2V2ZW50LWxpc3RlbmVyLWJyZWFrcG9pbnRzLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2ZpbGUtc3lzdGVtLXByb2pl
Y3QtbWFwcGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL2ZpbGUtc3lzdGVtLXByb2plY3QtbWFwcGluZy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9mdW5jdGlvbi1kZXRhaWxzLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZnVuY3Rpb24tZGV0YWlscy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXItZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXIu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJy
ZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9tdXRhdGlvbi1vYnNlcnZlci1zdXNwZW5kLXdoaWxlLXBhdXNl
ZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL211
dGF0aW9uLW9ic2VydmVyLXN1c3BlbmQtd2hpbGUtcGF1c2VkLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL25hdmlnYXRvci12aWV3LWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvbmF2aWdhdG9yLXZpZXcuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvbmV0d29yay11aXNvdXJjZWNv
ZGUtcHJvdmlkZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9uZXR3b3JrLXVpc291cmNlY29kZS1wcm92aWRlci5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9vcGVuLWNsb3NlLW9wZW4tZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9vcGVuLWNsb3NlLW9wZW4uaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcGF1c2UtaW4taW5saW5l
LXNjcmlwdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVn
Z2VyL3BhdXNlLWluLWlubGluZS1zY3JpcHQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvcGF1c2UtaW4taW50ZXJuYWwtc2NyaXB0LWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcGF1c2UtaW4taW50ZXJuYWwtc2Ny
aXB0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRp
ZXMtc3BlY2lhbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5n
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9k
eW5hbWljLXNjcmlwdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
cmVzb3VyY2VzL2VkaXQtbWUtYnJlYWtwb2ludHMuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9lZGl0LW1lLXN5bnRheC1lcnJvci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2VkaXQtbWUtd2hlbi1w
YXVzZWQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNl
cy9lZGl0LW1lLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yZXNv
dXJjZXMvb2JmdXNjYXRlZC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvcmVzb3VyY2VzL3BhdXNlLW9uLWJsb2NrZWQtYnktY3NwLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvcGF1c2Utb24tYmxvY2tlZC1ldmVudC1o
YW5kbGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJj
ZXMvcGF1c2Utb24tYmxvY2tlZC1zY3JpcHQtaW5qZWN0aW9uLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvcGF1c2Utb24tYmxvY2tlZC1zY3JpcHQt
dXJsLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMv
c2NyaXB0MS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcmVzb3Vy
Y2VzL3NjcmlwdDIuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jl
c291cmNlcy9zY3JpcHQzLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9yZXNvdXJjZXMvc3ludGF4LWVycm9yLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL3JldmVhbC1leGVjdXRpb24tbGluZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3JldmVhbC1leGVjdXRpb24tbGluZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZXh0cmFjdC1v
dXRsaW5lLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvc2NyaXB0LWV4dHJhY3Qtb3V0bGluZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1i
cmVha3BvaW50cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9z
Y3JpcHQtZm9ybWF0dGVyLWNvbnNvbGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWNvbnNvbGUuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3Jt
YXR0ZXItc2VhcmNoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1zZWFyY2guaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0
LW1vZGVsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dHMtcGFuZWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NjcmlwdHMtc29ydGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29ydGluZy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZWxlY3RlZC1jYWxsLWZyYW1lLWFmdGVyLWZvcm1hdHRp
bmctc291cmNlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvc2VsZWN0ZWQtY2FsbC1mcmFtZS1hZnRlci1mb3JtYXR0aW5nLXNvdXJjZS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXQtYnJlYWtwb2ludC1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NldC1icmVh
a3BvaW50Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJj
ZS1mcmFtZS1jb3VudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1jb3VudC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLXVybC1jb21tZW50LWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLXVybC1jb21t
ZW50Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXAtdGhy
b3VnaC1ldmVudC1saXN0ZW5lcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9zdGVwLXRocm91Z2gtZXZlbnQtbGlzdGVuZXJzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLWRpc3BsYXkt
bmFtZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L3VpLXNvdXJjZS1jb2RlLWRpc3BsYXktbmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXBhbmVsLXN3
aXRjaC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L3dhdGNoLWV4cHJlc3Npb25zLXBhbmVsLXN3aXRjaC5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBhbnNpb24t
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci93YXRj
aC1leHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBhbnNpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIveGhyLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIveGhyLWJyZWFrcG9pbnRzLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS1zdGF0aXN0aWNzLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tLXN0YXRpc3RpY3MuaHRtbC1kaXNhYmxl
ZDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL2JyYWNlLW1hdGNoZXItZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvYnJhY2UtbWF0
Y2hlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvZWRpdG9yLXRl
c3QuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1i
YXNpY3MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3Iv
aGlnaGxpZ2h0ZXItYmFzaWNzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Vk
aXRvci9oaWdobGlnaHRlci1jaHVuay1saW1pdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1jaHVuay1saW1pdC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5lLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdo
dGVyLWxvbmctbGluZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3Iv
aGlnaGxpZ2h0ZXItcGFzdGUtaW4tY29tbWVudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1wYXN0ZS1pbi1jb21tZW50Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci10ZXN0Lmpz
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvaW5kZW50YXRpb24tZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvaW5kZW50YXRpb24u
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWJy
YWNlLWhpZ2hsaWdodGVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZWRpdG9yL3RleHQtZWRpdG9yLWJyYWNlLWhpZ2hsaWdodGVyLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1jaGFyLXRvLWNvb3JkaW5hdGVz
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQt
ZWRpdG9yLWNoYXItdG8tY29vcmRpbmF0ZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWZvcm1hdHRlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1mb3JtYXR0ZXIuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWhpZ2hsaWdo
dC1hcGktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3Iv
dGV4dC1lZGl0b3ItaGlnaGxpZ2h0LWFwaS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaGlnaGxpZ2h0LXRva2VuLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWhpZ2hsaWdodC10
b2tlbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0
b3ItaG9tZS1idXR0b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9lZGl0b3IvdGV4dC1lZGl0b3ItaG9tZS1idXR0b24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxpbmUtYnJlYWtzLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxpbmUtYnJl
YWtzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRv
ci1sb25nLWxpbmUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9l
ZGl0b3IvdGV4dC1lZGl0b3ItbG9uZy1saW5lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1tb2RlbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1tb2RlbC5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItcmVtb3ZlLWNodW5rcy1m
cm9tLWRvbS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRv
ci90ZXh0LWVkaXRvci1yZW1vdmUtY2h1bmtzLWZyb20tZG9tLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2VsZWN0
aW9uLXRvLXNlYXJjaC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2VkaXRvci90ZXh0LWVkaXRvci1zZWxlY3Rpb24tdG8tc2VhcmNoLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zZWxlY3Rpb24uaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVz
cGFjZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90
ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNtYXJ0LWJyYWNlcy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zbWFydC1icmFjZXMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXRv
a2VuLWF0LXBvc2l0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZWRpdG9yL3RleHQtZWRpdG9yLXRva2VuLWF0LXBvc2l0aW9uLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci10eXBlLW92ZXItZGVjb3JhdGlv
bi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0
LWVkaXRvci10eXBlLW92ZXItZGVjb3JhdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItdW5kby1yZWRvLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXVuZG8tcmVkby5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itd29yZC1q
dW1wcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90
ZXh0LWVkaXRvci13b3JkLWp1bXBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2VsZW1lbnRzL2JyZWFkY3J1bWItdXBkYXRlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2JyZWFkY3J1bWItdXBkYXRlcy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9kZWxldGUtZnJvbS1kb2N1bWVudC1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2RlbGV0ZS1m
cm9tLWRvY3VtZW50Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRz
L2RvbS1hZ2VudC1xdWVyeS1zZWxlY3Rvci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2VsZW1lbnRzL2RvbS1hZ2VudC1xdWVyeS1zZWxlY3Rvci5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9kb20tc2VhcmNoLWNyYXNoLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZG9tLXNlYXJj
aC1jcmFzaC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lZGl0
LWRvbS1hY3Rpb25zLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZWxlbWVudHMvZWRpdC1kb20tYWN0aW9ucy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9lbGVtZW50cy9lZGl0LXN0eWxlLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtc3R5bGUtYXR0cmlidXRlLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWRlbGV0ZS1p
bmxpbmUtc3R5bGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9l
bGVtZW50cy9lbGVtZW50cy1kZWxldGUtaW5saW5lLXN0eWxlLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWltZy10b29sdGlwLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtaW1nLXRv
b2x0aXAuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVu
dHMtaW5zcGVjdC1pZnJhbWUtZnJvbS1kaWZmZXJlbnQtZG9tYWluLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtaW5zcGVjdC1pZnJh
bWUtZnJvbS1kaWZmZXJlbnQtZG9tYWluLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLWxpbWl0ZWQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1s
aW1pdGVkLWNoaWxkcmVuLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1l
bnRzL2VsZW1lbnRzLXBhbmVsLXJlbG9hZC1hc3NlcnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1yZWxvYWQtYXNzZXJ0
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBh
bmVsLXJld3JpdGUtaHJlZi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXJld3JpdGUtaHJlZi5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWFyY2gtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1w
YW5lbC1zZWFyY2guaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMv
ZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWxlY3Rpb24t
b24tcmVmcmVzaC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9l
bGVtZW50cy1wYW5lbC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zdHJ1Y3R1cmUuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc3R5bGVzLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVu
dHMtcGFuZWwtc3R5bGVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1l
bnRzL2VsZW1lbnRzLXBhbmVsLXhodG1sLXN0cnVjdHVyZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXhodG1sLXN0cnVj
dHVyZS54aHRtbC1kaXNhYmxlZDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVu
dHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXJzLWFib3V0LWJs
YW5rLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMv
ZXZlbnQtbGlzdGVuZXJzLWFib3V0LWJsYW5rLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2VsZW1lbnRzL2V4cGFuZC1yZWN1cnNpdmVseS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2V4cGFuZC1yZWN1cnNpdmVseS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9oaWRlLXNob3J0Y3V0LWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaGlkZS1zaG9y
dGN1dC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9oaWdobGln
aHQtbm9kZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1l
bnRzL2hpZ2hsaWdodC1ub2RlLXJlZ2lvbnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1yZWdpb25zLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1ub2RlLXNjYWxlZC1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hs
aWdodC1ub2RlLXNjYWxlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVt
ZW50cy9oaWdobGlnaHQtbm9kZS1zY3JvbGwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1zY3JvbGwuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxv
dy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2hp
Z2hsaWdodC1yZWdpb25zLWZsb3ctaG9yaXotYnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93LWhvcml6LWJ0
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1y
ZWdpb25zLWZsb3ctdHJhbnNmb3JtLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy10cmFuc2Zvcm0taG9yaXot
YnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9o
aWdobGlnaHQtcmVnaW9ucy1mbG93LXRyYW5zZm9ybS1ob3Jpei1idC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93LXRyYW5z
Zm9ybS12ZXJ0LWxyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZWxlbWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy10cmFuc2Zvcm0tdmVydC1sci5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1m
bG93LXRyYW5zZm9ybS12ZXJ0LXJsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy10cmFuc2Zvcm0tdmVydC1y
bC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQt
cmVnaW9ucy1mbG93LXRyYW5zZm9ybS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93LXZlcnQtbHItZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1m
bG93LXZlcnQtbHIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMv
aGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy12ZXJ0LXJsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy12ZXJ0LXJs
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1y
ZWdpb25zLWZsb3cuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMv
aGlnaGxpZ2h0LXN2Zy1yb290LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXN2Zy1yb290LXpvb21lZC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1zdmctcm9vdC16
b29tZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxp
Z2h0LXN2Zy1yb290Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRz
L2lmcmFtZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZWxlbWVudHMvaWZyYW1lLWxvYWQtZXZlbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUtY29sbGFwc2VkLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUtY29sbGFw
c2VkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1u
b2RlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMv
aW5zZXJ0LW5vZGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMv
bW9kaWZ5LWNoYXJkYXRhLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZWxlbWVudHMvbW9kaWZ5LWNoYXJkYXRhLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2VsZW1lbnRzL21vdmUtbm9kZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2VsZW1lbnRzL21vdmUtbm9kZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9lbGVtZW50cy9tdXRhdGUtdW5rbm93bi1ub2RlLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvbXV0YXRlLXVua25vd24tbm9kZS5o
dG1sLWRpc2FibGVkOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9ub2Rl
LXhwYXRoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVu
dHMvbm9kZS14cGF0aC54aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVu
dHMvcGVyZm9ybS11bmRvLXVuZG8tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9lbGVtZW50cy9wZXJmb3JtLXVuZG8tdW5kby5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9lbGVtZW50cy9yZW1vdmUtbm9kZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3JlbW92ZS1ub2RlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc29sdmUtYWxpZW4tbm9kZS1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc29sdmUtYWxp
ZW4tbm9kZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9yZXNv
bHZlLW5vZGUtYmxvY2tlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2VsZW1lbnRzL3Jlc29sdmUtbm9kZS1ibG9ja2VkLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc291cmNlcy9kb20tc2VhcmNoLWNyYXNoLWlmcmFtZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvZWxl
bWVudHMtcGFuZWwtcmV3cml0ZS1ocmVmLWlmcmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvZWxlbWVudHMtcGFuZWwtc3R5bGVzLmNzczog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL2hpZGUtc2hv
cnRjdXQtaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRz
L3Jlc291cmNlcy9oaWdobGlnaHQtbm9kZS1zY2FsZWQtaWZyYW1lLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc291cmNlcy9pZnJhbWUtbG9hZC1ldmVudC1p
ZnJhbWUtMS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9yZXNv
dXJjZXMvaWZyYW1lLWxvYWQtZXZlbnQtaWZyYW1lLTIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL2lmcmFtZS1sb2FkLWV2ZW50LWlmcmFtZS5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL3NldC1o
dG1sLXZpYS1yZXNvdXJjZS1pZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZWxlbWVudHMvcmVzb3VyY2VzL3NldC1vdXRlci1odG1sLWJvZHktaWZyYW1lLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc291cmNlcy91c2VyLXByb3Bl
cnRpZXMuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1hdHRy
aWJ1dGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50
cy9zZXQtYXR0cmlidXRlLW5vbi1odG1sLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZWxlbWVudHMvc2V0LWF0dHJpYnV0ZS1ub24taHRtbC5zdmc6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1hdHRyaWJ1dGUuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvc2V0LWh0bWwtdmlhLXJlc291cmNlLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91
dGVyLWh0bWwtMi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Vs
ZW1lbnRzL3NldC1vdXRlci1odG1sLTIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtYm9keS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLWJvZHkuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXIt
aHRtbC1mb3IteGh0bWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC1mb3IteGh0bWwueGh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLXRlc3QuanM6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3NoYWRvdy1kb20tbW9kaWZ5LWNoYXJk
YXRhLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMv
c2hhZG93LWRvbS1tb2RpZnktY2hhcmRhdGEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZWxlbWVudHMvc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9lbGVtZW50cy9zaGFkb3ctcm9vdC5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9lbGVtZW50cy91bmRvLWRvbS1lZGl0cy0yLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvdW5kby1kb20tZWRpdHMtMi5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy91bmRvLWRvbS1lZGl0cy1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8t
ZG9tLWVkaXRzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3Vu
ZG8tc2V0LW91dGVyLWh0bWwtMi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2VsZW1lbnRzL3VuZG8tc2V0LW91dGVyLWh0bWwtMi5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy91bmRvLXNldC1vdXRlci1odG1sLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvdW5kby1zZXQtb3V0ZXIt
aHRtbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy91cGRhdGUt
c2hhZG93ZG9tLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxl
bWVudHMvdXBkYXRlLXNoYWRvd2RvbS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9lbGVtZW50cy91c2VyLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9lbGVtZW50cy91c2VyLXByb3BlcnRpZXMuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZXZhbHVhdGUtaW4tcGFnZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2V2YWx1YXRlLWluLXBhZ2UuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hcGku
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWF1ZGl0cy1hcGktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0LWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRl
bnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy10ZXN0
cy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWF1ZGl0cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtY29uc29sZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0LWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRl
bnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZlbnRzLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRl
bnNpb25zLWV2ZW50cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNp
b25zL2V4dGVuc2lvbnMtbmV0d29yay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1uZXR3b3JrLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1wYW5lbC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1w
YW5lbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtcmVsb2FkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcmVzb3VyY2VzLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlc291cmNl
cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lv
bnMtc2lkZWJhci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2V4
dGVuc2lvbnMvZXh0ZW5zaW9ucy1zaWRlYmFyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2V4dGVuc2lvbnMvcmVzb3VyY2VzL2FiZS5wbmc6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2V4dGVuc2lvbnMvcmVzb3VyY2VzL2F1ZGl0cy1zdHlsZTEuY3NzOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL3Jlc291cmNlcy90ZXN0LXNjcmlwdC5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZmlsZS1tYXBwaW5nLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZmlsZS1tYXBwaW5nLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLW1hcHBpbmctZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9maWxlLXN5c3RlbS1tYXBwaW5nLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLXByb2plY3QtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9maWxlLXN5c3RlbS1wcm9qZWN0
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0
aW9uLWRpYWxvZy1maWx0ZXJpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2luc3BlY3RlZC1vYmplY3RzLW5vdC1vdmVycmlk
ZW4tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9pbnNwZWN0ZWQt
b2JqZWN0cy1ub3Qtb3ZlcnJpZGVuLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2luc3BlY3Rvci1iYWNrZW5kLWNvbW1hbmRzLWdlbmVyYXRpb24tZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9pbnNwZWN0b3ItYmFja2VuZC1jb21tYW5kcy1nZW5l
cmF0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2xvYWQtcmVzb3VyY2Ut
c3luY2hyb25vdXNseS11dGY4LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvbG9hZC1yZXNvdXJjZS1zeW5jaHJvbm91c2x5LXV0ZjguaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvbWFwLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvbWFwLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL25ldHdvcmst
c3RhdHVzLW5vbi1odHRwLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvbmV0d29yay1zdGF0dXMtbm9uLWh0dHAuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvcHJvZmlsZXIvY2FudmFzLXByb2ZpbGVyLXRlc3QuanM6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1oYXMtdW5pbnN0cnVtZW50ZWQt
Y2FudmFzZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9m
aWxlci9jYW52YXMyZC9jYW52YXMtaGFzLXVuaW5zdHJ1bWVudGVkLWNhbnZhc2VzLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1yZXBs
YXktbG9nLWdyaWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9w
cm9maWxlci9jYW52YXMyZC9jYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1zdGFjay10cmFjZS1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZh
czJkL2NhbnZhcy1zdGFjay10cmFjZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMyZC1hcGktY2hhbmdlcy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhczJkLWFw
aS1jaGFuZ2VzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2Nh
bnZhczJkL2NhbnZhczJkLWdyYWRpZW50LWNhcHR1cmluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhczJkLWdyYWRpZW50
LWNhcHR1cmluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9j
YW52YXMyZC9jYW52YXMyZC1wcm9maWxlci1jYXB0dXJpbmctYmFzaWNzLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzMmQt
cHJvZmlsZXItY2FwdHVyaW5nLWJhc2ljcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItYWdlbnQtY3Jhc2gtb24tc3RhcnQtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXIt
YWdlbnQtY3Jhc2gtb24tc3RhcnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
cHJvZmlsZXIvY3B1LXByb2ZpbGVyLXBhcmFtZXRlcmxlc3MtcHJvZmlsZS1lbmQtY3Jhc2gtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9jcHUtcHJv
ZmlsZXItcGFyYW1ldGVybGVzcy1wcm9maWxlLWVuZC1jcmFzaC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsZS1yZW1vdmFsLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXBy
b2ZpbGVyLXByb2ZpbGUtcmVtb3ZhbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy13aXRo
b3V0LWluc3BlY3Rvci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2Zp
bGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNu
YXBzaG90LWNvbXBhcmlzb24tZG9tLWdyb3Vwcy1jaGFuZ2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24t
ZG9tLWdyb3Vwcy1jaGFuZ2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1z
b3J0aW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0
aW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25h
cHNob3QtY29tcGFyaXNvbi1zaG93LWFsbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zaG93LWFsbC5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LWNvbXBhcmlzb24tc2hvdy1uZXh0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLXNob3ctbmV4dC5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNv
bXBhcmlzb24tc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hv
dC1jb21wYXJpc29uLXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNv
bXBhcmlzb24tc29ydGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zb3J0aW5nLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1l
bnQtZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50
LWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtc2hvdy1hbGwt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFw
LXNuYXBzaG90LWNvbnRhaW5tZW50LXNob3ctYWxsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtc2hvdy1uZXh0LWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1jb250YWlubWVudC1zaG93LW5leHQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zaG93bi1ub2RlLWNv
dW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LXNob3duLW5v
ZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LXNvcnRpbmctZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNu
YXBzaG90LWNvbnRhaW5tZW50LXNvcnRpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLWV4cGFuc2lvbi1wcmVzZXJ2
ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLWV4cGFuc2lvbi1wcmVzZXJ2ZWQt
d2hlbi1zb3J0aW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVy
L2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93LWFsbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1z
aG93LWFsbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFw
LXNuYXBzaG90LWRvbWluYXRvcnMtc2hvdy1uZXh0LWFjdHVhbC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93LW5l
eHQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9o
ZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvdy1uZXh0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93bi1ub2Rl
LWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvd24t
bm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zb3J0aW5nLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1kb21pbmF0b3JzLXNvcnRpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZ2V0LXByb2ZpbGUtY3Jhc2gt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFw
LXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1kb20td3JhcHBlci1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QtaW5zcGVjdC1kb20td3JhcHBlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtcmV2ZWFs
LWluLWRvbWluYXRvcnMtdmlldy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtcmV2ZWFsLWluLWRvbWluYXRvcnMtdmlldy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LXN1bW1hcnktZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1h
cnktZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXJldGFpbmVycy1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3Qtc3VtbWFyeS1yZXRhaW5lcnMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNob3ctYWxsLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1z
dW1tYXJ5LXNob3ctYWxsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2Zp
bGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93LW5leHQtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hv
dy1uZXh0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3Qtc3VtbWFyeS1zaG93LXJhbmdlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93LXJhbmdl
cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LXN1bW1hcnktc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFw
c2hvdC1zdW1tYXJ5LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1
bW1hcnktc29ydGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zb3J0aW5nLWZpZWxkcy1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qt
c3VtbWFyeS1zb3J0aW5nLWZpZWxkcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc29ydGluZy1pbnN0YW5jZXMtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LXN1bW1hcnktc29ydGluZy1pbnN0YW5jZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNvcnRpbmcuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0Lmpz
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90Lmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL3Byb2ZpbGVyLXRlc3Qu
anM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL3Jlc291cmNlcy9pbWFn
ZS5qcGVnOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9zZWxlY3Rvci1w
cm9maWxlci11cmwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9w
cm9maWxlci9zZWxlY3Rvci1wcm9maWxlci11cmwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvcHJvZmlsZXIvd2ViZ2wvd2ViZ2wtcHJvZmlsZXItYXBpLWNoYW5nZXMtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci93ZWJnbC93ZWJn
bC1wcm9maWxlci1hcGktY2hhbmdlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9wcm9maWxlci93ZWJnbC93ZWJnbC1wcm9maWxlci1nZXQtZXJyb3ItZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci93ZWJnbC93ZWJnbC1wcm9maWxl
ci1nZXQtZXJyb3IuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZ3Jlc3Mt
YmFyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZ3Jlc3Mt
YmFyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS1vYmplY3QtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUtb2JqZWN0Lmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9y
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3JlcG9ydC1wcm90
b2NvbC1lcnJvcnMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcnVudGltZS9y
dW50aW1lLWNhbGxGdW5jdGlvbk9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvcnVudGltZS9ydW50aW1lLWNhbGxGdW5jdGlvbk9uLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3J1bnRpbWUvcnVudGltZS1nZXRQcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcnVudGltZS9ydW50aW1lLWdldFBy
b3BlcnRpZXMtaXNPd25Qcm9wZXJ0eS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3J1bnRpbWUvcnVudGltZS1nZXRQcm9wZXJ0aWVzLWlzT3duUHJvcGVydHkuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcnVudGltZS9ydW50aW1lLWdldFByb3Bl
cnRpZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcnVudGltZS9ydW50aW1l
LWxvY2FsU3RvcmFnZS1nZXRQcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvcnVudGltZS9ydW50aW1lLWxvY2FsU3RvcmFnZS1nZXRQcm9wZXJ0aWVz
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3J1bnRpbWUvcnVudGltZS1zZXRQ
cm9wZXJ0eVZhbHVlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
cnVudGltZS9ydW50aW1lLXNldFByb3BlcnR5VmFsdWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3Ivc2NyaXB0LWV4ZWN1dGlvbi1zdGF0ZS1jaGFuZ2Utbm90aWZpY2F0aW9uLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0LWV4ZWN1dGlv
bi1zdGF0ZS1jaGFuZ2Utbm90aWZpY2F0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3NuaXBwZXQtc3RvcmFnZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3NuaXBwZXQtc3RvcmFnZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9zdG9yYWdlLXBhbmVsLWRvbS1zdG9yYWdlLWVtcHR5LWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3RvcmFnZS1wYW5lbC1kb20tc3RvcmFnZS1lbXB0eS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdG9yYWdlLXBhbmVsLWRvbS1zdG9y
YWdlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3RvcmFnZS1w
YW5lbC1kb20tc3RvcmFnZS11cGRhdGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9zdG9yYWdlLXBhbmVsLWRvbS1zdG9yYWdlLXVwZGF0ZS5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9zdG9yYWdlLXBhbmVsLWRvbS1zdG9yYWdlLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1bGUtaW5saW5lLXN0
eWxlLWNzcC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxl
cy9hZGQtbmV3LXJ1bGUtaW5saW5lLXN0eWxlLWNzcC5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLWludmFsaWQtc2VsZWN0b3ItZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLWlu
dmFsaWQtc2VsZWN0b3IuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVz
L2FkZC1uZXctcnVsZS13aXRoLXN0eWxlLWFmdGVyLWJvZHktZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLXdpdGgtc3R5bGUtYWZ0
ZXItYm9keS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvY29tbWl0
LXNlbGVjdG9yLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzL2NvbW1pdC1zZWxlY3Rvci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9z
dHlsZXMvY3NzLWxpdmUtZWRpdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3N0eWxlcy9jc3MtbGl2ZS1lZGl0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3N0eWxlcy9lZGl0LWluc3BlY3Rvci1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2VkaXQtaW5zcGVjdG9yLXN0eWxlc2hl
ZXQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2VkaXQtdmFsdWUt
d2l0aC10cmltbWVkLXVybC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL3N0eWxlcy9lZGl0LXZhbHVlLXdpdGgtdHJpbW1lZC11cmwuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2ZvcmNlLXBzZXVkby1zdGF0ZS1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9mb3JjZS1wc2V1ZG8tc3RhdGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVz
aGVldC10ZXh0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3N0eWxlcy9pbXBvcnQtcHNldWRvY2xhc3MtY3Jhc2gtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvaW1wb3J0LXBzZXVkb2NsYXNzLWNyYXNo
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9pbmFjdGl2ZS1wcm9w
ZXJ0aWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVz
L2luYWN0aXZlLXByb3BlcnRpZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
c3R5bGVzL2luamVjdC1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3Ivc3R5bGVzL2luamVjdC1zdHlsZXNoZWV0Lmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3N0eWxlcy9sYXp5LWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2xhenktY29tcHV0ZWQtc3R5bGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL21lZGlhLWVtdWxhdGlv
bi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9tZWRp
YS1lbXVsYXRpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL21l
ZGlhLXF1ZXJpZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9z
dHlsZXMvbWVkaWEtcXVlcmllcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9z
dHlsZXMvbWV0cmljcy1ib3gtc2l6aW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3Ivc3R5bGVzL21ldHJpY3MtYm94LXNpemluZy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcGFyc2Utc3R5bGVzaGVldC1lcnJvcnMtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcGFyc2Utc3R5bGVzaGVl
dC1lcnJvcnMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3BhcnNl
LXV0ZjgtYm9tLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzL3BhcnNlLXV0ZjgtYm9tLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0
eWxlcy9wYXN0ZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3N0eWxlcy9wYXN0ZS1wcm9wZXJ0eS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9zdHlsZXMvcGVyZm9ybS11bmRvLXBlcmZvcm0tb2YtbWVyZ2FibGUtYWN0aW9uLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3BlcmZvcm0t
dW5kby1wZXJmb3JtLW9mLW1lcmdhYmxlLWFjdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJl
Z2lvbnMtY29tbWFuZHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVz
L3JlZ2lvbi1zdHlsZS1jcmFzaC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3N0eWxlcy9yZWdpb24tc3R5bGUtY3Jhc2guaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3Ivc3R5bGVzL3JlbW92ZWQtcnVsZS1jcmFzaC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9yZW1vdmVkLXJ1bGUtY3Jhc2guaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9mcm9tY3NzLnBu
ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9nZXQtc2V0
LXN0eWxlc2hlZXQtdGV4dC5jc3M6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxl
cy9yZXNvdXJjZXMvaWZyYW1lZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0
eWxlcy9yZXNvdXJjZXMvaW1wb3J0LXBzZXVkb2NsYXNzLWNyYXNoLWVtcHR5LmNzczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9pbXBvcnQtcHNldWRvY2xh
c3MtY3Jhc2guY3NzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcmVzb3Vy
Y2VzL2luamVjdC1zdHlsZXNoZWV0LWlmcmFtZS1kYXRhLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvbWVkaWEtcXVlcmllcy0xLmNzczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9tZWRpYS1xdWVyaWVzLmNz
czogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9wYXJzZS11
dGY4LWJvbS1tYWluLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jl
c291cmNlcy9wYXJzZS11dGY4LWJvbS1yZXNldC5jc3M6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5jc3M6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5jc3MubWFwOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3NlbGVjdG9yLWxp
bmUuc2NzczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9z
dHlsZXMtaGlzdG9yeS5jc3M6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9y
ZXNvdXJjZXMvc3R5bGVzLWlmcmFtZS1kYXRhLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc3R5bGVzLW5ldy1BUEktMS5jc3M6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc3R5bGVzLW5ldy1BUEktMi5jc3M6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc3R5bGVzLW5l
dy1BUEkuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2Vz
L3N0eWxlcy1zb3VyY2UtbGluZXMtaW5saW5lLWlmcmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3M6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc3R5bGVzLXVy
bC1saW5raWZ5LWlmcmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvcmVzb3VyY2VzL3N0eWxlcy11cmwtbGlua2lmeS5jc3M6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3NlbGVjdG9yLWxpbmUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3NlbGVjdG9yLWxpc3QtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc2VsZWN0b3ItbGlzdC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc2V0LXByb3BlcnR5LWJvdW5kYXJpZXMt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc2V0LXBy
b3BlcnR5LWJvdW5kYXJpZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzL3Nob3ctdXNlci1hZ2VudC1zdHlsZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9zdHlsZXMvc2hvdy11c2VyLWFnZW50LXN0eWxlcy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWFkZC1ibGFuay1wcm9wZXJ0eS1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMt
YWRkLWJsYW5rLXByb3BlcnR5Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0
eWxlcy9zdHlsZXMtYWRkLWludmFsaWQtcHJvcGVydHktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWFkZC1pbnZhbGlkLXByb3BlcnR5Lmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRkLW5ldy1y
dWxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy1hZGQtbmV3LXJ1bGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy1jYW5jZWwtZWRpdGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtY2FuY2VsLWVkaXRpbmcuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1jaGFuZ2Utbm9kZS13aGlsZS1lZGl0
aW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy1jaGFuZ2Utbm9kZS13aGlsZS1lZGl0aW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtY29tbWl0LWVkaXRpbmctZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWNvbW1pdC1lZGl0aW5nLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtY29tcHV0ZWQt
dHJhY2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLWNvbXB1dGVkLXRyYWNlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3N0eWxlcy9zdHlsZXMtZGlzYWJsZS1pbmhlcml0ZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWRpc2FibGUtaW5oZXJpdGVkLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZGlzYWJsZS10aGVu
LWNoYW5nZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtZGlzYWJsZS10aGVuLWNoYW5nZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLWRpc2FibGUtdGhlbi1kZWxldGUtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWRpc2FibGUtdGhlbi1k
ZWxldGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1k
aXNhYmxlLXRoZW4tZW5hYmxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLXRoZW4tZW5hYmxlLW92ZXJyaWRlbi11YS1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZGlz
YWJsZS10aGVuLWVuYWJsZS1vdmVycmlkZW4tdWEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLXRoZW4tZW5hYmxlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZWRpdC1wcm9wZXJ0eS1hZnRlci1p
bnZhbGlkLXJ1bGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9z
dHlsZXMvc3R5bGVzLWVkaXQtcHJvcGVydHktYWZ0ZXItaW52YWxpZC1ydWxlLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZm9ybWF0dGluZy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZm9ybWF0
dGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhp
c3RvcnktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLWhpc3RvcnkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy1pZnJhbWUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9zdHlsZXMvc3R5bGVzLWlmcmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9zdHlsZXMvc3R5bGVzLWluY2x1ZGUtaG9zdC1ydWxlcy1jcmFzaC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaW5jbHVkZS1ob3N0LXJ1
bGVzLWNyYXNoLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHls
ZXMtaW52YWxpZC1jb2xvci12YWx1ZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWludmFsaWQtY29sb3ItdmFsdWVzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtbmV3LUFQSS1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtbmV3LUFQSS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW92ZXJyaWRl
bi1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1vdmVycmlkZW4tcHJvcGVydGllcy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1saW5lcy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLWxpbmVzLWlu
bGluZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtc291cmNlLWxpbmVzLWlubGluZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1saW5lcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1m
cm9tLWpzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9zdHlsZXMvc3R5bGVzLXVybC1saW5raWZ5LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cmwtbGlua2lmeS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3ZnLXN0eWxlLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N2Zy1zdHlsZS54aHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLW5ldy1ydWxlLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLW5ldy1ydWxl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1wcm9w
ZXJ0eS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy91
bmRvLWFkZC1wcm9wZXJ0eS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvdW5kby1hZGQtcnVsZS1jcmFzaC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1ydWxlLWNyYXNoLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3N0eWxlcy91bmRvLWNoYW5nZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy91bmRvLWNoYW5nZS1wcm9wZXJ0
eS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvdW5kby1wcm9wZXJ0
eS10b2dnbGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvdW5kby1wcm9wZXJ0eS10b2dnbGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3Ivc3R5bGVzL3VuZG8tc2V0LXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvdW5kby1zZXQtc2VsZWN0b3ItdGV4dC5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvdXAtZG93bi1udW1lcmljcy1hbmQt
Y29sb3JzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVz
L3VwLWRvd24tbnVtZXJpY3MtYW5kLWNvbG9ycy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9zdHlsZXMvdXBkYXRlcy1kdXJpbmctZG9tLXRyYXZlcnNhbC1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy91cGRhdGVzLWR1cmluZy1kb20t
dHJhdmVyc2FsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy91cGRh
dGVzLXRocm90dGxlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3N0eWxlcy91cGRhdGVzLXRocm90dGxlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9zdHlsZXMvdXJsLWNvbG9yLXN3YXRjaC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3N0eWxlcy91cmwtY29sb3Itc3dhdGNoLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy92YXJpYWJsZXMvY3NzLXZhcmlhYmxlcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy92YXJpYWJsZXMvY3Nz
LXZhcmlhYmxlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvdmVu
ZG9yLXByZWZpeGVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
c3R5bGVzL3ZlbmRvci1wcmVmaXhlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9zeW50YXgtaGlnaGxpZ2h0LWNzcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtY3NzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtaHRtbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtaHRtbC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWphdmFzY3JpcHQtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWphdmFz
Y3JpcHQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3ludGF4LWhpZ2hsaWdo
dC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9y
eS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RhYmJlZC1lZGl0
b3JzLWhpc3RvcnkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGFiYmVkLXBh
bmUtbWF4LXRhYi13aWR0aC1jYWxjdWxhdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3RhYmJlZC1wYW5lLW1heC10YWItd2lkdGgtY2FsY3VsYXRpb24uaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGFiYmVkLXBhbmUtdGFicy10by1zaG93
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGFiYmVkLXBhbmUt
dGFicy10by1zaG93Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5l
LWRmcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5l
LWRmcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS9yZXNvdXJj
ZXMvYW5JbWFnZS5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3Jl
c291cmNlcy9hbm90aGVySW1hZ2UucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90
aW1lbGluZS9yZXNvdXJjZXMvYmlnLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
dGltZWxpbmUvcmVzb3VyY2VzL3Rlc3QuYm1wOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci90aW1lbGluZS9yZXNvdXJjZXMvdGVzdC5naWY6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL3RpbWVsaW5lL3Jlc291cmNlcy90ZXN0LmljbzogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvdGltZWxpbmUvcmVzb3VyY2VzL3Rlc3QuanBnOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci90aW1lbGluZS9yZXNvdXJjZXMvdGVzdC5wbmc6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy90ZXN0LndlYnA6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy90aW1lbGluZS1pZnJhbWUtZGF0YS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS9yZXNvdXJjZXMvdGltZWxp
bmUtaWZyYW1lLXBhaW50Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1jb2FsZXNjaW5n
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtY29hbGVzY2luZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS1kZWNvZGUtcmVzaXplLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZGVjb2RlLXJlc2l6ZS5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1kb20tY29udGVudC1s
b2FkZWQtZXZlbnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1kb20tY29udGVudC1sb2FkZWQtZXZlbnQuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1lbnVtLXN0YWJpbGl0eS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWZyYW1lcy1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LWZyYW1lcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1l
bGluZS1pbmplY3RlZC1zY3JpcHQtZXZhbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWluamVjdGVkLXNjcmlwdC1ldmFsLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxheW91dC1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLWxheW91dC1yZWFzb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1sYXlvdXQtcmVhc29uLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxheW91dC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV2ZW50LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbG9h
ZC1ldmVudC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1l
bGluZS1sb2FkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtbG9hZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlY2VpdmVkLWRhdGEtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlY2Vp
dmVkLWRhdGEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1yZXNvdXJj
ZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcGFp
bnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS1wYWludC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcGFyc2UtaHRtbC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNhbGN1bGF0ZS1zdHlsZXMtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1yZWNhbGN1bGF0ZS1zdHlsZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
dGltZWxpbmUvdGltZWxpbmUtcmVjZWl2ZS1yZXNwb25zZS1ldmVudC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXJlY2VpdmUtcmVz
cG9uc2UtZXZlbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMi1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNj
cmlwdC10YWctMi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS1zY3JpcHQtdGFnLTIuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLXN0YXJ0LXRpbWUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zdGFydC10aW1lLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWUtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10aW1lLXN0
YW1wLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtdGltZS1zdGFtcC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS10aW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3RpbWVsaW5lL3RpbWVsaW5lLXRpbWVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZXItZmlyZWQtZnJvbS1ldmFsLWNhbGwt
c2l0ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLXRpbWVyLWZpcmVkLWZyb20tZXZhbC1jYWxsLXNpdGUuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZXIuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdHJpdmlhbC1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRy
aXZpYWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdWlzb3VyY2Vjb2RlLXJl
dmlzaW9ucy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Vpc291
cmNlY29kZS1yZXZpc2lvbnMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdXNl
ci1tZXRyaWNzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdXNl
ci1tZXRyaWNzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3V0aWxpdGllcy1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3V0aWxpdGllcy1oaWdo
bGlnaHQtcmVzdWx0cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3V0aWxpdGllcy1oaWdobGlnaHQtcmVzdWx0cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci91dGlsaXRpZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdmVy
c2lvbi1jb250cm9sbGVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvdmVyc2lvbi1jb250cm9sbGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3ZpZXctY3NzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivdmll
dy1jc3MuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivdmlldy1ldmVudHMtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci92aWV3LWV2ZW50cy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci93b3Jrc3BhY2UtbWFwcGluZy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3dvcmtzcGFjZS1tYXBwaW5nLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsLXdrMS9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwtd2syL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUt
cmVzb3VyY2UtZXJyb3JzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXdl
YnNvY2tldC1lcnJvci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0v
ZWZsL2luc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGktZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
cmVjZWl2ZS1yZXNwb25zZS1ldmVudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtd2Vic29ja2V0LWVycm9yLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLXJlY2VpdmUtcmVzcG9uc2UtZXZlbnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXdl
YnNvY2tldC1lcnJvci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL2luc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGktZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9pbnNwZWN0b3IvZGV2aWNlLW9yaWVudGF0aW9u
LXN1Y2Nlc3MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi14
cC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi14cC9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZS10cmVlLW1vZGVsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24tZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTQt
MDEtMjEgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1Mg
U2hhcGVzXSBQcmVzZXJ2ZSBib3gtc2hhcGUgb3JkZXIgd2hlbiBzZXJpYWxpemluZyBzaGFwZSB2
YWx1ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDUzMTE4YzQuLjAyNDAzYzIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNDMsMTEgKzQzLDYgQEAgd2Via2l0Lm9yZy9iLzExOTA5NCBmYXN0L2Zvcm1z
L2NvbG9yL2lucHV0LWNvbG9yLW9uY2hhbmdlLWV2ZW50Lmh0bWwgWyBDcmFzaCBQYXMKICMgVGhp
cyB0ZXN0IHdpbGwgcnVuIHNsb3dseSBpbiBkZWJ1ZyBtb2RlLCBidXQgaXMgcGxlbnR5IGZhc3Qg
aW4gcmVsZWFzZS4KIFsgRGVidWcgXSBqcy9yZWdyZXNzL2Vtc2NyaXB0ZW4tbWVtb3BzLmh0bWwg
WyBTa2lwIF0KIAotIyBTa2lwcGluZyB0aGUgdGVzdHMgZm9yIHRoZSBvbGQgaW5zcGVjdG9yIFVJ
Ci1pbnNwZWN0b3IgWyBTa2lwIF0KLWh0dHAvdGVzdHMvaW5zcGVjdG9yIFsgU2tpcCBdCi1odHRw
L3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkIFsgU2tpcCBdCi0KIHdlYmtpdC5vcmcvYi8xMTI1MjEg
WyBSZWxlYXNlIF0gd2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlvbm9kZS5odG1sIFsgUGFzcyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi8xMTI1MjEgWyBEZWJ1ZyBdIHdlYmF1ZGlvL2phdmFzY3JpcHRh
dWRpb25vZGUuaHRtbCBbIFBhc3MgQ3Jhc2ggXQogd2Via2l0Lm9yZy9iLzEyMDE0OCBbIFJlbGVh
c2UgXSB3ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLXVwbWl4Mi04Y2hhbm5lbC1pbnB1dC5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yLWVuYWJsZWQvY29uc29sZS1jbGVhci1hcmd1bWVudHMtb24tZnJhbWUtbmF2aWdh
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFi
bGVkL2NvbnNvbGUtY2xlYXItYXJndW1lbnRzLW9uLWZyYW1lLW5hdmlnYXRpb24tZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OWQ1YmJiLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvY29uc29sZS1jbGVhci1h
cmd1bWVudHMtb24tZnJhbWUtbmF2aWdhdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxMCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogQSBtZXNzYWdlIHdpdGgg
Zmlyc3QgYXJndW1lbnQgc3RyaW5nCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzogMjAxMQotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDQ6IFtvYmplY3QgV2luZG93XQotVGVzdHMgdGhhdCBXZWIgSW5z
cGVjdG9yIHdpbGwgZGlzY2FyZCBjb25zb2xlIG1lc3NhZ2UgYXJndW1lbnRzIHdoZW4gaWZyYW1l
IHdoZXJlIHRoZSBtZXNzYWdlIHdhcyBsb2dnZWQgaXMgbmF2aWdhdGVkIHRvIGEgZGlmZmVyZW50
IHBhZ2UuCi0KLQotUEFTU0VEOiBmb3VuZCBhcmd1bWVudCBjb3VudHMgZm9yIDMgbWVzc2FnZXMK
LVBBU1NFRDogbWVzc2FnZSAjMCBoYXMgbm8gYXJndW1lbnRzLgotUEFTU0VEOiBtZXNzYWdlICMx
IGhhcyBubyBhcmd1bWVudHMuCi1QQVNTRUQ6IG1lc3NhZ2UgIzIgaGFzIG5vIGFyZ3VtZW50cy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvY29u
c29sZS1jbGVhci1hcmd1bWVudHMtb24tZnJhbWUtbmF2aWdhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9jb25zb2xlLWNsZWFyLWFyZ3VtZW50cy1v
bi1mcmFtZS1uYXZpZ2F0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdl
YjA0ZjIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5h
YmxlZC9jb25zb2xlLWNsZWFyLWFyZ3VtZW50cy1vbi1mcmFtZS1uYXZpZ2F0aW9uLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9jb25zb2xlLWNsZWFyLWFyZ3VtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQotCi12YXIgbG9hZENv
dW50ID0gMDsKLWZ1bmN0aW9uIGZyYW1lTG9hZGVkKGV2ZW50KSB7Ci0gICAgKytsb2FkQ291bnQ7
Ci0gICAgaWYgKGxvYWRDb3VudCA9PT0gMSkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGhlRnJhbWUnKS5zcmMgPSAiYWJvdXQ6YmxhbmsiOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgZHVtcENvbnNvbGVNZXNzYWdlQXJndW1lbnRDb3VudHMoKTsKLSAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQot
Ci08L3NjcmlwdD4KLQotPC9oZWFkPgotPGJvZHk+Ci08cD4KLVRlc3RzIHRoYXQgV2ViIEluc3Bl
Y3RvciB3aWxsIGRpc2NhcmQgY29uc29sZSBtZXNzYWdlIGFyZ3VtZW50cyB3aGVuIGlmcmFtZSB3
aGVyZSB0aGUgbWVzc2FnZSB3YXMKLWxvZ2dlZCBpcyBuYXZpZ2F0ZWQgdG8gYSBkaWZmZXJlbnQg
cGFnZS4KLTwvcD4KLTxpZnJhbWUgaWQ9InRoZUZyYW1lIiBvbmxvYWQ9ImZyYW1lTG9hZGVkKGV2
ZW50KSIgc3JjPSJyZXNvdXJjZXMvY29uc29sZS1jbGVhci1hcmd1bWVudHMtaWZyYW1lLmh0bWwi
PjwvaWZyYW1lPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9jb25z
b2xlLWNsZWFyLWFyZ3VtZW50cy1vbi1mcmFtZS1yZW1vdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9jb25zb2xlLWNsZWFyLWFyZ3VtZW50
cy1vbi1mcmFtZS1yZW1vdmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1MjhjNTJhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yLWVuYWJsZWQvY29uc29sZS1jbGVhci1hcmd1bWVudHMtb24tZnJhbWUtcmVtb3ZlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDI6IEEgbWVzc2FnZSB3aXRoIGZpcnN0IGFyZ3VtZW50IHN0cmluZwotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDM6IDIwMTEKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OiBbb2JqZWN0IFdpbmRv
d10KLVRlc3RzIHRoYXQgY29uc29sZSBtZXNzYWdlIGFyZ3VtZW50cyB3aWxsIGJlIGNsZWFyZWQg
d2hlbiBpZnJhbWUgd2hlcmUgdGhlIG1lc3NhZ2VzIHdlcmUgY3JlYXRlZCBpcyByZW1vdmVkLgot
Ci1QQVNTRUQ6IGZvdW5kIGFyZ3VtZW50IGNvdW50cyBmb3IgMyBtZXNzYWdlcwotUEFTU0VEOiBt
ZXNzYWdlICMwIGhhcyBubyBhcmd1bWVudHMuCi1QQVNTRUQ6IG1lc3NhZ2UgIzEgaGFzIG5vIGFy
Z3VtZW50cy4KLVBBU1NFRDogbWVzc2FnZSAjMiBoYXMgbm8gYXJndW1lbnRzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9jb25zb2xlLWNsZWFy
LWFyZ3VtZW50cy1vbi1mcmFtZS1yZW1vdmUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yLWVuYWJsZWQvY29uc29sZS1jbGVhci1hcmd1bWVudHMtb24tZnJhbWUtcmVtb3Zl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiNzQ2M2IuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9jb25zb2xlLWNsZWFy
LWFyZ3VtZW50cy1vbi1mcmFtZS1yZW1vdmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQxICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbnNvbGUtY2xl
YXItYXJndW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotfQotCi1mdW5jdGlvbiByZW1vdmVJRnJhbWUoKQotewotICAgIHZh
ciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7Ci0gICAg
dmFyIGNoaWxkID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7Ci0gICAgd2hpbGUgKGNoaWxkKSB7Ci0g
ICAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjaGlsZCk7Ci0gICAgICAgIGNoaWxkID0gY29u
dGFpbmVyLmZpcnN0Q2hpbGQ7Ci0gICAgfQotICAgIGR1bXBDb25zb2xlTWVzc2FnZUFyZ3VtZW50
Q291bnRzKCk7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKLX0KLQotZnVuY3Rpb24gY3JlYXRlSUZyYW1lKCkKLXsKLSAgICB2YXIg
aWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Ci0gICAgaWZyYW1lLnNl
dEF0dHJpYnV0ZSgnc3JjJywgJ3Jlc291cmNlcy9jb25zb2xlLWNsZWFyLWFyZ3VtZW50cy1pZnJh
bWUuaHRtbCcpOwotICAgIGlmcmFtZS5vbmxvYWQ9IHJlbW92ZUlGcmFtZTsKLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImNyZWF0ZUlGcmFtZSgpIj4KLTxwPgot
VGVzdHMgdGhhdCBjb25zb2xlIG1lc3NhZ2UgYXJndW1lbnRzIHdpbGwgYmUgY2xlYXJlZCB3aGVu
IGlmcmFtZSB3aGVyZSB0aGUgbWVzc2FnZXMgd2VyZQotY3JlYXRlZCBpcyByZW1vdmVkLgotPC9w
PgotPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci1lbmFibGVkL2NvbnNvbGUtbG9nLWJlZm9yZS1mcmFtZS1uYXZpZ2F0aW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvY29uc29sZS1s
b2ctYmVmb3JlLWZyYW1lLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0OGZlODVhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yLWVuYWJsZWQvY29uc29sZS1sb2ctYmVmb3JlLWZyYW1lLW5hdmlnYXRpb24t
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgNTogQ29uc29sZSBtZXNzYWdlIChDKSAlZCB3aXRoIGVsZW1lbnQKLVRlc3RzIHRo
YXQgV2ViIEluc3BlY3RvciB3b24ndCBjcmFzaCBpZiB0aGVyZSBhcmUgbWVzc2FnZXMgd3JpdHRl
biB0byBjb25zb2xlIGZyb20gYSBmcmFtZSB3aGljaCBoYXMgYWxyZWFkeSBuYXZpZ2F0ZWQgdG8g
YSBwYWdlIGZyb20gYSBkaWZmZXJlbnQgZG9tYWluLgotCi0KLVJlY2VpdmVkIGNvbnNvbGUgbWVz
c2FnZXM6Ci1NZXNzYWdlWzBdOgotTWVzc2FnZTogcmVzb3VyY2VzL2NvbnNvbGUtbG9nLWZyYW1l
LWJlZm9yZS1uYXZpZ2F0aW9uLmh0bWw6NSBDb25zb2xlIG1lc3NhZ2UgKEMpICVkIHdpdGggZWxl
bWVudAotVEVTVCBDT01QTEVURS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3ItZW5hYmxlZC9jb25zb2xlLWxvZy1iZWZvcmUtZnJhbWUtbmF2aWdhdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9jb25zb2xlLWxv
Zy1iZWZvcmUtZnJhbWUtbmF2aWdhdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyYTc2ZTkwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yLWVuYWJsZWQvY29uc29sZS1sb2ctYmVmb3JlLWZyYW1lLW5hdmlnYXRpb24uaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIG9u
bG9hZCgpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLX0KLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOwotCi1mdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVu
dCkgewotICAgIGlmIChldmVudC5kYXRhICE9ICJmcmFtZVJlbG9hZGVkIikgewotICAgICAgICB0
ZXN0RmFpbGVkKCJVbmV4cGVjdGVkIG1lc3NhZ2U6ICIgKyBldmVudC5kYXRhKTsKLSAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLnNob3dXZWJJbnNwZWN0b3IoKTsKLSAgICBydW5UZXN0KCk7Ci19
Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBtZXNzYWdlcyA9IFdlYkluc3BlY3Rvci5j
b25zb2xlLm1lc3NhZ2VzOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZWNlaXZlZCBj
b25zb2xlIG1lc3NhZ2VzOiIpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgdmFyIG0gPSBtZXNzYWdlc1tpXTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIk1lc3NhZ2VbIiArIGkgKyAiXToiKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIk1lc3NhZ2U6ICIgKyBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVG
b3JVUkwobS51cmwpICsgIjoiICsgbS5saW5lICsgIiAiICsgbS5tZXNzYWdlKTsKLSAgICB9Ci0g
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRFU1QgQ09NUExFVEUuIik7Ci0gICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLTxib2R5
IG9ubG9hZD0ib25sb2FkKCkiPgotPHA+Ci1UZXN0cyB0aGF0IFdlYiBJbnNwZWN0b3Igd29uJ3Qg
Y3Jhc2ggaWYgdGhlcmUgYXJlIG1lc3NhZ2VzIHdyaXR0ZW4gdG8gY29uc29sZSBmcm9tIGEgZnJh
bWUgd2hpY2ggaGFzIGFscmVhZHkgbmF2aWdhdGVkIHRvIGEgcGFnZSBmcm9tIGEgZGlmZmVyZW50
IGRvbWFpbi4KLTwvcD4KLTxpZnJhbWUgaWQ9InRoZUZyYW1lIiBzcmM9InJlc291cmNlcy9jb25z
b2xlLWxvZy1mcmFtZS1iZWZvcmUtbmF2aWdhdGlvbi5odG1sIj48L2lmcmFtZT4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVu
YWJsZWQvZGF0YWJhc2Utb3Blbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci1lbmFibGVkL2RhdGFiYXNlLW9wZW4tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhZjA4MjEyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZGF0YWJhc2Utb3Blbi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLVRlc3RzIHRoYXQgV2ViIEluc3BlY3RvciBnZXRz
IHBvcHVsYXRlZCB3aXRoIGRhdGFiYXNlcyB0aGF0IHdlcmUgb3BlbmVkIGJlZm9yZSBpbnNwZWN0
b3IgaXMgc2hvd24uCi0KLU5hbWU6IEluc3BlY3RvckRhdGFiYXNlVGVzdAotVmVyc2lvbjogMS4w
Ci1Eb21haW46IDEyNy4wLjAuMQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci1lbmFibGVkL2RhdGFiYXNlLW9wZW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZGF0YWJhc2Utb3Blbi5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmZGNkM2NmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZGF0YWJhc2Utb3Blbi5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNDAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gb25sb2FkKCkKLXsK
LSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOwotCi0gICAgdmFyIGRiID0gb3BlbkRhdGFiYXNlKCJJbnNwZWN0b3JEYXRhYmFzZVRl
c3QiLCAiMS4wIiwgIlRlc3Qgb2YgZGF0YWJhc2UgaW5zdHJ1bWVudGF0aW9uIiwgMSk7Ci0KLSAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuc2hvd1dlYkluc3Bl
Y3RvcigpOwotICAgIHJ1blRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVu
Y3Rpb24gcnVuKCkKLSAgICB7Ci0gICAgICAgIHZhciBkYXRhYmFzZXMgPSBXZWJJbnNwZWN0b3Iu
ZGF0YWJhc2VNb2RlbC5kYXRhYmFzZXMoKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBk
YXRhYmFzZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJOYW1lOiAiICsgZGF0YWJhc2VzW2ldLm5hbWUpOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlZlcnNpb246ICIgKyBkYXRhYmFzZXNbaV0udmVyc2lvbik7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRG9tYWluOiAiICsgZGF0YWJhc2VzW2ld
LmRvbWFpbik7Ci0gICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICB9Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVz
KHJ1bik7Ci19Ci0KLTwvc2NyaXB0PgotCi08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9Im9ubG9hZCgp
Ij4KLTxwPlRlc3RzIHRoYXQgV2ViIEluc3BlY3RvciBnZXRzIHBvcHVsYXRlZCB3aXRoIGRhdGFi
YXNlcyB0aGF0IHdlcmUgb3BlbmVkIGJlZm9yZSBpbnNwZWN0b3IgaXMgc2hvd24uPC9wPgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3ItZW5hYmxlZC9kZWRpY2F0ZWQtd29ya2Vycy1saXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZGVkaWNhdGVkLXdvcmtlcnMtbGlzdC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhYjU5NDguLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9kZWRpY2F0
ZWQtd29ya2Vycy1saXN0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBA
QAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBSZWNlaXZlZCBtZXNzYWdlIGZyb20gd29ya2Vy
IDEKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogUmVjZWl2ZWQgbWVzc2FnZSBmcm9tIHdvcmtl
ciAyCi1UZXN0cyB0aGF0IGRlZGljYXRlZCB3b3JrZXJzIGNyZWF0ZWQgYmVmb3JlIHdvcmtlciBp
bnNwZWN0aW9uIHdhcyBlbmFibGVkIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIGZyb250LWVuZC4g
QnVnIDcyMDIwCi0KLVdvcmtlciBpbnNwZWN0aW9uIGVuYWJsZWQKLUFkZGVkIHdvcmtlcjogMQot
QWRkZWQgd29ya2VyOiAyCi1Eb25lLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci1lbmFibGVkL2RlZGljYXRlZC13b3JrZXJzLWxpc3QuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZGVkaWNhdGVkLXdvcmtlcnMtbGlz
dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjlkNmZmLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZGVkaWNhdGVkLXdv
cmtlcnMtbGlzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3Njcmlw
dD4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIGhhbmRsZUxvYWQoKQotewotICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLSAgICB2
YXIgd29ya2VyMSA9IG5ldyBXb3JrZXIoInJlc291cmNlcy9kZWRpY2F0ZWQtd29ya2VyLmpzP2lk
PTEiKTsKLSAgICB3b3JrZXIxLm9ubWVzc2FnZSA9IGhhbmRsZU1lc3NhZ2VGcm9tV29ya2VyOwot
ICAgIHZhciB3b3JrZXIyID0gbmV3IFdvcmtlcigicmVzb3VyY2VzL2RlZGljYXRlZC13b3JrZXIu
anM/aWQ9MiIpOwotICAgIHdvcmtlcjIub25tZXNzYWdlID0gaGFuZGxlTWVzc2FnZUZyb21Xb3Jr
ZXI7Ci0gICAgdmFyIG1lc3NhZ2VDb3VudCA9IDA7Ci0gICAgZnVuY3Rpb24gaGFuZGxlTWVzc2Fn
ZUZyb21Xb3JrZXIoZXZlbnQpCi0gICAgewotICAgICAgICBtZXNzYWdlQ291bnQrKzsKLSAgICAg
ICAgY29uc29sZS5sb2coIlJlY2VpdmVkIG1lc3NhZ2UgZnJvbSB3b3JrZXIgIiArIG1lc3NhZ2VD
b3VudCk7Ci0gICAgICAgIGlmIChtZXNzYWdlQ291bnQgPT09IDIpIHsKLSAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNob3dXZWJJ
bnNwZWN0b3IoKTsKLSAgICAgICAgICAgIHJ1blRlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLX0K
LQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXb3JrZXJBZ2VudC5kaXNhYmxlKGRpZERpc2Fi
bGVXb3JrZXJJbnNwZWN0aW9uKTsKLQotICAgIGZ1bmN0aW9uIGRpZERpc2FibGVXb3JrZXJJbnNw
ZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci53b3JrZXJNYW5hZ2VyLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIuRXZlbnRzLldvcmtlckFkZGVk
LCB3b3JrZXJBZGRlZCwgdGhpcyk7Ci0gICAgICAgIFdvcmtlckFnZW50LmVuYWJsZSgpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiV29ya2VyIGluc3BlY3Rpb24gZW5hYmxlZCIp
OwotICAgIH0KLQotICAgIHZhciB3b3JrZXJDb3VudCA9IDA7Ci0gICAgZnVuY3Rpb24gd29ya2Vy
QWRkZWQoKQotICAgIHsKLSAgICAgICAgd29ya2VyQ291bnQrKzsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIkFkZGVkIHdvcmtlcjogIiArIHdvcmtlckNvdW50KTsKLSAgICAgICAg
aWYgKHdvcmtlckNvdW50ID09PSAyKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiRG9uZS4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci0gICAgICAgIH0KLSAgICB9Ci19OwotCi08L3NjcmlwdD4KLQotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9ImhhbmRsZUxvYWQoKSI+Ci08cD5UZXN0cyB0aGF0IGRlZGljYXRlZCB3b3JrZXJzIGNy
ZWF0ZWQgYmVmb3JlIHdvcmtlciBpbnNwZWN0aW9uIHdhcyBlbmFibGVkIHdpbGwgYmUgcmVwb3J0
ZWQgdG8gdGhlIGZyb250LWVuZC4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MjAyMCI+QnVnIDcyMDIwPC9hPgotPC9wPgotCi08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVk
L2RvY3VtZW50LXdyaXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yLWVuYWJsZWQvZG9jdW1lbnQtd3JpdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0Nzc3NGI2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9jdW1lbnQtd3JpdGUtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDogTGluZSA0
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTogTGluZSA1Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogTGluZSAxIGluIGRvY3VtZW50LndyaXRlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDogTGlu
ZSA0IGluIGRvY3VtZW50LndyaXRlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogTGluZSA3Ci1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMjU6IExpbmUgMjUKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
OiBzY3JpcHQgZWxlbWVudAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IGRvY3VtZW50LndyaXRl
IGZyb20gb25sb2FkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yLWVuYWJsZWQvZG9jdW1lbnQtd3JpdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yLWVuYWJsZWQvZG9jdW1lbnQtd3JpdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYmU3YTA2NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci1lbmFibGVkL2RvY3VtZW50LXdyaXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotCi08c2NyaXB0PmNvbnNvbGUubG9nKCJMaW5l
IDQiKTs8L3NjcmlwdD4KLTxzY3JpcHQ+Y29uc29sZS5sb2coIkxpbmUgNSIpOzwvc2NyaXB0Pgot
PHNjcmlwdD5kb2N1bWVudC53cml0ZSgiPHNjcmlwIiArICJ0PmNvbnNvbGUubG9nKFwiTGluZSAx
IGluIGRvY3VtZW50LndyaXRlXCIpO1xuXG5cbmNvbnNvbGUubG9nKFwiTGluZSA0IGluIGRvY3Vt
ZW50LndyaXRlXCIpOzwvc2MiICsgInJpcHQ+Iik7PC9zY3JpcHQ+Ci08c2NyaXB0PmNvbnNvbGUu
bG9nKCJMaW5lIDciKTs8L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotZnVuY3Rpb24gb25sb2FkKCkK
LXsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotCi0gICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlw
dCIpOwotICAgIHNjcmlwdC50ZXh0Q29udGVudCA9ICJjb25zb2xlLmxvZyhcInNjcmlwdCBlbGVt
ZW50XCIpIjsKLSAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7Ci0gICAgZG9j
dW1lbnQud3JpdGUoIjxzY3JpcCIgKyAidD5jb25zb2xlLmxvZyhcImRvY3VtZW50LndyaXRlIGZy
b20gb25sb2FkXCIpOzwvc2MiICsgInJpcHQ+Iik7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9ImNvbnNvbGUubG9nKCdMaW5lIDI1Jyk7IG9ubG9hZCgpOyI+Ci08cD4K
LVRlc3RzIHRoYXQgY29uc29sZSByZXBvcnRzIHplcm8gbGluZSBudW1iZXIgZm9yIHNjcmlwdHMg
Z2VuZXJhdGVkIHdpdGggZG9jdW1lbnQud3JpdGUuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzEwOTkuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9tLXN0b3Jh
Z2Utb3Blbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1l
bmFibGVkL2RvbS1zdG9yYWdlLW9wZW4tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhNDY4MjExLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Blbi1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw3ICswLDAgQEAKLVRlc3RzIHRoYXQgV2ViIEluc3BlY3RvciBnZXRzIHBvcHVs
YXRlZCB3aXRoIERPTSBzdG9yYWdlcyBhY2NvcmRpbmcgdG8gc2VjdXJpdHkgb3JpZ2lucyBmb3Vu
ZCBpbiB0aGUgcGFnZS4KLQotU2VjdXJpdHlPcmlnaW46IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMAot
SXNMb2NhbFN0b3JhZ2U6IHRydWUKLVNlY3VyaXR5T3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgw
MDAKLUlzTG9jYWxTdG9yYWdlOiBmYWxzZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2RvbS1zdG9yYWdlLW9wZW4uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Blbi5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzAyMDA3Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Blbi5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rp
b24gb25sb2FkKCkKLXsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi0gICAgd2luZG93LnNlc3Npb25TdG9yYWdlWyJpbnNw
ZWN0b3IiXSA9ICJ0cnVlIjsKLQotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
dGVzdFJ1bm5lci5zaG93V2ViSW5zcGVjdG9yKCk7Ci0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgewotICAgICAgICB2
YXIgc3RvcmFnZXMgPSBXZWJJbnNwZWN0b3IuZG9tU3RvcmFnZU1vZGVsLnN0b3JhZ2VzKCk7Ci0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RvcmFnZXMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZWN1cml0eU9yaWdpbjogIiArIHN0b3Jh
Z2VzW2ldLnNlY3VyaXR5T3JpZ2luKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJJc0xvY2FsU3RvcmFnZTogIiArIHN0b3JhZ2VzW2ldLmlzTG9jYWxTdG9yYWdlKTsKLSAg
ICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLSAg
ICBJbnNwZWN0b3JCYWNrZW5kLnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoY2FsbGJhY2spOwot
fQotCi08L3NjcmlwdD4KLQotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Ci08cD5U
ZXN0cyB0aGF0IFdlYiBJbnNwZWN0b3IgZ2V0cyBwb3B1bGF0ZWQgd2l0aCBET00gc3RvcmFnZXMg
YWNjb3JkaW5nIHRvIHNlY3VyaXR5IG9yaWdpbnMgZm91bmQgaW4gdGhlIHBhZ2UuPC9wPgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3ItZW5hYmxlZC9keW5hbWljLXNjcmlwdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9keW5hbWljLXNjcmlwdHMtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZmZhOWY4Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZHluYW1pYy1zY3JpcHRzLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLVRlc3RzIHRoYXQgc2NyaXB0
cyBmb3IgZHluYW1pY2FsbHkgYWRkZWQgc2NyaXB0IGVsZW1lbnRzIGFyZSBzaG93biBpbiBzb3Vy
Y2VzIHBhbmVsIGlmIGluc3BlY3RvciBpcyBvcGVuZWQgYWZ0ZXIgdGhlIHNjcmlwdHMgd2VyZSBs
b2FkZWQuCi0KLUJ1ZyA5OTMyNAotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1VSVNvdXJjZUNvZGVz
OgotICAgIGRlYnVnZ2VyLXRlc3QuanMKLSAgICBkeW5hbWljLXNjcmlwdC5qcwotICAgIGR5bmFt
aWMtc2NyaXB0cy5odG1sCi0gICAgZXZhbFNvdXJjZVVSTC5qcwotICAgIGluc3BlY3Rvci10ZXN0
LmpzCi0gICAgc2NyaXB0RWxlbWVudENvbnRlbnRTb3VyY2VVUkwuanMKLURlYnVnZ2VyIHdhcyBk
aXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3It
ZW5hYmxlZC9keW5hbWljLXNjcmlwdHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yLWVuYWJsZWQvZHluYW1pYy1zY3JpcHRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAzZDU3MDMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3ItZW5hYmxlZC9keW5hbWljLXNjcmlwdHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDgyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3IvZGVidWdnZXItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gYXBwZW5kRHluYW1pY1NjcmlwdEVs
ZW1lbnQoc3JjLCBjb250ZW50KQotewotICAgIHZhciBzY3JpcHRFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Ci0gICAgaWYgKHNyYykKLSAgICAgICAgc2NyaXB0RWxl
bWVudC5zcmMgPSBzcmM7Ci0gICAgZWxzZQotICAgICAgICBzY3JpcHRFbGVtZW50LnRleHRDb250
ZW50ID0gY29udGVudDsKLSAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdEVsZW1l
bnQpOwotfQotCi1mdW5jdGlvbiBsb2FkU2NyaXB0cygpCi17Ci0gICAgdmFyIHNvdXJjZVVSTENv
bW1lbnQgPSAiXG4gLy9AIHNvdXJjZVVSTD0iOwotICAgIHdpbmRvdy5ldmFsKCJmdW5jdGlvbiBm
b29FdmFsKCkge30iKTsKLSAgICB3aW5kb3cuZXZhbCgiZnVuY3Rpb24gZm9vRXZhbFNvdXJjZVVS
TCgpIHt9IiArIHNvdXJjZVVSTENvbW1lbnQgKyAiZXZhbFNvdXJjZVVSTC5qcyIpOwotICAgIGFw
cGVuZER5bmFtaWNTY3JpcHRFbGVtZW50KCIiLCAiZnVuY3Rpb24gZm9vU2NyaXB0RWxlbWVudENv
bnRlbnQxKCkge30iKTsKLSAgICBhcHBlbmREeW5hbWljU2NyaXB0RWxlbWVudCgiIiwgImZ1bmN0
aW9uIGZvb1NjcmlwdEVsZW1lbnRDb250ZW50MigpIHt9Iik7Ci0gICAgYXBwZW5kRHluYW1pY1Nj
cmlwdEVsZW1lbnQoIiIsICJmdW5jdGlvbiBmb29TY3JpcHRFbGVtZW50Q29udGVudFNvdXJjZVVS
TCgpIHt9IiArIHNvdXJjZVVSTENvbW1lbnQgKyAic2NyaXB0RWxlbWVudENvbnRlbnRTb3VyY2VV
UkwuanMiKTsKLSAgICBhcHBlbmREeW5hbWljU2NyaXB0RWxlbWVudCgicmVzb3VyY2VzL2R5bmFt
aWMtc2NyaXB0LmpzIik7Ci19Ci0KLWZ1bmN0aW9uIG9ubG9hZCgpCi17Ci0gICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBs
b2FkU2NyaXB0cygpOwotfQotCi1mdW5jdGlvbiBzY3JpcHRMb2FkZWQoKQotewotICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5zaG93V2ViSW5zcGVjdG9yKCk7
Ci0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JU
ZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAyKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhzdGVw
Myk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgdmFyIHBh
bmVsID0gV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwotICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlcyA9IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2Rlc0ZvclByb2pl
Y3RUeXBlKFdlYkluc3BlY3Rvci5wcm9qZWN0VHlwZXMuTmV0d29yayk7Ci0gICAgICAgIHZhciB1
cmxzID0gdWlTb3VyY2VDb2Rlcy5tYXAoZnVuY3Rpb24odWlTb3VyY2VDb2RlKSB7IHJldHVybiB1
aVNvdXJjZUNvZGUubmFtZSgpOyB9KTsKLSAgICAgICAgdXJscy5zb3J0KCk7Ci0gICAgICAgIAot
ICAgICAgICB2YXIgd2hpdGVMaXN0ID0gWyJkZWJ1Z2dlci10ZXN0LmpzIiwgImR5bmFtaWMtc2Ny
aXB0LmpzIiwgImR5bmFtaWMtc2NyaXB0cy5odG1sIiwgImV2YWxTb3VyY2VVUkwuanMiLCAiaW5z
cGVjdG9yLXRlc3QuanMiLCAic2NyaXB0RWxlbWVudENvbnRlbnRTb3VyY2VVUkwuanMiXTsKLSAg
ICAgICAgZnVuY3Rpb24gZmlsdGVyKHVybCkKLSAgICAgICAgewotICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB3aGl0ZUxpc3QubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBp
ZiAodXJsLmluZGV4T2Yod2hpdGVMaXN0W2ldKSAhPT0gLTEpCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIHVybHMgPSB1cmxzLmZpbHRlcihm
aWx0ZXIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSVNvdXJjZUNvZGVz
OiIpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVybHMubGVuZ3RoOyArK2kpCi0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICIgKyB1cmxzW2ldKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Ci08cD5UZXN0cyB0aGF0IHNj
cmlwdHMgZm9yIGR5bmFtaWNhbGx5IGFkZGVkIHNjcmlwdCBlbGVtZW50cyBhcmUgc2hvd24gaW4g
c291cmNlcyBwYW5lbCBpZiBpbnNwZWN0b3IgaXMgb3BlbmVkIGFmdGVyIHRoZSBzY3JpcHRzIHdl
cmUgbG9hZGVkLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05OTMyNCI+QnVnIDk5MzI0PC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9pbmplY3RlZC1zY3Jp
cHQtZGlzY2FyZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci1lbmFibGVkL2luamVjdGVkLXNjcmlwdC1kaXNjYXJkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjg1ODRhNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2luamVjdGVkLXNjcmlwdC1kaXNjYXJkLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDE6IE9wZW5pbmcgZnJvbnQtZW5kIGZvciB0aGUgZmlyc3QgdGltZQotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE6IFJlc29sdmVkIG9iamVjdCBzdWNjZXNzZnVsbHkKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAxOiBPcGVuaW5nIGZyb250LWVuZCBzZWNvbmQgdGltZQotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE6IEVycm9yIHJlc29sdmluZyBvYmplY3QKLVRlc3RzIHRoYXQgaW5qZWN0ZWQgc2Ny
aXB0IGlzIGRpc2NhcmRlZCB1cG9uIGZyb250LWVuZCBjbG9zZS4KLQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2luamVjdGVkLXNjcmlwdC1k
aXNjYXJkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2lu
amVjdGVkLXNjcmlwdC1kaXNjYXJkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGYwZTg1NjEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3It
ZW5hYmxlZC9pbmplY3RlZC1zY3JpcHQtZGlzY2FyZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NzUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci9jb25z
b2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gb3BlbldlYkluc3Bl
Y3RvcigpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLnNob3dXZWJJbnNwZWN0b3Io
KTsKLSAgICAgICAgcnVuVGVzdCgpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gcmVvcGVuV2ViSW5z
cGVjdG9yKG9iamVjdElkKQotewotICAgIHdpbmRvdy5vYmplY3RJZCA9IHVuZXNjYXBlKG9iamVj
dElkKTsKLSAgICB0ZXN0UnVubmVyLmNsb3NlV2ViSW5zcGVjdG9yKCk7Ci0gICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKLSAgICAgIHRlc3RSdW5uZXIuc2hvd1dlYkluc3BlY3RvcigpOwotICAg
ICAgcnVuVGVzdCgpOwotICAgIH0sIDApOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBS
dW50aW1lQWdlbnQuZXZhbHVhdGUoIndpbmRvdy5vYmplY3RJZCIsIGRpc3BhdGNoKTsKLQotICAg
IGZ1bmN0aW9uIGRpc3BhdGNoKGVycm9yLCByZXN1bHQsIHdhc1Rocm93bikKLSAgICB7Ci0gICAg
ICAgIGlmIChyZXN1bHQudHlwZSAhPT0gInN0cmluZyIpIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoImNvbnNvbGUubG9nKCdPcGVuaW5nIGZyb250LWVuZCBmb3Ig
dGhlIGZpcnN0IHRpbWUnKSIpOwotICAgICAgICAgICAgaW5zdGFsbEhhbmRsZUluSW5qZWN0ZWRT
Y3JpcHQoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoImNvbnNvbGUubG9nKCdPcGVuaW5nIGZyb250LWVuZCBzZWNvbmQgdGltZScp
Iik7Ci0gICAgICAgICAgICBjaGVja0hhbmRsZUluSW5qZWN0ZWRTY3JpcHQocmVzdWx0LnZhbHVl
LCBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBpbnN0YWxsSGFuZGxlSW5JbmplY3RlZFNjcmlwdCgpCi0gICAgewotICAgICAgICBS
dW50aW1lQWdlbnQuZXZhbHVhdGUoIih7IGhhbmRsZSA6IFwiaGFuZGxlXCIgfSkiLCBzdG9yZUlk
SW5UYXJnZXRXaW5kb3cpOwotCi0gICAgICAgIGZ1bmN0aW9uIHN0b3JlSWRJblRhcmdldFdpbmRv
dyhlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNoZWNr
SGFuZGxlSW5JbmplY3RlZFNjcmlwdChyZXN1bHQub2JqZWN0SWQsIHJlb3Blbkluc3BlY3Rvcik7
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHJlb3Blbkluc3BlY3RvcigpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicmVvcGVuV2Vi
SW5zcGVjdG9yKCciICsgZXNjYXBlKHJlc3VsdC5vYmplY3RJZCkgKyAiJykiKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNoZWNrSGFuZGxlSW5Jbmpl
Y3RlZFNjcmlwdChvYmplY3RJZCwgY2FsbGJhY2spCi0gICAgewotICAgICAgICBSdW50aW1lQWdl
bnQuZ2V0UHJvcGVydGllcyhvYmplY3RJZCwgZmFsc2UsIHByb3BlcnRpZXNBdmFpbGFibGUpOwot
Ci0gICAgICAgIGZ1bmN0aW9uIHByb3BlcnRpZXNBdmFpbGFibGUoZXJyb3IsIHByb3BlcnRpZXMp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoZXJy
b3IgPyAiY29uc29sZS5sb2coJ0Vycm9yIHJlc29sdmluZyBvYmplY3QnKSIgOiAiY29uc29sZS5s
b2coJ1Jlc29sdmVkIG9iamVjdCBzdWNjZXNzZnVsbHknKSIsIGNhbGxiYWNrKTsKLSAgICAgICAg
fQotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9Im9wZW5XZWJJ
bnNwZWN0b3IoKSI+Ci08cD4KLVRlc3RzIHRoYXQgaW5qZWN0ZWQgc2NyaXB0IGlzIGRpc2NhcmRl
ZCB1cG9uIGZyb250LWVuZCBjbG9zZS4KLTwvcD4KLTxkaXYgaWQ9ImNvbnRhaW5lciIvPgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3ItZW5hYmxlZC9yZXNvdXJjZXMvY29uc29sZS1jbGVhci1hcmd1bWVudHMtaWZyYW1lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL3Jlc291cmNlcy9jb25z
b2xlLWNsZWFyLWFyZ3VtZW50cy1pZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzFkMGE3OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci1lbmFibGVkL3Jlc291cmNlcy9jb25zb2xlLWNsZWFyLWFyZ3VtZW50cy1pZnJhbWUuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHNjcmlwdD4KLWNvbnNvbGUubG9nKCJB
IG1lc3NhZ2Ugd2l0aCBmaXJzdCBhcmd1bWVudCBzdHJpbmciLCAiU2Vjb25kIGFyZ3VtZW50IHdo
aWNoIHNob3VsZCBiZSBkaXNjYXJkZWQgb24gaWZyYW1lIHJlbW92YWwiKTsKLWNvbnNvbGUubG9n
KDIwMTEsICJBIG1lc3NhZ2Ugd2l0aCBmaXJzdCBhcmd1bWVudCBpbnRlZ2VyIik7Ci1jb25zb2xl
LmxvZyh3aW5kb3csICJBIG1lc3NhZ2Ugd2l0aCBmaXJzdCBhcmd1bWVudCB3aW5kb3ciKTsKLTwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5h
YmxlZC9yZXNvdXJjZXMvY29uc29sZS1jbGVhci1hcmd1bWVudHMtdGVzdC5qcyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvcmVzb3VyY2VzL2NvbnNvbGUtY2xlYXIt
YXJndW1lbnRzLXRlc3QuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmYzZjZDMu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9y
ZXNvdXJjZXMvY29uc29sZS1jbGVhci1hcmd1bWVudHMtdGVzdC5qcworKysgL2Rldi9udWxsCkBA
IC0xLDI0ICswLDAgQEAKLWZ1bmN0aW9uIHByaW50KHRleHQpCi17Ci0gICAgdmFyIG91dHB1dCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTsKLSAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgZGl2LnRleHRDb250ZW50ID0gdGV4dDsKLSAg
ICBvdXRwdXQuYXBwZW5kQ2hpbGQoZGl2KTsKLX0KLQotZnVuY3Rpb24gZHVtcENvbnNvbGVNZXNz
YWdlQXJndW1lbnRDb3VudHMoKQotewotICAgIHZhciBjb25zb2xlTWVzc2FnZUFyZ3VtZW50Q291
bnRzID0gd2luZG93LmludGVybmFscy5jb25zb2xlTWVzc2FnZUFyZ3VtZW50Q291bnRzKCk7Ci0g
ICAgaWYgKGNvbnNvbGVNZXNzYWdlQXJndW1lbnRDb3VudHMubGVuZ3RoID09PSAzKQotICAgICAg
ICBwcmludCgiUEFTU0VEOiBmb3VuZCBhcmd1bWVudCBjb3VudHMgZm9yIDMgbWVzc2FnZXMiKTsK
LSAgICBlbHNlCi0gICAgICAgIHByaW50KCJGQUlMRUQ6IHVuZXhwZWN0ZWQgbnVtYmVyIG9mIG1l
c3NhZ2VzOiAiICsgY29uc29sZU1lc3NhZ2VBcmd1bWVudENvdW50cy5sZW5ndGgpOwotCi0gICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBjb25zb2xlTWVzc2FnZUFyZ3VtZW50Q291bnRzLmxlbmd0aDsg
aSsrKSB7Ci0gICAgICAgIHZhciBjb3VudCA9IGNvbnNvbGVNZXNzYWdlQXJndW1lbnRDb3VudHNb
aV07Ci0gICAgICAgIGlmIChjb3VudCA9PSAwKQotICAgICAgICAgICAgcHJpbnQoIlBBU1NFRDog
bWVzc2FnZSAjIiArIGkgKyAiIGhhcyBubyBhcmd1bWVudHMuIik7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHByaW50KCJGQUlMRUQ6IG1lc3NhZ2UgIyIgKyBpICsgIiBoYXMgIiArIGNvdW50
ICsgIiBhcmd1bWVudHMuIik7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9yZXNvdXJjZXMvY29uc29sZS1sb2ctZnJhbWUtYWZ0
ZXItbmF2aWdhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5h
YmxlZC9yZXNvdXJjZXMvY29uc29sZS1sb2ctZnJhbWUtYWZ0ZXItbmF2aWdhdGlvbi5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzdjMWNkLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvcmVzb3VyY2VzL2NvbnNvbGUtbG9n
LWZyYW1lLWFmdGVyLW5hdmlnYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gaGFuZGxlTG9hZCgpIHsKLSAg
ICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKCJmcmFtZVJlbG9hZGVkIiwgIioiKTsKLX0KLTwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJoYW5kbGVMb2FkKCkiPgotTmV3IElubmVy
IENvbnRlbnQuCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL3Jlc291cmNlcy9jb25zb2xlLWxvZy1mcmFtZS1iZWZv
cmUtbmF2aWdhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5h
YmxlZC9yZXNvdXJjZXMvY29uc29sZS1sb2ctZnJhbWUtYmVmb3JlLW5hdmlnYXRpb24uaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmU3ZmY4MS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL3Jlc291cmNlcy9jb25zb2xlLWxv
Zy1mcmFtZS1iZWZvcmUtbmF2aWdhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBoYW5kbGVMb2FkKCkgewot
ICBjb25zb2xlLmxvZygiQ29uc29sZSBtZXNzYWdlIChDKSAlZCB3aXRoIGVsZW1lbnQiLCAyMDEw
LCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOwotCi0gIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
Ci0gICAgLy8gTm90ZSB0aGF0IGxvY2FsaG9zdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgMTI3LjAu
MC4xIHRoYXQgdGVzdHMgYXJlIHJ1bm51bmcgYWdhaW5zdC4gU28gdGhpcyBuYXZpZ2F0aW9uCi0g
ICAgLy8gaXMgaW4gZmFjdCBjcm9zcy1kb21haW4uCi0gICAgZG9jdW1lbnQubG9jYXRpb24gPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci1lbmFibGVkL3Jlc291cmNlcy9jb25zb2xl
LWxvZy1mcmFtZS1hZnRlci1uYXZpZ2F0aW9uLmh0bWwiOwotICB9LCAwKTsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJoYW5kbGVMb2FkKCkiPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9y
ZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yLWVuYWJsZWQvcmVzb3VyY2VzL2RlZGljYXRlZC13b3JrZXIuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg2MTc0OTYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9yZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtlci5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotdmFyIHdvcmtlcklkID0gbG9jYXRpb24uc2Vh
cmNoLnN1YnN0cmluZyg0KTsKLXBvc3RNZXNzYWdlKCJXb3JrZXIgIiArIHdvcmtlcklkICsgIiBz
dGFydGVkLiIpOwotZG9Xb3JrKCk7Ci1zZXRJbnRlcnZhbChkb1dvcmssIDEwMDApOwotZnVuY3Rp
b24gZG9Xb3JrKCkgewotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci1lbmFibGVkL3Jlc291cmNlcy9keW5hbWljLXNjcmlwdC5qcyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvcmVzb3VyY2VzL2R5bmFtaWMtc2NyaXB0Lmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjlmYjgxLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvcmVzb3VyY2VzL2R5bmFtaWMt
c2NyaXB0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1mdW5jdGlvbiBmb29EeW5h
bWljU2NyaXB0KCkKLXsKLX0KLQotc2NyaXB0TG9hZGVkKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9hcHBjYWNoZS1pZnJhbWUtbWFuaWZl
c3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNh
Y2hlL2FwcGNhY2hlLWlmcmFtZS1tYW5pZmVzdHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiMjVjZjc5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2FwcGNhY2hlL2FwcGNhY2hlLWlmcmFtZS1tYW5pZmVzdHMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotVGVzdHMgdGhhdCBhcHBsaWNh
dGlvbiBjYWNoZSBtb2RlbCBrZWVwcyB0cmFjayBvZiBtYW5pZmVzdCB1cmxzIGFuZCBzdGF0dXNl
cyBjb3JyZWN0bHkuCi0KLUJ1ZyA2NDU4MQotRHVtcGluZyBhcHBsaWNhdGlvbiBjYWNoZSB0cmVl
OgotICAgIChlbXB0eSkKLUR1bXBpbmcgYXBwbGljYXRpb24gY2FjaGUgbW9kZWw6Ci0gICAgKGVt
cHR5KQotCi1EdW1waW5nIGFwcGxpY2F0aW9uIGNhY2hlIHRyZWU6Ci0gICAgTWFuaWZlc3QgVVJM
OiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9tYW5p
ZmVzdC5waHA/bWFuaWZlc3RJZD0xCi0gICAgICAgIEZyYW1lOiBmcmFtZTEgKHBhZ2Utd2l0aC1t
YW5pZmVzdC5waHApCi1EdW1waW5nIGFwcGxpY2F0aW9uIGNhY2hlIG1vZGVsOgotICAgIEZyYW1l
OiBmcmFtZTEKLSAgICAgICAgbWFuaWZlc3QgdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5z
cGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xCi0gICAg
ICAgIHN0YXR1czogICAgICAgSURMRQotCi1EdW1waW5nIGFwcGxpY2F0aW9uIGNhY2hlIHRyZWU6
Ci0gICAgTWFuaWZlc3QgVVJMOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNh
Y2hlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0yCi0gICAgICAgIEZyYW1lOiBm
cmFtZTEgKHBhZ2Utd2l0aC1tYW5pZmVzdC5waHApCi1EdW1waW5nIGFwcGxpY2F0aW9uIGNhY2hl
IG1vZGVsOgotICAgIEZyYW1lOiBmcmFtZTEKLSAgICAgICAgbWFuaWZlc3QgdXJsOiBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/
bWFuaWZlc3RJZD0yCi0gICAgICAgIHN0YXR1czogICAgICAgSURMRQotCi1EdW1waW5nIGFwcGxp
Y2F0aW9uIGNhY2hlIHRyZWU6Ci0gICAgTWFuaWZlc3QgVVJMOiBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0y
Ci0gICAgICAgIEZyYW1lOiBmcmFtZTEgKHBhZ2Utd2l0aC1tYW5pZmVzdC5waHApCi0gICAgTWFu
aWZlc3QgVVJMOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291
cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xCi0gICAgICAgIEZyYW1lOiBmcmFtZTIgKHBh
Z2Utd2l0aC1tYW5pZmVzdC5waHApCi1EdW1waW5nIGFwcGxpY2F0aW9uIGNhY2hlIG1vZGVsOgot
ICAgIEZyYW1lOiBmcmFtZTEKLSAgICAgICAgbWFuaWZlc3QgdXJsOiBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJ
ZD0yCi0gICAgICAgIHN0YXR1czogICAgICAgSURMRQotICAgIEZyYW1lOiBmcmFtZTIKLSAgICAg
ICAgbWFuaWZlc3QgdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hl
L3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xCi0gICAgICAgIHN0YXR1czogICAg
ICAgSURMRQotCi1EdW1waW5nIGFwcGxpY2F0aW9uIGNhY2hlIHRyZWU6Ci0gICAgTWFuaWZlc3Qg
VVJMOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9t
YW5pZmVzdC5waHA/bWFuaWZlc3RJZD0yCi0gICAgICAgIEZyYW1lOiBmcmFtZTEgKHBhZ2Utd2l0
aC1tYW5pZmVzdC5waHApCi0gICAgTWFuaWZlc3QgVVJMOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xCi0g
ICAgICAgIEZyYW1lOiBmcmFtZTIgKHBhZ2Utd2l0aC1tYW5pZmVzdC5waHApCi0gICAgICAgIEZy
YW1lOiBmcmFtZTMgKHBhZ2Utd2l0aC1tYW5pZmVzdC5waHApCi1EdW1waW5nIGFwcGxpY2F0aW9u
IGNhY2hlIG1vZGVsOgotICAgIEZyYW1lOiBmcmFtZTEKLSAgICAgICAgbWFuaWZlc3QgdXJsOiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVz
dC5waHA/bWFuaWZlc3RJZD0yCi0gICAgICAgIHN0YXR1czogICAgICAgSURMRQotICAgIEZyYW1l
OiBmcmFtZTIKLSAgICAgICAgbWFuaWZlc3QgdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5z
cGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xCi0gICAg
ICAgIHN0YXR1czogICAgICAgSURMRQotICAgIEZyYW1lOiBmcmFtZTMKLSAgICAgICAgbWFuaWZl
c3QgdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNl
cy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xCi0gICAgICAgIHN0YXR1czogICAgICAgSURMRQot
Ci1EdW1waW5nIGFwcGxpY2F0aW9uIGNhY2hlIHRyZWU6Ci0gICAgTWFuaWZlc3QgVVJMOiBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVzdC5w
aHA/bWFuaWZlc3RJZD0yCi0gICAgICAgIEZyYW1lOiBmcmFtZTEgKHBhZ2Utd2l0aC1tYW5pZmVz
dC5waHApCi0gICAgTWFuaWZlc3QgVVJMOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xCi0gICAgICAgIEZy
YW1lOiBmcmFtZTIgKHBhZ2Utd2l0aC1tYW5pZmVzdC5waHApCi1EdW1waW5nIGFwcGxpY2F0aW9u
IGNhY2hlIG1vZGVsOgotICAgIEZyYW1lOiBmcmFtZTEKLSAgICAgICAgbWFuaWZlc3QgdXJsOiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVz
dC5waHA/bWFuaWZlc3RJZD0yCi0gICAgICAgIHN0YXR1czogICAgICAgSURMRQotICAgIEZyYW1l
OiBmcmFtZTIKLSAgICAgICAgbWFuaWZlc3QgdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5z
cGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xCi0gICAg
ICAgIHN0YXR1czogICAgICAgSURMRQotCi1EdW1waW5nIGFwcGxpY2F0aW9uIGNhY2hlIHRyZWU6
Ci0gICAgTWFuaWZlc3QgVVJMOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNh
Y2hlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0yCi0gICAgICAgIEZyYW1lOiBm
cmFtZTEgKHBhZ2Utd2l0aC1tYW5pZmVzdC5waHApCi1EdW1waW5nIGFwcGxpY2F0aW9uIGNhY2hl
IG1vZGVsOgotICAgIEZyYW1lOiBmcmFtZTEKLSAgICAgICAgbWFuaWZlc3QgdXJsOiBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVzdC5waHA/
bWFuaWZlc3RJZD0yCi0gICAgICAgIHN0YXR1czogICAgICAgSURMRQotCi1EdW1waW5nIGFwcGxp
Y2F0aW9uIGNhY2hlIHRyZWU6Ci0gICAgKGVtcHR5KQotRHVtcGluZyBhcHBsaWNhdGlvbiBjYWNo
ZSBtb2RlbDoKLSAgICAoZW1wdHkpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvYXBwY2FjaGUvYXBwY2FjaGUtaWZyYW1lLW1hbmlmZXN0cy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvYXBwY2FjaGUvYXBwY2FjaGUtaWZyYW1l
LW1hbmlmZXN0cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMGY1MzEzLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNhY2hlL2Fw
cGNhY2hlLWlmcmFtZS1tYW5pZmVzdHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwNyArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJhcHBjYWNoZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgZnJhbWVJZDE7Ci0gICAgdmFyIGZyYW1l
SWQyOwotICAgIHZhciBmcmFtZUlkMzsKLQotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInJl
c291cmNlcyIpOwotICAgIEluc3BlY3RvclRlc3QuZHVtcEFwcGxpY2F0aW9uQ2FjaGUoKTsKLSAg
ICBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFuZE5hdmlnYXRlSUZyYW1lKCJyZXNvdXJjZXMvcGFnZS13
aXRoLW1hbmlmZXN0LnBocD9tYW5pZmVzdElkPTEiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBz
dGVwMShmcmFtZUlkKQotICAgIHsKLSAgICAgICAgZnJhbWVJZDEgPSBmcmFtZUlkOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LndhaXRGb3JGcmFtZU1hbmlmZXN0VVJMQW5kU3RhdHVzKGZyYW1lSWQx
LCAibWFuaWZlc3QucGhwP21hbmlmZXN0SWQ9MSIsIGFwcGxpY2F0aW9uQ2FjaGUuSURMRSwgc3Rl
cDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcEFwcGxpY2F0aW9uQ2FjaGUoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5u
YXZpZ2F0ZUlGcmFtZShmcmFtZUlkMSwgInJlc291cmNlcy9wYWdlLXdpdGgtbWFuaWZlc3QucGhw
P21hbmlmZXN0SWQ9MiIsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JGcmFtZU1hbmlmZXN0VVJMQW5kU3Rh
dHVzKGZyYW1lSWQxLCAibWFuaWZlc3QucGhwP21hbmlmZXN0SWQ9MiIsIGFwcGxpY2F0aW9uQ2Fj
aGUuSURMRSwgc3RlcDQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEFwcGxpY2F0aW9uQ2FjaGUoKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5jcmVhdGVBbmROYXZpZ2F0ZUlGcmFtZSgicmVzb3VyY2VzL3BhZ2Utd2l0aC1t
YW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xIiwgc3RlcDUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHN0ZXA1KGZyYW1lSWQpCi0gICAgewotICAgICAgICBmcmFtZUlkMiA9IGZyYW1lSWQ7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3Qud2FpdEZvckZyYW1lTWFuaWZlc3RVUkxBbmRTdGF0dXMoZnJhbWVJ
ZDIsICJtYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0xIiwgYXBwbGljYXRpb25DYWNoZS5JRExFLCBz
dGVwNik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDYoKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wQXBwbGljYXRpb25DYWNoZSgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmNyZWF0ZUFuZE5hdmlnYXRlSUZyYW1lKCJyZXNvdXJjZXMvcGFnZS13aXRoLW1hbmlmZXN0LnBo
cD9tYW5pZmVzdElkPTEiLCBzdGVwNyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDcoZnJh
bWVJZCkKLSAgICB7Ci0gICAgICAgIGZyYW1lSWQzID0gZnJhbWVJZDsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC53YWl0Rm9yRnJhbWVNYW5pZmVzdFVSTEFuZFN0YXR1cyhmcmFtZUlkMywgIm1hbmlm
ZXN0LnBocD9tYW5pZmVzdElkPTEiLCBhcHBsaWNhdGlvbkNhY2hlLklETEUsIHN0ZXA4KTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwOCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LndhaXRGb3JGcmFtZU1hbmlmZXN0VVJMQW5kU3RhdHVzKGZyYW1lSWQyLCAibWFuaWZlc3QucGhw
P21hbmlmZXN0SWQ9MSIsIGFwcGxpY2F0aW9uQ2FjaGUuSURMRSwgc3RlcDkpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHN0ZXA5KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEFw
cGxpY2F0aW9uQ2FjaGUoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZW1vdmVJRnJhbWUoZnJh
bWVJZDMsIHN0ZXAxMCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDEwKCkKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvckZyYW1lTWFuaWZlc3RVUkxBbmRTdGF0dXMoZnJh
bWVJZDMsICIiLCBhcHBsaWNhdGlvbkNhY2hlLlVOQ0FDSEVELCBzdGVwMTEpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHN0ZXAxMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBB
cHBsaWNhdGlvbkNhY2hlKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVtb3ZlSUZyYW1lKGZy
YW1lSWQyLCBzdGVwMTIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAxMigpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JGcmFtZU1hbmlmZXN0VVJMQW5kU3RhdHVzKGZy
YW1lSWQyLCAiIiwgYXBwbGljYXRpb25DYWNoZS5VTkNBQ0hFRCwgc3RlcDEzKTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBzdGVwMTMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
QXBwbGljYXRpb25DYWNoZSgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbW92ZUlGcmFtZShm
cmFtZUlkMSwgc3RlcDE0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMTQoKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yRnJhbWVNYW5pZmVzdFVSTEFuZFN0YXR1cyhm
cmFtZUlkMSwgIiIsIGFwcGxpY2F0aW9uQ2FjaGUuVU5DQUNIRUQsIHN0ZXAxNSk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDE1KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cEFwcGxpY2F0aW9uQ2FjaGUoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTxwPlRlc3RzIHRoYXQgYXBwbGljYXRpb24gY2FjaGUgbW9kZWwga2VlcHMgdHJhY2sgb2Yg
bWFuaWZlc3QgdXJscyBhbmQgc3RhdHVzZXMgY29ycmVjdGx5LjwvcD4KLTxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU4MSI+QnVnIDY0NTgxPC9hPgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvYXBwY2FjaGUvYXBwY2FjaGUtbWFuaWZlc3Qtd2l0aC1ub24tZXhpc3RpbmctZmlsZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9h
cHBjYWNoZS1tYW5pZmVzdC13aXRoLW5vbi1leGlzdGluZy1maWxlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjAzOWY4Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9hcHBjYWNoZS1tYW5pZmVzdC13aXRo
LW5vbi1leGlzdGluZy1maWxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICsw
LDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogQXBwbGljYXRpb24gQ2FjaGUgdXBkYXRlIGZhaWxlZCwg
YmVjYXVzZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNl
cy9ub24tZXhpc3RpbmctZmlsZSBjb3VsZCBub3QgYmUgZmV0Y2hlZC4KLVRlc3RzIHRoYXQgYXBw
bGljYXRpb24gY2FjaGUgbW9kZWwga2VlcHMgdHJhY2sgb2YgbWFuaWZlc3QgdXJscyBhbmQgc3Rh
dHVzZXMgY29ycmVjdGx5IHdoZW4gdGhlcmUgaXMgYSBub24gZXhpc3RpbmcgZmlsZSBsaXN0ZWQg
aW4gbWFuaWZlc3QuCi0KLUJ1ZyA2NDU4MQotRHVtcGluZyBhcHBsaWNhdGlvbiBjYWNoZSB0cmVl
OgotICAgIChlbXB0eSkKLUR1bXBpbmcgYXBwbGljYXRpb24gY2FjaGUgbW9kZWw6Ci0gICAgKGVt
cHR5KQotCi1EdW1waW5nIGFwcGxpY2F0aW9uIGNhY2hlIHRyZWU6Ci0gICAgKGVtcHR5KQotRHVt
cGluZyBhcHBsaWNhdGlvbiBjYWNoZSBtb2RlbDoKLSAgICAoZW1wdHkpCi0KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvYXBwY2FjaGUvYXBwY2FjaGUtbWFu
aWZlc3Qtd2l0aC1ub24tZXhpc3RpbmctZmlsZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvYXBwY2FjaGUvYXBwY2FjaGUtbWFuaWZlc3Qtd2l0aC1ub24tZXhpc3Rpbmct
ZmlsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMmVhMzJlLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNhY2hlL2FwcGNhY2hl
LW1hbmlmZXN0LXdpdGgtbm9uLWV4aXN0aW5nLWZpbGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImFwcGNhY2hlLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBmcmFtZUlkMTsKLSAgICB2
YXIgZnJhbWVJZDI7Ci0gICAgdmFyIGZyYW1lSWQzOwotCi0gICAgV2ViSW5zcGVjdG9yLnNob3dQ
YW5lbCgicmVzb3VyY2VzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFydEFwcGxpY2F0aW9uQ2Fj
aGVTdGF0dXNlc1JlY29yZGluZygpOwotICAgIEluc3BlY3RvclRlc3QuZHVtcEFwcGxpY2F0aW9u
Q2FjaGUoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFuZE5hdmlnYXRlSUZyYW1lKCJyZXNv
dXJjZXMvcGFnZS13aXRoLW1hbmlmZXN0LnBocD9tYW5pZmVzdElkPXdpdGgtbm9uLWV4aXN0aW5n
LWZpbGUiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMShmcmFtZUlkKQotICAgIHsKLSAg
ICAgICAgZnJhbWVJZDEgPSBmcmFtZUlkOwotICAgICAgICAvLyBXYWl0aW5nIGZvciBhdCBsZWFz
dCB0d28gc3RhdHVzIGV2ZW50cyBub3RpZmljYXRpb25zIGZyb20gYmFja2VuZCwgdG8gbWFrZSBz
dXJlCi0gICAgICAgIC8vIHdlIGFyZSBub3QgY29tcGxldGluZyB0ZXN0IGJlZm9yZSBsb2FkaW5n
IGFwcGxpY2F0aW9uIGNhY2hlLgotICAgICAgICBJbnNwZWN0b3JUZXN0LmVuc3VyZUZyYW1lU3Rh
dHVzRXZlbnRzUmVjZWl2ZWQoZnJhbWVJZCwgMiwgc3RlcDIpCi0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yRnJhbWVNYW5p
ZmVzdFVSTEFuZFN0YXR1cyhmcmFtZUlkMSwgIiIsIGFwcGxpY2F0aW9uQ2FjaGUuVU5DQUNIRUQs
IHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmR1bXBBcHBsaWNhdGlvbkNhY2hlKCk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IGFwcGxpY2F0aW9uIGNhY2hlIG1vZGVs
IGtlZXBzIHRyYWNrIG9mIG1hbmlmZXN0IHVybHMgYW5kIHN0YXR1c2VzIGNvcnJlY3RseSB3aGVu
IHRoZXJlIGlzIGEgbm9uIGV4aXN0aW5nIGZpbGUgbGlzdGVkIGluIG1hbmlmZXN0LjwvcD4KLTxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU4MSI+QnVn
IDY0NTgxPC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvYXBwY2FjaGUvYXBwY2FjaGUtc3dhcC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9hcHBjYWNoZS1zd2FwLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzZkZTZkNi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9hcHBjYWNo
ZS1zd2FwLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA2OiBYSFIgbG9hZGVkOiAxCi1UZXN0cyB0aGF0IGFwcGxpY2F0aW9u
IGNhY2hlIG1vZGVsIGtlZXBzIHRyYWNrIG9mIG1hbmlmZXN0IHVybHMgYW5kIHN0YXR1c2VzIGNv
cnJlY3RseSBhZnRlciBVUERBVEVSRUFEWSBldmVudCBhbmQgc3dhcENhY2hlKCkgY2FsbC4KLQot
QnVnIDcyMTIzCi1EdW1waW5nIGFwcGxpY2F0aW9uIGNhY2hlIHRyZWU6Ci0gICAgKGVtcHR5KQot
RHVtcGluZyBhcHBsaWNhdGlvbiBjYWNoZSBtb2RlbDoKLSAgICAoZW1wdHkpCi0KLUR1bXBpbmcg
YXBwbGljYXRpb24gY2FjaGUgdHJlZToKLSAgICBNYW5pZmVzdCBVUkw6IGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9pbnNwZWN0b3IvYXBwY2FjaGUvcmVzb3VyY2VzL3ZlcnNpb25lZC1tYW5pZmVzdC5w
aHAKLSAgICAgICAgRnJhbWU6IGZyYW1lMSAod2l0aC12ZXJzaW9uZWQtbWFuaWZlc3QucGhwKQot
RHVtcGluZyBhcHBsaWNhdGlvbiBjYWNoZSBtb2RlbDoKLSAgICBGcmFtZTogZnJhbWUxCi0gICAg
ICAgIG1hbmlmZXN0IHVybDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9hcHBjYWNo
ZS9yZXNvdXJjZXMvdmVyc2lvbmVkLW1hbmlmZXN0LnBocAotICAgICAgICBzdGF0dXM6ICAgICAg
IElETEUKLQotRHVtcGluZyBhcHBsaWNhdGlvbiBjYWNoZSB0cmVlOgotICAgIE1hbmlmZXN0IFVS
TDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9hcHBjYWNoZS9yZXNvdXJjZXMvdmVy
c2lvbmVkLW1hbmlmZXN0LnBocAotICAgICAgICBGcmFtZTogZnJhbWUxICh3aXRoLXZlcnNpb25l
ZC1tYW5pZmVzdC5waHApCi0gICAgICAgIEZyYW1lOiBmcmFtZTIgKHdpdGgtdmVyc2lvbmVkLW1h
bmlmZXN0LnBocCkKLUR1bXBpbmcgYXBwbGljYXRpb24gY2FjaGUgbW9kZWw6Ci0gICAgRnJhbWU6
IGZyYW1lMQotICAgICAgICBtYW5pZmVzdCB1cmw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNw
ZWN0b3IvYXBwY2FjaGUvcmVzb3VyY2VzL3ZlcnNpb25lZC1tYW5pZmVzdC5waHAKLSAgICAgICAg
c3RhdHVzOiAgICAgICBVUERBVEVSRUFEWQotICAgIEZyYW1lOiBmcmFtZTIKLSAgICAgICAgbWFu
aWZlc3QgdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291
cmNlcy92ZXJzaW9uZWQtbWFuaWZlc3QucGhwCi0gICAgICAgIHN0YXR1czogICAgICAgVVBEQVRF
UkVBRFkKLQotRHVtcGluZyBhcHBsaWNhdGlvbiBjYWNoZSB0cmVlOgotICAgIE1hbmlmZXN0IFVS
TDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9hcHBjYWNoZS9yZXNvdXJjZXMvdmVy
c2lvbmVkLW1hbmlmZXN0LnBocAotICAgICAgICBGcmFtZTogZnJhbWUxICh3aXRoLXZlcnNpb25l
ZC1tYW5pZmVzdC5waHApCi0gICAgICAgIEZyYW1lOiBmcmFtZTIgKHdpdGgtdmVyc2lvbmVkLW1h
bmlmZXN0LnBocCkKLUR1bXBpbmcgYXBwbGljYXRpb24gY2FjaGUgbW9kZWw6Ci0gICAgRnJhbWU6
IGZyYW1lMQotICAgICAgICBtYW5pZmVzdCB1cmw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNw
ZWN0b3IvYXBwY2FjaGUvcmVzb3VyY2VzL3ZlcnNpb25lZC1tYW5pZmVzdC5waHAKLSAgICAgICAg
c3RhdHVzOiAgICAgICBJRExFCi0gICAgRnJhbWU6IGZyYW1lMgotICAgICAgICBtYW5pZmVzdCB1
cmw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvYXBwY2FjaGUvcmVzb3VyY2VzL3Zl
cnNpb25lZC1tYW5pZmVzdC5waHAKLSAgICAgICAgc3RhdHVzOiAgICAgICBVUERBVEVSRUFEWQot
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNhY2hl
L2FwcGNhY2hlLXN3YXAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Fw
cGNhY2hlL2FwcGNhY2hlLXN3YXAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzdiMmJhOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9h
cHBjYWNoZS9hcHBjYWNoZS1zd2FwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJhcHBjYWNoZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9uZXR3b3JrLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIHZhciBmcmFtZUlkMTsKLSAgICB2YXIgZnJhbWVJZDI7Ci0KLSAgICBXZWJJ
bnNwZWN0b3Iuc2hvd1BhbmVsKCJyZXNvdXJjZXMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0
QXBwbGljYXRpb25DYWNoZVN0YXR1c2VzUmVjb3JkaW5nKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5k
dW1wQXBwbGljYXRpb25DYWNoZSgpOwotICAgIEluc3BlY3RvclRlc3QuY3JlYXRlQW5kTmF2aWdh
dGVJRnJhbWUoInJlc291cmNlcy93aXRoLXZlcnNpb25lZC1tYW5pZmVzdC5waHAiLCBzdGVwMSk7
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMShmcmFtZUlkKQotICAgIHsKLSAgICAgICAgZnJhbWVJZDEg
PSBmcmFtZUlkOwotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JGcmFtZU1hbmlmZXN0VVJM
QW5kU3RhdHVzKGZyYW1lSWQxLCAicmVzb3VyY2VzL3ZlcnNpb25lZC1tYW5pZmVzdC5waHAiLCBh
cHBsaWNhdGlvbkNhY2hlLklETEUsIHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBBcHBsaWNhdGlvbkNhY2hlKCk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QubWFrZVNpbXBsZVhIUigiR0VUIiwgInJlc291cmNlcy92
ZXJzaW9uZWQtbWFuaWZlc3QucGhwP2NvbW1hbmQ9c3RlcCIsIHRydWUsIHN0ZXAzKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNy
ZWF0ZUFuZE5hdmlnYXRlSUZyYW1lKCJyZXNvdXJjZXMvd2l0aC12ZXJzaW9uZWQtbWFuaWZlc3Qu
cGhwIiwgc3RlcDQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KGZyYW1lSWQpCi0gICAg
ewotICAgICAgICBmcmFtZUlkMiA9IGZyYW1lSWQ7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud2Fp
dEZvckZyYW1lTWFuaWZlc3RVUkxBbmRTdGF0dXMoZnJhbWVJZDEsICJyZXNvdXJjZXMvdmVyc2lv
bmVkLW1hbmlmZXN0LnBocCIsIGFwcGxpY2F0aW9uQ2FjaGUuVVBEQVRFUkVBRFksIHN0ZXA1KTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNShmcmFtZUlkKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC53YWl0Rm9yRnJhbWVNYW5pZmVzdFVSTEFuZFN0YXR1cyhmcmFtZUlkMiwgInJl
c291cmNlcy92ZXJzaW9uZWQtbWFuaWZlc3QucGhwIiwgYXBwbGljYXRpb25DYWNoZS5VUERBVEVS
RUFEWSwgc3RlcDYpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA2KCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcEFwcGxpY2F0aW9uQ2FjaGUoKTsKLQotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnN3YXBGcmFtZUNhY2hlKGZyYW1lSWQxKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC53YWl0Rm9yRnJhbWVNYW5pZmVzdFVSTEFuZFN0YXR1cyhmcmFtZUlkMSwgInJlc291cmNlcy92
ZXJzaW9uZWQtbWFuaWZlc3QucGhwIiwgYXBwbGljYXRpb25DYWNoZS5JRExFLCBzdGVwNyk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDcoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5kdW1wQXBwbGljYXRpb25DYWNoZSgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBhcHBsaWNhdGlvbiBjYWNoZSBtb2RlbCBrZWVwcyB0cmFj
ayBvZiBtYW5pZmVzdCB1cmxzIGFuZCBzdGF0dXNlcyBjb3JyZWN0bHkgYWZ0ZXIgVVBEQVRFUkVB
RFkgZXZlbnQgYW5kIHN3YXBDYWNoZSgpIGNhbGwuPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTIzIj5CdWcgNzIxMjM8L2E+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9h
cHBjYWNoZS9hcHBjYWNoZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvYXBwY2FjaGUvYXBwY2FjaGUtdGVzdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzZlNTU3Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9hcHBjYWNoZS9hcHBjYWNoZS10ZXN0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjEwICswLDAg
QEAKLXZhciBmcmFtZXNDb3VudCA9IDA7Ci0KLWZ1bmN0aW9uIGNyZWF0ZUFuZE5hdmlnYXRlSUZy
YW1lKHVybCkKLXsKLSAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7Ci0gICAgaWZyYW1lLnNyYyA9IHVybDsKLSAgICBpZnJhbWUubmFtZSA9ICJmcmFtZSIg
KyArK2ZyYW1lc0NvdW50OwotICAgIGlmcmFtZS5pZCA9IGlmcmFtZS5uYW1lOwotICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLX0KLQotZnVuY3Rpb24gcmVtb3ZlSUZyYW1l
KG5hbWUpCi17Ci0gICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiMiICsg
bmFtZSk7Ci0gICAgaWZyYW1lLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoaWZyYW1lKTsKLX0K
LQotZnVuY3Rpb24gbmF2aWdhdGVJRnJhbWUobmFtZSwgdXJsKQotewotICAgIHZhciBpZnJhbWUg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjIiArIG5hbWUpOwotICAgIGlmcmFtZS5zcmMgPSB1
cmw7Ci19Ci0KLWZ1bmN0aW9uIHN3YXBGcmFtZUNhY2hlKG5hbWUpCi17Ci0gICAgdmFyIGlmcmFt
ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiMiICsgbmFtZSk7Ci0gICAgaWZyYW1lLmNvbnRl
bnRXaW5kb3cuYXBwbGljYXRpb25DYWNoZS5zd2FwQ2FjaGUoKTsKLX0KLQotdmFyIGluaXRpYWxp
emVfQXBwbGljYXRpb25DYWNoZVRlc3QgPSBmdW5jdGlvbigpIHsKLQotSW5zcGVjdG9yVGVzdC5j
cmVhdGVBbmROYXZpZ2F0ZUlGcmFtZSA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spCi17Ci0gICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5w
cm90b3R5cGUsICJfZnJhbWVOYXZpZ2F0ZWQiLCBmcmFtZU5hdmlnYXRlZCk7Ci0gICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiY3JlYXRlQW5kTmF2aWdhdGVJRnJhbWUodW5lc2NhcGUo
JyIgKyBlc2NhcGUodXJsKSArICInKSkiKTsKLQotICAgIGZ1bmN0aW9uIGZyYW1lTmF2aWdhdGVk
KGZyYW1lKQotICAgIHsKLSAgICAgICAgY2FsbGJhY2soZnJhbWUuaWQpOwotICAgIH0KLX0KLQot
SW5zcGVjdG9yVGVzdC5uYXZpZ2F0ZUlGcmFtZSA9IGZ1bmN0aW9uKGZyYW1lSWQsIHVybCwgY2Fs
bGJhY2spCi17Ci0gICAgdmFyIGZyYW1lID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVs
LmZyYW1lRm9ySWQoZnJhbWVJZCkKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJu
YXZpZ2F0ZUlGcmFtZSh1bmVzY2FwZSgnIiArIGVzY2FwZShmcmFtZS5uYW1lKSArIicpLCB1bmVz
Y2FwZSgnIiArIGVzY2FwZSh1cmwpICsgIicpKSIpOwotICAgIEluc3BlY3RvclRlc3QuYWRkU25p
ZmZlcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLCAiX2ZyYW1lTmF2
aWdhdGVkIiwgZnJhbWVOYXZpZ2F0ZWQpOwotCi0gICAgZnVuY3Rpb24gZnJhbWVOYXZpZ2F0ZWQo
ZnJhbWUpCi0gICAgewotICAgICAgICBjYWxsYmFjayhmcmFtZS5pZCk7Ci0gICAgfQotfQotCi1J
bnNwZWN0b3JUZXN0LnJlbW92ZUlGcmFtZSA9IGZ1bmN0aW9uKGZyYW1lSWQsIGNhbGxiYWNrKQot
ewotICAgIHZhciBmcmFtZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5mcmFtZUZv
cklkKGZyYW1lSWQpCi0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicmVtb3ZlSUZy
YW1lKHVuZXNjYXBlKCciICsgZXNjYXBlKGZyYW1lLm5hbWUpICsiJykpIik7Ci0gICAgSW5zcGVj
dG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5
cGUsICJfZnJhbWVEZXRhY2hlZCIsIGZyYW1lRGV0YWNoZWQpOwotCi0gICAgZnVuY3Rpb24gZnJh
bWVEZXRhY2hlZChmcmFtZSkKLSAgICB7Ci0gICAgICAgIGNhbGxiYWNrKGZyYW1lLmlkKTsKLSAg
ICB9Ci19Ci0KLUluc3BlY3RvclRlc3Quc3dhcEZyYW1lQ2FjaGUgPSBmdW5jdGlvbihmcmFtZUlk
KQotewotICAgIHZhciBmcmFtZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5mcmFt
ZUZvcklkKGZyYW1lSWQpOwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInN3YXBG
cmFtZUNhY2hlKHVuZXNjYXBlKCciICsgZXNjYXBlKGZyYW1lLm5hbWUpICsiJykpIik7Ci19Ci0K
LQotSW5zcGVjdG9yVGVzdC5kdW1wQXBwbGljYXRpb25DYWNoZSA9IGZ1bmN0aW9uKCkKLXsKLSAg
ICBJbnNwZWN0b3JUZXN0LmR1bXBBcHBsaWNhdGlvbkNhY2hlVHJlZSgpOwotICAgIEluc3BlY3Rv
clRlc3QuZHVtcEFwcGxpY2F0aW9uQ2FjaGVNb2RlbCgpOwotICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCIiKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5kdW1wQXBwbGljYXRpb25DYWNoZVRyZWUg
PSBmdW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bXBpbmcgYXBw
bGljYXRpb24gY2FjaGUgdHJlZToiKTsKLSAgICB2YXIgYXBwbGljYXRpb25DYWNoZVRyZWVFbGVt
ZW50ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuYXBwbGljYXRpb25DYWNoZUxpc3RU
cmVlRWxlbWVudDsKLSAgICBpZiAoIWFwcGxpY2F0aW9uQ2FjaGVUcmVlRWxlbWVudC5jaGlsZHJl
bi5sZW5ndGgpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAoZW1wdHkp
Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcHBs
aWNhdGlvbkNhY2hlVHJlZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAg
dmFyIG1hbmlmZXN0VHJlZUVsZW1lbnQgPSBhcHBsaWNhdGlvbkNhY2hlVHJlZUVsZW1lbnQuY2hp
bGRyZW5baV07Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgTWFuaWZlc3Qg
VVJMOiAiICsgbWFuaWZlc3RUcmVlRWxlbWVudC5tYW5pZmVzdFVSTCk7Ci0gICAgICAgIGlmICgh
bWFuaWZlc3RUcmVlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGgpIHsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIgICAgKG5vIGZyYW1lcykiKTsKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICB9Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbWFuaWZlc3RUcmVl
RWxlbWVudC5jaGlsZHJlbi5sZW5ndGg7ICsraikgewotICAgICAgICAgICAgdmFyIGZyYW1lVHJl
ZUVsZW1lbnQgPSBtYW5pZmVzdFRyZWVFbGVtZW50LmNoaWxkcmVuW2pdOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAgICAgRnJhbWU6ICIgKyBmcmFtZVRyZWVFbGVt
ZW50LmRpc3BsYXlOYW1lKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotSW5zcGVjdG9yVGVzdC5m
cmFtZUlkVG9TdHJpbmcgPSBmdW5jdGlvbihmcmFtZUlkKQotewotICAgIGlmICghSW5zcGVjdG9y
VGVzdC5mcmFtZXNCeUZyYW1lSWQpCi0gICAgICAgIEluc3BlY3RvclRlc3QuZnJhbWVzQnlGcmFt
ZUlkID0ge307Ci0gICAgdmFyIGZyYW1lID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVs
LmZyYW1lRm9ySWQoZnJhbWVJZCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgZnJhbWUgPSBJ
bnNwZWN0b3JUZXN0LmZyYW1lc0J5RnJhbWVJZFtmcmFtZUlkXTsKLSAgICBJbnNwZWN0b3JUZXN0
LmZyYW1lc0J5RnJhbWVJZFtmcmFtZUlkXSA9IGZyYW1lOwotCi0gICAgcmV0dXJuIGZyYW1lLm5h
bWU7Ci19Ci0KLUluc3BlY3RvclRlc3QuYXBwbGljYXRpb25DYWNoZVN0YXR1c1RvU3RyaW5nID0g
ZnVuY3Rpb24oc3RhdHVzKQotewotICAgIHZhciBzdGF0dXNJbmZvcm1hdGlvbiA9IHt9OwotICAg
IHN0YXR1c0luZm9ybWF0aW9uW2FwcGxpY2F0aW9uQ2FjaGUuVU5DQUNIRURdICAgID0gIlVOQ0FD
SEVEIjsKLSAgICBzdGF0dXNJbmZvcm1hdGlvblthcHBsaWNhdGlvbkNhY2hlLklETEVdICAgICAg
ICA9ICJJRExFIjsKLSAgICBzdGF0dXNJbmZvcm1hdGlvblthcHBsaWNhdGlvbkNhY2hlLkNIRUNL
SU5HXSAgICA9ICJDSEVDS0lORyI7Ci0gICAgc3RhdHVzSW5mb3JtYXRpb25bYXBwbGljYXRpb25D
YWNoZS5ET1dOTE9BRElOR10gPSAiRE9XTkxPQURJTkciOwotICAgIHN0YXR1c0luZm9ybWF0aW9u
W2FwcGxpY2F0aW9uQ2FjaGUuVVBEQVRFUkVBRFldID0gIlVQREFURVJFQURZIjsKLSAgICBzdGF0
dXNJbmZvcm1hdGlvblthcHBsaWNhdGlvbkNhY2hlLk9CU09MRVRFXSAgICA9ICJPQlNPTEVURSI7
Ci0gICAgcmV0dXJuIHN0YXR1c0luZm9ybWF0aW9uW3N0YXR1c10gfHwgc3RhdHVzSW5mb3JtYXRp
b25bYXBwbGljYXRpb25DYWNoZS5VTkNBQ0hFRF07Ci19Ci0KLUluc3BlY3RvclRlc3QuZHVtcEFw
cGxpY2F0aW9uQ2FjaGVNb2RlbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiRHVtcGluZyBhcHBsaWNhdGlvbiBjYWNoZSBtb2RlbDoiKTsKLSAgICB2YXIgbW9k
ZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5fYXBwbGljYXRpb25DYWNoZU1vZGVs
OwotCi0gICAgdmFyIGZyYW1lSWRzID0gW107Ci0gICAgZm9yICh2YXIgZnJhbWVJZCBpbiBtb2Rl
bC5fbWFuaWZlc3RVUkxzQnlGcmFtZSkKLSAgICAgICAgZnJhbWVJZHMucHVzaChmcmFtZUlkKTsK
LQotICAgIGZ1bmN0aW9uIGNvbXBhcmVGdW5jKGEsIGIpIHsKLSAgICAgICAgcmV0dXJuIEluc3Bl
Y3RvclRlc3QuZnJhbWVJZFRvU3RyaW5nKGEpLmxvY2FsZUNvbXBhcmUoSW5zcGVjdG9yVGVzdC5m
cmFtZUlkVG9TdHJpbmcoYikpOwotICAgIH0KLSAgICBmcmFtZUlkcy5zb3J0KGNvbXBhcmVGdW5j
KTsKLQotICAgIGlmICghZnJhbWVJZHMubGVuZ3RoKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCIgICAgKGVtcHR5KSIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgZnJhbWVJZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIGZy
YW1lSWQgPSBmcmFtZUlkc1tpXTsKLSAgICAgICAgdmFyIG1hbmlmZXN0VVJMID0gbW9kZWwuZnJh
bWVNYW5pZmVzdFVSTChmcmFtZUlkKTsKLSAgICAgICAgdmFyIHN0YXR1cyA9IG1vZGVsLmZyYW1l
TWFuaWZlc3RTdGF0dXMoZnJhbWVJZCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCIgICAgRnJhbWU6ICIgKyBJbnNwZWN0b3JUZXN0LmZyYW1lSWRUb1N0cmluZyhmcmFtZUlkKSk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgICAgIG1hbmlmZXN0IHVybDog
IiArIG1hbmlmZXN0VVJMKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAg
ICAgc3RhdHVzOiAgICAgICAiICsgSW5zcGVjdG9yVGVzdC5hcHBsaWNhdGlvbkNhY2hlU3RhdHVz
VG9TdHJpbmcoc3RhdHVzKSk7Ci0gICAgfQotfQotCi1JbnNwZWN0b3JUZXN0LndhaXRGb3JGcmFt
ZU1hbmlmZXN0VVJMQW5kU3RhdHVzID0gZnVuY3Rpb24oZnJhbWVJZCwgbWFuaWZlc3RVUkwsIHN0
YXR1cywgY2FsbGJhY2spCi17Ci0gICAgdmFyIGZyYW1lTWFuaWZlc3RTdGF0dXMgPSBXZWJJbnNw
ZWN0b3IucGFuZWxzLnJlc291cmNlcy5fYXBwbGljYXRpb25DYWNoZU1vZGVsLmZyYW1lTWFuaWZl
c3RTdGF0dXMoZnJhbWVJZCk7Ci0gICAgdmFyIGZyYW1lTWFuaWZlc3RVUkwgPSBXZWJJbnNwZWN0
b3IucGFuZWxzLnJlc291cmNlcy5fYXBwbGljYXRpb25DYWNoZU1vZGVsLmZyYW1lTWFuaWZlc3RV
UkwoZnJhbWVJZCk7Ci0gICAgaWYgKGZyYW1lTWFuaWZlc3RTdGF0dXMgPT09IHN0YXR1cyAmJiBm
cmFtZU1hbmlmZXN0VVJMLmluZGV4T2YobWFuaWZlc3RVUkwpICE9PSAtMSkgewotICAgICAgICBj
YWxsYmFjaygpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdmFyIGhhbmRsZXIgPSBJ
bnNwZWN0b3JUZXN0LndhaXRGb3JGcmFtZU1hbmlmZXN0VVJMQW5kU3RhdHVzLmJpbmQodGhpcywg
ZnJhbWVJZCwgbWFuaWZlc3RVUkwsIHN0YXR1cywgY2FsbGJhY2spOwotICAgIEluc3BlY3RvclRl
c3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlw
ZSwgIl9mcmFtZU1hbmlmZXN0VXBkYXRlZCIsIGhhbmRsZXIpOwotfQotCi1JbnNwZWN0b3JUZXN0
LnN0YXJ0QXBwbGljYXRpb25DYWNoZVN0YXR1c2VzUmVjb3JkaW5nID0gZnVuY3Rpb24oKQotewot
ICAgIGlmIChJbnNwZWN0b3JUZXN0LmFwcGxpY2F0aW9uQ2FjaGVTdGF0dXNlc1JlY29yZHMpIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hcHBsaWNhdGlvbkNhY2hlU3RhdHVzZXNSZWNvcmRzID0g
e307Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFwcGxpY2F0
aW9uQ2FjaGVTdGF0dXNlc1JlY29yZHMgPSB7fTsKLSAgICBmdW5jdGlvbiBhZGRSZWNvcmQoZnJh
bWVJZCwgbWFuaWZlc3RVUkwsIHN0YXR1cykgewotICAgICAgICB2YXIgcmVjb3JkID0ge307Ci0g
ICAgICAgIHJlY29yZC5tYW5pZmVzdFVSTCA9IG1hbmlmZXN0VVJMOwotICAgICAgICByZWNvcmQu
c3RhdHVzID0gc3RhdHVzOwotICAgICAgICBpZiAoIUluc3BlY3RvclRlc3QuYXBwbGljYXRpb25D
YWNoZVN0YXR1c2VzUmVjb3Jkc1tmcmFtZUlkXSkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXBwbGljYXRpb25DYWNoZVN0YXR1c2VzUmVjb3Jkc1tmcmFtZUlkXSA9IFtdOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFwcGxpY2F0aW9uQ2FjaGVTdGF0dXNlc1JlY29yZHNbZnJhbWVJZF0ucHVz
aChyZWNvcmQpOwotCi0gICAgICAgIGlmIChJbnNwZWN0b3JUZXN0LmF3YWl0ZWRGcmFtZVN0YXR1
c0V2ZW50c0NvdW50ICYmIEluc3BlY3RvclRlc3QuYXdhaXRlZEZyYW1lU3RhdHVzRXZlbnRzQ291
bnRbZnJhbWVJZF0pIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRlZEZyYW1lU3Rh
dHVzRXZlbnRzQ291bnRbZnJhbWVJZF0uY291bnQtLTsKLSAgICAgICAgICAgIGlmICghSW5zcGVj
dG9yVGVzdC5hd2FpdGVkRnJhbWVTdGF0dXNFdmVudHNDb3VudFtmcmFtZUlkXS5jb3VudCkKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0ZWRGcmFtZVN0YXR1c0V2ZW50c0NvdW50
W2ZyYW1lSWRdLmNhbGxiYWNrKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JU
ZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNb2RlbC5wcm90b3R5
cGUsICJfZnJhbWVNYW5pZmVzdFVwZGF0ZWQiLCBhZGRSZWNvcmQsIHRydWUpOwotfQotCi1JbnNw
ZWN0b3JUZXN0LmVuc3VyZUZyYW1lU3RhdHVzRXZlbnRzUmVjZWl2ZWQgPSBmdW5jdGlvbihmcmFt
ZUlkLCBjb3VudCwgY2FsbGJhY2spCi17Ci0gICAgdmFyIHJlY29yZHMgPSBJbnNwZWN0b3JUZXN0
LmFwcGxpY2F0aW9uQ2FjaGVTdGF0dXNlc1JlY29yZHNbZnJhbWVJZF0gfHwgW107Ci0gICAgdmFy
IGV2ZW50c0xlZnQgPSBjb3VudCAtIHJlY29yZHMubGVuZ3RoOwotCi0gICAgaWYgKCFldmVudHNM
ZWZ0KSB7Ci0gICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAoIUluc3BlY3RvclRlc3QuYXdhaXRlZEZyYW1lU3RhdHVzRXZlbnRzQ291bnQpCi0gICAg
ICAgIEluc3BlY3RvclRlc3QuYXdhaXRlZEZyYW1lU3RhdHVzRXZlbnRzQ291bnQgPSB7fTsKLSAg
ICBJbnNwZWN0b3JUZXN0LmF3YWl0ZWRGcmFtZVN0YXR1c0V2ZW50c0NvdW50W2ZyYW1lSWRdID0g
eyBjb3VudDogZXZlbnRzTGVmdCwgY2FsbGJhY2s6IGNhbGxiYWNrIH07Ci19Ci0KLX07Ci0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291
cmNlcy9tYW5pZmVzdC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBj
YWNoZS9yZXNvdXJjZXMvbWFuaWZlc3QucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwYjlmOGVkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2FwcGNhY2hlL3Jlc291cmNlcy9tYW5pZmVzdC5waHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNSAr
MCwwIEBACi08P3BocAotICAgIGhlYWRlcigiRXhwaXJlczogVGh1LCAwMSBEZWMgMjAwMyAxNjow
MDowMCBHTVQiKTsKLSAgICBoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBtdXN0LXJl
dmFsaWRhdGUiKTsKLSAgICBoZWFkZXIoIlByYWdtYTogbm8tY2FjaGUiKTsKLSAgICBoZWFkZXIo
IkNvbnRlbnQtVHlwZTogdGV4dC9jYWNoZS1tYW5pZmVzdCIpOwotCi0gICAgJG1hbmlmZXN0SWQg
PSAkX0dFVFsibWFuaWZlc3RJZCJdOwotCi0gICAgZWNobygiQ0FDSEUgTUFOSUZFU1RcbiIpOwot
ICAgIGVjaG8oIiMgIiAuICRtYW5pZmVzdElkIC4gIlxuIik7Ci0gICAgZWNobygicGFnZS13aXRo
LW1hbmlmZXN0LnBocD9tYW5pZmVzdElkPSIgLiAkbWFuaWZlc3RJZCAuICJcbiIpOwotCi0gICAg
aWYgKCRtYW5pZmVzdElkID09ICJ3aXRoLW5vbi1leGlzdGluZy1maWxlIikKLSAgICAgICAgZWNo
bygibm9uLWV4aXN0aW5nLWZpbGVcbiIpOwotPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy9wYWdlLXdpdGgtbWFuaWZlc3Qu
cGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvYXBwY2FjaGUvcmVzb3VyY2Vz
L3BhZ2Utd2l0aC1tYW5pZmVzdC5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMw
OGRjMDcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvYXBw
Y2FjaGUvcmVzb3VyY2VzL3BhZ2Utd2l0aC1tYW5pZmVzdC5waHAKKysrIC9kZXYvbnVsbApAQCAt
MSwxMyArMCwwIEBACi08P3BocAotJG1hbmlmZXN0SWQgPSAkX0dFVFsibWFuaWZlc3RJZCJdOwot
ZWNobyAiPGh0bWwgbWFuaWZlc3Q9XCJtYW5pZmVzdC5waHA/bWFuaWZlc3RJZD0iIC4gJG1hbmlm
ZXN0SWQgLiAiXCI+XG4iOwotPz4KLTxoZWFkPgotPC9oZWFkPgotPGJvZHk+Ci08P3BocAotJG1h
bmlmZXN0SWQgPSAkX0dFVFsibWFuaWZlc3RJZCJdOwotZWNobyAiUGFnZSB3aXRoIG1hbmlmZXN0
ICMiIC4gJG1hbmlmZXN0SWQuICIuXG4iOwotPz4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNlcy92
ZXJzaW9uZWQtbWFuaWZlc3QucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
YXBwY2FjaGUvcmVzb3VyY2VzL3ZlcnNpb25lZC1tYW5pZmVzdC5waHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDEwNzc4ZTcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvYXBwY2FjaGUvcmVzb3VyY2VzL3ZlcnNpb25lZC1tYW5pZmVzdC5waHAK
KysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08P3BocAotcmVxdWlyZV9vbmNlICcuLi8u
Li8uLi9yZXNvdXJjZXMvcG9ydGFiaWxpdHlMYXllci5waHAnOwotCi0kdG1wRmlsZSA9IHN5c19n
ZXRfdGVtcF9kaXIoKSAuICIvIiAuICJhcHBjYWNoZV9tYW5pZmVzdF9jb3VudGVyIjsKLQotZnVu
Y3Rpb24gZ2V0Q291bnQoJGZpbGUpCi17Ci0gICAgaWYgKCFmaWxlX2V4aXN0cygkZmlsZSkpIHsK
LSAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGZpbGUsICIwIik7Ci0gICAgICAgIHJldHVybiAi
MCI7Ci0gICAgfQotICAgIHJldHVybiBmaWxlX2dldF9jb250ZW50cygkZmlsZSk7Ci19Ci0KLWZ1
bmN0aW9uIHN0ZXBDb3VudGVyKCRmaWxlKQotewotICAgIGlmIChmaWxlX2V4aXN0cygkZmlsZSkp
IHsKLSAgICAgICAgJHZhbHVlID0gZ2V0Q291bnQoJGZpbGUpOwotICAgICAgICBmaWxlX3B1dF9j
b250ZW50cygkZmlsZSwgKyskdmFsdWUpOwotICAgIH0KLX0KLQotaWYgKCJzdGVwIiA9PSAkX0dF
VFsnY29tbWFuZCddKQotICAgIHN0ZXBDb3VudGVyKCR0bXBGaWxlKTsKLQotaGVhZGVyKCJFeHBp
cmVzOiBUaHUsIDAxIERlYyAyMDAzIDE2OjAwOjAwIEdNVCIpOwotaGVhZGVyKCJDYWNoZS1Db250
cm9sOiBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlIik7Ci1oZWFkZXIoIlByYWdtYTogbm8tY2Fj
aGUiKTsKLWhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L2NhY2hlLW1hbmlmZXN0Iik7Ci0KLXBy
aW50KCJDQUNIRSBNQU5JRkVTVFxuIik7Ci1wcmludCgiIyB2ZXJzaW9uICIgLiBnZXRDb3VudCgk
dG1wRmlsZSkgLiAiXG4iKTsKLXByaW50KCJ3aXRoLXZlcnNpb25lZC1tYW5pZmVzdC5waHBcbiIp
OwotPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNh
Y2hlL3Jlc291cmNlcy93aXRoLXZlcnNpb25lZC1tYW5pZmVzdC5waHAgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9yZXNvdXJjZXMvd2l0aC12ZXJzaW9uZWQtbWFu
aWZlc3QucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTY5MDFmLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNhY2hlL3Jlc291cmNl
cy93aXRoLXZlcnNpb25lZC1tYW5pZmVzdC5waHAKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAg
QEAKLTxodG1sIG1hbmlmZXN0PSJ2ZXJzaW9uZWQtbWFuaWZlc3QucGhwIj4KLTxoZWFkPgotPC9o
ZWFkPgotPGJvZHk+Ci1QYWdlIHdpdGggdmVyc2lvbmVkIG1hbmlmZXN0Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9hdWRpdHMv
cmVzb3VyY2VzL2FiZS5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9hdWRp
dHMvcmVzb3VyY2VzL2FiZS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5MzI1
MzYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvYXVkaXRzL3Jlc291cmNlcy9hYmUucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9hdWRpdHMvc2V0LWNvb2tpZS1o
ZWFkZXItYXVkaXQtbm8tZmFsc2UtcG9zaXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvYXVkaXRzL3NldC1jb29raWUtaGVhZGVyLWF1ZGl0LW5vLWZh
bHNlLXBvc2l0aXZlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDlmOTZmOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9h
dWRpdHMvc2V0LWNvb2tpZS1oZWFkZXItYXVkaXQtbm8tZmFsc2UtcG9zaXRpdmUtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UZXN0cyB0aGVyZSBpcyBubyBmYWxz
ZSBwb3NpdGl2ZSBTZXQtQ29va2llIGF1ZGl0IGVycm9yLiAKLVBhZ2UgcmVsb2FkZWQuCi1TdWNj
ZXNzLCBubyBTZXQtQ29va2llIGhlYWRlcnMgZm91bmQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9zZXQtY29va2llLWhlYWRlci1hdWRpdC1u
by1mYWxzZS1wb3NpdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
YXVkaXRzL3NldC1jb29raWUtaGVhZGVyLWF1ZGl0LW5vLWZhbHNlLXBvc2l0aXZlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3NDY4MjkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvYXVkaXRzL3NldC1jb29raWUtaGVhZGVyLWF1ZGl0
LW5vLWZhbHNlLXBvc2l0aXZlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0
LnJlbG9hZFBhZ2Uoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAg
ICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgibmV0d29yayIpOwotICAgICAgICB2YXIgcmVxdWVz
dHMgPSBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsucmVxdWVzdHM7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcmVxdWVzdHMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydFRydWUocmVxdWVzdHNbaV0ucmVzcG9uc2VIZWFkZXJWYWx1ZSgiU2V0LUNv
b2tpZSIpID09PSB1bmRlZmluZWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
U3VjY2Vzcywgbm8gU2V0LUNvb2tpZSBoZWFkZXJzIGZvdW5kLiIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgotVGVzdHMgdGhlcmUgaXMgbm8gZmFsc2UgcG9zaXRpdmUg
U2V0LUNvb2tpZSBhdWRpdCBlcnJvci4KLTxpbWcgc3JjPSJyZXNvdXJjZXMvYWJlLnBuZyI+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jaGFuZ2UtaWZyYW1lLXNyYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jaGFuZ2UtaWZyYW1lLXNyYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQ4MDIyYTMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY2hhbmdlLWlmcmFtZS1zcmMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogSUZSQU1FIEhP
U1Q6IDEyNy4wLjAuMTo4MDAwCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogSUZSQU1FIEhPU1Q6
IGxvY2FsaG9zdDo4MDAwCi0KLVRlc3RzIHRoYXQgRWxlbWVudHMgcGFuZWwgYWxsb3dzIHRvIGNo
YW5nZSBzcmMgYXR0cmlidXRlIG9uIGlmcmFtZXMgaW5zaWRlIGluc3BlY3RlZCBwYWdlLiBTZWUg
YnVnIDQxMzUwLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y2hhbmdlLWlmcmFtZS1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2NoYW5nZS1pZnJhbWUtc3JjLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0
YzA3YjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY2hh
bmdlLWlmcmFtZS1zcmMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08dGl0bGU+Q2hhbmdlIGluc3BlY3RlZCBpZnJhbWUncyAic3JjIiBhdHRyaWJ1
dGUuPC90aXRsZT4KLTxzY3JpcHQgc3JjPSJpbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIg
b25JRnJhbWVMb2FkQ2FsbGVkID0gZmFsc2U7Ci1mdW5jdGlvbiBvbklGcmFtZUxvYWQoKQotewot
ICAgIGlmIChvbklGcmFtZUxvYWRDYWxsZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBvbklGcmFt
ZUxvYWRDYWxsZWQgPSB0cnVlOwotICAgIHJ1blRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKCJyZWNlaXZlciIsIHN0ZXAxKTsKLQot
ICAgIGZ1bmN0aW9uIHN0ZXAxKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnNldEF0dHJpYnV0
ZSgic3JjIiwgInNyYz1cImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2lmcmFtZS1mcm9tLWRpZmZlcmVudC1kb21haW4tZGF0YS5odG1sXCIiKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
LSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0gICAgPGlmcmFtZSBzcmM9
InJlc291cmNlcy9pZnJhbWUtZnJvbS1kaWZmZXJlbnQtZG9tYWluLWRhdGEuaHRtbCIgaWQ9InJl
Y2VpdmVyIiBvbmxvYWQ9Im9uSUZyYW1lTG9hZCgpIj48L2lmcmFtZT4KLSAgICA8cD4KLSAgICBU
ZXN0cyB0aGF0IEVsZW1lbnRzIHBhbmVsIGFsbG93cyB0byBjaGFuZ2Ugc3JjIGF0dHJpYnV0ZSBv
biBpZnJhbWVzCi0gICAgaW5zaWRlIGluc3BlY3RlZCBwYWdlLgotICAgIFNlZSA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDEzNTAiPmJ1ZyA0MTM1MDwv
YT4uCi0gICAgPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBp
bmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YzJiYzk4Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNj
cmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAK
LVRlc3RzIFNvdXJjZU1hcCBhbmQgQ29tcGlsZXJTY3JpcHRNYXBwaW5nLgotCi0KLVJ1bm5pbmc6
IHRlc3RTaW1wbGVNYXAKLWV4YW1wbGUuanMgPT09IGV4YW1wbGUuanMKLTAgPT09IDAKLTkgPT09
IDkKLWV4YW1wbGUuanMgPT09IGV4YW1wbGUuanMKLTAgPT09IDAKLTEzID09PSAxMwotZXhhbXBs
ZS5qcyA9PT0gZXhhbXBsZS5qcwotMCA9PT0gMAotMjUgPT09IDI1Ci1leGFtcGxlLmpzID09PSBl
eGFtcGxlLmpzCi0yID09PSAyCi00ID09PSA0Ci1leGFtcGxlLmpzID09PSBleGFtcGxlLmpzCi0y
ID09PSAyCi0xMSA9PT0gMTEKLWV4YW1wbGUuanMgPT09IGV4YW1wbGUuanMKLTIgPT09IDIKLTI0
ID09PSAyNAotMCA9PT0gMAotMCA9PT0gMAotMCA9PT0gMAotMTcgPT09IDE3Ci0wID09PSAwCi0x
OCA9PT0gMTgKLTAgPT09IDAKLTI5ID09PSAyOQotMCA9PT0gMAotMjkgPT09IDI5Ci0KLVJ1bm5p
bmc6IHRlc3ROb01hcHBpbmdFbnRyeQotZXhhbXBsZS5qcyA9PT0gZXhhbXBsZS5qcwotMCA9PT0g
MAotMCA9PT0gMAotZXhhbXBsZS5qcyA9PT0gZXhhbXBsZS5qcwotMCA9PT0gMAotMiA9PT0gMgot
Ci1SdW5uaW5nOiB0ZXN0RW1wdHlMaW5lCi1leGFtcGxlLmpzID09PSBleGFtcGxlLmpzCi0wID09
PSAwCi0wID09PSAwCi0zID09PSAzCi0xID09PSAxCi0KLVJ1bm5pbmc6IHRlc3RTZWN0aW9ucwot
c291cmNlMS5qcyA9PT0gc291cmNlMS5qcwotMCA9PT0gMAotMCA9PT0gMAotc291cmNlMS5qcyA9
PT0gc291cmNlMS5qcwotMiA9PT0gMgotMSA9PT0gMQotc291cmNlMi5qcyA9PT0gc291cmNlMi5q
cwotMCA9PT0gMAotMCA9PT0gMAotc291cmNlMi5qcyA9PT0gc291cmNlMi5qcwotMiA9PT0gMgot
MSA9PT0gMQotCi1SdW5uaW5nOiB0ZXN0UmVzb2x2ZVNvdXJjZU1hcFVSTAotaHR0cDovL2V4YW1w
bGUuY29tL21hcC5qc29uID09PSBodHRwOi8vZXhhbXBsZS5jb20vbWFwLmpzb24KLWh0dHA6Ly9l
eGFtcGxlLmNvbS9tYXAuanNvbiA9PT0gaHR0cDovL2V4YW1wbGUuY29tL21hcC5qc29uCi1odHRw
Oi8vZXhhbXBsZS5jb20vc2NyaXB0cy8uLi9tYXBzL21hcC5qc29uID09PSBodHRwOi8vZXhhbXBs
ZS5jb20vc2NyaXB0cy8uLi9tYXBzL21hcC5qc29uCi0KLVJ1bm5pbmc6IHRlc3RDb21waWxlclNj
cmlwdE1hcHBpbmcKLQotUnVubmluZzogdGVzdENvbXBpbGVyU2NyaXB0TWFwcGluZ1doZW5SZXNv
dXJjZVdhc0xvYWRlZEFmdGVyU291cmNlCi0KLVJ1bm5pbmc6IHRlc3RJbmxpbmVkU291cmNlTWFw
Ci08c291cmNlIGNvbnRlbnQ+ID09PSA8c291cmNlIGNvbnRlbnQ+Ci0KLVJ1bm5pbmc6IHRlc3RT
b3VyY2VNYXBDb3VsZE5vdEJlTG9hZGVkCi1jb21waWxlZC5qcwotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGluZy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBp
bmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzJjZTllMzkuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0LW1h
cHBpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM0MiArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJkZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJ3b3Jrc3BhY2UtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZh
ciBkZWZhdWx0U2NyaXB0TWFwcGluZzsKLSAgICB2YXIgcmVzb3VyY2VTY3JpcHRNYXBwaW5nOwot
Ci0gICAgZnVuY3Rpb24gY3JlYXRlQ29tcGlsZXJTY3JpcHRNYXBwaW5nKCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuY3JlYXRlV29ya3NwYWNlKCk7Ci0gICAgICAgIHZhciBjb21waWxl
clNjcmlwdE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZyhJ
bnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UsIEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jr
c3BhY2VQcm92aWRlcik7Ci0gICAgICAgIHJlc291cmNlU2NyaXB0TWFwcGluZyA9IG5ldyBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nKEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFj
ZSk7Ci0gICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5EZWZh
dWx0U2NyaXB0TWFwcGluZyhJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UpOwotICAgICAgICBy
ZXR1cm4gY29tcGlsZXJTY3JpcHRNYXBwaW5nOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNoZWNr
TWFwcGluZyhjb21waWxlZExpbmVOdW1iZXIsIGNvbXBpbGVkQ29sdW1uTnVtYmVyLCBzb3VyY2VV
UkwsIHNvdXJjZUxpbmVOdW1iZXIsIHNvdXJjZUNvbHVtbk51bWJlciwgbWFwcGluZykKLSAgICB7
Ci0gICAgICAgIHZhciBlbnRyeSA9IG1hcHBpbmcuZmluZEVudHJ5KGNvbXBpbGVkTGluZU51bWJl
ciwgY29tcGlsZWRDb2x1bW5OdW1iZXIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dChzb3VyY2VVUkwgKyAiID09PSAiICsgZW50cnlbMl0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdChzb3VyY2VMaW5lTnVtYmVyICsgIiA9PT0gIiArIGVudHJ5WzNdKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoc291cmNlQ29sdW1uTnVtYmVyICsgIiA9PT0gIiAr
IGVudHJ5WzRdKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjaGVja1JldmVyc2VNYXBwaW5nKGNv
bXBpbGVkTGluZU51bWJlciwgY29tcGlsZWRDb2x1bW5OdW1iZXIsIHNvdXJjZVVSTCwgc291cmNl
TGluZU51bWJlciwgbWFwcGluZykKLSAgICB7Ci0gICAgICAgIHZhciBlbnRyeSA9IG1hcHBpbmcu
ZmluZEVudHJ5UmV2ZXJzZWQoc291cmNlVVJMLCBzb3VyY2VMaW5lTnVtYmVyKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoY29tcGlsZWRMaW5lTnVtYmVyICsgIiA9PT0gIiArIGVu
dHJ5WzBdKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoY29tcGlsZWRDb2x1bW5O
dW1iZXIgKyAiID09PSAiICsgZW50cnlbMV0pOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3Qu
cnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNpbXBsZU1hcChuZXh0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICAgIGV4YW1wbGUuanM6Ci0gICAg
ICAgICAgICAgICAgMCAgICAgICAgIDEgICAgICAgICAyICAgICAgICAgMwotICAgICAgICAgICAg
ICAgIDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NQotICAgICAgICAgICAgICAg
IGZ1bmN0aW9uIGFkZCh2YXJpYWJsZV94LCB2YXJpYWJsZV95KQotICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlhYmxlX3ggKyB2YXJpYWJsZV95OwotICAg
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHZhciBnbG9iYWwgPSAiZm9vIjsKLSAg
ICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g
ICAgICAgICAgICAgICAgZXhhbXBsZS1jb21waWxlZC5qczoKLSAgICAgICAgICAgICAgICAwICAg
ICAgICAgMSAgICAgICAgIDIgICAgICAgICAzCi0gICAgICAgICAgICAgICAgMDEyMzQ1Njc4OTAx
MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24gYWRkKGEs
Yil7cmV0dXJuIGErYn12YXIgZ2xvYmFsPSJmb28iOwotICAgICAgICAgICAgKi8KLSAgICAgICAg
ICAgIHZhciBtYXBwaW5nUGF5bG9hZCA9IHsKLSAgICAgICAgICAgICAgICAibWFwcGluZ3MiOiJB
QUFTQSxRQUFBQSxJQUFHLENBQUNDLENBQUQsQ0FBYUMsQ0FBYixDQUNaLENBQ0ksTUFBT0QsRUFB
UCxDQUFvQkMsQ0FEeEIsQ0FJQSxJQUFJQyxPQUFTOyIsCi0gICAgICAgICAgICAgICAgInNvdXJj
ZXMiOlsiZXhhbXBsZS5qcyJdCi0gICAgICAgICAgICB9OwotICAgICAgICAgICAgdmFyIG1hcHBp
bmcgPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZU1hcCgic291cmNlLW1hcC5qc29uIiwgbWFwcGlu
Z1BheWxvYWQpOwotCi0gICAgICAgICAgICBjaGVja01hcHBpbmcoMCwgOSwgImV4YW1wbGUuanMi
LCAwLCA5LCBtYXBwaW5nKTsKLSAgICAgICAgICAgIGNoZWNrTWFwcGluZygwLCAxMywgImV4YW1w
bGUuanMiLCAwLCAxMywgbWFwcGluZyk7Ci0gICAgICAgICAgICBjaGVja01hcHBpbmcoMCwgMTUs
ICJleGFtcGxlLmpzIiwgMCwgMjUsIG1hcHBpbmcpOwotICAgICAgICAgICAgY2hlY2tNYXBwaW5n
KDAsIDE4LCAiZXhhbXBsZS5qcyIsIDIsIDQsIG1hcHBpbmcpOwotICAgICAgICAgICAgY2hlY2tN
YXBwaW5nKDAsIDI1LCAiZXhhbXBsZS5qcyIsIDIsIDExLCBtYXBwaW5nKTsKLSAgICAgICAgICAg
IGNoZWNrTWFwcGluZygwLCAyNywgImV4YW1wbGUuanMiLCAyLCAyNCwgbWFwcGluZyk7Ci0KLSAg
ICAgICAgICAgIGNoZWNrUmV2ZXJzZU1hcHBpbmcoMCwgMCwgImV4YW1wbGUuanMiLCAwLCBtYXBw
aW5nKTsKLSAgICAgICAgICAgIGNoZWNrUmV2ZXJzZU1hcHBpbmcoMCwgMTcsICJleGFtcGxlLmpz
IiwgMSwgbWFwcGluZyk7Ci0gICAgICAgICAgICBjaGVja1JldmVyc2VNYXBwaW5nKDAsIDE4LCAi
ZXhhbXBsZS5qcyIsIDIsIG1hcHBpbmcpOwotICAgICAgICAgICAgY2hlY2tSZXZlcnNlTWFwcGlu
ZygwLCAyOSwgImV4YW1wbGUuanMiLCA0LCBtYXBwaW5nKTsKLSAgICAgICAgICAgIGNoZWNrUmV2
ZXJzZU1hcHBpbmcoMCwgMjksICJleGFtcGxlLmpzIiwgNSwgbWFwcGluZyk7Ci0KLSAgICAgICAg
ICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0Tm9NYXBwaW5n
RW50cnkobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIG1hcHBpbmdQYXlsb2FkID0g
ewotICAgICAgICAgICAgICAgICJtYXBwaW5ncyI6IkFBQUEsQyxDQUFFOyIsCi0gICAgICAgICAg
ICAgICAgInNvdXJjZXMiOlsiZXhhbXBsZS5qcyJdCi0gICAgICAgICAgICB9OwotICAgICAgICAg
ICAgdmFyIG1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZU1hcCgic291cmNlLW1hcC5q
c29uIiwgbWFwcGluZ1BheWxvYWQpOwotICAgICAgICAgICAgY2hlY2tNYXBwaW5nKDAsIDAsICJl
eGFtcGxlLmpzIiwgMCwgMCwgbWFwcGluZyk7Ci0gICAgICAgICAgICB2YXIgZW50cnkgPSBtYXBw
aW5nLmZpbmRFbnRyeSgwLCAxKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1
YWxzKDIsIGVudHJ5Lmxlbmd0aCk7Ci0gICAgICAgICAgICBjaGVja01hcHBpbmcoMCwgMiwgImV4
YW1wbGUuanMiLCAwLCAyLCBtYXBwaW5nKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAg
fSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0RW1wdHlMaW5lKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHZhciBtYXBwaW5nUGF5bG9hZCA9IHsKLSAgICAgICAgICAgICAgICAibWFwcGlu
Z3MiOiJBQUFBOzs7Q0FDQSIsCi0gICAgICAgICAgICAgICAgInNvdXJjZXMiOlsiZXhhbXBsZS5q
cyJdCi0gICAgICAgICAgICB9OwotICAgICAgICAgICAgdmFyIG1hcHBpbmcgPSBuZXcgV2ViSW5z
cGVjdG9yLlNvdXJjZU1hcCgic291cmNlLW1hcC5qc29uIiwgbWFwcGluZ1BheWxvYWQpOwotICAg
ICAgICAgICAgY2hlY2tNYXBwaW5nKDAsIDAsICJleGFtcGxlLmpzIiwgMCwgMCwgbWFwcGluZyk7
Ci0gICAgICAgICAgICBjaGVja1JldmVyc2VNYXBwaW5nKDMsIDEsICJleGFtcGxlLmpzIiwgMSwg
bWFwcGluZyk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdFNlY3Rpb25zKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBtYXBw
aW5nUGF5bG9hZCA9IHsKLSAgICAgICAgICAgICAgICAic2VjdGlvbnMiOiBbewotICAgICAgICAg
ICAgICAgICAgICAib2Zmc2V0IjogeyAibGluZSI6IDAsICJjb2x1bW4iOiAwIH0sCi0gICAgICAg
ICAgICAgICAgICAgICJtYXAiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAibWFwcGluZ3Mi
OiJBQUFBLENBRUMiLAotICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJjZXMiOlsic291cmNl
MS5qcyIsICJzb3VyY2UyLmpzIl0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIH0sIHsKLSAgICAgICAgICAgICAgICAgICAgIm9mZnNldCI6IHsgImxpbmUiOiAyLCAiY29s
dW1uIjogMTAgfSwKLSAgICAgICAgICAgICAgICAgICAgIm1hcCI6IHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJtYXBwaW5ncyI6IkFBQUEsQ0FFQyIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAic291cmNlcyI6WyJzb3VyY2UyLmpzIl0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIF19OwotICAgICAgICAgICAgdmFyIG1hcHBpbmcgPSBu
ZXcgV2ViSW5zcGVjdG9yLlNvdXJjZU1hcCgic291cmNlLW1hcC5qc29uIiwgbWFwcGluZ1BheWxv
YWQpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMiwgbWFwcGluZy5z
b3VyY2VzKCkubGVuZ3RoKTsKLSAgICAgICAgICAgIGNoZWNrTWFwcGluZygwLCAwLCAic291cmNl
MS5qcyIsIDAsIDAsIG1hcHBpbmcpOwotICAgICAgICAgICAgY2hlY2tNYXBwaW5nKDAsIDEsICJz
b3VyY2UxLmpzIiwgMiwgMSwgbWFwcGluZyk7Ci0gICAgICAgICAgICBjaGVja01hcHBpbmcoMiwg
MTAsICJzb3VyY2UyLmpzIiwgMCwgMCwgbWFwcGluZyk7Ci0gICAgICAgICAgICBjaGVja01hcHBp
bmcoMiwgMTEsICJzb3VyY2UyLmpzIiwgMiwgMSwgbWFwcGluZyk7Ci0gICAgICAgICAgICBuZXh0
KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFJlc29sdmVTb3VyY2VNYXBV
UkwobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIGZ1bmMgPSBXZWJJbnNwZWN0b3Iu
UGFyc2VkVVJMLmNvbXBsZXRlVVJMOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoImh0dHA6Ly9leGFtcGxlLmNvbS9tYXAuanNvbiA9PT0gIiArIGZ1bmMoImh0dHA6Ly9leGFt
cGxlLmNvbS9zY3JpcHQuanMiLCAiaHR0cDovL2V4YW1wbGUuY29tL21hcC5qc29uIikpOwotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImh0dHA6Ly9leGFtcGxlLmNvbS9tYXAu
anNvbiA9PT0gIiArIGZ1bmMoImh0dHA6Ly9leGFtcGxlLmNvbS9zY3JpcHQuanMiLCAiL21hcC5q
c29uIikpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImh0dHA6Ly9leGFt
cGxlLmNvbS9zY3JpcHRzLy4uL21hcHMvbWFwLmpzb24gPT09ICIgKyBmdW5jKCJodHRwOi8vZXhh
bXBsZS5jb20vc2NyaXB0cy9zY3JpcHQuanMiLCAiLi4vbWFwcy9tYXAuanNvbiIpKTsKLSAgICAg
ICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0Q29tcGls
ZXJTY3JpcHRNYXBwaW5nKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHQ7
Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5fcmVzZXQoKTsKLSAgICAg
ICAgICAgIHZhciBtYXBwaW5nID0gY3JlYXRlQ29tcGlsZXJTY3JpcHRNYXBwaW5nKCk7Ci0gICAg
ICAgICAgICB2YXIgb3JpZ2luYWxVSVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICBzdGVwMSgpOwot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVu
dChvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAgICAgICAgICBzY3JpcHQgPSBJ
bnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2soImNvbXBpbGVkLmpzIiwgMCwgMCwgdHJ1ZSwg
IiIpOwotICAgICAgICAgICAgICAgIHNjcmlwdC5zb3VyY2VNYXBVUkwgPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvc291cmNlLW1hcC5qc29uIjsKLSAgICAgICAg
ICAgICAgICBkZWZhdWx0U2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKLSAgICAgICAg
ICAgICAgICByZXNvdXJjZVNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAg
ICAgICAgICAgbWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKLSAgICAgICAgICAgICAgICBhZnRl
clNjcmlwdEFkZGVkKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIG9y
aWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFk
ZGVkRXZlbnQob3JpZ2luYWxSZXNvdXJjZVVJU291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZE1vY2tVSVNvdXJjZUNvZGVUb1dvcmtzcGFjZSgiY29tcGls
ZWQuanMiLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsICIiKTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gb3JpZ2luYWxSZXNvdXJjZVVJU291cmNlQ29k
ZUFkZGVkKHVpU291cmNlQ29kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KGZpcnN0VUlT
b3VyY2VDb2RlQWRkZWQpOwotICAgICAgICAgICAgICAgIG9yaWdpbmFsVUlTb3VyY2VDb2RlID0g
dWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBmaXJz
dFVJU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2
ZW50KHNlY29uZFVJU291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgZnVuY3Rpb24gc2Vjb25kVUlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKSB7IH0KLQot
ICAgICAgICAgICAgZnVuY3Rpb24gYWZ0ZXJTY3JpcHRBZGRlZCh1aVNvdXJjZUNvZGUpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZTEgPSBJbnNwZWN0b3JU
ZXN0LnRlc3RXb3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yT3JpZ2luVVJMKCJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9zb3VyY2UxLmpzIik7Ci0gICAgICAgICAgICAg
ICAgdmFyIHVpU291cmNlQ29kZTIgPSBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UudWlTb3Vy
Y2VDb2RlRm9yT3JpZ2luVVJMKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291
cmNlcy9zb3VyY2UyLmpzIik7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNr
VUlMb2NhdGlvbih1aVNvdXJjZUNvZGUxLCA0LCA0LCBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9j
YXRpb24oMCwgODEpKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrVUlMb2Nh
dGlvbih1aVNvdXJjZUNvZGUxLCA1LCA0LCBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24o
MCwgOTMpKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrVUlMb2NhdGlvbih1
aVNvdXJjZUNvZGUyLCA3LCA0LCBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oMSwgMTUx
KSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24ob3JpZ2lu
YWxVSVNvdXJjZUNvZGUsIDEsIDIwMCwgc2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKDEs
IDIwMCkpOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9u
KHNjcmlwdCwgMCwgNDIsIHVpU291cmNlQ29kZTEudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oMywg
MTApKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24oc2Ny
aXB0LCAxLCA4NSwgdWlTb3VyY2VDb2RlMi51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigwLCAwKSk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwg
MSwgMTEwLCB1aVNvdXJjZUNvZGUyLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKDUsIDIpKTsKLQot
ICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZTEucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENv
bnRlbnQxKTsKLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RDb250ZW50MShj
b250ZW50LCBjb250ZW50RW5jb2RlZCwgbWltZVR5cGUpCi0gICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygwLCBjb250ZW50Lmlu
ZGV4T2YoIndpbmRvdy5hZGRFdmVudExpc3RlbmVyIikpOwotICAgICAgICAgICAgICAgICAgICB1
aVNvdXJjZUNvZGUyLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50Mik7Ci0gICAgICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnQy
KGNvbnRlbnQsIGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlwZSkKLSAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDAsIGNvbnRlbnQu
aW5kZXhPZigiZnVuY3Rpb24gQ2xpY2tIYW5kbGVyKCkiKSk7Ci0gICAgICAgICAgICAgICAgICAg
IG5leHQoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0K
LSAgICAgICAgZnVuY3Rpb24gdGVzdENvbXBpbGVyU2NyaXB0TWFwcGluZ1doZW5SZXNvdXJjZVdh
c0xvYWRlZEFmdGVyU291cmNlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzY3Jp
cHQ7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5fcmVzZXQoKTsKLSAg
ICAgICAgICAgIHZhciBtYXBwaW5nID0gY3JlYXRlQ29tcGlsZXJTY3JpcHRNYXBwaW5nKCk7Ci0g
ICAgICAgICAgICB2YXIgb3JpZ2luYWxVSVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICBzdGVwMSgp
OwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRF
dmVudChmdW5jdGlvbigpIHsgfSk7Ci0gICAgICAgICAgICAgICAgc2NyaXB0ID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVTY3JpcHRNb2NrKCJjb21waWxlZC5qcyIsIDAsIDAsIHRydWUsICIiKTsKLSAg
ICAgICAgICAgICAgICBzY3JpcHQuc291cmNlTWFwVVJMID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9pbnNwZWN0b3IvcmVzb3VyY2VzL3NvdXJjZS1tYXAuanNvbiI7Ci0gICAgICAgICAgICAgICAg
ZGVmYXVsdFNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAgICAgICAgICAg
cmVzb3VyY2VTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3JpcHQpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQoZmly
c3RVSVNvdXJjZUNvZGVBZGRlZCk7Ci0gICAgICAgICAgICAgICAgbWFwcGluZy5hZGRTY3JpcHQo
c2NyaXB0KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VV
SVNvdXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsUmVzb3VyY2VVSVNvdXJjZUNvZGVBZGRlZCk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jr
c3BhY2UoImNvbXBpbGVkLmpzIiwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCAi
Iik7Ci0gICAgICAgICAgICAgICAgYWZ0ZXJTY3JpcHRBZGRlZCgpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBvcmlnaW5hbFJlc291cmNlVUlTb3VyY2VDb2RlQWRkZWQo
dWlTb3VyY2VDb2RlKSB7Ci0gICAgICAgICAgICAgICAgb3JpZ2luYWxVSVNvdXJjZUNvZGUgPSB1
aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGZpcnN0
VUlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZl
bnQoZnVuY3Rpb24oKSB7IH0pOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlv
biBhZnRlclNjcmlwdEFkZGVkKHVpU291cmNlQ29kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICB2YXIgdWlTb3VyY2VDb2RlMSA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51
aVNvdXJjZUNvZGVGb3JPcmlnaW5VUkwoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3Iv
cmVzb3VyY2VzL3NvdXJjZTEuanMiKTsKLSAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
MiA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JPcmlnaW5VUkwo
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3NvdXJjZTIuanMiKTsK
LQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHVpU291cmNl
Q29kZTEsIDQsIDQsIHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA4MSkpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZTEs
IDUsIDQsIHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA5MykpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZTIsIDcsIDQs
IHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigxLCAxNTEpKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNoZWNrVUlMb2NhdGlvbihvcmlnaW5hbFVJU291cmNlQ29kZSwgMSwg
MjAwLCBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oMSwgMjAwKSk7Ci0KLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24oc2NyaXB0LCAwLCA0MiwgdWlT
b3VyY2VDb2RlMS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigzLCAxMCkpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQsIDEsIDg1LCB1aVNvdXJj
ZUNvZGUyLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKDAsIDApKTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24oc2NyaXB0LCAxLCAxMTAsIHVpU291cmNlQ29k
ZTIudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oNSwgMikpOwotCi0gICAgICAgICAgICAgICAgdWlT
b3VyY2VDb2RlMS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudDEpOwotCi0gICAgICAg
ICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnQxKGNvbnRlbnQsIGNvbnRlbnRFbmNv
ZGVkLCBtaW1lVHlwZSkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDAsIGNvbnRlbnQuaW5kZXhPZigid2luZG93LmFkZEV2
ZW50TGlzdGVuZXIiKSk7Ci0gICAgICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZTIucmVxdWVz
dENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQyKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudDIoY29udGVudCwgY29udGVudEVu
Y29kZWQsIG1pbWVUeXBlKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMCwgY29udGVudC5pbmRleE9mKCJmdW5jdGlvbiBD
bGlja0hhbmRsZXIoKSIpKTsKLSAgICAgICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0
ZXN0SW5saW5lZFNvdXJjZU1hcChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNb2RlbC5fcmVzZXQoKTsKLSAgICAgICAgICAgIHZhciBtYXBwaW5nID0g
Y3JlYXRlQ29tcGlsZXJTY3JpcHRNYXBwaW5nKCk7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0ID0g
SW5zcGVjdG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKCJodHRwOi8vZXhhbXBsZS5jb20vY29tcGls
ZWQuanMiLCAwLCAwLCB0cnVlLCAiIik7Ci0gICAgICAgICAgICB2YXIgc291cmNlTWFwID0gewot
ICAgICAgICAgICAgICAgICJmaWxlIjoiY29tcGlsZWQuanMiLAotICAgICAgICAgICAgICAgICJt
YXBwaW5ncyI6IkFBQVNBLFFBQUFBLElBQUcsQ0FBQ0MsQ0FBRCxDQUFhQyxDQUFiLENBQ1osQ0FD
SSxNQUFPRCxFQUFQLENBQW9CQyxDQUR4QixDQUlBLElBQUlDLE9BQVM7IiwKLSAgICAgICAgICAg
ICAgICAic291cmNlcyI6WyJzb3VyY2UuanMiXSwKLSAgICAgICAgICAgICAgICAic291cmNlc0Nv
bnRlbnQiOlsiPHNvdXJjZSBjb250ZW50PiJdCi0gICAgICAgICAgICB9OwotICAgICAgICAgICAg
c2NyaXB0LnNvdXJjZU1hcFVSTCA9ICJkYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCIgKyBi
dG9hKEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudChjb21waWxlZFVJU291cmNl
Q29kZUFkZGVkKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gY29tcGlsZWRVSVNvdXJjZUNvZGVB
ZGRlZCh1aVNvdXJjZUNvZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudChvcmlnaW5hbFVJ
U291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24g
b3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGUpIHsgfQotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBkZWZhdWx0U2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKLSAg
ICAgICAgICAgIHJlc291cmNlU2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKLSAgICAg
ICAgICAgIG1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7Ci0KLSAgICAgICAgICAgIHZhciB1aVNv
dXJjZUNvZGUgPSBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yT3Jp
Z2luVVJMKCJodHRwOi8vZXhhbXBsZS5jb20vc291cmNlLmpzIik7Ci0KLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZSwgMiwgNCwgbWFwcGluZy5y
YXdMb2NhdGlvblRvVUlMb2NhdGlvbihXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5jcmVhdGVS
YXdMb2NhdGlvbihzY3JpcHQsIDAsIDE4KSkpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5j
aGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwgMCwgMTgsIG1hcHBpbmcudWlMb2NhdGlvblRvUmF3TG9j
YXRpb24odWlTb3VyY2VDb2RlLCAyLCA0KSk7Ci0KLSAgICAgICAgICAgIHVpU291cmNlQ29kZS5y
ZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudCk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9u
IGRpZFJlcXVlc3RDb250ZW50KGNvbnRlbnQsIGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlwZSkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPHNv
dXJjZSBjb250ZW50PiA9PT0gIiArIGNvbnRlbnQpOwotICAgICAgICAgICAgICAgIG5leHQoKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U291cmNl
TWFwQ291bGROb3RCZUxvYWRlZChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3Muc291cmNlTWFwc0VuYWJsZWQuc2V0KHRydWUpOwotICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuX3Jlc2V0KCk7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSgpOwotICAgICAgICAgICAgdmFyIGRlYnVnZ2VyU2NyaXB0
TWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nKEluc3BlY3Rv
clRlc3QudGVzdFdvcmtzcGFjZSwgSW5zcGVjdG9yVGVzdC50ZXN0TmV0d29ya1dvcmtzcGFjZVBy
b3ZpZGVyKTsKLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlT
b3VyY2VDb2RlQWRkZWRFdmVudChjb21waWxlZFVJU291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAg
ICAgIHZhciBzY3JpcHQgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2soImNvbXBpbGVk
LmpzIiwgMCwgMCwgdHJ1ZSwgIiIpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBjb21waWxlZFVJ
U291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50
KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBmdW5jdGlvbiBvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkgeyB9Ci0K
LSAgICAgICAgICAgIHNjcmlwdC5zb3VyY2VNYXBVUkwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
L2luc3BlY3Rvci9yZXNvdXJjZXMvc291cmNlLW1hcC5qc29uXyI7Ci0gICAgICAgICAgICBjb25z
b2xlLmVycm9yID0gZnVuY3Rpb24oKSB7fTsgLy8gRXJyb3IgbWVzc2FnZSBpcyBwbGF0Zm9ybSBk
ZXBlbmRlbnQuCi0gICAgICAgICAgICBkZWJ1Z2dlclNjcmlwdE1hcHBpbmcuX3BhcnNlZFNjcmlw
dFNvdXJjZSh7ZGF0YTpzY3JpcHR9KTsKLSAgICAgICAgICAgIHZhciB1aUxvY2F0aW9uID0gc2Ny
aXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKDAsIDApOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQodWlMb2NhdGlvbi51aVNvdXJjZUNvZGUub3JpZ2luVVJMKCkpOwotICAg
ICAgICAgICAgbmV4dCgpOwotICAgICAgICB9Ci0gICAgXSk7Ci19OwotCi08L3NjcmlwdD4KLQot
PC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBTb3VyY2VNYXAg
YW5kIENvbXBpbGVyU2NyaXB0TWFwcGluZy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1zb3VyY2UtbWFw
cGluZy1kZWJ1Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9jb21waWxlci1zb3VyY2UtbWFwcGluZy1kZWJ1Zy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDhmZmNlNzIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc291cmNlLW1hcHBpbmctZGVidWctZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDI6IGJ1dHRvbiBjbGlja2VkIQotVGVzdHMgaW5zdGFsbGluZyBjb21waWxlciBzb3VyY2UgbWFw
IGluIHNjcmlwdHMgcGFuZWwuCi0KLQotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi0KLVJ1bm5pbmc6
IHRlc3RTZXRCcmVha3BvaW50Ci1QYWdlIHJlbG9hZGVkLgotU2NyaXB0IHNvdXJjZSB3YXMgc2hv
d24uCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUNhbGwgc3RhY2s6Ci0gICAgMCkgaGFuZGxl
Q2xpY2sgKGNvbXBpbGVkLmpzOjIpCi0gICAgMSkgY2xpY2tCdXR0b24gKGNvbXBpbGVyLXNvdXJj
ZS1tYXBwaW5nLWRlYnVnLmh0bWw6MTEpCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1EZWJ1
Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbXBpbGVyLXNvdXJjZS1tYXBwaW5nLWRlYnVnLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1zb3VyY2UtbWFwcGluZy1kZWJ1Zy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2FlNWJjLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNvdXJjZS1tYXBwaW5nLWRl
YnVnLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJk
ZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tcGls
ZWQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi1mdW5jdGlvbiBjbGlja0J1dHRvbigpCi17
Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5jbGljaygpOwotfQotCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1aXRlKFsK
LSAgICAgICAgZnVuY3Rpb24gdGVzdFNldEJyZWFrcG9pbnQobmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNvdXJjZU1hcHNFbmFibGVkLnNldCh0cnVl
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShwYWdlUmVsb2FkZWQpOwot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBwYWdlUmVsb2FkZWQoKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgic291cmNlMS5qcyIs
IGRpZFNob3dTb3VyY2UpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBk
aWRTaG93U291cmNlKHNvdXJjZUZyYW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTY3JpcHQgc291cmNlIHdhcyBzaG93bi4iKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNldEJyZWFrcG9pbnQoc291cmNlRnJhbWUsIDE0
LCAiIiwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVz
ZWQocGF1c2VkKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KCJzZXRUaW1lb3V0KGNsaWNrQnV0dG9uLCAwKSIpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBwYXVzZWQoY2FsbEZyYW1lcykKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlKGNhbGxGcmFtZXMpOwotICAg
ICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwot
fTsKLQotPC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
PHA+VGVzdHMgaW5zdGFsbGluZyBjb21waWxlciBzb3VyY2UgbWFwIGluIHNjcmlwdHMgcGFuZWwu
PC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWNvbXBsZXRpb25zLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzQ2ZjM5MC4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWNvbXBsZXRpb25z
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotVGVzdCB0aGF0IGNv
bXBsZXRpb25zIGluIHRoZSBjb250ZXh0IG9mIGFuIGlmcmFtZSB3aXRoIGEgZGlmZmVyZW50IG9y
aWdpbiB3aWxsIHJlc3VsdCBpbiBuYW1lcyBvZiBpdHMgZ2xvYmFsIHZhcmlhYmxlcy4gVGVzdCBw
YXNzZXMgaWYgYWxsIGdsb2JhbCB2YXJpYWJsZXMgYXJlIGZvdW5kIGFtb25nIGNvbXBsZXRpb25z
IEFORCB0aGVyZSBhcmUgTk8gY29uc29sZSBtZXNzYWdlcy4gQnVnIDY1NDU3LgotCi0KLW15R2xv
YmFsVmFyCi1teUdsb2JhbEZ1bmN0aW9uCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzUxNGNhYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWNvbXBsZXRpb25zLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9ImNv
bnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9y
VGVzdC5zaG93Q29uc29sZVBhbmVsKCk7Ci0gICAgdmFyIHNlbGVjdG9yID0gV2ViSW5zcGVjdG9y
LmNvbnNvbGVWaWV3Ll9mcmFtZVNlbGVjdG9yLl9zZWxlY3RFbGVtZW50OwotICAgIHZhciBvcHRp
b24gPSBzZWxlY3Rvci5maXJzdENoaWxkOwotICAgIHdoaWxlIChvcHRpb24pIHsKLSAgICAgICAg
aWYgKG9wdGlvbi50ZXh0Q29udGVudCAmJiBvcHRpb24udGV4dENvbnRlbnQuc3RhcnRzV2l0aCgi
bXlJRnJhbWUiKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBvcHRpb24gPSBvcHRpb24u
bmV4dFNpYmxpbmc7Ci0gICAgfQotICAgIGlmICghb3B0aW9uKSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJGQUlMRUQ6IG15SUZyYW1lIG5vdCBmb3VuZCBpbiB0aGUgY29udGV4
dCBsaXN0Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgb3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTsKLSAgICBXZWJJbnNw
ZWN0b3IuY29uc29sZVZpZXcuX2ZyYW1lQ2hhbmdlZCgpOwotCi0gICAgV2ViSW5zcGVjdG9yLnJ1
bnRpbWVNb2RlbC5fY29tcGxldGlvbnNGb3JFeHByZXNzaW9uKCIiLCAibXlHbG9iIiwgZmFsc2Us
IGNoZWNrQ29tcGxldGlvbnMuYmluZCh0aGlzKSk7Ci0gICAgZnVuY3Rpb24gY2hlY2tDb21wbGV0
aW9ucyhjb21wbGV0aW9ucykKLSAgICB7Ci0gICAgICAgIHZhciBleHBlY3RlZCA9IFsibXlHbG9i
YWxWYXIiLCAibXlHbG9iYWxGdW5jdGlvbiJdOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGV4cGVjdGVkLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoY29tcGxldGlvbnMuaW5k
ZXhPZihleHBlY3RlZFtpXSkgIT09IC0xKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KGV4cGVjdGVkW2ldKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTk9UIEZPVU5EOiAiICsgZXhwZWN0ZWRbaV0pOwot
ICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotPHA+Ci1UZXN0IHRoYXQgY29tcGxldGlvbnMgaW4gdGhl
IGNvbnRleHQgb2YgYW4gaWZyYW1lIHdpdGggYSBkaWZmZXJlbnQgb3JpZ2luIHdpbGwKLXJlc3Vs
dCBpbiBuYW1lcyBvZiBpdHMgZ2xvYmFsIHZhcmlhYmxlcy4gVGVzdCBwYXNzZXMgaWYgYWxsIGds
b2JhbCB2YXJpYWJsZXMKLWFyZSBmb3VuZCBhbW9uZyBjb21wbGV0aW9ucyBBTkQgdGhlcmUgYXJl
IE5PIGNvbnNvbGUgbWVzc2FnZXMuCi08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjU0NTciPkJ1ZyA2NTQ1Ny48L2E+Ci08L3A+Ci08aWZyYW1lIG5hbWU9
Im15SUZyYW1lIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2NvbnNvbGUtY2QtY29tcGxldGlvbnMtaWZyYW1lLmh0bWwiIG9ubG9hZD0icnVuVGVzdCgpIj48
L2lmcmFtZT4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMWE3YTdmOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDUgKzAsMCBAQAotVGVzdHMgdGhhdCBjb25zb2xlIGV2YWx1YXRpb24gY2FuIGJlIHBlcmZv
cm1lZCBpbiBhbiBpZnJhbWUgY29udGV4dC5CdWcgMTk4NzIuCi0KLQotZm9vID0gMjAxMQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0ODBmY2EuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNDMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJjb25zb2xlLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLQotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5z
aG93Q29uc29sZVBhbmVsKCk7Ci0gICAgdmFyIHNlbGVjdG9yID0gV2ViSW5zcGVjdG9yLmNvbnNv
bGVWaWV3Ll9mcmFtZVNlbGVjdG9yLl9zZWxlY3RFbGVtZW50OwotICAgIHZhciBvcHRpb24gPSBz
ZWxlY3Rvci5maXJzdENoaWxkOwotICAgIHdoaWxlIChvcHRpb24pIHsKLSAgICAgICAgaWYgKG9w
dGlvbi50ZXh0Q29udGVudCAmJiBvcHRpb24udGV4dENvbnRlbnQuc3RhcnRzV2l0aCgibXlJRnJh
bWUiKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBvcHRpb24gPSBvcHRpb24ubmV4dFNp
Ymxpbmc7Ci0gICAgfQotICAgIGlmICghb3B0aW9uKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJGQUlMRUQ6IG15SUZyYW1lIG5vdCBmb3VuZCBpbiB0aGUgY29udGV4dCBsaXN0
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgb3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTsKLSAgICBXZWJJbnNwZWN0b3Iu
Y29uc29sZVZpZXcuX2ZyYW1lQ2hhbmdlZCgpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluQ29uc29sZUFuZER1bXAoImZvbyIsIGZpbmlzaCk7Ci0gICAgZnVuY3Rpb24gZmluaXNoKCkK
LSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQot
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+Ci08cD4KLVRlc3RzIHRoYXQgY29uc29sZSBl
dmFsdWF0aW9uIGNhbiBiZSBwZXJmb3JtZWQgaW4gYW4gaWZyYW1lIGNvbnRleHQuPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODcyIj5CdWcgMTk4NzIu
PC9hPgotPC9wPgotPGlmcmFtZSBuYW1lPSJteUlGcmFtZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0
OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb25zb2xlLWNkLWlmcmFtZS5odG1sIiBvbmxvYWQ9
InJ1blRlc3QoKSI+PC9pZnJhbWU+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS1sb2dnaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzI2YjY4OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2lu
Zy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1DT05TT0xFIE1F
U1NBR0U6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBN
RVNTQUdFOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUg
TUVTU0FHRTogVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byBodHRwOi8vMTI3LjAuMC4xOjgwMDAu
IFJlY2lwaWVudCBoYXMgb3JpZ2luIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC4KLQotVGVzdHMgdGhh
dCBjcm9zcyBvcmlnaW4gZXJyb3JzIGFyZSBsb2dnZWQgd2l0aCBzb3VyY2UgdXJsIGFuZCBsaW5l
IG51bWJlci4KLQotCi1CbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4gY29u
c29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbDo5Ci1CbG9ja2VkIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5z
LCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4gW25hdGl2ZSBjb2RlXToxCi1VbmFibGUgdG8gcG9zdCBt
ZXNzYWdlIHRvIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC4gUmVjaXBpZW50IGhhcyBvcmlnaW4gaHR0
cDovL2xvY2FsaG9zdDo4MDAwLgotIFtuYXRpdmUgY29kZV06MQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUt
bG9nZ2luZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1j
cm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNTdkMjFhNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNTAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJpbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iY29uc29sZS10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBhY2Nlc3NGcmFtZSgpCi17Ci0gICAgLy8gU2hvdWxk
IGZhaWwuCi0gICAgdmFyIGhvc3QgPSBmcmFtZXNbMF0ubG9jYXRpb24uaG9zdDsKLQotICAgIC8v
IFNob3VsZCBmYWlsLgotICAgIGZyYW1lc1swXS5sb2NhdGlvbi5yZWxvYWQoKTsKLQotICAgIC8v
IFNob3VsZCBmYWlsLgotICAgIGZyYW1lc1swXS5wb3N0TWVzc2FnZSgiZmFpbCIsICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIGZpbmlz
aEF0dGVtcHRzTGVmdCA9IDQ7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlciht
YXliZUZpbmlzaCwgdHJ1ZSk7Ci0gICAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFi
bGVkKHRydWUsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImFjY2Vzc0ZyYW1lKCkiLCBtYXliZUZpbmlz
aCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbWF5YmVGaW5pc2goKQotICAgIHsKLSAgICAgICAg
LS1maW5pc2hBdHRlbXB0c0xlZnQ7Ci0gICAgICAgIGlmIChmaW5pc2hBdHRlbXB0c0xlZnQpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdY
SFJFbmFibGVkKGZhbHNlLCBmaW5pc2gpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZpbmlzaCgp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQgY3Jvc3Mg
b3JpZ2luIGVycm9ycyBhcmUgbG9nZ2VkIHdpdGggc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIu
PC9wPgotPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJl
c291cmNlLWVycm9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGYxNGRhOTYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1UZXN0cyB0aGF0IGVycm9ycyB0byBsb2FkIGEgcmVz
b3VyY2UgY2F1c2UgZXJyb3IgbWVzc2FnZXMgdG8gYmUgbG9nZ2VkIHRvIGNvbnNvbGUuCi0KLQot
R0VUIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbWlzc2luZy5jc3MgNDA0IChOb3Qg
Rm91bmQpIGNvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLWlmcmFtZS5odG1sOjMgY29uc29sZS1tZXNz
YWdlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKLUdFVCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL25vbi1leGlzdGVudC1pZnJhbWUuaHRtbCA0MDQgKE5vdCBGb3VuZCkgbm9uLWV4aXN0ZW50
LWlmcmFtZS5odG1sOjEgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKLUdFVCBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25vbi1leGlzdGVudC1zY3JpcHQuanMgNDA0
IChOb3QgRm91bmQpIGNvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLWlmcmFtZS5odG1sOjQgY29uc29s
ZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKLUdFVCBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL25vbi1leGlzdGVudC14aHIgNDA0IChOb3QgRm91bmQpIFtuYXRpdmUgY29kZV06
MXNlbmQgW25hdGl2ZSBjb2RlXToxbG9hZFhIUiBjb25zb2xlLXJlc291cmNlLWVycm9ycy5odG1s
OjE4cGVyZm9ybUFjdGlvbnMgY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbDoxMGV2YWwgY29k
ZWV2YWwgW25hdGl2ZSBjb2RlXToxZXZhbHVhdGUgW25hdGl2ZSBjb2RlXToxX2V2YWx1YXRlT25f
ZXZhbHVhdGVBbmRXcmFwZXZhbHVhdGUgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2
ZWwKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS1yZXNvdXJjZS1lcnJvcnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMTMwYzYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUzICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iY29uc29sZS10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJpbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQ+Ci0KLWZ1bmN0aW9uIHBlcmZvcm1BY3Rpb25zKCkKLXsKLSAgICBsb2FkWEhSKCk7Ci0gICAg
bG9hZElmcmFtZSgpOwotfQotCi1mdW5jdGlvbiBsb2FkWEhSKCkKLXsKLSAgICB2YXIgeGhyID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgeGhyLm9wZW4oIkdFVCIsIm5vbi1leGlzdGVudC14
aHIiLCBmYWxzZSk7Ci0gICAgeGhyLnNlbmQobnVsbCk7Ci19Ci0KLWZ1bmN0aW9uIGxvYWRJZnJh
bWUoKQotewotICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUi
KTsKLSAgICBpZnJhbWUuc3JjID0gInJlc291cmNlcy9jb25zb2xlLXJlc291cmNlLWVycm9ycy1p
ZnJhbWUuaHRtbCI7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwotfQot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVy
KGFkZE1lc3NhZ2UsIHRydWUpOwotCi0gICAgdmFyIG1lc3NhZ2VDb3VudCA9IDA7Ci0gICAgZnVu
Y3Rpb24gYWRkTWVzc2FnZShtZXNzYWdlKQotICAgIHsKLSAgICAgICBpZiAobWVzc2FnZS50b1N0
cmluZygpLmluZGV4T2YoIm5vbi1leGlzdGVudC1pZnJhbWUiKSAhPT0gLTEpIHsKLSAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBhbmRDb25zb2xlTWVzc2FnZXMoKTsKLSAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aENsYXNzZXModHJ1ZSk7Ci0gICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJwZXJmb3JtQWN0aW9ucygpIik7Ci19Ci0K
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRl
c3RzIHRoYXQgZXJyb3JzIHRvIGxvYWQgYSByZXNvdXJjZSBjYXVzZSBlcnJvciBtZXNzYWdlcyB0
byBiZSBsb2dnZWQgdG8gY29uc29sZS4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDZhNzc0OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMKKysrIC9kZXYvbnVsbApAQCAtMSw5
MSArMCwwIEBACi12YXIgaW5pdGlhbGl6ZV9Db25zb2xlVGVzdCA9IGZ1bmN0aW9uKCkgewotCi1J
bnNwZWN0b3JUZXN0LnNob3dDb25zb2xlUGFuZWwgPSBmdW5jdGlvbigpCi17Ci0gICAgV2ViSW5z
cGVjdG9yLnNob3dQYW5lbCgiY29uc29sZSIpOwotICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIuaW1t
ZWRpYXRlbHlGaW5pc2hBbmltYXRpb24oKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29s
ZU1lc3NhZ2VzID0gZnVuY3Rpb24ocHJpbnRPcmlnaW5hdGluZ0NvbW1hbmQsIGR1bXBDbGFzc05h
bWVzKQotewotICAgIHZhciByZXN1bHQgPSBbXTsKLSAgICB2YXIgbWVzc2FnZXMgPSBXZWJJbnNw
ZWN0b3IuY29uc29sZVZpZXcuX3Zpc2libGVNZXNzYWdlczsKLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IG1lc3NhZ2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gbWVzc2Fn
ZXNbaV0udG9NZXNzYWdlRWxlbWVudCgpOwotCi0gICAgICAgIGlmIChkdW1wQ2xhc3NOYW1lcykg
ewotICAgICAgICAgICAgdmFyIGNsYXNzTmFtZXMgPSBbXTsKLSAgICAgICAgICAgIGZvciAodmFy
IG5vZGUgPSBlbGVtZW50LmZpcnN0Q2hpbGQ7IG5vZGU7IG5vZGUgPSBub2RlLnRyYXZlcnNlTmV4
dE5vZGUoZWxlbWVudCkpIHsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0g
Tm9kZS5FTEVNRU5UX05PREUgJiYgbm9kZS5jbGFzc05hbWUpCi0gICAgICAgICAgICAgICAgICAg
IGNsYXNzTmFtZXMucHVzaChub2RlLmNsYXNzTmFtZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChlbGVtZW50LnRleHRDb250ZW50
LnJlcGxhY2UoL1x1MjAwYi9nLCAiIikgKyAoZHVtcENsYXNzTmFtZXMgPyAiICIgKyBjbGFzc05h
bWVzLmpvaW4oIiA+ICIpIDogIiIpKTsKLSAgICAgICAgaWYgKHByaW50T3JpZ2luYXRpbmdDb21t
YW5kICYmIG1lc3NhZ2VzW2ldLm9yaWdpbmF0aW5nQ29tbWFuZCkgewotICAgICAgICAgICAgdmFy
IG9yaWdpbmF0aW5nRWxlbWVudCA9IG1lc3NhZ2VzW2ldLm9yaWdpbmF0aW5nQ29tbWFuZC50b01l
c3NhZ2VFbGVtZW50KCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiT3Jp
Z2luYXRpbmcgZnJvbTogIiArIG9yaWdpbmF0aW5nRWxlbWVudC50ZXh0Q29udGVudC5yZXBsYWNl
KC9cdTIwMGIvZywgIiIpKTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0Owot
fQotCi1JbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXNXaXRoU3R5bGVzID0gZnVuY3Rp
b24oc29ydE1lc3NhZ2VzKQotewotICAgIHZhciByZXN1bHQgPSBbXTsKLSAgICB2YXIgbWVzc2Fn
ZXMgPSBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuX3Zpc2libGVNZXNzYWdlczsKLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBlbGVt
ZW50ID0gbWVzc2FnZXNbaV0udG9NZXNzYWdlRWxlbWVudCgpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdChlbGVtZW50LnRleHRDb250ZW50LnJlcGxhY2UoL1x1MjAwYi9nLCAiIikp
OwotICAgICAgICB2YXIgc3BhbnMgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb25zb2xl
LW1lc3NhZ2UtdGV4dCA+IHNwYW4gPiBzcGFuIik7Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBq
IDwgc3BhbnMubGVuZ3RoOyBqKyspCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiU3R5bGVkIHRleHQgIyIgKyBqICsgIjogIiArIChzcGFuc1tqXS5zdHlsZS5jc3NUZXh0IHx8
ICJOTyBTVFlMRVMgREVGSU5FRCIpKTsKLSAgICB9Ci19Ci0KLUluc3BlY3RvclRlc3QuZHVtcENv
bnNvbGVNZXNzYWdlc1dpdGhDbGFzc2VzID0gZnVuY3Rpb24oc29ydE1lc3NhZ2VzKSB7Ci0gICAg
dmFyIHJlc3VsdCA9IFtdOwotICAgIHZhciBtZXNzYWdlcyA9IFdlYkluc3BlY3Rvci5jb25zb2xl
Vmlldy5fdmlzaWJsZU1lc3NhZ2VzOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMu
bGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBtZXNzYWdlc1tpXS50b01lc3Nh
Z2VFbGVtZW50KCk7Ci0gICAgICAgIHJlc3VsdC5wdXNoKGVsZW1lbnQudGV4dENvbnRlbnQucmVw
bGFjZSgvXHUyMDBiL2csICIiKSArICIgIiArIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJjbGFzcyIp
KTsKLSAgICB9Ci0gICAgaWYgKHNvcnRNZXNzYWdlcykKLSAgICAgICAgcmVzdWx0LnNvcnQoKTsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgKytpKQotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZXN1bHRbaV0pOwotfQotCi1JbnNwZWN0b3JUZXN0LmV4
cGFuZENvbnNvbGVNZXNzYWdlcyA9IGZ1bmN0aW9uKCkKLXsKLSAgICB2YXIgbWVzc2FnZXMgPSBX
ZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuX3Zpc2libGVNZXNzYWdlczsKLSAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0g
bWVzc2FnZXNbaV0udG9NZXNzYWdlRWxlbWVudCgpOwotICAgICAgICB2YXIgbm9kZSA9IGVsZW1l
bnQ7Ci0gICAgICAgIHdoaWxlIChub2RlKSB7Ci0gICAgICAgICAgICBpZiAobm9kZS50cmVlRWxl
bWVudEZvclRlc3QpCi0gICAgICAgICAgICAgICAgbm9kZS50cmVlRWxlbWVudEZvclRlc3QuZXhw
YW5kKCk7Ci0gICAgICAgICAgICBub2RlID0gbm9kZS50cmF2ZXJzZU5leHROb2RlKGVsZW1lbnQp
OwotICAgICAgICB9Ci0gICAgfQotfQotCi1JbnNwZWN0b3JUZXN0LmNoZWNrQ29uc29sZU1lc3Nh
Z2VzRG9udEhhdmVQYXJhbWV0ZXJzID0gZnVuY3Rpb24oKQotewotICAgIHZhciBtZXNzYWdlcyA9
IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fdmlzaWJsZU1lc3NhZ2VzOwotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIG0gPSBtZXNz
YWdlc1tpXTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk1lc3NhZ2VbIiArIGkg
KyAiXToiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk1lc3NhZ2U6ICIgKyBX
ZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JVUkwobS51cmwpICsgIjoiICsgbS5saW5lICsgIiAi
ICsgbS5tZXNzYWdlKTsKLSAgICAgICAgaWYgKCJfcGFyYW1ldGVycyIgaW4gbSkgewotICAgICAg
ICAgICAgaWYgKG0uX3BhcmFtZXRlcnMpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkZBSUxFRDogbWVzc2FnZSBwYXJhbWV0ZXJzIGxpc3QgaXMgbm90IGVtcHR5OiAi
ICsgbS5fcGFyYW1ldGVycyk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNVQ0NFU1M6IG1lc3NhZ2UgcGFyYW1ldGVycyBsaXN0IGlz
IGVtcHR5LiAiKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJGQUlMRUQ6IGRpZG4ndCBmaW5kIF9wYXJhbWV0ZXJzIGZpZWxkIGluIHRoZSBt
ZXNzYWdlLiIpOwotICAgICAgICB9Ci0gICAgfQotfQotCi19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXdlYnNvY2tldC1lcnJvci5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS13ZWJzb2NrZXQtZXJyb3Iu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmYxMmNjZi4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXdlYnNvY2tldC1lcnJv
ci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSJpbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iY29u
c29sZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgdGVzdEZ1bmN0aW9ucyA9IFt0
ZXN0RE5TTG9va3VwLCB0ZXN0U1NMQ2VydGlmaWNhdGVdOwotdmFyIG5leHRUZXN0SW5kZXggPSAw
OwotCi1mdW5jdGlvbiBvbmxvYWQoKQotewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgaWYgKCF3aW5kb3cuV2ViU29j
a2V0KSB7Ci0gICAgICAgIGNvbnNvbGUubG9nKCJXZWJTb2NrZXQgaXMgbm90IHN1cHBvcnRlZC4i
KTsgcmV0dXJuOwotICAgIH0KLSAgICBkb05leHRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGRvTmV4
dFRlc3QoKQotewotICAgIGlmIChuZXh0VGVzdEluZGV4ID09IHRlc3RGdW5jdGlvbnMubGVuZ3Ro
KSB7Ci0gICAgICAgIHJ1blRlc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICB2YXIg
dGVzdEZ1bmN0aW9uID0gdGVzdEZ1bmN0aW9uc1tuZXh0VGVzdEluZGV4XTsKLSAgICBuZXh0VGVz
dEluZGV4Kys7Ci0gICAgdGVzdEZ1bmN0aW9uKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RETlNMb29r
dXAoKQotewotICAgIGNvbnNvbGUubG9nKCJ0ZXN0RE5TTG9va3VwOiBUZXN0IHN0YXJ0ZWQuIik7
Ci0gICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly9ub25leGlzdGVudC5kb21haW4uaW52
YWxpZC8iKTsgLy8gTmV0d29yayBlcnJvciBzaG91bGQgYmUgbG9nZ2VkIHRvIGNvbnNvbGUuCi0g
ICAgd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGNvbnNvbGUubG9nKCJ0ZXN0RE5T
TG9va3VwOiBvbm9wZW4gaXMgY2FsbGVkLiIpOwotICAgICAgICB3cy5jbG9zZSgpOwotICAgIH07
Ci0gICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICBjb25zb2xlLmxvZygidGVz
dEROU0xvb2t1cDogb25lcnJvciBpcyBjYWxsZWQuIik7Ci0gICAgICAgIHdzLmNsb3NlKCk7Ci0g
ICAgfTsKLSAgICB3cy5vbmNsb3NlID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGNvbnNvbGUubG9n
KCJ0ZXN0RE5TTG9va3VwOiBvbmNsb3NlIGlzIGNhbGxlZC4iKTsKLSAgICAgICAgZG9OZXh0VGVz
dCgpOwotICAgIH07Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTU0xDZXJ0aWZpY2F0ZSgpCi17Ci0gICAg
Y29uc29sZS5sb2coInRlc3RTU0xDZXJ0aWZpY2F0ZTogVGVzdCBzdGFydGVkLiIpOwotICAgIC8v
IFRoZSBmb2xsb3dpbmcgc3RhdGVtZW50IHNob3VsZCBjYXVzZSAiVW50cnVzdGVkIHJvb3QgY2Vy
dGlmaWNhdGUiIGVycm9yLgotICAgIC8vIE5vdGUgdGhhdCBwb3J0IDg0NDMgc2VydmVzIEhUVFBT
IGNvbnRlbnQgcmF0aGVyIHRoYW4gc2VjdXJlIFdlYlNvY2tldCwKLSAgICAvLyBidXQgaXQgZG9l
cyBub3QgbWF0dGVyIGJlY2F1c2UgdGhlIHRlc3QgZG9lcyBub3Qgc2VuZCBvciByZWNlaXZlIGFu
eSBwYXlsb2FkLgotICAgIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzczovLzEyNy4wLjAuMTo4
NDQzLyIpOwotICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkgewotICAgICAgICBjb25zb2xlLmxv
ZygidGVzdFNTTENlcnRpZmljYXRlOiBvbm9wZW4gaXMgY2FsbGVkLiIpOwotICAgICAgICB3cy5j
bG9zZSgpOwotICAgIH07Ci0gICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICBj
b25zb2xlLmxvZygidGVzdFNTTENlcnRpZmljYXRlOiBvbmVycm9yIGlzIGNhbGxlZC4iKTsKLSAg
ICAgICAgd3MuY2xvc2UoKTsKLSAgICB9OwotICAgIHdzLm9uY2xvc2UgPSBmdW5jdGlvbigpIHsK
LSAgICAgICAgY29uc29sZS5sb2coInRlc3RTU0xDZXJ0aWZpY2F0ZTogb25jbG9zZSBpcyBjYWxs
ZWQuIik7Ci0gICAgICAgIGRvTmV4dFRlc3QoKTsKLSAgICB9OwotfQotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJvbmxvYWQoKSI+Ci08cD4KLVdlYlNvY2tldCdzIG5ldHdvcmsgZXJyb3JzIHNo
b3VsZCBiZSBsb2dnZWQgdG8gY29uc29sZS4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9n
Z2luZy1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9jb25zb2xlLXhoci1sb2dnaW5nLWFzeW5jLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjIxNjFiMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWFzeW5jLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6IFhIUiBs
b2FkZWQ6IDEKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2OiBYSFIgbG9hZGVkOiAyCi1UZXN0cyB0
aGF0IFhNTEh0dHBSZXF1ZXN0IExvZ2dpbmcgd29ya3Mgd2hlbiBFbmFibGVkIGFuZCBkb2Vzbid0
IHNob3cgbG9ncyB3aGVuIERpc2FibGVkIGZvciBhc3luY2hyb25vdXMgWEhScy4KLQotQnVnIDc5
MjI5Ci1YSFIgZmluaXNoZWQgbG9hZGluZzogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0
b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbCIuIFtuYXRpdmUgY29kZV06MQotWEhSIGxvYWRl
ZDogMSBuZXR3b3JrLXRlc3QuanM6NgotWEhSIGxvYWRlZDogMiBuZXR3b3JrLXRlc3QuanM6Ngot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXho
ci1sb2dnaW5nLWFzeW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9j
b25zb2xlLXhoci1sb2dnaW5nLWFzeW5jLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGE1NGRjZjIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS14aHItbG9nZ2luZy1hc3luYy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTQg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJpbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJuZXR3b3JrLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIHN0ZXAxKCk7Ci0KLSAgICBmdW5jdGlvbiBtYWtlUmVxdWVzdChjYWxsYmFj
aykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubWFrZVNpbXBsZVhIUigiR0VUIiwgInJl
c291cmNlcy94aHItZXhpc3RzLmh0bWwiLCB0cnVlLCBjYWxsYmFjayk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBtYWtlUmVxdWVzdChzdGVwMik7Ci0gICAgICAgIH0KLQotICAg
ICAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSwgY2FsbGJhY2sp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9u
IGNhbGxiYWNrKCkKLSAgICAgICAgewotICAgICAgICAgICAgbWFrZVJlcXVlc3Qoc3RlcDMpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVk
KGZhbHNlLCBjYWxsYmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsK
LSAgICAgICAgZnVuY3Rpb24gZmluaXNoKCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0
ZXJQZW5kaW5nRGlzcGF0Y2hlcyhmaW5pc2gpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQgWE1MSHR0cFJl
cXVlc3QgTG9nZ2luZyB3b3JrcyB3aGVuIEVuYWJsZWQgYW5kIGRvZXNuJ3Qgc2hvdyBsb2dzIHdo
ZW4gRGlzYWJsZWQgZm9yIGFzeW5jaHJvbm91cyBYSFJzLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTIyOSI+QnVnIDc5MjI5PC9hPgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS14aHItbG9nZ2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYTUwOTZmOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogc2Vu
ZGluZyBhICVzIHJlcXVlc3QgdG8gJXMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogc2VuZGlu
ZyBhICVzIHJlcXVlc3QgdG8gJXMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogc2VuZGluZyBh
ICVzIHJlcXVlc3QgdG8gJXMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogc2VuZGluZyBhICVz
IHJlcXVlc3QgdG8gJXMKLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxv
YWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5o
dG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vz
cy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogc2VuZGlu
ZyBhICVzIHJlcXVlc3QgdG8gJXMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogc2VuZGluZyBh
ICVzIHJlcXVlc3QgdG8gJXMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogc2VuZGluZyBhICVz
IHJlcXVlc3QgdG8gJXMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogc2VuZGluZyBhICVzIHJl
cXVlc3QgdG8gJXMKLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQg
aHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1s
LiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbi4KLVRlc3RzIHRoYXQgWE1MSHR0cFJlcXVlc3QgTG9nZ2luZyB3
b3JrcyB3aGVuIEVuYWJsZWQgYW5kIGRvZXNuJ3Qgc2hvdyBsb2dzIHdoZW4gRGlzYWJsZWQuCi0K
LXNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byByZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sIGNvbnNv
bGUteGhyLWxvZ2dpbmcuaHRtbDoxMAotWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwiLiBbbmF0aXZl
IGNvZGVdOjEKLXNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byByZXNvdXJjZXMveGhyLWRvZXMtbm90
LWV4aXN0Lmh0bWwgY29uc29sZS14aHItbG9nZ2luZy5odG1sOjEwCi1HRVQgaHR0cDovLzEyNy4w
LjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwgNDA0
IChOb3QgRm91bmQpIFtuYXRpdmUgY29kZV06MQotWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZG9lcy1ub3QtZXhpc3Qu
aHRtbCIuIFtuYXRpdmUgY29kZV06MQotc2VuZGluZyBhIFBPU1QgcmVxdWVzdCB0byByZXNvdXJj
ZXMvcG9zdC10YXJnZXQuY2dpIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMAotWEhSIGZpbmlz
aGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9w
b3N0LXRhcmdldC5jZ2kiLiBbbmF0aXZlIGNvZGVdOjEKLXNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0
byBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0
bWwgY29uc29sZS14aHItbG9nZ2luZy5odG1sOjEwCi1YTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9h
ZCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0
bWwuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNz
LUNvbnRyb2wtQWxsb3ctT3JpZ2luLiBbbmF0aXZlIGNvZGVdOjEKLXNlbmRpbmcgYSBHRVQgcmVx
dWVzdCB0byByZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRt
bDoxMAotc2VuZGluZyBhIEdFVCByZXF1ZXN0IHRvIHJlc291cmNlcy94aHItZG9lcy1ub3QtZXhp
c3QuaHRtbCBjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6MTAKLUdFVCBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZG9lcy1ub3QtZXhpc3QuaHRtbCA0MDQgKE5v
dCBGb3VuZCkgW25hdGl2ZSBjb2RlXToxCi1zZW5kaW5nIGEgUE9TVCByZXF1ZXN0IHRvIHJlc291
cmNlcy9wb3N0LXRhcmdldC5jZ2kgY29uc29sZS14aHItbG9nZ2luZy5odG1sOjEwCi1zZW5kaW5n
IGEgR0VUIHJlcXVlc3QgdG8gaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJj
ZXMveGhyLWV4aXN0cy5odG1sIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMAotWE1MSHR0cFJl
cXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJj
ZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBh
bGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4gW25hdGl2ZSBjb2RlXToxCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhy
LWxvZ2dpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUt
eGhyLWxvZ2dpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGNjODkxNS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXho
ci1sb2dnaW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJjb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Im5ldHdvcmstdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gcmVxdWVzdEhlbHBlcihtZXRob2Qs
IHVybCkKLXsKLSAgICAvLyBNYWtlIHN5bmNocm9ub3VzIHJlcXVlc3RzIGZvciBzaW1wbGljaXR5
LgotICAgIGNvbnNvbGUubG9nKCJzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcyIsIG1ldGhvZCwg
dXJsKTsKLSAgICBtYWtlU2ltcGxlWEhSKG1ldGhvZCwgdXJsLCBmYWxzZSk7Ci19Ci0KLWZ1bmN0
aW9uIG1ha2VSZXF1ZXN0cygpCi17Ci0gICAgLy8gMS4gUGFnZSB0aGF0IGV4aXN0cy4KLSAgICBy
ZXF1ZXN0SGVscGVyKCJHRVQiLCAicmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbCIpOwotICAgIC8v
IDIuIFBhZ2UgdGhhdCBkb2Vzbid0IGV4aXN0LgotICAgIHJlcXVlc3RIZWxwZXIoIkdFVCIsICJy
ZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwiKTsKLSAgICAvLyAzLiBQT1NUIHRvIGEg
cGFnZS4KLSAgICByZXF1ZXN0SGVscGVyKCJQT1NUIiwgInJlc291cmNlcy9wb3N0LXRhcmdldC5j
Z2kiKTsKLSAgICAvLyA0LiBDcm9zcy1vcmlnaW4gcmVxdWVzdAotICAgIHJlcXVlc3RIZWxwZXIo
IkdFVCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhp
c3RzLmh0bWwiKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgc3RlcDEoKTsKLQotICAg
IGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibWFrZVJl
cXVlc3RzKCkiLCBzdGVwMik7Ci0gICAgICAgIH0KLSAgICAgICAgQ29uc29sZUFnZW50LnNldE1v
bml0b3JpbmdYSFJFbmFibGVkKHRydWUsIGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBzdGVwMigpCi0gICAgewotICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm1ha2VSZXF1ZXN0cygp
Iiwgc3RlcDMpOwotICAgICAgICB9Ci0gICAgICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5n
WEhSRW5hYmxlZChmYWxzZSwgY2FsbGJhY2spOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAz
KCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGZpbmlzaCgpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoZmluaXNoKTsKLSAgICB9Ci19Ci0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRo
YXQgWE1MSHR0cFJlcXVlc3QgTG9nZ2luZyB3b3JrcyB3aGVuIEVuYWJsZWQgYW5kIGRvZXNuJ3Qg
c2hvdyBsb2dzIHdoZW4gRGlzYWJsZWQuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGUzY2FjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwzMTIgKzAsMCBAQAotdmFyIGluaXRpYWxpemVfRGVidWdnZXJUZXN0ID0gZnVuY3Rpb24o
KSB7Ci0KLUluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3QgPSBmdW5jdGlvbihjYWxsYmFj
aywgcXVpZXQpCi17Ci0gICAgaWYgKHF1aWV0ICE9PSB1bmRlZmluZWQpCi0gICAgICAgIEluc3Bl
Y3RvclRlc3QuX3F1aWV0ID0gcXVpZXQ7Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2Ny
aXB0cyIpOwotCi0gICAgaWYgKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmRlYnVnZ2VyRW5h
YmxlZCgpKQotICAgICAgICBzdGFydFRlc3QoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLCAiX2RlYnVnZ2Vy
V2FzRW5hYmxlZCIsIHN0YXJ0VGVzdCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1v
ZGVsLmVuYWJsZURlYnVnZ2VyKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkK
LSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEZWJ1Z2dlciB3YXMgZW5h
YmxlZC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1vZGVsLCAiX3BhdXNlZFNjcmlwdCIsIEluc3BlY3RvclRlc3QuX3BhdXNlZFNjcmlw
dCwgdHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNb2RlbCwgIl9yZXN1bWVkU2NyaXB0IiwgSW5zcGVjdG9yVGVzdC5fcmVzdW1lZFNj
cmlwdCwgdHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spKCk7
Ci0gICAgfQotfTsKLQotSW5zcGVjdG9yVGVzdC5maW5pc2hEZWJ1Z2dlclRlc3QgPSBmdW5jdGlv
bihjYWxsYmFjaykKLXsKLSAgICB2YXIgc2NyaXB0c1BhbmVsID0gV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzOwotCi0gICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2lu
dHNBY3RpdmUodHJ1ZSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24oZGlzYWJs
ZURlYnVnZ2VyKTsKLQotICAgIGZ1bmN0aW9uIGRpc2FibGVEZWJ1Z2dlcigpCi0gICAgewotICAg
ICAgICBpZiAoIVdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmRlYnVnZ2VyRW5hYmxlZCgpKQot
ICAgICAgICAgICAgY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLCAiX2Rl
YnVnZ2VyV2FzRGlzYWJsZWQiLCBkZWJ1Z2dlckRpc2FibGVkKTsKLSAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmRpc2FibGVEZWJ1Z2dlcigpOwotICAgICAgICB9Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gZGVidWdnZXJEaXNhYmxlZCgpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiRGVidWdnZXIgd2FzIGRpc2FibGVkLiIpOwotICAgICAgICBj
YWxsYmFjaygpOwotICAgIH0KLX07Ci0KLUluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRl
c3QgPSBmdW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5maW5pc2hEZWJ1Z2dlclRlc3Qo
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QuYmluZChJbnNwZWN0b3JUZXN0KSk7Ci19OwotCi1J
bnNwZWN0b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1aXRlID0gZnVuY3Rpb24odGVzdFN1aXRlKQot
ewotICAgIHZhciB0ZXN0U3VpdGVUZXN0cyA9IHRlc3RTdWl0ZS5zbGljZSgpOwotCi0gICAgZnVu
Y3Rpb24gcnVubmVyKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGVzdFN1aXRlVGVzdHMubGVuZ3Ro
KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgbmV4dFRlc3QgPSB0
ZXN0U3VpdGVUZXN0cy5zaGlmdCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSdW5uaW5nOiAiICsgL2Z1bmN0
aW9uXHMoW14oXSopLy5leGVjKG5leHRUZXN0KVsxXSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
c2FmZVdyYXAobmV4dFRlc3QpKHJ1bm5lciwgcnVubmVyKTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0
b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHJ1bm5lcik7Ci19Ci0KLUluc3BlY3RvclRlc3QucnVu
VGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1c2VkID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0g
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgic2V0VGltZW91dCh0ZXN0RnVuY3Rp
b24sIDApIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldCB0aW1lciBmb3IgdGVz
dCBmdW5jdGlvbi4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZChjYWxsYmFj
ayk7Ci19OwotCi1JbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZCA9IGZ1bmN0aW9uKGNhbGxi
YWNrKQotewotICAgIGNhbGxiYWNrID0gSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjayk7
Ci0KLSAgICBpZiAoSW5zcGVjdG9yVGVzdC5fY2FsbEZyYW1lcykKLSAgICAgICAgY2FsbGJhY2so
SW5zcGVjdG9yVGVzdC5fY2FsbEZyYW1lcyk7Ci0gICAgZWxzZQotICAgICAgICBJbnNwZWN0b3JU
ZXN0Ll93YWl0VW50aWxQYXVzZWRDYWxsYmFjayA9IGNhbGxiYWNrOwotfTsKLQotSW5zcGVjdG9y
VGVzdC53YWl0VW50aWxSZXN1bWVkID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0gICAgY2FsbGJh
Y2sgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNrKTsKLQotICAgIGlmICghSW5zcGVj
dG9yVGVzdC5fY2FsbEZyYW1lcykKLSAgICAgICAgY2FsbGJhY2soKTsKLSAgICBlbHNlCi0gICAg
ICAgIEluc3BlY3RvclRlc3QuX3dhaXRVbnRpbFJlc3VtZWRDYWxsYmFjayA9IGNhbGxiYWNrOwot
fTsKLQotSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24gPSBmdW5jdGlvbihjYWxsYmFjaykK
LXsKLSAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnBhdXNlZCkKLSAgICAgICAg
V2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLl90b2dnbGVQYXVzZSgpOwotICAgIEluc3BlY3Rv
clRlc3Qud2FpdFVudGlsUmVzdW1lZChjYWxsYmFjayk7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmNh
cHR1cmVTdGFja1RyYWNlID0gZnVuY3Rpb24oY2FsbEZyYW1lcywgZHJvcExpbmVOdW1iZXJzLCB2
ZXJib3NlKQotewotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDYWxsIHN0YWNrOiIpOwot
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2FsbEZyYW1lcy5sZW5ndGg7IGkrKykgewotICAgICAg
ICB2YXIgZnJhbWUgPSBjYWxsRnJhbWVzW2ldOwotICAgICAgICB2YXIgc2NyaXB0ID0gV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQoZnJhbWUubG9jYXRpb24uc2NyaXB0SWQp
OwotICAgICAgICB2YXIgdXJsOwotICAgICAgICB2YXIgbGluZU51bWJlcjsKLSAgICAgICAgdmFy
IGRyb3BGcmFtZUxpbmVOdW1iZXIgPSBkcm9wTGluZU51bWJlcnM7Ci0gICAgICAgIGlmIChzY3Jp
cHQpIHsKLSAgICAgICAgICAgIHVybCA9IFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvclVSTChz
Y3JpcHQuc291cmNlVVJMKTsKLSAgICAgICAgICAgIGxpbmVOdW1iZXIgPSBmcmFtZS5sb2NhdGlv
bi5saW5lTnVtYmVyICsgMTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHVybCA9ICIo
aW50ZXJuYWwgc2NyaXB0KSI7Ci0gICAgICAgICAgICBkcm9wRnJhbWVMaW5lTnVtYmVyID0gIHRy
dWU7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIHMgPSAiICAgICIgKyBpICsgIikgIiArIGZyYW1l
LmZ1bmN0aW9uTmFtZSArICIgKCIgKyB1cmwgKyAoZHJvcEZyYW1lTGluZU51bWJlciA/ICIiIDog
IjoiICsgbGluZU51bWJlcikgKyAiKSI7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KHMpOwotICAgIH0KLX07Ci0KLUluc3BlY3RvclRlc3QuZHVtcFNvdXJjZUZyYW1lQ29udGVudHMg
PSBmdW5jdGlvbihzb3VyY2VGcmFtZSkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
PT1Tb3VyY2UgZnJhbWUgY29udGVudHMgc3RhcnQ9PSIpOwotICAgIHZhciB0ZXh0RWRpdG9yID0g
c291cmNlRnJhbWUuX3RleHRFZGl0b3I7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0RWRp
dG9yLmxpbmVzQ291bnQ7ICsraSkKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGV4
dEVkaXRvci5saW5lKGkpKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT1Tb3VyY2Ug
ZnJhbWUgY29udGVudHMgZW5kPT0iKTsKLX07Ci0KLUluc3BlY3RvclRlc3QuX3BhdXNlZFNjcmlw
dCA9IGZ1bmN0aW9uKGNhbGxGcmFtZXMsIHJlYXNvbiwgYXV4RGF0YSkKLXsKLSAgICBpZiAoIUlu
c3BlY3RvclRlc3QuX3F1aWV0KQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2Ny
aXB0IGV4ZWN1dGlvbiBwYXVzZWQuIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5fY2FsbEZyYW1lcyA9
IGNhbGxGcmFtZXM7Ci0gICAgaWYgKEluc3BlY3RvclRlc3QuX3dhaXRVbnRpbFBhdXNlZENhbGxi
YWNrKSB7Ci0gICAgICAgIHZhciBjYWxsYmFjayA9IEluc3BlY3RvclRlc3QuX3dhaXRVbnRpbFBh
dXNlZENhbGxiYWNrOwotICAgICAgICBkZWxldGUgSW5zcGVjdG9yVGVzdC5fd2FpdFVudGlsUGF1
c2VkQ2FsbGJhY2s7Ci0gICAgICAgIGNhbGxiYWNrKEluc3BlY3RvclRlc3QuX2NhbGxGcmFtZXMp
OwotICAgIH0KLX0KLQotSW5zcGVjdG9yVGVzdC5fcmVzdW1lZFNjcmlwdCA9IGZ1bmN0aW9uKCkK
LXsKLSAgICBpZiAoIUluc3BlY3RvclRlc3QuX3F1aWV0KQotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLiIpOwotICAgIGRlbGV0ZSBJbnNw
ZWN0b3JUZXN0Ll9jYWxsRnJhbWVzOwotICAgIGlmIChJbnNwZWN0b3JUZXN0Ll93YWl0VW50aWxS
ZXN1bWVkQ2FsbGJhY2spIHsKLSAgICAgICAgdmFyIGNhbGxiYWNrID0gSW5zcGVjdG9yVGVzdC5f
d2FpdFVudGlsUmVzdW1lZENhbGxiYWNrOwotICAgICAgICBkZWxldGUgSW5zcGVjdG9yVGVzdC5f
d2FpdFVudGlsUmVzdW1lZENhbGxiYWNrOwotICAgICAgICBjYWxsYmFjaygpOwotICAgIH0KLX07
Ci0KLUluc3BlY3RvclRlc3Quc2hvd1VJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHVpU291cmNlQ29k
ZSwgY2FsbGJhY2spCi17Ci0gICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgi
c2NyaXB0cyIpOwotICAgIHBhbmVsLnNob3dVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKLSAg
ICB2YXIgc291cmNlRnJhbWUgPSBwYW5lbC52aXNpYmxlVmlldzsKLSAgICBpZiAoc291cmNlRnJh
bWUubG9hZGVkKQotICAgICAgICBjYWxsYmFjayhzb3VyY2VGcmFtZSk7Ci0gICAgZWxzZQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoc291cmNlRnJhbWUsICJvblRleHRFZGl0b3JD
b250ZW50TG9hZGVkIiwgY2FsbGJhY2suYmluZChudWxsLCBzb3VyY2VGcmFtZSkpOwotfTsKLQot
SW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlID0gZnVuY3Rpb24oc2NyaXB0TmFtZSwgY2Fs
bGJhY2spCi17Ci0gICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0
cyIpOwotICAgIHZhciB1aVNvdXJjZUNvZGVzID0gcGFuZWwuX3dvcmtzcGFjZS51aVNvdXJjZUNv
ZGVzKCk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgIGlmICh1aVNvdXJjZUNvZGVzW2ldLm5hbWUoKSA9PT0gc2NyaXB0TmFtZSkg
ewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2RlKHVpU291cmNlQ29k
ZXNbaV0sIGNhbGxiYWNrKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0K
LQotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZSwgIl9hZGRVSVNvdXJjZUNvZGUiLCBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRT
b3VyY2UuYmluZChJbnNwZWN0b3JUZXN0LCBzY3JpcHROYW1lLCBjYWxsYmFjaykpOwotfTsKLQot
SW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvciA9IGZ1bmN0aW9uKG5hdmlnYXRvciwg
cHJlZml4KQotewotICAgIHByZWZpeCA9IHByZWZpeCB8fCAiIjsKLSAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdChwcmVmaXggKyAiRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0
YWI6Iik7Ci0gICAgZHVtcE5hdmlnYXRvclRyZWVPdXRsaW5lKHByZWZpeCwgbmF2aWdhdG9yLl9z
Y3JpcHRzVmlldy5fc2NyaXB0c1RyZWUpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHBy
ZWZpeCArICJEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOiIp
OwotICAgIGR1bXBOYXZpZ2F0b3JUcmVlT3V0bGluZShwcmVmaXgsIG5hdmlnYXRvci5fY29udGVu
dFNjcmlwdHNWaWV3Ll9zY3JpcHRzVHJlZSk7Ci0KLSAgICBmdW5jdGlvbiBkdW1wTmF2aWdhdG9y
VHJlZUVsZW1lbnQocHJlZml4LCB0cmVlRWxlbWVudCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KHByZWZpeCArIHRyZWVFbGVtZW50LnRpdGxlVGV4dCk7Ci0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdHJlZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyArK2kpCi0g
ICAgICAgICAgICBkdW1wTmF2aWdhdG9yVHJlZUVsZW1lbnQocHJlZml4ICsgIiAgIiwgdHJlZUVs
ZW1lbnQuY2hpbGRyZW5baV0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1bXBOYXZpZ2F0b3JU
cmVlT3V0bGluZShwcmVmaXgsIHRyZWVPdXRsaW5lKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCB0cmVlT3V0bGluZS5jaGlsZHJlbi5sZW5ndGg7ICsraSkKLSAgICAgICAgICAg
IGR1bXBOYXZpZ2F0b3JUcmVlRWxlbWVudChwcmVmaXggKyAiICAiLCB0cmVlT3V0bGluZS5jaGls
ZHJlbltpXSk7Ci0gICAgfQotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLX07Ci0K
LUluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2ludCA9IGZ1bmN0aW9uKHNvdXJjZUZyYW1lLCBsaW5l
TnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCi17Ci0gICAgc291cmNlRnJhbWUuX3NldEJyZWFr
cG9pbnQobGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKTsKLX07Ci0KLUluc3BlY3RvclRl
c3QucmVtb3ZlQnJlYWtwb2ludCA9IGZ1bmN0aW9uKHNvdXJjZUZyYW1lLCBsaW5lTnVtYmVyKQot
ewotICAgIHNvdXJjZUZyYW1lLl9icmVha3BvaW50TWFuYWdlci5maW5kQnJlYWtwb2ludChzb3Vy
Y2VGcmFtZS5fdWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKS5yZW1vdmUoKTsKLX07Ci0KLQotSW5z
cGVjdG9yVGVzdC5leHBhbmRQcm9wZXJ0aWVzID0gZnVuY3Rpb24ocHJvcGVydGllcywgY2FsbGJh
Y2spCi17Ci0gICAgdmFyIGluZGV4ID0gMDsKLSAgICBmdW5jdGlvbiBleHBhbmROZXh0UGF0aCgp
Ci0gICAgewotICAgICAgICBpZiAoaW5kZXggPT09IHByb3BlcnRpZXMubGVuZ3RoKSB7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNrKSgpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHZhciBwYXJlbnRUcmVlRWxlbWVudCA9IHByb3Bl
cnRpZXNbaW5kZXgrK107Ci0gICAgICAgIHZhciBwYXRoID0gcHJvcGVydGllc1tpbmRleCsrXTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5fZXhwYW5kUHJvcGVydHkocGFyZW50VHJlZUVsZW1lbnQs
IHBhdGgsIDAsIGV4cGFuZE5leHRQYXRoKTsKLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5B
ZnRlclBlbmRpbmdEaXNwYXRjaGVzKGV4cGFuZE5leHRQYXRoKTsKLX07Ci0KLUluc3BlY3RvclRl
c3QuX2V4cGFuZFByb3BlcnR5ID0gZnVuY3Rpb24ocGFyZW50VHJlZUVsZW1lbnQsIHBhdGgsIHBh
dGhJbmRleCwgY2FsbGJhY2spCi17Ci0gICAgaWYgKHBhdGhJbmRleCA9PT0gcGF0aC5sZW5ndGgp
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV4cGFuZGVkIHByb3BlcnR5OiAi
ICsgcGF0aC5qb2luKCIuIikpOwotICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotICAgIHZhciBuYW1lID0gcGF0aFtwYXRoSW5kZXgrK107Ci0gICAgdmFyIHByb3Bl
cnR5VHJlZUVsZW1lbnQgPSBJbnNwZWN0b3JUZXN0Ll9maW5kQ2hpbGRQcm9wZXJ0eVRyZWVFbGVt
ZW50KHBhcmVudFRyZWVFbGVtZW50LCBuYW1lKTsKLSAgICBpZiAoIXByb3BlcnR5VHJlZUVsZW1l
bnQpIHsKLSAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRmFpbGVkIHRvIGV4cGFuZCBw
cm9wZXJ0eTogIiArIHBhdGguc2xpY2UoMCwgcGF0aEluZGV4KS5qb2luKCIuIikpOwotICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKLSAgICAgICByZXR1cm47Ci0g
ICAgfQotICAgIHByb3BlcnR5VHJlZUVsZW1lbnQuZXhwYW5kKCk7Ci0gICAgSW5zcGVjdG9yVGVz
dC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKEluc3BlY3RvclRlc3QuX2V4cGFuZFByb3BlcnR5
LmJpbmQoSW5zcGVjdG9yVGVzdCwgcHJvcGVydHlUcmVlRWxlbWVudCwgcGF0aCwgcGF0aEluZGV4
LCBjYWxsYmFjaykpOwotfTsKLQotSW5zcGVjdG9yVGVzdC5fZmluZENoaWxkUHJvcGVydHlUcmVl
RWxlbWVudCA9IGZ1bmN0aW9uKHBhcmVudCwgY2hpbGROYW1lKQotewotICAgIHZhciBjaGlsZHJl
biA9IHBhcmVudC5jaGlsZHJlbjsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxl
bmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9IGNoaWxkcmVuW2ldOwotICAg
ICAgICB2YXIgcHJvcGVydHkgPSB0cmVlRWxlbWVudC5wcm9wZXJ0eTsKLSAgICAgICAgaWYgKHBy
b3BlcnR5Lm5hbWUgPT09IGNoaWxkTmFtZSkKLSAgICAgICAgICAgIHJldHVybiB0cmVlRWxlbWVu
dDsKLSAgICB9Ci19OwotCi1JbnNwZWN0b3JUZXN0LnNldFF1aWV0ID0gZnVuY3Rpb24ocXVpZXQp
Ci17Ci0gICAgSW5zcGVjdG9yVGVzdC5fcXVpZXQgPSBxdWlldDsKLX07Ci0KLUluc3BlY3RvclRl
c3QucXVlcnlTY3JpcHRzID0gZnVuY3Rpb24oZmlsdGVyKQotewotICAgIHZhciBzY3JpcHRzID0g
W107Ci0gICAgZm9yICh2YXIgc2NyaXB0SWQgaW4gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwu
X3NjcmlwdHMpIHsKLSAgICAgICAgdmFyIHNjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1v
ZGVsLl9zY3JpcHRzW3NjcmlwdElkXTsKLSAgICAgICAgaWYgKCFmaWx0ZXIgfHwgZmlsdGVyKHNj
cmlwdCkpCi0gICAgICAgICAgICBzY3JpcHRzLnB1c2goc2NyaXB0KTsKLSAgICB9Ci0gICAgcmV0
dXJuIHNjcmlwdHM7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2sgPSBmdW5j
dGlvbih1cmwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGlzQ29udGVudFNjcmlwdCwgc291cmNl
KQotewotICAgIHZhciBzY3JpcHRJZCA9ICsrSW5zcGVjdG9yVGVzdC5fbGFzdFNjcmlwdElkOwot
ICAgIHZhciBsaW5lQ291bnQgPSBzb3VyY2UubGluZUVuZGluZ3MoKS5sZW5ndGg7Ci0gICAgdmFy
IGVuZExpbmUgPSBzdGFydExpbmUgKyBsaW5lQ291bnQgLSAxOwotICAgIHZhciBlbmRDb2x1bW4g
PSBsaW5lQ291bnQgPT09IDEgPyBzdGFydENvbHVtbiArIHNvdXJjZS5sZW5ndGggOiBzb3VyY2Uu
bGVuZ3RoIC0gc291cmNlLmxpbmVFbmRpbmdzKClbbGluZUNvdW50IC0gMl07Ci0gICAgdmFyIGhh
c1NvdXJjZVVSTCA9ICEhc291cmNlLm1hdGNoKC9cL1wvQFxzc291cmNlVVJMPVxzKihcUyo/KVxz
KiQvbSk7Ci0gICAgdmFyIHNjcmlwdCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0KHNjcmlwdElk
LCB1cmwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgaXNDb250
ZW50U2NyaXB0LCBudWxsLCBoYXNTb3VyY2VVUkwpOwotICAgIHNjcmlwdC5yZXF1ZXN0Q29udGVu
dCA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7IGNhbGxiYWNrKHNvdXJjZSwgZmFsc2UsICJ0ZXh0L2ph
dmFzY3JpcHQiKTsgfTsKLSAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5fcmVnaXN0ZXJT
Y3JpcHQoc2NyaXB0KTsKLSAgICByZXR1cm4gc2NyaXB0OwotfQotCi1JbnNwZWN0b3JUZXN0Ll9s
YXN0U2NyaXB0SWQgPSAwOwotCi1JbnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24gPSBmdW5j
dGlvbihzY3JpcHQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgbG9jYXRpb24pCi17Ci0gICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoc2NyaXB0LnNjcmlwdElkLCBsb2NhdGlvbi5zY3Jp
cHRJZCwgIkluY29ycmVjdCBzY3JpcHRJZCIpOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1
YWxzKGxpbmVOdW1iZXIsIGxvY2F0aW9uLmxpbmVOdW1iZXIsICJJbmNvcnJlY3QgbGluZU51bWJl
ciIpOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGNvbHVtbk51bWJlciwgbG9jYXRp
b24uY29sdW1uTnVtYmVyLCAiSW5jb3JyZWN0IGNvbHVtbk51bWJlciIpOwotfTsKLQotSW5zcGVj
dG9yVGVzdC5jaGVja1VJTG9jYXRpb24gPSBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlciwgbG9jYXRpb24pCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHModWlTb3VyY2VDb2RlLCBsb2NhdGlvbi51aVNvdXJjZUNvZGUsICJJbmNvcnJlY3QgdWlT
b3VyY2VDb2RlLCBleHBlY3RlZCAnIiArICh1aVNvdXJjZUNvZGUgPyB1aVNvdXJjZUNvZGUub3Jp
Z2luVVJMKCkgOiBudWxsKSArICInLCIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGJ1dCBnb3QgJyIgKyAobG9j
YXRpb24udWlTb3VyY2VDb2RlID8gbG9jYXRpb24udWlTb3VyY2VDb2RlLm9yaWdpblVSTCgpIDog
bnVsbCkgKyAiJyIpOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGxpbmVOdW1iZXIs
IGxvY2F0aW9uLmxpbmVOdW1iZXIsICJJbmNvcnJlY3QgbGluZU51bWJlciwgZXhwZWN0ZWQgJyIg
KyBsaW5lTnVtYmVyICsgIicsIGJ1dCBnb3QgJyIgKyBsb2NhdGlvbi5saW5lTnVtYmVyICsgIici
KTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhjb2x1bW5OdW1iZXIsIGxvY2F0aW9u
LmNvbHVtbk51bWJlciwgIkluY29ycmVjdCBjb2x1bW5OdW1iZXIsIGV4cGVjdGVkICciICsgY29s
dW1uTnVtYmVyICsgIicsIGJ1dCBnb3QgJyIgKyBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAiJyIp
OwotfTsKLQotfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy10ZXN0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MGY2ZDU3Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3Qu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw2NDQgKzAsMCBAQAotdmFyIGluaXRpYWxpemVfRWxlbWVu
dFRlc3QgPSBmdW5jdGlvbigpIHsKLQotSW5zcGVjdG9yVGVzdC5maW5kTm9kZSA9IGZ1bmN0aW9u
KG1hdGNoRnVuY3Rpb24sIGNhbGxiYWNrKQotewotICAgIGNhbGxiYWNrID0gSW5zcGVjdG9yVGVz
dC5zYWZlV3JhcChjYWxsYmFjayk7Ci0gICAgdmFyIHJlc3VsdCA9IG51bGw7Ci0gICAgdmFyIHRv
cExldmVsQ2hpbGRyZW5SZXF1ZXN0ZWQgPSBmYWxzZTsKLSAgICB2YXIgcGVuZGluZ1JlcXVlc3Rz
ID0gMDsKLSAgICBmdW5jdGlvbiBwcm9jZXNzQ2hpbGRyZW4odG9wTGV2ZWwsIGNoaWxkcmVuKQot
ICAgIHsKLSAgICAgICAgcGVuZGluZ1JlcXVlc3RzLS07Ci0gICAgICAgIGlmIChyZXN1bHQpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGNoaWxkcmVuICYm
IGkgPCBjaGlsZHJlbi5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGNoaWxkTm9kZSA9
IGNoaWxkcmVuW2ldOwotICAgICAgICAgICAgaWYgKG1hdGNoRnVuY3Rpb24oY2hpbGROb2RlKSkg
ewotICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNoaWxkTm9kZTsKLSAgICAgICAgICAgICAgICBj
YWxsYmFjayhyZXN1bHQpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHBlbmRpbmdSZXF1ZXN0cysrOwotICAgICAgICAgICAgY2hpbGROb2RlLmdl
dENoaWxkTm9kZXMocHJvY2Vzc0NoaWxkcmVuLmJpbmQobnVsbCwgZmFsc2UpKTsKLSAgICAgICAg
fQotCi0gICAgICAgIGlmICh0b3BMZXZlbCkKLSAgICAgICAgICAgIHRvcExldmVsQ2hpbGRyZW5S
ZXF1ZXN0ZWQgPSB0cnVlOwotICAgICAgICBpZiAodG9wTGV2ZWxDaGlsZHJlblJlcXVlc3RlZCAm
JiAhcmVzdWx0ICYmICFwZW5kaW5nUmVxdWVzdHMpCi0gICAgICAgICAgICBjYWxsYmFjayhudWxs
KTsKLSAgICB9Ci0gICAgcGVuZGluZ1JlcXVlc3RzKys7Ci0KLSAgICBXZWJJbnNwZWN0b3IuZG9t
QWdlbnQucmVxdWVzdERvY3VtZW50KGRvY3VtZW50UmVxdWVzdGVkLmJpbmQodGhpcykpOwotICAg
IGZ1bmN0aW9uIGRvY3VtZW50UmVxdWVzdGVkKGRvYykKLSAgICB7Ci0gICAgICAgIGRvYy5nZXRD
aGlsZE5vZGVzKHByb2Nlc3NDaGlsZHJlbi5iaW5kKHRoaXMsIHRydWUpKTsKLSAgICB9Ci19Owot
Ci1JbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQgPSBmdW5jdGlvbihpZFZhbHVlLCBjYWxsYmFjaykK
LXsKLSAgICBmdW5jdGlvbiBub2RlSWRNYXRjaGVzKG5vZGUpCi0gICAgewotICAgICAgICByZXR1
cm4gbm9kZS5nZXRBdHRyaWJ1dGUoImlkIikgPT09IGlkVmFsdWU7Ci0gICAgfQotICAgIEluc3Bl
Y3RvclRlc3QuZmluZE5vZGUobm9kZUlkTWF0Y2hlcywgY2FsbGJhY2spOwotfQotCi1JbnNwZWN0
b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJZCA9IGZ1bmN0aW9uKGlkVmFsdWUpCi17Ci0gICAgdmFy
IHJlc3VsdDsKLSAgICBmdW5jdGlvbiBjYWxsYmFjayhub2RlKQotICAgIHsKLSAgICAgICAgcmVz
dWx0ID0gbm9kZTsKLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKGlkVmFsdWUs
IGNhbGxiYWNrKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1JbnNwZWN0b3JUZXN0LnNlbGVj
dE5vZGVXaXRoSWQgPSBmdW5jdGlvbihpZFZhbHVlLCBjYWxsYmFjaykKLXsKLSAgICBjYWxsYmFj
ayA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spOwotICAgIGZ1bmN0aW9uIG9uTm9k
ZUZvdW5kKG5vZGUpCi0gICAgewotICAgICAgICBpZiAobm9kZSkKLSAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5fdXBkYXRlRm9jdXNlZE5vZGUobm9kZS5pZCk7Ci0gICAgICAgIGNhbGxiYWNrKG5v
ZGUpOwotICAgIH0KLSAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoaWRWYWx1ZSwgb25Ob2Rl
Rm91bmQpOwotfQotCi1JbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMgPSBmdW5jdGlvbihpZFZh
bHVlLCBjYWxsYmFjaywgcmVxdWlyZVJlYnVpbGQpCi17Ci0gICAgY2FsbGJhY2sgPSBJbnNwZWN0
b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNrKTsKLQotICAgIChmdW5jdGlvbiBzbmlmZihub2RlLCBy
ZWJ1aWxkKQotICAgIHsKLSAgICAgICAgaWYgKChyZWJ1aWxkIHx8ICFyZXF1aXJlUmVidWlsZCkg
JiYgbm9kZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiaWQiKSA9PT0gaWRWYWx1ZSkgewotICAgICAg
ICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5l
LnByb3RvdHlwZSwgIl9ub2RlU3R5bGVzVXBkYXRlZEZvclRlc3QiLCBzbmlmZik7Ci0gICAgfSko
bnVsbCk7Ci19Ci0KLUluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMgPSBm
dW5jdGlvbihpZFZhbHVlLCBjYWxsYmFjaykKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVs
KCJlbGVtZW50cyIpOwotCi0gICAgY2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNh
bGxiYWNrKTsKLQotICAgIHZhciB0YXJnZXROb2RlOwotCi0gICAgSW5zcGVjdG9yVGVzdC53YWl0
Rm9yU3R5bGVzKGlkVmFsdWUsIHN0eWxlc1VwZGF0ZWQsIHRydWUpOwotICAgIEluc3BlY3RvclRl
c3Quc2VsZWN0Tm9kZVdpdGhJZChpZFZhbHVlLCBub2RlU2VsZWN0ZWQpOwotCi0gICAgZnVuY3Rp
b24gbm9kZVNlbGVjdGVkKG5vZGUpCi0gICAgewotICAgICAgICB0YXJnZXROb2RlID0gbm9kZTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdHlsZXNVcGRhdGVkKCkKLSAgICB7Ci0gICAgICAgIGNh
bGxiYWNrKHRhcmdldE5vZGUpOwotICAgIH0KLX0KLQotSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2Rl
QW5kV2FpdEZvclN0eWxlc1dpdGhDb21wdXRlZCA9IGZ1bmN0aW9uKGlkVmFsdWUsIGNhbGxiYWNr
KQotewotICAgIGNhbGxiYWNrID0gSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjayk7Ci0K
LSAgICBmdW5jdGlvbiBzdHlsZXNDYWxsYmFjayh0YXJnZXROb2RlKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5
cGUsICJvbkNvbnRlbnRSZWFkeSIsIGNhbGxiYWNrKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBh
bmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMuY29tcHV0ZWRTdHlsZS5leHBhbmQoKTsKLSAgICB9
Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKGlkVmFsdWUs
IHN0eWxlc0NhbGxiYWNrKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50
U3R5bGVzID0gZnVuY3Rpb24oZXhjbHVkZUNvbXB1dGVkLCBleGNsdWRlTWF0Y2hlZCwgb21pdExv
bmdoYW5kcywgaW5jbHVkZVNlbGVjdG9yR3JvdXBNYXJrcykKLXsKLSAgICBmdW5jdGlvbiBleHRy
YWN0VGV4dChlbGVtZW50KQotICAgIHsKLSAgICAgICAgdmFyIHRleHQgPSBlbGVtZW50LnRleHRD
b250ZW50OwotICAgICAgICBpZiAodGV4dCkKLSAgICAgICAgICAgIHJldHVybiB0ZXh0OwotICAg
ICAgICBlbGVtZW50ID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS11bmNvcHlhYmxlXSIp
OwotICAgICAgICByZXR1cm4gZWxlbWVudCA/IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLXVu
Y29weWFibGUiKSA6ICIiOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGJ1aWxkTWFya2VkU2VsZWN0
b3JzKGVsZW1lbnQpCi0gICAgewotICAgICAgICB2YXIgcmVzdWx0ID0gIiI7Ci0gICAgICAgIGZv
ciAodmFyIG5vZGUgPSBlbGVtZW50LmZpcnN0Q2hpbGQ7IG5vZGU7IG5vZGUgPSBub2RlLm5leHRT
aWJsaW5nKSB7Ci0gICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5U
X05PREUgJiYgbm9kZS5jbGFzc05hbWUgPT09ICJzZWxlY3Rvci1tYXRjaGVzIikKLSAgICAgICAg
ICAgICAgICByZXN1bHQgKz0gIlskIiArIG5vZGUudGV4dENvbnRlbnQgKyAiJF0iOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdCArPSBub2RlLnRleHRDb250ZW50Owot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgdmFyIHN0eWxl
U2VjdGlvbnMgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQYW5lcy5zdHls
ZXMuc2VjdGlvbnM7Ci0gICAgZm9yICh2YXIgcHNldWRvSWQgaW4gc3R5bGVTZWN0aW9ucykgewot
ICAgICAgICB2YXIgcHNldWRvTmFtZSA9IFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5Q
c2V1ZG9JZE5hbWVzW3BzZXVkb0lkXTsKLSAgICAgICAgdmFyIHNlY3Rpb25zID0gc3R5bGVTZWN0
aW9uc1twc2V1ZG9JZF07Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VjdGlvbnMubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBzZWN0aW9uID0gc2VjdGlvbnNbaV07Ci0gICAg
ICAgICAgICBpZiAoc2VjdGlvbi5jb21wdXRlZFN0eWxlICYmIGV4Y2x1ZGVDb21wdXRlZCkKLSAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmIChzZWN0aW9uLnJ1bGUgJiYg
ZXhjbHVkZU1hdGNoZWQpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBp
ZiAoc2VjdGlvbi5lbGVtZW50LnByZXZpb3VzU2libGluZyAmJiBzZWN0aW9uLmVsZW1lbnQucHJl
dmlvdXNTaWJsaW5nLmNsYXNzTmFtZSA9PT0gInNpZGViYXItc2VwYXJhdG9yIikKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT0gIiArIHNlY3Rpb24uZWxl
bWVudC5wcmV2aW91c1NpYmxpbmcudGV4dENvbnRlbnQgKyAiID09PT09PT09Iik7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgoc2VjdGlvbi5leHBhbmRlZCA/ICJbZXhwYW5k
ZWRdICIgOiAiW2NvbGxhcHNlZF0gIikgKyAoc2VjdGlvbi5ub0FmZmVjdCA/ICJbbm8tYWZmZWN0
XSAiIDogIiIpKTsKLSAgICAgICAgICAgIHZhciBjaGFpbkVudHJpZXMgPSBzZWN0aW9uLnRpdGxl
RWxlbWVudC5jaGlsZHJlbjsKLSAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY2hhaW5F
bnRyaWVzLmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGNoYWluRW50cnkgPSBj
aGFpbkVudHJpZXNbal07Ci0gICAgICAgICAgICAgICAgdmFyIGVudHJ5TGluZSA9IGluY2x1ZGVT
ZWxlY3Rvckdyb3VwTWFya3MgPyBidWlsZE1hcmtlZFNlbGVjdG9ycyhjaGFpbkVudHJ5LmNoaWxk
cmVuWzFdKSA6IGNoYWluRW50cnkuY2hpbGRyZW5bMV0udGV4dENvbnRlbnQ7Ci0gICAgICAgICAg
ICAgICAgaWYgKGNoYWluRW50cnkuY2hpbGRyZW5bMl0pCi0gICAgICAgICAgICAgICAgICAgIGVu
dHJ5TGluZSArPSAiICIgKyBjaGFpbkVudHJ5LmNoaWxkcmVuWzJdLnRleHRDb250ZW50OwotICAg
ICAgICAgICAgICAgIGVudHJ5TGluZSArPSAiICgiICsgZXh0cmFjdFRleHQoY2hhaW5FbnRyeS5j
aGlsZHJlblswXSkgKyAiKSI7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoZW50cnlMaW5lKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNlY3Rpb24uZXhwYW5k
KCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTdHlsZVRyZWVPdXRsaW5lKHNlY3Rp
b24ucHJvcGVydGllc1RyZWVPdXRsaW5lLCBvbWl0TG9uZ2hhbmRzID8gMSA6IDIpOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAgICB9Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLSAgICB9Ci19Ci0KLUluc3BlY3RvclRlc3QudG9n
Z2xlU3R5bGVQcm9wZXJ0eSA9IGZ1bmN0aW9uKHByb3BlcnR5TmFtZSwgY2hlY2tlZCkKLXsKLSAg
ICB2YXIgdHJlZUl0ZW0gPSBJbnNwZWN0b3JUZXN0LmdldEVsZW1lbnRTdHlsZVByb3BlcnR5VHJl
ZUl0ZW0ocHJvcGVydHlOYW1lKTsKLSAgICB0cmVlSXRlbS50b2dnbGVFbmFibGVkKHsgdGFyZ2V0
OiB7IGNoZWNrZWQ6IGNoZWNrZWQgfSwgY29uc3VtZTogZnVuY3Rpb24oKSB7IH0gfSk7Ci19Ci0K
LUluc3BlY3RvclRlc3QudG9nZ2xlTWF0Y2hlZFN0eWxlUHJvcGVydHkgPSBmdW5jdGlvbihwcm9w
ZXJ0eU5hbWUsIGNoZWNrZWQpCi17Ci0gICAgdmFyIHRyZWVJdGVtID0gSW5zcGVjdG9yVGVzdC5n
ZXRNYXRjaGVkU3R5bGVQcm9wZXJ0eVRyZWVJdGVtKHByb3BlcnR5TmFtZSk7Ci0gICAgdHJlZUl0
ZW0udG9nZ2xlRW5hYmxlZCh7IHRhcmdldDogeyBjaGVja2VkOiBjaGVja2VkIH0sIGNvbnN1bWU6
IGZ1bmN0aW9uKCkgeyB9IH0pOwotfQotCi1JbnNwZWN0b3JUZXN0LmV4cGFuZEFuZER1bXBTZWxl
Y3RlZEVsZW1lbnRFdmVudExpc3RlbmVycyA9IGZ1bmN0aW9uKGNhbGxiYWNrKQotewotICAgIElu
c3BlY3RvclRlc3QuZXhwYW5kU2VsZWN0ZWRFbGVtZW50RXZlbnRMaXN0ZW5lcnMoZnVuY3Rpb24o
KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudEV2ZW50TGlzdGVu
ZXJzKGNhbGxiYWNrKTsKLSAgICB9KTsKLX0KLQotSW5zcGVjdG9yVGVzdC5leHBhbmRTZWxlY3Rl
ZEVsZW1lbnRFdmVudExpc3RlbmVycyA9IGZ1bmN0aW9uKGNhbGxiYWNrKQotewotICAgIHZhciBz
aWRlYmFyUGFuZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLmV2
ZW50TGlzdGVuZXJzOwotICAgIHNpZGViYXJQYW5lLmV4cGFuZCgpOwotCi0gICAgSW5zcGVjdG9y
VGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGFuZFNlbGVjdGVkRWxlbWVudEV2ZW50TGlzdGVuZXJzU3Vic2VjdGlvbnMo
Y2FsbGJhY2spOwotICAgIH0pOwotfQotCi1JbnNwZWN0b3JUZXN0LmV4cGFuZFNlbGVjdGVkRWxl
bWVudEV2ZW50TGlzdGVuZXJzU3Vic2VjdGlvbnMgPSBmdW5jdGlvbihjYWxsYmFjaykKLXsKLSAg
ICB2YXIgZXZlbnRMaXN0ZW5lclNlY3Rpb25zID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50
cy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lcnMuc2VjdGlvbnM7Ci0gICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBldmVudExpc3RlbmVyU2VjdGlvbnMubGVuZ3RoOyArK2kpCi0gICAgICAgIGV2ZW50
TGlzdGVuZXJTZWN0aW9uc1tpXS5leHBhbmQoKTsKLQotICAgIC8vIE11bHRpcGxlIHNlY3Rpb25z
IG1heSBleHBhbmQuCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVz
KGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFNlbGVjdGVkRWxlbWVu
dEV2ZW50TGlzdGVuZXJzRXZlbnRCYXJzKGNhbGxiYWNrKTsKLSAgICB9KTsKLX0KLQotSW5zcGVj
dG9yVGVzdC5leHBhbmRTZWxlY3RlZEVsZW1lbnRFdmVudExpc3RlbmVyc0V2ZW50QmFycyA9IGZ1
bmN0aW9uKGNhbGxiYWNrKQotewotICAgIHZhciBldmVudExpc3RlbmVyU2VjdGlvbnMgPSBXZWJJ
bnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQYW5lcy5ldmVudExpc3RlbmVycy5zZWN0
aW9uczsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50TGlzdGVuZXJTZWN0aW9ucy5sZW5n
dGg7ICsraSkgewotICAgICAgICB2YXIgZXZlbnRCYXJDaGlsZHJlbiA9IGV2ZW50TGlzdGVuZXJT
ZWN0aW9uc1tpXS5fZXZlbnRCYXJzLmNoaWxkcmVuOwotICAgICAgICBmb3IgKHZhciBqID0gMDsg
aiA8IGV2ZW50QmFyQ2hpbGRyZW4ubGVuZ3RoOyArK2opCi0gICAgICAgICAgICBldmVudEJhckNo
aWxkcmVuW2pdLl9zZWN0aW9uLmV4cGFuZCgpOwotICAgIH0KLQotICAgIC8vIE11bHRpcGxlIHNl
Y3Rpb25zIG1heSBleHBhbmQuCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNw
YXRjaGVzKGNhbGxiYWNrKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50
RXZlbnRMaXN0ZW5lcnMgPSBmdW5jdGlvbihjYWxsYmFjaykKLXsKLSAgICBmdW5jdGlvbiBmb3Jt
YXRTb3VyY2VOYW1lUHJvcGVydHkodmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gIltjbGlw
cGVkLWZvci10ZXN0XS8iICsgdmFsdWUucmVwbGFjZSgvKC4qP1wvKUxheW91dFRlc3RzLywgIkxh
eW91dFRlc3RzIik7Ci0gICAgfQotCi0gICAgdmFyIGV2ZW50TGlzdGVuZXJTZWN0aW9ucyA9IFdl
Ykluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLmV2ZW50TGlzdGVuZXJzLnNl
Y3Rpb25zOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRMaXN0ZW5lclNlY3Rpb25zLmxl
bmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBzZWN0aW9uID0gZXZlbnRMaXN0ZW5lclNlY3Rpb25z
W2ldOwotICAgICAgICB2YXIgZXZlbnRUeXBlID0gc2VjdGlvbi5fdGl0bGU7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIj09PT09PT09ICIgKyBldmVudFR5cGUgKyAiID09PT09PT09Iik7Ci0gICAgICAgIHZhciBl
dmVudEJhckNoaWxkcmVuID0gc2VjdGlvbi5fZXZlbnRCYXJzLmNoaWxkcmVuOwotICAgICAgICBm
b3IgKHZhciBqID0gMDsgaiA8IGV2ZW50QmFyQ2hpbGRyZW4ubGVuZ3RoOyArK2opIHsKLSAgICAg
ICAgICAgIHZhciBvYmplY3RQcm9wZXJ0aWVzU2VjdGlvbiA9IGV2ZW50QmFyQ2hpbGRyZW5bal0u
X3NlY3Rpb247Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBPYmplY3RQcm9wZXJ0eVNl
Y3Rpb24ob2JqZWN0UHJvcGVydGllc1NlY3Rpb24sIHsKLSAgICAgICAgICAgICAgICBzb3VyY2VO
YW1lOiBmb3JtYXRTb3VyY2VOYW1lUHJvcGVydHkKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgY2FsbGJhY2soKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5kdW1wT2JqZWN0
UHJvcGVydHlTZWN0aW9uID0gZnVuY3Rpb24oc2VjdGlvbiwgZm9ybWF0dGVycykKLXsKLSAgICB2
YXIgZXhwYW5kZWRTdWJzdHJpbmcgPSBzZWN0aW9uLmV4cGFuZGVkID8gIltleHBhbmRlZF0iIDog
Iltjb2xsYXBzZWRdIjsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChleHBhbmRlZFN1YnN0
cmluZyArICIgIiArIHNlY3Rpb24udGl0bGVFbGVtZW50LnRleHRDb250ZW50ICsgIiAiICsgc2Vj
dGlvbi5zdWJ0aXRsZUFzVGV4dEZvclRlc3QpOwotICAgIGlmICghc2VjdGlvbi5wcm9wZXJ0aWVz
Rm9yVGVzdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWN0
aW9uLnByb3BlcnRpZXNGb3JUZXN0Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBwcm9wZXJ0
eSA9IHNlY3Rpb24ucHJvcGVydGllc0ZvclRlc3RbaV07Ci0gICAgICAgIHZhciBrZXkgPSBwcm9w
ZXJ0eS5uYW1lOwotICAgICAgICB2YXIgdmFsdWUgPSBwcm9wZXJ0eS52YWx1ZS5fZGVzY3JpcHRp
b247Ci0gICAgICAgIGlmIChrZXkgaW4gZm9ybWF0dGVycykKLSAgICAgICAgICAgIHZhbHVlID0g
Zm9ybWF0dGVyc1trZXldKHZhbHVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiAgICAiICsga2V5ICsgIjogIiArIHZhbHVlKTsKLSAgICB9Ci19Ci0KLUluc3BlY3RvclRlc3Qu
ZHVtcE9iamVjdFByb3BlcnR5U2VjdGlvbkRlZXAgPSBmdW5jdGlvbihzZWN0aW9uKQotewotICAg
IGZ1bmN0aW9uIGRvbU5vZGVUb1N0cmluZyhub2RlKSB7Ci0gICAgICAgIGlmIChub2RlKQotICAg
ICAgICAgICAgcmV0dXJuICInIiArIG5vZGUudGV4dENvbnRlbnQgKyAiJyI7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHJldHVybiAibnVsbCI7Ci0gICAgfQotICAgIGZ1bmN0aW9uIGR1bXBU
cmVlRWxlbWVudFJlY3Vyc2l2ZWx5KHRyZWVFbGVtZW50LCBwcmVmaXgpIHsKLSAgICAgICAgaWYg
KCJuYW1lRWxlbWVudCIgaW4gdHJlZUVsZW1lbnQpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdChwcmVmaXggKyBkb21Ob2RlVG9TdHJpbmcodHJlZUVsZW1lbnQubmFtZUVsZW1l
bnQpICsgIiA9PiAiICsgZG9tTm9kZVRvU3RyaW5nKHRyZWVFbGVtZW50LnZhbHVlRWxlbWVudCkp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChwcmVm
aXggKyB0cmVlRWxlbWVudC50aXRsZSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHJl
ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBkdW1wVHJlZUVsZW1l
bnRSZWN1cnNpdmVseSh0cmVlRWxlbWVudC5jaGlsZHJlbltpXSwgcHJlZml4ICsgIiAgICAiKTsK
LSAgICB9Ci0KLSAgICB2YXIgY2hpbGROb2RlcyA9IHNlY3Rpb24ucHJvcGVydGllc1RyZWVPdXRs
aW5lLmNoaWxkcmVuOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGROb2Rlcy5sZW5ndGg7
IGkrKykgewotICAgICAgICBkdW1wVHJlZUVsZW1lbnRSZWN1cnNpdmVseShjaGlsZE5vZGVzW2ld
LCAiIik7Ci0gICAgfQotfQotCi0vLyBGSVhNRTogdGhpcyByZXR1cm5zIHRoZSBmaXJzdCB0cmVl
IGl0ZW0gZm91bmQgKG1heSBmYWlsIGZvciBzYW1lLW5hbWVkIHByb3BlcnRpZXMgaW4gYSBzdHls
ZSkuCi1JbnNwZWN0b3JUZXN0LmdldEVsZW1lbnRTdHlsZVByb3BlcnR5VHJlZUl0ZW0gPSBmdW5j
dGlvbihwcm9wZXJ0eU5hbWUpCi17Ci0gICAgdmFyIHN0eWxlU2VjdGlvbnMgPSBXZWJJbnNwZWN0
b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQYW5lcy5zdHlsZXMuc2VjdGlvbnNbMF07Ci0gICAg
dmFyIGVsZW1lbnRTdHlsZVNlY3Rpb24gPSBzdHlsZVNlY3Rpb25zWzFdOwotICAgIHJldHVybiBJ
bnNwZWN0b3JUZXN0LmdldEZpcnN0UHJvcGVydHlUcmVlSXRlbUZvclNlY3Rpb24oZWxlbWVudFN0
eWxlU2VjdGlvbiwgcHJvcGVydHlOYW1lKTsKLX07Ci0KLS8vIEZJWE1FOiB0aGlzIHJldHVybnMg
dGhlIGZpcnN0IHRyZWUgaXRlbSBmb3VuZCAobWF5IGZhaWwgZm9yIHNhbWUtbmFtZWQgcHJvcGVy
dGllcyBpbiBhIHN0eWxlKS4KLUluc3BlY3RvclRlc3QuZ2V0TWF0Y2hlZFN0eWxlUHJvcGVydHlU
cmVlSXRlbSA9IGZ1bmN0aW9uKHByb3BlcnR5TmFtZSkKLXsKLSAgICB2YXIgc3R5bGVTZWN0aW9u
cyA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLnN0eWxlcy5zZWN0
aW9uc1swXTsKLSAgICBmb3IgKHZhciBpID0gMTsgaSA8IHN0eWxlU2VjdGlvbnMubGVuZ3RoOyAr
K2kpIHsKLSAgICAgICAgdmFyIHRyZWVJdGVtID0gSW5zcGVjdG9yVGVzdC5nZXRGaXJzdFByb3Bl
cnR5VHJlZUl0ZW1Gb3JTZWN0aW9uKHN0eWxlU2VjdGlvbnNbaV0sIHByb3BlcnR5TmFtZSk7Ci0g
ICAgICAgIGlmICh0cmVlSXRlbSkKLSAgICAgICAgICAgIHJldHVybiB0cmVlSXRlbTsKLSAgICB9
Ci0gICAgcmV0dXJuIG51bGw7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmdldEZpcnN0UHJvcGVydHlU
cmVlSXRlbUZvclNlY3Rpb24gPSBmdW5jdGlvbihzZWN0aW9uLCBwcm9wZXJ0eU5hbWUpCi17Ci0g
ICAgdmFyIG91dGxpbmUgPSBzZWN0aW9uLnByb3BlcnRpZXNUcmVlT3V0bGluZTsKLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IG91dGxpbmUuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAg
dmFyIHRyZWVJdGVtID0gb3V0bGluZS5jaGlsZHJlbltpXTsKLSAgICAgICAgaWYgKHRyZWVJdGVt
Lm5hbWUgPT09IHByb3BlcnR5TmFtZSkKLSAgICAgICAgICAgIHJldHVybiB0cmVlSXRlbTsKLSAg
ICB9Ci0gICAgcmV0dXJuIG51bGw7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmR1bXBTdHlsZVRyZWVP
dXRsaW5lID0gZnVuY3Rpb24odHJlZUl0ZW0sIGRlcHRoKQotewotICAgIHZhciBjaGlsZHJlbiA9
IHRyZWVJdGVtLmNoaWxkcmVuOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVu
Z3RoOyArK2kpCi0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFN0eWxlVHJlZUl0ZW0oY2hpbGRy
ZW5baV0sICIiLCBkZXB0aCB8fCAyKTsKLX07Ci0KLUluc3BlY3RvclRlc3QuZHVtcFN0eWxlVHJl
ZUl0ZW0gPSBmdW5jdGlvbih0cmVlSXRlbSwgcHJlZml4LCBkZXB0aCkKLXsKLSAgICAvLyBGaWx0
ZXIgb3V0IHdpZHRoIGFuZCBoZWlnaHQgcHJvcGVydGllcyBpbiBvcmRlciB0byBtaW5pbWl6ZQot
ICAgIC8vIHBvdGVudGlhbCBkaWZmcy4KLSAgICBpZiAoIXRyZWVJdGVtLmxpc3RJdGVtRWxlbWVu
dC50ZXh0Q29udGVudC5pbmRleE9mKCJ3aWR0aCIpIHx8Ci0gICAgICAgICF0cmVlSXRlbS5saXN0
SXRlbUVsZW1lbnQudGV4dENvbnRlbnQuaW5kZXhPZigiaGVpZ2h0IikpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmICh0cmVlSXRlbS5saXN0SXRlbUVsZW1lbnQuaGFzU3R5bGVDbGFzcygiaW5o
ZXJpdGVkIikpCi0gICAgICAgIHJldHVybjsKLSAgICB2YXIgdHlwZVByZWZpeCA9ICIiOwotICAg
IGlmICh0cmVlSXRlbS5saXN0SXRlbUVsZW1lbnQuaGFzU3R5bGVDbGFzcygib3ZlcmxvYWRlZCIp
IHx8IHRyZWVJdGVtLmxpc3RJdGVtRWxlbWVudC5oYXNTdHlsZUNsYXNzKCJpbmFjdGl2ZSIpIHx8
IHRyZWVJdGVtLmxpc3RJdGVtRWxlbWVudC5oYXNTdHlsZUNsYXNzKCJub3QtcGFyc2VkLW9rIikp
Ci0gICAgICAgIHR5cGVQcmVmaXggKz0gIi8tLSBvdmVybG9hZGVkIC0tLyAiOwotICAgIGlmICh0
cmVlSXRlbS5saXN0SXRlbUVsZW1lbnQuaGFzU3R5bGVDbGFzcygiZGlzYWJsZWQiKSkKLSAgICAg
ICAgdHlwZVByZWZpeCArPSAiLy0tIGRpc2FibGVkIC0tLyAiOwotICAgIHZhciB0ZXh0Q29udGVu
dCA9IHRyZWVJdGVtLmxpc3RJdGVtRWxlbWVudC50ZXh0Q29udGVudDsKLQotICAgIC8vIEFkZCBu
b24tc2VsZWN0YWJsZSB1cmwgdGV4dC4KLSAgICB2YXIgdGV4dERhdGEgPSB0cmVlSXRlbS5saXN0
SXRlbUVsZW1lbnQucXVlcnlTZWxlY3RvcigiW2RhdGEtdW5jb3B5YWJsZV0iKTsKLSAgICBpZiAo
dGV4dERhdGEpCi0gICAgICAgIHRleHRDb250ZW50ICs9IHRleHREYXRhLmdldEF0dHJpYnV0ZSgi
ZGF0YS11bmNvcHlhYmxlIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocHJlZml4ICsg
dHlwZVByZWZpeCArIHRleHRDb250ZW50KTsKLSAgICBpZiAoLS1kZXB0aCkgewotICAgICAgICB0
cmVlSXRlbS5leHBhbmQoKTsKLSAgICAgICAgdmFyIGNoaWxkcmVuID0gdHJlZUl0ZW0uY2hpbGRy
ZW47Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBjaGlsZHJlbiAmJiBpIDwgY2hpbGRyZW4ubGVu
Z3RoOyArK2kpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTdHlsZVRyZWVJdGVtKGNo
aWxkcmVuW2ldLCBwcmVmaXggKyAiICAgICIsIGRlcHRoKTsKLSAgICB9Ci19OwotCi1JbnNwZWN0
b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUgPSBmdW5jdGlvbihyb290Tm9kZSwgZGVwdGgpCi17Ci0g
ICAgZnVuY3Rpb24gYmVhdXRpZnkoZWxlbWVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBlbGVt
ZW50LmlubmVyVGV4dC5yZXBsYWNlKC9cdTIwMGIvZywgIiIpLnJlcGxhY2UoL1xuL2csICJcXG4i
KS50cmltKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZHVtcE1hcChuYW1lLCBtYXApCi0gICAg
ewotICAgICAgICB2YXIgcmVzdWx0ID0gW107Ci0gICAgICAgIGZvciAodmFyIGlkIGluIG1hcCkK
LSAgICAgICAgICAgIHJlc3VsdC5wdXNoKGlkICsgIj0iICsgbWFwW2lkXSk7Ci0gICAgICAgIGlm
ICghcmVzdWx0Lmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiAiIjsKLSAgICAgICAgcmV0dXJu
IG5hbWUgKyAiOlsiICsgcmVzdWx0LmpvaW4oIiwiKSArICJdIjsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiB1c2VyUHJvcGVydHlEYXRhRHVtcCh0cmVlSXRlbSkKLSAgICB7Ci0gICAgICAgIGlmICh0
cmVlSXRlbS5fZWxlbWVudENsb3NlVGFnKQotICAgICAgICAgICAgcmV0dXJuICIiOwotCi0gICAg
ICAgIHZhciB1c2VyUHJvcGVydGllcyA9ICIiOwotICAgICAgICB2YXIgbm9kZSA9IHRyZWVJdGVt
LnJlcHJlc2VudGVkT2JqZWN0OwotICAgICAgICBpZiAobm9kZSkgewotICAgICAgICAgICAgdXNl
clByb3BlcnRpZXMgKz0gZHVtcE1hcCgidXNlclByb3BlcnRpZXMiLCBub2RlLl91c2VyUHJvcGVy
dGllcyk7Ci0gICAgICAgICAgICB2YXIgZHVtcCA9IGR1bXBNYXAoImRlc2NlbmRhbnRVc2VyQXR0
cmlidXRlQ291bnRlcnMiLCBub2RlLl9kZXNjZW5kYW50VXNlclByb3BlcnR5Q291bnRlcnMpOwot
ICAgICAgICAgICAgaWYgKGR1bXApIHsKLSAgICAgICAgICAgICAgICBpZiAodXNlclByb3BlcnRp
ZXMpCi0gICAgICAgICAgICAgICAgICAgIHVzZXJQcm9wZXJ0aWVzICs9ICIsICI7Ci0gICAgICAg
ICAgICAgICAgdXNlclByb3BlcnRpZXMgKz0gZHVtcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGlmICh1c2VyUHJvcGVydGllcykKLSAgICAgICAgICAgICAgICB1c2VyUHJvcGVydGllcyA9
ICIgWyIgKyB1c2VyUHJvcGVydGllcyArICJdIjsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
dXNlclByb3BlcnRpZXM7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcHJpbnQodHJlZUl0ZW0sIHBy
ZWZpeCwgZGVwdGgpCi0gICAgewotICAgICAgICBpZiAodHJlZUl0ZW0ubGlzdEl0ZW1FbGVtZW50
KSB7Ci0gICAgICAgICAgICB2YXIgZXhwYW5kZXI7Ci0gICAgICAgICAgICBpZiAodHJlZUl0ZW0u
aGFzQ2hpbGRyZW4pIHsKLSAgICAgICAgICAgICAgICBpZiAodHJlZUl0ZW0uZXhwYW5kZWQpCi0g
ICAgICAgICAgICAgICAgICAgIGV4cGFuZGVyID0gIi0gIjsKLSAgICAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVyID0gIisgIjsKLSAgICAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgICAgIGV4cGFuZGVyID0gIiAgIjsKLQotICAgICAgICAgICAgdmFyIHVz
ZXJQcm9wZXJ0aWVzID0gdXNlclByb3BlcnR5RGF0YUR1bXAodHJlZUl0ZW0pOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocHJlZml4ICsgZXhwYW5kZXIgKyBiZWF1dGlmeSh0
cmVlSXRlbS5saXN0SXRlbUVsZW1lbnQpICsgdXNlclByb3BlcnRpZXMpOwotICAgICAgICB9Ci0K
LSAgICAgICAgaWYgKCF0cmVlSXRlbS5leHBhbmRlZCkKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICB2YXIgY2hpbGRyZW4gPSB0cmVlSXRlbS5jaGlsZHJlbjsKLSAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGRlcHRoICYmIGNoaWxkcmVuICYmIGkgPCBjaGlsZHJlbi5sZW5ndGggLSAxOyAr
K2kpCi0gICAgICAgICAgICBwcmludChjaGlsZHJlbltpXSwgcHJlZml4ICsgIiAgICAiLCBkZXB0
aCAtIDEpOwotCi0gICAgICAgIC8vIENsb3NpbmcgdGFnLgotICAgICAgICBpZiAoY2hpbGRyZW4g
JiYgY2hpbGRyZW4ubGVuZ3RoKQotICAgICAgICAgICAgcHJpbnQoY2hpbGRyZW5bY2hpbGRyZW4u
bGVuZ3RoIC0gMV0sIHByZWZpeCwgZGVwdGgpOwotICAgIH0KLQotICAgIFdlYkluc3BlY3Rvci5w
YW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUuX3VwZGF0ZU1vZGlmaWVkTm9kZXMoKTsKLSAgICB2
YXIgdHJlZU91dGxpbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5l
OwotICAgIHByaW50KHJvb3ROb2RlID8gdHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHJvb3RO
b2RlKSA6IHRyZWVPdXRsaW5lLCAiIiwgZGVwdGggfHwgMTAwMDApOwotfTsKLQotSW5zcGVjdG9y
VGVzdC5leHBhbmRFbGVtZW50c1RyZWUgPSBmdW5jdGlvbihjYWxsYmFjaykKLXsKLSAgICBjYWxs
YmFjayA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spOwotCi0gICAgZnVuY3Rpb24g
ZXhwYW5kKHRyZWVJdGVtKQotICAgIHsKLSAgICAgICAgdmFyIGNoaWxkcmVuID0gdHJlZUl0ZW0u
Y2hpbGRyZW47Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBjaGlsZHJlbiAmJiBpIDwgY2hpbGRy
ZW4ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGNoaWxkcmVuW2ldLmV4cGFuZCgpOwotICAg
ICAgICAgICAgZXhwYW5kKGNoaWxkcmVuW2ldKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1
bmN0aW9uIG9uQWxsTm9kZXNBdmFpbGFibGUoKQotICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9y
LnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5fdXBkYXRlTW9kaWZpZWROb2RlcygpOwotICAg
ICAgICBleHBhbmQoV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZSk7Ci0g
ICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgfQotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVs
ZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5maW5kTm9kZShmdW5jdGlvbigpIHsgcmV0dXJu
IGZhbHNlOyB9LCBvbkFsbE5vZGVzQXZhaWxhYmxlKTsKLX07Ci0KLUluc3BlY3RvclRlc3QuZHVt
cERPTUFnZW50VHJlZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBpZiAoIVdlYkluc3BlY3Rvci5kb21B
Z2VudC5fZG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZ1bmN0aW9uIGR1bXAobm9k
ZSwgcHJlZml4LCBzdGFydEluZGV4KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQocHJlZml4ICsgbm9kZS5ub2RlTmFtZSgpICsgIlsiICsgKG5vZGUuaWQgLSBzdGFydElu
ZGV4KSsgIl0iKTsKLSAgICAgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGNoaWxkcmVuICYmIGkgPCBjaGlsZHJlbi5sZW5ndGg7ICsraSkK
LSAgICAgICAgICAgIGR1bXAoY2hpbGRyZW5baV0sIHByZWZpeCArICIgICAgIiwgc3RhcnRJbmRl
eCk7Ci0gICAgfQotICAgIGR1bXAoV2ViSW5zcGVjdG9yLmRvbUFnZW50Ll9kb2N1bWVudCwgIiIs
IFdlYkluc3BlY3Rvci5kb21BZ2VudC5fZG9jdW1lbnQuaWQgLSAxKTsKLX07Ci0KLUluc3BlY3Rv
clRlc3QucmFuZ2VUZXh0ID0gZnVuY3Rpb24ocmFuZ2UpCi17Ci0gICAgaWYgKCFyYW5nZSkKLSAg
ICAgICAgcmV0dXJuICJbdW5kZWZpbmVkLXVuZGVmaW5lZF0iOwotICAgIHJldHVybiAiWyIgKyBy
YW5nZS5zdGFydExpbmUgKyAiOiIgKyByYW5nZS5zdGFydENvbHVtbiArICItIiArIHJhbmdlLmVu
ZExpbmUgKyAiOiIgKyByYW5nZS5lbmRDb2x1bW4gKyAiXSI7Ci19Ci0KLUluc3BlY3RvclRlc3Qu
Z2VuZXJhdGVVbmRvVGVzdCA9IGZ1bmN0aW9uKHRlc3RCb2R5KQotewotICAgIGZ1bmN0aW9uIHJl
c3VsdChuZXh0KQotICAgIHsKLSAgICAgICAgdmFyIHRlc3ROb2RlID0gSW5zcGVjdG9yVGVzdC5l
eHBhbmRlZE5vZGVXaXRoSWQoL2Z1bmN0aW9uXHMoW14oXSopLy5leGVjKHRlc3RCb2R5KVsxXSk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJJbml0aWFsOiIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUodGVzdE5vZGUpOwotCi0gICAgICAgIHRlc3RC
b2R5KHVuZG8pOwotCi0gICAgICAgIGZ1bmN0aW9uIHVuZG8oKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUG9zdC1hY3Rpb246Iik7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUodGVzdE5vZGUpOwotICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmRvbUFnZW50LnVuZG8ocmVkbyk7Ci0gICAgICAgIH0KLQotICAgICAgICBm
dW5jdGlvbiByZWRvKCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIlBvc3QtdW5kbyAoaW5pdGlhbCk6Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBFbGVtZW50c1RyZWUodGVzdE5vZGUpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRv
bUFnZW50LnJlZG8oZG9uZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBkb25lKCkK
LSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlBvc3QtcmVk
byAoYWN0aW9uKToiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJl
ZSh0ZXN0Tm9kZSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAg
cmVzdWx0LnRvU3RyaW5nID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRlc3RC
b2R5LnRvU3RyaW5nKCk7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWNvbnN0IGlu
ZGVudCA9ICIgICAgIjsKLQotSW5zcGVjdG9yVGVzdC5kdW1wUnVsZXNBcnJheSA9IGZ1bmN0aW9u
KHJ1bGVzLCBjdXJyZW50SW5kZW50KQotewotICAgIGlmICghcnVsZXMpCi0gICAgICAgIHJldHVy
bjsKLSAgICBjdXJyZW50SW5kZW50ID0gY3VycmVudEluZGVudCB8fCAiIjsKLSAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgKytpKQotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1
bXBSdWxlKHJ1bGVzW2ldLCBjdXJyZW50SW5kZW50KTsKLX0KLQotSW5zcGVjdG9yVGVzdC5kdW1w
UnVsZU1hdGNoZXNBcnJheSA9IGZ1bmN0aW9uKG1hdGNoZXMsIGN1cnJlbnRJbmRlbnQpCi17Ci0g
ICAgaWYgKCFtYXRjaGVzKQotICAgICAgICByZXR1cm47Ci0gICAgY3VycmVudEluZGVudCA9IGN1
cnJlbnRJbmRlbnQgfHwgIiI7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXRjaGVzLmxlbmd0
aDsgKytpKQotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBSdWxlKG1hdGNoZXNbaV0ucnVsZSwg
Y3VycmVudEluZGVudCk7Ci19Ci0KLUluc3BlY3RvclRlc3QuZHVtcFJ1bGUgPSBmdW5jdGlvbihy
dWxlLCBjdXJyZW50SW5kZW50KQotewotICAgIGZ1bmN0aW9uIHNlbGVjdG9yUmFuZ2UoKQotICAg
IHsKLSAgICAgICAgaWYgKCFydWxlLnNlbGVjdG9yTGlzdCB8fCAhcnVsZS5zZWxlY3Rvckxpc3Qu
cmFuZ2UpCi0gICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgIHZhciByYW5nZSA9IHJ1bGUu
c2VsZWN0b3JMaXN0LnJhbmdlOwotICAgICAgICByZXR1cm4gIiwgIiArIHJhbmdlLnN0YXJ0TGlu
ZSArICI6IiArIHJhbmdlLnN0YXJ0Q29sdW1uICsgIi0iICsgcmFuZ2UuZW5kTGluZSArICI6IiAr
IHJhbmdlLmVuZENvbHVtbjsKLSAgICB9Ci0KLSAgICBjdXJyZW50SW5kZW50ID0gY3VycmVudElu
ZGVudCB8fCAiIjsKLQotICAgIGlmICghcnVsZS50eXBlIHx8IHJ1bGUudHlwZSA9PT0gInN0eWxl
IikgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChjdXJyZW50SW5kZW50ICsgcnVs
ZS5zZWxlY3Rvckxpc3QudGV4dCArICI6IFsiICsgcnVsZS5vcmlnaW4gKyBzZWxlY3RvclJhbmdl
KCkgKyAiXSB7Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFN0eWxlKHJ1bGUuc3R5bGUs
IGN1cnJlbnRJbmRlbnQgKyBpbmRlbnQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dChjdXJyZW50SW5kZW50ICsgIn0iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlm
IChydWxlLnR5cGUgPT09ICJtZWRpYSIpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoY3VycmVudEluZGVudCArICJAbWVkaWEgIiArIHJ1bGUubWVkaWFUZXh0ICsgIiB7Iik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFJ1bGVzQXJyYXkocnVsZS5jaGlsZFJ1bGVzLCBjdXJy
ZW50SW5kZW50ICsgaW5kZW50KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoY3Vy
cmVudEluZGVudCArICJ9Iik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAocnVs
ZS50eXBlID09PSAiaW1wb3J0IikgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChj
dXJyZW50SW5kZW50ICsgIkBpbXBvcnQ6IGhlYWRlcj0iICsgSW5zcGVjdG9yVGVzdC5yYW5nZVRl
eHQocnVsZS5oZWFkZXJSYW5nZSkgKyAiLCBib2R5PSIgKyBJbnNwZWN0b3JUZXN0LnJhbmdlVGV4
dChydWxlLmJvZHlSYW5nZSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHJ1
bGUudHlwZSA9PT0gInBhZ2UiIHx8IHJ1bGUudHlwZSA9PT0gImZvbnQtZmFjZSIpIHsKLSAgICAg
ICAgaWYgKHJ1bGUudHlwZSA9PT0gInBhZ2UiKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoY3VycmVudEluZGVudCArIHJ1bGUuc2VsZWN0b3JMaXN0LnRleHQgKyAiIHsiKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoY3VycmVu
dEluZGVudCArICJAIiArIHJ1bGUudHlwZSArICIgIiArIChydWxlLnNlbGVjdG9yTGlzdC50ZXh0
ID8gcnVsZS5zZWxlY3Rvckxpc3QudGV4dCArICIgIiA6ICIiKSAgKyAieyIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmR1bXBTdHlsZShydWxlLnN0eWxlLCBjdXJyZW50SW5kZW50ICsgaW5kZW50
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoY3VycmVudEluZGVudCArICJ9Iik7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAocnVsZS50eXBlID09PSAiY2hhcnNl
dCIpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkBjaGFyc2V0Iik7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChjdXJyZW50
SW5kZW50ICsgIltVTktOT1dOIFJVTEVdOiBoZWFkZXI9IiArIEluc3BlY3RvclRlc3QucmFuZ2VU
ZXh0KHJ1bGUuaGVhZGVyUmFuZ2UpICsgIiwgYm9keT0iICsgSW5zcGVjdG9yVGVzdC5yYW5nZVRl
eHQocnVsZS5ib2R5UmFuZ2UpKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5kdW1wU3R5bGUgPSBmdW5j
dGlvbihzdHlsZSwgY3VycmVudEluZGVudCkKLXsKLSAgICBjdXJyZW50SW5kZW50ID0gY3VycmVu
dEluZGVudCB8fCAiIjsKLSAgICBpZiAoIXN0eWxlKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KGN1cnJlbnRJbmRlbnQgKyAiW05PIFNUWUxFXSIpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGUuY3NzUHJvcGVydGllcy5sZW5n
dGg7ICsraSkgewotICAgICAgICB2YXIgcHJvcGVydHkgPSBzdHlsZS5jc3NQcm9wZXJ0aWVzW2ld
OwotICAgICAgICBpZiAocHJvcGVydHkuc3RhdHVzICE9PSAiZGlzYWJsZWQiKQotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoY3VycmVudEluZGVudCArICJbJyIgKyBwcm9wZXJ0
eS5uYW1lICsgIic6JyIgKyBwcm9wZXJ0eS52YWx1ZSArICInIiArIChwcm9wZXJ0eS5wcmlvcml0
eSA9PT0gImltcG9ydGFudCIgPyAiIGlzLWltcG9ydGFudCIgOiAiIikgKyAoKCJwYXJzZWRPayIg
aW4gcHJvcGVydHkpID8gIiBub24tcGFyc2VkIiA6ICIiKSArIl0gQCIgKyBJbnNwZWN0b3JUZXN0
LnJhbmdlVGV4dChwcm9wZXJ0eS5yYW5nZSkgKyAiICIgKyAocHJvcGVydHkuc3RhdHVzIHx8ICJz
dHlsZSIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoY3VycmVudEluZGVudCArICJbdGV4dD0nIiArIHByb3BlcnR5LnRleHQgKyAiJ10gIiArIHBy
b3BlcnR5LnN0YXR1cyk7Ci0gICAgfQotfQotCi19OwotCi1mdW5jdGlvbiBkdW1wSW5zcGVjdG9y
SGlnaGxpZ2h0UmVjdHMoKQotewotICAgIHZhciByZWN0TmFtZXMgPSBbIm1hcmdpbiIsICJib3Jk
ZXIiLCAicGFkZGluZyIsICJjb250ZW50Il07Ci0gICAgdmFyIHJlY3RzID0gd2luZG93LmludGVy
bmFscy5pbnNwZWN0b3JIaWdobGlnaHRSZWN0cygpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjdHMubGVuZ3RoOyBpKyspCi0gICAgewotICAgICAgICB2YXIgcmVjdE5hbWUgPSAoaSA8IHJl
Y3ROYW1lcy5sZW5ndGggPyByZWN0TmFtZXNbaV0gOiAidW50aXRsZWQiKTsKLSAgICAgICAgdmFy
IHJlY3QgPSByZWN0cy5pdGVtKGkpOwotICAgICAgICBvdXRwdXQocmVjdE5hbWUgKyAiIHJlY3Qg
aXMgIiArIHJlY3Qud2lkdGggKyAiIHggIiArIHJlY3QuaGVpZ2h0ICsgIiBhdCAoIiArIHJlY3Qu
bGVmdCArICIsICIgKyByZWN0LnRvcCArICIpIik7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBkdW1w
SW5zcGVjdG9ySGlnaGxpZ2h0ZWRSZWdpb25zKCkKLXsKLSAgICB2YXIgaGlnaGxpZ2h0ID0gd2lu
ZG93LmludGVybmFscy5pbnNwZWN0b3JIaWdobGlnaHRPYmplY3QoKTsKLSAgICBpZiAoIWhpZ2hs
aWdodC5sZW5ndGgpIHsKLSAgICAgICAgb3V0cHV0KCJObyBoaWdobGlnaHRlZCBub2RlLiIpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIC8vIFJlZm9ybWF0IHRoZSBzdHJpbmcgdXNpbmcg
SlNPTi5zdHJpbmdpZnkuCi0gICAgdmFyIGpzb24gPSBKU09OLnBhcnNlKGhpZ2hsaWdodCk7Ci0g
ICAgaWYgKCFqc29uLmVsZW1lbnRJbmZvIHx8ICFqc29uLmVsZW1lbnRJbmZvLnJlZ2lvbkZsb3dJ
bmZvKSB7Ci0gICAgICAgIG91dHB1dCgiTm8gaGlnaGxpZ2h0ZWQgcmVnaW9ucy4iKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLSAgICBvdXRwdXQoSlNPTi5zdHJpbmdpZnkoanNvbi5lbGVtZW50
SW5mby5yZWdpb25GbG93SW5mbywgbnVsbCwgNCkpOwotfQotCi1mdW5jdGlvbiBkdW1wSW5zcGVj
dG9ySGlnaGxpZ2h0ZWROb2RlKCkKLXsKLSAgICB2YXIgaGlnaGxpZ2h0ID0gd2luZG93LmludGVy
bmFscy5pbnNwZWN0b3JIaWdobGlnaHRPYmplY3QoKTsKLSAgICBpZiAoIWhpZ2hsaWdodC5sZW5n
dGgpIHsKLSAgICAgICAgb3V0cHV0KCJObyBoaWdobGlnaHRlZCBub2RlLiIpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIC8vIFJlZm9ybWF0IHRoZSBzdHJpbmcgdXNpbmcgSlNPTi5zdHJp
bmdpZnkuCi0gICAgdmFyIGpzb24gPSBKU09OLnBhcnNlKGhpZ2hsaWdodCk7Ci0gICAgaWYgKCFq
c29uKSB7Ci0gICAgICAgIG91dHB1dCgiTm8gaGlnaGxpZ2h0ZWQgbm9kZS4iKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLSAgICBvdXRwdXQoSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgNCkp
OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy1oZWFkZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMtaGVhZGVycy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDNlNjdhMTYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy1oZWFkZXJzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDkgKzAsMCBAQAotVGVzdHMgV2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEkKLQotSFRUUF9Y
X1dFQklOU1BFQ1RPUl9FWFRFTlNJT046IHRlc3QKLUhUVFBfVVNFUl9BR0VOVDogTW96aWxsYS80
LjAgKGNvbXBhdGlibGU7IE1TSUUgNy4wYjsgV2luZG93cyBOVCA2LjApCi1TdGFydGVkIGV4dGVu
c2lvbi4KLVJ1bm5pbmcgdGVzdHMuLi4KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RBZGRI
ZWFkZXJzCi1BbGwgdGVzdHMgZG9uZS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1oZWFkZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWhlYWRlcnMuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZmQyZjEyMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWhlYWRlcnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImV4dGVuc2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90
ZXN0QWRkSGVhZGVycyhuZXh0VGVzdCkKLXsKLSAgICB3ZWJJbnNwZWN0b3IubmV0d29yay5hZGRS
ZXF1ZXN0SGVhZGVycyh7Ci0gICAgICAgICJ4LXdlYmluc3BlY3Rvci1leHRlbnNpb24iOiAidGVz
dCIsCi0gICAgICAgICJ1c2VyLWFnZW50IjogIk1vemlsbGEvNC4wIChjb21wYXRpYmxlOyBNU0lF
IDcuMGI7IFdpbmRvd3MgTlQgNi4wKSIKLSAgICB9KTsKLSAgICBmdW5jdGlvbiBjbGVhblVwSGVh
ZGVycygpCi0gICAgewotICAgICAgICB3ZWJJbnNwZWN0b3IubmV0d29yay5hZGRSZXF1ZXN0SGVh
ZGVycyh7Ci0gICAgICAgICAgICAieC13ZWJpbnNwZWN0b3ItZXh0ZW5zaW9uIjogbnVsbCwKLSAg
ICAgICAgICAgICJ1c2VyLWFnZW50IjogbnVsbAotICAgICAgICB9KTsKLSAgICB9Ci0gICAgd2Vi
SW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJkb1hIUigpIiwgY2FsbGJhY2tBbmROZXh0
VGVzdChjbGVhblVwSGVhZGVycywgbmV4dFRlc3QpKTsKLX0KLQotZnVuY3Rpb24gZG9YSFIoKQot
ewotICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub3BlbigiR0VU
IiwgInJlc291cmNlcy9lY2hvLWhlYWRlcnMucGhwIiwgZmFsc2UpOwotICAgIHhoci5zZW5kKG51
bGwpOwotICAgIC8vIENhbid0IHVzZSBvdXRwdXQoKSBoZXJlIGR1ZSB0byBvdXRwdXQgb3JkZXIg
aW5zdGFiaWxpdHk6IHRoaXMgaXMgaW52b2tlZCBieSBpbnNwZWN0ZWRXaW5kb3cuZXZhbCgpLAot
ICAgIC8vIHdoaWNoIGlzIG5vdCBzZXJpYWxpemVkIGFnYWluc3Qgb3V0cHV0IGZyb20gZXh0ZW5z
aW9uLCBhcyB0aGUgbGF0dGVyIGlzIHBvc3RlZCBhc3luY2hyb25vdXNseSB2aWEKLSAgICAvLyBw
b3N0TWVzc2FnZSB0byBmcm9udC1lbmQgd2luZG93LgotICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJoZWFkZXJzIikudGV4dENvbnRlbnQgKz0geGhyLnJlc3BvbnNlVGV4dDsKLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBXZWJJ
bnNwZWN0b3IgZXh0ZW5zaW9uIEFQSTwvcD4KLTxkaXYgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmUi
IGlkPSJoZWFkZXJzIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtaWZyYW1lLWV2YWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1pZnJh
bWUtZXZhbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4NGMz
NjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy1pZnJhbWUtZXZhbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCww
IEBACi1UZXN0cyBXZWJJbnNwZWN0b3IgZXh0ZW5zaW9uIEFQSQotCi0KLVN0YXJ0ZWQgZXh0ZW5z
aW9uLgotUnVubmluZyB0ZXN0cy4uLgotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEV2YWxJ
bklGcmFtZQotRXZhbHVhdGU6ICIvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb25zLWZyYW1l
LWV2YWwuaHRtbCIgKGV4Y2VwdGlvbjogdW5kZWZpbmVkKQotUlVOTklORyBURVNUOiBleHRlbnNp
b25fdGVzdEV2YWxJbklGcmFtZUJhZE9wdGlvbgotbG9nOiBFeHRlbnNpb24gc2VydmVyIGVycm9y
OiBPYmplY3Qgbm90IGZvdW5kOiBib2d1cwotRXZhbHVhdGU6IHVuZGVmaW5lZCAoZXhjZXB0aW9u
OiBbb2JqZWN0IE9iamVjdF0pCi1BbGwgdGVzdHMgZG9uZS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1pZnJhbWUtZXZhbC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1pZnJhbWUtZXZhbC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjkxYjE1Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtaWZyYW1lLWV2YWwu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImV4dGVu
c2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0RXZhbEluSUZyYW1lKG5leHRUZXN0KSAKLXsKLSAg
ICB2YXIgdXJsID0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2V4
dGVuc2lvbnMtZnJhbWUtZXZhbC5odG1sJzsKLSAgICB2YXIgb3JpZ2luID0gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIKLSAgICB2YXIgb3B0aW9ucyA9IHsKLSAgICAgICAgZnJhbWVVUkw6IHVybAot
ICAgIH07Ci0gICAgdmFyIGxvYyA9ICJ3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUiOwotICAgIHdl
Ykluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbChsb2MsIG9wdGlvbnMsIGNhbGxiYWNrQW5k
TmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZhbCwgbmV4dFRlc3QpKTsKLX0KLQotZnVuY3Rpb24gZXh0
ZW5zaW9uX3Rlc3RFdmFsSW5JRnJhbWVCYWRPcHRpb24obmV4dFRlc3QpIAotewotICAgIHZhciB1
cmwgPSAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvZXh0ZW5zaW9u
cy1mcmFtZS1ldmFsLmh0bWwnOwotICAgIHZhciBvcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIgotICAgIHZhciBvcHRpb25zID0gewotICAgICAgICBmcmFtZVVSTDogdXJsLAotICAgICAg
ICBzY3JpcHRFeGVjdXRpb25Db250ZXh0OiAiYm9ndXMiCi0gICAgfTsKLSAgICB2YXIgbG9jID0g
IndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSI7Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdp
bmRvdy5ldmFsKGxvYywgb3B0aW9ucywgY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNpb25fb25F
dmFsLCBuZXh0VGVzdCkpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fb25FdmFsKHZhbHVlLCBp
c0V4Y2VwdGlvbikKLXsKLSAgICBvdXRwdXQoIkV2YWx1YXRlOiAiICsgSlNPTi5zdHJpbmdpZnko
dmFsdWUpICsgIiAoZXhjZXB0aW9uOiAiICsgaXNFeGNlcHRpb24gKyAiKSIpOwotfQotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIFdlYklu
c3BlY3RvciBleHRlbnNpb24gQVBJPC9wPgotPGlmcmFtZSBzcmM9InJlc291cmNlcy9leHRlbnNp
b25zLWZyYW1lLWV2YWwuaHRtbCI+PC9pZnJhbWU+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWlnbm9yZS1j
YWNoZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zLWlnbm9yZS1jYWNoZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDU5ZWEyZDAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy1pZ25vcmUtY2FjaGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTQgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IERvbmUuCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTogRG9uZS4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBEb25lLgot
VGVzdHMgaWdub3JlQ2FjaGUgZmxhZyBvZiBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZS5yZWxv
YWQoKQotCi1TdGFydGVkIGV4dGVuc2lvbi4KLVJ1bm5pbmcgdGVzdHMuLi4KLVJVTk5JTkcgVEVT
VDogZXh0ZW5zaW9uX3Rlc3RJZ25vcmVDYWNoZQotUGFnZSByZWxvYWRlZC4KLVBhZ2UgcmVsb2Fk
ZWQuCi1hZnRlck5vcm1hbFJlbG9hZCA9PT0gYmVmb3JlUmVsb2FkCi1hZnRlck5vcm1hbFJlbG9h
ZCAhPT0gYWZ0ZXJSZWxvYWRXaXRoSWdub3JlQ2FjaGUKLUFsbCB0ZXN0cyBkb25lLgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWlnbm9y
ZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy1pZ25vcmUtY2FjaGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQ1Zjc4
Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNp
b25zLWlnbm9yZS1jYWNoZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJpbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iZXh0ZW5zaW9ucy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJu
ZXR3b3JrL3Jlc291cmNlcy9yYW5kb20tc2NyaXB0LnBocCI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RJZ25vcmVD
YWNoZShuZXh0VGVzdCkKLXsKLSAgICB2YXIgYmVmb3JlUmVsb2FkOwotICAgIHZhciBhZnRlclJl
bG9hZFdpdGhJZ25vcmVDYWNoZTsKLSAgICB2YXIgYWZ0ZXJOb3JtYWxSZWxvYWQ7Ci0KLSAgICBm
dW5jdGlvbiBvbk5vcm1hbFJlbG9hZCgpCi0gICAgewotICAgICAgICB3ZWJJbnNwZWN0b3IuaW5z
cGVjdGVkV2luZG93LmV2YWwoInJhbmRvbVZhbHVlIiwgZnVuY3Rpb24odmFsdWUpIHsKLSAgICAg
ICAgICAgIGFmdGVyTm9ybWFsUmVsb2FkID0gdmFsdWU7Ci0gICAgICAgICAgICBldmFsdWF0ZU9u
RnJvbnRlbmQoIkluc3BlY3RvclRlc3QucnVuV2hlblBhZ2VMb2FkcyhyZXBseSkiLCBvblJlbG9h
ZFdpdGhJZ25vcmVDYWNoZSk7Ci0gICAgICAgICAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2lu
ZG93LnJlbG9hZCh7IGlnbm9yZUNhY2hlOiB0cnVlIH0pOwotICAgICAgICB9KTsKLSAgICB9Owot
Ci0gICAgZnVuY3Rpb24gb25SZWxvYWRXaXRoSWdub3JlQ2FjaGUoKQotICAgIHsKLSAgICAgICAg
d2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJyYW5kb21WYWx1ZSIsIGZ1bmN0aW9u
KHZhbHVlKSB7Ci0gICAgICAgICAgICBhZnRlclJlbG9hZFdpdGhJZ25vcmVDYWNoZSA9IHZhbHVl
OwotICAgICAgICAgICAgb3V0cHV0KCJhZnRlck5vcm1hbFJlbG9hZCAiICsgKGFmdGVyTm9ybWFs
UmVsb2FkID09PSBiZWZvcmVSZWxvYWQgPyAiPT09IiA6ICIhPT0iICkgKyAiIGJlZm9yZVJlbG9h
ZCIpOwotICAgICAgICAgICAgb3V0cHV0KCJhZnRlck5vcm1hbFJlbG9hZCAiICsgKGFmdGVyTm9y
bWFsUmVsb2FkID09PSBhZnRlclJlbG9hZFdpdGhJZ25vcmVDYWNoZSA/ICI9PT0iIDogIiE9PSIg
KSArICIgYWZ0ZXJSZWxvYWRXaXRoSWdub3JlQ2FjaGUiKTsKLSAgICAgICAgICAgIG5leHRUZXN0
KCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5k
b3cuZXZhbCgicmFuZG9tVmFsdWUiLCBmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICBiZWZvcmVS
ZWxvYWQgPSB2YWx1ZTsKLSAgICAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0
LnJ1bldoZW5QYWdlTG9hZHMocmVwbHkpIiwgb25Ob3JtYWxSZWxvYWQpOwotICAgICAgICB3ZWJJ
bnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LnJlbG9hZCgpOwotICAgIH0pOwotfQotCi08L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIGlnbm9yZUNh
Y2hlIGZsYWcgb2YgV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2UucmVsb2FkKCk8L3A+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zLW5ldHdvcmstcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1uZXR3b3JrLXJlZGlyZWN0LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWMxNDRhMS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLW5ldHdvcmstcmVk
aXJlY3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGVzdHMg
V2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEkgcmV0dXJucyB2YWxpZCBkYXRhIGZvciByZWRpcmVj
dGVkIHJlc291cmNlcwotCi1QYWdlIHJlbG9hZGVkLgotU3RhcnRlZCBleHRlbnNpb24uCi1SdW5u
aW5nIHRlc3RzLi4uCi1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0R2V0UmVkaXJlY3RSZXF1
ZXN0Q29udGVudAotY29udGVudDogbnVsbCwgZW5jb2Rpbmc6IAotUlVOTklORyBURVNUOiBleHRl
bnNpb25fdGVzdFJlZGlyZWN0UmVxdWVzdEZpbmlzaGVkCi1GaW5pc2hlZCByZXF1ZXN0OiBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1yZXN1
bHQucGhwP3N0YXR1cz0zMDIKLUZpbmlzaGVkIHJlcXVlc3Q6IGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5waHA/cmVkaXJlY3Rl
ZD10cnVlCi1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0UmVkaXJlY3RSZXF1ZXN0SW5IQVIK
LVJlcXVlc3RzIGluIEhBUjoKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy1uZXR3b3JrLXJlZGlyZWN0Lmh0bWwKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy1uZXR3b3JrLXRlc3QuanMKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJj
ZXMvcmVkaXJlY3QtbWV0aG9kcy1yZXN1bHQucGhwP3JlZGlyZWN0ZWQ9dHJ1ZQotaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBo
cD9yZWRpcmVjdGVkPXRydWUKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNl
cy9yZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5waHA/c3RhdHVzPTMwMgotaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocD9zdGF0
dXM9MzAyCi1BbGwgdGVzdHMgZG9uZS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1uZXR3b3JrLXJlZGlyZWN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLW5ldHdvcmstcmVkaXJlY3QuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDRlZGNhYy4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLW5ldHdvcmstcmVkaXJl
Y3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJl
eHRlbnNpb25zLW5ldHdvcmstdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZXh0ZW5z
aW9ucy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
LQotZnVuY3Rpb24gZXh0ZW5zaW9uX2RvUmVxdWVzdChmb3JjZSwgY2FsbGJhY2spCi17Ci0gICAg
ZnVuY3Rpb24gY2FsbGJhY2tXcmFwcGVyKHJlcXVlc3QpCi0gICAgewotICAgICAgICB2YXIgbGFz
dENhbGxiYWNrID0gIXJlcXVlc3QgfHwgL1w/cmVkaXJlY3RlZD10cnVlJC8udGVzdChyZXF1ZXN0
LnJlcXVlc3QudXJsKTsKLSAgICAgICAgaWYgKGxhc3RDYWxsYmFjaykKLSAgICAgICAgICAgIHdl
Ykluc3BlY3Rvci5uZXR3b3JrLm9uUmVxdWVzdEZpbmlzaGVkLnJlbW92ZUxpc3RlbmVyKGNhbGxi
YWNrV3JhcHBlcik7Ci0gICAgICAgIGNhbGxiYWNrKHJlcXVlc3QsIGxhc3RDYWxsYmFjayk7Ci0g
ICAgfQotICAgIHdlYkluc3BlY3Rvci5uZXR3b3JrLm9uUmVxdWVzdEZpbmlzaGVkLmFkZExpc3Rl
bmVyKGNhbGxiYWNrV3JhcHBlcik7Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5l
dmFsKCJkb1JlcXVlc3QoIiArIGZvcmNlICsgIikiLCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAg
ICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgIGNhbGxiYWNrV3JhcHBlcihudWxsKTsKLSAgICB9
KTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RHZXRSZWRpcmVjdFJlcXVlc3RDb250ZW50
KG5leHRUZXN0KQotewotICAgIGZ1bmN0aW9uIG9uUmVxdWVzdEZpbmlzaGVkKHJlcXVlc3QsIGxh
c3RDYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGlmICghbGFzdENhbGxiYWNrKQotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBleHRlbnNpb25fZ2V0UmVxdWVzdEJ5VXJsKFsgL3JlZGlyZWN0
LW1ldGhvZHMtcmVzdWx0LnBocFw/c3RhdHVzPTMwMiQvIF0sIGZ1bmN0aW9uKHJlcXVlc3QpIHsK
LSAgICAgICAgICAgIHJlcXVlc3QuZ2V0Q29udGVudChvbkNvbnRlbnQpOwotICAgICAgICB9KTsK
LSAgICB9Ci0gICAgZnVuY3Rpb24gb25Db250ZW50KGNvbnRlbnQsIGVuY29kaW5nKQotICAgIHsK
LSAgICAgICAgb3V0cHV0KCJjb250ZW50OiAiICsgY29udGVudCArICIsIGVuY29kaW5nOiAiICsg
ZW5jb2RpbmcpOwotICAgICAgICBuZXh0VGVzdCgpOwotICAgIH0KLSAgICBleHRlbnNpb25fZG9S
ZXF1ZXN0KGZhbHNlLCBvblJlcXVlc3RGaW5pc2hlZCk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVuc2lv
bl90ZXN0UmVkaXJlY3RSZXF1ZXN0SW5IQVIobmV4dFRlc3QpCi17Ci0gICAgZnVuY3Rpb24gb25S
ZXF1ZXN0RmluaXNoZWQocmVzb3VyY2UsIGxhc3RDYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGlm
IChsYXN0Q2FsbGJhY2spCi0gICAgICAgICAgICB3ZWJJbnNwZWN0b3IubmV0d29yay5nZXRIQVIo
b25IQVIpOwotICAgIH0KLSAgICBmdW5jdGlvbiBvbkhBUihoYXIpCi0gICAgewotICAgICAgICB2
YXIgZW50cmllcyA9IGhhci5lbnRyaWVzOwotICAgICAgICB2YXIgdXJscyA9IFtdOwotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAg
IHZhciB1cmwgPSBlbnRyaWVzW2ldLnJlcXVlc3QudXJsOwotICAgICAgICAgICAgLy8gV29ya2Fy
b3VuZCBmb3IgR1RLIERSVCB0aGF0IHJlcXVlc3RzIGZhdmljb24uaWNvIGFsb25nIHdpdGggdGhl
IHBhZ2UuCi0gICAgICAgICAgICBpZiAoIS9cL2Zhdmljb25cLmljbyQvLnRlc3QodXJsKSkKLSAg
ICAgICAgICAgICAgICB1cmxzLnB1c2godXJsKTsKLSAgICAgICAgfQotICAgICAgICB1cmxzLnNv
cnQoKTsKLSAgICAgICAgb3V0cHV0KCJSZXF1ZXN0cyBpbiBIQVI6XG4iICsgdXJscy5qb2luKCJc
biIpKTsKLSAgICAgICAgbmV4dFRlc3QoKTsKLSAgICB9Ci0gICAgZXh0ZW5zaW9uX2RvUmVxdWVz
dChmYWxzZSwgb25SZXF1ZXN0RmluaXNoZWQpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVz
dFJlZGlyZWN0UmVxdWVzdEZpbmlzaGVkKG5leHRUZXN0KQotewotICAgIGZ1bmN0aW9uIG9uUmVx
dWVzdEZpbmlzaGVkKHJlcXVlc3QsIGxhc3RDYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIG91dHB1
dCgiRmluaXNoZWQgcmVxdWVzdDogIiArIHJlcXVlc3QucmVxdWVzdC51cmwpOwotICAgICAgICBp
ZiAobGFzdENhbGxiYWNrKQotICAgICAgICAgICAgbmV4dFRlc3QoKTsKLSAgICB9Ci0gICAgZXh0
ZW5zaW9uX2RvUmVxdWVzdCh0cnVlLCBvblJlcXVlc3RGaW5pc2hlZCk7Ci19Ci0KLXZhciByZXF1
ZXN0RG9uZSA9IGZhbHNlOwotCi1mdW5jdGlvbiBkb1JlcXVlc3QoZm9yY2UpCi17Ci0gICAgLy8g
T25seSBkbyByZXF1ZXN0IG9uY2UgcGVyIHRlc3Qgc3VpdGUsIHRvIG1ha2UgdGVzdHMgaW5kZXBl
bmRlbnQgb24gZWFjaCBvdGhlci4KLSAgICAvLyBSZXR1cm5zIHRydWUgaWZmIHJlcXVlc3QgaXMg
YWxyZWR5IGRvbmUgKHNvIHRoZSBjYWxsZXIgc2hvdWxkbid0IHdhaXQgZm9yIG9uRmluaXNoZWQp
LgotICAgIGlmIChyZXF1ZXN0RG9uZSAmJiAhZm9yY2UpCi0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIHJlcXVlc3REb25lID0gdHJ1ZTsKLSAgICAvLyBXZSBjYW4ndCB1c2UgWEhSIGhlcmUgLS0g
dGhlIGNvbnRlbnQgZm9yIFhIUnMgaXMgcHVzaGVkIGZyb20gYmFjay1lbmQuCi0gICAgdmFyIGlm
cmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgIGlmcmFtZS5zcmMg
PSAiL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocD9zdGF0dXM9
MzAyIjsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0
LnJlbG9hZFBhZ2UoSW5zcGVjdG9yVGVzdC5ydW5FeHRlbnNpb25UZXN0cyk7Ci19Ci0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgV2ViSW5z
cGVjdG9yIGV4dGVuc2lvbiBBUEkgcmV0dXJucyB2YWxpZCBkYXRhIGZvciByZWRpcmVjdGVkIHJl
c291cmNlczwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtbmV0d29yay10ZXN0LmpzIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1uZXR3b3JrLXRlc3QuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1ZGMyM2QuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1uZXR3b3JrLXRlc3QuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1mdW5jdGlvbiBleHRlbnNpb25fZ2V0UmVxdWVzdEJ5
VXJsKHVybHMsIGNhbGxiYWNrKQotewotICAgIGZ1bmN0aW9uIG9uSEFSKHJlc3BvbnNlKQotICAg
IHsKLSAgICAgICAgdmFyIGVudHJpZXMgPSByZXNwb25zZS5lbnRyaWVzOwotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGZvciAo
dmFyIHVybCA9IDA7IHVybCA8IHVybHMubGVuZ3RoOyArK3VybCkgewotICAgICAgICAgICAgICAg
IGlmICh1cmxzW3VybF0udGVzdChlbnRyaWVzW2ldLnJlcXVlc3QudXJsKSkgewotICAgICAgICAg
ICAgICAgICAgICBjYWxsYmFjayhlbnRyaWVzW2ldKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0K
LSAgICB3ZWJJbnNwZWN0b3IubmV0d29yay5nZXRIQVIob25IQVIpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YWYxZGJhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcworKysgL2Rldi9udWxsCkBA
IC0xLDc0ICswLDAgQEAKLWZ1bmN0aW9uIGV4dGVuc2lvbkZ1bmN0aW9ucygpCi17Ci0gICAgdmFy
IGZ1bmN0aW9ucyA9ICIiOwotCi0gICAgZm9yIChzeW1ib2wgaW4gd2luZG93KSB7Ci0gICAgICAg
IGlmICgvXmV4dGVuc2lvbl8vLmV4ZWMoc3ltYm9sKSAmJiB0eXBlb2Ygd2luZG93W3N5bWJvbF0g
PT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICBmdW5jdGlvbnMgKz0gd2luZG93W3N5bWJvbF0u
dG9TdHJpbmcoKTsKLSAgICB9Ci0gICAgcmV0dXJuIGZ1bmN0aW9uczsKLX0KLQotdmFyIGluaXRp
YWxpemVfRXh0ZW5zaW9uc1Rlc3QgPSBmdW5jdGlvbigpCi17Ci0KLXdpbmRvdy5idWlsZFBsYXRm
b3JtRXh0ZW5zaW9uQVBJID0gZnVuY3Rpb24oZXh0ZW5zaW9uSW5mbykKLXsKLSAgICBmdW5jdGlv
biBwbGF0Zm9ybUV4dGVuc2lvbkFQSShjb3JlQVBJKQotICAgIHsKLSAgICAgICAgd2luZG93Lndl
Ykluc3BlY3RvciA9IGNvcmVBUEk7Ci0gICAgICAgIHdpbmRvdy5fZXh0ZW5zaW9uU2VydmVyRm9y
VGVzdHMgPSBleHRlbnNpb25TZXJ2ZXI7Ci0gICAgfQotICAgIHJldHVybiBwbGF0Zm9ybUV4dGVu
c2lvbkFQSS50b1N0cmluZygpOwotfQotCi1JbnNwZWN0b3JUZXN0Ll9yZXBseVRvRXh0ZW5zaW9u
ID0gZnVuY3Rpb24ocmVxdWVzdElkLCBwb3J0KQotewotICAgIFdlYkluc3BlY3Rvci5leHRlbnNp
b25TZXJ2ZXIuX2Rpc3BhdGNoQ2FsbGJhY2socmVxdWVzdElkLCBwb3J0KTsKLX0KLQotZnVuY3Rp
b24gb25FdmFsdWF0ZShtZXNzYWdlLCBwb3J0KQotewotICAgIHZhciByZXBseSA9IFdlYkluc3Bl
Y3Rvci5leHRlbnNpb25TZXJ2ZXIuX2Rpc3BhdGNoQ2FsbGJhY2suYmluZChXZWJJbnNwZWN0b3Iu
ZXh0ZW5zaW9uU2VydmVyLCBtZXNzYWdlLnJlcXVlc3RJZCwgcG9ydCk7Ci0gICAgdHJ5IHsKLSAg
ICAgICAgZXZhbChtZXNzYWdlLmV4cHJlc3Npb24pOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nOiAiICsg
bWVzc2FnZS5leHByZXNzaW9uICsgIlxuIiArIChlLnN0YWNrIHx8IGUpKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLVdlYkluc3BlY3Rvci5leHRl
bnNpb25TZXJ2ZXIuX3JlZ2lzdGVySGFuZGxlcigiZXZhbHVhdGVGb3JUZXN0SW5Gcm9udEVuZCIs
IG9uRXZhbHVhdGUpOwotCi1JbnNwZWN0b3JUZXN0LnNob3dQYW5lbCA9IGZ1bmN0aW9uKHBhbmVs
SWQpCi17Ci0gICAgaWYgKHBhbmVsSWQgPT09ICJleHRlbnNpb24iKQotICAgICAgICBwYW5lbElk
ID0gV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuX3BhbmVsT3JkZXJbV2ViSW5zcGVjdG9yLmlu
c3BlY3RvclZpZXcuX3BhbmVsT3JkZXIubGVuZ3RoIC0gMV07Ci0gICAgV2ViSW5zcGVjdG9yLnNo
b3dQYW5lbChwYW5lbElkKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5ydW5FeHRlbnNpb25UZXN0cyA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoImxvY2F0aW9uLmhyZWYi
LCAiY29uc29sZSIsIGZhbHNlLCBmdW5jdGlvbihlcnJvciwgcmVzdWx0KSB7Ci0gICAgICAgIGlm
IChlcnJvcikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIHBhZ2VVUkwgPSByZXN1
bHQudmFsdWU7Ci0gICAgICAgIHZhciBleHRlbnNpb25VUkwgPSAoL15odHRwcz86Ly50ZXN0KHBh
Z2VVUkwpID8KLSAgICAgICAgICAgIHBhZ2VVUkwucmVwbGFjZSgvXihodHRwcz86XC9cL1teL10q
XC8pLiokLywiJDEiKSA6Ci0gICAgICAgICAgICBwYWdlVVJMLnJlcGxhY2UoL1wvaW5zcGVjdG9y
XC9leHRlbnNpb25zXC9bXi9dKiQvLCAiL2h0dHAvdGVzdHMiKSkgKwotICAgICAgICAgICAgIi9p
bnNwZWN0b3IvcmVzb3VyY2VzL2V4dGVuc2lvbi1tYWluLmh0bWwiOwotICAgICAgICBXZWJJbnNw
ZWN0b3IuYWRkRXh0ZW5zaW9ucyhbeyBzdGFydFBhZ2U6IGV4dGVuc2lvblVSTCwgbmFtZTogInRl
c3QgZXh0ZW5zaW9uIiwgZXhwb3NlV2ViSW5zcGVjdG9yTmFtZXNwYWNlOiB0cnVlIH1dKTsKLSAg
ICB9KTsKLX0KLQotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fc2hvd1BhbmVsKHBhbmVsSWQsIGNh
bGxiYWNrKQotewotICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5zaG93UGFu
ZWwodW5lc2NhcGUoJyIgKyBlc2NhcGUocGFuZWxJZCkgKyAiJykpOyByZXBseSgpOyIsIGNhbGxi
YWNrKTsKLX0KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5y
dW5FeHRlbnNpb25UZXN0cygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLWRhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLWRhdGEtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTlkODliLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9kYXRhYmFzZS1k
YXRhLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxMDg6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrMQotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEwODogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2sy
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA4OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxs
YmFjazMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDg6IEluc3BlY3RvclRlc3QuSW5kZXhlZERC
X2NhbGxiYWNrNAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwODogSW5zcGVjdG9yVGVzdC5JbmRl
eGVkREJfY2FsbGJhY2s1Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA4OiBJbnNwZWN0b3JUZXN0
LkluZGV4ZWREQl9jYWxsYmFjazYKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDg6IEluc3BlY3Rv
clRlc3QuSW5kZXhlZERCX2NhbGxiYWNrNwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwODogSW5z
cGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2s4Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA4
OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazkKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMDg6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrMTAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAxMDg6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrMTEKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxMDg6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrMTIKLVRl
c3RzIHRoYXQgZGF0YSBpcyBjb3JyZWN0bHkgbG9hZGVkIGJ5IEluZGV4ZWREQk1vZGVsIGZyb20g
SW5kZXhlZERCIG9iamVjdCBzdG9yZSBhbmQgaW5kZXguCi0KLUR1bXBpbmcgdmFsdWVzLCBmcm9t
SW5kZXggPSBmYWxzZSwgc2tpcENvdW50ID0gMCwgcGFnZVNpemUgPSAyLCBpZGJLZXlSYW5nZSA9
IG51bGwKLSAgICBLZXkgPSBrZXlfMDEsIHByaW1hcnlLZXkgPSBrZXlfMDEsIHZhbHVlID0geyJr
ZXkiOiJrZXlfMDEiLCJ2YWx1ZSI6InZhbHVlXzAxIn0KLSAgICBLZXkgPSBrZXlfMDIsIHByaW1h
cnlLZXkgPSBrZXlfMDIsIHZhbHVlID0geyJrZXkiOiJrZXlfMDIiLCJ2YWx1ZSI6InZhbHVlXzAy
In0KLSAgICBoYXNNb3JlID0gdHJ1ZQotRHVtcGluZyB2YWx1ZXMsIGZyb21JbmRleCA9IGZhbHNl
LCBza2lwQ291bnQgPSAyLCBwYWdlU2l6ZSA9IDIsIGlkYktleVJhbmdlID0gbnVsbAotICAgIEtl
eSA9IGtleV8wMywgcHJpbWFyeUtleSA9IGtleV8wMywgdmFsdWUgPSB7ImtleSI6ImtleV8wMyIs
InZhbHVlIjoidmFsdWVfMDMifQotICAgIEtleSA9IGtleV8wNCwgcHJpbWFyeUtleSA9IGtleV8w
NCwgdmFsdWUgPSB7ImtleSI6ImtleV8wNCIsInZhbHVlIjoidmFsdWVfMDQifQotICAgIGhhc01v
cmUgPSB0cnVlCi1EdW1waW5nIHZhbHVlcywgZnJvbUluZGV4ID0gZmFsc2UsIHNraXBDb3VudCA9
IDQsIHBhZ2VTaXplID0gMiwgaWRiS2V5UmFuZ2UgPSBudWxsCi0gICAgS2V5ID0ga2V5XzA1LCBw
cmltYXJ5S2V5ID0ga2V5XzA1LCB2YWx1ZSA9IHsia2V5Ijoia2V5XzA1IiwidmFsdWUiOiJ2YWx1
ZV8wNSJ9Ci0gICAgS2V5ID0ga2V5XzA2LCBwcmltYXJ5S2V5ID0ga2V5XzA2LCB2YWx1ZSA9IHsi
a2V5Ijoia2V5XzA2IiwidmFsdWUiOiJ2YWx1ZV8wNiJ9Ci0gICAgaGFzTW9yZSA9IGZhbHNlCi1E
dW1waW5nIHZhbHVlcywgZnJvbUluZGV4ID0gZmFsc2UsIHNraXBDb3VudCA9IDUsIHBhZ2VTaXpl
ID0gMiwgaWRiS2V5UmFuZ2UgPSBudWxsCi0gICAgS2V5ID0ga2V5XzA2LCBwcmltYXJ5S2V5ID0g
a2V5XzA2LCB2YWx1ZSA9IHsia2V5Ijoia2V5XzA2IiwidmFsdWUiOiJ2YWx1ZV8wNiJ9Ci0gICAg
aGFzTW9yZSA9IGZhbHNlCi1EdW1waW5nIHZhbHVlcywgZnJvbUluZGV4ID0gZmFsc2UsIHNraXBD
b3VudCA9IDYsIHBhZ2VTaXplID0gMiwgaWRiS2V5UmFuZ2UgPSBudWxsCi0gICAgaGFzTW9yZSA9
IGZhbHNlCi1EdW1waW5nIHZhbHVlcywgZnJvbUluZGV4ID0gZmFsc2UsIHNraXBDb3VudCA9IDcs
IHBhZ2VTaXplID0gMiwgaWRiS2V5UmFuZ2UgPSBudWxsCi0gICAgaGFzTW9yZSA9IGZhbHNlCi1E
dW1waW5nIHZhbHVlcywgZnJvbUluZGV4ID0gZmFsc2UsIHNraXBDb3VudCA9IDAsIHBhZ2VTaXpl
ID0gMiwgaWRiS2V5UmFuZ2UgPSB7bG93ZXI6ImtleV8wMiIsbG93ZXJPcGVuOnRydWUsdXBwZXI6
ImtleV8wNSIsdXBwZXJPcGVuOmZhbHNlfQotICAgIEtleSA9IGtleV8wMywgcHJpbWFyeUtleSA9
IGtleV8wMywgdmFsdWUgPSB7ImtleSI6ImtleV8wMyIsInZhbHVlIjoidmFsdWVfMDMifQotICAg
IEtleSA9IGtleV8wNCwgcHJpbWFyeUtleSA9IGtleV8wNCwgdmFsdWUgPSB7ImtleSI6ImtleV8w
NCIsInZhbHVlIjoidmFsdWVfMDQifQotICAgIGhhc01vcmUgPSB0cnVlCi1EdW1waW5nIHZhbHVl
cywgZnJvbUluZGV4ID0gZmFsc2UsIHNraXBDb3VudCA9IDAsIHBhZ2VTaXplID0gMywgaWRiS2V5
UmFuZ2UgPSB7bG93ZXI6ImtleV8wMiIsbG93ZXJPcGVuOnRydWUsdXBwZXI6ImtleV8wNSIsdXBw
ZXJPcGVuOmZhbHNlfQotICAgIEtleSA9IGtleV8wMywgcHJpbWFyeUtleSA9IGtleV8wMywgdmFs
dWUgPSB7ImtleSI6ImtleV8wMyIsInZhbHVlIjoidmFsdWVfMDMifQotICAgIEtleSA9IGtleV8w
NCwgcHJpbWFyeUtleSA9IGtleV8wNCwgdmFsdWUgPSB7ImtleSI6ImtleV8wNCIsInZhbHVlIjoi
dmFsdWVfMDQifQotICAgIEtleSA9IGtleV8wNSwgcHJpbWFyeUtleSA9IGtleV8wNSwgdmFsdWUg
PSB7ImtleSI6ImtleV8wNSIsInZhbHVlIjoidmFsdWVfMDUifQotICAgIGhhc01vcmUgPSBmYWxz
ZQotRHVtcGluZyB2YWx1ZXMsIGZyb21JbmRleCA9IGZhbHNlLCBza2lwQ291bnQgPSAwLCBwYWdl
U2l6ZSA9IDQsIGlkYktleVJhbmdlID0ge2xvd2VyOiJrZXlfMDIiLGxvd2VyT3Blbjp0cnVlLHVw
cGVyOiJrZXlfMDUiLHVwcGVyT3BlbjpmYWxzZX0KLSAgICBLZXkgPSBrZXlfMDMsIHByaW1hcnlL
ZXkgPSBrZXlfMDMsIHZhbHVlID0geyJrZXkiOiJrZXlfMDMiLCJ2YWx1ZSI6InZhbHVlXzAzIn0K
LSAgICBLZXkgPSBrZXlfMDQsIHByaW1hcnlLZXkgPSBrZXlfMDQsIHZhbHVlID0geyJrZXkiOiJr
ZXlfMDQiLCJ2YWx1ZSI6InZhbHVlXzA0In0KLSAgICBLZXkgPSBrZXlfMDUsIHByaW1hcnlLZXkg
PSBrZXlfMDUsIHZhbHVlID0geyJrZXkiOiJrZXlfMDUiLCJ2YWx1ZSI6InZhbHVlXzA1In0KLSAg
ICBoYXNNb3JlID0gZmFsc2UKLUR1bXBpbmcgdmFsdWVzLCBmcm9tSW5kZXggPSBmYWxzZSwgc2tp
cENvdW50ID0gMSwgcGFnZVNpemUgPSAyLCBpZGJLZXlSYW5nZSA9IHtsb3dlcjoia2V5XzAyIixs
b3dlck9wZW46dHJ1ZSx1cHBlcjoia2V5XzA1Iix1cHBlck9wZW46ZmFsc2V9Ci0gICAgS2V5ID0g
a2V5XzA0LCBwcmltYXJ5S2V5ID0ga2V5XzA0LCB2YWx1ZSA9IHsia2V5Ijoia2V5XzA0IiwidmFs
dWUiOiJ2YWx1ZV8wNCJ9Ci0gICAgS2V5ID0ga2V5XzA1LCBwcmltYXJ5S2V5ID0ga2V5XzA1LCB2
YWx1ZSA9IHsia2V5Ijoia2V5XzA1IiwidmFsdWUiOiJ2YWx1ZV8wNSJ9Ci0gICAgaGFzTW9yZSA9
IGZhbHNlCi1EdW1waW5nIHZhbHVlcywgZnJvbUluZGV4ID0gZmFsc2UsIHNraXBDb3VudCA9IDEs
IHBhZ2VTaXplID0gMywgaWRiS2V5UmFuZ2UgPSB7bG93ZXI6ImtleV8wMiIsbG93ZXJPcGVuOnRy
dWUsdXBwZXI6ImtleV8wNSIsdXBwZXJPcGVuOmZhbHNlfQotICAgIEtleSA9IGtleV8wNCwgcHJp
bWFyeUtleSA9IGtleV8wNCwgdmFsdWUgPSB7ImtleSI6ImtleV8wNCIsInZhbHVlIjoidmFsdWVf
MDQifQotICAgIEtleSA9IGtleV8wNSwgcHJpbWFyeUtleSA9IGtleV8wNSwgdmFsdWUgPSB7Imtl
eSI6ImtleV8wNSIsInZhbHVlIjoidmFsdWVfMDUifQotICAgIGhhc01vcmUgPSBmYWxzZQotRHVt
cGluZyB2YWx1ZXMsIGZyb21JbmRleCA9IGZhbHNlLCBza2lwQ291bnQgPSAxLCBwYWdlU2l6ZSA9
IDQsIGlkYktleVJhbmdlID0ge2xvd2VyOiJrZXlfMDIiLGxvd2VyT3Blbjp0cnVlLHVwcGVyOiJr
ZXlfMDUiLHVwcGVyT3BlbjpmYWxzZX0KLSAgICBLZXkgPSBrZXlfMDQsIHByaW1hcnlLZXkgPSBr
ZXlfMDQsIHZhbHVlID0geyJrZXkiOiJrZXlfMDQiLCJ2YWx1ZSI6InZhbHVlXzA0In0KLSAgICBL
ZXkgPSBrZXlfMDUsIHByaW1hcnlLZXkgPSBrZXlfMDUsIHZhbHVlID0geyJrZXkiOiJrZXlfMDUi
LCJ2YWx1ZSI6InZhbHVlXzA1In0KLSAgICBoYXNNb3JlID0gZmFsc2UKLUR1bXBpbmcgdmFsdWVz
LCBmcm9tSW5kZXggPSB0cnVlLCBza2lwQ291bnQgPSAwLCBwYWdlU2l6ZSA9IDIsIGlkYktleVJh
bmdlID0gbnVsbAotICAgIEtleSA9IHZhbHVlXzAxLCBwcmltYXJ5S2V5ID0ga2V5XzAxLCB2YWx1
ZSA9IHsia2V5Ijoia2V5XzAxIiwidmFsdWUiOiJ2YWx1ZV8wMSJ9Ci0gICAgS2V5ID0gdmFsdWVf
MDIsIHByaW1hcnlLZXkgPSBrZXlfMDIsIHZhbHVlID0geyJrZXkiOiJrZXlfMDIiLCJ2YWx1ZSI6
InZhbHVlXzAyIn0KLSAgICBoYXNNb3JlID0gdHJ1ZQotQ2xlYXJlZCBkYXRhIGZyb20gb2JqZWN0
U3RvcmUKLUR1bXBpbmcgdmFsdWVzLCBmcm9tSW5kZXggPSBmYWxzZSwgc2tpcENvdW50ID0gMCwg
cGFnZVNpemUgPSAxMCwgaWRiS2V5UmFuZ2UgPSBudWxsCi0gICAgaGFzTW9yZSA9IGZhbHNlCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9k
YXRhYmFzZS1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRl
eGVkZGIvZGF0YWJhc2UtZGF0YS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
NmExNTIyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
ZGV4ZWRkYi9kYXRhYmFzZS1kYXRhLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMjkgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iaW5kZXhlZGRiLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBJREJLZXlSYW5nZSA9IHdpbmRvdy5JREJL
ZXlSYW5nZSB8fCB3aW5kb3cud2Via2l0SURCS2V5UmFuZ2U7Ci0gICAgdmFyIGluZGV4ZWREQk1v
ZGVsID0gbmV3IFdlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbCgpOwotICAgIHZhciBtYWluRnJh
bWVJZCA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUuaWQ7Ci0gICAg
dmFyIHNlY3VyaXR5T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7Ci0gICAgdmFyIGRh
dGFiYXNlTmFtZSA9ICJ0ZXN0RGF0YWJhc2UiOwotICAgIHZhciBvYmplY3RTdG9yZU5hbWUgPSAi
dGVzdE9iamVjdFN0b3JlIjsKLSAgICB2YXIgaW5kZXhOYW1lID0gInRlc3RJbmRleE5hbWUiOwot
ICAgIHZhciBkYXRhYmFzZUlkID0gbmV3IFdlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5EYXRh
YmFzZUlkKHNlY3VyaXR5T3JpZ2luLCBkYXRhYmFzZU5hbWUpOwotCi0gICAgZnVuY3Rpb24gYWRk
SURCVmFsdWVzKGNvdW50LCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHZhciBpID0gMDsKLSAg
ICAgICAgYWRkVmFsdWVzKCk7Ci0KLSAgICAgICAgZnVuY3Rpb24gYWRkVmFsdWVzKCkKLSAgICAg
ICAgewotICAgICAgICAgICAgaWYgKGkgPT0gY291bnQpIHsKLSAgICAgICAgICAgICAgICBjYWxs
YmFjaygpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICsraTsKLSAgICAgICAgICAgIHZhciBpZCA9IGkgPCAxMCA/ICIwIiArIGkgOiBpOwotICAg
ICAgICAgICAgdmFyIGtleSA9ICJrZXlfIiArIGlkOwotICAgICAgICAgICAgdmFyIHZhbHVlID0g
InZhbHVlXyIgKyBpZDsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkSURCVmFsdWUobWFp
bkZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1lLCB7IGtleToga2V5LCB2YWx1
ZTogdmFsdWUgfSwgIiIsIGFkZFZhbHVlcyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBsb2FkVmFsdWVzQW5kRHVtcChmcm9tSW5kZXgsIGlkYktleVJhbmdlLCBza2lwQ291bnQs
IHBhZ2VTaXplLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHZhciBpZGJLZXlSYW5nZVN0cmlu
ZyA9IGlkYktleVJhbmdlID8gIntsb3dlcjpcIiIgKyBpZGJLZXlSYW5nZS5sb3dlciArICJcIixs
b3dlck9wZW46IiArIGlkYktleVJhbmdlLmxvd2VyT3BlbiArICIsdXBwZXI6XCIiICsgaWRiS2V5
UmFuZ2UudXBwZXIgKyAiXCIsdXBwZXJPcGVuOiIgKyBpZGJLZXlSYW5nZS51cHBlck9wZW4gKyAi
fSIgOiAibnVsbCI7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIHZh
bHVlcywgZnJvbUluZGV4ID0gIiArIGZyb21JbmRleCArICIsIHNraXBDb3VudCA9ICIgKyBza2lw
Q291bnQgKyAiLCBwYWdlU2l6ZSA9ICIgKyBwYWdlU2l6ZSArICIsIGlkYktleVJhbmdlID0gIiAr
IGlkYktleVJhbmdlU3RyaW5nKTsKLSAgICAgICAgaWYgKGZyb21JbmRleCkKLSAgICAgICAgICAg
IGluZGV4ZWREQk1vZGVsLmxvYWRJbmRleERhdGEoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVOYW1l
LCBpbmRleE5hbWUsIGlkYktleVJhbmdlLCBza2lwQ291bnQsIHBhZ2VTaXplLCBpbm5lckNhbGxi
YWNrKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgaW5kZXhlZERCTW9kZWwubG9hZE9iamVj
dFN0b3JlRGF0YShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZU5hbWUsIGlkYktleVJhbmdlLCBza2lw
Q291bnQsIHBhZ2VTaXplLCBpbm5lckNhbGxiYWNrKTsKLQotICAgICAgICBmdW5jdGlvbiBpbm5l
ckNhbGxiYWNrKGVudHJpZXMsIGhhc01vcmUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBp
bmRleCA9IDA7Ci0gICAgICAgICAgICB2YXIgZW50cnk7Ci0gICAgICAgICAgICBkdW1wRW50cmll
cygpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBkdW1wRW50cmllcygpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBlbnRyaWVzLmxlbmd0aCkgewotICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIGhhc01vcmUgPSAiICsg
aGFzTW9yZSk7Ci0gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZW50cnkg
PSBlbnRyaWVzW2luZGV4XTsKLSAgICAgICAgICAgICAgICBlbnRyeS52YWx1ZS5jYWxsRnVuY3Rp
b25KU09OKGR1bXBNZSwgdW5kZWZpbmVkLCBkdW1wZWQuYmluZCh0aGlzKSk7Ci0gICAgICAgICAg
ICAgICAgKytpbmRleDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZHVt
cE1lKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gIntcImtleVwiOlwi
IiArIHRoaXMua2V5ICsgIlwiLFwidmFsdWVcIjpcIiIgKyB0aGlzLnZhbHVlICsgIlwifSI7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGR1bXBlZCh2YWx1ZSkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIEtl
eSA9ICIgKyBlbnRyeS5rZXkuZGVzY3JpcHRpb24gKyAiLCBwcmltYXJ5S2V5ID0gIiArIGVudHJ5
LnByaW1hcnlLZXkuZGVzY3JpcHRpb24gKyAiLCB2YWx1ZSA9ICIgKyB2YWx1ZSk7Ci0gICAgICAg
ICAgICAgICAgZHVtcEVudHJpZXMoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0K
LQotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9k
ZWwucHJvdG90eXBlLCAiX3VwZGF0ZU9yaWdpbkRhdGFiYXNlTmFtZXMiLCBmaWxsRGF0YWJhc2Us
IGZhbHNlKTsKLQotICAgIGZ1bmN0aW9uIGZpbGxEYXRhYmFzZSgpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNyZWF0ZURhdGFiYXNlKG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsIHN0
ZXAyKTsKLQotICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY3JlYXRlT2JqZWN0U3RvcmUobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFt
ZSwgb2JqZWN0U3RvcmVOYW1lLCAia2V5IiwgdHJ1ZSwgc3RlcDMpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgZnVuY3Rpb24gc3RlcDMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZU9iamVjdFN0b3JlSW5kZXgobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgb2Jq
ZWN0U3RvcmVOYW1lLCBpbmRleE5hbWUsICJ2YWx1ZSIsIGZhbHNlLCB0cnVlLCBzdGVwNCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGFkZElEQlZhbHVlcyg2LCByZWZyZXNoRGF0YWJhc2VOYW1lcyk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiByZWZyZXNoRGF0YWJhc2VOYW1lcygpCi0gICAgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLnBy
b3RvdHlwZSwgIl91cGRhdGVPcmlnaW5EYXRhYmFzZU5hbWVzIiwgcmVmcmVzaERhdGFiYXNlLCBm
YWxzZSk7Ci0gICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hEYXRhYmFzZU5hbWVzKCk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gcmVmcmVzaERhdGFiYXNlKCkKLSAgICB7Ci0gICAgICAgIGlu
ZGV4ZWREQk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVs
LkV2ZW50VHlwZXMuRGF0YWJhc2VMb2FkZWQsIHJ1bk9iamVjdFN0b3JlVGVzdHMpOwotICAgICAg
ICBpbmRleGVkREJNb2RlbC5yZWZyZXNoRGF0YWJhc2UoZGF0YWJhc2VJZCk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gcnVuT2JqZWN0U3RvcmVUZXN0cygpCi0gICAgewotICAgICAgICBpbmRleGVk
REJNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5F
dmVudFR5cGVzLkRhdGFiYXNlTG9hZGVkLCBydW5PYmplY3RTdG9yZVRlc3RzKTsKLSAgICAgICAg
bG9hZFZhbHVlc0FuZER1bXAoZmFsc2UsIG51bGwsIDAsIDIsIHN0ZXAyKQotCi0gICAgICAgIGZ1
bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgewotICAgICAgICAgICAgbG9hZFZhbHVlc0FuZER1bXAo
ZmFsc2UsIG51bGwsIDIsIDIsIHN0ZXAzKQotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24g
c3RlcDMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBsb2FkVmFsdWVzQW5kRHVtcChmYWxzZSwg
bnVsbCwgNCwgMiwgc3RlcDQpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDQo
KQotICAgICAgICB7Ci0gICAgICAgICAgICBsb2FkVmFsdWVzQW5kRHVtcChmYWxzZSwgbnVsbCwg
NSwgMiwgc3RlcDUpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDUoKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBsb2FkVmFsdWVzQW5kRHVtcChmYWxzZSwgbnVsbCwgNiwgMiwg
c3RlcDYpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDYoKQotICAgICAgICB7
Ci0gICAgICAgICAgICBsb2FkVmFsdWVzQW5kRHVtcChmYWxzZSwgbnVsbCwgNywgMiwgc3RlcDcp
OwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDcoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBsb2FkVmFsdWVzQW5kRHVtcChmYWxzZSwgSURCS2V5UmFuZ2UuYm91bmQoImtleV8w
MiIsICJrZXlfMDUiLCB0cnVlLCBmYWxzZSksIDAsIDIsIHN0ZXA4KTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGZ1bmN0aW9uIHN0ZXA4KCkKLSAgICAgICAgewotICAgICAgICAgICAgbG9hZFZhbHVl
c0FuZER1bXAoZmFsc2UsIElEQktleVJhbmdlLmJvdW5kKCJrZXlfMDIiLCAia2V5XzA1IiwgdHJ1
ZSwgZmFsc2UpLCAwLCAzLCBzdGVwOSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBz
dGVwOSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGxvYWRWYWx1ZXNBbmREdW1wKGZhbHNlLCBJ
REJLZXlSYW5nZS5ib3VuZCgia2V5XzAyIiwgImtleV8wNSIsIHRydWUsIGZhbHNlKSwgMCwgNCwg
c3RlcDEwKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHN0ZXAxMCgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGxvYWRWYWx1ZXNBbmREdW1wKGZhbHNlLCBJREJLZXlSYW5nZS5ib3Vu
ZCgia2V5XzAyIiwgImtleV8wNSIsIHRydWUsIGZhbHNlKSwgMSwgMiwgc3RlcDExKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHN0ZXAxMSgpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGxvYWRWYWx1ZXNBbmREdW1wKGZhbHNlLCBJREJLZXlSYW5nZS5ib3VuZCgia2V5XzAyIiwgImtl
eV8wNSIsIHRydWUsIGZhbHNlKSwgMSwgMywgc3RlcDEyKTsKLSAgICAgICAgfQotCi0gICAgICAg
IGZ1bmN0aW9uIHN0ZXAxMigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGxvYWRWYWx1ZXNBbmRE
dW1wKGZhbHNlLCBJREJLZXlSYW5nZS5ib3VuZCgia2V5XzAyIiwgImtleV8wNSIsIHRydWUsIGZh
bHNlKSwgMSwgNCwgc3RlcDEzKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHN0ZXAx
MygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJ1bkluZGV4VGVzdHMoKTsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1bkluZGV4VGVzdHMoKQotICAgIHsKLSAgICAgICAgbG9h
ZFZhbHVlc0FuZER1bXAodHJ1ZSwgbnVsbCwgMCwgMiwgc3RlcDIpCi0KLSAgICAgICAgZnVuY3Rp
b24gc3RlcDIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBydW5DbGVhclRlc3RzKCk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5DbGVhclRlc3RzKCkKLSAgICB7Ci0gICAg
ICAgIGluZGV4ZWREQk1vZGVsLmNsZWFyT2JqZWN0U3RvcmUoZGF0YWJhc2VJZCwgb2JqZWN0U3Rv
cmVOYW1lLCBzdGVwMSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDbGVhcmVk
IGRhdGEgZnJvbSBvYmplY3RTdG9yZSIpOwotCi0gICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkgewot
ICAgICAgICAgICAgaW5kZXhlZERCTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
SW5kZXhlZERCTW9kZWwuRXZlbnRUeXBlcy5EYXRhYmFzZUxvYWRlZCwgc3RlcDIpOwotICAgICAg
ICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFiYXNlKGRhdGFiYXNlSWQpOwotICAgICAg
ICB9Ci0gICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkgewotICAgICAgICAgICAgaW5kZXhlZERCTW9k
ZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwuRXZlbnRU
eXBlcy5EYXRhYmFzZUxvYWRlZCwgc3RlcDIpOwotICAgICAgICAgICAgbG9hZFZhbHVlc0FuZER1
bXAoZmFsc2UsIG51bGwsIDAsIDEwLCBzdGVwMyk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5j
dGlvbiBzdGVwMygpIHsKLSAgICAgICAgICAgIGRlbGV0ZURhdGFiYXNlKCk7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkZWxldGVEYXRhYmFzZSgpIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5kZWxldGVPYmplY3RTdG9yZUluZGV4KG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUs
IG9iamVjdFN0b3JlTmFtZSwgaW5kZXhOYW1lLCBzdGVwMik7Ci0KLSAgICAgICAgZnVuY3Rpb24g
c3RlcDIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmRlbGV0ZU9iamVj
dFN0b3JlKG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwgc3RlcDMp
OwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmRlbGV0ZURhdGFiYXNlKG1haW5GcmFtZUlkLCBkYXRhYmFz
ZU5hbWUsIHN0ZXA0KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAg
ICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAg
ICAgfQotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotPHA+VGVzdHMgdGhhdCBkYXRhIGlzIGNvcnJlY3RseSBsb2FkZWQgYnkgSW5kZXhlZERC
TW9kZWwgZnJvbSBJbmRleGVkREIgb2JqZWN0IHN0b3JlIGFuZCBpbmRleC48L3A+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bmRleGVkZGIvZGF0YWJhc2UtbmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLW5hbWVzLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODA3OTZkMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZXMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDEwODogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2sxCi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTA4OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazIKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxMDg6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrMwotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEwODogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2s0
Ci1UZXN0cyB0aGF0IGRhdGFiYXNlIG5hbWVzIGFyZSBjb3JyZWN0bHkgbG9hZGVkIGFuZCBzYXZl
ZCBpbiBJbmRleGVkREJNb2RlbC4KLQotRHVtcGluZyBkYXRhYmFzZSBuYW1lczoKLQotRHVtcGlu
ZyBkYXRhYmFzZSBuYW1lczoKLSAgICB0ZXN0RGF0YWJhc2UxCi0KLUR1bXBpbmcgZGF0YWJhc2Ug
bmFtZXM6Ci0gICAgdGVzdERhdGFiYXNlMQotICAgIHRlc3REYXRhYmFzZTIKLQotRHVtcGluZyBk
YXRhYmFzZSBuYW1lczoKLSAgICB0ZXN0RGF0YWJhc2UxCi0KLUR1bXBpbmcgZGF0YWJhc2UgbmFt
ZXM6Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5k
ZXhlZGRiL2RhdGFiYXNlLW5hbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDE0M2Y3My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDgzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImluZGV4ZWRkYi10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgaW5kZXhlZERCTW9kZWwg
PSBuZXcgV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsKCk7Ci0gICAgdmFyIG1haW5GcmFtZUlk
ID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZS5pZDsKLQotICAgIGZ1
bmN0aW9uIGR1bXBEYXRhYmFzZU5hbWVzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJEdW1waW5nIGRhdGFiYXNlIG5hbWVzOiIpOwotICAgICAgICB2YXIgc2VjdXJp
dHlPcmlnaW5zID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLnNlY3VyaXR5T3JpZ2lu
cygpOwotICAgICAgICB2YXIgc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbnNbMF07Ci0g
ICAgICAgIHZhciBuYW1lcyA9IGluZGV4ZWREQk1vZGVsLl9kYXRhYmFzZU5hbWVzQnlTZWN1cml0
eU9yaWdpbltzZWN1cml0eU9yaWdpbl07Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFt
ZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAg
ICIgKyBuYW1lc1tpXSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLSAg
ICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWRE
Qk1vZGVsLnByb3RvdHlwZSwgIl91cGRhdGVPcmlnaW5EYXRhYmFzZU5hbWVzIiwgc3RlcDIsIGZh
bHNlKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIGR1bXBEYXRhYmFz
ZU5hbWVzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlRGF0YWJhc2UobWFpbkZyYW1l
SWQsICJ0ZXN0RGF0YWJhc2UxIiwgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAz
KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3Iu
SW5kZXhlZERCTW9kZWwucHJvdG90eXBlLCAiX3VwZGF0ZU9yaWdpbkRhdGFiYXNlTmFtZXMiLCBz
dGVwNCwgZmFsc2UpOwotICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZyZXNoRGF0YWJhc2VOYW1l
cygpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICB7Ci0gICAgICAgIGR1bXBE
YXRhYmFzZU5hbWVzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlRGF0YWJhc2UobWFp
bkZyYW1lSWQsICJ0ZXN0RGF0YWJhc2UyIiwgc3RlcDUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNw
ZWN0b3IuSW5kZXhlZERCTW9kZWwucHJvdG90eXBlLCAiX3VwZGF0ZU9yaWdpbkRhdGFiYXNlTmFt
ZXMiLCBzdGVwNiwgZmFsc2UpOwotICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZyZXNoRGF0YWJh
c2VOYW1lcygpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA2KCkKLSAgICB7Ci0gICAgICAg
IGR1bXBEYXRhYmFzZU5hbWVzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZGVsZXRlRGF0YWJh
c2UobWFpbkZyYW1lSWQsICJ0ZXN0RGF0YWJhc2UyIiwgc3RlcDcpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXA3KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihX
ZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwucHJvdG90eXBlLCAiX3VwZGF0ZU9yaWdpbkRhdGFi
YXNlTmFtZXMiLCBzdGVwOCwgZmFsc2UpOwotICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZyZXNo
RGF0YWJhc2VOYW1lcygpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA4KCkKLSAgICB7Ci0g
ICAgICAgIGR1bXBEYXRhYmFzZU5hbWVzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZGVsZXRl
RGF0YWJhc2UobWFpbkZyYW1lSWQsICJ0ZXN0RGF0YWJhc2UxIiwgc3RlcDkpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHN0ZXA5KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25p
ZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwucHJvdG90eXBlLCAiX3VwZGF0ZU9yaWdp
bkRhdGFiYXNlTmFtZXMiLCBzdGVwMTAsIGZhbHNlKTsKLSAgICAgICAgaW5kZXhlZERCTW9kZWwu
cmVmcmVzaERhdGFiYXNlTmFtZXMoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMTAoKQot
ICAgIHsKLSAgICAgICAgZHVtcERhdGFiYXNlTmFtZXMoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQgZGF0YWJhc2UgbmFtZXMgYXJlIGNvcnJl
Y3RseSBsb2FkZWQgYW5kIHNhdmVkIGluIEluZGV4ZWREQk1vZGVsLjwvcD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4
ZWRkYi9kYXRhYmFzZS1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLXN0cnVjdHVyZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmNmE0ODYuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLXN0cnVjdHVy
ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMjMgKzAsMCBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEwODogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2sxCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTA4OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazIK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDg6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxi
YWNrMwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwODogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJf
Y2FsbGJhY2s0Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA4OiBJbnNwZWN0b3JUZXN0LkluZGV4
ZWREQl9jYWxsYmFjazUKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDg6IEluc3BlY3RvclRlc3Qu
SW5kZXhlZERCX2NhbGxiYWNrNgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwODogSW5zcGVjdG9y
VGVzdC5JbmRleGVkREJfY2FsbGJhY2s3Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA4OiBJbnNw
ZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazgKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDg6
IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrOQotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDEwODogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2sxMAotVGVzdHMgdGhhdCBkYXRh
YmFzZSBuYW1lcyBhcmUgY29ycmVjdGx5IGxvYWRlZCBhbmQgc2F2ZWQgaW4gSW5kZXhlZERCTW9k
ZWwuCi0KLUR1bXBpbmcgZGF0YWJhc2U6Ci1EdW1waW5nIGRhdGFiYXNlOgotdGVzdERhdGFiYXNl
MQotICAgIGludFZlcnNpb246IDEKLSAgICBvYmplY3RTdG9yZXM6Ci0KLUR1bXBpbmcgZGF0YWJh
c2U6Ci10ZXN0RGF0YWJhc2UxCi0gICAgaW50VmVyc2lvbjogMgotICAgIG9iamVjdFN0b3JlczoK
LSAgICB0ZXN0T2JqZWN0U3RvcmUxCi0gICAgICAgIGtleVBhdGg6ICJ0ZXN0LmtleS5wYXRoIgot
ICAgICAgICBhdXRvSW5jcmVtZW50OiB0cnVlCi0gICAgICAgIGluZGV4ZXM6IAotCi1EdW1waW5n
IGRhdGFiYXNlOgotdGVzdERhdGFiYXNlMQotICAgIGludFZlcnNpb246IDMKLSAgICBvYmplY3RT
dG9yZXM6Ci0gICAgdGVzdE9iamVjdFN0b3JlMQotICAgICAgICBrZXlQYXRoOiAidGVzdC5rZXku
cGF0aCIKLSAgICAgICAgYXV0b0luY3JlbWVudDogdHJ1ZQotICAgICAgICBpbmRleGVzOiAKLSAg
ICB0ZXN0T2JqZWN0U3RvcmUyCi0gICAgICAgIGtleVBhdGg6IG51bGwKLSAgICAgICAgYXV0b0lu
Y3JlbWVudDogZmFsc2UKLSAgICAgICAgaW5kZXhlczogCi0KLUR1bXBpbmcgZGF0YWJhc2U6Ci10
ZXN0RGF0YWJhc2UxCi0gICAgaW50VmVyc2lvbjogNAotICAgIG9iamVjdFN0b3JlczoKLSAgICB0
ZXN0T2JqZWN0U3RvcmUxCi0gICAgICAgIGtleVBhdGg6ICJ0ZXN0LmtleS5wYXRoIgotICAgICAg
ICBhdXRvSW5jcmVtZW50OiB0cnVlCi0gICAgICAgIGluZGV4ZXM6IAotICAgIHRlc3RPYmplY3RT
dG9yZTIKLSAgICAgICAga2V5UGF0aDogbnVsbAotICAgICAgICBhdXRvSW5jcmVtZW50OiBmYWxz
ZQotICAgICAgICBpbmRleGVzOiAKLSAgICAgICAgdGVzdEluZGV4TmFtZTEKLSAgICAgICAgICAg
IGtleVBhdGg6ICIiCi0gICAgICAgICAgICB1bmlxdWU6IGZhbHNlCi0gICAgICAgICAgICBtdWx0
aUVudHJ5OiB0cnVlCi0KLUR1bXBpbmcgZGF0YWJhc2U6Ci10ZXN0RGF0YWJhc2UxCi0gICAgaW50
VmVyc2lvbjogNQotICAgIG9iamVjdFN0b3JlczoKLSAgICB0ZXN0T2JqZWN0U3RvcmUxCi0gICAg
ICAgIGtleVBhdGg6ICJ0ZXN0LmtleS5wYXRoIgotICAgICAgICBhdXRvSW5jcmVtZW50OiB0cnVl
Ci0gICAgICAgIGluZGV4ZXM6IAotICAgIHRlc3RPYmplY3RTdG9yZTIKLSAgICAgICAga2V5UGF0
aDogbnVsbAotICAgICAgICBhdXRvSW5jcmVtZW50OiBmYWxzZQotICAgICAgICBpbmRleGVzOiAK
LSAgICAgICAgdGVzdEluZGV4TmFtZTEKLSAgICAgICAgICAgIGtleVBhdGg6ICIiCi0gICAgICAg
ICAgICB1bmlxdWU6IGZhbHNlCi0gICAgICAgICAgICBtdWx0aUVudHJ5OiB0cnVlCi0gICAgICAg
IHRlc3RJbmRleE5hbWUyCi0gICAgICAgICAgICBrZXlQYXRoOiBbImtleS5wYXRoMSIsImtleS5w
YXRoMiJdCi0gICAgICAgICAgICB1bmlxdWU6IHRydWUKLSAgICAgICAgICAgIG11bHRpRW50cnk6
IGZhbHNlCi0KLUR1bXBpbmcgZGF0YWJhc2U6Ci10ZXN0RGF0YWJhc2UxCi0gICAgaW50VmVyc2lv
bjogNgotICAgIG9iamVjdFN0b3JlczoKLSAgICB0ZXN0T2JqZWN0U3RvcmUxCi0gICAgICAgIGtl
eVBhdGg6ICJ0ZXN0LmtleS5wYXRoIgotICAgICAgICBhdXRvSW5jcmVtZW50OiB0cnVlCi0gICAg
ICAgIGluZGV4ZXM6IAotICAgIHRlc3RPYmplY3RTdG9yZTIKLSAgICAgICAga2V5UGF0aDogbnVs
bAotICAgICAgICBhdXRvSW5jcmVtZW50OiBmYWxzZQotICAgICAgICBpbmRleGVzOiAKLSAgICAg
ICAgdGVzdEluZGV4TmFtZTEKLSAgICAgICAgICAgIGtleVBhdGg6ICIiCi0gICAgICAgICAgICB1
bmlxdWU6IGZhbHNlCi0gICAgICAgICAgICBtdWx0aUVudHJ5OiB0cnVlCi0KLUR1bXBpbmcgZGF0
YWJhc2U6Ci10ZXN0RGF0YWJhc2UxCi0gICAgaW50VmVyc2lvbjogNwotICAgIG9iamVjdFN0b3Jl
czoKLSAgICB0ZXN0T2JqZWN0U3RvcmUxCi0gICAgICAgIGtleVBhdGg6ICJ0ZXN0LmtleS5wYXRo
IgotICAgICAgICBhdXRvSW5jcmVtZW50OiB0cnVlCi0gICAgICAgIGluZGV4ZXM6IAotICAgIHRl
c3RPYmplY3RTdG9yZTIKLSAgICAgICAga2V5UGF0aDogbnVsbAotICAgICAgICBhdXRvSW5jcmVt
ZW50OiBmYWxzZQotICAgICAgICBpbmRleGVzOiAKLQotRHVtcGluZyBkYXRhYmFzZToKLXRlc3RE
YXRhYmFzZTEKLSAgICBpbnRWZXJzaW9uOiA4Ci0gICAgb2JqZWN0U3RvcmVzOgotICAgIHRlc3RP
YmplY3RTdG9yZTEKLSAgICAgICAga2V5UGF0aDogInRlc3Qua2V5LnBhdGgiCi0gICAgICAgIGF1
dG9JbmNyZW1lbnQ6IHRydWUKLSAgICAgICAgaW5kZXhlczogCi0KLUR1bXBpbmcgZGF0YWJhc2U6
Ci10ZXN0RGF0YWJhc2UxCi0gICAgaW50VmVyc2lvbjogOQotICAgIG9iamVjdFN0b3JlczoKLQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIv
ZGF0YWJhc2Utc3RydWN0dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGQ4MjNiZWYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLXN0cnVjdHVyZS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTk4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImluZGV4ZWRkYi10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgaW5kZXhlZERC
TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsKCk7Ci0gICAgdmFyIG1haW5G
cmFtZUlkID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZS5pZDsKLSAg
ICB2YXIgZGF0YWJhc2VOYW1lID0gInRlc3REYXRhYmFzZTEiOwotICAgIHZhciBzZWN1cml0eU9y
aWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOwotICAgIHZhciBkYXRhYmFzZUlkID0gbmV3
IFdlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5EYXRhYmFzZUlkKHNlY3VyaXR5T3JpZ2luLCBk
YXRhYmFzZU5hbWUpOwotCi0gICAgZnVuY3Rpb24gZHVtcERhdGFiYXNlKCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIGRhdGFiYXNlOiIpOwotICAgICAg
ICB2YXIgZGF0YWJhc2UgPSBpbmRleGVkREJNb2RlbC5fZGF0YWJhc2VzLmdldChkYXRhYmFzZUlk
KTsKLSAgICAgICAgaWYgKCFkYXRhYmFzZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZGF0YWJhc2UuZGF0YWJhc2VJZC5uYW1lKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBpbnRWZXJzaW9uOiAiICsgZGF0YWJhc2Uu
aW50VmVyc2lvbik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgb2JqZWN0
U3RvcmVzOiIpOwotICAgICAgICB2YXIgb2JqZWN0U3RvcmVOYW1lcyA9IFtdOwotICAgICAgICBm
b3IgKHZhciBvYmplY3RTdG9yZU5hbWUgaW4gZGF0YWJhc2Uub2JqZWN0U3RvcmVzKQotICAgICAg
ICAgICAgb2JqZWN0U3RvcmVOYW1lcy5wdXNoKG9iamVjdFN0b3JlTmFtZSk7Ci0gICAgICAgIG9i
amVjdFN0b3JlTmFtZXMuc29ydCgpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVj
dFN0b3JlTmFtZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBvYmplY3RTdG9yZSA9
IGRhdGFiYXNlLm9iamVjdFN0b3Jlc1tvYmplY3RTdG9yZU5hbWVzW2ldXTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgIiArIG9iamVjdFN0b3JlLm5hbWUpOwotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAgICAga2V5UGF0aDogIiArIEpT
T04uc3RyaW5naWZ5KG9iamVjdFN0b3JlLmtleVBhdGgpKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCIgICAgICAgIGF1dG9JbmNyZW1lbnQ6ICIgKyBvYmplY3RTdG9yZS5h
dXRvSW5jcmVtZW50KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAg
ICAgIGluZGV4ZXM6ICIpOwotICAgICAgICAgICAgdmFyIGluZGV4TmFtZXMgPSBbXTsKLSAgICAg
ICAgICAgIGZvciAodmFyIGluZGV4TmFtZSBpbiBvYmplY3RTdG9yZS5pbmRleGVzKQotICAgICAg
ICAgICAgICAgIGluZGV4TmFtZXMucHVzaChpbmRleE5hbWUpOwotICAgICAgICAgICAgaW5kZXhO
YW1lcy5zb3J0KCk7Ci0gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGluZGV4TmFtZXMu
bGVuZ3RoOyArK2opIHsKLSAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBvYmplY3RTdG9yZS5p
bmRleGVzW2luZGV4TmFtZXNbal1dOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCIgICAgICAgICIgKyBpbmRleC5uYW1lKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICAgICAga2V5UGF0aDogIiArIEpTT04uc3RyaW5naWZ5
KGluZGV4LmtleVBhdGgpKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiICAgICAgICAgICAgdW5pcXVlOiAiICsgaW5kZXgudW5pcXVlKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICAgICAgbXVsdGlFbnRyeTogIiArIGlu
ZGV4Lm11bHRpRW50cnkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNu
aWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLnByb3RvdHlwZSwgIl91cGRhdGVPcmln
aW5EYXRhYmFzZU5hbWVzIiwgc3RlcDIsIGZhbHNlKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkK
LSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlRGF0YWJhc2UobWFpbkZyYW1lSWQs
IGRhdGFiYXNlTmFtZSwgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhl
ZERCTW9kZWwucHJvdG90eXBlLCAiX3VwZGF0ZU9yaWdpbkRhdGFiYXNlTmFtZXMiLCBzdGVwNCwg
ZmFsc2UpOwotICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZyZXNoRGF0YWJhc2VOYW1lcygpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICB7Ci0gICAgICAgIGR1bXBEYXRhYmFz
ZSgpOwotCi0gICAgICAgIGluZGV4ZWREQk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkluZGV4ZWREQk1vZGVsLkV2ZW50VHlwZXMuRGF0YWJhc2VMb2FkZWQsIHN0ZXA1KTsKLSAg
ICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFiYXNlKGRhdGFiYXNlSWQpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIGluZGV4ZWREQk1vZGVsLnJl
bW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLkV2ZW50VHlwZXMu
RGF0YWJhc2VMb2FkZWQsIHN0ZXA1KTsKLSAgICAgICAgZHVtcERhdGFiYXNlKCk7Ci0KLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVPYmplY3RTdG9yZShtYWluRnJhbWVJZCwgZGF0YWJhc2VO
YW1lLCAidGVzdE9iamVjdFN0b3JlMSIsICJ0ZXN0LmtleS5wYXRoIiwgdHJ1ZSwgc3RlcDYpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA2KCkKLSAgICB7Ci0gICAgICAgIGluZGV4ZWREQk1v
ZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLkV2ZW50VHlw
ZXMuRGF0YWJhc2VMb2FkZWQsIHN0ZXA3KTsKLSAgICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVz
aERhdGFiYXNlKGRhdGFiYXNlSWQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA3KCkKLSAg
ICB7Ci0gICAgICAgIGluZGV4ZWREQk1vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkluZGV4ZWREQk1vZGVsLkV2ZW50VHlwZXMuRGF0YWJhc2VMb2FkZWQsIHN0ZXA3KTsKLSAg
ICAgICAgZHVtcERhdGFiYXNlKCk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVPYmpl
Y3RTdG9yZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lLCAidGVzdE9iamVjdFN0b3JlMiIsIG51
bGwsIGZhbHNlLCBzdGVwOCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDgoKQotICAgIHsK
LSAgICAgICAgaW5kZXhlZERCTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSW5k
ZXhlZERCTW9kZWwuRXZlbnRUeXBlcy5EYXRhYmFzZUxvYWRlZCwgc3RlcDkpOwotICAgICAgICBp
bmRleGVkREJNb2RlbC5yZWZyZXNoRGF0YWJhc2UoZGF0YWJhc2VJZCk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gc3RlcDkoKQotICAgIHsKLSAgICAgICAgaW5kZXhlZERCTW9kZWwucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwuRXZlbnRUeXBlcy5EYXRhYmFz
ZUxvYWRlZCwgc3RlcDkpOwotICAgICAgICBkdW1wRGF0YWJhc2UoKTsKLQotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZU9iamVjdFN0b3JlSW5kZXgobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFt
ZSwgInRlc3RPYmplY3RTdG9yZTIiLCAidGVzdEluZGV4TmFtZTEiLCAiIiwgZmFsc2UsIHRydWUs
IHN0ZXAxMCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDEwKCkKLSAgICB7Ci0gICAgICAg
IGluZGV4ZWREQk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1v
ZGVsLkV2ZW50VHlwZXMuRGF0YWJhc2VMb2FkZWQsIHN0ZXAxMSk7Ci0gICAgICAgIGluZGV4ZWRE
Qk1vZGVsLnJlZnJlc2hEYXRhYmFzZShkYXRhYmFzZUlkKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBzdGVwMTEoKQotICAgIHsKLSAgICAgICAgaW5kZXhlZERCTW9kZWwucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwuRXZlbnRUeXBlcy5EYXRhYmFzZUxvYWRl
ZCwgc3RlcDExKTsKLSAgICAgICAgZHVtcERhdGFiYXNlKCk7Ci0KLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5jcmVhdGVPYmplY3RTdG9yZUluZGV4KG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsICJ0
ZXN0T2JqZWN0U3RvcmUyIiwgInRlc3RJbmRleE5hbWUyIiwgWyJrZXkucGF0aDEiLCAia2V5LnBh
dGgyIl0sIHRydWUsIGZhbHNlLCBzdGVwMTIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAx
MigpCi0gICAgewotICAgICAgICBpbmRleGVkREJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5JbmRleGVkREJNb2RlbC5FdmVudFR5cGVzLkRhdGFiYXNlTG9hZGVkLCBzdGVwMTMp
OwotICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZyZXNoRGF0YWJhc2UoZGF0YWJhc2VJZCk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDEzKCkKLSAgICB7Ci0gICAgICAgIGluZGV4ZWREQk1v
ZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLkV2ZW50
VHlwZXMuRGF0YWJhc2VMb2FkZWQsIHN0ZXAxMyk7Ci0gICAgICAgIGR1bXBEYXRhYmFzZSgpOwot
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZGVsZXRlT2JqZWN0U3RvcmVJbmRleChtYWluRnJhbWVJ
ZCwgZGF0YWJhc2VOYW1lLCAidGVzdE9iamVjdFN0b3JlMiIsICJ0ZXN0SW5kZXhOYW1lMiIsIHN0
ZXAxNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDE0KCkKLSAgICB7Ci0gICAgICAgIGlu
ZGV4ZWREQk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVs
LkV2ZW50VHlwZXMuRGF0YWJhc2VMb2FkZWQsIHN0ZXAxNSk7Ci0gICAgICAgIGluZGV4ZWREQk1v
ZGVsLnJlZnJlc2hEYXRhYmFzZShkYXRhYmFzZUlkKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBz
dGVwMTUoKQotICAgIHsKLSAgICAgICAgaW5kZXhlZERCTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwuRXZlbnRUeXBlcy5EYXRhYmFzZUxvYWRlZCwg
c3RlcDE1KTsKLSAgICAgICAgZHVtcERhdGFiYXNlKCk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5kZWxldGVPYmplY3RTdG9yZUluZGV4KG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsICJ0ZXN0
T2JqZWN0U3RvcmUyIiwgInRlc3RJbmRleE5hbWUxIiwgc3RlcDE2KTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBzdGVwMTYoKQotICAgIHsKLSAgICAgICAgaW5kZXhlZERCTW9kZWwuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwuRXZlbnRUeXBlcy5EYXRhYmFzZUxv
YWRlZCwgc3RlcDE3KTsKLSAgICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFiYXNlKGRh
dGFiYXNlSWQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAxNygpCi0gICAgewotICAgICAg
ICBpbmRleGVkREJNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5JbmRleGVk
REJNb2RlbC5FdmVudFR5cGVzLkRhdGFiYXNlTG9hZGVkLCBzdGVwMTcpOwotICAgICAgICBkdW1w
RGF0YWJhc2UoKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmRlbGV0ZU9iamVjdFN0b3JlKG1h
aW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsICJ0ZXN0T2JqZWN0U3RvcmUyIiwgc3RlcDE4KTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMTgoKQotICAgIHsKLSAgICAgICAgaW5kZXhlZERCTW9k
ZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwuRXZlbnRUeXBl
cy5EYXRhYmFzZUxvYWRlZCwgc3RlcDE5KTsKLSAgICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVz
aERhdGFiYXNlKGRhdGFiYXNlSWQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAxOSgpCi0g
ICAgewotICAgICAgICBpbmRleGVkREJNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5JbmRleGVkREJNb2RlbC5FdmVudFR5cGVzLkRhdGFiYXNlTG9hZGVkLCBzdGVwMTkpOwot
ICAgICAgICBkdW1wRGF0YWJhc2UoKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmRlbGV0ZU9i
amVjdFN0b3JlKG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsICJ0ZXN0T2JqZWN0U3RvcmUxIiwg
c3RlcDIwKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMjAoKQotICAgIHsKLSAgICAgICAg
aW5kZXhlZERCTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9k
ZWwuRXZlbnRUeXBlcy5EYXRhYmFzZUxvYWRlZCwgc3RlcDIxKTsKLSAgICAgICAgaW5kZXhlZERC
TW9kZWwucmVmcmVzaERhdGFiYXNlKGRhdGFiYXNlSWQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHN0ZXAyMSgpCi0gICAgewotICAgICAgICBpbmRleGVkREJNb2RlbC5yZW1vdmVFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5FdmVudFR5cGVzLkRhdGFiYXNlTG9hZGVk
LCBzdGVwMjEpOwotICAgICAgICBkdW1wRGF0YWJhc2UoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5kZWxldGVEYXRhYmFzZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lLCBzdGVwMjIpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBkYXRhYmFzZSBuYW1lcyBhcmUgY29ycmVj
dGx5IGxvYWRlZCBhbmQgc2F2ZWQgaW4gSW5kZXhlZERCTW9kZWwuPC9wPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhl
ZGRiL2luZGV4ZWRkYi10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5kZXhlZGRiL2luZGV4ZWRkYi10ZXN0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4YWE2Nzk2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luZGV4ZWRkYi9pbmRleGVkZGItdGVzdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDI1OSArMCww
IEBACi12YXIgaW5pdGlhbGl6ZV9JbmRleGVkREJUZXN0ID0gZnVuY3Rpb24oKSB7Ci0KLUluc3Bl
Y3RvclRlc3QuZHVtcEluZGV4ZWREQlRyZWUgPSBmdW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIkR1bXBpbmcgSW5kZXhlZERCIHRyZWU6Iik7Ci0gICAgdmFyIGluZGV4
ZWREQlRyZWVFbGVtZW50ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuaW5kZXhlZERC
TGlzdFRyZWVFbGVtZW50OwotICAgIGlmICghaW5kZXhlZERCVHJlZUVsZW1lbnQuY2hpbGRyZW4u
bGVuZ3RoKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgKGVtcHR5KSIp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5kZXhl
ZERCVHJlZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIGRhdGFi
YXNlVHJlZUVsZW1lbnQgPSBpbmRleGVkREJUcmVlRWxlbWVudC5jaGlsZHJlbltpXTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBkYXRhYmFzZTogIiArIGRhdGFiYXNlVHJl
ZUVsZW1lbnQudGl0bGVUZXh0KTsKLSAgICAgICAgaWYgKCFkYXRhYmFzZVRyZWVFbGVtZW50LmNo
aWxkcmVuLmxlbmd0aCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAg
ICAgICAgKG5vIG9iamVjdCBzdG9yZXMpIik7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgfQotICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRhdGFiYXNlVHJlZUVsZW1lbnQuY2hp
bGRyZW4ubGVuZ3RoOyArK2opIHsKLSAgICAgICAgICAgIHZhciBvYmplY3RTdG9yZVRyZWVFbGVt
ZW50ID0gZGF0YWJhc2VUcmVlRWxlbWVudC5jaGlsZHJlbltqXTsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIgICAgICAgIE9iamVjdCBzdG9yZTogIiArIG9iamVjdFN0b3Jl
VHJlZUVsZW1lbnQudGl0bGVUZXh0KTsKLSAgICAgICAgICAgIGlmICghb2JqZWN0U3RvcmVUcmVl
RWxlbWVudC5jaGlsZHJlbi5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiICAgICAgICAgICAgKG5vIGluZGV4ZXMpIik7Ci0gICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8
IG9iamVjdFN0b3JlVHJlZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyArK2opIHsKLSAgICAgICAg
ICAgICAgICB2YXIgaW5kZXhUcmVlRWxlbWVudCA9IG9iamVjdFN0b3JlVHJlZUVsZW1lbnQuY2hp
bGRyZW5bal07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAg
ICAgICAgIEluZGV4OiAiICsgaW5kZXhUcmVlRWxlbWVudC50aXRsZVRleHQpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgfQotfQotCi12YXIgbGFzdENhbGxiYWNrSWQgPSAwOwotdmFy
IGNhbGxiYWNrcyA9IHt9OwotdmFyIGNhbGxiYWNrSWRQcmVmaXggPSAiSW5zcGVjdG9yVGVzdC5J
bmRleGVkREJfY2FsbGJhY2siOwotSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZVdpdGhDYWxsYmFjayA9
IGZ1bmN0aW9uKGZyYW1lSWQsIG1ldGhvZE5hbWUsIHBhcmFtZXRlcnMsIGNhbGxiYWNrKQotewot
ICAgIEluc3BlY3RvclRlc3QuX2luc3RhbGxJbmRleGVkREJTbmlmZmVyKCk7Ci0gICAgdmFyIGNh
bGxiYWNrSWQgPSArK2xhc3RDYWxsYmFja0lkOwotICAgIGNhbGxiYWNrc1tjYWxsYmFja0lkXSA9
IGNhbGxiYWNrOwotICAgIHZhciBwYXJhbWV0ZXJzU3RyaW5nID0gImRpc3BhdGNoQ2FsbGJhY2su
YmluZCh0aGlzLCBcIiIgKyBjYWxsYmFja0lkUHJlZml4ICsgY2FsbGJhY2tJZCArICJcIikiOwot
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyYW1ldGVycy5sZW5ndGg7ICsraSkKLSAgICAgICAg
cGFyYW1ldGVyc1N0cmluZyArPSAiLCAiICsgSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVyc1tpXSk7
Ci0KLSAgICB2YXIgcmVxdWVzdFN0cmluZyA9IG1ldGhvZE5hbWUgKyAiKCIgKyBwYXJhbWV0ZXJz
U3RyaW5nICsgIikiOwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UocmVxdWVzdFN0
cmluZyk7Ci19OwotCi1JbnNwZWN0b3JUZXN0Ll9pbnN0YWxsSW5kZXhlZERCU25pZmZlciA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKGNvbnNvbGVN
ZXNzYWdlT3ZlcnJpZGUsIGZhbHNlKTsKLQotICAgIGZ1bmN0aW9uIGNvbnNvbGVNZXNzYWdlT3Zl
cnJpZGUobXNnKQotICAgIHsKLSAgICAgICAgdmFyIHRleHQgPSBtc2cuX21lc3NhZ2VUZXh0Owot
ICAgICAgICBpZiAoIXRleHQuc3RhcnRzV2l0aChjYWxsYmFja0lkUHJlZml4KSkgewotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihjb25zb2xlTWVzc2FnZU92ZXJy
aWRlLCBmYWxzZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdmFy
IGNhbGxiYWNrSWQgPSB0ZXh0LnN1YnN0cmluZyhjYWxsYmFja0lkUHJlZml4Lmxlbmd0aCk7Ci0g
ICAgICAgIGNhbGxiYWNrc1tjYWxsYmFja0lkXS5jYWxsKCk7Ci0gICAgICAgIGRlbGV0ZSBjYWxs
YmFja3NbY2FsbGJhY2tJZF07Ci0gICAgfQotfTsKLQotSW5zcGVjdG9yVGVzdC5jcmVhdGVEYXRh
YmFzZSA9IGZ1bmN0aW9uKGZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgY2FsbGJhY2spCi17Ci0gICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZVdpdGhDYWxsYmFjayhmcmFtZUlkLCAiY3JlYXRlRGF0YWJh
c2UiLCBbZGF0YWJhc2VOYW1lXSwgY2FsbGJhY2spCi19OwotCi1JbnNwZWN0b3JUZXN0LmRlbGV0
ZURhdGFiYXNlID0gZnVuY3Rpb24oZnJhbWVJZCwgZGF0YWJhc2VOYW1lLCBjYWxsYmFjaykKLXsK
LSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlV2l0aENhbGxiYWNrKGZyYW1lSWQsICJkZWxldGVE
YXRhYmFzZSIsIFtkYXRhYmFzZU5hbWVdLCBjYWxsYmFjaykKLX07Ci0KLUluc3BlY3RvclRlc3Qu
Y3JlYXRlT2JqZWN0U3RvcmUgPSBmdW5jdGlvbihmcmFtZUlkLCBkYXRhYmFzZU5hbWUsIG9iamVj
dFN0b3JlTmFtZSwga2V5UGF0aCwgYXV0b0luY3JlbWVudCwgY2FsbGJhY2spCi17Ci0gICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZVdpdGhDYWxsYmFjayhmcmFtZUlkLCAiY3JlYXRlT2JqZWN0U3Rv
cmUiLCBbZGF0YWJhc2VOYW1lLCBvYmplY3RTdG9yZU5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1l
bnRdLCBjYWxsYmFjaykKLX07Ci0KLUluc3BlY3RvclRlc3QuZGVsZXRlT2JqZWN0U3RvcmUgPSBm
dW5jdGlvbihmcmFtZUlkLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwgY2FsbGJhY2sp
Ci17Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZVdpdGhDYWxsYmFjayhmcmFtZUlkLCAiZGVs
ZXRlT2JqZWN0U3RvcmUiLCBbZGF0YWJhc2VOYW1lLCBvYmplY3RTdG9yZU5hbWVdLCBjYWxsYmFj
aykKLX07Ci0KLUluc3BlY3RvclRlc3QuY3JlYXRlT2JqZWN0U3RvcmVJbmRleCA9IGZ1bmN0aW9u
KGZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1lLCBvYmplY3RTdG9yZUluZGV4
TmFtZSwga2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5LCBjYWxsYmFjaykKLXsKLSAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlV2l0aENhbGxiYWNrKGZyYW1lSWQsICJjcmVhdGVPYmplY3RTdG9y
ZUluZGV4IiwgW2RhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1lLCBvYmplY3RTdG9yZUluZGV4
TmFtZSwga2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5XSwgY2FsbGJhY2spCi19OwotCi1JbnNw
ZWN0b3JUZXN0LmRlbGV0ZU9iamVjdFN0b3JlSW5kZXggPSBmdW5jdGlvbihmcmFtZUlkLCBkYXRh
YmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwgb2JqZWN0U3RvcmVJbmRleE5hbWUsIGNhbGxiYWNr
KQotewotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVXaXRoQ2FsbGJhY2soZnJhbWVJZCwgImRl
bGV0ZU9iamVjdFN0b3JlSW5kZXgiLCBbZGF0YWJhc2VOYW1lLCBvYmplY3RTdG9yZU5hbWUsIG9i
amVjdFN0b3JlSW5kZXhOYW1lXSwgY2FsbGJhY2spCi19OwotCi1JbnNwZWN0b3JUZXN0LmFkZElE
QlZhbHVlID0gZnVuY3Rpb24oZnJhbWVJZCwgZGF0YWJhc2VOYW1lLCBvYmplY3RTdG9yZU5hbWUs
IHZhbHVlLCBrZXksIGNhbGxiYWNrKQotewotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVXaXRo
Q2FsbGJhY2soZnJhbWVJZCwgImFkZElEQlZhbHVlIiwgW2RhdGFiYXNlTmFtZSwgb2JqZWN0U3Rv
cmVOYW1lLCB2YWx1ZSwga2V5XSwgY2FsbGJhY2spCi19OwotCi19OwotCi12YXIgaW5kZXhlZERC
ID0gd2luZG93LmluZGV4ZWRkYiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERCOwotd2luZG93LklE
QlRyYW5zYWN0aW9uID0gd2luZG93LklEQlRyYW5zYWN0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJU
cmFuc2FjdGlvbjsKLQotZnVuY3Rpb24gZGlzcGF0Y2hDYWxsYmFjayhjYWxsYmFja0lkKQotewot
ICAgIGNvbnNvbGUubG9nKGNhbGxiYWNrSWQpOwotfQotCi1mdW5jdGlvbiBvbkluZGV4ZWREQkVy
cm9yKGUpCi17Ci0gICAgY29uc29sZS5lcnJvcigiSW5kZXhlZERCIGVycm9yOiAiICsgZSk7Ci19
Ci0KLWZ1bmN0aW9uIG9uSW5kZXhlZERCQmxvY2tlZChlKQotewotICAgIGNvbnNvbGUuZXJyb3Io
IkluZGV4ZWREQiBibG9ja2VkOiAiICsgZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvV2l0aERhdGFiYXNl
KGRhdGFiYXNlTmFtZSwgY2FsbGJhY2spCi17Ci0gICAgZnVuY3Rpb24gaW5uZXJDYWxsYmFjaygp
Ci0gICAgewotICAgICAgICB2YXIgZGIgPSByZXF1ZXN0LnJlc3VsdDsKLSAgICAgICAgY2FsbGJh
Y2soZGIpOwotICAgIH0KLQotICAgIHZhciByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGF0YWJh
c2VOYW1lKTsKLSAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IG9uSW5kZXhlZERCQmxvY2tlZDsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSBvbkluZGV4ZWREQkVycm9yOwotICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gaW5uZXJDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gZG9XaXRoVmVyc2lvblRyYW5zYWN0
aW9uKGRhdGFiYXNlTmFtZSwgY2FsbGJhY2ssIGNvbW1pdENhbGxiYWNrKQotewotICAgIGRvV2l0
aERhdGFiYXNlKGRhdGFiYXNlTmFtZSwgc3RlcDIpOwotCi0gICAgZnVuY3Rpb24gc3RlcDIoZGIp
Ci0gICAgewotICAgICAgICB2YXIgdmVyc2lvbiA9IGRiLnZlcnNpb247Ci0gICAgICAgIGRiLmNs
b3NlKCk7Ci0gICAgICAgIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYXRhYmFzZU5hbWUsIHZl
cnNpb24gKyAxKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gb25JbmRleGVkREJFcnJvcjsK
LSAgICAgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBvblVwZ3JhZGVOZWVkZWQ7Ci0gICAg
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb25PcGVuZWQ7Ci0KLSAgICAgICAgZnVuY3Rpb24gb25V
cGdyYWRlTmVlZGVkKGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKLSAgICAgICAgICAgIHZhciB0cmFucyA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uOwot
ICAgICAgICAgICAgY2FsbGJhY2soZGIsIHRyYW5zKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1
bmN0aW9uIG9uT3BlbmVkKGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgICAgIGRiLmNsb3NlKCk7Ci0gICAgICAgICAgICBjb21taXRD
YWxsYmFjaygpOwotICAgICAgICB9Ci0gICAgfQotfQotCi1mdW5jdGlvbiBkb1dpdGhSZWFkV3Jp
dGVUcmFuc2FjdGlvbihkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwgY2FsbGJhY2ssIGNv
bW1pdENhbGxiYWNrKQotewotICAgIGRvV2l0aERhdGFiYXNlKGRhdGFiYXNlTmFtZSwgc3RlcDIp
OwotCi0gICAgZnVuY3Rpb24gc3RlcDIoZGIpCi0gICAgewotICAgICAgICB2YXIgdHJhbnNhY3Rp
b24gPSBkYi50cmFuc2FjdGlvbihbb2JqZWN0U3RvcmVOYW1lXSwgJ3JlYWR3cml0ZScpOwotICAg
ICAgICB2YXIgb2JqZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZShvYmplY3RTdG9y
ZU5hbWUpOwotICAgICAgICBjYWxsYmFjayhvYmplY3RTdG9yZSwgaW5uZXJDb21taXRDYWxsYmFj
ayk7Ci0KLSAgICAgICAgZnVuY3Rpb24gaW5uZXJDb21taXRDYWxsYmFjaygpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGRiLmNsb3NlKCk7Ci0gICAgICAgICAgICBjb21taXRDYWxsYmFjaygpOwot
ICAgICAgICB9Ci0gICAgfQotfQotCi1mdW5jdGlvbiBjcmVhdGVEYXRhYmFzZShjYWxsYmFjaywg
ZGF0YWJhc2VOYW1lKQotewotICAgIHZhciByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGF0YWJh
c2VOYW1lKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSBvbkluZGV4ZWREQkVycm9yOwotICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gY2xvc2VEYXRhYmFzZTsKLQotICAgIGZ1bmN0aW9uIGNsb3NlRGF0
YWJhc2UoKQotICAgIHsKLSAgICAgICAgcmVxdWVzdC5yZXN1bHQuY2xvc2UoKTsKLSAgICAgICAg
Y2FsbGJhY2soKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0ZURhdGFiYXNlKGNhbGxiYWNr
LCBkYXRhYmFzZU5hbWUpCi17Ci0gICAgdmFyIHJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoZGF0YWJhc2VOYW1lKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSBvbkluZGV4ZWREQkVy
cm9yOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNy
ZWF0ZU9iamVjdFN0b3JlKGNhbGxiYWNrLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwg
a2V5UGF0aCwgYXV0b0luY3JlbWVudCkKLXsKLSAgICBkb1dpdGhWZXJzaW9uVHJhbnNhY3Rpb24o
ZGF0YWJhc2VOYW1lLCB3aXRoVHJhbnNhY3Rpb25DYWxsYmFjaywgY2FsbGJhY2spOwotCi0gICAg
ZnVuY3Rpb24gd2l0aFRyYW5zYWN0aW9uQ2FsbGJhY2soZGIsIHRyYW5zYWN0aW9uKQotICAgIHsK
LSAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1l
LCB7IGtleVBhdGg6IGtleVBhdGgsIGF1dG9JbmNyZW1lbnQ6IGF1dG9JbmNyZW1lbnQgfSk7Ci0g
ICAgfQotfQotCi1mdW5jdGlvbiBkZWxldGVPYmplY3RTdG9yZShjYWxsYmFjaywgZGF0YWJhc2VO
YW1lLCBvYmplY3RTdG9yZU5hbWUpCi17Ci0gICAgZG9XaXRoVmVyc2lvblRyYW5zYWN0aW9uKGRh
dGFiYXNlTmFtZSwgd2l0aFRyYW5zYWN0aW9uQ2FsbGJhY2ssIGNhbGxiYWNrKTsKLQotICAgIGZ1
bmN0aW9uIHdpdGhUcmFuc2FjdGlvbkNhbGxiYWNrKGRiLCB0cmFuc2FjdGlvbikKLSAgICB7Ci0g
ICAgICAgIHZhciBzdG9yZSA9IGRiLmRlbGV0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSk7
Ci0gICAgfQotfQotCi1mdW5jdGlvbiBjcmVhdGVPYmplY3RTdG9yZUluZGV4KGNhbGxiYWNrLCBk
YXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwgb2JqZWN0U3RvcmVJbmRleE5hbWUsIGtleVBh
dGgsIHVuaXF1ZSwgbXVsdGlFbnRyeSkKLXsKLSAgICBkb1dpdGhWZXJzaW9uVHJhbnNhY3Rpb24o
ZGF0YWJhc2VOYW1lLCB3aXRoVHJhbnNhY3Rpb25DYWxsYmFjaywgY2FsbGJhY2spOwotCi0gICAg
ZnVuY3Rpb24gd2l0aFRyYW5zYWN0aW9uQ2FsbGJhY2soZGIsIHRyYW5zYWN0aW9uKQotICAgIHsK
LSAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUob2JqZWN0
U3RvcmVOYW1lKTsKLSAgICAgICAgb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgob2JqZWN0U3RvcmVJ
bmRleE5hbWUsIGtleVBhdGgsIHsgdW5pcXVlOiB1bmlxdWUsIG11bHRpRW50cnk6IG11bHRpRW50
cnkgfSk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBkZWxldGVPYmplY3RTdG9yZUluZGV4KGNhbGxi
YWNrLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwgb2JqZWN0U3RvcmVJbmRleE5hbWUp
Ci17Ci0gICAgZG9XaXRoVmVyc2lvblRyYW5zYWN0aW9uKGRhdGFiYXNlTmFtZSwgd2l0aFRyYW5z
YWN0aW9uQ2FsbGJhY2ssIGNhbGxiYWNrKTsKLQotICAgIGZ1bmN0aW9uIHdpdGhUcmFuc2FjdGlv
bkNhbGxiYWNrKGRiLCB0cmFuc2FjdGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBvYmplY3RTdG9y
ZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSk7Ci0gICAgICAgIG9i
amVjdFN0b3JlLmRlbGV0ZUluZGV4KG9iamVjdFN0b3JlSW5kZXhOYW1lKTsKLSAgICB9Ci19Ci0K
LWZ1bmN0aW9uIGFkZElEQlZhbHVlKGNhbGxiYWNrLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3Jl
TmFtZSwgdmFsdWUsIGtleSkKLXsKLSAgICBkb1dpdGhSZWFkV3JpdGVUcmFuc2FjdGlvbihkYXRh
YmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwgd2l0aFRyYW5zYWN0aW9uQ2FsbGJhY2ssIGNhbGxi
YWNrKQotCi0gICAgZnVuY3Rpb24gd2l0aFRyYW5zYWN0aW9uQ2FsbGJhY2sob2JqZWN0U3RvcmUs
IGNvbW1pdENhbGxiYWNrKQotICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3Q7Ci0gICAgICAgIGlm
IChrZXkpCi0gICAgICAgICAgICByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKHZhbHVlLCBrZXkp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKHZh
bHVlKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gb25JbmRleGVkREJFcnJvcjsKLSAgICAg
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjb21taXRDYWxsYmFjazsKLSAgICB9Ci19Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9yZXNvdXJj
ZXMtcGFuZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5kZXhlZGRiL3Jlc291cmNlcy1wYW5lbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQzY2FjMWMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5kZXhlZGRiL3Jlc291cmNlcy1wYW5lbC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA4OiBJbnNw
ZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazEKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDg6
IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrMgotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDEwODogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2szCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTA4OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazQKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxMDg6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrNQotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDEwODogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2s2Ci1U
ZXN0cyBJbmRleGVkREIgdHJlZSBlbGVtZW50IG9uIHJlc291cmNlcyBwYW5lbC4KLQotRXhwYW5k
ZWQgSW5kZXhlZERCIHRyZWUgZWxlbWVudC4KLUR1bXBpbmcgSW5kZXhlZERCIHRyZWU6Ci0gICAg
KGVtcHR5KQotQ3JlYXRlZCBkYXRhYmFzZS4KLURhdGFiYXNlIGFkZGVkLgotRGF0YWJhc2UgbG9h
ZGVkLgotRHVtcGluZyBJbmRleGVkREIgdHJlZToKLSAgICBkYXRhYmFzZTogdGVzdERhdGFiYXNl
IC0gaHR0cDovLzEyNy4wLjAuMTo4MDAwCi0gICAgICAgIE9iamVjdCBzdG9yZTogdGVzdE9iamVj
dFN0b3JlCi0gICAgICAgICAgICBJbmRleDogdGVzdEluZGV4TmFtZQotTmF2aWdhdGVkIHRvIGFu
b3RoZXIgc2VjdXJpdHkgb3JpZ2luLgotRGF0YWJhc2UgcmVtb3ZlZC4KLVBhZ2UgcmVsb2FkZWQu
Ci1EdW1waW5nIEluZGV4ZWREQiB0cmVlOgotICAgIChlbXB0eSkKLU5hdmlnYXRlZCBiYWNrLgot
RGF0YWJhc2UgYWRkZWQuCi1EYXRhYmFzZSBsb2FkZWQuCi1QYWdlIHJlbG9hZGVkLgotRHVtcGlu
ZyBJbmRleGVkREIgdHJlZToKLSAgICBkYXRhYmFzZTogdGVzdERhdGFiYXNlIC0gaHR0cDovLzEy
Ny4wLjAuMTo4MDAwCi0gICAgICAgIE9iamVjdCBzdG9yZTogdGVzdE9iamVjdFN0b3JlCi0gICAg
ICAgICAgICBJbmRleDogdGVzdEluZGV4TmFtZQotRGVsZXRlZCBkYXRhYmFzZS4KLURhdGFiYXNl
IHJlbW92ZWQuCi1EdW1waW5nIEluZGV4ZWREQiB0cmVlOgotICAgIChlbXB0eSkKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL3Jlc291cmNl
cy1wYW5lbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRi
L3Jlc291cmNlcy1wYW5lbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTY3
MTUxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4
ZWRkYi9yZXNvdXJjZXMtcGFuZWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyNSArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJpbmRleGVkZGItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIG1haW5GcmFtZUlkID0gV2ViSW5zcGVjdG9y
LnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZS5pZDsKLSAgICB2YXIgaW5kZXhlZERCTW9kZWw7
Ci0gICAgdmFyIHdpdGhvdXRJbmRleGVkREJVUkwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2lu
c3BlY3Rvci9pbmRleGVkZGIvcmVzb3VyY2VzL3dpdGhvdXQtaW5kZXhlZC1kYi5odG1sIjsKLSAg
ICB2YXIgb3JpZ2luYWxVUkwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9pbmRl
eGVkZGIvcmVzb3VyY2VzLXBhbmVsLmh0bWwiOwotICAgIHZhciBkYXRhYmFzZU5hbWUgPSAidGVz
dERhdGFiYXNlIjsKLSAgICB2YXIgb2JqZWN0U3RvcmVOYW1lID0gInRlc3RPYmplY3RTdG9yZSI7
Ci0gICAgdmFyIGluZGV4TmFtZSA9ICJ0ZXN0SW5kZXhOYW1lIjsKLQotICAgIGZ1bmN0aW9uIGNy
ZWF0ZURhdGFiYXNlKGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVh
dGVEYXRhYmFzZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lLCBzdGVwMik7Ci0KLSAgICAgICAg
ZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNy
ZWF0ZU9iamVjdFN0b3JlKG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFt
ZSwgIiIsIGZhbHNlLCBzdGVwMyk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBzdGVw
MygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlT2JqZWN0U3Rv
cmVJbmRleChtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lLCBvYmplY3RTdG9yZU5hbWUsIGluZGV4
TmFtZSwgIiIsIGZhbHNlLCBmYWxzZSwgY2FsbGJhY2spOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gZGVsZXRlRGF0YWJhc2UoY2FsbGJhY2spCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmRlbGV0ZU9iamVjdFN0b3JlSW5kZXgobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFt
ZSwgb2JqZWN0U3RvcmVOYW1lLCBpbmRleE5hbWUsIHN0ZXAyKTsKLQotICAgICAgICBmdW5jdGlv
biBzdGVwMigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZGVsZXRlT2Jq
ZWN0U3RvcmUobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1lLCBzdGVw
Myk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZGVsZXRlRGF0YWJhc2UobWFpbkZyYW1lSWQsIGRhdGFi
YXNlTmFtZSwgY2FsbGJhY2spOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgV2ViSW5zcGVjdG9y
LnNob3dQYW5lbCgicmVzb3VyY2VzIik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkluZGV4ZWREQlRyZWVFbGVtZW50LnByb3RvdHlwZSwgIl9pbmRleGVkREJB
ZGRlZCIsIGluZGV4ZWREQkFkZGVkLCB0cnVlKTsKLSAgICBmdW5jdGlvbiBpbmRleGVkREJBZGRl
ZCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRGF0YWJhc2UgYWRk
ZWQuIik7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rv
ci5JbmRleGVkREJUcmVlRWxlbWVudC5wcm90b3R5cGUsICJfaW5kZXhlZERCUmVtb3ZlZCIsIGlu
ZGV4ZWREQlJlbW92ZWQsIHRydWUpOwotICAgIGZ1bmN0aW9uIGluZGV4ZWREQlJlbW92ZWQoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkRhdGFiYXNlIHJlbW92ZWQu
Iik7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5J
bmRleGVkREJUcmVlRWxlbWVudC5wcm90b3R5cGUsICJfaW5kZXhlZERCTG9hZGVkIiwgaW5kZXhl
ZERCTG9hZGVkLCB0cnVlKTsKLSAgICBmdW5jdGlvbiBpbmRleGVkREJMb2FkZWQoKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkRhdGFiYXNlIGxvYWRlZC4iKTsKLSAg
ICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXhwYW5kZWQgSW5kZXhlZERCIHRy
ZWUgZWxlbWVudC4iKTsKLSAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5pbmRleGVk
REJMaXN0VHJlZUVsZW1lbnQuZXhwYW5kKCk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZm
ZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLnByb3RvdHlwZSwgIl91cGRhdGVPcmlnaW5E
YXRhYmFzZU5hbWVzIiwgaW5kZXhlZERCVHJlZUVsZW1lbnRFeHBhbmRlZCwgZmFsc2UpOwotICAg
IGZ1bmN0aW9uIGluZGV4ZWREQlRyZWVFbGVtZW50RXhwYW5kZWQoKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5kdW1wSW5kZXhlZERCVHJlZSgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiQ3JlYXRlZCBkYXRhYmFzZS4iKTsKLSAgICAgICAgY3JlYXRlRGF0YWJhc2Uo
ZGF0YWJhc2VDcmVhdGVkKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkYXRhYmFzZUNyZWF0ZWQo
KQotICAgIHsKLSAgICAgICAgaW5kZXhlZERCTW9kZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnJl
c291cmNlcy5pbmRleGVkREJMaXN0VHJlZUVsZW1lbnQuX2luZGV4ZWREQk1vZGVsOwotICAgICAg
ICBpbmRleGVkREJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5JbmRleGVkREJN
b2RlbC5FdmVudFR5cGVzLkRhdGFiYXNlTG9hZGVkLCBkYXRhYmFzZUxvYWRlZCk7Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzLmluZGV4ZWREQkxpc3RUcmVlRWxlbWVudC5y
ZWZyZXNoSW5kZXhlZERCKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZGF0YWJhc2VMb2FkZWQo
KQotICAgIHsKLSAgICAgICAgaW5kZXhlZERCTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuSW5kZXhlZERCTW9kZWwuRXZlbnRUeXBlcy5EYXRhYmFzZUxvYWRlZCwgZGF0YWJh
c2VMb2FkZWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBJbmRleGVkREJUcmVlKCk7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJOYXZpZ2F0ZWQgdG8gYW5vdGhlciBzZWN1
cml0eSBvcmlnaW4uIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubmF2aWdhdGUod2l0aG91dElu
ZGV4ZWREQlVSTCwgbmF2aWdhdGVkQXdheSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbmF2aWdh
dGVkQXdheSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBJbmRleGVkREJUcmVl
KCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJOYXZpZ2F0ZWQgYmFjay4iKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5uYXZpZ2F0ZShvcmlnaW5hbFVSTCwgbmF2aWdhdGVkQmFj
ayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbmF2aWdhdGVkQmFjaygpCi0gICAgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmR1bXBJbmRleGVkREJUcmVlKCk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJEZWxldGVkIGRhdGFiYXNlLiIpOwotICAgICAgICBkZWxldGVEYXRhYmFz
ZShkYXRhYmFzZURlbGV0ZWQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGRhdGFiYXNlRGVsZXRl
ZCgpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5pbmRleGVk
REJMaXN0VHJlZUVsZW1lbnQucmVmcmVzaEluZGV4ZWREQigpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLnByb3RvdHlwZSwgIl91
cGRhdGVPcmlnaW5EYXRhYmFzZU5hbWVzIiwgZGF0YWJhc2VOYW1lc0xvYWRlZEFmdGVyRGVsZXRp
bmcsIGZhbHNlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkYXRhYmFzZU5hbWVzTG9hZGVkQWZ0
ZXJEZWxldGluZygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBJbmRleGVkREJU
cmVlKCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzLmluZGV4ZWREQkxp
c3RUcmVlRWxlbWVudC5jb2xsYXBzZSgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci08cD5UZXN0cyBJbmRleGVkREIgdHJlZSBlbGVtZW50IG9uIHJlc291cmNlcyBw
YW5lbC48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvcmVzb3VyY2VzL3dpdGhvdXQtaW5kZXhlZC1kYi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL3Jlc291cmNl
cy93aXRob3V0LWluZGV4ZWQtZGIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGEzNDc4OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bmRleGVkZGIvcmVzb3VyY2VzL3dpdGhvdXQtaW5kZXhlZC1kYi5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTUgKzAsMCBAQAotPGh0bWw+Ci08c2NyaXB0Pgotd2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkKLXsKLSAgICBmdW5jdGlvbiBub3RpZnlGcm9udGVuZCgpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LnBhZ2VMb2FkZWQoKTsKLSAgICB9Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5l
dmFsdWF0ZUluV2ViSW5zcGVjdG9yKDAsICIoIiArIG5vdGlmeUZyb250ZW5kICsgIikoKSIpOwot
fQotPC9zY3JpcHQ+Ci08cD5QYWdlIHdpdGhvdXQgSW5kZXhlZCBEQi48L3A+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0LWVsZW1l
bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dC1lbGVtZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDEy
MDI3OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0LWVsZW1lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1U
ZXN0cyB0aGF0IGluc3BlY3QgZWxlbWVudCBhY3Rpb24gd29ya3MgZm9yIGlmcmFtZSBjaGlsZHJl
biAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODA4KS4KLQotCi1k
aXYjZGl2Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3QtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdC1lbGVtZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwZTZhYzcu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdC1l
bGVtZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJlbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIikudHJlZU91dGxpbmUu
Ci0gICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxp
bmUuRXZlbnRzLlNlbGVjdGVkTm9kZUNoYW5nZWQsIHNlbGVjdGVkTm9kZUNoYW5nZWQsIHRoaXMp
OwotICAgIGZ1bmN0aW9uIHNlbGVjdGVkTm9kZUNoYW5nZWQoZXZlbnQpCi0gICAgewotICAgICAg
ICB2YXIgbm9kZSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmICghbm9kZSkKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICBpZiAobm9kZS5nZXRBdHRyaWJ1dGUoImlkIikgPT0gImRpdiIp
IHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KG5vZGUuYXBwcm9wcmlhdGVT
ZWxlY3RvckZvcigpKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgi
aW5zcGVjdChpZnJhbWVEaXZFbGVtZW50KSIpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHk+Ci08cD4KLVRlc3RzIHRoYXQgaW5zcGVjdCBlbGVtZW50IGFjdGlvbiB3b3JrcyBmb3Ig
aWZyYW1lIGNoaWxkcmVuIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzY4MDgpLgotPC9wPgotCi08aWZyYW1lIHNyYz0icmVzb3VyY2VzL2luc3BlY3QtZWxlbWVudC1p
ZnJhbWUuaHRtbCIgb25sb2FkPSJydW5UZXN0KCkiPjwvaWZyYW1lPgotCi08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
LWlmcmFtZS1mcm9tLWRpZmZlcmVudC1kb21haW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdC1pZnJhbWUtZnJvbS1kaWZmZXJlbnQtZG9tYWlu
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFiNjJiZS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0LWlmcmFt
ZS1mcm9tLWRpZmZlcmVudC1kb21haW4tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogSUZSQU1FIEhPU1Q6IGxvY2FsaG9z
dDo4MDAwCi0KLVRlc3RzIHRoYXQgc3R5bGUgcHJvcGVydGllcyBvZiBlbGVtZW50cyBpbiBpZnJh
bWVzIGxvYWRlZCBmcm9tIGRvbWFpbiBkaWZmZXJlbnQgZnJvbSB0aGUgbWFpbiBkb2N1bWVudCBk
b21haW4gY2FuIGJlIGluc3BlY3RlZC4gU2VlIGJ1ZyAzMTU4Ny4KLQotYmFja2dyb3VuZDogZ3Jl
ZW47Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3QtaWZyYW1lLWZyb20tZGlmZmVyZW50LWRvbWFpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdC1pZnJhbWUtZnJvbS1kaWZmZXJlbnQtZG9tYWluLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NWQ2YjYuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdC1pZnJhbWUtZnJvbS1kaWZmZXJl
bnQtZG9tYWluLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHRpdGxlPkluc3BlY3Qgc3R5bGUgaW4gaWZyYW1lIGZyb20gZGlmZmVyZW50IGRvbWFp
bi48L3RpdGxlPgotPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJlbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXZhciBv
bklGcmFtZUxvYWRDYWxsZWQgPSBmYWxzZTsKLWZ1bmN0aW9uIG9uSUZyYW1lTG9hZCgpCi17Ci0g
ICAgaWYgKG9uSUZyYW1lTG9hZENhbGxlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIG9uSUZyYW1l
TG9hZENhbGxlZCA9IHRydWU7Ci0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpZnJhbWUt
Ym9keSIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIHZh
ciB0cmVlSXRlbSA9IEluc3BlY3RvclRlc3QuZ2V0RWxlbWVudFN0eWxlUHJvcGVydHlUcmVlSXRl
bSgiYmFja2dyb3VuZCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTdHlsZVRyZWVJdGVt
KHRyZWVJdGVtLCAiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0g
ICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxpZnJhbWUgc3JjPSJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9pZnJhbWUtZnJvbS1kaWZm
ZXJlbnQtZG9tYWluLWRhdGEuaHRtbCIgaWQ9InJlY2VpdmVyIiBvbmxvYWQ9Im9uSUZyYW1lTG9h
ZCgpIj48L2lmcmFtZT4KLSAgICA8cD4KLSAgICBUZXN0cyB0aGF0IHN0eWxlIHByb3BlcnRpZXMg
b2YgZWxlbWVudHMgaW4gaWZyYW1lcyBsb2FkZWQgZnJvbSBkb21haW4gZGlmZmVyZW50IGZyb20K
LSAgICB0aGUgbWFpbiBkb2N1bWVudCBkb21haW4gY2FuIGJlIGluc3BlY3RlZC4KLSAgICBTZWUg
PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNTg3Ij5i
dWcgMzE1ODc8L2E+LgotICAgIDwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGJiNzM1OTguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2
MTAgKzAsMCBAQAotdmFyIGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdCA9IGZ1bmN0aW9uKCkgewot
Ci12YXIgcmVzdWx0cyA9IFtdOwotdmFyIHJlc3VsdHNTeW5jaHJvbml6ZWQgPSBmYWxzZTsKLQot
ZnVuY3Rpb24gY29uc29sZU91dHB1dEhvb2sobWVzc2FnZVR5cGUpCi17Ci0gICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQobWVzc2FnZVR5cGUgKyAiOiAiICsgQXJyYXkucHJvdG90eXBlLnNsaWNl
LmNhbGwoYXJndW1lbnRzLCAxKSk7Ci19Ci0KLWNvbnNvbGUubG9nID0gY29uc29sZU91dHB1dEhv
b2suYmluZChJbnNwZWN0b3JUZXN0LCAibG9nIik7Ci1jb25zb2xlLmVycm9yID0gY29uc29sZU91
dHB1dEhvb2suYmluZChJbnNwZWN0b3JUZXN0LCAiZXJyb3IiKTsKLWNvbnNvbGUuaW5mbyA9IGNv
bnNvbGVPdXRwdXRIb29rLmJpbmQoSW5zcGVjdG9yVGVzdCwgImluZm8iKTsKLQotSW5zcGVjdG9y
VGVzdC5PdXRwdXQgPSB7ICAgLy8gb3ZlcnJpZGUgaW4gd2luZG93LmluaXRpYWxpemVfeW91ck5h
bWUKLSAgICB0ZXN0Q29tcGxldGU6IGZ1bmN0aW9uKCkgCi0gICAgewotICAgICAgICBSdW50aW1l
QWdlbnQuZXZhbHVhdGUoImRpZEV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoIiArIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0Q2FsbElkICsgIiwgXCJcIikiLCAidGVzdCIpOwotICAgIH0sCi0K
LSAgICBhZGRSZXN1bHQ6IGZ1bmN0aW9uKHRleHQpIAotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZSgib3V0cHV0KHVuZXNjYXBlKCciICsgZXNjYXBlKHRleHQpICsg
IicpKSIpOwotICAgIH0sCi0gICAgCi0gICAgY2xlYXJSZXN1bHRzOiBmdW5jdGlvbigpIAotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiY2xlYXJPdXRwdXQoKSIp
OwotICAgIH0KLX07Ci0KLUluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0ID0gZnVuY3Rpb24oKQot
ewotICAgIGZ1bmN0aW9uIHRlc3REaXNwYXRjaFF1ZXVlSXNFbXB0eSgpIHsKLSAgICAgICAgaWYg
KCFXZWJJbnNwZWN0b3IuZGlzcGF0Y2hRdWV1ZUlzRW1wdHkoKSkgewotICAgICAgICAgICAgLy8g
V2FpdCBmb3IgdW5wcm9jZXNzZWQgbWVzc2FnZXMuCi0gICAgICAgICAgICBzZXRUaW1lb3V0KHRl
c3REaXNwYXRjaFF1ZXVlSXNFbXB0eSwgMTApOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3QuT3V0cHV0LnRlc3RDb21wbGV0ZSgpOwotICAgIH0K
LSAgICB0ZXN0RGlzcGF0Y2hRdWV1ZUlzRW1wdHkoKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluQ29uc29sZSA9IGZ1bmN0aW9uKGNvZGUsIGNhbGxiYWNrKQotewotICAgIGNhbGxiYWNr
ID0gSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjayk7Ci0KLSAgICBXZWJJbnNwZWN0b3Iu
Y29uc29sZVZpZXcudmlzaWJsZSA9IHRydWU7Ci0gICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3
LnByb21wdC50ZXh0ID0gY29kZTsKLSAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVu
dCgiS2V5Ym9hcmRFdmVudCIpOwotICAgIGV2ZW50LmluaXRLZXlib2FyZEV2ZW50KCJrZXlkb3du
IiwgdHJ1ZSwgdHJ1ZSwgbnVsbCwgIkVudGVyIiwgIiIpOwotICAgIFdlYkluc3BlY3Rvci5jb25z
b2xlVmlldy5wcm9tcHQucHJveHlFbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotICAgIElu
c3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoCi0gICAgICAgIGZ1bmN0aW9uKGNvbW1hbmRS
ZXN1bHQpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKGNvbW1hbmRSZXN1bHQudG9NZXNzYWdlRWxl
bWVudCgpLnRleHRDb250ZW50KTsKLSAgICAgICAgfSk7Ci19Ci0KLUluc3BlY3RvclRlc3QuZXZh
bHVhdGVJbkNvbnNvbGVBbmREdW1wID0gZnVuY3Rpb24oY29kZSwgY2FsbGJhY2spCi17Ci0gICAg
Y2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNrKTsKLQotICAgIGZ1bmN0
aW9uIG15Y2FsbGJhY2sodGV4dCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KGNvZGUgKyAiID0gIiArIHRleHQpOwotICAgICAgICBjYWxsYmFjayh0ZXh0KTsKLSAgICB9
Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZShjb2RlLCBteWNhbGxiYWNrKTsK
LX0KLQotSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSA9IGZ1bmN0aW9uKGNvZGUsIGNhbGxi
YWNrKQotewotICAgIGNhbGxiYWNrID0gSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjayk7
Ci0KLSAgICBmdW5jdGlvbiBteWNhbGxiYWNrKGVycm9yLCByZXN1bHQsIHdhc1Rocm93bikKLSAg
ICB7Ci0gICAgICAgIGlmICghZXJyb3IpCi0gICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0
b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCksIHdhc1Rocm93bik7Ci0gICAgfQot
ICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZShjb2RlLCAiY29uc29sZSIsIGZhbHNlLCBteWNhbGxi
YWNrKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0ID0gZnVu
Y3Rpb24oY29kZSkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1l
b3V0KHVuZXNjYXBlKCciICsgZXNjYXBlKGNvZGUpICsgIicpKSIpOwotfQotCi1JbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCA9IGZ1bmN0aW9uKHRleHQpCi17Ci0gICAgcmVzdWx0cy5wdXNoKHRleHQp
OwotICAgIGlmIChyZXN1bHRzU3luY2hyb25pemVkKQotICAgICAgICBJbnNwZWN0b3JUZXN0Lk91
dHB1dC5hZGRSZXN1bHQodGV4dCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
T3V0cHV0LmNsZWFyUmVzdWx0cygpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3Vs
dHMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lk91dHB1dC5hZGRSZXN1
bHQocmVzdWx0c1tpXSk7Ci0gICAgICAgIHJlc3VsdHNTeW5jaHJvbml6ZWQgPSB0cnVlOwotICAg
IH0KLX0KLQotSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHRzID0gZnVuY3Rpb24odGV4dEFycmF5KQot
ewotICAgIGlmICghdGV4dEFycmF5KQotICAgICAgICByZXR1cm47Ci0gICAgZm9yICh2YXIgaSA9
IDAsIHNpemUgPSB0ZXh0QXJyYXkubGVuZ3RoOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0QXJyYXlbaV0pOwotfQotCi1mdW5jdGlvbiBvbkVycm9y
KGV2ZW50KQotewotICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsIG9uRXJy
b3IpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVbmNhdWdodCBleGNlcHRpb24gaW4g
aW5zcGVjdG9yIGZyb250LWVuZDogIiArIGV2ZW50Lm1lc3NhZ2UgKyAiIFsiICsgZXZlbnQuZmls
ZW5hbWUgKyAiOiIgKyBldmVudC5saW5lbm8gKyAiXSIpOwotICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci19Ci0KLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIG9uRXJy
b3IpOwotCi1JbnNwZWN0b3JUZXN0LmZvcm1hdHRlcnMgPSB7fTsKLQotSW5zcGVjdG9yVGVzdC5m
b3JtYXR0ZXJzLmZvcm1hdEFzVHlwZU5hbWUgPSBmdW5jdGlvbih2YWx1ZSkKLXsKLSAgICByZXR1
cm4gIjwiICsgdHlwZW9mIHZhbHVlICsgIj4iOwotfQotCi1JbnNwZWN0b3JUZXN0LmZvcm1hdHRl
cnMuZm9ybWF0QXNSZWNlbnRUaW1lID0gZnVuY3Rpb24odmFsdWUpCi17Ci0gICAgaWYgKHR5cGVv
ZiB2YWx1ZSAhPT0gIm9iamVjdCIgfHwgISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpKQotICAgICAg
ICByZXR1cm4gSW5zcGVjdG9yVGVzdC5mb3JtYXRBc1R5cGVOYW1lKHZhbHVlKTsKLSAgICB2YXIg
ZGVsdGEgPSBEYXRlLm5vdygpIC0gdmFsdWU7Ci0gICAgcmV0dXJuIDAgPD0gZGVsdGEgJiYgZGVs
dGEgPCAzMCAqIDYwICogMTAwMCA/ICI8cGxhdXNpYmxlPiIgOiB2YWx1ZTsKLX0KLQotSW5zcGVj
dG9yVGVzdC5hZGRPYmplY3QgPSBmdW5jdGlvbihvYmplY3QsIGN1c3RvbUZvcm1hdHRlcnMsIHBy
ZWZpeCwgZmlyc3RMaW5lUHJlZml4KQotewotICAgIHByZWZpeCA9IHByZWZpeCB8fCAiIjsKLSAg
ICBmaXJzdExpbmVQcmVmaXggPSBmaXJzdExpbmVQcmVmaXggfHwgcHJlZml4OwotICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KGZpcnN0TGluZVByZWZpeCArICJ7Iik7Ci0gICAgdmFyIHByb3Bl
cnR5TmFtZXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOwotICAgIHByb3BlcnR5TmFtZXMuc29ydCgp
OwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydHlOYW1lcy5sZW5ndGg7ICsraSkgewot
ICAgICAgICB2YXIgcHJvcCA9IHByb3BlcnR5TmFtZXNbaV07Ci0gICAgICAgIGlmICh0eXBlb2Yg
b2JqZWN0Lmhhc093blByb3BlcnR5ID09PSAiZnVuY3Rpb24iICYmICFvYmplY3QuaGFzT3duUHJv
cGVydHkocHJvcCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgdmFyIHByZWZpeFdp
dGhOYW1lID0gIiAgICAiICsgcHJlZml4ICsgcHJvcCArICIgOiAiOwotICAgICAgICB2YXIgcHJv
cFZhbHVlID0gb2JqZWN0W3Byb3BdOwotICAgICAgICBpZiAoY3VzdG9tRm9ybWF0dGVycyAmJiBj
dXN0b21Gb3JtYXR0ZXJzW3Byb3BdKSB7Ci0gICAgICAgICAgICB2YXIgZm9ybWF0dGVyTmFtZSA9
IGN1c3RvbUZvcm1hdHRlcnNbcHJvcF07Ci0gICAgICAgICAgICBpZiAoZm9ybWF0dGVyTmFtZSAh
PT0gInNraXAiKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGZvcm1hdHRlciA9IEluc3BlY3RvclRl
c3QuZm9ybWF0dGVyc1tmb3JtYXR0ZXJOYW1lXTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdChwcmVmaXhXaXRoTmFtZSArIGZvcm1hdHRlcihwcm9wVmFsdWUpKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1
bXAocHJvcFZhbHVlLCBjdXN0b21Gb3JtYXR0ZXJzLCAiICAgICIgKyBwcmVmaXgsIHByZWZpeFdp
dGhOYW1lKTsKLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocHJlZml4ICsgIn0i
KTsKLX0KLQotSW5zcGVjdG9yVGVzdC5hZGRBcnJheSA9IGZ1bmN0aW9uKGFycmF5LCBjdXN0b21G
b3JtYXR0ZXJzLCBwcmVmaXgsIGZpcnN0TGluZVByZWZpeCkKLXsKLSAgICBwcmVmaXggPSBwcmVm
aXggfHwgIiI7Ci0gICAgZmlyc3RMaW5lUHJlZml4ID0gZmlyc3RMaW5lUHJlZml4IHx8IHByZWZp
eDsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChmaXJzdExpbmVQcmVmaXggKyAiWyIpOwot
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpCi0gICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcChhcnJheVtpXSwgY3VzdG9tRm9ybWF0dGVycywgcHJlZml4ICsgIiAgICAi
KTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChwcmVmaXggKyAiXSIpOwotfQotCi1JbnNw
ZWN0b3JUZXN0LmR1bXAgPSBmdW5jdGlvbih2YWx1ZSwgY3VzdG9tRm9ybWF0dGVycywgcHJlZml4
LCBwcmVmaXhXaXRoTmFtZSkKLXsKLSAgICBwcmVmaXhXaXRoTmFtZSA9IHByZWZpeFdpdGhOYW1l
IHx8IHByZWZpeDsKLSAgICBpZiAocHJlZml4V2l0aE5hbWUgJiYgcHJlZml4V2l0aE5hbWUubGVu
Z3RoID4gODApIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocHJlZml4V2l0aE5h
bWUgKyAid2FzIHNraXBwZWQgZHVlIHRvIHByZWZpeCBsZW5ndGggbGltaXQiKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLSAgICBpZiAodmFsdWUgPT09IG51bGwpCi0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KHByZWZpeFdpdGhOYW1lICsgIm51bGwiKTsKLSAgICBlbHNlIGlmICh2
YWx1ZSBpbnN0YW5jZW9mIEFycmF5KQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZEFycmF5KHZh
bHVlLCBjdXN0b21Gb3JtYXR0ZXJzLCBwcmVmaXgsIHByZWZpeFdpdGhOYW1lKTsKLSAgICBlbHNl
IGlmICh0eXBlb2YgdmFsdWUgPT09ICJvYmplY3QiKQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZE9iamVjdCh2YWx1ZSwgY3VzdG9tRm9ybWF0dGVycywgcHJlZml4LCBwcmVmaXhXaXRoTmFtZSk7
Ci0gICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAic3RyaW5nIikKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQocHJlZml4V2l0aE5hbWUgKyAiXCIiICsgdmFsdWUgKyAiXCIiKTsK
LSAgICBlbHNlCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHByZWZpeFdpdGhOYW1l
ICsgdmFsdWUpOwotfQotCi1JbnNwZWN0b3JUZXN0LmFzc2VydEdyZWF0ZXJPckVxdWFsID0gZnVu
Y3Rpb24oYSwgYiwgbWVzc2FnZSkKLXsKLSAgICBpZiAoYSA8IGIpCi0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJGQUlMRUQ6ICIgKyAobWVzc2FnZSA/IG1lc3NhZ2UgKyAiOiAiIDog
IiIpICsgYSArICIgPCAiICsgYik7Ci19Ci0KLUluc3BlY3RvclRlc3QubmF2aWdhdGUgPSBmdW5j
dGlvbih1cmwsIGNhbGxiYWNrKQotewotICAgIEluc3BlY3RvclRlc3QuX3BhZ2VMb2FkZWRDYWxs
YmFjayA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spOwotCi0gICAgV2ViSW5zcGVj
dG9yLnBhbmVsKCJuZXR3b3JrIikuX3Jlc2V0KCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluQ29uc29sZSgid2luZG93LmxvY2F0aW9uID0gJyIgKyB1cmwgKyAiJyIpOwotfQotCi1JbnNw
ZWN0b3JUZXN0LmhhcmRSZWxvYWRQYWdlID0gZnVuY3Rpb24oY2FsbGJhY2ssIHNjcmlwdFRvRXZh
bHVhdGVPbkxvYWQsIHNjcmlwdFByZXByb2Nlc3NvcikKLXsKLSAgICBJbnNwZWN0b3JUZXN0Ll9p
bm5lclJlbG9hZFBhZ2UodHJ1ZSwgY2FsbGJhY2ssIHNjcmlwdFRvRXZhbHVhdGVPbkxvYWQsIHNj
cmlwdFByZXByb2Nlc3Nvcik7Ci19Ci0KLUluc3BlY3RvclRlc3QucmVsb2FkUGFnZSA9IGZ1bmN0
aW9uKGNhbGxiYWNrLCBzY3JpcHRUb0V2YWx1YXRlT25Mb2FkLCBzY3JpcHRQcmVwcm9jZXNzb3Ip
Ci17Ci0gICAgSW5zcGVjdG9yVGVzdC5faW5uZXJSZWxvYWRQYWdlKGZhbHNlLCBjYWxsYmFjaywg
c2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCwgc2NyaXB0UHJlcHJvY2Vzc29yKTsKLX0KLQotSW5zcGVj
dG9yVGVzdC5faW5uZXJSZWxvYWRQYWdlID0gZnVuY3Rpb24oaGFyZFJlbG9hZCwgY2FsbGJhY2ss
IHNjcmlwdFRvRXZhbHVhdGVPbkxvYWQsIHNjcmlwdFByZXByb2Nlc3NvcikKLXsKLSAgICBJbnNw
ZWN0b3JUZXN0Ll9wYWdlTG9hZGVkQ2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNh
bGxiYWNrKTsKLQotICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCi0gICAgICAg
IFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5fcmVzZXQoKTsKLSAgICBQYWdlQWdlbnQucmVs
b2FkKGhhcmRSZWxvYWQsIHNjcmlwdFRvRXZhbHVhdGVPbkxvYWQsIHNjcmlwdFByZXByb2Nlc3Nv
cik7Ci19Ci0KLUluc3BlY3RvclRlc3QucGFnZUxvYWRlZCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBy
ZXN1bHRzU3luY2hyb25pemVkID0gZmFsc2U7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlBhZ2UgcmVsb2FkZWQuIik7Ci0gICAgaWYgKEluc3BlY3RvclRlc3QuX3BhZ2VMb2FkZWRDYWxs
YmFjaykgewotICAgICAgICB2YXIgY2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0Ll9wYWdlTG9hZGVk
Q2FsbGJhY2s7Ci0gICAgICAgIGRlbGV0ZSBJbnNwZWN0b3JUZXN0Ll9wYWdlTG9hZGVkQ2FsbGJh
Y2s7Ci0gICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgfQotfQotCi1JbnNwZWN0b3JUZXN0LnJ1bldo
ZW5QYWdlTG9hZHMgPSBmdW5jdGlvbihjYWxsYmFjaykKLXsKLSAgICB2YXIgb2xkQ2FsbGJhY2sg
PSBJbnNwZWN0b3JUZXN0Ll9wYWdlTG9hZGVkQ2FsbGJhY2s7Ci0gICAgZnVuY3Rpb24gY2hhaW5l
ZENhbGxiYWNrKCkKLSAgICB7Ci0gICAgICAgIGlmIChvbGRDYWxsYmFjaykKLSAgICAgICAgICAg
IG9sZENhbGxiYWNrKCk7Ci0gICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgfQotICAgIEluc3BlY3Rv
clRlc3QuX3BhZ2VMb2FkZWRDYWxsYmFjayA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2hhaW5l
ZENhbGxiYWNrKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVz
ID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0gICAgY2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNh
ZmVXcmFwKGNhbGxiYWNrKTsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLnJ1bkFmdGVyUGVuZGluZ0Rp
c3BhdGNoZXMoY2FsbGJhY2spOwotfQotCi1JbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50ID0g
ZnVuY3Rpb24oa2V5SWRlbnRpZmllciwgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtl
eSkKLXsKLSAgICB2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIktleWJvYXJkRXZlbnQi
KTsKLSAgICBldnQuaW5pdEtleWJvYXJkRXZlbnQoImtleWRvd24iLCB0cnVlIC8qIGNhbiBidWJi
bGUgKi8sIHRydWUgLyogY2FuIGNhbmNlbCAqLywgbnVsbCAvKiB2aWV3ICovLCBrZXlJZGVudGlm
aWVyLCAiIiwgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSk7Ci0gICAgcmV0dXJu
IGV2dDsKLX0KLQotSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUgPSBmdW5jdGlvbih0ZXN0U3Vp
dGUpCi17Ci0gICAgdmFyIHRlc3RTdWl0ZVRlc3RzID0gdGVzdFN1aXRlLnNsaWNlKCk7Ci0KLSAg
ICBmdW5jdGlvbiBydW5uZXIoKQotICAgIHsKLSAgICAgICAgaWYgKCF0ZXN0U3VpdGVUZXN0cy5s
ZW5ndGgpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG5leHRUZXN0ID0gdGVzdFN1
aXRlVGVzdHMuc2hpZnQoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUnVubmluZzogIiArIC9mdW5jdGlvblxz
KFteKF0qKS8uZXhlYyhuZXh0VGVzdClbMV0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNhZmVX
cmFwKG5leHRUZXN0KShydW5uZXIsIHJ1bm5lcik7Ci0gICAgfQotICAgIHJ1bm5lcigpOwotfQot
Ci1JbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyA9IGZ1bmN0aW9uKGV4cGVjdGVkLCBmb3VuZCwg
bWVzc2FnZSkKLXsKLSAgICBpZiAoZXhwZWN0ZWQgPT09IGZvdW5kKQotICAgICAgICByZXR1cm47
Ci0KLSAgICB2YXIgZXJyb3I7Ci0gICAgaWYgKG1lc3NhZ2UpCi0gICAgICAgIGVycm9yID0gIkZh
aWx1cmUgKCIgKyBtZXNzYWdlICsgIik6IjsKLSAgICBlbHNlCi0gICAgICAgIGVycm9yID0gIkZh
aWx1cmU6IjsKLSAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IgKyAiIGV4cGVjdGVkIDwiICsgZXhw
ZWN0ZWQgKyAiPiBmb3VuZCA8IiArIGZvdW5kICsgIj4iKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5h
c3NlcnRUcnVlID0gZnVuY3Rpb24oZm91bmQsIG1lc3NhZ2UpCi17Ci0gICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnRFcXVhbHModHJ1ZSwgISFmb3VuZCwgbWVzc2FnZSk7Ci19Ci0KLUluc3BlY3RvclRl
c3Quc2FmZVdyYXAgPSBmdW5jdGlvbihmdW5jLCBvbmV4Y2VwdGlvbikKLXsKLSAgICBmdW5jdGlv
biByZXN1bHQoKQotICAgIHsKLSAgICAgICAgaWYgKCFmdW5jKQotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB2YXIgd3JhcFRoaXMgPSB0aGlzOwotICAgICAgICB0cnkgewotICAgICAgICAg
ICAgcmV0dXJuIGZ1bmMuYXBwbHkod3JhcFRoaXMsIGFyZ3VtZW50cyk7Ci0gICAgICAgIH0gY2F0
Y2goZSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV4Y2VwdGlvbiB3
aGlsZSBydW5uaW5nOiAiICsgZnVuYyArICJcbiIgKyAoZS5zdGFjayB8fCBlKSk7Ci0gICAgICAg
ICAgICBpZiAob25leGNlcHRpb24pCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zYWZl
V3JhcChvbmV4Y2VwdGlvbikoKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVy
biByZXN1bHQ7Ci19Ci0KLUluc3BlY3RvclRlc3QuYWRkU25pZmZlciA9IGZ1bmN0aW9uKHJlY2Vp
dmVyLCBtZXRob2ROYW1lLCBvdmVycmlkZSwgb3B0X3N0aWNreSkKLXsKLSAgICBvdmVycmlkZSA9
IEluc3BlY3RvclRlc3Quc2FmZVdyYXAob3ZlcnJpZGUpOwotCi0gICAgdmFyIG9yaWdpbmFsID0g
cmVjZWl2ZXJbbWV0aG9kTmFtZV07Ci0gICAgaWYgKHR5cGVvZiBvcmlnaW5hbCAhPT0gImZ1bmN0
aW9uIikKLSAgICAgICAgdGhyb3cgKCJDYW5ub3QgZmluZCBtZXRob2QgdG8gb3ZlcnJpZGU6ICIg
KyBtZXRob2ROYW1lKTsKLQotICAgIHJlY2VpdmVyW21ldGhvZE5hbWVdID0gZnVuY3Rpb24odmFy
X2FyZ3MpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHZhciByZXN1bHQgPSBvcmlnaW5h
bC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwotICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAg
ICAgaWYgKCFvcHRfc3RpY2t5KQotICAgICAgICAgICAgICAgIHJlY2VpdmVyW21ldGhvZE5hbWVd
ID0gb3JpZ2luYWw7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gSW4gY2FzZSBvZiBleGNlcHRpb24g
dGhlIG92ZXJyaWRlIHdvbid0IGJlIGNhbGxlZC4KLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAg
IG92ZXJyaWRlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsK
LSAgICAgICAgICAgIHRocm93ICgiRXhjZXB0aW9uIGluIG92ZXJyaWRlbiBtZXRob2QgJyIgKyBt
ZXRob2ROYW1lICsgIic6ICIgKyBlKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgIH07Ci19Ci0KLUluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIgPSBmdW5jdGlv
bihvdmVycmlkZSwgb3B0X3N0aWNreSkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgIl9hcHBlbmRDb25zb2xlTWVzc2Fn
ZSIsIG92ZXJyaWRlLCBvcHRfc3RpY2t5KTsKLX0KLQotSW5zcGVjdG9yVGVzdC5vdmVycmlkZSA9
IGZ1bmN0aW9uKHJlY2VpdmVyLCBtZXRob2ROYW1lLCBvdmVycmlkZSwgb3B0X3N0aWNreSkKLXsK
LSAgICBvdmVycmlkZSA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAob3ZlcnJpZGUpOwotCi0gICAg
dmFyIG9yaWdpbmFsID0gcmVjZWl2ZXJbbWV0aG9kTmFtZV07Ci0gICAgaWYgKHR5cGVvZiBvcmln
aW5hbCAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgdGhyb3cgKCJDYW5ub3QgZmluZCBtZXRob2Qg
dG8gb3ZlcnJpZGU6ICIgKyBtZXRob2ROYW1lKTsKLQotICAgIHJlY2VpdmVyW21ldGhvZE5hbWVd
ID0gZnVuY3Rpb24odmFyX2FyZ3MpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHRyeSB7
Ci0gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG92ZXJyaWRlLmFwcGx5KHRoaXMsIGFyZ3Vt
ZW50cyk7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cg
KCJFeGNlcHRpb24gaW4gb3ZlcnJpZGVuIG1ldGhvZCAnIiArIG1ldGhvZE5hbWUgKyAiJzogIiAr
IGUpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgICAgaWYg
KCFvcHRfc3RpY2t5KQotICAgICAgICAgICAgICAgIHJlY2VpdmVyW21ldGhvZE5hbWVdID0gb3Jp
Z2luYWw7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9OwotCi0gICAg
cmV0dXJuIG9yaWdpbmFsOwotfQotCi1JbnNwZWN0b3JUZXN0LnRleHRDb250ZW50V2l0aExpbmVC
cmVha3MgPSBmdW5jdGlvbihub2RlKQotewotICAgIHZhciBidWZmZXIgPSAiIjsKLSAgICB2YXIg
Y3VycmVudE5vZGUgPSBub2RlOwotICAgIHdoaWxlIChjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2Rl
LnRyYXZlcnNlTmV4dE5vZGUobm9kZSkpIHsKLSAgICAgICAgaWYgKGN1cnJlbnROb2RlLm5vZGVU
eXBlID09PSBOb2RlLlRFWFRfTk9ERSkKLSAgICAgICAgICAgIGJ1ZmZlciArPSBjdXJyZW50Tm9k
ZS5ub2RlVmFsdWU7Ci0gICAgICAgIGVsc2UgaWYgKGN1cnJlbnROb2RlLm5vZGVOYW1lID09PSAi
TEkiKQotICAgICAgICAgICAgYnVmZmVyICs9ICJcbiAgICAiOwotICAgICAgICBlbHNlIGlmIChj
dXJyZW50Tm9kZS5jbGFzc0xpc3QuY29udGFpbnMoImNvbnNvbGUtbWVzc2FnZSIpKQotICAgICAg
ICAgICAgYnVmZmVyICs9ICJcblxuIjsKLSAgICB9Ci0gICAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQot
SW5zcGVjdG9yVGVzdC5TdHJpbmdPdXRwdXRTdHJlYW0gPSBmdW5jdGlvbihjYWxsYmFjaykKLXsK
LSAgICB0aGlzLl9jYWxsYmFjayA9IGNhbGxiYWNrOwotICAgIHRoaXMuX2J1ZmZlciA9ICIiOwot
fTsKLQotSW5zcGVjdG9yVGVzdC5TdHJpbmdPdXRwdXRTdHJlYW0ucHJvdG90eXBlID0gewotICAg
IHdyaXRlOiBmdW5jdGlvbihjaHVuaywgY2FsbGJhY2spCi0gICAgewotICAgICAgICB0aGlzLl9i
dWZmZXIgKz0gY2h1bms7Ci0gICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAgICAgICAgIGNhbGxi
YWNrKHRoaXMpOwotICAgIH0sCi0KLSAgICBjbG9zZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fY2FsbGJhY2sodGhpcy5fYnVmZmVyKTsKLSAgICB9Ci19OwotCi1JbnNwZWN0b3JU
ZXN0Lk1vY2tTZXR0aW5nID0gZnVuY3Rpb24odmFsdWUpCi17Ci0gICAgdGhpcy5fdmFsdWUgPSB2
YWx1ZTsKLX07Ci0KLUluc3BlY3RvclRlc3QuTW9ja1NldHRpbmcucHJvdG90eXBlID0gewotICAg
IGdldDogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTsKLSAgICB9LAot
Ci0gICAgc2V0OiBmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVl
OwotICAgIH0KLX07Ci0KLX07Ci0KLXZhciBpbml0aWFsaXplQ2FsbElkID0gMDsKLXZhciBydW5U
ZXN0Q2FsbElkID0gMTsKLXZhciBjb21wbGV0ZVRlc3RDYWxsSWQgPSAyOwotdmFyIGZyb250ZW5k
UmVvcGVuaW5nQ291bnQgPSAwOwotCi1mdW5jdGlvbiByZW9wZW5Gcm9udGVuZCgpCi17Ci0gICAg
Y2xvc2VGcm9udGVuZChvcGVuRnJvbnRlbmRBbmRJbmNyZW1lbnQpOwotfQotCi1mdW5jdGlvbiBj
bG9zZUZyb250ZW5kKGNhbGxiYWNrKQotewotICAgIC8vIERvIHRoaXMgYXN5bmNocm9ub3VzbHkg
dG8gYWxsb3cgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIgdG8gc2VuZCByZXNwb25zZQotICAg
IC8vIGJhY2sgdG8gdGhlIGZyb250ZW5kIGJlZm9yZSBpdCdzIGRlc3Ryb3llZC4KLSAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICB0ZXN0UnVubmVyLmNsb3NlV2ViSW5zcGVjdG9y
KCk7Ci0gICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgfSwgMCk7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5G
cm9udGVuZEFuZEluY3JlbWVudCgpCi17Ci0gICAgZnJvbnRlbmRSZW9wZW5pbmdDb3VudCsrOwot
ICAgIHRlc3RSdW5uZXIuc2hvd1dlYkluc3BlY3RvcigpOwotICAgIHJ1blRlc3QoKTsKLX0KLQot
ZnVuY3Rpb24gcnVuQWZ0ZXJJZnJhbWVJc0xvYWRlZCgpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBmdW5jdGlv
biBzdGVwKCkKLSAgICB7Ci0gICAgICAgIGlmICghd2luZG93LmlmcmFtZUxvYWRlZCkKLSAgICAg
ICAgICAgIHNldFRpbWVvdXQoc3RlcCwgMTAwKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
cnVuVGVzdCgpOwotICAgIH0KLSAgICBzZXRUaW1lb3V0KHN0ZXAsIDEwMCk7Ci19Ci0KLWZ1bmN0
aW9uIHJ1blRlc3QoZW5hYmxlV2F0Y2hEb2dXaGlsZURlYnVnZ2luZykKLXsKLSAgICBpZiAoIXdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotICAgIGZ1bmN0aW9u
IGluaXRpYWxpemVGcm9udGVuZChpbml0aWFsaXphdGlvbkZ1bmN0aW9ucykKLSAgICB7Ci0gICAg
ICAgIGlmICh3aW5kb3cuSW5zcGVjdG9yVGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5wYWdlTG9hZGVkKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICBJbnNwZWN0b3JUZXN0ID0ge307Ci0gICAgCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
aW5pdGlhbGl6YXRpb25GdW5jdGlvbnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHRyeSB7
Ci0gICAgICAgICAgICAgICAgaW5pdGlhbGl6YXRpb25GdW5jdGlvbnNbaV0oKTsKLSAgICAgICAg
ICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJFeGNlcHRp
b24gaW4gdGVzdCBpbml0aWFsaXphdGlvbjogIiArIGUpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0SW5Gcm9udGVuZCh0ZXN0RnVuY3Rpb24sIGNvbXBsZXRl
VGVzdENhbGxJZCkKLSAgICB7Ci0gICAgICAgIGlmIChJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dENhbGxJZCkgCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3RDYWxsSWQgPSBjb21wbGV0ZVRlc3RDYWxsSWQ7Ci0KLSAgICAgICAgV2ViSW5z
cGVjdG9yLnNob3dQYW5lbCgiYXVkaXRzIik7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB0
ZXN0RnVuY3Rpb24oKTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgY29uc29s
ZS5lcnJvcigiRXhjZXB0aW9uIGR1cmluZyB0ZXN0IGV4ZWN1dGlvbjogIiArIGUsICAoZS5zdGFj
ayA/IGUuc3RhY2sgOiAiIikgKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB2YXIgaW5pdGlhbGl6YXRpb25GdW5jdGlv
bnMgPSBbIFN0cmluZyhpbml0aWFsaXplX0luc3BlY3RvclRlc3QpIF07Ci0gICAgZm9yICh2YXIg
bmFtZSBpbiB3aW5kb3cpIHsKLSAgICAgICAgaWYgKG5hbWUuaW5kZXhPZigiaW5pdGlhbGl6ZV8i
KSA9PT0gMCAmJiB0eXBlb2Ygd2luZG93W25hbWVdID09PSAiZnVuY3Rpb24iICYmIG5hbWUgIT09
ICJpbml0aWFsaXplX0luc3BlY3RvclRlc3QiKQotICAgICAgICAgICAgaW5pdGlhbGl6YXRpb25G
dW5jdGlvbnMucHVzaCh3aW5kb3dbbmFtZV0udG9TdHJpbmcoKSk7Ci0gICAgfQotICAgIHZhciBw
YXJhbWV0ZXJzID0gWyJbIiArIGluaXRpYWxpemF0aW9uRnVuY3Rpb25zICsgIl0iXTsKLSAgICB2
YXIgdG9FdmFsdWF0ZSA9ICIoIiArIGluaXRpYWxpemVGcm9udGVuZCArICIpKCIgKyBwYXJhbWV0
ZXJzLmpvaW4oIiwgIikgKyAiKTsiOwotICAgIHRlc3RSdW5uZXIuZXZhbHVhdGVJbldlYkluc3Bl
Y3Rvcihpbml0aWFsaXplQ2FsbElkLCB0b0V2YWx1YXRlKTsKLQotICAgIHBhcmFtZXRlcnMgPSBb
dGVzdCwgY29tcGxldGVUZXN0Q2FsbElkXTsKLSAgICB0b0V2YWx1YXRlID0gIigiICsgcnVuVGVz
dEluRnJvbnRlbmQgKyAiKSgiICsgcGFyYW1ldGVycy5qb2luKCIsICIpICsgIik7IjsKLSAgICB0
ZXN0UnVubmVyLmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IocnVuVGVzdENhbGxJZCwgdG9FdmFsdWF0
ZSk7Ci0KLSAgICBpZiAoZW5hYmxlV2F0Y2hEb2dXaGlsZURlYnVnZ2luZykgewotICAgICAgICBm
dW5jdGlvbiB3YXRjaERvZygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNvbnNvbGUubG9nKCJJ
bnRlcm5hbCB3YXRjaGRvZyB0cmlnZ2VyZWQgYXQgMjAgc2Vjb25kcy4gVGVzdCB0aW1lZCBvdXQu
Iik7Ci0gICAgICAgICAgICBjbG9zZUluc3BlY3RvckFuZE5vdGlmeURvbmUoKTsKLSAgICAgICAg
fQotICAgICAgICB3aW5kb3cuX3dhdGNoRG9nVGltZXIgPSBzZXRUaW1lb3V0KHdhdGNoRG9nLCAy
MDAwMCk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBkaWRFdmFsdWF0ZUZvclRlc3RJbkZyb250ZW5k
KGNhbGxJZCkKLXsKLSAgICBpZiAoY2FsbElkICE9PSBjb21wbGV0ZVRlc3RDYWxsSWQpCi0gICAg
ICAgIHJldHVybjsKLSAgICBkZWxldGUgd2luZG93LmNvbXBsZXRlVGVzdENhbGxJZDsKLSAgICAv
LyBDbG9zZSBpbnNwZWN0b3IgYXN5bmNocm91c2x5IHRvIGFsbG93IGNhbGxlciBvZiB0aGlzCi0g
ICAgLy8gZnVuY3Rpb24gc2VuZCByZXNwb25zZSBiZWZvcmUgYmFja2VuZCBkaXNwYXRjaGVyIGFu
ZCBmcm9udGVuZCBhcmUgZGVzdHJveWVkLgotICAgIHNldFRpbWVvdXQoY2xvc2VJbnNwZWN0b3JB
bmROb3RpZnlEb25lLCAwKTsKLX0KLQotZnVuY3Rpb24gY2xvc2VJbnNwZWN0b3JBbmROb3RpZnlE
b25lKCkKLXsKLSAgICBpZiAod2luZG93Ll93YXRjaERvZ1RpbWVyKQotICAgICAgICBjbGVhclRp
bWVvdXQod2luZG93Ll93YXRjaERvZ1RpbWVyKTsKLQotICAgIHRlc3RSdW5uZXIuY2xvc2VXZWJJ
bnNwZWN0b3IoKTsKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKLSAgICB9LCAwKTsKLX0KLQotdmFyIG91dHB1dEVsZW1lbnQ7Ci0K
LWZ1bmN0aW9uIG91dHB1dCh0ZXh0KQotewotICAgIGlmICghb3V0cHV0RWxlbWVudCkgewotICAg
ICAgICB2YXIgaW50ZXJtZWRpYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0g
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW50ZXJtZWRpYXRlKTsKLQotICAgICAg
ICB2YXIgaW50ZXJtZWRpYXRlMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAg
ICAgICBpbnRlcm1lZGlhdGUuYXBwZW5kQ2hpbGQoaW50ZXJtZWRpYXRlMik7Ci0KLSAgICAgICAg
b3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICBv
dXRwdXRFbGVtZW50LmNsYXNzTmFtZSA9ICJvdXRwdXQiOwotICAgICAgICBvdXRwdXRFbGVtZW50
LmlkID0gIm91dHB1dCI7Ci0gICAgICAgIG91dHB1dEVsZW1lbnQuc3R5bGUud2hpdGVTcGFjZSA9
ICJwcmUiOwotICAgICAgICBpbnRlcm1lZGlhdGUyLmFwcGVuZENoaWxkKG91dHB1dEVsZW1lbnQp
OwotICAgIH0KLSAgICBvdXRwdXRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKHRleHQpKTsKLSAgICBvdXRwdXRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImJyIikpOwotfQotCi1mdW5jdGlvbiBjbGVhck91dHB1dCgpCi17Ci0gICAg
aWYgKG91dHB1dEVsZW1lbnQpIHsKLSAgICAgICAgb3V0cHV0RWxlbWVudC5wYXJlbnROb2RlLnJl
bW92ZUNoaWxkKG91dHB1dEVsZW1lbnQpOwotICAgICAgICBvdXRwdXRFbGVtZW50ID0gbnVsbDsK
LSAgICB9Ci19Ci0KLWZ1bmN0aW9uIFN0YW5kYWxvbmVUZXN0UnVubmVyU3R1YigpCi17Ci19Ci0K
LVN0YW5kYWxvbmVUZXN0UnVubmVyU3R1Yi5wcm90b3R5cGUgPSB7Ci0gICAgZHVtcEFzVGV4dDog
ZnVuY3Rpb24oKQotICAgIHsKLSAgICB9LAotCi0gICAgd2FpdFVudGlsRG9uZTogZnVuY3Rpb24o
KQotICAgIHsKLSAgICB9LAotCi0gICAgY2xvc2VXZWJJbnNwZWN0b3I6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoWyJjbG9zZVdlYkluc3BlY3Rv
ciJdLCAiKiIpOwotICAgIH0sCi0KLSAgICBub3RpZnlEb25lOiBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICB2YXIgYWN0dWFsID0gZG9jdW1lbnQuYm9keS5pbm5lclRleHQgKyAiXG4iOwotICAg
ICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKFsibm90aWZ5RG9uZSIsIGFjdHVhbF0sICIq
Iik7Ci0gICAgfSwKLQotICAgIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3I6IGZ1bmN0aW9uKGNhbGxJ
ZCwgc2NyaXB0KQotICAgIHsKLSAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZShbImV2
YWx1YXRlSW5XZWJJbnNwZWN0b3IiLCBjYWxsSWQsIHNjcmlwdF0sICIqIik7Ci0gICAgfSwKLQot
ICAgIGRpc3BsYXk6IGZ1bmN0aW9uKCkgeyB9Ci19Ci0KLWlmICghd2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93Lm9wZW5lcikKLSAgICB3aW5kb3cudGVzdFJ1bm5lciA9IG5ldyBTdGFuZGFsb25l
VGVzdFJ1bm5lclN0dWIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2lzb2xhdGVkLWZpbGVzeXN0ZW0tdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2lzb2xhdGVkLWZpbGVzeXN0ZW0tdGVzdC5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggY2QxNDUxZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pc29sYXRlZC1maWxlc3lzdGVtLXRlc3QuanMKKysrIC9kZXYvbnVsbApA
QCAtMSw2MyArMCwwIEBACi12YXIgaW5pdGlhbGl6ZV9Jc29sYXRlZEZpbGVTeXN0ZW1UZXN0ID0g
ZnVuY3Rpb24oKSB7Ci0KLUluc3BlY3RvclRlc3QuY3JlYXRlSXNvbGF0ZWRGaWxlU3lzdGVtTWFu
YWdlciA9IGZ1bmN0aW9uKHdvcmtzcGFjZSwgZmlsZVN5c3RlbU1hcHBpbmcpCi17Ci0gICAgdmFy
IG1hbmFnZXIgPSBuZXcgTW9ja0lzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIoKTsKLSAgICBtYW5h
Z2VyLmZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5
c3RlbVdvcmtzcGFjZVByb3ZpZGVyKG1hbmFnZXIsIHdvcmtzcGFjZSk7Ci0gICAgbWFuYWdlci5m
aWxlU3lzdGVtTWFwcGluZyA9IGZpbGVTeXN0ZW1NYXBwaW5nOwotICAgIHJldHVybiBtYW5hZ2Vy
OwotfQotCi12YXIgTW9ja0lzb2xhdGVkRmlsZVN5c3RlbSA9IGZ1bmN0aW9uKHBhdGgsIGZpbGVz
KQotewotICAgIHRoaXMuX3BhdGggPSBwYXRoOwotICAgIHRoaXMuX2ZpbGVzID0gZmlsZXM7Ci19
OwotTW9ja0lzb2xhdGVkRmlsZVN5c3RlbS5wcm90b3R5cGUgPSB7Ci0gICAgcGF0aDogZnVuY3Rp
b24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGg7Ci0gICAgfSwKLQotICAgIHJl
cXVlc3RGaWxlQ29udGVudDogZnVuY3Rpb24ocGF0aCwgY2FsbGJhY2spCi0gICAgewotICAgICAg
ICBjYWxsYmFjayh0aGlzLl9maWxlc1twYXRoXSk7Ci0gICAgfSwKLQotICAgIHNldEZpbGVDb250
ZW50OiBmdW5jdGlvbihwYXRoLCBuZXdDb250ZW50LCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAg
IHRoaXMuX2ZpbGVzW3BhdGhdID0gbmV3Q29udGVudDsKLSAgICAgICAgY2FsbGJhY2soKTsKLSAg
ICB9LAotCi0gICAgcmVxdWVzdEZpbGVzUmVjdXJzaXZlOiBmdW5jdGlvbihwYXRoLCBjYWxsYmFj
aykKLSAgICB7Ci0gICAgICAgIHZhciBmaWxlcyA9IE9iamVjdC5rZXlzKHRoaXMuX2ZpbGVzKTsK
LSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7ICsraSkKLSAgICAgICAg
ICAgIGNhbGxiYWNrKGZpbGVzW2ldKTsKLSAgICB9LAotfQotCi12YXIgTW9ja0lzb2xhdGVkRmls
ZVN5c3RlbU1hbmFnZXIgPSBmdW5jdGlvbigpIHt9OwotTW9ja0lzb2xhdGVkRmlsZVN5c3RlbU1h
bmFnZXIucHJvdG90eXBlID0gewotICAgIGFkZE1vY2tGaWxlU3lzdGVtOiBmdW5jdGlvbihwYXRo
LCBmaWxlcykKLSAgICB7Ci0gICAgICAgIHZhciBmaWxlU3lzdGVtID0gbmV3IE1vY2tJc29sYXRl
ZEZpbGVTeXN0ZW0ocGF0aCwgZmlsZXMpOwotICAgICAgICB0aGlzLl9maWxlU3lzdGVtcyA9IHRo
aXMuX2ZpbGVTeXN0ZW1zIHx8IHt9OwotICAgICAgICB0aGlzLl9maWxlU3lzdGVtc1twYXRoXSA9
IGZpbGVTeXN0ZW07Ci0gICAgICAgIHRoaXMuZmlsZVN5c3RlbU1hcHBpbmcuYWRkRmlsZVN5c3Rl
bU1hcHBpbmcocGF0aCk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5Jc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyLkV2ZW50cy5GaWxlU3lzdGVtQWRk
ZWQsIGZpbGVTeXN0ZW0pOwotICAgIH0sCi0KLSAgICByZW1vdmVNb2NrRmlsZVN5c3RlbTogZnVu
Y3Rpb24ocGF0aCkKLSAgICB7Ci0gICAgICAgIHZhciBmaWxlU3lzdGVtID0gdGhpcy5fZmlsZVN5
c3RlbXNbcGF0aF07Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9maWxlU3lzdGVtc1twYXRoXTsKLSAg
ICAgICAgdGhpcy5maWxlU3lzdGVtTWFwcGluZy5yZW1vdmVGaWxlU3lzdGVtTWFwcGluZyhwYXRo
KTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLklz
b2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIuRXZlbnRzLkZpbGVTeXN0ZW1SZW1vdmVkLCBmaWxlU3lz
dGVtKTsKLSAgICB9LAotCi0gICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3Rv
dHlwZQotfQotCi19OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbGl2ZS1lZGl0LXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9s
aXZlLWVkaXQtdGVzdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzQ1MDZmNS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9saXZlLWVkaXQt
dGVzdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLXZhciBpbml0aWFsaXplX0xp
dmVFZGl0VGVzdCA9IGZ1bmN0aW9uKCkgewotCi1JbnNwZWN0b3JUZXN0LnJlcGxhY2VJblNvdXJj
ZSA9IGZ1bmN0aW9uKHNvdXJjZUZyYW1lLCBzdHJpbmcsIHJlcGxhY2VtZW50KQotewotICAgIHNv
dXJjZUZyYW1lLl90ZXh0RWRpdG9yLl9tYWluUGFuZWwuc2V0UmVhZE9ubHkoZmFsc2UpOwotICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgc291cmNlRnJhbWUuX3RleHRFZGl0b3IubGluZXNDb3VudDsg
KytpKSB7Ci0gICAgICAgIHZhciBsaW5lID0gc291cmNlRnJhbWUuX3RleHRFZGl0b3IubGluZShp
KTsKLSAgICAgICAgdmFyIGNvbHVtbiA9IGxpbmUuaW5kZXhPZihzdHJpbmcpOwotICAgICAgICBp
ZiAoY29sdW1uID09PSAtMSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICByYW5nZSA9
IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKGksIGNvbHVtbiwgaSwgY29sdW1uICsgc3RyaW5n
Lmxlbmd0aCk7Ci0gICAgICAgIHZhciBuZXdSYW5nZSA9IHNvdXJjZUZyYW1lLl90ZXh0RWRpdG9y
LmVkaXRSYW5nZShyYW5nZSwgcmVwbGFjZW1lbnQpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19
Ci0KLUluc3BlY3RvclRlc3QuY29tbWl0U291cmNlID0gZnVuY3Rpb24oc291cmNlRnJhbWUpCi17
Ci0gICAgc291cmNlRnJhbWUuX2NvbW1pdEVkaXRpbmcoKTsKLX0KLQotSW5zcGVjdG9yVGVzdC51
bmRvU291cmNlRWRpdGluZyA9IGZ1bmN0aW9uKHNvdXJjZUZyYW1lKQotewotICAgIHNvdXJjZUZy
YW1lLl90ZXh0RWRpdG9yLl9tYWluUGFuZWwuX2hhbmRsZVVuZG9SZWRvKGZhbHNlKTsKLX0KLQot
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL21vZGlmeS1j
cm9zcy1kb21haW4tcnVsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9tb2RpZnktY3Jvc3MtZG9tYWluLXJ1bGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhM2FlYTYwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL21vZGlmeS1jcm9zcy1kb21haW4tcnVsZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UZXN0cyB0aGF0IG1vZGlmeWluZyBhIHJ1
bGUgaW4gYSBzdHlsZXNoZWV0IGxvYWRlZCBmcm9tIGEgZGlmZmVyZW50IGRvbWFpbiBkb2VzIG5v
dCBjcmFzaCB0aGUgcmVuZGVyZXIuCi0KLVRleHQKLQotUnVubmluZzogdGVzdFNldFVwCi0KLVJ1
bm5pbmc6IHRlc3RBZGRQcm9wZXJ0eQotPT09IFJ1bGUgbW9kaWZpZWQgPT09Ci1jb2xvcjogZ3Jl
ZW47Ci13aWR0aDogMTAwJTsKLT09PSBTZWxlY3RvciBjaGFuZ2VkID09PQotYm9keSB7Ci0gIGNv
bG9yOiBncmVlbjsKLSAgd2lkdGg6IDEwMCU7Ci19Ci1BZmZlY3RzIHNlbGVjdGVkICgjaW5zcGVj
dGVkKSBub2RlOiBmYWxzZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9tb2RpZnktY3Jvc3MtZG9tYWluLXJ1bGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL21vZGlmeS1jcm9zcy1kb21haW4tcnVsZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjYjc5ZGQzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL21vZGlmeS1jcm9zcy1kb21haW4tcnVsZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTEwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3Ivc3R5bGVzL21vZGlm
eS1jcm9zcy1kb21haW4tcnVsZS5jc3MiPgotPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJlbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBub2RlSWQ7Ci0gICAgdmFyIGFs
bFJ1bGVzOwotICAgIHZhciBydWxlOwotICAgIHZhciBtYXRjaGVkUnVsZXM7Ci0KLSAgICBXZWJJ
bnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5U
ZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0VXAobmV4dCkgewotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwg
c2VsZWN0Q2FsbGJhY2spOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzZWxlY3RDYWxsYmFjaygp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIGlkVG9ET01Ob2RlID0gV2ViSW5z
cGVjdG9yLmRvbUFnZW50Ll9pZFRvRE9NTm9kZTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBp
ZCBpbiBpZFRvRE9NTm9kZSkgewotICAgICAgICAgICAgICAgICAgICBub2RlID0gaWRUb0RPTU5v
ZGVbaWRdOwotICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9k
ZS5nZXRBdHRyaWJ1dGUoImlkIikgPT09ICJpbnNwZWN0ZWQiKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBub2RlSWQgPSBwYXJzZUludChpZCwgMTApOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgICAgICBpZiAoIW5vZGVJZCkgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdl
dE1hdGNoZWRTdHlsZXNBc3luYyhub2RlSWQsIGZhbHNlLCBmYWxzZSwgY2FsbGJhY2spOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhydWxlcykKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoIXJ1bGVzIHx8ICFydWxlcy5tYXRjaGVkQ1NT
UnVsZXMgfHwgIXJ1bGVzLm1hdGNoZWRDU1NSdWxlcy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlshXSBObyBydWxlcyBmb3VuZCIpOwotICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
YWxsUnVsZXMgPSBydWxlcy5tYXRjaGVkQ1NTUnVsZXM7Ci0gICAgICAgICAgICAgICAgbmV4dCgp
OwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RBZGRQ
cm9wZXJ0eShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGFsbFJ1bGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGFsbFJ1bGVzW2ld
LmlzUmVndWxhcikgewotICAgICAgICAgICAgICAgICAgICBydWxlID0gYWxsUnVsZXNbaV07Ci0g
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHJ1bGUuc3R5bGUuYXBwZW5kUHJvcGVydHkoIndpZHRoIiwgIjEwMCUi
LCBjYWxsYmFjayk7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhuZXdTdHlsZSkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09
IFJ1bGUgbW9kaWZpZWQgPT09Iik7Ci0gICAgICAgICAgICAgICAgaWYgKCFuZXdTdHlsZSkgewot
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiWyFdIE5vIHZhbGlk
IHJ1bGUgc3R5bGUgcmVjZWl2ZWQiKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICBkdW1wUHJvcGVydGllcyhuZXdTdHlsZSk7Ci0gICAgICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5jc3NNb2RlbC5zZXRSdWxlU2VsZWN0b3IocnVsZS5pZCwgbm9kZUlkLCAiYm9k
eSIsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjayhy
dWxlLCBkb2VzQWZmZWN0U2VsZWN0ZWROb2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gU2VsZWN0b3IgY2hhbmdlZCA9PT0iKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChydWxlLnNlbGVjdG9yVGV4
dCArICIgeyIgKyBydWxlLnN0eWxlLmNzc1RleHQgKyAifSIpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZmZlY3RzIHNlbGVjdGVkICgjaW5zcGVjdGVkKSBub2Rl
OiAiICsgZG9lc0FmZmVjdFNlbGVjdGVkTm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBmYWlsdXJlQ2FsbGJhY2soKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJb
IV0gRmFpbGVkIHRvIGNoYW5nZSBzZWxlY3RvciIpOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsK
LQotICAgIGZ1bmN0aW9uIGR1bXBQcm9wZXJ0aWVzKHN0eWxlKQotICAgIHsKLSAgICAgICBpZiAo
IXN0eWxlKQotICAgICAgICAgICByZXR1cm47Ci0gICAgICAgdmFyIGFsbFByb3BlcnRpZXMgPSBz
dHlsZS5hbGxQcm9wZXJ0aWVzOwotICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsUHJvcGVy
dGllcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoYWxs
UHJvcGVydGllc1tpXS50ZXh0KTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IG1vZGlmeWluZyBhIHJ1bGUg
aW4gYSBzdHlsZXNoZWV0IGxvYWRlZCBmcm9tIGEgZGlmZmVyZW50IGRvbWFpbiBkb2VzIG5vdCBj
cmFzaCB0aGUgcmVuZGVyZXIuCi08L3A+Ci0KLTxkaXYgaWQ9Imluc3BlY3RlZCI+VGV4dDwvZGl2
PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmstcHJlZmxpZ2h0LW9wdGlvbnMtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDYwOTE3Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmstcHJlZmxpZ2h0
LW9wdGlvbnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotQ09O
U09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0
OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHA/aWQ9MCZkZW55PXllcy4g
T3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvcnMtdGFy
Z2V0LnBocD9pZD0xJmRlbnk9eWVzLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5v
dCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FH
RTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhwP2lkPTMmZGVueT15ZXMuIE9yaWdpbiBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ct
T3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRw
Oi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHA/aWQ9
NCZkZW55PXllcy4gT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBi
eSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1UZXN0cyB0aGF0IHByZWZsaWdodCBPUFRJ
T05TIHJlcXVlc3RzIGFwcGVhciBpbiBOZXR3b3JrIHJlc291cmNlcwotCi1CdWcgNjM3MTIKLTAg
eGhyOlBPU1QgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY29ycy10
YXJnZXQucGhwP2lkPTAmZGVueT15ZXMKLTEgeGhyOk9QVElPTlMgaHR0cDovL2xvY2FsaG9zdDo4
MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhwP2lkPTEmZGVueT15ZXMKLTIg
eGhyOk9QVElPTlMgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY29y
cy10YXJnZXQucGhwP2lkPTIKLTIgeGhyOlBPU1QgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhwP2lkPTIKLTMgb3RoZXI6UE9TVCBodHRwOi8v
bG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHA/aWQ9MyZk
ZW55PXllcwotNCB4aHI6T1BUSU9OUyBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jl
c291cmNlcy9jb3JzLXRhcmdldC5waHA/aWQ9NCZkZW55PXllcwotNSB4aHI6T1BUSU9OUyBodHRw
Oi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHA/aWQ9
NQotNSB4aHI6UE9TVCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9j
b3JzLXRhcmdldC5waHA/aWQ9NQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4ZTEzNzQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay1wcmVmbGlnaHQtb3B0aW9ucy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSJpbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Ci1mdW5jdGlvbiBzZW5kWEhSKHVybCwgZm9yY2VQcmVmbGlnaHQsIGFzeW5jLCBjYWxs
YmFjaykKLXsKLSAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0KLSAgICB4aHIu
b25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKHhoci5y
ZWFkeVN0YXRlID09PSBYTUxIdHRwUmVxdWVzdC5ET05FKSB7Ci0gICAgICAgICAgICBpZiAodHlw
ZW9mKGNhbGxiYWNrKSA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgICAgICBjYWxsYmFjaygp
OwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIHhoci5vcGVuKCJQT1NUIiwgdXJsLCBhc3luYyk7
Ci0gICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsIGZvcmNlUHJlZmxpZ2h0
ID8gImFwcGxpY2F0aW9uL3htbCIgOiAidGV4dC9wbGFpbiIpOwotICAgIHRyeSB7Ci0gICAgICAg
IHhoci5zZW5kKCI8eG1sPjwveG1sPiIpOyAgLy8gRGVuaWVkIHJlcXVlc3RzIHdpbGwgY2F1c2Ug
ZXhjZXB0aW9ucy4KLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgfQotfQotCi12YXIgYmFzZVRhcmdl
dFVSTCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRh
cmdldC5waHAiOwotCi1mdW5jdGlvbiB0YXJnZXRVUkwoaWQsIGRlbnksIGFkZFRpbWVzdGFtcCkK
LXsKLSAgICB2YXIgcmVzdWx0ID0gYmFzZVRhcmdldFVSTCArICI/aWQ9IiArIGlkOwotICAgIGlm
IChkZW55KQotICAgICAgICByZXN1bHQgKz0gIiZkZW55PXllcyI7Ci0gICAgaWYgKGFkZFRpbWVz
dGFtcCkKLSAgICAgICAgcmVzdWx0ICs9ICImZGF0ZT0iICsgRGF0ZS5ub3coKTsKLSAgICByZXR1
cm4gcmVzdWx0OwotfQotCi1mdW5jdGlvbiBkb0Nyb3NzT3JpZ2luWEhSKCkKLXsKLSAgICAvLyBG
YWlsZWQgUE9TVHMgd2l0aCBubyBwcmVmbGlnaHQgY2hlY2sgc2hvdWxkIHJlc3VsdCBpbiBhIFBP
U1QgcmVxdWVzdCBiZWluZyBsb2dnZWQKLSAgICBzZW5kWEhSKHRhcmdldFVSTCgwLCB0cnVlLCBm
YWxzZSksIGZhbHNlLCBmYWxzZSk7Ci0gICAgLy8gRmFpbGVkIFBPU1RzIHdpdGggcHJlZmxpZ2h0
IGNoZWNrIHNob3VsZCByZXN1bHQgaW4gYW4gT1BUSU9OUyByZXF1ZXN0IGJlaW5nIGxvZ2dlZAot
ICAgIHNlbmRYSFIodGFyZ2V0VVJMKDEsIHRydWUsIGZhbHNlKSwgdHJ1ZSwgZmFsc2UpOwotICAg
IC8vIFN1Y2Nlc3NmdWwgUE9TVHMgd2l0aCBwcmVmbGlnaHQgY2hlY2sgc2hvdWxkIHJlc3VsdCBp
biBhbiBPUFRJT05TIHJlcXVlc3QgZm9sbG93ZWQgYnkgUE9TVCByZXF1ZXN0IGJlaW5nIGxvZ2dl
ZAotICAgIC8vIEdlbmVyYXRlIHJlcXVlc3QgbmFtZSBiYXNlZCBvbiB0aW1lc3RhbXAgdG8gZGVm
ZWF0IE9QVElPTlMgcmVxdWVzdCBjYWNoaW5nICh0aGlzIGlzIG9ubHkgcmVsZXZhbnQgZm9yIHJl
cGVhdGVkIGludm9jYXRpb25zIG9mIHRoZSB0ZXN0IGluIHNpZ25sZSBpbnN0YW5jZSBvZiBEUlQp
Ci0gICAgc2VuZFhIUih0YXJnZXRVUkwoMiwgZmFsc2UsIHRydWUpLCB0cnVlLCBmYWxzZSk7Ci0K
LSAgICAvLyBBbmQgbm93IHNlbmQgdGhlIHNhbWUgcmVxdWVzdHMgYXN5bmNocm9ub3VzbHkKLSAg
ICAvLyBBZGQgcmVkdW5kYW50IGFzeW5jIHBhcmFtZXRlciB0byBlbnN1cmUgdGhpcyByZXF1ZXN0
IGRpZmZlcnMgZnJvbSB0aGUgb25lIGFib3ZlLgotICAgIHNlbmRYSFIodGFyZ2V0VVJMKDMsIHRy
dWUsIGZhbHNlKSwgZmFsc2UsIHRydWUsIHN0ZXAyKTsKLX0KLQotZnVuY3Rpb24gc3RlcDIoKQot
ewotICAgIHNlbmRYSFIodGFyZ2V0VVJMKDQsIHRydWUsIGZhbHNlKSwgdHJ1ZSwgdHJ1ZSwgc3Rl
cDMpOwotfQotCi1mdW5jdGlvbiBzdGVwMygpCi17Ci0gICAgc2VuZFhIUih0YXJnZXRVUkwoNSwg
ZmFsc2UsIHRydWUpLCB0cnVlLCB0cnVlKTsKLX0KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17
Ci0gICAgdmFyIHJlcXVlc3RNZXNzYWdlcyA9IFtdOwotICAgIHZhciBwb3N0UmVxdWVzdHNDb3Vu
dCA9IDA7Ci0gICAgZnVuY3Rpb24gb25SZXF1ZXN0KGV2ZW50KQotICAgIHsKLSAgICAgICAgdmFy
IHJlcXVlc3QgPSBldmVudC5kYXRhOwotICAgICAgICB2YXIgaWRNYXRjaCA9IC9cP2lkPShbMC05
XSopJi8uZXhlYyhyZXF1ZXN0LnVybCk7Ci0gICAgICAgIHZhciByZXF1ZXN0SWQgPSBpZE1hdGNo
WzFdOwotICAgICAgICB2YXIgcmVxdWVzdE1lc3NhZ2UgPSByZXF1ZXN0SWQgKyAiICIgKyByZXF1
ZXN0LnR5cGUgKyAiOiIgKyByZXF1ZXN0LnJlcXVlc3RNZXRob2QgKyAiICIgKyByZXF1ZXN0LnVy
bC5yZXBsYWNlKC9bJj9dZGF0ZT1cZCsvLCAiIik7Ci0gICAgICAgIHJlcXVlc3RNZXNzYWdlcy5w
dXNoKHJlcXVlc3RNZXNzYWdlKTsKLSAgICAgICAgaWYgKHJlcXVlc3QucmVxdWVzdE1ldGhvZCA9
PT0gIlBPU1QiICYmICsrcG9zdFJlcXVlc3RzQ291bnQgPT09IDQpIHsKLSAgICAgICAgICAgIHJl
cXVlc3RNZXNzYWdlcy5zb3J0KCk7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
cXVlc3RNZXNzYWdlcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdChyZXF1ZXN0TWVzc2FnZXNbaV0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBXZWJJbnNwZWN0b3IubmV0
d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIu
RXZlbnRUeXBlcy5SZXF1ZXN0RmluaXNoZWQsIG9uUmVxdWVzdCk7Ci0gICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgiZG9Dcm9zc09yaWdpblhIUigpOyIpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IHByZWZsaWdo
dCBPUFRJT05TIHJlcXVlc3RzIGFwcGVhciBpbiBOZXR3b3JrIHJlc291cmNlczwvcD4KLTxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzcxMiI+QnVnIDYz
NzEyPC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay10ZXN0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
YTQxNDk3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmstdGVzdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExMyArMCwwIEBACi0vLyBUaGlzIGdv
ZXMgYmVmb3JlIGV2ZXJ5dGhpbmcgZWxzZSB0byBrZWVwIGNvbnNvbGUgbWVzc2FnZSBsaW5lIG51
bWJlciBpbnZhcmlhbnQuCi12YXIgbGFzdFhIUkluZGV4ID0gMDsKLWZ1bmN0aW9uIHhockxvYWRl
ZENhbGxiYWNrKCkKLXsKLSAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgY29uc29sZSBt
ZXNzYWdlIHRleHQgaXMgdW5pcXVlIHNvIHRoYXQgd2UgZG9uJ3QgZW5kIHVwIHdpdGggcmVwZWF0
IGNvdW50IHVwZGF0ZSBvbmx5LgotICAgIGNvbnNvbGUubG9nKCJYSFIgbG9hZGVkOiAiICsgKCsr
bGFzdFhIUkluZGV4KSk7Ci19Ci0KLXZhciBpbml0aWFsaXplX05ldHdvcmtUZXN0ID0gZnVuY3Rp
b24oKSB7Ci0KLUluc3BlY3RvclRlc3QuZHVtcE5ldHdvcmtSZXF1ZXN0cyA9IGZ1bmN0aW9uKCkK
LXsKLSAgICB2YXIgcmVxdWVzdHMgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1
ZXN0cy5zbGljZSgpOwotICAgIHJlcXVlc3RzLnNvcnQoZnVuY3Rpb24oYSwgYikge3JldHVybiBh
LnVybC5sb2NhbGVDb21wYXJlKGIudXJsKTt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgicmVzb3VyY2VzIGNvdW50ID0gIiArIHJlcXVlc3RzLmxlbmd0aCk7Ci0gICAgZm9yIChpID0g
MDsgaSA8IHJlcXVlc3RzLmxlbmd0aDsgaSsrKQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdChyZXF1ZXN0c1tpXS51cmwpOwotfQotCi1JbnNwZWN0b3JUZXN0LnJlc2V0SW5zcGVjdG9y
UmVzb3VyY2VzRGF0YSA9IGZ1bmN0aW9uKGNhbGxiYWNrKQotewotICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoInJlc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YSgpIiwgbmV4dFN0ZXAp
OwotCi0gICAgZnVuY3Rpb24gbmV4dFN0ZXAocmVzdWx0KQotICAgIHsKLSAgICAgICAgaWYgKCFy
ZXN1bHQpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUaGlzIHRlc3Qg
Y2FuIG5vdCBiZSBydW4gYXMgd2luZG93LmludGVybmFscyBpcyBub3QgYXZhaWxhYmxlLiIpOwot
ICAgICAgICAgICAgSW5zcGVjdG9yLmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgfQotfQotCi1JbnNwZWN0b3JUZXN0Lm1ha2VTaW1w
bGVYSFIgPSBmdW5jdGlvbihtZXRob2QsIHVybCwgYXN5bmMsIGNhbGxiYWNrKQotewotICAgIElu
c3BlY3RvclRlc3QubWFrZVhIUihtZXRob2QsIHVybCwgYXN5bmMsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBbXSwgZmFsc2UsIHVuZGVmaW5lZCwgY2FsbGJhY2spOwotfQotCi1JbnNwZWN0b3JUZXN0
Lm1ha2VTaW1wbGVYSFJXaXRoUGF5bG9hZCA9IGZ1bmN0aW9uKG1ldGhvZCwgdXJsLCBhc3luYywg
cGF5bG9hZCwgY2FsbGJhY2spCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5tYWtlWEhSKG1ldGhvZCwg
dXJsLCBhc3luYywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIFtdLCBmYWxzZSwgcGF5bG9hZCwgY2Fs
bGJhY2spOwotfQotCi1JbnNwZWN0b3JUZXN0Lm1ha2VYSFIgPSBmdW5jdGlvbihtZXRob2QsIHVy
bCwgYXN5bmMsIHVzZXIsIHBhc3N3b3JkLCBoZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHMsIHBheWxv
YWQsIGNhbGxiYWNrKQotewotICAgIHZhciBhcmdzID0ge307Ci0gICAgYXJncy5tZXRob2QgPSBt
ZXRob2Q7Ci0gICAgYXJncy51cmwgPSB1cmw7Ci0gICAgYXJncy5hc3luYyA9IGFzeW5jOwotICAg
IGFyZ3MudXNlciA9IHVzZXI7Ci0gICAgYXJncy5wYXNzd29yZCA9IHBhc3N3b3JkOwotICAgIGFy
Z3MuaGVhZGVycyA9IGhlYWRlcnM7Ci0gICAgYXJncy53aXRoQ3JlZGVudGlhbHMgPSB3aXRoQ3Jl
ZGVudGlhbHM7Ci0gICAgYXJncy5wYXlsb2FkID0gcGF5bG9hZDsKLSAgICB2YXIganNvbkFyZ3Mg
PSBKU09OLnN0cmluZ2lmeShhcmdzKS5yZXBsYWNlKC9cIi9nLCAiXFxcIiIpOwotCi0gICAgZnVu
Y3Rpb24gaW5uZXJDYWxsYmFjayhtc2cpCi0gICAgewotICAgICAgICBpZiAobXNnLl9tZXNzYWdl
VGV4dC5pbmRleE9mKCJYSFIgbG9hZGVkIikgIT09IC0xKQotICAgICAgICAgICAgY2FsbGJhY2so
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25p
ZmZlcihpbm5lckNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNv
bGVTbmlmZmVyKGlubmVyQ2FsbGJhY2spOwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoIm1ha2VYSFJGb3JKU09OQXJndW1lbnRzKFwiIiArIGpzb25BcmdzICsgIlwiKSIpOwotfQot
Ci19OwotCi1mdW5jdGlvbiBtYWtlU2ltcGxlWEhSKG1ldGhvZCwgdXJsLCBhc3luYywgY2FsbGJh
Y2spCi17Ci0gICAgbWFrZVNpbXBsZVhIUldpdGhQYXlsb2FkKG1ldGhvZCwgdXJsLCBhc3luYywg
bnVsbCwgY2FsbGJhY2spOwotfQotCi1mdW5jdGlvbiBtYWtlU2ltcGxlWEhSV2l0aFBheWxvYWQo
bWV0aG9kLCB1cmwsIGFzeW5jLCBwYXlsb2FkLCBjYWxsYmFjaykKLXsKLSAgICBtYWtlWEhSKG1l
dGhvZCwgdXJsLCBhc3luYywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIFtdLCBmYWxzZSwgcGF5bG9h
ZCwgY2FsbGJhY2spCi19Ci0KLWZ1bmN0aW9uIG1ha2VYSFIobWV0aG9kLCB1cmwsIGFzeW5jLCB1
c2VyLCBwYXNzd29yZCwgaGVhZGVycywgd2l0aENyZWRlbnRpYWxzLCBwYXlsb2FkLCBjYWxsYmFj
aykKLXsKLSAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgeGhyLm9ucmVh
ZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICh4aHIucmVhZHlT
dGF0ZSA9PT0gWE1MSHR0cFJlcXVlc3QuRE9ORSkgewotICAgICAgICAgICAgaWYgKHR5cGVvZihj
YWxsYmFjaykgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAg
ICAgICAgfQotICAgIH0KLSAgICB4aHIub3BlbihtZXRob2QsIHVybCwgYXN5bmMsIHVzZXIsIHBh
c3N3b3JkKTsKLSAgICB4aHIud2l0aENyZWRlbnRpYWxzID0gd2l0aENyZWRlbnRpYWxzOwotICAg
IGZvciAodmFyICBpID0gMDsgaSA8IGhlYWRlcnMubGVuZ3RoOyArK2kpCi0gICAgICAgIHhoci5z
ZXRSZXF1ZXN0SGVhZGVyKGhlYWRlcnNbaV1bMF0sIGhlYWRlcnNbaV1bMV0pOwotICAgIHhoci5z
ZW5kKHBheWxvYWQpOwotfQotCi1mdW5jdGlvbiBtYWtlWEhSRm9ySlNPTkFyZ3VtZW50cyhqc29u
QXJncykKLXsKLSAgICB2YXIgYXJncyA9IEpTT04ucGFyc2UoanNvbkFyZ3MpOwotICAgIG1ha2VY
SFIoYXJncy5tZXRob2QsIGFyZ3MudXJsLCBhcmdzLmFzeW5jLCBhcmdzLnVzZXIsIGFyZ3MucGFz
c3dvcmQsIGFyZ3MuaGVhZGVycywgYXJncy53aXRoQ3JlZGVudGlhbHMsIGFyZ3MucGF5bG9hZCwg
eGhyTG9hZGVkQ2FsbGJhY2spOwotfQotCi0KLWZ1bmN0aW9uIHJlc2V0SW5zcGVjdG9yUmVzb3Vy
Y2VzRGF0YSgpCi17Ci0gICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpbnRlcm5hbHMuc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1p
dHMoMTAgKiAxMDAwICogMTAwMCwgMTAwMCAqIDEwMDApOwotICAgIHJldHVybiB0cnVlOwotfQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Fz
eW5jLXhoci1qc29uLW1pbWUtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL2FzeW5jLXhoci1qc29uLW1pbWUtdHlwZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkZjA5OGZjLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvYXN5bmMteGhyLWpzb24t
bWltZS10eXBlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA2OiBYSFIgbG9hZGVkOiAxCi1UZXN0cyBYSFIgbmV0d29yayBy
ZXNvdXJjZSBjb250ZW50IGZvciBhc3luY2hyb25vdXMgcmVxdWVzdHMgd2l0aCBhcHBsaWNhdGlv
bi9qc29uIG1pbWUgdHlwZS4gQnVnIDgwNjg0Ci0KLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvanNvbi5waHAKLXJlc291cmNlLnR5cGU6IHhocgotcmVz
b3VyY2UuY29udGVudCBiZWZvcmUgcmVxdWVzdGluZyBjb250ZW50OiB1bmRlZmluZWQKLXJlc291
cmNlLmNvbnRlbnQgYWZ0ZXIgcmVxdWVzdGluZyBjb250ZW50OiB7Im51bWJlciI6ICI0MiJ9Ci0K
LQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L2FzeW5jLXhoci1qc29uLW1pbWUtdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9hc3luYy14aHItanNvbi1taW1lLXR5cGUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMGI4MjE1Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2FzeW5jLXhoci1qc29uLW1pbWUtdHlwZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vbmV0
d29yay10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAg
ICBJbnNwZWN0b3JUZXN0Lm1ha2VTaW1wbGVYSFIoIkdFVCIsICJyZXNvdXJjZXMvanNvbi5waHAi
LCB0cnVlLCBzdGVwMik7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICB2
YXIgcmVxdWVzdDEgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0c1tXZWJJ
bnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGggLSAxXTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVxdWVzdDEudXJsKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoInJlc291cmNlLnR5cGU6ICIgKyByZXF1ZXN0MS50eXBlKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291cmNlLmNvbnRlbnQgYmVmb3JlIHJlcXVl
c3RpbmcgY29udGVudDogIiArIHJlcXVlc3QxLmNvbnRlbnQpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydFRydWUoIXJlcXVlc3QxLmZhaWxlZCwgIlJlc291cmNlIGxvYWRpbmcgZmFpbGVk
LiIpOwotICAgICAgICByZXF1ZXN0MS5yZXF1ZXN0Q29udGVudChzdGVwMyk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QxID0gV2ViSW5z
cGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3
b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMV07Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJyZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVudDogIiArIHJlcXVl
c3QxLmNvbnRlbnQpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0g
ICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0g
PHA+Ci0gVGVzdHMgWEhSIG5ldHdvcmsgcmVzb3VyY2UgY29udGVudCBmb3IgYXN5bmNocm9ub3Vz
IHJlcXVlc3RzIHdpdGggYXBwbGljYXRpb24vanNvbiBtaW1lIHR5cGUuCi08YSBocmVmPSJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA2ODQiPkJ1ZyA4MDY4NDwvYT4K
LTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvY2FjaGVkLXJlc291cmNlLWRlc3Ryb3llZC1tb3ZlZC10by1z
dG9yYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvY2FjaGVkLXJlc291cmNlLWRlc3Ryb3llZC1tb3ZlZC10by1zdG9yYWdlLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNiNDFlYi4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2NhY2hlZC1yZXNvdXJj
ZS1kZXN0cm95ZWQtbW92ZWQtdG8tc3RvcmFnZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxMSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTY6IERvbmUxLgotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDI2OiBEb25lMi4KLVRlc3RzIGNvbnRlbnQgaXMgbW92ZWQgZnJvbSBj
YWNoZWQgcmVzb3VyY2UgdG8gcmVzb3VyY2UgYWdlbnQncyBkYXRhIHN0b3JhZ2Ugd2hlbiBjYWNo
ZWQgcmVzb3VyY2UgaXMgZGVzdHJveWVkLgotCi1CdWcgOTIxMDggIAotaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFn
ZSZyYW5kb209MSZzaXplPTQwMAotcmVxdWVzdC50eXBlOiBpbWFnZQotcmVxdWVzdC5jb250ZW50
Lmxlbmd0aCBhZnRlciByZXF1ZXN0aW5nIGNvbnRlbnQ6IDUzNgotUmVsZWFzaW5nIGNhY2hlZCBy
ZXNvdXJjZS4KLXJlcXVlc3QuY29udGVudC5sZW5ndGggYWZ0ZXIgcmVxdWVzdGluZyBjb250ZW50
OiA1MzYKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9jYWNoZWQtcmVzb3VyY2UtZGVzdHJveWVkLW1vdmVkLXRvLXN0b3JhZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvY2FjaGVkLXJlc291cmNlLWRl
c3Ryb3llZC1tb3ZlZC10by1zdG9yYWdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGIzODk1YjguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9jYWNoZWQtcmVzb3VyY2UtZGVzdHJveWVkLW1vdmVkLXRvLXN0b3JhZ2UuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDEwOSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9u
ZXR3b3JrLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBpbWFnZTsKLWZ1bmN0aW9u
IGxvYWRGaXJzdEltYWdlKCkgewotICAgIGltYWdlID0gbmV3IEltYWdlKCk7Ci0gICAgaW1hZ2Uu
b25sb2FkID0gZmlyc3RJbWFnZUxvYWRlZDsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGltYWdlKTsKLSAgICBpbWFnZS5zcmMgPSAicmVzb3VyY2VzL3Jlc291cmNlLnBocD90eXBlPWlt
YWdlJnJhbmRvbT0xJnNpemU9NDAwIjsKLX0KLQotZnVuY3Rpb24gZmlyc3RJbWFnZUxvYWRlZCgp
Ci17Ci0gICAgY29uc29sZS5sb2coIkRvbmUxLiIpOwotfQotCi1mdW5jdGlvbiBsb2FkU2Vjb25k
SW1hZ2UoKSB7Ci0gICAgaW1hZ2Uub25sb2FkID0gc2Vjb25kSW1hZ2VMb2FkZWQ7Ci0gICAgaW1h
Z2Uuc3JjID0gInJlc291cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZyYW5kb209MSZzaXpl
PTIwMCI7Ci19Ci0KLWZ1bmN0aW9uIHNlY29uZEltYWdlTG9hZGVkKCkKLXsKLSAgICBjb25zb2xl
LmxvZygiRG9uZTIuIik7Ci19Ci0KLWZ1bmN0aW9uIGZvcmNlQ2FjaGVkUmVzb3VyY2VMb2FkZXJH
QygpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgd2luZG93LmludGVybmFs
cy5nYXJiYWdlQ29sbGVjdERvY3VtZW50UmVzb3VyY2VzKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIC8vIFNpbmNlIHRoaXMgdGVzdCBjb3VsZCBiZSBydW4gdG9nZXRoZXIgd2l0aCBv
dGhlciBpbnNwZWN0b3IgYmFja2VuZCBjYWNoZQotICAgIC8vIHRlc3RzLCB3ZSBuZWVkIHRvIHJl
c2V0IHNpemUgbGltaXRzIHRvIGRlZmF1bHQgb25lcy4KLSAgICBJbnNwZWN0b3JUZXN0LnJlc2V0
SW5zcGVjdG9yUmVzb3VyY2VzRGF0YShzdGVwMSk7Ci0KLSAgICB2YXIgaW1hZ2VSZXF1ZXN0Owot
ICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkQ29u
c29sZVNuaWZmZXIoc3RlcDIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KCJsb2FkRmlyc3RJbWFnZSgpIik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAg
IHsKLSAgICAgICAgaW1hZ2VSZXF1ZXN0ID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIiku
cmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0g
MV07Ci0gICAgICAgIGltYWdlUmVxdWVzdC5yZXF1ZXN0Q29udGVudChzdGVwMyk7Ci0gICAgfQot
Ci0gICAgdmFyIG9yaWdpbmFsQ29udGVudExlbmd0aDsKLSAgICBmdW5jdGlvbiBzdGVwMygpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChpbWFnZVJlcXVlc3QudXJsKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlcXVlc3QudHlwZTogIiArIGltYWdl
UmVxdWVzdC50eXBlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlcXVlc3Qu
Y29udGVudC5sZW5ndGggYWZ0ZXIgcmVxdWVzdGluZyBjb250ZW50OiAiICsgaW1hZ2VSZXF1ZXN0
LmNvbnRlbnQubGVuZ3RoKTsKLSAgICAgICAgb3JpZ2luYWxDb250ZW50TGVuZ3RoID0gaW1hZ2VS
ZXF1ZXN0LmNvbnRlbnQubGVuZ3RoOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUo
aW1hZ2VSZXF1ZXN0LmNvbnRlbnQubGVuZ3RoID4gMCwgIk5vIGNvbnRlbnQgYmVmb3JlIGRlc3Ry
b3lpbmcgQ2FjaGVkUmVzb3VyY2UuIik7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlJlbGVhc2luZyBjYWNoZWQgcmVzb3VyY2UuIik7Ci0gICAgICAgIC8vIExvYWRpbmcgYW5v
dGhlciBpbWFnZSB0byB0aGUgc2FtZSBpbWFnZSBlbGVtZW50IHNvIHRoYXQgdGhlIG9yaWdpbmFs
IGltYWdlIGNhY2hlZCByZXNvdXJjZSBpcyByZWxlYXNlZC4KLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRDb25zb2xlU25pZmZlcihzdGVwNCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoImxvYWRTZWNvbmRJbWFnZSgpIik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3Rl
cDQobXNnKQotICAgIHsKLSAgICAgICAgLy8gRGlzYWJsZS1lbmFibGUgY2FjaGUgdG8gZm9yY2Ug
TWVtb3J5Q2FjaGU6OmV2aWN0UmVzb3VyY2VzKCkuCi0gICAgICAgIE5ldHdvcmtBZ2VudC5zZXRD
YWNoZURpc2FibGVkKHRydWUsIHN0ZXA1KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNSht
c2cpCi0gICAgewotICAgICAgICBOZXR3b3JrQWdlbnQuc2V0Q2FjaGVEaXNhYmxlZChmYWxzZSwg
c3RlcDYpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA2KCkKLSAgICB7Ci0gICAgICAgIC8v
IEZvcmNlIENhY2hlZFJlc291cmNlTG9hZGVyIGdhcmJhZ2UgY29sbGVjdG9yIHJ1bi4KLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZm9yY2VDYWNoZWRSZXNvdXJjZUxvYWRl
ckdDKCkiKTsKLQotICAgICAgICAvLyBSZS1yZXF1ZXN0IGNvbnRlbnQgbm93IHRoYXQgQ2FjaGVk
UmVzb3VyY2Ugc2hvdWxkIGhhdmUgYmVlbiBkZXN0cm95ZWQuCi0gICAgICAgIGRlbGV0ZSBpbWFn
ZVJlcXVlc3QuX2NvbnRlbnQ7Ci0gICAgICAgIGltYWdlUmVxdWVzdC5yZXF1ZXN0Q29udGVudChz
dGVwNyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDcoKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlcXVlc3QuY29udGVudC5sZW5ndGggYWZ0ZXIgcmVxdWVz
dGluZyBjb250ZW50OiAiICsgaW1hZ2VSZXF1ZXN0LmNvbnRlbnQubGVuZ3RoKTsKLSAgICAgICAg
b3JpZ2luYWxDb250ZW50TGVuZ3RoID0gaW1hZ2VSZXF1ZXN0LmNvbnRlbnQubGVuZ3RoOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoaW1hZ2VSZXF1ZXN0LmNvbnRlbnQubGVuZ3Ro
ID09PSBvcmlnaW5hbENvbnRlbnRMZW5ndGgsICJDb250ZW50IGNoYW5nZWQgYWZ0ZXIgY2FjaGVk
IHJlc291cmNlIHdhcyBkZXN0cm95ZWQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXNldElu
c3BlY3RvclJlc291cmNlc0RhdGEoc3RlcDgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA4
KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0
cyBjb250ZW50IGlzIG1vdmVkIGZyb20gY2FjaGVkIHJlc291cmNlIHRvIHJlc291cmNlIGFnZW50
J3MgZGF0YSBzdG9yYWdlIHdoZW4gY2FjaGVkIHJlc291cmNlIGlzIGRlc3Ryb3llZC48L3A+Ci08
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTIxMDgiPkJ1
ZyA5MjEwODwvYT4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9jYWNoZWQtcmVzb3VyY2UtZGVzdHJveWVkLXRv
by1iaWctZGlzY2FyZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvY2FjaGVkLXJlc291cmNlLWRlc3Ryb3llZC10b28tYmlnLWRpc2NhcmRl
ZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhNDI3NDUuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9jYWNo
ZWQtcmVzb3VyY2UtZGVzdHJveWVkLXRvby1iaWctZGlzY2FyZGVkLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMzogRG9u
ZTEuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzM6IERvbmUyLgotVGVzdHMgY2FjaGVkIHJlc291
cmNlIGNvbnRlbnQgaXMgZGlzY2FyZGVkIHdoZW4gY2FjaGVkIHJlc291cmNlIGlzIGRlc3Ryb3ll
ZCBpZiBjb250ZW50IHNpemUgaXMgdG9vIGJpZyBmb3IgdGhlIHJlc291cmNlIGFnZW50J3MgZGF0
YSBzdG9yYWdlLgotCi1CdWcgOTIxMDggIAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZyYW5kb209MSZzaXpl
PTQwMAotcmVxdWVzdC50eXBlOiBpbWFnZQotcmVxdWVzdC5jb250ZW50Lmxlbmd0aCBhZnRlciBy
ZXF1ZXN0aW5nIGNvbnRlbnQ6IDUzNgotUmVsZWFzaW5nIGNhY2hlZCByZXNvdXJjZS4KLXJlcXVl
c3QuY29udGVudCBhZnRlciByZXF1ZXN0aW5nIGNvbnRlbnQ6IG51bGwKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9jYWNoZWQtcmVzb3VyY2Ut
ZGVzdHJveWVkLXRvby1iaWctZGlzY2FyZGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL2NhY2hlZC1yZXNvdXJjZS1kZXN0cm95ZWQtdG9vLWJpZy1kaXNj
YXJkZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTMwOGQwYi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2NhY2hlZC1y
ZXNvdXJjZS1kZXN0cm95ZWQtdG9vLWJpZy1kaXNjYXJkZWQuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDEwNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9uZXR3b3JrLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLXZhciBpbWFnZTsKLWZ1bmN0aW9uIGxvYWRGaXJzdEltYWdlKCkg
ewotICAgIGlmICghd2luZG93LmludGVybmFscykgewotICAgICAgICBjb25zb2xlLmxvZygiVGhp
cyB0ZXN0IGNhbiBub3QgYmUgcnVuIGFzIHdpbmRvdy5pbnRlcm5hbHMgaXMgbm90IGF2YWlsYWJs
ZS4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAvLyBNYWtlIHN1cmUgdGhlcmUgaXMg
bm8gZW5vdWdoIHNwYWNlIHRvIHNhdmUgY29udGVudCBpbiByZXNvdXJjZSBhZ2VudCdzIHN0b3Jh
Z2UuCi0gICAgaW50ZXJuYWxzLnNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKDEw
MCwgMTAwKTsKLQotICAgIGltYWdlID0gbmV3IEltYWdlKCk7Ci0gICAgaW1hZ2Uub25sb2FkID0g
Zmlyc3RJbWFnZUxvYWRlZDsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlKTsK
LSAgICBpbWFnZS5zcmMgPSAicmVzb3VyY2VzL3Jlc291cmNlLnBocD90eXBlPWltYWdlJnJhbmRv
bT0xJnNpemU9NDAwIjsKLX0KLQotZnVuY3Rpb24gZmlyc3RJbWFnZUxvYWRlZCgpCi17Ci0gICAg
Y29uc29sZS5sb2coIkRvbmUxLiIpOwotfQotCi1mdW5jdGlvbiBsb2FkU2Vjb25kSW1hZ2UoKSB7
Ci0gICAgaW1hZ2Uub25sb2FkID0gc2Vjb25kSW1hZ2VMb2FkZWQ7Ci0gICAgaW1hZ2Uuc3JjID0g
InJlc291cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZyYW5kb209MSZzaXplPTIwMCI7Ci19
Ci0KLWZ1bmN0aW9uIHNlY29uZEltYWdlTG9hZGVkKCkKLXsKLSAgICBjb25zb2xlLmxvZygiRG9u
ZTIuIik7Ci19Ci0KLWZ1bmN0aW9uIGZvcmNlQ2FjaGVkUmVzb3VyY2VMb2FkZXJHQygpIHsKLSAg
ICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgd2luZG93LmludGVybmFscy5nYXJiYWdl
Q29sbGVjdERvY3VtZW50UmVzb3VyY2VzKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IHZhciBpbWFnZVJlcXVlc3Q7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihz
dGVwMik7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZEZpcnN0SW1hZ2Uo
KSIpOwotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgaW1hZ2VSZXF1ZXN0
ID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBh
bmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMV07Ci0gICAgICAgIGltYWdlUmVxdWVz
dC5yZXF1ZXN0Q29udGVudChzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoaW1hZ2VSZXF1ZXN0LnVybCk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXF1ZXN0LnR5cGU6ICIgKyBpbWFn
ZVJlcXVlc3QudHlwZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXF1ZXN0
LmNvbnRlbnQubGVuZ3RoIGFmdGVyIHJlcXVlc3RpbmcgY29udGVudDogIiArIGltYWdlUmVxdWVz
dC5jb250ZW50Lmxlbmd0aCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShpbWFn
ZVJlcXVlc3QuY29udGVudC5sZW5ndGggPiAwLCAiTm8gY29udGVudCBiZWZvcmUgZGVzdHJveWlu
ZyBDYWNoZWRSZXNvdXJjZS4iKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
UmVsZWFzaW5nIGNhY2hlZCByZXNvdXJjZS4iKTsKLSAgICAgICAgLy8gTG9hZGluZyBhbm90aGVy
IGltYWdlIHRvIHRoZSBzYW1lIGltYWdlIGVsZW1lbnQgc28gdGhhdCB0aGUgb3JpZ2luYWwgaW1h
Z2UgY2FjaGVkIHJlc291cmNlIGlzIHJlbGVhc2VkLgotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZENvbnNvbGVTbmlmZmVyKHN0ZXA0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgibG9hZFNlY29uZEltYWdlKCkiKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNCht
c2cpCi0gICAgewotICAgICAgICAvLyBEaXNhYmxlLWVuYWJsZSBjYWNoZSB0byBmb3JjZSBNZW1v
cnlDYWNoZTo6ZXZpY3RSZXNvdXJjZXMoKS4KLSAgICAgICAgTmV0d29ya0FnZW50LnNldENhY2hl
RGlzYWJsZWQodHJ1ZSwgc3RlcDUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA1KG1zZykK
LSAgICB7Ci0gICAgICAgIE5ldHdvcmtBZ2VudC5zZXRDYWNoZURpc2FibGVkKGZhbHNlLCBzdGVw
Nik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDYoKQotICAgIHsKLSAgICAgICAgLy8gRm9y
Y2UgQ2FjaGVkUmVzb3VyY2VMb2FkZXIgZ2FyYmFnZSBjb2xsZWN0b3IgcnVuLgotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJmb3JjZUNhY2hlZFJlc291cmNlTG9hZGVyR0Mo
KSIpOwotCi0gICAgICAgIC8vIFJlLXJlcXVlc3QgY29udGVudCBub3cgdGhhdCBDYWNoZWRSZXNv
dXJjZSBzaG91bGQgaGF2ZSBiZWVuIGRlc3Ryb3llZC4KLSAgICAgICAgZGVsZXRlIGltYWdlUmVx
dWVzdC5fY29udGVudDsKLSAgICAgICAgaW1hZ2VSZXF1ZXN0LnJlcXVlc3RDb250ZW50KHN0ZXA3
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNygpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgicmVxdWVzdC5jb250ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVu
dDogIiArIGltYWdlUmVxdWVzdC5jb250ZW50KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRUcnVlKCFpbWFnZVJlcXVlc3QuY29udGVudCwgIkNvbnRlbnQgYXZhaWxhYmxlIGFmdGVyIENh
Y2hlZFJlc291cmNlIHdhcyBkZXN0cm95ZWQuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVz
ZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhKHN0ZXA4KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBz
dGVwOCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
IH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
VGVzdHMgY2FjaGVkIHJlc291cmNlIGNvbnRlbnQgaXMgZGlzY2FyZGVkIHdoZW4gY2FjaGVkIHJl
c291cmNlIGlzIGRlc3Ryb3llZCBpZiBjb250ZW50IHNpemUgaXMgdG9vIGJpZyBmb3IgdGhlIHJl
c291cmNlIGFnZW50J3MgZGF0YSBzdG9yYWdlLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjEwOCI+QnVnIDkyMTA4PC9hPgotPC9ib2R5Pgot
PC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL2Nzcy1zb3VyY2UtbWFwcGluZy11cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9jc3Mtc291cmNlLW1hcHBpbmctdXJsLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzQwMmQ5MS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Nzcy1zb3VyY2Ut
bWFwcGluZy11cmwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1U
ZXN0cyB0aGF0IHRoZSBleHRyYVJlc291cmNlSW5mbyBpbiBOZXR3b3JrLmxvYWRpbmdGaW5pc2hl
ZCBjb250YWlucyBhIHNvdXJjZU1hcFVSTCBmb3IgYSBTdHlsZXNoZWV0IGNvbnRhaW5pbmcgYSBz
b3VyY2VNYXBwaW5nVVJMLiBBbHNvIHRoZW4gdGVzdHMgdGhhdCBQYWdlLmdldFJlc291cmNlVHJl
ZSBjb250YWlucyB0aGUgc291cmNlTWFwVVJMIGZvciB0aGUgcmVzb3VyY2UuCi0KLVJlc3BvbnNl
IHJlY2VpdmVkIGZvciBzdHlsZS5jc3MKLU5ldHdvcmsubG9hZGluZ0ZhaWxlZCBleHRyYVJlc291
cmNlSW5mbyBjb250YWlucyBhIHNvdXJjZU1hcFVSTDogc291cmNlLW1hcC10ZXN0LXN0eWxlLmNz
cy5tYXAKLVBhZ2UuZ2V0UmVzb3VyY2VUcmVlIHJlc291cmNlUGF5bG9hZCBjb250YWlucyBzb3Vy
Y2VNYXBVUkw6IHNvdXJjZS1tYXAtdGVzdC1zdHlsZS5jc3MubWFwCi1TVUNDRVNTCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvY3NzLXNvdXJj
ZS1tYXBwaW5nLXVybC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9jc3Mtc291cmNlLW1hcHBpbmctdXJsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDQwMDBiN2YuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9jc3Mtc291cmNlLW1hcHBpbmctdXJsLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw4OCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2FkU3R5bGVzaGVldFdp
dGhTb3VyY2VNYXBwaW5nVVJMKCkKLXsKLSAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImxpbmsiKTsKLSAgICBsaW5rLnJlbCA9ICJzdHlsZXNoZWV0IjsKLSAgICBsaW5rLnR5
cGUgPSAidGV4dC9jc3MiOwotICAgIGxpbmsuaHJlZiA9ICJyZXNvdXJjZXMvc291cmNlLW1hcC10
ZXN0LXN0eWxlLmNzcyI7Ci0gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTsKLX0K
LQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYklu
c3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUsICJsb2FkaW5nRmluaXNoZWQiLCBs
b2FkaW5nRmluaXNoZWQpOwotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0
b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJvdG90eXBlLCAibG9hZGluZ0ZhaWxlZCIsIGxvYWRpbmdG
YWlsZWQpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZFN0eWxlc2hl
ZXRXaXRoU291cmNlTWFwcGluZ1VSTCgpIik7Ci0KLSAgICBmdW5jdGlvbiBsb2FkaW5nRmluaXNo
ZWQocmVxdWVzdElkLCB0aW1lc3RhbXAsIHNvdXJjZU1hcFVSTCkKLSAgICB7Ci0gICAgICAgIHZh
ciByZXF1ZXN0ID0gV2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cucmVxdWVzdEZvcklkKHJlcXVlc3RJ
ZCk7Ci0gICAgICAgIGlmICgvc291cmNlLW1hcC10ZXN0LXN0eWxlXC5jc3MkLy5leGVjKHJlcXVl
c3QudXJsKSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJlc3BvbnNl
IHJlY2VpdmVkIGZvciBzdHlsZS5jc3MiKTsKLSAgICAgICAgICAgIGlmIChzb3VyY2VNYXBVUkwp
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTmV0d29yay5sb2Fk
aW5nRmFpbGVkIGV4dHJhUmVzb3VyY2VJbmZvIGNvbnRhaW5zIGEgc291cmNlTWFwVVJMOiAiICsg
c291cmNlTWFwVVJMKTsKLSAgICAgICAgICAgICAgICBhZnRlckxvYWRpbmdSZXNvdXJjZSgpOwot
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiTmV0d29yay5sb2FkaW5nRmFpbGVkIGV4dHJhUmVzb3VyY2VJbmZvIG1pc3Npbmcgc291
cmNlTWFwVVJMIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZB
SUxVUkUiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbG9hZGluZ0Zh
aWxlZChyZXF1ZXN0SWQsIHRpbWUsIGxvY2FsaXplZERlc2NyaXB0aW9uLCBjYW5jZWxlZCkKLSAg
ICB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gV2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cucmVxdWVz
dEZvcklkKHJlcXVlc3RJZCk7Ci0gICAgICAgIGlmICgvc291cmNlLW1hcC10ZXN0LXN0eWxlXC5j
c3MkLy5leGVjKHJlcXVlc3QudXJsKSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIkZhaWxlZCB0byBsb2FkIHNvdXJjZS1tYXAtdGVzdC1zdHlsZS5jc3MiKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGQUlMVVJFIik7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gYWZ0ZXJMb2FkaW5nUmVzb3VyY2UoKQotICAgIHsKLSAgICAgICAgUGFnZUFnZW50Lmdl
dFJlc291cmNlVHJlZShwcm9jZXNzUmVzb3VyY2VUcmVlKTsKLQotICAgICAgICBmdW5jdGlvbiBw
cm9jZXNzUmVzb3VyY2VUcmVlKGVycm9yLCBtYWluRnJhbWVQYXlsb2FkKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiUGFnZS5nZXRSZXNvdXJjZVRyZWUgZXJyb3I6ICIgKyBlcnJvcik7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxVUkUiKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIHJlc291cmNlcyA9IG1haW5GcmFt
ZVBheWxvYWQucmVzb3VyY2VzOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNv
dXJjZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICB2YXIgcmVzb3VyY2VQYXlsb2Fk
ID0gcmVzb3VyY2VzW2ldOwotICAgICAgICAgICAgICAgIGlmICgvc291cmNlLW1hcC10ZXN0LXN0
eWxlXC5jc3MkLy5leGVjKHJlc291cmNlUGF5bG9hZC51cmwpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGlmIChyZXNvdXJjZVBheWxvYWQuc291cmNlTWFwVVJMKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUGFnZS5nZXRSZXNvdXJjZVRyZWUgcmVz
b3VyY2VQYXlsb2FkIGNvbnRhaW5zIHNvdXJjZU1hcFVSTDogIiArIHJlc291cmNlUGF5bG9hZC5z
b3VyY2VNYXBVUkwpOwotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIlNVQ0NFU1MiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUGFnZS5nZXRSZXNvdXJjZVRy
ZWUgcmVzb3VyY2VQYXlsb2FkIG1pc3Npbmcgc291cmNlTWFwVVJMIik7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRkFJTFVSRSIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
UGFnZS5nZXRSZXNvdXJjZVRyZWUgbWlzc2luZyBzb3VyY2UtbWFwLXRlc3Qtc3R5bGUuY3NzIik7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRkFJTFVSRSIpOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMg
dGhhdCB0aGUgZXh0cmFSZXNvdXJjZUluZm8gaW4gTmV0d29yay5sb2FkaW5nRmluaXNoZWQgY29u
dGFpbnMgYSBzb3VyY2VNYXBVUkwgZm9yIGEgU3R5bGVzaGVldCBjb250YWluaW5nIGEgc291cmNl
TWFwcGluZ1VSTC4gQWxzbyB0aGVuIHRlc3RzIHRoYXQgUGFnZS5nZXRSZXNvdXJjZVRyZWUgY29u
dGFpbnMgdGhlIHNvdXJjZU1hcFVSTCBmb3IgdGhlIHJlc291cmNlLjwvcD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvZG93bmxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9kb3dubG9hZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDVlMTZiMjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9kb3dubG9hZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2
ICswLDAgQEAKLVRlc3RzIHRoYXQgcmVzcG9uc2VSZWNlaXZlZCBpcyBjYWxsZWQgb24gTmV0d29y
a0Rpc3BhdGNoZXIgZm9yIGRvd25sb2Fkcy4KLQotCi1SZWNlaXZlZCByZXNwb25zZSBmb3IgZG93
bmxvYWQuenp6Ci1TVUNDRVNTCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvZG93bmxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvZG93bmxvYWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYzVhZjAwZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL2Rvd25sb2FkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2FkSUZyYW1lV2l0aERvd25sb2FkKCkKLXsKLSAg
ICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gICAgaWZy
YW1lLnNldEF0dHJpYnV0ZSgic3JjIiwgInJlc291cmNlcy9kb3dubG9hZC56enoiKTsKLSAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQot
ewotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3Bh
dGNoZXIucHJvdG90eXBlLCAicmVzcG9uc2VSZWNlaXZlZCIsIHJlc3BvbnNlUmVjZWl2ZWQpOwot
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNo
ZXIucHJvdG90eXBlLCAibG9hZGluZ0ZhaWxlZCIsIGxvYWRpbmdGYWlsZWQpOwotICAgIEluc3Bl
Y3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJvdG90
eXBlLCAibG9hZGluZ0ZpbmlzaGVkIiwgbG9hZGluZ0ZpbmlzaGVkKTsKLSAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkSUZyYW1lV2l0aERvd25sb2FkKCkiKTsKLQotICAgIGZ1
bmN0aW9uIHJlc3BvbnNlUmVjZWl2ZWQocmVxdWVzdElkLCB0aW1lLCByZXNvdXJjZVR5cGUsIHJl
c3BvbnNlKQotICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBXZWJJbnNwZWN0b3IubmV0d29y
a0xvZy5yZXF1ZXN0Rm9ySWQocmVxdWVzdElkKTsKLSAgICAgICAgaWYgKC9kb3dubG9hZFwuenp6
Ly5leGVjKHJlcXVlc3QudXJsKSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlJlY2VpdmVkIHJlc3BvbnNlIGZvciBkb3dubG9hZC56enoiKTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTVUNDRVNTIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbG9h
ZGluZ0ZpbmlzaGVkKHJlcXVlc3RJZCwgZmluaXNoVGltZSkKLSAgICB7Ci0gICAgICAgIHZhciBy
ZXF1ZXN0ID0gV2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cucmVxdWVzdEZvcklkKHJlcXVlc3RJZCk7
Ci0gICAgICAgIGlmICgvZG93bmxvYWRcLnp6ei8uZXhlYyhyZXF1ZXN0LnVybCkpCi0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IGxvYWRpbmdGYWlsZWQocmVxdWVzdElkLCB0aW1lLCBsb2NhbGl6ZWREZXNjcmlwdGlvbiwgY2Fu
Y2VsZWQpCi0gICAgewotICAgICAgICB2YXIgcmVxdWVzdCA9IFdlYkluc3BlY3Rvci5uZXR3b3Jr
TG9nLnJlcXVlc3RGb3JJZChyZXF1ZXN0SWQpOwotICAgICAgICBpZiAoL2Rvd25sb2FkXC56enov
LmV4ZWMocmVxdWVzdC51cmwpKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLTxwPlRlc3RzIHRoYXQgcmVzcG9uc2VSZWNlaXZlZCBpcyBjYWxsZWQgb24gTmV0d29y
a0Rpc3BhdGNoZXIgZm9yIGRvd25sb2Fkcy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2hhci1jb250ZW50
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
aGFyLWNvbnRlbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
MThlNjBjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvaGFyLWNvbnRlbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAs
MCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6IFhIUiBsb2FkZWQ6IDEKLVRlc3RzIGNvbnZl
cnNpb24gb2YgSW5zcGVjdG9yJ3MgcmVzb3VyY2UgcmVwcmVzZW50YXRpb24gaW50byBIQVIgZm9y
bWF0LgotCi1pbml0aWF0b3IuY3NzOiAuaW1hZ2UtYmFja2dyb3VuZCB7Ci0gICAgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKCJyZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZyYW5kb209MSZzaXplPTIwMCIp
OwotfQotCi0uaW1hZ2UtYmFja2dyb3VuZC0yIHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
InJlc291cmNlLnBocD90eXBlPWltYWdlJnJhbmRvbT0xJnNpemU9MzAwIik7Ci19Ci0KLQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2hhci1j
b250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2hh
ci1jb250ZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxMTc4YzkuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9oYXIt
Y29udGVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPCFkb2N0eXBlIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9uZXR3b3JrLXRlc3QuanMiPjwvc2NyaXB0PgotCi08
c2NyaXB0PgotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgY29uc3QgcmVxdWVzdFJlZ0V4
cCA9IC9cL2luaXRpYXRvci5jc3MkLzsKLQotICAgIGZ1bmN0aW9uIG9uUmVxdWVzdEZpbmlzaGVk
KCkKLSAgICB7Ci0gICAgICAgIHZhciB3cml0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkhBUldyaXRl
cigpOwotICAgICAgICB2YXIgc3RyZWFtID0gbmV3IEluc3BlY3RvclRlc3QuU3RyaW5nT3V0cHV0
U3RyZWFtKG9uU2F2ZWQpOwotICAgICAgICB3cml0ZXIud3JpdGUoc3RyZWFtLCBXZWJJbnNwZWN0
b3IubmV0d29ya0xvZy5yZXF1ZXN0cywgbmV3IFdlYkluc3BlY3Rvci5Qcm9ncmVzcygpKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBvblNhdmVkKGRhdGEpCi0gICAgewotICAgICAgICB2YXIgaGFy
ID0gSlNPTi5wYXJzZShkYXRhKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImlu
aXRpYXRvci5jc3M6ICIgKyBmaW5kRW50cnkoaGFyLCByZXF1ZXN0UmVnRXhwKS5yZXNwb25zZS5j
b250ZW50LnRleHQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIGZpbmRFbnRyeShoYXIsIHJlZ2V4cCkKLSAgICB7Ci0gICAgICAg
IHZhciBlbnRyaWVzID0gaGFyLmxvZy5lbnRyaWVzOwotICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGVudHJpZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICB2YXIgZW50cnkgPSBlbnRy
aWVzW2ldOwotICAgICAgICAgICAgIGlmIChyZWdleHAudGVzdChlbnRyeS5yZXF1ZXN0LnVybCkp
Ci0gICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKLSAgICAgICAgfQotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiRkFJTDogY2FuJ3QgZmluZCByZXNvdXJjZSBmb3IgIiArIHJl
Z2V4cCk7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3Qu
bWFrZVNpbXBsZVhIUigiR0VUIiwgInJlc291cmNlcy9pbml0aWF0b3IuY3NzIiwgZmFsc2UsIG9u
UmVxdWVzdEZpbmlzaGVkKTsKLX0KLTwvc2NyaXB0PgotCi0KLTwvaGVhZD4KLQotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBjb252ZXJzaW9uIG9mIEluc3BlY3RvcidzIHJl
c291cmNlIHJlcHJlc2VudGF0aW9uIGludG8gSEFSIGZvcm1hdC4KLTwvcD4KLQotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9pbWFnZS1hcy10ZXh0LWxvYWRpbmctZGF0YS11cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9pbWFnZS1hcy10ZXh0LWxvYWRpbmct
ZGF0YS11cmwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjAy
ZTY3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvaW1hZ2UtYXMtdGV4dC1sb2FkaW5nLWRhdGEtdXJsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDUgKzAsMCBAQAotVGVzdHMgdGhhdCBsb25nIGRhdGE6IFVSTHMgYXJlIGNvcnJl
Y3RseSB0cmltbWVkIGluIE1JTUUgdHlwZSBjb25zb2xlIHdhcm5pbmdzLgotCi1CdWcgMTAwMDgz
ICAKLVJlc291cmNlIGludGVycHJldGVkIGFzIEltYWdlIGJ1dCB0cmFuc2ZlcnJlZCB3aXRoIE1J
TUUgdHlwZSB0ZXh0L3BsYWluOiAiZGF0YTp0ZXh0L3BsYWluO2Jhc2U2NCwvOWovNEFBUVNrWkpS
Z0FCQVFFQkxBRXNBQUQvMndCREFBTUNBZ01DQWdNREF3TUVBd01F4oCmRGNkRFdud3JPeFFBUjhJ
NmVtSEtUU2JORkNPeW8wVnZnMWtWdHBDZTZkSVhaSThUc1JDMUhielVvRWsvVW5EV1NYdk9kd2lm
L1oiLiBpbWFnZS1hcy10ZXh0LWxvYWRpbmctZGF0YS11cmwuaHRtbDo5Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvaW1hZ2UtYXMtdGV4dC1s
b2FkaW5nLWRhdGEtdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL2ltYWdlLWFzLXRleHQtbG9hZGluZy1kYXRhLXVybC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4OGI0YjMyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvaW1hZ2UtYXMtdGV4dC1sb2FkaW5nLWRhdGEtdXJsLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9j
b25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGxvYWRJbWFnZSgp
Ci17Ci0gICAgdmFyIGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKLSAgICBpLnNy
YyA9ICJkYXRhOnRleHQvcGxhaW47YmFzZTY0LC85ai80QUFRU2taSlJnQUJBUUVCTEFFc0FBRC8y
d0JEQUFNQ0FnTUNBZ01EQXdNRUF3TUVCUWdGQlFRRUJRb0hCd1lJREFvTURBc0tDd3NORGhJUURR
NFJEZ3NMRUJZUUVSTVVGUlVWREE4WEdCWVVHQklVRlJULzJ3QkRBUU1FQkFVRUJRa0ZCUWtVRFFz
TkZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV
RkJRVUZCUVVGQlQvd0FBUkNBQkxBRXNEQVJFQUFoRUJBeEVCLzhRQUhRQUFBQWNCQVFFQUFBQUFB
QUFBQUFBQUFBRUNCQVVHQndnRENmL0VBRG9RQUFFREFnUURCUWNCQmdjQUFBQUFBQUVDQXdRRkVR
QUdFaUVIRXpFVUZpSkJVUWdWTWxKaGthR0JDU01rUW1PeFUySnhjc0hoOFAvRUFCb0JBQU1CQVFF
QkFBQUFBQUFBQUFBQUFBQUJBZ01FQlFiL3hBQXZFUUFDQWdFREFRVUhCQU1BQUFBQUFBQUFBUUlS
QXhJaE1VRUVFeUpoZ1FWUmNaR3gwZkFVTXFIQkl6UHgvOW9BREFNQkFBSVJBeEVBUHdDVDkzcTlN
ZVliQTkzcTlNQUJlNzFEeU9BUVBkNnZRNFlBTUJYcGhBRHNDdmxPQUF1d0tIa2NBQTdBcjVUaGdE
c0t2bHdnQjJKWHk0QU5FN3FPNkNybEtLZk02VGI3NDMwRWllN0N2a1Ayd2FBQzdzSytUOFlOQWdk
MkZmSitNR2dBZDJGZkorTUdnZGc3c0srVDhZTkFCZDJGRCtYOFlOQUJkMkYvSitNTFFGZzdzSytY
OFlOQUE3c3ErVDhZTkFXYit4bHN3anBCQ21EMUhUOFkxYVRKRzBqS2pDMzdJYjBBanlIaEdCTUdB
NUxiYnRydHYwU2tYSncyd0VkemtFMlNrRStsdC90Z1ZNVkJuSmY5UDhZcWdDN2wvd0JQOFlla0R5
ZnlXYkFocTRIVUFZVFFCbkk0K1MzcmdvWWxXUjBvSldkZ091M1RDb0xQQmVYR2txSUNRZjB3aEYz
akxTODBWbFFzRGEyQVo2eHcydGQraUFMNFF4Y2lTMUdITnVuZndqekF3UFlCYk1wcDRvdWxKZEl2
cXZiQUQySGxNSWNrT2gwQkNBbS9pM0pQMHhjWFRFUzZJRFMwZ2dDeDlSalFRMlcyMGw1U0FrRURh
OXZQQ3NCaE1RcEN5MkVYSi9tU0xnNFFDMkl6Q0dydko1aEozdjB3QUp0U2Y4QlAyd0RLbjc0amwz
a3MyVjVBV3RjNHhiTFVUMWZsTnA1VEhiNGpFeDBxRFVSNlNoRGpwSFVKU1RjbXhIUVlPTnVvcklP
dXJxVWRpS0hZNzhkYXlVckJBRzl5ZWwvUVlpVm90VStDRVl6UTlTNWpqVWxKYjBKOEpYMVY5Y0pT
RzRsb3lyWHBOV3JMTFl1V2RWeVFiMytuMjMvVEZxVnVpWEhhelRnL29RUWszOUw0NkxNaU9kVElr
eVUvdXlFbnFkUS84Y0lCRlZtQ0hMUzM0TzBteVF5dHhDVi9va2tIeTlQTEFCWGFwVTUwVWxyc0R6
YTlWcktUYXgvMHdnSXd0MVFIZUkrRC9tUVFjTURuamh4N1J1WDg4ZHFhelZJaFpQZk4wdHZJZGRJ
Y1dUcEJTcTFnUnVUZjZmWEh6ZlpmYW1MdERhek5RZng1T3B3Y1ZhM09OY3gwNnRWTE1FNEtuT3pw
c3laSlYyWnB4Ynp5MUlVb2xhRkJJVXBKQUoxamJiZTF3TVA5T3B0eWpYenR2ODk0NFphVzUzZjdK
UEhzY1dzanhxSFdJemtpcjVlanN0OXFTelpLa0pBU2xLbGttN213djBKRnR1dVBYd1NjNDAraGpO
VTlqZDNld3VMNWtpQzI2Z0lLUVhVQW14NmdISFZwVDZFYW1qa0RqdCswQ3BHUWVMa1NnNWRpdnNR
OHBWRmNXdU5xWEdiOThKUTN5ekZaSzByVTJodFNpZWI0U29vS2JBSFVIcFNleUM3VzUxcncwNG1V
M2l0dytvT2I2RSs4cWwxaU4ybGtQdHBTNjNaU2tMUXNBa0JTVm9VazJKRzJHU1pkN1lISENzY0dP
RjdVcWpCcFZRcXo3dE9EN3FTb3hVOHBTbE9BZENiQWpmWVhIVGJITm5uS0VmRHl5NHBObnk4aXVU
TXpOOHg5dCtZdDlGMXlGcVV0d3BIaDJYMTJGdDcvQU44ZURsbERHL0ZMZGU4Nks4T3lPdjhBaEg3
WjlVNFE4S2FabEtwMHFWbVdkVGw5bWh6NUV0WWRYSExpdkNWT0o4UmJTVXBSOFFJU1FiYll1SHRi
d3RhUDUvUFF5N3ZuU1pSTjlxN1BUbFNxTHpiY3hodVJNa1NFTUlYemtNcGNkVXNOcFVwQkpTa0tD
UUw3QklBc0JiRlI3WkpxNHEwL1A3KzdnMmZaOVcrdGVqT1o4dGNWOHkwRnQ2TkpxRGJ6U1ZrdXhu
WWpaMVd0WlFJdHFIVzR1RHVDTDc0M2wyTHMyVjNwcjRPdlE2WjNUdFcvaC9KWW8vSGlTMkFpUlJo
TVlaZENrU1dKWmFjanJCQStGWUpSWTMvbTg3M3h6djJaaWhKU3d5Y1g1R0xnNXEwYVp3bjlyUlBD
cWM0NVFaOWNvOFNSS0V5ZFNLZ3dtVkVtT1dBVnpGSUpjM0FIakJDZ0wySTN4cENQYmNUdU00elhu
c1JMRStLTjhwbjdSYWRXSlpSRnkvbEtYR0FUL0QrOVg0NzQ4WGlJS2diN2JXS1JZNzc5TWRTN1ps
aC90eE5lYTNYelJpc01uYVhQbWNNOFhNNTBUTW5HUE45YnJFV28wcVZVS3pLcVRzTU5wZFNsTGpt
dEtFa3FHcFBUZmEvVysrT3RUelRncDQxRjM1djdIcjRzZnNuWHB6Wk1xVjF0R0RkVnpUa3Q3MnJm
YmV6cmpnUjdjSTRPK3p0bHZMa2ZLOGVROVRZOHBFVjJkVWRDbkM1SWNkWlV0dEk2RFdvcXVvRWdK
dGErL0xMdGVUdkhoeHd0cnIwUE55WThkS1dGdXE2cGM3MnR1bkcrMzNvUEU3MnVLbnhOcDdVSE5H
WkdLNUhqUEdRekhnMHBQSlM3Y2RFcENVS1NQaFRyVXJyZlk0OHljTzNkb3ZYUFN2ZC96ZjBzdkhp
cmxldjU5VExhaHhmUzhHL2Q5SmVMcTdoRDBpUXl5Tkk2NlFsSzdJQjh5Zk1EZkdTOW00bGZlU2JY
a3Z4bTBjRTVQZVhKQkk0b3pFdUtLbzBWYzBydHp3bm5LRjl0UE1ldmM5YjZVMkgzeDZVT3g5blN2
Ujg3K2xocGVQd3g2L25PeEdIaVRtd1dDSzFWMzBnQWN5TTIyMDBmOXFlV2JEMC80NlkwY2NTNkpH
c2NhUzJWK2kreGJIT0hOUmhUMGtOVU9ib3VsYW1wd1lBOVFwT29iMkk2QTljY3ZlSnJsblZUVDRS
TlF1SE1OZkpXaW5zZHZlYjF2eEdwN2E3SzI4SXVwSkpVazNDa25iZS9rU1BLM3k5aEpLUENKRm5o
bFMwcTVmdTk5YmlTRUpIYVloNWUvd0FBSlh1YmtiS0JPNDZkY0paSlZhZTNxRHA3VnVXR2s4S0ta
VUpDSWpWQmFtYU5sRjUxaGFrRUt0cEtRZFJJTmhzTUx2VytHSnF1VU9EbERLTHp4YVZTNkErNEZL
WVVGc1JuZVVvYkJPNlNRb1hQaE52UEM3eWNGczM4eWRFWjd0TDVEZVhsRExyN3l0Rk5wVERlNFNw
Y3VLbFJQb0NsT3JjallXRnIyd0tjcXB2NmpyZlpFRkp5aGx5VnFVNjlDWVNrMjBlOG81MTN2WWJK
SkYvK3NYcmt1UDdCZVpHOXo2UTV6VnMxcWlJU2ZDcFM1VFMxQkE2NlVqU2dXdGF5Z1RodVRxbW1V
cE5OdEVkT3lwQjVDMllGU29FWWJMTDh1WXB6V1R0YlNnSVNrZm9mNzRGT3VVMkhLNUhkRnl2bHBO
TGpDZFZXRnpOTjNWUjZpRXQ2dlBTTkoyOU44WTVIazFQU2xYbXR6b3h1Q2l0YmQrVDJOYWp6TXZy
RXFvUzBKcWFYVURuU1hJaEtPV0xKU2tyU0JaQXNCWW5UMXZpTzdkOHRlcGgzdTNDUE9vNWd5bEtZ
UnpheEhpdE1FSFUzeWtsdFduUllIVHFTYkpHNDM4STN0MWxZRW54ZGhMSTN1MGc2TFBvbEVVWGFm
WG1rSWNLbmk0dmxLWDFKSjFLUnEySnZmcU50eHRpNVFVdG1namttbHN5UmcxdW5pREpMTStuTGlQ
YTMxcFdXZ2txY1VTU0FiZUkydUFBVDBOdWh4bExIQ1R0b3VPV2NWU0hFUmlEbWNHVkVoUTZtRXF1
SElqWWNhQ2xwSXNiSTBsUkZ4YzdpM1hhMkswcVB2SmVSdlowUnN6aDFsaW14OWRRaXhtMU10cEtB
NkVLVzJBZmlOaHZjamU5NzM2YjR2VzExTStlaUdWVm9PUjFQeUlMeTZhMlV4eVhtMjNSbzBnM1VT
UmM2bEEzSlNibXd0dmlsSi91WDlpZDFwWWwvSzJSYXNJamEyS0lsYlRZam9Ra0xRZElGMDZ3a3Ax
RHhmRWQvSysrRjNraytXVTFkYklaeDh2WktZUzA0OHpTSEdYYnBhUExYeTc5VGRXbzcySG1SdURm
RGMzYnBpcllib3lkdzZuZ3lCQWpXY0pQN3AxMUtldmtPYUxEOUJoOTdrVzFocDhqd3pkSmtMeXFo
ZmE1SVUzSmxhU2w5WXR5MkZGQTJQUVc2ZmZIRmhmOEFsYStCMjVVdTYxZVgzSXpoTmxlbHRVL0w5
VjdJSEowaGhwUzNYVnFjR291QWFrcFVTRW5ZYmdBNDdzK1NWeVY5VG13d2pTZGRDVnpmVzV0T2FQ
WlhoRy9pcENUeWtKVHFUclJzYkRjZlE3WWpIRlhRNThsMzRQNUJ5NVZuSzVVcDFGaFRKZE1VRlJG
U0dRdExSVTAwVDRENFR2Y2dFSFNTb2kybzNqTGtrb3hpbnkyS0VJdVc2TGZYNkZBajBPWS9IaXR3
MXk1YVhYMHd4eUVPcStHNmtJc2s3QWVYbVQxSnZuSHhLbWJ1RVU3U01welptaXBVakxFYVhHZVFt
VW9zTkY1eGh0eFJRdHhJVUNWSlBVWW1QaWxUOHlZZnZvc21TY3JVZlBWT0VtdFV1SkpmS25HdzQw
eWxncFNFMkFUeXduU0I5TFlieVRWYm5STERqVGV4V3N0WkpvYkhFck1OUE5PYmZoaW1RVmhtVVZQ
cENuSFNsYXZHVHVRT3ZYcjZuR3VTY3U2VHZxL3FjU2hGVGt2SXMxQnkxU00wVlp1RlVxWENlakI1
V2xEY2REV253ck94UUFSOEk2ZW1IS1RTYk5GQ095bzBWdmcxa1Z0cENlNmRJWFpJOFRzUkMxSGJ6
VW9Fay9VbkRXU1h2T2R3aWYvWiI7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTsK
LX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25p
ZmZlcihzdGVwMSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZEltYWdl
KCkiKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBsb25nIGRhdGE6IFVSTHMgYXJlIGNvcnJlY3RseSB0cmlt
bWVkIGluIE1JTUUgdHlwZSBjb25zb2xlIHdhcm5pbmdzLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAwODMiPkJ1ZyAxMDAwODM8L2E+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstY2FjaGVkcmVzb3VyY2VzLXdpdGgtc2FtZS11cmxzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay1jYWNoZWRyZXNvdXJjZXMtd2l0aC1zYW1lLXVybHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzNWMwMTE4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jYWNoZWRyZXNvdXJjZXMtd2l0aC1z
YW1lLXVybHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMjM6IERvbmUuCi1UZXN0cyB0aGF0IHdoZW4gd2UgbG9hZCB0d28g
ZGlmZmVyZW50IGltYWdlcyBmcm9tIHRoZSBzYW1lIHVybCAoZS5nLiBjb3VudGVycyksIHRoZWly
IGNvbnRlbnQgaXMgZGlmZmVyZW50IGluIG5ldHdvcmsgcGFuZWwgYXMgd2VsbC4KLQotCi1odHRw
Oi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBo
cD90eXBlPWltYWdlJnJhbmRvbT0xCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocD90eXBlPWltYWdlJnJhbmRvbT0xCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1j
YWNoZWRyZXNvdXJjZXMtd2l0aC1zYW1lLXVybHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jYWNoZWRyZXNvdXJjZXMtd2l0aC1zYW1lLXVy
bHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmEwN2ZhYi4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2Fj
aGVkcmVzb3VyY2VzLXdpdGgtc2FtZS11cmxzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2FkSW1hZ2VzKCkKLXsKLSAgICB2YXIg
aW1hZ2UgPSBuZXcgSW1hZ2UoKTsKLSAgICBpbWFnZS5vbmxvYWQgPSBzdGVwMjsKLSAgICBpbWFn
ZS5zcmMgPSAicmVzb3VyY2VzL3Jlc291cmNlLnBocD90eXBlPWltYWdlJnJhbmRvbT0xIjsKLSAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlKTsKLX0KLQotZnVuY3Rpb24gc3RlcDIo
KQotewotICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZSgpOwotICAgIGltYWdlLm9ubG9hZCA9IGlt
YWdlTG9hZGVkOwotICAgIGltYWdlLnNyYyA9ICJyZXNvdXJjZXMvcmVzb3VyY2UucGhwP3R5cGU9
aW1hZ2UmcmFuZG9tPTEiOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2UpOwot
fQotCi1mdW5jdGlvbiBpbWFnZUxvYWRlZCgpCi17Ci0gICAgY29uc29sZS5sb2coIkRvbmUuIik7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNu
aWZmZXIoc3RlcDIsIHRydWUpOwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxv
YWRJbWFnZXMoKSIpOwotCi0gICAgZnVuY3Rpb24gc3RlcDIobXNnKQotICAgIHsKLSAgICAgICAg
Ly8gaW5zcGVjdG9yLXRlc3QuanMgYXBwZWFycyBpbiBuZXR3b3JrIHBhbmVsIG9jY2FzaW9uYWxs
eSBpbiBTYWZhcmkgb24KLSAgICAgICAgLy8gTWFjLCBzbyBjaGVja2luZyB0d28gbGFzdCByZXF1
ZXN0cy4KLSAgICAgICAgdmFyIHJlcXVlc3RzQ291bnQgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5l
dHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGg7Ci0gICAgICAgIHZhciByZXF1ZXN0MSA9IFdlYkluc3Bl
Y3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW3JlcXVlc3RzQ291bnQgLSAyXTsKLSAgICAg
ICAgdmFyIHJlcXVlc3QyID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNb
cmVxdWVzdHNDb3VudCAtIDFdOwotICAgICAgICByZXF1ZXN0MS5yZXF1ZXN0Q29udGVudChjb250
ZW50TG9hZGVkKTsKLSAgICAgICAgcmVxdWVzdDIucmVxdWVzdENvbnRlbnQoY29udGVudExvYWRl
ZCk7Ci0gICAgfQotCi0gICAgdmFyIGNvbnRlbnRMb2FkZWRDb3VudCA9IDA7Ci0gICAgZnVuY3Rp
b24gY29udGVudExvYWRlZCgpCi0gICAgewotICAgICAgICBpZiAoKytjb250ZW50TG9hZGVkQ291
bnQgIT09IDIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIHJlcXVlc3RzQ291
bnQgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGg7Ci0gICAg
ICAgIHZhciByZXF1ZXN0MSA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3Rz
W3JlcXVlc3RzQ291bnQgLSAyXTsKLSAgICAgICAgdmFyIHJlcXVlc3QyID0gV2ViSW5zcGVjdG9y
LnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbcmVxdWVzdHNDb3VudCAtIDFdOwotCi0gICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlcXVlc3QxLnVybCk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KHJlcXVlc3QyLnVybCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0VHJ1ZShyZXF1ZXN0MS5jb250ZW50ICE9PSByZXF1ZXN0Mi5jb250ZW50KTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCB3aGVuIHdlIGxv
YWQgdHdvIGRpZmZlcmVudCBpbWFnZXMgZnJvbSB0aGUgc2FtZSB1cmwgKGUuZy4gY291bnRlcnMp
LAotdGhlaXIgY29udGVudCBpcyBkaWZmZXJlbnQgaW4gbmV0d29yayBwYW5lbCBhcyB3ZWxsLjwv
cD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jbGVhci1jYWNoZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2xlYXItY2FjaGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzViZDFkLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay1jbGVhci1jYWNoZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzogRmlyc3QgWEhSIGxvYWRlZC4KLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAyODogRG9uZS4KLVRlc3RzIGNsZWFyaW5nIGJyb3dzZXIgY2FjaGUgZnJvbSBp
bnNwZWN0b3IuCi0KLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZXMvcmFuZG9tLWNhY2hlZC5waHAKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZXMvcmFuZG9tLWNhY2hlZC5waHAKLWh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmFuZG9tLWNhY2hlZC5waHAKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNs
ZWFyLWNhY2hlLmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL25ldHdvcmstY2xlYXItY2FjaGUuaHRtbC1kaXNhYmxlZApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggY2U3YjBhMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2xlYXItY2FjaGUuaHRtbC1kaXNhYmxl
ZAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL25l
dHdvcmstdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgLy8gU2luY2UgdGhpcyB0ZXN0IGNvdWxkIGJlIHJ1biB0b2dldGhlciB3aXRoIG90aGVyIGlu
c3BlY3RvciBiYWNrZW5kIGNhY2hlCi0gICAgLy8gdGVzdHMsIHdlIG5lZWQgdG8gcmVzZXQgc2l6
ZSBsaW1pdHMgdG8gZGVmYXVsdCBvbmVzLgotICAgIEluc3BlY3RvclRlc3QucmVzZXRJbnNwZWN0
b3JSZXNvdXJjZXNEYXRhKHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QubWFrZVNpbXBsZVhIUldpdGhQYXlsb2FkKCJHRVQiLCAicmVz
b3VyY2VzL3JhbmRvbS1jYWNoZWQucGhwIiwgdHJ1ZSwgc3RlcDIpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAyKG1zZykKLSAgICB7Ci0gICAgICAgIGlmICh0eXBlb2YoTmV0d29ya0FnZW50
LmNsZWFyQnJvd3NlckNhY2hlKSA9PT0gJ2Z1bmN0aW9uJykKLSAgICAgICAgICAgIE5ldHdvcmtB
Z2VudC5jbGVhckJyb3dzZXJDYWNoZShzdGVwMyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHN0ZXAzKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMobXNnKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5tYWtlU2ltcGxlWEhSV2l0aFBheWxvYWQoIkdFVCIsICJyZXNvdXJj
ZXMvcmFuZG9tLWNhY2hlZC5waHAiLCB0cnVlLCBzdGVwNCk7Ci0KLSAgICAgICAgZnVuY3Rpb24g
Zmlyc3RYSFJMb2FkZWQoKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm1h
a2VTaW1wbGVYSFJXaXRoUGF5bG9hZCgiR0VUIiwgInJlc291cmNlcy9yYW5kb20tY2FjaGVkLnBo
cCIsIHRydWUsIHN0ZXA0KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0
KG1zZykKLSAgICB7Ci0gICAgICAgIC8vIGluc3BlY3Rvci10ZXN0LmpzIGFwcGVhcnMgaW4gbmV0
d29yayBwYW5lbCBvY2Nhc2lvbmFsbHkgaW4gU2FmYXJpIG9uCi0gICAgICAgIC8vIE1hYywgc28g
Y2hlY2tpbmcgdHdvIGxhc3QgcmVzb3VyY2VzLgotICAgICAgICB2YXIgcmVzb3VyY2VzQ291bnQg
PSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXNvdXJjZXMubGVuZ3RoOwotICAgICAg
ICB2YXIgcmVzb3VyY2UxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVzb3VyY2Vz
W3Jlc291cmNlc0NvdW50IC0gM107Ci0gICAgICAgIHZhciByZXNvdXJjZTIgPSBXZWJJbnNwZWN0
b3IucGFuZWwoIm5ldHdvcmsiKS5yZXNvdXJjZXNbcmVzb3VyY2VzQ291bnQgLSAyXTsKLSAgICAg
ICAgdmFyIHJlc291cmNlMyA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlc291cmNl
c1tyZXNvdXJjZXNDb3VudCAtIDFdOwotICAgICAgICByZXNvdXJjZTEucmVxdWVzdENvbnRlbnQo
Y29udGVudExvYWRlZCk7Ci0gICAgICAgIHJlc291cmNlMi5yZXF1ZXN0Q29udGVudChjb250ZW50
TG9hZGVkKTsKLSAgICAgICAgcmVzb3VyY2UzLnJlcXVlc3RDb250ZW50KGNvbnRlbnRMb2FkZWQp
OwotICAgIH0KLQotICAgIHZhciBjb250ZW50TG9hZGVkQ291bnQgPSAwOwotICAgIGZ1bmN0aW9u
IGNvbnRlbnRMb2FkZWQoKQotICAgIHsKLSAgICAgICAgaWYgKCsrY29udGVudExvYWRlZENvdW50
ICE9PSAzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciByZXNvdXJjZXNDb3Vu
dCA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlc291cmNlcy5sZW5ndGg7Ci0gICAg
ICAgIHZhciByZXNvdXJjZTEgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXNvdXJj
ZXNbcmVzb3VyY2VzQ291bnQgLSAzXTsKLSAgICAgICAgdmFyIHJlc291cmNlMiA9IFdlYkluc3Bl
Y3Rvci5wYW5lbCgibmV0d29yayIpLnJlc291cmNlc1tyZXNvdXJjZXNDb3VudCAtIDJdOwotICAg
ICAgICB2YXIgcmVzb3VyY2UzID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVzb3Vy
Y2VzW3Jlc291cmNlc0NvdW50IC0gMV07Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQocmVzb3VyY2UxLnVybCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlc291
cmNlMi51cmwpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZXNvdXJjZTMudXJs
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKHJlc291cmNlMS5jb250ZW50ICE9
PSByZXNvdXJjZTIuY29udGVudCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShy
ZXNvdXJjZTIuY29udGVudCA9PT0gcmVzb3VyY2UzLmNvbnRlbnQpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxwPlRlc3RzIGNsZWFyaW5nIGJyb3dzZXIgY2Fj
aGUgZnJvbSBpbnNwZWN0b3IuPC9wPgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY2xlYXItY29v
a2llcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL25ldHdvcmstY2xlYXItY29va2llcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAzNzI2MTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNsZWFyLWNvb2tpZXMtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IEZp
cnN0IFhIUiBsb2FkZWQuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjg6IERvbmUuCi1UZXN0cyBj
bGVhcmluZyBicm93c2VyIGNvb2tpZXMgZnJvbSBpbnNwZWN0b3IuCi0KLWh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc2V0LWNvb2tpZS5waHAKLWh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc2V0LWNvb2tpZS5w
aHAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLWNsZWFyLWNvb2tpZXMuaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jbGVhci1jb29raWVzLmh0bWwtZGlzYWJs
ZWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmNjRmMDQuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNsZWFyLWNv
b2tpZXMuaHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL25ldHdvcmstdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgLy8gU2luY2UgdGhpcyB0ZXN0IGNvdWxkIGJlIHJ1biB0b2dl
dGhlciB3aXRoIG90aGVyIGluc3BlY3RvciBiYWNrZW5kIGNhY2hlCi0gICAgLy8gdGVzdHMsIHdl
IG5lZWQgdG8gcmVzZXQgc2l6ZSBsaW1pdHMgdG8gZGVmYXVsdCBvbmVzLgotICAgIEluc3BlY3Rv
clRlc3QucmVzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhKHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9u
IHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubWFrZVNpbXBsZVhIUldpdGhQ
YXlsb2FkKCJHRVQiLCAicmVzb3VyY2VzL3NldC1jb29raWUucGhwIiwgdHJ1ZSwgc3RlcDIpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKG1zZykKLSAgICB7Ci0gICAgICAgIGlmICh0eXBl
b2YoTmV0d29ya0FnZW50LmNsZWFyQnJvd3NlckNvb2tpZXMpID09PSAnZnVuY3Rpb24nKQotICAg
ICAgICAgICAgTmV0d29ya0FnZW50LmNsZWFyQnJvd3NlckNvb2tpZXMoc3RlcDMpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBzdGVwMygpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAz
KG1zZykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubWFrZVNpbXBsZVhIUldpdGhQYXls
b2FkKCJHRVQiLCAicmVzb3VyY2VzL3NldC1jb29raWUucGhwIiwgdHJ1ZSwgZmlyc3RYSFJMb2Fk
ZWQpOwotCi0gICAgICAgIGZ1bmN0aW9uIGZpcnN0WEhSTG9hZGVkKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5tYWtlU2ltcGxlWEhSV2l0aFBheWxvYWQoIkdFVCIsICJy
ZXNvdXJjZXMvc2V0LWNvb2tpZS5waHAiLCB0cnVlLCBzdGVwNCk7Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBzdGVwNChtc2cpCi0gICAgewotICAgICAgICAvLyBpbnNwZWN0b3It
dGVzdC5qcyBhcHBlYXJzIGluIG5ldHdvcmsgcGFuZWwgb2NjYXNpb25hbGx5IGluIFNhZmFyaSBv
bgotICAgICAgICAvLyBNYWMsIHNvIGNoZWNraW5nIHR3byBsYXN0IHJlc291cmNlcy4KLSAgICAg
ICAgdmFyIHJlc291cmNlc0NvdW50ID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVz
b3VyY2VzLmxlbmd0aDsKLSAgICAgICAgdmFyIHJlc291cmNlMSA9IFdlYkluc3BlY3Rvci5wYW5l
bCgibmV0d29yayIpLnJlc291cmNlc1tyZXNvdXJjZXNDb3VudCAtIDJdOwotICAgICAgICB2YXIg
cmVzb3VyY2UyID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVzb3VyY2VzW3Jlc291
cmNlc0NvdW50IC0gMV07Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVzb3Vy
Y2UxLnVybCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlc291cmNlMi51cmwp
OwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghaGFzUmVxdWVzdENvb2tpZVdp
dGhOYW1lKHJlc291cmNlMSwgIlRlc3RDb29raWUiKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0VHJ1ZShoYXNSZXF1ZXN0Q29va2llV2l0aE5hbWUocmVzb3VyY2UyLCAiVGVzdENvb2tp
ZSIpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLQotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIGhhc1JlcXVlc3RDb29raWVXaXRoTmFtZShyZXNvdXJjZSwgbmFtZSkKLSAg
ICB7Ci0gICAgICAgIHZhciByZXF1ZXN0Q29va2llcyA9IHJlc291cmNlLnJlcXVlc3RDb29raWVz
OwotICAgICAgICBpZiAoIXJlcXVlc3RDb29raWVzKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICBmb3IgKHZhciAgaSA9IDA7IGkgPCByZXF1ZXN0Q29va2llcy5sZW5ndGg7IGkr
KykgewotICAgICAgICAgICAgaWYgKHJlcXVlc3RDb29raWVzW2ldLm5hbWUgPT09IG5hbWUpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotICAgIDxwPlRlc3RzIGNsZWFyaW5nIGJyb3dzZXIgY29va2llcyBmcm9tIGluc3BlY3Rv
ci48L3A+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LWVtYmVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
bmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LWVtYmVkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDNiMWNkMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC1l
bWJlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgNTg6IERvbmUuCi1UZXN0cyBOZXR3b3JrUmVzb3VyY2VzRGF0YSBsb2dp
YyBmb3IgZW1iZWQgY29udGVudCByZXBsYWNlbWVudC4KLQotCi1odHRwOi8vMTI3LjAuMC4xOjgw
MDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocD9zaXplPTIwMAotcmVz
b3VyY2UuY29udGVudCBhZnRlciByZXF1ZXN0aW5nIGNvbnRlbnQ6IG51bGwKLWh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhwP3NpemU9
MTAwCi1yZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVudDogKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotaHR0cDovLzEyNy4wLjAuMTo4MDAw
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5waHA/c2l6ZT0yMDEKLXJlc291
cmNlLmNvbnRlbnQgYWZ0ZXIgcmVxdWVzdGluZyBjb250ZW50OiBudWxsCi1odHRwOi8vMTI3LjAu
MC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocD9zaXplPTEw
MAotcmVzb3VyY2UuY29udGVudCBhZnRlciByZXF1ZXN0aW5nIGNvbnRlbnQ6ICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVwbGFjZW1l
bnQtZW1iZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
bmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LWVtYmVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDFiODliYTEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVwbGFjZW1lbnQtZW1iZWQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXZhciBs
b2FkZWRGaXJzdFVSTCA9IGZhbHNlOwotZnVuY3Rpb24gc3RyZWFtTG9hZGVkKCkKLXsKLSAgICBp
ZiAobG9hZGVkRmlyc3RVUkwpCi0gICAgICAgIHJldHVybjsKLQotICAgIGxvYWRlZEZpcnN0VVJM
ID0gdHJ1ZTsKLSAgICBsb2FkVVJMcygpOwotfQotCi12YXIgc25pZmZlckluc3RhbGxlZCA9IGZh
bHNlOwotZnVuY3Rpb24gb25TbmlmZmVySW5zdGFsbGVkKCkKLXsKLSAgICBzbmlmZmVySW5zdGFs
bGVkID0gdHJ1ZTsKLSAgICBsb2FkVVJMcygpOwotfQotCi1mdW5jdGlvbiBsb2FkVVJMcygpCi17
Ci0gICAgaWYgKCFzbmlmZmVySW5zdGFsbGVkIHx8ICFsb2FkZWRGaXJzdFVSTCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgIGNvbnNvbGUu
bG9nKCJUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gYXMgd2luZG93LmludGVybmFscyBpcyBub3Qg
YXZhaWxhYmxlLiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGludGVybmFscy5zZXRJ
bnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cygzMDAsIDIwMCk7Ci0KLSAgICAvLyBIZXJl
IHdlIHRlc3QgcmVwbGFjZW1lbnQgbG9naWMuIFdlIHNhdmUgZmlyc3QgdHdvIHJlc291cmNlcyBj
b250ZW50LAotICAgIC8vIGRpc2NhcmQgdGhpcmQgcmVzb3VyY2UgY29udGVudCBvbmNlIHdlIHNl
ZSBpdHMgc2l6ZSBleGNlZWRzIGxpbWl0LAotICAgIC8vIGFuZCBmaW5hbGx5IHJlcGxhY2UgZmly
c3QgcmVzb3VyY2UgY29udGVudCB3aXRoIHRoZSBsYXN0IHJlc291cmNlIGNvbnRlbnQuCi0KLSAg
ICBwbGcuZ2V0VVJMTm90aWZ5KCJyZXNvdXJjZXMvcmVzb3VyY2UucGhwP3NpemU9MjAwIiwgbnVs
bCwgImxvYWRVUkwyIik7Ci19Ci0KLWZ1bmN0aW9uIGxvYWRVUkwyKCkKLXsKLSAgICBwbGcuZ2V0
VVJMTm90aWZ5KCJyZXNvdXJjZXMvcmVzb3VyY2UucGhwP3NpemU9MTAwIiwgbnVsbCwgImxvYWRV
UkwzIik7Ci19Ci0KLWZ1bmN0aW9uIGxvYWRVUkwzKCkKLXsKLSAgICBwbGcuZ2V0VVJMTm90aWZ5
KCJyZXNvdXJjZXMvcmVzb3VyY2UucGhwP3NpemU9MjAxIiwgbnVsbCwgImxvYWRVUkw0Iik7Ci19
Ci0KLWZ1bmN0aW9uIGxvYWRVUkw0KCkKLXsKLSAgICBwbGcuZ2V0VVJMTm90aWZ5KCJyZXNvdXJj
ZXMvcmVzb3VyY2UucGhwP3NpemU9MTAwIiwgbnVsbCwgImFsbFVSTHNMb2FkZWQiKTsKLX0KLQot
ZnVuY3Rpb24gYWxsVVJMc0xvYWRlZCgpCi17Ci0gICAgY29uc29sZS5sb2coIkRvbmUuIik7Ci19
Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZm
ZXIoc3RlcDEpOwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm9uU25pZmZlcklu
c3RhbGxlZCgpIik7Ci0KLSAgICBmdW5jdGlvbiBkdW1wUmVxdWVzdChyZXF1ZXN0LCBjYWxsYmFj
aykKLSAgICB7Ci0gICAgICAgIGlmICghcmVxdWVzdCkKLSAgICAgICAgICAgIHJldHVybiBjYWxs
YmFjaygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZXF1ZXN0LnVybCk7Ci0K
LSAgICAgICAgZnVuY3Rpb24gY29udGVudExvYWRlZCgpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3Rp
bmcgY29udGVudDogIiArIHJlcXVlc3QuY29udGVudCk7Ci0gICAgICAgICAgICBjYWxsYmFjaygp
OwotICAgICAgICB9Ci0KLSAgICAgICAgcmVxdWVzdC5yZXF1ZXN0Q29udGVudChjb250ZW50TG9h
ZGVkKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICB2YXIg
cmVxdWVzdCA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3Bl
Y3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzLmxlbmd0aCAtIDRdOwotICAgICAgICBkdW1w
UmVxdWVzdChyZXF1ZXN0LCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQot
ICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsi
KS5yZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGgg
LSAzXTsKLSAgICAgICAgZHVtcFJlcXVlc3QocmVxdWVzdCwgc3RlcDMpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gV2ViSW5zcGVj
dG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3Jr
IikucmVxdWVzdHMubGVuZ3RoIC0gMl07Ci0gICAgICAgIGR1bXBSZXF1ZXN0KHJlcXVlc3QsIHN0
ZXA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgewotICAgICAgICB2YXIg
cmVxdWVzdCA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3Bl
Y3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzLmxlbmd0aCAtIDFdOwotICAgICAgICBkdW1w
UmVxdWVzdChyZXF1ZXN0LCBzdGVwNSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDUoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5UZXN0
cyBOZXR3b3JrUmVzb3VyY2VzRGF0YSBsb2dpYyBmb3IgZW1iZWQgY29udGVudCByZXBsYWNlbWVu
dC48L3A+Ci0gICAgPGVtYmVkIG5hbWU9InBsZyIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQt
dGVzdC1uZXRzY2FwZSIgc3JjPSJyZXNvdXJjZXMvcmVzb3VyY2UucGhwP3R5cGU9aW1hZ2UiIG9u
c3RyZWFtbG9hZD0ic3RyZWFtTG9hZGVkKCkiPjwvZW1iZWQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1jb250ZW50LXJlcGxhY2VtZW50LXhoci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC14
aHItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Y2RlZGI4Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1jb250ZW50LXJlcGxhY2VtZW50LXhoci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxNiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IERvbmUuCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgNjogWEhSIGxvYWRlZDogMQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6
IFhIUiBsb2FkZWQ6IDIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2OiBYSFIgbG9hZGVkOiAzCi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgNjogWEhSIGxvYWRlZDogNAotVGVzdHMgTmV0d29ya1Jlc291
cmNlc0RhdGEgbG9naWMgZm9yIFhIUiBjb250ZW50IHJlcGxhY2VtZW50LgotCi1odHRwOi8vMTI3
LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocD9zaXpl
PTIwMAotcmVzb3VyY2UuY29udGVudDogbnVsbAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3Bl
Y3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5waHA/c2l6ZT0xMDAKLXJlc291cmNlLmNv
bnRlbnQ6ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLWh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhw
P3NpemU9MjAxCi1yZXNvdXJjZS5jb250ZW50OiBudWxsCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocD9zaXplPTEwMAotcmVzb3Vy
Y2UuY29udGVudDogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25l
dHdvcmstY29udGVudC1yZXBsYWNlbWVudC14aHIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LXhoci5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5Yjg2NWYxLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJl
cGxhY2VtZW50LXhoci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vbmV0d29yay10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5j
dGlvbiBzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cygpCi17Ci0gICAgaWYgKCF3
aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgIGNvbnNvbGUubG9nKCJUaGlzIHRlc3QgY2FuIG5v
dCBiZSBydW4gYXMgd2luZG93LmludGVybmFscyBpcyBub3QgYXZhaWxhYmxlLiIpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotICAgIGludGVybmFscy5zZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRh
U2l6ZUxpbWl0cygzMDAsIDIwMCk7Ci0gICAgY29uc29sZS5sb2coIkRvbmUuIik7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoZGF0
YVNpemVMaW1pdHNTZXQpOwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldElu
c3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKCkiKTsKLQotICAgIGZ1bmN0aW9uIGRhdGFT
aXplTGltaXRzU2V0KCkKLSAgICB7Ci0gICAgICAgIC8vIEhlcmUgd2UgdGVzdCByZXBsYWNlbWVu
dCBsb2dpYy4gV2Ugc2F2ZSBmaXJzdCB0d28gcmVzb3VyY2VzIGNvbnRlbnQsCi0gICAgICAgIC8v
IGRpc2NhcmQgdGhpcmQgcmVzb3VyY2UgY29udGVudCBvbmNlIHdlIHNlZSBpdHMgc2l6ZSBleGNl
ZWRzIGxpbWl0LAotICAgICAgICAvLyBhbmQgZmluYWxseSByZXBsYWNlIGZpcnN0IHJlc291cmNl
IGNvbnRlbnQgd2l0aCB0aGUgbGFzdCByZXNvdXJjZSBjb250ZW50LgotCi0gICAgICAgIEluc3Bl
Y3RvclRlc3QubWFrZVNpbXBsZVhIUigiR0VUIiwgInJlc291cmNlcy9yZXNvdXJjZS5waHA/c2l6
ZT0yMDAiLCBmYWxzZSwgeGhyTG9hZGVkMSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24geGhyTG9h
ZGVkMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0Lm1ha2VTaW1wbGVYSFIoIkdFVCIs
ICJyZXNvdXJjZXMvcmVzb3VyY2UucGhwP3NpemU9MTAwIiwgZmFsc2UsIHhockxvYWRlZDIpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHhockxvYWRlZDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5tYWtlU2ltcGxlWEhSKCJHRVQiLCAicmVzb3VyY2VzL3Jlc291cmNlLnBocD9zaXpl
PTIwMSIsIGZhbHNlLCB4aHJMb2FkZWQzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB4aHJMb2Fk
ZWQzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubWFrZVNpbXBsZVhIUigiR0VUIiwg
InJlc291cmNlcy9yZXNvdXJjZS5waHA/c2l6ZT0xMDAiLCBmYWxzZSwgc3RlcDEpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGR1bXBSZXF1ZXN0KHJlcXVlc3QsIGNhbGxiYWNrKQotICAgIHsKLSAg
ICAgICAgaWYgKCFyZXF1ZXN0KQotICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlcXVlc3QudXJsKTsKLQotICAgICAgICBmdW5j
dGlvbiBjb250ZW50TG9hZGVkKCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoInJlc291cmNlLmNvbnRlbnQ6ICIgKyByZXF1ZXN0LmNvbnRlbnQpOwotICAg
ICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJlcXVlc3QucmVxdWVz
dENvbnRlbnQoY29udGVudExvYWRlZCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQot
ICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsi
KS5yZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGgg
LSA0XTsKLSAgICAgICAgZHVtcFJlcXVlc3QocmVxdWVzdCwgc3RlcDIpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gV2ViSW5zcGVj
dG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3Jr
IikucmVxdWVzdHMubGVuZ3RoIC0gM107Ci0gICAgICAgIGR1bXBSZXF1ZXN0KHJlcXVlc3QsIHN0
ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICB2YXIg
cmVxdWVzdCA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3Bl
Y3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzLmxlbmd0aCAtIDJdOwotICAgICAgICBkdW1w
UmVxdWVzdChyZXF1ZXN0LCBzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDQoKQot
ICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsi
KS5yZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGgg
LSAxXTsKLSAgICAgICAgZHVtcFJlcXVlc3QocmVxdWVzdCwgc3RlcDUpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Ci0gICAgPHA+IFRlc3RzIE5ldHdvcmtSZXNvdXJjZXNEYXRhIGxvZ2ljIGZvciBYSFIg
Y29udGVudCByZXBsYWNlbWVudC48L3A+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jeXJpbGxp
Yy14aHItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLWN5cmlsbGljLXhoci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDY1MjA3N2QuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWN5cmlsbGljLXhoci1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogWEhS
IGxvYWRlZDogMQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6IFhIUiBsb2FkZWQ6IDIKLVRlc3Rz
IGN5cmlsbGljIHhociBjb250ZW50IGlzIGNvcnJlY3RseSBsb2FkZWQgaW4gaW5zcGVjdG9yLgot
Ci1CdWcgNzkwMjYKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZXMvY3lyaWxsaWMuaHRtbAotcmVzb3VyY2UuY29udGVudDogVGhlIGZvbGxvd2luZyBsaW5l
IGNvbnRhaW5zIGEgd29yZCAic3VjY2VzcyIgd3JpdHRlbiB3aXRoIGN5cmlsbGljIGxldHRlcnMu
Ci1TVdCh0KHQlVNTCi0KLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZXMvY3lyaWxsaWMuaHRtbAotcmVzb3VyY2UuY29udGVudDogVGhlIGZvbGxvd2luZyBs
aW5lIGNvbnRhaW5zIGEgd29yZCAic3VjY2VzcyIgd3JpdHRlbiB3aXRoIGN5cmlsbGljIGxldHRl
cnMuCi1TVdCh0KHQlVNTCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWN5cmlsbGljLXhoci5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWN5cmlsbGljLXhoci5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTY3NDY0Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jeXJpbGxpYy14aHIu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L25ldHdvcmstdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17
Ci0gICAgLy8gU2luY2UgdGhpcyB0ZXN0IGNvdWxkIGJlIHJ1biB0b2dldGhlciB3aXRoIG90aGVy
IGluc3BlY3RvciBiYWNrZW5kIGNhY2hlCi0gICAgLy8gdGVzdHMsIHdlIG5lZWQgdG8gcmVzZXQg
c2l6ZSBsaW1pdHMgdG8gZGVmYXVsdCBvbmVzLgotICAgIEluc3BlY3RvclRlc3QucmVzZXRJbnNw
ZWN0b3JSZXNvdXJjZXNEYXRhKHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIGR1bXBSZXF1ZXN0KHJl
cXVlc3QsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgaWYgKCFyZXF1ZXN0KQotICAgICAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJl
cXVlc3QudXJsKTsKLQotICAgICAgICBmdW5jdGlvbiBjb250ZW50TG9hZGVkKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291cmNlLmNvbnRlbnQ6
ICIgKyByZXF1ZXN0LmNvbnRlbnQpOwotICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAg
fQotCi0gICAgICAgIHJlcXVlc3QucmVxdWVzdENvbnRlbnQoY29udGVudExvYWRlZCk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5t
YWtlU2ltcGxlWEhSKCJHRVQiLCAicmVzb3VyY2VzL2N5cmlsbGljLmh0bWwiLCBmYWxzZSwgZmly
c3RYSFJMb2FkZWQpOwotCi0gICAgICAgIGZ1bmN0aW9uIGZpcnN0WEhSTG9hZGVkKCkKLSAgICAg
ICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5tYWtlU2ltcGxlWEhSKCJHRVQiLCAicmVz
b3VyY2VzL2N5cmlsbGljLmh0bWwiLCB0cnVlLCBzdGVwMik7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICB2YXIgcmVxdWVzdCA9IFdlYklu
c3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbCgibmV0
d29yayIpLnJlcXVlc3RzLmxlbmd0aCAtIDJdOwotICAgICAgICBkdW1wUmVxdWVzdChyZXF1ZXN0
LCBzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAg
dmFyIHJlcXVlc3QgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0c1tXZWJJ
bnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGggLSAxXTsKLSAgICAgICAg
ZHVtcFJlcXVlc3QocmVxdWVzdCwgc3RlcDQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0
KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4gVGVz
dHMgY3lyaWxsaWMgeGhyIGNvbnRlbnQgaXMgY29ycmVjdGx5IGxvYWRlZCBpbiBpbnNwZWN0b3Iu
PC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5
MDI2Ij5CdWcgNzkwMjY8L2E+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hl
LW1lbW9yeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL25ldHdvcmstZGlzYWJsZS1jYWNoZS1tZW1vcnktZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmM2Q2Y2IzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hlLW1lbW9y
eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxOiBEb25lLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IERvbmUuCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTogRG9uZS4KLVRlc3RzIGRpc2FibGluZyBjYWNoZSBmcm9tIGlu
c3BlY3Rvci4KLQotUGFnZSByZWxvYWRlZC4KLVBhZ2UgcmVsb2FkZWQuCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxl
LWNhY2hlLW1lbW9yeS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLWRpc2FibGUtY2FjaGUtbWVtb3J5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGNlZDdkOGIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWRpc2FibGUtY2FjaGUtbWVtb3J5Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9uZXR3b3Jr
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHNjaGVkdWxlU2NyaXB0TG9h
ZCgpIHsKLSAgICB3aW5kb3cuc2V0VGltZW91dChsb2FkU2NyaXB0LCAwKTsKLX0KLQotZnVuY3Rp
b24gbG9hZFNjcmlwdCgpIHsKLSAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic2NyaXB0Iik7Ci0gICAgc2NyaXB0LnR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsKLSAgICBz
Y3JpcHQuc3JjID0gInJlc291cmNlcy9yYW5kb20tc2NyaXB0LnBocCI7Ci0gICAgZG9jdW1lbnQu
aGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2
YXIgY29udGVudDE7Ci0gICAgdmFyIGNvbnRlbnQyOwotICAgIHZhciBjb250ZW50MzsKLQotICAg
IGZ1bmN0aW9uIGxvYWRTY3JpcHRBbmRHZXRDb250ZW50KGNhbGxiYWNrKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzY3JpcHRMb2FkZWQpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzY2hlZHVsZVNjcmlwdExvYWQoKSIpOwot
Ci0gICAgICAgIGZ1bmN0aW9uIHNjcmlwdExvYWRlZCgpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHZhciByZXF1ZXN0c0NvdW50ID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVz
dHMubGVuZ3RoOwotICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSBXZWJJbnNwZWN0b3IucGFuZWwo
Im5ldHdvcmsiKS5yZXF1ZXN0c1tyZXF1ZXN0c0NvdW50IC0gMV07Ci0gICAgICAgICAgICByZXF1
ZXN0LnJlcXVlc3RDb250ZW50KGNvbnRlbnRMb2FkZWQpOwotICAgICAgICB9Ci0KLSAgICAgICAg
ZnVuY3Rpb24gY29udGVudExvYWRlZCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciByZXF1
ZXN0c0NvdW50ID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3Ro
OwotICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsi
KS5yZXF1ZXN0c1tyZXF1ZXN0c0NvdW50IC0gMV07Ci0gICAgICAgICAgICBjYWxsYmFjayhyZXF1
ZXN0LmNvbnRlbnQpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgbG9hZFNjcmlwdEFuZEdldENv
bnRlbnQoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoY29udGVudCkKLSAgICB7Ci0gICAg
ICAgIGNvbnRlbnQxID0gY29udGVudDsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdl
KHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMihtc2cpCi0gICAgewotICAgICAg
ICBsb2FkU2NyaXB0QW5kR2V0Q29udGVudChzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
c3RlcDMoY29udGVudCkKLSAgICB7Ci0gICAgICAgIGNvbnRlbnQyID0gY29udGVudDsKLSAgICAg
ICAgTmV0d29ya0FnZW50LnNldENhY2hlRGlzYWJsZWQodHJ1ZSwgc3RlcDQpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHN0ZXA0KG1zZykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVs
b2FkUGFnZShzdGVwNSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDUobXNnKQotICAgIHsK
LSAgICAgICAgbG9hZFNjcmlwdEFuZEdldENvbnRlbnQoc3RlcDYpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXA2KGNvbnRlbnQpCi0gICAgewotICAgICAgICBjb250ZW50MyA9IGNvbnRlbnQ7
Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKGNvbnRlbnQxID09PSBjb250ZW50
MiwgIkZpcnN0IGFuZCBzZWNvbmQgc2NyaXB0cyBzaG91bGQgYmUgZXF1YWwuIik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShjb250ZW50MiAhPT0gY29udGVudDMsICJTZWNvbmQg
YW5kIHRoaXJkIHNjcmlwdHMgc2hvdWxkIGRpZmZlci4iKTsKLSAgICAgICAgTmV0d29ya0FnZW50
LnNldENhY2hlRGlzYWJsZWQoZmFsc2UsIHN0ZXA3KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBz
dGVwNyhtc2cpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
ICAgIDxwPlRlc3RzIGRpc2FibGluZyBjYWNoZSBmcm9tIGluc3BlY3Rvci48L3A+Ci08L2JvZHk+
Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hlLXhocnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWRpc2FibGUtY2FjaGUt
eGhycy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5NzVlZTEu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9u
ZXR3b3JrLWRpc2FibGUtY2FjaGUteGhycy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw5ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2OiBYSFIgbG9hZGVkOiAxCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNjogWEhSIGxvYWRlZDogMgotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDY6IFhIUiBsb2FkZWQ6IDMKLVRlc3RzIGRpc2FibGluZyBjYWNoZSBmcm9tIGluc3BlY3Rvci4K
LQotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNv
dXJjZS5waHA/cmFuZG9tPTEmY2FjaGVkPTEKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhwP3JhbmRvbT0xJmNhY2hlZD0xCi1odHRw
Oi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBo
cD9yYW5kb209MSZjYWNoZWQ9MQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZGlzYWJsZS1jYWNoZS14aHJzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZGlzYWJsZS1jYWNo
ZS14aHJzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MTJhY2UuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3Jr
LWRpc2FibGUtY2FjaGUteGhycy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vbmV0d29yay10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICAvLyBTaW5jZSB0aGlzIHRlc3QgY291bGQgYmUgcnVu
IHRvZ2V0aGVyIHdpdGggb3RoZXIgaW5zcGVjdG9yIGJhY2tlbmQgY2FjaGUKLSAgICAvLyB0ZXN0
cywgd2UgbmVlZCB0byByZXNldCBzaXplIGxpbWl0cyB0byBkZWZhdWx0IG9uZXMuCi0gICAgSW5z
cGVjdG9yVGVzdC5yZXNldEluc3BlY3RvclJlc291cmNlc0RhdGEoc3RlcDEpOwotCi0gICAgZnVu
Y3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5tYWtlU2ltcGxlWEhS
KCJHRVQiLCAicmVzb3VyY2VzL3Jlc291cmNlLnBocD9yYW5kb209MSZjYWNoZWQ9MSIsIHRydWUs
IGZpcnN0WEhSTG9hZGVkKTsKLQotICAgICAgICBmdW5jdGlvbiBmaXJzdFhIUkxvYWRlZCgpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubWFrZVNpbXBsZVhIUigiR0VUIiwg
InJlc291cmNlcy9yZXNvdXJjZS5waHA/cmFuZG9tPTEmY2FjaGVkPTEiLCB0cnVlLCBzdGVwMik7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMihtc2cpCi0gICAgewotICAg
ICAgICBOZXR3b3JrQWdlbnQuc2V0Q2FjaGVEaXNhYmxlZCh0cnVlLCBzdGVwMyk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDMobXNnKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5t
YWtlU2ltcGxlWEhSKCJHRVQiLCAicmVzb3VyY2VzL3Jlc291cmNlLnBocD9yYW5kb209MSZjYWNo
ZWQ9MSIsIHRydWUsIHN0ZXA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNChtc2cpCi0g
ICAgewotICAgICAgICAvLyBpbnNwZWN0b3ItdGVzdC5qcyBhcHBlYXJzIGluIG5ldHdvcmsgcGFu
ZWwgb2NjYXNpb25hbGx5IGluIFNhZmFyaSBvbgotICAgICAgICAvLyBNYWMsIHNvIGNoZWNraW5n
IHR3byBsYXN0IHJlc291cmNlcy4KLSAgICAgICAgdmFyIHJlcXVlc3RzQ291bnQgPSBXZWJJbnNw
ZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGg7Ci0gICAgICAgIHZhciByZXF1
ZXN0MSA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW3JlcXVlc3RzQ291
bnQgLSAzXTsKLSAgICAgICAgdmFyIHJlcXVlc3QyID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3
b3JrIikucmVxdWVzdHNbcmVxdWVzdHNDb3VudCAtIDJdOwotICAgICAgICB2YXIgcmVxdWVzdDMg
PSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0c1tyZXF1ZXN0c0NvdW50IC0g
MV07Ci0gICAgICAgIHJlcXVlc3QxLnJlcXVlc3RDb250ZW50KGNvbnRlbnRMb2FkZWQpOwotICAg
ICAgICByZXF1ZXN0Mi5yZXF1ZXN0Q29udGVudChjb250ZW50TG9hZGVkKTsKLSAgICAgICAgcmVx
dWVzdDMucmVxdWVzdENvbnRlbnQoY29udGVudExvYWRlZCk7Ci0gICAgfQotCi0gICAgdmFyIGNv
bnRlbnRMb2FkZWRDb3VudCA9IDA7Ci0gICAgZnVuY3Rpb24gY29udGVudExvYWRlZCgpCi0gICAg
ewotICAgICAgICBpZiAoKytjb250ZW50TG9hZGVkQ291bnQgIT09IDMpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgdmFyIHJlcXVlc3RzQ291bnQgPSBXZWJJbnNwZWN0b3IucGFuZWwo
Im5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGg7Ci0gICAgICAgIHZhciByZXF1ZXN0MSA9IFdlYklu
c3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW3JlcXVlc3RzQ291bnQgLSAzXTsKLSAg
ICAgICAgdmFyIHJlcXVlc3QyID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVz
dHNbcmVxdWVzdHNDb3VudCAtIDJdOwotICAgICAgICB2YXIgcmVxdWVzdDMgPSBXZWJJbnNwZWN0
b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0c1tyZXF1ZXN0c0NvdW50IC0gMV07Ci0KLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVxdWVzdDEudXJsKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQocmVxdWVzdDIudXJsKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQocmVxdWVzdDMudXJsKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVl
KHJlcXVlc3QxLmNvbnRlbnQgPT09IHJlcXVlc3QyLmNvbnRlbnQsICJGaXJzdCBhbmQgc2Vjb25k
IHJlc291cmNlcyBhcmUgZXF1YWwiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVl
KHJlcXVlc3QyLmNvbnRlbnQgIT09IHJlcXVlc3QzLmNvbnRlbnQsICJTZWNvbmQgYW5kIHRoaXJk
IHJlc291cmNlcyBkaWZmZXIiKTsKLSAgICAgICAgTmV0d29ya0FnZW50LnNldENhY2hlRGlzYWJs
ZWQoZmFsc2UsIHN0ZXA1KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNShtc2cpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxwPlRlc3RzIGRp
c2FibGluZyBjYWNoZSBmcm9tIGluc3BlY3Rvci48L3A+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay1kaXNhYmxpbmctY2hlY2stbm8tbWVtb3J5LWxlYWstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWRpc2FibGluZy1jaGVjay1u
by1tZW1vcnktbGVhay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDE4ZWM2NDYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9uZXR3b3JrLWRpc2FibGluZy1jaGVjay1uby1tZW1vcnktbGVhay1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2
OiBYSFIgbG9hZGVkOiAxCi1UZXN0cyB0aGF0IGFmdGVyIGRpc2FibGluZyBuZXR3b3JrIGRvbWFp
biwgY29udGVudCBzYXZlZCBvbiBiYWNrZW5kIGlzIHJlbW92ZWQuIEJ1ZyA2Nzk5NQotCi1yZXNv
dXJjZS5jb250ZW50IGFmdGVyIGRpc2FibGluZyBuZXR3b3JrIGRvbWFpbjogbnVsbAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
ZGlzYWJsaW5nLWNoZWNrLW5vLW1lbW9yeS1sZWFrLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZGlzYWJsaW5nLWNoZWNrLW5vLW1lbW9yeS1s
ZWFrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyMDYwYjguLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWRp
c2FibGluZy1jaGVjay1uby1tZW1vcnktbGVhay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDgg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vbmV0d29yay10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICAvLyBTaW5jZSB0aGlzIHRlc3QgY291
bGQgYmUgcnVuIHRvZ2V0aGVyIHdpdGggb3RoZXIgaW5zcGVjdG9yIGJhY2tlbmQgY2FjaGUKLSAg
ICAvLyB0ZXN0cywgd2UgbmVlZCB0byByZXNldCBzaXplIGxpbWl0cyB0byBkZWZhdWx0IG9uZXMu
Ci0gICAgSW5zcGVjdG9yVGVzdC5yZXNldEluc3BlY3RvclJlc291cmNlc0RhdGEoc3RlcDEpOwot
Ci0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5tYWtl
U2ltcGxlWEhSKCJHRVQiLCAicmVzb3VyY2VzL3Jlc291cmNlLnBocCIsIHRydWUsIHN0ZXAyKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBOZXR3b3JrQWdl
bnQuZGlzYWJsZShzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsK
LSAgICAgICAgdmFyIHJlcXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVx
dWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMV07
Ci0gICAgICAgIHJlcXVlc3QxLnJlcXVlc3RDb250ZW50KHN0ZXA0KTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBzdGVwNCgpCi0gICAgewotICAgICAgICB2YXIgcmVxdWVzdDEgPSBXZWJJbnNwZWN0
b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsi
KS5yZXF1ZXN0cy5sZW5ndGggLSAxXTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
InJlc291cmNlLmNvbnRlbnQgYWZ0ZXIgZGlzYWJsaW5nIG5ldHdvcmsgZG9tYWluOiAiICsgcmVx
dWVzdDEuY29udGVudCk7Ci0gICAgICAgIE5ldHdvcmtBZ2VudC5lbmFibGUoc3RlcDUpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci0gPHA+Ci0gVGVzdHMgdGhhdCBhZnRlciBkaXNhYmxpbmcgbmV0d29y
ayBkb21haW4sIGNvbnRlbnQgc2F2ZWQgb24gYmFja2VuZCBpcyByZW1vdmVkLgotPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTk1Ij5CdWcgNjc5OTU8
L2E+Ci08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZW1iZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWVtYmVkLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNkODUyMi4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZW1i
ZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDU4OiBEb25lLgotVGVzdHMgdGhhdCBuZXR3b3JrIHBhbmVsIHNob3dzIGNv
bnRlbnQgZm9yIGVtYmVkIG9iamVjdHMuCi0KLQotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3Bl
Y3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZQotcmVzb3VyY2Uu
dHlwZTogb3RoZXIKLXJlc291cmNlLmNvbnRlbnQgYmVmb3JlIHJlcXVlc3RpbmcgY29udGVudDog
dW5kZWZpbmVkCi1yZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVudDogbnVs
bAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9wbHVn
aW4tZGF0YS5waHA/ZmlsZW5hbWU9dXRmOC54bWwmbWltZXR5cGU9dGV4dC9odG1sJmNoYXJzZXQ9
dXRmOAotcmVzb3VyY2UudHlwZTogb3RoZXIKLXJlc291cmNlLmNvbnRlbnQgYmVmb3JlIHJlcXVl
c3RpbmcgY29udGVudDogdW5kZWZpbmVkCi1yZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3Rp
bmcgY29udGVudDogPD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz4KLTxyb290
PgotICA8dXRmOD5TVdCh0KHQlVNTIC0gVGhlc2UgJ0NDRScgYXJlIGN5cmlsbGljIGxldHRlcnMu
PC91dGY4PgotPC9yb290PgotCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2VzL3BsdWdpbi1kYXRhLnBocD9maWxlbmFtZT1jcDEyNTEueG1sJm1pbWV0eXBl
PXRleHQvaHRtbCZjaGFyc2V0PWNwMTI1MQotcmVzb3VyY2UudHlwZTogb3RoZXIKLXJlc291cmNl
LmNvbnRlbnQgYmVmb3JlIHJlcXVlc3RpbmcgY29udGVudDogdW5kZWZpbmVkCi1yZXNvdXJjZS5j
b250ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVudDogPD94bWwgdmVyc2lvbj0nMS4wJyBlbmNv
ZGluZz0nY3AxMjUxJz8+Ci08cm9vdD4KLSAgPGNwMTI1MT5TVdCh0KHQlVNTIC0gVGhlc2UgJ0ND
RScgYXJlIGN5cmlsbGljIGxldHRlcnMuPC9jcDEyNTE+Ci08L3Jvb3Q+Ci0KLWh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcGx1Z2luLWRhdGEucGhwP2Zp
bGVuYW1lPXV0ZjgueG1sJm1pbWV0eXBlPWFwcGxpY2F0aW9uL3htbAotcmVzb3VyY2UudHlwZTog
b3RoZXIKLXJlc291cmNlLmNvbnRlbnQgYmVmb3JlIHJlcXVlc3RpbmcgY29udGVudDogdW5kZWZp
bmVkCi1yZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVudDogPD94bWwgdmVy
c2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz4KLTxyb290PgotICA8dXRmOD5TVdCh0KHQlVNT
IC0gVGhlc2UgJ0NDRScgYXJlIGN5cmlsbGljIGxldHRlcnMuPC91dGY4PgotPC9yb290PgotCi1o
dHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3BsdWdpbi1k
YXRhLnBocD9maWxlbmFtZT1jcDEyNTEueG1sJm1pbWV0eXBlPWFwcGxpY2F0aW9uL3htbAotcmVz
b3VyY2UudHlwZTogb3RoZXIKLXJlc291cmNlLmNvbnRlbnQgYmVmb3JlIHJlcXVlc3RpbmcgY29u
dGVudDogdW5kZWZpbmVkCi1yZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVu
dDogPD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nY3AxMjUxJz8+Ci08cm9vdD4KLSAgPGNw
MTI1MT5TVdCh0KHQlVNTIC0gVGhlc2UgJ0NDRScgYXJlIGN5cmlsbGljIGxldHRlcnMuPC9jcDEy
NTE+Ci08L3Jvb3Q+Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9uZXR3b3JrLWVtYmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZW1iZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2UwYzUwNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstZW1iZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDEzMiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9uZXR3b3JrLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLXZhciBsb2FkZWRGaXJzdFVSTCA9IGZhbHNlOwotZnVuY3Rpb24gc3Ry
ZWFtTG9hZGVkKCkKLXsKLSAgICBpZiAobG9hZGVkRmlyc3RVUkwpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGxvYWRlZEZpcnN0VVJMID0gdHJ1ZTsKLSAgICBsb2FkVVJMcygpOwotfQotCi12YXIg
c25pZmZlckluc3RhbGxlZCA9IGZhbHNlOwotZnVuY3Rpb24gb25TbmlmZmVySW5zdGFsbGVkKCkK
LXsKLSAgICBzbmlmZmVySW5zdGFsbGVkID0gdHJ1ZTsKLSAgICBsb2FkVVJMcygpOwotfQotCi1m
dW5jdGlvbiBsb2FkVVJMcygpCi17Ci0gICAgaWYgKCFzbmlmZmVySW5zdGFsbGVkIHx8ICFsb2Fk
ZWRGaXJzdFVSTCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gQmluYXJ5IGNvbnRlbnQgc2hv
dWxkIG5vdCBiZSBhdmFpbGFibGUuCi0gICAgcGxnLmdldFVSTE5vdGlmeSgicmVzb3VyY2VzL3Jl
c291cmNlLnBocD90eXBlPWltYWdlIiwgbnVsbCwgImxvYWRVUkwyIik7Ci19Ci0KLWZ1bmN0aW9u
IGxvYWRVUkwyKCkKLXsKLSAgICAvLyBUaGlzIHJlc291cmNlIGNvbnRlbnQgc2hvdWxkIGJlIGNv
cnJlY3RseSBkZWNvZGVkLgotICAgIHBsZy5nZXRVUkxOb3RpZnkoInJlc291cmNlcy9wbHVnaW4t
ZGF0YS5waHA/ZmlsZW5hbWU9dXRmOC54bWwmbWltZXR5cGU9dGV4dC9odG1sJmNoYXJzZXQ9dXRm
OCIsIG51bGwsICJsb2FkVVJMMyIpOwotfQotCi1mdW5jdGlvbiBsb2FkVVJMMygpCi17Ci0gICAg
Ly8gVGhpcyByZXNvdXJjZSBjb250ZW50IHNob3VsZCBiZSBjb3JyZWN0bHkgZGVjb2RlZC4KLSAg
ICBwbGcuZ2V0VVJMTm90aWZ5KCJyZXNvdXJjZXMvcGx1Z2luLWRhdGEucGhwP2ZpbGVuYW1lPWNw
MTI1MS54bWwmbWltZXR5cGU9dGV4dC9odG1sJmNoYXJzZXQ9Y3AxMjUxIiwgbnVsbCwgImxvYWRV
Ukw0Iik7Ci19Ci0KLWZ1bmN0aW9uIGxvYWRVUkw0KCkKLXsKLSAgICAvLyBUaGlzIHJlc291cmNl
IGNvbnRlbnQgc2hvdWxkIGJlIGNvcnJlY3RseSBkZWNvZGVkLgotICAgIHBsZy5nZXRVUkxOb3Rp
ZnkoInJlc291cmNlcy9wbHVnaW4tZGF0YS5waHA/ZmlsZW5hbWU9dXRmOC54bWwmbWltZXR5cGU9
YXBwbGljYXRpb24veG1sIiwgbnVsbCwgImxvYWRVUkw1Iik7Ci19Ci0KLWZ1bmN0aW9uIGxvYWRV
Ukw1KCkKLXsKLSAgICAvLyBUaGlzIHJlc291cmNlIGNvbnRlbnQgc2hvdWxkIGJlIGNvcnJlY3Rs
eSBkZWNvZGVkLgotICAgIHBsZy5nZXRVUkxOb3RpZnkoInJlc291cmNlcy9wbHVnaW4tZGF0YS5w
aHA/ZmlsZW5hbWU9Y3AxMjUxLnhtbCZtaW1ldHlwZT1hcHBsaWNhdGlvbi94bWwiLCBudWxsLCAi
YWxsVVJMc0xvYWRlZCIpOwotfQotCi1mdW5jdGlvbiBhbGxVUkxzTG9hZGVkKCkKLXsKLSAgICBj
b25zb2xlLmxvZygiRG9uZS4iKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgLy8gU2lu
Y2UgdGhpcyB0ZXN0IGNvdWxkIGJlIHJ1biB0b2dldGhlciB3aXRoIG90aGVyIGluc3BlY3RvciBi
YWNrZW5kIGNhY2hlCi0gICAgLy8gdGVzdHMsIHdlIG5lZWQgdG8gcmVzZXQgc2l6ZSBsaW1pdHMg
dG8gZGVmYXVsdCBvbmVzLgotICAgIEluc3BlY3RvclRlc3QucmVzZXRJbnNwZWN0b3JSZXNvdXJj
ZXNEYXRhKHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJvblNuaWZmZXJJbnN0YWxsZWQoKSIpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIGR1bXBSZXF1ZXN0KHJlcXVlc3QsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAg
aWYgKCFyZXF1ZXN0KQotICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlcXVlc3QudXJsKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoInJlc291cmNlLnR5cGU6ICIgKyByZXF1ZXN0LnR5cGUpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicmVzb3VyY2UuY29udGVudCBiZWZvcmUgcmVxdWVzdGlu
ZyBjb250ZW50OiAiICsgcmVxdWVzdC5jb250ZW50KTsKLQotICAgICAgICBmdW5jdGlvbiBjb250
ZW50TG9hZGVkKCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoInJlc291cmNlLmNvbnRlbnQgYWZ0ZXIgcmVxdWVzdGluZyBjb250ZW50OiAiICsgcmVxdWVz
dC5jb250ZW50KTsKLSAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0KLQotICAgICAg
ICByZXF1ZXN0LnJlcXVlc3RDb250ZW50KGNvbnRlbnRMb2FkZWQpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gV2ViSW5zcGVjdG9y
LnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIiku
cmVxdWVzdHMubGVuZ3RoIC0gNV07Ci0gICAgICAgIGR1bXBSZXF1ZXN0KHJlcXVlc3QsIHN0ZXAz
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICB2YXIgcmVx
dWVzdCA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3BlY3Rv
ci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzLmxlbmd0aCAtIDRdOwotICAgICAgICBkdW1wUmVx
dWVzdChyZXF1ZXN0LCBzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDQoKQotICAg
IHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5y
ZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGggLSAz
XTsKLSAgICAgICAgZHVtcFJlcXVlc3QocmVxdWVzdCwgc3RlcDUpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gV2ViSW5zcGVjdG9y
LnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIiku
cmVxdWVzdHMubGVuZ3RoIC0gMl07Ci0gICAgICAgIGR1bXBSZXF1ZXN0KHJlcXVlc3QsIHN0ZXA2
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNigpCi0gICAgewotICAgICAgICB2YXIgcmVx
dWVzdCA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3BlY3Rv
ci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzLmxlbmd0aCAtIDFdOwotICAgICAgICBkdW1wUmVx
dWVzdChyZXF1ZXN0LCBzdGVwNyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDcoKQotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5UZXN0cyB0
aGF0IG5ldHdvcmsgcGFuZWwgc2hvd3MgY29udGVudCBmb3IgZW1iZWQgb2JqZWN0cy48L3A+Ci0g
ICAgPGVtYmVkIG5hbWU9InBsZyIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRz
Y2FwZSIgc3JjPSJyZXNvdXJjZXMvcmVzb3VyY2UucGhwP3R5cGU9aW1hZ2UiIG9uc3RyZWFtbG9h
ZD0ic3RyZWFtTG9hZGVkKCkiPjwvZW1iZWQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1lbXB0
eS14aHItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLWVtcHR5LXhoci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGM4ZDYzOTAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWVtcHR5LXhoci1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogWEhSIGxvYWRl
ZDogMQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6IFhIUiBsb2FkZWQ6IDIKLVRlc3RzIGVtcHR5
IHhociBjb250ZW50IGlzIGNvcnJlY3RseSBsb2FkZWQgaW4gaW5zcGVjdG9yLgotCi1CdWcgNzkw
MjYKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvZW1w
dHkuaHRtbAotcmVzb3VyY2UuY29udGVudDogCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2VzL2VtcHR5Lmh0bWwKLXJlc291cmNlLmNvbnRlbnQ6IAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdv
cmstZW1wdHkteGhyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL25ldHdvcmstZW1wdHkteGhyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQwYjVjMjIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9uZXR3b3JrLWVtcHR5LXhoci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vbmV0d29yay10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICAvLyBTaW5jZSB0aGlzIHRlc3QgY291bGQg
YmUgcnVuIHRvZ2V0aGVyIHdpdGggb3RoZXIgaW5zcGVjdG9yIGJhY2tlbmQgY2FjaGUKLSAgICAv
LyB0ZXN0cywgd2UgbmVlZCB0byByZXNldCBzaXplIGxpbWl0cyB0byBkZWZhdWx0IG9uZXMuCi0g
ICAgSW5zcGVjdG9yVGVzdC5yZXNldEluc3BlY3RvclJlc291cmNlc0RhdGEoc3RlcDEpOwotCi0g
ICAgZnVuY3Rpb24gZHVtcFJlcXVlc3QocmVxdWVzdCwgY2FsbGJhY2spCi0gICAgewotICAgICAg
ICBpZiAoIXJlcXVlc3QpCi0gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVxdWVzdC51cmwpOwotCi0gICAgICAgIGZ1bmN0aW9u
IGNvbnRlbnRMb2FkZWQoKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgicmVzb3VyY2UuY29udGVudDogIiArIHJlcXVlc3QuY29udGVudCk7Ci0gICAgICAg
ICAgICBjYWxsYmFjaygpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmVxdWVzdC5yZXF1ZXN0Q29u
dGVudChjb250ZW50TG9hZGVkKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0Lm1ha2VTaW1wbGVYSFIoIkdFVCIsICJyZXNvdXJjZXMv
ZW1wdHkuaHRtbCIsIGZhbHNlLCBmaXJzdFhIUkxvYWRlZCk7Ci0KLSAgICAgICAgZnVuY3Rpb24g
Zmlyc3RYSFJMb2FkZWQoKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm1h
a2VTaW1wbGVYSFIoIkdFVCIsICJyZXNvdXJjZXMvZW1wdHkuaHRtbCIsIHRydWUsIHN0ZXAyKTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAg
IHZhciByZXF1ZXN0ID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2Vi
SW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMl07Ci0gICAgICAg
IGR1bXBSZXF1ZXN0KHJlcXVlc3QsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MygpCi0gICAgewotICAgICAgICB2YXIgcmVxdWVzdCA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0
d29yayIpLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzLmxl
bmd0aCAtIDFdOwotICAgICAgICBkdW1wUmVxdWVzdChyZXF1ZXN0LCBzdGVwNCk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLTxwPiBUZXN0cyBlbXB0eSB4aHIgY29udGVudCBpcyBjb3JyZWN0bHkgbG9h
ZGVkIGluIGluc3BlY3Rvci48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzkwMjYiPkJ1ZyA3OTAyNjwvYT4KLTwvYm9keT4KLTwvaHRtbD4KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLWlmcmFtZS1sb2FkLWFuZC1kZWxldGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWlmcmFtZS1sb2FkLWFuZC1kZWxldGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNDU1Yzg0Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay1pZnJhbWUtbG9hZC1hbmQtZGVsZXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDEyICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogRG9uZS4KLVRlc3RzIHRoYXQg
aWYgaWZyYW1lIGlzIGxvYWRlZCBhbmQgdGhlbiBkZWxldGVkLCBpbnNwZWN0b3IgY291bGQgc3Rp
bGwgc2hvdyBpdHMgY29udGVudC4gTm90ZSB0aGF0IGlmIGlmcmFtZS5zcmMgaXMgY2hhbmdlZCB0
byAiamF2YXNjcmlwdDonLi4uc29tZSBodG1sLi4uJyIgYWZ0ZXIgbG9hZGluZywgdGhlbiB3ZSBo
YXZlIGRpZmZlcmVudCBjb2RlcGF0aCwgaGVuY2UgdHdvIHRlc3RzOwotCi1odHRwOi8vMTI3LjAu
MC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocAotcmVzb3Vy
Y2UudHlwZTogZG9jdW1lbnQKLXJlc291cmNlLmNvbnRlbnQgYmVmb3JlIHJlcXVlc3RpbmcgY29u
dGVudDogdW5kZWZpbmVkCi1yZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVu
dDogSGVsbG8gd29ybGQKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZXMvcmVzb3VyY2UucGhwCi1yZXNvdXJjZS50eXBlOiBkb2N1bWVudAotcmVzb3VyY2Uu
Y29udGVudCBiZWZvcmUgcmVxdWVzdGluZyBjb250ZW50OiB1bmRlZmluZWQKLXJlc291cmNlLmNv
bnRlbnQgYWZ0ZXIgcmVxdWVzdGluZyBjb250ZW50OiBIZWxsbyB3b3JsZAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstaWZyYW1l
LWxvYWQtYW5kLWRlbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9uZXR3b3JrLWlmcmFtZS1sb2FkLWFuZC1kZWxldGUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGI2NGEzYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstaWZyYW1lLWxvYWQtYW5kLWRlbGV0ZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
bmV0d29yay10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgaWZyYW1lOwotCi1mdW5j
dGlvbiBsb2FkSWZyYW1lKCkKLXsKLSAgICBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci0gICAg
aWZyYW1lLm9ubG9hZCA9IGlmcmFtZUxvYWRlZDsKLSAgICBpZnJhbWUuc3JjID0gInJlc291cmNl
cy9yZXNvdXJjZS5waHAiOwotfQotCi1mdW5jdGlvbiBpZnJhbWVMb2FkZWQoKQotewotICAgIGRv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTsKLQotICAgIGxvYWRJZnJhbWVBbmRDaGFu
Z2VTcmNBZnRlckxvYWQoKTsKLX0KLQotZnVuY3Rpb24gbG9hZElmcmFtZUFuZENoYW5nZVNyY0Fm
dGVyTG9hZCgpCi17Ci0gICAgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1l
Iik7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwotICAgIGlmcmFtZS5v
bmxvYWQgPSBpZnJhbWVMb2FkZWRDaGFuZ2VTcmM7Ci0gICAgaWZyYW1lLnNyYyA9ICJyZXNvdXJj
ZXMvcmVzb3VyY2UucGhwIjsKLX0KLQotZnVuY3Rpb24gaWZyYW1lTG9hZGVkQ2hhbmdlU3JjKCkK
LXsKLSAgICBpZnJhbWUub25sb2FkID0gbnVsbDsKLSAgICBpZnJhbWUuc3JjID0gImphdmFzY3Jp
cHQ6JzxodG1sPjwvaHRtbD4nIjsKLSAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlmcmFt
ZSk7Ci0gICAgY29uc29sZS5sb2coIkRvbmUuIik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIpOwotICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWRJZnJhbWUoKSIpOwotCi0gICAgZnVuY3Rpb24gc3Rl
cDIoKQotICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJu
ZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMu
bGVuZ3RoIC0gMl07Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlcXVlc3QxLnVy
bCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXNvdXJjZS50eXBlOiAiICsg
cmVxdWVzdDEudHlwZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXNvdXJj
ZS5jb250ZW50IGJlZm9yZSByZXF1ZXN0aW5nIGNvbnRlbnQ6ICIgKyByZXF1ZXN0MS5jb250ZW50
KTsKLSAgICAgICAgcmVxdWVzdDEucmVxdWVzdENvbnRlbnQoc3RlcDMpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIHZhciByZXF1ZXN0MSA9IFdlYkluc3Bl
Y3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbCgibmV0d29y
ayIpLnJlcXVlc3RzLmxlbmd0aCAtIDJdOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgicmVzb3VyY2UuY29udGVudCBhZnRlciByZXF1ZXN0aW5nIGNvbnRlbnQ6ICIgKyByZXF1ZXN0
MS5jb250ZW50KTsKLQotICAgICAgICB2YXIgcmVxdWVzdDIgPSBXZWJJbnNwZWN0b3IucGFuZWwo
Im5ldHdvcmsiKS5yZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0
cy5sZW5ndGggLSAxXTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVxdWVzdDIu
dXJsKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291cmNlLnR5cGU6ICIg
KyByZXF1ZXN0Mi50eXBlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291
cmNlLmNvbnRlbnQgYmVmb3JlIHJlcXVlc3RpbmcgY29udGVudDogIiArIHJlcXVlc3QyLmNvbnRl
bnQpOwotICAgICAgICByZXF1ZXN0Mi5yZXF1ZXN0Q29udGVudChzdGVwNCk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gc3RlcDQoKQotICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QyID0gV2ViSW5z
cGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3
b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMV07Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJyZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVudDogIiArIHJlcXVl
c3QyLmNvbnRlbnQpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0g
ICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0g
IDxwPgotICAgIFRlc3RzIHRoYXQgaWYgaWZyYW1lIGlzIGxvYWRlZCBhbmQgdGhlbiBkZWxldGVk
LCBpbnNwZWN0b3IgY291bGQgc3RpbGwgc2hvdyBpdHMgY29udGVudC4KLSAgICBOb3RlIHRoYXQg
aWYgaWZyYW1lLnNyYyBpcyBjaGFuZ2VkIHRvICJqYXZhc2NyaXB0OicuLi5zb21lIGh0bWwuLi4n
IiBhZnRlcgotICAgIGxvYWRpbmcsIHRoZW4gd2UgaGF2ZSBkaWZmZXJlbnQgY29kZXBhdGgsIGhl
bmNlIHR3byB0ZXN0czsKLSAgPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWltYWdlLTQwNC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25l
dHdvcmstaW1hZ2UtNDA0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTNmMDRlNmUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9uZXR3b3JrLWltYWdlLTQwNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw5ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogRG9uZS4KLVRlc3RzIGNv
bnRlbnQgaXMgYXZhaWxhYmxlIGZvciBmYWlsZWQgaW1hZ2UgcmVxdWVzdC4KLQotQnVnIDg0MjY1
Ci1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzLzQwNC5w
aHAKLXJlc291cmNlLnR5cGU6IGltYWdlCi1yZXNvdXJjZS5jb250ZW50IGJlZm9yZSByZXF1ZXN0
aW5nIGNvbnRlbnQ6IHVuZGVmaW5lZAotcmVzb3VyY2UuY29udGVudCBhZnRlciByZXF1ZXN0aW5n
IGNvbnRlbnQ6IDQwNCAtIHJlc291cmNlIHdhcyBub3QgZm91bmQuCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1pbWFnZS00MDQu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1p
bWFnZS00MDQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEyNmNiMC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdv
cmstaW1hZ2UtNDA0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9uZXR3b3JrLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0
aW9uIGxvYWREYXRhKCkKLXsKLSAgICB2YXIgaW1hZ2UgPSBuZXcgSW1hZ2UoKTsKLSAgICBpbWFn
ZS5zcmMgPSAicmVzb3VyY2VzLzQwNC5waHAiOwotICAgIGltYWdlLm9uZXJyb3IgPSByZXNvdXJj
ZUxvYWRlZDsKLX0KLQotZnVuY3Rpb24gcmVzb3VyY2VMb2FkZWQoKQotewotICAgIGNvbnNvbGUu
bG9nKCJEb25lLiIpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICAvLyBTaW5jZSB0aGlz
IHRlc3QgY291bGQgYmUgcnVuIHRvZ2V0aGVyIHdpdGggb3RoZXIgaW5zcGVjdG9yIGJhY2tlbmQg
Y2FjaGUKLSAgICAvLyB0ZXN0cywgd2UgbmVlZCB0byByZXNldCBzaXplIGxpbWl0cyB0byBkZWZh
dWx0IG9uZXMuCi0gICAgSW5zcGVjdG9yVGVzdC5yZXNldEluc3BlY3RvclJlc291cmNlc0RhdGEo
c3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoImxvYWREYXRhKCkiKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigp
Ci0gICAgewotICAgICAgICB2YXIgcmVxdWVzdDEgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdv
cmsiKS5yZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5n
dGggLSAxXTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVxdWVzdDEudXJsKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291cmNlLnR5cGU6ICIgKyByZXF1
ZXN0MS50eXBlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291cmNlLmNv
bnRlbnQgYmVmb3JlIHJlcXVlc3RpbmcgY29udGVudDogIiArIHJlcXVlc3QxLmNvbnRlbnQpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoIXJlcXVlc3QxLmZhaWxlZCwgIlJlc291
cmNlIGxvYWRpbmcgZmFpbGVkLiIpOwotICAgICAgICByZXF1ZXN0MS5yZXF1ZXN0Q29udGVudChz
dGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgdmFy
IHJlcXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5z
cGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMV07Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3Rpbmcg
Y29udGVudDogIiArIHJlcXVlc3QxLmNvbnRlbnQpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBjb250ZW50IGlzIGF2YWlsYWJsZSBmb3IgZmFpbGVk
IGltYWdlIHJlcXVlc3QuPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg0MjY1Ij5CdWcgODQyNjU8L2E+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
aW5pdGlhdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1pbml0aWF0b3ItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMGZkMDg1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1pbml0aWF0b3ItZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM0OiBEb25l
LgotVGVzdHMgcmVzb3VyY2VzIGluaXRpYXRvciBmb3IgaW1hZ2VzIGluaXRpYXRlZCBieSBJTUcg
dGFnLCBzdGF0aWMgQ1NTLCBDU1MgY2xhc3MgYWRkZWQgZnJvbSBKYXZhU2NyaXB0IGFuZCBYSFIu
Ci0KLUJ1ZyA2NTEwNSAKLVRoaXMgZGl2IGhhcyBiYWNrZ3JvdW5kIGltYWdlIHNldCBmcm9tIENT
Uy4KLVRoaXMgZGl2IHdpbGwgaGF2ZSBiYWNrZ3JvdW5kIGltYWdlIHNldCBmcm9tIEphdmFTY3Jp
cHQuCi1QYWdlIHJlbG9hZGVkLgotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlcy9pbml0aWF0b3IuY3NzOiBwYXJzZXIKLSAgICBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1pbml0aWF0b3IuaHRtbCAzCi1odHRwOi8v
MTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocD90
eXBlPWltYWdlJnJhbmRvbT0xJnNpemU9MTAwOiBwYXJzZXIKLSAgICBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1pbml0aWF0b3IuaHRtbCAxMDcKLWh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhw
P3R5cGU9aW1hZ2UmcmFuZG9tPTEmc2l6ZT0yMDA6IHBhcnNlcgotICAgIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWluaXRpYXRvci5odG1sIDEwOAotaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5w
aHA/dHlwZT1pbWFnZSZyYW5kb209MSZzaXplPTMwMDogc2NyaXB0Ci0gICAgYWRkQ2xhc3NUb0Rp
dlN0ZXAyIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWlu
aXRpYXRvci5odG1sIDE3Ci1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2VzL3Jlc291cmNlLnBocD90eXBlPWltYWdlJnJhbmRvbT0xJnNpemU9NDAwOiBzY3Jp
cHQKLSAgICBsb2FkRGF0YSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsv
bmV0d29yay1pbml0aWF0b3IuaHRtbCAyOQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstaW5pdGlhdG9yLWZyb20tY29uc29sZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25l
dHdvcmstaW5pdGlhdG9yLWZyb20tY29uc29sZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDg4OTRhMjIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWluaXRpYXRvci1mcm9tLWNvbnNvbGUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UZXN0cyB0aGF0IHRoZXJl
IGlzIG5vIGphdmFzY3JpcHQgZXJyb3Igd2hlbiBjb25zb2xlIGV2YWx1YXRpb24gY2F1c2VzIHJl
c291cmNlIGxvYWRpbmcuCi0KLUJ1ZyA2NTQ2NgotUGFnZSByZWxvYWRlZC4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWluaXRp
YXRvci1mcm9tLWNvbnNvbGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1pbml0aWF0b3ItZnJvbS1jb25zb2xlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDIzZmQ4YjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWluaXRpYXRvci1mcm9tLWNvbnNvbGUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L25ldHdvcmstdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIHRlc3QgPSBmdW5jdGlv
bigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHN0ZXAxKTsKLQotICAgIGZ1bmN0
aW9uIGZpbmRSZXF1ZXN0QnlVUkwodXJsKQotICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3RzID0g
V2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cucmVxdWVzdHM7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgcmVxdWVzdHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlmICh1cmwudGVzdChy
ZXF1ZXN0c1tpXS51cmwpKQotICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0c1tpXTsKLSAg
ICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5O
ZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzLlJlcXVlc3RTdGFydGVkLCBvblJlcXVlc3QpOwotICAg
ICAgICB2YXIgc3RyID0gIiI7Ci0gICAgICAgIHN0ciArPSAidmFyIHMgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KFwic2NyaXB0XCIpOyI7Ci0gICAgICAgIHN0ciArPSAicy5zcmMgPSBcInJlc291
cmNlcy9zaWxlbnRfc2NyaXB0LmpzXCI7IjsKLSAgICAgICAgc3RyICs9ICJkb2N1bWVudC5oZWFk
LmFwcGVuZENoaWxkKHMpOyI7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5ydW50aW1lTW9kZWwuZXZh
bHVhdGUoc3RyLCAiY29uc29sZSIsIHRydWUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIGZ1bmN0aW9uKCl7fSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25SZXF1ZXN0KGV2ZW50
KQotICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBldmVudC5kYXRhOwotICAgICAgICBpZiAo
L3NpbGVudF9zY3JpcHQuanMvLnRlc3QocmVxdWVzdC51cmwpKQotICAgICAgICAgICAgc3RlcDIo
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBpZiAoIWZp
bmRSZXF1ZXN0QnlVUkwoL3NpbGVudF9zY3JpcHQuanMvKSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5zaG93KCk7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQgdGhlcmUgaXMg
bm8gamF2YXNjcmlwdCBlcnJvciB3aGVuIGNvbnNvbGUgZXZhbHVhdGlvbiBjYXVzZXMgcmVzb3Vy
Y2UgbG9hZGluZy48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjU0NjYiPkJ1ZyA2NTQ2NjwvYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1pbml0
aWF0b3IuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1pbml0aWF0b3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmY3OTBk
Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmstaW5pdGlhdG9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTEgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxsaW5rIGhyZWY9InJlc291cmNlcy9pbml0aWF0b3IuY3NzIiByZWw9
InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vbmV0d29yay10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGFkZENsYXNzVG9EaXYoKQotewotICAgIC8vIFdl
IG5lZWQgdG8gc2V0VGltZW91dCwgdG8gbWFrZSBzdXJlIHRoYXQgc3R5bGUgcmVjYWxjdWxhdGlv
biBzY2hlZHVsaW5nCi0gICAgLy8gaXMgcmVhbGx5IHRyaWdnZXJlZCBieSBhZGRpbmcgYSBjbGFz
cyB0byB0aGUgZGl2LgotICAgIHdpbmRvdy5zZXRUaW1lb3V0KGFkZENsYXNzVG9EaXZTdGVwMiwg
MCk7Ci19Ci0KLWZ1bmN0aW9uIGFkZENsYXNzVG9EaXZTdGVwMigpCi17Ci0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdi13aXRob3V0LWNsYXNzIikuY2xhc3NOYW1lID0gImltYWdlLWJh
Y2tncm91bmQtMiI7Ci19Ci0KLWZ1bmN0aW9uIGxvYWREYXRhKCkKLXsKLSAgICB2YXIgeGhyID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gWE1MSHR0cFJlcXVl
c3QuRE9ORSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZGVkKCk7Ci0gICAgfTsKLSAgICB4aHIu
b3BlbigiR0VUIiwgInJlc291cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZyYW5kb209MSZz
aXplPTQwMCIsIHRydWUpOwotICAgIHhoci5zZW5kKG51bGwpOwotfQotCi1mdW5jdGlvbiByZXNv
dXJjZUxvYWRlZCgpCi17Ci0gICAgY29uc29sZS5sb2coIkRvbmUuIik7Ci19Ci0KLXZhciB0ZXN0
ID0gZnVuY3Rpb24oKQotewotICAgIEluc3BlY3RvclRlc3QuaGFyZFJlbG9hZFBhZ2Uoc3RlcDEp
OwotCi0gICAgZnVuY3Rpb24gZmluZFJlcXVlc3RCeVVSTCh1cmwpCi0gICAgewotICAgICAgICB2
YXIgcmVxdWVzdHMgPSBXZWJJbnNwZWN0b3IubmV0d29ya0xvZy5yZXF1ZXN0czsKLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCByZXF1ZXN0cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
aWYgKHVybC50ZXN0KHJlcXVlc3RzW2ldLnVybCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3RzW2ldOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAg
IHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLm5ldHdvcmtNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlwZXMuUmVxdWVzdEZpbmlzaGVkLCBv
blJlcXVlc3QpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJhZGRDbGFz
c1RvRGl2KCkiLCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25SZXF1ZXN0KGV2ZW50
KQotICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBldmVudC5kYXRhOwotICAgICAgICBpZiAo
L3NpemU9MzAwLy50ZXN0KHJlcXVlc3QudXJsKSkKLSAgICAgICAgICAgIHN0ZXAyKCk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgaWYgKCFmaW5kUmVxdWVz
dEJ5VVJMKC9zaXplPTMwMC8pKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJsb2FkRGF0YSgpIik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3Rl
cDMoKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gZHVtcEluaXRpYXRvcihyZXF1ZXN0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgaW5pdGlhdG9yID0gcmVxdWVzdC5pbml0aWF0b3I7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZXF1ZXN0LnVybCArICI6ICIgKyBp
bml0aWF0b3IudHlwZSk7Ci0gICAgICAgICAgICBpZiAoaW5pdGlhdG9yLnVybCkKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICIgKyBpbml0aWF0b3IudXJsICsg
IiAiICsgaW5pdGlhdG9yLmxpbmVOdW1iZXIpOwotICAgICAgICAgICAgaWYgKGluaXRpYXRvci5z
dGFja1RyYWNlKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHN0YWNrVHJhY2UgPSBpbml0aWF0b3Iu
c3RhY2tUcmFjZTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YWNrVHJh
Y2UubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGZyYW1lID0gc3RhY2tU
cmFjZVtpXTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGZyYW1lLmxpbmVOdW1iZXIpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgIiArIGZy
YW1lLmZ1bmN0aW9uTmFtZSArICIgIiArIGZyYW1lLnVybCArICIgIiArIGZyYW1lLmxpbmVOdW1i
ZXIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAg
ICBkdW1wSW5pdGlhdG9yKGZpbmRSZXF1ZXN0QnlVUkwoL2luaXRpYXRvclwuY3NzLykpOwotICAg
ICAgICBkdW1wSW5pdGlhdG9yKGZpbmRSZXF1ZXN0QnlVUkwoL3NpemU9MTAwLykpOwotICAgICAg
ICBkdW1wSW5pdGlhdG9yKGZpbmRSZXF1ZXN0QnlVUkwoL3NpemU9MjAwLykpOwotICAgICAgICBk
dW1wSW5pdGlhdG9yKGZpbmRSZXF1ZXN0QnlVUkwoL3NpemU9MzAwLykpOwotICAgICAgICBkdW1w
SW5pdGlhdG9yKGZpbmRSZXF1ZXN0QnlVUkwoL3NpemU9NDAwLykpOwotCi0gICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHJlc291cmNlcyBpbml0aWF0b3Ig
Zm9yIGltYWdlcyBpbml0aWF0ZWQgYnkgSU1HIHRhZywgc3RhdGljIENTUywgQ1NTIGNsYXNzIGFk
ZGVkIGZyb20gSmF2YVNjcmlwdCBhbmQgWEhSLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTEwNSI+QnVnIDY1MTA1PC9hPgotPGltZyBzcmM9
InJlc291cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZyYW5kb209MSZzaXplPTEwMCI+Ci08
ZGl2IGNsYXNzPSJpbWFnZS1iYWNrZ3JvdW5kIj5UaGlzIGRpdiBoYXMgYmFja2dyb3VuZCBpbWFn
ZSBzZXQgZnJvbSBDU1MuPC9kaXY+Ci08ZGl2IGlkPSJkaXYtd2l0aG91dC1jbGFzcyI+VGhpcyBk
aXYgd2lsbCBoYXZlIGJhY2tncm91bmQgaW1hZ2Ugc2V0IGZyb20gSmF2YVNjcmlwdC48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbmV0d29yay1wcmV2aWV3LWpzb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXByZXZpZXctanNvbi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhYjU2Y2MuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3Jr
LXByZXZpZXctanNvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LVRlc3RzIFJlcXVlc3RKU09OVmlldyBhYmlsaXR5IHRvIHBhcnNlIEpTT04gcGFzc2VkIGluIFhI
UiwgSlNPTlAKLQotQnVnIDY1NTU5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstcHJldmlldy1qc29uLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstcHJldmlldy1qc29uLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiZGQ4ZjcuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXByZXZpZXctanNv
bi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJuZXR3b3JrIik7
Ci0KLSAgICB2YXIgdGVzdERhdGE7Ci0KLSAgICB0ZXN0RGF0YSA9ICJ3aGlsZSgxKTsiOwotICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghV2ViSW5zcGVjdG9yLlJlcXVlc3RKU09OVmlldy5w
YXJzZUpTT04odGVzdERhdGEpLCAiU2hvdWxkIG5vdCBiZSBhYmxlIHRvIHBhcnNlIFwiIiArIHRl
c3REYXRhICsgIlwiLiIpOwotCi0gICAgdGVzdERhdGEgPSAie1wibmFtZVwiOiBcInZhbHVlXCIi
OwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghV2ViSW5zcGVjdG9yLlJlcXVlc3RKU09O
Vmlldy5wYXJzZUpTT04odGVzdERhdGEpLCAiU2hvdWxkIG5vdCBiZSBhYmxlIHRvIHBhcnNlIFwi
IiArIHRlc3REYXRhICsgIlwiLiIpOwotCi0gICAgdGVzdERhdGEgPSAie1wibmFtZVwiOiBcInZh
bHVlXCJ9IjsKLSAgICB2YXIgcGFyc2VkSlNPTiA9IFdlYkluc3BlY3Rvci5SZXF1ZXN0SlNPTlZp
ZXcucGFyc2VKU09OKHRlc3REYXRhKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhw
YXJzZWRKU09OLnByZWZpeCwgIiIpOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHBh
cnNlZEpTT04uZGF0YS5uYW1lLCAidmFsdWUiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscyhwYXJzZWRKU09OLnN1ZmZpeCwgIiIpOwotCi0gICAgdGVzdERhdGEgPSAid2hpbGUoMSk7
IHtcIm5hbWVcIjogXCJ2YWx1ZVwifSI7Ci0gICAgcGFyc2VkSlNPTiA9IFdlYkluc3BlY3Rvci5S
ZXF1ZXN0SlNPTlZpZXcucGFyc2VKU09OKHRlc3REYXRhKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEVxdWFscyhwYXJzZWRKU09OLnByZWZpeCwgIndoaWxlKDEpOyAiKTsKLSAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEVxdWFscyhwYXJzZWRKU09OLmRhdGEubmFtZSwgInZhbHVlIik7Ci0gICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMocGFyc2VkSlNPTi5zdWZmaXgsICIiKTsKLQotICAg
IHRlc3REYXRhID0gImZ1bmMoeykiOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghV2Vi
SW5zcGVjdG9yLlJlcXVlc3RKU09OVmlldy5wYXJzZUpTT05QKHRlc3REYXRhKSwgIlNob3VsZCBu
b3QgYmUgYWJsZSB0byBwYXJzZSBcIiIgKyB0ZXN0RGF0YSArICJcIi4iKTsKLQotICAgIHRlc3RE
YXRhID0gImZ1bmMpeygiOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghV2ViSW5zcGVj
dG9yLlJlcXVlc3RKU09OVmlldy5wYXJzZUpTT05QKHRlc3REYXRhKSwgIlNob3VsZCBub3QgYmUg
YWJsZSB0byBwYXJzZSBcIiIgKyB0ZXN0RGF0YSArICJcIi4iKTsKLQotICAgIHRlc3REYXRhID0g
ImZ1bmMoe1wibmFtZVwiOiBcInZhbHVlXCJ9IjsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRy
dWUoIVdlYkluc3BlY3Rvci5SZXF1ZXN0SlNPTlZpZXcucGFyc2VKU09OUCh0ZXN0RGF0YSksICJT
aG91bGQgbm90IGJlIGFibGUgdG8gcGFyc2UgXCIiICsgdGVzdERhdGEgKyAiXCIuIik7Ci0KLSAg
ICB0ZXN0RGF0YSA9ICJmdW5je1wibmFtZVwiOiBcInZhbHVlXCJ9KSI7Ci0gICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnRUcnVlKCFXZWJJbnNwZWN0b3IuUmVxdWVzdEpTT05WaWV3LnBhcnNlSlNPTlAo
dGVzdERhdGEpLCAiU2hvdWxkIG5vdCBiZSBhYmxlIHRvIHBhcnNlIFwiIiArIHRlc3REYXRhICsg
IlwiLiIpOwotCi0gICAgdGVzdERhdGEgPSAiZnVuYyh7XCJuYW1lXCI6IFwidmFsdWVcIn0pIjsK
LSAgICB2YXIgcGFyc2VkSlNPTlAgPSBXZWJJbnNwZWN0b3IuUmVxdWVzdEpTT05WaWV3LnBhcnNl
SlNPTlAodGVzdERhdGEpOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHBhcnNlZEpT
T05QLnByZWZpeCwgImZ1bmMoIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMocGFy
c2VkSlNPTlAuZGF0YS5uYW1lLCAidmFsdWUiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscyhwYXJzZWRKU09OUC5zdWZmaXgsICIpIik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD5UZXN0cyBSZXF1ZXN0SlNPTlZpZXcgYWJpbGl0eSB0byBwYXJzZSBKU09OIHBhc3Nl
ZCBpbiBYSFIsIEpTT05QPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY1NTU5Ij5CdWcgNjU1NTk8L2E+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
cmVxdWVzdC1yZXZpc2lvbi1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTFiYTRmLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNiArMCwwIEBACi1UZXN0cyBob3cgcmV2aXNpb24gcmVxdWVzdHMgY29udGVudCBpZiBvcmln
aW5hbCBjb250ZW50IHdhcyBub3QgbG9hZGVkIHlldC4KLQotQnVnIDYzNjMxCi1odHRwOi8vMTI3
LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3N0eWxlLmNzcwotCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTdhYmRmMS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstcmVxdWVzdC1yZXZp
c2lvbi1jb250ZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiBsb2FkU3R5bGVzaGVldCgpCi17Ci0gICAgdmFyIGNzcyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTsKLSAgICBjc3MucmVsID0gInN0eWxlc2hlZXQiOwot
ICAgIGNzcy50eXBlID0gInRleHQvY3NzIjsKLSAgICBjc3MuaHJlZiA9ICJyZXNvdXJjZXMvc3R5
bGUuY3NzIjsKLSAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGNzcyk7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci53b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFk
ZGVkLCBzdGVwMik7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZFN0eWxl
c2hlZXQoKSIpOwotCi0gICAgdmFyIHJlc291cmNlOwotICAgIGZ1bmN0aW9uIHN0ZXAyKGV2ZW50
KQotICAgIHsKLSAgICAgICAgdmFyIGV2ZW50VUlTb3VyY2VDb2RlID0gZXZlbnQuZGF0YTsKLSAg
ICAgICAgaWYgKGV2ZW50VUlTb3VyY2VDb2RlLm9yaWdpblVSTCgpLmluZGV4T2YoInN0eWxlLmNz
cyIpID09IC0xKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB2YXIgcmVxdWVzdCA9IFdl
Ykluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbCgi
bmV0d29yayIpLnJlcXVlc3RzLmxlbmd0aCAtIDFdOwotICAgICAgICB1aVNvdXJjZUNvZGUgPSBX
ZWJJbnNwZWN0b3Iud29ya3NwYWNlLnVpU291cmNlQ29kZUZvck9yaWdpblVSTChyZXF1ZXN0LnVy
bCk7Ci0gICAgICAgIGlmICghdWlTb3VyY2VDb2RlKQotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB1aVNvdXJjZUNvZGUuYWRkUmV2aXNpb24oIiIpOwotICAgICAgICB1aVNvdXJjZUNvZGUu
aGlzdG9yeVswXS5yZXF1ZXN0Q29udGVudChzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
c3RlcDMoY29udGVudCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHVp
U291cmNlQ29kZS5vcmlnaW5VUkwoKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KGNvbnRlbnQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0K
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVz
dHMgaG93IHJldmlzaW9uIHJlcXVlc3RzIGNvbnRlbnQgaWYgb3JpZ2luYWwgY29udGVudCB3YXMg
bm90IGxvYWRlZCB5ZXQuPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYzNjMxIj5CdWcgNjM2MzE8L2E+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
c2hhcmVkLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstc2hhcmVkLXdvcmtlci1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxNmNiZDkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNoYXJlZC13b3JrZXItZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDE0OiBEb25lLgotVGVzdHMgdGhhdCBzaGFyZWQgd29ya2VyIGNvbnRlbnQgaXMgYXZhaWxh
YmxlIGluIG5ldHdvcmsgcGFuZWwuCi0KLUJ1ZyA2NTkyOQotaHR0cDovLzEyNy4wLjAuMTo4MDAw
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLmpzCi1yZXNvdXJjZS50
eXBlOiBzY3JpcHQKLXJlc291cmNlLmNvbnRlbnQgYmVmb3JlIHJlcXVlc3RpbmcgY29udGVudDog
dW5kZWZpbmVkCi1yZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVudDogb25j
b25uZWN0ID0gZnVuY3Rpb24oZXZlbnQpCi17Ci0gICAgdmFyIHBvcnQgPSBldmVudC5wb3J0c1sw
XTsKLSAgICBwb3J0LnBvc3RNZXNzYWdlKCJEb25lLiIpOwotfQotCi0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNoYXJlZC13
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1zaGFyZWQtd29ya2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4
ZjE4YjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLXNoYXJlZC13b3JrZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL25ldHdvcmstdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotZnVuY3Rpb24gbG9hZERhdGEoKQotewotICAgIHZhciB3b3JrZXIgPSBuZXcgU2hh
cmVkV29ya2VyKCJyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci5qcyIpOwotICAgIHdvcmtlci5wb3J0
Lm9ubWVzc2FnZSA9IHdvcmtlckxvYWRlZDsKLX0KLQotZnVuY3Rpb24gd29ya2VyTG9hZGVkKGV2
ZW50KQotewotICAgIGNvbnNvbGUubG9nKGV2ZW50LmRhdGEpOwotfQotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICAvLyBTaW5jZSB0aGlzIHRlc3QgY291bGQgYmUgcnVuIHRvZ2V0aGVyIHdpdGgg
b3RoZXIgaW5zcGVjdG9yIGJhY2tlbmQgY2FjaGUKLSAgICAvLyB0ZXN0cywgd2UgbmVlZCB0byBy
ZXNldCBzaXplIGxpbWl0cyB0byBkZWZhdWx0IG9uZXMuCi0gICAgSW5zcGVjdG9yVGVzdC5yZXNl
dEluc3BlY3RvclJlc291cmNlc0RhdGEoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWREYXRhKCkiKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICB2YXIgcmVxdWVzdDEgPSBX
ZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwo
Im5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGggLSAxXTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQocmVxdWVzdDEudXJsKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
InJlc291cmNlLnR5cGU6ICIgKyByZXF1ZXN0MS50eXBlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoInJlc291cmNlLmNvbnRlbnQgYmVmb3JlIHJlcXVlc3RpbmcgY29udGVudDog
IiArIHJlcXVlc3QxLmNvbnRlbnQpOwotICAgICAgICByZXF1ZXN0MS5yZXF1ZXN0Q29udGVudChz
dGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgdmFy
IHJlcXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5z
cGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMV07Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3Rpbmcg
Y29udGVudDogIiArIHJlcXVlc3QxLmNvbnRlbnQpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IHNoYXJlZCB3b3JrZXIgY29udGVudCBpcyBh
dmFpbGFibGUgaW4gbmV0d29yayBwYW5lbC48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MjkiPkJ1ZyA2NTkyOTwvYT4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvbmV0d29yay1zaWRlYmFyLXdpZHRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaWRlYmFyLXdpZHRoLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTJjYWVkZi4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2lkZWJhci13
aWR0aC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSA2OiBYSFIgbG9hZGVkOiAxCi1UZXN0cyBuZXR3b3JrIHBhbmVsIHNpZGVi
YXIgd2lkdGggd2l0aCBhbmQgd2l0aG91dCBwcmVmZXJlbmNlIHNldC4KLQotQnVnIDY1MjU2Ci1T
aWRlYmFyIHdpZHRoOiAyMDAKLVNpZGViYXIgd2lkdGg6IDI0MgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2lkZWJhci13aWR0
aC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3Jr
LXNpZGViYXItd2lkdGguaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGIwZmMw
My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmstc2lkZWJhci13aWR0aC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vbmV0d29yay10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0Lm1ha2VTaW1wbGVYSFIo
IkdFVCIsICJyZXNvdXJjZXMvcmVzb3VyY2UucGhwIiwgdHJ1ZSwgc3RlcDIpOwotCi0gICAgdmFy
IG9sZFNldHRpbmc7Ci0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgdmFyIHBh
bmVsID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIik7Ci0gICAgICAgIHZhciBzZXR0aW5n
ID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzW3BhbmVsLl9zaWRlYmFyV2lkdGhTZXR0aW5nTmFtZSgp
XTsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5y
ZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGggLSAx
XTsKLQotICAgICAgICBvbGRTZXR0aW5nID0gc2V0dGluZy5nZXQoKTsKLSAgICAgICAgcGFuZWwu
c2hvdygpOwotCi0gICAgICAgIHNldHRpbmcuc2V0KHVuZGVmaW5lZCk7Ci0gICAgICAgIHBhbmVs
Ll9zaG93UmVxdWVzdChyZXF1ZXN0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlNpZGViYXIgd2lkdGg6ICIgKyBwYW5lbC5zaWRlYmFyRWxlbWVudC5vZmZzZXRXaWR0aCk7Ci0g
ICAgICAgIHBhbmVsLl90b2dnbGVHcmlkTW9kZSgpOwotCi0gICAgICAgIHNldHRpbmcuc2V0KDI0
Mik7Ci0gICAgICAgIHBhbmVsLl9zaG93UmVxdWVzdChyZXF1ZXN0KTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlNpZGViYXIgd2lkdGg6ICIgKyBwYW5lbC5zaWRlYmFyRWxlbWVu
dC5vZmZzZXRXaWR0aCk7Ci0gICAgICAgIHBhbmVsLl9jbG9zZVZpc2libGVSZXF1ZXN0KHJlcXVl
c3QpOwotCi0gICAgICAgIHNldHRpbmcuc2V0KG9sZFNldHRpbmcpOwotCi0gICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBuZXR3b3JrIHBhbmVsIHNpZGViYXIg
d2lkdGggd2l0aCBhbmQgd2l0aG91dCBwcmVmZXJlbmNlIHNldC48L3A+Ci08YSBocmVmPSJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyNTYiPkJ1ZyA2NTI1NjwvYT4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2YzUxOWIuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3Jr
LXNpemUtY2h1bmtlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogRG9uZS4KLVRlc3RzIG5ldHdvcmsgcmVzb3VyY2Ug
c2l6ZSByZXBvcnRpbmcgZm9yIGNodW5rZWQgdHJhbnNmZXIgZW5jb2RpbmcuCi0KLQotaHR0cDov
LzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5waHA/
dHlwZT1pbWFnZSZzaXplPTUwMCZnemlwPXRydWUmY2h1bmtlZD10cnVlCi1yZXNvdXJjZVNpemU6
IDUwMAotdHJhbnNmZXJTaXplOiA5MzcKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjVjYTBkLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNo
dW5rZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LWZ1bmN0aW9uIGxvYWRJbWFnZXMoKQotewotICAgIHZhciBpbWFnZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImltZyIpOwotICAgIGltYWdlLm9ubG9hZCA9IHJlc291cmNlTG9hZGVkOwotICAg
IGltYWdlLnNldEF0dHJpYnV0ZSgic3JjIiwgInJlc291cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1p
bWFnZSZzaXplPTUwMCZnemlwPXRydWUmY2h1bmtlZD10cnVlIik7Ci0gICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChpbWFnZSk7Ci19Ci0KLWZ1bmN0aW9uIHJlc291cmNlTG9hZGVkKCkKLXsK
LSAgICBjb25zb2xlLmxvZygiRG9uZS4iKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
SW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7Ci0gICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgibG9hZEltYWdlcygpIik7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigp
Ci0gICAgewotICAgICAgICB2YXIgcmVxdWVzdDEgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdv
cmsiKS5yZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5n
dGggLSAxXTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVxdWVzdDEudXJsKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291cmNlU2l6ZTogIiArIHJlcXVl
c3QxLnJlc291cmNlU2l6ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJ0cmFu
c2ZlclNpemU6ICIgKyByZXF1ZXN0MS50cmFuc2ZlclNpemUpOwotCi0gICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBuZXR3b3JrIHJlc291cmNlIHNpemUgcmVw
b3J0aW5nIGZvciBjaHVua2VkIHRyYW5zZmVyIGVuY29kaW5nLjwvcD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
bmV0d29yay1zaXplLWV4cGVjdGVkLWNodW5rZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQtY2h1bmtlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkYjliMDMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQt
Y2h1bmtlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAyMjogRG9uZS4KLVRlc3RzIG5ldHdvcmsgcmVzb3VyY2Ugc2l6ZSByZXBvcnRpbmcu
Ci0KLQotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9y
ZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZzaXplPTUwMCZnemlwPXRydWUlY2h1bmtlZD10cnVlCi1y
ZXNvdXJjZVNpemU6IDUwMAotdHJhbnNmZXJTaXplOiAyMDgKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNp
emUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDMzNmFhLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1zaXplLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAyMjogRG9uZS4KLVRlc3RzIG5ldHdvcmsgcmVzb3VyY2Ugc2l6
ZSByZXBvcnRpbmcuCi0KLQotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZzaXplPTUwMAotcmVzb3VyY2VTaXpl
OiA1MDAKLXRyYW5zZmVyU2l6ZTogNTAwCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocD90eXBlPWltYWdlJnNpemU9NTAwJmd6aXA9
dHJ1ZQotcmVzb3VyY2VTaXplOiA1MDAKLXRyYW5zZmVyU2l6ZTogMjAyCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLXN5
bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLXNpemUtc3luYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDFhZmFlOWUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtc3luYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw3ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2OiBYSFIgbG9hZGVkOiAx
Ci1UZXN0cyBuZXR3b3JrIHJlc291cmNlIHNpemUgcmVwb3J0aW5nIGZvciBzeW5jaHJvbm91cyBy
ZXF1ZXN0cy4KLQotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZzaXplPTUwMCZnemlwPXRydWUmY2h1bmtlZD10
cnVlCi1yZXNvdXJjZVNpemU6IDUwMAotdHJhbnNmZXJTaXplOiA5MzcKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtc3lu
Yy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3Jr
LXNpemUtc3luYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjU5OTlhLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1zaXplLXN5bmMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL25ldHdvcmstdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5tYWtlU2ltcGxlWEhSKCJHRVQiLCAi
cmVzb3VyY2VzL3Jlc291cmNlLnBocD90eXBlPWltYWdlJnNpemU9NTAwJmd6aXA9dHJ1ZSZjaHVu
a2VkPXRydWUiLCBmYWxzZSwgc3RlcDIpOwotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsK
LSAgICAgICAgdmFyIHJlcXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVx
dWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMV07
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlcXVlc3QxLnVybCk7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXNvdXJjZVNpemU6ICIgKyByZXF1ZXN0MS5yZXNv
dXJjZVNpemUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgidHJhbnNmZXJTaXpl
OiAiICsgcmVxdWVzdDEudHJhbnNmZXJTaXplKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotPHA+VGVzdHMgbmV0d29yayByZXNvdXJjZSBzaXplIHJlcG9ydGluZyBm
b3Igc3luY2hyb25vdXMgcmVxdWVzdHMuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1z
aXplLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmNTNjYWMuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNp
emUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1
bmN0aW9uIGxvYWRJbWFnZXMoKQotewotICAgIHZhciBpbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpOwotICAgIGltYWdlLm9ubG9hZCA9IHJlc291cmNlTG9hZGVkOwotICAgIGlt
YWdlLnNldEF0dHJpYnV0ZSgic3JjIiwgInJlc291cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFn
ZSZzaXplPTUwMCIpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2UpOwotCi0g
ICAgdmFyIGltYWdlMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgIGltYWdl
Mi5vbmxvYWQgPSByZXNvdXJjZUxvYWRlZDsKLSAgICBpbWFnZTIuc2V0QXR0cmlidXRlKCJzcmMi
LCAicmVzb3VyY2VzL3Jlc291cmNlLnBocD90eXBlPWltYWdlJnNpemU9NTAwJmd6aXA9dHJ1ZSIp
OwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2UyKTsKLX0KLQotdmFyIGxvYWRl
ZFJlc291cmNlQ291bnQgPSAwOwotZnVuY3Rpb24gcmVzb3VyY2VMb2FkZWQoKQotewotICAgIGlm
ICgrK2xvYWRlZFJlc291cmNlQ291bnQgPT09IDIpIHsKLSAgICAgICAgY29uc29sZS5sb2coIkRv
bmUuIik7Ci0gICAgfQotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0
LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAyKTsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJsb2FkSW1hZ2VzKCkiKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAg
ICAgIC8vIGluc3BlY3Rvci10ZXN0LmpzIGFwcGVhcnMgaW4gbmV0d29yayBwYW5lbCBvY2Nhc2lv
bmFsbHkgaW4gU2FmYXJpIG9uCi0gICAgICAgIC8vIE1hYywgc28gY2hlY2tpbmcgdHdvIGxhc3Qg
cmVzb3VyY2VzLgotICAgICAgICB2YXIgcmVxdWVzdHNDb3VudCA9IFdlYkluc3BlY3Rvci5wYW5l
bCgibmV0d29yayIpLnJlcXVlc3RzLmxlbmd0aDsKLSAgICAgICAgdmFyIHJlcXVlc3QxID0gV2Vi
SW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbcmVxdWVzdHNDb3VudCAtIDJdOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZXF1ZXN0MS51cmwpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicmVzb3VyY2VTaXplOiAiICsgcmVxdWVzdDEucmVzb3Vy
Y2VTaXplKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInRyYW5zZmVyU2l6ZTog
IiArIChyZXF1ZXN0MS50cmFuc2ZlclNpemUgLSByZXF1ZXN0MS5yZXNwb25zZUhlYWRlcnNTaXpl
KSk7Ci0KLSAgICAgICAgdmFyIHJlcXVlc3QyID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3Jr
IikucmVxdWVzdHNbcmVxdWVzdHNDb3VudCAtIDFdOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdChyZXF1ZXN0Mi51cmwpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
cmVzb3VyY2VTaXplOiAiICsgcmVxdWVzdDIucmVzb3VyY2VTaXplKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoInRyYW5zZmVyU2l6ZTogIiArIChyZXF1ZXN0Mi50cmFuc2ZlclNp
emUgLSByZXF1ZXN0Mi5yZXNwb25zZUhlYWRlcnNTaXplKSk7Ci0KLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIG5ldHdvcmsgcmVzb3VyY2Ugc2l6ZSByZXBv
cnRpbmcuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXRpbWluZy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstdGltaW5nLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFkZGQxZS4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
dGltaW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDIyOiBEb25lLgotVGVzdHMgbmV0d29yayBwYW5lbCB0aW1pbmcuCi0K
LWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3Vy
Y2UucGhwP3R5cGU9anMmd2FpdD0xMDAmc2VuZD0yMDAmanNkZWxheT0zMDAmanNjb250ZW50PXJl
c291cmNlTG9hZGVkKCkKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZXMvcmVzb3VyY2UucGhwP3R5cGU9anMmd2FpdD0xMDAmc2VuZD0xMDAmanNjb250ZW50
PXJlc291cmNlTG9hZGVkKCkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXRpbWluZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXRpbWluZy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2NWViMmMyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay10aW1pbmcuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDUzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGxvYWRTY3JpcHRzKCkK
LXsKLSAgICAvLyBXYWl0IDEwMCBtcywgdGhlbiBzZXJ2ZSBmb3IgMjAwbXMgZmlsZSBjb250YWlu
aW5nIDMwMG1zIGxvb3AuCi0gICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNjcmlwdCIpOwotICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoInNyYyIsICJyZXNvdXJjZXMvcmVz
b3VyY2UucGhwP3R5cGU9anMmd2FpdD0xMDAmc2VuZD0yMDAmanNkZWxheT0zMDAmanNjb250ZW50
PXJlc291cmNlTG9hZGVkKCkiKTsKLSAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlw
dCk7Ci0KLSAgICAvLyBXYWl0IDEwMCBtcywgdGhlbiBzZXJ2ZSBmb3IgMTAwbXMgYW5kIGNhbGwg
Y29uc29sZS5sb2cgaW4gY29udGVudC4KLSAgICBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzY3JpcHQiKTsKLSAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCJzcmMiLCAicmVzb3VyY2Vz
L3Jlc291cmNlLnBocD90eXBlPWpzJndhaXQ9MTAwJnNlbmQ9MTAwJmpzY29udGVudD1yZXNvdXJj
ZUxvYWRlZCgpIik7Ci0gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwotfQot
Ci12YXIgbG9hZGVkUmVzb3VyY2VDb3VudCA9IDA7Ci1mdW5jdGlvbiByZXNvdXJjZUxvYWRlZCgp
Ci17Ci0gICAgaWYgKCsrbG9hZGVkUmVzb3VyY2VDb3VudCA9PT0gMikKLSAgICAgICAgY29uc29s
ZS5sb2coIkRvbmUuIik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRl
c3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIpOwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoImxvYWRTY3JpcHRzKCkiKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0g
ICAgICAgIC8vIGluc3BlY3Rvci10ZXN0LmpzIGFwcGVhcnMgaW4gbmV0d29yayBwYW5lbCBvY2Nh
c2lvbmFsbHkgaW4gU2FmYXJpIG9uCi0gICAgICAgIC8vIE1hYywgc28gY2hlY2tpbmcgdHdvIGxh
c3QgcmVxdWVzdHMuCi0gICAgICAgIHZhciByZXF1ZXN0cyA9IFdlYkluc3BlY3Rvci5uZXR3b3Jr
TG9nLnJlcXVlc3RzOwotICAgICAgICB2YXIgcmVxdWVzdHNDb3VudCA9IHJlcXVlc3RzLmxlbmd0
aDsKLSAgICAgICAgdmFyIHJlcXVlc3QxID0gcmVxdWVzdHNbcmVxdWVzdHNDb3VudCAtIDJdOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZXF1ZXN0MS51cmwpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydEdyZWF0ZXJPckVxdWFsKHJlcXVlc3QxLmxhdGVuY3kgKiAxMDAw
LCAxMDAsICJMYXRlbmN5IG9mIHRoZSBmaXJzdCByZXNvdXJjZSIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEdyZWF0ZXJPckVxdWFsKHJlcXVlc3QxLmR1cmF0aW9uICogMTAwMCwgMzAw
LCAiRHVyYXRpb24gb2YgdGhlIGZpcnN0IHJlc291cmNlIik7Ci0KLSAgICAgICAgdmFyIHJlcXVl
c3QyID0gcmVxdWVzdHNbcmVxdWVzdHNDb3VudCAtIDFdOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdChyZXF1ZXN0Mi51cmwpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEdy
ZWF0ZXJPckVxdWFsKHJlcXVlc3QyLmxhdGVuY3kgKiAxMDAwLCAxMDAsICJMYXRlbmN5IG9mIHRo
ZSBzZWNvbmQgcmVzb3VyY2UiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRHcmVhdGVy
T3JFcXVhbChyZXF1ZXN0Mi5kdXJhdGlvbiAqIDEwMDAsIDEwMCwgIkR1cmF0aW9uIG9mIHRoZSBz
ZWNvbmQgcmVzb3VyY2UiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
LSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
LTxwPlRlc3RzIG5ldHdvcmsgcGFuZWwgdGltaW5nLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9uZXR3b3JrLXdvcmtlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGNiZWE0NTQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXdvcmtlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxMCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IERvbmUuCi1UZXN0
cyB0aGF0IHdvcmtlciBjb250ZW50IGlzIGF2YWlsYWJsZSBpbiBuZXR3b3JrIHBhbmVsLgotCi1C
dWcgNjU5MjkKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZXMvd29ya2VyLmpzCi1yZXNvdXJjZS50eXBlOiBzY3JpcHQKLXJlc291cmNlLmNvbnRlbnQgYmVm
b3JlIHJlcXVlc3RpbmcgY29udGVudDogdW5kZWZpbmVkCi1yZXNvdXJjZS5jb250ZW50IGFmdGVy
IHJlcXVlc3RpbmcgY29udGVudDogcG9zdE1lc3NhZ2UoIkRvbmUuIik7Ci0KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXdvcmtl
ci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3Jr
LXdvcmtlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYWU0YzZlLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay13b3JrZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL25ldHdvcmstdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24g
bG9hZERhdGEoKQotewotICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJyZXNvdXJjZXMvd29y
a2VyLmpzIik7Ci0gICAgd29ya2VyLm9ubWVzc2FnZSA9IHdvcmtlckxvYWRlZDsKLX0KLQotZnVu
Y3Rpb24gd29ya2VyTG9hZGVkKGV2ZW50KQotewotICAgIGNvbnNvbGUubG9nKGV2ZW50LmRhdGEp
OwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICAvLyBTaW5jZSB0aGlzIHRlc3QgY291bGQg
YmUgcnVuIHRvZ2V0aGVyIHdpdGggb3RoZXIgaW5zcGVjdG9yIGJhY2tlbmQgY2FjaGUKLSAgICAv
LyB0ZXN0cywgd2UgbmVlZCB0byByZXNldCBzaXplIGxpbWl0cyB0byBkZWZhdWx0IG9uZXMuCi0g
ICAgSW5zcGVjdG9yVGVzdC5yZXNldEluc3BlY3RvclJlc291cmNlc0RhdGEoc3RlcDEpOwotCi0g
ICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25z
b2xlU25pZmZlcihzdGVwMik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
ImxvYWREYXRhKCkiKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAg
ICAgICB2YXIgcmVxdWVzdDEgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0
c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGggLSAxXTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVxdWVzdDEudXJsKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291cmNlLnR5cGU6ICIgKyByZXF1ZXN0MS50eXBlKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291cmNlLmNvbnRlbnQgYmVmb3Jl
IHJlcXVlc3RpbmcgY29udGVudDogIiArIHJlcXVlc3QxLmNvbnRlbnQpOwotICAgICAgICByZXF1
ZXN0MS5yZXF1ZXN0Q29udGVudChzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMo
KQotICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3
b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVu
Z3RoIC0gMV07Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXNvdXJjZS5jb250
ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVudDogIiArIHJlcXVlc3QxLmNvbnRlbnQpOwotCi0g
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IHdvcmtl
ciBjb250ZW50IGlzIGF2YWlsYWJsZSBpbiBuZXR3b3JrIHBhbmVsLjwvcD4KLTxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkyOSI+QnVnIDY1OTI5PC9h
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXhoci1hc3luYy1kb3VibGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXhoci1hc3lu
Yy1kb3VibGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MGE2
ZWRhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvbmV0d29yay14aHItYXN5bmMtZG91YmxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6IFhIUiBsb2FkZWQ6IDEKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA2OiBYSFIgbG9hZGVkOiAyCi1UZXN0cyByZXNwb25zZXMgaW4g
bmV0d29yayB0YWIgZm9yIHR3byBYSFJzIHNlbnQgd2l0aG91dCBhbnkgZGVsYXkgYmV0d2VlbiB0
aGVtLiBCdWcgOTE2MzAKLXJlc291cmNlMS5jb250ZW50OiByZXF1ZXN0MQotcmVzb3VyY2UyLmNv
bnRlbnQ6IHJlcXVlc3QyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItYXN5bmMtZG91YmxlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmsteGhyLWFzeW5jLWRvdWJsZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYmNlODRhLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItYXN5
bmMtZG91YmxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9uZXR3b3JrLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9u
IHRlc3QoKQotewotICAgIC8vIFNpbmNlIHRoaXMgdGVzdCBjb3VsZCBiZSBydW4gdG9nZXRoZXIg
d2l0aCBvdGhlciBpbnNwZWN0b3IgYmFja2VuZCBjYWNoZQotICAgIC8vIHRlc3RzLCB3ZSBuZWVk
IHRvIHJlc2V0IHNpemUgbGltaXRzIHRvIGRlZmF1bHQgb25lcy4KLSAgICBJbnNwZWN0b3JUZXN0
LnJlc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YShzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0Lm1ha2VTaW1wbGVYSFJXaXRoUGF5bG9h
ZCgiUE9TVCIsICJyZXNvdXJjZXMvZWNoby1wYXlsb2FkLnBocCIsIHRydWUsICdyZXF1ZXN0MScs
IHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0Lm1ha2VTaW1wbGVYSFJXaXRoUGF5bG9hZCgiUE9TVCIsICJyZXNvdXJjZXMv
ZWNoby1wYXlsb2FkLnBocCIsIHRydWUsICdyZXF1ZXN0MicsIHN0ZXAzKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICB2YXIgcmVxdWVzdDEgPSBXZWJJbnNw
ZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdv
cmsiKS5yZXF1ZXN0cy5sZW5ndGggLSAyXTsKLSAgICAgICAgdmFyIHJlcXVlc3QyID0gV2ViSW5z
cGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3
b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMV07Ci0gICAgICAgIHJlcXVlc3QxLnJlcXVlc3RDb250
ZW50KHN0ZXA0KTsKLSAgICAgICAgcmVxdWVzdDIucmVxdWVzdENvbnRlbnQoc3RlcDQpOwotICAg
IH0KLQotICAgIHZhciB0b0xvYWQgPSAyOwotICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICB7Ci0g
ICAgICAgIGlmICgtLXRvTG9hZCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIHJl
cXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVj
dG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMl07Ci0gICAgICAgIHZhciBy
ZXF1ZXN0MiA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3Bl
Y3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzLmxlbmd0aCAtIDFdOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgicmVzb3VyY2UxLmNvbnRlbnQ6ICIgKyByZXF1ZXN0MS5jb250
ZW50KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291cmNlMi5jb250ZW50
OiAiICsgcmVxdWVzdDIuY29udGVudCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1
ZShyZXF1ZXN0MS5jb250ZW50ID09PSAncmVxdWVzdDEnICYmIHJlcXVlc3QyLmNvbnRlbnQgPT09
ICdyZXF1ZXN0MicpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
IH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotVGVz
dHMgcmVzcG9uc2VzIGluIG5ldHdvcmsgdGFiIGZvciB0d28gWEhScyBzZW50IHdpdGhvdXQgYW55
IGRlbGF5IGJldHdlZW4gdGhlbS4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MTYzMCI+QnVnIDkxNjMwPC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3Jr
LXhoci1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL25ldHdvcmsteGhyLWFzeW5jLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMmQxNTdjMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmsteGhyLWFzeW5jLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6IFhIUiBs
b2FkZWQ6IDEKLVRlc3RzIFhIUiBuZXR3b3JrIHJlc291cmNlIHR5cGUgYW5kIGNvbnRlbnQgZm9y
IGFzeW5jaHJvbm91cyByZXF1ZXN0cy4gQnVnIDYxMjA1Ci0KLWh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhwCi1yZXNvdXJjZS50eXBl
OiB4aHIKLXJlc291cmNlLmNvbnRlbnQgYmVmb3JlIHJlcXVlc3RpbmcgY29udGVudDogdW5kZWZp
bmVkCi1yZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVudDogSGVsbG8gd29y
bGQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLXhoci1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9uZXR3b3JrLXhoci1hc3luYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhYWY5M2UwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItYXN5bmMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL25ldHdvcmstdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgLy8gU2luY2UgdGhpcyB0ZXN0
IGNvdWxkIGJlIHJ1biB0b2dldGhlciB3aXRoIG90aGVyIGluc3BlY3RvciBiYWNrZW5kIGNhY2hl
Ci0gICAgLy8gdGVzdHMsIHdlIG5lZWQgdG8gcmVzZXQgc2l6ZSBsaW1pdHMgdG8gZGVmYXVsdCBv
bmVzLgotICAgIEluc3BlY3RvclRlc3QucmVzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhKHN0ZXAx
KTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bWFrZVNpbXBsZVhIUigiR0VUIiwgInJlc291cmNlcy9yZXNvdXJjZS5waHAiLCB0cnVlLCBzdGVw
Mik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgdmFyIHJl
cXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVj
dG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMV07Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KHJlcXVlc3QxLnVybCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJyZXNvdXJjZS50eXBlOiAiICsgcmVxdWVzdDEudHlwZSk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXNvdXJjZS5jb250ZW50IGJlZm9yZSByZXF1ZXN0aW5n
IGNvbnRlbnQ6ICIgKyByZXF1ZXN0MS5jb250ZW50KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRUcnVlKCFyZXF1ZXN0MS5mYWlsZWQsICJSZXNvdXJjZSBsb2FkaW5nIGZhaWxlZC4iKTsK
LSAgICAgICAgcmVxdWVzdDEucmVxdWVzdENvbnRlbnQoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIHZhciByZXF1ZXN0MSA9IFdlYkluc3BlY3Rv
ci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIp
LnJlcXVlc3RzLmxlbmd0aCAtIDFdOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
cmVzb3VyY2UuY29udGVudCBhZnRlciByZXF1ZXN0aW5nIGNvbnRlbnQ6ICIgKyByZXF1ZXN0MS5j
b250ZW50KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0K
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotIDxwPgot
IFRlc3RzIFhIUiBuZXR3b3JrIHJlc291cmNlIHR5cGUgYW5kIGNvbnRlbnQgZm9yIGFzeW5jaHJv
bm91cyByZXF1ZXN0cy4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02MTIwNSI+QnVnIDYxMjA1PC9hPgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3Jr
LXhoci1yZXBsYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9uZXR3b3JrLXhoci1yZXBsYXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiMjk3MWFlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItcmVwbGF5LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2OiBY
SFIgbG9hZGVkOiAxCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogWEhSIGxvYWRlZDogMgotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDY6IFhIUiBsb2FkZWQ6IDMKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA2OiBYSFIgbG9hZGVkOiA0Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogWEhSIGxvYWRlZDog
NQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6IFhIUiBsb2FkZWQ6IDYKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA2OiBYSFIgbG9hZGVkOiA3Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogWEhSIGxv
YWRlZDogOAotVGVzdHMgWEhSIHJlcGxheWluZy4gQnVnIDk1MTg3Ci0KLVJ1bm5pbmc6IHRlc3RH
ZXRTdGF0aWNBc3luYwotRHVtcGluZyByZXF1ZXN0OiAKLSAgICB1cmw6IGh0dHA6Ly91c2VyOnBh
c3N3b3JkQDEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9lbXB0eS5o
dG1sCi0gICAgcmVxdWVzdE1ldGhvZDogR0VUCi0gICAgdGVzdCByZXF1ZXN0IGhlYWRlciB2YWx1
ZTogaGVhZGVyVmFsdWUKLQotUnVubmluZzogdGVzdEdldFN0YXRpY1N5bmMKLUR1bXBpbmcgcmVx
dWVzdDogCi0gICAgdXJsOiBodHRwOi8vdXNlcjpwYXNzd29yZEAxMjcuMC4wLjE6ODAwMC9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvZW1wdHkuaHRtbAotICAgIHJlcXVlc3RNZXRob2Q6IEdF
VAotICAgIHRlc3QgcmVxdWVzdCBoZWFkZXIgdmFsdWU6IGhlYWRlclZhbHVlCi0KLVJ1bm5pbmc6
IHRlc3RHZXRDYWNoZWRBc3luYwotRHVtcGluZyByZXF1ZXN0OiAKLSAgICB1cmw6IGh0dHA6Ly91
c2VyOnBhc3N3b3JkQDEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9y
YW5kb20tY2FjaGVkLnBocAotICAgIHJlcXVlc3RNZXRob2Q6IEdFVAotICAgIHRlc3QgcmVxdWVz
dCBoZWFkZXIgdmFsdWU6IGhlYWRlclZhbHVlCi0KLVJ1bm5pbmc6IHRlc3RHZXRDYWNoZWRTeW5j
Ci1EdW1waW5nIHJlcXVlc3Q6IAotICAgIHVybDogaHR0cDovL3VzZXI6cGFzc3dvcmRAMTI3LjAu
MC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3JhbmRvbS1jYWNoZWQucGhwCi0g
ICAgcmVxdWVzdE1ldGhvZDogR0VUCi0gICAgdGVzdCByZXF1ZXN0IGhlYWRlciB2YWx1ZTogaGVh
ZGVyVmFsdWUKLQotUnVubmluZzogdGVzdEdldFJhbmRvbUFzeW5jCi1EdW1waW5nIHJlcXVlc3Q6
IAotICAgIHVybDogaHR0cDovL3VzZXI6cGFzc3dvcmRAMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2VzL3JhbmRvbS5waHAKLSAgICByZXF1ZXN0TWV0aG9kOiBHRVQKLSAg
ICB0ZXN0IHJlcXVlc3QgaGVhZGVyIHZhbHVlOiBoZWFkZXJWYWx1ZQotCi1SdW5uaW5nOiB0ZXN0
R2V0UmFuZG9tU3luYwotRHVtcGluZyByZXF1ZXN0OiAKLSAgICB1cmw6IGh0dHA6Ly91c2VyOnBh
c3N3b3JkQDEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yYW5kb20u
cGhwCi0gICAgcmVxdWVzdE1ldGhvZDogR0VUCi0gICAgdGVzdCByZXF1ZXN0IGhlYWRlciB2YWx1
ZTogaGVhZGVyVmFsdWUKLQotUnVubmluZzogdGVzdFBvc3RBc3luYwotRHVtcGluZyByZXF1ZXN0
OiAKLSAgICB1cmw6IGh0dHA6Ly91c2VyOnBhc3N3b3JkQDEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlcy9yYW5kb20ucGhwCi0gICAgcmVxdWVzdEZvcm1EYXRhOiBwYXls
b2FkCi0gICAgcmVxdWVzdE1ldGhvZDogUE9TVAotICAgIHRlc3QgcmVxdWVzdCBoZWFkZXIgdmFs
dWU6IGhlYWRlclZhbHVlCi0KLVJ1bm5pbmc6IHRlc3RQb3N0U3luYwotRHVtcGluZyByZXF1ZXN0
OiAKLSAgICB1cmw6IGh0dHA6Ly91c2VyOnBhc3N3b3JkQDEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlcy9yYW5kb20ucGhwCi0gICAgcmVxdWVzdEZvcm1EYXRhOiBwYXls
b2FkCi0gICAgcmVxdWVzdE1ldGhvZDogUE9TVAotICAgIHRlc3QgcmVxdWVzdCBoZWFkZXIgdmFs
dWU6IGhlYWRlclZhbHVlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItcmVwbGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmsteGhyLXJlcGxheS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZmY1OGQ3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItcmVwbGF5Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxMDkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vbmV0d29y
ay10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IHZhciBuZXR3b3JrUGFuZWwgPSBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJuZXR3b3JrIik7Ci0K
LSAgICBmdW5jdGlvbiBsYXN0UmVxdWVzdCgpCi0gICAgewotICAgICAgICByZXR1cm4gbmV0d29y
a1BhbmVsLnJlcXVlc3RzW25ldHdvcmtQYW5lbC5yZXF1ZXN0cy5sZW5ndGggLSAxXTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBkdW1wUmVxdWVzdChyZXF1ZXN0KQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bXBpbmcgcmVxdWVzdDogIik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIgICAgdXJsOiAiICsgcmVxdWVzdC51cmwpOwotICAgICAgICBp
ZiAocmVxdWVzdC5yZXF1ZXN0Rm9ybURhdGEpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiICAgIHJlcXVlc3RGb3JtRGF0YTogIiArIHJlcXVlc3QucmVxdWVzdEZvcm1EYXRh
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICByZXF1ZXN0TWV0aG9kOiAi
ICsgcmVxdWVzdC5yZXF1ZXN0TWV0aG9kKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIiAgICB0ZXN0IHJlcXVlc3QgaGVhZGVyIHZhbHVlOiAiICsgcmVxdWVzdC5yZXF1ZXN0SGVh
ZGVyVmFsdWUoImhlYWRlck5hbWUiKSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYXNzZXJ0UmVx
dWVzdEVxdWFsKHJlcXVlc3QxLCByZXF1ZXN0MikKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0RXF1YWxzKHJlcXVlc3QxLnVybCwgcmVxdWVzdDIudXJsLCAiUmVxdWVzdHMgaGF2
ZSBkaWZmZXJlbnQgdXJsIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHJl
cXVlc3QxLnJlcXVlc3RGb3JtRGF0YSwgcmVxdWVzdDIucmVxdWVzdEZvcm1EYXRhLCAiUmVxdWVz
dHMgaGF2ZSBkaWZmZXJlbnQgcmVxdWVzdEZvcm1EYXRhIik7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0RXF1YWxzKHJlcXVlc3QxLnJlcXVlc3RNZXRob2QsIHJlcXVlc3QyLnJlcXVlc3RN
ZXRob2QsICJSZXF1ZXN0cyBoYXZlIGRpZmZlcmVudCByZXF1ZXN0TWV0aG9kIik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHJlcXVlc3QxLnJlcXVlc3RIZWFkZXJzVGV4dCwg
cmVxdWVzdDIucmVxdWVzdEhlYWRlcnNUZXh0LCAiUmVxdWVzdHMgaGF2ZSBkaWZmZXJlbnQgcmVx
dWVzdEhlYWRlcnNUZXh0Iik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdFhIUlJlcGxheSht
ZXRob2QsIHVybCwgYXN5bmMsIHVzZXIsIHBhc3N3b3JkLCBoZWFkZXJzLCB3aXRoQ3JlZGVudGlh
bHMsIHBheWxvYWQsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXNl
dEluc3BlY3RvclJlc291cmNlc0RhdGEoc3RlcDEpOwotCi0gICAgICAgIGZ1bmN0aW9uIHN0ZXAx
KCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5tYWtlWEhSKG1ldGhvZCwg
dXJsLCBhc3luYywgdXNlciwgcGFzc3dvcmQsIGhlYWRlcnMsIHdpdGhDcmVkZW50aWFscywgcGF5
bG9hZCwgc3RlcDIpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIG9yaWdpbmFsUmVxdWVzdDsK
LSAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBvcmlnaW5h
bFJlcXVlc3QgPSBsYXN0UmVxdWVzdCgpOwotICAgICAgICAgICAgZHVtcFJlcXVlc3Qob3JpZ2lu
YWxSZXF1ZXN0KTsKLSAgICAgICAgICAgIE5ldHdvcmtBZ2VudC5yZXBsYXlYSFIob3JpZ2luYWxS
ZXF1ZXN0LnJlcXVlc3RJZCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZSwgIl9hcHBlbmRSZXF1ZXN0Iiwg
c3RlcDMpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQotICAgICAgICB7
Ci0gICAgICAgICAgICB2YXIgcmVwbGF5ZWRSZXF1ZXN0ID0gbGFzdFJlcXVlc3QoKTsKLSAgICAg
ICAgICAgIGFzc2VydFJlcXVlc3RFcXVhbChvcmlnaW5hbFJlcXVlc3QsIHJlcGxheWVkUmVxdWVz
dCk7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICB9Ci0gICAgfQotCi0KLSAgICBJ
bnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RHZXRTdGF0
aWNBc3luYyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB0ZXN0WEhSUmVwbGF5KCJHRVQi
LCAicmVzb3VyY2VzL2VtcHR5Lmh0bWwiLCB0cnVlLCAidXNlciIsICJwYXNzd29yZCIsIFtbImhl
YWRlck5hbWUiLCAiaGVhZGVyVmFsdWUiXV0sIGZhbHNlLCB1bmRlZmluZWQsIG5leHQpOwotICAg
ICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RHZXRTdGF0aWNTeW5jKG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHRlc3RYSFJSZXBsYXkoIkdFVCIsICJyZXNvdXJjZXMvZW1wdHku
aHRtbCIsIGZhbHNlLCAidXNlciIsICJwYXNzd29yZCIsIFtbImhlYWRlck5hbWUiLCAiaGVhZGVy
VmFsdWUiXV0sIGZhbHNlLCB1bmRlZmluZWQsIG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RHZXRDYWNoZWRBc3luYyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICB0ZXN0WEhSUmVwbGF5KCJHRVQiLCAicmVzb3VyY2VzL3JhbmRvbS1jYWNoZWQucGhwIiwgdHJ1
ZSwgInVzZXIiLCAicGFzc3dvcmQiLCBbWyJoZWFkZXJOYW1lIiwgImhlYWRlclZhbHVlIl1dLCBm
YWxzZSwgdW5kZWZpbmVkLCBuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0
ZXN0R2V0Q2FjaGVkU3luYyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB0ZXN0WEhSUmVw
bGF5KCJHRVQiLCAicmVzb3VyY2VzL3JhbmRvbS1jYWNoZWQucGhwIiwgZmFsc2UsICJ1c2VyIiwg
InBhc3N3b3JkIiwgW1siaGVhZGVyTmFtZSIsICJoZWFkZXJWYWx1ZSJdXSwgZmFsc2UsIHVuZGVm
aW5lZCwgbmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEdldFJhbmRv
bUFzeW5jKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRlc3RYSFJSZXBsYXkoIkdFVCIs
ICJyZXNvdXJjZXMvcmFuZG9tLnBocCIsIHRydWUsICJ1c2VyIiwgInBhc3N3b3JkIiwgW1siaGVh
ZGVyTmFtZSIsICJoZWFkZXJWYWx1ZSJdXSwgZmFsc2UsIHVuZGVmaW5lZCwgbmV4dCk7Ci0gICAg
ICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEdldFJhbmRvbVN5bmMobmV4dCkKLSAgICAg
ICAgewotICAgICAgICAgICAgdGVzdFhIUlJlcGxheSgiR0VUIiwgInJlc291cmNlcy9yYW5kb20u
cGhwIiwgZmFsc2UsICJ1c2VyIiwgInBhc3N3b3JkIiwgW1siaGVhZGVyTmFtZSIsICJoZWFkZXJW
YWx1ZSJdXSwgZmFsc2UsIHVuZGVmaW5lZCwgbmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gdGVzdFBvc3RBc3luYyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB0ZXN0
WEhSUmVwbGF5KCJQT1NUIiwgInJlc291cmNlcy9yYW5kb20ucGhwIiwgdHJ1ZSwgInVzZXIiLCAi
cGFzc3dvcmQiLCBbWyJoZWFkZXJOYW1lIiwgImhlYWRlclZhbHVlIl1dLCBmYWxzZSwgInBheWxv
YWQiLCBuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0UG9zdFN5bmMo
bmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdGVzdFhIUlJlcGxheSgiUE9TVCIsICJyZXNv
dXJjZXMvcmFuZG9tLnBocCIsIGZhbHNlLCAidXNlciIsICJwYXNzd29yZCIsIFtbImhlYWRlck5h
bWUiLCAiaGVhZGVyVmFsdWUiXV0sIGZhbHNlLCAicGF5bG9hZCIsIG5leHQpOwotICAgICAgICB9
Ci0gICAgXSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLVRlc3RzIFhIUiByZXBsYXlpbmcuCi08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTUxODciPkJ1ZyA5NTE4NzwvYT4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay14aHItc2FtZS11cmwtYXMtbWFpbi1yZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmsteGhyLXNhbWUtdXJsLWFz
LW1haW4tcmVzb3VyY2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5OThlMzA5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay14aHItc2FtZS11cmwtYXMtbWFpbi1yZXNvdXJjZS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2
OiBYSFIgbG9hZGVkOiAxCi1UZXN0cyB0aGF0IFhIUnMgd2l0aCB0aGUgc2FtZSB1cmwgYXMgYSBt
YWluIHJlc291cmNlIGhhdmUgY29ycmVjdCBjYXRlZ29yeS4KLQotQnVnIDY4NjQ4Ci14aHIKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLXhoci1zYW1lLXVybC1hcy1tYWluLXJlc291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmsteGhyLXNhbWUtdXJsLWFzLW1haW4tcmVz
b3VyY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2JkZmNhYy4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
eGhyLXNhbWUtdXJsLWFzLW1haW4tcmVzb3VyY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIz
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL25ldHdvcmstdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5tYWtlU2lt
cGxlWEhSKCJHRVQiLCAibmV0d29yay14aHItc2FtZS11cmwtYXMtbWFpbi1yZXNvdXJjZS5odG1s
IiwgdHJ1ZSwgc3RlcDIpOwotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAg
dmFyIHJlcXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2Vi
SW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMV07Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlcXVlc3QxLnR5cGUubmFtZSgpKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQgWEhScyB3aXRoIHRo
ZSBzYW1lIHVybCBhcyBhIG1haW4gcmVzb3VyY2UgaGF2ZSBjb3JyZWN0IGNhdGVnb3J5LjwvcD4K
LTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY0OCI+
QnVnIDY4NjQ4PC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXhoci1zeW5jLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHIt
c3luYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhNjVmN2Iu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9u
ZXR3b3JrLXhoci1zeW5jLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBA
QAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6IFhIUiBsb2FkZWQ6IDEKLVRlc3RzIFhIUiBuZXR3
b3JrIHJlc291cmNlIHR5cGUgYW5kIGNvbnRlbnQgZm9yIHN5bmNocm9ub3VzIHJlcXVlc3RzLiBC
dWcgNjEyMDUKLQotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlcy9yZXNvdXJjZS5waHAKLXJlc291cmNlLnR5cGU6IHhocgotcmVzb3VyY2UuY29udGVudCBi
ZWZvcmUgcmVxdWVzdGluZyBjb250ZW50OiB1bmRlZmluZWQKLXJlc291cmNlLmNvbnRlbnQgYWZ0
ZXIgcmVxdWVzdGluZyBjb250ZW50OiBIZWxsbyB3b3JsZAotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmsteGhyLXN5bmMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHItc3lu
Yy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjFmMDkxLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay14aHIt
c3luYy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vbmV0d29yay10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICAvLyBTaW5jZSB0aGlzIHRlc3QgY291bGQgYmUgcnVuIHRvZ2V0aGVyIHdpdGgg
b3RoZXIgaW5zcGVjdG9yIGJhY2tlbmQgY2FjaGUKLSAgICAvLyB0ZXN0cywgd2UgbmVlZCB0byBy
ZXNldCBzaXplIGxpbWl0cyB0byBkZWZhdWx0IG9uZXMuCi0gICAgSW5zcGVjdG9yVGVzdC5yZXNl
dEluc3BlY3RvclJlc291cmNlc0RhdGEoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5tYWtlU2ltcGxlWEhSKCJHRVQiLCAicmVzb3Vy
Y2VzL3Jlc291cmNlLnBocCIsIGZhbHNlLCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
c3RlcDIoKQotICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVs
KCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVz
dHMubGVuZ3RoIC0gMV07Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlcXVlc3Qx
LnVybCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXNvdXJjZS50eXBlOiAi
ICsgcmVxdWVzdDEudHlwZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXNv
dXJjZS5jb250ZW50IGJlZm9yZSByZXF1ZXN0aW5nIGNvbnRlbnQ6ICIgKyByZXF1ZXN0MS5jb250
ZW50KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFyZXF1ZXN0MS5mYWlsZWQs
ICJSZXNvdXJjZSBsb2FkaW5nIGZhaWxlZC4iKTsKLSAgICAgICAgcmVxdWVzdDEucmVxdWVzdENv
bnRlbnQoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAg
ICAgIHZhciByZXF1ZXN0MSA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3Rz
W1dlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzLmxlbmd0aCAtIDFdOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicmVzb3VyY2UuY29udGVudCBhZnRlciByZXF1
ZXN0aW5nIGNvbnRlbnQ6ICIgKyByZXF1ZXN0MS5jb250ZW50KTsKLQotICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgotIDxwPgotIFRlc3RzIFhIUiBuZXR3b3JrIHJlc291cmNl
IHR5cGUgYW5kIGNvbnRlbnQgZm9yIHN5bmNocm9ub3VzIHJlcXVlc3RzLgotPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjA1Ij5CdWcgNjEyMDU8L2E+
Ci08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3BpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9waW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYWM5OTQ2YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3BpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNyArMCwwIEBACi1waW5nCi1UZXN0cyB0aGF0IGh5cGVybGluayBhdWRpdGluZyAocGlu
ZykgcmVxdWVzdHMgYXBwZWFyIGluIG5ldHdvcmsgcGFuZWwuCi0KLWh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9pbnNwZWN0b3IvbmV0d29yay9waW5nLmh0bWwKLXJlc291cmNlLmlzUGluZ1JlcXVlc3Qo
KTogdHJ1ZQotcmVzb3VyY2UucmVxdWVzdENvbnRlbnRUeXBlOiB0ZXh0L3BpbmcKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9waW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3BpbmcuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWJmZjZlMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3BpbmcuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDQ2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIG9ubG9hZCgpCi17Ci0g
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJl
ZmVyZW5jZSgiV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkIiwgMSk7Ci0gICAgcnVuVGVz
dCgpOwotfQotCi1mdW5jdGlvbiBuYXZpZ2F0ZUxpbmsoKQotewotICAgIHZhciBldnQgPSBkb2N1
bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTsKLSAgICBldnQuaW5pdE1vdXNlRXZlbnQo
ImNsaWNrIik7Ci0gICAgdmFyIGxpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGluZ0xp
bmsiKTsKLSAgICBsaW5rLmRpc3BhdGNoRXZlbnQoZXZ0KTsKLX0KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrRGlz
cGF0Y2hlci5wcm90b3R5cGUsICJyZXF1ZXN0V2lsbEJlU2VudCIsIHN0ZXAyKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJuYXZpZ2F0ZUxpbmsoKSIpOwotCi0gICAgZnVuY3Rp
b24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgLy8gaW5zcGVjdG9yLXRlc3QuanMgYXBwZWFycyBp
biBuZXR3b3JrIHBhbmVsIG9jY2FzaW9uYWxseSBpbiBTYWZhcmkgb24KLSAgICAgICAgLy8gTWFj
LCBzbyBjaGVja2luZyBsYXN0IHJlcXVlc3QuCi0gICAgICAgIHZhciByZXF1ZXN0cyA9IFdlYklu
c3BlY3Rvci5uZXR3b3JrTG9nLnJlcXVlc3RzOwotICAgICAgICB2YXIgcmVxdWVzdHNDb3VudCA9
IHJlcXVlc3RzLmxlbmd0aDsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSByZXF1ZXN0c1tyZXF1ZXN0
c0NvdW50IC0gMV07Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVxdWVzdC51
cmwpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicmVzb3VyY2UuaXNQaW5nUmVx
dWVzdCgpOiAiICsgcmVxdWVzdC5pc1BpbmdSZXF1ZXN0KCkpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgicmVzb3VyY2UucmVxdWVzdENvbnRlbnRUeXBlOiAiICsgcmVxdWVzdC5y
ZXF1ZXN0Q29udGVudFR5cGUoKSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ib25sb2Fk
KCkiPgotPGEgaWQ9InBpbmdMaW5rIiBocmVmPSIjIiBwaW5nPSJwaW5nLmh0bWwiPnBpbmc8L2E+
Ci08cD5UZXN0cyB0aGF0IGh5cGVybGluayBhdWRpdGluZyAocGluZykgcmVxdWVzdHMgYXBwZWFy
IGluIG5ldHdvcmsgcGFuZWwuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXF1ZXN0LW5hbWUtcGF0aC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
cXVlc3QtbmFtZS1wYXRoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMGZjOWUxNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL3JlcXVlc3QtbmFtZS1wYXRoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDUyICswLDAgQEAKLVRlc3RzIG5hbWUoKSBhbmQgcGF0aCgpIG1ldGhvZHMgb2YgTmV0d29y
a1JlcXVlc3QuCi0KLUJ1ZyAxMDEwNjQKLUR1bXBpbmcgcmVxdWVzdCBuYW1lIGFuZCBwYXRoIGZv
ciB1cmw6IGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vZm9vL2Jhci9iYXo/a2V5PXZhbHVlCi0gICAg
bmFtZSA9IGJhej9rZXk9dmFsdWUKLSAgICBwYXRoID0gd3d3LmV4YW1wbGUuY29tL2Zvby9iYXIK
LUR1bXBpbmcgcmVxdWVzdCBuYW1lIGFuZCBwYXRoIGZvciB1cmw6IGh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20vZm9vL2Jhci8/a2V5PXZhbHVlCi0gICAgbmFtZSA9ID9rZXk9dmFsdWUKLSAgICBwYXRo
ID0gd3d3LmV4YW1wbGUuY29tL2Zvby9iYXIKLUR1bXBpbmcgcmVxdWVzdCBuYW1lIGFuZCBwYXRo
IGZvciB1cmw6IGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vZm9vL2Jhci9iYXoKLSAgICBuYW1lID0g
YmF6Ci0gICAgcGF0aCA9IHd3dy5leGFtcGxlLmNvbS9mb28vYmFyCi1EdW1waW5nIHJlcXVlc3Qg
bmFtZSBhbmQgcGF0aCBmb3IgdXJsOiBodHRwOi8vd3d3LmV4YW1wbGUuY29tL2Zvby9iYXIvCi0g
ICAgbmFtZSA9IGJhci8KLSAgICBwYXRoID0gd3d3LmV4YW1wbGUuY29tL2ZvbwotRHVtcGluZyBy
ZXF1ZXN0IG5hbWUgYW5kIHBhdGggZm9yIHVybDogaHR0cDovL3d3dy5leGFtcGxlLmNvbS9iYXo/
a2V5PXZhbHVlCi0gICAgbmFtZSA9IGJhej9rZXk9dmFsdWUKLSAgICBwYXRoID0gd3d3LmV4YW1w
bGUuY29tCi1EdW1waW5nIHJlcXVlc3QgbmFtZSBhbmQgcGF0aCBmb3IgdXJsOiBodHRwOi8vd3d3
LmV4YW1wbGUuY29tLz9rZXk9dmFsdWUKLSAgICBuYW1lID0gP2tleT12YWx1ZQotICAgIHBhdGgg
PSB3d3cuZXhhbXBsZS5jb20KLUR1bXBpbmcgcmVxdWVzdCBuYW1lIGFuZCBwYXRoIGZvciB1cmw6
IGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vYmF6Ci0gICAgbmFtZSA9IGJhegotICAgIHBhdGggPSB3
d3cuZXhhbXBsZS5jb20KLUR1bXBpbmcgcmVxdWVzdCBuYW1lIGFuZCBwYXRoIGZvciB1cmw6IGh0
dHA6Ly93d3cuZXhhbXBsZS5jb20vCi0gICAgbmFtZSA9IHd3dy5leGFtcGxlLmNvbQotICAgIHBh
dGggPSAKLUR1bXBpbmcgcmVxdWVzdCBuYW1lIGFuZCBwYXRoIGZvciB1cmw6IGh0dHA6Ly8xMjcu
MC4wLjEvZm9vL2Jhci9iYXo/a2V5PXZhbHVlCi0gICAgbmFtZSA9IGJhej9rZXk9dmFsdWUKLSAg
ICBwYXRoID0gL2Zvby9iYXIKLUR1bXBpbmcgcmVxdWVzdCBuYW1lIGFuZCBwYXRoIGZvciB1cmw6
IGh0dHA6Ly8xMjcuMC4wLjEvZm9vL2Jhci8/a2V5PXZhbHVlCi0gICAgbmFtZSA9ID9rZXk9dmFs
dWUKLSAgICBwYXRoID0gL2Zvby9iYXIKLUR1bXBpbmcgcmVxdWVzdCBuYW1lIGFuZCBwYXRoIGZv
ciB1cmw6IGh0dHA6Ly8xMjcuMC4wLjEvZm9vL2Jhci9iYXoKLSAgICBuYW1lID0gYmF6Ci0gICAg
cGF0aCA9IC9mb28vYmFyCi1EdW1waW5nIHJlcXVlc3QgbmFtZSBhbmQgcGF0aCBmb3IgdXJsOiBo
dHRwOi8vMTI3LjAuMC4xL2Zvby9iYXIvCi0gICAgbmFtZSA9IGJhci8KLSAgICBwYXRoID0gL2Zv
bwotRHVtcGluZyByZXF1ZXN0IG5hbWUgYW5kIHBhdGggZm9yIHVybDogaHR0cDovLzEyNy4wLjAu
MS9iYXo/a2V5PXZhbHVlCi0gICAgbmFtZSA9IGJhej9rZXk9dmFsdWUKLSAgICBwYXRoID0gCi1E
dW1waW5nIHJlcXVlc3QgbmFtZSBhbmQgcGF0aCBmb3IgdXJsOiBodHRwOi8vMTI3LjAuMC4xLz9r
ZXk9dmFsdWUKLSAgICBuYW1lID0gP2tleT12YWx1ZQotICAgIHBhdGggPSAKLUR1bXBpbmcgcmVx
dWVzdCBuYW1lIGFuZCBwYXRoIGZvciB1cmw6IGh0dHA6Ly8xMjcuMC4wLjEvYmF6Ci0gICAgbmFt
ZSA9IGJhegotICAgIHBhdGggPSAKLUR1bXBpbmcgcmVxdWVzdCBuYW1lIGFuZCBwYXRoIGZvciB1
cmw6IGh0dHA6Ly8xMjcuMC4wLjEvCi0gICAgbmFtZSA9IDEyNy4wLjAuMQotICAgIHBhdGggPSAK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXF1ZXN0LW5hbWUtcGF0aC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXF1ZXN0LW5hbWUtcGF0aC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4MDc1ZWU0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVxdWVzdC1uYW1lLXBhdGguaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ0
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9u
IGNyZWF0ZU5ldHdvcmtSZXF1ZXN0Rm9yVVJMQW5kRHVtcE5hbWVBbmRQYXRoKHVybCkKLSAgICB7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIHJlcXVlc3QgbmFtZSBh
bmQgcGF0aCBmb3IgdXJsOiAiICsgdXJsKTsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgV2Vi
SW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0KDAsIHVybCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCIgICAgbmFtZSA9ICIgKyByZXF1ZXN0Lm5hbWUoKSk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIgICAgcGF0aCA9ICIgKyByZXF1ZXN0LnBhdGgoKSk7Ci0gICAg
fQotCi0gICAgY3JlYXRlTmV0d29ya1JlcXVlc3RGb3JVUkxBbmREdW1wTmFtZUFuZFBhdGgoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb20vZm9vL2Jhci9iYXo/a2V5PXZhbHVlIik7Ci0gICAgY3JlYXRl
TmV0d29ya1JlcXVlc3RGb3JVUkxBbmREdW1wTmFtZUFuZFBhdGgoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20vZm9vL2Jhci8/a2V5PXZhbHVlIik7Ci0gICAgY3JlYXRlTmV0d29ya1JlcXVlc3RGb3JV
UkxBbmREdW1wTmFtZUFuZFBhdGgoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vZm9vL2Jhci9iYXoi
KTsKLSAgICBjcmVhdGVOZXR3b3JrUmVxdWVzdEZvclVSTEFuZER1bXBOYW1lQW5kUGF0aCgiaHR0
cDovL3d3dy5leGFtcGxlLmNvbS9mb28vYmFyLyIpOwotCi0gICAgY3JlYXRlTmV0d29ya1JlcXVl
c3RGb3JVUkxBbmREdW1wTmFtZUFuZFBhdGgoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vYmF6P2tl
eT12YWx1ZSIpOwotICAgIGNyZWF0ZU5ldHdvcmtSZXF1ZXN0Rm9yVVJMQW5kRHVtcE5hbWVBbmRQ
YXRoKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tLz9rZXk9dmFsdWUiKTsKLSAgICBjcmVhdGVOZXR3
b3JrUmVxdWVzdEZvclVSTEFuZER1bXBOYW1lQW5kUGF0aCgiaHR0cDovL3d3dy5leGFtcGxlLmNv
bS9iYXoiKTsKLSAgICBjcmVhdGVOZXR3b3JrUmVxdWVzdEZvclVSTEFuZER1bXBOYW1lQW5kUGF0
aCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iKTsKLQotICAgIGNyZWF0ZU5ldHdvcmtSZXF1ZXN0
Rm9yVVJMQW5kRHVtcE5hbWVBbmRQYXRoKCJodHRwOi8vMTI3LjAuMC4xL2Zvby9iYXIvYmF6P2tl
eT12YWx1ZSIpOwotICAgIGNyZWF0ZU5ldHdvcmtSZXF1ZXN0Rm9yVVJMQW5kRHVtcE5hbWVBbmRQ
YXRoKCJodHRwOi8vMTI3LjAuMC4xL2Zvby9iYXIvP2tleT12YWx1ZSIpOwotICAgIGNyZWF0ZU5l
dHdvcmtSZXF1ZXN0Rm9yVVJMQW5kRHVtcE5hbWVBbmRQYXRoKCJodHRwOi8vMTI3LjAuMC4xL2Zv
by9iYXIvYmF6Iik7Ci0gICAgY3JlYXRlTmV0d29ya1JlcXVlc3RGb3JVUkxBbmREdW1wTmFtZUFu
ZFBhdGgoImh0dHA6Ly8xMjcuMC4wLjEvZm9vL2Jhci8iKTsKLQotICAgIGNyZWF0ZU5ldHdvcmtS
ZXF1ZXN0Rm9yVVJMQW5kRHVtcE5hbWVBbmRQYXRoKCJodHRwOi8vMTI3LjAuMC4xL2Jhej9rZXk9
dmFsdWUiKTsKLSAgICBjcmVhdGVOZXR3b3JrUmVxdWVzdEZvclVSTEFuZER1bXBOYW1lQW5kUGF0
aCgiaHR0cDovLzEyNy4wLjAuMS8/a2V5PXZhbHVlIik7Ci0gICAgY3JlYXRlTmV0d29ya1JlcXVl
c3RGb3JVUkxBbmREdW1wTmFtZUFuZFBhdGgoImh0dHA6Ly8xMjcuMC4wLjEvYmF6Iik7Ci0gICAg
Y3JlYXRlTmV0d29ya1JlcXVlc3RGb3JVUkxBbmREdW1wTmFtZUFuZFBhdGgoImh0dHA6Ly8xMjcu
MC4wLjEvIik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIG5hbWUo
KSBhbmQgcGF0aCgpIG1ldGhvZHMgb2YgTmV0d29ya1JlcXVlc3QuPC9wPgotPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTA2NCI+QnVnIDEwMTA2NDwv
YT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvcmVxdWVzdC1wYXJhbWV0ZXJzLWRlY29kaW5nLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVxdWVzdC1wYXJh
bWV0ZXJzLWRlY29kaW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNGI3MDY2Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL3JlcXVlc3QtcGFyYW1ldGVycy1kZWNvZGluZy1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLVRlc3RzIGhvdyByZXF1ZXN0IGhlYWRlcnMgYXJlIGRl
Y29kZWQgaW4gbmV0d29yayBpdGVtIHZpZXcuCi0KLUJ1ZyA3NDQyMgotT3JpZ2luYWwgdmFsdWU6
IFRlc3QrJTIxJTQwJTIzJTI0JTI1JTVFJTI2KiUyOCUyOV8lMkIrcGFyYW1ldGVycy4KLURlY29k
ZWQgdmFsdWU6IFRlc3QgIUAjJCVeJiooKV8rIHBhcmFtZXRlcnMuCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVxdWVzdC1wYXJhbWV0ZXJz
LWRlY29kaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3JlcXVlc3QtcGFyYW1ldGVycy1kZWNvZGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3MDk2OWVjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVxdWVzdC1wYXJhbWV0ZXJzLWRlY29kaW5nLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQot
ewotCVdlYkluc3BlY3Rvci5zaG93UGFuZWwoIm5ldHdvcmsiKTsKLSAgICB2YXIgdmFsdWUgPSAi
VGVzdCslMjElNDAlMjMlMjQlMjUlNUUlMjYqJTI4JTI5XyUyQitwYXJhbWV0ZXJzLiI7Ci0gICAg
dmFyIHBhcmFtZXRlckVsZW1lbnQgPSBXZWJJbnNwZWN0b3IuUmVxdWVzdEhlYWRlcnNWaWV3LnBy
b3RvdHlwZS5fZm9ybWF0UGFyYW1ldGVyKHZhbHVlLCAiIiwgdHJ1ZSk7Ci0gICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIk9yaWdpbmFsIHZhbHVlOiAiICsgdmFsdWUpOwotICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJEZWNvZGVkIHZhbHVlOiAiICsgcGFyYW1ldGVyRWxlbWVudC50ZXh0
Q29udGVudCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotIDxwPlRlc3RzIGhvdyByZXF1
ZXN0IGhlYWRlcnMgYXJlIGRlY29kZWQgaW4gbmV0d29yayBpdGVtIHZpZXcuPC9wPgotPGEgaHJl
Zj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjA1Ij5CdWcgNzQ0
MjI8L2E+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy80MDQucGhwIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvNDA0LnBocApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZjEzNzZjZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy80MDQucGhwCisrKyAvZGV2L251bGwK
QEAgLTEsNCArMCwwIEBACi08P3BocAotICAgIGhlYWRlcigiSFRUUC8xLjAgNDA0IE5vdCBGb3Vu
ZCIpOwotICAgIGVjaG8oIjQwNCAtIHJlc291cmNlIHdhcyBub3QgZm91bmQuIik7Ci0/PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZXMvY3AxMjUxLnhtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2VzL2NwMTI1MS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyMjg1
ZjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZXMvY3AxMjUxLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotPD94
bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nY3AxMjUxJz8+Ci08cm9vdD4KLSAgPGNwMTI1MT5T
VdHRxVNTIC0gVGhlc2UgJ0NDRScgYXJlIGN5cmlsbGljIGxldHRlcnMuPC9jcDEyNTE+Ci08L3Jv
b3Q+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlcy9jeXJpbGxpYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZXMvY3lyaWxsaWMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjRiZjcxYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9jeXJpbGxpYy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMiArMCwwIEBACi1UaGUgZm9sbG93aW5nIGxpbmUgY29udGFpbnMgYSB3b3JkICJzdWNjZXNz
IiB3cml0dGVuIHdpdGggY3lyaWxsaWMgbGV0dGVycy4KLVNV0KHQodCVU1MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL2Rvd25s
b2FkLnp6eiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2VzL2Rvd25sb2FkLnp6egpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjVmNzIwZS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlcy9kb3dubG9hZC56enoKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1UZXN0IHJl
c291cmNlIGZvciB0cmlnZ2VyaW5nIGRvd25sb2Fkcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL2VjaG8tcGF5bG9hZC5waHAg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9lY2hv
LXBheWxvYWQucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxY2IxYjEyLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2VzL2VjaG8tcGF5bG9hZC5waHAKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLTw/cGhw
Ci0JZWNobyBmaWxlX2dldF9jb250ZW50cygncGhwOi8vaW5wdXQnKTsKLT8+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9lbXB0
eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZXMvZW1wdHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY5ZGUyOS4uMDAw
MDAwMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZXMvaW5pdGlhdG9yLmNzcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2VzL2luaXRpYXRvci5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDVjNWRlNzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvaW5pdGlhdG9yLmNzcworKysgL2Rldi9udWxsCkBA
IC0xLDggKzAsMCBAQAotLmltYWdlLWJhY2tncm91bmQgewotICAgIGJhY2tncm91bmQtaW1hZ2U6
IHVybCgicmVzb3VyY2UucGhwP3R5cGU9aW1hZ2UmcmFuZG9tPTEmc2l6ZT0yMDAiKTsKLX0KLQot
LmltYWdlLWJhY2tncm91bmQtMiB7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJyZXNvdXJj
ZS5waHA/dHlwZT1pbWFnZSZyYW5kb209MSZzaXplPTMwMCIpOwotfQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9qc29uLnBo
cCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL2pz
b24ucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBlNTM0NGE1Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL2pz
b24ucGhwCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08P3BocAotICAgIGhlYWRlcigi
Q29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIik7Ci0/PgoteyJudW1iZXIiOiAiNDIifQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlcy9wbHVnaW4tZGF0YS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlcy9wbHVnaW4tZGF0YS5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDMyMWQ5ZTguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcGx1Z2luLWRhdGEucGhwCisrKyAvZGV2L251bGwK
QEAgLTEsMTUgKzAsMCBAQAotPD9waHAKLSAgICAkbWltZXR5cGUgPSAkX0dFVFsibWltZXR5cGUi
XTsKLSAgICAkZmlsZW5hbWUgPSAkX0dFVFsiZmlsZW5hbWUiXTsKLSAgICAkY2hhcnNldCA9ICRf
R0VUWyJjaGFyc2V0Il07Ci0KLSAgICBoZWFkZXIoIkV4cGlyZXM6IFRodSwgMDEgRGVjIDIwMDMg
MTY6MDA6MDAgR01UIik7Ci0gICAgaGVhZGVyKCJDYWNoZS1Db250cm9sOiBuby1zdG9yZSwgbm8t
Y2FjaGUsIG11c3QtcmV2YWxpZGF0ZSIpOwotICAgIGhlYWRlcigiUHJhZ21hOiBuby1jYWNoZSIp
OwotICAgIGlmICgkY2hhcnNldCkKLSAgICAgICAgaGVhZGVyKCJDb250ZW50LVR5cGU6ICIgLiAk
bWltZXR5cGUgLiAiOyBjaGFyc2V0PSIgLiAkY2hhcnNldCk7Ci0gICAgZWxzZQotICAgICAgICBo
ZWFkZXIoIkNvbnRlbnQtVHlwZTogIiAuICRtaW1ldHlwZSk7Ci0KLSAgICByZWFkZmlsZSgkZmls
ZW5hbWUpOwotPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2VzL3JhbmRvbS1jYWNoZWQucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmFuZG9tLWNhY2hlZC5waHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiMDk1YWUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmFuZG9tLWNhY2hlZC5w
aHAKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08P3BocAotICAgIGlmICgkX1NFUlZF
UlsiSFRUUF9JRl9NT0RJRklFRF9TSU5DRSJdKSB7Ci0gICAgICAgIGhlYWRlcigiSFRUUC8xLjAg
MzA0IE5vdCBNb2RpZmllZCIpOwotICAgICAgICBleGl0OwotICAgIH0KLQotICAgICRtYXhfYWdl
ID0gMTIgKiAzMSAqIDI0ICogNjAgKiA2MDsgLy9vbmUgeWVhcgotICAgICRleHBpcmVzID0gZ21k
YXRlKERBVEVfUkZDMTEyMywgdGltZSgpICsgJG1heF9hZ2UpOwotICAgICRsYXN0X21vZGlmaWVk
ID0gZ21kYXRlKERBVEVfUkZDMTEyMywgdGltZSgpIC0gJG1heF9hZ2UpOwotCi0gICAgaGVhZGVy
KCJDYWNoZS1Db250cm9sOiBwdWJsaWMsIG1heC1hZ2U9IiAuIDUqJG1heF9hZ2UpOwotICAgIGhl
YWRlcigiQ2FjaGUtY29udHJvbDogbWF4LWFnZT0wIik7Ci0gICAgaGVhZGVyKCJFeHBpcmVzOiAi
IC4gJGV4cGlyZXMpOwotICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWwiKTsKLSAg
ICBoZWFkZXIoIkxhc3QtTW9kaWZpZWQ6ICIgLiAkbGFzdF9tb2RpZmllZCk7Ci0KLSAgICBlY2hv
KHJhbmQoKSk7Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZXMvcmFuZG9tLXNjcmlwdC5waHAgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yYW5kb20tc2NyaXB0LnBocApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTRmYzMyZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yYW5kb20tc2NyaXB0
LnBocAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLTw/cGhwCi0gICAgaWYgKCRfU0VS
VkVSWyJIVFRQX0lGX01PRElGSUVEX1NJTkNFIl0pIHsKLSAgICAgICAgaGVhZGVyKCJIVFRQLzEu
MCAzMDQgTm90IE1vZGlmaWVkIik7Ci0gICAgICAgIGV4aXQ7Ci0gICAgfQotCi0gICAgJG1heF9h
Z2UgPSAxMiAqIDMxICogMjQgKiA2MCAqIDYwOyAvL29uZSB5ZWFyCi0gICAgJGV4cGlyZXMgPSBn
bWRhdGUoREFURV9SRkMxMTIzLCB0aW1lKCkgKyAkbWF4X2FnZSk7Ci0gICAgJGxhc3RfbW9kaWZp
ZWQgPSBnbWRhdGUoREFURV9SRkMxMTIzLCB0aW1lKCkgLSAkbWF4X2FnZSk7Ci0KLSAgICBoZWFk
ZXIoIkNhY2hlLUNvbnRyb2w6IHB1YmxpYywgbWF4LWFnZT0iIC4gNSokbWF4X2FnZSk7Ci0gICAg
aGVhZGVyKCJDYWNoZS1jb250cm9sOiBtYXgtYWdlPTAiKTsKLSAgICBoZWFkZXIoIkV4cGlyZXM6
ICIgLiAkZXhwaXJlcyk7Ci0gICAgaGVhZGVyKCJDb250ZW50LVR5cGU6IHRleHQvaHRtbCIpOwot
ICAgIGhlYWRlcigiTGFzdC1Nb2RpZmllZDogIiAuICRsYXN0X21vZGlmaWVkKTsKLQotICAgIGVj
aG8oImNvbnNvbGUubG9nKFwiRG9uZS5cIik7Iik7Ci0gICAgZWNobygidmFyIHJhbmRvbVZhbHVl
ID0gIiAuIHJhbmQoKSAuICI7Iik7Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhwIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMmI2ZjFjLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBo
cAorKysgL2Rldi9udWxsCkBAIC0xLDExOSArMCwwIEBACi08P3BocAotICAgICR0eXBlID0gJF9H
RVRbInR5cGUiXTsKLSAgICAkd2FpdCA9ICRfR0VUWyJ3YWl0Il07Ci0gICAgJHNlbmQgPSAkX0dF
VFsic2VuZCJdOwotICAgICRzaXplID0gJF9HRVRbInNpemUiXTsKLSAgICAkZ3ppcCA9ICRfR0VU
WyJnemlwIl07Ci0gICAgJGpzZGVsYXkgPSAkX0dFVFsianNkZWxheSJdOwotICAgICRqc2NvbnRl
bnQgPSAkX0dFVFsianNjb250ZW50Il07Ci0gICAgJGNodW5rZWQgPSAkX0dFVFsiY2h1bmtlZCJd
OwotICAgICRyYW5kb20gPSAkX0dFVFsicmFuZG9tIl07Ci0gICAgJGNhY2hlZCA9ICRfR0VUWyJj
YWNoZWQiXTsKLQotICAgICMgV2FpdCBiZWZvcmUgc2VuZGluZyByZXNwb25zZQotICAgIGlmICgk
d2FpdCkKLSAgICAgICAgdXNsZWVwKCR3YWl0ICogMTAwMCk7Ci0KLSAgICAjIEV4aXQgZWFybHkg
aWYgd2UgcmV0dXJuIDMwNCBjb2RlLgotICAgIGlmICgkY2FjaGVkICYmICRfU0VSVkVSWyJIVFRQ
X0lGX01PRElGSUVEX1NJTkNFIl0pIHsKLSAgICAgICAgaGVhZGVyKCJIVFRQLzEuMCAzMDQgTm90
IE1vZGlmaWVkIik7Ci0gICAgICAgIGV4aXQ7Ci0gICAgfQotCi0gICAgIyBFbmFibGUgZ3ppcCBj
b21wcmVzc2lvbiBpZiBuZWVkZWQKLSAgICBpZiAoJGd6aXApCi0gICAgICAgIG9iX3N0YXJ0KCJv
Yl9nemhhbmRsZXIiKTsKLQotICAgICMgU2VuZCBoZWFkZXJzCi0gICAgaWYgKCRjYWNoZWQpIHsK
LSAgICAgICAgJG1heF9hZ2UgPSAxMiAqIDMxICogMjQgKiA2MCAqIDYwOyAvL29uZSB5ZWFyCi0g
ICAgICAgICRleHBpcmVzID0gZ21kYXRlKERBVEVfUkZDMTEyMywgdGltZSgpICsgJG1heF9hZ2Up
OwotICAgICAgICAkbGFzdF9tb2RpZmllZCA9IGdtZGF0ZShEQVRFX1JGQzExMjMsIHRpbWUoKSAt
ICRtYXhfYWdlKTsKLQotICAgICAgICBoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IHB1YmxpYywgbWF4
LWFnZT0iIC4gNSokbWF4X2FnZSk7Ci0gICAgICAgIGhlYWRlcigiQ2FjaGUtY29udHJvbDogbWF4
LWFnZT0wIik7Ci0gICAgICAgIGhlYWRlcigiRXhwaXJlczogIiAuICRleHBpcmVzKTsKLSAgICAg
ICAgaGVhZGVyKCJMYXN0LU1vZGlmaWVkOiAiIC4gJGxhc3RfbW9kaWZpZWQpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGhlYWRlcigiRXhwaXJlczogVGh1LCAwMSBEZWMgMjAwMyAxNjowMDowMCBH
TVQiKTsKLSAgICAgICAgaGVhZGVyKCJDYWNoZS1Db250cm9sOiBuby1zdG9yZSwgbm8tY2FjaGUs
IG11c3QtcmV2YWxpZGF0ZSIpOwotICAgICAgICBoZWFkZXIoIlByYWdtYTogbm8tY2FjaGUiKTsK
LSAgICB9Ci0gICAgaWYgKCR0eXBlID09ICJqcyIpCi0gICAgICAgIGhlYWRlcigiQ29udGVudC1U
eXBlOnRleHQvamF2YXNjcmlwdDsgY2hhcnNldD1VVEYtOCIpOwotICAgIGVsc2UgaWYgKCR0eXBl
ID09ICJpbWFnZSIpCi0gICAgICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiBpbWFnZS9wbmciKTsK
LSAgICBlbHNlCi0gICAgICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluIik7Ci0K
LSAgICAjIEZsdXNoIGhlYWRlcnMgYW5kIHNsZWVwIGJvZm9yZSBzZW5kaW5nIHJlc3BvbnNlCi0g
ICAgaWYgKCRzZW5kKSB7Ci0gICAgICAgIGZsdXNoKCk7Ci0gICAgICAgIHVzbGVlcCgkc2VuZCAq
IDEwMDApOwotICAgIH0KLQotICAgIGlmICgkdHlwZSA9PSAianMiKSB7Ci0gICAgICAgICMgU2Vu
ZCBKYXZhU2NyaXB0IGZpbGUKLSAgICAgICAgJGJ5dGVzX2VtaXR0ZWQgPSAwOwotICAgICAgICBp
ZiAoJGpzZGVsYXkpIHsKLSAgICAgICAgICAgICMgSmF2YVNjcmlwdCBmaWxlIHNob3VsZCBibG9j
ayBvbiBsb2FkCi0/PgotZnVuY3Rpb24gX19mb28oc2Vjb25kcykgewotICAgIHZhciBub3cgPSAg
RGF0ZS5ub3coKTsKLSAgICB2YXIgY291bnRlciA9IE51bWJlcigwKTsKLSAgICB3aGlsZShub3cg
KyBzZWNvbmRzICA+IERhdGUubm93KCkpIHsgY291bnRlciA9IE51bWJlcihjb3VudGVyICsgMSk7
IH0KLX0KLV9fZm9vKDw/cGhwIGVjaG8oJGpzZGVsYXkpPz4pOwotPD9waHAKLSAgICAgICAgICAg
ICRieXRlc19lbWl0dGVkICs9IDE3NTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghJGpzY29u
dGVudCkKLSAgICAgICAgICAgICRqc2NvbnRlbnQgPSAiZnVuY3Rpb24gZm9vKCkge30iOwotCi0g
ICAgICAgICMgSmF2YVNjcmlwdCBmaWxlIHNob3VsZCBpc3N1ZSBnaXZlbiBjb21tYW5kLgotICAg
ICAgICBlY2hvKCRqc2NvbnRlbnQpOwotICAgICAgICAkYnl0ZXNfZW1pdHRlZCArPSBzdHJsZW4o
JGpzY29udGVudCk7Ci0KLSAgICAgICAgaWYgKCRzaXplKSB7Ci0gICAgICAgICAgICBmb3IgKCRp
ID0gMDsgJGkgPCAkc2l6ZSAtICRieXRlc19lbWl0dGVkOyArKyRpKQotICAgICAgICAgICAgICAg
IGVjaG8oIi8iKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoJHR5cGUgPT0gImltYWdlIikg
ewotICAgICAgICAkYmFzZTY0ZGF0YSA9ICJpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFB
WUNBWUFBQUNiVS84MEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFsd1NGbHpBQUFMRXdBQUN4TUJBSnFj
R0FBQUFBZDBTVTFGQjlrSUNRc3ciIC4gCi0gICAgICAgICAgICAiQVJDSkNvZ0FBQUJGU1VSQlZF
akg3WkxCQ1FBd0NBT05kUCtWMHhWcXEwZ3g5dytHaTJaQ1RBY1hHV2JlOEc0RHE5RGVrUyIgLgot
ICAgICAgICAgICAgImtQYUdlRmdmWUpWT0RsQ1RuV0FESUxvRWczdnBsQUNMRUJOOVVHRzkrbXhi
b0FBQUFBU1VWT1JLNUNZSUk9IjsKLSAgICAgICAgJGRhdGEgPSBiYXNlNjRfZGVjb2RlKCRiYXNl
NjRkYXRhKTsKLSAgICAgICAgJGRhdGFfbGVuID0gc3RybGVuKCRkYXRhKTsKLSAgICAgICAgcHJp
bnQoJGRhdGEpOwotICAgICAgICBpZiAoJHNpemUpIHsKLSAgICAgICAgICAgIGlmICgkY2h1bmtl
ZCkgewotICAgICAgICAgICAgICAgIG9iX2ZsdXNoKCk7Ci0gICAgICAgICAgICAgICAgZmx1c2go
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkc2l6ZSAmJiAkaSA8
ICRzaXplIC0gJGRhdGFfbGVuOyArKyRpKQotICAgICAgICAgICAgICAgIGVjaG8oIj0iKTsKLSAg
ICAgICAgfSBlbHNlIGlmICgkcmFuZG9tKQotICAgICAgICAgICAgZWNobyhyYW5kKCkpOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgICMgR2VuZXJhdGUgZHVtbXkgdGV4dC9odG1sLgotICAgICAgICBp
ZiAoJHNpemUpIHsKLSAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8ICRzaXplOyArKyRpKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKCRjaHVua2VkICYmICgxID09ICRpKSkgewotICAgICAgICAg
ICAgICAgICAgICBvYl9mbHVzaCgpOwotICAgICAgICAgICAgICAgICAgICBmbHVzaCgpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlY2hvKCIqIik7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlY2hvKCJIZWxsbyAiKTsKLSAgICAgICAg
ICAgIGlmICgkY2h1bmtlZCkgewotICAgICAgICAgICAgICAgIG9iX2ZsdXNoKCk7Ci0gICAgICAg
ICAgICAgICAgZmx1c2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVjaG8oIndvcmxk
Iik7Ci0gICAgICAgICAgICBpZiAoJHJhbmRvbSkKLSAgICAgICAgICAgICAgICBlY2hvKCI6ICIg
LiByYW5kKCkpOwotICAgICAgICB9Ci0gICAgfQotPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3NjcmlwdC1hcy10ZXh0LXdp
dGgtYS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZl
cnktdmVyeS12ZXJ5LXZlcnktbG9uZy11cmwucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc2NyaXB0LWFzLXRleHQtd2l0aC1hLXZlcnktdmVy
eS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnkt
dmVyeS1sb25nLXVybC5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDJkMzE4ZWMu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZXMvc2NyaXB0LWFzLXRleHQtd2l0aC1hLXZlcnktdmVyeS12ZXJ5LXZlcnktdmVyeS12
ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnktdmVyeS1sb25nLXVybC5waHAK
KysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTw/cGhwCi0gICAgaGVhZGVyKCJDb250ZW50
LVR5cGU6IHRleHQvcGxhaW4iKTsKLT8+Ci0KLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgdmFyIGJh
ciA9IDQyOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZXMvc2NyaXB0LWFzLXRleHQucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc2NyaXB0LWFzLXRleHQucGhwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAyZDMxOGVjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3NjcmlwdC1hcy10ZXh0
LnBocAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPD9waHAKLSAgICBoZWFkZXIoIkNv
bnRlbnQtVHlwZTogdGV4dC9wbGFpbiIpOwotPz4KLQotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICB2
YXIgYmFyID0gNDI7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL3Jlc291cmNlcy9zY3JpcHQuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9zY3JpcHQuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGYyYjg1YWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc2NyaXB0LmpzCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotY29uc29sZS5sb2coIkRvbmUuIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9zZXQtY29va2llLnBocCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3NldC1j
b29raWUucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTU5NjEyLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Vz
L3NldC1jb29raWUucGhwCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08P3BocAotICAg
IGhlYWRlcigiRXhwaXJlczogVGh1LCAwMSBEZWMgMjAwMyAxNjowMDowMCBHTVQiKTsKLSAgICBo
ZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRl
Iik7Ci0gICAgaGVhZGVyKCJQcmFnbWE6IG5vLWNhY2hlIik7Ci0gICAgaGVhZGVyKCJDb250ZW50
LVR5cGU6IHRleHQvcGxhaW4iKTsKLSAgICBzZXRjb29raWUoIlRlc3RDb29raWUiLCAiVGVzdENv
b2tpZVZhbHVlIik7Ci0KLSAgICBlY2hvKCJDb29raWUgc2V0LiIpOwotPz4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3NoYXJl
ZC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlcy9zaGFyZWQtd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
MmQzZTAyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2VzL3NoYXJlZC13b3JrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2ICsw
LDAgQEAKLW9uY29ubmVjdCA9IGZ1bmN0aW9uKGV2ZW50KQotewotICAgIHZhciBwb3J0ID0gZXZl
bnQucG9ydHNbMF07Ci0gICAgcG9ydC5wb3N0TWVzc2FnZSgiRG9uZS4iKTsKLX0KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMv
c2lsZW50X3NjcmlwdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2VzL3NpbGVudF9zY3JpcHQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDY0NmQ2YTIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZXMvc2lsZW50X3NjcmlwdC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDQgKzAsMCBAQAotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICByZXR1cm4gMiArIDI7Ci19CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
cy9zb3VyY2UtbWFwLXRlc3Qtc3R5bGUuY3NzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc291cmNlLW1hcC10ZXN0LXN0eWxlLmNzcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZhYmE0Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9zb3VyY2UtbWFwLXRlc3Qt
c3R5bGUuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0jY29udGFpbmVyIHsKLSAg
YmFja2dyb3VuZDogcGFwYXlhd2hpcDsgfQotICAjY29udGFpbmVyICNpbnNwZWN0ZWQgewotICAg
IGNvbG9yOiBncmVlbjsgfQotCi0vKiMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2UtbWFwLXRlc3Qt
c3R5bGUuY3NzLm1hcCAqLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3NvdXJj
ZS1tYXAtdGVzdC1zdHlsZS5jc3MubWFwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZXMvc291cmNlLW1hcC10ZXN0LXN0eWxlLmNzcy5tYXAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhMTEzMDEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc291cmNlLW1hcC10ZXN0
LXN0eWxlLmNzcy5tYXAKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLXsKLSJ2ZXJzaW9u
IjogIjMiLAotIm1hcHBpbmdzIjogIkFBQUEsVUFBVztFQUNQLFVBQVUsRUFBRSxVQUFVO0VBRXRC
LHFCQUFXO0lBQ1AsS0FBSyxFQUFFLEtBQUsiLAotInNvdXJjZXMiOiBbInN0eWxlLnNjc3MiXSwK
LSJmaWxlIjogInN0eWxlLmNzcyIKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3NvdXJjZS1tYXAtdGVzdC1zdHlsZS5zY3Nz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc291
cmNlLW1hcC10ZXN0LXN0eWxlLnNjc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVj
NzRkMzUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9yZXNvdXJjZXMvc291cmNlLW1hcC10ZXN0LXN0eWxlLnNjc3MKKysrIC9kZXYvbnVsbApA
QCAtMSw3ICswLDAgQEAKLSNjb250YWluZXIgewotICAgIGJhY2tncm91bmQ6IHBhcGF5YXdoaXA7
Ci0KLSAgICAjaW5zcGVjdGVkIHsKLSAgICAgICAgY29sb3I6IGdyZWVuOwotICAgIH0KLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2VzL3N0eWxlLmNzcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2VzL3N0eWxlLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDIzYzNh
NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlcy9zdHlsZS5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLWJvZHkg
ewotICAgIGNvbG9yOiBibGFjazsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3V0ZjgueG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvdXRmOC54bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDA3ZWU0ODEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvdXRmOC54bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw0ICswLDAgQEAKLTw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J3V0Zi04Jz8+
Ci08cm9vdD4KLSAgPHV0Zjg+U1XQodCh0JVTUyAtIFRoZXNlICdDQ0UnIGFyZSBjeXJpbGxpYyBs
ZXR0ZXJzLjwvdXRmOD4KLTwvcm9vdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3dvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3dvcmtlci5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOGY2MWNhMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy93b3JrZXIuanMKKysrIC9kZXYv
bnVsbApAQCAtMSArMCwwIEBACi1wb3N0TWVzc2FnZSgiRG9uZS4iKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3gtZnJhbWUt
b3B0aW9ucy1kZW55LmNnaSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2VzL3gtZnJhbWUtb3B0aW9ucy1kZW55LmNnaQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA3NTUKaW5kZXggN2E2OTE2NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy94LWZyYW1lLW9wdGlvbnMtZGVueS5jZ2kKKysr
IC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLSMhL3Vzci9iaW4vcGVybCAtd1QKLXVzZSBzdHJp
Y3Q7Ci0KLXByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbFxuIjsKLXByaW50ICJDYWNoZS1D
b250cm9sOiBuby1jYWNoZSwgbm8tc3RvcmVcbiI7Ci1wcmludCAiWC1GUkFNRS1PUFRJT05TOiBk
ZW55XG5cbiI7Ci0KLXByaW50ICI8cD5GQUlMOiBUaGlzIHNob3VsZCBub3Qgc2hvdyB1cC48L3A+
XG4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9zY3JpcHQtYXMtdGV4dC1sb2FkaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvc2NyaXB0LWFzLXRleHQtbG9hZGluZy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxMjFhMDguLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9zY3JpcHQtYXMtdGV4dC1s
b2FkaW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGVzdHMg
Y29uc29sZSBtZXNzYWdlIHdoZW4gc2NyaXB0IGlzIGxvYWRlZCB3aXRoIGluY29ycmVjdCB0ZXh0
L2h0bWwgbWltZSB0eXBlLgotCi1CdWcgNjk5NzIKLVJlc291cmNlIGludGVycHJldGVkIGFzIFNj
cmlwdCBidXQgdHJhbnNmZXJyZWQgd2l0aCBNSU1FIHR5cGUgdGV4dC9wbGFpbjogImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc2NyaXB0LWFzLXRleHQu
cGhwIi4gW25hdGl2ZSBjb2RlXToxCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvc2NyaXB0LWFzLXRleHQtbG9hZGluZy1sb25nLXVybC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Njcmlw
dC1hcy10ZXh0LWxvYWRpbmctbG9uZy11cmwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlODQ2ZGM3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvc2NyaXB0LWFzLXRleHQtbG9hZGluZy1sb25nLXVybC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIHRoYXQgbG9uZyBV
UkxzIGFyZSBjb3JyZWN0bHkgdHJpbW1lZCBpbiBhbmNob3IgbGlua3MuCi0KLUJ1ZyAxMDAwOTUK
LVJlc291cmNlIGludGVycHJldGVkIGFzIFNjcmlwdCBidXQgdHJhbnNmZXJyZWQgd2l0aCBNSU1F
IHR5cGUgdGV4dC9wbGFpbjogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZXMvc2NyaXB0LWFzLXRleHQtd2l0aC1hLXZlcuKApnktdmVyeS12ZXJ5LXZlcnkt
dmVyeS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnktbG9uZy11cmwucGhw
Ii4gW25hdGl2ZSBjb2RlXToxCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvc2NyaXB0LWFzLXRleHQtbG9hZGluZy1sb25nLXVybC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9zY3JpcHQtYXMtdGV4dC1s
b2FkaW5nLWxvbmctdXJsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExM2Nl
NjUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9zY3JpcHQtYXMtdGV4dC1sb2FkaW5nLWxvbmctdXJsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwzMCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9jb25zb2xlLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGxvYWRTY3JpcHQoKQotewotICAgIHZhciBpID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7Ci0gICAgaS5zcmMgPSAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9zY3JpcHQtYXMtdGV4dC13aXRo
LWEtdmVyeS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnktdmVyeS12ZXJ5LXZlcnktdmVyeS12ZXJ5
LXZlcnktdmVyeS12ZXJ5LWxvbmctdXJsLnBocCI7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChpKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRD
b25zb2xlU25pZmZlcihzdGVwMSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgi
bG9hZFNjcmlwdCgpIik7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQgbG9uZyBVUkxzIGFyZSBjb3JyZWN0bHkg
dHJpbW1lZCBpbiBhbmNob3IgbGlua3MuPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDA5NSI+QnVnIDEwMDA5NTwvYT4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvc2NyaXB0LWFzLXRleHQtbG9hZGluZy13aXRoLWNhcmV0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvc2NyaXB0LWFzLXRleHQtbG9hZGlu
Zy13aXRoLWNhcmV0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODg3NWE0OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3NjcmlwdC1hcy10ZXh0LWxvYWRpbmctd2l0aC1jYXJldC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIGNvbnNvbGUgbWVzc2FnZSB3aGVuIHNj
cmlwdCBpcyBsb2FkZWQgd2l0aCBpbmNvcnJlY3QgdGV4dC9odG1sIG1pbWUgdHlwZSBhbmQgdGhl
IFVSTCBjb250YWlucyB0aGUgJ14nIGNoYXJhY3Rlci4KLQotQnVnIDEwMzI0OAotUmVzb3VyY2Ug
aW50ZXJwcmV0ZWQgYXMgU2NyaXB0IGJ1dCB0cmFuc2ZlcnJlZCB3aXRoIE1JTUUgdHlwZSB0ZXh0
L3BsYWluOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
cy9zY3JpcHQtYXMtdGV4dC5waHA/dGhpcy1p4oCmLXdpdGheY2FyYXRzXmxpa2VedGhlc2VeYmVj
YXVzZV53aG9eZG9lc250XmxvdmVec3RyYW5nZV5jaGFyYWN0ZXJzXmluXnVybHMiLiBbbmF0aXZl
IGNvZGVdOjEKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9zY3JpcHQtYXMtdGV4dC1sb2FkaW5nLXdpdGgtY2FyZXQuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvc2NyaXB0LWFzLXRleHQtbG9hZGluZy13
aXRoLWNhcmV0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyNmE2MTcuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9zY3Jp
cHQtYXMtdGV4dC1sb2FkaW5nLXdpdGgtY2FyZXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMx
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotZnVuY3Rpb24gbG9hZFNjcmlwdCgpCi17Ci0gICAgdmFyIHMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKLSAgICBzLnNyYyA9ICJyZXNvdXJjZXMvc2NyaXB0
LWFzLXRleHQucGhwP3RoaXMtaXMtYS13ZWlyZD1xdWVyeXN0cmluZy13aXRoXmNhcmF0c15saWtl
XnRoZXNlXmJlY2F1c2Ved2hvXmRvZXNudF5sb3ZlXnN0cmFuZ2VeY2hhcmFjdGVyc15pbl51cmxz
IjsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpOwotfQotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAxKTsKLSAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkU2NyaXB0KCkiKTsKLQotICAgIGZ1bmN0
aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNz
YWdlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMg
Y29uc29sZSBtZXNzYWdlIHdoZW4gc2NyaXB0IGlzIGxvYWRlZCB3aXRoIGluY29ycmVjdCB0ZXh0
L2h0bWwgbWltZQotdHlwZSBhbmQgdGhlIFVSTCBjb250YWlucyB0aGUgJ14nIGNoYXJhY3Rlci48
L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
MjQ4Ij5CdWcgMTAzMjQ4PC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9zY3JpcHQtYXMtdGV4dC1sb2FkaW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3NjcmlwdC1h
cy10ZXh0LWxvYWRpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGEwMjFh
Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3NjcmlwdC1hcy10ZXh0LWxvYWRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotZnVuY3Rpb24gbG9hZFNjcmlwdCgpCi17Ci0gICAgdmFyIHMgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzY3JpcHQiKTsKLSAgICBzLnNyYyA9ICJyZXNvdXJjZXMvc2NyaXB0LWFzLXRl
eHQucGhwIjsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpOwotfQotCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAxKTsK
LSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkU2NyaXB0KCkiKTsKLQotICAg
IGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNv
bGVNZXNzYWdlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
IH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
VGVzdHMgY29uc29sZSBtZXNzYWdlIHdoZW4gc2NyaXB0IGlzIGxvYWRlZCB3aXRoIGluY29ycmVj
dCB0ZXh0L2h0bWwgbWltZSB0eXBlLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02OTk3MiI+QnVnIDY5OTcyPC9hPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay94
LWZyYW1lLW9wdGlvbnMtZGVueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3gtZnJhbWUtb3B0aW9ucy1kZW55LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODJlMWFiYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3gtZnJhbWUtb3B0aW9ucy1kZW55LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdF
OiBSZWZ1c2VkIHRvIGRpc3BsYXkgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9YRnJh
bWVPcHRpb25zL3Jlc291cmNlcy94LWZyYW1lLW9wdGlvbnMtZGVueS5jZ2knIGluIGEgZnJhbWUg
YmVjYXVzZSBpdCBzZXQgJ1gtRnJhbWUtT3B0aW9ucycgdG8gJ2RlbnknLgotVGVzdHMgdGhhdCBy
ZXNwb25zZVJlY2VpdmVkIGlzIGNhbGxlZCBvbiBOZXR3b3JrRGlzcGF0Y2hlciBmb3IgcmVzb3Vy
Y2UgcmVxdWVzdHMgZGVuaWVkIGR1ZSB0byBYLUZyYW1lLU9wdGlvbnMgaGVhZGVyLgotCi0KLVJl
Y2VpdmVkIHJlc3BvbnNlIGZvciB4LWZyYW1lLW9wdGlvbnMtZGVueS5jZ2kKLVNVQ0NFU1MKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay94LWZy
YW1lLW9wdGlvbnMtZGVueS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay94LWZyYW1lLW9wdGlvbnMtZGVueS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkZTU4YzZhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsveC1mcmFtZS1vcHRpb25zLWRlbnkuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDQ4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGxvYWRJRnJhbWVXaXRoRG93
bmxvYWQoKQotewotICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKLSAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCJzcmMiLCAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMvcmVzb3VyY2VzL3gtZnJhbWUtb3B0aW9ucy1kZW55
LmNnaSIpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLX0KLQotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rv
ci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUsICJyZXNwb25zZVJlY2VpdmVkIiwgcmVzcG9u
c2VSZWNlaXZlZCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5O
ZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUsICJsb2FkaW5nRmFpbGVkIiwgbG9hZGluZ0ZhaWxl
ZCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrRGlz
cGF0Y2hlci5wcm90b3R5cGUsICJsb2FkaW5nRmluaXNoZWQiLCBsb2FkaW5nRmluaXNoZWQpOwot
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWRJRnJhbWVXaXRoRG93bmxvYWQo
KSIpOwotCi0gICAgZnVuY3Rpb24gcmVzcG9uc2VSZWNlaXZlZChyZXF1ZXN0SWQsIHRpbWUsIHJl
c291cmNlVHlwZSwgcmVzcG9uc2UpCi0gICAgewotICAgICAgICB2YXIgcmVxdWVzdCA9IFdlYklu
c3BlY3Rvci5uZXR3b3JrTG9nLnJlcXVlc3RGb3JJZChyZXF1ZXN0SWQpOwotICAgICAgICBpZiAo
L3gtZnJhbWUtb3B0aW9ucy1kZW55XC5jZ2kvLmV4ZWMocmVxdWVzdC51cmwpKSB7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVjZWl2ZWQgcmVzcG9uc2UgZm9yIHgtZnJh
bWUtb3B0aW9ucy1kZW55LmNnaSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlNVQ0NFU1MiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBsb2FkaW5nRmluaXNoZWQocmVxdWVz
dElkLCBmaW5pc2hUaW1lKQotICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBXZWJJbnNwZWN0
b3IubmV0d29ya0xvZy5yZXF1ZXN0Rm9ySWQocmVxdWVzdElkKTsKLSAgICAgICAgaWYgKC94LWZy
YW1lLW9wdGlvbnMtZGVueVwuY2dpLy5leGVjKHJlcXVlc3QudXJsKSkKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbG9hZGlu
Z0ZhaWxlZChyZXF1ZXN0SWQsIHRpbWUsIGxvY2FsaXplZERlc2NyaXB0aW9uLCBjYW5jZWxlZCkK
LSAgICB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gV2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cucmVx
dWVzdEZvcklkKHJlcXVlc3RJZCk7Ci0gICAgICAgIGlmICgveC1mcmFtZS1vcHRpb25zLWRlbnlc
LmNnaS8uZXhlYyhyZXF1ZXN0LnVybCkpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCByZXNwb25zZVJlY2VpdmVkIGlzIGNhbGxlZCBvbiBO
ZXR3b3JrRGlzcGF0Y2hlciBmb3IgcmVzb3VyY2UgcmVxdWVzdHMgZGVuaWVkIGR1ZSB0byBYLUZy
YW1lLU9wdGlvbnMgaGVhZGVyLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sLXRlc3QuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9wcm90b2NvbC10ZXN0LmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5NzNlZmU3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sLXRlc3QuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjkg
KzAsMCBAQAotdmFyIGluaXRpYWxpemVfUHJvdG9jb2xUZXN0ID0gZnVuY3Rpb24oKSB7Ci0KLUlu
c3BlY3RvclRlc3QuZmlsdGVyUHJvcHMgPSBmdW5jdGlvbihvYmplY3QsIG5vbmRldGVybWluaXN0
aWNQcm9wcykKLXsKLSAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KQotICAgICAgICBm
b3IgKHZhciBwcm9wIGluIG9iamVjdCkKLSAgICAgICAgICAgIGlmIChwcm9wIGluIG5vbmRldGVy
bWluaXN0aWNQcm9wcykKLSAgICAgICAgICAgICAgICBvYmplY3RbcHJvcF0gPSAiPCIgKyB0eXBl
b2Ygb2JqZWN0W3Byb3BdICsgIj4iOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IG9iamVjdFtwcm9wXSA9IHRoaXMuZmlsdGVyUHJvcHMob2JqZWN0W3Byb3BdLCBub25kZXRlcm1p
bmlzdGljUHJvcHMpOwotICAgIGVsc2UgaWYgKG9iamVjdCBpbnN0YW5jZW9mIEFycmF5KQotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAg
IG9iamVjdFtpXSA9IHRoaXMuZmlsdGVyUHJvcHMob2JqZWN0W2ldLCBub25kZXRlcm1pbmlzdGlj
UHJvcHMpOwotICAgIGVsc2UgaWYgKHR5cGVvZiBvYmplY3QgPT09ICJudW1iZXIiKQotICAgICAg
ICBvYmplY3QgPSAiPG51bWJlcj4iOwotICAgIGVsc2UgaWYgKHR5cGVvZiBvYmplY3QgPT09ICJz
dHJpbmciICYmIG9iamVjdC5pbmRleE9mKCJcImlkXCIiKSAhPSAtMSkKLSAgICAgICAgb2JqZWN0
ID0gIjxzdHJpbmc+IjsKLSAgICByZXR1cm4gb2JqZWN0OwotfTsKLQotSW5zcGVjdG9yVGVzdC5f
ZHVtcEV2ZW50ID0gZnVuY3Rpb24oKQotewotICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBl
LnNsaWNlLmNhbGwoYXJndW1lbnRzKTsKLSAgICB2YXIgZXZlbnROYW1lID0gYXJncy5zaGlmdCgp
OwotICAgIEluc3BlY3RvclRlc3QuX2FnZW50Q292ZXJhZ2VbZXZlbnROYW1lXSA9ICJjaGVja2Vk
IjsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXZlbnQgIiArIEluc3BlY3RvclRlc3Qu
X2FnZW50TmFtZSArICIuIiArIGV2ZW50TmFtZSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRPYmpl
Y3QoSW5zcGVjdG9yVGVzdC5fbGFzdFJlY2VpdmVkTWVzc2FnZSwgSW5zcGVjdG9yVGVzdC5fY3Vz
dG9tRm9ybWF0dGVycyk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotCi0gICAg
dmFyIG9yaWdpbmFsRXZlbnRIYW5kbGVyID0gYXJncy5zaGlmdCgpOwotICAgIG9yaWdpbmFsRXZl
bnRIYW5kbGVyLmFwcGx5KHRoaXMsIGFyZ3MpOwotfTsKLQotCi1JbnNwZWN0b3JUZXN0Ll9kdW1w
Q2FsbEFyZ3VtZW50cyA9IGZ1bmN0aW9uKGNhbGxBcmd1bWVudHMpCi17Ci0gICAgdmFyIGNhbGxB
cmd1bWVudHNDb3B5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjYWxsQXJndW1lbnRzKSk7
Ci0gICAgdmFyIGFnZW50TmFtZSA9IGNhbGxBcmd1bWVudHNDb3B5LnNoaWZ0KCk7Ci0gICAgdmFy
IGZ1bmN0aW9uTmFtZSA9IGNhbGxBcmd1bWVudHNDb3B5LnNoaWZ0KCk7Ci0gICAgdGhpcy5maWx0
ZXJQcm9wcyhjYWxsQXJndW1lbnRzQ29weSwgdGhpcy5fY3VzdG9tRm9ybWF0dGVycyk7Ci0gICAg
dmFyIGV4cHJlc3Npb24gPSBKU09OLnN0cmluZ2lmeShjYWxsQXJndW1lbnRzQ29weSk7Ci0gICAg
ZXhwcmVzc2lvbiA9IGV4cHJlc3Npb24uc2xpY2UoMSwgZXhwcmVzc2lvbi5sZW5ndGggLSAxKS5y
ZXBsYWNlKC9cIjxudW1iZXI+XCIvZywgIjxudW1iZXI+IikucmVwbGFjZSgvXCI8c3RyaW5nPlwi
L2csICI8c3RyaW5nPiIpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoYWdlbnROYW1lICsgIi4iICsgZnVuY3Rpb25OYW1l
ICsgIigiICsgZXhwcmVzc2lvbiArICIpIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiIpOwotfTsKLQotSW5zcGVjdG9yVGVzdC5fY2FsbGJhY2sgPSBmdW5jdGlvbihyZXN1bHQpCi17
Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc3BvbnNlOiIpOwotICAgIEluc3BlY3Rv
clRlc3QuYWRkT2JqZWN0KEluc3BlY3RvclRlc3QuX2xhc3RSZWNlaXZlZE1lc3NhZ2UsIEluc3Bl
Y3RvclRlc3QuX2N1c3RvbUZvcm1hdHRlcnMpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCIiKTsKLSAgICBJbnNwZWN0b3JUZXN0Ll9ydW5OZXh0VGVzdCgpOwotfTsKLQotSW5zcGVjdG9y
VGVzdC5fcnVuTmV4dFRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgdmFyIHN0ZXAgPSArK3RoaXMu
X3N0ZXA7Ci0gICAgdmFyIG5leHRUZXN0ID0gdGhpcy5fdGVzdFN1aXRlW3N0ZXBdOwotICAgIGlm
IChuZXh0VGVzdCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0Ll9kdW1wQ2FsbEFyZ3VtZW50cyhu
ZXh0VGVzdCk7Ci0KLSAgICAgICAgbmV4dFRlc3QucHVzaCh0aGlzLl9jYWxsYmFjay5iaW5kKHRo
aXMpKTsKLQotICAgICAgICB2YXIgYWdlbnROYW1lID0gbmV4dFRlc3Quc2hpZnQoKTsKLSAgICAg
ICAgdmFyIGZ1bmN0aW9uTmFtZSA9IG5leHRUZXN0LnNoaWZ0KCk7Ci0gICAgICAgIHdpbmRvd1th
Z2VudE5hbWVdW2Z1bmN0aW9uTmFtZV0uYXBwbHkod2luZG93W2FnZW50TmFtZV0sIG5leHRUZXN0
KTsKLQotICAgICAgICB2YXIgbGFzdFNlbnRNZXNzYWdlID0gSW5zcGVjdG9yVGVzdC5fbGFzdFNl
bnRNZXNzYWdlOyAvLyBUaGlzIGlzIGJlY2F1c2UgdGhlIG5leHQgY2FsbCB3aWxsIG92ZXJyaWRl
IF9sYXN0U2VudE1lc3NhZ2UuCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXF1
ZXN0OiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZE9iamVjdChsYXN0U2VudE1lc3NhZ2Us
IEluc3BlY3RvclRlc3QuX2N1c3RvbUZvcm1hdHRlcnMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiIik7Ci0KLSAgICAgICAgaWYgKGFnZW50TmFtZSA9PT0gdGhpcy5fYWdlbnRO
YW1lKQotICAgICAgICAgICAgdGhpcy5fYWdlbnRDb3ZlcmFnZVtmdW5jdGlvbk5hbWVdID0gImNo
ZWNrZWQiOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDb3ZlcmFnZSBmb3Ig
IiArIHRoaXMuX2FnZW50TmFtZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkT2JqZWN0KHRo
aXMuX2FnZW50Q292ZXJhZ2UpOwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmRpc3BhdGNoID0g
dGhpcy5fb3JpZ2luYWxEaXNwYXRjaDsKLSAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNl
bmRNZXNzYWdlVG9CYWNrZW5kID0gdGhpcy5fb3JpZ2luYWxTZW5kTWVzc2FnZVRvQmFja2VuZDsK
LSAgICAgICAgdGhpcy5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19OwotCi1JbnNwZWN0b3JUZXN0
LnJ1blByb3RvY29sVGVzdFN1aXRlID0gZnVuY3Rpb24oYWdlbnROYW1lLCB0ZXN0U3VpdGUsIG5v
bmRldGVybWluaXN0aWNQcm9wcykKLXsKLSAgICB0aGlzLl9hZ2VudE5hbWUgPSBhZ2VudE5hbWU7
Ci0gICAgdGhpcy5fdGVzdFN1aXRlID0gdGVzdFN1aXRlOwotICAgIHRoaXMuX2N1c3RvbUZvcm1h
dHRlcnMgPSB7fTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vbmRldGVybWluaXN0aWNQcm9w
cy5sZW5ndGg7ICsraSkKLSAgICAgICAgdGhpcy5fY3VzdG9tRm9ybWF0dGVyc1tub25kZXRlcm1p
bmlzdGljUHJvcHNbaV1dID0gImZvcm1hdEFzVHlwZU5hbWUiOwotICAgIHZhciBhZ2VudCA9IHdp
bmRvd1thZ2VudE5hbWVdOwotCi0gICAgdGhpcy5fYWdlbnRDb3ZlcmFnZSA9IHt9OwotICAgIGZv
ciAodmFyIGtleSBpbiBhZ2VudCkKLSAgICAgICAgdGhpcy5fYWdlbnRDb3ZlcmFnZVtrZXldID0g
Im5vdCBjaGVja2VkIjsKLQotICAgIHZhciBkb21haW4gPSBhZ2VudE5hbWUucmVwbGFjZSgvQWdl
bnQkLywiIik7Ci0gICAgdmFyIGRvbWFpbk1lc3NhZ2VzSGFuZGxlciA9IEluc3BlY3RvckJhY2tl
bmQuX2RvbWFpbkRpc3BhdGNoZXJzW2RvbWFpbl07Ci0gICAgZm9yICh2YXIgZXZlbnROYW1lIGlu
IGRvbWFpbk1lc3NhZ2VzSGFuZGxlcikgewotICAgICAgICBpZiAodHlwZW9mIGRvbWFpbk1lc3Nh
Z2VzSGFuZGxlcltldmVudE5hbWVdICE9PSAiZnVuY3Rpb24iKQotICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgIHRoaXMuX2FnZW50Q292ZXJhZ2VbZXZlbnROYW1lXSA9ICJub3QgY2hlY2tl
ZCI7Ci0gICAgICAgIGRvbWFpbk1lc3NhZ2VzSGFuZGxlcltldmVudE5hbWVdID0gSW5zcGVjdG9y
VGVzdC5fZHVtcEV2ZW50LmJpbmQoZG9tYWluTWVzc2FnZXNIYW5kbGVyLCBldmVudE5hbWUsIGRv
bWFpbk1lc3NhZ2VzSGFuZGxlcltldmVudE5hbWVdKTsKLSAgICB9Ci0KLSAgICB0aGlzLl9vcmln
aW5hbERpc3BhdGNoID0gSW5zcGVjdG9yQmFja2VuZC5kaXNwYXRjaDsKLSAgICBJbnNwZWN0b3JC
YWNrZW5kLmRpc3BhdGNoID0gZnVuY3Rpb24obWVzc2FnZSkKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuX2xhc3RSZWNlaXZlZE1lc3NhZ2UgPSAodHlwZW9mIG1lc3NhZ2UgPT09ICJzdHJp
bmciKSA/IEpTT04ucGFyc2UobWVzc2FnZSkgOiBtZXNzYWdlOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0Ll9vcmlnaW5hbERpc3BhdGNoLmFwcGx5KEluc3BlY3RvckJhY2tlbmQsIFttZXNzYWdlXSk7
Ci0gICAgfQotCi0gICAgdGhpcy5fb3JpZ2luYWxTZW5kTWVzc2FnZVRvQmFja2VuZCA9IEluc3Bl
Y3RvckZyb250ZW5kSG9zdC5zZW5kTWVzc2FnZVRvQmFja2VuZDsKLSAgICBJbnNwZWN0b3JGcm9u
dGVuZEhvc3Quc2VuZE1lc3NhZ2VUb0JhY2tlbmQgPSBmdW5jdGlvbihtZXNzYWdlKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5fbGFzdFNlbnRNZXNzYWdlID0gSlNPTi5wYXJzZShtZXNz
YWdlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5fb3JpZ2luYWxTZW5kTWVzc2FnZVRvQmFja2Vu
ZC5hcHBseShJbnNwZWN0b3JGcm9udGVuZEhvc3QsIFttZXNzYWdlXSk7Ci0gICAgfQotCi0gICAg
dGhpcy5fc3RlcCA9IC0xOwotCi0gICAgdGhpcy5fcnVuTmV4dFRlc3QoKTsKLX07Ci0KLX07CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXIt
Y29udmVyc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGE2M2MyMWIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMjI2ICswLDAgQEAKLVRlc3RzIGNvbnZlcnNpb24gb2YgSW5zcGVjdG9yJ3Mg
cmVzb3VyY2UgcmVwcmVzZW50YXRpb24gaW50byBIQVIgZm9ybWF0LgotCi1QYWdlIHJlbG9hZGVk
LgotewotICAgIHZlcnNpb24gOiA8c3RyaW5nPgotICAgIGNyZWF0b3IgOiB7Ci0gICAgICAgIG5h
bWUgOiAiV2ViSW5zcGVjdG9yIgotICAgICAgICB2ZXJzaW9uIDogPHN0cmluZz4KLSAgICB9Ci0g
ICAgcGFnZXMgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHN0YXJ0ZWREYXRlVGltZSA6IDxv
YmplY3Q+Ci0gICAgICAgICAgICBpZCA6IDxzdHJpbmc+Ci0gICAgICAgICAgICB0aXRsZSA6ICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252ZXJzaW9uLmh0
bWwiCi0gICAgICAgICAgICBwYWdlVGltaW5ncyA6IHsKLSAgICAgICAgICAgICAgICBvbkNvbnRl
bnRMb2FkIDogPG51bWJlcj4KLSAgICAgICAgICAgICAgICBvbkxvYWQgOiA8bnVtYmVyPgotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXQotICAgIGVudHJpZXMgOiBbCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHBhZ2VyZWYgOiAicGFnZV8xIgotICAgICAgICAgICAgc3RhcnRlZERhdGVU
aW1lIDogPG9iamVjdD4KLSAgICAgICAgICAgIHRpbWUgOiA8bnVtYmVyPgotICAgICAgICAgICAg
cmVxdWVzdCA6IHsKLSAgICAgICAgICAgICAgICBtZXRob2QgOiAiR0VUIgotICAgICAgICAgICAg
ICAgIHVybCA6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIgotICAgICAgICAgICAgICAgIGh0dHBWZXJzaW9uIDogIkhUVFAvMS4xIgotICAgICAgICAg
ICAgICAgIGhlYWRlcnMgOiA8b2JqZWN0PgotICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nIDog
WwotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICBjb29raWVzIDogWwotICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuYW1lIDogImEiCi0gICAg
ICAgICAgICAgICAgICAgICAgICB2YWx1ZSA6ICJiIgotICAgICAgICAgICAgICAgICAgICAgICAg
cGF0aCA6ICIvcGF0aCIKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbiA6ICJleGFtcGxl
LmNvbSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZXMgOiBudWxsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBodHRwT25seSA6IGZhbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBz
ZWN1cmUgOiBmYWxzZQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgOiAiYTEiCi0gICAgICAgICAgICAgICAg
ICAgICAgICB2YWx1ZSA6ICJiMSIKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggOiB1bmRl
ZmluZWQKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbiA6IHVuZGVmaW5lZAotICAgICAg
ICAgICAgICAgICAgICAgICAgZXhwaXJlcyA6IG51bGwKLSAgICAgICAgICAgICAgICAgICAgICAg
IGh0dHBPbmx5IDogZmFsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlY3VyZSA6IGZhbHNl
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgbmFtZSA6ICJjMSIKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVl
IDogImQxIgotICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCA6IHVuZGVmaW5lZAotICAgICAg
ICAgICAgICAgICAgICAgICAgZG9tYWluIDogdW5kZWZpbmVkCi0gICAgICAgICAgICAgICAgICAg
ICAgICBleHBpcmVzIDogbnVsbAotICAgICAgICAgICAgICAgICAgICAgICAgaHR0cE9ubHkgOiBm
YWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgc2VjdXJlIDogZmFsc2UKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICBoZWFkZXJzU2l6
ZSA6IDxudW1iZXI+Ci0gICAgICAgICAgICAgICAgYm9keVNpemUgOiA8bnVtYmVyPgotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcmVzcG9uc2UgOiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVz
IDogMzA0Ci0gICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA6ICJOb3QgTW9kaWZpZWQiCi0gICAg
ICAgICAgICAgICAgaHR0cFZlcnNpb24gOiAiSFRUUC8xLjEiCi0gICAgICAgICAgICAgICAgaGVh
ZGVycyA6IDxvYmplY3Q+Ci0gICAgICAgICAgICAgICAgY29va2llcyA6IFsKLSAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICJ4IgotICAgICAgICAg
ICAgICAgICAgICAgICAgdmFsdWUgOiAieSIKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgg
OiAiL3BhdGgiCi0gICAgICAgICAgICAgICAgICAgICAgICBkb21haW4gOiAiZXhhbXBsZS5jb20i
Ci0gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmVzIDogbnVsbAotICAgICAgICAgICAgICAg
ICAgICAgICAgaHR0cE9ubHkgOiB0cnVlCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWN1cmUg
OiB0cnVlCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICJ4MSIKLSAgICAgICAgICAgICAgICAgICAgICAg
IHZhbHVlIDogInkxIgotICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCA6IHVuZGVmaW5lZAot
ICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluIDogdW5kZWZpbmVkCi0gICAgICAgICAgICAg
ICAgICAgICAgICBleHBpcmVzIDogbnVsbAotICAgICAgICAgICAgICAgICAgICAgICAgaHR0cE9u
bHkgOiBmYWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgc2VjdXJlIDogZmFsc2UKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBuYW1lIDogInoyIgotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgOiAieTIi
Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXRoIDogdW5kZWZpbmVkCi0gICAgICAgICAgICAg
ICAgICAgICAgICBkb21haW4gOiB1bmRlZmluZWQKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4
cGlyZXMgOiBudWxsCi0gICAgICAgICAgICAgICAgICAgICAgICBodHRwT25seSA6IGZhbHNlCi0g
ICAgICAgICAgICAgICAgICAgICAgICBzZWN1cmUgOiBmYWxzZQotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgIGNvbnRlbnQgOiB7Ci0gICAg
ICAgICAgICAgICAgICAgIHNpemUgOiA8bnVtYmVyPgotICAgICAgICAgICAgICAgICAgICBjb21w
cmVzc2lvbiA6IDxudW1iZXI+Ci0gICAgICAgICAgICAgICAgICAgIG1pbWVUeXBlIDogInRleHQv
cGxhaW4iCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJlZGlyZWN0VVJMIDog
IiIKLSAgICAgICAgICAgICAgICBoZWFkZXJzU2l6ZSA6IDxudW1iZXI+Ci0gICAgICAgICAgICAg
ICAgYm9keVNpemUgOiA8bnVtYmVyPgotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FjaGUg
OiB7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0aW1pbmdzIDogPG9iamVjdD4KLSAgICAg
ICAgfQotICAgICAgICB7Ci0gICAgICAgICAgICBwYWdlcmVmIDogInBhZ2VfMSIKLSAgICAgICAg
ICAgIHN0YXJ0ZWREYXRlVGltZSA6IDxvYmplY3Q+Ci0gICAgICAgICAgICB0aW1lIDogPG51bWJl
cj4KLSAgICAgICAgICAgIHJlcXVlc3QgOiB7Ci0gICAgICAgICAgICAgICAgbWV0aG9kIDogIkdF
VCIKLSAgICAgICAgICAgICAgICB1cmwgOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi5odG1sIgotICAgICAgICAgICAgICAgIGh0dHBWZXJz
aW9uIDogIkhUVFAvMS4xIgotICAgICAgICAgICAgICAgIGhlYWRlcnMgOiA8b2JqZWN0PgotICAg
ICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nIDogWwotICAgICAgICAgICAgICAgIF0KLSAgICAgICAg
ICAgICAgICBjb29raWVzIDogWwotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICBo
ZWFkZXJzU2l6ZSA6IDxudW1iZXI+Ci0gICAgICAgICAgICAgICAgYm9keVNpemUgOiA8bnVtYmVy
PgotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVzcG9uc2UgOiB7Ci0gICAgICAgICAgICAg
ICAgc3RhdHVzIDogMjAwCi0gICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA6ICJPSyIKLSAgICAg
ICAgICAgICAgICBodHRwVmVyc2lvbiA6ICJIVFRQLzEuMSIKLSAgICAgICAgICAgICAgICBoZWFk
ZXJzIDogPG9iamVjdD4KLSAgICAgICAgICAgICAgICBjb29raWVzIDogWwotICAgICAgICAgICAg
ICAgIF0KLSAgICAgICAgICAgICAgICBjb250ZW50IDogewotICAgICAgICAgICAgICAgICAgICBz
aXplIDogPG51bWJlcj4KLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3Npb24gOiA8bnVtYmVy
PgotICAgICAgICAgICAgICAgICAgICBtaW1lVHlwZSA6ICJ0ZXh0L2h0bWwiCi0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIHJlZGlyZWN0VVJMIDogIiIKLSAgICAgICAgICAgICAg
ICBoZWFkZXJzU2l6ZSA6IDxudW1iZXI+Ci0gICAgICAgICAgICAgICAgYm9keVNpemUgOiA8bnVt
YmVyPgotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FjaGUgOiB7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICB0aW1pbmdzIDogPG9iamVjdD4KLSAgICAgICAgfQotICAgICAgICB7Ci0g
ICAgICAgICAgICBwYWdlcmVmIDogInBhZ2VfMSIKLSAgICAgICAgICAgIHN0YXJ0ZWREYXRlVGlt
ZSA6IDxvYmplY3Q+Ci0gICAgICAgICAgICB0aW1lIDogPG51bWJlcj4KLSAgICAgICAgICAgIHJl
cXVlc3QgOiB7Ci0gICAgICAgICAgICAgICAgbWV0aG9kIDogIkdFVCIKLSAgICAgICAgICAgICAg
ICB1cmwgOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMtdGVzdC5q
cyIKLSAgICAgICAgICAgICAgICBodHRwVmVyc2lvbiA6ICJIVFRQLzEuMSIKLSAgICAgICAgICAg
ICAgICBoZWFkZXJzIDogPG9iamVjdD4KLSAgICAgICAgICAgICAgICBxdWVyeVN0cmluZyA6IFsK
LSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgY29va2llcyA6IFsKLSAgICAgICAg
ICAgICAgICBdCi0gICAgICAgICAgICAgICAgaGVhZGVyc1NpemUgOiA8bnVtYmVyPgotICAgICAg
ICAgICAgICAgIGJvZHlTaXplIDogPG51bWJlcj4KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IHJlc3BvbnNlIDogewotICAgICAgICAgICAgICAgIHN0YXR1cyA6IDMwNAotICAgICAgICAgICAg
ICAgIHN0YXR1c1RleHQgOiAiTm90IE1vZGlmaWVkIgotICAgICAgICAgICAgICAgIGh0dHBWZXJz
aW9uIDogIkhUVFAvMS4xIgotICAgICAgICAgICAgICAgIGhlYWRlcnMgOiA8b2JqZWN0PgotICAg
ICAgICAgICAgICAgIGNvb2tpZXMgOiBbCi0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAg
ICAgIGNvbnRlbnQgOiB7Ci0gICAgICAgICAgICAgICAgICAgIHNpemUgOiA8bnVtYmVyPgotICAg
ICAgICAgICAgICAgICAgICBjb21wcmVzc2lvbiA6IDxudW1iZXI+Ci0gICAgICAgICAgICAgICAg
ICAgIG1pbWVUeXBlIDogInRleHQvcGxhaW4iCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIHJlZGlyZWN0VVJMIDogIiIKLSAgICAgICAgICAgICAgICBoZWFkZXJzU2l6ZSA6IDxu
dW1iZXI+Ci0gICAgICAgICAgICAgICAgYm9keVNpemUgOiA8bnVtYmVyPgotICAgICAgICAgICAg
fQotICAgICAgICAgICAgY2FjaGUgOiB7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0aW1p
bmdzIDogPG9iamVjdD4KLSAgICAgICAgfQotICAgICAgICB7Ci0gICAgICAgICAgICBwYWdlcmVm
IDogInBhZ2VfMSIKLSAgICAgICAgICAgIHN0YXJ0ZWREYXRlVGltZSA6IDxvYmplY3Q+Ci0gICAg
ICAgICAgICB0aW1lIDogPG51bWJlcj4KLSAgICAgICAgICAgIHJlcXVlc3QgOiB7Ci0gICAgICAg
ICAgICAgICAgbWV0aG9kIDogIlBPU1QiCi0gICAgICAgICAgICAgICAgdXJsIDogImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaSIKLSAgICAg
ICAgICAgICAgICBodHRwVmVyc2lvbiA6ICJIVFRQLzEuMSIKLSAgICAgICAgICAgICAgICBoZWFk
ZXJzIDogPG9iamVjdD4KLSAgICAgICAgICAgICAgICBxdWVyeVN0cmluZyA6IFsKLSAgICAgICAg
ICAgICAgICBdCi0gICAgICAgICAgICAgICAgY29va2llcyA6IFsKLSAgICAgICAgICAgICAgICBd
Ci0gICAgICAgICAgICAgICAgaGVhZGVyc1NpemUgOiA8bnVtYmVyPgotICAgICAgICAgICAgICAg
IGJvZHlTaXplIDogPG51bWJlcj4KLSAgICAgICAgICAgICAgICBwb3N0RGF0YSA6IHsKLSAgICAg
ICAgICAgICAgICAgICAgbWltZVR5cGUgOiAidGV4dC94bWwiCi0gICAgICAgICAgICAgICAgICAg
IHRleHQgOiAiPHhtbD48L3htbD4iCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcmVzcG9uc2UgOiB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzIDogMjAwCi0g
ICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA6ICJPSyIKLSAgICAgICAgICAgICAgICBodHRwVmVy
c2lvbiA6ICJIVFRQLzEuMSIKLSAgICAgICAgICAgICAgICBoZWFkZXJzIDogPG9iamVjdD4KLSAg
ICAgICAgICAgICAgICBjb29raWVzIDogWwotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAg
ICAgICBjb250ZW50IDogewotICAgICAgICAgICAgICAgICAgICBzaXplIDogPG51bWJlcj4KLSAg
ICAgICAgICAgICAgICAgICAgY29tcHJlc3Npb24gOiA8bnVtYmVyPgotICAgICAgICAgICAgICAg
ICAgICBtaW1lVHlwZSA6ICJhcHBsaWNhdGlvbi94bWwiCi0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIHJlZGlyZWN0VVJMIDogIiIKLSAgICAgICAgICAgICAgICBoZWFkZXJzU2l6
ZSA6IDxudW1iZXI+Ci0gICAgICAgICAgICAgICAgYm9keVNpemUgOiA8bnVtYmVyPgotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgY2FjaGUgOiB7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB0aW1pbmdzIDogPG9iamVjdD4KLSAgICAgICAgfQotICAgIF0KLX0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24u
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252
ZXJzaW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyN2Y3ZTguLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNv
bnZlcnNpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLTwhZG9jdHlwZSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJpbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzLXRlc3QuanMiPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotCi1mdW5jdGlvbiBkb1hIUigpCi17Ci0gICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVx
dWVzdCgpOwotICAgIHhoci5vcGVuKCJQT1NUIiwgInJlc291cmNlcy9wb3N0LXRhcmdldC5jZ2ki
LCBmYWxzZSk7Ci0gICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0
L3htbCIpOwotICAgIHhoci5zZW5kKCI8eG1sPjwveG1sPiIpOwotfQotCi12YXIgdGVzdCA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoc3RlcDEpOwotCi0gICAg
ZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgiZG9YSFIoKSIsIHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0g
ICAgewotICAgICAgICBmdW5jdGlvbiBmaW5kUmVxdWVzdEJ5VVJMKHVybCkKLSAgICAgICAgewot
ICAgICAgICAgICAgdmFyIHJlcXVlc3RzID0gV2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cucmVxdWVz
dHM7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcXVlc3RzLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKHVybC50ZXN0KHJlcXVlc3RzW2ldLnVybCkpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0c1tpXTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGFkZENvb2tpZUhlYWRlcnNUb1JlcXVlc3QocmVxdWVz
dCkKLSAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdC5yZXF1ZXN0SGVhZGVycyA9IFsKLSAg
ICAgICAgICAgICAgICB7IG5hbWU6ICJDb29raWUiLCB2YWx1ZTogImE9YjsgJFBhdGg9L3BhdGg7
ICREb21haW49ZXhhbXBsZS5jb207IGExPWIxXG5jMT1kMSIgfQotICAgICAgICAgICAgXTsKLQot
ICAgICAgICAgICAgcmVxdWVzdC5yZXNwb25zZUhlYWRlcnMgPSBbCi0gICAgICAgICAgICAgICAg
eyBuYW1lOiAiU2V0LUNvb2tpZSIsIHZhbHVlOiAieD15OyBQYXRoPS9wYXRoOyBEb21haW49ZXhh
bXBsZS5jb207IERpc2NhcmQ7IGh0dHBPbmx5OyBTZWN1cmU7IFZlcnNpb249MVxueDE9eTFcbnoy
PXkyIiB9Ci0gICAgICAgICAgICBdOwotICAgICAgICB9Ci0KLSAgICAgICAgYWRkQ29va2llSGVh
ZGVyc1RvUmVxdWVzdChmaW5kUmVxdWVzdEJ5VVJMKC9pbnNwZWN0b3ItdGVzdFwuanMkLykpOwot
ICAgICAgICB2YXIgbG9nID0gKG5ldyBXZWJJbnNwZWN0b3IuSEFSTG9nKFdlYkluc3BlY3Rvci5u
ZXR3b3JrTG9nLnJlcXVlc3RzKSkuYnVpbGQoKTsKLSAgICAgICAgLy8gRmlsdGVyIG91dCBmYXZp
Y29uLmljbyByZXF1ZXN0cyB0aGF0IG9ubHkgYXBwZWFyIG9uIGNlcnRhaW4gcGxhdGZvcm1zLgot
ICAgICAgICBsb2cuZW50cmllcyA9IGxvZy5lbnRyaWVzLmZpbHRlcihmdW5jdGlvbihlbnRyeSkg
ewotICAgICAgICAgICAgcmV0dXJuICEvZmF2aWNvblwuaWNvJC8udGVzdChlbnRyeS5yZXF1ZXN0
LnVybCk7Ci0gICAgICAgIH0pOwotICAgICAgICBsb2cuZW50cmllcy5zb3J0KEluc3BlY3RvclRl
c3QucmVxdWVzdFVSTENvbXBhcmVyKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRPYmplY3Qo
bG9nLCBJbnNwZWN0b3JUZXN0LkhBUlByb3BlcnR5Rm9ybWF0dGVyc1dpdGhTaXplKTsKLSAgICAg
ICAgdmFyIHBhZ2VUaW1pbmdzID0gbG9nLnBhZ2VzWzBdLnBhZ2VUaW1pbmdzOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci0KLQot
PC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIGNvbnZlcnNp
b24gb2YgSW5zcGVjdG9yJ3MgcmVzb3VyY2UgcmVwcmVzZW50YXRpb24gaW50byBIQVIgZm9ybWF0
LgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItaGVhZGVycy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItaGVhZGVycy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4NjY1NDguLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWhlYWRlcnMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotVGVzdHMgdGhlIG5v
bmRldGVybWluaXN0aWMgYml0cyBvZiBIQVIgY29udmVyc2lvbiB2aWEgdGhlIG1hZ2ljIG9mIGhh
cmQtY29kZWQgdmFsdWVzLgotCi1SZXNvdXJjZTp7Ci0gICAgcmVxdWVzdCA6IHsKLSAgICAgICAg
aGVhZGVycyA6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBuYW1lIDogIlJlcXVl
c3QiCi0gICAgICAgICAgICAgICAgdmFsdWUgOiAicmVxdWVzdC12YWx1ZSIKLSAgICAgICAgICAg
IH0KLSAgICAgICAgXQotICAgICAgICBoZWFkZXJzU2l6ZSA6IDcyCi0gICAgICAgIGhlYWRlcnNU
ZXh0IDogIkdFVCBodHRwOi8vZXhhbXBsZS5jb20vaW5zcGVjdG9yLXRlc3QuanMgSFRUUC8xLjFc
clxuUmVxdWVzdDogaGVhZGVycy10ZXh0IgotICAgIH0KLSAgICByZXNwb25zZSA6IHsKLSAgICAg
ICAgaGVhZGVycyA6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBuYW1lIDogIlJl
c3BvbnNlIgotICAgICAgICAgICAgICAgIHZhbHVlIDogInJlc3BvbnNlLXZhbHVlIgotICAgICAg
ICAgICAgfQotICAgICAgICBdCi0gICAgICAgIGhlYWRlcnNTaXplIDogMzkKLSAgICAgICAgaGVh
ZGVyc1RleHQgOiAiSFRUUC8xLjEgMjAwIE9LXHJcblJlc3BvbnNlOiBoZWFkZXJzLXRleHQiCi0g
ICAgICAgIHJlc291cmNlU2l6ZSA6IDEwMDAKLSAgICAgICAgdHJhbnNmZXJTaXplIDogNTM5Ci0g
ICAgfQotfQotSEFSOnsKLSAgICBjYWNoZSA6IHsKLSAgICB9Ci0gICAgcmVxdWVzdCA6IHsKLSAg
ICAgICAgYm9keVNpemUgOiAwCi0gICAgICAgIGNvb2tpZXMgOiBbCi0gICAgICAgIF0KLSAgICAg
ICAgaGVhZGVycyA6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBuYW1lIDogIlJl
cXVlc3QiCi0gICAgICAgICAgICAgICAgdmFsdWUgOiAicmVxdWVzdC12YWx1ZSIKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgXQotICAgICAgICBoZWFkZXJzU2l6ZSA6IDcyCi0gICAgICAgIGh0dHBW
ZXJzaW9uIDogIkhUVFAvMS4xIgotICAgICAgICBtZXRob2QgOiAiR0VUIgotICAgICAgICBxdWVy
eVN0cmluZyA6IFsKLSAgICAgICAgXQotICAgICAgICB1cmwgOiAiaHR0cDovL2V4YW1wbGUuY29t
L2luc3BlY3Rvci10ZXN0LmpzIgotICAgIH0KLSAgICByZXNwb25zZSA6IHsKLSAgICAgICAgYm9k
eVNpemUgOiA1MDAKLSAgICAgICAgY29udGVudCA6IHsKLSAgICAgICAgICAgIGNvbXByZXNzaW9u
IDogNTAwCi0gICAgICAgICAgICBtaW1lVHlwZSA6ICJ0ZXh0L2h0bWwiCi0gICAgICAgICAgICBz
aXplIDogMTAwMAotICAgICAgICB9Ci0gICAgICAgIGNvb2tpZXMgOiBbCi0gICAgICAgIF0KLSAg
ICAgICAgaGVhZGVycyA6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBuYW1lIDog
IlJlc3BvbnNlIgotICAgICAgICAgICAgICAgIHZhbHVlIDogInJlc3BvbnNlLXZhbHVlIgotICAg
ICAgICAgICAgfQotICAgICAgICBdCi0gICAgICAgIGhlYWRlcnNTaXplIDogMzkKLSAgICAgICAg
aHR0cFZlcnNpb24gOiAiSFRUUC8xLjEiCi0gICAgICAgIHJlZGlyZWN0VVJMIDogIiIKLSAgICAg
ICAgc3RhdHVzIDogMjAwCi0gICAgICAgIHN0YXR1c1RleHQgOiAiT0siCi0gICAgfQotICAgIHN0
YXJ0ZWREYXRlVGltZSA6IDxvYmplY3Q+Ci0gICAgdGltZSA6IDxudW1iZXI+Ci0gICAgdGltaW5n
cyA6IDxvYmplY3Q+Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlLWhhci1oZWFkZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZS1oYXItaGVhZGVycy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1NDlkYjY5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlLWhhci1oZWFkZXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3
MyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy10ZXN0
LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAg
IGZ1bmN0aW9uIHZpc2libGVOZXdsaW5lcyhzKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHMucmVw
bGFjZSgvXHIvLCAiXFxyIikucmVwbGFjZSgvXG4vLCAiXFxuIik7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gc2V0UmVxdWVzdFZhbHVlcyhyZXF1ZXN0KQotICAgIHsKLSAgICAgICAgcmVxdWVzdC5y
ZXF1ZXN0SGVhZGVycyA9IFsKLSAgICAgICAgICAgIHsgbmFtZTogIlJlcXVlc3QiLCB2YWx1ZTog
InJlcXVlc3QtdmFsdWUiIH0KLSAgICAgICAgXTsKLSAgICAgICAgcmVxdWVzdC5yZXF1ZXN0SGVh
ZGVyc1RleHQgPSAiR0VUIGh0dHA6Ly9leGFtcGxlLmNvbS9pbnNwZWN0b3ItdGVzdC5qcyBIVFRQ
LzEuMVxyXG5SZXF1ZXN0OiBoZWFkZXJzLXRleHQiOwotCi0gICAgICAgIHJlcXVlc3QucmVzcG9u
c2VIZWFkZXJzID0gWwotICAgICAgICAgICAgeyBuYW1lOiAiUmVzcG9uc2UiLCB2YWx1ZTogInJl
c3BvbnNlLXZhbHVlIiB9Ci0gICAgICAgIF07Ci0gICAgICAgIHJlcXVlc3QucmVzcG9uc2VIZWFk
ZXJzVGV4dCA9ICJIVFRQLzEuMSAyMDAgT0tcclxuUmVzcG9uc2U6IGhlYWRlcnMtdGV4dCI7Ci0K
LSAgICAgICAgcmVxdWVzdC5kb2N1bWVudFVSTCA9ICJodHRwOi8vZXhhbXBsZS5jb20vaW5zcGVj
dG9yLXRlc3QuanMiOwotICAgICAgICByZXF1ZXN0LnJlcXVlc3RNZXRob2QgPSAiR0VUIjsKLSAg
ICAgICAgcmVxdWVzdC5taW1lVHlwZSA9ICJ0ZXh0L2h0bWwiOwotICAgICAgICByZXF1ZXN0LnN0
YXR1c0NvZGUgPSAyMDA7Ci0gICAgICAgIHJlcXVlc3Quc3RhdHVzVGV4dCA9ICJPSyI7Ci0gICAg
ICAgIHJlcXVlc3QucmVzb3VyY2VTaXplID0gMTAwMDsKLSAgICAgICAgcmVxdWVzdC5fdHJhbnNm
ZXJTaXplID0gNTM5OyAvLyAzOSA9IGhlYWRlciBzaXplIGF0IHRoZSBlbmQgb2YgdGhlIGRheQot
ICAgIH0KLQotICAgIHZhciB0ZXN0UmVxdWVzdCA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1Jl
cXVlc3QoInRlc3RSZXF1ZXN0IiwgImh0dHA6Ly9leGFtcGxlLmNvbS9pbnNwZWN0b3ItdGVzdC5q
cyIsIDEpOyAKLSAgICBzZXRSZXF1ZXN0VmFsdWVzKHRlc3RSZXF1ZXN0KTsKLSAgICB2YXIgcmVx
dWVzdFJlc3VsdHMgPSB7Ci0gICAgICAgICJyZXF1ZXN0IjogewotICAgICAgICAgICAgImhlYWRl
cnMiOiB0ZXN0UmVxdWVzdC5yZXF1ZXN0SGVhZGVycywKLSAgICAgICAgICAgICJoZWFkZXJzVGV4
dCI6IHZpc2libGVOZXdsaW5lcyh0ZXN0UmVxdWVzdC5yZXF1ZXN0SGVhZGVyc1RleHQpLAotICAg
ICAgICAgICAgImhlYWRlcnNTaXplIjogdGVzdFJlcXVlc3QucmVxdWVzdEhlYWRlcnNTaXplLAot
ICAgICAgICB9LAotICAgICAgICAicmVzcG9uc2UiOiB7Ci0gICAgICAgICAgICAiaGVhZGVycyI6
IHRlc3RSZXF1ZXN0LnJlc3BvbnNlSGVhZGVycywKLSAgICAgICAgICAgICJoZWFkZXJzVGV4dCI6
IHZpc2libGVOZXdsaW5lcyh0ZXN0UmVxdWVzdC5yZXNwb25zZUhlYWRlcnNUZXh0KSwKLSAgICAg
ICAgICAgICJoZWFkZXJzU2l6ZSI6IHRlc3RSZXF1ZXN0LnJlc3BvbnNlSGVhZGVyc1NpemUsCi0g
ICAgICAgICAgICAicmVzb3VyY2VTaXplIjogdGVzdFJlcXVlc3QucmVzb3VyY2VTaXplLAotICAg
ICAgICAgICAgInRyYW5zZmVyU2l6ZSI6IHRlc3RSZXF1ZXN0LnRyYW5zZmVyU2l6ZQotICAgICAg
ICB9Ci0gICAgfTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZE9iamVjdChyZXF1ZXN0UmVzdWx0cywg
e30sICIiLCAiUmVzb3VyY2U6Iik7Ci0KLSAgICB2YXIgc3RpbGxOb25kZXRlcm1pbmlzdGljID0g
ewotICAgICAgICAic3RhcnRlZERhdGVUaW1lIjogImZvcm1hdEFzVHlwZU5hbWUiLAotICAgICAg
ICAidGltZSI6ICJmb3JtYXRBc1R5cGVOYW1lIiwKLSAgICAgICAgInRpbWluZ3MiOiAiZm9ybWF0
QXNUeXBlTmFtZSIKLSAgICB9OwotICAgIEluc3BlY3RvclRlc3QuYWRkT2JqZWN0KG5ldyBXZWJJ
bnNwZWN0b3IuSEFSRW50cnkodGVzdFJlcXVlc3QpLmJ1aWxkKCksIHN0aWxsTm9uZGV0ZXJtaW5p
c3RpYywgIiIsICJIQVI6Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0K
LTwvc2NyaXB0PgotCi0KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
Ci1UZXN0cyB0aGUgbm9uZGV0ZXJtaW5pc3RpYyBiaXRzIG9mIEhBUiBjb252ZXJzaW9uIHZpYSB0
aGUgbWFnaWMgb2YgaGFyZC1jb2RlZCB2YWx1ZXMuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhh
ci1wYWdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZS1oYXItcGFnZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwYzJiNTY4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlLWhhci1wYWdlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
MSArMCwwIEBACi1UZXN0cyBjb252ZXJzaW9uIG9mIEluc3BlY3RvcidzIHJlc291cmNlIHJlcHJl
c2VudGF0aW9uIGludG8gSEFSIGZvcm1hdC4KLQotewotICAgIDAgOiB7Ci0gICAgICAgIGlkIDog
PHN0cmluZz4KLSAgICAgICAgcGFnZVRpbWluZ3MgOiB7Ci0gICAgICAgICAgICBvbkNvbnRlbnRM
b2FkIDogPG51bWJlcj4KLSAgICAgICAgICAgIG9uTG9hZCA6IDxudW1iZXI+Ci0gICAgICAgIH0K
LSAgICAgICAgc3RhcnRlZERhdGVUaW1lIDogPHBsYXVzaWJsZT4KLSAgICAgICAgdGl0bGUgOiAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPS9pbnNwZWN0
b3IvcmVzb3VyY2VzL2hhci1wYWdlcy1uYXZpZ2F0aW9uLXRhcmdldC5odG1sIgotICAgIH0KLSAg
ICAxIDogewotICAgICAgICBpZCA6IDxzdHJpbmc+Ci0gICAgICAgIHBhZ2VUaW1pbmdzIDogewot
ICAgICAgICAgICAgb25Db250ZW50TG9hZCA6IDxudW1iZXI+Ci0gICAgICAgICAgICBvbkxvYWQg
OiA8bnVtYmVyPgotICAgICAgICB9Ci0gICAgICAgIHN0YXJ0ZWREYXRlVGltZSA6IDxwbGF1c2li
bGU+Ci0gICAgICAgIHRpdGxlIDogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVz
b3VyY2UtaGFyLXBhZ2VzLmh0bWwiCi0gICAgfQotfQotcGFnZTogcGFnZV8yIHVybDogaHR0cDov
LzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcwotcGFnZTogcGFnZV8y
IHVybDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItcGFnZXMu
aHRtbAotcGFnZTogcGFnZV8yIHVybDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMtdGVzdC5qcwotcGFnZTogcGFnZV8xIHVybDogaHR0cDovLzEyNy4wLjAuMTo4MDAw
L2luc3BlY3Rvci9yZXNvdXJjZXMvaGFyLXBhZ2VzLWlmcmFtZS5odG1sCi1wYWdlOiBwYWdlXzEg
dXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9oYXItcGFnZXMt
bmF2aWdhdGlvbi10YXJnZXQuaHRtbAotcGFnZTogcGFnZV8xIHVybDogaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvc291cmNlMS5qcwotcGFnZTogcGFnZV8xIHVybDog
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPS9pbnNwZWN0
b3IvcmVzb3VyY2VzL2hhci1wYWdlcy1uYXZpZ2F0aW9uLXRhcmdldC5odG1sCi1QYWdlIHJlbG9h
ZGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZS1oYXItcGFnZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLWhhci1wYWdlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDZk
ZTgyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlLWhhci1wYWdlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotPCFkb2N0
eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0K
LTxzY3JpcHQ+Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIGZ1bmN0aW9uIHN0ZXAx
KCkKLSAgICB7Ci0gICAgICAgIHZhciBoYWROYXZpZ2F0aW9uID0gZmFsc2U7Ci0KLSAgICAgICAg
ZnVuY3Rpb24gb25SZXF1ZXN0RmluaXNoZWQoZXZlbnQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHZhciByZXF1ZXN0ID0gZXZlbnQuZGF0YTsKLSAgICAgICAgICAgIGlmICgvXC9oYXItcGFnZXMt
bmF2aWdhdGlvbi10YXJnZXRcLmh0bWwkLy50ZXN0KHJlcXVlc3QudXJsKSkKLSAgICAgICAgICAg
ICAgICBoYWROYXZpZ2F0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChoYWROYXZpZ2F0aW9u
ICYmIC9cL3Jlc291cmNlLWhhci1wYWdlc1wuaHRtbCQvLnRlc3QocmVxdWVzdC51cmwpKSB7Ci0g
ICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLm5ldHdvcmtNYW5hZ2VyLnJlbW92ZUV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlwZXMuUmVxdWVzdEZpbmlz
aGVkLCBvblJlcXVlc3RGaW5pc2hlZCkKLSAgICAgICAgICAgICAgICBzdGVwMigpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoIm5ldHdv
cmsiKTsKLSAgICAgICAgdmFyIG5ldHdvcmtMb2dWaWV3ID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJu
ZXR3b3JrIikuX25ldHdvcmtMb2dWaWV3OwotICAgICAgICAvLyBuZXR3b3JrTG9nVmlldy5jbGVh
cigpOwotICAgICAgICBuZXR3b3JrTG9nVmlldy5fcHJlc2VydmVMb2dUb2dnbGUudG9nZ2xlZCA9
IHRydWU7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzLlJlcXVlc3RGaW5pc2hl
ZCwgb25SZXF1ZXN0RmluaXNoZWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJsb2NhdGlvbi5ocmVmID0gJy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD0vaW5zcGVj
dG9yL3Jlc291cmNlcy9oYXItcGFnZXMtbmF2aWdhdGlvbi10YXJnZXQuaHRtbCc7Iik7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgdmFyIGxvZyA9IChuZXcg
V2ViSW5zcGVjdG9yLkhBUkxvZyhXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5fbmV0d29y
a0xvZ1ZpZXcuX3JlcXVlc3RzKSkuYnVpbGQoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRP
YmplY3QobG9nLnBhZ2VzLCBJbnNwZWN0b3JUZXN0LkhBUlByb3BlcnR5Rm9ybWF0dGVyc1dpdGhT
aXplKTsKLQotICAgICAgICAvLyBGaWx0ZXIgb3V0IGZhdmljb24uaWNvIHJlcXVlc3RzIHRoYXQg
b25seSBhcHBlYXIgb24gY2VydGFpbiBwbGF0Zm9ybXMuCi0gICAgICAgIGxvZy5lbnRyaWVzID0g
bG9nLmVudHJpZXMuZmlsdGVyKGZ1bmN0aW9uKGVudHJ5KSB7Ci0gICAgICAgICAgICByZXR1cm4g
IS9mYXZpY29uXC5pY28kLy50ZXN0KGVudHJ5LnJlcXVlc3QudXJsKTsKLSAgICAgICAgfSk7Ci0g
ICAgICAgIGxvZy5lbnRyaWVzLnNvcnQoSW5zcGVjdG9yVGVzdC5yZXF1ZXN0VVJMQ29tcGFyZXIp
OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxvZy5lbnRyaWVzLmxlbmd0aDsgKytpKSB7
Ci0gICAgICAgICAgICB2YXIgZW50cnkgPSBsb2cuZW50cmllc1tpXTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJwYWdlOiAiICsgZW50cnkucGFnZXJlZiArICIgdXJsOiAi
ICsgZW50cnkucmVxdWVzdC51cmwpOwotICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0gICAgc3RlcDEoKTsKLX0KLQotPC9zY3JpcHQ+Ci0K
LQotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIGNvbnZl
cnNpb24gb2YgSW5zcGVjdG9yJ3MgcmVzb3VyY2UgcmVwcmVzZW50YXRpb24gaW50byBIQVIgZm9y
bWF0LgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1tYWluLWNvb2tpZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtbWFpbi1jb29raWVzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjVhOGIyYi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1tYWluLWNv
b2tpZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1UaGlzIHRl
c3RzIHRoYXQgdGhlIGNvb2tpZSBzZXQgYnkgbWFpbiByZXNvdXJjZSBpcyBzaG93biBpbiByZXNv
dXJjZXMgcGFuZWwuCi0KLWJ1ZyA2NTc3MC4KLVBhZ2UgcmVsb2FkZWQuCi1Db29raWU6IGNvb2tp
ZU5hbWU9Y29va2llVmFsdWUuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlLW1haW4tY29va2llcy5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS1tYWluLWNvb2tpZXMucGhwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0ZWQzZWVkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlLW1haW4tY29va2llcy5waHAKKysrIC9kZXYvbnVsbApAQCAt
MSw1MiArMCwwIEBACi08P3BocAotICAgIGlmICghJF9DT09LSUVbImNvb2tpZU5hbWUiXSkKLSAg
ICAgICAgc2V0Y29va2llKCJjb29raWVOYW1lIiwgImNvb2tpZVZhbHVlIik7Ci0/PgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJpbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgY29va2llTmFtZSA9ICJjb29raWVO
YW1lIjsKLSAgICB2YXIgY29va2llRG9tYWluID0gIjEyNy4wLjAuMSI7Ci0gICAgdmFyIGNvb2tp
ZVVSTCA9ICJodHRwOi8vIiArIGNvb2tpZURvbWFpbiArICIvIjsKLSAgICAvLyBFbnN1cmUgY29v
a2llIGlzIGRlbGV0ZWQgYmVmb3JlIHRlc3RpbmcuCi0gICAgUGFnZUFnZW50LmRlbGV0ZUNvb2tp
ZShjb29raWVOYW1lLCBjb29raWVVUkwsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkK
LSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShzdGVwMik7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLkNvb2tp
ZXMuZ2V0Q29va2llc0FzeW5jKHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMyhh
bGxDb29raWVzKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxDb29raWVz
Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIGNvb2tpZSA9IGFsbENvb2tpZXNbaV07Ci0g
ICAgICAgICAgICBpZiAoY29va2llLm5hbWUoKSA9PT0gY29va2llTmFtZSAmJiBjb29raWUuZG9t
YWluKCkgPT0gY29va2llRG9tYWluKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkNvb2tpZTogIiArIGNvb2tpZS5uYW1lKCkgKyAiPSIgKyBjb29raWUudmFsdWUo
KSArICIuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gRW5zdXJlIGNv
b2tpZSBpcyBkZWxldGVkIGFmdGVyIHRlc3RpbmcuCi0gICAgICAgIFBhZ2VBZ2VudC5kZWxldGVD
b29raWUoY29va2llTmFtZSwgY29va2llVVJMLCBzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RlcDQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
LSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgotICAgIDxwPlRoaXMgdGVzdHMgdGhhdCB0aGUgY29va2llIHNldCBieSBtYWluIHJlc291cmNl
IGlzIHNob3duIGluIHJlc291cmNlcyBwYW5lbC48L3A+Ci0gICAgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzcwIj5idWcgNjU3NzA8L2E+LgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2UtcGFyYW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYTUyYTU3NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLVRlc3RzIHRoYXQgcmVzb3VyY2VzIHBhbmVsIHNo
b3dzIGZvcm0gZGF0YSBwYXJhbWV0ZXJzLgotCi0gIAotCi17Ci0gICAgY2FjaGUgOiB7Ci0gICAg
fQotICAgIHJlcXVlc3QgOiB7Ci0gICAgICAgIGJvZHlTaXplIDogPG51bWJlcj4KLSAgICAgICAg
Y29va2llcyA6IFsKLSAgICAgICAgXQotICAgICAgICBoZWFkZXJzIDogPG9iamVjdD4KLSAgICAg
ICAgaGVhZGVyc1NpemUgOiA8bnVtYmVyPgotICAgICAgICBodHRwVmVyc2lvbiA6ICJIVFRQLzEu
MSIKLSAgICAgICAgbWV0aG9kIDogIlBPU1QiCi0gICAgICAgIHBvc3REYXRhIDogewotICAgICAg
ICAgICAgbWltZVR5cGUgOiAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIgotICAg
ICAgICAgICAgcGFyYW1zIDogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgbmFtZSA6ICJmb3JtUGFyYW0xIgotICAgICAgICAgICAgICAgICAgICB2YWx1ZSA6ICJmb3Jt
VmFsdWUxIgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgIG5hbWUgOiAiZm9ybVBhcmFtMiIKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUg
OiAiIgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICAgIHRleHQg
OiAiZm9ybVBhcmFtMT1mb3JtVmFsdWUxJmZvcm1QYXJhbTI9IgotICAgICAgICB9Ci0gICAgICAg
IHF1ZXJ5U3RyaW5nIDogWwotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG5hbWUgOiAi
cXVlcnlQYXJhbTEiCi0gICAgICAgICAgICAgICAgdmFsdWUgOiAicXVlcnlWYWx1ZTEiCi0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbmFtZSA6ICJxdWVyeVBh
cmFtMiIKLSAgICAgICAgICAgICAgICB2YWx1ZSA6ICIiCi0gICAgICAgICAgICB9Ci0gICAgICAg
IF0KLSAgICAgICAgdXJsIDogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3Bvc3QtdGFyZ2V0LmNnaT9xdWVyeVBhcmFtMT1xdWVyeVZhbHVlMSZxdWVyeVBhcmFtMj0i
Ci0gICAgfQotICAgIHJlc3BvbnNlIDogewotICAgICAgICBib2R5U2l6ZSA6IDxudW1iZXI+Ci0g
ICAgICAgIGNvbnRlbnQgOiB7Ci0gICAgICAgICAgICBjb21wcmVzc2lvbiA6IDxudW1iZXI+Ci0g
ICAgICAgICAgICBtaW1lVHlwZSA6ICJhcHBsaWNhdGlvbi94bWwiCi0gICAgICAgICAgICBzaXpl
IDogMTQKLSAgICAgICAgfQotICAgICAgICBjb29raWVzIDogWwotICAgICAgICBdCi0gICAgICAg
IGhlYWRlcnMgOiA8b2JqZWN0PgotICAgICAgICBoZWFkZXJzU2l6ZSA6IDxudW1iZXI+Ci0gICAg
ICAgIGh0dHBWZXJzaW9uIDogIkhUVFAvMS4xIgotICAgICAgICByZWRpcmVjdFVSTCA6ICIiCi0g
ICAgICAgIHN0YXR1cyA6IDIwMAotICAgICAgICBzdGF0dXNUZXh0IDogIk9LIgotICAgIH0KLSAg
ICBzdGFydGVkRGF0ZVRpbWUgOiA8cGxhdXNpYmxlPgotICAgIHRpbWUgOiA8bnVtYmVyPgotICAg
IHRpbWluZ3MgOiA8b2JqZWN0PgotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDUzZDg3YTIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNDAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJpbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzLXRlc3QuanMiPjwvc2NyaXB0
PgotCi08c2NyaXB0PgotZnVuY3Rpb24gc3VibWl0KCkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic3VibWl0IikuY2xpY2soKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic3VibWl0KCkiKTsKLSAgICBXZWJJbnNwZWN0
b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01h
bmFnZXIuRXZlbnRUeXBlcy5SZXF1ZXN0RmluaXNoZWQsIG9uUmVxdWVzdEZpbmlzaGVkKTsKLQot
ICAgIGZ1bmN0aW9uIG9uUmVxdWVzdEZpbmlzaGVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgdmFy
IHJlcXVlc3QgPSBldmVudC5kYXRhOwotICAgICAgICBpZiAocmVxdWVzdC51cmwgIT09ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2k/cXVl
cnlQYXJhbTE9cXVlcnlWYWx1ZTEmcXVlcnlQYXJhbTI9I2ZyYWdtZW50UGFyYW0xPWZyYWdtZW50
VmFsdWUxJmZyYWdtZW50UGFyYW0yPSIpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkT2JqZWN0KG5ldyBXZWJJbnNwZWN0b3IuSEFSRW50cnkocmVxdWVzdCku
YnVpbGQoKSwgSW5zcGVjdG9yVGVzdC5IQVJQcm9wZXJ0eUZvcm1hdHRlcnMpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgcmVzb3VyY2Vz
IHBhbmVsIHNob3dzIGZvcm0gZGF0YSBwYXJhbWV0ZXJzLgotPC9wPgotPGZvcm0gdGFyZ2V0PSJ0
YXJnZXQtaWZyYW1lIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAw
L2luc3BlY3Rvci9yZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpP3F1ZXJ5UGFyYW0xPXF1ZXJ5VmFs
dWUxJnF1ZXJ5UGFyYW0yPSNmcmFnbWVudFBhcmFtMT1mcmFnbWVudFZhbHVlMSZmcmFnbWVudFBh
cmFtMj0iPgotPGlucHV0IG5hbWU9ImZvcm1QYXJhbTEiIHZhbHVlPSJmb3JtVmFsdWUxIj4KLTxp
bnB1dCBuYW1lPSJmb3JtUGFyYW0yIj4KLTxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQi
PgotPC9mb3JtPgotPGlmcmFtZSBuYW1lPSJ0YXJnZXQtaWZyYW1lIj48L2lmcmFtZT4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtcmVxdWVzdC1jb250ZW50LWFmdGVyLWxvYWRpbmctYW5k
LWNsZWFyaW5nLWNhY2hlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtcmVxdWVzdC1jb250ZW50LWFmdGVyLWxvYWRp
bmctYW5kLWNsZWFyaW5nLWNhY2hlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjhlYmZjNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXJlcXVlc3QtY29udGVudC1hZnRlci1sb2Fk
aW5nLWFuZC1jbGVhcmluZy1jYWNoZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
MiArMCwwIEBACi1UZXN0cyByZXNvdXJjZSBjb250ZW50IGlzIGNvcnJlY3RseSBsb2FkZWQgaWYg
UmVzb3VyY2UucmVxdWVzdENvbnRlbnQgd2FzIGNhbGxlZCBiZWZvcmUgbmV0d29yayByZXF1ZXN0
IHdhcyBmaW5pc2hlZC4KLQotQnVnIDkwMTUzCi1BZGRpbmcgZHluYW1pYyBzY3JpcHQ6IAotV2Fp
dGluZyBmb3Igc2NyaXB0IHJlcXVlc3QgdG8gZmluaXNoOiAKLUNsZWFyaW5nIG1lbW9yeSBjYWNo
ZTogCi1SZXF1ZXN0aW5nIGNvbnRlbnQ6IAotUmVzb3VyY2UgdXJsOiBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL2R5bmFtaWMtc2NyaXB0Lmpz
Ci1SZXNvdXJjZSBjb250ZW50OiBmdW5jdGlvbiBmb28oKSB7Ci19Ci0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS1y
ZXF1ZXN0LWNvbnRlbnQtYWZ0ZXItbG9hZGluZy1hbmQtY2xlYXJpbmctY2FjaGUuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtcmVx
dWVzdC1jb250ZW50LWFmdGVyLWxvYWRpbmctYW5kLWNsZWFyaW5nLWNhY2hlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4NjBkMmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS1yZXF1ZXN0LWNv
bnRlbnQtYWZ0ZXItbG9hZGluZy1hbmQtY2xlYXJpbmctY2FjaGUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDU5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZS10cmVlLXRlc3QuanMiPjwvc2NyaXB0
PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvc3R5bGVzLWluaXRpYWwu
Y3NzIj4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBjcmVhdGVTY3JpcHRUYWcoKQotewotICAgIHZhciBz
Y3JpcHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Ci0gICAgc2Ny
aXB0RWxlbWVudC5zcmMgPSAicmVzb3VyY2VzL2R5bmFtaWMtc2NyaXB0LmpzIjsKLSAgICBkb2N1
bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdEVsZW1lbnQpOwotfQotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIGR5bmFtaWMgc2NyaXB0
OiAiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJjcmVhdGVTY3JpcHRUYWco
KSIsIHN0ZXAyKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJXYWl0aW5nIGZvciBzY3JpcHQgcmVxdWVzdCB0byBmaW5pc2g6
ICIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUmVzb3VyY2VzQXJlRmluaXNoZWQo
WyJkeW5hbWljLXNjcmlwdC5qcyJdLCBzdGVwMykKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ2xlYXJpbmcgbWVt
b3J5IGNhY2hlOiAiKTsKLSAgICAgICAgTmV0d29ya0FnZW50LnNldENhY2hlRGlzYWJsZWQodHJ1
ZSwgc3RlcDQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICB7Ci0gICAgICAg
IE5ldHdvcmtBZ2VudC5zZXRDYWNoZURpc2FibGVkKGZhbHNlLCBzdGVwNSk7Ci0gICAgfQotCi0g
ICAgdmFyIHJlc291cmNlOwotICAgIGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXF1ZXN0aW5nIGNvbnRlbnQ6ICIpOwotICAgICAgICBy
ZXNvdXJjZSA9IEluc3BlY3RvclRlc3QucmVzb3VyY2VNYXRjaGluZ1VSTCgiZHluYW1pYy1zY3Jp
cHQuanMiKTsKLSAgICAgICAgcmVzb3VyY2UucmVxdWVzdENvbnRlbnQoc3RlcDYpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHN0ZXA2KGNvbnRlbnQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydFRydWUoISFjb250ZW50LCAiTm8gY29udGVudCBhdmFpbGFibGUuIik7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXNvdXJjZSB1cmw6ICIgKyByZXNvdXJjZS51
cmwpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVzb3VyY2UgY29udGVudDog
IiArIGNvbnRlbnQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
IH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
VGVzdHMgcmVzb3VyY2UgY29udGVudCBpcyBjb3JyZWN0bHkgbG9hZGVkIGlmIFJlc291cmNlLnJl
cXVlc3RDb250ZW50IHdhcyBjYWxsZWQgYmVmb3JlIG5ldHdvcmsgcmVxdWVzdCB3YXMgZmluaXNo
ZWQuPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkwMTUzIj5CdWcgOTAxNTM8L2E+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXJlcXVl
c3QtY29udGVudC13aGlsZS1sb2FkaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtcmVxdWVzdC1jb250ZW50LXdo
aWxlLWxvYWRpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
ZTJjMzc5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLXRyZWUvcmVzb3VyY2UtcmVxdWVzdC1jb250ZW50LXdoaWxlLWxvYWRpbmctZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1UZXN0cyByZXNvdXJjZSBjb250
ZW50IGlzIGNvcnJlY3RseSBsb2FkZWQgaWYgUmVzb3VyY2UucmVxdWVzdENvbnRlbnQgd2FzIGNh
bGxlZCBiZWZvcmUgbmV0d29yayByZXF1ZXN0IHdhcyBmaW5pc2hlZC4KLQotQnVnIDkwMTUzCi1S
ZXNvdXJjZSB1cmw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJl
ZS9yZXNvdXJjZXMvc3R5bGVzLWluaXRpYWwuY3NzCi1SZXNvdXJjZSBjb250ZW50OiBodG1sIHsK
LSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKLX0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXJlcXVlc3Qt
Y29udGVudC13aGlsZS1sb2FkaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXJlcXVlc3QtY29udGVudC13aGlsZS1sb2FkaW5n
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkOWM4YmUuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJj
ZS1yZXF1ZXN0LWNvbnRlbnQtd2hpbGUtbG9hZGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NTIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlLXRyZWUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotZnVuY3Rpb24gbG9hZFN0eWxlc2hlZXQoKQotewotICAgIHZhciBzdHlsZUVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7Ci0gICAgc3R5bGVFbGVtZW50LnJlbCA9
ICJzdHlsZXNoZWV0IjsKLSAgICBzdHlsZUVsZW1lbnQuaHJlZiA9ICJyZXNvdXJjZXMvc3R5bGVz
LWluaXRpYWwuY3NzIjsKLSAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVu
dCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZl
cihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJvdG90eXBlLCAiX2FkZFJlcXVlc3Qi
LCByZXF1ZXN0QWRkZWQsIHRydWUpOwotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihQYWdl
QWdlbnQsICJnZXRSZXNvdXJjZUNvbnRlbnQiLCBwYWdlQWdlbnRHZXRSZXNvdXJjZUNvbnRlbnRD
YWxsZWQsIHRydWUpOwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWRTdHls
ZXNoZWV0KCkiKTsKLSAgICB2YXIgY29udGVudFdhc1JlcXVlc3RlZCA9IGZhbHNlOwotICAgIHZh
ciByZXNvdXJjZTsKLQotICAgIGZ1bmN0aW9uIHJlcXVlc3RBZGRlZChyZXF1ZXN0KQotICAgIHsK
LSAgICAgICAgaWYgKHJlcXVlc3QudXJsLmluZGV4T2YoInN0eWxlcy1pbml0aWFsIikgPT09IC0x
KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICByZXNvdXJjZSA9IEluc3BlY3RvclRlc3Qu
cmVzb3VyY2VNYXRjaGluZ1VSTCgic3R5bGVzLWluaXRpYWwiKTsKLSAgICAgICAgaWYgKCFyZXNv
dXJjZSB8fCAhcmVzb3VyY2UucmVxdWVzdCB8fCBjb250ZW50V2FzUmVxdWVzdGVkKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICByZXNvdXJjZS5yZXF1ZXN0Q29udGVudChjb250ZW50TG9h
ZGVkKTsKLSAgICAgICAgY29udGVudFdhc1JlcXVlc3RlZCA9IHRydWU7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gcGFnZUFnZW50R2V0UmVzb3VyY2VDb250ZW50Q2FsbGVkKCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShyZXNvdXJjZS5yZXF1ZXN0LmZpbmlzaGVkKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjb250ZW50TG9hZGVkKGNvbnRlbnQpCi0gICAgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVzb3VyY2UgdXJsOiAiICsgcmVzb3VyY2Uu
dXJsKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJlc291cmNlIGNvbnRlbnQ6
ICIgKyBjb250ZW50KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAg
ICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxw
PlRlc3RzIHJlc291cmNlIGNvbnRlbnQgaXMgY29ycmVjdGx5IGxvYWRlZCBpZiBSZXNvdXJjZS5y
ZXF1ZXN0Q29udGVudCB3YXMgY2FsbGVkIGJlZm9yZSBuZXR3b3JrIHJlcXVlc3Qgd2FzIGZpbmlz
aGVkLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MDE1MyI+QnVnIDkwMTUzPC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVl
LWRvY3VtZW50LXVybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZG9jdW1lbnQtdXJsLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzY2YzZiYy4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRy
ZWUtZG9jdW1lbnQtdXJsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBA
QAotVGVzdHMgdGhhdCByZXNvdXJjZXMgaGF2ZSBwcm9wZXIgZG9jdW1lbnRVUkwgc2V0IGluIHRo
ZSB0cmVlIG1vZGVsLgotCi0KLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMgPT4gaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10
cmVlL3Jlc291cmNlLXRyZWUtZG9jdW1lbnQtdXJsLmh0bWwKLWh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWRvY3VtZW50LXVybC5odG1s
ID0+IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJj
ZS10cmVlLWRvY3VtZW50LXVybC5odG1sCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS10ZXN0LmpzID0+IGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWRvY3VtZW50LXVybC5o
dG1sCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2VzL2R1bW15LWlmcmFtZS5odG1sID0+IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
cmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvZHVtbXktaWZyYW1lLmh0bWwKLWh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzLXRlc3QuanMgPT4gaHR0cDovLzEyNy4wLjAuMTo4
MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZG9jdW1lbnQtdXJsLmh0
bWwKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2UtdHJlZS9yZXNvdXJjZS10cmVlLWRvY3VtZW50LXVybC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWRvY3VtZW50LXVy
bC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDljZWE1Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2UtdHJlZS1kb2N1bWVudC11cmwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZS10cmVlLXRlc3QuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUmVzb3VyY2VzQXJl
RmluaXNoZWQoWyJkdW1teS1pZnJhbWUuaHRtbCIsICJpbnNwZWN0b3ItdGVzdC5qcyIsICJyZXNv
dXJjZXMtdGVzdC5qcyIsICJyZXNvdXJjZS10cmVlLXRlc3QuanMiXSwgc3RlcDEpOwotCi0gICAg
ZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gZm9ybWF0dGVyKHJlc291
cmNlKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gcmVzb3VyY2UudXJsICsgIiA9PiAi
ICsgcmVzb3VyY2UuZG9jdW1lbnRVUkw7Ci0gICAgICAgIH0KLSAgICAKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wUmVzb3VyY2VzKGZvcm1hdHRlcik7ICAgIAotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLQot
PGJvZHk+Ci08cD4KLVRlc3RzIHRoYXQgcmVzb3VyY2VzIGhhdmUgcHJvcGVyIGRvY3VtZW50VVJM
IHNldCBpbiB0aGUgdHJlZSBtb2RlbC4KLTwvcD4KLQotPGlmcmFtZSBzcmM9InJlc291cmNlcy9k
dW1teS1pZnJhbWUuaHRtbCIgb25sb2FkPSJydW5UZXN0KCkiPgotCi08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10
cmVlL3Jlc291cmNlLXRyZWUtZXJyb3JzLXJlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZXJyb3Jz
LXJlbG9hZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3ZTkw
OWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2UtdHJlZS9yZXNvdXJjZS10cmVlLWVycm9ycy1yZWxvYWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ6IENvbnNvbGUg
ZXJyb3IgMS4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1OiBDb25zb2xlIGVycm9yIDIuCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNDogQ29uc29sZSBlcnJvciAxLgotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDU6IENvbnNvbGUgZXJyb3IgMi4KLVRlc3RzIHRoYXQgY29uc29sZSBtZXNzYWdlcyBhcmUg
bWF0Y2hlZCB0byByZXNvdXJjZXMgYWZ0ZXIgcGFnZSByZWxvYWQuCi0KLUJ1ZyA2MDcwMQotUGFn
ZSByZWxvYWRlZC4KLU51bWJlciBvZiBlcnJvcnMgZm9yIHRoZSBtYWluIHJlc291cmNlOiAyCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRy
ZWUvcmVzb3VyY2UtdHJlZS1lcnJvcnMtcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZXJyb3JzLXJlbG9hZC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzBjNWY0Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2Ut
dHJlZS1lcnJvcnMtcmVsb2FkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWNvbnNvbGUuZXJyb3IoIkNvbnNvbGUgZXJyb3IgMS4i
KTsKLWNvbnNvbGUuZXJyb3IoIkNvbnNvbGUgZXJyb3IgMi4iKTsKLTwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2UtdHJlZS10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZh
ciByZXNvdXJjZXNXZXJlRmluaXNoZWQgPSBmYWxzZTsKLSAgICB2YXIgcGFnZVdhc1JlbG9hZGVk
ID0gZmFsc2U7Ci0KLSAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5NYWluRnJh
bWVOYXZpZ2F0ZWQsIGZyYW1lTmF2aWdhdGVkKTsKLSAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBh
Z2UocGFnZVJlbG9hZGVkKTsKLQotICAgIGZ1bmN0aW9uIGZyYW1lTmF2aWdhdGVkKCkKLSAgICB7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5pc2hlZChbInJl
c291cmNlLXRyZWUtZXJyb3JzLXJlbG9hZC5odG1sIl0sIHJlc291cmNlc0ZpbmlzaGVkKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiByZXNvdXJjZXNGaW5pc2hlZCgpCi0gICAgewotICAgICAgICBp
ZiAocGFnZVdhc1JlbG9hZGVkKQotICAgICAgICAgICAgc3RlcDEoKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcmVzb3VyY2VzV2VyZUZpbmlzaGVkID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBwYWdlUmVsb2FkZWQoKQotICAgIHsKLSAgICAgICAgaWYgKHJlc291cmNlc1dlcmVG
aW5pc2hlZCkKLSAgICAgICAgICAgIHN0ZXAxKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHBhZ2VXYXNSZWxvYWRlZCA9IHRydWU7Ci0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgp
Ci0gICAgewotICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVl
TW9kZWwucmVzb3VyY2VGb3JVUkwoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVz
b3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWVycm9ycy1yZWxvYWQuaHRtbCIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTnVtYmVyIG9mIGVycm9ycyBmb3IgdGhlIG1haW4gcmVz
b3VyY2U6ICIgKyByZXNvdXJjZS5lcnJvcnMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBjb25zb2xlIG1lc3NhZ2VzIGFyZSBtYXRjaGVkIHRv
IHJlc291cmNlcyBhZnRlciBwYWdlIHJlbG9hZC48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3MDEiPkJ1ZyA2MDcwMTwvYT4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWV2ZW50
cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3YjUyODEuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJl
ZS9yZXNvdXJjZS10cmVlLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwy
OCArMCwwIEBACi1UZXN0cyB0b3AgZnJhbWUgbmF2aWdhdGlvbiBldmVudHMuCi0KLQotTmF2aWdh
dGluZyBjaGlsZCBmcmFtZSAxCi0gICAgRnJhbWVBZGRlZCA6IGNoaWxkMQotICAgIEZyYW1lTmF2
aWdhdGVkIDogY2hpbGQxCi0gICAgU2VjdXJpdHlPcmlnaW5BZGRlZCA6IGh0dHA6Ly9mcmFtZS9j
aGlsZDEuaHRtbAotTmF2aWdhdGluZyBjaGlsZCBmcmFtZSAxIHRvIGEgZGlmZmVyZW50IFVSTAot
ICAgIFNlY3VyaXR5T3JpZ2luUmVtb3ZlZCA6IGh0dHA6Ly9mcmFtZS9jaGlsZDEuaHRtbAotICAg
IEZyYW1lTmF2aWdhdGVkIDogY2hpbGQxCi0gICAgU2VjdXJpdHlPcmlnaW5BZGRlZCA6IGh0dHA6
Ly9mcmFtZS9jaGlsZDEtbmV3Lmh0bWwKLU5hdmlnYXRpbmcgY2hpbGQgZnJhbWUgMgotICAgIEZy
YW1lQWRkZWQgOiBjaGlsZDIKLSAgICBGcmFtZU5hdmlnYXRlZCA6IGNoaWxkMgotICAgIFNlY3Vy
aXR5T3JpZ2luQWRkZWQgOiBodHRwOi8vZnJhbWUvY2hpbGQyLmh0bWwKLURldGFjaGluZyBjaGls
ZCBmcmFtZSAxCi0gICAgU2VjdXJpdHlPcmlnaW5SZW1vdmVkIDogaHR0cDovL2ZyYW1lL2NoaWxk
MS1uZXcuaHRtbAotICAgIEZyYW1lRGV0YWNoZWQgOiBjaGlsZDEKLU5hdmlnYXRpbmcgcm9vdCBm
cmFtZQotICAgIFNlY3VyaXR5T3JpZ2luUmVtb3ZlZCA6IGh0dHA6Ly9mcmFtZS9jaGlsZDIuaHRt
bAotICAgIFNlY3VyaXR5T3JpZ2luUmVtb3ZlZCA6IGh0dHA6Ly9mcmFtZS9yb290MS5odG1sCi0g
ICAgRnJhbWVEZXRhY2hlZCA6IGNoaWxkMgotICAgIEZyYW1lRGV0YWNoZWQgOiByb290MQotICAg
IEZyYW1lQWRkZWQgOiByb290MgotICAgIEZyYW1lTmF2aWdhdGVkIDogcm9vdDIKLSAgICBNYWlu
RnJhbWVOYXZpZ2F0ZWQgOiByb290MgotICAgIFNlY3VyaXR5T3JpZ2luQWRkZWQgOiBodHRwOi8v
ZnJhbWUvcm9vdDIuaHRtbAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZXZlbnRzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZXZl
bnRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlMWVjOWQuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNv
dXJjZS10cmVlLWV2ZW50cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlLXRyZWUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5p
c2hlZChbImR1bW15LWlmcmFtZS5odG1sIiwgImluc3BlY3Rvci10ZXN0LmpzIiwgInJlc291cmNl
cy10ZXN0LmpzIiwgInJlc291cmNlLXRyZWUtdGVzdC5qcyJdLCBzdGVwMSk7Ci0KLSAgICBmdW5j
dGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9k
ZWwuX2ZyYW1lTmF2aWdhdGVkKGNyZWF0ZUZyYW1lUGF5bG9hZCgicm9vdDEiKSk7Ci0KLSAgICAg
ICAgZm9yICh2YXIgZXZlbnROYW1lIGluIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5F
dmVudFR5cGVzKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXNb
ZXZlbnROYW1lXSwgZXZlbnRIYW5kbGVyLmJpbmQodGhpcywgZXZlbnROYW1lKSk7Ci0gICAgCi0g
ICAgICAgIGZ1bmN0aW9uIGV2ZW50SGFuZGxlcihldmVudE5hbWUsIGV2ZW50KQotICAgICAgICB7
Ci0gICAgICAgICAgICBzd2l0Y2ggKGV2ZW50TmFtZSkgewotICAgICAgICAgICAgY2FzZSAiRnJh
bWVBZGRlZCI6Ci0gICAgICAgICAgICBjYXNlICJGcmFtZU5hdmlnYXRlZCI6Ci0gICAgICAgICAg
ICBjYXNlICJGcmFtZURldGFjaGVkIjoKLSAgICAgICAgICAgIGNhc2UgIk1haW5GcmFtZU5hdmln
YXRlZCI6Ci0gICAgICAgICAgICAgICAgdmFyIGZyYW1lID0gZXZlbnQuZGF0YTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICIgKyBldmVudE5hbWUgKyAiIDog
IiArIGZyYW1lLmlkKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Ug
IlNlY3VyaXR5T3JpZ2luQWRkZWQiOgotICAgICAgICAgICAgY2FzZSAiU2VjdXJpdHlPcmlnaW5S
ZW1vdmVkIjoKLSAgICAgICAgICAgICAgICB2YXIgc2VjdXJpdHlPcmlnaW4gPSBldmVudC5kYXRh
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgIiArIGV2ZW50
TmFtZSArICIgOiAiICsgc2VjdXJpdHlPcmlnaW4pOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAg
ICB9Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5hdmlnYXRpbmcgY2hpbGQg
ZnJhbWUgMSIpOwotICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuX2ZyYW1l
TmF2aWdhdGVkKGNyZWF0ZUZyYW1lUGF5bG9hZCgiY2hpbGQxIiwgInJvb3QxIikpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTmF2aWdhdGluZyBjaGlsZCBmcmFtZSAxIHRvIGEg
ZGlmZmVyZW50IFVSTCIpOwotICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwu
X2ZyYW1lTmF2aWdhdGVkKGNyZWF0ZUZyYW1lUGF5bG9hZCgiY2hpbGQxIiwgInJvb3QxIiwgImNo
aWxkMS1uZXciKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJOYXZpZ2F0aW5n
IGNoaWxkIGZyYW1lIDIiKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVs
Ll9mcmFtZU5hdmlnYXRlZChjcmVhdGVGcmFtZVBheWxvYWQoImNoaWxkMiIsICJyb290MSIpKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkRldGFjaGluZyBjaGlsZCBmcmFtZSAx
Iik7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5fZnJhbWVEZXRhY2hl
ZCgiY2hpbGQxIik7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5hdmlnYXRp
bmcgcm9vdCBmcmFtZSIpOwotICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwu
X2ZyYW1lTmF2aWdhdGVkKGNyZWF0ZUZyYW1lUGF5bG9hZCgicm9vdDIiKSk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY3JlYXRl
RnJhbWVQYXlsb2FkKGlkLCBwYXJlbnRJZCwgbmFtZSkKLSAgICB7Ci0gICAgICAgIHZhciBmcmFt
ZVBheWxvYWQgPSB7fTsKLSAgICAgICAgZnJhbWVQYXlsb2FkLmlkID0gaWQ7Ci0gICAgICAgIGZy
YW1lUGF5bG9hZC5wYXJlbnRJZCA9IHBhcmVudElkIHx8ICIiOwotICAgICAgICBmcmFtZVBheWxv
YWQubG9hZGVySWQgPSAibG9hZGVyLSIgKyBpZDsKLSAgICAgICAgZnJhbWVQYXlsb2FkLm5hbWUg
PSAiZnJhbWUtIiArIGlkOwotICAgICAgICBmcmFtZVBheWxvYWQudXJsID0gImh0dHA6Ly9mcmFt
ZS8iICsgKG5hbWUgfHwgaWQpICsgIi5odG1sIjsKLSAgICAgICAgZnJhbWVQYXlsb2FkLnNlY3Vy
aXR5T3JpZ2luID0gZnJhbWVQYXlsb2FkLnVybDsKLSAgICAgICAgZnJhbWVQYXlsb2FkLm1pbWVU
eXBlID0gInRleHQvaHRtbCI7Ci0gICAgICAgIHJldHVybiBmcmFtZVBheWxvYWQ7Ci0gICAgfQot
fQotCi08L3NjcmlwdD4KLQotPC9oZWFkPgotCi08Ym9keT4KLTxwPgotVGVzdHMgdG9wIGZyYW1l
IG5hdmlnYXRpb24gZXZlbnRzLgotPC9wPgotCi08aWZyYW1lIHNyYz0icmVzb3VyY2VzL2R1bW15
LWlmcmFtZS5odG1sIiBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUv
cmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLWFkZC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlM2VmNmIuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNv
dXJjZS10cmVlLWZyYW1lLWFkZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2OSAr
MCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjE6IGlmcmFtZSBuYXZpZ2F0ZWQKLVRlc3Rz
IHJlc291cmNlIHRyZWUgbW9kZWwgb24gaWZyYW1lIGFkZGl0aW9uLCBjb21wYXJlcyByZXNvdXJj
ZSB0cmVlIGFnYWluc3QgZ29sZGVuLiBFdmVyeSBsaW5lIGlzIGltcG9ydGFudC4KLQotQmVmb3Jl
IGFkZGl0aW9uCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVJlc291cmNl
czoKLXNjcmlwdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzCi1kb2N1bWVudCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRy
ZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRtbAotc2NyaXB0IGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLXRlc3QuanMKLXN0eWxl
c2hlZXQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291
cmNlcy9zdHlsZXMtaW5pdGlhbC5jc3MKLXNjcmlwdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5z
cGVjdG9yL3Jlc291cmNlcy10ZXN0LmpzCi0KLVJlc291cmNlcyBVUkwgTWFwOgotaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyA9PSBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCi1odHRwOi8vMTI3LjAuMC4xOjgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRtbCA9
PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2Ut
dHJlZS1mcmFtZS1hZGQuaHRtbAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNv
dXJjZS10cmVlL3Jlc291cmNlLXRyZWUtdGVzdC5qcyA9PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS10ZXN0LmpzCi1odHRwOi8vMTI3
LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3N0eWxlcy1pbml0
aWFsLmNzcyA9PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUv
cmVzb3VyY2VzL3N0eWxlcy1pbml0aWFsLmNzcwotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3Bl
Y3Rvci9yZXNvdXJjZXMtdGVzdC5qcyA9PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlcy10ZXN0LmpzCi0KLVJlc291cmNlcyBUcmVlOgotRnJhbWVzCi0gICAgKHJlc291
cmNlLXRyZWUtZnJhbWUtYWRkLmh0bWwpCi0gICAgICAgIFNjcmlwdHMKLSAgICAgICAgICAgIGlu
c3BlY3Rvci10ZXN0LmpzCi0gICAgICAgICAgICByZXNvdXJjZS10cmVlLXRlc3QuanMKLSAgICAg
ICAgICAgIHJlc291cmNlcy10ZXN0LmpzCi0gICAgICAgIFN0eWxlc2hlZXRzCi0gICAgICAgICAg
ICBzdHlsZXMtaW5pdGlhbC5jc3MKLSAgICAgICAgcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRt
bAotCi1BZnRlciBhZGRpdGlvbgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci1SZXNvdXJjZXM6Ci1zY3JpcHQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcwotZG9jdW1lbnQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtYWRkLmh0bWwKLXNjcmlwdCBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS10ZXN0
LmpzCi1kb2N1bWVudCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRy
ZWUvcmVzb3VyY2VzL3Jlc291cmNlLXRyZWUtZnJhbWUtYWRkLWlmcmFtZS5odG1sCi1zY3JpcHQg
aHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9z
Y3JpcHQtbmF2aWdhdGVkLmpzCi1zdHlsZXNoZWV0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNw
ZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc3R5bGVzLWluaXRpYWwuY3NzCi1zdHlsZXNo
ZWV0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJj
ZXMvc3R5bGVzLW5hdmlnYXRlZC5jc3MKLXNjcmlwdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5z
cGVjdG9yL3Jlc291cmNlcy10ZXN0LmpzCi0KLVJlc291cmNlcyBVUkwgTWFwOgotaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyA9PSBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCi1odHRwOi8vMTI3LjAuMC4xOjgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRtbCA9
PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2Ut
dHJlZS1mcmFtZS1hZGQuaHRtbAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNv
dXJjZS10cmVlL3Jlc291cmNlLXRyZWUtdGVzdC5qcyA9PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS10ZXN0LmpzCi1odHRwOi8vMTI3
LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3Jlc291cmNlLXRy
ZWUtZnJhbWUtYWRkLWlmcmFtZS5odG1sID09IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0
b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQtaWZyYW1l
Lmh0bWwKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNv
dXJjZXMvc2NyaXB0LW5hdmlnYXRlZC5qcyA9PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3NjcmlwdC1uYXZpZ2F0ZWQuanMKLWh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc3R5bGVzLWlu
aXRpYWwuY3NzID09IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJl
ZS9yZXNvdXJjZXMvc3R5bGVzLWluaXRpYWwuY3NzCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5z
cGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3N0eWxlcy1uYXZpZ2F0ZWQuY3NzID09IGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc3R5
bGVzLW5hdmlnYXRlZC5jc3MKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3Vy
Y2VzLXRlc3QuanMgPT0gaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMt
dGVzdC5qcwotCi1SZXNvdXJjZXMgVHJlZToKLUZyYW1lcwotICAgIChyZXNvdXJjZS10cmVlLWZy
YW1lLWFkZC5odG1sKQotICAgICAgICAocmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQtaWZyYW1lLmh0
bWwpCi0gICAgICAgICAgICBTY3JpcHRzCi0gICAgICAgICAgICAgICAgc2NyaXB0LW5hdmlnYXRl
ZC5qcwotICAgICAgICAgICAgU3R5bGVzaGVldHMKLSAgICAgICAgICAgICAgICBzdHlsZXMtbmF2
aWdhdGVkLmNzcwotICAgICAgICAgICAgcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQtaWZyYW1lLmh0
bWwKLSAgICAgICAgU2NyaXB0cwotICAgICAgICAgICAgaW5zcGVjdG9yLXRlc3QuanMKLSAgICAg
ICAgICAgIHJlc291cmNlLXRyZWUtdGVzdC5qcwotICAgICAgICAgICAgcmVzb3VyY2VzLXRlc3Qu
anMKLSAgICAgICAgU3R5bGVzaGVldHMKLSAgICAgICAgICAgIHN0eWxlcy1pbml0aWFsLmNzcwot
ICAgICAgICByZXNvdXJjZS10cmVlLWZyYW1lLWFkZC5odG1sCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1m
cmFtZS1hZGQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
LXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTdkYWMyNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtYWRkLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2UtdHJlZS10ZXN0LmpzIj48
L3NjcmlwdD4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvc3R5bGVz
LWluaXRpYWwuY3NzIj4KLQotPHNjcmlwdD4KLQotZnVuY3Rpb24gY3JlYXRlSWZyYW1lKCkKLXsK
LSAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gICAg
aWZyYW1lLnNldEF0dHJpYnV0ZSgic3JjIiwgInJlc291cmNlcy9yZXNvdXJjZS10cmVlLWZyYW1l
LWFkZC1pZnJhbWUuaHRtbCIpOwotICAgIGlmcmFtZS5vbmxvYWQgPSBvbklmcmFtZUxvYWQ7Ci0g
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwotfQotCi1mdW5jdGlvbiBvbklm
cmFtZUxvYWQoKQotewotICAgIGNvbnNvbGUubG9nKCJpZnJhbWUgbmF2aWdhdGVkIik7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInJlc291cmNl
cyIpOwotICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5pc2hlZChbInJl
c291cmNlLXRyZWUtZnJhbWUtYWRkLmh0bWwiLCAicmVzb3VyY2UtdHJlZS10ZXN0LmpzIiwgInN0
eWxlcy1pbml0aWFsLmNzcyJdLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQmVmb3JlIGFkZGl0aW9uIik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wUmVzb3VyY2VUcmVlRXZl
cnl0aGluZygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKHN0ZXAy
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiY3JlYXRlSWZyYW1lKCki
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LnJ1bkFmdGVyUmVzb3VyY2VzQXJlRmluaXNoZWQoWyJyZXNvdXJjZS10cmVlLWZyYW1l
LWFkZC1pZnJhbWUuaHRtbCIsICJzdHlsZXMtbmF2aWdhdGVkLmNzcyIsICJzY3JpcHQtbmF2aWdh
dGVkLmpzIl0sIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJBZnRlciBhZGRpdGlvbiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuZHVtcFJlc291cmNlVHJlZUV2ZXJ5dGhpbmcoKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotCi08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgcmVzb3VyY2UgdHJl
ZSBtb2RlbCBvbiBpZnJhbWUgYWRkaXRpb24sIGNvbXBhcmVzIHJlc291cmNlIHRyZWUgYWdhaW5z
dCBnb2xkZW4uIEV2ZXJ5IGxpbmUgaXMgaW1wb3J0YW50LgotPC9wPgotCi08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2aWdhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWZy
YW1lLW5hdmlnYXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
M2RmMDYyZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2aWdhdGUtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIyOiBp
ZnJhbWUgbmF2aWdhdGVkCi1UZXN0cyByZXNvdXJjZSB0cmVlIG1vZGVsIG9uIGlmcmFtZSBuYXZp
Z2F0aW9uLCBjb21wYXJlcyByZXNvdXJjZSB0cmVlIGFnYWluc3QgZ29sZGVuLiBFdmVyeSBsaW5l
IGlzIGltcG9ydGFudC4KLQotQmVmb3JlIG5hdmlnYXRpb24KLT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotUmVzb3VyY2VzOgotc2NyaXB0IGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKLWRvY3VtZW50IGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRl
Lmh0bWwKLXNjcmlwdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRy
ZWUvcmVzb3VyY2UtdHJlZS10ZXN0LmpzCi1kb2N1bWVudCBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2
aWdhdGUtaWZyYW1lLWJlZm9yZS5odG1sCi1zY3JpcHQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9zY3JpcHQtaW5pdGlhbC5qcwotc3R5bGVz
aGVldCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2VzL3N0eWxlcy1pbml0aWFsLTIuY3NzCi1zdHlsZXNoZWV0IGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc3R5bGVzLWluaXRpYWwuY3NzCi1z
Y3JpcHQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMtdGVzdC5qcwot
Ci1SZXNvdXJjZXMgVVJMIE1hcDoKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMgPT0gaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcwotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVl
L3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2aWdhdGUuaHRtbCA9PSBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1uYXZpZ2F0ZS5o
dG1sCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2UtdHJlZS10ZXN0LmpzID09IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3Vy
Y2UtdHJlZS9yZXNvdXJjZS10cmVlLXRlc3QuanMKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNw
ZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvcmVzb3VyY2UtdHJlZS1mcmFtZS1uYXZpZ2F0
ZS1pZnJhbWUtYmVmb3JlLmh0bWwgPT0gaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZS10cmVlL3Jlc291cmNlcy9yZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRlLWlmcmFt
ZS1iZWZvcmUuaHRtbAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10
cmVlL3Jlc291cmNlcy9zY3JpcHQtaW5pdGlhbC5qcyA9PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3NjcmlwdC1pbml0aWFsLmpzCi1odHRw
Oi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3N0eWxl
cy1pbml0aWFsLTIuY3NzID09IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3Vy
Y2UtdHJlZS9yZXNvdXJjZXMvc3R5bGVzLWluaXRpYWwtMi5jc3MKLWh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc3R5bGVzLWluaXRpYWwuY3Nz
ID09IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJj
ZXMvc3R5bGVzLWluaXRpYWwuY3NzCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jl
c291cmNlcy10ZXN0LmpzID09IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3Vy
Y2VzLXRlc3QuanMKLQotUmVzb3VyY2VzIFRyZWU6Ci1GcmFtZXMKLSAgICAocmVzb3VyY2UtdHJl
ZS1mcmFtZS1uYXZpZ2F0ZS5odG1sKQotICAgICAgICBpZnJhbWUocmVzb3VyY2UtdHJlZS1mcmFt
ZS1uYXZpZ2F0ZS1pZnJhbWUtYmVmb3JlLmh0bWwpCi0gICAgICAgICAgICBTY3JpcHRzCi0gICAg
ICAgICAgICAgICAgc2NyaXB0LWluaXRpYWwuanMKLSAgICAgICAgICAgIFN0eWxlc2hlZXRzCi0g
ICAgICAgICAgICAgICAgc3R5bGVzLWluaXRpYWwtMi5jc3MKLSAgICAgICAgICAgIHJlc291cmNl
LXRyZWUtZnJhbWUtbmF2aWdhdGUtaWZyYW1lLWJlZm9yZS5odG1sCi0gICAgICAgIFNjcmlwdHMK
LSAgICAgICAgICAgIGluc3BlY3Rvci10ZXN0LmpzCi0gICAgICAgICAgICByZXNvdXJjZS10cmVl
LXRlc3QuanMKLSAgICAgICAgICAgIHJlc291cmNlcy10ZXN0LmpzCi0gICAgICAgIFN0eWxlc2hl
ZXRzCi0gICAgICAgICAgICBzdHlsZXMtaW5pdGlhbC5jc3MKLSAgICAgICAgcmVzb3VyY2UtdHJl
ZS1mcmFtZS1uYXZpZ2F0ZS5odG1sCi0KLUFmdGVyIG5hdmlnYXRpb24KLT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotUmVzb3VyY2VzOgotc2NyaXB0IGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKLWRvY3VtZW50IGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLW5h
dmlnYXRlLmh0bWwKLXNjcmlwdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291
cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS10ZXN0LmpzCi1kb2N1bWVudCBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3Jlc291cmNlLXRyZWUtZnJh
bWUtbmF2aWdhdGUtaWZyYW1lLWFmdGVyLmh0bWwKLXNjcmlwdCBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3NjcmlwdC1uYXZpZ2F0ZWQuanMK
LXN0eWxlc2hlZXQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVl
L3Jlc291cmNlcy9zdHlsZXMtaW5pdGlhbC5jc3MKLXN0eWxlc2hlZXQgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9zdHlsZXMtbmF2aWdhdGVk
LmNzcwotc2NyaXB0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzLXRl
c3QuanMKLQotUmVzb3VyY2VzIFVSTCBNYXA6Ci1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzID09IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3Vy
Y2UtdHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRlLmh0bWwgPT0gaHR0cDovLzEyNy4w
LjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2
aWdhdGUuaHRtbAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVl
L3Jlc291cmNlLXRyZWUtdGVzdC5qcyA9PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS10ZXN0LmpzCi1odHRwOi8vMTI3LjAuMC4xOjgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3Jlc291cmNlLXRyZWUtZnJhbWUt
bmF2aWdhdGUtaWZyYW1lLWFmdGVyLmh0bWwgPT0gaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3Bl
Y3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9yZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRl
LWlmcmFtZS1hZnRlci5odG1sCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291
cmNlLXRyZWUvcmVzb3VyY2VzL3NjcmlwdC1uYXZpZ2F0ZWQuanMgPT0gaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9zY3JpcHQtbmF2aWdhdGVk
LmpzCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2VzL3N0eWxlcy1pbml0aWFsLmNzcyA9PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3N0eWxlcy1pbml0aWFsLmNzcwotaHR0cDovLzEyNy4w
LjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9zdHlsZXMtbmF2aWdh
dGVkLmNzcyA9PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUv
cmVzb3VyY2VzL3N0eWxlcy1uYXZpZ2F0ZWQuY3NzCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5z
cGVjdG9yL3Jlc291cmNlcy10ZXN0LmpzID09IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0
b3IvcmVzb3VyY2VzLXRlc3QuanMKLQotUmVzb3VyY2VzIFRyZWU6Ci1GcmFtZXMKLSAgICAocmVz
b3VyY2UtdHJlZS1mcmFtZS1uYXZpZ2F0ZS5odG1sKQotICAgICAgICBpZnJhbWUocmVzb3VyY2Ut
dHJlZS1mcmFtZS1uYXZpZ2F0ZS1pZnJhbWUtYWZ0ZXIuaHRtbCkKLSAgICAgICAgICAgIFNjcmlw
dHMKLSAgICAgICAgICAgICAgICBzY3JpcHQtbmF2aWdhdGVkLmpzCi0gICAgICAgICAgICBTdHls
ZXNoZWV0cwotICAgICAgICAgICAgICAgIHN0eWxlcy1uYXZpZ2F0ZWQuY3NzCi0gICAgICAgICAg
ICByZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRlLWlmcmFtZS1hZnRlci5odG1sCi0gICAgICAg
IFNjcmlwdHMKLSAgICAgICAgICAgIGluc3BlY3Rvci10ZXN0LmpzCi0gICAgICAgICAgICByZXNv
dXJjZS10cmVlLXRlc3QuanMKLSAgICAgICAgICAgIHJlc291cmNlcy10ZXN0LmpzCi0gICAgICAg
IFN0eWxlc2hlZXRzCi0gICAgICAgICAgICBzdHlsZXMtaW5pdGlhbC5jc3MKLSAgICAgICAgcmVz
b3VyY2UtdHJlZS1mcmFtZS1uYXZpZ2F0ZS5odG1sCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1u
YXZpZ2F0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Ut
dHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQ4YzBhN2IuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2UtdHJlZS10
ZXN0LmpzIj48L3NjcmlwdD4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJj
ZXMvc3R5bGVzLWluaXRpYWwuY3NzIj4KLQotPHNjcmlwdD4KLQotZnVuY3Rpb24gbmF2aWdhdGVJ
ZnJhbWUoKQotewotICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWZy
YW1lIik7Ci0gICAgaWZyYW1lLnJlbW92ZUF0dHJpYnV0ZSgib25sb2FkIik7Ci0gICAgaWZyYW1l
Lm9ubG9hZCA9IG9uSWZyYW1lTG9hZDsKLSAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCJzcmMiLCAi
cmVzb3VyY2VzL3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2aWdhdGUtaWZyYW1lLWFmdGVyLmh0bWwi
KTsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci19Ci0KLWZ1bmN0aW9u
IG9uSWZyYW1lTG9hZCgpCi17Ci0gICAgY29uc29sZS5sb2coImlmcmFtZSBuYXZpZ2F0ZWQiKTsK
LX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicmVz
b3VyY2VzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclJlc291cmNlc0FyZUZpbmlzaGVk
KFsicmVzb3VyY2UtdHJlZS1mcmFtZS1uYXZpZ2F0ZS1pZnJhbWUtYmVmb3JlLmh0bWwiLCAic2Ny
aXB0LWluaXRpYWwuanMiLCAic3R5bGVzLWluaXRpYWwuY3NzIiwgInN0eWxlcy1pbml0aWFsLTIu
Y3NzIl0sIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJCZWZvcmUgbmF2aWdhdGlvbiIpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFJlc291cmNlVHJlZUV2ZXJ5dGhpbmcoKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm5hdmlnYXRlSWZyYW1lKCkiKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1
bkFmdGVyUmVzb3VyY2VzQXJlRmluaXNoZWQoWyJyZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRl
LWlmcmFtZS1hZnRlci5odG1sIiwgInN0eWxlcy1uYXZpZ2F0ZWQuY3NzIiwgInNjcmlwdC1uYXZp
Z2F0ZWQuanMiXSwgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIkFmdGVyIG5hdmlnYXRpb24iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXBSZXNvdXJjZVRyZWVFdmVyeXRoaW5nKCk7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLQot
PC9oZWFkPgotCi08Ym9keT4KLTxwPgotVGVzdHMgcmVzb3VyY2UgdHJlZSBtb2RlbCBvbiBpZnJh
bWUgbmF2aWdhdGlvbiwgY29tcGFyZXMgcmVzb3VyY2UgdHJlZSBhZ2FpbnN0IGdvbGRlbi4gRXZl
cnkgbGluZSBpcyBpbXBvcnRhbnQuCi08L3A+Ci0KLTxpZnJhbWUgaWQ9ImlmcmFtZSIgc3JjPSJy
ZXNvdXJjZXMvcmVzb3VyY2UtdHJlZS1mcmFtZS1uYXZpZ2F0ZS1pZnJhbWUtYmVmb3JlLmh0bWwi
IG9ubG9hZD0icnVuVGVzdCgpIj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVl
LWludmFsaWQtbWltZS10eXBlLWNzcy1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1pbnZhbGlk
LW1pbWUtdHlwZS1jc3MtY29udGVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDg5MTIwNTEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWludmFsaWQtbWltZS10eXBlLWNz
cy1jb250ZW50LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotVGVz
dHMgdGhhdCBjb250ZW50IGlzIGNvcnJlY3RseSBzaG93biBmb3IgY3NzIGxvYWRlZCB3aXRoIGlu
dmFsaWQgbWltZSB0eXBlIGluIHF1aXJrcyBtb2RlLgotCi1CdWcgODA1MjgKLWh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc3R5bGVzaGVldC10
ZXh0LXBsYWluLnBocAotUmVzb3VyY2UuY29udGVudDogYm9keSB7Ci0gICAgYmFja2dyb3VuZC1j
b2xvcjogZ3JlZW46Ci19Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWludmFsaWQtbWltZS10eXBlLWNz
cy1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS10cmVlL3Jlc291cmNlLXRyZWUtaW52YWxpZC1taW1lLXR5cGUtY3NzLWNvbnRlbnQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWY0M2Y1ZC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUt
aW52YWxpZC1taW1lLXR5cGUtY3NzLWNvbnRlbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy10ZXN0LmpzIj48L3Njcmlw
dD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3N0eWxlc2hlZXQtdGV4
dC1wbGFpbi5waHAiIHR5cGU9InRleHQvY3NzIj4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICB2YXIgY3NzUmVzb3VyY2U7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUmVz
b3VyY2VzQXJlRmluaXNoZWQoWyJzdHlsZXNoZWV0LXRleHQtcGxhaW4ucGhwIl0sIHN0ZXAxKTsK
LQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5yZXNv
dXJjZVRyZWVNb2RlbC5mb3JBbGxSZXNvdXJjZXMoZmluZENTU1Jlc291cmNlKTsKLSAgICAgICAg
ZnVuY3Rpb24gZmluZENTU1Jlc291cmNlKHJlc291cmNlKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBpZiAocmVzb3VyY2UudXJsLmluZGV4T2YoInN0eWxlc2hlZXQtdGV4dC1wbGFpbi5waHAiKSAh
PT0gLTEpCi0gICAgICAgICAgICAgICAgY3NzUmVzb3VyY2UgPSByZXNvdXJjZTsKLSAgICAgICAg
fQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChjc3NSZXNvdXJjZS51cmwpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhjc3NSZXNvdXJjZS50eXBlLCBXZWJJbnNw
ZWN0b3IucmVzb3VyY2VUeXBlcy5TdHlsZXNoZWV0LCAiUmVzb3VyY2UgdHlwZSBzaG91bGQgYmUg
U3R5bGVzaGVldC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFjc3NSZXNv
dXJjZS5mYWlsZWQsICJSZXNvdXJjZSBsb2FkaW5nIGZhaWxlZC4iKTsKLSAgICAgICAgY3NzUmVz
b3VyY2UucmVxdWVzdENvbnRlbnQoc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAy
KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXNvdXJjZS5jb250
ZW50OiAiICsgY3NzUmVzb3VyY2UuY29udGVudCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IGNvbnRlbnQgaXMgY29ycmVjdGx5IHNob3duIGZv
ciBjc3MgbG9hZGVkIHdpdGggaW52YWxpZCBtaW1lIHR5cGUgaW4gcXVpcmtzIG1vZGUuPC9wPgot
PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNTI4Ij5C
dWcgODA1Mjg8L2E+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtbWltZXR5cGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Ut
dHJlZS9yZXNvdXJjZS10cmVlLW1pbWV0eXBlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTc3MDMxNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtbWltZXR5cGUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1UZXN0cyB0aGF0IHJlc291cmNl
cyBwYW5lbCBjb3JyZWN0bHkgc2hvd3MgbWltZSB0eXBlIHdoZW4gaXQgbG9hZHMgZGF0YSBmcm9t
IG1lbW9yeSBjYWNoZS4KLQotQnVnIDYzNzAxIAotc2NyaXB0IGFwcGxpY2F0aW9uL3gtamF2YXNj
cmlwdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCi1k
b2N1bWVudCB0ZXh0L2h0bWwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJj
ZS10cmVlL3Jlc291cmNlLXRyZWUtbWltZXR5cGUuaHRtbAotc2NyaXB0IGFwcGxpY2F0aW9uL3gt
amF2YXNjcmlwdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUv
cmVzb3VyY2UtdHJlZS10ZXN0LmpzCi1pbWFnZSBpbWFnZS9wbmcgaHR0cDovLzEyNy4wLjAuMTo4
MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9lbXB0eS5wbmcKLXN0eWxlc2hl
ZXQgdGV4dC9jc3MgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVl
L3Jlc291cmNlcy9zdHlsZXMtaW5pdGlhbC5jc3MKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLW1pbWV0eXBl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jl
c291cmNlLXRyZWUtbWltZXR5cGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YmY3MWVjYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtbWltZXR5cGUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDMxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlLXRyZWUtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9zdHlsZXMt
aW5pdGlhbC5jc3MiPgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3Bl
Y3Rvci5wYW5lbCgibmV0d29yayIpLl9yZXNldCgpOwotICAgIFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2Rl
bC5FdmVudFR5cGVzLkNhY2hlZFJlc291cmNlc0xvYWRlZCwgc3RlcDIpOwotICAgIFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5fZmV0Y2hSZXNvdXJjZVRyZWUoKTsKLQotICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGZvcm1hdChyZXNvdXJjZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlLnR5cGUubmFtZSgpICsgIiAiICsg
cmVzb3VyY2UubWltZVR5cGUgKyAiICIgKyByZXNvdXJjZS51cmw7Ci0gICAgICAgIH0KLQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXBSZXNvdXJjZXMoZm9ybWF0KTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQgcmVzb3VyY2VzIHBhbmVsIGNv
cnJlY3RseSBzaG93cyBtaW1lIHR5cGUgd2hlbiBpdCBsb2FkcyBkYXRhIGZyb20gbWVtb3J5IGNh
Y2hlLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MzcwMSI+QnVnIDYzNzAxPC9hPgotPGltZyBzcmM9InJlc291cmNlcy9lbXB0eS5wbmciPgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLW5vLXhocnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10
cmVlLW5vLXhocnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
YmM1OGU2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1uby14aHJzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDQgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6IFhIUiBsb2FkZWQ6
IDEKLVRlc3RzIHRoYXQgWEhScyBhcmUgbm90IGFkZGVkIHRvIHJlc291cmNlVHJlZU1vZGVsLgot
Ci1CdWcgNjAzMjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1uby14aHJzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtbm8teGhycy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTM0NWUyLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2Ut
dHJlZS1uby14aHJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9uZXR3b3JrLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QubWFrZVNpbXBsZVhIUigiR0VUIiwgInJl
c291cmNlcy9yZXNvdXJjZS5waHAiLCBmYWxzZSwgc3RlcDIpOwotCi0gICAgZnVuY3Rpb24gc3Rl
cDIoKQotICAgIHsKLSAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNl
VHJlZU1vZGVsLnJlc291cmNlRm9yVVJMKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3Jlc291cmNlLnBocCIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydFRydWUoIXJlc291cmNlLCAiWEhSIHJlc291cmNlIHNob3VsZCBub3QgYmUg
YWRkZWQgdG8gcmVzb3VyY2VUcmVlTW9kZWwuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IFhIUnMgYXJlIG5vdCBhZGRlZCB0byByZXNvdXJj
ZVRyZWVNb2RlbC48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjAzMjEiPkJ1ZyA2MDMyMTwvYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2UtdHJlZS1ub24tdW5pcXVlLXVybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtbm9uLXVuaXF1ZS11cmwt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYmM1MDFlLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUv
cmVzb3VyY2UtdHJlZS1ub24tdW5pcXVlLXVybC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxOCArMCwwIEBACi1UZXN0cyByZXNvdXJjZXMgcGFuZWwgc2hvd3Mgc2V2ZXJhbCByZXNv
dXJjZXMgd2l0aCB0aGUgc2FtZSB1cmwgaWYgdGhleSB3ZXJlIGxvYWRlZCB3aXRoIGluc3BlY3Rv
ciBhbHJlYWR5IG9wZW5lZC4KLQotCi1SZXNvdXJjZXMgVHJlZToKLUZyYW1lcwotICAgIChyZXNv
dXJjZS10cmVlLW5vbi11bmlxdWUtdXJsLmh0bWwpCi0gICAgICAgIChyZXNvdXJjZS10cmVlLW5v
bi11bmlxdWUtdXJsLWlmcmFtZS5odG1sKQotICAgICAgICAgICAgSW1hZ2VzCi0gICAgICAgICAg
ICAgICAgc3R5bGVzLW5vbi11bmlxdWUtdXJsLmNzcwotICAgICAgICAgICAgU3R5bGVzaGVldHMK
LSAgICAgICAgICAgICAgICBzdHlsZXMtbm9uLXVuaXF1ZS11cmwuY3NzCi0gICAgICAgICAgICBy
ZXNvdXJjZS10cmVlLW5vbi11bmlxdWUtdXJsLWlmcmFtZS5odG1sCi0gICAgICAgIFNjcmlwdHMK
LSAgICAgICAgICAgIGluc3BlY3Rvci10ZXN0LmpzCi0gICAgICAgICAgICByZXNvdXJjZS10cmVl
LXRlc3QuanMKLSAgICAgICAgICAgIHJlc291cmNlcy10ZXN0LmpzCi0gICAgICAgIHJlc291cmNl
LXRyZWUtbm9uLXVuaXF1ZS11cmwuaHRtbAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtbm9uLXVuaXF1ZS11
cmwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUv
cmVzb3VyY2UtdHJlZS1ub24tdW5pcXVlLXVybC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhZTRlYjIzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1ub24tdW5pcXVlLXVybC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlLXRyZWUtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gbG9hZElmcmFtZSgpCi17Ci0gICAgdmFy
IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLSAgICBpZnJhbWUuc3JjID0gInJlc291cmNlcy9y
ZXNvdXJjZS10cmVlLW5vbi11bmlxdWUtdXJsLWlmcmFtZS5odG1sIjsKLX0KLQotZnVuY3Rpb24g
dGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicmVzb3VyY2VzIik7Ci0gICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5GcmFtZVRyZWVFbGVtZW50LnBy
b3RvdHlwZSwgImFwcGVuZFJlc291cmNlIiwgb25SZXNvdXJjZSwgdHJ1ZSk7Ci0KLSAgICB2YXIg
Y3NzUmVxdWVzdHNDb3VudCA9IDA7Ci0gICAgZnVuY3Rpb24gb25SZXNvdXJjZShyZXNvdXJjZSkK
LSAgICB7Ci0gICAgICAgIGlmIChyZXNvdXJjZS51cmwubWF0Y2goL1wuY3NzJC8pICYmICsrY3Nz
UmVxdWVzdHNDb3VudCA9PT0gMikgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlJlc291cmNlcyBUcmVlOiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wUmVz
b3VyY2VzVHJlZSgpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxv
YWRJZnJhbWUoKTsiKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+VGVzdHMgcmVzb3VyY2VzIHBhbmVsIHNob3dzIHNldmVyYWwgcmVzb3VyY2Vz
IHdpdGggdGhlIHNhbWUgdXJsIGlmIHRoZXkgd2VyZSBsb2FkZWQgd2l0aCBpbnNwZWN0b3IgYWxy
ZWFkeSBvcGVuZWQuPC9wPgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtcmVs
b2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1yZWxvYWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4NjgzNzQ2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1yZWxvYWQtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotVGVzdHMgcmVzb3VyY2UgdHJl
ZSBtb2RlbCBvbiBwYWdlIHJlbG9hZCwgY29tcGFyZXMgcmVzb3VyY2UgdHJlZSBhZ2FpbnN0IGdv
bGRlbi4gRXZlcnkgbGluZSBpcyBpbXBvcnRhbnQuCi0KLQotUGFnZSByZWxvYWRlZC4KLVJlc291
cmNlczoKLXNjcmlwdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzCi1kb2N1bWVudCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
LXRyZWUvcmVzb3VyY2UtdHJlZS1yZWxvYWQuaHRtbAotc2NyaXB0IGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLXRlc3QuanMKLWRvY3Vt
ZW50IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJj
ZXMvcmVzb3VyY2UtdHJlZS1yZWxvYWQtaWZyYW1lLmh0bWwKLXNjcmlwdCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3NjcmlwdC1pbml0aWFs
LmpzCi1zdHlsZXNoZWV0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2Ut
dHJlZS9yZXNvdXJjZXMvc3R5bGVzLWluaXRpYWwtMi5jc3MKLXN0eWxlc2hlZXQgaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9zdHlsZXMtaW5p
dGlhbC5jc3MKLXNjcmlwdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
cy10ZXN0LmpzCi0KLVJlc291cmNlcyBVUkwgTWFwOgotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyA9PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jl
c291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1yZWxvYWQuaHRtbCA9PSBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1yZWxvYWQuaHRtbAot
aHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRy
ZWUtdGVzdC5qcyA9PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRy
ZWUvcmVzb3VyY2UtdHJlZS10ZXN0LmpzCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3Jlc291cmNlLXRyZWUtcmVsb2FkLWlmcmFtZS5odG1s
ID09IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJj
ZXMvcmVzb3VyY2UtdHJlZS1yZWxvYWQtaWZyYW1lLmh0bWwKLWh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc2NyaXB0LWluaXRpYWwuanMgPT0g
aHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9z
Y3JpcHQtaW5pdGlhbC5qcwotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJj
ZS10cmVlL3Jlc291cmNlcy9zdHlsZXMtaW5pdGlhbC0yLmNzcyA9PSBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3N0eWxlcy1pbml0aWFsLTIu
Y3NzCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2VzL3N0eWxlcy1pbml0aWFsLmNzcyA9PSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3N0eWxlcy1pbml0aWFsLmNzcwotaHR0cDovLzEyNy4w
LjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMtdGVzdC5qcyA9PSBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy10ZXN0LmpzCi0KLVJlc291cmNlcyBUcmVlOgotRnJh
bWVzCi0gICAgKHJlc291cmNlLXRyZWUtcmVsb2FkLmh0bWwpCi0gICAgICAgIChyZXNvdXJjZS10
cmVlLXJlbG9hZC1pZnJhbWUuaHRtbCkKLSAgICAgICAgICAgIFNjcmlwdHMKLSAgICAgICAgICAg
ICAgICBzY3JpcHQtaW5pdGlhbC5qcwotICAgICAgICAgICAgU3R5bGVzaGVldHMKLSAgICAgICAg
ICAgICAgICBzdHlsZXMtaW5pdGlhbC0yLmNzcwotICAgICAgICAgICAgcmVzb3VyY2UtdHJlZS1y
ZWxvYWQtaWZyYW1lLmh0bWwKLSAgICAgICAgU2NyaXB0cwotICAgICAgICAgICAgaW5zcGVjdG9y
LXRlc3QuanMKLSAgICAgICAgICAgIHJlc291cmNlLXRyZWUtdGVzdC5qcwotICAgICAgICAgICAg
cmVzb3VyY2VzLXRlc3QuanMKLSAgICAgICAgU3R5bGVzaGVldHMKLSAgICAgICAgICAgIHN0eWxl
cy1pbml0aWFsLmNzcwotICAgICAgICByZXNvdXJjZS10cmVlLXJlbG9hZC5odG1sCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVz
b3VyY2UtdHJlZS1yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1yZWxvYWQuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOWFiMmUxNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtcmVsb2FkLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2UtdHJlZS10ZXN0Lmpz
Ij48L3NjcmlwdD4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvc3R5
bGVzLWluaXRpYWwuY3NzIj4KLQotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
V2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicmVzb3VyY2VzIik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0
LnJlbG9hZFBhZ2Uoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclJlc291cmNlc0FyZUZpbmlzaGVkKFsicmVzb3VyY2Ut
dHJlZS1yZWxvYWQtaWZyYW1lLmh0bWwiLCAic2NyaXB0LWluaXRpYWwuanMiLCAic3R5bGVzLWlu
aXRpYWwtMi5jc3MiXSwgc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFJlc291cmNlVHJlZUV2ZXJ5dGhpbmcoKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2Ny
aXB0PgotCi08L2hlYWQ+Ci0KLTxib2R5PgotPHA+Ci1UZXN0cyByZXNvdXJjZSB0cmVlIG1vZGVs
IG9uIHBhZ2UgcmVsb2FkLCBjb21wYXJlcyByZXNvdXJjZSB0cmVlIGFnYWluc3QgZ29sZGVuLiBF
dmVyeSBsaW5lIGlzIGltcG9ydGFudC4KLTwvcD4KLQotPGlmcmFtZSBzcmM9InJlc291cmNlcy9y
ZXNvdXJjZS10cmVlLXJlbG9hZC1pZnJhbWUuaHRtbCIgb25sb2FkPSJydW5UZXN0KCkiPgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS10ZXN0LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Y2E2YTViLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS10
ZXN0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotdmFyIGluaXRpYWxpemVfUmVz
b3VyY2VUcmVlVGVzdCA9IGZ1bmN0aW9uKCkgewotCi1JbnNwZWN0b3JUZXN0LmR1bXBSZXNvdXJj
ZXMgPSBmdW5jdGlvbihmb3JtYXR0ZXIpCi17Ci0gICAgdmFyIHJlc3VsdHMgPSBbXTsKLQotICAg
IGZ1bmN0aW9uIGZvcm1hdHRlcldyYXBwZXIocmVzb3VyY2UpCi0gICAgewotICAgICAgICBpZiAo
Zm9ybWF0dGVyKQotICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHsgcmVzb3VyY2U6IHJlc291cmNl
LCB0ZXh0OiBmb3JtYXR0ZXIocmVzb3VyY2UpIH0pOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICByZXN1bHRzLnB1c2goeyByZXNvdXJjZTogcmVzb3VyY2UsIHRleHQ6IHJlc291cmNlLnVybCB9
KTsKLSAgICB9Ci0KLSAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuZm9yQWxsUmVz
b3VyY2VzKGZvcm1hdHRlcldyYXBwZXIpOwotCi0gICAgZnVuY3Rpb24gY29tcGFyYXRvcihyZXN1
bHQxLCByZXN1bHQyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDEucmVzb3VyY2UudXJs
LmxvY2FsZUNvbXBhcmUocmVzdWx0Mi5yZXNvdXJjZS51cmwpOwotICAgIH0KLSAgICByZXN1bHRz
LnNvcnQoY29tcGFyYXRvcik7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdHMubGVu
Z3RoOyArK2kpCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlc3VsdHNbaV0udGV4
dCk7Ci19Ci0KLUluc3BlY3RvclRlc3QuZHVtcFJlc291cmNlc1VSTE1hcCA9IGZ1bmN0aW9uKCkK
LXsKLSAgICB2YXIgcmVzdWx0cyA9IFtdOwotICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVN
b2RlbC5mb3JBbGxSZXNvdXJjZXMoY29sbGVjdCk7Ci0gICAgZnVuY3Rpb24gY29sbGVjdChyZXNv
dXJjZSkKLSAgICB7Ci0gICAgICAgIHJlc3VsdHMucHVzaCh7IHVybDogcmVzb3VyY2UudXJsLCBy
ZXNvdXJjZTogV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLnJlc291cmNlRm9yVVJMKHJl
c291cmNlLnVybCkgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY29tcGFyYXRvcihyZXN1bHQx
LCByZXN1bHQyKQotICAgIHsKLSAgICAgICAgaWYgKHJlc3VsdDEudXJsID4gcmVzdWx0Mi51cmwp
Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgaWYgKHJlc3VsdDIudXJsID4gcmVzdWx0
MS51cmwpCi0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0K
LQotICAgIHJlc3VsdHMuc29ydChjb21wYXJhdG9yKTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVzdWx0cy5sZW5ndGg7ICsraSkKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
cmVzdWx0c1tpXS51cmwgKyAiID09ICIgKyByZXN1bHRzW2ldLnJlc291cmNlLnVybCk7Ci19Ci0K
LUluc3BlY3RvclRlc3QuZHVtcFJlc291cmNlc1RyZWUgPSBmdW5jdGlvbigpCi17Ci0gICAgZnVu
Y3Rpb24gZHVtcCh0cmVlSXRlbSwgcHJlZml4KQotICAgIHsKLSAgICAgICAgLy8gV2UgZG9uJ3Qg
bmVlZCB0byBwcmludCB0aGUgYnViYmxlcyBjb250ZW50IGhlcmUuCi0gICAgICAgIGlmICh0eXBl
b2YodHJlZUl0ZW0uX3Jlc2V0QnViYmxlKSA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgIHRy
ZWVJdGVtLl9yZXNldEJ1YmJsZSgpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KHByZWZpeCArIHRyZWVJdGVtLmxpc3RJdGVtRWxlbWVudC50ZXh0Q29udGVudCk7Ci0KLSAgICAg
ICAgdHJlZUl0ZW0uZXhwYW5kKCk7Ci0gICAgICAgIHZhciBjaGlsZHJlbiA9IHRyZWVJdGVtLmNo
aWxkcmVuOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgY2hpbGRyZW4gJiYgaSA8IGNoaWxkcmVu
Lmxlbmd0aDsgKytpKQotICAgICAgICAgICAgZHVtcChjaGlsZHJlbltpXSwgcHJlZml4ICsgIiAg
ICAiKTsKLSAgICB9Ci0KLSAgICBkdW1wKFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInJlc291cmNl
cyIpLnJlc291cmNlc0xpc3RUcmVlRWxlbWVudCwgIiIpOwotfQotCi1JbnNwZWN0b3JUZXN0LmR1
bXBSZXNvdXJjZVRyZWVFdmVyeXRoaW5nID0gZnVuY3Rpb24oKQotewotICAgIGZ1bmN0aW9uIGZv
cm1hdChyZXNvdXJjZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiByZXNvdXJjZS50eXBlLm5hbWUo
KSArICIgIiArIHJlc291cmNlLnVybDsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiUmVzb3VyY2VzOiIpOwotICAgIEluc3BlY3RvclRlc3QuZHVtcFJlc291cmNlcyhmb3Jt
YXQpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJSZXNvdXJjZXMgVVJMIE1hcDoiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmR1
bXBSZXNvdXJjZXNVUkxNYXAoKTsKLQotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsK
LSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVzb3VyY2VzIFRyZWU6Iik7Ci0gICAgSW5z
cGVjdG9yVGVzdC5kdW1wUmVzb3VyY2VzVHJlZSgpOwotfQotCi19OwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvZHVt
bXktaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS10cmVlL3Jlc291cmNlcy9kdW1teS1pZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTNhN2YyNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9kdW1teS1pZnJhbWUuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTwvaGVhZD4KLTxib2R5Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvZHluYW1pYy1zY3JpcHQuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9keW5hbWlj
LXNjcmlwdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjk0MDcyOS4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jl
c291cmNlcy9keW5hbWljLXNjcmlwdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAot
ZnVuY3Rpb24gZm9vKCkgewotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvZW1wdHkucG5nIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvZW1wdHkucG5nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDViOTFlLi4wMDAwMDAwCkJpbmFyeSBmaWxl
cyBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2VzL2VtcHR5LnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvcmVzb3VyY2Ut
dHJlZS1mcmFtZS1hZGQtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9yZXNvdXJjZS10cmVlLWZyYW1lLWFkZC1pZnJh
bWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM4ODRjOC4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291
cmNlcy9yZXNvdXJjZS10cmVlLWZyYW1lLWFkZC1pZnJhbWUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDEwICswLDAgQEAKLTxodG1sPgotCi08aGVhZD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtbmF2
aWdhdGVkLmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGVz
LW5hdmlnYXRlZC5jc3MiPgotPC9oZWFkPgotCi08Ym9keT4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUv
cmVzb3VyY2VzL3Jlc291cmNlLXRyZWUtZnJhbWUtbmF2aWdhdGUtaWZyYW1lLWFmdGVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNl
cy9yZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRlLWlmcmFtZS1hZnRlci5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzg4NGM4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3Jlc291cmNlLXRy
ZWUtZnJhbWUtbmF2aWdhdGUtaWZyYW1lLWFmdGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MCArMCwwIEBACi08aHRtbD4KLQotPGhlYWQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LW5hdmlnYXRl
ZC5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlcy1uYXZp
Z2F0ZWQuY3NzIj4KLTwvaGVhZD4KLQotPGJvZHk+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291
cmNlcy9yZXNvdXJjZS10cmVlLWZyYW1lLW5hdmlnYXRlLWlmcmFtZS1iZWZvcmUuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3Jl
c291cmNlLXRyZWUtZnJhbWUtbmF2aWdhdGUtaWZyYW1lLWJlZm9yZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiMTMxMWYyODYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvcmVzb3VyY2UtdHJl
ZS1mcmFtZS1uYXZpZ2F0ZS1pZnJhbWUtYmVmb3JlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MCArMCwwIEBACi08aHRtbD4KLQotPGhlYWQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LWluaXRpYWwu
anMiPjwvc2NyaXB0PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZXMtaW5pdGlh
bC0yLmNzcyI+Ci08L2hlYWQ+Ci0KLTxib2R5PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJj
ZXMvcmVzb3VyY2UtdHJlZS1ub24tdW5pcXVlLXVybC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3Jlc291cmNlLXRy
ZWUtbm9uLXVuaXF1ZS11cmwtaWZyYW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRjYjUyNzYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvcmVzb3VyY2UtdHJlZS1ub24tdW5pcXVlLXVybC1p
ZnJhbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGVzLW5vbi11bmlxdWUtdXJsLmNzcyI+
Ci08L2hlYWQ+Ci08Ym9keT4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvcmVzb3Vy
Y2UtdHJlZS1yZWxvYWQtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9yZXNvdXJjZS10cmVlLXJlbG9hZC1pZnJhbWUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjEzMTFmMjg2Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2VzL3Jlc291cmNlLXRyZWUtcmVsb2FkLWlmcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTAgKzAsMCBAQAotPGh0bWw+Ci0KLTxoZWFkPgotPHNjcmlwdCBzcmM9InNjcmlwdC1pbml0aWFs
LmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGVzLWluaXRp
YWwtMi5jc3MiPgotPC9oZWFkPgotCi08Ym9keT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2VzL3NjcmlwdC1pbml0aWFsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc2NyaXB0LWluaXRpYWwuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDY5NDA3MjkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc2NyaXB0LWluaXRpYWwuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWZ1bmN0aW9uIGZvbygpIHsKLX0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVz
b3VyY2VzL3NjcmlwdC1uYXZpZ2F0ZWQuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9zY3JpcHQtbmF2aWdhdGVkLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTQwNzI5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3NjcmlwdC1uYXZp
Z2F0ZWQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWZ1bmN0aW9uIGZvbygpIHsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
LXRyZWUvcmVzb3VyY2VzL3N0eWxlcy1pbml0aWFsLTIuY3NzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc3R5bGVzLWluaXRpYWwtMi5j
c3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1YjY2Y2IuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMv
c3R5bGVzLWluaXRpYWwtMi5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLWh0bWwg
ewotICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZXMvc3R5bGVzLWlu
aXRpYWwuY3NzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJl
ZS9yZXNvdXJjZXMvc3R5bGVzLWluaXRpYWwuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmNWI2NmNiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3N0eWxlcy1pbml0aWFsLmNzcworKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotaHRtbCB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS10cmVlL3Jlc291cmNlcy9zdHlsZXMtbmF2aWdhdGVkLmNzcyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3N0eWxlcy1uYXZpZ2F0ZWQu
Y3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNWI2NmNiLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2Vz
L3N0eWxlcy1uYXZpZ2F0ZWQuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1odG1s
IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3N0eWxlcy1u
b24tdW5pcXVlLXVybC5jc3MgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZS10cmVlL3Jlc291cmNlcy9zdHlsZXMtbm9uLXVuaXF1ZS11cmwuY3NzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmM2EyZWFkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2VzL3N0eWxlcy1ub24tdW5p
cXVlLXVybC5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLWJvZHkgewotICAgIGJh
Y2tncm91bmQ6IHVybCgpOwotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9zdHlsZXNoZWV0LXRleHQtcGxhaW4u
cGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNv
dXJjZXMvc3R5bGVzaGVldC10ZXh0LXBsYWluLnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggZmVhZTc0ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlcy9zdHlsZXNoZWV0LXRleHQtcGxhaW4ucGhwCisr
KyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08P3BocAotICAgIGhlYWRlcigiQ29udGVudC1U
eXBlOiB0ZXh0L3BsYWluIik7Ci0/PgotYm9keSB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW46Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy10ZXN0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NGZjZTc5Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy10ZXN0Lmpz
CisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotdmFyIGluaXRpYWxpemVfUmVzb3VyY2VU
ZXN0ID0gZnVuY3Rpb24oKSB7Ci0KLUluc3BlY3RvclRlc3QuSEFSUHJvcGVydHlGb3JtYXR0ZXJz
ID0gewotICAgIGJvZHlTaXplOiAiZm9ybWF0QXNUeXBlTmFtZSIsCi0gICAgY29tcHJlc3Npb246
ICJmb3JtYXRBc1R5cGVOYW1lIiwKLSAgICBoZWFkZXJzOiAiZm9ybWF0QXNUeXBlTmFtZSIsCi0g
ICAgaGVhZGVyc1NpemU6ICJmb3JtYXRBc1R5cGVOYW1lIiwKLSAgICBpZDogImZvcm1hdEFzVHlw
ZU5hbWUiLAotICAgIG9uQ29udGVudExvYWQ6ICJmb3JtYXRBc1R5cGVOYW1lIiwKLSAgICBvbkxv
YWQ6ICJmb3JtYXRBc1R5cGVOYW1lIiwKLSAgICByZWNlaXZlOiAiZm9ybWF0QXNUeXBlTmFtZSIs
Ci0gICAgc3RhcnRlZERhdGVUaW1lOiAiZm9ybWF0QXNSZWNlbnRUaW1lIiwKLSAgICB0aW1lOiAi
Zm9ybWF0QXNUeXBlTmFtZSIsCi0gICAgdGltaW5nczogImZvcm1hdEFzVHlwZU5hbWUiLAotICAg
IHZlcnNpb246ICJmb3JtYXRBc1R5cGVOYW1lIiwKLSAgICB3YWl0OiAiZm9ybWF0QXNUeXBlTmFt
ZSIsCi19OwotCi0vLyBhZGRPYmplY3QgY2hlY2tzIG93biBwcm9wZXJ0aWVzIG9ubHksIHNvIG1h
a2UgYSBkZWVwIGNvcHkgcmF0aGVyIHRoYW4gdXNlIHByb3RvdHlwZS4KLQotSW5zcGVjdG9yVGVz
dC5IQVJQcm9wZXJ0eUZvcm1hdHRlcnNXaXRoU2l6ZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdp
ZnkoSW5zcGVjdG9yVGVzdC5IQVJQcm9wZXJ0eUZvcm1hdHRlcnMpKTsKLUluc3BlY3RvclRlc3Qu
SEFSUHJvcGVydHlGb3JtYXR0ZXJzV2l0aFNpemUuc2l6ZSA9ICJmb3JtYXRBc1R5cGVOYW1lIjsK
LQotCi1JbnNwZWN0b3JUZXN0LnJlcXVlc3RVUkxDb21wYXJlciA9IGZ1bmN0aW9uKHIxLCByMikK
LXsKLSAgICByZXR1cm4gcjEucmVxdWVzdC51cmwubG9jYWxlQ29tcGFyZShyMi5yZXF1ZXN0LnVy
bCk7Ci19Ci0KLUluc3BlY3RvclRlc3QucnVuQWZ0ZXJDYWNoZWRSZXNvdXJjZXNQcm9jZXNzZWQg
PSBmdW5jdGlvbihjYWxsYmFjaykKLXsKLSAgICBpZiAoIVdlYkluc3BlY3Rvci5yZXNvdXJjZVRy
ZWVNb2RlbC5fY2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkKQotICAgICAgICBXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VU
cmVlTW9kZWwuRXZlbnRUeXBlcy5DYWNoZWRSZXNvdXJjZXNMb2FkZWQsIGNhbGxiYWNrKTsKLSAg
ICBlbHNlCi0gICAgICAgIGNhbGxiYWNrKCk7Ci19Ci0KLUluc3BlY3RvclRlc3QucnVuQWZ0ZXJS
ZXNvdXJjZXNBcmVGaW5pc2hlZCA9IGZ1bmN0aW9uKHJlc291cmNlVVJMcywgY2FsbGJhY2spCi17
Ci0gICAgdmFyIHJlc291cmNlVVJMc01hcCA9IHJlc291cmNlVVJMcy5rZXlTZXQoKTsKLQotICAg
IGZ1bmN0aW9uIGNoZWNrUmVzb3VyY2VzKCkKLSAgICB7Ci0gICAgICAgIGZvciAodXJsIGluIHJl
c291cmNlVVJMc01hcCkgewotICAgICAgICAgICAgdmFyIHJlc291cmNlID0gSW5zcGVjdG9yVGVz
dC5yZXNvdXJjZU1hdGNoaW5nVVJMKHVybCk7Ci0gICAgICAgICAgICBpZiAocmVzb3VyY2UpCi0g
ICAgICAgICAgICAgICAgZGVsZXRlIHJlc291cmNlVVJMc01hcFt1cmxdOwotICAgICAgICB9Ci0g
ICAgICAgIGlmICghT2JqZWN0LmtleXMocmVzb3VyY2VVUkxzTWFwKS5sZW5ndGgpIHsKLSAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQs
IGNoZWNrUmVzb3VyY2VzKTsKLSAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgY2hlY2tSZXNvdXJjZXMoKTsKLSAgICBpZiAoT2JqZWN0LmtleXMocmVzb3VyY2VV
UkxzTWFwKS5sZW5ndGgpCi0gICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVz
LlJlc291cmNlQWRkZWQsIGNoZWNrUmVzb3VyY2VzKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5zaG93
UmVzb3VyY2UgPSBmdW5jdGlvbihyZXNvdXJjZVVSTCwgY2FsbGJhY2spCi17Ci0gICAgdmFyIHJl
cG9ydGVkID0gZmFsc2U7Ci0gICAgZnVuY3Rpb24gY2FsbGJhY2tXcmFwcGVyKHNvdXJjZUZyYW1l
KQotICAgIHsKLSAgICAgICAgaWYgKHJlcG9ydGVkKQotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICBjYWxsYmFjayhzb3VyY2VGcmFtZSk7Ci0gICAgICAgIHJlcG9ydGVkID0gdHJ1ZTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBzaG93UmVzb3VyY2VDYWxsYmFjaygpCi0gICAgewotICAgICAg
ICB2YXIgcmVzb3VyY2UgPSBJbnNwZWN0b3JUZXN0LnJlc291cmNlTWF0Y2hpbmdVUkwocmVzb3Vy
Y2VVUkwpOwotICAgICAgICBpZiAoIXJlc291cmNlKQotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5zaG93UmVzb3VyY2UocmVzb3VyY2Us
IDEpOwotICAgICAgICB2YXIgc291cmNlRnJhbWUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291
cmNlcy5fcmVzb3VyY2VWaWV3Rm9yUmVzb3VyY2UocmVzb3VyY2UpOwotICAgICAgICBpZiAoc291
cmNlRnJhbWUubG9hZGVkKQotICAgICAgICAgICAgY2FsbGJhY2tXcmFwcGVyKHNvdXJjZUZyYW1l
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKHNv
dXJjZUZyYW1lLCAib25UZXh0RWRpdG9yQ29udGVudExvYWRlZCIsIGNhbGxiYWNrV3JhcHBlci5i
aW5kKG51bGwsIHNvdXJjZUZyYW1lKSk7Ci0gICAgfQotICAgIEluc3BlY3RvclRlc3QucnVuQWZ0
ZXJSZXNvdXJjZXNBcmVGaW5pc2hlZChbcmVzb3VyY2VVUkxdLCBzaG93UmVzb3VyY2VDYWxsYmFj
ayk7Ci19Ci0KLUluc3BlY3RvclRlc3QucmVzb3VyY2VNYXRjaGluZ1VSTCA9IGZ1bmN0aW9uKHJl
c291cmNlVVJMKQotewotICAgIHZhciByZXN1bHQgPSBudWxsOwotICAgIFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVRyZWVNb2RlbC5mb3JBbGxSZXNvdXJjZXModmlzaXQpOwotICAgIGZ1bmN0aW9uIHZp
c2l0KHJlc291cmNlKQotICAgIHsKLSAgICAgICAgaWYgKHJlc291cmNlLnVybC5pbmRleE9mKHJl
c291cmNlVVJMKSAhPT0gLTEpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHJlc291cmNlOwotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2NvbXBpbGVkLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2NvbXBpbGVkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZmJi
ZGI5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9jb21waWxlZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiYnV0dG9uIik7YS5pZD0idGVzdCI7YS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsaGFu
ZGxlQ2xpY2ssITApO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7YT1kb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTthLmlkPSJiYXJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnIiOwotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKX0pO2Z1bmN0
aW9uIGhhbmRsZUNsaWNrKGEpeyhuZXcgQ2xpY2tIYW5kbGVyKS5oYW5kbGUoYSl9O2Z1bmN0aW9u
IENsaWNrSGFuZGxlcigpe31DbGlja0hhbmRsZXIucHJvdG90eXBlLmhhbmRsZT1mdW5jdGlvbigp
e2NvbnNvbGUubG9nKCJidXR0b24gY2xpY2tlZCEiKX07Ci0vL0Agc291cmNlTWFwcGluZ1VSTD1z
b3VyY2UtbWFwLmpzb24gIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2NvbnNvbGUtY2QtY29tcGxldGlvbnMtaWZyYW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY29uc29sZS1jZC1jb21wbGV0
aW9ucy1pZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTIzZjM0MC4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
Y29uc29sZS1jZC1jb21wbGV0aW9ucy1pZnJhbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQg
KzAsMCBAQAotPHNjcmlwdD4KLXZhciBteUdsb2JhbFZhciA9IDIwMTE7Ci1mdW5jdGlvbiBteUds
b2JhbEZ1bmN0aW9uKCkgeyB9Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9jb25zb2xlLWNkLWlmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvbnNvbGUtY2QtaWZyYW1l
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlYzFiYzMuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvbnNvbGUtY2Qt
aWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLTxzY3JpcHQ+Ci12YXIg
Zm9vID0gMjAxMTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLWlmcmFtZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvbnNvbGUtcmVz
b3VyY2UtZXJyb3JzLWlmcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
NzMxNzJiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9jb25zb2xlLXJlc291cmNlLWVycm9ycy1pZnJhbWUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDEwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQi
IHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9taXNzaW5nLmNzcyI+Ci08c2NyaXB0IHNyYz0iLi4v
bm9uLWV4aXN0ZW50LXNjcmlwdC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotPGlm
cmFtZSBzcmM9Ii4uL25vbi1leGlzdGVudC1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvY29ycy10YXJnZXQucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL2NvcnMtdGFyZ2V0LnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5k
ZXggZDc4NGJhZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhwCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBA
QAotPD9waHAKLSAgICBwYXJzZV9zdHIoJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddLCAkcXVlcnlQ
YXJhbXMpOwotICAgIGlmICgkcXVlcnlQYXJhbXNbImRlbnkiXSAhPSAieWVzIikgewotICAgICAg
ICBoZWFkZXIoIkFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbjogaHR0cDovLzEyNy4wLjAuMTo4
MDAwIik7Ci0gICAgICAgIGhlYWRlcigiQWNjZXNzLWNvbnRyb2wtYWxsb3ctaGVhZGVyczogQ29u
dGVudC1UeXBlIik7Ci0gICAgfQotICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu
Iik7Ci0KLSAgICBwcmludCAiYm9keSIKLT8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJh
bWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDUwYjk2YS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3Jp
Z2luLWlmcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPC9oZWFkPgotPGJvZHk+Ci0gIDxwPkNyb3NzIG9yaWdpbiBmcmFtZS48cD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9lY2hvLWhlYWRlcnMucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2VjaG8taGVhZGVycy5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IGFlNjk1OTcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2VjaG8taGVhZGVycy5waHAKKysrIC9kZXYvbnVsbApAQCAtMSw5ICsw
LDAgQEAKLTw/cGhwCi0KLSRoZWFkZXJzID0gQXJyYXkoJ0hUVFBfWF9XRUJJTlNQRUNUT1JfRVhU
RU5TSU9OJywgJ0hUVFBfVVNFUl9BR0VOVCcpOwotCi1mb3JlYWNoICgkaGVhZGVycyBhcyAkaGVh
ZGVyKSB7Ci0gICAgZWNobyAkaGVhZGVyIC4gIjogIiAuICRfU0VSVkVSWyRoZWFkZXJdIC4gIlxu
IjsKLX0KLQotPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9lbXB0eS56aXAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvZW1wdHkuemlwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNWNiMGVj
Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9lbXB0eS56aXAgYW5kIC9kZXYvbnVsbCBkaWZmZXIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leGFtcGxlLmNzcy5tYXAg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvZXhhbXBsZS5jc3Mu
bWFwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzMzZDk0Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leGFtcGxlLmNzcy5t
YXAKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLXsKLSJ2ZXJzaW9uIjogIjMiLAotIm1h
cHBpbmdzIjogIjtBQUNBLENBQUU7RUFDQSxHQUFHLEVBQUUsR0FBRzs7RUFFUixTQUFTLEVBQUUs
SUFBSSIsCi0ic291cmNlcyI6IFsiZXhhbXBsZS5zY3NzIl0sCi0iZmlsZSI6ICJleGFtcGxlLmNz
cyIKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9leGFtcGxlLnNjc3MgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvZXhhbXBsZS5zY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDY3YzVi
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9leGFtcGxlLnNjc3MKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLS8qIENvbW1lbnQg
Ki8KLWEgewotICBmb286IGJhcjsKLS8qIFNPTUUgQ09NTUVOVCAqLwotICBmb250LXNpemU6IDEy
cHg7Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9leHRlbnNpb24tbWFpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2V4dGVuc2lvbi1tYWluLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDRjOTg2MjEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2VzL2V4dGVuc2lvbi1tYWluLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iZXh0ZW5zaW9uLW1haW4u
anMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotb3V0cHV0KCJT
dGFydGVkIGV4dGVuc2lvbi4iKTsKLWZldGNoVGVzdHMoKTsKLTwvc2NyaXB0PgotPC9oZWFkPgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL2V4dGVuc2lvbi1tYWluLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL2V4dGVuc2lvbi1tYWluLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxM2U3MmQ5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMCAr
MCwwIEBACi1mdW5jdGlvbiB0cmltVVJMKHVybCkKLXsKLSAgICBpZiAoIXVybCkKLSAgICAgICAg
cmV0dXJuOwotICAgIGlmICgvXmRhdGE6Ly50ZXN0KHVybCkpCi0gICAgICAgIHJldHVybiB1cmwu
cmVwbGFjZSgvLC4qJC8sICIuLi4iKTsKLSAgICByZXR1cm4gdXJsLnJlcGxhY2UoLy4qXC8vLCAi
Li4uLyIpOwotfQotCi1mdW5jdGlvbiBkdW1wT2JqZWN0KG9iamVjdCwgbm9uZGV0ZXJtaW5pc3Rp
Y1Byb3BzLCBwcmVmaXgsIGZpcnN0TGluZVByZWZpeCkKLXsKLSAgICBwcmVmaXggPSBwcmVmaXgg
fHwgIiI7Ci0gICAgZmlyc3RMaW5lUHJlZml4ID0gZmlyc3RMaW5lUHJlZml4IHx8IHByZWZpeDsK
LSAgICBvdXRwdXQoZmlyc3RMaW5lUHJlZml4ICsgInsiKTsKLSAgICB2YXIgcHJvcGVydHlOYW1l
cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7Ci0gICAgcHJvcGVydHlOYW1lcy5zb3J0KCk7Ci0gICAg
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0eU5hbWVzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgIHZhciBwcm9wID0gcHJvcGVydHlOYW1lc1tpXTsKLSAgICAgICAgdmFyIHByZWZpeFdp
dGhOYW1lID0gcHJlZml4ICsgIiAgICAiICsgcHJvcCArICIgOiAiOwotICAgICAgICB2YXIgcHJv
cFZhbHVlID0gb2JqZWN0W3Byb3BdOwotICAgICAgICBpZiAobm9uZGV0ZXJtaW5pc3RpY1Byb3Bz
ICYmIHByb3AgaW4gbm9uZGV0ZXJtaW5pc3RpY1Byb3BzKSB7Ci0gICAgICAgICAgICB2YXIgdmFs
dWUgPSBub25kZXRlcm1pbmlzdGljUHJvcHNbcHJvcF0gPT09ICJ1cmwiID8gdHJpbVVSTChwcm9w
VmFsdWUpIDogIjwiICsgdHlwZW9mIHByb3BWYWx1ZSArICI+IjsKLSAgICAgICAgICAgIG91dHB1
dChwcmVmaXhXaXRoTmFtZSArIHZhbHVlKTsKLSAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcHJv
cFZhbHVlID09PSAib2JqZWN0IiAmJiBwcm9wVmFsdWUgIT0gbnVsbCkKLSAgICAgICAgICAgIGR1
bXBPYmplY3QocHJvcFZhbHVlLCBub25kZXRlcm1pbmlzdGljUHJvcHMsIHByZWZpeCArICIgICAg
IiwgcHJlZml4V2l0aE5hbWUpOwotICAgICAgICBlbHNlIGlmICh0eXBlb2YgcHJvcFZhbHVlID09
PSAic3RyaW5nIikKLSAgICAgICAgICAgIG91dHB1dChwcmVmaXhXaXRoTmFtZSArICJcIiIgKyBw
cm9wVmFsdWUgKyAiXCIiKTsKLSAgICAgICAgZWxzZSBpZiAodHlwZW9mIHByb3BWYWx1ZSA9PT0g
ImZ1bmN0aW9uIikKLSAgICAgICAgICAgIG91dHB1dChwcmVmaXhXaXRoTmFtZSArICI8ZnVuY3Rp
b24+Iik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG91dHB1dChwcmVmaXhXaXRoTmFtZSAr
IHByb3BWYWx1ZSk7Ci0gICAgfQotICAgIG91dHB1dChwcmVmaXggKyAifSIpOwotfQotCi1mdW5j
dGlvbiBkdW1wQXJyYXkocmVzdWx0KQotewotICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBBcnJh
eSkgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7ICsraSkKLSAg
ICAgICAgICAgIG91dHB1dChyZXN1bHRbaV0pOwotICAgIH0gZWxzZQotICAgICAgICBvdXRwdXQo
cmVzdWx0KTsKLX0KLQotZnVuY3Rpb24gZXZhbHVhdGVPbkZyb250ZW5kKGV4cHJlc3Npb24sIGNh
bGxiYWNrKQotewotICAgIHdpbmRvdy5fZXh0ZW5zaW9uU2VydmVyRm9yVGVzdHMuc2VuZFJlcXVl
c3QoeyBjb21tYW5kOiAiZXZhbHVhdGVGb3JUZXN0SW5Gcm9udEVuZCIsIGV4cHJlc3Npb246IGV4
cHJlc3Npb24gfSwgY2FsbGJhY2spOwotfQotCi1mdW5jdGlvbiBvdXRwdXQobWVzc2FnZSkKLXsK
LSAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIkluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHVuZXNjYXBl
KCciICsgZXNjYXBlKG1lc3NhZ2UpICsgIicpKTsiKTsKLX0KLQotZnVuY3Rpb24gb25FcnJvcihl
dmVudCkKLXsKLSAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBvbkVycm9y
KTsKLSAgICBvdXRwdXQoIlVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiBleHRlbnNpb24gY29udGV4dDog
IiArIGV2ZW50Lm1lc3NhZ2UgKyAiIFsiICsgZXZlbnQuZmlsZW5hbWUgKyAiOiIgKyBldmVudC5s
aW5lbm8gKyAiXSIpOwotICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsiKTsKLX0KLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgb25F
cnJvcik7Ci0KLWZ1bmN0aW9uIGZldGNoVGVzdHMoKQotewotICAgIGZ1bmN0aW9uIGNhbGxiYWNr
KHJlc3VsdCkKLSAgICB7Ci0gICAgICAgICB3aW5kb3cuZXZhbChyZXN1bHQpOwotICAgICAgICAg
cnVuVGVzdHMoKTsKLSAgICB9Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFs
KCJleHRlbnNpb25GdW5jdGlvbnMoKSIsIGNhbGxiYWNrKTsKLX0KLQotZnVuY3Rpb24gcnVuVGVz
dHMoKQotewotICAgIG91dHB1dCgiUnVubmluZyB0ZXN0cy4uLiIpOwotICAgIHZhciB0ZXN0cyA9
IFtdOwotICAgIGZvciAodmFyIHN5bWJvbCBpbiB0aGlzKSB7Ci0gICAgICAgIGlmICgvXmV4dGVu
c2lvbl90ZXN0Ly50ZXN0KHN5bWJvbCkgJiYgdHlwZW9mIHRoaXNbc3ltYm9sXSA9PT0gImZ1bmN0
aW9uIikKLSAgICAgICAgICAgIHRlc3RzLnB1c2goc3ltYm9sKTsKLSAgICB9Ci0gICAgdGVzdHMg
PSB0ZXN0cy5zb3J0KCk7Ci0gICAgdmFyIHRlc3RDaGFpbiA9IG9uVGVzdHNEb25lOwotICAgIGZv
ciAodmFyIHRlc3QgPSB0ZXN0cy5wb3AoKTsgdGVzdDsgdGVzdCA9IHRlc3RzLnBvcCgpKQotICAg
ICAgICB0ZXN0Q2hhaW4gPSBiaW5kKHJ1blRlc3QsIHRoaXMsIGJpbmQodGhpc1t0ZXN0XSwgdGhp
cywgdGVzdENoYWluKSwgdGVzdCk7Ci0gICAgdGVzdENoYWluKCk7Ci19Ci0KLWZ1bmN0aW9uIG9u
VGVzdHNEb25lKCkKLXsKLSAgICBvdXRwdXQoIkFsbCB0ZXN0cyBkb25lLiIpOwotICAgIGV2YWx1
YXRlT25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsiKTsKLX0KLQotZnVu
Y3Rpb24gcnVuVGVzdCh0ZXN0LCBuYW1lKQotewotICAgIG91dHB1dCgiUlVOTklORyBURVNUOiAi
ICsgbmFtZSk7Ci0gICAgdHJ5IHsKLSAgICAgICAgdGVzdCgpOwotICAgIH0gY2F0Y2ggKGUpIHsK
LSAgICAgICAgb3V0cHV0KG5hbWUgKyAiOiAiICsgZSk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBj
YWxsYmFja0FuZE5leHRUZXN0KGNhbGxiYWNrLCBuZXh0VGVzdCkKLXsKLSAgICBmdW5jdGlvbiBj
YWxsYmFja1dyYXBwZXIoKQotICAgIHsKLSAgICAgICAgY2FsbGJhY2suYXBwbHkodGhpcywgYXJn
dW1lbnRzKTsKLSAgICAgICAgbmV4dFRlc3QuY2FsbCh0aGlzKTsKLSAgICB9Ci0gICAgcmV0dXJu
IGNhbGxiYWNrV3JhcHBlcjsKLX0KLQotZnVuY3Rpb24gYmluZChmdW5jLCB0aGlzT2JqZWN0KQot
ewotICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAy
KTsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiBmdW5jLmFwcGx5KHRoaXNPYmplY3Qs
IGFyZ3MuY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCkpKTsg
fTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9leHRlbnNpb24tcGFuZWwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9leHRlbnNpb24tcGFuZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDE5NGVhMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvZXh0ZW5zaW9uLXBhbmVsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iZXh0ZW5zaW9uLW1haW4u
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvZXh0ZW5zaW9u
LXNpZGViYXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9leHRlbnNpb24tc2lkZWJhci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
MDUzMWE0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9leHRlbnNpb24tc2lkZWJhci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCww
IEBACi08aHRtbD4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb25zLWZyYW1lLWV2YWwuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb25zLWZyYW1lLWV2YWwu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTAzMjcxYy4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy1m
cmFtZS1ldmFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTxodG1sPgotPHNj
cmlwdD4KLS8vIFNvbWUgSlMgdG8gY3JlYXRlIGEgY29udGV4dAotd2luZG93LmlBbUFuSUZyYW1l
ID0gdHJ1ZTsKLTwvc2NyaXB0PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9o
YXItcGFnZXMtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvaGFyLXBhZ2VzLWlmcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmMzYyYTg1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9oYXItcGFnZXMtaWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgotZnVuY3Rpb24gcmVkaXJlY3RCYWNrKCkKLXsKLSAgICB0b3AubG9jYXRpb24uaHJlZiA9ICIv
aW5zcGVjdG9yL3Jlc291cmNlLWhhci1wYWdlcy5odG1sIjsKLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJyZWRpcmVjdEJhY2soKSI+Ci08c2NyaXB0IHNyYz0ic291cmNlMS5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaGFyLXBhZ2VzLW5hdmlnYXRpb24tdGFyZ2V0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaGFyLXBh
Z2VzLW5hdmlnYXRpb24tdGFyZ2V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDFkYWJjNzcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2hhci1wYWdlcy1uYXZpZ2F0aW9uLXRhcmdldC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNSArMCwwIEBACi08aHRtbD4KLTxib2R5PgotPGlmcmFtZSBzcmM9Imhhci1wYWdlcy1p
ZnJhbWUuaHRtbCI+PC9pZnJhbWU+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaWZyYW1lLWZyb20tZGlmZmVy
ZW50LWRvbWFpbi1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvaWZyYW1lLWZyb20tZGlmZmVyZW50LWRvbWFpbi1kYXRhLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5NDA5ZTIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2lmcmFtZS1mcm9tLWRpZmZlcmVudC1kb21h
aW4tZGF0YS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBvbmxvYWQoKQotewotICAgIGNvbnNvbGUubG9nKCJJRlJB
TUUgSE9TVDogIiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgaWQ9ImlmcmFtZS1ib2R5IiBzdHlsZT0iYmFja2dyb3VuZDpncmVlbjsiIG9ubG9h
ZD0ib25sb2FkKCkiPgotSW5zcGVjdCBtZS4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0LWVsZW1l
bnQtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvaW5zcGVjdC1lbGVtZW50LWlmcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyZGZiNTQxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9pbnNwZWN0LWVsZW1lbnQtaWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxMSArMCwwIEBACi08aHRtbD4KLQotPGJvZHk+Ci08ZGl2IGlkPSJkaXYiPkVsZW1lbnQg
dG8gaW5zcGVjdDwvZGl2PgotPC9ib2R5PgotCi08c2NyaXB0PgotdG9wLmlmcmFtZURpdkVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Iik7Ci08L3NjcmlwdD4KLQotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3Bvc3QtdGFyZ2V0LmNnaSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9wb3N0LXRhcmdldC5jZ2kKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDZiOTY1
YjYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3Bvc3QtdGFyZ2V0LmNnaQorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotIyEvdXNy
L2Jpbi9wZXJsIC13VA0KLQ0KLXByaW50ICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3htbFxu
XG4iOw0KLXByaW50ICI8eG1sPjQyPC94bWw+XG4iOw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9yZXNvdXJjZS1mb3JtLWRhdGEtcmVjZWl2
ZXItaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvcmVzb3VyY2UtZm9ybS1kYXRhLXJlY2VpdmVyLWlmcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ODc5ZTFjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9yZXNvdXJjZS1mb3JtLWRhdGEtcmVjZWl2ZXItaWZy
YW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLTxodG1sPgotPGJvZHk+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvc291cmNlLW1hcC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2VzL3NvdXJjZS1tYXAuanNvbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNjNiN2ZlZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvc291cmNlLW1hcC5qc29uCisrKyAvZGV2L251bGwKQEAgLTEsOSAr
MCwwIEBACi17Ci0idmVyc2lvbiI6MywKLSJmaWxlIjoiY29tcGlsZWQuanMiLAotInNvdXJjZVJv
b3QiOiAiIiwKLSJsaW5lQ291bnQiOjIsCi0ibWFwcGluZ3MiOiJBQUNBQSxNQUFBQyxpQkFBdUIs
Q0FBQyxNQUFELENBQVMsUUFBUSxFQUN4QyxDQUNJLElBQUlDLEVBQVNDLFFBQUFDLGNBQXNCLENB
QUMsUUFBRCxDQUNuQ0YsRUFBQUcsR0FBQSxDQUFZLE1BQ1pILEVBQUFELGlCQUF1QixDQUFDLE9B
QUQsQ0FBVUssV0FBVixDQUF1QixDQUFBLENBQXZCLENBQ3ZCSCxTQUFBSSxLQUFBQyxZQUF5QixD
QUFDTixDQUFELENBRXJCTyxFQUFBQSxDQUFNTixRQUFBQyxjQUFzQixDQUFDLEtBQUQsQ0FDaENL
LEVBQUFKLEdBQUEsQ0FBUyxvY0FDVEY7UUFBQUksS0FBQUMsWUFBeUIsQ0FBQ0MsQ0FBRCxDQVI3
QixDQUR1QixDQVl2QkgsU0FBU0EsWUFBVyxDQUFDSSxDQUFELENBQ3BCLENBRUlDLENBRDhCQyxJ
QUFaQyxZQUNsQkYsUUFBYyxDQUFDRCxDQUFELENBRmxCLEMsQ0NiQUcsUUFBU0EsYUFBWSxFQUNy
QixFQUdBQSxZQUFBQyxVQUFBSCxPQUFBLENBQWdDSSxRQUFRLEVBQ3hDLENBQ0lDLE9BQUFDLElB
QVcsQ0FBQyxpQkFBRCxDQURmLEM7IiwKLSJzb3VyY2VzIjpbInNvdXJjZTEuanMiLCJzb3VyY2Uy
LmpzIl0sCi0ibmFtZXMiOlsid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsImJ1dHRvbiIsImRv
Y3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImlkIiwiaGFuZGxlQ2xpY2siLCJib2R5IiwiYXBwZW5k
Q2hpbGQiLCJiYXIiLCJldmVudCIsImhhbmRsZSIsImhhbmRsZXIiLCJDbGlja0hhbmRsZXIiLCJw
cm90b3R5cGUiLCJDbGlja0hhbmRsZXIucHJvdG90eXBlLmhhbmRsZSIsImNvbnNvbGUiLCJsb2ci
XQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3NvdXJjZTEuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvc291cmNlMS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY1MzZjNy4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc291
cmNlMS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLXdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKQotewotICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdidXR0b24nKTsKLSAgICBidXR0b24uaWQgPSAndGVzdCc7Ci0gICAgYnV0
dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2ssIHRydWUpOwotICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYnV0dG9uKTsKLQotICAgIHZhciBiYXIgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBiYXIuaWQgPSAnYmFycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJy
cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyJzsKLSAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGJhcik7Ci19KTsKLQotZnVuY3Rpb24gaGFuZGxlQ2xpY2soZXZlbnQpCi17Ci0g
ICAgdmFyIGhhbmRsZXIgPSBuZXcgQ2xpY2tIYW5kbGVyKCk7Ci0gICAgaGFuZGxlci5oYW5kbGUo
ZXZlbnQpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL3NvdXJjZTIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvc291cmNlMi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzBhZTRh
Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvc291cmNlMi5qcworKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotZnVuY3Rpb24gQ2xp
Y2tIYW5kbGVyKCkKLXsKLX0KLQotQ2xpY2tIYW5kbGVyLnByb3RvdHlwZS5oYW5kbGUgPSBmdW5j
dGlvbihldmVudCkKLXsKLSAgICBjb25zb2xlLmxvZygnYnV0dG9uIGNsaWNrZWQhJyk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvdGVz
dC1zY2FubmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvdGVzdC1zY2FubmVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0MTcy
MjguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3Rlc3Qtc2Nhbm5lci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotPGh0
bWw+Ci08c2NyaXB0PgotdmFyIHRlc3RzID0gW107Ci0KLXNjYW5Gb2xkZXIoImluc3BlY3Rvci9j
b25zb2xlIik7Ci0vLyBzY2FuRm9sZGVyKCJpbnNwZWN0b3IvZGVidWdnZXIiKTsKLXNjYW5Gb2xk
ZXIoImluc3BlY3Rvci9lZGl0b3IiKTsKLXNjYW5Gb2xkZXIoImluc3BlY3Rvci9lbGVtZW50cyIp
Owotc2NhbkZvbGRlcigiaW5zcGVjdG9yL3Byb2ZpbGVyIik7Ci1zY2FuRm9sZGVyKCJpbnNwZWN0
b3Ivc3R5bGVzIik7Ci1zY2FuRm9sZGVyKCJpbnNwZWN0b3IvdGltZWxpbmUiKTsKLXNjYW5Gb2xk
ZXIoImluc3BlY3RvciIpOwotCi1mdW5jdGlvbiBzY2FuRm9sZGVyKGZvbGRlcikKLXsKLSAgICB2
YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgeGhyLm9wZW4oIkdFVCIsICIvTGF5
b3V0VGVzdHMvIiArIGZvbGRlciArICIvIiwgZmFsc2UpOwotICAgIHhoci5zZW5kKG51bGwpOwot
ICAgIHZhciB0ZXh0ID0geGhyLnJlc3BvbnNlVGV4dDsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdGV4dDsK
LSAgICB2YXIgbGlua3MgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImEiKTsKLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGxpbmtzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBsaW5rID0g
bGlua3NbaV0uaHJlZjsKLSAgICAgICAgdmFyIG1hdGNoID0gbGluay5tYXRjaCgvW15cL10qXC8o
W15cL10rXC5odG1sKSQvKTsKLSAgICAgICAgaWYgKCFtYXRjaCkKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICB2YXIgcGF0aCA9ICIvTGF5b3V0VGVzdHMvIiArIGZvbGRlciArICIvIiAr
IG1hdGNoWzFdOwotICAgICAgICB2YXIgZXhwZWN0ZWQgPSBmZXRjaEV4cGVjdGF0aW9ucyhwYXRo
KTsKLSAgICAgICAgdGVzdHMucHVzaChbcGF0aCwgZXhwZWN0ZWRdKTsKLSAgICB9Ci19Ci0KLWZ1
bmN0aW9uIGZldGNoRXhwZWN0YXRpb25zKHBhdGgpCi17Ci0gICAgdmFyIGV4dCA9IHBhdGgubGFz
dEluZGV4T2YoIi4iKTsKLSAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMCwgZXh0KSArICItZXhw
ZWN0ZWQudHh0IjsKLSAgICB2YXIgY2hyb21pdW1QYXRoID0gcGF0aC5yZXBsYWNlKCIvTGF5b3V0
VGVzdHMvIiwgIi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS8iKTsKLQotICAgIHZhciBl
eHBlY3RhdGlvbnMgPSBmZXRjaChjaHJvbWl1bVBhdGgpIHx8IGZldGNoKHBhdGgpIHx8ICIiOwot
Ci0gICAgdmFyIGV4cGVjdGF0aW9uTGluZXMgPSBleHBlY3RhdGlvbnMuc3BsaXQoIlxuIik7Ci0g
ICAgdmFyIGZpbHRlcmVkID0gW107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RhdGlv
bkxpbmVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlmICghZXhwZWN0YXRpb25MaW5lc1tpXS5p
bmRleE9mKCJBTEVSVDogIikgfHwKLSAgICAgICAgICAgICFleHBlY3RhdGlvbkxpbmVzW2ldLmlu
ZGV4T2YoIkNPTlNPTEUgTUVTU0FHRTogIikpIHsKLSAgICAgICAgICAgIGZpbHRlcmVkID0gW107
Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBmaWx0ZXJlZC5wdXNo
KGV4cGVjdGF0aW9uTGluZXNbaV0pOwotICAgIH0KLSAgICByZXR1cm4gZmlsdGVyZWQuam9pbigi
XG4iKTsKLX0KLQotZnVuY3Rpb24gZmV0Y2gocGF0aCkKLXsKLSAgICB2YXIgeGhyID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7Ci0gICAgeGhyLm9wZW4oIkdFVCIsIHBhdGgsIGZhbHNlKTsKLSAgICB4
aHIuc2VuZChudWxsKTsKLSAgICByZXR1cm4geGhyLnN0YXR1cyAhPT0gNDA0ID8geGhyLnJlc3Bv
bnNlVGV4dCA6ICIiOwotfQotCi13aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKFsidGVzdHMiLCB0
ZXN0c10sICIqIik7Ci0KLTwvc2NyaXB0PgotPGJvZHk+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4
aXN0cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3ho
ci1leGlzdHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODYzMWFlYS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMveGhy
LWV4aXN0cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotPHA+RXhpc3RpbmcgRmls
ZTwvcD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJj
aC9yZXNvdXJjZXMtc2VhcmNoLW1hdGNoLWluZGV4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMtc2VhcmNoLW1hdGNoLWluZGV4
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGY0MTQ5MS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvcmVzb3Vy
Y2VzLXNlYXJjaC1tYXRjaC1pbmRleC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
MjAgKzAsMCBAQAotVGVzdHMgc2VhcmNoIG1hdGNoIGluZGV4IGNhbGN1bGF0aW9uIGluIHJlc291
cmNlcyBwYW5lbC4KLQotQnVnIDY2MDUwCi0KLVJ1bm5pbmc6IHRlc3QxCi1SdW5uaW5nIHRlc3Qg
Zm9yIG1hdGNoZXMgY291bnRzOiBbMV0KLUVsZW1lbnQgaW5kZXg6IDEsIGluZGV4OiAwLCBtYXRj
aCBpbmRleDogMS4KLUVsZW1lbnQgaW5kZXg6IDEsIGluZGV4OiAwLCBtYXRjaCBpbmRleDogMS4K
LUVsZW1lbnQgaW5kZXg6IDEsIGluZGV4OiAwLCBtYXRjaCBpbmRleDogMS4KLUVsZW1lbnQgaW5k
ZXg6IDEsIGluZGV4OiAwLCBtYXRjaCBpbmRleDogMS4KLUVsZW1lbnQgaW5kZXg6IDEsIGluZGV4
OiAwLCBtYXRjaCBpbmRleDogMS4KLUVsZW1lbnQgaW5kZXg6IDEsIGluZGV4OiAwLCBtYXRjaCBp
bmRleDogMS4KLQotCi1SdW5uaW5nOiB0ZXN0MgotUnVubmluZyB0ZXN0IGZvciBtYXRjaGVzIGNv
dW50czogWzEsMiwzXQotRWxlbWVudCBpbmRleDogMSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAx
LgotRWxlbWVudCBpbmRleDogMiwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAyLgotRWxlbWVudCBp
bmRleDogMiwgaW5kZXg6IDEsIG1hdGNoIGluZGV4OiAzLgotRWxlbWVudCBpbmRleDogMywgaW5k
ZXg6IDAsIG1hdGNoIGluZGV4OiA0LgotRWxlbWVudCBpbmRleDogMywgaW5kZXg6IDEsIG1hdGNo
IGluZGV4OiA1LgotRWxlbWVudCBpbmRleDogMywgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2Lgot
RWxlbWVudCBpbmRleDogMSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRl
eDogMywgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2LgotRWxlbWVudCBpbmRleDogMywgaW5kZXg6
IDEsIG1hdGNoIGluZGV4OiA1LgotRWxlbWVudCBpbmRleDogMywgaW5kZXg6IDAsIG1hdGNoIGlu
ZGV4OiA0LgotRWxlbWVudCBpbmRleDogMiwgaW5kZXg6IDEsIG1hdGNoIGluZGV4OiAzLgotRWxl
bWVudCBpbmRleDogMiwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAyLgotRWxlbWVudCBpbmRleDog
MSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogMywgaW5kZXg6IDIs
IG1hdGNoIGluZGV4OiA2LgotRWxlbWVudCBpbmRleDogMSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4
OiAxLgotRWxlbWVudCBpbmRleDogMywgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2LgotCi0KLVJ1
bm5pbmc6IHRlc3QzCi1SdW5uaW5nIHRlc3QgZm9yIG1hdGNoZXMgY291bnRzOiBbMSwwLDIsMCwz
XQotRWxlbWVudCBpbmRleDogMSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBp
bmRleDogMywgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAyLgotRWxlbWVudCBpbmRleDogMywgaW5k
ZXg6IDEsIG1hdGNoIGluZGV4OiAzLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNo
IGluZGV4OiA0LgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDEsIG1hdGNoIGluZGV4OiA1Lgot
RWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2LgotRWxlbWVudCBpbmRl
eDogMSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6
IDIsIG1hdGNoIGluZGV4OiA2LgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDEsIG1hdGNoIGlu
ZGV4OiA1LgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiA0LgotRWxl
bWVudCBpbmRleDogMywgaW5kZXg6IDEsIG1hdGNoIGluZGV4OiAzLgotRWxlbWVudCBpbmRleDog
MywgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAyLgotRWxlbWVudCBpbmRleDogMSwgaW5kZXg6IDAs
IG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDIsIG1hdGNoIGluZGV4
OiA2LgotRWxlbWVudCBpbmRleDogMSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVu
dCBpbmRleDogNSwgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2LgotRWxlbWVudCBpbmRleDogMywg
aW5kZXg6IDAsIG1hdGNoIGluZGV4OiAyLgotRWxlbWVudCBpbmRleDogMSwgaW5kZXg6IDAsIG1h
dGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiA0
LgotRWxlbWVudCBpbmRleDogMywgaW5kZXg6IDEsIG1hdGNoIGluZGV4OiAzLgotCi0KLVJ1bm5p
bmc6IHRlc3Q0Ci1SdW5uaW5nIHRlc3QgZm9yIG1hdGNoZXMgY291bnRzOiBbMCwwLDAsMywwLDAs
MCwzLDAsMCwwXQotRWxlbWVudCBpbmRleDogNCwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgot
RWxlbWVudCBpbmRleDogNCwgaW5kZXg6IDEsIG1hdGNoIGluZGV4OiAyLgotRWxlbWVudCBpbmRl
eDogNCwgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiAzLgotRWxlbWVudCBpbmRleDogOCwgaW5kZXg6
IDAsIG1hdGNoIGluZGV4OiA0LgotRWxlbWVudCBpbmRleDogOCwgaW5kZXg6IDEsIG1hdGNoIGlu
ZGV4OiA1LgotRWxlbWVudCBpbmRleDogOCwgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2LgotRWxl
bWVudCBpbmRleDogNCwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDog
OCwgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2LgotRWxlbWVudCBpbmRleDogOCwgaW5kZXg6IDEs
IG1hdGNoIGluZGV4OiA1LgotRWxlbWVudCBpbmRleDogOCwgaW5kZXg6IDAsIG1hdGNoIGluZGV4
OiA0LgotRWxlbWVudCBpbmRleDogNCwgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiAzLgotRWxlbWVu
dCBpbmRleDogNCwgaW5kZXg6IDEsIG1hdGNoIGluZGV4OiAyLgotRWxlbWVudCBpbmRleDogNCwg
aW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogOCwgaW5kZXg6IDIsIG1h
dGNoIGluZGV4OiA2LgotRWxlbWVudCBpbmRleDogNCwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAx
LgotRWxlbWVudCBpbmRleDogOCwgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2LgotRWxlbWVudCBp
bmRleDogNCwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogOCwgaW5k
ZXg6IDIsIG1hdGNoIGluZGV4OiA2LgotRWxlbWVudCBpbmRleDogNCwgaW5kZXg6IDAsIG1hdGNo
IGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogOCwgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2Lgot
RWxlbWVudCBpbmRleDogNCwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRl
eDogOCwgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2LgotRWxlbWVudCBpbmRleDogOCwgaW5kZXg6
IDAsIG1hdGNoIGluZGV4OiA0LgotRWxlbWVudCBpbmRleDogNCwgaW5kZXg6IDIsIG1hdGNoIGlu
ZGV4OiAzLgotRWxlbWVudCBpbmRleDogOCwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiA0LgotRWxl
bWVudCBpbmRleDogNCwgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiAzLgotRWxlbWVudCBpbmRleDog
OCwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiA0LgotRWxlbWVudCBpbmRleDogNCwgaW5kZXg6IDIs
IG1hdGNoIGluZGV4OiAzLgotRWxlbWVudCBpbmRleDogNCwgaW5kZXg6IDAsIG1hdGNoIGluZGV4
OiAxLgotRWxlbWVudCBpbmRleDogOCwgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2LgotRWxlbWVu
dCBpbmRleDogNCwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogOCwg
aW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2LgotRWxlbWVudCBpbmRleDogNCwgaW5kZXg6IDAsIG1h
dGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogOCwgaW5kZXg6IDIsIG1hdGNoIGluZGV4OiA2
LgotCi0KLVJ1bm5pbmc6IHRlc3Q1Ci1SdW5uaW5nIHRlc3QgZm9yIG1hdGNoZXMgY291bnRzOiBb
MCwwLDAsMCwxLDAsMCwwXQotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4
OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVu
dCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwg
aW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1h
dGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAx
LgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBp
bmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5k
ZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNo
IGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgot
RWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRl
eDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6
IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGlu
ZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxl
bWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDog
NSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAs
IG1hdGNoIGluZGV4OiAxLgotRWxlbWVudCBpbmRleDogNSwgaW5kZXg6IDAsIG1hdGNoIGluZGV4
OiAxLgotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Nl
YXJjaC9yZXNvdXJjZXMtc2VhcmNoLW1hdGNoLWluZGV4Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzLXNlYXJjaC1tYXRjaC1pbmRleC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Njc0YzY2Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMtc2VhcmNoLW1h
dGNoLWluZGV4Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzAgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicmVz
b3VyY2VzIik7Ci0KLSAgICB2YXIgRmFrZUVsZW1lbnQgPSBmdW5jdGlvbihlbGVtZW50cywgaW5k
ZXgsIHNlYXJjaE1hdGNoZXNDb3VudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2VsZW1lbnRzID0g
ZWxlbWVudHM7Ci0gICAgICAgIHRoaXMuaW5kZXggPSBpbmRleDsKLSAgICAgICAgdGhpcy5zZWFy
Y2hNYXRjaGVzQ291bnQgPSBzZWFyY2hNYXRjaGVzQ291bnQ7Ci0gICAgfTsKLQotICAgIEZha2VF
bGVtZW50LnByb3RvdHlwZSA9IHsKLSAgICAgICAgLy8gSWdub3JlIGFsbCBwYXJhbWV0ZXJzLgot
ICAgICAgICB0cmF2ZXJzZVByZXZpb3VzVHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXggPiAwID8gdGhpcy5fZWxlbWVudHNbdGhp
cy5pbmRleCAtIDFdIDogbnVsbDsKLSAgICAgICAgfSwKLQotICAgICAgICAvLyBJZ25vcmUgYWxs
IHBhcmFtZXRlcnMuCi0gICAgICAgIHRyYXZlcnNlTmV4dFRyZWVFbGVtZW50OiBmdW5jdGlvbigp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB0aGlzLmluZGV4IDwgdGhpcy5fZWxlbWVu
dHMubGVuZ3RoIC0gMSA/IHRoaXMuX2VsZW1lbnRzW3RoaXMuaW5kZXggKyAxXSA6IG51bGw7Ci0g
ICAgICAgIH0KLSAgICB9OwotCi0gICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudHNUcmVlV2l0aE1h
dGNoZXNDb3VudHMobWF0Y2hlc0NvdW50cykKLSAgICB7Ci0gICAgICAgIHZhciBlbGVtZW50cyA9
IFtdOwotICAgICAgICB2YXIgdG90YWxNYXRjaGVzQ291bnQgPSAwOwotICAgICAgICB2YXIgZWxl
bWVudCA9IG5ldyBGYWtlRWxlbWVudChlbGVtZW50cywgMCwgMCk7Ci0gICAgICAgIGVsZW1lbnRz
LnB1c2goZWxlbWVudCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF0Y2hlc0NvdW50
cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgZWxlbWVudCA9IG5ldyBGYWtlRWxlbWVudChl
bGVtZW50cywgaSArIDEsIG1hdGNoZXNDb3VudHNbaV0pOwotICAgICAgICAgICAgZWxlbWVudHMu
cHVzaChlbGVtZW50KTsKLSAgICAgICAgICAgIHRvdGFsTWF0Y2hlc0NvdW50ICs9IG1hdGNoZXND
b3VudHNbaV07Ci0gICAgICAgIH0KLSAgICAgICAgZWxlbWVudHMudG90YWxNYXRjaGVzQ291bnQg
PSB0b3RhbE1hdGNoZXNDb3VudDsKLSAgICAgICAgcmV0dXJuIGVsZW1lbnRzOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIGR1bXBTZWFyY2hSZXN1bHQoc2VhcmNoUmVzdWx0KQotICAgIHsKLSAgICAg
ICAgaWYgKHNlYXJjaFJlc3VsdCkgewotICAgICAgICAgICAgdmFyIGVsZW1lbnRJbmRleCA9IHNl
YXJjaFJlc3VsdC50cmVlRWxlbWVudC5pbmRleDsKLSAgICAgICAgICAgIHZhciBpbmRleCA9IHNl
YXJjaFJlc3VsdC5pbmRleDsKLSAgICAgICAgICAgIHZhciBtYXRjaEluZGV4ID0gc2VhcmNoUmVz
dWx0LmN1cnJlbnRNYXRjaEluZGV4OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkVsZW1lbnQgaW5kZXg6ICIgKyBlbGVtZW50SW5kZXggKyAiLCBpbmRleDogIiArIGluZGV4
ICsgIiwgbWF0Y2ggaW5kZXg6ICIgKyBtYXRjaEluZGV4ICsgIi4iKTsKLSAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTm8gc2VhcmNoIHJlc3VsdCBm
b3VuZC4iKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0Rm9yTWF0Y2hlc0NvdW50cyht
YXRjaGVzQ291bnRzKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJ1
bm5pbmcgdGVzdCBmb3IgbWF0Y2hlcyBjb3VudHM6ICIgKyBKU09OLnN0cmluZ2lmeShtYXRjaGVz
Q291bnRzKSk7Ci0gICAgICAgIHZhciBlbGVtZW50cyA9IGNyZWF0ZUVsZW1lbnRzVHJlZVdpdGhN
YXRjaGVzQ291bnRzKG1hdGNoZXNDb3VudHMpOwotICAgICAgICB2YXIgY29udHJvbGxlciA9IG5l
dyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzU2VhcmNoQ29udHJvbGxlcihlbGVtZW50c1swXSwgZWxl
bWVudHMudG90YWxNYXRjaGVzQ291bnQpOwotICAgICAgICB2YXIgbGFzdFNlYXJjaFJlc3VsdDsK
LQotICAgICAgICAvLyBGaXJzdCBvZiBhbGwgbWFrZSBhIGZ1bGwgY3ljbGUgdGhyb3VnaCB0aGUg
dHJlZS4KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy50b3RhbE1hdGNoZXND
b3VudCArIDE7ICsraSkgewotICAgICAgICAgICAgbGFzdFNlYXJjaFJlc3VsdCA9IGNvbnRyb2xs
ZXIubmV4dFNlYXJjaFJlc3VsdChsYXN0U2VhcmNoUmVzdWx0ID8gbGFzdFNlYXJjaFJlc3VsdC50
cmVlRWxlbWVudCA6IG51bGwpOwotICAgICAgICAgICAgZHVtcFNlYXJjaFJlc3VsdChsYXN0U2Vh
cmNoUmVzdWx0KTsKLSAgICAgICAgICAgIGlmICghbGFzdFNlYXJjaFJlc3VsdCkKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRoZW4gbWFrZSBhbm90aGVy
IG9uZSBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLgotICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGVsZW1lbnRzLnRvdGFsTWF0Y2hlc0NvdW50ICsgMTsgKytpKSB7Ci0gICAgICAgICAgICBs
YXN0U2VhcmNoUmVzdWx0ID0gY29udHJvbGxlci5wcmV2aW91c1NlYXJjaFJlc3VsdChsYXN0U2Vh
cmNoUmVzdWx0ID8gbGFzdFNlYXJjaFJlc3VsdC50cmVlRWxlbWVudCA6IG51bGwpOwotICAgICAg
ICAgICAgZHVtcFNlYXJjaFJlc3VsdChsYXN0U2VhcmNoUmVzdWx0KTsKLSAgICAgICAgICAgIGlm
ICghbGFzdFNlYXJjaFJlc3VsdCkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
Ci0gICAgICAgIC8vIE5vdyBkdW1wIG5leHQgYW5kIHByZXZpb3VzIHNlYXJjaCByZXN1bHRzIGZv
ciBlYWNoIGVsZW1lbnQgd2l0aG91dCBzZWFyY2ggbWF0Y2hlcy4KLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKGVsZW1l
bnRzW2ldLnNlYXJjaE1hdGNoZXNDb3VudCA9PT0gMCkgewotICAgICAgICAgICAgICAgIHZhciBz
ZWFyY2hSZXN1bHQgPSBjb250cm9sbGVyLm5leHRTZWFyY2hSZXN1bHQoZWxlbWVudHNbaV0pOwot
ICAgICAgICAgICAgICAgIGR1bXBTZWFyY2hSZXN1bHQoc2VhcmNoUmVzdWx0KTsKLSAgICAgICAg
ICAgICAgICBzZWFyY2hSZXN1bHQgPSBjb250cm9sbGVyLnByZXZpb3VzU2VhcmNoUmVzdWx0KGVs
ZW1lbnRzW2ldKTsKLSAgICAgICAgICAgICAgICBkdW1wU2VhcmNoUmVzdWx0KHNlYXJjaFJlc3Vs
dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiIpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAg
ICAgICAgZnVuY3Rpb24gdGVzdDEobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgcnVuVGVz
dEZvck1hdGNoZXNDb3VudHMoWzFdKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwK
LQotICAgICAgICBmdW5jdGlvbiB0ZXN0MihuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBy
dW5UZXN0Rm9yTWF0Y2hlc0NvdW50cyhbMSwgMiwgM10pOwotICAgICAgICAgICAgbmV4dCgpOwot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3QzKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJ1blRlc3RGb3JNYXRjaGVzQ291bnRzKFsxLCAwLCAyLCAwLCAzXSk7Ci0gICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdDQobmV4
dCkKLSAgICAgICAgewotICAgICAgICAgICAgcnVuVGVzdEZvck1hdGNoZXNDb3VudHMoWzAsIDAs
IDAsIDMsIDAsIDAsIDAsIDMsIDAsIDAsIDBdKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAg
ICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0NShuZXh0KQotICAgICAgICB7Ci0gICAgICAg
ICAgICBydW5UZXN0Rm9yTWF0Y2hlc0NvdW50cyhbMCwgMCwgMCwgMCwgMSwgMCwgMCwgMF0pOwot
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9Ci0gICAgXSk7Ci0KLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgc2VhcmNoIG1hdGNo
IGluZGV4IGNhbGN1bGF0aW9uIGluIHJlc291cmNlcyBwYW5lbC48L3A+Ci08YSBocmVmPSJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwNTAiPkJ1ZyA2NjA1MDwvYT4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLWNvbmNhdGVuYXRlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2gtY29uY2F0
ZW5hdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyOGZmNjQuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNl
cy9zZWFyY2gtY29uY2F0ZW5hdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWZ1bmN0aW9uIHNlYXJjaFRlc3RVbmlxdWVTdHJp
bmcoKQotewotICAgIHZhciB2YXJpYWJsZSA9IDA7Ci0gICAgLy8gc2VhcmNoVGVzdFVuaXF1ZVN0
cmluZyB0d28gb2NjdXJlbmNlcyBvbiB0aGUgc2FtZSBsaW5lIHNlYXJjaFRlc3RVbmlxdWVTdHJp
bmcKLSAgICB2YXIgdmFyaWFibGUyID0gMDsKLX0KLTwvc2NyaXB0PjxzY3JpcHQ+Ci1mdW5jdGlv
biBkb1NvbWV0aGluZygpCi17Ci0gICAgc2VhcmNoVGVzdFVuaXF1ZVN0cmluZygpOwotICAgIC8v
IFNFQVJDSFRlc3RVbmlxdWVTdHJpbmcoKTsKLX0KLTwvc2NyaXB0PgotPGxpbmsgaHJlZj0ic2Vh
cmNoLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+Ci08c2NyaXB0PgotZnVu
Y3Rpb24gc2VhcmNoVGVzdFVuaXF1ZVN0cmluZzIoKQotewotICAgIHZhciB2YXJpYWJsZSA9IDA7
Ci0gICAgLyogc2VhcmNoVGVzdFVuaXF1ZVN0cmluZyB0d28gb2NjdXJlbmNlcyBvbiB0aGUgc2Ft
ZSBsaW5lIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgKi8gfSA8L3NjcmlwdD48c2NyaXB0PiBmdW5j
dGlvbiBkb1NvbWV0aGluZzIoKSB7IHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKTsKLSAgICAvLyBT
RUFSQ0hUZXN0VW5pcXVlU3RyaW5nKCk7Ci19Ci08L3NjcmlwdD4KLTwvc2NyaXB0PgotPGJvZHk+
Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLmNzcyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLmNzcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDc2MGM5Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJjaC5jc3MKKysrIC9kZXYvbnVs
bApAQCAtMSw5ICswLDAgQEAKLWRpdi5zZWFyY2hUZXN0VW5pcXVlU3RyaW5nIHsKLSAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7Ci19Ci0KLWRpdi5zZWFyY2hUZXN0VW5pcXVlU3RyaW5nOmhvdmVy
IHsKLSAgICAvKiBhbm90aGVyIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgb2NjdXJlbmNlICovCi0g
ICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJjaC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmVhODg4ZC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJjaC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIGhy
ZWY9InNlYXJjaC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgotPHNjcmlw
dCBzcmM9InNlYXJjaC5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxkaXY+c2VhcmNoVGVzdFVuaXF1
ZVN0cmluZzwvZGl2PgotPGRpdj5vdGhlciB0ZXh0PC9kaXY+Ci08IS0tIHNlYXJjaFRlc3RVbmlx
dWVTdHJpbmcgLS0+Ci08ZGl2PnNvbWUgb3RoZXIgdGV4dDwvZGl2PgotPGRpdiBpZD0ic2VhcmNo
VGVzdFVuaXF1ZVN0cmluZyI+ZGl2IHRleHQ8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNl
cy9zZWFyY2guanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvcmVz
b3VyY2VzL3NlYXJjaC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU5M2VlMS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvcmVz
b3VyY2VzL3NlYXJjaC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLWZ1bmN0aW9u
IHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKQotewotICAgIHZhciB2YXJpYWJsZSA9IDA7Ci0gICAg
Ly8gc2VhcmNoVGVzdFVuaXF1ZVN0cmluZyB0d28gb2NjdXJlbmNlcyBvbiB0aGUgc2FtZSBsaW5l
IHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcKLSAgICB2YXIgdmFyaWFibGUyID0gMDsKLX0KLQotZnVu
Y3Rpb24gZG9Tb21ldGhpbmcoKQotewotICAgIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKTsKLSAg
ICAvLyBTRUFSQ0hUZXN0VW5pcXVlU3RyaW5nKCk7Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zY3JpcHRzLXNlYXJjaC1zY29wZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2NyaXB0
cy1zZWFyY2gtc2NvcGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiZjM1ZTM4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3NlYXJjaC9zY3JpcHRzLXNlYXJjaC1zY29wZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzMSArMCwwIEBACi0KLQotUnVubmluZzogdGVzdElnbm9yZUNhc2UKLVNlYXJjaCByZXN1
bHQgIzE6IHVpU291cmNlQ29kZS51cmkgPSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLmNzcwotICBzZWFyY2ggbWF0Y2ggIzE6IGxpbmVOdW1i
ZXIgPSAwLCBsaW5lQ29udGVudCA9ICdkaXYuc2VhcmNoVGVzdFVuaXF1ZVN0cmluZyB7JwotICBz
ZWFyY2ggbWF0Y2ggIzI6IGxpbmVOdW1iZXIgPSA0LCBsaW5lQ29udGVudCA9ICdkaXYuc2VhcmNo
VGVzdFVuaXF1ZVN0cmluZzpob3ZlciB7JwotICBzZWFyY2ggbWF0Y2ggIzM6IGxpbmVOdW1iZXIg
PSA1LCBsaW5lQ29udGVudCA9ICcgICAgLyogYW5vdGhlciBzZWFyY2hUZXN0VW5pcXVlU3RyaW5n
IG9jY3VyZW5jZSAqLycKLVNlYXJjaCByZXN1bHQgIzI6IHVpU291cmNlQ29kZS51cmkgPSBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLmh0bWwK
LSAgc2VhcmNoIG1hdGNoICMxOiBsaW5lTnVtYmVyID0gNSwgbGluZUNvbnRlbnQgPSAnPGRpdj5z
ZWFyY2hUZXN0VW5pcXVlU3RyaW5nPC9kaXY+JwotICBzZWFyY2ggbWF0Y2ggIzI6IGxpbmVOdW1i
ZXIgPSA3LCBsaW5lQ29udGVudCA9ICc8IS0tIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgLS0+Jwot
ICBzZWFyY2ggbWF0Y2ggIzM6IGxpbmVOdW1iZXIgPSA5LCBsaW5lQ29udGVudCA9ICc8ZGl2IGlk
PSJzZWFyY2hUZXN0VW5pcXVlU3RyaW5nIj5kaXYgdGV4dDwvZGl2PicKLVNlYXJjaCByZXN1bHQg
IzM6IHVpU291cmNlQ29kZS51cmkgPSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Nl
YXJjaC9yZXNvdXJjZXMvc2VhcmNoLmpzCi0gIHNlYXJjaCBtYXRjaCAjMTogbGluZU51bWJlciA9
IDAsIGxpbmVDb250ZW50ID0gJ2Z1bmN0aW9uIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKScKLSAg
c2VhcmNoIG1hdGNoICMyOiBsaW5lTnVtYmVyID0gMywgbGluZUNvbnRlbnQgPSAnICAgIC8vIHNl
YXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdvIG9jY3VyZW5jZXMgb24gdGhlIHNhbWUgbGluZSBzZWFy
Y2hUZXN0VW5pcXVlU3RyaW5nJwotICBzZWFyY2ggbWF0Y2ggIzM6IGxpbmVOdW1iZXIgPSA5LCBs
aW5lQ29udGVudCA9ICcgICAgc2VhcmNoVGVzdFVuaXF1ZVN0cmluZygpOycKLSAgc2VhcmNoIG1h
dGNoICM0OiBsaW5lTnVtYmVyID0gMTAsIGxpbmVDb250ZW50ID0gJyAgICAvLyBTRUFSQ0hUZXN0
VW5pcXVlU3RyaW5nKCk7JwotCi1SdW5uaW5nOiB0ZXN0Q2FzZVNlbnNpdGl2ZQotU2VhcmNoIHJl
c3VsdCAjMTogdWlTb3VyY2VDb2RlLnVyaSA9IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0
b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guY3NzCi0gIHNlYXJjaCBtYXRjaCAjMTogbGluZU51
bWJlciA9IDAsIGxpbmVDb250ZW50ID0gJ2Rpdi5zZWFyY2hUZXN0VW5pcXVlU3RyaW5nIHsnCi0g
IHNlYXJjaCBtYXRjaCAjMjogbGluZU51bWJlciA9IDQsIGxpbmVDb250ZW50ID0gJ2Rpdi5zZWFy
Y2hUZXN0VW5pcXVlU3RyaW5nOmhvdmVyIHsnCi0gIHNlYXJjaCBtYXRjaCAjMzogbGluZU51bWJl
ciA9IDUsIGxpbmVDb250ZW50ID0gJyAgICAvKiBhbm90aGVyIHNlYXJjaFRlc3RVbmlxdWVTdHJp
bmcgb2NjdXJlbmNlICovJwotU2VhcmNoIHJlc3VsdCAjMjogdWlTb3VyY2VDb2RlLnVyaSA9IGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guaHRt
bAotICBzZWFyY2ggbWF0Y2ggIzE6IGxpbmVOdW1iZXIgPSA1LCBsaW5lQ29udGVudCA9ICc8ZGl2
PnNlYXJjaFRlc3RVbmlxdWVTdHJpbmc8L2Rpdj4nCi0gIHNlYXJjaCBtYXRjaCAjMjogbGluZU51
bWJlciA9IDcsIGxpbmVDb250ZW50ID0gJzwhLS0gc2VhcmNoVGVzdFVuaXF1ZVN0cmluZyAtLT4n
Ci0gIHNlYXJjaCBtYXRjaCAjMzogbGluZU51bWJlciA9IDksIGxpbmVDb250ZW50ID0gJzxkaXYg
aWQ9InNlYXJjaFRlc3RVbmlxdWVTdHJpbmciPmRpdiB0ZXh0PC9kaXY+JwotU2VhcmNoIHJlc3Vs
dCAjMzogdWlTb3VyY2VDb2RlLnVyaSA9IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
c2VhcmNoL3Jlc291cmNlcy9zZWFyY2guanMKLSAgc2VhcmNoIG1hdGNoICMxOiBsaW5lTnVtYmVy
ID0gMCwgbGluZUNvbnRlbnQgPSAnZnVuY3Rpb24gc2VhcmNoVGVzdFVuaXF1ZVN0cmluZygpJwot
ICBzZWFyY2ggbWF0Y2ggIzI6IGxpbmVOdW1iZXIgPSAzLCBsaW5lQ29udGVudCA9ICcgICAgLy8g
c2VhcmNoVGVzdFVuaXF1ZVN0cmluZyB0d28gb2NjdXJlbmNlcyBvbiB0aGUgc2FtZSBsaW5lIHNl
YXJjaFRlc3RVbmlxdWVTdHJpbmcnCi0gIHNlYXJjaCBtYXRjaCAjMzogbGluZU51bWJlciA9IDks
IGxpbmVDb250ZW50ID0gJyAgICBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCk7JwotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2NyaXB0cy1zZWFy
Y2gtc2NvcGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9z
Y3JpcHRzLXNlYXJjaC1zY29wZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
YjU2YmY3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Nl
YXJjaC9zY3JpcHRzLXNlYXJjaC1zY29wZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5DaGFuZ2UgaW5zcGVjdGVkIGlmcmFtZSdzICJz
cmMiIGF0dHJpYnV0ZS48L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5l
bCgic2NyaXB0cyIpOwotICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5p
c2hlZChbInNlYXJjaC5odG1sIiwgInNlYXJjaC5qcyIsICJzZWFyY2guY3NzIl0sIHN0ZXAxKQot
Ci0gICAgZnVuY3Rpb24gcnVuU2VhcmNoQW5kRHVtcFJlc3VsdHMoc2VhcmNoQ29uZmlnLCBjYWxs
YmFjaykKLSAgICB7Ci0gICAgICAgIHZhciBzZWFyY2hSZXN1bHRzID0gW107Ci0gICAgICAgIHZh
ciBzY29wZSA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1NlYXJjaFNjb3BlKFdlYkluc3BlY3Rv
ci53b3Jrc3BhY2UpOwotICAgICAgICBzY29wZS5wZXJmb3JtU2VhcmNoKHNlYXJjaENvbmZpZywg
c2VhcmNoUmVzdWx0Q2FsbGJhY2ssIHNlYXJjaEZpbmlzaGVkQ2FsbGJhY2spOwotCi0gICAgICAg
IGZ1bmN0aW9uIHNlYXJjaFJlc3VsdENhbGxiYWNrKHNlYXJjaFJlc3VsdCkKLSAgICAgICAgewot
ICAgICAgICAgICAgc2VhcmNoUmVzdWx0cy5wdXNoKHNlYXJjaFJlc3VsdCk7Ci0gICAgICAgIH0K
LQotICAgICAgICBmdW5jdGlvbiBzZWFyY2hGaW5pc2hlZENhbGxiYWNrKCkKLSAgICAgICAgewot
ICAgICAgICAgICAgZnVuY3Rpb24gZmlsdGVyT3V0RW1wdHlTZWFyY2hSZXN1bHRzKHNlYXJjaFJl
c3VsdCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gc2VhcmNoUmVzdWx0
LnNlYXJjaE1hdGNoZXMubGVuZ3RoOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2VhcmNo
UmVzdWx0cyA9IHNlYXJjaFJlc3VsdHMuZmlsdGVyKGZpbHRlck91dEVtcHR5U2VhcmNoUmVzdWx0
cyk7Ci0KLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VhcmNoUmVzdWx0cy5sZW5n
dGg7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBzZWFyY2hSZXN1bHQgPSBzZWFyY2hSZXN1
bHRzW2ldOwotICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzZWFyY2hSZXN1bHQu
dWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIHZhciBzZWFyY2hNYXRjaGVzID0gc2VhcmNo
UmVzdWx0LnNlYXJjaE1hdGNoZXM7Ci0KLSAgICAgICAgICAgICAgICBpZiAoIXNlYXJjaE1hdGNo
ZXMubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2VhcmNoIHJlc3VsdCAjIiArIChpICsgMSkgKyAi
OiB1aVNvdXJjZUNvZGUudXJpID0gIiArIHVpU291cmNlQ29kZS51cmkoKSk7Ci0gICAgICAgICAg
ICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzZWFyY2hNYXRjaGVzLmxlbmd0aDsgKytqKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gc2VhcmNoTWF0Y2hlc1tqXS5saW5l
TnVtYmVyOwotICAgICAgICAgICAgICAgICAgICB2YXIgbGluZUNvbnRlbnQgPSBzZWFyY2hNYXRj
aGVzW2pdLmxpbmVDb250ZW50OwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiICBzZWFyY2ggbWF0Y2ggIyIgKyAoaiArIDEpICsgIjogbGluZU51bWJlciA9ICIg
KyBsaW5lTnVtYmVyICsgIiwgbGluZUNvbnRlbnQgPSAnIiArIGxpbmVDb250ZW50ICsgIiciKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYWxsYmFjaygp
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICAgICAgZnVuY3Rpb24gdGVz
dElnbm9yZUNhc2UobmV4dCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgc2Vh
cmNoQ29uZmlnID0ge307Ci0gICAgICAgICAgICAgICAgc2VhcmNoQ29uZmlnLnF1ZXJ5ID0gInNl
YXJjaFRlc3QiICsgIlVuaXF1ZVN0cmluZyI7Ci0gICAgICAgICAgICAgICAgc2VhcmNoQ29uZmln
Lmlnbm9yZUNhc2UgPSB0cnVlOwotICAgICAgICAgICAgICAgIHNlYXJjaENvbmZpZy5pc1JlZ2V4
ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgcnVuU2VhcmNoQW5kRHVtcFJlc3VsdHMoc2VhcmNo
Q29uZmlnLCBuZXh0KTsKLSAgICAgICAgICAgIH0sCi0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHRl
c3RDYXNlU2Vuc2l0aXZlKG5leHQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFy
IHNlYXJjaENvbmZpZyA9IHt9OwotICAgICAgICAgICAgICAgIHNlYXJjaENvbmZpZy5xdWVyeSA9
ICJzZWFyY2hUZXN0IiArICJVbmlxdWVTdHJpbmciOwotICAgICAgICAgICAgICAgIHNlYXJjaENv
bmZpZy5pZ25vcmVDYXNlID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc2VhcmNoQ29uZmlnLmlz
UmVnZXggPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBydW5TZWFyY2hBbmREdW1wUmVzdWx0cyhz
ZWFyY2hDb25maWcsIG5leHQpOwotICAgICAgICAgICAgfSwKLSAgICAgICAgXSk7Ci0gICAgfQot
fQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxpZnJh
bWUgc3JjPSJyZXNvdXJjZXMvc2VhcmNoLmh0bWwiPgotPHA+VGVzdHMgdGhhdCBTY3JpcHRTZWFy
Y2hTY29wZSBwZXJmb3JtcyBzZWFyY2ggYWNyb3NzIGFsbCBzb3VyY2VzIGNvcnJlY3RseS48L3A+
Ci1TZWUgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQx
MzUwIj5idWcgNDEzNTA8L2E+LgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1jb25jYXRlbmF0ZWQt
c2NyaXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Nl
YXJjaC9zZWFyY2gtaW4tY29uY2F0ZW5hdGVkLXNjcmlwdC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhYjQ4YTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1jb25jYXRlbmF0ZWQtc2NyaXB0
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRlc3RzIGNvbmNh
dGVuYXRlZCBzY3JpcHQgc2VhcmNoIGluIGluc3BlY3RvciBkZWJ1Z2dlciBhZ2VudC4KLQotQnVn
IDY5MDE1ICAKLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJjaC1jb25jYXRlbmF0ZWQuaHRtbAotU2VhcmNo
IG1hdGNoZXM6IAotbGluZU51bWJlcjogMywgbGluZTogJ2Z1bmN0aW9uIHNlYXJjaFRlc3RVbmlx
dWVTdHJpbmcoKScKLWxpbmVOdW1iZXI6IDYsIGxpbmU6ICcgICAgLy8gc2VhcmNoVGVzdFVuaXF1
ZVN0cmluZyB0d28gb2NjdXJlbmNlcyBvbiB0aGUgc2FtZSBsaW5lIHNlYXJjaFRlc3RVbmlxdWVT
dHJpbmcnCi1saW5lTnVtYmVyOiAxMiwgbGluZTogJyAgICBzZWFyY2hUZXN0VW5pcXVlU3RyaW5n
KCk7JwotbGluZU51bWJlcjogMTMsIGxpbmU6ICcgICAgLy8gU0VBUkNIVGVzdFVuaXF1ZVN0cmlu
ZygpOycKLWxpbmVOdW1iZXI6IDE4LCBsaW5lOiAnZnVuY3Rpb24gc2VhcmNoVGVzdFVuaXF1ZVN0
cmluZzIoKScKLWxpbmVOdW1iZXI6IDIxLCBsaW5lOiAnICAgIC8qIHNlYXJjaFRlc3RVbmlxdWVT
dHJpbmcgdHdvIG9jY3VyZW5jZXMgb24gdGhlIHNhbWUgbGluZSBzZWFyY2hUZXN0VW5pcXVlU3Ry
aW5nICovIH0gJwotbGluZU51bWJlcjogMjEsIGxpbmU6ICcgZnVuY3Rpb24gZG9Tb21ldGhpbmcy
KCkgeyBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCk7JwotbGluZU51bWJlcjogMjIsIGxpbmU6ICcg
ICAgLy8gU0VBUkNIVGVzdFVuaXF1ZVN0cmluZygpOycKLQotRGVidWdnZXIgd2FzIGRpc2FibGVk
LgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gv
c2VhcmNoLWluLWNvbmNhdGVuYXRlZC1zY3JpcHQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tY29uY2F0ZW5hdGVkLXNjcmlwdC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5N2RhYWE3Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tY29uY2F0ZW5hdGVk
LXNjcmlwdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2Rl
YnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNlYXJjaC10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICAvLyBUaGlzIGZpbGUg
c2hvdWxkIG5vdCBtYXRjaCBzZWFyY2ggcXVlcnkuCi0gICAgdmFyIHRleHQgPSAic2VhcmNoVGVz
dCIgKyAiVW5pcXVlU3RyaW5nIjsKLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0
KHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QucnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5pc2hlZChbInNlYXJjaC1jb25jYXRlbmF0ZWQu
aHRtbCJdLCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJzZWFyY2gtY29uY2F0ZW5hdGVk
Lmh0bWwiLCBzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAg
ICAgICAgdmFyIHVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3NlYXJjaC9y
ZXNvdXJjZXMvc2VhcmNoLWNvbmNhdGVuYXRlZC5odG1sIjsKLSAgICAgICAgdmFyIHNjcmlwdHMg
PSBJbnNwZWN0b3JUZXN0LnF1ZXJ5U2NyaXB0cyhmdW5jdGlvbihzKSB7IHJldHVybiBzLnNvdXJj
ZVVSTCA9PT0gdXJsOyB9KTsKLSAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IG5ldyBXZWJJ
bnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRlbnRQcm92aWRlcihzY3JpcHRzKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodXJsKTsKLSAgICAgICAgY29udGVudFByb3Zp
ZGVyLnNlYXJjaEluQ29udGVudCh0ZXh0LCBmYWxzZSwgZmFsc2UsIHN0ZXA0KTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBzdGVwNChzZWFyY2hNYXRjaGVzKQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wU2VhcmNoTWF0Y2hlcyhzZWFyY2hNYXRjaGVzKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08cD5UZXN0cyBjb25jYXRlbmF0ZWQgc2NyaXB0IHNlYXJjaCBpbiBpbnNw
ZWN0b3IgZGVidWdnZXIgYWdlbnQuPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY5MDE1Ij5CdWcgNjkwMTU8L2E+Ci0KLTxpZnJhbWUgc3JjPSJy
ZXNvdXJjZXMvc2VhcmNoLWNvbmNhdGVuYXRlZC5odG1sIiBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9zZWFyY2gvc2VhcmNoLWluLW5vbi1leGlzdGluZy1yZXNvdXJjZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLW5vbi1l
eGlzdGluZy1yZXNvdXJjZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDlmMzU0ZWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3Ivc2VhcmNoL3NlYXJjaC1pbi1ub24tZXhpc3RpbmctcmVzb3VyY2UtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1UZXN0cyBzaW5nbGUgcmVzb3VyY2Ugc2VhcmNo
IGluIGluc3BlY3RvciBwYWdlIGFnZW50IHdpdGggbm9uIGV4aXN0aW5nIHJlc291cmNlIHVybCBk
b2VzIG5vdCBjYXVzZSBhIGNyYXNoLgotCi1CdWcgNjk3NjcgIAotU2VhcmNoIG1hdGNoZXM6IAot
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9z
ZWFyY2gtaW4tbm9uLWV4aXN0aW5nLXJlc291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLW5vbi1leGlzdGluZy1yZXNvdXJjZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZDUzMjlmLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tbm9uLWV4aXN0
aW5nLXJlc291cmNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
c2VhcmNoLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIC8vIFRoaXMgZmlsZSBzaG91bGQgbm90IG1hdGNoIHNlYXJjaCBxdWVyeS4KLSAgICB2YXIg
dGV4dCA9ICJzZWFyY2hUZXN0IiArICJVbmlxdWVTdHJpbmciOwotICAgIEluc3BlY3RvclRlc3Qu
cnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5pc2hlZChbInNlYXJjaC5qcyJdLCBzdGVwMik7Ci0KLSAg
ICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNw
ZWN0b3IucmVzb3VyY2VGb3JVUkwoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Ivc2Vh
cmNoL3Jlc291cmNlcy9zZWFyY2guanMiKTsKLSAgICAgICAgdmFyIHVybCA9ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvbm9uLWV4aXN0aW5nLmpzIjsK
LSAgICAgICAgUGFnZUFnZW50LnNlYXJjaEluUmVzb3VyY2UocmVzb3VyY2UuZnJhbWVJZCwgdXJs
LCB0ZXh0LCBzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoZXJyb3IsIHNlYXJj
aE1hdGNoZXMpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWFyY2hNYXRjaGVz
KHNlYXJjaE1hdGNoZXMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UZXN0cyBzaW5nbGUgcmVz
b3VyY2Ugc2VhcmNoIGluIGluc3BlY3RvciBwYWdlIGFnZW50IHdpdGggbm9uIGV4aXN0aW5nIHJl
c291cmNlIHVybCBkb2VzIG5vdCBjYXVzZSBhIGNyYXNoLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc2NyI+QnVnIDY5NzY3PC9hPgotCi08
aWZyYW1lIHNyYz0icmVzb3VyY2VzL3NlYXJjaC5odG1sIiBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9zZWFyY2gvc2VhcmNoLWluLXJlc291cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3VyY2UtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYjU4MGNlLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3Vy
Y2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotVGVzdHMgc2lu
Z2xlIHJlc291cmNlIHNlYXJjaCBpbiBpbnNwZWN0b3IgcGFnZSBhZ2VudC4KLQotQnVnIDY4OTk4
ICAKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFy
Y2guanMKLVNlYXJjaCBtYXRjaGVzOiAKLWxpbmVOdW1iZXI6IDAsIGxpbmU6ICdmdW5jdGlvbiBz
ZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCknCi1saW5lTnVtYmVyOiAzLCBsaW5lOiAnICAgIC8vIHNl
YXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdvIG9jY3VyZW5jZXMgb24gdGhlIHNhbWUgbGluZSBzZWFy
Y2hUZXN0VW5pcXVlU3RyaW5nJwotbGluZU51bWJlcjogOSwgbGluZTogJyAgICBzZWFyY2hUZXN0
VW5pcXVlU3RyaW5nKCk7JwotbGluZU51bWJlcjogMTAsIGxpbmU6ICcgICAgLy8gU0VBUkNIVGVz
dFVuaXF1ZVN0cmluZygpOycKLQotU2VhcmNoIG1hdGNoZXM6IAotbGluZU51bWJlcjogMCwgbGlu
ZTogJ2Z1bmN0aW9uIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKScKLWxpbmVOdW1iZXI6IDMsIGxp
bmU6ICcgICAgLy8gc2VhcmNoVGVzdFVuaXF1ZVN0cmluZyB0d28gb2NjdXJlbmNlcyBvbiB0aGUg
c2FtZSBsaW5lIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcnCi1saW5lTnVtYmVyOiA5LCBsaW5lOiAn
ICAgIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKTsnCi0KLVNlYXJjaCBtYXRjaGVzOiAKLWxpbmVO
dW1iZXI6IDAsIGxpbmU6ICdmdW5jdGlvbiBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCknCi1saW5l
TnVtYmVyOiAzLCBsaW5lOiAnICAgIC8vIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdvIG9jY3Vy
ZW5jZXMgb24gdGhlIHNhbWUgbGluZSBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nJwotbGluZU51bWJl
cjogOSwgbGluZTogJyAgICBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCk7JwotbGluZU51bWJlcjog
MTAsIGxpbmU6ICcgICAgLy8gU0VBUkNIVGVzdFVuaXF1ZVN0cmluZygpOycKLQotU2VhcmNoIG1h
dGNoZXM6IAotbGluZU51bWJlcjogMCwgbGluZTogJ2Z1bmN0aW9uIHNlYXJjaFRlc3RVbmlxdWVT
dHJpbmcoKScKLWxpbmVOdW1iZXI6IDMsIGxpbmU6ICcgICAgLy8gc2VhcmNoVGVzdFVuaXF1ZVN0
cmluZyB0d28gb2NjdXJlbmNlcyBvbiB0aGUgc2FtZSBsaW5lIHNlYXJjaFRlc3RVbmlxdWVTdHJp
bmcnCi1saW5lTnVtYmVyOiA5LCBsaW5lOiAnICAgIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKTsn
Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNo
L3NlYXJjaC1pbi1yZXNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3Ivc2VhcmNoL3NlYXJjaC1pbi1yZXNvdXJjZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlZjMzNTFkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3VyY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDYyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzZWFyY2gtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
ZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclJlc291cmNlc0Fy
ZUZpbmlzaGVkKFsic2VhcmNoLmpzIl0sIHN0ZXAyKTsKLSAgICB2YXIgcmVzb3VyY2U7Ci0KLSAg
ICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICByZXNvdXJjZSA9IFdlYkluc3BlY3Rv
ci5yZXNvdXJjZUZvclVSTCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9zZWFyY2gv
cmVzb3VyY2VzL3NlYXJjaC5qcyIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChy
ZXNvdXJjZS51cmwpOwotCi0gICAgICAgIC8vIFRoaXMgZmlsZSBzaG91bGQgbm90IG1hdGNoIHNl
YXJjaCBxdWVyeS4KLSAgICAgICAgdmFyIHRleHQgPSAic2VhcmNoVGVzdCIgKyAiVW5pcXVlU3Ry
aW5nIjsKLSAgICAgICAgcmVzb3VyY2Uuc2VhcmNoSW5Db250ZW50KHRleHQsIGZhbHNlLCBmYWxz
ZSwgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKHNlYXJjaE1hdGNoZXMpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWFyY2hNYXRjaGVzKHNlYXJjaE1hdGNo
ZXMpOwotCi0gICAgICAgIC8vIFRoaXMgZmlsZSBzaG91bGQgbm90IG1hdGNoIHNlYXJjaCBxdWVy
eS4KLSAgICAgICAgdmFyIHRleHQgPSAic2VhcmNoVGVzdCIgKyAiVW5pcXVlU3RyaW5nIjsKLSAg
ICAgICAgcmVzb3VyY2Uuc2VhcmNoSW5Db250ZW50KHRleHQsIHRydWUsIGZhbHNlLCBzdGVwNCk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDQoc2VhcmNoTWF0Y2hlcykKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcFNlYXJjaE1hdGNoZXMoc2VhcmNoTWF0Y2hlcyk7Ci0KLSAg
ICAgICAgdmFyIHRleHQgPSAiW2Etel1lYXJjaFRlc3RVbmlxdWVTdHJpbmciOwotICAgICAgICBy
ZXNvdXJjZS5zZWFyY2hJbkNvbnRlbnQodGV4dCwgZmFsc2UsIHRydWUsIHN0ZXA1KTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBzdGVwNShzZWFyY2hNYXRjaGVzKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wU2VhcmNoTWF0Y2hlcyhzZWFyY2hNYXRjaGVzKTsKLQotICAgICAgICB2
YXIgdGV4dCA9ICJbYS16XWVhcmNoVGVzdFVuaXF1ZVN0cmluZyI7Ci0gICAgICAgIHJlc291cmNl
LnNlYXJjaEluQ29udGVudCh0ZXh0LCB0cnVlLCB0cnVlLCBzdGVwNik7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gc3RlcDYoc2VhcmNoTWF0Y2hlcykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcFNlYXJjaE1hdGNoZXMoc2VhcmNoTWF0Y2hlcyk7Ci0KLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPHA+VGVzdHMgc2luZ2xlIHJlc291cmNlIHNlYXJjaCBpbiBpbnNwZWN0b3IgcGFnZSBhZ2Vu
dC48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Njg5OTgiPkJ1ZyA2ODk5ODwvYT4KLQotPGlmcmFtZSBzcmM9InJlc291cmNlcy9zZWFyY2guaHRt
bCIgb25sb2FkPSJydW5UZXN0KCkiPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1yZXNvdXJjZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3Nl
YXJjaC1pbi1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhMmFmZWM3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3NlYXJjaC9zZWFyY2gtaW4tcmVzb3VyY2VzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDI4ICswLDAgQEAKLVRlc3RzIGJhY2tlbmQgc2VhcmNoIGluIGluc3BlY3Rvci4KLQot
QnVnIDYxMjA1ICAKLUNhc2UgaW5zZW5zaXRpdmUsIG5vbiByZWdleDoKLVNlYXJjaCByZXN1bHRz
OiAKLXVybDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9zZWFyY2gvcmVzb3VyY2Vz
L3NlYXJjaC5jc3MsIG1hdGNoZXNDb3VudDogMwotdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLmpzLCBtYXRjaGVzQ291bnQ6IDUKLXVy
bDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJj
aC5odG1sLCBtYXRjaGVzQ291bnQ6IDMKLQotQ2FzZSBzZW5zaXRpdmUsIG5vbiByZWdleDoKLVNl
YXJjaCByZXN1bHRzOiAKLXVybDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9zZWFy
Y2gvcmVzb3VyY2VzL3NlYXJjaC5jc3MsIG1hdGNoZXNDb3VudDogMwotdXJsOiBodHRwOi8vMTI3
LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLmpzLCBtYXRjaGVz
Q291bnQ6IDQKLXVybDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9zZWFyY2gvcmVz
b3VyY2VzL3NlYXJjaC5odG1sLCBtYXRjaGVzQ291bnQ6IDMKLQotQ2FzZSBpbnNlbnNpdGl2ZSwg
cmVnZXg6Ci1TZWFyY2ggcmVzdWx0czogCi11cmw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNw
ZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guY3NzLCBtYXRjaGVzQ291bnQ6IDMKLXVybDog
aHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJjaC5q
cywgbWF0Y2hlc0NvdW50OiA1Ci11cmw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
c2VhcmNoL3Jlc291cmNlcy9zZWFyY2guaHRtbCwgbWF0Y2hlc0NvdW50OiAzCi0KLUNhc2Ugc2Vu
c2l0aXZlLCByZWdleDoKLVNlYXJjaCByZXN1bHRzOiAKLXVybDogaHR0cDovLzEyNy4wLjAuMTo4
MDAwL2luc3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJjaC5jc3MsIG1hdGNoZXNDb3VudDog
MwotdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMv
c2VhcmNoLmpzLCBtYXRjaGVzQ291bnQ6IDQKLXVybDogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9zZWFyY2gvcmVzb3VyY2VzL3NlYXJjaC5odG1sLCBtYXRjaGVzQ291bnQ6IDMKLQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2Vh
cmNoLWluLXJlc291cmNlcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
c2VhcmNoL3NlYXJjaC1pbi1yZXNvdXJjZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjk5OTllYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9zZWFyY2gvc2VhcmNoLWluLXJlc291cmNlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NDkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2VhcmNoLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIC8vIFRoaXMgZmlsZSBzaG91bGQgbm90
IG1hdGNoIHNlYXJjaCBxdWVyeS4KLSAgICB2YXIgdGV4dCA9ICJzZWFyY2hUZXN0IiArICJVbmlx
dWVTdHJpbmciOwotCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNhc2UgaW5zZW5zaXRp
dmUsIG5vbiByZWdleDoiKTsKLSAgICBQYWdlQWdlbnQuc2VhcmNoSW5SZXNvdXJjZXModGV4dCwg
ZmFsc2UsIGZhbHNlLCBzdGVwMik7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMihlcnJvciwgc2VhcmNo
UmVzdWx0cykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlYXJjaFJlc3VsdHMo
c2VhcmNoUmVzdWx0cyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDYXNlIHNl
bnNpdGl2ZSwgbm9uIHJlZ2V4OiIpOwotICAgICAgICBQYWdlQWdlbnQuc2VhcmNoSW5SZXNvdXJj
ZXModGV4dCwgdHJ1ZSwgZmFsc2UsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MyhlcnJvciwgc2VhcmNoUmVzdWx0cykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cFNlYXJjaFJlc3VsdHMoc2VhcmNoUmVzdWx0cyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJDYXNlIGluc2Vuc2l0aXZlLCByZWdleDoiKTsKLSAgICAgICAgUGFnZUFnZW50LnNl
YXJjaEluUmVzb3VyY2VzKHRleHQsIGZhbHNlLCB0cnVlLCBzdGVwNCk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gc3RlcDQoZXJyb3IsIHNlYXJjaFJlc3VsdHMpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBTZWFyY2hSZXN1bHRzKHNlYXJjaFJlc3VsdHMpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ2FzZSBzZW5zaXRpdmUsIHJlZ2V4OiIpOwotICAgICAgICBQ
YWdlQWdlbnQuc2VhcmNoSW5SZXNvdXJjZXModGV4dCwgdHJ1ZSwgdHJ1ZSwgc3RlcDUpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA1KGVycm9yLCBzZWFyY2hSZXN1bHRzKQotICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VhcmNoUmVzdWx0cyhzZWFyY2hSZXN1bHRzKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHA+VGVzdHMgYmFja2VuZCBzZWFyY2ggaW4gaW5zcGVjdG9yLjwv
cD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTIw
NSI+QnVnIDYxMjA1PC9hPgotCi08aWZyYW1lIHNyYz0icmVzb3VyY2VzL3NlYXJjaC5odG1sIiBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXNjcmlwdC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWlu
LXNjcmlwdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczN2Q2
N2UuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNo
L3NlYXJjaC1pbi1zY3JpcHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAs
MCBAQAotVGVzdHMgc2NyaXB0IHNlYXJjaCBpbiBpbnNwZWN0b3IgZGVidWdnZXIgYWdlbnQuCi0K
LUJ1ZyA2OTAxNSAgCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLWh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guanMKLVNlYXJjaCBtYXRjaGVzOiAK
LWxpbmVOdW1iZXI6IDAsIGxpbmU6ICdmdW5jdGlvbiBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCkn
Ci1saW5lTnVtYmVyOiAzLCBsaW5lOiAnICAgIC8vIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdv
IG9jY3VyZW5jZXMgb24gdGhlIHNhbWUgbGluZSBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nJwotbGlu
ZU51bWJlcjogOSwgbGluZTogJyAgICBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCk7JwotbGluZU51
bWJlcjogMTAsIGxpbmU6ICcgICAgLy8gU0VBUkNIVGVzdFVuaXF1ZVN0cmluZygpOycKLQotU2Vh
cmNoIG1hdGNoZXM6IAotbGluZU51bWJlcjogMCwgbGluZTogJ2Z1bmN0aW9uIHNlYXJjaFRlc3RV
bmlxdWVTdHJpbmcoKScKLWxpbmVOdW1iZXI6IDMsIGxpbmU6ICcgICAgLy8gc2VhcmNoVGVzdFVu
aXF1ZVN0cmluZyB0d28gb2NjdXJlbmNlcyBvbiB0aGUgc2FtZSBsaW5lIHNlYXJjaFRlc3RVbmlx
dWVTdHJpbmcnCi1saW5lTnVtYmVyOiA5LCBsaW5lOiAnICAgIHNlYXJjaFRlc3RVbmlxdWVTdHJp
bmcoKTsnCi0KLVNlYXJjaCBtYXRjaGVzOiAKLWxpbmVOdW1iZXI6IDAsIGxpbmU6ICdmdW5jdGlv
biBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCknCi1saW5lTnVtYmVyOiAzLCBsaW5lOiAnICAgIC8v
IHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdvIG9jY3VyZW5jZXMgb24gdGhlIHNhbWUgbGluZSBz
ZWFyY2hUZXN0VW5pcXVlU3RyaW5nJwotbGluZU51bWJlcjogOSwgbGluZTogJyAgICBzZWFyY2hU
ZXN0VW5pcXVlU3RyaW5nKCk7JwotbGluZU51bWJlcjogMTAsIGxpbmU6ICcgICAgLy8gU0VBUkNI
VGVzdFVuaXF1ZVN0cmluZygpOycKLQotU2VhcmNoIG1hdGNoZXM6IAotbGluZU51bWJlcjogMCwg
bGluZTogJ2Z1bmN0aW9uIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKScKLWxpbmVOdW1iZXI6IDMs
IGxpbmU6ICcgICAgLy8gc2VhcmNoVGVzdFVuaXF1ZVN0cmluZyB0d28gb2NjdXJlbmNlcyBvbiB0
aGUgc2FtZSBsaW5lIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcnCi1saW5lTnVtYmVyOiA5LCBsaW5l
OiAnICAgIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKTsnCi0KLURlYnVnZ2VyIHdhcyBkaXNhYmxl
ZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNo
L3NlYXJjaC1pbi1zY3JpcHQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3NlYXJjaC9zZWFyY2gtaW4tc2NyaXB0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDk4OWNiMGMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3Ivc2VhcmNoL3NlYXJjaC1pbi1zY3JpcHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzZWFyY2gtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17
Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGVwMSk7Ci0gICAgdmFyIHNj
cmlwdDsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QucnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5pc2hlZChbInNlYXJjaC5qcyJdLCBzdGVwMik7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5zaG93U2NyaXB0U291cmNlKCJzZWFyY2guanMiLCBzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgdmFyIHVybCA9ICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvaW5zcGVjdG9yL3NlYXJjaC9yZXNvdXJjZXMvc2VhcmNoLmpzIjsKLSAgICAgICAgdmFy
IHNjcmlwdHMgPSBJbnNwZWN0b3JUZXN0LnF1ZXJ5U2NyaXB0cyhmdW5jdGlvbihzKSB7IHJldHVy
biBzLnNvdXJjZVVSTCA9PT0gdXJsOyB9KTsKLSAgICAgICAgc2NyaXB0ID0gc2NyaXB0c1swXTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoc2NyaXB0LnNvdXJjZVVSTCk7Ci0KLSAg
ICAgICAgLy8gVGhpcyBmaWxlIHNob3VsZCBub3QgbWF0Y2ggc2VhcmNoIHF1ZXJ5LgotICAgICAg
ICB2YXIgdGV4dCA9ICJzZWFyY2hUZXN0IiArICJVbmlxdWVTdHJpbmciOwotICAgICAgICBzY3Jp
cHQuc2VhcmNoSW5Db250ZW50KHRleHQsIGZhbHNlLCBmYWxzZSwgc3RlcDQpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHN0ZXA0KHNlYXJjaE1hdGNoZXMpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBTZWFyY2hNYXRjaGVzKHNlYXJjaE1hdGNoZXMpOwotCi0gICAgICAgIC8vIFRo
aXMgZmlsZSBzaG91bGQgbm90IG1hdGNoIHNlYXJjaCBxdWVyeS4KLSAgICAgICAgdmFyIHRleHQg
PSAic2VhcmNoVGVzdCIgKyAiVW5pcXVlU3RyaW5nIjsKLSAgICAgICAgc2NyaXB0LnNlYXJjaElu
Q29udGVudCh0ZXh0LCB0cnVlLCBmYWxzZSwgc3RlcDUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHN0ZXA1KHNlYXJjaE1hdGNoZXMpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBT
ZWFyY2hNYXRjaGVzKHNlYXJjaE1hdGNoZXMpOwotCi0gICAgICAgIHZhciB0ZXh0ID0gIlthLXpd
ZWFyY2hUZXN0VW5pcXVlU3RyaW5nIjsKLSAgICAgICAgc2NyaXB0LnNlYXJjaEluQ29udGVudCh0
ZXh0LCBmYWxzZSwgdHJ1ZSwgc3RlcDYpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA2KHNl
YXJjaE1hdGNoZXMpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWFyY2hNYXRj
aGVzKHNlYXJjaE1hdGNoZXMpOwotCi0gICAgICAgIHZhciB0ZXh0ID0gIlthLXpdZWFyY2hUZXN0
VW5pcXVlU3RyaW5nIjsKLSAgICAgICAgc2NyaXB0LnNlYXJjaEluQ29udGVudCh0ZXh0LCB0cnVl
LCB0cnVlLCBzdGVwNyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDcoc2VhcmNoTWF0Y2hl
cykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlYXJjaE1hdGNoZXMoc2VhcmNo
TWF0Y2hlcyk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgp
OwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UZXN0cyBzY3JpcHQg
c2VhcmNoIGluIGluc3BlY3RvciBkZWJ1Z2dlciBhZ2VudC48L3A+Ci08YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwMTUiPkJ1ZyA2OTAxNTwvYT4KLQot
PGlmcmFtZSBzcmM9InJlc291cmNlcy9zZWFyY2guaHRtbCIgb25sb2FkPSJydW5UZXN0KCkiPgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1zdGF0aWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2VhcmNoL3NlYXJjaC1pbi1zdGF0aWMtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTNlNWIyLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tc3RhdGljLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLVRlc3RzIHN0YXRpYyBj
b250ZW50IHByb3ZpZGVyIHNlYXJjaC4KLQotQnVnIDcwMzU0ICAKLWh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9pbnNwZWN0b3Ivc2VhcmNoL3Jlc291cmNlcy9zZWFyY2guanMKLVNlYXJjaCBtYXRjaGVz
OiAKLWxpbmVOdW1iZXI6IDAsIGxpbmU6ICdmdW5jdGlvbiBzZWFyY2hUZXN0VW5pcXVlU3RyaW5n
KCknCi1saW5lTnVtYmVyOiAzLCBsaW5lOiAnICAgIC8vIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcg
dHdvIG9jY3VyZW5jZXMgb24gdGhlIHNhbWUgbGluZSBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nJwot
bGluZU51bWJlcjogOSwgbGluZTogJyAgICBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCk7JwotCi1T
ZWFyY2ggbWF0Y2hlczogCi1saW5lTnVtYmVyOiAwLCBsaW5lOiAnZnVuY3Rpb24gc2VhcmNoVGVz
dFVuaXF1ZVN0cmluZygpJwotbGluZU51bWJlcjogMywgbGluZTogJyAgICAvLyBzZWFyY2hUZXN0
VW5pcXVlU3RyaW5nIHR3byBvY2N1cmVuY2VzIG9uIHRoZSBzYW1lIGxpbmUgc2VhcmNoVGVzdFVu
aXF1ZVN0cmluZycKLWxpbmVOdW1iZXI6IDksIGxpbmU6ICcgICAgc2VhcmNoVGVzdFVuaXF1ZVN0
cmluZygpOycKLQotU2VhcmNoIG1hdGNoZXM6IAotbGluZU51bWJlcjogMCwgbGluZTogJ2Z1bmN0
aW9uIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcoKScKLWxpbmVOdW1iZXI6IDMsIGxpbmU6ICcgICAg
Ly8gc2VhcmNoVGVzdFVuaXF1ZVN0cmluZyB0d28gb2NjdXJlbmNlcyBvbiB0aGUgc2FtZSBsaW5l
IHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcnCi1saW5lTnVtYmVyOiA5LCBsaW5lOiAnICAgIHNlYXJj
aFRlc3RVbmlxdWVTdHJpbmcoKTsnCi0KLVNlYXJjaCBtYXRjaGVzOiAKLWxpbmVOdW1iZXI6IDAs
IGxpbmU6ICdmdW5jdGlvbiBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCknCi1saW5lTnVtYmVyOiAz
LCBsaW5lOiAnICAgIC8vIHNlYXJjaFRlc3RVbmlxdWVTdHJpbmcgdHdvIG9jY3VyZW5jZXMgb24g
dGhlIHNhbWUgbGluZSBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nJwotbGluZU51bWJlcjogOSwgbGlu
ZTogJyAgICBzZWFyY2hUZXN0VW5pcXVlU3RyaW5nKCk7JwotCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tc3RhdGljLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLWluLXN0YXRp
Yy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDFhZGRjLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gtaW4tc3Rh
dGljLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2VhcmNoLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3Bl
Y3RvclRlc3QucnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5pc2hlZChbInNlYXJjaC5qcyJdLCBzdGVw
Mik7Ci0gICAgdmFyIHJlc291cmNlOwotICAgIHZhciBzdGF0aWNDb250ZW50UHJvdmlkZXI7Ci0K
LSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICByZXNvdXJjZSA9IFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZUZvclVSTCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9zZWFy
Y2gvcmVzb3VyY2VzL3NlYXJjaC5qcyIpOwotICAgICAgICByZXNvdXJjZS5yZXF1ZXN0Q29udGVu
dChzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAg
c3RhdGljQ29udGVudFByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJv
dmlkZXIoV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCByZXNvdXJjZS5jb250ZW50
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVzb3VyY2UudXJsKTsKLQotICAg
ICAgICB2YXIgdGV4dCA9ICJzZWFyY2hUZXN0VW5pcXVlU3RyaW5nIjsKLSAgICAgICAgc3RhdGlj
Q29udGVudFByb3ZpZGVyLnNlYXJjaEluQ29udGVudCh0ZXh0LCB0cnVlLCBmYWxzZSwgc3RlcDQp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KHNlYXJjaE1hdGNoZXMpCi0gICAgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWFyY2hNYXRjaGVzKHNlYXJjaE1hdGNoZXMpOwotCi0g
ICAgICAgIHZhciB0ZXh0ID0gInNlYXJjaFRlc3RVbmlxdWVTdHJpbmciOwotICAgICAgICBzdGF0
aWNDb250ZW50UHJvdmlkZXIuc2VhcmNoSW5Db250ZW50KHRleHQsIHRydWUsIGZhbHNlLCBzdGVw
NSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDUoc2VhcmNoTWF0Y2hlcykKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlYXJjaE1hdGNoZXMoc2VhcmNoTWF0Y2hlcyk7Ci0K
LSAgICAgICAgdmFyIHRleHQgPSAiW2Etel1lYXJjaFRlc3RVbmlxdWVTdHJpbmciOwotICAgICAg
ICBzdGF0aWNDb250ZW50UHJvdmlkZXIuc2VhcmNoSW5Db250ZW50KHRleHQsIGZhbHNlLCB0cnVl
LCBzdGVwNik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDYoc2VhcmNoTWF0Y2hlcykKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlYXJjaE1hdGNoZXMoc2VhcmNoTWF0Y2hl
cyk7Ci0KLSAgICAgICAgdmFyIHRleHQgPSAiW2Etel1lYXJjaFRlc3RVbmlxdWVTdHJpbmciOwot
ICAgICAgICBzdGF0aWNDb250ZW50UHJvdmlkZXIuc2VhcmNoSW5Db250ZW50KHRleHQsIHRydWUs
IHRydWUsIHN0ZXA3KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNyhzZWFyY2hNYXRjaGVz
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VhcmNoTWF0Y2hlcyhzZWFyY2hN
YXRjaGVzKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0K
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UZXN0cyBzdGF0aWMgY29udGVudCBw
cm92aWRlciBzZWFyY2guPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcwMzU0Ij5CdWcgNzAzNTQ8L2E+Ci0KLTxpZnJhbWUgc3JjPSJyZXNvdXJj
ZXMvc2VhcmNoLmh0bWwiIG9ubG9hZD0icnVuVGVzdCgpIj4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gt
dGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3NlYXJjaC9zZWFyY2gt
dGVzdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTI3NjI4MS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zZWFyY2gvc2VhcmNoLXRlc3Qu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi12YXIgaW5pdGlhbGl6ZV9TZWFyY2hU
ZXN0ID0gZnVuY3Rpb24oKSB7Ci0KLUluc3BlY3RvclRlc3QuZHVtcFNlYXJjaFJlc3VsdHMgPSBm
dW5jdGlvbihzZWFyY2hSZXN1bHRzKQotewotICAgIGZ1bmN0aW9uIGNvbXBhcmF0b3IoYSwgYikK
LSAgICB7Ci0gICAgICAgIGEudXJsLmxvY2FsZUNvbXBhcmUoYi51cmwpOwotICAgIH0KLSAgICBz
ZWFyY2hSZXN1bHRzLnNvcnQoY29tcGFyYXRvcik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiU2VhcmNoIHJlc3VsdHM6ICIpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VhcmNo
UmVzdWx0cy5sZW5ndGg7IGkrKykKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInVy
bDogIiArIHNlYXJjaFJlc3VsdHNbaV0udXJsICsgIiwgbWF0Y2hlc0NvdW50OiAiICsgc2VhcmNo
UmVzdWx0c1tpXS5tYXRjaGVzQ291bnQpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIi
KTsKLX07Ci0KLUluc3BlY3RvclRlc3QuZHVtcFNlYXJjaE1hdGNoZXMgPSBmdW5jdGlvbihzZWFy
Y2hNYXRjaGVzKQotewotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZWFyY2ggbWF0Y2hl
czogIik7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWFyY2hNYXRjaGVzLmxlbmd0aDsgaSsr
KQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgibGluZU51bWJlcjogIiArIHNlYXJj
aE1hdGNoZXNbaV0ubGluZU51bWJlciArICIsIGxpbmU6ICciICsgc2VhcmNoTWF0Y2hlc1tpXS5s
aW5lQ29udGVudCArICInIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotfTsK
LQotfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0YWNr
dHJhY2VzL2NzcC1pbmplY3RlZC1jb250ZW50LXdhcm5pbmctY29udGFpbnMtc3RhY2t0cmFjZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zdGFja3RyYWNl
cy9jc3AtaW5qZWN0ZWQtY29udGVudC13YXJuaW5nLWNvbnRhaW5zLXN0YWNrdHJhY2UtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOWE4MDQ0Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0YWNrdHJhY2VzL2NzcC1pbmpl
Y3RlZC1jb250ZW50LXdhcm5pbmctY29udGFpbnMtc3RhY2t0cmFjZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8g
bG9hZCB0aGUgaW1hZ2UgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvYWJlLnBuZycg
YmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5
IGRpcmVjdGl2ZTogImltZy1zcmMgJ25vbmUnIi4KLQotVGhpcyB0ZXN0IGluamVjdHMgYSBibG9j
a2VkIGltYWdlIGZyb20gSmF2YVNjcmlwdC4gVGhlIHJlc3VsdGluZyBjb25zb2xlIGVycm9yIHNo
b3VsZCBjb250YWluIGEgc3RhY2sgdHJhY2UuCi0KLQotTWVzc2FnZVswXTogY3NwLWluamVjdGVk
LWNvbnRlbnQtd2FybmluZy1jb250YWlucy1zdGFja3RyYWNlLmh0bWw6MTIgUmVmdXNlZCB0byBs
b2FkIHRoZSBpbWFnZSAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9hYmUucG5nJyBi
ZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kg
ZGlyZWN0aXZlOiAiaW1nLXNyYyAnbm9uZSciLgotCi1TdGFjayBUcmFjZToKLQotICAgIHVybDog
aHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9zdGFja3RyYWNlcy9jc3AtaW5qZWN0ZWQt
Y29udGVudC13YXJuaW5nLWNvbnRhaW5zLXN0YWNrdHJhY2UuaHRtbAotICAgIGZ1bmN0aW9uOiB0
aGlzVGVzdAotICAgIGxpbmU6IDEyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3N0YWNrdHJhY2VzL2NzcC1pbmplY3RlZC1jb250ZW50LXdhcm5pbmctY29u
dGFpbnMtc3RhY2t0cmFjZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
c3RhY2t0cmFjZXMvY3NwLWluamVjdGVkLWNvbnRlbnQtd2FybmluZy1jb250YWlucy1zdGFja3Ry
YWNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiMDFlNWUuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3RhY2t0cmFjZXMvY3NwLWlu
amVjdGVkLWNvbnRlbnQtd2FybmluZy1jb250YWlucy1zdGFja3RyYWNlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFk
PgotICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVNlY3VyaXR5LVBvbGljeScgY29u
dGVudD0iaW1nLXNyYyAnbm9uZSciPgotICAgICAgICA8c2NyaXB0IHNyYz0nL2luc3BlY3Rvci9j
b25zb2xlLXRlc3QuanMnPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0nL2luc3BlY3Rv
ci9kZWJ1Z2dlci10ZXN0LmpzJz48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Jy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMnPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0n
L2luc3BlY3Rvci9zdGFja3RyYWNlcy9yZXNvdXJjZXMvc3RhY2t0cmFjZS10ZXN0LmpzJz48L3Nj
cmlwdD4KLSAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIGZ1bmN0aW9uIHRoaXNUZXN0KCkg
ewotICAgICAgICAgICAgICAgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcn
KTsKLSAgICAgICAgICAgICAgICBpbWcuc3JjID0gJy9yZXNvdXJjZXMvYWJlLnBuZyc7Ci0gICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWcpOwotICAgICAgICAgICAg
fQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHkgb25sb2FkPSdydW5U
ZXN0KCknPgotICAgICAgICA8cD5UaGlzIHRlc3QgaW5qZWN0cyBhIGJsb2NrZWQgaW1hZ2UgZnJv
bSBKYXZhU2NyaXB0LiBUaGUgcmVzdWx0aW5nIGNvbnNvbGUKLSAgICAgICAgZXJyb3Igc2hvdWxk
IGNvbnRhaW4gYSBzdGFjayB0cmFjZS48L3A+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3RhY2t0cmFjZXMvY3NwLWlu
bGluZS13YXJuaW5nLWNvbnRhaW5zLXN0YWNrdHJhY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3RhY2t0cmFjZXMvY3NwLWlubGluZS13YXJuaW5nLWNv
bnRhaW5zLXN0YWNrdHJhY2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3ZjQxODBjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3N0YWNrdHJhY2VzL2NzcC1pbmxpbmUtd2FybmluZy1jb250YWlucy1zdGFja3RyYWNlLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLUNPTlNPTEUgTUVTU0FH
RTogUmVmdXNlZCB0byBleGVjdXRlIGlubGluZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0
aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1z
cmMgJ3NlbGYnIi4KLQotVGhpcyB0ZXN0IGluamVjdHMgYW4gaW5saW5lIHNjcmlwdCBmcm9tIEph
dmFTY3JpcHQuIFRoZSByZXN1bHRpbmcgY29uc29sZSBlcnJvciBzaG91bGQgY29udGFpbiBhIHN0
YWNrIHRyYWNlLgotCi1NZXNzYWdlWzBdOiBbbmF0aXZlIGNvZGVdOjAgUmVmdXNlZCB0byBleGVj
dXRlIGlubGluZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRl
bnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1zcmMgJ3NlbGYnIi4KLQotU3Rh
Y2sgVHJhY2U6Ci0KLSAgICB1cmw6IFtuYXRpdmUgY29kZV0KLSAgICBmdW5jdGlvbjogYXBwZW5k
Q2hpbGQKLSAgICBsaW5lOiAwCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3N0YWNrdHJhY2VzL2NzcC1pbmxpbmUtd2FybmluZy1jb250YWlucy1zdGFja3Ry
YWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zdGFja3RyYWNlcy9j
c3AtaW5saW5lLXdhcm5pbmctY29udGFpbnMtc3RhY2t0cmFjZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4ZDg1MWQwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3N0YWNrdHJhY2VzL2NzcC1pbmxpbmUtd2FybmluZy1jb250YWlucy1z
dGFja3RyYWNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSdDb250
ZW50LVNlY3VyaXR5LVBvbGljeScgY29udGVudD0ic2NyaXB0LXNyYyAnc2VsZiciPgotICAgICAg
ICA8c2NyaXB0IHNyYz0nL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMnPjwvc2NyaXB0PgotICAg
ICAgICA8c2NyaXB0IHNyYz0nL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzJz48L3NjcmlwdD4K
LSAgICAgICAgPHNjcmlwdCBzcmM9Jy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMnPjwvc2Ny
aXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0nL2luc3BlY3Rvci9zdGFja3RyYWNlcy9yZXNvdXJj
ZXMvc3RhY2t0cmFjZS10ZXN0LmpzJz48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Jy9p
bnNwZWN0b3Ivc3RhY2t0cmFjZXMvcmVzb3VyY2VzL2NzcC1pbmxpbmUtdGVzdC5qcyc+PC9zY3Jp
cHQ+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8cD5UaGlzIHRlc3QgaW5qZWN0
cyBhbiBpbmxpbmUgc2NyaXB0IGZyb20gSmF2YVNjcmlwdC4gVGhlIHJlc3VsdGluZwotICAgICAg
ICBjb25zb2xlIGVycm9yIHNob3VsZCBjb250YWluIGEgc3RhY2sgdHJhY2UuPC9wPgotICAgIDwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3N0YWNrdHJhY2VzL2NzcC1zZXRJbnRlcnZhbC13YXJuaW5nLWNvbnRhaW5zLXN0YWNrdHJh
Y2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3RhY2t0
cmFjZXMvY3NwLXNldEludGVydmFsLXdhcm5pbmctY29udGFpbnMtc3RhY2t0cmFjZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5ZDNhZGIuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3RhY2t0cmFjZXMvY3NwLXNldElu
dGVydmFsLXdhcm5pbmctY29udGFpbnMtc3RhY2t0cmFjZS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gZXZhbHVh
dGUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3Vy
aXR5IFBvbGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtc3JjICdzZWxmJyAndW5zYWZlLWlubGluZSci
LgotCi1UaGlzIHRlc3QgYXR0ZW1wdHMgdG8gZXZhbHVhdGUgc2NyaXB0IHZpYSBzZXRJbnRlcnZh
bC4gVGhlIHJlc3VsdGluZyBjb25zb2xlIGVycm9yIHNob3VsZCBjb250YWluIGEgc3RhY2sgdHJh
Y2UgdGllZCB0byBsaW5lIDExLgotCi1NZXNzYWdlWzBdOiBjc3Atc2V0SW50ZXJ2YWwtd2Fybmlu
Zy1jb250YWlucy1zdGFja3RyYWNlLmh0bWw6MTEgUmVmdXNlZCB0byBldmFsdWF0ZSBzY3JpcHQg
YmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5
IGRpcmVjdGl2ZTogInNjcmlwdC1zcmMgJ3NlbGYnICd1bnNhZmUtaW5saW5lJyIuCi0KLVN0YWNr
IFRyYWNlOgotCi0gICAgdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3N0YWNr
dHJhY2VzL2NzcC1zZXRJbnRlcnZhbC13YXJuaW5nLWNvbnRhaW5zLXN0YWNrdHJhY2UuaHRtbAot
ICAgIGZ1bmN0aW9uOiB0aGlzVGVzdAotICAgIGxpbmU6IDExCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0YWNrdHJhY2VzL2NzcC1zZXRJbnRlcnZhbC13
YXJuaW5nLWNvbnRhaW5zLXN0YWNrdHJhY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3N0YWNrdHJhY2VzL2NzcC1zZXRJbnRlcnZhbC13YXJuaW5nLWNvbnRhaW5zLXN0
YWNrdHJhY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc2N2JmMy4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zdGFja3RyYWNlcy9j
c3Atc2V0SW50ZXJ2YWwtd2FybmluZy1jb250YWlucy1zdGFja3RyYWNlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFk
PgotICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVNlY3VyaXR5LVBvbGljeScgY29u
dGVudD0ic2NyaXB0LXNyYyAnc2VsZicgJ3Vuc2FmZS1pbmxpbmUnIj4KLSAgICAgICAgPHNjcmlw
dCBzcmM9Jy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzJz48L3NjcmlwdD4KLSAgICAgICAgPHNj
cmlwdCBzcmM9Jy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyc+PC9zY3JpcHQ+Ci0gICAgICAg
IDxzY3JpcHQgc3JjPScvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzJz48L3NjcmlwdD4KLSAg
ICAgICAgPHNjcmlwdCBzcmM9Jy9pbnNwZWN0b3Ivc3RhY2t0cmFjZXMvcmVzb3VyY2VzL3N0YWNr
dHJhY2UtdGVzdC5qcyc+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBm
dW5jdGlvbiB0aGlzVGVzdCgpIHsKLSAgICAgICAgICAgICAgICB2YXIgaWQgPSBzZXRJbnRlcnZh
bCgnbG9nKCJGQUlMIiknLCAwKTsKLSAgICAgICAgICAgICAgICBpZiAoaWQgIT0gMCkKLSAgICAg
ICAgICAgICAgICAgICAgbG9nKCdGQUlMOiBSZXR1cm4gdmFsdWUgZm9yIHN0cmluZyAoc2hvdWxk
IGJlIDApOiAnICsgaWQpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgbG9nKCdQQVNTOiBSZXR1cm4gdmFsdWUgZm9yIGJsb2NrZWQgc2V0SW50ZXJ2YWwgaXMgMCcp
OwotICAgICAgICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJv
ZHkgb25sb2FkPSdydW5UZXN0KCknPgotICAgICAgICA8cD5UaGlzIHRlc3QgYXR0ZW1wdHMgdG8g
ZXZhbHVhdGUgc2NyaXB0IHZpYSBzZXRJbnRlcnZhbC4gVGhlIHJlc3VsdGluZyBjb25zb2xlCi0g
ICAgICAgIGVycm9yIHNob3VsZCBjb250YWluIGEgc3RhY2sgdHJhY2UgdGllZCB0byBsaW5lIDEx
LjwvcD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9zdGFja3RyYWNlcy9jc3Atc2V0VGltZW91dC13YXJuaW5nLWNvbnRh
aW5zLXN0YWNrdHJhY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3Ivc3RhY2t0cmFjZXMvY3NwLXNldFRpbWVvdXQtd2FybmluZy1jb250YWlucy1zdGFja3Ry
YWNlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmU0NTQyMi4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zdGFja3RyYWNl
cy9jc3Atc2V0VGltZW91dC13YXJuaW5nLWNvbnRhaW5zLXN0YWNrdHJhY2UtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2Vk
IHRvIGV2YWx1YXRlIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29u
dGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LXNyYyAnc2VsZicgJ3Vuc2Fm
ZS1pbmxpbmUnIi4KLQotVGhpcyB0ZXN0IGF0dGVtcHRzIHRvIGV2YWx1YXRlIHNjcmlwdCB2aWEg
c2V0VGltZW91dC4gVGhlIHJlc3VsdGluZyBjb25zb2xlIGVycm9yIHNob3VsZCBjb250YWluIGEg
c3RhY2sgdHJhY2UgdGllZCB0byBsaW5lIDExLgotCi1NZXNzYWdlWzBdOiBjc3Atc2V0VGltZW91
dC13YXJuaW5nLWNvbnRhaW5zLXN0YWNrdHJhY2UuaHRtbDoxMSBSZWZ1c2VkIHRvIGV2YWx1YXRl
IHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LXNyYyAnc2VsZicgJ3Vuc2FmZS1pbmxpbmUnIi4K
LQotU3RhY2sgVHJhY2U6Ci0KLSAgICB1cmw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0
b3Ivc3RhY2t0cmFjZXMvY3NwLXNldFRpbWVvdXQtd2FybmluZy1jb250YWlucy1zdGFja3RyYWNl
Lmh0bWwKLSAgICBmdW5jdGlvbjogdGhpc1Rlc3QKLSAgICBsaW5lOiAxMQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zdGFja3RyYWNlcy9jc3Atc2V0VGlt
ZW91dC13YXJuaW5nLWNvbnRhaW5zLXN0YWNrdHJhY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3N0YWNrdHJhY2VzL2NzcC1zZXRUaW1lb3V0LXdhcm5pbmctY29udGFp
bnMtc3RhY2t0cmFjZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2Q3NDQ2
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0YWNrdHJh
Y2VzL2NzcC1zZXRUaW1lb3V0LXdhcm5pbmctY29udGFpbnMtc3RhY2t0cmFjZS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8
aGVhZD4KLSAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0nQ29udGVudC1TZWN1cml0eS1Qb2xpY3kn
IGNvbnRlbnQ9InNjcmlwdC1zcmMgJ3NlbGYnICd1bnNhZmUtaW5saW5lJyI+Ci0gICAgICAgIDxz
Y3JpcHQgc3JjPScvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyc+PC9zY3JpcHQ+Ci0gICAgICAg
IDxzY3JpcHQgc3JjPScvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMnPjwvc2NyaXB0PgotICAg
ICAgICA8c2NyaXB0IHNyYz0nL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyc+PC9zY3JpcHQ+
Ci0gICAgICAgIDxzY3JpcHQgc3JjPScvaW5zcGVjdG9yL3N0YWNrdHJhY2VzL3Jlc291cmNlcy9z
dGFja3RyYWNlLXRlc3QuanMnPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0PgotICAgICAgICAg
ICAgZnVuY3Rpb24gdGhpc1Rlc3QoKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGlkID0gc2V0VGlt
ZW91dCgnbG9nKCJGQUlMIiknLCAwKTsKLSAgICAgICAgICAgICAgICBpZiAoaWQgIT0gMCkKLSAg
ICAgICAgICAgICAgICAgICAgbG9nKCdGQUlMOiBSZXR1cm4gdmFsdWUgZm9yIHN0cmluZyAoc2hv
dWxkIGJlIDApOiAnICsgaWQpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgbG9nKCdQQVNTOiBSZXR1cm4gdmFsdWUgZm9yIGJsb2NrZWQgc2V0SW50ZXJ2YWwgaXMg
MCcpOwotICAgICAgICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAg
PGJvZHkgb25sb2FkPSdydW5UZXN0KCknPgotICAgICAgICA8cD5UaGlzIHRlc3QgYXR0ZW1wdHMg
dG8gZXZhbHVhdGUgc2NyaXB0IHZpYSBzZXRUaW1lb3V0LiBUaGUgcmVzdWx0aW5nIGNvbnNvbGUK
LSAgICAgICAgZXJyb3Igc2hvdWxkIGNvbnRhaW4gYSBzdGFjayB0cmFjZSB0aWVkIHRvIGxpbmUg
MTEuPC9wPgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3N0YWNrdHJhY2VzL3Jlc291cmNlcy9jc3AtaW5saW5lLXRlc3Qu
anMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zdGFja3RyYWNlcy9yZXNvdXJj
ZXMvY3NwLWlubGluZS10ZXN0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Nzgz
NDRmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0YWNr
dHJhY2VzL3Jlc291cmNlcy9jc3AtaW5saW5lLXRlc3QuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2
ICswLDAgQEAKLWZ1bmN0aW9uIHRoaXNUZXN0KCkgewotICAgIHZhciBzID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnc2NyaXB0Jyk7Ci0gICAgcy5pbm5lclRleHQgPSAiYWxlcnQoJ0ZBSUwuJyk7
IgotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocyk7Ci19Ci13aW5kb3cub25sb2FkID0g
cnVuVGVzdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0
YWNrdHJhY2VzL3Jlc291cmNlcy9zdGFja3RyYWNlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9zdGFja3RyYWNlcy9yZXNvdXJjZXMvc3RhY2t0cmFjZS10ZXN0Lmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzUxZjBhLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0YWNrdHJhY2VzL3Jlc291cmNlcy9zdGFj
a3RyYWNlLXRlc3QuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1mdW5jdGlvbiB0
ZXN0KCkgewotICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoYWRkTWVzc2FnZSk7
Ci0KLSAgICBmdW5jdGlvbiBhZGRNZXNzYWdlKG1lc3NhZ2UpIHsKLSAgICAgICAgdmFyIG1lc3Nh
Z2VzID0gV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll92aXNpYmxlTWVzc2FnZXM7Ci0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAg
IHZhciBtID0gbWVzc2FnZXNbaV07Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiTWVzc2FnZVsiICsgaSArICJdOiAiICsgV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJM
KG0udXJsKSArICI6IiArIG0ubGluZSArICIgIiArIG0ubWVzc2FnZSk7Ci0gICAgICAgICAgICB2
YXIgdHJhY2UgPSBtLnN0YWNrVHJhY2U7Ci0gICAgICAgICAgICBpZiAoIXRyYWNlKSB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUw6IG5vIHN0YWNrIHRyYWNl
IGF0dGFjaGVkIHRvIG1lc3NhZ2UgIyIgKyBpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlN0YWNrIFRyYWNlOlxuIik7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICB1cmw6ICIgKyB0cmFj
ZVswXS51cmwpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAg
ZnVuY3Rpb246ICIgKyB0cmFjZVswXS5mdW5jdGlvbk5hbWUpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgbGluZTogIiArIHRyYWNlWzBdLmxpbmVOdW1iZXIp
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7Ci0gICAgfQotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInRoaXNU
ZXN0KCkiKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9tb2RpZnktY3Jvc3MtZG9tYWluLXJ1bGUuY3NzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21vZGlmeS1jcm9zcy1kb21haW4tcnVsZS5jc3MKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhMmVlMWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21vZGlmeS1jcm9zcy1kb21haW4tcnVsZS5j
c3MKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLSNpbnNwZWN0ZWQgewotICBjb2xvcjog
Z3JlZW47Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9z
dHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1yZWRpcmVjdGVkLWNzcy5jc3MgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1yZWRpcmVjdGVkLWNz
cy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5NTk2MGMuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHls
ZXMtcmVkaXJlY3RlZC1jc3MuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1kaXYg
ewotICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtcmVkaXJlY3Rl
ZC1jc3MucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291
cmNlcy9zdHlsZXMtcmVkaXJlY3RlZC1jc3MucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0ODk3OWNkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9yZXNvdXJjZXMvc3R5bGVzLXJlZGlyZWN0ZWQtY3NzLnBocAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotPD9waHAKLSAgICBoZWFkZXIoIkxvY2F0aW9uOiBzdHlsZXMt
cmVkaXJlY3RlZC1jc3MuY3NzIik7Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy94c2wtdHJhbnNmb3JtZWQueHNsIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy94c2wtdHJhbnNm
b3JtZWQueHNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTZiMTc3Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMv
eHNsLXRyYW5zZm9ybWVkLnhzbAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTw/eG1s
IHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J3V0Zi04Jz8+Ci08eHNsOnN0eWxlc2hlZXQgdmVyc2lv
bj0iMS4wIgotICAgICAgICAgICAgICAgIGlkPSJzdHlsZXNoZWV0IgotICAgICAgICAgICAgICAg
IHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIj4KLSAgICA8
eHNsOnRlbXBsYXRlIG1hdGNoPSJpdGVtcyI+Ci0gICAgICAgIDxodG1sPgotICAgICAgICA8aGVh
ZD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzLXRlc3QuanMiPjwvc2NyaXB0PgotICAgICAg
ICA8c2NyaXB0PgotICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKLSAgICAgICAgewotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHN0ZXAxKTsKLQotICAgICAgICAgICAgZnVuY3Rp
b24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
cnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5pc2hlZChbInhzbC10cmFuc2Zvcm1lZC54c2wiXSwgSW5z
cGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUuYmluZChJbnNwZWN0b3JUZXN0LCBzdGVwMikp
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKCk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLSAgICAgICAgPC9oZWFkPgotICAg
ICAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgICAgIDxwPlRlc3RzIHRoYXQgWFNM
LXRyYW5zZm9ybWVkIGRvY3VtZW50cyBpbiB0aGUgbWFpbiBmcmFtZSBhcmUgcmVuZGVyZWQgY29y
cmVjdGx5IGluIHRoZSBFbGVtZW50cyBwYW5lbC4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTMxMyI+QnVnIDExMTMxMzwvYT48L3A+Ci0gICAgICAg
IDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJpdGVtIj4KLSAgICAgICAgICA8c3Bhbj48eHNsOnZhbHVl
LW9mIHNlbGVjdD0iLiIvPjwvc3Bhbj4KLSAgICAgICAgPC94c2w6Zm9yLWVhY2g+Ci0gICAgICAg
IDwvYm9keT4KLSAgICAgICAgPC9odG1sPgotICAgIDwveHNsOnRlbXBsYXRlPgotPC94c2w6c3R5
bGVzaGVldD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1yZWRpcmVjdGVkLWNzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXJlZGlyZWN0ZWQtY3NzLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzdjZjA3MC4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXJlZGlyZWN0
ZWQtY3NzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMg
dGhhdCBzdHlsZXMgaW4gcmVkaXJlY3RlZCBjc3MgYXJlIGVkaXRhYmxlLgotCi1CdWcgNjg2MzEK
LXRlc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtcmVkaXJlY3RlZC1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9zdHlsZXMtcmVkaXJlY3RlZC1jc3MuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOGYyYmJiMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXJlZGlyZWN0ZWQtY3NzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJyZXNvdXJjZXMvc3R5bGVzLXJlZGlyZWN0ZWQtY3NzLnBocCIgdHlwZT0idGV4
dC9jc3MiPgotPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JT
dHlsZXMoInRlc3RfZGl2Iiwgc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsK
LSAgICAgICAgdmFyIHRyZWVJdGVtID0gSW5zcGVjdG9yVGVzdC5nZXRNYXRjaGVkU3R5bGVQcm9w
ZXJ0eVRyZWVJdGVtKCJiYWNrZ3JvdW5kLWNvbG9yIik7Ci0gICAgICAgIHRyZWVJdGVtLnByb3Bl
cnR5LnNldERpc2FibGVkKHRydWUsIHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MihuZXdTdHlsZSkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghIW5l
d1N0eWxlLCAiQ291bGQgbm90IGRpc2FibGUgc3R5bGUgaW4gcmVkaXJlY3RlZCBjc3MuIik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IHN0eWxl
cyBpbiByZWRpcmVjdGVkIGNzcyBhcmUgZWRpdGFibGUuPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjMxIj5CdWcgNjg2MzE8L2E+Ci0KLTxk
aXYgaWQ9InRlc3RfZGl2Ij50ZXN0PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0eWxlcy94c2wtdHJhbnNmb3Jt
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3hzbC10cmFuc2Zvcm1lZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdlNDE1NTMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3hzbC10cmFuc2Zvcm1lZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzMyArMCwwIEBACi1UZXN0cyB0aGF0IFhTTC10cmFuc2Zvcm1lZCBkb2N1bWVudHMgaW4gdGhl
IG1haW4gZnJhbWUgYXJlIHJlbmRlcmVkIGNvcnJlY3RseSBpbiB0aGUgRWxlbWVudHMgcGFuZWwu
IEJ1ZyAxMTEzMTMKLQotT25lVHdvVGhyZWUKLVBhZ2UgcmVsb2FkZWQuCi0tIDxodG1sPgotICAg
IC0gPGhlYWQ+Ci0gICAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgotICAgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
L2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotICAgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIC0gPHNjcmlwdD4KLSAgICAgICAg
ICAgICAgZnVuY3Rpb24gdGVzdCgpXG4gICAgICAgIHtcbiAgICAgICAgICAgIEluc3BlY3RvclRl
c3QucmVsb2FkUGFnZShzdGVwMSk7XG5cbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKClcbiAg
ICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUmVzb3Vy
Y2VzQXJlRmluaXNoZWQoWyJ4c2wtdHJhbnNmb3JtZWQueHNsIl0sIEluc3BlY3RvclRlc3QuZXhw
YW5kRWxlbWVudHNUcmVlLmJpbmQoSW5zcGVjdG9yVGVzdCwgc3RlcDIpKTtcbiAgICAgICAgICAg
IH1cblxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKVxuICAgICAgICAgICAge1xuICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSgpO1xuICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAg
IH1cbgotICAgICAgICAgIDwvc2NyaXB0PgotICAgICAgPC9oZWFkPgotICAgIC0gPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotICAgICAgICAtIDxwPgotICAgICAgICAgICAgICAiVGVzdHMgdGhh
dCBYU0wtdHJhbnNmb3JtZWQgZG9jdW1lbnRzIGluIHRoZSBtYWluIGZyYW1lIGFyZSByZW5kZXJl
ZCBjb3JyZWN0bHkgaW4gdGhlIEVsZW1lbnRzIHBhbmVsLiAiCi0gICAgICAgICAgICAgIDxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEzMTMiPkJ1ZyAx
MTEzMTM8L2E+Ci0gICAgICAgICAgPC9wPgotICAgICAgICAgIDxzcGFuPk9uZTwvc3Bhbj4KLSAg
ICAgICAgICA8c3Bhbj5Ud288L3NwYW4+Ci0gICAgICAgICAgPHNwYW4+VGhyZWU8L3NwYW4+Ci0g
ICAgICAgIC0gPGRpdj4KLSAgICAgICAgICAgIC0gPGRpdj4KLSAgICAgICAgICAgICAgICAtIDxk
aXYgY2xhc3M9Im91dHB1dCIgaWQ9Im91dHB1dCIgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7Ij4K
LSAgICAgICAgICAgICAgICAgICAgICAiUGFnZSByZWxvYWRlZC4iCi0gICAgICAgICAgICAgICAg
ICAgICAgPGJyPgotICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgIDwvZGl2
PgotICAgICAgICAgIDwvZGl2PgotICAgICAgPC9ib2R5PgotICA8L2h0bWw+Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0eWxlcy94c2wtdHJhbnNmb3Jt
ZWQueG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3hzbC10cmFu
c2Zvcm1lZC54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzNDVjMzguLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3hzbC10cmFu
c2Zvcm1lZC54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTw/eG1sLXN0eWxlc2hl
ZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9InJlc291cmNlcy94c2wtdHJhbnNmb3JtZWQueHNsIj8+
Ci08aXRlbXM+Ci0gIDxpdGVtPk9uZTwvaXRlbT4KLSAgPGl0ZW0+VHdvPC9pdGVtPgotICA8aXRl
bT5UaHJlZTwvaXRlbT4KLTwvaXRlbXM+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9zdHlsZXNoZWV0LXNvdXJjZS1tYXBwaW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0eWxlc2hlZXQtc291cmNlLW1hcHBpbmct
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OThkZjljLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0eWxlc2hlZXQtc291
cmNlLW1hcHBpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1U
ZXN0cyBTb3VyY2VNYXAgYW5kIFN0eWxlU2hlZXRNYXBwaW5nLgotCi1QQVNTCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0eWxlc2hlZXQtc291cmNlLW1h
cHBpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0eWxlc2hlZXQt
c291cmNlLW1hcHBpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjA0NDRm
Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zdHlsZXNo
ZWV0LXNvdXJjZS1tYXBwaW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJkZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJ3
b3Jrc3BhY2UtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIEluc3BlY3RvclRlc3QuY3JlYXRlV29ya3NwYWNlKCk7Ci0gICAgdmFyIGNzc01v
ZGVsID0gbmV3IFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsKEluc3BlY3RvclRlc3QudGVzdFdv
cmtzcGFjZSk7Ci0gICAgdmFyIG1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlNBU1NTb3VyY2VN
YXBwaW5nKGNzc01vZGVsLCBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UsIEluc3BlY3RvclRl
c3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7Ci0gICAgdmFyIHN0eWxlc1NvdXJjZU1h
cHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlc1NvdXJjZU1hcHBpbmcoY3NzTW9kZWwsIElu
c3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JX
b3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KGNzc1VJU291cmNlQ29kZUFkZGVkKTsKLSAg
ICBJbnNwZWN0b3JUZXN0LmFkZE1vY2tVSVNvdXJjZUNvZGVUb1dvcmtzcGFjZSgiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvZXhhbXBsZS5jc3MiLCBXZWJJbnNwZWN0
b3IucmVzb3VyY2VUeXBlcy5TdHlsZXNoZWV0LCAiIik7Ci0gICAgdmFyIGV2ZW50ID0geyBkYXRh
OiBjcmVhdGVNb2NrU3R5bGVTaGVldFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5z
cGVjdG9yL3Jlc291cmNlcy9leGFtcGxlLmNzcyIsICJ0ZXh0L2NzcyIsCi0gICAgICAgICIvKiBD
b21tZW50ICovXG4iICsKLSAgICAgICAgImEge1xuIiArCi0gICAgICAgICIgIGZvbzogYmFyO1xu
IiArCi0gICAgICAgICIgIC8qIFNPTUUgQ09NTUVOVCAqL1xuIiArCi0gICAgICAgICIgIGZvbnQt
c2l6ZTogMTJweDsgfVxuXG4iICsKLSAgICAgICAgIi8qIyBzb3VyY2VNYXBwaW5nVVJMPWV4YW1w
bGUuY3NzLm1hcCAqLyIpIH07Ci0gICAgc3R5bGVzU291cmNlTWFwcGluZy5fcmVzb3VyY2VBZGRl
ZChldmVudCk7Ci0gICAgbWFwcGluZy5fcmVzb3VyY2VBZGRlZChldmVudCk7Ci0gICAgYWZ0ZXJT
dHlsZVNoZWV0QWRkZWQoKTsKLQotICAgIGZ1bmN0aW9uIGNyZWF0ZU1vY2tTdHlsZVNoZWV0UmVz
b3VyY2UodXJsLCBtaW1lVHlwZSwgY29udGVudCkKLSAgICB7Ci0gICAgICAgIGNvbnN0IGRvY3Vt
ZW50VVJMID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3Ivc3R5bGVzaGVldC1zb3Vy
Y2UtbWFwcGluZy5odG1sIjsKLSAgICAgICAgY29uc3QgZnJhbWUgPSBXZWJJbnNwZWN0b3IucmVz
b3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lOwotICAgICAgICB2YXIgcmVzb3VyY2UgPSBuZXcgV2Vi
SW5zcGVjdG9yLlJlc291cmNlKG51bGwsIHVybCwgZG9jdW1lbnRVUkwsIGZyYW1lLmlkLCBmcmFt
ZS5sb2FkZXJJZCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU3R5bGVzaGVldCwgbWltZVR5
cGUpOwotICAgICAgICByZXNvdXJjZS5yZXF1ZXN0Q29udGVudCA9IGZ1bmN0aW9uKGNhbGxiYWNr
KQotICAgICAgICB7Ci0gICAgICAgICAgICBjYWxsYmFjayhjb250ZW50LCBmYWxzZSwgbWltZVR5
cGUpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXNvdXJjZTsKLSAgICB9Ci0KLQotICAg
IGZ1bmN0aW9uIGNzc1VJU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQo
c2Nzc1VJU291cmNlQ29kZUFkZGVkKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzY3NzVUlTb3Vy
Y2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKQotICAgIHsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBy
YXdMb2NhdGlvblRvVUlMb2NhdGlvbihsaW5lLCBjb2x1bW4sIHVybCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBjc3NNb2RlbC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihuZXcgV2ViSW5zcGVjdG9y
LkNTU0xvY2F0aW9uKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9l
eGFtcGxlLmNzcyIsIGxpbmUsIGNvbHVtbikpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFmdGVy
U3R5bGVTaGVldEFkZGVkKCkKLSAgICB7Ci0gICAgICAgIHZhciBjc3NVSVNvdXJjZUNvZGUgPSBJ
bnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yT3JpZ2luVVJMKCJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9leGFtcGxlLmNzcyIpOwotICAg
ICAgICB2YXIgc2Nzc1VJU291cmNlQ29kZSA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51
aVNvdXJjZUNvZGVGb3JPcmlnaW5VUkwoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2V4YW1wbGUuc2NzcyIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tV
SUxvY2F0aW9uKGNzc1VJU291cmNlQ29kZSwgMCwgMywgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb24o
MCwgMykpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrVUlMb2NhdGlvbihzY3NzVUlTb3Vy
Y2VDb2RlLCAxLCAwLCByYXdMb2NhdGlvblRvVUlMb2NhdGlvbigxLCAwKSk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHNjc3NVSVNvdXJjZUNvZGUsIDIsIDIsIHJhd0xv
Y2F0aW9uVG9VSUxvY2F0aW9uKDIsIDQpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJ
TG9jYXRpb24oc2Nzc1VJU291cmNlQ29kZSwgMiwgNSwgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb24o
MiwgNikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrVUlMb2NhdGlvbihzY3NzVUlTb3Vy
Y2VDb2RlLCAyLCA3LCByYXdMb2NhdGlvblRvVUlMb2NhdGlvbigyLCA5KSk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHNjc3NVSVNvdXJjZUNvZGUsIDIsIDEwLCByYXdM
b2NhdGlvblRvVUlMb2NhdGlvbigzLCA3KSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tV
SUxvY2F0aW9uKHNjc3NVSVNvdXJjZUNvZGUsIDQsIDIsIHJhd0xvY2F0aW9uVG9VSUxvY2F0aW9u
KDQsIDgpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24oc2Nzc1VJU291
cmNlQ29kZSwgNCwgMiwgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oNCwgMTApKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24oc2Nzc1VJU291cmNlQ29kZSwgNCwgMTEsIHJh
d0xvY2F0aW9uVG9VSUxvY2F0aW9uKDQsIDExKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hl
Y2tVSUxvY2F0aW9uKHNjc3NVSVNvdXJjZUNvZGUsIDQsIDEzLCByYXdMb2NhdGlvblRvVUlMb2Nh
dGlvbig0LCAxNSkpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrVUlMb2NhdGlvbihzY3Nz
VUlTb3VyY2VDb2RlLCA0LCAxNywgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oNCwgMjApKTsKLSAg
ICAgICAgc2Nzc1VJU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudCk7
Ci0KLSAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnQoY29udGVudCwgY29udGVudEVu
Y29kZWQsIG1pbWVUeXBlKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEVxdWFscygwLCBjb250ZW50LmluZGV4T2YoIi8qIENvbW1lbnQgKi8iKSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUEFTUyIpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotPC9zY3JpcHQ+
Ci0KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgU291cmNl
TWFwIGFuZCBTdHlsZVNoZWV0TWFwcGluZy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci90aW1lbGluZS10ZXN0LmpzIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjBmM2ZiYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci90aW1lbGluZS10ZXN0LmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMjM3ICswLDAgQEAKLXZhciBpbml0aWFsaXplX1RpbWVsaW5lID0gZnVuY3Rpb24oKSB7Ci0K
LS8vIFNjcnViIHZhbHVlcyB3aGVuIHByaW50aW5nIG91dCB0aGVzZSBwcm9wZXJ0aWVzIGluIHRo
ZSByZWNvcmQgb3IgZGF0YSBmaWVsZC4KLUluc3BlY3RvclRlc3QudGltZWxpbmVQcm9wZXJ0eUZv
cm1hdHRlcnMgPSB7Ci0gICAgY2hpbGRyZW46ICJmb3JtYXRBc1R5cGVOYW1lIiwKLSAgICBlbmRU
aW1lOiAiZm9ybWF0QXNUeXBlTmFtZSIsCi0gICAgcmVxdWVzdElkOiAiZm9ybWF0QXNUeXBlTmFt
ZSIsCi0gICAgc3RhcnRUaW1lOiAiZm9ybWF0QXNUeXBlTmFtZSIsCi0gICAgc3RhY2tUcmFjZTog
ImZvcm1hdEFzVHlwZU5hbWUiLAotICAgIHVybDogImZvcm1hdEFzVHlwZU5hbWUiLAotICAgIHNj
cmlwdE5hbWU6ICJmb3JtYXRBc1R5cGVOYW1lIiwKLSAgICB1c2VkSGVhcFNpemU6ICJmb3JtYXRB
c1R5cGVOYW1lIiwKLSAgICB1c2VkSGVhcFNpemVEZWx0YTogInNraXAiLAotICAgIG1pbWVUeXBl
OiAiZm9ybWF0QXNUeXBlTmFtZSIsCi0gICAgaWQ6ICJmb3JtYXRBc1R5cGVOYW1lIiwKLSAgICBj
b3VudGVyczogImZvcm1hdEFzVHlwZU5hbWUiLAotICAgIHRpbWVySWQ6ICJmb3JtYXRBc1R5cGVO
YW1lIiwKLSAgICBzY3JpcHRMaW5lOiAiZm9ybWF0QXNUeXBlTmFtZSIsCi0gICAgbGluZU51bWJl
cjogImZvcm1hdEFzVHlwZU5hbWUiLAotICAgIGZyYW1lSWQ6ICJmb3JtYXRBc1R5cGVOYW1lIiwK
LSAgICBlbmNvZGVkRGF0YUxlbmd0aDogImZvcm1hdEFzVHlwZU5hbWUiLAotICAgIGlkZW50aWZp
ZXI6ICJmb3JtYXRBc1R5cGVOYW1lIiwKLSAgICBjbGlwOiAiZm9ybWF0QXNUeXBlTmFtZSIsCi0g
ICAgcm9vdDogImZvcm1hdEFzVHlwZU5hbWUiLAotfTsKLQotSW5zcGVjdG9yVGVzdC5zdGFydFRp
bWVsaW5lID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5fdGltZWxp
bmVSZWNvcmRzID0gW107Ci0gICAgV2ViSW5zcGVjdG9yLnBhbmVsKCJ0aW1lbGluZSIpLnRvZ2ds
ZVRpbWVsaW5lQnV0dG9uLnRvZ2dsZWQgPSB0cnVlOwotICAgIFdlYkluc3BlY3Rvci5wYW5lbCgi
dGltZWxpbmUiKS5fbW9kZWwuX2NvbGxlY3Rpb25FbmFibGVkID0gdHJ1ZTsKLSAgICBUaW1lbGlu
ZUFnZW50LnN0YXJ0KDUsIHRydWUsIGZhbHNlLCBjYWxsYmFjayk7Ci0gICAgZnVuY3Rpb24gYWRk
UmVjb3JkKHJlY29yZCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuX3RpbWVsaW5lUmVj
b3Jkcy5wdXNoKHJlY29yZCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyByZWNvcmQuY2hpbGRy
ZW4gJiYgaSA8IHJlY29yZC5jaGlsZHJlbi5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIGFkZFJl
Y29yZChyZWNvcmQuY2hpbGRyZW5baV0pOwotICAgIH0KLSAgICBJbnNwZWN0b3JUZXN0Ll9hZGRU
aW1lbGluZUV2ZW50ID0gZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICBhZGRSZWNvcmQo
ZXZlbnQuZGF0YSk7Ci0gICAgfQotICAgIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLkV2ZW50VHlwZXMuVGlt
ZWxpbmVFdmVudFJlY29yZGVkLCBJbnNwZWN0b3JUZXN0Ll9hZGRUaW1lbGluZUV2ZW50KTsKLX07
Ci0KLQotSW5zcGVjdG9yVGVzdC53YWl0Rm9yUmVjb3JkVHlwZSA9IGZ1bmN0aW9uKHJlY29yZFR5
cGUsIGNhbGxiYWNrKQotewotICAgIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLkV2ZW50VHlwZXMuVGltZWxp
bmVFdmVudFJlY29yZGVkLCBhZGRFdmVudCk7Ci0KLSAgICBmdW5jdGlvbiBhZGRFdmVudChldmVu
dCkKLSAgICB7Ci0gICAgICAgIGFkZFJlY29yZChldmVudC5kYXRhKTsKLSAgICB9Ci0gICAgZnVu
Y3Rpb24gYWRkUmVjb3JkKHJlY29yZCkKLSAgICB7Ci0gICAgICAgIGlmIChyZWNvcmQudHlwZSAh
PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZVtyZWNvcmRUeXBlXSkgewot
ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IHJlY29yZC5jaGlsZHJlbiAmJiBpIDwgcmVjb3Jk
LmNoaWxkcmVuLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIGFkZFJlY29yZChyZWNvcmQu
Y2hpbGRyZW5baV0pOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuVGltZWxpbmVNYW5hZ2VyLkV2ZW50VHlwZXMuVGltZWxpbmVFdmVudFJlY29yZGVkLCBhZGRF
dmVudCk7Ci0gICAgICAgIGNhbGxiYWNrKHJlY29yZCk7Ci0gICAgfQotfQotCi1JbnNwZWN0b3JU
ZXN0LnN0b3BUaW1lbGluZSA9IGZ1bmN0aW9uKGNhbGxiYWNrKQotewotICAgIGZ1bmN0aW9uIGRp
ZFN0b3AoKQotICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5yZW1v
dmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIuRXZlbnRUeXBlcy5U
aW1lbGluZUV2ZW50UmVjb3JkZWQsIEluc3BlY3RvclRlc3QuX2FkZFRpbWVsaW5lRXZlbnQpOwot
ICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWwoInRpbWVsaW5lIikudG9nZ2xlVGltZWxpbmVCdXR0
b24udG9nZ2xlZCA9IGZhbHNlOwotICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWwoInRpbWVsaW5l
IikuX21vZGVsLl9jb2xsZWN0aW9uRW5hYmxlZCA9IGZhbHNlOwotICAgICAgICBjYWxsYmFjayhJ
bnNwZWN0b3JUZXN0Ll90aW1lbGluZVJlY29yZHMpOwotICAgIH0KLSAgICBUaW1lbGluZUFnZW50
LnN0b3AoZGlkU3RvcCk7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmV2YWx1YXRlV2l0aFRpbWVsaW5l
ID0gZnVuY3Rpb24oYWN0aW9ucywgZG9uZUNhbGxiYWNrKQotewotICAgIEluc3BlY3RvclRlc3Qu
c3RhcnRUaW1lbGluZShzdGVwMSk7Ci0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShhY3Rpb25zLCBzdGVwMik7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zdG9w
VGltZWxpbmUoZG9uZUNhbGxiYWNrKTsKLSAgICB9Ci0KLX0KLQotSW5zcGVjdG9yVGVzdC5wZXJm
b3JtQWN0aW9uc0FuZFByaW50ID0gZnVuY3Rpb24oYWN0aW9ucywgdHlwZU5hbWUsIGluY2x1ZGVU
aW1lU3RhbXBzKQotewotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QucHJpbnRUaW1lbGluZVJlY29yZHModHlwZU5hbWUpOwotICAgICAgICBpZiAo
aW5jbHVkZVRpbWVTdGFtcHMpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJUaW1lc3RhbXAgcmVjb3JkczogIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnByaW50
VGltZXN0YW1wUmVjb3Jkcyh0eXBlTmFtZSk7Ci0gICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZVdp
dGhUaW1lbGluZShhY3Rpb25zLCBjYWxsYmFjaykKLX07Ci0KLUluc3BlY3RvclRlc3QucHJpbnRU
aW1lbGluZVJlY29yZHMgPSBmdW5jdGlvbih0eXBlTmFtZSwgZm9ybWF0dGVyKQotewotICAgIElu
c3BlY3RvclRlc3QuaW5uZXJQcmludFRpbWVsaW5lUmVjb3JkcyhJbnNwZWN0b3JUZXN0Ll90aW1l
bGluZVJlY29yZHMsIHR5cGVOYW1lLCBmb3JtYXR0ZXIpOwotfTsKLQotSW5zcGVjdG9yVGVzdC5w
cmludFRpbWVzdGFtcFJlY29yZHMgPSBmdW5jdGlvbih0eXBlTmFtZSwgZm9ybWF0dGVyKQotewot
ICAgIEluc3BlY3RvclRlc3QuaW5uZXJQcmludFRpbWVsaW5lUmVjb3JkcyhXZWJJbnNwZWN0b3Iu
cGFuZWxzLnRpbWVsaW5lLl9wcmVzZW50YXRpb25Nb2RlbC5ldmVudERpdmlkZXJSZWNvcmRzKCku
c2VsZWN0KCJfcmVjb3JkIiksIHR5cGVOYW1lLCBmb3JtYXR0ZXIpOwotfTsKLQotSW5zcGVjdG9y
VGVzdC5pbm5lclByaW50VGltZWxpbmVSZWNvcmRzID0gZnVuY3Rpb24ocmVjb3JkcywgdHlwZU5h
bWUsIGZvcm1hdHRlcikKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgaWYgKHR5cGVOYW1lICYmIHJlY29yZHNbaV0udHlwZSA9PT0gV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZVt0eXBlTmFtZV0pCi0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnByaW50VGltZWxpbmVSZWNvcmRQcm9wZXJ0aWVzKHJlY29yZHNbaV0p
OwotICAgICAgICBpZiAoZm9ybWF0dGVyKQotICAgICAgICAgICAgZm9ybWF0dGVyKHJlY29yZHNb
aV0pOwotICAgIH0KLX07Ci0KLS8vIER1bXAganVzdCB0aGUgcmVjb3JkIG5hbWUsIGluZGVudGlu
ZyBvdXRwdXQgb24gc2VwYXJhdGUgbGluZXMgZm9yIHN1YnJlY29yZHMKLUluc3BlY3RvclRlc3Qu
ZHVtcFRpbWVsaW5lUmVjb3JkID0gZnVuY3Rpb24ocmVjb3JkLCBsZXZlbCkgCi17Ci0gICAgaWYg
KHR5cGVvZiBsZXZlbCAhPT0gIm51bWJlciIpCi0gICAgICAgIGxldmVsID0gMDsKLSAgICB2YXIg
cHJlZml4ID0gIiI7Ci0gICAgdmFyIHN1ZmZpeCA9ICIiOwotICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgbGV2ZWwgOyArK2kpCi0gICAgICAgIHByZWZpeCA9ICItLS0tIiArIHByZWZpeDsKLSAgICBp
ZiAobGV2ZWwgPiAwKQotICAgICAgICBwcmVmaXggPSBwcmVmaXggKyAiPiAiOwotICAgIGlmIChy
ZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5UaW1l
U3RhbXApIHsKLSAgICAgICAgc3VmZml4ID0gIiA6ICIgKyByZWNvcmQuZGF0YS5tZXNzYWdlOwot
ICAgIH0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChwcmVmaXggKyBJbnNwZWN0b3JUZXN0
Ll90aW1lbGluZUFnZW50VHlwZVRvU3RyaW5nKHJlY29yZC50eXBlKSArIHN1ZmZpeCk7Ci0KLSAg
ICB2YXIgbnVtQ2hpbGRyZW4gPSByZWNvcmQuY2hpbGRyZW4gPyByZWNvcmQuY2hpbGRyZW4ubGVu
Z3RoIDogMDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bUNoaWxkcmVuOyArK2kpCi0gICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcFRpbWVsaW5lUmVjb3JkKHJlY29yZC5jaGlsZHJlbltpXSwg
bGV2ZWwgKyAxKTsKLX07Ci0KLUluc3BlY3RvclRlc3QuZHVtcFRpbWVsaW5lUmVjb3JkcyA9IGZ1
bmN0aW9uKHRpbWVsaW5lUmVjb3JkcykKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbWVs
aW5lUmVjb3Jkcy5sZW5ndGg7ICsraSkKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVGltZWxp
bmVSZWNvcmQodGltZWxpbmVSZWNvcmRzW2ldLCAwKTsKLX07Ci0KLUluc3BlY3RvclRlc3QucHJp
bnRUaW1lbGluZVJlY29yZFByb3BlcnRpZXMgPSBmdW5jdGlvbihyZWNvcmQpCi17Ci0gICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoSW5zcGVjdG9yVGVzdC5fdGltZWxpbmVBZ2VudFR5cGVUb1N0
cmluZyhyZWNvcmQudHlwZSkgKyAiIFByb3BlcnRpZXM6Iik7Ci0gICAgLy8gVXNlIHRoaXMgcmVj
dXJzaXZlIHJvdXRpbmUgdG8gcHJpbnQgdGhlIHByb3BlcnRpZXMKLSAgICBJbnNwZWN0b3JUZXN0
LmFkZE9iamVjdChyZWNvcmQsIEluc3BlY3RvclRlc3QudGltZWxpbmVQcm9wZXJ0eUZvcm1hdHRl
cnMpOwotfTsKLQotSW5zcGVjdG9yVGVzdC5fdGltZWxpbmVBZ2VudFR5cGVUb1N0cmluZyA9IGZ1
bmN0aW9uKG51bWVyaWNUeXBlKQotewotICAgIGZvciAodmFyIHByb3AgaW4gV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZSkgewotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lTW9kZWwuUmVjb3JkVHlwZVtwcm9wXSA9PT0gbnVtZXJpY1R5cGUpCi0gICAgICAgICAg
ICByZXR1cm4gcHJvcDsKLSAgICB9Ci0gICAgcmV0dXJuIHVuZGVmaW5lZDsKLX07Ci0KLUluc3Bl
Y3RvclRlc3QuZmluZFByZXNlbnRhdGlvblJlY29yZCA9IGZ1bmN0aW9uKHR5cGUpCi17Ci0gICAg
dmFyIHJlc3VsdDsKLSAgICBmdW5jdGlvbiBmaW5kQnlUeXBlKHJlY29yZCkKLSAgICB7Ci0gICAg
ICAgIGlmIChyZWNvcmQudHlwZSAhPT0gdHlwZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgcmVzdWx0ID0gcmVjb3JkOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgdmFyIHJlY29yZHMgPSBXZWJJbnNwZWN0b3IucGFuZWwoInRpbWVsaW5lIikuX3Jvb3RSZWNv
cmQoKS5jaGlsZHJlbjsKLSAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5mb3JBbGxSZWNvcmRzKHJlY29yZHMsIGZpbmRCeVR5cGUpOwotICAgIHJldHVybiByZXN1bHQ7
Ci19Ci0KLUluc3BlY3RvclRlc3QuRmFrZUZpbGVSZWFkZXIgPSBmdW5jdGlvbihpbnB1dCwgZGVs
ZWdhdGUsIGNhbGxiYWNrKQotewotICAgIHRoaXMuX2RlbGVnYXRlID0gZGVsZWdhdGU7Ci0gICAg
dGhpcy5fY2FsbGJhY2sgPSBjYWxsYmFjazsKLSAgICB0aGlzLl9pbnB1dCA9IGlucHV0OwotICAg
IHRoaXMuX2xvYWRlZFNpemUgPSAwOwotICAgIHRoaXMuX2ZpbGVTaXplID0gaW5wdXQubGVuZ3Ro
OwotfTsKLQotSW5zcGVjdG9yVGVzdC5GYWtlRmlsZVJlYWRlci5wcm90b3R5cGUgPSB7Ci0gICAg
c3RhcnQ6IGZ1bmN0aW9uKG91dHB1dCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2RlbGVnYXRlLm9u
VHJhbnNmZXJTdGFydGVkKHRoaXMpOwotCi0gICAgICAgIHZhciBsZW5ndGggPSB0aGlzLl9pbnB1
dC5sZW5ndGg7Ci0gICAgICAgIHZhciBoYWxmID0gKGxlbmd0aCArIDEpID4+IDE7Ci0KLSAgICAg
ICAgdmFyIGNodW5rID0gdGhpcy5faW5wdXQuc3Vic3RyaW5nKDAsIGhhbGYpOwotICAgICAgICB0
aGlzLl9sb2FkZWRTaXplICs9IGNodW5rLmxlbmd0aDsKLSAgICAgICAgb3V0cHV0LndyaXRlKGNo
dW5rKTsKLSAgICAgICAgdGhpcy5fZGVsZWdhdGUub25DaHVua1RyYW5zZmVycmVkKHRoaXMpOwot
Ci0gICAgICAgIGNodW5rID0gdGhpcy5faW5wdXQuc3Vic3RyaW5nKGhhbGYpOwotICAgICAgICB0
aGlzLl9sb2FkZWRTaXplICs9IGNodW5rLmxlbmd0aDsKLSAgICAgICAgb3V0cHV0LndyaXRlKGNo
dW5rKTsKLSAgICAgICAgdGhpcy5fZGVsZWdhdGUub25DaHVua1RyYW5zZmVycmVkKHRoaXMpOwot
Ci0gICAgICAgIG91dHB1dC5jbG9zZSgpOwotICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5vblRyYW5z
ZmVyRmluaXNoZWQodGhpcyk7Ci0KLSAgICAgICAgdGhpcy5fY2FsbGJhY2soKTsKLSAgICB9LAot
Ci0gICAgY2FuY2VsOiBmdW5jdGlvbigpIHsgfSwKLQotICAgIGxvYWRlZFNpemU6IGZ1bmN0aW9u
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9sb2FkZWRTaXplOwotICAgIH0sCi0KLSAg
ICBmaWxlU2l6ZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVT
aXplOwotICAgIH0sCi0KLSAgICBmaWxlTmFtZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
cmV0dXJuICJmYWtlRmlsZSI7Ci0gICAgfQotfTsKLQotfTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dlYi1zb2NrZXQtZnJhbWUtZXJyb3ItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd2ViLXNvY2tldC1mcmFtZS1l
cnJvci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExMzNmYTIu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd2ViLXNvY2tl
dC1mcmFtZS1lcnJvci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAK
LUNPTlNPTEUgTUVTU0FHRTogV2ViU29ja2V0IGNvbm5lY3Rpb24gdG8gJ3dzOi8vbG9jYWxob3N0
OjgwMDAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZG9lc19ub3RfZXhpc3QnIGZhaWxlZDogVW5leHBl
Y3RlZCByZXNwb25zZSBjb2RlOiA0MDQKLUNsb3NlZC4KLVRlc3RzIHRoYXQgV2ViU29ja2V0RnJh
bWVzIGVycm9ycyBhcmUgdmlzaWJsZSB0byBXZWIgSW5zcGVjdG9yLgotCi0xOiBVbmV4cGVjdGVk
IHJlc3BvbnNlIGNvZGU6IDQwNAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci93ZWItc29ja2V0LWZyYW1lLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci93ZWItc29ja2V0LWZyYW1lLWVycm9yLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGNiOGJkYjIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3Ivd2ViLXNvY2tldC1mcmFtZS1lcnJvci5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMzcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJpbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciB3czsKLWZ1
bmN0aW9uIHNlbmRNZXNzYWdlcygpIHsKLSAgICB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vbG9j
YWxob3N0OjgwMDAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZG9lc19ub3RfZXhpc3QiKTsKLSAgICB3
cy5vbmNsb3NlID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgZGVidWcoIkNsb3NlZC4iKTsK
LSAgICB9OwotfQotCi1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIG9uUmVxdWVzdChl
dmVudCkKLSAgICB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gZXZlbnQuZGF0YTsKLSAgICAgICAg
aWYgKHJlcXVlc3QuX3R5cGUuX25hbWUgPT09ICJ3ZWJzb2NrZXQiKSB7Ci0gICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlcXVlc3QuZnJhbWVzKCkubGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICAgICAgICB2YXIgZnJhbWUgPSByZXF1ZXN0LmZyYW1lKGkpOwotICAgICAgICAgICAgICAg
IHZhciByZXN1bHQgPSBTdHJpbmcuc3ByaW50ZigiJWQ6ICVzIiwgKGkgKyAxKSwgZnJhbWUuZXJy
b3JNZXNzYWdlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZXN1
bHQpOwotICAgICAgICAgICAgICAgIGlmIChmcmFtZS5lcnJvck1lc3NhZ2UpCi0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgV2ViSW5zcGVjdG9yLm5ldHdvcmtNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlwZXMuUmVxdWVzdFVw
ZGF0ZWQsIG9uUmVxdWVzdCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2Vu
ZE1lc3NhZ2VzKCkiKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBXZWJTb2NrZXRGcmFtZXMgZXJyb3JzIGFyZSB2aXNpYmxl
IHRvIFdlYiBJbnNwZWN0b3IuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd2Vic29ja2V0L3RpbWVsaW5lLXdlYnNvY2tl
dC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93
ZWJzb2NrZXQvdGltZWxpbmUtd2Vic29ja2V0LWV2ZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOWY0ZjBkOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci93ZWJzb2NrZXQvdGltZWxpbmUtd2Vic29ja2V0LWV2ZW50LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLVRlc3RzIHRoZSBUaW1l
bGluZSBldmVudHMgZm9yIFdlYlNvY2tldAotCi1XZWJTb2NrZXRDcmVhdGUgUHJvcGVydGllczoK
LXsKLSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6IHsKLSAgICAgICAgaWRlbnRp
ZmllciA6IDxudW1iZXI+Ci0gICAgICAgIHVybCA6IDxzdHJpbmc+Ci0gICAgfQotICAgIGZyYW1l
SWQgOiA8c3RyaW5nPgotICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0PgotICAgIHN0YXJ0VGltZSA6
IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJXZWJTb2NrZXRDcmVhdGUiCi0gICAgdXNlZEhlYXBTaXpl
IDogPG51bWJlcj4KLX0KLVdlYlNvY2tldFNlbmRIYW5kc2hha2VSZXF1ZXN0IFByb3BlcnRpZXM6
Ci17Ci0gICAgY291bnRlcnMgOiA8b2JqZWN0PgotICAgIGRhdGEgOiB7Ci0gICAgICAgIGlkZW50
aWZpZXIgOiA8bnVtYmVyPgotICAgIH0KLSAgICBmcmFtZUlkIDogPHN0cmluZz4KLSAgICBzdGFy
dFRpbWUgOiA8bnVtYmVyPgotICAgIHR5cGUgOiAiV2ViU29ja2V0U2VuZEhhbmRzaGFrZVJlcXVl
c3QiCi0gICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KLX0KLVdlYlNvY2tldFJlY2VpdmVIYW5k
c2hha2VSZXNwb25zZSBQcm9wZXJ0aWVzOgotewotICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLSAg
ICBkYXRhIDogewotICAgICAgICBpZGVudGlmaWVyIDogPG51bWJlcj4KLSAgICB9Ci0gICAgZnJh
bWVJZCA6IDxzdHJpbmc+Ci0gICAgc3RhcnRUaW1lIDogPG51bWJlcj4KLSAgICB0eXBlIDogIldl
YlNvY2tldFJlY2VpdmVIYW5kc2hha2VSZXNwb25zZSIKLSAgICB1c2VkSGVhcFNpemUgOiA8bnVt
YmVyPgotfQotV2ViU29ja2V0RGVzdHJveSBQcm9wZXJ0aWVzOgotewotICAgIGNvdW50ZXJzIDog
PG9iamVjdD4KLSAgICBkYXRhIDogewotICAgICAgICBpZGVudGlmaWVyIDogPG51bWJlcj4KLSAg
ICB9Ci0gICAgZnJhbWVJZCA6IDxzdHJpbmc+Ci0gICAgc3RhcnRUaW1lIDogPG51bWJlcj4KLSAg
ICB0eXBlIDogIldlYlNvY2tldERlc3Ryb3kiCi0gICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4K
LX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd2Vic29j
a2V0L3RpbWVsaW5lLXdlYnNvY2tldC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3Ivd2Vic29ja2V0L3RpbWVsaW5lLXdlYnNvY2tldC1ldmVudC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDc3NjBhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dlYnNvY2tldC90aW1lbGluZS13ZWJzb2NrZXQtZXZl
bnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3RpbWVsaW5lLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gcGVy
Zm9ybUFjdGlvbnMoKQotewotICAgIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAu
MC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2ltcGxlIik7Ci0KLSAgICB0ZXN0UnVubmVy
LmRpc3BsYXkoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5z
dGFydFRpbWVsaW5lKGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKCJwZXJmb3JtQWN0aW9ucygpIik7Ci0gICAgfSk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0
LndhaXRGb3JSZWNvcmRUeXBlKCJXZWJTb2NrZXREZXN0cm95IiwgZmluaXNoKTsKLQotICAgIGZ1
bmN0aW9uIGZpbmlzaCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnByaW50VGltZWxp
bmVSZWNvcmRzKCJXZWJTb2NrZXRDcmVhdGUiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5wcmlu
dFRpbWVsaW5lUmVjb3JkcygiV2ViU29ja2V0U2VuZEhhbmRzaGFrZVJlcXVlc3QiKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5wcmludFRpbWVsaW5lUmVjb3JkcygiV2ViU29ja2V0UmVjZWl2ZUhh
bmRzaGFrZVJlc3BvbnNlIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucHJpbnRUaW1lbGluZVJl
Y29yZHMoIldlYlNvY2tldERlc3Ryb3kiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLWlmICghd2luZG93LnRlc3RSdW5uZXIpCi0gICAgc2V0VGlt
ZW91dChwZXJmb3JtQWN0aW9ucywgMjAwMCk7Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoZSBUaW1lbGluZSBldmVudHMgZm9y
IFdlYlNvY2tldAotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93ZWJzb2NrZXQvd2ViLXNvY2tldC1mcmFtZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93ZWJzb2NrZXQvd2Vi
LXNvY2tldC1mcmFtZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGVmNGE1YzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
d2Vic29ja2V0L3dlYi1zb2NrZXQtZnJhbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTQgKzAsMCBAQAotQ29ubmVjdGVkLgotVGVzdHMgdGhhdCBXZWJTb2NrZXRGcmFtZXMgYXJl
IGJlaW5nIHNlbnQgYW5kIHJlY2lldmVkIGJ5IFdlYiBJbnNwZWN0b3IuCi0KLTEtIHNlbnQ6IHRl
c3QKLTEtIHNlbnQ6IHRlc3QKLTItIHNlbnQ6IGV4aXQKLTEtIHNlbnQ6IHRlc3QKLTItIHNlbnQ6
IGV4aXQKLTMtIHJlY2VpdmVkOiB0ZXN0Ci0xLSBzZW50OiB0ZXN0Ci0yLSBzZW50OiBleGl0Ci0z
LSByZWNlaXZlZDogdGVzdAotNC0gcmVjZWl2ZWQ6IGV4aXQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd2Vic29ja2V0L3dlYi1zb2NrZXQtZnJhbWUuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dlYnNvY2tldC93ZWItc29ja2V0
LWZyYW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiNzA4NTUuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd2Vic29ja2V0L3dlYi1z
b2NrZXQtZnJhbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgd3M7Ci1mdW5jdGlvbiBzZW5kTWVzc2FnZXMoKSB7
Ci0gICAgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovL2xvY2FsaG9zdDo4ODgwL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2VjaG8iKTsKLSAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICBkZWJ1ZygiQ29ubmVjdGVkLiIpOwotICAgICAgICB3cy5zZW5kKCJ0ZXN0Iik7Ci0gICAg
ICAgIHdzLnNlbmQoImV4aXQiKTsKLSAgICB9OwotfQotCi1mdW5jdGlvbiB0ZXN0KCkgewotICAg
IGZ1bmN0aW9uIG9uUmVxdWVzdChldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0g
ZXZlbnQuZGF0YTsKLSAgICAgICAgaWYgKHJlcXVlc3QuX3R5cGUuX25hbWUgPT09ICJ3ZWJzb2Nr
ZXQiKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcXVlc3QuZnJhbWVzKCku
bGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICB2YXIgZnJhbWUgPSByZXF1ZXN0LmZyYW1l
KGkpOwotICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBTdHJpbmcuc3ByaW50ZigiJWQtJXM6
ICVzIiwgKGkgKyAxKSwgZnJhbWUuc2VudCA/ICIgc2VudCIgOiAiIHJlY2VpdmVkIiwgZnJhbWUu
cGF5bG9hZERhdGEpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJl
c3VsdCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFmcmFtZS5zZW50ICYmIGZyYW1lLnBheWxvYWRE
YXRhID09PSAiZXhpdCIpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgV2ViSW5zcGVj
dG9yLm5ldHdvcmtNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtN
YW5hZ2VyLkV2ZW50VHlwZXMuUmVxdWVzdFVwZGF0ZWQsIG9uUmVxdWVzdCk7Ci0gICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2VuZE1lc3NhZ2VzKCkiKTsKLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBXZWJTb2Nr
ZXRGcmFtZXMgYXJlIGJlaW5nIHNlbnQgYW5kIHJlY2lldmVkIGJ5IFdlYiBJbnNwZWN0b3IuPC9w
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci93b3Jrc3BhY2UtdGVzdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzZh
Y2Y0ZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jr
c3BhY2UtdGVzdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLXZhciBpbml0aWFs
aXplX1dvcmtzcGFjZVRlc3QgPSBmdW5jdGlvbigpIHsKLQotSW5zcGVjdG9yVGVzdC5jcmVhdGVX
b3Jrc3BhY2UgPSBmdW5jdGlvbihpZ25vcmVFdmVudHMpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC50
ZXN0RmlsZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nKCk7Ci0gICAgSW5z
cGVjdG9yVGVzdC50ZXN0RmlsZVN5c3RlbU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVT
eXN0ZW1NYXBwaW5nSW1wbCgpOwotICAgIEluc3BlY3RvclRlc3QudGVzdEZpbGVTeXN0ZW1NYXBw
aW5nLl9maWxlU3lzdGVtTWFwcGluZ1NldHRpbmcgPSBuZXcgSW5zcGVjdG9yVGVzdC5Nb2NrU2V0
dGluZyh7fSk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UgPSBuZXcgV2ViSW5z
cGVjdG9yLldvcmtzcGFjZShJbnNwZWN0b3JUZXN0LnRlc3RGaWxlTWFwcGluZywgSW5zcGVjdG9y
VGVzdC50ZXN0RmlsZVN5c3RlbU1hcHBpbmcpOwotICAgIEluc3BlY3RvclRlc3QudGVzdE5ldHdv
cmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJv
dmlkZXIoSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLCBXZWJJbnNwZWN0b3IucHJvamVjdFR5
cGVzLk5ldHdvcmspOwotICAgIGlmIChpZ25vcmVFdmVudHMpCi0gICAgICAgIHJldHVybjsKLSAg
ICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCBJbnNwZWN0
b3JUZXN0Ll9kZWZhdWx0VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOwotICAgIElu
c3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVtb3ZlZCwgSW5zcGVjdG9y
VGVzdC5fZGVmYXVsdFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKLX0KLQotSW5z
cGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudCA9IGZ1bmN0
aW9uKGNhbGxiYWNrLCBjb3VudCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnVpU291cmNlQ29kZUFk
ZGVkRXZlbnRzTGVmdCA9IGNvdW50IHx8IDE7Ci0gICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3Nw
YWNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVy
LkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgSW5zcGVjdG9yVGVzdC5fZGVmYXVsdFVJU291cmNl
Q29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKLSAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3Bh
Y2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZl
bnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGVBZGRlZCk7Ci0KLSAgICBmdW5jdGlv
biB1aVNvdXJjZUNvZGVBZGRlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICghKC0tSW5zcGVj
dG9yVGVzdC51aVNvdXJjZUNvZGVBZGRlZEV2ZW50c0xlZnQpKSB7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNv
ZGVBZGRlZCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291
cmNlQ29kZUFkZGVkLCBJbnNwZWN0b3JUZXN0Ll9kZWZhdWx0VUlTb3VyY2VDb2RlUHJvdmlkZXJF
dmVudEhhbmRsZXIpOwotICAgICAgICB9Ci0gICAgICAgIGNhbGxiYWNrKGV2ZW50LmRhdGEpOwot
ICAgIH0KLX0KLQotSW5zcGVjdG9yVGVzdC5hZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jrc3BhY2Ug
PSBmdW5jdGlvbih1cmwsIHR5cGUsIGNvbnRlbnQpCi17Ci0gICAgdmFyIGlzRG9jdW1lbnQgPSB0
eXBlID09PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudDsKLSAgICB2YXIgbW9j
a0NvbnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVy
KHR5cGUsIGNvbnRlbnQpOwotICAgIEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQ
cm92aWRlci5hZGRGaWxlRm9yVVJMKHVybCwgbW9ja0NvbnRlbnRQcm92aWRlciwgIWlzRG9jdW1l
bnQpOwotfQotCi1JbnNwZWN0b3JUZXN0Ll9kZWZhdWx0VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVu
dEhhbmRsZXIgPSBmdW5jdGlvbihldmVudCkKLXsKLSAgICB2YXIgdWlTb3VyY2VDb2RlID0gZXZl
bnQuZGF0YTsKLSAgICB0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgVUlTb3VyY2VDb2RlUHJv
dmlkZXIgZXZlbnQ6ICIgKyBldmVudC50eXBlICsgIjogIiArIHVpU291cmNlQ29kZS51cmkoKSAr
ICIuIik7Ci19Ci0KLUluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHVp
U291cmNlQ29kZSwgY2FsbGJhY2spCi17Ci0gICAgdmFyIHVybCA9IHVpU291cmNlQ29kZS5vcmln
aW5VUkwoKS5yZXBsYWNlKC8uKkxheW91dFRlc3RzLywgIkxheW91dFRlc3RzIik7Ci0gICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVJU291cmNlQ29kZTogIiArIHVybCk7Ci0gICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogIiArIHVpU291cmNl
Q29kZS5pc0VkaXRhYmxlKCkpOwotICAgIGlmICh1aVNvdXJjZUNvZGUuY29udGVudFR5cGUoKSA9
PT0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0IHx8IHVpU291cmNlQ29kZS5jb250
ZW50VHlwZSgpID09PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudCkKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlw
dDogIiArICEhdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCk7Ci0gICAgdWlTb3VyY2VDb2Rl
LnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50KTsKLQotICAgIGZ1bmN0aW9uIGRpZFJl
cXVlc3RDb250ZW50KGNvbnRlbnQsIGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlwZSkKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJNaW1lIHR5cGU6ICIgKyBtaW1lVHlwZSk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSVNvdXJjZUNvZGUgY29udGVudDog
IiArIGNvbnRlbnQpOwotICAgICAgICBjYWxsYmFjaygpOwotICAgIH0KLX0KLQotfTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9u
YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFu
ZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGRmYjIyNTAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRp
dHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MSAr
MCwwIEBACi1UZXN0cyBhdWRpdCBydWxlcy4gICAgIAotUGFnZSByZWxvYWRlZC4KLSBOZXR3b3Jr
IFV0aWxpemF0aW9uCi0gICAgQ29tYmluZSBleHRlcm5hbCBKYXZhU2NyaXB0ICg0KQotICAgICBU
aGVyZSBhcmUgbXVsdGlwbGUgcmVzb3VyY2VzIHNlcnZlZCBmcm9tIHNhbWUgZG9tYWluLiBDb25z
aWRlciBjb21iaW5pbmcgdGhlbSBpbnRvIGFzIGZldyBmaWxlcyBhcyBwb3NzaWJsZS4KLSAgICAg
IDQgSmF2YVNjcmlwdCByZXNvdXJjZXMgc2VydmVkIGZyb20gW2RvbWFpbl0uCi0gICAgU3BlY2lm
eSBpbWFnZSBkaW1lbnNpb25zICgyKQotICAgICBBIHdpZHRoIGFuZCBoZWlnaHQgc2hvdWxkIGJl
IHNwZWNpZmllZCBmb3IgYWxsIGltYWdlcyBpbiBvcmRlciB0byBzcGVlZCB1cCBwYWdlIGRpc3Bs
YXkuIFRoZSBmb2xsb3dpbmcgaW1hZ2UocykgYXJlIG1pc3NpbmcgYSB3aWR0aCBhbmQvb3IgaGVp
Z2h0OgotICAgICAgIGZvbzEuanBnCi0gICAgICAgZm9vMi5qcGcKLSBXZWIgUGFnZSBQZXJmb3Jt
YW5jZQotICAgIE9wdGltaXplIHRoZSBvcmRlciBvZiBzdHlsZXMgYW5kIHNjcmlwdHMgKDIpCi0g
ICAgIFRoZSBmb2xsb3dpbmcgZXh0ZXJuYWwgQ1NTIGZpbGVzIHdlcmUgaW5jbHVkZWQgYWZ0ZXIg
YW4gZXh0ZXJuYWwgSmF2YVNjcmlwdCBmaWxlIGluIHRoZSBkb2N1bWVudCBoZWFkLiBUbyBlbnN1
cmUgQ1NTIGZpbGVzIGFyZSBkb3dubG9hZGVkIGluIHBhcmFsbGVsLCBhbHdheXMgaW5jbHVkZSBl
eHRlcm5hbCBDU1MgYmVmb3JlIGV4dGVybmFsIEphdmFTY3JpcHQuCi0gICAgICAgYXVkaXRzLXN0
eWxlMS5jc3MKLSAgICAgIDEgaW5saW5lIHNjcmlwdCBibG9jayB3YXMgZm91bmQgaW4gdGhlIGhl
YWQgYmV0d2VlbiBhbiBleHRlcm5hbCBDU1MgZmlsZSBhbmQgYW5vdGhlciByZXNvdXJjZS4gVG8g
YWxsb3cgcGFyYWxsZWwgZG93bmxvYWRpbmcsIG1vdmUgdGhlIGlubGluZSBzY3JpcHQgYmVmb3Jl
IHRoZSBleHRlcm5hbCBDU1MgZmlsZSwgb3IgYWZ0ZXIgdGhlIG5leHQgcmVzb3VyY2UuCi0gICAg
UHV0IENTUyBpbiB0aGUgZG9jdW1lbnQgaGVhZCAoMikKLSAgICAgQ1NTIGluIHRoZSBkb2N1bWVu
dCBib2R5IGFkdmVyc2VseSBpbXBhY3RzIHJlbmRlcmluZyBwZXJmb3JtYW5jZS4KLSAgICAgMSBz
dHlsZSBibG9jayhzKSBpbiB0aGUgCi0gICAgICBhdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC5odG1s
Ci0gICAgICBib2R5IHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgZG9jdW1lbnQgaGVhZC4KLSAgICAg
TGluayBub2RlIAotICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKLSAgICAgIHNob3VsZCBiZSBtb3Zl
ZCB0byB0aGUgZG9jdW1lbnQgaGVhZCBpbiAKLSAgICAgIGF1ZGl0cy1wYW5lbC1mdW5jdGlvbmFs
Lmh0bWwKLSAgICBSZW1vdmUgdW51c2VkIENTUyBydWxlcyAoNCkKLSAgICAgNCBydWxlcyAoMTAw
JSkgb2YgQ1NTIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCi0gICAgICBJbmxpbmUgYmxv
Y2sgIzE6IDEwMCUgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KLSAgICAgICAudW51
c2VkCi0gICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKLSAgICAgIDogMTAwJSBpcyBub3QgdXNlZCBi
eSB0aGUgY3VycmVudCBwYWdlLgotICAgICAgIC5zb21lLXN0eWxlCi0gICAgICBJbmxpbmUgYmxv
Y2sgIzI6IDEwMCUgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KLSAgICAgICAudmlv
bGF0aW9uCi0gICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKLSAgICAgIDogMTAwJSBpcyBub3QgdXNl
ZCBieSB0aGUgY3VycmVudCBwYWdlLgotICAgICAgIC5zb21lLXN0eWxlCi0gICAgVXNlIG5vcm1h
bCBDU1MgcHJvcGVydHkgbmFtZXMgaW5zdGVhZCBvZiB2ZW5kb3ItcHJlZml4ZWQgb25lcyAoMSkK
LSAgICAgIGF1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0bWwKLSAgICAgICAudmlvbGF0aW9uCi0g
ICAgICAgIi13ZWJraXQtYm9yZGVyLXJhZGl1cyIgaXMgdXNlZCwgYnV0ICJib3JkZXItcmFkaXVz
IiBpcyBzdXBwb3J0ZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRp
dHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9h
dWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZTIwNjYzNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVk
aXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NyAr
MCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFu
c2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KLTxo
dG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1AbWVkaWEgYWxsIHsKLQotLyogVGhpcyBpcyBhIGNvbW1l
bnQgdG8gdXNlIHNvbWUgc3BhY2UgYmVmb3JlIHRoZSB1bnVzZWQgcnVsZSAqLwotCi0udW51c2Vk
IHsKLSAgICBjb2xvcjogZ3JlZW47Ci0gICAgLXdlYmtpdC1vcGFjaXR5OiAxOwotICAgIG9wYWNp
dHk6IDE7Ci19Ci0KLX0KLTwvc3R5bGU+Ci08c2NyaXB0PgotSlNPTiA9IHt9OwotPC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImF1ZGl0cy10ZXN0LmpzIj48L3NjcmlwdD4KLQot
PCEtLSBUaGVzZSBzY3JpcHRzIGFyZSBuZWVkZWQgdG8gcmVzdWx0IGluIGEgdmlvbGF0aW9uIG9m
IHRoZSBtYXggSlMgcmVzb3VyY2UgY291bnQgZnJvbSB0aGUgc2FtZSBkb21haW4gLS0+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2F1ZGl0cy1zY3JpcHQxLmpzIj48L3NjcmlwdD4KLTxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2F1ZGl0cy1zdHlsZTEuY3NzIiB0eXBlPSJ0
ZXh0L2NzcyI+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGl0cy1zY3JpcHQyLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBJbnNwZWN0b3JU
ZXN0LnJlbG9hZFBhZ2Uoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdC5yZXNvdXJjZURvbWFpbiA9IGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgcmV0dXJuICJbZG9tYWluXSI7Ci0gICAgICAgIH07Ci0KLSAg
ICAgICAgdmFyIGxhdW5jaGVyVmlldyA9IFdlYkluc3BlY3Rvci5wYW5lbHMuYXVkaXRzLl9sYXVu
Y2hlclZpZXc7Ci0gICAgICAgIGxhdW5jaGVyVmlldy5fc2VsZWN0QWxsQ2xpY2tlZCh0cnVlKTsK
LSAgICAgICAgbGF1bmNoZXJWaWV3Ll9hdWRpdFByZXNlbnRTdGF0ZUVsZW1lbnQuY2hlY2tlZCA9
IHRydWU7Ci0gICAgICAgIGxhdW5jaGVyVmlldy5fbGF1bmNoQnV0dG9uQ2xpY2tlZCgpOwotCi0g
ICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhzdGVwMik7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb2xsZWN0QXVkaXRSZXN1bHRzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLVRlc3RzIGF1ZGl0IHJ1bGVzLgotPHN0eWxlPgotLnZpb2xhdGlvbiB7IGNvbG9y
OiByZWQ7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4OyB9Ci08L3N0eWxlPgotPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvYXVkaXRzLXN0eWxlMS5jc3MiIHR5cGU9InRl
eHQvY3NzIj4KLTxpbWcgc3JjPSJmb28xLmpwZyI+Ci08aW1nIHNyYz0iZm9vMi5qcGciIHdpZHRo
PTEwMD4KLTxpbWcgc3JjPSJmb28zLmpwZyIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSI+Ci08
aW1nIHNyYz0iZm9vNC5qcGciIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4Ij4KLQot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0
cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdlcy1mdW5jdGlvbmFsLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTlhYTdiZi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdl
cy1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAK
LVRlc3RzIGF1ZGl0IHJ1bGVzIG9uIGEgcGFnZSB3aXRob3V0IGltYWdlcy4KLVBhZ2UgcmVsb2Fk
ZWQuCi0gTmV0d29yayBVdGlsaXphdGlvbgotICAgIENvbWJpbmUgZXh0ZXJuYWwgSmF2YVNjcmlw
dCAoNCkKLSAgICAgVGhlcmUgYXJlIG11bHRpcGxlIHJlc291cmNlcyBzZXJ2ZWQgZnJvbSBzYW1l
IGRvbWFpbi4gQ29uc2lkZXIgY29tYmluaW5nIHRoZW0gaW50byBhcyBmZXcgZmlsZXMgYXMgcG9z
c2libGUuCi0gICAgICA0IEphdmFTY3JpcHQgcmVzb3VyY2VzIHNlcnZlZCBmcm9tIFtkb21haW5d
LgotIFdlYiBQYWdlIFBlcmZvcm1hbmNlCi0gICAgT3B0aW1pemUgdGhlIG9yZGVyIG9mIHN0eWxl
cyBhbmQgc2NyaXB0cyAoMikKLSAgICAgVGhlIGZvbGxvd2luZyBleHRlcm5hbCBDU1MgZmlsZXMg
d2VyZSBpbmNsdWRlZCBhZnRlciBhbiBleHRlcm5hbCBKYXZhU2NyaXB0IGZpbGUgaW4gdGhlIGRv
Y3VtZW50IGhlYWQuIFRvIGVuc3VyZSBDU1MgZmlsZXMgYXJlIGRvd25sb2FkZWQgaW4gcGFyYWxs
ZWwsIGFsd2F5cyBpbmNsdWRlIGV4dGVybmFsIENTUyBiZWZvcmUgZXh0ZXJuYWwgSmF2YVNjcmlw
dC4KLSAgICAgICBhdWRpdHMtc3R5bGUxLmNzcwotICAgICAgMSBpbmxpbmUgc2NyaXB0IGJsb2Nr
IHdhcyBmb3VuZCBpbiB0aGUgaGVhZCBiZXR3ZWVuIGFuIGV4dGVybmFsIENTUyBmaWxlIGFuZCBh
bm90aGVyIHJlc291cmNlLiBUbyBhbGxvdyBwYXJhbGxlbCBkb3dubG9hZGluZywgbW92ZSB0aGUg
aW5saW5lIHNjcmlwdCBiZWZvcmUgdGhlIGV4dGVybmFsIENTUyBmaWxlLCBvciBhZnRlciB0aGUg
bmV4dCByZXNvdXJjZS4KLSAgICBQdXQgQ1NTIGluIHRoZSBkb2N1bWVudCBoZWFkICgyKQotICAg
ICBDU1MgaW4gdGhlIGRvY3VtZW50IGJvZHkgYWR2ZXJzZWx5IGltcGFjdHMgcmVuZGVyaW5nIHBl
cmZvcm1hbmNlLgotICAgICAxIHN0eWxlIGJsb2NrKHMpIGluIHRoZSAKLSAgICAgIGF1ZGl0cy1w
YW5lbC1ub2ltYWdlcy1mdW5jdGlvbmFsLmh0bWwKLSAgICAgIGJvZHkgc2hvdWxkIGJlIG1vdmVk
IHRvIHRoZSBkb2N1bWVudCBoZWFkLgotICAgICBMaW5rIG5vZGUgCi0gICAgICBhdWRpdHMtc3R5
bGUxLmNzcwotICAgICAgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBkb2N1bWVudCBoZWFkIGluIAot
ICAgICAgYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwuaHRtbAotICAgIFJlbW92ZSB1
bnVzZWQgQ1NTIHJ1bGVzICg0KQotICAgICA0IHJ1bGVzICgxMDAlKSBvZiBDU1Mgbm90IHVzZWQg
YnkgdGhlIGN1cnJlbnQgcGFnZS4KLSAgICAgIElubGluZSBibG9jayAjMTogMTAwJSBpcyBub3Qg
dXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgotICAgICAgIC51bnVzZWQKLSAgICAgICBhdWRpdHMt
c3R5bGUxLmNzcwotICAgICAgOiAxMDAlIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2Uu
Ci0gICAgICAgLnNvbWUtc3R5bGUKLSAgICAgIElubGluZSBibG9jayAjMjogMTAwJSBpcyBub3Qg
dXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgotICAgICAgIC52aW9sYXRpb24KLSAgICAgICBhdWRp
dHMtc3R5bGUxLmNzcwotICAgICAgOiAxMDAlIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBh
Z2UuCi0gICAgICAgLnNvbWUtc3R5bGUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzk3MTg4Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0
aW9uYWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8v
d3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4K
LS51bnVzZWQgewotICAgIGNvbG9yOiBncmVlbjsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0PgotSlNP
TiA9IHt9OwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImF1ZGl0cy10ZXN0
LmpzIj48L3NjcmlwdD4KLQotPCEtLSBUaGVzZSBzY3JpcHRzIGFyZSBuZWVkZWQgdG8gcmVzdWx0
IGluIGEgdmlvbGF0aW9uIG9mIHRoZSBtYXggSlMgcmVzb3VyY2UgY291bnQgZnJvbSB0aGUgc2Ft
ZSBkb21haW4gLS0+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGl0cy1zY3JpcHQxLmpzIj48
L3NjcmlwdD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2F1ZGl0cy1z
dHlsZTEuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGl0
cy1zY3JpcHQyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgdGVzdCA9IGZ1bmN0aW9uKCkK
LXsKLSAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24g
c3RlcDEoKQotICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdC5yZXNv
dXJjZURvbWFpbiA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcmV0dXJuICJbZG9tYWluXSI7
Ci0gICAgICAgIH07Ci0KLSAgICAgICAgdmFyIGxhdW5jaGVyVmlldyA9IFdlYkluc3BlY3Rvci5w
YW5lbHMuYXVkaXRzLl9sYXVuY2hlclZpZXc7Ci0gICAgICAgIGxhdW5jaGVyVmlldy5fc2VsZWN0
QWxsQ2xpY2tlZCh0cnVlKTsKLSAgICAgICAgbGF1bmNoZXJWaWV3Ll9hdWRpdFByZXNlbnRTdGF0
ZUVsZW1lbnQuY2hlY2tlZCA9IHRydWU7Ci0gICAgICAgIGxhdW5jaGVyVmlldy5fbGF1bmNoQnV0
dG9uQ2xpY2tlZCgpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlz
cGF0Y2hlcyhzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb2xsZWN0QXVkaXRSZXN1bHRzKCk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLVRlc3RzIGF1ZGl0IHJ1bGVzIG9uIGEgcGFnZSB3
aXRob3V0IGltYWdlcy4KLTxzdHlsZT4KLS52aW9sYXRpb24geyBjb2xvcjogcmVkOyB9Ci08L3N0
eWxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvYXVkaXRzLXN0eWxl
MS5jc3MiIHR5cGU9InRleHQvY3NzIj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy10ZXN0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3NWQxNDBiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMv
YXVkaXRzLXRlc3QuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1mdW5jdGlvbiBp
bml0aWFsaXplX0F1ZGl0VGVzdHMoKQotewotCi1JbnNwZWN0b3JUZXN0LmNvbGxlY3RBdWRpdFJl
c3VsdHMgPSBmdW5jdGlvbigpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnBhbmVscy5hdWRpdHMuc2hv
d1Jlc3VsdHMoV2ViSW5zcGVjdG9yLnBhbmVscy5hdWRpdHMuYXVkaXRSZXN1bHRzVHJlZUVsZW1l
bnQuY2hpbGRyZW5bMF0ucmVzdWx0cyk7Ci0gICAgdmFyIGxpRWxlbWVudHMgPSBXZWJJbnNwZWN0
b3IucGFuZWxzLmF1ZGl0cy52aXNpYmxlVmlldy5lbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJsaSIpOwotICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGlFbGVtZW50cy5sZW5ndGg7ICsraikg
ewotICAgICAgICBpZiAobGlFbGVtZW50c1tqXS50cmVlRWxlbWVudCkKLSAgICAgICAgICAgIGxp
RWxlbWVudHNbal0udHJlZUVsZW1lbnQuZXhwYW5kKCk7Ci0gICAgfQotICAgIEluc3BlY3RvclRl
c3QuY29sbGVjdFRleHRDb250ZW50KFdlYkluc3BlY3Rvci5wYW5lbHMuYXVkaXRzLnZpc2libGVW
aWV3LmVsZW1lbnQsIDApOwotfQotCi1JbnNwZWN0b3JUZXN0LmNvbGxlY3RUZXh0Q29udGVudCA9
IGZ1bmN0aW9uKGVsZW1lbnQsIGxldmVsKQotewotICAgIHZhciBub2RlT3V0cHV0ID0gIiI7Ci0g
ICAgdmFyIGNoaWxkID0gZWxlbWVudC5maXJzdENoaWxkOwotCi0gICAgd2hpbGUgKGNoaWxkKSB7
Ci0gICAgICAgIGlmIChjaGlsZC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHsKLSAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGV2ZWw7ICsraSkKLSAgICAgICAgICAgICAgICBu
b2RlT3V0cHV0ICs9ICIgIjsKLSAgICAgICAgICAgIG5vZGVPdXRwdXQgKz0gY2hpbGQubm9kZVZh
bHVlLnJlcGxhY2UoIlx1MjAwQiIsICIiKTsKLSAgICAgICAgfSBlbHNlIGlmIChjaGlsZC5ub2Rl
VHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHsKLSAgICAgICAgICAgIGlmIChub2RlT3V0cHV0
ICE9PSAiIikgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KG5vZGVP
dXRwdXQpOwotICAgICAgICAgICAgICAgIG5vZGVPdXRwdXQgPSAiIjsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29sbGVjdFRleHRDb250ZW50KGNoaWxkLCBsZXZl
bCArIDEpOwotICAgICAgICB9Ci0gICAgICAgIGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmc7Ci0g
ICAgfQotICAgIGlmIChub2RlT3V0cHV0ICE9PSAiIikKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQobm9kZU91dHB1dCk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9hdWRpdHMvcmVzb3VyY2VzL2F1ZGl0cy1zY3JpcHQxLmpzIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2F1ZGl0cy9yZXNvdXJjZXMvYXVkaXRzLXNjcmlwdDEuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGM5OTIwYWMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2F1ZGl0cy9yZXNvdXJjZXMvYXVkaXRzLXNjcmlwdDEuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLWZ1bmN0aW9uIGZvbzEoKQotewotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9yZXNvdXJjZXMvYXVkaXRzLXNjcmlwdDIuanMgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL3Jlc291cmNlcy9hdWRpdHMtc2NyaXB0Mi5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjgzZmUxZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYXVkaXRzL3Jlc291cmNlcy9hdWRpdHMtc2NyaXB0Mi5qcworKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotZnVuY3Rpb24gZm9vMigpCi17Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL3Jlc291cmNlcy9hdWRpdHMtc3R5bGUxLmNz
cyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvcmVzb3VyY2VzL2F1ZGl0cy1zdHlsZTEu
Y3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzExMmFkLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvcmVzb3VyY2VzL2F1ZGl0cy1zdHlsZTEuY3Nz
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0uc29tZS1zdHlsZSB7Ci0gICAgdmVydGlj
YWwtYWxpZ246IG1pZGRsZTsKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9hbGVydC10b1N0cmluZy1leGNlcHRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvYWxlcnQtdG9T
dHJpbmctZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTIyNmEzNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9h
bGVydC10b1N0cmluZy1leGNlcHRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogRXhjZXB0aW9uIGluIHRvU3RyaW5n
KCkuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogRXhjZXB0aW9uIGluIHRvU3RyaW5nKCkuCi1U
ZXN0IHRoYXQgYnJvd3NlciB3b24ndCBjcmFzaCBpZiBpbnNwZWN0b3IgaXMgb3BlbmVkIGZvciBh
IHBhZ2UgdGhhdCBmYWlscyB0byBjb252ZXJ0IGFsZXJ0KCkgYXJndW1lbnQgdG8gc3RyaW5nLiBU
aGUgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4gQnVnIDYwNTQxCi0KLVBhZ2UgcmVs
b2FkZWQuCi1FeGNlcHRpb24gaW4gdG9TdHJpbmcoKS4gYWxlcnQtdG9TdHJpbmctZXhjZXB0aW9u
Lmh0bWw6NgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9hbGVy
dC10b1N0cmluZy1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
L2FsZXJ0LXRvU3RyaW5nLWV4Y2VwdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5YWEwNTUyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
L2FsZXJ0LXRvU3RyaW5nLWV4Y2VwdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1h
bGVydCh7dG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyB0aHJvdyAiRXhjZXB0aW9uIGluIHRvU3RyaW5n
KCkuIjsgfX0pOwotPC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
SW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKLSAgICB9KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotPHA+Ci1UZXN0IHRoYXQgYnJvd3NlciB3b24ndCBjcmFzaCBpZiBpbnNwZWN0
b3IgaXMgb3BlbmVkIGZvciBhIHBhZ2UgdGhhdCBmYWlscyB0byBjb252ZXJ0Ci1hbGVydCgpIGFy
Z3VtZW50IHRvIHN0cmluZy4gVGhlIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCi08
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA1NDEiPkJ1
ZyA2MDU0MTwvYT4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NsaWVudHMtaWdub3JlZC1pbi1wcml2YXRlYnJvd3Npbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY2xpZW50cy1pZ25v
cmVkLWluLXByaXZhdGVicm93c2luZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDdiZTI0MWUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY2xpZW50cy1pZ25vcmVkLWluLXByaXZhdGVicm93c2luZy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLUluIFByaXZhdGVCcm93c2luZyBtb2RlLCBjb25z
b2xlIG1lc3NhZ2VzIGFyZSB2aXNpYmxlIGluIHRoZSBDb25zb2xlLCBidXQgYXJlbid0IHNlbnQg
dG8gQ2hyb21lQ2xpZW50cyAob3IgcHJpbnRmJ2QpIGluIG9yZGVyIHRvIGVuc3VyZSB0aGV5IG5l
dmVyIGVuZCB1cCBpbiBsb2dzLiBCZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LgotCi1sb2c6IFRoaXMg
c2hvdWxkIHNob3cgdXAgb25jZSBjb25zb2xlIG1lc3NhZ2VzIGFyZSBkdW1wZWQsIGJ1dCBzaG91
bGQgX25vdF8gc2hvdyB1cCBhcyBhICJDT05TT0xFIE1FU1NBR0U6IiBhdCB0aGUgdG9wIG9mIHRo
ZSBvdXRwdXQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Ns
aWVudHMtaWdub3JlZC1pbi1wcml2YXRlYnJvd3NpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlL2NsaWVudHMtaWdub3JlZC1pbi1wcml2YXRlYnJvd3NpbmcuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM3ODQyNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jbGllbnRzLWlnbm9yZWQtaW4tcHJpdmF0ZWJyb3dzaW5n
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xl
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQodHJ1ZSk7Ci0KLSAgICBjb25zb2xlLmxvZygnVGhpcyBzaG91bGQgc2hvdyB1
cCBvbmNlIGNvbnNvbGUgbWVzc2FnZXMgYXJlIGR1bXBlZCwgYnV0IHNob3VsZCBfbm90XyBzaG93
IHVwIGFzIGEgIkNPTlNPTEUgTUVTU0FHRToiIGF0IHRoZSB0b3Agb2YgdGhlIG91dHB1dC4nKTsK
LQotICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOwotCi0gICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoZmFsc2UpOwotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5JbiBQcml2
YXRlQnJvd3NpbmcgbW9kZSwgY29uc29sZSBtZXNzYWdlcyBhcmUgdmlzaWJsZSBpbiB0aGUgQ29u
c29sZSwgYnV0Ci1hcmVuJ3Qgc2VudCB0byBDaHJvbWVDbGllbnRzIChvciBwcmludGYnZCkgaW4g
b3JkZXIgdG8gZW5zdXJlIHRoZXkgbmV2ZXIgZW5kCi11cCBpbiBsb2dzLiBCZXR0ZXIgc2FmZSB0
aGFuIHNvcnJ5LjwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmIyZmUzMS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjIz
OiBUaGUgY29uc29sZSBmdW5jdGlvbiAkKCkgaGFzIGNoYW5nZWQgZnJvbSAkPWdldEVsZW1lbnRC
eUlkKGlkKSB0byAkPXF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpLiBZb3UgbWlnaHQgdHJ5ICQoIiMl
cyIpCi1UZXN0cyB0aGF0IGNvbW1hbmQgbGluZSBhcGkgd29ya3MuCi0KLQotCi1TdHJpbmcoJDAp
Ci0iW29iamVjdCBIVE1MUGFyYWdyYXBoRWxlbWVudF0iCi0KLQotJDMKLXVuZGVmaW5lZAotCi0K
LVN0cmluZyhrZXlzKFszLDRdKSkKLSIwLDEiCi0KLQotU3RyaW5nKHZhbHVlcyhbMyw0XSkpCi0i
Myw0IgotCi0KLVN0cmluZygkKCcjZm9vJykpCi0iW29iamVjdCBIVE1MUGFyYWdyYXBoRWxlbWVu
dF0iCi0KLQotU3RyaW5nKCQoJyNmb28nLCBkb2N1bWVudC5ib2R5KSkKLSJbb2JqZWN0IEhUTUxQ
YXJhZ3JhcGhFbGVtZW50XSIKLQotCi1TdHJpbmcoJCgnI2ZvbycsICdub24tbm9kZScpKQotIltv
YmplY3QgSFRNTFBhcmFncmFwaEVsZW1lbnRdIgotCi0KLVN0cmluZygkKCcjZm9vJywgJCgnI2Jh
cicpKSkKLSJudWxsIgotCi0KLVN0cmluZygkJCgncCNmb28nKSkKLSJbb2JqZWN0IE5vZGVMaXN0
XSIKLQotCi1TdHJpbmcoJCQoJ3AjZm9vJywgZG9jdW1lbnQuYm9keSkpCi0iW29iamVjdCBOb2Rl
TGlzdF0iCi0KLQotU3RyaW5nKCQoJ2ZvbycpKQotVGhlIGNvbnNvbGUgZnVuY3Rpb24gJCgpIGhh
cyBjaGFuZ2VkIGZyb20gJD1nZXRFbGVtZW50QnlJZChpZCkgdG8gJD1xdWVyeVNlbGVjdG9yKHNl
bGVjdG9yKS4gWW91IG1pZ2h0IHRyeSAkKCIjZm9vIikKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1nZXRFdmVudExpc3RlbmVycy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUt
YXBpLWdldEV2ZW50TGlzdGVuZXJzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTc5MWM3Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb21tYW5kLWxpbmUtYXBpLWdldEV2ZW50TGlzdGVuZXJzLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNjogU3lu
dGF4RXJyb3I6IEV4cGVjdGVkIGFuIGlkZW50aWZpZXIgYnV0IGZvdW5kICdKYXZhU2NyaXB0JyBp
bnN0ZWFkCi1UZXN0cyBnZXRFdmVudExpc3RlbmVycygpIG1ldGhvZCBvZiBjb25zb2xlIGNvbW1h
bmQgbGluZSBBUEkuCi0KLSAKLS0gaW5uZXIgLQota2V5ZG93bjogewotICAgIDA6IHsKLSAgICAg
ICAgbGlzdGVuZXI6IGZ1bmN0aW9uIGxpc3RlbmVyMSgpIHsgfQotICAgICAgICB1c2VDYXB0dXJl
OiBmYWxzZQotICAgIH0KLSAgICAxOiB7Ci0gICAgICAgIGxpc3RlbmVyOiBmdW5jdGlvbiBsaXN0
ZW5lcjIoKSB7IH0KLSAgICAgICAgdXNlQ2FwdHVyZTogdHJ1ZQotICAgIH0KLX0KLS0gb3V0ZXIg
LQotbW91c2Vtb3ZlOiB7Ci0gICAgMDogewotICAgICAgICBsaXN0ZW5lcjogZnVuY3Rpb24gbGlz
dGVuZXIxKCkgeyB9Ci0gICAgICAgIHVzZUNhcHR1cmU6IGZhbHNlCi0gICAgfQotfQotbW91c2Vk
b3duOiB7Ci0gICAgMDogewotICAgICAgICBsaXN0ZW5lcjogZnVuY3Rpb24gbGlzdGVuZXIyKCkg
eyB9Ci0gICAgICAgIHVzZUNhcHR1cmU6IHRydWUKLSAgICB9Ci19Ci1rZXlkb3duOiB7Ci0gICAg
MDogewotICAgICAgICBsaXN0ZW5lcjogZnVuY3Rpb24gbGlzdGVuZXIyKCkgeyB9Ci0gICAgICAg
IHVzZUNhcHR1cmU6IHRydWUKLSAgICB9Ci19Ci0tIGF0dHJpYnV0ZSBldmVudCBsaXN0ZW5lcnMg
LQotY2xpY2s6IHsKLSAgICAwOiB7Ci0gICAgICAgIGxpc3RlbmVyOiBmdW5jdGlvbiBvbmNsaWNr
KGV2ZW50KSB7IGFsZXJ0KDEpIH0KLSAgICAgICAgdXNlQ2FwdHVyZTogZmFsc2UKLSAgICB9Ci19
Ci1tb3VzZW92ZXI6IHsKLSAgICAwOiB7Ci0gICAgICAgIGxpc3RlbmVyOiBmdW5jdGlvbiBvbm1v
dXNlb3ZlcihldmVudCkgeyBsaXN0ZW5lcjIoKSB9Ci0gICAgICAgIHVzZUNhcHR1cmU6IGZhbHNl
Ci0gICAgfQotfQotLSBlbXB0eSAtCi0tIGludmFsaWQgLQotLSBvYmplY3QgLQotdW5kZWZpbmVk
Ci0tIG51bGwgLQotdW5kZWZpbmVkCi0tIHVuZGVmaW5lZCAtCi11bmRlZmluZWQKLS0gd2luZG93
IC0KLXVuZGVmaW5lZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb21tYW5kLWxpbmUtYXBpLWdldEV2ZW50TGlzdGVuZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWdldEV2ZW50TGlzdGVuZXJzLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2NTM5NGIuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1nZXRFdmVudExpc3Rl
bmVycy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIgdGVzdCA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJydW5UZXN0c0luUGFn
ZShnZXRFdmVudExpc3RlbmVycykiLCBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdC5iaW5kKElu
c3BlY3RvclRlc3QpKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLTxwIGlkPSJmb28iPgotVGVzdHMgZ2V0RXZlbnRMaXN0ZW5lcnMoKSBtZXRo
b2Qgb2YgY29uc29sZSBjb21tYW5kIGxpbmUgQVBJLgotPC9wPgotPGRpdiBpZD0ib3V0ZXIiPgot
PGRpdiBpZD0iaW5uZXIiPgotPC9kaXY+Ci08L2Rpdj4KLTxkaXYgaWQ9ImVtcHR5Ij4KLTwvZGl2
PgotPGJ1dHRvbiBpZD0iYnV0dG9uIiBvbmNsaWNrPSJhbGVydCgxKSIgb25tb3VzZW92ZXI9Imxp
c3RlbmVyMigpIj48L2J1dHRvbj4KLTxidXR0b24gaWQ9ImludmFsaWQiIG9uY2xpY2s9IkludmFs
aWQgSmF2YVNjcmlwdCI+PC9idXR0b24+Ci08c2NyaXB0PgotZnVuY3Rpb24gbGlzdGVuZXIxKCkK
LXsKLX0KLWZ1bmN0aW9uIGxpc3RlbmVyMigpCi17Ci19Ci0KLWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJpbm5lciIpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBsaXN0ZW5lcjEsIGZhbHNl
KTsKLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbm5lciIpLmFkZEV2ZW50TGlzdGVuZXIoImtl
eWRvd24iLCBsaXN0ZW5lcjIsIHRydWUpOwotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dGVy
IikuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgbGlzdGVuZXIxLCBmYWxzZSk7Ci1kb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXIiKS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24i
LCBsaXN0ZW5lcjIsIHRydWUpOwotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dGVyIikuYWRk
RXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIGxpc3RlbmVyMiwgdHJ1ZSk7Ci0KLWZ1bmN0aW9uIGR1
bXBPYmplY3Qob2JqZWN0LCBwcmVmaXgpCi17Ci0gICAgcHJlZml4ID0gcHJlZml4IHx8ICIiOwot
ICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsKLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGtleXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHZhbHVlID0gb2JqZWN0W2tleXNb
aV1dOwotICAgICAgICB2YXIgbmFtZVdpdGhQcmVmaXggPSBwcmVmaXggKyBrZXlzW2ldICsgIjog
IjsKLSAgICAgICAgc3dpdGNoICh0eXBlb2YodmFsdWUpKSB7Ci0gICAgICAgIGNhc2UgIm9iamVj
dCI6Ci0gICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICBv
dXRwdXQobmFtZVdpdGhQcmVmaXggKyAibnVsbCIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgb3V0cHV0KG5hbWVXaXRoUHJlZml4ICsgInsiKTsK
LSAgICAgICAgICAgIGR1bXBPYmplY3QodmFsdWUsIHByZWZpeCArICIgICAgIikKLSAgICAgICAg
ICAgIG91dHB1dChwcmVmaXggKyAifSIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgInN0cmluZyI6Ci0gICAgICAgICAgICBvdXRwdXQobmFtZVdpdGhQcmVmaXggKyBKU09OLnN0
cmluZ2lmeSh2YWx1ZSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgImZ1bmN0
aW9uIjoKLSAgICAgICAgICAgIHZhciBib2R5ID0gdmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9b
IFxuXSsvZ20sICIgIik7Ci0gICAgICAgICAgICBib2R5ID0gYm9keS5yZXBsYWNlKC87IH0vZywg
IiB9Iik7Ci0gICAgICAgICAgICBvdXRwdXQobmFtZVdpdGhQcmVmaXggKyBib2R5KTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgb3V0cHV0KG5hbWVX
aXRoUHJlZml4ICsgU3RyaW5nKHZhbHVlKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
fQotICAgIH0KLX0KLQotZnVuY3Rpb24gcnVuVGVzdHNJblBhZ2UoZ2V0RXZlbnRMaXN0ZW5lcnMp
Ci17Ci0gICAgb3V0cHV0KCItIGlubmVyIC0iKTsKLSAgICBkdW1wT2JqZWN0KGdldEV2ZW50TGlz
dGVuZXJzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbm5lciIpKSk7Ci0gICAgb3V0cHV0KCIt
IG91dGVyIC0iKTsKLSAgICBkdW1wT2JqZWN0KGdldEV2ZW50TGlzdGVuZXJzKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvdXRlciIpKSk7Ci0gICAgb3V0cHV0KCItIGF0dHJpYnV0ZSBldmVudCBs
aXN0ZW5lcnMgLSIpOwotICAgIGR1bXBPYmplY3QoZ2V0RXZlbnRMaXN0ZW5lcnMoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImJ1dHRvbiIpKSk7Ci0gICAgb3V0cHV0KCItIGVtcHR5IC0iKTsKLSAg
ICBkdW1wT2JqZWN0KGdldEV2ZW50TGlzdGVuZXJzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
bXB0eSIpKSk7Ci0gICAgb3V0cHV0KCItIGludmFsaWQgLSIpOwotICAgIGR1bXBPYmplY3QoZ2V0
RXZlbnRMaXN0ZW5lcnMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImludmFsaWQiKSkpOwotICAg
IG91dHB1dCgiLSBvYmplY3QgLSIpOwotICAgIG91dHB1dCh0eXBlb2YgZ2V0RXZlbnRMaXN0ZW5l
cnMoe30pKTsKLSAgICBvdXRwdXQoIi0gbnVsbCAtIik7Ci0gICAgb3V0cHV0KHR5cGVvZiBnZXRF
dmVudExpc3RlbmVycyhudWxsKSk7Ci0gICAgb3V0cHV0KCItIHVuZGVmaW5lZCAtIik7Ci0gICAg
b3V0cHV0KHR5cGVvZiBnZXRFdmVudExpc3RlbmVycyh1bmRlZmluZWQpKTsKLSAgICBvdXRwdXQo
Ii0gd2luZG93IC0iKTsKLSAgICBvdXRwdXQodHlwZW9mIGdldEV2ZW50TGlzdGVuZXJzKHdpbmRv
dykpOwotfQotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGktaW5zcGVjdC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWlu
c3BlY3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjY3MTZh
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGlu
ZS1hcGktaW5zcGVjdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBA
Ci1UZXN0cyB0aGF0IGluc3BlY3QoKSBjb21tYW5kIGxpbmUgYXBpIHdvcmtzLgotCi0KLVJ1bm5p
bmc6IHRlc3RSZXZlYWxFbGVtZW50Ci0KLQotV2ViSW5zcGVjdG9yLmluc3BlY3QgY2FsbGVkIHdp
dGg6IHAjcDEKLVdlYkluc3BlY3Rvci5pbnNwZWN0J3MgaGludHMgYXJlOiBbXQotaW5zcGVjdCgk
KCcjcDEnKSkgPSAKLVNlbGVjdGVkIG5vZGUgaWQ6ICdwMScuCi0KLVJ1bm5pbmc6IHRlc3RSZXZl
YWxEYXRhYmFzZQotCi0KLVdlYkluc3BlY3Rvci5pbnNwZWN0IGNhbGxlZCB3aXRoOiBEYXRhYmFz
ZQotV2ViSW5zcGVjdG9yLmluc3BlY3QncyBoaW50cyBhcmU6IFsiZGF0YWJhc2VJZCJdCi1pbnNw
ZWN0KGRiKSA9IERhdGFiYXNlIHt2ZXJzaW9uOiAiMS4wIiwgdHJhbnNhY3Rpb246IGZ1bmN0aW9u
LCByZWFkVHJhbnNhY3Rpb246IGZ1bmN0aW9uLCBjaGFuZ2VWZXJzaW9uOiBmdW5jdGlvbn0KLQot
UnVubmluZzogdGVzdFJldmVhbERhdGFiYXNlMgotCi0KLVdlYkluc3BlY3Rvci5pbnNwZWN0IGNh
bGxlZCB3aXRoOiBEYXRhYmFzZQotV2ViSW5zcGVjdG9yLmluc3BlY3QncyBoaW50cyBhcmU6IFsi
ZGF0YWJhc2VJZCJdCi1pbnNwZWN0KGRiMikgPSBEYXRhYmFzZSB7dmVyc2lvbjogIjEuMCIsIHRy
YW5zYWN0aW9uOiBmdW5jdGlvbiwgcmVhZFRyYW5zYWN0aW9uOiBmdW5jdGlvbiwgY2hhbmdlVmVy
c2lvbjogZnVuY3Rpb259Ci0KLVJ1bm5pbmc6IHRlc3RSZXZlYWxMb2NhbFN0b3JhZ2UKLQotCi1X
ZWJJbnNwZWN0b3IuaW5zcGVjdCBjYWxsZWQgd2l0aDogU3RvcmFnZQotV2ViSW5zcGVjdG9yLmlu
c3BlY3QncyBoaW50cyBhcmU6IFsiZG9tU3RvcmFnZUlkIl0KLWluc3BlY3QobG9jYWxTdG9yYWdl
KSA9IFN0b3JhZ2Uge30KLQotUnVubmluZzogdGVzdFJldmVhbFNlc3Npb25TdG9yYWdlCi0KLQot
V2ViSW5zcGVjdG9yLmluc3BlY3QgY2FsbGVkIHdpdGg6IFN0b3JhZ2UKLVdlYkluc3BlY3Rvci5p
bnNwZWN0J3MgaGludHMgYXJlOiBbImRvbVN0b3JhZ2VJZCJdCi1pbnNwZWN0KHNlc3Npb25TdG9y
YWdlKSA9IFN0b3JhZ2Uge30KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29tbWFuZC1saW5lLWFwaS1pbnNwZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWluc3BlY3QuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYmEwMzA0Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWluc3BlY3QuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDc2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotCi1mdW5jdGlvbiBvbmxvYWQoKQotewotICAgIHdpbmRvdy5kYiA9IG9wZW5EYXRh
YmFzZSgiSW5zcGVjdG9yRGF0YWJhc2VUZXN0IiwgIjEuMCIsICJUZXN0IG9mIGRhdGFiYXNlIHJl
dmVhbCBpbiBpbnNwZWN0b3IiLCAxKTsKLSAgICB3aW5kb3cuZGIyID0gb3BlbkRhdGFiYXNlKCJJ
bnNwZWN0b3JEYXRhYmFzZVRlc3QyIiwgIjEuMCIsICJUZXN0IG9mIGRhdGFiYXNlIHJldmVhbCBp
biBpbnNwZWN0b3IiLCAxKTsKLSAgICBsb2NhbFN0b3JhZ2VbImluc3BlY3RvciJdID0gIlRlc3Qg
b2YgbG9jYWwgc3RvcmFnZSByZXZlYWwgaW4gaW5zcGVjdG9yIjsKLSAgICBzZXNzaW9uU3RvcmFn
ZVsiaW5zcGVjdG9yIl0gPSAiVGVzdCBvZiBzZXNzaW9uIHN0b3JhZ2UgcmV2ZWFsIGluIGluc3Bl
Y3RvciI7Ci0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNw
ZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLCAiaW5zcGVjdCIsIHNuaWZmSW5zcGVj
dCwgdHJ1ZSk7Ci0KLSAgICBmdW5jdGlvbiBzbmlmZkluc3BlY3Qob2JqZWN0SWQsIGhpbnRzKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIldlYkluc3BlY3Rvci5pbnNw
ZWN0IGNhbGxlZCB3aXRoOiAiICsgb2JqZWN0SWQuZGVzY3JpcHRpb24pOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiV2ViSW5zcGVjdG9yLmluc3BlY3QncyBoaW50cyBhcmU6ICIg
KyBKU09OLnN0cmluZ2lmeShPYmplY3Qua2V5cyhoaW50cykpKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBldmFsQW5kRHVtcChleHByZXNzaW9uLCBuZXh0KQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlxuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
bkNvbnNvbGVBbmREdW1wKGV4cHJlc3Npb24sIG5leHQpOwotICAgIH0KLQotICAgIEluc3BlY3Rv
clRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFJldmVhbEVsZW1lbnQo
bmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdl
Ykluc3BlY3RvciwgIl91cGRhdGVGb2N1c2VkTm9kZSIsIHN0ZXAyKTsKLSAgICAgICAgICAgIGV2
YWxBbmREdW1wKCJpbnNwZWN0KCQoJyNwMScpKSIpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBz
dGVwMigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIlNlbGVjdGVkIG5vZGUgaWQ6ICciICsgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50
cy5zZWxlY3RlZERPTU5vZGUoKS5nZXRBdHRyaWJ1dGUoImlkIikgKyAiJy4iKTsKLSAgICAgICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdFJldmVhbERhdGFiYXNlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGV2
YWxBbmREdW1wKCJpbnNwZWN0KGRiKSIsIG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1
bmN0aW9uIHRlc3RSZXZlYWxEYXRhYmFzZTIobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
ZXZhbEFuZER1bXAoImluc3BlY3QoZGIyKSIsIG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RSZXZlYWxMb2NhbFN0b3JhZ2UobmV4dCkKLSAgICAgICAgewotICAgICAg
ICAgICAgZXZhbEFuZER1bXAoImluc3BlY3QobG9jYWxTdG9yYWdlKSIsIG5leHQpOwotICAgICAg
ICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RSZXZlYWxTZXNzaW9uU3RvcmFnZShuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICBldmFsQW5kRHVtcCgiaW5zcGVjdChzZXNzaW9uU3RvcmFn
ZSkiLCBuZXh0KTsKLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Ci08cCBpZD0icDEiPgotVGVzdHMgdGhhdCBpbnNw
ZWN0KCkgY29tbWFuZCBsaW5lIGFwaSB3b3Jrcy4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFw
aS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWY2Y2I0Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGkuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkK
LXsKLSAgICB2YXIgZXhwcmVzc2lvbnMgPSBbCi0gICAgICAgICJTdHJpbmcoJDApIiwKLSAgICAg
ICAgIiQzIiwKLSAgICAgICAgIlN0cmluZyhrZXlzKFszLDRdKSkiLAotICAgICAgICAiU3RyaW5n
KHZhbHVlcyhbMyw0XSkpIiwKLSAgICAgICAgIlN0cmluZygkKCcjZm9vJykpIiwKLSAgICAgICAg
IlN0cmluZygkKCcjZm9vJywgZG9jdW1lbnQuYm9keSkpIiwKLSAgICAgICAgIlN0cmluZygkKCcj
Zm9vJywgJ25vbi1ub2RlJykpIiwKLSAgICAgICAgIlN0cmluZygkKCcjZm9vJywgJCgnI2Jhcicp
KSkiLAotICAgICAgICAiU3RyaW5nKCQkKCdwI2ZvbycpKSIsCi0gICAgICAgICJTdHJpbmcoJCQo
J3AjZm9vJywgZG9jdW1lbnQuYm9keSkpIiwKLSAgICAgICAgIlN0cmluZygkKCdmb28nKSkiCi0g
ICAgXTsKLQotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgiZm9vIiwgc3RlcDEp
OwotCi0gICAgZnVuY3Rpb24gc3RlcDEobm9kZSkKLSAgICB7Ci0gICAgICAgIGlmICghZXhwcmVz
c2lvbnMubGVuZ3RoKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVz
c2FnZXMoKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGV4cHJlc3Npb24gPSBleHBy
ZXNzaW9uc1swXTsKLSAgICAgICAgZXhwcmVzc2lvbnMuc3BsaWNlKDAsIDEpOwotICAgICAgICBX
ZWJJbnNwZWN0b3IubG9nKCJcbiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5D
b25zb2xlKGV4cHJlc3Npb24sIHN0ZXAxKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cCBpZD0iZm9vIj4KLVRlc3RzIHRoYXQg
Y29tbWFuZCBsaW5lIGFwaSB3b3Jrcy4KLTwvcD48cCBpZD0iYmFyIj48L3A+Ci0KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtT2JqZWN0LW92ZXJ3cml0dGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtT2JqZWN0LW92ZXJ3cml0dGVuLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2I4NmMzZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLU9iamVjdC1vdmVyd3JpdHRlbi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIHRoYXQgV2ViIEluc3BlY3Rv
cidzIGNvbnNvbGUgaXMgbm90IGJyb2tlbiBpZiBPYmplY3QgaXMgb3ZlcndyaXR0ZW4gaW4gdGhl
IGluc3BlY3RlZCBwYWdlLiBUZXN0IHBhc3NlcyBpZiB0aGUgZXhwcmVzc2lvbiBpcyBldmFsdWF0
ZWQgaW4gdGhlIGNvbnNvbGUgYW5kIG5vIGVycm9ycyBwcmludGVkLiBCdWcgMTAxMzIwLgotCi12
YXIgZm9vID0ge2JhcjoyMDEyfTsgZm9vCi1PYmplY3Qge2JhcjogMjAxMn0KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1PYmplY3Qtb3ZlcndyaXR0
ZW4uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtT2JqZWN0LW92
ZXJ3cml0dGVuLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5NmNlZjcuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1PYmplY3Qt
b3ZlcndyaXR0ZW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1PYmplY3QgPSBmdW5j
dGlvbigpIHt9OwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5Db25zb2xlKCJ2YXIgZm9vID0ge2JhcjoyMDEyfTsgZm9vIiwgc3RlcDEpOwotCi0gICAg
ZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29s
ZU1lc3NhZ2VzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAg
fQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxw
PgotVGVzdHMgdGhhdCBXZWIgSW5zcGVjdG9yJ3MgY29uc29sZSBpcyBub3QgYnJva2VuIGlmIE9i
amVjdCBpcyBvdmVyd3JpdHRlbiBpbiB0aGUgaW5zcGVjdGVkIHBhZ2UuCi1UZXN0IHBhc3NlcyBp
ZiB0aGUgZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQgaW4gdGhlIGNvbnNvbGUgYW5kIG5vIGVycm9y
cyBwcmludGVkLgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMTMyMCI+QnVnIDEwMTMyMC48L2E+Ci08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFwaS1vbi1jYWxs
LWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtYXBpLW9uLWNhbGwtZnJhbWUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlZjExNGM4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtYXBpLW9uLWNhbGwtZnJhbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTAgKzAsMCBAQAotVGVzdCB0aGF0IGNvbW1hbmQgbGluZSBhcGkgZG9lcyBub3QgbWFz
ayB2YWx1ZXMgb2Ygc2NvcGUgdmFyaWFibGVzIHdoaWxlIGV2YWx1YXRpbmcgb24gYSBjYWxsIGZy
YW1lLgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLVNldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlv
bi4KLVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotRXZhbHVhdGVkIGluIGNvbnNvbGUgaW4gdGhl
IHRvcCBmcmFtZSBjb250ZXh0OiBkaXIgKyBjbGVhciArIGluc3BlY3QgPSAiZGlyY2xlYXJpbnNw
ZWN0IgotRXZhbHVhdGVkIGluIGNvbnNvbGUgaW4gdGhlIHRvcCBmcmFtZSBjb250ZXh0OiB0eXBl
b2YgJCQgPSAiZnVuY3Rpb24iCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1EZWJ1Z2dlciB3
YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtYXBpLW9uLWNhbGwtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtYXBpLW9uLWNhbGwtZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOTc5NGRjZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLWFwaS1vbi1jYWxsLWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw1MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLXdpbmRvdy5pbnNwZWN0ID0gImluc3BlY3QiOwotdmFyIGNsZWFyID0gImNsZWFy
IjsKLQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkKLXsKLSAgICB2YXIgZGlyID0gImRpciI7Ci0g
ICAgZGVidWdnZXI7Ci19Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIEluc3BlY3Rv
clRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQ
YXVzZWQoc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImRpciArIGNsZWFyICsgaW5zcGVj
dCIsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMyhyZXN1bHQpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXZhbHVhdGVkIGluIGNvbnNvbGUgaW4g
dGhlIHRvcCBmcmFtZSBjb250ZXh0OiBkaXIgKyBjbGVhciArIGluc3BlY3QgPSAiICsgcmVzdWx0
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgidHlwZW9mICQkIiwg
c3RlcDQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KHJlc3VsdCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFdmFsdWF0ZWQgaW4gY29uc29sZSBpbiB0aGUg
dG9wIGZyYW1lIGNvbnRleHQ6IHR5cGVvZiAkJCA9ICIgKyByZXN1bHQpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0IHRoYXQgY29t
bWFuZCBsaW5lIGFwaSBkb2VzIG5vdCBtYXNrIHZhbHVlcyBvZiBzY29wZSB2YXJpYWJsZXMgd2hp
bGUgZXZhbHVhdGluZwotb24gYSBjYWxsIGZyYW1lLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFzc2Vy
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFz
c2VydC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjMjNhYjAu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hc3Nl
cnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgOTogMQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBhCi1UZXN0cyB0aGF0
IGNvbnNvbGUuYXNzZXJ0KCkgd2lsbCBkdW1wIGEgbWVzc2FnZSBhbmQgc3RhY2sgdHJhY2Ugd2l0
aCBzb3VyY2UgVVJMcyBhbmQgbGluZSBudW1iZXJzLgotCi1Bc3NlcnRpb24gZmFpbGVkOiAxIGNv
bnNvbGUtYXNzZXJ0Lmh0bWw6OWIgY29uc29sZS1hc3NlcnQuaHRtbDo5YSBjb25zb2xlLWFzc2Vy
dC5odG1sOjE1Ci1Bc3NlcnRpb24gZmFpbGVkOiBhIGIgY29uc29sZS1hc3NlcnQuaHRtbDoxMGIg
Y29uc29sZS1hc3NlcnQuaHRtbDoxMGEgY29uc29sZS1hc3NlcnQuaHRtbDoxNQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFzc2VydC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hc3NlcnQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2MxZjZkYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFzc2VydC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNDIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLWZ1bmN0aW9uIGIoKQotewotICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAxKTsK
LSAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgImEiLCAiYiIpOwotfQotCi1mdW5jdGlvbiBhKCkK
LXsKLSAgICBiKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBjYWxsQ291bnQg
PSAwOwotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICB7Ci0gICAgICAgIGlmICgrK2NhbGxD
b3VudCA9PT0gMikgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRDb25zb2xlTWVz
c2FnZXMoKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygp
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQot
ICAgIH0KLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KGEsIDAp
Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihjYWxsYmFjaywgdHJ1ZSk7
Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08
cD4KLVRlc3RzIHRoYXQgY29uc29sZS5hc3NlcnQoKSB3aWxsIGR1bXAgYSBtZXNzYWdlIGFuZCBz
dGFjayB0cmFjZSB3aXRoIHNvdXJjZSBVUkxzIGFuZCBsaW5lIG51bWJlcnMuCi08L3A+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtYmlnLWFycmF5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtYmlnLWFycmF5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZWYwMjljMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLWJpZy1hcnJheS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMDAgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiAwLDEsMiwzLDQsNSw2LDcs
OCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3
LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLCwsLCwsLCwsLCwsLCws
LCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwxMDAKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxODogLCwsLCwsLCwsCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjQ6IDAs
MSwyLDMsNCw1LDYsNyw4LDksLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCws
LCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsMTAwCi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMjk6IDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMs
MTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIs
MzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEs
NTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsNjUsNjYsNjcsNjgsNjksNzAs
NzEsNzIsNzMsNzQsNzUsNzYsNzcsNzgsNzksODAsODEsODIsODMsODQsODUsODYsODcsODgsODks
OTAsOTEsOTIsOTMsOTQsOTUsOTYsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLDEwNCwxMDUsMTA2
LDEwNywxMDgsMTA5LDExMCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAs
MTIxLDEyMiwxMjMsMTI0LDEyNSwxMjYsMTI3LDEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwx
MzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0
OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYz
LDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcs
MTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwx
OTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIw
NiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIw
LDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQs
MjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwy
NDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUsMjU2LDI1NywyNTgsMjU5LDI2MCwyNjEsMjYyLDI2
MywyNjQsMjY1LDI2NiwyNjcsMjY4LDI2OSwyNzAsMjcxLDI3MiwyNzMsMjc0LDI3NSwyNzYsMjc3
LDI3OCwyNzksMjgwLDI4MSwyODIsMjgzLDI4NCwyODUsMjg2LDI4NywyODgsMjg5LDI5MCwyOTEs
MjkyLDI5MywyOTQsMjk1LDI5NiwyOTcsMjk4LDI5OSwzMDAsMzAxLDMwMiwzMDMsMzA0LDMwNSwz
MDYsMzA3LDMwOCwzMDksMzEwLDMxMSwzMTIsMzEzLDMxNCwzMTUsMzE2LDMxNywzMTgsMzE5LDMy
MCwzMjEsMzIyLDMyMywzMjQsMzI1LDMyNiwzMjcsMzI4LDMyOSwzMzAsMzMxLDMzMiwzMzMsMzM0
LDMzNSwzMzYsMzM3LDMzOCwzMzksMzQwLDM0MSwzNDIsMzQzLDM0NCwzNDUsMzQ2LDM0NywzNDgs
MzQ5LDM1MCwzNTEsMzUyLDM1MywzNTQsMzU1LDM1NiwzNTcsMzU4LDM1OSwzNjAsMzYxLDM2Miwz
NjMsMzY0LDM2NSwzNjYsMzY3LDM2OCwzNjksMzcwLDM3MSwzNzIsMzczLDM3NCwzNzUsMzc2LDM3
NywzNzgsMzc5LDM4MCwzODEsMzgyLDM4MywzODQsMzg1LDM4NiwzODcsMzg4LDM4OSwzOTAsMzkx
LDM5MiwzOTMsMzk0LDM5NSwzOTYsMzk3LDM5OCwzOTksNDAwLDQwMSw0MDIsNDAzLDQwNAotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDQyOiAlTwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUyOiAlTwot
VGVzdHMgdGhhdCBjb25zb2xlIGxvZ2dpbmcgZHVtcHMgbGFyZ2UgYXJyYXlzIHByb3Blcmx5Lgot
Ci0KLQotQXJyYXlbMTAxXQotICAgIFswIOKApiAxOV0KLSAgICAwOiAwCi0gICAgMTogMQotICAg
IDI6IDIKLSAgICAzOiAzCi0gICAgNDogNAotICAgIDU6IDUKLSAgICA2OiA2Ci0gICAgNzogNwot
ICAgIDg6IDgKLSAgICA5OiA5Ci0gICAgMTA6IDEwCi0gICAgMTE6IDExCi0gICAgMTI6IDEyCi0g
ICAgMTM6IDEzCi0gICAgMTQ6IDE0Ci0gICAgMTU6IDE1Ci0gICAgMTY6IDE2Ci0gICAgMTc6IDE3
Ci0gICAgMTg6IDE4Ci0gICAgMTk6IDE5Ci0gICAgWzIwIOKApiAzOV0KLSAgICAyMDogMjAKLSAg
ICAyMTogMjEKLSAgICAyMjogMjIKLSAgICAyMzogMjMKLSAgICAyNDogMjQKLSAgICAyNTogMjUK
LSAgICAyNjogMjYKLSAgICAyNzogMjcKLSAgICAyODogMjgKLSAgICAyOTogMjkKLSAgICAzMDog
MzAKLSAgICAzMTogMzEKLSAgICAzMjogMzIKLSAgICAzMzogMzMKLSAgICAzNDogMzQKLSAgICAz
NTogMzUKLSAgICAzNjogMzYKLSAgICAzNzogMzcKLSAgICAzODogMzgKLSAgICAzOTogMzkKLSAg
ICBbNDAg4oCmIDEwMF0KLSAgICA0MDogNDAKLSAgICA0MTogNDEKLSAgICAxMDA6IDEwMAotICAg
IGxlbmd0aDogMTAxCi0gICAgX19wcm90b19fOiBBcnJheVswXSBjb25zb2xlLWJpZy1hcnJheS5o
dG1sOjEzCi0KLUFycmF5WzEwXQotICAgIDA6IHVuZGVmaW5lZAotICAgIDE6IHVuZGVmaW5lZAot
ICAgIDI6IHVuZGVmaW5lZAotICAgIDM6IHVuZGVmaW5lZAotICAgIDQ6IHVuZGVmaW5lZAotICAg
IDU6IHVuZGVmaW5lZAotICAgIDY6IHVuZGVmaW5lZAotICAgIDc6IHVuZGVmaW5lZAotICAgIDg6
IHVuZGVmaW5lZAotICAgIDk6IHVuZGVmaW5lZAotICAgIGxlbmd0aDogMTAKLSAgICBfX3Byb3Rv
X186IEFycmF5WzBdIGNvbnNvbGUtYmlnLWFycmF5Lmh0bWw6MTgKLQotQXJyYXlbMTAxXQotICAg
IDA6IDAKLSAgICAxOiAxCi0gICAgMjogMgotICAgIDM6IDMKLSAgICA0OiA0Ci0gICAgNTogNQot
ICAgIDY6IDYKLSAgICA3OiA3Ci0gICAgODogOAotICAgIDk6IDkKLSAgICAxMDA6IDEwMAotICAg
IGxlbmd0aDogMTAxCi0gICAgX19wcm90b19fOiBBcnJheVswXSBjb25zb2xlLWJpZy1hcnJheS5o
dG1sOjI0Ci0KLUFycmF5WzQwNV0KLSAgICBbMCDigKYgMzk5XQotICAgIFswIOKApiAxOV0KLSAg
ICBbMjAg4oCmIDM5XQotICAgIFs0MCDigKYgNTldCi0gICAgWzYwIOKApiA3OV0KLSAgICBbODAg
4oCmIDk5XQotICAgIFsxMDAg4oCmIDExOV0KLSAgICBbMTIwIOKApiAxMzldCi0gICAgWzE0MCDi
gKYgMTU5XQotICAgIFsxNjAg4oCmIDE3OV0KLSAgICBbMTgwIOKApiAxOTldCi0gICAgWzIwMCDi
gKYgMjE5XQotICAgIFsyMjAg4oCmIDIzOV0KLSAgICBbMjQwIOKApiAyNTldCi0gICAgWzI2MCDi
gKYgMjc5XQotICAgIFsyODAg4oCmIDI5OV0KLSAgICBbMzAwIOKApiAzMTldCi0gICAgWzMyMCDi
gKYgMzM5XQotICAgIFszNDAg4oCmIDM1OV0KLSAgICBbMzYwIOKApiAzNzldCi0gICAgWzM4MCDi
gKYgMzk5XQotICAgIFs0MDAg4oCmIDQwNF0KLSAgICA0MDA6IDQwMAotICAgIDQwMTogNDAxCi0g
ICAgNDAyOiA0MDIKLSAgICA0MDM6IDQwMwotICAgIDQwNDogNDA0Ci0gICAgbGVuZ3RoOiA0MDUK
LSAgICBfX3Byb3RvX186IEFycmF5WzBdIGNvbnNvbGUtYmlnLWFycmF5Lmh0bWw6MjkKLQotQXJy
YXlbMTI0XQotICAgIDA6IDAKLSAgICAxOiAxCi0gICAgMjogMgotICAgIDM6IDMKLSAgICA0OiA0
Ci0gICAgNTogNQotICAgIDY6IDYKLSAgICA3OiA3Ci0gICAgODogOAotICAgIDk6IDkKLSAgICAx
MjM6IDEyMwotICAgIC1JbmZpbml0eTogLUluZmluaXR5Ci0gICAgMy4xNDogMy4xNAotICAgIDQy
OTQ5NjcyOTU6IDQyOTQ5NjcyOTUKLSAgICA0Mjk0OTY3Mjk2OiA0Mjk0OTY3Mjk2Ci0gICAgSW5m
aW5pdHk6IEluZmluaXR5Ci0gICAgLTEyMzogLTEyMwotICAgIE5hTjogTmFOCi0gICAgbGVuZ3Ro
OiAxMjQKLSAgICBfX3Byb3RvX186IEFycmF5WzBdIGNvbnNvbGUtYmlnLWFycmF5Lmh0bWw6NDIK
LQotQXJyYXlbNDI5NDk2NzI5NV0KLSAgICBbMCDigKYgMTldCi0gICAgMDogMAotICAgIDE6IDEK
LSAgICAyOiAyCi0gICAgMzogMwotICAgIDQ6IDQKLSAgICA1OiA1Ci0gICAgNjogNgotICAgIDc6
IDcKLSAgICA4OiA4Ci0gICAgOTogOQotICAgIDEwOiAxMAotICAgIDExOiAxMQotICAgIDEyOiAx
MgotICAgIDEzOiAxMwotICAgIDE0OiAxNAotICAgIDE1OiAxNQotICAgIDE2OiAxNgotICAgIDE3
OiAxNwotICAgIDE4OiAxOAotICAgIDE5OiAxOQotICAgIFsyMCDigKYgODM4ODYwOF0KLSAgICAy
MDogMjAKLSAgICAzMjogMzIKLSAgICA2NDogNjQKLSAgICAxMjg6IDEyOAotICAgIDI1NjogMjU2
Ci0gICAgNTEyOiA1MTIKLSAgICAxMDI0OiAxMDI0Ci0gICAgMjA0ODogMjA0OAotICAgIDQwOTY6
IDQwOTYKLSAgICA4MTkyOiA4MTkyCi0gICAgMTYzODQ6IDE2Mzg0Ci0gICAgMzI3Njg6IDMyNzY4
Ci0gICAgNjU1MzY6IDY1NTM2Ci0gICAgMTMxMDcyOiAxMzEwNzIKLSAgICAyNjIxNDQ6IDI2MjE0
NAotICAgIDUyNDI4ODogNTI0Mjg4Ci0gICAgMTA0ODU3NjogMTA0ODU3NgotICAgIDIwOTcxNTI6
IDIwOTcxNTIKLSAgICA0MTk0MzA0OiA0MTk0MzA0Ci0gICAgODM4ODYwODogODM4ODYwOAotICAg
IFsxNjc3NzIxNiDigKYgNDI5NDk2NzI5NF0KLSAgICAxNjc3NzIxNjogMTY3NzcyMTYKLSAgICAz
MzU1NDQzMjogMzM1NTQ0MzIKLSAgICA2NzEwODg2NDogNjcxMDg4NjQKLSAgICAxMzQyMTc3Mjg6
IDEzNDIxNzcyOAotICAgIDI2ODQzNTQ1NjogMjY4NDM1NDU2Ci0gICAgNTM2ODcwOTEyOiA1MzY4
NzA5MTIKLSAgICAxMDczNzQxODI0OiAxMDczNzQxODI0Ci0gICAgMjE0NzQ4MzY0ODogMjE0NzQ4
MzY0OAotICAgIDQyOTQ5NjcyOTQ6IDQyOTQ5NjcyOTQKLSAgICA0Mjk0OTY3Mjk2OiA0Mjk0OTY3
Mjk2Ci0gICAgODU4OTkzNDU5MjogODU4OTkzNDU5MgotICAgIGxlbmd0aDogNDI5NDk2NzI5NQot
ICAgIF9fcHJvdG9fXzogQXJyYXlbMF0gY29uc29sZS1iaWctYXJyYXkuaHRtbDo1MgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWJpZy1hcnJheS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1iaWctYXJyYXkuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDYxNGQ4NS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWJpZy1hcnJheS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTE3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBvbmxvYWQoKQotewotICAgIHZhciBhID0g
W107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0MjsgKytpKQotICAgICAgICBhW2ldID0gaTsK
LSAgICBhWzEwMF0gPSAxMDA7Ci0gICAgY29uc29sZS5kaXIoYSk7Ci0KLSAgICB2YXIgYiA9IFtd
OwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7ICsraSkKLSAgICAgIGJbaV0gPSB1bmRlZmlu
ZWQ7Ci0gICAgY29uc29sZS5kaXIoYik7Ci0KLSAgICB2YXIgYyA9IFtdOwotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTA7ICsraSkKLSAgICAgICAgY1tpXSA9IGk7Ci0gICAgY1sxMDBdID0gMTAw
OwotICAgIGNvbnNvbGUuZGlyKGMpOwotCi0gICAgdmFyIGQgPSBbXTsKLSAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDQwNTsgKytpKQotICAgICAgZFtpXSA9IGk7Ci0gICAgY29uc29sZS5kaXIoZCk7
Ci0KLSAgICB2YXIgZSA9IFtdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7ICsraSkKLSAg
ICAgICAgZVtpXSA9IGk7Ci0gICAgZVsxMjNdID0gMTIzOwotICAgIGVbLTEyM10gPSAtMTIzOwot
ICAgIGVbMy4xNF0gPSAzLjE0OwotICAgIGVbNDI5NDk2NzI5NV0gPSA0Mjk0OTY3Mjk1OwotICAg
IGVbNDI5NDk2NzI5Nl0gPSA0Mjk0OTY3Mjk2OwotICAgIGVbSW5maW5pdHldID0gSW5maW5pdHk7
Ci0gICAgZVstSW5maW5pdHldID0gLUluZmluaXR5OwotICAgIGVbTmFOXSA9IE5hTjsKLSAgICBj
b25zb2xlLmxvZygiJU8iLCBlKTsKLQotICAgIHZhciBmID0gW107Ci0gICAgZls0Mjk0OTY3Mjk0
XSA9IDQyOTQ5NjcyOTQ7Ci0gICAgZm9yICh2YXIgaSA9IDIwOyBpID49IDA7IGkgLT0gMikKLSAg
ICAgICAgZltpXSA9IGk7Ci0gICAgZm9yICh2YXIgaSA9IDIsIG4gPSAzMzsgbi0tOyBpICo9IDIp
Ci0gICAgICAgIGZbaV0gPSBpOwotICAgIGZvciAodmFyIGkgPSAxOyBpIDwgMjA7IGkgKz0gMikK
LSAgICAgICAgZltpXSA9IGk7Ci0gICAgY29uc29sZS5sb2coIiVPIiwgZikKLQotICAgIHJ1blRl
c3QoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLkFycmF5R3Jv
dXBpbmdUcmVlRWxlbWVudC5fYnVja2V0VGhyZXNob2xkID0gMjA7Ci0KLSAgICB2YXIgbWVzc2Fn
ZXMgPSBXZWJJbnNwZWN0b3IuY29uc29sZS5tZXNzYWdlczsKLSAgICB2YXIgc2VjdGlvbnMgPSBb
XTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgIHZhciBlbGVtZW50ID0gbWVzc2FnZXNbaV0udG9NZXNzYWdlRWxlbWVudCgpOwotICAgICAg
ICB2YXIgbm9kZSA9IGVsZW1lbnQudHJhdmVyc2VOZXh0Tm9kZShlbGVtZW50KTsKLSAgICAgICAg
d2hpbGUgKG5vZGUpIHsKLSAgICAgICAgICAgIGlmIChub2RlLl9zZWN0aW9uKSB7Ci0gICAgICAg
ICAgICAgICAgc2VjdGlvbnMucHVzaChub2RlLl9zZWN0aW9uKTsKLSAgICAgICAgICAgICAgICBt
ZXNzYWdlc1tpXS5zZWN0aW9uID0gbm9kZS5fc2VjdGlvbjsKLSAgICAgICAgICAgICAgICBub2Rl
Ll9zZWN0aW9uLmV4cGFuZGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5v
ZGUgPSBub2RlLnRyYXZlcnNlTmV4dE5vZGUoZWxlbWVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkFycmF5R3JvdXBpbmdU
cmVlRWxlbWVudC5wcm90b3R5cGUsICJvbnBvcHVsYXRlIiwgcG9wdWxhdGVDYWxsZWQsIHRydWUp
OwotICAgIHZhciBwb3B1bGF0ZWQgPSBmYWxzZTsKLSAgICBmdW5jdGlvbiBwb3B1bGF0ZUNhbGxl
ZCgpCi0gICAgewotICAgICAgICBwb3B1bGF0ZWQgPSB0cnVlOwotICAgIH0KLQotICAgIEluc3Bl
Y3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhleHBhbmRSZWN1cnNpdmVseSk7Ci0K
LSAgICBmdW5jdGlvbiBleHBhbmRSZWN1cnNpdmVseSgpCi0gICAgewotICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHNlY3Rpb25zLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBmb3IgKHZh
ciBqID0gMDsgaiA8IHNlY3Rpb25zW2ldLnByb3BlcnRpZXNUcmVlT3V0bGluZS5jaGlsZHJlbi5s
ZW5ndGg7ICsraikgewotICAgICAgICAgICAgICAgIGZvciAodmFyIHRyZWVFbGVtZW50ID0gc2Vj
dGlvbnNbaV0ucHJvcGVydGllc1RyZWVPdXRsaW5lLmNoaWxkcmVuW2pdOyB0cmVlRWxlbWVudDsg
dHJlZUVsZW1lbnQgPSB0cmVlRWxlbWVudC50cmF2ZXJzZU5leHRUcmVlRWxlbWVudChmYWxzZSwg
bnVsbCwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC5saXN0
SXRlbUVsZW1lbnQudGV4dENvbnRlbnQuaW5kZXhPZigiX19wcm90b19fIikgPT09IC0xKQotICAg
ICAgICAgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuZXhwYW5kKCk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChwb3B1bGF0ZWQpCi0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoY29tcGxl
dGVUZXN0KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRl
clBlbmRpbmdEaXNwYXRjaGVzKGV4cGFuZFJlY3Vyc2l2ZWx5KTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBjb21wbGV0ZVRlc3QoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoSW5zcGVjdG9yVGVzdC50ZXh0Q29udGVudFdpdGhMaW5lQnJlYWtzKFdlYkluc3BlY3Rvci5j
b25zb2xlVmlldy5tZXNzYWdlc0VsZW1lbnQpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9Im9ubG9hZCgpIj4KLTxwPgotVGVzdHMgdGhhdCBjb25zb2xlIGxvZ2dpbmcgZHVtcHMgbGFy
Z2UgYXJyYXlzIHByb3Blcmx5LgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWJpbmQtZmFrZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWJpbmQtZmFrZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiMjljZmMuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1iaW5kLWZha2Ut
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UZXN0cyB0aGF0IG92
ZXJyaWRpbmcgRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQgZG9lcyBub3QgYnJlYWsgaW5zcGVjdG9y
LgotCi1mb28KLSJmb29WYWx1ZSIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1iaW5kLWZha2UuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtYmluZC1mYWtlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNiM2EwMDQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1iaW5kLWZha2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGZvbyA9
ICdmb29WYWx1ZSc7Ci0KLUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kID0gZnVuY3Rpb24gKCkgeyB0
aHJvdyAiOlAiOyB9OwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5Db25zb2xlKCJmb28iLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IG92ZXJy
aWRpbmcgRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQgZG9lcyBub3QgYnJlYWsgaW5zcGVjdG9yLgot
PC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29uc29sZS9jb25zb2xlLWNsZWFyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtY2xlYXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxNmJjODYzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtY2xlYXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTEgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IG9uZQotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDEwOiB0d28KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMTogdGhyZWUKLVRlc3RzIHRo
YXQgY29uc29sZSBpcyBjbGVhcmVkIHVwb24gcmVxdWVzdENsZWFyTWVzc2FnZXMgY2FsbC4KLQot
PT09IEJlZm9yZSBjbGVhciA9PT0KLW9uZSBjb25zb2xlLWNsZWFyLmh0bWw6OQotdHdvIGNvbnNv
bGUtY2xlYXIuaHRtbDoxMAotdGhyZWUgY29uc29sZS1jbGVhci5odG1sOjExCi09PT0gQWZ0ZXIg
Y2xlYXIgPT09Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtY2xlYXItZnVuY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1jbGVhci1mdW5jdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNmNTMzMTYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1jbGVhci1mdW5jdGlvbi1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IG9uZQot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiB0d28KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjog
dGhyZWUKLVRlc3RzIHRoYXQgY29uc29sZSBpcyBjbGVhcmVkIHZpYSBjb25zb2xlLmNsZWFyKCkg
bWV0aG9kCi0KLUJ1ZyAxMDEwMjEKLT09PSBCZWZvcmUgY2xlYXIgPT09Ci1vbmUgY29uc29sZS1j
bGVhci1mdW5jdGlvbi5odG1sOjEwCi10d28gY29uc29sZS1jbGVhci1mdW5jdGlvbi5odG1sOjEx
Ci10aHJlZSBjb25zb2xlLWNsZWFyLWZ1bmN0aW9uLmh0bWw6MTIKLT09PSBBZnRlciBjbGVhciA9
PT0KLUNvbnNvbGUgd2FzIGNsZWFyZWQgY29uc29sZS1jbGVhci1mdW5jdGlvbi5odG1sOjE5Ci0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY2xlYXIt
ZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY2xl
YXItZnVuY3Rpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDBiZjQyMy4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNsZWFy
LWZ1bmN0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9jb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gbG9nKCkK
LXsKLSAgICAvLyBGaWxsIGNvbnNvbGUuCi0gICAgY29uc29sZS5sb2coIm9uZSIpOwotICAgIGNv
bnNvbGUubG9nKCJ0d28iKTsKLSAgICBjb25zb2xlLmxvZygidGhyZWUiKTsKLX0KLQotbG9nKCk7
Ci0KLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgY29uc29sZS5jbGVhcigpOwotfQotCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IEJlZm9yZSBjbGVh
ciA9PT0iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLQotICAg
IFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgiZm9vKCk7Iiwgc3RlcDEpOwotCi0gICAgZnVuY3Rpb24g
c3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBBZnRl
ciBjbGVhciA9PT0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2Vz
KCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfTsKLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVz
dHMgdGhhdCBjb25zb2xlIGlzIGNsZWFyZWQgdmlhIGNvbnNvbGUuY2xlYXIoKSBtZXRob2QKLTwv
cD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEw
MjEiPkJ1ZyAxMDEwMjEgPC9hPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNsZWFyLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNsZWFyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGU1ZWM2ZjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1jbGVhci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIGxvZygpIHsKLSAgICAvLyBGaWxsIGNvbnNvbGUuCi0gICAgY29uc29sZS5sb2coIm9u
ZSIpOwotICAgIGNvbnNvbGUubG9nKCJ0d28iKTsKLSAgICBjb25zb2xlLmxvZygidGhyZWUiKTsK
LX0KLQotbG9nKCk7Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotCi0gICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIj09PSBCZWZvcmUgY2xlYXIgPT09Iik7IAotICAgIEluc3BlY3RvclRlc3QuZHVt
cENvbnNvbGVNZXNzYWdlcygpOwotCi0gICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUucmVxdWVzdENs
ZWFyTWVzc2FnZXMoKTsKLSAgICAKLSAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IEFmdGVyIGNsZWFyID09PSIpOyAKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotICAgIEluc3BlY3RvclRlc3QucnVuQWZ0
ZXJQZW5kaW5nRGlzcGF0Y2hlcyhjYWxsYmFjayk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgY29uc29sZSBpcyBj
bGVhcmVkIHVwb24gcmVxdWVzdENsZWFyTWVzc2FnZXMgY2FsbC4KLTwvcD4KLQotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29s
ZS1jb21tYW5kLWNsZWFyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtY29tbWFuZC1jbGVhci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGRjNWVkZTAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1jb21tYW5kLWNsZWFyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDEyICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiBvbmUKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxMDogdHdvCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6IHRocmVlCi1U
ZXN0cyB0aGF0IGNvbnNvbGUgaXMgY2xlYXJlZCB1cG9uIGNsZWFyKCkgZXZhbCBpbiBjb25zb2xl
LgotCi09PT0gQmVmb3JlIGNsZWFyID09PQotb25lIGNvbnNvbGUtY29tbWFuZC1jbGVhci5odG1s
OjkKLXR3byBjb25zb2xlLWNvbW1hbmQtY2xlYXIuaHRtbDoxMAotdGhyZWUgY29uc29sZS1jb21t
YW5kLWNsZWFyLmh0bWw6MTEKLT09PSBBZnRlciBjbGVhciA9PT0KLXVuZGVmaW5lZAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNvbW1hbmQtY2xl
YXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY29tbWFuZC1j
bGVhci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZDc5ZGFhLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY29tbWFuZC1jbGVh
ci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGxvZygpIHsKLSAgICAv
LyBGaWxsIGNvbnNvbGUuCi0gICAgY29uc29sZS5sb2coIm9uZSIpOwotICAgIGNvbnNvbGUubG9n
KCJ0d28iKTsKLSAgICBjb25zb2xlLmxvZygidGhyZWUiKTsKLX0KLQotbG9nKCk7Ci0KLWZ1bmN0
aW9uIHRlc3QoKQotewotCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBCZWZvcmUg
Y2xlYXIgPT09Iik7IAotICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOwot
Ci0gICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIj09PSBBZnRlciBjbGVhciA9PT0iKTsgCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
ZHVtcENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgIH0KLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJjbGVhcigp
IiwgY2FsbGJhY2spOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotPHA+Ci0gICAgVGVzdHMgdGhhdCBjb25zb2xlIGlzIGNsZWFyZWQgdXBvbiBj
bGVhcigpIGV2YWwgaW4gY29uc29sZS4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1jc3Mtd2FybmluZ3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1jc3Mt
d2FybmluZ3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNWIy
NzhiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
Y3NzLXdhcm5pbmdzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAK
LVRlc3RzIENTUyB3YXJuaW5ncyBhcmUgcHJvcGVybHkgZXhwb3NlZC4KLQotSW52YWxpZCBDU1Mg
cHJvcGVydHkgZGVjbGFyYXRpb24gYXQ6ICMgY29uc29sZS1jc3Mtd2FybmluZ3MuaHRtbDoxMAot
SW52YWxpZCBDU1MgcHJvcGVydHkgZGVjbGFyYXRpb24gYXQ6IHsgY29uc29sZS1jc3Mtd2Fybmlu
Z3MuaHRtbDoxNQotSW52YWxpZCBDU1MgcHJvcGVydHkgZGVjbGFyYXRpb24gYXQ6ICMgY29uc29s
ZS1jc3Mtd2FybmluZ3MuaHRtbDoxOAotSW52YWxpZCBDU1MgcHJvcGVydHkgZGVjbGFyYXRpb24g
YXQ6ICMgY29uc29sZS1jc3Mtd2FybmluZ3MuaHRtbDoyMgotSW52YWxpZCBDU1MgcHJvcGVydHkg
ZGVjbGFyYXRpb24gYXQ6ICMgY29uc29sZS1jc3Mtd2FybmluZ3MuaHRtbDozMgotVW5leHBlY3Rl
ZCBDU1MgdG9rZW46IEAgY29uc29sZS1jc3Mtd2FybmluZ3MuaHRtbDozMwotVW5leHBlY3RlZCBD
U1MgdG9rZW46IHsgY29uc29sZS1jc3Mtd2FybmluZ3MuaHRtbDozNwotVW5leHBlY3RlZCBDU1Mg
dG9rZW46IHsgY29uc29sZS1jc3Mtd2FybmluZ3MuaHRtbDozOAotVW5leHBlY3RlZCBDU1MgdG9r
ZW46IHsgY29uc29sZS1jc3Mtd2FybmluZ3MuaHRtbDozOQotVW5leHBlY3RlZCBDU1MgdG9rZW46
IHsgY29uc29sZS1jc3Mtd2FybmluZ3MuaHRtbDo0MAotVW5leHBlY3RlZCBDU1MgdG9rZW46IEAg
Y29uc29sZS1jc3Mtd2FybmluZ3MuaHRtbDo0NAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNzcy13YXJuaW5ncy5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1jc3Mtd2FybmluZ3MuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZmEwYjczNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS9jb25zb2xlLWNzcy13YXJuaW5ncy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNjkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KLQot
PHN0eWxlPgoteCB7fQotCi14IHsKLSAgICAjCi19Ci0KLXggewotICAgIGNvbG9yOiByZWQ7Ci0g
ICAge319Ci0KLXggewotICAgICMjIyB7fX0KLQoteCB7Ci0gICBjb2xvcjogcmVkOwotICAgIyMj
IyMjIyMjCi19Ci0KLXggewotICAgY29sb3I6IHJlZCB7fTsKLSAgIGNvbG9yOiAjOwotfQotCi14
IHsKLSAgIGNvbG9yOiByZWQ7Ci0gICAjIyM7Ci0gICBjb2xvcjogQDsKLX0KLQoteCB7Ci0gICAg
Y29sb3J7fTsKLSAgICBjb2xvcnsjfTsKLSAgICBjb2xvcnsjIyN9OwotICAgIGNvbG9ye3t7fX19
OwotfQotCi14IHsKLSAgICBjb2xvcjogQDsgIC8qIFRlc3Qgc2ltcGxlIGVycm9yIHRvIGVuc3Vy
ZSBwYXJzaW5nIHJlY292ZXJlZC4gKi8KLX0KLQotPC9zdHlsZT4KLQotPHNjcmlwdD4KLQotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgLy8gRW5zdXJlIHNjcmlwdCBnZW5lcmF0ZWQgZXJyb3JzIGRv
bid0IGdvIHRvIHRoZSBjb25zb2xlLgotICAgIHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3N0eWxlJyk7Ci0gICAgc3R5bGUudGV4dENvbnRlbnQgPSAieHt5Oip9IjsKLSAgICBk
b2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTsKLQotICAgIEluc3BlY3RvclRlc3QuZXhw
YW5kQ29uc29sZU1lc3NhZ2VzKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3Nh
Z2VzKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwIGlkPSJwIj5UZXN0cyBD
U1Mgd2FybmluZ3MgYXJlIHByb3Blcmx5IGV4cG9zZWQuPC9wPgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXItZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTVlYmQyLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA5OiB0ZXN0MSx0ZXN0MgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBbb2JqZWN0IE5vZGVM
aXN0XQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBbb2JqZWN0IFhQYXRoUmVzdWx0XQotVGVz
dHMgdGhhdCBjb25zb2xlIGxvZ2dpbmcgZHVtcHMgcHJvcGVyIG1lc3NhZ2VzLgotCi0KLQotQXJy
YXlbMl0KLSAgICAwOiAidGVzdDEiCi0gICAgMTogInRlc3QyIgotICAgIGxlbmd0aDogMgotICAg
IF9fcHJvdG9fXzogQXJyYXlbMF0gY29uc29sZS1kaXIuaHRtbDo5Ci0KLU5vZGVMaXN0WzFdCi0g
ICAgMDogaHRtbAotICAgIGNvbnN0cnVjdG9yOiBOb2RlTGlzdENvbnN0cnVjdG9yCi0gICAgbGVu
Z3RoOiAxCi0gICAgX19wcm90b19fOiBOb2RlTGlzdFByb3RvdHlwZSBjb25zb2xlLWRpci5odG1s
OjEwCi0KLVhQYXRoUmVzdWx0Ci0gICAgYm9vbGVhblZhbHVlOiBbRXhjZXB0aW9uOiBYUGF0aEV4
Y2VwdGlvbl0KLSAgICBjb25zdHJ1Y3RvcjogWFBhdGhSZXN1bHRDb25zdHJ1Y3RvcgotICAgIGlu
dmFsaWRJdGVyYXRvclN0YXRlOiBmYWxzZQotICAgIG51bWJlclZhbHVlOiBbRXhjZXB0aW9uOiBY
UGF0aEV4Y2VwdGlvbl0KLSAgICByZXN1bHRUeXBlOiA0Ci0gICAgc2luZ2xlTm9kZVZhbHVlOiBb
RXhjZXB0aW9uOiBYUGF0aEV4Y2VwdGlvbl0KLSAgICBzbmFwc2hvdExlbmd0aDogW0V4Y2VwdGlv
bjogWFBhdGhFeGNlcHRpb25dCi0gICAgc3RyaW5nVmFsdWU6IFtFeGNlcHRpb246IFhQYXRoRXhj
ZXB0aW9uXQotICAgIF9fcHJvdG9fXzogWFBhdGhSZXN1bHRQcm90b3R5cGUgY29uc29sZS1kaXIu
aHRtbDoxMQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWRpci1nbG9iYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUvY29uc29sZS1kaXItZ2xvYmFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNWFjZTJiZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLWRpci1nbG9iYWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTQgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IFtvYmplY3QgV2luZG93XQotVGVz
dHMgdGhhdCBjb25zb2xlIGR1bXBzIGdsb2JhbCBvYmplY3Qgd2l0aCBwcm9wZXJ0aWVzLgotCi17
Ci0gICAgQXJyYXkgOiAxCi0gICAgY29uc29sZSA6IDEKLSAgICBjb25zdHJ1Y3RvciA6IDEKLSAg
ICBkb2N1bWVudCA6IDEKLSAgICBkb2l0IDogMQotICAgIGV2YWwgOiAxCi0gICAgZnJhbWVzIDog
MQotICAgIHdpbmRvdyA6IDEKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1kaXItZ2xvYmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLWRpci1nbG9iYWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggN2YwNjg1MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWRpci1nbG9iYWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5j
dGlvbiBkb2l0KCkKLXsKLSAgICBjb25zb2xlLmRpcih3aW5kb3cpOwotICAgIHJ1blRlc3QoKTsK
LX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJ3aW5k
b3ciLCAiY29uc29sZSIsIGZhbHNlLCBldmFsQ2FsbGJhY2spOwotCi0gICAgZnVuY3Rpb24gZXZh
bENhbGxiYWNrKGVycm9yLCByZXN1bHQpCi0gICAgewotICAgICAgICBpZiAoZXJyb3IpIHsKLSAg
ICAgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoIkV4Y2VwdGlvbjoiICsgZXJyb3Ip
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQudHlw
ZSA9PT0gImVycm9yIikKLSAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoIkV4
Y2VwdGlvbjoiICsgcmVzdWx0KTsKLSAgICAgICAgdmFyIG9iamVjdFByb3h5ID0gV2ViSW5zcGVj
dG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1bHQpOwotICAgICAgICBvYmplY3RQcm94
eS5nZXRPd25Qcm9wZXJ0aWVzKGdldFByb3BlcnRpZXNDYWxsYmFjayk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gZ2V0UHJvcGVydGllc0NhbGxiYWNrKHByb3BlcnRpZXMpCi0gICAgewotICAgICAg
ICBwcm9wZXJ0aWVzLnNvcnQoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9uLkNv
bXBhcmVQcm9wZXJ0aWVzKTsKLSAgICAgICAgdmFyIGdvbGRlbiA9IHsgIndpbmRvdyI6IDEsICJk
b2N1bWVudCI6IDEsICJldmFsIjogMSwgImNvbnNvbGUiOiAxLCAiZnJhbWVzIjogMSwgIkFycmF5
IjogMSwgImRvaXQiOiAxIH07IAotICAgICAgICB2YXIgcmVzdWx0ID0ge307Ci0gICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
dmFyIG5hbWUgPSBwcm9wZXJ0aWVzW2ldLm5hbWU7Ci0gICAgICAgICAgICBpZiAoZ29sZGVuW25h
bWVdKQotICAgICAgICAgICAgICAgIHJlc3VsdFtuYW1lXSA9IDE7Ci0gICAgICAgIH0KLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRPYmplY3QocmVzdWx0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9ImRvaXQoKSI+Ci08cD4KLVRlc3RzIHRoYXQgY29uc29sZSBkdW1wcyBnbG9iYWwg
b2JqZWN0IHdpdGggcHJvcGVydGllcy4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXIuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDVhYzFhZmUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
Ci1mdW5jdGlvbiBvbmxvYWQoKQotewotICAgIGNvbnNvbGUuZGlyKFsidGVzdDEiLCAidGVzdDIi
XSk7Ci0gICAgY29uc29sZS5kaXIoZG9jdW1lbnQuY2hpbGROb2Rlcyk7Ci0gICAgY29uc29sZS5k
aXIoZG9jdW1lbnQuZXZhbHVhdGUoIi8vaGVhZCIsIGRvY3VtZW50LCBudWxsLCBYUGF0aFJlc3Vs
dC5BTllfVFlQRSwgbnVsbCkpOwotICAgIHJ1blRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgdmFyIG1lc3NhZ2VzID0gV2ViSW5zcGVjdG9yLmNvbnNvbGUubWVzc2FnZXM7Ci0g
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNzYWdlcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2
YXIgZWxlbWVudCA9IG1lc3NhZ2VzW2ldLnRvTWVzc2FnZUVsZW1lbnQoKTsKLSAgICAgICAgdmFy
IG5vZGUgPSBlbGVtZW50LnRyYXZlcnNlTmV4dE5vZGUoZWxlbWVudCk7Ci0gICAgICAgIHdoaWxl
IChub2RlKSB7Ci0gICAgICAgICAgICBpZiAobm9kZS5fc2VjdGlvbikgewotICAgICAgICAgICAg
ICAgIG1lc3NhZ2VzW2ldLnNlY3Rpb24gPSBub2RlLl9zZWN0aW9uOwotICAgICAgICAgICAgICAg
IG5vZGUuX3NlY3Rpb24uZXhwYW5kZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgbm9kZSA9IG5vZGUudHJhdmVyc2VOZXh0Tm9kZShl
bGVtZW50KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQ
ZW5kaW5nRGlzcGF0Y2hlcyhkdW1wQ29uc29sZU1lc3NhZ2VzKTsKLQotICAgIGZ1bmN0aW9uIGR1
bXBDb25zb2xlTWVzc2FnZXMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoSW5zcGVjdG9yVGVzdC50ZXh0Q29udGVudFdpdGhMaW5lQnJlYWtzKFdlYkluc3BlY3Rvci5j
b25zb2xlVmlldy5tZXNzYWdlc0VsZW1lbnQpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9Im9ubG9hZCgpIj4KLTxwPgotVGVzdHMgdGhhdCBjb25zb2xlIGxvZ2dpbmcgZHVtcHMgcHJv
cGVyIG1lc3NhZ2VzLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpcnhtbC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpcnhtbC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiYTc4NmIuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXJ4bWwtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBb
b2JqZWN0IEhUTUxEb2N1bWVudF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzogW29iamVjdCBE
b2N1bWVudEZyYWdtZW50XQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0OiBbb2JqZWN0IEhUTUxQ
YXJhZ3JhcGhFbGVtZW50XQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1OiBbb2JqZWN0IEhUTUxQ
YXJhZ3JhcGhFbGVtZW50XQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OiBbb2JqZWN0IEhUTUxE
b2N1bWVudF0sW29iamVjdCBEb2N1bWVudEZyYWdtZW50XSxbb2JqZWN0IEhUTUxTcGFuRWxlbWVu
dF0KLVRlc3RzIHRoYXQgY29uc29sZSBsb2dnaW5nIGR1bXBzIHByb3BlciBtZXNzYWdlcy4KLQot
I2RvY3VtZW50IGNvbnNvbGUtZGlyeG1sLmh0bWw6MTIKLSNkb2N1bWVudC1mcmFnbWVudCBjb25z
b2xlLWRpcnhtbC5odG1sOjEzCi08cD48L3A+IGNvbnNvbGUtZGlyeG1sLmh0bWw6MTQKLVtwXSBj
b25zb2xlLWRpcnhtbC5odG1sOjE1Ci1bI2RvY3VtZW50LCAjZG9jdW1lbnQtZnJhZ21lbnQsIDxz
cGFuPjwvc3Bhbj5dIGNvbnNvbGUtZGlyeG1sLmh0bWw6MTYKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXJ4bWwuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyeG1sLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGJjMDQyYjguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1kaXJ4bWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1m
dW5jdGlvbiBsb2dUb0NvbnNvbGUoKQotewotICAgIHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJwIikpOwotCi0gICAgY29uc29sZS5kaXJ4bWwoZG9jdW1lbnQpOwot
ICAgIGNvbnNvbGUuZGlyeG1sKGZyYWdtZW50KTsKLSAgICBjb25zb2xlLmRpcnhtbChmcmFnbWVu
dC5maXJzdENoaWxkKTsKLSAgICBjb25zb2xlLmxvZyhbZnJhZ21lbnQuZmlyc3RDaGlsZF0pOwot
ICAgIGNvbnNvbGUuZGlyeG1sKFtkb2N1bWVudCwgZnJhZ21lbnQsIGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNwYW4iKV0pOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2dUb0NvbnNvbGUoKSIpOwotICAgIEluc3BlY3RvclRlc3Qu
cnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhjYWxsYmFjayk7Ci0gICAgZnVuY3Rpb24gY2FsbGJh
Y2soKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhh
dCBjb25zb2xlIGxvZ2dpbmcgZHVtcHMgcHJvcGVyIG1lc3NhZ2VzLgotPC9wPgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWV2YWwtYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLWV2YWwtYmxvY2tlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDRmYjkyNzZmMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29uc29sZS9jb25zb2xlLWV2YWwtYmxvY2tlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIHRoYXQgZXZhbHVhdGlvbiBpbiBjb25zb2xlIHN0aWxs
IHdvcmtzIGV2ZW4gaWYgc2NyaXB0IGV2YWxzIGFyZSBwcm9oaWJpdGVkIGJ5IENvbnRlbnQtU2Vj
dXJpdHktUG9saWN5LiBCdWcgNjA4MDAuCi0KLTErMgotMwotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtYmxvY2tlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLWJsb2NrZWQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGY5ODhiZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtYmxvY2tlZC5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMjQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3Njcmlw
dD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJpdHktUG9saWN5IiBjb250ZW50PSJz
Y3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyI+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17
Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgiMSsyIiwgc3RlcDEpOwotICAg
IGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNv
bGVNZXNzYWdlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
IH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
Ci1UZXN0cyB0aGF0IGV2YWx1YXRpb24gaW4gY29uc29sZSBzdGlsbCB3b3JrcyBldmVuIGlmIHNj
cmlwdCBldmFscyBhcmUgcHJvaGliaXRlZCBieSBDb250ZW50LVNlY3VyaXR5LVBvbGljeS4KLTxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDgwMCI+QnVn
IDYwODAwLjwvYT4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC1jb21tZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC1jb21tZW50LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZhMGM5ZC4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtY29tbWVudC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIHRoYXQgZXZh
bHVhdGluZyBhbiBleHByZXNzaW9uIGNvbnRhaW5pbmcgYSBzaW5nbGUgbGluZSBjb21tZW50IGRv
ZXMgbm90IGNhdXNlIGFuIGVycm9uZW91cyBlcnJvci4gQnVnIDExNjI5Mi4KLQotLy8gdGVzdAot
dW5kZWZpbmVkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtZXZhbC1jb21tZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLWV2YWwtY29tbWVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
M2E1YTVhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtZXZhbC1jb21tZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoIi8vIHRlc3QiLCBz
dGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBldmFsdWF0aW5nIGFuIGV4cHJlc3Npb24gY29udGFp
bmluZyBhIHNpbmdsZSBsaW5lIGNvbW1lbnQgZG9lcyBub3QgY2F1c2UgYW4gZXJyb25lb3VzIGVy
cm9yLgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
NjI5MiI+QnVnIDExNjI5Mi48L2E+Ci08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNhNTA0Mi4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UZXN0cyB0aGF0IHNpbXBsZSBldmFsdWF0aW9u
cyBtYXkgYmUgcGVyZm9ybWVkIGluIHRoZSBjb25zb2xlLgotCi0xKzIKLTMKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLWZha2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLWZha2Ut
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDczN2QxLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC1mYWtl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGVzdHMgdGhhdCBv
dmVycmlkaW5nIHdpbmRvdy5ldmFsIGRvZXMgbm90IGJyZWFrIGluc3BlY3Rvci4KLQotZm9vCi0i
Zm9vVmFsdWUiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtZXZhbC1mYWtlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWV2YWwtZmFrZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODM4YTkz
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZh
bC1mYWtlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9j
b25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBmb28gPSAnZm9vVmFsdWUn
OwotCi13aW5kb3cuZXZhbCA9ICJOb24tZnVuY3Rpb24iOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJmb28iLCBzdGVwMSk7Ci0KLSAg
ICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25z
b2xlTWVzc2FnZXMoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAg
ICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
PHA+Ci1UZXN0cyB0aGF0IG92ZXJyaWRpbmcgd2luZG93LmV2YWwgZG9lcyBub3QgYnJlYWsgaW5z
cGVjdG9yLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtZ2xvYmFsLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC1nbG9iYWwtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjgzOWNmLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC1nbG9iYWwtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1UZXN0cyB0aGF0IHNpbXBsZSBl
dmFsdWF0aW9ucyBtYXkgYmUgcGVyZm9ybWVkIGluIHRoZSBjb25zb2xlIG9uIGdsb2JhbCBvYmpl
Y3QuCi0KLWZvbwotImZvb1ZhbHVlIgotYmFyCi1PYmplY3Qge2E6ICJiIn0KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLWdsb2JhbC5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLWdsb2JhbC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGZlMmRlLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC1nbG9iYWwuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIgZm9vID0gJ2Zvb1ZhbHVlJzsKLXZhciBiYXIgPSB7
Ci0gICAgYTogJ2InCi19OwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5Db25zb2xlKCJmb28iLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJiYXIiLCBz
dGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHNpbXBsZSBldmFsdWF0aW9ucyBt
YXkgYmUgcGVyZm9ybWVkIGluIHRoZSBjb25zb2xlIG9uIGdsb2JhbCBvYmplY3QuCi08L3A+Ci0K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtZXZhbC1zY29wZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLXNjb3BlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDk5NWY5ZjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLXNjb3BlZC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw5ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OiB3aXRoOiBPYmpl
Y3QgcHJvcGVydHkgdmFsdWUKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBldmFsIGluIHdpdGg6
IE9iamVjdCBwcm9wZXJ0eSB2YWx1ZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IGV2YWwgaW4g
ZnVuY3Rpb246IEZ1bmN0aW9uIHBhcmFtZXRlcgotVGVzdHMgdGhhdCBldmFsdWF0aW5nICdjb25z
b2xlLmxvZygpJyBpbiB0aGUgY29uc29sZSB3aWxsIGhhdmUgYWNjZXNzIHRvIGl0cyBvdXRlciBz
Y29wZSB2YXJpYWJsZXMuIEJ1ZyA2MDU0Ny4KLQotd2l0aDogT2JqZWN0IHByb3BlcnR5IHZhbHVl
Ci1ldmFsIGluIHdpdGg6IE9iamVjdCBwcm9wZXJ0eSB2YWx1ZQotZXZhbCBpbiBmdW5jdGlvbjog
RnVuY3Rpb24gcGFyYW1ldGVyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtZXZhbC1zY29wZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtZXZhbC1zY29wZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOGY3Y2NhYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWV2YWwtc2NvcGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9uIHNuaXBwZXQxKCkgewotICAgICAgICAoZnVuY3Rp
b24gKG9iaikgewotICAgICAgICAgICB3aXRoIChvYmopIHsKLSAgICAgICAgICAgICAgY29uc29s
ZS5sb2coJ3dpdGg6ICcgKyBhKTsKLSAgICAgICAgICAgICAgZXZhbCgiY29uc29sZS5sb2coJ2V2
YWwgaW4gd2l0aDogJyArIGEpIik7Ci0gICAgICAgICAgIH0KLSAgICAgICAgfSkoeyBhOiAiT2Jq
ZWN0IHByb3BlcnR5IHZhbHVlIiB9KQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNuaXBwZXQyKCkg
ewotICAgICAgICAoZnVuY3Rpb24gKGEpIHsgZXZhbCgiY29uc29sZS5sb2coJ2V2YWwgaW4gZnVu
Y3Rpb246ICcgKyBhKSIpOyB9KSgiRnVuY3Rpb24gcGFyYW1ldGVyIikKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBib2R5VGV4dChmKSB7Ci0gICAgICAgIHZhciB0ZXh0ID0gZi50b1N0cmluZygpOwot
ICAgICAgICB2YXIgYmVnaW4gPSB0ZXh0LmluZGV4T2YoInsiKTsKLSAgICAgICAgcmV0dXJuIHRl
eHQuc3Vic3RyaW5nKGJlZ2luKTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKGJvZHlUZXh0KHNuaXBwZXQxKSwgc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEo
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVz
KHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGJvZHlUZXh0KHNuaXBwZXQyKSwgc3RlcDMpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGV2YWx1YXRpbmcgJ2NvbnNvbGUubG9nKCknIGluIHRo
ZSBjb25zb2xlIHdpbGwgaGF2ZSBhY2Nlc3MgdG8gaXRzIG91dGVyIHNjb3BlIHZhcmlhYmxlcy4K
LTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDU0NyI+
QnVnIDYwNTQ3LjwvYT4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC1zeW50YXgtZXJyb3ItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLXN5bnRh
eC1lcnJvci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3NzMw
N2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1l
dmFsLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAg
QEAKLVRlc3RzIHRoYXQgZXZhbHVhdGluZyBhbiBleHByZXNzaW9uIHdpdGggYSBzeW50YXggZXJy
b3IgaW4gdGhlIGNvbnNvbGUgd29uJ3QgY3Jhc2ggdGhlIGJyb3dzZXIuIEJ1ZyA2MTE5NC4KLQot
Zm9vKCkuCi1TeW50YXhFcnJvcjogRXhwZWN0ZWQgYW4gaWRlbnRpZmllciBidXQgZm91bmQgJ30n
IGluc3RlYWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS1ldmFsLXN5bnRheC1lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUvY29uc29sZS1ldmFsLXN5bnRheC1lcnJvci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0ZjdjZjc4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtZXZhbC1zeW50YXgtZXJyb3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29s
ZSgiZm9vKCkuIiwgc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBldmFsdWF0aW5nIGFuIGV4
cHJlc3Npb24gd2l0aCBhIHN5bnRheCBlcnJvciBpbiB0aGUgY29uc29sZSB3b24ndCBjcmFzaCB0
aGUgYnJvd3Nlci4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MTE5NCI+QnVnIDYxMTk0LjwvYT4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC10aHJvdy11
bmRlZmluZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS1ldmFsLXRocm93LXVuZGVmaW5lZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDFiMGRiYWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1ldmFsLXRocm93LXVuZGVmaW5lZC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIHRoYXQgZXZhbHVhdGluZyAndGhyb3cgdW5k
ZWZpbmVkJyBpbiB0aGUgY29uc29sZSB3b24ndCBjcmFzaCB0aGUgYnJvd3Nlci4gQnVnIDU5NjEx
LgotCi10aHJvdyB1bmRlZmluZWQKLXVuZGVmaW5lZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtdGhyb3ctdW5kZWZpbmVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtdGhyb3ctdW5kZWZpbmVk
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzNjBlM2IuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLXRocm93LXVuZGVm
aW5lZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJ0aHJvdyB1bmRlZmluZWQiLCBzdGVw
MSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGV2YWx1YXRpbmcgJ3Rocm93IHVuZGVmaW5lZCcgaW4g
dGhlIGNvbnNvbGUgd29uJ3QgY3Jhc2ggdGhlIGJyb3dzZXIuCi08YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk2MTEiPkJ1ZyA1OTYxMS48L2E+Ci08L3A+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLWV2YWwtdW5kZWZpbmVkLW92ZXJyaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC11bmRlZmluZWQtb3ZlcnJpZGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjQ1YjE0Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC11bmRl
ZmluZWQtb3ZlcnJpZGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBA
Ci1UZXN0cyB0aGF0IGV2YWx1YXRpbmcgc29tZXRoaW5nIGluIGNvbnNvbGUgd29uJ3QgY3Jhc2gg
dGhlIGJyb3dzZXIgaWYgdW5kZWZpbmVkIHZhbHVlIGlzIG92ZXJyaWRlbi4gVGhlIHRlc3QgcGFz
c2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guIEJ1ZyA2NDE1NS4KLQotdmFyIHggPSB7YToxfTsgeC5z
ZWxmID0geDsgdW5kZWZpbmVkID0geDsKLU9iamVjdCB7YTogMSwgc2VsZjogT2JqZWN0fQotdW5r
bm93blZhcgotUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHVua25vd25WYXIK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFs
LXVuZGVmaW5lZC1vdmVycmlkZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1ldmFsLXVuZGVmaW5lZC1vdmVycmlkZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0NmVkZmFlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtZXZhbC11bmRlZmluZWQtb3ZlcnJpZGUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDMwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluQ29uc29sZSgidmFyIHggPSB7YToxfTsgeC5zZWxmID0geDsgdW5kZWZpbmVkID0geDsiLCBz
dGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJ1bmtub3duVmFyIiwgc3RlcDIpOwotICAgIH0KLSAgICBm
dW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xl
TWVzc2FnZXMoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9
Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
Ci1UZXN0cyB0aGF0IGV2YWx1YXRpbmcgc29tZXRoaW5nIGluIGNvbnNvbGUgd29uJ3QgY3Jhc2gg
dGhlIGJyb3dzZXIgaWYgdW5kZWZpbmVkIHZhbHVlCi1pcyBvdmVycmlkZW4uIFRoZSB0ZXN0IHBh
c3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoLgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY0MTU1Ij5CdWcgNjQxNTUuPC9hPgotPC9wPgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29s
ZS1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjRhMGVkYi4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5Db25zb2xlKCIxKzIiLCBzdGVwMik7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0
PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQg
c2ltcGxlIGV2YWx1YXRpb25zIG1heSBiZSBwZXJmb3JtZWQgaW4gdGhlIGNvbnNvbGUuCi08L3A+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtZXhjZXB0aW9uLXN0YWNrLXRyYWNlcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV4Y2VwdGlvbi1zdGFjay10cmFjZXMt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOThiZTQ2Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXhjZXB0aW9u
LXN0YWNrLXRyYWNlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTY6IFVSSUVycm9yOiBVUkkgZXJyb3IKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAyMTogVHlwZUVycm9yOiAxIGlzIG5vdCBhIGZ1bmN0aW9uIChldmFsdWF0
aW5nICcxKCknKQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI2OiBSYW5nZUVycm9yOiBBcnJheSBz
aXplIGlzIG5vdCBhIHNtYWxsIGVub3VnaCBwb3NpdGl2ZSBpbnRlZ2VyLgotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDMxOiBTeW50YXhFcnJvcjogRXhwZWN0ZWQgdG9rZW4gJ30nCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMzY6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBkb2Vz
Tm90RXhpc3QKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NjogRXJyb3I6IEN1c3RvbSBFcnJvcgot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDUxOiBbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA1NjogZXJyb3Igc3RyaW5nCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogRE9ORQot
VGVzdHMgdGhhdCBKYXZhU2NyaXB0IGV4Y2VwdGlvbidzIGNvbnRhaW4gc3RhY2sgdHJhY2VzIGFu
ZCB0aGF0IHRoZSBmdW5jdGlvbnMgbWF0Y2ggY29uc29sZS50cmFjZSgpIHN0YWNrIHRyYWNlcy4K
LQotU1VDQ0VTUwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLWV4Y2VwdGlvbi1zdGFjay10cmFjZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtZXhjZXB0aW9uLXN0YWNrLXRyYWNlcy5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhZWEwNjMzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXhjZXB0aW9uLXN0YWNrLXRyYWNlcy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLWZ1bmN0aW9uIHdyYXBwZXIoZikgeyB3cmFwcGVyMihmKTsgfQotZnVuY3Rpb24g
d3JhcHBlcjIoZikgeyB3cmFwcGVyMyhmKTsgfQotZnVuY3Rpb24gd3JhcHBlcjMoZikgeyB3cmFw
cGVyNChmKTsgfQotZnVuY3Rpb24gd3JhcHBlcjQoZikgeyBmaW5hbFdyYXBwZXIoZik7IH0KLWZ1
bmN0aW9uIGZpbmFsV3JhcHBlcihmKSB7IHByb2R1Y2VFcnJvcihmKTsgfQotZnVuY3Rpb24gcHJv
ZHVjZUVycm9yKGYpIHsKLSAgICBmKCk7Ci19Ci0KLWZ1bmN0aW9uIHVyaUVycm9yKCkgewotICAg
IGNvbnNvbGUudHJhY2UoKTsKLSAgICBkZWNvZGVVUkkoIiUiKTsKLX0KLQotZnVuY3Rpb24gdHlw
ZUVycm9yKCkgewotICAgIGNvbnNvbGUudHJhY2UoKTsKLSAgICAxKCk7Ci19Ci0KLWZ1bmN0aW9u
IHJhbmdlRXJyb3IoKSB7Ci0gICAgY29uc29sZS50cmFjZSgpOwotICAgIEFycmF5KC0xKS5sZW5n
dGg7Ci19Ci0KLWZ1bmN0aW9uIHN5bnRheEVycm9yKCkgewotICAgIGNvbnNvbGUudHJhY2UoKTsK
LSAgICBldmFsKCJ7Iik7Ci19Ci0KLWZ1bmN0aW9uIHJlZmVyZW5jZUVycm9yKCkgewotICAgIGNv
bnNvbGUudHJhY2UoKTsKLSAgICBkb2VzTm90RXhpc3Q7Ci19Ci0KLWZ1bmN0aW9uIGRvbUV4Y2Vw
dGlvbigpIHsKLSAgICBjb25zb2xlLnRyYWNlKCk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZCgic2hvdWxkIG5vdCBiZSBhIHN0cmluZyIpOwotfQotCi1mdW5jdGlvbiB0aHJvd0Vycm9y
T2JqZWN0KCkgewotICAgIGNvbnNvbGUudHJhY2UoKTsKLSAgICB0aHJvdyBuZXcgRXJyb3IoIkN1
c3RvbSBFcnJvciIpOwotfQotCi1mdW5jdGlvbiB0aHJvd09iamVjdCgpIHsKLSAgICBjb25zb2xl
LnRyYWNlKCk7Ci0gICAgdGhyb3cge25hbWU6ICJDdXN0b21FcnJvck9iamVjdE5hbWUiLCBtZXNz
YWdlOiAiQ3VzdG9tRXJyb3JPYmplY3RNZXNzYWdlIn07Ci19Ci0KLWZ1bmN0aW9uIHRocm93U3Ry
aW5nKCkgewotICAgIGNvbnNvbGUudHJhY2UoKTsKLSAgICB0aHJvdyAiZXJyb3Igc3RyaW5nIjsK
LX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdl
Ykluc3BlY3Rvci5Db25zb2xlRGlzcGF0Y2hlci5wcm90b3R5cGUsICJtZXNzYWdlQWRkZWQiLCBt
ZXNzYWdlQWRkZWQsIHRydWUpOwotCi0gICAgdmFyIGhhZEVycm9yID0gZmFsc2U7Ci0gICAgdmFy
IHRyYWNlU3RhY2tUcmFjZSA9IG51bGw7Ci0gICAgdmFyIGVycm9yU3RhY2tUcmFjZSA9IG51bGw7
Ci0KLSAgICBmdW5jdGlvbiBtZXNzYWdlQWRkZWQocGF5bG9hZCkKLSAgICB7Ci0gICAgICAgIGlm
IChwYXlsb2FkLnRleHQgPT09ICJET05FIikgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoaGFkRXJyb3IgPyAiRkFJTFVSRSIgOiAiU1VDQ0VTUyIpOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmICghdHJhY2VTdGFja1RyYWNlKSB7Ci0gICAgICAgICAgICBpZiAo
cGF5bG9hZC5zb3VyY2UgPT09ICJjb25zb2xlLWFwaSIgJiYgcGF5bG9hZC50eXBlID09PSAidHJh
Y2UiICYmIHBheWxvYWQuc3RhY2tUcmFjZSkKLSAgICAgICAgICAgICAgICB0cmFjZVN0YWNrVHJh
Y2UgPSBwYXlsb2FkLnN0YWNrVHJhY2U7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXhwZWN0ZWQgY29uc29sZS50cmFjZSgpIG1l
c3NhZ2Ugd2l0aCBhIHN0YWNrVHJhY2UsIGJ1dCBnb3Q6ICIgKyBKU09OLnN0cmluZ2lmeShwYXls
b2FkKSk7Ci0gICAgICAgICAgICAgICAgdHJhY2VTdGFja1RyYWNlID0gZXJyb3JTdGFja1RyYWNl
ID0gbnVsbDsKLSAgICAgICAgICAgICAgICBoYWRFcnJvciA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKCFlcnJvclN0YWNr
VHJhY2UpIHsKLSAgICAgICAgICAgIGlmIChwYXlsb2FkLnNvdXJjZSA9PT0gImphdmFzY3JpcHQi
ICYmIHBheWxvYWQubGV2ZWwgPT09ICJlcnJvciIgJiYgcGF5bG9hZC5zdGFja1RyYWNlKQotICAg
ICAgICAgICAgICAgIGVycm9yU3RhY2tUcmFjZSA9IHBheWxvYWQuc3RhY2tUcmFjZTsKLSAgICAg
ICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJF
eHBlY3RlZCBKYXZhU2NyaXB0IEVycm9yIG1lc3NhZ2Ugd2l0aCBzdGFja1RyYWNlIGJ1dCBnb3Q6
ICIgKyBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSk7Ci0gICAgICAgICAgICAgICAgdHJhY2VTdGFj
a1RyYWNlID0gZXJyb3JTdGFja1RyYWNlID0gbnVsbDsKLSAgICAgICAgICAgICAgICBoYWRFcnJv
ciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKHRyYWNlU3RhY2tUcmFjZSAmJiBlcnJvclN0YWNrVHJhY2UpIHsK
LSAgICAgICAgICAgIHZhciBoYWRTdGFja1RyYWNlRGlmZmVyZW5jZSA9IGZhbHNlOwotICAgICAg
ICAgICAgIGlmICh0cmFjZVN0YWNrVHJhY2UubGVuZ3RoICE9IGVycm9yU3RhY2tUcmFjZS5sZW5n
dGgpIHsKLSAgICAgICAgICAgICAgICBpZiAoZXJyb3JTdGFja1RyYWNlLmxlbmd0aCAtIHRyYWNl
U3RhY2tUcmFjZS5sZW5ndGggIT0gMSB8fCAoZXJyb3JTdGFja1RyYWNlWzBdLmZ1bmN0aW9uTmFt
ZSAhPSAiZGVjb2RlVVJJIiAmJiBlcnJvclN0YWNrVHJhY2VbMF0uZnVuY3Rpb25OYW1lICE9ICJl
dmFsIikpCi0gICAgICAgICAgICAgICAgICAgIGhhZFN0YWNrVHJhY2VEaWZmZXJlbmNlID0gdHJ1
ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdHJhY2VTdGFja1RyYWNlLmxlbmd0aDsgKytpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICh0cmFjZVN0YWNrVHJhY2VbaV0uZnVuY3Rpb25OYW1lICE9PSBlcnJv
clN0YWNrVHJhY2VbaV0uZnVuY3Rpb25OYW1lKQotICAgICAgICAgICAgICAgICAgICAgICAgaGFk
U3RhY2tUcmFjZURpZmZlcmVuY2UgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgaWYgKGhhZFN0YWNrVHJhY2VEaWZmZXJlbmNlKSB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVuZXhwZWN0ZWQgc3RhY2sgdHJh
Y2UgZm9yIEphdmFTY3JpcHQgRXJyb3I6ICIgKyBwYXlsb2FkLnRleHQpOwotICAgICAgICAgICAg
ICAgIGhhZEVycm9yID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdHJhY2VT
dGFja1RyYWNlID0gZXJyb3JTdGFja1RyYWNlID0gbnVsbDsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgid3JhcHBlcih1cmlF
cnJvcikiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoIndy
YXBwZXIodHlwZUVycm9yKSIpOwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRo
VGltZW91dCgid3JhcHBlcihyYW5nZUVycm9yKSIpOwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2VXaXRoVGltZW91dCgid3JhcHBlcihzeW50YXhFcnJvcikiKTsKLSAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoIndyYXBwZXIocmVmZXJlbmNlRXJyb3Ip
Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0KCJ3cmFwcGVy
KHRocm93RXJyb3JPYmplY3QpIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdp
dGhUaW1lb3V0KCJ3cmFwcGVyKHRocm93T2JqZWN0KSIpOwotICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2VXaXRoVGltZW91dCgid3JhcHBlcih0aHJvd1N0cmluZykiKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoImNvbnNvbGUubG9nKCdET05FJyki
KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08
cD5UZXN0cyB0aGF0IEphdmFTY3JpcHQgZXhjZXB0aW9uJ3MgY29udGFpbiBzdGFjayB0cmFjZXMg
YW5kIHRoYXQgdGhlIGZ1bmN0aW9ucyBtYXRjaCBjb25zb2xlLnRyYWNlKCkgc3RhY2sgdHJhY2Vz
LjwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS1leHRlcm5hbC1hcnJheS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV4dGVybmFsLWFycmF5LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODdhOWRkMy4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV4dGVybmFsLWFycmF5LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA5OiBbb2JqZWN0IEludDhBcnJheV0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogW29i
amVjdCBJbnQxNkFycmF5XQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBbb2JqZWN0IEludDMy
QXJyYXldCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IFtvYmplY3QgVWludDhBcnJheV0KLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxMzogW29iamVjdCBVaW50MTZBcnJheV0KLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxNDogW29iamVjdCBVaW50MzJBcnJheV0KLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNTogW29iamVjdCBGbG9hdDMyQXJyYXldCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTY6IFtv
YmplY3QgRmxvYXQ2NEFycmF5XQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IElu
dDhBcnJheV0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogW29iamVjdCBJbnQxNkFycmF5XQot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBbb2JqZWN0IEludDMyQXJyYXldCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMjE6IFtvYmplY3QgVWludDhBcnJheV0KLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAyMjogW29iamVjdCBVaW50MTZBcnJheV0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMzogW29i
amVjdCBVaW50MzJBcnJheV0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNDogW29iamVjdCBGbG9h
dDMyQXJyYXldCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjU6IFtvYmplY3QgRmxvYXQ2NEFycmF5
XQotVGVzdHMgdGhhdCBjb25zb2xlIGxvZ2dpbmcgZGV0ZWN0cyBleHRlcm5hbCBhcnJheXMgYXMg
YXJyYXlzLgotCi1JbnQ4QXJyYXlbMTBdIGNvbnNvbGUtZXh0ZXJuYWwtYXJyYXkuaHRtbDo5Ci1J
bnQxNkFycmF5WzEwXSBjb25zb2xlLWV4dGVybmFsLWFycmF5Lmh0bWw6MTAKLUludDMyQXJyYXlb
MTBdIGNvbnNvbGUtZXh0ZXJuYWwtYXJyYXkuaHRtbDoxMQotVWludDhBcnJheVsxMF0gY29uc29s
ZS1leHRlcm5hbC1hcnJheS5odG1sOjEyCi1VaW50MTZBcnJheVsxMF0gY29uc29sZS1leHRlcm5h
bC1hcnJheS5odG1sOjEzCi1VaW50MzJBcnJheVsxMF0gY29uc29sZS1leHRlcm5hbC1hcnJheS5o
dG1sOjE0Ci1GbG9hdDMyQXJyYXlbMTBdIGNvbnNvbGUtZXh0ZXJuYWwtYXJyYXkuaHRtbDoxNQot
RmxvYXQ2NEFycmF5WzEwXSBjb25zb2xlLWV4dGVybmFsLWFycmF5Lmh0bWw6MTYKLUludDhBcnJh
eVsxMF0gY29uc29sZS1leHRlcm5hbC1hcnJheS5odG1sOjE4Ci1JbnQxNkFycmF5WzEwXSBjb25z
b2xlLWV4dGVybmFsLWFycmF5Lmh0bWw6MTkKLUludDMyQXJyYXlbMTBdIGNvbnNvbGUtZXh0ZXJu
YWwtYXJyYXkuaHRtbDoyMAotVWludDhBcnJheVsxMF0gY29uc29sZS1leHRlcm5hbC1hcnJheS5o
dG1sOjIxCi1VaW50MTZBcnJheVsxMF0gY29uc29sZS1leHRlcm5hbC1hcnJheS5odG1sOjIyCi1V
aW50MzJBcnJheVsxMF0gY29uc29sZS1leHRlcm5hbC1hcnJheS5odG1sOjIzCi1GbG9hdDMyQXJy
YXlbMTBdIGNvbnNvbGUtZXh0ZXJuYWwtYXJyYXkuaHRtbDoyNAotRmxvYXQ2NEFycmF5WzEwXSBj
b25zb2xlLWV4dGVybmFsLWFycmF5Lmh0bWw6MjUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1leHRlcm5hbC1hcnJheS5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1leHRlcm5hbC1hcnJheS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzU3MWQ4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXh0ZXJuYWwtYXJyYXkuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBvbmxvYWQoKQotewotICAgIGNvbnNvbGUubG9nKG5l
dyBJbnQ4QXJyYXkoMTApKTsKLSAgICBjb25zb2xlLmxvZyhuZXcgSW50MTZBcnJheSgxMCkpOwot
ICAgIGNvbnNvbGUubG9nKG5ldyBJbnQzMkFycmF5KDEwKSk7Ci0gICAgY29uc29sZS5sb2cobmV3
IFVpbnQ4QXJyYXkoMTApKTsKLSAgICBjb25zb2xlLmxvZyhuZXcgVWludDE2QXJyYXkoMTApKTsK
LSAgICBjb25zb2xlLmxvZyhuZXcgVWludDMyQXJyYXkoMTApKTsKLSAgICBjb25zb2xlLmxvZyhu
ZXcgRmxvYXQzMkFycmF5KDEwKSk7Ci0gICAgY29uc29sZS5sb2cobmV3IEZsb2F0NjRBcnJheSgx
MCkpOwotCi0gICAgY29uc29sZS5kaXIobmV3IEludDhBcnJheSgxMCkpOwotICAgIGNvbnNvbGUu
ZGlyKG5ldyBJbnQxNkFycmF5KDEwKSk7Ci0gICAgY29uc29sZS5kaXIobmV3IEludDMyQXJyYXko
MTApKTsKLSAgICBjb25zb2xlLmRpcihuZXcgVWludDhBcnJheSgxMCkpOwotICAgIGNvbnNvbGUu
ZGlyKG5ldyBVaW50MTZBcnJheSgxMCkpOwotICAgIGNvbnNvbGUuZGlyKG5ldyBVaW50MzJBcnJh
eSgxMCkpOwotICAgIGNvbnNvbGUuZGlyKG5ldyBGbG9hdDMyQXJyYXkoMTApKTsKLSAgICBjb25z
b2xlLmRpcihuZXcgRmxvYXQ2NEFycmF5KDEwKSk7Ci0KLSAgICBydW5UZXN0KCk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygp
OwotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KLTxwPgotVGVzdHMgdGhhdCBjb25zb2xl
IGxvZ2dpbmcgZGV0ZWN0cyBleHRlcm5hbCBhcnJheXMgYXMgYXJyYXlzLgotPC9wPgotCi08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLWZpbHRlci10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtZmlsdGVyLXRlc3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1NzJhNjM5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtZmlsdGVyLXRlc3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTUyICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAwdG9wR3JvdXAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAzOiAxdG9wR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5
OiAydG9wR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAzdG9wR3JvdXAKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSA5OiA0dG9wR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiA1dG9w
R3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiA2dG9wR3JvdXAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAzOiA3dG9wR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiA4dG9wR3JvdXAK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiA5dG9wR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA5OiAxMG91dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAxMW91dGVyR3JvdXAK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAxMm91dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAzOiAxM291dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAxNG91dGVyR3Jv
dXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAxNW91dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA5OiAxNm91dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAxN291dGVy
R3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAxOG91dGVyR3JvdXAKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAzOiAxOW91dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAyMGlu
bmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAyMWlubmVyR3JvdXAKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSA5OiAyMmlubmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAy
M2lubmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAyNGlubmVyR3JvdXAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAzOiAyNWlubmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5
OiAyNmlubmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAyN2lubmVyR3JvdXAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA5OiAyOGlubmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAzOiAyOWlubmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOTogZW5kCi1UZXN0cyB0
aGF0IGNvbnNvbGUgY2FuIGZpbHRlciBtZXNzYWdlcyBieSBzb3VyY2UuCi0KLQotUnVubmluZzog
YmVmb3JlRmlsdGVyCi1iZWZvcmVGaWx0ZXIKLTB0b3BHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0
Lmh0bWw6OQotMXRvcEdyb3VwIGxvZy1zb3VyY2UuanM6MwotMnRvcEdyb3VwIGNvbnNvbGUtZmls
dGVyLXRlc3QuaHRtbDo5Ci0zdG9wR3JvdXAgbG9nLXNvdXJjZS5qczozCi00dG9wR3JvdXAgY29u
c29sZS1maWx0ZXItdGVzdC5odG1sOjkKLTV0b3BHcm91cCBsb2ctc291cmNlLmpzOjMKLTZ0b3BH
cm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotN3RvcEdyb3VwIGxvZy1zb3VyY2UuanM6
MwotOHRvcEdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci05dG9wR3JvdXAgbG9nLXNv
dXJjZS5qczozCi0+b3V0ZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6MjIKLSAgMTBv
dXRlckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gIDExb3V0ZXJHcm91cCBsb2ct
c291cmNlLmpzOjMKLSAgMTJvdXRlckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0g
IDEzb3V0ZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAgMTRvdXRlckdyb3VwIGNvbnNvbGUtZmls
dGVyLXRlc3QuaHRtbDo5Ci0gIDE1b3V0ZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAgMTZvdXRl
ckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gIDE3b3V0ZXJHcm91cCBsb2ctc291
cmNlLmpzOjMKLSAgMThvdXRlckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gIDE5
b3V0ZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAgPmlubmVyR3JvdXAgY29uc29sZS1maWx0ZXIt
dGVzdC5odG1sOjI5Ci0gICAgMjBpbm5lckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5
Ci0gICAgMjFpbm5lckdyb3VwIGxvZy1zb3VyY2UuanM6MwotICAgIDIyaW5uZXJHcm91cCBjb25z
b2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotICAgIDIzaW5uZXJHcm91cCBsb2ctc291cmNlLmpzOjMK
LSAgICAyNGlubmVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLSAgICAyNWlubmVy
R3JvdXAgbG9nLXNvdXJjZS5qczozCi0gICAgMjZpbm5lckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRl
c3QuaHRtbDo5Ci0gICAgMjdpbm5lckdyb3VwIGxvZy1zb3VyY2UuanM6MwotICAgIDI4aW5uZXJH
cm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotICAgIDI5aW5uZXJHcm91cCBsb2ctc291
cmNlLmpzOjMKLWVuZCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6MzkKLQotUnVubmluZzogYWRk
VVJMMUZpbHRlcgotMXRvcEdyb3VwIGxvZy1zb3VyY2UuanM6MwotM3RvcEdyb3VwIGxvZy1zb3Vy
Y2UuanM6MwotNXRvcEdyb3VwIGxvZy1zb3VyY2UuanM6MwotN3RvcEdyb3VwIGxvZy1zb3VyY2Uu
anM6MwotOXRvcEdyb3VwIGxvZy1zb3VyY2UuanM6MwotPm91dGVyR3JvdXAgY29uc29sZS1maWx0
ZXItdGVzdC5odG1sOjIyCi0gIDExb3V0ZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAgMTNvdXRl
ckdyb3VwIGxvZy1zb3VyY2UuanM6MwotICAxNW91dGVyR3JvdXAgbG9nLXNvdXJjZS5qczozCi0g
IDE3b3V0ZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAgMTlvdXRlckdyb3VwIGxvZy1zb3VyY2Uu
anM6MwotICA+aW5uZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6MjkKLSAgICAyMWlu
bmVyR3JvdXAgbG9nLXNvdXJjZS5qczozCi0gICAgMjNpbm5lckdyb3VwIGxvZy1zb3VyY2UuanM6
MwotICAgIDI1aW5uZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAgICAyN2lubmVyR3JvdXAgbG9n
LXNvdXJjZS5qczozCi0gICAgMjlpbm5lckdyb3VwIGxvZy1zb3VyY2UuanM6MwotCi1SdW5uaW5n
OiBhZGRVUkwyRmlsdGVyCi0+b3V0ZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6MjIK
LSAgPmlubmVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjI5Ci0KLVJ1bm5pbmc6IHJl
bW92ZVVSTDFGaWx0ZXIKLTB0b3BHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotMnRv
cEdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci00dG9wR3JvdXAgY29uc29sZS1maWx0
ZXItdGVzdC5odG1sOjkKLTZ0b3BHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotOHRv
cEdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0+b3V0ZXJHcm91cCBjb25zb2xlLWZp
bHRlci10ZXN0Lmh0bWw6MjIKLSAgPmlubmVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1s
OjI5Ci0gICAgMjBpbm5lckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gICAgMjJp
bm5lckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gICAgMjRpbm5lckdyb3VwIGNv
bnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gICAgMjZpbm5lckdyb3VwIGNvbnNvbGUtZmlsdGVy
LXRlc3QuaHRtbDo5Ci0gICAgMjhpbm5lckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5
Ci0gIDEwb3V0ZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotICAxMm91dGVyR3Jv
dXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLSAgMTRvdXRlckdyb3VwIGNvbnNvbGUtZmls
dGVyLXRlc3QuaHRtbDo5Ci0gIDE2b3V0ZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6
OQotICAxOG91dGVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLWVuZCBjb25zb2xl
LWZpbHRlci10ZXN0Lmh0bWw6MzkKLQotUnVubmluZzogcmVzdG9yZVVSTDFGaWx0ZXIKLT5vdXRl
ckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDoyMgotICA+aW5uZXJHcm91cCBjb25zb2xl
LWZpbHRlci10ZXN0Lmh0bWw6MjkKLQotUnVubmluZzogcmVtb3ZlQWxsRmlsdGVycwotMHRvcEdy
b3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0xdG9wR3JvdXAgbG9nLXNvdXJjZS5qczoz
Ci0ydG9wR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLTN0b3BHcm91cCBsb2ctc291
cmNlLmpzOjMKLTR0b3BHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotNXRvcEdyb3Vw
IGxvZy1zb3VyY2UuanM6MwotNnRvcEdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci03
dG9wR3JvdXAgbG9nLXNvdXJjZS5qczozCi04dG9wR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5o
dG1sOjkKLTl0b3BHcm91cCBsb2ctc291cmNlLmpzOjMKLT5vdXRlckdyb3VwIGNvbnNvbGUtZmls
dGVyLXRlc3QuaHRtbDoyMgotICA+aW5uZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6
MjkKLSAgICAyMGlubmVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLSAgICAyMWlu
bmVyR3JvdXAgbG9nLXNvdXJjZS5qczozCi0gICAgMjJpbm5lckdyb3VwIGNvbnNvbGUtZmlsdGVy
LXRlc3QuaHRtbDo5Ci0gICAgMjNpbm5lckdyb3VwIGxvZy1zb3VyY2UuanM6MwotICAgIDI0aW5u
ZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotICAgIDI1aW5uZXJHcm91cCBsb2ct
c291cmNlLmpzOjMKLSAgICAyNmlubmVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkK
LSAgICAyN2lubmVyR3JvdXAgbG9nLXNvdXJjZS5qczozCi0gICAgMjhpbm5lckdyb3VwIGNvbnNv
bGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gICAgMjlpbm5lckdyb3VwIGxvZy1zb3VyY2UuanM6Mwot
ICAxMG91dGVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLSAgMTFvdXRlckdyb3Vw
IGxvZy1zb3VyY2UuanM6MwotICAxMm91dGVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1s
OjkKLSAgMTNvdXRlckdyb3VwIGxvZy1zb3VyY2UuanM6MwotICAxNG91dGVyR3JvdXAgY29uc29s
ZS1maWx0ZXItdGVzdC5odG1sOjkKLSAgMTVvdXRlckdyb3VwIGxvZy1zb3VyY2UuanM6MwotICAx
Nm91dGVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLSAgMTdvdXRlckdyb3VwIGxv
Zy1zb3VyY2UuanM6MwotICAxOG91dGVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkK
LSAgMTlvdXRlckdyb3VwIGxvZy1zb3VyY2UuanM6MwotZW5kIGNvbnNvbGUtZmlsdGVyLXRlc3Qu
aHRtbDozOQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWZpbHRlci10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWZpbHRlci10ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMzE0
NWUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1m
aWx0ZXItdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTI0ICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2xv
Zy1zb3VyY2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGxvZzEoKQotewotICAg
IGNvbnNvbGUubG9nLmFwcGx5KGNvbnNvbGUsIGFyZ3VtZW50cyk7Ci19Ci0KLS8vIENyZWF0ZSBh
IG1peCBvZiBsb2cgbWVzc2FnZXMgZnJvbSBkaWZmZXJlbnQgc291cmNlIGZpbGVzCi1mdW5jdGlv
biBvbmxvYWQoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgewotICAgICAg
ICBpZiAoaSAlIDIgPT0gMCkKLSAgICAgICAgICAgIGxvZzEoaSArICJ0b3BHcm91cCIpOyAvLyBm
cm9tIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbAotICAgICAgICBlbHNlCi0gICAgICAgICAgICBs
b2cyKGkgKyAidG9wR3JvdXAiKTsgLy8gZnJvbSBsb2ctc291cmNlLmpzCi0gICAgfQotCi0gICAg
Y29uc29sZS5ncm91cCgib3V0ZXJHcm91cCIpOwotICAgIGZvciAodmFyIGkgPSAxMDsgaSA8IDIw
OyBpKyspIHsKLSAgICAgICAgaWYgKGkgJSAyID09IDApCi0gICAgICAgICAgICBsb2cxKGkgKyAi
b3V0ZXJHcm91cCIpOyAvLyBmcm9tIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbAotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBsb2cyKGkgKyAib3V0ZXJHcm91cCIpOyAvLyBmcm9tIGxvZy1zb3Vy
Y2UuanMKLSAgICB9Ci0gICAgY29uc29sZS5ncm91cCgiaW5uZXJHcm91cCIpOwotICAgIGZvciAo
dmFyIGkgPSAyMDsgaSA8IDMwOyBpKyspIHsKLSAgICAgICAgaWYgKGkgJSAyID09IDApCi0gICAg
ICAgICAgICBsb2cxKGkgKyAiaW5uZXJHcm91cCIpOyAvLyBmcm9tIGNvbnNvbGUtZmlsdGVyLXRl
c3QuaHRtbAotICAgICAgICBlbHNlCi0gICAgICAgICAgICBsb2cyKGkgKyAiaW5uZXJHcm91cCIp
OyAvLyBmcm9tIGxvZy1zb3VyY2UuanMKLSAgICB9Ci0gICAgY29uc29sZS5ncm91cEVuZCgpOwot
ICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTsKLQotICAgIGNvbnNvbGUubG9nKCJlbmQiKTsKLQotICAg
IHJ1blRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIG1lc3NhZ2VzRWxl
bWVudCA9IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5tZXNzYWdlc0VsZW1lbnQ7Ci0KLSAgICBm
dW5jdGlvbiBkdW1wVmlzaWJsZU1lc3NhZ2VzKHJvb3QsIGluZGVudCkKLSAgICB7Ci0gICAgICAg
IGluZGVudCA9IGluZGVudCB8fCAiIjsKLSAgICAgICAgcm9vdCA9IHJvb3QgfHwgV2ViSW5zcGVj
dG9yLmNvbnNvbGVWaWV3Lm1lc3NhZ2VzRWxlbWVudC5maXJzdENoaWxkOyAvLyAuY29uc29sZS1n
cm91cAotICAgICAgICB2YXIgY2hpbGRyZW4gPSByb290LmNoaWxkTm9kZXM7Ci0KLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAg
aWYgKGNoaWxkcmVuW2ldLmhhc1N0eWxlQ2xhc3MoImNvbnNvbGUtbWVzc2FnZSIpKSB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoaW5kZW50ICsgIj4iICsgY2hpbGRy
ZW5baV0udGV4dENvbnRlbnQpOwotICAgICAgICAgICAgICAgIGluZGVudCA9IGluZGVudCArICIg
ICI7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkcmVuW2ldLmhhc1N0eWxlQ2xhc3MoImNv
bnNvbGUtZ3JvdXAtbWVzc2FnZXMiKSkgewotICAgICAgICAgICAgICAgIHZhciBncm91cE1lc3Nh
Z2VzID0gY2hpbGRyZW5baV0uY2hpbGROb2RlczsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBq
ID0gMDsgaiA8IGdyb3VwTWVzc2FnZXMubGVuZ3RoOyBqKyspIHsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGdyb3VwTWVzc2FnZXNbal0uaGFzU3R5bGVDbGFzcygiY29uc29sZS1tZXNzYWdlIikp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChpbmRlbnQg
KyBncm91cE1lc3NhZ2VzW2pdLnRleHRDb250ZW50KTsKLSAgICAgICAgICAgICAgICAgICAgZWxz
ZSBpZiAoZ3JvdXBNZXNzYWdlc1tqXS5oYXNTdHlsZUNsYXNzKCJjb25zb2xlLWdyb3VwIikpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBkdW1wVmlzaWJsZU1lc3NhZ2VzKGdyb3VwTWVzc2FnZXNb
al0sIGluZGVudCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgfQotCi0gICAgdmFyIGdyb3VwTWVzc2FnZXMgPSBtZXNzYWdlc0VsZW1lbnQucXVlcnlT
ZWxlY3RvcigiLmNvbnNvbGUtZ3JvdXAtbWVzc2FnZXMiKTsKLQotICAgIHZhciB1cmwxID0gZ3Jv
dXBNZXNzYWdlcy5jaGlsZE5vZGVzWzBdLm1lc3NhZ2UudXJsOwotICAgIHZhciB1cmwyID0gZ3Jv
dXBNZXNzYWdlcy5jaGlsZE5vZGVzWzFdLm1lc3NhZ2UudXJsOwotCi0gICAgSW5zcGVjdG9yVGVz
dC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiBiZWZvcmVGaWx0ZXIobmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoYXJndW1lbnRzLmNh
bGxlZS5uYW1lKTsKLSAgICAgICAgICAgIGR1bXBWaXNpYmxlTWVzc2FnZXMoKTsKLSAgICAgICAg
ICAgIG5leHQoKTsKLSAgICAgICAgfSwKLSAgICAgICAgZnVuY3Rpb24gYWRkVVJMMUZpbHRlcihu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuX2Fk
ZE1lc3NhZ2VVUkxGaWx0ZXIodXJsMSk7Ci0gICAgICAgICAgICBkdW1wVmlzaWJsZU1lc3NhZ2Vz
KCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0gICAgICAgIGZ1bmN0aW9uIGFk
ZFVSTDJGaWx0ZXIobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNv
bnNvbGVWaWV3Ll9hZGRNZXNzYWdlVVJMRmlsdGVyKHVybDIpOwotICAgICAgICAgICAgZHVtcFZp
c2libGVNZXNzYWdlcygpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotICAgICAg
ICBmdW5jdGlvbiByZW1vdmVVUkwxRmlsdGVyKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fcmVtb3ZlTWVzc2FnZVVSTEZpbHRlcih1cmwxKTsK
LSAgICAgICAgICAgIGR1bXBWaXNpYmxlTWVzc2FnZXMoKTsKLSAgICAgICAgICAgIG5leHQoKTsK
LSAgICAgICAgfSwKLSAgICAgICAgZnVuY3Rpb24gcmVzdG9yZVVSTDFGaWx0ZXIobmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9hZGRNZXNzYWdl
VVJMRmlsdGVyKHVybDEpOwotICAgICAgICAgICAgZHVtcFZpc2libGVNZXNzYWdlcygpOwotICAg
ICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotICAgICAgICBmdW5jdGlvbiByZW1vdmVBbGxG
aWx0ZXJzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xl
Vmlldy5fcmVtb3ZlTWVzc2FnZVVSTEZpbHRlcigpOwotICAgICAgICAgICAgZHVtcFZpc2libGVN
ZXNzYWdlcygpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0K
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KLTxwPgotICAg
IFRlc3RzIHRoYXQgY29uc29sZSBjYW4gZmlsdGVyIG1lc3NhZ2VzIGJ5IHNvdXJjZS4KLTwvcD4K
LQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjE3YmFkLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25z
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxNTogW29iamVjdCBOb2RlTGlzdF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
OTogW29iamVjdCBIVE1MQ29sbGVjdGlvbl0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMzogW29i
amVjdCBIVE1MT3B0aW9uc0NvbGxlY3Rpb25dCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjc6IFtv
YmplY3QgSFRNTEFsbENvbGxlY3Rpb25dCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzE6IFtvYmpl
Y3QgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb25dCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzU6
IFtvYmplY3QgTm9kZUxpc3RdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDE6IDEsMiwKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA0NDogW29iamVjdCBPYmplY3RdCi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgNTE6IFtvYmplY3QgQXJndW1lbnRzXQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1OiBbb2Jq
ZWN0IE5vZGVMaXN0XQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBbb2JqZWN0IEhUTUxDb2xs
ZWN0aW9uXQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzOiBbb2JqZWN0IEhUTUxPcHRpb25zQ29s
bGVjdGlvbl0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNzogW29iamVjdCBIVE1MQWxsQ29sbGVj
dGlvbl0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMTogW29iamVjdCBIVE1MRm9ybUNvbnRyb2xz
Q29sbGVjdGlvbl0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzNTogW29iamVjdCBOb2RlTGlzdF0K
LUNPTlNPTEUgTUVTU0FHRTogbGluZSA0MTogMSwyLAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ0
OiBbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MTogW29iamVjdCBBcmd1
bWVudHNdCi1UZXN0cyB0aGF0IGNvbnNvbGUgbmljZWx5IGZvcm1hdHMgSFRNTCBDb2xsZWN0aW9u
cyBhbmQgTm9kZUxpc3RzLgotCi1Ob2RlTGlzdFsxXSBjb25zb2xlLWZvcm1hdC1jb2xsZWN0aW9u
cy5odG1sOjE1Ci1IVE1MQ29sbGVjdGlvblszXSBjb25zb2xlLWZvcm1hdC1jb2xsZWN0aW9ucy5o
dG1sOjE5Ci1IVE1MT3B0aW9uc0NvbGxlY3Rpb25bMl0gY29uc29sZS1mb3JtYXQtY29sbGVjdGlv
bnMuaHRtbDoyMwotSFRNTEFsbENvbGxlY3Rpb25bMTRdIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rp
b25zLmh0bWw6MjcKLUhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uWzNdIGNvbnNvbGUtZm9ybWF0
LWNvbGxlY3Rpb25zLmh0bWw6MzEKLU5vZGVMaXN0WzJdIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rp
b25zLmh0bWw6MzUKLUFycmF5WzJdIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6NDEK
LU5vbkFycmF5V2l0aExlbmd0aCBjb25zb2xlLWZvcm1hdC1jb2xsZWN0aW9ucy5odG1sOjQ0Ci1B
cmd1bWVudHNbMl0gY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbDo1MQotW3NlbGVjdCNz
ZWwsIGl0ZW06IGZ1bmN0aW9uXSBjb25zb2xlLWZvcm1hdC1jb2xsZWN0aW9ucy5odG1sOjE1Ci1b
c2NyaXB0LCBzY3JpcHQsIHNjcmlwdCwgaXRlbTogZnVuY3Rpb24sIG5hbWVkSXRlbTogZnVuY3Rp
b25dIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6MTkKLVtvcHRpb24sIG9wdGlvbiwg
c2VsZWN0ZWRJbmRleDogMCwgcmVtb3ZlOiBmdW5jdGlvbiwgbmFtZWRJdGVtOiBmdW5jdGlvbiwg
YWRkOiBmdW5jdGlvbiwgaXRlbTogZnVuY3Rpb27igKZdIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rp
b25zLmh0bWw6MjMKLVtodG1sLCBoZWFkLCBzY3JpcHQsIHNjcmlwdCwgc2NyaXB0LCBib2R5LCBw
LCBkaXYsIGZvcm0jZiwgc2VsZWN0I3NlbCwgb3B0aW9uLCBvcHRpb24sIGlucHV0LCBpbnB1dCwg
bmFtZWRJdGVtOiBmdW5jdGlvbiwgdGFnczogZnVuY3Rpb24sIGl0ZW06IGZ1bmN0aW9uXSBjb25z
b2xlLWZvcm1hdC1jb2xsZWN0aW9ucy5odG1sOjI3Ci1bc2VsZWN0I3NlbCwgaW5wdXQsIGlucHV0
LCBuYW1lZEl0ZW06IGZ1bmN0aW9uLCBpdGVtOiBmdW5jdGlvbiwgbmFtZWRJdGVtOiBmdW5jdGlv
bl0gY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbDozMQotW2lucHV0LCBpbnB1dCwgaXRl
bTogZnVuY3Rpb25dIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6MzUKLVsxLCBBcnJh
eVsyXV0gY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbDo0MQotTm9uQXJyYXlXaXRoTGVu
Z3RoIHtrZXlzOiBBcnJheVswXX0gY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbDo0NAot
WzEsICIyIl0gY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbDo1MQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1jb2xsZWN0aW9u
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtY29s
bGVjdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzc3MWZjZi4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1j
b2xsZWN0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBsb2dU
b0NvbnNvbGUoKQotewotICAgIHZhciBmb3JtRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJmIik7Ci0gICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic2VsIik7Ci0gICAgdmFyIHNwYW5FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InNwYW4iKTsKLQotICAgIC8vIE5vZGVMaXN0Ci0gICAgdmFyIG5vZGVsaXN0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoInNlbGVjdCIpOwotICAgIGNvbnNvbGUubG9nKG5vZGVsaXN0
KTsKLQotICAgIC8vIEhUTUxDb2xsZWN0aW9uCi0gICAgdmFyIGh0bWxjb2xsZWN0aW9uID0gZG9j
dW1lbnQuaGVhZC5jaGlsZHJlbjsKLSAgICBjb25zb2xlLmxvZyhodG1sY29sbGVjdGlvbik7Ci0K
LSAgICAvLyBIVE1MT3B0aW9uc0NvbGxlY3Rpb24KLSAgICB2YXIgb3B0aW9ucyA9IHNlbGVjdEVs
ZW1lbnQub3B0aW9uczsKLSAgICBjb25zb2xlLmxvZyhvcHRpb25zKTsKLQotICAgIC8vIEhUTUxB
bGxDb2xsZWN0aW9uCi0gICAgdmFyIGFsbCA9IGRvY3VtZW50LmFsbDsKLSAgICBjb25zb2xlLmxv
ZyhhbGwpOwotCi0gICAgLy8gSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24gKGN1cnJlbnRseSBz
aG93cyBIVE1MQ29sbGVjdGlvbikKLSAgICB2YXIgZm9ybUNvbnRyb2xzID0gZm9ybUVsZW1lbnQu
ZWxlbWVudHM7Ci0gICAgY29uc29sZS5sb2coZm9ybUNvbnRyb2xzKTsKLQotICAgIC8vIFJhZGlv
Tm9kZUxpc3QgKGN1cnJlbnRseSBzaG93cyBOb2RlTGlzdCkKLSAgICB2YXIgcmFkaW9Ob2RlTGlz
dCA9IGZvcm1FbGVtZW50Lng7Ci0gICAgY29uc29sZS5sb2cocmFkaW9Ob2RlTGlzdCk7Ci0KLSAg
ICAvLyBDcm9zcy1yZWZlcmVuY2luZyBhcnJheXMuCi0gICAgdmFyIGFycmF5WCA9IFsxXTsKLSAg
ICB2YXIgYXJyYXlZID0gWzIsIGFycmF5WF07Ci0gICAgYXJyYXlYLnB1c2goYXJyYXlZKTsKLSAg
ICBjb25zb2xlLmxvZyhhcnJheVgpOwotCi0gICAgdmFyIG5vbkFycmF5ID0gbmV3IE5vbkFycmF5
V2l0aExlbmd0aCgpOwotICAgIGNvbnNvbGUubG9nKG5vbkFycmF5KTsKLQotICAgIC8vIEFyZ3Vt
ZW50cwotICAgIGZ1bmN0aW9uIGdlbmVyYXRlQXJndW1lbnRzKGZvbywgYmFyKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFyZ3VtZW50czsKLSAgICB9Ci0gICAgY29uc29sZS5sb2coZ2VuZXJhdGVB
cmd1bWVudHMoMSwgIjIiKSk7Ci19Ci0KLWZ1bmN0aW9uIG9ubG9hZCgpCi17Ci0gICAgbG9nVG9D
b25zb2xlKCk7Ci0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiBOb25BcnJheVdpdGhMZW5n
dGgoKQotewotICAgIHRoaXMua2V5cz1bXTsKLX0KLQotTm9uQXJyYXlXaXRoTGVuZ3RoLnByb3Rv
dHlwZS5fX2RlZmluZUdldHRlcl9fKCJsZW5ndGgiLCBmdW5jdGlvbigpCi17Ci0gICAgY29uc29s
ZS5sb2coIi5sZW5ndGggc2hvdWxkIG5vdCBiZSBjYWxsZWQiKTsKLSAgICByZXR1cm4gdGhpcy5r
ZXlzLmxlbmd0aDsKLX0pOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJsb2dUb0NvbnNvbGUoKSIsIGNhbGxiYWNrKTsKLQotICAgIGZ1bmN0
aW9uIGNhbGxiYWNrKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVN
ZXNzYWdlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0K
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KLTxwPgot
VGVzdHMgdGhhdCBjb25zb2xlIG5pY2VseSBmb3JtYXRzIEhUTUwgQ29sbGVjdGlvbnMgYW5kIE5v
ZGVMaXN0cy4KLTwvcD4KLTxkaXYgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci0gICAgPGZvcm0gaWQ9
ImYiPgotICAgICAgICA8c2VsZWN0IGlkPSJzZWwiIG5hbWU9InNlbCI+Ci0gICAgICAgICAgICA8
b3B0aW9uIHZhbHVlPSIxIj5vbmU8L29wdGlvbj4KLSAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9
IjIiPnR3bzwvb3B0aW9uPgotICAgICAgICA8L3NlbGVjdD4KLSAgICAgICAgPGlucHV0IHR5cGU9
InJhZGlvIiBuYW1lPSJ4IiB2YWx1ZT0ieDEiIC8+IHgxCi0gICAgICAgIDxpbnB1dCB0eXBlPSJy
YWRpbyIgbmFtZT0ieCIgdmFsdWU9IngyIiAvPiB4MgotICAgIDwvZm9ybT4KLTwvZGl2PgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWZvcm1hdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLWZvcm1hdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDgxODY3MmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUvY29uc29sZS1mb3JtYXQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUxICsw
LDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogdGVzdCx0ZXN0MiwsLHRlc3Q0LCwsLCwK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMTogJW8KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMjog
JU8KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMzogVGVzdCBmb3IgemVybyAiJWYiIGluIGZvcm1h
dHRlcgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUzOiAvXnVybFwoXHMqKD86KD86Iig/OlteXFxc
Il18KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/OlxcW1xkYS1mXXsx
LDZ9XHM/fFwuKSkqJyl8KD86WyEjJCUmKi1+XHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkq
KVxzKlwpL2kKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogL151cmxcKFxzKig/Oig/OiIoPzpb
XlxcXCJdfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqInwnKD86W15cXFwnXXwoPzpcXFtcZGEt
Zl17MSw2fVxzP3xcLikpKicpfCg/OlshIyQlJiotflx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xc
LikpKilccypcKS9pCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTM6IC9mb29cXGJhclxzYmF6L2kK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogL2Zvb1xcYmFyXHNiYXovaQotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDUzOiB0ZXN0Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTQ6IHRlc3QKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA1MzogdGVzdCBuYW1lZCAidGVzdCIKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA1NDogdGVzdCBuYW1lZCAidGVzdCIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogW29i
amVjdCBIVE1MUGFyYWdyYXBoRWxlbWVudF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogW29i
amVjdCBIVE1MUGFyYWdyYXBoRWxlbWVudF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogZnVu
Y3Rpb24gKCkgeyByZXR1cm4gMTsgfQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU0OiBmdW5jdGlv
biAoKSB7IHJldHVybiAxOyB9Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTM6IGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgcmV0dXJuIDI7Ci0gICAgfQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU0OiBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIHJldHVybiAyOwotICAgIH0KLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA1MzogMC4xMgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU0OiAwLjEyCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgNTM6IGh0dHA6Ly93ZWJraXQub3JnLwotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDU0OiBodHRwOi8vd2Via2l0Lm9yZy8KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogbnVsbAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDU0OiAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogdW5k
ZWZpbmVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTQ6IAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDUzOiBbb2JqZWN0IEF0dHJdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTQ6IFtvYmplY3QgQXR0
cl0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogW29iamVjdCBBdHRyXQotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDU0OiBbb2JqZWN0IEF0dHJdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTM6IFtv
YmplY3QgQXR0cl0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogW29iamVjdCBBdHRyXQotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDUzOiBbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA1NDogW29iamVjdCBPYmplY3RdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTM6IE5hTgot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDU0OiBOYU4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1Mzog
SW5maW5pdHkKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogSW5maW5pdHkKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA1MzogLUluZmluaXR5Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTQ6IC1JbmZp
bml0eQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUzOiB0ZXN0LHRlc3QyLCwsdGVzdDQsLCwsLAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDU0OiB0ZXN0LHRlc3QyLCwsdGVzdDQsLCwsLAotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDUzOiBbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA1NDogW29iamVjdCBPYmplY3RdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTM6IGZ1bmN0aW9u
ICgpIHt9Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTQ6IGZ1bmN0aW9uICgpIHt9Ci1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgNTM6IFtvYmplY3QgT2JqZWN0XQotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDU0OiBbb2JqZWN0IE9iamVjdF0KLVRlc3RzIHRoYXQgY29uc29sZSBsb2dnaW5nIGR1bXBzIHBy
b3BlciBtZXNzYWdlcy4KLQotQXJyYXlbMTBdIGNvbnNvbGUtZm9ybWF0Lmh0bWw6MjAKLUFycmF5
WzEwXSBjb25zb2xlLWZvcm1hdC5odG1sOjIxCi1BcnJheVsxMF0gY29uc29sZS1mb3JtYXQuaHRt
bDoyMgotVGVzdCBmb3IgemVybyAiMCIgaW4gZm9ybWF0dGVyIGNvbnNvbGUtZm9ybWF0Lmh0bWw6
MjMKLS9edXJsXChccyooPzooPzoiKD86W15cXFwiXXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikp
KiJ8Jyg/OlteXFxcJ118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSonKXwoPzpbISMkJSYqLX5c
d118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSopXHMqXCkvaSBjb25zb2xlLWZvcm1hdC5odG1s
OjUzCi1bL151cmxcKFxzKig/Oig/OiIoPzpbXlxcXCJdfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFzi
gKY/OlshIyQlJiotflx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKilccypcKS9pXSBjb25z
b2xlLWZvcm1hdC5odG1sOjU0Ci1nbG9iYWxzWzBdCi0vXnVybFwoXHMqKD86KD86Iig/OlteXFxc
Il18KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/OlxcW1xkYS1mXXsx
LDZ9XHM/fFwuKSkqJyl8KD86WyEjJCUmKi1+XHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkq
KVxzKlwpL2kKLS9mb29cXGJhclxzYmF6L2kgY29uc29sZS1mb3JtYXQuaHRtbDo1MwotWy9mb29c
XGJhclxzYmF6L2ldIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTQKLWdsb2JhbHNbMV0KLS9mb29cXGJh
clxzYmF6L2kKLXRlc3QgY29uc29sZS1mb3JtYXQuaHRtbDo1MwotWyJ0ZXN0Il0gY29uc29sZS1m
b3JtYXQuaHRtbDo1NAotZ2xvYmFsc1syXQotInRlc3QiCi10ZXN0IG5hbWVkICJ0ZXN0IiBjb25z
b2xlLWZvcm1hdC5odG1sOjUzCi1bInRlc3QgbmFtZWQgInRlc3QiIl0gY29uc29sZS1mb3JtYXQu
aHRtbDo1NAotZ2xvYmFsc1szXQotInRlc3QgbmFtZWQgInRlc3QiIgotPHAgaWQ9InAiPlRlc3Rz
IHRoYXQgY29uc29sZSBsb2dnaW5nIGR1bXBzIHByb3BlciBtZXNzYWdlcy48L3A+IGNvbnNvbGUt
Zm9ybWF0Lmh0bWw6NTMKLVtwI3BdIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTQKLWdsb2JhbHNbNF0K
LTxwIGlkPSJwIj5UZXN0cyB0aGF0IGNvbnNvbGUgbG9nZ2luZyBkdW1wcyBwcm9wZXIgbWVzc2Fn
ZXMuPC9wPgotZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfSBjb25zb2xlLWZvcm1hdC5odG1sOjUz
Ci1bZnVuY3Rpb25dIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTQKLWdsb2JhbHNbNV0KLWZ1bmN0aW9u
ICgpIHsgcmV0dXJuIDE7IH0KLWZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIDI7Ci0gICAg
fSBjb25zb2xlLWZvcm1hdC5odG1sOjUzCi1bZnVuY3Rpb25dIGNvbnNvbGUtZm9ybWF0Lmh0bWw6
NTQKLWdsb2JhbHNbNl0KLWZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIDI7Ci0gICAgfQot
MC4xMiBjb25zb2xlLWZvcm1hdC5odG1sOjUzCi1bMC4xMl0gY29uc29sZS1mb3JtYXQuaHRtbDo1
NAotZ2xvYmFsc1s3XQotMC4xMgotaHR0cDovL3dlYmtpdC5vcmcvIGNvbnNvbGUtZm9ybWF0Lmh0
bWw6NTMKLVsiaHR0cDovL3dlYmtpdC5vcmcvIl0gY29uc29sZS1mb3JtYXQuaHRtbDo1NAotZ2xv
YmFsc1s4XQotImh0dHA6Ly93ZWJraXQub3JnLyIKLW51bGwgY29uc29sZS1mb3JtYXQuaHRtbDo1
MwotW251bGxdIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTQKLWdsb2JhbHNbOV0KLW51bGwKLXVuZGVm
aW5lZCBjb25zb2xlLWZvcm1hdC5odG1sOjUzCi1bdW5kZWZpbmVkXSBjb25zb2xlLWZvcm1hdC5o
dG1sOjU0Ci1nbG9iYWxzWzEwXQotdW5kZWZpbmVkCi1hdHRyPSIiIGNvbnNvbGUtZm9ybWF0Lmh0
bWw6NTMKLVthdHRyXSBjb25zb2xlLWZvcm1hdC5odG1sOjU0Ci1nbG9iYWxzWzExXQotYXR0cj0i
IgotYXR0cj0idmFsdWUiInZhbHVlIiBjb25zb2xlLWZvcm1hdC5odG1sOjUzCi1bYXR0cl0gY29u
c29sZS1mb3JtYXQuaHRtbDo1NAotZ2xvYmFsc1sxMl0KLWF0dHI9InZhbHVlIiJ2YWx1ZSIKLWlk
PSJ4IiJ4IiBjb25zb2xlLWZvcm1hdC5odG1sOjUzCi1baWRdIGNvbnNvbGUtZm9ybWF0Lmh0bWw6
NTQKLWdsb2JhbHNbMTNdCi1pZD0ieCIieCIKLU9iamVjdCB7fSBjb25zb2xlLWZvcm1hdC5odG1s
OjUzCi1bT2JqZWN0XSBjb25zb2xlLWZvcm1hdC5odG1sOjU0Ci1nbG9iYWxzWzE0XQotT2JqZWN0
IHt9Ci1OYU4gY29uc29sZS1mb3JtYXQuaHRtbDo1MwotW05hTl0gY29uc29sZS1mb3JtYXQuaHRt
bDo1NAotZ2xvYmFsc1sxNV0KLU5hTgotSW5maW5pdHkgY29uc29sZS1mb3JtYXQuaHRtbDo1Mwot
W0luZmluaXR5XSBjb25zb2xlLWZvcm1hdC5odG1sOjU0Ci1nbG9iYWxzWzE2XQotSW5maW5pdHkK
LS1JbmZpbml0eSBjb25zb2xlLWZvcm1hdC5odG1sOjUzCi1bLUluZmluaXR5XSBjb25zb2xlLWZv
cm1hdC5odG1sOjU0Ci1nbG9iYWxzWzE3XQotLUluZmluaXR5Ci1bInRlc3QiLCAidGVzdDIiLCA0
OiAidGVzdDQiLCBmb286IE9iamVjdF0gY29uc29sZS1mb3JtYXQuaHRtbDo1MwotW0FycmF5WzEw
XV0gY29uc29sZS1mb3JtYXQuaHRtbDo1NAotZ2xvYmFsc1sxOF0KLVsidGVzdCIsICJ0ZXN0MiIs
IHVuZGVmaW5lZCDDlyAyLCAidGVzdDQiLCB1bmRlZmluZWQgw5cgNV0KLU9iamVjdCB7fSBjb25z
b2xlLWZvcm1hdC5odG1sOjUzCi1bT2JqZWN0XSBjb25zb2xlLWZvcm1hdC5odG1sOjU0Ci1nbG9i
YWxzWzE5XQotT2JqZWN0IHt9Ci1bZnVuY3Rpb25dIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTMKLVtB
cnJheVsxXV0gY29uc29sZS1mb3JtYXQuaHRtbDo1NAotZ2xvYmFsc1syMF0KLVtmdW5jdGlvbiAo
KSB7fV0KLU9iamVjdCB7YmFyOiAiYmFyIiwgZm9vOiAiZm9vIn0gY29uc29sZS1mb3JtYXQuaHRt
bDo1MwotW09iamVjdF0gY29uc29sZS1mb3JtYXQuaHRtbDo1NAotZ2xvYmFsc1syMV0KLU9iamVj
dCB7YmFyOiAiYmFyIiwgZm9vOiAiZm9vIn0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMWM3MWVkLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA4OiAlY0JsdWUhLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6ICVjQmx1ZSEgJWNSZWQhCi1U
ZXN0cyB0aGF0IGNvbnNvbGUgbG9nZ2luZyBkdW1wcyBwcm9wZXJseSBzdHlsZWQgbWVzc2FnZXMu
Ci0KLUJsdWUhLiBjb25zb2xlLWZvcm1hdC1zdHlsZS5odG1sOjgKLVN0eWxlZCB0ZXh0ICMwOiBj
b2xvcjogYmx1ZTsKLUJsdWUhIFJlZCEgY29uc29sZS1mb3JtYXQtc3R5bGUuaHRtbDo5Ci1TdHls
ZWQgdGV4dCAjMDogY29sb3I6IGJsdWU7Ci1TdHlsZWQgdGV4dCAjMTogY29sb3I6IHJlZDsKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQt
c3R5bGUtd2hpdGVsaXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxYjkyMTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA4OiAlY0NvbG9ycyBhcmUgYXdlc29tZS4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAlY1Nv
IGFyZSBmb250cyEKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogJWNBbmQgYm9yZGVycyBhbmQg
bWFyZ2lucyBhbmQgcGFkZGluZ3MhCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6ICVjdGV4dC0q
IGlzIGZpbmUgYnkgdXMhCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6ICVjRGlzcGxheSwgb24g
dGhlIG90aGVyIGhhbmQsIGlzIGJhZCBuZXdzLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0OiAl
Y0FuZCBwb3NpdGlvbiB0b28uCi1UZXN0cyB0aGF0IGNvbnNvbGUgbG9nZ2luZyBkdW1wcyBwcm9w
ZXJseSBzdHlsZWQgbWVzc2FnZXMsIGFuZCB0aGF0IHRoZSB3aG9sZSBtZXNzYWdlIGdldHMgdGhl
IHNhbWUgc3R5bGUsIHJlZ2FyZGxlc3Mgb2YgbXVsdGlwbGUgJWMgc2V0dGluZ3MuCi0KLUNvbG9y
cyBhcmUgYXdlc29tZS4gY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWw6OAotU3R5
bGVkIHRleHQgIzA6IGNvbG9yOiBibHVlOwotU28gYXJlIGZvbnRzISBjb25zb2xlLWZvcm1hdC1z
dHlsZS13aGl0ZWxpc3QuaHRtbDo5Ci1TdHlsZWQgdGV4dCAjMDogZm9udC1zdHlsZTogbm9ybWFs
OyBmb250LXZhcmlhbnQ6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgZm9udC1zaXplOiAx
ZW07IGxpbmUtaGVpZ2h0OiBub3JtYWw7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7Ci1BbmQgYm9y
ZGVycyBhbmQgbWFyZ2lucyBhbmQgcGFkZGluZ3MhIGNvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRl
bGlzdC5odG1sOjEwCi1TdHlsZWQgdGV4dCAjMDogYm9yZGVyOiAxcHggc29saWQgcmVkOyBtYXJn
aW46IDIwcHg7IHBhZGRpbmc6IDEwcHg7Ci10ZXh0LSogaXMgZmluZSBieSB1cyEgY29uc29sZS1m
b3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWw6MTEKLVN0eWxlZCB0ZXh0ICMwOiB0ZXh0LWRlY29y
YXRpb246IG5vbmU7Ci1EaXNwbGF5LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYmFkIG5ld3MuIGNv
bnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjEzCi1TdHlsZWQgdGV4dCAjMDogTk8g
U1RZTEVTIERFRklORUQKLUFuZCBwb3NpdGlvbiB0b28uIGNvbnNvbGUtZm9ybWF0LXN0eWxlLXdo
aXRlbGlzdC5odG1sOjE0Ci1TdHlsZWQgdGV4dCAjMDogTk8gU1RZTEVTIERFRklORUQKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5
bGUtd2hpdGVsaXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNmFhMzZkNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMy
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotZnVuY3Rpb24gb25sb2FkKCkKLXsKLSAgICBjb25zb2xlLmxvZygnJWNDb2xvcnMgYXJlIGF3
ZXNvbWUuJywgJ2NvbG9yOiBibHVlOycpOwotICAgIGNvbnNvbGUubG9nKCclY1NvIGFyZSBmb250
cyEnLCAnZm9udDogMWVtIEhlbHZldGljYTsnKTsKLSAgICBjb25zb2xlLmxvZygnJWNBbmQgYm9y
ZGVycyBhbmQgbWFyZ2lucyBhbmQgcGFkZGluZ3MhJywgJ2JvcmRlcjogMXB4IHNvbGlkIHJlZDsg
bWFyZ2luOiAyMHB4OyBwYWRkaW5nOiAxMHB4OycpOwotICAgIGNvbnNvbGUubG9nKCclY3RleHQt
KiBpcyBmaW5lIGJ5IHVzIScsICd0ZXh0LWRlY29yYXRpb246IG5vbmU7Jyk7Ci0KLSAgICBjb25z
b2xlLmxvZygnJWNEaXNwbGF5LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYmFkIG5ld3MuJywgJ2Rp
c3BsYXk6IG5vbmU7Jyk7Ci0gICAgY29uc29sZS5sb2coJyVjQW5kIHBvc2l0aW9uIHRvby4nLCAn
cG9zaXRpb246IGFic29sdXRlOycpOwotICAgIHJ1blRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGVz
dCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5leHBhbmRDb25zb2xlTWVzc2FnZXMoKTsKLSAgICBJ
bnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXNXaXRoU3R5bGVzKCk7Ci0gICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9Im9ubG9hZCgpIj4KLTxwPlRlc3RzIHRoYXQgY29uc29sZSBsb2dnaW5nIGR1bXBzIHBy
b3Blcmx5IHN0eWxlZCBtZXNzYWdlcywgYW5kIHRoYXQKLXRoZSB3aG9sZSBtZXNzYWdlIGdldHMg
dGhlIHNhbWUgc3R5bGUsIHJlZ2FyZGxlc3Mgb2YgbXVsdGlwbGUgJWMKLXNldHRpbmdzLjwvcD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2NGI1MDQ2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtZm9ybWF0LXN0eWxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBA
Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBmdW5jdGlvbiBvbmxvYWQoKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCclY0JsdWUhLicsICdjb2xv
cjogYmx1ZTsnKTsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnJWNCbHVlISAlY1JlZCEn
LCAnY29sb3I6IGJsdWU7JywgJ2NvbG9yOiByZWQ7Jyk7Ci0gICAgICAgICAgICAgICAgcnVuVGVz
dCgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZENvbnNvbGVNZXNz
YWdlcygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdl
c1dpdGhTdHlsZXMoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgICAgICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0KLSAg
ICA8Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KLSAgICAgIDxwPlRlc3RzIHRoYXQgY29uc29sZSBs
b2dnaW5nIGR1bXBzIHByb3Blcmx5IHN0eWxlZCBtZXNzYWdlcy48L3A+Ci0gICAgPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29s
ZS1mb3JtYXQtdGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUvY29uc29sZS1mb3JtYXQtdGFibGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2YzgyMmJkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtZm9ybWF0LXRhYmxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDk1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogbnVsbAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEyOiBBcnJheSBvZiBhcnJheXMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
MzogMSwyLDMsNCw1LDYKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogTGFyZ2UgYXJyYXkgb2Yg
YXJyYXlzCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTY6IDEsMiwzLDQsNSw2LDEsMiwzLDQsNSw2
LDEsMiwzLDQsNSw2LDEsMiwzLDQsNSw2Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IEFycmF5
IG9yIGFycmF5IGFuZCBvYmplY3QKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogMSwyLDMsW29i
amVjdCBPYmplY3RdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjE6IE9iamVjdCB0YWJsZQotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDIyOiBbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAyNDogTnVsbCBhcyBjb2x1bW5zCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjU6IDEsMiwz
LDQsNSw2Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjc6IERpZ2l0IGFzIGNvbHVtbnMKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAyODogMSwyLDMsNCw1LDYKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAz
MDogU3RyaW5nIGFzIGNvbHVtbnMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMTogMSwyLDMsNCw1
LDYKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMzogUmFuZG9tIHN0cmluZyBhcyBjb2x1bW5zCi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6IDEsMiwzLDQsNSw2Ci1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMzY6IEFycmF5IG9mIHN0cmluZ3MgYXMgY29sdW1ucwotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDM3OiBbb2JqZWN0IE9iamVjdF0sW29iamVjdCBPYmplY3RdCi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMzk6IEdvb2QgYW5kIGJhZCBjb2x1bW4gbmFtZXMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0
MDogW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XQotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDQyOiBNaXNzaW5nIGNvbHVtbiBuYW1lCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDM6IFtvYmpl
Y3QgT2JqZWN0XSxbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogbnVs
bAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBBcnJheSBvZiBhcnJheXMKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxMzogMSwyLDMsNCw1LDYKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogTGFy
Z2UgYXJyYXkgb2YgYXJyYXlzCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTY6IDEsMiwzLDQsNSw2
LDEsMiwzLDQsNSw2LDEsMiwzLDQsNSw2LDEsMiwzLDQsNSw2Ci1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTg6IEFycmF5IG9yIGFycmF5IGFuZCBvYmplY3QKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
OTogMSwyLDMsW29iamVjdCBPYmplY3RdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjE6IE9iamVj
dCB0YWJsZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIyOiBbb2JqZWN0IE9iamVjdF0KLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAyNDogTnVsbCBhcyBjb2x1bW5zCi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjU6IDEsMiwzLDQsNSw2Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjc6IERpZ2l0IGFzIGNv
bHVtbnMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyODogMSwyLDMsNCw1LDYKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAzMDogU3RyaW5nIGFzIGNvbHVtbnMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAz
MTogMSwyLDMsNCw1LDYKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMzogUmFuZG9tIHN0cmluZyBh
cyBjb2x1bW5zCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6IDEsMiwzLDQsNSw2Ci1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMzY6IEFycmF5IG9mIHN0cmluZ3MgYXMgY29sdW1ucwotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDM3OiBbb2JqZWN0IE9iamVjdF0sW29iamVjdCBPYmplY3RdCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMzk6IEdvb2QgYW5kIGJhZCBjb2x1bW4gbmFtZXMKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA0MDogW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XQotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDQyOiBNaXNzaW5nIGNvbHVtbiBuYW1lCi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgNDM6IFtvYmplY3QgT2JqZWN0XSxbb2JqZWN0IE9iamVjdF0KLVRlc3RzIGNvbnNvbGUudGFi
bGUuCi0KLSBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjEwCi1BcnJheSBvZiBhcnJheXMgY29u
c29sZS1mb3JtYXQtdGFibGUuaHRtbDoxMgotIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MTMK
LUxhcmdlIGFycmF5IG9mIGFycmF5cyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjE1Ci0gY29u
c29sZS1mb3JtYXQtdGFibGUuaHRtbDoxNgotQXJyYXkgb3IgYXJyYXkgYW5kIG9iamVjdCBjb25z
b2xlLWZvcm1hdC10YWJsZS5odG1sOjE4Ci0gY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxOQot
T2JqZWN0IHRhYmxlIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MjEKLSBjb25zb2xlLWZvcm1h
dC10YWJsZS5odG1sOjIyCi1OdWxsIGFzIGNvbHVtbnMgY29uc29sZS1mb3JtYXQtdGFibGUuaHRt
bDoyNAotIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MjUKLURpZ2l0IGFzIGNvbHVtbnMgY29u
c29sZS1mb3JtYXQtdGFibGUuaHRtbDoyNwotIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MjgK
LVN0cmluZyBhcyBjb2x1bW5zIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MzAKLSBjb25zb2xl
LWZvcm1hdC10YWJsZS5odG1sOjMxCi1SYW5kb20gc3RyaW5nIGFzIGNvbHVtbnMgY29uc29sZS1m
b3JtYXQtdGFibGUuaHRtbDozMwotIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MzQKLUFycmF5
IG9mIHN0cmluZ3MgYXMgY29sdW1ucyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjM2Ci0gY29u
c29sZS1mb3JtYXQtdGFibGUuaHRtbDozNwotR29vZCBhbmQgYmFkIGNvbHVtbiBuYW1lcyBjb25z
b2xlLWZvcm1hdC10YWJsZS5odG1sOjM5Ci0gY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDo0MAot
TWlzc2luZyBjb2x1bW4gbmFtZSBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjQyCi0gY29uc29s
ZS1mb3JtYXQtdGFibGUuaHRtbDo0MwotIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MTAKLUFy
cmF5IG9mIGFycmF5cyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjEyCi0oaW5kZXgpMDEyMDEy
MzE0NTYgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxMwotTGFyZ2UgYXJyYXkgb2YgYXJyYXlz
IGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MTUKLShpbmRleCkwMTIwMTIzMTQ1NjIxMjMzNDU2
NDEyMzU0NTY2MTIzNzQ1NiBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjE2Ci1BcnJheSBvciBh
cnJheSBhbmQgb2JqZWN0IGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MTgKLShpbmRleCkwMTJh
YmMwMTIzdW5kZWZpbmVkdW5kZWZpbmVkdW5kZWZpbmVkMXVuZGVmaW5lZHVuZGVmaW5lZHVuZGVm
aW5lZDEyMyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjE5Ci1PYmplY3QgdGFibGUgY29uc29s
ZS1mb3JtYXQtdGFibGUuaHRtbDoyMQotKGluZGV4KWFiZm9vMTJiYXIzNCBjb25zb2xlLWZvcm1h
dC10YWJsZS5odG1sOjIyCi1OdWxsIGFzIGNvbHVtbnMgY29uc29sZS1mb3JtYXQtdGFibGUuaHRt
bDoyNAotKGluZGV4KTAxMjAxMjMxNDU2IGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MjUKLURp
Z2l0IGFzIGNvbHVtbnMgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoyNwotKGluZGV4KTAxMjAx
MjMxNDU2IGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MjgKLVN0cmluZyBhcyBjb2x1bW5zIGNv
bnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MzAKLShpbmRleCkwMDExNCBjb25zb2xlLWZvcm1hdC10
YWJsZS5odG1sOjMxCi1SYW5kb20gc3RyaW5nIGFzIGNvbHVtbnMgY29uc29sZS1mb3JtYXQtdGFi
bGUuaHRtbDozMwotKGluZGV4KTAxIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MzQKLUFycmF5
IG9mIHN0cmluZ3MgYXMgY29sdW1ucyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjM2Ci0oaW5k
ZXgpYWIwMTIxImZvbyIiYmFyIiBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjM3Ci1Hb29kIGFu
ZCBiYWQgY29sdW1uIG5hbWVzIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MzkKLShpbmRleClh
YjAxMjEiZm9vInVuZGVmaW5lZCBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjQwCi1NaXNzaW5n
IGNvbHVtbiBuYW1lIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6NDIKLShpbmRleCkwMSBjb25z
b2xlLWZvcm1hdC10YWJsZS5odG1sOjQzCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC10YWJsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4ZmM4OTFhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3
MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLQotZnVuY3Rpb24gbG9nVG9Db25zb2xlKCkKLXsKLSAgICBjb25zb2xlLnRhYmxlKCk7Ci0g
ICAgY29uc29sZS50YWJsZShudWxsKTsKLQotICAgIGNvbnNvbGUubG9nKCJBcnJheSBvZiBhcnJh
eXMiKTsKLSAgICBjb25zb2xlLnRhYmxlKFtbMSwyLDNdLCBbNCw1LDZdXSk7Ci0KLSAgICBjb25z
b2xlLmxvZygiTGFyZ2UgYXJyYXkgb2YgYXJyYXlzIik7Ci0gICAgY29uc29sZS50YWJsZShbWzEs
MiwzXSwgWzQsNSw2XSwgWzEsMiwzXSwgWzQsNSw2XSwgWzEsMiwzXSwgWzQsNSw2XSwgWzEsMiwz
XSwgWzQsNSw2XV0pOwotCi0gICAgY29uc29sZS5sb2coIkFycmF5IG9yIGFycmF5IGFuZCBvYmpl
Y3QiKTsKLSAgICBjb25zb2xlLnRhYmxlKFtbMSwyLDNdLCB7YToxLCBiOjIsIGM6M31dKTsKLQot
ICAgIGNvbnNvbGUubG9nKCJPYmplY3QgdGFibGUiKTsKLSAgICBjb25zb2xlLnRhYmxlKHsiZm9v
Ijoge2E6MSwgYjoyfSwgImJhciI6IHthOjMsIGI6NH19KTsKLQotICAgIGNvbnNvbGUubG9nKCJO
dWxsIGFzIGNvbHVtbnMiKTsKLSAgICBjb25zb2xlLnRhYmxlKFtbMSwyLDNdLCBbNCw1LDZdXSwg
bnVsbCk7Ci0KLSAgICBjb25zb2xlLmxvZygiRGlnaXQgYXMgY29sdW1ucyIpOwotICAgIGNvbnNv
bGUudGFibGUoW1sxLDIsM10sIFs0LDUsNl1dLCAwKTsKLQotICAgIGNvbnNvbGUubG9nKCJTdHJp
bmcgYXMgY29sdW1ucyIpOwotICAgIGNvbnNvbGUudGFibGUoW1sxLDIsM10sIFs0LDUsNl1dLCAi
MCIpOwotCi0gICAgY29uc29sZS5sb2coIlJhbmRvbSBzdHJpbmcgYXMgY29sdW1ucyIpOwotICAg
IGNvbnNvbGUudGFibGUoW1sxLDIsM10sIFs0LDUsNl1dLCAiRm9vIik7Ci0KLSAgICBjb25zb2xl
LmxvZygiQXJyYXkgb2Ygc3RyaW5ncyBhcyBjb2x1bW5zIik7Ci0gICAgY29uc29sZS50YWJsZShb
e2E6MSwgYjoyLCBjOjN9LCB7YToiZm9vIiwgYjoiYmFyIn1dLCBbImEiLCAiYiJdKTsKLQotICAg
IGNvbnNvbGUubG9nKCJHb29kIGFuZCBiYWQgY29sdW1uIG5hbWVzIik7Ci0gICAgY29uc29sZS50
YWJsZShbe2E6MSwgYjoyLCBjOjN9LCB7YToiZm9vIn1dLCBbImEiLCAiYiIsICJkIl0pOwotCi0g
ICAgY29uc29sZS5sb2coIk1pc3NpbmcgY29sdW1uIG5hbWUiKTsKLSAgICBjb25zb2xlLnRhYmxl
KFt7YToxLCBiOjIsIGM6M30sIHthOiJmb28ifV0sIFsiZCJdKTsKLX0KLQotZnVuY3Rpb24gb25s
b2FkKCkKLXsKLSAgICBsb2dUb0NvbnNvbGUoKTsKLSAgICBydW5UZXN0KCk7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvZ1RvQ29u
c29sZSgpIiwgY2FsbGJhY2spOwotCi0gICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0K
LTxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgotPHA+Ci1UZXN0cyBjb25zb2xlLnRhYmxlLgotPC9w
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1mb3JtYXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtZm9ybWF0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3YzRj
YjcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1m
b3JtYXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi0vLyBHbG9iYWwgVmFsdWVzCi12
YXIgZ2xvYmFscyA9IFtdOwotCi1mdW5jdGlvbiBvbmxvYWQoKQotewotICAgIHZhciBmb28gPSB7
IGZvbzogImZvbyJ9OwotICAgIHZhciBiYXIgPSB7IGJhcjogImJhciIgfTsKLSAgICBiYXIuX19w
cm90b19fID0gZm9vOwotCi0gICAgdmFyIGFycmF5ID0gWyJ0ZXN0IiwgInRlc3QyIl07IGFycmF5
Lmxlbmd0aCA9IDEwOwotICAgIGFycmF5LmZvbyA9IHt9OyAKLSAgICBhcnJheVs0XSA9ICJ0ZXN0
NCI7Ci0KLSAgICBjb25zb2xlLmxvZyhhcnJheSk7Ci0gICAgY29uc29sZS5sb2coIiVvIiwgYXJy
YXkpOwotICAgIGNvbnNvbGUubG9nKCIlTyIsIGFycmF5KTsKLSAgICBjb25zb2xlLmxvZygiVGVz
dCBmb3IgemVybyBcIiVmXCIgaW4gZm9ybWF0dGVyIiwgMCk7Ci0gICAgLy8gUG9wdWxhdGUgR2xv
YmFscwotICAgIHZhciByZWdleDEgPSAvXnVybFwoXHMqKD86KD86Iig/OlteXFxcIl18KD86XFxb
XGRhLWZdezEsNn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwu
KSkqJyl8KD86WyEjJCUmKi1+XHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqKVxzKlwpL2k7
Ci0gICAgdmFyIHJlZ2V4MiA9IG5ldyBSZWdFeHAoImZvb1xcXFxiYXJcXHNiYXoiLCAiaSIpOwot
ICAgIHZhciBzdHIgPSAidGVzdCI7Ci0gICAgdmFyIHN0cjIgPSAidGVzdCBuYW1lZCBcInRlc3Rc
IiI7Ci0gICAgdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicCIpOwotICAgIHZh
ciBmdW5jID0gZnVuY3Rpb24oKSB7IHJldHVybiAxOyB9OwotICAgIHZhciBtdWx0aWxpbmVmdW5j
ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJldHVybiAyOwotICAgIH07Ci0gICAgdmFyIG51bSA9
IDEuMmUtMTsKLSAgICB2YXIgbGlua2lmeSA9ICJodHRwOi8vd2Via2l0Lm9yZy8iOwotICAgIHZh
ciB2YWx1ZWxlc3NBdHRyaWJ1dGUgPSBkb2N1bWVudC5jcmVhdGVBdHRyaWJ1dGUoImF0dHIiKTsK
LSAgICB2YXIgdmFsdWVkQXR0cmlidXRlID0gZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKCJhdHRy
Iik7Ci0gICAgdmFsdWVkQXR0cmlidXRlLnZhbHVlID0gInZhbHVlIjsKLSAgICB2YXIgZXhpc3Rp
bmdBdHRyaWJ1dGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieCIpLmF0dHJpYnV0ZXNbMF07
Ci0gICAgdmFyIHRocm93aW5nTGVuZ3RoR2V0dGVyID0ge2dldCBsZW5ndGgoKSB7IHRocm93ICJM
ZW5ndGggY2FsbGVkIjsgfX07Ci0KLSAgICBnbG9iYWxzID0gWwotICAgICAgICByZWdleDEsIHJl
Z2V4Miwgc3RyLCBzdHIyLCBub2RlLCBmdW5jLCBtdWx0aWxpbmVmdW5jLCBudW0sIGxpbmtpZnks
Ci0gICAgICAgIG51bGwsIHVuZGVmaW5lZCwgdmFsdWVsZXNzQXR0cmlidXRlLCB2YWx1ZWRBdHRy
aWJ1dGUsIGV4aXN0aW5nQXR0cmlidXRlLCB0aHJvd2luZ0xlbmd0aEdldHRlciwKLSAgICAgICAg
TmFOLCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksIE51bWJlci5ORUdBVElWRV9JTkZJTklUWSwg
YXJyYXksIHt9LCBbZnVuY3Rpb24oKSB7fV0sIGJhciAKLSAgICBdOwotCi0gICAgcnVuVGVzdCgp
OwotfQotCi1mdW5jdGlvbiBsb2coY3VycmVudCkKLXsKLSAgICBjb25zb2xlLmxvZyhnbG9iYWxz
W2N1cnJlbnRdKTsKLSAgICBjb25zb2xlLmxvZyhbZ2xvYmFsc1tjdXJyZW50XV0pOwotfQotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJnbG9i
YWxzLmxlbmd0aCIsIGxvb3BPdmVyR2xvYmFscy5iaW5kKHRoaXMsIDApKTsKLQotICAgIGZ1bmN0
aW9uIGxvb3BPdmVyR2xvYmFscyhjdXJyZW50LCB0b3RhbCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0
aW9uIGFkdmFuY2UoKQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgbmV4dCA9IGN1cnJlbnQg
KyAxOwotICAgICAgICAgICAgaWYgKG5leHQgPT0gdG90YWwuZGVzY3JpcHRpb24pIHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZENvbnNvbGVNZXNzYWdlcygpOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgICAgICBsb29wT3Zlckdsb2JhbHMobmV4dCwgdG90YWwpOwotICAgICAgICB9
Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9nKCIgKyBjdXJyZW50
ICsgIikiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVz
KGV2YWxJbkNvbnNvbGUpOwotICAgICAgICBmdW5jdGlvbiBldmFsSW5Db25zb2xlKCkKLSAgICAg
ICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgiZ2xvYmFs
c1siICsgY3VycmVudCArICJdIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVy
UGVuZGluZ0Rpc3BhdGNoZXMoYWR2YW5jZSk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Ci08ZGl2IGlkPSJ4Ij48L2Rp
dj4KLTxwIGlkPSJwIj5UZXN0cyB0aGF0IGNvbnNvbGUgbG9nZ2luZyBkdW1wcyBwcm9wZXIgbWVz
c2FnZXMuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1sYXN0LXJlc3VsdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxhc3QtcmVzdWx0LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwZGNlNi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxhc3QtcmVzdWx0LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotVGVzdHMgdGhhdCBjb25zb2xlIGV4cG9z
ZXMgbGFzdCBldmFsdWF0aW9uIHJlc3VsdCBhcyAkXy4KLQotMSsxCi0yCi0kXwotMgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxhc3QtcmVzdWx0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxhc3QtcmVzdWx0
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc0NjQ1ODcuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sYXN0LXJlc3VsdC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoIjErMSIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9u
IHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUo
IiRfIiwgY2FsbGJhY2spOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICB7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotICAgIFRlc3RzIHRoYXQgY29u
c29sZSBleHBvc2VzIGxhc3QgZXZhbHVhdGlvbiByZXN1bHQgYXMgJF8uCi08L3A+Ci0KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtbG9nLWJlZm9yZS1pbnNwZWN0b3Itb3Blbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy1iZWZvcmUtaW5zcGVjdG9yLW9wZW4tZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNGNiNmVlLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLWJlZm9yZS1p
bnNwZWN0b3Itb3Blbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogbG9nCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODog
ZGVidWcKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiBpbmZvCi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTA6IHdhcm4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMTogZXJyb3IKLVRlc3RzIHRoYXQg
V2ViIEluc3BlY3RvciB3b24ndCBjcmFzaCBpZiBzb21lIGNvbnNvbGUgaGF2ZSBiZWVuIGxvZ2dl
ZCBieSB0aGUgdGltZSBpdCdzIG9wZW5pbmcuCi0KLWxvZyBjb25zb2xlLWxvZy1iZWZvcmUtaW5z
cGVjdG9yLW9wZW4uaHRtbDo3Ci1kZWJ1ZyBjb25zb2xlLWxvZy1iZWZvcmUtaW5zcGVjdG9yLW9w
ZW4uaHRtbDo4Ci1pbmZvIGNvbnNvbGUtbG9nLWJlZm9yZS1pbnNwZWN0b3Itb3Blbi5odG1sOjkK
LXdhcm4gY29uc29sZS1sb2ctYmVmb3JlLWluc3BlY3Rvci1vcGVuLmh0bWw6MTAKLWVycm9yIGNv
bnNvbGUtbG9nLWJlZm9yZS1pbnNwZWN0b3Itb3Blbi5odG1sOjExCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLWJlZm9yZS1pbnNwZWN0b3It
b3Blbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb2ctYmVm
b3JlLWluc3BlY3Rvci1vcGVuLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRh
MDA0MmEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29s
ZS1sb2ctYmVmb3JlLWluc3BlY3Rvci1vcGVuLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LQotY29uc29sZS5sb2coJ2xvZycpOwotY29uc29sZS5kZWJ1ZygnZGVidWcnKTsKLWNvbnNvbGUu
aW5mbygnaW5mbycpOwotY29uc29sZS53YXJuKCd3YXJuJyk7Ci1jb25zb2xlLmVycm9yKCdlcnJv
cicpOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xl
TWVzc2FnZXMoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0
aGF0IFdlYiBJbnNwZWN0b3Igd29uJ3QgY3Jhc2ggaWYgc29tZSBjb25zb2xlIGhhdmUgYmVlbiBs
b2dnZWQgYnkgdGhlIHRpbWUgaXQncyBvcGVuaW5nLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy1k
b2N1bWVudC1wcm90by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWxvZy1kb2N1bWVudC1wcm90by1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGQ2MDgxYzMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS1sb2ctZG9jdW1lbnQtcHJvdG8tZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogW29iamVj
dCBIVE1MRG9jdW1lbnRQcm90b3R5cGVdCi1UZXN0IHRoYXQgY29uc29sZS5kaXIoZG9jdW1lbnQu
X19wcm90b19fKSB3b24ndCByZXN1bHQgaW4gYW4gZXhjZXB0aW9uIHdoZW4gdGhlIG1lc3NhZ2Ug
aXMgZm9ybWF0dGVkIGluIHRoZSBpbnNwZWN0b3IuQnVnIDI3MTY5LgotCi1IVE1MRG9jdW1lbnRQ
cm90b3R5cGUgY29uc29sZS1sb2ctZG9jdW1lbnQtcHJvdG8uaHRtbDo2Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLWRvY3VtZW50LXByb3Rv
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy1kb2N1bWVu
dC1wcm90by5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNjM5YzQ3Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLWRvY3Vt
ZW50LXByb3RvLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9jb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWNvbnNvbGUuZGlyKGRvY3Vt
ZW50Ll9fcHJvdG9fXyk7Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3Qu
ZHVtcENvbnNvbGVNZXNzYWdlcygpOwotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgot
VGVzdCB0aGF0IGNvbnNvbGUuZGlyKGRvY3VtZW50Ll9fcHJvdG9fXykgd29uJ3QgcmVzdWx0IGlu
IGFuIGV4Y2VwdGlvbiB3aGVuIHRoZSBtZXNzYWdlCi1pcyBmb3JtYXR0ZWQgaW4gdGhlIGluc3Bl
Y3Rvci48YSBidWc9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzE2
OSI+QnVnICAyNzE2OS48L2E+Ci08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy1uYXRpdmUtZnVuY3MtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb2ctbmF0
aXZlLWZ1bmNzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGE3
OTIxZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LWxvZy1uYXRpdmUtZnVuY3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAs
MCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IFtvYmplY3QgRG9jdW1lbnRDb25zdHJ1Y3Rv
cl0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogZnVuY3Rpb24gY3JlYXRlRWxlbWVudCgpIHsK
LSAgICBbbmF0aXZlIGNvZGVdCi19Ci1UZXN0cyB0aGF0IGNvbnNvbGUgbG9nZ2luZyBkdW1wcyBw
cm9wZXIgbWVzc2FnZXMuCi0KLWNvbnNvbGUtbG9nLW5hdGl2ZS1mdW5jcy5odG1sOjlEb2N1bWVu
dENvbnN0cnVjdG9yIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWpzLXNvdXJjZSBjb25zb2xlLWxv
Zy1sZXZlbAotY29uc29sZS1sb2ctbmF0aXZlLWZ1bmNzLmh0bWw6MTBmdW5jdGlvbiBjcmVhdGVF
bGVtZW50KCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0gY29uc29sZS1tZXNzYWdlIGNvbnNvbGUt
anMtc291cmNlIGNvbnNvbGUtbG9nLWxldmVsCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy1zeW50YXgtZXJyb3ItZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYmY5NjkxLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLXN5bnRheC1l
cnJvci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKScKLVRlc3Rz
IHRoYXQgc3ludGF4IGVycm9ycyBhcmUgbG9nZ2VkIGludG8gY29uc29sZSBhbmQgZG9lc24ndCBj
YXVzZSBicm93c2VyIGNyYXNoLgotCi1TeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKScg
c3ludGF4LWVycm9yLmpzOjEKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1sb2ctc3ludGF4LWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29uc29sZS9jb25zb2xlLWxvZy1zeW50YXgtZXJyb3IuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTY3ZDdhNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29uc29sZS9jb25zb2xlLWxvZy1zeW50YXgtZXJyb3IuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDE5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N5bnRheC1lcnJvci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3Nh
Z2VzKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHN5bnRh
eCBlcnJvcnMgYXJlIGxvZ2dlZCBpbnRvIGNvbnNvbGUgYW5kIGRvZXNuJ3QgY2F1c2UgYnJvd3Nl
ciBjcmFzaC4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLXRvU3RyaW5nLW9iamVjdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy10b1N0cmluZy1v
YmplY3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTIyN2Vj
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9n
LXRvU3RyaW5nLW9iamVjdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAg
QEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiAK
LVRlc3RzIHRoYXQgcGFzc2luZyBhbiBvYmplY3Qgd2hpY2ggdGhyb3dzIG9uIHN0cmluZyBjb252
ZXJzaW9uIGludG8gY29uc29sZS5sb2cgd29uJ3QgY3Jhc2ggaW5zcGVjdGVkIFBhZ2UuIFRoZSB0
ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoLiBCdWcgNTc1NTcKLQotUGFnZSByZWxvYWRl
ZC4KLU9iamVjdCB7dG9TdHJpbmc6IE9iamVjdH0gY29uc29sZS1sb2ctdG9TdHJpbmctb2JqZWN0
Lmh0bWw6NwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWxvZy10b1N0cmluZy1vYmplY3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtbG9nLXRvU3RyaW5nLW9iamVjdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5OTg2ODk0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtbG9nLXRvU3RyaW5nLW9iamVjdC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMjUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLWNvbnNvbGUubG9nKHt0b1N0cmluZzp7fX0pOwotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoZnVuY3Rpb24oKSB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgIH0pOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgcGFzc2luZyBhbiBvYmplY3Qgd2hp
Y2ggdGhyb3dzIG9uIHN0cmluZyBjb252ZXJzaW9uIGludG8gY29uc29sZS5sb2cgd29uJ3QgY3Jh
c2gKLWluc3BlY3RlZCBQYWdlLiBUaGUgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4K
LTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzU1NyI+
QnVnIDU3NTU3PC9hPgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb25nLWV2YWwtY3Jhc2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb25nLWV2YWwtY3Jh
c2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjc3N2VkLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9uZy1l
dmFsLWNyYXNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVz
dCB0aGF0IGFueSBsb25nIGFwaSBjYWxsIGZyb20gdGhlIGZyb250ZW5kIHdpbGwgbm90IGNyYXNo
IHRoZSBpbnNwZWN0ZWQgcGFnZSdzIHJlbmRlcmVyIGlmIHRoZSBwYWdlIGlzIHJlbG9hZGVkIG9y
IGZyb250ZW5kIGlzIGNsb3NlZCBpbiB0aGUgbWlkZGxlLgotCi1odHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2MTYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtbG9uZy1ldmFsLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvbmctZXZhbC1jcmFzaC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4N2I0ZmFjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9uZy1ldmFsLWNyYXNoLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLQotdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOwotCi1mdW5jdGlv
biBkb0RpYWxvZygpCi17Ci0gICAgdGVzdFJ1bm5lci5jbG9zZVdlYkluc3BlY3RvcigpOwotICAg
IHNob3dNb2RhbERpYWxvZygnZGF0YTp0ZXh0L2h0bWwsPHNjcmlwdD5zZXRUaW1lb3V0KGNsb3Nl
LCAwKTslM2Mvc2NyaXB0PicpOwotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTt9LCAwKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgUnVudGlt
ZUFnZW50LmV2YWx1YXRlKCJkb0RpYWxvZygpIik7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3QgdGhhdCBhbnkgbG9uZyBhcGkg
Y2FsbCBmcm9tIHRoZSBmcm9udGVuZCB3aWxsIG5vdCBjcmFzaCB0aGUgaW5zcGVjdGVkIHBhZ2Un
cyByZW5kZXJlciBpZiB0aGUgcGFnZSBpcyByZWxvYWRlZCBvciBmcm9udGVuZCBpcyBjbG9zZWQg
aW4gdGhlIG1pZGRsZS4KLTwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MDYxNiI+aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwNjE2PC9hPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW1lc3NhZ2UtZm9ybWF0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbWVzc2FnZS1mb3JtYXQtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMGVhZWNmLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbWVzc2FnZS1mb3Jt
YXQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDk6IE1lc3NhZ2UgZm9ybWF0IG51bWJlciAlaSwgJWQgYW5kICVmCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTA6IE1lc3NhZ2UgJXMgZm9yICVzCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTE6IE9iamVjdCAlbwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBGbG9hdGluZyBh
cyBpbnRlZ2VyczogJWQgJWkKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzogRmxvYXRpbmcgYXMg
aXM6ICVmCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IE5vbi1udW1iZXJzIGFzIG51bWJlcnM6
ICVkICVpICVmCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU6IFN0cmluZyBhcyBpczogJXMKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxNjogT2JqZWN0IGFzIHN0cmluZzogJXMKLVRlc3RzIHRoYXQg
Y29uc29sZSBsb2dnaW5nIHVzZXMgcHJvcGVyIG1lc3NhZ2UgZm9ybWF0dGluZy4KLQotTWVzc2Fn
ZSBmb3JtYXQgbnVtYmVyIDEsIDIgYW5kIDMuNSBjb25zb2xlLW1lc3NhZ2UtZm9ybWF0Lmh0bWw6
OQotTWVzc2FnZSBmb3JtYXQgZm9yIHN0cmluZyBjb25zb2xlLW1lc3NhZ2UtZm9ybWF0Lmh0bWw6
MTAKLU9iamVjdCBPYmplY3QgY29uc29sZS1tZXNzYWdlLWZvcm1hdC5odG1sOjExCi1GbG9hdGlu
ZyBhcyBpbnRlZ2VyczogNDIgNDIgY29uc29sZS1tZXNzYWdlLWZvcm1hdC5odG1sOjEyCi1GbG9h
dGluZyBhcyBpczogNDIuNSBjb25zb2xlLW1lc3NhZ2UtZm9ybWF0Lmh0bWw6MTMKLU5vbi1udW1i
ZXJzIGFzIG51bWJlcnM6IE5hTiBOYU4gTmFOIGNvbnNvbGUtbWVzc2FnZS1mb3JtYXQuaHRtbDox
NAotU3RyaW5nIGFzIGlzOiBzdHJpbmcgY29uc29sZS1tZXNzYWdlLWZvcm1hdC5odG1sOjE1Ci1P
YmplY3QgYXMgc3RyaW5nOiAjZG9jdW1lbnQgY29uc29sZS1tZXNzYWdlLWZvcm1hdC5odG1sOjE2
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbWVz
c2FnZS1mb3JtYXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
bWVzc2FnZS1mb3JtYXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODhlNGEz
OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW1l
c3NhZ2UtZm9ybWF0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gb25s
b2FkKCkKLXsKLSAgICBjb25zb2xlLmxvZygnTWVzc2FnZSBmb3JtYXQgbnVtYmVyICVpLCAlZCBh
bmQgJWYnLCAxLCAyLCAzLjUpOwotICAgIGNvbnNvbGUubG9nKCdNZXNzYWdlICVzIGZvciAlcycs
ICdmb3JtYXQnLCAnc3RyaW5nJyk7Ci0gICAgY29uc29sZS5sb2coJ09iamVjdCAlbycsIHsnZm9v
JyA6ICdiYXInIH0pOwotICAgIGNvbnNvbGUubG9nKCJGbG9hdGluZyBhcyBpbnRlZ2VyczogJWQg
JWkiLCA0Mi41LCA0Mi41KTsKLSAgICBjb25zb2xlLmxvZygiRmxvYXRpbmcgYXMgaXM6ICVmIiwg
NDIuNSk7Ci0gICAgY29uc29sZS5sb2coIk5vbi1udW1iZXJzIGFzIG51bWJlcnM6ICVkICVpICVm
IiwgZG9jdW1lbnQsIG51bGwsICJkb2N1bWVudCIpOwotICAgIGNvbnNvbGUubG9nKCJTdHJpbmcg
YXMgaXM6ICVzIiwgInN0cmluZyIpOwotICAgIGNvbnNvbGUubG9nKCJPYmplY3QgYXMgc3RyaW5n
OiAlcyIsIGRvY3VtZW50KTsKLQotICAgIHJ1blRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgSW5zcGVjdG9yVGVzdC5leHBhbmRDb25zb2xlTWVzc2FnZXMoKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ib25sb2Fk
KCkiPgotPHAgaWQ9InAiPlRlc3RzIHRoYXQgY29uc29sZSBsb2dnaW5nIHVzZXMgcHJvcGVyIG1l
c3NhZ2UgZm9ybWF0dGluZy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW1lc3NhZ2VzLXN0YWNrLXRyYWNlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW1lc3Nh
Z2VzLXN0YWNrLXRyYWNlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRmYTcxYmUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1tZXNzYWdlcy1zdGFjay10cmFjZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OiBsb2cKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxNzogaW5mbwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiB3YXJuCi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IGRlYnVnCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjA6
IGVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjE6IGFzc2VydAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDIyOiB0cmFjZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzOiAxLDIsMwotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDI0OiBbb2JqZWN0IEhUTUxCb2R5RWxlbWVudF0KLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAzMDogTUFSS0VSOiBFWFBFQ1QgTk8gU1RBQ0sgVFJBQ0VTCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMzQ6IE1BUktFUjogRE9ORQotVGVzdHMgdGhhdCBjb25zb2xlLWFwaSBtZXNz
YWdlcyBjb250YWluIHN0YWNrIHRyYWNlcy4KLQotU1VDQ0VTUwotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW1lc3NhZ2VzLXN0YWNrLXRyYWNlcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1tZXNzYWdlcy1zdGFj
ay10cmFjZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJjNmY4Ny4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW1lc3NhZ2Vz
LXN0YWNrLXRyYWNlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHBl
cmZvcm1Db25zb2xlTWVzc2FnZXMoKSB7Ci0gICAgLy8gTm8gY29uc29sZSBtZXNzYWdlLgotICAg
IGNvbnNvbGUudGltZVN0YW1wKCk7Ci0KLSAgICAvLyBFeHBlY3RlZCB0byBoYXZlIHN0YWNrIHRy
YWNlcy4KLSAgICBjb25zb2xlLnRpbWUoInRpbWUiKTsgLy8gTm90aGluZyB1bnRpbCB0aW1lRW5k
LgotICAgIGNvbnNvbGUuY2xlYXIoKTsKLSAgICBjb25zb2xlLmdyb3VwKCJncm91cCIpOwotICAg
IGNvbnNvbGUucHJvZmlsZSgicHJvZmlsZSIpOwotICAgIGNvbnNvbGUubG9nKCJsb2ciKTsKLSAg
ICBjb25zb2xlLmluZm8oImluZm8iKTsKLSAgICBjb25zb2xlLndhcm4oIndhcm4iKTsKLSAgICBj
b25zb2xlLmVycm9yKCJkZWJ1ZyIpOwotICAgIGNvbnNvbGUuZXJyb3IoImVycm9yIik7Ci0gICAg
Y29uc29sZS5hc3NlcnQoZmFsc2UsICJhc3NlcnQiKTsKLSAgICBjb25zb2xlLnRyYWNlKCJ0cmFj
ZSIpOwotICAgIGNvbnNvbGUuZGlyKFsxLDIsM10pOwotICAgIGNvbnNvbGUuZGlyeG1sKGRvY3Vt
ZW50LmJvZHkpOwotICAgIGNvbnNvbGUuY291bnQoImNvdW50Iik7Ci0gICAgY29uc29sZS5wcm9m
aWxlRW5kKCJwcm9maWxlIik7Ci0gICAgY29uc29sZS50aW1lRW5kKCJ0aW1lIik7Ci0KLSAgICAv
LyBOb3QgZXhwZWN0ZWQgdG8gaGF2ZSBzdGFjayB0cmFjZXMuCi0gICAgY29uc29sZS5sb2coIk1B
UktFUjogRVhQRUNUIE5PIFNUQUNLIFRSQUNFUyIpOwotICAgIGNvbnNvbGUuZ3JvdXBFbmQoImdy
b3VwIik7Ci0KLSAgICAvLyBFbmQgdGhlIHRlc3QKLSAgICBjb25zb2xlLmxvZygiTUFSS0VSOiBE
T05FIik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuYWRkU25p
ZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZURpc3BhdGNoZXIucHJvdG90eXBlLCAibWVzc2FnZUFk
ZGVkIiwgbWVzc2FnZUFkZGVkLCB0cnVlKTsKLQotICAgIHZhciBoYWRJc3N1ZSA9IGZhbHNlOwot
ICAgIHZhciBleHBlY3RTdGFja1RyYWNlcyA9IHRydWU7Ci0KLSAgICBmdW5jdGlvbiBtZXNzYWdl
QWRkZWQocGF5bG9hZCkKLSAgICB7Ci0gICAgICAgIGlmIChwYXlsb2FkLmxldmVsID09PSAibG9n
IikgewotICAgICAgICAgICAgaWYgKHBheWxvYWQudGV4dCA9PT0gIk1BUktFUjogRE9ORSIpIHsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChoYWRJc3N1ZSA/ICJGQUlM
VVJFIiA6ICJTVUNDRVNTIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAocGF5bG9hZC50ZXh0ID09PSAiTUFSS0VSOiBFWFBFQ1QgTk8gU1RBQ0sgVFJBQ0VT
IikgewotICAgICAgICAgICAgICAgIGV4cGVjdFN0YWNrVHJhY2VzID0gZmFsc2U7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgdmFy
IHVybCA9IHBheWxvYWQudXJsOwotICAgICAgICB2YXIgbGFzdFNsYXNoSW5kZXggPSB1cmwubGFz
dEluZGV4T2YoIi8iKTsKLSAgICAgICAgdXJsID0gdXJsLnN1YnN0cmluZyhsYXN0U2xhc2hJbmRl
eCArIDEpOwotCi0gICAgICAgIGlmICgic3RhY2tUcmFjZSIgaW4gcGF5bG9hZCAmJiAhZXhwZWN0
U3RhY2tUcmFjZXMpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVbmV4
cGVjdGVkIHN0YWNrIHRyYWNlIGZvcjogIiArIEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTsKLSAg
ICAgICAgICAgIGhhZElzc3VlID0gdHJ1ZTsKLSAgICAgICAgfSBlbHNlIGlmICghKCJzdGFja1Ry
YWNlIiBpbiBwYXlsb2FkKSAmJiBleHBlY3RTdGFja1RyYWNlcykgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV4cGVjdGVkIHN0YWNrIHRyYWNlIGZvcjogIiArIEpTT04u
c3RyaW5naWZ5KHBheWxvYWQpKTsKLSAgICAgICAgICAgIGhhZElzc3VlID0gdHJ1ZTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInBlcmZvcm1D
b25zb2xlTWVzc2FnZXMoKSIpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBjb25zb2xlLWFwaSBtZXNzYWdlcyBjb250
YWluIHN0YWNrIHRyYWNlcy48L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbmF0aXZlLWZ1bmN0aW9uLXRvLXN0
cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LW5hdGl2ZS1mdW5jdGlvbi10by1zdHJpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmM2IwMzc4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtbmF0aXZlLWZ1bmN0aW9uLXRvLXN0cmluZy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi1UZXN0cyB0aGF0IGNvbW1hbmQtbGluZSBB
UEkgbWV0aG9kcyBiZWhhdmUgc2ltaWxhcmx5IHRvIG5hdGl2ZSBjb2RlIGJ5IHJldHVybmluZyAn
W1dlYkluc3BlY3RvciBjb25zb2xlIGZ1bmN0aW9uXScgdmlhIHRvU3RyaW5nKCkuCi0KLQotCi0k
Ci1mdW5jdGlvbiAkKCkgeyBbQ29tbWFuZCBMaW5lIEFQSV0gfQotCi0KLSQkCi1mdW5jdGlvbiAk
JCgpIHsgW0NvbW1hbmQgTGluZSBBUEldIH0KLQotCi0keAotZnVuY3Rpb24gJHgoKSB7IFtDb21t
YW5kIExpbmUgQVBJXSB9Ci0KLQotZGlyCi1mdW5jdGlvbiBkaXIoKSB7IFtDb21tYW5kIExpbmUg
QVBJXSB9Ci0KLQotZGlyeG1sCi1mdW5jdGlvbiBkaXJ4bWwoKSB7IFtDb21tYW5kIExpbmUgQVBJ
XSB9Ci0KLQota2V5cwotZnVuY3Rpb24ga2V5cygpIHsgW0NvbW1hbmQgTGluZSBBUEldIH0KLQot
Ci12YWx1ZXMKLWZ1bmN0aW9uIHZhbHVlcygpIHsgW0NvbW1hbmQgTGluZSBBUEldIH0KLQotCi1w
cm9maWxlCi1mdW5jdGlvbiBwcm9maWxlKCkgeyBbQ29tbWFuZCBMaW5lIEFQSV0gfQotCi0KLXBy
b2ZpbGVFbmQKLWZ1bmN0aW9uIHByb2ZpbGVFbmQoKSB7IFtDb21tYW5kIExpbmUgQVBJXSB9Ci0K
LQotbW9uaXRvckV2ZW50cwotZnVuY3Rpb24gbW9uaXRvckV2ZW50cygpIHsgW0NvbW1hbmQgTGlu
ZSBBUEldIH0KLQotCi11bm1vbml0b3JFdmVudHMKLWZ1bmN0aW9uIHVubW9uaXRvckV2ZW50cygp
IHsgW0NvbW1hbmQgTGluZSBBUEldIH0KLQotCi1pbnNwZWN0Ci1mdW5jdGlvbiBpbnNwZWN0KCkg
eyBbQ29tbWFuZCBMaW5lIEFQSV0gfQotCi0KLWNvcHkKLWZ1bmN0aW9uIGNvcHkoKSB7IFtDb21t
YW5kIExpbmUgQVBJXSB9Ci0KLQotY2xlYXIKLWZ1bmN0aW9uIGNsZWFyKCkgeyBbQ29tbWFuZCBM
aW5lIEFQSV0gfQotCi0KLWdldEV2ZW50TGlzdGVuZXJzCi1mdW5jdGlvbiBnZXRFdmVudExpc3Rl
bmVycygpIHsgW0NvbW1hbmQgTGluZSBBUEldIH0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1uYXRpdmUtZnVuY3Rpb24tdG8tc3RyaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW5hdGl2ZS1mdW5jdGlvbi10
by1zdHJpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzIxY2IxMy4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW5hdGl2ZS1m
dW5jdGlvbi10by1zdHJpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHZhciBleHByZXNzaW9ucyA9IFsKLSAgICAgICAgICAgICAgICAiJCIs
ICIkJCIsICIkeCIsICJkaXIiLCAiZGlyeG1sIiwgImtleXMiLCAidmFsdWVzIiwgInByb2ZpbGUi
LCAicHJvZmlsZUVuZCIsCi0gICAgICAgICAgICAgICAgIm1vbml0b3JFdmVudHMiLCAidW5tb25p
dG9yRXZlbnRzIiwgImluc3BlY3QiLCAiY29weSIsICJjbGVhciIsICJnZXRFdmVudExpc3RlbmVy
cyIKLSAgICAgICAgICAgIF07Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGV4ZWN1dGVFeHByZXNz
aW9uKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoIWV4cHJlc3Npb25zLmxl
bmd0aCkgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVz
c2FnZXMoKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB2YXIgZXhwcmVzc2lvbiA9IGV4cHJlc3Npb25zWzBdOwotICAgICAgICAgICAg
ICAgIGV4cHJlc3Npb25zLnNwbGljZSgwLCAxKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IubG9nKCJcbiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNv
bnNvbGUoZXhwcmVzc2lvbiwgZXhlY3V0ZUV4cHJlc3Npb24pOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBleGVjdXRlRXhwcmVzc2lvbigpOwotICAgICAgICB9Ci0gICAgPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+VGVzdHMgdGhhdCBj
b21tYW5kLWxpbmUgQVBJIG1ldGhvZHMgYmVoYXZlIHNpbWlsYXJseSB0byBuYXRpdmUgY29kZSBi
eSByZXR1cm5pbmcgJ1tXZWJJbnNwZWN0b3IgY29uc29sZSBmdW5jdGlvbl0nIHZpYSB0b1N0cmlu
ZygpLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtbmVzdGVkLWdyb3VwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbmVzdGVkLWdyb3VwLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWYxMzk1OC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW5lc3RlZC1ncm91cC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTE6IE1lc3NhZ2UgaW5zaWRlIGlubmVyIGdyb3VwCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6
IE1lc3NhZ2UgdGhhdCBtdXN0IG5vdCBiZSBpbiBhbnkgZ3JvdXAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAyMTogTWVzc2FnZSBpbnNpZGUgdGhpcmQgZ3JvdXAKLVRlc3RzIHRoYXQgY29uc29sZS5n
cm91cC9ncm91cEVuZCBtZXNzYWdlcyB3b24ndCBiZSBjb2FsZXNjZWQuIEJ1ZyA1NjExNC4gQnVn
IDYzNTIxLgotCi1vdXRlciBncm91cCBjb25zb2xlLW5lc3RlZC1ncm91cC5odG1sOjkgY29uc29s
ZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVsIGNvbnNvbGUtZ3JvdXAtdGl0bGUKLWlubmVyIGdy
b3VwIGNvbnNvbGUtbmVzdGVkLWdyb3VwLmh0bWw6MTAgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUt
bG9nLWxldmVsIGNvbnNvbGUtZ3JvdXAtdGl0bGUKLU1lc3NhZ2UgaW5zaWRlIGlubmVyIGdyb3Vw
IGNvbnNvbGUtbmVzdGVkLWdyb3VwLmh0bWw6MTEgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtbG9n
LWxldmVsCi0gY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVsCi0gY29uc29sZS1tZXNz
YWdlIGNvbnNvbGUtbG9nLWxldmVsCi1NZXNzYWdlIHRoYXQgbXVzdCBub3QgYmUgaW4gYW55IGdy
b3VwIGNvbnNvbGUtbmVzdGVkLWdyb3VwLmh0bWw6MTQgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUt
bG9nLWxldmVsCi1PbmUgb2Ygc2V2ZXJhbCBncm91cHMgd2hpY2ggc2hvdWxkbid0IGJlIGNvYWxl
c2NlZC4gY29uc29sZS1uZXN0ZWQtZ3JvdXAuaHRtbDoxOSBjb25zb2xlLW1lc3NhZ2UgY29uc29s
ZS1sb2ctbGV2ZWwgY29uc29sZS1ncm91cC10aXRsZQotT25lIG9mIHNldmVyYWwgZ3JvdXBzIHdo
aWNoIHNob3VsZG4ndCBiZSBjb2FsZXNjZWQuIGNvbnNvbGUtbmVzdGVkLWdyb3VwLmh0bWw6MTkg
Y29uc29sZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVsIGNvbnNvbGUtZ3JvdXAtdGl0bGUKLU9u
ZSBvZiBzZXZlcmFsIGdyb3VwcyB3aGljaCBzaG91bGRuJ3QgYmUgY29hbGVzY2VkLiBjb25zb2xl
LW5lc3RlZC1ncm91cC5odG1sOjE5IGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbCBj
b25zb2xlLWdyb3VwLXRpdGxlCi1NZXNzYWdlIGluc2lkZSB0aGlyZCBncm91cCBjb25zb2xlLW5l
c3RlZC1ncm91cC5odG1sOjIxIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbAotIGNv
bnNvbGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbAotIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xl
LWxvZy1sZXZlbAotIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW5lc3RlZC1ncm91cC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1uZXN0ZWQtZ3JvdXAu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY1ZjJhOS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW5lc3RlZC1ncm91cC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIG9ubG9hZCgpCi17Ci0gICAgY29u
c29sZS5ncm91cCgib3V0ZXIgZ3JvdXAiKTsKLSAgICBjb25zb2xlLmdyb3VwKCJpbm5lciBncm91
cCIpOwotICAgIGNvbnNvbGUubG9nKCJNZXNzYWdlIGluc2lkZSBpbm5lciBncm91cCIpOwotICAg
IGNvbnNvbGUuZ3JvdXBFbmQoKTsKLSAgICBjb25zb2xlLmdyb3VwRW5kKCk7Ci0gICAgY29uc29s
ZS5sb2coIk1lc3NhZ2UgdGhhdCBtdXN0IG5vdCBiZSBpbiBhbnkgZ3JvdXAiKTsKLQotCi0gICAg
dmFyIGdyb3VwQ291bnQgPSAzOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZ3JvdXBDb3VudDsg
aSsrKSB7Ci0gICAgICAgIGNvbnNvbGUuZ3JvdXAoIk9uZSBvZiBzZXZlcmFsIGdyb3VwcyB3aGlj
aCBzaG91bGRuJ3QgYmUgY29hbGVzY2VkLiIpOwotICAgIH0KLSAgICBjb25zb2xlLmxvZygiTWVz
c2FnZSBpbnNpZGUgdGhpcmQgZ3JvdXAiKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdyb3Vw
Q291bnQ7IGkrKykgewotICAgICAgICBjb25zb2xlLmdyb3VwRW5kKCk7Ci0gICAgfQotCi0gICAg
cnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmR1
bXBDb25zb2xlTWVzc2FnZXNXaXRoQ2xhc3NlcygpOwotICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJvbmxvYWQo
KSI+Ci08cD4KLVRlc3RzIHRoYXQgY29uc29sZS5ncm91cC9ncm91cEVuZCBtZXNzYWdlcyB3b24n
dCBiZSBjb2FsZXNjZWQuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NjExNCI+QnVnIDU2MTE0LjwvYT4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUyMSI+QnVnIDYzNTIxLjwvYT4KLQotPC9wPgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtb2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjM2E5Yjg0Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtb2JqZWN0LWNvbnN0
cnVjdG9yLW5hbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6IFtvYmplY3QgT2JqZWN0XQotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDEyOiBbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzogW29i
amVjdCBPYmplY3RdCi1UZXN0cyB0aGF0IHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiBpbnZva2Vk
IGFzIG9iamVjdCBjb25zdHJ1Y3RvciB3aWxsIGJlIGRpc3BsYXllZCBhcyBpdHMgdHlwZSBpbiB0
aGUgZnJvbnQtZW5kLiBCdWcgNTAwNjMuCi0KLVBhcmVudCBjb25zb2xlLW9iamVjdC1jb25zdHJ1
Y3Rvci1uYW1lLmh0bWw6MTEKLVBhcmVudCBjb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1l
Lmh0bWw6MTIKLU9iamVjdCBjb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLmh0bWw6MTMK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1vYmpl
Y3QtY29uc3RydWN0b3ItbmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiOTM0ZmZlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtb2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDMyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBQYXJlbnQoKSB7IH0KLWZ1bmN0aW9uIENoaWxkKCkgeyB9
Ci1DaGlsZC5wcm90b3R5cGUgPSBuZXcgUGFyZW50KCk7Ci12YXIgb3V0ZXIgPSB7IGlubmVyOiBm
dW5jdGlvbigpIHsgfSB9OwotY29uc29sZS5sb2cobmV3IFBhcmVudCgpKTsKLWNvbnNvbGUubG9n
KG5ldyBDaGlsZCgpKTsKLWNvbnNvbGUubG9nKG5ldyBvdXRlci5pbm5lcigpKTsKLQotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5leHBhbmRDb25zb2xlTWVzc2FnZXMoKTsK
LSAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlv
biBpbnZva2VkIGFzIG9iamVjdCBjb25zdHJ1Y3RvciB3aWxsIGJlIGRpc3BsYXllZCBhcyBpdHMg
dHlwZSBpbiB0aGUgZnJvbnQtZW5kLgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUwMDYzIj5CdWcgNTAwNjMuPC9hPgotPC9wPgotCi08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LW9iamVjdC1wcmV2aWV3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtb2JqZWN0LXByZXZpZXctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3ZjU4NTY0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtb2JqZWN0LXByZXZpZXctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMzkgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IE11dGF0aW5nIG9i
amVjdCBpbiBhIGxvb3AKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzogW29iamVjdCBPYmplY3Rd
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IFtvYmplY3QgT2JqZWN0XQotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDEzOiBbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNjog
TXV0YXRpbmcgYXJyYXkgaW4gYSBsb29wCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjA6IDAsMCww
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjA6IDAsMCwxCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
MjA6IDAsMCwyCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjM6IE9iamVjdCB3aXRoIG1hbnkgcHJv
cGVydGllcwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI4OiBbb2JqZWN0IE9iamVjdF0KLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAzMDogQXJyYXkgd2l0aCBtYW55IHByb3BlcnRpZXMKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAzNTogMCwxCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzc6IE9iamVjdCB3
aXRoIHByb3RvCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6IFtvYmplY3QgT2JqZWN0XQotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDQyOiBTcGFyc2UgYXJyYXkKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA0NTogLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCw1
MCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCws
LCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDQ3OiBEZW5zZSBhcnJheSB3aXRoIGluZGV4ZXMgYW5kIHByb3BldGllcwotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDUzOiAwLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0
LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMz
LDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUy
LDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDY1LDY2LDY3LDY4LDY5LDcwLDcx
LDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkw
LDkxLDkyLDkzLDk0LDk1LDk2LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywxMDQsMTA1LDEwNiwx
MDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEy
MSwxMjIsMTIzLDEyNCwxMjUsMTI2LDEyNywxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1
LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDkK
LVRlc3RzIHRoYXQgY29uc29sZSBwcm9kdWNlcyBpbnN0YW50IHByZXZpZXdzIGZvciBhcnJheXMg
YW5kIG9iamVjdHMuCi0KLU11dGF0aW5nIG9iamVjdCBpbiBhIGxvb3AgY29uc29sZS1vYmplY3Qt
cHJldmlldy5odG1sOjkgY29uc29sZS1tZXNzYWdlLXRleHQgc291cmNlLWNvZGUgPiBjb25zb2xl
LW1lc3NhZ2UtdXJsIHdlYmtpdC1odG1sLXJlc291cmNlLWxpbmsKLU9iamVjdCB7YTogMCwgYjog
MCwgYzogMH0gY29uc29sZS1vYmplY3QtcHJldmlldy5odG1sOjEzIGNvbnNvbGUtbWVzc2FnZS10
ZXh0IHNvdXJjZS1jb2RlID4gY29uc29sZS1mb3JtYXR0ZWQtb2JqZWN0IHNvdXJjZS1jb2RlID4g
Y29uc29sZS1vYmplY3QtcHJldmlldyA+IG5hbWUgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIg
PiBuYW1lID4gY29uc29sZS1mb3JtYXR0ZWQtbnVtYmVyID4gbmFtZSA+IGNvbnNvbGUtZm9ybWF0
dGVkLW51bWJlciA+IGNvbnNvbGUtbWVzc2FnZS11cmwgd2Via2l0LWh0bWwtcmVzb3VyY2UtbGlu
awotT2JqZWN0IHthOiAwLCBiOiAwLCBjOiAxfSBjb25zb2xlLW9iamVjdC1wcmV2aWV3Lmh0bWw6
MTMgY29uc29sZS1tZXNzYWdlLXRleHQgc291cmNlLWNvZGUgPiBjb25zb2xlLWZvcm1hdHRlZC1v
YmplY3Qgc291cmNlLWNvZGUgPiBjb25zb2xlLW9iamVjdC1wcmV2aWV3ID4gbmFtZSA+IGNvbnNv
bGUtZm9ybWF0dGVkLW51bWJlciA+IG5hbWUgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBu
YW1lID4gY29uc29sZS1mb3JtYXR0ZWQtbnVtYmVyID4gY29uc29sZS1tZXNzYWdlLXVybCB3ZWJr
aXQtaHRtbC1yZXNvdXJjZS1saW5rCi1PYmplY3Qge2E6IDAsIGI6IDAsIGM6IDJ9IGNvbnNvbGUt
b2JqZWN0LXByZXZpZXcuaHRtbDoxMyBjb25zb2xlLW1lc3NhZ2UtdGV4dCBzb3VyY2UtY29kZSA+
IGNvbnNvbGUtZm9ybWF0dGVkLW9iamVjdCBzb3VyY2UtY29kZSA+IGNvbnNvbGUtb2JqZWN0LXBy
ZXZpZXcgPiBuYW1lID4gY29uc29sZS1mb3JtYXR0ZWQtbnVtYmVyID4gbmFtZSA+IGNvbnNvbGUt
Zm9ybWF0dGVkLW51bWJlciA+IG5hbWUgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBjb25z
b2xlLW1lc3NhZ2UtdXJsIHdlYmtpdC1odG1sLXJlc291cmNlLWxpbmsKLU11dGF0aW5nIGFycmF5
IGluIGEgbG9vcCBjb25zb2xlLW9iamVjdC1wcmV2aWV3Lmh0bWw6MTYgY29uc29sZS1tZXNzYWdl
LXRleHQgc291cmNlLWNvZGUgPiBjb25zb2xlLW1lc3NhZ2UtdXJsIHdlYmtpdC1odG1sLXJlc291
cmNlLWxpbmsKLVswLCAwLCAwXSBjb25zb2xlLW9iamVjdC1wcmV2aWV3Lmh0bWw6MjAgY29uc29s
ZS1tZXNzYWdlLXRleHQgc291cmNlLWNvZGUgPiBjb25zb2xlLWZvcm1hdHRlZC1hcnJheSBzb3Vy
Y2UtY29kZSA+IGNvbnNvbGUtb2JqZWN0LXByZXZpZXcgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1i
ZXIgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIg
PiBjb25zb2xlLW1lc3NhZ2UtdXJsIHdlYmtpdC1odG1sLXJlc291cmNlLWxpbmsKLVswLCAwLCAx
XSBjb25zb2xlLW9iamVjdC1wcmV2aWV3Lmh0bWw6MjAgY29uc29sZS1tZXNzYWdlLXRleHQgc291
cmNlLWNvZGUgPiBjb25zb2xlLWZvcm1hdHRlZC1hcnJheSBzb3VyY2UtY29kZSA+IGNvbnNvbGUt
b2JqZWN0LXByZXZpZXcgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBjb25zb2xlLWZvcm1h
dHRlZC1udW1iZXIgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBjb25zb2xlLW1lc3NhZ2Ut
dXJsIHdlYmtpdC1odG1sLXJlc291cmNlLWxpbmsKLVswLCAwLCAyXSBjb25zb2xlLW9iamVjdC1w
cmV2aWV3Lmh0bWw6MjAgY29uc29sZS1tZXNzYWdlLXRleHQgc291cmNlLWNvZGUgPiBjb25zb2xl
LWZvcm1hdHRlZC1hcnJheSBzb3VyY2UtY29kZSA+IGNvbnNvbGUtb2JqZWN0LXByZXZpZXcgPiBj
b25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBjb25z
b2xlLWZvcm1hdHRlZC1udW1iZXIgPiBjb25zb2xlLW1lc3NhZ2UtdXJsIHdlYmtpdC1odG1sLXJl
c291cmNlLWxpbmsKLU9iamVjdCB3aXRoIG1hbnkgcHJvcGVydGllcyBjb25zb2xlLW9iamVjdC1w
cmV2aWV3Lmh0bWw6MjMgY29uc29sZS1tZXNzYWdlLXRleHQgc291cmNlLWNvZGUgPiBjb25zb2xl
LW1lc3NhZ2UtdXJsIHdlYmtpdC1odG1sLXJlc291cmNlLWxpbmsKLU9iamVjdCB7cHJvcGVydHlf
MDogMCwgcHJvcGVydHlfMTogMSwgcHJvcGVydHlfMjogMiwgcHJvcGVydHlfMzogMywgcHJvcGVy
dHlfNDogNOKApn0gY29uc29sZS1vYmplY3QtcHJldmlldy5odG1sOjI4IGNvbnNvbGUtbWVzc2Fn
ZS10ZXh0IHNvdXJjZS1jb2RlID4gY29uc29sZS1mb3JtYXR0ZWQtb2JqZWN0IHNvdXJjZS1jb2Rl
ID4gc2VjdGlvbiA+IGhlYWRlciBtb25vc3BhY2UgPiBzdWJ0aXRsZSA+IHRpdGxlID4gY29uc29s
ZS1vYmplY3QtcHJldmlldyA+IG5hbWUgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBuYW1l
ID4gY29uc29sZS1mb3JtYXR0ZWQtbnVtYmVyID4gbmFtZSA+IGNvbnNvbGUtZm9ybWF0dGVkLW51
bWJlciA+IG5hbWUgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBuYW1lID4gY29uc29sZS1m
b3JtYXR0ZWQtbnVtYmVyID4gb2JqZWN0LWluZm8tc3RhdGUtbm90ZSA+IHByb3BlcnRpZXMgcHJv
cGVydGllcy10cmVlIG1vbm9zcGFjZSA+IGNvbnNvbGUtbWVzc2FnZS11cmwgd2Via2l0LWh0bWwt
cmVzb3VyY2UtbGluawotQXJyYXkgd2l0aCBtYW55IHByb3BlcnRpZXMgY29uc29sZS1vYmplY3Qt
cHJldmlldy5odG1sOjMwIGNvbnNvbGUtbWVzc2FnZS10ZXh0IHNvdXJjZS1jb2RlID4gY29uc29s
ZS1tZXNzYWdlLXVybCB3ZWJraXQtaHRtbC1yZXNvdXJjZS1saW5rCi1bMCwgMSwgcHJvcGVydHlf
MDogMCwgcHJvcGVydHlfMTogMSwgcHJvcGVydHlfMjogMiwgcHJvcGVydHlfMzogMywgcHJvcGVy
dHlfNDogNOKApl0gY29uc29sZS1vYmplY3QtcHJldmlldy5odG1sOjM1IGNvbnNvbGUtbWVzc2Fn
ZS10ZXh0IHNvdXJjZS1jb2RlID4gY29uc29sZS1mb3JtYXR0ZWQtYXJyYXkgc291cmNlLWNvZGUg
PiBzZWN0aW9uID4gaGVhZGVyIG1vbm9zcGFjZSA+IHN1YnRpdGxlID4gdGl0bGUgPiBjb25zb2xl
LW9iamVjdC1wcmV2aWV3ID4gY29uc29sZS1mb3JtYXR0ZWQtbnVtYmVyID4gY29uc29sZS1mb3Jt
YXR0ZWQtbnVtYmVyID4gbmFtZSA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IG5hbWUgPiBj
b25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBuYW1lID4gY29uc29sZS1mb3JtYXR0ZWQtbnVtYmVy
ID4gbmFtZSA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IG5hbWUgPiBjb25zb2xlLWZvcm1h
dHRlZC1udW1iZXIgPiBvYmplY3QtaW5mby1zdGF0ZS1ub3RlID4gcHJvcGVydGllcyBwcm9wZXJ0
aWVzLXRyZWUgbW9ub3NwYWNlID4gY29uc29sZS1tZXNzYWdlLXVybCB3ZWJraXQtaHRtbC1yZXNv
dXJjZS1saW5rCi1PYmplY3Qgd2l0aCBwcm90byBjb25zb2xlLW9iamVjdC1wcmV2aWV3Lmh0bWw6
MzcgY29uc29sZS1tZXNzYWdlLXRleHQgc291cmNlLWNvZGUgPiBjb25zb2xlLW1lc3NhZ2UtdXJs
IHdlYmtpdC1odG1sLXJlc291cmNlLWxpbmsKLU9iamVjdCB7ZDogMSwgYTogMCwgYjogMCwgYzog
Mn0gY29uc29sZS1vYmplY3QtcHJldmlldy5odG1sOjQwIGNvbnNvbGUtbWVzc2FnZS10ZXh0IHNv
dXJjZS1jb2RlID4gY29uc29sZS1mb3JtYXR0ZWQtb2JqZWN0IHNvdXJjZS1jb2RlID4gY29uc29s
ZS1vYmplY3QtcHJldmlldyA+IG5hbWUgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBuYW1l
ID4gY29uc29sZS1mb3JtYXR0ZWQtbnVtYmVyID4gbmFtZSA+IGNvbnNvbGUtZm9ybWF0dGVkLW51
bWJlciA+IG5hbWUgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBjb25zb2xlLW1lc3NhZ2Ut
dXJsIHdlYmtpdC1odG1sLXJlc291cmNlLWxpbmsKLVNwYXJzZSBhcnJheSBjb25zb2xlLW9iamVj
dC1wcmV2aWV3Lmh0bWw6NDIgY29uc29sZS1tZXNzYWdlLXRleHQgc291cmNlLWNvZGUgPiBjb25z
b2xlLW1lc3NhZ2UtdXJsIHdlYmtpdC1odG1sLXJlc291cmNlLWxpbmsKLVs1MDogNTBdIGNvbnNv
bGUtb2JqZWN0LXByZXZpZXcuaHRtbDo0NSBjb25zb2xlLW1lc3NhZ2UtdGV4dCBzb3VyY2UtY29k
ZSA+IGNvbnNvbGUtZm9ybWF0dGVkLWFycmF5IHNvdXJjZS1jb2RlID4gY29uc29sZS1vYmplY3Qt
cHJldmlldyA+IG5hbWUgPiBjb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgPiBjb25zb2xlLW1lc3Nh
Z2UtdXJsIHdlYmtpdC1odG1sLXJlc291cmNlLWxpbmsKLURlbnNlIGFycmF5IHdpdGggaW5kZXhl
cyBhbmQgcHJvcGV0aWVzIGNvbnNvbGUtb2JqZWN0LXByZXZpZXcuaHRtbDo0NyBjb25zb2xlLW1l
c3NhZ2UtdGV4dCBzb3VyY2UtY29kZSA+IGNvbnNvbGUtbWVzc2FnZS11cmwgd2Via2l0LWh0bWwt
cmVzb3VyY2UtbGluawotWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIs
IDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwg
MjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwLCA0
MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1
LCA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjYsIDY3LCA2OCwgNjks
IDcwLCA3MSwgNzIsIDczLCA3NCwgNzUsIDc2LCA3NywgNzgsIDc5LCA4MCwgODEsIDgyLCA4Mywg
ODQsIDg1LCA4NiwgODcsIDg4LCA4OSwgOTAsIDkxLCA5MiwgOTMsIDk0LCA5NSwgOTYsIDk3LCA5
OCwgOTnigKZdIGNvbnNvbGUtb2JqZWN0LXByZXZpZXcuaHRtbDo1MyBjb25zb2xlLW1lc3NhZ2Ut
dGV4dCBzb3VyY2UtY29kZSA+IGNvbnNvbGUtZm9ybWF0dGVkLWFycmF5IHNvdXJjZS1jb2RlID4g
c2VjdGlvbiA+IGhlYWRlciBtb25vc3BhY2UgPiBzdWJ0aXRsZSA+IHRpdGxlID4gY29uc29sZS1v
YmplY3QtcHJldmlldyA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0
dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVk
LW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51
bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJl
ciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+
IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNv
bnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNv
bGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUt
Zm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9y
bWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0
dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVk
LW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51
bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJl
ciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+
IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNv
bnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNv
bGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUt
Zm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9y
bWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0
dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVk
LW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51
bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJl
ciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+
IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNv
bnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNv
bGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUt
Zm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9y
bWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0
dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVk
LW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51
bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJl
ciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+
IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNv
bnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNv
bGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUt
Zm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9y
bWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0
dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVk
LW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51
bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJl
ciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+
IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNv
bnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNv
bGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUt
Zm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9y
bWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0
dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVk
LW51bWJlciA+IGNvbnNvbGUtZm9ybWF0dGVkLW51bWJlciA+IG9iamVjdC1pbmZvLXN0YXRlLW5v
dGUgPiBwcm9wZXJ0aWVzIHByb3BlcnRpZXMtdHJlZSBtb25vc3BhY2UgPiBjb25zb2xlLW1lc3Nh
Z2UtdXJsIHdlYmtpdC1odG1sLXJlc291cmNlLWxpbmsKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1vYmplY3QtcHJldmlldy5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1vYmplY3QtcHJldmlldy5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmN2EyZmM1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtb2JqZWN0LXByZXZpZXcuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDc1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBsb2dUb0NvbnNvbGUoKQotewotICAgIGNvbnNv
bGUubG9nKCJNdXRhdGluZyBvYmplY3QgaW4gYSBsb29wIik7Ci0gICAgdmFyIG9iamVjdCA9IHsg
YTogMCwgYjogMCB9OwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgKytpKSB7Ci0gICAgICAg
IG9iamVjdC5jID0gaTsKLSAgICAgICAgY29uc29sZS5sb2cob2JqZWN0KTsKLSAgICB9Ci0KLSAg
ICBjb25zb2xlLmxvZygiTXV0YXRpbmcgYXJyYXkgaW4gYSBsb29wIik7Ci0gICAgdmFyIGFycmF5
ID0gWzAsIDAsIDBdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgKytpKSB7Ci0gICAgICAg
IGFycmF5WzJdID0gaTsKLSAgICAgICAgY29uc29sZS5sb2coYXJyYXkpOwotICAgIH0KLQotICAg
IGNvbnNvbGUubG9nKCJPYmplY3Qgd2l0aCBtYW55IHByb3BlcnRpZXMiKTsKLSAgICB2YXIgb2Jq
ZWN0V2l0aE1hbnlQcm9wZXJ0aWVzID0ge307Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsg
KytpKSB7Ci0gICAgICAgIG9iamVjdFdpdGhNYW55UHJvcGVydGllc1sicHJvcGVydHlfIiArIGld
ID0gaTsKLSAgICB9Ci0gICAgY29uc29sZS5sb2cob2JqZWN0V2l0aE1hbnlQcm9wZXJ0aWVzKTsK
LQotICAgIGNvbnNvbGUubG9nKCJBcnJheSB3aXRoIG1hbnkgcHJvcGVydGllcyIpOwotICAgIHZh
ciBhcnJheVdpdGhNYW55UHJvcGVydGllcyA9IFswLCAxXTsKLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwOyArK2kpIHsKLSAgICAgICAgYXJyYXlXaXRoTWFueVByb3BlcnRpZXNbInByb3BlcnR5
XyIgKyBpXSA9IGk7Ci0gICAgfQotICAgIGNvbnNvbGUubG9nKGFycmF5V2l0aE1hbnlQcm9wZXJ0
aWVzKTsKLQotICAgIGNvbnNvbGUubG9nKCJPYmplY3Qgd2l0aCBwcm90byIpOwotICAgIHZhciBv
YmplY3RXaXRoUHJvdG8gPSB7IGQ6IDEgfTsKLSAgICBvYmplY3RXaXRoUHJvdG8uX19wcm90b19f
ID0gb2JqZWN0OwotICAgIGNvbnNvbGUubG9nKG9iamVjdFdpdGhQcm90byk7Ci0KLSAgICBjb25z
b2xlLmxvZygiU3BhcnNlIGFycmF5Iik7Ci0gICAgdmFyIHNwYXJzZUFycmF5ID0gbmV3IEFycmF5
KDE1MCk7Ci0gICAgc3BhcnNlQXJyYXlbNTBdID0gNTA7Ci0gICAgY29uc29sZS5sb2coc3BhcnNl
QXJyYXkpOwotCi0gICAgY29uc29sZS5sb2coIkRlbnNlIGFycmF5IHdpdGggaW5kZXhlcyBhbmQg
cHJvcGV0aWVzIik7Ci0gICAgdmFyIGRlbnNlQXJyYXkgPSBuZXcgQXJyYXkoMTUwKTsKLSAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDE1MDsgKytpKSB7Ci0gICAgICAgIGRlbnNlQXJyYXlbaV0gPSBp
OwotICAgICAgICBkZW5zZUFycmF5WyJwcm9wZXJ0eV8iICsgaV0gPSBpOwotICAgIH0KLSAgICBj
b25zb2xlLmxvZyhkZW5zZUFycmF5KTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9nVG9Db25zb2xlKCkiLCBjYWxsYmFjayk7Ci0K
LSAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1
bXBDb25zb2xlTWVzc2FnZXMoZmFsc2UsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgY29uc29sZSBwcm9kdWNlcyBpbnN0YW50
IHByZXZpZXdzIGZvciBhcnJheXMgYW5kIG9iamVjdHMuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtb3Jp
Z2luYXRpbmctY29tbWFuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLW9yaWdpbmF0aW5nLWNvbW1hbmQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlODM4YTg2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtb3JpZ2luYXRpbmctY29tbWFuZC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLVRlc3RzIHRoYXQgY29uc29sZSByZXN1bHQg
aGFzIG9yaWdpbmF0aW5nIGNvbW1hbmQgYXNzb2NpYXRlZCB3aXRoIGl0LgotCi0xICsgMQotMgot
T3JpZ2luYXRpbmcgZnJvbTogMSArIDEKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS1vcmlnaW5hdGluZy1jb21tYW5kLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW9yaWdpbmF0aW5nLWNvbW1hbmQuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRmODc3Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW9yaWdpbmF0aW5nLWNvbW1hbmQuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCIxICsgMSIsIHN0ZXAxKTsKLSAgICBmdW5jdGlvbiBz
dGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMo
dHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQot
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci0g
ICAgVGVzdHMgdGhhdCBjb25zb2xlIHJlc3VsdCBoYXMgb3JpZ2luYXRpbmcgY29tbWFuZCBhc3Nv
Y2lhdGVkIHdpdGggaXQuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtcHJlc2VydmUtbG9nLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtcHJlc2VydmUtbG9n
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTYxZDY4NS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXByZXNlcnZl
LWxvZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIHRo
YXQgdGhlIGNvbnNvbGUgY2FuIHByZXNlcnZlIGxvZyBtZXNzYWdlcyBhY3Jvc3MgbmF2aWdhdGlv
bnMuIEJ1ZyA1MzM1OQotCi1QYWdlIHJlbG9hZGVkLgotUEFTUwotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXByZXNlcnZlLWxvZy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1wcmVzZXJ2ZS1sb2cuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVmOWEzMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXByZXNlcnZlLWxvZy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMjQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3IuY29u
c29sZS5hZGRNZXNzYWdlKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5jcmVhdGUoV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuT3RoZXIsIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuTG9nLCAiUEFTUyIpKTsKLSAgICBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MucHJlc2VydmVDb25zb2xlTG9nLnNldCh0cnVlKTsKLSAgICBJbnNwZWN0b3JU
ZXN0LnJlbG9hZFBhZ2UoZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENv
bnNvbGVNZXNzYWdlcygpOwotICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJlc2VydmVD
b25zb2xlTG9nLnNldChmYWxzZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7Ci0gICAgfSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLTxwPgotVGVzdHMgdGhhdCB0aGUgY29uc29sZSBjYW4gcHJlc2VydmUgbG9nIG1lc3Nh
Z2VzIGFjcm9zcyBuYXZpZ2F0aW9ucy4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MzM1OSI+QnVnIDUzMzU5PC9hPgotPC9wPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1y
ZXBlYXQtY291bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1yZXBlYXQtY291bnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwY2NhMDZiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtcmVwZWF0LWNvdW50LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDE3ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogU2FtZSBtZXNzYWdlCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTA6IFNhbWUgbWVzc2FnZQotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDEwOiBTYW1lIG1lc3NhZ2UKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogU2FtZSBtZXNzYWdl
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IFNhbWUgbWVzc2FnZQotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDEwOiBTYW1lIG1lc3NhZ2UKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogU2FtZSBt
ZXNzYWdlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IFNhbWUgbWVzc2FnZQotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEwOiBTYW1lIG1lc3NhZ2UKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDog
U2FtZSBtZXNzYWdlCi1UZXN0cyB0aGF0IHJlcGVhdCBjb3VudCBpcyBwcm9wZXJseSB1cGRhdGVk
LgotCi01U2FtZSBtZXNzYWdlIGNvbnNvbGUtcmVwZWF0LWNvdW50Lmh0bWw6MTAKLSJEaWZmZXJl
bnQgbWVzc2FnZSIKLSJEaWZmZXJlbnQgbWVzc2FnZSIKLTVTYW1lIG1lc3NhZ2UgY29uc29sZS1y
ZXBlYXQtY291bnQuaHRtbDoxMAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLXJlcGVhdC1jb3VudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1yZXBlYXQtY291bnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTcwMmUxOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLXJlcGVhdC1jb3VudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIGR1bXBNZXNzYWdlcygpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1OyAr
K2kpCi0gICAgICAgIGNvbnNvbGUubG9nKCJTYW1lIG1lc3NhZ2UiKTsKLX0KLQotZnVuY3Rpb24g
dGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZHVtcE1lc3NhZ2Vz
KCkiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJcIkRpZmZlcmVudCBtZXNzYWdlXCIiLCBzdGVw
Mik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZHVtcE1lc3NhZ2VzKCkiLCBzdGVwMyk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
Q29uc29sZU1lc3NhZ2VzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Ci08cD4KLVRlc3RzIHRoYXQgcmVwZWF0IGNvdW50IGlzIHByb3Blcmx5IHVwZGF0ZWQuCi08L3A+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLXN0cmluZy1mb3JtYXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1zdHJpbmctZm9ybWF0LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTFkNTBlNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXN0cmluZy1mb3JtYXQtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotVGVzdHMgdGhhdCBmb3JtYXR0aW5nIHByb2Nl
c3NlcyAnJScgcHJvcGVybHkgaW4gY2FzZSBvZiBtaXNzaW5nIGZvcm1hdHRlcnMuCi0KLVN0cmlu
Zy5zcHJpbnRmKCVULCAxKSA9ICIlVCIKLVN0cmluZy5zcHJpbnRmKDEwJSB4IDIwJSwgb2YgdGhl
IG9yaWdpbmFsKSA9ICIxMCUgeCAyMCUiCi1TdHJpbmcuc3ByaW50ZiglJSwgKSA9ICIlJSIKLVN0
cmluZy5zcHJpbnRmKCUsICkgPSAiJSIKLVN0cmluZy5zcHJpbnRmKCUgJWQsIDEpID0gIiUgMSIK
LVN0cmluZy5zcHJpbnRmKCVkICUgJXMsIDEsIGZvbykgPSAiMSAlIGZvbyIKLVN0cmluZy5zcHJp
bnRmKCUuMmYsIDAuMTIzNDUpID0gIjAuMTIiCi1TdHJpbmcuc3ByaW50Zihmb28lNTU1IGJhciwg
KSA9ICJmb28lNTU1IGJhciIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1zdHJpbmctZm9ybWF0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLXN0cmluZy1mb3JtYXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDg5ZDdiYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLXN0cmluZy1mb3JtYXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
ZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHBhcmFtcyA9IFsKLSAgICAgICAgWyIlVCIsIDFd
LAotICAgICAgICBbIjEwJSB4IDIwJSIsICJvZiB0aGUgb3JpZ2luYWwiXSwKLSAgICAgICAgWyIl
JSIsICIiXSwKLSAgICAgICAgWyIlIiwgIiJdLAotICAgICAgICBbIiUgJWQiLCAxXSwKLSAgICAg
ICAgWyIlZCAlICVzIiwgMSwgImZvbyJdLAotICAgICAgICBbIiUuMmYiLCAwLjEyMzQ1XSwKLSAg
ICAgICAgWyJmb28lNTU1IGJhciIsICIiXSwKLSAgICBdOwotICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcGFyYW1zLmxlbmd0aDsgKytpKQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
U3RyaW5nLnNwcmludGYoIiArIHBhcmFtc1tpXS5qb2luKCIsICIpICsgIikgPSBcIiIgKyBTdHJp
bmcuc3ByaW50Zi5hcHBseShTdHJpbmcsIHBhcmFtc1tpXSkgKyAiXCIiKTsKLSAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBmb3JtYXR0aW5nIHByb2Nlc3NlcyAn
JScgcHJvcGVybHkgaW4gY2FzZSBvZiBtaXNzaW5nIGZvcm1hdHRlcnMuCi08L3A+Ci0KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtc3Vic3RpdHV0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1zdWJzdGl0dXRlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGNhNTQwOTIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1zdWJzdGl0dXRlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw1ICswLDAgQEAKLVRlc3RzIHRoYXQgZXZhbHVhdGUgaW4gY29uc29sZSB3b3JrcyBldmVu
IGlmIHdpbmRvdy5jb25zb2xlIGlzIHN1YnN0aXR1dGVkIG9yIGRlbGV0ZWQuIEJ1ZyA1MzA3Mgot
Ci0xCi0yCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtc3Vic3RpdHV0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtc3Vic3RpdHV0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWYwOTJj
OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXN1
YnN0aXR1dGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGRlbGV0ZUNvbnNvbGUoKQot
ewotICAgIHdpbmRvdy5jb25zb2xlID0gdW5kZWZpbmVkOwotfQotCi1mdW5jdGlvbiBzdWJzdGl0
dXRlQ29uc29sZSgpCi17Ci0gICAgd2luZG93LmNvbnNvbGUgPSB7Ci0gICAgICAgIGdldCBfY29t
bWFuZExpbmVBUEkoKSB7IHJldHVybiB1bmRlZmluZWQ7IH0sCi0gICAgICAgIHNldCBfY29tbWFu
ZExpbmVBUEkoKSB7fQotICAgIH07Ci19Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImRlbGV0ZUNvbnNvbGUoKSIsIHN0ZXAx
KTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJbkNvbnNvbGUoIjEiLCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3Rl
cDIocmVzdWx0KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVzdWx0
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgic3Vic3RpdHV0ZUNv
bnNvbGUoKSIsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMyhyZXN1bHQpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCIyIiwgc3RlcDQp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlc3VsdCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGV2YWx1YXRlIGluIGNvbnNvbGUgd29y
a3MgZXZlbiBpZiB3aW5kb3cuY29uc29sZSBpcyBzdWJzdGl0dXRlZCBvciBkZWxldGVkLgotPGEg
aHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMDcyIj5CdWcg
NTMwNzI8L2E+Ci08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdGVzdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10ZXN0cy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3NTExYjYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10ZXN0cy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw0NyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgOTogbG9nCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTA6IGRlYnVnCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6IGlu
Zm8KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogd2FybgotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDEzOiBlcnJvcgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1OiByZXBlYXRlZAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE1OiByZXBlYXRlZAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1OiByZXBl
YXRlZAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1OiByZXBlYXRlZAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE1OiByZXBlYXRlZAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiAxCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMjI6IFtvYmplY3QgT2JqZWN0XQotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDIzOiA0MgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI0OiB0cnVlCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMjU6IG51bGwKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNjogdW5kZWZpbmVkCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMjc6IFtvYmplY3QgSFRNTERvY3VtZW50XQotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDI4OiBmdW5jdGlvbiAoKSB7IH0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyOTog
ZnVuY3Rpb24gZigpIHsgfQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDMwOiAxLDIsMwotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDMxOiAvcmVnZXhwLiovCi1UZXN0cyB0aGF0IGNvbnNvbGUgbG9nZ2lu
ZyBkdW1wcyBwcm9wZXIgbWVzc2FnZXMuCi0KLWxvZyBjb25zb2xlLXRlc3RzLmh0bWw6OSBjb25z
b2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwKLWRlYnVnIGNvbnNvbGUtdGVzdHMuaHRtbDox
MCBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1kZWJ1Zy1sZXZlbAotaW5mbyBjb25zb2xlLXRlc3Rz
Lmh0bWw6MTEgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVsCi13YXJuIGNvbnNvbGUt
dGVzdHMuaHRtbDoxMiBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS13YXJuaW5nLWxldmVsCi1lcnJv
ciBjb25zb2xlLXRlc3RzLmh0bWw6MTMgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2
ZWwKLTVyZXBlYXRlZCBjb25zb2xlLXRlc3RzLmh0bWw6MTUgY29uc29sZS1tZXNzYWdlIGNvbnNv
bGUtbG9nLWxldmVsIHJlcGVhdGVkLW1lc3NhZ2UKLWNvdW50OiAxIGNvbnNvbGUtdGVzdHMuaHRt
bDoxNyBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1kZWJ1Zy1sZXZlbAotY291bnQ6IDIgY29uc29s
ZS10ZXN0cy5odG1sOjE3IGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWRlYnVnLWxldmVsCi1ncm91
cCBjb25zb2xlLXRlc3RzLmh0bWw6MTggY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVs
IGNvbnNvbGUtZ3JvdXAtdGl0bGUKLSBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwK
LTEgMiAzIGNvbnNvbGUtdGVzdHMuaHRtbDoyMCBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ct
bGV2ZWwKLWdyb3VwQ29sbGFwc2VkIGNvbnNvbGUtdGVzdHMuaHRtbDoyMSBjb25zb2xlLW1lc3Nh
Z2UgY29uc29sZS1sb2ctbGV2ZWwgY29uc29sZS1ncm91cC10aXRsZQotT2JqZWN0IGNvbnNvbGUt
dGVzdHMuaHRtbDoyMiBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwKLTQyIGNvbnNv
bGUtdGVzdHMuaHRtbDoyMyBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwKLXRydWUg
Y29uc29sZS10ZXN0cy5odG1sOjI0IGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbAot
bnVsbCBjb25zb2xlLXRlc3RzLmh0bWw6MjUgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxl
dmVsCi11bmRlZmluZWQgY29uc29sZS10ZXN0cy5odG1sOjI2IGNvbnNvbGUtbWVzc2FnZSBjb25z
b2xlLWxvZy1sZXZlbAotI2RvY3VtZW50IGNvbnNvbGUtdGVzdHMuaHRtbDoyNyBjb25zb2xlLW1l
c3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwKLWZ1bmN0aW9uICgpIHsgfSBjb25zb2xlLXRlc3RzLmh0
bWw6MjggY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVsCi1mdW5jdGlvbiBmKCkgeyB9
IGNvbnNvbGUtdGVzdHMuaHRtbDoyOSBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwK
LUFycmF5WzNdIGNvbnNvbGUtdGVzdHMuaHRtbDozMCBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1s
b2ctbGV2ZWwKLS9yZWdleHAuKi8gY29uc29sZS10ZXN0cy5odG1sOjMxIGNvbnNvbGUtbWVzc2Fn
ZSBjb25zb2xlLWxvZy1sZXZlbAotIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRlc3Rz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRlc3RzLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzOTEwMmIuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10ZXN0cy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNTEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIG9ubG9hZCgpCi17Ci0gICAgY29uc29sZS5sb2coJ2xv
ZycpOwotICAgIGNvbnNvbGUuZGVidWcoJ2RlYnVnJyk7Ci0gICAgY29uc29sZS5pbmZvKCdpbmZv
Jyk7Ci0gICAgY29uc29sZS53YXJuKCd3YXJuJyk7Ci0gICAgY29uc29sZS5lcnJvcignZXJyb3In
KTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDU7ICsraSkKLSAgICAgICAgY29uc29sZS5sb2co
J3JlcGVhdGVkJyk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyOyArK2kpCi0gICAgICAgIGNv
bnNvbGUuY291bnQoJ2NvdW50Jyk7Ci0gICAgY29uc29sZS5ncm91cCgnZ3JvdXAnKTsKLSAgICBj
b25zb2xlLmdyb3VwRW5kKCk7Ci0gICAgY29uc29sZS5sb2coJzEnLCAnMicsICczJyk7Ci0gICAg
Y29uc29sZS5ncm91cENvbGxhcHNlZCgnZ3JvdXBDb2xsYXBzZWQnKTsKLSAgICBjb25zb2xlLmxv
Zyh7IHByb3BlcnR5OiAidmFsdWUiIH0pOwotICAgIGNvbnNvbGUubG9nKDQyKTsKLSAgICBjb25z
b2xlLmxvZyh0cnVlKTsKLSAgICBjb25zb2xlLmxvZyhudWxsKTsKLSAgICBjb25zb2xlLmxvZyh1
bmRlZmluZWQpOwotICAgIGNvbnNvbGUubG9nKGRvY3VtZW50KTsKLSAgICBjb25zb2xlLmxvZyhm
dW5jdGlvbigpIHsgfSk7Ci0gICAgY29uc29sZS5sb2coZnVuY3Rpb24gZigpIHsgfSk7Ci0gICAg
Y29uc29sZS5sb2coWzEsIDIsIDNdKTsKLSAgICBjb25zb2xlLmxvZygvcmVnZXhwLiovKTsKLSAg
ICBjb25zb2xlLmdyb3VwRW5kKCk7Ci0KLSAgICBydW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhDbGFzc2Vz
KCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KLTxwPgotVGVzdHMgdGhhdCBjb25zb2xl
IGxvZ2dpbmcgZHVtcHMgcHJvcGVyIG1lc3NhZ2VzLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRyYWNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJh
Y2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTkwZjYzLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2Ut
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UZXN0cyB0aGF0IGNv
bnNvbGUudHJhY2UgZHVtcHMgc3RhY2sgdHJhY2Ugd2l0aCBzb3VyY2UgVVJMcyBhbmQgbGluZSBu
dW1iZXJzLgotCi1jb25zb2xlLnRyYWNlKCkgY29uc29sZS10cmFjZS5odG1sOjliIGNvbnNvbGUt
dHJhY2UuaHRtbDo5YSBjb25zb2xlLXRyYWNlLmh0bWw6MTQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10cmFjZS1pbi1ldmFsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2UtaW4tZXZhbC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlZTY1ZTIuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10cmFjZS1pbi1l
dmFsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgdGhh
dCB3aGVuIGNvbnNvbGUudHJhY2UgaXMgY2FsbGVkIGluIGV2YWwnZWQgc2NyaXB0IGVuZGluZyB3
aXRoIC8vQCBzb3VyY2VVUkw9dXJsIGl0IHdpbGwgZHVtcCBhIHN0YWNrIHRyYWNlIHRoYXQgd2ls
bCBoYXZlIHRoZSB1cmwgYXMgdGhlIHNjcmlwdCBzb3VyY2UuIEJ1ZyA0NzI1Mi4KLQotY29uc29s
ZS50cmFjZSgpYmFldmFsU291cmNlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtdHJhY2UtaW4tZXZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS10cmFjZS1pbi1ldmFsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDY0Y2U5ZTEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS10cmFjZS1pbi1ldmFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1
MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLQotCi1mdW5jdGlvbiBldmFsU291cmNlKCkKLXsKLSAgICBmdW5jdGlvbiBiKCkKLSAgICB7
Ci0gICAgICAgIGNvbnNvbGUudHJhY2UoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhKCkKLSAg
ICB7Ci0gICAgICAgIGIoKTsKLSAgICB9Ci0KLSAgICBhKCk7Ci19Ci0KLWZ1bmN0aW9uIGRvRXZh
bFNvdXJjZSgpCi17Ci0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgZXZhbCgi
KCIgKyBldmFsU291cmNlICsgIikoKS8vQCBzb3VyY2VVUkw9ZXZhbFVSTC5qcyIpOwotICAgIH0s
IDApOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgiZG9FdmFsU291cmNlKCkiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZENvbnNvbGVTbmlmZmVyKGNhbGxiYWNrKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCB3aGVuIGNvbnNvbGUudHJh
Y2UgaXMgY2FsbGVkIGluIGV2YWwnZWQgc2NyaXB0IGVuZGluZwotd2l0aCAvL0Agc291cmNlVVJM
PXVybCBpdCB3aWxsIGR1bXAgYSBzdGFjayB0cmFjZSB0aGF0IHdpbGwgaGF2ZQotdGhlIHVybCBh
cyB0aGUgc2NyaXB0IHNvdXJjZS4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ3MjUyIj5CdWcgNDcyNTIuPC9hPgotPC9wPgotCi08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRy
YWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRyYWNlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1YmYyNTMuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10cmFjZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMzcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGIoKQotewotICAgIGNvbnNvbGUudHJhY2UoKTsK
LX0KLQotZnVuY3Rpb24gYSgpCi17Ci0gICAgYigpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1
bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dChh
LCAwKSIpOwotICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoY2FsbGJhY2spOwot
fQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
Ci1UZXN0cyB0aGF0IGNvbnNvbGUudHJhY2UgZHVtcHMgc3RhY2sgdHJhY2Ugd2l0aCBzb3VyY2Ug
VVJMcyBhbmQgbGluZSBudW1iZXJzLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRyaW0tbG9uZy11cmxz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJp
bS1sb25nLXVybHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
ZTkwNTk5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtdHJpbS1sb25nLXVybHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCww
IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6IFRoZSBVUkwgaXM6ICVzCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTI6IGh0dHA6Ly9leGFtcGxlLmNvbS8yLS0tLS0tLS0tMy0tLS0tLS0tLTQt
LS0tLS0tLS01LS0tLS0tLS0tNi0tLS0tLS0tLTctLS0tLS0tLS04LS0tLS0tLS0tOS0tLS0tLS0t
LTAtLS0tLS0tLS0xLS0tLS0tLS0tMi0tLS0tLS0tLTMtLS0tLS0tLS00LS0tLS0tLS0tNS0tLS0t
LS0tLTYtLS0tLS0tLS03LS0tLS0tLS0tOC0tLS0tLS0tLTktLS0tLS0tLS0wCi1UZXN0cyB0aGF0
IGEgVVJMIGxvZ2dlZCB0byB0aGUgY29uc29sZSBpcyB0cmltbWVkIGRvd24gdG8gMTUwIGNoYXJh
Y3RlcnMuCi0KLVRoZSBVUkwgaXM6IGh0dHA6Ly9leGFtcGxlLmNvbS8yLS0tLS0tLS0tMy0tLS0t
LS0tLTQtLS0tLS0tLS01LS0tLS0tLS0tNi0tLS0tLS0tLTctLS0tLeKApi0tLTMtLS0tLS0tLS00
LS0tLS0tLS0tNS0tLS0tLS0tLTYtLS0tLS0tLS03LS0tLS0tLS0tOC0tLS0tLS0tLTktLS0tLS0t
LS0wIGNvbnNvbGUtdHJpbS1sb25nLXVybHMuaHRtbDoxMQotaHR0cDovL2V4YW1wbGUuY29tLzIt
LS0tLS0tLS0zLS0tLS0tLS0tNC0tLS0tLS0tLTUtLS0tLS0tLS02LS0tLS0tLS0tNy0tLS0t4oCm
LS0tMy0tLS0tLS0tLTQtLS0tLS0tLS01LS0tLS0tLS0tNi0tLS0tLS0tLTctLS0tLS0tLS04LS0t
LS0tLS0tOS0tLS0tLS0tLTAgY29uc29sZS10cmltLWxvbmctdXJscy5odG1sOjEyCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJpbS1sb25nLXVy
bHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJpbS1sb25n
LXVybHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjkxNDNiMy4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRyaW0tbG9uZy11
cmxzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25z
b2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIG9ubG9hZCgpCi17Ci0g
ICAgLy8gICAgICAgIDAtLS0tLS0tLS0xLS0tLS0tLS0tMi0tLS0tLS0tLTMtLS0tLS0tLS00LS0t
LS0tLS0tNS0tLS0tLS0tLTYtLS0tLS0tLS03LS0tLS0tLS0tOC0tLS0tLS0tLTktLS0tLS0tLS0w
LS0tLS0tLS0tMS0tLS0tLS0tLTItLS0tLS0tLS0zLS0tLS0tLS0tNC0tLS0tLS0tLTUtLS0tLS0t
LS02LS0tLS0tLS0tNy0tLS0tLS0tLTgtLS0tLS0tLS05LS0tLS0tLS0tMAotICAgIHZhciB1cmwg
PSAiaHR0cDovL2V4YW1wbGUuY29tLzItLS0tLS0tLS0zLS0tLS0tLS0tNC0tLS0tLS0tLTUtLS0t
LS0tLS02LS0tLS0tLS0tNy0tLS0tLS0tLTgtLS0tLS0tLS05LS0tLS0tLS0tMC0tLS0tLS0tLTEt
LS0tLS0tLS0yLS0tLS0tLS0tMy0tLS0tLS0tLTQtLS0tLS0tLS01LS0tLS0tLS0tNi0tLS0tLS0t
LTctLS0tLS0tLS04LS0tLS0tLS0tOS0tLS0tLS0tLTAiOwotCi0gICAgY29uc29sZS5sb2coIlRo
ZSBVUkwgaXM6ICVzIiwgdXJsKTsKLSAgICBjb25zb2xlLmxvZyh1cmwpOwotCi0gICAgcnVuVGVz
dCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZENv
bnNvbGVNZXNzYWdlcygpOwotICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygp
OwotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Ci08cD4KLVRlc3RzIHRoYXQgYSBVUkwgbG9n
Z2VkIHRvIHRoZSBjb25zb2xlIGlzIHRyaW1tZWQgZG93biB0byAxNTAgY2hhcmFjdGVycy4KLTwv
cD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtdW5jYXVnaHQtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdW5jYXVnaHQtZXhjZXB0aW9uLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2EyY2ZlNi4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXVuY2F1Z2h0LWV4Y2VwdGlv
bi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTg6IEVycm9yOiBFeGNlcHRpb24gaW4gaW5saW5lIHNjcmlwdC4KLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAxMTogRXJyb3I6IEV4Y2VwdGlvbiBpbiAnbG9hZCcgZXZlbnQgbGlz
dGVuZXIuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogRXJyb3I6IEV4Y2VwdGlvbiBpbiBzZXRU
aW1lb3V0IGNhbGxiYWNrLgotVGVzdHMgdGhhdCB1bmNhdWdodCBleGNlcHRpb25zIGFyZSBsb2dn
ZWQgaW50byBjb25zb2xlLkJ1ZyA0NzI1MC4KLQotCi1FcnJvcjogRXhjZXB0aW9uIGluIGlubGlu
ZSBzY3JpcHQuIHJlc291cmNlcy91bmNhdWdodC1pbi1pZnJhbWUuaHRtbDoxOGEgcmVzb3VyY2Vz
L3VuY2F1Z2h0LWluLWlmcmFtZS5odG1sOjE4YiByZXNvdXJjZXMvdW5jYXVnaHQtaW4taWZyYW1l
Lmh0bWw6MjMKLUVycm9yOiBFeGNlcHRpb24gaW4gJ2xvYWQnIGV2ZW50IGxpc3RlbmVyLiByZXNv
dXJjZXMvdW5jYXVnaHQtaW4taWZyYW1lLmh0bWw6MTFmIHJlc291cmNlcy91bmNhdWdodC1pbi1p
ZnJhbWUuaHRtbDoxMShhbm9ueW1vdXMgZnVuY3Rpb24pIHJlc291cmNlcy91bmNhdWdodC1pbi1p
ZnJhbWUuaHRtbDoxMwotRXJyb3I6IEV4Y2VwdGlvbiBpbiBzZXRUaW1lb3V0IGNhbGxiYWNrLiB1
bmNhdWdodC1pbi1pZnJhbWUuaHRtbDo2YmFyIHVuY2F1Z2h0LWluLWlmcmFtZS5odG1sOjYoYW5v
bnltb3VzIGZ1bmN0aW9uKSB1bmNhdWdodC1pbi1pZnJhbWUuaHRtbDo4Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdW5jYXVnaHQtZXhjZXB0aW9u
LWluLWV2YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS11bmNhdWdodC1leGNlcHRpb24taW4tZXZhbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDczOGU2M2UuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS11bmNhdWdodC1leGNlcHRpb24taW4tZXZhbC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA0OiBFcnJvcjogRXhjZXB0aW9uIGluIGV2YWwuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDog
RXJyb3I6IEV4Y2VwdGlvbiBpbiBldmFsLgotVGVzdHMgdGhhdCB3aGVuIHVuY2F1Z2h0IGV4Y2Vw
dGlvbiBpbiBldmFsJ2VkIHNjcmlwdCBlbmRpbmcgd2l0aCAvL0Agc291cmNlVVJMPXVybCBpcyBs
b2dnZWQgaW50byBjb25zb2xlLCBpdHMgc3RhY2sgdHJhY2Ugd2lsbCBoYXZlIHRoZSB1cmwgYXMg
dGhlIHNjcmlwdCBzb3VyY2UuIEJ1ZyA0NzI1Mi4KLQotUGFnZSByZWxvYWRlZC4KLUVycm9yOiBF
eGNlcHRpb24gaW4gZXZhbC4gdW5kZWZpbmVkOjRiIHVuZGVmaW5lZDo0YWV2YWxTb3VyY2UKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS11bmNhdWdo
dC1leGNlcHRpb24taW4tZXZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS11bmNhdWdodC1leGNlcHRpb24taW4tZXZhbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1ZWMwMGJiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtdW5jYXVnaHQtZXhjZXB0aW9uLWluLWV2YWwuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0
LnJlbG9hZFBhZ2UoZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kQ29u
c29sZU1lc3NhZ2VzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdl
cygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0pOwotfQot
Ci1mdW5jdGlvbiBldmFsU291cmNlKCkKLXsKLSAgICBmdW5jdGlvbiBiKCkKLSAgICB7Ci0gICAg
ICAgIHRocm93IG5ldyBFcnJvcigiRXhjZXB0aW9uIGluIGV2YWwuIik7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gYSgpCi0gICAgewotICAgICAgICBiKCk7Ci0gICAgfQotCi0gICAgYSgpOwotfQot
Ci1ldmFsKCIoIiArIGV2YWxTb3VyY2UgKyAiKSgpLy9AIHNvdXJjZVVSTD1ldmFsVVJMLmpzIik7
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4K
LVRlc3RzIHRoYXQgd2hlbiB1bmNhdWdodCBleGNlcHRpb24gaW4gZXZhbCdlZCBzY3JpcHQgZW5k
aW5nCi13aXRoIC8vQCBzb3VyY2VVUkw9dXJsIGlzIGxvZ2dlZCBpbnRvIGNvbnNvbGUsIGl0cyBz
dGFjayB0cmFjZQotd2lsbCBoYXZlIHRoZSB1cmwgYXMgdGhlIHNjcmlwdCBzb3VyY2UuIDxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzI1MiI+QnVnIDQ3
MjUyLjwvYT4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS11bmNhdWdodC1leGNlcHRpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdW5jYXVnaHQtZXhjZXB0aW9uLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwZWI5ODIuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS11bmNhdWdodC1leGNlcHRpb24u
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJ
bnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKGFkZE1lc3NhZ2UsIHRydWUpOwotICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWRJZnJhbWUoKSIpOwotICAgIGZ1bmN0aW9u
IGFkZE1lc3NhZ2UobWVzc2FnZSkKLSAgICB7Ci0gICAgICAgIGlmIChtZXNzYWdlLnRvU3RyaW5n
KCkuaW5kZXhPZigic2V0VGltZW91dCIpICE9PSAtMSkgewotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBhbmRDb25zb2xlTWVzc2FnZXMoKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZHVtcENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotZnVuY3Rpb24gbG9hZElmcmFtZSgpCi17
Ci0gICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAg
IGlmcmFtZS5zcmMgPSAicmVzb3VyY2VzL3VuY2F1Z2h0LWluLWlmcmFtZS5odG1sIjsKLSAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgdW5jYXVnaHQg
ZXhjZXB0aW9ucyBhcmUgbG9nZ2VkIGludG8gY29uc29sZS48YSBocmVmPSJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDcyNTAiPkJ1ZyA0NzI1MC48L2E+Ci08L3A+Ci0K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtdXJsLWxpbmUtY29sdW1uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdXJsLWxpbmUtY29sdW1uLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzEzM2IyNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXVybC1saW5lLWNvbHVtbi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
OTogb25lCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHR3bwotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDExOiB0aHJlZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0OiBlcnJvcgotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE0OiBsb2cKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogaW5mbwotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE1OiB3YXJuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTY6IGFz
c2VydAotVGVzdHMgdGhhdCB1cmwsIGxpbmUsIGFuZCBjb2x1bW4gcHJvcGVydGllcyBhcmUgZGVm
aW5lZCBmb3IgY29uc29sZSBmdW5jdGlvbnMuCi0KLU1lc3NhZ2UgYXQgbG9jYXRpb246IGNvbnNv
bGUtdXJsLWxpbmUtY29sdW1uLmh0bWw6OToxNgotTWVzc2FnZSBhdCBsb2NhdGlvbjogY29uc29s
ZS11cmwtbGluZS1jb2x1bW4uaHRtbDoxMDoxNgotTWVzc2FnZSBhdCBsb2NhdGlvbjogY29uc29s
ZS11cmwtbGluZS1jb2x1bW4uaHRtbDoxMToxNgotTWVzc2FnZSBhdCBsb2NhdGlvbjogY29uc29s
ZS11cmwtbGluZS1jb2x1bW4uaHRtbDoxNDoxOAotTWVzc2FnZSBhdCBsb2NhdGlvbjogY29uc29s
ZS11cmwtbGluZS1jb2x1bW4uaHRtbDoxNDo0MAotTWVzc2FnZSBhdCBsb2NhdGlvbjogY29uc29s
ZS11cmwtbGluZS1jb2x1bW4uaHRtbDoxNToxNwotTWVzc2FnZSBhdCBsb2NhdGlvbjogY29uc29s
ZS11cmwtbGluZS1jb2x1bW4uaHRtbDoxNTozOQotTWVzc2FnZSBhdCBsb2NhdGlvbjogY29uc29s
ZS11cmwtbGluZS1jb2x1bW4uaHRtbDoxNjoxOQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXVybC1saW5lLWNvbHVtbi5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS11cmwtbGluZS1jb2x1bW4uaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBjY2Y2NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXVybC1saW5lLWNvbHVtbi5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNDUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGxvZygpIHsKLSAgICAvLyBGaWxsIGNvbnNvbGUu
Ci0gICAgY29uc29sZS5sb2coIm9uZSIpOwotICAgIGNvbnNvbGUubG9nKCJ0d28iKTsKLSAgICBj
b25zb2xlLmxvZygidGhyZWUiKTsKLQotICAgIC8vIERpZmZlcmVudCB0eXBlcyBhbmQgZGlmZmVy
ZW50IGNvbHVtbnMuCi0gICAgY29uc29sZS5lcnJvcigiZXJyb3IiKTsgY29uc29sZS5sb2coImxv
ZyIpOwotICAgIGNvbnNvbGUuaW5mbygiaW5mbyIpOyBjb25zb2xlLndhcm4oIndhcm4iKTsKLSAg
ICBjb25zb2xlLmFzc2VydChmYWxzZSwgImFzc2VydCIpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVEaXNw
YXRjaGVyLnByb3RvdHlwZSwgIm1lc3NhZ2VBZGRlZCIsIG1lc3NhZ2VBZGRlZCwgdHJ1ZSk7Ci0K
LSAgICBmdW5jdGlvbiBtZXNzYWdlQWRkZWQocGF5bG9hZCkKLSAgICB7Ci0gICAgICAgIHZhciB1
cmwgPSBwYXlsb2FkLnVybDsKLSAgICAgICAgdmFyIGxhc3RTbGFzaEluZGV4ID0gdXJsLmxhc3RJ
bmRleE9mKCIvIik7Ci0gICAgICAgIHVybCA9IHVybC5zdWJzdHJpbmcobGFzdFNsYXNoSW5kZXgg
KyAxKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk1lc3NhZ2UgYXQgbG9jYXRp
b246ICIgKyB1cmwgKyAiOiIgKyBwYXlsb2FkLmxpbmUgKyAiOiIgKyBwYXlsb2FkLmNvbHVtbik7
Ci0gICAgICAgIGlmIChwYXlsb2FkLmxpbmUgPT09IDE2KQotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKCJsb2coKSIpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHVybCwgbGluZSwgYW5kIGNvbHVtbiBwcm9w
ZXJ0aWVzIGFyZSBkZWZpbmVkIGZvciBjb25zb2xlIGZ1bmN0aW9ucy4KLTwvcD4KLQotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS14bWwtZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS14bWwtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5ZDdhMmY1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUteG1sLWRvY3VtZW50LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IFtvYmplY3QgRG9jdW1l
bnRdCi1UZXN0cyB0aGF0IFhNTCBkb2N1bWVudCBjb250ZW50cyBhcmUgbG9nZ2VkIHVzaW5nIHRo
ZSBjb3JyZWN0IGNhc2UgaW4gdGhlIGNvbnNvbGUuCi0KLSNkb2N1bWVudDxNaXhlZENhc2U+IFRl
c3QgPC9NaXhlZENhc2U+IGNvbnNvbGUteG1sLWRvY3VtZW50Lmh0bWw6OQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXhtbC1kb2N1bWVudC5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS14bWwtZG9jdW1lbnQuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzE1ZmFjOS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXhtbC1kb2N1bWVudC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIG9ubG9hZCgpCi17Ci0gICAgY29uc29s
ZS5kaXJ4bWwoKG5ldyBET01QYXJzZXIoKSkucGFyc2VGcm9tU3RyaW5nKCI8TWl4ZWRDYXNlPiBU
ZXN0IDwvTWl4ZWRDYXNlPiIsICJ0ZXh0L3htbCIpKTsKLSAgICBydW5UZXN0KCk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuZXhwYW5kQ29uc29sZU1lc3NhZ2Vz
KCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKGNhbGxiYWNr
KTsKLQotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9Im9u
bG9hZCgpIj4KLTxwPgotVGVzdHMgdGhhdCBYTUwgZG9jdW1lbnQgY29udGVudHMgYXJlIGxvZ2dl
ZCB1c2luZyB0aGUgY29ycmVjdCBjYXNlIGluIHRoZSBjb25zb2xlLgotPC9wPgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLXhwYXRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUteHBhdGgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
NzZlNzkxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUteHBhdGgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IGNvbXBsZXRlCi1UZXN0cyAkeCBmb3IgaXRlcmF0b3IgYW5k
IG5vbi1pdGVyYXRvciB0eXBlcy4KLQotJHgoJzQyJykKLSR4KCduYW1lKC9odG1sKScpCi0keCgn
bm90KDQyKScpCi0keCgnL2h0bWwvYm9keS9wJykubGVuZ3RoCi00MgotImh0bWwiCi1mYWxzZQot
MQotY29tcGxldGUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS14cGF0aC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29s
ZS14cGF0aC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTc4OGVlLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUteHBhdGguaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNw
ZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKGFkZE1lc3NhZ2VTbmlmZmVyLCB0cnVlKTsKLQot
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoIiR4KCc0MicpIik7IC8vIG51bWJl
cgotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoIiR4KCduYW1lKC9odG1sKScp
Iik7IC8vIHN0cmluZwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoIiR4KCdu
b3QoNDIpJykiKTsgLy8gYm9vbGVhbgotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNv
bGUoIiR4KCcvaHRtbC9ib2R5L3AnKS5sZW5ndGgiKTsgLy8gbm9kZSBpdGVyYXRvcgotICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImNvbnNvbGUubG9nKCdjb21wbGV0ZScpIik7IC8v
IG5vZGUgaXRlcmF0b3IKLQotICAgIGZ1bmN0aW9uIGFkZE1lc3NhZ2VTbmlmZmVyKG1lc3NhZ2Up
Ci0gICAgewotICAgICAgICBpZiAobWVzc2FnZS50b1N0cmluZygpLmluZGV4T2YoImNvbXBsZXRl
IikgIT09IC0xKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2Fn
ZXMoKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAg
IH0KLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Ci08cD4KLVRlc3RzICR4IGZvciBpdGVyYXRvciBhbmQgbm9uLWl0ZXJhdG9yIHR5cGVz
LgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS9pbnNwZWN0LWh0bWwtYWxsLWNvbGxlY3Rpb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvaW5zcGVjdC1odG1sLWFsbC1jb2xsZWN0aW9u
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDk4NzI3ZC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9pbnNwZWN0LWh0bWwtYWxs
LWNvbGxlY3Rpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1U
ZXN0cyB0aGF0IEhUTUxBbGxDb2xsZWN0aW9uIHByb3BlcnRpZXMgY2FuIGJlIGluc3BlY3RlZC4K
LQotUEFTU0VEOiByZXRyaWV2ZWQgbGVuZ3RoIG9mIGRvY3VtZW50LmFsbAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9pbnNwZWN0LWh0bWwtYWxsLWNvbGxlY3Rp
b24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2luc3BlY3QtaHRtbC1hbGwt
Y29sbGVjdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OWU0YTRlLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2luc3BlY3QtaHRtbC1h
bGwtY29sbGVjdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAg
ICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoImRvY3VtZW50LmFsbCIsICJjb25zb2xlIiwgZmFsc2Us
IGRpZEdldEhUTUxBbGxDb2xsZWN0aW9uLmJpbmQodGhpcykpOwotICAgIGZ1bmN0aW9uIGRpZEdl
dEhUTUxBbGxDb2xsZWN0aW9uKGVycm9yLCByZXN1bHQsIHdhc1Rocm93bikKLSAgICB7Ci0gICAg
ICAgIGlmIChlcnJvciB8fCB3YXNUaHJvd24pIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJGQUlMRUQ6ICIgKyBlcnJvcik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAg
IHZhciBodG1sQWxsQ29sbGVjdGlvbiA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBh
eWxvYWQocmVzdWx0KTsKLSAgICAgICAgaHRtbEFsbENvbGxlY3Rpb24uY2FsbEZ1bmN0aW9uSlNP
TigiZnVuY3Rpb24oY29sbGVjdGlvbikgeyByZXR1cm4gdGhpcy5sZW5ndGggKyBjb2xsZWN0aW9u
Lmxlbmd0aDsgfSIsIFt7b2JqZWN0SWQ6IGh0bWxBbGxDb2xsZWN0aW9uLm9iamVjdElkfV0sIGRp
ZEdldExlbmd0aC5iaW5kKHRoaXMpKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkaWRHZXRMZW5n
dGgobGVuKQotICAgIHsKLSAgICAgICAgaWYgKCFsZW4gfHwgdHlwZW9mIGxlbiAhPT0gIm51bWJl
ciIpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRkFJTEVEOiB1bmV4cGVj
dGVkIGRvY3VtZW50LmFsbC5sZW5ndGg6ICIgKyBsZW4pOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUEFTU0VEOiByZXRyaWV2ZWQgbGVuZ3RoIG9m
IGRvY3VtZW50LmFsbCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTxwPgotVGVzdHMgdGhhdCBIVE1MQWxsQ29sbGVjdGlvbiBwcm9wZXJ0aWVzIGNhbiBiZSBp
bnNwZWN0ZWQuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL3Jlc291cmNlcy9sb2ctc291cmNlLmpzIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvcmVzb3VyY2VzL2xvZy1zb3VyY2UuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGZkYWIxNzcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvcmVzb3VyY2VzL2xvZy1zb3VyY2UuanMKKysrIC9kZXYvbnVsbApAQCAt
MSw0ICswLDAgQEAKLWZ1bmN0aW9uIGxvZzIoKQotewotICAgIGNvbnNvbGUubG9nLmFwcGx5KGNv
bnNvbGUsIGFyZ3VtZW50cyk7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvcmVzb3VyY2VzL3N5bnRheC1lcnJv
ci5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL3Jlc291cmNlcy9zeW50YXgtZXJy
b3IuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlYThjZDEuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvcmVzb3VyY2VzL3N5bnRheC1lcnJvci5q
cworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jb25zb2xlL3Jlc291cmNlcy91bmNhdWdodC1pbi1pZnJhbWUuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL3Jlc291cmNlcy91bmNhdWdodC1pbi1pZnJhbWUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ4MzZjMS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9yZXNvdXJjZXMvdW5jYXVnaHQtaW4taWZy
YW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08c2NyaXB0Pgotd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbihlKSB7Ci0gICAgZnVuY3Rpb24gZigp
IHsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGZ1bmN0aW9u
IGJhcigpIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkV4Y2VwdGlvbiBpbiBz
ZXRUaW1lb3V0IGNhbGxiYWNrLiIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYmFyKCk7
Ci0gICAgICAgIH0sIDApOwotCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiRXhjZXB0aW9uIGlu
ICdsb2FkJyBldmVudCBsaXN0ZW5lci4iKQotICAgIH0KLSAgICBmKCk7Ci19LCBmYWxzZSk7Ci0K
LWZ1bmN0aW9uIGEoKQotewotICAgIHRocm93IG5ldyBFcnJvcigiRXhjZXB0aW9uIGluIGlubGlu
ZSBzY3JpcHQuIikKLX0KLQotZnVuY3Rpb24gYigpCi17Ci0gICAgYSgpOwotfQotCi1iKCk7Ci08
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb29raWUtcGFyc2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb29raWUtcGFyc2VyLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDhkZTk1MTkuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nvb2tpZS1wYXJzZXItZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTQ1ICswLDAgQEAKLVRlc3RzIGluc3BlY3RvciBjb29raWUgcGFy
c2VyCi0KLXNvdXJjZTogY29va2llPXZhbHVlCi1uYW1lOiBjb29raWUsIHZhbHVlOiB2YWx1ZSwg
aHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiB1bmRl
ZmluZWQsIGRvbWFpbjogdW5kZWZpbmVkLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwg
c2l6ZTogMTIKLXsKLX0KLXNvdXJjZTogJHZlcnNpb249MTsgYT1iLGMgID0gICBkLCBlPWYKLW5h
bWU6IGEsIHZhbHVlOiBiLGMgID0gICBkLCBlPWYsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBm
YWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46IHVuZGVmaW5lZCwg
cG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDE3Ci17Ci19Ci1zb3VyY2U6ICR2
ZXJzaW9uPTE7IGE9YjtjICA9ICAgZDsgZSA9ZgotbmFtZTogYSwgdmFsdWU6IGIsIGh0dHBPbmx5
OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogdW5kZWZpbmVkLCBk
b21haW46IHVuZGVmaW5lZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDQK
LXsKLX0KLW5hbWU6IGMsIHZhbHVlOiBkLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2Us
IHNlc3Npb246IHRydWUsIHBhdGg6IHVuZGVmaW5lZCwgZG9tYWluOiB1bmRlZmluZWQsIHBvcnQ6
IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiAxMAotewotfQotbmFtZTogZSwgdmFsdWU6
IGYsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDog
dW5kZWZpbmVkLCBkb21haW46IHVuZGVmaW5lZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBu
L2EsIHNpemU6IDQKLXsKLX0KLXNvdXJjZTogY29va2UxID0gdmFsdWUxOyBhbm90aGVyIGNvb2tp
ZSA9IGFub3RoZXIgdmFsdWUKLW5hbWU6IGNvb2tlMSwgdmFsdWU6IHZhbHVlMSwgaHR0cE9ubHk6
IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiB1bmRlZmluZWQsIGRv
bWFpbjogdW5kZWZpbmVkLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogMjUK
LXsKLX0KLW5hbWU6IGNvb2tpZSwgdmFsdWU6IGFub3RoZXIgdmFsdWUsIGh0dHBPbmx5OiBmYWxz
ZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46
IHVuZGVmaW5lZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDIyCi17Ci19
Ci1zb3VyY2U6IGNvb2tlMSA9IHZhbHVlOyAkUGF0aD0vOyAkRG9tYWluPS5leGFtcGxlLmNvbTsK
LW5hbWU6IGNvb2tlMSwgdmFsdWU6IHZhbHVlLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFs
c2UsIHNlc3Npb246IHRydWUsIHBhdGg6IC8sIGRvbWFpbjogLmV4YW1wbGUuY29tLCBwb3J0OiB1
bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogNDYKLXsKLSAgICBkb21haW4gOiAiLmV4YW1w
bGUuY29tIgotICAgIHBhdGggOiAiLyIKLX0KLXNvdXJjZTogY29va2UxID0gdmFsdWU7ICRQYXRo
PS87ICREb21haW49LmV4YW1wbGUuY29tIDsgQ29va2llMiA9IHZhbHVlMjsgJFBhdGggPSAvZm9v
OyAkRE9NQUlOID0gZm9vLmV4YW1wbGUuY29tOwotbmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUs
IGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogLywg
ZG9tYWluOiAuZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXpl
OiA0OAotewotICAgIGRvbWFpbiA6ICIuZXhhbXBsZS5jb20iCi0gICAgcGF0aCA6ICIvIgotfQot
bmFtZTogQ29va2llMiwgdmFsdWU6IHZhbHVlMiwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZh
bHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiAvZm9vLCBkb21haW46IGZvby5leGFtcGxlLmNvbSwg
cG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDU4Ci17Ci0gICAgZG9tYWluIDog
ImZvby5leGFtcGxlLmNvbSIKLSAgICBwYXRoIDogIi9mb28iCi19Ci1zb3VyY2U6IGNvb2tlMSA9
IHZhbHVlOyAkUGF0aD0vOyAkRG9tYWluPS5leGFtcGxlLmNvbQotQ29va2llMiA9IHZhbHVlMjsg
JFBhdGggPSAvZm9vOyAkRE9NQUlOID0gZm9vLmV4YW1wbGUuY29tOyAKLW5hbWU6IGNvb2tlMSwg
dmFsdWU6IHZhbHVlLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IHRy
dWUsIHBhdGg6IC8sIGRvbWFpbjogLmV4YW1wbGUuY29tLCBwb3J0OiB1bmRlZmluZWQsIGV4cGly
ZXM6IG4vYSwgc2l6ZTogNDYKLXsKLSAgICBkb21haW4gOiAiLmV4YW1wbGUuY29tIgotICAgIHBh
dGggOiAiLyIKLX0KLW5hbWU6IENvb2tpZTIsIHZhbHVlOiB2YWx1ZTIsIGh0dHBPbmx5OiBmYWxz
ZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogL2ZvbywgZG9tYWluOiBmb28u
ZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiA1OQotewot
ICAgIGRvbWFpbiA6ICJmb28uZXhhbXBsZS5jb20iCi0gICAgcGF0aCA6ICIvZm9vIgotfQotc291
cmNlOiAkdmVyc2lvbiA9MTsgY29va2UxID0gdmFsdWU7ICRQYXRoPS87ICREb21haW4gICA9LmV4
YW1wbGUuY29tOyAgCi0gQ29va2llMiA9IHZhbHVlMjsgJFBhdGggPSAvZm9vOyAkRE9NQUlOID0g
Zm9vLmV4YW1wbGUuY29tOwotbmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUsIGh0dHBPbmx5OiBm
YWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogLywgZG9tYWluOiAuZXhh
bXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiA1MwotewotICAg
IGRvbWFpbiA6ICIuZXhhbXBsZS5jb20iCi0gICAgcGF0aCA6ICIvIgotfQotbmFtZTogQ29va2ll
MiwgdmFsdWU6IHZhbHVlMiwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9u
OiB0cnVlLCBwYXRoOiAvZm9vLCBkb21haW46IGZvby5leGFtcGxlLmNvbSwgcG9ydDogdW5kZWZp
bmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDU4Ci17Ci0gICAgZG9tYWluIDogImZvby5leGFtcGxl
LmNvbSIKLSAgICBwYXRoIDogIi9mb28iCi19Ci1zb3VyY2U6IGNvb2tpZT12YWx1ZQotbmFtZTog
Y29va2llLCB2YWx1ZTogdmFsdWUsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vz
c2lvbjogdHJ1ZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46IHVuZGVmaW5lZCwgcG9ydDogdW5k
ZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDEyCi17Ci19Ci1zb3VyY2U6IGE9YgotIGM9ZAot
IGYKLW5hbWU6IGEsIHZhbHVlOiBiLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNl
c3Npb246IHRydWUsIHBhdGg6IHVuZGVmaW5lZCwgZG9tYWluOiB1bmRlZmluZWQsIHBvcnQ6IHVu
ZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiA1Ci17Ci19Ci1uYW1lOiBjLCB2YWx1ZTogZCwg
aHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiB1bmRl
ZmluZWQsIGRvbWFpbjogdW5kZWZpbmVkLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwg
c2l6ZTogNQotewotfQotbmFtZTogLCB2YWx1ZTogZiwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6
IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiB1bmRlZmluZWQsIGRvbWFpbjogdW5kZWZpbmVk
LCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogMQotewotfQotc291cmNlOiBj
b29rZTEgPSB2YWx1ZTsgUGF0aD0vOyBEb21haW49LmV4YW1wbGUuY29tOwotbmFtZTogY29va2Ux
LCB2YWx1ZTogdmFsdWUsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjog
dHJ1ZSwgcGF0aDogLywgZG9tYWluOiAuZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhw
aXJlczogbi9hLCBzaXplOiA0NAotewotICAgIGRvbWFpbiA6ICIuZXhhbXBsZS5jb20iCi0gICAg
cGF0aCA6ICIvIgotfQotc291cmNlOiBjb29rZTEgPSB2YWx1ZTsgUGF0aD0vOyBEb21haW49ICAu
ZXhhbXBsZS5jb20gCi1Db29raWUyID0gdmFsdWUyOyBQYXRoID0gL2ZvbzsgRG9tYWluID0gZm9v
LmV4YW1wbGUuY29tCi1uYW1lOiBjb29rZTEsIHZhbHVlOiB2YWx1ZSwgaHR0cE9ubHk6IGZhbHNl
LCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiAvLCBkb21haW46IC5leGFtcGxl
LmNvbSwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDQ3Ci17Ci0gICAgZG9t
YWluIDogIi5leGFtcGxlLmNvbSIKLSAgICBwYXRoIDogIi8iCi19Ci1uYW1lOiBDb29raWUyLCB2
YWx1ZTogdmFsdWUyLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IHRy
dWUsIHBhdGg6IC9mb28sIGRvbWFpbjogZm9vLmV4YW1wbGUuY29tLCBwb3J0OiB1bmRlZmluZWQs
IGV4cGlyZXM6IG4vYSwgc2l6ZTogNTUKLXsKLSAgICBkb21haW4gOiAiZm9vLmV4YW1wbGUuY29t
IgotICAgIHBhdGggOiAiL2ZvbyIKLX0KLXNvdXJjZTogY29va2UxID0gdmFsdWU7IGV4cGlyZXMg
PSBNb24sIE9jdCAxOCAyMDEwIDE3OjAwIEdNVCswMDAwOyBEb21haW4gICA9LmV4YW1wbGUuY29t
Ci1Db29raWUyID0gdmFsdWUyOyBQYXRoID0gL2ZvbzsgRE9NQUlOID0gZm9vLmV4YW1wbGUuY29t
OyBIdHRwT25seTsgU2VjdXJlOyBEaXNjYXJkOwotbmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUs
IGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogZmFsc2UsIHBhdGg6IHVu
ZGVmaW5lZCwgZG9tYWluOiAuZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczog
MTI4NzQyMTIwMDAwMCwgc2l6ZTogODIKLXsKLSAgICBkb21haW4gOiAiLmV4YW1wbGUuY29tIgot
ICAgIGV4cGlyZXMgOiAiTW9uLCBPY3QgMTggMjAxMCAxNzowMCBHTVQrMDAwMCIKLX0KLW5hbWU6
IENvb2tpZTIsIHZhbHVlOiB2YWx1ZTIsIGh0dHBPbmx5OiB0cnVlLCBzZWN1cmU6IHRydWUsIHNl
c3Npb246IHRydWUsIHBhdGg6IC9mb28sIGRvbWFpbjogZm9vLmV4YW1wbGUuY29tLCBwb3J0OiB1
bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogODMKLXsKLSAgICBkaXNjYXJkIDogdW5kZWZp
bmVkCi0gICAgZG9tYWluIDogImZvby5leGFtcGxlLmNvbSIKLSAgICBodHRwb25seSA6IHVuZGVm
aW5lZAotICAgIHBhdGggOiAiL2ZvbyIKLSAgICBzZWN1cmUgOiB1bmRlZmluZWQKLX0KLXNvdXJj
ZTogY29va2UxID0gdmFsdWU7IG1heC1hZ2U9IDE0NDA7IERvbWFpbiAgID0uZXhhbXBsZS5jb20K
LSBDb29raWUyID0gdmFsdWUyOyBQYXRoID0gL2ZvbzsgRE9NQUlOID0gZm9vLmV4YW1wbGUuY29t
OyBIdHRwT25seTsgU2VjdXJlOyBEaXNjYXJkOwotbmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUs
IGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogZmFsc2UsIHBhdGg6IHVu
ZGVmaW5lZCwgZG9tYWluOiAuZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczog
MTI4NzQyMjY0MDAwMCwgc2l6ZTogNTUKLXsKLSAgICBkb21haW4gOiAiLmV4YW1wbGUuY29tIgot
ICAgIG1heC1hZ2UgOiAiMTQ0MCIKLX0KLW5hbWU6IENvb2tpZTIsIHZhbHVlOiB2YWx1ZTIsIGh0
dHBPbmx5OiB0cnVlLCBzZWN1cmU6IHRydWUsIHNlc3Npb246IHRydWUsIHBhdGg6IC9mb28sIGRv
bWFpbjogZm9vLmV4YW1wbGUuY29tLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6
ZTogODMKLXsKLSAgICBkaXNjYXJkIDogdW5kZWZpbmVkCi0gICAgZG9tYWluIDogImZvby5leGFt
cGxlLmNvbSIKLSAgICBodHRwb25seSA6IHVuZGVmaW5lZAotICAgIHBhdGggOiAiL2ZvbyIKLSAg
ICBzZWN1cmUgOiB1bmRlZmluZWQKLX0KLXNvdXJjZTogY29va2UxOyBQYXRoPS87IERvbWFpbj0u
ZXhhbXBsZS5jb207Ci1uYW1lOiAsIHZhbHVlOiBjb29rZTEsIGh0dHBPbmx5OiBmYWxzZSwgc2Vj
dXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogLywgZG9tYWluOiAuZXhhbXBsZS5jb20s
IHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiAzNgotewotICAgIGRvbWFpbiA6
ICIuZXhhbXBsZS5jb20iCi0gICAgcGF0aCA6ICIvIgotfQotc291cmNlOiBjb29rZTE9OyBQYXRo
PS87IERvbWFpbj0uZXhhbXBsZS5jb207Ci1uYW1lOiBjb29rZTEsIHZhbHVlOiAsIGh0dHBPbmx5
OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogLywgZG9tYWluOiAu
ZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiAzNwotewot
ICAgIGRvbWFpbiA6ICIuZXhhbXBsZS5jb20iCi0gICAgcGF0aCA6ICIvIgotfQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXBhcnNlci5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nvb2tpZS1wYXJzZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOGRkMmVkNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2ll
LXBhcnNlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLWZ1bmN0aW9u
IGluaXRpYWxpemVfQ29va2llVGVzdHMoKQotewotCi1JbnNwZWN0b3JUZXN0LmR1bXBDb29raWUg
PSBmdW5jdGlvbihjb29raWUpCi17Ci0gICAgdmFyIHJlcXVlc3REYXRlID0gbmV3IERhdGUoIk1v
biBPY3QgMTggMjAxMCAxNzowMDowMCBHTVQrMDAwMCIpOwotICAgIHZhciBleHBpcmVzID0gY29v
a2llLmV4cGlyZXNEYXRlKHJlcXVlc3REYXRlKTsKLQotICAgIHZhciBvdXRwdXQgPSAibmFtZTog
IiArIGNvb2tpZS5uYW1lKCkgKyAiLCB2YWx1ZTogIiArIGNvb2tpZS52YWx1ZSgpICsgIiwgaHR0
cE9ubHk6ICIgKyBjb29raWUuaHR0cE9ubHkoKSArCi0gICAgICAgICIsIHNlY3VyZTogIiArIGNv
b2tpZS5zZWN1cmUoKSArICIsIHNlc3Npb246ICIgKyBjb29raWUuc2Vzc2lvbigpICsgIiwgcGF0
aDogIiArIGNvb2tpZS5wYXRoKCkgKwotICAgICAgICAiLCBkb21haW46ICIgKyBjb29raWUuZG9t
YWluKCkgKyAiLCBwb3J0OiAiICsgY29va2llLnBvcnQoKSArCi0gICAgICAgICIsIGV4cGlyZXM6
ICIgKyAoZXhwaXJlcyA/IGV4cGlyZXMuZ2V0VGltZSgpIDogIm4vYSIpICsKLSAgICAgICAgIiwg
c2l6ZTogIiArIGNvb2tpZS5zaXplKCk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChv
dXRwdXQpOwotICAgIEluc3BlY3RvclRlc3QuYWRkT2JqZWN0KGNvb2tpZS5hdHRyaWJ1dGVzKCkp
OwotfQotCi1JbnNwZWN0b3JUZXN0LmR1bXBDb29raWVzID0gZnVuY3Rpb24oY29va2llcykKLXsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvb2tpZXMubGVuZ3RoOyArK2kpCi0gICAgICAgIElu
c3BlY3RvclRlc3QuZHVtcENvb2tpZShjb29raWVzW2ldKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5w
YXJzZUFuZER1bXBDb29raWUgPSBmdW5jdGlvbihoZWFkZXIpCi17Ci0gICAgdmFyIHBhcnNlciA9
IG5ldyBXZWJJbnNwZWN0b3IuQ29va2llUGFyc2VyKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoInNvdXJjZTogIiArIGhlYWRlcik7Ci0gICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29va2ll
cyhwYXJzZXIucGFyc2VDb29raWUoaGVhZGVyKSk7Ci19Ci0KLUluc3BlY3RvclRlc3QucGFyc2VB
bmREdW1wU2V0Q29va2llID0gZnVuY3Rpb24oaGVhZGVyKQotewotICAgIHZhciBwYXJzZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlcigpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJzb3VyY2U6ICIgKyBoZWFkZXIpOwotICAgIEluc3BlY3RvclRlc3QuZHVtcENvb2tpZXMo
cGFyc2VyLnBhcnNlU2V0Q29va2llKGhlYWRlcikpOwotfQotCi19Ci0KLXZhciB0ZXN0ID0gZnVu
Y3Rpb24oKQotewotICAgIEluc3BlY3RvclRlc3QucGFyc2VBbmREdW1wQ29va2llKCJjb29raWU9
dmFsdWUiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcENvb2tpZSgiJHZlcnNpb249
MTsgYT1iLGMgID0gICBkLCBlPWYiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcENv
b2tpZSgiJHZlcnNpb249MTsgYT1iO2MgID0gICBkOyBlID1mIik7Ci0gICAgSW5zcGVjdG9yVGVz
dC5wYXJzZUFuZER1bXBDb29raWUoImNvb2tlMSA9IHZhbHVlMTsgYW5vdGhlciBjb29raWUgPSBh
bm90aGVyIHZhbHVlIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBDb29raWUoImNv
b2tlMSA9IHZhbHVlOyAkUGF0aD0vOyAkRG9tYWluPS5leGFtcGxlLmNvbTsiKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LnBhcnNlQW5kRHVtcENvb2tpZSgiY29va2UxID0gdmFsdWU7ICRQYXRoPS87ICRE
b21haW49LmV4YW1wbGUuY29tIDsgQ29va2llMiA9IHZhbHVlMjsgJFBhdGggPSAvZm9vOyAkRE9N
QUlOID0gZm9vLmV4YW1wbGUuY29tOyIpOwotICAgIEluc3BlY3RvclRlc3QucGFyc2VBbmREdW1w
Q29va2llKCJjb29rZTEgPSB2YWx1ZTsgJFBhdGg9LzsgJERvbWFpbj0uZXhhbXBsZS5jb21cbkNv
b2tpZTIgPSB2YWx1ZTI7ICRQYXRoID0gL2ZvbzsgJERPTUFJTiA9IGZvby5leGFtcGxlLmNvbTsg
Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBDb29raWUoIiR2ZXJzaW9uID0xOyBj
b29rZTEgPSB2YWx1ZTsgJFBhdGg9LzsgJERvbWFpbiAgID0uZXhhbXBsZS5jb207ICBcbiBDb29r
aWUyID0gdmFsdWUyOyAkUGF0aCA9IC9mb287ICRET01BSU4gPSBmb28uZXhhbXBsZS5jb207Iik7
Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcFNldENvb2tpZSgiY29va2llPXZhbHVl
Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBTZXRDb29raWUoImE9YlxuIGM9ZFxu
IGYiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcFNldENvb2tpZSgiY29va2UxID0g
dmFsdWU7IFBhdGg9LzsgRG9tYWluPS5leGFtcGxlLmNvbTsiKTsKLSAgICBJbnNwZWN0b3JUZXN0
LnBhcnNlQW5kRHVtcFNldENvb2tpZSgiY29va2UxID0gdmFsdWU7IFBhdGg9LzsgRG9tYWluPSAg
LmV4YW1wbGUuY29tIFxuQ29va2llMiA9IHZhbHVlMjsgUGF0aCA9IC9mb287IERvbWFpbiA9IGZv
by5leGFtcGxlLmNvbSIpOwotICAgIEluc3BlY3RvclRlc3QucGFyc2VBbmREdW1wU2V0Q29va2ll
KCJjb29rZTEgPSB2YWx1ZTsgZXhwaXJlcyA9IE1vbiwgT2N0IDE4IDIwMTAgMTc6MDAgR01UKzAw
MDA7IERvbWFpbiAgID0uZXhhbXBsZS5jb21cbkNvb2tpZTIgPSB2YWx1ZTI7IFBhdGggPSAvZm9v
OyBET01BSU4gPSBmb28uZXhhbXBsZS5jb207IEh0dHBPbmx5OyBTZWN1cmU7IERpc2NhcmQ7Iik7
Ci0gICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBTZXRDb29raWUoImNvb2tlMSA9IHZhbHVl
OyBtYXgtYWdlPSAxNDQwOyBEb21haW4gICA9LmV4YW1wbGUuY29tXG4gQ29va2llMiA9IHZhbHVl
MjsgUGF0aCA9IC9mb287IERPTUFJTiA9IGZvby5leGFtcGxlLmNvbTsgSHR0cE9ubHk7IFNlY3Vy
ZTsgRGlzY2FyZDsiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcFNldENvb2tpZSgi
Y29va2UxOyBQYXRoPS87IERvbWFpbj0uZXhhbXBsZS5jb207Iik7Ci0gICAgSW5zcGVjdG9yVGVz
dC5wYXJzZUFuZER1bXBTZXRDb29raWUoImNvb2tlMT07IFBhdGg9LzsgRG9tYWluPS5leGFtcGxl
LmNvbTsiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIGluc3BlY3Rv
ciBjb29raWUgcGFyc2VyPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2Nvb2tpZS1yZXNvdXJjZS1tYXRjaC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXJlc291cmNlLW1hdGNoLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmRjMTI5Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29va2llLXJlc291cmNlLW1hdGNoLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRlc3RzIHRoYXQgY29va2llcyBhcmUgbWF0Y2hlZCB1
cCB3aXRoIHJlc291cmNlcyBjb3JyZWN0bHkuCi0KLVswLDIsNCw2LDgsMTAsMTIsMTRdCi1bMCwx
LDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNV0KLVsyLDMsNiw3LDEwLDExLDE0LDE1
XQotWzYsMTRdCi1bNCw1LDYsNywxMiwxMywxNCwxNV0KLVs2LDcsMTQsMTVdCi1bOCwxMCwxMiwx
NF0KLVs4LDksMTAsMTEsMTIsMTMsMTQsMTVdCi1bMTAsMTEsMTQsMTVdCi1bMTRdCi1bMTIsMTMs
MTQsMTVdCi1bMTQsMTVdCi1bXQotW10KLVtdCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb29raWUtcmVzb3VyY2UtbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb29raWUtcmVzb3VyY2UtbWF0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggY2Y5MjkxMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXJl
c291cmNlLW1hdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0KLSAgICB2
YXIgY29va2llcyA9IFsKLSAgICAgICAgY3JlYXRlQ29va2llKCJpbnNlY3VyZU9ubHlXZWJraXQi
LCAiMTIzNDU2Nzg5MCIsIGZhbHNlLCAid2Via2l0Lm9yZyIsICIvIiksCi0gICAgICAgIGNyZWF0
ZUNvb2tpZSgiaW5zZWN1cmVBbGxXZWJraXQiLCAiMTIzNDU2Nzg5MDEyMzQ1NiIsIGZhbHNlLCAi
LndlYmtpdC5vcmciLCAiLyIpLAotICAgICAgICBjcmVhdGVDb29raWUoImluc2VjdXJlQWxsV2Vi
a2l0UGF0aCIsICIxMjM0NTY3ODkwMTIzNDU2IiwgZmFsc2UsICIud2Via2l0Lm9yZyIsICIvcGF0
aCIpLAotICAgICAgICBjcmVhdGVDb29raWUoInNlY3VyZU9ubHlXZWJraXRQYXRoIiwgImJhciIs
IHRydWUsICJ3ZWJraXQub3JnIiwgIi9wYXRoIiksCi0gICAgICAgIGNyZWF0ZUNvb2tpZSgic2Vj
dXJlQWxsV2Via2l0IiwgImZvbyIsIHRydWUsICIud2Via2l0Lm9yZyIsICIvIiksCi0gICAgICAg
IGNyZWF0ZUNvb2tpZSgic2VjdXJlQWxsV2Via2l0UGF0aCIsICJmb28iLCB0cnVlLCAiLndlYmtp
dC5vcmciLCAiL3BhdGgiKSwKLSAgICAgICAgY3JlYXRlQ29va2llKCJpbnNlY3VyZU9ubHlXZWJr
aXRQb3J0IiwgIjEyMzQ1Njc4OTAiLCBmYWxzZSwgIndlYmtpdC5vcmciLCAiLyIsIDgwKSwKLSAg
ICAgICAgY3JlYXRlQ29va2llKCJpbnNlY3VyZUFsbFdlYmtpdFBvcnQiLCAiMTIzNDU2Nzg5MDEy
MzQ1NiIsIGZhbHNlLCAiLndlYmtpdC5vcmciLCAiLyIsIDgwKSwKLSAgICAgICAgY3JlYXRlQ29v
a2llKCJpbnNlY3VyZUFsbFdlYmtpdFBhdGhQb3J0IiwgIjEyMzQ1Njc4OTAxMjM0NTYiLCBmYWxz
ZSwgIi53ZWJraXQub3JnIiwgIi9wYXRoIiwgODApLAotICAgICAgICBjcmVhdGVDb29raWUoInNl
Y3VyZU9ubHlXZWJraXRQYXRoUG9ydCIsICJiYXIiLCB0cnVlLCAid2Via2l0Lm9yZyIsICIvcGF0
aCIsIDgwKSwKLSAgICAgICAgY3JlYXRlQ29va2llKCJzZWN1cmVBbGxXZWJraXRQb3J0IiwgImZv
byIsIHRydWUsICIud2Via2l0Lm9yZyIsICIvIiwgODApLAotICAgICAgICBjcmVhdGVDb29raWUo
InNlY3VyZUFsbFdlYmtpdFBhdGhQb3J0IiwgImZvbyIsIHRydWUsICIud2Via2l0Lm9yZyIsICIv
cGF0aCIsIDgwKSwKLSAgICAgICAgY3JlYXRlQ29va2llKCJub25NYXRjaGluZzEiLCAiYmFyIiwg
ZmFsc2UsICJ3ZWJraXQuem9vIiwgIi8iKSwKLSAgICAgICAgY3JlYXRlQ29va2llKCJub25NYXRj
aGluZzIiLCAiYmFyIiwgZmFsc2UsICJ3ZWJraXQub3JnIiwgIi9iYWRQYXRoIiksCi0gICAgICAg
IGNyZWF0ZUNvb2tpZSgibm9uTWF0Y2hpbmczIiwgImJhciIsIHRydWUsICIubW9vLmNvbSIsICIv
IikKLSAgICBdOwotCi0gICAgdmFyIHJlc291cmNlVVJMcyA9IFsKLSAgICAgICAgImh0dHA6Ly93
ZWJraXQub3JnIiwgLy8gMAotICAgICAgICAiaHR0cDovL3d3dy53ZWJraXQub3JnOjgxIiwgLy8g
MQotICAgICAgICAiaHR0cDovL3dlYmtpdC5vcmcvcGF0aCIsIC8vIDIKLSAgICAgICAgImh0dHA6
Ly93d3cud2Via2l0Lm9yZy9wYXRoIiwgLy8gMwotICAgICAgICAiaHR0cHM6Ly93ZWJraXQub3Jn
LyIsIC8vIDQKLSAgICAgICAgImh0dHBzOi8vd3d3LndlYmtpdC5vcmcvIiwgLy8gNQotICAgICAg
ICAiaHR0cHM6Ly93ZWJraXQub3JnOjgxL3BhdGgiLCAvLyA2Ci0gICAgICAgICJodHRwczovL3d3
dy53ZWJraXQub3JnL3BhdGgiLCAvLyA3Ci0KLSAgICAgICAgImh0dHA6Ly93ZWJraXQub3JnOjgw
IiwgLy8gOAotICAgICAgICAiaHR0cDovL3d3dy53ZWJraXQub3JnOjgwIiwgLy8gOQotICAgICAg
ICAiaHR0cDovL3dlYmtpdC5vcmc6ODAvcGF0aCIsIC8vIDEwCi0gICAgICAgICJodHRwOi8vd3d3
LndlYmtpdC5vcmc6ODAvcGF0aCIsIC8vIDExCi0gICAgICAgICJodHRwczovL3dlYmtpdC5vcmc6
ODAvIiwgLy8gMTIKLSAgICAgICAgImh0dHBzOi8vd3d3LndlYmtpdC5vcmc6ODAvIiwgLy8gMTMK
LSAgICAgICAgImh0dHBzOi8vd2Via2l0Lm9yZzo4MC9wYXRoIiwgLy8gMTQKLSAgICAgICAgImh0
dHBzOi8vd3d3LndlYmtpdC5vcmc6ODAvcGF0aCIsIC8vIDE1Ci0KLSAgICAgICAgImh0dHA6Ly93
d3cuYm9vLmNvbTo4MCIsIC8vIDE2Ci0gICAgICAgICJodHRwczovL3d3dy5ib28uY29tOjgwL3Bh
dGgiLCAvLyAxNwotICAgICAgICAiaHR0cDovL3d3dy5tb28uY29tOjgwLyIsIC8vIDE4Ci0gICAg
ICAgICJodHRwOi8vd3d3LmJvby5jb206ODAiLCAvLyAxOQotICAgICAgICAiaHR0cHM6Ly93d3cu
Ym9vLmNvbTo4MC9wYXRoIiwgLy8gMjAKLSAgICAgICAgImh0dHA6Ly93d3cubW9vLmNvbTo4MC8i
IC8vIDIxCi0gICAgXTsKLQotICAgIHZhciByZXN1bHQgPSBbXTsKLSAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGNvb2tpZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIGNvb2tpZVJlc3VsdCA9
IFtdOwotICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHJlc291cmNlVVJMcy5sZW5ndGg7ICsr
aikgewotICAgICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5Db29raWVzLmNvb2tpZU1hdGNoZXNS
ZXNvdXJjZVVSTChjb29raWVzW2ldLCByZXNvdXJjZVVSTHNbal0pKQotICAgICAgICAgICAgICAg
IGNvb2tpZVJlc3VsdC5wdXNoKGopOwotICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJbIiArIGNvb2tpZVJlc3VsdCArICJdIik7Ci0gICAgfQotICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVDb29raWUobmFtZSwg
dmFsdWUsIHNlY3VyZSwgZG9tYWluLCBwYXRoLCBwb3J0KQotICAgIHsKLSAgICAgICAgdmFyIHBy
b3RvY29sQ29va2llID0gewotICAgICAgICAgICAgbmFtZTogbmFtZSwKLSAgICAgICAgICAgIHZh
bHVlOiB2YWx1ZSwKLSAgICAgICAgICAgIGRvbWFpbjogZG9tYWluLAotICAgICAgICAgICAgcG9y
dDogcG9ydCwKLSAgICAgICAgICAgIHBhdGg6IHBhdGgsCi0gICAgICAgICAgICBleHBpcmVzOiAi
VGh1IEphbiAwMSAxOTcwIDAwOjAwOjAwIEdNVCIsCi0gICAgICAgICAgICBzaXplOiBuYW1lLmxl
bmd0aCArIHZhbHVlLmxlbmd0aCwKLSAgICAgICAgICAgIGh0dHBPbmx5OiBmYWxzZSwKLSAgICAg
ICAgICAgIHNlY3VyZTogc2VjdXJlLAotICAgICAgICAgICAgc2Vzc2lvbjogdHJ1ZQotICAgICAg
ICB9OwotICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNvb2tpZXMuYnVpbGRDb29raWVQcm90
b2NvbE9iamVjdChwcm90b2NvbENvb2tpZSk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBjb29raWVzIGFy
ZSBtYXRjaGVkIHVwIHdpdGggcmVzb3VyY2VzIGNvcnJlY3RseS4KLTwvcD4KLQotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2N1cmwtY29tbWFuZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3VybC1jb21tYW5kLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFkMDY4YS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3VybC1jb21tYW5kLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDcgKzAsMCBAQAotVGVzdHMgY3VybCBjb21tYW5kIGdlbmVyYXRpb24KLQot
Y3VybCAiaHR0cDovL2V4YW1wbGUub3JnL3BhdGgiCi1jdXJsICJodHRwOi8vZXhhbXBsZS5vcmcv
cGF0aCIgLS1kYXRhLWJpbmFyeSAiMTIzIgotY3VybCAiaHR0cDovL2V4YW1wbGUub3JnL3BhdGgi
IC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgLS1k
YXRhICIxJmIiCi1jdXJsICJodHRwOi8vZXhhbXBsZS5vcmcvcGF0aCIgLUggIkNvbnRlbnQtVHlw
ZTogYXBwbGljYXRpb24vanNvbiIgLS1kYXRhLWJpbmFyeSAie1wiYVwiOjF9IgotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3VybC1jb21tYW5kLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3VybC1jb21tYW5kLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDMzYmYxZDUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2N1cmwtY29t
bWFuZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXZhciB0ZXN0ID0g
ZnVuY3Rpb24oKQotewotICAgIHZhciBsb2dWaWV3ID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3
b3JrIikuX25ldHdvcmtMb2dWaWV3OwotICAgIAotICAgIGZ1bmN0aW9uIG5ld1JlcXVlc3QoaGVh
ZGVycywgZGF0YSkKLSAgICB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFdlYkluc3BlY3Rv
ci5OZXR3b3JrUmVxdWVzdCgwLCAiaHR0cDovL2V4YW1wbGUub3JnL3BhdGgiLCAwLCAwLCAwKTsK
LSAgICAgICAgcmVxdWVzdC5yZXF1ZXN0TWV0aG9kID0gZGF0YSA/ICJQT1NUIiA6ICJHRVQiOwot
ICAgICAgICB2YXIgaGVhZGVyTGlzdCA9IFtdOwotICAgICAgICBpZiAoaGVhZGVycykgewotICAg
ICAgICAgICAgZm9yICh2YXIgaSBpbiBoZWFkZXJzKQotICAgICAgICAgICAgICAgIGhlYWRlckxp
c3QucHVzaCh7bmFtZTogaSwgdmFsdWU6IGhlYWRlcnNbaV19KTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAoZGF0YSkgewotICAgICAgICAgICAgaGVhZGVyTGlzdC5wdXNoKHtuYW1lOiAiQ29udGVu
dC1MZW5ndGgiLCB2YWx1ZTogZGF0YS5sZW5ndGh9KTsKLSAgICAgICAgICAgIHJlcXVlc3QucmVx
dWVzdEZvcm1EYXRhID0gZGF0YTsKLSAgICAgICAgfQotICAgICAgICByZXF1ZXN0LnJlcXVlc3RI
ZWFkZXJzID0gaGVhZGVyTGlzdDsKLSAgICAgICAgcmV0dXJuIHJlcXVlc3Q7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gZHVtcFJlcXVlc3QoaGVhZGVycywgZGF0YSkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KGxvZ1ZpZXcuX2dlbmVyYXRlQ3VybENvbW1hbmQobmV3UmVx
dWVzdChoZWFkZXJzLCBkYXRhKSkpOwotICAgIH0KLQotICAgIGR1bXBSZXF1ZXN0KHt9KQotICAg
IGR1bXBSZXF1ZXN0KHt9LCAiMTIzIik7Ci0gICAgZHVtcFJlcXVlc3QoeyJDb250ZW50LVR5cGUi
OiAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sICIxJmIiKTsKLSAgICBkdW1w
UmVxdWVzdCh7IkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIn0sICJ7XCJhXCI6MX0i
KTsKLSAgICAKLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIGN1cmwgY29t
bWFuZCBnZW5lcmF0aW9uPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RhdGFiYXNlLXRhYmxlLW5hbWUtZXhjYXBpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RhdGFiYXNlLXRhYmxlLW5hbWUtZXhjYXBpbmctZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2M4Y2E4Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kYXRhYmFzZS10YWJsZS1uYW1lLWV4Y2FwaW5n
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotVGVzdHMgaG93IHRh
YmxlIG5hbWVzIGFyZSBlc2NhcGVkIGluIGRhdGFiYXNlIHRhYmxlIHZpZXcuCi0KLUJ1ZyA3NDQy
MgotT3JpZ2luYWwgdmFsdWU6IHRhYmxlLW5hbWUtd2l0aC1kYXNoZXMtYW5kLSJxdW90ZXMiCi1F
c2NhcGVkIHZhbHVlOiB0YWJsZS1uYW1lLXdpdGgtZGFzaGVzLWFuZC0iInF1b3RlcyIiCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kYXRhYmFzZS10YWJsZS1uYW1lLWV4Y2Fw
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGF0YWJhc2UtdGFibGUtbmFtZS1leGNh
cGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTk1MGRlLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kYXRhYmFzZS10YWJsZS1uYW1lLWV4Y2FwaW5n
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5z
aG93UGFuZWwoInJlc291cmNlcyIpOwotICAgIHZhciB0YWJsZU5hbWUgPSAidGFibGUtbmFtZS13
aXRoLWRhc2hlcy1hbmQtXCJxdW90ZXNcIiI7Ci0gICAgdmFyIGVzY2FwZWRUYWJsZU5hbWUgPSBX
ZWJJbnNwZWN0b3IuRGF0YWJhc2VUYWJsZVZpZXcucHJvdG90eXBlLl9lc2NhcGVUYWJsZU5hbWUo
dGFibGVOYW1lLCAiIiwgdHJ1ZSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk9yaWdp
bmFsIHZhbHVlOiAiICsgdGFibGVOYW1lKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
RXNjYXBlZCB2YWx1ZTogIiArIGVzY2FwZWRUYWJsZU5hbWUpOwotICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLSA8cD5UZXN0cyBob3cgdGFibGUgbmFtZXMgYXJlIGVzY2FwZWQgaW4gZGF0YWJh
c2UgdGFibGUgdmlldy48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjEyMDUiPkJ1ZyA3NDQyMjwvYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kYXRhZ3JpZC1hdXRvc2l6ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGF0YWdyaWQtYXV0b3NpemUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OWNhODFkLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kYXRhZ3JpZC1hdXRvc2l6ZS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1UZXN0cyBEYXRhR3JpZCBjb2x1bW4gYXV0byBzaXpl
IGNhbGN1bGF0aW9uLgotCi1CdWcgMTAxMzYzCi1BdXRvIHNpemluZyBbMTk4LDIsNDAwXSwgbWlu
UGVyY2VudD05MCwgbWF4UGVyY2VudD11bmRlZmluZWQKLSAgICBbMzMsMzMsMzRdCi1BdXRvIHNp
emluZyBbMTAwMF0sIG1pblBlcmNlbnQ9NSwgbWF4UGVyY2VudD11bmRlZmluZWQKLSAgICBbMTAw
XQotQXV0byBzaXppbmcgWzEwXSwgbWluUGVyY2VudD01LCBtYXhQZXJjZW50PXVuZGVmaW5lZAot
ICAgIFsxMDBdCi1BdXRvIHNpemluZyBbMTAwMCwxMDAwXSwgbWluUGVyY2VudD01LCBtYXhQZXJj
ZW50PXVuZGVmaW5lZAotICAgIFs1MCw1MF0KLUF1dG8gc2l6aW5nIFszMCwzMCwzMCwzMF0sIG1p
blBlcmNlbnQ9NSwgbWF4UGVyY2VudD11bmRlZmluZWQKLSAgICBbMjUsMjUsMjUsMjVdCi1BdXRv
IHNpemluZyBbMSwxMDAsMTAwLDEwMF0sIG1pblBlcmNlbnQ9MjUsIG1heFBlcmNlbnQ9dW5kZWZp
bmVkCi0gICAgWzI1LDI1LDI1LDI1XQotQXV0byBzaXppbmcgWzEwMCwxMDAsMTAwLDEwMF0sIG1p
blBlcmNlbnQ9MjUsIG1heFBlcmNlbnQ9dW5kZWZpbmVkCi0gICAgWzI1LDI1LDI1LDI1XQotQXV0
byBzaXppbmcgWzEsMSwxLDEwMF0sIG1pblBlcmNlbnQ9MjUsIG1heFBlcmNlbnQ9dW5kZWZpbmVk
Ci0gICAgWzI1LDI1LDI1LDI1XQotQXV0byBzaXppbmcgWzEsMTAwLDEwMF0sIG1pblBlcmNlbnQ9
MjUsIG1heFBlcmNlbnQ9NDAKLSAgICBbMjUsMzcsMzhdCi1BdXRvIHNpemluZyBbMTAwLDEwMCwx
MDBdLCBtaW5QZXJjZW50PTI1LCBtYXhQZXJjZW50PTQwCi0gICAgWzM0LDMzLDMzXQotQXV0byBz
aXppbmcgWzEsMSwxMDBdLCBtaW5QZXJjZW50PTI1LCBtYXhQZXJjZW50PTQwCi0gICAgWzMwLDMw
LDQwXQotQXV0byBzaXppbmcgWzMsMTAsNyw3LDEzLDEzLDksMTAsMTUsMTUsMjAsMjAsMTQsMTQs
MTIsMTIsMTIsMTAsOSwxNCwxMCw2LDcsMTAsMThdLCBtaW5QZXJjZW50PTUsIG1heFBlcmNlbnQ9
dW5kZWZpbmVkCi0gICAgWzQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0
LDQsNCw0LDRdCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kYXRhZ3JpZC1h
dXRvc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RhdGFncmlkLWF1dG9zaXplLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxYTc1NDAuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RhdGFncmlkLWF1dG9zaXplLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwzNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9uIHRl
c3RBdXRvU2l6ZSh3aWR0aHMsIG1pblBlcmNlbnQsIG1heFBlcmNlbnQpCi0gICAgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQXV0byBzaXppbmcgIiArIEpTT04uc3RyaW5naWZ5
KHdpZHRocykgKyAiLCBtaW5QZXJjZW50PSIgKyBtaW5QZXJjZW50ICsgIiwgbWF4UGVyY2VudD0i
ICsgbWF4UGVyY2VudCk7Ci0gICAgICAgIHZhciByZXN1bHQgPSBXZWJJbnNwZWN0b3IuRGF0YUdy
aWQucHJvdG90eXBlLl9hdXRvU2l6ZVdpZHRocyh3aWR0aHMsIG1pblBlcmNlbnQsIG1heFBlcmNl
bnQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICIgKyBKU09OLnN0cmlu
Z2lmeShyZXN1bHQpKTsKLSAgICB9Ci0KLSAgICB0ZXN0QXV0b1NpemUoWzE5OCwgMiwgNDAwXSwg
OTApOwotICAgIHRlc3RBdXRvU2l6ZShbMTAwMF0sIDUpOwotICAgIHRlc3RBdXRvU2l6ZShbMTBd
LCA1KTsKLSAgICB0ZXN0QXV0b1NpemUoWzEwMDAsIDEwMDBdLCA1KTsKLSAgICB0ZXN0QXV0b1Np
emUoWzMwLCAzMCwgMzAsIDMwXSwgNSk7Ci0gICAgdGVzdEF1dG9TaXplKFsxLCAxMDAsIDEwMCwg
MTAwXSwgMjUpOwotICAgIHRlc3RBdXRvU2l6ZShbMTAwLCAxMDAsIDEwMCwgMTAwXSwgMjUpOwot
ICAgIHRlc3RBdXRvU2l6ZShbMSwgMSwgMSwgMTAwXSwgMjUpOwotICAgIHRlc3RBdXRvU2l6ZShb
MSwgMTAwLCAxMDBdLCAyNSwgNDApOwotICAgIHRlc3RBdXRvU2l6ZShbMTAwLCAxMDAsIDEwMF0s
IDI1LCA0MCk7Ci0gICAgdGVzdEF1dG9TaXplKFsxLCAxLCAxMDBdLCAyNSwgNDApOwotCi0gICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTM2MwotICAgIHRl
c3RBdXRvU2l6ZShbMywgMTAsIDcsIDcsIDEzLCAxMywgOSwgMTAsIDE1LCAxNSwgMjAsIDIwLCAx
NCwgMTQsIDEyLCAxMiwgMTIsIDEwLCA5LCAxNCwgMTAsIDYsIDcsIDEwLCAxOF0sIDUpOwotICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgRGF0YUdyaWQgY29sdW1uIGF1dG8g
c2l6ZSBjYWxjdWxhdGlvbi48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAxMzYzIj5CdWcgMTAxMzYzPC9hPgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFu
YWdlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtw
b2ludC1tYW5hZ2VyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDk2Zjg0Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWtwb2ludC1tYW5hZ2VyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI4NiArMCww
IEBACi1UZXN0cyBCcmVha3BvaW50TWFuYWdlciBjbGFzcy4KLQotCi1SdW5uaW5nOiB0ZXN0U2V0
QnJlYWtwb2ludAotICBDcmVhdGVkIGJyZWFrcG9pbnRzIG1hbmFnZXIKLSAgRHVtcGluZyBTdG9y
YWdlCi0gIEFkZGluZyBVSVNvdXJjZUNvZGU6IGEuanMKLSAgU2V0dGluZyBicmVha3BvaW50IGF0
IGEuanM6MzAgZW5hYmxlZDp0cnVlIGNvbmRpdGlvbjoKLSAgICBkZWJ1Z2dlck1vZGVsLnNldEJy
ZWFrcG9pbnQoYS5qczozMDopCi0gICAgYnJlYWtwb2ludEFkZGVkKGEuanMsIDMwLCAsIHRydWUp
Ci0gICAgTG9jYXRpb24gY3JlYXRlZDogYS5qczozMAotICBEdW1waW5nIFN0b3JhZ2UKLSAgICBh
LmpzOjMwIGVuYWJsZWQ6dHJ1ZSBjb25kaXRpb246Ci0gIFJlc2V0dGluZyBicmVha3BvaW50IG1h
bmFnZXIKLSAgICBicmVha3BvaW50UmVtb3ZlZChhLmpzLCAzMCkKLSAgICBMb2NhdGlvbiBkaXNw
b3NlZDogYS5qczozMAotICAgIGRlYnVnZ2VyTW9kZWwucmVtb3ZlQnJlYWtwb2ludChhLmpzOjMw
KQotCi1SdW5uaW5nOiB0ZXN0U2V0RGlzYWJsZWRCcmVha3BvaW50Ci0gIENyZWF0ZWQgYnJlYWtw
b2ludHMgbWFuYWdlcgotICBEdW1waW5nIFN0b3JhZ2UKLSAgQWRkaW5nIFVJU291cmNlQ29kZTog
YS5qcwotICBTZXR0aW5nIGJyZWFrcG9pbnQgYXQgYS5qczozMCBlbmFibGVkOmZhbHNlIGNvbmRp
dGlvbjoKLSAgICBicmVha3BvaW50QWRkZWQoYS5qcywgMzAsICwgZmFsc2UpCi0gIER1bXBpbmcg
U3RvcmFnZQotICAgIGEuanM6MzAgZW5hYmxlZDpmYWxzZSBjb25kaXRpb246Ci0gIEVuYWJsaW5n
IGJyZWFrcG9pbnQKLSAgICBkZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnQoYS5qczozMDopCi0g
ICAgYnJlYWtwb2ludFJlbW92ZWQoYS5qcywgMzApCi0gICAgYnJlYWtwb2ludEFkZGVkKGEuanMs
IDMwLCAsIHRydWUpCi0gICAgTG9jYXRpb24gY3JlYXRlZDogYS5qczozMAotICBEdW1waW5nIFN0
b3JhZ2UKLSAgICBhLmpzOjMwIGVuYWJsZWQ6dHJ1ZSBjb25kaXRpb246Ci0gIFJlc2V0dGluZyBi
cmVha3BvaW50IG1hbmFnZXIKLSAgICBicmVha3BvaW50UmVtb3ZlZChhLmpzLCAzMCkKLSAgICBM
b2NhdGlvbiBkaXNwb3NlZDogYS5qczozMAotICAgIGRlYnVnZ2VyTW9kZWwucmVtb3ZlQnJlYWtw
b2ludChhLmpzOjMwKQotCi1SdW5uaW5nOiB0ZXN0U2V0Q29uZGl0aW9uYWxCcmVha3BvaW50Ci0g
IENyZWF0ZWQgYnJlYWtwb2ludHMgbWFuYWdlcgotICBEdW1waW5nIFN0b3JhZ2UKLSAgQWRkaW5n
IFVJU291cmNlQ29kZTogYS5qcwotICBTZXR0aW5nIGJyZWFrcG9pbnQgYXQgYS5qczozMCBlbmFi
bGVkOnRydWUgY29uZGl0aW9uOmNvbmRpdGlvbgotICAgIGRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtw
b2ludChhLmpzOjMwOmNvbmRpdGlvbikKLSAgICBicmVha3BvaW50QWRkZWQoYS5qcywgMzAsIGNv
bmRpdGlvbiwgdHJ1ZSkKLSAgICBMb2NhdGlvbiBjcmVhdGVkOiBhLmpzOjMwCi0gIER1bXBpbmcg
U3RvcmFnZQotICAgIGEuanM6MzAgZW5hYmxlZDp0cnVlIGNvbmRpdGlvbjpjb25kaXRpb24KLSAg
VXBkYXRpbmcgY29uZGl0aW9uCi0gICAgZGVidWdnZXJNb2RlbC5yZW1vdmVCcmVha3BvaW50KGEu
anM6MzApCi0gICAgZGVidWdnZXJNb2RlbC5zZXRCcmVha3BvaW50KGEuanM6MzA6KQotICAgIGJy
ZWFrcG9pbnRSZW1vdmVkKGEuanMsIDMwKQotICAgIExvY2F0aW9uIGRpc3Bvc2VkOiBhLmpzOjMw
Ci0gICAgYnJlYWtwb2ludEFkZGVkKGEuanMsIDMwLCAsIHRydWUpCi0gICAgTG9jYXRpb24gY3Jl
YXRlZDogYS5qczozMAotICBEdW1waW5nIFN0b3JhZ2UKLSAgICBhLmpzOjMwIGVuYWJsZWQ6dHJ1
ZSBjb25kaXRpb246Ci0gIFJlc2V0dGluZyBicmVha3BvaW50IG1hbmFnZXIKLSAgICBicmVha3Bv
aW50UmVtb3ZlZChhLmpzLCAzMCkKLSAgICBMb2NhdGlvbiBkaXNwb3NlZDogYS5qczozMAotICAg
IGRlYnVnZ2VyTW9kZWwucmVtb3ZlQnJlYWtwb2ludChhLmpzOjMwKQotCi1SdW5uaW5nOiB0ZXN0
UmVzdG9yZUJyZWFrcG9pbnRzCi0gIENyZWF0ZWQgYnJlYWtwb2ludHMgbWFuYWdlcgotICBEdW1w
aW5nIFN0b3JhZ2UKLSAgICBhLmpzOjEwIGVuYWJsZWQ6dHJ1ZSBjb25kaXRpb246Zm9vID09IGJh
cgotICAgIGEuanM6MjAgZW5hYmxlZDpmYWxzZSBjb25kaXRpb246Ci0gICAgYi5qczozIGVuYWJs
ZWQ6dHJ1ZSBjb25kaXRpb246Ci0gIEFkZGluZyBVSVNvdXJjZUNvZGU6IGEuanMKLSAgICBkZWJ1
Z2dlck1vZGVsLnNldEJyZWFrcG9pbnQoYS5qczoxMDpmb28gPT0gYmFyKQotICAgIGJyZWFrcG9p
bnRBZGRlZChhLmpzLCAyMCwgLCBmYWxzZSkKLSAgICBicmVha3BvaW50QWRkZWQoYS5qcywgMTAs
IGZvbyA9PSBiYXIsIHRydWUpCi0gICAgTG9jYXRpb24gY3JlYXRlZDogYS5qczoxMAotICBEdW1w
aW5nIFN0b3JhZ2UKLSAgICBhLmpzOjEwIGVuYWJsZWQ6dHJ1ZSBjb25kaXRpb246Zm9vID09IGJh
cgotICAgIGEuanM6MjAgZW5hYmxlZDpmYWxzZSBjb25kaXRpb246Ci0gICAgYi5qczozIGVuYWJs
ZWQ6dHJ1ZSBjb25kaXRpb246Ci0gIFJlc2V0dGluZyBicmVha3BvaW50IG1hbmFnZXIKLSAgICBi
cmVha3BvaW50UmVtb3ZlZChhLmpzLCAxMCkKLSAgICBMb2NhdGlvbiBkaXNwb3NlZDogYS5qczox
MAotICAgIGRlYnVnZ2VyTW9kZWwucmVtb3ZlQnJlYWtwb2ludChhLmpzOjEwKQotICAgIGJyZWFr
cG9pbnRSZW1vdmVkKGEuanMsIDIwKQotCi1SdW5uaW5nOiB0ZXN0UmVzdG9yZUJyZWFrcG9pbnRz
VHdpY2UKLSAgQ3JlYXRlZCBicmVha3BvaW50cyBtYW5hZ2VyCi0gIER1bXBpbmcgU3RvcmFnZQot
ICAgIGEuanM6MTAgZW5hYmxlZDp0cnVlIGNvbmRpdGlvbjpmb28gPT0gYmFyCi0gICAgYS5qczoy
MCBlbmFibGVkOmZhbHNlIGNvbmRpdGlvbjoKLSAgICBiLmpzOjMgZW5hYmxlZDp0cnVlIGNvbmRp
dGlvbjoKLSAgQWRkaW5nIFVJU291cmNlQ29kZTogYS5qcwotICAgIGRlYnVnZ2VyTW9kZWwuc2V0
QnJlYWtwb2ludChhLmpzOjEwOmZvbyA9PSBiYXIpCi0gICAgYnJlYWtwb2ludEFkZGVkKGEuanMs
IDIwLCAsIGZhbHNlKQotICBBZGRpbmcgVUlTb3VyY2VDb2RlOiBhLmpzCi0gICAgYnJlYWtwb2lu
dEFkZGVkKGEuanMsIDEwLCBmb28gPT0gYmFyLCB0cnVlKQotICAgIExvY2F0aW9uIGNyZWF0ZWQ6
IGEuanM6MTAKLSAgRHVtcGluZyBTdG9yYWdlCi0gICAgYS5qczoxMCBlbmFibGVkOnRydWUgY29u
ZGl0aW9uOmZvbyA9PSBiYXIKLSAgICBhLmpzOjIwIGVuYWJsZWQ6ZmFsc2UgY29uZGl0aW9uOgot
ICAgIGIuanM6MyBlbmFibGVkOnRydWUgY29uZGl0aW9uOgotICBSZXNldHRpbmcgYnJlYWtwb2lu
dCBtYW5hZ2VyCi0gICAgYnJlYWtwb2ludFJlbW92ZWQoYS5qcywgMTApCi0gICAgTG9jYXRpb24g
ZGlzcG9zZWQ6IGEuanM6MTAKLSAgICBkZWJ1Z2dlck1vZGVsLnJlbW92ZUJyZWFrcG9pbnQoYS5q
czoxMCkKLSAgICBicmVha3BvaW50UmVtb3ZlZChhLmpzLCAyMCkKLQotUnVubmluZzogdGVzdFJl
bW92ZUJyZWFrcG9pbnRzCi0gIENyZWF0ZWQgYnJlYWtwb2ludHMgbWFuYWdlcgotICBEdW1waW5n
IFN0b3JhZ2UKLSAgICBhLmpzOjEwIGVuYWJsZWQ6dHJ1ZSBjb25kaXRpb246Zm9vID09IGJhcgot
ICAgIGEuanM6MjAgZW5hYmxlZDpmYWxzZSBjb25kaXRpb246Ci0gICAgYi5qczozIGVuYWJsZWQ6
dHJ1ZSBjb25kaXRpb246Ci0gIEFkZGluZyBVSVNvdXJjZUNvZGU6IGEuanMKLSAgICBkZWJ1Z2dl
ck1vZGVsLnNldEJyZWFrcG9pbnQoYS5qczoxMDpmb28gPT0gYmFyKQotICAgIGJyZWFrcG9pbnRB
ZGRlZChhLmpzLCAyMCwgLCBmYWxzZSkKLSAgICBicmVha3BvaW50QWRkZWQoYS5qcywgMTAsIGZv
byA9PSBiYXIsIHRydWUpCi0gICAgTG9jYXRpb24gY3JlYXRlZDogYS5qczoxMAotICBTZXR0aW5n
IGJyZWFrcG9pbnQgYXQgYS5qczozMCBlbmFibGVkOnRydWUgY29uZGl0aW9uOgotICAgIGRlYnVn
Z2VyTW9kZWwuc2V0QnJlYWtwb2ludChhLmpzOjMwOikKLSAgICBicmVha3BvaW50QWRkZWQoYS5q
cywgMzAsICwgdHJ1ZSkKLSAgICBMb2NhdGlvbiBjcmVhdGVkOiBhLmpzOjMwCi0gIFJlbW92aW5n
IGJyZWFrcG9pbnQgYXQgYS5qczozMAotICAgIGJyZWFrcG9pbnRSZW1vdmVkKGEuanMsIDMwKQot
ICAgIExvY2F0aW9uIGRpc3Bvc2VkOiBhLmpzOjMwCi0gICAgZGVidWdnZXJNb2RlbC5yZW1vdmVC
cmVha3BvaW50KGEuanM6MzApCi0gIFJlbW92aW5nIGJyZWFrcG9pbnQgYXQgYS5qczoxMAotICAg
IGJyZWFrcG9pbnRSZW1vdmVkKGEuanMsIDEwKQotICAgIExvY2F0aW9uIGRpc3Bvc2VkOiBhLmpz
OjEwCi0gICAgZGVidWdnZXJNb2RlbC5yZW1vdmVCcmVha3BvaW50KGEuanM6MTApCi0gIFJlbW92
aW5nIGJyZWFrcG9pbnQgYXQgYS5qczoyMAotICAgIGJyZWFrcG9pbnRSZW1vdmVkKGEuanMsIDIw
KQotICBEdW1waW5nIFN0b3JhZ2UKLSAgICBiLmpzOjMgZW5hYmxlZDp0cnVlIGNvbmRpdGlvbjoK
LSAgUmVzZXR0aW5nIGJyZWFrcG9pbnQgbWFuYWdlcgotCi1SdW5uaW5nOiB0ZXN0U2V0QnJlYWtw
b2ludFRoYXRTaGlmdHMKLSAgQ3JlYXRlZCBicmVha3BvaW50cyBtYW5hZ2VyCi0gIER1bXBpbmcg
U3RvcmFnZQotICBBZGRpbmcgVUlTb3VyY2VDb2RlOiBhLmpzCi0gIFNldHRpbmcgYnJlYWtwb2lu
dCBhdCBhLmpzOjEwMTUgZW5hYmxlZDp0cnVlIGNvbmRpdGlvbjoKLSAgICBkZWJ1Z2dlck1vZGVs
LnNldEJyZWFrcG9pbnQoYS5qczoxMDE1OikKLSAgICBicmVha3BvaW50QWRkZWQoYS5qcywgMTAy
NSwgLCB0cnVlKQotICAgIExvY2F0aW9uIGNyZWF0ZWQ6IGEuanM6MTAyNQotICBEdW1waW5nIFN0
b3JhZ2UKLSAgICBhLmpzOjEwMTUgZW5hYmxlZDp0cnVlIGNvbmRpdGlvbjoKLSAgUmVzZXR0aW5n
IGJyZWFrcG9pbnQgbWFuYWdlcgotICAgIGJyZWFrcG9pbnRSZW1vdmVkKGEuanMsIDEwMjUpCi0g
ICAgTG9jYXRpb24gZGlzcG9zZWQ6IGEuanM6MTAyNQotICAgIGRlYnVnZ2VyTW9kZWwucmVtb3Zl
QnJlYWtwb2ludChhLmpzOjEwMTUpCi0KLVJ1bm5pbmc6IHRlc3RTZXRCcmVha3BvaW50VGhhdFNo
aWZ0c1R3aWNlCi0gIENyZWF0ZWQgYnJlYWtwb2ludHMgbWFuYWdlcgotICBEdW1waW5nIFN0b3Jh
Z2UKLSAgQWRkaW5nIFVJU291cmNlQ29kZTogYS5qcwotICBTZXR0aW5nIGJyZWFrcG9pbnQgYXQg
YS5qczoxMDE1IGVuYWJsZWQ6dHJ1ZSBjb25kaXRpb246Ci0gICAgZGVidWdnZXJNb2RlbC5zZXRC
cmVha3BvaW50KGEuanM6MTAxNTopCi0gICAgYnJlYWtwb2ludEFkZGVkKGEuanMsIDEwMjUsICwg
dHJ1ZSkKLSAgICBMb2NhdGlvbiBjcmVhdGVkOiBhLmpzOjEwMjUKLSAgU2V0dGluZyBicmVha3Bv
aW50IGF0IGEuanM6MTAxNSBlbmFibGVkOnRydWUgY29uZGl0aW9uOgotICBEdW1waW5nIFN0b3Jh
Z2UKLSAgICBhLmpzOjEwMTUgZW5hYmxlZDp0cnVlIGNvbmRpdGlvbjoKLSAgUmVzZXR0aW5nIGJy
ZWFrcG9pbnQgbWFuYWdlcgotICAgIGJyZWFrcG9pbnRSZW1vdmVkKGEuanMsIDEwMjUpCi0gICAg
TG9jYXRpb24gZGlzcG9zZWQ6IGEuanM6MTAyNQotICAgIGRlYnVnZ2VyTW9kZWwucmVtb3ZlQnJl
YWtwb2ludChhLmpzOjEwMTUpCi0KLVJ1bm5pbmc6IHRlc3RTZXRCcmVha3BvaW50T3V0c2lkZVNj
cmlwdAotICBDcmVhdGVkIGJyZWFrcG9pbnRzIG1hbmFnZXIKLSAgRHVtcGluZyBTdG9yYWdlCi0g
IEFkZGluZyBVSVNvdXJjZUNvZGU6IGEuanMKLSAgICBkZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9p
bnQoYS5qczoyNTAwOikKLSAgICBicmVha3BvaW50QWRkZWQoYS5qcywgMjUwMCwgLCB0cnVlKQot
ICBEdW1waW5nIFN0b3JhZ2UKLSAgICBhLmpzOjI1MDAgZW5hYmxlZDp0cnVlIGNvbmRpdGlvbjoK
LSAgUmVzZXR0aW5nIGJyZWFrcG9pbnQgbWFuYWdlcgotICAgIGJyZWFrcG9pbnRSZW1vdmVkKGEu
anMsIDI1MDApCi0gICAgZGVidWdnZXJNb2RlbC5yZW1vdmVCcmVha3BvaW50KGEuanM6MjUwMCkK
LQotUnVubmluZzogdGVzdE5hdmlnYXRpb24KLSAgQ3JlYXRlZCBicmVha3BvaW50cyBtYW5hZ2Vy
Ci0gIER1bXBpbmcgU3RvcmFnZQotICAgIGEuanM6MTAgZW5hYmxlZDp0cnVlIGNvbmRpdGlvbjpm
b28gPT0gYmFyCi0gICAgYS5qczoyMCBlbmFibGVkOmZhbHNlIGNvbmRpdGlvbjoKLSAgICBiLmpz
OjMgZW5hYmxlZDp0cnVlIGNvbmRpdGlvbjoKLSAgQWRkaW5nIFVJU291cmNlQ29kZTogYS5qcwot
ICAgIGRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludChhLmpzOjEwOmZvbyA9PSBiYXIpCi0gICAg
YnJlYWtwb2ludEFkZGVkKGEuanMsIDIwLCAsIGZhbHNlKQotICAgIGJyZWFrcG9pbnRBZGRlZChh
LmpzLCAxMCwgZm9vID09IGJhciwgdHJ1ZSkKLSAgICBMb2NhdGlvbiBjcmVhdGVkOiBhLmpzOjEw
Ci0KLSAgTmF2aWdhdGluZyB0byBCLgotICBSZXNldHRpbmcgZGVidWdnZXIuCi0gIFJlc2V0dGlu
ZyB3b3Jrc3BhY2UuCi0gICAgYnJlYWtwb2ludFJlbW92ZWQoYS5qcywgMTApCi0gICAgTG9jYXRp
b24gZGlzcG9zZWQ6IGEuanM6MTAKLSAgICBicmVha3BvaW50UmVtb3ZlZChhLmpzLCAyMCkKLSAg
QWRkaW5nIFVJU291cmNlQ29kZTogYi5qcwotICAgIGRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2lu
dChiLmpzOjM6KQotICAgIGJyZWFrcG9pbnRBZGRlZChiLmpzLCAzLCAsIHRydWUpCi0gICAgTG9j
YXRpb24gY3JlYXRlZDogYi5qczozCi0KLSAgTmF2aWdhdGluZyBiYWNrIHRvIEEuCi0gIFJlc2V0
dGluZyBkZWJ1Z2dlci4KLSAgUmVzZXR0aW5nIHdvcmtzcGFjZS4KLSAgICBicmVha3BvaW50UmVt
b3ZlZChiLmpzLCAzKQotICAgIExvY2F0aW9uIGRpc3Bvc2VkOiBiLmpzOjMKLSAgUmVzb2x2aW5n
IHByb3Zpc2lvbmFsIGJyZWFrcG9pbnQuCi0gIEFkZGluZyB0ZW1wb3JhcnkgVUlTb3VyY2VDb2Rl
OiBhLmpzCi0gICAgYnJlYWtwb2ludEFkZGVkKGEuanMsIDExLCBmb28gPT0gYmFyLCB0cnVlKQot
ICAgIExvY2F0aW9uIGNyZWF0ZWQ6IGEuanM6MTEKLSAgQWRkaW5nIFVJU291cmNlQ29kZTogYS5q
cwotICAgIGJyZWFrcG9pbnRSZW1vdmVkKGEuanMsIDExKQotICAgIExvY2F0aW9uIGRpc3Bvc2Vk
OiBhLmpzOjExCi0gICAgZGVidWdnZXJNb2RlbC5yZW1vdmVCcmVha3BvaW50KGEuanM6MTApCi0g
ICAgZGVidWdnZXJNb2RlbC5zZXRCcmVha3BvaW50KGEuanM6MTA6Zm9vID09IGJhcikKLSAgICBi
cmVha3BvaW50QWRkZWQoYS5qcywgMjAsICwgZmFsc2UpCi0gICAgYnJlYWtwb2ludEFkZGVkKGEu
anMsIDEwLCBmb28gPT0gYmFyLCB0cnVlKQotICAgIExvY2F0aW9uIGNyZWF0ZWQ6IGEuanM6MTAK
LSAgRHVtcGluZyBTdG9yYWdlCi0gICAgYS5qczoxMCBlbmFibGVkOnRydWUgY29uZGl0aW9uOmZv
byA9PSBiYXIKLSAgICBhLmpzOjIwIGVuYWJsZWQ6ZmFsc2UgY29uZGl0aW9uOgotICAgIGIuanM6
MyBlbmFibGVkOnRydWUgY29uZGl0aW9uOgotICBSZXNldHRpbmcgYnJlYWtwb2ludCBtYW5hZ2Vy
Ci0gICAgYnJlYWtwb2ludFJlbW92ZWQoYS5qcywgMTApCi0gICAgTG9jYXRpb24gZGlzcG9zZWQ6
IGEuanM6MTAKLSAgICBkZWJ1Z2dlck1vZGVsLnJlbW92ZUJyZWFrcG9pbnQoYS5qczoxMCkKLSAg
ICBicmVha3BvaW50UmVtb3ZlZChhLmpzLCAyMCkKLSAgICBkZWJ1Z2dlck1vZGVsLnJlbW92ZUJy
ZWFrcG9pbnQoYi5qczozKQotCi1SdW5uaW5nOiB0ZXN0U291cmNlTWFwcGluZwotICBDcmVhdGVk
IGJyZWFrcG9pbnRzIG1hbmFnZXIKLSAgRHVtcGluZyBTdG9yYWdlCi0gICAgYS5qczoxMCBlbmFi
bGVkOnRydWUgY29uZGl0aW9uOmZvbyA9PSBiYXIKLSAgICBhLmpzOjIwIGVuYWJsZWQ6dHJ1ZSBj
b25kaXRpb246Ci0gIEFkZGluZyBVSVNvdXJjZUNvZGU6IGEuanMKLSAgICBkZWJ1Z2dlck1vZGVs
LnNldEJyZWFrcG9pbnQoYS5qczoxMDpmb28gPT0gYmFyKQotICAgIGRlYnVnZ2VyTW9kZWwuc2V0
QnJlYWtwb2ludChhLmpzOjIwOikKLSAgICBicmVha3BvaW50QWRkZWQoYS5qcywgMTAsIGZvbyA9
PSBiYXIsIHRydWUpCi0gICAgTG9jYXRpb24gY3JlYXRlZDogYS5qczoxMAotICAgIGJyZWFrcG9p
bnRBZGRlZChhLmpzLCAyMCwgLCB0cnVlKQotICAgIExvY2F0aW9uIGNyZWF0ZWQ6IGEuanM6MjAK
LQotICBUb2dnbGluZyBzb3VyY2UgbWFwcGluZy4KLSAgICBicmVha3BvaW50UmVtb3ZlZChhLmpz
LCAxMCkKLSAgICBicmVha3BvaW50QWRkZWQoYS5qcywgMjAsIGZvbyA9PSBiYXIsIHRydWUpCi0g
ICAgYnJlYWtwb2ludFJlbW92ZWQoYS5qcywgMjApCi0gICAgYnJlYWtwb2ludEFkZGVkKGEuanMs
IDMwLCAsIHRydWUpCi0KLSAgVG9nZ2xpbmcgc291cmNlIG1hcHBpbmcgYmFjay4KLSAgICBicmVh
a3BvaW50UmVtb3ZlZChhLmpzLCAyMCkKLSAgICBicmVha3BvaW50QWRkZWQoYS5qcywgMTAsIGZv
byA9PSBiYXIsIHRydWUpCi0gICAgYnJlYWtwb2ludFJlbW92ZWQoYS5qcywgMzApCi0gICAgYnJl
YWtwb2ludEFkZGVkKGEuanMsIDIwLCAsIHRydWUpCi0gIER1bXBpbmcgU3RvcmFnZQotICAgIGEu
anM6MTAgZW5hYmxlZDp0cnVlIGNvbmRpdGlvbjpmb28gPT0gYmFyCi0gICAgYS5qczoyMCBlbmFi
bGVkOnRydWUgY29uZGl0aW9uOgotICBSZXNldHRpbmcgYnJlYWtwb2ludCBtYW5hZ2VyCi0gICAg
YnJlYWtwb2ludFJlbW92ZWQoYS5qcywgMTApCi0gICAgTG9jYXRpb24gZGlzcG9zZWQ6IGEuanM6
MTAKLSAgICBkZWJ1Z2dlck1vZGVsLnJlbW92ZUJyZWFrcG9pbnQoYS5qczoxMCkKLSAgICBicmVh
a3BvaW50UmVtb3ZlZChhLmpzLCAyMCkKLSAgICBMb2NhdGlvbiBkaXNwb3NlZDogYS5qczoyMAot
ICAgIGRlYnVnZ2VyTW9kZWwucmVtb3ZlQnJlYWtwb2ludChhLmpzOjIwKQotCi1SdW5uaW5nOiB0
ZXN0UHJvdmlzaW9uYWxCcmVha3BvaW50c1Jlc29sdmUKLSAgQ3JlYXRlZCBicmVha3BvaW50cyBt
YW5hZ2VyCi0gIER1bXBpbmcgU3RvcmFnZQotICAgIGEuanM6MTAgZW5hYmxlZDp0cnVlIGNvbmRp
dGlvbjpmb28gPT0gYmFyCi0gIEFkZGluZyBVSVNvdXJjZUNvZGU6IGEuanMKLSAgICBkZWJ1Z2dl
ck1vZGVsLnNldEJyZWFrcG9pbnQoYS5qczoxMDpmb28gPT0gYmFyKQotICAgIGJyZWFrcG9pbnRB
ZGRlZChhLmpzLCAxMCwgZm9vID09IGJhciwgdHJ1ZSkKLSAgICBMb2NhdGlvbiBjcmVhdGVkOiBh
LmpzOjEwCi0gIFJlc2V0dGluZyBkZWJ1Z2dlci4KLSAgUmVzZXR0aW5nIHdvcmtzcGFjZS4KLSAg
ICBicmVha3BvaW50UmVtb3ZlZChhLmpzLCAxMCkKLSAgICBMb2NhdGlvbiBkaXNwb3NlZDogYS5q
czoxMAotICBSZXNvbHZpbmcgcHJvdmlzaW9uYWwgYnJlYWtwb2ludC4KLSAgQWRkaW5nIHRlbXBv
cmFyeSBVSVNvdXJjZUNvZGU6IGEuanMKLSAgICBicmVha3BvaW50QWRkZWQoYS5qcywgMTEsIGZv
byA9PSBiYXIsIHRydWUpCi0gICAgTG9jYXRpb24gY3JlYXRlZDogYS5qczoxMQotICBEdW1waW5n
IFN0b3JhZ2UKLSAgICBhLmpzOjEwIGVuYWJsZWQ6dHJ1ZSBjb25kaXRpb246Zm9vID09IGJhcgot
ICBSZXNldHRpbmcgYnJlYWtwb2ludCBtYW5hZ2VyCi0gICAgYnJlYWtwb2ludFJlbW92ZWQoYS5q
cywgMTEpCi0gICAgTG9jYXRpb24gZGlzcG9zZWQ6IGEuanM6MTEKLSAgICBkZWJ1Z2dlck1vZGVs
LnJlbW92ZUJyZWFrcG9pbnQoYS5qczoxMCkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci1saXN0ZW5lcnMtY291bnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdl
ci1saXN0ZW5lcnMtY291bnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1ZGNiZGJjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9icmVha3BvaW50LW1hbmFnZXItbGlzdGVuZXJzLWNvdW50LWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIHRoYXQgc2NyaXB0cyBwYW5lbCBkb2VzIG5v
dCBjcmVhdGUgdG9vIG1hbnkgc291cmNlIGZyYW1lcy4KLQotRGVidWdnZXIgd2FzIGVuYWJsZWQu
Ci0KLVJ1bm5pbmc6IHRlc3RTb3VyY2VGcmFtZXNDb3VudAotUGFnZSByZWxvYWRlZC4KLU51bWJl
ciBvZiBicmVha3BvaW50LWFkZGVkIGV2ZW50IGxpc3RlbmVycyBpcyAzCi1EdW1waW5nIFNvdXJj
ZUZyYW1lcyBsaXN0ZW5pbmcgZm9yIGJyZWFrcG9pbnQtYWRkZWQgZXZlbnQ6Ci0gICAgc2NyaXB0
MS5qcwotICAgIHNjcmlwdDIuanMKLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci1saXN0
ZW5lcnMtY291bnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3Bv
aW50LW1hbmFnZXItbGlzdGVuZXJzLWNvdW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDI2NDgxOTIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtbWFuYWdlci1saXN0ZW5lcnMtY291bnQuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDU3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JpcHQxLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2NyaXB0Mi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24g
dGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZShbCi0gICAg
ICAgIGZ1bmN0aW9uIHRlc3RTb3VyY2VGcmFtZXNDb3VudChuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHM7Ci0gICAgICAg
ICAgICB2YXIgc291cmNlRnJhbWVDb3VudCA9IDA7Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3Quc2hvd1NjcmlwdFNvdXJjZSgic2NyaXB0MS5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2VzKTsK
LQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZXMoKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShkaWRSZWxvYWQp
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRSZWxvYWQoKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJj
ZSgic2NyaXB0Mi5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2VBZ2Fpbik7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2VBZ2FpbigpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIGxpc3RlbmVycyA9IFdlYkluc3BlY3Rvci5i
cmVha3BvaW50TWFuYWdlci5fbGlzdGVuZXJzWyJicmVha3BvaW50LWFkZGVkIl07Ci0gICAgICAg
ICAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIDMgYnJlYWtwb2ludC1hZGRlZCBldmVudCBsaXN0
ZW5lcnM6Ci0gICAgICAgICAgICAgICAgLy8gIC0gQnJlYWtwb2ludHNTaWRlYmFyUGFuZQotICAg
ICAgICAgICAgICAgIC8vICAtIDIgc2hvd24gdGFicwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJOdW1iZXIgb2YgYnJlYWtwb2ludC1hZGRlZCBldmVudCBsaXN0ZW5l
cnMgaXMgIiArIGxpc3RlbmVycy5sZW5ndGgpOwotCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24g
ZHVtcExpc3RlbmVyKGxpc3RlbmVyKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKCEobGlzdGVuZXIudGhpc09iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IGxpc3RlbmVyLnRoaXNPYmplY3Q7Ci0gICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgIiArIHNvdXJjZUZyYW1l
Ll91aVNvdXJjZUNvZGUubmFtZSgpKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBTb3VyY2VGcmFtZXMgbGlzdGVu
aW5nIGZvciBicmVha3BvaW50LWFkZGVkIGV2ZW50OiIpOwotICAgICAgICAgICAgICAgIGxpc3Rl
bmVycy5tYXAoZHVtcExpc3RlbmVyKTsKLQotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfTsKLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBzY3JpcHRzIHBhbmVsIGRvZXMg
bm90IGNyZWF0ZSB0b28gbWFueSBzb3VyY2UgZnJhbWVzLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1h
bmFnZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1h
bmFnZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTUyMzNiMC4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2Vy
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MjcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciB1aVNv
dXJjZUNvZGVzID0ge307Ci0KLSAgICB2YXIgZGVmYXVsdE1hcHBpbmcgPSB7Ci0gICAgICAgIHJh
d0xvY2F0aW9uVG9VSUxvY2F0aW9uOiBmdW5jdGlvbihyYXdMb2NhdGlvbikKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbih1aVNvdXJjZUNv
ZGVzW3Jhd0xvY2F0aW9uLnNjcmlwdElkXSwgcmF3TG9jYXRpb24ubGluZU51bWJlciwgMCk7Ci0g
ICAgICAgIH0sCi0KLSAgICAgICAgdWlMb2NhdGlvblRvUmF3TG9jYXRpb246IGZ1bmN0aW9uKHVp
U291cmNlQ29kZSwgbGluZU51bWJlcikKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKCF1aVNv
dXJjZUNvZGVzW3VpU291cmNlQ29kZS51cmxdKQotICAgICAgICAgICAgICAgIHJldHVybiBudWxs
OwotICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5Mb2Nh
dGlvbih1aVNvdXJjZUNvZGUudXJsLCBsaW5lTnVtYmVyLCAwKTsKLSAgICAgICAgfSwKLQotICAg
ICAgICBpc0lkZW50aXR5OiBmdW5jdGlvbigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIHZhciBzaGlmdGluZ01hcHBpbmcgPSB7
Ci0gICAgICAgIHJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uOiBmdW5jdGlvbihyYXdMb2NhdGlvbikK
LSAgICAgICAgewotICAgICAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKQotICAgICAgICAgICAg
ICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVUlM
b2NhdGlvbih1aVNvdXJjZUNvZGVzW3Jhd0xvY2F0aW9uLnNjcmlwdElkXSwgcmF3TG9jYXRpb24u
bGluZU51bWJlciArIDEwLCAwKTsKLSAgICAgICAgfSwKLQotICAgICAgICB1aUxvY2F0aW9uVG9S
YXdMb2NhdGlvbjogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKQotICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkxvY2F0
aW9uKHVpU291cmNlQ29kZS51cmwsIGxpbmVOdW1iZXIgLSAxMCwgMCk7Ci0gICAgICAgIH0sCi0K
LSAgICAgICAgaXNJZGVudGl0eTogZnVuY3Rpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgZnVuY3Rpb24gRGVidWdnZXJN
b2RlbE1vY2soc291cmNlTWFwcGluZykKLSAgICB7Ci0gICAgICAgIHRoaXMuX3NjcmlwdHMgPSB7
fTsKLSAgICAgICAgdGhpcy5fc291cmNlTWFwcGluZyA9IHNvdXJjZU1hcHBpbmc7Ci0gICAgICAg
IHRoaXMuX2JyZWFrcG9pbnRzID0ge307Ci0gICAgfQotCi0gICAgRGVidWdnZXJNb2RlbE1vY2su
cHJvdG90eXBlID0gewotICAgICAgICBfYWRkU2NyaXB0OiBmdW5jdGlvbihzY3JpcHRJZCwgdXJs
KQotICAgICAgICB7Ci0gICAgICAgICAgICB0aGlzLl9zY3JpcHRzW3NjcmlwdElkXSA9IG5ldyBX
ZWJJbnNwZWN0b3IuU2NyaXB0KHNjcmlwdElkLCB1cmwpOwotICAgICAgICAgICAgdGhpcy5fc2Ny
aXB0c1tzY3JpcHRJZF0ucHVzaFNvdXJjZU1hcHBpbmcodGhpcy5fc291cmNlTWFwcGluZyk7Ci0g
ICAgICAgIH0sCi0KLSAgICAgICAgX3NjcmlwdEZvclVSTDogZnVuY3Rpb24odXJsKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBmb3IgKHZhciBzY3JpcHRJZCBpbiB0aGlzLl9zY3JpcHRzKSB7Ci0g
ICAgICAgICAgICAgICAgdmFyIHNjcmlwdCA9IHRoaXMuX3NjcmlwdHNbc2NyaXB0SWRdOwotICAg
ICAgICAgICAgICAgIGlmIChzY3JpcHQuc291cmNlVVJMID09PSB1cmwpCi0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBzY3JpcHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgfSwKLQotICAgICAg
ICBfc2NoZWR1bGVTZXRCZWFrcG9pbnRDYWxsYmFjazogZnVuY3Rpb24oY2FsbGJhY2ssIGJyZWFr
cG9pbnRJZCwgbG9jYXRpb25zKQotICAgICAgICB7Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KGlu
bmVyQ2FsbGJhY2suYmluZCh0aGlzKSwgMCk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGlubmVy
Q2FsbGJhY2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjaykK
LSAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soYnJlYWtwb2ludElkLCBsb2NhdGlvbnMpOwot
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuc2V0QnJlYWtwb2ludENhbGxiYWNrKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHZhciBzYXZlZENhbGxiYWNrID0gd2luZG93LnNldEJyZWFrcG9pbnRD
YWxsYmFjazsKLSAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHdpbmRvdy5zZXRCcmVha3BvaW50
Q2FsbGJhY2s7Ci0gICAgICAgICAgICAgICAgICAgIHNhdmVkQ2FsbGJhY2soKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgc2V0QnJlYWtw
b2ludEJ5VVJMOiBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0
aW9uLCBjYWxsYmFjaykKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRJZCA9
IHVybCArICI6IiArIGxpbmVOdW1iZXI7Ci0gICAgICAgICAgICBpZiAodGhpcy5fYnJlYWtwb2lu
dHNbYnJlYWtwb2ludElkXSkgewotICAgICAgICAgICAgICAgIHRoaXMuX3NjaGVkdWxlU2V0QmVh
a3BvaW50Q2FsbGJhY2soY2FsbGJhY2ssIG51bGwpOwotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNbYnJlYWtwb2lu
dElkXSA9IHRydWU7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIGRl
YnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludCgiICsgW3VybCwgbGluZU51bWJlciwgY29uZGl0aW9u
XS5qb2luKCI6IikgKyAiKSIpOwotCi0gICAgICAgICAgICB2YXIgbG9jYXRpb25zID0gW107Ci0g
ICAgICAgICAgICB2YXIgc2NyaXB0ID0gdGhpcy5fc2NyaXB0Rm9yVVJMKHVybCk7Ci0gICAgICAg
ICAgICBpZiAoc2NyaXB0KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gbmV3IFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkxvY2F0aW9uKHNjcmlwdC5zY3JpcHRJZCwgbGluZU51
bWJlciwgMCk7Ci0gICAgICAgICAgICAgICAgbG9jYXRpb25zLnB1c2gobG9jYXRpb24pOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICB0aGlzLl9zY2hlZHVsZVNldEJlYWtwb2ludENhbGxi
YWNrKGNhbGxiYWNrLCBicmVha3BvaW50SWQsIGxvY2F0aW9ucyk7Ci0gICAgICAgIH0sCi0KLSAg
ICAgICAgc2V0QnJlYWtwb2ludEJ5U2NyaXB0TG9jYXRpb246IGZ1bmN0aW9uKGxvY2F0aW9uLCBj
b25kaXRpb24sIGNhbGxiYWNrKQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgYnJlYWtwb2lu
dElkID0gbG9jYXRpb24uc2NyaXB0SWQgKyAiOiIgKyBsb2NhdGlvbi5saW5lTnVtYmVyOwotICAg
ICAgICAgICAgaWYgKHRoaXMuX2JyZWFrcG9pbnRzW2JyZWFrcG9pbnRJZF0pIHsKLSAgICAgICAg
ICAgICAgICB0aGlzLl9zY2hlZHVsZVNldEJlYWtwb2ludENhbGxiYWNrKGNhbGxiYWNrLCBudWxs
KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IHRoaXMuX2JyZWFrcG9pbnRzW2JyZWFrcG9pbnRJZF0gPSB0cnVlOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBkZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnQoIiAr
IFtsb2NhdGlvbi5zY3JpcHRJZCwgbG9jYXRpb24ubGluZU51bWJlciwgY29uZGl0aW9uXS5qb2lu
KCI6IikgKyAiKSIpOwotCi0gICAgICAgICAgICBpZiAobG9jYXRpb24ubGluZU51bWJlciA+PSAy
MDAwKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fc2NoZWR1bGVTZXRCZWFrcG9pbnRDYWxsYmFj
ayhjYWxsYmFjaywgYnJlYWtwb2ludElkLCBbXSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGxvY2F0aW9uLmxpbmVOdW1iZXIgPj0gMTAw
MCkgewotICAgICAgICAgICAgICAgIHZhciBzaGlmdGVkTG9jYXRpb24gPSB7c2NyaXB0SWQ6IGxv
Y2F0aW9uLnNjcmlwdElkLCBsaW5lTnVtYmVyOiBsb2NhdGlvbi5saW5lTnVtYmVyICsgMTAsIGNv
bHVtbk51bWJlcjogbG9jYXRpb24uY29sdW1uTnVtYmVyIH07Ci0gICAgICAgICAgICAgICAgdGhp
cy5fc2NoZWR1bGVTZXRCZWFrcG9pbnRDYWxsYmFjayhjYWxsYmFjaywgYnJlYWtwb2ludElkLCBb
c2hpZnRlZExvY2F0aW9uXSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICB0aGlzLl9zY2hlZHVsZVNldEJlYWtwb2ludENhbGxiYWNrKGNhbGxi
YWNrLCBicmVha3BvaW50SWQsIFtsb2NhdGlvbl0pOwotICAgICAgICB9LAotCi0gICAgICAgIHJl
bW92ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGJyZWFrcG9pbnRJZCwgY2FsbGJhY2spCi0gICAgICAg
IHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgZGVidWdnZXJNb2Rl
bC5yZW1vdmVCcmVha3BvaW50KCIgKyBicmVha3BvaW50SWQgKyAiKSIpOwotICAgICAgICAgICAg
ZGVsZXRlIHRoaXMuX2JyZWFrcG9pbnRzW2JyZWFrcG9pbnRJZF07Ci0gICAgICAgICAgICBpZiAo
Y2FsbGJhY2spCi0gICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgfSwKLQotICAg
ICAgICBzZXRCcmVha3BvaW50c0FjdGl2ZTogZnVuY3Rpb24oKSB7IH0sCi0KLSAgICAgICAgY3Jl
YXRlTGl2ZUxvY2F0aW9uOiBmdW5jdGlvbihyYXdMb2NhdGlvbiwgdXBkYXRlRGVsZWdhdGUpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0c1tyYXdMb2NhdGlvbi5z
Y3JpcHRJZF0uY3JlYXRlTGl2ZUxvY2F0aW9uKHJhd0xvY2F0aW9uLCB1cGRhdGVEZWxlZ2F0ZSk7
Ci0gICAgICAgIH0sCi0KLSAgICAgICAgc2NyaXB0Rm9ySWQ6IGZ1bmN0aW9uKHNjcmlwdElkKQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0c1tzY3JpcHRJZF07Ci0g
ICAgICAgIH0sCi0KLSAgICAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgUmVzZXR0aW5nIGRlYnVnZ2VyLiIpOwot
ICAgICAgICAgICAgdGhpcy5fc2NyaXB0cyA9IHt9OwotICAgICAgICB9LAotCi0gICAgICAgIHB1
c2hTb3VyY2VNYXBwaW5nOiBmdW5jdGlvbihzb3VyY2VNYXBwaW5nKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBmb3IgKHZhciBzY3JpcHRJZCBpbiB0aGlzLl9zY3JpcHRzKQotICAgICAgICAgICAg
ICAgIHRoaXMuX3NjcmlwdHNbc2NyaXB0SWRdLnB1c2hTb3VyY2VNYXBwaW5nKHNvdXJjZU1hcHBp
bmcpOwotICAgICAgICB9LAotCi0gICAgICAgIGRpc2FibGVTb3VyY2VNYXBwaW5nOiBmdW5jdGlv
bihzb3VyY2VNYXBwaW5nKQotICAgICAgICB7Ci0gICAgICAgICAgICBzb3VyY2VNYXBwaW5nLl9k
aXNhYmxlZCA9IHRydWU7Ci0gICAgICAgICAgICBmb3IgKHZhciBzY3JpcHRJZCBpbiB0aGlzLl9z
Y3JpcHRzKQotICAgICAgICAgICAgICAgIHRoaXMuX3NjcmlwdHNbc2NyaXB0SWRdLnVwZGF0ZUxv
Y2F0aW9ucygpOwotICAgICAgICB9Ci0gICAgfQotICAgIERlYnVnZ2VyTW9kZWxNb2NrLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKLQotICAgIHZh
ciBkdW1teVNldHRpbmcgPSB7Ci0gICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBbXTsg
fSwKLSAgICAgICAgc2V0OiBmdW5jdGlvbihicmVha3BvaW50cykgeyB9Ci0gICAgfTsKLQotICAg
IGZ1bmN0aW9uIHJlc2V0V29ya3NwYWNlKGJyZWFrcG9pbnRNYW5hZ2VyKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgUmVzZXR0aW5nIHdvcmtzcGFjZS4iKTsKLSAg
ICAgICAgYnJlYWtwb2ludE1hbmFnZXIuX25ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5yZXNldCgp
OwotICAgICAgICBicmVha3BvaW50TWFuYWdlci5fZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlci5y
ZXNldCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRBZGRlZChldmVudCkKLSAg
ICB7Ci0gICAgICAgIHZhciBicmVha3BvaW50ID0gZXZlbnQuZGF0YS5icmVha3BvaW50OwotICAg
ICAgICB2YXIgdWlMb2NhdGlvbiA9IGV2ZW50LmRhdGEudWlMb2NhdGlvbjsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBicmVha3BvaW50QWRkZWQoIiArIFt1aUxvY2F0aW9u
LnVpU291cmNlQ29kZS5vcmlnaW5VUkwoKSwgdWlMb2NhdGlvbi5saW5lTnVtYmVyLCBicmVha3Bv
aW50LmNvbmRpdGlvbigpLCBicmVha3BvaW50LmVuYWJsZWQoKV0uam9pbigiLCAiKSArICIpIik7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYnJlYWtwb2ludFJlbW92ZWQoZXZlbnQpCi0gICAgewot
ICAgICAgICB2YXIgdWlMb2NhdGlvbiA9IGV2ZW50LmRhdGEudWlMb2NhdGlvbjsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBicmVha3BvaW50UmVtb3ZlZCgiICsgW3VpTG9j
YXRpb24udWlTb3VyY2VDb2RlLm9yaWdpblVSTCgpLCB1aUxvY2F0aW9uLmxpbmVOdW1iZXJdLmpv
aW4oIiwgIikgKyAiKSIpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihX
ZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlwZSwgImNyZWF0ZUxpdmVMb2NhdGlvbiIsIGZ1bmN0
aW9uKHJhd0xvY2F0aW9uKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiAgICBMb2NhdGlvbiBjcmVhdGVkOiAiICsgcmF3TG9jYXRpb24uc2NyaXB0SWQgKyAiOiIgKyBy
YXdMb2NhdGlvbi5saW5lTnVtYmVyKTsKLSAgICB9LCB0cnVlKTsKLSAgICBJbnNwZWN0b3JUZXN0
LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlNjcmlwdC5Mb2NhdGlvbi5wcm90b3R5cGUsICJkaXNw
b3NlIiwgZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiAgICBMb2NhdGlvbiBkaXNwb3NlZDogIiArIHRoaXMuX3Jhd0xvY2F0aW9uLnNjcmlwdElkICsg
IjoiICsgdGhpcy5fcmF3TG9jYXRpb24ubGluZU51bWJlcik7Ci0gICAgfSwgdHJ1ZSk7Ci0KLSAg
ICBmdW5jdGlvbiBhZGRVSVNvdXJjZUNvZGUoYnJlYWtwb2ludE1hbmFnZXIsIHVybCkKLSAgICB7
Ci0gICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLl9kZWJ1Z2dlck1vZGVsLl9hZGRTY3JpcHQodXJs
LCB1cmwpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICBBZGRpbmcgVUlTb3Vy
Y2VDb2RlOiAiICsgdXJsKTsKLSAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IG5ldyBXZWJJ
bnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyKFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVz
LlNjcmlwdCwgIiIsICJ0ZXh0L2phdmFzY3JpcHQiKTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29k
ZSA9IGJyZWFrcG9pbnRNYW5hZ2VyLl9uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZv
clVSTCh1cmwsIGNvbnRlbnRQcm92aWRlciwgdHJ1ZSk7Ci0gICAgICAgIHVpU291cmNlQ29kZXNb
dXJsXSA9IHVpU291cmNlQ29kZTsKLSAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNvdXJjZU1hcHBp
bmcoZGVmYXVsdE1hcHBpbmcpOwotICAgICAgICByZXR1cm4gdWlTb3VyY2VDb2RlOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGFkZFRlbXBvcmFyeVVJU291cmNlQ29kZShicmVha3BvaW50TWFuYWdl
ciwgdXJsKQotICAgIHsKLQotICAgICAgICBicmVha3BvaW50TWFuYWdlci5fZGVidWdnZXJNb2Rl
bC5fYWRkU2NyaXB0KHVybCwgdXJsKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiAgQWRkaW5nIHRlbXBvcmFyeSBVSVNvdXJjZUNvZGU6ICIgKyB1cmwpOwotICAgICAgICB2YXIg
Y29udGVudFByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJvdmlkZXIo
V2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCAiIiwgInRleHQvamF2YXNjcmlwdCIp
OwotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gYnJlYWtwb2ludE1hbmFnZXIuX2RlYnVnZ2Vy
V29ya3NwYWNlUHJvdmlkZXIuYWRkVW5pcXVlRmlsZUZvclVSTCh1cmwsIGNvbnRlbnRQcm92aWRl
ciwgdHJ1ZSk7Ci0gICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3VyY2VNYXBwaW5nKGRlZmF1bHRN
YXBwaW5nKTsKLSAgICAgICAgdWlTb3VyY2VDb2Rlc1t1cmxdID0gdWlTb3VyY2VDb2RlOwotICAg
ICAgICByZXR1cm4gdWlTb3VyY2VDb2RlOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNyZWF0ZUJy
ZWFrcG9pbnQodWlTb3VyY2VDb2RlSWQsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiB7IHNvdXJjZUZpbGVJZDogdWlTb3VyY2VDb2RlSWQsIGxp
bmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbmRpdGlvbjogY29uZGl0aW9uLCBlbmFibGVkOiBlbmFi
bGVkIH07Ci0gICAgfQotCi0gICAgdmFyIHNlcmlhbGl6ZWRCcmVha3BvaW50cyA9IFtdOwotICAg
IHNlcmlhbGl6ZWRCcmVha3BvaW50cy5wdXNoKGNyZWF0ZUJyZWFrcG9pbnQoImEuanMiLCAxMCwg
ImZvbyA9PSBiYXIiLCB0cnVlKSk7Ci0gICAgc2VyaWFsaXplZEJyZWFrcG9pbnRzLnB1c2goY3Jl
YXRlQnJlYWtwb2ludCgiYS5qcyIsIDIwLCAiIiwgZmFsc2UpKTsKLSAgICBzZXJpYWxpemVkQnJl
YWtwb2ludHMucHVzaChjcmVhdGVCcmVha3BvaW50KCJiLmpzIiwgMywgIiIsIHRydWUpKTsKLQot
ICAgIGZ1bmN0aW9uIGNyZWF0ZUJyZWFrcG9pbnRNYW5hZ2VyKHBlcnNpc3RlbnRCcmVha3BvaW50
cywgc291cmNlTWFwcGluZykKLSAgICB7Ci0gICAgICAgIHBlcnNpc3RlbnRCcmVha3BvaW50cyA9
IHBlcnNpc3RlbnRCcmVha3BvaW50cyB8fCBbXTsKLSAgICAgICAgdmFyIHNldHRpbmcgPSB7Ci0g
ICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gcGVyc2lzdGVudEJyZWFrcG9pbnRz
OyB9LAotICAgICAgICAgICAgc2V0OiBmdW5jdGlvbihicmVha3BvaW50cykgeyBwZXJzaXN0ZW50
QnJlYWtwb2ludHMgPSBicmVha3BvaW50czsgfQotICAgICAgICB9OwotCi0gICAgICAgIHZhciBz
b3VyY2VNYXBwaW5nID0gc291cmNlTWFwcGluZyB8fCBkZWZhdWx0TWFwcGluZzsKLSAgICAgICAg
dmFyIGRlYnVnZ2VyTW9kZWwgPSBuZXcgRGVidWdnZXJNb2RlbE1vY2soc291cmNlTWFwcGluZyk7
Ci0gICAgICAgIHZhciB3b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZSgpOwot
ICAgICAgICB2YXIgYnJlYWtwb2ludE1hbmFnZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFrcG9p
bnRNYW5hZ2VyKHNldHRpbmcsIGRlYnVnZ2VyTW9kZWwsIHdvcmtzcGFjZSk7Ci0gICAgICAgIGJy
ZWFrcG9pbnRNYW5hZ2VyLl9uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyKHdvcmtzcGFjZSwgV2ViSW5zcGVjdG9yLnByb2pl
Y3RUeXBlcy5OZXR3b3JrKTsKLSAgICAgICAgYnJlYWtwb2ludE1hbmFnZXIuX2RlYnVnZ2VyV29y
a3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVy
KHdvcmtzcGFjZSwgV2ViSW5zcGVjdG9yLnByb2plY3RUeXBlcy5EZWJ1Z2dlcik7Ci0gICAgICAg
IGJyZWFrcG9pbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9p
bnRNYW5hZ2VyLkV2ZW50cy5CcmVha3BvaW50QWRkZWQsIGJyZWFrcG9pbnRBZGRlZCk7Ci0gICAg
ICAgIGJyZWFrcG9pbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRNYW5hZ2VyLkV2ZW50cy5CcmVha3BvaW50UmVtb3ZlZCwgYnJlYWtwb2ludFJlbW92ZWQp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICBDcmVhdGVkIGJyZWFrcG9pbnRz
IG1hbmFnZXIiKTsKLSAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlKGJyZWFrcG9pbnRNYW5h
Z2VyKTsKLSAgICAgICAgcmV0dXJuIGJyZWFrcG9pbnRNYW5hZ2VyOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHNldEJyZWFrcG9pbnQoYnJlYWtwb2ludE1hbmFnZXIsIHVpU291cmNlQ29kZSwgbGlu
ZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIiAgU2V0dGluZyBicmVha3BvaW50IGF0ICIgKyB1aVNvdXJjZUNvZGUub3Jp
Z2luVVJMKCkgKyAiOiIgKyBsaW5lTnVtYmVyICsgIiBlbmFibGVkOiIgKyBlbmFibGVkICsgIiBj
b25kaXRpb246IiArIGNvbmRpdGlvbik7Ci0gICAgICAgIHJldHVybiBicmVha3BvaW50TWFuYWdl
ci5zZXRCcmVha3BvaW50KHVpU291cmNlQ29kZSwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFi
bGVkKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiByZW1vdmVCcmVha3BvaW50KGJyZWFrcG9pbnRN
YW5hZ2VyLCB1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiICBSZW1vdmluZyBicmVha3BvaW50IGF0ICIgKyB1aVNvdXJjZUNv
ZGUub3JpZ2luVVJMKCkgKyAiOiIgKyBsaW5lTnVtYmVyKTsKLSAgICAgICAgYnJlYWtwb2ludE1h
bmFnZXIuZmluZEJyZWFrcG9pbnQodWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKS5yZW1vdmUoKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wQnJlYWtwb2ludFN0b3JhZ2UoYnJlYWtwb2ludE1h
bmFnZXIpCi0gICAgewotICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSBicmVha3BvaW50TWFuYWdl
ci5fc3RvcmFnZS5fc2V0dGluZy5nZXQoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIiAgRHVtcGluZyBTdG9yYWdlIik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnJl
YWtwb2ludHMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiICAgICIgKyBicmVha3BvaW50c1tpXS5zb3VyY2VGaWxlSWQgKyAiOiIgKyBicmVha3BvaW50
c1tpXS5saW5lTnVtYmVyICArICIgZW5hYmxlZDoiICsgYnJlYWtwb2ludHNbaV0uZW5hYmxlZCAr
ICIgY29uZGl0aW9uOiIgKyBicmVha3BvaW50c1tpXS5jb25kaXRpb24pOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHJlc2V0QnJlYWtwb2ludE1hbmFnZXIoYnJlYWtwb2ludE1hbmFnZXIsIG5leHQp
Ci0gICAgewotICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2UoYnJlYWtwb2ludE1hbmFnZXIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICBSZXNldHRpbmcgYnJlYWtwb2lu
dCBtYW5hZ2VyIik7Ci0gICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnJlc2V0KCk7Ci0gICAgICAg
IHVpU291cmNlQ29kZXMgPSB7fTsKLSAgICAgICAgbmV4dCgpOwotICAgIH0KLQotICAgIEluc3Bl
Y3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldEJyZWFrcG9p
bnQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2VyID0g
Y3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoKTsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSBhZGRVSVNvdXJjZUNvZGUoYnJlYWtwb2ludE1hbmFnZXIsICJhLmpzIik7Ci0gICAgICAgICAg
ICBzZXRCcmVha3BvaW50KGJyZWFrcG9pbnRNYW5hZ2VyLCB1aVNvdXJjZUNvZGUsIDMwLCAiIiwg
dHJ1ZSk7Ci0gICAgICAgICAgICB3aW5kb3cuc2V0QnJlYWtwb2ludENhbGxiYWNrID0gc3RlcDIu
YmluZCh0aGlzKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIHJlc2V0QnJlYWtwb2ludE1hbmFnZXIoYnJlYWtwb2ludE1hbmFn
ZXIsIG5leHQpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9u
IHRlc3RTZXREaXNhYmxlZEJyZWFrcG9pbnQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
dmFyIGJyZWFrcG9pbnRNYW5hZ2VyID0gY3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoKTsKLSAgICAg
ICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBhZGRVSVNvdXJjZUNvZGUoYnJlYWtwb2ludE1hbmFn
ZXIsICJhLmpzIik7Ci0gICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHNldEJyZWFrcG9pbnQo
YnJlYWtwb2ludE1hbmFnZXIsIHVpU291cmNlQ29kZSwgMzAsICIiLCBmYWxzZSk7Ci0gICAgICAg
ICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2UoYnJlYWtwb2ludE1hbmFnZXIpOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgRW5hYmxpbmcgYnJlYWtwb2ludCIpOwotICAg
ICAgICAgICAgYnJlYWtwb2ludC5zZXRFbmFibGVkKHRydWUpOwotICAgICAgICAgICAgd2luZG93
LnNldEJyZWFrcG9pbnRDYWxsYmFjayA9IHN0ZXAyLmJpbmQodGhpcyk7Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXNldEJy
ZWFrcG9pbnRNYW5hZ2VyKGJyZWFrcG9pbnRNYW5hZ2VyLCBuZXh0KTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0Q29uZGl0aW9uYWxCcmVha3Bv
aW50KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBicmVha3BvaW50TWFuYWdlciA9
IGNyZWF0ZUJyZWFrcG9pbnRNYW5hZ2VyKCk7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
ID0gYWRkVUlTb3VyY2VDb2RlKGJyZWFrcG9pbnRNYW5hZ2VyLCAiYS5qcyIpOwotICAgICAgICAg
ICAgdmFyIGJyZWFrcG9pbnQgPSBzZXRCcmVha3BvaW50KGJyZWFrcG9pbnRNYW5hZ2VyLCB1aVNv
dXJjZUNvZGUsIDMwLCAiY29uZGl0aW9uIiwgdHJ1ZSk7Ci0gICAgICAgICAgICB3aW5kb3cuc2V0
QnJlYWtwb2ludENhbGxiYWNrID0gc3RlcDIuYmluZCh0aGlzKTsKLQotICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGR1bXBCcmVha3Bv
aW50U3RvcmFnZShicmVha3BvaW50TWFuYWdlcik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIiAgVXBkYXRpbmcgY29uZGl0aW9uIik7Ci0gICAgICAgICAgICAgICAg
YnJlYWtwb2ludC5zZXRDb25kaXRpb24oIiIpOwotICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRC
cmVha3BvaW50Q2FsbGJhY2sgPSBzdGVwMy5iaW5kKHRoaXMpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgcmVzZXRCcmVha3BvaW50TWFuYWdlcihicmVha3BvaW50TWFuYWdlciwgbmV4dCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFJlc3RvcmVCcmVh
a3BvaW50cyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgYnJlYWtwb2ludE1hbmFn
ZXIgPSBjcmVhdGVCcmVha3BvaW50TWFuYWdlcihzZXJpYWxpemVkQnJlYWtwb2ludHMpOwotICAg
ICAgICAgICAgYWRkVUlTb3VyY2VDb2RlKGJyZWFrcG9pbnRNYW5hZ2VyLCAiYS5qcyIpOwotICAg
ICAgICAgICAgd2luZG93LnNldEJyZWFrcG9pbnRDYWxsYmFjayA9IHN0ZXAyLmJpbmQodGhpcyk7
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICByZXNldEJyZWFrcG9pbnRNYW5hZ2VyKGJyZWFrcG9pbnRNYW5hZ2VyLCBuZXh0KTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0UmVzdG9y
ZUJyZWFrcG9pbnRzVHdpY2UobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIGJyZWFr
cG9pbnRNYW5hZ2VyID0gY3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoc2VyaWFsaXplZEJyZWFrcG9p
bnRzKTsKLSAgICAgICAgICAgIGFkZFVJU291cmNlQ29kZShicmVha3BvaW50TWFuYWdlciwgImEu
anMiKTsKLSAgICAgICAgICAgIGFkZFVJU291cmNlQ29kZShicmVha3BvaW50TWFuYWdlciwgImEu
anMiKTsKLSAgICAgICAgICAgIHdpbmRvdy5zZXRCcmVha3BvaW50Q2FsbGJhY2sgPSBzdGVwMi5i
aW5kKHRoaXMpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgcmVzZXRCcmVha3BvaW50TWFuYWdlcihicmVha3BvaW50TWFuYWdl
ciwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24g
dGVzdFJlbW92ZUJyZWFrcG9pbnRzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBi
cmVha3BvaW50TWFuYWdlciA9IGNyZWF0ZUJyZWFrcG9pbnRNYW5hZ2VyKHNlcmlhbGl6ZWRCcmVh
a3BvaW50cyk7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gYWRkVUlTb3VyY2VDb2Rl
KGJyZWFrcG9pbnRNYW5hZ2VyLCAiYS5qcyIpOwotICAgICAgICAgICAgd2luZG93LnNldEJyZWFr
cG9pbnRDYWxsYmFjayA9IHN0ZXAyLmJpbmQodGhpcyk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9u
IHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzZXRCcmVha3BvaW50KGJy
ZWFrcG9pbnRNYW5hZ2VyLCB1aVNvdXJjZUNvZGUsIDMwLCAiIiwgdHJ1ZSk7Ci0gICAgICAgICAg
ICAgICAgd2luZG93LnNldEJyZWFrcG9pbnRDYWxsYmFjayA9IHN0ZXAzLmJpbmQodGhpcyk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICByZW1vdmVCcmVha3BvaW50KGJyZWFrcG9pbnRNYW5hZ2VyLCB1
aVNvdXJjZUNvZGUsIDMwKTsKLSAgICAgICAgICAgICAgICByZW1vdmVCcmVha3BvaW50KGJyZWFr
cG9pbnRNYW5hZ2VyLCB1aVNvdXJjZUNvZGUsIDEwKTsKLSAgICAgICAgICAgICAgICByZW1vdmVC
cmVha3BvaW50KGJyZWFrcG9pbnRNYW5hZ2VyLCB1aVNvdXJjZUNvZGUsIDIwKTsKLSAgICAgICAg
ICAgICAgICByZXNldEJyZWFrcG9pbnRNYW5hZ2VyKGJyZWFrcG9pbnRNYW5hZ2VyLCBuZXh0KTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0QnJl
YWtwb2ludFRoYXRTaGlmdHMobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIGJyZWFr
cG9pbnRNYW5hZ2VyID0gY3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoKTsKLSAgICAgICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSBhZGRVSVNvdXJjZUNvZGUoYnJlYWtwb2ludE1hbmFnZXIsICJhLmpz
Iik7Ci0gICAgICAgICAgICBzZXRCcmVha3BvaW50KGJyZWFrcG9pbnRNYW5hZ2VyLCB1aVNvdXJj
ZUNvZGUsIDEwMTUsICIiLCB0cnVlKTsKLSAgICAgICAgICAgIHdpbmRvdy5zZXRCcmVha3BvaW50
Q2FsbGJhY2sgPSBzdGVwMi5iaW5kKHRoaXMpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVw
MigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmVzZXRCcmVha3BvaW50TWFuYWdl
cihicmVha3BvaW50TWFuYWdlciwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0K
LSAgICAgICAgZnVuY3Rpb24gdGVzdFNldEJyZWFrcG9pbnRUaGF0U2hpZnRzVHdpY2UobmV4dCkK
LSAgICAgICAgewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2VyID0gY3JlYXRlQnJl
YWtwb2ludE1hbmFnZXIoKTsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBhZGRVSVNv
dXJjZUNvZGUoYnJlYWtwb2ludE1hbmFnZXIsICJhLmpzIik7Ci0gICAgICAgICAgICBzZXRCcmVh
a3BvaW50KGJyZWFrcG9pbnRNYW5hZ2VyLCB1aVNvdXJjZUNvZGUsIDEwMTUsICIiLCB0cnVlKTsK
LSAgICAgICAgICAgIHdpbmRvdy5zZXRCcmVha3BvaW50Q2FsbGJhY2sgPSBzdGVwMi5iaW5kKHRo
aXMpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgc2V0QnJlYWtwb2ludChicmVha3BvaW50TWFuYWdlciwgdWlTb3VyY2VDb2Rl
LCAxMDE1LCAiIiwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgd2luZG93LnNldEJyZWFrcG9pbnRD
YWxsYmFjayA9IHN0ZXAzLmJpbmQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXNldEJy
ZWFrcG9pbnRNYW5hZ2VyKGJyZWFrcG9pbnRNYW5hZ2VyLCBuZXh0KTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0QnJlYWtwb2ludE91dHNpZGVT
Y3JpcHQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2Vy
ID0gY3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoW10pOwotICAgICAgICAgICAgdmFyIHVpU291cmNl
Q29kZSA9IGFkZFVJU291cmNlQ29kZShicmVha3BvaW50TWFuYWdlciwgImEuanMiKTsKLSAgICAg
ICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQodWlTb3VyY2VDb2RlLCAyNTAw
LCAiIiwgdHJ1ZSk7Ci0gICAgICAgICAgICB3aW5kb3cuc2V0QnJlYWtwb2ludENhbGxiYWNrID0g
c3RlcDIuYmluZCh0aGlzKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHJlc2V0QnJlYWtwb2ludE1hbmFnZXIoYnJlYWtwb2lu
dE1hbmFnZXIsIG5leHQpOwotICAgICAgICAgICAgfQotICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdE5hdmlnYXRpb24obmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIGJy
ZWFrcG9pbnRNYW5hZ2VyID0gY3JlYXRlQnJlYWtwb2ludE1hbmFnZXIoc2VyaWFsaXplZEJyZWFr
cG9pbnRzKTsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGVBID0gYWRkVUlTb3VyY2VDb2Rl
KGJyZWFrcG9pbnRNYW5hZ2VyLCAiYS5qcyIpOwotICAgICAgICAgICAgd2luZG93LnNldEJyZWFr
cG9pbnRDYWxsYmFjayA9IHN0ZXAyLmJpbmQodGhpcyk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9u
IHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiXG4gIE5hdmlnYXRpbmcgdG8gQi4iKTsKLSAgICAgICAgICAgICAgICBicmVha3Bv
aW50TWFuYWdlci5fZGVidWdnZXJNb2RlbC5yZXNldCgpOwotICAgICAgICAgICAgICAgIHJlc2V0
V29ya3NwYWNlKGJyZWFrcG9pbnRNYW5hZ2VyKTsKLSAgICAgICAgICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlQiA9IGFkZFVJU291cmNlQ29kZShicmVha3BvaW50TWFuYWdlciwgImIuanMiKTsKLSAg
ICAgICAgICAgICAgICB3aW5kb3cuc2V0QnJlYWtwb2ludENhbGxiYWNrID0gc3RlcDMuYmluZCh0
aGlzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcbiAg
TmF2aWdhdGluZyBiYWNrIHRvIEEuIik7Ci0gICAgICAgICAgICAgICAgYnJlYWtwb2ludE1hbmFn
ZXIuX2RlYnVnZ2VyTW9kZWwucmVzZXQoKTsKLSAgICAgICAgICAgICAgICByZXNldFdvcmtzcGFj
ZShicmVha3BvaW50TWFuYWdlcik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiAgUmVzb2x2aW5nIHByb3Zpc2lvbmFsIGJyZWFrcG9pbnQuIik7Ci0gICAgICAgICAg
ICAgICAgYWRkVGVtcG9yYXJ5VUlTb3VyY2VDb2RlKGJyZWFrcG9pbnRNYW5hZ2VyLCAiYS5qcyIp
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgdmFyIGV2ZW50RGF0YSA9IHsgYnJlYWtwb2lu
dElkOiAiYS5qczoxMCIsIGxvY2F0aW9uOiB7IHNjcmlwdElkOiAiYS5qcyIsIGxpbmVOdW1iZXI6
IDExLCBjb2x1bW5OdW1iZXI6IDUgfX07Ci0gICAgICAgICAgICAgICAgYnJlYWtwb2ludE1hbmFn
ZXIuX2RlYnVnZ2VyTW9kZWwuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVzb2x2ZWQsIGV2ZW50RGF0YSk7Ci0gICAg
ICAgICAgICAgICAgYWRkVUlTb3VyY2VDb2RlKGJyZWFrcG9pbnRNYW5hZ2VyLCAiYS5qcyIpOwot
ICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRCcmVha3BvaW50Q2FsbGJhY2sgPSBzdGVwNC5iaW5k
KHRoaXMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNCgpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmVzZXRCcmVha3BvaW50TWFuYWdlcihicmVh
a3BvaW50TWFuYWdlciwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdFNvdXJjZU1hcHBpbmcobmV4dCkKLSAgICAgICAgewotICAgICAgICAg
ICAgLy8gU291cmNlIG1hcHBpbmcgd2lsbCBzaGlmdCBldmVydGhpbmcgMTAgbGluZXMgYWhlYWQg
c28gdGhhdCBicmVha3BvaW50IDEgY2xhc2hlZCB3aXRoIGJyZWFrcG9pbnQgMi4KLSAgICAgICAg
ICAgIHZhciBzZXJpYWxpemVkQnJlYWtwb2ludHMgPSBbXTsKLSAgICAgICAgICAgIHNlcmlhbGl6
ZWRCcmVha3BvaW50cy5wdXNoKGNyZWF0ZUJyZWFrcG9pbnQoImEuanMiLCAxMCwgImZvbyA9PSBi
YXIiLCB0cnVlKSk7Ci0gICAgICAgICAgICBzZXJpYWxpemVkQnJlYWtwb2ludHMucHVzaChjcmVh
dGVCcmVha3BvaW50KCJhLmpzIiwgMjAsICIiLCB0cnVlKSk7Ci0KLSAgICAgICAgICAgIHZhciBi
cmVha3BvaW50TWFuYWdlciA9IGNyZWF0ZUJyZWFrcG9pbnRNYW5hZ2VyKHNlcmlhbGl6ZWRCcmVh
a3BvaW50cyk7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlQSA9IGFkZFVJU291cmNlQ29k
ZShicmVha3BvaW50TWFuYWdlciwgImEuanMiKTsKLSAgICAgICAgICAgIHdpbmRvdy5zZXRCcmVh
a3BvaW50Q2FsbGJhY2sgPSBzdGVwMi5iaW5kKHRoaXMpOwotCi0gICAgICAgICAgICBmdW5jdGlv
biBzdGVwMigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgd2luZG93LnNldEJyZWFr
cG9pbnRDYWxsYmFjayA9IHN0ZXAzLmJpbmQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiXG4gIFRvZ2dsaW5nIHNvdXJjZSBtYXBwaW5nLiIpOwot
ICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLl9kZWJ1Z2dlck1vZGVsLnB1c2hTb3Vy
Y2VNYXBwaW5nKHNoaWZ0aW5nTWFwcGluZyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIlxuICBUb2dnbGluZyBzb3VyY2UgbWFwcGluZyBiYWNrLiIpOwotICAgICAg
ICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLl9kZWJ1Z2dlck1vZGVsLmRpc2FibGVTb3VyY2VN
YXBwaW5nKHNoaWZ0aW5nTWFwcGluZyk7Ci0gICAgICAgICAgICAgICAgcmVzZXRCcmVha3BvaW50
TWFuYWdlcihicmVha3BvaW50TWFuYWdlciwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFByb3Zpc2lvbmFsQnJlYWtwb2ludHNSZXNvbHZl
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzZXJpYWxpemVkQnJlYWtwb2ludHMg
PSBbXTsKLSAgICAgICAgICAgIHNlcmlhbGl6ZWRCcmVha3BvaW50cy5wdXNoKGNyZWF0ZUJyZWFr
cG9pbnQoImEuanMiLCAxMCwgImZvbyA9PSBiYXIiLCB0cnVlKSk7Ci0KLSAgICAgICAgICAgIHZh
ciBicmVha3BvaW50TWFuYWdlciA9IGNyZWF0ZUJyZWFrcG9pbnRNYW5hZ2VyKHNlcmlhbGl6ZWRC
cmVha3BvaW50cyk7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gYWRkVUlTb3VyY2VD
b2RlKGJyZWFrcG9pbnRNYW5hZ2VyLCAiYS5qcyIpOwotICAgICAgICAgICAgd2luZG93LnNldEJy
ZWFrcG9pbnRDYWxsYmFjayA9IHN0ZXAyLmJpbmQodGhpcyk7Ci0KLSAgICAgICAgICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBicmVha3BvaW50TWFu
YWdlci5fZGVidWdnZXJNb2RlbC5yZXNldCgpOwotICAgICAgICAgICAgICAgIHJlc2V0V29ya3Nw
YWNlKGJyZWFrcG9pbnRNYW5hZ2VyKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiICBSZXNvbHZpbmcgcHJvdmlzaW9uYWwgYnJlYWtwb2ludC4iKTsKLSAgICAgICAg
ICAgICAgICBhZGRUZW1wb3JhcnlVSVNvdXJjZUNvZGUoYnJlYWtwb2ludE1hbmFnZXIsICJhLmpz
IikgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICB2YXIgZXZlbnREYXRhID0geyBicmVha3Bv
aW50SWQ6ICJhLmpzOjEwIiwgbG9jYXRpb246IHsgc2NyaXB0SWQ6ICJhLmpzIiwgbGluZU51bWJl
cjogMTEsIGNvbHVtbk51bWJlcjogNSB9fTsKLSAgICAgICAgICAgICAgICBicmVha3BvaW50TWFu
YWdlci5fZGVidWdnZXJNb2RlbC5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRSZXNvbHZlZCwgZXZlbnREYXRhKTsKLSAg
ICAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSBicmVha3BvaW50TWFuYWdlci5fYnJlYWtw
b2ludHMua2V5cygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KGJyZWFrcG9pbnRzLmxlbmd0aCwgMSwgIkV4YWN0bHkgb25lIGJyZWFrcG9pbnQgc2hvdWxkIGJl
IHJlZ2lzdGVyZWQgaW4gYnJlYWtwb2ludCBtYW5hZ2VyLiIpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghYnJlYWtwb2ludHNbMF0uX3ByaW1hcnlVSUxvY2F0aW9u
LCAiX3ByaW1hcnlVSUxvY2F0aW9uIGZpZWxkIHNob3VsZCBiZSBjbGVhcmVkIGZvciBwcm92aXNp
b25hbCBicmVhcG9pbnQuIik7Ci0gICAgICAgICAgICAgICAgcmVzZXRCcmVha3BvaW50TWFuYWdl
cihicmVha3BvaW50TWFuYWdlciwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICBdKTsKLX07Ci0KLTwvc2NyaXB0PgotCi08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLTxwPlRlc3RzIEJyZWFrcG9pbnRNYW5hZ2VyIGNsYXNzLjwvcD4KLQotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGxz
dGFjay1wbGFjYXJkcy1kaXNjYXJkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2NhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJkZWQtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNDRmMGJmLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRlc3RzIHRoYXQgUmF3
U291cmNlQ29kZSBsaXN0ZW5lcnMgY291bnQgd29uJ3QgZ3JvdyBvbiBlYWNoIHNjcmlwdCBwYXVz
ZS4gQnVnIDcwOTk2Ci0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotCi1SdW5uaW5nOiB0ZXN0Q2Fs
bFN0YWNrUGxhY2FyZHNEaXNjYXJkZWQKLVNjcmlwdCBzb3VyY2Ugd2FzIHNob3duLgotU2V0IHRp
bWVyIGZvciB0ZXN0IGZ1bmN0aW9uLgotUmVjZWl2ZWQgRGVidWdnZXJQYXVzZWQgZXZlbnQuCi1G
dW5jdGlvbiBuYW1lOiB0ZXN0RnVuY3Rpb24KLVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotU2Ny
aXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0aW9uLgotUmVj
ZWl2ZWQgRGVidWdnZXJQYXVzZWQgZXZlbnQuCi1GdW5jdGlvbiBuYW1lOiB0ZXN0RnVuY3Rpb24K
LVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotRGVi
dWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvY2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRlZC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJkZWQuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA1NDlmYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRlZC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKQotewot
ICAgIGRlYnVnZ2VyOwotfQotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBJbnNwZWN0
b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdENhbGxT
dGFja1BsYWNhcmRzRGlzY2FyZGVkKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2VyUGF1c2VkLCBkaWRQYXVzZSwgdGhpcyk7Ci0gICAgICAg
ICAgICB2YXIgcHJldmlvdXNDb3VudCA9IHVuZGVmaW5lZDsKLSAgICAgICAgICAgIGZ1bmN0aW9u
IGRpZFBhdXNlKGV2ZW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJSZWNlaXZlZCBEZWJ1Z2dlclBhdXNlZCBldmVudC4iKTsKLSAgICAg
ICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gZXZlbnQuZGF0YS5jYWxsRnJhbWVzWzBdOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGdW5jdGlvbiBuYW1lOiAiICsg
Y2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICAgICAgdmFyIGNvdW50ID0gbGl2
ZUxvY2F0aW9uc0NvdW50KCk7Ci0gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzQ291bnQgIT09
IHVuZGVmaW5lZCAmJiBjb3VudCAhPT0gcHJldmlvdXNDb3VudCkKLSAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxFRDogTGl2ZSBsb2NhdGlvbnMgY291bnQg
aGFzIGNoYW5nZWQhIik7Ci0gICAgICAgICAgICAgICAgcHJldmlvdXNDb3VudCA9IGNvdW50Owot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3Vy
Y2UoImNhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJkZWQuaHRtbCIsIGRpZFNob3dTY3JpcHRTb3Vy
Y2UpOwotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShzb3VyY2VGcmFt
ZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoZGlkUGF1c2UxKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFBhdXNlMSgpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24oZGlkUmVzdW1l
MSkKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJlc3VtZTEoKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucnVuVGVzdEZ1bmN0aW9u
QW5kV2FpdFVudGlsUGF1c2VkKGRpZFBhdXNlMik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBmdW5jdGlvbiBkaWRQYXVzZTIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKGRpZFJlc3VtZTIpCi0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXN1bWUyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0gICAgXSk7Ci0KLSAg
ICBmdW5jdGlvbiBsaXZlTG9jYXRpb25zQ291bnQoKQotICAgIHsKLSAgICAgICAgdmFyIGNvdW50
ID0gMDsKLSAgICAgICAgdmFyIHNjcmlwdHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5z
Y3JpcHRzOwotICAgICAgICBmb3IgKHZhciBpZCBpbiBzY3JpcHRzKQotICAgICAgICAgICAgY291
bnQgKz0gc2NyaXB0c1tpZF0uX2xvY2F0aW9ucy5zaXplKCk7Ci0gICAgICAgIHJldHVybiBjb3Vu
dDsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgUmF3U291cmNlQ29kZSBsaXN0ZW5lcnMgY291bnQgd29u
J3QgZ3JvdyBvbiBlYWNoIHNjcmlwdCBwYXVzZS4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTk2Ij5CdWcgNzA5OTY8L2E+Ci08L3A+Ci0KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9j
b250ZW50LXByb3ZpZGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvY29udGVudC1wcm92aWRlcnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA4ZjY0YjI4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9jb250ZW50LXByb3ZpZGVycy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxNCArMCwwIEBACi1UZXN0cyBDb250ZW50UHJvdmlkZXIgaW1wbGVtZW50YXRpb25zLgotCi0K
LVJ1bm5pbmc6IHRlc3RDb25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyCi0gIDxzY3Jp
cHQ+ZnVuY3Rpb24gZm9vKCkgeyByZXR1cm4gMDsgfTwvc2NyaXB0PgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2NyaXB0PmZ1
bmN0aW9uIGJhcigpIHsgcmV0dXJuIDA7IH08L3NjcmlwdD4KLQotICAgICAgICAgICAgPHNjcmlw
dD4KLWZ1bmN0aW9uIGJheigpCi17Ci0gIHJldHVybiAwOwotfQotPC9zY3JpcHQ+Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jb250ZW50LXByb3ZpZGVycy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NvbnRlbnQtcHJvdmlkZXJzLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1OTg2OGIuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NvbnRlbnQtcHJvdmlkZXJzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LQotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gY3JlYXRlTW9j
a1NjcmlwdChpZCwgc291cmNlLCByYW5nZSkKLSAgICB7Ci0gICAgICAgIHJhbmdlID0gcmFuZ2Ug
fHwgWzAsIDAsIDEwMCwgMF07Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICByZXF1ZXN0
Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgY2FsbGJhY2soc291cmNlLCBmYWxzZSwgInRleHQvamF2YXNjcmlwdCIpOwotICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgIGdldCBsaW5lT2Zmc2V0KCkgeyByZXR1cm4gcmFuZ2VbMF07IH0s
Ci0gICAgICAgICAgICBnZXQgY29sdW1uT2Zmc2V0KCkgeyByZXR1cm4gcmFuZ2VbMV07IH0sCi0g
ICAgICAgICAgICBnZXQgZW5kTGluZSgpIHsgcmV0dXJuIHJhbmdlWzJdOyB9LAotICAgICAgICAg
ICAgZ2V0IGVuZENvbHVtbigpIHsgcmV0dXJuIHJhbmdlWzNdOyB9Ci0gICAgICAgIH07Ci0gICAg
fQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0
ZXN0Q29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRlbnRQcm92aWRlcihuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICB2YXIgc2NyaXB0cyA9IFtdOwotICAgICAgICAgICAgc2NyaXB0cy5wdXNoKGNy
ZWF0ZU1vY2tTY3JpcHQoIjEiLCAiXG5mdW5jdGlvbiBiYXooKVxue1xuICByZXR1cm4gMDtcbn1c
biIsIFszLCAyMCwgNywgMF0pKTsKLSAgICAgICAgICAgIHNjcmlwdHMucHVzaChjcmVhdGVNb2Nr
U2NyaXB0KCIyIiwgImZ1bmN0aW9uIGZvbygpIHsgcmV0dXJuIDA7IH0iLCBbMCwgMTAsIDAsIDM4
XSkpOwotICAgICAgICAgICAgc2NyaXB0cy5wdXNoKGNyZWF0ZU1vY2tTY3JpcHQoIjMiLCAiZnVu
Y3Rpb24gYmFyKCkgeyByZXR1cm4gMDsgfSIsIFsxLCA3MCwgMSwgOThdKSk7Ci0gICAgICAgICAg
ICBzY3JpcHRzLnB1c2goY3JlYXRlTW9ja1NjcmlwdCgiNCIsICJ0aGlzIHNob3VsZCBub3QgYXBw
ZWFyIGluIGRpc3BsYXllZCBjb250ZW50IiwgWzAsIDIwLCAwLCA2M10pKTsKLSAgICAgICAgICAg
IHZhciBjb250ZW50UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbmNhdGVuYXRlZFNjcmlw
dHNDb250ZW50UHJvdmlkZXIoc2NyaXB0cyk7Ci0gICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXF1
ZXN0Q29udGVudChjb250ZW50LCBjb250ZW50RW5jb2RlZCwgbWltZVR5cGUpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoInRleHQvaHRt
bCIsIG1pbWVUeXBlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChj
b250ZW50KTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBjb250ZW50UHJvdmlkZXIucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQpOwot
ICAgICAgICB9Ci0gICAgXSk7Ci19OwotCi08L3NjcmlwdD4KLQotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBDb250ZW50UHJvdmlkZXIgaW1wbGVtZW50YXRp
b25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9jb3B5LXN0YWNrLXRyYWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9jb3B5LXN0YWNrLXRyYWNlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmEwM2ZmZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvY29weS1zdGFjay10cmFjZS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyB0aGF0IGRlYnVnZ2VyIHdpbGwgY29weSB2
YWxpZCBzdGFjayB0cmFjZSB1cG9uIGNvbnRleHQgbWVudSBhY3Rpb24uCi0KLURlYnVnZ2VyIHdh
cyBlbmFibGVkLgotU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0aW9uLgotU2NyaXB0IGV4ZWN1dGlv
biBwYXVzZWQuCi1mdW5jdGlvbkJheiAoY29weS1zdGFjay10cmFjZS5odG1sOjE5KQotZnVuY3Rp
b25CYXIgKGNvcHktc3RhY2stdHJhY2UuaHRtbDoxNCkKLXRlc3RGdW5jdGlvbiAoY29weS1zdGFj
ay10cmFjZS5odG1sOjkpCi0KLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KLURlYnVnZ2VyIHdh
cyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2NvcHktc3RhY2stdHJhY2UuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9j
b3B5LXN0YWNrLXRyYWNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxOTJm
MTYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NvcHktc3Rh
Y2stdHJhY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdEZ1
bmN0aW9uKCkKLXsKLSAgICBmdW5jdGlvbkJhcigpOwotfQotCi1mdW5jdGlvbiBmdW5jdGlvbkJh
cigpCi17Ci0gICAgZnVuY3Rpb25CYXooKTsKLX0KLQotZnVuY3Rpb24gZnVuY3Rpb25CYXooKQot
ewotICAgIGRlYnVnZ2VyOwotfQotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBJbnNw
ZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAx
KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVu
dGlsUGF1c2VkKHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuY29weVRleHQgPSBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdC5iaW5kKEluc3BlY3RvclRlc3QpOwotICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxz
LnNjcmlwdHMuc2lkZWJhclBhbmVzLmNhbGxzdGFjay5fY29weVN0YWNrVHJhY2UoKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMg
dGhhdCBkZWJ1Z2dlciB3aWxsIGNvcHkgdmFsaWQgc3RhY2sgdHJhY2UgdXBvbiBjb250ZXh0IG1l
bnUgYWN0aW9uLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWctaW5saW5lZC1zY3JpcHRzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Zy1pbmxpbmVkLXNjcmlwdHMt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNmIzNjY0Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Zy1pbmxpbmVkLXNj
cmlwdHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotVGVzdHMg
dGhhdCBhbGwgaW5saW5lZCBzY3JpcHRzIGZyb20gdGhlIHNhbWUgZG9jdW1lbnQgYXJlIHNob3du
IGluIHRoZSBzYW1lIHNvdXJjZSBmcmFtZSB3aXRoIGh0bWwgc2NyaXB0IHRhZ3MuIEJ1ZyA1NDU0
NC4KLQotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1TY3JpcHQgc291cmNlIHdhcyBzaG93bi4KLVNj
cmlwdCBleGVjdXRpb24gcGF1c2VkLgotQ2FsbCBzdGFjazoKLSAgICAwKSAgKGRlYnVnLWlubGlu
ZWQtc2NyaXB0cy5odG1sOjMpCi09PVNvdXJjZSBmcmFtZSBjb250ZW50cyBzdGFydD09Ci0KLQot
ICA8c2NyaXB0PiAgZnVuY3Rpb24gZjEoKSB7IHJldHVybiAwOyB9OyBmMSgpOyAgPC9zY3JpcHQ+
Ci09PVNvdXJjZSBmcmFtZSBjb250ZW50cyBlbmQ9PQotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQu
Ci1DYWxsIHN0YWNrOgotICAgIDApIGY0IChkZWJ1Zy1pbmxpbmVkLXNjcmlwdHMuaHRtbDoxMCkK
LSAgICAxKSAgKGRlYnVnLWlubGluZWQtc2NyaXB0cy5odG1sOjEyKQotPT1Tb3VyY2UgZnJhbWUg
Y29udGVudHMgc3RhcnQ9PQotCi0KLSAgPHNjcmlwdD4gIGZ1bmN0aW9uIGYxKCkgeyByZXR1cm4g
MDsgfTsgZjEoKTsgIDwvc2NyaXB0PiAgICAgPHNjcmlwdD5mdW5jdGlvbiBmMigpIHsgcmV0dXJu
IDA7IH08L3NjcmlwdD48c2NyaXB0PgotZnVuY3Rpb24gZjMoKSB7IHJldHVybiAwOyB9Ci08L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIGY0KCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLWY0
KCk7Ci08L3NjcmlwdD4KLT09U291cmNlIGZyYW1lIGNvbnRlbnRzIGVuZD09Ci1QYWdlIHJlbG9h
ZGVkLgotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWctaW5saW5lZC1zY3JpcHRzLmh0bWwtZGlzYWJsZWQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWctaW5saW5lZC1zY3JpcHRzLmh0bWwt
ZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzM2YyMGYuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnLWlubGluZWQtc2NyaXB0
cy5odG1sLWRpc2FibGVkCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLSAgPHNjcmlwdD4gIGZ1bmN0aW9uIGYxKCkgeyByZXR1cm4gMDsgfTsgZjEoKTsgIDwv
c2NyaXB0PiAgICAgPHNjcmlwdD5mdW5jdGlvbiBmMigpIHsgcmV0dXJuIDA7IH08L3NjcmlwdD48
c2NyaXB0PgotZnVuY3Rpb24gZjMoKSB7IHJldHVybiAwOyB9Ci08L3NjcmlwdD4KLQotPHNjcmlw
dD4KLWZ1bmN0aW9uIGY0KCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLWY0KCk7Ci08L3NjcmlwdD4K
LQotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotdmFyIHRlc3QgPSBmdW5j
dGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGVwMSwgdHJ1
ZSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LnNob3dTY3JpcHRTb3VyY2UoImRlYnVnLWlubGluZWQtc2NyaXB0cy5odG1sIiwgc3RlcDIpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKHNvdXJjZUZyYW1lKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBzb3VyY2Ugd2FzIHNob3duLiIpOwotICAg
ICAgICAvLyBVc2UgZmFrZSByZXNvdXJjZXMgdG8gbWFrZSBzdXJlIHRoYXQgc2NyaXB0cyB3aWxs
IGJlIGxvYWRlZCBmcm9tIEphdmFTY3JpcHQgVk0uCi0gICAgICAgIFdlYkluc3BlY3Rvci5uZXR3
b3JrTWFuYWdlci5pbmZsaWdodFJlc291cmNlRm9yVVJMID0gZnVuY3Rpb24oKSB7IHJldHVybiBu
ZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlKCk7IH07Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2V0
QnJlYWtwb2ludChzb3VyY2VGcmFtZSwgMiwgIiIsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNldEJyZWFrcG9pbnQoc291cmNlRnJhbWUsIDksICIiLCB0cnVlKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQoc3RlcDMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LnJlbG9hZFBhZ2UoSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdC5iaW5kKEluc3Bl
Y3RvclRlc3QpKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMyhjYWxsRnJhbWVzKQotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBleGVjdXRpb24gcGF1
c2VkLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlKGNhbGxGcmFt
ZXMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImRlYnVnLWlubGlu
ZWQtc2NyaXB0cy5odG1sIiwgc3RlcDQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KHNv
dXJjZUZyYW1lKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU291cmNlRnJhbWVD
b250ZW50cyhzb3VyY2VGcmFtZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0
aW9uKEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkLmJpbmQobnVsbCwgc3RlcDUpKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNShjYWxsRnJhbWVzKQotICAgIHsKLSAgICAgICAgaWYg
KGNhbGxGcmFtZXNbMF0ubGluZSAhPT0gOSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5y
ZXN1bWVFeGVjdXRpb24oSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQuYmluZChudWxsLCBz
dGVwNSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJTY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4iKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJkZWJ1Zy1pbmxpbmVkLXNjcmlwdHMuaHRtbCIsIHN0
ZXA2KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNihzb3VyY2VGcmFtZSkKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNvdXJjZUZyYW1lQ29udGVudHMoc291cmNlRnJhbWUp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihJbnNwZWN0b3JUZXN0Lndh
aXRVbnRpbFBhdXNlZC5iaW5kKG51bGwsIHN0ZXA3KSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
c3RlcDcoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24oSW5z
cGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQuYmluZChudWxsLCBzdGVwNSkpOwotICAgIH0KLX0K
LQotPC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
Ci1UZXN0cyB0aGF0IGFsbCBpbmxpbmVkIHNjcmlwdHMgZnJvbSB0aGUgc2FtZSBkb2N1bWVudCBh
cmUgc2hvd24gaW4gdGhlIHNhbWUgc291cmNlIGZyYW1lIHdpdGggaHRtbCBzY3JpcHQgdGFncy4K
LTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU0NCI+
QnVnIDU0NTQ0LjwvYT4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWFjdGl2YXRpb24tY3Jhc2gtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWFjdGl2
YXRpb24tY3Jhc2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
MzAxZWY1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1
Z2dlci1hY3RpdmF0aW9uLWNyYXNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUg
KzAsMCBAQAotVGVzdHMgZm9yIGEgY3Jhc2ggY2F1c2VkIGJ5IGluYWNjdXJhdGUgQWN0aXZhdGlv
biByZWNvcmRzLiA8cmRhcjovL3Byb2JsZW0vODUyNTkwNz4gQ3Jhc2ggaW4gZGVidWdnZXIgYmVu
ZWF0aCBNYXJrU3RhY2s6OmRyYWluIEAgbWUuY29tLCBpYm0uY29tCi0KLURlYnVnZ2VyIHdhcyBl
bmFibGVkLgotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItYWN0aXZhdGlvbi1jcmFzaC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWFjdGl2YXRpb24tY3Jhc2guaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjQwNTc3MC4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItYWN0aXZhdGlvbi1jcmFzaC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3Njcmlw
dD4KLQotPHNjcmlwdD4KLXZhciBjbG9zdXJlcyA9IFtdOwotZnVuY3Rpb24gbWFrZUNsb3N1cmUo
KSB7Ci0gICAgdmFyIHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMDsgLy8g
TWFrZSBhIGxvdCBvZiBwb3RlbnRpYWxseSBjYXB0dXJlZCB2YXJpYWJsZXMuCi0gICAgcmV0dXJu
IGZ1bmN0aW9uICgpeyByZXR1cm4gdjE7IH07IC8vIEJ1dCBvbmx5IGNhcHR1cmUgb25lIGluIG9w
dGltaXppbmcgY29tcGlsZXMuCi19Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsK
LSAgICBjbG9zdXJlcy5wdXNoKG1ha2VDbG9zdXJlKCkpOwotfQotCi1mdW5jdGlvbiB0cnlDcmFz
aCgpIHsKLSAgICBtYWtlQ2xvc3VyZSgpOyAvLyBGb3JjZSByZWNvbXBpbGF0aW9uLgotICAgIAot
ICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlIHNob3VsZCBoYXZlIDEwMCBhY3RpdmF0aW9ucyB0aGF0
IGNhcHR1cmVkIDEgdmFyaWFibGUKLSAgICAvLyBidXQgdGhpbmsgdGhleSBjYXB0dXJlZCAxMC4g
SWYgc28sIEdDIHNob3VsZCBtYWtlIHRoZW0gY3Jhc2guCi0gICAgaWYgKHdpbmRvdy5HQ0NvbnRy
b2xsZXIpCi0gICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAgZWxzZSB7Ci0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICAgICAgICAgIG5ldyBPYmpl
Y3Q7Ci0gICAgfQotfQotCi1mdW5jdGlvbiB0ZXN0KCkgewotICAgIEluc3BlY3RvclRlc3Quc3Rh
cnREZWJ1Z2dlclRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKCJ0cnlDcmFzaCgpIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVE
ZWJ1Z2dlclRlc3QoKTsKLSAgICB9KTsKLX0KLQotd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7Ci08
L3NjcmlwdD4KLQotPHA+Ci1UZXN0cyBmb3IgYSBjcmFzaCBjYXVzZWQgYnkgaW5hY2N1cmF0ZSBB
Y3RpdmF0aW9uIHJlY29yZHMuCi0mbHQ7cmRhcjovL3Byb2JsZW0vODUyNTkwNyZndDsgQ3Jhc2gg
aW4gZGVidWdnZXIgYmVuZWF0aCBNYXJrU3RhY2s6OmRyYWluIEAgbWUuY29tLCBpYm0uY29tCi08
L3A+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dl
ci1hY3RpdmF0aW9uLWNyYXNoMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvZGVidWdnZXItYWN0aXZhdGlvbi1jcmFzaDItZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTUzMTY1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1hY3RpdmF0aW9uLWNyYXNoMi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyBmb3IgYSBjcmFzaCB3aGVu
IHBhdXNlZCBhdCBhIGJyZWFrcG9pbnQgY2F1c2VkIGJ5IGluYWNjdXJhdGUgQWN0aXZhdGlvbiBy
ZWNvcmRzLiBCdWcgNTcxMjAKLQotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1TY3JpcHQgc291cmNl
IHdhcyBzaG93bi4KLVNldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlvbi4KLVNjcmlwdCBleGVjdXRp
b24gcGF1c2VkLgotQ2FsbCBzdGFjazoKLSAgICAwKSAgKGRlYnVnZ2VyLWFjdGl2YXRpb24tY3Jh
c2gyLmh0bWwpCi0gICAgMSkgdGVzdEZ1bmN0aW9uIChkZWJ1Z2dlci1hY3RpdmF0aW9uLWNyYXNo
Mi5odG1sKQotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotRGVidWdnZXIgd2FzIGRpc2FibGVk
LgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXIt
YWN0aXZhdGlvbi1jcmFzaDIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1hY3RpdmF0aW9uLWNyYXNoMi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiMWE3MThhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9kZWJ1Z2dlci1hY3RpdmF0aW9uLWNyYXNoMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTQg
KzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLXZhciBjbG9zdXJl
cyA9IFtdOwotZnVuY3Rpb24gbWFrZUNsb3N1cmUoKSB7Ci0gICAgdmFyIHYxLCB2MiwgdjMsIHY0
LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMDsgLy8gTWFrZSBhIGxvdCBvZiBwb3RlbnRpYWxseSBj
YXB0dXJlZCB2YXJpYWJsZXMuCi0gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsgCi0gICAgICAgIHZh
ciB4ID0gdjE7IC8vIEJ1dCBvbmx5IGNhcHR1cmUgb25lIGluIG9wdGltaXppbmcgY29tcGlsZXMu
Ci0gICAgICAgIHJldHVybiB4OwotICAgIH07Ci19Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAw
OyArK2kpIHsKLSAgICBjbG9zdXJlcy5wdXNoKG1ha2VDbG9zdXJlKCkpOwotfQotCi1jbG9zdXJl
c1swXSgpOyAvLyBGb3JjZSBjb21waWxhdGlvbi4KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbigpIHsK
LSAgICBjbG9zdXJlc1swXSgpOyAvLyBGb3JjZSByZWNvbXBpbGF0aW9uLgotICAgIAotICAgIC8v
IEF0IHRoaXMgcG9pbnQsIGNsb3N1cmVzWzBdIGNhcHR1cmVkIDEgdmFyaWFibGUgYnV0IHRoaW5r
cyBpdCBjYXB0dXJlZCAxMC4KLSAgICAvLyBJZiBzbywgc3RvcHBpbmcgYXQgYSBicmVha3BvaW50
IHNob3VsZCBtYWtlIGl0IGNyYXNoLgotfQotCi1mdW5jdGlvbiB0ZXN0KCkgewotICAgIEluc3Bl
Y3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEo
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJkZWJ1Z2dl
ci1hY3RpdmF0aW9uLWNyYXNoMi5odG1sIiwgc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHN0ZXAyKHNvdXJjZUZyYW1lKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlNjcmlwdCBzb3VyY2Ugd2FzIHNob3duLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
dEJyZWFrcG9pbnQoc291cmNlRnJhbWUsIDgsICIiLCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoc3RlcDMpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHN0ZXAzKGNhbGxGcmFtZXMpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNhcHR1cmVTdGFja1RyYWNlKGNhbGxGcmFtZXMsIHRydWUpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7Ci0gICAgfQotfQotCi13aW5kb3cub25sb2Fk
ID0gcnVuVGVzdDsKLTwvc2NyaXB0PgotCi08cD4KLVRlc3RzIGZvciBhIGNyYXNoIHdoZW4gcGF1
c2VkIGF0IGEgYnJlYWtwb2ludCBjYXVzZWQgYnkgaW5hY2N1cmF0ZSBBY3RpdmF0aW9uIHJlY29y
ZHMuCi08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcx
MjAiPkJ1ZyA1NzEyMDwvYT4KLTwvcD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9kZWJ1Z2dlci1hdXRvY29udGludWUtb24tc3ludGF4LWVycm9yLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1hdXRvY29udGlu
dWUtb24tc3ludGF4LWVycm9yLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNWVkZjk1OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvZGVidWdnZXItYXV0b2NvbnRpbnVlLW9uLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OiBTeW50
YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKScKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA4OiBJ
ZnJhbWUgbG9hZGVkCi1UZXN0cyB0aGF0IGRlYnVnZ2VyIHdvbid0IHN0b3Agb24gc3ludGF4IGVy
cm9ycyBldmVuIGlmICJwYXVzZSBvbiB1bmNhdWdodCBleGNlcHRpb25zIiBpcyBvbi4KLQotRGVi
dWdnZXIgd2FzIGVuYWJsZWQuCi1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1hdXRvY29udGludWUtb24t
c3ludGF4LWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdn
ZXItYXV0b2NvbnRpbnVlLW9uLXN5bnRheC1lcnJvci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhZDgxOTZiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9kZWJ1Z2dlci1hdXRvY29udGludWUtb24tc3ludGF4LWVycm9yLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGxvYWRJZnJhbWUoKQotewotICAgIHZhciBp
ZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgICBpZnJhbWUuc3Jj
ID0gInJlc291cmNlcy9zeW50YXgtZXJyb3IuaHRtbCI7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChpZnJhbWUpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0
b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2Vy
VGVzdChzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBEZWJ1
Z2dlckFnZW50LnNldFBhdXNlT25FeGNlcHRpb25zKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVs
LlBhdXNlT25FeGNlcHRpb25zU3RhdGUuUGF1c2VPblVuY2F1Z2h0RXhjZXB0aW9ucyk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkSWZyYW1lKCkiKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVi
dWdnZXJUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGRlYnVnZ2VyIHdvbid0IHN0b3Agb24g
c3ludGF4IGVycm9ycyBldmVuIGlmICJwYXVzZSBvbiB1bmNhdWdodCBleGNlcHRpb25zIiBpcyBv
bi4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWJyZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQtb24tcmVs
b2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dl
ci1icmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViYjA2ZTQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWJyZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQt
b24tcmVsb2FkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotVGVz
dHMgdGhhdCBicmVha3BvaW50cyBhcmUgbm90IGFjdGl2YXRlZCBvbiBwYWdlIHJlbG9hZC5CdWcg
NDE0NjEKLQotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1NYWluIHJlc291cmNlIHdhcyBzaG93bi4K
LVBhZ2UgcmVsb2FkZWQuCi1NYWluIHJlc291cmNlIHdhcyBzaG93bi4KLUJyZWFrcG9pbnRzIGFy
ZSBkZWFjdGl2YXRlZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWJyZWFrcG9pbnRzLW5vdC1hY3Rp
dmF0ZWQtb24tcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVi
dWdnZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRlZC1vbi1yZWxvYWQuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYmFlYTU3YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRlZC1vbi1y
ZWxvYWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdEZ1bmN0
aW9uKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0g
ICAgdmFyIHRlc3ROYW1lID0gV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkw7Ci0gICAgdGVz
dE5hbWUgPSB0ZXN0TmFtZS5zdWJzdHJpbmcodGVzdE5hbWUubGFzdEluZGV4T2YoJy8nKSArIDEp
OwotCi0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGVwMSk7Ci0KLSAgICBm
dW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRT
b3VyY2UodGVzdE5hbWUsIHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMihzb3Vy
Y2VGcmFtZSkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJNYWluIHJl
c291cmNlIHdhcyBzaG93bi4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50
KHNvdXJjZUZyYW1lLCA4LCAiIiwgdHJ1ZSk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMu
c2NyaXB0cy5fdG9nZ2xlQnJlYWtwb2ludHNCdXR0b24uZWxlbWVudC5jbGljaygpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJNYWluIHJl
c291cmNlIHdhcyBzaG93bi4iKTsKLSAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5icmVha3BvaW50c0FjdGl2ZSgpKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIkJyZWFrcG9pbnRzIGFyZSBkZWFjdGl2YXRlZC4iKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVycm9yOiBicmVha3BvaW50cyBhcmUg
YWN0aXZhdGVkLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0
KCk7Ci0gICAgfQotfTsKLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBicmVha3BvaW50cyBhcmUgbm90IGFjdGl2YXRlZCBv
biBwYWdlIHJlbG9hZC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDE0NjEiPkJ1ZyA0MTQ2MTwvYT4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jb21waWxlLWFu
ZC1ydW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVn
Z2VyLWNvbXBpbGUtYW5kLXJ1bi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGJjMTliNWMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2RlYnVnZ2VyLWNvbXBpbGUtYW5kLXJ1bi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyMCArMCwwIEBACi1UZXN0cyBzZXBhcmF0ZSBjb21waWxhdGlvbiBhbmQgcnVuLgotCi1C
dWcgODk2NDYuCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLQotUnVubmluZzogdGVzdFN1Y2Nlc3Nm
dWxDb21waWxlQW5kUnVuCi1Db21waWxpbmcgc2NyaXB0Ci1SdW5uaW5nIHNjcmlwdAotU2NyaXB0
IHJlc3VsdDogMwotCi1SdW5uaW5nOiB0ZXN0UnVuRXJyb3IKLUNvbXBpbGluZyBzY3JpcHQKLVJ1
bm5pbmcgc2NyaXB0Ci1TY3JpcHQgcnVuIGVycm9yOiBVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjog
YyBpcyBub3QgZGVmaW5lZAotCi1SdW5uaW5nOiB0ZXN0Q29tcGlsZUVycm9yCi1Db21waWxpbmcg
c2NyaXB0Ci1TY3JpcHQgY29tcGlsZSBlcnJvcjogVW5jYXVnaHQgU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gfQotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY29tcGlsZS1hbmQtcnVuLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY29tcGlsZS1hbmQtcnVu
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3MmY3ZGIuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNvbXBpbGUtYW5kLXJ1
bi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17
Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0
aW9uIHRlc3RTdWNjZXNzZnVsQ29tcGlsZUFuZFJ1bihuZXh0KQotICAgICAgICB7Ci0gICAgICAg
ICAgICB2YXIgZXhwcmVzc2lvbiA9ICJ2YXIgYSA9IDE7IHZhciBiID0gMjsgYSArIGI7ICI7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ29tcGlsaW5nIHNjcmlwdCIpOwot
ICAgICAgICAgICAgRGVidWdnZXJBZ2VudC5jb21waWxlU2NyaXB0KGV4cHJlc3Npb24sICJ0ZXN0
LmpzIiwgY29tcGlsZUNhbGxiYWNrLmJpbmQodGhpcykpOwotCi0gICAgICAgICAgICBmdW5jdGlv
biBjb21waWxlQ2FsbGJhY2soZXJyb3IsIHNjcmlwdElkLCBzeW50YXhFcnJvck1lc3NhZ2UpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFl
cnJvcik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFzeW50YXhF
cnJvck1lc3NhZ2UpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSgh
IXNjcmlwdElkKTsKLSAgICAgICAgICAgICAgICB2YXIgY29udGV4dElkID0gdW5kZWZpbmVkOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSdW5uaW5nIHNjcmlwdCIp
OwotICAgICAgICAgICAgICAgIERlYnVnZ2VyQWdlbnQucnVuU2NyaXB0KHNjcmlwdElkLCBjb250
ZXh0SWQsICJjb25zb2xlIiwgZmFsc2UsIHJ1bkNhbGxiYWNrLmJpbmQodGhpcykpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBydW5DYWxsYmFjayhlcnJvciwgcmVzdWx0
LCB3YXNUaHJvd24pCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnRUcnVlKCFlcnJvcik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRUcnVlKCF3YXNUaHJvd24pOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJTY3JpcHQgcmVzdWx0OiAiICsgcmVzdWx0LnZhbHVlKTsKLSAgICAgICAgICAgICAgICBu
ZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVz
dFJ1bkVycm9yKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBleHByZXNzaW9uID0g
InZhciBhID0gMTsgYSArIGM7ICI7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiQ29tcGlsaW5nIHNjcmlwdCIpOwotICAgICAgICAgICAgRGVidWdnZXJBZ2VudC5jb21waWxl
U2NyaXB0KGV4cHJlc3Npb24sICJ0ZXN0LmpzIiwgY29tcGlsZUNhbGxiYWNrLmJpbmQodGhpcykp
OwotCi0gICAgICAgICAgICBmdW5jdGlvbiBjb21waWxlQ2FsbGJhY2soZXJyb3IsIHNjcmlwdElk
LCBzeW50YXhFcnJvck1lc3NhZ2UpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFlcnJvcik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnRUcnVlKCFzeW50YXhFcnJvck1lc3NhZ2UpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghIXNjcmlwdElkKTsKLSAgICAgICAgICAgICAgICB2YXIg
Y29udGV4dElkID0gdW5kZWZpbmVkOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJSdW5uaW5nIHNjcmlwdCIpOwotICAgICAgICAgICAgICAgIERlYnVnZ2VyQWdlbnQu
cnVuU2NyaXB0KHNjcmlwdElkLCBjb250ZXh0SWQsICJjb25zb2xlIiwgZmFsc2UsIHJ1bkNhbGxi
YWNrLmJpbmQodGhpcykpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBy
dW5DYWxsYmFjayhlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFlcnJvcik7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKHdhc1Rocm93bik7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBydW4gZXJyb3I6ICIgKyByZXN1bHQu
ZGVzY3JpcHRpb24pOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0Q29tcGlsZUVycm9yKG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHZhciBleHByZXNzaW9uID0gIn0iOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNvbXBpbGluZyBzY3JpcHQiKTsKLSAgICAgICAgICAgIERl
YnVnZ2VyQWdlbnQuY29tcGlsZVNjcmlwdChleHByZXNzaW9uLCAidGVzdC5qcyIsIGNvbXBpbGVD
YWxsYmFjay5iaW5kKHRoaXMpKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gY29tcGlsZUNhbGxi
YWNrKGVycm9yLCBzY3JpcHRJZCwgc3ludGF4RXJyb3JNZXNzYWdlKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghZXJyb3IpOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghc2NyaXB0SWQpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTY3JpcHQgY29tcGlsZSBlcnJvcjogIiAr
IHN5bnRheEVycm9yTWVzc2FnZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHNlcGFyYXRlIGNvbXBpbGF0aW9uIGFuZCBydW4u
PC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NjQ2Ij5CdWcgODk2NDYuPC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNvbXBsZXRpb25zLW9uLWNhbGwtZnJh
bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2Vy
LWNvbXBsZXRpb25zLW9uLWNhbGwtZnJhbWUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkM2NjZDBiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9kZWJ1Z2dlci1jb21wbGV0aW9ucy1vbi1jYWxsLWZyYW1lLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLVRlc3QgdGhhdCBjb21wbGV0aW9ucyBp
biB0aGUgY29udGV4dCBvZiB0aGUgY2FsbCBmcmFtZSB3aWxsIHJlc3VsdCBpbiBuYW1lcyBvZiBp
dHMgc2NvcGUgdmFyaWFibGVzLgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLVNldCB0aW1lciBm
b3IgdGVzdCBmdW5jdGlvbi4KLVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotdmFyMQotdmFyMgot
ZGlyCi1kaXJ4bWwKLXdpbmRvdwotdGhpcwotdG9FeHBvbmVudGlhbAotU2NyaXB0IGV4ZWN1dGlv
biByZXN1bWVkLgotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY29tcGxldGlvbnMtb24tY2FsbC1mcmFt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNvbXBsZXRp
b25zLW9uLWNhbGwtZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY3
Mjg2Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdn
ZXItY29tcGxldGlvbnMtb24tY2FsbC1mcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODcg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotCi12YXIgYSA9IDE7Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKQotewotICAgIHZhciB2YXIx
ID0gMjsKLSAgICB2YXIgdmFyMiA9IDM7Ci0gICAgZGVidWdnZXI7Ci19Ci0KLXZhciB0ZXN0ID0g
ZnVuY3Rpb24oKQotewotICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEp
OwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5y
dW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoc3RlcDIpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5ydW50aW1lTW9kZWwu
X2NvbXBsZXRpb25zRm9yRXhwcmVzc2lvbigiIiwgInZhciIsIGZhbHNlLCBjaGVja0FnYWluc3RH
b2xkZW4uYmluZCh0aGlzLCBbICJ2YXIxIiwgInZhcjIiIF0sIFtdLCBzdGVwMykpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5ydW50
aW1lTW9kZWwuX2NvbXBsZXRpb25zRm9yRXhwcmVzc2lvbigiIiwgImRpIiwgZmFsc2UsIGNoZWNr
QWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsgImRpciIsICJkaXJ4bWwiIF0sIFtdLCBzdGVwNCkp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5ydW50aW1lTW9kZWwuX2NvbXBsZXRpb25zRm9yRXhwcmVzc2lvbigiIiwgIndpbiIsIGZh
bHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ3aW5kb3ciIF0sIFtdLCBzdGVw
NSkpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIFdlYklu
c3BlY3Rvci5ydW50aW1lTW9kZWwuX2NvbXBsZXRpb25zRm9yRXhwcmVzc2lvbigiIiwgInQiLCBm
YWxzZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgWyAidGhpcyIgXSwgW10sIHN0ZXA2
KSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDYoKQotICAgIHsKLSAgICAgICAgV2ViSW5z
cGVjdG9yLnJ1bnRpbWVNb2RlbC5fY29tcGxldGlvbnNGb3JFeHByZXNzaW9uKCJ2YXIxIiwgInRv
RXhwIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsgInRvRXhwb25lbnRp
YWwiIF0sIFtdLCBzdGVwNykpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA3KCkKLSAgICB7
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5ydW50aW1lTW9kZWwuX2NvbXBsZXRpb25zRm9yRXhwcmVz
c2lvbigiMTIzIiwgInRvRXhwIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMs
IFtdLCBbICJ0b0V4cG9uZW50aWFsIiBdLCBzdGVwOCkpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHN0ZXA4KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRl
c3QoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjaGVja0FnYWluc3RHb2xkZW4oZ29sZGVuLCBh
bnRpR29sZGVuLCBjb250aW51YXRpb24sIGNvbXBsZXRpb25zKQotICAgIHsKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBnb2xkZW4ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChj
b21wbGV0aW9ucy5pbmRleE9mKGdvbGRlbltpXSkgIT09IC0xKQotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KGdvbGRlbltpXSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5PVCBGT1VORDogIiArIGdvbGRl
bltpXSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFudGlHb2xk
ZW4ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChjb21wbGV0aW9ucy5pbmRleE9mKGFu
dGlHb2xkZW5baV0pICE9PSAtMSkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiRk9VTkQ6ICIgKyBhbnRpR29sZGVuW2ldKTsKLSAgICAgICAgfQotCi0gICAgICAgIGNv
bnRpbnVhdGlvbigpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdCB0aGF0IGNvbXBsZXRpb25zIGluIHRoZSBjb250
ZXh0IG9mIHRoZSBjYWxsIGZyYW1lIHdpbGwgcmVzdWx0IGluIG5hbWVzCi1vZiBpdHMgc2NvcGUg
dmFyaWFibGVzLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY3ljbGljLXJlZi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY3ljbGljLXJlZi1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczNTRlMWEuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWN5Y2xpYy1yZWYt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1UZXN0cyB0aGF0IGRl
YnVnZ2luZyBhIHBhZ2Ugd2hlcmUgT2JqZWN0IHByb3RvdHlwZSBoYXMgYSBjeWNsaWMgcmVmZXJl
bmNlIHdvbid0IGNyYXNoIHRoZSBicm93c2VyLkJ1ZyA0MzU1OAotCi1EZWJ1Z2dlciB3YXMgZW5h
YmxlZC4KLVNldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlvbi4KLVNjcmlwdCBleGVjdXRpb24gcGF1
c2VkLgotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotRGVidWdnZXIgd2FzIGRpc2FibGVkLgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY3lj
bGljLXJlZi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWN5
Y2xpYy1yZWYuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmRjNmQzOC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY3ljbGlj
LXJlZi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1PYmplY3QucHJvdG90eXBlLmN5
Y2xpY1JlZiA9IE9iamVjdC5wcm90b3R5cGU7Ci0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbigpCi17
Ci0gICAgdmFyIG8gPSBuZXcgT2JqZWN0KCk7Ci0gICAgZGVidWdnZXI7Ci19Ci0KLXZhciB0ZXN0
ID0gZnVuY3Rpb24oKQotewotICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3Rl
cDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoc3RlcDIpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVE
ZWJ1Z2dlclRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgZGVidWdnaW5nIGEgcGFnZSB3aGVy
ZSBPYmplY3QgcHJvdG90eXBlIGhhcyBhIGN5Y2xpYyByZWZlcmVuY2Ugd29uJ3QKLWNyYXNoIHRo
ZSBicm93c2VyLjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MzU1OCI+QnVnIDQzNTU4PC9hPgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXZhbC1vbi1jYWxs
LWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1
Z2dlci1ldmFsLW9uLWNhbGwtZnJhbWUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzZTEzODhjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9kZWJ1Z2dlci1ldmFsLW9uLWNhbGwtZnJhbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsOSArMCwwIEBACi1UZXN0IHRoYXQgZXZhbHVhdGlvbiBpbiB0aGUgY29udGV4
dCBvZiB0b3AgZnJhbWUgd2lsbCBzZWUgdmFsdWVzIG9mIGl0cyBsb2NhbCB2YXJpYWJsZXMsIGV2
ZW4gaWYgdGhlcmUgYXJlIGdsb2JhbCB2YXJpYWJsZXMgd2l0aCBzYW1lIG5hbWVzLiBPbiBzdWNj
ZXNzIHRoZSB0ZXN0IHdpbGwgcHJpbnQgYSA9IDIodmFsdWUgb2YgdGhlIGxvY2FsIHZhcmlhYmxl
IGEpLiBCdWcgNDczNTguCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotU2V0IHRpbWVyIGZvciB0
ZXN0IGZ1bmN0aW9uLgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1FdmFsdWF0ZWQgaW4gY29u
c29sZSBpbiB0aGUgdG9wIGZyYW1lIGNvbnRleHQ6IGEgPSAyCi1TY3JpcHQgZXhlY3V0aW9uIHJl
c3VtZWQuCi1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1ldmFsLW9uLWNhbGwtZnJhbWUuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1ldmFsLW9uLWNhbGwtZnJhbWUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTkyODhkZS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXZhbC1vbi1jYWxsLWZy
YW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXZhciBhID0gMTsKLWZ1bmN0aW9u
IHRlc3RGdW5jdGlvbigpCi17Ci0gICAgdmFyIGEgPSAyOwotICAgIGRlYnVnZ2VyOwotfQotCi12
YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJU
ZXN0KHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1c2VkKHN0ZXAyKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5Db25zb2xlKCJhIiwgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAz
KHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFdmFsdWF0
ZWQgaW4gY29uc29sZSBpbiB0aGUgdG9wIGZyYW1lIGNvbnRleHQ6IGEgPSAiICsgcmVzdWx0KTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgot
VGVzdCB0aGF0IGV2YWx1YXRpb24gaW4gdGhlIGNvbnRleHQgb2YgdG9wIGZyYW1lIHdpbGwgc2Vl
IHZhbHVlcwotb2YgaXRzIGxvY2FsIHZhcmlhYmxlcywgZXZlbiBpZiB0aGVyZSBhcmUgZ2xvYmFs
IHZhcmlhYmxlcyB3aXRoCi1zYW1lIG5hbWVzLiBPbiBzdWNjZXNzIHRoZSB0ZXN0IHdpbGwgcHJp
bnQgYSA9IDIodmFsdWUgb2YgdGhlCi1sb2NhbCB2YXJpYWJsZSBhKS4gPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MzU4Ij5CdWcgNDczNTguPC9hPgot
PC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZGVidWdnZXItZXZhbC13aGlsZS1wYXVzZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWV2YWwtd2hpbGUtcGF1c2VkLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGY0ZGQzMC4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXZhbC13aGls
ZS1wYXVzZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGVz
dHMgdGhhdCBldmFsdWF0aW9uIGluIGNvbnNvbGUgd29ya3MgZmluZSB3aGVuIHNjcmlwdCBpcyBw
YXVzZWQuIEl0IGFsc28gY2hlY2tzIHRoYXQgc3RhY2sgYW5kIGdsb2JhbCB2YXJpYWJsZXMgYXJl
IGFjY2Vzc2libGUgZnJvbSB0aGUgY29uc29sZS4KLQotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1T
ZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUV2
YWx1YXRlZCBzY3JpcHQgb24gdGhlIHRvcCBmcmFtZTogNDAyMQotRXZhbHVhdGVkIHNjcmlwdCBv
biB0aGUgY2FsbGluZyBmcmFtZTogMzAxCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1EZWJ1
Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9kZWJ1Z2dlci1ldmFsLXdoaWxlLXBhdXNlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWV2YWwtd2hpbGUtcGF1c2VkLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwNjAyYzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWV2YWwtd2hpbGUtcGF1c2VkLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXZhciBnbG9iYWxWYXIgPSB7IGI6IDEgfTsKLQotZnVuY3Rp
b24gc2xhdmUoeCkKLXsKLSAgICB2YXIgeSA9IDIwOwotICAgIGRlYnVnZ2VyOwotfQotCi1mdW5j
dGlvbiB0ZXN0RnVuY3Rpb24oKQotewotICAgIHZhciBsb2NhbE9iamVjdCA9IHsgYTogMzAwIH07
Ci0gICAgc2xhdmUoNDAwMCk7Ci19Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIElu
c3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3Rl
cDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0
VW50aWxQYXVzZWQoc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKGNhbGxGcmFt
ZXMpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJ4ICsg
eSArIGdsb2JhbFZhci5iIiwgc3RlcDMuYmluZChudWxsLCBjYWxsRnJhbWVzKSk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDMoY2FsbEZyYW1lcywgcmVzdWx0KQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV2YWx1YXRlZCBzY3JpcHQgb24gdGhlIHRvcCBmcmFt
ZTogIiArIHJlc3VsdCk7Ci0gICAgICAgIHZhciBwYW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5z
Y3JpcHRzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2s7Ci0gICAgICAgIHBhbmUuX3BsYWNhcmRTZWxl
Y3RlZChwYW5lLnBsYWNhcmRzWzFdKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBl
bmRpbmdEaXNwYXRjaGVzKHN0ZXA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNCgpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJsb2NhbE9iamVj
dC5hICsgZ2xvYmFsVmFyLmIiLCBzdGVwNSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDUo
cmVzdWx0KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV2YWx1YXRl
ZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJhbWU6ICIgKyByZXN1bHQpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGV2
YWx1YXRpb24gaW4gY29uc29sZSB3b3JrcyBmaW5lIHdoZW4gc2NyaXB0IGlzIHBhdXNlZC4gSXQg
YWxzbyBjaGVja3MgdGhhdAotc3RhY2sgYW5kIGdsb2JhbCB2YXJpYWJsZXMgYXJlIGFjY2Vzc2li
bGUgZnJvbSB0aGUgY29uc29sZS4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWV4cGFuZC1zY29wZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXhw
YW5kLXNjb3BlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTlk
NTkwNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdn
ZXItZXhwYW5kLXNjb3BlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAg
QEAKLQotVGVzdCB0aGF0IHNlY3Rpb25zIHJlcHJlc2VudGluZyBzY29wZXMgb2YgdGhlIGN1cnJl
bnQgY2FsbCBmcmFtZSBhcmUgZXhwYW5kYWJsZSBhbmQgY29udGFpbiBjb3JyZWN0IGRhdGEuCi0K
LURlYnVnZ2VyIHdhcyBlbmFibGVkLgotRXZhbHVhdGVkIHNjcmlwdCBpbiBjb25zb2xlLgotU2Ny
aXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi0KLUR1bXAgc2NvcGUgc2VjdGlvbnM6Ci1XaW5kb3dXaXRo
IEJsb2NrCi0gICAgZTogRXJyb3IKLUxvY2FsCi0gICAgYXJndW1lbnRzOiBBcmd1bWVudHNbMV0K
LSAgICBpbm5lckZ1bmN0aW9uTG9jYWxWYXI6IDIwMTIKLSAgICB0aGlzOiBXaW5kb3cKLSAgICB4
OiAyMDEwCi1XaW5kb3dXaXRoIEJsb2NrCi0gICAgaW5uZXJGdW5jdGlvbjogZnVuY3Rpb24gaW5u
ZXJGdW5jdGlvbih4KSB7Ci1DbG9zdXJlCi0gICAgbWFrZUNsb3N1cmVMb2NhbFZhcjogImxvY2Fs
LlRleHRQYXJhbSIKLSAgICBuOiAiVGV4dFBhcmFtIgotV2luZG93R2xvYmFsCi0gICAgPHNlY3Rp
b24gY29sbGFwc2VkPgotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotRGVidWdnZXIgd2FzIGRp
c2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVi
dWdnZXItZXhwYW5kLXNjb3BlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
ZGVidWdnZXItZXhwYW5kLXNjb3BlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGNlOTBkNzQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Rl
YnVnZ2VyLWV4cGFuZC1zY29wZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5j
dGlvbiBtYWtlQ2xvc3VyZShuKSB7Ci0gIHZhciBtYWtlQ2xvc3VyZUxvY2FsVmFyID0gJ2xvY2Fs
LicgKyBuOwotICByZXR1cm4gZnVuY3Rpb24gaW5uZXJGdW5jdGlvbih4KSB7Ci0gICAgdmFyIGlu
bmVyRnVuY3Rpb25Mb2NhbFZhciA9IGFyZ3VtZW50c1swXSArIDI7Ci0gICAgdHJ5IHsKLSAgICAg
IHRocm93IG5ldyBFcnJvcigiQW4gZXhjZXB0aW9uIik7Ci0gICAgfSBjYXRjaCAoZSkgewotICAg
ICAgZS50b1N0cmluZygpOwotICAgICAgZGVidWdnZXI7Ci0gICAgfQotICAgIHJldHVybiBuICsg
bWFrZUNsb3N1cmVMb2NhbFZhciArIGFyZ3VtZW50c1swXSArIGlubmVyRnVuY3Rpb25Mb2NhbFZh
cjsKLSAgfQotfQotCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKSB7Ci0gIHZhciBmID0gbWFrZUNs
b3N1cmUoJ1RleHRQYXJhbScpOwotICBmKDIwMTApOwotfQotCi0KLWZ1bmN0aW9uIHRlc3QoKQot
ewotICAgIHZhciBzY3JpcHRUb0V2YWx1YXRlID0gInNldFRpbWVvdXQodGVzdEZ1bmN0aW9uLCAw
KSI7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLQotICAg
IGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
bkNvbnNvbGUoc2NyaXB0VG9FdmFsdWF0ZSwgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQuYmluZChJ
bnNwZWN0b3JUZXN0LCAiRXZhbHVhdGVkIHNjcmlwdCBpbiBjb25zb2xlLiIpKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQoc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIC8vIEV4cGFuZCBhbGwgYnV0IGdsb2JhbCBzY29w
ZXMuIEV4cGFuZGluZyBnbG9iYWwgc2NvcGUgdGFrZXMgZm9yIHRvbyBsb25nCi0gICAgICAgIC8v
IHNvIHdlIGtlZXAgaXQgY29sbGFwc2VkLgotICAgICAgICB2YXIgc2VjdGlvbnMgPSBXZWJJbnNw
ZWN0b3IuaW5zcGVjdG9yVmlldy5jdXJyZW50UGFuZWwoKS5zaWRlYmFyUGFuZXMuc2NvcGVjaGFp
bi5fc2VjdGlvbnM7Ci0gICAgICAgIC8vIGdsb2JhbCBzY29wZSBpcyBhbHdheXMgdGhlIGxhc3Qg
b25lLgotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlY3Rpb25zLmxlbmd0aCAtIDE7IGkr
KykKLSAgICAgICAgICAgIHNlY3Rpb25zW2ldLmV4cGFuZCgpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgCi0gICAgICAgIHZhciBzZWN0aW9ucyA9IFdlYkluc3Bl
Y3Rvci5pbnNwZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgpLnNpZGViYXJQYW5lcy5zY29wZWNoYWlu
Ll9zZWN0aW9uczsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcCBzY29wZSBzZWN0aW9uczoiKTsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWN0aW9ucy5sZW5ndGg7IGkrKykgewotICAgICAgICAg
ICAgdmFyIHNlY3Rpb24gPSBzZWN0aW9uc1tpXTsKLSAgICAgICAgICAgIHZhciBwcm9wZXJ0aWVz
ID0gc2VjdGlvbi5wcm9wZXJ0aWVzRm9yVGVzdDsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KEluc3BlY3RvclRlc3QudGV4dENvbnRlbnRXaXRoTGluZUJyZWFrcyhzZWN0aW9u
LmVsZW1lbnQpKTsKLSAgICAgICAgICAgIGlmICghc2VjdGlvbi5leHBhbmRlZCkKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIDxzZWN0aW9uIGNvbGxhcHNlZD4i
KTsKLSAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0
KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPGlucHV0IHR5cGU9J2J1dHRvbicgb25jbGljaz0ndGVzdEZ1bmN0aW9uKCknIHZh
bHVlPSdUZXN0Jy8+Ci08cD4KLVRlc3QgdGhhdCBzZWN0aW9ucyByZXByZXNlbnRpbmcgc2NvcGVz
IG9mIHRoZSBjdXJyZW50IGNhbGwgZnJhbWUgYXJlIGV4cGFuZGFibGUKLWFuZCBjb250YWluIGNv
cnJlY3QgZGF0YS4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1uby1uZXN0ZWQtcGF1c2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLW5vLW5lc3RlZC1w
YXVzZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzYjQ4Zjcu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLW5v
LW5lc3RlZC1wYXVzZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBA
Ci1UZXN0cyB0aGF0IGRlYnVnZ2VyIHdpbGwgc2tpcCBicmVha3BvaW50IGhpdCB3aGVuIHNjcmlw
dCBleGVjdXRpb24gaXMgYWxyZWFkeSBwYXVzZWQuIFNlZSBidWcKLQotRGVidWdnZXIgd2FzIGVu
YWJsZWQuCi1TZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCi1TY3JpcHQgZXhlY3V0aW9uIHBh
dXNlZC4KLVNldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlvbi4KLXRlc3RGdW5jdGlvbi5pbnZvY2F0
aW9uQ291bnQgPSAyCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1EZWJ1Z2dlciB3YXMgZGlz
YWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1
Z2dlci1uby1uZXN0ZWQtcGF1c2UuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9kZWJ1Z2dlci1uby1uZXN0ZWQtcGF1c2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMTVlY2UyNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvZGVidWdnZXItbm8tbmVzdGVkLXBhdXNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbigpCi17Ci0gICAgdGVzdEZ1bmN0aW9uLmludm9jYXRp
b25Db3VudCsrOwotICAgIGRlYnVnZ2VyOwotfQotCi10ZXN0RnVuY3Rpb24uaW52b2NhdGlvbkNv
dW50ID0gMDsKLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5z
dGFydERlYnVnZ2VyVGVzdChzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZChz
dGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgidGVzdEZ1bmN0aW9uKCk7IHRlc3RGdW5jdGlv
bi5pbnZvY2F0aW9uQ291bnQiLCBzdGVwMyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uIik7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RlcDMocmVzdWx0KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
InRlc3RGdW5jdGlvbi5pbnZvY2F0aW9uQ291bnQgPSAiICsgcmVzdWx0KTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBk
ZWJ1Z2dlciB3aWxsIHNraXAgYnJlYWtwb2ludCBoaXQgd2hlbiBzY3JpcHQgZXhlY3V0aW9uIGlz
IGFscmVhZHkgcGF1c2VkLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDE3NjgiPlNlZSBidWc8L2E+Ci08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1p
bi1ldmFsLXNjcmlwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvZGVidWdnZXItcGF1c2UtaW4tZXZhbC1zY3JpcHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3MzZhNWE4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1pbi1ldmFsLXNjcmlwdC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UZXN0cyB0aGF0IGRlYnVnZ2VyIHdp
bGwgc3RvcCBvbiAiZGVidWdnZXIiIHN0YXRlbWVudCBpbiBhIGZ1bmN0aW9uIHRoYXQgd2FzIGFk
ZGVkIHRvIHRoZSBpbnNwZWN0ZWQgcGFnZSB2aWEgZXZhbHVhdGlvbiBpbiBXZWIgSW5zcGVjdG9y
IGNvbnNvbGUuQnVnIDQxMDU4Ci0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotRXZhbHVhdGVkIHNj
cmlwdCBpbiBjb25zb2xlLgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0YWNrOgot
ICAgIDApIHRlc3RGdW5jdGlvbiAoOjIpCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1EZWJ1
Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1pbi1ldmFsLXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLWluLWV2YWwtc2NyaXB0Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1YmRmY2IuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLWluLWV2YWwtc2NyaXB0Lmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17
Ci0gICAgdmFyIHNjcmlwdFRvRXZhbHVhdGUgPSAiZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkge1xu
IiArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIGRlYnVnZ2VyO1xuIiArCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAifVxuIiArCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAic2V0VGltZW91dCh0ZXN0RnVuY3Rpb24sIDApO1xuIjsKLQotICAgIEluc3BlY3RvclRlc3Qu
c3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZShzY3JpcHRUb0V2YWx1YXRl
LCBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdC5iaW5kKEluc3BlY3RvclRlc3QsICJFdmFsdWF0ZWQg
c2NyaXB0IGluIGNvbnNvbGUuIikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBh
dXNlZChzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoY2FsbEZyYW1lcykKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKLSAgICB9Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4K
LVRlc3RzIHRoYXQgZGVidWdnZXIgd2lsbCBzdG9wIG9uICJkZWJ1Z2dlciIgc3RhdGVtZW50IGlu
IGEgZnVuY3Rpb24gdGhhdCB3YXMgYWRkZWQKLXRvIHRoZSBpbnNwZWN0ZWQgcGFnZSB2aWEgZXZh
bHVhdGlvbiBpbiBXZWIgSW5zcGVjdG9yIGNvbnNvbGUuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMDU4Ij5CdWcgNDEwNTg8L2E+Ci08L3A+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9kZWJ1Z2dlci1wYXVzZS1pbi1pbnRlcm5hbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2UtaW4taW50ZXJuYWwtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjRhYjkwLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1pbi1pbnRlcm5hbC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMjogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyknCi1UZXN0cyB0aGF0
IHBhdXNlIG9uIGV4Y2VwdGlvbiBpbiBpbnRlcm5hbCBzY3JpcHQgZG9lcyBub3QgY3Jhc2guCi0K
LURlYnVnZ2VyIHdhcyBlbmFibGVkLgotU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uCi1TY3JpcHQg
ZXhlY3V0aW9uIHBhdXNlZC4KLUNhbGwgc3RhY2s6Ci0gICAgMCkgdGhyb3dFeGNlcHRpb24gKGRl
YnVnZ2VyLXBhdXNlLWluLWludGVybmFsLmh0bWw6OSkKLSAgICAxKSBoYW5kbGVDbGljayAoZGVi
dWdnZXItcGF1c2UtaW4taW50ZXJuYWwuaHRtbDoxNCkKLVNjcmlwdCBleGVjdXRpb24gcmVzdW1l
ZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLWluLWludGVybmFsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2UtaW4taW50ZXJuYWwuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzE0MTdkYi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2UtaW4taW50ZXJuYWwuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGhyb3dFeGNlcHRpb24oKQot
ewotICAgIG5ldyBGdW5jdGlvbigicmV0dXJuICgpIik7Ci19Ci0KLWZ1bmN0aW9uIGhhbmRsZUNs
aWNrKCkKLXsKLSAgICB0aHJvd0V4Y2VwdGlvbigpOwotfQotCi12YXIgdGVzdCA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLQotICAg
IGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIERlYnVnZ2VyQWdlbnQuc2V0UGF1c2VP
bkV4Y2VwdGlvbnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuUGF1c2VPbkV4Y2VwdGlvbnNT
dGF0ZS5QYXVzZU9uVW5jYXVnaHRFeGNlcHRpb25zKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5z
aG93U2NyaXB0U291cmNlKCJkZWJ1Z2dlci1wYXVzZS1pbi1pbnRlcm5hbC5odG1sIiwgc3RlcDIp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkgIAotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBzb3VyY2Ugd2FzIHNob3duLiIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KGhhbmRsZUNsaWNrLCAwKSIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZChzdGVwMyk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDMoY2FsbEZyYW1lcykKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgcGF1c2Ugb24g
ZXhjZXB0aW9uIGluIGludGVybmFsIHNjcmlwdCBkb2VzIG5vdCBjcmFzaC4KLTwvcD4KLQotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2RlYnVnZ2VyLXBhdXNlLW9uLWJsb2NrZWQtZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2Utb24tYmxvY2tlZC1l
dmVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzliNjRiMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVi
dWdnZXItcGF1c2Utb24tYmxvY2tlZC1ldmVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDEyICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzogUmVmdXNl
ZCB0byBleGVjdXRlIGlubGluZSBldmVudCBoYW5kbGVyIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhl
IGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtc3Jj
ICdzZWxmJyIuCi0KLVRlc3RzIHRoYXQgcGF1c2Ugb24gZXhjZXB0aW9uIHdvcmtzIGZvciBpbmxp
bmUgZXZlbnQgaGFuZGxlcnMgYmxvY2tlZCBieSBDU1AuCi0KLUJ1dHRvbgotRGVidWdnZXIgd2Fz
IGVuYWJsZWQuCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUNhbGwgc3RhY2s6Ci0gICAgMCkg
dGVzdEFjdGlvbiAocGF1c2Utb24tYmxvY2tlZC1ldmVudC1oYW5kbGVyLmpzOjQpCi1TY3JpcHQg
ZXhlY3V0aW9uIHJlc3VtZWQuCi1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1ibG9ja2Vk
LWV2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1
Z2dlci1wYXVzZS1vbi1ibG9ja2VkLWV2ZW50LWhhbmRsZXIuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMGEyMTNlNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2Utb24tYmxvY2tlZC1ldmVudC1oYW5kbGVyLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiIGNvbnRlbnQ9InNjcmlwdC1zcmMgJ3Nl
bGYnOyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
YXVzZS1vbi1ibG9ja2VkLWV2ZW50LWhhbmRsZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wYXVzZS1vbi1ibG9ja2VkLWJ5LWNzcC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxwPgotVGVzdHMgdGhhdCBwYXVzZSBvbiBleGNlcHRpb24gd29ya3MgZm9yIGlu
bGluZSBldmVudCBoYW5kbGVycyBibG9ja2VkIGJ5IENTUC4KLTwvcD4KLTxidXR0b24gaWQ9InRl
c3QiIG9uY2xpY2s9ImFsZXJ0KCdGQUlMIScpOyI+QnV0dG9uPC9idXR0b24+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdn
ZXItcGF1c2Utb24tYmxvY2tlZC1zY3JpcHQtaW5qZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1ibG9ja2VkLXNjcmlw
dC1pbmplY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
OWVmMzgxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1
Z2dlci1wYXVzZS1vbi1ibG9ja2VkLXNjcmlwdC1pbmplY3Rpb24tZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGV4
ZWN1dGUgaW5saW5lIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29u
dGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LXNyYyAnc2VsZiciLgotCi1U
ZXN0cyB0aGF0IHBhdXNlIG9uIGV4Y2VwdGlvbiB3b3JrcyBmb3IgaW5saW5lIHNjcmlwdHMgYmxv
Y2tlZCBieSBDU1AuCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotU2NyaXB0IGV4ZWN1dGlvbiBw
YXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIHRlc3RBY3Rpb24gKHBhdXNlLW9uLWJsb2NrZWQt
c2NyaXB0LWluamVjdGlvbi5qczo1KQotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotRGVidWdn
ZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvZGVidWdnZXItcGF1c2Utb24tYmxvY2tlZC1zY3JpcHQtaW5qZWN0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2Utb24tYmxvY2tlZC1z
Y3JpcHQtaW5qZWN0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkZjc0
Y2EuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2Vy
LXBhdXNlLW9uLWJsb2NrZWQtc2NyaXB0LWluamVjdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
U2VjdXJpdHktUG9saWN5IiBjb250ZW50PSJzY3JpcHQtc3JjICdzZWxmJzsiPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcGF1c2Utb24tYmxvY2tlZC1i
eS1jc3AuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wYXVzZS1vbi1ibG9j
a2VkLXNjcmlwdC1pbmplY3Rpb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD4K
LVRlc3RzIHRoYXQgcGF1c2Ugb24gZXhjZXB0aW9uIHdvcmtzIGZvciBpbmxpbmUgc2NyaXB0cyBi
bG9ja2VkIGJ5IENTUC4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1ibG9ja2VkLXNjcmlw
dC11cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVn
Z2VyLXBhdXNlLW9uLWJsb2NrZWQtc2NyaXB0LXVybC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE5ZTY5ZTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLW9uLWJsb2NrZWQtc2NyaXB0LXVybC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIEphdmFTY3JpcHQgVVJMIGJlY2F1c2UgaXQgdmlv
bGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICJz
Y3JpcHQtc3JjICdzZWxmJyIuCi0KLVRlc3RzIHRoYXQgcGF1c2Ugb24gZXhjZXB0aW9uIHdvcmtz
IGZvciBpbmxpbmUgc2NyaXB0IFVSTHMgYmxvY2tlZCBieSBDU1AuCi0KLURlYnVnZ2VyIHdhcyBl
bmFibGVkLgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIHRl
c3RBY3Rpb24gKHBhdXNlLW9uLWJsb2NrZWQtc2NyaXB0LXVybC5qczo2KQotU2NyaXB0IGV4ZWN1
dGlvbiByZXN1bWVkLgotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2Utb24tYmxvY2tlZC1zY3Jp
cHQtdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1
c2Utb24tYmxvY2tlZC1zY3JpcHQtdXJsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI3MzkxZWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2RlYnVnZ2VyLXBhdXNlLW9uLWJsb2NrZWQtc2NyaXB0LXVybC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtU2VjdXJpdHktUG9saWN5IiBjb250ZW50PSJzY3JpcHQtc3JjICdzZWxmJzsiPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcGF1c2Utb24tYmxvY2tl
ZC1ieS1jc3AuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wYXVzZS1vbi1i
bG9ja2VkLXNjcmlwdC11cmwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD4KLVRl
c3RzIHRoYXQgcGF1c2Ugb24gZXhjZXB0aW9uIHdvcmtzIGZvciBpbmxpbmUgc2NyaXB0IFVSTHMg
YmxvY2tlZCBieSBDU1AuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2Utb24tZGVidWdnZXItc3Rh
dGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1
Z2dlci1wYXVzZS1vbi1kZWJ1Z2dlci1zdGF0ZW1lbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkNzhlZTdiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1kZWJ1Z2dlci1zdGF0ZW1lbnQtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1UZXN0cyB0aGF0IGRlYnVn
Z2VyIHdpbGwgc3RvcCBvbiAiZGVidWdnZXIiIHN0YXRlbWVudC4KLQotRGVidWdnZXIgd2FzIGVu
YWJsZWQuCi1TZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCi1TY3JpcHQgZXhlY3V0aW9uIHBh
dXNlZC4KLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBh
dXNlLW9uLWRlYnVnZ2VyLXN0YXRlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLW9uLWRlYnVnZ2VyLXN0YXRlbWVudC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YjZhZTY3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1kZWJ1Z2dlci1zdGF0ZW1lbnQu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkK
LXsKLSAgICBkZWJ1Z2dlcjsKLX0KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgSW5z
cGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRV
bnRpbFBhdXNlZChzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgot
VGVzdHMgdGhhdCBkZWJ1Z2dlciB3aWxsIHN0b3Agb24gImRlYnVnZ2VyIiBzdGF0ZW1lbnQuCi08
L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLW9uLWV4Y2VwdGlvbi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3ZGFhOWYuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLW9u
LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgOTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IHVua25vd25fdmFyCi1UZXN0cyB0aGF0IHBhdXNlIG9uIGV4Y2VwdGlvbiB3b3Jrcy4KLQot
RGVidWdnZXIgd2FzIGVuYWJsZWQuCi1TY3JpcHQgc291cmNlIHdhcyBzaG93bi4KLVNjcmlwdCBl
eGVjdXRpb24gcGF1c2VkLgotQ2FsbCBzdGFjazoKLSAgICAwKSB0aHJvd0FuRXhjZXB0aW9uIChk
ZWJ1Z2dlci1wYXVzZS1vbi1leGNlcHRpb24uaHRtbDo5KQotICAgIDEpIGhhbmRsZUNsaWNrIChk
ZWJ1Z2dlci1wYXVzZS1vbi1leGNlcHRpb24uaHRtbDoxNCkKLVNjcmlwdCBleGVjdXRpb24gcmVz
dW1lZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLW9uLWV4Y2VwdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLW9uLWV4Y2VwdGlvbi5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzAxN2NiLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1leGNlcHRp
b24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGhyb3dBbkV4Y2Vw
dGlvbigpCi17Ci0gICAgcmV0dXJuIHVua25vd25fdmFyOwotfQotCi1mdW5jdGlvbiBoYW5kbGVD
bGljaygpCi17Ci0gICAgdGhyb3dBbkV4Y2VwdGlvbigpOwotfQotCi12YXIgdGVzdCA9IGZ1bmN0
aW9uKCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLQot
ICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIERlYnVnZ2VyQWdlbnQuc2V0UGF1
c2VPbkV4Y2VwdGlvbnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuUGF1c2VPbkV4Y2VwdGlv
bnNTdGF0ZS5QYXVzZU9uVW5jYXVnaHRFeGNlcHRpb25zKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5zaG93U2NyaXB0U291cmNlKCJkZWJ1Z2dlci1wYXVzZS1vbi1leGNlcHRpb24uaHRtbCIsIHN0
ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uIik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQoaGFuZGxlQ2xpY2ssIDAp
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHN0ZXAzKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMyhjYWxsRnJhbWVzKQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBwYXVzZSBv
biBleGNlcHRpb24gd29ya3MuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1mYWlsZWQt
YXNzZXJ0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1wYXVzZS1vbi1mYWlsZWQtYXNzZXJ0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYWU2ODIxMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2Utb24tZmFpbGVkLWFzc2VydGlvbi1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1UZXN0cyB0aGF0IGRlYnVn
Z2VyIGJyZWFrcyBvbiBmYWlsZWQgYXNzZXJ0aW9uIHdoZW4gcGF1c2Ugb24gZXhjZXB0aW9uIG1v
ZGUgaXMgZW5hYmxlZC4KLQotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1TY3JpcHQgc291cmNlIHdh
cyBzaG93bi4KLVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotQ2FsbCBzdGFjazoKLSAgICAwKSBm
YWlsQXNzZXJ0aW9uIChkZWJ1Z2dlci1wYXVzZS1vbi1mYWlsZWQtYXNzZXJ0aW9uLmh0bWw6OSkK
LSAgICAxKSBoYW5kbGVDbGljayAoZGVidWdnZXItcGF1c2Utb24tZmFpbGVkLWFzc2VydGlvbi5o
dG1sOjE0KQotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotRGVidWdnZXIgd2FzIGRpc2FibGVk
LgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXIt
cGF1c2Utb24tZmFpbGVkLWFzc2VydGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLW9uLWZhaWxlZC1hc3NlcnRpb24uaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDUzOWYzOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2Utb24tZmFpbGVkLWFzc2VydGlvbi5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBmYWlsQXNzZXJ0aW9uKCkKLXsK
LSAgICBjb25zb2xlLmFzc2VydChmYWxzZSk7Ci19Ci0KLWZ1bmN0aW9uIGhhbmRsZUNsaWNrKCkK
LXsKLSAgICBmYWlsQXNzZXJ0aW9uKCk7Ci19Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewot
ICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEpOwotCi0gICAgZnVuY3Rp
b24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgRGVidWdnZXJBZ2VudC5zZXRQYXVzZU9uRXhjZXB0
aW9ucyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlLlBh
dXNlT25VbmNhdWdodEV4Y2VwdGlvbnMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3Jp
cHRTb3VyY2UoImRlYnVnZ2VyLXBhdXNlLW9uLWZhaWxlZC1hc3NlcnRpb24uaHRtbCIsIHN0ZXAy
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uIik7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQoaGFuZGxlQ2xpY2ssIDApIik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHN0ZXAzKTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBzdGVwMyhjYWxsRnJhbWVzKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBkZWJ1Z2dlciBi
cmVha3Mgb24gZmFpbGVkIGFzc2VydGlvbiB3aGVuIHBhdXNlIG9uIGV4Y2VwdGlvbiBtb2RlIGlz
IGVuYWJsZWQuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wcm90by1wcm9wZXJ0eS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcHJvdG8tcHJvcGVy
dHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDE5NmM4Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wcm90
by1wcm9wZXJ0eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1U
ZXN0cyB0aGF0IG9iamVjdCdzIF9fcHJvdG9fXyBwcm9wZXJ0eSBpcyBwcmVzZW50IGluIG9iamVj
dCBwcm9wZXJ0aWVzIHNlY3Rpb24gd2hlbiBzY3JpcHQgaXMgcGF1c2VkIG9uIGEgYnJlYWtwb2lu
dC5CdWcgNDEyMTQKLQotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1TZXQgdGltZXIgZm9yIHRlc3Qg
ZnVuY3Rpb24uCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUV4cGFuZGVkIHByb3BlcnR5OiBv
Ll9fcHJvdG9fXy5fX3Byb3RvX18KLUV4cGFuZGVkIHByb3BlcnR5OiBkLl9fcHJvdG9fXy5fX3By
b3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18KLVNjcmlwdCBleGVjdXRpb24gcmVz
dW1lZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXByb3RvLXByb3BlcnR5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcHJvdG8tcHJvcGVydHkuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTE2NzE3Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcHJvdG8tcHJvcGVydHkuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gQygpCi17Ci19Ci0KLUMucHJvdG90eXBl
ID0gewotICAgIG06IGZ1bmN0aW9uKCkgeyB9Ci19Ci0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbigp
Ci17Ci0gICAgdmFyIG8gPSBuZXcgQygpOwotICAgIHZhciBkID0gZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50OwotICAgIGRlYnVnZ2VyOwotfQotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAg
ICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9u
IHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5k
V2FpdFVudGlsUGF1c2VkKHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMihjYWxs
RnJhbWVzKQotICAgIHsKLSAgICAgICAgdmFyIHNlY3Rpb25zID0gV2ViSW5zcGVjdG9yLmluc3Bl
Y3RvclZpZXcuY3VycmVudFBhbmVsKCkuc2lkZWJhclBhbmVzLnNjb3BlY2hhaW4uX3NlY3Rpb25z
OwotICAgICAgICB2YXIgbG9jYWxTY29wZSA9IHNlY3Rpb25zWzBdLnByb3BlcnRpZXNUcmVlT3V0
bGluZTsKLSAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBbCi0gICAgICAgICAgICBsb2NhbFNjb3Bl
LCBbIm8iLCAiX19wcm90b19fIiwgIl9fcHJvdG9fXyJdLAotICAgICAgICAgICAgbG9jYWxTY29w
ZSwgWyJkIiwgIl9fcHJvdG9fXyIsICJfX3Byb3RvX18iLCAiX19wcm90b19fIiwgIl9fcHJvdG9f
XyIsICJfX3Byb3RvX18iXQotICAgICAgICBdOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFu
ZFByb3BlcnRpZXMocHJvcGVydGllcywgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0
ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3Qo
KTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgb2JqZWN0J3MgX19wcm90b19fIHByb3BlcnR5IGlzIHBy
ZXNlbnQgaW4gb2JqZWN0IHByb3BlcnRpZXMgc2VjdGlvbiB3aGVuCi1zY3JpcHQgaXMgcGF1c2Vk
IG9uIGEgYnJlYWtwb2ludC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDEyMTQiPkJ1ZyA0MTIxNDwvYT4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXJlbG9h
ZC1vbi1wYXVzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
ZGVidWdnZXItcmVsb2FkLW9uLXBhdXNlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODc4MTBjOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvZGVidWdnZXItcmVsb2FkLW9uLXBhdXNlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDkgKzAsMCBAQAotVGVzdHMgInJlbG9hZCIgZnJvbSB3aXRoaW4gaW5zcGVjdG9y
IHdpbmRvdyB3aGlsZSBvbiBwYXVzZS4KLQotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1TZXQgdGlt
ZXIgZm9yIHRlc3QgZnVuY3Rpb24uCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLVNjcmlwdCBl
eGVjdXRpb24gcmVzdW1lZC4KLVBhZ2UgcmVsb2FkZWQuCi1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQu
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1y
ZWxvYWQtb24tcGF1c2UuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1
Z2dlci1yZWxvYWQtb24tcGF1c2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YTU2MWI5Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVi
dWdnZXItcmVsb2FkLW9uLXBhdXNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIHRlc3RGdW5jdGlvbigpCi17Ci0gICAgZGVidWdnZXI7Ci19Ci0KLXZhciB0ZXN0ID0g
ZnVuY3Rpb24oKQotewotICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEp
OwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5y
dW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoc3RlcDIpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShz
dGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgInJlbG9h
ZCIgZnJvbSB3aXRoaW4gaW5zcGVjdG9yIHdpbmRvdyB3aGlsZSBvbiBwYXVzZS4KLTwvcD4KLQot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2RlYnVnZ2VyLXNjcmlwdC1wcmVwcm9jZXNzb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXNjcmlwdC1wcmVwcm9jZXNzb3ItZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTA0NDliLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zY3JpcHQtcHJlcHJv
Y2Vzc29yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLVRlc3Rz
IHNjcmlwdCBwcmVwcm9jZXNzb3IgKGFiaWxpdHkgdG8gcHJlcHJvY2VzcyBhbGwgc2NyaXB0cyB1
cG9uIHJlbG9hZCkuCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotUGFnZSByZWxvYWRlZC4KLWlu
c3BlY3Rvci10ZXN0LmpzCi1kZWJ1Z2dlci10ZXN0LmpzCi1kZWJ1Z2dlci1zY3JpcHQtcHJlcHJv
Y2Vzc29yLmh0bWwKLWRlYnVnZ2VyLXNjcmlwdC1wcmVwcm9jZXNzb3IuaHRtbAotCi0KLVBhZ2Ug
cmVsb2FkZWQuCi1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zY3JpcHQtcHJlcHJvY2Vzc29yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2NyaXB0LXByZXByb2Nl
c3Nvci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzU1NDZmLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zY3JpcHQtcHJl
cHJvY2Vzc29yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGxvYWQo
KQotewotICAgIGV2YWwoImZ1bmN0aW9uIGR5bmFtaWMiICsgIlNjcmlwdDEoKSB7fSIpOyAKLSAg
ICBldmFsKCJmdW5jdGlvbiBkeW5hbWljIiArICJTY3JpcHQyKCkge30iKTsgCi0gICAgcnVuVGVz
dCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBwcmVwcm9jZXNzb3Io
c2NyaXB0LCBuYW1lKQotICAgIHsKLSAgICAgICAgaWYgKHNjcmlwdC5pbmRleE9mKCJkeW5hbWlj
IiArICJTY3JpcHQxIikgIT09IC0xKQotICAgICAgICAgICAgcmV0dXJuIHNjcmlwdCArICIvL0Ag
c291cmNlVVJMPWR5bmFtaWNTY3JpcHQxIjsKLSAgICAgICAgaWYgKHNjcmlwdC5pbmRleE9mKCJk
eW5hbWljIiArICJTY3JpcHQyIikgIT09IC0xKSB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAg
ICAgICAgICAgIHZhciB3ID0gZXZhbCgid2luZG93Iik7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHNjcmlwdCArICIvL0Agc291cmNlVVJMPUZBSUxfd2luZG93X3Nob3VsZF9ub3RfYmVfdGhlcmUi
OwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgIHJldHVybiBzY3Jp
cHQgKyAiLy9AIHNvdXJjZVVSTD1keW5hbWljU2NyaXB0MiI7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIHxuYW1lfCBhcmd1bWVudCBpcyBjb3Jy
ZWN0LiBOb3RlOiBpZiBuYW1lIGlzIG5vdCBwYXNzZWQgaW4KLSAgICAgICAgLy8gdGhlIHJlc3Vs
dHMgd2lsbCBiZSBhIHNjcmlwdCB3aXRoIGEgc291cmNlVVJMIGVxdWFsIHRvIHRoZSBvcmlnaW5h
bCBmaWxlIG5hbWUuCi0gICAgICAgIHJldHVybiBzY3JpcHQgKyAiLy9AIHNvdXJjZVVSTD0iICsg
bmFtZSArICIuanMiOyAKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJU
ZXN0KHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7ICAgICAgICAgCi0gICAg
ICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShzdGVwMiwgdW5kZWZpbmVkLCAiKCIgKyBwcmVw
cm9jZXNzb3IgKyAiKSIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0g
ICAgICAgIGZ1bmN0aW9uIGFjY2VwdChzY3JpcHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIHZhciBzY3JpcHRzID0gSW5zcGVjdG9yVGVz
dC5xdWVyeVNjcmlwdHMoYWNjZXB0KTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY3Jp
cHRzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoV2Vi
SW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKHNjcmlwdHNbaV0uc291cmNlVVJMKSk7Ci0KLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1
Z2dlclRlc3QuYmluZChJbnNwZWN0b3JUZXN0KSk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwv
aGVhZD4KLQotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPHA+Ci1UZXN0cyBzY3JpcHQgcHJlcHJv
Y2Vzc29yIChhYmlsaXR5IHRvIHByZXByb2Nlc3MgYWxsIHNjcmlwdHMgdXBvbiByZWxvYWQpLgot
PC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZGVidWdnZXItc2NyaXB0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2NyaXB0cy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3NTA4YTYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXNjcmlwdHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGVzdHMgdGhhdCB2YWxpZCBwYXJzZWQgc2NyaXB0IG5v
dGlmaWNhdGlvbnMgYXJlIHJlY2VpdmVkIGJ5IGZyb250LWVuZC4gQnVnIDUyNzIxCi0KLURlYnVn
Z2VyIHdhcyBlbmFibGVkLgotc2NyaXB0IDE6Ci0gICAgc3RhcnQ6IDU6OAotICAgIGVuZDogMzg6
MAotc2NyaXB0IDI6Ci0gICAgc3RhcnQ6IDM4OjIxCi0gICAgZW5kOiA0MjowCi1zY3JpcHQgMzoK
LSAgICBzdGFydDogNDM6MTEKLSAgICBlbmQ6IDQzOjMyCi1zY3JpcHQgNDoKLSAgICBzdGFydDog
NDQ6MTEKLSAgICBlbmQ6IDQ1OjAKLXNjcmlwdCA1OgotICAgIHN0YXJ0OiA0NjoxMQotICAgIGVu
ZDogNDg6MAotc2NyaXB0IDY6Ci0gICAgc3RhcnQ6IDUxOjU2Ci0gICAgZW5kOiA1MjoyCi1EZWJ1
Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9kZWJ1Z2dlci1zY3JpcHRzLXJlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2NyaXB0cy1yZWxvYWQtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNmYxMmYzLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zY3JpcHRzLXJlbG9hZC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLVRlc3RzIHRoYXQgc2NyaXB0
cyBsaXN0IGlzIGNsZWFyZWQgdXBvbiBwYWdlIHJlbG9hZC4KLQotRGVidWdnZXIgd2FzIGVuYWJs
ZWQuCi1EdW1teSBzY3JpcHQgZm91bmQ6IGR1bW15U2NyaXB0LmpzCi1QYWdlIHJlbG9hZGVkLgot
RGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZGVidWdnZXItc2NyaXB0cy1yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zY3JpcHRzLXJlbG9hZC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0NzdiNGQwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zY3JpcHRzLXJlbG9hZC5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNTEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoImZ1bmN0aW9uIGZvbygpIHt9IC8vQCBzb3VyY2VVUkw9ZHVtbXlTY3Jp
cHQuanMiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnF1ZXJ5U2NyaXB0cyhm
dW5jdGlvbihzY3JpcHQpIHsgc3RlcDMoeyBkYXRhOiBzY3JpcHQgfSkgfSk7Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyTW9kZWwuRXZlbnRzLlBhcnNlZFNjcmlwdFNvdXJjZSwgc3RlcDMpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHN0ZXAzKGV2ZW50KQotICAgIHsKLSAgICAgICAgdmFyIHNjcmlwdCA9IGV2
ZW50LmRhdGE7Ci0gICAgICAgIGlmIChzY3JpcHQuc291cmNlVVJMLmluZGV4T2YoImR1bW15U2Ny
aXB0LmpzIikgIT09IC0xKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
RHVtbXkgc2NyaXB0IGZvdW5kOiAiICsgc2NyaXB0LnNvdXJjZVVSTCk7Ci0gICAgICAgICAgICAv
LyBMZXQgc2NyaXB0cyBkaXNwYXRjaCBhbmQgcmVsb2FkLgotICAgICAgICAgICAgc2V0VGltZW91
dChJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UuYmluZChJbnNwZWN0b3JUZXN0LCBhZnRlclJlbG9h
ZCksIDApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWZ0ZXJSZWxvYWQoKQot
ICAgIHsKLSAgICAgICAgdmFyIHNjcmlwdHMgPSBJbnNwZWN0b3JUZXN0LnF1ZXJ5U2NyaXB0cygp
OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgICAgIGlmIChzY3JpcHRzW2ldLnNvdXJjZVVSTC5pbmRleE9mKCJkdW1teVNjcmlwdC5q
cyIpICE9PSAtMSkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRkFJ
TEVEOiBkdW1teSBzY3JpcHQgZm91bmQgYWZ0ZXIgbmF2aWdhdGlvbiIpOwotICAgICAgICB9Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKLSAgICB9Ci0KLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0
cyB0aGF0IHNjcmlwdHMgbGlzdCBpcyBjbGVhcmVkIHVwb24gcGFnZSByZWxvYWQuCi08L3A+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvZGVidWdnZXItc2NyaXB0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2RlYnVnZ2VyLXNjcmlwdHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWNk
YjkzMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdn
ZXItc2NyaXB0cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICB2YXIgc2NyaXB0cyA9IFtdOwotICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1
Z2dlclRlc3Qoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5xdWVyeVNjcmlwdHMoZnVuY3Rpb24oc2NyaXB0KSB7IHN0ZXAyKHsgZGF0
YTogc2NyaXB0IH0pIH0pOwotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5QYXJzZWRTY3Jp
cHRTb3VyY2UsIHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMihldmVudCkKLSAg
ICB7Ci0gICAgICAgIHZhciBzY3JpcHQgPSBldmVudC5kYXRhOwotICAgICAgICBpZiAoc2NyaXB0
LnNvdXJjZVVSTCAhPT0gV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkwpCi0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIHNjcmlwdHMucHVzaChzY3JpcHQpOwotICAgICAgICBpZiAoc2Ny
aXB0cy5sZW5ndGggPT09IDYpCi0gICAgICAgICAgICBzdGVwMygpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIHNjcmlwdHMuc29ydChmdW5jdGlvbih4LCB5
KSB7IHJldHVybiB4LmxpbmVPZmZzZXQgLSB5LmxpbmVPZmZzZXQgfSk7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoInNjcmlwdCAiICsgKGkgKyAxKSArICI6Iik7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHN0YXJ0OiAiICsgc2NyaXB0c1tpXS5saW5l
T2Zmc2V0ICsgIjoiICsgc2NyaXB0c1tpXS5jb2x1bW5PZmZzZXQpOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBlbmQ6ICIgKyBzY3JpcHRzW2ldLmVuZExpbmUgKyAi
OiIgKyBzY3JpcHRzW2ldLmVuZENvbHVtbik7Ci0gICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PiAgICA8c2Ny
aXB0PgotZnVuY3Rpb24gZjEoKQotewotfQotPC9zY3JpcHQ+Ci0gICA8c2NyaXB0PiBmdW5jdGlv
biBmMigpIHt9ICAgIDwvc2NyaXB0PgotICAgPHNjcmlwdD5mdW5jdGlvbiBmMygpIHt9Ci08L3Nj
cmlwdD4KLSAgIDxzY3JpcHQ+Ci0gICBmdW5jdGlvbiBmNCgpIHt9Ci08L3NjcmlwdD4KLQotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJ3aW5kb3cuZHVtbXkgPSBmdW5jdGlvbigpIHsgfTsgcnVuVGVz
dCgpIj4KLTxwPgotVGVzdHMgdGhhdCB2YWxpZCBwYXJzZWQgc2NyaXB0IG5vdGlmaWNhdGlvbnMg
YXJlIHJlY2VpdmVkIGJ5IGZyb250LWVuZC4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MjcyMSI+QnVnIDUyNzIxPC9hPgotPC9wPgotPC9ib2R5Pgot
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVi
dWdnZXItc2V0LWJyZWFrcG9pbnQtcmVnZXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXNldC1icmVha3BvaW50LXJlZ2V4LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA2NTEwNC4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2V0LWJyZWFrcG9pbnQtcmVn
ZXgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGVzdHMgRGVi
dWdnZXIuc2V0QnJlYWtwb2ludEJ5VXJsIHdpdGggaXNSZWdleCBzZXQgdG8gdHJ1ZS4KLQotRGVi
dWdnZXIgd2FzIGVuYWJsZWQuCi0KLVJ1bm5pbmc6IHRlc3RTZXROb25lT2ZVUkxBbmRSZWdleAot
RWl0aGVyIHVybCBvciB1cmxSZWdleCBtdXN0IGJlIHNwZWNpZmllZC4KLQotUnVubmluZzogdGVz
dFNldEJvdGhVUkxBbmRSZWdleAotRWl0aGVyIHVybCBvciB1cmxSZWdleCBtdXN0IGJlIHNwZWNp
ZmllZC4KLQotUnVubmluZzogdGVzdFNldEJ5UmVnZXgKLVNldCB0aW1lciBmb3IgdGVzdCBmdW5j
dGlvbi4KLVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotQ2FsbCBzdGFjazoKLSAgICAwKSB0ZXN0
RnVuY3Rpb24gKGRlYnVnZ2VyLXNldC1icmVha3BvaW50LXJlZ2V4Lmh0bWw6OSkKLVNjcmlwdCBl
eGVjdXRpb24gcmVzdW1lZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXNldC1icmVha3BvaW50LXJl
Z2V4Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2V0LWJy
ZWFrcG9pbnQtcmVnZXguaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWZhZDI3
Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXIt
c2V0LWJyZWFrcG9pbnQtcmVnZXguaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVu
Y3Rpb24gdGVzdEZ1bmN0aW9uKCkKLXsKLSAgICBmb28oKTsKLX0KLQotZnVuY3Rpb24gZm9vKCkK
LXsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dl
clRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTZXROb25lT2ZVUkxBbmRSZWdleChu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBEZWJ1Z2dlckFnZW50LnNldEJyZWFrcG9pbnRC
eVVybC5pbnZva2Uoe2xpbmVOdW1iZXI6IDF9LCBzdGVwMik7Ci0KLSAgICAgICAgICAgIGZ1bmN0
aW9uIHN0ZXAyKGVycm9yKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KGVycm9yKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldEJvdGhVUkxBbmRS
ZWdleChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdXJsID0gImRlYnVnZ2VyLXNl
dC1icmVha3BvaW50LmpzIjsKLSAgICAgICAgICAgIHZhciB1cmxSZWdleCA9ICJkZWJ1Z2dlci1z
ZXQtYnJlYWtwb2ludC4qIjsKLSAgICAgICAgICAgIERlYnVnZ2VyQWdlbnQuc2V0QnJlYWtwb2lu
dEJ5VXJsKDEsIHVybCwgdXJsUmVnZXgsIHN0ZXAyKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24g
c3RlcDIoZXJyb3IpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoZXJyb3IpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0QnlSZWdleChuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICBEZWJ1Z2dlckFnZW50LnNldEJyZWFrcG9pbnRCeVVybC5p
bnZva2Uoe3VybFJlZ2V4OiAiZGVidWdnZXItc2V0LWJyZWFrcG9pbnQuKiIsIGxpbmVOdW1iZXI6
OH0sIHN0ZXAyKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIocmVzdWx0KQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5k
V2FpdFVudGlsUGF1c2VkKHN0ZXAzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
ICAgICBmdW5jdGlvbiBzdGVwMyhjYWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7Ci0gICAg
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4K
LVRlc3RzIERlYnVnZ2VyLnNldEJyZWFrcG9pbnRCeVVybCB3aXRoIGlzUmVnZXggc2V0IHRvIHRy
dWUuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3RlcC1pbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3RlcC1pbi1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzOWUyMDguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0ZXAtaW4tZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGVzdHMgInN0ZXAgaW4iIGZ1bmN0aW9uYWxpdHkg
aW4gZGVidWdnZXIuCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotU2V0IHRpbWVyIGZvciB0ZXN0
IGZ1bmN0aW9uLgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDAp
IHRlc3RGdW5jdGlvbiAoZGVidWdnZXItc3RlcC1pbi5odG1sOjE0KQotU3RlcHBpbmcgaW50by4u
LgotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1D
YWxsIHN0YWNrOgotICAgIDApIHRlc3RGdW5jdGlvbiAoZGVidWdnZXItc3RlcC1pbi5odG1sOjE1
KQotU3RlcHBpbmcgaW50by4uLgotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotU2NyaXB0IGV4
ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIGQgKGRlYnVnZ2VyLXN0ZXAtaW4u
aHRtbDo4KQotICAgIDEpIHRlc3RGdW5jdGlvbiAoZGVidWdnZXItc3RlcC1pbi5odG1sOjE1KQot
U2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3RlcC1pbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0ZXAtaW4uaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGI1YjkwOS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3RlcC1pbi5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBkKCkKLXsKLSAgICB2YXIgaSA9IDEwOwot
fQotCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKQotewotICAgIGRlYnVnZ2VyOwotICAgIGQoKTsK
LX0KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERl
YnVnZ2VyVGVzdChzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZChzdGVwMik7
Ci0gICAgfQotCi0gICAgdmFyIHN0ZXBDb3VudCA9IDA7Ci0gICAgZnVuY3Rpb24gc3RlcDIoY2Fs
bEZyYW1lcykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2FwdHVyZVN0YWNrVHJhY2Uo
Y2FsbEZyYW1lcyk7Ci0gICAgICAgIGlmIChzdGVwQ291bnQgPCAyKSB7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU3RlcHBpbmcgaW50by4uLiIpOwotICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcmlwdHMtc3RlcC1pbnRvIikuY2xpY2soKTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUmVzdW1lZChJbnNwZWN0b3JUZXN0Lndh
aXRVbnRpbFBhdXNlZC5iaW5kKEluc3BlY3RvclRlc3QsIHN0ZXAyKSk7Ci0gICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAg
ICAgICBzdGVwQ291bnQrKzsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzICJzdGVwIGluIiBmdW5jdGlvbmFsaXR5
IGluIGRlYnVnZ2VyLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3RlcC1pbnRvLWV2ZW50LWxpc3Rl
bmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dl
ci1zdGVwLWludG8tZXZlbnQtbGlzdGVuZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyMmZkYjM2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGVwLWludG8tZXZlbnQtbGlzdGVuZXItZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotVGVzdHMgdGhhdCBzdGVwcGluZyBpbnRv
IGRpc3BhdGNoRXZlbnQoKSBtZXRob2Qgd2lsbCBsZWFkIHRvIGEgcGF1c2UgaW4gdGhlIGZpcnN0
IGV2ZW50IGxpc3RlbmVyLgotCi1SZWNpZXZlZCBmb28gZXZlbnQoMSkhIFJlY2lldmVkIGZvbyBl
dmVudCgyKSEKLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0
aW9uLgotU3RlcHBpbmcgaW50by4uLgotU3RlcHBpbmcgaW50by4uLgotU1VDQ0VTUzogRGlkIHN0
ZXAgaW50byBldmVudCBsaXN0ZW5lcihmb29FdmVudEhhbmRsZXIxKS4KLVN0ZXBwaW5nIGludG8u
Li4KLVN0ZXBwaW5nIGludG8uLi4KLVN0ZXBwaW5nIGludG8uLi4KLVNVQ0NFU1M6IERpZCBzdGVw
IGludG8gZXZlbnQgbGlzdGVuZXIoZm9vRXZlbnRIYW5kbGVyMikuCi1EZWJ1Z2dlciB3YXMgZGlz
YWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1
Z2dlci1zdGVwLWludG8tZXZlbnQtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGVwLWludG8tZXZlbnQtbGlzdGVuZXIuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZkOGVlYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3RlcC1pbnRvLWV2ZW50LWxpc3RlbmVyLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbigpCi17
Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteURpdiIpOwotICAgIGZ1
bmN0aW9uIGZvb0V2ZW50SGFuZGxlcjEoKSB7Ci0gICAgICAgIGRpdi50ZXh0Q29udGVudCArPSAi
UmVjaWV2ZWQgZm9vIGV2ZW50KDEpIVxuIjsKLSAgICB9Ci0gICAgZGl2LmFkZEV2ZW50TGlzdGVu
ZXIoImZvbyIsIGZvb0V2ZW50SGFuZGxlcjEpOwotCi0gICAgZnVuY3Rpb24gZm9vRXZlbnRIYW5k
bGVyMigpIHsKLSAgICAgICAgZGl2LnRleHRDb250ZW50ICs9ICJSZWNpZXZlZCBmb28gZXZlbnQo
MikhXG4iOwotICAgIH0KLSAgICBkaXYuYWRkRXZlbnRMaXN0ZW5lcigiZm9vIiwgZm9vRXZlbnRI
YW5kbGVyMik7Ci0KLSAgICB2YXIgZSA9IG5ldyBDdXN0b21FdmVudCgnZm9vJyk7Ci0gICAgZGVi
dWdnZXI7Ci0gICAgZGl2LmRpc3BhdGNoRXZlbnQoZSk7Ci19Ci0KLXZhciB0ZXN0ID0gZnVuY3Rp
b24oKQotewotICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEsIHRydWUp
OwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5y
dW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoc3RlcDIpOwotICAgIH0KLQotCi0gICAg
ZnVuY3Rpb24gY2hlY2tUb3BGcmFtZUZ1bmN0aW9uKGNhbGxGcmFtZXMsIGV4cGVjdGVkTmFtZSkK
LSAgICB7Ci0gICAgICAgIHZhciB0b3BGdW5jdGlvbk5hbWUgPSBjYWxsRnJhbWVzWzBdLmZ1bmN0
aW9uTmFtZTsKLSAgICAgICAgaWYgKGV4cGVjdGVkTmFtZSA9PT0gdG9wRnVuY3Rpb25OYW1lKQot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNVQ0NFU1M6IERpZCBzdGVwIGlu
dG8gZXZlbnQgbGlzdGVuZXIoIiArIGV4cGVjdGVkTmFtZSArICIpLiIpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRkFJTDogVW5leHBlY3RlZCB0
b3AgZnVuY3Rpb246IGV4cGVjdGVkICIgKyBleHBlY3RlZE5hbWUgKyAiLCBmb3VuZCAiICsgdG9w
RnVuY3Rpb25OYW1lKTsKLSAgICB9Ci0KLSAgICB2YXIgc3RlcENvdW50ID0gMDsKLSAgICBmdW5j
dGlvbiBzdGVwMihjYWxsRnJhbWVzKQotICAgIHsKLSAgICAgICAgaWYgKHN0ZXBDb3VudCA9PT0g
MikKLSAgICAgICAgICAgIGNoZWNrVG9wRnJhbWVGdW5jdGlvbihjYWxsRnJhbWVzLCAiZm9vRXZl
bnRIYW5kbGVyMSIpOwotICAgICAgICBlbHNlIGlmIChzdGVwQ291bnQgPT09IDUpCi0gICAgICAg
ICAgICBjaGVja1RvcEZyYW1lRnVuY3Rpb24oY2FsbEZyYW1lcywgImZvb0V2ZW50SGFuZGxlcjIi
KTsKLQotICAgICAgICBpZiAoc3RlcENvdW50IDwgNSkgewotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlN0ZXBwaW5nIGludG8uLi4iKTsKLSAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzY3JpcHRzLXN0ZXAtaW50byIpLmNsaWNrKCk7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFJlc3VtZWQoSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQ
YXVzZWQuYmluZChJbnNwZWN0b3JUZXN0LCBzdGVwMikpOwotICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKLSAgICAgICAgc3Rl
cENvdW50Kys7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHN0ZXBwaW5nIGludG8gZGlzcGF0Y2hFdmVu
dCgpIG1ldGhvZCB3aWxsIGxlYWQgdG8gYSBwYXVzZSBpbiB0aGUgZmlyc3QgZXZlbnQgbGlzdGVu
ZXIuCi08L3A+Ci08ZGl2IGlkPSJteURpdiI+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGVwLW91
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXIt
c3RlcC1vdXQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYTJk
MGM0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dl
ci1zdGVwLW91dC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1U
ZXN0cyAic3RlcCBvdXQiIGZ1bmN0aW9uYWxpdHkgaW4gZGVidWdnZXIuCi0KLURlYnVnZ2VyIHdh
cyBlbmFibGVkLgotU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0aW9uLgotU2NyaXB0IGV4ZWN1dGlv
biBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIGQgKGRlYnVnZ2VyLXN0ZXAtb3V0Lmh0bWw6
OSkKLSAgICAxKSB0ZXN0RnVuY3Rpb24gKGRlYnVnZ2VyLXN0ZXAtb3V0Lmh0bWw6MTQpCi1TdGVw
cGluZyBvdXQuLi4KLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KLVNjcmlwdCBleGVjdXRpb24g
cGF1c2VkLgotQ2FsbCBzdGFjazoKLSAgICAwKSB0ZXN0RnVuY3Rpb24gKGRlYnVnZ2VyLXN0ZXAt
b3V0Lmh0bWw6MTUpCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1EZWJ1Z2dlciB3YXMgZGlz
YWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1
Z2dlci1zdGVwLW91dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVn
Z2VyLXN0ZXAtb3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzZGVkMGMu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0
ZXAtb3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGQoKQotewot
ICAgIGRlYnVnZ2VyOwotfQotCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKQotewotICAgIGQoKTsK
LX0KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERl
YnVnZ2VyVGVzdChzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZChzdGVwMik7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoY2FsbEZyYW1lcykKLSAgICB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTdGVwcGluZyBvdXQuLi4iKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC53YWl0VW50aWxSZXN1bWVkKEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkLmJp
bmQoSW5zcGVjdG9yVGVzdCwgc3RlcDMpKTsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInNjcmlwdHMtc3RlcC1vdXQiKS5jbGljaygpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0
ZXAzKGNhbGxGcmFtZXMpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFj
a1RyYWNlKGNhbGxGcmFtZXMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdn
ZXJUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyAic3RlcCBvdXQiIGZ1bmN0aW9uYWxpdHkgaW4gZGVi
dWdnZXIuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGVwLW92ZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0ZXAtb3Zlci1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2OTQzYTkuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0ZXAtb3Zlci1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UZXN0cyAic3RlcCBvdmVyIiBm
dW5jdGlvbmFsaXR5IGluIGRlYnVnZ2VyLgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLVNldCB0
aW1lciBmb3IgdGVzdCBmdW5jdGlvbi4KLVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotQ2FsbCBz
dGFjazoKLSAgICAwKSBkIChkZWJ1Z2dlci1zdGVwLW92ZXIuaHRtbDoxNCkKLSAgICAxKSB0ZXN0
RnVuY3Rpb24gKGRlYnVnZ2VyLXN0ZXAtb3Zlci5odG1sOjIwKQotU3RlcHBpbmcgb3Zlci4uLgot
U2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1DYWxs
IHN0YWNrOgotICAgIDApIGQgKGRlYnVnZ2VyLXN0ZXAtb3Zlci5odG1sOjE1KQotICAgIDEpIHRl
c3RGdW5jdGlvbiAoZGVidWdnZXItc3RlcC1vdmVyLmh0bWw6MjApCi1TdGVwcGluZyBvdmVyLi4u
Ci1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUNh
bGwgc3RhY2s6Ci0gICAgMCkgZCAoZGVidWdnZXItc3RlcC1vdmVyLmh0bWw6MTYpCi0gICAgMSkg
dGVzdEZ1bmN0aW9uIChkZWJ1Z2dlci1zdGVwLW92ZXIuaHRtbDoyMCkKLVNjcmlwdCBleGVjdXRp
b24gcmVzdW1lZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0ZXAtb3Zlci5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0ZXAtb3Zlci5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTE0OGEzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGVwLW92ZXIuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDU1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gZigpCi17Ci0gICAgdmFyIGkgPSAxMDsKLX0KLQotZnVu
Y3Rpb24gZCgpCi17Ci0gICAgZGVidWdnZXI7Ci0gICAgZigpOwotfQotCi1mdW5jdGlvbiB0ZXN0
RnVuY3Rpb24oKQotewotICAgIGQoKTsKLX0KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGVwMSk7Ci0KLSAgICBmdW5jdGlv
biBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RGdW5jdGlvbkFu
ZFdhaXRVbnRpbFBhdXNlZChzdGVwMik7Ci0gICAgfQotCi0gICAgdmFyIHN0ZXBDb3VudCA9IDA7
Ci0gICAgZnVuY3Rpb24gc3RlcDIoY2FsbEZyYW1lcykKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7Ci0gICAgICAgIGlmIChzdGVwQ291
bnQgPCAyKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU3RlcHBpbmcg
b3Zlci4uLiIpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcmlwdHMt
c3RlcC1vdmVyIikuY2xpY2soKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGls
UmVzdW1lZChJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZC5iaW5kKEluc3BlY3RvclRlc3Qs
IHN0ZXAyKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgICAgICBzdGVwQ291bnQrKzsKLSAgICB9Ci19Ci0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3Rz
ICJzdGVwIG92ZXIiIGZ1bmN0aW9uYWxpdHkgaW4gZGVidWdnZXIuCi08L3A+Ci0KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1
Z2dlci1zdXNwZW5kLWFjdGl2ZS1kb20tb2JqZWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3VzcGVuZC1hY3RpdmUtZG9tLW9iamVjdHMt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMmJkYTdjLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdXNwZW5k
LWFjdGl2ZS1kb20tb2JqZWN0cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCAr
MCwwIEBACi1BTEVSVDogMQotVGVzdHMgdGhhdCBicm93c2VyIHdvbid0IGNyYXNoIGlmIHVzZXIg
ZXZhbHVhdGVzIHNvbWV0aGluZyBpbiB0aGUgY29uc29sZSB0aGF0IHdvdWxkIHN1c3BlbmQgYWN0
aXZlIGRvbSBvYmplY3RzIChlLmcuIGlmIHVzZXIgYXR0ZW1wdHMgdG8gc2hvdyBhbiBhbGVydCkg
d2hlbiBzY3JpcHQgZXhlY3V0aW9uIGlzIHBhdXNlZCBvbiBhIGJyZWFrcG9pbnQgYW5kIGFsbCBh
Y3RpdmUgZG9tIG9iamVjdHMgYXJlIGFscmVhZHkgc3VzcGVuZGVkLgotCi1EZWJ1Z2dlciB3YXMg
ZW5hYmxlZC4KLVNldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlvbi4KLVNjcmlwdCBleGVjdXRpb24g
cGF1c2VkLgotU2hvd24gYWxlcnQgd2hpbGUgc3RheWluZyBvbiBhIGJyZWFrcG9pbnQuCi1TY3Jp
cHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdXNwZW5kLWFjdGl2
ZS1kb20tb2JqZWN0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVn
Z2VyLXN1c3BlbmQtYWN0aXZlLWRvbS1vYmplY3RzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDRiYjMzZDYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RlYnVnZ2VyLXN1c3BlbmQtYWN0aXZlLWRvbS1vYmplY3RzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw0NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbigpIHsKLSAgICBzZXRUaW1l
b3V0KCJ2b2lkIDAiLCAwKTsgLy8gQ3JlYXRlIGEgdGltZXIgdGhhdCB3aWxsIGJlIHN1c3BlbmRl
ZCBvbiBhIGJyZWFrcG9pbnQuCi0gICAgZGVidWdnZXI7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQot
ewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKLSAgICBJbnNwZWN0b3JU
ZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0YXJ0RGVidWdnZXJUZXN0Q2FsbGJhY2spOwotCi0gICAg
ZnVuY3Rpb24gc3RhcnREZWJ1Z2dlclRlc3RDYWxsYmFjaygpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJzZXRUaW1lb3V0KHRlc3RGdW5jdGlvbiwgMCki
LCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uIik7Ci0gICAgICAgIH0pOwotCi0gICAgICAg
IEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKGZ1bmN0aW9uKGNhbGxGcmFtZXMpIHsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImFsZXJ0KDEpIiwgZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlNob3duIGFsZXJ0IHdoaWxlIHN0YXlpbmcgb24gYSBicmVha3BvaW50LiIpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9KTsKLSAgICB9Ci0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBicm93c2VyIHdvbid0IGNy
YXNoIGlmIHVzZXIgZXZhbHVhdGVzIHNvbWV0aGluZyBpbiB0aGUgY29uc29sZQotdGhhdCB3b3Vs
ZCBzdXNwZW5kIGFjdGl2ZSBkb20gb2JqZWN0cyAoZS5nLiBpZiB1c2VyIGF0dGVtcHRzIHRvIHNo
b3cgYW4gYWxlcnQpCi13aGVuIHNjcmlwdCBleGVjdXRpb24gaXMgcGF1c2VkIG9uIGEgYnJlYWtw
b2ludCBhbmQgYWxsIGFjdGl2ZSBkb20gb2JqZWN0cwotYXJlIGFscmVhZHkgc3VzcGVuZGVkLgot
PC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZGlzYWJsZS1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2Rpc2FibGUtc2NyaXB0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZmYyNGQwMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvZGlzYWJsZS1zY3JpcHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgdGhhdCBpbnNwZWN0b3IgZWZmZWN0aXZlbHkgZGlzYWJs
ZXMgc2NyaXB0IGV4ZWN1dGlvbiBpbiB0aGUgaW5zcGVjdGVkIHBhZ2UuCi0KLQotUnVubmluZzog
aW5pdAotU2NyaXB0IGV4ZWN1dGlvbiBzdGF0dXM6IGFsbG93ZWQKLQotUnVubmluZzogY2hlY2tE
aXNhYmxlZAotU2NyaXB0IGV4ZWN1dGlvbiBzdGF0dXM6IGRpc2FibGVkCi0KLVJ1bm5pbmc6IGNo
ZWNrUmVzdG9yZWQKLVNjcmlwdCBleGVjdXRpb24gc3RhdHVzOiBhbGxvd2VkCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kaXNhYmxlLXNjcmlwdC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Rpc2FibGUtc2NyaXB0Lmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMDE1ZmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Rpc2FibGUtc2NyaXB0Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw1NCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9uIGR1bXBTdGF0ZShuZXh0KQotICAgIHsK
LSAgICAgICAgUGFnZUFnZW50LmdldFNjcmlwdEV4ZWN1dGlvblN0YXR1cyhzdGF0dXNDYWxsYmFj
ayk7Ci0gICAgICAgIGZ1bmN0aW9uIHN0YXR1c0NhbGxiYWNrKGVycm9yLCBzdGF0dXMpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJFcnJvcjogIiArIEpTT04uc3RyaW5naWZ5KGVycm9yKSk7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiU2NyaXB0IGV4ZWN1dGlvbiBzdGF0dXM6ICIgKyBzdGF0dXMpOwot
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc2V0
SlNEaXNhYmxlZChkaXNhYmxlZCwgbmV4dCkKLSAgICB7Ci0gICAgICAgIFBhZ2VBZ2VudC5zZXRT
Y3JpcHRFeGVjdXRpb25EaXNhYmxlZChkaXNhYmxlZCwgbmV4dCk7Ci0gICAgfQotCi0gICAgSW5z
cGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiBpbml0KG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIFBhZ2VBZ2VudC5lbmFibGUoKTsKLSAgICAgICAgICAgIGR1
bXBTdGF0ZShuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiBjaGVja0Rpc2Fi
bGVkKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHNldEpTRGlzYWJsZWQodHJ1ZSwgZHVt
cFN0YXRlLmJpbmQobnVsbCwgbmV4dCkpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9u
IGNoZWNrUmVzdG9yZWQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgc2V0SlNEaXNhYmxl
ZChmYWxzZSwgZHVtcFN0YXRlLmJpbmQobnVsbCwgbmV4dCkpOwotICAgICAgICB9Ci0gICAgXSk7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
Ci1UZXN0cyB0aGF0IGluc3BlY3RvciBlZmZlY3RpdmVseSBkaXNhYmxlcyBzY3JpcHQgZXhlY3V0
aW9uIGluIHRoZSBpbnNwZWN0ZWQgcGFnZS4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RvbS1icmVha3BvaW50
cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3NDc0NjUuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RvbS1icmVha3BvaW50
cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi1UZXN0cyBET00g
YnJlYWtwb2ludHMuIEJ1ZyA0Mjg4NgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLVRlc3QgdGhh
dCAnU3VidHJlZSBNb2RpZmllZCcgYnJlYWtwb2ludCBpcyBoaXQgd2hlbiBhcHBlbmRpbmcgYSBj
aGlsZC4KLVNldCAnU3VidHJlZSBNb2RpZmllZCcgRE9NIGJyZWFrcG9pbnQgb24gcm9vdEVsZW1l
bnQuCi1BcHBlbmQgY2hpbGRFbGVtZW50IHRvIHJvb3RFbGVtZW50LgotU2NyaXB0IGV4ZWN1dGlv
biBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIGFwcGVuZEVsZW1lbnQgKGRvbS1icmVha3Bv
aW50cy5odG1sOjEyKQotICAgIDEpICAoOjEpCi1QYXVzZWQgb24gYSAiU3VidHJlZSBNb2RpZmll
ZCIgYnJlYWtwb2ludCBzZXQgb24gZGl2I3Jvb3RFbGVtZW50LCBiZWNhdXNlIGEgbmV3IGNoaWxk
IHdhcyBhZGRlZCB0byB0aGF0IG5vZGUuCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1UZXN0
IHRoYXQgJ1N1YnRyZWUgTW9kaWZpZWQnIGJyZWFrcG9pbnQgaXMgaGl0IHdoZW4gYXBwZW5kaW5n
IGEgZ3JhbmRjaGlsZC4KLUFwcGVuZCBncmFuZGNoaWxkRWxlbWVudCB0byBjaGlsZEVsZW1lbnQu
Ci1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUNhbGwgc3RhY2s6Ci0gICAgMCkgYXBwZW5kRWxl
bWVudCAoZG9tLWJyZWFrcG9pbnRzLmh0bWw6MTIpCi0gICAgMSkgICg6MSkKLVBhdXNlZCBvbiBh
ICJTdWJ0cmVlIE1vZGlmaWVkIiBicmVha3BvaW50IHNldCBvbiBkaXYjcm9vdEVsZW1lbnQsIGJl
Y2F1c2UgYSBuZXcgY2hpbGQgd2FzIGFkZGVkIHRvIGl0cyBkZXNjZW5kYW50IGRpdiNjaGlsZEVs
ZW1lbnQuCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1UZXN0IHRoYXQgJ1N1YnRyZWUgTW9k
aWZpZWQnIGJyZWFrcG9pbnQgaXMgaGl0IHdoZW4gcmVtb3ZpbmcgYSBjaGlsZC4KLVJlbW92ZSBn
cmFuZGNoaWxkRWxlbWVudC4KLVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotQ2FsbCBzdGFjazoK
LSAgICAwKSByZW1vdmVFbGVtZW50IChkb20tYnJlYWtwb2ludHMuaHRtbDoyNCkKLSAgICAxKSAg
KDoxKQotUGF1c2VkIG9uIGEgIlN1YnRyZWUgTW9kaWZpZWQiIGJyZWFrcG9pbnQgc2V0IG9uIGRp
diNyb290RWxlbWVudCwgYmVjYXVzZSBpdHMgZGVzY2VuZGFudCBkaXYjZ3JhbmRjaGlsZEVsZW1l
bnQgd2FzIHJlbW92ZWQuCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1UZXN0IHRoYXQgJ0F0
dHJpYnV0ZSBNb2RpZmllZCcgYnJlYWtwb2ludCBpcyBoaXQgd2hlbiBtb2RpZnlpbmcgYXR0cmli
dXRlLgotU2V0ICdBdHRyaWJ1dGUgTW9kaWZpZWQnIERPTSBicmVha3BvaW50IG9uIHJvb3RFbGVt
ZW50LgotTW9kaWZ5IHJvb3RFbGVtZW50IGNsYXNzTmFtZS4KLVNjcmlwdCBleGVjdXRpb24gcGF1
c2VkLgotQ2FsbCBzdGFjazoKLSAgICAwKSBtb2RpZnlBdHRyaWJ1dGUgKGRvbS1icmVha3BvaW50
cy5odG1sOjE4KQotICAgIDEpICAoOjEpCi1QYXVzZWQgb24gYSAiQXR0cmlidXRlIE1vZGlmaWVk
IiBicmVha3BvaW50IHNldCBvbiBkaXYjcm9vdEVsZW1lbnQuCi1TY3JpcHQgZXhlY3V0aW9uIHJl
c3VtZWQuCi1UZXN0IHRoYXQgJ05vZGUgUmVtb3ZlZCcgYnJlYWtwb2ludCBpcyBoaXQgd2hlbiBy
ZW1vdmluZyBhIG5vZGUuCi1TZXQgJ05vZGUgUmVtb3ZlZCcgRE9NIGJyZWFrcG9pbnQgb24gZWxl
bWVudFRvUmVtb3ZlLgotUmVtb3ZlIGVsZW1lbnRUb1JlbW92ZS4KLVNjcmlwdCBleGVjdXRpb24g
cGF1c2VkLgotQ2FsbCBzdGFjazoKLSAgICAwKSByZW1vdmVFbGVtZW50IChkb20tYnJlYWtwb2lu
dHMuaHRtbDoyNCkKLSAgICAxKSAgKDoxKQotUGF1c2VkIG9uIGEgIk5vZGUgUmVtb3ZlZCIgYnJl
YWtwb2ludCBzZXQgb24gZGl2I2VsZW1lbnRUb1JlbW92ZS4KLVNjcmlwdCBleGVjdXRpb24gcmVz
dW1lZC4KLVRlc3QgdGhhdCBET00gYnJlYWtwb2ludHMgYXJlIHBlcnNpc3RlZCBiZXR3ZWVuIHBh
Z2UgcmVsb2Fkcy4KLVNldCAnU3VidHJlZSBNb2RpZmllZCcgRE9NIGJyZWFrcG9pbnQgb24gcm9v
dEVsZW1lbnQuCi1QYWdlIHJlbG9hZGVkLgotQXBwZW5kIGNoaWxkRWxlbWVudCB0byByb290RWxl
bWVudC4KLVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotQ2FsbCBzdGFjazoKLSAgICAwKSBhcHBl
bmRFbGVtZW50IChkb20tYnJlYWtwb2ludHMuaHRtbDoxMikKLSAgICAxKSAgKDoxKQotUGF1c2Vk
IG9uIGEgIlN1YnRyZWUgTW9kaWZpZWQiIGJyZWFrcG9pbnQgc2V0IG9uIGRpdiNyb290RWxlbWVu
dCwgYmVjYXVzZSBhIG5ldyBjaGlsZCB3YXMgYWRkZWQgdG8gdGhhdCBub2RlLgotU2NyaXB0IGV4
ZWN1dGlvbiByZXN1bWVkLgotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmYjM4MzYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2RvbS1icmVha3BvaW50cy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMjc3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gYXBwZW5kRWxlbWVudChwYXJlbnRJZCwg
Y2hpbGRJZCkKLXsKLSAgICB2YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKLSAgICBjaGlsZC5pZCA9IGNoaWxkSWQ7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
cGFyZW50SWQpLmFwcGVuZENoaWxkKGNoaWxkKTsKLX0KLQotZnVuY3Rpb24gbW9kaWZ5QXR0cmli
dXRlKGVsZW1lbnRJZCwgbmFtZSwgdmFsdWUpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKLX0KLQotZnVuY3Rpb24gbW9kaWZ5QXR0ck5vZGUoZWxlbWVudElkLCBuYW1l
LCB2YWx1ZSkKLXsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVs
ZW1lbnRJZCk7Ci0gICAgZWxlbWVudC5hdHRyaWJ1dGVzW25hbWVdLnZhbHVlID0gdmFsdWU7Ci19
Ci0KLWZ1bmN0aW9uIHNldEF0dHJOb2RlKGVsZW1lbnRJZCwgbmFtZSwgdmFsdWUpCi17Ci0gICAg
dmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotICAgIHZh
ciBhdHRyID0gZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKG5hbWUpOwotICAgIGF0dHIudmFsdWUg
PSB2YWx1ZTsKLSAgICBlbGVtZW50LmF0dHJpYnV0ZXMuc2V0TmFtZWRJdGVtKGF0dHIpOwotfQot
Ci1mdW5jdGlvbiBtb2RpZnlTdHlsZUF0dHJpYnV0ZShlbGVtZW50SWQsIG5hbWUsIHZhbHVlKQot
ewotICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsK
LSAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KG5hbWUsIHZhbHVlKTsKLX0KLQotZnVuY3Rp
b24gcmVtb3ZlRWxlbWVudChlbGVtZW50SWQpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotICAgIGVsZW1lbnQucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZChlbGVtZW50KTsKLX0KLQotZnVuY3Rpb24gc2V0SW5uZXJIVE1MKGVsZW1lbnRJZCwg
aHRtbCkKLXsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRJZCk7Ci0gICAgZWxlbWVudC5pbm5lckhUTUwgPSBodG1sOwotfQotCi1mdW5jdGlvbiBicmVh
a0RlYnVnZ2VyKCkKLXsKLSAgICBkZWJ1Z2dlcjsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLQotICAgIHZhciBwYW5lID0g
V2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRzU2lkZWJhclBhbmU7Ci0gICAgdmFyIHJvb3RFbGVt
ZW50OwotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0U3VpdGUoWwotICAgICAgICBm
dW5jdGlvbiB0ZXN0SW5zZXJ0Q2hpbGQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3QgdGhhdCAnU3VidHJlZSBNb2RpZmllZCcgYnJlYWtw
b2ludCBpcyBoaXQgd2hlbiBhcHBlbmRpbmcgYSBjaGlsZC4iKTsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Qubm9kZVdpdGhJZCgicm9vdEVsZW1lbnQiLCBzdGVwMik7Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIHN0ZXAyKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcm9v
dEVsZW1lbnQgPSBub2RlOwotICAgICAgICAgICAgICAgIHBhbmUuX3NldEJyZWFrcG9pbnQobm9k
ZSwgcGFuZS5fYnJlYWtwb2ludFR5cGVzLlN1YnRyZWVNb2RpZmllZCwgdHJ1ZSk7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldCAnU3VidHJlZSBNb2RpZmllZCcg
RE9NIGJyZWFrcG9pbnQgb24gcm9vdEVsZW1lbnQuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0KCJhcHBlbmRFbGVtZW50KCdyb290RWxl
bWVudCcsICdjaGlsZEVsZW1lbnQnKSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJBcHBlbmQgY2hpbGRFbGVtZW50IHRvIHJvb3RFbGVtZW50LiIpOwotICAgICAg
ICAgICAgICAgIHdhaXRVbnRpbFBhdXNlZEFuZER1bXBTdGFjayhuZXh0KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0SW5zZXJ0R3JhbmRjaGlsZChu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVz
dCB0aGF0ICdTdWJ0cmVlIE1vZGlmaWVkJyBicmVha3BvaW50IGlzIGhpdCB3aGVuIGFwcGVuZGlu
ZyBhIGdyYW5kY2hpbGQuIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlV2l0aFRpbWVvdXQoImFwcGVuZEVsZW1lbnQoJ2NoaWxkRWxlbWVudCcsICdncmFuZGNoaWxk
RWxlbWVudCcpIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQXBwZW5k
IGdyYW5kY2hpbGRFbGVtZW50IHRvIGNoaWxkRWxlbWVudC4iKTsKLSAgICAgICAgICAgIHdhaXRV
bnRpbFBhdXNlZEFuZER1bXBTdGFjayhuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5j
dGlvbiB0ZXN0UmVtb3ZlQ2hpbGQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlRlc3QgdGhhdCAnU3VidHJlZSBNb2RpZmllZCcgYnJlYWtwb2lu
dCBpcyBoaXQgd2hlbiByZW1vdmluZyBhIGNoaWxkLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0KCJyZW1vdmVFbGVtZW50KCdncmFuZGNoaWxk
RWxlbWVudCcpIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVtb3Zl
IGdyYW5kY2hpbGRFbGVtZW50LiIpOwotICAgICAgICAgICAgd2FpdFVudGlsUGF1c2VkQW5kRHVt
cFN0YWNrKG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RJbm5lckhU
TUwobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlRlc3QgdGhhdCAnU3VidHJlZSBNb2RpZmllZCcgYnJlYWtwb2ludCBpcyBoaXQgZXhhY3RseSBv
bmNlIHdoZW4gc2V0dGluZyBpbm5lckhUTUwuIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoInNldElubmVySFRNTCgnY2hpbGRFbGVtZW50Jywg
Jzxicj48YnI+JykiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZXQg
Y2hpbGRFbGVtZW50LmlubmVySFRNTC4iKTsKLSAgICAgICAgICAgIHdhaXRVbnRpbFBhdXNlZEFu
ZER1bXBTdGFjayhzdGVwMik7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZChz
dGVwMyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhU
aW1lb3V0KCJicmVha0RlYnVnZ2VyKCkiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiQ2FsbCBicmVha0RlYnVnZ2VyLCBleHBlY3QgaXQgdG8gc2hvdyB1cCBpbiBu
ZXh0IHN0YWNrIHRyYWNlLiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlv
biBzdGVwMyhmcmFtZXMpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jYXB0dXJlU3RhY2tUcmFjZShmcmFtZXMpOwotICAgICAgICAgICAgICAgIHBhbmUuX3Jl
bW92ZUJyZWFrcG9pbnQocm9vdEVsZW1lbnQsIHBhbmUuX2JyZWFrcG9pbnRUeXBlcy5TdWJ0cmVl
TW9kaWZpZWQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9u
KG5leHQpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3RNb2RpZnlBdHRyaWJ1dGUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlRlc3QgdGhhdCAnQXR0cmlidXRlIE1vZGlmaWVkJyBicmVha3BvaW50
IGlzIGhpdCB3aGVuIG1vZGlmeWluZyBhdHRyaWJ1dGUuIik7Ci0gICAgICAgICAgICBwYW5lLl9z
ZXRCcmVha3BvaW50KHJvb3RFbGVtZW50LCBwYW5lLl9icmVha3BvaW50VHlwZXMuQXR0cmlidXRl
TW9kaWZpZWQsIHRydWUpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNl
dCAnQXR0cmlidXRlIE1vZGlmaWVkJyBET00gYnJlYWtwb2ludCBvbiByb290RWxlbWVudC4iKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgibW9k
aWZ5QXR0cmlidXRlKCdyb290RWxlbWVudCcsICdkYXRhLXRlc3QnLCAnZm9vJykiKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJNb2RpZnkgcm9vdEVsZW1lbnQgZGF0YS10
ZXN0IGF0dHJpYnV0ZS4iKTsKLSAgICAgICAgICAgIHdhaXRVbnRpbFBhdXNlZEFuZER1bXBTdGFj
ayhzdGVwMik7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKGNhbGxGcmFtZXMpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcGFuZS5fcmVtb3ZlQnJlYWtwb2ludChyb290RWxl
bWVudCwgcGFuZS5fYnJlYWtwb2ludFR5cGVzLkF0dHJpYnV0ZU1vZGlmaWVkKTsKLSAgICAgICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdE1vZGlmeUF0dHJOb2RlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0IHRoYXQgJ0F0dHJpYnV0ZSBNb2RpZmllZCcgYnJl
YWtwb2ludCBpcyBoaXQgd2hlbiBtb2RpZnlpbmcgQXR0ciBub2RlLiIpOwotICAgICAgICAgICAg
cGFuZS5fc2V0QnJlYWtwb2ludChyb290RWxlbWVudCwgcGFuZS5fYnJlYWtwb2ludFR5cGVzLkF0
dHJpYnV0ZU1vZGlmaWVkLCB0cnVlKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJTZXQgJ0F0dHJpYnV0ZSBNb2RpZmllZCcgRE9NIGJyZWFrcG9pbnQgb24gcm9vdEVsZW1l
bnQuIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVv
dXQoIm1vZGlmeUF0dHJOb2RlKCdyb290RWxlbWVudCcsICdkYXRhLXRlc3QnLCAnYmFyJykiKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJNb2RpZnkgcm9vdEVsZW1lbnQg
ZGF0YS10ZXN0IGF0dHJpYnV0ZS4iKTsKLSAgICAgICAgICAgIHdhaXRVbnRpbFBhdXNlZEFuZER1
bXBTdGFjayhzdGVwMik7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKGNhbGxGcmFtZXMp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcGFuZS5fcmVtb3ZlQnJlYWtwb2ludChy
b290RWxlbWVudCwgcGFuZS5fYnJlYWtwb2ludFR5cGVzLkF0dHJpYnV0ZU1vZGlmaWVkKTsKLSAg
ICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdFNldEF0dHJOb2RlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0IHRoYXQgJ0F0dHJpYnV0ZSBNb2RpZmllZCcg
YnJlYWtwb2ludCBpcyBoaXQgd2hlbiBhZGRpbmcgYSBuZXcgQXR0ciBub2RlLiIpOwotICAgICAg
ICAgICAgcGFuZS5fc2V0QnJlYWtwb2ludChyb290RWxlbWVudCwgcGFuZS5fYnJlYWtwb2ludFR5
cGVzLkF0dHJpYnV0ZU1vZGlmaWVkLCB0cnVlKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJTZXQgJ0F0dHJpYnV0ZSBNb2RpZmllZCcgRE9NIGJyZWFrcG9pbnQgb24gcm9v
dEVsZW1lbnQuIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0
aFRpbWVvdXQoInNldEF0dHJOb2RlKCdyb290RWxlbWVudCcsICdkYXRhLWZvbycsICdiYXInKSIp
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk1vZGlmeSByb290RWxlbWVu
dCBkYXRhLWZvbyBhdHRyaWJ1dGUuIik7Ci0gICAgICAgICAgICB3YWl0VW50aWxQYXVzZWRBbmRE
dW1wU3RhY2soc3RlcDIpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMihjYWxsRnJhbWVz
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHBhbmUuX3JlbW92ZUJyZWFrcG9pbnQo
cm9vdEVsZW1lbnQsIHBhbmUuX2JyZWFrcG9pbnRUeXBlcy5BdHRyaWJ1dGVNb2RpZmllZCk7Ci0g
ICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAg
ICAgIGZ1bmN0aW9uIHRlc3RNb2RpZnlTdHlsZUF0dHJpYnV0ZShuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0aGF0ICdBdHRyaWJ1dGUg
TW9kaWZpZWQnIGJyZWFrcG9pbnQgaXMgaGl0IHdoZW4gbW9kaWZ5aW5nIHN0eWxlIGF0dHJpYnV0
ZS4iKTsKLSAgICAgICAgICAgIHBhbmUuX3NldEJyZWFrcG9pbnQocm9vdEVsZW1lbnQsIHBhbmUu
X2JyZWFrcG9pbnRUeXBlcy5BdHRyaWJ1dGVNb2RpZmllZCwgdHJ1ZSk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0ICdBdHRyaWJ1dGUgTW9kaWZpZWQnIERPTSBicmVh
a3BvaW50IG9uIHJvb3RFbGVtZW50LiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZVdpdGhUaW1lb3V0KCJtb2RpZnlTdHlsZUF0dHJpYnV0ZSgncm9vdEVsZW1lbnQn
LCAnY29sb3InLCAnZ3JlZW4nKSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIk1vZGlmeSByb290RWxlbWVudCBzdHlsZS5jb2xvciBhdHRyaWJ1dGUuIik7Ci0gICAgICAg
ICAgICB3YWl0VW50aWxQYXVzZWRBbmREdW1wU3RhY2soc3RlcDIpOwotCi0gICAgICAgICAgICBm
dW5jdGlvbiBzdGVwMihjYWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IHBhbmUuX3JlbW92ZUJyZWFrcG9pbnQocm9vdEVsZW1lbnQsIHBhbmUuX2JyZWFrcG9pbnRUeXBl
cy5BdHRyaWJ1dGVNb2RpZmllZCk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmVOb2RlKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0IHRo
YXQgJ05vZGUgUmVtb3ZlZCcgYnJlYWtwb2ludCBpcyBoaXQgd2hlbiByZW1vdmluZyBhIG5vZGUu
Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoImVsZW1lbnRUb1JlbW92
ZSIsIHN0ZXAyKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIobm9kZSkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBwYW5lLl9zZXRCcmVha3BvaW50KG5vZGUsIHBhbmUuX2Jy
ZWFrcG9pbnRUeXBlcy5Ob2RlUmVtb3ZlZCwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlNldCAnTm9kZSBSZW1vdmVkJyBET00gYnJlYWtwb2ludCBvbiBl
bGVtZW50VG9SZW1vdmUuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZVdpdGhUaW1lb3V0KCJyZW1vdmVFbGVtZW50KCdlbGVtZW50VG9SZW1vdmUnKSIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZW1vdmUgZWxlbWVudFRv
UmVtb3ZlLiIpOwotICAgICAgICAgICAgICAgIHdhaXRVbnRpbFBhdXNlZEFuZER1bXBTdGFjayhu
ZXh0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0
UmVsb2FkKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJUZXN0IHRoYXQgRE9NIGJyZWFrcG9pbnRzIGFyZSBwZXJzaXN0ZWQgYmV0d2VlbiBwYWdl
IHJlbG9hZHMuIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoInJvb3RF
bGVtZW50Iiwgc3RlcDIpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMihub2RlKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHBhbmUuX3NldEJyZWFrcG9pbnQobm9kZSwgcGFu
ZS5fYnJlYWtwb2ludFR5cGVzLlN1YnRyZWVNb2RpZmllZCwgdHJ1ZSk7Ci0gICAgICAgICAgICAg
ICAgcGFuZS5fc2F2ZUJyZWFrcG9pbnRzKCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIlNldCAnU3VidHJlZSBNb2RpZmllZCcgRE9NIGJyZWFrcG9pbnQgb24gcm9v
dEVsZW1lbnQuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHN0
ZXAzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNU
cmVlKHN0ZXA0KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDQo
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2VXaXRoVGltZW91dCgiYXBwZW5kRWxlbWVudCgncm9vdEVsZW1lbnQnLCAnY2hpbGRFbGVt
ZW50JykiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQXBwZW5k
IGNoaWxkRWxlbWVudCB0byByb290RWxlbWVudC4iKTsKLSAgICAgICAgICAgICAgICB3YWl0VW50
aWxQYXVzZWRBbmREdW1wU3RhY2sobmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICBdKTsKLQotICAgIGZ1bmN0aW9uIHdhaXRVbnRpbFBhdXNlZEFuZER1bXBTdGFjayhjYWxsYmFj
aykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHBhdXNlZCk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ2FsbFN0YWNr
U2lkZWJhclBhbmUucHJvdG90eXBlLCAic2V0U3RhdHVzIiwgc2V0U3RhdHVzKTsKLQotICAgICAg
ICB2YXIgY2FwdGlvbjsKLSAgICAgICAgdmFyIGNhbGxGcmFtZXM7Ci0KLSAgICAgICAgZnVuY3Rp
b24gc2V0U3RhdHVzKHN0YXR1cykKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKHR5cGVvZiBz
dGF0dXMgPT09ICJzdHJpbmciKQotICAgICAgICAgICAgICAgIGNhcHRpb24gPSBzdGF0dXM7Ci0g
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY2FwdGlvbiA9IHN0YXR1cy50ZXh0Q29u
dGVudDsKLSAgICAgICAgICAgIGlmIChjYWxsRnJhbWVzKQotICAgICAgICAgICAgICAgIHN0ZXAx
KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBwYXVzZWQoZnJhbWVzKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBjYWxsRnJhbWVzID0gZnJhbWVzOwotICAgICAgICAgICAgaWYgKHR5
cGVvZiBjYXB0aW9uID09PSAic3RyaW5nIikKLSAgICAgICAgICAgICAgICBzdGVwMSgpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlKGNhbGxGcmFtZXMpOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoY2FwdGlvbik7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDIpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJlc3VtZUV4ZWN1dGlvbihJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNrKSk7Ci0g
ICAgICAgIH0KLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIERPTSBicmVha3BvaW50cy4gPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyODg2Ij5CdWcgNDI4ODY8L2E+Ci08
L3A+Ci0KLTxkaXYgaWQ9InJvb3RFbGVtZW50IiBzdHlsZT0iY29sb3I6IHJlZCI+Ci08ZGl2IGlk
PSJlbGVtZW50VG9SZW1vdmUiPjwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10
YWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMt
c2NyaXB0LXRhZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEy
MGVmMzUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFt
aWMtc2NyaXB0LXRhZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBA
Ci1UZXN0cyB0aGF0IGlubGluZSBzY3JpcHRzIGFuZCBkb2N1bWVudC53cml0ZSBzY3JpcHRzIGdl
dCBkaWZmZXJlbnQgdWlTb3VyY2VDb2RlcyB3aXRoIGRpZmZlcmVudCBVUkxzLiBCdWcgODcxMTkK
LQotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1EdW1waW5nIHNjcmlwdHM6Ci1zY3JpcHQxOiBMYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLmh0bWwKLUlzIGFu
b255bW91czpmYWxzZQotSXMgaW5saW5lIHNjcmlwdDpmYWxzZQotc2NyaXB0MjogTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy5odG1sCi1JcyBhbm9ueW1v
dXM6ZmFsc2UKLUlzIGlubGluZSBzY3JpcHQ6ZmFsc2UKLUR1bXBpbmcgdWlTb3VyY2VDb2RlczoK
LVVJU291cmNlQ29kZTogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2Ny
aXB0LXRhZy5odG1sCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNlCi1VSVNvdXJjZUNv
ZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAot
VUlTb3VyY2VDb2RlIGNvbnRlbnQ6IGZ1bmN0aW9uIGZvbygpIHsgfQotVUlTb3VyY2VDb2RlOiBM
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLmh0bWwKLVVJ
U291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UKLVVJU291cmNlQ29kZSBpcyBjb250ZW50IHNj
cmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9qYXZhc2NyaXB0Ci1VSVNvdXJjZUNvZGUgY29u
dGVudDogZnVuY3Rpb24gYmFyKCkgeyB9Ci1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWcu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWcu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjEwMTJmNy4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci93
b3Jrc3BhY2UtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZG9jdW1lbnQud3JpdGUoIjxz
Y3JpcCIgKyAidD5mdW5jdGlvbiBmb28oKSB7IH08L3NjIiArICJyaXB0PiIpOwotCi1mdW5jdGlv
biBjcmVhdGVTY3JpcHRUYWcoKQotewotICAgIHZhciBzY3JpcHRFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Ci0gICAgc2NyaXB0RWxlbWVudC50ZXh0Q29udGVudCA9
ICJmdW5jdGlvbiBiYXIoKSB7IH0iOwotICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2Ny
aXB0RWxlbWVudCk7Ci19Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIEluc3BlY3Rv
clRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEpOwotCi0gICAgdmFyIHNjcmlwdHM7Ci0gICAg
ZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgiY3JlYXRlU2NyaXB0VGFnKCkiLCBzdGVwMik7Ci0gICAgfQotICAgIAotICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLlBhcnNlZFNj
cmlwdFNvdXJjZSwgc3RlcDMpOwotICAgICAgICBzdGVwMygpOwotICAgIH0KLSAgICAKLSAgICBm
dW5jdGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICBzY3JpcHRzID0gT2JqZWN0LnZhbHVlcyhX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRzKTsKLSAgICAgICAgZnVuY3Rpb24gZmls
dGVyT3V0U3RhbmRhbG9uZUFuZElubGluZVNjcmlwdHMoc2NyaXB0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gIXNjcmlwdC5pc0lubGluZVNjcmlwdCgpICYmIHNjcmlwdC5zb3VyY2VV
UkwuaW5kZXhPZigiZHluYW1pYy1zY3JpcHQtdGFnLmh0bWwiKSAhPT0gLTE7Ci0gICAgICAgIH0K
LSAgICAgICAgc2NyaXB0cyA9IHNjcmlwdHMuZmlsdGVyKGZpbHRlck91dFN0YW5kYWxvbmVBbmRJ
bmxpbmVTY3JpcHRzKTsKLSAgICAgICAgaWYgKHNjcmlwdHMubGVuZ3RoID49IDIpIHsKLSAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLlBhcnNlZFNjcmlwdFNvdXJjZSwgc3RlcDMp
OwotICAgICAgICAgICAgc3RlcDQoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICBmdW5j
dGlvbiBzdGVwNCgpCi0gICAgewotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IFtdOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBzY3JpcHRzOiIpOwotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAg
IHZhciBzY3JpcHQgPSBzY3JpcHRzW2ldOwotICAgICAgICAgICAgdmFyIHVybCA9IHNjcmlwdC5z
b3VyY2VVUkwucmVwbGFjZSgvLipMYXlvdXRUZXN0cy8sICJMYXlvdXRUZXN0cyIpOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInNjcmlwdCIgKyAoaSsxKSArICI6ICIgKyB1
cmwpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIklzIGFub255bW91czoi
ICsgc2NyaXB0LmlzQW5vbnltb3VzU2NyaXB0KCkpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIklzIGlubGluZSBzY3JpcHQ6IiArIHNjcmlwdC5pc0lubGluZVNjcmlwdCgp
KTsKLSAgICAgICAgICAgIHVpU291cmNlQ29kZXMucHVzaChzY3JpcHQucmF3TG9jYXRpb25Ub1VJ
TG9jYXRpb24oMCwgMCkudWlTb3VyY2VDb2RlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBz
ZWVuVUlTb3VyY2VDb2RlcyA9IG5ldyBNYXAoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIkR1bXBpbmcgdWlTb3VyY2VDb2RlczoiKTsKLSAgICAgICAgCi0gICAgICAgIHZhciBp
bmRleCA9IDA7Ci0gICAgICAgIGR1bXBOZXh0VUlTb3VyY2VDb2RlKCk7Ci0gICAgICAgIGZ1bmN0
aW9uIGR1bXBOZXh0VUlTb3VyY2VDb2RlKCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGlu
ZGV4ID49IHVpU291cmNlQ29kZXMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VD
b2Rlc0R1bXBlZCgpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGVzW2luZGV4XTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUsIHVpU291
cmNlQ29kZUR1bXBlZCk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHVpU291cmNlQ29kZUR1bXBl
ZCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRU
cnVlKCFzZWVuVUlTb3VyY2VDb2Rlcy5nZXQodWlTb3VyY2VDb2RlKSwgIlVJU291cmNlQ29kZSBt
YXRjaGVzIHR3byBzY3JpcHRzOiAiICsgdWlTb3VyY2VDb2RlLm9yaWdpblVSTCgpKTsKLSAgICAg
ICAgICAgICAgICBzZWVuVUlTb3VyY2VDb2Rlcy5wdXQodWlTb3VyY2VDb2RlLCB1aVNvdXJjZUNv
ZGUpOwotICAgICAgICAgICAgICAgICsraW5kZXg7Ci0gICAgICAgICAgICAgICAgZHVtcE5leHRV
SVNvdXJjZUNvZGUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgZnVuY3Rpb24gdWlTb3VyY2VDb2Rlc0R1bXBlZCgpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKLSAgICAgICAgfQotICAgIH0K
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVz
dHMgdGhhdCBpbmxpbmUgc2NyaXB0cyBhbmQgZG9jdW1lbnQud3JpdGUgc2NyaXB0cyBnZXQgZGlm
ZmVyZW50IHVpU291cmNlQ29kZXMgd2l0aCBkaWZmZXJlbnQgVVJMcy4KLTxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzExOSI+QnVnIDg3MTE5PC9hPgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2R5bmFtaWMtc2NyaXB0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvZHluYW1pYy1zY3JpcHRzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOGFiMmRkMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvZHluYW1pYy1zY3JpcHRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDE0ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMDogRG9uZS4KLVRlc3RzIHRoYXQg
c2NyaXB0cyBmb3IgZHluYW1pY2FsbHkgYWRkZWQgc2NyaXB0IGVsZW1lbnRzIGFyZSBzaG93biBp
biBzb3VyY2VzIHBhbmVsIGlmIGxvYWRlZCB3aXRoIGluc3BlY3RvciBvcGVuLgotCi1CdWcgOTkz
MjQKLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotVUlTb3VyY2VDb2RlczoKLSAgICBkZWJ1Z2dlci10
ZXN0LmpzCi0gICAgZHluYW1pYy1zY3JpcHQuanMKLSAgICBkeW5hbWljLXNjcmlwdHMuaHRtbAot
ICAgIGV2YWxTb3VyY2VVUkwuanMKLSAgICBpbnNwZWN0b3ItdGVzdC5qcwotICAgIHNjcmlwdEVs
ZW1lbnRDb250ZW50U291cmNlVVJMLmpzCi1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdHMuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdHMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWQ3YjI4NS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHRzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw3OSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiBhcHBlbmREeW5hbWljU2NyaXB0RWxlbWVudChzcmMsIGNvbnRlbnQp
Ci17Ci0gICAgdmFyIHNjcmlwdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3Jp
cHQiKTsKLSAgICBpZiAoc3JjKQotICAgICAgICBzY3JpcHRFbGVtZW50LnNyYyA9IHNyYzsKLSAg
ICBlbHNlCi0gICAgICAgIHNjcmlwdEVsZW1lbnQudGV4dENvbnRlbnQgPSBjb250ZW50OwotICAg
IGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0RWxlbWVudCk7Ci19Ci0KLWZ1bmN0aW9u
IGxvYWRTY3JpcHRzKCkKLXsKLSAgICB2YXIgc291cmNlVVJMQ29tbWVudCA9ICJcbiAvL0Agc291
cmNlVVJMPSI7Ci0gICAgd2luZG93LmV2YWwoImZ1bmN0aW9uIGZvb0V2YWwoKSB7fSIpOwotICAg
IHdpbmRvdy5ldmFsKCJmdW5jdGlvbiBmb29FdmFsU291cmNlVVJMKCkge30iICsgc291cmNlVVJM
Q29tbWVudCArICJldmFsU291cmNlVVJMLmpzIik7Ci0gICAgYXBwZW5kRHluYW1pY1NjcmlwdEVs
ZW1lbnQoIiIsICJmdW5jdGlvbiBmb29TY3JpcHRFbGVtZW50Q29udGVudDEoKSB7fSIpOwotICAg
IGFwcGVuZER5bmFtaWNTY3JpcHRFbGVtZW50KCIiLCAiZnVuY3Rpb24gZm9vU2NyaXB0RWxlbWVu
dENvbnRlbnQyKCkge30iKTsKLSAgICBhcHBlbmREeW5hbWljU2NyaXB0RWxlbWVudCgiIiwgImZ1
bmN0aW9uIGZvb1NjcmlwdEVsZW1lbnRDb250ZW50U291cmNlVVJMKCkge30iICsgc291cmNlVVJM
Q29tbWVudCArICJzY3JpcHRFbGVtZW50Q29udGVudFNvdXJjZVVSTC5qcyIpOwotICAgIGFwcGVu
ZER5bmFtaWNTY3JpcHRFbGVtZW50KCJyZXNvdXJjZXMvZHluYW1pYy1zY3JpcHQuanMiKTsKLX0K
LQotZnVuY3Rpb24gc2NyaXB0TG9hZGVkKCkKLXsKLSAgICBjb25zb2xlLmxvZygiRG9uZS4iKTsK
LX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25p
ZmZlcihzdGVwMSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZFNjcmlw
dHMoKSIsIGZ1bmN0aW9uKCkgeyB9KQotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGVwMik7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRl
clBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygp
Ci0gICAgewotICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3Jp
cHRzIik7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gV2ViSW5zcGVjdG9yLndvcmtzcGFj
ZS51aVNvdXJjZUNvZGVzRm9yUHJvamVjdFR5cGUoV2ViSW5zcGVjdG9yLnByb2plY3RUeXBlcy5O
ZXR3b3JrKTsKLSAgICAgICAgdmFyIHVybHMgPSB1aVNvdXJjZUNvZGVzLm1hcChmdW5jdGlvbih1
aVNvdXJjZUNvZGUpIHsgcmV0dXJuIHVpU291cmNlQ29kZS5uYW1lKCk7IH0pOwotICAgICAgICB1
cmxzLnNvcnQoKTsKLQotICAgICAgICB2YXIgd2hpdGVMaXN0ID0gWyJkZWJ1Z2dlci10ZXN0Lmpz
IiwgImR5bmFtaWMtc2NyaXB0LmpzIiwgImR5bmFtaWMtc2NyaXB0cy5odG1sIiwgImV2YWxTb3Vy
Y2VVUkwuanMiLCAiaW5zcGVjdG9yLXRlc3QuanMiLCAic2NyaXB0RWxlbWVudENvbnRlbnRTb3Vy
Y2VVUkwuanMiXTsKLSAgICAgICAgZnVuY3Rpb24gZmlsdGVyKHVybCkKLSAgICAgICAgewotICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3aGl0ZUxpc3QubGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgICAgICAgICBpZiAodXJsLmluZGV4T2Yod2hpdGVMaXN0W2ldKSAhPT0gLTEpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIHVybHMg
PSB1cmxzLmZpbHRlcihmaWx0ZXIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJVSVNvdXJjZUNvZGVzOiIpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVybHMubGVu
Z3RoOyArK2kpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICIgKyB1
cmxzW2ldKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwot
ICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
PHA+VGVzdHMgdGhhdCBzY3JpcHRzIGZvciBkeW5hbWljYWxseSBhZGRlZCBzY3JpcHQgZWxlbWVu
dHMgYXJlIHNob3duIGluIHNvdXJjZXMgcGFuZWwgaWYgbG9hZGVkIHdpdGggaW5zcGVjdG9yIG9w
ZW4uPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5MzI0Ij5CdWcgOTkzMjQ8L2E+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXJyb3ItaW4td2F0Y2gtZXhwcmVzc2lvbnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Vycm9yLWluLXdhdGNo
LWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YWJmYjgwMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXJy
b3ItaW4td2F0Y2gtZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NCArMCwwIEBACi1UZXN0cyB0aGF0IHdhdGNoZXMgcGFuZSByZW5kZXJzIGVycm9ycyBpbiByZWQu
Ci0KLVNVQ0NFU1MKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2Vycm9yLWluLXdhdGNoLWV4cHJlc3Npb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvZXJyb3ItaW4td2F0Y2gtZXhwcmVzc2lvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDhmZDg2MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZXJyb3ItaW4td2F0Y2gtZXhwcmVzc2lvbnMuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDQ0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LQotdmFyIGZvbyA9IDEyMwotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICAvLyBXZSBu
ZWVkIHRvIGluaXRpYWxpemUgc2NyaXB0cyBwYW5lbCBzbyB0aGF0IHdhdGNoIGV4cHJlc3Npb25z
IHNlY3Rpb24gaXMgY3JlYXRlZC4KLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRz
Iik7Ci0KLSAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1BhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxz
LnNjcmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnM7Ci0gICAgd2F0Y2hFeHByZXNz
aW9uc1BhbmUuZXhwYW5kKCk7Ci0KLSAgICB2YXIgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24gPSB3
YXRjaEV4cHJlc3Npb25zUGFuZS5zZWN0aW9uOwotICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9u
LndhdGNoRXhwcmVzc2lvbnMgPSBbXTsKLSAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRj
aEV4cHJlc3Npb25zLnB1c2goIiMkJSIpOwotICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnVw
ZGF0ZSgpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0
ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLmVsZW1lbnQudGV4dENvbnRlbnQu
aW5kZXhPZigiPG5vdCBhdmFpbGFibGU+IikgIT09IC0xID8gIlNVQ0NFU1MiIDogIkZBSUxFRCIp
OwotCi0gICAgICAgIC8vIENsZWFyIHdhdGNoIGV4cHJlc3Npb25zIGFmdGVyIGV4ZWN1dGlvbi4K
LSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtdOwot
ICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi51cGRhdGUoKTsKLQotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCB3YXRjaGVzIHBh
bmUgcmVuZGVycyBlcnJvcnMgaW4gcmVkLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXZhbC1vbi1wYXVzZS1ibG9j
a2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9ldmFsLW9u
LXBhdXNlLWJsb2NrZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4ODJlYmY3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9l
dmFsLW9uLXBhdXNlLWJsb2NrZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSAr
MCwwIEBACi1UZXN0IHRoYXQgZXZhbHVhdGlvbiBpbiB0aGUgY29udGV4dCBvZiB0b3AgZnJhbWUg
d2lsbCBub3QgYmUgYmxvY2tlZCBieSBDb250ZW50LVNlY3VyaXR5LVBvbGljeS4gQnVnIDc3MjAz
LgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLVNldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlvbi4K
LVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotRXZhbHVhdGVkIGluIGNvbnNvbGUgaW4gdGhlIHRv
cCBmcmFtZSBjb250ZXh0OiBmb28gPSAyMDEyCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1E
ZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9ldmFsLW9uLXBhdXNlLWJsb2NrZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9ldmFsLW9uLXBhdXNlLWJsb2NrZWQuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZjcwZTExNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZXZhbC1vbi1wYXVzZS1ibG9ja2VkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw0MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJpdHktUG9saWN5IiBjb250ZW50PSJzY3JpcHQt
c3JjICd1bnNhZmUtaW5saW5lJyI+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkK
LXsKLSAgICB2YXIgZm9vID0gMjAxMjsKLSAgICBkZWJ1Z2dlcjsKLX0KLQotdmFyIHRlc3QgPSBm
dW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGVwMSk7
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1
blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZChzdGVwMik7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29u
c29sZSgiZm9vIiwgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKHJlc3VsdCkK
LSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFdmFsdWF0ZWQgaW4gY29u
c29sZSBpbiB0aGUgdG9wIGZyYW1lIGNvbnRleHQ6IGZvbyA9ICIgKyByZXN1bHQpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7Ci0gICAgfQotfQotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdCB0aGF0
IGV2YWx1YXRpb24gaW4gdGhlIGNvbnRleHQgb2YgdG9wIGZyYW1lIHdpbGwgbm90IGJlIGJsb2Nr
ZWQgYnkgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kuCi08YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyMDMiPkJ1ZyA3NzIwMy48L2E+Ci08L3A+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9ldmVudC1saXN0ZW5lci1icmVha3BvaW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTFhN2JiLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9ldmVudC1saXN0ZW5lci1icmVha3BvaW50cy1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UZXN0cyBldmVudCBs
aXN0ZW5lciBicmVha3BvaW50cy4KLQotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLQotUnVubmlu
ZzogdGVzdENsaWNrQnJlYWtwb2ludAotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0
YWNrOgotICAgIDApIHRlc3RFbGVtZW50Q2xpY2tlZCAoZXZlbnQtbGlzdGVuZXItYnJlYWtwb2lu
dHMuaHRtbDo3KQotICAgIDEpIGFkZExpc3RlbmVyQW5kQ2xpY2sgKGV2ZW50LWxpc3RlbmVyLWJy
ZWFrcG9pbnRzLmh0bWw6MTYpCi0gICAgMikgICg6MSkKLVNjcmlwdCBleGVjdXRpb24gcmVzdW1l
ZC4KLQotUnVubmluZzogdGVzdFRpbWVyRmlyZWRCcmVha3BvaW50Ci1TY3JpcHQgZXhlY3V0aW9u
IHBhdXNlZC4KLUNhbGwgc3RhY2s6Ci0gICAgMCkgdGltZXJGaXJlZCAoZXZlbnQtbGlzdGVuZXIt
YnJlYWtwb2ludHMuaHRtbDoxOSkKLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KLURlYnVnZ2Vy
IHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2V2ZW50LWxpc3RlbmVyLWJyZWFrcG9pbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2M4MzIzNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDc1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdEVsZW1lbnRDbGlja2VkKCkKLXsKLSAgICBy
ZXR1cm4gMDsKLX0KLQotZnVuY3Rpb24gYWRkTGlzdGVuZXJBbmRDbGljaygpCi17Ci0gICAgdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwotICAgIGVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0ZXN0RWxlbWVudENsaWNrZWQsIHRydWUpOwotICAg
IGVsZW1lbnQuY2xpY2soKTsKLX0KLQotZnVuY3Rpb24gdGltZXJGaXJlZCgpCi17Ci0gICAgcmV0
dXJuIDA7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFu
ZWwoInNjcmlwdHMiKTsKLSAgICB2YXIgcGFuZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0
cy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lckJyZWFrcG9pbnRzOwotICAgIEluc3BlY3RvclRl
c3QucnVuRGVidWdnZXJUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0Q2xpY2tCcmVh
a3BvaW50KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHBhbmUuX3NldEJyZWFrcG9pbnQo
Imxpc3RlbmVyOmNsaWNrIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBh
dXNlZChwYXVzZWQpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdp
dGhUaW1lb3V0KCJhZGRMaXN0ZW5lckFuZENsaWNrKCkiKTsKLQotICAgICAgICAgICAgZnVuY3Rp
b24gcGF1c2VkKGNhbGxGcmFtZXMpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsKLSAgICAgICAgICAgICAg
ICBwYW5lLl9yZW1vdmVCcmVha3BvaW50KCJsaXN0ZW5lcjpjbGljayIpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKHJlc3VtZWQpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiByZXN1bWVkKCkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJhZGRMaXN0ZW5lckFuZENs
aWNrKCkpIiwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdFRpbWVyRmlyZWRCcmVha3BvaW50KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHBhbmUuX3NldEJyZWFrcG9pbnQoImluc3RydW1lbnRhdGlvbjp0aW1lckZpcmVkIik7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZChwYXVzZWQpOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCh0aW1lckZpcmVk
LCAxMCkiKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gcGF1c2VkKGNhbGxGcmFtZXMpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFj
ZShjYWxsRnJhbWVzKTsKLSAgICAgICAgICAgICAgICBwYW5lLl9yZW1vdmVCcmVha3BvaW50KCJp
bnN0cnVtZW50YXRpb246dGltZXJGaXJlZCIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QucmVzdW1lRXhlY3V0aW9uKG5leHQpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
XSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Ci08cD4KLVRlc3RzIGV2ZW50IGxpc3RlbmVyIGJyZWFrcG9pbnRzLgotPC9wPgotCi08aW5wdXQg
dHlwZT1idXR0b24gaWQ9InRlc3QiPjwvaW5wdXQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9maWxlLXN5c3RlbS1wcm9qZWN0
LW1hcHBpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zp
bGUtc3lzdGVtLXByb2plY3QtbWFwcGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGZkNDNlY2I3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9maWxlLXN5c3RlbS1wcm9qZWN0LW1hcHBpbmctZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotVGVzdHMgZmlsZSBzeXN0ZW0gcHJvamVjdCBtYXBw
aW5ncy4KLQotCi1SdW5uaW5nOiB0ZXN0QXV0b21hdGljTWFwcGluZwotQWRkaW5nIGZpbGUgc3lz
dGVtLgotQWRkaW5nIG5ldHdvcmsgcmVzb3VyY2UuCi1VSVNvdXJjZUNvZGUgdXJpIHRvIHVybCBt
YXBwaW5nczoKLSAgICBmaWxlc3lzdGVtOi92YXIvd3d3L2h0bWwvZm9vLmpzIC0+IAotICAgIGZp
bGVzeXN0ZW06L3Zhci93d3cvYmFyLmpzIC0+IAotQWRkaW5nIG1hcHBpbmcgYmV0d2VlbiBuZXR3
b3JrIGFuZCBmaWxlIHN5c3RlbSByZXNvdXJjZXMuCi1FbXVsYXRlIHJlbG9hZGluZyBpbnNwZWN0
b3IuCi1VSVNvdXJjZUNvZGUgdXJpIHRvIHVybCBtYXBwaW5nczoKLSAgICBmaWxlc3lzdGVtOi92
YXIvd3d3L2h0bWwvZm9vLmpzIC0+IGh0dHA6Ly9sb2NhbGhvc3QvaHRtbC9mb28uanMKLSAgICBm
aWxlc3lzdGVtOi92YXIvd3d3L2Jhci5qcyAtPiBodHRwOi8vbG9jYWxob3N0L2Jhci5qcwotUmVt
b3ZpbmcgbWFwcGluZyBiZXR3ZWVuIG5ldHdvcmsgYW5kIGZpbGUgc3lzdGVtIHJlc291cmNlcy4K
LUVtdWxhdGUgcmVsb2FkaW5nIGluc3BlY3Rvci4KLVVJU291cmNlQ29kZSB1cmkgdG8gdXJsIG1h
cHBpbmdzOgotICAgIGZpbGVzeXN0ZW06L3Zhci93d3cvaHRtbC9mb28uanMgLT4gCi0gICAgZmls
ZXN5c3RlbTovdmFyL3d3dy9iYXIuanMgLT4gCi0KLVJ1bm5pbmc6IHRlc3RTY3JpcHRGaWxlT25S
ZWxvYWRXaXRoRGlydHlGaWxlCi1BZGRpbmcgZmlsZSBzeXN0ZW0uCi1EdW1waW5nIHVpU291cmNl
Q29kZSBhbmQgc2NyaXB0IGNvbnRlbnQ6Ci0gICAgdWlTb3VyY2VDb2RlOiA8Zm9vIGNvbnRlbnQ+
Ci0gICAgc2NyaXB0OiA8Zm9vIGNvbnRlbnQ+Ci0gIC8vQCBzb3VyY2VVUkw9aHR0cDovL2xvY2Fs
aG9zdC9odG1sL2Zvby5qcyAgCi0gCi0gLSBoYXNEaXZlcmdlZEZyb21WTTogZmFsc2UKLSAtIHNv
dXJjZUZyYW1lLl9tdXRlZDogZmFsc2UKLUVkaXRpbmcgdWlTb3VyY2VDb2RlOgotIC0gaGFzRGl2
ZXJnZWRGcm9tVk06IHRydWUKLSAtIHNvdXJjZUZyYW1lLl9tdXRlZDogdHJ1ZQotQ29tbWl0dGlu
ZyB1aVNvdXJjZUNvZGUgd2l0aCBsaXZlIGVkaXQgZmFpbHVyZToKLUR1bXBpbmcgdWlTb3VyY2VD
b2RlIGFuZCBzY3JpcHQgY29udGVudDoKLSAgICB1aVNvdXJjZUNvZGU6IDxmb28gY29udGVudCBl
ZGl0ZWQ+Ci0gICAgc2NyaXB0OiA8Zm9vIGNvbnRlbnQ+Ci0gIC8vQCBzb3VyY2VVUkw9aHR0cDov
L2xvY2FsaG9zdC9odG1sL2Zvby5qcyAgCi0gCi0gLSBoYXNEaXZlcmdlZEZyb21WTTogdHJ1ZQot
IC0gc291cmNlRnJhbWUuX211dGVkOiB0cnVlCi1SZWxvYWRpbmcgd2l0aCBzYXZlZCBidXQgZGl2
ZXJnZWQgdWlTb3VyY2VDb2RlOgotTG9hZGluZyBzY3JpcHQuCi1EdW1waW5nIHVpU291cmNlQ29k
ZSBhbmQgc2NyaXB0IGNvbnRlbnQ6Ci0gICAgdWlTb3VyY2VDb2RlOiA8Zm9vIGNvbnRlbnQgZWRp
dGVkPgotICAgIHNjcmlwdDogPGZvbyBjb250ZW50PgotICAvL0Agc291cmNlVVJMPWh0dHA6Ly9s
b2NhbGhvc3QvaHRtbC9mb28uanMgIAotIAotIC0gaGFzRGl2ZXJnZWRGcm9tVk06IHRydWUKLSAt
IHNvdXJjZUZyYW1lLl9tdXRlZDogdHJ1ZQotRWRpdGluZyB1aVNvdXJjZUNvZGUgYWdhaW46Ci0g
LSBoYXNEaXZlcmdlZEZyb21WTTogdHJ1ZQotIC0gc291cmNlRnJhbWUuX211dGVkOiB0cnVlCi1D
b21taXR0aW5nIHVpU291cmNlQ29kZSBhZ2FpbiAod2l0aCBsaXZlIGVkaXQgc3VjY2VzcyBub3cp
OgotRHVtcGluZyB1aVNvdXJjZUNvZGUgYW5kIHNjcmlwdCBjb250ZW50OgotICAgIHVpU291cmNl
Q29kZTogPGZvbyBjb250ZW50IGVkaXRlZCBhZ2Fpbj4KLSAgICBzY3JpcHQ6IDxmb28gY29udGVu
dCBlZGl0ZWQgYWdhaW4+Ci0gLy9AIHNvdXJjZVVSTD1odHRwOi8vbG9jYWxob3N0L2h0bWwvZm9v
LmpzCi0gLSBoYXNEaXZlcmdlZEZyb21WTTogZmFsc2UKLSAtIHNvdXJjZUZyYW1lLl9tdXRlZDog
ZmFsc2UKLVJlbG9hZGluZyBwYWdlOgotTG9hZGluZyBzY3JpcHQuCi0gLSBoYXNEaXZlcmdlZEZy
b21WTTogZmFsc2UKLSAtIHNvdXJjZUZyYW1lLl9tdXRlZDogZmFsc2UKLUVkaXRpbmcgdWlTb3Vy
Y2VDb2RlIGFnYWluIGFuZCByZWxvYWRpbmcgd2hpbGUgaXQgaXMgZGlydHk6Ci1Mb2FkaW5nIHNj
cmlwdC4KLSAtIGhhc0RpdmVyZ2VkRnJvbVZNOiB0cnVlCi0gLSBzb3VyY2VGcmFtZS5fbXV0ZWQ6
IHRydWUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2ZpbGUt
c3lzdGVtLXByb2plY3QtbWFwcGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2ZpbGUtc3lzdGVtLXByb2plY3QtbWFwcGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyOTJiMTc0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9maWxlLXN5c3RlbS1wcm9qZWN0LW1hcHBpbmcuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDIxOCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaXNv
bGF0ZWQtZmlsZXN5c3RlbS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBkdW1wVUlTb3VyY2VDb2Rlcyh1aVNvdXJjZUNvZGVzLCBu
ZXh0KQotICAgIHsKLSAgICAgICAgaW5uZXJEdW1wVUlTb3VyY2VDb2Rlcyh1aVNvdXJjZUNvZGVz
LCAwLCBuZXh0KTsKLQotICAgICAgICBmdW5jdGlvbiBpbm5lckR1bXBVSVNvdXJjZUNvZGVzKHVp
U291cmNlQ29kZXMsIHN0YXJ0SW5kZXgsIG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLSAgICAgICAgICAgIGlmIChzdGFydEluZGV4ID09
PSB1aVNvdXJjZUNvZGVzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2Rlc1tzdGFydEluZGV4XSwgaW5uZXJEdW1w
VUlTb3VyY2VDb2Rlcy5iaW5kKHRoaXMsIHVpU291cmNlQ29kZXMsIHN0YXJ0SW5kZXggKyAxLCBu
ZXh0KSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB2YXIgbWFuYWdlcjsKLSAgICB2YXIgcmVz
b3VyY2VTY3JpcHRNYXBwaW5nOwotICAgIHZhciBkZWZhdWx0U2NyaXB0TWFwcGluZzsKLSAgICBm
dW5jdGlvbiBjcmVhdGVPYmplY3RzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY3Jl
YXRlV29ya3NwYWNlKCk7Ci0gICAgICAgIG1hbmFnZXIgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUlz
b2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIoSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLCBJbnNw
ZWN0b3JUZXN0LnRlc3RGaWxlU3lzdGVtTWFwcGluZyk7Ci0gICAgICAgIHJlc291cmNlU2NyaXB0
TWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nKEluc3BlY3Rv
clRlc3QudGVzdFdvcmtzcGFjZSk7Ci0gICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nID0gbmV3
IFdlYkluc3BlY3Rvci5EZWZhdWx0U2NyaXB0TWFwcGluZyhJbnNwZWN0b3JUZXN0LnRlc3RXb3Jr
c3BhY2UpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAg
ICAgZnVuY3Rpb24gdGVzdEF1dG9tYXRpY01hcHBpbmcobmV4dCkKLSAgICAgICAgewotICAgICAg
ICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKSB7IH0KLQotICAg
ICAgICAgICAgZnVuY3Rpb24gZHVtcEZpbGVTeXN0ZW1VSVNvdXJjZUNvZGVzTWFwcGluZ3MoKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gSW5zcGVj
dG9yVGVzdC50ZXN0V29ya3NwYWNlLnByb2plY3QoZmlsZVN5c3RlbVByb2plY3RJZCkudWlTb3Vy
Y2VDb2RlcygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSVNv
dXJjZUNvZGUgdXJpIHRvIHVybCBtYXBwaW5nczoiKTsKLSAgICAgICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgIiArIHVpU291cmNlQ29kZXNbaV0udXJp
KCkgKyAiIC0+ICIgKyB1aVNvdXJjZUNvZGVzW2ldLnVybCk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIHZhciBmaWxlU3lzdGVtUGF0aCA9ICIvdmFyL3d3dyI7Ci0gICAgICAgICAgICB2
YXIgZmlsZVN5c3RlbVByb2plY3RJZCA9IFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtUHJvamVjdERl
bGVnYXRlLnByb2plY3RJZChmaWxlU3lzdGVtUGF0aCk7Ci0gICAgICAgICAgICB2YXIgZmlsZXMg
PSB7Ii9odG1sL2Zvby5qcyI6ICI8Zm9vIGNvbnRlbnQ+IiwgIi9iYXIuanMiOiAiPGJhciBjb250
ZW50PiJ9OwotCi0gICAgICAgICAgICBjcmVhdGVPYmplY3RzKCk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnRlc3RGaWxlTWFwcGluZy5zZXRNYXBwaW5nRW50cmllcyhbXSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50
KHVpU291cmNlQ29kZUFkZGVkLCA0KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJBZGRpbmcgZmlsZSBzeXN0ZW0uIik7Ci0gICAgICAgICAgICBtYW5hZ2VyLmFkZE1vY2tG
aWxlU3lzdGVtKGZpbGVTeXN0ZW1QYXRoLCBmaWxlcyk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiQWRkaW5nIG5ldHdvcmsgcmVzb3VyY2UuIik7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZE1vY2tVSVNvdXJjZUNvZGVUb1dvcmtzcGFjZSgiaHR0cDovL2xvY2Fs
aG9zdC9odG1sL2Zvby5qcyIsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgIjxm
b28gY29udGVudD4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkTW9ja1VJU291cmNl
Q29kZVRvV29ya3NwYWNlKCJodHRwOi8vbG9jYWxob3N0L2Jhci5qcyIsIFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVR5cGVzLlNjcmlwdCwgIjxmb28gY29udGVudD4iKTsKLSAgICAgICAgICAgIGR1bXBG
aWxlU3lzdGVtVUlTb3VyY2VDb2Rlc01hcHBpbmdzKCk7Ci0gICAgICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLnVpU291cmNlQ29kZShmaWxlU3lz
dGVtUHJvamVjdElkLCBbImh0bWwiLCAiZm9vLmpzIl0pOwotICAgICAgICAgICAgdmFyIG5ldHdv
cmtVSVNvdXJjZUNvZGUgPSBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UudWlTb3VyY2VDb2Rl
KCJodHRwOi8vbG9jYWxob3N0IiwgWyJodG1sIiwgImZvby5qcyJdKTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3Qub3ZlcnJpZGUoV2ViSW5zcGVjdG9yLCAic3VnZ2VzdFJlbG9hZCIsIGZ1bmN0
aW9uKCkgeyB9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcg
bWFwcGluZyBiZXR3ZWVuIG5ldHdvcmsgYW5kIGZpbGUgc3lzdGVtIHJlc291cmNlcy4iKTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5hZGRNYXBwaW5nKG5ldHdvcmtV
SVNvdXJjZUNvZGUsIHVpU291cmNlQ29kZSwgbWFuYWdlci5maWxlU3lzdGVtV29ya3NwYWNlUHJv
dmlkZXIpOwotICAgICAgICAgICAgbWFuYWdlci5yZW1vdmVNb2NrRmlsZVN5c3RlbShmaWxlU3lz
dGVtUGF0aCk7Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFbXVsYXRl
IHJlbG9hZGluZyBpbnNwZWN0b3IuIik7Ci0gICAgICAgICAgICBjcmVhdGVPYmplY3RzKCk7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRl
ZEV2ZW50KHVpU291cmNlQ29kZUFkZGVkLCAyKTsKLSAgICAgICAgICAgIG1hbmFnZXIuYWRkTW9j
a0ZpbGVTeXN0ZW0oZmlsZVN5c3RlbVBhdGgsIGZpbGVzKTsKLSAgICAgICAgICAgIGR1bXBGaWxl
U3lzdGVtVUlTb3VyY2VDb2Rlc01hcHBpbmdzKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
Lm92ZXJyaWRlKFdlYkluc3BlY3RvciwgInN1Z2dlc3RSZWxvYWQiLCBmdW5jdGlvbigpIHsgfSk7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVtb3ZpbmcgbWFwcGluZyBi
ZXR3ZWVuIG5ldHdvcmsgYW5kIGZpbGUgc3lzdGVtIHJlc291cmNlcy4iKTsKLSAgICAgICAgICAg
IHVpU291cmNlQ29kZSA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51aVNvdXJjZUNvZGUo
ZmlsZVN5c3RlbVByb2plY3RJZCwgWyJodG1sIiwgImZvby5qcyJdKTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5yZW1vdmVNYXBwaW5nKHVpU291cmNlQ29kZSk7Ci0g
ICAgICAgICAgICBtYW5hZ2VyLnJlbW92ZU1vY2tGaWxlU3lzdGVtKGZpbGVTeXN0ZW1QYXRoKTsK
LQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVtdWxhdGUgcmVsb2FkaW5n
IGluc3BlY3Rvci4iKTsKLSAgICAgICAgICAgIGNyZWF0ZU9iamVjdHMoKTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQodWlT
b3VyY2VDb2RlQWRkZWQsIDIpOwotICAgICAgICAgICAgbWFuYWdlci5hZGRNb2NrRmlsZVN5c3Rl
bShmaWxlU3lzdGVtUGF0aCwgZmlsZXMpOwotICAgICAgICAgICAgZHVtcEZpbGVTeXN0ZW1VSVNv
dXJjZUNvZGVzTWFwcGluZ3MoKTsKLSAgICAgICAgICAgIG1hbmFnZXIucmVtb3ZlTW9ja0ZpbGVT
eXN0ZW0oIi92YXIvd3d3Iik7Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGVzdEZpbGVN
YXBwaW5nLnNldE1hcHBpbmdFbnRyaWVzKFtdKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAg
ICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2NyaXB0RmlsZU9uUmVsb2FkV2l0aERpcnR5
RmlsZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgb3JpZ2luYWxGaWxlQ29udGVu
dCA9ICI8Zm9vIGNvbnRlbnQ+IjsKLSAgICAgICAgICAgIHZhciBzY3JpcHRVUkwgPSAiaHR0cDov
L2xvY2FsaG9zdC9odG1sL2Zvby5qcyI7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0Q29udGVudCA9
IG9yaWdpbmFsRmlsZUNvbnRlbnQgKyAiXG4gIC8vQCBzb3VyY2VVUkw9IiArIHNjcmlwdFVSTCAr
ICIgIFxuICI7Ci0gICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJj
ZUNvZGUpIHsgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiB1bmxvYWRTY3JpcHQoKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHJlc291cmNlU2NyaXB0TWFwcGluZy5fZGVidWdnZXJS
ZXNldCgpOwotICAgICAgICAgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nLl9kZWJ1Z2dlclJl
c2V0KCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGxvYWRTY3JpcHQo
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHNjcmlwdCA9IEluc3BlY3RvclRlc3Qu
Y3JlYXRlU2NyaXB0TW9jayhzY3JpcHRVUkwsIDAsIDAsIGZhbHNlLCBzY3JpcHRDb250ZW50KTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNv
ZGVBZGRlZEV2ZW50KHVpU291cmNlQ29kZUFkZGVkLCAxKTsKLSAgICAgICAgICAgICAgICBkZWZh
dWx0U2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKLSAgICAgICAgICAgICAgICByZXNv
dXJjZVNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIHZhciBmaWxlU3lzdGVtUGF0aCA9ICIvdmFyL3d3dyI7Ci0gICAgICAgICAgICB2
YXIgZmlsZVN5c3RlbVByb2plY3RJZCA9IFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtUHJvamVjdERl
bGVnYXRlLnByb2plY3RJZChmaWxlU3lzdGVtUGF0aCk7Ci0gICAgICAgICAgICB2YXIgZmlsZXMg
PSB7Ii9odG1sL2Zvby5qcyI6IG9yaWdpbmFsRmlsZUNvbnRlbnQsICIvYmFyLmpzIjogIjxiYXIg
Y29udGVudD4ifTsKLSAgICAgICAgICAgIGNyZWF0ZU9iamVjdHMoKTsKLSAgICAgICAgICAgIHZh
ciBlbnRyeTEgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vbG9j
YWxob3N0LyIsICIvdmFyL3d3dy8iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGVzdEZp
bGVNYXBwaW5nLnNldE1hcHBpbmdFbnRyaWVzKFtlbnRyeTFdKTsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQodWlTb3VyY2VD
b2RlQWRkZWQsIDIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGlu
ZyBmaWxlIHN5c3RlbS4iKTsKLSAgICAgICAgICAgIG1hbmFnZXIuYWRkTW9ja0ZpbGVTeXN0ZW0o
ZmlsZVN5c3RlbVBhdGgsIGZpbGVzKTsKLQotICAgICAgICAgICAgbG9hZFNjcmlwdCgpOwotCi0g
ICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNl
LnVpU291cmNlQ29kZShmaWxlU3lzdGVtUHJvamVjdElkLCBbImh0bWwiLCAiZm9vLmpzIl0pOwot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSwg
ZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGR1bXBVSVNvdXJj
ZUNvZGVBbmRTY3JpcHRDb250ZW50cygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bXBpbmcgdWlTb3VyY2VDb2RlIGFuZCBzY3JpcHQg
Y29udGVudDoiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAg
IHVpU291cmNlQ29kZTogIiArIHVpU291cmNlQ29kZS53b3JraW5nQ29weSgpKTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHNjcmlwdDogIiArIHNjcmlwdENv
bnRlbnQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2Ny
aXB0U291cmNlKHNvdXJjZUZyYW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGR1
bXBVSVNvdXJjZUNvZGVBbmRTY3JpcHRDb250ZW50cygpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIgLSBoYXNEaXZlcmdlZEZyb21WTTogIiArICEhdWlTb3VyY2VD
b2RlLnNjcmlwdEZpbGUoKS5oYXNEaXZlcmdlZEZyb21WTSgpKTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIC0gc291cmNlRnJhbWUuX211dGVkOiAiICsgISFzb3Vy
Y2VGcmFtZS5fbXV0ZWQpOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkVkaXRpbmcgdWlTb3VyY2VDb2RlOiIpOwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29k
ZS5zZXRXb3JraW5nQ29weSgiPGZvbyBjb250ZW50IGVkaXRlZD4iKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIC0gaGFzRGl2ZXJnZWRGcm9tVk06ICIgKyAhIXVp
U291cmNlQ29kZS5zY3JpcHRGaWxlKCkuaGFzRGl2ZXJnZWRGcm9tVk0oKSk7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAtIHNvdXJjZUZyYW1lLl9tdXRlZDogIiAr
ICEhc291cmNlRnJhbWUuX211dGVkKTsKLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldFNj
cmlwdFNvdXJjZU92ZXJyaWRlRmFpbHVyZShzY3JpcHRJZCwgbmV3Q29udGVudCwgY2FsbGJhY2sp
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygiZXJyb3Ii
KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5vdmVy
cmlkZShXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbCwgInNldFNjcmlwdFNvdXJjZSIsIHNldFNj
cmlwdFNvdXJjZU92ZXJyaWRlRmFpbHVyZSk7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiQ29tbWl0dGluZyB1aVNvdXJjZUNvZGUgd2l0aCBsaXZlIGVkaXQgZmFp
bHVyZToiKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuY29tbWl0V29ya2luZ0NvcHko
ZnVuY3Rpb24oKSB7IH0pOwotICAgICAgICAgICAgICAgIGR1bXBVSVNvdXJjZUNvZGVBbmRTY3Jp
cHRDb250ZW50cygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIg
LSBoYXNEaXZlcmdlZEZyb21WTTogIiArICEhdWlTb3VyY2VDb2RlLnNjcmlwdEZpbGUoKS5oYXNE
aXZlcmdlZEZyb21WTSgpKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiIC0gc291cmNlRnJhbWUuX211dGVkOiAiICsgISFzb3VyY2VGcmFtZS5fbXV0ZWQpOwotCi0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJlbG9hZGluZyB3aXRoIHNh
dmVkIGJ1dCBkaXZlcmdlZCB1aVNvdXJjZUNvZGU6Iik7Ci0gICAgICAgICAgICAgICAgdW5sb2Fk
U2NyaXB0KCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCF1aVNv
dXJjZUNvZGUuc2NyaXB0RmlsZSgpLCAiVUlTb3VyY2VDb2RlIHNob3VsZCBub3QgaGF2ZSBzY3Jp
cHQgZmlsZSBhZnRlciB1bmxvYWRpbmcgc2NyaXB0cy4iKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydFRydWUoIXNvdXJjZUZyYW1lLl9tdXRlZCwgIlNhdmVkIGJ1dCBkaXZl
cmdlZCBzb3VyY2UgZnJhbWUgc2hvdWxkIG5vdCBiZSBtdXRlZCIpOwotCi0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxvYWRpbmcgc2NyaXB0LiIpOwotICAgICAgICAg
ICAgICAgIGxvYWRTY3JpcHQoKTsKLSAgICAgICAgICAgICAgICBkdW1wVUlTb3VyY2VDb2RlQW5k
U2NyaXB0Q29udGVudHMoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiIC0gaGFzRGl2ZXJnZWRGcm9tVk06ICIgKyAhIXVpU291cmNlQ29kZS5zY3JpcHRGaWxlKCku
aGFzRGl2ZXJnZWRGcm9tVk0oKSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiAtIHNvdXJjZUZyYW1lLl9tdXRlZDogIiArICEhc291cmNlRnJhbWUuX211dGVkKTsK
LQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFZGl0aW5nIHVpU291
cmNlQ29kZSBhZ2FpbjoiKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0V29ya2lu
Z0NvcHkoIjxmb28gY29udGVudCBlZGl0ZWQgYWdhaW4+Iik7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAtIGhhc0RpdmVyZ2VkRnJvbVZNOiAiICsgISF1aVNvdXJj
ZUNvZGUuc2NyaXB0RmlsZSgpLmhhc0RpdmVyZ2VkRnJvbVZNKCkpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgLSBzb3VyY2VGcmFtZS5fbXV0ZWQ6ICIgKyAhIXNv
dXJjZUZyYW1lLl9tdXRlZCk7Ci0KLSAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZXRTY3JpcHRT
b3VyY2VPdmVycmlkZVN1Y2Nlc3Moc2NyaXB0SWQsIG5ld0NvbnRlbnQsIGNhbGxiYWNrKQotICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgc2NyaXB0Q29udGVudCA9IG5ld0Nv
bnRlbnQ7Ci0gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTW9kZWwsICJzZXRTY3JpcHRTb3VyY2UiLCBzZXRTY3JpcHRTb3VyY2VPdmVycmlkZVN1
Y2Nlc3MpOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNvbW1p
dHRpbmcgdWlTb3VyY2VDb2RlIGFnYWluICh3aXRoIGxpdmUgZWRpdCBzdWNjZXNzIG5vdyk6Iik7
Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLmNvbW1pdFdvcmtpbmdDb3B5KGZ1bmN0aW9u
KCkgeyB9KTsKLSAgICAgICAgICAgICAgICBkdW1wVUlTb3VyY2VDb2RlQW5kU2NyaXB0Q29udGVu
dHMoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIC0gaGFzRGl2
ZXJnZWRGcm9tVk06ICIgKyAhIXVpU291cmNlQ29kZS5zY3JpcHRGaWxlKCkuaGFzRGl2ZXJnZWRG
cm9tVk0oKSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAtIHNv
dXJjZUZyYW1lLl9tdXRlZDogIiArICEhc291cmNlRnJhbWUuX211dGVkKTsKLQotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZWxvYWRpbmcgcGFnZToiKTsKLSAgICAg
ICAgICAgICAgICB1bmxvYWRTY3JpcHQoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydFRydWUoIXVpU291cmNlQ29kZS5zY3JpcHRGaWxlKCksICJVSVNvdXJjZUNvZGUgc2hv
dWxkIG5vdCBoYXZlIHNjcmlwdCBmaWxlIGFmdGVyIHVubG9hZGluZyBzY3JpcHRzLiIpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghc291cmNlRnJhbWUuX211dGVk
LCAiU2F2ZWQgYW5kIG1lcmdlZCBzb3VyY2UgZnJhbWUgc2hvdWxkIG5vdCBiZSBtdXRlZCIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJMb2FkaW5nIHNjcmlwdC4i
KTsKLSAgICAgICAgICAgICAgICBsb2FkU2NyaXB0KCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIiAtIGhhc0RpdmVyZ2VkRnJvbVZNOiAiICsgISF1aVNvdXJjZUNv
ZGUuc2NyaXB0RmlsZSgpLmhhc0RpdmVyZ2VkRnJvbVZNKCkpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgLSBzb3VyY2VGcmFtZS5fbXV0ZWQ6ICIgKyAhIXNvdXJj
ZUZyYW1lLl9tdXRlZCk7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiRWRpdGluZyB1aVNvdXJjZUNvZGUgYWdhaW4gYW5kIHJlbG9hZGluZyB3aGlsZSBpdCBpcyBk
aXJ0eToiKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoIjxm
b28gY29udGVudCBlZGl0ZWQgYW5kIGRpcnR5PiIpOwotICAgICAgICAgICAgICAgIHVubG9hZFNj
cmlwdCgpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghdWlTb3Vy
Y2VDb2RlLnNjcmlwdEZpbGUoKSwgIlVJU291cmNlQ29kZSBzaG91bGQgbm90IGhhdmUgc2NyaXB0
IGZpbGUgYWZ0ZXIgdW5sb2FkaW5nIHNjcmlwdHMuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRUcnVlKHNvdXJjZUZyYW1lLl9tdXRlZCwgIkRpcnR5IHNvdXJjZSBmcmFt
ZSBzaG91bGQgYmUgbXV0ZWQiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiTG9hZGluZyBzY3JpcHQuIik7Ci0gICAgICAgICAgICAgICAgbG9hZFNjcmlwdCgpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgLSBoYXNEaXZlcmdlZEZy
b21WTTogIiArICEhdWlTb3VyY2VDb2RlLnNjcmlwdEZpbGUoKS5oYXNEaXZlcmdlZEZyb21WTSgp
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIC0gc291cmNlRnJh
bWUuX211dGVkOiAiICsgISFzb3VyY2VGcmFtZS5fbXV0ZWQpOwotCi0gICAgICAgICAgICAgICAg
dW5sb2FkU2NyaXB0KCk7Ci0gICAgICAgICAgICAgICAgbG9hZFNjcmlwdDsKLQotICAgICAgICAg
ICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfTsKLTwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgZmls
ZSBzeXN0ZW0gcHJvamVjdCBtYXBwaW5ncy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZnVuY3Rpb24tZGV0YWlscy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZnVuY3Rpb24tZGV0YWls
cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkMmMxNDcuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Z1bmN0aW9uLWRldGFp
bHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotVGVzdHMgdGhh
dCBEZWJ1Z2dlci5nZXRGdW5jdGlvbkRldGFpbHMgY29tbWFuZCByZXR1cm5zIGNvcnJlY3QgbG9j
YXRpb24uIEJ1ZyA3MTgwOAotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLQotUnVubmluZzogdGVz
dEdldEZpcnN0TGluZUZ1bmN0aW9uRGV0YWlscwotZmlyc3RMaW5lRnVuY3Rpb24gdHlwZSA9IGZ1
bmN0aW9uCi1GdW5jdGlvbiBkZXRhaWxzOiAKLWxpbmVOdW1iZXI6IDcKLWNvbHVtbk51bWJlcjog
dW5kZWZpbmVkCi1zY3JpcHRJZCBpcyB2YWxpZDogdHJ1ZQotbmFtZTogZmlyc3RMaW5lRnVuY3Rp
b24KLWRpc3BsYXlOYW1lOiB1bmRlZmluZWQKLWluZmVycmVkTmFtZTogdW5kZWZpbmVkCi1zY29w
ZUNoYWluOiBuL2EKLQotUnVubmluZzogdGVzdEdldE5vbkZpcnN0TGluZUZ1bmN0aW9uRGV0YWls
cwotbm90Rmlyc3RMaW5lRnVuY3Rpb24gdHlwZSA9IGZ1bmN0aW9uCi1GdW5jdGlvbiBkZXRhaWxz
OiAKLWxpbmVOdW1iZXI6IDEyCi1jb2x1bW5OdW1iZXI6IHVuZGVmaW5lZAotc2NyaXB0SWQgaXMg
dmFsaWQ6IHRydWUKLW5hbWU6IG5vdEZpcnN0TGluZUZ1bmN0aW9uCi1kaXNwbGF5TmFtZTogdW5k
ZWZpbmVkCi1pbmZlcnJlZE5hbWU6IHVuZGVmaW5lZAotc2NvcGVDaGFpbjogbi9hCi0KLVJ1bm5p
bmc6IHRlc3RHZXREZXRhaWxzT2ZGdW5jdGlvbldpdGhJbmZlcnJlZE5hbWUKLW9iai5tIHR5cGUg
PSBmdW5jdGlvbgotRnVuY3Rpb24gZGV0YWlsczogCi1saW5lTnVtYmVyOiAxNgotY29sdW1uTnVt
YmVyOiB1bmRlZmluZWQKLXNjcmlwdElkIGlzIHZhbGlkOiB0cnVlCi1uYW1lOiB1bmRlZmluZWQK
LWRpc3BsYXlOYW1lOiB1bmRlZmluZWQKLWluZmVycmVkTmFtZTogdW5kZWZpbmVkCi1zY29wZUNo
YWluOiBuL2EKLQotUnVubmluZzogdGVzdEdldERldGFpbHNPZkZ1bmN0aW9uV2l0aERpc3BsYXlO
YW1lCi1mdW5jdGlvbldpdGhEaXNwbGF5TmFtZSB0eXBlID0gZnVuY3Rpb24KLUZ1bmN0aW9uIGRl
dGFpbHM6IAotbGluZU51bWJlcjogMTkKLWNvbHVtbk51bWJlcjogdW5kZWZpbmVkCi1zY3JpcHRJ
ZCBpcyB2YWxpZDogdHJ1ZQotbmFtZTogZnVuY3Rpb25XaXRoRGlzcGxheU5hbWUKLWRpc3BsYXlO
YW1lOiB1c2VyLWZyaWVuZGx5IG5hbWUKLWluZmVycmVkTmFtZTogdW5kZWZpbmVkCi1zY29wZUNo
YWluOiBuL2EKLQotUnVubmluZzogdGVzdFNtYWxsQ2xvc3VyZQotc21hbGxDbG9zdXJlIHR5cGUg
PSBmdW5jdGlvbgotRnVuY3Rpb24gZGV0YWlsczogCi1saW5lTnVtYmVyOiAyMgotY29sdW1uTnVt
YmVyOiB1bmRlZmluZWQKLXNjcmlwdElkIGlzIHZhbGlkOiB0cnVlCi1uYW1lOiB1bmRlZmluZWQK
LWRpc3BsYXlOYW1lOiB1bmRlZmluZWQKLWluZmVycmVkTmFtZTogdW5kZWZpbmVkCi1zY29wZUNo
YWluOiBuL2EKLQotUnVubmluZzogdGVzdEJpZ0Nsb3N1cmUKLWJpZ0Nsb3N1cmUgdHlwZSA9IGZ1
bmN0aW9uCi1GdW5jdGlvbiBkZXRhaWxzOiAKLWxpbmVOdW1iZXI6IDM1Ci1jb2x1bW5OdW1iZXI6
IHVuZGVmaW5lZAotc2NyaXB0SWQgaXMgdmFsaWQ6IHRydWUKLW5hbWU6IHVuZGVmaW5lZAotZGlz
cGxheU5hbWU6IHVuZGVmaW5lZAotaW5mZXJyZWROYW1lOiB1bmRlZmluZWQKLXNjb3BlQ2hhaW46
IG4vYQotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZnVuY3Rpb24tZGV0YWlscy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2Z1bmN0aW9uLWRldGFpbHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTk3ZjEzMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvZnVuY3Rpb24tZGV0YWlscy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTY0ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0
PiAgZnVuY3Rpb24gZmlyc3RMaW5lRnVuY3Rpb24oKQotCi17Ci19Ci0KLSAgIGZ1bmN0aW9uIG5v
dEZpcnN0TGluZUZ1bmN0aW9uKCkKLQotewotfQotCi12YXIgb2JqID0gewotICAgIG06IGZ1bmN0
aW9uKCkge30KLX0KLQotZnVuY3Rpb24gZnVuY3Rpb25XaXRoRGlzcGxheU5hbWUoKSB7fQotZnVu
Y3Rpb25XaXRoRGlzcGxheU5hbWUuZGlzcGxheU5hbWUgPSAidXNlci1mcmllbmRseSBuYW1lIjsK
LQotdmFyIHNtYWxsQ2xvc3VyZSA9IChmdW5jdGlvbihwKSB7IHJldHVybiBmdW5jdGlvbigpIHsg
cmV0dXJuIHA7IH07IH0pKCJDYXB5YmFyYSIpOwotCi12YXIgYmlnQ2xvc3VyZSA9IChmdW5jdGlv
bihwKSB7Ci0gICAgdmFyIG8gPSB7Ci0gICAgICAgZTogNywKLSAgICAgICBmOiA1LAotICAgICAg
IGdldCB1KCkgeyByZXR1cm4gMzsgfSwKLSAgICAgICBzZXQgdih2YWx1ZSkgeyB9Ci0gICAgfTsK
LSAgICB3aXRoIChvKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB0aHJvdyBFcnJvcigi
VGVzdCIpOwotICAgICAgICB9IGNhdGNoIChleCkgewotICAgICAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcocCkgKyBTdHJpbmcoZXgpICsg
dSArIGU7Ci0gICAgICAgICAgICB9OwotICAgICAgICB9Ci0gICAgfQotfSkoe30pOwotCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBkdW1wRnVuY3Rpb25EZXRhaWxzKGRldGFpbHMp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRnVuY3Rpb24gZGV0YWls
czogIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJsaW5lTnVtYmVyOiAiICsg
ZGV0YWlscy5sb2NhdGlvbi5saW5lTnVtYmVyKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoImNvbHVtbk51bWJlcjogIiArIGRldGFpbHMubG9jYXRpb24uY29sdW1uTnVtYmVyKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInNjcmlwdElkIGlzIHZhbGlkOiAiICsg
ISFkZXRhaWxzLmxvY2F0aW9uLnNjcmlwdElkKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIm5hbWU6ICIgKyBkZXRhaWxzLm5hbWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiZGlzcGxheU5hbWU6ICIgKyBkZXRhaWxzLmRpc3BsYXlOYW1lKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImluZmVycmVkTmFtZTogIiArIGRldGFpbHMuaW5mZXJy
ZWROYW1lKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wRnVuY3Rpb25Ob1Njb3BlcygpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgic2NvcGVDaGFpbjogbi9hIik7
Ci0gICAgfQotCi0KLSAgICBmdW5jdGlvbiBkdW1wRnVuY3Rpb25TY29wZShwb3MsIHR5cGUsIHBy
b3BlcnR5RGVzY3JpcHRvcnMpCi0gICAgewotICAgICAgICB2YXIgdmFyaWFibGVzOwotICAgICAg
ICBpZiAodHlwZSA9PSAiZ2xvYmFsIikgewotICAgICAgICAgICAgdmFyaWFibGVzID0gIjxnbG9i
YWwgb2JqZWN0IHByb3BlcnRpZXMgb21pdHRlZD4iOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgdmFyIHZhckFycmF5ID0gW107Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHByb3BlcnR5RGVzY3JpcHRvcnMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICB2YXIg
ZCA9IHByb3BlcnR5RGVzY3JpcHRvcnNbaV07Ci0gICAgICAgICAgICAgICAgdmFyIHZhbHVlU3Ry
OwotICAgICAgICAgICAgICAgIGlmIChkLnZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChkLnZhbHVlLnZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVTdHIgPSBKU09O
LnN0cmluZ2lmeShkLnZhbHVlLnZhbHVlKTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICAgICAgdmFsdWVTdHIgPSAiPG5vIHN0cmluZyByZXByZXNlbnRhdGlv
bj4iOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVl
U3RyID0gIjxubyB2YWx1ZT4iOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB2
YXJBcnJheS5wdXNoKGQubmFtZSArICI6ICIgKyB2YWx1ZVN0cik7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB2YXJBcnJheS5zb3J0KCk7Ci0gICAgICAgICAgICB2YXJpYWJsZXMgPSB2YXJB
cnJheS5qb2luKCk7Ci0gICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
InNjb3BlQ2hhaW4gIyIgKyBwb3MgKyAiOiAiICsgdHlwZSArICI7ICIgKyB2YXJpYWJsZXMpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIGxvYWRBbmREdW1wU2NvcGVPYmplY3RzKHNjb3BlQ2hhaW4s
IGVuZCkgewotICAgICAgICBmdW5jdGlvbiBsb2FkU2NvcGVPYmplY3QocG9zLCBuZXh0KSB7Ci0g
ICAgICAgICAgICBpZiAocG9zID49IHNjb3BlQ2hhaW4ubGVuZ3RoKSB7Ci0gICAgICAgICAgICAg
ICAgbmV4dCgpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHZhciBzY29wZUpzb24gPSBzY29wZUNoYWluW3Bvc107Ci0gICAgICAgICAgICBSdW50
aW1lQWdlbnQuZ2V0UHJvcGVydGllcyhzY29wZUpzb24ub2JqZWN0Lm9iamVjdElkLCB0cnVlLCBk
aWRHZXRQcm9wZXJ0aWVzKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkR2V0UHJvcGVydGll
cyhlcnJvciwgcHJvcGVydHlEZXNjcmlwdG9ycykgewotICAgICAgICAgICAgICAgIGR1bXBGdW5j
dGlvblNjb3BlKHBvcywgc2NvcGVKc29uLnR5cGUsIHByb3BlcnR5RGVzY3JpcHRvcnMpOwotICAg
ICAgICAgICAgICAgIGxvYWRTY29wZU9iamVjdChwb3MgKyAxLCBuZXh0KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzY29wZUNoYWluKSB7Ci0gICAgICAgICAgICBs
b2FkU2NvcGVPYmplY3QoMCwgZW5kKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGR1
bXBGdW5jdGlvbk5vU2NvcGVzKCk7Ci0gICAgICAgICAgICBlbmQoKTsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHBlcmZvcm1TdGFuZGFyZFRlc3RDYXNlKHBhZ2VFeHByZXNzaW9u
LCBuZXh0KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UocGFnZUV4cHJl
c3Npb24sIGRpZEV2YWx1YXRlKTsKLQotICAgICAgICBmdW5jdGlvbiBkaWRFdmFsdWF0ZShyZW1v
dGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHBhZ2VF
eHByZXNzaW9uICsgIiB0eXBlID0gIiArIHJlbW90ZS50eXBlKTsKLSAgICAgICAgICAgIERlYnVn
Z2VyQWdlbnQuZ2V0RnVuY3Rpb25EZXRhaWxzKHJlbW90ZS5vYmplY3RJZCwgZGlkR2V0RGV0YWls
cyk7Ci0gICAgICAgIH0KLSAgICAgICAgZnVuY3Rpb24gZGlkR2V0RGV0YWlscyhlcnJvciwgcmVz
cG9uc2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGR1bXBGdW5jdGlvbkRldGFpbHMocmVzcG9u
c2UpOwotICAgICAgICAgICAgbG9hZEFuZER1bXBTY29wZU9iamVjdHMocmVzcG9uc2Uuc2NvcGVD
aGFpbiwgbmV4dCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkRl
YnVnZ2VyVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdEdldEZpcnN0TGluZUZ1bmN0
aW9uRGV0YWlscyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBwZXJmb3JtU3RhbmRhcmRU
ZXN0Q2FzZSgiZmlyc3RMaW5lRnVuY3Rpb24iLCBuZXh0KTsKLSAgICAgICAgfSwKLSAgICAgICAg
ZnVuY3Rpb24gdGVzdEdldE5vbkZpcnN0TGluZUZ1bmN0aW9uRGV0YWlscyhuZXh0KQotICAgICAg
ICB7Ci0gICAgICAgICAgICBwZXJmb3JtU3RhbmRhcmRUZXN0Q2FzZSgibm90Rmlyc3RMaW5lRnVu
Y3Rpb24iLCBuZXh0KTsKLSAgICAgICAgfSwKLSAgICAgICAgZnVuY3Rpb24gdGVzdEdldERldGFp
bHNPZkZ1bmN0aW9uV2l0aEluZmVycmVkTmFtZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBwZXJmb3JtU3RhbmRhcmRUZXN0Q2FzZSgib2JqLm0iLCBuZXh0KTsKLSAgICAgICAgfSwKLSAg
ICAgICAgZnVuY3Rpb24gdGVzdEdldERldGFpbHNPZkZ1bmN0aW9uV2l0aERpc3BsYXlOYW1lKG5l
eHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHBlcmZvcm1TdGFuZGFyZFRlc3RDYXNlKCJmdW5j
dGlvbldpdGhEaXNwbGF5TmFtZSIsIG5leHQpOwotICAgICAgICB9LAotICAgICAgICBmdW5jdGlv
biB0ZXN0U21hbGxDbG9zdXJlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHBlcmZvcm1T
dGFuZGFyZFRlc3RDYXNlKCJzbWFsbENsb3N1cmUiLCBuZXh0KTsKLSAgICAgICAgfSwKLSAgICAg
ICAgZnVuY3Rpb24gdGVzdEJpZ0Nsb3N1cmUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
cGVyZm9ybVN0YW5kYXJkVGVzdENhc2UoImJpZ0Nsb3N1cmUiLCBuZXh0KTsKLSAgICAgICAgfQot
ICAgIF0pOwotfTsKLQotPC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBEZWJ1Z2dlci5nZXRGdW5jdGlvbkRldGFpbHMgY29tbWFu
ZCByZXR1cm5zIGNvcnJlY3QgbG9jYXRpb24uCi08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE4MDgiPkJ1ZyA3MTgwODwvYT4KLTwvcD4KLQotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xp
bmtpZmllci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGlu
a2lmaWVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGRlNDM3
OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGlua2lmaWVy
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIHRoYXQg
TGlua2lmaWVyIHdvcmtzIGNvcnJlY3RseS4KLQotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1UaGUg
c3RyaW5nICJhdCB0cmlnZ2VyRXJyb3IgKGh0dHA6Ly9sb2NhbGhvc3Qvc2hvdy86MjI6MTEpICIg
bGlua2lmaWVzIHRvIHVybDogaHR0cDovL2xvY2FsaG9zdC9zaG93LwotVGhlIGxpbmVOdW1iZXIg
aXMgMjIgd2l0aCB0eXBlIG51bWJlcgotbGlzdGVuZXJzIGFkZGVkIG9uIHJhdyBzb3VyY2UgY29k
ZTogMQotb3JpZ2luYWwgbG9jYXRpb246IGxpbmtpZmllci5odG1sOjkKLXByZXR0eSBwcmludGVk
IGxvY2F0aW9uOiBsaW5raWZpZXIuaHRtbDoxMgotcmV2ZXJ0ZWQgbG9jYXRpb246IGxpbmtpZmll
ci5odG1sOjkKLWxpc3RlbmVycyByZW1vdmVkIGZyb20gcmF3IHNvdXJjZSBjb2RlOiAxCi1EZWJ1
Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9saW5raWZpZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9s
aW5raWZpZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWRmZGFlZC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGlua2lmaWVyLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGR1bW15U2NyaXB0KCkKLXsKLSAg
ICBjb25zb2xlLmxvZygiZHVtbXkgc3RyaW5nIik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qod2FpdEZvclNjcmlwdHMpOwotCi0g
ICAgdmFyIGxpbmtpZmllcjsKLSAgICB2YXIgbGluazsKLSAgICB2YXIgc2NyaXB0OwotICAgIHZh
ciB1aVNvdXJjZUNvZGU7Ci0KLSAgICBmdW5jdGlvbiB3YWl0Rm9yU2NyaXB0cygpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImxpbmtpZmllci5odG1sIiwg
ZGVidWdnZXJUZXN0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkZWJ1Z2dlclRlc3QoKQotICAg
IHsKLSAgICAgICAgdmFyIHNjcmlwdHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3Jp
cHRzOwotICAgICAgICBmb3IgKHZhciBzY3JpcHRJZCBpbiBzY3JpcHRzKSB7Ci0gICAgICAgICAg
ICB2YXIgc2NyaXB0Q2FuZGlkYXRlID0gc2NyaXB0c1tzY3JpcHRJZF07Ci0gICAgICAgICAgICBp
ZiAoc2NyaXB0Q2FuZGlkYXRlLnNvdXJjZVVSTCA9PT0gV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBh
Z2VVUkwgJiYgc2NyaXB0Q2FuZGlkYXRlLmxpbmVPZmZzZXQgPT09IDQpIHsKLSAgICAgICAgICAg
ICAgICBzY3JpcHQgPSBzY3JpcHRDYW5kaWRhdGU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHVpU291cmNlQ29kZSA9
IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yT3JpZ2luVVJMKFdlYkluc3Bl
Y3Rvci5pbnNwZWN0ZWRQYWdlVVJMKTsKLSAgICAgICAgdmFyIGxpbmtpZnlNZSA9ICJhdCB0cmln
Z2VyRXJyb3IgKGh0dHA6Ly9sb2NhbGhvc3Qvc2hvdy86MjI6MTEpIjsKLSAgICAgICAgdmFyIGZy
YWdtZW50ID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50KGxpbmtpZnlNZSk7
Ci0gICAgICAgIHZhciBhbmNob3IgPSBmcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdhJyk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUaGUgc3RyaW5nIFwiIiArIGxpbmtpZnlNZSAr
ICIgXCIgbGlua2lmaWVzIHRvIHVybDogIiArIGFuY2hvci5ocmVmKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlRoZSBsaW5lTnVtYmVyIGlzICIgKyBhbmNob3IubGluZU51bWJl
ciArICIgd2l0aCB0eXBlICIgKyAodHlwZW9mIGFuY2hvci5saW5lTnVtYmVyKSk7Ci0KLSAgICAg
ICAgbGlua2lmaWVyID0gbmV3IFdlYkluc3BlY3Rvci5MaW5raWZpZXIoKTsKLSAgICAgICAgdmFy
IGNvdW50MSA9IGxpdmVMb2NhdGlvbnNDb3VudCgpOwotICAgICAgICBsaW5rID0gbGlua2lmaWVy
LmxpbmtpZnlMb2NhdGlvbihXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTCwgOCwgMCwgImR1
bW15LWNsYXNzIik7Ci0gICAgICAgIHZhciBjb3VudDIgPSBsaXZlTG9jYXRpb25zQ291bnQoKTsK
LQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgibGlzdGVuZXJzIGFkZGVkIG9uIHJh
dyBzb3VyY2UgY29kZTogIiArIChjb3VudDIgLSBjb3VudDEpKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIm9yaWdpbmFsIGxvY2F0aW9uOiAiICsgbGluay50ZXh0Q29udGVudCk7
Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKGxpbmtpZmllci5fZm9ybWF0dGVy
LCAiZm9ybWF0TGl2ZUFuY2hvciIsIGxpbmtVcGRhdGVkKTsKLSAgICAgICAgdWlTb3VyY2VDb2Rl
LnNldEZvcm1hdHRlZCh0cnVlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBsaW5rVXBkYXRlZCgp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicHJldHR5IHByaW50ZWQg
bG9jYXRpb246ICIgKyBsaW5rLnRleHRDb250ZW50KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRTbmlmZmVyKGxpbmtpZmllci5fZm9ybWF0dGVyLCAiZm9ybWF0TGl2ZUFuY2hvciIsIGxpbmtS
ZXZlcnRlZCk7Ci0gICAgICAgIHVpU291cmNlQ29kZS5zZXRGb3JtYXR0ZWQoZmFsc2UpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIGxpbmtSZXZlcnRlZCgpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgicmV2ZXJ0ZWQgbG9jYXRpb246ICIgKyBsaW5rLnRleHRDb250ZW50
KTsKLQotICAgICAgICB2YXIgY291bnQxID0gbGl2ZUxvY2F0aW9uc0NvdW50KCk7Ci0gICAgICAg
IGxpbmtpZmllci5yZXNldCgpOwotICAgICAgICB2YXIgY291bnQyID0gbGl2ZUxvY2F0aW9uc0Nv
dW50KCk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImxpc3RlbmVycyByZW1v
dmVkIGZyb20gcmF3IHNvdXJjZSBjb2RlOiAiICsgKGNvdW50MSAtIGNvdW50MikpOwotCi0gICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBsaXZlTG9jYXRpb25zQ291bnQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHNjcmlw
dC5fbG9jYXRpb25zLnNpemUoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgTGlua2lmaWVyIHdvcmtz
IGNvcnJlY3RseS4KLTxwPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNWEyNmQ3Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtw
b2ludHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjM4ICswLDAgQEAKLVRlc3Rz
IGJyZWFrcG9pbnRzIGFyZSBjb3JyZWN0bHkgZGltbWVkIGFuZCByZXN0b3JlZCBpbiBKYXZhU2Ny
aXB0U291cmNlRnJhbWUgZHVyaW5nIGxpdmUgZWRpdC4KLQotQnVnIDk5NTk4Ci1EZWJ1Z2dlciB3
YXMgZW5hYmxlZC4KLQotUnVubmluZzogdGVzdEVkaXRVbmRvCi1TZXR0aW5nIGJyZWFrcG9pbnQ6
Ci0gICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9
IGZhbHNlKQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUt
YnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVlCi0gICAgRHVtcGluZyBicmVha3BvaW50IGxv
Y2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6
IDIsIHByb2plY3QgdHlwZTogbmV0d29yaywgcHJvamVjdCBpZDogZmlsZTovLwotICAgIER1bXBp
bmcgYnJlYWtwb2ludHMKLSAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5l
TnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IG5ldHdvcmssIHByb2plY3QgaWQ6IGZpbGU6Ly8KLUVk
aXRpbmcgc291cmNlOgotICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVy
ID0gMikKLSAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2Fi
bGVkID0gdHJ1ZSkKLSAgICBPcmlnaW5hbFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVt
YmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFn
ZQotICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVuYWJsZWQ6dHJ1ZQotICAgIER1
bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9p
bnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IGRlYnVnZ2VyLCBwcm9qZWN0IGlk
OiBkZWJ1Z2dlcjoKLSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0gICAgICAgIHVybDogZWRpdC1t
ZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBuZXR3b3JrLCBw
cm9qZWN0IGlkOiBmaWxlOi8vCi1VbmRvaW5nIHNvdXJjZSBlZGl0aW5nOgotICAgIE9yaWdpbmFs
VGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQotICAgIFRleHRFZGl0
b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKLSAgICBUZXh0RWRpdG9yLnJlbW92
ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCi0gICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50
KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQotICAgIER1bXBpbmcgYnJlYWtwb2lu
dCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVl
Ci0gICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUt
YnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogbmV0d29yaywgcHJv
amVjdCBpZDogZmlsZTovLwotICAgIER1bXBpbmcgYnJlYWtwb2ludHMKLSAgICAgICAgdXJsOiBl
ZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IG5ldHdv
cmssIHByb2plY3QgaWQ6IGZpbGU6Ly8KLUZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoKLSAg
ICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCi0gICAgRHVtcGlu
ZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0g
ICAgRHVtcGluZyBicmVha3BvaW50cwotCi1SdW5uaW5nOiB0ZXN0RWRpdENvbW1pdAotU2V0dGlu
ZyBicmVha3BvaW50OgotICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0g
MiwgZGlzYWJsZWQgPSBmYWxzZSkKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAg
ICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVuYWJsZWQ6dHJ1ZQotICAgIER1bXBpbmcg
YnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpz
LCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IG5ldHdvcmssIHByb2plY3QgaWQ6IGZpbGU6
Ly8KLSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0gICAgICAgIHVybDogZWRpdC1tZS1icmVha3Bv
aW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBuZXR3b3JrLCBwcm9qZWN0IGlk
OiBmaWxlOi8vCi1FZGl0aW5nIHNvdXJjZToKLSAgICBPcmlnaW5hbFRleHRFZGl0b3IuYWRkQnJl
YWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKLSAgICBUZXh0RWRpdG9y
LnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCi0gICAgVGV4dEVkaXRvci5hZGRCcmVh
a3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IHRydWUpCi0gICAgRHVtcGluZyBicmVh
a3BvaW50IHN0b3JhZ2UKLSAgICAgICAgZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVk
OnRydWUKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRp
dC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBkZWJ1Z2dl
ciwgcHJvamVjdCBpZDogZGVidWdnZXI6Ci0gICAgRHVtcGluZyBicmVha3BvaW50cwotICAgICAg
ICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlw
ZTogbmV0d29yaywgcHJvamVjdCBpZDogZmlsZTovLwotQ29tbWl0dGluZyBlZGl0ZWQgc291cmNl
OgotICAgIE9yaWdpbmFsVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAy
KQotICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKLSAgICBU
ZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCi0gICAgVGV4dEVkaXRv
ci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQotICAgIER1
bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6
MiwgZW5hYmxlZDp0cnVlCi0gICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAg
ICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlw
ZTogbmV0d29yaywgcHJvamVjdCBpZDogZmlsZTovLwotICAgIER1bXBpbmcgYnJlYWtwb2ludHMK
LSAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9q
ZWN0IHR5cGU6IG5ldHdvcmssIHByb2plY3QgaWQ6IGZpbGU6Ly8KLUZpbmFsbHkgcmVtb3Zpbmcg
YnJlYWtwb2ludDoKLSAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9
IDIpCi0gICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICBEdW1waW5nIGJyZWFrcG9p
bnQgbG9jYXRpb25zCi0gICAgRHVtcGluZyBicmVha3BvaW50cwotCi1SdW5uaW5nOiB0ZXN0RWRp
dENvbW1pdEZhaWxFZGl0Q29tbWl0Ci1TZXR0aW5nIGJyZWFrcG9pbnQ6Ci0gICAgVGV4dEVkaXRv
ci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQotICAgIER1
bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6
MiwgZW5hYmxlZDp0cnVlCi0gICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAg
ICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlw
ZTogbmV0d29yaywgcHJvamVjdCBpZDogZmlsZTovLwotICAgIER1bXBpbmcgYnJlYWtwb2ludHMK
LSAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9q
ZWN0IHR5cGU6IG5ldHdvcmssIHByb2plY3QgaWQ6IGZpbGU6Ly8KLUVkaXRpbmcgc291cmNlOgot
ICAgIE9yaWdpbmFsVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNh
YmxlZCA9IGZhbHNlKQotICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVy
ID0gMikKLSAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2Fi
bGVkID0gdHJ1ZSkKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBlZGl0
LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVuYWJsZWQ6dHJ1ZQotICAgIER1bXBpbmcgYnJlYWtwb2lu
dCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVt
YmVyOiAyLCBwcm9qZWN0IHR5cGU6IGRlYnVnZ2VyLCBwcm9qZWN0IGlkOiBkZWJ1Z2dlcjoKLSAg
ICBEdW1waW5nIGJyZWFrcG9pbnRzCi0gICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5q
cywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBuZXR3b3JrLCBwcm9qZWN0IGlkOiBmaWxl
Oi8vCi1Db21taXR0aW5nIGVkaXRlZCBzb3VyY2U6Ci0gICAgRHVtcGluZyBicmVha3BvaW50IHN0
b3JhZ2UKLSAgICAgICAgZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRydWUKLSAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS1icmVh
a3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBkZWJ1Z2dlciwgcHJvamVj
dCBpZDogZGVidWdnZXI6Ci0gICAgRHVtcGluZyBicmVha3BvaW50cwotICAgICAgICB1cmw6IGVk
aXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogbmV0d29y
aywgcHJvamVjdCBpZDogZmlsZTovLwotRWRpdGluZyBzb3VyY2UgYWdhaW4gc28gdGhhdCBsaXZl
IGVkaXQgY291bGQgc3VjY2VlZDoKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAg
ICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVuYWJsZWQ6dHJ1ZQotICAgIER1bXBpbmcg
YnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpz
LCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IGRlYnVnZ2VyLCBwcm9qZWN0IGlkOiBkZWJ1
Z2dlcjoKLSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0gICAgICAgIHVybDogZWRpdC1tZS1icmVh
a3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBuZXR3b3JrLCBwcm9qZWN0
IGlkOiBmaWxlOi8vCi1Db21taXR0aW5nIGVkaXRlZCBzb3VyY2UgYWdhaW46Ci0gICAgT3JpZ2lu
YWxUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCi0gICAgVGV4dEVk
aXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQotICAgIFRleHRFZGl0b3IucmVt
b3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKLSAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9p
bnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCi0gICAgRHVtcGluZyBicmVha3Bv
aW50IHN0b3JhZ2UKLSAgICAgICAgZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRy
dWUKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1t
ZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBuZXR3b3JrLCBw
cm9qZWN0IGlkOiBmaWxlOi8vCi0gICAgRHVtcGluZyBicmVha3BvaW50cwotICAgICAgICB1cmw6
IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogbmV0
d29yaywgcHJvamVjdCBpZDogZmlsZTovLwotRmluYWxseSByZW1vdmluZyBicmVha3BvaW50Ogot
ICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKLSAgICBEdW1w
aW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMK
LSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0KLVJ1bm5pbmc6IHRlc3RFZGl0Q29tbWl0RmFpbFVu
ZG9Db21taXQKLVNldHRpbmcgYnJlYWtwb2ludDoKLSAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9p
bnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCi0gICAgRHVtcGluZyBicmVha3Bv
aW50IHN0b3JhZ2UKLSAgICAgICAgZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRy
dWUKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1t
ZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBuZXR3b3JrLCBw
cm9qZWN0IGlkOiBmaWxlOi8vCi0gICAgRHVtcGluZyBicmVha3BvaW50cwotICAgICAgICB1cmw6
IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogbmV0
d29yaywgcHJvamVjdCBpZDogZmlsZTovLwotRWRpdGluZyBzb3VyY2U6Ci0gICAgT3JpZ2luYWxU
ZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2Up
Ci0gICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQotICAgIFRl
eHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSB0cnVlKQot
ICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUtYnJlYWtwb2lu
dHMuanM6MiwgZW5hYmxlZDp0cnVlCi0gICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwot
ICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2pl
Y3QgdHlwZTogZGVidWdnZXIsIHByb2plY3QgaWQ6IGRlYnVnZ2VyOgotICAgIER1bXBpbmcgYnJl
YWtwb2ludHMKLSAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVy
OiAyLCBwcm9qZWN0IHR5cGU6IG5ldHdvcmssIHByb2plY3QgaWQ6IGZpbGU6Ly8KLUNvbW1pdHRp
bmcgZWRpdGVkIHNvdXJjZToKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAg
ICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVuYWJsZWQ6dHJ1ZQotICAgIER1bXBpbmcgYnJl
YWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBs
aW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IGRlYnVnZ2VyLCBwcm9qZWN0IGlkOiBkZWJ1Z2dl
cjoKLSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0gICAgICAgIHVybDogZWRpdC1tZS1icmVha3Bv
aW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBuZXR3b3JrLCBwcm9qZWN0IGlk
OiBmaWxlOi8vCi1VbmRvaW5nIHNvdXJjZSBlZGl0aW5nOgotICAgIER1bXBpbmcgYnJlYWtwb2lu
dCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVl
Ci0gICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUt
YnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogZGVidWdnZXIsIHBy
b2plY3QgaWQ6IGRlYnVnZ2VyOgotICAgIER1bXBpbmcgYnJlYWtwb2ludHMKLSAgICAgICAgdXJs
OiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IG5l
dHdvcmssIHByb2plY3QgaWQ6IGZpbGU6Ly8KLUNvbW1pdHRpbmcgZWRpdGVkIHNvdXJjZSBhZ2Fp
bjoKLSAgICBPcmlnaW5hbFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0g
MikKLSAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCi0gICAg
VGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQotICAgIFRleHRFZGl0
b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKLSAgICBE
dW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpz
OjIsIGVuYWJsZWQ6dHJ1ZQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAg
ICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5
cGU6IG5ldHdvcmssIHByb2plY3QgaWQ6IGZpbGU6Ly8KLSAgICBEdW1waW5nIGJyZWFrcG9pbnRz
Ci0gICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJv
amVjdCB0eXBlOiBuZXR3b3JrLCBwcm9qZWN0IGlkOiBmaWxlOi8vCi1GaW5hbGx5IHJlbW92aW5n
IGJyZWFrcG9pbnQ6Ci0gICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIg
PSAyKQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgRHVtcGluZyBicmVha3Bv
aW50IGxvY2F0aW9ucwotICAgIER1bXBpbmcgYnJlYWtwb2ludHMKLQotUnVubmluZzogdGVzdEVk
aXRBbm9ueW1vdXNVbmRvCi1TZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCi1TY3JpcHQgZXhl
Y3V0aW9uIHBhdXNlZC4KLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KLVNob3dpbmcgc2NyaXB0
IHNvdXJjZToKLVNldHRpbmcgYnJlYWtwb2ludDoKLSAgICBPcmlnaW5hbFRleHRFZGl0b3IuYWRk
QnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKLSAgICBEdW1waW5n
IGJyZWFrcG9pbnQgc3RvcmFnZQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAg
ICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogZGVidWdnZXIsIHByb2pl
Y3QgaWQ6IGRlYnVnZ2VyOgotICAgIER1bXBpbmcgYnJlYWtwb2ludHMKLSAgICAgICAgdXJsOiAs
IGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogZGVidWdnZXIsIHByb2plY3QgaWQ6IGRlYnVn
Z2VyOgotRWRpdGluZyBzb3VyY2U6Ci0gICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogLCBsaW5lTnVtYmVy
OiAyLCBwcm9qZWN0IHR5cGU6IGRlYnVnZ2VyLCBwcm9qZWN0IGlkOiBkZWJ1Z2dlcjoKLSAgICBE
dW1waW5nIGJyZWFrcG9pbnRzCi0gICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0
IHR5cGU6IGRlYnVnZ2VyLCBwcm9qZWN0IGlkOiBkZWJ1Z2dlcjoKLVVuZG9pbmcgc291cmNlIGVk
aXRpbmc6Ci0gICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICBEdW1waW5nIGJyZWFr
cG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5
cGU6IGRlYnVnZ2VyLCBwcm9qZWN0IGlkOiBkZWJ1Z2dlcjoKLSAgICBEdW1waW5nIGJyZWFrcG9p
bnRzCi0gICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IGRlYnVnZ2Vy
LCBwcm9qZWN0IGlkOiBkZWJ1Z2dlcjoKLUZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoKLSAg
ICBPcmlnaW5hbFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKLSAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2Nh
dGlvbnMKLSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0KLVJ1bm5pbmc6IHRlc3RFZGl0RHluYW1p
Y0Fub255bW91c1VuZG8KLVNldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlvbi4KLVNjcmlwdCBleGVj
dXRpb24gcGF1c2VkLgotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotU2hvd2luZyBzY3JpcHQg
c291cmNlOgotU2V0dGluZyBicmVha3BvaW50OgotICAgIE9yaWdpbmFsVGV4dEVkaXRvci5hZGRC
cmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQotICAgIER1bXBpbmcg
YnJlYWtwb2ludCBzdG9yYWdlCi0gICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAg
ICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBkZWJ1Z2dlciwgcHJvamVj
dCBpZDogZGVidWdnZXI6Ci0gICAgRHVtcGluZyBicmVha3BvaW50cwotICAgICAgICB1cmw6ICwg
bGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBkZWJ1Z2dlciwgcHJvamVjdCBpZDogZGVidWdn
ZXI6Ci1FZGl0aW5nIHNvdXJjZToKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAg
IER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6
IDIsIHByb2plY3QgdHlwZTogZGVidWdnZXIsIHByb2plY3QgaWQ6IGRlYnVnZ2VyOgotICAgIER1
bXBpbmcgYnJlYWtwb2ludHMKLSAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIHByb2plY3Qg
dHlwZTogZGVidWdnZXIsIHByb2plY3QgaWQ6IGRlYnVnZ2VyOgotVW5kb2luZyBzb3VyY2UgZWRp
dGluZzoKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgIER1bXBpbmcgYnJlYWtw
b2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlw
ZTogZGVidWdnZXIsIHByb2plY3QgaWQ6IGRlYnVnZ2VyOgotICAgIER1bXBpbmcgYnJlYWtwb2lu
dHMKLSAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogZGVidWdnZXIs
IHByb2plY3QgaWQ6IGRlYnVnZ2VyOgotRmluYWxseSByZW1vdmluZyBicmVha3BvaW50OgotICAg
IE9yaWdpbmFsVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQotICAg
IER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0
aW9ucwotICAgIER1bXBpbmcgYnJlYWtwb2ludHMKLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVh
a3BvaW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1i
cmVha3BvaW50cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTdmYmJiLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJl
YWtwb2ludHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ0NSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9saXZlLWVkaXQtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2VkaXQtbWUtYnJlYWtwb2ludHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1
bmN0aW9uIGxvYWREeW5hbWljQW5vbnltb3VzU2NyaXB0KCkKLXsKLSAgICBmdW5jdGlvbiB0ZXN0
RnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgZGVidWdnZXI7Ci0gICAgfQotICAgIHZhciBzY3Jp
cHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Ci0gICAgc2NyaXB0
RWxlbWVudC50ZXh0Q29udGVudCA9IFN0cmluZyh0ZXN0RnVuY3Rpb24pOwotICAgIGRvY3VlbW50
LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0RWxlbWVudCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQot
ewotICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsgIAot
Ci0gICAgZnVuY3Rpb24gcGF0aFRvRmlsZU5hbWUocGF0aCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBwYXRoLnN1YnN0cmluZyhwYXRoLmxhc3RJbmRleE9mKCIvIikgKyAxKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKQotICAgIHsKLSAg
ICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2VyID0gV2ViSW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5h
Z2VyOwotICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSBicmVha3BvaW50TWFuYWdlci5fc3RvcmFn
ZS5fc2V0dGluZy5nZXQoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBE
dW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZSIpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGJyZWFrcG9pbnRzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiAgICAgICAgIiArIHBhdGhUb0ZpbGVOYW1lKGJyZWFrcG9pbnRzW2ldLnNvdXJjZUZp
bGVJZCkgKyAiOiIgKyBicmVha3BvaW50c1tpXS5saW5lTnVtYmVyICsgIiwgZW5hYmxlZDoiICsg
YnJlYWtwb2ludHNbaV0uZW5hYmxlZCk7Ci0KLSAgICAgICAgdmFyIGJyZWFrcG9pbnRNYW5hZ2Vy
ID0gV2ViSW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5hZ2VyOwotICAgICAgICBsb2NhdGlvbnMgPSBi
cmVha3BvaW50TWFuYWdlci5hbGxCcmVha3BvaW50TG9jYXRpb25zKCk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucyIpOwot
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxvY2F0aW9ucy5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgdmFyIHVpTG9jYXRpb24gPSBsb2NhdGlvbnNbaV0udWlMb2NhdGlvbjsKLSAgICAg
ICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB1aUxvY2F0aW9uLnVpU291cmNlQ29kZTsKLSAgICAg
ICAgICAgIHZhciBvcmlnaW5VUkwgPSB1aVNvdXJjZUNvZGUub3JpZ2luVVJMKCk7Ci0gICAgICAg
ICAgICB2YXIgbGluZU51bWJlciA9IHVpTG9jYXRpb24ubGluZU51bWJlcjsKLSAgICAgICAgICAg
IHZhciBwcm9qZWN0ID0gdWlTb3VyY2VDb2RlLnByb2plY3QoKTsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIgICAgICAgIHVybDogIiArIHBhdGhUb0ZpbGVOYW1lKG9yaWdp
blVSTCkgKyAiLCBsaW5lTnVtYmVyOiAiICsgbGluZU51bWJlciArICIsIHByb2plY3QgdHlwZTog
IiArIHByb2plY3QudHlwZSgpICsgIiwgcHJvamVjdCBpZDogIiArIHByb2plY3QuaWQoKSk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBicmVha3BvaW50cyA9IGJyZWFrcG9pbnRNYW5hZ2VyLmFsbEJy
ZWFrcG9pbnRzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgRHVtcGlu
ZyBicmVha3BvaW50cyIpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyZWFrcG9pbnRz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9IGJyZWFrcG9pbnRz
W2ldOwotICAgICAgICAgICAgdmFyIHByaW1hcnlVSUxvY2F0aW9uID0gYnJlYWtwb2ludC5wcmlt
YXJ5VUlMb2NhdGlvbigpOwotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHByaW1hcnlV
SUxvY2F0aW9uLnVpU291cmNlQ29kZTsKLSAgICAgICAgICAgIHZhciBvcmlnaW5VUkwgPSB1aVNv
dXJjZUNvZGUub3JpZ2luVVJMKCk7Ci0gICAgICAgICAgICB2YXIgbGluZU51bWJlciA9IHByaW1h
cnlVSUxvY2F0aW9uLmxpbmVOdW1iZXI7Ci0gICAgICAgICAgICB2YXIgcHJvamVjdCA9IHVpU291
cmNlQ29kZS5wcm9qZWN0KCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
ICAgICAgICB1cmw6ICIgKyBwYXRoVG9GaWxlTmFtZShvcmlnaW5VUkwpICsgIiwgbGluZU51bWJl
cjogIiArIGxpbmVOdW1iZXIgKyAiLCBwcm9qZWN0IHR5cGU6ICIgKyBwcm9qZWN0LnR5cGUoKSAr
ICIsIHByb2plY3QgaWQ6ICIgKyBwcm9qZWN0LmlkKCkpOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gYWRkQnJlYWtwb2ludFNuaWZmZXIobGluZU51bWJlciwgZGlzYWJsZWQpCi0g
ICAgewotICAgICAgICB2YXIgcHJlZml4ID0gdGhpcy5tYWluID8gIiIgOiAiT3JpZ2luYWwiOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICIgKyBwcmVmaXggKyAiVGV4dEVk
aXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAiICsgbGluZU51bWJlciArICIsIGRpc2Fi
bGVkID0gIiArIGRpc2FibGVkICsgIikiKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiByZW1vdmVC
cmVha3BvaW50U25pZmZlcihsaW5lTnVtYmVyKQotICAgIHsKLSAgICAgICAgdmFyIHByZWZpeCA9
IHRoaXMubWFpbiA/ICIiIDogIk9yaWdpbmFsIjsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiAgICAiICsgcHJlZml4ICsgIlRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5l
TnVtYmVyID0gIiArIGxpbmVOdW1iZXIgKyAiKSIpOwotICAgIH0KLQotICAgIFdlYkluc3BlY3Rv
ci5icmVha3BvaW50TWFuYWdlci5fc3RvcmFnZS5fYnJlYWtwb2ludHMgPSB7fTsKLSAgICBJbnNw
ZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkRlZmF1bHRUZXh0RWRpdG9yLnByb3Rv
dHlwZSwgImFkZEJyZWFrcG9pbnQiLCBhZGRCcmVha3BvaW50U25pZmZlciwgdHJ1ZSk7Ci0gICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5EZWZhdWx0VGV4dEVkaXRvci5w
cm90b3R5cGUsICJyZW1vdmVCcmVha3BvaW50IiwgcmVtb3ZlQnJlYWtwb2ludFNuaWZmZXIsIHRy
dWUpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZShbCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RFZGl0VW5kbyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIg
amF2YVNjcmlwdFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdCwgb3JpZ2luYWxKYXZh
U2NyaXB0U291cmNlRnJhbWUsIG9yaWdpbmFsVUlTb3VyY2VDb2RlOwotCi0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImVkaXQtbWUtYnJlYWtwb2ludHMuanMiLCBk
aWRTaG93U2NyaXB0U291cmNlKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1Njcmlw
dFNvdXJjZShzb3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBqYXZh
U2NyaXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAgICAgICAgICAgICAgICB1aVNvdXJj
ZUNvZGUgPSBzb3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIGphdmFT
Y3JpcHRTb3VyY2VGcmFtZS5fdGV4dEVkaXRvci5tYWluID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0dGluZyBicmVh
a3BvaW50OiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUsICJfYWRkUmVz
b2x2ZWRMb2NhdGlvbiIsIGJyZWFrcG9pbnRSZXNvbHZlZCk7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZXRCcmVha3BvaW50KHNvdXJjZUZyYW1lLCAyLCAiIiwgdHJ1ZSk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRSZXNvbHZlZChsb2Nh
dGlvbikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzY3JpcHQgPSBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JJZChsb2NhdGlvbi5zY3JpcHRJZCk7Ci0KLSAgICAg
ICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRWRpdGluZyBzb3VyY2U6Iik7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXBsYWNlSW5Tb3VyY2UoamF2YVNjcmlwdFNvdXJj
ZUZyYW1lLCAifSIsICJ9Ly8iKTsKLQotICAgICAgICAgICAgICAgIG9yaWdpbmFsVUlTb3VyY2VD
b2RlID0gc2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGxvY2F0aW9uLmxpbmVOdW1iZXIp
LnVpU291cmNlQ29kZTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dVSVNvdXJj
ZUNvZGUob3JpZ2luYWxVSVNvdXJjZUNvZGUsIGRpZFNob3dPcmlnaW5hbFVJU291cmNlQ29kZSk7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dPcmlnaW5hbFVJ
U291cmNlQ29kZShzb3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBv
cmlnaW5hbEphdmFTY3JpcHRTb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1lOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShvcmlnaW5hbEphdmFTY3JpcHRTb3VyY2VGcmFt
ZSAhPT0gamF2YVNjcmlwdFNvdXJjZUZyYW1lLCAiRWRpdGVkIGFuZCBvcmlnaW5hbCBqYXZhU2Ny
aXB0U291cmNlRnJhbWVzIHNob3VsZCBkaWZmZXIuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRUcnVlKG9yaWdpbmFsVUlTb3VyY2VDb2RlICE9PSB1aVNvdXJjZUNvZGUs
ICJFZGl0ZWQgYW5kIG9yaWdpbmFsIHVpU291cmNlQ29kZXMgc2hvdWxkIGRpZmZlci4iKTsKLQot
ICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVbmRvaW5nIHNvdXJjZSBlZGl0
aW5nOiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUsICJfYWRkUmVzb2x2
ZWRMb2NhdGlvbiIsIGJyZWFrcG9pbnRSZXNvbHZlZEFnYWluKTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnVuZG9Tb3VyY2VFZGl0aW5nKGphdmFTY3JpcHRTb3VyY2VGcmFtZSk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRSZXNvbHZlZEFn
YWluKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3Jh
Z2VBbmRMb2NhdGlvbnMoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiRmluYWxseSByZW1vdmluZyBicmVha3BvaW50OiIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QucmVtb3ZlQnJlYWtwb2ludChqYXZhU2NyaXB0U291cmNlRnJhbWUsIDIpOwotCi0g
ICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0gICAg
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RFZGl0Q29tbWl0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZh
ciBqYXZhU2NyaXB0U291cmNlRnJhbWUsIHVpU291cmNlQ29kZSwgc2NyaXB0LCBvcmlnaW5hbEph
dmFTY3JpcHRTb3VyY2VGcmFtZSwgb3JpZ2luYWxVSVNvdXJjZUNvZGU7Ci0KLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiZWRpdC1tZS1icmVha3BvaW50cy5qcyIs
IGRpZFNob3dTY3JpcHRTb3VyY2UpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2Ny
aXB0U291cmNlKHNvdXJjZUZyYW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGph
dmFTY3JpcHRTb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1lOwotICAgICAgICAgICAgICAgIHVpU291
cmNlQ29kZSA9IHNvdXJjZUZyYW1lLl91aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldHRpbmcgYnJlYWtwb2lu
dDoiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2FkZFJlc29sdmVk
TG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWQpOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Quc2V0QnJlYWtwb2ludChzb3VyY2VGcmFtZSwgMiwgIiIsIHRydWUpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50UmVzb2x2ZWQobG9jYXRpb24p
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQobG9jYXRpb24uc2NyaXB0SWQpOwotCi0gICAgICAgICAg
ICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVkaXRpbmcgc291cmNlOiIpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QucmVwbGFjZUluU291cmNlKGphdmFTY3JpcHRTb3VyY2VGcmFt
ZSwgIn0iLCAifS8vIik7Ci0KLSAgICAgICAgICAgICAgICBvcmlnaW5hbFVJU291cmNlQ29kZSA9
IHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihsb2NhdGlvbi5saW5lTnVtYmVyKS51aVNv
dXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2Rl
KG9yaWdpbmFsVUlTb3VyY2VDb2RlLCBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93T3JpZ2luYWxVSVNvdXJj
ZUNvZGUoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgb3JpZ2lu
YWxKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgIT09
IGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgamF2YVNjcmlwdFNv
dXJjZUZyYW1lcyBzaG91bGQgZGlmZmVyLiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0VHJ1ZShvcmlnaW5hbFVJU291cmNlQ29kZSAhPT0gdWlTb3VyY2VDb2RlLCAiRWRp
dGVkIGFuZCBvcmlnaW5hbCB1aVNvdXJjZUNvZGVzIHNob3VsZCBkaWZmZXIuIik7Ci0KLSAgICAg
ICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ29tbWl0dGluZyBlZGl0ZWQgc291cmNl
OiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUsICJfYWRkUmVzb2x2ZWRM
b2NhdGlvbiIsIGJyZWFrcG9pbnRSZXNvbHZlZEFnYWluKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbW1pdFNvdXJjZShqYXZhU2NyaXB0U291cmNlRnJhbWUpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50UmVzb2x2ZWRBZ2FpbigpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9j
YXRpb25zKCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZpbmFs
bHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnJlbW92ZUJyZWFrcG9pbnQoamF2YVNjcmlwdFNvdXJjZUZyYW1lLCAyKTsKLQotICAgICAgICAg
ICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwotICAgICAgICAgICAg
ICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlv
biB0ZXN0RWRpdENvbW1pdEZhaWxFZGl0Q29tbWl0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHZhciBqYXZhU2NyaXB0U291cmNlRnJhbWUsIHVpU291cmNlQ29kZSwgc2NyaXB0LCBvcmln
aW5hbEphdmFTY3JpcHRTb3VyY2VGcmFtZSwgb3JpZ2luYWxVSVNvdXJjZUNvZGU7Ci0KLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiZWRpdC1tZS1icmVha3BvaW50
cy5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRT
aG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGphdmFTY3JpcHRTb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1lOwotICAgICAgICAgICAgICAg
IHVpU291cmNlQ29kZSA9IHNvdXJjZUZyYW1lLl91aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldHRpbmcgYnJl
YWtwb2ludDoiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2FkZFJl
c29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWQpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2V0QnJlYWtwb2ludChzb3VyY2VGcmFtZSwgMiwgIiIsIHRydWUpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50UmVzb2x2ZWQobG9j
YXRpb24pCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc2NyaXB0ID0gV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQobG9jYXRpb24uc2NyaXB0SWQpOwotCi0gICAg
ICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVkaXRpbmcgc291cmNlOiIpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVwbGFjZUluU291cmNlKGphdmFTY3JpcHRTb3Vy
Y2VGcmFtZSwgIn0iLCAiLy99Iik7Ci0KLSAgICAgICAgICAgICAgICBvcmlnaW5hbFVJU291cmNl
Q29kZSA9IHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihsb2NhdGlvbi5saW5lTnVtYmVy
KS51aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlTb3Vy
Y2VDb2RlKG9yaWdpbmFsVUlTb3VyY2VDb2RlLCBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUp
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93T3JpZ2luYWxV
SVNvdXJjZUNvZGUoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
b3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJh
bWUgIT09IGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgamF2YVNj
cmlwdFNvdXJjZUZyYW1lcyBzaG91bGQgZGlmZmVyLiIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0VHJ1ZShvcmlnaW5hbFVJU291cmNlQ29kZSAhPT0gdWlTb3VyY2VDb2Rl
LCAiRWRpdGVkIGFuZCBvcmlnaW5hbCB1aVNvdXJjZUNvZGVzIHNob3VsZCBkaWZmZXIuIik7Ci0K
LSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ29tbWl0dGluZyBlZGl0ZWQg
c291cmNlOiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNb2RlbCwgIl9kaWRFZGl0U2NyaXB0U291cmNlIiwgY29tbWl0RmFp
bGVkKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbW1pdFNvdXJjZShqYXZhU2Ny
aXB0U291cmNlRnJhbWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBj
b21taXRGYWlsZWQoZXJyb3IpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRUcnVlKCEhZXJyb3IsICJDb21taXQgc2hvdWxkIGhhdmUgZmFpbGVkLiIp
OwotICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFZGl0aW5nIHNvdXJjZSBh
Z2FpbiBzbyB0aGF0IGxpdmUgZWRpdCBjb3VsZCBzdWNjZWVkOiIpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucmVwbGFjZUluU291cmNlKGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIi8v
fSIsICJ9Ly8iKTsKLQotICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExv
Y2F0aW9ucygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDb21t
aXR0aW5nIGVkaXRlZCBzb3VyY2UgYWdhaW46Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5CcmVha3BvaW50
LnByb3RvdHlwZSwgIl9hZGRSZXNvbHZlZExvY2F0aW9uIiwgYnJlYWtwb2ludFJlc29sdmVkQWdh
aW4pOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tbWl0U291cmNlKGphdmFTY3Jp
cHRTb3VyY2VGcmFtZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGJy
ZWFrcG9pbnRSZXNvbHZlZEFnYWluKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBk
dW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiRmluYWxseSByZW1vdmluZyBicmVha3BvaW50OiIpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVtb3ZlQnJlYWtwb2ludChqYXZhU2NyaXB0U291
cmNlRnJhbWUsIDIpOwotCi0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5k
TG9jYXRpb25zKCk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RFZGl0Q29tbWl0RmFpbFVuZG9Db21taXQo
bmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIGphdmFTY3JpcHRTb3VyY2VGcmFtZSwg
dWlTb3VyY2VDb2RlLCBzY3JpcHQsIG9yaWdpbmFsSmF2YVNjcmlwdFNvdXJjZUZyYW1lLCBvcmln
aW5hbFVJU291cmNlQ29kZTsKLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0
U291cmNlKCJlZGl0LW1lLWJyZWFrcG9pbnRzLmpzIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgamF2YVNjcmlwdFNvdXJjZUZyYW1lID0gc291
cmNlRnJhbWU7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlID0gc291cmNlRnJhbWUuX3Vp
U291cmNlQ29kZTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiU2V0dGluZyBicmVha3BvaW50OiIpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJl
YWtwb2ludC5wcm90b3R5cGUsICJfYWRkUmVzb2x2ZWRMb2NhdGlvbiIsIGJyZWFrcG9pbnRSZXNv
bHZlZCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50KHNvdXJj
ZUZyYW1lLCAyLCAiIiwgdHJ1ZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0
aW9uIGJyZWFrcG9pbnRSZXNvbHZlZChsb2NhdGlvbikKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JJZChs
b2NhdGlvbi5zY3JpcHRJZCk7Ci0KLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3Jh
Z2VBbmRMb2NhdGlvbnMoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiRWRpdGluZyBzb3VyY2U6Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXBs
YWNlSW5Tb3VyY2UoamF2YVNjcmlwdFNvdXJjZUZyYW1lLCAifSIsICIvL30iKTsKLQotICAgICAg
ICAgICAgICAgIG9yaWdpbmFsVUlTb3VyY2VDb2RlID0gc2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxv
Y2F0aW9uKGxvY2F0aW9uLmxpbmVOdW1iZXIpLnVpU291cmNlQ29kZTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNob3dVSVNvdXJjZUNvZGUob3JpZ2luYWxVSVNvdXJjZUNvZGUsIGRp
ZFNob3dPcmlnaW5hbFVJU291cmNlQ29kZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIGRpZFNob3dPcmlnaW5hbFVJU291cmNlQ29kZShzb3VyY2VGcmFtZSkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBvcmlnaW5hbEphdmFTY3JpcHRTb3VyY2VGcmFtZSA9
IHNvdXJjZUZyYW1lOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShv
cmlnaW5hbEphdmFTY3JpcHRTb3VyY2VGcmFtZSAhPT0gamF2YVNjcmlwdFNvdXJjZUZyYW1lLCAi
RWRpdGVkIGFuZCBvcmlnaW5hbCBqYXZhU2NyaXB0U291cmNlRnJhbWVzIHNob3VsZCBkaWZmZXIu
Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKG9yaWdpbmFsVUlT
b3VyY2VDb2RlICE9PSB1aVNvdXJjZUNvZGUsICJFZGl0ZWQgYW5kIG9yaWdpbmFsIHVpU291cmNl
Q29kZXMgc2hvdWxkIGRpZmZlci4iKTsKLQotICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50
U3RvcmFnZUFuZExvY2F0aW9ucygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJDb21taXR0aW5nIGVkaXRlZCBzb3VyY2U6Iik7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLCAiX2RpZEVk
aXRTY3JpcHRTb3VyY2UiLCBjb21taXRGYWlsZWQpOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tbWl0U291cmNlKGphdmFTY3JpcHRTb3VyY2VGcmFtZSk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGNvbW1pdEZhaWxlZChlcnJvcikKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoISFlcnJvciwgIkNv
bW1pdCBzaG91bGQgaGF2ZSBmYWlsZWQuIik7Ci0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9p
bnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIlVuZG9pbmcgc291cmNlIGVkaXRpbmc6Iik7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC51bmRvU291cmNlRWRpdGluZyhqYXZhU2NyaXB0U291cmNlRnJhbWUpOwotCi0g
ICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNvbW1pdHRpbmcgZWRpdGVkIHNv
dXJjZSBhZ2FpbjoiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2Fk
ZFJlc29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWRBZ2Fpbik7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21taXRTb3VyY2UoamF2YVNjcmlwdFNvdXJjZUZyYW1lKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gYnJlYWtwb2ludFJlc29sdmVk
QWdhaW4oKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3Rv
cmFnZUFuZExvY2F0aW9ucygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJGaW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6Iik7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5yZW1vdmVCcmVha3BvaW50KGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgMik7Ci0K
LSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKLSAg
ICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdEVkaXRBbm9ueW1vdXNVbmRvKG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHZhciBqYXZhU2NyaXB0U291cmNlRnJhbWUsIHVpU291cmNlQ29kZSwgc2NyaXB0LCBs
aXZlRWRpdFNvdXJjZUZyYW1lLCBsaXZlRWRpdFVJU291cmNlQ29kZTsKLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBkZWJ1Z2dlcjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoU3RyaW5nKHRlc3RGdW5jdGlvbiksIEluc3BlY3RvclRlc3Qu
cnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1c2VkLmJpbmQoSW5zcGVjdG9yVGVzdCwgcGF1
c2VkKSk7Ci0gICAgICAgICAgICBmdW5jdGlvbiBwYXVzZWQoKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKHJlc3VtZWQpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiByZXN1bWVkKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2hvd2luZyBzY3Jp
cHQgc291cmNlOiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1VJU291cmNl
Q29kZShwYW5lbC52aXNpYmxlVmlldy5fdWlTb3VyY2VDb2RlLCBkaWRTaG93U2NyaXB0U291cmNl
KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNv
dXJjZShzb3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBqYXZhU2Ny
aXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNv
ZGUgPSBzb3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZXR0aW5nIGJyZWFrcG9pbnQ6Iik7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5C
cmVha3BvaW50TWFuYWdlci5CcmVha3BvaW50LnByb3RvdHlwZSwgIl9hZGRSZXNvbHZlZExvY2F0
aW9uIiwgYnJlYWtwb2ludFJlc29sdmVkKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnNldEJyZWFrcG9pbnQoc291cmNlRnJhbWUsIDIsICIiLCB0cnVlKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZnVuY3Rpb24gYnJlYWtwb2ludFJlc29sdmVkKGxvY2F0aW9uKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHNjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1vZGVsLnNjcmlwdEZvcklkKGxvY2F0aW9uLnNjcmlwdElkKTsKLQotICAgICAgICAgICAgICAg
IGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwotICAgICAgICAgICAgICAgIGxp
dmVFZGl0VUlTb3VyY2VDb2RlID0gV2ViSW5zcGVjdG9yLmxpdmVFZGl0U3VwcG9ydC51aVNvdXJj
ZUNvZGVGb3JMaXZlRWRpdCh1aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Quc2hvd1VJU291cmNlQ29kZShsaXZlRWRpdFVJU291cmNlQ29kZSwgZGlkU2hvd0xpdmVF
ZGl0U2NyaXB0U291cmNlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24g
ZGlkU2hvd0xpdmVFZGl0U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIGxpdmVFZGl0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUobGl2ZUVkaXRTb3VyY2VGcmFtZSAh
PT0gamF2YVNjcmlwdFNvdXJjZUZyYW1lLCAiRWRpdGVkIGFuZCBvcmlnaW5hbCBqYXZhU2NyaXB0
U291cmNlRnJhbWVzIHNob3VsZCBkaWZmZXIuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnRUcnVlKGxpdmVFZGl0VUlTb3VyY2VDb2RlICE9PSB1aVNvdXJjZUNvZGUsICJF
ZGl0ZWQgYW5kIG9yaWdpbmFsIHVpU291cmNlQ29kZXMgc2hvdWxkIGRpZmZlci4iKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRWRpdGluZyBzb3VyY2U6Iik7Ci0g
ICAgICAgICAgICAgICAgbGl2ZUVkaXRTb3VyY2VGcmFtZS5fdGV4dEVkaXRvci5tYWluID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlcGxhY2VJblNvdXJjZShsaXZlRWRp
dFNvdXJjZUZyYW1lLCAifSIsICJ9Ly8iKTsKLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2lu
dFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKLQotICAgICAgICAgICAgICAgIHZhciBvcmlnaW5hbFVJ
U291cmNlQ29kZSA9IHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihsb2NhdGlvbi5saW5l
TnVtYmVyKS51aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRUcnVlKG9yaWdpbmFsVUlTb3VyY2VDb2RlID09PSB1aVNvdXJjZUNvZGUsICJNYXBwZWQgYW5k
IG9yaWdpbmFsIHVpU291cmNlQ29kZXMgc2hvdWxkIGJlIHRoZSBzYW1lLiIpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVbmRvaW5nIHNvdXJjZSBlZGl0aW5nOiIp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QudW5kb1NvdXJjZUVkaXRpbmcobGl2ZUVk
aXRTb3VyY2VGcmFtZSk7Ci0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5k
TG9jYXRpb25zKCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VD
b2RlKHVpU291cmNlQ29kZSwgZGlkU2hvd09yaWdpbmFsVUlTb3VyY2VDb2RlKTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd09yaWdpbmFsVUlTb3VyY2VDb2Rl
KHNvdXJjZUZyYW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJGaW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6Iik7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5yZW1vdmVCcmVha3BvaW50KGphdmFTY3JpcHRTb3VyY2VGcmFt
ZSwgMik7Ci0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25z
KCk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAot
Ci0gICAgICAgIGZ1bmN0aW9uIHRlc3RFZGl0RHluYW1pY0Fub255bW91c1VuZG8obmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgdmFyIGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgdWlTb3VyY2VD
b2RlLCBzY3JpcHQsIGxpdmVFZGl0U291cmNlRnJhbWUsIGxpdmVFZGl0VUlTb3VyY2VDb2RlOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJs
b2FkRHluYW1pY0Fub255bW91c1NjcmlwdCgpIiwgSW5zcGVjdG9yVGVzdC5ydW5UZXN0RnVuY3Rp
b25BbmRXYWl0VW50aWxQYXVzZWQuYmluZChJbnNwZWN0b3JUZXN0LCBwYXVzZWQpKTsKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHBhdXNlZCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24ocmVzdW1lZCk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHJlc3VtZWQoKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTaG93aW5nIHNjcmlwdCBzb3VyY2U6Iik7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2RlKHBhbmVsLnZp
c2libGVWaWV3Ll91aVNvdXJjZUNvZGUsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZy
YW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGphdmFTY3JpcHRTb3VyY2VGcmFt
ZSA9IHNvdXJjZUZyYW1lOwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZSA9IHNvdXJjZUZy
YW1lLl91aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldHRpbmcgYnJlYWtwb2ludDoiKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5h
Z2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2FkZFJlc29sdmVkTG9jYXRpb24iLCBicmVha3Bv
aW50UmVzb2x2ZWQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2lu
dChzb3VyY2VGcmFtZSwgMiwgIiIsIHRydWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBmdW5jdGlvbiBicmVha3BvaW50UmVzb2x2ZWQobG9jYXRpb24pCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0
Rm9ySWQobG9jYXRpb24uc2NyaXB0SWQpOwotCi0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9p
bnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0gICAgICAgICAgICAgICAgbGl2ZUVkaXRVSVNvdXJj
ZUNvZGUgPSBXZWJJbnNwZWN0b3IubGl2ZUVkaXRTdXBwb3J0LnVpU291cmNlQ29kZUZvckxpdmVF
ZGl0KHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlT
b3VyY2VDb2RlKGxpdmVFZGl0VUlTb3VyY2VDb2RlLCBkaWRTaG93TGl2ZUVkaXRTY3JpcHRTb3Vy
Y2UpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93TGl2ZUVk
aXRTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgbGl2ZUVkaXRTb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1lOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShsaXZlRWRpdFNvdXJjZUZyYW1lICE9PSBqYXZhU2NyaXB0
U291cmNlRnJhbWUsICJFZGl0ZWQgYW5kIG9yaWdpbmFsIGphdmFTY3JpcHRTb3VyY2VGcmFtZXMg
c2hvdWxkIGRpZmZlci4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRy
dWUobGl2ZUVkaXRVSVNvdXJjZUNvZGUgIT09IHVpU291cmNlQ29kZSwgIkVkaXRlZCBhbmQgb3Jp
Z2luYWwgdWlTb3VyY2VDb2RlcyBzaG91bGQgZGlmZmVyLiIpOwotICAgICAgICAgICAgICAgIGxp
dmVFZGl0U291cmNlRnJhbWUuX3RleHRFZGl0b3IubWFpbiA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVkaXRpbmcgc291cmNlOiIpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QucmVwbGFjZUluU291cmNlKGxpdmVFZGl0U291cmNlRnJhbWUs
ICJ9IiwgIn0vLyIpOwotICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExv
Y2F0aW9ucygpOwotCi0gICAgICAgICAgICAgICAgdmFyIG9yaWdpbmFsVUlTb3VyY2VDb2RlID0g
c2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGxvY2F0aW9uLmxpbmVOdW1iZXIpLnVpU291
cmNlQ29kZTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3JpZ2lu
YWxVSVNvdXJjZUNvZGUgPT09IHVpU291cmNlQ29kZSwgIk1hcHBlZCBhbmQgb3JpZ2luYWwgdWlT
b3VyY2VDb2RlcyBzaG91bGQgYmUgdGhlIHNhbWUuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlVuZG9pbmcgc291cmNlIGVkaXRpbmc6Iik7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC51bmRvU291cmNlRWRpdGluZyhsaXZlRWRpdFNvdXJjZUZyYW1l
KTsKLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dVSVNvdXJjZUNvZGUodWlTb3VyY2VD
b2RlLCBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUoc291cmNlRnJhbWUp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnJlbW92ZUJyZWFrcG9pbnQoamF2YVNjcmlwdFNvdXJjZUZyYW1lLCAyKTsKLSAgICAg
ICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKLSAgICAgICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0gICAgXSk7Ci19Owot
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3Rz
IGJyZWFrcG9pbnRzIGFyZSBjb3JyZWN0bHkgZGltbWVkIGFuZCByZXN0b3JlZCBpbiBKYXZhU2Ny
aXB0U291cmNlRnJhbWUgZHVyaW5nIGxpdmUgZWRpdC48L3A+Ci08YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk1OTgiPkJ1ZyA5OTU5ODwvYT4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9s
aXZlLWVkaXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xp
dmUtZWRpdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2M2Iy
YmIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRp
dC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMzogVW5jYXVnaHQgU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gLAot
VGVzdHMgbGl2ZSBlZGl0IGZlYXR1cmUuCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotCi1SdW5u
aW5nOiB0ZXN0TGl2ZUVkaXQKLT09U291cmNlIGZyYW1lIGNvbnRlbnRzIHN0YXJ0PT0KLWZ1bmN0
aW9uIGYoKQotewotICAgIHJldHVybiAibGl2ZS1lZGl0ZWQgc3RyaW5nIjsKLX0KLQotPT1Tb3Vy
Y2UgZnJhbWUgY29udGVudHMgZW5kPT0KLQotUnVubmluZzogdGVzdExpdmVFZGl0U3ludGF4RXJy
b3IKLT09U291cmNlIGZyYW1lIGNvbnRlbnRzIHN0YXJ0PT0KLWZ1bmN0aW9uIHN5bnRheEVycm9y
KCkKLXsKLSAgICByZXR1cm4gIkknbSBnb29kIjsKLX0KLQotPT1Tb3VyY2UgZnJhbWUgY29udGVu
dHMgZW5kPT0KLQotUnVubmluZzogdGVzdExpdmVFZGl0V2hlblBhdXNlZAotU2NyaXB0IGV4ZWN1
dGlvbiBwYXVzZWQuCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLVNjcmlwdCBleGVjdXRpb24g
cmVzdW1lZC4KLQotUnVubmluZzogdGVzdE5vQ3Jhc2hXaGVuT25seU9uZUZ1bmN0aW9uT25TdGFj
awotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIGYxIChlZGl0
LW1lLXdoZW4tcGF1c2VkLmpzOjEzKQotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotU2NyaXB0
IGV4ZWN1dGlvbiBwYXVzZWQuCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi0KLVJ1bm5pbmc6
IHRlc3RCcmVha3BvaW50c1VwZGF0ZWQKLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyNDlkZDFmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE0MiArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9saXZlLWVkaXQtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2VkaXQtbWUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9lZGl0LW1lLXN5bnRheC1lcnJvci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2VkaXQtbWUtd2hlbi1wYXVzZWQuanMiPjwvc2NyaXB0PgotCi08c2Ny
aXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3Iu
c2hvd1BhbmVsKCJzY3JpcHRzIik7ICAKLQotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJU
ZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0TGl2ZUVkaXQobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJlZGl0LW1lLmpz
IiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dT
Y3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
cmVwbGFjZUluU291cmNlKHNvdXJjZUZyYW1lLCAicmV0dXJuIDA7IiwgInJldHVybiBcImxpdmUt
ZWRpdGVkIHN0cmluZ1wiOyIsIGRpZEVkaXRTY3JpcHRTb3VyY2UpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBkaWRFZGl0U2NyaXB0U291cmNlKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJmKCkiLCBk
aWRFdmFsdWF0ZUluUGFnZSkKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24g
ZGlkRXZhbHVhdGVJblBhZ2UocmVzdWx0KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJsaXZlLWVkaXRlZCBzdHJpbmciLCByZXN1bHQu
ZGVzY3JpcHRpb24sICJlZGl0ZWQgZnVuY3Rpb24gcmV0dXJucyB3cm9uZyByZXN1bHQiKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTb3VyY2VGcmFtZUNvbnRlbnRzKHBhbmVs
LnZpc2libGVWaWV3KTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdExpdmVFZGl0U3ludGF4RXJyb3IobmV4
dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNl
KCJlZGl0LW1lLXN5bnRheC1lcnJvci5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVwbGFjZUluU291cmNlKHNv
dXJjZUZyYW1lLCAiLFwiSSdtIGdvb2RcIiIsICJcIkknbSBnb29kXCIiKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTb3VyY2VGcmFtZUNvbnRlbnRzKHBhbmVsLnZpc2libGVW
aWV3KTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdExpdmVFZGl0V2hlblBhdXNlZChuZXh0KQotICAgICAg
ICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImVkaXQtbWUt
d2hlbi1wYXVzZWQuanMiLCBkaWRTaG93U2NyaXB0U291cmNlKTsKLQotICAgICAgICAgICAgZnVu
Y3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZChwYXVzZWQpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImYxKCkiLCBkaWRFdmFs
dWF0ZUluUGFnZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHBhdXNl
ZChjYWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJlcGxhY2VJblNv
dXJjZShwYW5lbC52aXNpYmxlVmlldywgInJldHVybiAxOyIsICJyZXR1cm4gMjtcblxuXG5cbiIs
IGRpZEVkaXRTY3JpcHRTb3VyY2UpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5j
dGlvbiBkaWRFZGl0U2NyaXB0U291cmNlKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbigpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBkaWRFdmFsdWF0ZUluUGFnZShyZXN1bHQpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoIjMiLCByZXN1bHQu
ZGVzY3JpcHRpb24sICJlZGl0ZWQgZnVuY3Rpb24gcmV0dXJucyB3cm9uZyByZXN1bHQiKTsKLSAg
ICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdE5vQ3Jhc2hXaGVuT25seU9uZUZ1bmN0aW9uT25TdGFjayhuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImVk
aXQtbWUtd2hlbi1wYXVzZWQuanMiLCBkaWRTaG93U2NyaXB0U291cmNlKTsKLQotICAgICAgICAg
ICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZChwYXVzZWQp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVv
dXQoZjEsIDApIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHBhdXNl
ZChjYWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7Ci0gICAgICAgICAgICAgICAgcmVwbGFj
ZUluU291cmNlKHBhbmVsLnZpc2libGVWaWV3LCAiZGVidWdnZXI7IiwgImRlYnVnZ2VyO1xuIiwg
ZGlkRWRpdFNjcmlwdFNvdXJjZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0
aW9uIGRpZEVkaXRTY3JpcHRTb3VyY2UoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1
c2VkLmJpbmQoSW5zcGVjdG9yVGVzdCwgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24uYmlu
ZChJbnNwZWN0b3JUZXN0LCBuZXh0KSkpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0g
ICAgICAgIGZ1bmN0aW9uIHRlc3RCcmVha3BvaW50c1VwZGF0ZWQobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJlZGl0LW1lLmpzIiwg
ZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3Jp
cHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKHNvdXJjZUZyYW1lLCAiX2FkZEJyZWFrcG9pbnREZWNvcmF0
aW9uIiwgYnJlYWtwb2ludEFkZGVkKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
dEJyZWFrcG9pbnQoc291cmNlRnJhbWUsIDIsICIiLCB0cnVlKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZnVuY3Rpb24gYnJlYWtwb2ludEFkZGVkKCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICByZXBsYWNlSW5Tb3VyY2UocGFuZWwudmlzaWJsZVZpZXcsICJmdW5jdGlv
biBmKCkiLCAiZnVuY3Rpb24gbmV3RnVuY3Rpb25DcmVhdGVkV2l0aExpdmVFZGl0KClcbntcbn1c
bmZ1bmN0aW9uIGYoKSIsIGRpZEVkaXRTY3JpcHRTb3VyY2UpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBmdW5jdGlvbiBkaWRFZGl0U2NyaXB0U291cmNlKCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSBwYW5lbC52aXNpYmxlVmlldy5fYnJl
YWtwb2ludHM7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciBpbiBicmVha3Bv
aW50cykKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoIjUi
LCBsaW5lTnVtYmVyKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICBdKTsKLQotICAgIGZ1bmN0aW9uIHJlcGxhY2VJblNvdXJjZShzb3VyY2VG
cmFtZSwgc3RyaW5nLCByZXBsYWNlbWVudCwgY2FsbGJhY2spCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsICJfZGlkRWRp
dFNjcmlwdFNvdXJjZSIsIGNhbGxiYWNrKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXBsYWNl
SW5Tb3VyY2Uoc291cmNlRnJhbWUsIHN0cmluZywgcmVwbGFjZW1lbnQpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbW1pdFNvdXJjZShzb3VyY2VGcmFtZSk7Ci0gICAgICAgIAotICAgIH0KLX07
Ci0KLTwvc2NyaXB0PgotCi08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxw
PlRlc3RzIGxpdmUgZWRpdCBmZWF0dXJlLjwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL211dGF0aW9uLW9ic2VydmVyLXN1
c3BlbmQtd2hpbGUtcGF1c2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9tdXRhdGlvbi1vYnNlcnZlci1zdXNwZW5kLXdoaWxlLXBhdXNlZC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlM2I0M2QuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL211dGF0aW9uLW9ic2VydmVyLXN1c3BlbmQt
d2hpbGUtcGF1c2VkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAK
LVRlc3RzIHRoYXQgRE9NIE11dGF0aW9uIE9ic2VydmVycyBkbyBub3QgYXR0ZW1wdCB0byBkZWxp
dmVyIG11dGF0aW9uIHJlY29yZHMgd2hpbGUgdGhlIGRlYnVnZ2VyIGlzIHBhdXNlZC5CdWcgMTA1
ODEwCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotRElWIGFuZCBvYnNlcnZlciBzZXR1cC4KLWRl
bGl2ZXJ5Q291bnQgPSAwCi1zZXRBdHRyaWJ1dGUgc2hvdWxkIGhhdmUgdHJpZ2dlcmVkIGRlbGl2
ZXJ5LgotZGVsaXZlcnlDb3VudCA9IDEKLW11dGF0ZUFuZFBhdXNlIGludm9rZWQuCi1TY3JpcHQg
ZXhlY3V0aW9uIHBhdXNlZC4KLURlbGl2ZXJ5IHNob3VsZCBub3QgaGF2ZSB0YWtlbiBwbGFjZS4K
LWRlbGl2ZXJ5Q291bnQgPSAxCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1TZWNvbmQgZGVs
aXZlcnkgc2hvdWxkIG5vdyBoYXZlIGhhcHBlbmVkLgotZGVsaXZlcnlDb3VudCA9IDIKLURlYnVn
Z2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL211dGF0aW9uLW9ic2VydmVyLXN1c3BlbmQtd2hpbGUtcGF1c2VkLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbXV0YXRpb24tb2JzZXJ2ZXItc3VzcGVuZC13aGls
ZS1wYXVzZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NjNzA5OS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbXV0YXRpb24tb2JzZXJ2
ZXItc3VzcGVuZC13aGlsZS1wYXVzZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQot
dmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgdmFyIHNldHVwID0KLSAgICAgICAgIndpbmRv
dy50ZXN0RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4iICsKLSAgICAgICAg
IndpbmRvdy5kZWxpdmVyeUNvdW50ID0gMDtcbiIgKwotICAgICAgICAidmFyIG9ic2VydmVyID0g
bmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24ocmVjb3Jkcykge1xuIiArCi0gICAg
ICAgICIgICAgd2luZG93LmRlbGl2ZXJ5Q291bnQrKztcbiIgKwotICAgICAgICAifSk7XG4iICsK
LSAgICAgICAgIm9ic2VydmVyLm9ic2VydmUod2luZG93LnRlc3REaXYsIHsgYXR0cmlidXRlczog
dHJ1ZSB9KTsiOwotICAgIAotICAgIHZhciBtdXRhdGVBbmRQYXVzZSA9IAotICAgICAgICAiZnVu
Y3Rpb24gbXV0YXRlQW5kUGF1c2UoKSB7XG4iICsKLSAgICAgICAgIiAgICB3aW5kb3cudGVzdERp
di5zZXRBdHRyaWJ1dGUoJ2ZvbycsICdiYXonKTtcbiIgKwotICAgICAgICAiICAgIGRlYnVnZ2Vy
O1xuIiArCi0gICAgICAgICJ9O1xuIiArCi0gICAgICAgICJzZXRUaW1lb3V0KG11dGF0ZUFuZFBh
dXNlLCAwKTsiOwotCi0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGVwMSk7
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5Db25zb2xlKHNldHVwLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJESVYgYW5kIG9ic2VydmVyIHNldHVwLiIpOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZUFuZER1bXAoImRlbGl2ZXJ5Q291bnQiLCBz
dGVwMik7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoIndpbmRvdy50ZXN0RGl2
LnNldEF0dHJpYnV0ZSgnZm9vJywgJ2JhcicpIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgic2V0QXR0cmlidXRlIHNob3VsZCBoYXZlIHRyaWdnZXJl
ZCBkZWxpdmVyeS4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNv
bGVBbmREdW1wKCJkZWxpdmVyeUNvdW50Iiwgc3RlcDMpOyAKLSAgICAgICAgfSk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluQ29uc29sZShtdXRhdGVBbmRQYXVzZSwgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQuYmlu
ZChJbnNwZWN0b3JUZXN0LCAibXV0YXRlQW5kUGF1c2UgaW52b2tlZC4iKSk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHN0ZXA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBzdGVwNCgpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkRlbGl2ZXJ5IHNo
b3VsZCBub3QgaGF2ZSB0YWtlbiBwbGFjZS4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluQ29uc29sZUFuZER1bXAoImRlbGl2ZXJ5Q291bnQiLCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKHN0ZXA1KTsKLSAgICAgICAgfSk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDUoKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJTZWNvbmQgZGVsaXZlcnkgc2hvdWxkIG5vdyBoYXZlIGhhcHBlbmVkLiIpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlQW5kRHVtcCgiZGVsaXZlcnlD
b3VudCIsIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QpOwotICAgIH0KLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVz
dHMgdGhhdCBET00gTXV0YXRpb24gT2JzZXJ2ZXJzIGRvIG5vdCBhdHRlbXB0IHRvIGRlbGl2ZXIg
bXV0YXRpb24gcmVjb3JkcyB3aGlsZSB0aGUgZGVidWdnZXIgaXMgcGF1c2VkLjxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU4MTAiPkJ1ZyAxMDU4MTA8
L2E+Ci08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9uYXZpZ2F0b3Itdmlldy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvbmF2aWdhdG9yLXZpZXctZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDIxZGRhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9uYXZpZ2F0b3Itdmlldy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMzIgKzAsMCBAQAotVGVzdHMgc2NyaXB0cyBwYW5lbCBmaWxlIHNlbGVjdG9y
cy4KLQotQWRkaW5nIGZpcnN0IHJlc291cmNlOgotICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3Ig
J1NjcmlwdHMnIHRhYjoKLSAgICBsb2NhbGhvc3Q6ODA4MAotICBEdW1waW5nIFNjcmlwdHNOYXZp
Z2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgotCi1FeHBhbmRpbmcgZG9tYWluczoKLSAgRHVt
cGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6Ci0gICAgbG9jYWxob3N0OjgwODAK
LSAgICAgIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9mb28vYmFyCi0gIER1bXBpbmcg
U2NyaXB0c05hdmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6Ci0KLUFkZGluZyBzZWNvbmQg
cmVzb3VyY2U6Ci0gIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgotICAg
IGxvY2FsaG9zdDo4MDgwCi0gICAgICBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZm9v
L2JhcgotICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgot
Ci1BZGRpbmcgb3RoZXIgcmVzb3VyY2VzOgotICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1Nj
cmlwdHMnIHRhYjoKLSAgICBsb2NhbGhvc3Q6ODA4MAotICAgICAgTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2ZvbwotICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2Ny
aXB0cycgdGFiOgotCi1BZGRpbmcgY29udGVudCBzY3JpcHRzIGFuZCBzb21lIHJhbmRvbSByZXNv
dXJjZXM6Ci0gIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgotICAgIChu
byBkb21haW4pCi0gICAgZXhhbXBsZS5jb20KLSAgICBsb2NhbGhvc3Q6ODA4MAotICAgICAgTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2ZvbwotICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0
b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgotICAgIGxvY2FsaG9zdDo4MDgwCi0KLVJldmVhbGlu
ZyBmaXJzdCByZXNvdXJjZToKLSAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0
YWI6Ci0gICAgKG5vIGRvbWFpbikKLSAgICBleGFtcGxlLmNvbQotICAgIGxvY2FsaG9zdDo4MDgw
Ci0gICAgICBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZm9vCi0gICAgICAgIGJhcgot
ICAgICAgICAgIHNjcmlwdC5qcwotICAgICAgICAgIHNjcmlwdC5qcz9hPTEKLSAgICAgICAgICBz
Y3JpcHQuanM/YT0yCi0gICAgICAgIGJhegotICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0Nv
bnRlbnQgc2NyaXB0cycgdGFiOgotICAgIGxvY2FsaG9zdDo4MDgwCi0KLUFkZGluZyBzb21lIHJl
c291cmNlcyB0byBjaGFuZ2UgdGhlIHdheSBkZWJ1Z2dlciBmb2xkZXIgbG9va3MgbGlrZSwgZmly
c3Q6Ci0gIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgotICAgIChubyBk
b21haW4pCi0gICAgZXhhbXBsZS5jb20KLSAgICBsb2NhbGhvc3Q6ODA4MAotICAgICAgTGF5b3V0
VGVzdHMvaW5zcGVjdG9yCi0gICAgICAgIGRlYnVnZ2VyL2ZvbwotICAgICAgICAgIGJhcgotICAg
ICAgICAgICAgc2NyaXB0LmpzCi0gICAgICAgICAgICBzY3JpcHQuanM/YT0xCi0gICAgICAgICAg
ICBzY3JpcHQuanM/YT0yCi0gICAgICAgICAgYmF6Ci0gICAgICAgIGRlYnVnZ2VyMi9mb28vYmFy
Ci0gIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6Ci0gICAg
bG9jYWxob3N0OjgwODAKLQotU2Vjb25kOgotICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1Nj
cmlwdHMnIHRhYjoKLSAgICAobm8gZG9tYWluKQotICAgIGV4YW1wbGUuY29tCi0gICAgbG9jYWxo
b3N0OjgwODAKLSAgICAgIExheW91dFRlc3RzL2luc3BlY3RvcgotICAgICAgICBkZWJ1Z2dlci9m
b28KLSAgICAgICAgICBiYXIKLSAgICAgICAgICAgIHNjcmlwdC5qcwotICAgICAgICAgICAgc2Ny
aXB0LmpzP2E9MQotICAgICAgICAgICAgc2NyaXB0LmpzP2E9MgotICAgICAgICAgIGJhegotICAg
ICAgICBkZWJ1Z2dlcjIvZm9vL2JhcgotICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRl
bnQgc2NyaXB0cycgdGFiOgotICAgIGxvY2FsaG9zdDo4MDgwCi0KLU90aGVyczoKLSAgRHVtcGlu
ZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6Ci0gICAgKG5vIGRvbWFpbikKLSAgICBl
eGFtcGxlLmNvbQotICAgIGxvY2FsaG9zdDo4MDgwCi0gICAgICBMYXlvdXRUZXN0cy9pbnNwZWN0
b3IKLSAgICAgICAgZGVidWdnZXIvZm9vCi0gICAgICAgICAgYmFyCi0gICAgICAgICAgICBzY3Jp
cHQuanMKLSAgICAgICAgICAgIHNjcmlwdC5qcz9hPTEKLSAgICAgICAgICAgIHNjcmlwdC5qcz9h
PTIKLSAgICAgICAgICBiYXoKLSAgICAgICAgZGVidWdnZXIyL2ZvbwotICBEdW1waW5nIFNjcmlw
dHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgotICAgIGxvY2FsaG9zdDo4MDgwCi0K
LVJldmVhbGluZyBhbGwgcmVzb3VyY2VzOgotICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1Nj
cmlwdHMnIHRhYjoKLSAgICAobm8gZG9tYWluKQotICAgICAgP2E9YgotICAgICAgdmVyeV9sb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v4oCmCi0gICAgZXhhbXBsZS5jb20KLSAg
ICAgIChwcm9ncmFtKQotICAgICAgP2E9YgotICAgIGxvY2FsaG9zdDo4MDgwCi0gICAgICBMYXlv
dXRUZXN0cy9pbnNwZWN0b3IKLSAgICAgICAgZGVidWdnZXIvZm9vCi0gICAgICAgICAgYmFyCi0g
ICAgICAgICAgICBzY3JpcHQuanMKLSAgICAgICAgICAgIHNjcmlwdC5qcz9hPTEKLSAgICAgICAg
ICAgIHNjcmlwdC5qcz9hPTIKLSAgICAgICAgICBiYXoKLSAgICAgICAgICAgIHNjcmlwdC5qcwot
ICAgICAgICBkZWJ1Z2dlcjIvZm9vCi0gICAgICAgICAgYmFyCi0gICAgICAgICAgICBzY3JpcHQu
anMKLSAgICAgICAgICAgIHNjcmlwdC5qcz9hPTEKLSAgICAgICAgICAgIHNjcmlwdC5qcz9hPTIK
LSAgICAgICAgICBiYXoKLSAgICAgICAgICAgIHNjcmlwdC5qcwotICBEdW1waW5nIFNjcmlwdHNO
YXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgotICAgIGxvY2FsaG9zdDo4MDgwCi0gICAg
ICBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZm9vL2JhcgotICAgICAgICBjb250ZW50
U2NyaXB0LmpzP2E9MQotICAgICAgICBjb250ZW50U2NyaXB0LmpzP2E9MgotICAgICAgICBjb250
ZW50U2NyaXB0Mi5qcz9hPTEKLQotUmVtb3ZpbmcgYWxsIHJlc291cmNlczoKLSAgRHVtcGluZyBT
Y3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6Ci0gIER1bXBpbmcgU2NyaXB0c05hdmlnYXRv
ciAnQ29udGVudCBzY3JpcHRzJyB0YWI6Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL25hdmlnYXRvci12aWV3Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvbmF2aWdhdG9yLXZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNWRiZDZlYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvbmF2aWdhdG9yLXZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzIj48L3NjcmlwdD4KLQotPHNj
cmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNj
cmlwdHMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSh0cnVlKTsKLSAgICB2
YXIgcGFuZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbChJbnNwZWN0b3JUZXN0LnRl
c3RXb3Jrc3BhY2UpOwotICAgIHZhciBuYXZpZ2F0b3IgPSBwYW5lbC5fbmF2aWdhdG9yOwotCi0g
ICAgdmFyIHVpU291cmNlQ29kZXMgPSBbXTsKLSAgICBmdW5jdGlvbiBhZGRVSVNvdXJjZUNvZGUo
dXJsLCBpc0NvbnRlbnRTY3JpcHQpCi0gICAgewotICAgICAgICB2YXIgY29udGVudFByb3ZpZGVy
ID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJvdmlkZXIoV2ViSW5zcGVjdG9yLnJl
c291cmNlVHlwZXMuU2NyaXB0LCAiIiwgInRleHQvamF2YXNjcmlwdCIpOwotICAgICAgICB2YXIg
dWlTb3VyY2VDb2RlID0gSW5zcGVjdG9yVGVzdC50ZXN0TmV0d29ya1dvcmtzcGFjZVByb3ZpZGVy
LmFkZEZpbGVGb3JVUkwodXJsLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlLCBpc0NvbnRlbnRTY3Jp
cHQpOwotICAgICAgICB1aVNvdXJjZUNvZGVzLnB1c2godWlTb3VyY2VDb2RlKTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBkdW1wTmF2aWdhdG9yKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IobmF2aWdhdG9yLCAiICAiKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBleHBhbmREb21haW5zKHRyZWUpCi0gICAgewotICAgICAgICB2YXIgY2hpbGRyZW4g
PSBuYXZpZ2F0b3IuX3NjcmlwdHNWaWV3Ll9zY3JpcHRzVHJlZS5jaGlsZHJlbjsKLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7ICsraSkKLSAgICAgICAgICBjaGls
ZHJlbltpXS5leHBhbmQoKTsKLSAgICB9Ci0KLSAgICB2YXIgcm9vdFVSTCA9ICJodHRwOi8vbG9j
YWxob3N0OjgwODAvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLyI7Ci0gICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyBmaXJzdCByZXNvdXJjZToiKTsKLSAgICBhZGRVSVNv
dXJjZUNvZGUocm9vdFVSTCArICJmb28vYmFyL3NjcmlwdC5qcyIsIGZhbHNlKTsKLSAgICBkdW1w
TmF2aWdhdG9yKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV4cGFuZGluZyBkb21h
aW5zOiIpOwotICAgIGV4cGFuZERvbWFpbnMobmF2aWdhdG9yLl9zY3JpcHRzVmlldy5fc2NyaXB0
c1RyZWUpOwotICAgIGR1bXBOYXZpZ2F0b3IoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiQWRkaW5nIHNlY29uZCByZXNvdXJjZToiKTsKLSAgICBhZGRVSVNvdXJjZUNvZGUocm9vdFVS
TCArICJmb28vYmFyL3NjcmlwdC5qcz9hPTIiLCBmYWxzZSk7Ci0gICAgZHVtcE5hdmlnYXRvcigp
OwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgb3RoZXIgcmVzb3VyY2VzOiIp
OwotICAgIGFkZFVJU291cmNlQ29kZShyb290VVJMICsgImZvby9iYXIvc2NyaXB0LmpzP2E9MSIs
IGZhbHNlKTsKLSAgICBhZGRVSVNvdXJjZUNvZGUocm9vdFVSTCArICJmb28vYmF6L3NjcmlwdC5q
cyIsIGZhbHNlKTsKLSAgICBkdW1wTmF2aWdhdG9yKCk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiQWRkaW5nIGNvbnRlbnQgc2NyaXB0cyBhbmQgc29tZSByYW5kb20gcmVzb3VyY2Vz
OiIpOwotICAgIGFkZFVJU291cmNlQ29kZShyb290VVJMICsgImZvby9iYXIvY29udGVudFNjcmlw
dDIuanM/YT0xIiwgdHJ1ZSk7Ci0gICAgYWRkVUlTb3VyY2VDb2RlKHJvb3RVUkwgKyAiZm9vL2Jh
ci9jb250ZW50U2NyaXB0LmpzP2E9MiIsIHRydWUpOwotICAgIGFkZFVJU291cmNlQ29kZShyb290
VVJMICsgImZvby9iYXIvY29udGVudFNjcmlwdC5qcz9hPTEiLCB0cnVlKTsKLSAgICBhZGRVSVNv
dXJjZUNvZGUoImh0dHA6Ly9leGFtcGxlLmNvbS8iLCBmYWxzZSk7Ci0gICAgYWRkVUlTb3VyY2VD
b2RlKCJodHRwOi8vZXhhbXBsZS5jb20vP2E9YiIsIGZhbHNlKTsKLSAgICBhZGRVSVNvdXJjZUNv
ZGUoIj9hPWIiLCBmYWxzZSk7Ci0gICAgYWRkVUlTb3VyY2VDb2RlKCJ2ZXJ5X2xvb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29uZ191cmwiLCBmYWxzZSk7Ci0gICAgZHVtcE5hdmln
YXRvcigpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJldmVhbGluZyBmaXJzdCBy
ZXNvdXJjZToiKTsKLSAgICBuYXZpZ2F0b3IucmV2ZWFsVUlTb3VyY2VDb2RlKHVpU291cmNlQ29k
ZXNbMF0pOwotICAgIGR1bXBOYXZpZ2F0b3IoKTsKLQotICAgIC8vIEhlcmUgd2Uga2VlcCBodHRw
Oi8vbG9jYWxob3N0OjgwODAvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyMi8gZm9sZGVy
IGNvbGxhcHNlZCB3aGlsZSBhZGRpbmcgcmVzb3VyY2VzIGludG8gaXQuCi0gICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIkFkZGluZyBzb21lIHJlc291cmNlcyB0byBjaGFuZ2UgdGhlIHdheSBk
ZWJ1Z2dlciBmb2xkZXIgbG9va3MgbGlrZSwgZmlyc3Q6Iik7Ci0gICAgdmFyIHJvb3RVUkwyID0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIyLyI7
Ci0gICAgYWRkVUlTb3VyY2VDb2RlKHJvb3RVUkwyICsgImZvby9iYXIvc2NyaXB0LmpzIiwgZmFs
c2UpOwotICAgIGR1bXBOYXZpZ2F0b3IoKTsKLQotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJTZWNvbmQ6Iik7Ci0gICAgYWRkVUlTb3VyY2VDb2RlKHJvb3RVUkwyICsgImZvby9iYXIvc2Ny
aXB0LmpzP2E9MiIsIGZhbHNlKTsKLSAgICBkdW1wTmF2aWdhdG9yKCk7Ci0gICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIk90aGVyczoiKTsKLSAgICBhZGRVSVNvdXJjZUNvZGUocm9vdFVSTDIg
KyAiZm9vL2Jhci9zY3JpcHQuanM/YT0xIiwgZmFsc2UpOwotICAgIGFkZFVJU291cmNlQ29kZShy
b290VVJMMiArICJmb28vYmF6L3NjcmlwdC5qcyIsIGZhbHNlKTsKLSAgICBkdW1wTmF2aWdhdG9y
KCk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmV2ZWFsaW5nIGFsbCByZXNvdXJj
ZXM6Iik7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytp
KQotICAgICAgICBuYXZpZ2F0b3IucmV2ZWFsVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZXNbaV0p
OwotICAgIGR1bXBOYXZpZ2F0b3IoKTsKLQotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJS
ZW1vdmluZyBhbGwgcmVzb3VyY2VzOiIpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3Vy
Y2VDb2Rlcy5sZW5ndGg7ICsraSkKLSAgICAgICAgbmF2aWdhdG9yLnJlbW92ZVVJU291cmNlQ29k
ZSh1aVNvdXJjZUNvZGVzW2ldKTsKLSAgICBkdW1wTmF2aWdhdG9yKCk7Ci0KLSAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgc2NyaXB0cyBwYW5lbCBmaWxlIHNlbGVjdG9y
cy4KLTwvcD4KLTwvYm9keT4KLQotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL25ldHdvcmstdWlzb3VyY2Vjb2RlLXByb3ZpZGVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVpc291cmNlY29kZS1w
cm92aWRlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxODM1
YzYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL25ldHdvcmst
dWlzb3VyY2Vjb2RlLXByb3ZpZGVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI2
ICswLDAgQEAKLVRlc3RzIE5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlciBjbGFzcy4KLQotCi1S
dW5uaW5nOiB0ZXN0RG9jdW1lbnRSZXNvdXJjZQotQ3JlYXRpbmcgcmVzb3VyY2UuCi1VSVNvdXJj
ZUNvZGU6IGh0dHA6Ly9mYWtlLnVybC8xCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNl
Ci1VSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5cGU6IHRleHQv
aHRtbAotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxkb2N1bWVudCByZXNvdXJjZSBjb250ZW50Pgot
Ci1SdW5uaW5nOiB0ZXN0U2NyaXB0UmVzb3VyY2UKLUNyZWF0aW5nIHJlc291cmNlLgotVUlTb3Vy
Y2VDb2RlOiBodHRwOi8vZmFrZS51cmwvMgotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVl
Ci1VSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5cGU6IHRleHQv
amF2YXNjcmlwdAotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxzY3JpcHQgcmVzb3VyY2UgY29udGVu
dD4KLQotUnVubmluZzogdGVzdFN0eWxlc2hlZXRSZXNvdXJjZQotQ3JlYXRpbmcgcmVzb3VyY2Uu
Ci1VSVNvdXJjZUNvZGU6IGh0dHA6Ly9mYWtlLnVybC8zCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFi
bGU6IHRydWUKLU1pbWUgdHlwZTogdGV4dC9jc3MKLVVJU291cmNlQ29kZSBjb250ZW50OiA8c3R5
bGVzaGVldCByZXNvdXJjZSBjb250ZW50PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvbmV0d29yay11aXNvdXJjZWNvZGUtcHJvdmlkZXIuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVpc291cmNlY29kZS1wcm92aWRlci5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmUxMzUwLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVpc291cmNlY29kZS1wcm92
aWRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICB2YXIgbW9ja0NvbnRlbnRzTWFwID0ge307Ci0gICAgdmFyIGxhc3RS
ZXNvdXJjZUlkID0gMDsKLQotICAgIE5ldHdvcmtBZ2VudC5nZXRSZXNwb25zZUJvZHkgPSBmdW5j
dGlvbihyZXF1ZXN0SWQsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgY2FsbGJhY2sodW5kZWZp
bmVkLCBtb2NrQ29udGVudHNNYXBbcmVxdWVzdElkXSwgZmFsc2UpOwotICAgIH0KLQotICAgIFBh
Z2VBZ2VudC5nZXRSZXNvdXJjZUNvbnRlbnQgPSBmdW5jdGlvbihmcmFtZUlkLCB1cmwsIGNhbGxi
YWNrKQotICAgIHsKLSAgICAgICAgY2FsbGJhY2sodW5kZWZpbmVkLCBtb2NrQ29udGVudHNNYXBb
dXJsXSwgZmFsc2UpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNyZWF0ZVJlc291cmNlTW9jayh0
eXBlLCBjb250ZW50KQotICAgIHsKLSAgICAgICAgdmFyIGRvY3VtZW50VVJMID0gImh0dHA6Ly9m
YWtlLnVybCI7Ci0gICAgICAgIHZhciByZXNvdXJjZUlkID0gKytsYXN0UmVzb3VyY2VJZCArICIi
OwotICAgICAgICB2YXIgdXJsID0gZG9jdW1lbnRVUkwgKyAiLyIgKyByZXNvdXJjZUlkOwotICAg
ICAgICB2YXIgZnJhbWVJZCA9ICJmcmFtZS1pZCI7Ci0gICAgICAgIHZhciBsb2FkZXJJZCA9ICJs
b2FkZXItaWQiOwotICAgICAgICB2YXIgbWltZVR5cGU7Ci0gICAgICAgIHN3aXRjaCAodHlwZSkg
ewotICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50OgotICAg
ICAgICAgICAgbWltZVR5cGUgPSAidGV4dC9odG1sIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdDoKLSAgICAgICAgICAg
IG1pbWVUeXBlID0gInRleHQvamF2YXNjcmlwdCI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TdHlsZXNoZWV0OgotICAgICAgICAg
ICAgbWltZVR5cGUgPSAidGV4dC9jc3MiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LQotICAgICAgICB2YXIgcmVzb3VyY2UgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlKG51bGws
IHVybCwgZG9jdW1lbnRVUkwsIGZyYW1lSWQsIGxvYWRlcklkLCB0eXBlLCBtaW1lVHlwZSk7Ci0g
ICAgICAgIG1vY2tDb250ZW50c01hcFt1cmxdID0gY29udGVudDsKLSAgICAgICAgV2ViSW5zcGVj
dG9yLnJlc291cmNlVHJlZU1vZGVsLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5SZXNvdXJjZUFkZGVkLCByZXNvdXJjZSk7
Ci0KLSAgICAgICAgcmV0dXJuIHJlc291cmNlOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZpbmlz
aFJlc291cmNlKHJlc291cmNlKQotICAgIHsKLSAgICAgICAgcmVzb3VyY2UucmVxdWVzdC5maW5p
c2hlZCA9IHRydWU7Ci0gICAgICAgIHJlc291cmNlLnJlcXVlc3QuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5OZXR3b3JrUmVxdWVzdC5FdmVudHMuRmluaXNoZWRMb2FkaW5n
LCByZXNvdXJjZS5yZXF1ZXN0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVOZXR3b3Jr
VUlTb3VyY2VDb2RlUHJvdmlkZXIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVh
dGVXb3Jrc3BhY2UoKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsID0g
bmV3IFdlYkluc3BlY3Rvci5PYmplY3QoKTsKLSAgICAgICAgdmFyIG5ldHdvcmtVSVNvdXJjZUNv
ZGVQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVy
KEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciwgSW5zcGVjdG9yVGVz
dC50ZXN0V29ya3NwYWNlKTsKLSAgICAgICAgcmV0dXJuIG5ldHdvcmtVSVNvdXJjZUNvZGVQcm92
aWRlcjsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3REb2N1bWVudFJlc291cmNlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHZhciBuZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBjcmVhdGVOZXR3b3JrVUlTb3Vy
Y2VDb2RlUHJvdmlkZXIoKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJD
cmVhdGluZyByZXNvdXJjZS4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldv
cmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQodWlTb3VyY2VDb2RlQWRkZWQpOwotICAgICAg
ICAgICAgdmFyIHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2VNb2NrKFdlYkluc3BlY3Rvci5yZXNv
dXJjZVR5cGVzLkRvY3VtZW50LCAiPGRvY3VtZW50IHJlc291cmNlIGNvbnRlbnQ+Iik7Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIHVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBVSVNvdXJjZUNvZGUo
dWlTb3VyY2VDb2RlLCBuZXh0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAg
ICBmdW5jdGlvbiB0ZXN0U2NyaXB0UmVzb3VyY2UobmV4dCkKLSAgICAgICAgewotICAgICAgICAg
ICAgdmFyIG5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlciA9IGNyZWF0ZU5ldHdvcmtVSVNvdXJj
ZUNvZGVQcm92aWRlcigpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNy
ZWF0aW5nIHJlc291cmNlLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29y
a3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudCh1aVNvdXJjZUNvZGVBZGRlZCk7Ci0gICAgICAg
ICAgICB2YXIgcmVzb3VyY2UgPSBjcmVhdGVSZXNvdXJjZU1vY2soV2ViSW5zcGVjdG9yLnJlc291
cmNlVHlwZXMuU2NyaXB0LCAiPHNjcmlwdCByZXNvdXJjZSBjb250ZW50PiIpOwotCi0gICAgICAg
ICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGUpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKHVpU291
cmNlQ29kZSwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdFN0eWxlc2hlZXRSZXNvdXJjZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICB2YXIgbmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyID0gY3JlYXRlTmV0d29ya1VJU291cmNl
Q29kZVByb3ZpZGVyKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ3Jl
YXRpbmcgcmVzb3VyY2UuIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jr
c3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KHVpU291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAg
ICAgIHZhciByZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlTW9jayhXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VUeXBlcy5TdHlsZXNoZWV0LCAiPHN0eWxlc2hlZXQgcmVzb3VyY2UgY29udGVudD4iKTsKLQot
ICAgICAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29k
ZSh1aVNvdXJjZUNvZGUsIG5leHQpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotICAgIF0p
OwotfTsKLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
VGVzdHMgTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyIGNsYXNzLjwvcD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9vcGVuLWNs
b3NlLW9wZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL29w
ZW4tY2xvc2Utb3Blbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDYxMjFhNGUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL29w
ZW4tY2xvc2Utb3Blbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBA
Ci1UZXN0cyB0aGF0IHNjcmlwdHMgcGFuZWwgZGlzcGxheXMgcmVzb3VyY2UgY29udGVudCBjb3Jy
ZWN0bHkgYWZ0ZXIgdGhlIG9wZW4gLSBjbG9zZSAtIG9wZW4gc2VxdWVuY2UuIEJ1ZyA1Njc0Nwot
Ci1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLQotUnVubmluZzogdGVzdFNvdXJjZUZyYW1lQ29udGVu
dAotPT1Tb3VyY2UgZnJhbWUgY29udGVudHMgc3RhcnQ9PQotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJmcm9udGVuZFJlb3BlbmluZ0NvdW50IiwgZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgIGlmIChyZXN1bHQuX2Rlc2NyaXB0aW9uID09PSAiMCIp
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJyZW9wZW5Gcm9udGVu
ZCgpIikKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkRlYnVn
Z2VyVGVzdFN1aXRlKFsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0U291cmNlRnJhbWVD
b250ZW50KG5leHQpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoIm9wZW4tY2xvc2Utb3Blbi5odG1sIiwgZGlkU2hv
d1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1Nj
cmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU291cmNlRnJhbWVDb250ZW50cyhzb3Vy
Y2VGcmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdKTsKLSAgICAgICAgfQot
ICAgIH0pOwotfQotCi08L3NjcmlwdD4KLQotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgc2NyaXB0cyBwYW5lbCBkaXNwbGF5cyByZXNvdXJjZSBj
b250ZW50IGNvcnJlY3RseSBhZnRlciB0aGUgb3BlbiAtIGNsb3NlIC0gb3BlbiBzZXF1ZW5jZS4K
LTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njc0NyI+
QnVnIDU2NzQ3PC9hPgotPC9wPgotPC9ib2R5PgotPC9odG1sPgotCi09PVNvdXJjZSBmcmFtZSBj
b250ZW50cyBlbmQ9PQotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvb3Blbi1jbG9zZS1vcGVuLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvb3Blbi1jbG9zZS1vcGVuLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDVmZWJlY2EuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL29wZW4tY2xvc2Utb3Blbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MzkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJmcm9udGVuZFJlb3BlbmluZ0NvdW50IiwgZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAg
IGlmIChyZXN1bHQuX2Rlc2NyaXB0aW9uID09PSAiMCIpCi0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJyZW9wZW5Gcm9udGVuZCgpIikKLSAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1aXRlKFsKLSAgICAgICAg
ICAgICAgICBmdW5jdGlvbiB0ZXN0U291cmNlRnJhbWVDb250ZW50KG5leHQpCi0gICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3Vy
Y2UoIm9wZW4tY2xvc2Utb3Blbi5odG1sIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAg
ICAgICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5kdW1wU291cmNlRnJhbWVDb250ZW50cyhzb3VyY2VGcmFtZSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBdKTsKLSAgICAgICAgfQotICAgIH0pOwotfQotCi08L3NjcmlwdD4K
LQotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQg
c2NyaXB0cyBwYW5lbCBkaXNwbGF5cyByZXNvdXJjZSBjb250ZW50IGNvcnJlY3RseSBhZnRlciB0
aGUgb3BlbiAtIGNsb3NlIC0gb3BlbiBzZXF1ZW5jZS4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njc0NyI+QnVnIDU2NzQ3PC9hPgotPC9wPgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3BhdXNlLWluLWlubGluZS1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3BhdXNlLWluLWlubGluZS1zY3JpcHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Mjg2OWJlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1pbi1pbmxpbmUtc2NyaXB0LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRlc3RzIHRoYXQgbWFpbiByZXNvdXJjZSBz
Y3JpcHQgdGV4dCBpcyBjb3JyZWN0IHdoZW4gcGF1c2VkIGluIGlubGluZSBzY3JpcHQgb24gcmVs
b2FkLiBCdWcgNzc1NDguCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotRGlkIGxvYWQgZnJvbnQt
ZW5kCi1QYXVzZWQ6IGZhbHNlCi1kaWRQYXVzZUFmdGVyUmVsb2FkCi1Tb3VyY2Ugc3RyaW5ncyBj
b3JyZXNwb25kaW5nIHRvIHRoZSBjYWxsIHN0YWNrOgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQu
Ci1GcmFtZSAwKSBsaW5lIDYsIGNvbnRlbnQ6ICAgICAgICAgIDxzY3JpcHQ+ZnVuY3Rpb24gZjEo
KSB7IGRlYnVnZ2VyOyB9PC9zY3JpcHQ+IChtdXN0IGJlIHBhcnQgb2YgZnVuY3Rpb24gJ2YxJykK
LUZyYW1lIDEpIGxpbmUgOCwgY29udGVudDogZnVuY3Rpb24gZjIoKSB7IHJldHVybiBmMSgpOyB9
IChtdXN0IGJlIHBhcnQgb2YgZnVuY3Rpb24gJ2YyJykKLUZyYW1lIDIpIGxpbmUgMTQsIGNvbnRl
bnQ6ICAgICByZXR1cm4gZjIoKTsgKG11c3QgYmUgcGFydCBvZiBmdW5jdGlvbiAnZjMnKQotRnJh
bWUgMykgbGluZSAxNiwgY29udGVudDogZjMoKTsgKG11c3QgYmUgcGFydCBvZiBmdW5jdGlvbiAn
JykKLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KLWRpZFJlc3VtZQotUGFnZSByZWxvYWRlZC4K
LWRpZFJlbG9hZAotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcGF1c2UtaW4taW5saW5lLXNjcmlwdC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLWluLWlubGluZS1zY3JpcHQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzFhZjUzOC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcGF1c2UtaW4taW5saW5lLXNjcmlwdC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PmZ1
bmN0aW9uIGZvbygpIHsgfTsKLTwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGJhcigpIHsg
fTsKLTwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gZjEoKSB7IGRlYnVnZ2VyOyB9PC9zY3JpcHQ+
Ci08c2NyaXB0PgotZnVuY3Rpb24gZjIoKSB7IHJldHVybiBmMSgpOyB9Ci08L3NjcmlwdD4KLQot
PHNjcmlwdD4KLWZ1bmN0aW9uIGYzKCkKLXsKLSAgICByZXR1cm4gZjIoKTsKLX0KLWYzKCk7Ci08
L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotdmFyIHRl
c3QgPSBmdW5jdGlvbigpCi17Ci0gICAgdmFyIHRlc3ROYW1lID0gV2ViSW5zcGVjdG9yLmluc3Bl
Y3RlZFBhZ2VVUkw7Ci0gICAgdGVzdE5hbWUgPSB0ZXN0TmFtZS5zdWJzdHJpbmcodGVzdE5hbWUu
bGFzdEluZGV4T2YoJy8nKSArIDEpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2Vy
VGVzdChzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiRGlkIGxvYWQgZnJvbnQtZW5kIik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJQYXVzZWQ6ICIgKyAhIVdlYkluc3BlY3Rvci5kZWJ1Z2dlck1v
ZGVsLmRlYnVnZ2VyUGF1c2VkRGV0YWlscygpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxv
YWRQYWdlKGRpZFJlbG9hZC5iaW5kKHRoaXMpKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVu
dHMuRGVidWdnZXJQYXVzZWQsIGRpZFBhdXNlQWZ0ZXJSZWxvYWQsIHRoaXMpOyAKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBkaWRSZWxvYWQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoImRpZFJlbG9hZCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVi
dWdnZXJUZXN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZGlkUGF1c2VBZnRlclJlbG9hZChk
ZXRhaWxzKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImRpZFBhdXNl
QWZ0ZXJSZWxvYWQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNvdXJjZSBz
dHJpbmdzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNhbGwgc3RhY2s6Iik7Ci0gICAgICAgIGR1bXBO
ZXh0Q2FsbEZyYW1lKGRpZER1bXApOwotICAgIH0KLQotICAgIHZhciBjYWxsRnJhbWVJbmRleCA9
IDA7Ci0gICAgZnVuY3Rpb24gZHVtcE5leHRDYWxsRnJhbWUobmV4dCkKLSAgICB7Ci0gICAgICAg
IHZhciBjYWxsRnJhbWVzID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY2FsbEZyYW1lczsK
LSAgICAgICAgaWYgKGNhbGxGcmFtZUluZGV4ID09PSBjYWxsRnJhbWVzLmxlbmd0aCkgewotICAg
ICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAg
IHZhciBmcmFtZSA9IGNhbGxGcmFtZXNbY2FsbEZyYW1lSW5kZXhdOwotICAgICAgICB2YXIgdWlM
b2NhdGlvbiA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnJhd0xvY2F0aW9uVG9VSUxvY2F0
aW9uKGZyYW1lLmxvY2F0aW9uKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VD
b2RlKHVpTG9jYXRpb24udWlTb3VyY2VDb2RlLCBkdW1wQ2FsbEZyYW1lTGluZSk7Ci0KLSAgICAg
ICAgZnVuY3Rpb24gZHVtcENhbGxGcmFtZUxpbmUoc291cmNlRnJhbWUpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHZhciByZXNvdXJjZVRleHQgPSBzb3VyY2VGcmFtZS5fdGV4dEVkaXRvci50ZXh0
KCk7Ci0gICAgICAgICAgICB2YXIgbGluZXMgPSByZXNvdXJjZVRleHQuc3BsaXQoIlxuIik7Ci0g
ICAgICAgICAgICB2YXIgbGluZU51bWJlciA9IHVpTG9jYXRpb24ubGluZU51bWJlcjsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGcmFtZSAiICsgY2FsbEZyYW1lSW5kZXgg
KyAiKSBsaW5lICIgKyBsaW5lTnVtYmVyICsgIiwgY29udGVudDogIiArIGxpbmVzW2xpbmVOdW1i
ZXJdICsgIiAobXVzdCBiZSBwYXJ0IG9mIGZ1bmN0aW9uICciICsgZnJhbWUuZnVuY3Rpb25OYW1l
ICsgIicpIik7Ci0gICAgICAgICAgICBjYWxsRnJhbWVJbmRleCsrCi0gICAgICAgICAgICBkdW1w
TmV4dENhbGxGcmFtZShuZXh0KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHVp
U291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJ1aVNvdXJjZUNvZGVBZGRlZCIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IGRpZER1bXAoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24o
ZGlkUmVzdW1lKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkaWRSZXN1bWUoKQotICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImRpZFJlc3VtZSIpOwotICAgIH0KLX07Ci08
L3NjcmlwdD4KLQotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRl
c3RzIHRoYXQgbWFpbiByZXNvdXJjZSBzY3JpcHQgdGV4dCBpcyBjb3JyZWN0IHdoZW4gcGF1c2Vk
IGluIGlubGluZSBzY3JpcHQgb24gcmVsb2FkLgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTQ4Ij5CdWcgNzc1NDguPC9hPgotPC9wPgotCi08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
cGF1c2UtaW4taW50ZXJuYWwtc2NyaXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9wYXVzZS1pbi1pbnRlcm5hbC1zY3JpcHQtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjgwZjAxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1pbi1pbnRlcm5hbC1zY3JpcHQtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGVzdHMgdGhhdCBpbnRlcm5hbCBz
Y3JpcHRzIHVua25vd24gdG8gZnJvbnQtZW5kIGFyZSBwcm9jZXNzZWQgY29ycmVjdGx5IHdoZW4g
YXBwZWFyIGluIGRlYnVnZ2VyIGNhbGwgZnJhbWVzLiBCdWcgNjQ5OTUKLQotRGVidWdnZXIgd2Fz
IGVuYWJsZWQuCi0KLVJ1bm5pbmc6IHRlc3RTZXRCcmVha3BvaW50Ci1TY3JpcHQgc291cmNlIHdh
cyBzaG93bi4KLVNldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlvbi4KLVNjcmlwdCBleGVjdXRpb24g
cGF1c2VkLgotQ2FsbCBzdGFjazoKLSAgICAwKSAgKHBhdXNlLWluLWludGVybmFsLXNjcmlwdC5o
dG1sOjE0KQotICAgIDEpIGZvckVhY2ggKChpbnRlcm5hbCBzY3JpcHQpKQotICAgIDIpIHRlc3RG
dW5jdGlvbiAocGF1c2UtaW4taW50ZXJuYWwtc2NyaXB0Lmh0bWw6MTIpCi1TY3JpcHQgZXhlY3V0
aW9uIHJlc3VtZWQuCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLURlYnVnZ2VyIHdhcyBkaXNh
YmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNl
LWluLWludGVybmFsLXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3BhdXNlLWluLWludGVybmFsLXNjcmlwdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjNmZiNTA3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9wYXVzZS1pbi1pbnRlcm5hbC1zY3JpcHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0
PgotCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKQotewotICAgIHZhciBhcnJheSA9IFsyLCA1LCA3
XTsKLSAgICB2YXIgc3VtID0gMDsKLSAgICBhcnJheS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkKLSAg
ICB7Ci0gICAgICAgIHN1bSArPSBhcnJheVtrZXldOwotICAgIH0pOwotICAgIHJldHVybiBzdW07
Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJU
ZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0QnJlYWtwb2ludChuZXh0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoInBhdXNl
LWluLWludGVybmFsLXNjcmlwdC5odG1sIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBz
b3VyY2Ugd2FzIHNob3duLiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0QnJl
YWtwb2ludChzb3VyY2VGcmFtZSwgMTMsICIiLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZChkaWRQYXVzZSk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFBhdXNlKGNhbGxGcmFtZXMp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jYXB0dXJlU3Rh
Y2tUcmFjZShjYWxsRnJhbWVzKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX07Ci0KLTwvc2NyaXB0PgotCi08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQgaW50ZXJuYWwgc2NyaXB0cyB1
bmtub3duIHRvIGZyb250LWVuZCBhcmUgcHJvY2Vzc2VkIGNvcnJlY3RseSB3aGVuIGFwcGVhciBp
biBkZWJ1Z2dlciBjYWxsIGZyYW1lcy4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NDk5NSI+QnVnIDY0OTk1PC9hPgotPC9wPgotCi08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvcGVy
dGllcy1zcGVjaWFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9wcm9wZXJ0aWVzLXNwZWNpYWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1ZjM5NTdlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MjggKzAsMCBAQAotVGVzdHMgaG93IGRlYnVnZ2VyIHByZXNlbnRzIHNwZWNpYWwgcHJvcGVydGll
cyBvZiBjbG9zdXJlcywgYm91bmQgZnVuY3Rpb25zIGFuZCBvYmplY3Qgd3JhcHBlcnMuCi0KLURl
YnVnZ2VyIHdhcyBlbmFibGVkLgotU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uCi1TZXQgdGltZXIg
Zm9yIHRlc3QgZnVuY3Rpb24uCi1XYXRjaCBleHByZXNzaW9ucyB1cGRhdGVkLgotTm9kZXMgYXJl
IGV4cGFuZGVkLgotJ09iamVjdCh0cnVlKScgPT4gJ0Jvb2xlYW4nCi0gICAgJ19fcHJvdG9fXycg
PT4gJ0Jvb2xlYW4nCi0nKGZ1bmN0aW9uKGEsYikgeyByZXR1cm4gYSArIGI7IH0pJyA9PiAnZnVu
Y3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEgKyBiOyB9JwotICAgICdhcmd1bWVudHMnID0+ICdudWxs
JwotICAgICdjYWxsZXInID0+ICdudWxsJwotICAgICdsZW5ndGgnID0+ICcyJwotICAgICduYW1l
JyA9PiAnIiInCi0gICAgJ3Byb3RvdHlwZScgPT4gJ09iamVjdCcKLSAgICAnX19wcm90b19fJyA9
PiAnZnVuY3Rpb24gKCkgeycKLSAgICA8ZnVuY3Rpb24gc2NvcGU+Ci0nKGZ1bmN0aW9uKGEsYikg
eyByZXR1cm4gYSArIGI7IH0pLmJpbmQoe30sIDIpJyA9PiAnZnVuY3Rpb24gKCkgeycKLSAgICAn
Z2V0IGFyZ3VtZW50cycgPT4gJ2Z1bmN0aW9uICgpIHsnCi0gICAgJ2dldCBjYWxsZXInID0+ICdm
dW5jdGlvbiAoKSB7JwotICAgICdsZW5ndGgnID0+ICcxJwotICAgICduYW1lJyA9PiAnIiInCi0g
ICAgJ3NldCBhcmd1bWVudHMnID0+ICdmdW5jdGlvbiAoKSB7JwotICAgICdzZXQgY2FsbGVyJyA9
PiAnZnVuY3Rpb24gKCkgeycKLSAgICAnX19wcm90b19fJyA9PiAnZnVuY3Rpb24gKCkgeycKLSAg
ICA8ZnVuY3Rpb24gc2NvcGU+Ci1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2RhODNkYS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvcGVydGllcy1zcGVjaWFsLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKQot
ewotICAgIHZhciB4ID0gTWF0aC5zcXJ0KDEwKTsKLSAgICByZXR1cm4geDsKLX0KLQotdmFyIHRl
c3QgPSBmdW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zZXRRdWlldCh0cnVlKTsKLSAg
ICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLQotICAgIHZhciBjdXJy
ZW50U291cmNlRnJhbWU7Ci0gICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uOwotCi0gICAg
ZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgLy8gV2UgbmVlZCB0byBpbml0aWFsaXpl
IHNjcmlwdHMgcGFuZWwgc28gdGhhdCB3YXRjaCBleHByZXNzaW9ucyBzZWN0aW9uIGlzIGNyZWF0
ZWQuCi0gICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKLQotICAgICAg
ICB2YXIgd2F0Y2hFeHByZXNzaW9uc1BhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMu
c2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnM7Ci0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNQ
YW5lLmV4cGFuZCgpOwotCi0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uID0gd2F0Y2hF
eHByZXNzaW9uc1BhbmUuc2VjdGlvbjsKLSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24u
d2F0Y2hFeHByZXNzaW9ucyA9IFtdOwotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53
YXRjaEV4cHJlc3Npb25zLnB1c2goIk9iamVjdCh0cnVlKSIpOwotICAgICAgICB3YXRjaEV4cHJl
c3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIihmdW5jdGlvbihhLGIpIHsgcmV0
dXJuIGEgKyBiOyB9KSIpOwotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4
cHJlc3Npb25zLnB1c2goIihmdW5jdGlvbihhLGIpIHsgcmV0dXJuIGEgKyBiOyB9KS5iaW5kKHt9
LCAyKSIpOwotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi51cGRhdGUoKTsKLQotICAg
ICAgICB2YXIgdGVzdE5hbWUgPSBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTDsKLSAgICAg
ICAgdGVzdE5hbWUgPSB0ZXN0TmFtZS5zdWJzdHJpbmcodGVzdE5hbWUubGFzdEluZGV4T2YoJy8n
KSArIDEpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UodGVzdE5hbWUs
IGRpZFNob3dTY3JpcHRTb3VyY2UpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGRpZFNob3dTY3Jp
cHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgewotICAgICAgICBjdXJyZW50U291cmNlRnJhbWUg
PSBzb3VyY2VGcmFtZTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBz
b3VyY2Ugd2FzIHNob3duLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNldEJyZWFrcG9pbnQo
Y3VycmVudFNvdXJjZUZyYW1lLCA5LCAiIiwgdHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvdG90eXBl
LCAidXBkYXRlIiwgd2F0Y2hFeHByZXNzaW9uc1VwZGF0ZWQpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZChkaWRQYXVzZWQpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGRpZFBhdXNlZChjYWxsRnJhbWVzKQotICAgIHsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiB3YXRjaEV4cHJlc3Npb25zVXBkYXRlZCgpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiV2F0Y2ggZXhwcmVzc2lvbnMgdXBkYXRlZC4iKTsKLSAgICAg
ICAgdmFyIHRyZWVOb2RlcyA9IHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnByb3BlcnRpZXNUcmVl
T3V0bGluZS5jaGlsZHJlbjsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmVlTm9kZXMu
bGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHRyZWVOb2Rlc1tpXS5leHBhbmQoKTsKLSAgICAg
ICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMobm9k
ZXNFeHBhbmRlZCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbm9kZXNFeHBhbmRlZCgpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTm9kZXMgYXJlIGV4cGFuZGVkLiIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBPYmplY3RQcm9wZXJ0eVNlY3Rpb25EZWVwKHdh
dGNoRXhwcmVzc2lvbnNTZWN0aW9uKTsKLQotICAgICAgICAvLyBDbGVhciB3YXRjaCBleHByZXNz
aW9ucyBhZnRlciBleGVjdXRpb24uCi0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndh
dGNoRXhwcmVzc2lvbnMgPSBbXTsKLSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24udXBk
YXRlKCk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwot
ICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Ci08cD5UZXN0cyBob3cgZGVidWdnZXIgcHJlc2VudHMgc3BlY2lhbCBwcm9wZXJ0aWVzIG9mIGNs
b3N1cmVzLCBib3VuZCBmdW5jdGlvbnMgYW5kIG9iamVjdCB3cmFwcGVycy48L3A+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVz
b3VyY2Utc2NyaXB0LW1hcHBpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggM2RhYjI5Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmctZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotVGVzdHMgUmVzb3VyY2VTY3JpcHRNYXBwaW5n
IGNsYXNzLgotCi0KLVJ1bm5pbmc6IHRlc3RTY3JpcHRXaXRoUGVuZGluZ1Jlc291cmNlCi1BZGRp
bmcgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuCi1VSVNvdXJjZUNvZGU6IGZvby5qcwotVUlT
b3VyY2VDb2RlIGlzIGVkaXRhYmxlOiBmYWxzZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2Ny
aXB0OiB0cnVlCi1NaW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAotVUlTb3VyY2VDb2RlIGNvbnRl
bnQ6IDxjb250ZW50IHNjcmlwdCBzb3VyY2U+Ci1BZGRpbmcgdWlTb3VyY2VDb2RlIGZvciBmaW5p
c2hlZCByZXNvdXJjZS4KLVVJU291cmNlQ29kZTogZm9vLmpzCi1VSVNvdXJjZUNvZGUgaXMgZWRp
dGFibGU6IHRydWUKLVVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKLU1pbWUg
dHlwZTogdGV4dC9qYXZhc2NyaXB0Ci1VSVNvdXJjZUNvZGUgY29udGVudDogPGNvbnRlbnQgc2Ny
aXB0IHJlc291cmNlIGNvbnRlbnQ+Ci0KLVJ1bm5pbmc6IHRlc3RTY3JpcHRXaXRoRmluaXNoZWRS
ZXNvdXJjZQotQWRkaW5nIHVpU291cmNlQ29kZSBmb3IgZmluaXNoZWQgcmVzb3VyY2UuCi1VSVNv
dXJjZUNvZGU6IGZvby5qcwotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVlCi1VSVNvdXJj
ZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5cGU6IHRleHQvamF2YXNjcmlw
dAotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxzY3JpcHQgcmVzb3VyY2UgY29udGVudD4KLUFkZGlu
ZyBzY3JpcHQgZm9yIGZpbmlzaGVkIHJlcXVlc3QuCi1VSVNvdXJjZUNvZGU6IGZvby5qcwotVUlT
b3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVlCi1VSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3Jp
cHQ6IGZhbHNlCi1NaW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAotVUlTb3VyY2VDb2RlIGNvbnRl
bnQ6IDxzY3JpcHQgcmVzb3VyY2UgY29udGVudD4KLQotUnVubmluZzogdGVzdEhUTUxXaXRoUGVu
ZGluZ1Jlc291cmNlCi1BZGRpbmcgZmlyc3Qgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuCi1V
SVNvdXJjZUNvZGU6IGluZGV4Lmh0bWwKLVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UK
LVVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9o
dG1sCi1VSVNvdXJjZUNvZGUgY29udGVudDogICA8c2NyaXB0PjxzY3JpcHQgc291cmNlIDE+PC9z
Y3JpcHQ+Ci1BZGRpbmcgc2Vjb25kIHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0LgotVUlTb3Vy
Y2VDb2RlOiBpbmRleC5odG1sCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNlCi1VSVNv
dXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5cGU6IHRleHQvaHRtbAot
VUlTb3VyY2VDb2RlIGNvbnRlbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8c2NyaXB0PjxzY3JpcHQgc291cmNlIDI+PC9zY3JpcHQ+Ci1BZGRpbmcgdWlTb3VyY2VDb2Rl
IGZvciBmaW5pc2hlZCByZXNvdXJjZS4KLVVJU291cmNlQ29kZTogaW5kZXguaHRtbAotVUlTb3Vy
Y2VDb2RlIGlzIGVkaXRhYmxlOiBmYWxzZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0
OiBmYWxzZQotTWltZSB0eXBlOiB0ZXh0L2h0bWwKLVVJU291cmNlQ29kZSBjb250ZW50OiA8cmVz
b3VyY2UgY29udGVudD4KLQotUnVubmluZzogdGVzdEhUTUxXaXRoRmluaXNoZWRSZXNvdXJjZQot
QWRkaW5nIHVpU291cmNlQ29kZSBmb3IgZmluaXNoZWQgcmVzb3VyY2UuCi1VSVNvdXJjZUNvZGU6
IGluZGV4Lmh0bWwKLVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UKLVVJU291cmNlQ29k
ZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9odG1sCi1VSVNvdXJj
ZUNvZGUgY29udGVudDogPHJlc291cmNlIGNvbnRlbnQ+Ci1BZGRpbmcgZmlyc3Qgc2NyaXB0IGZv
ciBmaW5pc2hlZCByZXF1ZXN0LgotVUlTb3VyY2VDb2RlOiBpbmRleC5odG1sCi1VSVNvdXJjZUNv
ZGUgaXMgZWRpdGFibGU6IGZhbHNlCi1VSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZh
bHNlCi1NaW1lIHR5cGU6IHRleHQvaHRtbAotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxyZXNvdXJj
ZSBjb250ZW50PgotQWRkaW5nIHNlY29uZCBzY3JpcHQgZm9yIGZpbmlzaGVkIHJlcXVlc3QuCi1V
SVNvdXJjZUNvZGU6IGluZGV4Lmh0bWwKLVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UK
LVVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9o
dG1sCi1VSVNvdXJjZUNvZGUgY29udGVudDogPHJlc291cmNlIGNvbnRlbnQ+Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1t
YXBwaW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhODc3MTguLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1t
YXBwaW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMTMgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIHZhciBkZWZhdWx0U2NyaXB0TWFwcGluZzsKLSAgICBmdW5jdGlv
biBjcmVhdGVSZXNvdXJjZVNjcmlwdE1hcHBpbmcoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5jcmVhdGVXb3Jrc3BhY2UoKTsKLSAgICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcgPSBu
ZXcgV2ViSW5zcGVjdG9yLkRlZmF1bHRTY3JpcHRNYXBwaW5nKEluc3BlY3RvclRlc3QudGVzdFdv
cmtzcGFjZSk7Ci0gICAgICAgIHZhciByZXNvdXJjZVNjcmlwdE1hcHBpbmcgPSBuZXcgV2ViSW5z
cGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZyhJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2Up
OwotICAgICAgICByZXR1cm4gcmVzb3VyY2VTY3JpcHRNYXBwaW5nOwotICAgIH0KLQotICAgIElu
c3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNjcmlwdFdp
dGhQZW5kaW5nUmVzb3VyY2UobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHNjcmlw
dDsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLl9yZXNldCgpOwotICAg
ICAgICAgICAgdmFyIHJlc291cmNlU2NyaXB0TWFwcGluZyA9IGNyZWF0ZVJlc291cmNlU2NyaXB0
TWFwcGluZygpOwotICAgICAgICAgICAgdmFyIHVybCA9ICJmb28uanMiOwotICAgICAgICAgICAg
c3RlcDEoKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgc2NyaXB0IGZv
ciBwZW5kaW5nIHJlcXVlc3QuIik7Ci0gICAgICAgICAgICAgICAgc2NyaXB0ID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVTY3JpcHRNb2NrKHVybCwgMCwgMCwgdHJ1ZSwgIjxjb250ZW50IHNjcmlwdCBz
b3VyY2U+Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNl
VUlTb3VyY2VDb2RlQWRkZWRFdmVudChvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKTsKLSAgICAg
ICAgICAgICAgICBkZWZhdWx0U2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKLSAgICAg
ICAgICAgICAgICByZXNvdXJjZVNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7Ci0gICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgdmFyIG9yaWdpbmFsVUlTb3VyY2VDb2RlOwot
ICAgICAgICAgICAgICAgIHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KTsKLQot
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQodWlTb3Vy
Y2VDb2RlKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxV
SVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24ob3JpZ2luYWxVSVNvdXJjZUNv
ZGUsIDAsIDUsIHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KSk7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwgMTAsIDAsIG9y
aWdpbmFsVUlTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKDEwLCAwKSk7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKG9yaWdpbmFsVUlTb3Vy
Y2VDb2RlLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0
ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiQWRkaW5nIHVpU291cmNlQ29kZSBmb3IgZmluaXNoZWQgcmVzb3VyY2UuIik7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRk
ZWRFdmVudCh1aVNvdXJjZUNvZGVBZGRlZCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jrc3BhY2UodXJsLCBXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VUeXBlcy5TY3JpcHQsICI8Y29udGVudCBzY3JpcHQgcmVzb3VyY2UgY29udGVudD4iKTsKLQot
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkK
LSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hl
Y2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZSwgMCwgNSwgc2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxv
Y2F0aW9uKDAsIDUpKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jh
d0xvY2F0aW9uKHNjcmlwdCwgMTAsIDAsIHVpU291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2Nh
dGlvbigxMCwgMCkpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBVSVNv
dXJjZUNvZGUodWlTb3VyY2VDb2RlLCBuZXh0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNjcmlwdFdpdGhGaW5p
c2hlZFJlc291cmNlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHQ7Ci0g
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5fcmVzZXQoKTsKLSAgICAgICAg
ICAgIHZhciBtb2NrVUlTb3VyY2VDb2RlOwotICAgICAgICAgICAgdmFyIHJlc291cmNlU2NyaXB0
TWFwcGluZyA9IGNyZWF0ZVJlc291cmNlU2NyaXB0TWFwcGluZygpOwotICAgICAgICAgICAgdmFy
IHVybCA9ICJmb28uanMiOwotICAgICAgICAgICAgc3RlcDEoKTsKLQotICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJBZGRpbmcgdWlTb3VyY2VDb2RlIGZvciBmaW5pc2hlZCByZXNvdXJjZS4i
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJj
ZUNvZGVBZGRlZEV2ZW50KHVpU291cmNlQ29kZUZvclJlc291cmNlQWRkZWQpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkTW9ja1VJU291cmNlQ29kZVRvV29ya3NwYWNlKHVybCwg
V2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCAiPHNjcmlwdCByZXNvdXJjZSBjb250
ZW50PiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNv
ZGVGb3JSZXNvdXJjZUFkZGVkKHVpU291cmNlQ29kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBtb2NrVUlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUsIHN0ZXAyKTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgc2NyaXB0
IGZvciBmaW5pc2hlZCByZXF1ZXN0LiIpOwotICAgICAgICAgICAgICAgIHNjcmlwdCA9IEluc3Bl
Y3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jayh1cmwsIDAsIDAsIGZhbHNlLCAiPHNjcmlwdCBzb3Vy
Y2U+Iik7Ci0gICAgICAgICAgICAgICAgcmVzb3VyY2VTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChz
Y3JpcHQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKG1v
Y2tVSVNvdXJjZUNvZGUsIDAsIDUsIHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA1
KSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlw
dCwgMTAsIDAsIG1vY2tVSVNvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oMTAsIDAp
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBVSVNvdXJjZUNvZGUobW9ja1VJ
U291cmNlQ29kZSwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gdGVzdEhUTUxXaXRoUGVuZGluZ1Jlc291cmNlKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHZhciBzY3JpcHQxOwotICAgICAgICAgICAgdmFyIHNjcmlwdDI7Ci0gICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5fcmVzZXQoKTsKLSAgICAgICAgICAgIHZh
ciByZXNvdXJjZVNjcmlwdE1hcHBpbmcgPSBjcmVhdGVSZXNvdXJjZVNjcmlwdE1hcHBpbmcoKTsK
LSAgICAgICAgICAgIHZhciBvcmlnaW5hbFVJU291cmNlQ29kZTE7Ci0gICAgICAgICAgICB2YXIg
b3JpZ2luYWxVSVNvdXJjZUNvZGUyOwotICAgICAgICAgICAgdmFyIHVybCA9ICJpbmRleC5odG1s
IjsKLSAgICAgICAgICAgIHN0ZXAxKCk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
QWRkaW5nIGZpcnN0IHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0LiIpOwotICAgICAgICAgICAg
ICAgIHNjcmlwdDEgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2sodXJsLCAwLCAxMCwg
ZmFsc2UsICI8c2NyaXB0IHNvdXJjZSAxPiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQob3JpZ2luYWxVSVNvdXJj
ZUNvZGVBZGRlZCk7Ci0gICAgICAgICAgICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcuYWRkU2Ny
aXB0KHNjcmlwdDEpOwotICAgICAgICAgICAgICAgIHJlc291cmNlU2NyaXB0TWFwcGluZy5hZGRT
Y3JpcHQoc2NyaXB0MSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgc2NyaXB0
MS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KTsKLQotICAgICAgICAgICAgICAgIGZ1bmN0
aW9uIG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKQotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxVSVNvdXJjZUNvZGUxID0gdWlTb3Vy
Y2VDb2RlOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tVSUxvY2F0aW9uKG9yaWdpbmFsVUlTb3VyY2VDb2RlMSwgMCwgNSwgc2NyaXB0MS5y
YXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlwdDEsIDEwLCAwLCBvcmlnaW5hbFVJU291cmNlQ29k
ZTEudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oMTAsIDApKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBVSVNvdXJjZUNvZGUob3JpZ2luYWxVSVNvdXJjZUNvZGUxLCBzdGVwMik7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIHNl
Y29uZCBzY3JpcHQgZm9yIHBlbmRpbmcgcmVxdWVzdC4iKTsKLSAgICAgICAgICAgICAgICBzY3Jp
cHQyID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKHVybCwgMCwgNDUsIGZhbHNlLCAi
PHNjcmlwdCBzb3VyY2UgMj4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRG
b3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRk
ZWQpOwotICAgICAgICAgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3Jp
cHQyKTsKLSAgICAgICAgICAgICAgICByZXNvdXJjZVNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNj
cmlwdDIpOwotCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gb3JpZ2luYWxVSVNvdXJjZUNvZGVB
ZGRlZCh1aVNvdXJjZUNvZGUpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICBvcmlnaW5hbFVJU291cmNlQ29kZTIgPSB1aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24ob3JpZ2lu
YWxVSVNvdXJjZUNvZGUyLCAwLCA1LCBzY3JpcHQyLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKDAs
IDUpKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24oc2Ny
aXB0MSwgMTAsIDAsIG9yaWdpbmFsVUlTb3VyY2VDb2RlMS51aUxvY2F0aW9uVG9SYXdMb2NhdGlv
bigxMCwgMCkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29k
ZShvcmlnaW5hbFVJU291cmNlQ29kZTIsIHN0ZXAzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDMoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgdWlTb3VyY2VDb2RlIGZvciBmaW5pc2hlZCBy
ZXNvdXJjZS4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3Bh
Y2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KHVpU291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZE1vY2tVSVNvdXJjZUNvZGVUb1dvcmtzcGFjZSh1cmwsIFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50LCAiPHJlc291cmNlIGNvbnRlbnQ+Iik7
Ci0KLSAgICAgICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNv
ZGUpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNoZWNrVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDAsIDUsIHNjcmlwdDEucmF3TG9jYXRpb25U
b1VJTG9jYXRpb24oMCwgNSkpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNo
ZWNrUmF3TG9jYXRpb24oc2NyaXB0MSwgMTAsIDAsIHVpU291cmNlQ29kZS51aUxvY2F0aW9uVG9S
YXdMb2NhdGlvbigxMCwgMCkpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1
bXBVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlLCBuZXh0KTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEhUTUxXaXRo
RmluaXNoZWRSZXNvdXJjZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0
MTsKLSAgICAgICAgICAgIHZhciBzY3JpcHQyOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTW9kZWwuX3Jlc2V0KCk7Ci0gICAgICAgICAgICB2YXIgbW9ja1VJU291cmNlQ29kZTsK
LSAgICAgICAgICAgIHZhciByZXNvdXJjZVNjcmlwdE1hcHBpbmcgPSBjcmVhdGVSZXNvdXJjZVNj
cmlwdE1hcHBpbmcoKTsKLSAgICAgICAgICAgIHZhciB1cmwgPSAiaW5kZXguaHRtbCI7Ci0gICAg
ICAgICAgICBzdGVwMSgpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyB1
aVNvdXJjZUNvZGUgZm9yIGZpbmlzaGVkIHJlc291cmNlLiIpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQodWlTb3Vy
Y2VDb2RlRm9yUmVzb3VyY2VBZGRlZCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jrc3BhY2UodXJsLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VU
eXBlcy5Eb2N1bWVudCwgIjxyZXNvdXJjZSBjb250ZW50PiIpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVGb3JSZXNvdXJjZUFkZGVkKHVpU291cmNl
Q29kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBtb2NrVUlTb3VyY2VDb2RlID0g
dWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNl
Q29kZSh1aVNvdXJjZUNvZGUsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgZmlyc3Qgc2NyaXB0IGZvciBmaW5pc2hlZCByZXF1ZXN0
LiIpOwotICAgICAgICAgICAgICAgIHNjcmlwdDEgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlw
dE1vY2sodXJsLCAxLCAxMCwgZmFsc2UsICI8c2NyaXB0IHNvdXJjZSAxPiIpOwotICAgICAgICAg
ICAgICAgIHJlc291cmNlU2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0MSk7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24obW9ja1VJU291cmNlQ29kZSwg
MSwgMjAsIHNjcmlwdDEucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oMSwgMjApKTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24oc2NyaXB0MSwgMSwgMCwgbW9j
a1VJU291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigxLCAwKSk7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlwdDEsIDYsIDAsIG1vY2tV
SVNvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oNiwgMCkpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZShtb2NrVUlTb3VyY2VDb2RlLCBzdGVw
Myk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5n
IHNlY29uZCBzY3JpcHQgZm9yIGZpbmlzaGVkIHJlcXVlc3QuIik7Ci0gICAgICAgICAgICAgICAg
c2NyaXB0MiA9IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jayh1cmwsIDUsIDQ1LCBmYWxz
ZSwgIjxzY3JpcHRcbnNvdXJjZVxuMj4iKTsKLSAgICAgICAgICAgICAgICByZXNvdXJjZVNjcmlw
dE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdDIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tVSUxvY2F0aW9uKG1vY2tVSVNvdXJjZUNvZGUsIDEsIDIwLCBzY3JpcHQxLnJhd0xv
Y2F0aW9uVG9VSUxvY2F0aW9uKDEsIDIwKSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlwdDEsIDEsIDAsIG1vY2tVSVNvdXJjZUNvZGUudWlMb2Nh
dGlvblRvUmF3TG9jYXRpb24oMSwgMCkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2hlY2tSYXdMb2NhdGlvbihzY3JpcHQyLCA2LCAwLCBtb2NrVUlTb3VyY2VDb2RlLnVpTG9jYXRp
b25Ub1Jhd0xvY2F0aW9uKDYsIDApKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1
bXBVSVNvdXJjZUNvZGUobW9ja1VJU291cmNlQ29kZSwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICBdKTsKLX07Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotPHA+VGVzdHMgUmVzb3VyY2VTY3JpcHRNYXBwaW5nIGNsYXNzLjwvcD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9yZXNvdXJjZXMvZHluYW1pYy1zY3JpcHQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvcmVzb3VyY2VzL2R5bmFtaWMtc2NyaXB0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmYjlmYjgxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9yZXNvdXJjZXMvZHluYW1pYy1zY3JpcHQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1
ICswLDAgQEAKLWZ1bmN0aW9uIGZvb0R5bmFtaWNTY3JpcHQoKQotewotfQotCi1zY3JpcHRMb2Fk
ZWQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJj
ZXMvZWRpdC1tZS1icmVha3BvaW50cy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9yZXNvdXJjZXMvZWRpdC1tZS1icmVha3BvaW50cy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzZlZDNmOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvcmVzb3VyY2VzL2VkaXQtbWUtYnJlYWtwb2ludHMuanMKKysrIC9kZXYvbnVsbApAQCAt
MSw0ICswLDAgQEAKLWZ1bmN0aW9uIGYoKQotewotICAgIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9lZGl0LW1lLXN5bnRh
eC1lcnJvci5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvZWRp
dC1tZS1zeW50YXgtZXJyb3IuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmN2M4
YmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNl
cy9lZGl0LW1lLXN5bnRheC1lcnJvci5qcworKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAot
ZnVuY3Rpb24gc3ludGF4RXJyb3IoKQotewotICAgIHJldHVybiAsIkknbSBnb29kIjsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvZWRpdC1t
ZS13aGVuLXBhdXNlZC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJj
ZXMvZWRpdC1tZS13aGVuLXBhdXNlZC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NThiOWM4ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVz
b3VyY2VzL2VkaXQtbWUtd2hlbi1wYXVzZWQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCww
IEBACi1mdW5jdGlvbiBmMigpCi17Ci0gICAgcmV0dXJuIDE7Ci19Ci0KLWZ1bmN0aW9uIGYxKCkK
LXsKLSAgICB2YXIgeCA9IDE7Ci0gICAgZGVidWdnZXI7Ci0gICAgcmV0dXJuIHggKyBmMigpOwot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9l
ZGl0LW1lLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9lZGl0
LW1lLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNmVkM2Y4Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvZWRpdC1tZS5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotZnVuY3Rpb24gZigpCi17Ci0gICAgcmV0dXJu
IDA7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3Vy
Y2VzL29iZnVzY2F0ZWQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3Vy
Y2VzL29iZnVzY2F0ZWQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzNDAzZDUu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9v
YmZ1c2NhdGVkLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotZnVuY3Rpb24gZm9y
bWF0dGVkMSgpCi17Ci0gICAgdmFyIHZhcmlhYmxlMSA9IDA7Ci19Ci0KLWZ1bmN0aW9uIHdpdGhD
b21tZW50cygpCi17Ci0vLyBjb21tZW50Ci0gICAgcmV0dXJuICJmdW5jdGlvbldpdGhDb21tZW50
cyI7Ci19Ci0KLXRyeXtvbm1lc3NhZ2U9ZnVuY3Rpb24oZXZlbnQpe3ZhciBzb3VyY2U9ZXZlbnQu
ZGF0YTt2YXIgZm9ybWF0dGVkU291cmNlPWJlYXV0aWZ5KHNvdXJjZSk7dmFyIG1hcHBpbmc9YnVp
bGRNYXBwaW5nKHNvdXJjZSxmb3JtYXR0ZWRTb3VyY2UpO3Bvc3RNZXNzYWdlKHtmb3JtYXR0ZWRT
b3VyY2U6Zm9ybWF0dGVkU291cmNlLG1hcHBpbmc6bWFwcGluZ30pfTtmdW5jdGlvbiBiZWF1dGlm
eShzb3VyY2Upe3ZhciBhc3Q9cGFyc2UucGFyc2Uoc291cmNlKTt2YXIgYmVhdXRpZnlPcHRpb25z
PQote2luZGVudF9sZXZlbDo0LGluZGVudF9zdGFydDowLHF1b3RlX2tleXM6ZmFsc2Usc3BhY2Vf
Y29sb246ZmFsc2V9O3JldHVybiBwcm9jZXNzLmdlbl9jb2RlKGFzdCxiZWF1dGlmeU9wdGlvbnMp
fWZ1bmN0aW9uIGJ1aWxkTWFwcGluZyhzb3VyY2UsZm9ybWF0dGVkU291cmNlKXt2YXIgbWFwcGlu
Zz17b3JpZ2luYWw6W10sZm9ybWF0dGVkOltdfTt2YXIgbGFzdFBvc2l0aW9uPTA7dmFyIHJlZ2V4
cD0vKF58W15cXF0pXGIoKD89XEQpW1wkXC5cd10rKVxiL2c7d2hpbGUodHJ1ZSkKLXt2YXIgbWF0
Y2g9cmVnZXhwLmV4ZWMoZm9ybWF0dGVkU291cmNlKTtpZighbWF0Y2gpYnJlYWs7dmFyIHBvc2l0
aW9uPXNvdXJjZS5pbmRleE9mKG1hdGNoWzJdLGxhc3RQb3NpdGlvbik7aWYocG9zaXRpb249PT0t
MSl0aHJvdyJObyBtYXRjaCBmb3VuZCBpbiBvcmlnaW5hbCBzb3VyY2UgZm9yICIrbWF0Y2hbMl07
bWFwcGluZy5vcmlnaW5hbC5wdXNoKHBvc2l0aW9uKTttYXBwaW5nLmZvcm1hdHRlZC5wdXNoKG1h
dGNoLmluZGV4K21hdGNoWzFdLmxlbmd0aCk7Ci1sYXN0UG9zaXRpb249cG9zaXRpb24rbWF0Y2hb
Ml0ubGVuZ3RofXJldHVybiBtYXBwaW5nfWZ1bmN0aW9uIHJlcXVpcmUoKXtyZXR1cm4gcGFyc2V9
dmFyIGV4cG9ydHM9e307aW1wb3J0U2NyaXB0cygiVWdsaWZ5SlMvcGFyc2UtanMuanMiKTt2YXIg
cGFyc2U9ZXhwb3J0czt2YXIgZXhwb3J0cz17fTtpbXBvcnRTY3JpcHRzKCJVZ2xpZnlKUy9wcm9j
ZXNzLmpzIik7dmFyIHByb2Nlc3M9ZXhwb3J0czt9Y2F0Y2goZSl7fQotCi1mdW5jdGlvbiBmb3Jt
YXR0ZWQyKCkKLXsKLSAgICB2YXIgdmFyaWFibGUyID0gMDsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvcGF1c2Utb24tYmxvY2tlZC1ieS1j
c3AuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL3BhdXNlLW9u
LWJsb2NrZWQtYnktY3NwLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwY2UzODA4
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMv
cGF1c2Utb24tYmxvY2tlZC1ieS1jc3AuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBA
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRz
Iik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNhbGxTdGFj
a1NpZGViYXJQYW5lLnByb3RvdHlwZSwgInNldFN0YXR1cyIsIHNldFN0YXR1cywgZmFsc2UpOwot
Ci0gICAgZnVuY3Rpb24gc2V0U3RhdHVzKHN0YXR1cykKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1F
OiBGb3Igd2hhdGV2ZXIgcmVhc29uLCB0aGlzIGlzbid0IGdldHRpbmcgY2FsbGVkIGNvbnNpc3Rl
bnRseS4KLSAgICAgICAgLy8gQ29tbWVudGluZyBpdCBvdXQgdG8gYXZvaWQgZmxha2V5bmVzcy4g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2ODY3Ci0gICAgICAgIC8v
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDYWxsc3RhY2sgc3RhdHVzIHNldCB0bzogJyIgKyBz
dGF0dXMgKyAiJy4iKTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJU
ZXN0KHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIERlYnVn
Z2VyQWdlbnQuc2V0UGF1c2VPbkV4Y2VwdGlvbnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwu
UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5QYXVzZU9uVW5jYXVnaHRFeGNlcHRpb25zKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCh0ZXN0QWN0aW9uLCAw
KTsiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQoc3RlcDIpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKGNhbGxGcmFtZXMpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlKGNhbGxGcmFtZXMpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7Ci0gICAgfQotfQotCi13aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9wYXVzZS1vbi1ibG9ja2VkLWV2ZW50LWhhbmRsZXIu
anMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL3BhdXNlLW9uLWJs
b2NrZWQtZXZlbnQtaGFuZGxlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGE2
ZDUxZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3Vy
Y2VzL3BhdXNlLW9uLWJsb2NrZWQtZXZlbnQtaGFuZGxlci5qcworKysgL2Rldi9udWxsCkBAIC0x
LDUgKzAsMCBAQAotZnVuY3Rpb24gdGVzdEFjdGlvbigpCi17Ci0gICAgdmFyIGJ1dHRvbiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7Ci0gICAgYnV0dG9uLmNsaWNrKCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL3BhdXNl
LW9uLWJsb2NrZWQtc2NyaXB0LWluamVjdGlvbi5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9yZXNvdXJjZXMvcGF1c2Utb24tYmxvY2tlZC1zY3JpcHQtaW5qZWN0aW9uLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjlhYjk5Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvcGF1c2Utb24tYmxvY2tlZC1zY3Jp
cHQtaW5qZWN0aW9uLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1mdW5jdGlvbiB0
ZXN0QWN0aW9uKCkKLXsKLSAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c2NyaXB0Jyk7Ci0gICAgc2NyaXB0LmlubmVyVGV4dCA9ICJhbGVydCgnRkFJTCEnKTsiOwotICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvcGF1c2Utb24tYmxvY2tlZC1zY3Jp
cHQtdXJsLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9wYXVz
ZS1vbi1ibG9ja2VkLXNjcmlwdC11cmwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDgyMGM2MDQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jl
c291cmNlcy9wYXVzZS1vbi1ibG9ja2VkLXNjcmlwdC11cmwuanMKKysrIC9kZXYvbnVsbApAQCAt
MSw3ICswLDAgQEAKLWZ1bmN0aW9uIHRlc3RBY3Rpb24oKQotewotICAgIHZhciBhID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnYScpOwotICAgIGEuc2V0QXR0cmlidXRlKCdocmVmJywgJ2phdmFz
Y3JpcHQ6YWxlcnQoIkZBSUwhIik7Jyk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChh
KTsKLSAgICBhLmNsaWNrKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvcmVzb3VyY2VzL3NjcmlwdDEuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvcmVzb3VyY2VzL3NjcmlwdDEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGE2ZmU0YzMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jl
c291cmNlcy9zY3JpcHQxLmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZnVuY3Rpb24g
ZjEoKSB7fQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvc2NyaXB0Mi5qcyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvc2NyaXB0Mi5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODY2NWEwZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvcmVzb3VyY2VzL3NjcmlwdDIuanMKKysrIC9kZXYvbnVsbApAQCAtMSArMCww
IEBACi1mdW5jdGlvbiBmMigpIHt9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9zY3JpcHQzLmpz
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9zY3JpcHQzLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2ZiMzQzLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvc2NyaXB0My5qcworKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLWZ1bmN0aW9uIGYzKCkge30KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3Vy
Y2VzL3N5bnRheC1lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jl
c291cmNlcy9zeW50YXgtZXJyb3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NWFlZTIxNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVz
b3VyY2VzL3N5bnRheC1lcnJvci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci0pCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkg
b25sb2FkPSJjb25zb2xlLmxvZygnSWZyYW1lIGxvYWRlZCcpOyI+Ci08L2JvZHk+Ci08L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3JldmVhbC1leGVjdXRpb24tbGluZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmV2ZWFsLWV4ZWN1dGlvbi1saW5lLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzg2ZmZiMi4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmV2ZWFsLWV4ZWN1dGlvbi1saW5lLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRlc3RzIHRoYXQgZXhl
Y3V0aW9uIGxpbmUgaXMgcmV2ZWFsZWQgYW5kIGhpZ2hsaWdodGVkIHdoZW4gZGVidWdnZXIgaXMg
cGF1c2VkLgotCi1CdWcgODAzMDYKLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotCi1SdW5uaW5nOiB0
ZXN0UmV2ZWFsQW5kSGlnaGxpZ2h0RXhlY3V0aW9uTGluZQotU2V0IHRpbWVyIGZvciB0ZXN0IGZ1
bmN0aW9uLgotRXhlY3V0aW9uIGxpbmUgcmV2ZWFsZWQgYW5kIGhpZ2hsaWdodGVkLgotRGVidWdn
ZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvcmV2ZWFsLWV4ZWN1dGlvbi1saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvcmV2ZWFsLWV4ZWN1dGlvbi1saW5lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJmYjQ0YzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3JldmVhbC1leGVjdXRpb24tbGluZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjEg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1Z2dlcjsKLX0KLQotdmFyIHRl
c3QgPSBmdW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zZXRRdWlldCh0cnVlKTsKLSAg
ICBJbnNwZWN0b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24g
dGVzdFJldmVhbEFuZEhpZ2hsaWdodEV4ZWN1dGlvbkxpbmUobmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgdmFyIGV4ZWN1dGlvbkxpbmVTZXQgPSBmYWxzZTsKLSAgICAgICAgICAgIHZhciBl
eGVjdXRpb25MaW5lUmV2ZWFsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLCAicmV2ZWFsTGlu
ZSIsIGRpZFJldmVhbExpbmUpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLCAic2V0RXhlY3V0
aW9uTGluZSIsIGRpZFNldEV4ZWN1dGlvbkxpbmUpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoZGlkUGF1c2VkKTsKLQotICAgICAg
ICAgICAgZnVuY3Rpb24gZGlkUGF1c2VkKGNhbGxGcmFtZXMpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNldEV4ZWN1dGlvbkxpbmUobGlu
ZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoZXhlY3V0aW9uTGluZVNldCkK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIGV4ZWN1dGlvbkxp
bmVTZXQgPSB0cnVlOwotICAgICAgICAgICAgICAgIG1heWJlTmV4dCgpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXZlYWxMaW5lKGxpbmUpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgaWYgKGV4ZWN1dGlvbkxpbmVSZXZlYWxlZCkKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzU2hvd2luZygp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGV4ZWN1dGlvbkxpbmVSZXZlYWxlZCA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgICAgIG1heWJlTmV4dCgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gbWF5YmVOZXh0KCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBpZiAoZXhlY3V0aW9uTGluZVJldmVhbGVkICYmIGV4ZWN1dGlv
bkxpbmVTZXQpIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkV4ZWN1dGlvbiBsaW5lIHJldmVhbGVkIGFuZCBoaWdobGlnaHRlZC4iKTsKLSAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24obmV4dCk7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQgZXhlY3V0
aW9uIGxpbmUgaXMgcmV2ZWFsZWQgYW5kIGhpZ2hsaWdodGVkIHdoZW4gZGVidWdnZXIgaXMgcGF1
c2VkLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MDMwNiI+QnVnIDgwMzA2PC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91dGxpbmUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0LW91
dGxpbmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NGVjMDRj
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZXh0
cmFjdC1vdXRsaW5lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAK
LVRlc3RzIHRoZSBzY3JpcHQgb3V0bGluZSBleHRyYWN0aW9uIGZ1bmN0aW9uYWxpdHkuCi0KLXsK
LSAgICBjaHVuayA6IFsKLSAgICAgICAgewotICAgICAgICAgICAgYXJndW1lbnRzIDogIih4LCB5
KSIKLSAgICAgICAgICAgIGxpbmUgOiAwCi0gICAgICAgICAgICBuYW1lIDogImZpcnN0IgotICAg
ICAgICB9Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGFyZ3VtZW50cyA6ICIoeSwgeikiCi0gICAg
ICAgICAgICBsaW5lIDogMQotICAgICAgICAgICAgbmFtZSA6ICJzZWNvbmQiCi0gICAgICAgIH0K
LSAgICAgICAgewotICAgICAgICAgICAgYXJndW1lbnRzIDogIihhcmcpIgotICAgICAgICAgICAg
bGluZSA6IDQKLSAgICAgICAgICAgIG5hbWUgOiAiT2JqZWN0IgotICAgICAgICB9Ci0gICAgICAg
IHsKLSAgICAgICAgICAgIGFyZ3VtZW50cyA6ICIoYSwgYiwgYywgZCwgZSwgZikiCi0gICAgICAg
ICAgICBsaW5lIDogNgotICAgICAgICAgICAgbmFtZSA6ICJmdW5jdGlvbk9uUHJvdG90eXBlIgot
ICAgICAgICB9Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGFyZ3VtZW50cyA6ICIoKSIKLSAgICAg
ICAgICAgIGxpbmUgOiA4Ci0gICAgICAgICAgICBuYW1lIDogImlubmVyRnVuY3Rpb24xIgotICAg
ICAgICB9Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGFyZ3VtZW50cyA6ICIoYXJnMSwgYXJnMiki
Ci0gICAgICAgICAgICBsaW5lIDogOQotICAgICAgICAgICAgbmFtZSA6ICJpbm5lckZ1bmN0aW9u
MiIKLSAgICAgICAgfQotICAgIF0KLSAgICBpbmRleCA6IDEKLSAgICB0b3RhbCA6IDEKLX0KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRyYWN0
LW91dGxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZXh0
cmFjdC1vdXRsaW5lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2OGJhODku
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1leHRy
YWN0LW91dGxpbmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9vYmZ1c2NhdGVkLmpz
Ij48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAg
dmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoIlNjcmlwdEZvcm1hdHRlcldvcmtlci5qcyIpOwotICAg
IHZhciBwYXJzZWRTY3JpcHQgPSAiZnVuY3Rpb24gZmlyc3QoeCx5KSB7IH1cbiB2YXIgc2Vjb25k
ID0gZnVuY3Rpb24oeSBcbiAsIFxueikgeyB9XG4gT2JqZWN0ID0gZnVuY3Rpb24oYXJnKSB7XG59
XG4gT2JqZWN0LnByb3RvdHlwZS5mdW5jdGlvbk9uUHJvdG90eXBlID0gZnVuY3Rpb24gICggIGEs
ICBiICAsICBcbiAgYywgIGQgICAsICBcbiAgZSAgLCAgZiApICAgIHsgZnVuY3Rpb24gaW5uZXJG
dW5jdGlvbjEoKSB7XG4gdmFyIGlubmVyRnVuY3Rpb24yID0gZnVuY3Rpb24oYXJnMSxhcmcyKSB7
fSB9IH0iOwotCi0gICAgd29ya2VyLm9ubWVzc2FnZSA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAo
ZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZE9iamVjdChl
dmVudC5kYXRhKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9
KTsKLQotICAgIHdvcmtlci5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXJyb3IgaW4gd29ya2VyOiAiICsgZXZlbnQuZGF0
YSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfTsKLQotICAg
IHdvcmtlci5wb3N0TWVzc2FnZSh7IG1ldGhvZDogIm91dGxpbmUiLCBwYXJhbXM6IHsgY29udGVu
dDogcGFyc2VkU2NyaXB0IH0gfSk7Ci19Ci0KLTwvc2NyaXB0PgotCi08L2hlYWQ+Ci0KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoZSBzY3JpcHQgb3V0bGluZSBleHRyYWN0
aW9uIGZ1bmN0aW9uYWxpdHkuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWJyZWFrcG9p
bnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQt
Zm9ybWF0dGVyLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjVhMjFlMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2NyaXB0LWZvcm1hdHRlci1icmVha3BvaW50cy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyOSArMCwwIEBACi1UZXN0cyB0aGUgc2NyaXB0IGZvcm1hdHRpbmcgaXMgd29y
a2luZyBmaW5lIHdpdGggYnJlYWtwb2ludHMuCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotCi1S
dW5uaW5nOiB0ZXN0QnJlYWtwb2ludHNJbk9yaWdpbmFsQW5kRm9ybWF0dGVkU291cmNlCi1TY3Jp
cHQgZXhlY3V0aW9uIHBhdXNlZC4KLUJyZWFrcG9pbnQgc2lkZWJhciBwYW5lIHdoaWxlIHBhdXNl
ZCBpbiByYXcKLQotICAgIHNjcmlwdC1mb3JtYXR0ZXItYnJlYWtwb2ludHMuaHRtbDoxMQotICAg
IHZhciBmPTA7Ci1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1TY3JpcHQgZXhlY3V0aW9uIHBh
dXNlZC4KLUJyZWFrcG9pbnQgc2lkZWJhciBwYW5lIHdoaWxlIHBhdXNlZCBpbiBwcmV0dHkgcHJp
bnRlZAotCi0gICAgc2NyaXB0LWZvcm1hdHRlci1icmVha3BvaW50cy5odG1sOjE4Ci0gICAgdmFy
IGYgPSAwOwotQnJlYWtwb2ludCBzaWRlYmFyIHBhbmUgd2hpbGUgcGF1c2VkIGluIHJhdwotCi0g
ICAgc2NyaXB0LWZvcm1hdHRlci1icmVha3BvaW50cy5odG1sOjExCi0gICAgdmFyIGY9MDsKLVNj
cmlwdCBleGVjdXRpb24gcmVzdW1lZC4KLQotUnVubmluZzogdGVzdEJyZWFrcG9pbnRTZXRJbk9y
aWdpbmFsQW5kUmVtb3ZlZEluRm9ybWF0dGVkCi1BZGRpbmcgYnJlYWtwb2ludC4KLUZvcm1hdHRp
bmcuCi1SZW1vdmluZyBicmVha3BvaW50LgotVW5mb3JtYXR0aW5nLgotRGVidWdnZXIgd2FzIGRp
c2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2Ny
aXB0LWZvcm1hdHRlci1icmVha3BvaW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXItYnJlYWtwb2ludHMuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOGI2MGUzOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1icmVha3BvaW50cy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMTEzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2Ny
aXB0PgotCi08c2NyaXB0PgotCi1mdW5jdGlvbiBmMSgpCi17Ci0gICAgdmFyIGE9MDt2YXIgYj0x
O3ZhciBjPTM7dmFyIGQ9NDt2YXIgZT01OwotICAgIHZhciBmPTA7Ci0gICAgcmV0dXJuIDA7Ci19
Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIFdlYkluc3BlY3Rvci5icmVha3BvaW50
TWFuYWdlci5fc3RvcmFnZS5fYnJlYWtwb2ludHMgPSB7fTsKLSAgICB2YXIgcGFuZWwgPSBXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHM7Ci0gICAgdmFyIHNvdXJjZUZyYW1lOwotCi0gICAgSW5z
cGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RC
cmVha3BvaW50c0luT3JpZ2luYWxBbmRGb3JtYXR0ZWRTb3VyY2UobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJzY3JpcHQtZm9ybWF0
dGVyLWJyZWFrcG9pbnRzLmh0bWwiLCBkaWRTaG93U2NyaXB0U291cmNlKTsKLQotICAgICAgICAg
ICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShmcmFtZSkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBzb3VyY2VGcmFtZSA9IGZyYW1lOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2V0QnJlYWtwb2ludChzb3VyY2VGcmFtZSwgMTAsICIiLCB0cnVlKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZChwYXVzZWRJbkYxKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoImYx
KCkiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gcGF1c2VkSW5GMShj
YWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50
U2lkZWJhclBhbmUoIndoaWxlIHBhdXNlZCBpbiByYXciKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihyZXN1bWVkKTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgZnVuY3Rpb24gcmVzdW1lZCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgc291cmNlRnJhbWUuX3VpU291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUuRXZlbnRzLkZvcm1hdHRlZENoYW5nZWQsIGRpZEZvcm1hdFBhZ2UsIHRo
aXMpOwotICAgICAgICAgICAgICAgIHNvdXJjZUZyYW1lLl91aVNvdXJjZUNvZGUuc2V0Rm9ybWF0
dGVkKHRydWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRGb3Jt
YXRQYWdlKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzb3VyY2VGcmFtZS5fdWlT
b3VyY2VDb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5F
dmVudHMuRm9ybWF0dGVkQ2hhbmdlZCwgZGlkRm9ybWF0UGFnZSwgdGhpcyk7Ci0gICAgICAgICAg
ICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIGEgYnJlYWtwb2ludCBpbiBmMSBhbHRob3VnaCBzY3Jp
cHQgaXMgcHJldHR5LXByaW50ZWQuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0
VW50aWxQYXVzZWQocGF1c2VkSW5GMUFnYWluKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoImYxKCkiKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZnVuY3Rpb24gcGF1c2VkSW5GMUFnYWluKGNhbGxGcmFtZXMpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTaWRlYmFyUGFuZSgid2hpbGUg
cGF1c2VkIGluIHByZXR0eSBwcmludGVkIik7Ci0gICAgICAgICAgICAgICAgc291cmNlRnJhbWUu
X3VpU291cmNlQ29kZS5zZXRGb3JtYXR0ZWQoZmFsc2UpOwotICAgICAgICAgICAgICAgIGR1bXBC
cmVha3BvaW50U2lkZWJhclBhbmUoIndoaWxlIHBhdXNlZCBpbiByYXciKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnJlbW92ZUJyZWFrcG9pbnQoc291cmNlRnJhbWUsIDEwKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihuZXh0KTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0QnJlYWtwb2ludFNl
dEluT3JpZ2luYWxBbmRSZW1vdmVkSW5Gb3JtYXR0ZWQobmV4dCkKLSAgICAgICAgewotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJzY3JpcHQtZm9ybWF0dGVyLWJy
ZWFrcG9pbnRzLmh0bWwiLCBkaWRTaG93U2NyaXB0U291cmNlKTsKLQotICAgICAgICAgICAgZnVu
Y3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShmcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBzb3VyY2VGcmFtZSA9IGZyYW1lOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJBZGRpbmcgYnJlYWtwb2ludC4iKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFr
cG9pbnQucHJvdG90eXBlLCAiX2FkZFJlc29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2
ZWQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2ludChzb3VyY2VG
cmFtZSwgMTAsICIiLCB0cnVlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rp
b24gYnJlYWtwb2ludFJlc29sdmVkKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5
cGUsICJ1cGRhdGVMaXZlTG9jYXRpb25zIiwgZGlkRm9ybWF0UGFnZSk7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZvcm1hdHRpbmcuIik7Ci0gICAgICAgICAgICAg
ICAgc291cmNlRnJhbWUuX3VpU291cmNlQ29kZS5zZXRGb3JtYXR0ZWQodHJ1ZSk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEZvcm1hdFBhZ2UoKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZW1vdmluZyBi
cmVha3BvaW50LiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVtb3ZlQnJlYWtw
b2ludChzb3VyY2VGcmFtZSwgMTcpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJVbmZvcm1hdHRpbmcuIik7Ci0gICAgICAgICAgICAgICAgc291cmNlRnJhbWUuX3Vp
U291cmNlQ29kZS5zZXRGb3JtYXR0ZWQoZmFsc2UpOwotICAgICAgICAgICAgICAgIHZhciBicmVh
a3BvaW50cyA9IFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlci5fc3RvcmFnZS5fc2V0dGlu
Zy5nZXQoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhicmVh
a3BvaW50cy5sZW5ndGgsIDAsICJUaGVyZSBzaG91bGQgbm90IGJlIGFueSBicmVha3BvaW50cyBp
biB0aGUgc3RvcmFnZS4iKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGZ1bmN0aW9uIGR1bXBCcmVha3BvaW50U2lkZWJh
clBhbmUodGl0bGUpCi0gICAgewotICAgICAgICB2YXIgcGFuZUVsZW1lbnQgPSBXZWJJbnNwZWN0
b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLmpzQnJlYWtwb2ludHMubGlzdEVsZW1lbnQK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkJyZWFrcG9pbnQgc2lkZWJhciBwYW5l
ICIgKyB0aXRsZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KEluc3BlY3RvclRl
c3QudGV4dENvbnRlbnRXaXRoTGluZUJyZWFrcyhwYW5lRWxlbWVudCkpOwotICAgIH0KLX0KLQot
PC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVz
dHMgdGhlIHNjcmlwdCBmb3JtYXR0aW5nIGlzIHdvcmtpbmcgZmluZSB3aXRoIGJyZWFrcG9pbnRz
LgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1jb25zb2xlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWNvbnNvbGUtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZWUwZmIxLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWNv
bnNvbGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDEwOiBUZXN0IG1lc3NhZ2UuCi1UZXN0cyB0aGF0IHRoZSBzY3JpcHQg
Zm9ybWF0dGluZyBjaGFuZ2VzIGNvbnNvbGUgbGluZSBudW1iZXJzLgotCi1EZWJ1Z2dlciB3YXMg
ZW5hYmxlZC4KLQotUnVubmluZzogdGVzdENvbnNvbGVNZXNzYWdlc0ZvckZvcm1hdHRlZFNjcmlw
dHMKLXNjcmlwdC1mb3JtYXR0ZXItY29uc29sZS5odG1sOjEwCi1QcmUtZm9ybWF0IHJvdyBtZXNz
YWdlIGxpc3Q6Ci1bIjkiXQotWyI5Il0KLXNjcmlwdC1mb3JtYXR0ZXItY29uc29sZS5odG1sOjEz
Ci1Qb3N0LWZvcm1hdCByb3cgbWVzc2FnZSBsaXN0OgotWyIxMiJdCi1bIjEyIl0KLURlYnVnZ2Vy
IHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3NjcmlwdC1mb3JtYXR0ZXItY29uc29sZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXItY29uc29sZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkZmNlNjZhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWNvbnNvbGUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDcxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBmMSgpCi17Ci0gICAgY29uc29sZS5lcnJvcigiVGVzdCBt
ZXNzYWdlLiIpOwotfQotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICB2YXIgcGFuZWwg
PSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHM7Ci0gICAgdmFyIHdvcmtlciA9IG5ldyBXb3Jr
ZXIoIlNjcmlwdEZvcm1hdHRlcldvcmtlci5qcyIpOwotICAgIHZhciBzb3VyY2VGcmFtZTsKLQot
ICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlv
biB0ZXN0Q29uc29sZU1lc3NhZ2VzRm9yRm9ybWF0dGVkU2NyaXB0cyhuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoInNjcmlwdC1mb3Jt
YXR0ZXItY29uc29sZS5odG1sIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2UoZnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgc291cmNlRnJhbWUgPSBmcmFtZTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJmMSgpIiwgZGlkRXZhbHVhdGUpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRFdmFsdWF0ZSgpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgZHVtcENvbnNvbGVNZXNzYWdlVVJMcygpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJQcmUtZm9ybWF0IHJvdyBtZXNzYWdlIGxpc3Q6Iik7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoSlNPTi5zdHJpbmdpZnko
T2JqZWN0LmtleXMoc291cmNlRnJhbWUuX3Jvd01lc3NhZ2VzKSkpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KEpTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKHNvdXJj
ZUZyYW1lLl9tZXNzYWdlQnViYmxlcykpKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUsICJ1cGRhdGVM
aXZlTG9jYXRpb25zIiwgZGlkRm9ybWF0TGlua1RleHQpOwotICAgICAgICAgICAgICAgIHNvdXJj
ZUZyYW1lLl91aVNvdXJjZUNvZGUuc2V0Rm9ybWF0dGVkKHRydWUpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBkaWRGb3JtYXRMaW5rVGV4dCgpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgZHVtcENvbnNvbGVNZXNzYWdlVVJMcygpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJQb3N0LWZvcm1hdCByb3cgbWVzc2FnZSBsaXN0
OiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KEpTT04uc3RyaW5n
aWZ5KE9iamVjdC5rZXlzKHNvdXJjZUZyYW1lLl9yb3dNZXNzYWdlcykpKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChKU09OLnN0cmluZ2lmeShPYmplY3Qua2V5cyhz
b3VyY2VGcmFtZS5fbWVzc2FnZUJ1YmJsZXMpKSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBmdW5jdGlvbiBkdW1wQ29u
c29sZU1lc3NhZ2VVUkxzKCkKLSAgICB7Ci0gICAgICAgIHZhciBtZXNzYWdlcyA9IFdlYkluc3Bl
Y3Rvci5jb25zb2xlLm1lc3NhZ2VzOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3Nh
Z2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgZWxlbWVudCA9IG1lc3NhZ2VzW2ld
LnRvTWVzc2FnZUVsZW1lbnQoKTsKLSAgICAgICAgICAgIHZhciBhbmNob3IgPSBlbGVtZW50LnF1
ZXJ5U2VsZWN0b3IoIi5jb25zb2xlLW1lc3NhZ2UtdXJsIik7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdChhbmNob3IudGV4dENvbnRlbnQpOwotICAgICAgICB9Ci0gICAgfQot
fQotCi08L3NjcmlwdD4KLQotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08
cD5UZXN0cyB0aGF0IHRoZSBzY3JpcHQgZm9ybWF0dGluZyBjaGFuZ2VzIGNvbnNvbGUgbGluZSBu
dW1iZXJzLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhMDFmMDMuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXItZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGVzdHMgdGhlIHNjcmlwdCBmb3JtYXR0
aW5nIGZ1bmN0aW9uYWxpdHkuCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotCi1SdW5uaW5nOiB0
ZXN0U2NyaXB0Rm9ybWF0dGVyV29ya2VyCi0KLVJ1bm5pbmc6IHRlc3RTb3VyY2VNYXBwaW5nCi0K
LVJ1bm5pbmc6IHRlc3RGb3JtYXRJbmxpbmVkU2NyaXB0cwotPGh0bWw+PGJvZHk+PHNjcmlwdD4K
LWZ1bmN0aW9uIGYoKSB7Ci19Ci08L3NjcmlwdD48c2NyaXB0PgotZnVuY3Rpb24gZygpIHsKLSoq
dmFyIGE7Ci0qKmlmIChhKQotKioqKnJldHVybjsKLX0KLTwvc2NyaXB0PjwvYm9keT48L2h0bWw+
Ci1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLXNlYXJjaC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1zZWFyY2gtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzQwYTQ0Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLXNlYXJj
aC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1UZXN0cyB0aGF0
IHNlYXJjaCBhY3Jvc3MgZmlsZXMgd29ya3Mgd2l0aCBmb3JtYXR0ZWQgc2NyaXB0cy4KLQotRGVi
dWdnZXIgd2FzIGVuYWJsZWQuCi1QcmUtZm9ybWF0IHNlYXJjaCByZXN1bHRzOgotU2VhcmNoIG1h
dGNoZXM6IAotbGluZU51bWJlcjogMjQsIGxpbmU6ICcgICAgICAgIHNjcmlwdFNvdXJjZS5zZWFy
Y2hJbkNvbnRlbnQoIm1hZ2ljLXN0cmluZyIsIHRydWUsIGZhbHNlLCBkdW1wMSk7JwotbGluZU51
bWJlcjogMzksIGxpbmU6ICcgICAgICAgIHNjcmlwdFNvdXJjZS5zZWFyY2hJbkNvbnRlbnQoIm1h
Z2ljLXN0cmluZyIsIHRydWUsIGZhbHNlLCBkdW1wMik7JwotCi1PcmlnaW5hbCBjb250ZW50IHdh
cyByZXF1ZXN0ZWQuCi1Qb3N0LWZvcm1hdCBzZWFyY2ggcmVzdWx0czoKLVNlYXJjaCBtYXRjaGVz
OiAKLWxpbmVOdW1iZXI6IDI4LCBsaW5lOiAnICAgICAgICBzY3JpcHRTb3VyY2Uuc2VhcmNoSW5D
b250ZW50KCJtYWdpYy1zdHJpbmciLCB0cnVlLCBmYWxzZSwgZHVtcDEpOycKLWxpbmVOdW1iZXI6
IDQzLCBsaW5lOiAnICAgICAgICBzY3JpcHRTb3VyY2Uuc2VhcmNoSW5Db250ZW50KCJtYWdpYy1z
dHJpbmciLCB0cnVlLCBmYWxzZSwgZHVtcDIpOycKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1zZWFyY2guaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLXNlYXJjaC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmQxNmNkLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLXNlYXJjaC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Ivc2Vh
cmNoL3NlYXJjaC10ZXN0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotdmFyIHRlc3QgPSBm
dW5jdGlvbigpCi17Ci0gICAgdmFyIHNjcmlwdFNvdXJjZTsKLSAgICB2YXIgc2hvdWxkUmVxdWVz
dENvbnRlbnQgPSBmYWxzZTsKLQotICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qo
c3RhcnRlZCk7Ci0KLSAgICBmdW5jdGlvbiBzdGFydGVkKCkKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgic2NyaXB0LWZvcm1hdHRlci1zZWFyY2guaHRtbCIs
IGRpZFNob3dTY3JpcHRTb3VyY2UpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGRpZFNob3dTY3Jp
cHRTb3VyY2UoZnJhbWUpCi0gICAgewotICAgICAgICBzY3JpcHRTb3VyY2UgPSBmcmFtZS5fdWlT
b3VyY2VDb2RlOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoc2NyaXB0U291cmNl
Ll9wcm9qZWN0LCAicmVxdWVzdEZpbGVDb250ZW50IiwgcmVxdWVzdENvbnRlbnRTbmlmZmVyKTsK
LSAgICAgICAgc2NyaXB0U291cmNlLnNlYXJjaEluQ29udGVudCgibWFnaWMtc3RyaW5nIiwgdHJ1
ZSwgZmFsc2UsIGR1bXAxKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wMShtYXRjaGVzKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlByZS1mb3JtYXQgc2VhcmNo
IHJlc3VsdHM6Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlYXJjaE1hdGNoZXMobWF0
Y2hlcyk7Ci0gICAgICAgIHNob3VsZFJlcXVlc3RDb250ZW50ID0gdHJ1ZTsKLSAgICAgICAgc2Ny
aXB0U291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVu
dHMuRm9ybWF0dGVkQ2hhbmdlZCwgZGlkRm9ybWF0LCB0aGlzKTsKLSAgICAgICAgc2NyaXB0U291
cmNlLnNldEZvcm1hdHRlZCh0cnVlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkaWRGb3JtYXQo
KQotICAgIHsKLSAgICAgICAgc2NyaXB0U291cmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMuRm9ybWF0dGVkQ2hhbmdlZCwgZGlkRm9ybWF0LCB0
aGlzKTsKLSAgICAgICAgc2NyaXB0U291cmNlLnNlYXJjaEluQ29udGVudCgibWFnaWMtc3RyaW5n
IiwgdHJ1ZSwgZmFsc2UsIGR1bXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wMihtYXRj
aGVzKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlBvc3QtZm9ybWF0
IHNlYXJjaCByZXN1bHRzOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWFyY2hNYXRj
aGVzKG1hdGNoZXMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHJlcXVlc3RDb250ZW50U25pZmZlcigpCi0gICAgewotICAgICAg
ICBpZiAoc2hvdWxkUmVxdWVzdENvbnRlbnQpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiT3JpZ2luYWwgY29udGVudCB3YXMgcmVxdWVzdGVkLiIpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRmFpbHVyZTogb3JpZ2luYWwg
Y29udGVudCBzaG91bGQgbm90IGJlIHJlcXVlc3RlZC4iKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0
PgotCi08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQg
c2VhcmNoIGFjcm9zcyBmaWxlcyB3b3JrcyB3aXRoIGZvcm1hdHRlZCBzY3JpcHRzLgotPC9wPgot
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2NyaXB0LWZvcm1hdHRlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3NjcmlwdC1mb3JtYXR0ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjFhZDQ2ZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2Ny
aXB0LWZvcm1hdHRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9vYmZ1c2NhdGVkLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotdmFyIHRlc3QgPSBmdW5j
dGlvbigpCi17Ci0gICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzOwot
ICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJTY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMiKTsK
LQotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0U3VpdGUoWwotICAgICAgICBmdW5j
dGlvbiB0ZXN0U2NyaXB0Rm9ybWF0dGVyV29ya2VyKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGZ1bmN0aW9uKGV2
ZW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
RXF1YWxzKCJ2YXIgeCA9IDBcbiIsIGV2ZW50LmRhdGEuY29udGVudCk7Ci0gICAgICAgICAgICAg
ICAgbmV4dCgpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIHdvcmtlci5vbmVycm9y
ID0gZnVuY3Rpb24oZXZlbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIkVycm9yIGluIHdvcmtlcjogIiArIGV2ZW50LmRhdGEpOwotICAg
ICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH07Ci0KLSAgICAgICAgICAgIHdvcmtl
ci5wb3N0TWVzc2FnZSh7IG1ldGhvZDogImZvcm1hdCIsIHBhcmFtczogeyBtaW1lVHlwZTogInRl
eHQvamF2YXNjcmlwdCIsIGNvbnRlbnQ6ICJ2YXIgeD0wIiB9IH0pOwotICAgICAgICB9LAotCi0g
ICAgICAgIGZ1bmN0aW9uIHRlc3RTb3VyY2VNYXBwaW5nKG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHZhciBmb3JtYXR0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlcigp
OwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoIm9iZnVzY2F0
ZWQuanMiLCBkaWRTaG93U2NyaXB0U291cmNlKTsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNo
b3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgZm9ybWF0dGVyLmZvcm1hdENvbnRlbnQoInRleHQvamF2YXNjcmlwdCIsIHNvdXJjZUZyYW1l
Ll90ZXh0RWRpdG9yLnRleHQoKSwgZGlkRm9ybWF0Q29udGVudCk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEZvcm1hdENvbnRlbnQoY29udGVudCwgbWFwcGluZykK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgc291cmNlID0gV2ViSW5zcGVjdG9y
LnBhbmVscy5zY3JpcHRzLnZpc2libGVWaWV3Ll90ZXh0RWRpdG9yLnRleHQoKTsKLSAgICAgICAg
ICAgICAgICB2YXIgZm9ybWF0dGVkU291cmNlID0gY29udGVudDsKLQotICAgICAgICAgICAgICAg
IGZ1bmN0aW9uIHRlc3RNYXBwaW5nKHN0cmluZykKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgIHZhciBvcmlnaW5hbFBvc2l0aW9uID0gc291cmNlLmluZGV4T2Yoc3RyaW5n
KTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKG9yaWdpbmFs
UG9zaXRpb24gIT09IC0xKTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIG9yaWdpbmFsTG9jYXRp
b24gPSBXZWJJbnNwZWN0b3IuRm9ybWF0dGVyLnBvc2l0aW9uVG9Mb2NhdGlvbihzb3VyY2UubGlu
ZUVuZGluZ3MoKSwgb3JpZ2luYWxQb3NpdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBm
b3JtYXR0ZWRMb2NhdGlvbiA9IG1hcHBpbmcub3JpZ2luYWxUb0Zvcm1hdHRlZChvcmlnaW5hbExv
Y2F0aW9uWzBdLCBvcmlnaW5hbExvY2F0aW9uWzFdKTsKLSAgICAgICAgICAgICAgICAgICAgdmFy
IGZvcm1hdHRlZFBvc2l0aW9uID0gV2ViSW5zcGVjdG9yLkZvcm1hdHRlci5sb2NhdGlvblRvUG9z
aXRpb24oZm9ybWF0dGVkU291cmNlLmxpbmVFbmRpbmdzKCksIGZvcm1hdHRlZExvY2F0aW9uWzBd
LCBmb3JtYXR0ZWRMb2NhdGlvblsxXSk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBleHBlY3Rl
ZEZvcm1hdHRlZFBvc2l0aW9uID0gZm9ybWF0dGVkU291cmNlLmluZGV4T2Yoc3RyaW5nKTsKLSAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRGb3Jt
YXR0ZWRQb3NpdGlvbiwgZm9ybWF0dGVkUG9zaXRpb24sICJ3cm9uZyBtYXBwaW5nIGZvciA8IiAr
IHN0cmluZyArICI+Iik7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgdGVz
dE1hcHBpbmcoImZ1bmN0aW9uIik7Ci0gICAgICAgICAgICAgICAgdGVzdE1hcHBpbmcoImZvcm1h
dHRlZDEiKTsKLSAgICAgICAgICAgICAgICB0ZXN0TWFwcGluZygidmFyaWFibGUxIik7Ci0KLSAg
ICAgICAgICAgICAgICB0ZXN0TWFwcGluZygiICAgIHJldHVybiBcImZ1bmN0aW9uV2l0aENvbW1l
bnRzXCIiKTsKLQotICAgICAgICAgICAgICAgIHRlc3RNYXBwaW5nKCJvbm1lc3NhZ2UiKTsKLSAg
ICAgICAgICAgICAgICB0ZXN0TWFwcGluZygiaW5kZW50X3N0YXJ0Iik7Ci0gICAgICAgICAgICAg
ICAgdGVzdE1hcHBpbmcoImZ1bmN0aW9uIHJlcXVpcmUiKTsKLSAgICAgICAgICAgICAgICB0ZXN0
TWFwcGluZygidmFyIHJlZ2V4cCIpOwotICAgICAgICAgICAgICAgIHRlc3RNYXBwaW5nKCJpbXBv
cnRTY3JpcHRzIik7Ci0KLSAgICAgICAgICAgICAgICB0ZXN0TWFwcGluZygiZm9ybWF0dGVkMiIp
OwotICAgICAgICAgICAgICAgIHRlc3RNYXBwaW5nKCJ2YXJpYWJsZTIiKTsKLQotICAgICAgICAg
ICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5j
dGlvbiB0ZXN0Rm9ybWF0SW5saW5lZFNjcmlwdHMobmV4dCkKLSAgICAgICAgewotICAgICAgICAg
ICAgd29ya2VyLm9ubWVzc2FnZSA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoZnVuY3Rpb24oZXZl
bnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoZXZlbnQuZGF0YS5jb250ZW50KTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAg
ICAgICB9KTsKLQotICAgICAgICAgICAgd29ya2VyLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
RXJyb3IgaW4gd29ya2VyOiAiICsgZXZlbnQuZGF0YSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgp
OwotICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSAiPGh0bWw+PGJv
ZHk+PHNjcmlwdD5mdW5jdGlvbiBmKCl7fTwiICsgIi9zY3JpcHQ+PHNjcmlwdD5mdW5jdGlvbiBn
KCl7dmFyIGE7aWYgKGEpIHJldHVybjt9PCIgKyAiL3NjcmlwdD48L2JvZHk+PC9odG1sPiI7Ci0g
ICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoeyBtZXRob2Q6ICJmb3JtYXQiLCBwYXJhbXM6
IHsgbWltZVR5cGU6ICJ0ZXh0L2h0bWwiLCBjb250ZW50OiBjb250ZW50LCBpbmRlbnRTdHJpbmc6
ICIqKiIgfSB9KTsKLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLQotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGUgc2NyaXB0IGZvcm1h
dHRpbmcgZnVuY3Rpb25hbGl0eS4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBl
dC1tb2RlbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjZWU3
Y2YuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1z
bmlwcGV0LW1vZGVsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAK
LVRlc3RzIHNjcmlwdCBzbmlwcGV0IG1vZGVsLgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLQot
UnVubmluZzogdGVzdENyZWF0ZUFuZFJlbmFtZQotU25pcHBldCBjcmVhdGVkLgotU25pcHBldCB1
aVNvdXJjZUNvZGUgdXJsIGlzIGNvcnJlY3QuCi0KLVJ1bm5pbmc6IHRlc3RFdmFsdWF0ZQotTGFz
dCBldmFsdWF0aW9uIHNvdXJjZSB1cmwgZm9yIHNuaXBwZXQ6IHNuaXBwZXRzOi8vLzFfMQotU25p
cHBldCBzY3JpcHQgYWRkZWQsIHNvdXJjZVVSTCA9IHNuaXBwZXRzOi8vLzFfMQotU25pcHBldCBl
eGVjdXRpb24gcmVzdWx0OiB1bmRlZmluZWQKLUxhc3QgZXZhbHVhdGlvbiBzb3VyY2UgdXJsIGZv
ciBzbmlwcGV0OiBzbmlwcGV0czovLy8yXzIKLVNuaXBwZXQgc2NyaXB0IGFkZGVkLCBzb3VyY2VV
UkwgPSBzbmlwcGV0czovLy8yXzIKLVNuaXBwZXQgZXhlY3V0aW9uIHJlc3VsdDogZnVuY3Rpb24g
ZG9lc05vdGhpbmcoKSB7Ci0gICAgdmFyICBpID0gMisyOwotfQotTGFzdCBldmFsdWF0aW9uIHNv
dXJjZSB1cmwgZm9yIHNuaXBwZXQ6IHNuaXBwZXRzOi8vLzFfMwotU25pcHBldCBzY3JpcHQgYWRk
ZWQsIHNvdXJjZVVSTCA9IHNuaXBwZXRzOi8vLzFfMwotU25pcHBldCBleGVjdXRpb24gcmVzdWx0
OiB1bmRlZmluZWQKLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM3ZWFiZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDEwNCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiByZXNl
dFNuaXBwZXRzU2V0dGluZ3MoKQotICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNu
aXBwZXRNb2RlbC5fc25pcHBldFN0b3JhZ2UucmVzZXQoKTsKLSAgICAgICAgV2ViSW5zcGVjdG9y
LnNjcmlwdFNuaXBwZXRNb2RlbC5fbGFzdFNuaXBwZXRFdmFsdWF0aW9uSW5kZXhTZXR0aW5nLnNl
dCgwKTsKLSAgICB9Ci0KLSAgICAvLyBGSVhNRTogUmVtb3ZlIG9uY2Ugc25pcHBldHMgYXJlIHRh
a2VuIG91dCBvZiBleHBlcmltZW50cy4KLSAgICBXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0
aW5ncy5zbmlwcGV0c1N1cHBvcnQgPSB7fTsKLSAgICBXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNT
ZXR0aW5ncy5zbmlwcGV0c1N1cHBvcnQuaXNFbmFibGVkID0gZnVuY3Rpb24oKSB7IHJldHVybiB0
cnVlOyB9OwotICAgIHZhciB3b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZSgp
OwotICAgIHZhciBzbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNp
bXBsZVdvcmtzcGFjZVByb3ZpZGVyKHdvcmtzcGFjZSwgV2ViSW5zcGVjdG9yLnByb2plY3RUeXBl
cy5TbmlwcGV0cyk7Ci0gICAgdmFyIHdvcmtzcGFjZUNvbnRyb2xsZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLldvcmtzcGFjZUNvbnRyb2xsZXIod29ya3NwYWNlKTsKLSAgICBXZWJJbnNwZWN0b3Iuc2Ny
aXB0U25pcHBldE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwod29y
a3NwYWNlLCBzbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIpOwotICAgIEluc3BlY3RvclRlc3QucnVu
RGVidWdnZXJUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0Q3JlYXRlQW5kUmVuYW1l
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJlc2V0U25pcHBldHNTZXR0aW5ncygpOwot
ICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0
TW9kZWwuY3JlYXRlU2NyaXB0U25pcHBldCgpOwotICAgICAgICAgICAgdmFyIHNuaXBwZXROYW1l
ID0gIlRlc3RTbmlwcGV0IiArIE1hdGgucmFuZG9tKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiU25pcHBldCBjcmVhdGVkLiIpOwotICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5yZW5hbWVTY3JpcHRTbmlwcGV0KHVpU291cmNlQ29kZSwg
c25pcHBldE5hbWUpOwotICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlbmFtZShzbmlwcGV0TmFt
ZSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCB3b3Jrc3BhY2Uu
dWlTb3VyY2VDb2RlcygpLmxlbmd0aCwgIk9ubHkgb25lIHNuaXBwZXQgdWlTb3VyY2VDb2RlIHNo
b3VsZCBiZSBwcmVzZW50LiIpOwotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHdvcmtz
cGFjZS51aVNvdXJjZUNvZGVzKClbMF07Ci0gICAgICAgICAgICBpZiAodWlTb3VyY2VDb2RlLm9y
aWdpblVSTCgpLmluZGV4T2Yoc25pcHBldE5hbWUpID09PSAtMSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCB1aVNv
dXJjZUNvZGUgdXJsIGlzIGNvcnJlY3QuIik7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEV2YWx1YXRlKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJlc2V0U25pcHBldHNTZXR0aW5ncygpOwotCi0gICAgICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlMSA9IFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwuY3JlYXRlU2NyaXB0
U25pcHBldCgpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5y
ZW5hbWVTY3JpcHRTbmlwcGV0KHVpU291cmNlQ29kZTEsICJTbmlwcGV0MSIpOwotICAgICAgICAg
ICAgdWlTb3VyY2VDb2RlMS5yZW5hbWUoIlNuaXBwZXQxIik7Ci0gICAgICAgICAgICB2YXIgY29u
dGVudCA9ICIiOwotICAgICAgICAgICAgY29udGVudCArPSAiLy8gVGhpcyBzbmlwcGV0IGRvZXMg
bm90aGluZy5cbiI7Ci0gICAgICAgICAgICBjb250ZW50ICs9ICJ2YXIgaSA9IDIrMjtcbiI7Ci0g
ICAgICAgICAgICB1aVNvdXJjZUNvZGUxLnNldFdvcmtpbmdDb3B5KGNvbnRlbnQpOwotCi0gICAg
ICAgICAgICB2YXIgdWlTb3VyY2VDb2RlMiA9IFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9k
ZWwuY3JlYXRlU2NyaXB0U25pcHBldCgpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNjcmlw
dFNuaXBwZXRNb2RlbC5yZW5hbWVTY3JpcHRTbmlwcGV0KHVpU291cmNlQ29kZTIsICJTbmlwcGV0
MiIpOwotICAgICAgICAgICAgdWlTb3VyY2VDb2RlMi5yZW5hbWUoIlNuaXBwZXQyIik7Ci0gICAg
ICAgICAgICBjb250ZW50ID0gIiI7Ci0gICAgICAgICAgICBjb250ZW50ICs9ICIvLyBUaGlzIHNu
aXBwZXQgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3RoaW5nIGFuZCByZXR1cm5zIGl0
LlxuIjsKLSAgICAgICAgICAgIGNvbnRlbnQgKz0gImZ1bmN0aW9uIGRvZXNOb3RoaW5nKCkge1xu
IjsKLSAgICAgICAgICAgIGNvbnRlbnQgKz0gIiAgICB2YXIgIGkgPSAyKzI7XG4iOwotICAgICAg
ICAgICAgY29udGVudCArPSAifTtcbiI7Ci0gICAgICAgICAgICBjb250ZW50ICs9ICJkb2VzTm90
aGluZztcbiI7Ci0gICAgICAgICAgICB1aVNvdXJjZUNvZGUyLnNldFdvcmtpbmdDb3B5KGNvbnRl
bnQpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBldmFsdWF0ZVNuaXBwZXRBbmREdW1wRXZhbHVh
dGlvbkRldGFpbHModWlTb3VyY2VDb2RlLCBjYWxsYmFjaykKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlNuaXBwZXRT
Y3JpcHRNYXBwaW5nLnByb3RvdHlwZSwgImFkZFNjcmlwdCIsIGR1bXBTY3JpcHQpOwotICAgICAg
ICAgICAgICAgIC8vIEpTQyBkb2VzIG5vdCBzdXBwb3J0IGNvbXBpbGUtYW5kLXJ1biBmb3Igc25p
cHBldCBldmFsdWF0aW9uLCBzbyBkaWZmZXJlbnQgcGxhdGZvcm1zIGhhdmUgc2xpZ2h0bHkgZGlm
ZmVyZW50IGNvZGVmbG93IGhlcmUsIGhlbmNlIHR3byBzbmlmZmVycy4KLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3Rv
dHlwZSwgIl9wcmludFJlc3VsdCIsIGR1bXBSZXN1bHQpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3Rv
dHlwZSwgIl9wcmludFJ1blNjcmlwdFJlc3VsdCIsIGR1bXBSZXN1bHQpOwotICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwuZXZhbHVhdGVTY3JpcHRTbmlwcGV0
KHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICAgICAgdmFyIGV2YWx1YXRpb25Tb3VyY2VVUkwg
PSBXZWJJbnNwZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVsLl9ldmFsdWF0aW9uU291cmNlVVJMKHVp
U291cmNlQ29kZSk7Ci0gICAgICAgICAgICAgICAgdmFyIHNuaXBwZXRJZCA9IFdlYkluc3BlY3Rv
ci5zY3JpcHRTbmlwcGV0TW9kZWwuX3NuaXBwZXRJZEZvclVJU291cmNlQ29kZS5nZXQodWlTb3Vy
Y2VDb2RlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTGFzdCBl
dmFsdWF0aW9uIHNvdXJjZSB1cmwgZm9yIHNuaXBwZXQ6ICIgKyBldmFsdWF0aW9uU291cmNlVVJM
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhzbmlwcGV0SWQs
IFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwuX3NuaXBwZXRJZEZvclNvdXJjZVVSTChl
dmFsdWF0aW9uU291cmNlVVJMKSwgIlNuaXBwZXQgY2FuIG5vdCBiZSBpZGVudGlmaWVkIGJ5IGl0
cyBldmFsdWF0aW9uIHNvdXJjZVVSTC4iKTsKLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGR1
bXBTY3JpcHQoc2NyaXB0KQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgc2NyaXB0IGFkZGVkLCBzb3VyY2VVUkwg
PSAiICsgc2NyaXB0LnNvdXJjZVVSTCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgZnVuY3Rpb24gZHVtcFJlc3VsdChyZXN1bHQsIHdhc1Rocm93bikKLSAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlw
cGV0IGV4ZWN1dGlvbiByZXN1bHQ6ICIgKyByZXN1bHQuZGVzY3JpcHRpb24pOwotICAgICAgICAg
ICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZXZhbHVhdGVTbmlwcGV0QW5kRHVtcEV2YWx1YXRpb25EZXRhaWxzKHVp
U291cmNlQ29kZTEsIHN0ZXAyKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGV2YWx1YXRlU25pcHBldEFuZER1bXBFdmFsdWF0
aW9uRGV0YWlscyh1aVNvdXJjZUNvZGUyLCBzdGVwMyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBl
dmFsdWF0ZVNuaXBwZXRBbmREdW1wRXZhbHVhdGlvbkRldGFpbHModWlTb3VyY2VDb2RlMSwgbmV4
dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX07Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHNjcmlwdCBzbmlwcGV0
IG1vZGVsLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZWJhMjk2Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw0NSArMCwwIEBACi1UZXN0cyB0aGF0IHNjcmlwdHMgcGFuZWwgVUkgZWxlbWVudHMg
d29yayBhcyBpbnRlbmRlZC4KLQotCi1SdW5uaW5nOiB0ZXN0SW5pdGlhbExvYWQKLUR1bXBpbmcg
U2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgotICAobm8gZG9tYWluKQotICAgIGJhci5q
cwotICAgIGJhei5qcwotICAgIGZvby5qcwotICAgIGZvb2Jhci5qcwotRHVtcGluZyBTY3JpcHRz
TmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKLQotU291cmNlIHJlcXVlc3RlZCBmb3Ig
YmF6LmpzCi0KLVJ1bm5pbmc6IHRlc3RSZXNldAotU291cmNlIHJlcXVlc3RlZCBmb3IgYmF6Lmpz
Ci1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKLSAgKG5vIGRvbWFpbikK
LSAgICBiYXIuanMKLSAgICBiYXouanMKLSAgICBmb28uanMKLUR1bXBpbmcgU2NyaXB0c05hdmln
YXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6Ci0KLUR1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAn
U2NyaXB0cycgdGFiOgotRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMn
IHRhYjoKLQotRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6Ci0gIChubyBk
b21haW4pCi0gICAgYmFyLmpzCi1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2Ny
aXB0cycgdGFiOgotCi0KLVJ1bm5pbmc6IHRlc3REZWJ1Z2dlclVJU291cmNlQ29kZUFkZGVkQW5k
UmVtb3ZlZAotRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6Ci0gIChubyBk
b21haW4pCi0gICAgZm9vLmpzCi1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2Ny
aXB0cycgdGFiOgotCi1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKLSAg
KG5vIGRvbWFpbikKLSAgICBmb28uanMKLSAgICBzb3VyY2UuanMKLUR1bXBpbmcgU2NyaXB0c05h
dmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDgxYjIxNGQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExMiArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgi
c2NyaXB0cyIpOwotICAgIEluc3BlY3RvclRlc3QuY3JlYXRlV29ya3NwYWNlKHRydWUpOwotCi0g
ICAgZnVuY3Rpb24gY3JlYXRlQ29udGVudFByb3ZpZGVyKHVybCkKLSAgICB7Ci0gICAgICAgIHZh
ciBjb250ZW50UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXRpY0NvbnRlbnRQcm92aWRl
cihXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsICIiLCAidGV4dC9qYXZhc2NyaXB0
Iik7Ci0gICAgICAgIGNvbnRlbnRQcm92aWRlci5yZXF1ZXN0Q29udGVudCA9IGZ1bmN0aW9uKGNh
bGxiYWNrKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
U291cmNlIHJlcXVlc3RlZCBmb3IgIiArIHVybCk7Ci0gICAgICAgICAgICBjYWxsYmFjaygiIik7
Ci0gICAgICAgIH07Ci0gICAgICAgIHJldHVybiBjb250ZW50UHJvdmlkZXI7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gY3JlYXRlTW9ja1dvcmtzcGFjZSgpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSh0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0
RGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3Nw
YWNlUHJvdmlkZXIoSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLCBXZWJJbnNwZWN0b3IucHJv
amVjdFR5cGVzLkRlYnVnZ2VyKTsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QudGVzdFdv
cmtzcGFjZTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2Us
IHVybCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29y
a3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVSTCh1cmwsIGNyZWF0ZUNvbnRlbnRQcm92aWRlcih1
cmwpLCBmYWxzZSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWRkRGVidWdnZXJGaWxlKHdvcmtz
cGFjZSwgdXJsKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QudGVzdERlYnVn
Z2VyV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVSTCh1cmwsIGNyZWF0ZUNvbnRlbnRQcm92
aWRlcih1cmwpLCBmYWxzZSk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3Vp
dGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0SW5pdGlhbExvYWQobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgdmFyIHdvcmtzcGFjZSA9IGNyZWF0ZU1vY2tXb3Jrc3BhY2UoKTsKLQotICAg
ICAgICAgICAgYWRkTmV0d29ya0ZpbGUod29ya3NwYWNlLCAiZm9vYmFyLmpzIik7Ci0KLSAgICAg
ICAgICAgIHZhciBwYW5lbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKHdvcmtzcGFj
ZSk7Ci0gICAgICAgICAgICBwYW5lbC5zaG93KCk7Ci0KLSAgICAgICAgICAgIGFkZE5ldHdvcmtG
aWxlKHdvcmtzcGFjZSwgImZvby5qcyIpOwotICAgICAgICAgICAgYWRkTmV0d29ya0ZpbGUod29y
a3NwYWNlLCAiYmFyLmpzIik7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gYWRkTmV0
d29ya0ZpbGUod29ya3NwYWNlLCAiYmF6LmpzIik7Ci0gICAgICAgICAgICBwYW5lbC5fbmF2aWdh
dG9yLnJldmVhbFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwotCi0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKHBhbmVsLl9uYXZpZ2F0b3IpOwotCi0gICAg
ICAgICAgICAvLyBTZWxlY3QgImJhei5qcyIuCi0gICAgICAgICAgICBwYW5lbC5fc2hvd0ZpbGUo
d29ya3NwYWNlLnVpU291cmNlQ29kZUZvck9yaWdpblVSTCgiYmF6LmpzIikpOwotICAgICAgICAg
ICAgcGFuZWwuZGV0YWNoKCk7Ci0KLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQot
ICAgICAgICBmdW5jdGlvbiB0ZXN0UmVzZXQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
dmFyIHdvcmtzcGFjZSA9IGNyZWF0ZU1vY2tXb3Jrc3BhY2UoKTsKLSAgICAgICAgICAgIHZhciB3
b3Jrc3BhY2VDb250cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VDb250cm9sbGVy
KHdvcmtzcGFjZSk7Ci0gICAgICAgICAgICB2YXIgcGFuZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbCh3b3Jrc3BhY2UpOwotICAgICAgICAgICAgcGFuZWwuc2hvdygpOwotCi0gICAg
ICAgICAgICBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJmb28uanMiKTsKLSAgICAgICAgICAg
IGFkZE5ldHdvcmtGaWxlKHdvcmtzcGFjZSwgImJhci5qcyIpOwotICAgICAgICAgICAgYWRkTmV0
d29ya0ZpbGUod29ya3NwYWNlLCAiYmF6LmpzIik7Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25hdmlnYXRvcik7Ci0KLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5yZXNldCgpOwotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihwYW5lbC5fbmF2aWdh
dG9yKTsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBhZGROZXR3b3JrRmlsZSh3b3Jr
c3BhY2UsICJiYXIuanMiKTsKLSAgICAgICAgICAgIHBhbmVsLl9uYXZpZ2F0b3IucmV2ZWFsVUlT
b3VyY2VDb2RlKHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBT
Y3JpcHRzTmF2aWdhdG9yKHBhbmVsLl9uYXZpZ2F0b3IpOwotCi0gICAgICAgICAgICBwYW5lbC5k
ZXRhY2goKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5j
dGlvbiB0ZXN0RGVidWdnZXJVSVNvdXJjZUNvZGVBZGRlZEFuZFJlbW92ZWQobmV4dCkKLSAgICAg
ICAgewotICAgICAgICAgICAgdmFyIHdvcmtzcGFjZSA9IGNyZWF0ZU1vY2tXb3Jrc3BhY2UoKTsK
LSAgICAgICAgICAgIHZhciBwYW5lbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKHdv
cmtzcGFjZSk7Ci0gICAgICAgICAgICBwYW5lbC5zaG93KCk7Ci0KLSAgICAgICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJmb28uanMiKTsKLSAgICAg
ICAgICAgIHZhciBkZWJ1Z2dlclVJU291cmNlQ29kZSA9IGFkZERlYnVnZ2VyRmlsZSh3b3Jrc3Bh
Y2UsICJjb21waWxlZC5qcyIpOwotICAgICAgICAgICAgcGFuZWwuX25hdmlnYXRvci5yZXZlYWxV
SVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgIHBhbmVsLl9uYXZpZ2F0b3Iu
cmV2ZWFsVUlTb3VyY2VDb2RlKGRlYnVnZ2VyVUlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25hdmlnYXRvcik7Ci0KLSAg
ICAgICAgICAgIC8vIFBsdWcgY29tcGlsZXIgc291cmNlIG1hcHBpbmcuCi0gICAgICAgICAgICBh
ZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJzb3VyY2UuanMiKTsKLQotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihwYW5lbC5fbmF2aWdhdG9yKTsKLSAgICAg
ICAgICAgIG5leHQoKTsKLSAgICAgICAgfQotICAgIF0pOwotfTsKLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBzY3JpcHRzIHBhbmVs
IFVJIGVsZW1lbnRzIHdvcmsgYXMgaW50ZW5kZWQuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29ydGluZy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0
aW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzA4NTllNS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0
aW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLVRlc3RzIHNj
cmlwdHMgc29ydGluZyBpbiB0aGUgc2NyaXB0cyBwYW5lbC4KLQotCi1EdW1waW5nIFNjcmlwdHNO
YXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKLSAgKG5vIGRvbWFpbikKLSAgYmFyLmNvbQotICBmb28u
Y29tCi1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgotICAo
bm8gZG9tYWluKQotICBleHRlbnNpb24tbmFtZQotCi1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3Ig
J1NjcmlwdHMnIHRhYjoKLSAgKG5vIGRvbWFpbikKLSAgYmFyLmNvbQotICBmb28uY29tCi0gICAg
X2pzL3Byb2R1Y3Rpb24KLSAgICBmb28vcGF0aAotICAgIGkKLSAgICBibG9jay5qcz9ibG9jaz1m
b28KLSAgICBnYS5qcwotICAgIGxlbnRhLmJhbj9wZz00ODgzJmlmcj0xCi0gICAgbGVudGEuYmFu
P3BnPTUzMDkmaWZyPTEKLSAgICB0b3AxMDAuamNuPzgwNjc0Ci1EdW1waW5nIFNjcmlwdHNOYXZp
Z2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgotICAobm8gZG9tYWluKQotICBleHRlbnNpb24t
bmFtZQotCi1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKLSAgKG5vIGRv
bWFpbikKLSAgICAqTm9uKlVSTCpwYXRoCi0gIGJhci5jb20KLSAgICBmb28vcGF0aAotICAgICAg
YmFyLmpzP2ZpbGU9YmFyL3p6ei5qcwotICAgICAgZm9vLmpzP2ZpbGU9YmFyL2FhYS5qcwotICBm
b28uY29tCi0gICAgX2pzL3Byb2R1Y3Rpb24KLSAgICAgIG1vdG9yLmpzPzEzMDg5Mjc0MzIKLSAg
ICBmb28vcGF0aAotICAgICAgYmFyLmpzP2ZpbGU9YmFyL3p6ei5qcwotICAgICAgZm9vLmpzP2Zp
bGU9YmFyL2FhYS5qcwotICAgIGkKLSAgICAgIGpzCi0gICAgICAgIGpxdWVyeS0xLjUuMS5taW4u
anMKLSAgICAgICAganF1ZXJ5LmNvb2tpZS5qcwotICAgICAgeGdlbWl1cy5qcwotICAgIGJsb2Nr
LmpzP2Jsb2NrPWZvbwotICAgIGdhLmpzCi0gICAgbGVudGEuYmFuP3BnPTQ4ODMmaWZyPTEKLSAg
ICBsZW50YS5iYW4/cGc9NTMwOSZpZnI9MQotICAgIHRvcDEwMC5qY24/ODA2NzQKLUR1bXBpbmcg
U2NyaXB0c05hdmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6Ci0gIChubyBkb21haW4pCi0g
ICAgKkFub3RoZXIqTm9uKlVSTCpwYXRoCi0gIGV4dGVuc2lvbi1uYW1lCi0gICAgZm9sZGVyCi0g
ICAgICBiYXouanMKLSAgICBiYXIuanMKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDNkYTRkYWMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3NjcmlwdHMtc29ydGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMiPjwvc2NyaXB0PgotCi08
c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgi
c2NyaXB0cyIpOwotICAgIEluc3BlY3RvclRlc3QuY3JlYXRlV29ya3NwYWNlKHRydWUpOwotICAg
IHZhciBwYW5lbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKEluc3BlY3RvclRlc3Qu
dGVzdFdvcmtzcGFjZSk7Ci0gICAgdmFyIG5hdmlnYXRvciA9IHBhbmVsLl9uYXZpZ2F0b3I7Ci0K
LSAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IFtdOwotICAgIGZ1bmN0aW9uIGFkZFVJU291cmNlQ29k
ZSh1cmwsIGlzQ29udGVudFNjcmlwdCkKLSAgICB7Ci0gICAgICAgIHZhciBjb250ZW50UHJvdmlk
ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXRpY0NvbnRlbnRQcm92aWRlcihXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUeXBlcy5TY3JpcHQsICIiLCAidGV4dC9qYXZhc2NyaXB0Iik7Ci0gICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSBJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29ya3NwYWNlUHJvdmlk
ZXIuYWRkRmlsZUZvclVSTCh1cmwsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UsIGlzQ29udGVudFNj
cmlwdCk7Ci0gICAgICAgIHVpU291cmNlQ29kZXMucHVzaCh1aVNvdXJjZUNvZGUpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGR1bXBTY3JpcHRzTGlzdCgpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNO
YXZpZ2F0b3IobmF2aWdhdG9yKTsKLSAgICAgICAgbmF2aWdhdG9yLnJldmVhbFVJU291cmNlQ29k
ZSh1aVNvdXJjZUNvZGVzWzBdKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05h
dmlnYXRvcihuYXZpZ2F0b3IpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNl
Q29kZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBuYXZpZ2F0b3IucmV2ZWFsVUlTb3VyY2VD
b2RlKHVpU291cmNlQ29kZXNbaV0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRz
TmF2aWdhdG9yKG5hdmlnYXRvcik7Ci0gICAgfQotCi0gICAgdmFyIHNjcmlwdHMgPSBbCi0gICAg
ICAgICJibG9jay5qcz9ibG9jaz1mb28iLAotICAgICAgICAiZ2EuanMiLAotICAgICAgICAibGVu
dGEuYmFuP3BnPTQ4ODMmaWZyPTEiLAotICAgICAgICAibGVudGEuYmFuP3BnPTUzMDkmaWZyPTEi
LAotICAgICAgICAidG9wMTAwLmpjbj84MDY3NCIsCi0gICAgICAgICJfanMvcHJvZHVjdGlvbi9t
b3Rvci5qcz8xMzA4OTI3NDMyIiwKLSAgICAgICAgImkveGdlbWl1cy5qcyIsCi0gICAgICAgICJp
L2pzL2pxdWVyeS0xLjUuMS5taW4uanMiLAotICAgICAgICAiaS9qcy9qcXVlcnkuY29va2llLmpz
IiwKLSAgICAgICAgImZvby9wYXRoL2Jhci5qcz9maWxlPWJhci96enouanMiLAotICAgICAgICAi
Zm9vL3BhdGgvZm9vLmpzP2ZpbGU9YmFyL2FhYS5qcyIgXTsKLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpCi0gICAgICAgIGFkZFVJU291cmNlQ29kZSgiaHR0cDov
L2Zvby5jb20vIiArIHNjcmlwdHNbaV0pOwotCi0gICAgdmFyIHNjcmlwdHMyID0gWwotICAgICAg
ICAiZm9vL3BhdGgvYmFyLmpzP2ZpbGU9YmFyL3p6ei5qcyIsCi0gICAgICAgICJmb28vcGF0aC9m
b28uanM/ZmlsZT1iYXIvYWFhLmpzIiBdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0
czIubGVuZ3RoOyArK2kpCi0gICAgICAgIGFkZFVJU291cmNlQ29kZSgiaHR0cDovL2Jhci5jb20v
IiArIHNjcmlwdHMyW2ldKTsKLSAgICBhZGRVSVNvdXJjZUNvZGUoIipOb24qVVJMKnBhdGgiKTsK
LQotICAgIHZhciBleHRlbnNpb25zID0gWwotICAgICAgICAiZXh0ZW5zaW9uLXNjaGVtYTovL2V4
dGVuc2lvbi1uYW1lL2Jhci5qcyIsCi0gICAgICAgICJleHRlbnNpb24tc2NoZW1hOi8vZXh0ZW5z
aW9uLW5hbWUvZm9sZGVyL2Jhei5qcyIgXTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4dGVu
c2lvbnMubGVuZ3RoOyArK2kpCi0gICAgICAgIGFkZFVJU291cmNlQ29kZShleHRlbnNpb25zW2ld
LCB0cnVlKTsKLSAgICBhZGRVSVNvdXJjZUNvZGUoIipBbm90aGVyKk5vbipVUkwqcGF0aCIsIHRy
dWUpOwotICAgIGR1bXBTY3JpcHRzTGlzdCgpOwotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci19Ci08L3NjcmlwdD4KLQotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgotPHA+Ci1UZXN0cyBzY3JpcHRzIHNvcnRpbmcgaW4gdGhlIHNjcmlwdHMgcGFuZWwuCi08L3A+
Ci08L2JvZHk+Ci0KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zZWxlY3RlZC1jYWxsLWZyYW1lLWFmdGVyLWZvcm1hdHRpbmctc291cmNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZWxlY3RlZC1jYWxsLWZy
YW1lLWFmdGVyLWZvcm1hdHRpbmctc291cmNlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNTJkZDkyMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2VsZWN0ZWQtY2FsbC1mcmFtZS1hZnRlci1mb3JtYXR0aW5nLXNvdXJjZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLVRlc3RzIHNlbGVjdGVk
IGNhbGwgZnJhbWUgZG9lcyBub3QgY2hhbmdlIHdoZW4gcHJldHR5LXByaW50IGlzIHRvZ2dsZWQu
Ci0KLUJ1ZyA3MDkwNgotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1TZXQgdGltZXIgZm9yIHRlc3Qg
ZnVuY3Rpb24uCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLVNjcmlwdCBleGVjdXRpb24gcmVz
dW1lZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3NlbGVjdGVkLWNhbGwtZnJhbWUtYWZ0ZXItZm9ybWF0dGluZy1z
b3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZWxlY3RlZC1jYWxs
LWZyYW1lLWFmdGVyLWZvcm1hdHRpbmctc291cmNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDJiMmZhMTMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NlbGVjdGVkLWNhbGwtZnJhbWUtYWZ0ZXItZm9ybWF0dGluZy1zb3VyY2UuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3RGdW5jdGlv
bigpCi17Ci0gICAgcmV0dXJuIHRlc3RGdW5jdGlvbjIoKTsKLX0KLQotZnVuY3Rpb24gdGVzdEZ1
bmN0aW9uMigpCi17Ci0gICAgdmFyIHggPSBNYXRoLnNxcnQoMTApOwotICAgIGRlYnVnZ2VyOwot
ICAgIHJldHVybiB4OwotfQotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBJbnNwZWN0
b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLSAgICB2YXIgcGFuZWwgPSBXZWJJbnNw
ZWN0b3IucGFuZWxzLnNjcmlwdHM7Ci0gICAgdmFyIHNvdXJjZUZyYW1lOwotCi0gICAgZnVuY3Rp
b24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgdmFyIHRlc3ROYW1lID0gV2ViSW5zcGVjdG9yLmlu
c3BlY3RlZFBhZ2VVUkw7Ci0gICAgICAgIHRlc3ROYW1lID0gdGVzdE5hbWUuc3Vic3RyaW5nKHRl
c3ROYW1lLmxhc3RJbmRleE9mKCcvJykgKyAxKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93
U2NyaXB0U291cmNlKHRlc3ROYW1lLCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3Rl
cDIoZnJhbWUpCi0gICAgewotICAgICAgICBzb3VyY2VGcmFtZSA9IGZyYW1lOyAKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoc3RlcDMpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsgcmV0dXJuOwotICAgICAgICBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNb2RlbC5zZXRTZWxlY3RlZENhbGxGcmFtZShXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5kZWJ1Z2dlclBhdXNlZERldGFpbHMoKS5jYWxsRnJhbWVzWzFdKTsKLSAgICAgICAgc291
cmNlRnJhbWUuX3RvZ2dsZUZvcm1hdFNvdXJjZShzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RlcDQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoInRl
c3RGdW5jdGlvbiIsIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNlbGVjdGVkQ2FsbEZyYW1l
KCkuZnVuY3Rpb25OYW1lKTsKLSAgICAgICAgc291cmNlRnJhbWUuX3RvZ2dsZUZvcm1hdFNvdXJj
ZShzdGVwNSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDUoKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBzZWxlY3Rl
ZCBjYWxsIGZyYW1lIGRvZXMgbm90IGNoYW5nZSB3aGVuIHByZXR0eS1wcmludCBpcyB0b2dnbGVk
LjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MDkwNiI+QnVnIDcwOTA2PC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldC1icmVha3BvaW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXQtYnJlYWtwb2ludC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5ZmRlYTAuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldC1icmVha3BvaW50LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLVRlc3RzIHNldHRpbmcgYnJlYWtwb2ludHMu
Ci0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotCi1SdW5uaW5nOiB0ZXN0U2V0QnJlYWtwb2ludAot
U2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uCi1TZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCi1T
Y3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUNhbGwgc3RhY2s6Ci0gICAgMCkgdGVzdEZ1bmN0aW9u
IChzZXQtYnJlYWtwb2ludC5odG1sOjE3KQotCi1EdW1wIGJyZWFrcG9pbnQgc2lkZWJhciBwYW5l
OgotCi0gICAgc2V0LWJyZWFrcG9pbnQuaHRtbDoxNwotICAgIHZhciB4ID0gTWF0aC5zcXJ0KDEw
KTsKLQotRHVtcCBicmVha3BvaW50IHNpZGViYXIgcGFuZToKLQotU2NyaXB0IGV4ZWN1dGlvbiBy
ZXN1bWVkLgotCi1SdW5uaW5nOiB0ZXN0U2V0QnJlYWtwb2ludE9uVGhlTGFzdExpbmUKLUNhbGwg
c3RhY2s6Ci0gICAgMCkgb25lTGluZVRlc3RGdW5jdGlvbiAoc2V0LWJyZWFrcG9pbnQuaHRtbDo3
KQotCi1SdW5uaW5nOiB0ZXN0U2V0QnJlYWtwb2ludE9uVGhlTGFzdExpbmUyCi1DYWxsIHN0YWNr
OgotICAgIDApIG9uZUxpbmVUZXN0RnVuY3Rpb24yIChzZXQtYnJlYWtwb2ludC5odG1sOjExKQot
Ci1SdW5uaW5nOiB0ZXN0U2V0QnJlYWtwb2ludE9uVGhlU2FtZUxpbmUKLURlYnVnZ2VyIHdhcyBk
aXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nl
dC1icmVha3BvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0LWJy
ZWFrcG9pbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzA2ODllZi4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0LWJyZWFrcG9pbnQu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci10ZXN0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIG9uZUxpbmVUZXN0RnVu
Y3Rpb24oKSB7IHJldHVybiAwOyB9Ci08L3NjcmlwdD4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIG9u
ZUxpbmVUZXN0RnVuY3Rpb24yKCkgeyByZXR1cm4gMDsgfTwvc2NyaXB0PgotCi08c2NyaXB0Pgot
Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKQotewotICAgIHZhciB4ID0gTWF0aC5zcXJ0KDEwKTsK
LSAgICByZXR1cm4geDsKLX0KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgdmFyIGN1
cnJlbnRTb3VyY2VGcmFtZTsKLSAgICBJbnNwZWN0b3JUZXN0LnNldFF1aWV0KHRydWUpOwotICAg
IEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0
ZXN0U2V0QnJlYWtwb2ludChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNob3dTY3JpcHRTb3VyY2UoInNldC1icmVha3BvaW50Lmh0bWwiLCBkaWRTaG93U2NyaXB0
U291cmNlKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShzb3Vy
Y2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlRnJh
bWUgPSBzb3VyY2VGcmFtZTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZXRCcmVha3BvaW50KGN1cnJlbnRTb3VyY2VGcmFtZSwgMTYsICIiLCB0cnVlKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBh
dXNlZChkaWRQYXVzZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRp
ZFBhdXNlKGNhbGxGcmFtZXMpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBleGVjdXRpb24gcGF1c2VkLiIpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7Ci0gICAg
ICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTaWRlYmFyUGFuZSgpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihjdXJyZW50U291cmNlRnJhbWUsICJfcmVtb3ZlQnJl
YWtwb2ludERlY29yYXRpb24iLCBicmVha3BvaW50UmVtb3ZlZCk7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5yZW1vdmVCcmVha3BvaW50KGN1cnJlbnRTb3VyY2VGcmFtZSwgMTYpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50UmVtb3ZlZCgp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVj
dXRpb24oZGlkUmVzdW1lKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24g
ZGlkUmVzdW1lKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2lu
dFNpZGViYXJQYW5lKCkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
U2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLiIpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0QnJlYWtw
b2ludE9uVGhlTGFzdExpbmUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5zaG93U2NyaXB0U291cmNlKCJzZXQtYnJlYWtwb2ludC5odG1sIiwgZGlkU2hvd1Njcmlw
dFNvdXJjZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291
cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZUZy
YW1lID0gc291cmNlRnJhbWU7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVh
a3BvaW50KGN1cnJlbnRTb3VyY2VGcmFtZSwgNiwgIiIsIHRydWUpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKGRpZFBhdXNlKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KG9uZUxpbmVUZXN0RnVu
Y3Rpb24sIDApIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFBh
dXNlKGNhbGxGcmFtZXMpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJlbW92ZUJyZWFrcG9pbnQoY3VycmVudFNvdXJjZUZyYW1lLCA2KTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihuZXh0KTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0QnJlYWtwb2ludE9u
VGhlTGFzdExpbmUyKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
c2hvd1NjcmlwdFNvdXJjZSgic2V0LWJyZWFrcG9pbnQuaHRtbCIsIGRpZFNob3dTY3JpcHRTb3Vy
Y2UpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZy
YW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2VGcmFtZSA9
IHNvdXJjZUZyYW1lOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2lu
dChjdXJyZW50U291cmNlRnJhbWUsIDEwLCAiIiwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQoZGlkUGF1c2UpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQob25lTGluZVRlc3RGdW5jdGlv
bjIsIDApIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFBhdXNl
KGNhbGxGcmFtZXMpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnJlbW92ZUJyZWFrcG9pbnQoY3VycmVudFNvdXJjZUZyYW1lLCAxMCk7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24obmV4dCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldEJyZWFrcG9pbnRPblRo
ZVNhbWVMaW5lKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIERlYnVnZ2VyQWdlbnQuc2V0
QnJlYWtwb2ludEJ5VXJsKDEsICJmb28uanMiLCB1bmRlZmluZWQsIDIsIHt9LCBkaWRTZXRCcmVh
a3BvaW50KTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2V0QnJlYWtwb2ludChlcnJvciwg
YnJlYWtwb2ludElkKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0VHJ1ZSghZXJyb3IpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0VHJ1ZSghIWJyZWFrcG9pbnRJZCk7Ci0gICAgICAgICAgICAgICAgRGVidWdnZXJBZ2VudC5z
ZXRCcmVha3BvaW50QnlVcmwoMSwgImZvby5qcyIsIHVuZGVmaW5lZCwgMiwge30sIGRpZFNldEJy
ZWFrcG9pbnRBZ2Fpbik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRp
ZFNldEJyZWFrcG9pbnRBZ2FpbihlcnJvciwgYnJlYWtwb2ludElkKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghIWVycm9yKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoIWJyZWFrcG9pbnRJZCk7Ci0gICAg
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci0K
LSAgICBmdW5jdGlvbiBkdW1wQnJlYWtwb2ludFNpZGViYXJQYW5lKCkKLSAgICB7Ci0gICAgICAg
IHZhciBwYW5lRWxlbWVudCA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFu
ZXMuanNCcmVha3BvaW50cy5saXN0RWxlbWVudAotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1wIGJyZWFrcG9p
bnQgc2lkZWJhciBwYW5lOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChJbnNw
ZWN0b3JUZXN0LnRleHRDb250ZW50V2l0aExpbmVCcmVha3MocGFuZUVsZW1lbnQpKTsKLSAgICB9
Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08
cD4KLVRlc3RzIHNldHRpbmcgYnJlYWtwb2ludHMuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUt
Y291bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJj
ZS1mcmFtZS1jb3VudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGMyMjdiZDcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nv
dXJjZS1mcmFtZS1jb3VudC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAg
QEAKLVRlc3RzIHRoYXQgc2NyaXB0cyBwYW5lbCBkb2VzIG5vdCBjcmVhdGUgdG9vIG1hbnkgc291
cmNlIGZyYW1lcy4KLQotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi0KLVJ1bm5pbmc6IHRlc3RTb3Vy
Y2VGcmFtZXNDb3VudAotUGFnZSByZWxvYWRlZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1j
b3VudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1j
b3VudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTFlNGY4Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUtY291bnQu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JpcHQxLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2NyaXB0Mi5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NjcmlwdDMuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0Pgot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1
aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNvdXJjZUZyYW1lc0NvdW50KG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0
czsKLSAgICAgICAgICAgIHZhciBzZWxlY3QgPSBwYW5lbC5fbmF2aWdhdG9yLl9maWxlc1NlbGVj
dEVsZW1lbnQ7Ci0gICAgICAgICAgICB2YXIgc291cmNlRnJhbWVDb3VudCA9IDA7Ci0KLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgic291cmNlLWZyYW1lLWNvdW50
Lmh0bWwiLCBzdGVwMik7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoInNj
cmlwdDEuanMiLCBzdGVwMyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9u
IHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNo
b3dTY3JpcHRTb3VyY2UoInNjcmlwdDIuanMiLCBkaWRTaG93U2NyaXB0U291cmNlcyk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2VzKCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgYWxyZWFkeVNob3duVVJMcyA9IHt9
OwotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGRpZENyZWF0ZVNvdXJjZUZyYW1lKCkKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghYWxyZWFkeVNob3duVVJMc1t0
aGlzLl91aVNvdXJjZUNvZGUub3JpZ2luVVJMKCldKQotICAgICAgICAgICAgICAgICAgICAgICAg
c291cmNlRnJhbWVDb3VudCArPSAxOwotICAgICAgICAgICAgICAgICAgICBhbHJlYWR5U2hvd25V
UkxzW3RoaXMuX3VpU291cmNlQ29kZS5vcmlnaW5VUkwoKV0gPSB0cnVlOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSwgIndhc1Nob3duIiwgZGlkQ3JlYXRlU291cmNlRnJh
bWUsIHRydWUpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShkaWRS
ZWxvYWQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRSZWxvYWQo
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1Njcmlw
dFNvdXJjZSgic2NyaXB0My5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2VBZ2Fpbik7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2VBZ2Fpbigp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVl
KHBhbmVsLl9lZGl0b3JDb250YWluZXIudmlzaWJsZVZpZXcuX3VpU291cmNlQ29kZS5vcmlnaW5V
UkwoKS5pbmRleE9mKCJzY3JpcHQzLmpzIikgIT09IC0xKTsKLSAgICAgICAgICAgICAgICAvLyBU
aGVyZSBzaG91bGQgYmUgbWF4aW11bSAzIHNvdXJjZSBmcmFtZXMgc2hvd246Ci0gICAgICAgICAg
ICAgICAgLy8gIC0gZmlyc3Qgb25lIGlzIHRoZSBmaXJzdCBzaG93biAoZmlyc3QgdGFiIGFkZGVk
KQotICAgICAgICAgICAgICAgIC8vICAtIHNlY29uZCBvbmUgaXMgdGhlIGxhc3Qgdmlld2VkICgi
c2NyaXB0Mi5qcyIpCi0gICAgICAgICAgICAgICAgLy8gIC0gdGhpcmQgb25lIGlzIGV4cGxpY2l0
bHkgc2VsZWN0ZWQgc2NyaXB0My5qcy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEVxdWFscyh0cnVlLCBzb3VyY2VGcmFtZUNvdW50IDw9IDMsICJ0b28gbWFueSBzb3VyY2Ug
ZnJhbWVzIGNyZWF0ZWQgYWZ0ZXIgcGFnZSByZWxvYWQiKTsKLSAgICAgICAgICAgICAgICBuZXh0
KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX07Ci0KLTwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotZnVuY3Rpb24gc2Vjb25kSW5saW5lZFNjcmlwdEluUGFnZSgpCi17Ci0gICAg
cmV0dXJuIDA7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIHRoaXJkSW5saW5l
ZFNjcmlwdEluUGFnZSgpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlw
dD4KLWZ1bmN0aW9uIGZvdXJ0aElubGluZWRTY3JpcHRJblBhZ2UoKQotewotICAgIHJldHVybiAw
OwotfQotPC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
PHA+VGVzdHMgdGhhdCBzY3JpcHRzIHBhbmVsIGRvZXMgbm90IGNyZWF0ZSB0b28gbWFueSBzb3Vy
Y2UgZnJhbWVzLjwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZyYW1lLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWEwYjIwZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZyYW1lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDE3ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogdGVzdCBlcnJv
ciBtZXNzYWdlCi1UZXN0cyB0aGF0IGl0J3MgcG9zc2libGUgdG8gc2V0IGJyZWFrcG9pbnQgaW4g
c291cmNlIGZyYW1lLCBhbmQgdGhhdCBzb3VyY2UgZnJhbWUgZGlzcGxheXMgYnJlYWtwb2ludHMg
YW5kIGNvbnNvbGUgZXJyb3JzLgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLQotUnVubmluZzog
dGVzdFNldEJyZWFrcG9pbnQKLVNjcmlwdCBzb3VyY2Ugd2FzIHNob3duLgotQnJlYWtwb2ludCBh
ZGRlZCB0byBzb3VyY2UgZnJhbWUgYXQgbGluZSAxNAotCi1SdW5uaW5nOiB0ZXN0Q29uc29sZU1l
c3NhZ2UKLVNjcmlwdCBzb3VyY2Ugd2FzIHNob3duLgotTWVzc2FnZSBhZGRlZCB0byBzb3VyY2Ug
ZnJhbWU6IHRlc3QgZXJyb3IgbWVzc2FnZQotTWVzc2FnZXMgY2xlYXJlZCBpbiBzb3VyY2UgZnJh
bWUuCi0KLVJ1bm5pbmc6IHRlc3RTaG93UmVzb3VyY2UKLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjdiNjY2Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDEwNCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLQotZnVuY3Rpb24gYWRkRXJyb3JUb0NvbnNvbGUoKQotewotICAg
IGNvbnNvbGUuZXJyb3IoInRlc3QgZXJyb3IgbWVzc2FnZSIpOwotfQotCi1mdW5jdGlvbiBtZXRo
b2RGb3JCcmVha3BvaW50KCkKLXsKLSAgICBhbGVydCgiSGVsbG8gd29ybGQiKTsKLX0KLQotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicmVzb3VyY2VzIik7
Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0
aW9uIHRlc3RTZXRCcmVha3BvaW50KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgic291cmNlLWZyYW1lLmh0bWwiLCBkaWRTaG93U2Ny
aXB0U291cmNlKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShz
b3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uIik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJh
bWUucHJvdG90eXBlLCAiX2FkZEJyZWFrcG9pbnREZWNvcmF0aW9uIiwgZGlkQWRkQnJlYWtwb2lu
dCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50KHNvdXJjZUZy
YW1lLCAxNCwgIiIsIHRydWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlv
biBkaWRBZGRCcmVha3BvaW50KGxpbmVOdW1iZXIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkJyZWFrcG9pbnQgYWRkZWQgdG8gc291cmNl
IGZyYW1lIGF0IGxpbmUgIiArIGxpbmVOdW1iZXIpOwotICAgICAgICAgICAgICAgIG5leHQoKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0Q29uc29s
ZU1lc3NhZ2UobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93
U2NyaXB0U291cmNlKCJzb3VyY2UtZnJhbWUuaHRtbCIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwot
Ci0gICAgICAgICAgICB2YXIgc2hvd25Tb3VyY2VGcmFtZTsKLSAgICAgICAgICAgIGZ1bmN0aW9u
IGRpZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBzb3VyY2Ugd2FzIHNob3du
LiIpOwotICAgICAgICAgICAgICAgIHNob3duU291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lLnByb3RvdHlwZSwgImFkZE1lc3NhZ2VUb1NvdXJjZSIsIGRpZEFkZE1lc3NhZ2UpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWUucHJvdG90eXBlLCAiY2xlYXJNZXNzYWdlcyIsIGNsZWFyTWVzc2FnZXMpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImFkZEVycm9yVG9Db25z
b2xlKCkiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkQWRkTWVz
c2FnZShsaW5lTnVtYmVyLCBtZXNzYWdlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGlmICh0aGlzICE9PSBzaG93blNvdXJjZUZyYW1lKQotICAgICAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk1lc3NhZ2UgYWRk
ZWQgdG8gc291cmNlIGZyYW1lOiAiICsgbWVzc2FnZS5tZXNzYWdlKTsKLSAgICAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuY29uc29sZS5yZXF1ZXN0Q2xlYXJNZXNzYWdlcygpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBjbGVhck1lc3NhZ2VzKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBpZiAodGhpcyAhPT0gc2hvd25Tb3VyY2VGcmFtZSkKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJNZXNzYWdlcyBjbGVhcmVkIGluIHNvdXJjZSBmcmFtZS4iKTsKLSAgICAgICAgICAg
ICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rp
b24gdGVzdFNob3dSZXNvdXJjZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNw
ZWN0b3Iuc2hvd1BhbmVsKCJuZXR3b3JrIik7Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLCAic2hvdyIsIGRp
ZFNob3dTb3VyY2VGcmFtZSk7Ci0KLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRy
ZWVNb2RlbC5mb3JBbGxSZXNvdXJjZXModmlzaXQpOwotICAgICAgICAgICAgZnVuY3Rpb24gdmlz
aXQocmVzb3VyY2UpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc291cmNl
LnVybC5pbmRleE9mKCJkZWJ1Z2dlci10ZXN0LmpzIikgIT09IC0xKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzLnNob3dSZXNvdXJjZShyZXNvdXJj
ZSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NvdXJjZUZy
YW1lKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX07Ci0KLTwvc2NyaXB0PgotCi08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQgaXQncyBwb3NzaWJsZSB0byBz
ZXQgYnJlYWtwb2ludCBpbiBzb3VyY2UgZnJhbWUsIGFuZCB0aGF0Ci1zb3VyY2UgZnJhbWUgZGlz
cGxheXMgYnJlYWtwb2ludHMgYW5kIGNvbnNvbGUgZXJyb3JzLgotPC9wPgotCi08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNl
LXVybC1jb21tZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zb3VyY2UtdXJsLWNvbW1lbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyMTA3NDY1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zb3VyY2UtdXJsLWNvbW1lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MjMgKzAsMCBAQAotVGVzdHMgdGhhdCBldmFscyB3aXRoIHNvdXJjZVVSTCBjb21tZW50IGFyZSBz
aG93biBpbiBzY3JpcHRzIHBhbmVsLgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLQotUnVubmlu
ZzogdGVzdFNvdXJjZVVSTENvbW1lbnRJbklubGluZVNjcmlwdAotCi1SdW5uaW5nOiB0ZXN0U291
cmNlVVJMQ29tbWVudAotZnVuY3Rpb24ga2VlcEFsaXZlKCkge30KLS8vQCBzb3VyY2VVUkw9ZXZh
bFVSTC5qcwotCi1SdW5uaW5nOiB0ZXN0U291cmNlVVJMQ29tbWVudEluRHluYW1pY1NjcmlwdAot
ZnVuY3Rpb24ga2VlcEFsaXZlSW5EeW5hbWljU2NyaXB0KCkge30KLS8vQCBzb3VyY2VVUkw9ZHlu
YW1pY1NjcmlwdFVSTC5qcwotCi1SdW5uaW5nOiB0ZXN0Tm9uUmVsYXRpdmVVUkwKLWZ1bmN0aW9u
IHJlbGF0aXZlVVJMU2NyaXB0KCkge30KLS8vQCBzb3VyY2VVUkw9L2pzL25vblJlbGF0aXZlVVJM
LmpzCi0KLVJ1bm5pbmc6IHRlc3RIYXNoU3ludGF4Ci1mdW5jdGlvbiBoYXNoU3ludGF4KCkge30K
LS8vIyBzb3VyY2VVUkw9aGFzaFN5bnRheC5qcwotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLXVybC1jb21t
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLXVybC1jb21t
ZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxZGZjMDYuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS11cmwtY29tbWVudC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQ3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGtlZXBBbGl2ZUluSW5saW5l
U2NyaXB0KCkgeyB9Ci0KLS8vQCBzb3VyY2VVUkw9aW5saW5lU2NyaXB0VVJMLmpzCi08L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBkb0V2YWwoKQotewotICAgIGV2YWwoImZ1bmN0aW9uIGtl
ZXBBbGl2ZSgpIHt9XG4vL0Agc291cmNlVVJMPWV2YWxVUkwuanMiKTsKLX0KLQotZnVuY3Rpb24g
ZG9FdmFsV2l0aE5vblJlbGF0aXZlVVJMKCkKLXsKLSAgICBldmFsKCJmdW5jdGlvbiByZWxhdGl2
ZVVSTFNjcmlwdCgpIHt9XG4vL0Agc291cmNlVVJMPS9qcy9ub25SZWxhdGl2ZVVSTC5qcyIpOwot
fQotCi1mdW5jdGlvbiBkb0V2YWxXaXRoSGFzaFN5bnRheCgpCi17Ci0gICAgZXZhbCgiZnVuY3Rp
b24gaGFzaFN5bnRheCgpIHt9XG4vLyMgc291cmNlVVJMPWhhc2hTeW50YXguanMiKTsKLX0KLQot
ZnVuY3Rpb24gZG9EeW5hbWljU2NyaXB0KCkKLXsKLSAgICB2YXIgc2NyaXB0RWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotICAgIHNjcmlwdEVsZW1lbnQudGV4dENv
bnRlbnQgPSAiZnVuY3Rpb24ga2VlcEFsaXZlSW5EeW5hbWljU2NyaXB0KCkge31cbi8vQCBzb3Vy
Y2VVUkw9ZHluYW1pY1NjcmlwdFVSTC5qcyI7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChzY3JpcHRFbGVtZW50KTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi0KLXsKLSAgICBmdW5jdGlv
biBmb3JFYWNoU2NyaXB0TWF0Y2hpbmdVUkwodXJsLCBoYW5kbGVyKQotICAgIHsKLSAgICAgICAg
dmFyIHNjcmlwdHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRzOwotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAg
IGlmIChzY3JpcHRzW2ldLnNvdXJjZVVSTC5pbmRleE9mKHVybCkgIT09IC0xKQotICAgICAgICAg
ICAgICAgIGhhbmRsZXIoc2NyaXB0c1tpXSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBJbnNw
ZWN0b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNv
dXJjZVVSTENvbW1lbnRJbklubGluZVNjcmlwdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoInNvdXJjZS11cmwtY29tbWVudC5odG1s
IiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dT
Y3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ZnVuY3Rpb24gY2hlY2tTY3JpcHREb2VzTm90SGF2ZVNvdXJjZVVSTChzY3JpcHQpCi0gICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUo
IXNjcmlwdC5oYXNTb3VyY2VVUkwsICJoYXNTb3VyY2VVUkwgZmxhZyBpcyBzZXQgZm9yIGlubGlu
ZSBzY3JpcHQiKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB2YXIgcGFu
ZWwgPSBXZWJJbnNwZWN0b3IucGFuZWwoInNjcmlwdHMiKTsKLSAgICAgICAgICAgICAgICB2YXIg
dWlTb3VyY2VDb2RlcyA9IHBhbmVsLl93b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpOwotICAgICAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkK
LSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKHVpU291cmNlQ29k
ZXNbaV0ub3JpZ2luVVJMKCkuaW5kZXhPZigiaW5saW5lU2NyaXB0VVJMLmpzIikgPT09IC0xLCAi
c291cmNlVVJMIGNvbW1lbnQgaW4gaW5saW5lIHNjcmlwdCB3YXMgdXNlZCBhcyBhIHNjcmlwdCBu
YW1lIik7Ci0gICAgICAgICAgICAgICAgZm9yRWFjaFNjcmlwdE1hdGNoaW5nVVJMKCJzb3VyY2Ut
dXJsLWNvbW1lbnQuaHRtbCIsIGNoZWNrU2NyaXB0RG9lc05vdEhhdmVTb3VyY2VVUkwpCi0gICAg
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RTb3VyY2VVUkxDb21tZW50KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiZXZhbFVSTC5qcyIsIGRpZFNob3dT
Y3JpcHRTb3VyY2UpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgi
c2V0VGltZW91dChkb0V2YWwsIDApIik7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dT
Y3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ZnVuY3Rpb24gY2hlY2tTY3JpcHRIYXNTb3VyY2VVUkwoc2NyaXB0KQotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKHNjcmlwdC5o
YXNTb3VyY2VVUkwsICJoYXNTb3VyY2VVUkwgZmxhZyBpcyBub3Qgc2V0IGZvciBldmFsIHdpdGgg
c291cmNlVVJMIGNvbW1lbnQiKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChzb3VyY2VGcmFtZS50ZXh0RWRpdG9yLnRleHQoKSk7
Ci0gICAgICAgICAgICAgICAgZm9yRWFjaFNjcmlwdE1hdGNoaW5nVVJMKCJldmFsVVJMLmpzIiwg
Y2hlY2tTY3JpcHRIYXNTb3VyY2VVUkwpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U291cmNlVVJMQ29t
bWVudEluRHluYW1pY1NjcmlwdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImR5bmFtaWNTY3JpcHRVUkwuanMiLCBkaWRTaG93U2Ny
aXB0U291cmNlKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNl
dFRpbWVvdXQoZG9EeW5hbWljU2NyaXB0LCAwKSIpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBk
aWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uIGNoZWNrU2NyaXB0SGFzU291cmNlVVJMKHNjcmlwdCkKLSAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShz
Y3JpcHQuaGFzU291cmNlVVJMLCAiaGFzU291cmNlVVJMIGZsYWcgaXMgbm90IHNldCBmb3IgZHlu
YW1pYyBzY3JpcHQgd2l0aCBzb3VyY2VVUkwgY29tbWVudCIpOwotICAgICAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHNvdXJjZUZyYW1lLnRl
eHRFZGl0b3IudGV4dCgpKTsKLSAgICAgICAgICAgICAgICBmb3JFYWNoU2NyaXB0TWF0Y2hpbmdV
UkwoImR5bmFtaWNTY3JpcHRVUkwuanMiLCBjaGVja1NjcmlwdEhhc1NvdXJjZVVSTCk7Ci0gICAg
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3ROb25SZWxhdGl2ZVVSTChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoIi9qcy9ub25SZWxhdGl2ZVVSTC5qcyIs
IGRpZFNob3dTY3JpcHRTb3VyY2UpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZSgic2V0VGltZW91dChkb0V2YWxXaXRoTm9uUmVsYXRpdmVVUkwsIDApIik7Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tTY3JpcHRIYXNTb3VyY2VV
Ukwoc2NyaXB0KQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRUcnVlKHNjcmlwdC5oYXNTb3VyY2VVUkwsICJoYXNTb3VyY2VVUkwgZmxh
ZyBpcyBub3Qgc2V0IGZvciBldmFsIHdpdGggYSBub24tcmVsYXRpdmUgVVJMIGluIGEgc291cmNl
VVJMIGNvbW1lbnQiKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdChzb3VyY2VGcmFtZS50ZXh0RWRpdG9yLnRleHQoKSk7Ci0gICAg
ICAgICAgICAgICAgZm9yRWFjaFNjcmlwdE1hdGNoaW5nVVJMKCJub25SZWxhdGl2ZVVSTC5qcyIs
IGNoZWNrU2NyaXB0SGFzU291cmNlVVJMKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEhhc2hTeW50YXgo
bmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291
cmNlKCJoYXNoU3ludGF4LmpzIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KGRvRXZhbFdpdGhIYXNoU3lu
dGF4LCAwKSIpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNv
dXJjZUZyYW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNr
U2NyaXB0SGFzU291cmNlVVJMKHNjcmlwdCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShzY3JpcHQuaGFzU291cmNlVVJMLCAi
aGFzU291cmNlVVJMIGZsYWcgaXMgbm90IHNldCBmb3IgZXZhbCB3aXRoIGEgbm9uLXJlbGF0aXZl
IFVSTCBpbiBhIHNvdXJjZVVSTCBjb21tZW50Iik7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoc291cmNlRnJhbWUudGV4dEVkaXRv
ci50ZXh0KCkpOwotICAgICAgICAgICAgICAgIGZvckVhY2hTY3JpcHRNYXRjaGluZ1VSTCgiaGFz
aFN5bnRheC5qcyIsIGNoZWNrU2NyaXB0SGFzU291cmNlVVJMKTsKLSAgICAgICAgICAgICAgICBu
ZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX07Ci0KLTwvc2NyaXB0
PgotCi08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQg
ZXZhbHMgd2l0aCBzb3VyY2VVUkwgY29tbWVudCBhcmUgc2hvd24gaW4gc2NyaXB0cyBwYW5lbC48
L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc3RlcC10aHJvdWdoLWV2ZW50LWxpc3RlbmVycy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcC10aHJvdWdoLWV2ZW50LWxpc3RlbmVycy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlMWVmMzEuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXAtdGhyb3VnaC1ldmVu
dC1saXN0ZW5lcnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAot
VGVzdCB0aGF0IGRlYnVnZ2VyIHdpbGwgcGF1c2UgaW4gYWxsIGV2ZW50IGxpc3RlbmVycyB3aGVu
IGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCBpcyBzZXQuIEJ1ZyA3NzMzMS4KLQotCi1EZWJ1Z2dl
ciB3YXMgZW5hYmxlZC4KLQotUnVubmluZzogdGVzdENsaWNrQnJlYWtwb2ludAotU2NyaXB0IGV4
ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIGxpc3RlbmVyMyAoc3RlcC10aHJv
dWdoLWV2ZW50LWxpc3RlbmVycy5odG1sOjE1KQotICAgIDEpIGFkZExpc3RlbmVyQW5kQ2xpY2sg
KHN0ZXAtdGhyb3VnaC1ldmVudC1saXN0ZW5lcnMuaHRtbDoyNikKLSAgICAyKSAgKDoxKQotU2Ny
aXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0
YWNrOgotICAgIDApIGxpc3RlbmVyMSAoc3RlcC10aHJvdWdoLWV2ZW50LWxpc3RlbmVycy5odG1s
OjcpCi0gICAgMSkgYWRkTGlzdGVuZXJBbmRDbGljayAoc3RlcC10aHJvdWdoLWV2ZW50LWxpc3Rl
bmVycy5odG1sOjI2KQotICAgIDIpICAoOjEpCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1T
Y3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUNhbGwgc3RhY2s6Ci0gICAgMCkgbGlzdGVuZXIyIChz
dGVwLXRocm91Z2gtZXZlbnQtbGlzdGVuZXJzLmh0bWw6MTEpCi0gICAgMSkgYWRkTGlzdGVuZXJB
bmRDbGljayAoc3RlcC10aHJvdWdoLWV2ZW50LWxpc3RlbmVycy5odG1sOjI2KQotICAgIDIpICAo
OjEpCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4K
LUNhbGwgc3RhY2s6Ci0gICAgMCkgbGlzdGVuZXIzIChzdGVwLXRocm91Z2gtZXZlbnQtbGlzdGVu
ZXJzLmh0bWw6MTUpCi0gICAgMSkgYWRkTGlzdGVuZXJBbmRDbGljayAoc3RlcC10aHJvdWdoLWV2
ZW50LWxpc3RlbmVycy5odG1sOjI2KQotICAgIDIpICAoOjEpCi1TY3JpcHQgZXhlY3V0aW9uIHJl
c3VtZWQuCi1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwLXRocm91Z2gtZXZlbnQtbGlzdGVuZXJzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcC10aHJvdWdoLWV2ZW50LWxpc3RlbmVy
cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDhiNWNkLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwLXRocm91Z2gtZXZlbnQtbGlz
dGVuZXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGxpc3RlbmVy
MSgpCi17Ci19Ci0KLWZ1bmN0aW9uIGxpc3RlbmVyMigpCi17Ci19Ci0KLWZ1bmN0aW9uIGxpc3Rl
bmVyMygpCi17Ci19Ci0KLWZ1bmN0aW9uIGFkZExpc3RlbmVyQW5kQ2xpY2soKQotewotICAgIHZh
ciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKLSAgICBlbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbGlzdGVuZXIxLCB0cnVlKTsKLSAgICBlbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbGlzdGVuZXIyLCB0cnVlKTsKLSAgICBkb2N1bWVu
dC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbGlzdGVuZXIzLCB0cnVlKTsKLSAgICBk
b2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbGlzdGVuZXIzLCBmYWxzZSk7
Ci0gICAgZWxlbWVudC5jbGljaygpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIg
cGFuZSA9IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKS5zaWRlYmFyUGFuZXMuZXZl
bnRMaXN0ZW5lckJyZWFrcG9pbnRzOwotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0
U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0Q2xpY2tCcmVha3BvaW50KG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHBhbmUuX3NldEJyZWFrcG9pbnQoImxpc3RlbmVyOmNsaWNrIik7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZChwYXVzZWQxKTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgiYWRkTGlz
dGVuZXJBbmRDbGljaygpIik7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHBhdXNlZDEoY2FsbEZy
YW1lcykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1
cmVTdGFja1RyYWNlKGNhbGxGcmFtZXMpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
cmVzdW1lRXhlY3V0aW9uKHJlc3VtZWQxKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ZnVuY3Rpb24gcmVzdW1lZDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHBhdXNlZDIpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBwYXVzZWQyKGNhbGxGcmFtZXMpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihyZXN1bWVkMik7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHJlc3VtZWQyKCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZChw
YXVzZWQzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gcGF1c2VkMyhj
YWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5yZXN1bWVFeGVjdXRpb24ocmVzdW1lZDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBmdW5jdGlvbiByZXN1bWVkMygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQocGF1c2VkNCk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHBhdXNlZDQoY2FsbEZyYW1lcykKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlKGNhbGxGcmFt
ZXMpOwotICAgICAgICAgICAgICAgIHBhbmUuX3JlbW92ZUJyZWFrcG9pbnQoImxpc3RlbmVyOmNs
aWNrIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24obmV4
dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdCB0aGF0IGRlYnVn
Z2VyIHdpbGwgcGF1c2UgaW4gYWxsIGV2ZW50IGxpc3RlbmVycyB3aGVuIGNvcnJlc3BvbmRpbmcg
YnJlYWtwb2ludCBpcyBzZXQuCi08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzczMzEiPkJ1ZyA3NzMzMS48L2E+Ci08L3A+Ci0KLTxpbnB1dCB0eXBlPWJ1
dHRvbiBpZD0idGVzdCI+PC9pbnB1dD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLWRpc3BsYXktbmFt
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdWktc291cmNl
LWNvZGUtZGlzcGxheS1uYW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjY1NmFhOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvdWktc291cmNlLWNvZGUtZGlzcGxheS1uYW1lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDggKzAsMCBAQAotVGVzdHMgVUlTb3VyY2VDb2RlIGRpc3BsYXkgbmFtZS4KLQotVUlT
b3VyY2VDb2RlIGRpc3BsYXkgbmFtZSBmb3IgdXJsICJodHRwOi8vbG9jYWxob3N0OjgwODAvZm9s
ZGVyL2ZpbGVuYW1lP3BhcmFtZXRlcj12YWx1ZSZubm49MSIgaXMgImZpbGVuYW1lP3BhcmFtZXRl
cj12YWx1ZSZubm49MSIuCi1VSVNvdXJjZUNvZGUgZGlzcGxheSBuYW1lIGZvciB1cmwgImh0dHA6
Ly9sb2NhbGhvc3Q6ODA4MC9mb2xkZXIvdmVyeS1sb25nLWZpbGVuYW1lLTEyMzQ1Nj9ubj0xIiBp
cyAidmVyeS1sb25nLWZpbGVuYW1lLTEyMzQ1Nj9ubj0xIi4KLVVJU291cmNlQ29kZSBkaXNwbGF5
IG5hbWUgZm9yIHVybCAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2ZvbGRlci90b28tbG9uZy1maWxl
bmFtZS0xMjM0NTY3ODkwP25uPTEiIGlzICJ0b28tbG9uZy1maWxlbmHigKYyMzQ1Njc4OTA/bm49
MSIuCi1VSVNvdXJjZUNvZGUgZGlzcGxheSBuYW1lIGZvciB1cmwgImh0dHA6Ly9sb2NhbGhvc3Q6
ODA4MC9mb2xkZXIvbG9uZy1maWxlbmFtZT9wYXJhbWV0ZXI9dmFsdWUmbm5uPTEiIGlzICJsb25n
LWZpbGVuYW1lP3DigKZlcj12YWx1ZSZubm49MSIuCi1VSVNvdXJjZUNvZGUgZGlzcGxheSBuYW1l
IGZvciB1cmwgImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9mb2xkZXIvdG9vLWxvbmctZmlsZW5hbWUt
MTIzNDU2Nzg5MD9wYXJhbWV0ZXI9dmFsdWUmbm5uPTEiIGlzICJ0b28tbG9uZy1maWxlbmHigKZl
cj12YWx1ZSZubm49MSIuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci91aS1zb3VyY2UtY29kZS1kaXNwbGF5LW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS1kaXNwbGF5LW5hbWUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTY1ZmJmMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvdWktc291cmNlLWNvZGUtZGlzcGxheS1uYW1lLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJz
Y3JpcHRzIik7Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVDb250ZW50UHJvdmlkZXIodXJsKQotICAg
IHsKLSAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdGlj
Q29udGVudFByb3ZpZGVyKFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgIiIsICJ0
ZXh0L2phdmFzY3JpcHQiKTsKLSAgICAgICAgY29udGVudFByb3ZpZGVyLnJlcXVlc3RDb250ZW50
ID0gZnVuY3Rpb24oY2FsbGJhY2spCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJTb3VyY2UgcmVxdWVzdGVkIGZvciAiICsgdXJsKTsKLSAgICAgICAgICAg
IGNhbGxiYWNrKCIiKTsKLSAgICAgICAgfTsKLSAgICAgICAgcmV0dXJuIGNvbnRlbnRQcm92aWRl
cjsKLSAgICB9Ci0KLSAgICB2YXIgd29ya3NwYWNlID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UoKTsKLSAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYklu
c3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlcih3b3Jrc3BhY2UsIFdlYkluc3BlY3Rvci5w
cm9qZWN0VHlwZXMuTmV0d29yayk7Ci0KLSAgICBmdW5jdGlvbiBhZGROZXR3b3JrRmlsZSh1cmwp
Ci0gICAgewotICAgICAgICByZXR1cm4gd29ya3NwYWNlLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRl
ci5hZGRGaWxlRm9yVVJMKHVybCwgY3JlYXRlQ29udGVudFByb3ZpZGVyKHVybCksIGZhbHNlKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wVUlTb3VyY2VDb2RlRGlzcGxheU5hbWUodXJsKQot
ICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IGFkZE5ldHdvcmtGaWxlKHVybCk7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSVNvdXJjZUNvZGUgZGlzcGxheSBuYW1l
IGZvciB1cmwgXCIiICsgdXJsICsgIlwiIGlzIFwiIiArIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0
b3JDb250YWluZXIucHJvdG90eXBlLl90aXRsZUZvckZpbGUodWlTb3VyY2VDb2RlKSArICJcIi4i
KTsKLSAgICB9Ci0KLSAgICBjb25zdCBiYXNlVVJMID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9m
b2xkZXIvIjsKLSAgICBkdW1wVUlTb3VyY2VDb2RlRGlzcGxheU5hbWUoYmFzZVVSTCArICJmaWxl
bmFtZT9wYXJhbWV0ZXI9dmFsdWUmbm5uPTEiKTsKLSAgICBkdW1wVUlTb3VyY2VDb2RlRGlzcGxh
eU5hbWUoYmFzZVVSTCArICJ2ZXJ5LWxvbmctZmlsZW5hbWUtMTIzNDU2P25uPTEiKTsKLSAgICBk
dW1wVUlTb3VyY2VDb2RlRGlzcGxheU5hbWUoYmFzZVVSTCArICJ0b28tbG9uZy1maWxlbmFtZS0x
MjM0NTY3ODkwP25uPTEiKTsKLSAgICBkdW1wVUlTb3VyY2VDb2RlRGlzcGxheU5hbWUoYmFzZVVS
TCArICJsb25nLWZpbGVuYW1lP3BhcmFtZXRlcj12YWx1ZSZubm49MSIpOwotICAgIGR1bXBVSVNv
dXJjZUNvZGVEaXNwbGF5TmFtZShiYXNlVVJMICsgInRvby1sb25nLWZpbGVuYW1lLTEyMzQ1Njc4
OTA/cGFyYW1ldGVyPXZhbHVlJm5ubj0xIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLX07Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
LTxwPlRlc3RzIFVJU291cmNlQ29kZSBkaXNwbGF5IG5hbWUuPC9wPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1j
b2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci91aS1zb3Vy
Y2UtY29kZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjMjhk
ZjguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJj
ZS1jb2RlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotVGVzdHMg
VUlTb3VyY2VDb2RlIGNsYXNzLgotCi0KLVJ1bm5pbmc6IHRlc3RVSVNvdXJjZUNvZGUKLUNvbnRl
bnQgaXMgcmVxdWVzdGVkIGZyb20gU291cmNlQ29kZVByb3ZpZGVyLgotQ2FsbGJhY2sgMSBpcyBp
bnZva2VkLgotQ2FsbGJhY2sgMiBpcyBpbnZva2VkLgotQ2FsbGJhY2sgMyBpcyBpbnZva2VkLgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdWktc291cmNlLWNv
ZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTkxNzQxLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0K
LTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBNb2NrUHJvamVjdCA9IGZ1
bmN0aW9uKCkge30KLSAgICBNb2NrUHJvamVjdC5wcm90b3R5cGUucmVxdWVzdEZpbGVDb250ZW50
ID0gZnVuY3Rpb24odXJpLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJDb250ZW50IGlzIHJlcXVlc3RlZCBmcm9tIFNvdXJjZUNvZGVQcm92aWRlci4i
KTsKLSAgICAgICAgc2V0VGltZW91dChjYWxsYmFjay5iaW5kKG51bGwsICJ2YXIgeCA9IDA7Iiwg
ZmFsc2UsICJ0ZXh0L2phdmFzY3JpcHQiKSwgMCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVz
dC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0VUlTb3VyY2VDb2RlKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZShuZXcgTW9ja1Byb2plY3QoKSwgInVyaSIsICJvcmlnaW5VUkwiLCAi
dXJsIiwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCB0cnVlKTsKLSAgICAgICAg
ICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RDb250ZW50KGNhbGxOdW1iZXIsIGNvbnRlbnQsIGNvbnRl
bnRFbmNvZGVkLCBtaW1lVHlwZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ2FsbGJhY2sgIiArIGNhbGxOdW1iZXIgKyAiIGlzIGludm9r
ZWQuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoInRleHQv
amF2YXNjcmlwdCIsIG1pbWVUeXBlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEVxdWFscygidmFyIHggPSAwOyIsIGNvbnRlbnQpOwotCi0gICAgICAgICAgICAgICAgaWYg
KGNhbGxOdW1iZXIgPT09IDMpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBz
b3VyY2VDb2RlUHJvdmlkZXIucmVxdWVzdENvbnRlbnQgd29uJ3QgYmUgY2FsbGVkIGFueW1vcmUu
Ci0gICAgICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChmdW5jdGlv
bihjb250ZW50LCBjb250ZW50RW5jb2RlZCwgbWltZVR5cGUpCi0gICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJ0
ZXh0L2phdmFzY3JpcHQiLCBtaW1lVHlwZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydEVxdWFscygidmFyIHggPSAwOyIsIGNvbnRlbnQpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAvLyBDaGVjayB0aGF0IGFsbCBj
YWxsYmFja3Mgd2lsbCBiZSBpbnZva2VkLgotICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVl
c3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50LmJpbmQobnVsbCwgMSkpOwotICAgICAgICAgICAg
dWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50LmJpbmQobnVsbCwg
MikpOwotICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RD
b250ZW50LmJpbmQobnVsbCwgMykpOwotICAgICAgICB9Ci0gICAgXSk7Ci19OwotCi08L3Njcmlw
dD4KLQotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBVSVNv
dXJjZUNvZGUgY2xhc3MuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXBhbmVsLXN3aXRjaC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVz
c2lvbnMtcGFuZWwtc3dpdGNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjdhYmZiNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFuZWwtc3dpdGNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIGRlYnVnZ2VyIGRvZXMgbm90IGZhaWwgd2hlbiBz
dG9wcGVkIHdoaWxlIGEgcGFuZWwgb3RoZXIgdGhhbiBzY3JpcHRzIHdhcyBvcGVuZWQuIEJvdGgg
dmFsaWQgYW5kIGludmFsaWQgZXhwcmVzc2lvbnMgYXJlIGFkZGVkIHRvIHdhdGNoIGV4cHJlc3Np
b25zLgotCi1CdWcgNzA3MTgKLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotU2NyaXB0IHNvdXJjZSB3
YXMgc2hvd24uCi1TZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCi1XYXRjaCBleHByZXNzaW9u
cyB1cGRhdGVkLgotW2V4cGFuZGVkXSAgCi0gICAgd2luZG93LmRvY3VtZW50OiAjZG9jdW1lbnQK
LSAgICB3aW5kb3dhLmRvY3VtZW50OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogd2luZG93YQotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFuZWwtc3dpdGNoLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFu
ZWwtc3dpdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmZDVmZDIuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Np
b25zLXBhbmVsLXN3aXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkKLXsKLSAgICB2YXIgeCA9IE1hdGguc3FydCgxMCk7
Ci0gICAgcmV0dXJuIHg7Ci19Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIEluc3Bl
Y3RvclRlc3Quc2V0UXVpZXQodHJ1ZSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2Vy
VGVzdChzdGVwMSk7Ci0KLSAgICB2YXIgY3VycmVudFNvdXJjZUZyYW1lOwotICAgIHZhciB3YXRj
aEV4cHJlc3Npb25zU2VjdGlvbjsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAg
ICAgIC8vIFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBzY3JpcHRzIHBhbmVsIHNvIHRoYXQgd2F0Y2gg
ZXhwcmVzc2lvbnMgc2VjdGlvbiBpcyBjcmVhdGVkLgotICAgICAgICBXZWJJbnNwZWN0b3Iuc2hv
d1BhbmVsKCJzY3JpcHRzIik7Ci0KLSAgICAgICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNQYW5lID0g
V2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25z
OwotICAgICAgICB3YXRjaEV4cHJlc3Npb25zUGFuZS5leHBhbmQoKTsKLQotICAgICAgICB3YXRj
aEV4cHJlc3Npb25zU2VjdGlvbiA9IHdhdGNoRXhwcmVzc2lvbnNQYW5lLnNlY3Rpb247Ci0gICAg
ICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMgPSBbXTsKLSAgICAg
ICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCJ3aW5kb3cu
ZG9jdW1lbnQiKTsKLSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNz
aW9ucy5wdXNoKCJ3aW5kb3dhLmRvY3VtZW50Iik7Ci0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNT
ZWN0aW9uLnVwZGF0ZSgpOwotCi0gICAgICAgIHZhciB0ZXN0TmFtZSA9IFdlYkluc3BlY3Rvci5p
bnNwZWN0ZWRQYWdlVVJMOwotICAgICAgICB0ZXN0TmFtZSA9IHRlc3ROYW1lLnN1YnN0cmluZyh0
ZXN0TmFtZS5sYXN0SW5kZXhPZignLycpICsgMSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2hv
d1NjcmlwdFNvdXJjZSh0ZXN0TmFtZSwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKLSAgICB7Ci0gICAg
ICAgIGN1cnJlbnRTb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1lOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uIik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3Quc2V0QnJlYWtwb2ludChjdXJyZW50U291cmNlRnJhbWUsIDksICIiLCB0cnVlKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5XYXRjaEV4cHJl
c3Npb25zU2VjdGlvbi5wcm90b3R5cGUsICJ1cGRhdGUiLCB3YXRjaEV4cHJlc3Npb25zVXBkYXRl
ZCk7Ci0gICAgICAgIC8vIFN3aXRjaCB0byBhbm90aGVyIHBhbmVsIHRvIHRlc3QgaG93IHdhdGNo
IGV4cHJlc3Npb25zIGV2YWx1YXRpb24gdG9nZXRoZXIgd2l0aCBwYW5lbCBzd2l0Y2hpbmcuCi0g
ICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoIm5ldHdvcmsiKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoZGlkUGF1c2VkKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBkaWRQYXVzZWQoY2FsbEZyYW1lcykKLSAgICB7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gd2F0Y2hFeHByZXNzaW9uc1VwZGF0ZWQoKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIldhdGNoIGV4cHJlc3Npb25zIHVwZGF0ZWQuIik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcE9iamVjdFByb3BlcnR5U2VjdGlvbih3YXRjaEV4cHJl
c3Npb25zU2VjdGlvbiwge30pOwotCi0gICAgICAgIC8vIENsZWFyIHdhdGNoIGV4cHJlc3Npb25z
IGFmdGVyIGV4ZWN1dGlvbi4KLSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hF
eHByZXNzaW9ucyA9IFtdOwotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi51cGRhdGUo
KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7Ci0gICAg
fQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxw
PlRlc3RzIGRlYnVnZ2VyIGRvZXMgbm90IGZhaWwgd2hlbiBzdG9wcGVkIHdoaWxlIGEgcGFuZWwg
b3RoZXIgdGhhbiBzY3JpcHRzIHdhcyBvcGVuZWQuIEJvdGggdmFsaWQgYW5kIGludmFsaWQgZXhw
cmVzc2lvbnMgYXJlIGFkZGVkIHRvIHdhdGNoIGV4cHJlc3Npb25zLjwvcD4KLTxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDcxOCI+QnVnIDcwNzE4PC9h
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXByZXNlcnZlLWV4cGFuc2lvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcHJlc2Vy
dmUtZXhwYW5zaW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NjlmNjQ0Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0
Y2gtZXhwcmVzc2lvbnMtcHJlc2VydmUtZXhwYW5zaW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMxICswLDAgQEAKLVRlc3QgdGhhdCB3YXRjaCBleHByZXNzaW9ucyBleHBhbnNp
b24gc3RhdGUgaXMgcmVzdG9yZWQgYWZ0ZXIgdXBkYXRlLgotCi1CdWcgOTkzMDQKLURlYnVnZ2Vy
IHdhcyBlbmFibGVkLgotV2F0Y2ggZXhwcmVzc2lvbnMgYWRkZWQuCi1leHBhbmRlZCBnbG9iYWxP
YmplY3QgW29iamVjdCBPYmplY3RdCi1leHBhbmRlZCBmb28gW29iamVjdCBPYmplY3RdCi1leHBh
bmRlZCBiYXIgW29iamVjdCBPYmplY3RdCi1XYXRjaCBleHByZXNzaW9ucyBleHBhbmRlZC4KLSAg
Z2xvYmFsT2JqZWN0OiBPYmplY3QKLSAgICBmb286IE9iamVjdAotICAgICAgYmFyOiBPYmplY3QK
LSAgICAgICAgYmF6OiAyMDEyCi0gICAgICAgIF9fcHJvdG9fXzogT2JqZWN0Ci0gICAgICBfX3By
b3RvX186IE9iamVjdAotICAgIF9fcHJvdG9fXzogT2JqZWN0Ci0gIHdpbmRvd0FsaWFzOiBXaW5k
b3cKLWVycm9yOiBFeGVjdXRpb24gY29udGV4dCB3aXRoIGdpdmVuIGlkIG5vdCBmb3VuZC4KLWVy
cm9yOiBFeGVjdXRpb24gY29udGV4dCB3aXRoIGdpdmVuIGlkIG5vdCBmb3VuZC4KLVBhZ2UgcmVs
b2FkZWQuCi1XYXRjaCBleHByZXNzaW9ucyBhZnRlciBwYWdlIHJlbG9hZDoKLSAgZ2xvYmFsT2Jq
ZWN0OiBPYmplY3QKLSAgICBmb286IE9iamVjdAotICAgICAgYmFyOiBPYmplY3QKLSAgICAgICAg
YmF6OiAyMDEyCi0gICAgICAgIF9fcHJvdG9fXzogT2JqZWN0Ci0gICAgICBfX3Byb3RvX186IE9i
amVjdAotICAgIF9fcHJvdG9fXzogT2JqZWN0Ci0gIHdpbmRvd0FsaWFzOiBXaW5kb3cKLURlYnVn
Z2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXByZXNlcnZlLWV4cGFuc2lvbi5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXByZXNlcnZlLWV4cGFu
c2lvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjRiYmNjLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1w
cmVzZXJ2ZS1leHBhbnNpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLQotdmFyIGdsb2JhbE9iamVjdCA9IHsKLSAgICBmb286IHsKLSAgICAgICAgYmFyOiB7Ci0g
ICAgICAgICAgICBiYXo6IDIwMTIKLSAgICAgICAgfQotICAgIH0KLX07Ci12YXIgd2luZG93QWxp
YXMgPSB3aW5kb3c7Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIHZhciB3YXRjaEV4
cHJlc3Npb25zU2VjdGlvbjsKLQotICAgIC8vIFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBzY3JpcHRz
IHBhbmVsIHNvIHRoYXQgd2F0Y2ggZXhwcmVzc2lvbnMgc2VjdGlvbiBpcyBjcmVhdGVkLgotICAg
IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnN0
YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0g
ICAgICAgIHZhciB3YXRjaEV4cHJlc3Npb25zUGFuZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2Ny
aXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9uczsKLSAgICAgICAgd2F0Y2hFeHByZXNz
aW9uc1BhbmUuZXhwYW5kKCk7Ci0KLSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24gPSB3
YXRjaEV4cHJlc3Npb25zUGFuZS5zZWN0aW9uOwotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2Vj
dGlvbi53YXRjaEV4cHJlc3Npb25zID0gW107Ci0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0
aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgiZ2xvYmFsT2JqZWN0Iik7Ci0gICAgICAgIHdhdGNo
RXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgid2luZG93QWxpYXMiKTsK
LQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLldhdGNoRXhw
cmVzc2lvbnNTZWN0aW9uLnByb3RvdHlwZSwgInVwZGF0ZVByb3BlcnRpZXMiLCBzdGVwMik7Ci0g
ICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnVwZGF0ZSgpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIGV4cGFuZFByb3BlcnR5KHBhcmVudCwgcGF0aCwgY2FsbGJhY2spCi0gICAgewotICAg
ICAgICBpZiAoIXBhdGgubGVuZ3RoKSByZXR1cm4gY2FsbGJhY2soKTsKLSAgICAgICAgdmFyIGNo
aWxkTmFtZSA9IHBhdGguc2hpZnQoKTsKLSAgICAgICAgdmFyIGNoaWxkID0gSW5zcGVjdG9yVGVz
dC5fZmluZENoaWxkUHJvcGVydHlUcmVlRWxlbWVudChwYXJlbnQsIGNoaWxkTmFtZSk7Ci0gICAg
ICAgIGlmICghY2hpbGQpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJD
aGlsZCBub3QgZm91bmQ6ICIgKyBjaGlsZE5hbWUpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJleHBhbmRlZCAiICsgY2hpbGROYW1lICsgIiAiICsg
Y2hpbGQucHJvcGVydHkudmFsdWUpOwotICAgICAgICBmdW5jdGlvbiBhZnRlckdldE93blByb3Bl
cnRpZXMoKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3Bh
dGNoZXMoZXhwYW5kUHJvcGVydHkuYmluZCh0aGlzLCBjaGlsZCwgcGF0aCwgY2FsbGJhY2spKTsK
LSAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoY2hpbGQucHJvcGVy
dHkudmFsdWUsICJnZXRPd25Qcm9wZXJ0aWVzIiwgYWZ0ZXJHZXRPd25Qcm9wZXJ0aWVzLmJpbmQo
dGhpcykpOwotICAgICAgICBjaGlsZC5leHBhbmQoKTsKLQotICAgIH0KLQotICAgIGZ1bmN0aW9u
IGR1bXBPYmplY3RQcm9wZXJ0aWVzVHJlZUVsZW1lbnQodHJlZUVsZW1lbnQsIGluZGVudCkKLSAg
ICB7Ci0gICAgICAgIGlmICh0cmVlRWxlbWVudC5wcm9wZXJ0eSkKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KGluZGVudCArIHRyZWVFbGVtZW50LnByb3BlcnR5Lm5hbWUgKyAi
OiAiICsgdHJlZUVsZW1lbnQucHJvcGVydHkudmFsdWUuX2Rlc2NyaXB0aW9uKTsKLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB0cmVlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGg7IGkrKykKLSAg
ICAgICAgICAgIGR1bXBPYmplY3RQcm9wZXJ0aWVzVHJlZUVsZW1lbnQodHJlZUVsZW1lbnQuY2hp
bGRyZW5baV0sICIgICIgKyBpbmRlbnQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkK
LSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJXYXRjaCBleHByZXNzaW9u
cyBhZGRlZC4iKTsKLSAgICAgICAgZXhwYW5kUHJvcGVydHkod2F0Y2hFeHByZXNzaW9uc1NlY3Rp
b24ucHJvcGVydGllc1RyZWVPdXRsaW5lLCBbImdsb2JhbE9iamVjdCIsICJmb28iLCAiYmFyIl0s
IHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiV2F0Y2ggZXhwcmVzc2lvbnMgZXhwYW5kZWQuIik7Ci0g
ICAgICAgIGR1bXBPYmplY3RQcm9wZXJ0aWVzVHJlZUVsZW1lbnQod2F0Y2hFeHByZXNzaW9uc1Nl
Y3Rpb24ucHJvcGVydGllc1RyZWVPdXRsaW5lLCAiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
cmVsb2FkUGFnZShzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDQoKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIldhdGNoIGV4cHJlc3Npb25zIGFmdGVy
IHBhZ2UgcmVsb2FkOiIpOwotICAgICAgICBkdW1wT2JqZWN0UHJvcGVydGllc1RyZWVFbGVtZW50
KHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnByb3BlcnRpZXNUcmVlT3V0bGluZSwgIiIpOwotCi0g
ICAgICAgIC8vIENsZWFyIHdhdGNoIGV4cHJlc3Npb25zIGFmdGVyIGV4ZWN1dGlvbi4KLSAgICAg
ICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtdOwotICAgICAg
ICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi51cGRhdGUoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0IHRoYXQgd2F0Y2ggZXhwcmVzc2lv
bnMgZXhwYW5zaW9uIHN0YXRlIGlzIHJlc3RvcmVkIGFmdGVyIHVwZGF0ZS48L3A+Ci08YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkzMDQiPkJ1ZyA5OTMw
NDwvYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci94aHItYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3hoci1icmVha3BvaW50cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQ5Mzk1NTcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3hoci1icmVha3BvaW50cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyMiArMCwwIEBACi1UZXN0cyBYSFIgYnJlYWtwb2ludHMuCi0KLURlYnVnZ2VyIHdh
cyBlbmFibGVkLgotCi1SdW5uaW5nOiB0ZXN0WEhSQnJlYWtwb2ludAotU2NyaXB0IGV4ZWN1dGlv
biBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIHNlbmRSZXF1ZXN0ICh4aHItYnJlYWtwb2lu
dHMuaHRtbDoxMSkKLSAgICAxKSAgKDoxKQotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotCi1S
dW5uaW5nOiB0ZXN0UGF1c2VPbkFueVhIUgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1TY3Jp
cHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLVNjcmlwdCBl
eGVjdXRpb24gcmVzdW1lZC4KLQotUnVubmluZzogdGVzdERpc2FibGVCcmVha3BvaW50Ci1TY3Jp
cHQgZXhlY3V0aW9uIHBhdXNlZC4KLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KLURlYnVnZ2Vy
IHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3hoci1icmVha3BvaW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3hoci1icmVha3BvaW50cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNWEw
ZTY1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci94aHItYnJl
YWtwb2ludHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwNSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHNlbmRS
ZXF1ZXN0KHVybCkKLXsKLSAgICB2YXIgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwot
ICAgIHJlcXVlc3Qub3BlbigiR0VUIiwgdXJsLCB0cnVlKTsKLSAgICByZXF1ZXN0LnNlbmQoKQot
fQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3Jp
cHRzIik7Ci0gICAgdmFyIHBhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJh
clBhbmVzLnhockJyZWFrcG9pbnRzOwotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0
U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0WEhSQnJlYWtwb2ludChuZXh0KQotICAgICAg
ICB7Ci0gICAgICAgICAgICBwYW5lLl9zZXRCcmVha3BvaW50KCJmb28iLCB0cnVlKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHN0ZXAxKTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgic2VuZFJlcXVlc3QoJy9m
b28/YT1iJykiKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoY2FsbEZyYW1lcykKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1Ry
YWNlKGNhbGxGcmFtZXMpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhl
Y3V0aW9uKHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3Rl
cDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoInNlbmRSZXF1ZXN0KCcvYmFyP2E9YicpIiwgc3RlcDMpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgcGFuZS5fcmVtb3ZlQnJlYWtwb2ludCgiZm9vIik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2VuZFJlcXVlc3QoJy9mb28/YT1iJykiLCBu
ZXh0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0
UGF1c2VPbkFueVhIUihuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBwYW5lLl9zZXRCcmVh
a3BvaW50KCIiLCB0cnVlKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1
c2VkKHBhdXNlZEZvbyk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
V2l0aFRpbWVvdXQoInNlbmRSZXF1ZXN0KCcvZm9vP2E9YicpIik7Ci0KLSAgICAgICAgICAgIGZ1
bmN0aW9uIHBhdXNlZEZvbyhjYWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uIHJlc3VtZWQoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQocGF1c2VkQmFyKTsKLSAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2VuZFJlcXVlc3QoJy9i
YXI/YT1iJykiKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5yZXN1bWVFeGVjdXRpb24ocmVzdW1lZCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIHBhdXNlZEJhcihjYWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uIHJlc3VtZWQoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgcGFuZS5fcmVtb3ZlQnJlYWtwb2ludCgiIik7Ci0gICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNlbmRSZXF1ZXN0KCcvYmF6P2E9Yicp
IiwgbmV4dCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QucmVzdW1lRXhlY3V0aW9uKHJlc3VtZWQpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAot
Ci0gICAgICAgIGZ1bmN0aW9uIHRlc3REaXNhYmxlQnJlYWtwb2ludChuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICBwYW5lLl9zZXRCcmVha3BvaW50KCIiLCB0cnVlKTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHBhdXNlZCk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZW5kUmVxdWVzdCgnL2ZvbycpIik7Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHBhdXNlZChjYWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uIHJlc3VtZWQoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgcGFuZS5fYnJlYWtwb2ludEVsZW1lbnRzWyIiXS5fY2hlY2tib3hFbGVtZW50
LmNsaWNrKCk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1
c2VkKHBhdXNlZEFnYWluKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZSgic2VuZFJlcXVlc3QoJy9mb28nKSIsIG5leHQpOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihyZXN1bWVk
KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gcGF1c2VkQWdhaW4oY2Fs
bEZyYW1lcykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiRmFpbCwgcGF1c2VkIGFnYWluIGFmdGVyIGJyZWFrcG9pbnQgd2FzIHJlbW92ZWQu
Iik7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD4KLVRlc3RzIFhIUiBicmVha3BvaW50cy4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1zdGF0aXN0aWNzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tc3RhdGlzdGljcy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4NTgxNDEuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1zdGF0aXN0aWNzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDExOSArMCwwIEBACi0KLVRlc3RzIHRoYXQgcGVyIGRvY3VtZW50IE5vZGUg
Y291bnQgaXMgY29ycmVjdGx5IGNhbGN1bGF0ZWQgYnkgdGhlIE1lbW9yeSBhZ2VudC4gQnVnIDc0
MTAwLiBCdWcgNzQyOTguCi0KLXJlc3VsdCA9IFsKLSAgICB7Ci0gICAgICAgICJ0aXRsZSI6ICJk
aXYiLAotICAgICAgICAic2l6ZSI6IDEsCi0gICAgICAgICJub2RlQ291bnQiOiBbCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgIm5vZGVOYW1lIjogImRpdiIsCi0gICAgICAgICAgICAg
ICAgImNvdW50IjogMQotICAgICAgICAgICAgfQotICAgICAgICBdLAotICAgICAgICAibGlzdGVu
ZXJDb3VudCI6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAidHlwZSI6ICJtb3Vz
ZW92ZXIiLAotICAgICAgICAgICAgICAgICJjb3VudCI6IDEKLSAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgInR5cGUiOiAiY2xpY2siLAotICAgICAgICAgICAg
ICAgICJjb3VudCI6IDEKLSAgICAgICAgICAgIH0KLSAgICAgICAgXQotICAgIH0sCi0gICAgewot
ICAgICAgICAidGl0bGUiOiAiZGl2IiwKLSAgICAgICAgInNpemUiOiAxLAotICAgICAgICAibm9k
ZUNvdW50IjogWwotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJub2RlTmFtZSI6ICJk
aXYiLAotICAgICAgICAgICAgICAgICJjb3VudCI6IDEKLSAgICAgICAgICAgIH0KLSAgICAgICAg
XSwKLSAgICAgICAgImxpc3RlbmVyQ291bnQiOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgInR5cGUiOiAibW91c2VvdmVyIiwKLSAgICAgICAgICAgICAgICAiY291bnQiOiAxCi0g
ICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJ0eXBlIjogImNs
aWNrIiwKLSAgICAgICAgICAgICAgICAiY291bnQiOiAxCi0gICAgICAgICAgICB9Ci0gICAgICAg
IF0KLSAgICB9LAotICAgIHsKLSAgICAgICAgInRpdGxlIjogIiNkb2N1bWVudCIsCi0gICAgICAg
ICJkb2N1bWVudFVSSSI6ICIuLi5hYm91dDpibGFuayIsCi0gICAgICAgICJzaXplIjogMywKLSAg
ICAgICAgIm5vZGVDb3VudCI6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibm9k
ZU5hbWUiOiAiYm9keSIsCi0gICAgICAgICAgICAgICAgImNvdW50IjogMQotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibm9kZU5hbWUiOiAiaGVhZCIsCi0g
ICAgICAgICAgICAgICAgImNvdW50IjogMQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAibm9kZU5hbWUiOiAiaHRtbCIsCi0gICAgICAgICAgICAgICAgImNv
dW50IjogMQotICAgICAgICAgICAgfQotICAgICAgICBdLAotICAgICAgICAibGlzdGVuZXJDb3Vu
dCI6IFtdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJ0aXRsZSI6ICIjZG9jdW1lbnQiLAotICAg
ICAgICAiZG9jdW1lbnRVUkkiOiAiLi4uZG9tLXN0YXRpc3RpY3MuaHRtbCIsCi0gICAgICAgICJz
aXplIjogMjMsCi0gICAgICAgICJub2RlQ291bnQiOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgIm5vZGVOYW1lIjogIiN0ZXh0IiwKLSAgICAgICAgICAgICAgICAiY291bnQiOiAx
MwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibm9kZU5h
bWUiOiAiYSIsCi0gICAgICAgICAgICAgICAgImNvdW50IjogMgotICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibm9kZU5hbWUiOiAiYm9keSIsCi0gICAgICAg
ICAgICAgICAgImNvdW50IjogMQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAibm9kZU5hbWUiOiAiZGl2IiwKLSAgICAgICAgICAgICAgICAiY291bnQiOiAx
Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJub2RlTmFt
ZSI6ICJoZWFkIiwKLSAgICAgICAgICAgICAgICAiY291bnQiOiAxCi0gICAgICAgICAgICB9LAot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJub2RlTmFtZSI6ICJodG1sIiwKLSAgICAg
ICAgICAgICAgICAiY291bnQiOiAxCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICJub2RlTmFtZSI6ICJpZnJhbWUiLAotICAgICAgICAgICAgICAgICJjb3Vu
dCI6IDEKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5v
ZGVOYW1lIjogInAiLAotICAgICAgICAgICAgICAgICJjb3VudCI6IDEKLSAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5vZGVOYW1lIjogInNjcmlwdCIsCi0g
ICAgICAgICAgICAgICAgImNvdW50IjogMgotICAgICAgICAgICAgfQotICAgICAgICBdLAotICAg
ICAgICAibGlzdGVuZXJDb3VudCI6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAi
dHlwZSI6ICJjbGljayIsCi0gICAgICAgICAgICAgICAgImNvdW50IjogMgotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAidHlwZSI6ICJtb3VzZW92ZXIiLAot
ICAgICAgICAgICAgICAgICJjb3VudCI6IDEKLSAgICAgICAgICAgIH0KLSAgICAgICAgXQotICAg
IH0KLV0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1zdGF0aXN0aWNz
Lmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLXN0YXRpc3RpY3MuaHRt
bC1kaXNhYmxlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y1ZThlNi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLXN0YXRpc3RpY3MuaHRtbC1kaXNhYmxl
ZAorKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gY2FsbGJhY2so
ZXJyb3IsIHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0
Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIgdXJsID0gcmVzdWx0W2ldLmRvY3VtZW50
VVJJOwotICAgICAgICAgICAgaWYgKCF1cmwpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICB2YXIgaW5kZXggPSB1cmwubGFzdEluZGV4T2YoIi8iKTsKLSAgICAgICAgICAg
IGlmIChpbmRleCAhPSAtMSkKLSAgICAgICAgICAgICAgICB1cmwgPSB1cmwuc3Vic3RyaW5nKGlu
ZGV4ICsgMSk7Ci0gICAgICAgICAgICByZXN1bHRbaV0uZG9jdW1lbnRVUkkgPSAiLi4uIiArIHVy
bDsKLQotICAgICAgICAgICAgcmVzdWx0W2ldLm5vZGVDb3VudC5zb3J0KGZ1bmN0aW9uKGEsIGIp
IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gYS5ub2RlTmFtZS5sb2NhbGVDb21wYXJlKGIubm9k
ZU5hbWUpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICByZXN1bHRbaV0ubGlzdGVuZXJD
b3VudC5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gYS50eXBl
LmxvY2FsZUNvbXBhcmUoYi50eXBlKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0KLSAg
ICAgICAgZnVuY3Rpb24gc3RyaW5nQ29tcGFyZShhLCBiKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBpZiAoYSAmJiBiKQotICAgICAgICAgICAgICAgIHJldHVybiBhLmxvY2FsZUNvbXBhcmUoYik7
Ci0gICAgICAgICAgICBpZiAoIWEgJiYgIWIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgICAgICAgICBpZiAoYSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAg
IHJldHVybiAtMTsKLSAgICAgICAgfQotCi0gICAgICAgIHJlc3VsdC5zb3J0KGZ1bmN0aW9uKGEs
IGIpIHsKLSAgICAgICAgICAgIHZhciByID0gc3RyaW5nQ29tcGFyZShhLmRvY3VtZW50VVJJLCBi
LmRvY3VtZW50VVJJKTsKLSAgICAgICAgICAgIGlmIChyKQotICAgICAgICAgICAgICAgIHJldHVy
biByOwotICAgICAgICAgICAgcmV0dXJuIHN0cmluZ0NvbXBhcmUoYS50aXRsZSwgYi50aXRsZSk7
Ci0gICAgICAgIH0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXN1bHQg
PSAiICsgSlNPTi5zdHJpbmdpZnkocmVzdWx0LCBudWxsLCA0KSk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotICAgIE1lbW9yeUFnZW50LmdldERPTU5vZGVD
b3VudChjYWxsYmFjayk7Ci19Ci0KLXZhciBkZXRhY2hlZERpdnMgPSBbXTsKLWZ1bmN0aW9uIGNy
ZWF0ZURldGFjaGVkTm9kZSgpCi17Ci0gICAgdmFyIGRldGFjaGVkRGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgZGV0YWNoZWREaXYuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBmdW5jdGlvbihlKSB7fSk7Ci0gICAgZGV0YWNoZWREaXYuYWRkRXZlbnRMaXN0ZW5lcigi
bW91c2VvdmVyIiwgZnVuY3Rpb24oZSkge30pOwotICAgIGRldGFjaGVkRGl2LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKLSAgICByZXR1cm4gZGV0YWNoZWREaXY7
Ci19Ci0KLWZ1bmN0aW9uIHByZXBhcmVBbmRSdW5UZXN0KCkKLXsKLSAgICB2YXIgcCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJwYXJhZ3JhcGgiKTsKLSAgICBwLmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgZnVuY3Rpb24oZSkge30pOwotICAgIHAuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vv
dmVyIiwgZnVuY3Rpb24oZSkge30pOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOwotICAgIGRldGFjaGVkRGl2cy5wdXNoKGNyZWF0
ZURldGFjaGVkTm9kZSgpKTsKLSAgICBkZXRhY2hlZERpdnMucHVzaChjcmVhdGVEZXRhY2hlZE5v
ZGUoKSk7Ci0KLSAgICBydW5UZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9InByZXBhcmVBbmRSdW5UZXN0KCkiPgotPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5r
Ij48L2lmcmFtZT4KLTxwIGlkPSJwYXJhZ3JhcGgiIG9uY2xpY2s9ImFsZXJ0KDEpIj4KLVRlc3Rz
IHRoYXQgcGVyIGRvY3VtZW50IE5vZGUgY291bnQgaXMgY29ycmVjdGx5IGNhbGN1bGF0ZWQgYnkg
dGhlIE1lbW9yeSBhZ2VudC4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NDEwMCI+QnVnIDc0MTAwLjwvYT4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI5OCI+QnVnIDc0Mjk4LjwvYT4KLTwvcD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3Iv
YnJhY2UtbWF0Y2hlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9y
L2JyYWNlLW1hdGNoZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkY2I5OTMwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvYnJh
Y2UtbWF0Y2hlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCwwIEBACi1U
aGlzIHRlc3QgY2hlY2tzIGhpZ2hsaWdodGVyIGNvcnJlY3RuZXNzLgotCi1mdW5jdGlvbiBiYXIo
KSB7Ci0gICAgLy8gY29tbWVudCBoZXJlCi0gICAgdmFyIGEsIGIsIGMsIGQ7Ci0gICAgdmFyIGEg
PSAoKDEgKyAyKSAqICgzICsgNCkpOwotICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkg
ewotICAgICAgICBpZiAoYSA8IGIgJiYgYyA+IGQpIHsKLSAgICAgICAgfQotICAgIH0KLX0KLUN1
cnNvciBhdCBsaW5lICMwID4+PmZ1bmN0aW9uIGJhcigpIHs8PDwgY29sdW1uIDAgKGNoYXIgaXMg
ImYiKQotZW5jbG9zaW5nIGJyYWNlczogbnVsbAotCi1DdXJzb3IgYXQgbGluZSAjMCA+Pj5mdW5j
dGlvbiBiYXIoKSB7PDw8IGNvbHVtbiAxMiAoY2hhciBpcyAiKCIpCi1lbmNsb3NpbmcgYnJhY2Vz
OiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjowLCJjb2x1bW4iOjEyLCJ0b2tlbiI6ImJyYWNl
LXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6MCwiY29sdW1uIjoxMywidG9rZW4i
OiJicmFjZS1lbmQifX0KLQotQ3Vyc29yIGF0IGxpbmUgIzAgPj4+ZnVuY3Rpb24gYmFyKCkgezw8
PCBjb2x1bW4gMTMgKGNoYXIgaXMgIikiKQotZW5jbG9zaW5nIGJyYWNlczogeyJsZWZ0QnJhY2Ui
OnsibGluZU51bWJlciI6MCwiY29sdW1uIjoxMiwidG9rZW4iOiJicmFjZS1zdGFydCJ9LCJyaWdo
dEJyYWNlIjp7ImxpbmVOdW1iZXIiOjAsImNvbHVtbiI6MTMsInRva2VuIjoiYnJhY2UtZW5kIn19
Ci0KLUN1cnNvciBhdCBsaW5lICMwID4+PmZ1bmN0aW9uIGJhcigpIHs8PDwgY29sdW1uIDE0IChj
aGFyIGlzICIgIikKLWVuY2xvc2luZyBicmFjZXM6IG51bGwKLQotQ3Vyc29yIGF0IGxpbmUgIzAg
Pj4+ZnVuY3Rpb24gYmFyKCkgezw8PCBjb2x1bW4gMTUgKGNoYXIgaXMgInsiKQotZW5jbG9zaW5n
IGJyYWNlczogeyJsZWZ0QnJhY2UiOnsibGluZU51bWJlciI6MCwiY29sdW1uIjoxNSwidG9rZW4i
OiJibG9jay1zdGFydCJ9LCJyaWdodEJyYWNlIjp7ImxpbmVOdW1iZXIiOjgsImNvbHVtbiI6MCwi
dG9rZW4iOiJibG9jay1lbmQifX0KLQotQ3Vyc29yIGF0IGxpbmUgIzIgPj4+ICAgIHZhciBhLCBi
LCBjLCBkOzw8PCBjb2x1bW4gNSAoY2hhciBpcyAiYSIpCi1lbmNsb3NpbmcgYnJhY2VzOiB7Imxl
ZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjowLCJjb2x1bW4iOjE1LCJ0b2tlbiI6ImJsb2NrLXN0YXJ0
In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6OCwiY29sdW1uIjowLCJ0b2tlbiI6ImJsb2Nr
LWVuZCJ9fQotCi1DdXJzb3IgYXQgbGluZSAjMyA+Pj4gICAgdmFyIGEgPSAoKDEgKyAyKSAqICgz
ICsgNCkpOzw8PCBjb2x1bW4gMTIgKGNoYXIgaXMgIigiKQotZW5jbG9zaW5nIGJyYWNlczogeyJs
ZWZ0QnJhY2UiOnsibGluZU51bWJlciI6MywiY29sdW1uIjoxMiwidG9rZW4iOiJicmFjZS1zdGFy
dCJ9LCJyaWdodEJyYWNlIjp7ImxpbmVOdW1iZXIiOjMsImNvbHVtbiI6MzAsInRva2VuIjoiYnJh
Y2UtZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICMzID4+PiAgICB2YXIgYSA9ICgoMSArIDIpICog
KDMgKyA0KSk7PDw8IGNvbHVtbiAxMyAoY2hhciBpcyAiKCIpCi1lbmNsb3NpbmcgYnJhY2VzOiB7
ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjozLCJjb2x1bW4iOjEzLCJ0b2tlbiI6ImJyYWNlLXN0
YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6MywiY29sdW1uIjoxOSwidG9rZW4iOiJi
cmFjZS1lbmQifX0KLQotQ3Vyc29yIGF0IGxpbmUgIzMgPj4+ICAgIHZhciBhID0gKCgxICsgMikg
KiAoMyArIDQpKTs8PDwgY29sdW1uIDE0IChjaGFyIGlzICIxIikKLWVuY2xvc2luZyBicmFjZXM6
IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjMsImNvbHVtbiI6MTMsInRva2VuIjoiYnJhY2Ut
c3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVyIjozLCJjb2x1bW4iOjE5LCJ0b2tlbiI6
ImJyYWNlLWVuZCJ9fQotCi1DdXJzb3IgYXQgbGluZSAjMyA+Pj4gICAgdmFyIGEgPSAoKDEgKyAy
KSAqICgzICsgNCkpOzw8PCBjb2x1bW4gMTUgKGNoYXIgaXMgIiAiKQotZW5jbG9zaW5nIGJyYWNl
czogeyJsZWZ0QnJhY2UiOnsibGluZU51bWJlciI6MywiY29sdW1uIjoxMywidG9rZW4iOiJicmFj
ZS1zdGFydCJ9LCJyaWdodEJyYWNlIjp7ImxpbmVOdW1iZXIiOjMsImNvbHVtbiI6MTksInRva2Vu
IjoiYnJhY2UtZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICMzID4+PiAgICB2YXIgYSA9ICgoMSAr
IDIpICogKDMgKyA0KSk7PDw8IGNvbHVtbiAyMiAoY2hhciBpcyAiICIpCi1lbmNsb3NpbmcgYnJh
Y2VzOiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjozLCJjb2x1bW4iOjEyLCJ0b2tlbiI6ImJy
YWNlLXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6MywiY29sdW1uIjozMCwidG9r
ZW4iOiJicmFjZS1lbmQifX0KLQotQ3Vyc29yIGF0IGxpbmUgIzMgPj4+ICAgIHZhciBhID0gKCgx
ICsgMikgKiAoMyArIDQpKTs8PDwgY29sdW1uIDI0IChjaGFyIGlzICIzIikKLWVuY2xvc2luZyBi
cmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjMsImNvbHVtbiI6MjMsInRva2VuIjoi
YnJhY2Utc3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVyIjozLCJjb2x1bW4iOjI5LCJ0
b2tlbiI6ImJyYWNlLWVuZCJ9fQotCi1DdXJzb3IgYXQgbGluZSAjMyA+Pj4gICAgdmFyIGEgPSAo
KDEgKyAyKSAqICgzICsgNCkpOzw8PCBjb2x1bW4gMjkgKGNoYXIgaXMgIikiKQotZW5jbG9zaW5n
IGJyYWNlczogeyJsZWZ0QnJhY2UiOnsibGluZU51bWJlciI6MywiY29sdW1uIjoyMywidG9rZW4i
OiJicmFjZS1zdGFydCJ9LCJyaWdodEJyYWNlIjp7ImxpbmVOdW1iZXIiOjMsImNvbHVtbiI6Mjks
InRva2VuIjoiYnJhY2UtZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICMzID4+PiAgICB2YXIgYSA9
ICgoMSArIDIpICogKDMgKyA0KSk7PDw8IGNvbHVtbiAzMCAoY2hhciBpcyAiKSIpCi1lbmNsb3Np
bmcgYnJhY2VzOiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjozLCJjb2x1bW4iOjEyLCJ0b2tl
biI6ImJyYWNlLXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6MywiY29sdW1uIjoz
MCwidG9rZW4iOiJicmFjZS1lbmQifX0KLQotQ3Vyc29yIGF0IGxpbmUgIzMgPj4+ICAgIHZhciBh
ID0gKCgxICsgMikgKiAoMyArIDQpKTs8PDwgY29sdW1uIDMxIChjaGFyIGlzICI7IikKLWVuY2xv
c2luZyBicmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjAsImNvbHVtbiI6MTUsInRv
a2VuIjoiYmxvY2stc3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVyIjo4LCJjb2x1bW4i
OjAsInRva2VuIjoiYmxvY2stZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICM0ID4+PiAgICBmb3Io
dmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHs8PDwgY29sdW1uIDE5IChjaGFyIGlzICJpIikKLWVu
Y2xvc2luZyBicmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjQsImNvbHVtbiI6Nywi
dG9rZW4iOiJicmFjZS1zdGFydCJ9LCJyaWdodEJyYWNlIjp7ImxpbmVOdW1iZXIiOjQsImNvbHVt
biI6MzEsInRva2VuIjoiYnJhY2UtZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICM0ID4+PiAgICBm
b3IodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHs8PDwgY29sdW1uIDMyIChjaGFyIGlzICIgIikK
LWVuY2xvc2luZyBicmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjAsImNvbHVtbiI6
MTUsInRva2VuIjoiYmxvY2stc3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVyIjo4LCJj
b2x1bW4iOjAsInRva2VuIjoiYmxvY2stZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICM0ID4+PiAg
ICBmb3IodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHs8PDwgY29sdW1uIDMzIChjaGFyIGlzICJ7
IikKLWVuY2xvc2luZyBicmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjQsImNvbHVt
biI6MzMsInRva2VuIjoiYmxvY2stc3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVyIjo3
LCJjb2x1bW4iOjQsInRva2VuIjoiYmxvY2stZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICM1ID4+
PiAgICAgICAgaWYgKGEgPCBiICYmIGMgPiBkKSB7PDw8IGNvbHVtbiAyMCAoY2hhciBpcyAiICIp
Ci1lbmNsb3NpbmcgYnJhY2VzOiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjo1LCJjb2x1bW4i
OjExLCJ0b2tlbiI6ImJyYWNlLXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6NSwi
Y29sdW1uIjoyNiwidG9rZW4iOiJicmFjZS1lbmQifX0KLQotQ3Vyc29yIGF0IGxpbmUgIzUgPj4+
ICAgICAgICBpZiAoYSA8IGIgJiYgYyA+IGQpIHs8PDwgY29sdW1uIDI4IChjaGFyIGlzICJ7IikK
LWVuY2xvc2luZyBicmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjUsImNvbHVtbiI6
MjgsInRva2VuIjoiYmxvY2stc3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVyIjo2LCJj
b2x1bW4iOjgsInRva2VuIjoiYmxvY2stZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICM2ID4+PiAg
ICAgICAgfTw8PCBjb2x1bW4gOCAoY2hhciBpcyAifSIpCi1lbmNsb3NpbmcgYnJhY2VzOiB7Imxl
ZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjo1LCJjb2x1bW4iOjI4LCJ0b2tlbiI6ImJsb2NrLXN0YXJ0
In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6NiwiY29sdW1uIjo4LCJ0b2tlbiI6ImJsb2Nr
LWVuZCJ9fQotCi1DdXJzb3IgYXQgbGluZSAjNyA+Pj4gICAgfTw8PCBjb2x1bW4gNCAoY2hhciBp
cyAifSIpCi1lbmNsb3NpbmcgYnJhY2VzOiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjo0LCJj
b2x1bW4iOjMzLCJ0b2tlbiI6ImJsb2NrLXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJl
ciI6NywiY29sdW1uIjo0LCJ0b2tlbiI6ImJsb2NrLWVuZCJ9fQotCi1DdXJzb3IgYXQgbGluZSAj
OCA+Pj59PDw8IGNvbHVtbiAwIChjaGFyIGlzICJ9IikKLWVuY2xvc2luZyBicmFjZXM6IHsibGVm
dEJyYWNlIjp7ImxpbmVOdW1iZXIiOjAsImNvbHVtbiI6MTUsInRva2VuIjoiYmxvY2stc3RhcnQi
fSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVyIjo4LCJjb2x1bW4iOjAsInRva2VuIjoiYmxvY2st
ZW5kIn19Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9icmFj
ZS1tYXRjaGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2JyYWNlLW1hdGNo
ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg5NjkyNS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2JyYWNlLW1hdGNoZXIuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9ImVkaXRvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0
aW9uIHRlc3QoKQotewotZnVuY3Rpb24gYmFyKCkgewotICAgIC8vIGNvbW1lbnQgaGVyZQotICAg
IHZhciBhLCBiLCBjLCBkOwotICAgIHZhciBhID0gKCgxICsgMikgKiAoMyArIDQpKTsKLSAgICBm
b3IodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKLSAgICAgICAgaWYgKGEgPCBiICYmIGMgPiBk
KSB7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLQotICAgIHZhciB0ZXh0RWRpdG9yID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVUZXN0RWRpdG9yKCk7Ci0gICAgdGV4dEVkaXRvci5vdmVycmlkZVZpZXdw
b3J0Rm9yVGVzdCgwLCB1bmRlZmluZWQsIDMpOwotICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSAi
dGV4dC9qYXZhc2NyaXB0IjsKLSAgICB0ZXh0RWRpdG9yLnNldFJlYWRPbmx5KGZhbHNlKTsKLSAg
ICB0ZXh0RWRpdG9yLnNldFRleHQoYmFyLnRvU3RyaW5nKCkpOwotICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KHRleHRFZGl0b3IudGV4dCgpKTsKLQotICAgIHZhciBicmFjZUhpZ2hsaWdodGVy
ID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwuQnJhY2VNYXRjaGVyKHRleHRFZGl0
b3IuX3RleHRNb2RlbCk7Ci0gICAgZnVuY3Rpb24gdGVzdEFuZER1bXAobGluZU51bWJlciwgY29s
dW1uKQotICAgIHsKLSAgICAgICAgdmFyIGxpbmUgPSB0ZXh0RWRpdG9yLl90ZXh0TW9kZWwubGlu
ZShsaW5lTnVtYmVyKTsKLSAgICAgICAgdmFyIHRleHQgPSAiQ3Vyc29yIGF0IGxpbmUgIyIgKyAo
bGluZU51bWJlcikgKyAiID4+PiIgKyBsaW5lICsgIjw8PCBjb2x1bW4gIiArIGNvbHVtbiArICIg
KGNoYXIgaXMgXCIiICsgbGluZS5jaGFyQXQoY29sdW1uKSArICJcIikiOwotICAgICAgICB0ZXh0
ICs9ICJcbmVuY2xvc2luZyBicmFjZXM6ICIgKyBKU09OLnN0cmluZ2lmeShicmFjZUhpZ2hsaWdo
dGVyLmVuY2xvc2luZ0JyYWNlcyhsaW5lTnVtYmVyLCBjb2x1bW4pKTsKLSAgICAgICAgdGV4dCAr
PSAiXG4iOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0KTsKLSAgICB9Ci0K
LSAgICB0ZXN0QW5kRHVtcCgwLCAwKTsKLSAgICB0ZXN0QW5kRHVtcCgwLCAxMik7Ci0gICAgdGVz
dEFuZER1bXAoMCwgMTMpOwotICAgIHRlc3RBbmREdW1wKDAsIDE0KTsKLSAgICB0ZXN0QW5kRHVt
cCgwLCAxNSk7Ci0gICAgdGVzdEFuZER1bXAoMiwgNSk7Ci0gICAgdGVzdEFuZER1bXAoMywgMTIp
OwotICAgIHRlc3RBbmREdW1wKDMsIDEzKTsKLSAgICB0ZXN0QW5kRHVtcCgzLCAxNCk7Ci0gICAg
dGVzdEFuZER1bXAoMywgMTUpOwotICAgIHRlc3RBbmREdW1wKDMsIDIyKTsKLSAgICB0ZXN0QW5k
RHVtcCgzLCAyNCk7Ci0gICAgdGVzdEFuZER1bXAoMywgMjkpOwotICAgIHRlc3RBbmREdW1wKDMs
IDMwKTsKLSAgICB0ZXN0QW5kRHVtcCgzLCAzMSk7Ci0gICAgdGVzdEFuZER1bXAoNCwgMTkpOwot
ICAgIHRlc3RBbmREdW1wKDQsIDMyKTsKLSAgICB0ZXN0QW5kRHVtcCg0LCAzMyk7Ci0gICAgdGVz
dEFuZER1bXAoNSwgMjApOwotICAgIHRlc3RBbmREdW1wKDUsIDI4KTsKLSAgICB0ZXN0QW5kRHVt
cCg2LCA4KTsKLSAgICB0ZXN0QW5kRHVtcCg3LCA0KTsKLSAgICB0ZXN0QW5kRHVtcCg4LCAwKTsK
LQotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRoaXMgdGVzdCBjaGVja3Mg
aGlnaGxpZ2h0ZXIgY29ycmVjdG5lc3MuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvZWRpdG9yLXRlc3QuanMgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2VkaXRvci10ZXN0LmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlNTRlMWI1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lZGl0b3IvZWRpdG9yLXRlc3QuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAot
ZnVuY3Rpb24gaW5pdGlhbGl6ZV9FZGl0b3JUZXN0cygpCi17Ci0KLUluc3BlY3RvclRlc3QuY3Jl
YXRlVGVzdEVkaXRvciA9IGZ1bmN0aW9uKGNsaWVudEhlaWdodCwgY2h1bmtTaXplLCB0ZXh0RWRp
dG9yRGVsZWdhdGUpCi17Ci0gICAgV2ViSW5zcGVjdG9yLmRlYnVnRGVmYXVsdFRleHRFZGl0b3Ig
PSB0cnVlOwotICAgIHZhciB0ZXh0RWRpdG9yID0gbmV3IFdlYkluc3BlY3Rvci5EZWZhdWx0VGV4
dEVkaXRvcigiIiwgdGV4dEVkaXRvckRlbGVnYXRlIHx8IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvckRlbGVnYXRlKCkpOwotICAgIHRleHRFZGl0b3Iub3ZlcnJpZGVWaWV3cG9ydEZvclRlc3Qo
MCwgY2xpZW50SGVpZ2h0IHx8IDEwMCwgY2h1bmtTaXplIHx8IDEwKTsKLSAgICB0ZXh0RWRpdG9y
LnNob3coV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuZWxlbWVudCk7Ci0gICAgcmV0dXJuIHRl
eHRFZGl0b3I7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmZpbGxFZGl0b3JXaXRoVGV4dCA9IGZ1bmN0
aW9uKHRleHRFZGl0b3IsIGxpbmVDb3VudCkKLXsKLSAgICB2YXIgdGV4dE1vZGVsID0gdGV4dEVk
aXRvci5fdGV4dE1vZGVsOwotICAgIHZhciBsaW5lcyA9IFtdOwotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbGluZUNvdW50OyArK2kpCi0gICAgICAgIGxpbmVzLnB1c2goaSk7Ci0gICAgdGV4dE1v
ZGVsLnNldFRleHQobGluZXMuam9pbigiXG4iKSk7Ci19Ci0KLUluc3BlY3RvclRlc3QudGV4dFdp
dGhTZWxlY3Rpb24gPSBmdW5jdGlvbih0ZXh0LCBzZWxlY3Rpb24pCi17Ci0gICAgaWYgKCFzZWxl
Y3Rpb24pCi0gICAgICAgIHJldHVybiB0ZXh0OwotCi0gICAgZnVuY3Rpb24gbGluZVdpdGhDdXJz
b3IobGluZSwgY29sdW1uLCBjdXJzb3JDaGFyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGxpbmUu
c3Vic3RyaW5nKDAsIGNvbHVtbikgKyBjdXJzb3JDaGFyICsgbGluZS5zdWJzdHJpbmcoY29sdW1u
KTsKLSAgICB9Ci0KLSAgICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCJcbiIpOwotICAgIHNlbGVj
dGlvbiA9IHNlbGVjdGlvbi5ub3JtYWxpemUoKTsKLSAgICB2YXIgZW5kQ3Vyc29yQ2hhciA9IHNl
bGVjdGlvbi5pc0VtcHR5KCkgPyAifCIgOiAiPCI7Ci0gICAgbGluZXNbc2VsZWN0aW9uLmVuZExp
bmVdID0gbGluZVdpdGhDdXJzb3IobGluZXNbc2VsZWN0aW9uLmVuZExpbmVdLCBzZWxlY3Rpb24u
ZW5kQ29sdW1uLCBlbmRDdXJzb3JDaGFyKTsKLSAgICBpZiAoIXNlbGVjdGlvbi5pc0VtcHR5KCkp
IHsKLSAgICAgICAgbGluZXNbc2VsZWN0aW9uLnN0YXJ0TGluZV0gPSBsaW5lV2l0aEN1cnNvcihs
aW5lc1tzZWxlY3Rpb24uc3RhcnRMaW5lXSwgc2VsZWN0aW9uLnN0YXJ0Q29sdW1uLCAiPiIpOwot
ICAgIH0KLSAgICByZXR1cm4gbGluZXMuam9pbigiXG4iKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5p
bnNlcnRUZXh0TGluZSA9IGZ1bmN0aW9uKGxpbmUpCi17Ci0gICAgZnVuY3Rpb24gZW50ZXIoKQot
ICAgIHsKLSAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiXG4iKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBpbm5lckluc2VydFRleHRMaW5lKCkKLSAgICB7Ci0gICAgICAgIHRleHRJbnB1dENv
bnRyb2xsZXIuaW5zZXJ0VGV4dChsaW5lKTsKLSAgICB9Ci0gICAgc2V0VGltZW91dChpbm5lcklu
c2VydFRleHRMaW5lKTsKLSAgICBzZXRUaW1lb3V0KGVudGVyKTsKLX0KLQotSW5zcGVjdG9yVGVz
dC5kdW1wRWRpdG9yQ2h1bmtzID0gZnVuY3Rpb24odGV4dEVkaXRvcikKLXsKLSAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiQ2h1bmsgbW9kZWwiKTsKLSAgICB2YXIgY2h1bmtzID0gdGV4dEVk
aXRvci5fbWFpblBhbmVsLl90ZXh0Q2h1bmtzOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2h1
bmtzLmxlbmd0aDsgKytpKQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ2h1bmsg
WyIgKyBpICsgIl0gIiArIGNodW5rc1tpXS5zdGFydExpbmUgKyAiOiIgKyBjaHVua3NbaV0uZW5k
TGluZSArICIgKCIgKyAoY2h1bmtzW2ldLl9leHBhbmRlZCA/ICJleHBhbmRlZCIgOiAiY29sbGFw
c2VkIikgKyAiKSIpOwotfTsKLQotSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9yTW9kZWwgPSBmdW5j
dGlvbih0ZXh0RWRpdG9yKQotewotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXh0IG1v
ZGVsIik7Ci0gICAgdmFyIHRleHRNb2RlbCA9IHRleHRFZGl0b3IuX3RleHRNb2RlbDsKLSAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHRleHRNb2RlbC5saW5lc0NvdW50OyArK2kpIHsKLSAgICAgICAg
dmFyIHByZWZpeCA9ICJbIiArIGkgKyAiXSI7Ci0gICAgICAgIHdoaWxlIChwcmVmaXgubGVuZ3Ro
IDwgMTApCi0gICAgICAgICAgICBwcmVmaXggKz0gIiAiOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdChwcmVmaXggKyB0ZXh0TW9kZWwubGluZShpKSk7Ci0gICAgfQotfTsKLQotSW5z
cGVjdG9yVGVzdC5kdW1wRWRpdG9yRE9NID0gZnVuY3Rpb24odGV4dEVkaXRvcikKLXsKLSAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRWRpdG9yIERPTSIpOwotICAgIHZhciBlbGVtZW50ID0g
dGV4dEVkaXRvci5fbWFpblBhbmVsLl9jb250YWluZXI7Ci0gICAgZm9yICh2YXIgbm9kZSA9IGVs
ZW1lbnQuZmlyc3RDaGlsZDsgbm9kZTsgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmcpIHsKLSAgICAg
ICAgaWYgKG5vZGUuX2NodW5rKQotICAgICAgICAgICAgdmFyIHByZWZpeCA9ICJbIiArIG5vZGUu
X2NodW5rLnN0YXJ0TGluZSArICI6IiArIG5vZGUuX2NodW5rLmVuZExpbmUgKyAiXSI7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHZhciBwcmVmaXggPSAiWyIgKyBub2RlLmxpbmVOdW1iZXIg
KyAiXSI7Ci0gICAgICAgIHdoaWxlIChwcmVmaXgubGVuZ3RoIDwgMTApCi0gICAgICAgICAgICBw
cmVmaXggKz0gIiAiOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChwcmVmaXggKyBu
b2RlLm91dGVySFRNTCk7Ci0gICAgfQotfTsKLQotSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRN
TCA9IGZ1bmN0aW9uKHRleHRFZGl0b3IsIG1haW5QYW5lbE9ubHkpCi17Ci0gICAgdmFyIGVsZW1l
bnQgPSBtYWluUGFuZWxPbmx5ID8gdGV4dEVkaXRvci5fbWFpblBhbmVsLmVsZW1lbnQgOiB0ZXh0
RWRpdG9yLmVsZW1lbnQ7Ci0gICAgdmFyIGR1bXBlZEhUTUwgPSBlbGVtZW50LmlubmVySFRNTC5y
ZXBsYWNlKC88ZGl2L2csICJcbjxkaXYiKTsKLSAgICB2YXIgZHVtcGVkSFRNTCA9IGR1bXBlZEhU
TUwucmVwbGFjZSgvaGVpZ2h0OiBbMC05XSsvZywgImhlaWdodDogPG51bWJlcj4iKTsKLSAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdChkdW1wZWRIVE1MKTsKLX07Ci0KLUluc3BlY3RvclRlc3Qu
Z2V0TGluZUVsZW1lbnQgPSBmdW5jdGlvbih0ZXh0RWRpdG9yLCBsaW5lTnVtYmVyKQotewotICAg
IHJldHVybiB0ZXh0RWRpdG9yLl9tYWluUGFuZWwuY2h1bmtGb3JMaW5lKGxpbmVOdW1iZXIpLmV4
cGFuZGVkTGluZVJvdyhsaW5lTnVtYmVyKTsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItYmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItYmFzaWNzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU2NzE5ZC4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWJhc2ljcy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNDEgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyBoaWdo
bGlnaHRlciBjb3JyZWN0bmVzcy4KLQotCi1BZnRlciBoaWdobGlnaHRpbmcgNSBsaW5lcwotMSA6
IC8qKiA6IGphdmFzY3JpcHQtY29tbWVudFswLTVdCi0yIDogICogbGluZSAjMSA6IGphdmFzY3Jp
cHQtY29tbWVudFswLTEwXQotMyA6ICAqIGxpbmUgIzIgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0x
MF0KLTQgOiAgKiBsaW5lICMzIDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi01IDogICogbGlu
ZSAjNCA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotNiA6ICAqIGxpbmUgIzUgOiBudWxsCi03
IDogICogbGluZSAjNiA6IG51bGwKLTggOiAgKiBsaW5lICM3IDogbnVsbAotOSA6ICAqIGxpbmUg
IzggOiBudWxsCi0xMCA6ICAqIHZhciBhID0gbmV3IEEoKTsgLy8qLyA6IG51bGwKLTExIDogc29t
ZSB0ZXh0IDogbnVsbAotMTIgOiAgOiBudWxsCi0KLUFmdGVyIGhpZ2hsaWdodGluZyBhbGwgbGlu
ZXMKLTEgOiAvKiogOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC01XQotMiA6ICAqIGxpbmUgIzEgOiBq
YXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTMgOiAgKiBsaW5lICMyIDogamF2YXNjcmlwdC1jb21t
ZW50WzAtMTBdCi00IDogICogbGluZSAjMyA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotNSA6
ICAqIGxpbmUgIzQgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTYgOiAgKiBsaW5lICM1IDog
amF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi03IDogICogbGluZSAjNiA6IGphdmFzY3JpcHQtY29t
bWVudFswLTEwXQotOCA6ICAqIGxpbmUgIzcgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTkg
OiAgKiBsaW5lICM4IDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi0xMCA6ICAqIHZhciBhID0g
bmV3IEEoKTsgLy8qLyA6IGphdmFzY3JpcHQtY29tbWVudFswLTI0XQotMTEgOiBzb21lIHRleHQg
OiBqYXZhc2NyaXB0LWlkZW50WzAtNF0gd2hpdGVzcGFjZVs0LTVdIGphdmFzY3JpcHQtaWRlbnRb
NS05XQotMTIgOiAgOgotCi1BZnRlciBjaGFuZ2luZyB0ZXh0IG1vZGVsLCBidXQgYmVmb3JlIHVw
ZGF0aW5nIGhpZ2hsaWdodHMKLTEgOiAvKiogOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC01XQotMiA6
ICAqIGxpbmUgIzEgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTMgOiAgKiBsaW5lICMyIDog
amF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi00IDogLyoqIDogbnVsbAotNSA6ICAqIGxpbmUgIzEg
OiBudWxsCi02IDogICogbGluZSAjMiA6IG51bGwKLTcgOiAgKiBsaW5lICMzIDogbnVsbAotOCA6
ICAqIGxpbmUgIzQgOiBudWxsCi05IDogICogbGluZSAjNSA6IG51bGwKLTEwIDogICogbGluZSAj
NiA6IG51bGwKLTExIDogICogbGluZSAjNyA6IG51bGwKLTEyIDogICogbGluZSAjOCA6IG51bGwK
LTEzIDogICogdmFyIGEgPSBuZXcgQSgpOyAvLyovIDogbnVsbAotMTQgOiBzb21lIHRleHQgOiBu
dWxsCi0xNSA6ICAqIGxpbmUgIzYgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTE2IDogICog
bGluZSAjNyA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotMTcgOiAgKiBsaW5lICM4IDogamF2
YXNjcmlwdC1jb21tZW50WzAtMTBdCi0xOCA6ICAqIHZhciBhID0gbmV3IEEoKTsgLy8qLyA6IGph
dmFzY3JpcHQtY29tbWVudFswLTI0XQotMTkgOiBzb21lIHRleHQgOiBqYXZhc2NyaXB0LWlkZW50
WzAtNF0gd2hpdGVzcGFjZVs0LTVdIGphdmFzY3JpcHQtaWRlbnRbNS05XQotMjAgOiAgOgotCi1B
ZnRlciB1cGRhdGluZyBoaWdobGlnaHRzCi0xIDogLyoqIDogamF2YXNjcmlwdC1jb21tZW50WzAt
NV0KLTIgOiAgKiBsaW5lICMxIDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi0zIDogICogbGlu
ZSAjMiA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotNCA6IC8qKiA6IGphdmFzY3JpcHQtY29t
bWVudFswLTRdCi01IDogICogbGluZSAjMSA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotNiA6
ICAqIGxpbmUgIzIgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTcgOiAgKiBsaW5lICMzIDog
amF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi04IDogICogbGluZSAjNCA6IGphdmFzY3JpcHQtY29t
bWVudFswLTEwXQotOSA6ICAqIGxpbmUgIzUgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTEw
IDogICogbGluZSAjNiA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotMTEgOiAgKiBsaW5lICM3
IDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi0xMiA6ICAqIGxpbmUgIzggOiBqYXZhc2NyaXB0
LWNvbW1lbnRbMC0xMF0KLTEzIDogICogdmFyIGEgPSBuZXcgQSgpOyAvLyovIDogamF2YXNjcmlw
dC1jb21tZW50WzAtMjRdCi0xNCA6IHNvbWUgdGV4dCA6IGphdmFzY3JpcHQtaWRlbnRbMC00XSB3
aGl0ZXNwYWNlWzQtNV0gamF2YXNjcmlwdC1pZGVudFs1LTldCi0xNSA6ICAqIGxpbmUgIzYgOiB3
aGl0ZXNwYWNlWzAtMV0gd2hpdGVzcGFjZVsyLTNdIGphdmFzY3JpcHQtaWRlbnRbMy03XSB3aGl0
ZXNwYWNlWzctOF0gamF2YXNjcmlwdC1udW1iZXJbOS0xMF0KLTE2IDogICogbGluZSAjNyA6IG51
bGwKLTE3IDogICogbGluZSAjOCA6IG51bGwKLTE4IDogICogdmFyIGEgPSBuZXcgQSgpOyAvLyov
IDogbnVsbAotMTkgOiBzb21lIHRleHQgOiBudWxsCi0yMCA6ICA6IG51bGwKLQotQWZ0ZXIgaGln
aGxpZ2h0aW5nIHVwIHRvIHRoZSBlbmQKLTEgOiAvKiogOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC01
XQotMiA6ICAqIGxpbmUgIzEgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTMgOiAgKiBsaW5l
ICMyIDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi00IDogLyoqIDogamF2YXNjcmlwdC1jb21t
ZW50WzAtNF0KLTUgOiAgKiBsaW5lICMxIDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi02IDog
ICogbGluZSAjMiA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotNyA6ICAqIGxpbmUgIzMgOiBq
YXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTggOiAgKiBsaW5lICM0IDogamF2YXNjcmlwdC1jb21t
ZW50WzAtMTBdCi05IDogICogbGluZSAjNSA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotMTAg
OiAgKiBsaW5lICM2IDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi0xMSA6ICAqIGxpbmUgIzcg
OiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTEyIDogICogbGluZSAjOCA6IGphdmFzY3JpcHQt
Y29tbWVudFswLTEwXQotMTMgOiAgKiB2YXIgYSA9IG5ldyBBKCk7IC8vKi8gOiBqYXZhc2NyaXB0
LWNvbW1lbnRbMC0yNF0KLTE0IDogc29tZSB0ZXh0IDogamF2YXNjcmlwdC1pZGVudFswLTRdIHdo
aXRlc3BhY2VbNC01XSBqYXZhc2NyaXB0LWlkZW50WzUtOV0KLTE1IDogICogbGluZSAjNiA6IHdo
aXRlc3BhY2VbMC0xXSB3aGl0ZXNwYWNlWzItM10gamF2YXNjcmlwdC1pZGVudFszLTddIHdoaXRl
c3BhY2VbNy04XSBqYXZhc2NyaXB0LW51bWJlcls5LTEwXQotMTYgOiAgKiBsaW5lICM3IDogd2hp
dGVzcGFjZVswLTFdIHdoaXRlc3BhY2VbMi0zXSBqYXZhc2NyaXB0LWlkZW50WzMtN10gd2hpdGVz
cGFjZVs3LThdIGphdmFzY3JpcHQtbnVtYmVyWzktMTBdCi0xNyA6ICAqIGxpbmUgIzggOiB3aGl0
ZXNwYWNlWzAtMV0gd2hpdGVzcGFjZVsyLTNdIGphdmFzY3JpcHQtaWRlbnRbMy03XSB3aGl0ZXNw
YWNlWzctOF0gamF2YXNjcmlwdC1udW1iZXJbOS0xMF0KLTE4IDogICogdmFyIGEgPSBuZXcgQSgp
OyAvLyovIDogd2hpdGVzcGFjZVswLTFdIHdoaXRlc3BhY2VbMi0zXSBqYXZhc2NyaXB0LWtleXdv
cmRbMy02XSB3aGl0ZXNwYWNlWzYtN10gamF2YXNjcmlwdC1pZGVudFs3LThdIHdoaXRlc3BhY2Vb
OC05XSB3aGl0ZXNwYWNlWzEwLTExXSBqYXZhc2NyaXB0LWtleXdvcmRbMTEtMTRdIHdoaXRlc3Bh
Y2VbMTQtMTVdIGphdmFzY3JpcHQtaWRlbnRbMTUtMTZdIHdoaXRlc3BhY2VbMTktMjBdIGphdmFz
Y3JpcHQtY29tbWVudFsyMC0yNF0KLTE5IDogc29tZSB0ZXh0IDogamF2YXNjcmlwdC1pZGVudFsw
LTRdIHdoaXRlc3BhY2VbNC01XSBqYXZhc2NyaXB0LWlkZW50WzUtOV0KLTIwIDogIDoKLQotQWZ0
ZXIgY2hhbmdpbmcgdGhlIGZpcnN0IGxpbmUsIGFuZCB1cGRhdGluZyB0aGUgaGlnaGxpZ2h0cyBm
b3IgdGhlIGZpcnN0IDUgbGluZXMKLTEgOiBmb28gLyogY29tbWVudCAqLyA6IGphdmFzY3JpcHQt
aWRlbnRbMC0zXSB3aGl0ZXNwYWNlWzMtNF0gamF2YXNjcmlwdC1jb21tZW50WzQtMTddCi0yIDog
ICogbGluZSAjMSA6IHdoaXRlc3BhY2VbMC0xXSB3aGl0ZXNwYWNlWzItM10gamF2YXNjcmlwdC1p
ZGVudFszLTddIHdoaXRlc3BhY2VbNy04XSBqYXZhc2NyaXB0LW51bWJlcls5LTEwXQotMyA6ICAq
IGxpbmUgIzIgOiB3aGl0ZXNwYWNlWzAtMV0gd2hpdGVzcGFjZVsyLTNdIGphdmFzY3JpcHQtaWRl
bnRbMy03XSB3aGl0ZXNwYWNlWzctOF0gamF2YXNjcmlwdC1udW1iZXJbOS0xMF0KLTQgOiAvKiog
OiBqYXZhc2NyaXB0LWNvbW1lbnRbMC01XQotNSA6ICAqIGxpbmUgIzEgOiBqYXZhc2NyaXB0LWNv
bW1lbnRbMC0xMF0KLTYgOiAgKiBsaW5lICMyIDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi03
IDogICogbGluZSAjMyA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotOCA6ICAqIGxpbmUgIzQg
OiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTkgOiAgKiBsaW5lICM1IDogamF2YXNjcmlwdC1j
b21tZW50WzAtMTBdCi0xMCA6ICAqIGxpbmUgIzYgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0K
LTExIDogICogbGluZSAjNyA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotMTIgOiAgKiBsaW5l
ICM4IDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi0xMyA6ICAqIHZhciBhID0gbmV3IEEoKTsg
Ly8qLyA6IGphdmFzY3JpcHQtY29tbWVudFswLTI0XQotMTQgOiBzb21lIHRleHQgOiBqYXZhc2Ny
aXB0LWlkZW50WzAtNF0gd2hpdGVzcGFjZVs0LTVdIGphdmFzY3JpcHQtaWRlbnRbNS05XQotMTUg
OiAgKiBsaW5lICM2IDogd2hpdGVzcGFjZVswLTFdIHdoaXRlc3BhY2VbMi0zXSBqYXZhc2NyaXB0
LWlkZW50WzMtN10gd2hpdGVzcGFjZVs3LThdIGphdmFzY3JpcHQtbnVtYmVyWzktMTBdCi0xNiA6
ICAqIGxpbmUgIzcgOiB3aGl0ZXNwYWNlWzAtMV0gd2hpdGVzcGFjZVsyLTNdIGphdmFzY3JpcHQt
aWRlbnRbMy03XSB3aGl0ZXNwYWNlWzctOF0gamF2YXNjcmlwdC1udW1iZXJbOS0xMF0KLTE3IDog
ICogbGluZSAjOCA6IHdoaXRlc3BhY2VbMC0xXSB3aGl0ZXNwYWNlWzItM10gamF2YXNjcmlwdC1p
ZGVudFszLTddIHdoaXRlc3BhY2VbNy04XSBqYXZhc2NyaXB0LW51bWJlcls5LTEwXQotMTggOiAg
KiB2YXIgYSA9IG5ldyBBKCk7IC8vKi8gOiB3aGl0ZXNwYWNlWzAtMV0gd2hpdGVzcGFjZVsyLTNd
IGphdmFzY3JpcHQta2V5d29yZFszLTZdIHdoaXRlc3BhY2VbNi03XSBqYXZhc2NyaXB0LWlkZW50
WzctOF0gd2hpdGVzcGFjZVs4LTldIHdoaXRlc3BhY2VbMTAtMTFdIGphdmFzY3JpcHQta2V5d29y
ZFsxMS0xNF0gd2hpdGVzcGFjZVsxNC0xNV0gamF2YXNjcmlwdC1pZGVudFsxNS0xNl0gd2hpdGVz
cGFjZVsxOS0yMF0gamF2YXNjcmlwdC1jb21tZW50WzIwLTI0XQotMTkgOiBzb21lIHRleHQgOiBq
YXZhc2NyaXB0LWlkZW50WzAtNF0gd2hpdGVzcGFjZVs0LTVdIGphdmFzY3JpcHQtaWRlbnRbNS05
XQotMjAgOiAgOgotCi1BZ2FpbiBjaGFuZ2UgdGhlIGZpcnN0IGxpbmUsIGJ1dCB1cGRhdGUgb25s
eSBmaXJzdCAyIGxpbmVzIChpbnZhbGlkYXRlIHVwZGF0ZSBmb3IgdGhlIGxpbmVzIGJlbG93KQot
MSA6IGZvbyAvKiBjb21tZW50ICovIC8qIDogamF2YXNjcmlwdC1pZGVudFswLTNdIHdoaXRlc3Bh
Y2VbMy00XSBqYXZhc2NyaXB0LWNvbW1lbnRbNC0xN10gd2hpdGVzcGFjZVsxNy0xOF0gamF2YXNj
cmlwdC1jb21tZW50WzE4LTIxXQotMiA6ICAqIGxpbmUgIzEgOiBqYXZhc2NyaXB0LWNvbW1lbnRb
MC0xMF0KLTMgOiAgKiBsaW5lICMyIDogbnVsbAotNCA6IC8qKiA6IG51bGwKLTUgOiAgKiBsaW5l
ICMxIDogbnVsbAotNiA6ICAqIGxpbmUgIzIgOiBudWxsCi03IDogICogbGluZSAjMyA6IG51bGwK
LTggOiAgKiBsaW5lICM0IDogbnVsbAotOSA6ICAqIGxpbmUgIzUgOiBudWxsCi0xMCA6ICAqIGxp
bmUgIzYgOiBudWxsCi0xMSA6ICAqIGxpbmUgIzcgOiBudWxsCi0xMiA6ICAqIGxpbmUgIzggOiBu
dWxsCi0xMyA6ICAqIHZhciBhID0gbmV3IEEoKTsgLy8qLyA6IG51bGwKLTE0IDogc29tZSB0ZXh0
IDogbnVsbAotMTUgOiAgKiBsaW5lICM2IDogbnVsbAotMTYgOiAgKiBsaW5lICM3IDogbnVsbAot
MTcgOiAgKiBsaW5lICM4IDogbnVsbAotMTggOiAgKiB2YXIgYSA9IG5ldyBBKCk7IC8vKi8gOiBu
dWxsCi0xOSA6IHNvbWUgdGV4dCA6IG51bGwKLTIwIDogIDogbnVsbAotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWJhc2ljcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1iYXNpY3MuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjM0NDcyOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWJhc2ljcy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNjYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iaGlnaGxpZ2h0ZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICB2YXIgc3JjID0gIi8qKlxuIjsKLSAgICBmb3IgKHZhciBpID0gMTsgaSA8
IDk7ICsraSkgewotICAgICAgICBzcmMgKz0gIiAqIGxpbmUgIyIgKyBpICsgIlxuIjsKLSAgICB9
Ci0gICAgc3JjICs9ICIgKiB2YXIgYSA9IG5ldyBBKCk7IC8vKi9cbiI7Ci0gICAgc3JjICs9ICJz
b21lIHRleHRcbiI7Ci0KLSAgICB2YXIgdGV4dE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yTW9kZWwoKTsKLSAgICB0ZXh0TW9kZWwuc2V0VGV4dChzcmMpOwotCi0gICAgdmFyIGhp
Z2hsaWdodGVyID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIodGV4dE1v
ZGVsLCBmdW5jdGlvbigpIHt9KTsKLSAgICBoaWdobGlnaHRlci5taW1lVHlwZSA9ICJ0ZXh0L2ph
dmFzY3JpcHQiOwotICAgIGhpZ2hsaWdodGVyLmhpZ2hsaWdodENodW5rTGltaXQgPSBOdW1iZXIu
TUFYX1ZBTFVFOyAvLyBTeW5jaHJvbm91cy4KLQotICAgIGZ1bmN0aW9uIGR1bXBUZXh0TW9kZWwo
bXNnKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcbiIgKyBtc2cpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXBUZXh0TW9kZWwodGV4dE1vZGVsKTsKLSAgICB9Ci0KLSAg
ICBoaWdobGlnaHRlci5oaWdobGlnaHQoNSk7Ci0gICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgaGln
aGxpZ2h0aW5nIDUgbGluZXMiKTsKLQotICAgIGhpZ2hsaWdodGVyLmhpZ2hsaWdodCh0ZXh0TW9k
ZWwubGluZXNDb3VudCk7Ci0gICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgaGlnaGxpZ2h0aW5nIGFs
bCBsaW5lcyIpOwotCi0gICAgdmFyIHJhbmdlID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2Uo
MywgMCwgNiwgMCk7Ci0gICAgdmFyIG5ld1JhbmdlID0gdGV4dE1vZGVsLmVkaXRSYW5nZShyYW5n
ZSwgc3JjKTsKLSAgICBkdW1wVGV4dE1vZGVsKCJBZnRlciBjaGFuZ2luZyB0ZXh0IG1vZGVsLCBi
dXQgYmVmb3JlIHVwZGF0aW5nIGhpZ2hsaWdodHMiKTsKLQotICAgIGhpZ2hsaWdodGVyLnVwZGF0
ZUhpZ2hsaWdodChuZXdSYW5nZS5zdGFydExpbmUsIG5ld1JhbmdlLmVuZExpbmUgKyAxKTsKLSAg
ICBkdW1wVGV4dE1vZGVsKCJBZnRlciB1cGRhdGluZyBoaWdobGlnaHRzIik7Ci0KLSAgICBoaWdo
bGlnaHRlci5oaWdobGlnaHQodGV4dE1vZGVsLmxpbmVzQ291bnQsIHRydWUpOwotICAgIGR1bXBU
ZXh0TW9kZWwoIkFmdGVyIGhpZ2hsaWdodGluZyB1cCB0byB0aGUgZW5kIik7Ci0KLSAgICB2YXIg
cmFuZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgwLCAwLCAwLCB0ZXh0TW9kZWwubGlu
ZUxlbmd0aCgwKSk7Ci0gICAgdmFyIG5ld1JhbmdlID0gdGV4dE1vZGVsLmVkaXRSYW5nZShyYW5n
ZSwgImZvbyAvKiBjb21tZW50ICovIik7Ci0gICAgaGlnaGxpZ2h0ZXIudXBkYXRlSGlnaGxpZ2h0
KDAsIDUpOwotICAgIGR1bXBUZXh0TW9kZWwoIkFmdGVyIGNoYW5naW5nIHRoZSBmaXJzdCBsaW5l
LCBhbmQgdXBkYXRpbmcgdGhlIGhpZ2hsaWdodHMgZm9yIHRoZSBmaXJzdCA1IGxpbmVzIik7Ci0K
LSAgICB2YXIgcmFuZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgwLCB0ZXh0TW9kZWwu
bGluZUxlbmd0aCgwKSwgMCwgdGV4dE1vZGVsLmxpbmVMZW5ndGgoMCkpOwotICAgIHZhciBuZXdS
YW5nZSA9IHRleHRNb2RlbC5lZGl0UmFuZ2UocmFuZ2UsICIgLyoiKTsKLSAgICBoaWdobGlnaHRl
ci51cGRhdGVIaWdobGlnaHQoMCwgMik7Ci0gICAgZHVtcFRleHRNb2RlbCgiQWdhaW4gY2hhbmdl
IHRoZSBmaXJzdCBsaW5lLCBidXQgdXBkYXRlIG9ubHkgZmlyc3QgMiBsaW5lcyAoaW52YWxpZGF0
ZSB1cGRhdGUgZm9yIHRoZSBsaW5lcyBiZWxvdykiKTsKLQotICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci08cD4KLVRoaXMgdGVzdCBjaGVja3MgaGlnaGxpZ2h0ZXIgY29ycmVjdG5lc3Mu
Ci08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItY2h1bmstbGltaXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1jaHVuay1saW1pdC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxMmNkY2MuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1jaHVuay1saW1pdC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tz
IGhpZ2hsaWdodGluZyB3aXRoIHNwZWNpZmljIGhpZ2hsaWdodENodW5rTGltaXQuCi0KLUhpZ2hs
aWdodGVyIHJlc3VsdHMKLTEgOiB0aGlzLmZpZWxkID0gdGhpcy5maWVsZCA9ICJmb28iOyAvKiBj
b21tZW50IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxkID0gMTI7IC8vIGVuZCBvZiBsaW5lIDogamF2
YXNjcmlwdC1rZXl3b3JkWzAtNF0gamF2YXNjcmlwdC1pZGVudFs1LTEwXSB3aGl0ZXNwYWNlWzEw
LTExXSB3aGl0ZXNwYWNlWzEyLTEzXSBqYXZhc2NyaXB0LWtleXdvcmRbMTMtMTddIGphdmFzY3Jp
cHQtaWRlbnRbMTgtMjNdIHdoaXRlc3BhY2VbMjMtMjRdIHdoaXRlc3BhY2VbMjUtMjZdIGphdmFz
Y3JpcHQtc3RyaW5nWzI2LTMxXSB3aGl0ZXNwYWNlWzMyLTMzXSBqYXZhc2NyaXB0LWNvbW1lbnRb
MzMtNTFdIHdoaXRlc3BhY2VbNTEtNTJdIGphdmFzY3JpcHQta2V5d29yZFs1Mi01Nl0gamF2YXNj
cmlwdC1pZGVudFs1Ny02N10gd2hpdGVzcGFjZVs2Ny02OF0gd2hpdGVzcGFjZVs2OS03MF0gamF2
YXNjcmlwdC1udW1iZXJbNzAtNzJdIHdoaXRlc3BhY2VbNzMtNzRdIGphdmFzY3JpcHQtY29tbWVu
dFs3NC04OF0KLTIgOiB0aGlzLmZpZWxkID0gdGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50
IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxkID0gMTI7IC8vIGVuZCBvZiBsaW5lIDogamF2YXNjcmlw
dC1rZXl3b3JkWzAtNF0gamF2YXNjcmlwdC1pZGVudFs1LTEwXSB3aGl0ZXNwYWNlWzEwLTExXSB3
aGl0ZXNwYWNlWzEyLTEzXSBqYXZhc2NyaXB0LWtleXdvcmRbMTMtMTddIGphdmFzY3JpcHQtaWRl
bnRbMTgtMjNdIHdoaXRlc3BhY2VbMjMtMjRdIHdoaXRlc3BhY2VbMjUtMjZdIGphdmFzY3JpcHQt
c3RyaW5nWzI2LTMxXSB3aGl0ZXNwYWNlWzMyLTMzXSBqYXZhc2NyaXB0LWNvbW1lbnRbMzMtNTFd
IHdoaXRlc3BhY2VbNTEtNTJdIGphdmFzY3JpcHQta2V5d29yZFs1Mi01Nl0gamF2YXNjcmlwdC1p
ZGVudFs1Ny02N10gd2hpdGVzcGFjZVs2Ny02OF0gd2hpdGVzcGFjZVs2OS03MF0gamF2YXNjcmlw
dC1udW1iZXJbNzAtNzJdIHdoaXRlc3BhY2VbNzMtNzRdIGphdmFzY3JpcHQtY29tbWVudFs3NC04
OF0KLTMgOiB0aGlzLmZpZWxkID0gdGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50IGhlcmUg
Ki8gdGhpcy5vdGhlckZpZWxkID0gMTI7IC8vIGVuZCBvZiBsaW5lIDogamF2YXNjcmlwdC1rZXl3
b3JkWzAtNF0gamF2YXNjcmlwdC1pZGVudFs1LTEwXSB3aGl0ZXNwYWNlWzEwLTExXSB3aGl0ZXNw
YWNlWzEyLTEzXSBqYXZhc2NyaXB0LWtleXdvcmRbMTMtMTddIGphdmFzY3JpcHQtaWRlbnRbMTgt
MjNdIHdoaXRlc3BhY2VbMjMtMjRdIHdoaXRlc3BhY2VbMjUtMjZdIGphdmFzY3JpcHQtc3RyaW5n
WzI2LTMxXSB3aGl0ZXNwYWNlWzMyLTMzXSBqYXZhc2NyaXB0LWNvbW1lbnRbMzMtNTFdIHdoaXRl
c3BhY2VbNTEtNTJdIGphdmFzY3JpcHQta2V5d29yZFs1Mi01Nl0gamF2YXNjcmlwdC1pZGVudFs1
Ny02N10gd2hpdGVzcGFjZVs2Ny02OF0gd2hpdGVzcGFjZVs2OS03MF0gamF2YXNjcmlwdC1udW1i
ZXJbNzAtNzJdIHdoaXRlc3BhY2VbNzMtNzRdIGphdmFzY3JpcHQtY29tbWVudFs3NC04OF0KLTQg
OiB0aGlzLmZpZWxkID0gdGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50IGhlcmUgKi8gdGhp
cy5vdGhlckZpZWxkID0gMTI7IC8vIGVuZCBvZiBsaW5lIDogamF2YXNjcmlwdC1rZXl3b3JkWzAt
NF0gamF2YXNjcmlwdC1pZGVudFs1LTEwXSB3aGl0ZXNwYWNlWzEwLTExXSB3aGl0ZXNwYWNlWzEy
LTEzXSBqYXZhc2NyaXB0LWtleXdvcmRbMTMtMTddIGphdmFzY3JpcHQtaWRlbnRbMTgtMjNdIHdo
aXRlc3BhY2VbMjMtMjRdIHdoaXRlc3BhY2VbMjUtMjZdIGphdmFzY3JpcHQtc3RyaW5nWzI2LTMx
XSB3aGl0ZXNwYWNlWzMyLTMzXSBqYXZhc2NyaXB0LWNvbW1lbnRbMzMtNTFdIHdoaXRlc3BhY2Vb
NTEtNTJdIGphdmFzY3JpcHQta2V5d29yZFs1Mi01Nl0gamF2YXNjcmlwdC1pZGVudFs1Ny02N10g
d2hpdGVzcGFjZVs2Ny02OF0gd2hpdGVzcGFjZVs2OS03MF0gamF2YXNjcmlwdC1udW1iZXJbNzAt
NzJdIHdoaXRlc3BhY2VbNzMtNzRdIGphdmFzY3JpcHQtY29tbWVudFs3NC04OF0KLTUgOiB0aGlz
LmZpZWxkID0gdGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhl
ckZpZWxkID0gMTI7IC8vIGVuZCBvZiBsaW5lIDogamF2YXNjcmlwdC1rZXl3b3JkWzAtNF0gamF2
YXNjcmlwdC1pZGVudFs1LTEwXSB3aGl0ZXNwYWNlWzEwLTExXSB3aGl0ZXNwYWNlWzEyLTEzXSBq
YXZhc2NyaXB0LWtleXdvcmRbMTMtMTddIGphdmFzY3JpcHQtaWRlbnRbMTgtMjNdIHdoaXRlc3Bh
Y2VbMjMtMjRdIHdoaXRlc3BhY2VbMjUtMjZdIGphdmFzY3JpcHQtc3RyaW5nWzI2LTMxXSB3aGl0
ZXNwYWNlWzMyLTMzXSBqYXZhc2NyaXB0LWNvbW1lbnRbMzMtNTFdIHdoaXRlc3BhY2VbNTEtNTJd
IGphdmFzY3JpcHQta2V5d29yZFs1Mi01Nl0gamF2YXNjcmlwdC1pZGVudFs1Ny02N10gd2hpdGVz
cGFjZVs2Ny02OF0gd2hpdGVzcGFjZVs2OS03MF0gamF2YXNjcmlwdC1udW1iZXJbNzAtNzJdIHdo
aXRlc3BhY2VbNzMtNzRdIGphdmFzY3JpcHQtY29tbWVudFs3NC04OF0KLTYgOiB0aGlzLmZpZWxk
ID0gdGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxk
ID0gMTI7IC8vIGVuZCBvZiBsaW5lIDogamF2YXNjcmlwdC1rZXl3b3JkWzAtNF0gamF2YXNjcmlw
dC1pZGVudFs1LTEwXSB3aGl0ZXNwYWNlWzEwLTExXSB3aGl0ZXNwYWNlWzEyLTEzXSBqYXZhc2Ny
aXB0LWtleXdvcmRbMTMtMTddIGphdmFzY3JpcHQtaWRlbnRbMTgtMjNdIHdoaXRlc3BhY2VbMjMt
MjRdIHdoaXRlc3BhY2VbMjUtMjZdIGphdmFzY3JpcHQtc3RyaW5nWzI2LTMxXSB3aGl0ZXNwYWNl
WzMyLTMzXSBqYXZhc2NyaXB0LWNvbW1lbnRbMzMtNTFdIHdoaXRlc3BhY2VbNTEtNTJdIGphdmFz
Y3JpcHQta2V5d29yZFs1Mi01Nl0gamF2YXNjcmlwdC1pZGVudFs1Ny02N10gd2hpdGVzcGFjZVs2
Ny02OF0gd2hpdGVzcGFjZVs2OS03MF0gamF2YXNjcmlwdC1udW1iZXJbNzAtNzJdIHdoaXRlc3Bh
Y2VbNzMtNzRdIGphdmFzY3JpcHQtY29tbWVudFs3NC04OF0KLTcgOiB0aGlzLmZpZWxkID0gdGhp
cy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxkID0gMTI7
IC8vIGVuZCBvZiBsaW5lIDogamF2YXNjcmlwdC1rZXl3b3JkWzAtNF0gamF2YXNjcmlwdC1pZGVu
dFs1LTEwXSB3aGl0ZXNwYWNlWzEwLTExXSB3aGl0ZXNwYWNlWzEyLTEzXSBqYXZhc2NyaXB0LWtl
eXdvcmRbMTMtMTddIGphdmFzY3JpcHQtaWRlbnRbMTgtMjNdIHdoaXRlc3BhY2VbMjMtMjRdIHdo
aXRlc3BhY2VbMjUtMjZdIGphdmFzY3JpcHQtc3RyaW5nWzI2LTMxXSB3aGl0ZXNwYWNlWzMyLTMz
XSBqYXZhc2NyaXB0LWNvbW1lbnRbMzMtNTFdIHdoaXRlc3BhY2VbNTEtNTJdIGphdmFzY3JpcHQt
a2V5d29yZFs1Mi01Nl0gamF2YXNjcmlwdC1pZGVudFs1Ny02N10gd2hpdGVzcGFjZVs2Ny02OF0g
d2hpdGVzcGFjZVs2OS03MF0gamF2YXNjcmlwdC1udW1iZXJbNzAtNzJdIHdoaXRlc3BhY2VbNzMt
NzRdIGphdmFzY3JpcHQtY29tbWVudFs3NC04OF0KLTggOiB0aGlzLmZpZWxkID0gdGhpcy5maWVs
ZCA9ICJmb28iOyAvKiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxkID0gMTI7IC8vIGVu
ZCBvZiBsaW5lIDogamF2YXNjcmlwdC1rZXl3b3JkWzAtNF0gamF2YXNjcmlwdC1pZGVudFs1LTEw
XSB3aGl0ZXNwYWNlWzEwLTExXSB3aGl0ZXNwYWNlWzEyLTEzXSBqYXZhc2NyaXB0LWtleXdvcmRb
MTMtMTddIGphdmFzY3JpcHQtaWRlbnRbMTgtMjNdIHdoaXRlc3BhY2VbMjMtMjRdIHdoaXRlc3Bh
Y2VbMjUtMjZdIGphdmFzY3JpcHQtc3RyaW5nWzI2LTMxXSB3aGl0ZXNwYWNlWzMyLTMzXSBqYXZh
c2NyaXB0LWNvbW1lbnRbMzMtNTFdIHdoaXRlc3BhY2VbNTEtNTJdIGphdmFzY3JpcHQta2V5d29y
ZFs1Mi01Nl0gamF2YXNjcmlwdC1pZGVudFs1Ny02N10gd2hpdGVzcGFjZVs2Ny02OF0gd2hpdGVz
cGFjZVs2OS03MF0gamF2YXNjcmlwdC1udW1iZXJbNzAtNzJdIHdoaXRlc3BhY2VbNzMtNzRdIGph
dmFzY3JpcHQtY29tbWVudFs3NC04OF0KLTkgOiB0aGlzLmZpZWxkID0gdGhpcy5maWVsZCA9ICJm
b28iOyAvKiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxkID0gMTI7IC8vIGVuZCBvZiBs
aW5lIDogamF2YXNjcmlwdC1rZXl3b3JkWzAtNF0gamF2YXNjcmlwdC1pZGVudFs1LTEwXSB3aGl0
ZXNwYWNlWzEwLTExXSB3aGl0ZXNwYWNlWzEyLTEzXSBqYXZhc2NyaXB0LWtleXdvcmRbMTMtMTdd
IGphdmFzY3JpcHQtaWRlbnRbMTgtMjNdIHdoaXRlc3BhY2VbMjMtMjRdIHdoaXRlc3BhY2VbMjUt
MjZdIGphdmFzY3JpcHQtc3RyaW5nWzI2LTMxXSB3aGl0ZXNwYWNlWzMyLTMzXSBqYXZhc2NyaXB0
LWNvbW1lbnRbMzMtNTFdIHdoaXRlc3BhY2VbNTEtNTJdIGphdmFzY3JpcHQta2V5d29yZFs1Mi01
Nl0gamF2YXNjcmlwdC1pZGVudFs1Ny02N10gd2hpdGVzcGFjZVs2Ny02OF0gd2hpdGVzcGFjZVs2
OS03MF0gamF2YXNjcmlwdC1udW1iZXJbNzAtNzJdIHdoaXRlc3BhY2VbNzMtNzRdIGphdmFzY3Jp
cHQtY29tbWVudFs3NC04OF0KLTEwIDogdGhpcy5maWVsZCA9IHRoaXMuZmllbGQgPSAiZm9vIjsg
LyogY29tbWVudCBoZXJlICovIHRoaXMub3RoZXJGaWVsZCA9IDEyOyAvLyBlbmQgb2YgbGluZSA6
IGphdmFzY3JpcHQta2V5d29yZFswLTRdIGphdmFzY3JpcHQtaWRlbnRbNS0xMF0gd2hpdGVzcGFj
ZVsxMC0xMV0gd2hpdGVzcGFjZVsxMi0xM10gamF2YXNjcmlwdC1rZXl3b3JkWzEzLTE3XSBqYXZh
c2NyaXB0LWlkZW50WzE4LTIzXSB3aGl0ZXNwYWNlWzIzLTI0XSB3aGl0ZXNwYWNlWzI1LTI2XSBq
YXZhc2NyaXB0LXN0cmluZ1syNi0zMV0gd2hpdGVzcGFjZVszMi0zM10gamF2YXNjcmlwdC1jb21t
ZW50WzMzLTUxXSB3aGl0ZXNwYWNlWzUxLTUyXSBqYXZhc2NyaXB0LWtleXdvcmRbNTItNTZdIGph
dmFzY3JpcHQtaWRlbnRbNTctNjddIHdoaXRlc3BhY2VbNjctNjhdIHdoaXRlc3BhY2VbNjktNzBd
IGphdmFzY3JpcHQtbnVtYmVyWzcwLTcyXSB3aGl0ZXNwYWNlWzczLTc0XSBqYXZhc2NyaXB0LWNv
bW1lbnRbNzQtODhdCi0xMSA6ICA6Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lZGl0b3IvaGlnaGxpZ2h0ZXItY2h1bmstbGltaXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItY2h1bmstbGltaXQuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYmRmMTdhMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWNodW5rLWxpbWl0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw0MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJo
aWdobGlnaHRlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotCi0gICAgdmFyIHNpbmdsZUxpbmUgPSAidGhpcy5maWVsZCA9IHRoaXMuZmllbGQgPSBc
ImZvb1wiOyAvKiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxkID0gMTI7IC8vIGVuZCBv
ZiBsaW5lXG4iOwotICAgIHNyYyA9ICIiOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7ICsr
aSkKLSAgICAgICAgc3JjICs9IHNpbmdsZUxpbmU7Ci0KLSAgICB2YXIgdGV4dE1vZGVsID0gbmV3
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwoKTsKLSAgICB0ZXh0TW9kZWwuc2V0VGV4dChz
cmMpOwotCi0gICAgZnVuY3Rpb24gZGFtYWdlQ2FsbGJhY2soc3RhcnRMaW5lLCBlbmRMaW5lKQot
ICAgIHsKLSAgICAgICAgaWYgKGVuZExpbmUgPT09IHRleHRNb2RlbC5saW5lc0NvdW50KSB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiSGlnaGxpZ2h0ZXIgcmVzdWx0cyIp
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVGV4dE1vZGVsKHRleHRNb2RlbCk7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9Ci0gICAg
fQotCi0gICAgdmFyIGhpZ2hsaWdodGVyID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGln
aGxpZ2h0ZXIodGV4dE1vZGVsLCBkYW1hZ2VDYWxsYmFjayk7Ci0gICAgaGlnaGxpZ2h0ZXIubWlt
ZVR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsKLSAgICBoaWdobGlnaHRlci5oaWdobGlnaHRDaHVu
a0xpbWl0ID0gMzsKLSAgICBoaWdobGlnaHRlci5oaWdobGlnaHQodGV4dE1vZGVsLmxpbmVzQ291
bnQpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgotPHA+Ci1UaGlzIHRlc3QgY2hlY2tzIGhpZ2hsaWdodGluZyB3aXRoIHNwZWNpZmljIGhpZ2hs
aWdodENodW5rTGltaXQuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5l
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTg4MWFlZi4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWxvbmct
bGluZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRoaXMgdGVz
dCBjaGVja3MgaGlnaGxpZ2h0ZXIgb24gYSBsb25nIGxpbmUuCi0KLUxpbmUgbGVuZ3RoOiAxMTI2
NCwgbnVtYmVyIG9mIGNvbW1lbnRzOiAxMDI0Ci1BbGwgY2hlY2tzIGNvbXBsZXRlZC4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1sb25nLWxp
bmUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1s
aW5lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjNWQ1ODcuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1sb25nLWxpbmUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9ImhpZ2hsaWdodGVyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHRleHRNb2RlbCA9IG5ldyBXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsKCk7Ci0KLSAgICB2YXIgaGlnaGxpZ2h0ZXIgPSBuZXcg
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlcih0ZXh0TW9kZWwsIGZ1bmN0aW9uKCkg
e30pOwotICAgIGhpZ2hsaWdodGVyLm1pbWVUeXBlID0gInRleHQvamF2YXNjcmlwdCI7Ci0gICAg
aGlnaGxpZ2h0ZXIuaGlnaGxpZ2h0Q2h1bmtMaW1pdCA9IE51bWJlci5NQVhfVkFMVUU7IC8vIFN5
bmNocm9ub3VzLgotICAgIGhpZ2hsaWdodGVyLnNldEhpZ2hsaWdodExpbmVMaW1pdChOdW1iZXIu
TUFYX1ZBTFVFKTsKLQotICAgIHZhciBzcmMgPSAiLyogYXNkZiAqLyAiOwotICAgIHZhciBjb21t
ZW50cyA9IDE7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgKytpKSB7Ci0gICAgICAgIHNy
YyArPSBzcmM7Ci0gICAgICAgIGNvbW1lbnRzICo9IDI7Ci0gICAgfQotICAgIHRleHRNb2RlbC5z
ZXRUZXh0KHNyYyk7Ci0KLSAgICBmdW5jdGlvbiBjaGVja0hpZ2hsaWdodHMoKQotICAgIHsKLSAg
ICAgICAgdmFyIGNvbW1lbnRzRm91bmQgPSAwOwotICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVy
ID0gMDsgbGluZU51bWJlciA8IHRleHRNb2RlbC5saW5lc0NvdW50OyArK2xpbmVOdW1iZXIpIHsK
LSAgICAgICAgICAgIHZhciBoaWdobGlnaHQgPSB0ZXh0TW9kZWwuZ2V0QXR0cmlidXRlKGxpbmVO
dW1iZXIsICJoaWdobGlnaHQiKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGln
aGxpZ2h0LnJhbmdlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciByYW5nZSA9
IGhpZ2hsaWdodC5yYW5nZXNbaV07Ci0gICAgICAgICAgICAgICAgaWYgKHJhbmdlLnRva2VuID09
PSAid2hpdGVzcGFjZSIpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgICAgIHZhciByYW5nZUxlbmd0aCA9IHJhbmdlLmVuZENvbHVtbiAtIHJhbmdlLnN0YXJ0Q29s
dW1uICsgMTsKLSAgICAgICAgICAgICAgICBpZiAocmFuZ2VMZW5ndGggIT09IDEwIHx8IChyYW5n
ZS5zdGFydENvbHVtbiAlIDExKSkgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiRVJST1I6IHVuZXhwZWN0ZWQgaGlnaGxpZ2h0IHJlc3VsdDogaT0iICsgcmFu
Z2Uuc3RhcnRDb2x1bW4gKyAiLCBsZW5ndGg9IiArIHJhbmdlTGVuZ3RoKTsKLSAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICsrY29t
bWVudHNGb3VuZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoY29tbWVu
dHMgIT09IGNvbW1lbnRzRm91bmQpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiRVJST1I6IHNvbWUgb2YgdGhlIGNvbW1lbnRzIHdlcmUgbm90IGhpZ2hsaWdodGVkLCBmb3Vu
ZDogIiArIGNvbW1lbnRzRm91bmQpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJMaW5lIGxlbmd0aDogIiArIHNyYy5sZW5ndGggKyAiLCBudW1iZXIgb2YgY29tbWVudHM6
ICIgKyBjb21tZW50cyk7Ci0KLSAgICBoaWdobGlnaHRlci5oaWdobGlnaHQodGV4dE1vZGVsLmxp
bmVzQ291bnQpOwotICAgIGNoZWNrSGlnaGxpZ2h0cygpOwotCi0gICAgLy8gSW5zZXJ0IGEgY2Fy
ZXQgcmV0dXJuIGluIHRoZSBtaWRkbGUgb2YgdGhlIGxvbmcgbGluZS4KLSAgICB2YXIgaGFsZkxl
bmd0aCA9IE1hdGguZmxvb3Ioc3JjLmxlbmd0aCAvIDIpOwotICAgIHZhciByYW5nZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDAsIGhhbGZMZW5ndGgsIDAsIGhhbGZMZW5ndGgpOwotICAg
IHZhciBuZXdSYW5nZSA9IHRleHRNb2RlbC5lZGl0UmFuZ2UocmFuZ2UsICJcbiIpOwotICAgIGhp
Z2hsaWdodGVyLnVwZGF0ZUhpZ2hsaWdodChuZXdSYW5nZS5zdGFydExpbmUsIG5ld1JhbmdlLmVu
ZExpbmUgKyAxKTsKLSAgICBjaGVja0hpZ2hsaWdodHMoKTsKLQotICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJBbGwgY2hlY2tzIGNvbXBsZXRlZC4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotPHA+Ci1UaGlzIHRlc3QgY2hlY2tzIGhpZ2hsaWdodGVyIG9uIGEgbG9uZyBs
aW5lLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLXBhc3RlLWluLWNvbW1lbnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1wYXN0ZS1pbi1jb21t
ZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjVjMjFkMi4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLXBh
c3RlLWluLWNvbW1lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBA
QAotVGhpcyB0ZXN0IGNoZWNrcyBhZ2FpbnN0IGEgYnVnIGluIHRoZSBoaWdobGlnaHRlciB3aGVu
IHBhc3RpbmcgdGV4dCBpbnNpZGUgYSBjb21tZW50LgotCi0KLUFmdGVyIGhpZ2hsaWdodGluZyBh
bGwgbGluZXMKLTEgOiAvKiA6IGphdmFzY3JpcHQtY29tbWVudFswLTNdCi0yIDogIDoKLTMgOiAx
IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTQgOiAyIDogamF2YXNjcmlwdC1jb21tZW50WzAt
MV0KLTUgOiAzIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTYgOiA0IDogamF2YXNjcmlwdC1j
b21tZW50WzAtMV0KLTcgOiA1IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTggOiAgOgotOSA6
ICovIDogamF2YXNjcmlwdC1jb21tZW50WzAtMl0KLQotQWZ0ZXIgdXBkYXRlIGhpZ2hsaWdodHMK
LTEgOiAvKiA6IGphdmFzY3JpcHQtY29tbWVudFswLTNdCi0yIDogIDoKLTMgOiAxIDogamF2YXNj
cmlwdC1jb21tZW50WzAtMV0KLTQgOiAyIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTUgOiAz
IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTYgOiA0IDogamF2YXNjcmlwdC1jb21tZW50WzAt
MV0KLTcgOiA1IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTggOiAxIDogamF2YXNjcmlwdC1j
b21tZW50WzAtMV0KLTkgOiAyIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTEwIDogMyA6IGph
dmFzY3JpcHQtY29tbWVudFswLTFdCi0xMSA6IDQgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQot
MTIgOiA1IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTEzIDogIDoKLTE0IDogKi8gOiBqYXZh
c2NyaXB0LWNvbW1lbnRbMC0yXQotCi1BZnRlciBoaWdobGlnaHRpbmcgdXAgdG8gdGhlIGVuZAot
MSA6IC8qIDogamF2YXNjcmlwdC1jb21tZW50WzAtM10KLTIgOiAgOgotMyA6IDEgOiBqYXZhc2Ny
aXB0LWNvbW1lbnRbMC0xXQotNCA6IDIgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQotNSA6IDMg
OiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQotNiA6IDQgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0x
XQotNyA6IDUgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQotOCA6IDEgOiBqYXZhc2NyaXB0LWNv
bW1lbnRbMC0xXQotOSA6IDIgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQotMTAgOiAzIDogamF2
YXNjcmlwdC1jb21tZW50WzAtMV0KLTExIDogNCA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi0x
MiA6IDUgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQotMTMgOiAgOgotMTQgOiAqLyA6IGphdmFz
Y3JpcHQtY29tbWVudFswLTJdCi0KLUFmdGVyIGluc2VydGluZyBhIG5ldyBsaW5lCi0xIDogLyog
OiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0zXQotMiA6ICA6Ci0zIDogMSA6IGphdmFzY3JpcHQtY29t
bWVudFswLTFdCi00IDogMiA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi01IDogMyA6IGphdmFz
Y3JpcHQtY29tbWVudFswLTFdCi02IDogNCA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi03IDog
NSA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi04IDogMSA6IGphdmFzY3JpcHQtY29tbWVudFsw
LTFdCi05IDogMiA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi0xMCA6IDMgOiBqYXZhc2NyaXB0
LWNvbW1lbnRbMC0xXQotMTEgOiA0IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTEyIDogNSA6
IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi0xMyA6ICA6Ci0xNCA6ICA6Ci0xNSA6ICovIDogamF2
YXNjcmlwdC1jb21tZW50WzAtMl0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VkaXRvci9oaWdobGlnaHRlci1wYXN0ZS1pbi1jb21tZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLXBhc3RlLWluLWNvbW1lbnQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTI3NmNjNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLXBhc3RlLWluLWNvbW1lbnQuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9ImhpZ2hsaWdodGVyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQot
ZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHRleHRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvck1vZGVsKCk7Ci0KLSAgICB2YXIgaGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLlRleHRFZGl0b3JIaWdobGlnaHRlcih0ZXh0TW9kZWwsIGZ1bmN0aW9uKCkge30pOwotICAg
IGhpZ2hsaWdodGVyLm1pbWVUeXBlID0gInRleHQvamF2YXNjcmlwdCI7Ci0gICAgaGlnaGxpZ2h0
ZXIuaGlnaGxpZ2h0Q2h1bmtMaW1pdCA9IE51bWJlci5NQVhfVkFMVUU7IC8vIFN5bmNocm9ub3Vz
LgotCi0gICAgZnVuY3Rpb24gZHVtcFRleHRNb2RlbChtc2cpIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlxuIiArIG1zZyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFRl
eHRNb2RlbCh0ZXh0TW9kZWwpOwotICAgIH0KLQotICAgIHZhciBzcmMgPSAiLypcblxuMVxuMlxu
M1xuNFxuNVxuXG4qLyI7Ci0gICAgdGV4dE1vZGVsLnNldFRleHQoc3JjKTsKLQotICAgIGhpZ2hs
aWdodGVyLmhpZ2hsaWdodCh0ZXh0TW9kZWwubGluZXNDb3VudCk7Ci0gICAgZHVtcFRleHRNb2Rl
bCgiQWZ0ZXIgaGlnaGxpZ2h0aW5nIGFsbCBsaW5lcyIpOwotCi0gICAgdmFyIHJhbmdlID0gbmV3
IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UoNywgMCwgNywgMCk7Ci0gICAgdmFyIG5ld1JhbmdlID0g
dGV4dE1vZGVsLmVkaXRSYW5nZShyYW5nZSwgIjFcbjJcbjNcbjRcbjVcbiIpOwotICAgIGhpZ2hs
aWdodGVyLnVwZGF0ZUhpZ2hsaWdodCg3LCB0ZXh0TW9kZWwubGluZXNDb3VudCk7Ci0gICAgZHVt
cFRleHRNb2RlbCgiQWZ0ZXIgdXBkYXRlIGhpZ2hsaWdodHMiKTsKLQotICAgIGhpZ2hsaWdodGVy
LmhpZ2hsaWdodCh0ZXh0TW9kZWwubGluZXNDb3VudCk7Ci0gICAgZHVtcFRleHRNb2RlbCgiQWZ0
ZXIgaGlnaGxpZ2h0aW5nIHVwIHRvIHRoZSBlbmQiKTsKLQotICAgIC8vIFRoZXJlIHdhcyBhbiBh
Y3R1YWwgYnVnIHdpdGggd3JvbmdseSByZXN0b3JlZCBwb3NpdGlvbiBhZnRlciB1cGRhdGluZyB0
aGUgaGlnaGxpZ2h0cy4KLSAgICB2YXIgcmFuZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5n
ZSgxMiwgMCwgMTIsIDApOwotICAgIHZhciBuZXdSYW5nZSA9IHRleHRNb2RlbC5lZGl0UmFuZ2Uo
cmFuZ2UsICJcbiIpOwotICAgIGhpZ2hsaWdodGVyLnVwZGF0ZUhpZ2hsaWdodCgxMiwgdGV4dE1v
ZGVsLmxpbmVzQ291bnQpOwotICAgIGhpZ2hsaWdodGVyLmhpZ2hsaWdodCh0ZXh0TW9kZWwubGlu
ZXNDb3VudCk7Ci0gICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgaW5zZXJ0aW5nIGEgbmV3IGxpbmUi
KTsKLQotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRoaXMgdGVzdCBjaGVj
a3MgYWdhaW5zdCA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTQ4NzYiPmEgYnVnPC9hPiBpbiB0aGUgaGlnaGxpZ2h0ZXIgd2hlbiBwYXN0aW5nIHRleHQg
aW5zaWRlIGEgY29tbWVudC4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci10ZXN0LmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiZWYyZGZiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItdGVzdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDIzICsw
LDAgQEAKLWZ1bmN0aW9uIGluaXRpYWxpemVfSGlnaGxpZ2h0ZXJUZXN0cygpCi17Ci0KLUluc3Bl
Y3RvclRlc3QuZHVtcFRleHRNb2RlbCA9IGZ1bmN0aW9uKHRleHRNb2RlbCkKLXsKLSAgICB2YXIg
bGluZXMgPSBbXTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHRNb2RlbC5saW5lc0NvdW50
OyArK2kpIHsKLSAgICAgICAgdmFyIGxpbmUgPSB0ZXh0TW9kZWwubGluZShpKTsKLSAgICAgICAg
dmFyIGhpZ2hsaWdodCA9IHRleHRNb2RlbC5nZXRBdHRyaWJ1dGUoaSwgImhpZ2hsaWdodCIpOwot
ICAgICAgICB2YXIgcmVzdWx0ID0gKGkgKyAxKSArICIgOiAiICsgbGluZSArICIgOiI7Ci0gICAg
ICAgIGlmIChoaWdobGlnaHQpIHsKLSAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgaGln
aGxpZ2h0LnJhbmdlcy5sZW5ndGg7ICsraikgewotICAgICAgICAgICAgICAgIHZhciByYW5nZSA9
IGhpZ2hsaWdodC5yYW5nZXNbal07Ci0gICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgIiArIHJh
bmdlLnRva2VuICsgIlsiICsgcmFuZ2Uuc3RhcnRDb2x1bW4gKyAiLSIgKyAocmFuZ2UuZW5kQ29s
dW1uICsgMSkgKyAiXSI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgcmVzdWx0ICs9ICIgbnVsbCI7Ci0gICAgICAgIGxpbmVzLnB1c2gocmVzdWx0KTsKLSAgICB9
Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQobGluZXMuam9pbigiXG4iKSk7Ci19OwotCi19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2luZGVudGF0aW9uLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaW5kZW50YXRpb24tZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjdkYzU5Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaW5kZW50YXRpb24tZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyBjb2Rl
IGluZGVudGF0aW9uIGFuZCB1bmluZGVudGF0aW9uIG9mIHNldmVyYWwgbGluZXMgb2YgY29kZS4K
LQotQWZ0ZXIgaW5kZW50aW5nIGZpcnN0IGZ1bGx5IHNlbGVjdGVkIGxpbmUKLSAgICAvKgotICog
YSBjb21tZW50Ci0gKi8KLVNlbGVjdGlvbiAwLDAgMSwwCi0KLUFmdGVyIGluZGVudGluZyBmaXJz
dCBwYXJ0aWFsbHkgc2VsZWN0ZWQgbGluZQotICAgICAgICAvKgotICogYSBjb21tZW50Ci0gKi8K
LVNlbGVjdGlvbiAwLDkgMSwwCi0KLUFmdGVyIHVuaW5kZW50aW5nIHR3byBmdWxseSBzZWxlY3Rl
ZCBsaW5lcwotICAgIC8qCi0qIGEgY29tbWVudAotICovCi1TZWxlY3Rpb24gMCwwIDIsMAotCi1B
ZnRlciB1bmluZGVudGluZyB0d28gcGFydGlhbGx5IHNlbGVjdGVkIGxpbmVzIChidWcgOTc0NjIp
Ci0vKgotKiBhIGNvbW1lbnQKLSAqLwotU2VsZWN0aW9uIDAsMSAxLDYKLQotQWZ0ZXIgdW5pbmRl
bnRpbmcgdGhyZWUgcGFydGlhbGx5IHNlbGVjdGVkIGxpbmVzCi0vKgotKiBhIGNvbW1lbnQKLSov
Ci1TZWxlY3Rpb24gMCwwIDIsMgotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lZGl0b3IvaW5kZW50YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3Iv
aW5kZW50YXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNThiMTdjOS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2luZGVudGF0aW9uLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJoaWdobGlnaHRlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgc3JjID0gIi8qXG4iICsKLSAgICAgICAg
IiAqIGEgY29tbWVudFxuIiArCi0gICAgICAgICIgKi8iOwotCi0gICAgdmFyIG1vZGVsID0gbmV3
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwoKTsKLSAgICBtb2RlbC5zZXRUZXh0KHNyYyk7
Ci0KLSAgICB2YXIgc2VsZWN0aW9uOwotICAgIGZ1bmN0aW9uIGR1bXBUZXh0TW9kZWwobXNnKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQobXNnKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQobW9kZWwudGV4dCgpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoJ1NlbGVjdGlvbiAnICsgc2VsZWN0aW9uLnN0YXJ0TGluZSArICcsJyArIHNl
bGVjdGlvbi5zdGFydENvbHVtbiAgKyAnICcgKyBzZWxlY3Rpb24uZW5kTGluZSArICcsJyArIHNl
bGVjdGlvbi5lbmRDb2x1bW4gKyAnXG4nKTsKLSAgICB9Ci0KLSAgICBzZWxlY3Rpb24gPSBtb2Rl
bC5pbmRlbnRMaW5lcyhuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgwLCAwLCAxLCAwKSk7Ci0g
ICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgaW5kZW50aW5nIGZpcnN0IGZ1bGx5IHNlbGVjdGVkIGxp
bmUiKTsKLQotICAgIHNlbGVjdGlvbiA9IG1vZGVsLmluZGVudExpbmVzKG5ldyBXZWJJbnNwZWN0
b3IuVGV4dFJhbmdlKDAsIDUsIDEsIDApKTsKLSAgICBkdW1wVGV4dE1vZGVsKCJBZnRlciBpbmRl
bnRpbmcgZmlyc3QgcGFydGlhbGx5IHNlbGVjdGVkIGxpbmUiKTsKLQotICAgIHNlbGVjdGlvbiA9
IG1vZGVsLnVuaW5kZW50TGluZXMobmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UoMCwgMCwgMiwg
MCkpOwotICAgIGR1bXBUZXh0TW9kZWwoIkFmdGVyIHVuaW5kZW50aW5nIHR3byBmdWxseSBzZWxl
Y3RlZCBsaW5lcyIpOwotCi0gICAgc2VsZWN0aW9uID0gbW9kZWwudW5pbmRlbnRMaW5lcyhuZXcg
V2ViSW5zcGVjdG9yLlRleHRSYW5nZSgwLCA1LCAxLCA2KSk7Ci0gICAgZHVtcFRleHRNb2RlbCgi
QWZ0ZXIgdW5pbmRlbnRpbmcgdHdvIHBhcnRpYWxseSBzZWxlY3RlZCBsaW5lcyAoYnVnIDk3NDYy
KSIpOwotCi0gICAgc2VsZWN0aW9uID0gbW9kZWwudW5pbmRlbnRMaW5lcyhuZXcgV2ViSW5zcGVj
dG9yLlRleHRSYW5nZSgwLCAwLCAyLCAzKSk7Ci0gICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgdW5p
bmRlbnRpbmcgdGhyZWUgcGFydGlhbGx5IHNlbGVjdGVkIGxpbmVzIik7Ci0KLSAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGhpcyB0ZXN0IGNoZWNrcyBjb2RlIGluZGVudGF0aW9u
IGFuZCB1bmluZGVudGF0aW9uIG9mIHNldmVyYWwgbGluZXMgb2YgY29kZS4KLTwvcD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4
dC1lZGl0b3ItYnJhY2UtaGlnaGxpZ2h0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1icmFjZS1oaWdobGlnaHRlci1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViOTdjNTEuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1icmFjZS1oaWdobGlnaHRlci1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi1UaGlzIHRlc3QgY2hl
Y2tzIGhvdyB0ZXh0IGVkaXRvciBoaWdobGlnaHRzIGJyYWNlcy4KLQotPT09PT09PT09PT09PT09
PT09PT09PT0KLXwoeygpfSkoKCkpCi0KLTxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciB0ZXh0
LWVkaXRvci1lZGl0YWJsZSIgdGFiaW5kZXg9IjAiPgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUt
Y29udGVudCI+PHNwYW4+KHsoKX0pKCgpKTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1lZGl0b3It
YnJhY2UtbWF0Y2ggdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiAw
cHg7IHdpZHRoOiA3cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48c3BhbiBjbGFzcz0i
dGV4dC1lZGl0b3ItYnJhY2UtbWF0Y2ggdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0
eWxlPSJsZWZ0OiAzNXB4OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+
PC9kaXY+PC9kaXY+Ci09PT09PT09PT09PT09PT09PT09PT09PQotKHx7KCl9KSgoKSkKLQotPGRp
diBjbGFzcz0iaW5uZXItY29udGFpbmVyIHRleHQtZWRpdG9yLWVkaXRhYmxlIiB0YWJpbmRleD0i
MCI+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4oeygpfSkoKCkpPC9z
cGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVkaXRvci1icmFjZS1tYXRjaCB0ZXh0LWVkaXRvci1vdmVy
bGF5LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6IDdweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA8bnVt
YmVyPnB4OyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVkaXRvci1icmFjZS1tYXRjaCB0ZXh0
LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6IDI4cHg7IHdpZHRoOiA3cHg7
IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj48L2Rpdj4KLT09PT09PT09PT09PT09
PT09PT09PT09Ci0oe3woKX0pKCgpKQotCi08ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIgdGV4
dC1lZGl0b3ItZWRpdGFibGUiIHRhYmluZGV4PSIwIj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5l
LWNvbnRlbnQiPjxzcGFuPih7KCl9KSgoKSk8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9y
LWJyYWNlLW1hdGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDog
MTRweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjxzcGFuIGNsYXNz
PSJ0ZXh0LWVkaXRvci1icmFjZS1tYXRjaCB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIg
c3R5bGU9ImxlZnQ6IDIxcHg7IHdpZHRoOiA3cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bh
bj48L2Rpdj48L2Rpdj4KLT09PT09PT09PT09PT09PT09PT09PT09Ci0oeyh8KX0pKCgpKQotCi08
ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIgdGV4dC1lZGl0b3ItZWRpdGFibGUiIHRhYmluZGV4
PSIwIj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPih7KCl9KSgoKSk8
L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1hdGNoIHRleHQtZWRpdG9yLW92
ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogMTRweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA8
bnVtYmVyPnB4OyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVkaXRvci1icmFjZS1tYXRjaCB0
ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6IDIxcHg7IHdpZHRoOiA3
cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj48L2Rpdj4KLT09PT09PT09PT09
PT09PT09PT09PT09Ci0oeygpfH0pKCgpKQotCi08ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIg
dGV4dC1lZGl0b3ItZWRpdGFibGUiIHRhYmluZGV4PSIwIj4KLTxkaXYgY2xhc3M9IndlYmtpdC1s
aW5lLWNvbnRlbnQiPjxzcGFuPih7KCl9KSgoKSk8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRp
dG9yLWJyYWNlLW1hdGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVm
dDogMTRweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjxzcGFuIGNs
YXNzPSJ0ZXh0LWVkaXRvci1icmFjZS1tYXRjaCB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdo
dCIgc3R5bGU9ImxlZnQ6IDIxcHg7IHdpZHRoOiA3cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwv
c3Bhbj48L2Rpdj48L2Rpdj4KLT09PT09PT09PT09PT09PT09PT09PT09Ci0oeygpfXwpKCgpKQot
Ci08ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIgdGV4dC1lZGl0b3ItZWRpdGFibGUiIHRhYmlu
ZGV4PSIwIj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPih7KCl9KSgo
KSk8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1hdGNoIHRleHQtZWRpdG9y
LW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogN3B4OyB3aWR0aDogN3B4OyBoZWlnaHQ6
IDxudW1iZXI+cHg7Ij48L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1hdGNo
IHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogMjhweDsgd2lkdGg6
IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2PjwvZGl2PgotPT09PT09PT09
PT09PT09PT09PT09PT0KLSh7KCl9KXwoKCkpCi0KLTxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5l
ciB0ZXh0LWVkaXRvci1lZGl0YWJsZSIgdGFiaW5kZXg9IjAiPgotPGRpdiBjbGFzcz0id2Via2l0
LWxpbmUtY29udGVudCI+PHNwYW4+KHsoKX0pKCgpKTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1l
ZGl0b3ItYnJhY2UtbWF0Y2ggdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJs
ZWZ0OiA0MnB4OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+PHNwYW4g
Y2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1hdGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxp
Z2h0IiBzdHlsZT0ibGVmdDogNjNweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+
PC9zcGFuPjwvZGl2PjwvZGl2PgotPT09PT09PT09PT09PT09PT09PT09PT0KLSh7KCl9KSh8KCkp
Ci0KLTxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciB0ZXh0LWVkaXRvci1lZGl0YWJsZSIgdGFi
aW5kZXg9IjAiPgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+KHsoKX0p
KCgpKTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1lZGl0b3ItYnJhY2UtbWF0Y2ggdGV4dC1lZGl0
b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiA0OXB4OyB3aWR0aDogN3B4OyBoZWln
aHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1h
dGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogNTZweDsgd2lk
dGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2PjwvZGl2PgotPT09PT09
PT09PT09PT09PT09PT09PT0KLSh7KCl9KSgofCkpCi0KLTxkaXYgY2xhc3M9ImlubmVyLWNvbnRh
aW5lciB0ZXh0LWVkaXRvci1lZGl0YWJsZSIgdGFiaW5kZXg9IjAiPgotPGRpdiBjbGFzcz0id2Vi
a2l0LWxpbmUtY29udGVudCI+PHNwYW4+KHsoKX0pKCgpKTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4
dC1lZGl0b3ItYnJhY2UtbWF0Y2ggdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxl
PSJsZWZ0OiA0OXB4OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+PHNw
YW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1hdGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGln
aGxpZ2h0IiBzdHlsZT0ibGVmdDogNTZweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4
OyI+PC9zcGFuPjwvZGl2PjwvZGl2PgotPT09PT09PT09PT09PT09PT09PT09PT0KLSh7KCl9KSgo
KXwpCi0KLTxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciB0ZXh0LWVkaXRvci1lZGl0YWJsZSIg
dGFiaW5kZXg9IjAiPgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+KHso
KX0pKCgpKTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1lZGl0b3ItYnJhY2UtbWF0Y2ggdGV4dC1l
ZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiA0OXB4OyB3aWR0aDogN3B4OyBo
ZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNl
LW1hdGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogNTZweDsg
d2lkdGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2PjwvZGl2PgotPT09
PT09PT09PT09PT09PT09PT09PT0KLSh7KCl9KSgoKSl8Ci0KLTxkaXYgY2xhc3M9ImlubmVyLWNv
bnRhaW5lciB0ZXh0LWVkaXRvci1lZGl0YWJsZSIgdGFiaW5kZXg9IjAiPgotPGRpdiBjbGFzcz0i
d2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+KHsoKX0pKCgpKTwvc3Bhbj48c3BhbiBjbGFzcz0i
dGV4dC1lZGl0b3ItYnJhY2UtbWF0Y2ggdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0
eWxlPSJsZWZ0OiA0MnB4OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+
PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1hdGNoIHRleHQtZWRpdG9yLW92ZXJsYXkt
aGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogNjNweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVy
PnB4OyI+PC9zcGFuPjwvZGl2PjwvZGl2PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWJyYWNlLWhpZ2hsaWdodGVyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWJyYWNlLWhpZ2hsaWdodGVyLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3ZjM0MDcuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1icmFjZS1oaWdobGlnaHRlci5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIGN1cnNvclBvc2l0aW9uID0gLTE7Ci0gICAg
ZnVuY3Rpb24gcnVuVGVzdFdpdGhDdXJzb3JQb3NpdGlvbigpCi0gICAgewotICAgICAgICBpZiAo
Y3Vyc29yUG9zaXRpb24gPiB0ZXh0RWRpdG9yLnRleHQoKS5sZW5ndGgpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT09PT09PT09
PT09PT09PSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChJbnNwZWN0b3JUZXN0
LnRleHRXaXRoU2VsZWN0aW9uKHRleHRFZGl0b3IudGV4dCgpLCB0ZXh0RWRpdG9yLnNlbGVjdGlv
bigpKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckhUTUwodGV4dEVkaXRvciwg
dHJ1ZSk7Ci0KLSAgICAgICAgc2V0VGltZW91dChjaGFuZ2VDdXJzb3JQb3NpdGlvbigpKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBjaGFuZ2VDdXJzb3JQb3NpdGlvbigpCi0gICAgewotICAgICAg
ICArK2N1cnNvclBvc2l0aW9uOwotICAgICAgICBpZiAoY3Vyc29yUG9zaXRpb24gPiB0ZXh0RWRp
dG9yLnRleHQoKS5sZW5ndGgpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdGV4dEVkaXRv
ci5zZXRTZWxlY3Rpb24oV2ViSW5zcGVjdG9yLlRleHRSYW5nZS5jcmVhdGVGcm9tTG9jYXRpb24o
MCwgY3Vyc29yUG9zaXRpb24pKTsKLSAgICB9Ci0KLSAgICB2YXIgdGV4dEVkaXRvckRlbGVnYXRl
ID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yRGVsZWdhdGUoKTsKLSAgICB0ZXh0RWRpdG9y
RGVsZWdhdGUuc2VsZWN0aW9uQ2hhbmdlZCA9IHJ1blRlc3RXaXRoQ3Vyc29yUG9zaXRpb247Ci0K
LSAgICB2YXIgdGV4dEVkaXRvciA9IEluc3BlY3RvclRlc3QuY3JlYXRlVGVzdEVkaXRvcih1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdGV4dEVkaXRvckRlbGVnYXRlKTsKLSAgICB0ZXh0RWRpdG9yLm1p
bWVUeXBlID0gInRleHQvamF2YXNjcmlwdCI7Ci0gICAgdGV4dEVkaXRvci5zZXRSZWFkT25seShm
YWxzZSk7Ci0gICAgdGV4dEVkaXRvci5zZXRUZXh0KCIoeygpfSkoKCkpIik7Ci0gICAgdGV4dEVk
aXRvci5lbGVtZW50LmZvY3VzKCk7Ci0KLSAgICBjaGFuZ2VDdXJzb3JQb3NpdGlvbigpOwotfQot
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLTxwPgot
VGhpcyB0ZXN0IGNoZWNrcyBob3cgdGV4dCBlZGl0b3IgaGlnaGxpZ2h0cyBicmFjZXMuCi08L3A+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
ZGl0b3IvdGV4dC1lZGl0b3ItY2hhci10by1jb29yZGluYXRlcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWNoYXItdG8tY29vcmRpbmF0ZXMt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNmZmMTEzLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItY2hhci10
by1jb29yZGluYXRlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBA
Ci1UZXN0IGVkaXRvciBjdXJzb3JQb3NpdGlvblRvQ29vcmRpbmF0ZXMgYW5kIGNvb3JkaW5hdGVz
VG9DdXJzb3JQb3NpdGlvbiBBUEkKLQotCi1SdW5uaW5nOiB0ZXN0Q29vcmRpbmF0ZXNUb0N1cnNv
clBvc2l0aW9uT3V0ZXIKLVJlcXVlc3QgY2hhciBhdCAoLTEwMDAsIC0xMDAwKQotUmVzdWx0Om51
bGwKLQotUnVubmluZzogdGVzdFRleHRUb0Nvb3JkaW5hdGVzQ29ybmVyQ2FzZXMKLVJlcXVlc3Qg
KC0xLCAwKTpudWxsCi1SZXF1ZXN0ICgxMDAsIDApOm51bGwKLVJlcXVlc3QgKDAsIC0xKTpudWxs
Ci1SZXF1ZXN0ICgwLCAxMDApOm51bGwKLVJlcXVlc3QgKC0xMDAsIC0xMTAwKTpudWxsCi0KLVJ1
bm5pbmc6IHRlc3RJbnZlcnNlUmVsYXRpb25UZXh0VG9Db29yZGluYXRlcwotVGVzdGluZyBsaW5l
ICdmdW5jdGlvbiBmb28oYSwgYikgeycKLVRlc3RpbmcgbGluZSAnICAgIHZhciBmID0gLyouW2Fd
Ly50ZXN0KGEpOycKLVRlc3RpbmcgbGluZSAnICAgIHJldHVybiBmOycKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1jaGFyLXRvLWNvb3JkaW5h
dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWNoYXIt
dG8tY29vcmRpbmF0ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWRlNDEw
ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9y
LWNoYXItdG8tY29vcmRpbmF0ZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImVkaXRvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciB0ZXh0
ID0gWwotICAgICAgICAiZnVuY3Rpb24gZm9vKGEsIGIpIHsiLAotICAgICAgICAiICAgIHZhciBm
ID0gLyouW2FdLy50ZXN0KGEpOyIsCi0gICAgICAgICIgICAgcmV0dXJuIGY7IgotICAgIF07Ci0g
ICAgdmFyIHRleHRFZGl0b3IgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVRlc3RFZGl0b3IoKTsKLSAg
ICB0ZXh0RWRpdG9yLnNldFRleHQodGV4dC5qb2luKCJcbiIpKTsKLQotICAgIEluc3BlY3RvclRl
c3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdENvb3JkaW5hdGVzVG9DdXJz
b3JQb3NpdGlvbk91dGVyKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJSZXF1ZXN0IGNoYXIgYXQgKC0xMDAwLCAtMTAwMCkiKTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXN1bHQ6IiArIEpTT04uc3RyaW5naWZ5KHRl
eHRFZGl0b3IuY29vcmRpbmF0ZXNUb0N1cnNvclBvc2l0aW9uKC0xMDAwLCAtMTAwMCkpKTsKLSAg
ICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0VGV4
dFRvQ29vcmRpbmF0ZXNDb3JuZXJDYXNlcyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVxdWVzdCAoLTEsIDApOiIgKyBKU09OLnN0cmluZ2lm
eSh0ZXh0RWRpdG9yLmN1cnNvclBvc2l0aW9uVG9Db29yZGluYXRlcygtMSwgMCkpKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXF1ZXN0ICgxMDAsIDApOiIgKyBKU09O
LnN0cmluZ2lmeSh0ZXh0RWRpdG9yLmN1cnNvclBvc2l0aW9uVG9Db29yZGluYXRlcygxMDAsIDAp
KSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVxdWVzdCAoMCwgLTEp
OiIgKyBKU09OLnN0cmluZ2lmeSh0ZXh0RWRpdG9yLmN1cnNvclBvc2l0aW9uVG9Db29yZGluYXRl
cygwLCAtMSkpKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXF1ZXN0
ICgwLCAxMDApOiIgKyBKU09OLnN0cmluZ2lmeSh0ZXh0RWRpdG9yLmN1cnNvclBvc2l0aW9uVG9D
b29yZGluYXRlcygwLCAxMDApKSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiUmVxdWVzdCAoLTEwMCwgLTExMDApOiIgKyBKU09OLnN0cmluZ2lmeSh0ZXh0RWRpdG9yLmN1
cnNvclBvc2l0aW9uVG9Db29yZGluYXRlcygwLCAxMDApKSk7Ci0gICAgICAgICAgICBuZXh0KCk7
Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEludmVyc2VSZWxhdGlvblRleHRU
b0Nvb3JkaW5hdGVzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvcih2YXIgaSA9IDA7
IGkgPCB0ZXh0RWRpdG9yLmxpbmVzQ291bnQ7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBs
aW5lID0gdGV4dEVkaXRvci5saW5lKGkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJUZXN0aW5nIGxpbmUgJyIgKyBsaW5lICsgIiciKTsKLSAgICAgICAgICAgICAg
ICBmb3IodmFyIGogPSAwOyBqIDwgdGV4dEVkaXRvci5sZW5ndGg7ICsraikgewotICAgICAgICAg
ICAgICAgICAgICB2YXIgeHkgPSB0ZXh0RWRpdG9yLmN1cnNvclBvc2l0aW9uVG9Db29yZGluYXRl
cyhpLCBqKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCF4eSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZhaWxlZCBpbnZlcnNpb24gZm9yIGxp
bmU9IiArIGkgKyAiIGNvbHVtbj0iICsgaik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIHZhciBy
YW5nZSA9IHRleHRFZGl0b3IuY29vcmRpbmF0ZXNUb0N1cnNvclBvc2l0aW9uKHh5LngsIHh5Lnkp
OwotICAgICAgICAgICAgICAgICAgICBpZiAocmFuZ2Uuc3RhcnRMaW5lICE9PSBpIHx8IHJhbmdl
LnN0YXJ0Q29sdW1uICE9PSBqKQotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkZhaWxlZCBpbnZlcnNpb24gZm9yIGxpbmU9IiArIGkgKyAiIGNvbHVtbj0i
ICsgaik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgbmV4
dCgpOwotICAgICAgICB9LAotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0IGVkaXRvciBjdXJzb3JQb3NpdGlvblRv
Q29vcmRpbmF0ZXMgYW5kIGNvb3JkaW5hdGVzVG9DdXJzb3JQb3NpdGlvbiBBUEkKLTwvcD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3Iv
dGV4dC1lZGl0b3ItZm9ybWF0dGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lZGl0b3IvdGV4dC1lZGl0b3ItZm9ybWF0dGVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjdmYmZkYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWZvcm1hdHRlci1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw1NCArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRleHQgZWRpdG9yIGphdmFz
Y3JpcHQgZm9ybWF0dGluZy4KLQotLyoqCi0gKiBNdWx0aS1saW5lIGNvbW1lbnQKLSAqCi0gKi8K
LWZ1bmN0aW9uIGZvbyhuKSB7Ci0gICAgLy8gb25lLWxpbmUgY29tbWVudAotICAgIGZ1bmN0aW9u
IGJhcigpIHsKLSAgICAgICAgcmV0dXJuIDQyOwotICAgIH0KLQotICAgIHZhciBzdW0gPSAwOwot
ICAgIGZvcih2YXIgaSA9IDA7IGkgPCBuOyArK2kpIHsKLSAgICAgICAgZm9yKHZhciBqID0gMDsg
aiA8IG47ICsraikgewotICAgICAgICAgICAgc3VtICs9IGkgKyBqOwotICAgICAgICB9Ci0gICAg
fQotCi0KLSAgICBpZiAoc3VtID4gMTAwMCkgewotICAgICAgICB3aGlsZSAoc3VtID4gMCkgewot
ICAgICAgICAgICAgLS1zdW07Ci0gICAgICAgIH0KLSAgICB9Ci19Ci09PT09PT09PT09PT0gZWRp
dG9yIGNvbnRlbnRzIHN0YXJ0ID09PT09PT09PT09PQotLyoqCi0qLk11bHRpLWxpbmUuY29tbWVu
dAotKgotKi8KLWZ1bmN0aW9uLmZvbyhuKS57Ci0uLi4uLy8ub25lLWxpbmUuY29tbWVudAotLi4u
LmZ1bmN0aW9uLmJhcigpLnsKLS4uLi4uLi4ucmV0dXJuLjQyOwotLi4uLn0KLS4uLi4KLS4uLi52
YXIuc3VtLj0uMDsKLS4uLi5mb3IodmFyLmkuPS4wOy5pLjwubjsuKytpKS57Ci0uLi4uLi4uLmZv
cih2YXIuai49LjA7LmouPC5uOy4rK2opLnsKLS4uLi4uLi4uLi4uLnN1bS4rPS5pLisuajsKLS4u
Li4uLi4ufQotLi4uLn0KLS4uLi4KLS4uLi4KLS4uLi5pZi4oc3VtLj4uMTAwMCkuewotLi4uLi4u
Li53aGlsZS4oc3VtLj4uMCkuewotLi4uLi4uLi4uLi4uLS1zdW07Ci0uLi4uLi4uLn0KLS4uLi59
Ci19Ci0KLT09PT09PT09PT09PSBlZGl0b3IgY29udGVudHMgZW5kID09PT09PT09PT09PQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWZvcm1h
dHRlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1mb3Jt
YXR0ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZjNzkyYi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWZvcm1hdHRl
ci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWZ1bmN0aW9uIGNvZGVTbmlwcGV0KCkgewotICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29kZVNuaXBwZXQiKS50ZXh0Q29udGVudDsKLX0KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgdmFyIHRleHRFZGl0b3IgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVRlc3RFZGl0b3Io
KTsKLSAgICB0ZXh0RWRpdG9yLm92ZXJyaWRlVmlld3BvcnRGb3JUZXN0KDAsIHVuZGVmaW5lZCwg
Myk7Ci0gICAgdGV4dEVkaXRvci5taW1lVHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOwotICAgIHRl
eHRFZGl0b3Iuc2V0UmVhZE9ubHkoZmFsc2UpOwotICAgIHRleHRFZGl0b3IuZWxlbWVudC5mb2N1
cygpOwotCi0gICAgZnVuY3Rpb24gc3RlcDIocmVzdWx0KQotICAgIHsKLSAgICAgICAgdmFyIGNv
ZGVMaW5lcyA9IHJlc3VsdC52YWx1ZS5zcGxpdCgiXG4iKTsKLSAgICAgICAgZm9yKHZhciBpID0g
MDsgaSA8IGNvZGVMaW5lcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
aW5zZXJ0VGV4dExpbmUoY29kZUxpbmVzW2ldLnRyaW0oKSk7Ci0KLSAgICAgICAgc2V0VGltZW91
dChzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09PT09PSBlZGl0b3IgY29udGVudHMgc3Rh
cnQgPT09PT09PT09PT09Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRleHRF
ZGl0b3IudGV4dCgpLnJlcGxhY2UoLyAvZywgIi4iKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCI9PT09PT09PT09PT0gZWRpdG9yIGNvbnRlbnRzIGVuZCA9PT09PT09PT09PT0i
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJjb2RlU25pcHBldCgpOyIsIHN0ZXAyKTsKLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Ci08cD4K
LVRoaXMgdGVzdCBjaGVja3MgdGV4dCBlZGl0b3IgamF2YXNjcmlwdCBmb3JtYXR0aW5nLgotPC9w
PgotCi08cHJlIGlkPSJjb2RlU25pcHBldCI+Ci0vKioKLSAqIE11bHRpLWxpbmUgY29tbWVudAot
ICoKLSAqLwotZnVuY3Rpb24gZm9vKG4pIHsKLSAgICAvLyBvbmUtbGluZSBjb21tZW50Ci0gICAg
ZnVuY3Rpb24gYmFyKCkgewotICAgICAgICByZXR1cm4gNDI7Ci0gICAgfQotCi0gICAgdmFyIHN1
bSA9IDA7Ci0gICAgZm9yKHZhciBpID0gMDsgaSA8IG47ICsraSkgewotICAgICAgICBmb3IodmFy
IGogPSAwOyBqIDwgbjsgKytqKSB7Ci0gICAgICAgICAgICBzdW0gKz0gaSArIGo7Ci0gICAgICAg
IH0KLSAgICB9Ci0KLQotICAgIGlmIChzdW0gPiAxMDAwKSB7Ci0gICAgICAgIHdoaWxlIChzdW0g
PiAwKSB7Ci0gICAgICAgICAgICAtLXN1bTsKLSAgICAgICAgfQotICAgIH0KLX08L3ByZT4KLQot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRv
ci90ZXh0LWVkaXRvci1oaWdobGlnaHQtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaGlnaGxpZ2h0LWFwaS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkNWMxMjguLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1oaWdobGlnaHQtYXBpLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLVRlc3QgZWRpdG9yIGhpZ2hsaWdo
dCByZWdleHAgQVBJLgotCi0KLUJlZm9yZSBoaWdobGlnaHQKLQotPGRpdiBjbGFzcz0iaW5uZXIt
Y29udGFpbmVyIiB0YWJpbmRleD0iMCI+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50
Ij48c3Bhbj5mb28oKTs8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250
ZW50Ij48c3Bhbj5mb29fMTsgZm9vcjsgZm9vXzs8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3
ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb29fPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0i
d2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+Z2xvYmFsX2Zvbzwvc3Bhbj48L2Rpdj4KLTxkaXYg
Y2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPmdsb2JhbF9mb28yPC9zcGFuPjwvZGl2
PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+c29tZV9vdGhlcl9mb29f
WDwvc3Bhbj48L2Rpdj48L2Rpdj4KLQotUnVubmluZzogdGVzdEhpZ2hsaWdodFJlZ2V4Ci0KLUFk
ZCBoaWdobGlnaHQgZm9yIHJlZ2V4cCAvZm9vXy4vCi1MaW5lcyByZXBhaW50ZWQ6IDIKLQotPGRp
diBjbGFzcz0iaW5uZXItY29udGFpbmVyIiB0YWJpbmRleD0iMCI+Ci08ZGl2IGNsYXNzPSJ3ZWJr
aXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb28oKTs8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3
ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb29fMTsgZm9vcjsgZm9vXzs8L3NwYW4+PHNwYW4g
Y2xhc3M9InNvbWUtY3NzLWNsYXNzIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHls
ZT0ibGVmdDogMHB4OyB3aWR0aDogMzVweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjxz
cGFuIGNsYXNzPSJzb21lLWNzcy1jbGFzcyB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIg
c3R5bGU9ImxlZnQ6IDkxcHg7IHdpZHRoOiAzNXB4OyBoZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3Nw
YW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb29fPC9z
cGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+Z2xvYmFs
X2Zvbzwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFu
Pmdsb2JhbF9mb28yPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVu
dCI+PHNwYW4+c29tZV9vdGhlcl9mb29fWDwvc3Bhbj48c3BhbiBjbGFzcz0ic29tZS1jc3MtY2xh
c3MgdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiA3N3B4OyB3aWR0
aDogMzVweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2PjwvZGl2PgotCi1SdW5u
aW5nOiB0ZXN0SGlnaGxpZ2h0UmFuZ2UKLQotSGlnaGxpZ2h0aW5nIHJhbmdlIGZyb20gKDEsIDEz
KSB0byAoMywgMTYpCi1MaW5lcyByZXBhaW50ZWQ6IDMKLQotPGRpdiBjbGFzcz0iaW5uZXItY29u
dGFpbmVyIiB0YWJpbmRleD0iMCI+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48
c3Bhbj5mb28oKTs8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50
Ij48c3Bhbj5mb29fMTsgZm9vcjsgZm9vXzs8L3NwYW4+PHNwYW4gY2xhc3M9InNvbWUtY3NzLWNs
YXNzIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogMHB4OyB3aWR0
aDogMzVweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJzb21lLWNz
cy1jbGFzcyB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6IDkxcHg7
IHdpZHRoOiAzNXB4OyBoZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+PHNwYW4gY2xhc3M9InNv
bWUtb3RoZXItY2xhc3MgdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0
OiA5MXB4OyB3aWR0aDogMzVweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2Pgot
PGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+Zm9vXzwvc3Bhbj48c3BhbiBj
bGFzcz0ic29tZS1vdGhlci1jbGFzcyB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIgc3R5
bGU9ImxlZnQ6IDBweDsgd2lkdGg6IDI4cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48
L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPmdsb2JhbF9mb288
L3NwYW4+PHNwYW4gY2xhc3M9InNvbWUtb3RoZXItY2xhc3MgdGV4dC1lZGl0b3Itb3ZlcmxheS1o
aWdobGlnaHQiIHN0eWxlPSJsZWZ0OiAwcHg7IHdpZHRoOiA3MHB4OyBoZWlnaHQ6IDxudW1iZXI+
cHg7Ij48L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bh
bj5nbG9iYWxfZm9vMjwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRl
bnQiPjxzcGFuPnNvbWVfb3RoZXJfZm9vX1g8L3NwYW4+PHNwYW4gY2xhc3M9InNvbWUtY3NzLWNs
YXNzIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogNzdweDsgd2lk
dGg6IDM1cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj48L2Rpdj4KLQotUnVu
bmluZzogdGVzdFJlbW92ZVJlZ2V4SGlnaGxpZ2h0Ci0KLVJlbW92ZSBoaWdobGlnaHQgZm9yIHJl
Z2V4cCAvZm9vXy4vCi1MaW5lcyByZXBhaW50ZWQ6IDIKLQotPGRpdiBjbGFzcz0iaW5uZXItY29u
dGFpbmVyIiB0YWJpbmRleD0iMCI+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48
c3Bhbj5mb28oKTs8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50
Ij48c3Bhbj5mb29fMTsgZm9vcjsgZm9vXzs8L3NwYW4+PHNwYW4gY2xhc3M9InNvbWUtb3RoZXIt
Y2xhc3MgdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiA5MXB4OyB3
aWR0aDogMzVweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2PgotPGRpdiBjbGFz
cz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+Zm9vXzwvc3Bhbj48c3BhbiBjbGFzcz0ic29t
ZS1vdGhlci1jbGFzcyB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6
IDBweDsgd2lkdGg6IDI4cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj4KLTxk
aXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPmdsb2JhbF9mb288L3NwYW4+PHNw
YW4gY2xhc3M9InNvbWUtb3RoZXItY2xhc3MgdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQi
IHN0eWxlPSJsZWZ0OiAwcHg7IHdpZHRoOiA3MHB4OyBoZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3Nw
YW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5nbG9iYWxf
Zm9vMjwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFu
PnNvbWVfb3RoZXJfZm9vX1g8L3NwYW4+PC9kaXY+PC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3RSZW1v
dmVSYW5nZUhpZ2hsaWdodAotCi1SZW1vdmUgaGlnaGxpZ2h0IGZvciByYW5nZSAoMSwgMTMpIHRv
ICgzLCAxNikKLUxpbmVzIHJlcGFpbnRlZDogMwotCi08ZGl2IGNsYXNzPSJpbm5lci1jb250YWlu
ZXIiIHRhYmluZGV4PSIwIj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFu
PmZvbygpOzwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxz
cGFuPmZvb18xOyBmb29yOyBmb29fOzwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1s
aW5lLWNvbnRlbnQiPjxzcGFuPmZvb188L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQt
bGluZS1jb250ZW50Ij48c3Bhbj5nbG9iYWxfZm9vPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0i
d2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+Z2xvYmFsX2ZvbzI8L3NwYW4+PC9kaXY+Ci08ZGl2
IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5zb21lX290aGVyX2Zvb19YPC9zcGFu
PjwvZGl2PjwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0SGlnaGxpZ2h0U21hbGxSYW5nZQotCi1IaWdo
bGlnaHRpbmcgcmFuZ2UgZnJvbSAoMSwgMSkgdG8gKDEsIDEpCi1MaW5lcyByZXBhaW50ZWQ6IDEK
LQotPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIiB0YWJpbmRleD0iMCI+Ci08ZGl2IGNsYXNz
PSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb28oKTs8L3NwYW4+PC9kaXY+Ci08ZGl2IGNs
YXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb29fMTsgZm9vcjsgZm9vXzs8L3NwYW4+
PHNwYW4gY2xhc3M9InNvbWUtb3RoZXItY2xhc3MgdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGln
aHQiIHN0eWxlPSJsZWZ0OiA3cHg7IHdpZHRoOiA3cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwv
c3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPmZvb188
L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5nbG9i
YWxfZm9vPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNw
YW4+Z2xvYmFsX2ZvbzI8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250
ZW50Ij48c3Bhbj5zb21lX290aGVyX2Zvb19YPC9zcGFuPjwvZGl2PjwvZGl2PgotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWhpZ2hsaWdodC1h
cGkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaGlnaGxp
Z2h0LWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOWNlNWZkLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaGlnaGxp
Z2h0LWFwaS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHRleHQgPSBbCi0gICAgICAg
ICJmb28oKTsiLAotICAgICAgICAiZm9vXzE7IGZvb3I7IGZvb187IiwKLSAgICAgICAgImZvb18i
LAotICAgICAgICAiZ2xvYmFsX2ZvbyIsCi0gICAgICAgICJnbG9iYWxfZm9vMiIsCi0gICAgICAg
ICJzb21lX290aGVyX2Zvb19YIgotICAgIF07Ci0gICAgdmFyIHRleHRFZGl0b3IgPSBJbnNwZWN0
b3JUZXN0LmNyZWF0ZVRlc3RFZGl0b3IoKTsKLSAgICB0ZXh0RWRpdG9yLnNldFRleHQodGV4dC5q
b2luKCJcbiIpKTsKLSAgICB2YXIgcGFpbnRMaW5lQ2FsbHMgPSAwOwotICAgIGZ1bmN0aW9uIHBh
aW50TGluZUNvdW50ZXIoKQotICAgIHsKLSAgICAgICAgKytwYWludExpbmVDYWxsczsKLSAgICB9
Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKHRleHRFZGl0b3IuX21haW5QYW5lbCwgIl9w
YWludExpbmUiLCBwYWludExpbmVDb3VudGVyLCB0cnVlKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiXG5CZWZvcmUgaGlnaGxpZ2h0Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRp
dG9ySFRNTCh0ZXh0RWRpdG9yLCB0cnVlKTsKLQotICAgIHZhciByYW5nZUhpZ2hsaWdodERlc2Ny
aXB0b3I7Ci0gICAgdmFyIHJlZ2V4SGlnaGxpZ2h0RGVzY3JpcHRvcjsKLQotICAgIEluc3BlY3Rv
clRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdEhpZ2hsaWdodFJlZ2V4
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJlZ2V4SGlnaGxpZ2h0RGVzY3JpcHRvciA9
IHRleHRFZGl0b3IuaGlnaGxpZ2h0UmVnZXgoImZvb18uIiwgInNvbWUtY3NzLWNsYXNzIik7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiXG5BZGQgaGlnaGxpZ2h0IGZvciBy
ZWdleHAgL2Zvb18uLyIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxp
bmVzIHJlcGFpbnRlZDogIiArIHBhaW50TGluZUNhbGxzKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZHVtcEVkaXRvckhUTUwodGV4dEVkaXRvciwgdHJ1ZSk7Ci0gICAgICAgICAgICBuZXh0
KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEhpZ2hsaWdodFJhbmdlKG5l
eHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcbkhp
Z2hsaWdodGluZyByYW5nZSBmcm9tICgxLCAxMykgdG8gKDMsIDE2KSIpOwotICAgICAgICAgICAg
cGFpbnRMaW5lQ2FsbHMgPSAwOwotICAgICAgICAgICAgcmFuZ2VIaWdobGlnaHREZXNjcmlwdG9y
ID0gdGV4dEVkaXRvci5oaWdobGlnaHRSYW5nZShuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgx
LCAxMywgMywgMTYpLCAic29tZS1vdGhlci1jbGFzcyIpOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIkxpbmVzIHJlcGFpbnRlZDogIiArIHBhaW50TGluZUNhbGxzKTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckhUTUwodGV4dEVkaXRvciwgdHJ1ZSk7
Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVz
dFJlbW92ZVJlZ2V4SGlnaGxpZ2h0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJcblJlbW92ZSBoaWdobGlnaHQgZm9yIHJlZ2V4cCAvZm9vXy4v
Iik7Ci0gICAgICAgICAgICBwYWludExpbmVDYWxscyA9IDA7Ci0gICAgICAgICAgICB0ZXh0RWRp
dG9yLnJlbW92ZUhpZ2hsaWdodChyZWdleEhpZ2hsaWdodERlc2NyaXB0b3IpOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxpbmVzIHJlcGFpbnRlZDogIiArIHBhaW50TGlu
ZUNhbGxzKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckhUTUwodGV4dEVk
aXRvciwgdHJ1ZSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gdGVzdFJlbW92ZVJhbmdlSGlnaGxpZ2h0KG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcblJlbW92ZSBoaWdobGlnaHQgZm9yIHJh
bmdlICgxLCAxMykgdG8gKDMsIDE2KSIpOwotICAgICAgICAgICAgcGFpbnRMaW5lQ2FsbHMgPSAw
OwotICAgICAgICAgICAgdGV4dEVkaXRvci5yZW1vdmVIaWdobGlnaHQocmFuZ2VIaWdobGlnaHRE
ZXNjcmlwdG9yKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJMaW5lcyBy
ZXBhaW50ZWQ6ICIgKyBwYWludExpbmVDYWxscyk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBFZGl0b3JIVE1MKHRleHRFZGl0b3IsIHRydWUpOwotICAgICAgICAgICAgbmV4dCgpOwot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RIaWdobGlnaHRTbWFsbFJhbmdlKG5l
eHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcbkhp
Z2hsaWdodGluZyByYW5nZSBmcm9tICgxLCAxKSB0byAoMSwgMSkiKTsKLSAgICAgICAgICAgIHBh
aW50TGluZUNhbGxzID0gMDsKLSAgICAgICAgICAgIHZhciBzbWFsbFJhbmdlSGlnaGxpZ2h0RGVz
Y3JpcHRvciA9IHRleHRFZGl0b3IuaGlnaGxpZ2h0UmFuZ2UobmV3IFdlYkluc3BlY3Rvci5UZXh0
UmFuZ2UoMSwgMSwgMSwgMSksICJzb21lLW90aGVyLWNsYXNzIik7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiTGluZXMgcmVwYWludGVkOiAiICsgcGFpbnRMaW5lQ2FsbHMp
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0RWRpdG9yLCB0
cnVlKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgIF0pOwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0
IGVkaXRvciBoaWdobGlnaHQgcmVnZXhwIEFQSS4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaGlnaGxp
Z2h0LXRva2VuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4
dC1lZGl0b3ItaGlnaGxpZ2h0LXRva2VuLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMThhNTczMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWRpdG9yL3RleHQtZWRpdG9yLWhpZ2hsaWdodC10b2tlbi1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw1MSArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRleHQgZWRpdG9yIHRva2Vu
IGhpZ2hsaWdodCBmdW5jdGlvbmFsaXR5LgotCi09PT09PT09PT09PSBUZXh0RWRpdG9yIHRleHQg
PT09PT09PT09PQotZnVuY3Rpb24gZmluZEVsZW1lbnQoY29sbGVjdGlvbiwgZWxlbSkgewotICAg
ICAgICAvLyBsZW5ndGgKLSAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGNvbGxlY3Rpb24ubGVu
Z3RoOyArK2kpCi0gICAgICAgICAgICBpZiAoY29sbGVjdGlvbltpXSA9PT0gZWxlbSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gaTsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotPT09PT09
PT09PT0gQmVmb3JlIHNlbGVjdGluZyBlbGVtZW50ID09PT09PT09PT09Ci0KLTxkaXYgY2xhc3M9
ImlubmVyLWNvbnRhaW5lciB0ZXh0LWVkaXRvci1lZGl0YWJsZSIgdGFiaW5kZXg9IjAiPgotPGRp
diBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+ZnVuY3Rpb24gZmluZEVsZW1lbnQo
Y29sbGVjdGlvbiwgZWxlbSkgezwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5l
LWNvbnRlbnQiPjxzcGFuPiAgICAgICAgLy8gbGVuZ3RoPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFz
cz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+ICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwv
c3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtdGFnIj4mbHQ7PC9zcGFuPjxzcGFuPiA8L3Nw
YW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLXRhZyI+Y29sbGVjdGlvbi5sZW5ndGg7PC9zcGFu
PjxzcGFuPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIj4r
K2kpPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+
ICAgICAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFt
ZSI+aWY8L3NwYW4+PHNwYW4+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmli
dXRlLW5hbWUiPihjb2xsZWN0aW9uPC9zcGFuPjxzcGFuPls8L3NwYW4+PHNwYW4gY2xhc3M9Indl
YmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIj5pPC9zcGFuPjxzcGFuPl0gPT09IDwvc3Bhbj48c3Bh
biBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj5lbGVtKTwvc3Bhbj48L2Rpdj4K
LTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPiAgICAgICAgICAgICAgICA8
L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSI+cmV0dXJuPC9z
cGFuPjxzcGFuPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1
ZSI+aTs8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bh
bj4gICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVl
Ij5yZXR1cm48L3NwYW4+PHNwYW4+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0
cmlidXRlLXZhbHVlIj5udWxsOzwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5l
LWNvbnRlbnQiPjxzcGFuPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJp
YnV0ZS12YWx1ZSI+fTwvc3Bhbj48L2Rpdj48L2Rpdj4KLT09PT09PT09PT09IEFmdGVyIHNlbGVj
dGluZyAnY29sbGVjdGlvbicgPT09PT09PT09PT0KLQotPGRpdiBjbGFzcz0iaW5uZXItY29udGFp
bmVyIHRleHQtZWRpdG9yLWVkaXRhYmxlIiB0YWJpbmRleD0iMCI+Ci08ZGl2IGNsYXNzPSJ3ZWJr
aXQtbGluZS1jb250ZW50Ij48c3Bhbj5mdW5jdGlvbiBmaW5kRWxlbWVudChjb2xsZWN0aW9uLCBl
bGVtKSB7PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVkaXRvci10b2tlbi1oaWdobGlnaHQgdGV4
dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiAxNDdweDsgd2lkdGg6IDcw
cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtp
dC1saW5lLWNvbnRlbnQiPjxzcGFuPiAgICAgICAgLy8gbGVuZ3RoPC9zcGFuPjwvZGl2PgotPGRp
diBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+ICAgICAgICBmb3IodmFyIGkgPSAw
OyBpIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtdGFnIj4mbHQ7PC9zcGFuPjxzcGFu
PiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLXRhZyI+Y29sbGVjdGlvbi5sZW5ndGg7
PC9zcGFuPjxzcGFuPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1u
YW1lIj4rK2kpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVkaXRvci10b2tlbi1oaWdobGlnaHQg
dGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiAxODlweDsgd2lkdGg6
IDcwcHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9Indl
YmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPiAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0i
d2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWUiPmlmPC9zcGFuPjxzcGFuPiA8L3NwYW4+PHNwYW4g
Y2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIj4oY29sbGVjdGlvbjwvc3Bhbj48c3Bh
bj5bPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSI+aTwvc3Bh
bj48c3Bhbj5dID09PSA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12
YWx1ZSI+ZWxlbSk8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLXRva2VuLWhpZ2hsaWdo
dCB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6IDExMnB4OyB3aWR0
aDogNzBweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0i
d2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+ICAgICAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBj
bGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj5yZXR1cm48L3NwYW4+PHNwYW4+IDwv
c3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj5pOzwvc3Bhbj48
L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPiAgICAgICAgPC9z
cGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiPnJldHVybjwvc3Bh
bj48c3Bhbj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUi
Pm51bGw7PC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNw
YW4+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj59
PC9zcGFuPjwvZGl2PjwvZGl2PgotPT09PT09PT09PT0gQWZ0ZXIgc2VsZWN0aW5nICdlbGVtJyA9
PT09PT09PT09PQotCi08ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIgdGV4dC1lZGl0b3ItZWRp
dGFibGUiIHRhYmluZGV4PSIwIj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxz
cGFuPmZ1bmN0aW9uIGZpbmRFbGVtZW50KGNvbGxlY3Rpb24sIGVsZW0pIHs8L3NwYW4+PHNwYW4g
Y2xhc3M9InRleHQtZWRpdG9yLXRva2VuLWhpZ2hsaWdodCB0ZXh0LWVkaXRvci1vdmVybGF5LWhp
Z2hsaWdodCIgc3R5bGU9ImxlZnQ6IDIzMXB4OyB3aWR0aDogMjhweDsgaGVpZ2h0OiA8bnVtYmVy
PnB4OyI+PC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNw
YW4+ICAgICAgICAvLyBsZW5ndGg8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGlu
ZS1jb250ZW50Ij48c3Bhbj4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPC9zcGFuPjxzcGFuIGNs
YXNzPSJ3ZWJraXQtaHRtbC10YWciPiZsdDs8L3NwYW4+PHNwYW4+IDwvc3Bhbj48c3BhbiBjbGFz
cz0id2Via2l0LWh0bWwtdGFnIj5jb2xsZWN0aW9uLmxlbmd0aDs8L3NwYW4+PHNwYW4+IDwvc3Bh
bj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWUiPisraSk8L3NwYW4+PC9k
aXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4gICAgICAgICAgICA8
L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIj5pZjwvc3Bhbj48
c3Bhbj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSI+KGNv
bGxlY3Rpb248L3NwYW4+PHNwYW4+Wzwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0
cmlidXRlLW5hbWUiPmk8L3NwYW4+PHNwYW4+XSA9PT0gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJr
aXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiPmVsZW0pPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVk
aXRvci10b2tlbi1oaWdobGlnaHQgdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxl
PSJsZWZ0OiAyMzhweDsgd2lkdGg6IDI4cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48
L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPiAgICAgICAgICAg
ICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSI+cmV0
dXJuPC9zcGFuPjxzcGFuPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0
ZS12YWx1ZSI+aTs8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50
Ij48c3Bhbj4gICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRl
LXZhbHVlIj5yZXR1cm48L3NwYW4+PHNwYW4+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0
bWwtYXR0cmlidXRlLXZhbHVlIj5udWxsOzwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtp
dC1saW5lLWNvbnRlbnQiPjxzcGFuPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1s
LWF0dHJpYnV0ZS12YWx1ZSI+fTwvc3Bhbj48L2Rpdj48L2Rpdj4KLT09PT09PT09PT09IEFmdGVy
IHNlbGVjdGluZyAnbGVuZ3RoJyA9PT09PT09PT09PQotCi08ZGl2IGNsYXNzPSJpbm5lci1jb250
YWluZXIgdGV4dC1lZGl0b3ItZWRpdGFibGUiIHRhYmluZGV4PSIwIj4KLTxkaXYgY2xhc3M9Indl
YmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPmZ1bmN0aW9uIGZpbmRFbGVtZW50KGNvbGxlY3Rpb24s
IGVsZW0pIHs8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48
c3Bhbj4gICAgICAgIC8vIGxlbmd0aDwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1lZGl0b3ItdG9r
ZW4taGlnaGxpZ2h0IHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDog
NzdweDsgd2lkdGg6IDQycHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj4KLTxk
aXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPiAgICAgICAgZm9yKHZhciBpID0g
MDsgaSA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLXRhZyI+Jmx0Ozwvc3Bhbj48c3Bh
bj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC10YWciPmNvbGxlY3Rpb24ubGVuZ3Ro
Ozwvc3Bhbj48c3Bhbj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUt
bmFtZSI+KytpKTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1lZGl0b3ItdG9rZW4taGlnaGxpZ2h0
IHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogMjY2cHg7IHdpZHRo
OiA0MnB4OyBoZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3
ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4gICAgICAgICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9
IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIj5pZjwvc3Bhbj48c3Bhbj4gPC9zcGFuPjxzcGFu
IGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSI+KGNvbGxlY3Rpb248L3NwYW4+PHNw
YW4+Wzwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWUiPmk8L3Nw
YW4+PHNwYW4+XSA9PT0gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUt
dmFsdWUiPmVsZW0pPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVu
dCI+PHNwYW4+ICAgICAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwt
YXR0cmlidXRlLXZhbHVlIj5yZXR1cm48L3NwYW4+PHNwYW4+IDwvc3Bhbj48c3BhbiBjbGFzcz0i
d2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj5pOzwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9
IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPiAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3
ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiPnJldHVybjwvc3Bhbj48c3Bhbj4gPC9zcGFuPjxz
cGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiPm51bGw7PC9zcGFuPjwvZGl2
PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+ICAgIDwvc3Bhbj48c3Bh
biBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj59PC9zcGFuPjwvZGl2PjwvZGl2
PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9y
LWhpZ2hsaWdodC10b2tlbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0
LWVkaXRvci1oaWdobGlnaHQtdG9rZW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNDhhODY3OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3Rl
eHQtZWRpdG9yLWhpZ2hsaWdodC10b2tlbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRpdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0
aW9uIGZpbmRFbGVtZW50KGNvbGxlY3Rpb24sIGVsZW0pIHsKLSAgICAgICAgLy8gbGVuZ3RoCi0g
ICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBjb2xsZWN0aW9uLmxlbmd0aDsgKytpKQotICAgICAg
ICAgICAgaWYgKGNvbGxlY3Rpb25baV0gPT09IGVsZW0pCi0gICAgICAgICAgICAgICAgcmV0dXJu
IGk7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIHZhciBzdGVwcyA9IFtzdGVw
Mywgc3RlcDIsIHN0ZXAxXTsgLy8gcmV2ZXJzZWQgb3JkZXIKLSAgICBmdW5jdGlvbiBzZWxlY3Rp
b25DaGFuZ2VMaXN0ZW5lcigpCi0gICAgewotICAgICAgICBpZiAoc3RlcHMubGVuZ3RoKQotICAg
ICAgICAgICAgc3RlcHMucG9wKCkuY2FsbCgpOwotICAgIH0KLQotICAgIHZhciB0ZXh0RWRpdG9y
RGVsZWdhdGUgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JEZWxlZ2F0ZSgpOwotICAgIHRl
eHRFZGl0b3JEZWxlZ2F0ZS5zZWxlY3Rpb25DaGFuZ2VkID0gc2VsZWN0aW9uQ2hhbmdlTGlzdGVu
ZXI7Ci0KLSAgICB2YXIgdGV4dEVkaXRvciA9IEluc3BlY3RvclRlc3QuY3JlYXRlVGVzdEVkaXRv
cih1bmRlZmluZWQsIHVuZGVmaW5lZCwgdGV4dEVkaXRvckRlbGVnYXRlKTsKLSAgICB0ZXh0RWRp
dG9yLnNldFJlYWRPbmx5KGZhbHNlKTsKLSAgICB0ZXh0RWRpdG9yLnNldFRleHQoZmluZEVsZW1l
bnQudG9TdHJpbmcoKSk7Ci0gICAgdGV4dEVkaXRvci5lbGVtZW50LmZvY3VzKCk7Ci0KLSAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09PT0gVGV4dEVkaXRvciB0ZXh0ID09PT09
PT09PT0iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLnRleHQoKSk7
Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09PT0gQmVmb3JlIHNlbGVj
dGluZyBlbGVtZW50ID09PT09PT09PT09Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9y
SFRNTCh0ZXh0RWRpdG9yLCB0cnVlKTsKLQotICAgIHZhciByYW5nZSA9IG5ldyBXZWJJbnNwZWN0
b3IuVGV4dFJhbmdlKDAsIDIxLCAwLCAzMSk7Ci0gICAgdGV4dEVkaXRvci5zZXRTZWxlY3Rpb24o
cmFuZ2UpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIj09PT09PT09PT09IEFmdGVyIHNlbGVjdGluZyAnIiArIHRleHRFZGl0
b3IuX3RleHRNb2RlbC5jb3B5UmFuZ2UocmFuZ2UpICsgIicgPT09PT09PT09PT0iKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0RWRpdG9yLCB0cnVlKTsKLSAgICAg
ICAgcmFuZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgwLCAzMywgMCwgMzcpOwotICAg
ICAgICB0ZXh0RWRpdG9yLnNldFNlbGVjdGlvbihyYW5nZSk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09
PT09PT09IEFmdGVyIHNlbGVjdGluZyAnIiArIHRleHRFZGl0b3IuX3RleHRNb2RlbC5jb3B5UmFu
Z2UocmFuZ2UpICsgIicgPT09PT09PT09PT0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
RWRpdG9ySFRNTCh0ZXh0RWRpdG9yLCB0cnVlKTsKLSAgICAgICAgcmFuZ2UgPSBuZXcgV2ViSW5z
cGVjdG9yLlRleHRSYW5nZSgxLCAxMSwgMSwgMTcpOwotICAgICAgICB0ZXh0RWRpdG9yLnNldFNl
bGVjdGlvbihyYW5nZSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09PT09IEFmdGVyIHNlbGVjdGlu
ZyAnIiArIHRleHRFZGl0b3IuX3RleHRNb2RlbC5jb3B5UmFuZ2UocmFuZ2UpICsgIicgPT09PT09
PT09PT0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0RWRpdG9y
LCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0K
LX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Ci08
cD4KLVRoaXMgdGVzdCBjaGVja3MgdGV4dCBlZGl0b3IgdG9rZW4gaGlnaGxpZ2h0IGZ1bmN0aW9u
YWxpdHkuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWhvbWUtYnV0dG9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaG9tZS1idXR0b24tZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2IzZTBkLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaG9tZS1idXR0b24t
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotVGhpcyB0ZXN0IHZl
cmlmaWVzIHRoYXQgaG9tZSBidXR0b24gdHJpZ2dlcnMgc2VsZWN0aW9uIGJldHdlZW4gZmlyc3Qg
c3ltYm9sIG9mIHRoZSBsaW5lIGFuZCBmaXJzdCBub24tYmxhbmsgc3ltYm9sIG9mIHRoZSBsaW5l
LgotCi1mdW5jdGlvbiBmb28oKQotewotICAgIHJldHVybiA0MjsKLX0KLQotUnVubmluZzogdGVz
dEZpcnN0Tm9uQmxhbmtDaGFyYWN0ZXIKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgcmV0dXxybiA0
MjsKLX0KLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgfHJldHVybiA0MjsKLX0KLQotUnVubmluZzog
dGVzdEZpcnN0Tm9uQmxhbmtDaGFyYWN0ZXJGcm9tV2hpdGVzcGFjZQotZnVuY3Rpb24gZm9vKCkK
LXsKLSAgfCAgcmV0dXJuIDQyOwotfQotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICB8cmV0dXJuIDQy
OwotfQotCi1SdW5uaW5nOiB0ZXN0SG9tZUJ1dHRvblRvZ2dsaW5nCi1mdW5jdGlvbiBmb28oKQot
ewotICB8ICByZXR1cm4gNDI7Ci19Ci1mdW5jdGlvbiBmb28oKQotewotICAgIHxyZXR1cm4gNDI7
Ci19Ci1mdW5jdGlvbiBmb28oKQotewotfCAgICByZXR1cm4gNDI7Ci19Ci1mdW5jdGlvbiBmb28o
KQotewotICAgIHxyZXR1cm4gNDI7Ci19Ci0KLVJ1bm5pbmc6IHRlc3RIb21lQnV0dG9uRG9lc05v
dENoYW5nZUN1cnNvcgotZnV8bmN0aW9uIGZvbygpCi17Ci0gICAgcmV0dXJuIDQyOwotfQotfGZ1
bmN0aW9uIGZvbygpCi17Ci0gICAgcmV0dXJuIDQyOwotfQotfGZ1bmN0aW9uIGZvbygpCi17Ci0g
ICAgcmV0dXJuIDQyOwotfQotCi1SdW5uaW5nOiB0ZXN0SG9tZUJ1dHRvbldpdGhTaGlmdAotPmZ1
bmN0aW9uIGZvbygpCi17Ci0gICAgcmV0dTxybiA0MjsKLX0KLT5mdW5jdGlvbiBmb28oKQotewot
ICAgIDxyZXR1cm4gNDI7Ci19Ci0+ZnVuY3Rpb24gZm9vKCkKLXsKLTwgICAgcmV0dXJuIDQyOwot
fQotPmZ1bmN0aW9uIGZvbygpCi17Ci0gICAgPHJldHVybiA0MjsKLX0KLQotUnVubmluZzogdGVz
dEhvbWVCdXR0b25XaXRoU2hpZnRJbnZlcnNlZAotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICByZXR1
PnJuIDQyOwotfTwKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgPnJldHVybiA0MjsKLX08Ci1mdW5j
dGlvbiBmb28oKQotewotPiAgICByZXR1cm4gNDI7Ci19PAotZnVuY3Rpb24gZm9vKCkKLXsKLSAg
ICA+cmV0dXJuIDQyOwotfTwKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vk
aXRvci90ZXh0LWVkaXRvci1ob21lLWJ1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VkaXRvci90ZXh0LWVkaXRvci1ob21lLWJ1dHRvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiYjYxY2NiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
ZGl0b3IvdGV4dC1lZGl0b3ItaG9tZS1idXR0b24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEy
NCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJlZGl0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLWZ1
bmN0aW9uIGZvbygpCi17Ci0gICAgcmV0dXJuIDQyOwotfQotICAgIHZhciB0ZXh0RWRpdG9yID0g
SW5zcGVjdG9yVGVzdC5jcmVhdGVUZXN0RWRpdG9yKCk7Ci0gICAgdGV4dEVkaXRvci5vdmVycmlk
ZVZpZXdwb3J0Rm9yVGVzdCgwLCB1bmRlZmluZWQsIDMpOwotICAgIHRleHRFZGl0b3IubWltZVR5
cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsKLSAgICB0ZXh0RWRpdG9yLnNldFJlYWRPbmx5KGZhbHNl
KTsKLSAgICB0ZXh0RWRpdG9yLmVsZW1lbnQuZm9jdXMoKTsKLQotICAgIHRleHRFZGl0b3Iuc2V0
VGV4dChmb28udG9TdHJpbmcoKSk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0
RWRpdG9yLnRleHQoKSk7Ci0KLSAgICBmdW5jdGlvbiBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rp
b24oKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoSW5zcGVjdG9yVGVz
dC50ZXh0V2l0aFNlbGVjdGlvbih0ZXh0RWRpdG9yLnRleHQoKSwgdGV4dEVkaXRvci5zZWxlY3Rp
b24oKSkpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGhvbWVCdXR0b24oc2hpZnQpCi0gICAgewot
ICAgICAgICB2YXIga2V5ID0gV2ViSW5zcGVjdG9yLmlzTWFjKCkgPyAibGVmdEFycm93IiA6ICJo
b21lIjsKLSAgICAgICAgdmFyIG1vZGlmaWVycyA9IFdlYkluc3BlY3Rvci5pc01hYygpID8gWyJt
ZXRhS2V5Il0gOiBbXTsKLSAgICAgICAgaWYgKHNoaWZ0KQotICAgICAgICAgICAgbW9kaWZpZXJz
LnB1c2goInNoaWZ0S2V5Iik7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oa2V5LCBtb2Rp
ZmllcnMpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAg
ICAgZnVuY3Rpb24gdGVzdEZpcnN0Tm9uQmxhbmtDaGFyYWN0ZXIobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UuY3JlYXRl
RnJvbUxvY2F0aW9uKDIsIDgpOwotICAgICAgICAgICAgdGV4dEVkaXRvci5zZXRTZWxlY3Rpb24o
c2VsZWN0aW9uKTsKLSAgICAgICAgICAgIGR1bXBUZXh0RWRpdG9yV2l0aFNlbGVjdGlvbigpOwot
ICAgICAgICAgICAgaG9tZUJ1dHRvbihmYWxzZSk7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRv
cldpdGhTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAg
ICAgICBmdW5jdGlvbiB0ZXN0Rmlyc3ROb25CbGFua0NoYXJhY3RlckZyb21XaGl0ZXNwYWNlKG5l
eHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBXZWJJbnNwZWN0b3Iu
VGV4dFJhbmdlLmNyZWF0ZUZyb21Mb2NhdGlvbigyLCAyKTsKLSAgICAgICAgICAgIHRleHRFZGl0
b3Iuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldp
dGhTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIGhvbWVCdXR0b24oZmFsc2UpOwotICAgICAgICAg
ICAgZHVtcFRleHRFZGl0b3JXaXRoU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0g
ICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEhvbWVCdXR0b25Ub2dnbGluZyhuZXh0
KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gV2ViSW5zcGVjdG9yLlRl
eHRSYW5nZS5jcmVhdGVGcm9tTG9jYXRpb24oMiwgMik7Ci0gICAgICAgICAgICB0ZXh0RWRpdG9y
LnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOwotICAgICAgICAgICAgZHVtcFRleHRFZGl0b3JXaXRo
U2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICBob21lQnV0dG9uKGZhbHNlKTsKLSAgICAgICAgICAg
IGR1bXBUZXh0RWRpdG9yV2l0aFNlbGVjdGlvbigpOwotICAgICAgICAgICAgaG9tZUJ1dHRvbihm
YWxzZSk7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rpb24oKTsKLSAgICAg
ICAgICAgIGhvbWVCdXR0b24oZmFsc2UpOwotICAgICAgICAgICAgZHVtcFRleHRFZGl0b3JXaXRo
U2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gdGVzdEhvbWVCdXR0b25Eb2VzTm90Q2hhbmdlQ3Vyc29yKG5leHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlLmNy
ZWF0ZUZyb21Mb2NhdGlvbigwLCAyKTsKLSAgICAgICAgICAgIHRleHRFZGl0b3Iuc2V0U2VsZWN0
aW9uKHNlbGVjdGlvbik7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rpb24o
KTsKLSAgICAgICAgICAgIGhvbWVCdXR0b24oZmFsc2UpOwotICAgICAgICAgICAgZHVtcFRleHRF
ZGl0b3JXaXRoU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICBob21lQnV0dG9uKGZhbHNlKTsKLSAg
ICAgICAgICAgIGR1bXBUZXh0RWRpdG9yV2l0aFNlbGVjdGlvbigpOwotICAgICAgICAgICAgbmV4
dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RIb21lQnV0dG9uV2l0aFNo
aWZ0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgV2Vi
SW5zcGVjdG9yLlRleHRSYW5nZSgwLCAwLCAyLCA4KTsKLSAgICAgICAgICAgIHRleHRFZGl0b3Iu
c2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhT
ZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIGhvbWVCdXR0b24odHJ1ZSk7Ci0gICAgICAgICAgICBk
dW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIGhvbWVCdXR0b24odHJ1
ZSk7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rpb24oKTsKLSAgICAgICAg
ICAgIGhvbWVCdXR0b24odHJ1ZSk7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxl
Y3Rpb24oKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5j
dGlvbiB0ZXN0SG9tZUJ1dHRvbldpdGhTaGlmdEludmVyc2VkKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgzLCAx
LCAyLCA4KTsKLSAgICAgICAgICAgIHRleHRFZGl0b3Iuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7
Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rpb24oKTsKLSAgICAgICAgICAg
IGhvbWVCdXR0b24odHJ1ZSk7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rp
b24oKTsKLSAgICAgICAgICAgIGhvbWVCdXR0b24odHJ1ZSk7Ci0gICAgICAgICAgICBkdW1wVGV4
dEVkaXRvcldpdGhTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIGhvbWVCdXR0b24odHJ1ZSk7Ci0g
ICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIG5l
eHQoKTsKLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLTxwPgotVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgaG9t
ZSBidXR0b24gdHJpZ2dlcnMgc2VsZWN0aW9uIGJldHdlZW4gZmlyc3Qgc3ltYm9sIG9mIHRoZSBs
aW5lCi1hbmQgZmlyc3Qgbm9uLWJsYW5rIHN5bWJvbCBvZiB0aGUgbGluZS4KLTwvcD4KLQotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90
ZXh0LWVkaXRvci1saW5lLWJyZWFrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxpbmUtYnJlYWtzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTRjZGEyMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxpbmUtYnJlYWtzLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLVRoaXMgdGVzdCBjaGVja3MgdGhhdCBsaW5lIGVu
ZGluZ3MgYXJlIGluZmVycmVkIGZyb20gdGhlIGluaXRpYWwgdGV4dCBjb250ZW50LCBub3QgaW5j
cmVtZW50YWwgZWRpdGluZy4KLQotCi1SdW5uaW5nOiB0ZXN0Q1JJbml0aWFsCi0xJTBBMiUwQTMl
MEEKLQotUnVubmluZzogdGVzdENSTEZJbml0aWFsCi0xJTBEJTBBMiUwRCUwQTMlMEQlMEEKLQot
UnVubmluZzogdGVzdENSRWRpdAotMSUwQWZvbyUwQWJhcjIlMEEzJTBBCi0KLVJ1bm5pbmc6IHRl
c3RDUkxGRWRpdAotMSUwRCUwQWZvbyUwRCUwQWJhcjIlMEQlMEEzJTBEJTBBCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItbGluZS1icmVha3Mu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItbGluZS1icmVh
a3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmM3NDkyMS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxpbmUtYnJlYWtz
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRl
c3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdENSSW5pdGlhbChuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdGV4dE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yTW9kZWwoKTsKLSAgICAgICAgICAgIHRleHRNb2RlbC5zZXRUZXh0KCIxXG4yXG4z
XG4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGVuY29kZVVSSSh0ZXh0
TW9kZWwudGV4dCgpKSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdENSTEZJbml0aWFsKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHZhciB0ZXh0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgpOwotICAg
ICAgICAgICAgdGV4dE1vZGVsLnNldFRleHQoIjFcclxuMlxyXG4zXHJcbiIpOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZW5jb2RlVVJJKHRleHRNb2RlbC50ZXh0KCkpKTsK
LSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0
Q1JFZGl0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB0ZXh0TW9kZWwgPSBuZXcg
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgpOwotICAgICAgICAgICAgdGV4dE1vZGVsLnNl
dFRleHQoIjFcbjJcbjNcbiIpOwotICAgICAgICAgICAgdGV4dE1vZGVsLmVkaXRSYW5nZShuZXcg
V2ViSW5zcGVjdG9yLlRleHRSYW5nZSgxLCAwLCAxLCAwKSwgImZvb1xyXG5iYXIiKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGVuY29kZVVSSSh0ZXh0TW9kZWwudGV4dCgp
KSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24g
dGVzdENSTEZFZGl0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB0ZXh0TW9kZWwg
PSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgpOwotICAgICAgICAgICAgdGV4dE1v
ZGVsLnNldFRleHQoIjFcclxuMlxyXG4zXHJcbiIpOwotICAgICAgICAgICAgdGV4dE1vZGVsLmVk
aXRSYW5nZShuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgxLCAwLCAxLCAwKSwgImZvb1xyXG5i
YXIiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGVuY29kZVVSSSh0ZXh0
TW9kZWwudGV4dCgpKSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0KLSAgICBdKTsK
LX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxw
PgotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGxpbmUgZW5kaW5ncyBhcmUgaW5mZXJyZWQgZnJvbSB0
aGUgaW5pdGlhbCB0ZXh0IGNvbnRlbnQsIG5vdCBpbmNyZW1lbnRhbCBlZGl0aW5nLgotPC9wPgot
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRp
dG9yL3RleHQtZWRpdG9yLWxvbmctbGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxvbmctbGluZS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmODliN2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1sb25nLWxpbmUtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGV4dCBlZGl0
b3IgZG9lc24ndCBwYWludCBoaWdobGlnaHQgZm9yIHRvbyBsb25nIGxpbmVzLgotCi0KLTxkaXYg
Y2xhc3M9ImlubmVyLWNvbnRhaW5lciIgdGFiaW5kZXg9IjAiPgotPGRpdiBjbGFzcz0id2Via2l0
LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQiPi8q
IFNUQVJUICovPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48
c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQta2V5d29yZCI+dGhpczwvc3Bhbj48c3Bhbj4u
PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+ZmllbGQ8L3NwYW4+
PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIj4gPC9zcGFuPjxzcGFuPj08L3NwYW4+PHNw
YW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQt
amF2YXNjcmlwdC1zdHJpbmciPiJmb28iPC9zcGFuPjxzcGFuPjs8L3NwYW4+PHNwYW4gY2xhc3M9
IndlYmtpdC13aGl0ZXNwYWNlIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlw
dC1jb21tZW50Ij4vKiBjb21tZW50ICovPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVz
cGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQta2V5d29yZCI+ZnVu
Y3Rpb248L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIj4gPC9zcGFuPjxzcGFu
IGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YmFyPC9zcGFuPjxzcGFuPigpPC9zcGFu
PjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3Bhbj57PC9zcGFuPjxz
cGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0
LWphdmFzY3JpcHQta2V5d29yZCI+cmV0dXJuPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hp
dGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQta2V5d29yZCI+
bnVsbDwvc3Bhbj48c3Bhbj47PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+
IDwvc3Bhbj48c3Bhbj59PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1rZXl3
b3JkIj50aGlzPC9zcGFuPjxzcGFuPi48L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2Ny
aXB0LWlkZW50Ij5maWVsZDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8
L3NwYW4+PHNwYW4+PTwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3Nw
YW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LXN0cmluZyI+ImZvbyI8L3NwYW4+PHNw
YW4+Ozwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PHNwYW4g
Y2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQiPi8qIGNvbW1lbnQgKi88L3NwYW4+PHNw
YW4+IGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH10aGlzLmZpZWxkID0gImZvbyI7IC8q
IGNvbW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAi
Zm9vIjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJldHVybiBudWxsOyB9dGhpcy5m
aWVsZCA9ICJmb28iOyAvKiBjb21tZW50ICovIGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7
IH10aGlzLmZpZWxkID0gImZvbyI7IC8qIGNvbW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkgeyByZXR1
cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIo
KSB7IHJldHVybiBudWxsOyB9dGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50ICovIGZ1bmN0
aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH10aGlzLmZpZWxkID0gImZvbyI7IC8qIGNvbW1lbnQg
Ki8gZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAiZm9vIjsgLyog
Y29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJldHVybiBudWxsOyB9dGhpcy5maWVsZCA9ICJm
b28iOyAvKiBjb21tZW50ICovIGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH10aGlzLmZp
ZWxkID0gImZvbyI7IC8qIGNvbW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gbnVsbDsg
fXRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJldHVy
biBudWxsOyB9dGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50ICovIGZ1bmN0aW9uIGJhcigp
IHsgcmV0dXJuIG51bGw7IH10aGlzLmZpZWxkID0gImZvbyI7IC8qIGNvbW1lbnQgKi8gZnVuY3Rp
b24gYmFyKCkgeyByZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29tbWVudCAq
LyBmdW5jdGlvbiBiYXIoKSB7IHJldHVybiBudWxsOyB9dGhpcy5maWVsZCA9ICJmb28iOyAvKiBj
b21tZW50ICovIGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH10aGlzLmZpZWxkID0gImZv
byI7IC8qIGNvbW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gbnVsbDsgfXRoaXMuZmll
bGQgPSAiZm9vIjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJldHVybiBudWxsOyB9
dGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50ICovIGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJu
IG51bGw7IH10aGlzLmZpZWxkID0gImZvbyI7IC8qIGNvbW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkg
eyByZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29tbWVudCAqLyBmdW5jdGlv
biBiYXIoKSB7IHJldHVybiBudWxsOyB9dGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50ICov
IGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH10aGlzLmZpZWxkID0gImZvbyI7IC8qIGNv
bW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAiZm9v
IjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJldHVybiBudWxsOyB9dGhpcy5maWVs
ZCA9ICJmb28iOyAvKiBjb21tZW50ICovIGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH10
aGlzLmZpZWxkID0gImZvbyI7IC8qIGNvbW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4g
bnVsbDsgfXRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7
IHJldHVybiBudWxsOyB9dGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50ICovIGZ1bmN0aW9u
IGJhcigpIHsgcmV0dXJuIG51bGw7IH10aGlzLmZpZWxkID0gImZvbyI7IC8qIGNvbW1lbnQgKi8g
ZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29t
bWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJldHVybiBudWxsOyB9dGhpcy5maWVsZCA9ICJmb28i
OyAvKiBjb21tZW50ICovIGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH0vKiBGSU5JU0gg
Ki88L3NwYW4+PC9kaXY+PC9kaXY+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lZGl0b3IvdGV4dC1lZGl0b3ItbG9uZy1saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxvbmctbGluZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA4NGRlYjE4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
ZGl0b3IvdGV4dC1lZGl0b3ItbG9uZy1saW5lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJlZGl0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2
YXIgdGV4dEVkaXRvciA9IEluc3BlY3RvclRlc3QuY3JlYXRlVGVzdEVkaXRvcigpOwotICAgIHRl
eHRFZGl0b3IubWltZVR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsKLSAgICB0ZXh0RWRpdG9yLl9t
YWluUGFuZWwuX2hpZ2hsaWdodGVyLnNldEhpZ2hsaWdodExpbmVMaW1pdCgxMDApOwotCi0gICAg
dmFyIHNyYyA9ICJ0aGlzLmZpZWxkID0gXCJmb29cIjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBi
YXIoKSB7IHJldHVybiBudWxsOyB9IjsKLSAgICBmb3IodmFyIGkgPSAwOyBpIDwgNTsgaSsrKSB7
Ci0gICAgICAgIHNyYyArPSBzcmM7Ci0gICAgfQotICAgIHNyYyA9ICIvKiBTVEFSVCAqLyAiICsg
c3JjICsgIi8qIEZJTklTSCAqLyI7Ci0gICAgdGV4dEVkaXRvci5zZXRUZXh0KHNyYyk7Ci0gICAg
SW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0RWRpdG9yLCB0cnVlKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGV4dCBl
ZGl0b3IgZG9lc24ndCBwYWludCBoaWdobGlnaHQgZm9yIHRvbyBsb25nIGxpbmVzLgotPC9wPgot
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRp
dG9yL3RleHQtZWRpdG9yLW1vZGVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lZGl0b3IvdGV4dC1lZGl0b3ItbW9kZWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyMGRlNWYwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lZGl0b3IvdGV4dC1lZGl0b3ItbW9kZWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNyArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRoZSB0ZXh0IGVkaXRvciBtb2RlbC4KLQot
TGluZXM6NCwgbGVuZ3RoOjUsIGlucHV0IGVxdWFscyBvdXRwdXQ6dHJ1ZQotTGluZXM6NCwgbGVu
Z3RoOjgsIGlucHV0IGVxdWFscyBvdXRwdXQ6dHJ1ZQotTGluZXM6NCwgbGVuZ3RoOjgsIGlucHV0
IGVxdWFscyBvdXRwdXQ6ZmFsc2UKLUxpbmVzOjEsIGxlbmd0aDoxNCwgaW5wdXQgZXF1YWxzIG91
dHB1dDp0cnVlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4
dC1lZGl0b3ItbW9kZWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1l
ZGl0b3ItbW9kZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVkYjhhMy4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLW1v
ZGVsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9u
IGNyZWF0ZUFuZER1bXBUZXh0TW9kZWwodGV4dCkKLSAgICB7Ci0gICAgICAgIHZhciB0ZXh0TW9k
ZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgpOwotICAgICAgICB0ZXh0TW9k
ZWwuc2V0VGV4dCh0ZXh0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxpbmVz
OiIgKyB0ZXh0TW9kZWwubGluZXNDb3VudCArICIsIGxlbmd0aDoiICsgdGV4dE1vZGVsLnRleHQo
KS5sZW5ndGggKyAiLCBpbnB1dCBlcXVhbHMgb3V0cHV0OiIgKyAodGV4dE1vZGVsLnRleHQoKSA9
PT0gdGV4dCkpOwotICAgIH0KLQotICAgIGNyZWF0ZUFuZER1bXBUZXh0TW9kZWwoIjFcbjJcblxu
Iik7Ci0gICAgY3JlYXRlQW5kRHVtcFRleHRNb2RlbCgiMVxyXG4yXHJcblxyXG4iKTsKLSAgICBj
cmVhdGVBbmREdW1wVGV4dE1vZGVsKCIxXG4yXG5cclxuIik7Ci0gICAgY3JlYXRlQW5kRHVtcFRl
eHRNb2RlbCgibm8gbGluZSBicmVha3MiKTsKLQotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD4KLVRoaXMgdGVzdCBjaGVja3MgdGhlIHRleHQgZWRpdG9yIG1vZGVsLgotPC9wPgot
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRp
dG9yL3RleHQtZWRpdG9yLXJlbW92ZS1jaHVua3MtZnJvbS1kb20tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1yZW1vdmUtY2h1bmtzLWZyb20t
ZG9tLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDg2ZDM5My4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXJl
bW92ZS1jaHVua3MtZnJvbS1kb20tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzkg
KzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyBob3cgZGFtYWdlZCBjaHVua3MnIERPTSBpcyByZW1v
dmVkIGZyb20gdGhlIGNvbnRhaW5lci4KLQotCi1SdW5uaW5nOiB0ZXN0RGFtYWdlTGFzdENodW5r
Ci0KLUJlZm9yZSBlZGl0aW5nCi1UZXh0IG1vZGVsCi1bMF0gICAgICAgMAotWzFdICAgICAgIDEK
LVsyXSAgICAgICAyCi1bM10gICAgICAgMwotWzRdICAgICAgIDQKLVs1XSAgICAgICAKLUVkaXRv
ciBET00KLVswXSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4w
PC9zcGFuPjwvZGl2PgotWzFdICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQi
PjxzcGFuPjE8L3NwYW4+PC9kaXY+Ci1bMl0gICAgICAgPGRpdiBjbGFzcz0id2Via2l0LWxpbmUt
Y29udGVudCI+PHNwYW4+Mjwvc3Bhbj48L2Rpdj4KLVszXSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJr
aXQtbGluZS1jb250ZW50Ij48c3Bhbj4zPC9zcGFuPjwvZGl2PgotWzRdICAgICAgIDxkaXYgY2xh
c3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPjQ8L3NwYW4+PC9kaXY+Ci1bNV0gICAgICAg
PGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PGJyPjwvZGl2PgotCi1BZnRlciBlZGl0
aW5nCi1UZXh0IG1vZGVsCi1bMF0gICAgICAgMAotWzFdICAgICAgIDEKLVsyXSAgICAgICAyCi1b
M10gICAgICAgMwotWzRdICAgICAgIDQKLVs1XSAgICAgICBhZGRpdGlvbmFsIDUKLVs2XSAgICAg
ICAKLUVkaXRvciBET00KLVswXSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50
Ij48c3Bhbj4wPC9zcGFuPjwvZGl2PgotWzFdICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1saW5l
LWNvbnRlbnQiPjxzcGFuPjE8L3NwYW4+PC9kaXY+Ci1bMl0gICAgICAgPGRpdiBjbGFzcz0id2Vi
a2l0LWxpbmUtY29udGVudCI+PHNwYW4+Mjwvc3Bhbj48L2Rpdj4KLVszXSAgICAgICA8ZGl2IGNs
YXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4zPC9zcGFuPjwvZGl2PgotWzRdICAgICAg
IDxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPjQ8L3NwYW4+PC9kaXY+Ci1b
NV0gICAgICAgPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+YWRkaXRpb25h
bCA1PC9zcGFuPjwvZGl2PgotWzZdICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRl
bnQiPjxicj48L2Rpdj4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRv
ci90ZXh0LWVkaXRvci1yZW1vdmUtY2h1bmtzLWZyb20tZG9tLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXJlbW92ZS1jaHVua3MtZnJvbS1kb20uaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmEzMjA5MC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXJlbW92ZS1jaHVua3MtZnJvbS1k
b20uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImVkaXRvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRl
KFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdERhbWFnZUxhc3RDaHVuayhuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICB2YXIgdGV4dEVkaXRvciA9IEluc3BlY3RvclRlc3QuY3JlYXRlVGVzdEVk
aXRvcigpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5maWxsRWRpdG9yV2l0aFRleHQodGV4
dEVkaXRvciwgNSk7Ci0gICAgICAgICAgICB0ZXh0RWRpdG9yLnNldFRleHQodGV4dEVkaXRvci50
ZXh0KCkgKyAiXG4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcbkJl
Zm9yZSBlZGl0aW5nIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFZGl0b3JNb2Rl
bCh0ZXh0RWRpdG9yKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckRPTSh0
ZXh0RWRpdG9yKTsKLSAgICAgICAgICAgIHZhciB0ZXh0TW9kZWwgPSB0ZXh0RWRpdG9yLl90ZXh0
TW9kZWw7Ci0gICAgICAgICAgICB0ZXh0TW9kZWwuZWRpdFJhbmdlKG5ldyBXZWJJbnNwZWN0b3Iu
VGV4dFJhbmdlKDUsIDAsIDUsIDApLCAiYWRkaXRpb25hbCA1XG4iKTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcbkFmdGVyIGVkaXRpbmciKTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZHVtcEVkaXRvck1vZGVsKHRleHRFZGl0b3IpOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wRWRpdG9yRE9NKHRleHRFZGl0b3IpOwotICAgICAgICAgICAgbmV4dCgp
OwotICAgICAgICB9LAotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UaGlzIHRlc3QgY2hlY2tzIGhvdyBkYW1hZ2VkIGNo
dW5rcycgRE9NIGlzIHJlbW92ZWQgZnJvbSB0aGUgY29udGFpbmVyLgotPC9wPgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQt
ZWRpdG9yLXNlbGVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRp
dG9yL3RleHQtZWRpdG9yLXNlbGVjdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQ1ZTY3YjIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VkaXRvci90ZXh0LWVkaXRvci1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMjMgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGUgdGV4dCBlZGl0b3Igc2VsZWN0
aW9uIGNhbGN1bGF0aW9uLgotCi1DaHVuayBtb2RlbAotQ2h1bmsgWzBdIDA6OSAoZXhwYW5kZWQp
Ci1DaHVuayBbMV0gOToxOCAoZXhwYW5kZWQpCi1DaHVuayBbMl0gMTg6MjcgKGNvbGxhcHNlZCkK
LUNodW5rIFszXSAyNzozNCAoY29sbGFwc2VkKQotCi1SdW5uaW5nOiB0ZXN0U2VsZWN0aW9uQXRT
dGFydE9mQ29sbGFwc2VkQ2h1bmsKLXsic3RhcnRMaW5lIjoyNywic3RhcnRDb2x1bW4iOjAsImVu
ZExpbmUiOjI3LCJlbmRDb2x1bW4iOjB9Ci0KLVJ1bm5pbmc6IHRlc3RTZWxlY3Rpb25BdEVuZE9m
Q29sbGFwc2VkQ2h1bmsKLXsic3RhcnRMaW5lIjozMywic3RhcnRDb2x1bW4iOjIsImVuZExpbmUi
OjMzLCJlbmRDb2x1bW4iOjJ9Ci0KLVJ1bm5pbmc6IHRlc3RTZWxlY3Rpb25BdE1pZGRsZU9mQ29s
bGFwc2VkQ2h1bmsKLXsic3RhcnRMaW5lIjoyNywic3RhcnRDb2x1bW4iOjEsImVuZExpbmUiOjMw
LCJlbmRDb2x1bW4iOjJ9Ci0KLVJ1bm5pbmc6IHRlc3RTZWxlY3Rpb25BdFN0YXJ0QW5kRW5kT2ZF
eHBhbmRlZFJvd3MKLXsic3RhcnRMaW5lIjozLCJzdGFydENvbHVtbiI6MCwiZW5kTGluZSI6NCwi
ZW5kQ29sdW1uIjoxfQotCi1SdW5uaW5nOiB0ZXN0U2VsZWN0aW9uQXRNaWRkbGVPZkV4cGFuZGVk
Um93cwoteyJzdGFydExpbmUiOjMsInN0YXJ0Q29sdW1uIjoxLCJlbmRMaW5lIjo0LCJlbmRDb2x1
bW4iOjF9Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1l
ZGl0b3Itc2VsZWN0aW9uLXRvLXNlYXJjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNlbGVjdGlvbi10by1zZWFyY2gtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTJiN2E1Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2VsZWN0aW9uLXRvLXNlYXJj
aC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLVRlc3RzIHN5bmNo
cm9uaXppbmcgdGhlIHNlYXJjaCBpbnB1dCBmaWVsZCB0byB0aGUgZWRpdG9yIHNlbGVjdGlvbi4K
LQotCi1SdW5uaW5nOiB0ZXN0V29yZFNlbGVjdGlvblRvU2VhcmNoUXVlcnkKLXJldHVybgotcmV0
dXJuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0
b3Itc2VsZWN0aW9uLXRvLXNlYXJjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRv
ci90ZXh0LWVkaXRvci1zZWxlY3Rpb24tdG8tc2VhcmNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDU3YTUyNDkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VkaXRvci90ZXh0LWVkaXRvci1zZWxlY3Rpb24tdG8tc2VhcmNoLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw2MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9kZWJ1Z2dlci9yZXNvdXJjZXMvZWRpdC1tZS5qcyI+PC9zY3Jp
cHQ+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBwYW5lbCA9IFdl
Ykluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsgIAotCi0gICAgZnVuY3Rpb24gc2VsZWN0
aW9uVG9TZWFyY2hJbnB1dFRlc3QoKSB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zZWFyY2hDb250
cm9sbGVyLnNob3dTZWFyY2hGaWVsZCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dChXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci5fc2VhcmNoSW5wdXRFbGVtZW50LnZhbHVl
KTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmFkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5zaG93KCk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KFdlYkluc3BlY3Rvci5hZHZhbmNlZFNl
YXJjaENvbnRyb2xsZXIuX3NlYXJjaFZpZXcuX3NlYXJjaC52YWx1ZSk7Ci0gICAgfQotCi0gICAg
SW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJlZGl0LW1lLmpzIiwgZGlkU2hvd1Njcmlw
dFNvdXJjZSk7Ci0KLSAgICBmdW5jdGlvbiBnZXRMaW5lQ29sdW1uKHNvdXJjZUZyYW1lLCBzdHJp
bmcpIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3VyY2VGcmFtZS5fdGV4dEVkaXRv
ci5saW5lc0NvdW50OyArK2kpIHsKLSAgICAgICAgICAgIHZhciBsaW5lID0gc291cmNlRnJhbWUu
X3RleHRFZGl0b3IubGluZShpKTsKLSAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsaW5lLmluZGV4
T2Yoc3RyaW5nKTsKLSAgICAgICAgICAgIGlmIChjb2x1bW4gPT09IC0xKQotICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcmV0dXJuIHtsaW5lOiBpLCBjb2x1bW46IGNvbHVt
bn07Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHNldFNlbGVjdGlvbihzb3VyY2VGcmFtZSwgZnJvbSwgdG8pIHsKLSAgICAgICAgcmFuZ2UgPSBu
ZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZShmcm9tLmxpbmUsIGZyb20uY29sdW1uLCB0by5saW5l
LCB0by5jb2x1bW4pOwotICAgICAgICByZXR1cm4gc291cmNlRnJhbWUuX3RleHRFZGl0b3Iuc2V0
U2VsZWN0aW9uKHJhbmdlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291
cmNlKHNvdXJjZUZyYW1lKQotICAgIHsKLSAgICAgICAgdmFyIHN0cmluZyA9ICdyZXR1cm4nOwot
ICAgICAgICB2YXIgbGluZUNvbHVtbiA9IGdldExpbmVDb2x1bW4oc291cmNlRnJhbWUsIHN0cmlu
Zyk7Ci0gICAgICAgIAotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAg
ICAgICAgICBmdW5jdGlvbiB0ZXN0V29yZFNlbGVjdGlvblRvU2VhcmNoUXVlcnkobmV4dCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzZXRTZWxlY3Rpb24oc291cmNlRnJhbWUsIGxp
bmVDb2x1bW4sIHtsaW5lOiBsaW5lQ29sdW1uLmxpbmUsIGNvbHVtbjogbGluZUNvbHVtbi5jb2x1
bW4gKyBzdHJpbmcubGVuZ3RofSk7Ci0gICAgICAgICAgICAgICAgc2VsZWN0aW9uVG9TZWFyY2hJ
bnB1dFRlc3QoKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9LAotICAg
ICAgICBdKTsKLSAgICB9Ci19OwotCi08L3NjcmlwdD4KLQotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBzeW5jaHJvbml6aW5nIHRoZSBzZWFyY2ggaW5wdXQg
ZmllbGQgdG8gdGhlIGVkaXRvciBzZWxlY3Rpb24uPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNlbGVj
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zZWxl
Y3Rpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E1NGFkNS4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNlbGVjdGlv
bi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHRleHRFZGl0b3IgPSBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZVRlc3RFZGl0b3IoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmZpbGxFZGl0b3JXaXRo
VGV4dCh0ZXh0RWRpdG9yLCAzNCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9yQ2h1bmtz
KHRleHRFZGl0b3IpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAg
ICBmdW5jdGlvbiB0ZXN0U2VsZWN0aW9uQXRTdGFydE9mQ29sbGFwc2VkQ2h1bmsobmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgdmFyIGNodW5rcyA9IHRleHRFZGl0b3IuX21haW5QYW5lbC5f
dGV4dENodW5rczsKLSAgICAgICAgICAgIHZhciBsYXN0Q2h1bmsgPSBjaHVua3NbY2h1bmtzLmxl
bmd0aCAtIDFdOwotICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRF
eHRlbnQobGFzdENodW5rLmVsZW1lbnQsIDAsIGxhc3RDaHVuay5lbGVtZW50LCAwKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRleHRFZGl0b3IuX21haW5QYW5lbC5zZWxl
Y3Rpb24oKSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdFNlbGVjdGlvbkF0RW5kT2ZDb2xsYXBzZWRDaHVuayhuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICB2YXIgY2h1bmtzID0gdGV4dEVkaXRvci5fbWFpblBhbmVsLl90ZXh0Q2h1
bmtzOwotICAgICAgICAgICAgdmFyIGxhc3RDaHVuayA9IGNodW5rc1tjaHVua3MubGVuZ3RoIC0g
MV07Ci0gICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChs
YXN0Q2h1bmsuZWxlbWVudCwgMSwgbGFzdENodW5rLmVsZW1lbnQsIDEpOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGV4dEVkaXRvci5fbWFpblBhbmVsLnNlbGVjdGlvbigp
KTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0
ZXN0U2VsZWN0aW9uQXRNaWRkbGVPZkNvbGxhcHNlZENodW5rKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHZhciBjaHVua3MgPSB0ZXh0RWRpdG9yLl9tYWluUGFuZWwuX3RleHRDaHVua3M7
Ci0gICAgICAgICAgICB2YXIgbGFzdENodW5rID0gY2h1bmtzW2NodW5rcy5sZW5ndGggLSAxXTsK
LSAgICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGxhc3RD
aHVuay5lbGVtZW50LmZpcnN0Q2hpbGQsIDEsIGxhc3RDaHVuay5lbGVtZW50LmZpcnN0Q2hpbGQs
IDExKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRleHRFZGl0b3IuX21h
aW5QYW5lbC5zZWxlY3Rpb24oKSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0K
LSAgICAgICAgZnVuY3Rpb24gdGVzdFNlbGVjdGlvbkF0U3RhcnRBbmRFbmRPZkV4cGFuZGVkUm93
cyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgY2h1bmtzID0gdGV4dEVkaXRvci5f
bWFpblBhbmVsLl90ZXh0Q2h1bmtzOwotICAgICAgICAgICAgdmFyIGZpcnN0Q2h1bmsgPSBjaHVu
a3NbMF07Ci0gICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVu
dChmaXJzdENodW5rLmV4cGFuZGVkTGluZVJvdygzKSwgMCwgZmlyc3RDaHVuay5leHBhbmRlZExp
bmVSb3coNCksIDEpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGV4dEVk
aXRvci5fbWFpblBhbmVsLnNlbGVjdGlvbigpKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAg
ICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2VsZWN0aW9uQXRNaWRkbGVPZkV4cGFuZGVk
Um93cyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgY2h1bmtzID0gdGV4dEVkaXRv
ci5fbWFpblBhbmVsLl90ZXh0Q2h1bmtzOwotICAgICAgICAgICAgdmFyIGZpcnN0Q2h1bmsgPSBj
aHVua3NbMF07Ci0gICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4
dGVudChmaXJzdENodW5rLmV4cGFuZGVkTGluZVJvdygzKS5maXJzdENoaWxkLCAzLCBmaXJzdENo
dW5rLmV4cGFuZGVkTGluZVJvdyg0KS5maXJzdENoaWxkLCA0KTsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KHRleHRFZGl0b3IuX21haW5QYW5lbC5zZWxlY3Rpb24oKSk7Ci0g
ICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRoaXMgdGVzdCBjaGVj
a3MgdGhlIHRleHQgZWRpdG9yIHNlbGVjdGlvbiBjYWxjdWxhdGlvbi4KLTwvcD4KLQotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0
LWVkaXRvci1zaG93LXdoaXRlc3BhY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VkaXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2UtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzViOTE5NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZS1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIGhv
dyB0ZXh0IGVkaXRvciBzcGxpdHMgd2hpdGVzcGFjZSBzZXF1ZW5jZXMgdG8gaGlnaGxpZ2h0IHRo
ZW0gaWYgdGhlIGFwcHJvcHJpYXRlIGV4cGVyaW1lbnQgaXMgc3dpdGNoZWQgb24uCi0KLUFjdHVh
bCB0ZXh0OgotZnVuY3Rpb24gZm9vKGEsIGIpIHsKLSAgICAvLyBzcGFjZXMgaW4gY29tbWVudAot
ICAgIGEgPSAic3RyaW5nIHdpdGggc3BhY2VzIjsKLSAgICBhID0gMjsgICAgICAgICAgICAgICBh
ID0gMzsKLX0KLT09PT09PT09PT0gRWRpdG9yIEhUTUwgYWZ0ZXIgc2V0dGluZyBzaG93V2hpdGVz
cGFjZUluRWRpdG9yIE9OID09PT09PT09PT0KLQotPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVy
IiB0YWJpbmRleD0iMCI+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3BhbiBj
bGFzcz0id2Via2l0LWphdmFzY3JpcHQta2V5d29yZCI+ZnVuY3Rpb248L3NwYW4+PHNwYW4gY2xh
c3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4g
Y2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5mb288L3NwYW4+PHNwYW4+KDwvc3Bhbj48
c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmE8L3NwYW4+PHNwYW4+LDwvc3Bh
bj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwv
c3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmI8L3NwYW4+PHNwYW4+
KTwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2Ut
MSI+IDwvc3Bhbj48c3Bhbj57PC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUt
Y29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNl
LTQiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQiPi8v
IHNwYWNlcyBpbiBjb21tZW50PC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUt
Y29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNl
LTQiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5hPC9z
cGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0xIj4g
PC9zcGFuPjxzcGFuPj08L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtp
dC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LXN0
cmluZyI+InN0cmluZyB3aXRoIHNwYWNlcyI8L3NwYW4+PHNwYW4+Ozwvc3Bhbj48L2Rpdj4KLTxk
aXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVz
cGFjZSB3ZWJraXQtd2hpdGVzcGFjZS00Ij4gICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQt
amF2YXNjcmlwdC1pZGVudCI+YTwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ug
d2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj48c3Bhbj49PC9zcGFuPjxzcGFuIGNsYXNzPSJ3
ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0xIj4gPC9zcGFuPjxzcGFuIGNsYXNz
PSJ3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIiPjI8L3NwYW4+PHNwYW4+Ozwvc3Bhbj48c3BhbiBj
bGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtOCI+ICAgICAgICA8L3Nw
YW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTQiPiAg
ICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNl
LTIiPiAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVz
cGFjZS0xIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwv
c3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+
IDwvc3Bhbj48c3Bhbj49PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJr
aXQtd2hpdGVzcGFjZS0xIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1u
dW1iZXIiPjM8L3NwYW4+PHNwYW4+Ozwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1s
aW5lLWNvbnRlbnQiPjxzcGFuPn08L3NwYW4+PC9kaXY+PC9kaXY+Ci0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2hvdy13aGl0ZXNwYWNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVz
cGFjZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMTNjNTc0Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2hvdy13aGl0
ZXNwYWNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJlZGl0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci1mdW5jdGlvbiBmb28oYSwgYikgewotICAgIC8v
IHNwYWNlcyBpbiBjb21tZW50Ci0gICAgYSA9ICJzdHJpbmcgd2l0aCBzcGFjZXMiOwotICAgIGEg
PSAyOyAgICAgICAgICAgICAgIGEgPSAzOwotfQotCi0gICAgV2ViSW5zcGVjdG9yLmV4cGVyaW1l
bnRzU2V0dGluZ3Muc2hvd1doaXRlc3BhY2VJbkVkaXRvci5lbmFibGVGb3JUZXN0KCk7Ci0gICAg
dmFyIHRleHRFZGl0b3IgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVRlc3RFZGl0b3IoKTsKLSAgICB0
ZXh0RWRpdG9yLm92ZXJyaWRlVmlld3BvcnRGb3JUZXN0KDAsIHVuZGVmaW5lZCwgMyk7Ci0gICAg
dGV4dEVkaXRvci5taW1lVHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOwotICAgIHRleHRFZGl0b3Iu
c2V0VGV4dChmb28udG9TdHJpbmcoKSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFj
dHVhbCB0ZXh0OiIpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRleHRFZGl0b3IudGV4
dCgpKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09PSBFZGl0b3IgSFRN
TCBhZnRlciBzZXR0aW5nIHNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgT04gPT09PT09PT09PSIpOwot
ICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckhUTUwodGV4dEVkaXRvciwgdHJ1ZSk7Ci0gICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Ci08cD4KLVRoaXMgdGVzdCBjaGVja3MgaG93IHRl
eHQgZWRpdG9yIHNwbGl0cyB3aGl0ZXNwYWNlIHNlcXVlbmNlcyB0byBoaWdobGlnaHQgdGhlbSBp
ZiB0aGUgYXBwcm9wcmlhdGUKLWV4cGVyaW1lbnQgaXMgc3dpdGNoZWQgb24uCi08L3A+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3Rl
eHQtZWRpdG9yLXNtYXJ0LWJyYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNtYXJ0LWJyYWNlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhY2MzN2UuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zbWFydC1icmFjZXMtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0ZXh0IGVkaXRv
ciBzbWFydCBicmFjZXMgZnVuY3Rpb25hbGl0eS4KLQotCi1SdW5uaW5nOiB0eXBlRnVuY3Rpb25O
YW1lCi1mdW5jdGlvbiBteU1heHwKLQotUnVubmluZzogdHlwZU9wZW5pbmdSb3VuZEJyYWNlCi1m
dW5jdGlvbiBteU1heCh8KQotCi1SdW5uaW5nOiB0eXBlRnVuY3Rpb25Bcmd1bWVudHMKLWZ1bmN0
aW9uIG15TWF4KGEsIGJ8KQotCi1SdW5uaW5nOiB0eXBlQ2xvc2luZ0JyYWNlCi1mdW5jdGlvbiBt
eU1heChhLCBiKXwKLQotUnVubmluZzogdHlwZU9wZW5pbmdDdXJseUJyYWNlCi1mdW5jdGlvbiBt
eU1heChhLCBiKXt8fQotCi1SdW5uaW5nOiB0eXBlRW50ZXIKLWZ1bmN0aW9uIG15TWF4KGEsIGIp
ewotICAgIHwKLX0KLQotUnVubmluZzogdHlwZVJldHVyblN0YXRlbWVudAotZnVuY3Rpb24gbXlN
YXgoYSwgYil7Ci0gICAgcmV0dXJuIHwKLX0KLQotUnVubmluZzogdHlwZU5lc3RlZEJyYWNlcwot
ZnVuY3Rpb24gbXlNYXgoYSwgYil7Ci0gICAgcmV0dXJuICh7KHwpfSkKLX0KLQotUnVubmluZzog
aGl0QmFja3NwYWNlVHJpcHBsZVRpbWVzCi1mdW5jdGlvbiBteU1heChhLCBiKXsKLSAgICByZXR1
cm4gfAotfQotCi1SdW5uaW5nOiB0eXBlTWF0aE1heAotZnVuY3Rpb24gbXlNYXgoYSwgYil7Ci0g
ICAgcmV0dXJuIE1hdGgubWF4KGEsIGIpO3wKLX0KLQotUnVubmluZzogc2V0Q3Vyc29yQmVmb3Jl
Q2xvc2luZ0N1cmx5QnJhY2UKLWZ1bmN0aW9uIG15TWF4KGEsIGIpewotICAgIHJldHVybiBNYXRo
Lm1heChhLCBiKTsKLXx9Ci0KLVJ1bm5pbmc6IHR5cGVJbkNsb3NpbmdDdXJseUJyYWNlCi1mdW5j
dGlvbiBteU1heChhLCBiKXsKLSAgICByZXR1cm4gTWF0aC5tYXgoYSwgYik7Ci19fAotCi1SdW5u
aW5nOiBnb3RvVmVyeUJlZ2lubmluZwotfGZ1bmN0aW9uIG15TWF4KGEsIGIpewotICAgIHJldHVy
biBNYXRoLm1heChhLCBiKTsKLX0KLQotUnVubmluZzogdHlwZU9wZW5pbmdSb3VuZEFuZEN1cmx5
QnJhY2VzCi0oe3xmdW5jdGlvbiBteU1heChhLCBiKXsKLSAgICByZXR1cm4gTWF0aC5tYXgoYSwg
Yik7Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1l
ZGl0b3Itc21hcnQtYnJhY2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3Rl
eHQtZWRpdG9yLXNtYXJ0LWJyYWNlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiNWE1MDFkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4
dC1lZGl0b3Itc21hcnQtYnJhY2VzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzkgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5z
cGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3MudGV4dEVkaXRvclNtYXJ0QnJhY2VzLmVuYWJsZUZv
clRlc3QoKTsKLQotICAgIHZhciB0ZXh0RWRpdG9yID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVUZXN0
RWRpdG9yKCk7Ci0gICAgdGV4dEVkaXRvci5vdmVycmlkZVZpZXdwb3J0Rm9yVGVzdCgwLCB1bmRl
ZmluZWQsIDMpOwotICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsK
LSAgICB0ZXh0RWRpdG9yLnNldFJlYWRPbmx5KGZhbHNlKTsKLSAgICB0ZXh0RWRpdG9yLmVsZW1l
bnQuZm9jdXMoKTsKLQotICAgIHRleHRFZGl0b3Iuc2V0VGV4dCgiIik7Ci0gICAgdGV4dEVkaXRv
ci5zZXRTZWxlY3Rpb24oV2ViSW5zcGVjdG9yLlRleHRSYW5nZS5jcmVhdGVGcm9tTG9jYXRpb24o
MCwgMCkpOwotCi0gICAgZnVuY3Rpb24gZHVtcChuZXh0KQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoSW5zcGVjdG9yVGVzdC50ZXh0V2l0aFNlbGVjdGlvbih0ZXh0RWRp
dG9yLnRleHQoKSwgdGV4dEVkaXRvci5zZWxlY3Rpb24oKSkpOwotICAgICAgICBuZXh0KCk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gd2FpdEFuZER1bXAobmV4dCkKLSAgICB7Ci0gICAgICAgIHNl
dFRpbWVvdXQoZHVtcC5iaW5kKHRoaXMsIG5leHQpKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBr
ZXlEb3duKGNoYXJhY3RlcikKLSAgICB7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oY2hh
cmFjdGVyLCBbXSk7Ci0gICAgfQotCi0gICAgdmFyIGluc2VydFRleHQgPSB0ZXh0SW5wdXRDb250
cm9sbGVyLmluc2VydFRleHQuYmluZCh0ZXh0SW5wdXRDb250cm9sbGVyKTsKLQotICAgIEluc3Bl
Y3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdHlwZUZ1bmN0aW9uTmFt
ZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnNlcnRUZXh0KCJmdW5jdGlvbiBteU1h
eCIpOwotICAgICAgICAgICAgd2FpdEFuZER1bXAobmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdHlwZU9wZW5pbmdSb3VuZEJyYWNlKG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGtleURvd24oIigiKTsKLSAgICAgICAgICAgIGR1bXAobmV4dCk7Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gdHlwZUZ1bmN0aW9uQXJndW1lbnRzKG5leHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGluc2VydFRleHQoImEsIGIiKTsKLSAgICAgICAgICAgIHdhaXRBbmRE
dW1wKG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHR5cGVDbG9zaW5nQnJh
Y2UobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAga2V5RG93bigiKSIpOwotICAgICAgICAg
ICAgZHVtcChuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0eXBlT3Blbmlu
Z0N1cmx5QnJhY2UobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAga2V5RG93bigieyIpOwot
ICAgICAgICAgICAgZHVtcChuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0
eXBlRW50ZXIobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAga2V5RG93bigiXG4iKTsKLSAg
ICAgICAgICAgIGR1bXAobmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdHlw
ZVJldHVyblN0YXRlbWVudChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnNlcnRUZXh0
KCJyZXR1cm4gIik7Ci0gICAgICAgICAgICB3YWl0QW5kRHVtcChuZXh0KTsKLSAgICAgICAgfSwK
LQotICAgICAgICBmdW5jdGlvbiB0eXBlTmVzdGVkQnJhY2VzKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGtleURvd24oIigiKTsKLSAgICAgICAgICAgIGtleURvd24oInsiKTsKLSAgICAg
ICAgICAgIGtleURvd24oIigiKTsKLSAgICAgICAgICAgIGR1bXAobmV4dCk7Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gaGl0QmFja3NwYWNlVHJpcHBsZVRpbWVzKG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGtleURvd24oIlxiIik7Ci0gICAgICAgICAgICBrZXlEb3duKCJc
YiIpOwotICAgICAgICAgICAga2V5RG93bigiXGIiKTsKLSAgICAgICAgICAgIGR1bXAobmV4dCk7
Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdHlwZU1hdGhNYXgobmV4dCkKLSAgICAg
ICAgewotICAgICAgICAgICAgaW5zZXJ0VGV4dCgiTWF0aC5tYXgoYSwgYik7Iik7Ci0gICAgICAg
ICAgICB3YWl0QW5kRHVtcChuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiBz
ZXRDdXJzb3JCZWZvcmVDbG9zaW5nQ3VybHlCcmFjZShuZXh0KQotICAgICAgICB7Ci0gICAgICAg
ICAgICB0ZXh0RWRpdG9yLnNldFNlbGVjdGlvbihXZWJJbnNwZWN0b3IuVGV4dFJhbmdlLmNyZWF0
ZUZyb21Mb2NhdGlvbigyLCAwKSk7Ci0gICAgICAgICAgICBkdW1wKG5leHQpOwotICAgICAgICB9
LAotCi0gICAgICAgIGZ1bmN0aW9uIHR5cGVJbkNsb3NpbmdDdXJseUJyYWNlKG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGtleURvd24oIn0iKTsKLSAgICAgICAgICAgIGR1bXAobmV4dCk7
Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gZ290b1ZlcnlCZWdpbm5pbmcobmV4dCkK
LSAgICAgICAgewotICAgICAgICAgICAgdGV4dEVkaXRvci5zZXRTZWxlY3Rpb24oV2ViSW5zcGVj
dG9yLlRleHRSYW5nZS5jcmVhdGVGcm9tTG9jYXRpb24oMCwgMCkpOwotICAgICAgICAgICAgZHVt
cChuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0eXBlT3BlbmluZ1JvdW5k
QW5kQ3VybHlCcmFjZXMobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAga2V5RG93bigiKCIp
OwotICAgICAgICAgICAga2V5RG93bigieyIpOwotICAgICAgICAgICAgd2FpdEFuZER1bXAobmV4
dCk7Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpOyI+Ci08cD4KLVRoaXMgdGVzdCBjaGVja3MgdGV4dCBlZGl0b3Ig
c21hcnQgYnJhY2VzIGZ1bmN0aW9uYWxpdHkuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItdG9rZW4t
YXQtcG9zaXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90
ZXh0LWVkaXRvci10b2tlbi1hdC1wb3NpdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM2ZjgwODkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VkaXRvci90ZXh0LWVkaXRvci10b2tlbi1hdC1wb3NpdGlvbi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi1UZXN0IGVkaXRvciB0b2tlbkF0VGV4dFBvc2l0
aW9uIG1ldGhvZC4KLQotCi1SdW5uaW5nOiB0ZXN0SGlnaGxpZ2h0ZWRUZXh0Ci1MaW5lOiBmdW5j
dGlvbiBmb28oYSwgYikgewotQ29sdW1uICMwIChjaGFyICdmJykgLSB0b2tlbjogeyJzdGFydENv
bHVtbiI6MCwiZW5kQ29sdW1uIjo3LCJ0eXBlIjoiamF2YXNjcmlwdC1rZXl3b3JkIn0KLUNvbHVt
biAjMTAgKGNoYXIgJ28nKSAtIHRva2VuOiB7InN0YXJ0Q29sdW1uIjo5LCJlbmRDb2x1bW4iOjEx
LCJ0eXBlIjoiamF2YXNjcmlwdC1pZGVudCJ9Ci1Db2x1bW4gIzEzIChjaGFyICdhJykgLSB0b2tl
bjogeyJzdGFydENvbHVtbiI6MTMsImVuZENvbHVtbiI6MTMsInR5cGUiOiJqYXZhc2NyaXB0LWlk
ZW50In0KLUxpbmU6ICAgICB2YXIgZiA9IC8uYS8udGVzdChhKTsgLyoKLUNvbHVtbiAjOCAoY2hh
ciAnZicpIC0gdG9rZW46IHsic3RhcnRDb2x1bW4iOjgsImVuZENvbHVtbiI6OCwidHlwZSI6Imph
dmFzY3JpcHQtaWRlbnQifQotQ29sdW1uICMxNCAoY2hhciAnYScpIC0gdG9rZW46IHsic3RhcnRD
b2x1bW4iOjEyLCJlbmRDb2x1bW4iOjE1LCJ0eXBlIjoiamF2YXNjcmlwdC1yZWdleHAifQotQ29s
dW1uICMxOSAoY2hhciAncycpIC0gdG9rZW46IHsic3RhcnRDb2x1bW4iOjE3LCJlbmRDb2x1bW4i
OjIwLCJ0eXBlIjoiamF2YXNjcmlwdC1pZGVudCJ9Ci1MaW5lOiB0aGlzIGlzIGEgY29tbWVudCAq
LwotQ29sdW1uICMwIChjaGFyICd0JykgLSB0b2tlbjogeyJzdGFydENvbHVtbiI6MCwiZW5kQ29s
dW1uIjoxOSwidHlwZSI6ImphdmFzY3JpcHQtY29tbWVudCJ9Ci1Db2x1bW4gIzUgKGNoYXIgJ2kn
KSAtIHRva2VuOiB7InN0YXJ0Q29sdW1uIjowLCJlbmRDb2x1bW4iOjE5LCJ0eXBlIjoiamF2YXNj
cmlwdC1jb21tZW50In0KLUxpbmU6ICAgICByZXR1cm4gZiArICJsb29vbmd3b3JkIjsKLUNvbHVt
biAjNSAoY2hhciAnZScpIC0gdG9rZW46IHsic3RhcnRDb2x1bW4iOjQsImVuZENvbHVtbiI6OSwi
dHlwZSI6ImphdmFzY3JpcHQta2V5d29yZCJ9Ci1Db2x1bW4gIzIwIChjaGFyICduJykgLSB0b2tl
bjogeyJzdGFydENvbHVtbiI6MTUsImVuZENvbHVtbiI6MjYsInR5cGUiOiJqYXZhc2NyaXB0LXN0
cmluZyJ9Ci0KLVJ1bm5pbmc6IHRlc3RVbmhpZ2hsaWdodGVkVGV4dAotTGluZTogZnVuY3Rpb24g
Zm9vKGEsIGIpIHsKLUNvbHVtbiAjMCAoY2hhciAnZicpIC0gdG9rZW46IHsic3RhcnRDb2x1bW4i
OjAsImVuZENvbHVtbiI6NywidHlwZSI6ImphdmFzY3JpcHQta2V5d29yZCJ9Ci1Db2x1bW4gIzEw
IChjaGFyICdvJykgLSB0b2tlbjogeyJzdGFydENvbHVtbiI6OSwiZW5kQ29sdW1uIjoxMSwidHlw
ZSI6ImphdmFzY3JpcHQtaWRlbnQifQotQ29sdW1uICMxMyAoY2hhciAnYScpIC0gdG9rZW46IHsi
c3RhcnRDb2x1bW4iOjEzLCJlbmRDb2x1bW4iOjEzLCJ0eXBlIjoiamF2YXNjcmlwdC1pZGVudCJ9
Ci1MaW5lOiAgICAgdmFyIGYgPSAvLmEvLnRlc3QoYSk7IC8qCi1Db2x1bW4gIzggKGNoYXIgJ2Yn
KSAtIHRva2VuOiB7InN0YXJ0Q29sdW1uIjo4LCJlbmRDb2x1bW4iOjgsInR5cGUiOiJqYXZhc2Ny
aXB0LWlkZW50In0KLUNvbHVtbiAjMTQgKGNoYXIgJ2EnKSAtIHRva2VuOiB7InN0YXJ0Q29sdW1u
IjoxMiwiZW5kQ29sdW1uIjoxNSwidHlwZSI6ImphdmFzY3JpcHQtcmVnZXhwIn0KLUNvbHVtbiAj
MTkgKGNoYXIgJ3MnKSAtIHRva2VuOiB7InN0YXJ0Q29sdW1uIjoxNywiZW5kQ29sdW1uIjoyMCwi
dHlwZSI6ImphdmFzY3JpcHQtaWRlbnQifQotTGluZTogdGhpcyBpcyBhIGNvbW1lbnQgKi8KLUNv
bHVtbiAjMCAoY2hhciAndCcpIC0gdG9rZW46IHsic3RhcnRDb2x1bW4iOjAsImVuZENvbHVtbiI6
MywidHlwZSI6ImphdmFzY3JpcHQta2V5d29yZCJ9Ci1Db2x1bW4gIzUgKGNoYXIgJ2knKSAtIHRv
a2VuOiB7InN0YXJ0Q29sdW1uIjo1LCJlbmRDb2x1bW4iOjYsInR5cGUiOiJqYXZhc2NyaXB0LWlk
ZW50In0KLUxpbmU6ICAgICByZXR1cm4gZiArICJsb29vbmd3b3JkIjsKLUNvbHVtbiAjNSAoY2hh
ciAnZScpIC0gdG9rZW46IHsic3RhcnRDb2x1bW4iOjQsImVuZENvbHVtbiI6OSwidHlwZSI6Imph
dmFzY3JpcHQta2V5d29yZCJ9Ci1Db2x1bW4gIzIwIChjaGFyICduJykgLSB0b2tlbjogeyJzdGFy
dENvbHVtbiI6MTUsImVuZENvbHVtbiI6MjYsInR5cGUiOiJqYXZhc2NyaXB0LXN0cmluZyJ9Ci0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItdG9r
ZW4tYXQtcG9zaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1l
ZGl0b3ItdG9rZW4tYXQtcG9zaXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNjJhM2U1OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3Rl
eHQtZWRpdG9yLXRva2VuLWF0LXBvc2l0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NiAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJlZGl0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2
YXIgdGV4dCA9IFsKLSAgICAgICAgImZ1bmN0aW9uIGZvbyhhLCBiKSB7IiwKLSAgICAgICAgIiAg
ICB2YXIgZiA9IC8uYS8udGVzdChhKTsgLyoiLAotICAgICAgICAidGhpcyBpcyBhIGNvbW1lbnQg
Ki8iLAotICAgICAgICAiICAgIHJldHVybiBmICsgXCJsb29vbmd3b3JkXCI7IgotICAgIF07Ci0K
LSAgICB2YXIgcG9zaXRpb25zID0gWwotICAgICAgICBbMCwgMTAsIDEzXSwKLSAgICAgICAgWzgs
IDE0LCAxOV0sCi0gICAgICAgIFswLCA1XSwKLSAgICAgICAgWzUsIDIwXQotICAgIF07Ci0gICAg
ZnVuY3Rpb24gdGVzdFRva2VuQXRQb3NpdGlvbih0ZXh0RWRpdG9yKQotICAgIHsKLSAgICAgICAg
Zm9yKHZhciBpID0gMDsgaSA8IHBvc2l0aW9ucy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
dmFyIGNvbHVtbnMgPSBwb3NpdGlvbnNbaV07Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiTGluZTogIiArIHRleHRbaV0pOwotICAgICAgICAgICAgZm9yKHZhciBqID0gMDsg
aiA8IGNvbHVtbnMubGVuZ3RoOyArK2opIHsKLSAgICAgICAgICAgICAgICB2YXIgY29sdW1uID0g
Y29sdW1uc1tqXTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ29s
dW1uICMiICsgY29sdW1uICsgIiAoY2hhciAnIiArIHRleHRbaV0uY2hhckF0KGNvbHVtbikgKyAi
JykgLSB0b2tlbjogIiArIEpTT04uc3RyaW5naWZ5KHRleHRFZGl0b3IudG9rZW5BdFRleHRQb3Np
dGlvbihpLCBjb2x1bW4pKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RIaWdo
bGlnaHRlZFRleHQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JIaWdobGlnaHRlci5fTWF4TGluZUNvdW50ID0gMTAwMDsKLSAgICAgICAgICAgIHZh
ciB0ZXh0RWRpdG9yID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVUZXN0RWRpdG9yKCk7Ci0gICAgICAg
ICAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gInRleHQvamF2YXNjcmlwdCI7Ci0gICAgICAgICAg
ICB0ZXh0RWRpdG9yLnNldFRleHQodGV4dC5qb2luKCJcbiIpKTsKLSAgICAgICAgICAgIHRlc3RU
b2tlbkF0UG9zaXRpb24odGV4dEVkaXRvcik7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFVuaGlnaGxpZ2h0ZWRUZXh0KG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIC8vIHN3aXRjaCBoaWdobGlnaHQgb2ZmCi0gICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyLl9NYXhMaW5lQ291bnQgPSAwOwotICAg
ICAgICAgICAgdmFyIHRleHRFZGl0b3IgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVRlc3RFZGl0b3Io
KTsKLSAgICAgICAgICAgIHRleHRFZGl0b3IubWltZVR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsK
LSAgICAgICAgICAgIHRleHRFZGl0b3Iuc2V0VGV4dCh0ZXh0LmpvaW4oIlxuIikpOwotICAgICAg
ICAgICAgdGVzdFRva2VuQXRQb3NpdGlvbih0ZXh0RWRpdG9yKTsKLSAgICAgICAgICAgIG5leHQo
KTsKLSAgICAgICAgfSwKLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdCBlZGl0b3IgdG9rZW5BdFRleHRQb3NpdGlv
biBtZXRob2QuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXR5cGUtb3Zlci1kZWNvcmF0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItdHlwZS1v
dmVyLWRlY29yYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiYTg3NWI2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4
dC1lZGl0b3ItdHlwZS1vdmVyLWRlY29yYXRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMjYgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHR5cGluZyBvdmVyIHRoZSBk
ZWNvcmF0aW9uIGRvZXMgbm90IGNvbGxlY3QgZGVjb3JhdGlvbiB0ZXh0IGFzIGEgcGFydCBvZiBk
YW1hZ2VkIERPTS4KLQotQ2h1bmsgbW9kZWwKLUNodW5rIFswXSAwOjEwIChleHBhbmRlZCkKLUVk
aXRvciBET00KLVswXSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bh
bj4wPC9zcGFuPjwvZGl2PgotWzFdICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRl
bnQiPjxzcGFuPjE8L3NwYW4+PC9kaXY+Ci1bMl0gICAgICAgPGRpdiBjbGFzcz0id2Via2l0LWxp
bmUtY29udGVudCI+PHNwYW4+Mjwvc3Bhbj48L2Rpdj4KLVszXSAgICAgICA8ZGl2IGNsYXNzPSJ3
ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4zPC9zcGFuPjwvZGl2PgotWzRdICAgICAgIDxkaXYg
Y2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPjQ8L3NwYW4+PC9kaXY+Ci1bNTo2XSAg
ICAgPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+NTwvc3Bhbj48ZGl2IGNs
YXNzPSJ3ZWJraXQtbGluZS1kZWNvcmF0aW9ucyI+PHNwYW4+RGVjb3JhdGlvbiBjb250ZW50PC9z
cGFuPjwvZGl2PjwvZGl2PgotWzZdICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRl
bnQiPjxzcGFuPjY8L3NwYW4+PC9kaXY+Ci1bN10gICAgICAgPGRpdiBjbGFzcz0id2Via2l0LWxp
bmUtY29udGVudCI+PHNwYW4+Nzwvc3Bhbj48L2Rpdj4KLVs4XSAgICAgICA8ZGl2IGNsYXNzPSJ3
ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj44PC9zcGFuPjwvZGl2PgotWzldICAgICAgIDxkaXYg
Y2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPjk8L3NwYW4+PC9kaXY+Ci1FZGl0b3Ig
RE9NCi1bMF0gICAgICAgPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+MDwv
c3Bhbj48L2Rpdj4KLVsxXSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48
c3Bhbj4xPC9zcGFuPjwvZGl2PgotWzJdICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNv
bnRlbnQiPjxzcGFuPjI8L3NwYW4+PC9kaXY+Ci1bM10gICAgICAgPGRpdiBjbGFzcz0id2Via2l0
LWxpbmUtY29udGVudCI+PHNwYW4+Mzwvc3Bhbj48L2Rpdj4KLVs0XSAgICAgICA8ZGl2IGNsYXNz
PSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj40YTU8L3NwYW4+PC9kaXY+Ci1bNV0gICAgICAg
PGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+Njwvc3Bhbj48L2Rpdj4KLVs2
XSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj43PC9zcGFuPjwv
ZGl2PgotWzddICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPjg8
L3NwYW4+PC9kaXY+Ci1bOF0gICAgICAgPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+
PHNwYW4+OTwvc3Bhbj48L2Rpdj4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VkaXRvci90ZXh0LWVkaXRvci10eXBlLW92ZXItZGVjb3JhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci10eXBlLW92ZXItZGVjb3JhdGlvbi5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYWVmZTZhLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItdHlwZS1vdmVyLWRlY29yYXRp
b24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImVkaXRvci10ZXN0LmpzP2Zvbz0xNDMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHRleHRFZGl0b3IgPSBJ
bnNwZWN0b3JUZXN0LmNyZWF0ZVRlc3RFZGl0b3IoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmZpbGxF
ZGl0b3JXaXRoVGV4dCh0ZXh0RWRpdG9yLCAxMCk7Ci0gICAgdmFyIHRleHRNb2RlbCA9IHRleHRF
ZGl0b3IuX3RleHRNb2RlbDsKLQotICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckNodW5rcyh0
ZXh0RWRpdG9yKTsKLSAgICB2YXIgZGVjb3JhdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIik7Ci0gICAgZGVjb3JhdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSAiRGVj
b3JhdGlvbiBjb250ZW50IjsKLSAgICB0ZXh0RWRpdG9yLmFkZERlY29yYXRpb24oNSwgZGVjb3Jh
dGlvbkVsZW1lbnQpOwotICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckRPTSh0ZXh0RWRpdG9y
KTsKLQotICAgIC8vIEluc2VydCBFbnRlciBiZWZvcmUgdGhlIGRlY29yYXRpb24KLSAgICB2YXIg
bGluZVJvd0VsZW1lbnQgPSBJbnNwZWN0b3JUZXN0LmdldExpbmVFbGVtZW50KHRleHRFZGl0b3Is
IDUpOwotICAgIGxpbmVSb3dFbGVtZW50LnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJhIiksIGxpbmVSb3dFbGVtZW50KTsKLSAgICB0ZXh0RWRpdG9y
Ll9tYWluUGFuZWwuX2FwcGx5RG9tVXBkYXRlcyh7c3RhcnQ6NCwgZW5kOjV9KTsKLSAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBFZGl0b3JET00odGV4dEVkaXRvcik7Ci0gICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLTxwPgotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHR5cGluZyBvdmVyIHRoZSBk
ZWNvcmF0aW9uIGRvZXMgbm90IGNvbGxlY3QgZGVjb3JhdGlvbiB0ZXh0IGFzIGEgcGFydCBvZiBk
YW1hZ2VkIERPTS4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci11bmRvLXJlZG8tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci11bmRvLXJlZG8tZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMmIwODcyLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItdW5kby1yZWRv
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ0OCArMCwwIEBACi1UZXN0cyB1bmRv
L3JlZG8gb3BlcmF0aW9ucyBpbiB0aGUgZWRpdG9yIG1vZGVsLgotCi0KLVJ1bm5pbmc6IHRlc3RV
bmRvUmVkb1RhYgotVGV4dCBiZWZvcmUgZWRpdDoKLTEKLTIKLTMKLQotVGV4dCBhZnRlciBlZGl0
OgotMQotCXwyCi0zCi0KLVRleHQgYWZ0ZXIgdW5kbzoKLTEKLXwyCi0zCi0KLVRleHQgYWZ0ZXIg
cmVkbzoKLTEKLQl8MgotMwotCi0KLVJ1bm5pbmc6IHRlc3RDb25zZWN1dGl2ZUNoYXJhY3RlcnNB
bmROZXdMaW5lcwotVGV4dCBiZWZvcmUgZWRpdDoKLWZ1bmN0aW9uIGZvbygpCi17Ci0KLX0KLQot
VGV4dCBhZnRlciBlZGl0OgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXoo
KTsKLSAgICBmb28oKTt8Ci19Ci0KLVRleHQgYWZ0ZXIgZmlyc3QgdW5kbzoKLWZ1bmN0aW9uIGZv
bygpCi17Ci0gICAgYmFyKCk7Ci0gICAgYmF6KCk7fAotfQotCi1UZXh0IGFmdGVyIHNlY29uZCB1
bmRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTt8Ci19Ci0KLVRleHQgYWZ0ZXIgdGhp
cmQgdW5kbzoKLWZ1bmN0aW9uIGZvbygpCi17Ci18Ci19Ci0KLVRleHQgYWZ0ZXIgZmlyc3QgcmVk
bzoKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgYmFyKCk7fAotfQotCi1UZXh0IGFmdGVyIHNlY29u
ZCByZWRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTt8Ci19Ci0K
LVRleHQgYWZ0ZXIgdGhpcmQgcmVkbzoKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgYmFyKCk7Ci0g
ICAgYmF6KCk7Ci0gICAgZm9vKCk7fAotfQotCi0KLVJ1bm5pbmc6IHRlc3RFZGl0UmFuZ2VXaXRo
VGhlU2FtZVRleHRBc09yaWdpbmFsCi1UZXh0IGJlZm9yZSBlZGl0OgotZnVuY3Rpb24gZm9vKCkK
LXsKLQotfQotCi1UZXh0IGFmdGVyIGVkaXQ6Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigp
OwotICAgIGJheigpOwotICAgIGZvbygpO3wKLX0KLQotVGV4dCBhZnRlciBwYXN0ZSBvZiB0aGUg
c2FtZSB0ZXh0OgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTsKLSAg
ICBmb28oKTt8Ci19Ci0KLVRleHQgYWZ0ZXIgZmlyc3QgdW5kbzoKLWZ1bmN0aW9uIGZvbygpCi17
Ci0gICAgYmFyKCk7Ci0+ICAgIGJheigpOwotPCAgICBmb28oKTsKLX0KLQotVGV4dCBhZnRlciBz
ZWNvbmQgdW5kbzoKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgYmFyKCk7Ci0gICAgYmF6KCk7fAot
fQotCi1UZXh0IGFmdGVyIGZpcnN0IHJlZG86Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigp
OwotICAgIGJheigpOwotICAgIGZvbygpO3wKLX0KLQotVGV4dCBhZnRlciBzZWNvbmQgcmVkbzoK
LWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgYmFyKCk7Ci0gICAgYmF6KCk7Ci18ICAgIGZvbygpOwot
fQotCi0KLVJ1bm5pbmc6IHRlc3REZWxldGUKLVRleHQgYmVmb3JlIGVkaXQ6Ci1mdW5jdGlvbiBm
b28oKQotewotCi19Ci0KLVRleHQgYWZ0ZXIgZWRpdDoKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAg
YmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCk7fAotfQotCi1UZXh0IGFmdGVyIGRlbGV0ZXM6
Ci1mdW5jdGlvbiBmb28oKQotewotfAotfQotCi1UZXh0IGFmdGVyIGZpcnN0IHVuZG86Ci1mdW5j
dGlvbiBmb28oKQotewotfCAgICBiYXIoKTsKLSAgICBiYXooKTsKLSAgICBmb28oKTsKLX0KLQot
VGV4dCBhZnRlciBzZWNvbmQgdW5kbzoKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgYmFyKCk7Ci0g
ICAgYmF6KCk7fAotfQotCi1UZXh0IGFmdGVyIGZpcnN0IHJlZG86Ci1mdW5jdGlvbiBmb28oKQot
ewotICAgIGJhcigpOwotICAgIGJheigpOwotICAgIGZvbygpO3wKLX0KLQotVGV4dCBhZnRlciBz
ZWNvbmQgcmVkbzoKLWZ1bmN0aW9uIGZvbygpCi17Ci18Ci19Ci0KLQotUnVubmluZzogdGVzdEJh
Y2tzcGFjZQotVGV4dCBiZWZvcmUgZWRpdDoKLWZ1bmN0aW9uIGZvbygpCi17Ci0KLX0KLQotVGV4
dCBhZnRlciBlZGl0OgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTsK
LSAgICBmb28oKTt8Ci19Ci0KLVRleHQgYWZ0ZXIgYmFja3NwYWNlczoKLWZ1bmN0aW9uIGZvbygp
Ci17Ci18Ci19Ci0KLVRleHQgYWZ0ZXIgZmlyc3QgdW5kbzoKLWZ1bmN0aW9uIGZvbygpCi17Ci0g
ICAgYmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCk7fAotfQotCi1UZXh0IGFmdGVyIHNlY29u
ZCB1bmRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTt8Ci19Ci0K
LVRleHQgYWZ0ZXIgZmlyc3QgcmVkbzoKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgYmFyKCk7Ci0g
ICAgYmF6KCk7Ci0gICAgZm9vKCk7fAotfQotCi1UZXh0IGFmdGVyIHNlY29uZCByZWRvOgotZnVu
Y3Rpb24gZm9vKCkKLXsKLXwKLX0KLQotCi1SdW5uaW5nOiB0ZXN0QmFja3NwYWNlQW5kRGVsZXRl
SW5EaWZmZXJlbnRMaW5lcwotVGV4dCBiZWZvcmUgZWRpdDoKLWZ1bmN0aW9uIGZvbygpCi17Ci0K
LX0KLQotVGV4dCBhZnRlciBlZGl0OgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAg
ICBiYXooKTsKLSAgICBmb28oKTt8Ci19Ci0KLVRleHQgYWZ0ZXIgYmFja3NwYWNlOgotZnVuY3Rp
b24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTsKLSAgICBmb28oKXwKLX0KLQotVGV4
dCBhZnRlciBkZWxldGU6Ci1mdW5jdGlvbiBmb28oKQotewotfCAgIGJhcigpOwotICAgIGJheigp
OwotICAgIGZvbygpCi19Ci0KLVRleHQgYWZ0ZXIgZmlyc3QgdW5kbzoKLWZ1bmN0aW9uIGZvbygp
Ci17Ci18ICAgIGJhcigpOwotICAgIGJheigpOwotICAgIGZvbygpCi19Ci0KLVRleHQgYWZ0ZXIg
c2Vjb25kIHVuZG86Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigpOwotICAgIGJheigpOwot
ICAgIGZvbygpO3wKLX0KLQotVGV4dCBhZnRlciB0aGlyZCB1bmRvOgotZnVuY3Rpb24gZm9vKCkK
LXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTt8Ci19Ci0KLVRleHQgYWZ0ZXIgZmlyc3QgcmVkbzoK
LWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgYmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCk7fAot
fQotCi1UZXh0IGFmdGVyIHNlY29uZCByZWRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIo
KTsKLSAgICBiYXooKTsKLSAgICBmb28oKXwKLX0KLQotVGV4dCBhZnRlciB0aGlyZCByZWRvOgot
ZnVuY3Rpb24gZm9vKCkKLXsKLXwgICBiYXIoKTsKLSAgICBiYXooKTsKLSAgICBmb28oKQotfQot
Ci0KLVJ1bm5pbmc6IHRlc3RQYXN0ZVNldmVyYWxUaW1lcwotVGV4dCBiZWZvcmUgZWRpdDoKLWZ1
bmN0aW9uIGZvbygpCi17Ci0KLX0KLQotVGV4dCBhZnRlciBlZGl0OgotZnVuY3Rpb24gZm9vKCkK
LXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTsKLSAgICBmb28oKTt8Ci19Ci0KLVRleHQgYWZ0ZXIg
Zmlyc3QgcGFzdGU6Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigpOwotICAgIGJheigpOwot
ICAgIGZvbygpOzQyfAotfQotCi1UZXh0IGFmdGVyIHNlY29uZCBwYXN0ZToKLWZ1bmN0aW9uIGZv
bygpCi17Ci0gICAgYmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCk7NDI0MnwKLX0KLQotVGV4
dCBhZnRlciBmaXJzdCB1bmRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBi
YXooKTsKLSAgICBmb28oKTs0MnwKLX0KLQotVGV4dCBhZnRlciBzZWNvbmQgdW5kbzoKLWZ1bmN0
aW9uIGZvbygpCi17Ci0gICAgYmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCk7fAotfQotCi1U
ZXh0IGFmdGVyIHRoaXJkIHVuZG86Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigpOwotICAg
IGJheigpO3wKLX0KLQotVGV4dCBhZnRlciBmaXJzdCByZWRvOgotZnVuY3Rpb24gZm9vKCkKLXsK
LSAgICBiYXIoKTsKLSAgICBiYXooKTsKLSAgICBmb28oKTt8Ci19Ci0KLVRleHQgYWZ0ZXIgc2Vj
b25kIHJlZG86Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigpOwotICAgIGJheigpOwotICAg
IGZvbygpOzQyfAotfQotCi1UZXh0IGFmdGVyIHRoaXJkIHJlZG86Ci1mdW5jdGlvbiBmb28oKQot
ewotICAgIGJhcigpOwotICAgIGJheigpOwotICAgIGZvbygpOzQyNDJ8Ci19Ci0KLQotUnVubmlu
ZzogdGVzdFNlbGVjdGlvbkFmdGVyVW5kb1JlZG8KLVRleHQgYmVmb3JlIGVkaXQ6Ci1mdW5jdGlv
biBmb28oKQotewotCi19Ci0KLVRleHQgYWZ0ZXIgYmFja3NwYWNlOgotZnVuY3Rpb24gZm9vKCkK
LXt8Ci19Ci0KLVRleHQgYWZ0ZXIgZmlyc3QgdW5kbzoKLWZ1bmN0aW9uIGZvbygpCi17Ci18Ci19
Ci0KLVRleHQgYWZ0ZXIgZmlyc3QgcmVkbzoKLWZ1bmN0aW9uIGZvbygpCi17fAotfQotCi1UZXh0
IGFmdGVyIHNlY29uZCB1bmRvOgotZnVuY3Rpb24gZm9vKCkKLXs+Ci08Ci19Ci0KLVRleHQgYWZ0
ZXIgZGVsZXRpbmcgc2VsZWN0aW9uOgotZnVuY3Rpb24gZm9vKCkKLXt8Ci19Ci0KLVRleHQgYWZ0
ZXIgZmlyc3QgdW5kbzoKLWZ1bmN0aW9uIGZvbygpCi17PgotPAotfQotCi1UZXh0IGFmdGVyIGZp
cnN0IHJlZG86Ci1mdW5jdGlvbiBmb28oKQote3wKLX0KLQotVGV4dCBhZnRlciBzZWNvbmQgdW5k
bzoKLWZ1bmN0aW9uIGZvbygpCi17PgotPAotfQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItdW5kby1yZWRvLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXVuZG8tcmVkby5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkOTI5MWExLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItdW5kby1yZWRvLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwyMjkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iZWRpdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQot
ewotICAgIGZ1bmN0aW9uIGR1bXBUZXh0TW9kZWwocHJlZml4LCB0ZXh0TW9kZWwsIHJhbmdlKQot
ICAgIHsKLSAgICAgICAgdmFyIHRleHQgPSBJbnNwZWN0b3JUZXN0LnRleHRXaXRoU2VsZWN0aW9u
KHRleHRNb2RlbC50ZXh0KCksIHJhbmdlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQocHJlZml4ICsgdGV4dCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdHlwZVRleHQodGV4dE1v
ZGVsLCBzdGFydFJhbmdlLCB0ZXh0KQotICAgIHsKLSAgICAgICAgdmFyIHJhbmdlID0gc3RhcnRS
YW5nZTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgKytpKQotICAg
ICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwuZWRpdFJhbmdlKHJhbmdlLCB0ZXh0W2ldKS5jb2xs
YXBzZVRvRW5kKCk7Ci0gICAgICAgIHJldHVybiByYW5nZTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biB0eXBlRGVsZXRlKHRleHRNb2RlbCwgc3RhcnRSYW5nZSwgY291bnQpCi0gICAgewotICAgICAg
ICB2YXIgY291bnQgPSBjb3VudCB8fCAxOwotICAgICAgICB2YXIgcmFuZ2UgPSBzdGFydFJhbmdl
OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAgICAg
IHZhciBkZWxldGVSYW5nZSA9IHJhbmdlLmlzRW1wdHkoKSA/IHRleHRNb2RlbC5ncm93UmFuZ2VS
aWdodChyYW5nZSkgOiByYW5nZTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLmVkaXRS
YW5nZShkZWxldGVSYW5nZSwgIiIsIHJhbmdlKS5jb2xsYXBzZVRvRW5kKCk7Ci0gICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHJhbmdlOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHR5cGVCYWNrc3Bh
Y2UodGV4dE1vZGVsLCBzdGFydFJhbmdlLCBjb3VudCkKLSAgICB7Ci0gICAgICAgIHZhciBjb3Vu
dCA9IGNvdW50IHx8IDE7Ci0gICAgICAgIHZhciByYW5nZSA9IHN0YXJ0UmFuZ2U7Ci0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotICAgICAgICAgICAgdmFyIGJhY2tz
cGFjZVJhbmdlID0gcmFuZ2UuaXNFbXB0eSgpID8gdGV4dE1vZGVsLmdyb3dSYW5nZUxlZnQocmFu
Z2UpIDogcmFuZ2U7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC5lZGl0UmFuZ2UoYmFj
a3NwYWNlUmFuZ2UsICIiLCByYW5nZSkuY29sbGFwc2VUb0VuZCgpOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiByYW5nZTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0
ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RVbmRvUmVkb1RhYihuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICB2YXIgdGV4dE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9k
ZWwoKTsKLSAgICAgICAgICAgIHRleHRNb2RlbC5zZXRUZXh0KCIxXG4yXG4zXG4iKTsKLSAgICAg
ICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYmVmb3JlIGVkaXQ6XG4iLCB0ZXh0TW9kZWwpOwot
ICAgICAgICAgICAgdmFyIHJhbmdlID0gdHlwZVRleHQodGV4dE1vZGVsLCBuZXcgV2ViSW5zcGVj
dG9yLlRleHRSYW5nZSgxLCAwLCAxLCAwKSwgIlx0IikKLSAgICAgICAgICAgIGR1bXBUZXh0TW9k
ZWwoIlRleHQgYWZ0ZXIgZWRpdDpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAg
cmFuZ2UgPSB0ZXh0TW9kZWwudW5kbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4
dCBhZnRlciB1bmRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9
IHRleHRNb2RlbC5yZWRvKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVy
IHJlZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAg
ICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0Q29uc2VjdXRpdmVDaGFyYWN0ZXJzQW5kTmV3
TGluZXMobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHRleHRNb2RlbCA9IG5ldyBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsKCk7Ci0gICAgICAgICAgICB0ZXh0TW9kZWwuc2V0
VGV4dCgiZnVuY3Rpb24gZm9vKClcbntcblxufVxuIik7Ci0gICAgICAgICAgICBkdW1wVGV4dE1v
ZGVsKCJUZXh0IGJlZm9yZSBlZGl0OlxuIiwgdGV4dE1vZGVsKTsKLSAgICAgICAgICAgIHZhciBy
YW5nZSA9IHR5cGVUZXh0KHRleHRNb2RlbCwgbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UoMiwg
MCwgMiwgMCksICIgICAgYmFyKCk7XG4gICAgYmF6KCk7XG4gICAgZm9vKCk7Iik7Ci0gICAgICAg
ICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIGVkaXQ6XG4iLCB0ZXh0TW9kZWwsIHJhbmdl
KTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnVuZG8oKTsKLSAgICAgICAgICAgIGR1
bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgZmlyc3QgdW5kbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2Up
OwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwudW5kbygpOwotICAgICAgICAgICAgZHVt
cFRleHRNb2RlbCgiVGV4dCBhZnRlciBzZWNvbmQgdW5kbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2Up
OwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwudW5kbygpOwotICAgICAgICAgICAgZHVt
cFRleHRNb2RlbCgiVGV4dCBhZnRlciB0aGlyZCB1bmRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7
Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC5yZWRvKCk7Ci0gICAgICAgICAgICBkdW1w
VGV4dE1vZGVsKCJUZXh0IGFmdGVyIGZpcnN0IHJlZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsK
LSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnJlZG8oKTsKLSAgICAgICAgICAgIGR1bXBU
ZXh0TW9kZWwoIlRleHQgYWZ0ZXIgc2Vjb25kIHJlZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsK
LSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnJlZG8oKTsKLSAgICAgICAgICAgIGR1bXBU
ZXh0TW9kZWwoIlRleHQgYWZ0ZXIgdGhpcmQgcmVkbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwot
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RF
ZGl0UmFuZ2VXaXRoVGhlU2FtZVRleHRBc09yaWdpbmFsKG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHZhciB0ZXh0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgp
OwotICAgICAgICAgICAgdmFyIGZ1bmN0aW9uVGV4dCA9ICIgICAgYmFyKCk7XG4gICAgYmF6KCk7
XG4gICAgZm9vKCk7IjsKLSAgICAgICAgICAgIHRleHRNb2RlbC5zZXRUZXh0KCJmdW5jdGlvbiBm
b28oKVxue1xuXG59XG4iKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYmVmb3Jl
IGVkaXQ6XG4iLCB0ZXh0TW9kZWwpOwotICAgICAgICAgICAgdmFyIHJhbmdlID0gdHlwZVRleHQo
dGV4dE1vZGVsLCBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgyLCAwLCAyLCAwKSwgIiAgICBi
YXIoKTtcbiAgICBiYXooKTtcbiAgICBmb28oKTsiKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9k
ZWwoIlRleHQgYWZ0ZXIgZWRpdDpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAg
dGV4dE1vZGVsLmVkaXRSYW5nZShuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgzLCAwLCA0LCAw
KSwgIiAgICBiYXooKTtcbiIpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRl
ciBwYXN0ZSBvZiB0aGUgc2FtZSB0ZXh0OlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAg
ICAgICByYW5nZSA9IHRleHRNb2RlbC51bmRvKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVs
KCJUZXh0IGFmdGVyIGZpcnN0IHVuZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAg
ICAgIHJhbmdlID0gdGV4dE1vZGVsLnVuZG8oKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwo
IlRleHQgYWZ0ZXIgc2Vjb25kIHVuZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAg
ICAgIHJhbmdlID0gdGV4dE1vZGVsLnJlZG8oKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwo
IlRleHQgYWZ0ZXIgZmlyc3QgcmVkbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAg
ICAgcmFuZ2UgPSB0ZXh0TW9kZWwucmVkbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgi
VGV4dCBhZnRlciBzZWNvbmQgcmVkbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAg
ICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3REZWxldGUobmV4
dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHRleHRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvck1vZGVsKCk7Ci0gICAgICAgICAgICB2YXIgZnVuY3Rpb25UZXh0ID0gIiAg
ICBiYXIoKTtcbiAgICBiYXooKTtcbiAgICBmb28oKTsiOwotICAgICAgICAgICAgdGV4dE1vZGVs
LnNldFRleHQoImZ1bmN0aW9uIGZvbygpXG57XG5cbn1cbiIpOwotICAgICAgICAgICAgZHVtcFRl
eHRNb2RlbCgiVGV4dCBiZWZvcmUgZWRpdDpcbiIsIHRleHRNb2RlbCk7Ci0gICAgICAgICAgICB2
YXIgcmFuZ2UgPSB0eXBlVGV4dCh0ZXh0TW9kZWwsIG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdl
KDIsIDAsIDIsIDApLCAiICAgIGJhcigpO1xuICAgIGJheigpO1xuICAgIGZvbygpOyIpOwotICAg
ICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBlZGl0OlxuIiwgdGV4dE1vZGVsLCBy
YW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHR5cGVEZWxldGUodGV4dE1vZGVsLCBuZXcgV2Vi
SW5zcGVjdG9yLlRleHRSYW5nZSgyLCAwLCAyLCAwKSwgZnVuY3Rpb25UZXh0Lmxlbmd0aCk7Ci0g
ICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIGRlbGV0ZXM6XG4iLCB0ZXh0TW9k
ZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnVuZG8oKTsKLSAgICAg
ICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgZmlyc3QgdW5kbzpcbiIsIHRleHRNb2Rl
bCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwudW5kbygpOwotICAgICAg
ICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBzZWNvbmQgdW5kbzpcbiIsIHRleHRNb2Rl
bCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwucmVkbygpOwotICAgICAg
ICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBmaXJzdCByZWRvOlxuIiwgdGV4dE1vZGVs
LCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC5yZWRvKCk7Ci0gICAgICAg
ICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIHNlY29uZCByZWRvOlxuIiwgdGV4dE1vZGVs
LCByYW5nZSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdEJhY2tzcGFjZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdGV4
dE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwoKTsKLSAgICAgICAgICAg
IHZhciBmdW5jdGlvblRleHQgPSAiICAgIGJhcigpO1xuICAgIGJheigpO1xuICAgIGZvbygpOyI7
Ci0gICAgICAgICAgICB0ZXh0TW9kZWwuc2V0VGV4dCgiZnVuY3Rpb24gZm9vKClcbntcblxufVxu
Iik7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGJlZm9yZSBlZGl0OlxuIiwgdGV4
dE1vZGVsKTsKLSAgICAgICAgICAgIHZhciByYW5nZSA9IHR5cGVUZXh0KHRleHRNb2RlbCwgbmV3
IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UoMiwgMCwgMiwgMCksICIgICAgYmFyKCk7XG4gICAgYmF6
KCk7XG4gICAgZm9vKCk7Iik7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVy
IGVkaXQ6XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdHlwZUJh
Y2tzcGFjZSh0ZXh0TW9kZWwsIHJhbmdlLCBmdW5jdGlvblRleHQubGVuZ3RoKTsKLSAgICAgICAg
ICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgYmFja3NwYWNlczpcbiIsIHRleHRNb2RlbCwg
cmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwudW5kbygpOwotICAgICAgICAg
ICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBmaXJzdCB1bmRvOlxuIiwgdGV4dE1vZGVsLCBy
YW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC51bmRvKCk7Ci0gICAgICAgICAg
ICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIHNlY29uZCB1bmRvOlxuIiwgdGV4dE1vZGVsLCBy
YW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC5yZWRvKCk7Ci0gICAgICAgICAg
ICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIGZpcnN0IHJlZG86XG4iLCB0ZXh0TW9kZWwsIHJh
bmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnJlZG8oKTsKLSAgICAgICAgICAg
IGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgc2Vjb25kIHJlZG86XG4iLCB0ZXh0TW9kZWwsIHJh
bmdlKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlv
biB0ZXN0QmFja3NwYWNlQW5kRGVsZXRlSW5EaWZmZXJlbnRMaW5lcyhuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICB2YXIgdGV4dE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
TW9kZWwoKTsKLSAgICAgICAgICAgIHZhciBmdW5jdGlvblRleHQgPSAiICAgIGJhcigpO1xuICAg
IGJheigpO1xuICAgIGZvbygpOyI7Ci0gICAgICAgICAgICB0ZXh0TW9kZWwuc2V0VGV4dCgiZnVu
Y3Rpb24gZm9vKClcbntcblxufVxuIik7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0
IGJlZm9yZSBlZGl0OlxuIiwgdGV4dE1vZGVsKTsKLSAgICAgICAgICAgIHZhciByYW5nZSA9IHR5
cGVUZXh0KHRleHRNb2RlbCwgbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UoMiwgMCwgMiwgMCks
ICIgICAgYmFyKCk7XG4gICAgYmF6KCk7XG4gICAgZm9vKCk7Iik7Ci0gICAgICAgICAgICBkdW1w
VGV4dE1vZGVsKCJUZXh0IGFmdGVyIGVkaXQ6XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAg
ICAgICAgIHJhbmdlID0gdHlwZUJhY2tzcGFjZSh0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAg
ICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgYmFja3NwYWNlOlxuIiwgdGV4dE1vZGVsLCBy
YW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHR5cGVEZWxldGUodGV4dE1vZGVsLCBuZXcgV2Vi
SW5zcGVjdG9yLlRleHRSYW5nZSgyLCAwLCAyLCAwKSk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1v
ZGVsKCJUZXh0IGFmdGVyIGRlbGV0ZTpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAg
ICAgcmFuZ2UgPSB0ZXh0TW9kZWwudW5kbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgi
VGV4dCBhZnRlciBmaXJzdCB1bmRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAg
ICByYW5nZSA9IHRleHRNb2RlbC51bmRvKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJU
ZXh0IGFmdGVyIHNlY29uZCB1bmRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAg
ICByYW5nZSA9IHRleHRNb2RlbC51bmRvKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJU
ZXh0IGFmdGVyIHRoaXJkIHVuZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAg
IHJhbmdlID0gdGV4dE1vZGVsLnJlZG8oKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRl
eHQgYWZ0ZXIgZmlyc3QgcmVkbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAg
cmFuZ2UgPSB0ZXh0TW9kZWwucmVkbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4
dCBhZnRlciBzZWNvbmQgcmVkbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAg
cmFuZ2UgPSB0ZXh0TW9kZWwucmVkbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4
dCBhZnRlciB0aGlyZCByZWRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICBu
ZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFBhc3RlU2V2ZXJhbFRp
bWVzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB0ZXh0TW9kZWwgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgpOwotICAgICAgICAgICAgdmFyIGZ1bmN0aW9uVGV4
dCA9ICIgICAgYmFyKCk7XG4gICAgYmF6KCk7XG4gICAgZm9vKCk7IjsKLSAgICAgICAgICAgIHRl
eHRNb2RlbC5zZXRUZXh0KCJmdW5jdGlvbiBmb28oKVxue1xuXG59XG4iKTsKLSAgICAgICAgICAg
IGR1bXBUZXh0TW9kZWwoIlRleHQgYmVmb3JlIGVkaXQ6XG4iLCB0ZXh0TW9kZWwpOwotICAgICAg
ICAgICAgdmFyIHJhbmdlID0gdHlwZVRleHQodGV4dE1vZGVsLCBuZXcgV2ViSW5zcGVjdG9yLlRl
eHRSYW5nZSgyLCAwLCAyLCAwKSwgIiAgICBiYXIoKTtcbiAgICBiYXooKTtcbiAgICBmb28oKTsi
KTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgZWRpdDpcbiIsIHRleHRN
b2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwuZWRpdFJhbmdlKHJh
bmdlLCAiNDIiKS5jb2xsYXBzZVRvRW5kKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJU
ZXh0IGFmdGVyIGZpcnN0IHBhc3RlOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAg
ICByYW5nZSA9IHRleHRNb2RlbC5lZGl0UmFuZ2UocmFuZ2UsICI0MiIpLmNvbGxhcHNlVG9FbmQo
KTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgc2Vjb25kIHBhc3RlOlxu
IiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC51bmRv
KCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIGZpcnN0IHVuZG86XG4i
LCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnVuZG8o
KTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgc2Vjb25kIHVuZG86XG4i
LCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnVuZG8o
KTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgdGhpcmQgdW5kbzpcbiIs
IHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwucmVkbygp
OwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBmaXJzdCByZWRvOlxuIiwg
dGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC5yZWRvKCk7
Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIHNlY29uZCByZWRvOlxuIiwg
dGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC5yZWRvKCk7
Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIHRoaXJkIHJlZG86XG4iLCB0
ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAg
ICAgICBmdW5jdGlvbiB0ZXN0U2VsZWN0aW9uQWZ0ZXJVbmRvUmVkbyhuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICB2YXIgdGV4dE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
TW9kZWwoKTsKLSAgICAgICAgICAgIHZhciBmdW5jdGlvblRleHQgPSAiICAgIGJhcigpO1xuICAg
IGJheigpO1xuICAgIGZvbygpOyI7Ci0gICAgICAgICAgICB0ZXh0TW9kZWwuc2V0VGV4dCgiZnVu
Y3Rpb24gZm9vKClcbntcblxufVxuIik7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0
IGJlZm9yZSBlZGl0OlxuIiwgdGV4dE1vZGVsKTsKLSAgICAgICAgICAgIHJhbmdlID0gdHlwZUJh
Y2tzcGFjZSh0ZXh0TW9kZWwsIG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDIsIDAsIDIsIDAp
LCAxKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgYmFja3NwYWNlOlxu
IiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC51bmRv
KCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIGZpcnN0IHVuZG86XG4i
LCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnJlZG8o
KTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgZmlyc3QgcmVkbzpcbiIs
IHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwudW5kbygp
OwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBzZWNvbmQgdW5kbzpcbiIs
IHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0eXBlQmFja3NwYWNlKHRl
eHRNb2RlbCwgbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UoMSwgMSwgMiwgMCksIDEpOwotICAg
ICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBkZWxldGluZyBzZWxlY3Rpb246XG4i
LCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnVuZG8o
KTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgZmlyc3QgdW5kbzpcbiIs
IHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwucmVkbygp
OwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBmaXJzdCByZWRvOlxuIiwg
dGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC51bmRvKCk7
Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIHNlY29uZCB1bmRvOlxuIiwg
dGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0KLSAgICBd
KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
VGVzdHMgdW5kby9yZWRvIG9wZXJhdGlvbnMgaW4gdGhlIGVkaXRvciBtb2RlbC48L3A+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3Rl
eHQtZWRpdG9yLXdvcmQtanVtcHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VkaXRvci90ZXh0LWVkaXRvci13b3JkLWp1bXBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMGU3ZjljYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXdvcmQtanVtcHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNTAzICswLDAgQEAKLVRoaXMgdGVzdCBjaGVja3MgaG93IHRleHQgZWRpdG9y
IGhhbmRsZXMgZGlmZmVyZW50IGN0cmwtYmFzZWQgbW92ZW1lbnRzLCBpLmUuIGN0cmwtbGVmdCwg
Y3RybC1yaWdodCwgY3RybC1zaGlmdC1sZWZ0LCBjdHJsLWJhY2tzcGFjZS4KLQotZnVuY3Rpb24g
dGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAg
ICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfQotCi1S
dW5uaW5nOiB0ZXN0Q3RybFJpZ2h0QXJyb3cKLXxmdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBi
YXIpCi1mdW5jdGlvbnwgdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotZnVuY3Rpb24gdGVzdEZ1bmN0
aW9ufChmb28sIGJhcikKLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbih8Zm9vLCBiYXIpCi1mdW5jdGlv
biB0ZXN0RnVuY3Rpb24oZm9vfCwgYmFyKQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbyx8IGJh
cikKLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcnwpCi1mdW5jdGlvbiB0ZXN0RnVuY3Rp
b24oZm9vLCBiYXIpfAotfHsKLXt8Ci18ICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICBz
b21lRnVuY3Rpb25DYWxsfChiYXIpOwotICAgIHNvbWVGdW5jdGlvbkNhbGwofGJhcik7Ci0gICAg
c29tZUZ1bmN0aW9uQ2FsbChiYXJ8KTsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7fAotfCAg
ICB2YXIgYiA9IDQyOwotICAgIHZhcnwgYiA9IDQyOwotICAgIHZhciBifCA9IDQyOwotICAgIHZh
ciBiID18IDQyOwotICAgIHZhciBiID0gNDJ8OwotICAgIHZhciBiID0gNDI7fAotfCAgICByZXR1
cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLSAgICByZXR1cm58IGEgPT09IDEgPyB0cnVlIDog
ZmFsc2U7Ci0gICAgcmV0dXJuIGF8ID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotICAgIHJldHVybiBh
ID09PXwgMSA/IHRydWUgOiBmYWxzZTsKLSAgICByZXR1cm4gYSA9PT0gMXwgPyB0cnVlIDogZmFs
c2U7Ci0gICAgcmV0dXJuIGEgPT09IDEgP3wgdHJ1ZSA6IGZhbHNlOwotICAgIHJldHVybiBhID09
PSAxID8gdHJ1ZXwgOiBmYWxzZTsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOnwgZmFsc2U7
Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2V8OwotICAgIHJldHVybiBhID09PSAx
ID8gdHJ1ZSA6IGZhbHNlO3wKLXx9Ci19fAotfXwKLQotUnVubmluZzogdGVzdEN0cmxMZWZ0QXJy
b3cKLX18Ci18fQotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlO3wKLSAgICByZXR1
cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZXw7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDog
fGZhbHNlOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSB8OiBmYWxzZTsKLSAgICByZXR1cm4g
YSA9PT0gMSA/IHx0cnVlIDogZmFsc2U7Ci0gICAgcmV0dXJuIGEgPT09IDEgfD8gdHJ1ZSA6IGZh
bHNlOwotICAgIHJldHVybiBhID09PSB8MSA/IHRydWUgOiBmYWxzZTsKLSAgICByZXR1cm4gYSB8
PT09IDEgPyB0cnVlIDogZmFsc2U7Ci0gICAgcmV0dXJuIHxhID09PSAxID8gdHJ1ZSA6IGZhbHNl
OwotICAgIHxyZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLXwgICAgcmV0dXJuIGEgPT09
IDEgPyB0cnVlIDogZmFsc2U7Ci0gICAgdmFyIGIgPSA0Mjt8Ci0gICAgdmFyIGIgPSA0Mnw7Ci0g
ICAgdmFyIGIgPSB8NDI7Ci0gICAgdmFyIGIgfD0gNDI7Ci0gICAgdmFyIHxiID0gNDI7Ci0gICAg
fHZhciBiID0gNDI7Ci18ICAgIHZhciBiID0gNDI7Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIp
O3wKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcnwpOwotICAgIHNvbWVGdW5jdGlvbkNhbGwofGJh
cik7Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbHwoYmFyKTsKLSAgICB8c29tZUZ1bmN0aW9uQ2FsbChi
YXIpOwotfCAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci17fAotfHsKLWZ1bmN0aW9uIHRlc3RG
dW5jdGlvbihmb28sIGJhcil8Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXJ8KQotZnVu
Y3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgfGJhcikKLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb298
LCBiYXIpCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24ofGZvbywgYmFyKQotZnVuY3Rpb24gdGVzdEZ1
bmN0aW9ufChmb28sIGJhcikKLWZ1bmN0aW9uIHx0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi18ZnVu
Y3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotfGZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28s
IGJhcikKLQotUnVubmluZzogdGVzdEN0cmxTaGlmdFJpZ2h0QXJyb3cKLXxmdW5jdGlvbiB0ZXN0
RnVuY3Rpb24oZm9vLCBiYXIpCi0+PmZ1bmN0aW9uPDwKLT4+ZnVuY3Rpb24gdGVzdEZ1bmN0aW9u
PDwKLT4+ZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKDw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihm
b288PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLDw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5j
dGlvbihmb28sIGJhcjw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcik8PAotPj5m
dW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi08PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rp
b24oZm9vLCBiYXIpCi17PDwKLT4+ZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewot
PDwKLT4+ZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlv
bkNhbGw8PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1
bmN0aW9uQ2FsbCg8PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAg
c29tZUZ1bmN0aW9uQ2FsbChiYXI8PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIp
Ci17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOzw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlv
bihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci08PAotPj5mdW5jdGlv
biB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwot
ICAgIHZhcjw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21l
RnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGI8PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24o
Zm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID08PAot
Pj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2Fs
bChiYXIpOwotICAgIHZhciBiID0gNDI8PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBi
YXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7PDwKLT4+
ZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwo
YmFyKTsKLSAgICB2YXIgYiA9IDQyOwotPDwKLT4+ZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywg
YmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAg
IHJldHVybjw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21l
RnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYTw8Ci0+PmZ1
bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJh
cik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT08PAotPj5mdW5jdGlvbiB0ZXN0
RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZh
ciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDE8PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24o
Zm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7
Ci0gICAgcmV0dXJuIGEgPT09IDEgPzw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJh
cikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICBy
ZXR1cm4gYSA9PT0gMSA/IHRydWU8PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIp
Ci17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0
dXJuIGEgPT09IDEgPyB0cnVlIDo8PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIp
Ci17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0
dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U8PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9v
LCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0g
ICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7PDwKLT4+ZnVuY3Rpb24gdGVzdEZ1bmN0
aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9
IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotPDwKLT4+ZnVuY3Rpb24g
dGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAg
ICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfTw8Ci0+
PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxs
KGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxz
ZTsKLX08PAotCi1SdW5uaW5nOiB0ZXN0Q3RybFNoaWZ0TGVmdEFycm93Ci19fAotPj59PDwKLT4+
Ci19PDwKLT4+OwotfTw8Ci0+PmZhbHNlOwotfTw8Ci0+PjogZmFsc2U7Ci19PDwKLT4+dHJ1ZSA6
IGZhbHNlOwotfTw8Ci0+Pj8gdHJ1ZSA6IGZhbHNlOwotfTw8Ci0+PjEgPyB0cnVlIDogZmFsc2U7
Ci19PDwKLT4+PT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+YSA9PT0gMSA/IHRydWUgOiBm
YWxzZTsKLX08PAotPj5yZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLX08PAotPj4gICAg
cmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+Ci0gICAgcmV0dXJuIGEgPT09
IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+OwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6
IGZhbHNlOwotfTw8Ci0+PjQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwot
fTw8Ci0+Pj0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+
YiA9IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfTw8Ci0+PnZhciBi
ID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+ICAgIHZh
ciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+Ci0g
ICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLX08PAot
Pj4pOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7
Ci19PDwKLT4+YmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1
ZSA6IGZhbHNlOwotfTw8Ci0+PihiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEg
PT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+c29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAg
IHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+
ICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBh
ID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfTw8Ci0+PgotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFy
KTsKLSAgICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwot
fTw8Ci0+PnsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAg
ICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLX08PAotPj4KLXsKLSAgICBzb21lRnVu
Y3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRy
dWUgOiBmYWxzZTsKLX08PAotPj4pCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAg
IHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+
YmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAg
IHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfTw8Ci0+PiwgYmFyKQotewotICAgIHNv
bWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAx
ID8gdHJ1ZSA6IGZhbHNlOwotfTw8Ci0+PmZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNh
bGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZh
bHNlOwotfTw8Ci0+Pihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0g
ICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLX08PAot
Pj50ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwot
ICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwK
LT4+ZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNh
bGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZh
bHNlOwotfTw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21l
RnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/
IHRydWUgOiBmYWxzZTsKLX08PAotCi1SdW5uaW5nOiB0ZXN0Q3RybEJhY2tzcGFjZQotPT09PT09
PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1
bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0
cnVlIDogZmFsc2U7Ci19Ci09PT09PT09PT09PT09PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihm
b28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsK
LSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLTw8Ci09PT09PT09PT09PT09PT0K
LWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxs
KGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxz
ZTs8PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17
Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJu
IGEgPT09IDEgPyB0cnVlIDogZmFsc2U8PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0
RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZh
ciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogPDwKLT09PT09PT09PT09PT09
PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNh
bGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA8PAot
PT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAg
c29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09
IDEgPyA8PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIp
Ci17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0
dXJuIGEgPT09IDEgPDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZv
bywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwot
ICAgIHJldHVybiBhID09PSA8PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rp
b24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0g
NDI7Ci0gICAgcmV0dXJuIGEgPDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0
aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9
IDQyOwotICAgIHJldHVybiA8PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rp
b24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0g
NDI7Ci0gICAgPDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywg
YmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotPDwK
LT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAg
IHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOzw8Ci09PT09PT09PT09PT09
PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25D
YWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0Mjw8Ci09PT09PT09PT09PT09PT0KLWZ1bmN0aW9uIHRl
c3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAg
dmFyIGIgPSA8PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBi
YXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiIDw8Ci09PT09PT09
PT09PT09PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVu
Y3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIDw8Ci09PT09PT09PT09PT09PT0KLWZ1bmN0aW9uIHRl
c3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAg
PDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewot
ICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLTw8Ci09PT09PT09PT09PT09PT0KLWZ1bmN0aW9u
IHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7PDwK
LT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAg
IHNvbWVGdW5jdGlvbkNhbGwoYmFyPDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1
bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoPDwKLT09PT09PT09PT09
PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlv
bkNhbGw8PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIp
Ci17Ci0gICAgPDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywg
YmFyKQotewotPDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywg
YmFyKQotezw8Ci09PT09PT09PT09PT09PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJh
cikKLTw8Ci09PT09PT09PT09PT09PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcik8
PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXI8PAotPT09
PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCA8PAotPT09PT09PT09PT09
PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vPDwKLT09PT09PT09PT09PT09PQotZnVuY3Rp
b24gdGVzdEZ1bmN0aW9uKDw8Ci09PT09PT09PT09PT09PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlv
bjw8Ci09PT09PT09PT09PT09PT0KLWZ1bmN0aW9uIDw8Ci09PT09PT09PT09PT09PT0KLTw8Ci0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itd29y
ZC1qdW1wcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci13
b3JkLWp1bXBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyYzc0NmMuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci13b3Jk
LWp1bXBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjggKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywg
YmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAg
IHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfQotCi0gICAgdmFyIHRleHRFZGl0b3Ig
PSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVRlc3RFZGl0b3IoKTsKLSAgICB0ZXh0RWRpdG9yLm92ZXJy
aWRlVmlld3BvcnRGb3JUZXN0KDAsIHVuZGVmaW5lZCwgMyk7Ci0gICAgdGV4dEVkaXRvci5taW1l
VHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOwotICAgIHRleHRFZGl0b3Iuc2V0UmVhZE9ubHkoZmFs
c2UpOwotICAgIHRleHRFZGl0b3Iuc2V0VGV4dCh0ZXN0RnVuY3Rpb24udG9TdHJpbmcoKSk7Ci0g
ICAgdGV4dEVkaXRvci5lbGVtZW50LmZvY3VzKCk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCh0ZXh0RWRpdG9yLnRleHQoKSk7Ci0gICAgY29uc3Qgd29yZEp1bXBNb2RpZmllciA9IFdl
Ykluc3BlY3Rvci5pc01hYygpID8gImFsdEtleSIgOiAiY3RybEtleSI7Ci0KLSAgICBmdW5jdGlv
biBkdW1wRWRpdG9yU2VsZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBzZWxlY3Rpb24gPSB0
ZXh0RWRpdG9yLnNlbGVjdGlvbigpOwotICAgICAgICBpZiAoc2VsZWN0aW9uLmlzRW1wdHkoKSkg
ewotICAgICAgICAgICAgdmFyIGxpbmUgPSB0ZXh0RWRpdG9yLmxpbmUoc2VsZWN0aW9uLnN0YXJ0
TGluZSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChsaW5lLnN1YnN0cmlu
ZygwLCBzZWxlY3Rpb24uc3RhcnRDb2x1bW4pICsgInwiICsgbGluZS5zdWJzdHJpbmcoc2VsZWN0
aW9uLnN0YXJ0Q29sdW1uKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiPj4iICsgdGV4dEVkaXRvci5fdGV4dE1vZGVsLmNvcHlSYW5nZShz
ZWxlY3Rpb24ubm9ybWFsaXplKCkpICsgIjw8Iik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IHNlbGVjdGlvbjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzZXRDdXJzb3JBdEJlZ2lubmluZygp
Ci0gICAgewotICAgICAgICB0ZXh0RWRpdG9yLnNldFNlbGVjdGlvbihXZWJJbnNwZWN0b3IuVGV4
dFJhbmdlLmNyZWF0ZUZyb21Mb2NhdGlvbigwLCAwKSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
c2V0Q3Vyc29yQXRFbmQoKQotICAgIHsKLSAgICAgICAgdmFyIGxhc3RMaW5lID0gdGV4dEVkaXRv
ci5fdGV4dE1vZGVsLmxpbmVzQ291bnQgLSAxOwotICAgICAgICB2YXIgbGFzdENvbHVtbiA9IHRl
eHRFZGl0b3IuX3RleHRNb2RlbC5saW5lKGxhc3RMaW5lKS5sZW5ndGg7Ci0gICAgICAgIHRleHRF
ZGl0b3Iuc2V0U2VsZWN0aW9uKFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UuY3JlYXRlRnJvbUxvY2F0
aW9uKGxhc3RMaW5lLCBsYXN0Q29sdW1uKSk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5y
dW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0Q3RybFJpZ2h0QXJyb3cobmV4dCkK
LSAgICAgICAgewotICAgICAgICAgICAgc2V0Q3Vyc29yQXRCZWdpbm5pbmcoKTsKLSAgICAgICAg
ICAgIHZhciBzZWxlY3Rpb24gPSBkdW1wRWRpdG9yU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICB2
YXIgb2xkU2VsZWN0aW9uOwotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIG9sZFNl
bGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCJyaWdodEFycm93IiwgW3dvcmRKdW1wTW9kaWZpZXJdKTsKLSAgICAgICAgICAgICAgICBzZWxl
Y3Rpb24gPSBkdW1wRWRpdG9yU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICB9IHdoaWxlIChzZWxl
Y3Rpb24uY29tcGFyZVRvKG9sZFNlbGVjdGlvbikgIT09IDApOwotICAgICAgICAgICAgbmV4dCgp
OwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RDdHJsTGVmdEFycm93KG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHNldEN1cnNvckF0RW5kKCk7Ci0gICAgICAgICAgICB2
YXIgc2VsZWN0aW9uID0gZHVtcEVkaXRvclNlbGVjdGlvbigpOwotICAgICAgICAgICAgdmFyIG9s
ZFNlbGVjdGlvbjsKLSAgICAgICAgICAgIGRvIHsKLSAgICAgICAgICAgICAgICBvbGRTZWxlY3Rp
b24gPSBzZWxlY3Rpb247Ci0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigibGVm
dEFycm93IiwgW3dvcmRKdW1wTW9kaWZpZXJdKTsKLSAgICAgICAgICAgICAgICBzZWxlY3Rpb24g
PSBkdW1wRWRpdG9yU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICB9IHdoaWxlIChzZWxlY3Rpb24u
Y29tcGFyZVRvKG9sZFNlbGVjdGlvbikgIT09IDApOwotICAgICAgICAgICAgbmV4dCgpOwotICAg
ICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RDdHJsU2hpZnRSaWdodEFycm93KG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHNldEN1cnNvckF0QmVnaW5uaW5nKCk7Ci0gICAgICAg
ICAgICB2YXIgc2VsZWN0aW9uID0gZHVtcEVkaXRvclNlbGVjdGlvbigpOwotICAgICAgICAgICAg
dmFyIG9sZFNlbGVjdGlvbjsKLSAgICAgICAgICAgIGRvIHsKLSAgICAgICAgICAgICAgICBvbGRT
ZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93
bigicmlnaHRBcnJvdyIsIFt3b3JkSnVtcE1vZGlmaWVyLCAic2hpZnRLZXkiXSk7Ci0gICAgICAg
ICAgICAgICAgc2VsZWN0aW9uID0gZHVtcEVkaXRvclNlbGVjdGlvbigpOwotICAgICAgICAgICAg
fSB3aGlsZSAoc2VsZWN0aW9uLmNvbGxhcHNlVG9FbmQoKS5jb21wYXJlVG8ob2xkU2VsZWN0aW9u
LmNvbGxhcHNlVG9FbmQoKSkgIT09IDApOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9
LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RDdHJsU2hpZnRMZWZ0QXJyb3cobmV4dCkKLSAgICAg
ICAgewotICAgICAgICAgICAgc2V0Q3Vyc29yQXRFbmQoKTsKLSAgICAgICAgICAgIHZhciBzZWxl
Y3Rpb24gPSBkdW1wRWRpdG9yU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICB2YXIgb2xkU2VsZWN0
aW9uOwotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIG9sZFNlbGVjdGlvbiA9IHNl
bGVjdGlvbjsKLSAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJsZWZ0QXJyb3ci
LCBbd29yZEp1bXBNb2RpZmllciwgInNoaWZ0S2V5Il0pOwotICAgICAgICAgICAgICAgIHNlbGVj
dGlvbiA9IGR1bXBFZGl0b3JTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIH0gd2hpbGUgKHNlbGVj
dGlvbi5jb2xsYXBzZVRvRW5kKCkuY29tcGFyZVRvKG9sZFNlbGVjdGlvbi5jb2xsYXBzZVRvRW5k
KCkpICE9PSAwKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0ZXN0Q3RybEJhY2tzcGFjZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBz
ZXRDdXJzb3JBdEVuZCgpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09
PT09PT09PT09PT09PSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGV4
dEVkaXRvci50ZXh0KCkpOwotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLmtleURvd24oIlxiIiwgW3dvcmRKdW1wTW9kaWZpZXJdKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09PT09PT09Iik7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGV4dEVkaXRvci50ZXh0KCkgKyAiPDwiKTsK
LSAgICAgICAgICAgIH0gd2hpbGUgKHRleHRFZGl0b3IudGV4dCgpICE9PSAiIik7Ci0gICAgICAg
ICAgICB0ZXh0RWRpdG9yLnNldFRleHQodGVzdEZ1bmN0aW9uLnRvU3RyaW5nKCkpOwotICAgICAg
ICAgICAgbmV4dCgpOwotICAgICAgICB9Ci0gICAgXSk7Ci0KLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Ci08cD4KLVRoaXMgdGVzdCBjaGVja3Mg
aG93IHRleHQgZWRpdG9yIGhhbmRsZXMgZGlmZmVyZW50IGN0cmwtYmFzZWQgbW92ZW1lbnRzLCBp
LmUuIGN0cmwtbGVmdCwgY3RybC1yaWdodCwgY3RybC1zaGlmdC1sZWZ0LCBjdHJsLWJhY2tzcGFj
ZS4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2JyZWFkY3J1bWItdXBkYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvYnJlYWRjcnVtYi11cGRhdGVzLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTk1ZDY4NC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvYnJlYWRjcnVtYi11cGRhdGVzLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotVGVzdHMgdGhhdCBicmVhZGNydW1icyBh
cmUgdXBkYXRlZCB1cG9uIGludm9sdmVkIGVsZW1lbnQncyBhdHRyaWJ1dGUgY2hhbmdlcyBpbiB0
aGUgRWxlbWVudHMgcGFuZWwuCi0KLU9yaWdpbmFsIGJyZWFkY3J1bWI6Ci1odG1sID4gYm9keSA+
IGRpdi5maXJzdENsYXNzID4gZGl2I3RhcmdldAotQWZ0ZXIgY2xhc3MgY2hhbmdlOgotaHRtbCA+
IGJvZHkgPiBkaXYuYW5vdGhlckNsYXNzID4gZGl2I3RhcmdldAotQWZ0ZXIgY2xhc3MgcmVtb3Zh
bDoKLWh0bWwgPiBib2R5ID4gZGl2ID4gZGl2I3RhcmdldAotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvYnJlYWRjcnVtYi11cGRhdGVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvYnJlYWRjcnVtYi11cGRhdGVzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiOWQzNzkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL2JyZWFkY3J1bWItdXBkYXRlcy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M
IDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3Nl
LmR0ZCI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci0KLWZ1bmN0aW9uIGNoYW5nZUNsYXNzKCkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKCJmaXJzdENsYXNzIilbMF0uY2xhc3NOYW1lID0gImFub3RoZXJDbGFzcyI7Ci19
Ci0KLWZ1bmN0aW9uIGRlbGV0ZUNsYXNzKCkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKCJhbm90aGVyQ2xhc3MiKVswXS5jbGFzc05hbWUgPSAiIjsKLX0KLQotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLSAg
ICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShzdGVwMCk7Ci0KLSAgICBmdW5jdGlv
biBzdGVwMCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQo
InRhcmdldCIsIHN0ZXAxKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewot
ICAgICAgICBkdW1wQnJlYWRjcnVtYigiT3JpZ2luYWwgYnJlYWRjcnVtYiIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJjaGFuZ2VDbGFzcygpIiwgc3RlcDIpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIGR1bXBCcmVhZGNydW1i
KCJBZnRlciBjbGFzcyBjaGFuZ2UiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgiZGVsZXRlQ2xhc3MoKSIsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MygpCi0gICAgewotICAgICAgICBkdW1wQnJlYWRjcnVtYigiQWZ0ZXIgY2xhc3MgcmVtb3ZhbCIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIGR1bXBCcmVhZGNydW1iKG1lc3NhZ2UpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdChtZXNzYWdlICsgIjoiKTsKLSAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwot
ICAgICAgICB2YXIgY3J1bWJzID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJlbGVtZW50cyIpLmNydW1i
c0VsZW1lbnQ7Ci0gICAgICAgIHZhciBjcnVtYiA9IGNydW1icy5maXJzdENoaWxkOwotICAgICAg
ICB3aGlsZSAoY3J1bWIpIHsKLSAgICAgICAgICAgIHJlc3VsdC51bnNoaWZ0KGNydW1iLnRleHRD
b250ZW50KTsKLSAgICAgICAgICAgIGNydW1iID0gY3J1bWIubmV4dFNpYmxpbmc7Ci0gICAgICAg
IH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVzdWx0LmpvaW4oIiA+ICIpKTsK
LSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD4KLVRlc3RzIHRoYXQgYnJlYWRjcnVtYnMgYXJlIHVwZGF0ZWQgdXBvbiBpbnZvbHZl
ZCBlbGVtZW50J3MgYXR0cmlidXRlIGNoYW5nZXMgaW4gdGhlIEVsZW1lbnRzIHBhbmVsLgotPC9w
PgotCi08ZGl2IGNsYXNzPSJmaXJzdENsYXNzIj4KLSAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2
PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9kZWxldGUtZnJvbS1kb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZGVsZXRlLWZyb20tZG9jdW1lbnQtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZGQwNGFmLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9kZWxldGUtZnJvbS1kb2N1bWVudC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UZXN0cyB0aGF0IHJlbW92
aW5nIGNoaWxkIGZyb20gdGhlIGRvY3VtZW50IGlzIGhhbmRsZWQgcHJvcGVybHkgaW4gdGhlIGVs
ZW1lbnRzIHBhbmVsLgotCi0gICAgICA8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv
bG9vc2UuZHRkIj4KLS0gPGh0bWw+Ci0gICAgLSA8aGVhZD4KLSAgICAgIDwvaGVhZD4KLSAgICAt
IDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICAgIDwvYm9keT4KLSAgPC9odG1sPgotLSA8
aHRtbD4KLSAgICAtIDxoZWFkPgotICAgICAgPC9oZWFkPgotICAgIC0gPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotICAgICAgPC9ib2R5PgotICA8L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9kZWxldGUtZnJvbS1kb2N1bWVudC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2RlbGV0ZS1mcm9tLWRvY3VtZW50Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExN2I2ZmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2RlbGV0ZS1mcm9tLWRvY3VtZW50Lmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8v
RFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRt
bDQvbG9vc2UuZHRkIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLQotZnVuY3Rpb24gcmVtb3ZlRG9jdHlwZSgpCi17Ci0gICAgZG9jdW1lbnQucmVt
b3ZlQ2hpbGQoZG9jdW1lbnQuZmlyc3RDaGlsZCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKHN0ZXAxKTsKLQotICAgIGZ1bmN0
aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJl
ZShudWxsLCAxKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicmVtb3Zl
RG9jdHlwZSgpIiwgc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShudWxsLCAxKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgcmVt
b3ZpbmcgY2hpbGQgZnJvbSB0aGUgZG9jdW1lbnQgaXMgaGFuZGxlZCBwcm9wZXJseSBpbiB0aGUg
ZWxlbWVudHMgcGFuZWwuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9kb20tYWdlbnQtcXVlcnktc2VsZWN0b3ItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2RvbS1hZ2VudC1xdWVy
eS1zZWxlY3Rvci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIy
NDBiMDYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2RvbS1h
Z2VudC1xdWVyeS1zZWxlY3Rvci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyAr
MCwwIEBACi1UZXN0cyBET01BZ2VudC5xdWVyeVNlbGVjdG9yIGFuZCBET01BZ2VudC5xdWVyeVNl
bGVjdG9yQWxsLgotCi0KLVJ1bm5pbmc6IHRlc3REb2N1bWVudFF1ZXJ5U2VsZWN0b3IKLW5vZGUg
aWQ6IGlkMQotCi1SdW5uaW5nOiB0ZXN0RG9jdW1lbnRRdWVyeVNlbGVjdG9yQWxsCi1ub2RlIGlk
OiBpZDEKLW5vZGUgaWQ6IGlkMgotbm9kZSBpZDogaWQzCi1ub2RlIGlkOiBpZDQKLW5vZGUgaWQ6
IGlkNQotbm9kZSBpZDogaWQ2Ci0KLVJ1bm5pbmc6IHRlc3RRdWVyeVNlbGVjdG9yCi1ub2RlIGlk
OiBpZDMKLQotUnVubmluZzogdGVzdFF1ZXJ5U2VsZWN0b3JBbGwKLW5vZGUgaWQ6IGlkMwotbm9k
ZSBpZDogaWQ0Ci1ub2RlIGlkOiBpZDUKLW5vZGUgaWQ6IGlkNgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZG9tLWFnZW50LXF1ZXJ5LXNlbGVjdG9yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZG9tLWFnZW50LXF1ZXJ5LXNlbGVjdG9y
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0YjI2YzAuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2RvbS1hZ2VudC1xdWVyeS1zZWxlY3Rv
ci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLQot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgiY29udGFpbmVyIiwgc3RlcDEpOwot
Ci0gICAgZnVuY3Rpb24gc3RlcDEobm9kZSkKLSAgICB7Ci0gICAgICAgIHZhciBjb250YWluZXJJ
ZCA9IG5vZGUuaWQ7Ci0gICAgICAgIHZhciBkb2N1bWVudElkID0gbm9kZS5vd25lckRvY3VtZW50
LmlkOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgICAg
IGZ1bmN0aW9uIHRlc3REb2N1bWVudFF1ZXJ5U2VsZWN0b3IobmV4dCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBET01BZ2VudC5xdWVyeVNlbGVjdG9yKGRvY3VtZW50SWQsICJkaXYu
Zm9vIiwgZHVtcE5vZGVzLmJpbmQobnVsbCwgbmV4dCkpOwotICAgICAgICAgICAgfSwKLQotICAg
ICAgICAgICAgZnVuY3Rpb24gdGVzdERvY3VtZW50UXVlcnlTZWxlY3RvckFsbChuZXh0KQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIERPTUFnZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZG9j
dW1lbnRJZCwgImRpdi5mb28iLCBkdW1wTm9kZXMuYmluZChudWxsLCBuZXh0KSk7Ci0gICAgICAg
ICAgICB9LAotCi0gICAgICAgICAgICBmdW5jdGlvbiB0ZXN0UXVlcnlTZWxlY3RvcihuZXh0KQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIERPTUFnZW50LnF1ZXJ5U2VsZWN0b3IoY29u
dGFpbmVySWQsICJkaXYuZm9vIiwgZHVtcE5vZGVzLmJpbmQobnVsbCwgbmV4dCkpOwotICAgICAg
ICAgICAgfSwKLQotICAgICAgICAgICAgZnVuY3Rpb24gdGVzdFF1ZXJ5U2VsZWN0b3JBbGwobmV4
dCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBET01BZ2VudC5xdWVyeVNlbGVjdG9y
QWxsKGNvbnRhaW5lcklkLCAiZGl2LmZvbyIsIGR1bXBOb2Rlcy5iaW5kKG51bGwsIG5leHQpKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgXSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZHVtcE5v
ZGVzKG5leHQsIGVycm9yLCBub2RlSWRzKQotICAgIHsKLSAgICAgICAgaWYgKGVycm9yKSB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChlcnJvcik7Ci0gICAgICAgICAgICBu
ZXh0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIShu
b2RlSWRzIGluc3RhbmNlb2YgQXJyYXkpKQotICAgICAgICAgICAgbm9kZUlkcyA9IFtub2RlSWRz
XTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVJZHMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgICAgIGlmICghbm9kZUlkc1tpXSkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgibm8gcmVzdWx0cyIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgdmFyIG5vZGUgPSBXZWJJbnNwZWN0b3IuZG9tQWdlbnQubm9kZUZvcklkKG5vZGVJ
ZHNbaV0pOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJub2RlIGlk
OiAiICsgbm9kZS5nZXRBdHRyaWJ1dGUoImlkIikpOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgICAgIG5leHQoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBET01BZ2VudC5xdWVyeVNlbGVjdG9yIGFu
ZCBET01BZ2VudC5xdWVyeVNlbGVjdG9yQWxsLgotPC9wPgotCi08ZGl2IGlkPSJpZDEiIGNsYXNz
PSJmb28iPjwvZGl2PgotPGRpdiBpZD0iaWQyIiBjbGFzcz0iZm9vIj48L2Rpdj4KLQotPGRpdiBp
ZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGlkPSJpZDMiIGNsYXNzPSJmb28iPjwvZGl2PgotICAg
IDxkaXYgaWQ9ImlkNCIgY2xhc3M9ImZvbyI+PC9kaXY+Ci0gICAgPGRpdiBpZD0iaWQ1IiBjbGFz
cz0iZm9vIj48L2Rpdj4KLSAgICA8ZGl2IGlkPSJpZDYiIGNsYXNzPSJmb28iPjwvZGl2PgotPC9k
aXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9kb20tc2VhcmNoLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9kb20tc2VhcmNoLWNyYXNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ4OTk4YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvZG9tLXNlYXJjaC1jcmFzaC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw4ICswLDAgQEAKLVRlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgc2VhcmNoIGlz
IG5vdCBjcmFzaGluZyBvbiBkb2N1bWVudEVsZW1lbnQtbGVzcyBjYXNlcy4KLQotCi0KLVJ1bm5p
bmc6IHRlc3RTZXRVcAotCi1SdW5uaW5nOiB0ZXN0Tm9DcmFzaAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZG9tLXNlYXJjaC1jcmFzaC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2RvbS1zZWFyY2gtY3Jhc2guaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDY4NDFiYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvZG9tLXNlYXJjaC1jcmFzaC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMjkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAg
ICBmdW5jdGlvbiB0ZXN0U2V0VXAobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
b21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQobmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdE5vQ3Jhc2gobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmRvbUFnZW50LnBlcmZvcm1TZWFyY2goIkZvb0JhciIsIG5leHQpOwotICAgICAgICB9Ci0g
ICAgXSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+Ci08cD4KLVRlc3RzIHRoYXQg
ZWxlbWVudHMgcGFuZWwgc2VhcmNoIGlzIG5vdCBjcmFzaGluZyBvbiBkb2N1bWVudEVsZW1lbnQt
bGVzcyBjYXNlcy4KLTwvcD4KLTxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvZG9tLXNlYXJjaC1jcmFz
aC1pZnJhbWUuaHRtbCIgb25sb2FkPSJydW5UZXN0KCkiPjwvaWZyYW1lPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9t
LWFjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2Vk
aXQtZG9tLWFjdGlvbnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiNjdmYjJhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9l
ZGl0LWRvbS1hY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzMCArMCww
IEBACi1UZXN0cyB0aGF0IHVzZXIgY2FuIG11dGF0ZSBET00gYnkgbWVhbnMgb2YgZWxlbWVudHMg
cGFuZWwuCi0KLSAKLUVkaXRlZCBUZXh0Ci1TcGFuIGNvbnRlbnRzCi1BI25ic3A7QiNlbnNwO0Mj
ZW1zcDtEI3RoaW5zcDtFI3p3bmo7RiN6d2o7RyNybG07SCNscm07SQotRWxlbWVudAotCi1SdW5u
aW5nOiB0ZXN0U2V0VXAKLQotUnVubmluZzogdGVzdFJlbW92ZQotPT09PSBiZWZvcmUgPT09PQot
LSA8ZGl2IGlkPSJ0ZXN0UmVtb3ZlIj4KLSAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tcmVtb3ZlIj48
L2Rpdj4KLSAgPC9kaXY+Ci09PT09IGFmdGVyID09PT0KLS0gPGRpdiBpZD0idGVzdFJlbW92ZSI+
Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0U2V0Tm9kZU5hbWUKLT09PT0gYmVmb3JlID09PT0K
LS0gPGRpdiBpZD0idGVzdFNldE5vZGVOYW1lIj4KLSAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tc2V0
LW5hbWUiPjwvZGl2PgotICA8L2Rpdj4KLT09PT0gYWZ0ZXIgPT09PQotLSA8ZGl2IGlkPSJ0ZXN0
U2V0Tm9kZU5hbWUiPgotICAgICAgPHNwYW4gaWQ9Im5vZGUtdG8tc2V0LW5hbWUiID48L3NwYW4+
Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0U2V0Tm9kZU5hbWVJbnB1dAotPT09PSBiZWZvcmUg
PT09PQotLSA8ZGl2IGlkPSJ0ZXN0U2V0Tm9kZU5hbWVJbnB1dCI+Ci0gICAgICA8ZGl2IGlkPSJu
b2RlLXRvLXNldC1uYW1lLWlucHV0Ij48L2Rpdj4KLSAgPC9kaXY+Ci09PT09IGFmdGVyID09PT0K
LS0gPGRpdiBpZD0idGVzdFNldE5vZGVOYW1lSW5wdXQiPgotICAgICAgPGlucHV0IGlkPSJub2Rl
LXRvLXNldC1uYW1lLWlucHV0IiA+Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0U2V0Tm9kZVZh
bHVlCi09PT09IGJlZm9yZSA9PT09Ci0tIDxkaXYgaWQ9InRlc3RTZXROb2RlVmFsdWUiPgotICAg
ICAgPGRpdiBpZD0ibm9kZS10by1zZXQtdmFsdWUiPlxuICAgICAgICAgIFRleHRcbiAgICAgICAg
PC9kaXY+Ci0gIDwvZGl2PgotPT09PSBhZnRlciA9PT09Ci0tIDxkaXYgaWQ9InRlc3RTZXROb2Rl
VmFsdWUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1zZXQtdmFsdWUiPiAgXG4gIEVkaXRlZCBU
ZXh0ICBcbiAgPC9kaXY+Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0U2V0QXR0cmlidXRlCi09
PT09IGJlZm9yZSA9PT09Ci0tIDxkaXYgaWQ9InRlc3RTZXRBdHRyaWJ1dGUiPgotICAgICAgPGRp
diBmb289ImF0dHJpYnV0ZSB2YWx1ZSIgaWQ9Im5vZGUtdG8tc2V0LWF0dHJpYnV0ZSI+PC9kaXY+
Ci0gIDwvZGl2PgotPT09PSBhZnRlciA9PT09Ci0tIDxkaXYgaWQ9InRlc3RTZXRBdHRyaWJ1dGUi
PgotICAgICAgPGRpdiBpZD0ibm9kZS10by1zZXQtYXR0cmlidXRlIiBiYXI9ImVkaXRlZCBhdHRy
aWJ1dGUiPjwvZGl2PgotICA8L2Rpdj4KLQotUnVubmluZzogdGVzdFJlbW92ZUF0dHJpYnV0ZQot
PT09PSBiZWZvcmUgPT09PQotLSA8ZGl2IGlkPSJ0ZXN0UmVtb3ZlQXR0cmlidXRlIj4KLSAgICAg
IDxkaXYgZm9vPSJhdHRyaWJ1dGUgdmFsdWUiIGlkPSJub2RlLXRvLXJlbW92ZS1hdHRyaWJ1dGUi
PjwvZGl2PgotICA8L2Rpdj4KLT09PT0gYWZ0ZXIgPT09PQotLSA8ZGl2IGlkPSJ0ZXN0UmVtb3Zl
QXR0cmlidXRlIj4KLSAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tcmVtb3ZlLWF0dHJpYnV0ZSI+PC9k
aXY+Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0QWRkQXR0cmlidXRlCi09PT09IGJlZm9yZSA9
PT09Ci0tIDxkaXYgaWQ9InRlc3RBZGRBdHRyaWJ1dGUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10
by1hZGQtYXR0cmlidXRlIj48L2Rpdj4KLSAgPC9kaXY+Ci09PT09IGFmdGVyID09PT0KLS0gPGRp
diBpZD0idGVzdEFkZEF0dHJpYnV0ZSI+Ci0gICAgICA8ZGl2IGlkPSJub2RlLXRvLWFkZC1hdHRy
aWJ1dGUiIG5ld2F0dHI9Im5ldy12YWx1ZSI+PC9kaXY+Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0
ZXN0RWRpdENvbW1lbnRBc0hUTUwKLT09PT0gYmVmb3JlID09PT0KLS0gPGRpdiBpZD0idGVzdEVk
aXRDb21tZW50QXNIVE1MIj4KLSAgICAgIDwhLS0gQ29tbWVudCAtLT4KLSAgPC9kaXY+Ci08IS0t
IENvbW1lbnQgLS0+Ci09PT09IGFmdGVyID09PT0KLS0gPGRpdiBpZD0idGVzdEVkaXRDb21tZW50
QXNIVE1MIj4KLSAgICAgIDxkaXYgZm9vPSJiYXItY29tbWVudCI+RWxlbWVudDwvZGl2PgotICA8
L2Rpdj4KLQotUnVubmluZzogdGVzdEVkaXRBc0hUTUwKLT09PT0gYmVmb3JlID09PT0KLS0gPGRp
diBpZD0idGVzdEVkaXRBc0hUTUwiPgotICAgIC0gPGRpdiBpZD0ibm9kZS10by1lZGl0LWFzLWh0
bWwiPgotICAgICAgICAgIDxzcGFuIGlkPSJzcGFuIj5UZXh0PC9zcGFuPgotICAgICAgPC9kaXY+
Ci0gIDwvZGl2PgotPGRpdiBpZD0ibm9kZS10by1lZGl0LWFzLWh0bWwiPjxzcGFuIGlkPSJzcGFu
Ij5UZXh0PC9zcGFuPjwvZGl2PgotPT09PSBhZnRlciA9PT09Ci0tIDxkaXYgaWQ9InRlc3RFZGl0
QXNIVE1MIj4KLSAgICAtIDxzcGFuIGZvbz0iYmFyIj4KLSAgICAgICAgICA8c3BhbiBpZD0iaW5u
ZXItc3BhbiI+U3BhbiBjb250ZW50czwvc3Bhbj4KLSAgICAgIDwvc3Bhbj4KLSAgPC9kaXY+Ci0K
LVJ1bm5pbmc6IHRlc3RFZGl0SW52aXNpYmxlQ2hhcnNBc0hUTUwKLT09PT0gYmVmb3JlID09PT0K
LS0gPGRpdiBpZD0idGVzdEVkaXRJbnZpc2libGVDaGFyc0FzSFRNTCI+Ci0gICAgICA8ZGl2IGlk
PSJub2RlLXdpdGgtaW52aXNpYmxlLWNoYXJzIj5BJm5ic3A7QiZlbnNwO0MmZW1zcDtEJnRoaW5z
cDtFJnp3bmo7RiZ6d2o7RyZybG07SCZscm07STwvZGl2PgotICA8L2Rpdj4KLTxkaXYgaWQ9Im5v
ZGUtd2l0aC1pbnZpc2libGUtY2hhcnMiPkEmbmJzcDtCJmVuc3A7QyZlbXNwO0QmdGhpbnNwO0Um
enduajtGJnp3ajtHJnJsbTtIJmxybTtJPC9kaXY+Ci09PT09IGFmdGVyID09PT0KLS0gPGRpdiBp
ZD0idGVzdEVkaXRJbnZpc2libGVDaGFyc0FzSFRNTCI+Ci0gICAgICA8ZGl2IGlkPSJub2RlLXdp
dGgtaW52aXNpYmxlLWNoYXJzIj5BI25ic3A7QiNlbnNwO0MjZW1zcDtEI3RoaW5zcDtFI3p3bmo7
RiN6d2o7RyNybG07SCNscm07STwvZGl2PgotICA8L2Rpdj4KLQotUnVubmluZzogdGVzdEVkaXRT
Y3JpcHQKLT09PT0gYmVmb3JlID09PT0KLS0gPGRpdiBpZD0idGVzdEVkaXRTY3JpcHQiPgotICAg
IC0gPHNjcmlwdCBpZD0ibm9kZS10by1lZGl0LXNjcmlwdCI+Ci0gICAgICAgICAgXG4gICAgICAg
ICAgdmFyIGkgPSAwO1xuICAgICAgICAgIHZhciBqID0gNTtcbiAgICAgICAgICBmb3IgKDsgaSA8
IGo7ICsraSkge1xuICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nLlxuICAgICAgICAgIH1cblxu
Ci0gICAgICA8L3NjcmlwdD4KLSAgPC9kaXY+Ci09PT09IGFmdGVyID09PT0KLS0gPGRpdiBpZD0i
dGVzdEVkaXRTY3JpcHQiPgotICAgIC0gPHNjcmlwdCBpZD0ibm9kZS10by1lZGl0LXNjcmlwdCI+
Ci0gICAgICAgICAgdmFyIGkgPSAwO1xuICAgIHZhciBqID0gMDtcbgotICAgICAgPC9zY3JpcHQ+
Ci0gIDwvZGl2PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
ZWRpdC1kb20tYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2Vk
aXQtZG9tLWFjdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTRhNTcy
YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWRpdC1kb20t
YWN0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzE2ICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgLy8gU2F2ZSB0aW1lIG9uIHN0eWxlIHVwZGF0ZXMuCi0gICAgV2ViSW5zcGVjdG9y
LnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLSAgICBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBh
bmUucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKCkge307Ci0gICAgV2ViSW5zcGVjdG9yLk1l
dHJpY3NTaWRlYmFyUGFuZS5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24oKSB7fTsKLQotICAg
IEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldFVw
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVu
dHNUcmVlKG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmUo
bmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZG9tQWN0aW9uVGVzdEZvck5vZGVJZCgidGVz
dFJlbW92ZSIsICJub2RlLXRvLXJlbW92ZSIsIHRlc3RCb2R5LCBuZXh0KTsKLQotICAgICAgICAg
ICAgZnVuY3Rpb24gdGVzdEJvZHkobm9kZSwgZG9uZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRy
ZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChub2RlKTsKLSAgICAgICAgICAgICAgICB0cmVlRWxl
bWVudC5yZW1vdmUoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVu
ZGluZ0Rpc3BhdGNoZXMoZG9uZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdFNldE5vZGVOYW1lKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGRvbUFjdGlvblRlc3RGb3JOb2RlSWQoInRlc3RTZXROb2RlTmFtZSIsICJub2RlLXRvLXNldC1u
YW1lIiwgdGVzdEJvZHksIG5leHQpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiB0ZXN0Qm9keShu
b2RlLCBkb25lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGVkaXROb2RlUGFydEFu
ZFJ1bihub2RlLCAid2Via2l0LWh0bWwtdGFnLW5hbWUiLCAic3BhbiIsIGRvbmUpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTZXROb2RlTmFtZUlu
cHV0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGRvbUFjdGlvblRlc3RGb3JOb2RlSWQo
InRlc3RTZXROb2RlTmFtZUlucHV0IiwgIm5vZGUtdG8tc2V0LW5hbWUtaW5wdXQiLCB0ZXN0Qm9k
eSwgbmV4dCk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RCb2R5KG5vZGUsIGRvbmUpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZWRpdE5vZGVQYXJ0QW5kUnVuKG5vZGUsICJ3
ZWJraXQtaHRtbC10YWctbmFtZSIsICJpbnB1dCIsIGRvbmUpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTZXROb2RlVmFsdWUobmV4dCkKLSAgICAg
ICAgewotICAgICAgICAgICAgZG9tQWN0aW9uVGVzdEZvck5vZGVJZCgidGVzdFNldE5vZGVWYWx1
ZSIsICJub2RlLXRvLXNldC12YWx1ZSIsIHRlc3RCb2R5LCBuZXh0KTsKLQotICAgICAgICAgICAg
ZnVuY3Rpb24gdGVzdEJvZHkobm9kZSwgZG9uZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBlZGl0Tm9kZVBhcnRBbmRSdW4obm9kZSwgIndlYmtpdC1odG1sLXRleHQtbm9kZSIsICIg
IFxuICBFZGl0ZWQgVGV4dCAgXG4gICIsIGRvbmUpOwotICAgICAgICAgICAgfQotICAgICAgICB9
LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRBdHRyaWJ1dGUobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgZG9tQWN0aW9uVGVzdEZvck5vZGVJZCgidGVzdFNldEF0dHJpYnV0ZSIsICJu
b2RlLXRvLXNldC1hdHRyaWJ1dGUiLCB0ZXN0Qm9keSwgbmV4dCk7Ci0gICAgICAgICAKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHRlc3RCb2R5KG5vZGUsIGRvbmUpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgZWRpdE5vZGVQYXJ0QW5kUnVuKG5vZGUsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1
dGUiLCAiYmFyPVwiZWRpdGVkIGF0dHJpYnV0ZVwiIiwgZG9uZSwgdHJ1ZSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFJlbW92ZUF0dHJpYnV0ZShu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBkb21BY3Rpb25UZXN0Rm9yTm9kZUlkKCJ0ZXN0
UmVtb3ZlQXR0cmlidXRlIiwgIm5vZGUtdG8tcmVtb3ZlLWF0dHJpYnV0ZSIsIHRlc3RCb2R5LCBu
ZXh0KTsKLSAgICAgICAgIAotICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEJvZHkobm9kZSwgZG9u
ZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBlZGl0Tm9kZVBhcnRBbmRSdW4obm9k
ZSwgIndlYmtpdC1odG1sLWF0dHJpYnV0ZSIsICIiLCBkb25lLCB0cnVlKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0QWRkQXR0cmlidXRlKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGRvbUFjdGlvblRlc3RGb3JOb2RlSWQoInRlc3RBZGRB
dHRyaWJ1dGUiLCAibm9kZS10by1hZGQtYXR0cmlidXRlIiwgdGVzdEJvZHksIG5leHQpOwotICAg
ICAgICAgCi0gICAgICAgICAgICBmdW5jdGlvbiB0ZXN0Qm9keShub2RlLCBkb25lKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHZhciBlZGl0b3JFbGVtZW50ID0gZWRpdE5vZGVQYXJ0
KG5vZGUsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUiKTsKLSAgICAgICAgICAgICAgICBlZGl0b3JF
bGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVzdC5jcmVhdGVLZXlFdmVudCgiVSswMDA5
IikpOyAvLyBUYWIKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXModGVzdENvbnRpbnVhdGlvbik7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gdGVzdENvbnRpbnVhdGlvbigpCi0g
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB2YXIgZWRpdG9yRWxlbWVudCA9
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlLnBhcmVudEVsZW1lbnQ7Ci0gICAgICAg
ICAgICAgICAgICAgIGVkaXRvckVsZW1lbnQudGV4dENvbnRlbnQgPSAibmV3YXR0cj1cIm5ldy12
YWx1ZVwiIjsKLSAgICAgICAgICAgICAgICAgICAgZWRpdG9yRWxlbWVudC5kaXNwYXRjaEV2ZW50
KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZVVw
ZGF0ZXIucHJvdG90eXBlLCAiX3VwZGF0ZU1vZGlmaWVkTm9kZXMiLCBkb25lKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24g
dGVzdEVkaXRDb21tZW50QXNIVE1MKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0
aW9uIGNvbW1lbnROb2RlU2VsZWN0aW9uQ2FsbGJhY2sodGVzdE5vZGUsIGNhbGxiYWNrKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciBjaGlsZE5vZGVzID0gdGVzdE5vZGUuY2hp
bGRyZW47Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZE5vZGVzLmxl
bmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZE5vZGVzW2ldLm5vZGVU
eXBlKCkgPT09IDgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5fdXBk
YXRlRm9jdXNlZE5vZGUoY2hpbGROb2Rlc1tpXS5pZCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBjYWxsYmFjayhjaGlsZE5vZGVzW2ldKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ29tbWVudCBub2RlIG5vdCBmb3VuZCIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBkb21BY3Rpb25UZXN0KCJ0ZXN0RWRpdENvbW1lbnRBc0hUTUwiLCBj
b21tZW50Tm9kZVNlbGVjdGlvbkNhbGxiYWNrLCB0ZXN0Qm9keSwgbmV4dCk7Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIHRlc3RCb2R5KG5vZGUsIGRvbmUpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50
cmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQobm9kZSk7Ci0gICAgICAgICAgICAgICAgdHJlZUVs
ZW1lbnQuX2VkaXRBc0hUTUwoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFm
dGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDIpOwotCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24g
c3RlcDIoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQodHJlZUVsZW1lbnQuX2VkaXRpbmcuY29kZU1pcnJvci5nZXRWYWx1ZSgp
KTsKLSAgICAgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuX2VkaXRpbmcuY29kZU1pcnJvci5z
ZXRWYWx1ZSgiPGRpdiBmb289XCJiYXItY29tbWVudFwiPkVsZW1lbnQ8L2Rpdj4iKTsKLSAgICAg
ICAgICAgICAgICAgICAgdmFyIGV2ZW50ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVLZXlFdmVudCgi
RW50ZXIiKTsKLSAgICAgICAgICAgICAgICAgICAgZXZlbnQuaXNNZXRhT3JDdHJsRm9yVGVzdCA9
IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50Ll9odG1sRWRpdEVsZW1lbnQu
ZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
cnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhkb25lKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEVkaXRBc0hUTUwo
bmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZG9tQWN0aW9uVGVzdEZvck5vZGVJZCgidGVz
dEVkaXRBc0hUTUwiLCAibm9kZS10by1lZGl0LWFzLWh0bWwiLCB0ZXN0Qm9keSwgbmV4dCk7Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RCb2R5KG5vZGUsIGRvbmUpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5l
bGVtZW50cy50cmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQobm9kZSk7Ci0gICAgICAgICAgICAg
ICAgdHJlZUVsZW1lbnQuX2VkaXRBc0hUTUwoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDIpOwotCi0gICAgICAgICAgICAgICAg
ZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodHJlZUVsZW1lbnQuX2VkaXRpbmcuY29kZU1pcnJvci5n
ZXRWYWx1ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuX2VkaXRpbmcuY29k
ZU1pcnJvci5zZXRWYWx1ZSgiPHNwYW4gZm9vPVwiYmFyXCI+PHNwYW4gaWQ9XCJpbm5lci1zcGFu
XCI+U3BhbiBjb250ZW50czwvc3Bhbj48L3NwYW4+Iik7Ci0gICAgICAgICAgICAgICAgICAgIHZh
ciBldmVudCA9IEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIik7Ci0gICAgICAg
ICAgICAgICAgICAgIGV2ZW50LmlzTWV0YU9yQ3RybEZvclRlc3QgPSB0cnVlOwotICAgICAgICAg
ICAgICAgICAgICB0cmVlRWxlbWVudC5faHRtbEVkaXRFbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZl
bnQpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rp
c3BhdGNoZXMoSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUuYmluZChJbnNwZWN0b3JU
ZXN0LCBkb25lKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9
LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RFZGl0SW52aXNpYmxlQ2hhcnNBc0hUTUwobmV4dCkK
LSAgICAgICAgewotICAgICAgICAgICAgZG9tQWN0aW9uVGVzdEZvck5vZGVJZCgidGVzdEVkaXRJ
bnZpc2libGVDaGFyc0FzSFRNTCIsICJub2RlLXdpdGgtaW52aXNpYmxlLWNoYXJzIiwgdGVzdEJv
ZHksIG5leHQpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiB0ZXN0Qm9keShub2RlLCBkb25lKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IFdlYkluc3Bl
Y3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KG5vZGUpOwot
ICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50Ll9lZGl0QXNIVE1MKCk7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAyKTsKLQotICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgIHZhciBjb2RlTWlycm9yID0gdHJlZUVsZW1lbnQuX2VkaXRpbmcuY29kZU1p
cnJvcjsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoY29kZU1p
cnJvci5nZXRWYWx1ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgY29kZU1pcnJvci5zZXRWYWx1
ZShjb2RlTWlycm9yLmdldFZhbHVlKCkucmVwbGFjZSgvJi9nLCAnIycpKTsKLSAgICAgICAgICAg
ICAgICAgICAgdmFyIGV2ZW50ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVLZXlFdmVudCgiRW50ZXIi
KTsKLSAgICAgICAgICAgICAgICAgICAgZXZlbnQuaXNNZXRhT3JDdHJsRm9yVGVzdCA9IHRydWU7
Ci0gICAgICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50Ll9odG1sRWRpdEVsZW1lbnQuZGlzcGF0
Y2hFdmVudChldmVudCk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0
ZXJQZW5kaW5nRGlzcGF0Y2hlcyhJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZS5iaW5k
KEluc3BlY3RvclRlc3QsIGRvbmUpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEVkaXRTY3JpcHQobmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgZG9tQWN0aW9uVGVzdEZvck5vZGVJZCgidGVzdEVkaXRTY3Jp
cHQiLCAibm9kZS10by1lZGl0LXNjcmlwdCIsIHRlc3RCb2R5LCBuZXh0KTsKLQotICAgICAgICAg
ICAgZnVuY3Rpb24gdGVzdEJvZHkobm9kZSwgZG9uZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBlZGl0Tm9kZVBhcnRBbmRSdW4obm9kZSwgIndlYmtpdC1odG1sLXRleHQtbm9kZSIs
ICJcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGogPSAwO1xuIiwgZG9uZSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGZ1bmN0aW9uIGRvbUFjdGlvblRlc3RGb3JO
b2RlSWQodGVzdE5hbWUsIGRhdGFOb2RlSWQsIHRlc3RCb2R5LCBuZXh0KQotICAgIHsKLSAgICAg
ICAgZnVuY3Rpb24gY2FsbGJhY2sodGVzdE5vZGUsIGNvbnRpbnVhdGlvbikKLSAgICAgICAgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElkKGRhdGFOb2RlSWQsIGNv
bnRpbnVhdGlvbik7Ci0gICAgICAgIH0KLSAgICAgICAgZG9tQWN0aW9uVGVzdCh0ZXN0TmFtZSwg
Y2FsbGJhY2ssIHRlc3RCb2R5LCBuZXh0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkb21BY3Rp
b25UZXN0KHRlc3ROYW1lLCBkYXRhTm9kZVNlbGVjdGlvbkNhbGxiYWNrLCB0ZXN0Qm9keSwgbmV4
dCkKLSAgICB7Ci0gICAgICAgIHZhciB0ZXN0Tm9kZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWRO
b2RlV2l0aElkKHRlc3ROYW1lKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09
PT0gYmVmb3JlID09PT0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVl
KHRlc3ROb2RlKTsKLQotICAgICAgICBkYXRhTm9kZVNlbGVjdGlvbkNhbGxiYWNrKHRlc3ROb2Rl
LCBzdGVwMCk7Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDAobm9kZSkKLSAgICAgICAgewotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAxLmJp
bmQobnVsbCwgbm9kZSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDEobm9k
ZSkKLSAgICAgICAgewotICAgICAgICAgICAgdGVzdEJvZHkobm9kZSwgc3RlcDIpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PSBhZnRlciA9PT09Iik7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUodGVzdE5vZGUpOwotICAgICAgICAgICAgbmV4
dCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZWRpdE5vZGVQYXJ0KG5vZGUs
IGNsYXNzTmFtZSkKLSAgICB7Ci0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9IFdlYkluc3BlY3Rv
ci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KG5vZGUpOwotICAg
ICAgICB2YXIgdGV4dEVsZW1lbnQgPSB0cmVlRWxlbWVudC5saXN0SXRlbUVsZW1lbnQuZ2V0RWxl
bWVudHNCeUNsYXNzTmFtZShjbGFzc05hbWUpWzBdOwotICAgICAgICBpZiAoIXRleHRFbGVtZW50
ICYmIHRyZWVFbGVtZW50LmNoaWxkcmVuTGlzdEVsZW1lbnQpCi0gICAgICAgICAgICB0ZXh0RWxl
bWVudCA9IHRyZWVFbGVtZW50LmNoaWxkcmVuTGlzdEVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZShjbGFzc05hbWUpWzBdOwotICAgICAgICB0cmVlRWxlbWVudC5fc3RhcnRFZGl0aW5nVGFy
Z2V0KHRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIHRleHRFbGVtZW50OwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIGVkaXROb2RlUGFydEFuZFJ1bihub2RlLCBjbGFzc05hbWUsIG5ld1ZhbHVl
LCBzdGVwMiwgdXNlU25pZmZlcikKLSAgICB7Ci0gICAgICAgIHZhciBlZGl0b3JFbGVtZW50ID0g
ZWRpdE5vZGVQYXJ0KG5vZGUsIGNsYXNzTmFtZSk7Ci0gICAgICAgIGVkaXRvckVsZW1lbnQudGV4
dENvbnRlbnQgPSBuZXdWYWx1ZTsKLSAgICAgICAgZWRpdG9yRWxlbWVudC5kaXNwYXRjaEV2ZW50
KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotICAgICAgICBpZiAodXNl
U25pZmZlcikKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0
b3IuRWxlbWVudHNUcmVlVXBkYXRlci5wcm90b3R5cGUsICJfdXBkYXRlTW9kaWZpZWROb2RlcyIs
IHN0ZXAyKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRl
clBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAyKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgdXNlciBjYW4g
bXV0YXRlIERPTSBieSBtZWFucyBvZiBlbGVtZW50cyBwYW5lbC4KLTwvcD4KLQotPGRpdj4KLSAg
ICA8ZGl2IGlkPSJ0ZXN0UmVtb3ZlIj4KLSAgICAgICAgPGRpdiBpZD0ibm9kZS10by1yZW1vdmUi
PjwvZGl2PgotICAgIDwvZGl2PgotCi0gICAgPGRpdiBpZD0idGVzdFNldE5vZGVOYW1lIj4KLSAg
ICAgICAgPGRpdiBpZD0ibm9kZS10by1zZXQtbmFtZSI+PC9kaXY+Ci0gICAgPC9kaXY+Ci0KLSAg
ICA8ZGl2IGlkPSJ0ZXN0U2V0Tm9kZU5hbWVJbnB1dCI+Ci0gICAgICAgIDxkaXYgaWQ9Im5vZGUt
dG8tc2V0LW5hbWUtaW5wdXQiPjwvZGl2PgotICAgIDwvZGl2PgotCi0gICAgPGRpdiBpZD0idGVz
dFNldE5vZGVWYWx1ZSI+Ci0gICAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tc2V0LXZhbHVlIj4KLSAg
ICAgICAgICBUZXh0Ci0gICAgICAgIDwvZGl2PgotICAgIDwvZGl2PgotCi0gICAgPGRpdiBpZD0i
dGVzdFNldEF0dHJpYnV0ZSI+Ci0gICAgICAgIDxkaXYgZm9vPSJhdHRyaWJ1dGUgdmFsdWUiIGlk
PSJub2RlLXRvLXNldC1hdHRyaWJ1dGUiPjwvZGl2PgotICAgIDwvZGl2PgotCi0gICAgPGRpdiBp
ZD0idGVzdFJlbW92ZUF0dHJpYnV0ZSI+Ci0gICAgICAgIDxkaXYgZm9vPSJhdHRyaWJ1dGUgdmFs
dWUiIGlkPSJub2RlLXRvLXJlbW92ZS1hdHRyaWJ1dGUiPjwvZGl2PgotICAgIDwvZGl2PgotCi0g
ICAgPGRpdiBpZD0idGVzdEFkZEF0dHJpYnV0ZSI+Ci0gICAgICAgIDxkaXYgaWQ9Im5vZGUtdG8t
YWRkLWF0dHJpYnV0ZSI+PC9kaXY+Ci0gICAgPC9kaXY+Ci0KLSAgICA8ZGl2IGlkPSJ0ZXN0RWRp
dEFzSFRNTCI+Ci0gICAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tZWRpdC1hcy1odG1sIj48c3BhbiBp
ZD0ic3BhbiI+VGV4dDwvc3Bhbj48L2Rpdj4KLSAgICA8L2Rpdj4KLQotICAgIDxkaXYgaWQ9InRl
c3RFZGl0SW52aXNpYmxlQ2hhcnNBc0hUTUwiPgotICAgICAgICA8ZGl2IGlkPSJub2RlLXdpdGgt
aW52aXNpYmxlLWNoYXJzIj5BJm5ic3A7QiZlbnNwO0MmZW1zcDtEJnRoaW5zcDtFJnp3bmo7RiZ6
d2o7RyZybG07SCZscm07STwvZGl2PgotICAgIDwvZGl2PgotCi0gICAgPGRpdiBpZD0idGVzdEVk
aXRTY3JpcHQiPgotICAgICAgICA8c2NyaXB0IGlkPSJub2RlLXRvLWVkaXQtc2NyaXB0Ij4KLQot
ICAgICAgICAgIHZhciBpID0gMDsKLSAgICAgICAgICB2YXIgaiA9IDU7Ci0gICAgICAgICAgZm9y
ICg7IGkgPCBqOyArK2kpIHsKLSAgICAgICAgICAgICAgLy8gRG8gbm90aGluZy4KLSAgICAgICAg
ICB9Ci0KLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9kaXY+Ci0KLSAgICA8ZGl2IGlkPSJ0ZXN0
RWRpdENvbW1lbnRBc0hUTUwiPgotICAgICAgICA8IS0tIENvbW1lbnQgLS0+Ci0gICAgPC9kaXY+
Ci0KLTwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2VkaXQtc3R5bGUtYXR0cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lZGl0LXN0eWxlLWF0dHJpYnV0ZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2NTIzODQuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtc3R5bGUtYXR0cmlidXRlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRlc3RzIHRoYXQgc3R5bGUg
bW9kaWZpY2F0aW9uIGdlbmVyYXRlcyBhdHRyaWJ1dGUgdXBkYXRlZCBldmVudCBvbmx5IHdoZW4g
YXR0cmlidXRlIGlzIGFjdHVhbGx5IGNoYW5nZWQuCi0KLQotUnVubmluZzogdGVzdFNldFVwCi0K
LVJ1bm5pbmc6IHRlc3RTZXROZXdWYWx1ZQotV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5B
dHRyTW9kaWZpZWQgc2hvdWxkIGJlIGlzc3VlZAotCi1SdW5uaW5nOiB0ZXN0U2V0U2FtZVZhbHVl
Ci1XZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUuX3NldEF0dHJpYnV0ZXNQYXlsb2FkIHNo
b3VsZCBiZSBjYWxsZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2VkaXQtc3R5bGUtYXR0cmlidXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvZWRpdC1zdHlsZS1hdHRyaWJ1dGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNjdmN2NhMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvZWRpdC1zdHlsZS1hdHRyaWJ1dGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQot
ZnVuY3Rpb24gdGVzdFNldE5ld1ZhbHVlKCkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibm9kZS1zZXQtbmV3LXZhbHVlIikuc3R5bGUuc2V0UHJvcGVydHkoImNvbG9yIiwgImJsdWUi
KTsKLX0KLQotZnVuY3Rpb24gdGVzdFNldFNhbWVWYWx1ZSgpCi17Ci0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm5vZGUtc2V0LXNhbWUtdmFsdWUiKS5zdHlsZS5zZXRQcm9wZXJ0eSgiY29s
b3IiLCAicmVkIik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIC8vIFNhdmUgdGltZSBv
biBzdHlsZSB1cGRhdGVzLgotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7
Ci0gICAgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZS51cGRhdGUgPSBm
dW5jdGlvbigpIHt9OwotICAgIFdlYkluc3BlY3Rvci5NZXRyaWNzU2lkZWJhclBhbmUucHJvdG90
eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKCkge307Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RT
dWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRVcChuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShuZXh0KTsKLSAgICAgICAg
fSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0TmV3VmFsdWUobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgidGVzdFNldE5ld1ZhbHVl
KCkiKTsKLQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQsIGxpc3RlbmVyKTsK
LSAgICAgICAgICAgIGZ1bmN0aW9uIGxpc3RlbmVyKGV2ZW50KQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJXZWJJbnNwZWN0b3IuRE9NQWdl
bnQuRXZlbnRzLkF0dHJNb2RpZmllZCBzaG91bGQgYmUgaXNzdWVkIik7Ci0gICAgICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkRPTUFnZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQsIGxpc3RlbmVyKTsKLSAgICAgICAgICAgICAg
ICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24g
dGVzdFNldFNhbWVWYWx1ZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJ0ZXN0U2V0U2FtZVZhbHVlKCkiKTsKLQotICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFn
ZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQsIGxpc3RlbmVyKTsKLSAgICAgICAgICAgIGZ1bmN0aW9u
IGxpc3RlbmVyKGV2ZW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkF0dHJNb2RpZmll
ZCBzaG91bGQgbm90IGJlIGlzc3VlZCIpOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
b21BZ2VudC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMu
QXR0ck1vZGlmaWVkLCBsaXN0ZW5lcik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUsICJf
c2V0QXR0cmlidXRlc1BheWxvYWQiLCBjYWxsYmFjayk7Ci0gICAgICAgICAgICBmdW5jdGlvbiBj
YWxsYmFjaygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIldlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZS5fc2V0QXR0cmlidXRlc1Bh
eWxvYWQgc2hvdWxkIGJlIGNhbGxlZCIpOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
b21BZ2VudC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMu
QXR0ck1vZGlmaWVkLCBsaXN0ZW5lcik7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgc3R5bGUgbW9kaWZpY2F0
aW9uIGdlbmVyYXRlcyBhdHRyaWJ1dGUgdXBkYXRlZCBldmVudCBvbmx5IHdoZW4gYXR0cmlidXRl
IGlzIGFjdHVhbGx5IGNoYW5nZWQuCi08L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAg
PGRpdiBpZD0ibm9kZS1zZXQtbmV3LXZhbHVlIiBzdHlsZT0iY29sb3I6cmVkIj48L2Rpdj4KLSAg
ICA8ZGl2IGlkPSJub2RlLXNldC1zYW1lLXZhbHVlIiBzdHlsZT0iY29sb3I6cmVkIj48L2Rpdj4K
LTwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL2VsZW1lbnRzLWRlbGV0ZS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWRlbGV0ZS1pbmxpbmUtc3R5
bGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYWUwOTlkLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1kZWxl
dGUtaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAg
QEAKLVRlc3RzIHRoYXQgdGhlICJzdHlsZSIgYXR0cmlidXRlIHJlbW92YWwgcmVzdWx0cyBpbiB0
aGUgU3R5bGVzIHNpZGViYXIgcGFuZSB1cGRhdGUgKG5vdCBhIGNyYXNoKS4gQnVnIDUxNDc4Ci0K
LUJlZm9yZSBzdHlsZSBwcm9wZXJ0eSByZW1vdmFsOgotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5
bGUgIHsgKCkKLWNvbG9yOiByZWQ7Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09
PT09Ci1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5
OiBibG9jazsKLQotCi1BZnRlciBzdHlsZSBwcm9wZXJ0eSByZW1vdmFsOgotW2V4cGFuZGVkXSAK
LWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09
PT0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6
IGJsb2NrOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L2VsZW1lbnRzLWRlbGV0ZS1pbmxpbmUtc3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9lbGVtZW50cy1kZWxldGUtaW5saW5lLXN0eWxlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI0NmYwZWIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWRlbGV0ZS1pbmxpbmUtc3R5bGUuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9y
LnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRX
YWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMShu
b2RlKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkJlZm9yZSBzdHls
ZSBwcm9wZXJ0eSByZW1vdmFsOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3Rl
ZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKCJzdHls
ZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHN0
ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgc3R5bGUgcHJvcGVydHkgcmVtb3ZhbDoiKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgdGhl
ICJzdHlsZSIgYXR0cmlidXRlIHJlbW92YWwgcmVzdWx0cyBpbiB0aGUgU3R5bGVzIHNpZGViYXIg
cGFuZSB1cGRhdGUgKG5vdCBhIGNyYXNoKS4gPGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTE0NzgiPkJ1ZyA1MTQ3ODwvYT4KLTwvcD4KLQotPGRpdiBpZD0i
aW5zcGVjdGVkIiBzdHlsZT0iY29sb3I6IHJlZCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtaW1nLXRv
b2x0aXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1l
bnRzLWltZy10b29sdGlwLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjlkODlkZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
ZWxlbWVudHMtaW1nLXRvb2x0aXAtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSAr
MCwwIEBACi1UZXN0cyB0aGUgdG9vbHRpcCBmb3IgdGhlIGltYWdlIG9uIGhvdmVyLgotCi0KLVBB
U1NFRCwgaW1hZ2UgZGltZW5zaW9ucyBmb3IgdG9vbHRpcDogMjE1eDE3NC4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWltZy10b29sdGlwLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtaW1nLXRvb2x0aXAu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGIwYTEyMS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtaW1nLXRvb2x0aXAuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci0KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotCi0gICAgdmFyIHRyZWVF
bGVtZW50OwotICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgiaW1hZ2UiLCBzdGVwMSk7Ci0K
LSAgICBmdW5jdGlvbiBzdGVwMShub2RlKQotICAgIHsKLSAgICAgICAgdHJlZUVsZW1lbnQgPSBX
ZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChu
b2RlKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5fbG9hZERpbWVuc2lv
bnNGb3JOb2RlKHRyZWVFbGVtZW50LCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3Rl
cDIoZGltZW5zaW9ucykKLSAgICB7Ci0gICAgICAgIGNvbnN0IEVYUEVDVEVEX1dJRFRIID0gMjE1
OwotICAgICAgICBjb25zdCBFWFBFQ1RFRF9IRUlHSFQgPSAxNzQ7Ci0KLSAgICAgICAgaWYgKCFk
aW1lbnNpb25zKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxFRCwg
bm8gZGltZW5zaW9ucyBvbiB0cmVlRWxlbWVudC4iKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICBpZiAoZGltZW5zaW9ucy5vZmZzZXRXaWR0aCA9PT0gZGltZW5zaW9ucy5uYXR1cmFsV2lk
dGggJiYgZGltZW5zaW9ucy5vZmZzZXRIZWlnaHQgPT0gZGltZW5zaW9ucy5uYXR1cmFsSGVpZ2h0
Ci0gICAgICAgICAgICAgICAgJiYgZGltZW5zaW9ucy5vZmZzZXRXaWR0aCA9PT0gRVhQRUNURURf
V0lEVEggJiYgZGltZW5zaW9ucy5vZmZzZXRIZWlnaHQgPT09IEVYUEVDVEVEX0hFSUdIVCkKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUEFTU0VELCBpbWFnZSBkaW1l
bnNpb25zIGZvciB0b29sdGlwOiAiICsgRVhQRUNURURfV0lEVEggKyAieCIgKyBFWFBFQ1RFRF9I
RUlHSFQgKyAiLiIpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJGQUlMRUQsIGltYWdlIGRpbWVuc2lvbnMgZm9yIHRvb2x0aXA6ICIg
KyBmb3JtYXREaW1lbnNpb25zKGRpbWVuc2lvbnMpICsgIiAoc2hvdWxkIGJlICIgKyBFWFBFQ1RF
RF9XSURUSCArICJ4IiArIEVYUEVDVEVEX0hFSUdIVCArICIpLiIpOwotICAgICAgICB9Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
Zm9ybWF0RGltZW5zaW9ucyhkaW1lbnNpb25zKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGRpbWVu
c2lvbnMub2Zmc2V0V2lkdGggKyAieCIgKyBkaW1lbnNpb25zLm9mZnNldEhlaWdodCArICIgKG5h
dHVyYWw6ICIgKyBkaW1lbnNpb25zLm5hdHVyYWxXaWR0aCArICJ4IiArIGRpbWVuc2lvbnMubmF0
dXJhbEhlaWdodCArICIpIjsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoZSB0b29sdGlwIGZvciB0aGUgaW1h
Z2Ugb24gaG92ZXIuCi08L3A+Ci0KLTxpbWcgaWQ9ImltYWdlIiBzcmM9ImRhdGE6aW1hZ2UvcG5n
O2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTmNBQUFDdUNBSUFBQUFxTWcvckFBQUFB
WE5TUjBJQXJzNGM2UUFBQVU5SlJFRlVlTnJ0MGpFUkFBQUl4RERBditkSEF4TkxJcUhYVGxMd2Fp
VEFoZUJDWEFndXhJWGdRbHdJTHNTRjRFSmNDQzdFaGVCQ1hBZ3V4SVhnUWx3SUxzU0Y0RUpjQ0M3
RWhlQkNYQWd1eElYZ1Fsd0lMc1NGNEVKY0NDN0VoZUJDWEFndXhJWGdRbHdJTHNTRjRFSmNDQzdF
aGVCQ1hBZ3V4SVhnUWx3SUxzU0Y0RUpjQ0M3RWhlQkNYQWd1eElYZ1Fsd0lMc1NGNEVKY0NDN0Vo
ZUJDWEFndXhJWGdRbHdJTHNTRjRFSmNDQzdFaGVCQ1hBZ3V4SVhnUWx3SUxzU0Y0RUpjQ0M3RWhl
QkNYQWd1eElYZ1Fsd0lMc1NGNEVKY0NDN0VoZUJDWEFndXhJWGdRbHdJTHNTRjRFSmNDQzdFaGVC
Q1hBZ3V4SVhnUWx3SUxzU0ZFdUJDY0NFdUJCZmlRbkFoTGdRWDRrSndJUzRFRitKQ2NDRXVCQmZp
UW5BaExnUVg0a0p3SVM0RUYrSkNjQ0V1QkJmaVFuQWhMZ1FYNGtKd0lTNEVGK0pDY0NFdUJCZmlR
bkFoTG9TREJaWHFCRm5rUnllcUFBQUFBRWxGVGtTdVFtQ0MiLz4KLQotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWlu
c3BlY3QtaWZyYW1lLWZyb20tZGlmZmVyZW50LWRvbWFpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtaW5zcGVjdC1pZnJhbWUtZnJvbS1kaWZm
ZXJlbnQtZG9tYWluLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjJkNmVjOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxl
bWVudHMtaW5zcGVjdC1pZnJhbWUtZnJvbS1kaWZmZXJlbnQtZG9tYWluLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotVGVzdCB0aGF0IHdlYiBpbnNwZWN0b3IgY2Fu
IHNlbGVjdCBlbGVtZW50IGluIGFuIGlmcmFtZSBldmVuIGlmIHRoZSBlbGVtZW50IHdhcyBjcmVh
dGVkIHZpYSBjcmVhdGVFbGVtZW50IG9mIGRvY3VtZW50IG90aGVyIHRoYW4gaWZyYW1lJ3MgZG9j
dW1lbnQuIEJ1ZyA2MDAzMQotCi0KLVBBU1M6IHNlbGVjdGVkIG5vZGUgIHdpdGggaWQgJ21haW4t
ZnJhbWUtZGl2JwotUEFTUzogc2VsZWN0ZWQgbm9kZSAgd2l0aCBpZCAnaWZyYW1lLWRpdicKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWluc3Bl
Y3QtaWZyYW1lLWZyb20tZGlmZmVyZW50LWRvbWFpbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL2VsZW1lbnRzLWluc3BlY3QtaWZyYW1lLWZyb20tZGlmZmVyZW50LWRvbWFp
bi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmEzY2Q5Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1pbnNwZWN0LWlmcmFt
ZS1mcm9tLWRpZmZlcmVudC1kb21haW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZh
ciBlbDE7Ci12YXIgZWwyOwotZnVuY3Rpb24gY3JlYXRlRHluYW1pY0VsZW1lbnRzKCkKLXsKLSAg
ICB2YXIgbWFpbkRvYyA9IGRvY3VtZW50OwotICAgIHZhciBmcmFtZURvYyA9IHdpbmRvdy5mcmFt
ZXNbMF0uZG9jdW1lbnQ7Ci0KLSAgICBlbDEgPSBtYWluRG9jLmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotICAgIGVsMS5pZCA9ICJtYWluLWZyYW1lLWRpdiI7Ci0gICAgZWwyID0gZnJhbWVEb2MuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZWwyLmlkID0gImlmcmFtZS1kaXYiOwotCi0gICAgZWwx
LmlubmVySFRNTCA9ICdFbGVtZW50IGNyZWF0ZWQgdmlhICZsdDttYWluIGRvY3VtZW50Pi5jcmVh
dGVFbGVtZW50JzsKLSAgICBlbDIuaW5uZXJIVE1MID0gJ0VsZW1lbnQgY3JlYXRlZCB2aWEgJmx0
O2ZyYW1lIGRvY3VtZW50Pi5jcmVhdGVFbGVtZW50JzsKLQotICAgIGZyYW1lRG9jLmJvZHkuYXBw
ZW5kQ2hpbGQoZWwxKTsKLSAgICBmcmFtZURvYy5ib2R5LmFwcGVuZENoaWxkKGVsMik7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3QoKQotewotICAgIC8vSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElk
KCJtYWluLWZyYW1lLWRpdiIsIHN0ZXAxKTsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJjcmVhdGVEeW5hbWljRWxlbWVudHMoKSIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHNl
bGVjdGVkTm9kZUlkKCkKLSAgICB7Ci0gICAgICAgIHZhciBzZWxlY3RlZEVsZW1lbnQgPSBXZWJJ
bnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQ7
Ci0gICAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuICI8bm8g
c2VsZWN0ZWQgbm9kZT4iOwotICAgICAgICByZXR1cm4gc2VsZWN0ZWRFbGVtZW50LnJlcHJlc2Vu
dGVkT2JqZWN0LmdldEF0dHJpYnV0ZSgiaWQiKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJpbnNw
ZWN0KGVsMSkiLCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAzKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICB2YXIgaWQgPSBz
ZWxlY3RlZE5vZGVJZCgpOwotICAgICAgICBpZiAoaWQgPT09ICJtYWluLWZyYW1lLWRpdiIpCi0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUEFTUzogc2VsZWN0ZWQgbm9kZSAg
d2l0aCBpZCAnIiArIGlkICsgIiciKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIkZBSUw6IHVuZXhwZWN0ZWQgc2VsZWN0aW9uICIgKyBpZCk7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImluc3BlY3QoZWwyKSIsIHN0
ZXA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDUpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIHZhciBpZCA9IHNlbGVjdGVkTm9kZUlk
KCk7Ci0gICAgICAgIGlmIChpZCA9PT0gImlmcmFtZS1kaXYiKQotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlBBU1M6IHNlbGVjdGVkIG5vZGUgIHdpdGggaWQgJyIgKyBpZCAr
ICInIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJGQUlMOiB1bmV4cGVjdGVkIHNlbGVjdGlvbiAiICsgaWQpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3QgdGhhdCB3ZWIgaW5zcGVjdG9yIGNhbiBz
ZWxlY3QgZWxlbWVudCBpbiBhbiBpZnJhbWUgZXZlbiBpZiB0aGUgZWxlbWVudCB3YXMgY3JlYXRl
ZAotdmlhIDxjb2RlPmNyZWF0ZUVsZW1lbnQ8L2NvZGU+IG9mIDxjb2RlPmRvY3VtZW50PC9jb2Rl
PiBvdGhlciB0aGFuIGlmcmFtZSdzIDxjb2RlPmRvY3VtZW50PC9jb2RlPi4KLTxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDAzMSI+QnVnIDYwMDMxPC9h
PgotPC9wPgotPGlmcmFtZSBzdHlsZT0id2lkdGg6NDAwcHgiPjwvaWZyYW1lPgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1l
bnRzLXBhbmVsLWxpbWl0ZWQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLWxpbWl0ZWQtY2hpbGRyZW4tZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTE4N2E1Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1saW1pdGVkLWNo
aWxkcmVuLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTEKLTMK
LTQKLTUKLTYKLTcKLTgKLTkKLTEwCi1UZXN0cyB0aGF0IHNyYyBhbmQgaHJlZiBlbGVtZW50IHRh
cmdldHMgYXJlIHJld3JpdHRlbiBwcm9wZXJseS4KLQotPT09PT09PT09PT0gTG9hZGVkIDUgY2hp
bGRyZW4gPT09PT09PT09PT0KLS0gPGh0bWw+Ci0gICAgKyA8aGVhZD7igKY8L2hlYWQ+Ci0gICAg
LSA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgICAgIC0gPGRpdiBpZD0iZGF0YSI+Ci0g
ICAgICAgICAgICAgIDxkaXYgaWQ9ImlkMSI+MTwvZGl2PgotICAgICAgICAgICAgICA8ZGl2IGlk
PSJpZDIiPjI8L2Rpdj4KLSAgICAgICAgICAgICAgPGRpdiBpZD0iaWQzIj4zPC9kaXY+Ci0gICAg
ICAgICAgICAgIDxkaXYgaWQ9ImlkNCI+NDwvZGl2PgotICAgICAgICAgICAgICA8ZGl2IGlkPSJp
ZDUiPjU8L2Rpdj4KLSAgICAgICAgICAgICAgU2hvdyBBbGwgTm9kZXMgKDUgTW9yZSkKLSAgICAg
ICAgICA8L2Rpdj4KLSAgICAgICAgICA8cD5cblRlc3RzIHRoYXQgc3JjIGFuZCBocmVmIGVsZW1l
bnQgdGFyZ2V0cyBhcmUgcmV3cml0dGVuIHByb3Blcmx5LlxuPC9wPgotICAgICAgPC9ib2R5Pgot
ICA8L2h0bWw+Ci09PT09PT09PT09PSBNb2RpZmllZCBjaGlsZHJlbiA9PT09PT09PT09PQotLSA8
aHRtbD4KLSAgICArIDxoZWFkPuKApjwvaGVhZD4KLSAgICAtIDxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLSAgICAgICAgLSA8ZGl2IGlkPSJkYXRhIj4KLSAgICAgICAgICAgICAgPGE+PC9hPgot
ICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDEiPjE8L2Rpdj4KLSAgICAgICAgICAgICAgPGRpdiBp
ZD0iaWQzIj4zPC9kaXY+Ci0gICAgICAgICAgICAgIDxkaXYgaWQ9ImlkNCI+NDwvZGl2PgotICAg
ICAgICAgICAgICA8ZGl2IGlkPSJpZDUiPjU8L2Rpdj4KLSAgICAgICAgICAgICAgU2hvdyBBbGwg
Tm9kZXMgKDYgTW9yZSkKLSAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICA8cD5cblRlc3RzIHRo
YXQgc3JjIGFuZCBocmVmIGVsZW1lbnQgdGFyZ2V0cyBhcmUgcmV3cml0dGVuIHByb3Blcmx5Llxu
PC9wPgotICAgICAgICArIDxkaXY+4oCmPC9kaXY+Ci0gICAgICA8L2JvZHk+Ci0gIDwvaHRtbD4K
LT09PT09PT09PT09IExvYWRlZCBhbGwgY2hpbGRyZW4gPT09PT09PT09PT0KLS0gPGh0bWw+Ci0g
ICAgKyA8aGVhZD7igKY8L2hlYWQ+Ci0gICAgLSA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0g
ICAgICAgIC0gPGRpdiBpZD0iZGF0YSI+Ci0gICAgICAgICAgICAgIDxhPjwvYT4KLSAgICAgICAg
ICAgICAgPGRpdiBpZD0iaWQxIj4xPC9kaXY+Ci0gICAgICAgICAgICAgIDxkaXYgaWQ9ImlkMyI+
MzwvZGl2PgotICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDQiPjQ8L2Rpdj4KLSAgICAgICAgICAg
ICAgPGRpdiBpZD0iaWQ1Ij41PC9kaXY+Ci0gICAgICAgICAgICAgIDxkaXYgaWQ9ImlkNiI+Njwv
ZGl2PgotICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDciPjc8L2Rpdj4KLSAgICAgICAgICAgICAg
PGRpdiBpZD0iaWQ4Ij44PC9kaXY+Ci0gICAgICAgICAgICAgIDxkaXYgaWQ9ImlkOSI+OTwvZGl2
PgotICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDEwIj4xMDwvZGl2PgotICAgICAgICAgICAgICA8
YT48L2E+Ci0gICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgPHA+XG5UZXN0cyB0aGF0IHNyYyBh
bmQgaHJlZiBlbGVtZW50IHRhcmdldHMgYXJlIHJld3JpdHRlbiBwcm9wZXJseS5cbjwvcD4KLSAg
ICAgICAgKyA8ZGl2PuKApjwvZGl2PgotICAgICAgPC9ib2R5PgotICA8L2h0bWw+Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1saW1p
dGVkLWNoaWxkcmVuLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVu
dHMtcGFuZWwtbGltaXRlZC1jaGlsZHJlbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkOGYxYmJkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9lbGVtZW50cy1wYW5lbC1saW1pdGVkLWNoaWxkcmVuLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw4MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLWZ1bmN0aW9uIGluc2VydE5vZGUoKQotewotICAgIHZhciBkYXRhRWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkYXRhIik7Ci0gICAgZGF0YUVsZW1lbnQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpKTsKLSAgICBkYXRhRWxlbWVudC5yZW1v
dmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWQyIikpOwotICAgIHZhciBhRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKLSAgICBkYXRhRWxlbWVudC5pbnNlcnRC
ZWZvcmUoYUVsZW1lbnQsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZDEiKSk7Ci0gICAgZGF0
YUVsZW1lbnQuYXBwZW5kQ2hpbGQoYUVsZW1lbnQpOwotICAgIGRhdGFFbGVtZW50Lmluc2VydEJl
Zm9yZShhRWxlbWVudCwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkMSIpKTsKLX0KLQotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIGRhdGFUcmVlRWxlbWVudDsKLSAgICBXZWJJbnNwZWN0
b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgi
ZGF0YSIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKG5vZGUpCi0gICAgewotICAgICAg
ICBkYXRhVHJlZUVsZW1lbnQgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRs
aW5lLmZpbmRUcmVlRWxlbWVudChub2RlKTsKLSAgICAgICAgZGF0YVRyZWVFbGVtZW50Ll9leHBh
bmRlZENoaWxkcmVuTGltaXQgPSA1OwotICAgICAgICBkYXRhVHJlZUVsZW1lbnQucmV2ZWFsKCk7
Ci0gICAgICAgIGRhdGFUcmVlRWxlbWVudC5leHBhbmQoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09
PT09PT0gTG9hZGVkIDUgY2hpbGRyZW4gPT09PT09PT09PT0iKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5kdW1wRWxlbWVudHNUcmVlKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoImluc2VydE5vZGUoKSIsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNo
ZXMoc3RlcDQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICB7ICAgCi0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT09PSBNb2RpZmllZCBjaGlsZHJl
biA9PT09PT09PT09PSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUo
KTsKLSAgICAgICAgZGF0YVRyZWVFbGVtZW50LmhhbmRsZUxvYWRBbGxDaGlsZHJlbigpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDUpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCI9PT09PT09PT09PSBMb2FkZWQgYWxsIGNoaWxkcmVuID09PT09PT09PT09Iik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSgpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08ZGl2IGlkPSJkYXRhIj4KLTxkaXYgaWQ9Imlk
MSI+MTwvZGl2PgotPGRpdiBpZD0iaWQyIj4yPC9kaXY+Ci08ZGl2IGlkPSJpZDMiPjM8L2Rpdj4K
LTxkaXYgaWQ9ImlkNCI+NDwvZGl2PgotPGRpdiBpZD0iaWQ1Ij41PC9kaXY+Ci08ZGl2IGlkPSJp
ZDYiPjY8L2Rpdj4KLTxkaXYgaWQ9ImlkNyI+NzwvZGl2PgotPGRpdiBpZD0iaWQ4Ij44PC9kaXY+
Ci08ZGl2IGlkPSJpZDkiPjk8L2Rpdj4KLTxkaXYgaWQ9ImlkMTAiPjEwPC9kaXY+Ci08L2Rpdj4K
LTxwPgotVGVzdHMgdGhhdCBzcmMgYW5kIGhyZWYgZWxlbWVudCB0YXJnZXRzIGFyZSByZXdyaXR0
ZW4gcHJvcGVybHkuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtcmVsb2FkLWFzc2VydC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwt
cmVsb2FkLWFzc2VydC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDk0MzA2MDQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2Vs
ZW1lbnRzLXBhbmVsLXJlbG9hZC1hc3NlcnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNSArMCwwIEBACi1UZXN0cyB0aGF0IHRoZSBpbnNwZWN0ZWQgcGFnZSBkb2VzIG5vdCBjcmFz
aCBpbiBhIGRlYnVnIGJ1aWxkIHdoZW4gcmVsb2FkaW5nIGEgcGFnZSBjb250YWluaW5nIHNoYWRv
dyBET00gd2l0aCBvcGVuIGluc3BlY3Rvci4gQnVnIDg0MTU0LgotCi0KLVBhZ2UgcmVsb2FkZWQu
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1w
YW5lbC1yZWxvYWQtYXNzZXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
ZWxlbWVudHMtcGFuZWwtcmVsb2FkLWFzc2VydC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhNTc0ZjBlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy9lbGVtZW50cy1wYW5lbC1yZWxvYWQtYXNzZXJ0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwzNCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4w
MSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRk
Ij4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQot
ZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUo
c3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5yZWxvYWRQYWdlKHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVz
dHMgdGhhdCB0aGUgaW5zcGVjdGVkIHBhZ2UgZG9lcyBub3QgY3Jhc2ggaW4gYSBkZWJ1ZyBidWls
ZCB3aGVuIHJlbG9hZGluZyBhIHBhZ2UgY29udGFpbmluZyBzaGFkb3cgRE9NIHdpdGggb3BlbiBp
bnNwZWN0b3IuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NDE1NCI+QnVnIDg0MTU0PC9hPi4KLTwvcD4KLQotPGlucHV0IHR5cGU9InJhZGlvIj4KLQot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2VsZW1lbnRzLXBhbmVsLXJld3JpdGUtaHJlZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtcmV3cml0ZS1ocmVmLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY2N2VhYS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtcmV3cml0ZS1o
cmVmLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIHRo
YXQgc3JjIGFuZCBocmVmIGVsZW1lbnQgdGFyZ2V0cyBhcmUgcmV3cml0dGVuIHByb3Blcmx5Lgot
Ci0KLSBqYXZhc2NyaXB0OmFsZXJ0KCdmb28nKSAKLSxib2d1c1NoZWV0MS5jc3MKLWluc3BlY3Rv
cixlbGVtZW50cyxib2d1c1NoZWV0Mi5jc3MKLXRlc3RzLGluc3BlY3RvcixpbnNwZWN0b3ItdGVz
dC5qcwotdGVzdHMsaW5zcGVjdG9yLGVsZW1lbnRzLXRlc3QuanMKLWh0dHA6Ly8xMjcuMC4wLjEv
c3R5bGVzaGVldC5jc3MKLWh0dHA6Ly8xMjcuMC4wLjEvc2NyaXB0LmpzCi1odHRwOi8vMTI3LjAu
MC4xL3RhcmdldC5odG1sCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy9lbGVtZW50cy1wYW5lbC1yZXdyaXRlLWhyZWYuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1yZXdyaXRlLWhyZWYuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDJkNWQzNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtcmV3cml0ZS1ocmVmLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8v
RFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRt
bDQvbG9vc2UuZHRkIj4KLTxodG1sPgotPGhlYWQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIHNy
Yz0iL2JvZ3VzU2hlZXQxLmNzcyI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIHNyYz0iYm9ndXNT
aGVldDIuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShzdGVwMSk7
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICB2YXIgaW5uZXJNYXBwaW5n
ID0gV2ViSW5zcGVjdG9yLmRvbUFnZW50Ll9pZFRvRE9NTm9kZTsKLQotICAgICAgICBmb3IgKHZh
ciBub2RlSWQgaW4gaW5uZXJNYXBwaW5nKSB7Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IGlubmVy
TWFwcGluZ1tub2RlSWRdOwotICAgICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUoKSA9PT0gIkxJ
TksiIHx8IG5vZGUubm9kZU5hbWUoKSA9PT0gIlNDUklQVCIpIHsKLSAgICAgICAgICAgICAgICB2
YXIgc2VnbWVudHMgPSBbXTsKLSAgICAgICAgICAgICAgICB2YXIgaHJlZiA9IG5vZGUucmVzb2x2
ZVVSTChub2RlLmdldEF0dHJpYnV0ZSgic3JjIikgfHwgbm9kZS5nZXRBdHRyaWJ1dGUoImhyZWYi
KSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFocmVmKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNl
Z21lbnRzLnB1c2goIjxlbXB0eT4iKTsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChocmVmLnN0YXJ0c1dpdGgoImh0
dHA6IikpIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoaHJl
Zik7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB2YXIgcGFyc2VkVVJMID0gaHJlZi5hc1BhcnNlZFVSTCgpOwotICAgICAg
ICAgICAgICAgIGlmICghcGFyc2VkVVJMKQotICAgICAgICAgICAgICAgICAgICB0ZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCJGQUlMOiBubyBVUkwgbWF0Y2ggZm9yIDwiICsgaHJlZiArICI+Iik7
Ci0gICAgICAgICAgICAgICAgdmFyIHNwbGl0ID0gcGFyc2VkVVJMLnBhdGguc3BsaXQoIi8iKTsK
LSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gc3BsaXQubGVuZ3RoIC0gMSwgaiA9IDA7IGog
PCAzICYmIGkgPj0gMDsgLS1pLCArK2opCi0gICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzLnB1
c2goc3BsaXRbaV0pOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHNl
Z21lbnRzLnJldmVyc2UoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobm9kZS5u
b2RlTmFtZSgpID09PSAiQSIpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQobm9kZS5yZXNvbHZlVVJMKG5vZGUuZ2V0QXR0cmlidXRlKCJocmVmIikpKTsKLSAgICAgICAg
fQotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotPHA+Ci1UZXN0cyB0aGF0IHNyYyBhbmQgaHJlZiBl
bGVtZW50IHRhcmdldHMgYXJlIHJld3JpdHRlbiBwcm9wZXJseS4KLTwvcD4KLQotPGEgc3R5bGU9
ImRpc3BsYXk6bm9uZSIgaHJlZj0iIGphdmFzY3JpcHQ6YWxlcnQoJ2ZvbycpICI+PC9hPgotPGlm
cmFtZSBzcmM9InJlc291cmNlcy9lbGVtZW50cy1wYW5lbC1yZXdyaXRlLWhyZWYtaWZyYW1lLmh0
bWwiIG9ubG9hZD0icnVuVGVzdCgpIj48L2lmcmFtZT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWFy
Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRz
LXBhbmVsLXNlYXJjaC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDE5NDliMTcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2Vs
ZW1lbnRzLXBhbmVsLXNlYXJjaC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1MCAr
MCwwIEBACi1UZXN0cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHNlYXJjaCBpcyByZXR1cm5pbmcgcHJv
cGVyIHJlc3VsdHMuCi0KLUZvb0JhcgotCi1Gb3VuZCBieSBzZWxlY3RvcgotCi1SdW5uaW5nOiB0
ZXN0U2V0VXAKLQotUnVubmluZzogdGVzdFBsYWluVGV4dAotRiBvIG8gQiBhIHIKLQotUnVubmlu
ZzogdGVzdFBhcnRpYWxUZXh0Ci1GIG8gbyBCIGEgcgotCi1SdW5uaW5nOiB0ZXN0U3RhcnRUYWcK
LTwgaSBuIHAgdSB0ICAgdiBhIGwgdSBlID0gIiBJIG4gcCB1IHQgViBhIGwgIiA+Ci0KLVJ1bm5p
bmc6IHRlc3RFbmRUYWcKLTwgaSBuIHAgdSB0ICAgdiBhIGwgdSBlID0gIiBJIG4gcCB1IHQgViBh
IGwgIiA+Ci0KLVJ1bm5pbmc6IHRlc3RQYXJ0aWFsVGFnCi08IGkgbiBwIHUgdCAgIHYgYSBsIHUg
ZSA9ICIgSSBuIHAgdSB0IFYgYSBsICIgPgotCi1SdW5uaW5nOiB0ZXN0UGFydGlhbEFic2VudFRh
Z1N0YXJ0Ci1Ob3RoaW5nIGZvdW5kCi0KLVJ1bm5pbmc6IHRlc3RQYXJ0aWFsQWJzZW50VGFnRW5k
Ci1Ob3RoaW5nIGZvdW5kCi0KLVJ1bm5pbmc6IHRlc3RGdWxsVGFnCi08IGkgbiBwIHUgdCAgIHYg
YSBsIHUgZSA9ICIgSSBuIHAgdSB0IFYgYSBsICIgPgotCi1SdW5uaW5nOiB0ZXN0RXhhY3RBdHRy
aWJ1dGVOYW1lCi08IGkgbiBwIHUgdCAgIHYgYSBsIHUgZSA9ICIgSSBuIHAgdSB0IFYgYSBsICIg
PgotCi1SdW5uaW5nOiB0ZXN0RXhhY3RBdHRyaWJ1dGVWYWxfdWUKLTwgaSBuIHAgdSB0ICAgdiBh
IGwgdSBlID0gIiBJIG4gcCB1IHQgViBhIGwgIiA+Ci0KLVJ1bm5pbmc6IHRlc3RFeGFjdEF0dHJp
YnV0ZVZhbF91ZVdpdGhRdW90ZXMKLTwgZCBpIHYgICBhIHQgdCByID0gIiBmIG8gbyAiID4gPCAv
IGQgaSB2ID4KLQotUnVubmluZzogdGVzdFBhcnRpYWxBdHRyaWJ1dGVWYWxfdWUKLTwgaSBuIHAg
dSB0ICAgdiBhIGwgdSBlID0gIiBJIG4gcCB1IHQgViBhIGwgIiA+Ci0KLVJ1bm5pbmc6IHRlc3RY
UGF0aEF0dHJpYnV0ZQotPCBkIGkgdiAgIGEgdCB0IHIgPSAiIGYgbyBvICIgPiA8IC8gZCBpIHYg
PgotCi1SdW5uaW5nOiB0ZXN0U2VsZWN0b3IKLTwgcyBwIGEgbiA+IEYgbyB1IG4gZCAgIGIgeSAg
IHMgZSBsIGUgYyB0IG8gciA8IC8gcyBwIGEgbiA+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWFyY2guaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWFyY2guaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU4Zjc5NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2VhcmNoLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxMzAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RU
RCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0
L2xvb3NlLmR0ZCI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwot
Ci0gICAgZnVuY3Rpb24gc2VhcmNoQ2FsbGJhY2sobmV4dCwgcmVzdWx0Q291bnQpCi0gICAgewot
ICAgICAgICBpZiAocmVzdWx0Q291bnQgPT0gMCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIk5vdGhpbmcgZm91bmQiKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
b21BZ2VudC5jYW5jZWxTZWFyY2goKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Q291bnQ7ICsraSkKLSAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5zZWFyY2hSZXN1bHQoaSwgc2VhcmNoUmVzdWx0Q2Fs
bGJhY2suYmluZCh0aGlzLCBpICsgMSA9PT0gcmVzdWx0Q291bnQpKTsKLQotICAgICAgICBmdW5j
dGlvbiBzZWFyY2hSZXN1bHRDYWxsYmFjayhpc0xhc3RJdGVtLCBub2RlKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBub2RlLmdldE91dGVySFRNTChhZGRTZWFyY2hSZXN1bHQuYmluZCh0aGlzLCBp
c0xhc3RJdGVtKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBhZGRTZWFyY2hSZXN1
bHQoaXNMYXN0SXRlbSwgZXJyb3IsIG1hcmt1cFZhX2x1ZSkKLSAgICAgICAgewotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQobWFya3VwVmFfbHVlLnNwbGl0KCIiKS5qb2luKCIg
IikpOwotICAgICAgICAgICAgaWYgKGlzTGFzdEl0ZW0pIHsKLSAgICAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuZG9tQWdlbnQuY2FuY2VsU2VhcmNoKCk7Ci0gICAgICAgICAgICAgICAgbmV4dCgp
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5y
dW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0VXAobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnJlcXVlc3REb2N1bWVudChuZXh0
KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0UGxhaW5UZXh0KG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5wZXJmb3JtU2VhcmNo
KCJGbyIgKyAibyIgKyAiQmFyIiwgc2VhcmNoQ2FsbGJhY2suYmluZCh0aGlzLCBuZXh0KSk7Ci0g
ICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFBhcnRpYWxUZXh0KG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5wZXJmb3JtU2VhcmNoKCJv
byIgKyAiQmEiLCBzZWFyY2hDYWxsYmFjay5iaW5kKHRoaXMsIG5leHQpKTsKLSAgICAgICAgfSwK
LQotICAgICAgICBmdW5jdGlvbiB0ZXN0U3RhcnRUYWcobmV4dCkKLSAgICAgICAgewotICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnBlcmZvcm1TZWFyY2goIjxpbnB1IiArICJ0Iiwg
c2VhcmNoQ2FsbGJhY2suYmluZCh0aGlzLCBuZXh0KSk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gdGVzdEVuZFRhZyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuZG9tQWdlbnQucGVyZm9ybVNlYXJjaCgibnB1IiArICJ0PiIsIHNlYXJjaENhbGxiYWNr
LmJpbmQodGhpcywgbmV4dCkpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RQ
YXJ0aWFsVGFnKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21B
Z2VudC5wZXJmb3JtU2VhcmNoKCJucHUiICsgInQiLCBzZWFyY2hDYWxsYmFjay5iaW5kKHRoaXMs
IG5leHQpKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0UGFydGlhbEFic2Vu
dFRhZ1N0YXJ0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21B
Z2VudC5wZXJmb3JtU2VhcmNoKCI8bnB1IiArICJ0Iiwgc2VhcmNoQ2FsbGJhY2suYmluZCh0aGlz
LCBuZXh0KSk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFBhcnRpYWxBYnNl
bnRUYWdFbmQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFn
ZW50LnBlcmZvcm1TZWFyY2goIm5wdSIgKyAiPiIsIHNlYXJjaENhbGxiYWNrLmJpbmQodGhpcywg
bmV4dCkpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RGdWxsVGFnKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5wZXJmb3JtU2Vh
cmNoKCI8aW5wdSIgKyAidD4iLCBzZWFyY2hDYWxsYmFjay5iaW5kKHRoaXMsIG5leHQpKTsKLSAg
ICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0RXhhY3RBdHRyaWJ1dGVOYW1lKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5wZXJmb3JtU2Vh
cmNoKCJ2YWx1IiArICJlIiwgc2VhcmNoQ2FsbGJhY2suYmluZCh0aGlzLCBuZXh0KSk7Ci0gICAg
ICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEV4YWN0QXR0cmlidXRlVmFsX3VlKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5wZXJmb3JtU2Vh
cmNoKCJJbiIgKyAicHV0VmEiICsgImwiLCBzZWFyY2hDYWxsYmFjay5iaW5kKHRoaXMsIG5leHQp
KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0RXhhY3RBdHRyaWJ1dGVWYWxf
dWVXaXRoUXVvdGVzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
b21BZ2VudC5wZXJmb3JtU2VhcmNoKCJcImZvIiArICJvXCIiLCBzZWFyY2hDYWxsYmFjay5iaW5k
KHRoaXMsIG5leHQpKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0UGFydGlh
bEF0dHJpYnV0ZVZhbF91ZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0
b3IuZG9tQWdlbnQucGVyZm9ybVNlYXJjaCgibiIgKyAicHV0VmEiICsgImwiLCBzZWFyY2hDYWxs
YmFjay5iaW5kKHRoaXMsIG5leHQpKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0
ZXN0WFBhdGhBdHRyaWJ1dGUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmRvbUFnZW50LnBlcmZvcm1TZWFyY2goIi8vaHRtbCIgKyAiLy9AYXR0ciIsIHNlYXJjaENh
bGxiYWNrLmJpbmQodGhpcywgbmV4dCkpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9u
IHRlc3RTZWxlY3RvcihuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
ZG9tQWdlbnQucGVyZm9ybVNlYXJjaCgiZCIgKyAiaXYuZGl2Y2xhc3Mgc3BhbiIsIHNlYXJjaENh
bGxiYWNrLmJpbmQodGhpcywgbmV4dCkpOwotICAgICAgICB9Ci0gICAgXSk7Ci0KLX0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRo
YXQgZWxlbWVudHMgcGFuZWwgc2VhcmNoIGlzIHJldHVybmluZyBwcm9wZXIgcmVzdWx0cy4KLTwv
cD4KLQotPGRpdj5Gb29CYXI8L2Rpdj4KLTxpbnB1dCB2YWx1ZT0iSW5wdXRWYWwiPgotPGRpdiBh
dHRyPSJmb28iPjwvZGl2PgotPGRpdiBpZD0idGVybWluYXRvciI+PC9kaXY+Ci08ZGl2IGNsYXNz
PSJkaXZjbGFzcyI+PHNwYW4+Rm91bmQgYnkgc2VsZWN0b3I8L3NwYW4+PC9kaXY+Ci08c3BhbiBj
bGFzcz0iZm9vIGtvbyI+PC9zcGFuPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9u
LXJlZnJlc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2Vs
ZW1lbnRzLXBhbmVsLXNlbGVjdGlvbi1vbi1yZWZyZXNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYjc3NTZiMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2gtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UZXN0cyB0aGF0IGVsZW1l
bnRzIHBhbmVsIHByZXNlcnZlcyBzZWxlY3RlZCBub2RlIG9uIHBhZ2UgcmVmcmVzaC4KLQotUGFn
ZSByZWxvYWRlZC4KLVNlbGVjdGVkIGVsZW1lbnQgc2hvdWxkIGJlICdQJywgd2FzOiAnUCcKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVs
LXNlbGVjdGlvbi1vbi1yZWZyZXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2guaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTNmMjlmNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2guaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVj
dG9yVGVzdC5zZWxlY3ROb2RlV2l0aElkKCJ0ZXN0LXRvcGljIiwgc3RlcDEpOwotCi0gICAgZnVu
Y3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHN0
ZXAyKTsKLSAgICB9Ci0gCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAzKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICAvLyBXZSBzaG91bGQgaGF2ZSAidGVz
dC10b3BpYyIgZWxlbWVudCBzZWxlY3RlZCBhZnRlciByZWZyZXNoLgotICAgICAgICB2YXIgc2Vs
ZWN0ZWRFbGVtZW50ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5z
ZWxlY3RlZFRyZWVFbGVtZW50OwotICAgICAgICB2YXIgbm9kZU5hbWUgPSBzZWxlY3RlZEVsZW1l
bnQgPyBzZWxlY3RlZEVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Qubm9kZU5hbWUoKSA6ICJudWxs
IjsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNlbGVjdGVkIGVsZW1lbnQgc2hv
dWxkIGJlICdQJywgd2FzOiAnIiArIG5vZGVOYW1lICsgIiciKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cCBpZD0idGVzdC10b3BpYyI+Ci1UZXN0cyB0aGF0
IGVsZW1lbnRzIHBhbmVsIHByZXNlcnZlcyBzZWxlY3RlZCBub2RlIG9uIHBhZ2UgcmVmcmVzaC4K
LTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXN0cnVjdHVyZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc3RydWN0dXJlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU0YjE4MS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc3RydWN0
dXJlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRlc3RzIHRo
YXQgZWxlbWVudHMgcGFuZWwgc2hvd3MgRE9NIHRyZWUgc3RydWN0dXJlLgotCi0iUXVvdGVkIFRl
eHQiLiBTcGVjaWFswqBjaGFyYWN0ZXJzOiA+PCInwqDigILigIPigInigIvigIzigI3igI7igI8g
4oCq4oCr4oCs4oCt4oCuCi0gICAgICA8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv
bG9vc2UuZHRkIj4KLS0gPGh0bWw+Ci0gICAgLSA8aGVhZD4KLSAgICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotICAgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgLSA8c2NyaXB0PgotICAgICAgICAgICAg
ICBcbmZ1bmN0aW9uIHRlc3QoKVxue1xuICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNU
cmVlKHN0ZXAxKTtcblxuICAgIGZ1bmN0aW9uIHN0ZXAxKClcbiAgICB7XG4gICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSgpO1xuICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpO1xuICAgIH1cbn1cblxuCi0gICAgICAgICAgPC9zY3JpcHQ+Ci0gICAgICA8L2hl
YWQ+Ci0gICAgLSA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgICAgICAgPHA+XG5UZXN0
cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHNob3dzIERPTSB0cmVlIHN0cnVjdHVyZS5cbjwvcD4KLSAg
ICAgICAgLSA8ZGl2IGlkPSJsZXZlbDEiPgotICAgICAgICAgICAgLSA8ZGl2IGlkPSJsZXZlbDIi
PgotICAgICAgICAgICAgICAgICAgIiJRdW90ZWQgVGV4dCIuIFNwZWNpYWwmbmJzcDtjaGFyYWN0
ZXJzOiA+PCInJm5ic3A7JmVuc3A7JmVtc3A7JnRoaW5zcDsmIzgyMDM7Jnp3bmo7Jnp3ajsmbHJt
OyZybG07ICYjODIzNDsmIzgyMzU7JiM4MjM2OyYjODIzNzsmIzgyMzg7IgotICAgICAgICAgICAg
ICAgICAgPGRpdiBpZD0ibGV2ZWwzIj48L2Rpdj4KLSAgICAgICAgICAgICAgPC9kaXY+Ci0gICAg
ICAgICAgPC9kaXY+Ci0gICAgICA8L2JvZHk+Ci0gIDwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXN0cnVjdHVyZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXN0cnVjdHVy
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNmIyOWFjLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zdHJ1Y3R1
cmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3
LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0
b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgZWxl
bWVudHMgcGFuZWwgc2hvd3MgRE9NIHRyZWUgc3RydWN0dXJlLgotPC9wPgotCi08ZGl2IGlkPSJs
ZXZlbDEiPgotICAgIDxkaXYgaWQ9ImxldmVsMiI+IlF1b3RlZCBUZXh0Ii4gU3BlY2lhbCZuYnNw
O2NoYXJhY3RlcnM6ICZndDsmbHQ7JnF1b3Q7JmFwb3M7Jm5ic3A7JmVuc3A7JmVtc3A7JnRoaW5z
cDsmIzgyMDM7Jnp3bmo7Jnp3ajsmbHJtOyZybG07ICYjODIzNDsmIzgyMzU7JiM4MjM2OyYjODIz
NzsmIzgyMzg7PGRpdiBpZD0ibGV2ZWwzIj48L2Rpdj4KLSAgICA8L2Rpdj4KLTwvZGl2PgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvZWxlbWVudHMtcGFuZWwtc3R5bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zdHlsZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YjI2ZTNlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zdHlsZXMtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTQ0ICswLDAgQEAKLVRlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwg
c2hvd3MgcHJvcGVyIHN0eWxlcyBpbiB0aGUgc2lkZWJhciBwYW5lbC4KLQotRm9vCi1bZXhwYW5k
ZWRdIAotLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7Ci0gICAg
ZWxlbWVudC5zdHlsZSAtIHN1YnBpeGVsLWFudGlhbGlhc2VkIAotYm9yZGVyLWJvdHRvbS1sZWZ0
LXJhZGl1czogNXB4OwotICAgIC5mb28gLSA1cHggZWxlbWVudHMtcGFuZWwtc3R5bGVzLmNzczox
NgotYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweDsKLSAgICAuZm9vIC0gNXB4IGVsZW1l
bnRzLXBhbmVsLXN0eWxlcy5jc3M6MTYKLWJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDsKLSAg
ICAuZm9vIC0gNXB4IGVsZW1lbnRzLXBhbmVsLXN0eWxlcy5jc3M6MTYKLWJvcmRlci10b3Atcmln
aHQtcmFkaXVzOiA1cHg7Ci0gICAgLmZvbyAtIDVweCBlbGVtZW50cy1wYW5lbC1zdHlsZXMuY3Nz
OjE2Ci1jb2xvcjogcmdiKDAsIDAsIDI1NSk7Ci0gICAgLmZvbywgLmZvbzo6YmVmb3JlIC0gYmx1
ZSBlbGVtZW50cy1wYW5lbC1zdHlsZXMuY3NzOjI4Ci0gICAgLy0tIG92ZXJsb2FkZWQgLS0vIC5m
b28gLSBibGFjayBlbGVtZW50cy1wYW5lbC1zdHlsZXMuY3NzOjE2Ci0gICAgLy0tIG92ZXJsb2Fk
ZWQgLS0vICNjb250YWluZXIgLSByZWQgZWxlbWVudHMtcGFuZWwtc3R5bGVzLmNzczo1Ci1kaXNw
bGF5OiBibG9jazsKLSAgICAvLS0gb3ZlcmxvYWRlZCAtLS8gZWxlbWVudC5zdHlsZSAtIG5vbmUg
Ci0gICAgLmZvbywgLmZvbzo6YmVmb3JlIC0gYmxvY2sgIWltcG9ydGFudCBlbGVtZW50cy1wYW5l
bC1zdHlsZXMuY3NzOjI4Ci0gICAgLy0tIG92ZXJsb2FkZWQgLS0vIGRpdiAtIGJsb2NrIHVzZXIg
YWdlbnQgc3R5bGVzaGVldAotZm9udC1mYW1pbHk6IHNlcmlmOwotICAgICNjb250YWluZXIgLSBz
ZXJpZiBlbGVtZW50cy1wYW5lbC1zdHlsZXMuY3NzOjUKLWZvbnQtc2l6ZTogMTRweDsKLSAgICAj
Y29udGFpbmVyIC0gMTRweCBlbGVtZW50cy1wYW5lbC1zdHlsZXMuY3NzOjUKLSAgICAvLS0gb3Zl
cmxvYWRlZCAtLS8gYm9keSAtIDEycHggZWxlbWVudHMtcGFuZWwtc3R5bGVzLmNzczoxCi1mb250
LXN0eWxlOiBpdGFsaWM7Ci0gICAgI2NvbnRhaW5lciAuZm9vIC0gaXRhbGljICFpbXBvcnRhbnQg
ZWxlbWVudHMtcGFuZWwtc3R5bGVzLmNzczoxMgotICAgIC8tLSBvdmVybG9hZGVkIC0tLyAuZm9v
IC0gbm9ybWFsICFpbXBvcnRhbnQgZWxlbWVudHMtcGFuZWwtc3R5bGVzLmNzczoxNgotZm9udC13
ZWlnaHQ6IG5vcm1hbDsKLSAgICAuZm9vIC0gbm9ybWFsICFpbXBvcnRhbnQgZWxlbWVudHMtcGFu
ZWwtc3R5bGVzLmNzczoxNgotICAgIC8tLSBvdmVybG9hZGVkIC0tLyAuZm9vIC0gYm9sZCBlbGVt
ZW50cy1wYW5lbC1zdHlsZXMuY3NzOjE2Ci1tYXJnaW4tYm90dG9tOiAycHg7Ci0gICAgLmZvbyAt
IDJweCBlbGVtZW50cy1wYW5lbC1zdHlsZXMuY3NzOjE2Ci1tYXJnaW4tbGVmdDogMHB4OwotICAg
IC5mb28gLSAxcHggZWxlbWVudHMtcGFuZWwtc3R5bGVzLmNzczoxNgotbWFyZ2luLXJpZ2h0OiAw
cHg7Ci0gICAgLmZvbyAtIDBweCBlbGVtZW50cy1wYW5lbC1zdHlsZXMuY3NzOjE2Ci1tYXJnaW4t
dG9wOiAxMHB4OwotICAgIC5mb28gLSAxMHB4IGVsZW1lbnRzLXBhbmVsLXN0eWxlcy5jc3M6MTYK
LXBhZGRpbmctYm90dG9tOiA0cHg7Ci0gICAgLmZvbyAtIDRweCBlbGVtZW50cy1wYW5lbC1zdHls
ZXMuY3NzOjE2Ci1wYWRkaW5nLWxlZnQ6IDRweDsKLSAgICAuZm9vIC0gNHB4IGVsZW1lbnRzLXBh
bmVsLXN0eWxlcy5jc3M6MTYKLXBhZGRpbmctcmlnaHQ6IDFweDsKLSAgICAuZm9vIC0gMXB4IGVs
ZW1lbnRzLXBhbmVsLXN0eWxlcy5jc3M6MTYKLXBhZGRpbmctdG9wOiA0cHg7Ci0gICAgLmZvbyAt
IDRweCBlbGVtZW50cy1wYW5lbC1zdHlsZXMuY3NzOjE2Ci10ZXh0LWFsaWduOiAtd2Via2l0LWxl
ZnQ7Ci0gICAgZGl2W0F0dHJpYnV0ZXMgU3R5bGVdIC0gLXdlYmtpdC1sZWZ0IAotCi1bZXhwYW5k
ZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotLy0tIG92ZXJsb2FkZWQgLS0vIGRpc3BsYXk6IG5v
bmU7Ci0td2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDsKLQotPT09
PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0jY29udGFpbmVy
IC5mb28gIHsgKGVsZW1lbnRzLXBhbmVsLXN0eWxlcy5jc3M6MTIpCi1mb250LXN0eWxlOiBpdGFs
aWMgIWltcG9ydGFudDsKLQotW2V4cGFuZGVkXSAKLS5mb28gIHsgKGVsZW1lbnRzLXBhbmVsLXN0
eWxlcy5jc3M6NDcpCi0KLVtleHBhbmRlZF0gCi0uZm9vLCAuZm9vOjpiZWZvcmUgIHsgKGVsZW1l
bnRzLXBhbmVsLXN0eWxlcy5jc3M6MjgpCi1jb250ZW50OiAiW2JlZm9yZSBGb29dIjsKLWNvbG9y
OiBibHVlOwotZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKLQotW2V4cGFuZGVkXSAKLS5mb28g
IHsgKGVsZW1lbnRzLXBhbmVsLXN0eWxlcy5jc3M6MTYpCi0vLS0gb3ZlcmxvYWRlZCAtLS8gY29s
b3I6IGJsYWNrOwotbWFyZ2luLWxlZnQ6IDFweDsKLW1hcmdpbjogMTBweCAwIDJweDsKLSAgICBt
YXJnaW4tdG9wOiAxMHB4OwotICAgIG1hcmdpbi1yaWdodDogMHB4OwotICAgIG1hcmdpbi1ib3R0
b206IDJweDsKLSAgICBtYXJnaW4tbGVmdDogMXB4OwotYm9yZGVyLXJhZGl1czogNXB4OwotICAg
IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDsKLSAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1
czogNXB4OwotICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7Ci0gICAgYm9yZGVy
LWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4OwotLy0tIG92ZXJsb2FkZWQgLS0vIGZvbnQtc3R5bGU6
IG5vcm1hbCAhaW1wb3J0YW50OwotZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50OwotLy0t
IG92ZXJsb2FkZWQgLS0vIGZvbnQtd2VpZ2h0OiBib2xkOwotcGFkZGluZzogNHB4OwotICAgIHBh
ZGRpbmctdG9wOiA0cHg7Ci0gICAgcGFkZGluZy1yaWdodDogMXB4OwotICAgIHBhZGRpbmctYm90
dG9tOiA0cHg7Ci0gICAgcGFkZGluZy1sZWZ0OiA0cHg7Ci1wYWRkaW5nLXJpZ2h0OiAxcHg7Ci0K
LVtleHBhbmRlZF0gCi1kaXZbQXR0cmlidXRlcyBTdHlsZV0gIHsgKCkKLXRleHQtYWxpZ246IC13
ZWJraXQtbGVmdDsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0
KQotLy0tIG92ZXJsb2FkZWQgLS0vIGRpc3BsYXk6IGJsb2NrOwotCi09PT09PT09PSBJbmhlcml0
ZWQgZnJvbSBkaXYjY29udGFpbmVyID09PT09PT09Ci1bZXhwYW5kZWRdIAotI2NvbnRhaW5lciAg
eyAoZWxlbWVudHMtcGFuZWwtc3R5bGVzLmNzczo1KQotZm9udC1mYW1pbHk6IHNlcmlmOwotZm9u
dC1zaXplOiAxNHB4OwotLy0tIG92ZXJsb2FkZWQgLS0vIGNvbG9yOiByZWQ7Ci0KLT09PT09PT09
IEluaGVyaXRlZCBmcm9tIGJvZHkgPT09PT09PT0KLVtleHBhbmRlZF0gCi1ib2R5ICB7IChlbGVt
ZW50cy1wYW5lbC1zdHlsZXMuY3NzOjEpCi0vLS0gb3ZlcmxvYWRlZCAtLS8gZm9udC1zaXplOiAx
MnB4OwotCi0KLT09PT09PT09IFBzZXVkbyA6OmJlZm9yZSBlbGVtZW50ID09PT09PT09Ci1bZXhw
YW5kZWRdIAotLmZvbzo6YmVmb3JlICB7IChlbGVtZW50cy1wYW5lbC1zdHlsZXMuY3NzOjUxKQot
Ci1bZXhwYW5kZWRdIAotLmZvbzo6YmVmb3JlICB7IChlbGVtZW50cy1wYW5lbC1zdHlsZXMuY3Nz
OjM0KQotY29sb3I6IHJlZDsKLQotW2V4cGFuZGVkXSAKLS5mb28sIC5mb286OmJlZm9yZSAgeyAo
ZWxlbWVudHMtcGFuZWwtc3R5bGVzLmNzczoyOCkKLWNvbnRlbnQ6ICJbYmVmb3JlIEZvb10iOwot
Ly0tIG92ZXJsb2FkZWQgLS0vIGNvbG9yOiBibHVlOwotZGlzcGxheTogYmxvY2sgIWltcG9ydGFu
dDsKLQotCi09PT09PT09PSBQc2V1ZG8gOjphZnRlciBlbGVtZW50ID09PT09PT09Ci1bZXhwYW5k
ZWRdIAotLmZvbzo6YWZ0ZXIgIHsgKGVsZW1lbnRzLXBhbmVsLXN0eWxlcy5jc3M6NDIpCi1mb250
LWZhbWlseTogY291cmllcjsKLWNvbnRlbnQ6ICJbYWZ0ZXIgRm9vIDJdIjsKLQotW2V4cGFuZGVk
XSAKLS5mb286OmFmdGVyICB7IChlbGVtZW50cy1wYW5lbC1zdHlsZXMuY3NzOjM4KQotLy0tIG92
ZXJsb2FkZWQgLS0vIGNvbnRlbnQ6ICJbYWZ0ZXIgRm9vXSI7Ci1jb2xvcjogZ3JlZW47Ci0KLQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFu
ZWwtc3R5bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMt
cGFuZWwtc3R5bGVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5MzU4MDYu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBh
bmVsLXN0eWxlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InJlc291
cmNlcy9lbGVtZW50cy1wYW5lbC1zdHlsZXMuY3NzIj4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3Quc2Vs
ZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXNXaXRoQ29tcHV0ZWQoImZvbyIsIHN0ZXAxKTsKLQotICAg
IGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVj
dGVkRWxlbWVudFN0eWxlcyhmYWxzZSwgZmFsc2UpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCBzaG93cyBw
cm9wZXIgc3R5bGVzIGluIHRoZSBzaWRlYmFyIHBhbmVsLgotPC9wPgotCi08ZGl2IGlkPSJjb250
YWluZXIiPgotICAgIDxkaXYgaWQ9ImZvbyIgY2xhc3M9ImZvbyIgc3R5bGU9ImRpc3BsYXk6bm9u
ZTsgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7IiBhbGlnbj0i
bGVmdCI+Rm9vPC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXhodG1sLXN0cnVj
dHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVu
dHMtcGFuZWwteGh0bWwtc3RydWN0dXJlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggY2ViMmJjZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvZWxlbWVudHMtcGFuZWwteGh0bWwtc3RydWN0dXJlLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLVRlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgc2hv
d3MgWE1MIGRvbSB0cmVlIHN0cnVjdHVyZSB3aXRoIGNsb3NpbmcgdGFncyBmb3IgYWxsIGVsZW1l
bnRzLgotCi1QYXJhZ3JhcGggQlIgdGVzdAotTmV4dCBsaW5lCi0KLSAKLS0gPEhUTUwgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotICAgIC0gPEhlYWQ+Ci0gICAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLSAgICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIC0gPHNjcmlwdD4KLSAg
ICAgICAgICAgICAgPCFbQ0RBVEFbZnVuY3Rpb24gdGVzdCgpeyAgICBJbnNwZWN0b3JUZXN0LmV4
cGFuZEVsZW1lbnRzVHJlZShzdGVwMSk7ICAgIGZ1bmN0aW9uIHN0ZXAxKCkgICAgeyAgICAgICAg
SW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKCk7ICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOyAgICB9fV1dPgotICAgICAgICAgIDwvc2NyaXB0PgotICAgICAgPC9IZWFk
PgotICAgIC0gPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgICAgICAtIDxwPgotICAgICAg
ICAgICAgICAiVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCBzaG93cyBYTUwgZG9tIHRyZWUgc3Ry
dWN0dXJlIHdpdGggY2xvc2luZyB0YWdzIGZvciBhbGwgZWxlbWVudHMuIgotICAgICAgICAgIDwv
cD4KLSAgICAgICAgICA8aHI+PC9ocj4KLSAgICAgICAgLSA8cD4KLSAgICAgICAgICAgICAgIlBh
cmFncmFwaCBCUiB0ZXN0IgotICAgICAgICAgICAgICA8YnI+PC9icj4KLSAgICAgICAgICAgICAg
Ik5leHQgbGluZSIKLSAgICAgICAgICA8L3A+Ci0gICAgICAgICAgPCFbQ0RBVEFbIENEYXRhIENv
bnRlbnQgXV0+Ci0gICAgICAgICAgPGltZyBhbHQ9IlJhbmRvbSBJbWFnZSI+PC9pbWc+Ci0gICAg
ICA8L2JvZHk+Ci0gIDwvSFRNTD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXhodG1sLXN0cnVjdHVyZS54aHRtbC1kaXNhYmxlZCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC14aHRtbC1zdHJ1
Y3R1cmUueGh0bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxZjlh
ODguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRz
LXBhbmVsLXhodG1sLXN0cnVjdHVyZS54aHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0x
LDM0ICswLDAgQEAKLTxIVE1MIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
LTxIZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci08IVtDREFUQVsKLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKHN0
ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcEVsZW1lbnRzVHJlZSgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgIH0KLX0KLV1dPgotPC9zY3JpcHQ+Ci08L0hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCBzaG93cyBYTUwgZG9t
IHRyZWUgc3RydWN0dXJlIHdpdGggY2xvc2luZyB0YWdzIGZvciBhbGwgZWxlbWVudHMuCi08L3A+
Ci0KLTxocj48L2hyPgotPHA+UGFyYWdyYXBoIEJSIHRlc3Q8YnIvPk5leHQgbGluZQotPC9wPgot
PCFbQ0RBVEFbIENEYXRhIENvbnRlbnQgXV0+Ci0KLTxpbWcgYWx0PSJSYW5kb20gSW1hZ2UiPjwv
aW1nPgotCi08L2JvZHk+Ci08L0hUTUw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMjhjY2IuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXItZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTI4ICswLDAgQEAKLVRlc3RzIGV2ZW50IGxp
c3RlbmVycyBvdXRwdXQgaW4gdGhlIEVsZW1lbnRzIHNpZGViYXIgcGFuZWwuCi0KLUluc3BlY3Qg
TWUKLQotPT09PT09PT0gY2xpY2sgPT09PT09PT0KLVtleHBhbmRlZF0gZG9jdW1lbnQgZXZlbnQt
bGlzdGVuZXItc2lkZWJhci5odG1sOjE5Ci0gICAgaGFuZGxlcjogZnVuY3Rpb24gKGV2ZW50KSB7
IGNvbnNvbGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0gY2FwdHVyaW5nIik7IH0KLSAgICBpc0F0
dHJpYnV0ZTogZmFsc2UKLSAgICBsaW5lTnVtYmVyOiAxOQotICAgIGxpc3RlbmVyQm9keTogZnVu
Y3Rpb24gKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0gY2FwdHVyaW5n
Iik7IH0KLSAgICBub2RlOiAjZG9jdW1lbnQKLSAgICBzb3VyY2VOYW1lOiBbY2xpcHBlZC1mb3It
dGVzdF0vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNpZGVi
YXIuaHRtbAotICAgIHR5cGU6IGNsaWNrCi0gICAgdXNlQ2FwdHVyZTogdHJ1ZQotW2V4cGFuZGVk
XSBkb2N1bWVudCAoYW5vbnltb3VzIGZ1bmN0aW9uKQotICAgIGhhbmRsZXI6IE9iamVjdEhhbmRs
ZXIKLSAgICBpc0F0dHJpYnV0ZTogZmFsc2UKLSAgICBsaXN0ZW5lckJvZHk6IE9iamVjdEhhbmRs
ZXIKLSAgICBub2RlOiAjZG9jdW1lbnQKLSAgICB0eXBlOiBjbGljawotICAgIHVzZUNhcHR1cmU6
IHRydWUKLVtleHBhbmRlZF0gYnV0dG9uI25vZGUgZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1s
OjE1Ci0gICAgaGFuZGxlcjogZnVuY3Rpb24gKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAt
IGJ1dHRvbiAtIGNhcHR1cmluZyIpOyB9Ci0gICAgaXNBdHRyaWJ1dGU6IGZhbHNlCi0gICAgbGlu
ZU51bWJlcjogMTUKLSAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9uIChldmVudCkgeyBjb25zb2xl
LmxvZygiY2xpY2sgLSBidXR0b24gLSBjYXB0dXJpbmciKTsgfQotICAgIG5vZGU6IGJ1dHRvbiNu
b2RlCi0gICAgc291cmNlTmFtZTogW2NsaXBwZWQtZm9yLXRlc3RdL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9ldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWwKLSAgICB0eXBlOiBjbGlj
awotICAgIHVzZUNhcHR1cmU6IHRydWUKLVtleHBhbmRlZF0gYnV0dG9uI25vZGUgZXZlbnQtbGlz
dGVuZXItc2lkZWJhci5odG1sOjEyCi0gICAgaGFuZGxlcjogZnVuY3Rpb24gY2xpY2tIYW5kbGVy
KGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGJ1YmJsaW5nIChyZWdpc3Rl
cmVkIGJlZm9yZSBhdHRyaWJ1dGUpIik7IH0KLSAgICBpc0F0dHJpYnV0ZTogZmFsc2UKLSAgICBs
aW5lTnVtYmVyOiAxMgotICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gY2xpY2tIYW5kbGVyKGV2
ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGJ1YmJsaW5nIChyZWdpc3RlcmVk
IGJlZm9yZSBhdHRyaWJ1dGUpIik7IH0KLSAgICBub2RlOiBidXR0b24jbm9kZQotICAgIHNvdXJj
ZU5hbWU6IFtjbGlwcGVkLWZvci10ZXN0XS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
ZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sCi0gICAgdHlwZTogY2xpY2sKLSAgICB1c2VDYXB0
dXJlOiBmYWxzZQotW2V4cGFuZGVkXSBidXR0b24jbm9kZSBldmVudC1saXN0ZW5lci1zaWRlYmFy
Lmh0bWw6MTYKLSAgICBoYW5kbGVyOiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2coImNs
aWNrIC0gYnV0dG9uIC0gYXR0cmlidXRlIik7IH0KLSAgICBpc0F0dHJpYnV0ZTogdHJ1ZQotICAg
IGxpbmVOdW1iZXI6IDE2Ci0gICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiAoZXZlbnQpIHsgY29u
c29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gYXR0cmlidXRlIik7IH0KLSAgICBub2RlOiBidXR0
b24jbm9kZQotICAgIHNvdXJjZU5hbWU6IFtjbGlwcGVkLWZvci10ZXN0XS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sCi0gICAgdHlwZTog
Y2xpY2sKLSAgICB1c2VDYXB0dXJlOiBmYWxzZQotW2V4cGFuZGVkXSBidXR0b24jbm9kZSBldmVu
dC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTcKLSAgICBoYW5kbGVyOiBmdW5jdGlvbiAoZXZlbnQp
IHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gYnViYmxpbmcgKHJlZ2lzdGVyZWQgYWZ0
ZXIgYXR0cmlidXRlKSIpOyB9Ci0gICAgaXNBdHRyaWJ1dGU6IGZhbHNlCi0gICAgbGluZU51bWJl
cjogMTcKLSAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9uIChldmVudCkgeyBjb25zb2xlLmxvZygi
Y2xpY2sgLSBidXR0b24gLSBidWJibGluZyAocmVnaXN0ZXJlZCBhZnRlciBhdHRyaWJ1dGUpIik7
IH0KLSAgICBub2RlOiBidXR0b24jbm9kZQotICAgIHNvdXJjZU5hbWU6IFtjbGlwcGVkLWZvci10
ZXN0XS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJh
ci5odG1sCi0gICAgdHlwZTogY2xpY2sKLSAgICB1c2VDYXB0dXJlOiBmYWxzZQotW2V4cGFuZGVk
XSBkb2N1bWVudCBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6NgotICAgIGhhbmRsZXI6IGZ1
bmN0aW9uIGRvY3VtZW50Q2xpY2tIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAt
IGRvY3VtZW50IC0gYXR0cmlidXRlIik7IH0KLSAgICBpc0F0dHJpYnV0ZTogdHJ1ZQotICAgIGxp
bmVOdW1iZXI6IDYKLSAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9uIGRvY3VtZW50Q2xpY2tIYW5k
bGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0gYXR0cmlidXRlIik7
IH0KLSAgICBub2RlOiAjZG9jdW1lbnQKLSAgICBzb3VyY2VOYW1lOiBbY2xpcHBlZC1mb3ItdGVz
dF0vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXIu
aHRtbAotICAgIHR5cGU6IGNsaWNrCi0gICAgdXNlQ2FwdHVyZTogZmFsc2UKLQotPT09PT09PT0g
Y3VzdG9tIGV2ZW50ID09PT09PT09Ci1bZXhwYW5kZWRdIGJvZHkgZXZlbnQtbGlzdGVuZXItc2lk
ZWJhci5odG1sOjEwCi0gICAgaGFuZGxlcjogZnVuY3Rpb24gZigpIHt9Ci0gICAgaXNBdHRyaWJ1
dGU6IGZhbHNlCi0gICAgbGluZU51bWJlcjogMTAKLSAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9u
IGYoKSB7fQotICAgIG5vZGU6IGJvZHkKLSAgICBzb3VyY2VOYW1lOiBbY2xpcHBlZC1mb3ItdGVz
dF0vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXIu
aHRtbAotICAgIHR5cGU6IGN1c3RvbSBldmVudAotICAgIHVzZUNhcHR1cmU6IHRydWUKLQotPT09
PT09PT0gaG92ZXIgPT09PT09PT0KLVtleHBhbmRlZF0gYnV0dG9uI25vZGUgZXZlbnQtbGlzdGVu
ZXItc2lkZWJhci5odG1sOjE0Ci0gICAgaGFuZGxlcjogZnVuY3Rpb24gaG92ZXJIYW5kbGVyKGV2
ZW50KSB7IGNvbnNvbGUubG9nKCJob3ZlciAtIGJ1dHRvbiAtIGJ1YmJsaW5nIik7IH0KLSAgICBp
c0F0dHJpYnV0ZTogZmFsc2UKLSAgICBsaW5lTnVtYmVyOiAxNAotICAgIGxpc3RlbmVyQm9keTog
ZnVuY3Rpb24gaG92ZXJIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJob3ZlciAtIGJ1dHRv
biAtIGJ1YmJsaW5nIik7IH0KLSAgICBub2RlOiBidXR0b24jbm9kZQotICAgIHNvdXJjZU5hbWU6
IFtjbGlwcGVkLWZvci10ZXN0XS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQt
bGlzdGVuZXItc2lkZWJhci5odG1sCi0gICAgdHlwZTogaG92ZXIKLSAgICB1c2VDYXB0dXJlOiBm
YWxzZQotCi09PT09PT09PSBjbGljayA9PT09PT09PQotW2V4cGFuZGVkXSBkb2N1bWVudCBldmVu
dC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTkKLSAgICBoYW5kbGVyOiBmdW5jdGlvbiAoZXZlbnQp
IHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQgLSBjYXB0dXJpbmciKTsgfQotICAgIGlz
QXR0cmlidXRlOiBmYWxzZQotICAgIGxpbmVOdW1iZXI6IDE5Ci0gICAgbGlzdGVuZXJCb2R5OiBm
dW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQgLSBjYXB0dXJp
bmciKTsgfQotICAgIG5vZGU6ICNkb2N1bWVudAotICAgIHNvdXJjZU5hbWU6IFtjbGlwcGVkLWZv
ci10ZXN0XS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lk
ZWJhci5odG1sCi0gICAgdHlwZTogY2xpY2sKLSAgICB1c2VDYXB0dXJlOiB0cnVlCi1bZXhwYW5k
ZWRdIGRvY3VtZW50IChhbm9ueW1vdXMgZnVuY3Rpb24pCi0gICAgaGFuZGxlcjogT2JqZWN0SGFu
ZGxlcgotICAgIGlzQXR0cmlidXRlOiBmYWxzZQotICAgIGxpc3RlbmVyQm9keTogT2JqZWN0SGFu
ZGxlcgotICAgIG5vZGU6ICNkb2N1bWVudAotICAgIHR5cGU6IGNsaWNrCi0gICAgdXNlQ2FwdHVy
ZTogdHJ1ZQotW2V4cGFuZGVkXSBkb2N1bWVudCBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6
NgotICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGRvY3VtZW50Q2xpY2tIYW5kbGVyKGV2ZW50KSB7IGNv
bnNvbGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0gYXR0cmlidXRlIik7IH0KLSAgICBpc0F0dHJp
YnV0ZTogdHJ1ZQotICAgIGxpbmVOdW1iZXI6IDYKLSAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9u
IGRvY3VtZW50Q2xpY2tIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGRvY3Vt
ZW50IC0gYXR0cmlidXRlIik7IH0KLSAgICBub2RlOiAjZG9jdW1lbnQKLSAgICBzb3VyY2VOYW1l
OiBbY2xpcHBlZC1mb3ItdGVzdF0vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50
LWxpc3RlbmVyLXNpZGViYXIuaHRtbAotICAgIHR5cGU6IGNsaWNrCi0gICAgdXNlQ2FwdHVyZTog
ZmFsc2UKLQotPT09PT09PT0gY3VzdG9tIGV2ZW50ID09PT09PT09Ci1bZXhwYW5kZWRdIGJvZHkg
ZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjEwCi0gICAgaGFuZGxlcjogZnVuY3Rpb24gZigp
IHt9Ci0gICAgaXNBdHRyaWJ1dGU6IGZhbHNlCi0gICAgbGluZU51bWJlcjogMTAKLSAgICBsaXN0
ZW5lckJvZHk6IGZ1bmN0aW9uIGYoKSB7fQotICAgIG5vZGU6IGJvZHkKLSAgICBzb3VyY2VOYW1l
OiBbY2xpcHBlZC1mb3ItdGVzdF0vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50
LWxpc3RlbmVyLXNpZGViYXIuaHRtbAotICAgIHR5cGU6IGN1c3RvbSBldmVudAotICAgIHVzZUNh
cHR1cmU6IHRydWUKLUxpc3RlbmVycyBmb3Igc2VsZWN0ZWQgbm9kZSBvbmx5KHNob3VsZCBiZSBu
byBsaXN0ZW5lcnMpOgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggY2RiZDQ2YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzkg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotZnVuY3Rpb24gZG9jdW1lbnRDbGlja0hhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImNs
aWNrIC0gZG9jdW1lbnQgLSBhdHRyaWJ1dGUiKTsgfQotCi1mdW5jdGlvbiBzZXR1cEV2ZW50TGlz
dGVuZXJzKCkKLXsKLSAgICBmdW5jdGlvbiBmKCkge30KLSAgICB2YXIgYnV0dG9uID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm5vZGUiKTsKLSAgICBmdW5jdGlvbiBjbGlja0hhbmRsZXIoZXZl
bnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gYnViYmxpbmcgKHJlZ2lzdGVyZWQg
YmVmb3JlIGF0dHJpYnV0ZSkiKTsgfQotICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIGNsaWNrSGFuZGxlciwgZmFsc2UpOwotICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJo
b3ZlciIsIGZ1bmN0aW9uIGhvdmVySGFuZGxlcihldmVudCkgeyBjb25zb2xlLmxvZygiaG92ZXIg
LSBidXR0b24gLSBidWJibGluZyIpOyB9LCBmYWxzZSk7Ci0gICAgYnV0dG9uLmFkZEV2ZW50TGlz
dGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0
dG9uIC0gY2FwdHVyaW5nIik7IH0sIHRydWUpOwotICAgIGJ1dHRvbi5vbmNsaWNrID0gZnVuY3Rp
b24oZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gYXR0cmlidXRlIik7IH0K
LSAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldmVudCkgeyBj
b25zb2xlLmxvZygiY2xpY2sgLSBidXR0b24gLSBidWJibGluZyAocmVnaXN0ZXJlZCBhZnRlciBh
dHRyaWJ1dGUpIik7IH0sIGZhbHNlKTsKLSAgICBkb2N1bWVudC5vbmNsaWNrID0gZG9jdW1lbnRD
bGlja0hhbmRsZXI7Ci0gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5j
dGlvbihldmVudCkgeyBjb25zb2xlLmxvZygiY2xpY2sgLSBkb2N1bWVudCAtIGNhcHR1cmluZyIp
OyB9LCB0cnVlKTsKLSAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBm
LCBmYWxzZSk7Ci0gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwg
ZiwgZmFsc2UpOwotCi0gICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJjdXN0b20g
ZXZlbnQiLCBmLCB0cnVlKTsKLQotICAgIGZ1bmN0aW9uIE9iamVjdEhhbmRsZXIoKSB7IGRvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcywgdHJ1ZSk7IH0KLSAgICBPYmplY3RI
YW5kbGVyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gIk9iamVjdEhh
bmRsZXIiOyB9Ci0gICAgbmV3IE9iamVjdEhhbmRsZXIoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmV2ZW50TGlzdGVuZXJzRmlsdGVyLnNldCgi
YWxsIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElkKCJub2RlIiwgc3RlcDEp
OwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBhbmRBbmREdW1wU2VsZWN0ZWRFbGVtZW50RXZlbnRMaXN0ZW5lcnMoc3RlcDIpOwotICAgIH0K
LSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVj
dE5vZGVXaXRoSWQoIm5vZGUtd2l0aG91dC1saXN0ZW5lcnMiLCBzdGVwMyk7Ci0gICAgfQotICAg
IGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kQW5k
RHVtcFNlbGVjdGVkRWxlbWVudEV2ZW50TGlzdGVuZXJzKHN0ZXA0KTsKLSAgICB9Ci0gICAgZnVu
Y3Rpb24gc3RlcDQoKQotICAgIHsKLSAgICAgICAgdmFyIGV2ZW50TGlzdGVuZXJzUGFuZSA9IFdl
Ykluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLmV2ZW50TGlzdGVuZXJzOwot
ICAgICAgICBldmVudExpc3RlbmVyc1BhbmUuc2V0dGluZ3NTZWxlY3RFbGVtZW50LnNlbGVjdGVk
SW5kZXggPSAxOwotICAgICAgICBldmVudExpc3RlbmVyc1BhbmUuX2NoYW5nZVNldHRpbmcoKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxpc3RlbmVycyBmb3Igc2VsZWN0ZWQg
bm9kZSBvbmx5KHNob3VsZCBiZSBubyBsaXN0ZW5lcnMpOiIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGFuZEFuZER1bXBTZWxlY3RlZEVsZW1lbnRFdmVudExpc3RlbmVycyhzdGVwNSk7Ci0g
ICAgfQotICAgIGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwYW5kQW5kRHVtcFNlbGVjdGVkRWxlbWVudEV2ZW50TGlzdGVuZXJzKEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIG9ubG9hZEhhbmRsZXIoKQotewot
ICAgIHNldHVwRXZlbnRMaXN0ZW5lcnMoKTsKLSAgICBydW5UZXN0KCk7Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJvbmxvYWRIYW5kbGVyKCkiPgotPHA+Ci1UZXN0cyBl
dmVudCBsaXN0ZW5lcnMgb3V0cHV0IGluIHRoZSBFbGVtZW50cyBzaWRlYmFyIHBhbmVsLgotPC9w
PgotCi08YnV0dG9uIGlkPSJub2RlIj5JbnNwZWN0IE1lPC9idXR0b24+Ci0KLTxkaXYgaWQ9Im5v
ZGUtd2l0aG91dC1saXN0ZW5lcnMiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXJzLWFib3V0
LWJsYW5rLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9ldmVu
dC1saXN0ZW5lcnMtYWJvdXQtYmxhbmstZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxYWE2Nzc0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9ldmVudC1saXN0ZW5lcnMtYWJvdXQtYmxhbmstZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMjYgKzAsMCBAQAotVGVzdHMgZXZlbnQgbGlzdGVuZXJzIG91dHB1dCBpbiB0
aGUgRWxlbWVudHMgc2lkZWJhciBwYW5lbCB3aGVuIHRoZSBsaXN0ZW5lcnMgYXJlIGFkZGVkIG9u
IGFuIGVsZW1lbnQgaW4gYWJvdXQ6YmxhbmsgcGFnZS4KLQotCi0KLT09PT09PT09IGNsaWNrID09
PT09PT09Ci1bZXhwYW5kZWRdIGJvZHkgZXZlbnQtbGlzdGVuZXJzLWFib3V0LWJsYW5rLmh0bWw6
OQotICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGYoKSB7fQotICAgIGlzQXR0cmlidXRlOiBmYWxzZQot
ICAgIGxpbmVOdW1iZXI6IDkKLSAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9uIGYoKSB7fQotICAg
IG5vZGU6IGJvZHkKLSAgICBzb3VyY2VOYW1lOiBbY2xpcHBlZC1mb3ItdGVzdF0vTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVycy1hYm91dC1ibGFuay5odG1sCi0g
ICAgdHlwZTogY2xpY2sKLSAgICB1c2VDYXB0dXJlOiB0cnVlCi0KLT09PT09PT09IGhvdmVyID09
PT09PT09Ci1bZXhwYW5kZWRdIGRpdiNkaXYtaW4taWZyYW1lIGV2ZW50LWxpc3RlbmVycy1hYm91
dC1ibGFuay5odG1sOjkKLSAgICBoYW5kbGVyOiBmdW5jdGlvbiBmKCkge30KLSAgICBpc0F0dHJp
YnV0ZTogZmFsc2UKLSAgICBsaW5lTnVtYmVyOiA5Ci0gICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlv
biBmKCkge30KLSAgICBub2RlOiBkaXYjZGl2LWluLWlmcmFtZQotICAgIHNvdXJjZU5hbWU6IFtj
bGlwcGVkLWZvci10ZXN0XS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlz
dGVuZXJzLWFib3V0LWJsYW5rLmh0bWwKLSAgICB0eXBlOiBob3ZlcgotICAgIHVzZUNhcHR1cmU6
IHRydWUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50
LWxpc3RlbmVycy1hYm91dC1ibGFuay5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2V2ZW50LWxpc3RlbmVycy1hYm91dC1ibGFuay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjN2U4MDYzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9ldmVudC1saXN0ZW5lcnMtYWJvdXQtYmxhbmsuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDQ2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLQotZnVuY3Rpb24gc2V0dXBFdmVudExpc3RlbmVycygpCi17Ci0gICAgZnVuY3Rp
b24gZigpIHt9Ci0gICAgdmFyIGZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15ZnJh
bWUiKTsKLSAgICB2YXIgYm9keSA9IGZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5OwotICAgIGJv
ZHkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmLCB0cnVlKTsKLSAgICB2YXIgZGl2ID0gZnJh
bWUuY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGRpdi5pZCA9ICJk
aXYtaW4taWZyYW1lIjsKLSAgICBkaXYuYWRkRXZlbnRMaXN0ZW5lcigiaG92ZXIiLCBmLCB0cnVl
KTsKLSAgICBib2R5LmFwcGVuZENoaWxkKGRpdik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5ldmVudExpc3RlbmVyc0ZpbHRlci5zZXQoImFsbCIp
OwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldHVwRXZlbnRMaXN0ZW5lcnMo
KSIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgiZGl2LWluLWlmcmFtZSIsIHN0ZXAyKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGFuZEFuZER1bXBTZWxlY3RlZEVsZW1lbnRFdmVudExpc3RlbmVycyhJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBldmVudCBsaXN0ZW5lcnMgb3V0cHV0IGluIHRo
ZSBFbGVtZW50cyBzaWRlYmFyIHBhbmVsIHdoZW4gdGhlIGxpc3RlbmVycyBhcmUgYWRkZWQgb24g
YW4gZWxlbWVudCBpbiBhYm91dDpibGFuayBwYWdlLgotPC9wPgotCi08aWZyYW1lIGlkPSJteWZy
YW1lIj48L2lmcmFtZT4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V4cGFuZC1yZWN1cnNpdmVseS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXhwYW5kLXJlY3Vyc2l2ZWx5LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzUxNWI5Mi4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXhwYW5kLXJlY3Vyc2l2ZWx5LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLVRlc3RzIHRoYXQgZXhwYW5k
aW5nIGVsZW1lbnRzIHJlY3Vyc2l2ZWx5IHdvcmtzLgotCi09PT09PSBJbml0aWFsIHN0YXRlIG9m
IHRyZWUgb3V0bGluZSA9PT09PQotCi0rIDxkaXYgaWQ9ImRlcHRoLTEiPuKApjwvZGl2PgotCi09
PT09PSBTdGF0ZSBvZiB0cmVlIG91dGxpbmUgYWZ0ZXIgY2FsbGluZyAuZXhwYW5kUmVjdXJzaXZl
bHkoKSA9PT09PQotCi0tIDxkaXYgaWQ9ImRlcHRoLTEiPgotICAgIC0gPGRpdiBpZD0iZGVwdGgt
MiI+Ci0gICAgICAgIC0gPGRpdiBpZD0iZGVwdGgtMyI+Ci0gICAgICAgICAgICAtIDxkaXYgaWQ9
ImRlcHRoLTQiPgotICAgICAgICAgICAgICAgIC0gPGRpdiBpZD0iZGVwdGgtNSI+Ci0gICAgICAg
ICAgICAgICAgICAgIC0gPGRpdiBpZD0iZGVwdGgtNiI+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAtIDxkaXYgaWQ9ImRlcHRoLTciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gPGRp
diBpZD0iZGVwdGgtOCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gPGRpdiBp
ZD0iZGVwdGgtOSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg
aWQ9ImRlcHRoLTEwIj48L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAg
ICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICA8L2Rp
dj4KLSAgICAgIDwvZGl2PgotICA8L2Rpdj4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2V4cGFuZC1yZWN1cnNpdmVseS5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2V4cGFuZC1yZWN1cnNpdmVseS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhMGZjOGI4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9leHBhbmQtcmVjdXJzaXZlbHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY3
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxl
bWVudHMiKTsKLSAgICB2YXIgdHJlZU91dGxpbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1l
bnRzLnRyZWVPdXRsaW5lOwotICAgIEluc3BlY3RvclRlc3QuZmluZE5vZGUoZnVuY3Rpb24oKSB7
IHJldHVybiBmYWxzZTsgfSwgZmlyc3RTdGVwKTsKLSAgICAgICAgCi0gICAgZnVuY3Rpb24gZmly
c3RTdGVwKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PSBJ
bml0aWFsIHN0YXRlIG9mIHRyZWUgb3V0bGluZSA9PT09PVxuIik7Ci0gICAgICAgIGR1bXAoKTsK
LQotICAgICAgICB2YXIgdG9wTm9kZSA9IHRyZWVPdXRsaW5lLmNoaWxkcmVuWzBdLmNoaWxkcmVu
WzFdLmNoaWxkcmVuWzFdOwotICAgICAgICB0b3BOb2RlLmV4cGFuZFJlY3Vyc2l2ZWx5KCk7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhzZWNvbmRTdGVw
KTsKLSAgICB9OwotICAgICAgICAKLSAgICBmdW5jdGlvbiBzZWNvbmRTdGVwKCkKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcbj09PT09IFN0YXRlIG9mIHRyZWUgb3V0
bGluZSBhZnRlciBjYWxsaW5nIC5leHBhbmRSZWN1cnNpdmVseSgpID09PT09XG4iKTsKLSAgICAg
ICAgZHVtcCgpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAg
fTsKLQotICAgIGZ1bmN0aW9uIGR1bXAoKQotICAgIHsKLSAgICAgICAgdmFyIG5vZGUgPSBJbnNw
ZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJZCgiZGVwdGgtMSIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUobm9kZSk7Ci0gICAgfTsKLX0KLQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBleHBh
bmRpbmcgZWxlbWVudHMgcmVjdXJzaXZlbHkgd29ya3MuCi08L3A+Ci0KLTxkaXYgaWQ9ImRlcHRo
LTEiPgotICAgIDxkaXYgaWQ9ImRlcHRoLTIiPgotICAgICAgICA8ZGl2IGlkPSJkZXB0aC0zIj4K
LSAgICAgICAgICAgIDxkaXYgaWQ9ImRlcHRoLTQiPgotICAgICAgICAgICAgICAgIDxkaXYgaWQ9
ImRlcHRoLTUiPgotICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkZXB0aC02Ij4KLSAgICAg
ICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRlcHRoLTciPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxkaXYgaWQ9ImRlcHRoLTgiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGlkPSJkZXB0aC05Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxkaXYgaWQ9ImRlcHRoLTEwIj48L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAg
ICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0g
ICAgPC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZGUtc2hvcnRjdXQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZGUtc2hvcnRjdXQtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjdjODhjLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWRlLXNob3J0Y3V0LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLVRlc3RzIHRoZSBoaWRlIHNob3J0Y3V0LCB3aGlj
aCB0b2dnbGVzIHZpc2liaWxpdHk6aGlkZGVuIG9uIHRoZSBub2RlIGFuZCBpdCdzIGFuY2VzdG9y
cy4gQnVnIDExMDY0MQotCi1wYXJlbnQKLWNoaWxkCi0KLQotUnVubmluZzogdGVzdFNldFVwCi0K
LVJ1bm5pbmc6IHRlc3RUb2dnbGVIaWRlU2hvcnRjdXRPbgotPT09IEFkZGVkIGhpZGUgc2hvcnRj
dXQgPT09Ci09PT0gUGFyZW50IG5vZGUgaXMgaGlkZGVuID09PQotdmlzaWJpbGl0eTogaGlkZGVu
OwotPT09IENoaWxkIG5vZGUgaXMgaGlkZGVuID09PQotdmlzaWJpbGl0eTogaGlkZGVuOwotCi1S
dW5uaW5nOiB0ZXN0VG9nZ2xlSGlkZVNob3J0Y3V0T2ZmCi09PT0gUmVtb3ZlZCBoaWRlIHNob3J0
Y3V0ID09PQotPT09IFBhcmVudCBub2RlIGlzIHZpc2libGUgPT09Ci12aXNpYmlsaXR5OiB2aXNp
YmxlOwotPT09IENoaWxkIG5vZGUgaXMgdmlzaWJsZSA9PT0KLXZpc2liaWxpdHk6IHZpc2libGU7
Ci0KLVJ1bm5pbmc6IHRlc3RUb2dnbGVIaWRlU2hvcnRjdXRPbkluRnJhbWUKLT09PSBBZGRlZCBo
aWRlIHNob3J0Y3V0IGluIGZyYW1lID09PQotPT09IEZyYW1lIG5vZGUgaXMgaGlkZGVuID09PQot
dmlzaWJpbGl0eTogaGlkZGVuOwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvaGlkZS1zaG9ydGN1dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2hpZGUtc2hvcnRjdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGY5
ZTY0YTAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZGUt
c2hvcnRjdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyOCArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIHZhciB0cmVlT3V0bGluZTsKLSAgICB2YXIgcGFyZW50Tm9kZTsKLSAgICB2YXIg
Y2hpbGROb2RlOwotICAgIHZhciBmcmFtZU5vZGU7Ci0KLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1Bh
bmVsKCJlbGVtZW50cyIpOwotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAg
ICAgZnVuY3Rpb24gdGVzdFNldFVwKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRyZWVP
dXRsaW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZTsKLQotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKCJwYXJlbnQtbm9kZSIsIGNhbGxiYWNr
KTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sobm9kZSkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0gbm9kZQotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Qubm9kZVdpdGhJZCgiY2hpbGQtbm9kZSIsIGNhbGxiYWNrMik7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrMihub2RlKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIGNoaWxkTm9kZSA9IG5vZGU7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ub2RlV2l0aElkKCJmcmFtZS1ub2RlIiwgY2FsbGJhY2szKTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2szKG5vZGUpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgZnJhbWVOb2RlID0gbm9kZTsKLSAgICAgICAgICAgICAgICBu
ZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVz
dFRvZ2dsZUhpZGVTaG9ydGN1dE9uKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRyZWVP
dXRsaW5lLl90b2dnbGVIaWRlU2hvcnRjdXQocGFyZW50Tm9kZSwgY2FsbGJhY2spOwotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBBZGRlZCBoaWRlIHNob3J0Y3V0ID09PSIp
OwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRDb21wdXRlZFN0eWxl
QXN5bmMocGFyZW50Tm9kZS5pZCwgY2FsbGJhY2syKTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgZnVuY3Rpb24gY2FsbGJhY2syKHN0eWxlKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gUGFyZW50IG5vZGUgaXMgaGlkZGVu
ID09PSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHN0eWxlLmdl
dExpdmVQcm9wZXJ0eSgidmlzaWJpbGl0eSIpLnByb3BlcnR5VGV4dCk7Ci0gICAgICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldENvbXB1dGVkU3R5bGVBc3luYyhjaGlsZE5vZGUu
aWQsIGNhbGxiYWNrMyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGNh
bGxiYWNrMyhzdHlsZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiPT09IENoaWxkIG5vZGUgaXMgaGlkZGVuID09PSIpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHN0eWxlLmdldExpdmVQcm9wZXJ0eSgidmlz
aWJpbGl0eSIpLnByb3BlcnR5VGV4dCk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RUb2dnbGVIaWRlU2hv
cnRjdXRPZmYobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdHJlZU91dGxpbmUuX3RvZ2ds
ZUhpZGVTaG9ydGN1dChwYXJlbnROb2RlLCBjYWxsYmFjayk7Ci0KLSAgICAgICAgICAgIGZ1bmN0
aW9uIGNhbGxiYWNrKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiPT09IFJlbW92ZWQgaGlkZSBzaG9ydGN1dCA9PT0iKTsKLSAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuZ2V0Q29tcHV0ZWRTdHlsZUFzeW5jKHBhcmVu
dE5vZGUuaWQsIGNhbGxiYWNrMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0
aW9uIGNhbGxiYWNrMihzdHlsZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IFBhcmVudCBub2RlIGlzIHZpc2libGUgPT09Iik7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoc3R5bGUuZ2V0TGl2ZVByb3Bl
cnR5KCJ2aXNpYmlsaXR5IikucHJvcGVydHlUZXh0KTsKLSAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuY3NzTW9kZWwuZ2V0Q29tcHV0ZWRTdHlsZUFzeW5jKGNoaWxkTm9kZS5pZCwgY2FsbGJh
Y2szKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2szKHN0
eWxlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCI9PT0gQ2hpbGQgbm9kZSBpcyB2aXNpYmxlID09PSIpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KHN0eWxlLmdldExpdmVQcm9wZXJ0eSgidmlzaWJpbGl0eSIp
LnByb3BlcnR5VGV4dCk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RUb2dnbGVIaWRlU2hvcnRjdXRPbklu
RnJhbWUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdHJlZU91dGxpbmUuX3RvZ2dsZUhp
ZGVTaG9ydGN1dChmcmFtZU5vZGUsIGNhbGxiYWNrKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24g
Y2FsbGJhY2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCI9PT0gQWRkZWQgaGlkZSBzaG9ydGN1dCBpbiBmcmFtZSA9PT0iKTsKLSAgICAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuZ2V0Q29tcHV0ZWRTdHlsZUFzeW5jKGZy
YW1lTm9kZS5pZCwgY2FsbGJhY2syKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVu
Y3Rpb24gY2FsbGJhY2syKHN0eWxlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gRnJhbWUgbm9kZSBpcyBoaWRkZW4gPT09Iik7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoc3R5bGUuZ2V0TGl2ZVByb3Bl
cnR5KCJ2aXNpYmlsaXR5IikucHJvcGVydHlUZXh0KTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keT4KLTxwPgotVGVzdHMgdGhlIGhpZGUgc2hvcnRjdXQsIHdoaWNoIHRvZ2dsZXMg
dmlzaWJpbGl0eTpoaWRkZW4gb24gdGhlIG5vZGUgYW5kIGl0J3MgYW5jZXN0b3JzLgotPGEgaHJl
Zj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDY0MSI+QnVnIDEx
MDY0MTwvYT4KLTwvcD4KLQotPGRpdiBpZD0icGFyZW50LW5vZGUiPnBhcmVudAotICAgIDxkaXYg
c3R5bGU9InZpc2liaWxpdHk6aGlkZGVuIj5oaWRkZW4KLSAgICAgICAgPGRpdiBpZD0iY2hpbGQt
bm9kZSIgc3R5bGU9InZpc2liaWxpdHk6dmlzaWJsZSI+Y2hpbGQ8L2Rpdj4KLSAgICA8L2Rpdj4K
LTwvZGl2PgotCi08aWZyYW1lIHNyYz0icmVzb3VyY2VzL2hpZGUtc2hvcnRjdXQtaWZyYW1lLmh0
bWwiIG9ubG9hZD0icnVuVGVzdCgpIj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1ub2RlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxYzRmMDAuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1ub2RlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotVGhpcyB0ZXN0IHZlcmlmaWVzIHRo
ZSBwb3NpdGlvbiBhbmQgc2l6ZSBvZiB0aGUgaGlnaGxpZ2h0IHJlY3RhbmdsZXMgb3ZlcmxheWVk
IG9uIGFuIGluc3BlY3RlZCBkaXYuCi0KLW1hcmdpbiByZWN0IGlzIDI2MCB4IDI2MCBhdCAoMCwg
MCkKLWJvcmRlciByZWN0IGlzIDI1MCB4IDI1MCBhdCAoNSwgNSkKLXBhZGRpbmcgcmVjdCBpcyAy
MzAgeCAyMzAgYXQgKDE1LCAxNSkKLWNvbnRlbnQgcmVjdCBpcyAyMDAgeCAyMDAgYXQgKDMwLCAz
MCkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdo
dC1ub2RlLXJlZ2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2hpZ2hsaWdodC1ub2RlLXJlZ2lvbnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjOWZhOTk1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1yZWdpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDI4OSArMCwwIEBACi1UaGlzIHRlc3QgdmVyaWZpZXMgdGhlIHBvc2l0aW9uIGFu
ZCBzaXplIG9mIHRoZSBoaWdobGlnaHRlZCBDU1MgUmVnaW9ucyBxdWFkcyBvdmVybGF5ZWQgb24g
dGhlIGluc3BlY3RlZCBkaXYuCi0KLXsKLSAgICAibmFtZSI6ICJmbG93IiwKLSAgICAicmVnaW9u
cyI6IFsKLSAgICAgICAgewotICAgICAgICAgICAgImJvcmRlclF1YWQiOiBbCi0gICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAieCI6IDUsCi0gICAgICAgICAgICAgICAgICAg
ICJ5IjogNQotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAieCI6IDI1NSwKLSAgICAgICAgICAgICAgICAgICAgInkiOiA1Ci0gICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICJ4Ijog
MjU1LAotICAgICAgICAgICAgICAgICAgICAieSI6IDI1NQotICAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAieCI6IDUsCi0gICAgICAgICAg
ICAgICAgICAgICJ5IjogMjU1Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAg
ICAgICAgICAgICJpbmNvbWluZ1F1YWQiOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAieCI6IDAsCi0gICAgICAgICAgICAgICAgICAgICJ5IjogMTUKLSAgICAgICAg
ICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIngiOiAx
MCwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAxNQotICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAieCI6IDEwLAotICAgICAgICAgICAg
ICAgICAgICAieSI6IDI1Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICJ4IjogMCwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAyNQot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAib3V0Z29pbmdR
dWFkIjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIngiOiAyNTAs
Ci0gICAgICAgICAgICAgICAgICAgICJ5IjogMjM1Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICJ4IjogMjYwLAotICAgICAgICAgICAg
ICAgICAgICAieSI6IDIzNQotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAieCI6IDI2MCwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAy
NDUKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgIngiOiAyNTAsCi0gICAgICAgICAgICAgICAgICAgICJ5IjogMjQ1Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ICAiYm9yZGVyUXVhZCI6IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICJ4IjogMjY1LAotICAgICAgICAgICAgICAgICAgICAieSI6IDUKLSAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIngiOiA1MTUsCi0gICAg
ICAgICAgICAgICAgICAgICJ5IjogNQotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAieCI6IDUxNSwKLSAgICAgICAgICAgICAgICAgICAg
InkiOiAyNTUKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgIngiOiAyNjUsCi0gICAgICAgICAgICAgICAgICAgICJ5IjogMjU1Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJpbmNvbWluZ1F1YWQi
OiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAieCI6IDI2MCwKLSAg
ICAgICAgICAgICAgICAgICAgInkiOiAxNQotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAieCI6IDI3MCwKLSAgICAgICAgICAgICAgICAg
ICAgInkiOiAxNQotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAieCI6IDI3MCwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAyNQotICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAi
eCI6IDI2MCwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAyNQotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAib3V0Z29pbmdRdWFkIjogWwotICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIngiOiA1MTAsCi0gICAgICAgICAgICAgICAg
ICAgICJ5IjogMjM1Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICJ4IjogNTIwLAotICAgICAgICAgICAgICAgICAgICAieSI6IDIzNQot
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAieCI6IDUyMCwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAyNDUKLSAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIngiOiA1MTAsCi0g
ICAgICAgICAgICAgICAgICAgICJ5IjogMjQ1Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgXSwKLSAgICAgICAgICAgICJpc0hpZ2hsaWdodGVkIjogdHJ1ZQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgICAiYm9yZGVyUXVhZCI6IFsKLSAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICJ4IjogNTI1LAotICAgICAgICAgICAgICAgICAgICAieSI6IDUK
LSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgIngiOiA3NzUsCi0gICAgICAgICAgICAgICAgICAgICJ5IjogNQotICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAieCI6IDc3NSwKLSAg
ICAgICAgICAgICAgICAgICAgInkiOiAyNTUKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIngiOiA1MjUsCi0gICAgICAgICAgICAgICAg
ICAgICJ5IjogMjU1Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAg
ICAgICJpbmNvbWluZ1F1YWQiOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAieCI6IDUyMCwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAxNQotICAgICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAieCI6IDUzMCwK
LSAgICAgICAgICAgICAgICAgICAgInkiOiAxNQotICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAieCI6IDUzMCwKLSAgICAgICAgICAgICAg
ICAgICAgInkiOiAyNQotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAieCI6IDUyMCwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAyNQot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAib3V0Z29pbmdR
dWFkIjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIngiOiA3NzAs
Ci0gICAgICAgICAgICAgICAgICAgICJ5IjogMjM1Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICJ4IjogNzgwLAotICAgICAgICAgICAg
ICAgICAgICAieSI6IDIzNQotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAieCI6IDc4MCwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAy
NDUKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgIngiOiA3NzAsCi0gICAgICAgICAgICAgICAgICAgICJ5IjogMjQ1Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ICAiYm9yZGVyUXVhZCI6IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICJ4IjogNSwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUKLSAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIngiOiAyMDUsCi0gICAg
ICAgICAgICAgICAgICAgICJ5IjogMjY1Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICJ4IjogMjA1LAotICAgICAgICAgICAgICAgICAg
ICAieSI6IDI2NQotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAieCI6IDUsCi0gICAgICAgICAgICAgICAgICAgICJ5IjogMjY1Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJpbmNvbWluZ1F1YWQi
OiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAieCI6IDAsCi0gICAg
ICAgICAgICAgICAgICAgICJ5IjogMjYwCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICJ4IjogMTAsCi0gICAgICAgICAgICAgICAgICAg
ICJ5IjogMjYwCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICJ4IjogMTAsCi0gICAgICAgICAgICAgICAgICAgICJ5IjogMjcwCi0gICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICJ4
IjogMCwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAyNzAKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBdLAotICAgICAgICAgICAgIm91dGdvaW5nUXVhZCI6IFsKLSAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICJ4IjogMjAwLAotICAgICAgICAgICAgICAgICAg
ICAieSI6IDI2MAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAieCI6IDIxMCwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAyNjAKLSAg
ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
IngiOiAyMTAsCi0gICAgICAgICAgICAgICAgICAgICJ5IjogMjcwCi0gICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICJ4IjogMjAwLAotICAg
ICAgICAgICAgICAgICAgICAieSI6IDI3MAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImJvcmRlclF1YWQiOiBbCi0g
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAieCI6IDIxNSwKLSAgICAgICAg
ICAgICAgICAgICAgInkiOiAyNjUKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgIngiOiAyMTUsCi0gICAgICAgICAgICAgICAgICAgICJ5
IjogMjY1Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICJ4IjogMjE1LAotICAgICAgICAgICAgICAgICAgICAieSI6IDI2NQotICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAieCI6
IDIxNSwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBdLAotICAgICAgICAgICAgImluY29taW5nUXVhZCI6IFsKLSAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICJ4IjogMjEwLAotICAgICAgICAgICAgICAgICAg
ICAieSI6IDI2MAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAieCI6IDIyMCwKLSAgICAgICAgICAgICAgICAgICAgInkiOiAyNjAKLSAg
ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
IngiOiAyMjAsCi0gICAgICAgICAgICAgICAgICAgICJ5IjogMjcwCi0gICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICJ4IjogMjEwLAotICAg
ICAgICAgICAgICAgICAgICAieSI6IDI3MAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IF0sCi0gICAgICAgICAgICAib3V0Z29pbmdRdWFkIjogWwotICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgIngiOiAyMTAsCi0gICAgICAgICAgICAgICAgICAgICJ5IjogMjYw
Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICJ4IjogMjIwLAotICAgICAgICAgICAgICAgICAgICAieSI6IDI2MAotICAgICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAieCI6IDIyMCwK
LSAgICAgICAgICAgICAgICAgICAgInkiOiAyNzAKLSAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIngiOiAyMTAsCi0gICAgICAgICAgICAg
ICAgICAgICJ5IjogMjcwCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAg
ICB9Ci0gICAgXQotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvaGlnaGxpZ2h0LW5vZGUtcmVnaW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL2hpZ2hsaWdodC1ub2RlLXJlZ2lvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMGM1ZGRiYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvaGlnaGxpZ2h0LW5vZGUtcmVnaW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzcg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLQotPHN0eWxlPgotCi1ib2R5IHsKLSAgICBtYXJnaW46
IDA7Ci19Ci0jZmxvdyB7Ci0gICAgLXdlYmtpdC1mbG93LWludG86IGZsb3c7Ci19Ci0jY29udGFp
bmVyIHsKLSAgICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLSAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmV5OwotfQotLnJlZ2lvbiB7Ci0gICAgbWFyZ2luOiA1cHg7Ci0gICAgYm9y
ZGVyOiBzb2xpZCAxMHB4IGFxdWE7Ci0gICAgcGFkZGluZzogMTVweDsKLSAgICB3aWR0aDogMjAw
cHg7Ci0gICAgaGVpZ2h0OiAyMDBweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwotICAg
IGZsb2F0OiBsZWZ0OwotICAgIC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OwotfQotLnplcm8taGVp
Z2h0IHsKLSAgICBib3JkZXI6IG5vbmU7Ci0gICAgaGVpZ2h0OiAwcHg7Ci0gICAgcGFkZGluZzog
MDsKLX0KLS56ZXJvLXNpemUgewotICAgIGJvcmRlcjogbm9uZTsKLSAgICB3aWR0aDogMHB4Owot
ICAgIGhlaWdodDogMHB4OwotICAgIHBhZGRpbmc6IDA7Ci19Ci0uaGlkZGVuIHsKLSAgICBkaXNw
bGF5OiBub25lOwotfQotI2Rlc2NyaXB0aW9uIHsKLSAgICBjbGVhcjogYm90aDsKLX0KLQotPC9z
dHlsZT4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIGZ1bmN0aW9uIG5vZGVTZWxlY3RlZChub2RlKQotICAgIHsKLSAgICAgICAg
UnVudGltZUFnZW50LmV2YWx1YXRlKCJkdW1wSW5zcGVjdG9ySGlnaGxpZ2h0ZWRSZWdpb25zKCki
LCBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVz
dC5zZWxlY3ROb2RlV2l0aElkKCJpbnNwZWN0ZWRFbGVtZW50Iiwgbm9kZVNlbGVjdGVkKTsKLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLQotPGRp
diBpZD0iZmxvdyI+PC9kaXY+Ci0KLTxkaXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+Ci08ZGl2IGNs
YXNzPSJyZWdpb24iIGlkPSJpbnNwZWN0ZWRFbGVtZW50Ij48L2Rpdj4KLTxkaXYgY2xhc3M9InJl
Z2lvbiI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJyZWdpb24gemVyby1oZWlnaHQiPjwvZGl2PgotPGRp
diBjbGFzcz0icmVnaW9uIHplcm8tc2l6ZSI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJyZWdpb24gaGlk
ZGVuIj48L2Rpdj4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSBw
b3NpdGlvbiBhbmQgc2l6ZSBvZiB0aGUgaGlnaGxpZ2h0ZWQgQ1NTIFJlZ2lvbnMgcXVhZHMgb3Zl
cmxheWVkIG9uIHRoZSBpbnNwZWN0ZWQgZGl2LjwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1ub2RlLXNj
YWxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxp
Z2h0LW5vZGUtc2NhbGVkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDZhZTRlNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
aGlnaGxpZ2h0LW5vZGUtc2NhbGVkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYg
KzAsMCBAQAotCi1tYXJnaW4gcmVjdCBpcyAxNjYgeCAxODggYXQgKDE5MiwgMTU0KQotYm9yZGVy
IHJlY3QgaXMgMTM4IHggMTYwIGF0ICgyMDYsIDE2OCkKLXBhZGRpbmcgcmVjdCBpcyAxMTggeCAx
NDAgYXQgKDIxNiwgMTc4KQotY29udGVudCByZWN0IGlzIDY2IHggODggYXQgKDI0MiwgMjA0KQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LW5v
ZGUtc2NhbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0
LW5vZGUtc2NhbGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiNDE5MmQu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1u
b2RlLXNjYWxlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLQotPHN0eWxlPgotCi1ib2R5IHsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLWlmcmFtZSB7
Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIGxlZnQ6IDgzcHg7Ci0gICAgdG9wOiA1M3B4
OwotICAgIHdpZHRoOiAyMDBweDsKLSAgICBoZWlnaHQ6IDIwMHB4OwotfQotCi08L3N0eWxlPgot
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gb25sb2FkKCkK
LXsKLSAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7Ci0gICAgcnVuVGVzdCgpOwotfQotICAgIAotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsK
LSAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUuRXZlbnRzLlNlbGVjdGVkTm9k
ZUNoYW5nZWQsIHNlbGVjdGVkTm9kZUNoYW5nZWQsIHRoaXMpOwotCi0gICAgZnVuY3Rpb24gc2Vs
ZWN0ZWROb2RlQ2hhbmdlZChldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciBub2RlID0gZXZlbnQu
ZGF0YTsKLSAgICAgICAgaWYgKG5vZGUuZ2V0QXR0cmlidXRlKCJpZCIpID09ICJkaXYiKQotICAg
ICAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJkdW1wSW5zcGVjdG9ySGlnaGxpZ2h0UmVj
dHMoKSIsIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KTsKLSAgICB9Ci0gICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluQ29uc29sZSgiaW5zcGVjdChpZnJhbWVEaXZFbGVtZW50KSIpOwotfQot
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Ci08aWZyYW1l
IHNyYz0icmVzb3VyY2VzL2hpZ2hsaWdodC1ub2RlLXNjYWxlZC1pZnJhbWUuaHRtbCI+PC9pZnJh
bWU+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUtc2Nyb2xsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1zY3JvbGwtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzFmNmQzLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1zY3JvbGwtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotVGhpcyB0ZXN0IHZlcmlmaWVzIHRo
ZSBwb3NpdGlvbiBhbmQgc2l6ZSBvZiB0aGUgaGlnaGxpZ2h0IHJlY3RhbmdsZXMgb3ZlcmxheWVk
IG9uIGFuIGluc3BlY3RlZCBkaXYgaW4gdGhlIHNjcm9sbGVkIHZpZXcuCi0KLW1hcmdpbiByZWN0
IGlzIDI2MCB4IDI2MCBhdCAoOCwgOCkKLWJvcmRlciByZWN0IGlzIDI1MCB4IDI1MCBhdCAoMTMs
IDEzKQotcGFkZGluZyByZWN0IGlzIDIzMCB4IDIzMCBhdCAoMjMsIDIzKQotY29udGVudCByZWN0
IGlzIDIwMCB4IDIwMCBhdCAoMzgsIDM4KQotbWFyZ2luIHJlY3QgaXMgMjYwIHggMjYwIGF0ICgt
NTIsIDIxOCkKLWJvcmRlciByZWN0IGlzIDI1MCB4IDI1MCBhdCAoLTQ3LCAyMjMpCi1wYWRkaW5n
IHJlY3QgaXMgMjMwIHggMjMwIGF0ICgtMzcsIDIzMykKLWNvbnRlbnQgcmVjdCBpcyAyMDAgeCAy
MDAgYXQgKC0yMiwgMjQ4KQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvaGlnaGxpZ2h0LW5vZGUtc2Nyb2xsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUtc2Nyb2xsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJlMjZlZjYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL2hpZ2hsaWdodC1ub2RlLXNjcm9sbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzkg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLQotPHN0eWxlPgotCi1ib2R5IHsKLSAgICB3aWR0aDog
MjAwMHB4OwotICAgIGhlaWdodDogMjAwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGdyZXk7
Ci19Ci0uaW5zcGVjdGVkIHsKLSAgICBtYXJnaW46IDVweDsKLSAgICBib3JkZXI6IHNvbGlkIDEw
cHggYXF1YTsKLSAgICBwYWRkaW5nOiAxNXB4OwotICAgIHdpZHRoOiAyMDBweDsKLSAgICBoZWln
aHQ6IDIwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Ci0gICAgZmxvYXQ6IGxlZnQ7
Ci19Ci0jc2Nyb2xsaW5nQ29udGFpbmVyIHsKLSAgICBjbGVhcjogYm90aDsKLSAgICB3aWR0aDog
MTAwcHg7Ci0gICAgaGVpZ2h0OiAxMDBweDsKLSAgICBvdmVyZmxvdzogYXV0bzsKLX0KLSNkZXNj
cmlwdGlvbiB7Ci0gICAgY2xlYXI6IGJvdGg7Ci19Ci0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBvbmxvYWQoKQotewotICAgIHdpbmRv
dy5zY3JvbGxCeSg1MCwgMTAwKTsKLSAgICBzY3JvbGxpbmdDb250YWluZXIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2Nyb2xsaW5nQ29udGFpbmVyIik7Ci0gICAgc2Nyb2xsaW5nQ29udGFp
bmVyLnNjcm9sbFRvcCA9IDUwOwotICAgIHNjcm9sbGluZ0NvbnRhaW5lci5zY3JvbGxMZWZ0ID0g
NjA7Ci0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlv
biBub2RlU2VsZWN0ZWQyKG5vZGUpCi0gICAgewotICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVh
dGUoImR1bXBJbnNwZWN0b3JIaWdobGlnaHRSZWN0cygpIiwgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlc3ROb2RlMigpCi0gICAgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoImluc3BlY3RlZEVsZW1lbnQyIiwgbm9k
ZVNlbGVjdGVkMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbm9kZVNlbGVjdGVkMShub2RlKQot
ICAgIHsKLSAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJkdW1wSW5zcGVjdG9ySGlnaGxp
Z2h0UmVjdHMoKSIsIHRlc3ROb2RlMik7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5zZWxl
Y3ROb2RlV2l0aElkKCJpbnNwZWN0ZWRFbGVtZW50MSIsIG5vZGVTZWxlY3RlZDEpOwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Ci0KLTxkaXYgaWQ9
Imluc3BlY3RlZEVsZW1lbnQxIiBjbGFzcz0iaW5zcGVjdGVkIj48L2Rpdj4KLQotPGRpdiBpZD0i
c2Nyb2xsaW5nQ29udGFpbmVyIj4KLSAgICA8ZGl2IGlkPSJpbnNwZWN0ZWRFbGVtZW50MiIgY2xh
c3M9Imluc3BlY3RlZCI+PC9kaXY+Ci08L2Rpdj4KLQotPHAgaWQ9ImRlc2NyaXB0aW9uIj5UaGlz
IHRlc3QgdmVyaWZpZXMgdGhlIHBvc2l0aW9uIGFuZCBzaXplIG9mIHRoZSBoaWdobGlnaHQgcmVj
dGFuZ2xlcyBvdmVybGF5ZWQgb24gYW4gaW5zcGVjdGVkIGRpdiBpbiB0aGUgc2Nyb2xsZWQgdmll
dy48L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzL2hpZ2hsaWdodC1ub2RlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRiNzVlNWMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L2hpZ2hsaWdodC1ub2RlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotCi08c3R5bGU+Ci0KLWJvZHkgewotICAgIG1hcmdpbjogMDsKLX0KLSNjb250
YWluZXIgewotICAgIHdpZHRoOiA0MDBweDsKLSAgICBoZWlnaHQ6IDQwMHB4OwotICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZXk7Ci19Ci0jaW5zcGVjdGVkRWxlbWVudCB7Ci0gICAgbWFyZ2luOiA1
cHg7Ci0gICAgYm9yZGVyOiBzb2xpZCAxMHB4IGFxdWE7Ci0gICAgcGFkZGluZzogMTVweDsKLSAg
ICB3aWR0aDogMjAwcHg7Ci0gICAgaGVpZ2h0OiAyMDBweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBibHVlOwotICAgIGZsb2F0OiBsZWZ0OwotfQotI2Rlc2NyaXB0aW9uIHsKLSAgICBjbGVhcjog
Ym90aDsKLX0KLQotPC9zdHlsZT4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9uIG5vZGVTZWxlY3RlZChub2RlKQot
ICAgIHsKLSAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJkdW1wSW5zcGVjdG9ySGlnaGxp
Z2h0UmVjdHMoKSIsIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KTsKLSAgICB9Ci0KLSAgICBJ
bnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoImluc3BlY3RlZEVsZW1lbnQiLCBub2RlU2Vs
ZWN0ZWQpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotCi08ZGl2IGlkPSJpbnNwZWN0ZWRFbGVtZW50Ij48L2Rpdj4KLTxwIGlkPSJkZXNjcmlw
dGlvbiI+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSBwb3NpdGlvbiBhbmQgc2l6ZSBvZiB0aGUgaGln
aGxpZ2h0IHJlY3RhbmdsZXMgb3ZlcmxheWVkIG9uIGFuIGluc3BlY3RlZCBkaXYuPC9wPgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllMWUzYzYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1yZWdpb25zLWZsb3ctZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsNDI4ICswLDAgQEAKLVRoaXMgdGVzdCB2ZXJpZmllcyB0aGUg
cG9zaXRpb24gYW5kIHNpemUgb2YgdGhlIGhpZ2hsaWdodGVkIG5vZGUgaW5zaWRlIENTUyBSZWdp
b25zLgotCi17Ci0gICAgInNjcm9sbCI6IHsKLSAgICAgICAgIngiOiAwLAotICAgICAgICAieSI6
IDAKLSAgICB9LAotICAgICJmcmFnbWVudHMiOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAgICJx
dWFkcyI6IFsKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ4IjogMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6
IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ4IjogMjMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInki
OiAzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAieCI6IDIzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogMTAzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IDMwLAotICAgICAgICAgICAgICAgICAgICAgICAg
InkiOiAxMDMwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAg
ICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiAzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiAyMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogMjMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAxMDMwCi0gICAg
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ4IjogMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDEwMzAKLSAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAg
WwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDMw
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzMAotICAgICAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDIz
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAy
MzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDEwMzAKLSAgICAgICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngi
OiAzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMTAzMAotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMzAsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjMwLAotICAgICAgICAg
ICAgICAgICAgICAgICAgInkiOiAzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDIzMCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogMTAzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDMwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiAxMDMwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgInNob3dSdWxlcnMiOiBm
YWxzZSwKLSAgICAgICAgICAgICJjb250ZW50Q29sb3IiOiAicmdiYSgxMTEsIDE2OCwgMjIwLCAw
LjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJjb250ZW50T3V0bGluZUNvbG9yIjog
InJnYmEoMCwgMCwgMCwgMCkiLAotICAgICAgICAgICAgInBhZGRpbmdDb2xvciI6ICJyZ2JhKDE0
NywgMTk2LCAxMjUsIDAuNTQ5MDE5NjA3ODQzMTM3MykiLAotICAgICAgICAgICAgImJvcmRlckNv
bG9yIjogInJnYmEoMjU1LCAyMjksIDE1MywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAg
ICAgICAibWFyZ2luQ29sb3IiOiAicmdiYSgyNDYsIDE3OCwgMTA3LCAwLjY1ODgyMzUyOTQxMTc2
NDcpIiwKLSAgICAgICAgICAgICJyZWdpb24iOiB7Ci0gICAgICAgICAgICAgICAgInF1YWQiOiBb
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMzAs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjMw
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzMAotICAgICAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDIz
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjMwCi0gICAgICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4Ijog
MzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDIzMAotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfQotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgICAicXVhZHMiOiBbCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDI5MCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogLTE3MAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDM5MCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ5IjogLTE3MAotICAgICAgICAgICAgICAgICAgICB9LAotICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDM5MCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ5IjogODMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjkwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA4MzAKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDI5MCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ5IjogLTE3MAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDM5MCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ5IjogLTE3MAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDM5MCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ5IjogODMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjkwLAotICAgICAgICAg
ICAgICAgICAgICAgICAgInkiOiA4MzAKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAieCI6IDI5MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogLTE3MAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IDM5MCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogLTE3MAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDM5MCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ5IjogODMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjkwLAotICAgICAgICAgICAgICAgICAg
ICAgICAgInkiOiA4MzAKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IDI5MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTE3MAot
ICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAieCI6IDM5MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTE3
MAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAieCI6IDM5MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
ODMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ4IjogMjkwLAotICAgICAgICAgICAgICAgICAgICAgICAgInki
OiA4MzAKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAg
ICAgIF0sCi0gICAgICAgICAgICAic2hvd1J1bGVycyI6IGZhbHNlLAotICAgICAgICAgICAgImNv
bnRlbnRDb2xvciI6ICJyZ2JhKDExMSwgMTY4LCAyMjAsIDAuNjU4ODIzNTI5NDExNzY0NykiLAot
ICAgICAgICAgICAgImNvbnRlbnRPdXRsaW5lQ29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIsCi0g
ICAgICAgICAgICAicGFkZGluZ0NvbG9yIjogInJnYmEoMTQ3LCAxOTYsIDEyNSwgMC41NDkwMTk2
MDc4NDMxMzczKSIsCi0gICAgICAgICAgICAiYm9yZGVyQ29sb3IiOiAicmdiYSgyNTUsIDIyOSwg
MTUzLCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJtYXJnaW5Db2xvciI6ICJy
Z2JhKDI0NiwgMTc4LCAxMDcsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgInJl
Z2lvbiI6IHsKLSAgICAgICAgICAgICAgICAicXVhZCI6IFsKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAyOTAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNDkwLAotICAgICAgICAgICAgICAgICAg
ICAgICAgInkiOiAzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDQ5MCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ5IjogMjMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjkwLAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgInF1
YWRzIjogWwotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIngiOiA0MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6
IC0zOTUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIngiOiA2MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
eSI6IC0zOTUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA2MjUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAieSI6IDYwNQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDQyNSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ5IjogNjA1Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAot
ICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiA0MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0zOTUKLSAg
ICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgIngiOiA2MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0zOTUK
LSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgIngiOiA2MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDYw
NQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAieCI6IDQyNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
NjA1Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAg
ICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg
IngiOiA0MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0zOTUKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiA2MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0zOTUKLSAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiA2MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDYwNQotICAgICAg
ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAieCI6IDQyNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNjA1Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA0MjUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0zOTUKLSAgICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA2
MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0zOTUKLSAgICAgICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngi
OiA2MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDYwNQotICAgICAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDQyNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNjA1Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAg
InNob3dSdWxlcnMiOiBmYWxzZSwKLSAgICAgICAgICAgICJjb250ZW50Q29sb3IiOiAicmdiYSgx
MTEsIDE2OCwgMjIwLCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJjb250ZW50
T3V0bGluZUNvbG9yIjogInJnYmEoMCwgMCwgMCwgMCkiLAotICAgICAgICAgICAgInBhZGRpbmdD
b2xvciI6ICJyZ2JhKDE0NywgMTk2LCAxMjUsIDAuNTQ5MDE5NjA3ODQzMTM3MykiLAotICAgICAg
ICAgICAgImJvcmRlckNvbG9yIjogInJnYmEoMjU1LCAyMjksIDE1MywgMC42NTg4MjM1Mjk0MTE3
NjQ3KSIsCi0gICAgICAgICAgICAibWFyZ2luQ29sb3IiOiAicmdiYSgyNDYsIDE3OCwgMTA3LCAw
LjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJyZWdpb24iOiB7Ci0gICAgICAgICAg
ICAgICAgInF1YWQiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogNDI1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA1Ci0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogNjI1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA1Ci0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogNjI1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA1Ci0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogNDI1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA1Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9Ci0gICAgICAg
IH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJxdWFkcyI6IFsKLSAgICAgICAgICAgICAgICBb
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzk1Ci0gICAgICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4Ijog
NjM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzk1Ci0gICAgICAgICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4
IjogNjM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2MDUKLSAgICAgICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg
IngiOiA2MzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDYwNQotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiAtMzk1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzk1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2MDUKLSAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA2MzUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDYwNQotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiAtMzk1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAotICAgICAgICAgICAg
ICAgICAgICAgICAgInkiOiAtMzk1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAotICAgICAgICAg
ICAgICAgICAgICAgICAgInkiOiA2MDUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA2MzUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAieSI6IDYwNQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAotICAgICAgICAgICAgICAgICAgICAgICAg
InkiOiAtMzk1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAotICAgICAgICAgICAgICAgICAgICAg
ICAgInkiOiAtMzk1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAotICAgICAgICAgICAgICAgICAg
ICAgICAgInkiOiA2MDUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA2MzUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAieSI6IDYwNQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
XQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJzaG93UnVsZXJzIjogZmFsc2UsCi0gICAg
ICAgICAgICAiY29udGVudENvbG9yIjogInJnYmEoMTExLCAxNjgsIDIyMCwgMC42NTg4MjM1Mjk0
MTE3NjQ3KSIsCi0gICAgICAgICAgICAiY29udGVudE91dGxpbmVDb2xvciI6ICJyZ2JhKDAsIDAs
IDAsIDApIiwKLSAgICAgICAgICAgICJwYWRkaW5nQ29sb3IiOiAicmdiYSgxNDcsIDE5NiwgMTI1
LCAwLjU0OTAxOTYwNzg0MzEzNzMpIiwKLSAgICAgICAgICAgICJib3JkZXJDb2xvciI6ICJyZ2Jh
KDI1NSwgMjI5LCAxNTMsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgIm1hcmdp
bkNvbG9yIjogInJnYmEoMjQ2LCAxNzgsIDEwNywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAg
ICAgICAgICAicmVnaW9uIjogewotICAgICAgICAgICAgICAgICJxdWFkIjogWwotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDYzNSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogNQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDgzNSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogNQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDgzNSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogNjA1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiA2MDUKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0sCi0gICAgImVsZW1l
bnRJbmZvIjogewotICAgICAgICAidGFnTmFtZSI6ICJkaXYiLAotICAgICAgICAiaWRWYWx1ZSI6
ICJpbnNwZWN0ZWRFbGVtZW50IiwKLSAgICAgICAgIm5vZGVXaWR0aCI6ICIyMDAiLAotICAgICAg
ICAibm9kZUhlaWdodCI6ICIxMDAwIiwKLSAgICAgICAgImNvbnRlbnRGbG93SW5mbyI6IHsKLSAg
ICAgICAgICAgICJuYW1lIjogImZsb3ciCi0gICAgICAgIH0KLSAgICB9Ci19Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93
LWhvcml6LWJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9o
aWdobGlnaHQtcmVnaW9ucy1mbG93LWhvcml6LWJ0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzBmMWU3Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy1ob3Jpei1idC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MjggKzAsMCBAQAotVGhpcyB0ZXN0IHZlcmlmaWVzIHRo
ZSBwb3NpdGlvbiBhbmQgc2l6ZSBvZiB0aGUgaGlnaGxpZ2h0ZWQgbm9kZSBpbnNpZGUgQ1NTIFJl
Z2lvbnMuCi0KLXsKLSAgICAic2Nyb2xsIjogewotICAgICAgICAieCI6IDAsCi0gICAgICAgICJ5
IjogMAotICAgIH0sCi0gICAgImZyYWdtZW50cyI6IFsKLSAgICAgICAgewotICAgICAgICAgICAg
InF1YWRzIjogWwotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIngiOiAzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogLTczMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IDIzMCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogLTczMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDIzMCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ5IjogMjcwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMzAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAieSI6IDI3MAotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwK
LSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ4IjogMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC03MzAKLSAg
ICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgIngiOiAyMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC03MzAK
LSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgIngiOiAyMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI3
MAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAieCI6IDMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAy
NzAKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAg
ICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtNzMwCi0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogMjMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtNzMwCi0gICAgICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ4IjogMjMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNzAKLSAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiAzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjcwCi0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzMCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTczMAotICAgICAgICAgICAgICAgICAgICB9LAot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDIzMCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTczMAotICAgICAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDIz
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjcwCi0gICAgICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4Ijog
MzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI3MAotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJzaG93
UnVsZXJzIjogZmFsc2UsCi0gICAgICAgICAgICAiY29udGVudENvbG9yIjogInJnYmEoMTExLCAx
NjgsIDIyMCwgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAgICAiY29udGVudE91dGxp
bmVDb2xvciI6ICJyZ2JhKDAsIDAsIDAsIDApIiwKLSAgICAgICAgICAgICJwYWRkaW5nQ29sb3Ii
OiAicmdiYSgxNDcsIDE5NiwgMTI1LCAwLjU0OTAxOTYwNzg0MzEzNzMpIiwKLSAgICAgICAgICAg
ICJib3JkZXJDb2xvciI6ICJyZ2JhKDI1NSwgMjI5LCAxNTMsIDAuNjU4ODIzNTI5NDExNzY0Nyki
LAotICAgICAgICAgICAgIm1hcmdpbkNvbG9yIjogInJnYmEoMjQ2LCAxNzgsIDEwNywgMC42NTg4
MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAgICAicmVnaW9uIjogewotICAgICAgICAgICAgICAg
ICJxdWFkIjogWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAieCI6IDMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA3MAotICAgICAgICAgICAg
ICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAieCI6IDIzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNzAKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiAyMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI3MAotICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IDMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNzAKLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAgICAg
fSwKLSAgICAgICAgewotICAgICAgICAgICAgInF1YWRzIjogWwotICAgICAgICAgICAgICAgIFsK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAyOTAs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC01MzAKLSAgICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAz
OTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC01MzAKLSAgICAgICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngi
OiAzOTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDQ3MAotICAgICAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDI5MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDcwCi0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAyOTAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAieSI6IC01MzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzOTAsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAieSI6IC01MzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzOTAsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAieSI6IDQ3MAotICAgICAgICAgICAgICAgICAgICB9LAot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDI5MCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDcwCi0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAyOTAsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAieSI6IC01MzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzOTAsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAieSI6IC01MzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzOTAsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAieSI6IDQ3MAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDI5MCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogNDcwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIngiOiAyOTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
eSI6IC01MzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzOTAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAieSI6IC01MzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzOTAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAieSI6IDQ3MAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDI5MCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ5IjogNDcwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBd
Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgInNob3dSdWxlcnMiOiBmYWxzZSwKLSAgICAg
ICAgICAgICJjb250ZW50Q29sb3IiOiAicmdiYSgxMTEsIDE2OCwgMjIwLCAwLjY1ODgyMzUyOTQx
MTc2NDcpIiwKLSAgICAgICAgICAgICJjb250ZW50T3V0bGluZUNvbG9yIjogInJnYmEoMCwgMCwg
MCwgMCkiLAotICAgICAgICAgICAgInBhZGRpbmdDb2xvciI6ICJyZ2JhKDE0NywgMTk2LCAxMjUs
IDAuNTQ5MDE5NjA3ODQzMTM3MykiLAotICAgICAgICAgICAgImJvcmRlckNvbG9yIjogInJnYmEo
MjU1LCAyMjksIDE1MywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAgICAibWFyZ2lu
Q29sb3IiOiAicmdiYSgyNDYsIDE3OCwgMTA3LCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAg
ICAgICAgICJyZWdpb24iOiB7Ci0gICAgICAgICAgICAgICAgInF1YWQiOiBbCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjkwLAotICAgICAgICAg
ICAgICAgICAgICAgICAgInkiOiA3MAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDQ5MCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogNzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA0OTAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAieSI6IDI3MAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDI5MCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ5IjogMjcwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBdCi0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAgICJxdWFkcyI6IFsKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNDI1LAotICAgICAgICAgICAgICAgICAg
ICAgICAgInkiOiAtMzA1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjI1LAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiAtMzA1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjI1LAotICAgICAgICAgICAg
ICAgICAgICAgICAgInkiOiA2OTUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA0MjUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAieSI6IDY5NQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ4IjogNDI1LAotICAgICAgICAgICAgICAgICAgICAgICAgInki
OiAtMzA1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjI1LAotICAgICAgICAgICAgICAgICAgICAgICAg
InkiOiAtMzA1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjI1LAotICAgICAgICAgICAgICAgICAgICAg
ICAgInkiOiA2OTUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA0MjUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAieSI6IDY5NQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwK
LSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ4IjogNDI1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzA1Ci0g
ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ4IjogNjI1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzA1
Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ4IjogNjI1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2
OTUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIngiOiA0MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6
IDY5NQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAg
ICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogNDI1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzA1Ci0gICAgICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ4IjogNjI1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzA1Ci0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogNjI1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2OTUKLSAgICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiA0MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDY5NQotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgXSwKLSAg
ICAgICAgICAgICJzaG93UnVsZXJzIjogZmFsc2UsCi0gICAgICAgICAgICAiY29udGVudENvbG9y
IjogInJnYmEoMTExLCAxNjgsIDIyMCwgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAg
ICAiY29udGVudE91dGxpbmVDb2xvciI6ICJyZ2JhKDAsIDAsIDAsIDApIiwKLSAgICAgICAgICAg
ICJwYWRkaW5nQ29sb3IiOiAicmdiYSgxNDcsIDE5NiwgMTI1LCAwLjU0OTAxOTYwNzg0MzEzNzMp
IiwKLSAgICAgICAgICAgICJib3JkZXJDb2xvciI6ICJyZ2JhKDI1NSwgMjI5LCAxNTMsIDAuNjU4
ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgIm1hcmdpbkNvbG9yIjogInJnYmEoMjQ2LCAx
NzgsIDEwNywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAgICAicmVnaW9uIjogewot
ICAgICAgICAgICAgICAgICJxdWFkIjogWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAieCI6IDQyNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
Mjk1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ4IjogNjI1LAotICAgICAgICAgICAgICAgICAgICAgICAgInki
OiAyOTUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIngiOiA2MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
eSI6IDI5NQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IDQyNSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogMjk1Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdCi0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJxdWFkcyI6IFsK
LSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ4IjogNjM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzA1Ci0g
ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ4IjogNjM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzA1
Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ4IjogNjM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2
OTUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIngiOiA2MzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6
IDY5NQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAg
ICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogNjM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzA1Ci0gICAgICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ4IjogNjM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzA1Ci0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogNjM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2OTUKLSAgICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiA2MzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDY5NQotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBb
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzA1Ci0gICAgICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4Ijog
NjM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzA1Ci0gICAgICAgICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4
IjogNjM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2OTUKLSAgICAgICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg
IngiOiA2MzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDY5NQotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiAtMzA1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiAtMzA1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjM1LAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2OTUKLSAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA2MzUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDY5NQotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJzaG93UnVs
ZXJzIjogZmFsc2UsCi0gICAgICAgICAgICAiY29udGVudENvbG9yIjogInJnYmEoMTExLCAxNjgs
IDIyMCwgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAgICAiY29udGVudE91dGxpbmVD
b2xvciI6ICJyZ2JhKDAsIDAsIDAsIDApIiwKLSAgICAgICAgICAgICJwYWRkaW5nQ29sb3IiOiAi
cmdiYSgxNDcsIDE5NiwgMTI1LCAwLjU0OTAxOTYwNzg0MzEzNzMpIiwKLSAgICAgICAgICAgICJi
b3JkZXJDb2xvciI6ICJyZ2JhKDI1NSwgMjI5LCAxNTMsIDAuNjU4ODIzNTI5NDExNzY0NykiLAot
ICAgICAgICAgICAgIm1hcmdpbkNvbG9yIjogInJnYmEoMjQ2LCAxNzgsIDEwNywgMC42NTg4MjM1
Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAgICAicmVnaW9uIjogewotICAgICAgICAgICAgICAgICJx
dWFkIjogWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDYzNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjk1Ci0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogODM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyOTUKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiA4MzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDg5NQotICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IDYzNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogODk1Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICBdLAotICAgICJlbGVtZW50SW5mbyI6IHsKLSAgICAgICAgInRhZ05hbWUiOiAiZGl2
IiwKLSAgICAgICAgImlkVmFsdWUiOiAiaW5zcGVjdGVkRWxlbWVudCIsCi0gICAgICAgICJub2Rl
V2lkdGgiOiAiMjAwIiwKLSAgICAgICAgIm5vZGVIZWlnaHQiOiAiMTAwMCIsCi0gICAgICAgICJj
b250ZW50Rmxvd0luZm8iOiB7Ci0gICAgICAgICAgICAibmFtZSI6ICJmbG93IgotICAgICAgICB9
Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
aGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy1ob3Jpei1idC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1yZWdpb25zLWZsb3ctaG9yaXotYnQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjY4NTM5ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy1ob3Jpei1idC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbCBz
dHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQ7Ij4KLTxoZWFkPgotCi08
c3R5bGU+Ci0KLWJvZHkgewotICAgIG1hcmdpbjogMDsKLX0KLSNmbG93IHsKLSAgICAtd2Via2l0
LWZsb3ctaW50bzogZmxvdzsKLX0KLSNjb250YWluZXIgewotICAgIHdpZHRoOiA0MDBweDsKLSAg
ICBoZWlnaHQ6IDQwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGdyZXk7Ci19Ci0jaW5zcGVj
dGVkRWxlbWVudCB7Ci0gICAgd2lkdGg6IDEwMCU7Ci0gICAgaGVpZ2h0OiAxMDAwcHg7Ci0gICAg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ci19Ci0ucmVnaW9uIHsKLSAgICBtYXJnaW46IDVweDsK
LSAgICBib3JkZXI6IHNvbGlkIDEwcHggYXF1YTsKLSAgICBwYWRkaW5nOiAxNXB4OwotICAgIHdp
ZHRoOiAyMDBweDsKLSAgICBoZWlnaHQ6IDIwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGJs
dWU7Ci0gICAgZmxvYXQ6IGxlZnQ7Ci0gICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7Ci19Ci0u
c21hbGwgewotICAgIHdpZHRoOiAxMDBweDsKLX0KLS56ZXJvLWhlaWdodCB7Ci0gICAgYm9yZGVy
OiBub25lOwotICAgIGhlaWdodDogMHB4OwotICAgIHBhZGRpbmc6IDA7Ci19Ci0uemVyby1zaXpl
IHsKLSAgICBib3JkZXI6IG5vbmU7Ci0gICAgd2lkdGg6IDBweDsKLSAgICBoZWlnaHQ6IDBweDsK
LSAgICBwYWRkaW5nOiAwOwotfQotLmhpZGRlbiB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLSNk
ZXNjcmlwdGlvbiB7Ci0gICAgY2xlYXI6IGJvdGg7Ci19Ci0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5j
dGlvbiBub2RlU2VsZWN0ZWQobm9kZSkKLSAgICB7Ci0gICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFs
dWF0ZSgiZHVtcEluc3BlY3RvckhpZ2hsaWdodGVkTm9kZSgpIiwgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgi
aW5zcGVjdGVkRWxlbWVudCIsIG5vZGVTZWxlY3RlZCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0KLTxkaXYgaWQ9ImZsb3ciPgotICAgIDxk
aXYgaWQ9Imluc3BlY3RlZEVsZW1lbnQiPjwvZGl2PgotPC9kaXY+Ci0KLTxkaXYgY2xhc3M9InJl
Z2lvbiI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJyZWdpb24gc21hbGwiPjwvZGl2PgotPGRpdiBjbGFz
cz0icmVnaW9uIHplcm8taGVpZ2h0Ij48L2Rpdj4KLTxkaXYgY2xhc3M9InJlZ2lvbiB6ZXJvLXNp
emUiPjwvZGl2PgotPGRpdiBjbGFzcz0icmVnaW9uIGhpZGRlbiI+PC9kaXY+Ci08cCBpZD0iZGVz
Y3JpcHRpb24iPlRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgcG9zaXRpb24gYW5kIHNpemUgb2YgdGhl
IGhpZ2hsaWdodGVkIG5vZGUgaW5zaWRlIENTUyBSZWdpb25zLjwvcD4KLQotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdo
dC1yZWdpb25zLWZsb3ctdHJhbnNmb3JtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93LXRyYW5zZm9ybS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllMjVlOTMuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1yZWdpb25zLWZsb3ctdHJh
bnNmb3JtLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQyOCArMCwwIEBACi1UaGlz
IHRlc3QgdmVyaWZpZXMgdGhlIHBvc2l0aW9uIGFuZCBzaXplIG9mIHRoZSBoaWdobGlnaHRlZCBu
b2RlIGluc2lkZSBDU1MgUmVnaW9ucy4KLQotewotICAgICJzY3JvbGwiOiB7Ci0gICAgICAgICJ4
IjogMCwKLSAgICAgICAgInkiOiAwCi0gICAgfSwKLSAgICAiZnJhZ21lbnRzIjogWwotICAgICAg
ICB7Ci0gICAgICAgICAgICAicXVhZHMiOiBbCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDIwNywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogMjYKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzOTUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAieSI6IDk0Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNTMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAieSI6IDEwMzQKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMTM1LAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiA5NjYKLSAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDIwNywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ5IjogMjYKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzOTUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAieSI6IDk0Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNTMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAieSI6IDEwMzQKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMTM1LAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiA5NjYKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAieCI6IDIwNywKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjYK
LSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgIngiOiAzOTUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDk0
Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ4IjogNTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDEw
MzQKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIngiOiAtMTM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInki
OiA5NjYKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAg
ICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAieCI6IDIwNywKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjYKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiAzOTUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDk0Ci0gICAgICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ4IjogNTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDEwMzQKLSAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiAtMTM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA5NjYKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIF0sCi0gICAg
ICAgICAgICAic2hvd1J1bGVycyI6IGZhbHNlLAotICAgICAgICAgICAgImNvbnRlbnRDb2xvciI6
ICJyZ2JhKDExMSwgMTY4LCAyMjAsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAg
ImNvbnRlbnRPdXRsaW5lQ29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIsCi0gICAgICAgICAgICAi
cGFkZGluZ0NvbG9yIjogInJnYmEoMTQ3LCAxOTYsIDEyNSwgMC41NDkwMTk2MDc4NDMxMzczKSIs
Ci0gICAgICAgICAgICAiYm9yZGVyQ29sb3IiOiAicmdiYSgyNTUsIDIyOSwgMTUzLCAwLjY1ODgy
MzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJtYXJnaW5Db2xvciI6ICJyZ2JhKDI0NiwgMTc4
LCAxMDcsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgInJlZ2lvbiI6IHsKLSAg
ICAgICAgICAgICAgICAicXVhZCI6IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgIngiOiAzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzAK
LSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgIngiOiAyMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDMw
Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ4IjogMjMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAy
MzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIngiOiAzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
MjMwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJxdWFkcyI6IFsKLSAgICAg
ICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ4IjogNDY3LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMTc0Ci0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogNTYxLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMTQwCi0gICAg
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ4IjogMjE5LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA4MDAKLSAg
ICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgIngiOiAxMjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDc2Ngot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAg
ICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4Ijog
NDY3LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMTc0Ci0gICAgICAgICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4
IjogNTYxLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMTQwCi0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogMjE5LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA4MDAKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiAxMjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDc2NgotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNDY3LAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiAtMTc0Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNTYxLAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMTQwCi0gICAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjE5
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA4MDAKLSAgICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAx
MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDc2NgotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNDY3LAotICAgICAgICAgICAg
ICAgICAgICAgICAgInkiOiAtMTc0Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNTYxLAotICAgICAgICAg
ICAgICAgICAgICAgICAgInkiOiAtMTQwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjE5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiA4MDAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMjUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAieSI6IDc2NgotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJzaG93UnVsZXJzIjog
ZmFsc2UsCi0gICAgICAgICAgICAiY29udGVudENvbG9yIjogInJnYmEoMTExLCAxNjgsIDIyMCwg
MC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAgICAiY29udGVudE91dGxpbmVDb2xvciI6
ICJyZ2JhKDAsIDAsIDAsIDApIiwKLSAgICAgICAgICAgICJwYWRkaW5nQ29sb3IiOiAicmdiYSgx
NDcsIDE5NiwgMTI1LCAwLjU0OTAxOTYwNzg0MzEzNzMpIiwKLSAgICAgICAgICAgICJib3JkZXJD
b2xvciI6ICJyZ2JhKDI1NSwgMjI5LCAxNTMsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAg
ICAgICAgIm1hcmdpbkNvbG9yIjogInJnYmEoMjQ2LCAxNzgsIDEwNywgMC42NTg4MjM1Mjk0MTE3
NjQ3KSIsCi0gICAgICAgICAgICAicmVnaW9uIjogewotICAgICAgICAgICAgICAgICJxdWFkIjog
WwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDI5
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA0
OTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4Ijog
NDkwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngi
OiAyOTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDIzMAotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgICAicXVhZHMiOiBbCi0gICAgICAgICAgICAgICAgWwotICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDYwMiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ5IjogLTM5OQotICAgICAgICAgICAgICAgICAgICB9LAotICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc5MCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTMzMQotICAgICAgICAgICAgICAgICAgICB9LAot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDQ0OCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNjA5Ci0gICAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjYw
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA1NDEKLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDYwMiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ5IjogLTM5OQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc5MCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ5IjogLTMzMQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDQ0OCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogNjA5Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjYwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiA1NDEKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IDYwMiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogLTM5OQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc5MCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ5IjogLTMzMQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDQ0OCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ5IjogNjA5Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjYwLAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiA1NDEKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAieCI6IDYwMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTM5
OQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAieCI6IDc5MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
LTMzMQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAieCI6IDQ0OCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogNjA5Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjYwLAotICAgICAgICAgICAgICAgICAgICAgICAg
InkiOiA1NDEKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICAic2hvd1J1bGVycyI6IGZhbHNlLAotICAgICAgICAgICAg
ImNvbnRlbnRDb2xvciI6ICJyZ2JhKDExMSwgMTY4LCAyMjAsIDAuNjU4ODIzNTI5NDExNzY0Nyki
LAotICAgICAgICAgICAgImNvbnRlbnRPdXRsaW5lQ29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIs
Ci0gICAgICAgICAgICAicGFkZGluZ0NvbG9yIjogInJnYmEoMTQ3LCAxOTYsIDEyNSwgMC41NDkw
MTk2MDc4NDMxMzczKSIsCi0gICAgICAgICAgICAiYm9yZGVyQ29sb3IiOiAicmdiYSgyNTUsIDIy
OSwgMTUzLCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJtYXJnaW5Db2xvciI6
ICJyZ2JhKDI0NiwgMTc4LCAxMDcsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAg
InJlZ2lvbiI6IHsKLSAgICAgICAgICAgICAgICAicXVhZCI6IFsKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA0MjUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAieSI6IDUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA2MjUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAieSI6IDUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA2MjUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAieSI6IDUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA0MjUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAieSI6IDUKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0K
LSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgInF1YWRz
IjogWwotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgIngiOiA4MTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0z
OTkKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIngiOiA4MTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6
IC0zOTkKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIngiOiA0NzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
eSI6IDU0MQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IDQ3MCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogNTQxCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAg
ICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiA4MTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0zOTkKLSAgICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiA4MTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0zOTkKLSAg
ICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgIngiOiA0NzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDU0MQot
ICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAieCI6IDQ3MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNTQx
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAg
ICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngi
OiA4MTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0zOTkKLSAgICAgICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg
IngiOiA4MTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0zOTkKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiA0NzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDU0MQotICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IDQ3MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNTQxCi0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA4MTIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0zOTkKLSAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA4MTIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0zOTkKLSAgICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA0
NzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDU0MQotICAgICAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6
IDQ3MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNTQxCi0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgInNo
b3dSdWxlcnMiOiBmYWxzZSwKLSAgICAgICAgICAgICJjb250ZW50Q29sb3IiOiAicmdiYSgxMTEs
IDE2OCwgMjIwLCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJjb250ZW50T3V0
bGluZUNvbG9yIjogInJnYmEoMCwgMCwgMCwgMCkiLAotICAgICAgICAgICAgInBhZGRpbmdDb2xv
ciI6ICJyZ2JhKDE0NywgMTk2LCAxMjUsIDAuNTQ5MDE5NjA3ODQzMTM3MykiLAotICAgICAgICAg
ICAgImJvcmRlckNvbG9yIjogInJnYmEoMjU1LCAyMjksIDE1MywgMC42NTg4MjM1Mjk0MTE3NjQ3
KSIsCi0gICAgICAgICAgICAibWFyZ2luQ29sb3IiOiAicmdiYSgyNDYsIDE3OCwgMTA3LCAwLjY1
ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJyZWdpb24iOiB7Ci0gICAgICAgICAgICAg
ICAgInF1YWQiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ4IjogNjM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA1Ci0gICAgICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ4IjogODM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA1Ci0gICAgICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ4IjogODM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2MDUKLSAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiA2MzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDYwNQotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgXSwKLSAgICAiZWxlbWVudEluZm8iOiB7Ci0gICAgICAgICJ0YWdOYW1lIjogImRp
diIsCi0gICAgICAgICJpZFZhbHVlIjogImluc3BlY3RlZEVsZW1lbnQiLAotICAgICAgICAibm9k
ZVdpZHRoIjogIjIwMCIsCi0gICAgICAgICJub2RlSGVpZ2h0IjogIjEwMDAiLAotICAgICAgICAi
Y29udGVudEZsb3dJbmZvIjogewotICAgICAgICAgICAgIm5hbWUiOiAiZmxvdyIKLSAgICAgICAg
fQotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L2hpZ2hsaWdodC1yZWdpb25zLWZsb3ctdHJhbnNmb3JtLWhvcml6LWJ0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93LXRy
YW5zZm9ybS1ob3Jpei1idC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGMwNTM4NjkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L2hpZ2hsaWdodC1yZWdpb25zLWZsb3ctdHJhbnNmb3JtLWhvcml6LWJ0LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDQyOCArMCwwIEBACi1UaGlzIHRlc3QgdmVyaWZpZXMgdGhlIHBv
c2l0aW9uIGFuZCBzaXplIG9mIHRoZSBoaWdobGlnaHRlZCBub2RlIGluc2lkZSBDU1MgUmVnaW9u
cy4KLQotewotICAgICJzY3JvbGwiOiB7Ci0gICAgICAgICJ4IjogMCwKLSAgICAgICAgInkiOiAw
Ci0gICAgfSwKLSAgICAiZnJhZ21lbnRzIjogWwotICAgICAgICB7Ci0gICAgICAgICAgICAicXVh
ZHMiOiBbCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAieCI6IDIwNywKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
LTczNAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAieCI6IDM5NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogLTY2NgotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IDUzLAotICAgICAgICAgICAgICAgICAgICAgICAg
InkiOiAyNzQKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMTM1LAotICAgICAgICAgICAgICAgICAgICAg
ICAgInkiOiAyMDYKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0g
ICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAieCI6IDIwNywKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTczNAotICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IDM5NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTY2Ngot
ICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAieCI6IDUzLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNzQK
LSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgIngiOiAtMTM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAy
MDYKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAg
ICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDIwNywKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTczNAotICAgICAgICAgICAg
ICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAieCI6IDM5NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTY2NgotICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IDUzLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNzQKLSAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiAtMTM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMDYKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDIwNywK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTczNAotICAgICAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDM5
NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTY2NgotICAgICAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6
IDUzLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNzQKLSAgICAgICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngi
OiAtMTM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMDYKLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAi
c2hvd1J1bGVycyI6IGZhbHNlLAotICAgICAgICAgICAgImNvbnRlbnRDb2xvciI6ICJyZ2JhKDEx
MSwgMTY4LCAyMjAsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgImNvbnRlbnRP
dXRsaW5lQ29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIsCi0gICAgICAgICAgICAicGFkZGluZ0Nv
bG9yIjogInJnYmEoMTQ3LCAxOTYsIDEyNSwgMC41NDkwMTk2MDc4NDMxMzczKSIsCi0gICAgICAg
ICAgICAiYm9yZGVyQ29sb3IiOiAicmdiYSgyNTUsIDIyOSwgMTUzLCAwLjY1ODgyMzUyOTQxMTc2
NDcpIiwKLSAgICAgICAgICAgICJtYXJnaW5Db2xvciI6ICJyZ2JhKDI0NiwgMTc4LCAxMDcsIDAu
NjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgInJlZ2lvbiI6IHsKLSAgICAgICAgICAg
ICAgICAicXVhZCI6IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiAzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNzAKLSAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiAyMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDcwCi0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogMjMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNzAKLSAgICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiAzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjcwCi0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJxdWFkcyI6IFsKLSAgICAgICAgICAgICAg
ICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4Ijog
NDY3LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtNTM0Ci0gICAgICAgICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4
IjogNTYxLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtNTAwCi0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogMjE5LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA0NDAKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiAxMjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDQwNgotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNDY3LAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiAtNTM0Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNTYxLAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtNTAwCi0gICAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjE5
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA0NDAKLSAgICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAx
MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDQwNgotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNDY3LAotICAgICAgICAgICAg
ICAgICAgICAgICAgInkiOiAtNTM0Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNTYxLAotICAgICAgICAg
ICAgICAgICAgICAgICAgInkiOiAtNTAwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjE5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiA0NDAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMjUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAieSI6IDQwNgotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNDY3LAotICAgICAgICAgICAgICAgICAgICAg
ICAgInkiOiAtNTM0Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNTYxLAotICAgICAgICAgICAgICAgICAg
ICAgICAgInkiOiAtNTAwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjE5LAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiA0NDAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMjUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAieSI6IDQwNgotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJzaG93UnVsZXJzIjogZmFsc2UsCi0g
ICAgICAgICAgICAiY29udGVudENvbG9yIjogInJnYmEoMTExLCAxNjgsIDIyMCwgMC42NTg4MjM1
Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAgICAiY29udGVudE91dGxpbmVDb2xvciI6ICJyZ2JhKDAs
IDAsIDAsIDApIiwKLSAgICAgICAgICAgICJwYWRkaW5nQ29sb3IiOiAicmdiYSgxNDcsIDE5Niwg
MTI1LCAwLjU0OTAxOTYwNzg0MzEzNzMpIiwKLSAgICAgICAgICAgICJib3JkZXJDb2xvciI6ICJy
Z2JhKDI1NSwgMjI5LCAxNTMsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgIm1h
cmdpbkNvbG9yIjogInJnYmEoMjQ2LCAxNzgsIDEwNywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0g
ICAgICAgICAgICAicmVnaW9uIjogewotICAgICAgICAgICAgICAgICJxdWFkIjogWwotICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDI5MCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ5IjogNzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA0OTAsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAieSI6IDcwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNDkwLAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiAyNzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAyOTAsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI3MAotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgICAicXVhZHMiOiBbCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDYwMiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ5IjogLTMwOQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc5MCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ5IjogLTI0MQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDQ0OCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogNjk5Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjYwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiA2MzEKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IDYwMiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogLTMwOQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc5MCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ5IjogLTI0MQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDQ0OCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ5IjogNjk5Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjYwLAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiA2MzEKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAieCI6IDYwMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTMw
OQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAieCI6IDc5MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
LTI0MQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAieCI6IDQ0OCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogNjk5Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjYwLAotICAgICAgICAgICAgICAgICAgICAgICAg
InkiOiA2MzEKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAg
ICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IDYwMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTMwOQotICAgICAg
ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAieCI6IDc5MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTI0MQotICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IDQ0OCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNjk5Ci0g
ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ4IjogMjYwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2MzEK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICAic2hvd1J1bGVycyI6IGZhbHNlLAotICAgICAgICAgICAgImNvbnRlbnRD
b2xvciI6ICJyZ2JhKDExMSwgMTY4LCAyMjAsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAg
ICAgICAgImNvbnRlbnRPdXRsaW5lQ29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIsCi0gICAgICAg
ICAgICAicGFkZGluZ0NvbG9yIjogInJnYmEoMTQ3LCAxOTYsIDEyNSwgMC41NDkwMTk2MDc4NDMx
MzczKSIsCi0gICAgICAgICAgICAiYm9yZGVyQ29sb3IiOiAicmdiYSgyNTUsIDIyOSwgMTUzLCAw
LjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJtYXJnaW5Db2xvciI6ICJyZ2JhKDI0
NiwgMTc4LCAxMDcsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgInJlZ2lvbiI6
IHsKLSAgICAgICAgICAgICAgICAicXVhZCI6IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIngiOiA0MjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
eSI6IDI5NQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IDYyNSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogMjk1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjI1LAotICAgICAgICAgICAgICAgICAgICAg
ICAgInkiOiAyOTUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA0MjUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAieSI6IDI5NQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXQot
ICAgICAgICAgICAgfQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAicXVhZHMi
OiBbCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAieCI6IDgxMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTMw
OQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAieCI6IDgxMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
LTMwOQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAieCI6IDQ3MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogNjMxCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ4IjogNDcwLAotICAgICAgICAgICAgICAgICAgICAgICAg
InkiOiA2MzEKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAg
ICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IDgxMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTMwOQotICAgICAg
ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAieCI6IDgxMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTMwOQotICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IDQ3MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNjMxCi0g
ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ4IjogNDcwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2MzEK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAg
ICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6
IDgxMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTMwOQotICAgICAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDgxMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTMwOQotICAgICAgICAgICAg
ICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAieCI6IDQ3MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNjMxCi0gICAgICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ4IjogNDcwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2MzEKLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDgxMiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTMwOQotICAgICAgICAgICAgICAgICAgICB9LAot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDgxMiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTMwOQotICAgICAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDQ3
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNjMxCi0gICAgICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4Ijog
NDcwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA2MzEKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAic2hv
d1J1bGVycyI6IGZhbHNlLAotICAgICAgICAgICAgImNvbnRlbnRDb2xvciI6ICJyZ2JhKDExMSwg
MTY4LCAyMjAsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgImNvbnRlbnRPdXRs
aW5lQ29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIsCi0gICAgICAgICAgICAicGFkZGluZ0NvbG9y
IjogInJnYmEoMTQ3LCAxOTYsIDEyNSwgMC41NDkwMTk2MDc4NDMxMzczKSIsCi0gICAgICAgICAg
ICAiYm9yZGVyQ29sb3IiOiAicmdiYSgyNTUsIDIyOSwgMTUzLCAwLjY1ODgyMzUyOTQxMTc2NDcp
IiwKLSAgICAgICAgICAgICJtYXJnaW5Db2xvciI6ICJyZ2JhKDI0NiwgMTc4LCAxMDcsIDAuNjU4
ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgInJlZ2lvbiI6IHsKLSAgICAgICAgICAgICAg
ICAicXVhZCI6IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiA2MzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI5NQotICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IDgzNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjk1Ci0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogODM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA4OTUKLSAgICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiA2MzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDg5NQotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgXSwKLSAgICAiZWxlbWVudEluZm8iOiB7Ci0gICAgICAgICJ0YWdOYW1lIjog
ImRpdiIsCi0gICAgICAgICJpZFZhbHVlIjogImluc3BlY3RlZEVsZW1lbnQiLAotICAgICAgICAi
bm9kZVdpZHRoIjogIjIwMCIsCi0gICAgICAgICJub2RlSGVpZ2h0IjogIjEwMDAiLAotICAgICAg
ICAiY29udGVudEZsb3dJbmZvIjogewotICAgICAgICAgICAgIm5hbWUiOiAiZmxvdyIKLSAgICAg
ICAgfQotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2hpZ2hsaWdodC1yZWdpb25zLWZsb3ctdHJhbnNmb3JtLWhvcml6LWJ0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy10cmFuc2Zv
cm0taG9yaXotYnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTliM2NhMC4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXJl
Z2lvbnMtZmxvdy10cmFuc2Zvcm0taG9yaXotYnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg5
ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWwgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1t
b2RlOiBob3Jpem9udGFsLWJ0OyI+Ci08aGVhZD4KLQotPHN0eWxlPgotCi1ib2R5IHsKLSAgICBt
YXJnaW46IDA7Ci19Ci0jZmxvdyB7Ci0gICAgLXdlYmtpdC1mbG93LWludG86IGZsb3c7Ci19Ci0j
Y29udGFpbmVyIHsKLSAgICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLSAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBncmV5OwotfQotI2luc3BlY3RlZEVsZW1lbnQgewotICAgIHdpZHRo
OiAxMDAlOwotICAgIGhlaWdodDogMTAwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OwotICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjBkZWcpOwotICAgIHRyYW5zZm9ybTog
cm90YXRlKDIwZGVnKTsKLX0KLS5yZWdpb24gewotICAgIG1hcmdpbjogNXB4OwotICAgIGJvcmRl
cjogc29saWQgMTBweCBhcXVhOwotICAgIHBhZGRpbmc6IDE1cHg7Ci0gICAgd2lkdGg6IDIwMHB4
OwotICAgIGhlaWdodDogMjAwcHg7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKLSAgICBm
bG9hdDogbGVmdDsKLSAgICAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsKLX0KLS5zbWFsbCB7Ci0g
ICAgd2lkdGg6IDEwMHB4OwotfQotLnplcm8taGVpZ2h0IHsKLSAgICBib3JkZXI6IG5vbmU7Ci0g
ICAgaGVpZ2h0OiAwcHg7Ci0gICAgcGFkZGluZzogMDsKLX0KLS56ZXJvLXNpemUgewotICAgIGJv
cmRlcjogbm9uZTsKLSAgICB3aWR0aDogMHB4OwotICAgIGhlaWdodDogMHB4OwotICAgIHBhZGRp
bmc6IDA7Ci19Ci0uaGlkZGVuIHsKLSAgICBkaXNwbGF5OiBub25lOwotfQotI2Rlc2NyaXB0aW9u
IHsKLSAgICBjbGVhcjogYm90aDsKLX0KLQotPC9zdHlsZT4KLQotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9uIG5vZGVT
ZWxlY3RlZChub2RlKQotICAgIHsKLSAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJkdW1w
SW5zcGVjdG9ySGlnaGxpZ2h0ZWROb2RlKCkiLCBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCk7
Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElkKCJpbnNwZWN0ZWRF
bGVtZW50Iiwgbm9kZVNlbGVjdGVkKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLQotPGRpdiBpZD0iZmxvdyI+Ci0gICAgPGRpdiBpZD0iaW5z
cGVjdGVkRWxlbWVudCI+PC9kaXY+Ci08L2Rpdj4KLQotPGRpdiBjbGFzcz0icmVnaW9uIj48L2Rp
dj4KLTxkaXYgY2xhc3M9InJlZ2lvbiBzbWFsbCI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJyZWdpb24g
emVyby1oZWlnaHQiPjwvZGl2PgotPGRpdiBjbGFzcz0icmVnaW9uIHplcm8tc2l6ZSI+PC9kaXY+
Ci08ZGl2IGNsYXNzPSJyZWdpb24gaGlkZGVuIj48L2Rpdj4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+
VGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSBwb3NpdGlvbiBhbmQgc2l6ZSBvZiB0aGUgaGlnaGxpZ2h0
ZWQgbm9kZSBpbnNpZGUgQ1NTIFJlZ2lvbnMuPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMt
Zmxvdy10cmFuc2Zvcm0tdmVydC1sci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy10cmFuc2Zvcm0tdmVydC1sci1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjMTNhOTQuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1yZWdpb25zLWZs
b3ctdHJhbnNmb3JtLXZlcnQtbHItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDI4
ICswLDAgQEAKLVRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgcG9zaXRpb24gYW5kIHNpemUgb2YgdGhl
IGhpZ2hsaWdodGVkIG5vZGUgaW5zaWRlIENTUyBSZWdpb25zLgotCi17Ci0gICAgInNjcm9sbCI6
IHsKLSAgICAgICAgIngiOiAwLAotICAgICAgICAieSI6IDAKLSAgICB9LAotICAgICJmcmFnbWVu
dHMiOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAgICJxdWFkcyI6IFsKLSAgICAgICAgICAgICAg
ICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4Ijog
LTE4MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTEzNQotICAgICAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDc1OSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjA3Ci0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogNjkxLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzOTUKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiAtMjQ5LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA1MwotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTE4MSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTEzNQotICAgICAgICAgICAgICAgICAgICB9LAot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc1OSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjA3Ci0gICAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjkx
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzOTUKLSAgICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAt
MjQ5LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA1MwotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTE4MSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ5IjogLTEzNQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc1OSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogMjA3Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjkxLAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiAzOTUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMjQ5LAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiA1MwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTE4MSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ5IjogLTEzNQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc1OSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ5IjogMjA3Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjkxLAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiAzOTUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMjQ5LAotICAgICAgICAgICAg
ICAgICAgICAgICAgInkiOiA1MwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJzaG93UnVsZXJzIjogZmFsc2UsCi0g
ICAgICAgICAgICAiY29udGVudENvbG9yIjogInJnYmEoMTExLCAxNjgsIDIyMCwgMC42NTg4MjM1
Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAgICAiY29udGVudE91dGxpbmVDb2xvciI6ICJyZ2JhKDAs
IDAsIDAsIDApIiwKLSAgICAgICAgICAgICJwYWRkaW5nQ29sb3IiOiAicmdiYSgxNDcsIDE5Niwg
MTI1LCAwLjU0OTAxOTYwNzg0MzEzNzMpIiwKLSAgICAgICAgICAgICJib3JkZXJDb2xvciI6ICJy
Z2JhKDI1NSwgMjI5LCAxNTMsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgIm1h
cmdpbkNvbG9yIjogInJnYmEoMjQ2LCAxNzgsIDEwNywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0g
ICAgICAgICAgICAicmVnaW9uIjogewotICAgICAgICAgICAgICAgICJxdWFkIjogWwotICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDU1NSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA3NTUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNzU1LAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA1NTUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAieSI6IDIzMAotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgICAicXVhZHMiOiBbCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IC0yNDEsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAieSI6IC0xMzUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA2OTksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAieSI6IDIwNwotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDYzMSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogMzk1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTMwOSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ5IjogNTMKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IC0yNDEsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAieSI6IC0xMzUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA2OTksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAieSI6IDIwNwotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDYzMSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ5IjogMzk1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTMwOSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ5IjogNTMKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAieCI6IC0yNDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0x
MzUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIngiOiA2OTksCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6
IDIwNwotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAieCI6IDYzMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogMzk1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTMwOSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogNTMKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAg
ICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IC0yNDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IC0xMzUKLSAgICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiA2OTksCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDIwNwotICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IDYzMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzk1Ci0g
ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ4IjogLTMwOSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNTMK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICAic2hvd1J1bGVycyI6IGZhbHNlLAotICAgICAgICAgICAgImNvbnRlbnRD
b2xvciI6ICJyZ2JhKDExMSwgMTY4LCAyMjAsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAg
ICAgICAgImNvbnRlbnRPdXRsaW5lQ29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIsCi0gICAgICAg
ICAgICAicGFkZGluZ0NvbG9yIjogInJnYmEoMTQ3LCAxOTYsIDEyNSwgMC41NDkwMTk2MDc4NDMx
MzczKSIsCi0gICAgICAgICAgICAiYm9yZGVyQ29sb3IiOiAicmdiYSgyNTUsIDIyOSwgMTUzLCAw
LjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJtYXJnaW5Db2xvciI6ICJyZ2JhKDI0
NiwgMTc4LCAxMDcsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgInJlZ2lvbiI6
IHsKLSAgICAgICAgICAgICAgICAicXVhZCI6IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIngiOiAzOTUsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
eSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ4IjogNDk1LAotICAgICAgICAgICAgICAgICAgICAgICAg
InkiOiAzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IDQ5NSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogMjMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMzk1LAotICAgICAgICAgICAgICAgICAgICAg
ICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgInF1YWRzIjog
WwotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgIngiOiAtMTE2LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAxMDAK
LSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgIngiOiA4MjQsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDQ0
MgotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAieCI6IDgyNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
NDQyCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ4IjogLTExNiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogMTAwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAg
ICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiAtMTE2LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAxMDAKLSAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiA4MjQsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDQ0MgotICAgICAg
ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAieCI6IDgyNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDQyCi0gICAg
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ4IjogLTExNiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMTAwCi0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAg
IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAt
MTE2LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAxMDAKLSAgICAgICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngi
OiA4MjQsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDQ0MgotICAgICAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDgyNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDQyCi0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogLTExNiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMTAwCi0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMTE2LAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiAxMDAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA4MjQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAieSI6IDQ0MgotICAgICAgICAgICAgICAgICAgICB9LAot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDgyNCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDQyCi0gICAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTEx
NiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMTAwCi0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgInNob3dS
dWxlcnMiOiBmYWxzZSwKLSAgICAgICAgICAgICJjb250ZW50Q29sb3IiOiAicmdiYSgxMTEsIDE2
OCwgMjIwLCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJjb250ZW50T3V0bGlu
ZUNvbG9yIjogInJnYmEoMCwgMCwgMCwgMCkiLAotICAgICAgICAgICAgInBhZGRpbmdDb2xvciI6
ICJyZ2JhKDE0NywgMTk2LCAxMjUsIDAuNTQ5MDE5NjA3ODQzMTM3MykiLAotICAgICAgICAgICAg
ImJvcmRlckNvbG9yIjogInJnYmEoMjU1LCAyMjksIDE1MywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIs
Ci0gICAgICAgICAgICAibWFyZ2luQ29sb3IiOiAicmdiYSgyNDYsIDE3OCwgMTA3LCAwLjY1ODgy
MzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJyZWdpb24iOiB7Ci0gICAgICAgICAgICAgICAg
InF1YWQiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogMzIwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiA1MjAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI2NQotICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IDUyMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDY1Ci0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogMzIwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA0NjUKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgInF1YWRzIjogWwotICAgICAgICAgICAgICAg
IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA4
NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMTEwCi0gICAgICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4Ijog
MTAyNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDUyCi0gICAgICAgICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4
IjogMTAyNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDUyCi0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogODQsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDExMAotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogODQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAieSI6IDExMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDEwMjQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAieSI6IDQ1MgotICAgICAgICAgICAgICAgICAgICB9LAotICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDEwMjQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAieSI6IDQ1MgotICAgICAgICAgICAgICAgICAgICB9LAot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDg0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAxMTAKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDg0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgInkiOiAxMTAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMDI0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiA0NTIKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMDI0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgInkiOiA0NTIKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA4NCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ5IjogMTEwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIngiOiA4NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
MTEwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ4IjogMTAyNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogNDUyCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ4IjogMTAyNCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogNDUyCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogODQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAieSI6IDExMAotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXQotICAg
ICAgICAgICAgXSwKLSAgICAgICAgICAgICJzaG93UnVsZXJzIjogZmFsc2UsCi0gICAgICAgICAg
ICAiY29udGVudENvbG9yIjogInJnYmEoMTExLCAxNjgsIDIyMCwgMC42NTg4MjM1Mjk0MTE3NjQ3
KSIsCi0gICAgICAgICAgICAiY29udGVudE91dGxpbmVDb2xvciI6ICJyZ2JhKDAsIDAsIDAsIDAp
IiwKLSAgICAgICAgICAgICJwYWRkaW5nQ29sb3IiOiAicmdiYSgxNDcsIDE5NiwgMTI1LCAwLjU0
OTAxOTYwNzg0MzEzNzMpIiwKLSAgICAgICAgICAgICJib3JkZXJDb2xvciI6ICJyZ2JhKDI1NSwg
MjI5LCAxNTMsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgIm1hcmdpbkNvbG9y
IjogInJnYmEoMjQ2LCAxNzgsIDEwNywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAg
ICAicmVnaW9uIjogewotICAgICAgICAgICAgICAgICJxdWFkIjogWwotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDUyMCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMTAyMCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMTAyMCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogNDc1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNTIwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiA0NzUKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0sCi0gICAgImVsZW1l
bnRJbmZvIjogewotICAgICAgICAidGFnTmFtZSI6ICJkaXYiLAotICAgICAgICAiaWRWYWx1ZSI6
ICJpbnNwZWN0ZWRFbGVtZW50IiwKLSAgICAgICAgIm5vZGVXaWR0aCI6ICIxMDAwIiwKLSAgICAg
ICAgIm5vZGVIZWlnaHQiOiAiMjAwIiwKLSAgICAgICAgImNvbnRlbnRGbG93SW5mbyI6IHsKLSAg
ICAgICAgICAgICJuYW1lIjogImZsb3ciCi0gICAgICAgIH0KLSAgICB9Ci19Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93
LXRyYW5zZm9ybS12ZXJ0LWxyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
aGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy10cmFuc2Zvcm0tdmVydC1sci5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlMjg0MDIwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93LXRyYW5zZm9ybS12ZXJ0LWxy
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxo
dG1sIHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7Ij4KLTxoZWFkPgot
Ci08c3R5bGU+Ci0KLWJvZHkgewotICAgIG1hcmdpbjogMDsKLX0KLSNmbG93IHsKLSAgICAtd2Vi
a2l0LWZsb3ctaW50bzogZmxvdzsKLX0KLSNjb250YWluZXIgewotICAgIHdpZHRoOiA0MDBweDsK
LSAgICBoZWlnaHQ6IDQwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGdyZXk7Ci19Ci0jaW5z
cGVjdGVkRWxlbWVudCB7Ci0gICAgaGVpZ2h0OiAxMDAlOwotICAgIHdpZHRoOiAxMDAwcHg7Ci0g
ICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ci0gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0
ZSgyMGRlZyk7Ci0gICAgdHJhbnNmb3JtOiByb3RhdGUoMjBkZWcpOwotfQotLnJlZ2lvbiB7Ci0g
ICAgbWFyZ2luOiA1cHg7Ci0gICAgYm9yZGVyOiBzb2xpZCAxMHB4IGFxdWE7Ci0gICAgcGFkZGlu
ZzogMTVweDsKLSAgICB3aWR0aDogMjAwcHg7Ci0gICAgaGVpZ2h0OiAyMDBweDsKLSAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBibHVlOwotICAgIGZsb2F0OiBsZWZ0OwotICAgIC13ZWJraXQtZmxvdy1m
cm9tOiBmbG93OwotfQotLnNtYWxsIHsKLSAgICB3aWR0aDogMTAwcHg7Ci19Ci0uemVyby1oZWln
aHQgewotICAgIGJvcmRlcjogbm9uZTsKLSAgICBoZWlnaHQ6IDBweDsKLSAgICBwYWRkaW5nOiAw
OwotfQotLnplcm8tc2l6ZSB7Ci0gICAgYm9yZGVyOiBub25lOwotICAgIHdpZHRoOiAwcHg7Ci0g
ICAgaGVpZ2h0OiAwcHg7Ci0gICAgcGFkZGluZzogMDsKLX0KLS5oaWRkZW4gewotICAgIGRpc3Bs
YXk6IG5vbmU7Ci19Ci0jZGVzY3JpcHRpb24gewotICAgIGNsZWFyOiBib3RoOwotfQotCi08L3N0
eWxlPgotCi08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVz
dCgpCi17Ci0gICAgZnVuY3Rpb24gbm9kZVNlbGVjdGVkKG5vZGUpCi0gICAgewotICAgICAgICBS
dW50aW1lQWdlbnQuZXZhbHVhdGUoImR1bXBJbnNwZWN0b3JIaWdobGlnaHRlZE5vZGUoKSIsIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnNl
bGVjdE5vZGVXaXRoSWQoImluc3BlY3RlZEVsZW1lbnQiLCBub2RlU2VsZWN0ZWQpOwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotCi08ZGl2IGlk
PSJmbG93Ij4KLSAgICA8ZGl2IGlkPSJpbnNwZWN0ZWRFbGVtZW50Ij48L2Rpdj4KLTwvZGl2Pgot
Ci08ZGl2IGNsYXNzPSJyZWdpb24iPjwvZGl2PgotPGRpdiBjbGFzcz0icmVnaW9uIHNtYWxsIj48
L2Rpdj4KLTxkaXYgY2xhc3M9InJlZ2lvbiB6ZXJvLWhlaWdodCI+PC9kaXY+Ci08ZGl2IGNsYXNz
PSJyZWdpb24gemVyby1zaXplIj48L2Rpdj4KLTxkaXYgY2xhc3M9InJlZ2lvbiBoaWRkZW4iPjwv
ZGl2PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3QgdmVyaWZpZXMgdGhlIHBvc2l0aW9u
IGFuZCBzaXplIG9mIHRoZSBoaWdobGlnaHRlZCBub2RlIGluc2lkZSBDU1MgUmVnaW9ucy48L3A+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93LXRyYW5zZm9ybS12ZXJ0LXJsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1m
bG93LXRyYW5zZm9ybS12ZXJ0LXJsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMmMxM2E5NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy10cmFuc2Zvcm0tdmVydC1ybC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MjggKzAsMCBAQAotVGhpcyB0ZXN0IHZlcmlmaWVzIHRo
ZSBwb3NpdGlvbiBhbmQgc2l6ZSBvZiB0aGUgaGlnaGxpZ2h0ZWQgbm9kZSBpbnNpZGUgQ1NTIFJl
Z2lvbnMuCi0KLXsKLSAgICAic2Nyb2xsIjogewotICAgICAgICAieCI6IDAsCi0gICAgICAgICJ5
IjogMAotICAgIH0sCi0gICAgImZyYWdtZW50cyI6IFsKLSAgICAgICAgewotICAgICAgICAgICAg
InF1YWRzIjogWwotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIngiOiAtMTgxLAotICAgICAgICAgICAgICAgICAgICAgICAg
InkiOiAtMTM1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNzU5LAotICAgICAgICAgICAgICAgICAgICAg
ICAgInkiOiAyMDcKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA2OTEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAieSI6IDM5NQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IC0yNDksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAieSI6IDUzCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBd
LAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgIngiOiAtMTgxLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMTM1
Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ4IjogNzU5LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAy
MDcKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIngiOiA2OTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6
IDM5NQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAieCI6IC0yNDksCi0gICAgICAgICAgICAgICAgICAgICAgICAi
eSI6IDUzCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAg
ICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiAtMTgxLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMTM1Ci0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogNzU5LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMDcKLSAgICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiA2OTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDM5NQotICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IC0yNDksCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDUzCi0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAg
IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAt
MTgxLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAtMTM1Ci0gICAgICAgICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4
IjogNzU5LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMDcKLSAgICAgICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg
IngiOiA2OTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDM5NQotICAgICAgICAgICAg
ICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAieCI6IC0yNDksCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDUzCi0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICBdLAotICAgICAgICAg
ICAgInNob3dSdWxlcnMiOiBmYWxzZSwKLSAgICAgICAgICAgICJjb250ZW50Q29sb3IiOiAicmdi
YSgxMTEsIDE2OCwgMjIwLCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJjb250
ZW50T3V0bGluZUNvbG9yIjogInJnYmEoMCwgMCwgMCwgMCkiLAotICAgICAgICAgICAgInBhZGRp
bmdDb2xvciI6ICJyZ2JhKDE0NywgMTk2LCAxMjUsIDAuNTQ5MDE5NjA3ODQzMTM3MykiLAotICAg
ICAgICAgICAgImJvcmRlckNvbG9yIjogInJnYmEoMjU1LCAyMjksIDE1MywgMC42NTg4MjM1Mjk0
MTE3NjQ3KSIsCi0gICAgICAgICAgICAibWFyZ2luQ29sb3IiOiAicmdiYSgyNDYsIDE3OCwgMTA3
LCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJyZWdpb24iOiB7Ci0gICAgICAg
ICAgICAgICAgInF1YWQiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ4IjogNTU1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzMAotICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IDc1NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAg
ICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgIngiOiA3NTUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDIzMAot
ICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAieCI6IDU1NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjMw
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJxdWFkcyI6IFsKLSAgICAgICAg
ICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogLTI0MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTEzNQotICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IDY5OSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjA3Ci0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogNjMxLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzOTUKLSAgICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiAtMzA5LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA1MwotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBb
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTI0
MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogLTEzNQotICAgICAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6
IDY5OSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjA3Ci0gICAgICAgICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4
IjogNjMxLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzOTUKLSAgICAgICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg
IngiOiAtMzA5LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA1MwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTI0MSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ5IjogLTEzNQotICAgICAgICAgICAgICAgICAgICB9LAotICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDY5OSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjA3Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjMxLAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzOTUKLSAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMzA5
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA1MwotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTI0MSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ5IjogLTEzNQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDY5OSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ5IjogMjA3Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNjMxLAotICAgICAgICAg
ICAgICAgICAgICAgICAgInkiOiAzOTUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMzA5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiA1MwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJzaG93UnVsZXJzIjogZmFs
c2UsCi0gICAgICAgICAgICAiY29udGVudENvbG9yIjogInJnYmEoMTExLCAxNjgsIDIyMCwgMC42
NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAgICAiY29udGVudE91dGxpbmVDb2xvciI6ICJy
Z2JhKDAsIDAsIDAsIDApIiwKLSAgICAgICAgICAgICJwYWRkaW5nQ29sb3IiOiAicmdiYSgxNDcs
IDE5NiwgMTI1LCAwLjU0OTAxOTYwNzg0MzEzNzMpIiwKLSAgICAgICAgICAgICJib3JkZXJDb2xv
ciI6ICJyZ2JhKDI1NSwgMjI5LCAxNTMsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAg
ICAgIm1hcmdpbkNvbG9yIjogInJnYmEoMjQ2LCAxNzgsIDEwNywgMC42NTg4MjM1Mjk0MTE3NjQ3
KSIsCi0gICAgICAgICAgICAicmVnaW9uIjogewotICAgICAgICAgICAgICAgICJxdWFkIjogWwot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDM5NSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA0OTUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNDk1
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAz
OTUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDIzMAotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfQotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgICAicXVhZHMiOiBbCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IC0xMTYsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAieSI6IDEwMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDgyNCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ5IjogNDQyCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogODI0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiA0NDIKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMTE2LAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAxMDAKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IC0xMTYsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAieSI6IDEwMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDgyNCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ5IjogNDQyCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogODI0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgInkiOiA0NDIKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMTE2LAotICAgICAgICAg
ICAgICAgICAgICAgICAgInkiOiAxMDAKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAieCI6IC0xMTYsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
eSI6IDEwMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IDgyNCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogNDQyCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogODI0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgInkiOiA0NDIKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMTE2LAotICAgICAgICAgICAgICAgICAg
ICAgICAgInkiOiAxMDAKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IC0xMTYsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDEwMAot
ICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAieCI6IDgyNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDQy
Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ4IjogODI0LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA0
NDIKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIngiOiAtMTE2LAotICAgICAgICAgICAgICAgICAgICAgICAgInki
OiAxMDAKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAg
ICAgIF0sCi0gICAgICAgICAgICAic2hvd1J1bGVycyI6IGZhbHNlLAotICAgICAgICAgICAgImNv
bnRlbnRDb2xvciI6ICJyZ2JhKDExMSwgMTY4LCAyMjAsIDAuNjU4ODIzNTI5NDExNzY0NykiLAot
ICAgICAgICAgICAgImNvbnRlbnRPdXRsaW5lQ29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIsCi0g
ICAgICAgICAgICAicGFkZGluZ0NvbG9yIjogInJnYmEoMTQ3LCAxOTYsIDEyNSwgMC41NDkwMTk2
MDc4NDMxMzczKSIsCi0gICAgICAgICAgICAiYm9yZGVyQ29sb3IiOiAicmdiYSgyNTUsIDIyOSwg
MTUzLCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJtYXJnaW5Db2xvciI6ICJy
Z2JhKDI0NiwgMTc4LCAxMDcsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgInJl
Z2lvbiI6IHsKLSAgICAgICAgICAgICAgICAicXVhZCI6IFsKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzMjAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAieSI6IDI2NQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDUyMCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ5IjogMjY1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNTIwLAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiA0NjUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzMjAsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAieSI6IDQ2NQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgXQotICAgICAgICAgICAgfQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAi
cXVhZHMiOiBbCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAieCI6IDg0LAotICAgICAgICAgICAgICAgICAgICAgICAgInki
OiAxMTAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIngiOiAxMDI0LAotICAgICAgICAgICAgICAgICAgICAgICAg
InkiOiA0NTIKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMDI0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgInkiOiA0NTIKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA4NCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ5IjogMTEwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAot
ICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiA4NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMTEwCi0gICAg
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ4IjogMTAyNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDUyCi0g
ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ4IjogMTAyNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDUy
Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ4IjogODQsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDEx
MAotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAg
ICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4
IjogODQsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDExMAotICAgICAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDEwMjQsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDQ1MgotICAgICAgICAgICAg
ICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAieCI6IDEwMjQsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDQ1MgotICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IDg0LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAxMTAKLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDg0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiAxMTAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMDI0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA0NTIKLSAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMDI0
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA0NTIKLSAgICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA4
NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMTEwCi0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgInNob3dS
dWxlcnMiOiBmYWxzZSwKLSAgICAgICAgICAgICJjb250ZW50Q29sb3IiOiAicmdiYSgxMTEsIDE2
OCwgMjIwLCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJjb250ZW50T3V0bGlu
ZUNvbG9yIjogInJnYmEoMCwgMCwgMCwgMCkiLAotICAgICAgICAgICAgInBhZGRpbmdDb2xvciI6
ICJyZ2JhKDE0NywgMTk2LCAxMjUsIDAuNTQ5MDE5NjA3ODQzMTM3MykiLAotICAgICAgICAgICAg
ImJvcmRlckNvbG9yIjogInJnYmEoMjU1LCAyMjksIDE1MywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIs
Ci0gICAgICAgICAgICAibWFyZ2luQ29sb3IiOiAicmdiYSgyNDYsIDE3OCwgMTA3LCAwLjY1ODgy
MzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJyZWdpb24iOiB7Ci0gICAgICAgICAgICAgICAg
InF1YWQiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogNTIwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNzUKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiAxMDIwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNzUKLSAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiAxMDIwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA0NzUKLSAgICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiA1MjAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDQ3NQotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgXSwKLSAgICAiZWxlbWVudEluZm8iOiB7Ci0gICAgICAgICJ0YWdOYW1lIjog
ImRpdiIsCi0gICAgICAgICJpZFZhbHVlIjogImluc3BlY3RlZEVsZW1lbnQiLAotICAgICAgICAi
bm9kZVdpZHRoIjogIjEwMDAiLAotICAgICAgICAibm9kZUhlaWdodCI6ICIyMDAiLAotICAgICAg
ICAiY29udGVudEZsb3dJbmZvIjogewotICAgICAgICAgICAgIm5hbWUiOiAiZmxvdyIKLSAgICAg
ICAgfQotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2hpZ2hsaWdodC1yZWdpb25zLWZsb3ctdHJhbnNmb3JtLXZlcnQtcmwuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93LXRyYW5zZm9y
bS12ZXJ0LXJsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyODQwMjAuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1yZWdp
b25zLWZsb3ctdHJhbnNmb3JtLXZlcnQtcmwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICsw
LDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWwgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1tb2Rl
OiB2ZXJ0aWNhbC1ybDsiPgotPGhlYWQ+Ci0KLTxzdHlsZT4KLQotYm9keSB7Ci0gICAgbWFyZ2lu
OiAwOwotfQotI2Zsb3cgewotICAgIC13ZWJraXQtZmxvdy1pbnRvOiBmbG93OwotfQotI2NvbnRh
aW5lciB7Ci0gICAgd2lkdGg6IDQwMHB4OwotICAgIGhlaWdodDogNDAwcHg7Ci0gICAgYmFja2dy
b3VuZC1jb2xvcjogZ3JleTsKLX0KLSNpbnNwZWN0ZWRFbGVtZW50IHsKLSAgICBoZWlnaHQ6IDEw
MCU7Ci0gICAgd2lkdGg6IDEwMDBweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKLSAg
ICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDIwZGVnKTsKLSAgICB0cmFuc2Zvcm06IHJvdGF0
ZSgyMGRlZyk7Ci19Ci0ucmVnaW9uIHsKLSAgICBtYXJnaW46IDVweDsKLSAgICBib3JkZXI6IHNv
bGlkIDEwcHggYXF1YTsKLSAgICBwYWRkaW5nOiAxNXB4OwotICAgIHdpZHRoOiAyMDBweDsKLSAg
ICBoZWlnaHQ6IDIwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Ci0gICAgZmxvYXQ6
IGxlZnQ7Ci0gICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7Ci19Ci0uc21hbGwgewotICAgIHdp
ZHRoOiAxMDBweDsKLX0KLS56ZXJvLWhlaWdodCB7Ci0gICAgYm9yZGVyOiBub25lOwotICAgIGhl
aWdodDogMHB4OwotICAgIHBhZGRpbmc6IDA7Ci19Ci0uemVyby1zaXplIHsKLSAgICBib3JkZXI6
IG5vbmU7Ci0gICAgd2lkdGg6IDBweDsKLSAgICBoZWlnaHQ6IDBweDsKLSAgICBwYWRkaW5nOiAw
OwotfQotLmhpZGRlbiB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLSNkZXNjcmlwdGlvbiB7Ci0g
ICAgY2xlYXI6IGJvdGg7Ci19Ci0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBub2RlU2VsZWN0
ZWQobm9kZSkKLSAgICB7Ci0gICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgiZHVtcEluc3Bl
Y3RvckhpZ2hsaWdodGVkTm9kZSgpIiwgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QpOwotICAg
IH0KLQotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgiaW5zcGVjdGVkRWxlbWVu
dCIsIG5vZGVTZWxlY3RlZCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci0KLTxkaXYgaWQ9ImZsb3ciPgotICAgIDxkaXYgaWQ9Imluc3BlY3Rl
ZEVsZW1lbnQiPjwvZGl2PgotPC9kaXY+Ci0KLTxkaXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+Ci08
ZGl2IGNsYXNzPSJyZWdpb24gc21hbGwiPjwvZGl2PgotPGRpdiBjbGFzcz0icmVnaW9uIHplcm8t
aGVpZ2h0Ij48L2Rpdj4KLTxkaXYgY2xhc3M9InJlZ2lvbiB6ZXJvLXNpemUiPjwvZGl2PgotPGRp
diBjbGFzcz0icmVnaW9uIGhpZGRlbiI+PC9kaXY+Ci08cCBpZD0iZGVzY3JpcHRpb24iPlRoaXMg
dGVzdCB2ZXJpZmllcyB0aGUgcG9zaXRpb24gYW5kIHNpemUgb2YgdGhlIGhpZ2hsaWdodGVkIG5v
ZGUgaW5zaWRlIENTUyBSZWdpb25zLjwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1yZWdpb25zLWZsb3ct
dHJhbnNmb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0
LXJlZ2lvbnMtZmxvdy10cmFuc2Zvcm0uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZWI5MDA1YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
aGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy10cmFuc2Zvcm0uaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDg5ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLQotPHN0eWxlPgot
Ci1ib2R5IHsKLSAgICBtYXJnaW46IDA7Ci19Ci0jZmxvdyB7Ci0gICAgLXdlYmtpdC1mbG93LWlu
dG86IGZsb3c7Ci19Ci0jY29udGFpbmVyIHsKLSAgICB3aWR0aDogNDAwcHg7Ci0gICAgaGVpZ2h0
OiA0MDBweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OwotfQotI2luc3BlY3RlZEVsZW1l
bnQgewotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMTAwMHB4OwotICAgIGJhY2tncm91
bmQtY29sb3I6IGdyZWVuOwotICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjBkZWcpOwot
ICAgIHRyYW5zZm9ybTogcm90YXRlKDIwZGVnKTsKLX0KLS5yZWdpb24gewotICAgIG1hcmdpbjog
NXB4OwotICAgIGJvcmRlcjogc29saWQgMTBweCBhcXVhOwotICAgIHBhZGRpbmc6IDE1cHg7Ci0g
ICAgd2lkdGg6IDIwMHB4OwotICAgIGhlaWdodDogMjAwcHg7Ci0gICAgYmFja2dyb3VuZC1jb2xv
cjogYmx1ZTsKLSAgICBmbG9hdDogbGVmdDsKLSAgICAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsK
LX0KLS5zbWFsbCB7Ci0gICAgd2lkdGg6IDEwMHB4OwotfQotLnplcm8taGVpZ2h0IHsKLSAgICBi
b3JkZXI6IG5vbmU7Ci0gICAgaGVpZ2h0OiAwcHg7Ci0gICAgcGFkZGluZzogMDsKLX0KLS56ZXJv
LXNpemUgewotICAgIGJvcmRlcjogbm9uZTsKLSAgICB3aWR0aDogMHB4OwotICAgIGhlaWdodDog
MHB4OwotICAgIHBhZGRpbmc6IDA7Ci19Ci0uaGlkZGVuIHsKLSAgICBkaXNwbGF5OiBub25lOwot
fQotI2Rlc2NyaXB0aW9uIHsKLSAgICBjbGVhcjogYm90aDsKLX0KLQotPC9zdHlsZT4KLQotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IGZ1bmN0aW9uIG5vZGVTZWxlY3RlZChub2RlKQotICAgIHsKLSAgICAgICAgUnVudGltZUFnZW50
LmV2YWx1YXRlKCJkdW1wSW5zcGVjdG9ySGlnaGxpZ2h0ZWROb2RlKCkiLCBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0
aElkKCJpbnNwZWN0ZWRFbGVtZW50Iiwgbm9kZVNlbGVjdGVkKTsKLX0KLQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLQotPGRpdiBpZD0iZmxvdyI+Ci0g
ICAgPGRpdiBpZD0iaW5zcGVjdGVkRWxlbWVudCI+PC9kaXY+Ci08L2Rpdj4KLQotPGRpdiBjbGFz
cz0icmVnaW9uIj48L2Rpdj4KLTxkaXYgY2xhc3M9InJlZ2lvbiBzbWFsbCI+PC9kaXY+Ci08ZGl2
IGNsYXNzPSJyZWdpb24gemVyby1oZWlnaHQiPjwvZGl2PgotPGRpdiBjbGFzcz0icmVnaW9uIHpl
cm8tc2l6ZSI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJyZWdpb24gaGlkZGVuIj48L2Rpdj4KLTxwIGlk
PSJkZXNjcmlwdGlvbiI+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSBwb3NpdGlvbiBhbmQgc2l6ZSBv
ZiB0aGUgaGlnaGxpZ2h0ZWQgbm9kZSBpbnNpZGUgQ1NTIFJlZ2lvbnMuPC9wPgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGln
aGxpZ2h0LXJlZ2lvbnMtZmxvdy12ZXJ0LWxyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93LXZlcnQtbHItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZjI0NmMxLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93LXZl
cnQtbHItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDI4ICswLDAgQEAKLVRoaXMg
dGVzdCB2ZXJpZmllcyB0aGUgcG9zaXRpb24gYW5kIHNpemUgb2YgdGhlIGhpZ2hsaWdodGVkIG5v
ZGUgaW5zaWRlIENTUyBSZWdpb25zLgotCi17Ci0gICAgInNjcm9sbCI6IHsKLSAgICAgICAgIngi
OiAwLAotICAgICAgICAieSI6IDAKLSAgICB9LAotICAgICJmcmFnbWVudHMiOiBbCi0gICAgICAg
IHsKLSAgICAgICAgICAgICJxdWFkcyI6IFsKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMzAsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMTAzMCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMDMwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzMCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ5IjogMjMwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzMCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogMzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMDMwLAotICAgICAgICAgICAgICAgICAgICAg
ICAgInkiOiAzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDEwMzAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAieSI6IDIzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDMwLAotICAgICAgICAgICAgICAgICAg
ICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IDMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzMAotICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IDEwMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0g
ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ4IjogMTAzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjMw
Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ4IjogMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDIz
MAotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAg
ICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4
IjogMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4
IjogMTAzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAgICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg
IngiOiAxMDMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiAzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjMwCi0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICBdLAotICAgICAgICAg
ICAgInNob3dSdWxlcnMiOiBmYWxzZSwKLSAgICAgICAgICAgICJjb250ZW50Q29sb3IiOiAicmdi
YSgxMTEsIDE2OCwgMjIwLCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJjb250
ZW50T3V0bGluZUNvbG9yIjogInJnYmEoMCwgMCwgMCwgMCkiLAotICAgICAgICAgICAgInBhZGRp
bmdDb2xvciI6ICJyZ2JhKDE0NywgMTk2LCAxMjUsIDAuNTQ5MDE5NjA3ODQzMTM3MykiLAotICAg
ICAgICAgICAgImJvcmRlckNvbG9yIjogInJnYmEoMjU1LCAyMjksIDE1MywgMC42NTg4MjM1Mjk0
MTE3NjQ3KSIsCi0gICAgICAgICAgICAibWFyZ2luQ29sb3IiOiAicmdiYSgyNDYsIDE3OCwgMTA3
LCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJyZWdpb24iOiB7Ci0gICAgICAg
ICAgICAgICAgInF1YWQiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ4IjogMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0gICAg
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ4IjogMjMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzMAotICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IDIzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjMwCi0g
ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ4IjogMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDIzMAot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAicXVhZHMiOiBbCi0gICAgICAgICAg
ICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDkwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzMAotICAgICAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDEwOTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogMTA5MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjMwCi0gICAgICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ4IjogOTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDIzMAotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogOTAsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMTA5MCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMDkwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA5MCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjMwCi0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA5MCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ5IjogMzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMDkwLAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiAzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDEwOTAsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAieSI6IDIzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDkwLAotICAgICAgICAgICAg
ICAgICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAieCI6IDkwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAz
MAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAieCI6IDEwOTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6
IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ4IjogMTA5MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogMjMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ4IjogOTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
eSI6IDIzMAotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAg
ICAgICAgXSwKLSAgICAgICAgICAgICJzaG93UnVsZXJzIjogZmFsc2UsCi0gICAgICAgICAgICAi
Y29udGVudENvbG9yIjogInJnYmEoMTExLCAxNjgsIDIyMCwgMC42NTg4MjM1Mjk0MTE3NjQ3KSIs
Ci0gICAgICAgICAgICAiY29udGVudE91dGxpbmVDb2xvciI6ICJyZ2JhKDAsIDAsIDAsIDApIiwK
LSAgICAgICAgICAgICJwYWRkaW5nQ29sb3IiOiAicmdiYSgxNDcsIDE5NiwgMTI1LCAwLjU0OTAx
OTYwNzg0MzEzNzMpIiwKLSAgICAgICAgICAgICJib3JkZXJDb2xvciI6ICJyZ2JhKDI1NSwgMjI5
LCAxNTMsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgIm1hcmdpbkNvbG9yIjog
InJnYmEoMjQ2LCAxNzgsIDEwNywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAgICAi
cmVnaW9uIjogewotICAgICAgICAgICAgICAgICJxdWFkIjogWwotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDI5MCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ5IjogMzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzOTAsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMzkwLAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAyOTAsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAieSI6IDIzMAotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgXQotICAgICAgICAgICAgfQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAi
cXVhZHMiOiBbCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAieCI6IC0zNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogMjY1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ4IjogOTY1LAotICAgICAgICAgICAgICAgICAgICAgICAg
InkiOiAyNjUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA5NjUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAieSI6IDI2NQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IC0zNSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ5IjogMjY1Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAot
ICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiAtMzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI2NQotICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IDk2NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjY1Ci0g
ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ4IjogOTY1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUK
LSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgIngiOiAtMzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI2
NQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAg
ICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4
IjogLTM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUKLSAgICAgICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg
IngiOiA5NjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI2NQotICAgICAgICAgICAg
ICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAieCI6IDk2NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjY1Ci0gICAgICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ4IjogLTM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUKLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IC0zNSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjY1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogOTY1LAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUKLSAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA5NjUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI2NQotICAgICAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IC0z
NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjY1Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgInNob3dS
dWxlcnMiOiBmYWxzZSwKLSAgICAgICAgICAgICJjb250ZW50Q29sb3IiOiAicmdiYSgxMTEsIDE2
OCwgMjIwLCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJjb250ZW50T3V0bGlu
ZUNvbG9yIjogInJnYmEoMCwgMCwgMCwgMCkiLAotICAgICAgICAgICAgInBhZGRpbmdDb2xvciI6
ICJyZ2JhKDE0NywgMTk2LCAxMjUsIDAuNTQ5MDE5NjA3ODQzMTM3MykiLAotICAgICAgICAgICAg
ImJvcmRlckNvbG9yIjogInJnYmEoMjU1LCAyMjksIDE1MywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIs
Ci0gICAgICAgICAgICAibWFyZ2luQ29sb3IiOiAicmdiYSgyNDYsIDE3OCwgMTA3LCAwLjY1ODgy
MzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJyZWdpb24iOiB7Ci0gICAgICAgICAgICAgICAg
InF1YWQiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogMjY1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiA0NjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI2NQotICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IDQ2NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDY1Ci0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogMjY1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA0NjUKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgInF1YWRzIjogWwotICAgICAgICAgICAgICAg
IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAt
MjM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNzUKLSAgICAgICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngi
OiA3NjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI3NQotICAgICAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDc2NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogLTIzNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMjM1LAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiAyNzUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA3NjUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI3NQotICAgICAgICAgICAgICAgICAgICB9LAot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc2NSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTIz
NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMjM1LAotICAgICAgICAgICAg
ICAgICAgICAgICAgInkiOiAyNzUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA3NjUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAieSI6IDI3NQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc2NSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTIzNSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMjM1LAotICAgICAgICAgICAgICAgICAgICAg
ICAgInkiOiAyNzUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA3NjUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAieSI6IDI3NQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc2NSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTIzNSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgInNob3dSdWxlcnMiOiBmYWxzZSwKLSAg
ICAgICAgICAgICJjb250ZW50Q29sb3IiOiAicmdiYSgxMTEsIDE2OCwgMjIwLCAwLjY1ODgyMzUy
OTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJjb250ZW50T3V0bGluZUNvbG9yIjogInJnYmEoMCwg
MCwgMCwgMCkiLAotICAgICAgICAgICAgInBhZGRpbmdDb2xvciI6ICJyZ2JhKDE0NywgMTk2LCAx
MjUsIDAuNTQ5MDE5NjA3ODQzMTM3MykiLAotICAgICAgICAgICAgImJvcmRlckNvbG9yIjogInJn
YmEoMjU1LCAyMjksIDE1MywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAgICAibWFy
Z2luQ29sb3IiOiAicmdiYSgyNDYsIDE3OCwgMTA3LCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAg
ICAgICAgICAgICJyZWdpb24iOiB7Ci0gICAgICAgICAgICAgICAgInF1YWQiOiBbCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjY1LAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiAyNzUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA3NjUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAieSI6IDI3NQotICAgICAgICAgICAgICAgICAgICB9LAotICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc2NSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDc1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMjY1LAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA0NzUKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0sCi0gICAg
ImVsZW1lbnRJbmZvIjogewotICAgICAgICAidGFnTmFtZSI6ICJkaXYiLAotICAgICAgICAiaWRW
YWx1ZSI6ICJpbnNwZWN0ZWRFbGVtZW50IiwKLSAgICAgICAgIm5vZGVXaWR0aCI6ICIxMDAwIiwK
LSAgICAgICAgIm5vZGVIZWlnaHQiOiAiMjAwIiwKLSAgICAgICAgImNvbnRlbnRGbG93SW5mbyI6
IHsKLSAgICAgICAgICAgICJuYW1lIjogImZsb3ciCi0gICAgICAgIH0KLSAgICB9Ci19Ci0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9u
cy1mbG93LXZlcnQtbHIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdo
bGlnaHQtcmVnaW9ucy1mbG93LXZlcnQtbHIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzUyNGNkMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy12ZXJ0LWxyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw4NyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sIHN0eWxlPSItd2Via2l0LXdyaXRp
bmctbW9kZTogdmVydGljYWwtbHI7Ij4KLTxoZWFkPgotCi08c3R5bGU+Ci0KLWJvZHkgewotICAg
IG1hcmdpbjogMDsKLX0KLSNmbG93IHsKLSAgICAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsKLX0K
LSNjb250YWluZXIgewotICAgIHdpZHRoOiA0MDBweDsKLSAgICBoZWlnaHQ6IDQwMHB4OwotICAg
IGJhY2tncm91bmQtY29sb3I6IGdyZXk7Ci19Ci0jaW5zcGVjdGVkRWxlbWVudCB7Ci0gICAgaGVp
Z2h0OiAxMDAlOwotICAgIHdpZHRoOiAxMDAwcHg7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47Ci19Ci0ucmVnaW9uIHsKLSAgICBtYXJnaW46IDVweDsKLSAgICBib3JkZXI6IHNvbGlkIDEw
cHggYXF1YTsKLSAgICBwYWRkaW5nOiAxNXB4OwotICAgIHdpZHRoOiAyMDBweDsKLSAgICBoZWln
aHQ6IDIwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Ci0gICAgZmxvYXQ6IGxlZnQ7
Ci0gICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7Ci19Ci0uc21hbGwgewotICAgIHdpZHRoOiAx
MDBweDsKLX0KLS56ZXJvLWhlaWdodCB7Ci0gICAgYm9yZGVyOiBub25lOwotICAgIGhlaWdodDog
MHB4OwotICAgIHBhZGRpbmc6IDA7Ci19Ci0uemVyby1zaXplIHsKLSAgICBib3JkZXI6IG5vbmU7
Ci0gICAgd2lkdGg6IDBweDsKLSAgICBoZWlnaHQ6IDBweDsKLSAgICBwYWRkaW5nOiAwOwotfQot
LmhpZGRlbiB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLSNkZXNjcmlwdGlvbiB7Ci0gICAgY2xl
YXI6IGJvdGg7Ci19Ci0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBub2RlU2VsZWN0ZWQobm9k
ZSkKLSAgICB7Ci0gICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgiZHVtcEluc3BlY3Rvckhp
Z2hsaWdodGVkTm9kZSgpIiwgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QpOwotICAgIH0KLQot
ICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgiaW5zcGVjdGVkRWxlbWVudCIsIG5v
ZGVTZWxlY3RlZCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci0KLTxkaXYgaWQ9ImZsb3ciPgotICAgIDxkaXYgaWQ9Imluc3BlY3RlZEVsZW1l
bnQiPjwvZGl2PgotPC9kaXY+Ci0KLTxkaXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+Ci08ZGl2IGNs
YXNzPSJyZWdpb24gc21hbGwiPjwvZGl2PgotPGRpdiBjbGFzcz0icmVnaW9uIHplcm8taGVpZ2h0
Ij48L2Rpdj4KLTxkaXYgY2xhc3M9InJlZ2lvbiB6ZXJvLXNpemUiPjwvZGl2PgotPGRpdiBjbGFz
cz0icmVnaW9uIGhpZGRlbiI+PC9kaXY+Ci08cCBpZD0iZGVzY3JpcHRpb24iPlRoaXMgdGVzdCB2
ZXJpZmllcyB0aGUgcG9zaXRpb24gYW5kIHNpemUgb2YgdGhlIGhpZ2hsaWdodGVkIG5vZGUgaW5z
aWRlIENTUyBSZWdpb25zLjwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1yZWdpb25zLWZsb3ctdmVydC1y
bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0
LXJlZ2lvbnMtZmxvdy12ZXJ0LXJsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzBlM2ZjMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvaGlnaGxpZ2h0LXJlZ2lvbnMtZmxvdy12ZXJ0LXJsLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDQyOCArMCwwIEBACi1UaGlzIHRlc3QgdmVyaWZpZXMgdGhlIHBvc2l0aW9u
IGFuZCBzaXplIG9mIHRoZSBoaWdobGlnaHRlZCBub2RlIGluc2lkZSBDU1MgUmVnaW9ucy4KLQot
ewotICAgICJzY3JvbGwiOiB7Ci0gICAgICAgICJ4IjogMCwKLSAgICAgICAgInkiOiAwCi0gICAg
fSwKLSAgICAiZnJhZ21lbnRzIjogWwotICAgICAgICB7Ci0gICAgICAgICAgICAicXVhZHMiOiBb
Ci0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAieCI6IC0yMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0g
ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ4IjogNzcwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzMAot
ICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAieCI6IDc3MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjMw
Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ4IjogLTIzMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
MjMwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAg
ICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg
IngiOiAtMjMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzMAotICAgICAgICAgICAg
ICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAieCI6IDc3MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiA3NzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDIzMAotICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IC0yMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDIzMAotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0g
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTIzMCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA3NzAs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNzcw
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAt
MjMwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IC0yMzAsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNzcwLAotICAgICAgICAg
ICAgICAgICAgICAgICAgInkiOiAzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc3MCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogMjMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTIzMCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ5IjogMjMwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgInNob3dSdWxlcnMiOiBm
YWxzZSwKLSAgICAgICAgICAgICJjb250ZW50Q29sb3IiOiAicmdiYSgxMTEsIDE2OCwgMjIwLCAw
LjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJjb250ZW50T3V0bGluZUNvbG9yIjog
InJnYmEoMCwgMCwgMCwgMCkiLAotICAgICAgICAgICAgInBhZGRpbmdDb2xvciI6ICJyZ2JhKDE0
NywgMTk2LCAxMjUsIDAuNTQ5MDE5NjA3ODQzMTM3MykiLAotICAgICAgICAgICAgImJvcmRlckNv
bG9yIjogInJnYmEoMjU1LCAyMjksIDE1MywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAg
ICAgICAibWFyZ2luQ29sb3IiOiAicmdiYSgyNDYsIDE3OCwgMTA3LCAwLjY1ODgyMzUyOTQxMTc2
NDcpIiwKLSAgICAgICAgICAgICJyZWdpb24iOiB7Ci0gICAgICAgICAgICAgICAgInF1YWQiOiBb
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNTcw
LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAzMAotICAgICAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDc3
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA3
NzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDIzMAotICAgICAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6
IDU3MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjMwCi0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAgICJxdWFkcyI6IFsKLSAgICAgICAgICAgICAgICBbCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTI5MCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA3MTAsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNzEwLAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMjkwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IC0yOTAsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAieSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNzEwLAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiAzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDcxMCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ5IjogMjMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTI5MCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ5IjogMjMwCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIngiOiAtMjkwLAotICAgICAgICAgICAgICAgICAgICAgICAgInki
OiAzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAieCI6IDcxMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogMzAKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIngiOiA3MTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
eSI6IDIzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IC0yOTAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAieSI6IDIzMAotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAg
ICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogLTI5MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMzAKLSAgICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgIngiOiA3MTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDMwCi0gICAg
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ4IjogNzEwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMzAKLSAg
ICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgIngiOiAtMjkwLAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyMzAK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICAic2hvd1J1bGVycyI6IGZhbHNlLAotICAgICAgICAgICAgImNvbnRlbnRD
b2xvciI6ICJyZ2JhKDExMSwgMTY4LCAyMjAsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAg
ICAgICAgImNvbnRlbnRPdXRsaW5lQ29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIsCi0gICAgICAg
ICAgICAicGFkZGluZ0NvbG9yIjogInJnYmEoMTQ3LCAxOTYsIDEyNSwgMC41NDkwMTk2MDc4NDMx
MzczKSIsCi0gICAgICAgICAgICAiYm9yZGVyQ29sb3IiOiAicmdiYSgyNTUsIDIyOSwgMTUzLCAw
LjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJtYXJnaW5Db2xvciI6ICJyZ2JhKDI0
NiwgMTc4LCAxMDcsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgInJlZ2lvbiI6
IHsKLSAgICAgICAgICAgICAgICAicXVhZCI6IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIngiOiA0MTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
eSI6IDMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ4IjogNTEwLAotICAgICAgICAgICAgICAgICAgICAgICAg
InkiOiAzMAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAieCI6IDUxMCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogMjMwCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNDEwLAotICAgICAgICAgICAgICAgICAgICAg
ICAgInkiOiAyMzAKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgInF1YWRzIjog
WwotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgIngiOiAtMTY1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUK
LSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgIngiOiA4MzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI2
NQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAieCI6IDgzNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
MjY1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ4IjogLTE2NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogMjY1Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAg
ICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiAtMTY1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUKLSAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgIngiOiA4MzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI2NQotICAgICAg
ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAieCI6IDgzNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjY1Ci0gICAg
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ4IjogLTE2NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjY1Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAg
IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAt
MTY1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUKLSAgICAgICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngi
OiA4MzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI2NQotICAgICAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
eCI6IDgzNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjY1Ci0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogLTE2NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjY1Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAtMTY1LAotICAg
ICAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiA4MzUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI2NQotICAgICAgICAgICAgICAgICAgICB9LAot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDgzNSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjY1Ci0gICAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogLTE2
NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjY1Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgInNob3dS
dWxlcnMiOiBmYWxzZSwKLSAgICAgICAgICAgICJjb250ZW50Q29sb3IiOiAicmdiYSgxMTEsIDE2
OCwgMjIwLCAwLjY1ODgyMzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJjb250ZW50T3V0bGlu
ZUNvbG9yIjogInJnYmEoMCwgMCwgMCwgMCkiLAotICAgICAgICAgICAgInBhZGRpbmdDb2xvciI6
ICJyZ2JhKDE0NywgMTk2LCAxMjUsIDAuNTQ5MDE5NjA3ODQzMTM3MykiLAotICAgICAgICAgICAg
ImJvcmRlckNvbG9yIjogInJnYmEoMjU1LCAyMjksIDE1MywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIs
Ci0gICAgICAgICAgICAibWFyZ2luQ29sb3IiOiAicmdiYSgyNDYsIDE3OCwgMTA3LCAwLjY1ODgy
MzUyOTQxMTc2NDcpIiwKLSAgICAgICAgICAgICJyZWdpb24iOiB7Ci0gICAgICAgICAgICAgICAg
InF1YWQiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogMzM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNjUKLSAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgIngiOiA1MzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI2NQotICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAieCI6IDUzNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogNDY1Ci0gICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJ4IjogMzM1LAotICAgICAgICAgICAgICAgICAgICAgICAgInkiOiA0NjUKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgInF1YWRzIjogWwotICAgICAgICAgICAgICAg
IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAz
NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4Ijog
MTAzNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4
IjogMTAzNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ4IjogMzUsCi0gICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI3NQotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBbCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMzUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAieSI6IDI3NQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDEwMzUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAieSI6IDI3NQotICAgICAgICAgICAgICAgICAgICB9LAotICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDEwMzUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAieSI6IDI3NQotICAgICAgICAgICAgICAgICAgICB9LAot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDM1LAot
ICAgICAgICAgICAgICAgICAgICAgICAgInkiOiAyNzUKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDM1LAotICAgICAgICAgICAgICAgICAg
ICAgICAgInkiOiAyNzUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMDM1LAotICAgICAgICAgICAgICAg
ICAgICAgICAgInkiOiAyNzUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAxMDM1LAotICAgICAgICAgICAg
ICAgICAgICAgICAgInkiOiAyNzUKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgIngiOiAzNSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBdLAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIngiOiAzNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5Ijog
Mjc1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJ4IjogMTAzNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ5
IjogMjc1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ4IjogMTAzNSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMzUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAieSI6IDI3NQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXQotICAg
ICAgICAgICAgXSwKLSAgICAgICAgICAgICJzaG93UnVsZXJzIjogZmFsc2UsCi0gICAgICAgICAg
ICAiY29udGVudENvbG9yIjogInJnYmEoMTExLCAxNjgsIDIyMCwgMC42NTg4MjM1Mjk0MTE3NjQ3
KSIsCi0gICAgICAgICAgICAiY29udGVudE91dGxpbmVDb2xvciI6ICJyZ2JhKDAsIDAsIDAsIDAp
IiwKLSAgICAgICAgICAgICJwYWRkaW5nQ29sb3IiOiAicmdiYSgxNDcsIDE5NiwgMTI1LCAwLjU0
OTAxOTYwNzg0MzEzNzMpIiwKLSAgICAgICAgICAgICJib3JkZXJDb2xvciI6ICJyZ2JhKDI1NSwg
MjI5LCAxNTMsIDAuNjU4ODIzNTI5NDExNzY0NykiLAotICAgICAgICAgICAgIm1hcmdpbkNvbG9y
IjogInJnYmEoMjQ2LCAxNzgsIDEwNywgMC42NTg4MjM1Mjk0MTE3NjQ3KSIsCi0gICAgICAgICAg
ICAicmVnaW9uIjogewotICAgICAgICAgICAgICAgICJxdWFkIjogWwotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAieCI6IDUzNSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMTAzNSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ5IjogMjc1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogMTAzNSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJ5IjogNDc1Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJ4IjogNTM1LAotICAgICAg
ICAgICAgICAgICAgICAgICAgInkiOiA0NzUKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0sCi0gICAgImVsZW1l
bnRJbmZvIjogewotICAgICAgICAidGFnTmFtZSI6ICJkaXYiLAotICAgICAgICAiaWRWYWx1ZSI6
ICJpbnNwZWN0ZWRFbGVtZW50IiwKLSAgICAgICAgIm5vZGVXaWR0aCI6ICIxMDAwIiwKLSAgICAg
ICAgIm5vZGVIZWlnaHQiOiAiMjAwIiwKLSAgICAgICAgImNvbnRlbnRGbG93SW5mbyI6IHsKLSAg
ICAgICAgICAgICJuYW1lIjogImZsb3ciCi0gICAgICAgIH0KLSAgICB9Ci19Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93
LXZlcnQtcmwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQt
cmVnaW9ucy1mbG93LXZlcnQtcmwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2RlMDA5OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGln
aGxpZ2h0LXJlZ2lvbnMtZmxvdy12ZXJ0LXJsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NyAr
MCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sIHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9k
ZTogdmVydGljYWwtcmw7Ij4KLTxoZWFkPgotCi08c3R5bGU+Ci0KLWJvZHkgewotICAgIG1hcmdp
bjogMDsKLX0KLSNmbG93IHsKLSAgICAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsKLX0KLSNjb250
YWluZXIgewotICAgIHdpZHRoOiA0MDBweDsKLSAgICBoZWlnaHQ6IDQwMHB4OwotICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZXk7Ci19Ci0jaW5zcGVjdGVkRWxlbWVudCB7Ci0gICAgaGVpZ2h0OiAx
MDAlOwotICAgIHdpZHRoOiAxMDAwcHg7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ci19
Ci0ucmVnaW9uIHsKLSAgICBtYXJnaW46IDVweDsKLSAgICBib3JkZXI6IHNvbGlkIDEwcHggYXF1
YTsKLSAgICBwYWRkaW5nOiAxNXB4OwotICAgIHdpZHRoOiAyMDBweDsKLSAgICBoZWlnaHQ6IDIw
MHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Ci0gICAgZmxvYXQ6IGxlZnQ7Ci0gICAg
LXdlYmtpdC1mbG93LWZyb206IGZsb3c7Ci19Ci0uc21hbGwgewotICAgIHdpZHRoOiAxMDBweDsK
LX0KLS56ZXJvLWhlaWdodCB7Ci0gICAgYm9yZGVyOiBub25lOwotICAgIGhlaWdodDogMHB4Owot
ICAgIHBhZGRpbmc6IDA7Ci19Ci0uemVyby1zaXplIHsKLSAgICBib3JkZXI6IG5vbmU7Ci0gICAg
d2lkdGg6IDBweDsKLSAgICBoZWlnaHQ6IDBweDsKLSAgICBwYWRkaW5nOiAwOwotfQotLmhpZGRl
biB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLSNkZXNjcmlwdGlvbiB7Ci0gICAgY2xlYXI6IGJv
dGg7Ci19Ci0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBub2RlU2VsZWN0ZWQobm9kZSkKLSAg
ICB7Ci0gICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgiZHVtcEluc3BlY3RvckhpZ2hsaWdo
dGVkTm9kZSgpIiwgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QpOwotICAgIH0KLQotICAgIElu
c3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgiaW5zcGVjdGVkRWxlbWVudCIsIG5vZGVTZWxl
Y3RlZCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci0KLTxkaXYgaWQ9ImZsb3ciPgotICAgIDxkaXYgaWQ9Imluc3BlY3RlZEVsZW1lbnQiPjwv
ZGl2PgotPC9kaXY+Ci0KLTxkaXYgY2xhc3M9InJlZ2lvbiI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJy
ZWdpb24gc21hbGwiPjwvZGl2PgotPGRpdiBjbGFzcz0icmVnaW9uIHplcm8taGVpZ2h0Ij48L2Rp
dj4KLTxkaXYgY2xhc3M9InJlZ2lvbiB6ZXJvLXNpemUiPjwvZGl2PgotPGRpdiBjbGFzcz0icmVn
aW9uIGhpZGRlbiI+PC9kaXY+Ci08cCBpZD0iZGVzY3JpcHRpb24iPlRoaXMgdGVzdCB2ZXJpZmll
cyB0aGUgcG9zaXRpb24gYW5kIHNpemUgb2YgdGhlIGhpZ2hsaWdodGVkIG5vZGUgaW5zaWRlIENT
UyBSZWdpb25zLjwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1yZWdpb25zLWZsb3cuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtcmVnaW9ucy1mbG93Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5ZGQ4Y2IuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1yZWdpb25zLWZsb3cuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLQotPHN0eWxlPgotCi1ib2R5IHsKLSAgICBtYXJnaW46IDA7Ci19Ci0jZmxvdyB7Ci0gICAg
LXdlYmtpdC1mbG93LWludG86IGZsb3c7Ci19Ci0jY29udGFpbmVyIHsKLSAgICB3aWR0aDogNDAw
cHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OwotfQot
I2luc3BlY3RlZEVsZW1lbnQgewotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMTAwMHB4
OwotICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwotfQotLnJlZ2lvbiB7Ci0gICAgbWFyZ2lu
OiA1cHg7Ci0gICAgYm9yZGVyOiBzb2xpZCAxMHB4IGFxdWE7Ci0gICAgcGFkZGluZzogMTVweDsK
LSAgICB3aWR0aDogMjAwcHg7Ci0gICAgaGVpZ2h0OiAyMDBweDsKLSAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBibHVlOwotICAgIGZsb2F0OiBsZWZ0OwotICAgIC13ZWJraXQtZmxvdy1mcm9tOiBmbG93
OwotfQotLnNtYWxsIHsKLSAgICB3aWR0aDogMTAwcHg7Ci19Ci0uemVyby1oZWlnaHQgewotICAg
IGJvcmRlcjogbm9uZTsKLSAgICBoZWlnaHQ6IDBweDsKLSAgICBwYWRkaW5nOiAwOwotfQotLnpl
cm8tc2l6ZSB7Ci0gICAgYm9yZGVyOiBub25lOwotICAgIHdpZHRoOiAwcHg7Ci0gICAgaGVpZ2h0
OiAwcHg7Ci0gICAgcGFkZGluZzogMDsKLX0KLS5oaWRkZW4gewotICAgIGRpc3BsYXk6IG5vbmU7
Ci19Ci0jZGVzY3JpcHRpb24gewotICAgIGNsZWFyOiBib3RoOwotfQotCi08L3N0eWxlPgotCi08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgZnVuY3Rpb24gbm9kZVNlbGVjdGVkKG5vZGUpCi0gICAgewotICAgICAgICBSdW50aW1lQWdl
bnQuZXZhbHVhdGUoImR1bXBJbnNwZWN0b3JIaWdobGlnaHRlZE5vZGUoKSIsIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVX
aXRoSWQoImluc3BlY3RlZEVsZW1lbnQiLCBub2RlU2VsZWN0ZWQpOwotfQotCi08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotCi08ZGl2IGlkPSJmbG93Ij4K
LSAgICA8ZGl2IGlkPSJpbnNwZWN0ZWRFbGVtZW50Ij48L2Rpdj4KLTwvZGl2PgotCi08ZGl2IGNs
YXNzPSJyZWdpb24iPjwvZGl2PgotPGRpdiBjbGFzcz0icmVnaW9uIHNtYWxsIj48L2Rpdj4KLTxk
aXYgY2xhc3M9InJlZ2lvbiB6ZXJvLWhlaWdodCI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJyZWdpb24g
emVyby1zaXplIj48L2Rpdj4KLTxkaXYgY2xhc3M9InJlZ2lvbiBoaWRkZW4iPjwvZGl2PgotPHAg
aWQ9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3QgdmVyaWZpZXMgdGhlIHBvc2l0aW9uIGFuZCBzaXpl
IG9mIHRoZSBoaWdobGlnaHRlZCBub2RlIGluc2lkZSBDU1MgUmVnaW9ucy48L3A+Ci0KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9o
aWdobGlnaHQtc3ZnLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL2hpZ2hsaWdodC1zdmctcm9vdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDJmNzA2ZjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzL2hpZ2hsaWdodC1zdmctcm9vdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw3ICswLDAgQEAKLVRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgcG9zaXRpb24gYW5kIHNpemUg
b2YgdGhlIGhpZ2hsaWdodCByZWN0YW5nbGVzIG92ZXJsYXllZCBvbiBhbiBTVkcgcm9vdCBlbGVt
ZW50LgotCi1tYXJnaW4gcmVjdCBpcyAxNjAgeCAxNjAgYXQgKDAsIDApCi1ib3JkZXIgcmVjdCBp
cyAxNTAgeCAxNTAgYXQgKDUsIDUpCi1wYWRkaW5nIHJlY3QgaXMgMTMwIHggMTMwIGF0ICgxNSwg
MTUpCi1jb250ZW50IHJlY3QgaXMgMTAwIHggMTAwIGF0ICgzMCwgMzApCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtc3ZnLXJvb3Qtem9vbWVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQt
c3ZnLXJvb3Qtem9vbWVkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOGE0OGY2Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
aGlnaGxpZ2h0LXN2Zy1yb290LXpvb21lZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw3ICswLDAgQEAKLVRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgcG9zaXRpb24gYW5kIHNpemUgb2Yg
dGhlIGhpZ2hsaWdodCByZWN0YW5nbGVzIG92ZXJsYXllZCBvbiBhbiBTVkcgcm9vdCBlbGVtZW50
IHdoZW4gdGhlIHBhZ2UgaXMgem9vbWVkLgotCi1tYXJnaW4gcmVjdCBpcyA0MDggeCA1MjggYXQg
KDEyLCAyNCkKLWJvcmRlciByZWN0IGlzIDMzNiB4IDQ1NiBhdCAoNDgsIDYwKQotcGFkZGluZyBy
ZWN0IGlzIDI0MCB4IDM2MCBhdCAoOTYsIDEwOCkKLWNvbnRlbnQgcmVjdCBpcyAxMjAgeCAyNDAg
YXQgKDE1NiwgMTY4KQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvaGlnaGxpZ2h0LXN2Zy1yb290LXpvb21lZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzL2hpZ2hsaWdodC1zdmctcm9vdC16b29tZWQuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYzVlM2U4Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvaGlnaGxpZ2h0LXN2Zy1yb290LXpvb21lZC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxl
PgotCi1ib2R5IHsKLSAgICBtYXJnaW46IDA7Ci19Ci0jc3ZnLXJvb3QgewotICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKLSAgICBsZWZ0OiAxMHB4OwotICAgIHRvcDogMjBweDsKLSAgICBtYXJnaW46
IDMwcHg7Ci0gICAgYm9yZGVyOiBzb2xpZCA0MHB4IGFxdWE7Ci0gICAgcGFkZGluZzogNTBweDsK
LSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwotfQotCi08L3N0eWxlPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgaWYg
KHdpbmRvdy5ldmVudFNlbmRlcikKLSAgICAgICAgd2luZG93LmV2ZW50U2VuZGVyLnpvb21QYWdl
SW4oKTsKLSAgICBydW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0
aW9uIG5vZGVTZWxlY3RlZChub2RlKQotICAgIHsKLSAgICAgICAgUnVudGltZUFnZW50LmV2YWx1
YXRlKCJkdW1wSW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKSIsIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoInN2
Zy1yb290Iiwgbm9kZVNlbGVjdGVkKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InN0YXJ0VGVzdCgpIj4KLTxzdmcgaWQ9InN2Zy1yb290IiB3aWR0aD0iMTAwIiBoZWln
aHQ9IjIwMCIgdmlld2JveD0iMCAwIDUwIDEwMCI+PC9zdmc+Ci08cCBpZD0iZGVzY3JpcHRpb24i
PlRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgcG9zaXRpb24gYW5kIHNpemUgb2YgdGhlIGhpZ2hsaWdo
dCByZWN0YW5nbGVzIG92ZXJsYXllZCBvbiBhbiBTVkcgcm9vdCBlbGVtZW50IHdoZW4gdGhlIHBh
Z2UgaXMgem9vbWVkLjwvcD4KLTwhLS0KLQotRXhwZWN0ZWQgdmFsdWUgY2FsY3VsYXRpb25zIGZv
ciAjc3ZnLXJvb3QncyBoaWdobGlnaHQgcmVjdGFuZ2xlcyBhdCAxMjAlIHpvb206Ci0KLW1hcmdp
biByZWN0OgotICAgIGxlZnQ6ICAgKDEwKSAqIDEuMiA9PSAxMgotICAgIHRvcDogICAgKDIwKSAq
IDEuMiA9PSAyNAotICAgIHdpZHRoOiAgKDEwMCArIDIgKiAoMzAgKyA0MCArIDUwKSkgKiAxLjIg
PT0gMzQwICogMS4yID09IDQwOAotICAgIGhlaWdodDogKDIwMCArIDIgKiAoMzAgKyA0MCArIDUw
KSkgKiAxLjIgPT0gNDQwICogMS4yID09IDUyOAotCi1ib3JkZXIgcmVjdDoKLSAgICBsZWZ0OiAg
ICgxMCArIDMwKSAqIDEuMiA9PSA0MCAqIDEuMiA9PSA0OAotICAgIHRvcDogICAgKDIwICsgMzAp
ICogMS4yID09IDUwICogMS4yID09IDYwCi0gICAgd2lkdGg6ICAoMTAwICsgMiAqICg0MCArIDUw
KSkgKiAxLjIgPT0gMjgwICogMS4yID09IDMzNgotICAgIGhlaWdodDogKDIwMCArIDIgKiAoNDAg
KyA1MCkpICogMS4yID09IDM4MCAqIDEuMiA9PSA0NTYKLQotcGFkZGluZyByZWN0OgotICAgIGxl
ZnQ6ICAgKDEwICsgMzAgKyA0MCkgKiAxLjIgPT0gODAgKiAxLjIgPT0gOTYKLSAgICB0b3A6ICAg
ICgyMCArIDMwICsgNDApICogMS4yID09IDkwICogMS4yID09IDEwOAotICAgIHdpZHRoOiAgKDEw
MCArIDIgKiAoNTApKSAqIDEuMiA9PSAyMDAgKiAxLjIgPT0gMjQwCi0gICAgaGVpZ2h0OiAoMjAw
ICsgMiAqICg1MCkpICogMS4yID09IDMwMCAqIDEuMiA9PSAzNjAKLQotY29udGVudCByZWN0Ogot
ICAgIGxlZnQ6ICAgKDEwICsgMzAgKyA0MCArIDUwKSAqIDEuMiA9PSAxMzAgKiAxLjIgPT0gMTU2
Ci0gICAgdG9wOiAgICAoMjAgKyAzMCArIDQwICsgNTApICogMS4yID09IDE0MCAqIDEuMiA9PSAx
NjgKLSAgICB3aWR0aDogICgxMDApICogMS4yID09IDEyMAotICAgIGhlaWdodDogKDIwMCkgKiAx
LjIgPT0gMjQwCi0gICAgCi0tLT4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hs
aWdodC1zdmctcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hs
aWdodC1zdmctcm9vdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjFhZTQ4
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQt
c3ZnLXJvb3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLQotPHN0eWxlPgotCi1ib2R5IHsKLSAgICBtYXJnaW46IDA7
Ci19Ci0jc3ZnLXJvb3QgewotICAgIG1hcmdpbjogNXB4OwotICAgIGJvcmRlcjogc29saWQgMTBw
eCBhcXVhOwotICAgIHBhZGRpbmc6IDE1cHg7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsK
LX0KLQotPC9zdHlsZT4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9uIG5vZGVTZWxlY3RlZChub2RlKQotICAgIHsK
LSAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJkdW1wSW5zcGVjdG9ySGlnaGxpZ2h0UmVj
dHMoKSIsIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0
b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoInN2Zy1yb290Iiwgbm9kZVNlbGVjdGVkKTsKLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLQotPHN2ZyBp
ZD0ic3ZnLXJvb3QiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiB2aWV3Ym94PSIwIDAgNTAgNTAi
Pjwvc3ZnPgotPHAgaWQ9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3QgdmVyaWZpZXMgdGhlIHBvc2l0
aW9uIGFuZCBzaXplIG9mIHRoZSBoaWdobGlnaHQgcmVjdGFuZ2xlcyBvdmVybGF5ZWQgb24gYW4g
U1ZHIHJvb3QgZWxlbWVudC48L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9pZnJhbWUtbG9hZC1ldmVudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaWZyYW1lLWxvYWQtZXZlbnQtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzliNDYxLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9pZnJhbWUtbG9hZC1ldmVudC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1UZXN0cyB0aGF0IGlm
cmFtZSBjb250ZW50IGlzIGF2YWlsYWJsZSBhZnRlciBpZnJhbWUncyBsb2FkIGV2ZW50IGZpcmVk
LiBTZWUgYnVnIDc2NTUyLgotCi0KLQotCi1BZnRlciBmcmFtZSBuYXZpZ2F0ZQotLSA8aHRtbD4K
LSAgICAtIDxoZWFkPgotICAgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0
PgotICAgICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaWZyYW1lLWxvYWQtZXZlbnQtaWZy
YW1lLmpzIj48L3NjcmlwdD4KLSAgICAgIDwvaGVhZD4KLSAgICAtIDxib2R5PgotICAgICAgICAt
IDxwPgotICAgICAgICAgICAgICAiXG5UZXN0cyB0aGF0IGlmcmFtZSBjb250ZW50IGlzIGF2YWls
YWJsZSBhZnRlciBpZnJhbWUncyBsb2FkIGV2ZW50IGZpcmVkLiBTZWUgIgotICAgICAgICAgICAg
ICA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzc2NTUyIj5idWcgNzY1NTI8L2E+Ci0gICAg
ICAgICAgICAgICIuXG4iCi0gICAgICAgICAgPC9wPgotICAgICAgICAtIDxpZnJhbWUgaWQ9Im15
ZnJhbWUiIHNyYz0icmVzb3VyY2VzL2lmcmFtZS1sb2FkLWV2ZW50LWlmcmFtZS0yLmh0bWwiIG9u
bG9hZD0icnVuVGVzdCgpIj4KLSAgICAgICAgICAgIC0gI2RvY3VtZW50Ci0gICAgICAgICAgICAt
IDxodG1sPgotICAgICAgICAgICAgICAgICAgPGhlYWQ+PC9oZWFkPgotICAgICAgICAgICAgICAg
IC0gPGJvZHk+Ci0gICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iaWZyYW1lLTItZWxlbWVu
dCI+PC9kaXY+Ci0gICAgICAgICAgICAgICAgICA8L2JvZHk+Ci0gICAgICAgICAgICAgIDwvaHRt
bD4KLSAgICAgICAgICA8L2lmcmFtZT4KLSAgICAgIDwvYm9keT4KLSAgPC9odG1sPgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaWZyYW1lLWxvYWQtZXZlbnQu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9pZnJhbWUtbG9hZC1ldmVudC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNDBjMjc4Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9pZnJhbWUtbG9hZC1ldmVudC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2lmcmFtZS1sb2FkLWV2ZW50LWlm
cmFtZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPgotVGVzdHMgdGhhdCBpZnJh
bWUgY29udGVudCBpcyBhdmFpbGFibGUgYWZ0ZXIgaWZyYW1lJ3MgbG9hZCBldmVudCBmaXJlZC4g
U2VlIDxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnL2IvNzY1NTIiPmJ1ZyA3NjU1MjwvYT4uCi08
L3A+Ci08aWZyYW1lIGlkPSJteWZyYW1lIiBzcmM9InJlc291cmNlcy9pZnJhbWUtbG9hZC1ldmVu
dC1pZnJhbWUtMS5odG1sIiBvbmxvYWQ9InJ1blRlc3QoKSI+PC9pZnJhbWU+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0
LW5vZGUtY29sbGFwc2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy9pbnNlcnQtbm9kZS1jb2xsYXBzZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmOTE2OGUyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9pbnNlcnQtbm9kZS1jb2xsYXBzZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTEgKzAsMCBAQAotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRhdGVzIGhh
c0NoaWxkcmVuIGZsYWcgdXBvbiBhZGRpbmcgY2hpbGRyZW4gdG8gY29sbGFwc2VkIG5vZGVzLgot
Ci0KLVJ1bm5pbmc6IHRlc3REdW1wSW5pdGlhbAotPT09PT09PT09IE9yaWdpbmFsID09PT09PT09
Ci0gIDxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3RBcHBlbmQKLT09
PT09PT09IEFwcGVuZGVkID09PT09PT09PQotKyA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2Pgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUt
Y29sbGFwc2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5v
ZGUtY29sbGFwc2VkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4YjRiNjIu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2Rl
LWNvbGxhcHNlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0
dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGFwcGVuZENoaWxkKCkK
LXsKLSAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5l
ciIpOwotICAgIHZhciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAg
IGNoaWxkLnNldEF0dHJpYnV0ZSgiaWQiLCAiYXBwZW5kZWQiKTsKLSAgICBjb250YWluZXIuYXBw
ZW5kQ2hpbGQoY2hpbGQpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgY29udGFp
bmVyTm9kZTsKLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVu
Y3Rpb24gdGVzdER1bXBJbml0aWFsKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0
aW9uIGNhbGxiYWNrKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29udGFp
bmVyTm9kZSA9IG5vZGU7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
Ij09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKLSAgICAgICAgICAgICAgICBu
ZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5v
ZGVXaXRoSWQoImNvbnRhaW5lciIsIGNhbGxiYWNrKTsKLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0ZXN0QXBwZW5kKG5leHQpIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNr
KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiPT09PT09PT0gQXBwZW5kZWQgPT09PT09PT09Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKGNvbnRhaW5lck5vZGUpOwotICAgICAgICAgICAgICAg
IG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoImFwcGVuZENoaWxkKCkiLCBjYWxsYmFjayk7Ci0gICAgICAgIH0KLSAgICBdKTsK
LX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxw
PgotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRhdGVzIGhhc0NoaWxkcmVuIGZsYWcgdXBv
biBhZGRpbmcgY2hpbGRyZW4gdG8gY29sbGFwc2VkIG5vZGVzLgotPC9wPgotCi08ZGl2IGlkPSJj
b250YWluZXIiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWYwZGViMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNzAgKzAsMCBAQAotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRhdGVzIGRv
bSB0cmVlIHN0cnVjdHVyZSB1cG9uIG5vZGUgaW5zZXJ0aW9uLgotCi1GaXJzdCB0ZXh0Ci0KLVJ1
bm5pbmc6IHRlc3REdW1wSW5pdGlhbAotPT09PT09PT09IE9yaWdpbmFsID09PT09PT09Ci0tIDxk
aXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgICAg
PGRpdiBpZD0iY2hpbGQyIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkMyI+PC9kaXY+Ci0g
IDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0SW5zZXJ0QmVmb3JlCi09PT09PSBJbnNlcnRlZCBiZWZv
cmUgPT09PT0KLS0gPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkLWJl
Zm9yZSI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgICAgPGRpdiBp
ZD0iY2hpbGQyIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkMyI+PC9kaXY+Ci0gIDwvZGl2
PgotCi1SdW5uaW5nOiB0ZXN0SW5zZXJ0TWlkZGxlCi09PT09PSBJbnNlcnRlZCBtaWRkbGUgPT09
PT0KLS0gPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkLWJlZm9yZSI+
PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgICAgPGRpdiBpZD0iY2hp
bGQtbWlkZGxlIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkMiI+PC9kaXY+Ci0gICAgICA8
ZGl2IGlkPSJjaGlsZDMiPjwvZGl2PgotICA8L2Rpdj4KLQotUnVubmluZzogdGVzdEFwcGVuZAot
PT09PT09PT0gQXBwZW5kZWQgPT09PT09PT09Ci0tIDxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAg
ICA8ZGl2IGlkPSJjaGlsZC1iZWZvcmUiPjwvZGl2PgotICAgICAgPGRpdiBpZD0iY2hpbGQxIj48
L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkLW1pZGRsZSI+PC9kaXY+Ci0gICAgICA8ZGl2IGlk
PSJjaGlsZDIiPjwvZGl2PgotICAgICAgPGRpdiBpZD0iY2hpbGQzIj48L2Rpdj4KLSAgICAgIDxk
aXYgaWQ9ImNoaWxkLWFmdGVyIj48L2Rpdj4KLSAgPC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3RBcHBl
bmRXaXRoVGV4dAotPT09PT09PT0gQXBwZW5kZWQgd2l0aCB0ZXh0PT09PT09PT09Ci0tIDxkaXYg
aWQ9ImNvbnRhaW5lciI+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZC1iZWZvcmUiPjwvZGl2PgotICAg
ICAgPGRpdiBpZD0iY2hpbGQxIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkLW1pZGRsZSI+
PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDIiPjwvZGl2PgotICAgICAgPGRpdiBpZD0iY2hp
bGQzIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkLWFmdGVyIj48L2Rpdj4KLSAgICAgIDxk
aXYgaWQ9ImNoaWxkLXdpdGgtdGV4dCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij5UZXh0PC9kaXY+
Ci0gIDwvZGl2PgotU3VjY2VzczogY2hpbGQgdGV4dCBpcyBib3VuZAotCi1SdW5uaW5nOiB0ZXN0
SW5zZXJ0Rmlyc3RUZXh0Tm9kZQotPT09PT09PT0gSW5zZXJ0ZWQgZmlyc3QgdGV4dCBub2RlID09
PT09PT09PQotLSA8ZGl2IGlkPSJjb250YWluZXIiPgotICAgICAgPGRpdiBpZD0iY2hpbGQtYmVm
b3JlIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkMSI+PC9kaXY+Ci0gICAgICA8ZGl2IGlk
PSJjaGlsZC1taWRkbGUiPjwvZGl2PgotICAgICAgPGRpdiBpZD0iY2hpbGQyIj48L2Rpdj4KLSAg
ICAtIDxkaXYgaWQ9ImNoaWxkMyI+Ci0gICAgICAgICAgIkZpcnN0IHRleHQiCi0gICAgICA8L2Rp
dj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkLWFmdGVyIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNo
aWxkLXdpdGgtdGV4dCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij5UZXh0PC9kaXY+Ci0gIDwvZGl2
PgotU3VjY2VzczogY2hpbGQgdGV4dCBpcyBib3VuZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiNTI2MTc1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9pbnNlcnQtbm9kZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24g
aW5zZXJ0QmVmb3JlRmlyc3QoKQotewotICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29udGFpbmVyIik7Ci0gICAgdmFyIGNoaWxkID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7Ci0gICAgY2hpbGQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGlsZC1iZWZv
cmUiKTsKLSAgICBjb250YWluZXIuaW5zZXJ0QmVmb3JlKGNoaWxkLCBjb250YWluZXIuZmlyc3RD
aGlsZCk7Ci19Ci0KLWZ1bmN0aW9uIGluc2VydE5vZGUoKQotewotICAgIHZhciBjb250YWluZXIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7Ci0gICAgdmFyIGNoaWxkMiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZDIiKTsKLSAgICB2YXIgY2hpbGQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoImlkIiwg
ImNoaWxkLW1pZGRsZSIpOwotICAgIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUoY2hpbGQsIGNoaWxk
Mik7Ci19Ci0KLWZ1bmN0aW9uIGFwcGVuZENoaWxkKCkKLXsKLSAgICB2YXIgY29udGFpbmVyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOwotICAgIHZhciBjaGlsZCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgiaWQi
LCAiY2hpbGQtYWZ0ZXIiKTsKLSAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoY2hpbGQpOwotfQot
Ci1mdW5jdGlvbiBhcHBlbmRDaGlsZFdpdGhUZXh0KCkKLXsKLSAgICB2YXIgY29udGFpbmVyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOwotICAgIHZhciBjaGlsZCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgiaWQi
LCAiY2hpbGQtd2l0aC10ZXh0Iik7Ci0gICAgY2hpbGQuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJk
aXNwbGF5OiBub25lOyIpOwotICAgIGNoaWxkLmlubmVyVGV4dCA9ICJUZXh0IjsKLSAgICBjb250
YWluZXIuYXBwZW5kQ2hpbGQoY2hpbGQpOwotfQotCi1mdW5jdGlvbiBpbnNlcnRGaXJzdFRleHRO
b2RlKCkKLXsKLSAgICB2YXIgY2hpbGQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxk
MyIpOwotICAgIGNoaWxkMy5pbm5lclRleHQgPSAiRmlyc3QgdGV4dCI7Ci19Ci0KLWZ1bmN0aW9u
IHRlc3QoKQotewotICAgIHZhciBjb250YWluZXJOb2RlOwotCi0gICAgSW5zcGVjdG9yVGVzdC5y
dW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0RHVtcEluaXRpYWwobmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sobm9kZSkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlID0gSW5zcGVjdG9yVGVzdC5leHBhbmRl
ZE5vZGVXaXRoSWQoImNvbnRhaW5lciIpOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIj09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PSIpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKLSAgICAg
ICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShjYWxsYmFjayk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gdGVzdEluc2VydEJlZm9yZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBm
dW5jdGlvbiBjYWxsYmFjaygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIj09PT09IEluc2VydGVkIGJlZm9yZSA9PT09PSIpOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsK
LSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJpbnNlcnRCZWZvcmVGaXJzdCgpIiwgY2FsbGJhY2sp
OwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RJbnNlcnRNaWRkbGUobmV4dCkK
LSAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PSBJbnNlcnRl
ZCBtaWRkbGUgPT09PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVt
ZW50c1RyZWUoY29udGFpbmVyTm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiaW5zZXJ0
Tm9kZSgpIiwgY2FsbGJhY2spOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RB
cHBlbmQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9
PT09PT09PSBBcHBlbmRlZCA9PT09PT09PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4
dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgiYXBwZW5kQ2hpbGQoKSIsIGNhbGxiYWNrKTsKLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0ZXN0QXBwZW5kV2l0aFRleHQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
ZnVuY3Rpb24gY2FsbGJhY2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PSBBcHBlbmRlZCB3aXRoIHRleHQ9PT09PT09PT0i
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoY29udGFp
bmVyTm9kZSk7Ci0gICAgICAgICAgICAgICAgdmFyIG5ld05vZGUgPSBJbnNwZWN0b3JUZXN0LmV4
cGFuZGVkTm9kZVdpdGhJZCgiY2hpbGQtd2l0aC10ZXh0Iik7Ci0gICAgICAgICAgICAgICAgaWYg
KFdlYkluc3BlY3Rvci5kb21BZ2VudC5ub2RlRm9ySWQobmV3Tm9kZS5maXJzdENoaWxkLmlkKSkK
LSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlN1Y2Nlc3M6IGNo
aWxkIHRleHQgaXMgYm91bmQiKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGYWlsZWQ6IGNoaWxkIHRleHQgaXMgbm90
IGJvdW5kIik7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiYXBwZW5kQ2hpbGRXaXRoVGV4dCgp
IiwgY2FsbGJhY2spOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RJbnNlcnRG
aXJzdFRleHROb2RlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxi
YWNrKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiPT09PT09PT0gSW5zZXJ0ZWQgZmlyc3QgdGV4dCBub2RlID09PT09PT09PSIpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKGNhbGxiYWNrMik7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrMigpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVl
KGNvbnRhaW5lck5vZGUpOwotICAgICAgICAgICAgICAgIHZhciBuZXdOb2RlID0gSW5zcGVjdG9y
VGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoImNoaWxkMyIpOwotICAgICAgICAgICAgICAgIGlmIChX
ZWJJbnNwZWN0b3IuZG9tQWdlbnQubm9kZUZvcklkKG5ld05vZGUuZmlyc3RDaGlsZC5pZCkpCi0g
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTdWNjZXNzOiBjaGls
ZCB0ZXh0IGlzIGJvdW5kIik7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRmFpbGVkOiBjaGlsZCB0ZXh0IGlzIG5vdCBi
b3VuZCIpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImluc2VydEZpcnN0VGV4dE5vZGUoKSIs
IGNhbGxiYWNrKTsKLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGVsZW1lbnRzIHBh
bmVsIHVwZGF0ZXMgZG9tIHRyZWUgc3RydWN0dXJlIHVwb24gbm9kZSBpbnNlcnRpb24uCi08L3A+
Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PGRpdiBpZD0iY2hpbGQxIj48L2Rpdj48ZGl2IGlkPSJj
aGlsZDIiPjwvZGl2PjxkaXYgaWQ9ImNoaWxkMyI+PC9kaXY+PC9kaXY+Ci0KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9tb2RpZnkt
Y2hhcmRhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL21v
ZGlmeS1jaGFyZGF0YS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdhZWQ0NjkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL21v
ZGlmeS1jaGFyZGF0YS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBA
Ci1UZXN0cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHVwZGF0ZXMgZG9tIHRyZWUgc3RydWN0dXJlIHVw
b24gY2hhbmdlcyB0byBjaGFyYWN0ZXJzLgotCi1CYXIKLUxvcmVtIGlwc3Rlc3Rsb3Igc2l0IGFt
ZXQKLQotUnVubmluZzogdGVzdER1bXBJbml0aWFsCi09PT09PT09PT0gT3JpZ2luYWwgZm9yIG5v
cm1hbCBtdXRhdGlvbiA9PT09PT09PQotICA8ZGl2IGlkPSJub2RlIj5Gb288L2Rpdj4KLQotUnVu
bmluZzogdGVzdFNldEF0dHJpYnV0ZQotPT09PT0gTXV0YXRlZCB0ZXh0IG5vZGUgPT09PT0KLSAg
PGRpdiBpZD0ibm9kZSI+QmFyPC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3RNb2RpZnlWaWFSYW5nZQot
PT09PT09PT09IE9yaWdpbmFsIGZvciBSYW5nZSBtdXRhdGlvbiA9PT09PT09PQotICA8ZGl2IGlk
PSJyYW5nZW5vZGUiPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9kaXY+Ci09PT09PSBDb250
ZW50cyBtb2RpZmllZCB2aWEgUmFuZ2UgPT09PT0KLS0gPGRpdiBpZD0icmFuZ2Vub2RlIj4KLSAg
ICAgICJMb3JlbSBpcHMiCi0gICAgICA8c3Bhbj50ZXN0PC9zcGFuPgotICAgICAgImxvciBzaXQg
YW1ldCIKLSAgPC9kaXY+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy9tb2RpZnktY2hhcmRhdGEuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9tb2RpZnktY2hhcmRhdGEuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhh
YjBhNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbW9kaWZ5
LWNoYXJkYXRhLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIG1vZGlm
eUNoYXJzKCkKLXsKLSAgICB2YXIgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub2Rl
Iik7Ci0gICAgbm9kZS5maXJzdENoaWxkLnRleHRDb250ZW50ID0gIkJhciI7Ci19Ci0KLWZ1bmN0
aW9uIG1vZGlmeVZpYVJhbmdlKCkKLXsKLSAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVS
YW5nZSgpOwotICAgIHZhciByZWZlcmVuY2VOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJhbmdlbm9kZSIpLmZpcnN0Q2hpbGQ7Ci0gICAgcmFuZ2Uuc2VsZWN0Tm9kZShyZWZlcmVuY2VO
b2RlKTsKLSAgICByYW5nZS5zZXRTdGFydChyZWZlcmVuY2VOb2RlLCA5KTsKLSAgICByYW5nZS5z
ZXRFbmQocmVmZXJlbmNlTm9kZSwgOSArIDUpOwotICAgIHJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7
Ci0gICAgdmFyIHNwYW4gPSByYW5nZS5zdGFydENvbnRhaW5lci5vd25lckRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKLSAgICBzcGFuLmlubmVySFRNTCA9ICJ0ZXN0IjsKLSAgICByYW5n
ZS5pbnNlcnROb2RlKHNwYW4pOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgdGFy
Z2V0Tm9kZTsKLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVu
Y3Rpb24gdGVzdER1bXBJbml0aWFsKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0
aW9uIGNhbGxiYWNrKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGFyZ2V0
Tm9kZSA9IG5vZGU7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09
PT09PT09PSBPcmlnaW5hbCBmb3Igbm9ybWFsIG11dGF0aW9uID09PT09PT09Iik7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKHRhcmdldE5vZGUpOwotICAg
ICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgibm9kZSIsIGNhbGxiYWNrKTsKLSAgICAgICAgfSwKLQot
ICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0QXR0cmlidXRlKG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT0gTXV0YXRlZCB0ZXh0IG5vZGUgPT09PT0i
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUodGFyZ2V0
Tm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibW9kaWZ5Q2hhcnMoKSIsIGNhbGxiYWNr
KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0TW9kaWZ5VmlhUmFuZ2UobmV4
dCkKLSAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PSBDb250
ZW50cyBtb2RpZmllZCB2aWEgUmFuZ2UgPT09PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUodGFyZ2V0Tm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4
dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZnVuY3Rpb24gZXhwYW5kQ2FsbGJhY2so
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxl
bWVudHNUcmVlKGNhbGxiYWNrKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZ1bmN0aW9u
IHNlbGVjdENhbGxiYWNrKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGFy
Z2V0Tm9kZSA9IG5vZGU7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
Ij09PT09PT09PSBPcmlnaW5hbCBmb3IgUmFuZ2UgbXV0YXRpb24gPT09PT09PT0iKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUodGFyZ2V0Tm9kZSk7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibW9kaWZ5VmlhUmFu
Z2UoKSIsIGV4cGFuZENhbGxiYWNrKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgicmFuZ2Vub2RlIiwgc2VsZWN0Q2FsbGJhY2spOwot
ICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgdXBkYXRlcyBk
b20gdHJlZSBzdHJ1Y3R1cmUgdXBvbiBjaGFuZ2VzIHRvIGNoYXJhY3RlcnMuCi08L3A+Ci0KLTxk
aXYgaWQ9Im5vZGUiPkZvbzwvZGl2PgotPGRpdiBpZD0icmFuZ2Vub2RlIj5Mb3JlbSBpcHN1bSBk
b2xvciBzaXQgYW1ldDwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbW92ZS1ub2RlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9tb3ZlLW5vZGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYWYwMDc3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9tb3ZlLW5vZGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMjIgKzAsMCBAQAotVGVzdHMgZWxlbWVudHMgZHJhZyBhbmQgZHJvcCBvcGVyYXRpb24g
aW50ZXJuYWxzLCB2ZXJpZmllcyBwb3N0LW1vdmUgc2VsZWN0aW9uLgotCi0KLVJ1bm5pbmc6IHRl
c3REdW1wSW5pdGlhbAotPT09PT09PT09IE9yaWdpbmFsID09PT09PT09Ci0tIDxkaXYgaWQ9ImNv
bnRhaW5lciI+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgICAgPGRpdiBpZD0i
Y2hpbGQyIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkMyI+PC9kaXY+Ci0gICAgICA8ZGl2
IGlkPSJjaGlsZDQiPjwvZGl2PgotICA8L2Rpdj4KLQotUnVubmluZzogdGVzdERyYWdBbmREcm9w
Ci09PT09PSBNb3ZlZCBjaGlsZDIgPT09PT0KLS0gPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICAg
IDxkaXYgaWQ9ImNoaWxkMSI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDMiPjwvZGl2Pgot
ICAgICAgPGRpdiBpZD0iY2hpbGQyIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkNCI+PC9k
aXY+Ci0gIDwvZGl2PgotU2VsZWN0aW9uOiBkaXYjY2hpbGQyCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9tb3ZlLW5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9tb3ZlLW5vZGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMGQzNWVlMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvbW92ZS1ub2RlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIHZhciBjb250YWluZXJOb2RlOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5U
ZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0RHVtcEluaXRpYWwobmV4dCkKLSAgICAg
ICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sobm9kZSkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5v
ZGVXaXRoSWQoImNvbnRhaW5lciIpOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIj09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PSIpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKLSAgICAgICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGFuZEVsZW1lbnRzVHJlZShjYWxsYmFjayk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdERyYWdBbmREcm9wKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB0
cmVlT3V0bGluZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmU7Ci0g
ICAgICAgICAgICB0cmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVPdXRsaW5lLkV2ZW50cy5TZWxlY3RlZE5vZGVDaGFuZ2VkLCBzZWxlY3Rpb25DaGFu
Z2VkKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc2VsZWN0aW9uQ2hhbmdlZCgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09IE1v
dmVkIGNoaWxkMiA9PT09PSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVs
ZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiU2VsZWN0aW9uOiAiICsgdHJlZU91dGxpbmUuc2VsZWN0ZWRET01Ob2RlKCku
YXBwcm9wcmlhdGVTZWxlY3RvckZvcigpKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIHRyZWVPdXRsaW5lLl90cmVlRWxlbWVudEJlaW5nRHJh
Z2dlZCA9IHRyZWVPdXRsaW5lLmdldENhY2hlZFRyZWVFbGVtZW50KEluc3BlY3RvclRlc3QuZXhw
YW5kZWROb2RlV2l0aElkKCJjaGlsZDIiKSk7Ci0gICAgICAgICAgICB2YXIgdHJlZUVsZW1lbnRU
b0Ryb3BPbiA9IHRyZWVPdXRsaW5lLmdldENhY2hlZFRyZWVFbGVtZW50KEluc3BlY3RvclRlc3Qu
ZXhwYW5kZWROb2RlV2l0aElkKCJjaGlsZDQiKSk7Ci0gICAgICAgICAgICB0cmVlT3V0bGluZS5f
ZG9Nb3ZlKHRyZWVFbGVtZW50VG9Ecm9wT24pOwotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3Rz
IGVsZW1lbnRzIGRyYWcgYW5kIGRyb3Agb3BlcmF0aW9uIGludGVybmFscywgdmVyaWZpZXMgcG9z
dC1tb3ZlIHNlbGVjdGlvbi4KLTwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2
IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgIDxkaXYgaWQ9ImNoaWxkMiI+PC9kaXY+Ci0gICAgPGRp
diBpZD0iY2hpbGQzIj48L2Rpdj4KLSAgICA8ZGl2IGlkPSJjaGlsZDQiPjwvZGl2PgotPC9kaXY+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9tdXRhdGUtdW5rbm93bi1ub2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9tdXRhdGUtdW5rbm93bi1ub2RlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRlY2NiNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvbXV0YXRlLXVua25vd24tbm9kZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UZXN0cyB0aGF0IGVsZW1lbnRzIHBhbmVsIGRv
ZXMgbm90IHJlY2VpdmUgZXZlbnRzIHVwb24gY2hhbmdlcyB0byB0aGUgdW5kaXNjb3ZlcmVkIG5v
ZGVzLgotCi1BcHBlbmRlZAotRE9NQWdlbnQgZXZlbnQgZmlyZWQuIFNob3VsZCBvbmx5IGhhcHBl
biBvbmNlIGZvciBvdXRwdXQgbm9kZTogRE9NTm9kZUluc2VydGVkIERJViN1bmRlZmluZWQKLVJl
bW92ZWQKLUF0dHJpYnV0ZSBtb2RpZmllZAotPT09PT09PT09IFJlc3VsdCBET01BZ2VudCB0cmVl
ID09PT09PT09Ci0jZG9jdW1lbnRbMV0KLSAgICBIVE1MWzJdCi0gICAgICAgIEhFQURbM10KLSAg
ICAgICAgQk9EWVs0XQotICAgICAgICAgICAgUFs1XQotICAgICAgICAgICAgICAgIFs2XQotICAg
ICAgICAgICAgRElWWzddCi0gICAgICAgICAgICBESVZbOF0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL211dGF0ZS11bmtub3duLW5vZGUuaHRtbC1kaXNhYmxl
ZCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9tdXRhdGUtdW5rbm93bi1ub2RlLmh0
bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmYWYxZTYuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL211dGF0ZS11bmtub3duLW5v
ZGUuaHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gYXBw
ZW5kQ2hpbGQoKQotewotICAgIHZhciBoaWRkZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
aGlkZGVuIik7Ci0gICAgdmFyIGNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
Ci0gICAgY2hpbGQuc2V0QXR0cmlidXRlKCJpZCIsICJhcHBlbmRlZCIpOwotICAgIGhpZGRlbi5h
cHBlbmRDaGlsZChjaGlsZCk7Ci19Ci0KLWZ1bmN0aW9uIHJlbW92ZUNoaWxkKCkKLXsKLSAgICB2
YXIgY2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwZW5kZWQiKTsKLSAgICBjaGls
ZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNoaWxkKTsKLX0KLQotZnVuY3Rpb24gbW9kaWZ5QXR0
cmlidXRlKCkKLXsKLSAgICB2YXIgaGlkZGVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhp
ZGRlbiIpOwotICAgIGhpZGRlbi5zZXRBdHRyaWJ1dGUoImZvbyIsICJiYXIiKTsKLX0KLQotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gbGlzdGVuZXIodHlwZSwgZXZlbnQpCi0gICAg
ewotICAgICAgICBub2RlID0gZXZlbnQuZGF0YS5ub2RlIHx8IGV2ZW50LmRhdGE7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJET01BZ2VudCBldmVudCBmaXJlZC4gU2hvdWxkIG9u
bHkgaGFwcGVuIG9uY2UgZm9yIG91dHB1dCBub2RlOiAiICsgdHlwZSArICIgIiArIGV2ZW50LmRh
dGEubm9kZU5hbWUoKSArICIjIiArIGV2ZW50LmRhdGEuZ2V0QXR0cmlidXRlKCJpZCIpKTsKLSAg
ICB9Ci0KLSAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkF0dHJNb2RpZmllZCwgbGlzdGVuZXIuYmluZCh0aGlzLCAi
RE9NQXR0ck1vZGlmaWVkIikpOwotICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuQ2hhcmFjdGVyRGF0YU1vZGlmaWVk
LCBsaXN0ZW5lci5iaW5kKHRoaXMsICJET01DaGFyYWN0ZXJEYXRhTW9kaWZpZWQiKSk7Ci0gICAg
V2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFn
ZW50LkV2ZW50cy5Ob2RlSW5zZXJ0ZWQsIGxpc3RlbmVyLmJpbmQodGhpcywgIkRPTU5vZGVJbnNl
cnRlZCIpKTsKLSAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLk5vZGVSZW1vdmVkLCBsaXN0ZW5lci5iaW5kKHRoaXMs
ICJET01Ob2RlUmVtb3ZlZCIpKTsKLQotICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0
RG9jdW1lbnQoc3RlcDAuYmluZCh0aGlzKSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMCgpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJhcHBlbmRDaGlsZCgpIiwg
c3RlcDEpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBcHBlbmRlZCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJyZW1vdmVDaGlsZCgpIiwgc3RlcDIpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJS
ZW1vdmVkIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm1vZGlmeUF0
dHJpYnV0ZSgpIiwgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBdHRyaWJ1dGUgbW9kaWZpZWQiKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgidHJ1ZSIsIHN0ZXA0KTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiPT09PT09PT09IFJlc3VsdCBET01BZ2VudCB0cmVlID09PT09PT09Iik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcERPTUFnZW50VHJlZSgpOwotCi0gICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGVsZW1lbnRzIHBh
bmVsIGRvZXMgbm90IHJlY2VpdmUgZXZlbnRzIHVwb24gY2hhbmdlcyB0byB0aGUgdW5kaXNjb3Zl
cmVkIG5vZGVzLgotPC9wPgotCi08ZGl2PgotPGRpdiBpZD0iaGlkZGVuIj4KLTwvZGl2PgotPC9k
aXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9ub2RlLXhwYXRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9ub2RlLXhwYXRoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2Q2MjdkNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvbm9kZS14cGF0aC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCww
IEBACi1UZXN0cyBET01Ob2RlLnhQYXRoKCkKLQotMyBQcmVmaXggIFN1ZmZpeAotNAotNQotNgot
JyNkb2N1bWVudCc6JycgLSAnLycKLSAgJyc6JyBQcmUtY29tbWVudCAnIC0gJy9jb21tZW50KClb
MV0nCi0gICdodG1sJzonJyAtICcvaHRtbCcKLSAgICAnaGVhZCc6JycgLSAnL2h0bWwvaGVhZCcK
LSAgICAgICdzY3JpcHQnOicnIC0gJy8vKltAaWQ9InNjcmlwdC1pZCJdJwotICAgICAgJ3Njcmlw
dCc6JycgLSAnL2h0bWwvaGVhZC9zY3JpcHRbMl0nCi0gICAgICAnc2NyaXB0JzonJyAtICcvaHRt
bC9oZWFkL3NjcmlwdFs0XScKLSAgICAgICAgJyc6J1xuLy8gQ29tbWVudFxuLy8nIC0gJy9odG1s
L2hlYWQvc2NyaXB0WzRdL3RleHQoKVsxXScKLSAgICAgICAgJyc6J1xuZnVuY3Rpb24gZigpXG57
XG4gICAgZG9jdW1lbnQud3JpdGUoIjwiKTtcbn1cbi8vJyAtICcvaHRtbC9oZWFkL3NjcmlwdFs0
XS90ZXh0KClbMl0nCi0gICAgJ2JvZHknOicnIC0gJy9odG1sL2JvZHknCi0gICAgICAncCc6Jycg
LSAnL2h0bWwvYm9keS9wJwotICAgICAgICAnJzonVGVzdHMgRE9NTm9kZS54UGF0aCgpJyAtICcv
aHRtbC9ib2R5L3AvdGV4dCgpJwotICAgICAgJ2Rpdic6JycgLSAnLy8qW0BpZD0iaWQxIl0nCi0g
ICAgICAnZGl2JzonJyAtICcvLypbQGlkPSJpZDIiXScKLSAgICAgICdkaXYnOicnIC0gJy8vKltA
aWQ9ImNvbnRhaW5lciJdJwotICAgICAgICAnZGl2JzonJyAtICcvLypbQGlkPSJpZDMiXScKLSAg
ICAgICAgICAnJzonMyBQcmVmaXggJyAtICcvLypbQGlkPSJpZDMiXS90ZXh0KClbMV0nCi0gICAg
ICAgICAgJyc6JzxncmVldGluZz5IZWxsbywgd29ybGQhPC9ncmVldGluZz4nIC0gJy8vKltAaWQ9
ImlkMyJdL3RleHQoKVsyXScKLSAgICAgICAgICAnJzonIFN1ZmZpeCcgLSAnLy8qW0BpZD0iaWQz
Il0vdGV4dCgpWzNdJwotICAgICAgICAnZGl2JzonJyAtICcvLypbQGlkPSJpZDQiXScKLSAgICAg
ICAgICAnJzonNCcgLSAnLy8qW0BpZD0iaWQ0Il0vdGV4dCgpJwotICAgICAgICAnZGl2JzonJyAt
ICcvLypbQGlkPSJpZDUiXScKLSAgICAgICAgICAnJzonNScgLSAnLy8qW0BpZD0iaWQ1Il0vdGV4
dCgpJwotICAgICAgICAnZGl2JzonJyAtICcvLypbQGlkPSJpZDYiXScKLSAgICAgICAgICAnJzon
NicgLSAnLy8qW0BpZD0iaWQ2Il0vdGV4dCgpJwotICAnJzonIFBvc3QtY29tbWVudCAnIC0gJy9j
b21tZW50KClbMl0nCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9ub2RlLXhwYXRoLnhodG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL25vZGUt
eHBhdGgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3OWVlMjkuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL25vZGUteHBhdGgueGh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi08IS0tIFByZS1jb21tZW50IC0tPgotPGh0
bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiIGlkPSJz
Y3JpcHQtaWQiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBpZD0idGVzdC1zY3JpcHQi
PgotLy88IVtDREFUQVsKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuZXhw
YW5kRWxlbWVudHNUcmVlKGR1bXBOb2Rlcy5iaW5kKG51bGwsICIiKSk7Ci0gICAgdmFyIGRvYzsK
LQotICAgIGZ1bmN0aW9uIGR1bXBOb2RlcyhwcmVmaXgsIG5vZGUpCi0gICAgewotICAgICAgICBp
ZiAoIWRvYykgewotICAgICAgICAgICAgZG9jID0gZ2V0RG9jdW1lbnRFbGVtZW50KCk7Ci0gICAg
ICAgICAgICBub2RlID0gZG9jOwotICAgICAgICB9Ci0gICAgICAgIGlmIChub2RlLmdldEF0dHJp
YnV0ZSgiaWQiKSA9PT0gInRlc3Qtc2NyaXB0IikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgZHVtcE5vZGVEYXRhKG5vZGUsIHByZWZpeCk7Ci0gICAgICAgIHZhciBjaGlsZHJlbiA9IG5v
ZGUuY2hpbGRyZW47Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBjaGlsZHJlbiAmJiBpIDwgY2hp
bGRyZW4ubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBkdW1wTm9kZXMocHJlZml4ICsgIiAgIiwg
Y2hpbGRyZW5baV0pOwotICAgICAgICBpZiAobm9kZSA9PT0gZG9jKQotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBnZXREb2N1
bWVudEVsZW1lbnQoKQotICAgIHsKLSAgICAgICAgdmFyIG1hcCA9IFdlYkluc3BlY3Rvci5kb21B
Z2VudC5faWRUb0RPTU5vZGU7Ci0gICAgICAgIGZvciAodmFyIGlkIGluIG1hcCkgewotICAgICAg
ICAgICAgaWYgKG1hcFtpZF0ubm9kZU5hbWUoKSA9PT0gIiNkb2N1bWVudCIpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIG1hcFtpZF07Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wTm9kZURhdGEobm9kZSwgcHJlZml4KQotICAgIHsK
LSAgICAgICAgdmFyIHJlc3VsdCA9IHByZWZpeCArICInIiArIG5vZGUubm9kZU5hbWUoKSArICIn
OiciICsgbm9kZS5ub2RlVmFsdWUoKSArICInIC0gJyIgKyBub2RlLnhQYXRoKHRydWUpICsgIici
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZXN1bHQucmVwbGFjZSgvXG4vZywg
IlxcbiIpKTsKLSAgICB9Ci19Ci0vL11dPgotPC9zY3JpcHQ+Ci08c2NyaXB0PgotLy8gQ29tbWVu
dAotLy88IVtDREFUQVsKLWZ1bmN0aW9uIGYoKQotewotICAgIGRvY3VtZW50LndyaXRlKCI8Iik7
Ci19Ci0vL11dPgotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTxwPlRlc3RzIERPTU5vZGUueFBhdGgoKTwvcD4KLQotPGRpdiBpZD0iaWQxIiBjbGFzcz0i
Zm9vIj48L2Rpdj4KLTxkaXYgaWQ9ImlkMiIgY2xhc3M9ImZvbyI+PC9kaXY+Ci0KLTxkaXYgaWQ9
ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iaWQzIiBjbGFzcz0iZm9vIj4zIFByZWZpeCA8IVtD
REFUQVs8Z3JlZXRpbmc+SGVsbG8sIHdvcmxkITwvZ3JlZXRpbmc+XV0+IFN1ZmZpeDwvZGl2Pgot
ICAgIDxkaXYgaWQ9ImlkNCIgY2xhc3M9ImZvbyI+NDwvZGl2PgotICAgIDxkaXYgaWQ9ImlkNSIg
Y2xhc3M9ImZvbyI+NTwvZGl2PgotICAgIDxkaXYgaWQ9ImlkNiIgY2xhc3M9ImZvbyI+NjwvZGl2
PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLTwhLS0gUG9zdC1jb21tZW50IC0tPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3BlcmZvcm0tdW5kby11bmRv
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9wZXJmb3JtLXVu
ZG8tdW5kby1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyYzAx
NGEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3BlcmZvcm0t
dW5kby11bmRvLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRl
c3RzIHRoYXQgY2xpZW50IGNhbiBjYWxsIHVuZG8gbXVsdGlwbGUgdGltZXMgd2l0aCBub24tZW1w
dHkgaGlzdG9yeS4KLQotPT09PT09PT09IE9yaWdpbmFsID09PT09PT09Ci0gIDxkaXYgc3R5bGU9
ImRpc3BsYXk6bm9uZSIgaWQ9ImNvbnRhaW5lciI+XG48L2Rpdj4KLT09PT09IE1vZGlmaWVkIGVs
ZW1lbnQgPT09PT0KLSAgPGRpdiBzdHlsZT0iZGlzcGxheTpub25lIiBpZD0iY29udGFpbmVyIiBm
b289ImJhciI+XG48L2Rpdj4KLT09PT09IFVuZG8gMSA9PT09PQotICA8ZGl2IHN0eWxlPSJkaXNw
bGF5Om5vbmUiIGlkPSJjb250YWluZXIiPlxuPC9kaXY+Ci09PT09PSBVbmRvIDIgPT09PT0KLSAg
PGRpdiBzdHlsZT0iZGlzcGxheTpub25lIiBpZD0iY29udGFpbmVyIj5cbjwvZGl2PgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcGVyZm9ybS11bmRvLXVuZG8u
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9wZXJmb3JtLXVuZG8tdW5kby5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjcwMWIyLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9wZXJmb3JtLXVuZG8tdW5kby5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgY29u
dGFpbmVyTm9kZTsKLSAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShzdGVwMSk7
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMShub2RlKQotICAgIHsKLSAgICAgICAgY29udGFpbmVyTm9k
ZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElkKCJjb250YWluZXIiKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PSIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9kZSk7
Ci0gICAgICAgIHN0ZXAyKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsK
LSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT0gTW9kaWZpZWQgZWxlbWVudCA9PT09PSIpOwotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKGNvbnRhaW5lck5vZGUpOwot
ICAgICAgICAgICAgc3RlcDMoKTsKLSAgICAgICAgfQotICAgICAgICBjb250YWluZXJOb2RlLnNl
dEF0dHJpYnV0ZSgiIiwgImZvbz1cImJhclwiIiwgY2FsbGJhY2spOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAg
ICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09IFVuZG8gMSA9
PT09PSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKGNvbnRh
aW5lck5vZGUpOwotICAgICAgICAgICAgc3RlcDQoKTsKLSAgICAgICAgfQotICAgICAgICBXZWJJ
bnNwZWN0b3IuZG9tQWdlbnQudW5kbyhjYWxsYmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
c3RlcDQoKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT0gVW5kbyAyID09PT09Iik7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9k
ZSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC51bmRvKGNhbGxiYWNrKTsKLSAgICB9Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4K
LVRlc3RzIHRoYXQgY2xpZW50IGNhbiBjYWxsIHVuZG8gbXVsdGlwbGUgdGltZXMgd2l0aCBub24t
ZW1wdHkgaGlzdG9yeS4KLTwvcD4KLQotPGRpdiBzdHlsZT0iZGlzcGxheTpub25lIiBpZD0iY29u
dGFpbmVyIj4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVtb3ZlLW5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3JlbW92ZS1ub2RlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDg4ZWUxNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVtb3ZlLW5vZGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMzggKzAsMCBAQAotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRhdGVzIGRv
bSB0cmVlIHN0cnVjdHVyZSB1cG9uIG5vZGUgcmVtb3ZhbC4KLQotCi1SdW5uaW5nOiB0ZXN0RHVt
cEluaXRpYWwKLT09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PQotLSA8ZGl2IGlkPSJjb250YWlu
ZXIiPgotICAgICAgPGRpdiBpZD0iY2hpbGQxIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxk
MiI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDMiPjwvZGl2PgotICAgICAgPGRpdiBpZD0i
Y2hpbGQ0Ij48L2Rpdj4KLSAgPC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3RSZW1vdmVGaXJzdAotPT09
PT0gUmVtb3ZlZCBmaXJzdCA9PT09PQotLSA8ZGl2IGlkPSJjb250YWluZXIiPgotICAgICAgPGRp
diBpZD0iY2hpbGQyIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkMyI+PC9kaXY+Ci0gICAg
ICA8ZGl2IGlkPSJjaGlsZDQiPjwvZGl2PgotICA8L2Rpdj4KLQotUnVubmluZzogdGVzdFJlbW92
ZU1pZGRsZQotPT09PT0gUmVtb3ZlZCBtaWRkbGUgPT09PT0KLS0gPGRpdiBpZD0iY29udGFpbmVy
Ij4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkMiI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDQi
PjwvZGl2PgotICA8L2Rpdj4KLQotUnVubmluZzogdGVzdFJlbW92ZUxhc3QKLT09PT09IFJlbW92
ZWQgbGFzdCA9PT09PQotLSA8ZGl2IGlkPSJjb250YWluZXIiPgotICAgICAgPGRpdiBpZD0iY2hp
bGQyIj48L2Rpdj4KLSAgPC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3RSZW1vdmVUaGVPbmx5Ci09PT09
PSBSZW1vdmVkIHRoZSBvbmx5ID09PT09Ci0tIDxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gIDwvZGl2
PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVtb3ZlLW5v
ZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZW1vdmUtbm9kZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzU2NjNjLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZW1vdmUtbm9kZS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsODggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiByZW1vdmVOb2RlKGlkKQotewotICAgIHZhciBjaGls
ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKLSAgICBjaGlsZC5wYXJlbnROb2RlLnJl
bW92ZUNoaWxkKGNoaWxkKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIGNvbnRh
aW5lck5vZGU7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1
bmN0aW9uIHRlc3REdW1wSW5pdGlhbChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmdW5j
dGlvbiBjYWxsYmFjayhub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbnRh
aW5lck5vZGUgPSBJbnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJZCgiY29udGFpbmVyIik7
Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09IE9y
aWdpbmFsID09PT09PT09Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxl
bWVudHNUcmVlKGNvbnRhaW5lck5vZGUpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKGNh
bGxiYWNrKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0UmVtb3ZlRmlyc3Qo
bmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PSBS
ZW1vdmVkIGZpcnN0ID09PT09Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
RWxlbWVudHNUcmVlKGNvbnRhaW5lck5vZGUpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInJl
bW92ZU5vZGUoJ2NoaWxkMScpIiwgY2FsbGJhY2spOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1
bmN0aW9uIHRlc3RSZW1vdmVNaWRkbGUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZnVu
Y3Rpb24gY2FsbGJhY2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCI9PT09PSBSZW1vdmVkIG1pZGRsZSA9PT09PSIpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKLSAg
ICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJyZW1vdmVOb2RlKCdjaGlsZDMnKSIsIGNhbGxiYWNrKTsK
LSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0UmVtb3ZlTGFzdChuZXh0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09IFJlbW92ZWQgbGFz
dCA9PT09PSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJl
ZShjb250YWluZXJOb2RlKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJyZW1vdmVOb2RlKCdj
aGlsZDQnKSIsIGNhbGxiYWNrKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0
UmVtb3ZlVGhlT25seShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjYWxs
YmFjaygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIj09PT09IFJlbW92ZWQgdGhlIG9ubHkgPT09PT0iKTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9kZSk7Ci0gICAgICAgICAg
ICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZSgicmVtb3ZlTm9kZSgnY2hpbGQyJykiLCBjYWxsYmFjayk7Ci0gICAgICAg
IH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRhdGVzIGRvbSB0cmVl
IHN0cnVjdHVyZSB1cG9uIG5vZGUgcmVtb3ZhbC4KLTwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVy
Ij48ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PjxkaXYgaWQ9ImNoaWxkMiI+PC9kaXY+PGRpdiBpZD0i
Y2hpbGQzIj48L2Rpdj48ZGl2IGlkPSJjaGlsZDQiPjwvZGl2PjwvZGl2PgotCi08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb2x2
ZS1hbGllbi1ub2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9yZXNvbHZlLWFsaWVuLW5vZGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyMTFkZTI4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy9yZXNvbHZlLWFsaWVuLW5vZGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NCArMCwwIEBACi1UZXN0cyB0aGF0IHJlc29sdmVOb2RlIGZyb20gYWxpZW4gZG9jdW1lbnQgZG9l
cyBub3QgY3Jhc2guIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTgw
Ni4KLQotQWxpZW4gbm9kZSBzaG91bGQgcmVzb2x2ZSB0byBudWxsOiBudWxsCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvbHZlLWFsaWVuLW5vZGUuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvbHZlLWFsaWVuLW5vZGUuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmYzOTY0MS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb2x2ZS1hbGllbi1ub2RlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0
ZSgidmFyIGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgn
Jyk7IGRvYy5sYXN0Q2hpbGQuaW5uZXJIVE1MID0gJzxzcGFuPjwvc3Bhbj4nOyBkb2MubGFzdENo
aWxkIiwgc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoZXJyb3IsIHJlc3VsdCwgd2FzVGhy
b3duKQotICAgIHsKLSAgICAgICAgdmFyIHNwYW5XcmFwcGVyID0gV2ViSW5zcGVjdG9yLlJlbW90
ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1bHQpOwotICAgICAgICBzcGFuV3JhcHBlci5wdXNoTm9k
ZVRvRnJvbnRlbmQoc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKG5vZGVJZCkK
LSAgICB7Ci0gICAgICAgIHZhciBub2RlID0gV2ViSW5zcGVjdG9yLmRvbUFnZW50Lm5vZGVGb3JJ
ZChub2RlSWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUobm9kZSwgIk5vZGUg
b2JqZWN0IHNob3VsZCBiZSByZXNvdmxlZCIpOwotICAgICAgICBXZWJJbnNwZWN0b3IuUmVtb3Rl
T2JqZWN0LnJlc29sdmVOb2RlKG5vZGUsIHVuZGVmaW5lZCwgc3RlcDMpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXAzKHJlbW90ZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJBbGllbiBub2RlIHNob3VsZCByZXNvbHZlIHRvIG51bGw6ICIgKyByZW1v
dGVPYmplY3QpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0K
LX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxw
PgotVGVzdHMgdGhhdCByZXNvbHZlTm9kZSBmcm9tIGFsaWVuIGRvY3VtZW50IGRvZXMgbm90IGNy
YXNoLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE4MDYuCi08L3A+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9yZXNvbHZlLW5vZGUtYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvcmVzb2x2ZS1ub2RlLWJsb2NrZWQtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWFjZDQ3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvbHZlLW5vZGUtYmxvY2tlZC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIHRoYXQgSlMgb2JqZWN0IHRvIG5v
ZGUgcmVzb2x1dGlvbiBzdGlsbCB3b3JrcyBldmVuIGlmIHNjcmlwdCBldmFscyBhcmUgcHJvaGli
aXRlZCBieSBDb250ZW50LVNlY3VyaXR5LVBvbGljeS4gVGhlIHRlc3QgcGFzc2VzIGlmIGl0IGRv
ZXNuJ3QgY3Jhc2guIEJ1ZyA3ODcwNS4KLQotZGlkUmVjZWl2ZURvY3VtZW50T2JqZWN0Ci1kaWRS
ZXF1ZXN0Tm9kZSBlcnJvciA9IG51bGwKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL3Jlc29sdmUtbm9kZS1ibG9ja2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvcmVzb2x2ZS1ub2RlLWJsb2NrZWQuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNTAwNTQ0ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvcmVzb2x2ZS1ub2RlLWJsb2NrZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDMxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPG1l
dGEgaHR0cC1lcXVpdj0iQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiIGNvbnRlbnQ9InNjcmlwdC1z
cmMgJ3Vuc2FmZS1pbmxpbmUnIj4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJkb2N1bWVudCIsIGRpZFJlY2VpdmVEb2N1bWVu
dE9iamVjdCk7Ci0gICAgZnVuY3Rpb24gZGlkUmVjZWl2ZURvY3VtZW50T2JqZWN0KHJlbW90ZU9i
amVjdCwgd2FzVGhyb3duKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
ImRpZFJlY2VpdmVEb2N1bWVudE9iamVjdCIpOwotICAgICAgICBET01BZ2VudC5yZXF1ZXN0Tm9k
ZShyZW1vdGVPYmplY3Qub2JqZWN0SWQsIGRpZFJlcXVlc3ROb2RlKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBkaWRSZXF1ZXN0Tm9kZShlcnJvciwgbm9kZUlkKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoImRpZFJlcXVlc3ROb2RlIGVycm9yID0gIiArIGVycm9yKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBK
UyBvYmplY3QgdG8gbm9kZSByZXNvbHV0aW9uIHN0aWxsIHdvcmtzIGV2ZW4gaWYgc2NyaXB0IGV2
YWxzIGFyZSBwcm9oaWJpdGVkIGJ5IENvbnRlbnQtU2VjdXJpdHktUG9saWN5LgotVGhlIHRlc3Qg
cGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCi08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg3MDUiPkJ1ZyA3ODcwNS48L2E+Ci08L3A+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVz
b3VyY2VzL2RvbS1zZWFyY2gtY3Jhc2gtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvcmVzb3VyY2VzL2RvbS1zZWFyY2gtY3Jhc2gtaWZyYW1lLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzZjcxZGUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc291cmNlcy9kb20tc2VhcmNoLWNyYXNoLWlmcmFtZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi08c2NyaXB0PgotZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL3Jlc291cmNlcy9lbGVtZW50cy1wYW5lbC1yZXdyaXRlLWhyZWYtaWZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL2VsZW1lbnRzLXBhbmVsLXJl
d3JpdGUtaHJlZi1pZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDli
YjUzZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb3Vy
Y2VzL2VsZW1lbnRzLXBhbmVsLXJld3JpdGUtaHJlZi1pZnJhbWUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDEwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08YmFzZSBocmVmPSJodHRwOi8vMTI3
LjAuMC4xIj4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgc3JjPSJzdHlsZXNoZWV0LmNzcyI+Ci08
c2NyaXB0IHNyYz0ic2NyaXB0LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGEgaHJl
Zj0idGFyZ2V0Lmh0bWwiPjwvYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvZWxlbWVudHMtcGFuZWwtc3R5bGVz
LmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvZWxlbWVudHMt
cGFuZWwtc3R5bGVzLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWUwMjY4OS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL2Vs
ZW1lbnRzLXBhbmVsLXN0eWxlcy5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi1i
b2R5IHsKLSAgICBmb250LXNpemU6IDEycHg7Ci19Ci0KLSNjb250YWluZXIgewotICAgIGZvbnQt
ZmFtaWx5OiBzZXJpZjsKLSAgICBmb250LXNpemU6IDE0cHg7Ci0gICAgY29sb3I6IHJlZDsKLSAg
ICBwYWRkaW5nOiAycHggIWltcG9ydGFudDsKLX0KLQotI2NvbnRhaW5lciAuZm9vIHsKLSAgICBm
b250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDsKLX0KLQotLmZvbyB7Ci0gICAgY29sb3I6IGJs
YWNrOwotICAgIG1hcmdpbi1sZWZ0OiAxcHg7Ci0gICAgbWFyZ2luOiAxMHB4IDAgMnB4OwotICAg
IGJvcmRlci1yYWRpdXM6IDVweDsKLSAgICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDsK
LSAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7Ci0gICAgZm9udC13ZWlnaHQ6IGJv
bGQ7Ci0gICAgcGFkZGluZzogNHB4OwotICAgIHBhZGRpbmctcmlnaHQ6IDFweDsKLX0KLQotLmZv
bywgLmZvbzo6YmVmb3JlIHsKLSAgICBjb250ZW50OiAiW2JlZm9yZSBGb29dIjsKLSAgICBjb2xv
cjogYmx1ZTsKLSAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwotfQotCi0uZm9vOjpiZWZv
cmUgewotICAgIGNvbG9yOiByZWQ7Ci19Ci0KLS5mb286OmFmdGVyIHsKLSAgICBjb250ZW50OiAi
W2FmdGVyIEZvb10iOwotICAgIGNvbG9yOiBncmVlbjsKLX0KLS5mb286OmFmdGVyIHsKLSAgICBm
b250LWZhbWlseTogY291cmllcjsKLSAgICBjb250ZW50OiAiW2FmdGVyIEZvbyAyXSI7Ci19Ci0K
LS5mb28gewotICAgIC8qIEVtcHR5IHJ1bGUgdGhhdCBzaG91bGQgYmUgcmVwb3J0ZWQgaW4gdGhl
IFN0eWxlcyBwYW5lICovCi19Ci0KLS5mb286OmJlZm9yZSB7Ci0gICAgLyogRW1wdHkgcnVsZSB0
aGF0IHNob3VsZCBiZSByZXBvcnRlZCBpbiB0aGUgU3R5bGVzIHBhbmUgKi8KLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaGlkZS1zaG9ydGN1
dC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMv
aGlkZS1zaG9ydGN1dC1pZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmMzMDkwZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVz
b3VyY2VzL2hpZGUtc2hvcnRjdXQtaWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImZyYW1lLW5v
ZGUiPmlmcmFtZTwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc291cmNlcy9oaWdobGlnaHQtbm9kZS1zY2FsZWQtaWZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL2hpZ2hs
aWdodC1ub2RlLXNjYWxlZC1pZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWFlZDg3MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
cmVzb3VyY2VzL2hpZ2hsaWdodC1ub2RlLXNjYWxlZC1pZnJhbWUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDI0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1kaXYgewotICAgIG1h
cmdpbjogN3B4OwotICAgIHBhZGRpbmc6IDEzcHg7Ci0gICAgYm9yZGVyOiA1cHggc29saWQgYmxh
Y2s7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIGxlZnQ6IDExcHg7Ci0gICAgdG9wOiAy
MnB4OwotICAgIHdpZHRoOiAzM3B4OwotICAgIGhlaWdodDogNDRweDsgICAgCi0gICAgYmFja2dy
b3VuZC1jb2xvcjogcmVkOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLQotPGJvZHk+Ci08ZGl2IGlk
PSJkaXYiPjwvZGl2PgotPHNjcmlwdD4KLXRvcC5pZnJhbWVEaXZFbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdiIpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaWZyYW1lLWxvYWQtZXZl
bnQtaWZyYW1lLTEuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJj
ZXMvaWZyYW1lLWxvYWQtZXZlbnQtaWZyYW1lLTEuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzMwMjRmZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvcmVzb3VyY2VzL2lmcmFtZS1sb2FkLWV2ZW50LWlmcmFtZS0xLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw1ICswLDAgQEAKLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJpZnJhbWUtMS1l
bGVtZW50Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaWZyYW1lLWxvYWQtZXZlbnQtaWZyYW1lLTIu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaWZyYW1lLWxv
YWQtZXZlbnQtaWZyYW1lLTIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdi
OWI2OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb3Vy
Y2VzL2lmcmFtZS1sb2FkLWV2ZW50LWlmcmFtZS0yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1
ICswLDAgQEAKLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJpZnJhbWUtMi1lbGVtZW50Ij48L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9yZXNvdXJjZXMvaWZyYW1lLWxvYWQtZXZlbnQtaWZyYW1lLmpzIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc291cmNlcy9pZnJhbWUtbG9hZC1ldmVudC1pZnJhbWUu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkYmUyODcuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc291cmNlcy9pZnJhbWUtbG9hZC1ldmVu
dC1pZnJhbWUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1mdW5jdGlvbiBsb2Fk
U2Vjb25kSUZyYW1lKCkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlmcmFtZSIp
Lm9ubG9hZCA9IG51bGw7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15ZnJhbWUiKS5z
cmMgPSAicmVzb3VyY2VzL2lmcmFtZS1sb2FkLWV2ZW50LWlmcmFtZS0yLmh0bWwiOwotfQotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShz
dGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0
b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRz
Lk5vZGVJbnNlcnRlZCwgbm9kZUluc2VydGVkKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZSgibG9hZFNlY29uZElGcmFtZSgpIik7Ci0KLSAgICAgICAgZnVuY3Rpb24gbm9k
ZUluc2VydGVkKGV2ZW50KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IGV2ZW50
LmRhdGE7Ci0gICAgICAgICAgICBpZiAobm9kZS5nZXRBdHRyaWJ1dGUoImlkIikgPT09ICJteWZy
YW1lIikgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVl
KHN0ZXAyKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLk5vZGVJbnNlcnRlZCwgbm9k
ZUluc2VydGVkKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcblxu
QWZ0ZXIgZnJhbWUgbmF2aWdhdGUiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVu
dHNUcmVlKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc291cmNlcy9z
ZXQtaHRtbC12aWEtcmVzb3VyY2UtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvcmVzb3VyY2VzL3NldC1odG1sLXZpYS1yZXNvdXJjZS1pZnJhbWUuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYzZjcyNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL3NldC1odG1sLXZpYS1yZXNvdXJjZS1p
ZnJhbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQ+Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdj5Gb288L2Rpdj4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9yZXNvdXJjZXMvc2V0LW91dGVyLWh0bWwtYm9keS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvc2V0LW91dGVyLWh0bWwtYm9keS1pZnJhbWUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDkwZTBjNi4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL3NldC1vdXRlci1odG1s
LWJvZHktaWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLTxodG1sIGlk
PSJodG1sIj4KLTxoZWFkIGlkPSJoZWFkIj4KLTxzY3JpcHQ+Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IGlkPSJib2R5Ij4KLTxkaXY+Rm9vPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL3VzZXItcHJv
cGVydGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvdXNl
ci1wcm9wZXJ0aWVzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjYyNTAxLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvdXNl
ci1wcm9wZXJ0aWVzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotZnVuY3Rpb24g
dGVzdCgpCi17Ci0gICAgdmFyIGNvbnRhaW5lck5vZGU7Ci0gICAgdmFyIGNoaWxkMU5vZGU7Ci0g
ICAgdmFyIGNoaWxkMk5vZGU7Ci0gICAgdmFyIGFOb2RlOwotCi0gICAgSW5zcGVjdG9yVGVzdC5l
eHBhbmRFbGVtZW50c1RyZWUoc3RlcDApOwotCi0gICAgZnVuY3Rpb24gc3RlcDAoKQotICAgIHsK
LSAgICAgICAgY29udGFpbmVyTm9kZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElk
KCJjb250YWluZXIiKTsKLSAgICAgICAgY2hpbGQxTm9kZSA9IEluc3BlY3RvclRlc3QuZXhwYW5k
ZWROb2RlV2l0aElkKCJjaGlsZDEiKTsKLSAgICAgICAgY2hpbGQyTm9kZSA9IEluc3BlY3RvclRl
c3QuZXhwYW5kZWROb2RlV2l0aElkKCJjaGlsZDIiKTsKLSAgICAgICAgYU5vZGUgPSBJbnNwZWN0
b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJZCgiYU5vZGUiKTsKLQotICAgICAgICBhTm9kZS5zZXRV
c2VyUHJvcGVydHkoImF0dHIxIiwgdHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJhdHRyMSBzZXQgb24gYU5vZGUiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxl
bWVudHNUcmVlKG51bGwpOwotCi0gICAgICAgIGNoaWxkMk5vZGUuc2V0VXNlclByb3BlcnR5KCJh
dHRyMiIsICJ2YWx1ZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiYXR0cjIg
c2V0IG9uIGNoaWxkMiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUo
bnVsbCk7Ci0KLSAgICAgICAgY2hpbGQyTm9kZS5zZXRVc2VyUHJvcGVydHkoImF0dHIxIiwgdHJ1
ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJhdHRyMSBzZXQgb24gY2hpbGQy
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShudWxsKTsKLQotICAg
ICAgICBhTm9kZS5zZXRVc2VyUHJvcGVydHkoImF0dHIxIiwgImFub3RoZXJWYWx1ZSIpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiYXR0cjEgbW9kaWZpZWQgb24gYU5vZGUiKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKG51bGwpOwotCi0gICAgICAg
IGNoaWxkMk5vZGUuc2V0VXNlclByb3BlcnR5KCJhdHRyMiIsICJhbm90aGVyVmFsdWUiKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImF0dHIyIG1vZGlmaWVkIG9uIGNoaWxkMiIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUobnVsbCk7Ci0KLSAgICAg
ICAgYU5vZGUucmVtb3ZlVXNlclByb3BlcnR5KCJhdHRyMSIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiYXR0cjEgcmVtb3ZlZCBmcm9tIGFOb2RlIik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShudWxsKTsKLQotICAgICAgICBhTm9kZS5yZW1vdmVO
b2RlKHN0ZXAxKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMShlcnJvcikKLSAgICB7Ci0g
ICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkZhaWxlZCB0byByZW1vdmUgYU5vZGUiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiYU5vZGUgcmVtb3ZlZCIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUobnVsbCk7Ci0KLSAgICAgICAgY2hpbGQyTm9kZS5yZW1v
dmVOb2RlKHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMihlcnJvcikKLSAgICB7
Ci0gICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkZhaWxlZCB0byByZW1vdmUgY2hpbGQyIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImNoaWxkMiByZW1vdmVkIik7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShudWxsKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvc2V0LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvc2V0LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQ1MjFhZDUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL3NldC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMzYgKzAsMCBAQAotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRhdGVzIGRvbSB0
cmVlIHN0cnVjdHVyZSB1cG9uIHNldHRpbmcgYXR0cmlidXRlLgotCi0KLVJ1bm5pbmc6IHRlc3RE
dW1wSW5pdGlhbAotPT09PT09PT09IE9yaWdpbmFsID09PT09PT09Ci0gIDxkaXYgaWQ9Im5vZGUi
PjwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0QXR0cmlidXRlVXBkYXRlZAotPT09PT0gT24gYXR0cmli
dXRlIHNldCA9PT09PQotICA8ZGl2IGlkPSJub2RlIiBuYW1lPSJ2YWx1ZSI+PC9kaXY+Ci0KLVJ1
bm5pbmc6IHRlc3RBdHRyaWJ1dGVTYW1lVmFsdWVOb3RVcGRhdGVkCi09PT09PSBPbiBhdHRyaWJ1
dGUgbW9kaWZpZWQgKHNob3VsZCBiZSAnbmV3VmFsdWUnKSA9PT09PQotICA8ZGl2IGlkPSJub2Rl
IiBuYW1lPSJuZXdWYWx1ZSI+PC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3RBdHRyaWJ1dGVSZW1vdmVk
Ci09PT0gT24gYXR0cmlidXRlIHJlbW92ZWQgPT09Ci0gIDxkaXYgaWQ9Im5vZGUiPjwvZGl2Pgot
Ci1SdW5uaW5nOiB0ZXN0U2V0QXR0cmlidXRlVmFsdWUKLT09PSBTZXQgYXR0cmlidXRlIHZhbHVl
ID09PQotICA8ZGl2IGlkPSJub2RlIiBmb289ImJhciI+PC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3RT
ZXRBdHRyaWJ1dGVUZXh0Ci09PT0gU2V0IGF0dHJpYnV0ZSBhcyB0ZXh0ID09PQotICA8ZGl2IGlk
PSJub2RlIiBmb28yPSJiYXoyIiBmb28zPSJiYXozIj48L2Rpdj4KLQotUnVubmluZzogdGVzdFJl
bW92ZUF0dHJpYnV0ZUFzVGV4dAotPT09IFJlbW92ZSBhdHRyaWJ1dGUgYXMgdGV4dCA9PT0KLSAg
PGRpdiBpZD0ibm9kZSIgZm9vMj0iYmF6MiI+PC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3RTZXRNYWxm
b3JtZWRBdHRyaWJ1dGVUZXh0Ci1FcnJvcjogQ291bGQgbm90IHBhcnNlIHZhbHVlIGFzIGF0dHJp
YnV0ZXMKLT09PSBTZXQgbWFsZm9ybWVkIGF0dHJpYnV0ZSBhcyB0ZXh0ID09PQotICA8ZGl2IGlk
PSJub2RlIiBmb28yPSJiYXoyIj48L2Rpdj4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL3NldC1hdHRyaWJ1dGUtbm9uLWh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1hdHRyaWJ1dGUtbm9uLWh0bWwtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZGZmM2MyLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtYXR0cmlidXRlLW5vbi1odG1s
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdHMgdGhhdCBl
bGVtZW50cyBwYW5lbCB1cGRhdGVzIGRvbSB0cmVlIHN0cnVjdHVyZSB1cG9uIHNldHRpbmcgYXR0
cmlidXRlIG9uIG5vbiBIVE1MIGVsZW1lbnRzLiBQQVNTZXMgaWYgdGhlcmUgaXMgbm8gY3Jhc2gu
Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1hdHRy
aWJ1dGUtbm9uLWh0bWwuc3ZnIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1h
dHRyaWJ1dGUtbm9uLWh0bWwuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MmIw
Yjk2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtYXR0
cmlidXRlLW5vbi1odG1sLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCI/PgotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
PgotPGZvcmVpZ25PYmplY3Q+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PjwhW0NEQVRB
WwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgdGFyZ2V0Tm9kZTsKLQotICAgIEluc3Bl
Y3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdER1bXBJbml0aWFs
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKG5vZGUpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9IG5vZGU7Ci0gICAgICAg
ICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZWxlY3ROb2RlV2l0aElkKCJub2RlIiwgY2FsbGJhY2spOwotICAgICAgICB9LAotCi0gICAg
ICAgIGZ1bmN0aW9uIHRlc3RTZXRBdHRyaWJ1dGVUZXh0KG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRhcmdldE5vZGUuc2V0
QXR0cmlidXRlKCJmb28iLCAiZm9vMj0nYmF6MicgZm9vMz0nYmF6MyciLCBjYWxsYmFjayk7Ci0g
ICAgICAgIH0KLSAgICBdKTsKLX0KLV1dPgotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRhdGVz
IGRvbSB0cmVlIHN0cnVjdHVyZSB1cG9uIHNldHRpbmcgYXR0cmlidXRlIG9uIG5vbiBIVE1MIGVs
ZW1lbnRzLiBQQVNTZXMgaWYgdGhlcmUgaXMgbm8gY3Jhc2guCi08L3A+Ci0KLTxkaXYgaWQ9Im5v
ZGUiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+Ci08L2ZvcmVpZ25PYmplY3Q+Ci08L3N2Zz4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtYXR0cmlidXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LWF0dHJpYnV0ZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTExZWU3Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtYXR0cmlidXRlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxNDMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBzZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCi17
Ci0gICAgdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9kZSIpOwotICAgIG5v
ZGUuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKLX0KLQotZnVuY3Rpb24gcmVtb3ZlQXR0cmli
dXRlKG5hbWUpCi17Ci0gICAgdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9k
ZSIpOwotICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpOwotfQotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICB2YXIgdGFyZ2V0Tm9kZTsKLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1
aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdER1bXBJbml0aWFsKG5leHQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9IG5vZGU7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIj09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PSIpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSh0YXJnZXROb2RlKTsKLSAgICAg
ICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbGVjdE5vZGVXaXRoSWQoIm5vZGUiLCBjYWxsYmFjayk7Ci0gICAgICAgIH0sCi0KLSAg
ICAgICAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZVVwZGF0ZWQobmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5ET01BZ2VudC5FdmVudHMuQXR0ck1vZGlmaWVkLCBjYWxsYmFjayk7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09IE9uIGF0dHJpYnV0ZSBzZXQgPT09PT0i
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUodGFyZ2V0
Tm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRP
TUFnZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQsIGNhbGxiYWNrKTsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldEF0dHJpYnV0ZSgnbmFtZScsICd2YWx1ZScpIik7
Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZVNhbWVWYWx1ZU5v
dFVwZGF0ZWQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2so
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCI9PT09PSBPbiBhdHRyaWJ1dGUgbW9kaWZpZWQgKHNob3VsZCBiZSAnbmV3VmFsdWUnKSA9PT09
PSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSh0YXJn
ZXROb2RlKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkF0dHJNb2RpZmllZCwgY2Fs
bGJhY2spOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
T01BZ2VudC5FdmVudHMuQXR0ck1vZGlmaWVkLCBjYWxsYmFjayk7Ci0gICAgICAgICAgICAvLyBT
ZXR0aW5nIHRoZSBzYW1lIHByb3BlcnR5IHZhbHVlIHNob3VsZCBub3QgcmVzdWx0IGluIHRoZSBB
dHRyTW9kaWZpZWQgZXZlbnQuCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJzZXRBdHRyaWJ1dGUoJ25hbWUnLCAndmFsdWUnKSIpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0QXR0cmlidXRlKCduYW1lJywgJ3ZhbHVlJykiKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldEF0dHJpYnV0ZSgn
bmFtZScsICduZXdWYWx1ZScpIik7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVz
dEF0dHJpYnV0ZVJlbW92ZWQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb24g
Y2FsbGJhY2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
b21BZ2VudC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMu
QXR0clJlbW92ZWQsIGNhbGxiYWNrKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiPT09IE9uIGF0dHJpYnV0ZSByZW1vdmVkID09PSIpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSh0YXJnZXROb2RlKTsKLSAgICAgICAgICAg
ICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9t
QWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkF0dHJS
ZW1vdmVkLCBjYWxsYmFjayk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJyZW1vdmVBdHRyaWJ1dGUoJ25hbWUnKSIpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1
bmN0aW9uIHRlc3RTZXRBdHRyaWJ1dGVWYWx1ZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRvbUFnZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFn
ZW50LkV2ZW50cy5BdHRyTW9kaWZpZWQsIGNhbGxiYWNrKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IFNldCBhdHRyaWJ1dGUgdmFsdWUgPT09Iik7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKHRhcmdldE5vZGUpOwot
ICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5F
dmVudHMuQXR0ck1vZGlmaWVkLCBjYWxsYmFjayk7Ci0gICAgICAgICAgICB0YXJnZXROb2RlLnNl
dEF0dHJpYnV0ZVZhbHVlKCJmb28iLCAiYmFyIik7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdFNldEF0dHJpYnV0ZVRleHQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
ZnVuY3Rpb24gY2FsbGJhY2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5kb21BZ2VudC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2Vu
dC5FdmVudHMuQXR0clJlbW92ZWQsIGNhbGxiYWNrKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiPT09IFNldCBhdHRyaWJ1dGUgYXMgdGV4dCA9PT0iKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUodGFyZ2V0Tm9kZSk7Ci0g
ICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2
ZW50cy5BdHRyUmVtb3ZlZCwgY2FsbGJhY2spOwotICAgICAgICAgICAgdGFyZ2V0Tm9kZS5zZXRB
dHRyaWJ1dGUoImZvbyIsICJmb28yPSdiYXoyJyBmb28zPSdiYXozJyIpOwotICAgICAgICB9LAot
Ci0gICAgICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmVBdHRyaWJ1dGVBc1RleHQobmV4dCkKLSAgICAg
ICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZW1vdmVFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuQXR0clJlbW92ZWQsIGNhbGxiYWNrKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IFJlbW92ZSBhdHRyaWJ1dGUg
YXMgdGV4dCA9PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50
c1RyZWUodGFyZ2V0Tm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5BdHRyUmVtb3ZlZCwgY2FsbGJhY2spOwotICAgICAg
ICAgICAgdGFyZ2V0Tm9kZS5zZXRBdHRyaWJ1dGUoImZvbzMiLCAiIik7Ci0gICAgICAgIH0sCi0K
LSAgICAgICAgZnVuY3Rpb24gdGVzdFNldE1hbGZvcm1lZEF0dHJpYnV0ZVRleHQobmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVycm9yOiAiICsg
ZXJyb3IpOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZW1vdmVFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuQXR0ck1vZGlmaWVkLCBjYWxs
YmFjayk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBTZXQg
bWFsZm9ybWVkIGF0dHJpYnV0ZSBhcyB0ZXh0ID09PSIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSh0YXJnZXROb2RlKTsKLSAgICAgICAgICAgICAgICBu
ZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0YXJnZXROb2RlLnNldEF0dHJpYnV0
ZSgiZm9vMiIsICJmb28yPSdtaXNzaW5ncXVvdGUiLCBjYWxsYmFjayk7Ci0gICAgICAgIH0KLSAg
ICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTxwPgotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRhdGVzIGRvbSB0cmVlIHN0cnVj
dHVyZSB1cG9uIHNldHRpbmcgYXR0cmlidXRlLgotPC9wPgotCi08ZGl2IGlkPSJub2RlIj48L2Rp
dj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzL3NldC1odG1sLXZpYS1yZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LWh0bWwtdmlhLXJlc291cmNlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQwMGJmZS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LWh0bWwtdmlhLXJlc291cmNlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGVzdHMgdGhhdCB0aGUgRE9NIGNv
bnRlbnQgY2FuIGJlIHNldCB2aWEgZWRpdGluZyByZXNvdXJjZSBjb250ZW50LgotCi0KLTxodG1s
PjxoZWFkPjwvaGVhZD48Ym9keT5OZXcgaWZyYW1lIGNvbnRlbnQ8L2JvZHk+PC9odG1sPgotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwt
Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVy
LWh0bWwtMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyMTll
MWUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRl
ci1odG1sLTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIwICswLDAgQEAKLVRl
c3RzIERPTUFnZW50LnNldE91dGVySFRNTCBwcm90b2NvbCBtZXRob2QgKHBhcnQgMikuCi0KLUFk
ZGl0aW9uYWwgbm9kZQotCi1SdW5uaW5nOiB0ZXN0U2V0VXAKLQotUnVubmluZzogdGVzdENoYW5n
ZU11bHRpcGxlVGhpbmdzCi1XcmFwcGVyIGlkZW50aXR5OiBpZGVudGl0eQotRXZlbnQgQXR0ck1v
ZGlmaWVkOiBIMgotRXZlbnQgQXR0ck1vZGlmaWVkOiBIMgotRXZlbnQgTm9kZUluc2VydGVkOiBV
TAotRXZlbnQgTm9kZVJlbW92ZWQ6IFVMCi09PT09PT09PT09ODw9PT09PT09PT09Ci08ZGl2IGlk
PSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlzIHVzZWQgYnkg
PGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJv
YXJkLCBldGMuLjwvcD4KLTxoMiBmb289ImJhciIgYmFyPSJiYXoiPkdldHRpbmcgaW52b2x2ZWQ8
L2gyPgotPHAgaWQ9ImlkZW50aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZl
ZC4gWW91IGNhbjo8L3A+Ci08dWw+Ci0gICAKLTwvdWw+Ci08dWw+Ci0gICA8bGk+PC9saT4KLTwv
dWw+Ci08L2Rpdj4KLT09PT09PT09PT0+OD09PT09PT09PT0KLQotQnJpbmdpbmcgdGhpbmdzIGJh
Y2sKLQotV3JhcHBlciBpZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50IEF0dHJSZW1vdmVkOiBIMgot
RXZlbnQgQXR0clJlbW92ZWQ6IEgyCi1FdmVudCBDaGFyYWN0ZXJEYXRhTW9kaWZpZWQ6IAotRXZl
bnQgTm9kZUluc2VydGVkOiBMSQotPT09PT09PT09PTg8PT09PT09PT09PQotPGRpdiBpZD0iY29u
dGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KLTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhy
ZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwg
ZXRjLi48L3A+Ci08aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRo
ZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTx1bD4KLSAg
IDxsaT48L2xpPgotPC91bD4KLTx1bD4KLSAgIDxsaT48L2xpPgotPC91bD4KLTwvZGl2PgotPT09
PT09PT09PT44PT09PT09PT09PQotCi0KLQotCi0KLVJ1bm5pbmc6IHRlc3RDaGFuZ2VOZXN0aW5n
TGV2ZWwKLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5Ci1FdmVudCBOb2RlSW5zZXJ0ZWQ6IERJ
VgotRXZlbnQgTm9kZVJlbW92ZWQ6IFVMCi09PT09PT09PT09ODw9PT09PT09PT09Ci08ZGl2IGlk
PSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlzIHVzZWQgYnkg
PGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJv
YXJkLCBldGMuLjwvcD4KLTxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj4KLTxwIGlkPSJpZGVudGl0
eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgotPGRp
dj48dWw+Ci0gICA8bGk+PC9saT4KLTwvdWw+PC9kaXY+Ci08dWw+Ci0gICA8bGk+PC9saT4KLTwv
dWw+Ci08L2Rpdj4KLT09PT09PT09PT0+OD09PT09PT09PT0KLQotQnJpbmdpbmcgdGhpbmdzIGJh
Y2sKLQotV3JhcHBlciBpZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50IE5vZGVJbnNlcnRlZDogVUwK
LUV2ZW50IE5vZGVSZW1vdmVkOiBESVYKLT09PT09PT09PT04PD09PT09PT09PT0KLTxkaXYgaWQ9
ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJLaXQgaXMgdXNlZCBieSA8
YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9h
cmQsIGV0Yy4uPC9wPgotPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPgotPHAgaWQ9ImlkZW50aXR5
Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Ci08dWw+
Ci0gICA8bGk+PC9saT4KLTwvdWw+Ci08dWw+Ci0gICA8bGk+PC9saT4KLTwvdWw+Ci08L2Rpdj4K
LT09PT09PT09PT0+OD09PT09PT09PT0KLQotCi0KLQotCi1SdW5uaW5nOiB0ZXN0U3dhcE5vZGVz
Ci1XcmFwcGVyIGlkZW50aXR5OiBpZGVudGl0eQotRXZlbnQgTm9kZUluc2VydGVkOiBIMgotRXZl
bnQgTm9kZVJlbW92ZWQ6IEgyCi09PT09PT09PT09ODw9PT09PT09PT09Ci08ZGl2IGlkPSJjb250
YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJl
Zj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBl
dGMuLjwvcD4KLQotPHAgaWQ9ImlkZW50aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBp
bnZvbHZlZC4gWW91IGNhbjo8L3A+Ci08dWw+Ci0gICA8bGk+PC9saT4KLTwvdWw+Ci08dWw+Ci0g
ICA8bGk+PC9saT4KLTwvdWw+Ci08aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+PC9kaXY+Ci09PT09
PT09PT09Pjg9PT09PT09PT09Ci0KLUJyaW5naW5nIHRoaW5ncyBiYWNrCi0KLVdyYXBwZXIgaWRl
bnRpdHk6IGlkZW50aXR5Ci1FdmVudCBOb2RlSW5zZXJ0ZWQ6IEgyCi1FdmVudCBOb2RlSW5zZXJ0
ZWQ6IFAKLUV2ZW50IE5vZGVJbnNlcnRlZDogVUwKLUV2ZW50IE5vZGVJbnNlcnRlZDogVUwKLUV2
ZW50IE5vZGVSZW1vdmVkOiBIMgotRXZlbnQgTm9kZVJlbW92ZWQ6IFAKLUV2ZW50IE5vZGVSZW1v
dmVkOiBVTAotRXZlbnQgTm9kZVJlbW92ZWQ6IFVMCi09PT09PT09PT09ODw9PT09PT09PT09Ci08
ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlzIHVz
ZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwg
RGFzaGJvYXJkLCBldGMuLjwvcD4KLTxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj4KLTxwIGlkPSJp
ZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9w
PgotPHVsPgotICAgPGxpPjwvbGk+Ci08L3VsPgotPHVsPgotICAgPGxpPjwvbGk+Ci08L3VsPgot
PC9kaXY+Ci09PT09PT09PT09Pjg9PT09PT09PT09Ci0KLQotCi0KLQotUnVubmluZzogdGVzdEVk
aXRUd29Sb290cwotV3JhcHBlciBpZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50IE5vZGVJbnNlcnRl
ZDogRElWCi09PT09PT09PT09ODw9PT09PT09PT09Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxl
PSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3
dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBldGMuLjwvcD4KLTxo
Mj5HZXR0aW5nIGludm9sdmVkPC9oMj4KLTxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkg
d2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgotPHVsPgotICAgPGxpPjwvbGk+Ci08
L3VsPgotPHVsPgotICAgPGxpPjwvbGk+Ci08L3VsPgotPC9kaXY+Ci09PT09PT09PT09Pjg9PT09
PT09PT09Ci0KLUJyaW5naW5nIHRoaW5ncyBiYWNrCi0KLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50
aXR5Ci09PT09PT09PT09ODw9PT09PT09PT09Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJk
aXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5h
cHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBldGMuLjwvcD4KLTxoMj5H
ZXR0aW5nIGludm9sdmVkPC9oMj4KLTxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5
cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgotPHVsPgotICAgPGxpPjwvbGk+Ci08L3Vs
PgotPHVsPgotICAgPGxpPjwvbGk+Ci08L3VsPgotPC9kaXY+Ci09PT09PT09PT09Pjg9PT09PT09
PT09Ci0KLQotCi0KLQotUnVubmluZzogdGVzdER1cGVOb2RlCi1SZXBsYWNpbmcgJzxoMj5HZXR0
aW5nIGludm9sdmVkPC9oMj4nIHdpdGggJzxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj48aDI+R2V0
dGluZyBpbnZvbHZlZDwvaDI+JwotCi1XcmFwcGVyIGlkZW50aXR5OiBpZGVudGl0eQotRXZlbnQg
Tm9kZUluc2VydGVkOiBIMgotRXZlbnQgTm9kZUluc2VydGVkOiBIMgotRXZlbnQgTm9kZVJlbW92
ZWQ6IEgyCi09PT09PT09PT09ODw9PT09PT09PT09Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxl
PSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3
dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBldGMuLjwvcD4KLTxo
Mj5HZXR0aW5nIGludm9sdmVkPC9oMj48aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+Ci08cCBpZD0i
aWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwv
cD4KLTx1bD4KLSAgIDxsaT48L2xpPgotPC91bD4KLTx1bD4KLSAgIDxsaT48L2xpPgotPC91bD4K
LTwvZGl2PgotPT09PT09PT09PT44PT09PT09PT09PQotCi1CcmluZ2luZyB0aGluZ3MgYmFjawot
Ci1XcmFwcGVyIGlkZW50aXR5OiBpZGVudGl0eQotRXZlbnQgTm9kZVJlbW92ZWQ6IEgyCi09PT09
PT09PT09ODw9PT09PT09PT09Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5v
bmUiPgotPHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20v
c2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBldGMuLjwvcD4KLTxoMj5HZXR0aW5nIGlu
dm9sdmVkPC9oMj4KLTxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQg
aW52b2x2ZWQuIFlvdSBjYW46PC9wPgotPHVsPgotICAgPGxpPjwvbGk+Ci08L3VsPgotPHVsPgot
ICAgPGxpPjwvbGk+Ci08L3VsPgotPC9kaXY+Ci09PT09PT09PT09Pjg9PT09PT09PT09Ci0KLQot
Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRl
ci1odG1sLTIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXIt
aHRtbC0yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhOGQxOTYuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLTIu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci0KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2V0LW91dGVyLWh0bWwtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBvbmxvYWQoKQotewotICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJpZGVudGl0eSIpLndyYXBwZXJJZGVudGl0eSA9ICJpZGVudGl0
eSI7Ci0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0
b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRVcChuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNldFVwVGVzdFN1aXRlKG5leHQp
OwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RDaGFuZ2VNdWx0aXBsZVRoaW5n
cyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdGV4dCA9IEluc3BlY3RvclRlc3Qu
Y29udGFpbmVyVGV4dC5yZXBsYWNlKC88bGk+Lio8XC9saT4vLCAiIik7Ci0gICAgICAgICAgICB0
ZXh0ID0gdGV4dC5yZXBsYWNlKCI8aDI+IiwgIjxoMiBmb289XCJiYXJcIiBiYXI9XCJiYXpcIj4i
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0T3V0ZXJIVE1MKHRleHQsIG5leHQpOwot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RDaGFuZ2VOZXN0aW5nTGV2ZWwobmV4
dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHRleHQgPSBJbnNwZWN0b3JUZXN0LmNvbnRh
aW5lclRleHQucmVwbGFjZSgiPHVsPiIsICI8ZGl2Pjx1bD4iKTsKLSAgICAgICAgICAgIHZhciB0
ZXh0ID0gdGV4dC5yZXBsYWNlKCI8L3VsPiIsICI8L3VsPjwvZGl2PiIpOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZXRPdXRlckhUTUwodGV4dCwgbmV4dCk7Ci0gICAgICAgIH0sCi0KLSAg
ICAgICAgZnVuY3Rpb24gdGVzdFN3YXBOb2RlcyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICB2YXIgdGV4dCA9IEluc3BlY3RvclRlc3QuY29udGFpbmVyVGV4dC5yZXBsYWNlKCI8aDI+R2V0
dGluZyBpbnZvbHZlZDwvaDI+IiwgIiIpOwotICAgICAgICAgICAgdmFyIHRleHQgPSB0ZXh0LnJl
cGxhY2UoIjwvZGl2PiIsICI8aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+PC9kaXY+Iik7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNldE91dGVySFRNTCh0ZXh0LCBuZXh0KTsKLSAgICAgICAg
fSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0RWRpdFR3b1Jvb3RzKG5leHQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHZhciB0ZXh0ID0gSW5zcGVjdG9yVGVzdC5jb250YWluZXJUZXh0ICsgIjxk
aXY+QWRkaXRpb25hbCBub2RlPC9kaXY+IjsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0
T3V0ZXJIVE1MKHRleHQsIG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3REdXBlTm9kZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBh
dGNoT3V0ZXJIVE1MKCI8aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+IiwgIjxoMj5HZXR0aW5nIGlu
dm9sdmVkPC9oMj48aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+IiwgbmV4dCk7Ci0gICAgICAgIH0K
LSAgICBdKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9Im9ubG9hZCgp
Ij4KLTxwPgotVGVzdHMgRE9NQWdlbnQuc2V0T3V0ZXJIVE1MIHByb3RvY29sIG1ldGhvZCAocGFy
dCAyKS4KLTwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4K
LTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFy
aS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+Ci08aDI+R2V0dGluZyBpbnZvbHZl
ZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9s
dmVkLiBZb3UgY2FuOjwvcD4KLTx1bD4KLSAgIDxsaT48L2xpPgotPC91bD4KLTx1bD4KLSAgIDxs
aT48L2xpPgotPC91bD4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtYm9keS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtYm9k
eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0ZGMyODQuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1s
LWJvZHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotVGVzdHMg
RE9NQWdlbnQuc2V0T3V0ZXJIVE1MIGludm9rZWQgb24gYm9keSB0YWcuIFNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNzIuIAotCi0KLVJ1bm5pbmc6IHRlc3RT
ZXRVcAotCi1SdW5uaW5nOiB0ZXN0U2V0Qm9keQotPGh0bWwgaWQ9Imh0bWwiPjxoZWFkIGlkPSJo
ZWFkIj4KLTxzY3JpcHQ+Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pk5ldyBib2R5IGNvbnRl
bnQ8L2JvZHk+PC9odG1sPgotCi1SdW5uaW5nOiB0ZXN0SW5zZXJ0Q29tbWVudHMKLTxodG1sIGlk
PSJodG1sIj48aGVhZCBpZD0iaGVhZCI+Ci08c2NyaXB0PgotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
IS0tIG5ldyBjb21tZW50IGJldHdlZW4gaGVhZCBhbmQgYm9keSAtLT48Ym9keT5OZXcgYm9keSBj
b250ZW50PC9ib2R5PjwvaHRtbD4KLQotUnVubmluZzogdGVzdFNldEhlYWQKLTxodG1sIGlkPSJo
dG1sIj48aGVhZD48IS0tIG5ldyBoZWFkIGNvbnRlbnQgLS0+PC9oZWFkPgotPCEtLSBuZXcgY29t
bWVudCBiZXR3ZWVuIGhlYWQgYW5kIGJvZHkgLS0+PGJvZHk+TmV3IGJvZHkgY29udGVudDwvYm9k
eT48L2h0bWw+Ci0KLVJ1bm5pbmc6IHRlc3RTZXRIVE1MCi08aHRtbD48aGVhZD48IS0tIG5ldyBo
ZWFkIGNvbnRlbnQgLS0+PC9oZWFkPjxib2R5PlNldHRpbmcgYm9keSBhcyBhIHBhcnQgb2YgSFRN
TC48L2JvZHk+PC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvc2V0LW91dGVyLWh0bWwtYm9keS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL3NldC1vdXRlci1odG1sLWJvZHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZGNmZGY5Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvc2V0LW91dGVyLWh0bWwtYm9keS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBodG1sTm9kZTsKLSAgICB2YXIgYm9keU5vZGU7
Ci0gICAgdmFyIGhlYWROb2RlOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwot
ICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0VXAobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUoc3RlcDEpOwotICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGh0bWxOb2RlID0g
SW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoImh0bWwiKTsKLSAgICAgICAgICAgICAg
ICBoZWFkTm9kZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElkKCJoZWFkIik7Ci0g
ICAgICAgICAgICAgICAgYm9keU5vZGUgPSBJbnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJ
ZCgiYm9keSIpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0Qm9keShuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICBET01BZ2VudC5zZXRPdXRlckhUTUwoYm9keU5vZGUuaWQsICI8Ym9keT5OZXcg
Ym9keSBjb250ZW50PC9ib2R5PiIsIGR1bXBIVE1MKG5leHQpKTsKLSAgICAgICAgfSwKLQotICAg
ICAgICBmdW5jdGlvbiB0ZXN0SW5zZXJ0Q29tbWVudHMobmV4dCkKLSAgICAgICAgewotICAgICAg
ICAgICAgRE9NQWdlbnQuc2V0T3V0ZXJIVE1MKGJvZHlOb2RlLmlkLCAiPCEtLSBuZXcgY29tbWVu
dCBiZXR3ZWVuIGhlYWQgYW5kIGJvZHkgLS0+PGJvZHk+TmV3IGJvZHkgY29udGVudDwvYm9keT4i
LCBkdW1wSFRNTChuZXh0KSk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNl
dEhlYWQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgRE9NQWdlbnQuc2V0T3V0ZXJIVE1M
KGhlYWROb2RlLmlkLCAiPGhlYWQ+PCEtLSBuZXcgaGVhZCBjb250ZW50IC0tPjwvaGVhZD4iLCBk
dW1wSFRNTChuZXh0KSk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRI
VE1MKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIERPTUFnZW50LnNldE91dGVySFRNTCho
dG1sTm9kZS5pZCwgIjxodG1sPjxoZWFkPjwhLS0gbmV3IGhlYWQgY29udGVudCAtLT48L2hlYWQ+
PGJvZHk+U2V0dGluZyBib2R5IGFzIGEgcGFydCBvZiBIVE1MLjwvYm9keT48L2h0bWw+IiwgZHVt
cEhUTUwobmV4dCkpOwotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBmdW5jdGlvbiBkdW1wSFRN
TChuZXh0KQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gZHVtcCgpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIERPTUFnZW50LmdldE91dGVySFRNTChodG1sTm9kZS5pZCwgY2FsbGJhY2spOwotICAg
ICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHRleHQpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZXJyb3IgPyBlcnJvciA6IHRl
eHQpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gZHVtcDsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHk+Ci08cD4KLVRlc3RzIERPTUFnZW50LnNldE91dGVySFRNTCBpbnZva2VkIG9uIGJvZHkgdGFn
LiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjcyLgotPGlm
cmFtZSBzcmM9InJlc291cmNlcy9zZXQtb3V0ZXItaHRtbC1ib2R5LWlmcmFtZS5odG1sIiBvbmxv
YWQ9InJ1blRlc3QoKSI+PC9pZnJhbWU+Ci08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGZjNjgwNi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYwICswLDAgQEAKLVRlc3RzIERPTUFnZW50
LnNldE91dGVySFRNTCBwcm90b2NvbCBtZXRob2QuCi0KLQotUnVubmluZzogdGVzdFNldFVwCi0K
LVJ1bm5pbmc6IHRlc3RDaGFuZ2VDaGFyYWN0ZXJEYXRhCi1SZXBsYWNpbmcgJ0dldHRpbmcgaW52
b2x2ZWQnIHdpdGggJ0dldHRpbmcgbm90IGludm9sdmVkJwotCi1XcmFwcGVyIGlkZW50aXR5OiBp
ZGVudGl0eQotRXZlbnQgQ2hhcmFjdGVyRGF0YU1vZGlmaWVkOiAKLT09PT09PT09PT04PD09PT09
PT09PT0KLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJL
aXQgaXMgdXNlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZh
cmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy4uPC9wPgotPGgyPkdldHRpbmcgbm90IGludm9sdmVkPC9o
Mj4KLTxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQu
IFlvdSBjYW46PC9wPgotPC9kaXY+Ci09PT09PT09PT09Pjg9PT09PT09PT09Ci0KLUJyaW5naW5n
IHRoaW5ncyBiYWNrCi0KLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5Ci1FdmVudCBDaGFyYWN0
ZXJEYXRhTW9kaWZpZWQ6IAotPT09PT09PT09PTg8PT09PT09PT09PQotPGRpdiBpZD0iY29udGFp
bmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KLTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9
Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRj
Li48L3A+Ci08aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJl
IGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTwvZGl2PgotPT09
PT09PT09PT44PT09PT09PT09PQotCi0KLQotCi0KLVJ1bm5pbmc6IHRlc3RDaGFuZ2VBdHRyaWJ1
dGVzCi1SZXBsYWNpbmcgJzxhIGhyZWYnIHdpdGggJzxhIGZvbz0iYmFyIiBocmVmJwotCi1XcmFw
cGVyIGlkZW50aXR5OiBpZGVudGl0eQotRXZlbnQgQXR0ck1vZGlmaWVkOiBBCi1FdmVudCBBdHRy
TW9kaWZpZWQ6IEEKLUV2ZW50IEF0dHJSZW1vdmVkOiBBCi09PT09PT09PT09ODw9PT09PT09PT09
Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlz
IHVzZWQgYnkgPGEgZm9vPSJiYXIiIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8i
PlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+Ci08aDI+R2V0dGluZyBpbnZvbHZlZDwv
aDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVk
LiBZb3UgY2FuOjwvcD4KLTwvZGl2PgotPT09PT09PT09PT44PT09PT09PT09PQotCi1CcmluZ2lu
ZyB0aGluZ3MgYmFjawotCi1XcmFwcGVyIGlkZW50aXR5OiBpZGVudGl0eQotRXZlbnQgQXR0ck1v
ZGlmaWVkOiBBCi1FdmVudCBBdHRyUmVtb3ZlZDogQQotRXZlbnQgQXR0clJlbW92ZWQ6IEEKLT09
PT09PT09PT04PD09PT09PT09PT0KLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6
bm9uZSI+Ci08cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNv
bS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy4uPC9wPgotPGgyPkdldHRpbmcg
aW52b2x2ZWQ8L2gyPgotPHAgaWQ9ImlkZW50aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdl
dCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Ci08L2Rpdj4KLT09PT09PT09PT0+OD09PT09PT09PT0K
LQotCi0KLQotCi1SdW5uaW5nOiB0ZXN0UmVtb3ZlTGFzdENoaWxkCi1SZXBsYWNpbmcgJ0dldHRp
bmcgaW52b2x2ZWQnIHdpdGggJycKLQotV3JhcHBlciBpZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50
IE5vZGVSZW1vdmVkOiAKLT09PT09PT09PT04PD09PT09PT09PT0KLTxkaXYgaWQ9ImNvbnRhaW5l
ciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBocmVmPSJo
dHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy4u
PC9wPgotPGgyPjwvaDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8g
Z2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTwvZGl2PgotPT09PT09PT09PT44PT09PT09PT09
PQotCi1CcmluZ2luZyB0aGluZ3MgYmFjawotCi1XcmFwcGVyIGlkZW50aXR5OiBpZGVudGl0eQot
RXZlbnQgTm9kZUluc2VydGVkOiAKLT09PT09PT09PT04PD09PT09PT09PT0KLTxkaXYgaWQ9ImNv
bnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBo
cmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQs
IGV0Yy4uPC9wPgotPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPgotPHAgaWQ9ImlkZW50aXR5Ij5U
aGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Ci08L2Rpdj4K
LT09PT09PT09PT0+OD09PT09PT09PT0KLQotCi0KLQotCi1SdW5uaW5nOiB0ZXN0U3BsaXROb2Rl
Ci1SZXBsYWNpbmcgJ0dldHRpbmcgaW52b2x2ZWQnIHdpdGggJ0dldHRpbmc8L2gyPjxoMj5pbnZv
bHZlZCcKLQotV3JhcHBlciBpZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50IE5vZGVJbnNlcnRlZDog
SDIKLUV2ZW50IE5vZGVJbnNlcnRlZDogSDIKLUV2ZW50IE5vZGVSZW1vdmVkOiBIMgotPT09PT09
PT09PTg8PT09PT09PT09PQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25l
Ij4KLTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3Nh
ZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+Ci08aDI+R2V0dGluZzwvaDI+
PGgyPmludm9sdmVkPC9oMj4KLTxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0
byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgotPC9kaXY+Ci09PT09PT09PT09Pjg9PT09PT09
PT09Ci0KLUJyaW5naW5nIHRoaW5ncyBiYWNrCi0KLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5
Ci1FdmVudCBOb2RlSW5zZXJ0ZWQ6IEgyCi1FdmVudCBOb2RlUmVtb3ZlZDogSDIKLUV2ZW50IE5v
ZGVSZW1vdmVkOiBIMgotPT09PT09PT09PTg8PT09PT09PT09PQotPGRpdiBpZD0iY29udGFpbmVy
IiBzdHlsZT0iZGlzcGxheTpub25lIj4KLTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0
dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48
L3A+Ci08aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFy
ZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTwvZGl2PgotPT09PT09
PT09PT44PT09PT09PT09PQotCi0KLQotCi0KLVJ1bm5pbmc6IHRlc3RDaGFuZ2VOb2RlTmFtZQot
UmVwbGFjaW5nICc8aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+JyB3aXRoICc8aDM+R2V0dGluZyBp
bnZvbHZlZDwvaDM+JwotCi1XcmFwcGVyIGlkZW50aXR5OiBpZGVudGl0eQotRXZlbnQgTm9kZUlu
c2VydGVkOiBIMwotRXZlbnQgTm9kZVJlbW92ZWQ6IEgyCi09PT09PT09PT09ODw9PT09PT09PT09
Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlz
IHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9h
PiwgRGFzaGJvYXJkLCBldGMuLjwvcD4KLTxoMz5HZXR0aW5nIGludm9sdmVkPC9oMz4KLTxwIGlk
PSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46
PC9wPgotPC9kaXY+Ci09PT09PT09PT09Pjg9PT09PT09PT09Ci0KLUJyaW5naW5nIHRoaW5ncyBi
YWNrCi0KLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5Ci1FdmVudCBOb2RlSW5zZXJ0ZWQ6IEgy
Ci1FdmVudCBOb2RlUmVtb3ZlZDogSDMKLT09PT09PT09PT04PD09PT09PT09PT0KLTxkaXYgaWQ9
ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJLaXQgaXMgdXNlZCBieSA8
YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9h
cmQsIGV0Yy4uPC9wPgotPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPgotPHAgaWQ9ImlkZW50aXR5
Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Ci08L2Rp
dj4KLT09PT09PT09PT0+OD09PT09PT09PT0KLQotCi0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtZm9yLXhodG1sLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC1mb3It
eGh0bWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWU5ZTNm
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXIt
aHRtbC1mb3IteGh0bWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTY1ICswLDAg
QEAKLVRlc3RzIERPTUFnZW50LnNldE91dGVySFRNTCBwcm90b2NvbCBtZXRob2QgYWdhaW5zdCBh
biBYSFRNTCBkb2N1bWVudC4KLQotCi1SdW5uaW5nOiB0ZXN0U2V0VXAKLQotUnVubmluZzogdGVz
dENoYW5nZUNoYXJhY3RlckRhdGEKLVJlcGxhY2luZyAnR2V0dGluZyBpbnZvbHZlZCcgd2l0aCAn
R2V0dGluZyBub3QgaW52b2x2ZWQnCi0KLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5Ci1FdmVu
dCBBdHRyTW9kaWZpZWQ6IGRpdgotRXZlbnQgQXR0ck1vZGlmaWVkOiBkaXYKLUV2ZW50IEF0dHJN
b2RpZmllZDogZGl2Ci1FdmVudCBBdHRyUmVtb3ZlZDogZGl2Ci1FdmVudCBBdHRyUmVtb3ZlZDog
ZGl2Ci1FdmVudCBDaGFyYWN0ZXJEYXRhTW9kaWZpZWQ6IAotPT09PT09PT09PTg8PT09PT09PT09
PQotPGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgaWQ9ImNvbnRhaW5l
ciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBocmVmPSJo
dHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy48
L3A+Ci08aDI+R2V0dGluZyBub3QgaW52b2x2ZWQ8L2gyPgotPHAgaWQ9ImlkZW50aXR5Ij5UaGVy
ZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Ci08L2Rpdj4KLT09
PT09PT09PT0+OD09PT09PT09PT0KLQotQnJpbmdpbmcgdGhpbmdzIGJhY2sKLQotV3JhcHBlciBp
ZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50IENoYXJhY3RlckRhdGFNb2RpZmllZDogCi09PT09PT09
PT09ODw9PT09PT09PT09Ci08ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KLTxwPldlYktpdCBpcyB1c2Vk
IGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwvYT4sIERh
c2hib2FyZCwgZXRjLjwvcD4KLTxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj4KLTxwIGlkPSJpZGVu
dGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgot
PC9kaXY+Ci09PT09PT09PT09Pjg9PT09PT09PT09Ci0KLQotCi0KLQotUnVubmluZzogdGVzdENo
YW5nZUF0dHJpYnV0ZXMKLVJlcGxhY2luZyAnPGEgaHJlZicgd2l0aCAnPGEgZm9vPSJiYXIiIGhy
ZWYnCi0KLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5Ci1FdmVudCBBdHRyTW9kaWZpZWQ6IGEK
LUV2ZW50IEF0dHJNb2RpZmllZDogYQotRXZlbnQgQXR0clJlbW92ZWQ6IGEKLT09PT09PT09PT04
PD09PT09PT09PT0KLTxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGlk
PSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlzIHVzZWQgYnkg
PGEgZm9vPSJiYXIiIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwv
YT4sIERhc2hib2FyZCwgZXRjLjwvcD4KLTxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj4KLTxwIGlk
PSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46
PC9wPgotPC9kaXY+Ci09PT09PT09PT09Pjg9PT09PT09PT09Ci0KLUJyaW5naW5nIHRoaW5ncyBi
YWNrCi0KLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5Ci1FdmVudCBBdHRyTW9kaWZpZWQ6IGEK
LUV2ZW50IEF0dHJSZW1vdmVkOiBhCi1FdmVudCBBdHRyUmVtb3ZlZDogYQotPT09PT09PT09PTg8
PT09PT09PT09PQotPGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgaWQ9
ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJLaXQgaXMgdXNlZCBieSA8
YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9h
cmQsIGV0Yy48L3A+Ci08aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHki
PlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTwvZGl2
PgotPT09PT09PT09PT44PT09PT09PT09PQotCi0KLQotCi0KLVJ1bm5pbmc6IHRlc3RSZW1vdmVM
YXN0Q2hpbGQKLVJlcGxhY2luZyAnR2V0dGluZyBpbnZvbHZlZCcgd2l0aCAnJwotCi1XcmFwcGVy
IGlkZW50aXR5OiBpZGVudGl0eQotRXZlbnQgTm9kZVJlbW92ZWQ6IAotPT09PT09PT09PTg8PT09
PT09PT09PQotPGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgaWQ9ImNv
bnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBo
cmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQs
IGV0Yy48L3A+Ci08aDI+PC9oMj4KLTxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5
cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgotPC9kaXY+Ci09PT09PT09PT09Pjg9PT09
PT09PT09Ci0KLUJyaW5naW5nIHRoaW5ncyBiYWNrCi0KLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50
aXR5Ci1FdmVudCBOb2RlSW5zZXJ0ZWQ6IAotPT09PT09PT09PTg8PT09PT09PT09PQotPGRpdiB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgaWQ9ImNvbnRhaW5lciIgc3R5bGU9
ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3
LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy48L3A+Ci08aDI+
R2V0dGluZyBpbnZvbHZlZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdh
eXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTwvZGl2PgotPT09PT09PT09PT44PT09
PT09PT09PQotCi0KLQotCi0KLVJ1bm5pbmc6IHRlc3RTcGxpdE5vZGUKLVJlcGxhY2luZyAnR2V0
dGluZyBpbnZvbHZlZCcgd2l0aCAnR2V0dGluZzwvaDI+PGgyPmludm9sdmVkJwotCi1XcmFwcGVy
IGlkZW50aXR5OiBpZGVudGl0eQotRXZlbnQgTm9kZUluc2VydGVkOiBoMgotRXZlbnQgTm9kZUlu
c2VydGVkOiBoMgotRXZlbnQgTm9kZVJlbW92ZWQ6IGgyCi09PT09PT09PT09ODw9PT09PT09PT09
Ci08ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBpZD0iY29udGFpbmVy
IiBzdHlsZT0iZGlzcGxheTpub25lIj4KLTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0
dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLjwv
cD4KLTxoMj5HZXR0aW5nPC9oMj48aDI+aW52b2x2ZWQ8L2gyPgotPHAgaWQ9ImlkZW50aXR5Ij5U
aGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Ci08L2Rpdj4K
LT09PT09PT09PT0+OD09PT09PT09PT0KLQotQnJpbmdpbmcgdGhpbmdzIGJhY2sKLQotV3JhcHBl
ciBpZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50IE5vZGVJbnNlcnRlZDogaDIKLUV2ZW50IE5vZGVS
ZW1vdmVkOiBoMgotRXZlbnQgTm9kZVJlbW92ZWQ6IGgyCi09PT09PT09PT09ODw9PT09PT09PT09
Ci08ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBpZD0iY29udGFpbmVy
IiBzdHlsZT0iZGlzcGxheTpub25lIj4KLTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0
dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLjwv
cD4KLTxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj4KLTxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJl
IG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgotPC9kaXY+Ci09PT09PT09
PT09Pjg9PT09PT09PT09Ci0KLQotCi0KLQotUnVubmluZzogdGVzdENoYW5nZU5vZGVOYW1lCi1S
ZXBsYWNpbmcgJzxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj4nIHdpdGggJzxoMz5HZXR0aW5nIGlu
dm9sdmVkPC9oMz4nCi0KLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5Ci1FdmVudCBOb2RlSW5z
ZXJ0ZWQ6IGgzCi1FdmVudCBOb2RlUmVtb3ZlZDogaDIKLT09PT09PT09PT04PD09PT09PT09PT0K
LTxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGlkPSJjb250YWluZXIi
IHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJlZj0iaHR0
cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBldGMuPC9w
PgotPGgzPkdldHRpbmcgaW52b2x2ZWQ8L2gzPgotPHAgaWQ9ImlkZW50aXR5Ij5UaGVyZSBhcmUg
bWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Ci08L2Rpdj4KLT09PT09PT09
PT0+OD09PT09PT09PT0KLQotQnJpbmdpbmcgdGhpbmdzIGJhY2sKLQotV3JhcHBlciBpZGVudGl0
eTogaWRlbnRpdHkKLUV2ZW50IE5vZGVJbnNlcnRlZDogaDIKLUV2ZW50IE5vZGVSZW1vdmVkOiBo
MwotPT09PT09PT09PTg8PT09PT09PT09PQotPGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCIgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJL
aXQgaXMgdXNlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZh
cmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy48L3A+Ci08aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+Ci08
cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3Ug
Y2FuOjwvcD4KLTwvZGl2PgotPT09PT09PT09PT44PT09PT09PT09PQotCi0KLQotCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC1mb3It
eGh0bWwueGh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0
bWwtZm9yLXhodG1sLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDIwYWMy
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXIt
aHRtbC1mb3IteGh0bWwueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi08aHRt
bCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLQotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzZXQtb3V0ZXItaHRtbC10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0vLzwhW0NEQVRBWwotCi1mdW5jdGlvbiBvbmxvYWQoKQotewot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZGVudGl0eSIpLndyYXBwZXJJZGVudGl0eSA9
ICJpZGVudGl0eSI7Ci0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAg
ICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRV
cChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNldFVwVGVzdFN1
aXRlKG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RDaGFuZ2VDaGFy
YWN0ZXJEYXRhKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGF0
Y2hPdXRlckhUTUwoIkdldHRpbmcgaW52b2x2ZWQiLCAiR2V0dGluZyBub3QgaW52b2x2ZWQiLCBu
ZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0Q2hhbmdlQXR0cmlidXRl
cyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhdGNoT3V0ZXJI
VE1MKCI8YSBocmVmIiwgIjxhIGZvbz1cImJhclwiIGhyZWYiLCBuZXh0KTsKLSAgICAgICAgfSwK
LQotICAgICAgICBmdW5jdGlvbiB0ZXN0UmVtb3ZlTGFzdENoaWxkKG5leHQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGF0Y2hPdXRlckhUTUwoIkdldHRpbmcgaW52b2x2
ZWQiLCAiIiwgbmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNwbGl0
Tm9kZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhdGNoT3V0
ZXJIVE1MKCJHZXR0aW5nIGludm9sdmVkIiwgIkdldHRpbmc8L2gyPjxoMj5pbnZvbHZlZCIsIG5l
eHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RDaGFuZ2VOb2RlTmFtZShu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhdGNoT3V0ZXJIVE1M
KCI8aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+IiwgIjxoMz5HZXR0aW5nIGludm9sdmVkPC9oMz4i
LCBuZXh0KTsKLSAgICAgICAgfQotICAgIF0pOwotfQotLy9dXT4KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KLTxwPgotVGVzdHMgRE9NQWdlbnQuc2V0T3V0
ZXJIVE1MIHByb3RvY29sIG1ldGhvZCBhZ2FpbnN0IGFuIFhIVE1MIGRvY3VtZW50LgotPC9wPgot
Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlz
IHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9h
PiwgRGFzaGJvYXJkLCBldGMuPC9wPgotPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPgotPHAgaWQ9
ImlkZW50aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8
L3A+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtdGVzdC5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMGYzMWYxMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtdGVzdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEx
MSArMCwwIEBACi12YXIgaW5pdGlhbGl6ZV9TZXRPdXRlckhUTUxUZXN0ID0gZnVuY3Rpb24oKSB7
Ci0KLUluc3BlY3RvclRlc3QuZXZlbnRzID0gW107Ci1JbnNwZWN0b3JUZXN0LmNvbnRhaW5lcklk
OwotCi1JbnNwZWN0b3JUZXN0LnNldFVwVGVzdFN1aXRlID0gZnVuY3Rpb24obmV4dCkKLXsKLSAg
ICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShzdGVwMSk7Ci0KLSAgICBmdW5jdGlv
biBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQo
ImNvbnRhaW5lciIsIHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMihub2RlKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb250YWluZXJJZCA9IG5vZGUuaWQ7Ci0gICAg
ICAgIERPTUFnZW50LmdldE91dGVySFRNTChJbnNwZWN0b3JUZXN0LmNvbnRhaW5lcklkLCBzdGVw
Myk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoZXJyb3IsIHRleHQpCi0gICAgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbnRhaW5lclRleHQgPSB0ZXh0OwotCi0gICAgICAgIGZvciAo
dmFyIGtleSBpbiBXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzKSB7Ci0gICAgICAgICAgICB2
YXIgZXZlbnROYW1lID0gV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50c1trZXldOwotICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBJ
bnNwZWN0b3JUZXN0LnJlY29yZEV2ZW50LmJpbmQoSW5zcGVjdG9yVGVzdCwgZXZlbnROYW1lKSk7
Ci0gICAgICAgIH0KLQotICAgICAgICBuZXh0KCk7Ci0gICAgfQotfQotCi1JbnNwZWN0b3JUZXN0
LnJlY29yZEV2ZW50ID0gZnVuY3Rpb24oZXZlbnROYW1lLCBldmVudCkKLXsKLSAgICBpZiAoIWV2
ZW50LmRhdGEpCi0gICAgICAgIHJldHVybjsKLSAgICB2YXIgbm9kZSA9IGV2ZW50LmRhdGEubm9k
ZSB8fCBldmVudC5kYXRhOwotICAgIHZhciBwYXJlbnQgPSBldmVudC5kYXRhLnBhcmVudDsKLSAg
ICBmb3IgKHZhciBjdXJyZW50Tm9kZSA9IHBhcmVudCB8fCBub2RlOyBjdXJyZW50Tm9kZTsgY3Vy
cmVudE5vZGUgPSBjdXJyZW50Tm9kZS5wYXJlbnROb2RlKSB7Ci0gICAgICAgIGlmIChjdXJyZW50
Tm9kZS5nZXRBdHRyaWJ1dGUoImlkIikgPT09ICJvdXRwdXQiKQotICAgICAgICAgICAgcmV0dXJu
OwotICAgIH0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50cy5wdXNoKCJFdmVudCAiICsgZXZlbnRO
YW1lICsgIjogIiArIG5vZGUubm9kZU5hbWUoKSk7Ci19Ci0KLUluc3BlY3RvclRlc3QucGF0Y2hP
dXRlckhUTUwgPSBmdW5jdGlvbihwYXR0ZXJuLCByZXBsYWNlbWVudCwgbmV4dCkKLXsKLSAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVwbGFjaW5nICciICsgcGF0dGVybiArICInIHdpdGgg
JyIgKyByZXBsYWNlbWVudCArICInXG4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LnNldE91dGVySFRN
TChJbnNwZWN0b3JUZXN0LmNvbnRhaW5lclRleHQucmVwbGFjZShwYXR0ZXJuLCByZXBsYWNlbWVu
dCksIG5leHQpOwotfQotCi1JbnNwZWN0b3JUZXN0LnBhdGNoT3V0ZXJIVE1MVXNlVW5kbyA9IGZ1
bmN0aW9uKHBhdHRlcm4sIHJlcGxhY2VtZW50LCBuZXh0KQotewotICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJSZXBsYWNpbmcgJyIgKyBwYXR0ZXJuICsgIicgd2l0aCAnIiArIHJlcGxhY2Vt
ZW50ICsgIidcbiIpOwotICAgIEluc3BlY3RvclRlc3Quc2V0T3V0ZXJIVE1MVXNlVW5kbyhJbnNw
ZWN0b3JUZXN0LmNvbnRhaW5lclRleHQucmVwbGFjZShwYXR0ZXJuLCByZXBsYWNlbWVudCksIG5l
eHQpOwotfQotCi1JbnNwZWN0b3JUZXN0LnNldE91dGVySFRNTCA9IGZ1bmN0aW9uKG5ld1RleHQs
IG5leHQpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5pbm5lclNldE91dGVySFRNTChuZXdUZXh0LCBm
YWxzZSwgYnJpbmdCYWNrKTsKLQotICAgIGZ1bmN0aW9uIGJyaW5nQmFjaygpCi0gICAgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiXG5CcmluZ2luZyB0aGluZ3MgYmFja1xuIik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuaW5uZXJTZXRPdXRlckhUTUwoSW5zcGVjdG9yVGVzdC5j
b250YWluZXJUZXh0LCB0cnVlLCBuZXh0KTsKLSAgICB9Ci19Ci0KLUluc3BlY3RvclRlc3Quc2V0
T3V0ZXJIVE1MVXNlVW5kbyA9IGZ1bmN0aW9uKG5ld1RleHQsIG5leHQpCi17Ci0gICAgSW5zcGVj
dG9yVGVzdC5pbm5lclNldE91dGVySFRNTChuZXdUZXh0LCBmYWxzZSwgYnJpbmdCYWNrKTsKLQot
ICAgIGZ1bmN0aW9uIGJyaW5nQmFjaygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiXG5CcmluZ2luZyB0aGluZ3MgYmFja1xuIik7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5kb21BZ2VudC51bmRvKEluc3BlY3RvclRlc3QuX2R1bXBPdXRlckhUTUwuYmluZChJbnNwZWN0
b3JUZXN0LCB0cnVlLCBuZXh0KSk7Ci0gICAgfQotfQotCi1JbnNwZWN0b3JUZXN0LmlubmVyU2V0
T3V0ZXJIVE1MID0gZnVuY3Rpb24obmV3VGV4dCwgbGFzdCwgbmV4dCkKLXsKLSAgICBET01BZ2Vu
dC5zZXRPdXRlckhUTUwoSW5zcGVjdG9yVGVzdC5jb250YWluZXJJZCwgbmV3VGV4dCwgSW5zcGVj
dG9yVGVzdC5fZHVtcE91dGVySFRNTC5iaW5kKEluc3BlY3RvclRlc3QsIGxhc3QsIG5leHQpKTsK
LX0KLQotSW5zcGVjdG9yVGVzdC5fZHVtcE91dGVySFRNTCA9IGZ1bmN0aW9uKGxhc3QsIG5leHQp
Ci17Ci0gICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChc
ImlkZW50aXR5XCIpLndyYXBwZXJJZGVudGl0eSIsIGR1bXBJZGVudGl0eSk7Ci0gICAgZnVuY3Rp
b24gZHVtcElkZW50aXR5KGVycm9yLCByZXN1bHQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiV3JhcHBlciBpZGVudGl0eTogIiArIHJlc3VsdC52YWx1ZSk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuZXZlbnRzLnNvcnQoKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBJbnNwZWN0b3JUZXN0LmV2ZW50cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KEluc3BlY3RvclRlc3QuZXZlbnRzW2ldKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmVudHMgPSBbXTsKLSAgICB9Ci0KLSAgICBET01BZ2VudC5nZXRPdXRlckhU
TUwoSW5zcGVjdG9yVGVzdC5jb250YWluZXJJZCwgY2FsbGJhY2spOwotCi0gICAgZnVuY3Rpb24g
Y2FsbGJhY2soZXJyb3IsIHRleHQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiPT09PT09PT09PTg8PT09PT09PT09PSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCh0ZXh0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09
PT0+OD09PT09PT09PT0iKTsKLSAgICAgICAgaWYgKGxhc3QpCi0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiXG5cblxuIik7Ci0gICAgICAgIG5leHQoKTsKLSAgICB9Ci19Ci0K
LX07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVy
LWh0bWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRt
bC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MmNlNzhhLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLQotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzZXQtb3V0ZXItaHRtbC10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIG9ubG9hZCgpCi17Ci0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImlkZW50aXR5Iikud3JhcHBlcklkZW50aXR5ID0gImlkZW50aXR5IjsKLSAg
ICBydW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3Qu
cnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldFVwKG5leHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0VXBUZXN0U3VpdGUobmV4dCk7Ci0gICAg
ICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdENoYW5nZUNoYXJhY3RlckRhdGEobmV4dCkK
LSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXRjaE91dGVySFRNTCgiR2V0
dGluZyBpbnZvbHZlZCIsICJHZXR0aW5nIG5vdCBpbnZvbHZlZCIsIG5leHQpOwotICAgICAgICB9
LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RDaGFuZ2VBdHRyaWJ1dGVzKG5leHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGF0Y2hPdXRlckhUTUwoIjxhIGhyZWYiLCAi
PGEgZm9vPVwiYmFyXCIgaHJlZiIsIG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0
aW9uIHRlc3RSZW1vdmVMYXN0Q2hpbGQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5wYXRjaE91dGVySFRNTCgiR2V0dGluZyBpbnZvbHZlZCIsICIiLCBuZXh0KTsK
LSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U3BsaXROb2RlKG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGF0Y2hPdXRlckhUTUwoIkdldHRpbmcg
aW52b2x2ZWQiLCAiR2V0dGluZzwvaDI+PGgyPmludm9sdmVkIiwgbmV4dCk7Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdENoYW5nZU5vZGVOYW1lKG5leHQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGF0Y2hPdXRlckhUTUwoIjxoMj5HZXR0aW5nIGlu
dm9sdmVkPC9oMj4iLCAiPGgzPkdldHRpbmcgaW52b2x2ZWQ8L2gzPiIsIG5leHQpOwotICAgICAg
ICB9Ci0gICAgXSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJvbmxv
YWQoKSI+Ci08cD4KLVRlc3RzIERPTUFnZW50LnNldE91dGVySFRNTCBwcm90b2NvbCBtZXRob2Qu
Ci08L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5X
ZWJLaXQgaXMgdXNlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5T
YWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy48L2E+LjwvcD4KLTxoMj5HZXR0aW5nIGludm9sdmVk
PC9oMj4KLTxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2
ZWQuIFlvdSBjYW46PC9wPgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zaGFkb3ctZG9tLW1vZGlmeS1jaGFyZGF0
YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2hhZG93LWRv
bS1tb2RpZnktY2hhcmRhdGEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyYmU3ZWRjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9zaGFkb3ctZG9tLW1vZGlmeS1jaGFyZGF0YS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyMiArMCwwIEBACi1UZXN0cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHVwZGF0ZXMgc2hhZG93
IGRvbSB0cmVlIHN0cnVjdHVyZSB1cG9uIHR5cGluZy4KLQotCi0KLVJ1bm5pbmc6IHRlc3REdW1w
SW5pdGlhbAotPT09PT09PT09IE9yaWdpbmFsID09PT09PT09Ci0tIDxkaXYgaWQ9ImNvbnRhaW5l
ciI+Ci0gICAgLSA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0MSI+Ci0gICAgICAgIC0gI2Rv
Y3VtZW50LWZyYWdtZW50Ci0gICAgICAgICAgPGRpdj48L2Rpdj4KLSAgICAgIDwvaW5wdXQ+Ci0g
IDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0QXBwZW5kCi09PT09PT09PSBUeXBlIHRleHQgPT09PT09
PT09Ci0tIDxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgLSA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9
ImlucHV0MSI+Ci0gICAgICAgIC0gI2RvY3VtZW50LWZyYWdtZW50Ci0gICAgICAgICsgPGRpdj5C
YXI8L2Rpdj4KLSAgICAgIDwvaW5wdXQ+Ci0gIDwvZGl2PgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2hhZG93LWRvbS1tb2RpZnktY2hhcmRhdGEuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zaGFkb3ctZG9tLW1vZGlmeS1jaGFyZGF0
YS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDAxZTRlLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zaGFkb3ctZG9tLW1vZGlmeS1jaGFy
ZGF0YS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0eXBlVGV4dCgp
Ci17Ci0gICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0MSIpOwot
ICAgIGlucHV0LmZvY3VzKCk7Ci0gICAgZXZlbnRTZW5kZXIua2V5RG93bigiQiIpOwotICAgIGV2
ZW50U2VuZGVyLmtleURvd24oImEiKTsKLSAgICBldmVudFNlbmRlci5rZXlEb3duKCJyIik7Ci19
Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBjb250YWluZXJOb2RlOwotCi0gICAgV2Vi
SW5zcGVjdG9yLnNldHRpbmdzLnNob3dTaGFkb3dET00uc2V0KHRydWUpOwotCi0gICAgSW5zcGVj
dG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0RHVtcEluaXRpYWwo
bmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sobm9kZSkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb250YWluZXJOb2RlID0gSW5zcGVjdG9yVGVz
dC5leHBhbmRlZE5vZGVXaXRoSWQoImNvbnRhaW5lciIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT0gT3JpZ2luYWwgPT09PT09PT0iKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9kZSk7
Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUoY2FsbGJhY2spOwotICAgICAgICB9LAotCi0g
ICAgICAgIGZ1bmN0aW9uIHRlc3RBcHBlbmQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
ZnVuY3Rpb24gY2FsbGJhY2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInR5cGVUZXh0KCkiLCBjYWxsYmFjazIpOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgfQotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sy
KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiPT09PT09PT0gVHlwZSB0ZXh0ID09PT09PT09PSIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKLSAgICAgICAgICAgICAg
ICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFu
ZEVsZW1lbnRzVHJlZShjYWxsYmFjayk7Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhh
dCBlbGVtZW50cyBwYW5lbCB1cGRhdGVzIHNoYWRvdyBkb20gdHJlZSBzdHJ1Y3R1cmUgdXBvbiB0
eXBpbmcuCi08L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PGlucHV0IHR5cGU9InRleHQiIGlk
PSJpbnB1dDEiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NoYWRvdy1yb290LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGVlMGU2ZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhpcyB0ZXN0IHZlcmlmaWVkICNkb2N1bWVudC1mcmFnbWVu
dCBpcyBkaXNwbGF5ZWQgd2hlbiBzaG93U2hhZG93Um9vdCBpcyBlbmFibGVkLgotCi0tIDxkaXYg
aWQ9ImNvbnRhaW5lciI+Ci0gICAgLSA8ZGl2IGlkPSJ0ZXN0MSI+Ci0gICAgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Ci0gICAgICA8L2Rpdj4KLSAgICAtIDxkaXYgaWQ9InRlc3QyIj4KLSAgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKLSAgICAgICAgICAib25seSB0ZXN0IgotICAgICAgPC9k
aXY+Ci0gICAgLSA8ZGl2IGlkPSJ0ZXN0MyI+Ci0gICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Ci0gICAgICAgICAgIndpdGggIgotICAgICAgICAgIDxzcGFuPmVsZW1lbnRzPC9zcGFuPgotICAg
ICAgPC9kaXY+Ci0gIDwvZGl2PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvc2hhZG93LXJvb3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9zaGFkb3ctcm9vdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjkzMTUy
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zaGFkb3ctcm9v
dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBp
bml0aWFsaXplX3NoYWRvd1NldHRpbmdzKCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Mu
c2hvd1NoYWRvd0RPTS5zZXQodHJ1ZSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIElu
c3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIg
Y29udGFpbmVyID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoImNvbnRhaW5lciIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVyKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9KTsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0KLTxwIGlkPSJkZXNjcmlw
dGlvbiI+VGhpcyB0ZXN0IHZlcmlmaWVkICNkb2N1bWVudC1mcmFnbWVudCBpcyBkaXNwbGF5ZWQg
d2hlbiBzaG93U2hhZG93Um9vdCBpcyBlbmFibGVkLjwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVy
Ij4KLSAgICA8ZGl2IGlkPSJ0ZXN0MSI+PC9kaXY+Ci0gICAgPGRpdiBpZD0idGVzdDIiPm9ubHkg
dGVzdDwvZGl2PgotICAgIDxkaXYgaWQ9InRlc3QzIj53aXRoIDxzcGFuPmVsZW1lbnRzPC9zcGFu
PjwvZGl2PgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci10ZXN0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCk7Ci10ZXN0Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci10ZXN0My53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci08L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tZG9tLWVkaXRzLTItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tZG9tLWVkaXRzLTItZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjc2NTAyLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91bmRvLWRvbS1lZGl0cy0yLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLVRlc3RzIHRoYXQgRE9N
IG1vZGlmaWNhdGlvbnMgZG9uZSBpbiB0aGUgRWxlbWVudHMgcGFuZWwgYXJlIHVuZG9hYmxlIChQ
YXJ0IDIpLgotCi0KLVJ1bm5pbmc6IHRlc3RTZXRVcAotCi1SdW5uaW5nOiB0ZXN0U2V0QXR0cmli
dXRlCi1Jbml0aWFsOgotLSA8ZGl2IGlkPSJ0ZXN0U2V0QXR0cmlidXRlIj4KLSAgICAgIDxkaXYg
Zm9vPSJhdHRyaWJ1dGUgdmFsdWUiIGlkPSJub2RlLXRvLXNldC1hdHRyaWJ1dGUiPjwvZGl2Pgot
ICA8L2Rpdj4KLVBvc3QtYWN0aW9uOgotLSA8ZGl2IGlkPSJ0ZXN0U2V0QXR0cmlidXRlIj4KLSAg
ICAgIDxkaXYgaWQ9Im5vZGUtdG8tc2V0LWF0dHJpYnV0ZSIgYmFyPSJlZGl0ZWQgYXR0cmlidXRl
Ij48L2Rpdj4KLSAgPC9kaXY+Ci1Qb3N0LXVuZG8gKGluaXRpYWwpOgotLSA8ZGl2IGlkPSJ0ZXN0
U2V0QXR0cmlidXRlIj4KLSAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tc2V0LWF0dHJpYnV0ZSIgZm9v
PSJhdHRyaWJ1dGUgdmFsdWUiPjwvZGl2PgotICA8L2Rpdj4KLVBvc3QtcmVkbyAoYWN0aW9uKToK
LS0gPGRpdiBpZD0idGVzdFNldEF0dHJpYnV0ZSI+Ci0gICAgICA8ZGl2IGlkPSJub2RlLXRvLXNl
dC1hdHRyaWJ1dGUiIGJhcj0iZWRpdGVkIGF0dHJpYnV0ZSI+PC9kaXY+Ci0gIDwvZGl2PgotCi1S
dW5uaW5nOiB0ZXN0UmVtb3ZlQXR0cmlidXRlCi1Jbml0aWFsOgotLSA8ZGl2IGlkPSJ0ZXN0UmVt
b3ZlQXR0cmlidXRlIj4KLSAgICAgIDxkaXYgZm9vPSJhdHRyaWJ1dGUgdmFsdWUiIGlkPSJub2Rl
LXRvLXJlbW92ZS1hdHRyaWJ1dGUiPjwvZGl2PgotICA8L2Rpdj4KLVBvc3QtYWN0aW9uOgotLSA8
ZGl2IGlkPSJ0ZXN0UmVtb3ZlQXR0cmlidXRlIj4KLSAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tcmVt
b3ZlLWF0dHJpYnV0ZSI+PC9kaXY+Ci0gIDwvZGl2PgotUG9zdC11bmRvIChpbml0aWFsKToKLS0g
PGRpdiBpZD0idGVzdFJlbW92ZUF0dHJpYnV0ZSI+Ci0gICAgICA8ZGl2IGlkPSJub2RlLXRvLXJl
bW92ZS1hdHRyaWJ1dGUiIGZvbz0iYXR0cmlidXRlIHZhbHVlIj48L2Rpdj4KLSAgPC9kaXY+Ci1Q
b3N0LXJlZG8gKGFjdGlvbik6Ci0tIDxkaXYgaWQ9InRlc3RSZW1vdmVBdHRyaWJ1dGUiPgotICAg
ICAgPGRpdiBpZD0ibm9kZS10by1yZW1vdmUtYXR0cmlidXRlIj48L2Rpdj4KLSAgPC9kaXY+Ci0K
LVJ1bm5pbmc6IHRlc3RBZGRBdHRyaWJ1dGUKLUluaXRpYWw6Ci0tIDxkaXYgaWQ9InRlc3RBZGRB
dHRyaWJ1dGUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1hZGQtYXR0cmlidXRlIj48L2Rpdj4K
LSAgPC9kaXY+Ci1Qb3N0LWFjdGlvbjoKLS0gPGRpdiBpZD0idGVzdEFkZEF0dHJpYnV0ZSI+Ci0g
ICAgICA8ZGl2IGlkPSJub2RlLXRvLWFkZC1hdHRyaWJ1dGUiIG5ld2F0dHI9Im5ldy12YWx1ZSI+
PC9kaXY+Ci0gIDwvZGl2PgotUG9zdC11bmRvIChpbml0aWFsKToKLS0gPGRpdiBpZD0idGVzdEFk
ZEF0dHJpYnV0ZSI+Ci0gICAgICA8ZGl2IGlkPSJub2RlLXRvLWFkZC1hdHRyaWJ1dGUiPjwvZGl2
PgotICA8L2Rpdj4KLVBvc3QtcmVkbyAoYWN0aW9uKToKLS0gPGRpdiBpZD0idGVzdEFkZEF0dHJp
YnV0ZSI+Ci0gICAgICA8ZGl2IGlkPSJub2RlLXRvLWFkZC1hdHRyaWJ1dGUiIG5ld2F0dHI9Im5l
dy12YWx1ZSI+PC9kaXY+Ci0gIDwvZGl2PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvdW5kby1kb20tZWRpdHMtMi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL3VuZG8tZG9tLWVkaXRzLTIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDA3ODZjMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvdW5kby1kb20tZWRpdHMtMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgdGVzdFN1aXRlID0gW107Ci0KLSAgICBmdW5jdGlv
biB0ZXN0U2V0VXAobmV4dCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxl
bWVudHNUcmVlKG5leHQpOwotICAgIH0KLSAgICB0ZXN0U3VpdGUucHVzaCh0ZXN0U2V0VXApOwot
Ci0KLSAgICBmdW5jdGlvbiB0ZXN0U2V0QXR0cmlidXRlKGNhbGxiYWNrKQotICAgIHsKLSAgICAg
ICAgdmFyIG5vZGUgPSBJbnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJZCgibm9kZS10by1z
ZXQtYXR0cmlidXRlIik7IAotICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgiZm9vIiwgImJhcj1c
ImVkaXRlZCBhdHRyaWJ1dGVcIiIsIGNhbGxiYWNrKTsKLSAgICB9Ci0gICAgdGVzdFN1aXRlLnB1
c2goSW5zcGVjdG9yVGVzdC5nZW5lcmF0ZVVuZG9UZXN0KHRlc3RTZXRBdHRyaWJ1dGUpKTsKLQot
Ci0gICAgZnVuY3Rpb24gdGVzdFJlbW92ZUF0dHJpYnV0ZShjYWxsYmFjaykKLSAgICB7Ci0gICAg
ICAgIHZhciBub2RlID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoIm5vZGUtdG8t
cmVtb3ZlLWF0dHJpYnV0ZSIpOyAKLSAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoImZvbyIs
IGNhbGxiYWNrKTsKLSAgICB9Ci0gICAgdGVzdFN1aXRlLnB1c2goSW5zcGVjdG9yVGVzdC5nZW5l
cmF0ZVVuZG9UZXN0KHRlc3RSZW1vdmVBdHRyaWJ1dGUpKTsKLQotCi0gICAgZnVuY3Rpb24gdGVz
dEFkZEF0dHJpYnV0ZShjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHZhciBub2RlID0gSW5zcGVj
dG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoIm5vZGUtdG8tYWRkLWF0dHJpYnV0ZSIpOyAKLSAg
ICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoIiIsICJuZXdhdHRyPVwibmV3LXZhbHVlXCIiLCBjYWxs
YmFjayk7Ci0gICAgfQotICAgIHRlc3RTdWl0ZS5wdXNoKEluc3BlY3RvclRlc3QuZ2VuZXJhdGVV
bmRvVGVzdCh0ZXN0QWRkQXR0cmlidXRlKSk7Ci0KLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVz
dFN1aXRlKHRlc3RTdWl0ZSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgRE9NIG1vZGlmaWNhdGlvbnMgZG9uZSBp
biB0aGUgRWxlbWVudHMgcGFuZWwgYXJlIHVuZG9hYmxlIChQYXJ0IDIpLgotPC9wPgotCi08ZGl2
IHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotICAgIDxkaXYgaWQ9InRlc3RTZXRBdHRyaWJ1dGUiPgot
ICAgICAgICA8ZGl2IGZvbz0iYXR0cmlidXRlIHZhbHVlIiBpZD0ibm9kZS10by1zZXQtYXR0cmli
dXRlIj48L2Rpdj4KLSAgICA8L2Rpdj4KLQotICAgIDxkaXYgaWQ9InRlc3RSZW1vdmVBdHRyaWJ1
dGUiPgotICAgICAgICA8ZGl2IGZvbz0iYXR0cmlidXRlIHZhbHVlIiBpZD0ibm9kZS10by1yZW1v
dmUtYXR0cmlidXRlIj48L2Rpdj4KLSAgICA8L2Rpdj4KLQotICAgIDxkaXYgaWQ9InRlc3RBZGRB
dHRyaWJ1dGUiPgotICAgICAgICA8ZGl2IGlkPSJub2RlLXRvLWFkZC1hdHRyaWJ1dGUiPjwvZGl2
PgotICAgIDwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91bmRvLWRvbS1lZGl0cy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdW5kby1kb20tZWRpdHMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmFiMjQyLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91bmRvLWRvbS1lZGl0cy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi1UZXN0cyB0aGF0IERPTSBtb2RpZmlj
YXRpb25zIGRvbmUgaW4gdGhlIEVsZW1lbnRzIHBhbmVsIGFyZSB1bmRvYWJsZS4KLQotCi1SdW5u
aW5nOiB0ZXN0U2V0VXAKLQotUnVubmluZzogdGVzdFJlbW92ZQotSW5pdGlhbDoKLS0gPGRpdiBp
ZD0idGVzdFJlbW92ZSI+Ci0gICAgICA8ZGl2IGlkPSJub2RlLXRvLXJlbW92ZSI+PC9kaXY+Ci0g
IDwvZGl2PgotUG9zdC1hY3Rpb246Ci0tIDxkaXYgaWQ9InRlc3RSZW1vdmUiPgotICA8L2Rpdj4K
LVBvc3QtdW5kbyAoaW5pdGlhbCk6Ci0tIDxkaXYgaWQ9InRlc3RSZW1vdmUiPgotICAgICAgPGRp
diBpZD0ibm9kZS10by1yZW1vdmUiPjwvZGl2PgotICA8L2Rpdj4KLVBvc3QtcmVkbyAoYWN0aW9u
KToKLS0gPGRpdiBpZD0idGVzdFJlbW92ZSI+Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0U2V0
Tm9kZU5hbWUKLUluaXRpYWw6Ci0tIDxkaXYgaWQ9InRlc3RTZXROb2RlTmFtZSI+Ci0gICAgICA8
ZGl2IGlkPSJub2RlLXRvLXNldC1uYW1lIj48L2Rpdj4KLSAgPC9kaXY+Ci1Qb3N0LWFjdGlvbjoK
LS0gPGRpdiBpZD0idGVzdFNldE5vZGVOYW1lIj4KLSAgICAgIDxzcGFuIGlkPSJub2RlLXRvLXNl
dC1uYW1lIj48L3NwYW4+Ci0gIDwvZGl2PgotUG9zdC11bmRvIChpbml0aWFsKToKLS0gPGRpdiBp
ZD0idGVzdFNldE5vZGVOYW1lIj4KLSAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tc2V0LW5hbWUiPjwv
ZGl2PgotICA8L2Rpdj4KLVBvc3QtcmVkbyAoYWN0aW9uKToKLS0gPGRpdiBpZD0idGVzdFNldE5v
ZGVOYW1lIj4KLSAgICAgIDxzcGFuIGlkPSJub2RlLXRvLXNldC1uYW1lIj48L3NwYW4+Ci0gIDwv
ZGl2PgotCi1SdW5uaW5nOiB0ZXN0U2V0Tm9kZVZhbHVlCi1Jbml0aWFsOgotLSA8ZGl2IGlkPSJ0
ZXN0U2V0Tm9kZVZhbHVlIj4KLSAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tc2V0LXZhbHVlIj5UZXh0
PC9kaXY+Ci0gIDwvZGl2PgotUG9zdC1hY3Rpb246Ci0tIDxkaXYgaWQ9InRlc3RTZXROb2RlVmFs
dWUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1zZXQtdmFsdWUiPk5ldyBUZXh0PC9kaXY+Ci0g
IDwvZGl2PgotUG9zdC11bmRvIChpbml0aWFsKToKLS0gPGRpdiBpZD0idGVzdFNldE5vZGVWYWx1
ZSI+Ci0gICAgICA8ZGl2IGlkPSJub2RlLXRvLXNldC12YWx1ZSI+VGV4dDwvZGl2PgotICA8L2Rp
dj4KLVBvc3QtcmVkbyAoYWN0aW9uKToKLS0gPGRpdiBpZD0idGVzdFNldE5vZGVWYWx1ZSI+Ci0g
ICAgICA8ZGl2IGlkPSJub2RlLXRvLXNldC12YWx1ZSI+TmV3IFRleHQ8L2Rpdj4KLSAgPC9kaXY+
Ci0KLVJ1bm5pbmc6IHRlc3RFZGl0QXNIVE1MCi1Jbml0aWFsOgotLSA8ZGl2IGlkPSJ0ZXN0RWRp
dEFzSFRNTCI+Ci0gICAgLSA8ZGl2IGlkPSJub2RlLXRvLWVkaXQtYXMtaHRtbCI+Ci0gICAgICAg
ICAgPHNwYW4gaWQ9InNwYW4iPlRleHQ8L3NwYW4+Ci0gICAgICA8L2Rpdj4KLSAgPC9kaXY+Ci1Q
b3N0LWFjdGlvbjoKLS0gPGRpdiBpZD0idGVzdEVkaXRBc0hUTUwiPgotICAgICsgPGRpdiBpZD0i
bm9kZS10by1lZGl0LWFzLWh0bWwiPuKApjwvZGl2PgotICAgICAgPHNwYW4+U2Vjb25kIG5vZGU8
L3NwYW4+Ci0gIDwvZGl2PgotUG9zdC11bmRvIChpbml0aWFsKToKLS0gPGRpdiBpZD0idGVzdEVk
aXRBc0hUTUwiPgotICAgICsgPGRpdiBpZD0ibm9kZS10by1lZGl0LWFzLWh0bWwiPuKApjwvZGl2
PgotICA8L2Rpdj4KLVBvc3QtcmVkbyAoYWN0aW9uKToKLS0gPGRpdiBpZD0idGVzdEVkaXRBc0hU
TUwiPgotICAgICsgPGRpdiBpZD0ibm9kZS10by1lZGl0LWFzLWh0bWwiPuKApjwvZGl2PgotICAg
ICAgPHNwYW4+U2Vjb25kIG5vZGU8L3NwYW4+Ci0gIDwvZGl2PgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdW5kby1kb20tZWRpdHMuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy91bmRvLWRvbS1lZGl0cy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxYzA2MmM0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy91bmRvLWRvbS1lZGl0cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzgg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgdGVzdFN1aXRlID0gW107Ci0KLSAgICBm
dW5jdGlvbiB0ZXN0U2V0VXAobmV4dCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXhw
YW5kRWxlbWVudHNUcmVlKG5leHQpOwotICAgIH0KLSAgICB0ZXN0U3VpdGUucHVzaCh0ZXN0U2V0
VXApOwotCi0KLSAgICBmdW5jdGlvbiB0ZXN0UmVtb3ZlKGNhbGxiYWNrKQotICAgIHsKLSAgICAg
ICAgdmFyIG5vZGUgPSBJbnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJZCgibm9kZS10by1y
ZW1vdmUiKTsgCi0gICAgICAgIG5vZGUucmVtb3ZlTm9kZShjYWxsYmFjayk7Ci0gICAgfQotICAg
IHRlc3RTdWl0ZS5wdXNoKEluc3BlY3RvclRlc3QuZ2VuZXJhdGVVbmRvVGVzdCh0ZXN0UmVtb3Zl
KSk7Ci0KLQotICAgIGZ1bmN0aW9uIHRlc3RTZXROb2RlTmFtZShjYWxsYmFjaykKLSAgICB7Ci0g
ICAgICAgIHZhciBub2RlID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoIm5vZGUt
dG8tc2V0LW5hbWUiKTsgCi0gICAgICAgIG5vZGUuc2V0Tm9kZU5hbWUoInNwYW4iLCBjYWxsYmFj
ayk7Ci0gICAgfQotICAgIHRlc3RTdWl0ZS5wdXNoKEluc3BlY3RvclRlc3QuZ2VuZXJhdGVVbmRv
VGVzdCh0ZXN0U2V0Tm9kZU5hbWUpKTsKLQotCi0gICAgZnVuY3Rpb24gdGVzdFNldE5vZGVWYWx1
ZShjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHZhciBub2RlID0gSW5zcGVjdG9yVGVzdC5leHBh
bmRlZE5vZGVXaXRoSWQoIm5vZGUtdG8tc2V0LXZhbHVlIik7IAotICAgICAgICBub2RlLmZpcnN0
Q2hpbGQuc2V0Tm9kZVZhbHVlKCJOZXcgVGV4dCIsIGNhbGxiYWNrKTsKLSAgICB9Ci0gICAgdGVz
dFN1aXRlLnB1c2goSW5zcGVjdG9yVGVzdC5nZW5lcmF0ZVVuZG9UZXN0KHRlc3RTZXROb2RlVmFs
dWUpKTsKLQotICAgIGZ1bmN0aW9uIHRlc3RFZGl0QXNIVE1MKGNhbGxiYWNrKQotICAgIHsKLSAg
ICAgICAgdmFyIG5vZGUgPSBJbnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJZCgibm9kZS10
by1lZGl0LWFzLWh0bWwiKTsgCi0gICAgICAgIG5vZGUuc2V0T3V0ZXJIVE1MKCI8ZGl2IGlkPVwi
bm9kZS10by1lZGl0LWFzLWh0bWxcIj48ZGl2IGlkPVwic3BhbjJcIj5UZXh0MjwvZGl2PjwvZGl2
PjxzcGFuPlNlY29uZCBub2RlPC9zcGFuPiIsIGNhbGxiYWNrKTsKLSAgICB9Ci0gICAgdGVzdFN1
aXRlLnB1c2goSW5zcGVjdG9yVGVzdC5nZW5lcmF0ZVVuZG9UZXN0KHRlc3RFZGl0QXNIVE1MKSk7
Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZSh0ZXN0U3VpdGUpOwotfQotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0
aGF0IERPTSBtb2RpZmljYXRpb25zIGRvbmUgaW4gdGhlIEVsZW1lbnRzIHBhbmVsIGFyZSB1bmRv
YWJsZS4KLTwvcD4KLQotPGRpdiBzdHlsZT0iZGlzcGxheTpub25lIj4KLSAgICA8ZGl2IGlkPSJ0
ZXN0UmVtb3ZlIj4KLSAgICAgICAgPGRpdiBpZD0ibm9kZS10by1yZW1vdmUiPjwvZGl2PgotICAg
IDwvZGl2PgotCi0gICAgPGRpdiBpZD0idGVzdFNldE5vZGVOYW1lIj4KLSAgICAgICAgPGRpdiBp
ZD0ibm9kZS10by1zZXQtbmFtZSI+PC9kaXY+Ci0gICAgPC9kaXY+Ci0KLSAgICA8ZGl2IGlkPSJ0
ZXN0U2V0Tm9kZVZhbHVlIj4KLSAgICAgICAgPGRpdiBpZD0ibm9kZS10by1zZXQtdmFsdWUiPlRl
eHQ8L2Rpdj4KLSAgICA8L2Rpdj4KLQotICAgIDxkaXYgaWQ9InRlc3RFZGl0QXNIVE1MIj4KLSAg
ICAgICAgPGRpdiBpZD0ibm9kZS10by1lZGl0LWFzLWh0bWwiPjxzcGFuIGlkPSJzcGFuIj5UZXh0
PC9zcGFuPjwvZGl2PgotICAgIDwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91bmRvLXNldC1vdXRlci1o
dG1sLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8t
c2V0LW91dGVyLWh0bWwtMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI2NDZhODAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L3VuZG8tc2V0LW91dGVyLWh0bWwtMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwy
MTQgKzAsMCBAQAotVGVzdHMgdW5kbyBmb3IgdGhlIERPTUFnZW50LnNldE91dGVySFRNTCBwcm90
b2NvbCBtZXRob2QgKHBhcnQgMikuCi0KLQotUnVubmluZzogdGVzdFNldFVwCi0KLVJ1bm5pbmc6
IHRlc3RDaGFuZ2VNdWx0aXBsZVRoaW5ncwotV3JhcHBlciBpZGVudGl0eTogaWRlbnRpdHkKLUV2
ZW50IEF0dHJNb2RpZmllZDogSDIKLUV2ZW50IEF0dHJNb2RpZmllZDogSDIKLUV2ZW50IE5vZGVJ
bnNlcnRlZDogVUwKLUV2ZW50IE5vZGVSZW1vdmVkOiBVTAotPT09PT09PT09PTg8PT09PT09PT09
PQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KLTxwPldlYktpdCBp
cyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwv
YT4sIERhc2hib2FyZCwgZXRjLi48L3A+Ci08aDIgZm9vPSJiYXIiIGJhcj0iYmF6Ij5HZXR0aW5n
IGludm9sdmVkPC9oMj4KLTxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBn
ZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgotPHVsPgotICAgCi08L3VsPgotPHVsPgotICAgPGxp
PjwvbGk+Ci08L3VsPgotPC9kaXY+Ci09PT09PT09PT09Pjg9PT09PT09PT09Ci0KLUJyaW5naW5n
IHRoaW5ncyBiYWNrCi0KLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5Ci1FdmVudCBBdHRyUmVt
b3ZlZDogSDIKLUV2ZW50IEF0dHJSZW1vdmVkOiBIMgotRXZlbnQgTm9kZUluc2VydGVkOiBVTAot
RXZlbnQgTm9kZVJlbW92ZWQ6IFVMCi09PT09PT09PT09ODw9PT09PT09PT09Ci08ZGl2IGlkPSJj
b250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEg
aHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJk
LCBldGMuLjwvcD4KLTxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj4KLTxwIGlkPSJpZGVudGl0eSI+
VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgotPHVsPgot
ICAgPGxpPjwvbGk+Ci08L3VsPgotPHVsPgotICAgPGxpPjwvbGk+Ci08L3VsPgotPC9kaXY+Ci09
PT09PT09PT09Pjg9PT09PT09PT09Ci0KLQotCi0KLQotUnVubmluZzogdGVzdENoYW5nZU5lc3Rp
bmdMZXZlbAotV3JhcHBlciBpZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50IE5vZGVJbnNlcnRlZDog
RElWCi1FdmVudCBOb2RlUmVtb3ZlZDogVUwKLT09PT09PT09PT04PD09PT09PT09PT0KLTxkaXYg
aWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJLaXQgaXMgdXNlZCBi
eSA8YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNo
Ym9hcmQsIGV0Yy4uPC9wPgotPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPgotPHAgaWQ9ImlkZW50
aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Ci08
ZGl2Pjx1bD4KLSAgIDxsaT48L2xpPgotPC91bD48L2Rpdj4KLTx1bD4KLSAgIDxsaT48L2xpPgot
PC91bD4KLTwvZGl2PgotPT09PT09PT09PT44PT09PT09PT09PQotCi1CcmluZ2luZyB0aGluZ3Mg
YmFjawotCi1XcmFwcGVyIGlkZW50aXR5OiBpZGVudGl0eQotRXZlbnQgTm9kZUluc2VydGVkOiBV
TAotRXZlbnQgTm9kZVJlbW92ZWQ6IERJVgotPT09PT09PT09PTg8PT09PT09PT09PQotPGRpdiBp
ZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KLTxwPldlYktpdCBpcyB1c2VkIGJ5
IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hi
b2FyZCwgZXRjLi48L3A+Ci08aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+Ci08cCBpZD0iaWRlbnRp
dHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTx1
bD4KLSAgIDxsaT48L2xpPgotPC91bD4KLTx1bD4KLSAgIDxsaT48L2xpPgotPC91bD4KLTwvZGl2
PgotPT09PT09PT09PT44PT09PT09PT09PQotCi0KLQotCi0KLVJ1bm5pbmc6IHRlc3RTd2FwTm9k
ZXMKLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5Ci1FdmVudCBOb2RlSW5zZXJ0ZWQ6IEgyCi1F
dmVudCBOb2RlUmVtb3ZlZDogSDIKLT09PT09PT09PT04PD09PT09PT09PT0KLTxkaXYgaWQ9ImNv
bnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBo
cmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQs
IGV0Yy4uPC9wPgotCi08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0
IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTx1bD4KLSAgIDxsaT48L2xpPgotPC91bD4KLTx1bD4K
LSAgIDxsaT48L2xpPgotPC91bD4KLTxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj48L2Rpdj4KLT09
PT09PT09PT0+OD09PT09PT09PT0KLQotQnJpbmdpbmcgdGhpbmdzIGJhY2sKLQotV3JhcHBlciBp
ZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50IE5vZGVJbnNlcnRlZDogSDIKLUV2ZW50IE5vZGVSZW1v
dmVkOiBIMgotPT09PT09PT09PTg8PT09PT09PT09PQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHls
ZT0iZGlzcGxheTpub25lIj4KLTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93
d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+Ci08
aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55
IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTx1bD4KLSAgIDxsaT48L2xpPgot
PC91bD4KLTx1bD4KLSAgIDxsaT48L2xpPgotPC91bD4KLTwvZGl2PgotPT09PT09PT09PT44PT09
PT09PT09PQotCi0KLQotCi0KLVJ1bm5pbmc6IHRlc3RFZGl0VHdvUm9vdHMKLVdyYXBwZXIgaWRl
bnRpdHk6IGlkZW50aXR5Ci1FdmVudCBOb2RlSW5zZXJ0ZWQ6IERJVgotPT09PT09PT09PTg8PT09
PT09PT09PQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KLTxwPldl
YktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNh
ZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+Ci08aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+
Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZ
b3UgY2FuOjwvcD4KLTx1bD4KLSAgIDxsaT48L2xpPgotPC91bD4KLTx1bD4KLSAgIDxsaT48L2xp
PgotPC91bD4KLTwvZGl2PgotPT09PT09PT09PT44PT09PT09PT09PQotCi1CcmluZ2luZyB0aGlu
Z3MgYmFjawotCi1XcmFwcGVyIGlkZW50aXR5OiBpZGVudGl0eQotRXZlbnQgTm9kZVJlbW92ZWQ6
IERJVgotPT09PT09PT09PTg8PT09PT09PT09PQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0i
ZGlzcGxheTpub25lIj4KLTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cu
YXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+Ci08aDI+
R2V0dGluZyBpbnZvbHZlZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdh
eXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTx1bD4KLSAgIDxsaT48L2xpPgotPC91
bD4KLTx1bD4KLSAgIDxsaT48L2xpPgotPC91bD4KLTwvZGl2PgotPT09PT09PT09PT44PT09PT09
PT09PQotCi0KLQotCi0KLVJ1bm5pbmc6IHRlc3REdXBlTm9kZQotUmVwbGFjaW5nICc8aDI+R2V0
dGluZyBpbnZvbHZlZDwvaDI+JyB3aXRoICc8aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+PGgyPkdl
dHRpbmcgaW52b2x2ZWQ8L2gyPicKLQotV3JhcHBlciBpZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50
IE5vZGVJbnNlcnRlZDogSDIKLUV2ZW50IE5vZGVJbnNlcnRlZDogSDIKLUV2ZW50IE5vZGVSZW1v
dmVkOiBIMgotPT09PT09PT09PTg8PT09PT09PT09PQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHls
ZT0iZGlzcGxheTpub25lIj4KLTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93
d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+Ci08
aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+PGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPgotPHAgaWQ9
ImlkZW50aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8
L3A+Ci08dWw+Ci0gICA8bGk+PC9saT4KLTwvdWw+Ci08dWw+Ci0gICA8bGk+PC9saT4KLTwvdWw+
Ci08L2Rpdj4KLT09PT09PT09PT0+OD09PT09PT09PT0KLQotQnJpbmdpbmcgdGhpbmdzIGJhY2sK
LQotV3JhcHBlciBpZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50IE5vZGVSZW1vdmVkOiBIMgotPT09
PT09PT09PTg8PT09PT09PT09PQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpu
b25lIj4KLTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29t
L3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+Ci08aDI+R2V0dGluZyBp
bnZvbHZlZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0
IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTx1bD4KLSAgIDxsaT48L2xpPgotPC91bD4KLTx1bD4K
LSAgIDxsaT48L2xpPgotPC91bD4KLTwvZGl2PgotPT09PT09PT09PT44PT09PT09PT09PQotCi0K
LQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91bmRvLXNl
dC1vdXRlci1odG1sLTIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91bmRv
LXNldC1vdXRlci1odG1sLTIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE3
YmE5OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdW5kby1z
ZXQtb3V0ZXItaHRtbC0yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotCi08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNldC1v
dXRlci1odG1sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gb25sb2Fk
KCkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRlbnRpdHkiKS53cmFwcGVySWRl
bnRpdHkgPSAiaWRlbnRpdHkiOwotICAgIHJ1blRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0
ZXN0U2V0VXAobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRV
cFRlc3RTdWl0ZShuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0Q2hh
bmdlTXVsdGlwbGVUaGluZ3MobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHRleHQg
PSBJbnNwZWN0b3JUZXN0LmNvbnRhaW5lclRleHQucmVwbGFjZSgvPGxpPi4qPFwvbGk+LywgIiIp
OwotICAgICAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgiPGgyPiIsICI8aDIgZm9vPVwiYmFy
XCIgYmFyPVwiYmF6XCI+Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNldE91dGVySFRN
TFVzZVVuZG8odGV4dCwgbmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVz
dENoYW5nZU5lc3RpbmdMZXZlbChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdGV4
dCA9IEluc3BlY3RvclRlc3QuY29udGFpbmVyVGV4dC5yZXBsYWNlKCI8dWw+IiwgIjxkaXY+PHVs
PiIpOwotICAgICAgICAgICAgdmFyIHRleHQgPSB0ZXh0LnJlcGxhY2UoIjwvdWw+IiwgIjwvdWw+
PC9kaXY+Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNldE91dGVySFRNTFVzZVVuZG8o
dGV4dCwgbmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFN3YXBOb2Rl
cyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdGV4dCA9IEluc3BlY3RvclRlc3Qu
Y29udGFpbmVyVGV4dC5yZXBsYWNlKCI8aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+IiwgIiIpOwot
ICAgICAgICAgICAgdmFyIHRleHQgPSB0ZXh0LnJlcGxhY2UoIjwvZGl2PiIsICI8aDI+R2V0dGlu
ZyBpbnZvbHZlZDwvaDI+PC9kaXY+Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNldE91
dGVySFRNTFVzZVVuZG8odGV4dCwgbmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rp
b24gdGVzdEVkaXRUd29Sb290cyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdGV4
dCA9IEluc3BlY3RvclRlc3QuY29udGFpbmVyVGV4dCArICI8ZGl2PkFkZGl0aW9uYWwgbm9kZTwv
ZGl2PiI7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNldE91dGVySFRNTFVzZVVuZG8odGV4
dCwgbmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdER1cGVOb2RlKG5l
eHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGF0Y2hPdXRlckhUTUwo
IjxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj4iLCAiPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPjxo
Mj5HZXR0aW5nIGludm9sdmVkPC9oMj4iLCBuZXh0KTsKLSAgICAgICAgfQotICAgIF0pOwotfQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgotPHA+Ci1UZXN0
cyB1bmRvIGZvciB0aGUgRE9NQWdlbnQuc2V0T3V0ZXJIVE1MIHByb3RvY29sIG1ldGhvZCAocGFy
dCAyKS4KLTwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4K
LTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFy
aS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+Ci08aDI+R2V0dGluZyBpbnZvbHZl
ZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9s
dmVkLiBZb3UgY2FuOjwvcD4KLTx1bD4KLSAgIDxsaT48L2xpPgotPC91bD4KLTx1bD4KLSAgIDxs
aT48L2xpPgotPC91bD4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdW5kby1zZXQtb3V0ZXItaHRtbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdW5kby1zZXQtb3V0ZXItaHRt
bC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5ZjYwZjkuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tc2V0LW91dGVy
LWh0bWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYwICswLDAgQEAKLVRlc3Rz
IHVuZG8gZm9yIHRoZSBET01BZ2VudC5zZXRPdXRlckhUTUwgcHJvdG9jb2wgbWV0aG9kLgotCi0K
LVJ1bm5pbmc6IHRlc3RTZXRVcAotCi1SdW5uaW5nOiB0ZXN0Q2hhbmdlQ2hhcmFjdGVyRGF0YQot
UmVwbGFjaW5nICdHZXR0aW5nIGludm9sdmVkJyB3aXRoICdHZXR0aW5nIG5vdCBpbnZvbHZlZCcK
LQotV3JhcHBlciBpZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50IENoYXJhY3RlckRhdGFNb2RpZmll
ZDogCi09PT09PT09PT09ODw9PT09PT09PT09Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJk
aXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5h
cHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBldGMuLjwvcD4KLTxoMj5H
ZXR0aW5nIG5vdCBpbnZvbHZlZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55
IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTwvZGl2PgotPT09PT09PT09PT44
PT09PT09PT09PQotCi1CcmluZ2luZyB0aGluZ3MgYmFjawotCi1XcmFwcGVyIGlkZW50aXR5OiBp
ZGVudGl0eQotRXZlbnQgQ2hhcmFjdGVyRGF0YU1vZGlmaWVkOiAKLT09PT09PT09PT04PD09PT09
PT09PT0KLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJL
aXQgaXMgdXNlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZh
cmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy4uPC9wPgotPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPgot
PHAgaWQ9ImlkZW50aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91
IGNhbjo8L3A+Ci08L2Rpdj4KLT09PT09PT09PT0+OD09PT09PT09PT0KLQotCi0KLQotCi1SdW5u
aW5nOiB0ZXN0Q2hhbmdlQXR0cmlidXRlcwotUmVwbGFjaW5nICc8YSBocmVmJyB3aXRoICc8YSBm
b289ImJhciIgaHJlZicKLQotV3JhcHBlciBpZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50IEF0dHJN
b2RpZmllZDogQQotRXZlbnQgQXR0ck1vZGlmaWVkOiBBCi1FdmVudCBBdHRyUmVtb3ZlZDogQQot
PT09PT09PT09PTg8PT09PT09PT09PQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxh
eTpub25lIj4KLTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGZvbz0iYmFyIiBocmVmPSJodHRwOi8v
d3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy4uPC9wPgot
PGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPgotPHAgaWQ9ImlkZW50aXR5Ij5UaGVyZSBhcmUgbWFu
eSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Ci08L2Rpdj4KLT09PT09PT09PT0+
OD09PT09PT09PT0KLQotQnJpbmdpbmcgdGhpbmdzIGJhY2sKLQotV3JhcHBlciBpZGVudGl0eTog
aWRlbnRpdHkKLUV2ZW50IEF0dHJNb2RpZmllZDogQQotRXZlbnQgQXR0clJlbW92ZWQ6IEEKLUV2
ZW50IEF0dHJSZW1vdmVkOiBBCi09PT09PT09PT09ODw9PT09PT09PT09Ci08ZGl2IGlkPSJjb250
YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJl
Zj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBl
dGMuLjwvcD4KLTxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj4KLTxwIGlkPSJpZGVudGl0eSI+VGhl
cmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgotPC9kaXY+Ci09
PT09PT09PT09Pjg9PT09PT09PT09Ci0KLQotCi0KLQotUnVubmluZzogdGVzdFJlbW92ZUxhc3RD
aGlsZAotUmVwbGFjaW5nICdHZXR0aW5nIGludm9sdmVkJyB3aXRoICcnCi0KLVdyYXBwZXIgaWRl
bnRpdHk6IGlkZW50aXR5Ci1FdmVudCBOb2RlUmVtb3ZlZDogCi09PT09PT09PT09ODw9PT09PT09
PT09Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+V2ViS2l0
IGlzIHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJp
PC9hPiwgRGFzaGJvYXJkLCBldGMuLjwvcD4KLTxoMj48L2gyPgotPHAgaWQ9ImlkZW50aXR5Ij5U
aGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Ci08L2Rpdj4K
LT09PT09PT09PT0+OD09PT09PT09PT0KLQotQnJpbmdpbmcgdGhpbmdzIGJhY2sKLQotV3JhcHBl
ciBpZGVudGl0eTogaWRlbnRpdHkKLUV2ZW50IE5vZGVJbnNlcnRlZDogCi09PT09PT09PT09ODw9
PT09PT09PT09Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgotPHA+
V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJpLyI+
U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBldGMuLjwvcD4KLTxoMj5HZXR0aW5nIGludm9sdmVkPC9o
Mj4KLTxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQu
IFlvdSBjYW46PC9wPgotPC9kaXY+Ci09PT09PT09PT09Pjg9PT09PT09PT09Ci0KLQotCi0KLQot
UnVubmluZzogdGVzdFNwbGl0Tm9kZQotUmVwbGFjaW5nICdHZXR0aW5nIGludm9sdmVkJyB3aXRo
ICdHZXR0aW5nPC9oMj48aDI+aW52b2x2ZWQnCi0KLVdyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5
Ci1FdmVudCBOb2RlSW5zZXJ0ZWQ6IEgyCi1FdmVudCBOb2RlSW5zZXJ0ZWQ6IEgyCi1FdmVudCBO
b2RlUmVtb3ZlZDogSDIKLT09PT09PT09PT04PD09PT09PT09PT0KLTxkaXYgaWQ9ImNvbnRhaW5l
ciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBocmVmPSJo
dHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy4u
PC9wPgotPGgyPkdldHRpbmc8L2gyPjxoMj5pbnZvbHZlZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHki
PlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTwvZGl2
PgotPT09PT09PT09PT44PT09PT09PT09PQotCi1CcmluZ2luZyB0aGluZ3MgYmFjawotCi1XcmFw
cGVyIGlkZW50aXR5OiBpZGVudGl0eQotRXZlbnQgTm9kZUluc2VydGVkOiBIMgotRXZlbnQgTm9k
ZVJlbW92ZWQ6IEgyCi1FdmVudCBOb2RlUmVtb3ZlZDogSDIKLT09PT09PT09PT04PD09PT09PT09
PT0KLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Ci08cD5XZWJLaXQg
aXMgdXNlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8
L2E+LCBEYXNoYm9hcmQsIGV0Yy4uPC9wPgotPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPgotPHAg
aWQ9ImlkZW50aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNh
bjo8L3A+Ci08L2Rpdj4KLT09PT09PT09PT0+OD09PT09PT09PT0KLQotCi0KLQotCi1SdW5uaW5n
OiB0ZXN0Q2hhbmdlTm9kZU5hbWUKLVJlcGxhY2luZyAnPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gy
Picgd2l0aCAnPGgzPkdldHRpbmcgaW52b2x2ZWQ8L2gzPicKLQotV3JhcHBlciBpZGVudGl0eTog
aWRlbnRpdHkKLUV2ZW50IE5vZGVJbnNlcnRlZDogSDMKLUV2ZW50IE5vZGVSZW1vdmVkOiBIMgot
PT09PT09PT09PTg8PT09PT09PT09PQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxh
eTpub25lIj4KLTxwPldlYktpdCBpcyB1c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUu
Y29tL3NhZmFyaS8iPlNhZmFyaTwvYT4sIERhc2hib2FyZCwgZXRjLi48L3A+Ci08aDM+R2V0dGlu
ZyBpbnZvbHZlZDwvaDM+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8g
Z2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KLTwvZGl2PgotPT09PT09PT09PT44PT09PT09PT09
PQotCi1CcmluZ2luZyB0aGluZ3MgYmFjawotCi1XcmFwcGVyIGlkZW50aXR5OiBpZGVudGl0eQot
RXZlbnQgTm9kZUluc2VydGVkOiBIMgotRXZlbnQgTm9kZVJlbW92ZWQ6IEgzCi09PT09PT09PT09
ODw9PT09PT09PT09Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgot
PHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJp
LyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBldGMuLjwvcD4KLTxoMj5HZXR0aW5nIGludm9sdmVk
PC9oMj4KLTxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2
ZWQuIFlvdSBjYW46PC9wPgotPC9kaXY+Ci09PT09PT09PT09Pjg9PT09PT09PT09Ci0KLQotCi0K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tc2V0LW91
dGVyLWh0bWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91bmRvLXNldC1v
dXRlci1odG1sLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwYTUyZTQuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tc2V0LW91dGVy
LWh0bWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2V0LW91dGVyLWh0bWwt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBvbmxvYWQoKQotewotICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZGVudGl0eSIpLndyYXBwZXJJZGVudGl0eSA9ICJp
ZGVudGl0eSI7Ci0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJ
bnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRVcChu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNldFVwVGVzdFN1aXRl
KG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RDaGFuZ2VDaGFyYWN0
ZXJEYXRhKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGF0Y2hP
dXRlckhUTUxVc2VVbmRvKCJHZXR0aW5nIGludm9sdmVkIiwgIkdldHRpbmcgbm90IGludm9sdmVk
IiwgbmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdENoYW5nZUF0dHJp
YnV0ZXMobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXRjaE91
dGVySFRNTFVzZVVuZG8oIjxhIGhyZWYiLCAiPGEgZm9vPVwiYmFyXCIgaHJlZiIsIG5leHQpOwot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmVMYXN0Q2hpbGQobmV4dCkK
LSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXRjaE91dGVySFRNTFVzZVVu
ZG8oIkdldHRpbmcgaW52b2x2ZWQiLCAiIiwgbmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gdGVzdFNwbGl0Tm9kZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnBhdGNoT3V0ZXJIVE1MVXNlVW5kbygiR2V0dGluZyBpbnZvbHZlZCIsICJHZXR0
aW5nPC9oMj48aDI+aW52b2x2ZWQiLCBuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5j
dGlvbiB0ZXN0Q2hhbmdlTm9kZU5hbWUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5wYXRjaE91dGVySFRNTFVzZVVuZG8oIjxoMj5HZXR0aW5nIGludm9sdmVkPC9o
Mj4iLCAiPGgzPkdldHRpbmcgaW52b2x2ZWQ8L2gzPiIsIG5leHQpOwotICAgICAgICB9Ci0gICAg
XSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Ci08
cD4KLVRlc3RzIHVuZG8gZm9yIHRoZSBET01BZ2VudC5zZXRPdXRlckhUTUwgcHJvdG9jb2wgbWV0
aG9kLgotPC9wPgotCi08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgot
PHA+V2ViS2l0IGlzIHVzZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vc2FmYXJp
LyI+U2FmYXJpPC9hPiwgRGFzaGJvYXJkLCBldGMuPC9hPi48L3A+Ci08aDI+R2V0dGluZyBpbnZv
bHZlZDwvaDI+Ci08cCBpZD0iaWRlbnRpdHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGlu
dm9sdmVkLiBZb3UgY2FuOjwvcD4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRvd2RvbS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRvd2Rv
bS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4NmUyZTUuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VwZGF0ZS1zaGFkb3dk
b20tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1UaGlzIHRlc3Qg
Y29uZmlybXMgdGhhdCB1cGRhdGluZyB0aGUgc2hhZG93IGRvbSBpcyByZWZsZWN0ZWQgdG8gdGhl
IEluc3BlY3Rvci4KLQotLSA8ZGl2IGlkPSJjb250YWluZXIiPgotICAgIC0gPGRpdiBpZD0iaG9z
dCI+Ci0gICAgICAgIC0gI2RvY3VtZW50LWZyYWdtZW50Ci0gICAgICA8L2Rpdj4KLSAgPC9kaXY+
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91cGRhdGUtc2hh
ZG93ZG9tLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRv
d2RvbS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzMxZThjLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91cGRhdGUtc2hhZG93ZG9tLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB1cGRhdGVT
aGFkb3dET00oKQotewotICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoc2hhZG93Um9vdC5maXJz
dENoaWxkKTsKLX0KLQotZnVuY3Rpb24gaW5pdGlhbGl6ZV9zaGFkb3dTZXR0aW5ncygpCi17Ci0g
ICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dTaGFkb3dET00uc2V0KHRydWUpOwotfQotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShm
dW5jdGlvbigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgidXBkYXRl
U2hhZG93RE9NKCkiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
YW5kRWxlbWVudHNUcmVlKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHZhciBjb250YWlu
ZXJFbGVtID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoJ2NvbnRhaW5lcicpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJF
bGVtKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLQotPHAgaWQ9ImRlc2NyaXB0aW9uIj5UaGlz
IHRlc3QgY29uZmlybXMgdGhhdCB1cGRhdGluZyB0aGUgc2hhZG93IGRvbSBpcyByZWZsZWN0ZWQg
dG8gdGhlIEluc3BlY3Rvci48L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBp
ZD0iaG9zdCI+PC9kaXY+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290ID0gaG9z
dC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9ICI8ZGl2
PjwvZGl2PiI7Ci08L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VzZXItcHJvcGVydGllcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdXNlci1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI2OTgwNi4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdXNlci1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0NSArMCwwIEBACi1UZXN0cyB0aGF0IERPTU5vZGUg
cHJvcGVybHkgdHJhY2tzIG93biBhbmQgZGVzY2VuZGFudHMnIHVzZXIgcHJvcGVydGllcy4KLQot
YXR0cjEgc2V0IG9uIGFOb2RlCi0gICAgICA8IURPQ1RZUEUgaHRtbD4KLS0gPGh0bWw+IFtkZXNj
ZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0xXV0KLSAgICAtIDxoZWFkPgotICAg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotICAgICAgICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXNlci1wcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KLSAgICAgIDwv
aGVhZD4KLSAgICAtIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4gW2Rlc2NlbmRhbnRVc2VyQXR0
cmlidXRlQ291bnRlcnM6W2F0dHIxPTFdXQotICAgICAgICAgIDxwPlxuVGVzdHMgdGhhdCBET01O
b2RlIHByb3Blcmx5IHRyYWNrcyBvd24gYW5kIGRlc2NlbmRhbnRzJyB1c2VyIHByb3BlcnRpZXMu
XG48L3A+Ci0gICAgICAgIC0gPGRpdiBpZD0iY29udGFpbmVyIj4gW2Rlc2NlbmRhbnRVc2VyQXR0
cmlidXRlQ291bnRlcnM6W2F0dHIxPTFdXQotICAgICAgICAgICAgICA8ZGl2IGlkPSJjaGlsZDEi
PjwvZGl2PgotICAgICAgICAgICAgLSA8ZGl2IGlkPSJjaGlsZDIiPiBbZGVzY2VuZGFudFVzZXJB
dHRyaWJ1dGVDb3VudGVyczpbYXR0cjE9MV1dCi0gICAgICAgICAgICAgICAgICA8YSBocmVmPSIj
IiBpZD0iYU5vZGUiPlRoaXJkLWxldmVsIG5vZGU8L2E+IFt1c2VyUHJvcGVydGllczpbYXR0cjE9
dHJ1ZV1dCi0gICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgIDwvZGl2PgotICAgICAgPC9i
b2R5PgotICA8L2h0bWw+Ci1hdHRyMiBzZXQgb24gY2hpbGQyCi0gICAgICA8IURPQ1RZUEUgaHRt
bD4KLS0gPGh0bWw+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0xLGF0
dHIyPTFdXQotICAgIC0gPGhlYWQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91c2VyLXByb3BlcnRp
ZXMuanMiPjwvc2NyaXB0PgotICAgICAgPC9oZWFkPgotICAgIC0gPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPiBbZGVzY2VuZGFudFVzZXJBdHRyaWJ1dGVDb3VudGVyczpbYXR0cjE9MSxhdHRyMj0x
XV0KLSAgICAgICAgICA8cD5cblRlc3RzIHRoYXQgRE9NTm9kZSBwcm9wZXJseSB0cmFja3Mgb3du
IGFuZCBkZXNjZW5kYW50cycgdXNlciBwcm9wZXJ0aWVzLlxuPC9wPgotICAgICAgICAtIDxkaXYg
aWQ9ImNvbnRhaW5lciI+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0x
LGF0dHIyPTFdXQotICAgICAgICAgICAgICA8ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgICAg
ICAgICAgLSA8ZGl2IGlkPSJjaGlsZDIiPiBbdXNlclByb3BlcnRpZXM6W2F0dHIyPXZhbHVlXSwg
ZGVzY2VuZGFudFVzZXJBdHRyaWJ1dGVDb3VudGVyczpbYXR0cjE9MV1dCi0gICAgICAgICAgICAg
ICAgICA8YSBocmVmPSIjIiBpZD0iYU5vZGUiPlRoaXJkLWxldmVsIG5vZGU8L2E+IFt1c2VyUHJv
cGVydGllczpbYXR0cjE9dHJ1ZV1dCi0gICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgIDwv
ZGl2PgotICAgICAgPC9ib2R5PgotICA8L2h0bWw+Ci1hdHRyMSBzZXQgb24gY2hpbGQyCi0gICAg
ICA8IURPQ1RZUEUgaHRtbD4KLS0gPGh0bWw+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50
ZXJzOlthdHRyMT0yLGF0dHIyPTFdXQotICAgIC0gPGhlYWQ+Ci0gICAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLSAgICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91c2VyLXByb3BlcnRpZXMuanMiPjwvc2NyaXB0PgotICAgICAgPC9oZWFkPgotICAgIC0gPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPiBbZGVzY2VuZGFudFVzZXJBdHRyaWJ1dGVDb3VudGVyczpb
YXR0cjE9MixhdHRyMj0xXV0KLSAgICAgICAgICA8cD5cblRlc3RzIHRoYXQgRE9NTm9kZSBwcm9w
ZXJseSB0cmFja3Mgb3duIGFuZCBkZXNjZW5kYW50cycgdXNlciBwcm9wZXJ0aWVzLlxuPC9wPgot
ICAgICAgICAtIDxkaXYgaWQ9ImNvbnRhaW5lciI+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNv
dW50ZXJzOlthdHRyMT0yLGF0dHIyPTFdXQotICAgICAgICAgICAgICA8ZGl2IGlkPSJjaGlsZDEi
PjwvZGl2PgotICAgICAgICAgICAgLSA8ZGl2IGlkPSJjaGlsZDIiPiBbdXNlclByb3BlcnRpZXM6
W2F0dHIyPXZhbHVlLGF0dHIxPXRydWVdLCBkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJz
OlthdHRyMT0xXV0KLSAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJhTm9kZSI+VGhp
cmQtbGV2ZWwgbm9kZTwvYT4gW3VzZXJQcm9wZXJ0aWVzOlthdHRyMT10cnVlXV0KLSAgICAgICAg
ICAgICAgPC9kaXY+Ci0gICAgICAgICAgPC9kaXY+Ci0gICAgICA8L2JvZHk+Ci0gIDwvaHRtbD4K
LWF0dHIxIG1vZGlmaWVkIG9uIGFOb2RlCi0gICAgICA8IURPQ1RZUEUgaHRtbD4KLS0gPGh0bWw+
IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0yLGF0dHIyPTFdXQotICAg
IC0gPGhlYWQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91c2VyLXByb3BlcnRpZXMuanMiPjwvc2Ny
aXB0PgotICAgICAgPC9oZWFkPgotICAgIC0gPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPiBbZGVz
Y2VuZGFudFVzZXJBdHRyaWJ1dGVDb3VudGVyczpbYXR0cjE9MixhdHRyMj0xXV0KLSAgICAgICAg
ICA8cD5cblRlc3RzIHRoYXQgRE9NTm9kZSBwcm9wZXJseSB0cmFja3Mgb3duIGFuZCBkZXNjZW5k
YW50cycgdXNlciBwcm9wZXJ0aWVzLlxuPC9wPgotICAgICAgICAtIDxkaXYgaWQ9ImNvbnRhaW5l
ciI+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0yLGF0dHIyPTFdXQot
ICAgICAgICAgICAgICA8ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgICAgICAgICAgLSA8ZGl2
IGlkPSJjaGlsZDIiPiBbdXNlclByb3BlcnRpZXM6W2F0dHIyPXZhbHVlLGF0dHIxPXRydWVdLCBk
ZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0xXV0KLSAgICAgICAgICAgICAg
ICAgIDxhIGhyZWY9IiMiIGlkPSJhTm9kZSI+VGhpcmQtbGV2ZWwgbm9kZTwvYT4gW3VzZXJQcm9w
ZXJ0aWVzOlthdHRyMT1hbm90aGVyVmFsdWVdXQotICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAg
ICAgICA8L2Rpdj4KLSAgICAgIDwvYm9keT4KLSAgPC9odG1sPgotYXR0cjIgbW9kaWZpZWQgb24g
Y2hpbGQyCi0gICAgICA8IURPQ1RZUEUgaHRtbD4KLS0gPGh0bWw+IFtkZXNjZW5kYW50VXNlckF0
dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0yLGF0dHIyPTFdXQotICAgIC0gPGhlYWQ+Ci0gICAgICAg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLSAgICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91c2VyLXByb3BlcnRpZXMuanMiPjwvc2NyaXB0PgotICAgICAgPC9oZWFk
PgotICAgIC0gPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPiBbZGVzY2VuZGFudFVzZXJBdHRyaWJ1
dGVDb3VudGVyczpbYXR0cjE9MixhdHRyMj0xXV0KLSAgICAgICAgICA8cD5cblRlc3RzIHRoYXQg
RE9NTm9kZSBwcm9wZXJseSB0cmFja3Mgb3duIGFuZCBkZXNjZW5kYW50cycgdXNlciBwcm9wZXJ0
aWVzLlxuPC9wPgotICAgICAgICAtIDxkaXYgaWQ9ImNvbnRhaW5lciI+IFtkZXNjZW5kYW50VXNl
ckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0yLGF0dHIyPTFdXQotICAgICAgICAgICAgICA8ZGl2
IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgICAgICAgICAgLSA8ZGl2IGlkPSJjaGlsZDIiPiBbdXNl
clByb3BlcnRpZXM6W2F0dHIyPWFub3RoZXJWYWx1ZSxhdHRyMT10cnVlXSwgZGVzY2VuZGFudFVz
ZXJBdHRyaWJ1dGVDb3VudGVyczpbYXR0cjE9MV1dCi0gICAgICAgICAgICAgICAgICA8YSBocmVm
PSIjIiBpZD0iYU5vZGUiPlRoaXJkLWxldmVsIG5vZGU8L2E+IFt1c2VyUHJvcGVydGllczpbYXR0
cjE9YW5vdGhlclZhbHVlXV0KLSAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgPC9kaXY+
Ci0gICAgICA8L2JvZHk+Ci0gIDwvaHRtbD4KLWF0dHIxIHJlbW92ZWQgZnJvbSBhTm9kZQotICAg
ICAgPCFET0NUWVBFIGh0bWw+Ci0tIDxodG1sPiBbZGVzY2VuZGFudFVzZXJBdHRyaWJ1dGVDb3Vu
dGVyczpbYXR0cjE9MSxhdHRyMj0xXV0KLSAgICAtIDxoZWFkPgotICAgICAgICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotICAgICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXNlci1wcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KLSAgICAgIDwvaGVhZD4KLSAgICAtIDxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4gW2Rlc2NlbmRhbnRVc2VyQXR0cmlidXRlQ291bnRlcnM6
W2F0dHIxPTEsYXR0cjI9MV1dCi0gICAgICAgICAgPHA+XG5UZXN0cyB0aGF0IERPTU5vZGUgcHJv
cGVybHkgdHJhY2tzIG93biBhbmQgZGVzY2VuZGFudHMnIHVzZXIgcHJvcGVydGllcy5cbjwvcD4K
LSAgICAgICAgLSA8ZGl2IGlkPSJjb250YWluZXIiPiBbZGVzY2VuZGFudFVzZXJBdHRyaWJ1dGVD
b3VudGVyczpbYXR0cjE9MSxhdHRyMj0xXV0KLSAgICAgICAgICAgICAgPGRpdiBpZD0iY2hpbGQx
Ij48L2Rpdj4KLSAgICAgICAgICAgIC0gPGRpdiBpZD0iY2hpbGQyIj4gW3VzZXJQcm9wZXJ0aWVz
OlthdHRyMj1hbm90aGVyVmFsdWUsYXR0cjE9dHJ1ZV1dCi0gICAgICAgICAgICAgICAgICA8YSBo
cmVmPSIjIiBpZD0iYU5vZGUiPlRoaXJkLWxldmVsIG5vZGU8L2E+Ci0gICAgICAgICAgICAgIDwv
ZGl2PgotICAgICAgICAgIDwvZGl2PgotICAgICAgPC9ib2R5PgotICA8L2h0bWw+Ci1hTm9kZSBy
ZW1vdmVkCi0gICAgICA8IURPQ1RZUEUgaHRtbD4KLS0gPGh0bWw+IFtkZXNjZW5kYW50VXNlckF0
dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0xLGF0dHIyPTFdXQotICAgIC0gPGhlYWQ+Ci0gICAgICAg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLSAgICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91c2VyLXByb3BlcnRpZXMuanMiPjwvc2NyaXB0PgotICAgICAgPC9oZWFk
PgotICAgIC0gPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPiBbZGVzY2VuZGFudFVzZXJBdHRyaWJ1
dGVDb3VudGVyczpbYXR0cjE9MSxhdHRyMj0xXV0KLSAgICAgICAgICA8cD5cblRlc3RzIHRoYXQg
RE9NTm9kZSBwcm9wZXJseSB0cmFja3Mgb3duIGFuZCBkZXNjZW5kYW50cycgdXNlciBwcm9wZXJ0
aWVzLlxuPC9wPgotICAgICAgICAtIDxkaXYgaWQ9ImNvbnRhaW5lciI+IFtkZXNjZW5kYW50VXNl
ckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0xLGF0dHIyPTFdXQotICAgICAgICAgICAgICA8ZGl2
IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgICAgICAgICAgLSA8ZGl2IGlkPSJjaGlsZDIiPiBbdXNl
clByb3BlcnRpZXM6W2F0dHIyPWFub3RoZXJWYWx1ZSxhdHRyMT10cnVlXV0KLSAgICAgICAgICAg
ICAgPC9kaXY+Ci0gICAgICAgICAgPC9kaXY+Ci0gICAgICAgICsgPGRpdj7igKY8L2Rpdj4KLSAg
ICAgIDwvYm9keT4KLSAgPC9odG1sPgotY2hpbGQyIHJlbW92ZWQKLSAgICAgIDwhRE9DVFlQRSBo
dG1sPgotLSA8aHRtbD4KLSAgICAtIDxoZWFkPgotICAgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRl
c3QuanMiPjwvc2NyaXB0PgotICAgICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXNlci1w
cm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KLSAgICAgIDwvaGVhZD4KLSAgICAtIDxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLSAgICAgICAgICA8cD5cblRlc3RzIHRoYXQgRE9NTm9kZSBwcm9wZXJs
eSB0cmFja3Mgb3duIGFuZCBkZXNjZW5kYW50cycgdXNlciBwcm9wZXJ0aWVzLlxuPC9wPgotICAg
ICAgICAtIDxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgICAgICAgICAgIDxkaXYgaWQ9ImNoaWxk
MSI+PC9kaXY+Ci0gICAgICAgICAgPC9kaXY+Ci0gICAgICAgICsgPGRpdj7igKY8L2Rpdj4KLSAg
ICAgIDwvYm9keT4KLSAgPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvdXNlci1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvdXNlci1wcm9wZXJ0aWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDIxNWM1NzAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L3VzZXItcHJvcGVydGllcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXNlci1wcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IERPTU5vZGUg
cHJvcGVybHkgdHJhY2tzIG93biBhbmQgZGVzY2VuZGFudHMnIHVzZXIgcHJvcGVydGllcy4KLTwv
cD4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgPGRpdiBpZD0iY2hpbGQxIj48L2Rpdj4KLSAg
PGRpdiBpZD0iY2hpbGQyIj48YSBocmVmPSIjIiBpZD0iYU5vZGUiPlRoaXJkLWxldmVsIG5vZGU8
L2E+PC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2V2YWx1YXRlLWluLXBhZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V2YWx1YXRlLWluLXBhZ2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiOTBhZDQzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9ldmFsdWF0ZS1pbi1wYWdlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQg
KzAsMCBAQAotVGhpcyB0ZXN0cyB0aGF0IGxheW91dCB0ZXN0IGNhbiBldmFsdWF0ZSBzY3JpcHRz
IGluIHRoZSBpbnNwZWN0ZWQgcGFnZS4KLQotMiArIDIgPSA0Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9ldmFsdWF0ZS1pbi1wYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXZhbHVhdGUtaW4tcGFnZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlZmI1M2FkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ldmFsdWF0ZS1p
bi1wYWdlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHN1bShhLCBiKQotewotICAgIHJldHVy
biBhICsgYjsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gY2FsbGJhY2so
cmVzdWx0KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIjIgKyAyID0g
IiArIHJlc3VsdC5kZXNjcmlwdGlvbik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgfQotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInN1bSgyLCAy
KSIsIGNhbGxiYWNrKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLTxwPgotVGhpcyB0ZXN0cyB0aGF0IGxheW91dCB0ZXN0IGNhbiBldmFsdWF0
ZSBzY3JpcHRzIGluIHRoZSBpbnNwZWN0ZWQgcGFnZS4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9u
cy1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0
ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
MDExOWNlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAK
LVRlc3RzIHB1YmxpYyBpbnRlcmZhY2Ugb2YgV2ViSW5zcGVjdG9yIEV4dGVuc2lvbnMgQVBJCi0K
LVN0YXJ0ZWQgZXh0ZW5zaW9uLgotUnVubmluZyB0ZXN0cy4uLgotUlVOTklORyBURVNUOiBleHRl
bnNpb25fdGVzdEFQSQotewotICAgIGF1ZGl0cyA6IHsKLSAgICB9Ci0gICAgY29uc29sZSA6IHsK
LSAgICAgICAgb25NZXNzYWdlQWRkZWQgOiB7Ci0gICAgICAgICAgICBhZGRMaXN0ZW5lciA6IDxm
dW5jdGlvbj4KLSAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgICAg
ICB9Ci0gICAgfQotICAgIGluc3BlY3RlZFdpbmRvdyA6IHsKLSAgICAgICAgb25SZXNvdXJjZUFk
ZGVkIDogewotICAgICAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgICAg
ICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4KLSAgICAgICAgfQotICAgICAgICBvblJlc291
cmNlQ29udGVudENvbW1pdHRlZCA6IHsKLSAgICAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0
aW9uPgotICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgbmV0d29yayA6IHsKLSAgICAgICAgb25GaW5pc2hlZCA6IHsKLSAgICAgICAg
ICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIg
OiA8ZnVuY3Rpb24+Ci0gICAgICAgIH0KLSAgICAgICAgb25OYXZpZ2F0ZWQgOiB7Ci0gICAgICAg
ICAgICBhZGRMaXN0ZW5lciA6IDxmdW5jdGlvbj4KLSAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVy
IDogPGZ1bmN0aW9uPgotICAgICAgICB9Ci0gICAgICAgIG9uUmVxdWVzdEZpbmlzaGVkIDogewot
ICAgICAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgICAgICByZW1vdmVM
aXN0ZW5lciA6IDxmdW5jdGlvbj4KLSAgICAgICAgfQotICAgIH0KLSAgICBwYW5lbHMgOiB7Ci0g
ICAgICAgIGVsZW1lbnRzIDogewotICAgICAgICAgICAgY3JlYXRlU2lkZWJhclBhbmUgOiA8ZnVu
Y3Rpb24+Ci0gICAgICAgICAgICBvblNlbGVjdGlvbkNoYW5nZWQgOiB7Ci0gICAgICAgICAgICAg
ICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgICAgICAgICAgcmVtb3ZlTGlzdGVu
ZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmVz
b3VyY2VzIDogewotICAgICAgICBvbkZpbmlzaGVkIDogewotICAgICAgICAgICAgYWRkTGlzdGVu
ZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4K
LSAgICAgICAgfQotICAgICAgICBvbk5hdmlnYXRlZCA6IHsKLSAgICAgICAgICAgIGFkZExpc3Rl
bmVyIDogPGZ1bmN0aW9uPgotICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+
Ci0gICAgICAgIH0KLSAgICAgICAgb25SZXF1ZXN0RmluaXNoZWQgOiB7Ci0gICAgICAgICAgICBh
ZGRMaXN0ZW5lciA6IDxmdW5jdGlvbj4KLSAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1
bmN0aW9uPgotICAgICAgICB9Ci0gICAgfQotICAgIHRpbWVsaW5lIDogewotICAgICAgICBvbkV2
ZW50UmVjb3JkZWQgOiB7Ci0gICAgICAgICAgICBhZGRMaXN0ZW5lciA6IDxmdW5jdGlvbj4KLSAg
ICAgICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgICAgICB9Ci0gICAgfQot
fQotQWxsIHRlc3RzIGRvbmUuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy9leHRlbnNpb25zLWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2MjljNzRkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtYXBpLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdEFQSShuZXh0VGVzdCkKLXsK
LSAgICBkdW1wT2JqZWN0KHdlYkluc3BlY3Rvcik7Ci0gICAgbmV4dFRlc3QoKTsKLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBwdWJs
aWMgaW50ZXJmYWNlIG9mIFdlYkluc3BlY3RvciBFeHRlbnNpb25zIEFQSTwvcD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1hcGktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmNWRlZWFmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi1UZXN0cyBhdWRpdHMgc3VwcG9ydCBpbiBXZWJJ
bnNwZWN0b3IgRXh0ZW5zaW9ucyBBUEkKLQotU3RhcnRlZCBleHRlbnNpb24uCi1SdW5uaW5nIHRl
c3RzLi4uCi1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0QXVkaXRzQVBJCi1BZGRlZCBhdWRp
dCBjYXRlZ29yeSwgcmVzdWx0IGR1bXAgZm9sbG93czoKLXsKLSAgICBvbkF1ZGl0U3RhcnRlZCA6
IHsKLSAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIHJlbW92ZUxpc3Rl
bmVyIDogPGZ1bmN0aW9uPgotICAgIH0KLX0KLWNhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZpcmVk
LCByZXN1bHRzIGR1bXAgZm9sbG93czoKLXsKLSAgICBTZXZlcml0eSA6IHsKLSAgICAgICAgSW5m
byA6ICJpbmZvIgotICAgICAgICBTZXZlcmUgOiAic2V2ZXJlIgotICAgICAgICBXYXJuaW5nIDog
Indhcm5pbmciCi0gICAgfQotICAgIGFkZFJlc3VsdCA6IDxmdW5jdGlvbj4KLSAgICBjcmVhdGVO
b2RlIDogPGZ1bmN0aW9uPgotICAgIGNyZWF0ZU9iamVjdCA6IDxmdW5jdGlvbj4KLSAgICBjcmVh
dGVSZXNvdXJjZUxpbmsgOiA8ZnVuY3Rpb24+Ci0gICAgY3JlYXRlUmVzdWx0IDogPGZ1bmN0aW9u
PgotICAgIGNyZWF0ZVNuaXBwZXQgOiA8ZnVuY3Rpb24+Ci0gICAgY3JlYXRlVGV4dCA6IDxmdW5j
dGlvbj4KLSAgICBjcmVhdGVVUkwgOiA8ZnVuY3Rpb24+Ci0gICAgZG9uZSA6IDxmdW5jdGlvbj4K
LSAgICB1cGRhdGVQcm9ncmVzcyA6IDxmdW5jdGlvbj4KLX0KLXsKLSAgICBjaGlsZHJlbiA6IHsK
LSAgICB9Ci0gICAgY29udGVudHMgOiB7Ci0gICAgICAgIDAgOiAiU3VidHJlZSIKLSAgICB9Ci0g
ICAgZXhwYW5kZWQgOiBmYWxzZQotfQotIEV4dGVuc2lvbiBhdWRpdHMKLUFsbCB0ZXN0cyBkb25l
LgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLWF1ZGl0cy1hcGkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtYXVkaXRzLWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
MDNlYjZkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtYXVkaXRzLWFwaS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9hdWRpdHMvYXVkaXRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImV4dGVuc2lv
bnMtYXVkaXRzLXRlc3RzLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdEF1ZGl0c0FQSShuZXh0VGVzdCkKLXsK
LSAgICBmdW5jdGlvbiBvblN0YXJ0QXVkaXRDYXRlZ29yeShyZXN1bHRzKQotICAgIHsKLSAgICAg
ICAgb3V0cHV0KCJjYXRlZ29yeS5vbkF1ZGl0U3RhcnRlZCBmaXJlZCwgcmVzdWx0cyBkdW1wIGZv
bGxvd3M6Iik7Ci0gICAgICAgIGR1bXBPYmplY3QocmVzdWx0cyk7Ci0gICAgICAgIHZhciBub2Rl
ID0gcmVzdWx0cy5jcmVhdGVSZXN1bHQoIlN1YnRyZWUiKTsKLSAgICAgICAgZHVtcE9iamVjdChu
b2RlKTsKLSAgICAgICAgLy8gTWFrZSBzdXJlIGR1bXBPYmplY3QoKSBwdXNoZXMgc3R1ZmYgdGhy
b3VnaCBiZWZvcmUgd2UgY29udGludWUuCi0gICAgICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiSW5z
cGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHJlcGx5KSIsIGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgcmVzdWx0cy5kb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLSAgICB2
YXIgY2F0ZWdvcnkgPSB3ZWJJbnNwZWN0b3IuYXVkaXRzLmFkZENhdGVnb3J5KCJFeHRlbnNpb24g
YXVkaXRzIik7Ci0gICAgY2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQuYWRkTGlzdGVuZXIob25TdGFy
dEF1ZGl0Q2F0ZWdvcnkpOwotICAgIG91dHB1dCgiQWRkZWQgYXVkaXQgY2F0ZWdvcnksIHJlc3Vs
dCBkdW1wIGZvbGxvd3M6Iik7Ci0gICAgZHVtcE9iamVjdChjYXRlZ29yeSk7Ci0gICAgZXh0ZW5z
aW9uX3J1bkF1ZGl0cyhuZXh0VGVzdCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgYXVkaXRzIHN1cHBvcnQgaW4gV2ViSW5zcGVj
dG9yIEV4dGVuc2lvbnMgQVBJPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1z
Y3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0
ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmODU4MjllLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLVRlc3RzIGF1ZGl0IGZvcm1hdHRl
cnMgcGVyZm9ybWluZyBldmFscyBvbiBjb250ZW50IHNjcmlwdHMgaW4gV2ViSW5zcGVjdG9yIEV4
dGVuc2lvbnMgQVBJCi0KLSBTdGFydGVkIGV4dGVuc2lvbi4KLVJ1bm5pbmcgdGVzdHMuLi4KLVJV
Tk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RBdWRpdHMKLSBFeHRlbnNpb24gYXVkaXRzCi0gICAg
UnVsZSB3aXRoIGRldGFpbHMgc3VidHJlZSAoMSkKLSAgICAgIFRlc3QgRm9ybWF0dGVycwotICAg
ICAgICAgICBtYWluIHdvcmxkIG9iamVjdAotICAgICAgICAgICAgd2hlcmVBbUkKLSAgICAgICAg
ICAgIDogCi0gICAgICAgICAgICAibWFpbiB3b3JsZCIKLSAgICAgICAgICAgIF9fcHJvdG9fXwot
ICAgICAgICAgICAgOiAKLSAgICAgICAgICAgIE9iamVjdAotICAgICAgICAgICAgPAotICAgICAg
ICAgICAgIHNwYW4KLSAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgaWQKLSAgICAgICAgICAg
ICA9IgotICAgICAgICAgICAgICB0ZXN0LWVsZW1lbnQKLSAgICAgICAgICAgICAiCi0gICAgICAg
ICAgICA+Ci0gICAgICAgICAgIAotICAgICAgICAgICBjb250ZW50IHNjcmlwdCBvYmplY3QKLSAg
ICAgICAgICAgIHdoZXJlQW1JCi0gICAgICAgICAgICA6IAotICAgICAgICAgICAgImJyYXZlIG5l
dyB3b3JsZCIKLSAgICAgICAgICAgIF9fcHJvdG9fXwotICAgICAgICAgICAgOiAKLSAgICAgICAg
ICAgIE9iamVjdAotICAgICAgICAgICAgPAotICAgICAgICAgICAgIHNwYW4KLSAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgaWQKLSAgICAgICAgICAgICA9IgotICAgICAgICAgICAgICB0ZXN0
LWVsZW1lbnQKLSAgICAgICAgICAgICAiCi0gICAgICAgICAgICA+Ci0gICAgICAgICAgIAotY2F0
ZWdvcnkub25BdWRpdFN0YXJ0ZWQgZmlyZWQKLUFsbCB0ZXN0cyBkb25lLgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1jb250
ZW50LXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5z
aW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMGE1YzQyZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNTEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9hdWRpdHMvYXVkaXRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9ImV4dGVuc2lvbnMtYXVkaXRzLXRlc3RzLmpzIj48L3NjcmlwdD4KLQotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cud2hlcmVBbUkgPSAibWFpbiB3b3Js
ZCI7Ci0KLXRlc3RSdW5uZXIuc2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKDYzMiwgImZp
bGU6Ly8vIik7Ci10ZXN0UnVubmVyLmV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKDYzMiwg
IndpbmRvdy53aGVyZUFtSSA9ICdicmF2ZSBuZXcgd29ybGQnIik7Ci0KLWZ1bmN0aW9uIGV4dGVu
c2lvbl90ZXN0QXVkaXRzKG5leHRUZXN0KQotewotICAgIHZhciBwZW5kaW5nT3V0cHV0ID0gW107
Ci0KLSAgICBmdW5jdGlvbiBvblN0YXJ0QXVkaXRDYXRlZ29yeShyZXN1bHRzKQotICAgIHsKLSAg
ICAgICAgcGVuZGluZ091dHB1dC5wdXNoKCJjYXRlZ29yeS5vbkF1ZGl0U3RhcnRlZCBmaXJlZCIp
OwotICAgICAgICB2YXIgbm9kZSA9IHJlc3VsdHMuY3JlYXRlUmVzdWx0KCJUZXN0IEZvcm1hdHRl
cnMiKTsKLSAgICAgICAgbm9kZS5hZGRDaGlsZChyZXN1bHRzLmNyZWF0ZU9iamVjdCgiKHt3aGVy
ZUFtSTogd2luZG93LndoZXJlQW1JfSkiLCAibWFpbiB3b3JsZCBvYmplY3QiKSk7Ci0gICAgICAg
IG5vZGUuYWRkQ2hpbGQocmVzdWx0cy5jcmVhdGVOb2RlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdC1lbGVtZW50JykiKSk7Ci0KLSAgICAgICAgbm9kZS5hZGRDaGlsZChyZXN1bHRzLmNy
ZWF0ZU9iamVjdCgiKHt3aGVyZUFtSTogd2luZG93LndoZXJlQW1JfSkiLCAiY29udGVudCBzY3Jp
cHQgb2JqZWN0IiwgeyB1c2VDb250ZW50U2NyaXB0Q29udGV4dDogdHJ1ZSB9KSk7Ci0gICAgICAg
IG5vZGUuYWRkQ2hpbGQocmVzdWx0cy5jcmVhdGVOb2RlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdC1lbGVtZW50JykiLCB7IHVzZUNvbnRlbnRTY3JpcHRDb250ZXh0OiB0cnVlIH0pKTsK
LQotICAgICAgICByZXN1bHRzLmFkZFJlc3VsdCgiUnVsZSB3aXRoIGRldGFpbHMgc3VidHJlZSAo
MSkiLCAiIiwgcmVzdWx0cy5TZXZlcml0eS5XYXJuaW5nLCBub2RlKTsKLSAgICAgICAgcmVzdWx0
cy5kb25lKCk7Ci0gICAgfQotICAgIHZhciBjYXRlZ29yeSA9IHdlYkluc3BlY3Rvci5hdWRpdHMu
YWRkQ2F0ZWdvcnkoIkV4dGVuc2lvbiBhdWRpdHMiLCAyMCk7Ci0gICAgY2F0ZWdvcnkub25BdWRp
dFN0YXJ0ZWQuYWRkTGlzdGVuZXIob25TdGFydEF1ZGl0Q2F0ZWdvcnkpOwotCi0gICAgZnVuY3Rp
b24gYXVkaXRzRG9uZSgpCi0gICAgewotICAgICAgICBwZW5kaW5nT3V0cHV0LnNvcnQoKS5mb3JF
YWNoKG91dHB1dCk7Ci0gICAgICAgIG5leHRUZXN0KCk7Ci0gICAgfQotICAgIHdlYkluc3BlY3Rv
ci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgiIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV4dGVuc2lv
bl9ydW5BdWRpdHMoYXVkaXRzRG9uZSk7Ci0gICAgfSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgYXVkaXQgZm9ybWF0dGVycyBw
ZXJmb3JtaW5nIGV2YWxzIG9uIGNvbnRlbnQgc2NyaXB0cyBpbiBXZWJJbnNwZWN0b3IgRXh0ZW5z
aW9ucyBBUEk8L3A+Ci08c3BhbiBpZD0idGVzdC1lbGVtZW50Ij48Yj48L2I+PC9zcGFuPgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1hdWRpdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxMzYxMTM0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDUwICswLDAgQEAKLVRlc3RzIGF1ZGl0cyBzdXBwb3J0IGluIFdlYkluc3BlY3Rv
ciBFeHRlbnNpb25zIEFQSQotCi0gU3RhcnRlZCBleHRlbnNpb24uCi1SdW5uaW5nIHRlc3RzLi4u
Ci1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0QXVkaXRzCi1Qcm9ncmVzczogNTAlCi1Qcm9n
cmVzczogNzUlCi0gRXh0ZW5zaW9uIGF1ZGl0cwotICAgIEZhaWxlZCBydWxlICg0MikKLSAgICAg
dGhpcyBydWxlIGFsd2F5cyBmYWlscwotICAgIFJ1bGUgd2l0aCBkZXRhaWxzIHN1YnRyZWUgKDEp
Ci0gICAgIFRoaXMgcnVsZSBoYXMgYSBsb3Qgb2YgZGV0YWlscwotICAgICAgU3VidHJlZQotICAg
ICAgIFNvbWUgdXJsOiAKLSAgICAgICAgV2ViS2l0Ci0gICAgICAgIG1vcmUgdGV4dCAKLSAgICAg
ICAgaHR0cDovL3d3dy5nb29nbGUuY29tCi0gICAgICAgLi4uIGFuZCBhIHNuaXBwZXQKLSAgICAg
ICAgIGZ1bmN0aW9uIHJhbmQoKQotewotICAgIHJldHVybiA0OwotfQotICAgICAgICAgL3BhdGgv
dG8vZXJyb3IuaHRtbDoxMAotICAgICAgICAgICAgb2JqZWN0IGRldGFpbHMKLSAgICAgICAgICAg
ICBhCi0gICAgICAgICAgICAgOiAKLSAgICAgICAgICAgICA0MgotICAgICAgICAgICAgIGIKLSAg
ICAgICAgICAgICA6IAotICAgICAgICAgICAgICJmb28iCi0gICAgICAgICAgICAgX19wcm90b19f
Ci0gICAgICAgICAgICAgOiAKLSAgICAgICAgICAgICBPYmplY3QKLSAgICAgICAgICAgICA8Ci0g
ICAgICAgICAgICAgIHNwYW4KLSAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBpZAotICAg
ICAgICAgICAgICA9IgotICAgICAgICAgICAgICAgdGVzdC1lbGVtZW50Ci0gICAgICAgICAgICAg
ICIKLSAgICAgICAgICAgICA+Ci0gICAgICAgICAgICAKLSAgICAgICAgIGV4dGVuc2lvbnMtYXVk
aXRzLmh0bWw6MjAKLSAgICBQYXNzZWQgcnVsZQotICAgICB0aGlzIHJ1bGUgYWx3YXlzIHBhc3Nl
cyBvawotIEV4dGVuc2lvbiBhdWRpdHMgdGhhdCBmYWlsCi1jYXRlZ29yeS5vbkF1ZGl0U3RhcnRl
ZCBmaXJlZAotZmFpbGVkQ2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQgZmlyZWQsIHRocm93aW5nIGV4
Y2VwdGlvbgotQWxsIHRlc3RzIGRvbmUuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLXRlc3RzLmpzIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtdGVzdHMuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiMjY3YWYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtdGVzdHMuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwzOCArMCwwIEBACi1mdW5jdGlvbiBleHRlbnNpb25fcnVuQXVkaXRzKGNhbGxi
YWNrKQotewotICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5zdGFydEV4dGVu
c2lvbkF1ZGl0cyhyZXBseSk7IiwgY2FsbGJhY2spOwotfQotCi0vLyBydW5zIGluIGZyb250LWVu
ZAotdmFyIGluaXRpYWxpemVfRXh0ZW5zaW9uc0F1ZGl0c1Rlc3QgPSBmdW5jdGlvbigpCi17Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zdGFydEV4dGVuc2lvbkF1ZGl0cyA9IGZ1bmN0aW9uKGNhbGxiYWNr
KQotICAgIHsKLSAgICAgICAgY29uc3QgbGF1bmNoZXJWaWV3ID0gV2ViSW5zcGVjdG9yLnBhbmVs
cy5hdWRpdHMuX2xhdW5jaGVyVmlldzsKLSAgICAgICAgbGF1bmNoZXJWaWV3Ll9zZWxlY3RBbGxD
bGlja2VkKGZhbHNlKTsKLSAgICAgICAgbGF1bmNoZXJWaWV3Ll9hdWRpdFByZXNlbnRTdGF0ZUVs
ZW1lbnQuY2hlY2tlZCA9IHRydWU7Ci0KLSAgICAgICAgdmFyIGV4dGVuc2lvbkNhdGVnb3JpZXMg
PSBkb2N1bWVudC5ldmFsdWF0ZSgibGFiZWxbc3RhcnRzLXdpdGgoLiwnRXh0ZW5zaW9uICcpXS9p
bnB1dFtAdHlwZT0nY2hlY2tib3gnXSIsCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxz
LmF1ZGl0cy5fbGF1bmNoZXJWaWV3Ll9jYXRlZ29yaWVzRWxlbWVudCwgbnVsbCwgWFBhdGhSZXN1
bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUsIG51bGwpOwotCi0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgZXh0ZW5zaW9uQ2F0ZWdvcmllcy5zbmFwc2hvdExlbmd0aDsgKytpKQotICAg
ICAgICAgICAgZXh0ZW5zaW9uQ2F0ZWdvcmllcy5zbmFwc2hvdEl0ZW0oaSkuY2xpY2soKTsKLQot
ICAgICAgICBmdW5jdGlvbiBvbkF1ZGl0c0RvbmUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb2xsZWN0QXVkaXRSZXN1bHRzKCk7Ci0gICAgICAg
ICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IucGFuZWxzLmF1ZGl0cywgImF1
ZGl0RmluaXNoZWRDYWxsYmFjayIsIG9uQXVkaXRzRG9uZSwgdHJ1ZSk7Ci0KLSAgICAgICAgbGF1
bmNoZXJWaWV3Ll9sYXVuY2hCdXR0b25DbGlja2VkKCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9y
VGVzdC5kdW1wQXVkaXRQcm9ncmVzcyA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBw
cm9ncmVzcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5wYW5lbC5hdWRpdHMgcHJvZ3Jlc3Mi
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlByb2dyZXNzOiAiICsgTWF0aC5y
b3VuZCgxMDAgKiBwcm9ncmVzcy52YWx1ZSAvIHByb2dyZXNzLm1heCkgKyAiJSIpOwotICAgIH0K
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lv
bnMtYXVkaXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLWF1ZGl0cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDg4NGQ4Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
YXVkaXRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2F1ZGl0cy9hdWRp
dHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZXh0ZW5zaW9ucy1hdWRpdHMtdGVz
dHMuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLWZ1
bmN0aW9uIGV4dGVuc2lvbl90ZXN0QXVkaXRzKG5leHRUZXN0KQotewotICAgIHZhciBwZW5kaW5n
T3V0cHV0ID0gW107Ci0KLSAgICBmdW5jdGlvbiBvblN0YXJ0QXVkaXRDYXRlZ29yeShyZXN1bHRz
KQotICAgIHsKLSAgICAgICAgcGVuZGluZ091dHB1dC5wdXNoKCJjYXRlZ29yeS5vbkF1ZGl0U3Rh
cnRlZCBmaXJlZCIpOwotICAgICAgICByZXN1bHRzLmFkZFJlc3VsdCgiUGFzc2VkIHJ1bGUiLCAi
dGhpcyBydWxlIGFsd2F5cyBwYXNzZXMgb2siLCByZXN1bHRzLlNldmVyaXR5LkluZm8pOwotICAg
ICAgICByZXN1bHRzLmFkZFJlc3VsdCgiRmFpbGVkIHJ1bGUgKDQyKSIsICJ0aGlzIHJ1bGUgYWx3
YXlzIGZhaWxzIiwgcmVzdWx0cy5TZXZlcml0eS5TZXZlcmUpOwotCi0gICAgICAgIHZhciBub2Rl
ID0gcmVzdWx0cy5jcmVhdGVSZXN1bHQoIlN1YnRyZWUiKTsKLSAgICAgICAgbm9kZS5hZGRDaGls
ZCgiU29tZSB1cmw6ICIsIHJlc3VsdHMuY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmci
LCAiV2ViS2l0IiksICIgbW9yZSB0ZXh0ICIsIHJlc3VsdHMuY3JlYXRlVVJMKCJodHRwOi8vd3d3
Lmdvb2dsZS5jb20iKSk7Ci0gICAgICAgIHZhciBuZXN0ZWROb2RlID0gbm9kZS5hZGRDaGlsZCgi
Li4uIGFuZCBhIHNuaXBwZXQiKTsKLSAgICAgICAgbmVzdGVkTm9kZS5leHBhbmRlZCA9IHRydWU7
Ci0gICAgICAgIG5lc3RlZE5vZGUuYWRkQ2hpbGQocmVzdWx0cy5jcmVhdGVTbmlwcGV0KCJmdW5j
dGlvbiByYW5kKClcbntcbiAgICByZXR1cm4gNDtcbn0iKSk7Ci0gICAgICAgIG5lc3RlZE5vZGUu
YWRkQ2hpbGQocmVzdWx0cy5jcmVhdGVSZXNvdXJjZUxpbmsoImZpbGU6Ly8vcGF0aC90by9lcnJv
ci5odG1sIiwgMTApKTsKLSAgICAgICAgbmVzdGVkTm9kZS5hZGRDaGlsZChyZXN1bHRzLmNyZWF0
ZU9iamVjdCgiKHthOiA0MiwgYjogJ2Zvbyd9KSIsICJvYmplY3QgZGV0YWlscyIpKTsKLSAgICAg
ICAgbmVzdGVkTm9kZS5hZGRDaGlsZChyZXN1bHRzLmNyZWF0ZU5vZGUoImRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0LWVsZW1lbnQnKSIpKTsKLQotICAgICAgICB3ZWJJbnNwZWN0b3IuaW5z
cGVjdGVkV2luZG93LmV2YWwoImxvY2F0aW9uLmhyZWYiLCBmdW5jdGlvbihpbnNwZWN0ZWRQYWdl
VVJMKSB7Ci0gICAgICAgICAgICBuZXN0ZWROb2RlLmFkZENoaWxkKHJlc3VsdHMuY3JlYXRlUmVz
b3VyY2VMaW5rKGluc3BlY3RlZFBhZ2VVUkwsIDIwKSk7Ci0KLSAgICAgICAgICAgIGV2YWx1YXRl
T25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5kdW1wQXVkaXRQcm9ncmVzcygpOyByZXBseSgpOyIs
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHJlc3VsdHMuYWRkUmVzdWx0KCJSdWxlIHdp
dGggZGV0YWlscyBzdWJ0cmVlICgxKSIsICJUaGlzIHJ1bGUgaGFzIGEgbG90IG9mIGRldGFpbHMi
LCByZXN1bHRzLlNldmVyaXR5Lldhcm5pbmcsIG5vZGUpOwotICAgICAgICAgICAgICAgIHJlc3Vs
dHMudXBkYXRlUHJvZ3Jlc3MoMTAsIDIwKTsKLSAgICAgICAgICAgICAgICBldmFsdWF0ZU9uRnJv
bnRlbmQoIkluc3BlY3RvclRlc3QuZHVtcEF1ZGl0UHJvZ3Jlc3MoKTsgcmVwbHkoKTsiLCByZXN1
bHRzLmRvbmUuYmluZChyZXN1bHRzKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0g
ICAgfQotICAgIGZ1bmN0aW9uIG9uU3RhcnRBdWRpdEZhaWxlZENhdGVnb3J5KCkKLSAgICB7Ci0g
ICAgICAgIHBlbmRpbmdPdXRwdXQucHVzaCgiZmFpbGVkQ2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQg
ZmlyZWQsIHRocm93aW5nIGV4Y2VwdGlvbiIpOwotICAgICAgICB0aHJvdyAib29wcyEiOwotICAg
IH0KLSAgICBmdW5jdGlvbiBvblN0YXJ0QXVkaXREaXNhYmxlZENhdGVnb3J5KHJlc3VsdHMpCi0g
ICAgewotICAgICAgICBwZW5kaW5nT3V0cHV0LnB1c2goIkZBSUw6IGRpc2FibGVkQ2F0ZWdvcnku
b25BdWRpdFN0YXJ0ZWQgZmlyZWQiKTsKLSAgICAgICAgcmVzdWx0cy5kb25lKCk7Ci0gICAgfQot
Ci0gICAgdmFyIGNhdGVnb3J5ID0gd2ViSW5zcGVjdG9yLmF1ZGl0cy5hZGRDYXRlZ29yeSgiRXh0
ZW5zaW9uIGF1ZGl0cyIpOwotICAgIGNhdGVnb3J5Lm9uQXVkaXRTdGFydGVkLmFkZExpc3RlbmVy
KG9uU3RhcnRBdWRpdENhdGVnb3J5KTsKLQotICAgIHZhciBmYWlsZWRDYXRlZ29yeSA9IHdlYklu
c3BlY3Rvci5hdWRpdHMuYWRkQ2F0ZWdvcnkoIkV4dGVuc2lvbiBhdWRpdHMgdGhhdCBmYWlsIiwg
Mik7Ci0gICAgZmFpbGVkQ2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQuYWRkTGlzdGVuZXIob25TdGFy
dEF1ZGl0RmFpbGVkQ2F0ZWdvcnkpOwotCi0gICAgdmFyIGRpc2FibGVkQ2F0ZWdvcnkgPSB3ZWJJ
bnNwZWN0b3IuYXVkaXRzLmFkZENhdGVnb3J5KCJEaXNhYmxlZCBleHRlbnNpb24gYXVkaXRzIiwg
Mik7Ci0gICAgZGlzYWJsZWRDYXRlZ29yeS5vbkF1ZGl0U3RhcnRlZC5hZGRMaXN0ZW5lcihvblN0
YXJ0QXVkaXREaXNhYmxlZENhdGVnb3J5KTsKLQotICAgIGZ1bmN0aW9uIGF1ZGl0c0RvbmUoKQot
ICAgIHsKLSAgICAgICAgcGVuZGluZ091dHB1dC5zb3J0KCkuZm9yRWFjaChvdXRwdXQpOwotICAg
ICAgICBuZXh0VGVzdCgpOwotICAgIH0KLSAgICBleHRlbnNpb25fcnVuQXVkaXRzKGF1ZGl0c0Rv
bmUpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
LTxwPlRlc3RzIGF1ZGl0cyBzdXBwb3J0IGluIFdlYkluc3BlY3RvciBFeHRlbnNpb25zIEFQSTwv
cD4KLTxzcGFuIGlkPSJ0ZXN0LWVsZW1lbnQiPjxiPjwvYj48L3NwYW4+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLWNvbnNvbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1jb25zb2xlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZmRiN2JmYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy9leHRlbnNpb25zLWNvbnNvbGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTM0ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NjogbG9nIG1lc3NhZ2UKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA0NzogZGVidWcgbWVzc2FnZQotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDQ4OiB3YXJuaW5nIG1lc3NhZ2UKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OTogZXJyb3Ig
bWVzc2FnZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUwOiBsb2cgbWVzc2FnZSB3aXRoIHR3byBw
YXJhbWV0ZXJzLCBhbiBpbnRlZ2VyOiAlZCBhbmQgYSBzdHJpbmc6ICVzCi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTogbG9nIG1lc3NhZ2UgZnJvbSBldmFsdWF0ZWQgY29kZQotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDQ2OiBsb2cgbWVzc2FnZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ3OiBkZWJ1
ZyBtZXNzYWdlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDg6IHdhcm5pbmcgbWVzc2FnZQotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDQ5OiBlcnJvciBtZXNzYWdlCi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgNTA6IGxvZyBtZXNzYWdlIHdpdGggdHdvIHBhcmFtZXRlcnMsIGFuIGludGVnZXI6ICVkIGFu
ZCBhIHN0cmluZzogJXMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBsb2cgbWVzc2FnZSBmcm9t
IGV2YWx1YXRlZCBjb2RlCi1UZXN0cyBtZXRob2RzIG9mIHdlYkluc3BlY3Rvci5jb25zb2xlIGV4
dGVuc2lvbiBBUEkKLQotU3RhcnRlZCBleHRlbnNpb24uCi1SdW5uaW5nIHRlc3RzLi4uCi1SVU5O
SU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0QWRkQ29uc29sZU1lc3NhZ2VzCi1sb2cgbWVzc2FnZSBl
eHRlbnNpb25zLWNvbnNvbGUuaHRtbDo0NiBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2
ZWwKLWRlYnVnIG1lc3NhZ2UgZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWw6NDcgY29uc29sZS1tZXNz
YWdlIGNvbnNvbGUtZGVidWctbGV2ZWwKLXdhcm5pbmcgbWVzc2FnZSBleHRlbnNpb25zLWNvbnNv
bGUuaHRtbDo0OCBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS13YXJuaW5nLWxldmVsCi1lcnJvciBt
ZXNzYWdlIGV4dGVuc2lvbnMtY29uc29sZS5odG1sOjQ5IGNvbnNvbGUtbWVzc2FnZSBjb25zb2xl
LWVycm9yLWxldmVsCi1sb2cgbWVzc2FnZSB3aXRoIHR3byBwYXJhbWV0ZXJzLCBhbiBpbnRlZ2Vy
OiA0MiBhbmQgYSBzdHJpbmc6IGZvbyBleHRlbnNpb25zLWNvbnNvbGUuaHRtbDo1MCBjb25zb2xl
LW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwKLWxvZyBtZXNzYWdlIGZyb20gZXZhbHVhdGVkIGNv
ZGUgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVsCi1kZWJ1ZyBtZXNzYWdlIGZyb20g
ZXh0ZW5zaW9uIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWRlYnVnLWxldmVsCi1sb2cgbWVzc2Fn
ZSBmcm9tIGV4dGVuc2lvbiB0ZXN0LXVybC5odG1sOjQyIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xl
LWxvZy1sZXZlbAotd2FybmluZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIGNvbnNvbGUtbWVzc2Fn
ZSBjb25zb2xlLXdhcm5pbmctbGV2ZWwKLWVycm9yIG1lc3NhZ2UgZnJvbSBleHRlbnNpb24gY29u
c29sZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9u
X3Rlc3RHZXRDb25zb2xlTWVzc2FnZXMKLXsKLSAgICAwIDogewotICAgICAgICBsaW5lIDogNDYK
LSAgICAgICAgc2V2ZXJpdHkgOiAibG9nIgotICAgICAgICB0ZXh0IDogImxvZyBtZXNzYWdlIgot
ICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwKLSAgICB9Ci0gICAgMSA6
IHsKLSAgICAgICAgbGluZSA6IDQ3Ci0gICAgICAgIHNldmVyaXR5IDogImRlYnVnIgotICAgICAg
ICB0ZXh0IDogImRlYnVnIG1lc3NhZ2UiCi0gICAgICAgIHVybCA6IC4uLi9leHRlbnNpb25zLWNv
bnNvbGUuaHRtbAotICAgIH0KLSAgICAyIDogewotICAgICAgICBsaW5lIDogNDgKLSAgICAgICAg
c2V2ZXJpdHkgOiAid2FybmluZyIKLSAgICAgICAgdGV4dCA6ICJ3YXJuaW5nIG1lc3NhZ2UiCi0g
ICAgICAgIHVybCA6IC4uLi9leHRlbnNpb25zLWNvbnNvbGUuaHRtbAotICAgIH0KLSAgICAzIDog
ewotICAgICAgICBsaW5lIDogNDkKLSAgICAgICAgc2V2ZXJpdHkgOiAiZXJyb3IiCi0gICAgICAg
IHRleHQgOiAiZXJyb3IgbWVzc2FnZSIKLSAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lvbnMtY29u
c29sZS5odG1sCi0gICAgfQotICAgIDQgOiB7Ci0gICAgICAgIGxpbmUgOiA1MAotICAgICAgICBz
ZXZlcml0eSA6ICJsb2ciCi0gICAgICAgIHRleHQgOiAibG9nIG1lc3NhZ2Ugd2l0aCB0d28gcGFy
YW1ldGVycywgYW4gaW50ZWdlcjogJWQgYW5kIGEgc3RyaW5nOiAlcyIKLSAgICAgICAgdXJsIDog
Li4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCi0gICAgfQotICAgIDUgOiB7Ci0gICAgICAgIGxp
bmUgOiAxCi0gICAgICAgIHNldmVyaXR5IDogImxvZyIKLSAgICAgICAgdGV4dCA6ICJsb2cgbWVz
c2FnZSBmcm9tIGV2YWx1YXRlZCBjb2RlIgotICAgIH0KLSAgICA2IDogewotICAgICAgICBzZXZl
cml0eSA6ICJkZWJ1ZyIKLSAgICAgICAgdGV4dCA6ICJkZWJ1ZyBtZXNzYWdlIGZyb20gZXh0ZW5z
aW9uIgotICAgIH0KLSAgICA3IDogewotICAgICAgICBsaW5lIDogNDIKLSAgICAgICAgc2V2ZXJp
dHkgOiAibG9nIgotICAgICAgICB0ZXh0IDogImxvZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIgot
ICAgICAgICB1cmwgOiB0ZXN0LXVybC5odG1sCi0gICAgfQotICAgIDggOiB7Ci0gICAgICAgIHNl
dmVyaXR5IDogIndhcm5pbmciCi0gICAgICAgIHRleHQgOiAid2FybmluZyBtZXNzYWdlIGZyb20g
ZXh0ZW5zaW9uIgotICAgIH0KLSAgICA5IDogewotICAgICAgICBsaW5lIDogNDIKLSAgICAgICAg
c2V2ZXJpdHkgOiAiZXJyb3IiCi0gICAgICAgIHRleHQgOiAiZXJyb3IgbWVzc2FnZSBmcm9tIGV4
dGVuc2lvbiIKLSAgICB9Ci19Ci1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0T25Db25zb2xl
TWVzc2FnZUFkZGVkCi17Ci0gICAgMCA6IHsKLSAgICAgICAgbGluZSA6IDQ2Ci0gICAgICAgIHNl
dmVyaXR5IDogImxvZyIKLSAgICAgICAgdGV4dCA6ICJsb2cgbWVzc2FnZSIKLSAgICAgICAgdXJs
IDogLi4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCi0gICAgfQotfQotewotICAgIDAgOiB7Ci0g
ICAgICAgIGxpbmUgOiA0NwotICAgICAgICBzZXZlcml0eSA6ICJkZWJ1ZyIKLSAgICAgICAgdGV4
dCA6ICJkZWJ1ZyBtZXNzYWdlIgotICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9ucy1jb25zb2xl
Lmh0bWwKLSAgICB9Ci19Ci17Ci0gICAgMCA6IHsKLSAgICAgICAgbGluZSA6IDQ4Ci0gICAgICAg
IHNldmVyaXR5IDogIndhcm5pbmciCi0gICAgICAgIHRleHQgOiAid2FybmluZyBtZXNzYWdlIgot
ICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwKLSAgICB9Ci19Ci17Ci0g
ICAgMCA6IHsKLSAgICAgICAgbGluZSA6IDQ5Ci0gICAgICAgIHNldmVyaXR5IDogImVycm9yIgot
ICAgICAgICB0ZXh0IDogImVycm9yIG1lc3NhZ2UiCi0gICAgICAgIHVybCA6IC4uLi9leHRlbnNp
b25zLWNvbnNvbGUuaHRtbAotICAgIH0KLX0KLXsKLSAgICAwIDogewotICAgICAgICBsaW5lIDog
NTAKLSAgICAgICAgc2V2ZXJpdHkgOiAibG9nIgotICAgICAgICB0ZXh0IDogImxvZyBtZXNzYWdl
IHdpdGggdHdvIHBhcmFtZXRlcnMsIGFuIGludGVnZXI6ICVkIGFuZCBhIHN0cmluZzogJXMiCi0g
ICAgICAgIHVybCA6IC4uLi9leHRlbnNpb25zLWNvbnNvbGUuaHRtbAotICAgIH0KLX0KLXsKLSAg
ICAwIDogewotICAgICAgICBsaW5lIDogMQotICAgICAgICBzZXZlcml0eSA6ICJsb2ciCi0gICAg
ICAgIHRleHQgOiAibG9nIG1lc3NhZ2UgZnJvbSBldmFsdWF0ZWQgY29kZSIKLSAgICB9Ci19Ci1B
bGwgdGVzdHMgZG9uZS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy9leHRlbnNpb25zLWNvbnNvbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggODQyYTNjZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLWNvbnNvbGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzIj48L3NjcmlwdD4K
LQotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rl
c3RHZXRDb25zb2xlTWVzc2FnZXMobmV4dFRlc3QpCi17Ci0gICAgZnVuY3Rpb24gY2FsbGJhY2so
bWVzc2FnZXMpCi0gICAgewotICAgICAgICBkdW1wT2JqZWN0KG1lc3NhZ2VzLCB7IHVybDogInVy
bCIgfSk7Ci0gICAgfQotICAgIHdlYkluc3BlY3Rvci5jb25zb2xlLmdldE1lc3NhZ2VzKGNhbGxi
YWNrQW5kTmV4dFRlc3QoY2FsbGJhY2ssIG5leHRUZXN0KSk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVu
c2lvbl90ZXN0QWRkQ29uc29sZU1lc3NhZ2VzKG5leHRUZXN0KQotewotICAgIHdlYkluc3BlY3Rv
ci5jb25zb2xlLmFkZE1lc3NhZ2Uod2ViSW5zcGVjdG9yLmNvbnNvbGUuU2V2ZXJpdHkuRGVidWcs
ICJkZWJ1ZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIik7Ci0gICAgd2ViSW5zcGVjdG9yLmNvbnNv
bGUuYWRkTWVzc2FnZSh3ZWJJbnNwZWN0b3IuY29uc29sZS5TZXZlcml0eS5Mb2csICJsb2cgbWVz
c2FnZSBmcm9tIGV4dGVuc2lvbiIsICJ0ZXN0LXVybC5odG1sIiwgNDIpOwotICAgIHdlYkluc3Bl
Y3Rvci5jb25zb2xlLmFkZE1lc3NhZ2Uod2ViSW5zcGVjdG9yLmNvbnNvbGUuU2V2ZXJpdHkuV2Fy
bmluZywgIndhcm5pbmcgbWVzc2FnZSBmcm9tIGV4dGVuc2lvbiIpOwotICAgIHdlYkluc3BlY3Rv
ci5jb25zb2xlLmFkZE1lc3NhZ2Uod2ViSW5zcGVjdG9yLmNvbnNvbGUuU2V2ZXJpdHkuRXJyb3Is
ICJlcnJvciBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIiwgbnVsbCwgNDIpOwotICAgIHdlYkluc3Bl
Y3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgiIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWx1
YXRlT25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aENsYXNz
ZXMoKTsgcmVwbHkoKTsiLCBuZXh0VGVzdCk7Ci0gICAgfSk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVu
c2lvbl90ZXN0T25Db25zb2xlTWVzc2FnZUFkZGVkKG5leHRUZXN0KQotewotICAgIHZhciBleHBl
Y3RlZE1lc3NhZ2VzID0gNjsKLQotICAgIGZ1bmN0aW9uIG9uTWVzc2FnZShtZXNzYWdlKQotICAg
IHsKLSAgICAgICAgZHVtcE9iamVjdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVu
dHMsIDApLCB7IHVybDogInVybCIgfSk7Ci0gICAgICAgIGlmICghLS1leHBlY3RlZE1lc3NhZ2Vz
KSB7Ci0gICAgICAgICAgICB3ZWJJbnNwZWN0b3IuY29uc29sZS5vbk1lc3NhZ2VBZGRlZC5yZW1v
dmVMaXN0ZW5lcihvbk1lc3NhZ2UpOwotICAgICAgICAgICAgbmV4dFRlc3QoKTsKLSAgICAgICAg
fQotICAgIH0KLSAgICB3ZWJJbnNwZWN0b3IuY29uc29sZS5vbk1lc3NhZ2VBZGRlZC5hZGRMaXN0
ZW5lcihvbk1lc3NhZ2UpOwotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgi
bG9nKCk7Iik7Ci19Ci0KLWZ1bmN0aW9uIGxvZygpCi17Ci0gICAgY29uc29sZS5sb2coImxvZyBt
ZXNzYWdlIik7Ci0gICAgY29uc29sZS5kZWJ1ZygiZGVidWcgbWVzc2FnZSIpOwotICAgIGNvbnNv
bGUud2Fybigid2FybmluZyBtZXNzYWdlIik7Ci0gICAgY29uc29sZS5lcnJvcigiZXJyb3IgbWVz
c2FnZSIpOwotICAgIGNvbnNvbGUubG9nKCJsb2cgbWVzc2FnZSB3aXRoIHR3byBwYXJhbWV0ZXJz
LCBhbiBpbnRlZ2VyOiAlZCBhbmQgYSBzdHJpbmc6ICVzIiwgNDIsICJmb28iKTsKLSAgICBldmFs
KCJjb25zb2xlLmxvZygnbG9nIG1lc3NhZ2UgZnJvbSBldmFsdWF0ZWQgY29kZScpIik7Ci19Ci0K
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2coKTsgcnVuVGVzdCgpIj4KLTxw
PlRlc3RzIG1ldGhvZHMgb2Ygd2ViSW5zcGVjdG9yLmNvbnNvbGUgZXh0ZW5zaW9uIEFQSTwvcD4K
LTxkaXYgaWQ9InRlc3QtZGl2IiBjbGFzcz0idGVzdCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWV2YWwtY29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjIwM2Q0Mi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwtY29udGVudC1zY3Jp
cHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgV2Vi
SW5zcGVjdG9yIGV4dGVuc2lvbiBBUEkKLQotU3RhcnRlZCBleHRlbnNpb24uCi1SdW5uaW5nIHRl
c3RzLi4uCi1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0RXZhbEluQ29udGVudFNjcmlwdENv
bnRleHQKLUV2YWx1YXRlOiAiYnJhdmUgbmV3IHdvcmxkIiAoZXhjZXB0aW9uOiB1bmRlZmluZWQp
Ci1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0RXZhbEluTWFpbldvcmxkRXhwbGljaXQKLUV2
YWx1YXRlOiAibWFpbiB3b3JsZCIgKGV4Y2VwdGlvbjogdW5kZWZpbmVkKQotUlVOTklORyBURVNU
OiBleHRlbnNpb25fdGVzdEV2YWxJbk1haW5Xb3JsZEltcGxpY2l0Ci1FdmFsdWF0ZTogIm1haW4g
d29ybGQiIChleGNlcHRpb246IHVuZGVmaW5lZCkKLUFsbCB0ZXN0cyBkb25lLgotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwtY29u
dGVudC1zY3JpcHQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhYzA0MDRmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNp
b25zL2V4dGVuc2lvbnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LndoZXJlQW1JID0gIm1h
aW4gd29ybGQiOwotCi10ZXN0UnVubmVyLnNldElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbig2
MzIsICJmaWxlOi8vLyIpOwotdGVzdFJ1bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3Js
ZCg2MzIsICJ3aW5kb3cud2hlcmVBbUkgPSAnYnJhdmUgbmV3IHdvcmxkJyIpOwotCi1mdW5jdGlv
biBleHRlbnNpb25fdGVzdEV2YWxJbk1haW5Xb3JsZEltcGxpY2l0KG5leHRUZXN0KQotewotICAg
IHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgid2hlcmVBbUkiLCBjYWxsYmFja0Fu
ZE5leHRUZXN0KGV4dGVuc2lvbl9vbkV2YWwsIG5leHRUZXN0KSk7Ci19Ci0KLWZ1bmN0aW9uIGV4
dGVuc2lvbl90ZXN0RXZhbEluTWFpbldvcmxkRXhwbGljaXQobmV4dFRlc3QpCi17Ci0gICAgd2Vi
SW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJ3aGVyZUFtSSIsIHsgdXNlQ29udGVudFNj
cmlwdENvbnRleHQ6IGZhbHNlIH0sIGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZh
bCwgbmV4dFRlc3QpKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RFdmFsSW5Db250ZW50
U2NyaXB0Q29udGV4dChuZXh0VGVzdCkKLXsKLSAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2lu
ZG93LmV2YWwoIndoZXJlQW1JIiwgeyB1c2VDb250ZW50U2NyaXB0Q29udGV4dDogdHJ1ZSB9LCBj
YWxsYmFja0FuZE5leHRUZXN0KGV4dGVuc2lvbl9vbkV2YWwsIG5leHRUZXN0KSk7Ci19Ci0KLWZ1
bmN0aW9uIGV4dGVuc2lvbl9vbkV2YWwodmFsdWUsIGlzRXhjZXB0aW9uKQotewotICAgIG91dHB1
dCgiRXZhbHVhdGU6ICIgKyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgKyAiIChleGNlcHRpb246ICIg
KyBpc0V4Y2VwdGlvbiArICIpIik7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgV2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEk8L3A+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZWFiY2FkMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMjMgKzAsMCBAQAotVGVzdHMgV2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEkKLQot
U3RhcnRlZCBleHRlbnNpb24uCi1SdW5uaW5nIHRlc3RzLi4uCi1SVU5OSU5HIFRFU1Q6IGV4dGVu
c2lvbl90ZXN0RXZhbENvbnNvbGVBUEkKLUV2YWx1YXRlOiAiZnVuY3Rpb24iIChleGNlcHRpb246
IHVuZGVmaW5lZCkKLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RFdmFsRGVmaW5lc0dsb2Jh
bFN5bWJvbHMKLUV2YWx1YXRlOiB7ImZ1bmMiOiJmdW5jdGlvbiIsInZhcmlhYmxlIjo0Mn0gKGV4
Y2VwdGlvbjogdW5kZWZpbmVkKQotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEV2YWxPawot
RXZhbHVhdGU6IHsic3RyIjoiZm9vIiwibnVtIjo0Mn0gKGV4Y2VwdGlvbjogdW5kZWZpbmVkKQot
UlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEV2YWxTdGF0ZW1lbnQKLUV2YWx1YXRlOiAwIChl
eGNlcHRpb246IHVuZGVmaW5lZCkKLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RFdmFsU3Ry
aW5naWZ5aW5nTG9vcEZhaWxlZAotbG9nOiBFeHRlbnNpb24gc2VydmVyIGVycm9yOiBJbnNwZWN0
b3IgcHJvdG9jb2wgZXJyb3I6IE9iamVjdCBoYXMgdG9vIGxvbmcgcmVmZXJlbmNlIGNoYWluKG11
c3Qgbm90IGJlIGxvbmdlciB0aGFuIDEwMDApCi1FdmFsdWF0ZTogdW5kZWZpbmVkIChleGNlcHRp
b246IHsiY29kZSI6IkVfUFJPVE9DT0xFUlJPUiIsImRlc2NyaXB0aW9uIjoiSW5zcGVjdG9yIHBy
b3RvY29sIGVycm9yOiAlcyIsImRldGFpbHMiOlsiT2JqZWN0IGhhcyB0b28gbG9uZyByZWZlcmVu
Y2UgY2hhaW4obXVzdCBub3QgYmUgbG9uZ2VyIHRoYW4gMTAwMCkiXSwiaXNFcnJvciI6dHJ1ZX0p
Ci1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0RXZhbFRocm93cwotRXZhbHVhdGU6IHVuZGVm
aW5lZCAoZXhjZXB0aW9uOiB7ImlzRXhjZXB0aW9uIjp0cnVlLCJ2YWx1ZSI6InRlc3RFeGNlcHRp
b25TdHJpbmcifSkKLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RFdmFsVW5kZWZpbmVkCi1F
dmFsdWF0ZTogdW5kZWZpbmVkIChleGNlcHRpb246IHVuZGVmaW5lZCkKLVJVTk5JTkcgVEVTVDog
ZXh0ZW5zaW9uX3Rlc3RXaXRoU3RyaW5naWZ5T3ZlcnJpZGRlbgotRXZhbHVhdGU6ICJPSyIgKGV4
Y2VwdGlvbjogdW5kZWZpbmVkKQotQWxsIHRlc3RzIGRvbmUuCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViYjdkYjQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw2NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuaW5zcGVjdGVkVmFs
dWUgPSB7IHN0cjogImZvbyIsIG51bTogNDIgfTsKLQotd2luZG93Lmxvb3AgPSB7IH07Ci13aW5k
b3cubG9vcC5uZXh0ID0gd2luZG93Lmxvb3A7Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0RXZh
bE9rKG5leHRUZXN0KQotewotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgi
aW5zcGVjdGVkVmFsdWUiLCBjYWxsYmFja0FuZE5leHRUZXN0KGV4dGVuc2lvbl9vbkV2YWwsIG5l
eHRUZXN0KSk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0RXZhbFN0cmluZ2lmeWluZ0xv
b3BGYWlsZWQobmV4dFRlc3QpCi17Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5l
dmFsKCJ3aW5kb3cubG9vcCIsIGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZhbCwg
bmV4dFRlc3QpKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RFdmFsRGVmaW5lc0dsb2Jh
bFN5bWJvbHMobmV4dFRlc3QpCi17Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5l
dmFsKCJmdW5jdGlvbiBleHRlbnNpb25GdW5jKCkge30iKTsKLSAgICB3ZWJJbnNwZWN0b3IuaW5z
cGVjdGVkV2luZG93LmV2YWwoImV4dGVuc2lvblZhciA9IDQyOyIpOwotICAgIHdlYkluc3BlY3Rv
ci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgiKHsgZnVuYzogdHlwZW9mIHdpbmRvdy5leHRlbnNpb25G
dW5jLCB2YXJpYWJsZTogd2luZG93LmV4dGVuc2lvblZhciB9KSIsIGNhbGxiYWNrQW5kTmV4dFRl
c3QoZXh0ZW5zaW9uX29uRXZhbCwgbmV4dFRlc3QpKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9u
X3Rlc3RFdmFsU3RhdGVtZW50KG5leHRUZXN0KQotewotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0
ZWRXaW5kb3cuZXZhbCgidmFyIHggPSAzOyB3aGlsZSAoLS14KTsgeCIsIGNhbGxiYWNrQW5kTmV4
dFRlc3QoZXh0ZW5zaW9uX29uRXZhbCwgbmV4dFRlc3QpKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5z
aW9uX3Rlc3RFdmFsVW5kZWZpbmVkKG5leHRUZXN0KQotewotICAgIHdlYkluc3BlY3Rvci5pbnNw
ZWN0ZWRXaW5kb3cuZXZhbCgidW5kZWZpbmVkIiwgY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNp
b25fb25FdmFsLCBuZXh0VGVzdCkpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdEV2YWxD
b25zb2xlQVBJKG5leHRUZXN0KQotewotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cu
ZXZhbCgidHlwZW9mIGluc3BlY3QiLCBjYWxsYmFja0FuZE5leHRUZXN0KGV4dGVuc2lvbl9vbkV2
YWwsIG5leHRUZXN0KSk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0V2l0aFN0cmluZ2lm
eU92ZXJyaWRkZW4obmV4dFRlc3QpCi17Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRv
dy5ldmFsKCIoSlNPTi5zdHJpbmdpZnkgPSBmdW5jdGlvbigpIHsgdGhyb3cgJ29vcHMhIHlvdSBj
YW4gbm90IHVzZSBKU09OLnN0cmluZ2lmeSc7IH0pLCAnT0snIiwgY2FsbGJhY2tBbmROZXh0VGVz
dChleHRlbnNpb25fb25FdmFsLCBuZXh0VGVzdCkpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25f
dGVzdEV2YWxUaHJvd3MobmV4dFRlc3QpCi17Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdp
bmRvdy5ldmFsKCJ0aHJvdygndGVzdEV4Y2VwdGlvblN0cmluZycpIiwgY2FsbGJhY2tBbmROZXh0
VGVzdChleHRlbnNpb25fb25FdmFsLCBuZXh0VGVzdCkpOwotfQotCi1mdW5jdGlvbiBleHRlbnNp
b25fb25FdmFsKHZhbHVlLCBzdGF0dXMpCi17Ci0gICAgdmFyIGV4Y2VwdGlvblN0cmluZyA9IHR5
cGVvZiBzdGF0dXMgPT09ICJ1bmRlZmluZWQiID8gInVuZGVmaW5lZCIgOiBKU09OLnN0cmluZ2lm
eShzdGF0dXMpOwotICAgIG91dHB1dCgiRXZhbHVhdGU6ICIgKyBKU09OLnN0cmluZ2lmeSh2YWx1
ZSkgKyAiIChleGNlcHRpb246ICIgKyBleGNlcHRpb25TdHJpbmcgKyAiKSIpOwotfQotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIFdlYklu
c3BlY3RvciBleHRlbnNpb24gQVBJPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmVudHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmVu
dHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWQyZDNlLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
ZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVRlc3Rz
IFdlYkluc3BlY3RvciBleHRlbnNpb24gQVBJCi0KLVN0YXJ0ZWQgZXh0ZW5zaW9uLgotUnVubmlu
ZyB0ZXN0cy4uLgotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdE9uTmF2aWdhdGVkCi1QYWdl
IHJlbG9hZGVkLgotUGFnZSByZWxvYWRlZC4KLU5hdmlnYXRlZCB0bzogZXh0ZW5zaW9ucy1ldmVu
dHMuaHRtbD9uYXZpZ2F0ZWQKLU5hdmlnYXRlZCB0bzogZXh0ZW5zaW9ucy1ldmVudHMuaHRtbAot
UlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdE9uUmVxdWVzdEZpbmlzaGVkCi1vblJlcXVlc3RG
aW5pc2hlZCBmaXJlZAotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdE9uU2VsZWN0aW9uQ2hh
bmdlZAotb25TZWxlY3Rpb25DaGFuZ2VkIGZpcmVkCi1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90
ZXN0VGltZWxpbmVFdmVudHMKLUdvdCBMYXlvdXQgZXZlbnQgZnJvbSB0aW1lbGluZQotUlVOTklO
RyBURVNUOiBleHRlbnNpb25fdGVzdFZpZXdTaG93SGlkZQotR290IG9uU2hvd24gZXZlbnQgZm9y
IHNpZGViYXIKLVNpZGViYXIgc2hvd24sIGxvY2F0aW9uOiAuLi4vZXh0ZW5zaW9uLXNpZGViYXIu
aHRtbAotR290IG9uSGlkZGVuIGV2ZW50IGZvciBzaWRlYmFyCi1Hb3Qgb25TaG93biBldmVudCBm
b3IgcGFuZWwKLVBhbmVsIHNob3duLCBsb2NhdGlvbjogLi4uL2V4dGVuc2lvbi1wYW5lbC5odG1s
Ci1Hb3Qgb25IaWRkZW4gZXZlbnQgZm9yIHBhbmVsCi1Hb3Qgb25TaG93biBldmVudCBmb3Igc2lk
ZWJhcgotU2lkZWJhciBzaG93biwgbG9jYXRpb246IC4uLi9leHRlbnNpb24tc2lkZWJhci5odG1s
Ci1BbGwgdGVzdHMgZG9uZS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4
dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtZXZlbnRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDJkYzAzM2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1ldmVudHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE2NCArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi1mdW5jdGlvbiBpbml0aWFsaXplX2V4dGVuc2lvbnNT
aWRlYmFyVGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5leHBhbmRTaWRlYmFyID0gZnVuY3Rp
b24oY2FsbGJhY2spCi0gICAgewotICAgICAgICB2YXIgc2lkZWJhciA9IEluc3BlY3RvclRlc3Qu
X2V4dGVuc2lvblNpZGViYXIoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRp
bmdEaXNwYXRjaGVzKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgc2lkZWJhci5leHBhbmQoKTsK
LSAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIEluc3Bl
Y3RvclRlc3QuX2V4dGVuc2lvblNpZGViYXIgPSBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2
YXIgc2lkZWJhclBhbmVzID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJlbGVtZW50cyIpLnNpZGViYXJQ
YW5lczsKLSAgICAgICAgLy8gdGhlIHNpZGViYXIgb2YgaW50ZXJlc3QgaXMgcHJlc3VtZWQgdG8g
YWx3YXlzIGJlIGxhc3QuCi0gICAgICAgIHJldHVybiBzaWRlYmFyUGFuZXNbT2JqZWN0LmtleXMo
c2lkZWJhclBhbmVzKS5wb3AoKV07Ci0gICAgfQotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fZXhw
YW5kU2lkZWJhcihjYWxsYmFjaykKLXsKLSAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIkluc3BlY3Rv
clRlc3QuZXhwYW5kU2lkZWJhcihyZXBseSk7IiwgY2FsbGJhY2spOwotfQotCi1mdW5jdGlvbiBl
eHRlbnNpb25fdGVzdE9uU2VsZWN0aW9uQ2hhbmdlZChuZXh0VGVzdCkKLXsKLSAgICBmdW5jdGlv
biBvblNlbGVjdGlvbkNoYW5nZWQoKQotICAgIHsKLSAgICAgICAgd2ViSW5zcGVjdG9yLnBhbmVs
cy5lbGVtZW50cy5vblNlbGVjdGlvbkNoYW5nZWQucmVtb3ZlTGlzdGVuZXIob25TZWxlY3Rpb25D
aGFuZ2VkKTsKLSAgICAgICAgb3V0cHV0KCJvblNlbGVjdGlvbkNoYW5nZWQgZmlyZWQiKTsKLSAg
ICAgICAgbmV4dFRlc3QoKTsKLSAgICB9Ci0gICAgd2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50
cy5vblNlbGVjdGlvbkNoYW5nZWQuYWRkTGlzdGVuZXIob25TZWxlY3Rpb25DaGFuZ2VkKTsKLSAg
ICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoImluc3BlY3QoZG9jdW1lbnQuYm9k
eS5jaGlsZHJlblswXSksIDAiKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RPblJlcXVl
c3RGaW5pc2hlZChuZXh0VGVzdCkKLXsKLSAgICBmdW5jdGlvbiBvblJlcXVlc3RGaW5pc2hlZCgp
Ci0gICAgewotICAgICAgICB3ZWJJbnNwZWN0b3IubmV0d29yay5vblJlcXVlc3RGaW5pc2hlZC5y
ZW1vdmVMaXN0ZW5lcihvblJlcXVlc3RGaW5pc2hlZCk7Ci0gICAgICAgIG91dHB1dCgib25SZXF1
ZXN0RmluaXNoZWQgZmlyZWQiKTsKLSAgICAgICAgbmV4dFRlc3QoKTsKLSAgICB9Ci0gICAgd2Vi
SW5zcGVjdG9yLm5ldHdvcmsub25SZXF1ZXN0RmluaXNoZWQuYWRkTGlzdGVuZXIob25SZXF1ZXN0
RmluaXNoZWQpOwotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgidmFyIHho
ciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOyB4aHIub3BlbignR0VUJywgJyIgKyBsb2NhdGlvbi5o
cmVmICsgIicsIGZhbHNlKTsgeGhyLnNlbmQobnVsbCk7Iik7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVu
c2lvbl90ZXN0T25OYXZpZ2F0ZWQobmV4dFRlc3QpCi17Ci0gICAgdmFyIHVybHMgPSBbXTsKLSAg
ICB2YXIgbG9hZENvdW50ID0gMDsKLQotICAgIGZ1bmN0aW9uIG9uTG9hZCgpCi0gICAgewotICAg
ICAgICArK2xvYWRDb3VudDsKLSAgICAgICAgcHJvY2Vzc0V2ZW50KCk7Ci0gICAgfQotICAgIGZ1
bmN0aW9uIHByb2Nlc3NFdmVudCgpCi0gICAgewotICAgICAgICBpZiAobG9hZENvdW50ICE9PSB1
cmxzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGxvYWRDb3VudCA9
PT0gMSkKLSAgICAgICAgICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5uYXZp
Z2F0ZShXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTC5zdWJzdHJpbmcoMCwgV2ViSW5zcGVj
dG9yLmluc3BlY3RlZFBhZ2VVUkwuaW5kZXhPZignPycpKSwgcmVwbHkpIiwgb25Mb2FkKTsKLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICB3ZWJJbnNwZWN0b3IubmV0d29yay5vbk5hdmlnYXRl
ZC5yZW1vdmVMaXN0ZW5lcihvbk5hdmlnYXRlZCk7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHVybHMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgb3V0cHV0KCJOYXZpZ2F0
ZWQgdG86ICIgKyB1cmxzW2ldKTsKLSAgICAgICAgICAgIG5leHRUZXN0KCk7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgZnVuY3Rpb24gb25OYXZpZ2F0ZWQodXJsKQotICAgIHsKLSAgICAgICAgdXJs
cy5wdXNoKHVybC5yZXBsYWNlKC9eKC4qXC8pKi8sICIiKSk7Ci0gICAgICAgIHByb2Nlc3NFdmVu
dCgpOwotICAgIH0KLSAgICB3ZWJJbnNwZWN0b3IubmV0d29yay5vbk5hdmlnYXRlZC5hZGRMaXN0
ZW5lcihvbk5hdmlnYXRlZCk7Ci0gICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0
Lm5hdmlnYXRlKFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlVVJMICsgJz9uYXZpZ2F0ZWQnLCBy
ZXBseSkiLCBvbkxvYWQpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdFZpZXdTaG93SGlk
ZShuZXh0VGVzdCkKLXsKLSAgICB2YXIgbGlzdGVuZXJzVG9DbGVhbnVwID0gW107Ci0gICAgdmFy
IHNpZGViYXI7Ci0gICAgdmFyIGJlZW5Ub0V4dGVuc2lvblBhbmVsID0gZmFsc2U7Ci0KLSAgICBm
dW5jdGlvbiBvblZpZXdFdmVudCh0eXBlLCB2aWV3TmFtZSwgdmlld1dpbmRvdykKLSAgICB7Ci0g
ICAgICAgIG91dHB1dCgiR290ICIgKyB0eXBlICsgIiBldmVudCBmb3IgIiArIHZpZXdOYW1lKTsK
LSAgICAgICAgaWYgKHR5cGUgIT09ICJvblNob3duIikKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgaWYgKHZpZXdOYW1lID09PSAicGFuZWwiKSB7Ci0gICAgICAgICAgICBvdXRwdXQoIlBh
bmVsIHNob3duLCBsb2NhdGlvbjogIiArIHRyaW1VUkwodmlld1dpbmRvdy5sb2NhdGlvbi5ocmVm
KSk7Ci0gICAgICAgICAgICBleHRlbnNpb25fc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAgICAg
ICB9IGVsc2UgaWYgKHZpZXdOYW1lID09PSAic2lkZWJhciIpIHsKLSAgICAgICAgICAgIG91dHB1
dCgiU2lkZWJhciBzaG93biwgbG9jYXRpb246ICIgKyB0cmltVVJMKHZpZXdXaW5kb3cubG9jYXRp
b24uaHJlZikpOwotICAgICAgICAgICAgaWYgKCFiZWVuVG9FeHRlbnNpb25QYW5lbCkgewotICAg
ICAgICAgICAgICAgIGV4dGVuc2lvbl9zaG93UGFuZWwoImV4dGVuc2lvbiIpOwotICAgICAgICAg
ICAgICAgIGJlZW5Ub0V4dGVuc2lvblBhbmVsID0gdHJ1ZTsKLSAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgY2xlYW51cExpc3RlbmVycygpOwotICAgICAgICAgICAgICAgIG5l
eHRUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZnVuY3Rpb24g
YWRkTGlzdGVuZXIodmlldywgdmlld05hbWUsIHR5cGUpCi0gICAgewotICAgICAgICB2YXIgbGlz
dGVuZXIgPSBiaW5kKG9uVmlld0V2ZW50LCBudWxsLCB0eXBlLCB2aWV3TmFtZSk7Ci0gICAgICAg
IHZhciBldmVudCA9IHZpZXdbdHlwZV07Ci0gICAgICAgIGxpc3RlbmVyc1RvQ2xlYW51cC5wdXNo
KHsgZXZlbnQ6IGV2ZW50LCBsaXN0ZW5lcjogbGlzdGVuZXIgfSk7Ci0gICAgICAgIGV2ZW50LmFk
ZExpc3RlbmVyKGxpc3RlbmVyKTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gY2xlYW51cExpc3RlbmVy
cygpCi0gICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVyc1RvQ2xlYW51
cC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIGxpc3RlbmVyc1RvQ2xlYW51cFtpXS5ldmVudC5y
ZW1vdmVMaXN0ZW5lcihsaXN0ZW5lcnNUb0NsZWFudXBbaV0ubGlzdGVuZXIpOwotICAgIH0KLSAg
ICBmdW5jdGlvbiBvblBhbmVsQ3JlYXRlZChwYW5lbCkKLSAgICB7Ci0gICAgICAgIGFkZExpc3Rl
bmVyKHBhbmVsLCAicGFuZWwiLCAib25TaG93biIpOwotICAgICAgICBhZGRMaXN0ZW5lcihwYW5l
bCwgInBhbmVsIiwgIm9uSGlkZGVuIik7Ci0gICAgICAgIGFkZExpc3RlbmVyKHNpZGViYXIsICJz
aWRlYmFyIiwgIm9uSGlkZGVuIik7Ci0gICAgICAgIGFkZExpc3RlbmVyKHNpZGViYXIsICJzaWRl
YmFyIiwgIm9uU2hvd24iKTsKLSAgICAgICAgc2lkZWJhci5zZXRQYWdlKGJhc2VQYXRoICsgImV4
dGVuc2lvbi1zaWRlYmFyLmh0bWwiKTsKLSAgICB9Ci0gICAgZXh0ZW5zaW9uX3Nob3dQYW5lbCgi
ZWxlbWVudHMiLCBleHRlbnNpb25fZXhwYW5kU2lkZWJhcik7Ci0gICAgdmFyIGJhc2VQYXRoID0g
bG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXC9bXi9dKiQvLCAiLyIpOwotICAgIGZ1bmN0aW9u
IG9uU2lkZWJhckNyZWF0ZWQoc2lkZWJhclBhbmUpCi0gICAgewotICAgICAgICBzaWRlYmFyID0g
c2lkZWJhclBhbmU7Ci0gICAgICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuY3JlYXRlKCJUZXN0IFBh
bmVsIiwgYmFzZVBhdGggKyAiZXh0ZW5zaW9uLXBhbmVsLnBuZyIsIGJhc2VQYXRoICsgImV4dGVu
c2lvbi1wYW5lbC5odG1sIiwgb25QYW5lbENyZWF0ZWQpOwotICAgIH0KLSAgICB3ZWJJbnNwZWN0
b3IucGFuZWxzLmVsZW1lbnRzLmNyZWF0ZVNpZGViYXJQYW5lKCJUZXN0IFNpZGViYXIiLCBvblNp
ZGViYXJDcmVhdGVkKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RUaW1lbGluZUV2ZW50
cyhuZXh0VGVzdCkKLXsKLSAgICBmdW5jdGlvbiBvblRpbWVsaW5lRXZlbnQocmVjb3JkKQotICAg
IHsKLSAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSAiTGF5b3V0IikgewotICAgICAgICAgICAg
b3V0cHV0KCJHb3QgTGF5b3V0IGV2ZW50IGZyb20gdGltZWxpbmUiKTsKLSAgICAgICAgICAgIHdl
Ykluc3BlY3Rvci50aW1lbGluZS5vbkV2ZW50UmVjb3JkZWQucmVtb3ZlTGlzdGVuZXIob25UaW1l
bGluZUV2ZW50KTsKLSAgICAgICAgICAgIG5leHRUZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICB3ZWJJbnNwZWN0b3IudGltZWxpbmUub25FdmVudFJlY29yZGVkLmFkZExpc3RlbmVyKG9u
VGltZWxpbmVFdmVudCk7Ci0KLSAgICAvLyBUcmlnZ2VyIGEgcmVsYXlvdXQuCi0gICAgd2ViSW5z
cGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJkb2N1bWVudC5ib2R5LnN0eWxlLmZsb2F0ID0g
J2xlZnQnOyIpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLTxwPlRlc3RzIFdlYkluc3BlY3RvciBleHRlbnNpb24gQVBJPC9wPgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0
ZW5zaW9ucy1uZXR3b3JrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zL2V4dGVuc2lvbnMtbmV0d29yay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDEwMzZhMmMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1uZXR3b3JrLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMyICswLDAgQEAKLVRlc3RzIFdlYkluc3BlY3RvciBleHRlbnNpb24gQVBJCi0KLSAK
LVBhZ2UgcmVsb2FkZWQuCi1TdGFydGVkIGV4dGVuc2lvbi4KLVJ1bm5pbmcgdGVzdHMuLi4KLVJV
Tk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RHZXRIQVIKLXJlc291cmNlOiAuLi4vdGVzdHMvaW5z
cGVjdG9yL2V4dGVuc2lvbnMtbmV0d29yay10ZXN0LmpzCi1yZXNvdXJjZTogLi4uL3Rlc3RzL2lu
c3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMKLXJlc291cmNlOiAuLi4vdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzCi1yZXNvdXJjZTogLi4uL2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtbmV0d29yay5odG1sCi1yZXNvdXJjZTogLi4uL2luc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtbmV0d29yay5odG1sCi1yZXNvdXJjZTogLi4uL2V4dGVuc2lvbnMvcmVzb3Vy
Y2VzL2FiZS5wbmcKLXJlc291cmNlOiAuLi4vZXh0ZW5zaW9ucy9yZXNvdXJjZXMvYXVkaXRzLXN0
eWxlMS5jc3MKLXJlc291cmNlOiAuLi4vZXh0ZW5zaW9ucy9yZXNvdXJjZXMvbWlzc2luZy1pbWFn
ZS5wbmcKLXJlc291cmNlOiAuLi4vTGF5b3V0VGVzdHMvcmVzb3VyY2VzL0FoZW0udHRmCi1SVU5O
SU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0R2V0UmVxdWVzdENvbnRlbnQKLXsKLSAgICAwIDogIi5z
b21lLXN0eWxlIHsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwotfSIKLSAgICAxIDogIiIK
LX0KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RHZXRSZXNvdXJjZUNvbnRlbnRFbmNvZGVk
Ci17Ci0gICAgMCA6ICJpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRXdBQUFCbkNBSUFBQUFsbmpP
SkFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFnQUVsRVFWUjRuRzE4YVd3YzUzbi96T3pN
N016c2ZTOTNlUitpZUlpa3BFaFJTTW1XTGNlS2JUbEhIY1d1RXp2Tmw3UW9naDZmaWdKRmdhSm8r
NmtGQ2pSQWc3Yi93a2xRRjAxaHVHa1ZxWElkeWJVczZxWWtrdUlsTHNWZGNzbmwzdmZzN0J6L0R6
L082NUhjK1VBczk1aDUzL2U1ZnMvdmVkNlh2bkxsaWlBSWtpU3hMR3NZaHFxcW1xWVpoaUZKRXNN
d0RNUFFORTFSRkUzVCtGZlROSTdqTkUxck5wc013emdjRGszVGFyV2FMTXMybTQybTZYYTczVzYz
ZFYybmFacW1hVVZST0k0ekRFT1daVlZWYlRZYnd6QzZycXVxNm5RNk9ZNXJOcHVxcWdxQ0lJb2l3
ekEybTgxbXMyRWt1SW11NisxMnU5VnFzU3pMOHp6SGNiZ0podFJzTnZIQ1pya3dERjNYRGNQUWRa
MWxXWlpoR0lxaURNUFFOQTB6cENpSzR6aE1EeC9oVFlxaVdKYkZnMjAybXlpS2dpQlVLcFZTcWVU
eGVEUk5veWpLYnJjekRGT3YxOXZ0TnNNd2Ryc2Q3MHVTUkZHVXBtazBUYk1zMjJnMDJ1MjJvaWcy
bTgzbGNnbUNZQmlHb2lpR1lkQTBiYlBac0RUNGlhN3J1QzBtUUZFVW1UOUdSWnNYbVR4a2hubXll
SmRNbXFJb1NNeG1zK0gzK0lqSXM5MXUyMncyUVJBd2lIYTdMUWpDd01CQXRWcHROQnFxcWpJTVl4
Z0dGcHZuZWNpRXBtbXNXcXZWd3FkdXR4c3l4RGV4OEhnY0dRT2VxS3FxWVJqNE9kRXNpQVFESTlN
akk4Yzdobm50VHhjTGc1dXlMQXVGd2IzSUpIRWp2OTlmcjljcGlvSjJsY3RsV1pZWmhuRTZuVHpQ
TnhxTmVyMnVxaXB1Z2w5QldhQ2xQTTlqbVhtZTUza2V6MVZWVlZFVXU5M3VjcmxxdFpyMXQwUnVX
RHZLdk1nRWlPaUl4aEt6SXBySWtnOHdkWElYVlZYSjdhd3FrYzFtWTdHWUpFazdPenVKUktMUmFE
aWRUcmZibmNsa2ZENmZJQWlRbTkxdTEzVzlWcXN4RENNSUFzdXlXSGlvQUVWUmlxSm9tc1l3REd5
TW9pajhGVVVSaXdLUkV0VWxPZ1U1NHlOaStXUnU1SUtON0lzTkMwQXNEWmRWeTU5NTdmVjZEY080
ZWZQbWUrKzk5ei8vOHorR1lZVERZWjduUjBaR1JrWkdob2FHNEU0d2RMdmREajlFVVJUeEdVUU9l
QlpVbDZJb1daWmJyWllrU1JBalJra0VpTCtZRmZHSUVCY1JJOTc4NHJCWnVBZWU1NjJXK293ZDR3
Y1ltY2ZqK2NVdmZ2SDNmLy8zZCsvZWRUZ2NzVmlzMld4bU1wbk56YzIxdGJYUjBkRm9OTXJ6dkNB
SW9WQW9IQTdMc3B6TDVRekRpRWFqRG9lalZDb1ZpMFZkMTkxdU41UkZrcVJRS0JRTUJpRXVLRFAr
NGwvTUJJcUFzV0ZXK0JjclFnUklabWhWZUZhV1pXZ1grU1dtQkYyQ1loQzkxWFY5WjJkbmRuWjJh
V25KNC9INC9mNjl2VDFabGdPQkFNZHhlM3Q3cXFxdXI2L1hhclYydXowNE9IajQ4T0d0cmEzRnhV
VlpsZzhjT09CeXVWWlhWemMyTm5SZGowYWpvaWp5UEMrS1lpd1dHeDBkSFJnWThIcTlmcjhmTTdR
S0JNcUZBZENXQzZ0Zy9aZGNWbHVsUC9yb0l5eTgzVzZIT2tIdU5wdXQzVzVybW9aLzhUT080NHJG
NHV1dnY2NG9TcjFlOS9sOEhNZUZ3MkdmenlmTGNuZDM5K0Rnb01maktaZkxpVVFpa1VqazgvbmUz
bDVZWUxGWXpHYXo1WElaSGxXVzVYZzhQalUxTlR3OHpEQk1QcCtuYWRydjkvTThINC9IM1c2M0tJ
cnhlRHdhalhJY3ArdTZMTXVWU3NYbGN1bTZYcTFXb2RYUUJTSU1DQloyUVF4NFA0UVFyME9jT0pR
RVZ2R01pVzV2YjFlclZWM1hGVVZwTkJwWWRWVlZoNGFHc3Rsc0twWHllcjA5UFQzOS9mM2QzZDNW
YW5WemMzTnZieStWU3VWeU9SaW5ydXU0ZWJsY3ptUXlUcWRUMS9Wa01wbkw1WFJkRndUQlpyUFY2
L1ZtcytuMWVzZkd4czZjT2ZQODg4K0xvdWgydTNWZDV6ak83L2RqQW9xaVFQdXNVeUllRkZQYlJ3
SzBKZkxBQVBBOXErcHpISWZWeW1henhHc3BpZ0svVWk2WEh6MTZKRWtTeDNGNDArbDA5dmIyZG5a
MlFyQzZycmRhTGNSWXNvNkZRbUZoWVdGM2Q5ZG1zeFdMUlFpWjUzbTczVzYzMjFtVzNkcmFTaVFT
OC9QenM3T3ozLzN1ZHc4ZVBOaHF0ZkRvU3FVaUNBS1JrRFVRWUJFaFZmaFUxckJjVmdEUmJyZGhx
TVNoSWFCbHMxbThDZDFHckcrMzJ3UWhZVjFLcGRMaTR1TGEydHJrNUdTOVhvY2NLcFVLNW1tMzJ5
bUthalFhK1h5K1VDZ2c1RElNSTRvaVFCekRNQTZIUXhURmJEYWJTQ1RxOWZxaFE0Y09IanlJUnp1
ZFRrM1RYQzRYNEFTeFE2dXpoTlpBY3ArREFTdXNzWVlnTWtuZzFmWDE5V2F6Mlc2M2VaNG44VkJS
Rk5nTVlBRG1nSDhybFFyMEJUTEhHdU51VUEzNEdFZ0FrbFFVcFZLcDVQTjVqOGVER05ob05CS0pC
T0F4VkJTQnFsZ3M0bGxFT2EyS1NadTRsN1hhMnpPT2kzd2JyMlZaTGhhTEd4c2JCRHJqcWJpUkxN
dE9wNVBnZFNBWXQ5dGRLQlRJU2tQNFdCVGdac3dUWUpDb0djd1NDMGRSVkx2ZHJ0VnF4V0tSb3Fp
T2pvNTZ2ZDVxdGVyMU9zSWVGSWMyTVRvSkIwQ2R1Q2RyeFFwV1Iwd3NrOERhWnJPWnorZVR5U1JO
MDVJa1NaSlVxOVhnZmdWQkNJZkQwQWlHWWR4dU4vS0dTcVhpOFhoZ3BiUUpYOXZ0TmxBUkFoWGNH
OC96VVA1V3F3VTVRK3dZcnRQcDNOblpXVmhZaUVRaWdpREFjQ2lLaWthamxVcUZ3RjNFUm93V2Q4
UGtuNEoxVmdzbVlzUWs4ZmhxdGJxMXRkVnV0OTF1dDl2dGhzcEpraVNLSW9UWmFyVmtXU2JRbWVm
NWFyVktWQWpvL0JtOEJ1TmhHQVpBRCtDV1lSZ0FRTnlOb3FpYk4yLys1Q2MvZWZMa3llVGs1T2pv
cU0vbkt4UUs5WHFkUkF2YzhJdmhnQUoycFUxQWg5a1RjQ2NJUXJQWmhFcGtNaG1QeDFNcWxUaU84
M2c4clZacmIyOFBvYlhaYkJZS0JTSWlFb2cxVFZOVmxlTTR1RVJKa21DV0hvK251N3Y3MUtsVEhv
L0hicmRuTXBtSER4OHVMeTlEc1JHZm9iR3lMUE04NzNLNTRJYzJOalorL09NZmQzZDMvOG1mL01t
aFE0ZmNibmU5WGlmNmlWbGdnYUNySkp5d0JCblFUK005aG1HcTFTckJWajZmcjlsc3JxeXMxR28x
QWswTncyZzBHbzFHQTZPeG9tY1NEQW5DYWphYkZFVU5EZzUrNjF2ZmV1MjExd0tCZ05QcFpGbTJY
QzQvZWZMa3pwMDdGeTlldkhuekptTW1hTFZhelRBTWg4T2g2M3FwVklLM3AyazZtVXgrOE1FSGtV
aEVGRVdIdy9GTS9tQU4rNStEQVpMRldNRUFIR0M5WHZkNFBPMTJHeTcrOGVQSDE2OWZSOEFrd29j
L0ZBUUJWb2VJMG1xMWNGdWd0bmE3N2ZmN2p4MDdkdWJNbWFtcHFXQXdpUEFGNndvR2c3RlliSHg4
ZkhCd2NIeDgvRmUvK2xXdFZxTW95dXYxMXV2MXZiMDlTWks2dXJvcWxRcHVXNjFXTDF5NDhPYWJi
NGJEWWJneDZ5Uy82RGdwaW1LeDJBUWxrSVVoNndHM3ViVzE5ZkhISHk4dExUbWRUaVM0UkU4UTkx
cXRGdWFQcDlydDltQXc2UGY3anh3NU1qbzZPalUxRlkxR1lmeGdPb0FOY0N1SHcrSDMrNy82MWE5
T1RVMk5qWTFkdkhqeDAwOC9iYlZheUU1VVZTMlZTZzZIUTFWVkdHRW1rMG1uMDdGWURBKzFZaDJN
MlRwSm1xWlo0dDhKSk1CWFZWVVZSUkVxMTI2Mzc5NjllL1hxVlF3TG5sMlNKT2dQYnRUVDArUDFl
ajBlRDVUVDQvSDA5ZlYxZFhXOTl0cHJaQVU1am1OWlZwYmxVcWtVQ0FRTXd5Q2NDSExscnE2dUgv
emdCNGNQSDM3Ly9mY3ZYYnBVTHBjRlFkQTByZFZxd1lCcnRSclA4NjFXYTNaMmRueDhuQ0NRWjVT
V01yTlRpR28vbjhSYkpJV0RFMmRaRmpSVXJWYTdmLy8rOXZZMkxBUmVudWQ1bjg4bmlxTFA1d3NF
QXJGWUxCZ01SaUlSbDh2Rjg3emI3ZTdvNkFpSHc2VlNTUkFFbnVmaGgzQmJuOCtIOEFPL3duRWNx
Qk9iemFacDJwZSs5Q1cvM3o4eU1uTDE2dFU3ZCs3SXN0elgxNWZQNXdPQmdLSW9GRVVwaXZMWlo1
OUI4aVJCc2M2VHNwQUpORTJ6UkltSkpQRTludWVoUzVJa2JXeHNKQklKT0d2SU1CQUlEQThQZDNk
M2U3M2VlRHplMWRYRmNad2tTVTZuVTVJa1VCdmdwaHdPQjVZUHRxcHBHc2hCeE5KOTJNV3kwQm84
dlZ3dWk2TDQybXV2alk2Ty92TS8vL09WSzFkS3BSSkU3WEE0NnZXNnJ1dVpUT2IyN2RzOVBUMCtu
NDlNejdBd0cxWWFnU1VFanpWamh1VlVLaFc4eUdhemhVTEI2WFNtMDJtZTUvMSsvOFRFeE1tVEo3
dTd1eEVuZzhGZ0tCUUNFb0pIWVZsVzEvVkdvMkczMnhWRkFYN0F4UEExd0YzRE1CQWVSVkcwMld5
dFZrc1FCSWZEZ2ZqcDgvbUN3U0J5RklaaElHMVpsaUdsaHc4ZlF1YTBtWEJhRGZLcGRBUnJqR2ZE
cWJJc0MvMEJlYk83dTh0eFhDQVFxRlFxVHFlelhxOGZQbno0bFZkZU9YTGtpTWZqY2JsYzhYZ2NZ
aWZUdzYzaFFrbmVvQ2dLd2RNa204UDZhcHFHM0FwZlEwQnl1OTFlcjNkd2NMQy92OTh3REkvSGsw
d21YMzMxVlFnOG1VdytlZkprZm40K2s4azBHZzA4RkpRYVFqZHRJVFQybjBTMGxNaGRGRVVvbU4x
dUQ0ZkRTR1RCNVJ3N2Rpd2FqYklzRzRsRUVBOWdWNFJsZ3hKaTdheFlpb0JKNjBPdGwyRVlQTThE
RzBFTFJrZEhEeDgrM05IUkFRTmpHT2FkZDk1QllnbXhBOThERENQQWdvYUcvZU12UXlqelo5d3NJ
U0FFUVhDNzNXQXJHSVpCK2k5SmtpekxkcnRkRkVYRHpNZVJDc0xrb0FVZWo0Y2dCK3NLR3BZMDF3
cVNDY1dHck44d2pMNit2aE1uVG95T2pyYmI3ZjcrL21xMU9qTXpNejA5SFl2RkVva0VRQklTUzhw
ayttRDJWdWkyUDhsbjFwV3NoOTF1eDdlRHdTQ1NQVW1TWUxTQTdCUkZRVmRiVDE4a255WVNmb1pO
c3pvNXE2aUJiNTFPcDkxdUIvL1UyZGs1T2pvYURBWnBtbDVlWHE3VmFpTWpJOFBEdzVGSVpHVmxK
Wi9QSTFBVG5wSGdXSEx0SnpoazBzVEh3dldwcWdyNGV1REFnWEE0VERJTUVNR05Sa1BUTkVtU21z
MG1TWE53UStncVlCRDlCYXovVEV3akY4Rk0wRnNBR2ttU09qczd6NTQ5dTc2K1BqOC9mK2ZPblVL
aHdISGNxNisrMm1nMGxwZVhLNVVLWWcvS0xjQVAxbVZsaU1PMVhsZ01XWmFyMWFxbWFSNlBaM2g0
T0JnTUlxeGhBb2pnbFVxbDJXeFdLcFZHbzlGc05sdXRGb2FJREFPRkVIS1J4U1poMmpvOUtBaDBw
MTZ2SS9kSGN1eDJ1OCtlUFh2bzBLRlNxWFR4NHNWQ29iQzd1OXRzTm4wKzMvTHljaktaVkJRRklC
RUIzSm82NjdyKzFEK2s0SU1McmgvOHYyRVlLR09CZlNrVUNpQjc0Qmp0ZG51bFVxbFVLdFZxdFZh
clljS0tvaUIyazRzQUR5andNL01FQ0tITTBwQXN5NmdtSUl4RklwSGYrcTNmNnVqb2VQejRNVmI1
OHVYTDI5dmJHeHNiQ3dzTGUzdDdnaURBRkFsWC9qbDJ0VTZTc29CWUNNVGhjRGlkemthanNiMjlu
VTZua1grNVhDNFFkdkY0SFA0TkdUTWNvSlg4aHo4a3NaZE1oakxSbFZXU21LU2lLRDZmejJhendl
QVpzNExTYXJWR1JrYjYrdnFheldheFdBd0dnNDhlUGRyYjJ6dDgrUER5OHZMdzhIQTBHc1hTd0F0
YTZhdDk0TVpZV0Vrays0cWl1TjN1YXJWcXM5bENvZERzN0N3a3c3SnNNcG5NNS9PcXFucTkzb01I
RDFJVUJTRWpncXVxNm5BNGtDc0hnMEdHWVNxVkNydzBTYVlocm1LeENKV0dTUVBXTmhvTlNFK1Nw
SFE2VFZFVUdNQnl1Znpnd1lOSGp4NXhISmRPcHdPQkFOaWRsWlVWbG1XZFRtZEhSd2ZvUWl3V0tC
VmNMQlllYjFGbW1BWTZKNWE1c3JKeS8vNzlUQ2FqNjNvNm5VYmt3SUxCUXlDMUkzVTdWVlZoV2dC
b2tpUWhGMnMybXh6SE9Sd09lQlNQeDRNblF1YUtvcWlxR2d3R204MG1ZbGcrbjkvWTJPanA2VGw2
OUdpejJVd21rNlZTU2RkMVFCU1daWnZOWnIxZVgxcGFNZ3hqZkh6ODJMRmprVWhFbHVWQ29ZQlVj
MStTRUIxaktSREFRU0dqcDJtNlZxdmR2WHYzeG8wYm1Vekc2L1ZtczltQmdZR2hvU0dmejlmWjJR
bEtHN1huVnF1RmVGaXRWajBlRDh1eTBHcFM5QlZGRVdsS3NWaVVaUmw0QS9rcUZnV2hHTkVMQTVp
Ym04dG1zMGVQSGwxZVhwNmZud2RHNys3dWJyVmE0WEI0ZTN1N1ZxdXBxcHJQNTR2Rm9xcXF3UDEy
dTkzS1hUMWxrekJXVEJ1Sk9jL3orWHgrWVdGaGMzTVRFYlhaYkNKOFlSQ1FQSDRpU1JJTVcxVlZm
QmtFS1pUVDRYRElzcHhLcFJZV0ZoNCtmRmdxbGFhbnAwZEdSa2pCcjFRcXdRdGd1V1ZaeGlPV2w1
ZDNkbllrU1lKL0xoYUxvaWllUFh0MmFHaW9VcW44OUtjLzNkN2VoaEVLZ2xBdWwxbVd4Vm9Rajgy
UytQWk1VRWFJVTFVMWxVcHRibTRDMzJtYXRyYTIxbXcyRnhZV29MUnV0enNRQ1BqOS9wNmVudkh4
Y2FRdjhISlE3RXFsa3MxbXE5VnFzVmhjWEZ4OCtQQWh0QTQxRWlTaVdFMjRSMW1XNGIxa1dVYU9C
citkeStWcXRacmI3UTZGUW9jUEh4NFlHTGgxNjlhZE8zZWdkKzEydTFRcUFYVVIwRThneCtlU05M
NVFXcVlvcWw2dmwwb2xWVlVCZEhSZHoyYXp4V0lSU1laaEdBQjlraVNCbTNLNzNXQmZPanM3bDVl
WG56eDU0bks1NXVibVZsWldjcmxjT3AwRzEreDBPamMyTmo3ODhFTmtFaSsrK09MWTJCakhjZFZx
RlhnZEJTK1B4d01HaEtLb2JEYXI2N3JYNnhWRjhkNjllN3U3dTlldVhkdmUzdlo2dlVoV1pGbHVO
cHZvNTBCdS9ibTZXcU16WXlsWmt5RG04WGg2ZW5vS2hVSXFsVUw2ZzRRRHRKcWlLS2prb0NqZ2RE
cTd1N3ZENGZDNzc3NHJ5L0tISDM2WXkrVlNxWlNpS0JnM3lwTFZhbFVVeGUzdGJZcWlvdEhvMXRa
V1IwZEhNQmlFNnlMcHBTQUlyVllybDh2SnNwekpaRnd1MTdGangrcjErdHpjbkNpS0w3LzhzaVJK
VjY1Y0FjOENXZ3hCbThUaHo3MHJ3YXRXZVdxYUJtd2RpOFZxdGRyVzFsWXFsZEoxSGVER1pyT0pv
a2hSRkR3RWJBbVU3Tzd1YmpRYS9aM2YrWjJ1cnE1VUtvVWc1SFE2S1lxcTFXbzBUWVBJUklxenM3
Tno0Y0tGWC8vNjF5ZFBubnpublhlbXA2ZlJEMExUZExGWWJMVmFjTTdsY2htREdSb2FXbDVlaGd2
OHhqZStBWko2ZTN1NzJXenlQQjhLaGNCM2tSVDg4emhKMHpTb1I2U3pITWNSWmdWTGN1REFnVXdt
OCtEQkE1N25RYy9CTVNMblJEK0V3K0hBcDVxbXpjek1nQlErZi83OCsrKy9YeTZYRVFZMVRmTjZ2
YVZTcWErdjcrREJnNElnb0dnbENNTE5temNGUVVBMUhpUWdTcFEybTIxblo0ZW02WGE3UFRBd2tN
MW1rOGxrTkJvTkJBS0lUTWVPSFd1MzIrRncrRXRmK2xLMVdrV3N0Z3FNb2lqYm0yKyt5VmlxQ0FR
V0Vjb1U0c3BtczQ4ZVBVSVJqakJBYnJjYlgvRDVmUGw4bmlRY2ZYMTl3V0RRNS9QRjQzRzRvbVF5
V2EvWENXak81L095TEkrT2pvNlBqNE9WTHhhTFRxZno0TUdEMFdnVWZvdW02VktwZE92V3JVUWlJ
WXBpYjIrdnBtbnBkQnIxN0Znc05qSXk0dmY3T3pvNmhvYUdSa2RIQTRFQWJiTHlHQjZabCszTk45
OGsySXBrZEVoRENmWURGYkt5c3JLN3UwdkVpRFFLeFN5S292QW1nTTc1OCtkUG5qeloxZFdGZkJv
VmRUakdiRGFMMmttOVhyOTM3OTdLeWdwTjArRndHUHJjYXJXbXBxWWNEZ2VxWnRWcXRWQW9sTXZs
QXdjT25EeDVzbGdzenMzTkljREN4MGFqVVZtV0k1R0lKRW43bXNteVlOdWVza25LMG81RWNnVTRa
YWdmNkJtLzN4K1B4OWZXMWdqamhreks2WFFpTDZsVUtzQ3I3WFlibUFZUGlNVmlMNzMwVXIxZS8r
aWpqeWlLaXNWaWtVaGtmWDI5djcvLytQSGpwMDZkYXJmYitYeGVFQVNvVExQWkJINUFTamsxTlZV
b0ZIcDdleWNuSjFWVnZYbnpacVZTUWUwTXZnRGtvQ3pMS0xDVFZCYVZSWXpCOXAzdmZFYzNhMllr
RlVLMFFEWU0yRW5UTklJVndCcE4wNklvZ2xNQ2VvWWtXWmFOeCtOdnZQRUdYR1dqMFVCVlkzaDRH
RkFlWWJDN3U3dFdxK1Z5dVdBd2VQejQ4VU9IRG9WQ0lhL1gyOS9mNzNRNlVRZ0Q5ZTV3T1BMNS9N
REF3T0RnSU1Nd0N3c0w2K3ZydXE2UGpvNCs5OXh6U0d0Uk1nS1pxSnZ0YUtUVmd3YTViTFZSSW1K
SUhGb09ZUTRNREJ3OGVEQ1ZTb0diOG5xOWRydTlXcTIyV2kyWHl3WDE3dW5wZWVXVlY3Nzg1Uzh6
REZNc0ZnRkUrdnY3OC9rOE9QVVRKMDVVcTlYZDNkM1RwMDhmT0hEZzZOR2pTT0xBcnlOc0lNT2lL
TXB1dHlOYUJvTkJ1OTArTURBd01URngvLzU5dTkzZTFkWGw5L3ZCSHVUeitYQTQzR3ExYXJXYTEr
c2xaVStTMzlqZWVPTU5vTEJuc2o0Z1FGSkxROUtFZU5EYjI0dWhkSFoydXQxdXZFZ2tFbU5qWStm
T25Ydnh4UmY5Zm4rcFZGSVVCWm9NS09OeXVUWTJOdGJXMXFMUjZQZSs5NzJwcVNtLzMrL3orVUQ1
WVRSZFhWMm90NU9zVFpibHpjM05lRHdPbnJKUUtPenM3SFIxZFgzdGExOGJHUmxCSStMMTY5ZEJL
Um1HNFhhNzBhNWhaZEJ0My96bU4wbVYyNXJhb1ZTTWdHR1lUWURGWWpFVUNyMzQ0b3VxcXE2dXJx
SWF0N3E2V2lnVVhuNzU1ZWVlZTI1aVlnSnJHUTZIN1haN3NWakVjalFhamE5ODVTczlQVDJxcW01
dGJjM096Z0pZZ3pjQ2JBSzBBUE9QdWwyajBjaG1zeXNySzhGZzBPVnlHWVpSclZieitYeFBUOC8w
OUxUZjcxZFY5ZU9QUC83YnYvMWJYZGRScDNDNVhPVnlHVjhtYzJFYmpRWkJyZnRtYXJNaGtBQUt3
eXdsU1VKM1p6Z2NwaWpxekprekxNc3VMQ3djUEhqd2hSZGVjRHFkTXpNejYrdnJHeHNiQnc0Y1FP
Qk9KcFBvN3dFbGtVcWxlbnQ3ejU0OSs4WWJiK1R6K2QzZFhUaFZraEpBZ0tRSXJTaksrdnI2N3U3
dXIzLzk2ME9IRG9HWWpVYWpmL2lIZndob0NreHkvLzc5VUNpRUVJQVY5SHE5eUorSTByS0FBU1NF
VUNiYlJjZ0l3K3hFWkZsV2txVGJ0MitMb2pnOFBEdzVPVGs0T0lpMG1PTzQxZFhWWEM3M3dnc3Zr
QjVDQUVCRlVicTZ1dGJYMXgwT1I2VlNnVlY3UEo1NFBJNTZFUVlFSWtMWGRheExQcDlmWFYyOWV2
WHFqUnMzUVBPVVNpV2Z6d2RmU3BrTXh1Ym1aakFZZlBubGw0OGZQKzd4ZUlEcEVmRGdYZmNOa0hy
NklsZ0JnZHV3OUwyd0xJdEYydG5aS1JhTGZyOC9Gb3NCSjBVaWtjSEJ3WGE3aldLQllSaGdnQVJC
Nk96c3ZILy9QanErc0Zpam82TW9MWUlLSk05Q1hwL0paRlJWVGFmVHE2dXIxNjlmMzl6Y0hCd2Ny
RmFyZHJ2ZDcvZTdYQzU4TXhBSW9CQStPRGg0NnRTcFE0Y093UzVJYkdNc3BEWmpKZEZvcytjWFJC
QkpGQ21UTVVDTDVQYjJkcVZTUVdLS0pNdmxjdjN5bDcvYzJkbEJ5dzVRQzRJSDVGYXRWaTlkdWdT
OHRyR3hnVENJWEJuRVBHcVBXMXRiNVhLNVVxbklzdHh1dDNkMmRweE9aendlQjM1QWtvbThES3N2
U2RMWTJGZzRIRVlVOFhxOURNT2dNWVRFRDRxaVRPRHpmL1dBUUpJRUp4aG1jWHR6Y3hPdGNEelBS
eUlSWGRjLy9QRERUei85OVBqeDR4MGRIYUlvb3ViUmJyZXoyV3lwVk1JcTVQUDVuL3prSndBb3dJ
UHdNZERZY3JsY0xCYlgxdFlXRnhldlg3K3U2enBxekpGSVpHQmdZSFIwbEhEcUxwZExGTVZHbzFH
cjFWd3VWelFhUldvT2VJQXB3RjFUWnBLODMxaGtQRjNjTTB3U0dxa25YaUNJalkyTi9leG5Qd05W
SVFnQ1dJbkxseStQajQrSFFxRmtNdG5WMVlYNkxGRlhRSlp3T1B6bmYvN25pVVRpci83cXIzdytI
eXdaMmw2cjFWQ2lLUlFLcTZ1clhxKzN1N3Y3OGVQSDQrUGpJeU1qWHEvM3lwVXJ6ei8vUEVnRFFQ
OUNvYURyT2h3c1NpUE5ack5VS29GNXNsb2ZUZFA3QVAyTEYyQTZUQkZvQmg0L0dBeGV2WHAxYVdr
Sm1lU2RPM2Z1M2J2WGJyY2JqY2JDd3NLREJ3OGcvRWFqZ1p3QU9TR2F1SHA2ZWo3ODhNTkVJaEdM
eFFnY0E2eUQ2NTZibTJOWmRuQndNQnFOWmpLWjhmSHg4Zkh4Mjdkdi8vVmYvM1VvRkhJNm5kVnFk
V05qSTUvUEk0RUczRUh1QmllSDFBOFJnY2lNTlo0bTdZbkdBdXpDczVOYUZjTXdrVWprOU9uVC8v
VmYvM1g1OG1Xd1ZaVkt4ZTEyKy8zKytmbDVpcUkrL3ZoanU5M2UzOThQbUpyTlp0SGY4NmQvK3Fm
dnZQUE8rdnI2KysrL3Y3YTI5dFpiYjNWMmRsSVVKVWtTNkFLMGZBOE9Eb3FpbUVxbFhuLzlkV1Ru
OSs3ZFV4VGx6LzdzejM3djkzNnZwNmNubjgrSFFxSFIwVkZKa2tDTFFyYWt2TTlZeUVkSWtvV2lB
MG1SWmdxYjJkd0RENFQrQTl5Q3B1blRwMDkvOE1FSFNDbjhmajlTcmNuSnlVYWpzYm01YWJQWnl1
WHlyVnUza0ZYelBPOTBPdDk0NHcySHc4R3k3SGUvKzEyTzQzNys4NS8vM2QvOVhXOXY3OFRFeEsx
YnR3WUdCbDU2NlNWQkVJNGVQZXB3T0ZDUWhISW1rMG5RSmJGWXJORm8rSHkra1pFUlFSREErZ0d2
d2pSMHkyWUVlQ1lTQlZuQ2N6Tm1RdzlsTmtVVGVJVUxWcVFvU2pnY1BuTGt5T3pzTEpMYWNEZzhQ
ajVPR3ZuUUpZYTZpTmZyUFhMa3lBc3Z2SEQ2OUdrUUgwZU9ITkYxdlZxdC91ZC8vaWZETUYxZFhk
Lys5cmYvNGkvK1lubDUrUi8vOFI5RG9SQ2NPVUlMbG1sMGRMU3JxeXNXaS9YMzkvZjA5TGpkYnF3
NG5MOWhhU2FuTGRWQlluY1VSZG5lZXVzdEVqbklEQ0ZTQUJmeUpzcVBJTFdLeGVLMWE5ZEVVUVNk
MGQzZFBUQXdzTE96ZzlaT1JWSFFQUEhsTDMvNS9QbnpKMDZjNk83dXBzMXFERkR4aXkrK3VMYTJk
dWZPbldQSGptVXltU2RQbmd3TkRRVUNBVGhlVVJUaGxuWjNkNzFlNzRrVEo4Ykh4enM2T3VCYUVl
aEo1ZVlabmhIenRNWUwyMi8rNW0rUzVJTVlxKzNwQzlZTSt4WkZFUlh2eno3N0RML0NIcWE5dlQx
ZDF5T1JDSDVDVVZRNEhENS8vdnpSbzBkQm1lTExDR0xqNCtPcXFrNU1URXhPVGw2NmRLbFlMSjQ3
ZDI1a1pDU2J6WVpDSVlaaDBQaU42bUFrRWtFUXdoeVF0YUk2U0t6dS81d2tlZk9wZlM0a0t0Sm1J
eXZranE1dXFDNTJCUFQyOXA0NmRlcnUzYnMybTYxV3F5V1RTWFFVcUtwYUxCYkQ0VER3NU5iV1Zq
NmZoeHVzVnF0Z0pVRjJRRXJmL3ZhM0dZYjVmLy92LzRIZDdPenN4Rk9Bem9QQklFaDZ4dXlCZ2gw
U1FoUmxjMEp3VzZlZ1d6cTFXSUxkaUVMdkIxQ1diWnRiaTBqbW91czZBSDAwR2gwZkg3OS8vejVG
VVdoaThmbDhQcDh2bFVvMW04MXNObHVwVkRSTnkrVnlseTlmUnRNTHpKVmhtTjNkM1VRaU1USXlj
dVRJRVVWUmhvZUgyKzEyUEI3MytYeDQzK2wwS29xU1NDUldWbFpBNGNEQllIcFFZOHJDK2xzbFpG
amFYY2pGa21hTno1RWV3OER4R0dhWENIUURyeHVOQm9obWxKa0IwTkQ4ZnViTUdmUlU1L1A1dWJr
NXQ5dmQwOU1UaVVTUUtNYmpjVTNUc3RuczB0TFN2WHYzRE1QNDFyZStGWXZGSGo5K3JPdDZKcE5K
cFZMWTJLU3E2dTd1N3BNblQvYjI5amlPNit6c0pIVlZaQ2RFUzBIRTBKWW1KTVBzM2JGT2VIODN3
VE0rQ3FHR0JGTVNadUNmVVBaSkpwTVVSU0dyNWpqdThlUEg5WHBkbHVYejU4K2ZPM2Z1M0xsenNW
Z01aVHdzLytycTZ2ejh2TmZyZmZYVlY3LzJ0YThCTGRScU5UU0JYcjE2bGVmNWwxOSsyVzYzNTNJ
NTlLN3dQTi9iMjRzOG1EU29JUWFDNE5ITWJRR1VoZnUzVG1kL2tnaUdwRVJKZkE5dDdremI5OEtt
TVdCV0hvOG5GQW9waWlKSlVxUFI2T3JxNG5sK2VYbFpGTVdmL3ZTblY2NWM2ZXZydzZjMm15MGVq
My95eVNkMnUvM2RkOS85eWxlK3NyZTNwMmxhUHA5UHBWS2hVT2pLbFN0ZXJ6Y1lES2JUYVhCUXlX
UlMwN1JVS3RYVDAwT3FsN0I1VkkyYXpTWXFpK2ludGJvZkROWHFkV2lhWnJXbjkwaDgvb0dweGtS
cGNhSERKaEFJN096c1JDS1JUQ2FqYVJyeWtsZ3NWcTFXczlsc3E5VjYvUGh4cFZLcDErdXhXQ3lm
ejA5TVRQem9SejhhSGg0dWw4dG9EMGtrRWx0YlcvZnYzMGMxQ2UyaXlXUlNsbVZabGg4K2ZMaTV1
WWtPSG83alVxa1UzQS9nSWFBdnRpRWdybUpzdXRsYVpqemR5Y0phTVo3Vk1xM2l0aHE2Mys4dkZB
b28xb01jUWZvVGlVVFFvREEyTmxZcWxRcUZ3dlBQUHgrUHg3dTd1KzEyKzhURXhNaklTREtaZExs
Y3BWTHA1czJiVjY1Y0FmcHRObU9HMUZrQUFBOTRTVVJCVkp0dXQ5dHV0OGZqOFZRcXRiaTRXS2xV
cmwrLzN0L2ZQejQrRHNOQkVnUEt0MXF0dWx3dVRkUEFJY0ZFNmFlN2VJMm4yNkJZa3UvUWxtMms1
Sy8xSS93ZUUvdlhmLzNYZERwZHE5VjZlM3RCUm1DQkhRN0hLNis4MHRuWitlbW5uM1oyZHY3d2h6
OUUvejhXWlgxOS9jR0RCLy83di84cml1TFMwaElBRFdBVGRLZFNxWHp5eVNlNDFjbVRKd2NHQnRD
NDV2ZjdaMmRuWlZrK2ZQZ3d4M0VvalNERHRKcmwvM25STk0xYUV4UHI5RWo4cEMzTjIvQ3VkcnQ5
WldVRmJaR2hVQWpMakoyd0w3MzAwc0dEQjJ1MTJzVEVoQ2lLYzNOeitYeCtlWG41eG8wYmlMM3o4
L09QSGowNmMrWU1BcjNkYm9jQ2N4eTN0cmEydTd1N3Q3Zm45WHEvL3ZXdno4ek1RSFE4ejJQTHhO
TFNrcy9uaTBRaWFESURIL2xGQmJUaTAzM25RakpqcS9sUlp0dkZNOHF0Nnpvc0h1MGVZRU82dXJw
MFhkL2EydXJzN0N3V2kvLzkzLzhkaVVRTXc5amEyanA0OE9Cbm4zMEdySWZpNFlFREI0Zy9xOWZy
V0RWTTQrN2R1NGdaS0hXZ3lrQlJGUEttWURENDNudnZPWjNPMTE1N3JiT3pFMFI3cTlVaVREbVpy
VldHeElPeXBFZUpzbXgxb1o2T3R1UmY4QlJUVTFPLy9PVXZRVlZRRkZVdWwwT2hVTGxjM3QzZGpj
ZmpEeDgrTEJhTG1xYXRyNi9Mc2x5cjFYcDZlZ0tCUUwxZVQ2ZlQyR21JOUkraUtGUXZLcFZLc1Zq
TTVYSWRIUjNZYitad09Gd3VGellQWXdmZTl2YjJyMzcxSzFWVlgzLzlkYi9mai96WUtrUGlIYTNE
cHNpV0NUSXI2K3N2VGhLRUVNL3pwMDZkbXBpWWVQRGdnYVpwaVVRQ1VNSHI5VzVzYkpSS0pacW1j
N21jeitkaldUYWRUa3VTUkx4dU1CakUvaVJzTGdFaDBHNjNVWElFTUo2ZW51N3A2Y0VjR0lZQjJl
RndPQVJCV0ZsWlFjU2FucDUydTkyQ0lEUWFqV2Y4alc3dXV5S1R0UDN1Ny82dWJyYlhNWmFPS2JJ
RndtWnV2c1h6SEE0SE9zSkRvVkNwVkZwZlgwYzdQSnArZ04zaEdPeDJlejZmQnplQjFtTnNoRUpw
RFVnTlRoTGxHanh1Ykd6czlPblRnNE9Ec1ZnTVhRNFlkektadkhUcGtxSW9wVklwbFVvaEUzUTZu
YkJuaVBRWklYMHVTZmdZMHZwQmZBenBraU9LU2xFVUdvZlJubmY0OEdGWmxyZTN0NWVYbDJHOTRO
UVk4NUFCQkhGaTJOYS9GRVhoU0FIRGJJbkF0QU9CZ00vbmkwYWowRWFTY0dEaFFLdUNBZnlYZi9t
WCtmbjVyMzcxcXlkUG5vUnhBcW1qWFFOQm5reG5IOFZiSi9NTUNId21iRUp6RUVoZWV1a2xsbVV2
WHJ5NHRMUzBzYkZCV2RKelRkTlFxMFRVUWNIUDZzTVEvYUNyU0pFOUhzL0F3QUIydnpxZFRzeWZN
VTh0Mk52YmcvMUxrcVFveXU3dUxseng0dUppZjMvL29VT0hlbnQ3MFk5ZXE5WHE5VHE0K1gyZ1pr
MnVpV1lUa280a3pjQkRVRjNVNnByTlprZEh4K3V2dno0NE9Iano1czIvK1p1L3FWYXJzaXlqWVJG
bFZzM2NjNjFibWtESkMraXFZUmhJdnVGMWdYTEF4S0xlU05NMHgzRWJHeHZ3a2JWYVRSQUU3RGk2
ZnYzNnZYdjM0dkg0ME5EUWdRTUhob2FHaG9hR3VycTZnc0VnNFFBQTRsbXJ3NFgvQk00QXBpVkJC
WDRmYmdEN0pVcWxrdHZ0OXZsOG9GdHROcHZENFNnV2k4MW1FNXZ2Q2F4bkxIMGw4T1NvQXNHWWNZ
WUMrc0JuWm1aQ29aQmhkbWFRTFdlcnE2dHV0OXZwZEdZeUdXeWhKSVBjM3Q1T0pCS1hMbDJLUkNK
VFUxUEhqaDNyNit1THhXSit2eCs5eUt4dTJhTm1qUzJVcGVuRmVKb3lNY3lxTmVRMlB6Ly9zNS85
ckZ3dWQzWjJUazlQUDNueUJPZ0U0ZUdMbWtLWlBlNk5SZ090ZG1oSG5KeWMvUDczdngrTHhZalYy
R3cybENqVDZUUWFYRkVMYUxmYmFHVnh1VnhvQ0Vla1RhZlQrWHoreG8wYmdpQk1UMDhQRGc1T1Rr
NzI5L2V6SktXeXpvR3lrQ0J3UDhTSURjTUEyd2xiUjlYcDRzV0xUcWZUNy9mUHpNdzRuYzVQUC8w
VTByYkdYc29zWUlPYklidElBVjltWm1iZWZ2dnRreWRQZ2lJQ0x3RUwxSFY5Y1hFUmVSbCthTTJl
c2JrR3ZBejhUYlBaYkRRYVAvLzV6OEdiUktOUnhzclQ0VUl0aEJBODFrOUpXUWFNYUtWU3VYVHAw
a2NmZlFRMkhYc0dvV3lVMlN4dlJiL2tXVFJOVjZ0Vnd6RGdkY2JHeHY3Z0QvN2czTGx6bTV1YjBD
RGdVbGhzcFZLNWZmczJNQ0NzQUNrQnFVd1QvMFNNSHdoSlZkWEhqeDlmdTNadG55bUhmaE9wR3VZ
aEhTUm1XbWtlNElHbHBhWExseTlmdm53WlViSFZhbzJQajZONGp2bytGb2owdllEN2c5SWliQVFD
QVZtVysvdjcvK2lQL3VqczJiUDFlaDBSSDRFbkVBaWdMVUdXNVd2WHJsRVVoWm9IR3E0Y0RnZGNJ
Tmt2WnVVcEFjdUFCMjAyMi81K0FXUVNtQ1FwcEpIT1NreVlZUmhGVWRDRHVyUzB0THE2K3VqUkkr
empobHNIbUk1R295TWpJeXNySzZWU0tSd083KzN0K1h3K1VENG9RcmZiYlpmTHRiZTN0N096ODl4
enovM29Sejk2NFlVWHF0V3FxcXArdjc5YXJUcWRUdUErVGRQOGZ2K0ZDeGZRUFloRlIrNWltSHNZ
U1JaQ20rME5jR3hvVjlobk13QmxJREY0Rkt3MzVveGdoWjJEMld3V2ZWa3JLeXRMUzB1NVhLN1Jh
TURGNDZZb3Y0YkQ0Vzk4NHh1dFZ1dkNoUXQ3ZTN0dXR4dEZkVXdBQWFaY0xyLzExbHM4ejMvem05
OUVPUUF0c29xaUlDdENhY3poY0pUTDVZOCsrZ2h3SEo2TXVHaG9MQW55eE1vSUgvczU0Z0dEd0px
bnVKRGtRemZQVGdMcG1FZ2s3dDI3dDdhMnRyQ3drTXZsVU1xRnJ5T2RQVEI5bG1XbnBxWUNnUUNv
alpXVkZVZ21uOCtqbEQ4Mk52YmJ2LzNiTXpNellFYlFqdWYzK3gwT3g5N2VYaUFRSUJzUGFacis0
SU1QMEhacU05dm5OZk9nQkpRM3lRWVVFdHV0MFo0eVdRN1daaDZpWkUwK0VJNUxwVkkybTBXeSsv
RGh3NjJ0TFdBb3FEVFJjQ2loeldZREtLL1Zha2VQSHUzdjd6OXo1c3l0VzdldVhMbnk2TkVqVlZV
OUhzLzN2dmU5ZDk5OWQzSnlFbjRGM1RJNDFLUmVyNlBUQW5lbUtPckdqUnZ2di85K3FWUWk4SVVJ
Z0lBSDJxVGFudEZiYS9CbkdjdlpHU3pMQW55aVhBRmN1cmk0dUxLeUF2cVkzQWdPVFRWM1k3SG1Y
aUFVUW1BLzZMQTdlL2JzbTIrKytkNTc3eVVTaWU5ODV6dm56cDJ6Mld5bFVva3hTNlVNd3pnY0Rr
VlJ3R3MwR2cydjE0dFRFbVpuWnpjM056RVpPR3I0WjFnZEFSdTBKY1duekkxd1QzVkprbGVNMmI2
RHZkZ1BIanhZWFYyZG01dkRsaWgwYVBJOGo0MERKS0lRZ0Fac2pXZWdKUUJOOFlJZ1RFNU8vdVZm
L2lXNkNGRHhocE1FK2tOWkdxdURaYUxNNmoyNkVBazhKQkdJc09NRXNSRDRTWElSeGtJZFA3VkpG
T2RScE5QcFRDWnovZnIxOWZYMTlmVjFoSFVVMGtGa29YK05ZQ3NvakNBSVBUMDlEb2NERGdNZFps
NnZGNTdHWnJPUllpYVlhR0I5ekFyUkM5cUJTZUx2OVBUMEwzN3hDeFNWeVJsVXVHano2QzJDTjJF
N1JKK2hrbEI3bHBpaUxNdnBkSHBoWVdGdWJtNWpZMk5qWXdQM1Fya0dPL3BoNkJSRmhjTmhkQzJv
cWdySVFwdVZCVm1XRnhZVy91RWYvdUhSbzBjQXNVTkRRL0Y0dkZBb0xDOHZ0MXF0MGRIUnljbkpr
WkdSVUNqVTI5dUxkbEhOM0l6QTgvenQyN2ViemViaHc0Y3ZYTGlBT0lIVHh6Uk5RemFMamV2SUU2
QzlpSndJajFBVDB2MElsV1pSazFwYld3UExSRTdjSVlVUWtrUG81bVl6K041NnZZNFVBUWZOTEMw
dGRYVjFaYlBaUC83alAzN3c0SUhmNzg5a01nNkhnM0R0V0l0ME92M0pKNThVQ29Wb05OclIwWEhn
d0lIcDZXbWc2a0FnY1BIaXhmZmVlMjkrZmo0V2k4RWJ1Vnl1VENiRG1ZZHVZVERnQjlIV1Ixc09B
dVBNYll5R3VlR1ZwbWtXMjlrWEZ4ZnYzNysvc3JLU3pXWlY4eXc1a3Z0UkpqOUFVUlFjRE82T2xt
U080N3hlN3p2dnZETXhNYUZwMnZ6OC9OMjdkd0VrME5CRkZNeG03aHBCOVJ2dHZMZHUzZnFQLy9n
UEZDVDlmajg2V3lSSnltUXluWjJkdVZ3Ty9ra3pUMzBoV01vd20rOFFXbFZ6c3pIZWgrL1k5NjdY
cjEvZjJOaVluNS9mM054RUxzOVp6cFFnanBnZ1dBQlhQQWxZajZLb2MrZk8vZUFIUCtqbzZNaG1z
NDhmUHdiRGpVUUJaUXpPUE1rUGdSNTREVW9GR0l3VmNUcWRsVW9GRlo2ZG5SMTRYYlJody9NQkd5
SkVROG54UGxZQm9xYk5zeDFKZEdRLy92ampYQzZYeVdUUVBzMllKNmdRMXVTWkZLUmVyOE9Yb0xr
RFgvdis5NzhmQ29Wa1dVYlRHSHdZRWs3QVdyVFlZNU1zRUNabEhqdFFyVllGUVlEcWRuWjJwbElw
aG1GS3BSSllIeGdoYWlwRW9SQ3hPUE5JUTl3UWs4U1dDUXlNZEYyeER4NDhRR1RIVVJDa3BxbVpt
MGZ3THlHVVNMeXExV3JvSU1aT1ZhQy85ZlgxMjdkdjB6UU5oMG1PbDhCdENRK0NnYUxYSEllandD
QXptY3pzN0N3a0dRZ0U0TWFCWmhtelBZeHdia0RrRUNsOEJDbWkwalNOSFZINzJKWG9Ia0ZEK0Rh
d0NHVnBYQ0xaT3BhVEZNK09IRGtDMFQxOCtQQ2YvdW1mUHZua0V4eFJoaG96ZkNhNFJoUjJvQWhr
YXpiUDh6Z0xyZFZxNGFBdG5ES2w2em8yaWRJMFRReWJSRDhTSjlHcm9acDc0Y2lSbTJSREdzTXdi
REFZUk5BakV0UE5VNnFJWDJVc2xXYVExb3Fpa0dUbjFLbFRFTWlQZi96amYvdTNmM081WERBR2RD
dUNpZHNuV3N6VFZTdVZpcy9uMjl2YjgzZzhvaWdDOTN1OTNrS2g0UEY0a0lWaER3Yk1HQkFLRHQ5
NG12Nm16UTRKbTNud0ptYU9nMS8ySzZ1SUZvYUZMOVRONmp4dUFkVW45Q1NJQnZCVW9paTZYSzRq
UjQ1d0hKZkw1V1puWjNFU0VVVlIxV29WNUkwa1NiQkp4SDNnYVlRZkVMYm9VNGRwZEhSMEJBS0JS
Q0xSMGRFQi9nYWhHSjEzdUJVZ0hrQ2wxK3ZGZVRwWVB0d2NyclZjTG1ORHJxcXErNVFrZ1VpVVNU
UUJHVkpmcU9FQkpXTUV1cTZqN1lSbFdWUUVFSFd4c2Nubjh5RmVvMnlLd0kzdGQzRDlMTXVpNU43
VjFSVUtoVERWZXIzZTM5Ky9zcklTQ29VUTBDdVZDbnd2eWpDd1RIUmg0WVFaTXVCYXJWWXVsK0d1
a1I0QmlyR2srNXl4OE9xR3BTQkxkSU8ybEkyUVNlUHdSSERrMkd4R0tFYWczTDI5dlVna2d2M3Rp
T01vaElFUU9uSGl4Q3V2dkRJNU9ZbkpBRXMxbTgzbDVlWGYvLzNmUnhjLzlrWXo1bUdCMXVVMlRN
cmJNRHZLeUR0a0k4YyszTEVPM1FvQVNOMlMzQlRmTWN5eUQ4cXZ3OFBESE1jMW04M1BQdnRNVVJR
SXBGcXRsc3RsTkp6QjE0Mk9qbjc5NjE4L2NlSUVXbFlvODNSUkdEa3liOW84ZGJSU3FXQ2w0SDRR
aEFnWW9DeUhhbUtEcmFxcWRyc2RaNnVnU3dOTmFhQk9kRjFueWF5c0FBQU9qVXpiZVBwVVZaTDRD
SUl3TURBQWM0ZER5dVZ5T0w0WmcvQjRQSTFHNCt6WnMyKy8vZmJNekF6MjkxSm1md01rUThJQVlH
cXRWcnQyN1JwOEk4ZHhicmZiNFhEVWFqWEVRemhuMmp3WUZhRUl0NExuQnhqQU8zQkNOcHZ0OC80
UXpkTFRBblJpalR5VXVXK0xzUDJnWkhwNmVoQ3lmdmpESDNxOTNnOCsrQUROU242L0gyNGdIbysv
L2ZiYnYvRWJ2NkZwR2pZaVl3OGJVU0pWVlFIMFVEeTIyKzNaYkRZYWpXSmZHRVZSckxsTkJIOUoy
UWIyUmxBWFkxYXJNRDNNZ3BSR1dLZ2ZaU25kV1hXWWVwcUp4UzVjR0Vrd0dBd0dnNFpoOER4Lyt2
VHB2cjQrcDlQNTcvLys3NkJrQkVIbzd1NCtkKzdjOGVQSERjUFkyZG5CUVhDS29vQUVRRXVNM1c1
SGtxbnJlcVBSZVBqd1lUcWRSaWoyK1h6WUk0RjBqellKR29Sb1pFaTZyZ01xSUJCZ0lkcnRkcUZR
TUV6dTUvOERKYytjVWNoZFREc0FBQUFBU1VWT1JLNUNZSUk9IgotICAgIDEgOiAiYmFzZTY0Igot
fQotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdFJlcXVlc3ROb3RpZmljYXRpb24KLVJlcXVl
c3QgZmluaXNoZWQ6IC4uLi9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLW5ldHdvcmsu
aHRtbAotQWxsIHRlc3RzIGRvbmUuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zL2V4dGVuc2lvbnMtbmV0d29yay5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1uZXR3b3JrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDdhNzg3MDcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1uZXR3b3JrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5
MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJy
ZXNvdXJjZXMvYXVkaXRzLXN0eWxlMS5jc3MiIHR5cGU9InRleHQvY3NzIj4KLTxzdHlsZT4KLUBm
b250LWZhY2UgewotICAgIGZvbnQtZmFtaWx5OiAndGVzdCc7Ci0gICAgc3JjOiB1cmwoLi4vLi4v
cmVzb3VyY2VzL0FoZW0udHRmKTsKLX0KLQotcCB7IGZvbnQtZmFtaWx5OiAndGVzdCc7IH0KLTwv
c3R5bGU+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLW5ldHdvcmstdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90
ZXN0R2V0SEFSKG5leHRUZXN0KQotewotICAgIGZ1bmN0aW9uIGNvbXBhcmVFbnRyaWVzKGEsIGIp
Ci0gICAgewotICAgICAgICByZXR1cm4gYS5yZXF1ZXN0LnVybC50b0xvd2VyQ2FzZSgpLmxvY2Fs
ZUNvbXBhcmUoYi5yZXF1ZXN0LnVybC50b0xvd2VyQ2FzZSgpKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBvbkhBUihyZXN1bHQpCi0gICAgewotICAgICAgICByZXN1bHQuZW50cmllcy5zb3J0KGNv
bXBhcmVFbnRyaWVzKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5lbnRy
aWVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgb3V0cHV0KCJyZXNvdXJjZTogIiArIHJlc3Vs
dC5lbnRyaWVzW2ldLnJlcXVlc3QudXJsLnJlcGxhY2UoLy4qKChcL1teL10qKXszfSQpLywiLi4u
JDEiKSk7Ci0gICAgfQotICAgIGV4dGVuc2lvbl9kb1hIUihmdW5jdGlvbigpIHsKLSAgICAgICAg
d2ViSW5zcGVjdG9yLm5ldHdvcmsuZ2V0SEFSKGNhbGxiYWNrQW5kTmV4dFRlc3Qob25IQVIsIG5l
eHRUZXN0KSk7Ci0gICAgfSk7Ci19Ci0KLWZ1bmN0aW9uIGRvWEhSKCkKLXsKLSAgICB2YXIgeGhy
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgeGhyLm9wZW4oIkdFVCIsICIiLCBmYWxzZSk7
Ci0gICAgeGhyLnNlbmQobnVsbCk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl9kb1hIUihjYWxs
YmFjaykKLXsKLSAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoImRvWEhSKCki
LCBjYWxsYmFjayk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0UmVxdWVzdE5vdGlmaWNh
dGlvbihuZXh0VGVzdCkKLXsKLSAgICBmdW5jdGlvbiBvblJlcXVlc3RGaW5pc2hlZChyZXF1ZXN0
KQotICAgIHsKLSAgICAgICAgb3V0cHV0KCJSZXF1ZXN0IGZpbmlzaGVkOiAiICsgcmVxdWVzdC5y
ZXF1ZXN0LnVybC5yZXBsYWNlKC8uKigoXC9bXi9dKil7M30kKS8sIi4uLiQxIikpOwotICAgIH0K
LQotICAgIHdlYkluc3BlY3Rvci5uZXR3b3JrLm9uUmVxdWVzdEZpbmlzaGVkLmFkZExpc3RlbmVy
KGNhbGxiYWNrQW5kTmV4dFRlc3Qob25SZXF1ZXN0RmluaXNoZWQsIG5leHRUZXN0KSk7Ci0gICAg
ZXh0ZW5zaW9uX2RvWEhSKCk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl9vblJlcXVlc3RCb2R5
KGNvbnRlbnQsIGVuY29kaW5nKQotewotICAgIGR1bXBPYmplY3QoQXJyYXkucHJvdG90eXBlLnNs
aWNlLmNhbGwoYXJndW1lbnRzKSk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0R2V0UmVx
dWVzdENvbnRlbnQobmV4dFRlc3QpCi17Ci0gICAgZXh0ZW5zaW9uX2dldFJlcXVlc3RCeVVybChb
L2F1ZGl0cy1zdHlsZTEuY3NzJC9dLCBmdW5jdGlvbihyZXF1ZXN0KSB7Ci0gICAgICAgIHJlcXVl
c3QuZ2V0Q29udGVudChjYWxsYmFja0FuZE5leHRUZXN0KGV4dGVuc2lvbl9vblJlcXVlc3RCb2R5
LCBuZXh0VGVzdCkpOwotICAgIH0pOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdEdldFJl
c291cmNlQ29udGVudEVuY29kZWQobmV4dFRlc3QpCi17Ci0gICAgZXh0ZW5zaW9uX2dldFJlcXVl
c3RCeVVybChbL2FiZS5wbmckLyBdLCBmdW5jdGlvbihyZXF1ZXN0KSB7Ci0gICAgICAgIHJlcXVl
c3QuZ2V0Q29udGVudChjYWxsYmFja0FuZE5leHRUZXN0KGV4dGVuc2lvbl9vblJlcXVlc3RCb2R5
LCBuZXh0VGVzdCkpOwotICAgIH0pOwotfQotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAg
ICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoSW5zcGVjdG9yVGVzdC5ydW5FeHRlbnNpb25UZXN0
cyk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
PHA+VGVzdHMgV2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEk8L3A+Ci08aW1nIHNyYz0icmVzb3Vy
Y2VzL2FiZS5wbmciPgotPGltZyBzcmM9InJlc291cmNlcy9taXNzaW5nLWltYWdlLnBuZyI+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLXBhbmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcGFuZWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjNDc1Y2MyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcGFuZWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNTggKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6IGhlbGxvCi1UZXN0
cyBXZWJJbnNwZWN0b3IgZXh0ZW5zaW9uIEFQSQotCi1TdGFydGVkIGV4dGVuc2lvbi4KLVJ1bm5p
bmcgdGVzdHMuLi4KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RDcmVhdGVQYW5lbAotUGFu
ZWwgY3JlYXRlZAotewotICAgIGNyZWF0ZVN0YXR1c0JhckJ1dHRvbiA6IDxmdW5jdGlvbj4KLSAg
ICBvbkhpZGRlbiA6IHsKLSAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAg
IHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgIH0KLSAgICBvblNlYXJjaCA6IHsKLSAg
ICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIHJlbW92ZUxpc3RlbmVyIDog
PGZ1bmN0aW9uPgotICAgIH0KLSAgICBvblNob3duIDogewotICAgICAgICBhZGRMaXN0ZW5lciA6
IDxmdW5jdGlvbj4KLSAgICAgICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgfQot
ICAgIHNob3cgOiA8ZnVuY3Rpb24+Ci19Ci1QYW5lbCBzaG93bgotZm9jdXNlZDogdHJ1ZQotRXh0
ZW5zaW9uIHBhbmVsIHNpemUgY29ycmVjdAotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdFNl
YXJjaAotUGFuZWwgaGlkZGVuCi1QYW5lbCBzZWFyY2hlZDoKLXsKLSAgICAwIDogInBlcmZvcm1T
ZWFyY2giCi0gICAgMSA6ICJoZWxsbyIKLX0KLVBhbmVsIHNlYXJjaGVkOgotewotICAgIDAgOiAi
Y2FuY2VsU2VhcmNoIgotICAgIDEgOiB1bmRlZmluZWQKLX0KLVJVTk5JTkcgVEVTVDogZXh0ZW5z
aW9uX3Rlc3RTdGF0dXNCYXJCdXR0b25zCi1DcmVhdGVkIGEgc3RhdHVzIGJhciBidXR0b24sIGR1
bXAgZm9sbG93czoKLXsKLSAgICBvbkNsaWNrZWQgOiB7Ci0gICAgICAgIGFkZExpc3RlbmVyIDog
PGZ1bmN0aW9uPgotICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4KLSAgICB9Ci0g
ICAgdXBkYXRlIDogPGZ1bmN0aW9uPgotfQotYnV0dG9uMSBjbGlja2VkCi1TdGF0dXMgYmFyIGJ1
dHRvbnMgc3RhdGU6Ci1zdGF0dXMgYmFyIGl0ZW0gMCwgaWNvbjogLi4uL2luc3BlY3Rvci9yZXNv
dXJjZXMvYnV0dG9uMS5wbmcsIHRvb2x0aXA6ICdCdXR0b24gT25lIHRvb2x0aXAnLCBkaXNhYmxl
ZDogZmFsc2UKLXN0YXR1cyBiYXIgaXRlbSAxLCBpY29uOiAuLi4vaW5zcGVjdG9yL3Jlc291cmNl
cy9idXR0b24yLnBuZywgdG9vbHRpcDogJ0J1dHRvbiBUd28gdG9vbHRpcCcsIGRpc2FibGVkOiB0
cnVlCi1VcGRhdGVkIHN0YXR1cyBiYXIgYnV0dG9ucwotU3RhdHVzIGJhciBidXR0b25zIHN0YXRl
Ogotc3RhdHVzIGJhciBpdGVtIDAsIGljb246IC4uLi9pbnNwZWN0b3IvcmVzb3VyY2VzL2J1dHRv
bjEtdXBkYXRlZC5wbmcsIHRvb2x0aXA6ICdCdXR0b24gT25lIHRvb2x0aXAnLCBkaXNhYmxlZDog
ZmFsc2UKLXN0YXR1cyBiYXIgaXRlbSAxLCBpY29uOiAuLi4vaW5zcGVjdG9yL3Jlc291cmNlcy9i
dXR0b24yLnBuZywgdG9vbHRpcDogJ0J1dHRvbiBUd28gdXBkYXRlZCB0b29sdGlwJywgZGlzYWJs
ZWQ6IGZhbHNlCi1idXR0b24yIGNsaWNrZWQKLUFsbCB0ZXN0cyBkb25lLgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXBhbmVsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXBhbmVsLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4YzMyMDguLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1wYW5lbC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTY3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci1mdW5jdGlvbiBs
b2dNZXNzYWdlKCkKLXsKLSAgICBjb25zb2xlLmxvZygiaGVsbG8iKTsKLX0KLQotZnVuY3Rpb24g
aW5pdGlhbGl6ZV9leHRlbnNpb25zUGFuZWxUZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0Lmdl
dFBhbmVsU2l6ZSA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBib3VuZGluZ1JlY3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1wYW5lbHMiKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIHdpZHRoOiBib3VuZGluZ1Jl
Y3Qud2lkdGgsCi0gICAgICAgICAgICBoZWlnaHQ6IGJvdW5kaW5nUmVjdC5oZWlnaHQKLSAgICAg
ICAgfTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmR1bXBTdGF0dXNCYXJCdXR0b25zID0g
ZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLmluc3Bl
Y3RvclZpZXcuY3VycmVudFBhbmVsKCk7Ci0gICAgICAgIHZhciBpdGVtcyA9IHBhbmVsLnN0YXR1
c0Jhckl0ZW1zKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTdGF0dXMgYmFy
IGJ1dHRvbnMgc3RhdGU6Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBpdGVtID0gaXRlbXNbaV07Ci0gICAgICAgICAg
ICBpZiAoIShpdGVtIGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQpKSB7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInN0YXR1cyBiYXIgaXRlbSAiICsgaSArICIg
aXMgbm90IGEgYnV0dG9uLiIpOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgLy8gU3RyaXAgdXJsKC4uLikgYW5kIHByZWZpeCBvZiB0aGUgVVJM
IHdpdGhpbiwgbGVhdmUganVzdCBsYXN0IDMgY29tcG9uZW50cy4KLSAgICAgICAgICAgIHZhciB1
cmwgPSBpdGVtLnN0eWxlLmJhY2tncm91bmRJbWFnZS5yZXBsYWNlKC9edXJsXCguKigoWy9dW14v
XSopezN9W14vKV0qKVwpJC8sICIuLi4kMSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoInN0YXR1cyBiYXIgaXRlbSAiICsgaSArICIsIGljb246ICIgKyB1cmwgKyAiLCB0
b29sdGlwOiAnIiArIGl0ZW0udGl0bGUgKyAiJywgZGlzYWJsZWQ6ICIgKyBpdGVtLmRpc2FibGVk
KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuY2xpY2tCdXR0b24gPSBm
dW5jdGlvbihpbmRleCkKLSAgICB7Ci0gICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5p
bnNwZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgpOwotICAgICAgICBwYW5lbC5zdGF0dXNCYXJJdGVt
cygpW2luZGV4XS5jbGljaygpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuY2xpY2tPblVS
TCA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImNv
bnNvbGUiKTsKLSAgICAgICAgdmFyIHhwYXRoUmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVhdGUoIi8v
YVtzdGFydHMtd2l0aCguLCAnZXh0ZW5zaW9ucy1wYW5lbC5odG1sJyldIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVsKCJjb25z
b2xlIikuZWxlbWVudCwgbnVsbCwgWFBhdGhSZXN1bHQuQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEUs
IG51bGwpOwotICAgICAgICB2YXIgY2xpY2sgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VF
dmVudCIpOwotICAgICAgICBjbGljay5pbml0TW91c2VFdmVudCgiY2xpY2siLCB0cnVlLCB0cnVl
KTsKLSAgICAgICAgeHBhdGhSZXN1bHQuc2luZ2xlTm9kZVZhbHVlLmRpc3BhdGNoRXZlbnQoY2xp
Y2spOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RDcmVhdGVQYW5lbChuZXh0
VGVzdCkKLXsKLSAgICB2YXIgZXhwZWN0T25TaG93biA9IGZhbHNlOwotCi0gICAgZnVuY3Rpb24g
b25QYW5lbFNob3duKHBhbmVsLCB3aW5kb3cpCi0gICAgewotICAgICAgICBpZiAoIWV4cGVjdE9u
U2hvd24pIHsKLSAgICAgICAgICAgIG91dHB1dCgiRkFJTDogdW5leHBlY3RlZCBvblNob3duIGV2
ZW50Iik7Ci0gICAgICAgICAgICBuZXh0VGVzdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgICAgIG91dHB1dCgiUGFuZWwgc2hvd24iKTsKLSAgICAgICAgb3V0cHV0KCJm
b2N1c2VkOiAiICsgd2luZG93LmRvY3VtZW50Lmhhc0ZvY3VzKCkpOwotICAgICAgICBwYW5lbC5v
blNob3duLnJlbW92ZUxpc3RlbmVyKG9uUGFuZWxTaG93bik7Ci0gICAgICAgIGV2YWx1YXRlT25G
cm9udGVuZCgicmVwbHkoSW5zcGVjdG9yVGVzdC5nZXRQYW5lbFNpemUoKSkiLCBmdW5jdGlvbihy
ZXN1bHQpIHsKLSAgICAgICAgICAgIGlmIChyZXN1bHQud2lkdGggIT09IHdpbmRvdy5pbm5lcldp
ZHRoKQotICAgICAgICAgICAgICAgIG91dHB1dCgicGFuZWwgd2lkdGggbWlzbWF0Y2gsIG91dGVy
OiAiICsgcmVzdWx0LndpZHRoICsgIiwgaW5uZXI6IiArIHdpbmRvdy5pbm5lcldpZHRoKTsKLSAg
ICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdC5oZWlnaHQgIT09IHdpbmRvdy5pbm5lckhlaWdodCkK
LSAgICAgICAgICAgICAgICBvdXRwdXQoInBhbmVsIGhlaWdodCBtaXNtYXRjaCwgb3V0ZXI6ICIg
KyByZXN1bHQuaGVpZ2h0ICsgIiwgaW5uZXI6IiArIHdpbmRvdy5pbm5lckhlaWdodCk7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0KCJFeHRlbnNpb24gcGFuZWwgc2l6
ZSBjb3JyZWN0Iik7Ci0gICAgICAgICAgICBuZXh0VGVzdCgpOwotICAgICAgICB9KTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBvblBhbmVsQ3JlYXRlZChwYW5lbCkKLSAgICB7Ci0gICAgICAgIG91
dHB1dCgiUGFuZWwgY3JlYXRlZCIpOwotICAgICAgICBkdW1wT2JqZWN0KHBhbmVsKTsKLSAgICAg
ICAgcGFuZWwub25IaWRkZW4uYWRkTGlzdGVuZXIoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBv
dXRwdXQoIlBhbmVsIGhpZGRlbiIpOwotICAgICAgICB9KTsKLSAgICAgICAgcGFuZWwub25TaG93
bi5hZGRMaXN0ZW5lcihvblBhbmVsU2hvd24uYmluZCh0aGlzLCBwYW5lbCkpOwotCi0gICAgICAg
IC8vIFRoaXMgaXMgbm90IGF1dGhvcml6ZWQgYW5kIHRoZXJlZm9yZSBzaG91bGQgbm90IHByb2R1
Y2UgYW55IG91dHB1dAotICAgICAgICBwYW5lbC5zaG93KCk7Ci0gICAgICAgIGV4dGVuc2lvbl9z
aG93UGFuZWwoImNvbnNvbGUiKTsKLQotICAgICAgICBmdW5jdGlvbiBoYW5kbGVPcGVuUmVzb3Vy
Y2UocmVzb3VyY2UsIGxpbmVOdW1iZXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIFRoaXMg
d2lsbCBmb3JjZSBleHRlbnNpb24gaWZyYW1lIHRvIGJlIHJlYWxseSBsb2FkZWQuCi0gICAgICAg
ICAgICBwYW5lbC5zaG93KCk7Ci0gICAgICAgIH0KLSAgICAgICAgd2ViSW5zcGVjdG9yLnBhbmVs
cy5zZXRPcGVuUmVzb3VyY2VIYW5kbGVyKGhhbmRsZU9wZW5SZXNvdXJjZSk7Ci0gICAgICAgIGV2
YWx1YXRlT25Gcm9udGVuZCgiV2ViSW5zcGVjdG9yLm9wZW5BbmNob3JMb2NhdGlvblJlZ2lzdHJ5
Ll9hY3RpdmVIYW5kbGVyID0gJ3Rlc3QgZXh0ZW5zaW9uJyIpOwotICAgICAgICB3ZWJJbnNwZWN0
b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoImxvZ01lc3NhZ2UoKSIsIGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgZXhwZWN0T25TaG93biA9IHRydWU7Ci0gICAgICAgICAgICBldmFsdWF0ZU9uRnJv
bnRlbmQoIkluc3BlY3RvclRlc3QuY2xpY2tPblVSTCgpOyIpOwotICAgICAgICB9KTsKLSAgICB9
Ci0gICAgdmFyIGJhc2VQYXRoID0gbG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXC9bXi9dKiQv
LCAiLyIpOwotICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuY3JlYXRlKCJUZXN0IFBhbmVsIiwgYmFz
ZVBhdGggKyAiZXh0ZW5zaW9uLXBhbmVsLnBuZyIsIGJhc2VQYXRoICsgImV4dGVuc2lvbi1wYW5l
bC5odG1sIiwgb25QYW5lbENyZWF0ZWQpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdFNl
YXJjaChuZXh0VGVzdCkKLXsKLSAgICB2YXIgY2FsbGJhY2tDb3VudCA9IDA7Ci0KLSAgICBmdW5j
dGlvbiBvblBhbmVsQ3JlYXRlZChwYW5lbCkKLSAgICB7Ci0gICAgICAgIHBhbmVsLm9uU2VhcmNo
LmFkZExpc3RlbmVyKGZ1bmN0aW9uKGFjdGlvbiwgcXVlcnlTdHJpbmcpIHsKLSAgICAgICAgICAg
IG91dHB1dCgiUGFuZWwgc2VhcmNoZWQ6Iik7Ci0gICAgICAgICAgICBkdW1wT2JqZWN0KEFycmF5
LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpOwotICAgICAgICAgICAgY2FsbGJhY2tD
b3VudCsrOwotICAgICAgICAgICAgaWYgKGNhbGxiYWNrQ291bnQgPT09IDIpCi0gICAgICAgICAg
ICAgICAgbmV4dFRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZXh0ZW5zaW9uX3Nob3dQ
YW5lbCgiZXh0ZW5zaW9uIik7Ci0gICAgICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiV2ViSW5zcGVj
dG9yLnNlYXJjaENvbnRyb2xsZXIuX3BlcmZvcm1TZWFyY2goJ2hlbGxvJywgdHJ1ZSwgZmFsc2Us
IHRydWUpOyByZXBseSgpIik7Ci0gICAgfQotICAgIHZhciBiYXNlUGF0aCA9IGxvY2F0aW9uLnBh
dGhuYW1lLnJlcGxhY2UoL1wvW14vXSokLywgIi8iKTsKLSAgICB3ZWJJbnNwZWN0b3IucGFuZWxz
LmNyZWF0ZSgiVGVzdCBQYW5lbCIsIGJhc2VQYXRoICsgImV4dGVuc2lvbi1wYW5lbC5wbmciLCBi
YXNlUGF0aCArICJub24tZXhpc3RlbnQuaHRtbCIsIG9uUGFuZWxDcmVhdGVkKTsKLX0KLQotZnVu
Y3Rpb24gZXh0ZW5zaW9uX3Rlc3RTdGF0dXNCYXJCdXR0b25zKG5leHRUZXN0KQotewotICAgIHZh
ciBiYXNlUGF0aCA9IGxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1wvW14vXSokLywgIi8iKTsK
LQotICAgIGZ1bmN0aW9uIG9uUGFuZWxDcmVhdGVkKHBhbmVsKQotICAgIHsKLSAgICAgICAgdmFy
IGJ1dHRvbjEgPSBwYW5lbC5jcmVhdGVTdGF0dXNCYXJCdXR0b24oYmFzZVBhdGggKyAiYnV0dG9u
MS5wbmciLCAiQnV0dG9uIE9uZSB0b29sdGlwIik7Ci0gICAgICAgIHZhciBidXR0b24yID0gcGFu
ZWwuY3JlYXRlU3RhdHVzQmFyQnV0dG9uKGJhc2VQYXRoICsgImJ1dHRvbjIucG5nIiwgIkJ1dHRv
biBUd28gdG9vbHRpcCIsIHRydWUpOwotICAgICAgICBvdXRwdXQoIkNyZWF0ZWQgYSBzdGF0dXMg
YmFyIGJ1dHRvbiwgZHVtcCBmb2xsb3dzOiIpOwotICAgICAgICBkdW1wT2JqZWN0KGJ1dHRvbjEp
OwotICAgICAgICBmdW5jdGlvbiB1cGRhdGVCdXR0b25zKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgYnV0dG9uMS51cGRhdGUoYmFzZVBhdGggKyAiYnV0dG9uMS11cGRhdGVkLnBuZyIpOwotICAg
ICAgICAgICAgYnV0dG9uMi51cGRhdGUobnVsbCwgIkJ1dHRvbiBUd28gdXBkYXRlZCB0b29sdGlw
IiwgZmFsc2UpOwotICAgICAgICAgICAgb3V0cHV0KCJVcGRhdGVkIHN0YXR1cyBiYXIgYnV0dG9u
cyIpOwotICAgICAgICAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LmR1bXBT
dGF0dXNCYXJCdXR0b25zKCk7IEluc3BlY3RvclRlc3QuY2xpY2tCdXR0b24oMSk7Iik7Ci0gICAg
ICAgIH0KLSAgICAgICAgYnV0dG9uMS5vbkNsaWNrZWQuYWRkTGlzdGVuZXIoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICBvdXRwdXQoImJ1dHRvbjEgY2xpY2tlZCIpOwotICAgICAgICAgICAgZXZh
bHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LmR1bXBTdGF0dXNCYXJCdXR0b25zKCk7IHJl
cGx5KCk7IiwgdXBkYXRlQnV0dG9ucyk7Ci0gICAgICAgIH0pOwotICAgICAgICBidXR0b24yLm9u
Q2xpY2tlZC5hZGRMaXN0ZW5lcihmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIG91dHB1dCgiYnV0
dG9uMiBjbGlja2VkIik7Ci0gICAgICAgICAgICBuZXh0VGVzdCgpOwotICAgICAgICB9KTsKLSAg
ICAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnNob3dQYW5lbCgnZXh0ZW5z
aW9uJyk7IEluc3BlY3RvclRlc3QuY2xpY2tCdXR0b24oMSk7IEluc3BlY3RvclRlc3QuY2xpY2tC
dXR0b24oMCk7IiwgdXBkYXRlQnV0dG9ucyk7Ci0gICAgfQotCi0gICAgd2ViSW5zcGVjdG9yLnBh
bmVscy5jcmVhdGUoIkJ1dHRvbnMgUGFuZWwiLCBiYXNlUGF0aCArICJleHRlbnNpb24tcGFuZWwu
cG5nIiwgYmFzZVBhdGggKyAibm9uLWV4aXN0ZW50Lmh0bWwiLCBvblBhbmVsQ3JlYXRlZCk7Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVz
dHMgV2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEk8L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9h
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLXJlbG9hZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFl
OTU1MzcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0
ZW5zaW9ucy1yZWxvYWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBA
QAotVGVzdHMgdGhhdCB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LnJlbG9hZCgpIHN1Y2Nl
c3NmdWxseSBpbmplY3RzIHVzZXIncyBjb2RlIHVwb24gcmVsb2FkCi0KLVN0YXJ0ZWQgZXh0ZW5z
aW9uLgotUnVubmluZyB0ZXN0cy4uLgotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdFJlbG9h
ZEluamVjdHNDb2RlCi1QYWdlIHJlbG9hZGVkLgotUGFnZSByZWxvYWRlZC4KLVdpdGggaW5qZWN0
ZWQgY29kZTogZm9vID0gNDIKLVdpdGhvdXQgaW5qZWN0ZWQgY29kZTogZm9vID0gdW5kZWZpbmVk
Ci1BbGwgdGVzdHMgZG9uZS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4
dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtcmVsb2FkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDU1ZDBhN2YuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1yZWxvYWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5iYXIgPSAiZm9vID0gIiArIHdpbmRvdy5m
b287Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0UmVsb2FkSW5qZWN0c0NvZGUobmV4dFRlc3Qp
Ci17Ci0gICAgdmFyIHZhbHVlV2l0aEluamVjdGVkQ29kZTsKLQotICAgIGZ1bmN0aW9uIG9uUGFn
ZVdpdGhJbmplY3RlZENvZGVMb2FkZWQoKQotICAgIHsKLSAgICAgICAgd2ViSW5zcGVjdG9yLmlu
c3BlY3RlZFdpbmRvdy5ldmFsKCJ3aW5kb3cuYmFyIiwgZnVuY3Rpb24odmFsdWUpIHsKLSAgICAg
ICAgICAgIHZhbHVlV2l0aEluamVjdGVkQ29kZSA9IHZhbHVlOwotICAgICAgICAgICAgZXZhbHVh
dGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnJ1bldoZW5QYWdlTG9hZHMocmVwbHkpIiwgb25Q
YWdlV2l0aG91dEluamVjdGVkQ29kZUxvYWRlZCk7Ci0gICAgICAgICAgICB3ZWJJbnNwZWN0b3Iu
aW5zcGVjdGVkV2luZG93LnJlbG9hZCgpOwotICAgICAgICB9KTsKLSAgICB9Ci0gICAgZnVuY3Rp
b24gb25QYWdlV2l0aG91dEluamVjdGVkQ29kZUxvYWRlZCgpCi0gICAgewotICAgICAgICB3ZWJJ
bnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoIndpbmRvdy5iYXIiLCBmdW5jdGlvbih2YWx1
ZSkgewotICAgICAgICAgICAgb3V0cHV0KCJXaXRoIGluamVjdGVkIGNvZGU6ICIgKyB2YWx1ZVdp
dGhJbmplY3RlZENvZGUpOwotICAgICAgICAgICAgb3V0cHV0KCJXaXRob3V0IGluamVjdGVkIGNv
ZGU6ICIgKyB2YWx1ZSk7Ci0gICAgICAgICAgICBuZXh0VGVzdCgpOwotICAgICAgICB9KTsKLSAg
ICB9Ci0gICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnJ1bldoZW5QYWdlTG9h
ZHMocmVwbHkpIiwgb25QYWdlV2l0aEluamVjdGVkQ29kZUxvYWRlZCk7Ci0gICAgd2ViSW5zcGVj
dG9yLmluc3BlY3RlZFdpbmRvdy5yZWxvYWQoewotICAgICAgICBpbmplY3RlZFNjcmlwdDogIndp
bmRvdy5mb28gPSA0MjsiCi0gICAgfSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVk
V2luZG93LnJlbG9hZCgpIHN1Y2Nlc3NmdWxseSBpbmplY3RzIHVzZXIncyBjb2RlIHVwb24gcmVs
b2FkPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJjZXMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2VmNWE1Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcmVzb3VyY2VzLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAxMjogZG9uJ3QgcGFuaWMhCi1UZXN0cyByZXNvdXJjZS1yZWxhdGVkIG1ldGhvZHMg
b2YgV2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEkKLQotCi1TdGFydGVkIGV4dGVuc2lvbi4KLVJ1
bm5pbmcgdGVzdHMuLi4KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RHZXRBbGxSZXNvdXJj
ZXMKLXBhZ2UgcmVzb3VyY2VzOgotewotICAgIDAgOiB7Ci0gICAgICAgIDAgOiB7Ci0gICAgICAg
ICAgICBnZXRDb250ZW50IDogPGZ1bmN0aW9uPgotICAgICAgICAgICAgc2V0Q29udGVudCA6IDxm
dW5jdGlvbj4KLSAgICAgICAgICAgIHR5cGUgOiAiaW1hZ2UiCi0gICAgICAgICAgICB1cmwgOiAu
Li4vYWJlLnBuZwotICAgICAgICB9Ci0gICAgICAgIDEgOiB7Ci0gICAgICAgICAgICBnZXRDb250
ZW50IDogPGZ1bmN0aW9uPgotICAgICAgICAgICAgc2V0Q29udGVudCA6IDxmdW5jdGlvbj4KLSAg
ICAgICAgICAgIHR5cGUgOiAic3R5bGVzaGVldCIKLSAgICAgICAgICAgIHVybCA6IC4uLi9hdWRp
dHMtc3R5bGUxLmNzcwotICAgICAgICB9Ci0gICAgICAgIDIgOiB7Ci0gICAgICAgICAgICBnZXRD
b250ZW50IDogPGZ1bmN0aW9uPgotICAgICAgICAgICAgc2V0Q29udGVudCA6IDxmdW5jdGlvbj4K
LSAgICAgICAgICAgIHR5cGUgOiAiZG9jdW1lbnQiCi0gICAgICAgICAgICB1cmwgOiAuLi4vZXh0
ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbAotICAgICAgICB9Ci0gICAgICAgIDMgOiB7Ci0gICAgICAg
ICAgICBnZXRDb250ZW50IDogPGZ1bmN0aW9uPgotICAgICAgICAgICAgc2V0Q29udGVudCA6IDxm
dW5jdGlvbj4KLSAgICAgICAgICAgIHR5cGUgOiAic2NyaXB0IgotICAgICAgICAgICAgdXJsIDog
Li4uL2V4dGVuc2lvbnMtdGVzdC5qcwotICAgICAgICB9Ci0gICAgICAgIDQgOiB7Ci0gICAgICAg
ICAgICBnZXRDb250ZW50IDogPGZ1bmN0aW9uPgotICAgICAgICAgICAgc2V0Q29udGVudCA6IDxm
dW5jdGlvbj4KLSAgICAgICAgICAgIHR5cGUgOiAic2NyaXB0IgotICAgICAgICAgICAgdXJsIDog
Li4uL2luc3BlY3Rvci10ZXN0LmpzCi0gICAgICAgIH0KLSAgICAgICAgNSA6IHsKLSAgICAgICAg
ICAgIGdldENvbnRlbnQgOiA8ZnVuY3Rpb24+Ci0gICAgICAgICAgICBzZXRDb250ZW50IDogPGZ1
bmN0aW9uPgotICAgICAgICAgICAgdHlwZSA6ICJzY3JpcHQiCi0gICAgICAgICAgICB1cmwgOiAu
Li4vdGVzdC1zY3JpcHQuanMKLSAgICAgICAgfQotICAgIH0KLX0KLVJVTk5JTkcgVEVTVDogZXh0
ZW5zaW9uX3Rlc3RHZXRSZXNvdXJjZUNvbnRlbnQKLXsKLSAgICAwIDogImZ1bmN0aW9uIF9fdGVz
dF9mdW5jdGlvbigpCi17Ci19Ci0KLSIKLSAgICAxIDogIiIKLX0KLVJVTk5JTkcgVEVTVDogZXh0
ZW5zaW9uX3Rlc3RPbkNvbnRlbnRDb21taXR0ZWQKLWxvZzogRXh0ZW5zaW9uIHNlcnZlciBlcnJv
cjogT2JqZWN0IGRvZXMgbm90IHN1cHBvcnQgcmVxdWVzdGVkIG9wZXJhdGlvbjogUmVzb3VyY2Ug
aXMgbm90IGVkaXRhYmxlCi1jb250ZW50IGNvbW1pdHRlZCBmb3IgcmVzb3VyY2UgLi4uL2F1ZGl0
cy1zdHlsZTEuY3NzICh0eXBlOiBzdHlsZXNoZWV0KSwgbmV3IGNvbnRlbnQ6IGRpdi50ZXN0IHsg
d2lkdGg6IDIyMHB4OyBoZWlnaHQ6IDQycHg7IH0KLVJldmlzaW9uIGNvbnRlbnQ6IGRpdi50ZXN0
IHsgd2lkdGg6IDIyMHB4OyBoZWlnaHQ6IDQycHg7IH0KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9u
X3Rlc3RPblJlc291cmNlQWRkZWQKLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotcmVzb3VyY2UgYWRk
ZWQ6Ci17Ci0gICAgMCA6IHsKLSAgICAgICAgZ2V0Q29udGVudCA6IDxmdW5jdGlvbj4KLSAgICAg
ICAgc2V0Q29udGVudCA6IDxmdW5jdGlvbj4KLSAgICAgICAgdHlwZSA6ICJzY3JpcHQiCi0gICAg
ICAgIHVybCA6IGRhdGE6YXBwbGljYXRpb24vamF2YXNjcmlwdC4uLgotICAgIH0KLX0KLURlYnVn
Z2VyIHdhcyBkaXNhYmxlZC4KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RPcGVuUmVzb3Vy
Y2VIYW5kbGVyCi1oYW5kbGVPcGVuUmVzb3VyY2UoKSBpbnZva2VkIFt0aGlzIHNob3VsZCBvbmx5
IGFwcGVhciBvbmNlIV06IAotewotICAgIDAgOiB7Ci0gICAgICAgIGdldENvbnRlbnQgOiA8ZnVu
Y3Rpb24+Ci0gICAgICAgIHNldENvbnRlbnQgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIHR5cGUgOiAi
ZG9jdW1lbnQiCi0gICAgICAgIHVybCA6IC4uLi9leHRlbnNpb25zLXJlc291cmNlcy5odG1sCi0g
ICAgfQotICAgIDEgOiAxMgotfQotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdFNldFJlc291
cmNlQ29udGVudAotZGl2LnRlc3Qgd2lkdGggYWZ0ZXIgc3R5bGVzaGVldCBlZGl0ZWQgKHNob3Vs
ZCBiZSAxMjYpOiAxMjYKLUFsbCB0ZXN0cyBkb25lLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlc291cmNlcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFhNTE2Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlc291cmNlcy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMjEyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJl
c291cmNlcy9hdWRpdHMtc3R5bGUxLmNzcyIgdHlwZT0idGV4dC9jc3MiPgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Qtc2NyaXB0LmpzIj48L3Njcmlw
dD4KLQotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotZnVuY3Rpb24gbG9nTWVzc2Fn
ZSgpCi17Ci0gICAgY29uc29sZS5sb2coImRvbid0IHBhbmljISIpOwotfQotCi1mdW5jdGlvbiBp
bml0aWFsaXplX0V4dGVuc2lvblJlc291cmNlVGVzdHMoKQotewotCi1JbnNwZWN0b3JUZXN0LmNs
aWNrT25VUkwgPSBmdW5jdGlvbigpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiY29u
c29sZSIpOwotICAgIHZhciB4cGF0aFJlc3VsdCA9IGRvY3VtZW50LmV2YWx1YXRlKCIvL2Fbc3Rh
cnRzLXdpdGgoLiwgJ2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWwnKV0iLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuY29uc29sZS5l
bGVtZW50LCBudWxsLCBYUGF0aFJlc3VsdC5BTllfVU5PUkRFUkVEX05PREVfVFlQRSwgbnVsbCk7
Ci0gICAgdmFyIGNsaWNrID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTsKLSAg
ICBjbGljay5pbml0TW91c2VFdmVudCgiY2xpY2siLCB0cnVlLCB0cnVlKTsKLSAgICB4cGF0aFJl
c3VsdC5zaW5nbGVOb2RlVmFsdWUuZGlzcGF0Y2hFdmVudChjbGljayk7Ci19Ci0KLX0KLQotZnVu
Y3Rpb24gZXh0ZW5zaW9uX3Rlc3RHZXRBbGxSZXNvdXJjZXMobmV4dFRlc3QpCi17Ci0gICAgZnVu
Y3Rpb24gY2FsbGJhY2socmVzb3VyY2VzKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gZmlsdGVy
KHJlc291cmNlKQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBGb3Igc29tZSByZWFzb24gc2Ny
aXB0cyBmcm9tIHRlc3RzIHByZXZpb3VzbHkgcnVuIGluIHRoZSBzYW1lIHRlc3Qgc2hlbGwgc29t
ZXRpbWVzIGFwcGVhciwgc28gd2UgbmVlZCB0byBmaWx0ZXIgdGhlbSBvdXQuCi0gICAgICAgICAg
ICBjb25zdCByZXNvdXJjZVVSTHNXaGl0ZUxpc3QgPSBbImFiZS5wbmciLCAiYXVkaXRzLXN0eWxl
MS5jc3MiLCAiZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbCIsICJleHRlbnNpb25zLXRlc3QuanMi
LCAiaW5zcGVjdG9yLXRlc3QuanMiLCAidGVzdC1zY3JpcHQuanMiXTsKLSAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcmVzb3VyY2VVUkxzV2hpdGVMaXN0Lmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKHJlc291cmNlLnVybC5pbmRleE9mKHJlc291cmNlVVJMc1doaXRl
TGlzdFtpXSkgIT09IC0xKQotICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBm
dW5jdGlvbiBjb21wYXJlUmVzb3VyY2VzKGEsIGIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiB0cmltVVJMKGEudXJsKS5sb2NhbGVDb21wYXJlKHRyaW1VUkwoYi51cmwpKTsKLSAgICAg
ICAgfQotICAgICAgICByZXNvdXJjZXMgPSByZXNvdXJjZXMuZmlsdGVyKGZpbHRlcik7Ci0gICAg
ICAgIHJlc291cmNlcy5zb3J0KGNvbXBhcmVSZXNvdXJjZXMpOwotICAgICAgICBvdXRwdXQoInBh
Z2UgcmVzb3VyY2VzOiIpOwotICAgICAgICBkdW1wT2JqZWN0KEFycmF5LnByb3RvdHlwZS5zbGlj
ZS5jYWxsKGFyZ3VtZW50cyksIHsgdXJsOiAidXJsIiB9KTsKLSAgICB9Ci0gICAgd2ViSW5zcGVj
dG9yLmluc3BlY3RlZFdpbmRvdy5nZXRSZXNvdXJjZXMoY2FsbGJhY2tBbmROZXh0VGVzdChjYWxs
YmFjaywgbmV4dFRlc3QpKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3J1bldpdGhSZXNvdXJj
ZShyZWdleHAsIGNhbGxiYWNrKQotewotICAgIGZ1bmN0aW9uIG9uUmVzb3VyY2VzKHJlc291cmNl
cykKLSAgICB7Ci0gICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNvdXJjZXMubGVuZ3RoOyAr
K2kpIHsKLSAgICAgICAgICAgaWYgKHJlZ2V4cC50ZXN0KHJlc291cmNlc1tpXS51cmwpKSB7Ci0g
ICAgICAgICAgICAgICBjYWxsYmFjayhyZXNvdXJjZXNbaV0pCi0gICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgIH0KLSAgICAgICB9Ci0gICAgICAgdGhyb3cgIkZhaWxlZCB0byBmaW5k
IGEgcmVzb3VyY2U6ICIgKyByZWdleHAudG9TdHJpbmcoKTsKLSAgICB9Ci0gICAgd2ViSW5zcGVj
dG9yLmluc3BlY3RlZFdpbmRvdy5nZXRSZXNvdXJjZXMob25SZXNvdXJjZXMpOwotfQotCi1mdW5j
dGlvbiBleHRlbnNpb25fdGVzdEdldFJlc291cmNlQ29udGVudChuZXh0VGVzdCkKLXsKLSAgICBm
dW5jdGlvbiBvbkNvbnRlbnQoKQotICAgIHsKLSAgICAgICAgZHVtcE9iamVjdChBcnJheS5wcm90
b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTsKLSAgICB9Ci0gICAgZXh0ZW5zaW9uX3J1bldp
dGhSZXNvdXJjZSgvdGVzdC1zY3JpcHRcLmpzJC8sIGZ1bmN0aW9uKHJlc291cmNlKSB7Ci0gICAg
ICAgIHJlc291cmNlLmdldENvbnRlbnQoY2FsbGJhY2tBbmROZXh0VGVzdChvbkNvbnRlbnQsIG5l
eHRUZXN0KSk7Ci0gICAgfSk7Ci19Ci0KLS8vIEV4dGVuc2lvbnMgdGVzdHMgb3ZlcnJpZGUgV2Vi
SW5zcGVjdG9yLlN0eWxlRmlsZS51cGRhdGVUaW1lb3V0IGJlY2F1c2Ugb3RoZXJ3aXNlIGV4dGVu
c2lvbnMgZG9uJ3QgaGF2ZSBhbnkgY29udHJvbCBvdmVyIGFwcGx5aW5nIGNoYW5nZXMgdG8gZG9t
YWluIHNwZWNpZmljIGJpbmRpbmdzLgotZnVuY3Rpb24gZXh0ZW5zaW9uX3NldEZha2VTdHlsZVNo
ZWV0VXBkYXRlVGltZW91dChjYWxsYmFjaykKLXsKLSAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIldl
Ykluc3BlY3Rvci5vbGRTdHlsZVNoZWV0VXBkYXRlVGltZW91dCA9IFdlYkluc3BlY3Rvci5TdHls
ZUZpbGUudXBkYXRlVGltZW91dDsgV2ViSW5zcGVjdG9yLlN0eWxlRmlsZS51cGRhdGVUaW1lb3V0
ID0gLTE7IHJlcGx5KCk7IiwgY2FsbGJhY2spOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fcmVz
ZXRTdHlsZVNoZWV0VXBkYXRlVGltZW91dChjYWxsYmFjaykKLXsKLSAgICBldmFsdWF0ZU9uRnJv
bnRlbmQoIldlYkluc3BlY3Rvci5TdHlsZUZpbGUudXBkYXRlVGltZW91dCA9IFdlYkluc3BlY3Rv
ci5vbGRTdHlsZVNoZWV0VXBkYXRlVGltZW91dDsgZGVsZXRlIFdlYkluc3BlY3Rvci5vbGRTdHls
ZVNoZWV0VXBkYXRlVGltZW91dDsgcmVwbHkoKTsiLCBjYWxsYmFjayk7Ci19Ci0KLWZ1bmN0aW9u
IGV4dGVuc2lvbl90ZXN0U2V0UmVzb3VyY2VDb250ZW50KG5leHRUZXN0KQotewotICAgIGV4dGVu
c2lvbl9zZXRGYWtlU3R5bGVTaGVldFVwZGF0ZVRpbWVvdXQoc3RlcDIpOwotCi0gICAgZnVuY3Rp
b24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgZXh0ZW5zaW9uX3J1bldpdGhSZXNvdXJjZSgvYXVk
aXRzLXN0eWxlMVwuY3NzJC8sIGZ1bmN0aW9uKHJlc291cmNlKSB7Ci0gICAgICAgICAgICByZXNv
dXJjZS5zZXRDb250ZW50KCJkaXYudGVzdCB7IHdpZHRoOiAxMjZweDsgaGVpZ2h0OiA0MnB4OyB9
IiwgZmFsc2UsIHN0ZXAzKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3Rl
cDMoKQotICAgIHsKLSAgICAgICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1kaXYnKS5jbGllbnRXaWR0aCIsIGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgICAgICAgICAgb3V0cHV0KCJkaXYudGVzdCB3aWR0aCBhZnRlciBzdHls
ZXNoZWV0IGVkaXRlZCAoc2hvdWxkIGJlIDEyNik6ICIgKyByZXN1bHQpOwotICAgICAgICAgICAg
c3RlcDQoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDQoKQotICAg
IHsKLSAgICAgICAgZXh0ZW5zaW9uX3Jlc2V0U3R5bGVTaGVldFVwZGF0ZVRpbWVvdXQobmV4dFRl
c3QpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RPbkNvbnRlbnRDb21taXR0
ZWQobmV4dFRlc3QpCi17Ci0gICAgdmFyIGV4cGVjdGVkX2NvbnRlbnQgPSAiZGl2LnRlc3QgeyB3
aWR0aDogMjIwcHg7IGhlaWdodDogNDJweDsgfSI7Ci0gICAgZXh0ZW5zaW9uX3NldEZha2VTdHls
ZVNoZWV0VXBkYXRlVGltZW91dChzdGVwMik7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAg
ewotCi0gICAgICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cub25SZXNvdXJjZUNvbnRl
bnRDb21taXR0ZWQuYWRkTGlzdGVuZXIob25Db250ZW50Q29tbWl0dGVkKTsKLSAgICAgICAgZXh0
ZW5zaW9uX3J1bldpdGhSZXNvdXJjZSgvYXVkaXRzLXN0eWxlMVwuY3NzJC8sIGZ1bmN0aW9uKHJl
c291cmNlKSB7Ci0gICAgICAgICAgICByZXNvdXJjZS5zZXRDb250ZW50KCJkaXYudGVzdCB7IHdp
ZHRoOiAxNDBweDsgaGVpZ2h0OiA0MnB4OyB9IiwgZmFsc2UpOwotICAgICAgICB9KTsKLSAgICAg
ICAgLy8gVGhlIG5leHQgc3RlcCBpcyBnb2luZyB0byBwcm9kdWNlIGEgY29uc29sZSBtZXNzYWdl
IHRoYXQgd2lsbCBiZSBsb2dnZWQsIHNvIHN5bmNocm9uaXplIHRoZSBvdXRwdXQgbm93LgotICAg
ICAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIkluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlz
cGF0Y2hlcyhyZXBseSkiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGV4dGVuc2lvbl9ydW5X
aXRoUmVzb3VyY2UoL2FiZVwucG5nJC8sIGZ1bmN0aW9uKHJlc291cmNlKSB7Ci0gICAgICAgICAg
ICAgICAgcmVzb3VyY2Uuc2V0Q29udGVudCgiIiwgdHJ1ZSk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIGV4dGVuc2lvbl9ydW5XaXRoUmVzb3VyY2UoL2F1ZGl0cy1zdHlsZTFcLmNzcyQv
LCBmdW5jdGlvbihyZXNvdXJjZSkgewotICAgICAgICAgICAgICAgIHJlc291cmNlLnNldENvbnRl
bnQoZXhwZWN0ZWRfY29udGVudCwgdHJ1ZSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25Db250ZW50Q29tbWl0dGVkKHJlc291cmNlLCBjb250
ZW50KQotICAgIHsKLSAgICAgICAgb3V0cHV0KCJjb250ZW50IGNvbW1pdHRlZCBmb3IgcmVzb3Vy
Y2UgIiArIHRyaW1VUkwocmVzb3VyY2UudXJsKSArICIgKHR5cGU6ICIgKyByZXNvdXJjZS50eXBl
ICsgIiksIG5ldyBjb250ZW50OiAiICsgY29udGVudCk7Ci0gICAgICAgIGlmICghL2F1ZGl0cy1z
dHlsZTFcLmNzcyQvLnRlc3QocmVzb3VyY2UudXJsKSB8fCBjb250ZW50ICE9PSBleHBlY3RlZF9j
b250ZW50KQotICAgICAgICAgICAgb3V0cHV0KCJGQUlMOiBzdHJheSBvbkNvbnRlbnRFZGl0ZWQg
ZXZlbnQiKTsKLSAgICAgICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5vblJlc291cmNl
Q29udGVudENvbW1pdHRlZC5yZW1vdmVMaXN0ZW5lcihvbkNvbnRlbnRDb21taXR0ZWQpOwotICAg
ICAgICByZXNvdXJjZS5nZXRDb250ZW50KGZ1bmN0aW9uKGNvbnRlbnQpIHsKLSAgICAgICAgICAg
IG91dHB1dCgiUmV2aXNpb24gY29udGVudDogIiArIGNvbnRlbnQpOwotICAgICAgICAgICAgc3Rl
cDMoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsK
LSAgICAgICAgZXh0ZW5zaW9uX3Jlc2V0U3R5bGVTaGVldFVwZGF0ZVRpbWVvdXQobmV4dFRlc3Qp
OwotICAgIH0KLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RPblJlc291cmNlQWRkZWQobmV4
dFRlc3QpCi17Ci0gICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnN0YXJ0RGVi
dWdnZXJUZXN0KHJlcGx5KTsiLCBzdGVwMik7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAg
ewotICAgICAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93Lm9uUmVzb3VyY2VBZGRlZC5h
ZGRMaXN0ZW5lcihvblJlc291cmNlQWRkZWQpOwotICAgICAgICB3ZWJJbnNwZWN0b3IuaW5zcGVj
dGVkV2luZG93LmV2YWwoImFkZFJlc291cmNlKCkiKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBv
blJlc291cmNlQWRkZWQocmVzb3VyY2UpCi0gICAgewotICAgICAgICBpZiAocmVzb3VyY2UudXJs
LmluZGV4T2YoInRlc3RfZnVuYyIpID09PSAtMSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgb3V0cHV0KCJyZXNvdXJjZSBhZGRlZDoiKTsKLSAgICAgICAgZHVtcE9iamVjdChBcnJheS5w
cm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLCB7IHVybDogInVybCIgfSk7Ci0gICAgICAg
IHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cub25SZXNvdXJjZUFkZGVkLnJlbW92ZUxpc3Rl
bmVyKG9uUmVzb3VyY2VBZGRlZCk7Ci0KLSAgICAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNw
ZWN0b3JUZXN0LmZpbmlzaERlYnVnZ2VyVGVzdChyZXBseSk7IiwgbmV4dFRlc3QpOwotICAgIH0K
LX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RPcGVuUmVzb3VyY2VIYW5kbGVyKG5leHRUZXN0
KQotewotICAgIGZ1bmN0aW9uIGhhbmRsZU9wZW5SZXNvdXJjZShyZXNvdXJjZSwgbGluZU51bWJl
cikKLSAgICB7Ci0gICAgICAgIG91dHB1dCgiaGFuZGxlT3BlblJlc291cmNlKCkgaW52b2tlZCBb
dGhpcyBzaG91bGQgb25seSBhcHBlYXIgb25jZSFdOiAiKTsKLSAgICAgICAgZHVtcE9iamVjdChB
cnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLCB7IHVybDogInVybCIgfSk7Ci0g
ICAgICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuc2V0T3BlblJlc291cmNlSGFuZGxlcihudWxsKTsK
LSAgICAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LmNsaWNrT25VUkwoKTsg
cmVwbHkoKSIsIG5leHRUZXN0KTsKLSAgICB9Ci0gICAgd2ViSW5zcGVjdG9yLnBhbmVscy5zZXRP
cGVuUmVzb3VyY2VIYW5kbGVyKGhhbmRsZU9wZW5SZXNvdXJjZSk7Ci0gICAgd2ViSW5zcGVjdG9y
Lmluc3BlY3RlZFdpbmRvdy5ldmFsKCJsb2dNZXNzYWdlKCkiLCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LmNsaWNrT25VUkwoKTsiKTsKLSAg
ICAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJXZWJJbnNwZWN0b3Iub3BlbkFuY2hvckxvY2F0aW9u
UmVnaXN0cnkuYWN0aXZlSGFuZGxlciA9ICd0ZXN0IGV4dGVuc2lvbic7IEluc3BlY3RvclRlc3Qu
Y2xpY2tPblVSTCgpOyIpOwotICAgIH0pOwotfQotCi1mdW5jdGlvbiBhZGRSZXNvdXJjZSgpCi17
Ci0gICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotICAg
IHNjcmlwdC5zcmMgPSAiZGF0YTphcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCIgKyBlc2NhcGUoImZ1
bmN0aW9uIHRlc3RfZnVuYygpe307Iik7Ci0gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChz
Y3JpcHQpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTxwPlRlc3RzIHJlc291cmNlLXJlbGF0ZWQgbWV0aG9kcyBvZiBXZWJJbnNwZWN0b3IgZXh0
ZW5zaW9uIEFQSTwvcD4KLTxpbWcgc3JjPSJyZXNvdXJjZXMvYWJlLnBuZyI+Ci08ZGl2IGlkPSJ0
ZXN0LWRpdiIgY2xhc3M9InRlc3QiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1zaWRlYmFyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
c2lkZWJhci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjODEw
YWYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5z
aW9ucy1zaWRlYmFyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAK
LVRlc3RzIHNpZGViYXJzIGluIFdlYkluc3BlY3RvciBleHRlbnNpb25zIEFQSQotCi1TdGFydGVk
IGV4dGVuc2lvbi4KLVJ1bm5pbmcgdGVzdHMuLi4KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rl
c3RTaWRlYmFyUGFnZVJlcGxhY2VkV2l0aE9iamVjdAotR290IG9uU2hvd24oKSwgZnJhbWUgZGVm
aW5lZAotR290IG9uU2hvd24oKSwgZnJhbWUgbm90IGRlZmluZWQKLVJVTk5JTkcgVEVTVDogZXh0
ZW5zaW9uX3Rlc3RTaWRlYmFyU2V0RXhwcmVzc2lvbgotbG9nOiBFeHRlbnNpb24gc2VydmVyIGVy
cm9yOiBJbnNwZWN0b3IgcHJvdG9jb2wgZXJyb3I6IE9iamVjdCBoYXMgdG9vIGxvbmcgcmVmZXJl
bmNlIGNoYWluKG11c3Qgbm90IGJlIGxvbmdlciB0aGFuIDEwMDApCi1TaWRlYmFyIGNvbnRlbnQ6
IHRpdGxlZjA6ICJleHByZXNzaW9uImYxOiB1bmRlZmluZWRmMjogbnVsbGYzOiBPYmplY3RmNDog
QXJyYXlbMF1mNTogQXJyYXlbM11mNjogT2JqZWN0Zjc6IDQyZjg6IExvY2F0aW9uZjk6IEhUTUxD
b2xsZWN0aW9uWzJdZjEwOiBmdW5jdGlvbiAoKSB7fWYxMTogImZvbyJfX3Byb3RvX186IE9iamVj
dAotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdFNpZGViYXJTZXRPYmplY3QKLVdhdGNoIHNp
ZGViYXIgY3JlYXRlZCwgY2FsbGJhY2sgYXJndW1lbnRzIGR1bXAgZm9sbG93czoKLXsKLSAgICAw
IDogewotICAgICAgICBvbkhpZGRlbiA6IHsKLSAgICAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1
bmN0aW9uPgotICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAg
IH0KLSAgICAgICAgb25TaG93biA6IHsKLSAgICAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0
aW9uPgotICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIH0K
LSAgICAgICAgc2V0RXhwcmVzc2lvbiA6IDxmdW5jdGlvbj4KLSAgICAgICAgc2V0SGVpZ2h0IDog
PGZ1bmN0aW9uPgotICAgICAgICBzZXRPYmplY3QgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIHNldFBh
Z2UgOiA8ZnVuY3Rpb24+Ci0gICAgfQotfQotU2lkZWJhciBjb250ZW50OiBmMDogIm9iamVjdCJm
MTogdW5kZWZpbmVkZjI6IG51bGxmMzoge31mNDogW11mNTogW2FhLCBiYiwgY2NdZjY6IHtmNjA6
NDIsIGY2MTpmb28sIGY2MjpbXX1mNzogNDIKLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RT
aWRlYmFyU2V0UGFnZQotU2lkZWJhciBjcmVhdGVkCi17Ci0gICAgb25IaWRkZW4gOiB7Ci0gICAg
ICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxm
dW5jdGlvbj4KLSAgICB9Ci0gICAgb25TaG93biA6IHsKLSAgICAgICAgYWRkTGlzdGVuZXIgOiA8
ZnVuY3Rpb24+Ci0gICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgIH0KLSAg
ICBzZXRFeHByZXNzaW9uIDogPGZ1bmN0aW9uPgotICAgIHNldEhlaWdodCA6IDxmdW5jdGlvbj4K
LSAgICBzZXRPYmplY3QgOiA8ZnVuY3Rpb24+Ci0gICAgc2V0UGFnZSA6IDxmdW5jdGlvbj4KLX0K
LUFsbCB0ZXN0cyBkb25lLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy9leHRlbnNpb25zLXNpZGViYXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtc2lkZWJhci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMGU3MjU2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zL2V4dGVuc2lvbnMtc2lkZWJhci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLWZ1bmN0aW9uIGluaXRpYWxpemVfZXh0ZW5zaW9u
c1NpZGViYXJUZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmR1bXBTaWRlYmFyQ29udGVudCA9
IGZ1bmN0aW9uKGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgdmFyIHNpZGViYXIgPSBJbnNwZWN0
b3JUZXN0Ll9leHRlbnNpb25TaWRlYmFyKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0
ZXJQZW5kaW5nRGlzcGF0Y2hlcyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJTaWRlYmFyIGNvbnRlbnQ6ICIgKyBzaWRlYmFyLmJvZHlFbGVtZW50LnRl
eHRDb250ZW50KTsKLSAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0pOwotICAgIH0K
LQotICAgIEluc3BlY3RvclRlc3QuZXhwYW5kU2lkZWJhciA9IGZ1bmN0aW9uKGNhbGxiYWNrKQot
ICAgIHsKLSAgICAgICAgdmFyIHNpZGViYXIgPSBJbnNwZWN0b3JUZXN0Ll9leHRlbnNpb25TaWRl
YmFyKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgIHNpZGViYXIuZXhwYW5kKCk7Ci0gICAgICAgICAgICBj
YWxsYmFjaygpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0Ll9leHRl
bnNpb25TaWRlYmFyID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHNpZGViYXJQYW5l
cyA9IFdlYkluc3BlY3Rvci5wYW5lbCgiZWxlbWVudHMiKS5zaWRlYmFyUGFuZXM7Ci0gICAgICAg
IC8vIHRoZSBzaWRlYmFyIG9mIGludGVyZXN0IGlzIHByZXN1bWVkIHRvIGFsd2F5cyBiZSBsYXN0
LgotICAgICAgICByZXR1cm4gc2lkZWJhclBhbmVzW09iamVjdC5rZXlzKHNpZGViYXJQYW5lcyku
cG9wKCldOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyU2V0UGFn
ZShuZXh0VGVzdCkKLXsKLSAgICBmdW5jdGlvbiBvblNpZGViYXJDcmVhdGVkKHNpZGViYXIpCi0g
ICAgewotICAgICAgICBvdXRwdXQoIlNpZGViYXIgY3JlYXRlZCIpOwotICAgICAgICBkdW1wT2Jq
ZWN0KHNpZGViYXIpOwotICAgICAgICBmdW5jdGlvbiBvblNob3duKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgc2lkZWJhci5vblNob3duLnJlbW92ZUxpc3RlbmVyKG9uU2hvd24pOwotICAgICAg
ICAgICAgbmV4dFRlc3QoKTsKLSAgICAgICAgfQotICAgICAgICBzaWRlYmFyLm9uU2hvd24uYWRk
TGlzdGVuZXIob25TaG93bik7Ci0gICAgICAgIHZhciBiYXNlUGF0aCA9IGxvY2F0aW9uLnBhdGhu
YW1lLnJlcGxhY2UoL1wvW14vXSokLywgIi8iKTsKLSAgICAgICAgc2lkZWJhci5zZXRQYWdlKGJh
c2VQYXRoICsgImV4dGVuc2lvbi1zaWRlYmFyLmh0bWwiKTsKLSAgICAgICAgZXh0ZW5zaW9uX3No
b3dQYW5lbCgiZWxlbWVudHMiLCBleHRlbnNpb25fZXhwYW5kU2lkZWJhcik7Ci0gICAgfQotICAg
IHdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuY3JlYXRlU2lkZWJhclBhbmUoIlRlc3QgU2lk
ZWJhciIsIG9uU2lkZWJhckNyZWF0ZWQpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fZHVtcFNp
ZGViYXJDb250ZW50KG5leHRUZXN0KQotewotICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiSW5zcGVj
dG9yVGVzdC5kdW1wU2lkZWJhckNvbnRlbnQocmVwbHkpOyIsIG5leHRUZXN0KTsKLX0KLQotZnVu
Y3Rpb24gZXh0ZW5zaW9uX2V4cGFuZFNpZGViYXIoY2FsbGJhY2spCi17Ci0gICAgZXZhbHVhdGVP
bkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LmV4cGFuZFNpZGViYXIocmVwbHkpOyIsIGNhbGxiYWNr
KTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyU2V0T2JqZWN0KG5leHRUZXN0
KQotewotICAgIGZ1bmN0aW9uIG9uU2lkZWJhckNyZWF0ZWQoc2lkZWJhcikKLSAgICB7Ci0gICAg
ICAgIG91dHB1dCgiV2F0Y2ggc2lkZWJhciBjcmVhdGVkLCBjYWxsYmFjayBhcmd1bWVudHMgZHVt
cCBmb2xsb3dzOiIpOwotICAgICAgICBkdW1wT2JqZWN0KEFycmF5LnByb3RvdHlwZS5zbGljZS5j
YWxsKGFyZ3VtZW50cykpOwotICAgICAgICBzaWRlYmFyLnNldE9iamVjdCh7Ci0gICAgICAgICAg
ICBmMDogIm9iamVjdCIsCi0gICAgICAgICAgICBmMTogdW5kZWZpbmVkLAotICAgICAgICAgICAg
ZjI6IG51bGwsCi0gICAgICAgICAgICBmMzoge30sCi0gICAgICAgICAgICBmNDogW10sCi0gICAg
ICAgICAgICBmNTogWyJhYSIsICJiYiIsICJjYyJdLAotICAgICAgICAgICAgZjY6IHsgZjYwOiA0
MiwgZjYxOiAiZm9vIiwgZjYyOiBbXSB9LAotICAgICAgICAgICAgZjc6IDQyCi0gICAgICAgIH0s
IG51bGwsIGV4dGVuc2lvbl9kdW1wU2lkZWJhckNvbnRlbnQuYmluZCh0aGlzLCBuZXh0VGVzdCkp
OwotICAgIH0KLSAgICB3ZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLmNyZWF0ZVNpZGViYXJQ
YW5lKCJXYXRjaCBUZXN0OiBPYmplY3QiLCBvblNpZGViYXJDcmVhdGVkKTsKLX0KLQotZnVuY3Rp
b24gZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyU2V0RXhwcmVzc2lvbihuZXh0VGVzdCkKLXsKLSAgICBm
dW5jdGlvbiBvblNpZGViYXJDcmVhdGVkKHNpZGViYXIpCi0gICAgewotICAgICAgICBmdW5jdGlv
biBleHByZXNzaW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgZG9jdW1lbnQuYm9keS50ZXN0
UHJvcGVydHkgPSAnZm9vJzsKLSAgICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAgICAg
ZjA6ICdleHByZXNzaW9uJywKLSAgICAgICAgICAgICAgICBmMTogdW5kZWZpbmVkLAotICAgICAg
ICAgICAgICAgIGYyOiBudWxsLAotICAgICAgICAgICAgICAgIGYzOiB7fSwKLSAgICAgICAgICAg
ICAgICBmNDogW10sCi0gICAgICAgICAgICAgICAgZjU6IFsiYWEiLCAiYmIiLCAiY2MiXSwKLSAg
ICAgICAgICAgICAgICBmNjogeyBmNjA6IDQyLCBmNjE6ICJmb28iLCBmNjI6IFtdIH0sCi0gICAg
ICAgICAgICAgICAgZjc6IDQyLAotICAgICAgICAgICAgICAgIGY4OiB3aW5kb3cubG9jYXRpb24s
Ci0gICAgICAgICAgICAgICAgZjk6IGRvY3VtZW50LmJvZHkuY2hpbGRyZW4sCi0gICAgICAgICAg
ICAgICAgZjEwOiBmdW5jdGlvbigpIHt9LAotICAgICAgICAgICAgICAgIGYxMTogJDAudGVzdFBy
b3BlcnR5Ci0gICAgICAgICAgICB9OwotICAgICAgICB9Ci0gICAgICAgIC8vIERvIGFuIGV4dHJh
IHJvdW5kLXRyaXAgdG8gdGhlIGluc3BlY3RlZCBwYWdlIHRvIGFzc3VyZSBpbnNwZWN0KCkncyBy
b3VuZC10cmlwIHRvCi0gICAgICAgIC8vIGZyb250LWVuZCBpcyBjb21wbGV0ZSBhbmQgJDAgaXMg
cHJvcGVybHkgdXBkYXRlZCB3aXRoIGN1cnJlbnRseSBpbnNwZWN0ZWQgbm9kZS4KLSAgICAgICAg
d2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCIiLCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIHNpZGViYXIuc2V0RXhwcmVzc2lvbigiKCIgKyBleHByZXNzaW9uLnRvU3RyaW5nKCkg
KyAiKSgpOyIsICJ0aXRsZSIsIGV4dGVuc2lvbl9kdW1wU2lkZWJhckNvbnRlbnQuYmluZCh0aGlz
LCBuZXh0VGVzdCkpOwotICAgICAgICB9KTsKLSAgICB9Ci0gICAgd2ViSW5zcGVjdG9yLmluc3Bl
Y3RlZFdpbmRvdy5ldmFsKCJpbnNwZWN0KGRvY3VtZW50LmJvZHkpIiwgZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuY3JlYXRlU2lkZWJhclBhbmUoIldh
dGNoIFRlc3Q6IEV4cHJlc3Npb24iLCBvblNpZGViYXJDcmVhdGVkKTsKLSAgICB9KTsKLX0KLQot
ZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyUGFnZVJlcGxhY2VkV2l0aE9iamVjdChuZXh0
VGVzdCkKLXsKLSAgICAgdmFyIGJhc2VQYXRoID0gbG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgv
XC9bXi9dKiQvLCAiLyIpOwotICAgICB2YXIgc2lkZWJhcjsKLQotICAgICBmdW5jdGlvbiBvblNp
ZGViYXJDcmVhdGVkKGFTaWRlYmFyKQotICAgICB7Ci0gICAgICAgICBzaWRlYmFyID0gYVNpZGVi
YXI7Ci0gICAgICAgICBzaWRlYmFyLm9uU2hvd24uYWRkTGlzdGVuZXIob25TaG93bik7Ci0gICAg
ICAgICBzaWRlYmFyLnNldFBhZ2UoYmFzZVBhdGggKyAiZXh0ZW5zaW9uLXNpZGViYXIuaHRtbCIp
OwotICAgICAgICAgZXh0ZW5zaW9uX3Nob3dQYW5lbCgiZWxlbWVudHMiLCBleHRlbnNpb25fZXhw
YW5kU2lkZWJhcik7Ci0gICAgIH0KLSAgICAgdmFyIGRpZFNldE9iamVjdCA9IGZhbHNlOwotICAg
ICBmdW5jdGlvbiBvblNob3duKGZyYW1lKQotICAgICB7Ci0gICAgICAgICBvdXRwdXQoIkdvdCBv
blNob3duKCksIGZyYW1lICIgKyAoZnJhbWUgPyAiZGVmaW5lZCIgOiAibm90IGRlZmluZWQiKSk7
Ci0gICAgICAgICBpZiAoIWRpZFNldE9iamVjdCkgewotICAgICAgICAgICAgIGRpZFNldE9iamVj
dCA9IHRydWU7Ci0gICAgICAgICAgICAgc2lkZWJhci5zZXRPYmplY3QoeyBmb286ICdiYXInIH0p
OwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNpZGViYXIub25TaG93bi5yZW1vdmVM
aXN0ZW5lcihvblNob3duKTsKLSAgICAgICAgICAgIG5leHRUZXN0KCk7Ci0gICAgICAgICB9Ci0g
ICAgIH0KLSAgICAgd2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5jcmVhdGVTaWRlYmFyUGFu
ZSgiU2lkZWJhciBUZXN0OiByZXBsYWNlIHBhZ2Ugd2l0aCBvYmplY3QiLCBvblNpZGViYXJDcmVh
dGVkKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Ci08cD5UZXN0cyBzaWRlYmFycyBpbiBXZWJJbnNwZWN0b3IgZXh0ZW5zaW9ucyBBUEk8L3A+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy9yZXNvdXJjZXMvYWJlLnBuZyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
L3Jlc291cmNlcy9hYmUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTMyNTM2
Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
L3Jlc291cmNlcy9hYmUucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9yZXNvdXJjZXMvYXVkaXRzLXN0eWxlMS5jc3Mg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9yZXNvdXJjZXMvYXVkaXRzLXN0eWxl
MS5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3MTEyYWQuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvcmVzb3VyY2VzL2F1ZGl0cy1zdHls
ZTEuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0uc29tZS1zdHlsZSB7Ci0gICAg
dmVydGljYWwtYWxpZ246IG1pZGRsZTsKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9yZXNvdXJjZXMvdGVz
dC1zY3JpcHQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9yZXNvdXJjZXMv
dGVzdC1zY3JpcHQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkOTlkN2YuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvcmVzb3VyY2VzL3Rl
c3Qtc2NyaXB0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1mdW5jdGlvbiBfX3Rl
c3RfZnVuY3Rpb24oKQotewotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZmlsZS1tYXBwaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLW1h
cHBpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDU0ZjI1
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmctZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdHMgRmlsZU1hcHBpbmcK
LQotVGVzdCBtYXBwaW5nRW50cnlGb3JVUkwKLSAgICBodHRwOi8vd3d3LmV4YW1wbGUuY29tIC0+
IG51bGwKLSAgICBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyAtPiAvaG9tZS9leGFtcGxlLmNvbS8K
LSAgICBodHRwOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwgLT4gL3Zhci93d3cvCi0gICAgaHR0cDov
L2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbCAtPiAvdmFyL3d3dy8KLSAgICBodHRwczovL2xvY2Fs
aG9zdCAtPiBudWxsCi0gICAgaHR0cDovL2V4YW1wbGUuY29tIC0+IG51bGwKLVRlc3QgbWFwcGlu
Z0VudHJ5Rm9yUGF0aAotICAgIC9ob21lL2V4YW1wbGUuY29tIC0+IG51bGwKLSAgICAvaG9tZS9l
eGFtcGxlLmNvbS8gLT4gaHR0cDovL3d3dy5leGFtcGxlLmNvbS8KLSAgICAvdmFyL3d3dy9pbmRl
eC5odG1sIC0+IGh0dHA6Ly9sb2NhbGhvc3QvCi0gICAgL3Zhci93d3cvZm9vL2luZGV4Lmh0bWwg
LT4gaHR0cDovL2xvY2FsaG9zdC8KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2ZpbGUtbWFwcGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtbWFwcGluZy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDQwN2JhLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmcuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDUyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIC8vIEF0IGZpcnN0IGZpbGwgZmlsZSBtYXBwaW5nIHdpdGggZW50
cmllcy4KLSAgICB2YXIgZmlsZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5n
KCk7Ci0gICAgdmFyIG1hcHBpbmdFbnRyaWVzID0gW107Ci0gICAgbWFwcGluZ0VudHJpZXMucHVz
aChuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vbG9jYWxob3N0LyIs
ICIvdmFyL3d3dy8iKSk7Ci0gICAgbWFwcGluZ0VudHJpZXMucHVzaChuZXcgV2ViSW5zcGVjdG9y
LkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIsICIvaG9tZS9leGFt
cGxlLmNvbS8iKSk7Ci0gICAgbWFwcGluZ0VudHJpZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLkZp
bGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vd3d3LmZvby5jb20vIiwgIi9iYXIvIikpOwotICAgIGZp
bGVNYXBwaW5nLnNldE1hcHBpbmdFbnRyaWVzKG1hcHBpbmdFbnRyaWVzKTsKLQotICAgIC8vIFRo
ZW4gY3JlYXRlIGFub3RoZXIgZmlsZSBtYXBwaW5nIHRvIG1ha2Ugc3VyZSBpdCBpcyBjb3JyZWN0
bHkgcmVzdG9yZWQgZnJvbSB0aGUgc2V0dGluZ3MuCi0gICAgZmlsZU1hcHBpbmcgPSBuZXcgV2Vi
SW5zcGVjdG9yLkZpbGVNYXBwaW5nKCk7Ci0KLSAgICBmdW5jdGlvbiB0ZXN0UGF0aFByZWZpeEZv
clVSTCh1cmwpCi0gICAgewotICAgICAgICB2YXIgZW50cnkgPSBmaWxlTWFwcGluZy5tYXBwaW5n
RW50cnlGb3JVUkwodXJsKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAi
ICsgdXJsICsgIiAtPiAiICsgKGVudHJ5ID8gZW50cnkucGF0aFByZWZpeCA6IG51bGwpKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0VVJMUHJlZml4Rm9yUGF0aChwYXRoKQotICAgIHsKLSAg
ICAgICAgdmFyIGVudHJ5ID0gZmlsZU1hcHBpbmcubWFwcGluZ0VudHJ5Rm9yUGF0aChwYXRoKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAiICsgcGF0aCArICIgLT4gIiAr
IChlbnRyeSA/IGVudHJ5LnVybFByZWZpeCA6IG51bGwpKTsKLSAgICB9Ci0KLSAgICAvLyBOb3cg
dGVzdCBhbGwgRmlsZU1hcHBpbmcgbWV0aG9kcy4KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiVGVzdCBtYXBwaW5nRW50cnlGb3JVUkwiKTsKLSAgICB0ZXN0UGF0aFByZWZpeEZvclVSTCgi
aHR0cDovL3d3dy5leGFtcGxlLmNvbSIpOwotICAgIHRlc3RQYXRoUHJlZml4Rm9yVVJMKCJodHRw
Oi8vd3d3LmV4YW1wbGUuY29tLyIpOwotICAgIHRlc3RQYXRoUHJlZml4Rm9yVVJMKCJodHRwOi8v
bG9jYWxob3N0L2luZGV4Lmh0bWwiKTsKLSAgICB0ZXN0UGF0aFByZWZpeEZvclVSTCgiaHR0cDov
L2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbCIpOwotICAgIHRlc3RQYXRoUHJlZml4Rm9yVVJMKCJo
dHRwczovL2xvY2FsaG9zdCIpOwotICAgIHRlc3RQYXRoUHJlZml4Rm9yVVJMKCJodHRwOi8vZXhh
bXBsZS5jb20iKTsKLQotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0IG1hcHBpbmdF
bnRyeUZvclBhdGgiKTsKLSAgICB0ZXN0VVJMUHJlZml4Rm9yUGF0aCgiL2hvbWUvZXhhbXBsZS5j
b20iKTsKLSAgICB0ZXN0VVJMUHJlZml4Rm9yUGF0aCgiL2hvbWUvZXhhbXBsZS5jb20vIik7Ci0g
ICAgdGVzdFVSTFByZWZpeEZvclBhdGgoIi92YXIvd3d3L2luZGV4Lmh0bWwiKTsKLSAgICB0ZXN0
VVJMUHJlZml4Rm9yUGF0aCgiL3Zhci93d3cvZm9vL2luZGV4Lmh0bWwiKTsKLQotICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIEZpbGVNYXBwaW5nPC9wPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLW1hcHBp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLW1hcHBp
bmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTYxZGI3Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1tYXBwaW5nLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLVRlc3RzIEZpbGVTeXN0
ZW1NYXBwaW5nCi0KLVRlc3RpbmcgZmlsZSBzeXN0ZW0gbWFwcGluZy4KLSAgICBmaWxlIHN5c3Rl
bSBwYXRoczoKLSAgICBmaWxlU3lzdGVtUGF0aEZvclByZWZpeDoKLQotQWRkaW5nIGZpbGUgc3lz
dGVtIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbwotVGVzdGluZyBmaWxlIHN5c3RlbSBtYXBw
aW5nLgotICAgIGZpbGUgc3lzdGVtIHBhdGhzOgotICAgICAtIC9ob21lL3VzZXJuYW1lL3Byb2pl
Y3RzL2ZvbwotICAgIGZpbGVTeXN0ZW1QYXRoRm9yUHJlZml4OgotICAgICAgICAvaG9tZS91c2Vy
bmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vCi0gICAgICAg
IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbyA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9m
b28KLQotQWRkaW5nIGZpbGUgc3lzdGVtIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhcgotVGVz
dGluZyBmaWxlIHN5c3RlbSBtYXBwaW5nLgotICAgIGZpbGUgc3lzdGVtIHBhdGhzOgotICAgICAt
IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbwotICAgICAtIC9ob21lL3VzZXJuYW1lL3Byb2pl
Y3RzL2JhcgotICAgIGZpbGVTeXN0ZW1QYXRoRm9yUHJlZml4OgotICAgICAgICAvaG9tZS91c2Vy
bmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vCi0gICAgICAg
IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9i
YXIKLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IC9ob21lL3VzZXJuYW1l
L3Byb2plY3RzL2ZvbwotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gL2hv
bWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyCi0KLUFkZGluZyBmaWxlIHN5c3RlbSAvd3d3L3NpdGUx
Ci1UZXN0aW5nIGZpbGUgc3lzdGVtIG1hcHBpbmcuCi0gICAgZmlsZSBzeXN0ZW0gcGF0aHM6Ci0g
ICAgIC0gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vCi0gICAgIC0gL2hvbWUvdXNlcm5hbWUv
cHJvamVjdHMvYmFyCi0gICAgIC0gL3d3dy9zaXRlMQotICAgIGZpbGVTeXN0ZW1QYXRoRm9yUHJl
Zml4OgotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5h
bWUvcHJvamVjdHMvZm9vCi0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAv
aG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIKLSAgICAgICAgL3d3dy9zaXRlMSA9PiAvd3d3L3Np
dGUxCi0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbyA9PiAvaG9tZS91c2VybmFt
ZS9wcm9qZWN0cy9mb28KLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IC9o
b21lL3VzZXJuYW1lL3Byb2plY3RzL2JhcgotICAgICAgICAvd3d3L3NpdGUxID0+IC93d3cvc2l0
ZTEKLQotQ3JlYXRpbmcgYW5vdGhlciBmaWxlIHN5c3RlbSBtYXBwaW5nLgotVGVzdGluZyBmaWxl
IHN5c3RlbSBtYXBwaW5nLgotICAgIGZpbGUgc3lzdGVtIHBhdGhzOgotICAgICAtIC9ob21lL3Vz
ZXJuYW1lL3Byb2plY3RzL2ZvbwotICAgICAtIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2Jhcgot
ICAgICAtIC93d3cvc2l0ZTEKLSAgICBmaWxlU3lzdGVtUGF0aEZvclByZWZpeDoKLSAgICAgICAg
L2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2Zv
bwotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gL2hvbWUvdXNlcm5hbWUv
cHJvamVjdHMvYmFyCi0gICAgICAgIC93d3cvc2l0ZTEgPT4gL3d3dy9zaXRlMQotICAgICAgICAv
aG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9v
Ci0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAvaG9tZS91c2VybmFtZS9w
cm9qZWN0cy9iYXIKLSAgICAgICAgL3d3dy9zaXRlMSA9PiAvd3d3L3NpdGUxCi0KLVJlbW92aW5n
IGZpbGUgc3lzdGVtIC93d3cvc2l0ZTEKLVRlc3RpbmcgZmlsZSBzeXN0ZW0gbWFwcGluZy4KLSAg
ICBmaWxlIHN5c3RlbSBwYXRoczoKLSAgICAgLSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28K
LSAgICAgLSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIKLSAgICBmaWxlU3lzdGVtUGF0aEZv
clByZWZpeDoKLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IC9ob21lL3Vz
ZXJuYW1lL3Byb2plY3RzL2ZvbwotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIg
PT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyCi0gICAgICAgIC9ob21lL3VzZXJuYW1lL3By
b2plY3RzL2ZvbyA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28KLSAgICAgICAgL2hvbWUv
dXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhcgotCi1S
ZW1vdmluZyBmaWxlIHN5c3RlbSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28KLVRlc3Rpbmcg
ZmlsZSBzeXN0ZW0gbWFwcGluZy4KLSAgICBmaWxlIHN5c3RlbSBwYXRoczoKLSAgICAgLSAvaG9t
ZS91c2VybmFtZS9wcm9qZWN0cy9iYXIKLSAgICBmaWxlU3lzdGVtUGF0aEZvclByZWZpeDoKLSAg
ICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IC9ob21lL3VzZXJuYW1lL3Byb2pl
Y3RzL2JhcgotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gL2hvbWUvdXNl
cm5hbWUvcHJvamVjdHMvYmFyCi0KLVJlbW92aW5nIGZpbGUgc3lzdGVtIC9ob21lL3VzZXJuYW1l
L3Byb2plY3RzL2JhcgotVGVzdGluZyBmaWxlIHN5c3RlbSBtYXBwaW5nLgotICAgIGZpbGUgc3lz
dGVtIHBhdGhzOgotICAgIGZpbGVTeXN0ZW1QYXRoRm9yUHJlZml4OgotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1tYXBwaW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0tbWFwcGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjY2IxYWU5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9maWxlLXN5c3RlbS1tYXBwaW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICB2YXIgcGF0aHMgPSB7Ci0gICAgICAgIEZPTzogIi9ob21lL3VzZXJuYW1lL3Byb2plY3Rz
L2ZvbyIsCi0gICAgICAgIEJBUjogIi9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciIsCi0gICAg
ICAgIFNJVEUxOiAiL3d3dy9zaXRlMSIKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gYWRkRmlsZVN5
c3RlbShmaWxlU3lzdGVtTWFwcGluZywgcGF0aCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJBZGRpbmcgZmlsZSBzeXN0ZW0gIiArIHBhdGgpOwotICAgICAgICBmaWxl
U3lzdGVtTWFwcGluZy5hZGRGaWxlU3lzdGVtTWFwcGluZyhwYXRoKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiByZW1vdmVGaWxlU3lzdGVtKGZpbGVTeXN0ZW1NYXBwaW5nLCBwYXRoKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJlbW92aW5nIGZpbGUgc3lzdGVtICIg
KyBwYXRoKTsKLSAgICAgICAgZmlsZVN5c3RlbU1hcHBpbmcucmVtb3ZlRmlsZVN5c3RlbU1hcHBp
bmcocGF0aCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY2hlY2tBbmREdW1wRmlsZVN5c3RlbU1h
cHBpbmcoZmlsZVN5c3RlbU1hcHBpbmcpCi0gICAgewotICAgICAgICB2YXIgZmlsZVN5c3RlbVBh
dGhzID0gZmlsZVN5c3RlbU1hcHBpbmcuZmlsZVN5c3RlbVBhdGhzKCk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0aW5nIGZpbGUgc3lzdGVtIG1hcHBpbmcuIik7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgZmlsZSBzeXN0ZW0gcGF0aHM6Iik7Ci0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZVN5c3RlbVBhdGhzLmxlbmd0aDsgKytpKQot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAgLSAiICsgZmlsZVN5c3Rl
bVBhdGhzW2ldKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBmaWxlU3lz
dGVtUGF0aEZvclByZWZpeDoiKTsKLSAgICAgICAgLy8gQ2FsbCBmaWxlU3lzdGVtUGF0aEZvclBy
ZWZpeCB0d2ljZSBmb3IgZWFjaCBwYXRoIHByZWZpeCB0byBjaGVjayBjYWNoaW5nLgotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDI7ICsraSkgewotICAgICAgICAgICAgZm9yIChwYXRoSWQg
aW4gcGF0aHMpIHsKLSAgICAgICAgICAgICAgICB2YXIgcGF0aFByZWZpeCA9IHBhdGhzW3BhdGhJ
ZF07Ci0gICAgICAgICAgICAgICAgdmFyIGZpbGVTeXN0ZW1QYXRoID0gZmlsZVN5c3RlbU1hcHBp
bmcuZmlsZVN5c3RlbVBhdGhGb3JQcmVmaXgocGF0aFByZWZpeCArICIvIik7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFmaWxlU3lzdGVtUGF0aCkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAgICAgIiArIHBh
dGhQcmVmaXggKyAiID0+ICIgKyBmaWxlU3lzdGVtUGF0aCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgIH0KLQotICAg
IC8vIEF0IGZpcnN0IGNyZWF0ZSBmaWxlIHN5c3RlbSBtYXBwaW5nIGFuZCBjbGVhciBpdC4KLSAg
ICB2YXIgZmlsZVN5c3RlbU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1NYXBw
aW5nSW1wbCgpOwotICAgIHZhciBmaWxlU3lzdGVtUGF0aHMgPSBmaWxlU3lzdGVtTWFwcGluZy5m
aWxlU3lzdGVtUGF0aHMoKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVTeXN0ZW1QYXRo
cy5sZW5ndGg7ICsraSkKLSAgICAgICAgZmlsZVN5c3RlbU1hcHBpbmcucmVtb3ZlRmlsZVN5c3Rl
bU1hcHBpbmcoZmlsZVN5c3RlbVBhdGhzW2ldKTsKLSAgICAKLSAgICAvLyBOb3cgZmlsbCBpdCB3
aXRoIGZpbGUgc3lzdGVtcyBhbmQgdGVzdC4KLSAgICBjaGVja0FuZER1bXBGaWxlU3lzdGVtTWFw
cGluZyhmaWxlU3lzdGVtTWFwcGluZyk7Ci0gICAgYWRkRmlsZVN5c3RlbShmaWxlU3lzdGVtTWFw
cGluZywgcGF0aHMuRk9PKQotICAgIGNoZWNrQW5kRHVtcEZpbGVTeXN0ZW1NYXBwaW5nKGZpbGVT
eXN0ZW1NYXBwaW5nKTsKLSAgICBhZGRGaWxlU3lzdGVtKGZpbGVTeXN0ZW1NYXBwaW5nLCBwYXRo
cy5CQVIpCi0gICAgY2hlY2tBbmREdW1wRmlsZVN5c3RlbU1hcHBpbmcoZmlsZVN5c3RlbU1hcHBp
bmcpOwotICAgIGFkZEZpbGVTeXN0ZW0oZmlsZVN5c3RlbU1hcHBpbmcsIHBhdGhzLlNJVEUxKQot
ICAgIGNoZWNrQW5kRHVtcEZpbGVTeXN0ZW1NYXBwaW5nKGZpbGVTeXN0ZW1NYXBwaW5nKTsKLQot
ICAgIC8vIFRoZW4gY3JlYXRlIGFub3RoZXIgZmlsZSBtYXBwaW5nIHRvIG1ha2Ugc3VyZSBpdCBp
cyBjb3JyZWN0bHkgcmVzdG9yZWQgZnJvbSB0aGUgc2V0dGluZ3MuCi0gICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkNyZWF0aW5nIGFub3RoZXIgZmlsZSBzeXN0ZW0gbWFwcGluZy4iKTsKLSAg
ICB2YXIgZmlsZVN5c3RlbU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1NYXBw
aW5nSW1wbCgpOwotICAgIGNoZWNrQW5kRHVtcEZpbGVTeXN0ZW1NYXBwaW5nKGZpbGVTeXN0ZW1N
YXBwaW5nKTsKLQotICAgIC8vIE5vdyByZW1vdmUgZmlsZSBzeXN0ZW1zIGFuZCB0ZXN0LgotICAg
IHJlbW92ZUZpbGVTeXN0ZW0oZmlsZVN5c3RlbU1hcHBpbmcsIHBhdGhzLlNJVEUxKQotICAgIGNo
ZWNrQW5kRHVtcEZpbGVTeXN0ZW1NYXBwaW5nKGZpbGVTeXN0ZW1NYXBwaW5nKTsKLSAgICByZW1v
dmVGaWxlU3lzdGVtKGZpbGVTeXN0ZW1NYXBwaW5nLCBwYXRocy5GT08pCi0gICAgY2hlY2tBbmRE
dW1wRmlsZVN5c3RlbU1hcHBpbmcoZmlsZVN5c3RlbU1hcHBpbmcpOwotICAgIHJlbW92ZUZpbGVT
eXN0ZW0oZmlsZVN5c3RlbU1hcHBpbmcsIHBhdGhzLkJBUikKLSAgICBjaGVja0FuZER1bXBGaWxl
U3lzdGVtTWFwcGluZyhmaWxlU3lzdGVtTWFwcGluZyk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Ci08cD5UZXN0cyBGaWxlU3lzdGVtTWFwcGluZzwvcD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1wcm9qZWN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1wcm9qZWN0LWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTQzNzAzNS4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0tcHJvamVjdC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1UZXN0cyBmaWxlIHN5c3RlbSBw
cm9qZWN0LgotCi0KLVJ1bm5pbmc6IHRlc3RGaWxlU3lzdGVtcwotQWRkaW5nIGZpcnN0IGZpbGUg
c3lzdGVtLgotQWRkaW5nIHNlY29uZCBmaWxlIHN5c3RlbS4KLQotVUlTb3VyY2VDb2RlOiBmaWxl
Oi8vL3Zhci93d3cvbG9jYWxob3N0L2Zvby5qcwotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0
cnVlCi1VSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5cGU6IHRl
eHQvamF2YXNjcmlwdAotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxmb28gY29udGVudD4KLQotVUlT
b3VyY2VDb2RlOiBmaWxlOi8vL3Zhci93d3cvYmFyLmpzCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFi
bGU6IHRydWUKLVVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlw
ZTogdGV4dC9qYXZhc2NyaXB0Ci1VSVNvdXJjZUNvZGUgY29udGVudDogPGJhciBjb250ZW50Pgot
Ci1VSVNvdXJjZUNvZGU6IGZpbGU6Ly8vZm9vL2Jhci9iYXouanMKLVVJU291cmNlQ29kZSBpcyBl
ZGl0YWJsZTogdHJ1ZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBmYWxzZQotTWlt
ZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKLVVJU291cmNlQ29kZSBjb250ZW50OiA8YmF6IGNvbnRl
bnQ+Ci0KLVVJU291cmNlQ29kZSB1cmkgdG8gdXJsIG1hcHBpbmdzOgotICAgIGZpbGVzeXN0ZW06
L3Zhci93d3cvbG9jYWxob3N0L2Zvby5qcyAtPiBodHRwOi8vbG9jYWxob3N0L2Zvby5qcwotICAg
IGZpbGVzeXN0ZW06L2Zvby9iYXIvYmF6LmpzIC0+IGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vYmF6
LmpzCi1VSVNvdXJjZUNvZGUgdXJsIHRvIHVyaSBtYXBwaW5nczoKLSAgICBodHRwOi8vbG9jYWxo
b3N0L2Zvby5qcyAtPiBmaWxlc3lzdGVtOi92YXIvd3d3L2xvY2FsaG9zdC9mb28uanMKLSAgICBo
dHRwOi8vd3d3LmV4YW1wbGUuY29tL2Jhei5qcyAtPiBmaWxlc3lzdGVtOi9mb28vYmFyL2Jhei5q
cwotUmVtb3Zpbmcgc2Vjb25kIGZpbGUgc3lzdGVtLgotICAgIG51bWJlciBvZiB1aVNvdXJjZUNv
ZGVzIGluIHdvcmtzcGFjZSBhZnRlciByZW1vdmluZyBzZWNvbmQgZmlsZSBzeXN0ZW06IDEKLVJl
bW92aW5nIGZpcnN0IGZpbGUgc3lzdGVtLgotICAgIG51bWJlciBvZiB1aVNvdXJjZUNvZGVzIGlu
IHdvcmtzcGFjZSBhZnRlciByZW1vdmluZyBmaXJzdCBmaWxlIHN5c3RlbTogMAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0tcHJvamVjdC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLXByb2plY3QuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGU3NTAwMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZmlsZS1zeXN0ZW0tcHJvamVjdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lzb2xhdGVkLWZpbGVzeXN0ZW0tdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24g
ZHVtcFVJU291cmNlQ29kZXModWlTb3VyY2VDb2RlcywgbmV4dCkKLSAgICB7Ci0gICAgICAgIGlu
bmVyRHVtcFVJU291cmNlQ29kZXModWlTb3VyY2VDb2RlcywgMCwgbmV4dCk7Ci0KLSAgICAgICAg
ZnVuY3Rpb24gaW5uZXJEdW1wVUlTb3VyY2VDb2Rlcyh1aVNvdXJjZUNvZGVzLCBzdGFydEluZGV4
LCBuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
Iik7Ci0gICAgICAgICAgICBpZiAoc3RhcnRJbmRleCA9PT0gdWlTb3VyY2VDb2Rlcy5sZW5ndGgp
IHsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKHVp
U291cmNlQ29kZXNbc3RhcnRJbmRleF0sIGlubmVyRHVtcFVJU291cmNlQ29kZXMuYmluZCh0aGlz
LCB1aVNvdXJjZUNvZGVzLCBzdGFydEluZGV4ICsgMSwgbmV4dCkpOwotICAgICAgICB9Ci0gICAg
fQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0
ZXN0RmlsZVN5c3RlbXMobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jcmVhdGVXb3Jrc3BhY2UoKTsKLSAgICAgICAgICAgIHZhciBtYW5hZ2VyID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVJc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyKEluc3BlY3RvclRlc3QudGVzdFdv
cmtzcGFjZSwgSW5zcGVjdG9yVGVzdC50ZXN0RmlsZVN5c3RlbU1hcHBpbmcpOwotICAgICAgICAg
ICAgdmFyIHVpU291cmNlQ29kZXMgPSBbXTsKLSAgICAgICAgICAgIHZhciBlbnRyeTEgPSBuZXcg
V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vbG9jYWxob3N0LyIsICIvdmFy
L3d3dy9sb2NhbGhvc3QvIik7Ci0gICAgICAgICAgICB2YXIgZW50cnkyID0gbmV3IFdlYkluc3Bl
Y3Rvci5GaWxlTWFwcGluZy5FbnRyeSgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iLCAiL2Zvby9i
YXIvIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRlc3RGaWxlTWFwcGluZy5zZXRNYXBw
aW5nRW50cmllcyhbZW50cnkxLCBlbnRyeTJdKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
d2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQodWlTb3VyY2VDb2RlQWRkZWQs
IDMpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyBmaXJzdCBm
aWxlIHN5c3RlbS4iKTsKLSAgICAgICAgICAgIG1hbmFnZXIuYWRkTW9ja0ZpbGVTeXN0ZW0oIi92
YXIvd3d3IiwgeyIvbG9jYWxob3N0L2Zvby5qcyI6ICI8Zm9vIGNvbnRlbnQ+IiwgIi9iYXIuanMi
OiAiPGJhciBjb250ZW50PiJ9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJBZGRpbmcgc2Vjb25kIGZpbGUgc3lzdGVtLiIpOwotICAgICAgICAgICAgbWFuYWdlci5hZGRN
b2NrRmlsZVN5c3RlbSgiL2Zvby9iYXIiLCB7Ii9iYXouanMiOiAiPGJheiBjb250ZW50PiJ9KTsK
LQotICAgICAgICAgICAgZHVtcFVJU291cmNlQ29kZXModWlTb3VyY2VDb2RlcywgdWlTb3VyY2VD
b2Rlc0R1bXBlZCk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHVpU291cmNlQ29kZUFkZGVkKHVp
U291cmNlQ29kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGVz
LnB1c2godWlTb3VyY2VDb2RlKQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlv
biB1aVNvdXJjZUNvZGVzRHVtcGVkKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVUlTb3VyY2VDb2RlIHVyaSB0byB1cmwgbWFwcGluZ3M6
Iik7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxl
bmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciB1cmwgPSB1aVNvdXJjZUNvZGVz
W2ldLnVybDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCF1cmwpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiAgICAiICsgdWlTb3VyY2VDb2Rlc1tpXS51cmkoKSArICIgLT4gIiArIHVpU291cmNl
Q29kZXNbaV0udXJsKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlVJU291cmNlQ29kZSB1cmwgdG8gdXJpIG1hcHBpbmdzOiIpOwot
ICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7
ICsraSkgewotICAgICAgICAgICAgICAgICAgICB2YXIgdXJsID0gdWlTb3VyY2VDb2Rlc1tpXS51
cmw7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghdXJsKQotICAgICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIHZhciB1cmkgPSBJbnNwZWN0b3JUZXN0
LnRlc3RXb3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJMKHVybCkudXJpKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgIiArIHVybCArICIgLT4gIiAr
IHVyaSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGVzQ291bnQgPSBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpLmxl
bmd0aDsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVtb3Zpbmcg
c2Vjb25kIGZpbGUgc3lzdGVtLiIpOwotICAgICAgICAgICAgICAgIG1hbmFnZXIucmVtb3ZlTW9j
a0ZpbGVTeXN0ZW0oIi92YXIvd3d3Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIiAgICBudW1iZXIgb2YgdWlTb3VyY2VDb2RlcyBpbiB3b3Jrc3BhY2UgYWZ0ZXIg
cmVtb3Zpbmcgc2Vjb25kIGZpbGUgc3lzdGVtOiAiICsgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3Nw
YWNlLnVpU291cmNlQ29kZXMoKS5sZW5ndGgpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJSZW1vdmluZyBmaXJzdCBmaWxlIHN5c3RlbS4iKTsKLSAgICAgICAgICAg
ICAgICBtYW5hZ2VyLnJlbW92ZU1vY2tGaWxlU3lzdGVtKCIvZm9vL2JhciIpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgbnVtYmVyIG9mIHVpU291cmNlQ29k
ZXMgaW4gd29ya3NwYWNlIGFmdGVyIHJlbW92aW5nIGZpcnN0IGZpbGUgc3lzdGVtOiAiICsgSW5z
cGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLnVpU291cmNlQ29kZXMoKS5sZW5ndGgpOwotICAgICAg
ICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICBdKTsKLX07
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3Rz
IGZpbGUgc3lzdGVtIHByb2plY3QuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0
ZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0t
c2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjZWMxZTllLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLUNoZWNrIHRvIHNlZSB0aGF0IEZpbHRlcmVk
SXRlbVNlbGVjdGlvbkRpYWxvZyB1c2VzIHByb3BlciByZWdleCB0byBmaWx0ZXIgcmVzdWx0cy4K
LQotCi1FbXB0eSBxdWVyeSBtYXRjaGVzIGV2ZXJ5dGhpbmcKLVF1ZXJ5OiIiCi1JbnB1dDpbImEi
LCJiYyJdCi1PdXRwdXQ6WyJhIiwiYmMiXQotCi1DYXNlIHNlbnNpdGl2ZSBtYXRjaGluZwotUXVl
cnk6ImFCIgotSW5wdXQ6WyJhYmMiLCJhY0IiXQotT3V0cHV0OlsiYWNCIiwiYWJjIl0KLQotQ2Fz
ZSBpbnNlbnNpdGl2ZSBtYXRjaGluZwotUXVlcnk6ImFiIgotSW5wdXQ6WyJhYmMiLCJiYWMiLCJh
X0IiXQotT3V0cHV0OlsiYV9CIiwiYWJjIl0KLQotRHVwbGljYXRlIHN5bWJvbHMgaW4gcXVlcnkK
LVF1ZXJ5OiJhYWIiCi1JbnB1dDpbImFiYWIiLCJhYmFhIiwiY2FhYiIsImJhYWMiLCJmb29hYWIi
XQotT3V0cHV0OlsiYWJhYiIsImNhYWIiLCJmb29hYWIiXQotCi1EYW5nZXJvdXMgaW5wdXQgZXNj
YXBpbmcKLVF1ZXJ5OiJeW117fSgpXFwuJCorP3wiCi1JbnB1dDpbIl5bXXt9KClcXC4kKis/fCIs
IjAxMjM0NTY3ODlhYmNkZWYiXQotT3V0cHV0OlsiXltde30oKVxcLiQqKz98Il0KLQotQ2FtZWwg
Y2FzZSBtYXRjaGluZwotUXVlcnk6ImZCYUIiCi1JbnB1dDpbImZvb0JhckJheiIsIkZvb0JhckJh
eiIsIkZvb19CYXJfQmF6IiwiZm9vX2Jhcl9iYXoiLCJmb29iYXJiYXoiLCJmb29iYXJCYXoiLCJh
Zm9vQmFyQmF6IiwiYUZvb0JhckJheiIsImEgZm9vQmFyQmF6IiwiZm9vQm9yQmF6IiwiZm9vQm9y
Q2F6Il0KLU91dHB1dDpbImZvb0JhckJheiIsIkZvb0JhckJheiIsIkZvb19CYXJfQmF6IiwiYSBm
b29CYXJCYXoiLCJhRm9vQmFyQmF6IiwiYWZvb0JhckJheiIsImZvb19iYXJfYmF6IiwiZm9vYmFy
QmF6IiwiZm9vYmFyYmF6Il0KLQotVW5kZXJzY29yZSBtYXRjaGluZwotUXVlcnk6ImZPX2JhX2Ii
Ci1JbnB1dDpbImZvT0JhckJheiIsIkZvT0JhckJheiIsIkZvT19CYXJfQmF6IiwiZm9PX2Jhcl9i
YXoiLCJmb09iYXJiYXoiLCJmb09iYXJCYXoiLCJhZm9PQmFyQmF6IiwiYUZvT0JhckJheiIsImEg
Zm9PQmFyQmF6IiwiZm9PQm9yQmF6IiwiZm9PQm9yQ2F6Il0KLU91dHB1dDpbImZvT19iYXJfYmF6
IiwiRm9PX0Jhcl9CYXoiXQotCi1DYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nCi1RdWVyeToiZmIi
Ci1JbnB1dDpbImZvb19iYXIiLCJGQiIsImZvb2JhciIsImZCYXIiXQotT3V0cHV0OlsiRkIiLCJm
b29fYmFyIiwiZkJhciIsImZvb2JhciJdCi0KLUNhc2UgaW5zZW5zaXRpdmUgdW5kZXJzY29yZSBt
YXRjaGluZwotUXVlcnk6ImZfYiIKLUlucHV0OlsiZm9vX2JhciIsIkZPT19CQVIiLCJGb29fQmFy
IiwiZk9vX2JBciJdCi1PdXRwdXQ6WyJGb29fQmFyIiwiZk9vX2JBciIsImZvb19iYXIiLCJGT09f
QkFSIl0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0t
c2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9m
aWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDYxOTNiZWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmcuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgi
c2NyaXB0cyIpOwotCi0gICAgdmFyIG92ZXJyaWRlbklucHV0ID0gW107Ci0gICAgdmFyIG92ZXJy
aWRlblF1ZXJ5ID0gIiI7Ci0gICAgdmFyIGRlbGVnYXRlID0gewotICAgICAgICBpdGVtVGl0bGVB
dDogZnVuY3Rpb24oaXRlbUluZGV4KSB7IH0sCi0gICAgICAgIGl0ZW1TdWZmaXhBdDogZnVuY3Rp
b24oaXRlbUluZGV4KSB7IH0sCi0gICAgICAgIGl0ZW1TdWJ0aXRsZUF0OiBmdW5jdGlvbihpdGVt
SW5kZXgpIHsgfSwKLSAgICAgICAgaXRlbUtleUF0OiBmdW5jdGlvbihpdGVtSW5kZXgpIHsgcmV0
dXJuIG92ZXJyaWRlbklucHV0W2l0ZW1JbmRleF07IH0sCi0gICAgICAgIGl0ZW1zQ291bnQ6IGZ1
bmN0aW9uKCkgeyByZXR1cm4gb3ZlcnJpZGVuSW5wdXQubGVuZ3RoOyB9LAotICAgICAgICByZXF1
ZXN0SXRlbXM6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7IGNhbGxiYWNrKCk7IH0sCi0gICAgICAgIHNl
bGVjdEl0ZW06IGZ1bmN0aW9uKGl0ZW1JbmRleCwgcHJvbXB0VmFsdWUpIHsgfSwKLSAgICAgICAg
cmV3cml0ZVF1ZXJ5OiBmdW5jdGlvbihxdWVyeSkgeyByZXR1cm4gb3ZlcnJpZGVuUXVlcnk7IH0s
Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIGNoZWNrUXVlcnkodGl0bGUsIHF1ZXJ5LCBpbnB1dCkK
LSAgICB7Ci0gICAgICAgIG92ZXJyaWRlbklucHV0ID0gaW5wdXQ7Ci0gICAgICAgIG92ZXJyaWRl
blF1ZXJ5ID0gcXVlcnk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxuIiAr
IHRpdGxlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlF1ZXJ5OiIgKyBKU09O
LnN0cmluZ2lmeShxdWVyeSkpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiSW5w
dXQ6IiArIEpTT04uc3RyaW5naWZ5KGlucHV0KSk7Ci0KLSAgICAgICAgdmFyIGZpbHRlcmVkU2Vs
ZWN0aW9uRGlhbG9nID0gbmV3IFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFs
b2coZGVsZWdhdGUpOwotICAgICAgICBmaWx0ZXJlZFNlbGVjdGlvbkRpYWxvZy5fdXBkYXRlQWZ0
ZXJJdGVtc0xvYWRlZCgpOwotICAgICAgICB2YXIgaXRlbXMgPSBmaWx0ZXJlZFNlbGVjdGlvbkRp
YWxvZy5fZmlsdGVyZWRJdGVtczsKLSAgICAgICAgdmFyIG91dHB1dCA9IFtdOwotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgb3V0cHV0
LnB1c2goZGVsZWdhdGUuaXRlbUtleUF0KGl0ZW1zW2ldKSk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJPdXRwdXQ6IiArIEpTT04uc3RyaW5naWZ5KG91dHB1dCkpOwotICAgIH0K
LQotICAgIGNoZWNrUXVlcnkoIkVtcHR5IHF1ZXJ5IG1hdGNoZXMgZXZlcnl0aGluZyIsICIiLCBb
ImEiLCAiYmMiXSk7Ci0gICAgY2hlY2tRdWVyeSgiQ2FzZSBzZW5zaXRpdmUgbWF0Y2hpbmciLCAi
YUIiLCBbImFiYyIsICJhY0IiXSk7Ci0gICAgY2hlY2tRdWVyeSgiQ2FzZSBpbnNlbnNpdGl2ZSBt
YXRjaGluZyIsICJhYiIsIFsiYWJjIiwgImJhYyIsICJhX0IiXSk7Ci0gICAgY2hlY2tRdWVyeSgi
RHVwbGljYXRlIHN5bWJvbHMgaW4gcXVlcnkiLCAiYWFiIiwgWyJhYmFiIiwgImFiYWEiLCAiY2Fh
YiIsICJiYWFjIiwgImZvb2FhYiJdKTsKLSAgICBjaGVja1F1ZXJ5KCJEYW5nZXJvdXMgaW5wdXQg
ZXNjYXBpbmciLCAiXltde30oKVxcLiQqKz98IiwgWyJeW117fSgpXFwuJCorP3wiLCAiMDEyMzQ1
Njc4OWFiY2RlZiJdKTsKLSAgICBjaGVja1F1ZXJ5KCJDYW1lbCBjYXNlIG1hdGNoaW5nIiwgImZC
YUIiLCBbImZvb0JhckJheiIsICJGb29CYXJCYXoiLCAiRm9vX0Jhcl9CYXoiLCAiZm9vX2Jhcl9i
YXoiLCAiZm9vYmFyYmF6IiwgImZvb2JhckJheiIsICJhZm9vQmFyQmF6IiwgImFGb29CYXJCYXoi
LCAiYSBmb29CYXJCYXoiLCAiZm9vQm9yQmF6IiwgImZvb0JvckNheiJdKTsKLSAgICBjaGVja1F1
ZXJ5KCJVbmRlcnNjb3JlIG1hdGNoaW5nIiwgImZPX2JhX2IiLCBbImZvT0JhckJheiIsICJGb09C
YXJCYXoiLCAiRm9PX0Jhcl9CYXoiLCAiZm9PX2Jhcl9iYXoiLCAiZm9PYmFyYmF6IiwgImZvT2Jh
ckJheiIsICJhZm9PQmFyQmF6IiwgImFGb09CYXJCYXoiLCAiYSBmb09CYXJCYXoiLCAiZm9PQm9y
QmF6IiwgImZvT0JvckNheiJdKTsKLSAgICBjaGVja1F1ZXJ5KCJDYXNlIGluc2Vuc2l0aXZlIG1h
dGNoaW5nIiwgImZiIiwgWyJmb29fYmFyIiwgIkZCIiwgImZvb2JhciIsICJmQmFyIl0pOwotICAg
IGNoZWNrUXVlcnkoIkNhc2UgaW5zZW5zaXRpdmUgdW5kZXJzY29yZSBtYXRjaGluZyIsICJmX2Ii
LCBbImZvb19iYXIiLCAiRk9PX0JBUiIsICJGb29fQmFyIiwgImZPb19iQXIiXSk7Ci0gICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPiAKLUNoZWNrIHRvIHNlZSB0aGF0IEZpbHRlcmVk
SXRlbVNlbGVjdGlvbkRpYWxvZyB1c2VzIHByb3BlciByZWdleCB0byBmaWx0ZXIgcmVzdWx0cy4K
LTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2luc3BlY3RlZC1vYmplY3RzLW5vdC1vdmVycmlkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2luc3BlY3RlZC1vYmplY3RzLW5vdC1vdmVycmlkZW4tZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWNlZGNjLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9pbnNwZWN0ZWQtb2JqZWN0cy1ub3Qtb3ZlcnJpZGVuLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRlc3RzIHRoYXQgb3Bl
bmluZyBpbnNwZWN0b3IgZnJvbnQtZW5kIGRvZXNuJ3QgY2hhbmdlIG1ldGhvZHMgZGVmaW5lZCBi
eSB0aGUgaW5zcGVjdGVkIGFwcGxpY2F0aW9uLgotCi1teUltcGwoKSA9PiBteSB2YWx1ZQotT2Jq
ZWN0LnR5cGUgPT09IG15SW1wbCA9PiB0cnVlCi1PYmplY3QuaGFzUHJvcGVydGllcyA9PT0gbXlJ
bXBsID0+IHRydWUKLU9iamVjdC5kZXNjcmliZSA9PT0gbXlJbXBsID0+IHRydWUKLU9iamVjdC5j
bGFzc05hbWUgPT09IG15SW1wbCA9PiB0cnVlCi1TdHJpbmcucHJvdG90eXBlLmVzY2FwZUNoYXJh
Y3RlcnMgPT09IG15SW1wbCA9PiB0cnVlCi1KU09OLnN0cmluZ2lmeSA9PT0gbXlJbXBsID0+IHRy
dWUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2luc3BlY3RlZC1vYmplY3Rz
LW5vdC1vdmVycmlkZW4uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9pbnNwZWN0ZWQtb2Jq
ZWN0cy1ub3Qtb3ZlcnJpZGVuLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2
NmQ3NmEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2luc3BlY3RlZC1vYmpl
Y3RzLW5vdC1vdmVycmlkZW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLTwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8v
RU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBteUltcGwoKSB7Ci0gIHJldHVybiAi
bXkgdmFsdWUiOwotfQotCi0vLyBQcm92aWRlIHNvbWUgY3VzdG9tIG1ldGhvZHMuCi1PYmplY3Qu
dHlwZSA9IG15SW1wbDsKLU9iamVjdC5oYXNQcm9wZXJ0aWVzID0gbXlJbXBsOwotT2JqZWN0LmRl
c2NyaWJlID0gbXlJbXBsOwotT2JqZWN0LmNsYXNzTmFtZSA9IG15SW1wbDsKLVN0cmluZy5wcm90
b3R5cGUuZXNjYXBlQ2hhcmFjdGVycyA9IG15SW1wbDsKLUpTT04uc3RyaW5naWZ5ID0gbXlJbXBs
OwotCi1mdW5jdGlvbiBvdXRwdXQodGV4dCkKLXsKLSAgICB2YXIgb3V0cHV0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwotICAgIG91dHB1dC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Ci0gICAgb3V0cHV0LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImJyIikpOwotfQotCi1mdW5jdGlvbiBkdW1wVmFsdWVzKCkKLXsKLSAg
ICAvLyBDaGVjayB0aGF0IHRoZSBtZXRob2RzIGhhdmVuJ3QgY2hhbmdlZC4KLSAgICBvdXRwdXQo
Im15SW1wbCgpID0+ICIgKyBteUltcGwoKSk7Ci0gICAgb3V0cHV0KCJPYmplY3QudHlwZSA9PT0g
bXlJbXBsID0+ICIgKyAoT2JqZWN0LnR5cGUgPT09IG15SW1wbCkpOwotICAgIG91dHB1dCgiT2Jq
ZWN0Lmhhc1Byb3BlcnRpZXMgPT09IG15SW1wbCA9PiAiICsgKE9iamVjdC5oYXNQcm9wZXJ0aWVz
ID09PSBteUltcGwpKTsKLSAgICBvdXRwdXQoIk9iamVjdC5kZXNjcmliZSA9PT0gbXlJbXBsID0+
ICIgKyAoT2JqZWN0LmRlc2NyaWJlID09PSBteUltcGwpKTsKLSAgICBvdXRwdXQoIk9iamVjdC5j
bGFzc05hbWUgPT09IG15SW1wbCA9PiAiICsgKE9iamVjdC5jbGFzc05hbWUgPT09IG15SW1wbCkp
OwotICAgIG91dHB1dCgiU3RyaW5nLnByb3RvdHlwZS5lc2NhcGVDaGFyYWN0ZXJzID09PSBteUlt
cGwgPT4gIiArIChTdHJpbmcucHJvdG90eXBlLmVzY2FwZUNoYXJhY3RlcnMgPT09IG15SW1wbCkp
OwotICAgIG91dHB1dCgiSlNPTi5zdHJpbmdpZnkgPT09IG15SW1wbCA9PiAiICsgKEpTT04uc3Ry
aW5naWZ5ID09PSBteUltcGwpKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rp
b24gY2FsbGJhY2soKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZHVtcFZhbHVlcygp
IiwgY2FsbGJhY2spOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBvcGVuaW5nIGluc3BlY3RvciBmcm9udC1lbmQgZG9l
c24ndCBjaGFuZ2UgbWV0aG9kcyBkZWZpbmVkIGJ5IHRoZSBpbnNwZWN0ZWQgYXBwbGljYXRpb24u
Ci08L3A+Ci0KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItYmFja2VuZC1jb21tYW5k
cy1nZW5lcmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItYmFja2VuZC1jb21tYW5kcy1nZW5lcmF0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOWY2ZThiMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLWJhY2tlbmQtY29tbWFuZHMtZ2VuZXJhdGlvbi1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLVRlc3RzIGNvcnJlY3RuZXNzIG9mIGNvZGUg
Z2VuZXJhdGVkIGJ5IEluc3BlY3RvckJhY2tlbmQuCi0KLUluc3BlY3RvckJhY2tlbmQucmVnaXN0
ZXJFbnVtKCJQYWdlLlJlc291cmNlVHlwZSIsIHtEb2N1bWVudDogIkRvY3VtZW50IiwgWEhSOiAi
WEhSIiwgQ29uc29sZUFQSTogImNvbnNvbGUtYXBpIiwgT3RoZXI6ICJvdGhlciJ9KTsKLUluc3Bl
Y3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJQYWdlLmFkZFNjcmlwdFRvRXZhbHVhdGVPbkxv
YWQiLCBbeyJuYW1lIjogInNjcmlwdFNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25h
bCI6IGZhbHNlfV0sIFsiaWRlbnRpZmllciJdKTsKLUluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJF
dmVudCgiUGFnZS5kb21Db250ZW50RXZlbnRGaXJlZCIsIFsidGltZXN0YW1wIl0pOwotSW5zcGVj
dG9yQmFja2VuZC5yZWdpc3RlclBhZ2VEaXNwYXRjaGVyID0gSW5zcGVjdG9yQmFja2VuZC5yZWdp
c3RlckRvbWFpbkRpc3BhdGNoZXIuYmluZChJbnNwZWN0b3JCYWNrZW5kLCAiUGFnZSIpOwotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLWJhY2tlbmQtY29tbWFu
ZHMtZ2VuZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci1iYWNr
ZW5kLWNvbW1hbmRzLWdlbmVyYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjZiMDY2Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LWJhY2tlbmQtY29tbWFuZHMtZ2VuZXJhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAg
KzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJh
bnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAg
ICB2YXIgaW5zcGVjdG9ySnNvbiA9IHsiZG9tYWlucyI6IFt7Ci0gICAgICAgICJkb21haW4iOiAi
UGFnZSIsCi0gICAgICAgICJ0eXBlcyI6IFt7Ci0gICAgICAgICAgICAiaWQiOiAiUmVzb3VyY2VU
eXBlIiwKLSAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICAgICAiZW51bSI6
IFsiRG9jdW1lbnQiLCAiWEhSIiwgImNvbnNvbGUtYXBpIiwgIm90aGVyIl0KLSAgICAgICAgfV0s
Ci0gICAgICAgICJjb21tYW5kcyI6IFt7Ci0gICAgICAgICAgICAibmFtZSI6ICJhZGRTY3JpcHRU
b0V2YWx1YXRlT25Mb2FkIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAg
ICAgICAgIHsibmFtZSI6ICJzY3JpcHRTb3VyY2UiLCAidHlwZSI6ICJzdHJpbmcifQotICAgICAg
ICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgIHsibmFt
ZSI6ICJpZGVudGlmaWVyIiwgInR5cGUiOiAic3RyaW5nIn0KLSAgICAgICAgICAgIF0KLSAgICAg
ICAgfV0sCi0gICAgICAgICJldmVudHMiOiBbewotICAgICAgICAgICAgIm5hbWUiOiAiZG9tQ29u
dGVudEV2ZW50RmlyZWQiLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAg
ICAgICAgeyJuYW1lIjogInRpbWVzdGFtcCIsICJ0eXBlIjogIm51bWJlciJ9Ci0gICAgICAgICAg
ICBdCi0gICAgICAgIH1dCi0gICAgfV19OwotICAgIHZhciBjb21tYW5kcyA9IEluc3BlY3RvckJh
Y2tlbmRDbGFzcy5fZ2VuZXJhdGVDb21tYW5kcyhpbnNwZWN0b3JKc29uKTsKLSAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdChjb21tYW5kcyk7Ci0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
PHA+VGVzdHMgY29ycmVjdG5lc3Mgb2YgY29kZSBnZW5lcmF0ZWQgYnkgSW5zcGVjdG9yQmFja2Vu
ZC48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvbG9hZC1yZXNvdXJjZS1zeW5jaHJvbm91c2x5LXV0ZjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2xvYWQtcmVzb3VyY2Utc3luY2hyb25vdXNseS11dGY4LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU3Y2FjZC4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbG9hZC1yZXNvdXJjZS1zeW5jaHJvbm91c2x5LXV0Zjgt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UZXN0cyB0aGF0IElu
c3BlY3RvckZyb250ZW5kSG9zdC5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KCkgY29ycmVjdGx5
IGxvYWRzIG5vbi1BU0NJSSByZXNvdXJjZXMuCi0KLSdBU0NJSSAtIFRlc3QnICgxMikKLSdVVEY4
IC0g0KLQtdGB0YInICgxMSkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2xv
YWQtcmVzb3VyY2Utc3luY2hyb25vdXNseS11dGY4Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvbG9hZC1yZXNvdXJjZS1zeW5jaHJvbm91c2x5LXV0ZjguaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTk3MTY3OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvbG9hZC1yZXNvdXJjZS1zeW5jaHJvbm91c2x5LXV0ZjguaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDE4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIHZhciBhc2NpaVRleHQgPSBJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
bG9hZFJlc291cmNlU3luY2hyb25vdXNseSgiZGF0YTp0ZXh0L3BsYWluOyxBU0NJSSAtIFRlc3Qi
KTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiJyIgKyBhc2NpaVRleHQgKyAiJyAoIiAr
IGFzY2lpVGV4dC5sZW5ndGggKyAiKSIpOwotICAgIHZhciB1dGY4VGV4dCA9IEluc3BlY3RvckZy
b250ZW5kSG9zdC5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KCJkYXRhOnRleHQvcGxhaW47LCIg
KyBlbmNvZGVVUklDb21wb25lbnQoIlVURjggLSBcdTA0MjJcdTA0MzVcdTA0NDFcdTA0NDIiKSk7
Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiciICsgdXRmOFRleHQgKyAiJyAoIiArIHV0
ZjhUZXh0Lmxlbmd0aCArICIpIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVz
dHMgdGhhdCBJbnNwZWN0b3JGcm9udGVuZEhvc3QubG9hZFJlc291cmNlU3luY2hyb25vdXNseSgp
IGNvcnJlY3RseSBsb2FkcyBub24tQVNDSUkgcmVzb3VyY2VzLjwvcD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tYXAtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL21hcC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGRmNTljZmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L21hcC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotVGVzdHMg
TWFwIGNsYXNzLgotCi1CdWcgNzQwODQKLUR1bXBpbmcgbWFwczoKLSAgRmlyc3QgbWFwOgotICAg
IGtleTEgOiB1bmRlZmluZWQKLSAgICBrZXkyIDogdW5kZWZpbmVkCi0gICAgc2l6ZSA6IDAKLSAg
U2Vjb25kIG1hcDoKLSAgICBrZXkxIDogdW5kZWZpbmVkCi0gICAga2V5MiA6IHVuZGVmaW5lZAot
ICAgIHNpemUgOiAwCi0KLUR1bXBpbmcgbWFwczoKLSAgRmlyc3QgbWFwOgotICAgIGtleTEgOiAy
Ci0gICAga2V5MiA6IHVuZGVmaW5lZAotICAgIHNpemUgOiAxCi0gIFNlY29uZCBtYXA6Ci0gICAg
a2V5MSA6IHVuZGVmaW5lZAotICAgIGtleTIgOiB1bmRlZmluZWQKLSAgICBzaXplIDogMAotCi1E
dW1waW5nIG1hcHM6Ci0gIEZpcnN0IG1hcDoKLSAgICBrZXkxIDogMQotICAgIGtleTIgOiB1bmRl
ZmluZWQKLSAgICBzaXplIDogMQotICBTZWNvbmQgbWFwOgotICAgIGtleTEgOiB1bmRlZmluZWQK
LSAgICBrZXkyIDogdW5kZWZpbmVkCi0gICAgc2l6ZSA6IDAKLQotRHVtcGluZyBtYXBzOgotICBG
aXJzdCBtYXA6Ci0gICAga2V5MSA6IDEKLSAgICBrZXkyIDogdW5kZWZpbmVkCi0gICAgc2l6ZSA6
IDEKLSAgU2Vjb25kIG1hcDoKLSAgICBrZXkxIDogMQotICAgIGtleTIgOiB1bmRlZmluZWQKLSAg
ICBzaXplIDogMQotCi1EdW1waW5nIG1hcHM6Ci0gIEZpcnN0IG1hcDoKLSAgICBrZXkxIDogMQot
ICAgIGtleTIgOiB1bmRlZmluZWQKLSAgICBzaXplIDogMQotICBTZWNvbmQgbWFwOgotICAgIGtl
eTEgOiAyCi0gICAga2V5MiA6IHVuZGVmaW5lZAotICAgIHNpemUgOiAxCi0KLUR1bXBpbmcgbWFw
czoKLSAgRmlyc3QgbWFwOgotICAgIGtleTEgOiAxCi0gICAga2V5MiA6IDIKLSAgICBzaXplIDog
MgotICBTZWNvbmQgbWFwOgotICAgIGtleTEgOiAyCi0gICAga2V5MiA6IHVuZGVmaW5lZAotICAg
IHNpemUgOiAxCi0KLUR1bXBpbmcgbWFwczoKLSAgRmlyc3QgbWFwOgotICAgIGtleTEgOiAxCi0g
ICAga2V5MiA6IDIKLSAgICBzaXplIDogMgotICBTZWNvbmQgbWFwOgotICAgIGtleTEgOiAyCi0g
ICAga2V5MiA6IDEKLSAgICBzaXplIDogMgotCi1EdW1waW5nIG1hcHM6Ci0gIEZpcnN0IG1hcDoK
LSAgICBrZXkxIDogMQotICAgIGtleTIgOiB1bmRlZmluZWQKLSAgICBzaXplIDogMQotICBTZWNv
bmQgbWFwOgotICAgIGtleTEgOiAyCi0gICAga2V5MiA6IDEKLSAgICBzaXplIDogMgotCi1EdW1w
aW5nIG1hcHM6Ci0gIEZpcnN0IG1hcDoKLSAgICBrZXkxIDogMQotICAgIGtleTIgOiB1bmRlZmlu
ZWQKLSAgICBzaXplIDogMQotICBTZWNvbmQgbWFwOgotICAgIGtleTEgOiAyCi0gICAga2V5MiA6
IHVuZGVmaW5lZAotICAgIHNpemUgOiAxCi0KLUR1bXBpbmcgbWFwczoKLSAgRmlyc3QgbWFwOgot
ICAgIGtleTEgOiAxCi0gICAga2V5MiA6IHVuZGVmaW5lZAotICAgIHNpemUgOiAxCi0gIFNlY29u
ZCBtYXA6Ci0gICAga2V5MSA6IDIKLSAgICBrZXkyIDogdW5kZWZpbmVkCi0gICAgc2l6ZSA6IDEK
LQotRHVtcGluZyBtYXBzOgotICBGaXJzdCBtYXA6Ci0gICAga2V5MSA6IHVuZGVmaW5lZAotICAg
IGtleTIgOiB1bmRlZmluZWQKLSAgICBzaXplIDogMAotICBTZWNvbmQgbWFwOgotICAgIGtleTEg
OiAyCi0gICAga2V5MiA6IHVuZGVmaW5lZAotICAgIHNpemUgOiAxCi0KLUR1bXBpbmcgbWFwczoK
LSAgRmlyc3QgbWFwOgotICAgIGtleTEgOiB1bmRlZmluZWQKLSAgICBrZXkyIDogdW5kZWZpbmVk
Ci0gICAgc2l6ZSA6IDAKLSAgU2Vjb25kIG1hcDoKLSAgICBrZXkxIDogdW5kZWZpbmVkCi0gICAg
a2V5MiA6IHVuZGVmaW5lZAotICAgIHNpemUgOiAwCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL21hcC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21hcC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NmVjZjAwLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9tYXAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBmdW5jdGlvbiBkdW1wTWFwcyhtYXAx
LCBtYXAyLCBrZXkxLCBrZXkyKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkR1bXBpbmcgbWFwczoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAg
Rmlyc3QgbWFwOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIGtleTEg
OiAiICsgbWFwMS5nZXQoa2V5MSkpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
ICAgIGtleTIgOiAiICsgbWFwMS5nZXQoa2V5MikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiICAgIHNpemUgOiAiICsgbWFwMS5zaXplKCkpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiICBTZWNvbmQgbWFwOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiICAgIGtleTEgOiAiICsgbWFwMi5nZXQoa2V5MSkpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiICAgIGtleTIgOiAiICsgbWFwMi5nZXQoa2V5MikpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHNpemUgOiAiICsgbWFwMi5zaXplKCkpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgfQotCi0gICAgdmFyIGtl
eTEgPSB7fTsKLSAgICB2YXIga2V5MiA9IHt9OwotICAgIHZhciB2YWx1ZTEgPSAxOwotICAgIHZh
ciB2YWx1ZTIgPSAyOwotICAgIHZhciBtYXAxID0gbmV3IE1hcCgpOwotICAgIHZhciBtYXAyID0g
bmV3IE1hcCgpOwotCi0gICAgZHVtcE1hcHMobWFwMSwgbWFwMiwga2V5MSwga2V5Mik7Ci0KLSAg
ICBtYXAxLnB1dChrZXkxLCB2YWx1ZTIpOwotICAgIGR1bXBNYXBzKG1hcDEsIG1hcDIsIGtleTEs
IGtleTIpOwotCi0gICAgbWFwMS5wdXQoa2V5MSwgdmFsdWUxKTsKLSAgICBkdW1wTWFwcyhtYXAx
LCBtYXAyLCBrZXkxLCBrZXkyKTsKLQotICAgIG1hcDIucHV0KGtleTEsIHZhbHVlMSk7Ci0gICAg
ZHVtcE1hcHMobWFwMSwgbWFwMiwga2V5MSwga2V5Mik7Ci0KLSAgICBtYXAyLnB1dChrZXkxLCB2
YWx1ZTIpOwotICAgIGR1bXBNYXBzKG1hcDEsIG1hcDIsIGtleTEsIGtleTIpOwotCi0gICAgbWFw
MS5wdXQoa2V5MiwgdmFsdWUyKTsKLSAgICBkdW1wTWFwcyhtYXAxLCBtYXAyLCBrZXkxLCBrZXky
KTsKLQotICAgIG1hcDIucHV0KGtleTIsIHZhbHVlMSk7Ci0gICAgZHVtcE1hcHMobWFwMSwgbWFw
Miwga2V5MSwga2V5Mik7Ci0KLSAgICBtYXAxLnJlbW92ZShrZXkyKTsKLSAgICBkdW1wTWFwcyht
YXAxLCBtYXAyLCBrZXkxLCBrZXkyKTsKLQotICAgIG1hcDIucmVtb3ZlKGtleTIpOwotICAgIGR1
bXBNYXBzKG1hcDEsIG1hcDIsIGtleTEsIGtleTIpOwotCi0gICAgbWFwMi5yZW1vdmUoa2V5Mik7
Ci0gICAgZHVtcE1hcHMobWFwMSwgbWFwMiwga2V5MSwga2V5Mik7Ci0KLSAgICBtYXAxLnJlbW92
ZShrZXkxKTsKLSAgICBkdW1wTWFwcyhtYXAxLCBtYXAyLCBrZXkxLCBrZXkyKTsKLQotICAgIG1h
cDIucmVtb3ZlKGtleTEpOwotICAgIGR1bXBNYXBzKG1hcDEsIG1hcDIsIGtleTEsIGtleTIpOwot
Ci0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBNYXAgY2xhc3MuPC9wPgot
PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDg0Ij5C
dWcgNzQwODQ8L2E+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvbmV0d29yay1zdGF0dXMtbm9uLWh0dHAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL25ldHdvcmstc3RhdHVzLW5vbi1odHRwLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDY1MzhiYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvbmV0d29yay1zdGF0dXMtbm9uLWh0dHAtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNiArMCwwIEBACi17Ci0gICAgMCA6ICJkYXRhOmFwcGxpY2F0aW9uL2phdmFz
Y3JpcHQ6IFN1Y2Nlc3MiCi0gICAgMSA6ICJuZXR3b3JrLXRlc3QuanM6IFN1Y2Nlc3MiCi0gICAg
MiA6ICJub24tZXhpc3RlbnQtZmlsZS5qczogKGZhaWxlZCkiCi19Ci0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXN0YXR1cy1ub24taHR0cC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL25ldHdvcmstc3RhdHVzLW5vbi1odHRwLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQ0YThlMzEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL25ldHdvcmstc3RhdHVzLW5vbi1odHRwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2
NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0
ZXN0KCkgewotICAgIHZhciByZXF1ZXN0c1RvV2F0Y2ggPSAvXC9uZXR3b3JrLXRlc3RcLmpzJHxc
L25vbi1leGlzdGVudC1maWxlLmpzJHxeZGF0YTphcHBsaWNhdGlvblwvamF2YXNjcmlwdCx8LzsK
LSAgICB2YXIgc2VlblJlcXVlc3RzID0gMDsKLQotICAgIGZ1bmN0aW9uIGR1bXBSZXF1ZXN0cygp
Ci0gICAgewotICAgICAgICB2YXIgbG9nVmlldyA9IFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29y
ay5fbmV0d29ya0xvZ1ZpZXc7Ci0gICAgICAgIGxvZ1ZpZXcucmVmcmVzaCgpOwotICAgICAgICB2
YXIgZGF0YUdyaWQgPSBsb2dWaWV3LmVsZW1lbnQucXVlcnlTZWxlY3RvcigidGFibGUuZGF0YSIp
OwotICAgICAgICB2YXIgdXJscyA9IGRvY3VtZW50LmV2YWx1YXRlKCIvL3Rib2R5L3RyL3RkW3Bv
c2l0aW9uKCk9MV0vZGl2L0B0aXRsZSIsIGRhdGFHcmlkLCBudWxsLCBYUGF0aFJlc3VsdC5PUkRF
UkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7Ci0gICAgICAgIHZhciBvdXRwdXRTdHJpbmdz
ID0gW107Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1cmxzLnNuYXBzaG90TGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgICAgIHZhciB1cmwgPSB1cmxzLnNuYXBzaG90SXRlbShpKS52YWx1
ZTsKLSAgICAgICAgICAgIGlmIChyZXF1ZXN0c1RvV2F0Y2gudGVzdCh1cmwpKSB7Ci0gICAgICAg
ICAgICAgICAgdmFyIHVybEZyYWdtZW50ID0gL15kYXRhOi8udGVzdCh1cmwpID8gdXJsLnJlcGxh
Y2UoLywuKiQvLCAiIikgOiB1cmwucmVwbGFjZSgvLipcLy8sICIiKTsKLSAgICAgICAgICAgICAg
ICB2YXIgc3RhdHVzID0gZG9jdW1lbnQuZXZhbHVhdGUoImFuY2VzdG9yOjp0ci90ZFtwb3NpdGlv
bigpPTNdIiwgdXJscy5zbmFwc2hvdEl0ZW0oaSksIG51bGwsIFhQYXRoUmVzdWx0LlNUUklOR19U
WVBFLCBudWxsKTsKLSAgICAgICAgICAgICAgICB2YXIgb3V0cHV0U3RhdHVzID0gc3RhdHVzLnN0
cmluZ1ZhbHVlOwotICAgICAgICAgICAgICAgIC8vIFRydW5jYXRlIHRoZSBzdGF0dXMgc3RyaW5n
IG9uIGZhaWx1cmUsIHNpbmNlIHRoZSBkZXNjcmlwdGlvbiBmb2xsb3dpbmcgIihmYWlsZWQpIiBp
cyBwbGF0Zm9ybS1kZXBlbmRlbnQuCi0gICAgICAgICAgICAgICAgaWYgKG91dHB1dFN0YXR1cy5z
dGFydHNXaXRoKCIoZmFpbGVkKSIpKQotICAgICAgICAgICAgICAgICAgICBvdXRwdXRTdGF0dXMg
PSAiKGZhaWxlZCkiOwotICAgICAgICAgICAgICAgIG91dHB1dFN0cmluZ3MucHVzaCh1cmxGcmFn
bWVudCArICI6ICIgKyBvdXRwdXRTdGF0dXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIG91dHB1dFN0cmluZ3Muc29ydCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZE9i
amVjdChvdXRwdXRTdHJpbmdzKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvblJlcXVlc3RGaW5pc2hlZChyZXF1ZXN0KQotICAg
IHsKLSAgICAgICAgaWYgKCFyZXF1ZXN0c1RvV2F0Y2gudGVzdChyZXF1ZXN0LnVybCkpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmICgrK3NlZW5SZXF1ZXN0cyA9PT0gMykKLSAgICAg
ICAgICAgIGR1bXBSZXF1ZXN0cygpOwotICAgIH0KLQotICAgIFdlYkluc3BlY3Rvci5uZXR3b3Jr
TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVu
dFR5cGVzLlJlcXVlc3RGaW5pc2hlZCwgb25SZXF1ZXN0RmluaXNoZWQpOwotICAgIFdlYkluc3Bl
Y3Rvci5zaG93UGFuZWwoIm5ldHdvcmsiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJsb2FkUmVzb3VyY2VzKCkiKTsKLX0KLQotZnVuY3Rpb24gYWRkU2NyaXB0RWxlbWVudChz
cmMpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQi
KTsKLSAgICBlbGVtZW50LnNyYyA9IHNyYzsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGVsZW1lbnQpOwotfQotCi1mdW5jdGlvbiBsb2FkUmVzb3VyY2VzKCkKLXsKLSAgICBhZGRTY3Jp
cHRFbGVtZW50KCIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXRlc3QuanMiKTsKLSAg
ICBhZGRTY3JpcHRFbGVtZW50KCJub24tZXhpc3RlbnQtZmlsZS5qcyIpOwotICAgIGFkZFNjcmlw
dEVsZW1lbnQoImRhdGE6YXBwbGljYXRpb24vamF2YXNjcmlwdCx2YXIgeCA9IDA7Iik7Ci19Ci0K
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZh
cy1wcm9maWxlci10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZh
cy1wcm9maWxlci10ZXN0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YjJlYWVh
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMtcHJv
ZmlsZXItdGVzdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExMSArMCwwIEBACi12YXIgaW5pdGlh
bGl6ZV9DYW52YXNXZWJHTFByb2ZpbGVyVGVzdCA9IGZ1bmN0aW9uKCkgewotCi1JbnNwZWN0b3JU
ZXN0LmVuYWJsZUNhbnZhc0FnZW50ID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0gICAgdmFyIGRp
c3BhdGNoZXIgPSBJbnNwZWN0b3JCYWNrZW5kLl9kb21haW5EaXNwYXRjaGVyc1siQ2FudmFzIl07
Ci0gICAgaWYgKCFkaXNwYXRjaGVyKSB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0
ZXJDYW52YXNEaXNwYXRjaGVyKHsKLSAgICAgICAgICAgIGNvbnRleHRDcmVhdGVkOiBmdW5jdGlv
bigpIHt9LAotICAgICAgICAgICAgdHJhY2VMb2dzUmVtb3ZlZDogZnVuY3Rpb24oKSB7fQotICAg
ICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjYW52YXNBZ2VudEVuYWJsZWQoZXJyb3Ip
Ci0gICAgewotICAgICAgICBpZiAoIWVycm9yKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5z
YWZlV3JhcChjYWxsYmFjaykoKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiRkFJTEVEIHRvIGVuYWJsZSBDYW52YXNBZ2VudDogIiArIGVycm9y
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgdHJ5IHsKLSAgICAgICAgQ2FudmFzQWdlbnQuZW5hYmxlKGNhbnZhc0FnZW50
RW5hYmxlZCk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiRXhjZXB0aW9uIHdoaWxlIGVuYWJsaW5nIENhbnZhc0FnZW50OiAiICsgZSk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfTsKLQotSW5zcGVjdG9y
VGVzdC5kaXNhYmxlQ2FudmFzQWdlbnQgPSBmdW5jdGlvbihjYWxsYmFjaykKLXsKLSAgICBmdW5j
dGlvbiBjYW52YXNBZ2VudERpc2FibGVkKGVycm9yKQotICAgIHsKLSAgICAgICAgaWYgKCFlcnJv
cikKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spKCk7Ci0gICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxFRCB0
byBkaXNhYmxlIENhbnZhc0FnZW50OiAiICsgZXJyb3IpOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICB0cnkgewotICAgICAg
ICBDYW52YXNBZ2VudC5kaXNhYmxlKGNhbnZhc0FnZW50RGlzYWJsZWQpOwotICAgIH0gY2F0Y2gg
KGUpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV4Y2VwdGlvbiB3aGlsZSBk
aXNhYmxpbmcgQ2FudmFzQWdlbnQ6ICIgKyBlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICB9Ci19OwotCi1JbnNwZWN0b3JUZXN0LmR1bXBUcmFjZUxvZ0NhbGwg
PSBmdW5jdGlvbihjYWxsLCBpbmRlbnQpCi17Ci0gICAgaW5kZW50ID0gaW5kZW50IHx8ICIiOwot
ICAgIGZ1bmN0aW9uIGZvcm1hdFNvdXJjZVVSTCh1cmwpCi0gICAgewotICAgICAgICByZXR1cm4g
dXJsID8gIlwiIiArIHVybC5yZXBsYWNlKC9eLipcLyhbXlwvXSspXC8/JC8sICIkMSIpICsgIlwi
IiA6ICJudWxsIjsKLSAgICB9Ci0gICAgdmFyIGFyZ3MgPSAoY2FsbC5hcmd1bWVudHMgfHwgW10p
Lm1hcChmdW5jdGlvbihhcmcpIHsKLSAgICAgICAgcmV0dXJuIGFyZy5kZXNjcmlwdGlvbjsKLSAg
ICB9KTsKLSAgICB2YXIgcHJvcGVydGllcyA9IFsKLSAgICAgICAgIntDYWxsfSIsCi0gICAgICAg
IGNhbGwuZnVuY3Rpb25OYW1lID8gImZ1bmN0aW9uTmFtZTpcIiIgKyBjYWxsLmZ1bmN0aW9uTmFt
ZSArICJcIiIgOiAiIiwKLSAgICAgICAgY2FsbC5hcmd1bWVudHMgPyAiYXJndW1lbnRzOlsiICsg
YXJncy5qb2luKCIsIikgKyAiXSIgOiAiIiwKLSAgICAgICAgY2FsbC5yZXN1bHQgPyAicmVzdWx0
OiIgKyBjYWxsLnJlc3VsdC5kZXNjcmlwdGlvbiA6ICIiLAotICAgICAgICBjYWxsLnByb3BlcnR5
ID8gInByb3BlcnR5OlwiIiArIGNhbGwucHJvcGVydHkgKyAiXCIiIDogIiIsCi0gICAgICAgIGNh
bGwudmFsdWUgPyAidmFsdWU6IiArIGNhbGwudmFsdWUuZGVzY3JpcHRpb24gOiAiIiwKLSAgICAg
ICAgY2FsbC5pc0RyYXdpbmdDYWxsID8gImlzRHJhd2luZ0NhbGw6dHJ1ZSIgOiAiIiwKLSAgICAg
ICAgY2FsbC5pc0ZyYW1lRW5kQ2FsbCA/ICJpc0ZyYW1lRW5kQ2FsbDp0cnVlIiA6ICIiLAotICAg
ICAgICAic291cmNlVVJMOiIgKyBmb3JtYXRTb3VyY2VVUkwoY2FsbC5zb3VyY2VVUkwpLAotICAg
ICAgICAibGluZU51bWJlcjoiICsgY2FsbC5saW5lTnVtYmVyLAotICAgICAgICAiY29sdW1uTnVt
YmVyOiIgKyBjYWxsLmNvbHVtbk51bWJlcgotICAgIF07Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoaW5kZW50ICsgcHJvcGVydGllcy5maWx0ZXIoQm9vbGVhbikuam9pbigiICAiKSk7Ci19
OwotCi1JbnNwZWN0b3JUZXN0LmR1bXBUcmFjZUxvZyA9IGZ1bmN0aW9uKHRyYWNlTG9nLCBpbmRl
bnQpCi17Ci0gICAgaW5kZW50ID0gaW5kZW50IHx8ICIiOwotICAgIHZhciBjYWxscyA9IHRyYWNl
TG9nLmNhbGxzOwotICAgIHZhciBwcm9wZXJ0aWVzID0gWwotICAgICAgICAie1RyYWNlTG9nfSIs
Ci0gICAgICAgICJhbGl2ZToiICsgISF0cmFjZUxvZy5hbGl2ZSwKLSAgICAgICAgInN0YXJ0T2Zm
c2V0OiIgKyAodHJhY2VMb2cuc3RhcnRPZmZzZXQgfHwgMCksCi0gICAgICAgICIjY2FsbHM6IiAr
IHRyYWNlTG9nLnRvdGFsQXZhaWxhYmxlQ2FsbHMKLSAgICBdOwotICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KGluZGVudCArIHByb3BlcnRpZXMuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAgIikp
OwotICAgIGZvciAodmFyIGkgPSAwLCBuID0gY2FsbHMubGVuZ3RoOyBpIDwgbjsgKytpKQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXBUcmFjZUxvZ0NhbGwoY2FsbHNbaV0sIGluZGVudCArICIg
ICIpOwotfTsKLQotfTsKLQotZnVuY3Rpb24gY3JlYXRlV2ViR0xDb250ZXh0KG9wdF9jYW52YXMp
Ci17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKLQotICAgIHZhciBjYW52
YXMgPSBvcHRfY2FudmFzIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICAg
IHZhciBjb250ZXh0SWRzID0gWyJleHBlcmltZW50YWwtd2ViZ2wiLCAid2Via2l0LTNkIiwgIjNk
Il07Ci0gICAgZm9yICh2YXIgaSA9IDAsIGNvbnRleHRJZDsgY29udGV4dElkID0gY29udGV4dElk
c1tpXTsgKytpKSB7Ci0gICAgICAgIHZhciBnbCA9IGNhbnZhcy5nZXRDb250ZXh0KGNvbnRleHRJ
ZCk7Ci0gICAgICAgIGlmIChnbCkKLSAgICAgICAgICAgIHJldHVybiBnbDsKLSAgICB9Ci0gICAg
cmV0dXJuIG51bGw7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUNhbnZhczJEQ29udGV4dChvcHRfY2Fu
dmFzKQotewotICAgIHZhciBjYW52YXMgPSBvcHRfY2FudmFzIHx8IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImNhbnZhcyIpOwotICAgIHJldHVybiBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52
YXMtaGFzLXVuaW5zdHJ1bWVudGVkLWNhbnZhc2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMtaGFzLXVuaW5zdHJ1bWVudGVkLWNh
bnZhc2VzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGIxZDc3
MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQv
Y2FudmFzLWhhcy11bmluc3RydW1lbnRlZC1jYW52YXNlcy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw2ICswLDAgQEAKLVRlc3RzIENhbnZhcyBoYXNVbmluc3RydW1lbnRlZENhbnZh
c2VzIHByb3RvY29sIG1ldGhvZC4KLQotQnVnIDEwNTcyMQotaGFzVW5pbnN0cnVtZW50ZWRDYW52
YXNlczogZmFsc2UKLWhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXM6IHRydWUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1oYXMtdW5p
bnN0cnVtZW50ZWQtY2FudmFzZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9jYW52YXMyZC9jYW52YXMtaGFzLXVuaW5zdHJ1bWVudGVkLWNhbnZhc2VzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhMjZhODYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1oYXMtdW5pbnN0cnVtZW50ZWQt
Y2FudmFzZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vY2FudmFzLXByb2Zp
bGVyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotdmFyIGNhbnZhczsKLQotZnVuY3Rp
b24gY3JlYXRlQ2FudmFzRWxlbWVudCgpCi17Ci0gICAgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiY2FudmFzIik7Ci0gICAgY29uc29sZS5hc3NlcnQoY2FudmFzLCAiRmFpbGVkIHRv
IGNyZWF0ZSBhIGNhbnZhcyBlbGVtZW50Iik7Ci19Ci0KLWZ1bmN0aW9uIGdldENhbnZhc0NvbnRl
eHQoKQotewotICAgIHZhciBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Ci0gICAg
Y29uc29sZS5hc3NlcnQoY29udGV4dCwgIkZhaWxlZCB0byBjcmVhdGUgYSBjYW52YXMgY29udGV4
dCIpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5Db25zb2xlKCJjcmVhdGVDYW52YXNFbGVtZW50KCkiLCBzdGVwMSk7Ci0gICAgZnVuY3Rpb24g
c3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5lbmFibGVDYW52YXNBZ2VudChz
dGVwMik7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIENhbnZh
c0FnZW50Lmhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMoaGFzVW5pbnN0cnVtZW50ZWRDYW52YXNl
c0NhbGxiYWNrMSk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIGhhc1VuaW5zdHJ1bWVudGVkQ2FudmFz
ZXNDYWxsYmFjazEoZXJyb3IsIHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJoYXNVbmluc3RydW1lbnRlZENhbnZhc2VzOiAiICsgcmVzdWx0KTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFlcnJvciwgIlVuZXhwZWN0ZWQgZXJyb3IiKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZmFsc2UsIHJlc3VsdCwgIlRoZXJl
IHNob3VsZCBiZSBubyB1bmluc3RydW1lbnRlZCBjYW52YXNlcyIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmRpc2FibGVDYW52YXNBZ2VudChzdGVwMyk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHN0
ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImdl
dENhbnZhc0NvbnRleHQoKSIsIHN0ZXA0KTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gc3RlcDQoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5lbmFibGVDYW52YXNBZ2VudChzdGVwNSk7Ci0g
ICAgfQotICAgIGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIENhbnZhc0FnZW50Lmhh
c1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMoaGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc0NhbGxiYWNr
Mik7Ci0gICAgfQotICAgIGZ1bmN0aW9uIGhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNDYWxsYmFj
azIoZXJyb3IsIHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJoYXNVbmluc3RydW1lbnRlZENhbnZhc2VzOiAiICsgcmVzdWx0KTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRUcnVlKCFlcnJvciwgIlVuZXhwZWN0ZWQgZXJyb3IiKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgcmVzdWx0LCAiVGhlcmUgaXMgYW4gdW5p
bnN0cnVtZW50ZWQgY2FudmFzISIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Ci08cD4KLVRlc3RzIENhbnZhcyBoYXNVbmluc3RydW1lbnRlZENhbnZhc2VzIHByb3Rv
Y29sIG1ldGhvZC4KLTwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDU3MjEiPkJ1ZyAxMDU3MjE8L2E+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMt
cmVwbGF5LWxvZy1ncmlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9jYW52YXMyZC9jYW52YXMtcmVwbGF5LWxvZy1ncmlkLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGZlMjU1Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLXJlcGxheS1sb2ctZ3JpZC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1UZXN0cyByZXBsYXkgbG9n
IGdyaWQuCi0KLUJ1ZyAxMDk1OTIgCi0KLVRvdGFsIGZyYW1lczogMgotVG90YWwgZHJhdyBjYWxs
IGdyb3VwczogNQotVG90YWwgY2FsbHM6IDMwCi1Ub3RhbCBncmlkIG5vZGVzOiAzNwotCi1UZXN0
aW5nIFJlcGxheUZpcnN0U3RlcENsaWNrCi1UZXN0aW5nIFJlcGxheU5leHRTdGVwQ2xpY2sKLVRl
c3RpbmcgUmVwbGF5UHJldmlvdXNTdGVwQ2xpY2sKLVRlc3RpbmcgUmVwbGF5TmV4dERyYXdpbmdD
YWxsQ2xpY2sgc3RhcnRpbmcgb24gYSBmcmFtZSBub2RlCi1UZXN0aW5nIFJlcGxheVByZXZpb3Vz
RHJhd2luZ0NhbGxDbGljayBzdGFydGluZyBvbiBhIGZyYW1lIG5vZGUKLVRlc3RpbmcgUmVwbGF5
TmV4dERyYXdpbmdDYWxsQ2xpY2sgc3RhcnRpbmcgb24gYSBkcmF3IGNhbGwgZ3JvdXAKLVRlc3Rp
bmcgUmVwbGF5UHJldmlvdXNEcmF3aW5nQ2FsbENsaWNrIHN0YXJ0aW5nIG9uIGEgY2FsbCBub2Rl
Ci1UZXN0aW5nIFJlcGxheU5leHREcmF3aW5nQ2FsbENsaWNrIHN0YXJ0aW5nIG9uIGEgY2FsbCBu
b2RlCi0KLSAgIHwgICAgICAgICAgICAgICAgICAgRnJhbWUgIzEgfCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCB8Ci0gICB8ICAgICAgICAgRHJhdyBjYWxsIGdyb3VwICMxIHwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgfAotIDEgfCAgICAgICAgICAgICAgICAgICAg
IHNhdmUoKSB8IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQuaHRtbDoyNiB8IHwKLSAyIHwgICAgICAg
ICAgICAgICAgYmVnaW5QYXRoKCkgfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6MjcgfCB8
Ci0gMyB8ICAgICAgIHJlY3QoMCwgMCwgMTAwLCAxMDApIHwgY2FudmFzLXJlcGxheS1sb2ctZ3Jp
ZC5odG1sOjI4IHwgfAotIDQgfCAgICBjb250ZXh0LmZpbGxTdHlsZSA9IHJlZCB8IGNhbnZhcy1y
ZXBsYXktbG9nLWdyaWQuaHRtbDoyOSB8IHwKLSA1IHwgICAgICAgICAgICAgICAgICAgICBmaWxs
KCkgfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6MzAgfCB8Ci0gICB8ICAgICAgICAgRHJh
dyBjYWxsIGdyb3VwICMyIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgfAotIDYg
fCAgICAgICAgICAgICAgICAgIHJlc3RvcmUoKSB8IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQuaHRt
bDozMSB8IHwKLSA3IHwgICAgICAgICAgICAgICAgICAgICBzYXZlKCkgfCBjYW52YXMtcmVwbGF5
LWxvZy1ncmlkLmh0bWw6MjYgfCB8Ci0gOCB8ICAgICAgICAgICAgICAgIGJlZ2luUGF0aCgpIHwg
Y2FudmFzLXJlcGxheS1sb2ctZ3JpZC5odG1sOjI3IHwgfAotIDkgfCAgICAgICAgIHJlY3QoNSwg
NSwgOTUsIDk1KSB8IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQuaHRtbDoyOCB8IHwKLTEwIHwgIGNv
bnRleHQuZmlsbFN0eWxlID0gZ3JlZW4gfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6Mjkg
fCB8Ci0xMSB8ICAgICAgICAgICAgICAgICAgICAgZmlsbCgpIHwgY2FudmFzLXJlcGxheS1sb2ct
Z3JpZC5odG1sOjMwIHwgfAotMTIgfCAgICAgICAgICAgICAgICAgIHJlc3RvcmUoKSB8IGNhbnZh
cy1yZXBsYXktbG9nLWdyaWQuaHRtbDozMSB8IHwKLSAgIHwgICAgICAgICAgICAgICAgICAgRnJh
bWUgIzIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8Ci0gICB8ICAgICAgICAg
RHJhdyBjYWxsIGdyb3VwICMzIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgfAot
MTMgfCAgICAgICAgICAgICAgICAgICAgIHNhdmUoKSB8IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQu
aHRtbDoyNiB8IHwKLTE0IHwgICAgICAgICAgICAgICAgYmVnaW5QYXRoKCkgfCBjYW52YXMtcmVw
bGF5LWxvZy1ncmlkLmh0bWw6MjcgfCB8Ci0xNSB8ICAgICAgIHJlY3QoMTAsIDEwLCA5MCwgOTAp
IHwgY2FudmFzLXJlcGxheS1sb2ctZ3JpZC5odG1sOjI4IHwgfAotMTYgfCAgIGNvbnRleHQuZmls
bFN0eWxlID0gYmx1ZSB8IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQuaHRtbDoyOSB8IHwKLTE3IHwg
ICAgICAgICAgICAgICAgICAgICBmaWxsKCkgfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6
MzAgfCB8Ci0gICB8ICAgICAgICAgRHJhdyBjYWxsIGdyb3VwICM0IHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgfAotMTggfCAgICAgICAgICAgICAgICAgIHJlc3RvcmUoKSB8IGNh
bnZhcy1yZXBsYXktbG9nLWdyaWQuaHRtbDozMSB8IHwKLTE5IHwgICAgICAgICAgICAgICAgICAg
ICBzYXZlKCkgfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6MjYgfCB8Ci0yMCB8ICAgICAg
ICAgICAgICAgIGJlZ2luUGF0aCgpIHwgY2FudmFzLXJlcGxheS1sb2ctZ3JpZC5odG1sOjI3IHwg
fAotMjEgfCAgICAgICByZWN0KDE1LCAxNSwgODUsIDg1KSB8IGNhbnZhcy1yZXBsYXktbG9nLWdy
aWQuaHRtbDoyOCB8IHwKLTIyIHwgY29udGV4dC5maWxsU3R5bGUgPSB5ZWxsb3cgfCBjYW52YXMt
cmVwbGF5LWxvZy1ncmlkLmh0bWw6MjkgfCB8Ci0yMyB8ICAgICAgICAgICAgICAgICAgICAgZmls
bCgpIHwgY2FudmFzLXJlcGxheS1sb2ctZ3JpZC5odG1sOjMwIHwgfAotICAgfCAgICAgICAgIERy
YXcgY2FsbCBncm91cCAjNSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHwKLTI0
IHwgICAgICAgICAgICAgICAgICByZXN0b3JlKCkgfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0
bWw6MzEgfCB8Ci0yNSB8ICAgICAgICAgICAgICAgICAgICAgc2F2ZSgpIHwgY2FudmFzLXJlcGxh
eS1sb2ctZ3JpZC5odG1sOjI2IHwgfAotMjYgfCAgICAgICAgICAgICAgICBiZWdpblBhdGgoKSB8
IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQuaHRtbDoyNyB8IHwKLTI3IHwgICAgICAgcmVjdCgyMCwg
MjAsIDgwLCA4MCkgfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6MjggfCB8Ci0yOCB8ICBj
b250ZXh0LmZpbGxTdHlsZSA9IGJsYWNrIHwgY2FudmFzLXJlcGxheS1sb2ctZ3JpZC5odG1sOjI5
IHwgfAotMjkgfCAgICAgICAgICAgICAgICAgICAgIGZpbGwoKSB8IGNhbnZhcy1yZXBsYXktbG9n
LWdyaWQuaHRtbDozMCB8IHwKLTMwIHwgICAgICAgICAgICAgICAgICByZXN0b3JlKCkgfCBjYW52
YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6MzEgfCB8Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLXJlcGxheS1s
b2ctZ3JpZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwODM3NTBjLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMt
cmVwbGF5LWxvZy1ncmlkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMzggKzAsMCBAQAotPGh0
bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi9jYW52
YXMtcHJvZmlsZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIgY2FudmFzOwot
dmFyIGNvbnRleHQ7Ci12YXIgcm91bmQgPSAwOwotdmFyIGNvbG9ycyA9IFsicmVkIiwgImdyZWVu
IiwgImJsdWUiLCAieWVsbG93IiwgImJsYWNrIl07Ci0KLWZ1bmN0aW9uIGNyZWF0ZUNhbnZhc0Nv
bnRleHQoKQotewotICAgIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMi
KTsKLSAgICBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Ci0gICAgY29uc29sZS5h
c3NlcnQoY29udGV4dCwgIkZhaWxlZCB0byBjcmVhdGUgYSBjYW52YXMgY29udGV4dCIpOwotfQot
Ci1mdW5jdGlvbiBkb1NvbWVDYW52YXNDYWxscyhyZXBlYXRzKQotewotICAgIGlmICghY29udGV4
dCkKLSAgICAgICAgY3JlYXRlQ2FudmFzQ29udGV4dCgpOwotICAgIHJlcGVhdHMgPSByZXBlYXRz
IHx8IDE7Ci0gICAgd2hpbGUgKHJlcGVhdHMtLSA+IDApIHsKLSAgICAgICAgdmFyIG9mZnNldCA9
IDUgKiByb3VuZDsKLSAgICAgICAgY29udGV4dC5zYXZlKCk7Ci0gICAgICAgIGNvbnRleHQuYmVn
aW5QYXRoKCk7Ci0gICAgICAgIGNvbnRleHQucmVjdChvZmZzZXQsIG9mZnNldCwgMTAwIC0gb2Zm
c2V0LCAxMDAgLSBvZmZzZXQpOwotICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IGNvbG9yc1ty
b3VuZCAlIGNvbG9ycy5sZW5ndGhdOwotICAgICAgICBjb250ZXh0LmZpbGwoKTsKLSAgICAgICAg
Y29udGV4dC5yZXN0b3JlKCk7Ci0gICAgICAgICsrcm91bmQ7Ci0gICAgfQotfQotCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIG9uY2UgdGFrZW4gb3V0IG9mIGV4cGVy
aW1lbnRzLgotICAgIFdlYkluc3BlY3Rvci5leHBlcmltZW50c1NldHRpbmdzLmNhbnZhc0luc3Bl
Y3Rpb24gPSB7fTsKLSAgICBXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5jYW52YXNJ
bnNwZWN0aW9uLmlzRW5hYmxlZCA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfTsKLQotICAg
IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInByb2ZpbGVzIik7Ci0gICAgdmFyIHByb2ZpbGVzUGFu
ZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzOwotICAgIHZhciBwcm9maWxlVHlwZSA9
IHByb2ZpbGVzUGFuZWwuZ2V0UHJvZmlsZVR5cGUoV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVU
eXBlLlR5cGVJZCk7Ci0gICAgcHJvZmlsZXNQYW5lbC5fb25Qcm9maWxlVHlwZVNlbGVjdGVkKHtk
YXRhOiBwcm9maWxlVHlwZX0pOwotCi0gICAgSW5zcGVjdG9yVGVzdC5vdmVycmlkZShwcm9maWxl
VHlwZSwgIl9pc1NpbmdsZUZyYW1lTW9kZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0s
IHRydWUgLypzdGlja3kqLyk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKHByb2ZpbGVU
eXBlLCAiX2RpZFN0YXJ0Q2FwdHVyaW5nRnJhbWUiLCBkaWRTdGFydENhcHR1cmluZ0ZyYW1lKTsK
LSAgICBwcm9maWxlc1BhbmVsLnRvZ2dsZVJlY29yZEJ1dHRvbigpOwotCi0gICAgdmFyIHByb2Zp
bGVIZWFkZXI7Ci0gICAgdmFyIHByb2ZpbGVWaWV3OwotICAgIHZhciBkYXRhR3JpZDsKLQotICAg
IGZ1bmN0aW9uIGRpZFN0YXJ0Q2FwdHVyaW5nRnJhbWUoZnJhbWVJZCwgZXJyb3IsIHRyYWNlTG9n
SWQpCi0gICAgewotICAgICAgICBwcm9maWxlSGVhZGVyID0gcHJvZmlsZVR5cGUuZ2V0UHJvZmls
ZXMoKVswXQotICAgICAgICBwcm9maWxlc1BhbmVsLl9zaG93UHJvZmlsZShwcm9maWxlSGVhZGVy
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKHByb2ZpbGVIZWFkZXIsICJfdXBk
YXRlQ2FwdHVyaW5nU3RhdHVzIiwgZGlkUmVjZWl2ZUZpcnN0RnJhbWUpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJkb1NvbWVDYW52YXNDYWxscygyKSIpOwotICAg
IH0KLSAgICBmdW5jdGlvbiBkaWRSZWNlaXZlRmlyc3RGcmFtZSh0cmFjZUxvZykKLSAgICB7Ci0g
ICAgICAgIGlmICghdHJhY2VMb2cgfHwgdHJhY2VMb2cuY2FsbHMubGVuZ3RoIDwgMikgewotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKHByb2ZpbGVIZWFkZXIsICJfdXBkYXRl
Q2FwdHVyaW5nU3RhdHVzIiwgZGlkUmVjZWl2ZUZpcnN0RnJhbWUpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUo
ImRvU29tZUNhbnZhc0NhbGxzKDMpIiwgZGlkU2Vjb25kRnJhbWVDYWxscyk7Ci0gICAgfQotICAg
IGZ1bmN0aW9uIGRpZFNlY29uZEZyYW1lQ2FsbHMoKQotICAgIHsKLSAgICAgICAgcHJvZmlsZVZp
ZXcgPSBwcm9maWxlc1BhbmVsLnZpc2libGVWaWV3OwotICAgICAgICBkYXRhR3JpZCA9IHByb2Zp
bGVWaWV3Ll9sb2dHcmlkOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoQ2FudmFz
QWdlbnQsICJyZXBsYXlUcmFjZUxvZyIsIG9uUmVwbGF5VHJhY2VMb2cpOwotICAgICAgICBwcm9m
aWxlc1BhbmVsLnRvZ2dsZVJlY29yZEJ1dHRvbigpOwotICAgIH0KLSAgICBmdW5jdGlvbiBvblJl
cGxheVRyYWNlTG9nKHRyYWNlTG9nSWQsIGluZGV4KQotICAgIHsKLSAgICAgICAgdGVzdENvbnRy
b2xCdXR0b25zKCk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAg
ICAgICBkdW1wVGFibGVEYXRhKGRhdGFHcmlkLmVsZW1lbnQpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotCi0gICAgZnVuY3Rpb24gdGVzdENvbnRyb2xC
dXR0b25zKCkKLSAgICB7Ci0gICAgICAgIHZhciByb290Tm9kZSA9IGRhdGFHcmlkLnJvb3ROb2Rl
KCk7Ci0gICAgICAgIHZhciBmcmFtZU5vZGVzID0gW107Ci0gICAgICAgIHZhciBkcmF3Q2FsbEdy
b3VwcyA9IFtdOwotICAgICAgICB2YXIgbm9kZXMgPSBbXTsKLSAgICAgICAgdmFyIGFsbE5vZGVz
RmxhdCA9IFtdOwotCi0gICAgICAgIGZyYW1lTm9kZXMgPSBmcmFtZU5vZGVzLmNvbmNhdChyb290
Tm9kZS5jaGlsZHJlbik7Ci0gICAgICAgIGZyYW1lTm9kZXMuZm9yRWFjaChmdW5jdGlvbihmcmFt
ZU5vZGUpIHsKLSAgICAgICAgICAgIGRyYXdDYWxsR3JvdXBzID0gZHJhd0NhbGxHcm91cHMuY29u
Y2F0KGZyYW1lTm9kZS5jaGlsZHJlbik7Ci0gICAgICAgIH0pOwotICAgICAgICBkcmF3Q2FsbEdy
b3Vwcy5mb3JFYWNoKGZ1bmN0aW9uKGRyYXdDYWxsR3JvdXApIHsKLSAgICAgICAgICAgIG5vZGVz
ID0gbm9kZXMuY29uY2F0KGRyYXdDYWxsR3JvdXAuY2hpbGRyZW4pOwotICAgICAgICB9KTsKLSAg
ICAgICAgZm9yICh2YXIgbm9kZSA9IHJvb3ROb2RlOyBub2RlOyBub2RlID0gbm9kZS50cmF2ZXJz
ZU5leHROb2RlKGZhbHNlKSkgewotICAgICAgICAgICAgaWYgKG5vZGUgIT09IHJvb3ROb2RlKQot
ICAgICAgICAgICAgICAgIGFsbE5vZGVzRmxhdC5wdXNoKG5vZGUpOwotICAgICAgICB9Ci0gICAg
ICAgIGFsbE5vZGVzRmxhdC5mb3JFYWNoKGZ1bmN0aW9uKG5vZGUpIHsKLSAgICAgICAgICAgIG5v
ZGUudG9TdHJpbmcgPSBmdW5jdGlvbigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuICJOb2RleyIgKyB0aGlzLmVsZW1lbnQudGV4dENvbnRlbnQgKyAifSI7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIi
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRvdGFsIGZyYW1lczogIiArIGZy
YW1lTm9kZXMubGVuZ3RoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRvdGFs
IGRyYXcgY2FsbCBncm91cHM6ICIgKyBkcmF3Q2FsbEdyb3Vwcy5sZW5ndGgpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVG90YWwgY2FsbHM6ICIgKyBub2Rlcy5sZW5ndGgpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVG90YWwgZ3JpZCBub2RlczogIiArIGFs
bE5vZGVzRmxhdC5sZW5ndGgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7
Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZnJhbWVOb2Rlcy5wZWVrTGFz
dCgpLCBkYXRhR3JpZC5zZWxlY3RlZE5vZGUsICJFeHBlY3RlZCBsYXN0IGZyYW1lIG5vZGUgYmVm
b3JlIHRlc3RpbmcgY29udHJvbCBidXR0b25zIik7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIlRlc3RpbmcgUmVwbGF5Rmlyc3RTdGVwQ2xpY2siKTsKLSAgICAgICAgcHJvZmls
ZVZpZXcuX29uUmVwbGF5Rmlyc3RTdGVwQ2xpY2soKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRFcXVhbHMoZnJhbWVOb2Rlc1swXSwgZGF0YUdyaWQuc2VsZWN0ZWROb2RlKTsKLQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdGluZyBSZXBsYXlOZXh0U3RlcENsaWNr
Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYWxsTm9kZXNGbGF0Lmxlbmd0aCArIDU7
ICsraSkgewotICAgICAgICAgICAgcHJvZmlsZVZpZXcuX29uUmVwbGF5U3RlcENsaWNrKHRydWUp
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoYWxsTm9kZXNGbGF0W2ld
IHx8IGFsbE5vZGVzRmxhdC5wZWVrTGFzdCgpLCBkYXRhR3JpZC5zZWxlY3RlZE5vZGUsICJlcnJv
ciBvbiBpbmRleCAiICsgaSk7Ci0gICAgICAgIH0KLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiVGVzdGluZyBSZXBsYXlQcmV2aW91c1N0ZXBDbGljayIpOwotICAgICAgICBmb3Ig
KHZhciBpID0gYWxsTm9kZXNGbGF0Lmxlbmd0aCAtIDI7IGkgPj0gLTU7IC0taSkgewotICAgICAg
ICAgICAgcHJvZmlsZVZpZXcuX29uUmVwbGF5U3RlcENsaWNrKGZhbHNlKTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGFsbE5vZGVzRmxhdFtpXSB8fCBhbGxOb2Rlc0Zs
YXRbMF0sIGRhdGFHcmlkLnNlbGVjdGVkTm9kZSwgImVycm9yIG9uIGluZGV4ICIgKyBpKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0aW5nIFJlcGxh
eU5leHREcmF3aW5nQ2FsbENsaWNrIHN0YXJ0aW5nIG9uIGEgZnJhbWUgbm9kZSIpOwotICAgICAg
ICBmb3IgKHZhciBpID0gMTsgaSA8IGZyYW1lTm9kZXMubGVuZ3RoICsgNTsgKytpKSB7Ci0gICAg
ICAgICAgICBwcm9maWxlVmlldy5fb25SZXBsYXlEcmF3aW5nQ2FsbENsaWNrKHRydWUpOwotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZnJhbWVOb2Rlc1tpXSB8fCBhbGxO
b2Rlc0ZsYXQucGVla0xhc3QoKSwgZGF0YUdyaWQuc2VsZWN0ZWROb2RlLCAiZXJyb3Igb24gaW5k
ZXggIiArIGkpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnJhbWVOb2Rlcy5wZWVrTGFzdCgpLnJl
dmVhbEFuZFNlbGVjdCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhmcmFt
ZU5vZGVzLnBlZWtMYXN0KCksIGRhdGFHcmlkLnNlbGVjdGVkTm9kZSwgIkV4cGVjdGVkIHRvIHNl
bGVjdCBsYXN0IGZyYW1lIG5vZGUiKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiVGVzdGluZyBSZXBsYXlQcmV2aW91c0RyYXdpbmdDYWxsQ2xpY2sgc3RhcnRpbmcgb24gYSBm
cmFtZSBub2RlIik7Ci0gICAgICAgIGZvciAodmFyIGkgPSBmcmFtZU5vZGVzLmxlbmd0aCAtIDI7
IGkgPj0gLTU7IC0taSkgewotICAgICAgICAgICAgcHJvZmlsZVZpZXcuX29uUmVwbGF5RHJhd2lu
Z0NhbGxDbGljayhmYWxzZSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFs
cyhmcmFtZU5vZGVzW2ldIHx8IGZyYW1lTm9kZXNbMF0sIGRhdGFHcmlkLnNlbGVjdGVkTm9kZSwg
ImVycm9yIG9uIGluZGV4ICIgKyBpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHByb2ZpbGVWaWV3
Ll9vblJlcGxheVN0ZXBDbGljayh0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHMoZHJhd0NhbGxHcm91cHNbMF0sIGRhdGFHcmlkLnNlbGVjdGVkTm9kZSwgIkV4cGVjdGVk
IHRvIG1vdmUgdG8gdGhlIGZpcnN0IGRyYXcgY2FsbCBncm91cCIpOwotCi0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0aW5nIFJlcGxheU5leHREcmF3aW5nQ2FsbENsaWNrIHN0
YXJ0aW5nIG9uIGEgZHJhdyBjYWxsIGdyb3VwIik7Ci0gICAgICAgIHZhciBleHBlY3RlZCA9IFtk
cmF3Q2FsbEdyb3Vwc1sxXSwgZnJhbWVOb2Rlc1sxXSwgYWxsTm9kZXNGbGF0LnBlZWtMYXN0KCld
OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aCArIDU7ICsraSkg
ewotICAgICAgICAgICAgcHJvZmlsZVZpZXcuX29uUmVwbGF5RHJhd2luZ0NhbGxDbGljayh0cnVl
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkW2ldIHx8
IGV4cGVjdGVkLnBlZWtMYXN0KCksIGRhdGFHcmlkLnNlbGVjdGVkTm9kZSwgImVycm9yIG9uIGlu
ZGV4ICIgKyBpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHByb2ZpbGVWaWV3Ll9vblJlcGxheUxh
c3RTdGVwQ2xpY2soKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoYWxsTm9k
ZXNGbGF0LnBlZWtMYXN0KCksIGRhdGFHcmlkLnNlbGVjdGVkTm9kZSwgIkV4cGVjdGVkIHRvIG1v
dmUgdG8gdGhlIGxhc3QgY2FsbCIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJUZXN0aW5nIFJlcGxheVByZXZpb3VzRHJhd2luZ0NhbGxDbGljayBzdGFydGluZyBvbiBhIGNh
bGwgbm9kZSIpOwotICAgICAgICB2YXIgZXhwZWN0ZWQgPSBbZnJhbWVOb2Rlc1swXSwgZnJhbWVO
b2Rlc1sxXSwgZHJhd0NhbGxHcm91cHNbMl0sIGRyYXdDYWxsR3JvdXBzWzNdLCBkcmF3Q2FsbEdy
b3Vwc1s0XSwgbm9kZXNbMjhdXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IGV4cGVjdGVkLmxlbmd0
aCAtIDE7IGkgPj0gLTU7IC0taSkgewotICAgICAgICAgICAgcHJvZmlsZVZpZXcuX29uUmVwbGF5
RHJhd2luZ0NhbGxDbGljayhmYWxzZSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dEVxdWFscyhleHBlY3RlZFtpXSB8fCBleHBlY3RlZFswXSwgZGF0YUdyaWQuc2VsZWN0ZWROb2Rl
LCAiZXJyb3Igb24gaW5kZXggIiArIGkpOwotICAgICAgICB9Ci0KLSAgICAgICAgbm9kZXNbMTVd
LnJldmVhbEFuZFNlbGVjdCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhu
b2Rlc1sxNV0sIGRhdGFHcmlkLnNlbGVjdGVkTm9kZSwgIkV4cGVjdGVkIHRvIHNlbGVjdCBub2Rl
ICMyMCIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0aW5nIFJlcGxh
eU5leHREcmF3aW5nQ2FsbENsaWNrIHN0YXJ0aW5nIG9uIGEgY2FsbCBub2RlIik7Ci0gICAgICAg
IHZhciBleHBlY3RlZCA9IFtub2Rlc1sxNl0sIGRyYXdDYWxsR3JvdXBzWzNdLCBkcmF3Q2FsbEdy
b3Vwc1s0XSwgYWxsTm9kZXNGbGF0LnBlZWtMYXN0KCldOwotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGV4cGVjdGVkLmxlbmd0aCArIDU7ICsraSkgewotICAgICAgICAgICAgcHJvZmlsZVZp
ZXcuX29uUmVwbGF5RHJhd2luZ0NhbGxDbGljayh0cnVlKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkW2ldIHx8IGV4cGVjdGVkLnBlZWtMYXN0KCksIGRh
dGFHcmlkLnNlbGVjdGVkTm9kZSwgImVycm9yIG9uIGluZGV4ICIgKyBpKTsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1bXBUYWJsZURhdGEodGFibGVFbGVtZW50KQotICAgIHsK
LSAgICAgICAgdmFyIHRleHRSb3dzID0gW107Ci0gICAgICAgIHZhciB0ZXh0V2lkdGhzID0gW107
Ci0gICAgICAgIHZhciByb3dzID0gdGFibGVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0
ciIpOwotICAgICAgICBmb3IgKHZhciBpID0gMCwgcm93OyByb3cgPSByb3dzW2ldOyArK2kpIHsK
LSAgICAgICAgICAgIGlmICghcm93Lm9mZnNldEhlaWdodCB8fCAhcm93LnRleHRDb250ZW50KQot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgdmFyIHRleHRDb2xzID0gW107
Ci0gICAgICAgICAgICB2YXIgY29scyA9IHJvdy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKTsK
LSAgICAgICAgICAgIGZvciAodmFyIGogPSAwLCBjb2w7IGNvbCA9IGNvbHNbal07ICsraikgewot
ICAgICAgICAgICAgICAgIGlmICghY29sLm9mZnNldEhlaWdodCkKLSAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gdGV4dENvbHMubGVuZ3Ro
OwotICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gY29sLnRleHRDb250ZW50OwotICAgICAgICAg
ICAgICAgIHRleHRXaWR0aHNbaW5kZXhdID0gTWF0aC5tYXgodGV4dFdpZHRoc1tpbmRleF0gfHwg
MCwgdGV4dC5sZW5ndGgpOwotICAgICAgICAgICAgICAgIHRleHRDb2xzW2luZGV4XSA9IHRleHQ7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAodGV4dENvbHMubGVuZ3RoKQotICAgICAg
ICAgICAgICAgIHRleHRSb3dzLnB1c2godGV4dENvbHMpOwotICAgICAgICB9Ci0KLSAgICAgICAg
ZnVuY3Rpb24gYWxpZ25UZXh0KHRleHQsIHdpZHRoKQotICAgICAgICB7Ci0gICAgICAgICAgICB2
YXIgcmVzdWx0ID0gIiI7Ci0gICAgICAgICAgICB2YXIgc3BhY2VzID0gd2lkdGggLSB0ZXh0Lmxl
bmd0aDsKLSAgICAgICAgICAgIHdoaWxlIChzcGFjZXMtLSA+IDApCi0gICAgICAgICAgICAgICAg
cmVzdWx0ICs9ICIgIjsKLSAgICAgICAgICAgIHJlc3VsdCArPSB0ZXh0OwotICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dGV4dFJvd3MubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBsaW5lID0gIiI7Ci0gICAg
ICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRleHRSb3dzW2ldLmxlbmd0aDsgKytqKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKGopCi0gICAgICAgICAgICAgICAgICAgIGxpbmUgKz0gIiB8ICI7
Ci0gICAgICAgICAgICAgICAgbGluZSArPSBhbGlnblRleHQodGV4dFJvd3NbaV1bal0sIHRleHRX
aWR0aHNbal0pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbGluZSArPSAifCI7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChsaW5lKTsKLSAgICAgICAgfQotICAgIH0K
LX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4K
LVRlc3RzIHJlcGxheSBsb2cgZ3JpZC4KLTwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk1OTIiPkJ1ZyAxMDk1OTI8L2E+Ci08Y2FudmFzIGlk
PSJjYW52YXMiPjwvY2FudmFzPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1zdGFjay10cmFjZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFz
LXN0YWNrLXRyYWNlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
N2RkNGE3ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2Fu
dmFzMmQvY2FudmFzLXN0YWNrLXRyYWNlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDEwICswLDAgQEAKLVRlc3RzIHN0YWNrIHRyYWNlcyBpbiB0aGUgQ2FudmFzIFRyYWNlTG9nIHJl
c3VsdHMuCi0KLUJ1ZyAxMDc4MDUgCi0KLXtUcmFjZUxvZ30gIGFsaXZlOnRydWUgIHN0YXJ0T2Zm
c2V0OjAgICNjYWxsczo0Ci0gIHtDYWxsfSAgZnVuY3Rpb25OYW1lOiJiZWdpblBhdGgiICBhcmd1
bWVudHM6W10gIHNvdXJjZVVSTDoiY2FudmFzLXN0YWNrLXRyYWNlLmh0bWwiICBsaW5lTnVtYmVy
OjE5ICBjb2x1bW5OdW1iZXI6MTMKLSAge0NhbGx9ICBmdW5jdGlvbk5hbWU6InJlY3QiICBhcmd1
bWVudHM6WzAsMCwxMDAsMTAwXSAgc291cmNlVVJMOiJjYW52YXMtc3RhY2stdHJhY2UuaHRtbCIg
IGxpbmVOdW1iZXI6MjAgIGNvbHVtbk51bWJlcjoxMwotICB7Q2FsbH0gIHByb3BlcnR5OiJmaWxs
U3R5bGUiICB2YWx1ZTpyZWQgIHNvdXJjZVVSTDoiY2FudmFzLXN0YWNrLXRyYWNlLmh0bWwiICBs
aW5lTnVtYmVyOjIxICBjb2x1bW5OdW1iZXI6MjMKLSAge0NhbGx9ICBmdW5jdGlvbk5hbWU6ImZp
bGwiICBhcmd1bWVudHM6W10gIGlzRHJhd2luZ0NhbGw6dHJ1ZSAgaXNGcmFtZUVuZENhbGw6dHJ1
ZSAgc291cmNlVVJMOiJjYW52YXMtc3RhY2stdHJhY2UuaHRtbCIgIGxpbmVOdW1iZXI6MjIgIGNv
bHVtbk51bWJlcjoxMwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvY2FudmFzMmQvY2FudmFzLXN0YWNrLXRyYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLXN0YWNrLXRyYWNlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQyMzQxNDcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1zdGFjay10cmFjZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNjUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSIuLi9jYW52YXMtcHJvZmlsZXItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotCi12YXIgY2FudmFzOwotdmFyIGNvbnRleHQ7Ci0KLWZ1bmN0aW9uIGNyZWF0
ZUNhbnZhc0NvbnRleHQoKQotewotICAgIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjYW52YXMiKTsKLSAgICBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Ci0gICAg
Y29uc29sZS5hc3NlcnQoY29udGV4dCwgIkZhaWxlZCB0byBjcmVhdGUgYSBjYW52YXMgY29udGV4
dCIpOwotfQotCi1mdW5jdGlvbiBkb1NvbWVDYW52YXNDYWxscygpCi17Ci0gICAgY29udGV4dC5i
ZWdpblBhdGgoKTsKLSAgICBjb250ZXh0LnJlY3QoMCwgMCwgMTAwLCAxMDApOwotICAgIGNvbnRl
eHQuZmlsbFN0eWxlID0gJ3JlZCc7Ci0gICAgY29udGV4dC5maWxsKCk7Ci19Ci0KLWZ1bmN0aW9u
IHRlc3QoKQotewotICAgIHZhciB0cmFjZUxvZ0lkOwotICAgIEluc3BlY3RvclRlc3QuZW5hYmxl
Q2FudmFzQWdlbnQoc3RlcDEpOwotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImNyZWF0ZUNhbnZhc0NvbnRleHQoKSIs
IHN0ZXAyKTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgQ2Fu
dmFzQWdlbnQuc3RhcnRDYXB0dXJpbmcoZGlkU3RhcnRDYXB0dXJpbmcpOwotICAgIH0KLSAgICBm
dW5jdGlvbiBkaWRTdGFydENhcHR1cmluZyhlcnJvciwgaWQpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydFRydWUoIWVycm9yICYmICEhaWQsICJVbmV4cGVjdGVkIGVycm9yOiAi
ICsgZXJyb3IpOwotICAgICAgICB0cmFjZUxvZ0lkID0gaWQ7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJbkNvbnNvbGUoImRvU29tZUNhbnZhc0NhbGxzKCkiLCBkaWRTb21lQ2FudmFz
Q2FsbHMpOwotICAgIH0KLSAgICBmdW5jdGlvbiBkaWRTb21lQ2FudmFzQ2FsbHMoKQotICAgIHsK
LSAgICAgICAgQ2FudmFzQWdlbnQuZ2V0VHJhY2VMb2codHJhY2VMb2dJZCwgMCwgdW5kZWZpbmVk
LCBkaWRSZWNlaXZlVHJhY2VMb2cpOwotICAgIH0KLSAgICBmdW5jdGlvbiBkaWRSZWNlaXZlVHJh
Y2VMb2coZXJyb3IsIHRyYWNlTG9nKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRUcnVlKCFlcnJvciAmJiAhIXRyYWNlTG9nLCAiVW5leHBlY3RlZCBlcnJvcjogIiArIGVycm9y
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBUcmFjZUxvZyh0cmFjZUxvZyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgc3RhY2sgdHJhY2VzIGluIHRoZSBDYW52YXMgVHJh
Y2VMb2cgcmVzdWx0cy4KLTwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDc4MDUiPkJ1ZyAxMDc4MDU8L2E+Ci08Y2FudmFzIGlkPSJjYW52YXMi
PjwvY2FudmFzPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhczJkLWFwaS1jaGFuZ2VzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMyZC1hcGkt
Y2hhbmdlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0N2Rm
NzkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJk
L2NhbnZhczJkLWFwaS1jaGFuZ2VzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYg
KzAsMCBAQAotVGVzdCB0byBjYXRjaCBDYW52YXMgMkQgQVBJIGNoYW5nZXMuIElmIHRoaXMgdGVz
dCBzaG91bGQgZXZlciBmYWlsLCB3ZSBzaG91bGQgcmUtZXhhbWluZSB0aGUgQ2FudmFzIDJEIHN0
YXRlIHNhdmluZy9yZXN0b3JpbmcgbG9naWMgaW4gdGhlIEluamVjdGVkU2NyaXB0TW9kdWxlIHRv
IGluY2x1ZGUgYW55IGxhdGVzdCBjaGFuZ2VzIHRvIHRoZSBBUEkuCi0KLU5ldyBwcm9wZXJ0aWVz
IGFuZCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgbWFudWFsbHkgZXhhbWluZWQgKHNob3VsZCBi
ZSBlbXB0eSB0byBwYXNzIHRoZSB0ZXN0KToKLU5ldyBwcm9wZXJ0aWVzIGFuZCBmdW5jdGlvbnMg
b2YgQ2FudmFzR3JhZGllbnQgb2JqZWN0IHRoYXQgc2hvdWxkIGJlIG1hbnVhbGx5IGV4YW1pbmVk
IChzaG91bGQgYmUgZW1wdHkgdG8gcGFzcyB0aGUgdGVzdCk6Ci1OZXcgcHJvcGVydGllcyBhbmQg
ZnVuY3Rpb25zIG9mIENhbnZhc1BhdHRlcm4gb2JqZWN0IHRoYXQgc2hvdWxkIGJlIG1hbnVhbGx5
IGV4YW1pbmVkIChzaG91bGQgYmUgZW1wdHkgdG8gcGFzcyB0aGUgdGVzdCk6Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMyZC1hcGkt
Y2hhbmdlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2Nh
bnZhczJkLWFwaS1jaGFuZ2VzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYx
Zjc0NmUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZh
czJkL2NhbnZhczJkLWFwaS1jaGFuZ2VzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxODQgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEUmVzb3VyY2UgPSB7fTsKLQotLyoqCi0gKiBAY29uc3QKLSAq
IEB0eXBlIHtBcnJheS48c3RyaW5nPn0KLSAqLwotQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEUmVz
b3VyY2UuQXR0cmlidXRlUHJvcGVydGllcyA9IFsKLSAgICAiY3VycmVudFBhdGgiLAotICAgICJz
dHJva2VTdHlsZSIsCi0gICAgImZpbGxTdHlsZSIsCi0gICAgImdsb2JhbEFscGhhIiwKLSAgICAi
bGluZVdpZHRoIiwKLSAgICAibGluZUNhcCIsCi0gICAgImxpbmVKb2luIiwKLSAgICAibWl0ZXJM
aW1pdCIsCi0gICAgInNoYWRvd09mZnNldFgiLAotICAgICJzaGFkb3dPZmZzZXRZIiwKLSAgICAi
c2hhZG93Qmx1ciIsCi0gICAgInNoYWRvd0NvbG9yIiwKLSAgICAiZ2xvYmFsQ29tcG9zaXRlT3Bl
cmF0aW9uIiwKLSAgICAiZm9udCIsCi0gICAgInRleHRBbGlnbiIsCi0gICAgInRleHRCYXNlbGlu
ZSIsCi0gICAgImxpbmVEYXNoT2Zmc2V0IiwKLSAgICAvLyBGSVhNRTogVGVtcG9yYXJ5IHByb3Bl
cnRpZXMgaW1wbGVtZW50ZWQgaW4gSlNDLCBidXQgbm90IGluIFY4LgotICAgICJ3ZWJraXRMaW5l
RGFzaCIsCi0gICAgIndlYmtpdExpbmVEYXNoT2Zmc2V0IgotXTsKLQotLyoqCi0gKiBAY29uc3QK
LSAqIEB0eXBlIHtBcnJheS48c3RyaW5nPn0KLSAqLwotQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
UmVzb3VyY2UuUGF0aE1ldGhvZHMgPSBbCi0gICAgImJlZ2luUGF0aCIsCi0gICAgIm1vdmVUbyIs
Ci0gICAgImNsb3NlUGF0aCIsCi0gICAgImxpbmVUbyIsCi0gICAgInF1YWRyYXRpY0N1cnZlVG8i
LAotICAgICJiZXppZXJDdXJ2ZVRvIiwKLSAgICAiYXJjVG8iLAotICAgICJhcmMiLAotICAgICJy
ZWN0IgotXTsKLQotLyoqCi0gKiBAY29uc3QKLSAqIEB0eXBlIHtBcnJheS48c3RyaW5nPn0KLSAq
LwotQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEUmVzb3VyY2UuVHJhbnNmb3JtYXRpb25NYXRyaXhN
ZXRob2RzID0gWwotICAgICJzY2FsZSIsCi0gICAgInJvdGF0ZSIsCi0gICAgInRyYW5zbGF0ZSIs
Ci0gICAgInRyYW5zZm9ybSIsCi0gICAgInNldFRyYW5zZm9ybSIKLV07Ci0KLS8qKgotICogQGNv
bnN0Ci0gKiBAdHlwZSB7QXJyYXkuPHN0cmluZz59Ci0gKi8KLUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRFJlc291cmNlLklnbm9yZVByb3BlcnRpZXMgPSBbCi0gICAgImNhbnZhcyIsCi0gICAgImNy
ZWF0ZUxpbmVhckdyYWRpZW50IiwKLSAgICAiY3JlYXRlUmFkaWFsR3JhZGllbnQiLAotICAgICJj
cmVhdGVQYXR0ZXJuIiwKLSAgICAic2F2ZSIsCi0gICAgInJlc3RvcmUiLAotICAgICJjbGlwIiwK
LSAgICAiZ2V0TGluZURhc2giLAotICAgICJzZXRMaW5lRGFzaCIsCi0gICAgLy8gSWdub3JlIHRo
ZSBwcm9wZXJ0aWVzIGJlbG93LgotICAgICJjbGVhclJlY3QiLAotICAgICJjbGVhclNoYWRvdyIs
Ci0gICAgImNyZWF0ZUltYWdlRGF0YSIsCi0gICAgImRyYXdJbWFnZSIsCi0gICAgImRyYXdJbWFn
ZUZyb21SZWN0IiwKLSAgICAiZmlsbCIsCi0gICAgImZpbGxSZWN0IiwKLSAgICAiZmlsbFRleHQi
LAotICAgICJnZXRJbWFnZURhdGEiLAotICAgICJpc1BvaW50SW5QYXRoIiwKLSAgICAiaXNQb2lu
dEluU3Ryb2tlIiwKLSAgICAibWVhc3VyZVRleHQiLAotICAgICJwdXRJbWFnZURhdGEiLAotICAg
ICJzZXRBbHBoYSIsCi0gICAgInNldENvbXBvc2l0ZU9wZXJhdGlvbiIsCi0gICAgInNldEZpbGxD
b2xvciIsCi0gICAgInNldExpbmVDYXAiLAotICAgICJzZXRMaW5lSm9pbiIsCi0gICAgInNldExp
bmVXaWR0aCIsCi0gICAgInNldE1pdGVyTGltaXQiLAotICAgICJzZXRTaGFkb3ciLAotICAgICJz
ZXRTdHJva2VDb2xvciIsCi0gICAgInN0cm9rZSIsCi0gICAgInN0cm9rZVJlY3QiLAotICAgICJz
dHJva2VUZXh0IiwKLSAgICAid2Via2l0QmFja2luZ1N0b3JlUGl4ZWxSYXRpbyIsCi0gICAgIndl
YmtpdEdldEltYWdlRGF0YUhEIiwKLSAgICAid2Via2l0SW1hZ2VTbW9vdGhpbmdFbmFibGVkIiwK
LSAgICAid2Via2l0UHV0SW1hZ2VEYXRhSEQiCi1dOwotCi1mdW5jdGlvbiBjb2xsZWN0UHJvcGVy
dHlOYW1lcyhvYmopCi17Ci0gICAgdmFyIHByb3BlcnR5TmFtZXMgPSBbXTsKLSAgICBmb3IgKHZh
ciBwcm9wZXJ0eSBpbiBvYmopCi0gICAgICAgIHByb3BlcnR5TmFtZXMucHVzaChwcm9wZXJ0eSk7
Ci0gICAgcHJvcGVydHlOYW1lcy5zb3J0KCk7Ci0gICAgcmV0dXJuIHByb3BlcnR5TmFtZXM7Ci19
Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJjYW52YXMiKTsKLSAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7
Ci0gICAgaWYgKCFjdHgpIHsKLSAgICAgICAgb3V0cHV0KCJFUlJPUjogQ291bGQgbm90IGNyZWF0
ZSBjYW52YXMgMkQgY29udGV4dC4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBvdXRw
dXQoIk5ldyBwcm9wZXJ0aWVzIGFuZCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgbWFudWFsbHkg
ZXhhbWluZWQgKHNob3VsZCBiZSBlbXB0eSB0byBwYXNzIHRoZSB0ZXN0KToiKTsKLSAgICB2YXIg
cHJvcGVydHlOYW1lcyA9IGNvbGxlY3RQcm9wZXJ0eU5hbWVzKGN0eCk7Ci0gICAgdmFyIHRyYWNr
ZWRQcm9wZXJ0aWVzID0gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEUmVzb3VyY2UuQXR0cmlidXRl
UHJvcGVydGllcy5jb25jYXQoQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEUmVzb3VyY2UuUGF0aE1l
dGhvZHMsIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFJlc291cmNlLlRyYW5zZm9ybWF0aW9uTWF0
cml4TWV0aG9kcywgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEUmVzb3VyY2UuSWdub3JlUHJvcGVy
dGllcyk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0eU5hbWVzLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgIHZhciBwcm9wZXJ0eSA9IHByb3BlcnR5TmFtZXNbaV07Ci0gICAgICAgIGlm
ICh0cmFja2VkUHJvcGVydGllcy5pbmRleE9mKHByb3BlcnR5KSAhPT0gLTEpCi0gICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgb3V0cHV0KHByb3BlcnR5KTsKLSAgICB9Ci0KLSAgICB2YXIg
Z3JhZGllbnQgPSBjdHguY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgMCwgMSwgMSk7Ci0gICAgaWYg
KCFncmFkaWVudCkgewotICAgICAgICBvdXRwdXQoIkVSUk9SOiBDb3VsZCBub3QgY3JlYXRlIGEg
Z3JhZGllbnQgb2JqZWN0LiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG91dHB1dCgi
TmV3IHByb3BlcnRpZXMgYW5kIGZ1bmN0aW9ucyBvZiBDYW52YXNHcmFkaWVudCBvYmplY3QgdGhh
dCBzaG91bGQgYmUgbWFudWFsbHkgZXhhbWluZWQgKHNob3VsZCBiZSBlbXB0eSB0byBwYXNzIHRo
ZSB0ZXN0KToiKTsKLSAgICBwcm9wZXJ0eU5hbWVzID0gY29sbGVjdFByb3BlcnR5TmFtZXMoZ3Jh
ZGllbnQpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydHlOYW1lcy5sZW5ndGg7ICsr
aSkgewotICAgICAgICB2YXIgcHJvcGVydHkgPSBwcm9wZXJ0eU5hbWVzW2ldOwotICAgICAgICBp
ZiAocHJvcGVydHkgPT09ICJhZGRDb2xvclN0b3AiKQotICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIG91dHB1dChwcm9wZXJ0eSk7Ci0gICAgfQotCi0gICAgdmFyIHBhdHRlcm4gPSBjdHgu
Y3JlYXRlUGF0dGVybihuZXcgSW1hZ2UoKSwgInJlcGVhdCIpOwotICAgIGlmICghcGF0dGVybikg
ewotICAgICAgICBvdXRwdXQoIkVSUk9SOiBDb3VsZCBub3QgY3JlYXRlIGEgcGF0dGVybiBvYmpl
Y3QuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgb3V0cHV0KCJOZXcgcHJvcGVydGll
cyBhbmQgZnVuY3Rpb25zIG9mIENhbnZhc1BhdHRlcm4gb2JqZWN0IHRoYXQgc2hvdWxkIGJlIG1h
bnVhbGx5IGV4YW1pbmVkIChzaG91bGQgYmUgZW1wdHkgdG8gcGFzcyB0aGUgdGVzdCk6Iik7Ci0g
ICAgZm9yICh2YXIgcHJvcGVydHkgaW4gcGF0dGVybikKLSAgICAgICAgb3V0cHV0KHByb3BlcnR5
KTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICB9Ci0gICAgdHJ5IHsKLSAgICAgICAgdGVzdCgpOwotICAg
IH0gZmluYWxseSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3QgdG8gY2F0Y2ggQ2FudmFzIDJE
IEFQSSBjaGFuZ2VzLgotSWYgdGhpcyB0ZXN0IHNob3VsZCBldmVyIGZhaWwsIHdlIHNob3VsZCBy
ZS1leGFtaW5lIHRoZSBDYW52YXMgMkQgc3RhdGUgc2F2aW5nL3Jlc3RvcmluZyBsb2dpYyBpbiB0
aGUKLUluamVjdGVkU2NyaXB0TW9kdWxlIHRvIGluY2x1ZGUgYW55IGxhdGVzdCBjaGFuZ2VzIHRv
IHRoZSBBUEkuCi0KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMyZC1ncmFkaWVudC1jYXB0dXJp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJk
L2NhbnZhczJkLWdyYWRpZW50LWNhcHR1cmluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGNhODVkMTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhczJkLWdyYWRpZW50LWNhcHR1cmluZy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3RzIENhbnZhcyAyRCBjYXB0
dXJpbmcgZm9yIENhbnZhc0dyYWRpZW50IG9iamVjdHMuCi0KLUJ1ZyAxMDE0MzIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMyZC1ncmFk
aWVudC1jYXB0dXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52
YXMyZC9jYW52YXMyZC1ncmFkaWVudC1jYXB0dXJpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYmEzYTkxYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvY2FudmFzMmQvY2FudmFzMmQtZ3JhZGllbnQtY2FwdHVyaW5nLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL2NhbnZhcy1wcm9maWxlci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0KLXZhciBjdHg7Ci12YXIgcmF3Q3R4OwotdmFyIGN0eFJlc291cmNlOwot
Ci1mdW5jdGlvbiB0ZXN0Q2FudmFzR3JhZGllbnRDYXB0dXJpbmcoKQotewotICAgIHZhciBncmFk
aWVudCA9IGN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAwLCAxMCwgMTApOwotICAgIGNvbnNv
bGUuYXNzZXJ0KGdyYWRpZW50LCAiRmFpbGVkIHRvIGNyZWF0ZSBhIENhbnZhc0dyYWRpZW50IG9i
amVjdCIpOwotICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLCAnI2ZmZicpOwotICAgIGdyYWRp
ZW50LmFkZENvbG9yU3RvcCgwLjMsICcjYWFhJyk7Ci0gICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9w
KDEsICcjMDAwJyk7Ci0KLSAgICB2YXIgZ3JhZGllbnRSZXNvdXJjZSA9IGdyYWRpZW50WyJfX3Jl
c291cmNlT2JqZWN0Il07Ci0gICAgY29uc29sZS5hc3NlcnQoZ3JhZGllbnRSZXNvdXJjZSwgIkNh
bnZhc0dyYWRpZW50IG9iamVjdCBpcyBub3Qgd3JhcHBlZCIpOwotCi0gICAgdmFyIGNhbGxzID0g
Z3JhZGllbnRSZXNvdXJjZS5jYWxscygpOwotICAgIHZhciBleHBlY3RlZExlbmd0aCA9IDQ7Ci0g
ICAgY29uc29sZS5hc3NlcnQoY2FsbHMubGVuZ3RoID09PSBleHBlY3RlZExlbmd0aCwgIkV4cGVj
dGVkIGxlbmd0aCBvZiB0aGUgbG9nOiAiICsgZXhwZWN0ZWRMZW5ndGggKyAiLCBidXQgd2FzOiAi
ICsgY2FsbHMubGVuZ3RoKTsKLX0KLQotZnVuY3Rpb24gY3JlYXRlQW5kUnVuQ2FudmFzMkRQcm9n
cmFtKCkKLXsKLSAgICBjdHggPSBjcmVhdGVDYW52YXMyRENvbnRleHQoKTsKLSAgICBjb25zb2xl
LmFzc2VydChjdHgsICJGYWlsZWQgdG8gY3JlYXRlIDJEIGNvbnRleHQiKTsKLQotICAgIGN0eFJl
c291cmNlID0gY3R4WyJfX3Jlc291cmNlT2JqZWN0Il07Ci0gICAgY29uc29sZS5hc3NlcnQoY3R4
UmVzb3VyY2UsICIyRCBjb250ZXh0IGlzIG5vdCB3cmFwcGVkIik7Ci0KLSAgICByYXdDdHggPSBj
dHhSZXNvdXJjZS53cmFwcGVkT2JqZWN0KCk7Ci0gICAgY29uc29sZS5hc3NlcnQocmF3Q3R4LCAi
Tm8gcmF3IDJEIGNvbnRleHQgZm91bmQiKTsKLSAgICBjb25zb2xlLmFzc2VydChjdHggIT09IHJh
d0N0eCwgIlByb3h5IGFuZCBSQVcgY29udGV4dHMgc2hvdWxkIG5vdCBiZSB0aGUgc2FtZSIpOwot
Ci0gICAgdGVzdENhbnZhc0dyYWRpZW50Q2FwdHVyaW5nKCk7Ci0KLSAgICByZXR1cm4gIlNVQ0NF
U1MiOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmVuYWJsZUNh
bnZhc0FnZW50KHN0ZXAxKTsKLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJjcmVhdGVBbmRSdW5DYW52YXMyRFByb2dy
YW0oKSIsIHN0ZXAyKTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gc3RlcDIoZXJyb3IpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiXCJTVUNDRVNTXCIiLCBlcnJvcik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgQ2Fu
dmFzIDJEIGNhcHR1cmluZyBmb3IgQ2FudmFzR3JhZGllbnQgb2JqZWN0cy4KLTwvcD4KLTxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0MzIiPkJ1ZyAx
MDE0MzI8L2E+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMyZC1wcm9maWxlci1jYXB0dXJpbmctYmFz
aWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMy
ZC9jYW52YXMyZC1wcm9maWxlci1jYXB0dXJpbmctYmFzaWNzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODI0YWY5ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzMmQtcHJvZmlsZXItY2FwdHVyaW5n
LWJhc2ljcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3Rz
IENhbnZhcyAyRCBjYXB0dXJpbmcgYmFzaWNzLgotCi1CdWcgMTAwNzUyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzMmQtcHJvZmlsZXIt
Y2FwdHVyaW5nLWJhc2ljcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2Nh
bnZhczJkL2NhbnZhczJkLXByb2ZpbGVyLWNhcHR1cmluZy1iYXNpY3MuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y1MmI3MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzMmQtcHJvZmlsZXItY2FwdHVyaW5nLWJh
c2ljcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vY2FudmFzLXByb2ZpbGVy
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotdmFyIGN0eDsKLXZhciByYXdDdHg7Ci12
YXIgY3R4UmVzb3VyY2U7Ci0KLXZhciBzYW1wbGVBdHRyaWJ1dGVzMSA9IHsKLSAgICAic3Ryb2tl
U3R5bGUiOiAiIzAwMDAwMSIsCi0gICAgImZpbGxTdHlsZSI6ICIjMDAwMDAyIiwKLSAgICAiZ2xv
YmFsQWxwaGEiOiAwLjUsCi0gICAgImxpbmVXaWR0aCI6IDIsCi0gICAgImxpbmVDYXAiOiAicm91
bmQiLAotICAgICJsaW5lSm9pbiI6ICJiZXZlbCIsCi0gICAgIm1pdGVyTGltaXQiOiAxMiwKLSAg
ICAic2hhZG93T2Zmc2V0WCI6IDEsCi0gICAgInNoYWRvd09mZnNldFkiOiAyLAotICAgICJzaGFk
b3dCbHVyIjogMywKLSAgICAic2hhZG93Q29sb3IiOiAiIzAwMDAwMyIsCi0gICAgImdsb2JhbENv
bXBvc2l0ZU9wZXJhdGlvbiI6ICJzb3VyY2UtaW4iLAotICAgICJmb250IjogIjEycHggc2Fucy1z
ZXJpZiIsCi0gICAgInRleHRBbGlnbiI6ICJlbmQiLAotICAgICJ0ZXh0QmFzZWxpbmUiOiAidG9w
IiwKLSAgICAibGluZURhc2hPZmZzZXQiOiAxCi19OwotCi12YXIgc2FtcGxlQXR0cmlidXRlczIg
PSB7Ci0gICAgInN0cm9rZVN0eWxlIjogIiMxMDAwMDEiLAotICAgICJmaWxsU3R5bGUiOiAiIzEw
MDAwMiIsCi0gICAgImdsb2JhbEFscGhhIjogMCwKLSAgICAibGluZVdpZHRoIjogMywKLSAgICAi
bGluZUNhcCI6ICJzcXVhcmUiLAotICAgICJsaW5lSm9pbiI6ICJyb3VuZCIsCi0gICAgIm1pdGVy
TGltaXQiOiAxMSwKLSAgICAic2hhZG93T2Zmc2V0WCI6IDMsCi0gICAgInNoYWRvd09mZnNldFki
OiA0LAotICAgICJzaGFkb3dCbHVyIjogMiwKLSAgICAic2hhZG93Q29sb3IiOiAiIzEwMDAwMyIs
Ci0gICAgImdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiI6ICJ4b3IiLAotICAgICJmb250IjogIjEz
cHggc2Fucy1zZXJpZiIsCi0gICAgInRleHRBbGlnbiI6ICJsZWZ0IiwKLSAgICAidGV4dEJhc2Vs
aW5lIjogIm1pZGRsZSIsCi0gICAgImxpbmVEYXNoT2Zmc2V0IjogMgotfTsKLQotZnVuY3Rpb24g
YXNzaWduQXR0cmlidXRlcyhhdHRyaWJ1dGVzKQotewotICAgIGZvciAodmFyIGF0dHJpYnV0ZSBp
biBhdHRyaWJ1dGVzKQotICAgICAgICBjdHhbYXR0cmlidXRlXSA9IGF0dHJpYnV0ZXNbYXR0cmli
dXRlXTsKLX0KLQotZnVuY3Rpb24gYXNzZXJ0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKQotewotICAg
IGZvciAodmFyIGF0dHJpYnV0ZSBpbiBhdHRyaWJ1dGVzKQotICAgICAgICBjb25zb2xlLmFzc2Vy
dChjdHhbYXR0cmlidXRlXSA9PT0gYXR0cmlidXRlc1thdHRyaWJ1dGVdLCAiRXhwZWN0ZWQgdmFs
dWUgZm9yIGF0dHJpYnV0ZSAiICsgYXR0cmlidXRlICsgIjogIiArIGF0dHJpYnV0ZXNbYXR0cmli
dXRlXSArICIsIGJ1dCB3YXM6ICIgKyBjdHhbYXR0cmlidXRlXSk7Ci19Ci0KLWZ1bmN0aW9uIGFz
c2VydE51bWJlck9mQ2FsbHNJbkxvZyhleHBlY3RlZCkKLXsKLSAgICB2YXIgY2FsbHMgPSBjdHhS
ZXNvdXJjZS5jYWxscygpOwotICAgIGlmIChjYWxscy5sZW5ndGggIT09IGV4cGVjdGVkKSB7Ci0g
ICAgICAgIHZhciBuYW1lcyA9IFtdOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwICYm
IGNhbGxzW2ldOyArK2kpCi0gICAgICAgICAgICBuYW1lcy5wdXNoKGNhbGxzW2ldLmZ1bmN0aW9u
TmFtZSgpKTsKLSAgICAgICAgY29uc29sZS5lcnJvcigiRXhwZWN0ZWQgc2l6ZSBvZiB0aGUgMkQg
Y29udGV4dCBjYWxsIGxvZzogIiArIGV4cGVjdGVkICsgIiwgYnV0IHdhczogIiArIGNhbGxzLmxl
bmd0aCArICIsIG5hbWVzOiAiICsgbmFtZXMpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gdGVzdERy
YXdpbmdBdHRyaWJ1dGVzKCkKLXsKLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMCk7Ci0g
ICAgYXNzaWduQXR0cmlidXRlcyhzYW1wbGVBdHRyaWJ1dGVzMSk7Ci0gICAgYXNzZXJ0QXR0cmli
dXRlcyhzYW1wbGVBdHRyaWJ1dGVzMSk7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDAp
OwotCi0gICAgLy8gU2F2ZSBwcmV2aW91cyBhdHRyaWJ1dGUgdmFsdWVzIGFuZCBzZXQgbmV3IHZh
bHVlcy4KLSAgICBjdHguc2F2ZSgpOwotICAgIGFzc2lnbkF0dHJpYnV0ZXMoc2FtcGxlQXR0cmli
dXRlczIpOwotICAgIGFzc2VydEF0dHJpYnV0ZXMoc2FtcGxlQXR0cmlidXRlczIpOwotICAgIGFz
c2VydE51bWJlck9mQ2FsbHNJbkxvZygxKTsKLQotICAgIC8vIFJlc3RvcmUgcHJldmlvdXMgYXR0
cmlidXRlIHZhbHVlcy4KLSAgICBjdHgucmVzdG9yZSgpOwotICAgIGFzc2VydEF0dHJpYnV0ZXMo
c2FtcGxlQXR0cmlidXRlczEpOwotICAgIC8vIENhbGwgbG9nIHNob3VsZCBiZSBlbXB0eSBhZnRl
ciBzYXZlKCkgYW5kIHJlc3RvcmUoKSBjYWxscy4KLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5M
b2coMCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTYXZlUmVzdG9yZVNlcXVlbmNlKCkKLXsKLSAgICBh
c3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMCk7Ci0gICAgY3R4LnJlc3RvcmUoKTsKLSAgICBjdHgu
cmVzdG9yZSgpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygwKTsKLSAgICBjdHguc2F2
ZSgpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygxKTsKLSAgICBjdHguc2F2ZSgpOwot
ICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygyKTsKLSAgICBjdHguc2F2ZSgpOwotICAgIGFz
c2VydE51bWJlck9mQ2FsbHNJbkxvZygzKTsKLSAgICBjdHgucmVzdG9yZSgpOwotICAgIGFzc2Vy
dE51bWJlck9mQ2FsbHNJbkxvZygyKTsKLSAgICBjdHgucmVzdG9yZSgpOwotICAgIGFzc2VydE51
bWJlck9mQ2FsbHNJbkxvZygxKTsKLSAgICBjdHgucmVzdG9yZSgpOwotICAgIGFzc2VydE51bWJl
ck9mQ2FsbHNJbkxvZygwKTsKLSAgICBjdHgucmVzdG9yZSgpOwotICAgIGN0eC5yZXN0b3JlKCk7
Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDApOwotfQotCi1mdW5jdGlvbiBjYWxsUGF0
aE1ldGhvZHMoKQotewotICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICBjdHgubGluZVdpZHRoID0g
MjsKLSAgICBjdHgubW92ZVRvKDExLCAxMik7Ci0gICAgY3R4LmxpbmVUbygxMTEsIDExMik7Ci0g
ICAgY3R4LnN0cm9rZSgpOwotfQotCi1mdW5jdGlvbiBjbGVhckNvbnRleHRSZXNvdXJjZUxvZygp
Ci17Ci0gICAgd2hpbGUgKGN0eFJlc291cmNlLmNhbGxzKCkubGVuZ3RoKQotICAgICAgICBjdHhS
ZXNvdXJjZS5jYWxscygpLnBvcCgpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygwKTsK
LX0KLQotZnVuY3Rpb24gdGVzdFBhdGhNZXRob2RzU2VxdWVuY2UoKQotewotICAgIGFzc2VydE51
bWJlck9mQ2FsbHNJbkxvZygwKTsKLSAgICBjYWxsUGF0aE1ldGhvZHMoKTsKLSAgICBhc3NlcnRO
dW1iZXJPZkNhbGxzSW5Mb2coMyk7IC8vIFtiZWdpblBhdGgsbW92ZVRvLGxpbmVUb10KLSAgICBj
YWxsUGF0aE1ldGhvZHMoKTsKLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMyk7IC8vIG9s
ZCBtZXRob2RzIHNob3VsZCBoYXZlIGJlZW4gY2xlYXJlZAotICAgIGNsZWFyQ29udGV4dFJlc291
cmNlTG9nKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDbGlwTWV0aG9kcygpCi17Ci0gICAgYXNzZXJ0
TnVtYmVyT2ZDYWxsc0luTG9nKDApOwotICAgIGN0eC5zYXZlKCk7Ci0gICAgY2FsbFBhdGhNZXRo
b2RzKCk7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDQpOwotICAgIGN0eC5jbGlwKCk7
Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDUpOwotICAgIGNhbGxQYXRoTWV0aG9kcygp
OwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZyg4KTsKLSAgICBjYWxsUGF0aE1ldGhvZHMo
KTsKLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coOCk7IC8vIHRoZSBsYXN0IGNhbGxzIHNo
b3VsZCBoYXZlIGJlZW4gY2xlYXJlZAotICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgYXNzZXJ0TnVt
YmVyT2ZDYWxsc0luTG9nKDUpOyAvLyBbc2F2ZSxiZWdpblBhdGgsbW92ZVRvLGxpbmVUbyxyZXN0
b3JlXQotICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2co
MSk7IC8vIFtiZWdpblBhdGhdCi0gICAgY2xlYXJDb250ZXh0UmVzb3VyY2VMb2coKTsKLX0KLQot
ZnVuY3Rpb24gdGVzdE1hdHJpeE1ldGhvZHMoKQotewotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJ
bkxvZygwKTsKLSAgICBjdHguc2F2ZSgpOwotICAgIGN0eC50cmFuc2xhdGUoMTAwLCAyMDApOwot
ICAgIGN0eC5zY2FsZSgwLjksIDAuOSk7Ci0gICAgY3R4LnJvdGF0ZSgwLjIpOwotICAgIGN0eC50
cmFuc2xhdGUoLTEwMCwgLTIwMCk7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDUpOwot
ICAgIGN0eC5zZXRUcmFuc2Zvcm0oMSwgMiwgMywgNCwgNSwgNik7Ci0gICAgY3R4LnJvdGF0ZSgw
LjMpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygzKTsgLy8gW3NhdmUsc2V0VHJhbnNm
b3JtLHJvdGF0ZV0KLSAgICBjdHgucmVzdG9yZSgpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJ
bkxvZygwKTsKLX0KLQotZnVuY3Rpb24gdGVzdE1hdHJpeE1ldGhvZHNXaXRoUGF0aE1ldGhvZHMo
KQotewotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygwKTsKLSAgICBjdHguc2F2ZSgpOwot
ICAgIGN0eC50cmFuc2xhdGUoMTAwLCAyMDApOwotICAgIGN0eC5zY2FsZSgwLjksIDAuOSk7Ci0g
ICAgY3R4LnJvdGF0ZSgwLjIpOwotICAgIGN0eC50cmFuc2xhdGUoLTEwMCwgLTIwMCk7Ci0gICAg
YXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDUpOwotICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICBj
dHgucmVjdCgxLCAxLCAxMCwgMTApOwotICAgIGN0eC50cmFuc2xhdGUoMSwgMik7Ci0gICAgYXNz
ZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDgpOwotICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgYXNzZXJ0
TnVtYmVyT2ZDYWxsc0luTG9nKDgpOyAvLyBbc2F2ZSx0cmFuc2xhdGUsc2NhbGUscm90YXRlLHRy
YW5zbGF0ZSxiZWdpblBhdGgscmVjdCxyZXN0b3JlXQotICAgIGN0eC5iZWdpblBhdGgoKTsKLSAg
ICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMSk7IC8vIFtiZWdpblBhdGhdCi0gICAgY2xlYXJD
b250ZXh0UmVzb3VyY2VMb2coKTsKLX0KLQotZnVuY3Rpb24gdGVzdE5lc3RlZFNhdmVSZXN0b3Jl
Q2FsbHMoKQotewotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygwKTsKLSAgICBjdHguc2F2
ZSgpOwotICAgIGN0eC50cmFuc2xhdGUoMTAwLCAyMDApOwotICAgIGN0eC5iZWdpblBhdGgoKTsK
LSAgICBjdHgucmVjdCgxLCAxLCAxMCwgMTApOwotICAgIGN0eC5jbGlwKCk7Ci0gICAgY3R4LnNh
dmUoKTsKLSAgICBjdHgucm90YXRlKDAuMik7Ci0gICAgY2FsbFBhdGhNZXRob2RzKCk7Ci0gICAg
YXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDEwKTsgLy8gW3NhdmUsdHJhbnNsYXRlLGJlZ2luUGF0
aCxyZWN0LGNsaXAsc2F2ZSxyb3RhdGUsYmVnaW5QYXRoLG1vdmVUbyxsaW5lVG9dCi0gICAgY3R4
LnJlc3RvcmUoKTsKLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMTEpOwotICAgIGN0eC5y
ZXN0b3JlKCk7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDkpOyAvLyBbc2F2ZSx0cmFu
c2xhdGUsc2F2ZSxyb3RhdGUsYmVnaW5QYXRoLG1vdmVUbyxsaW5lVG8scmVzdG9yZSxyZXN0b3Jl
XQotICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDkpOyAv
LyBubyBlZmZlY3QKLSAgICBjdHguc2V0VHJhbnNmb3JtKDEsIDIsIDMsIDQsIDUsIDYpOwotICAg
IGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygxMCk7IC8vIG5vdGhpbmcgdG8gcmVtb3ZlIGZyb20g
dGhlIGxvZwotICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5M
b2coMik7IC8vIFtzZXRUcmFuc2Zvcm0sYmVnaW5QYXRoXQotICAgIGNsZWFyQ29udGV4dFJlc291
cmNlTG9nKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3REZWVwTmVzdGVkU2F2ZVJlc3RvcmVDYWxscygp
Ci17Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDApOwotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTA7ICsraSkgewotICAgICAgICBjdHguc2F2ZSgpOwotICAgICAgICBjdHgudHJhbnNs
YXRlKDEsIDIpOwotICAgIH0KLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMjApOwotICAg
IGNhbGxQYXRoTWV0aG9kcygpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygyMyk7Ci0g
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgKytpKSB7Ci0gICAgICAgIGN0eC5yb3RhdGUoMSk7
Ci0gICAgICAgIGN0eC5zY2FsZSgyLCAyKTsKLSAgICAgICAgY3R4LmNsaXAoKTsKLSAgICAgICAg
Y3R4LnRyYW5zZm9ybSgzLCAzLCAzLCAzLCAzLCAzKTsKLSAgICAgICAgY3R4LnJlc3RvcmUoKTsK
LSAgICAgICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDI0ICsgaSk7Ci0gICAgfQotICAgIGFz
c2VydE51bWJlck9mQ2FsbHNJbkxvZygzMyk7Ci0gICAgY3R4LmJlZ2luUGF0aCgpOwotICAgIGFz
c2VydE51bWJlck9mQ2FsbHNJbkxvZygxKTsgLy8gbm93IGNsZWFyIHVwIHRoZSBsb2cKLSAgICBj
bGVhckNvbnRleHRSZXNvdXJjZUxvZygpOwotfQotCi1mdW5jdGlvbiBjcmVhdGVBbmRSdW5DYW52
YXMyRFByb2dyYW0oKQotewotICAgIGN0eCA9IGNyZWF0ZUNhbnZhczJEQ29udGV4dCgpOwotICAg
IGNvbnNvbGUuYXNzZXJ0KGN0eCwgIkZhaWxlZCB0byBjcmVhdGUgMkQgY29udGV4dCIpOwotCi0g
ICAgY3R4UmVzb3VyY2UgPSBjdHhbIl9fcmVzb3VyY2VPYmplY3QiXTsKLSAgICBjb25zb2xlLmFz
c2VydChjdHhSZXNvdXJjZSwgIjJEIGNvbnRleHQgaXMgbm90IHdyYXBwZWQiKTsKLQotICAgIHJh
d0N0eCA9IGN0eFJlc291cmNlLndyYXBwZWRPYmplY3QoKTsKLSAgICBjb25zb2xlLmFzc2VydChy
YXdDdHgsICJObyByYXcgMkQgY29udGV4dCBmb3VuZCIpOwotICAgIGNvbnNvbGUuYXNzZXJ0KGN0
eCAhPT0gcmF3Q3R4LCAiUHJveHkgYW5kIFJBVyBjb250ZXh0cyBzaG91bGQgbm90IGJlIHRoZSBz
YW1lIik7Ci0KLSAgICB0ZXN0RHJhd2luZ0F0dHJpYnV0ZXMoKTsKLSAgICB0ZXN0U2F2ZVJlc3Rv
cmVTZXF1ZW5jZSgpOwotICAgIHRlc3RQYXRoTWV0aG9kc1NlcXVlbmNlKCk7Ci0gICAgdGVzdENs
aXBNZXRob2RzKCk7Ci0gICAgdGVzdE1hdHJpeE1ldGhvZHMoKTsKLSAgICB0ZXN0TWF0cml4TWV0
aG9kc1dpdGhQYXRoTWV0aG9kcygpOwotICAgIHRlc3ROZXN0ZWRTYXZlUmVzdG9yZUNhbGxzKCk7
Ci0gICAgdGVzdERlZXBOZXN0ZWRTYXZlUmVzdG9yZUNhbGxzKCk7Ci0KLSAgICByZXR1cm4gIlNV
Q0NFU1MiOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmVuYWJs
ZUNhbnZhc0FnZW50KHN0ZXAxKTsKLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJjcmVhdGVBbmRSdW5DYW52YXMyRFBy
b2dyYW0oKSIsIHN0ZXAyKTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gc3RlcDIoZXJyb3IpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiXCJTVUNDRVNTXCIiLCBlcnJv
cik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMg
Q2FudmFzIDJEIGNhcHR1cmluZyBiYXNpY3MuCi08L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwNzUyIj5CdWcgMTAwNzUyPC9hPgotCi08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
Y3B1LXByb2ZpbGVyLWFnZW50LWNyYXNoLW9uLXN0YXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItYWdlbnQtY3Jhc2gtb24tc3RhcnQt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjcwNTA1Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItYWdl
bnQtY3Jhc2gtb24tc3RhcnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCww
IEBACi1UZXN0IHRoYXQgUHJvZmlsZXJBZ2VudCBzdGFydC9zdG9wIGRvZXNuJ3QgY3Jhc2guCi0K
LVByb2ZpbGVyQWdlbnQgc3RhcnRlZC4KLVByb2ZpbGVyQWdlbnQgc3RvcHBlZC4KLVByb2ZpbGVy
QWdlbnQgY2xlYXJlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL2NwdS1wcm9maWxlci1hZ2VudC1jcmFzaC1vbi1zdGFydC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1hZ2VudC1jcmFzaC1vbi1zdGFydC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYjM2MmY5Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItYWdlbnQtY3Jhc2gtb24t
c3RhcnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJ
bnNwZWN0b3Iuc2hvd1BhbmVsKCJwcm9maWxlcyIpOwotICAgIFByb2ZpbGVyQWdlbnQuc3RhcnQo
b25TdGFydCk7Ci0KLSAgICBmdW5jdGlvbiBvblN0YXJ0KCkKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJQcm9maWxlckFnZW50IHN0YXJ0ZWQuIik7Ci0gICAgICAgIFBy
b2ZpbGVyQWdlbnQuc3RvcChvblN0b3ApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uU3RvcCgp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUHJvZmlsZXJBZ2VudCBz
dG9wcGVkLiIpOwotICAgICAgICBQcm9maWxlckFnZW50LmNsZWFyUHJvZmlsZXMoZG9uZSk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gZG9uZSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiUHJvZmlsZXJBZ2VudCBjbGVhcmVkLiIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdCB0aGF0IFByb2ZpbGVyQWdlbnQgc3Rh
cnQvc3RvcCBkb2Vzbid0IGNyYXNoLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXBhcmFtZXRl
cmxlc3MtcHJvZmlsZS1lbmQtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wYXJhbWV0ZXJsZXNzLXByb2ZpbGUtZW5kLWNyYXNo
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTk3ZGNmMC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXBh
cmFtZXRlcmxlc3MtcHJvZmlsZS1lbmQtY3Jhc2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNiArMCwwIEBACi1UZXN0cyB0aGF0ICJjb25zb2xlLnByb2ZpbGVFbmQoKSIgZG8gbm90
IGNhdXNlIGNyYXNoLgotQnVnIDEwNTc1OS4KLQotUHJvZmlsZXMgY291bnQ6IDIKLVRpdGxlZCBw
cm9maWxlIGZvdW5kLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvY3B1LXByb2ZpbGVyLXBhcmFtZXRlcmxlc3MtcHJvZmlsZS1lbmQtY3Jhc2guaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcGFyYW1ldGVybGVzcy1w
cm9maWxlLWVuZC1jcmFzaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZGU2
YTFiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJv
ZmlsZXItcGFyYW1ldGVybGVzcy1wcm9maWxlLWVuZC1jcmFzaC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNDkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci0KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKLQotZnVuY3Rpb24gcGFnZUZ1bmN0aW9uKCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoKTsg
Ly8gVW50aXRsZWQKLSAgICBjb25zb2xlLnByb2ZpbGUoInRpdGxlZCIpOwotICAgIGNvbnNvbGUu
cHJvZmlsZUVuZCgpOwotICAgIGNvbnNvbGUucHJvZmlsZUVuZCgpOwotfQotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIHBhZ2VGdW5jdGlvbigpOwotICAgIHByaW50UmVzdWx0KCk7Ci0g
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKLX0KLQotZnVuY3Rpb24gcHJpbnRSZXN1bHQoKQotewotICAgIHZhciBwcmVFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7Ci0gICAgcHJlRWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXG4iKSk7Ci0KLSAgICB2YXIgcHJvZmlsZXMgPSBj
b25zb2xlLnByb2ZpbGVzOwotICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoIlByb2ZpbGVzIGNvdW50OiAiICsgcHJvZmlsZXMubGVuZ3RoICsgIlxuIikp
OwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZmlsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgaWYgKHByb2ZpbGVzW2ldLnRpdGxlID09PSAidGl0bGVkIikKLSAgICAgICAgICAgIHByZUVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRpdGxlZCBwcm9maWxl
IGZvdW5kLlxuIikpOwotICAgIH0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0
IikuYXBwZW5kQ2hpbGQocHJlRWxlbWVudCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgImNvbnNvbGUucHJvZmls
ZUVuZCgpIiBkbyBub3QgY2F1c2UgY3Jhc2guPGJyPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTc1OSI+QnVnIDEwNTc1OS48L2E+PGJyPgotPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsZS1yZW1v
dmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJv
ZmlsZXItcHJvZmlsZS1yZW1vdmFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzM0ZmUxYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGUtcmVtb3ZhbC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw3ICswLDAgQEAKLVRlc3RzIHRoYXQgQ1BVIHByb2ZpbGUgcmVtb3ZhbCBmcm9t
IGEgZ3JvdXAgd29ya3MuIEJ1ZyAxMTA0NjYKLQotUHJvZmlsZXIgd2FzIGVuYWJsZWQuCi1Qcm9m
aWxlIGdyb3VwcyBhZnRlciByZW1vdmFsOgotCi1Qcm9maWxlciB3YXMgZGlzYWJsZWQuCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJv
ZmlsZS1yZW1vdmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXBy
b2ZpbGVyLXByb2ZpbGUtcmVtb3ZhbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzOWQ0NDAwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9j
cHUtcHJvZmlsZXItcHJvZmlsZS1yZW1vdmFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0icHJv
ZmlsZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBwYWdlRnVuY3Rp
b24oKSB7Ci0gICAgY29uc29sZS5wcm9maWxlKCJwMSIpOwotICAgIGNvbnNvbGUucHJvZmlsZUVu
ZCgicDEiKTsKLSAgICBjb25zb2xlLnByb2ZpbGUoInAxIik7Ci0gICAgY29uc29sZS5wcm9maWxl
RW5kKCJwMSIpOwotICAgIGNvbnNvbGUucHJvZmlsZSgicDIiKTsKLSAgICBjb25zb2xlLnByb2Zp
bGVFbmQoInAyIik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3Qu
c3RhcnRQcm9maWxlclRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGZ1bmN0aW9uIHZpZXdMb2Fk
ZWQodmlldykgewotICAgICAgICAgICAgdmFyIHByb2ZpbGVzID0gV2ViSW5zcGVjdG9yLnBhbmVs
cy5wcm9maWxlczsKLSAgICAgICAgICAgIHZhciB0eXBlID0gcHJvZmlsZXMuZ2V0UHJvZmlsZVR5
cGUoIkNQVSIpOwotICAgICAgICAgICAgd2hpbGUgKHR5cGUuZ2V0UHJvZmlsZXMoKS5sZW5ndGgg
IT09IDApCi0gICAgICAgICAgICAgICAgcHJvZmlsZXMuX3JlbW92ZVByb2ZpbGVIZWFkZXIodHlw
ZS5nZXRQcm9maWxlcygpWzBdKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJQcm9maWxlIGdyb3VwcyBhZnRlciByZW1vdmFsOiIpOwotICAgICAgICAgICAgZm9yICh2YXIg
a2V5IGluIHByb2ZpbGVzLl9wcm9maWxlR3JvdXBzKQotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KGtleSArICI6ICIgKyBwcm9maWxlcy5fcHJvZmlsZUdyb3Vwc1trZXld
Lmxlbmd0aCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygwLCB0eXBl
LnRyZWVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCwgIkFsbCBjaGlsZHJlbiBoYXMgYmVlbiByZW1v
dmVkIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlUHJvZmlsZXJUZXN0KCk7
Ci0gICAgICAgIH0KLSAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicHJvZmlsZXMiKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgicGFnZUZ1bmN0aW9uKCki
LCBmdW5jdGlvbigpIHt9KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93UHJvZmlsZVdoZW5B
ZGRlZCgicDIiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQcm9maWxlVmlld0lz
U2hvd24oInAyIiwgdmlld0xvYWRlZCk7Ci0gICAgfSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IENQVSBwcm9maWxl
IHJlbW92YWwgZnJvbSBhIGdyb3VwIHdvcmtzLgotCi08YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNDY2Ij5CdWcgMTEwNDY2PC9hPgotPC9wPgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2NwdS1wcm9maWxlci1wcm9maWxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDkxMmVlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotVGVzdHMgdGhhdCBDUFUgcHJvZmlsaW5nIHdv
cmtzLiBCdWcgNTI2MzQuCi0KLVByb2ZpbGVyIHdhcyBlbmFibGVkLgotCi1SdW5uaW5nOiB0ZXN0
UHJvZmlsaW5nCi1mb3VuZCBwYWdlRnVuY3Rpb24KLQotUHJvZmlsZXIgd2FzIGRpc2FibGVkLgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVy
LXByb2ZpbGluZy13aXRob3V0LWluc3BlY3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy13aXRob3V0LWluc3BlY3Rv
ci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzZWY3NDAuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1w
cm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3ItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNiArMCwwIEBACi1UZXN0cyB0aGF0IENQVSBwcm9maWxpbmcgd29ya3MuCi1Eb2Vzbid0IG9w
ZW4gSW5zcGVjdG9yLCB1c2VzIGNvbnNvbGUucHJvZmlsZS4uLi4KLQotCi1Gb3VuZCBwYWdlRnVu
Y3Rpb24KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1w
cm9maWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5zcGVjdG9y
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyZTNhOTkuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmct
d2l0aG91dC1pbnNwZWN0b3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotCi1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5h
bHMuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHBhZ2VG
dW5jdGlvbigpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJvdXRlciIpOwotICAgIGNvbnNvbGUu
cHJvZmlsZSgiaW5uZXIiKTsgIC8vIFtDaHJvbWl1bV0gTWFrZSBzdXJlIHdlIGNhcHR1cmUgdGhl
IGN1cnJlbnQgY2FsbHN0YWNrLgotICAgIGNvbnNvbGUucHJvZmlsZUVuZCgib3V0ZXIiKTsKLSAg
ICBjb25zb2xlLnByb2ZpbGVFbmQoImlubmVyIik7Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgp
Ci17Ci0gICAgcGFnZUZ1bmN0aW9uKCk7Ci0gICAgcHJpbnRSZXN1bHQoKTsKLSAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQotCi1m
dW5jdGlvbiBwcmludFJlc3VsdCgpCi17Ci0gICAgdmFyIHByZUVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJwcmUiKTsKLSAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKLQotICAgIHZhciBwcm9maWxlcyA9IGNvbnNvbGUucHJv
ZmlsZXM7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9maWxlcy5sZW5ndGg7ICsraSkgewot
ICAgICAgICB2YXIgcHJvZmlsZSA9IHByb2ZpbGVzW2ldOwotICAgICAgICBpZiAocHJvZmlsZS50
aXRsZSAhPT0gImlubmVyIikKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB2YXIgZnVu
Y3Rpb25OYW1lID0gInBhZ2VGdW5jdGlvbiI7Ci0gICAgICAgIGlmIChmaW5kRnVuY3Rpb25JblBy
b2ZpbGUocHJvZmlsZS5oZWFkLCBmdW5jdGlvbk5hbWUpKQotICAgICAgICAgICAgcHJlRWxlbWVu
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiRm91bmQgIiArIGZ1bmN0aW9u
TmFtZSkpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiEhISBOb3QgZm91bmQgIiArIGZ1bmN0aW9uTmFt
ZSkpOwotICAgICAgICAgICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgiXG5cbiIpKTsKLSAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGlt
ZShwcmVFbGVtZW50LCBwcm9maWxlLmhlYWQsICIiKTsKLSAgICAgICAgfQotICAgICAgICBwcmVF
bGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKLSAgICB9
Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hpbGQocHJl
RWxlbWVudCk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZShwcmVF
bGVtZW50LCBub2RlLCBzcGFjZSkKLXsKLSAgICBpZiAoIW5vZGUudmlzaWJsZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgdmFyIGxpbmUgPSBzcGFjZSArIG5vZGUuZnVuY3Rpb25OYW1lICsgIiAo
bGluZSAiICsgbm9kZS5saW5lTnVtYmVyICsgIilcbiI7Ci0gICAgcHJlRWxlbWVudC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShsaW5lKSk7Ci0KLSAgICB2YXIgY2hpbGRyZW4g
PSBub2RlLmNoaWxkcmVuKCk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5n
dGg7ICsraSkKLSAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lKHByZUVsZW1lbnQs
IGNoaWxkcmVuW2ldLCBzcGFjZSArICIgICAiKTsKLX0KLQotZnVuY3Rpb24gZmluZEZ1bmN0aW9u
SW5Qcm9maWxlKG5vZGUsIGZ1bmN0aW9uTmFtZSkKLXsKLSAgICBpZiAobm9kZS5mdW5jdGlvbk5h
bWUgPT09IGZ1bmN0aW9uTmFtZSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgdmFyIGNoaWxk
cmVuID0gbm9kZS5jaGlsZHJlbigpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4u
bGVuZ3RoOyArK2kpCi0gICAgICAgIGlmIChmaW5kRnVuY3Rpb25JblByb2ZpbGUoY2hpbGRyZW5b
aV0sIGZ1bmN0aW9uTmFtZSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzdGFydFRlc3Qo
KSI+Ci08cD4KLVRlc3RzIHRoYXQgQ1BVIHByb2ZpbGluZyB3b3Jrcy48YnI+Ci1Eb2Vzbid0IG9w
ZW4gSW5zcGVjdG9yLCB1c2VzIDxiPmNvbnNvbGUucHJvZmlsZS4uLjwvYj4uCi0KLTxkaXYgaWQ9
Im91dHB1dCI+PC9kaXY+Ci08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmcuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTYzMDUxNi4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLSAgPHNjcmlwdCBzcmM9InByb2ZpbGVyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLQotZnVuY3Rpb24gcGFnZUZ1bmN0aW9uKCkgewotICAgIGNvbnNvbGUucHJvZmlsZSgib3V0
ZXIiKTsKLSAgICBjb25zb2xlLnByb2ZpbGUoImlubmVyIik7ICAvLyBbQ2hyb21pdW1dIE1ha2Ug
c3VyZSB3ZSBjYXB0dXJlIHRoZSBjdXJyZW50IGNhbGxzdGFjay4KLSAgICBjb25zb2xlLnByb2Zp
bGVFbmQoIm91dGVyIik7Ci0gICAgY29uc29sZS5wcm9maWxlRW5kKCJpbm5lciIpOwotfQotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnJ1blByb2ZpbGVyVGVzdFN1aXRl
KFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFByb2ZpbGluZyhuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICBmdW5jdGlvbiBmaW5kUGFnZUZ1bmN0aW9uSW5Qcm9maWxlVmlldyh2aWV3KQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciB0cmVlID0gdmlldy5wcm9maWxlRGF0YUdy
aWRUcmVlOwotICAgICAgICAgICAgICAgIGlmICghdHJlZSkKLSAgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJubyB0cmVlIik7Ci0gICAgICAgICAgICAgICAgdmFy
IG5vZGUgPSB0cmVlLmNoaWxkcmVuWzBdOwotICAgICAgICAgICAgICAgIGlmICghbm9kZSkKLSAg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJubyBub2RlIik7Ci0g
ICAgICAgICAgICAgICAgd2hpbGUgKG5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG5v
ZGUuZnVuY3Rpb25OYW1lLmluZGV4T2YoInBhZ2VGdW5jdGlvbiIpICE9PSAtMSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImZvdW5kIHBhZ2VGdW5j
dGlvbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUudHJhdmVyc2VOZXh0Tm9kZSh0
cnVlLCBudWxsLCB0cnVlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbmV4
dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93UHJvZmls
ZVdoZW5BZGRlZCgiaW5uZXIiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGls
UHJvZmlsZVZpZXdJc1Nob3duKCJpbm5lciIsIGZpbmRQYWdlRnVuY3Rpb25JblByb2ZpbGVWaWV3
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoInBhZ2VGdW5j
dGlvbigpIiwgZnVuY3Rpb24gZG9uZSgpIHt9KTsKLSAgICAgICAgfQotICAgIF0pOwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMg
dGhhdCBDUFUgcHJvZmlsaW5nIHdvcmtzLgotCi08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI2MzQiPkJ1ZyA1MjYzNC48L2E+Ci08L3A+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC1jb21wYXJpc29uLWRvbS1ncm91cHMtY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tZG9t
LWdyb3Vwcy1jaGFuZ2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjNjkwZThhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9o
ZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tZG9tLWdyb3Vwcy1jaGFuZ2UtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgdGhhdCBDb21wYXJpc29uIHZpZXcg
b2YgaGVhcCBzbmFwc2hvdHMgd2lsbCBjb250YWluIGFkZGVkIG5vZGVzIGV2ZW4gaWYgdGhlaXIg
aWRzIGFyZSBsZXNzIHRoYW4gdGhlIG1heGltdW1tIEpTIG9iamVjdCBpZCBpbiB0aGUgYmFzZSBz
bmFwc2hvdC4KLQotUHJvZmlsZXIgd2FzIGVuYWJsZWQuCi1EZXRhaWxlZCBoZWFwIHByb2ZpbGVz
IHdlcmUgZW5hYmxlZC4KLQotUnVubmluZzogdGVzdFNob3dBbGwKLURlbHRhOiArNCAtMQotRGVs
ZXRlZCBub2RlIGlkKHMpOiA0MAotQWRkZWQgbm9kZSBpZChzKTogMTUsMjUsMzUsNQotCi1Qcm9m
aWxlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tZG9tLWdyb3Vwcy1jaGFuZ2UuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24t
ZG9tLWdyb3Vwcy1jaGFuZ2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc2
YmE2Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1jb21wYXJpc29uLWRvbS1ncm91cHMtY2hhbmdlLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlw
dCBzcmM9ImhlYXAtc25hcHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3RBKCkKLSAgICB7
Ci0gICAgICAgIC8vIFJlcHJlc2VudHMgdGhlIGZvbGxvd2luZyBncmFwaDoKLSAgICAgICAgLy8g
IHJvb3QgLSAwIC0+IDxjbGFzcyA9IEEsIGlkID0gMTA+Ci0gICAgICAgIC8vICByb290IC0gMSAt
PiA8Y2xhc3MgPSBBLCBpZCA9IDIwPgotICAgICAgICAvLyAgcm9vdCAtIDIgLT4gPGNsYXNzID0g
QSwgaWQgPSAzMD4KLSAgICAgICAgLy8KLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIHNu
YXBzaG90OiB7Ci0gICAgICAgICAgICAgICAgbWV0YTogewotICAgICAgICAgICAgICAgICAgICBu
b2RlX2ZpZWxkczogWyJ0eXBlIiwgIm5hbWUiLCAiaWQiLCAic2VsZl9zaXplIiwgInJldGFpbmVk
X3NpemUiLCAiZG9taW5hdG9yIiwgImVkZ2VfY291bnQiXSwKLSAgICAgICAgICAgICAgICAgICAg
bm9kZV90eXBlczogW1siaGlkZGVuIiwgIm9iamVjdCIsICJuYXRpdmUiXSwgIiIsICIiLCAiIiwg
IiIsICIiLCAiIl0sCi0gICAgICAgICAgICAgICAgICAgIGVkZ2VfZmllbGRzOiBbInR5cGUiLCAi
bmFtZV9vcl9pbmRleCIsICJ0b19ub2RlIl0sCi0gICAgICAgICAgICAgICAgICAgIGVkZ2VfdHlw
ZXM6IFtbInNob3J0Y3V0Il0sICIiLCAiIl0KLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgIG5vZGVfY291bnQ6IDQsCi0gICAgICAgICAgICAgICAgZWRnZV9jb3VudDogM30sCi0g
ICAgICAgICAgICBub2RlczogWwotICAgICAgICAgICAgICAgIDAsIDAsICAxLCAwLCAyMSwgMCwg
MywKLSAgICAgICAgICAgICAgICAyLCAxLCAyMCwgNywgIDcsIDAsIDAsCi0gICAgICAgICAgICAg
ICAgMiwgMSwgMzAsIDcsICA3LCAwLCAwLAotICAgICAgICAgICAgICAgIDIsIDEsIDQwLCA3LCAg
NywgMCwgMF0sCi0gICAgICAgICAgICBlZGdlczogWwotICAgICAgICAgICAgICAgIDAsIDAsIDcs
Ci0gICAgICAgICAgICAgICAgMCwgMSwgMTQsCi0gICAgICAgICAgICAgICAgMCwgMiwgMjFdLAot
ICAgICAgICAgICAgc3RyaW5nczogWyIiLCAiQSJdCi0gICAgICAgIH07Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90QigpCi0gICAgewotICAgICAgICAvLyBSZXByZXNl
bnRzIHRoZSBmb2xsb3dpbmcgZ3JhcGg6Ci0gICAgICAgIC8vICBjb21wYXJlZCB0byBzbmFzcGhv
dCBBIG5vZGUgMTAgd2FzIGRlbGV0ZWQsIG5vZGVzIDUsIDE1LCAyNSwgMzUgd2VyZSBhZGRlZAot
ICAgICAgICAvLwotICAgICAgICAvLyAgcm9vdCAtIDEgLT4gPGNsYXNzID0gQSwgaWQgPSAyMD4K
LSAgICAgICAgLy8gIHJvb3QgLSAyIC0+IDxjbGFzcyA9IEEsIGlkID0gMzA+Ci0gICAgICAgIC8v
ICByb290IC0gMyAtPiA8Y2xhc3MgPSBBLCBpZCA9IDU+Ci0gICAgICAgIC8vICByb290IC0gNCAt
PiA8Y2xhc3MgPSBBLCBpZCA9IDE1PgotICAgICAgICAvLyAgcm9vdCAtIDUgLT4gPGNsYXNzID0g
QSwgaWQgPSAyNT4KLSAgICAgICAgLy8gIHJvb3QgLSA2IC0+IDxjbGFzcyA9IEEsIGlkID0gMzU+
Ci0gICAgICAgIC8vCi0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICBzbmFwc2hvdDogewot
ICAgICAgICAgICAgICAgIG1ldGE6IHsKLSAgICAgICAgICAgICAgICAgICAgbm9kZV9maWVsZHM6
IFsidHlwZSIsICJuYW1lIiwgImlkIiwgInNlbGZfc2l6ZSIsICJyZXRhaW5lZF9zaXplIiwgImRv
bWluYXRvciIsICJlZGdlX2NvdW50Il0sCi0gICAgICAgICAgICAgICAgICAgIG5vZGVfdHlwZXM6
IFtbImhpZGRlbiIsICJvYmplY3QiLCAibmF0aXZlIl0sICIiLCAiIiwgIiIsICIiLCAiIiwgIiJd
LAotICAgICAgICAgICAgICAgICAgICBlZGdlX2ZpZWxkczogWyJ0eXBlIiwgIm5hbWVfb3JfaW5k
ZXgiLCAidG9fbm9kZSJdLAotICAgICAgICAgICAgICAgICAgICBlZGdlX3R5cGVzOiBbWyJzaG9y
dGN1dCJdLCAiIiwgIiJdCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBub2Rl
X2NvdW50OiA3LAotICAgICAgICAgICAgICAgIGVkZ2VfY291bnQ6IDZ9LAotICAgICAgICAgICAg
bm9kZXM6IFsKLSAgICAgICAgICAgICAgICAwLCAwLCAgMSwgMCwgNDIsIDAsICA2LAotICAgICAg
ICAgICAgICAgIDIsIDEsIDIwLCA3LCAgNywgMCwgMCwKLSAgICAgICAgICAgICAgICAyLCAxLCAz
MCwgNywgIDcsIDAsIDAsCi0gICAgICAgICAgICAgICAgMiwgMSwgIDUsIDcsICA3LCAwLCAwLAot
ICAgICAgICAgICAgICAgIDIsIDEsIDE1LCA3LCAgNywgMCwgMCwKLSAgICAgICAgICAgICAgICAy
LCAxLCAyNSwgNywgIDcsIDAsIDAsCi0gICAgICAgICAgICAgICAgMiwgMSwgMzUsIDcsICA3LCAw
LCAwXSwKLSAgICAgICAgICAgIGVkZ2VzOiBbCi0gICAgICAgICAgICAgICAgMCwgMSwgIDcsCi0g
ICAgICAgICAgICAgICAgMCwgMiwgMTQsCi0gICAgICAgICAgICAgICAgMCwgMywgMjEsCi0gICAg
ICAgICAgICAgICAgMCwgNCwgMjgsCi0gICAgICAgICAgICAgICAgMCwgNSwgMzUsCi0gICAgICAg
ICAgICAgICAgMCwgNiwgNDJdLAotICAgICAgICAgICAgc3RyaW5nczogWyIiLCAiQSJdCi0gICAg
ICAgIH07Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RUZXN0U3Vp
dGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U2hvd0FsbChuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICAvLyBNYWtlIHN1cmUgYWxsIG5vZGVzIGFyZSB2aXNpYmxlLgotICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERpZmZEYXRhR3JpZC5wcm90b3R5cGUuZGVmYXVsdFBv
cHVsYXRlQ291bnQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDEwMDsgfTsKLQotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdEEsIGNy
ZWF0ZVNuYXBzaG90Qik7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVTbmFwc2hvdEIoKSB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0
ZUhlYXBTbmFwc2hvdEIsIHN0ZXAxKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3Quc3dpdGNoVG9WaWV3KCJDb21wYXJpc29uIiwgc3RlcDIpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgdmFyIHJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0IiwgIkEiKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywgIlwiQVwi
IHJvdyIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kUm93KHJvdywgc3Rl
cDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMyhyb3cpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkRl
bHRhOiArIiArIHJvdy5fYWRkZWRDb3VudCArICIgLSIgKyByb3cuX3JlbW92ZWRDb3VudCk7Ci0g
ICAgICAgICAgICAgICAgdmFyIGFkZGVkID0gW107Ci0gICAgICAgICAgICAgICAgdmFyIHJlbW92
ZWQgPSBbXTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvdy5jaGlsZHJl
bi5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGQgPSByb3cuY2hp
bGRyZW5baV07Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5faXNEZWxldGVkTm9kZSkK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZWQucHVzaChjaGlsZC5zbmFwc2hvdE5vZGVJ
ZCk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGFk
ZGVkLnB1c2goY2hpbGQuc25hcHNob3ROb2RlSWQpOwotICAgICAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEZWxldGVkIG5vZGUgaWQocyk6
ICIgKyByZW1vdmVkLnNvcnQoKSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIkFkZGVkIG5vZGUgaWQocyk6ICIgKyBhZGRlZC5zb3J0KCkpOwotICAgICAgICAgICAg
ICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhh
dCBDb21wYXJpc29uIHZpZXcgb2YgaGVhcCBzbmFwc2hvdHMgd2lsbCBjb250YWluIGFkZGVkIG5v
ZGVzIGV2ZW4gaWYKLXRoZWlyIGlkcyBhcmUgbGVzcyB0aGFuIHRoZSBtYXhpbXVtbSBKUyBvYmpl
Y3QgaWQgaW4gdGhlIGJhc2Ugc25hcHNob3QuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21w
YXJpc29uLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tZXhw
YW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyN2UyMDc2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tZXhwYW5zaW9uLXByZXNlcnZl
ZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBA
Ci1UZXN0cyBDb21wYXJpc29uIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuIEV4cGFu
ZGVkIG5vZGVzIG11c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcuCi0KLUhlYXAgcHJvZmls
ZXIgaXMgZGlzYWJsZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29y
dGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qt
Y29tcGFyaXNvbi1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNmQ4OGNhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tZXhwYW5zaW9uLXBy
ZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyMyArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1zbmFw
c2hvdC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjQ7Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBz
aG90QSgpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25h
cHNob3QoaW5zdGFuY2VDb3VudCwgNSk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBT
bmFwc2hvdEIoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuY3JlYXRlSGVh
cFNuYXBzaG90KGluc3RhbmNlQ291bnQgKyAxLCA1ICsgaW5zdGFuY2VDb3VudCk7Ci0gICAgfQot
Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RUZXN0U3VpdGUoWwotICAgICAgICBm
dW5jdGlvbiB0ZXN0RXhwYW5zaW9uUHJlc2VydmVkV2hlblNvcnRpbmcobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhl
YXBTbmFwc2hvdEEsIGNyZWF0ZVNuYXBzaG90Qik7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjcmVh
dGVTbmFwc2hvdEIoKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3Bl
blNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdEIsIHN0ZXAxKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3Quc3dpdGNoVG9WaWV3KCJDb21wYXJpc29uIiwgc3RlcDIpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgdmFyIHJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0
IiwgIkIiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVl
LCAhIXJvdywgIlwiQlwiIHJvdyIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
YW5kUm93KHJvdywgZXhwYW5kQik7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24gZXhwYW5kQigp
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUg
PSBJbnNwZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOwotICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAibm8gYnV0
dG9ucyBub2RlIGZvdW5kISIpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNs
aWNrU2hvd01vcmVCdXR0b24oInNob3dBbGwiLCBidXR0b25zTm9kZSwgc3RlcDQpOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIGNvbHVtbnM7Ci0g
ICAgICAgICAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgY29sdW1ucyA9IEluc3BlY3RvclRlc3Qudmlld0NvbHVtbnMoKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0sIHN0ZXA1KTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDUoKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsICJC
Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFy
b3csICJcIkJcIiByb3ciKTsKLSAgICAgICAgICAgICAgICB2YXIgYkluc3RhbmNlUm93ID0gcm93
LmNoaWxkcmVuWzBdOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KHRydWUsICEhYkluc3RhbmNlUm93LCAiXCJCXCIgaW5zdGFuY2Ugcm93Iik7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3coYkluc3RhbmNlUm93LCBleHBhbmRBKTsKLSAg
ICAgICAgICAgICAgICBmdW5jdGlvbiBleHBhbmRBKHJvdykKLSAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHByb3BlcnR5TWF0Y2hlcihkYXRhKQotICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5uYW1l
ID09PSAiYSIgJiYgZGF0YS52YWx1ZS5jaGFyQXQoMCkgPT09ICJBIjsKLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICB2YXIgYVJvdyA9IEluc3BlY3RvclRlc3QuZmlu
ZFJvdygib2JqZWN0IiwgcHJvcGVydHlNYXRjaGVyLCByb3cpOwotICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWFSb3csICJcImE6IEFcIiByb3ci
KTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3coYVJvdywgc3Rl
cDYpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDYoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciByb3cgPSBJ
bnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsICJCIik7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3csICJcIkJcIiByb3ciKTsKLSAgICAg
ICAgICAgICAgICBmdW5jdGlvbiBkZWxldGVkTm9kZU1hdGNoZXIoZGF0YSkKLSAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLnJlbW92ZWRDb3VudCAmJiBk
YXRhLm9iamVjdC52YWx1ZS5jaGFyQXQoMCkgPT09ICJCIjsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgdmFyIGJJbnN0YW5jZVJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdzIo
ZGVsZXRlZE5vZGVNYXRjaGVyLCByb3cpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0RXF1YWxzKHRydWUsICEhYkluc3RhbmNlUm93LCAiXCJCXCIgaW5zdGFuY2Ugcm93Iik7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3coYkluc3RhbmNlUm93LCBl
eHBhbmRBKTsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbiBleHBhbmRBKHJvdykKLSAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHByb3BlcnR5TWF0Y2hlcihk
YXRhKQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZGF0YS5uYW1lID09PSAiYSIgJiYgZGF0YS52YWx1ZS5jaGFyQXQoMCkgPT09ICJBIjsKLSAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB2YXIgYVJvdyA9IEluc3Bl
Y3RvclRlc3QuZmluZFJvdygib2JqZWN0IiwgcHJvcGVydHlNYXRjaGVyLCByb3cpOwotICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWFSb3csICJc
ImE6IEFcIiByb3ciKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRS
b3coYVJvdywgc3RlcDcpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgdmFyIGNvbHVtbkNvbnRlbnRzOwotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDco
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbHVtbkNvbnRlbnRzID0gSW5zcGVj
dG9yVGVzdC5jb2x1bW5Db250ZW50cyhjb2x1bW5zWzBdKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0sIGNsaWNrVHdpY2UpOwotICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uIGNsaWNrVHdpY2UoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwOCk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlv
biBzdGVwOCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIG5ld0NvbHVtbkNv
bnRlbnRzID0gSW5zcGVjdG9yVGVzdC5jb2x1bW5Db250ZW50cyhjb2x1bW5zWzBdKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydENvbHVtbkNvbnRlbnRzRXF1YWwoY29sdW1u
Q29udGVudHMsIG5ld0NvbHVtbkNvbnRlbnRzKTsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0
KG5leHQsIDApOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBDb21w
YXJpc29uIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi1FeHBhbmRlZCBub2RlcyBt
dXN0IGJlIHByZXNlcnZlZCBhZnRlciBzb3J0aW5nLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qt
Y29tcGFyaXNvbi1zaG93LWFsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLXNob3ctYWxsLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGFkZGZjNS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLXNob3ct
YWxsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgQ29t
cGFyaXNvbiB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBUaGUgIlNob3cgQWxsIiBi
dXR0b24gbXVzdCBzaG93IGFsbCBub2Rlcy4KLQotSGVhcCBwcm9maWxlciBpcyBkaXNhYmxlZAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hv
dC1jb21wYXJpc29uLXNob3ctYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLXNob3ctYWxsLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDgwNTU0ZGQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zaG93LWFsbC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LSAgPHNjcmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDI0OwotICAg
IHZhciBmaXJzdElkID0gMTAwOwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdEEoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90KGlu
c3RhbmNlQ291bnQsIGZpcnN0SWQpOwotICAgIH0KLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25h
cHNob3RCKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBT
bmFwc2hvdChpbnN0YW5jZUNvdW50ICsgMSwgZmlyc3RJZCArIGluc3RhbmNlQ291bnQgKiAyKTsK
LSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShbCi0g
ICAgICAgIGZ1bmN0aW9uIHRlc3RTaG93QWxsKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVIZWFwU25hcHNob3RBLCBj
cmVhdGVTbmFwc2hvdEIpOwotICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlU25hcHNob3RCKCkg
ewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdChjcmVh
dGVIZWFwU25hcHNob3RCLCBzdGVwMSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1
bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnN3aXRjaFRvVmlldygiQ29tcGFyaXNvbiIsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsICJBIik7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3csICJcIkFc
IiByb3ciKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFJvdyhyb3csIHN0
ZXAzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIGNvdW50QTsKLSAgICAgICAg
ICAgIHZhciBjb3VudEI7Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMyhyb3cpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgY291bnRBID0gcm93Ll9hZGRlZENvdW50OwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIGNvdW50QSA+IDAsICJj
b3VudEEgPiAwIik7Ci0gICAgICAgICAgICAgICAgY291bnRCID0gcm93Ll9yZW1vdmVkQ291bnQ7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgY291bnRC
ID4gMCwgImNvdW50QiA+IDAiKTsKLQotICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9
IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgImJ1dHRvbnMgbm9k
ZSAoYWRkZWQpIik7Ci0gICAgICAgICAgICAgICAgdmFyIHdvcmRzID0gYnV0dG9uc05vZGUuc2hv
d0FsbC50ZXh0Q29udGVudC5zcGxpdCgiICIpOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgd29yZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIG1h
eWJlTnVtYmVyID0gcGFyc2VJbnQod29yZHNbaV0sIDEwKTsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKCFpc05hTihtYXliZU51bWJlcikpCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEVxdWFscyhjb3VudEEgKyBjb3VudEIgLSByb3cuX2RhdGFHcmlkLmRlZmF1
bHRQb3B1bGF0ZUNvdW50KCksIG1heWJlTnVtYmVyLCBidXR0b25zTm9kZS5zaG93QWxsLnRleHRD
b250ZW50KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jbGlja1Nob3dNb3JlQnV0dG9uKCJzaG93QWxsIiwgYnV0dG9uc05vZGUsIHN0ZXA0KTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDQocm93KQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIHZhciByb3dzU2hvd24gPSBJbnNwZWN0b3JUZXN0LmNvdW50
RGF0YVJvd3Mocm93LCBmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLmRhdGEuYWRkZWRDb3Vu
dDsgfSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoY291bnRB
LCByb3dzU2hvd24sICJhZnRlciBzaG93QWxsIGNsaWNrIDEiKTsKLQotICAgICAgICAgICAgICAg
IGNvdW50QiA9IHJvdy5fcmVtb3ZlZENvdW50OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0RXF1YWxzKHRydWUsIGNvdW50QiA+IDAsICJjb3VudEIgPiAwIik7Ci0gICAgICAg
ICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUo
cm93KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhmYWxzZSwg
ISFidXR0b25zTm9kZSwgImJ1dHRvbnMgbm9kZSAoZGVsZXRlZCkiKTsKLQotICAgICAgICAgICAg
ICAgIHZhciBkZWxldGVkUm93c1Nob3duID0gSW5zcGVjdG9yVGVzdC5jb3VudERhdGFSb3dzKHJv
dywgZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5kYXRhLnJlbW92ZWRDb3VudDsgfSk7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoY291bnRCLCBkZWxldGVk
Um93c1Nob3duLCAiZGVsZXRlZCByb3dzIHNob3duIik7Ci0gICAgICAgICAgICAgICAgc2V0VGlt
ZW91dChuZXh0LCAwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMg
Q29tcGFyaXNvbiB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgotVGhlICZxdW90O1No
b3cgQWxsJnF1b3Q7IGJ1dHRvbiBtdXN0IHNob3cgYWxsIG5vZGVzLgotPC9wPgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtY29tcGFyaXNvbi1zaG93LW5leHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zaG93LW5leHQtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTdlMWFiLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBh
cmlzb24tc2hvdy1uZXh0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBA
QAotVGVzdHMgQ29tcGFyaXNvbiB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBSZXBl
YXRlZCBjbGlja3Mgb24gIlNob3cgTmV4dCIgYnV0dG9uIG11c3Qgc2hvdyBhbGwgbm9kZXMuCi0K
LUhlYXAgcHJvZmlsZXIgaXMgZGlzYWJsZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zaG93LW5leHQuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24t
c2hvdy1uZXh0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViMTY0ZTEuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qt
Y29tcGFyaXNvbi1zaG93LW5leHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSJoZWFwLXNuYXBz
aG90LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgdmFyIGluc3RhbmNlQ291bnQgPSAyNDsKLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNo
b3RBKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFw
c2hvdChpbnN0YW5jZUNvdW50LCA1KTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNu
YXBzaG90QigpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFw
U25hcHNob3QoaW5zdGFuY2VDb3VudCArIDEsIDUgKyBpbnN0YW5jZUNvdW50KTsKLSAgICB9Ci0K
LSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShbCi0gICAgICAgIGZ1
bmN0aW9uIHRlc3RTaG93TmV4dChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNuYXBzaG90QSwgY3JlYXRlU25h
cHNob3RCKTsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVNuYXBzaG90QigpIHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNu
YXBzaG90Qiwgc3RlcDEpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBz
dGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0
Y2hUb1ZpZXcoIkNvbXBhcmlzb24iLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIg
cm93ID0gSW5zcGVjdG9yVGVzdC5maW5kUm93KCJvYmplY3QiLCAiQSIpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhcm93LCAiXCJBXCIgcm93Iik7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3cocm93LCBzdGVwMyk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKHJvdykKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgZXhwZWN0ZWRSb3dDb3VudEEgPSBwYXJzZUludChy
b3cuZGF0YVsiYWRkZWRDb3VudCJdKTsKLSAgICAgICAgICAgICAgICB2YXIgcm93c1Nob3duID0g
SW5zcGVjdG9yVGVzdC5jb3VudERhdGFSb3dzKHJvdywgZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5kYXRhLmFkZGVkQ291bnQ7IH0pOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0RXF1YWxzKHRydWUsIHJvd3NTaG93biA8PSBleHBlY3RlZFJvd0NvdW50QSwgInNob3du
IG1vcmUgaW5zdGFuY2VzIHRoYW4gY3JlYXRlZDogIiArIHJvd3NTaG93biArICIgPiAiICsgZXhw
ZWN0ZWRSb3dDb3VudEEpOwotICAgICAgICAgICAgICAgIGlmIChyb3dzU2hvd24gPCBleHBlY3Rl
ZFJvd0NvdW50QSkgewotICAgICAgICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUgPSBJbnNw
ZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOwotICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBub2Rl
Iik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93TW9yZUJ1dHRv
bigic2hvd05leHQiLCBidXR0b25zTm9kZSwgc3RlcDMpOwotICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAocm93c1Nob3duID09PSBleHBlY3RlZFJvd0NvdW50QSkKLSAgICAgICAgICAgICAgICAg
ICAgc2V0VGltZW91dChzdGVwNC5iaW5kKG51bGwsIHJvdyksIDApOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNChyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgdmFyIGV4cGVjdGVkUm93Q291bnRCID0gcGFyc2VJbnQocm93LmRhdGFbInJlbW92
ZWRDb3VudCJdKTsKLSAgICAgICAgICAgICAgICB2YXIgcm93c1Nob3duID0gSW5zcGVjdG9yVGVz
dC5jb3VudERhdGFSb3dzKHJvdywgZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5kYXRhLnJl
bW92ZWRDb3VudDsgfSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHModHJ1ZSwgcm93c1Nob3duIDw9IGV4cGVjdGVkUm93Q291bnRCLCAic2hvd24gbW9yZSBpbnN0
YW5jZXMgdGhhbiBjcmVhdGVkOiAiICsgcm93c1Nob3duICsgIiA+ICIgKyBleHBlY3RlZFJvd0Nv
dW50Qik7Ci0gICAgICAgICAgICAgICAgaWYgKHJvd3NTaG93biA8IGV4cGVjdGVkUm93Q291bnRC
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3Qu
ZmluZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0RXF1YWxzKHRydWUsICEhYnV0dG9uc05vZGUsICJidXR0b25zIG5vZGUiKTsKLSAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0dG9uKCJzaG93TmV4
dCIsIGJ1dHRvbnNOb2RlLCBzdGVwNCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyb3dz
U2hvd24gPT09IGV4cGVjdGVkUm93Q291bnRCKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBi
dXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGZhbHNlLCAhIWJ1dHRvbnNO
b2RlLCAiYnV0dG9ucyBub2RlIGZvdW5kIGFmdGVyIGFsbCByb3dzIHNob3duIik7Ci0gICAgICAg
ICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBDb21wYXJpc29uIHZpZXcgb2Yg
ZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi1SZXBlYXRlZCBjbGlja3Mgb24gJnF1b3Q7U2hvdyBO
ZXh0JnF1b3Q7IGJ1dHRvbiBtdXN0IHNob3cgYWxsIG5vZGVzLgotPC9wPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25h
cHNob3QtY29tcGFyaXNvbi1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QtY29tcGFyaXNvbi1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzkwOTc2Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBh
cmlzb24tc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgQ29tcGFyaXNvbiB2aWV3IG9m
IGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBTaG93biBub2RlIGNvdW50IG11c3QgYmUgcHJlc2Vy
dmVkIGFmdGVyIHNvcnRpbmcuCi0KLUhlYXAgcHJvZmlsZXIgaXMgZGlzYWJsZWQKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFy
aXNvbi1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tc2hvd24t
bm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDgwYzI5YmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zaG93bi1ub2RlLWNvdW50LXByZXNl
cnZlZC13aGVuLXNvcnRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSJoZWFwLXNuYXBzaG90
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
dmFyIGluc3RhbmNlQ291bnQgPSAyNDsKLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3RB
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hv
dChpbnN0YW5jZUNvdW50LCA1KTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBz
aG90QigpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25h
cHNob3QoaW5zdGFuY2VDb3VudCArIDEsIDUgKyBpbnN0YW5jZUNvdW50KTsKLSAgICB9Ci0KLSAg
ICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0
aW9uIHRlc3RFeHBhbnNpb25QcmVzZXJ2ZWRXaGVuU29ydGluZyhuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNu
YXBzaG90QSwgY3JlYXRlU25hcHNob3RCKTsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVNu
YXBzaG90QigpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25h
cHNob3QoY3JlYXRlSGVhcFNuYXBzaG90Qiwgc3RlcDEpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIkNvbXBhcmlzb24iLCBzdGVwMik7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBjb2x1bW5zOwotICAgICAgICAgICAgZnVuY3Rpb24g
c3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbHVtbnMgPSBJbnNwZWN0
b3JUZXN0LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlj
a0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwMyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgcm93
ID0gSW5zcGVjdG9yVGVzdC5maW5kUm93KCJvYmplY3QiLCAiQiIpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhcm93LCAiXCJCXCIgcm93Iik7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3cocm93LCBzaG93TmV4dCk7Ci0g
ICAgICAgICAgICAgICAgZnVuY3Rpb24gc2hvd05leHQocm93KQotICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5k
QnV0dG9uc05vZGUocm93KTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgIm5vIGJ1dHRvbnMgbm9kZSBmb3VuZCEiKTsK
LSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0dG9uKCJz
aG93QWxsIiwgYnV0dG9uc05vZGUsIHN0ZXA0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICB2YXIgcm93ID0gSW5zcGVjdG9yVGVzdC5maW5kUm93KCJvYmplY3QiLCAi
QiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEh
cm93LCAiXCJCXCIgcm93Iik7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24gZGVsZXRlZE5vZGVN
YXRjaGVyKGRhdGEpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZGF0YS5yZW1vdmVkQ291bnQgJiYgZGF0YS5vYmplY3QudmFsdWUuY2hhckF0KDApID09PSAi
QiI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHZhciBiSW5zdGFuY2VSb3cg
PSBJbnNwZWN0b3JUZXN0LmZpbmRSb3cyKGRlbGV0ZWROb2RlTWF0Y2hlciwgcm93KTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJJbnN0YW5jZVJv
dywgIlwiQlwiIGluc3RhbmNlIHJvdyIpOwotICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9k
ZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdywgYkluc3RhbmNlUm93KTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhmYWxzZSwgISFidXR0b25z
Tm9kZSwgImJ1dHRvbnMgbm9kZSBmb3VuZCEiKTsKLSAgICAgICAgICAgICAgICBzdGVwNSgpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgbm9kZUNvdW50OwotICAgICAgICAgICAg
ZnVuY3Rpb24gc3RlcDUoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG5vZGVDb3Vu
dCA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSkubGVuZ3RoOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIG5vZGVDb3VudCA+
IDAsICJub2RlQ291bnQgPiAwIik7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNs
aWNrQ29sdW1uKGNvbHVtbnNbMF0sIGNsaWNrVHdpY2UpOwotICAgICAgICAgICAgICAgIGZ1bmN0
aW9uIGNsaWNrVHdpY2UoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwNik7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNigpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIG5ld05vZGVDb3VudCA9IEluc3BlY3Rv
clRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSkubGVuZ3RoOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKG5vZGVDb3VudCwgbmV3Tm9kZUNvdW50KTsKLSAg
ICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOwotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+Ci1UZXN0cyBDb21wYXJpc29uIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFw
c2hvdHMuCi1TaG93biBub2RlIGNvdW50IG11c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcu
Ci08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLXNvcnRpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNv
bi1zb3J0aW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTM2
ZDY1NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1jb21wYXJpc29uLXNvcnRpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNCArMCwwIEBACi1UZXN0cyBzb3J0aW5nIGluIENvbXBhcmlzb24gdmlldyBvZiBkZXRhaWxl
ZCBoZWFwIHNuYXBzaG90cy4KLQotSGVhcCBwcm9maWxlciBpcyBkaXNhYmxlZAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJp
c29uLXNvcnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNu
YXBzaG90LWNvbXBhcmlzb24tc29ydGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiMjRlZDI2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tc29ydGluZy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsODQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBz
cmM9ImhlYXAtc25hcHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDI0OwotICAgIGZ1bmN0aW9uIGNy
ZWF0ZUhlYXBTbmFwc2hvdEEoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3Qu
Y3JlYXRlSGVhcFNuYXBzaG90KGluc3RhbmNlQ291bnQsIDUpOwotICAgIH0KLSAgICBmdW5jdGlv
biBjcmVhdGVIZWFwU25hcHNob3RCKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50ICsgMSwgNSArIGluc3RhbmNlQ291
bnQpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuSGVhcFNuYXBzaG90VGVzdFN1aXRl
KFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNvcnRpbmcobmV4dCkKLSAgICAgICAgewotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hv
dEEsIGNyZWF0ZVNuYXBzaG90Qik7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVTbmFwc2hv
dEIoKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90
KGNyZWF0ZUhlYXBTbmFwc2hvdEIsIHN0ZXAxKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IAotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc3dpdGNoVG9WaWV3KCJDb21wYXJpc29uIiwgc3RlcDIpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgY29sdW1uczsKLSAgICAgICAgICAgIHZh
ciBjdXJyZW50Q29sdW1uOwotICAgICAgICAgICAgdmFyIGN1cnJlbnRDb2x1bW5PcmRlcjsKLQot
ICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGNvbHVtbnMgPSBJbnNwZWN0b3JUZXN0LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAgICAgICAg
ICAgY3VycmVudENvbHVtbiA9IDA7Ci0gICAgICAgICAgICAgICAgY3VycmVudENvbHVtbk9yZGVy
ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc2V0VGltZW91dChzdGVwMywgMCk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbiA+PSBjb2x1bW5zLmxlbmd0aCkgewotICAg
ICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOwotICAgICAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jbGlja0NvbHVtbihjb2x1bW5zW2N1cnJlbnRDb2x1bW5dLCBzdGVwNCk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KG5ld0NvbHVtblN0YXRlKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbHVtbnNbY3VycmVudENvbHVtbl0gPSBuZXdD
b2x1bW5TdGF0ZTsKLSAgICAgICAgICAgICAgICB2YXIgY29udGVudHMgPSBJbnNwZWN0b3JUZXN0
LmNvbHVtbkNvbnRlbnRzKGNvbHVtbnNbY3VycmVudENvbHVtbl0pOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhY29udGVudHMubGVuZ3RoLCAiY29s
dW1uIGNvbnRlbnRzIik7Ci0gICAgICAgICAgICAgICAgdmFyIHNvcnRUeXBlcyA9IHsgb2JqZWN0
OiAidGV4dCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkZWRDb3VudDog
Im51bWJlciIsIHJlbW92ZWRDb3VudDogIm51bWJlciIsIGNvdW50RGVsdGE6ICJudW1iZXIiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGVkU2l6ZTogInNpemUiLCByZW1v
dmVkU2l6ZTogInNpemUiLCBzaXplRGVsdGE6ICJzaXplIiB9OwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhc29ydFR5cGVzW2NvbHVtbnNbY3VycmVu
dENvbHVtbl0uaWRlbnRpZmllcl0sICJzb3J0IGJ5IGlkZW50aWZpZXIiKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrQXJyYXlJc1NvcnRlZChjb250ZW50cywgc29ydFR5cGVz
W2NvbHVtbnNbY3VycmVudENvbHVtbl0uaWRlbnRpZmllcl0sIGNvbHVtbnNbY3VycmVudENvbHVt
bl0uc29ydCk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnRDb2x1bW5PcmRlcikKLSAg
ICAgICAgICAgICAgICAgICAgY3VycmVudENvbHVtbk9yZGVyID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudENvbHVtbk9yZGVyID0gZmFs
c2U7Ci0gICAgICAgICAgICAgICAgICAgICsrY3VycmVudENvbHVtbjsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgc2V0VGltZW91dChzdGVwMywgMCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHNvcnRpbmcgaW4gQ29tcGFyaXNvbiB2aWV3IG9m
IGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFp
bm1lbnQtZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtZXhw
YW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwZjEyMmRlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LWV4cGFuc2lvbi1wcmVzZXJ2
ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBA
QAotVGVzdHMgQ29udGFpbm1lbnQgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4gRXhw
YW5kZWQgbm9kZXMgbXVzdCBiZSBwcmVzZXJ2ZWQgYWZ0ZXIgc29ydGluZy4KLQotSGVhcCBwcm9m
aWxlciBpcyBkaXNhYmxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4t
c29ydGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QtY29udGFpbm1lbnQtZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjU2YjYyMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1leHBhbnNp
b24tcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9ImhlYXAt
c25hcHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDI1OwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBT
bmFwc2hvdCgpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFw
U25hcHNob3QoaW5zdGFuY2VDb3VudCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5I
ZWFwU25hcHNob3RUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0RXhwYW5zaW9uUHJl
c2VydmVkV2hlblNvcnRpbmcobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdCwgc3RlcDEpOwotCi0g
ICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIkNvbnRhaW5tZW50Iiwgc3RlcDIpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgY29sdW1uczsKLSAgICAgICAgICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb2x1bW5zID0gSW5z
cGVjdG9yVGVzdC52aWV3Q29sdW1ucygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2xpY2tDb2x1bW4oY29sdW1uc1swXSwgc3RlcDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5maW5kQW5kRXhwYW5kV2luZG93KHN0ZXA0KTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDQocm93KQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJv
dyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFi
dXR0b25zTm9kZSwgIm5vIGJ1dHRvbnMgbm9kZSBmb3VuZCEiKTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNsaWNrU2hvd01vcmVCdXR0b24oInNob3dBbGwiLCBidXR0b25zTm9kZSwg
c3RlcDUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNShyb3cp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvdyA9IHJvdy5jaGlsZHJlblsw
XTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJv
dywgIlwiQlwiIGluc3RhbmNlIHJvdyIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwYW5kUm93KHJvdywgZXhwYW5kQSk7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24gZXhwYW5k
QShyb3cpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBw
cm9wZXJ0eU1hdGNoZXIoZGF0YSkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGRhdGEubmFtZSA9PT0gImEiICYmIGRhdGEudmFsdWUuY2hhckF0
KDApID09PSAiQSI7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
dmFyIGFSb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsIHByb3BlcnR5TWF0Y2hl
ciwgcm93KTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMo
dHJ1ZSwgISFhUm93LCAiXCJhOiBBXCIgcm93Iik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwYW5kUm93KGFSb3csIHN0ZXA2KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBjb2x1bW5Db250ZW50czsKLSAgICAgICAgICAg
IGZ1bmN0aW9uIHN0ZXA2KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb2x1bW5D
b250ZW50cyA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSk7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBjbGlja1R3
aWNlKTsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbiBjbGlja1R3aWNlKCkKLSAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tDb2x1bW4oY29s
dW1uc1swXSwgc3RlcDcpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgZnVuY3Rpb24gc3RlcDcoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IHZhciBuZXdDb2x1bW5Db250ZW50cyA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29s
dW1uc1swXSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRDb2x1bW5Db250
ZW50c0VxdWFsKGNvbHVtbkNvbnRlbnRzLCBuZXdDb2x1bW5Db250ZW50cyk7Ci0gICAgICAgICAg
ICAgICAgc2V0VGltZW91dChuZXh0LCAwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
IF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
LTxwPgotVGVzdHMgQ29udGFpbm1lbnQgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4K
LUV4cGFuZGVkIG5vZGVzIG11c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcuCi08L3A+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zaG93LWFsbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zaG93
LWFsbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzMDZjZTUu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QtY29udGFpbm1lbnQtc2hvdy1hbGwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NCArMCwwIEBACi1UZXN0cyBDb250YWlubWVudCB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNo
b3RzLiBUaGUgIlNob3cgQWxsIiBidXR0b24gbXVzdCBzaG93IGFsbCBub2Rlcy4KLQotSGVhcCBw
cm9maWxlciBpcyBkaXNhYmxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zaG93LWFsbC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtc2hvdy1h
bGwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNiODZjNi4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlu
bWVudC1zaG93LWFsbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIg
aW5zdGFuY2VDb3VudCA9IDI1OwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdCgpCi0g
ICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5z
dGFuY2VDb3VudCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RU
ZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U2hvd0FsbChuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVh
cFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiQ29u
dGFpbm1lbnQiLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9u
IHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZp
bmRBbmRFeHBhbmRXaW5kb3coc3RlcDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBm
dW5jdGlvbiBzdGVwMyhyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIGJ1
dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAi
YnV0dG9ucyBub2RlIik7Ci0gICAgICAgICAgICAgICAgdmFyIHdvcmRzID0gYnV0dG9uc05vZGUu
c2hvd0FsbC50ZXh0Q29udGVudC5zcGxpdCgiICIpOwotICAgICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFy
IG1heWJlTnVtYmVyID0gcGFyc2VJbnQod29yZHNbaV0sIDEwKTsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKCFpc05hTihtYXliZU51bWJlcikpCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydEVxdWFscyhpbnN0YW5jZUNvdW50IC0gcm93Ll9kYXRhR3JpZC5kZWZh
dWx0UG9wdWxhdGVDb3VudCgpLCBtYXliZU51bWJlciwgYnV0dG9uc05vZGUuc2hvd0FsbC50ZXh0
Q29udGVudCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY2xpY2tTaG93TW9yZUJ1dHRvbigic2hvd0FsbCIsIGJ1dHRvbnNOb2RlLCBzdGVwNCk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KHJvdykKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgcm93c1Nob3duID0gSW5zcGVjdG9yVGVzdC5jb3Vu
dERhdGFSb3dzKHJvdyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHMoaW5zdGFuY2VDb3VudCwgcm93c1Nob3duLCAiYWZ0ZXIgc2hvd0FsbCBjbGljayIpOwotICAg
ICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNO
b2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZmFs
c2UsICEhYnV0dG9uc05vZGUsICJidXR0b25zIG5vZGUgZm91bmQgd2hlbiBhbGwgaW5zdGFuY2Vz
IGFyZSBzaG93biEiKTsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBDb250YWlubWVudCB2aWV3IG9m
IGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgotVGhlICZxdW90O1Nob3cgQWxsJnF1b3Q7IGJ1dHRv
biBtdXN0IHNob3cgYWxsIG5vZGVzLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1l
bnQtc2hvdy1uZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LXNob3ctbmV4dC1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3OThiMGEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtc2hvdy1uZXh0
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgQ29udGFp
bm1lbnQgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4gUmVwZWF0ZWQgY2xpY2tzIG9u
ICJTaG93IE5leHQiIGJ1dHRvbiBtdXN0IHNob3cgYWxsIG5vZGVzLgotCi1IZWFwIHByb2ZpbGVy
IGlzIGRpc2FibGVkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LXNob3ctbmV4dC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtc2hvdy1uZXh0Lmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzZTk4MmUuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQt
c2hvdy1uZXh0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hvdC10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBpbnN0
YW5jZUNvdW50ID0gMjU7Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5j
ZUNvdW50KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RT
dWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTaG93TmV4dChuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNu
YXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiQ29udGFp
bm1lbnQiLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0
ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZpbmRB
bmRFeHBhbmRXaW5kb3coc3RlcDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5j
dGlvbiBzdGVwMyhyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvd3NT
aG93biA9IEluc3BlY3RvclRlc3QuY291bnREYXRhUm93cyhyb3cpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIHJvd3NTaG93biA8PSBpbnN0YW5jZUNv
dW50LCAic2hvd24gbW9yZSBpbnN0YW5jZXMgdGhhbiBjcmVhdGVkOiAiICsgcm93c1Nob3duICsg
IiA+ICIgKyBpbnN0YW5jZUNvdW50KTsKLSAgICAgICAgICAgICAgICBpZiAocm93c1Nob3duIDwg
aW5zdGFuY2VDb3VudCkgewotICAgICAgICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUgPSBJ
bnNwZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOwotICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBu
b2RlIik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93TW9yZUJ1
dHRvbigic2hvd05leHQiLCBidXR0b25zTm9kZSwgc3RlcDMpOwotICAgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAocm93c1Nob3duID09PSBpbnN0YW5jZUNvdW50KSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7
Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGZhbHNlLCAh
IWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBub2RlIGZvdW5kIHdoZW4gYWxsIGluc3RhbmNlcyBhcmUg
c2hvd24hIik7Ci0gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBD
b250YWlubWVudCB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgotUmVwZWF0ZWQgY2xp
Y2tzIG9uICZxdW90O1Nob3cgTmV4dCZxdW90OyBidXR0b24gbXVzdCBzaG93IGFsbCBub2Rlcy4K
LTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LXNob3duLW5vZGUtY291bnQtcHJl
c2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zaG93bi1ub2RlLWNvdW50LXByZXNl
cnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5MjgwODk4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdo
ZW4tc29ydGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRl
c3RzIENvbnRhaW5tZW50IHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuIFNob3duIG5v
ZGUgY291bnQgbXVzdCBiZSBwcmVzZXJ2ZWQgYWZ0ZXIgc29ydGluZy4KLQotSGVhcCBwcm9maWxl
ciBpcyBkaXNhYmxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13
aGVuLXNvcnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNu
YXBzaG90LWNvbnRhaW5tZW50LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGlu
Zy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjllZDA3Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5t
ZW50LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNzkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAg
PHNjcmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDI1OwotICAgIGZ1
bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdCgpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVj
dG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5zdGFuY2VDb3VudCk7Ci0gICAgfQotCi0gICAg
SW5zcGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlv
biB0ZXN0U2hvd25Ob2RlQ291bnRQcmVzZXJ2ZWRXaGVuU29ydGluZyhuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVh
cFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiQ29u
dGFpbm1lbnQiLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBjb2x1
bW5zOwotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIGNvbHVtbnMgPSBJbnNwZWN0b3JUZXN0LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwMyk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZpbmRBbmRFeHBhbmRXaW5kb3coc3Rl
cDQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNChyb3cpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9y
VGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAibm8gYnV0dG9ucyBub2RlIGZvdW5k
ISIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93TW9yZUJ1dHRvbigi
c2hvd05leHQiLCBidXR0b25zTm9kZSwgc3RlcDUpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICB2YXIgbm9kZUNvdW50OwotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDUocm93KQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIC8vIFRoZXJlIG11c3QgYmUgZW5vdWdoIG5vZGVz
IHRvIGhhdmUgc29tZSB1bnJldmVhbGVkLgotICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9k
ZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgIm5vIGJ1dHRv
bnMgbm9kZSBmb3VuZCEiKTsKLQotICAgICAgICAgICAgICAgIG5vZGVDb3VudCA9IEluc3BlY3Rv
clRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSkubGVuZ3RoOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIG5vZGVDb3VudCA+IDAsICJub2RlQ291
bnQgPiAwIik7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNv
bHVtbnNbMF0sIGNsaWNrVHdpY2UpOwotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNsaWNrVHdp
Y2UoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwNik7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNigpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgdmFyIG5ld05vZGVDb3VudCA9IEluc3BlY3RvclRlc3QuY29sdW1u
Q29udGVudHMoY29sdW1uc1swXSkubGVuZ3RoOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0RXF1YWxzKG5vZGVDb3VudCwgbmV3Tm9kZUNvdW50KTsKLSAgICAgICAgICAgICAg
ICBzZXRUaW1lb3V0KG5leHQsIDApOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7
Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
Ci1UZXN0cyBDb250YWlubWVudCB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgotU2hv
d24gbm9kZSBjb3VudCBtdXN0IGJlIHByZXNlcnZlZCBhZnRlciBzb3J0aW5nLgotPC9wPgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtc29ydGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zb3J0aW5n
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRmZmRhZS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1j
b250YWlubWVudC1zb3J0aW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAs
MCBAQAotVGVzdHMgc29ydGluZyBpbiBDb250YWlubWVudCB2aWV3IG9mIGRldGFpbGVkIGhlYXAg
c25hcHNob3RzLgotCi1IZWFwIHByb2ZpbGVyIGlzIGRpc2FibGVkCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LXNv
cnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LWNvbnRhaW5tZW50LXNvcnRpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDExMTBmNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC1jb250YWlubWVudC1zb3J0aW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4
MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0i
aGVhcC1zbmFwc2hvdC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjU7Ci0gICAgZnVuY3Rpb24gY3JlYXRl
SGVhcFNuYXBzaG90KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0
ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0
LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTb3J0aW5n
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5T
bmFwc2hvdChjcmVhdGVIZWFwU25hcHNob3QsIHN0ZXAxKTsKLQotICAgICAgICAgICAgZnVuY3Rp
b24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
c3dpdGNoVG9WaWV3KCJDb250YWlubWVudCIsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgdmFyIGdjUm9vdHM7Ci0gICAgICAgICAgICB2YXIgY29sdW1uczsKLSAgICAgICAg
ICAgIHZhciBjdXJyZW50Q29sdW1uOwotICAgICAgICAgICAgdmFyIGN1cnJlbnRDb2x1bW5PcmRl
cjsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZmluZEFuZEV4cGFuZEdDUm9vdHMoc3RlcDMpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMyhnY1Jvb3RzUm93KQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGdjUm9vdHMgPSBnY1Jvb3RzUm93OwotICAgICAg
ICAgICAgICAgIGNvbHVtbnMgPSBJbnNwZWN0b3JUZXN0LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAg
ICAgICAgICAgY3VycmVudENvbHVtbiA9IDA7Ci0gICAgICAgICAgICAgICAgY3VycmVudENvbHVt
bk9yZGVyID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc2V0VGltZW91dChzdGVwNCwgMCk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbiA+PSBjb2x1bW5zLmxlbmd0aCkg
ewotICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOwotICAgICAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zW2N1cnJlbnRDb2x1bW5dLCBzdGVwNSk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA1KG5ld0NvbHVtblN0YXRl
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbHVtbnNbY3VycmVudENvbHVtbl0g
PSBuZXdDb2x1bW5TdGF0ZTsKLSAgICAgICAgICAgICAgICB2YXIgY29udGVudHMgPSBJbnNwZWN0
b3JUZXN0LmNvbHVtbkNvbnRlbnRzKGNvbHVtbnNbY3VycmVudENvbHVtbl0sIGdjUm9vdHMpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhY29udGVu
dHMubGVuZ3RoLCAiY29sdW1uIGNvbnRlbnRzIik7Ci0gICAgICAgICAgICAgICAgdmFyIHNvcnRU
eXBlcyA9IHsgb2JqZWN0OiAibmFtZSIsIHNoYWxsb3dTaXplOiAic2l6ZSIsIHJldGFpbmVkU2l6
ZTogInNpemUiIH07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMo
dHJ1ZSwgISFzb3J0VHlwZXNbY29sdW1uc1tjdXJyZW50Q29sdW1uXS5pZGVudGlmaWVyXSwgInNv
cnQgYnkgaWRlbnRpZmllciIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tB
cnJheUlzU29ydGVkKGNvbnRlbnRzLCBzb3J0VHlwZXNbY29sdW1uc1tjdXJyZW50Q29sdW1uXS5p
ZGVudGlmaWVyXSwgY29sdW1uc1tjdXJyZW50Q29sdW1uXS5zb3J0KTsKLQotICAgICAgICAgICAg
ICAgIGlmICghY3VycmVudENvbHVtbk9yZGVyKQotICAgICAgICAgICAgICAgICAgICBjdXJyZW50
Q29sdW1uT3JkZXIgPSB0cnVlOwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAg
KytjdXJyZW50Q29sdW1uOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KHN0ZXA0LCAwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfQot
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVz
dHMgc29ydGluZyBpbiBDb250YWlubWVudCB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3Rz
LgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1leHBhbnNpb24tcHJlc2VydmVk
LXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0
aW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ0MzRmNS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hv
dC1kb21pbmF0b3JzLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgRG9taW5hdG9ycyB2aWV3IG9m
IGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBFeHBhbmRlZCBub2RlcyBtdXN0IGJlIHByZXNlcnZl
ZCBhZnRlciBzb3J0aW5nLgotCi1IZWFwIHByb2ZpbGVyIGlzIGRpc2FibGVkCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRv
cnMtZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtZXhwYW5zaW9uLXByZXNl
cnZlZC13aGVuLXNvcnRpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTI3
ODQxOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1kb21pbmF0b3JzLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hvdC10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjU7
Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50KTsKLSAgICB9
Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShbCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RFeHBhbnNpb25QcmVzZXJ2ZWRXaGVuU29ydGluZyhuZXh0KQotICAgICAg
ICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRl
SGVhcFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygi
RG9taW5hdG9ycyIsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIGNv
bHVtbnM7Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgY29sdW1ucyA9IEluc3BlY3RvclRlc3Qudmlld0NvbHVtbnMoKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0sIHN0ZXAzKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmluZEFuZEV4cGFuZFdpbmRvdyhz
dGVwNCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KHJvdykK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUgPSBJbnNwZWN0
b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYnV0dG9uc05vZGUsICJubyBidXR0b25zIG5vZGUgZm91
bmQhIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0dG9u
KCJzaG93QWxsIiwgYnV0dG9uc05vZGUsIHN0ZXA1KTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDUocm93KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IHZhciByb3cgPSByb3cuY2hpbGRyZW5bMF07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3csICJcIkJcIiBpbnN0YW5jZSByb3ciKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFJvdyhyb3csIHN0ZXA2KTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgdmFyIGNvbHVtbkNvbnRlbnRzOwotICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDYoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbHVtbkNvbnRl
bnRzID0gSW5zcGVjdG9yVGVzdC5jb2x1bW5Db250ZW50cyhjb2x1bW5zWzBdKTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0sIGNsaWNrVHdpY2Up
OwotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNsaWNrVHdpY2UoKQotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5z
WzBdLCBzdGVwNyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBzdGVwNygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFy
IG5ld0NvbHVtbkNvbnRlbnRzID0gSW5zcGVjdG9yVGVzdC5jb2x1bW5Db250ZW50cyhjb2x1bW5z
WzBdKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydENvbHVtbkNvbnRlbnRz
RXF1YWwoY29sdW1uQ29udGVudHMsIG5ld0NvbHVtbkNvbnRlbnRzKTsKLSAgICAgICAgICAgICAg
ICBzZXRUaW1lb3V0KG5leHQsIDApOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7
Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
Ci1UZXN0cyBEb21pbmF0b3JzIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi1FeHBh
bmRlZCBub2RlcyBtdXN0IGJlIHByZXNlcnZlZCBhZnRlciBzb3J0aW5nLgotPC9wPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93LWFsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNob3ctYWxsLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTY2ZjFiYi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21p
bmF0b3JzLXNob3ctYWxsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBA
QAotVGVzdHMgRG9taW5hdG9ycyB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBUaGUg
IlNob3cgQWxsIiBidXR0b24gbXVzdCBzaG93IGFsbCBub2Rlcy4KLQotSGVhcCBwcm9maWxlciBp
cyBkaXNhYmxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNob3ctYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNob3ctYWxsLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmMTg4YjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93LWFs
bC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAg
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgaW5zdGFuY2VDb3Vu
dCA9IDI1OwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdCgpCi0gICAgewotICAgICAg
ICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5zdGFuY2VDb3VudCk7
Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RUZXN0U3VpdGUoWwot
ICAgICAgICBmdW5jdGlvbiB0ZXN0U2hvd0FsbChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNuYXBzaG90LCBz
dGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiRG9taW5hdG9ycyIsIHN0
ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmluZEFuZEV4cGFuZFdp
bmRvdyhzdGVwMyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAz
KHJvdykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUgPSBJ
bnNwZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYnV0dG9uc05vZGUsICJidXR0b25zIG5vZGUi
KTsKLSAgICAgICAgICAgICAgICB2YXIgd29yZHMgPSBidXR0b25zTm9kZS5zaG93QWxsLnRleHRD
b250ZW50LnNwbGl0KCIgIik7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3
b3Jkcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgICAgICB2YXIgbWF5YmVOdW1iZXIg
PSBwYXJzZUludCh3b3Jkc1tpXSwgMTApOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTmFO
KG1heWJlTnVtYmVyKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKGluc3RhbmNlQ291bnQgLSByb3cuX2RhdGFHcmlkLmRlZmF1bHRQb3B1bGF0ZUNv
dW50KCksIG1heWJlTnVtYmVyLCBidXR0b25zTm9kZS5zaG93QWxsLnRleHRDb250ZW50KTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dN
b3JlQnV0dG9uKCJzaG93QWxsIiwgYnV0dG9uc05vZGUsIHN0ZXA0KTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDQocm93KQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIHZhciByb3dzU2hvd24gPSBJbnNwZWN0b3JUZXN0LmNvdW50RGF0YVJvd3Mocm93
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhpbnN0YW5jZUNv
dW50LCByb3dzU2hvd24sICJhZnRlciBzaG93QWxsIGNsaWNrIik7Ci0gICAgICAgICAgICAgICAg
dmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhmYWxzZSwgISFidXR0b25z
Tm9kZSwgImJ1dHRvbnMgbm9kZSBmb3VuZCB3aGVuIGFsbCBpbnN0YW5jZXMgYXJlIHNob3duISIp
OwotICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIERvbWluYXRvcnMgdmlldyBvZiBkZXRhaWxlZCBoZWFw
IHNuYXBzaG90cy4KLVRoZSAmcXVvdDtTaG93IEFsbCZxdW90OyBidXR0b24gbXVzdCBzaG93IGFs
bCBub2Rlcy4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvdy1uZXh0LWFj
dHVhbC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1k
b21pbmF0b3JzLXNob3ctbmV4dC1hY3R1YWwudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmNTdlMWFiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvdy1uZXh0LWFjdHVhbC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw0ICswLDAgQEAKLVRlc3RzIENvbXBhcmlzb24gdmlldyBvZiBkZXRhaWxlZCBo
ZWFwIHNuYXBzaG90cy4gUmVwZWF0ZWQgY2xpY2tzIG9uICJTaG93IE5leHQiIGJ1dHRvbiBtdXN0
IHNob3cgYWxsIG5vZGVzLgotCi1IZWFwIHByb2ZpbGVyIGlzIGRpc2FibGVkCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRv
cnMtc2hvdy1uZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvdy1uZXh0LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWQwMjFjYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNob3ctbmV4dC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRlc3RzIERvbWluYXRv
cnMgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4gUmVwZWF0ZWQgY2xpY2tzIG9uICJT
aG93IE5leHQiIGJ1dHRvbiBtdXN0IHNob3cgYWxsIG5vZGVzLgotCi1IZWFwIHByb2ZpbGVyIGlz
IGRpc2FibGVkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9o
ZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvdy1uZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNob3ctbmV4dC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTFjOWZjLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvdy1u
ZXh0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
ICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hvdC10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBpbnN0YW5jZUNv
dW50ID0gMjU7Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50
KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShb
Ci0gICAgICAgIGZ1bmN0aW9uIHRlc3RTaG93TmV4dChuZXh0KQotICAgICAgICB7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNuYXBzaG90
LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiRG9taW5hdG9ycyIs
IHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmluZEFuZEV4cGFu
ZFJvdygiV2luZG93Iiwgc3RlcDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5j
dGlvbiBzdGVwMyhyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvd3NT
aG93biA9IEluc3BlY3RvclRlc3QuY291bnREYXRhUm93cyhyb3cpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIHJvd3NTaG93biA8PSBpbnN0YW5jZUNv
dW50LCAic2hvd24gbW9yZSBpbnN0YW5jZXMgdGhhbiBjcmVhdGVkOiAiICsgcm93c1Nob3duICsg
IiA+ICIgKyBpbnN0YW5jZUNvdW50KTsKLSAgICAgICAgICAgICAgICBpZiAocm93c1Nob3duIDwg
aW5zdGFuY2VDb3VudCkgewotICAgICAgICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUgPSBJ
bnNwZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOwotICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBu
b2RlIik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93TW9yZUJ1
dHRvbigic2hvd05leHQiLCBidXR0b25zTm9kZSwgc3RlcDMpOwotICAgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAocm93c1Nob3duID09PSBpbnN0YW5jZUNvdW50KSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7
Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGZhbHNlLCAh
IWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBub2RlIGZvdW5kIHdoZW4gYWxsIGluc3RhbmNlcyBhcmUg
c2hvd24hIik7Ci0gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBE
b21pbmF0b3JzIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi1SZXBlYXRlZCBjbGlj
a3Mgb24gJnF1b3Q7U2hvdyBOZXh0JnF1b3Q7IGJ1dHRvbiBtdXN0IHNob3cgYWxsIG5vZGVzLgot
PC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93bi1ub2RlLWNvdW50LXByZXNl
cnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZl
ZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlNTJhMzU2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9o
ZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1z
b3J0aW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMg
RG9taW5hdG9ycyB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBTaG93biBub2RlIGNv
dW50IG11c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcuCi0KLUhlYXAgcHJvZmlsZXIgaXMg
ZGlzYWJsZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNv
cnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LWRvbWluYXRvcnMtc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0ZGFlZWIuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93
bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDc5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQg
c3JjPSJoZWFwLXNuYXBzaG90LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgdmFyIGluc3RhbmNlQ291bnQgPSAyNTsKLSAgICBmdW5jdGlvbiBj
cmVhdGVIZWFwU25hcHNob3QoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3Qu
Y3JlYXRlSGVhcFNuYXBzaG90KGluc3RhbmNlQ291bnQpOwotICAgIH0KLQotICAgIEluc3BlY3Rv
clRlc3QucnVuSGVhcFNuYXBzaG90VGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNo
b3duTm9kZUNvdW50UHJlc2VydmVkV2hlblNvcnRpbmcobmV4dCkKLSAgICAgICAgewotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hv
dCwgc3RlcDEpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIkRvbWluYXRvcnMi
LCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBjb2x1bW5zOwotICAg
ICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGNvbHVtbnMgPSBJbnNwZWN0b3JUZXN0LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwMyk7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZpbmRBbmRFeHBhbmRXaW5kb3coc3RlcDQpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNChyb3cpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5k
QnV0dG9uc05vZGUocm93KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAibm8gYnV0dG9ucyBub2RlIGZvdW5kISIpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93TW9yZUJ1dHRvbigic2hvd05leHQi
LCBidXR0b25zTm9kZSwgc3RlcDUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIg
bm9kZUNvdW50OwotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDUocm93KQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIC8vIFRoZXJlIG11c3QgYmUgZW5vdWdoIG5vZGVzIHRvIGhhdmUg
c29tZSB1bnJldmVhbGVkLgotICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3Bl
Y3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgIm5vIGJ1dHRvbnMgbm9kZSBm
b3VuZCEiKTsKLQotICAgICAgICAgICAgICAgIG5vZGVDb3VudCA9IEluc3BlY3RvclRlc3QuY29s
dW1uQ29udGVudHMoY29sdW1uc1swXSkubGVuZ3RoOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIG5vZGVDb3VudCA+IDAsICJub2RlQ291bnQgPiAwIik7
Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0s
IGNsaWNrVHdpY2UpOwotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNsaWNrVHdpY2UoKQotICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0Nv
bHVtbihjb2x1bW5zWzBdLCBzdGVwNik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNigpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgdmFyIG5ld05vZGVDb3VudCA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMo
Y29sdW1uc1swXSkubGVuZ3RoOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
RXF1YWxzKG5vZGVDb3VudCwgbmV3Tm9kZUNvdW50KTsKLSAgICAgICAgICAgICAgICBzZXRUaW1l
b3V0KG5leHQsIDApOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBE
b21pbmF0b3JzIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi1TaG93biBub2RlIGNv
dW50IG11c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcuCi08L3A+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFw
c2hvdC1kb21pbmF0b3JzLXNvcnRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zb3J0aW5nLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzQ1MDg3Mi4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNv
cnRpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UZXN0cyBz
b3J0aW5nIGluIERvbWluYXRvcnMgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4KLQot
SGVhcCBwcm9maWxlciBpcyBkaXNhYmxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNvcnRpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc29y
dGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OWFmNDEyLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWlu
YXRvcnMtc29ydGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIg
aW5zdGFuY2VDb3VudCA9IDI1OwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdCgpCi0g
ICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5z
dGFuY2VDb3VudCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RU
ZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U29ydGluZyhuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVh
cFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiRG9t
aW5hdG9ycyIsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIGdjUm9v
dHM7Ci0gICAgICAgICAgICB2YXIgY29sdW1uczsKLSAgICAgICAgICAgIHZhciBjdXJyZW50Q29s
dW1uOwotICAgICAgICAgICAgdmFyIGN1cnJlbnRDb2x1bW5PcmRlcjsKLQotICAgICAgICAgICAg
ZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZmluZEFuZEV4cGFuZFdpbmRvdyhzdGVwMyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0ZXAzKGdjUm9vdHNSb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgZ2NSb290cyA9IGdjUm9vdHNSb3c7Ci0gICAgICAgICAgICAgICAgY29sdW1ucyA9
IEluc3BlY3RvclRlc3Qudmlld0NvbHVtbnMoKTsKLSAgICAgICAgICAgICAgICBjdXJyZW50Q29s
dW1uID0gMDsKLSAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSBmYWxzZTsKLSAg
ICAgICAgICAgICAgICBzZXRUaW1lb3V0KHN0ZXA0LCAwKTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgZnVuY3Rpb24gc3RlcDQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGlmIChjdXJyZW50Q29sdW1uID49IGNvbHVtbnMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29s
dW1uKGNvbHVtbnNbY3VycmVudENvbHVtbl0sIHN0ZXA1KTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgZnVuY3Rpb24gc3RlcDUobmV3Q29sdW1uU3RhdGUpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgY29sdW1uc1tjdXJyZW50Q29sdW1uXSA9IG5ld0NvbHVtblN0YXRlOwot
ICAgICAgICAgICAgICAgIHZhciBjb250ZW50cyA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVu
dHMoY29sdW1uc1tjdXJyZW50Q29sdW1uXSwgZ2NSb290cyk7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFjb250ZW50cy5sZW5ndGgsICJjb2x1bW4g
Y29udGVudHMiKTsKLSAgICAgICAgICAgICAgICB2YXIgc29ydFR5cGVzID0geyBvYmplY3Q6ICJp
ZCIsIHNoYWxsb3dTaXplOiAic2l6ZSIsIHJldGFpbmVkU2l6ZTogInNpemUiIH07Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFzb3J0VHlwZXNbY29s
dW1uc1tjdXJyZW50Q29sdW1uXS5pZGVudGlmaWVyXSwgInNvcnQgYnkgaWRlbnRpZmllciIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tBcnJheUlzU29ydGVkKGNvbnRlbnRz
LCBzb3J0VHlwZXNbY29sdW1uc1tjdXJyZW50Q29sdW1uXS5pZGVudGlmaWVyXSwgY29sdW1uc1tj
dXJyZW50Q29sdW1uXS5zb3J0KTsKLQotICAgICAgICAgICAgICAgIGlmICghY3VycmVudENvbHVt
bk9yZGVyKQotICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSB0cnVlOwot
ICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1u
T3JkZXIgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgKytjdXJyZW50Q29sdW1uOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHN0ZXA0LCAwKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgc29ydGluZyBpbiBEb21pbmF0
b3JzIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi08L3A+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFw
c2hvdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViYWU3
NzYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25h
cHNob3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotVGhpcyB0
ZXN0IGNoZWNrcyBIZWFwU25hcHNob3RzIG1vZHVsZS4KLQotCi1SdW5uaW5nOiBoZWFwU25hcHNo
b3ROb2RlU2ltcGxlVGVzdAotCi1SdW5uaW5nOiBoZWFwU25hcHNob3ROb2RlSXRlcmF0b3JUZXN0
Ci0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdEVkZ2VTaW1wbGVUZXN0Ci0KLVJ1bm5pbmc6IGhlYXBT
bmFwc2hvdEVkZ2VJdGVyYXRvclRlc3QKLQotUnVubmluZzogaGVhcFNuYXBzaG90Tm9kZUFuZEVk
Z2VUZXN0Ci0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdFNpbXBsZVRlc3QKLQotUnVubmluZzogaGVh
cFNuYXBzaG90Q29udGFpbm1lbnRFZGdlSW5kZXhlc1Rlc3QKLQotUnVubmluZzogaGVhcFNuYXBz
aG90UG9zdE9yZGVySW5kZXhUZXN0Ci0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdERvbWluYXRvcnNU
cmVlVGVzdAotCi1SdW5uaW5nOiBoZWFwU25hcHNob3RSZXRhaW5lZFNpemVUZXN0Ci0KLVJ1bm5p
bmc6IGhlYXBTbmFwc2hvdERvbWluYXRlZE5vZGVzVGVzdAotCi1SdW5uaW5nOiBoZWFwU25hcHNo
b3RQYWdlT3duZWRUZXN0Ci0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdFJldGFpbmVyc1Rlc3QKLQot
UnVubmluZzogaGVhcFNuYXBzaG90QWdncmVnYXRlc1Rlc3QKLQotUnVubmluZzogaGVhcFNuYXBz
aG90RmxhZ3NUZXN0Ci0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdEFycmF5U2xpY2VUZXN0Ci0KLVJ1
bm5pbmc6IGhlYXBTbmFwc2hvdE5vZGVzUHJvdmlkZXJUZXN0Ci0KLVJ1bm5pbmc6IGhlYXBTbmFw
c2hvdEVkZ2VzUHJvdmlkZXJUZXN0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxl
LWNyYXNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmM2NzRi
OTcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25h
cHNob3QtZ2V0LXByb2ZpbGUtY3Jhc2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NiArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIEhlYXBTbmFwc2hvdHMgbW9kdWxlLgotCi0KLVJ1
bm5pbmc6IGdldEhlYXBTbmFwc2hvdERvZXNudENyYXNoCi1sb2c6IFByb2ZpbGUgd2Fzbid0IGZv
dW5kCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNu
YXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1NDRjYjEyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJoZWFwLXNuYXBzaG90LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQot
ZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAg
ICAgICBmdW5jdGlvbiBnZXRIZWFwU25hcHNob3REb2VzbnRDcmFzaChuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICBmdW5jdGlvbiBmaW5pc2goZXJyb3JTdHJpbmcsIHByb2ZpbGUpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3JTdHJpbmcpOwotICAg
ICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEhlYXBQcm9m
aWxlckFnZW50LmdldEhlYXBTbmFwc2hvdCgtMSwgZmluaXNoKTsKLSAgICAgICAgfQotICAgIF0p
OwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
PHA+Ci1UaGlzIHRlc3QgY2hlY2tzIEhlYXBTbmFwc2hvdHMgbW9kdWxlLgotPC9wPgotCi08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRvbS13cmFwcGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MWUwN2I3Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWlu
c3BlY3QtZG9tLXdyYXBwZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCww
IEBACi1UZXN0IHRoYXQgcmVzb2x2aW5nIGhlYXAgc25hcGhvdCBvYmplY3QgdG8gYSBKUyBvYmpl
Y3Qgd2lsbCBub3QgY3Jhc2ggb24gRE9NIHdyYXBwZXIgYm9pbGVycGxhdGUuIFRlc3QgcGFzc2Vz
IGlmIGl0IGRvZXNuJ3QgY3Jhc2guCi0KLWZpbmlzaEhlYXBTbmFwc2hvdCAxCi1fY2FsbExvYWRD
YWxsYmFja3MKLUVycm9yIHJlc29sdmluZyBoZWFwIHNuYXBzaG90IG9iamVjdDogT2JqZWN0IGlz
IG5vdCBhdmFpbGFibGUKLUVycm9yIHJlc29sdmluZyBoZWFwIHNuYXBzaG90IG9iamVjdDogT2Jq
ZWN0IGlzIG5vdCBhdmFpbGFibGUKLWNsZWFyUHJvZmlsZXMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1kb20td3JhcHBl
ci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5z
cGVjdC1kb20td3JhcHBlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzgw
ODQ4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNu
YXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImhlYXAtc25h
cHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBoYW5kbGVMb2Fk
KCkKLXsKLSAgICAvLyBNYWtlIHN1cmUgdGhlcmUgaXMgYSBib2R5IHdyYXBwZXIuCi0gICAgZG9j
dW1lbnQuYm9keS5maWVsZE9uRG9tV3JhcHBlciA9IDIwMTI7Ci0gICAgcnVuVGVzdCgpOwotfQot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJwcm9maWxl
cyIpOwotICAgIEhlYXBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3Qoc3RlcDApOwotCi0g
ICAgZnVuY3Rpb24gc3RlcDAoKQotICAgIHsKLSAgICAgICAgdmFyIGhlYXBQcm9maWxlVHlwZSA9
ICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLmdldFByb2ZpbGVUeXBlKCJIRUFQIik7Ci0g
ICAgICAgIHZhciBwcm9maWxlcyA9IGhlYXBQcm9maWxlVHlwZS5nZXRQcm9maWxlcygpOwotICAg
ICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLl9zaG93UHJvZmlsZShwcm9maWxlc1tw
cm9maWxlcy5sZW5ndGggLSAxXSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlciho
ZWFwUHJvZmlsZVR5cGUsICJmaW5pc2hIZWFwU25hcHNob3QiLCBzdGVwMSk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gc3RlcDEodWlkKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoImZpbmlzaEhlYXBTbmFwc2hvdCAiICsgdWlkKTsKLSAgICAgICAgdmFyIHBhbmVsID0g
V2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlczsKLSAgICAgICAgdmFyIHByb2ZpbGUgPSBwYW5l
bC5nZXRQcm9maWxlKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZS5UeXBlSWQs
IHVpZCk7Ci0gICAgICAgIHByb2ZpbGUubG9hZChzdGVwMi5iaW5kKHRoaXMpKTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBzdGVwMihzbmFwc2hvdFByb3h5KQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIl9jYWxsTG9hZENhbGxiYWNrcyIpOwotICAgICAgICB2YXIgc25h
cHNob3QgPSBzbmFwc2hvdFByb3h5Ll93b3JrZXIuX3dvcmtlci5fZGlzcGF0Y2hlci5fb2JqZWN0
c1tzbmFwc2hvdFByb3h5Ll9vYmplY3RJZF07Ci0KLSAgICAgICAgdmFyIGJvZHlXcmFwcGVySWRz
ID0gW107Ci0gICAgICAgIGZvciAodmFyIGl0ID0gc25hcHNob3QuX2FsbE5vZGVzOyBpdC5oYXNO
ZXh0KCk7IGl0Lm5leHQoKSkgewotICAgICAgICAgICAgaWYgKGl0Lm5vZGUuY2xhc3NOYW1lID09
PSAiSFRNTEJvZHlFbGVtZW50IikKLSAgICAgICAgICAgICAgICBib2R5V3JhcHBlcklkcy5wdXNo
KGl0Lm5vZGUuaWQpOwotICAgICAgICB9Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm9k
eVdyYXBwZXJJZHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5n
ZXRPYmplY3RCeUhlYXBPYmplY3RJZChib2R5V3JhcHBlcklkc1tpXSwgdW5kZWZpbmVkLCBkaWRH
ZXRPYmplY3RCeUhlYXBPYmplY3RJZCk7Ci0KLSAgICAgICAgdmFyIHJlc29sdmVkT2JqZWN0c0Nv
dW50ID0gMDsKLSAgICAgICAgdmFyIHJlbW90ZU9iamVjdHMgPSBbXTsKLSAgICAgICAgZnVuY3Rp
b24gZGlkR2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQoZXJyb3IsIG9iamVjdCkKLSAgICAgICAgewot
ICAgICAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJFcnJvciByZXNvbHZpbmcgaGVhcCBzbmFwc2hvdCBvYmplY3Q6ICIgKyBlcnJvcik7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVtb3RlT2JqZWN0cy5wdXNoKFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQob2JqZWN0KSk7Ci0KLSAgICAgICAg
ICAgIGlmICgrK3Jlc29sdmVkT2JqZWN0c0NvdW50ICA9PT0gYm9keVdyYXBwZXJJZHMubGVuZ3Ro
KQotICAgICAgICAgICAgICAgIHJlcXVlc3RQcm9wZXJ0aWVzT2ZSZXNvbHZlZE9iamVjdHMoKTsK
LSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHJlcXVlc3RQcm9wZXJ0aWVzT2ZSZXNvbHZl
ZE9iamVjdHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
bW90ZU9iamVjdHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICAgICAgcmVtb3RlT2JqZWN0c1tp
XS5nZXRPd25Qcm9wZXJ0aWVzKGRpZEdldE93blByb3BlcnRpZXMpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgdmFyIGRpZEdldE93blByb3BlcnRpZXNDb3VudCA9IDA7Ci0gICAgICAgIGZ1bmN0aW9u
IGRpZEdldE93blByb3BlcnRpZXMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoKytkaWRH
ZXRPd25Qcm9wZXJ0aWVzQ291bnQgIT09IHJlbW90ZU9iamVjdHMubGVuZ3RoKQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuY2xlYXJQcm9m
aWxlcyhkb25lKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuX3Jl
c2V0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkb25lKCkKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJjbGVhclByb2ZpbGVzIik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwv
aGVhZD4KLQotPGJvZHkgb25sb2FkPSJoYW5kbGVMb2FkKCkiPgotPHA+Ci1UZXN0IHRoYXQgcmVz
b2x2aW5nIGhlYXAgc25hcGhvdCBvYmplY3QgdG8gYSBKUyBvYmplY3Qgd2lsbCBub3QgY3Jhc2gg
b24gRE9NIHdyYXBwZXIgYm9pbGVycGxhdGUuIFRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jh
c2guCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NmY4OTc4Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tz
IEhlYXBTbmFwc2hvdHMgbG9hZGVyLgotCi0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdExvYWRlclRl
c3QKLQotUnVubmluZzogaGVhcFNuYXBzaG90U2F2ZVRvRmlsZVRlc3QKLQotUnVubmluZzogaGVh
cFNuYXBzaG90TG9hZEZyb21GaWxlVGVzdAotCi1SdW5uaW5nOiBoZWFwU25hcHNob3RSZWplY3RU
b1NhdmVUb0ZpbGVUZXN0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDE1OGYzMDguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNjAgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iaGVhcC1zbmFw
c2hvdC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0U25hcHNob3RFcXVhbHMgPSBmdW5jdGlvbihyZWZlcmVu
Y2UsIGFjdHVhbCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKEpT
T04uc3RyaW5naWZ5KHJlZmVyZW5jZSksIEpTT04uc3RyaW5naWZ5KGFjdHVhbCkpOwotICAgIH0K
LQotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInByb2ZpbGVzIik7Ci0gICAgdmFyIHNvdXJj
ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9ja1JhdygpOwotICAgIHZhciBz
b3VyY2VTdHJpbmdpZmllZCA9IEpTT04uc3RyaW5naWZ5KHNvdXJjZSk7Ci0gICAgdmFyIHBhcnRT
aXplID0gc291cmNlU3RyaW5naWZpZWQubGVuZ3RoID4+IDM7Ci0KLSAgICBmdW5jdGlvbiBpbmpl
Y3RNb2NrUHJvZmlsZShvdmVycmlkZUdldFByb2ZpbGUsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHZh
ciBkaXNwYXRjaGVyID0gSW5zcGVjdG9yQmFja2VuZC5fZG9tYWluRGlzcGF0Y2hlcnNbIkhlYXBQ
cm9maWxlciJdOwotICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2Zp
bGVzOwotICAgICAgICBwYW5lbC5fcmVzZXQoKTsKLQotICAgICAgICBkaXNwYXRjaGVyLmFkZFBy
b2ZpbGVIZWFkZXIoewotICAgICAgICAgICAgdHlwZUlkOiBXZWJJbnNwZWN0b3IuSGVhcFNuYXBz
aG90UHJvZmlsZVR5cGUuVHlwZUlkLAotICAgICAgICAgICAgdGl0bGU6ICJoZWFwU25hcHNob3RT
YXZlVG9GaWxlVGVzdCIsCi0gICAgICAgICAgICB1aWQ6IDQyLAotICAgICAgICAgICAgbWF4SlNP
YmplY3RJZDogNgotICAgICAgICB9KTsKLQotICAgICAgICB2YXIgcHJvZmlsZUhlYWRlciA9IHBh
bmVsLmdldFByb2ZpbGVUeXBlKCJIRUFQIikuZ2V0UHJvZmlsZXMoKVswXTsKLQotICAgICAgICBm
dW5jdGlvbiBnZXRIZWFwU25hcHNob3RNb2NrKHVpZCkgewotICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDAsIGwgPSBzb3VyY2VTdHJpbmdpZmllZC5sZW5ndGg7IGkgPCBsOyBpICs9IHBhcnRTaXpl
KQotICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIuYWRkSGVhcFNuYXBzaG90Q2h1bmsodWlkLCBz
b3VyY2VTdHJpbmdpZmllZC5zbGljZShpLCBpICsgcGFydFNpemUpKTsKLSAgICAgICAgICAgIGRp
c3BhdGNoZXIuZmluaXNoSGVhcFNuYXBzaG90KHVpZCk7Ci0gICAgICAgIH0KLQotICAgICAgICBm
dW5jdGlvbiBzbmFwc2hvdExvYWRlZCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChvdmVy
cmlkZUdldFByb2ZpbGUpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5vdmVycmlkZShI
ZWFwUHJvZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIsIGdldEhlYXBTbmFwc2hvdE1vY2sp
OwotICAgICAgICAgICAgY2FsbGJhY2socHJvZmlsZUhlYWRlcik7Ci0gICAgICAgIH0KLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKHByb2ZpbGVIZWFkZXIsICJfc25hcHNob3RSZWNl
aXZlZCIsIHNuYXBzaG90TG9hZGVkKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRl
KEhlYXBQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgZ2V0SGVhcFNuYXBzaG90TW9j
ayk7Ci0gICAgICAgIHBhbmVsLl9zaG93UHJvZmlsZShwcm9maWxlSGVhZGVyKTsKLSAgICB9Ci0K
LSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIGhlYXBT
bmFwc2hvdExvYWRlclRlc3QobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIGxvYWRl
ciA9IG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90TG9hZGVyKCk7Ci0gICAgICAgICAgICBm
b3IgKHZhciBpID0gMCwgbCA9IHNvdXJjZVN0cmluZ2lmaWVkLmxlbmd0aDsgaSA8IGw7IGkgKz0g
cGFydFNpemUpCi0gICAgICAgICAgICAgICAgbG9hZGVyLndyaXRlKHNvdXJjZVN0cmluZ2lmaWVk
LnNsaWNlKGksIGkgKyBwYXJ0U2l6ZSkpOwotICAgICAgICAgICAgbG9hZGVyLmNsb3NlKCk7Ci0g
ICAgICAgICAgICB2YXIgcmVzdWx0ID0gbG9hZGVyLmJ1aWxkU25hcHNob3QoIkpTSGVhcFNuYXBz
aG90Iik7Ci0gICAgICAgICAgICByZXN1bHQuX25vZGVzID0gbmV3IFVpbnQzMkFycmF5KHJlc3Vs
dC5fbm9kZXMpOwotICAgICAgICAgICAgcmVzdWx0Ll9jb250YWlubWVudEVkZ2VzID0gbmV3IFVp
bnQzMkFycmF5KHJlc3VsdC5fY29udGFpbm1lbnRFZGdlcyk7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydFNuYXBzaG90RXF1YWxzKG5ldyBXZWJJbnNwZWN0b3IuSlNIZWFwU25hcHNo
b3QoSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3RNb2NrKCkpLCByZXN1bHQpOwotICAg
ICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFw
c2hvdFNhdmVUb0ZpbGVUZXN0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9u
IHNuYXBzaG90TG9hZGVkKHByb2ZpbGVIZWFkZXIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgdmFyIHNhdmVkU25hcHNob3REYXRhOwotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNh
dmVNb2NrKHVybCwgZGF0YSkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IHNhdmVkU25hcHNob3REYXRhID0gZGF0YTsKLSAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmZpbGVNYW5hZ2VyLnNhdmVkVVJMKHVybCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoSW5zcGVjdG9yRnJvbnRlbmRIb3N0LCAi
c2F2ZSIsIHNhdmVNb2NrKTsKLQotICAgICAgICAgICAgICAgIHZhciBvbGRBcHBlbmQgPSBJbnNw
ZWN0b3JGcm9udGVuZEhvc3QuYXBwZW5kOwotICAgICAgICAgICAgICAgIEluc3BlY3RvckZyb250
ZW5kSG9zdC5hcHBlbmQgPSBmdW5jdGlvbiBhcHBlbmRNb2NrKHVybCwgZGF0YSkKLSAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHNhdmVkU25hcHNob3REYXRhICs9IGRhdGE7
Ci0gICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5maWxlTWFuYWdlci5hcHBlbmRlZFRv
VVJMKHVybCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgcHJvZmlsZUhl
YWRlci5zYXZlVG9GaWxlKCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHMoc291cmNlU3RyaW5naWZpZWQsIHNhdmVkU25hcHNob3REYXRhLCAiU2F2ZWQgc25hcHNo
b3QgZGF0YSIpOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmFwcGVu
ZCA9IG9sZEFwcGVuZDsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGluamVjdE1vY2tQcm9maWxlKHRydWUsIHNuYXBzaG90TG9hZGVkKTsKLSAg
ICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiBoZWFwU25hcHNob3RMb2FkRnJvbUZpbGVUZXN0
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5w
YW5lbHMucHJvZmlsZXM7Ci0KLSAgICAgICAgICAgIHZhciBmaWxlTW9jayA9IHsKLSAgICAgICAg
ICAgICAgICBuYW1lOiAibW9jay5oZWFwc25hcHNob3QiLAotICAgICAgICAgICAgICAgIHNpemU6
IHNvdXJjZVN0cmluZ2lmaWVkLmxlbmd0aAotICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5vdmVycmlkZShXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJv
dG90eXBlLCAnX2NyZWF0ZUZpbGVSZWFkZXInLCBmdW5jdGlvbihmaWxlTW9jaywgZGVsZWdhdGUp
IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgICAgICAgICBzdGFydDog
ZnVuY3Rpb24ocmVjZWl2ZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlbGVnYXRlLm9u
VHJhbnNmZXJTdGFydGVkKHRoaXMpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZXIu
d3JpdGUoc291cmNlU3RyaW5naWZpZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdh
dGUub25DaHVua1RyYW5zZmVycmVkKHRoaXMpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmVj
ZWl2ZXIuY2xvc2UoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlbGVnYXRlLm9uVHJhbnNm
ZXJGaW5pc2hlZCh0aGlzKTsKLSAgICAgICAgICAgICAgICAgICAgfSwKLQotICAgICAgICAgICAg
ICAgICAgICBsb2FkZWRTaXplOiBmdW5jdGlvbigpCi0gICAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWxlTW9jay5zaXplOwotICAgICAgICAgICAg
ICAgICAgICB9LAotCi0gICAgICAgICAgICAgICAgICAgIGZpbGVTaXplOiBmdW5jdGlvbigpCi0g
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWxl
TW9jay5zaXplOwotICAgICAgICAgICAgICAgICAgICB9LAotCi0gICAgICAgICAgICAgICAgICAg
IGZpbGVOYW1lOiBmdW5jdGlvbigpCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBmaWxlTW9jay5uYW1lOwotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5wcm90b3R5
cGUsICJfc25hcHNob3RSZWNlaXZlZCIsIGZ1bmN0aW9uKCkgeyBuZXh0KCk7IH0pOwotICAgICAg
ICAgICAgcGFuZWwuX2xvYWRGcm9tRmlsZShmaWxlTW9jayk7Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gaGVhcFNuYXBzaG90UmVqZWN0VG9TYXZlVG9GaWxlVGVzdChuZXh0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBzbmFwc2hvdExvYWRlZChwcm9maWxlSGVhZGVy
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNhdmVNb2NrKHVybCwg
ZGF0YSkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0VHJ1ZShwcm9maWxlSGVhZGVyLmNhblNhdmVUb0ZpbGUoKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5vdmVycmlkZShJbnNwZWN0b3JGcm9udGVuZEhvc3QsICJzYXZlIiwgc2F2ZU1v
Y2spOwotICAgICAgICAgICAgICAgIHByb2ZpbGVIZWFkZXIuc2F2ZVRvRmlsZSgpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBpbmplY3RNb2NrUHJvZmlsZShmYWxzZSwgc25hcHNob3RM
b2FkZWQpOwotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRoaXMgdGVzdCBjaGVja3MgSGVhcFNuYXBz
aG90cyBsb2FkZXIuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXJldmVhbC1pbi1kb21pbmF0
b3JzLXZpZXctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3QtcmV2ZWFsLWluLWRvbWluYXRvcnMtdmlldy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzNmU0NDMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtcmV2ZWFsLWluLWRvbWluYXRvcnMt
dmlldy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1UZXN0cyB0
aGF0IGFuIG9iamVjdCBjYW4gYmUgcmV2ZWFsZWQgaW4gdGhlIERvbWluYXRvcnMgdmlldyBvZiBk
ZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4KLQotUHJvZmlsZXIgd2FzIGVuYWJsZWQuCi1EZXRhaWxl
ZCBoZWFwIHByb2ZpbGVzIHdlcmUgZW5hYmxlZC4KLQotUnVubmluZzogdGVzdFNob3dBbGwKLVJl
dmVhbGluZyBub2RlLi4uCi1Ob2RlIHJldmVhbGVkLgotCi1Qcm9maWxlciB3YXMgZGlzYWJsZWQu
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LXJldmVhbC1pbi1kb21pbmF0b3JzLXZpZXcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXJldmVhbC1pbi1kb21pbmF0b3JzLXZpZXcuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA3YmY5NC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1yZXZlYWwtaW4tZG9taW5h
dG9ycy12aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hvdC10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBpbnN0
YW5jZUNvdW50ID0gMjU7Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5j
ZUNvdW50KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RT
dWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTaG93QWxsKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVIZWFwU25h
cHNob3QsIHN0ZXAxKTsKLSAgICAgICAgICAgIHZhciBub2RlQUhlYXBTbmFwc2hvdE9iamVjdElk
ID0gNSArIDIqMTUgOyAvLyBJZCBvZiB0aGUgMTZ0aCBBIG5vZGUuCi0KLSAgICAgICAgICAgIGZ1
bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERvbWluYXRvcnNEYXRhR3Jp
ZC5wcm90b3R5cGUsICJoaWdobGlnaHROb2RlIiwgZGlkSGlnaGxpZ2h0Tm9kZSk7Ci0gICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5zaG93T2JqZWN0KG5vZGVBSGVh
cFNuYXBzaG90T2JqZWN0SWQsICJEb21pbmF0b3JzIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlJldmVhbGluZyBub2RlLi4uIik7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEhpZ2hsaWdodE5vZGUobm9kZSkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhub2RlQUhlYXBT
bmFwc2hvdE9iamVjdElkLCBub2RlLnNuYXBzaG90Tm9kZUlkLCAiVW54cGVjdGVkIG5vZGUgaGln
aGxpZ2h0ZWQuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5v
ZGUgcmV2ZWFsZWQuIik7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGFuIG9iamVjdCBjYW4gYmUgcmV2ZWFsZWQg
aW4gdGhlIERvbWluYXRvcnMgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4KLTwvcD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25h
cHNob3Qtc3VtbWFyeS1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkMWE4ODAuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1leHBh
bnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw0ICswLDAgQEAKLVRlc3RzIFN1bW1hcnkgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBz
aG90cy4gRXhwYW5kZWQgbm9kZXMgbXVzdCBiZSBwcmVzZXJ2ZWQgYWZ0ZXIgc29ydGluZy4KLQot
SGVhcCBwcm9maWxlciBpcyBkaXNhYmxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LWV4cGFuc2lvbi1wcmVzZXJ2ZWQt
d2hlbi1zb3J0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1zdW1tYXJ5LWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlZjQwMzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1leHBhbnNpb24t
cHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9ImhlYXAtc25h
cHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDI1OwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFw
c2hvdCgpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25h
cHNob3QoaW5zdGFuY2VDb3VudCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFw
U25hcHNob3RUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0RXhwYW5zaW9uUHJlc2Vy
dmVkV2hlblNvcnRpbmcobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdCwgc3RlcDEpOwotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIlN1bW1hcnkiLCBzdGVwMik7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICB2YXIgcm93ID0gSW5zcGVjdG9yVGVzdC5maW5kUm93KCJvYmplY3QiLCAiQiIp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhcm93
LCAiXCJCXCIgcm93Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3co
cm93LCBleHBhbmRCKTsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbiBleHBhbmRCKCkKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3Bl
Y3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYnV0dG9uc05vZGUsICJubyBidXR0b25zIG5v
ZGUgZm91bmQhIik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93
TW9yZUJ1dHRvbigic2hvd0FsbCIsIGJ1dHRvbnNOb2RlLCBzdGVwMyk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgY29sdW1uczsKLSAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb2x1
bW5zID0gSW5zcGVjdG9yVGVzdC52aWV3Q29sdW1ucygpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY2xpY2tDb2x1bW4oY29sdW1uc1swXSwgc3RlcDQpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgdmFyIHJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0IiwgIkIiKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywgIlwi
QlwiIHJvdyIpOwotICAgICAgICAgICAgICAgIHZhciBiSW5zdGFuY2VSb3cgPSByb3cuY2hpbGRy
ZW5bMF07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwg
ISFiSW5zdGFuY2VSb3csICJcIkJcIiBpbnN0YW5jZSByb3ciKTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGFuZFJvdyhiSW5zdGFuY2VSb3csIGV4cGFuZEEpOwotICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uIGV4cGFuZEEocm93KQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgZnVuY3Rpb24gcHJvcGVydHlNYXRjaGVyKGRhdGEpCi0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5hbWUgPT09ICJh
IiAmJiBkYXRhLnZhbHVlLmNoYXJBdCgwKSA9PT0gIkEiOwotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIHZhciBhUm93ID0gSW5zcGVjdG9yVGVzdC5maW5kUm93KCJv
YmplY3QiLCBwcm9wZXJ0eU1hdGNoZXIsIHJvdyk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYVJvdywgIlwiYTogQVwiIHJvdyIpOwotICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFJvdyhhUm93LCBzdGVwNSk7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgY29sdW1u
Q29udGVudHM7Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNSgpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgY29sdW1uQ29udGVudHMgPSBJbnNwZWN0b3JUZXN0LmNvbHVtbkNvbnRl
bnRzKGNvbHVtbnNbMF0pOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tDb2x1
bW4oY29sdW1uc1swXSwgY2xpY2tUd2ljZSk7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24gY2xp
Y2tUd2ljZSgpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0sIHN0ZXA2KTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA2KCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgbmV3Q29sdW1uQ29udGVudHMgPSBJbnNwZWN0b3JU
ZXN0LmNvbHVtbkNvbnRlbnRzKGNvbHVtbnNbMF0pOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0Q29sdW1uQ29udGVudHNFcXVhbChjb2x1bW5Db250ZW50cywgbmV3Q29sdW1u
Q29udGVudHMpOwotICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIFN1bW1hcnkgdmlldyBvZiBkZXRhaWxl
ZCBoZWFwIHNuYXBzaG90cy4KLUV4cGFuZGVkIG5vZGVzIG11c3QgYmUgcHJlc2VydmVkIGFmdGVy
IHNvcnRpbmcuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXJldGFpbmVycy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1z
dW1tYXJ5LXJldGFpbmVycy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI4ZjA4YTcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2hlYXAtc25hcHNob3Qtc3VtbWFyeS1yZXRhaW5lcnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTYgKzAsMCBAQAotVGVzdHMgcmV0YWluZXJzIHZpZXcuCi0tIE51bWJlciBvZiBy
ZXRhaW5lcnMgb2YgYW4gQSBvYmplY3QgbXVzdCBiZSAyIChBIGl0c2VsZiBhbmQgQikuCi0tIFdo
ZW4gYW4gb2JqZWN0IGhhcyBqdXN0IG9uZSByZXRhaW5lciBpdCBtdXN0IGJlIGV4cGFuZGVkIGF1
dG9tYXRpY2FsbHkgdW50aWwKLSAgdGhlcmUncyBhbiBvYmplY3QgaGF2aW5nIHR3byBvciBtb3Jl
IHJldGFpbmVycy4KLS0gVGVzdCB0aGUgZXhwYW5zaW9uIG9mIGEgbG9uZyByZXRhaW5tZW50IGNo
YWluIGlzIGxpbWl0ZWQgYnkgYSBjZXJ0YWluIGxldmVsLgotUHJvZmlsZXIgd2FzIGVuYWJsZWQu
Ci1EZXRhaWxlZCBoZWFwIHByb2ZpbGVzIHdlcmUgZW5hYmxlZC4KLQotUnVubmluZzogdGVzdFJl
dGFpbmVyc1ZpZXcKLQotUnVubmluZzogdGVzdFJldGFpbmVyc0F1dG9FeHBhbmRTaW5nbGVSZXRh
aW5lcgotCi1SdW5uaW5nOiB0ZXN0UmV0YWluZXJzQXV0b0V4cGFuZFNpbmdsZVJldGFpbmVyTGlt
aXQKLQotUHJvZmlsZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXJldGFpbmVycy5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1yZXRh
aW5lcnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWVjYzM0Ny4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1t
YXJ5LXJldGFpbmVycy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjExICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSJoZWFwLXNuYXBzaG90LXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFy
IGluc3RhbmNlQ291bnQgPSAyNTsKLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3QoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90KGlu
c3RhbmNlQ291bnQpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuSGVhcFNuYXBzaG90
VGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFJldGFpbmVyc1ZpZXcobmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNy
ZWF0ZUhlYXBTbmFwc2hvdCwgc3RlcDEpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1Zp
ZXcoIlN1bW1hcnkiLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgcm93ID0gSW5z
cGVjdG9yVGVzdC5maW5kUm93KCJvYmplY3QiLCAiQSIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhcm93LCAiXCJBXCIgcm93Iik7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3cocm93LCBzdGVwMyk7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKHJvdykKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICB2YXIgY291bnQgPSByb3cuZGF0YVsiY291bnQiXTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhpbnN0YW5jZUNvdW50LnRvU3RyaW5nKCks
IGNvdW50KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrUm93QW5kR2V0UmV0
YWluZXJzKHJvdy5jaGlsZHJlblswXSwgc3RlcDQpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBzdGVwNChyZXRhaW5lcnNSb290KQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIHZhciByb3dzU2hvd24gPSBJbnNwZWN0b3JUZXN0LmNvdW50RGF0YVJvd3MocmV0
YWluZXJzUm9vdCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMo
Miwgcm93c1Nob3duLCAicmV0YWluaW5nIG9iamVjdHMiKTsKLSAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KG5leHQsIDApOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1
bmN0aW9uIHRlc3RSZXRhaW5lcnNBdXRvRXhwYW5kU2luZ2xlUmV0YWluZXIobmV4dCkKLSAgICAg
ICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAvLyBNb2NraW5nIHJlc3VsdHMgb2YgcnVubmluZyB0aGUg
Zm9sbG93aW5nIGNvZGU6Ci0gICAgICAgICAgICAgICAgLy8KLSAgICAgICAgICAgICAgICAvLyBm
dW5jdGlvbiBMMSh4KSB7IHRoaXMueCA9IHg7IH0KLSAgICAgICAgICAgICAgICAvLyBmdW5jdGlv
biBMMih5KSB7IHRoaXMueSA9IHk7IH0KLSAgICAgICAgICAgICAgICAvLyBmdW5jdGlvbiBMMygp
IHsgfQotICAgICAgICAgICAgICAgIC8vIHZhciBsMSA9IG5ldyBMMShuZXcgTDIobmV3IEwzKCkp
KTsKLSAgICAgICAgICAgICAgICAvLyB2YXIgcm9vdCA9IHsgbDFhOiBsMSwgbDFiOiBsMSB9Owot
ICAgICAgICAgICAgICAgIC8vIGwxID0gbnVsbDsKLQotICAgICAgICAgICAgICAgIHZhciBzaXpl
T2ZMMyA9IDEwMDAwMDA7Ci0gICAgICAgICAgICAgICAgdmFyIGJ1aWxkZXIgPSBuZXcgSW5zcGVj
dG9yVGVzdC5IZWFwU25hcHNob3RCdWlsZGVyKCk7Ci0gICAgICAgICAgICAgICAgdmFyIHJvb3RO
b2RlID0gYnVpbGRlci5yb290Tm9kZTsKLQotICAgICAgICAgICAgICAgIHZhciBnY1Jvb3RzTm9k
ZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBOb2RlKCIoR0Mgcm9vdHMpIik7Ci0gICAgICAgICAg
ICAgICAgcm9vdE5vZGUubGlua05vZGUoZ2NSb290c05vZGUsIEluc3BlY3RvclRlc3QuSGVhcEVk
Z2UuVHlwZS5lbGVtZW50KTsKLQotICAgICAgICAgICAgICAgIHZhciB3aW5kb3dOb2RlID0gbmV3
IEluc3BlY3RvclRlc3QuSGVhcE5vZGUoIldpbmRvdyIsIDIwKTsKLSAgICAgICAgICAgICAgICBy
b290Tm9kZS5saW5rTm9kZSh3aW5kb3dOb2RlLCBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5cGUu
c2hvcnRjdXQpOwotICAgICAgICAgICAgICAgIGdjUm9vdHNOb2RlLmxpbmtOb2RlKHdpbmRvd05v
ZGUsIEluc3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlwZS5lbGVtZW50KTsKLQotICAgICAgICAgICAg
ICAgIHZhciBsM05vZGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5IZWFwTm9kZSgiTDMiLCBzaXplT2ZM
Myk7Ci0gICAgICAgICAgICAgICAgdmFyIGwyTm9kZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBO
b2RlKCJMMiIsIDMyKTsKLSAgICAgICAgICAgICAgICB2YXIgbDFOb2RlID0gbmV3IEluc3BlY3Rv
clRlc3QuSGVhcE5vZGUoIkwxIiwgMzIpOwotICAgICAgICAgICAgICAgIHZhciByb290Tm9kZSA9
IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBOb2RlKCJPYmplY3QiLCAzMik7Ci0gICAgICAgICAgICAg
ICAgd2luZG93Tm9kZS5saW5rTm9kZShyb290Tm9kZSwgSW5zcGVjdG9yVGVzdC5IZWFwRWRnZS5U
eXBlLnByb3BlcnR5LCAicm9vdCIpOwotICAgICAgICAgICAgICAgIHJvb3ROb2RlLmxpbmtOb2Rl
KGwxTm9kZSwgSW5zcGVjdG9yVGVzdC5IZWFwRWRnZS5UeXBlLnByb3BlcnR5LCAibDFhIik7Ci0g
ICAgICAgICAgICAgICAgcm9vdE5vZGUubGlua05vZGUobDFOb2RlLCBJbnNwZWN0b3JUZXN0Lkhl
YXBFZGdlLlR5cGUucHJvcGVydHksICJsMWIiKTsKLSAgICAgICAgICAgICAgICBsMU5vZGUubGlu
a05vZGUobDJOb2RlLCBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5cGUucHJvcGVydHksICJ4Iik7
Ci0gICAgICAgICAgICAgICAgbDJOb2RlLmxpbmtOb2RlKGwzTm9kZSwgSW5zcGVjdG9yVGVzdC5I
ZWFwRWRnZS5UeXBlLnByb3BlcnR5LCAieSIpOwotICAgICAgICAgICAgICAgIHJldHVybiBidWls
ZGVyLmdlbmVyYXRlU25hcHNob3QoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdCwgc3RlcDEp
OwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIlN1bW1hcnkiLCBzdGVwMik7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICB2YXIgcm93ID0gSW5zcGVjdG9yVGVzdC5maW5kUm93KCJvYmpl
Y3QiLCAiTDMiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0
cnVlLCAhIXJvdywgIlwiTDNcIiByb3ciKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGFuZFJvdyhyb3csIHN0ZXAzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDMocm93KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciBjb3Vu
dCA9IHJvdy5kYXRhWyJjb3VudCJdOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKCIxIiwgY291bnQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xp
Y2tSb3dBbmRHZXRSZXRhaW5lcnMocm93LmNoaWxkcmVuWzBdLCBzdGVwNCk7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KHJldGFpbmVyc1Jvb3QpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0YWluZXJzUm9vdC5kYXRhR3JpZC5hZGRFdmVudExp
c3RlbmVyKAotICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UmV0
YWlubWVudERhdGFHcmlkLkV2ZW50cy5FeHBhbmRSZXRhaW5lcnNDb21wbGV0ZSwKLSAgICAgICAg
ICAgICAgICAgICAgc3RlcDUuYmluZCh0aGlzLCByZXRhaW5lcnNSb290KSk7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA1KHJldGFpbmVyc1Jvb3QpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIGwzID0gcmV0YWluZXJzUm9vdDsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCBsMy5jaGlsZHJlbi5sZW5ndGgs
ICJPbmUgcmV0YWluZXIgb2YgTDMiKTsKLSAgICAgICAgICAgICAgICB2YXIgbDIgPSBsMy5jaGls
ZHJlblswXTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygieSIs
IGwyLmRhdGEub2JqZWN0Lm5hbWUpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKDEsIGwyLmNoaWxkcmVuLmxlbmd0aCwgIk9uZSByZXRhaW5lciBvZiBMMiIpOwot
ICAgICAgICAgICAgICAgIHZhciBsMSA9IGwyLmNoaWxkcmVuWzBdOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJ4IiwgbDEuZGF0YS5vYmplY3QubmFtZSk7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMiwgbDEuY2hpbGRyZW4u
bGVuZ3RoLCAiVHdvIHJldGFpbmVycyBvZiBMMSIpOwotICAgICAgICAgICAgICAgIHZhciBsMXJl
dGFpbmVycyA9IFtsMS5jaGlsZHJlblswXS5kYXRhLm9iamVjdC5uYW1lLCBsMS5jaGlsZHJlblsx
XS5kYXRhLm9iamVjdC5uYW1lXTsKLSAgICAgICAgICAgICAgICBsMXJldGFpbmVycy5zb3J0KCk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoImwxYSIsIGwxcmV0
YWluZXJzWzBdKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygi
bDFiIiwgbDFyZXRhaW5lcnNbMV0pOwotICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwg
MCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFJl
dGFpbmVyc0F1dG9FeHBhbmRTaW5nbGVSZXRhaW5lckxpbWl0KG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdCgpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgLy8gTW9ja2luZyByZXN1bHRzIG9mIHJ1bm5pbmcgdGhlIGZvbGxvd2lu
ZyBjb2RlOgotICAgICAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAgICAgLy8gZnVuY3Rpb24g
VGFpbCgpIHt9Ci0gICAgICAgICAgICAgICAgLy8gdmFyIGhlYWQgPSBuZXcgVGFpbCgpOwotICAg
ICAgICAgICAgICAgIC8vIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKQotICAgICAgICAg
ICAgICAgIC8vICAgaGVhZCA9IHsgbmV4dDogaGVhZCB9OwotCi0gICAgICAgICAgICAgICAgdmFy
IGJ1aWxkZXIgPSBuZXcgSW5zcGVjdG9yVGVzdC5IZWFwU25hcHNob3RCdWlsZGVyKCk7Ci0gICAg
ICAgICAgICAgICAgdmFyIHJvb3ROb2RlID0gYnVpbGRlci5yb290Tm9kZTsKLQotICAgICAgICAg
ICAgICAgIHZhciBnY1Jvb3RzTm9kZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBOb2RlKCIoR0Mg
cm9vdHMpIik7Ci0gICAgICAgICAgICAgICAgcm9vdE5vZGUubGlua05vZGUoZ2NSb290c05vZGUs
IEluc3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlwZS5lbGVtZW50KTsKLQotICAgICAgICAgICAgICAg
IHZhciB3aW5kb3dOb2RlID0gbmV3IEluc3BlY3RvclRlc3QuSGVhcE5vZGUoIldpbmRvdyIsIDIw
KTsKLSAgICAgICAgICAgICAgICByb290Tm9kZS5saW5rTm9kZSh3aW5kb3dOb2RlLCBJbnNwZWN0
b3JUZXN0LkhlYXBFZGdlLlR5cGUuc2hvcnRjdXQpOwotICAgICAgICAgICAgICAgIGdjUm9vdHNO
b2RlLmxpbmtOb2RlKHdpbmRvd05vZGUsIEluc3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlwZS5lbGVt
ZW50KTsKLQotICAgICAgICAgICAgICAgIHZhciBoZWFkTm9kZSA9IG5ldyBJbnNwZWN0b3JUZXN0
LkhlYXBOb2RlKCJPYmplY3QiLCAzMik7Ci0gICAgICAgICAgICAgICAgd2luZG93Tm9kZS5saW5r
Tm9kZShoZWFkTm9kZSwgSW5zcGVjdG9yVGVzdC5IZWFwRWRnZS5UeXBlLnByb3BlcnR5LCAiaGVh
ZCIpOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgMTAwMDsgKytpKSB7Ci0g
ICAgICAgICAgICAgICAgICB2YXIgbmV4dE5vZGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5IZWFwTm9k
ZSgiT2JqZWN0IiwgMzIpOwotICAgICAgICAgICAgICAgICAgaGVhZE5vZGUubGlua05vZGUobmV4
dE5vZGUsIEluc3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlwZS5wcm9wZXJ0eSwgIm5leHQiKTsKLSAg
ICAgICAgICAgICAgICAgIGhlYWROb2RlID0gbmV4dE5vZGU7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIHZhciB0YWlsTm9kZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBOb2Rl
KCJUYWlsIiwgMzIpOwotICAgICAgICAgICAgICAgIGhlYWROb2RlLmxpbmtOb2RlKHRhaWxOb2Rl
LCBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5cGUucHJvcGVydHksICJuZXh0Iik7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIGJ1aWxkZXIuZ2VuZXJhdGVTbmFwc2hvdCgpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRl
SGVhcFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygi
U3VtbWFyeSIsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24g
c3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0
b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsICJUYWlsIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3csICJcIlRhaWxcIiByb3ciKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFJvdyhyb3csIHN0ZXAzKTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMocm93KQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIHZhciBjb3VudCA9IHJvdy5kYXRhWyJjb3VudCJdOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCIxIiwgY291bnQpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tSb3dBbmRHZXRSZXRhaW5lcnMocm93LmNoaWxkcmVu
WzBdLCBzdGVwNCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0
KHJldGFpbmVyc1Jvb3QpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0YWluZXJz
Um9vdC5kYXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90UmV0YWlubWVudERhdGFHcmlkLkV2ZW50cy5FeHBhbmRSZXRh
aW5lcnNDb21wbGV0ZSwKLSAgICAgICAgICAgICAgICAgICAgc3RlcDUuYmluZCh0aGlzLCByZXRh
aW5lcnNSb290KSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA1
KHJldGFpbmVyc1Jvb3QpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvd3NT
aG93biA9IEluc3BlY3RvclRlc3QuY291bnREYXRhUm93cyhyZXRhaW5lcnNSb290KTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygyMCwgcm93c1Nob3duLCAicmV0
YWluaW5nIG9iamVjdHMiKTsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHByZT4KLVRlc3RzIHJldGFpbmVycyB2aWV3
LgotLSBOdW1iZXIgb2YgcmV0YWluZXJzIG9mIGFuIEEgb2JqZWN0IG11c3QgYmUgMiAoQSBpdHNl
bGYgYW5kIEIpLjwvdWw+Ci0tIFdoZW4gYW4gb2JqZWN0IGhhcyBqdXN0IG9uZSByZXRhaW5lciBp
dCBtdXN0IGJlIGV4cGFuZGVkIGF1dG9tYXRpY2FsbHkgdW50aWwKLSAgdGhlcmUncyBhbiBvYmpl
Y3QgaGF2aW5nIHR3byBvciBtb3JlIHJldGFpbmVycy4KLS0gVGVzdCB0aGUgZXhwYW5zaW9uIG9m
IGEgbG9uZyByZXRhaW5tZW50IGNoYWluIGlzIGxpbWl0ZWQgYnkgYSBjZXJ0YWluIGxldmVsLgot
PC9wcmU+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNob3ctYWxsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hv
dy1hbGwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjIzYTgx
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LXN1bW1hcnktc2hvdy1hbGwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCAr
MCwwIEBACi1UZXN0cyBTdW1tYXJ5IHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuIFRo
ZSAiU2hvdyBBbGwiIGJ1dHRvbiBtdXN0IHNob3cgYWxsIG5vZGVzLgotCi1IZWFwIHByb2ZpbGVy
IGlzIGRpc2FibGVkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hvdy1hbGwuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hvdy1hbGwuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU1OGMzYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNob3ctYWxsLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hvdC10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjU7
Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50KTsKLSAgICB9
Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShbCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RTaG93QWxsKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVIZWFwU25hcHNob3QsIHN0ZXAxKTsK
LQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc3dpdGNoVG9WaWV3KCJTdW1tYXJ5Iiwgc3RlcDIpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgdmFyIHJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0
IiwgIkEiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVl
LCAhIXJvdywgIlwiQVwiIHJvdyIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
YW5kUm93KHJvdywgc3RlcDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlv
biBzdGVwMyhyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIGNvdW50ID0g
cm93LmRhdGFbImNvdW50Il07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHMoaW5zdGFuY2VDb3VudC50b1N0cmluZygpLCBjb3VudCk7Ci0gICAgICAgICAgICAgICAg
dmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNO
b2RlLCAiYnV0dG9ucyBub2RlIik7Ci0gICAgICAgICAgICAgICAgdmFyIHdvcmRzID0gYnV0dG9u
c05vZGUuc2hvd0FsbC50ZXh0Q29udGVudC5zcGxpdCgiICIpOwotICAgICAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICAg
ICAgdmFyIG1heWJlTnVtYmVyID0gcGFyc2VJbnQod29yZHNbaV0sIDEwKTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKCFpc05hTihtYXliZU51bWJlcikpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhpbnN0YW5jZUNvdW50IC0gcm93Ll9kYXRhR3Jp
ZC5kZWZhdWx0UG9wdWxhdGVDb3VudCgpLCBtYXliZU51bWJlciwgYnV0dG9uc05vZGUuc2hvd0Fs
bC50ZXh0Q29udGVudCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY2xpY2tTaG93TW9yZUJ1dHRvbigic2hvd0FsbCIsIGJ1dHRvbnNOb2RlLCBzdGVw
NCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KHJvdykKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgcm93c1Nob3duID0gSW5zcGVjdG9yVGVz
dC5jb3VudERhdGFSb3dzKHJvdyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHMoaW5zdGFuY2VDb3VudCwgcm93c1Nob3duLCAiYWZ0ZXIgc2hvd0FsbCBjbGljayIp
OwotICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1
dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHMoZmFsc2UsICEhYnV0dG9uc05vZGUsICJidXR0b25zIG5vZGUgZm91bmQgd2hlbiBhbGwgaW5z
dGFuY2VzIGFyZSBzaG93biEiKTsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDAp
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBTdW1tYXJ5IHZpZXcg
b2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi1UaGUgJnF1b3Q7U2hvdyBBbGwmcXVvdDsgYnV0
dG9uIG11c3Qgc2hvdyBhbGwgbm9kZXMuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5
LXNob3ctbmV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNob3ctbmV4dC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNmNTVhYWUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93LW5leHQtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UZXN0cyBTdW1tYXJ5IHZpZXcgb2Yg
ZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuIFJlcGVhdGVkIGNsaWNrcyBvbiAiU2hvdyBOZXh0IiBi
dXR0b24gbXVzdCBzaG93IGFsbCBub2Rlcy4KLQotSGVhcCBwcm9maWxlciBpcyBkaXNhYmxlZAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hv
dC1zdW1tYXJ5LXNob3ctbmV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93LW5leHQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDc0YWRjNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNob3ctbmV4dC5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNTggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNj
cmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDI1OwotICAgIGZ1bmN0
aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdCgpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9y
VGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5zdGFuY2VDb3VudCk7Ci0gICAgfQotCi0gICAgSW5z
cGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0
ZXN0U2hvd05leHQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50
YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdCwgc3RlcDEpOwotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIlN1bW1hcnkiLCBzdGVwMik7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICB2YXIgcm93ID0gSW5zcGVjdG9yVGVzdC5maW5kUm93KCJvYmplY3QiLCAiQSIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhcm93LCAi
XCJBXCIgcm93Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3cocm93
LCBzdGVwMyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKHJv
dykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgcm93c1Nob3duID0gSW5zcGVj
dG9yVGVzdC5jb3VudERhdGFSb3dzKHJvdyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnRFcXVhbHModHJ1ZSwgcm93c1Nob3duIDw9IGluc3RhbmNlQ291bnQsICJzaG93biBt
b3JlIGluc3RhbmNlcyB0aGFuIGNyZWF0ZWQ6ICIgKyByb3dzU2hvd24gKyAiID4gIiArIGluc3Rh
bmNlQ291bnQpOwotICAgICAgICAgICAgICAgIGlmIChyb3dzU2hvd24gPCBpbnN0YW5jZUNvdW50
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3Qu
ZmluZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0RXF1YWxzKHRydWUsICEhYnV0dG9uc05vZGUsICJidXR0b25zIG5vZGUiKTsKLSAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0dG9uKCJzaG93TmV4
dCIsIGJ1dHRvbnNOb2RlLCBzdGVwMyk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyb3dz
U2hvd24gPT09IGluc3RhbmNlQ291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGJ1dHRv
bnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKLSAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZmFsc2UsICEhYnV0dG9uc05vZGUs
ICJidXR0b25zIG5vZGUgZm91bmQgd2hlbiBhbGwgaW5zdGFuY2VzIGFyZSBzaG93biEiKTsKLSAg
ICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChuZXh0LCAwKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIFN1bW1hcnkgdmlldyBv
ZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4KLVJlcGVhdGVkIGNsaWNrcyBvbiAmcXVvdDtTaG93
IE5leHQmcXVvdDsgYnV0dG9uIG11c3Qgc2hvdyBhbGwgbm9kZXMuCi08L3A+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1zdW1tYXJ5LXNob3ctcmFuZ2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hvdy1yYW5nZXMtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDQ5MjVjLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnkt
c2hvdy1yYW5nZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1U
ZXN0cyBzaG93aW5nIHNldmVyYWwgbm9kZSByYW5nZXMgaW4gdGhlIFN1bW1hcnkgdmlldyBvZiBk
ZXRhaWxlZCBoZWFwIHNuYXBzaG90LgotCi1Qcm9maWxlciB3YXMgZW5hYmxlZC4KLURldGFpbGVk
IGhlYXAgcHJvZmlsZXMgd2VyZSBlbmFibGVkLgotCi1SdW5uaW5nOiB0ZXN0U2hvd0FsbAotCi1Q
cm9maWxlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hvdy1yYW5nZXMuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hvdy1yYW5n
ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjc0OWI5My4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5
LXNob3ctcmFuZ2VzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjMgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJ
bnNwZWN0b3Iuc2hvd1BhbmVsKCJwcm9maWxlcyIpOwotCi0gICAgdmFyIGluc3RhbmNlQ291bnQg
PSA1MDsKLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3QoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90KGluc3RhbmNlQ291bnQpOwot
ICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuSGVhcFNuYXBzaG90VGVzdFN1aXRlKFsKLSAg
ICAgICAgZnVuY3Rpb24gdGVzdFNob3dBbGwobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdCwgc3Rl
cDEpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIlN1bW1hcnkiLCBzdGVwMik7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgcm93ID0gSW5zcGVjdG9yVGVzdC5maW5kUm93KCJv
YmplY3QiLCAiQSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KHRydWUsICEhcm93LCAiXCJBXCIgcm93Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBhbmRSb3cocm93LCBzdGVwMyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1
bmN0aW9uIGNoZWNrU2hvd01vcmVCdXR0b24oc2hvd01vcmVCdXR0b24sIGV4cGVjdGVkU3RhcnRQ
b3NpdGlvbiwgZXhwZWN0ZWRFbmRQb3NpdGlvbikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlICwgc2hvd01vcmVCdXR0b24gaW5z
dGFuY2VvZiBXZWJJbnNwZWN0b3IuU2hvd01vcmVEYXRhR3JpZE5vZGUsICJTaG93IG1vcmUgYnV0
dG9uIG5vZGUgbm90IGZvdW5kIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHMoZXhwZWN0ZWRTdGFydFBvc2l0aW9uICwgc2hvd01vcmVCdXR0b24uX3N0YXJ0UG9z
aXRpb24sICJJbmNvcnJlY3Qgc3RhcnQgcG9zaXRpb24iKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydEVxdWFscyhleHBlY3RlZEVuZFBvc2l0aW9uICwgc2hvd01vcmVCdXR0
b24uX2VuZFBvc2l0aW9uLCAiSW5jb3JyZWN0IGVuZCBwb3NpdGlvbiIpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMyhyb3cpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgLy8gX3Bvc2l0aW9uUmFuZ2VzOiBbMCwgMTApCi0gICAgICAgICAgICAgICAg
dmFyIGNvdW50ID0gcm93LmRhdGFbImNvdW50Il07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnRFcXVhbHMoaW5zdGFuY2VDb3VudC50b1N0cmluZygpLCBjb3VudCk7Ci0KLSAg
ICAgICAgICAgICAgICB2YXIgZGVmYXVsdENodW5rU2l6ZSA9IHJvdy5fZGF0YUdyaWQuZGVmYXVs
dFBvcHVsYXRlQ291bnQoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscygxMCwgZGVmYXVsdENodW5rU2l6ZSk7Ci0KLQotICAgICAgICAgICAgICAgIHZhciBzaG93
TW9yZUJ1dHRvbiA9IHJvdy5jaGlsZHJlbltkZWZhdWx0Q2h1bmtTaXplXTsKLSAgICAgICAgICAg
ICAgICBjaGVja1Nob3dNb3JlQnV0dG9uKHNob3dNb3JlQnV0dG9uLCBkZWZhdWx0Q2h1bmtTaXpl
LCBpbnN0YW5jZUNvdW50KTsKLQotICAgICAgICAgICAgICAgIHJvdy5fcG9wdWxhdGVDaGlsZHJl
bigzMCwgNDAsIHN0ZXA0LmJpbmQodGhpcywgcm93KSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0ZXA0KHJvdykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAvLyBfcG9zaXRpb25SYW5nZXM6IFswLCAxMCkgWzMwLCA0MCkKLSAgICAgICAgICAgICAgICBj
aGVja1Nob3dNb3JlQnV0dG9uKHJvdy5jaGlsZHJlblsxMF0sIDEwLCAzMCk7Ci0gICAgICAgICAg
ICAgICAgY2hlY2tTaG93TW9yZUJ1dHRvbihyb3cuY2hpbGRyZW5bKDEwIC0gMCkgKyAxICsgKDQw
IC0gMzApXSwgNDAsIGluc3RhbmNlQ291bnQpOwotCi0gICAgICAgICAgICAgICAgcm93Ll9wb3B1
bGF0ZUNoaWxkcmVuKDIwLCAyNSwgc3RlcDUuYmluZCh0aGlzLCByb3cpKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDUocm93KQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIC8vIF9wb3NpdGlvblJhbmdlczogWzAsIDEwKSBbMjAsIDI1KSBbMzAsIDQw
KQotICAgICAgICAgICAgICAgIGNoZWNrU2hvd01vcmVCdXR0b24ocm93LmNoaWxkcmVuWzEwXSwg
MTAsIDIwKTsKLSAgICAgICAgICAgICAgICBjaGVja1Nob3dNb3JlQnV0dG9uKHJvdy5jaGlsZHJl
blsoMTAgLSAwKSArIDEgKyAoMjUgLSAyMCldLCAyNSwgMzApOwotICAgICAgICAgICAgICAgIGNo
ZWNrU2hvd01vcmVCdXR0b24ocm93LmNoaWxkcmVuWygxMCAtIDApICsgMSArICgyNSAtIDIwKSAr
IDEgKyAoNDAgLSAzMCldLCA0MCwgaW5zdGFuY2VDb3VudCk7Ci0KLSAgICAgICAgICAgICAgICBy
b3cuX3BvcHVsYXRlQ2hpbGRyZW4oMjgsIDM1LCBzdGVwNi5iaW5kKHRoaXMsIHJvdykpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNihyb3cpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgLy8gX3Bvc2l0aW9uUmFuZ2VzOiBbMCwgMTApIFsyMCwgMjUp
IFsyOCwgNDApCi0gICAgICAgICAgICAgICAgY2hlY2tTaG93TW9yZUJ1dHRvbihyb3cuY2hpbGRy
ZW5bMTBdLCAxMCwgMjApOwotICAgICAgICAgICAgICAgIGNoZWNrU2hvd01vcmVCdXR0b24ocm93
LmNoaWxkcmVuWygxMCAtIDApICsgMSArICgyNSAtIDIwKV0sIDI1LCAyOCk7Ci0gICAgICAgICAg
ICAgICAgY2hlY2tTaG93TW9yZUJ1dHRvbihyb3cuY2hpbGRyZW5bKDEwIC0gMCkgKyAxICsgKDI1
IC0gMjApICsgMSArICg0MCAtIDI4KV0sIDQwLCBpbnN0YW5jZUNvdW50KTsKLQotICAgICAgICAg
ICAgICAgIHJvdy5fcG9wdWxhdGVDaGlsZHJlbigxOCwgMjYsIHN0ZXA3LmJpbmQodGhpcywgcm93
KSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA3KHJvdykKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAvLyBfcG9zaXRpb25SYW5nZXM6IFswLCAxMCkg
WzE4LCAyNikgWzI4LCA0MCkKLSAgICAgICAgICAgICAgICBjaGVja1Nob3dNb3JlQnV0dG9uKHJv
dy5jaGlsZHJlblsxMF0sIDEwLCAxOCk7Ci0gICAgICAgICAgICAgICAgY2hlY2tTaG93TW9yZUJ1
dHRvbihyb3cuY2hpbGRyZW5bKDEwIC0gMCkgKyAxICsgKDI2IC0gMTgpXSwgMjYsIDI4KTsKLSAg
ICAgICAgICAgICAgICBjaGVja1Nob3dNb3JlQnV0dG9uKHJvdy5jaGlsZHJlblsoMTAgLSAwKSAr
IDEgKyAoMjYgLSAxOCkgKyAxICsgKDQwIC0gMjgpXSwgNDAsIGluc3RhbmNlQ291bnQpOwotCi0g
ICAgICAgICAgICAgICAgcm93Ll9wb3B1bGF0ZUNoaWxkcmVuKDE1LCA0NSwgc3RlcDguYmluZCh0
aGlzLCByb3cpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDgo
cm93KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8vIF9wb3NpdGlvblJhbmdlczog
WzAsIDEwKSBbMTUsIDQ1KQotICAgICAgICAgICAgICAgIGNoZWNrU2hvd01vcmVCdXR0b24ocm93
LmNoaWxkcmVuWzEwXSwgMTAsIDE1KTsKLSAgICAgICAgICAgICAgICBjaGVja1Nob3dNb3JlQnV0
dG9uKHJvdy5jaGlsZHJlblsoMTAgLSAwKSArIDEgKyAoNDUgLSAxNSldLCA0NSwgaW5zdGFuY2VD
b3VudCk7Ci0KLSAgICAgICAgICAgICAgICByb3cuX3BvcHVsYXRlQ2hpbGRyZW4oMTAsIDE1LCBz
dGVwOS5iaW5kKHRoaXMsIHJvdykpOwotICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwg
MCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA5KHJvdykKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAvLyBfcG9zaXRpb25SYW5nZXM6IFswLCA0NSkK
LSAgICAgICAgICAgICAgICBjaGVja1Nob3dNb3JlQnV0dG9uKHJvdy5jaGlsZHJlbls0NV0sIDQ1
LCBpbnN0YW5jZUNvdW50KTsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBzaG93aW5nIHNldmVyYWwg
bm9kZSByYW5nZXMgaW4gdGhlIFN1bW1hcnkgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90
LgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93bi1ub2RlLWNvdW50LXByZXNl
cnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13
aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
MmYwYTVmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFw
LXNuYXBzaG90LXN1bW1hcnktc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5n
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgU3VtbWFy
eSB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBTaG93biBub2RlIGNvdW50IG11c3Qg
YmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcuCi0KLUhlYXAgcHJvZmlsZXIgaXMgZGlzYWJsZWQK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3Qtc3VtbWFyeS1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hv
d24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRhMDFjMGEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93bi1ub2RlLWNvdW50LXByZXNl
cnZlZC13aGVuLXNvcnRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSJoZWFwLXNuYXBzaG90
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
V2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicHJvZmlsZXMiKTsKLQotICAgIHZhciBpbnN0YW5jZUNv
dW50ID0gMjU7Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50
KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShb
Ci0gICAgICAgIGZ1bmN0aW9uIHRlc3RFeHBhbnNpb25QcmVzZXJ2ZWRXaGVuU29ydGluZyhuZXh0
KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNo
b3QoY3JlYXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0
ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRj
aFRvVmlldygiU3VtbWFyeSIsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
dmFyIGNvbHVtbnM7Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgY29sdW1ucyA9IEluc3BlY3RvclRlc3Qudmlld0NvbHVtbnMoKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0sIHN0
ZXAzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRS
b3coIm9iamVjdCIsICJCIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHModHJ1ZSwgISFyb3csICJcIkJcIiByb3ciKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGFuZFJvdyhyb3csIHNob3dOZXh0KTsKLSAgICAgICAgICAgICAgICBmdW5jdGlv
biBzaG93TmV4dChyb3cpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB2
YXIgYnV0dG9uc05vZGUgPSBJbnNwZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOwotICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRv
bnNOb2RlLCAibm8gYnV0dG9ucyBub2RlIGZvdW5kISIpOwotICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNsaWNrU2hvd01vcmVCdXR0b24oInNob3dOZXh0IiwgYnV0dG9uc05vZGUs
IHN0ZXA0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IHZhciBub2RlQ291bnQ7Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNChyb3cpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgLy8gVGhlcmUgbXVzdCBiZSBlbm91Z2ggbm9kZXMgdG8g
aGF2ZSBzb21lIHVucmV2ZWFsZWQuCi0gICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0g
SW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAibm8gYnV0dG9ucyBu
b2RlIGZvdW5kISIpOwotCi0gICAgICAgICAgICAgICAgbm9kZUNvdW50ID0gSW5zcGVjdG9yVGVz
dC5jb2x1bW5Db250ZW50cyhjb2x1bW5zWzBdKS5sZW5ndGg7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgbm9kZUNvdW50ID4gMCwgIm5vZGVDb3VudCA+
IDAiKTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tDb2x1bW4oY29sdW1u
c1swXSwgY2xpY2tUd2ljZSk7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24gY2xpY2tUd2ljZSgp
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNs
aWNrQ29sdW1uKGNvbHVtbnNbMF0sIHN0ZXA2KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA2KCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICB2YXIgbmV3Tm9kZUNvdW50ID0gSW5zcGVjdG9yVGVzdC5jb2x1bW5Db250
ZW50cyhjb2x1bW5zWzBdKS5sZW5ndGg7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRFcXVhbHMobm9kZUNvdW50LCBuZXdOb2RlQ291bnQpOwotICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQobmV4dCwgMCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRl
c3RzIFN1bW1hcnkgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4KLVNob3duIG5vZGUg
Y291bnQgbXVzdCBiZSBwcmVzZXJ2ZWQgYWZ0ZXIgc29ydGluZy4KLTwvcD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNu
YXBzaG90LXN1bW1hcnktc29ydGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNvcnRpbmctZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODMwNzYwLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc29ydGluZy1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRlc3RzIHNvcnRpbmcg
aW4gU3VtbWFyeSB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgotCi1IZWFwIHByb2Zp
bGVyIGlzIGRpc2FibGVkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc29ydGluZy1maWVsZHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zb3J0
aW5nLWZpZWxkcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdk
YTBkYTEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3Qtc3VtbWFyeS1zb3J0aW5nLWZpZWxkcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw5ICswLDAgQEAKLVRlc3RzIHNvcnRpbmcgaW4gU3VtbWFyeSB2aWV3IG9mIGRldGFp
bGVkIGhlYXAgc25hcHNob3RzLgotCi1Qcm9maWxlciB3YXMgZW5hYmxlZC4KLURldGFpbGVkIGhl
YXAgcHJvZmlsZXMgd2VyZSBlbmFibGVkLgotCi1SdW5uaW5nOiB0ZXN0U29ydGluZwotCi1Qcm9m
aWxlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc29ydGluZy1maWVsZHMuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc29ydGluZy1m
aWVsZHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTMyZWQ0NS4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1t
YXJ5LXNvcnRpbmctZmllbGRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hv
dC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IHZhciBpbnN0YW5jZUNvdW50ID0gMTA7Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hv
dChpbnN0YW5jZUNvdW50KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFw
c2hvdFRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTb3J0aW5nKG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdChjcmVh
dGVIZWFwU25hcHNob3QsIHN0ZXAxKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc3dpdGNoVG9WaWV3
KCJTdW1tYXJ5Iiwgc3RlcDFhKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIGNv
bHVtbnM7Ci0gICAgICAgICAgICB2YXIgY3VycmVudENvbHVtbjsKLSAgICAgICAgICAgIHZhciBj
dXJyZW50Q29sdW1uT3JkZXI7Ci0gICAgICAgICAgICB2YXIgd2luZG93Um93OwotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBzdGVwMWEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZh
ciByb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsICJXaW5kb3ciKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywgIlwiV2lu
ZG93XCIgY2xhc3Mgcm93Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRS
b3cocm93LCBzdGVwMWIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBz
dGVwMWIocm93KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0RXF1YWxzKDEsIHJvdy5jaGlsZHJlbi5sZW5ndGgsICJzaW5nbGUgV2luZG93IG9iamVj
dCIpOwotICAgICAgICAgICAgICAgIHdpbmRvd1JvdyA9IHJvdy5jaGlsZHJlblswXTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXdpbmRvd1Jvdywg
IlwiV2luZG93XCIgaW5zdGFuY2Ugcm93Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBhbmRSb3cod2luZG93Um93LCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb2x1
bW5zID0gSW5zcGVjdG9yVGVzdC52aWV3Q29sdW1ucygpOwotICAgICAgICAgICAgICAgIGN1cnJl
bnRDb2x1bW4gPSAwOwotICAgICAgICAgICAgICAgIGN1cnJlbnRDb2x1bW5PcmRlciA9IGZhbHNl
OwotICAgICAgICAgICAgICAgIHN0ZXAzKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoY3Vy
cmVudENvbHVtbiA+PSBjb2x1bW5zLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KG5leHQsIDApOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tDb2x1bW4oY29sdW1u
c1tjdXJyZW50Q29sdW1uXSwgc3RlcDQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBm
dW5jdGlvbiBzdGVwNChuZXdDb2x1bW5TdGF0ZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBjb2x1bW5zW2N1cnJlbnRDb2x1bW5dID0gbmV3Q29sdW1uU3RhdGU7Ci0gICAgICAgICAg
ICAgICAgdmFyIGNvbHVtbk5hbWUgPSBjb2x1bW5zW2N1cnJlbnRDb2x1bW5dLmlkZW50aWZpZXI7
Ci0gICAgICAgICAgICAgICAgdmFyIGNvbnRlbnRzID0gd2luZG93Um93LmNoaWxkcmVuLm1hcChm
dW5jdGlvbihvYmopIHsgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iai5kYXRhW2NvbHVtbk5hbWVd
KTsgfSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoaW5zdGFu
Y2VDb3VudCwgY29udGVudHMubGVuZ3RoLCAiY29sdW1uIGNvbnRlbnRzIik7Ci0gICAgICAgICAg
ICAgICAgdmFyIHNvcnRUeXBlcyA9IHsgb2JqZWN0OiAidGV4dCIsIGRpc3RhbmNlOiAibnVtYmVy
IiwgY291bnQ6ICJudW1iZXIiLCBzaGFsbG93U2l6ZTogInNpemUiLCByZXRhaW5lZFNpemU6ICJz
aXplIiB9OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUs
ICEhc29ydFR5cGVzW2NvbHVtbnNbY3VycmVudENvbHVtbl0uaWRlbnRpZmllcl0sICJzb3J0IGJ5
IGlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrQXJyYXlJ
c1NvcnRlZChjb250ZW50cywgc29ydFR5cGVzW2NvbHVtbnNbY3VycmVudENvbHVtbl0uaWRlbnRp
Zmllcl0sIGNvbHVtbnNbY3VycmVudENvbHVtbl0uc29ydCk7Ci0KLSAgICAgICAgICAgICAgICBp
ZiAoIWN1cnJlbnRDb2x1bW5PcmRlcikKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudENvbHVt
bk9yZGVyID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgY3VycmVudENvbHVtbk9yZGVyID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICsrY3Vy
cmVudENvbHVtbjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc3RlcDMoKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgc29ydGluZyBpbiBTdW1t
YXJ5IHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi08L3A+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFw
c2hvdC1zdW1tYXJ5LXNvcnRpbmctaW5zdGFuY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc29ydGluZy1pbnN0YW5j
ZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGEwZGExLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LXN1bW1hcnktc29ydGluZy1pbnN0YW5jZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsOSArMCwwIEBACi1UZXN0cyBzb3J0aW5nIGluIFN1bW1hcnkgdmlldyBvZiBkZXRhaWxlZCBo
ZWFwIHNuYXBzaG90cy4KLQotUHJvZmlsZXIgd2FzIGVuYWJsZWQuCi1EZXRhaWxlZCBoZWFwIHBy
b2ZpbGVzIHdlcmUgZW5hYmxlZC4KLQotUnVubmluZzogdGVzdFNvcnRpbmcKLQotUHJvZmlsZXIg
d2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNvcnRpbmctaW5zdGFuY2VzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNvcnRpbmctaW5z
dGFuY2VzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhMjU1NTkuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3Vt
bWFyeS1zb3J0aW5nLWluc3RhbmNlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9ImhlYXAtc25h
cHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDEwOwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFw
c2hvdCgpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25h
cHNob3QoaW5zdGFuY2VDb3VudCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFw
U25hcHNob3RUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U29ydGluZyhuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3Qo
Y3JlYXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAx
KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRv
VmlldygiU3VtbWFyeSIsIHN0ZXAxYSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZh
ciBjb2x1bW5zOwotICAgICAgICAgICAgdmFyIGN1cnJlbnRDb2x1bW47Ci0gICAgICAgICAgICB2
YXIgY3VycmVudENvbHVtbk9yZGVyOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMWEoKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZp
bmRSb3coIm9iamVjdCIsICJCIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHModHJ1ZSwgISFyb3csICJcIkJcIiByb3ciKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGFuZFJvdyhyb3csIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDIocm93KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGNvbHVtbnMgPSBJbnNwZWN0b3JUZXN0LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAgICAgICAgICAg
Y3VycmVudENvbHVtbiA9IDA7Ci0gICAgICAgICAgICAgICAgY3VycmVudENvbHVtbk9yZGVyID0g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgc3RlcDMoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDMoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlm
IChjdXJyZW50Q29sdW1uID49IGNvbHVtbnMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1u
KGNvbHVtbnNbY3VycmVudENvbHVtbl0sIHN0ZXA0KTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDQobmV3Q29sdW1uU3RhdGUpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgY29sdW1uc1tjdXJyZW50Q29sdW1uXSA9IG5ld0NvbHVtblN0YXRlOwotICAg
ICAgICAgICAgICAgIHZhciBjb2x1bW5OYW1lID0gY29sdW1uc1tjdXJyZW50Q29sdW1uXS5pZGVu
dGlmaWVyOwotICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3co
Im9iamVjdCIsICJCIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHModHJ1ZSwgISFyb3csICJcIkJcIiByb3ciKTsKLSAgICAgICAgICAgICAgICB2YXIgY29udGVu
dHMgPSByb3cuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uKG9iaikgeyByZXR1cm4gSlNPTi5zdHJpbmdp
Znkob2JqLmRhdGFbY29sdW1uTmFtZV0pOyB9KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEVxdWFscyhpbnN0YW5jZUNvdW50LCBjb250ZW50cy5sZW5ndGgsICJjb2x1bW4g
Y29udGVudHMiKTsKLSAgICAgICAgICAgICAgICB2YXIgc29ydFR5cGVzID0geyBvYmplY3Q6ICJ0
ZXh0IiwgZGlzdGFuY2U6ICJudW1iZXIiLCBjb3VudDogIm51bWJlciIsIHNoYWxsb3dTaXplOiAi
c2l6ZSIsIHJldGFpbmVkU2l6ZTogInNpemUiIH07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFzb3J0VHlwZXNbY29sdW1uc1tjdXJyZW50Q29sdW1u
XS5pZGVudGlmaWVyXSwgInNvcnQgYnkgaWRlbnRpZmllciIpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY2hlY2tBcnJheUlzU29ydGVkKGNvbnRlbnRzLCBzb3J0VHlwZXNbY29sdW1u
c1tjdXJyZW50Q29sdW1uXS5pZGVudGlmaWVyXSwgY29sdW1uc1tjdXJyZW50Q29sdW1uXS5zb3J0
KTsKLQotICAgICAgICAgICAgICAgIGlmICghY3VycmVudENvbHVtbk9yZGVyKQotICAgICAgICAg
ICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSB0cnVlOwotICAgICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSBmYWxzZTsKLSAg
ICAgICAgICAgICAgICAgICAgKytjdXJyZW50Q29sdW1uOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBzdGVwMygpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7
Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
Ci1UZXN0cyBzb3J0aW5nIGluIFN1bW1hcnkgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90
cy4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc29ydGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zb3J0aW5nLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkYWYyNjkuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zb3J0
aW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
ICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hvdC10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBpbnN0YW5jZUNv
dW50ID0gMjU7Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50
KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShb
Ci0gICAgICAgIGZ1bmN0aW9uIHRlc3RTb3J0aW5nKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVIZWFwU25hcHNob3Qs
IHN0ZXAxKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc3dpdGNoVG9WaWV3KCJTdW1tYXJ5Iiwgc3Rl
cDIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgY29sdW1uczsKLSAgICAgICAg
ICAgIHZhciBjdXJyZW50Q29sdW1uOwotICAgICAgICAgICAgdmFyIGN1cnJlbnRDb2x1bW5PcmRl
cjsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIGNvbHVtbnMgPSBJbnNwZWN0b3JUZXN0LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAg
ICAgICAgICAgY3VycmVudENvbHVtbiA9IDA7Ci0gICAgICAgICAgICAgICAgY3VycmVudENvbHVt
bk9yZGVyID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc2V0VGltZW91dChzdGVwMywgMCk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbiA+PSBjb2x1bW5zLmxlbmd0aCkg
ewotICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOwotICAgICAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zW2N1cnJlbnRDb2x1bW5dLCBzdGVwNCk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KG5ld0NvbHVtblN0YXRl
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbHVtbnNbY3VycmVudENvbHVtbl0g
PSBuZXdDb2x1bW5TdGF0ZTsKLSAgICAgICAgICAgICAgICB2YXIgY29udGVudHMgPSBJbnNwZWN0
b3JUZXN0LmNvbHVtbkNvbnRlbnRzKGNvbHVtbnNbY3VycmVudENvbHVtbl0pOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhY29udGVudHMubGVuZ3Ro
LCAiY29sdW1uIGNvbnRlbnRzIik7Ci0gICAgICAgICAgICAgICAgdmFyIHNvcnRUeXBlcyA9IHsg
b2JqZWN0OiAidGV4dCIsIGRpc3RhbmNlOiAibnVtYmVyIiwgY291bnQ6ICJudW1iZXIiLCBzaGFs
bG93U2l6ZTogInNpemUiLCByZXRhaW5lZFNpemU6ICJzaXplIiB9OwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhc29ydFR5cGVzW2NvbHVtbnNbY3Vy
cmVudENvbHVtbl0uaWRlbnRpZmllcl0sICJzb3J0IGJ5IGlkZW50aWZpZXIiKTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrQXJyYXlJc1NvcnRlZChjb250ZW50cywgc29ydFR5
cGVzW2NvbHVtbnNbY3VycmVudENvbHVtbl0uaWRlbnRpZmllcl0sIGNvbHVtbnNbY3VycmVudENv
bHVtbl0uc29ydCk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnRDb2x1bW5PcmRlcikK
LSAgICAgICAgICAgICAgICAgICAgY3VycmVudENvbHVtbk9yZGVyID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudENvbHVtbk9yZGVyID0g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICsrY3VycmVudENvbHVtbjsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgc2V0VGltZW91dChzdGVwMywgMCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHNvcnRpbmcgaW4gU3VtbWFyeSB2aWV3IG9m
IGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtdGVzdC5q
cyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3YTc3YmIuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtdGVzdC5qcworKysgL2Rl
di9udWxsCkBAIC0xLDc3NCArMCwwIEBACi12YXIgaW5pdGlhbGl6ZV9IZWFwU25hcHNob3RUZXN0
ID0gZnVuY3Rpb24oKSB7Ci0KLUluc3BlY3RvclRlc3QuY3JlYXRlSlNIZWFwU25hcHNob3RNb2Nr
T2JqZWN0ID0gZnVuY3Rpb24oKQotewotICAgIHJldHVybiB7Ci0gICAgICAgIF9yb290Tm9kZUlu
ZGV4OiAwLAotICAgICAgICBfbm9kZVR5cGVPZmZzZXQ6IDAsCi0gICAgICAgIF9ub2RlTmFtZU9m
ZnNldDogMSwKLSAgICAgICAgX25vZGVFZGdlQ291bnRPZmZzZXQ6IDIsCi0gICAgICAgIF9ub2Rl
RmllbGRDb3VudDogMywKLSAgICAgICAgX2VkZ2VGaWVsZHNDb3VudDogMywKLSAgICAgICAgX2Vk
Z2VUeXBlT2Zmc2V0OiAwLAotICAgICAgICBfZWRnZU5hbWVPZmZzZXQ6IDEsCi0gICAgICAgIF9l
ZGdlVG9Ob2RlT2Zmc2V0OiAyLAotICAgICAgICBfbm9kZVR5cGVzOiBbImhpZGRlbiIsICJvYmpl
Y3QiXSwKLSAgICAgICAgX2VkZ2VUeXBlczogWyJlbGVtZW50IiwgInByb3BlcnR5IiwgInNob3J0
Y3V0Il0sCi0gICAgICAgIF9lZGdlU2hvcnRjdXRUeXBlOiAtMSwKLSAgICAgICAgX2VkZ2VIaWRk
ZW5UeXBlOiAtMSwKLSAgICAgICAgX2VkZ2VFbGVtZW50VHlwZTogMCwKLSAgICAgICAgX3JlYWxO
b2Rlc0xlbmd0aDogMTgsCi0gICAgICAgIC8vIFJlcHJlc2VudHMgdGhlIGZvbGxvd2luZyBncmFw
aDoKLSAgICAgICAgLy8gICAobnVtYmVycyBpbiBwYXJlbnRoZXNlcyBpbmRpY2F0ZSBub2RlIG9m
ZnNldCkKLSAgICAgICAgLy8gCi0gICAgICAgIC8vICAgICAgICAgLT4gQSAoMykgLS1hYy0gQyAo
OSkgLWNlLSBFKDE1KQotICAgICAgICAvLyAgICAgICBhLyAgIHwgICAgICAgICAgLwotICAgICAg
ICAvLyAgIiIgKDApICAgIDEgICAgLSBiYyAtCi0gICAgICAgIC8vICAgICAgIGJcICAgdiAgIC8K
LSAgICAgICAgLy8gICAgICAgICAtPiBCICg2KSAtYmQtIEQgKDEyKQotICAgICAgICAvLwotICAg
ICAgICBfbm9kZXM6IFsKLSAgICAgICAgICAgIDAsIDAsIDIsICAgIC8vICAwOiByb290Ci0gICAg
ICAgICAgICAxLCAxLCAyLCAgICAvLyAgMzogQQotICAgICAgICAgICAgMSwgMiwgMiwgICAgLy8g
IDY6IEIKLSAgICAgICAgICAgIDEsIDMsIDEsICAgIC8vICA5OiBDCi0gICAgICAgICAgICAxLCA0
LCAwLCAgICAvLyAxMjogRAotICAgICAgICAgICAgMSwgNSwgMF0sICAgLy8gMTU6IEUKLSAgICAg
ICAgX2NvbnRhaW5tZW50RWRnZXM6IFsKLSAgICAgICAgICAgIDIsICA2LCAzLCAgIC8vICAwOiBz
aG9ydGN1dCAnYScgdG8gbm9kZSAnQScKLSAgICAgICAgICAgIDEsICA3LCA2LCAgIC8vICAzOiBw
cm9wZXJ0eSAnYicgdG8gbm9kZSAnQicKLSAgICAgICAgICAgIDAsICAxLCA2LCAgIC8vICA2OiBl
bGVtZW50ICcxJyB0byBub2RlICdCJwotICAgICAgICAgICAgMSwgIDgsIDksICAgLy8gIDk6IHBy
b3BlcnR5ICdhYycgdG8gbm9kZSAnQycKLSAgICAgICAgICAgIDEsICA5LCA5LCAgIC8vIDEyOiBw
cm9wZXJ0eSAnYmMnIHRvIG5vZGUgJ0MnCi0gICAgICAgICAgICAxLCAxMCwgMTIsICAvLyAxNTog
cHJvcGVydHkgJ2JkJyB0byBub2RlICdEJwotICAgICAgICAgICAgMSwgMTEsIDE1XSwgLy8gMTg6
IHByb3BlcnR5ICdjZScgdG8gbm9kZSAnRScKLSAgICAgICAgX3N0cmluZ3M6IFsiIiwgIkEiLCAi
QiIsICJDIiwgIkQiLCAiRSIsICJhIiwgImIiLCAiYWMiLCAiYmMiLCAiYmQiLCAiY2UiXSwKLSAg
ICAgICAgX2ZpcnN0RWRnZUluZGV4ZXM6IFswLCA2LCAxMiwgMTgsIDIxLCAyMSwgMjFdLAotICAg
ICAgICBjcmVhdGVOb2RlOiBXZWJJbnNwZWN0b3IuSlNIZWFwU25hcHNob3QucHJvdG90eXBlLmNy
ZWF0ZU5vZGUsCi0gICAgICAgIGNyZWF0ZUVkZ2U6IFdlYkluc3BlY3Rvci5KU0hlYXBTbmFwc2hv
dC5wcm90b3R5cGUuY3JlYXRlRWRnZSwKLSAgICAgICAgY3JlYXRlUmV0YWluaW5nRWRnZTogV2Vi
SW5zcGVjdG9yLkpTSGVhcFNuYXBzaG90LnByb3RvdHlwZS5jcmVhdGVSZXRhaW5pbmdFZGdlCi0g
ICAgfTsKLX07Ci0KLUluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9ja1JhdyA9IGZ1
bmN0aW9uKCkKLXsKLSAgICAvLyBFZmZlY3RpdmVseSB0aGUgc2FtZSBncmFwaCBhcyBpbiBjcmVh
dGVKU0hlYXBTbmFwc2hvdE1vY2tPYmplY3QsCi0gICAgLy8gYnV0IGhhdmluZyBmdWxsIHNldCBv
ZiBmaWVsZHMuCi0gICAgLy8KLSAgICAvLyBBIHRyaXBsZSBpbiBwYXJlbnRoZXNlcyBpbmRpY2F0
ZXMgbm9kZSBpbmRleCwgc2VsZiBzaXplIGFuZAotICAgIC8vIHJldGFpbmVkIHNpemUuCi0gICAg
Ly8KLSAgICAvLyAgICAgICAgICAtLS0gQSAoMTQsMiwyKSAtLWFjLSBDICg0MCw0LDEwKSAtY2Ut
IEUoNTcsNiw2KQotICAgIC8vICAgICAgICAgLyAgICB8ICAgICAgICAgICAgICAgIC8KLSAgICAv
LyAgIiIgKDEsMCwyMCkgMSAgICAgICAtLWJjLS0tLS0KLSAgICAvLyAgICAgICAgIFwgICAgdiAg
ICAgIC8KLSAgICAvLyAgICAgICAgICAtLS0gQiAoMjcsMyw4KSAtLWJkLSBEICg1MCw1LDUpCi0g
ICAgLy8KLSAgICByZXR1cm4gewotICAgICAgICBzbmFwc2hvdDogewotICAgICAgICAgICAgbWV0
YTogewotICAgICAgICAgICAgICAgIG5vZGVfZmllbGRzOiBbInR5cGUiLCAibmFtZSIsICJpZCIs
ICJzZWxmX3NpemUiLCAicmV0YWluZWRfc2l6ZSIsICJkb21pbmF0b3IiLCAiZWRnZV9jb3VudCJd
LAotICAgICAgICAgICAgICAgIG5vZGVfdHlwZXM6IFtbImhpZGRlbiIsICJvYmplY3QiXSwgIiIs
ICIiLCAiIiwgIiIsICIiLCAiIl0sCi0gICAgICAgICAgICAgICAgZWRnZV9maWVsZHM6IFsidHlw
ZSIsICJuYW1lX29yX2luZGV4IiwgInRvX25vZGUiXSwKLSAgICAgICAgICAgICAgICBlZGdlX3R5
cGVzOiBbWyJlbGVtZW50IiwgInByb3BlcnR5IiwgInNob3J0Y3V0Il0sICIiLCAiIl0KLSAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICBub2RlX2NvdW50OiA2LAotICAgICAgICAgICAgZWRnZV9j
b3VudDogN30sCi0gICAgICAgIG5vZGVzOiBbCi0gICAgICAgICAgICAwLCAwLCAxLCAwLCAyMCwg
IDAsIDIsICAvLyByb290ICgwKQotICAgICAgICAgICAgMSwgMSwgMiwgMiwgIDIsICAwLCAyLCAg
Ly8gQSAoNykKLSAgICAgICAgICAgIDEsIDIsIDMsIDMsICA4LCAgMCwgMiwgIC8vIEIgKDE0KQot
ICAgICAgICAgICAgMSwgMywgNCwgNCwgMTAsICAwLCAxLCAgLy8gQyAoMjEpCi0gICAgICAgICAg
ICAxLCA0LCA1LCA1LCAgNSwgMTQsIDAsICAvLyBEICgyOCkKLSAgICAgICAgICAgIDEsIDUsIDYs
IDYsICA2LCAyMSwgMF0sIC8vIEUgKDM1KQotICAgICAgICBlZGdlczogWwotICAgICAgICAgICAg
Ly8gcm9vdCBub2RlIGVkZ2VzCi0gICAgICAgICAgICAyLCAgNiwgIDcsIC8vIHNob3J0Y3V0ICdh
JyB0byBub2RlICdBJwotICAgICAgICAgICAgMSwgIDcsIDE0LCAvLyBwcm9wZXJ0eSAnYicgdG8g
bm9kZSAnQicKLQotICAgICAgICAgICAgLy8gQSBub2RlIGVkZ2VzCi0gICAgICAgICAgICAwLCAg
MSwgMTQsIC8vIGVsZW1lbnQgMSB0byBub2RlICdCJwotICAgICAgICAgICAgMSwgIDgsIDIxLCAv
LyBwcm9wZXJ0eSAnYWMnIHRvIG5vZGUgJ0MnCi0KLSAgICAgICAgICAgIC8vIEIgbm9kZSBlZGdl
cwotICAgICAgICAgICAgMSwgIDksIDIxLCAvLyBwcm9wZXJ0eSAnYmMnIHRvIG5vZGUgJ0MnCi0g
ICAgICAgICAgICAxLCAxMCwgMjgsIC8vIHByb3BlcnR5ICdiZCcgdG8gbm9kZSAnRCcKLQotICAg
ICAgICAgICAgLy8gQyBub2RlIGVkZ2VzCi0gICAgICAgICAgICAxLCAxMSwgMzVdLCAvLyBwcm9w
ZXJ0eSAnY2UnIHRvIG5vZGUgJ0UnCi0gICAgICAgIHN0cmluZ3M6IFsiIiwgIkEiLCAiQiIsICJD
IiwgIkQiLCAiRSIsICJhIiwgImIiLCAiYWMiLCAiYmMiLCAiYmQiLCAiY2UiXQotICAgIH07Ci19
OwotCi1JbnNwZWN0b3JUZXN0Ll9wb3N0cHJvY2Vzc0hlYXBTbmFwc2hvdE1vY2sgPSBmdW5jdGlv
bihtb2NrKQotewotICAgIG1vY2subm9kZXMgPSBuZXcgVWludDMyQXJyYXkobW9jay5ub2Rlcyk7
Ci0gICAgbW9jay5lZGdlcyA9IG5ldyBVaW50MzJBcnJheShtb2NrLmVkZ2VzKTsKLSAgICByZXR1
cm4gbW9jazsKLX07Ci0KLUluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9jayA9IGZ1
bmN0aW9uKCkKLXsKLSAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5fcG9zdHByb2Nlc3NIZWFwU25h
cHNob3RNb2NrKEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9ja1JhdygpKTsKLX07
Ci0KLUluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9ja1dpdGhET00gPSBmdW5jdGlv
bigpCi17Ci0gICAgcmV0dXJuIEluc3BlY3RvclRlc3QuX3Bvc3Rwcm9jZXNzSGVhcFNuYXBzaG90
TW9jayh7Ci0gICAgICAgIHNuYXBzaG90OiB7Ci0gICAgICAgICAgICBtZXRhOiB7Ci0gICAgICAg
ICAgICAgICAgbm9kZV9maWVsZHM6IFsidHlwZSIsICJuYW1lIiwgImlkIiwgImVkZ2VfY291bnQi
XSwKLSAgICAgICAgICAgICAgICBub2RlX3R5cGVzOiBbWyJoaWRkZW4iLCAib2JqZWN0Il0sICIi
LCAiIiwgIiJdLAotICAgICAgICAgICAgICAgIGVkZ2VfZmllbGRzOiBbInR5cGUiLCAibmFtZV9v
cl9pbmRleCIsICJ0b19ub2RlIl0sCi0gICAgICAgICAgICAgICAgZWRnZV90eXBlczogW1siZWxl
bWVudCIsICJoaWRkZW4iLCAiaW50ZXJuYWwiXSwgIiIsICIiXQotICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgIG5vZGVfY291bnQ6IDEzLAotICAgICAgICAgICAgZWRnZV9jb3VudDogMTMKLSAg
ICAgICAgfSwKLSAgICAgICAgbm9kZXM6IFsKLSAgICAgICAgICAgIC8vIEEgdHJlZSB3aXRoIFdp
bmRvdyBvYmplY3RzLgotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vICAgIHwtLS0tLT5X
aW5kb3ctLS0+QQotICAgICAgICAgICAgLy8gICAgfCAgICAgICAgICAgICBcCi0gICAgICAgICAg
ICAvLyAgICB8LS0tLS0+V2luZG93LS0tPkItLS0+QwotICAgICAgICAgICAgLy8gICAgfCAgICAg
ICAgfCAgICAgXAotICAgICAgICAgICAgLy8gIChyb290KSAgIGhpZGRlbiAgIC0tLT5ELS1pbnRl
cm5hbCAvICJuYXRpdmUiLS0+TgotICAgICAgICAgICAgLy8gICAgfCAgICAgICAgIFwgICAgICAg
ICB8Ci0gICAgICAgICAgICAvLyAgICB8LS0tLS0+RSAgIEggICAgIGludGVybmFsCi0gICAgICAg
ICAgICAvLyAgICB8ICAgICAgICAgICAgICAgICAgIHYKLSAgICAgICAgICAgIC8vICAgIHwtLS0t
LT5GLS0tPkcgICAgICAgTQotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8qIChyb290KSAq
LyAgICAwLCAgMCwgIDEsIDQsCi0gICAgICAgICAgICAvKiBXaW5kb3cgKi8gICAgMSwgMTEsICAy
LCAyLAotICAgICAgICAgICAgLyogV2luZG93ICovICAgIDEsIDExLCAgMywgMywKLSAgICAgICAg
ICAgIC8qIEUgKi8gICAgICAgICAxLCAgNSwgIDQsIDAsCi0gICAgICAgICAgICAvKiBGICovICAg
ICAgICAgMSwgIDYsICA1LCAxLAotICAgICAgICAgICAgLyogQSAqLyAgICAgICAgIDEsICAxLCAg
NiwgMCwKLSAgICAgICAgICAgIC8qIEIgKi8gICAgICAgICAxLCAgMiwgIDcsIDEsCi0gICAgICAg
ICAgICAvKiBEICovICAgICAgICAgMSwgIDQsICA4LCAyLAotICAgICAgICAgICAgLyogSCAqLyAg
ICAgICAgIDEsICA4LCAgOSwgMCwKLSAgICAgICAgICAgIC8qIEcgKi8gICAgICAgICAxLCAgNywg
MTAsIDAsCi0gICAgICAgICAgICAvKiBDICovICAgICAgICAgMSwgIDMsIDExLCAwLAotICAgICAg
ICAgICAgLyogTiAqLyAgICAgICAgIDEsIDEwLCAxMiwgMCwKLSAgICAgICAgICAgIC8qIE0gKi8g
ICAgICAgICAxLCAgOSwgMTMsIDAKLSAgICAgICAgICAgIF0sCi0gICAgICAgIGVkZ2VzOiBbCi0g
ICAgICAgICAgICAvKiBmcm9tIChyb290KSAqLyAgMCwgIDEsICA0LCAwLCAyLCAgOCwgMCwgMywg
MTIsIDAsIDQsIDE2LAotICAgICAgICAgICAgLyogZnJvbSBXaW5kb3cgKi8gIDAsICAxLCAyMCwg
MCwgMiwgMjQsCi0gICAgICAgICAgICAvKiBmcm9tIFdpbmRvdyAqLyAgMCwgIDEsIDI0LCAwLCAy
LCAyOCwgMSwgMywgMzIsCi0gICAgICAgICAgICAvKiBmcm9tIEYgKi8gICAgICAgMCwgIDEsIDM2
LAotICAgICAgICAgICAgLyogZnJvbSBCICovICAgICAgIDAsICAxLCA0MCwKLSAgICAgICAgICAg
IC8qIGZyb20gRCAqLyAgICAgICAyLCAxMiwgNDQsIDIsIDEsIDQ4Ci0gICAgICAgICAgICBdLAot
ICAgICAgICBzdHJpbmdzOiBbIiIsICJBIiwgIkIiLCAiQyIsICJEIiwgIkUiLCAiRiIsICJHIiwg
IkgiLCAiTSIsICJOIiwgIldpbmRvdyIsICJuYXRpdmUiXQotICAgIH0pOwotfTsKLQotSW5zcGVj
dG9yVGVzdC5zdGFydFByb2ZpbGVyVGVzdCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQotewotICAgIFdl
Ykluc3BlY3Rvci5zaG93UGFuZWwoInByb2ZpbGVzIik7Ci0gICAgV2ViSW5zcGVjdG9yLnNldHRp
bmdzLnNob3dIZWFwU25hcHNob3RPYmplY3RzSGlkZGVuUHJvcGVydGllcy5zZXQodHJ1ZSk7Ci0K
LSAgICBmdW5jdGlvbiBwcm9maWxlckVuYWJsZWQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlByb2ZpbGVyIHdhcyBlbmFibGVkLiIpOwotICAgICAgICAvLyBXZSBt
b2NrIG91dCBIZWFwUHJvZmlsZXJBZ2VudCAtLSBhcyBEUlQgcnVucyBpbiBzaW5nbGUtcHJvY2Vz
cyBtb2RlLCBJbnNwZWN0b3IKLSAgICAgICAgLy8gYW5kIHRlc3Qgc2hhcmUgdGhlIHNhbWUgaGVh
cC4gVGFraW5nIGEgc25hcHNob3QgdGFrZXMgdG9vIGxvbmcgZm9yIGEgdGVzdCwKLSAgICAgICAg
Ly8gc28gd2UgcHJvdmlkZSBzeW50aGV0aWMgc25hcHNob3RzLgotICAgICAgICBJbnNwZWN0b3JU
ZXN0Ll9wYW5lbFJlc2V0ID0gSW5zcGVjdG9yVGVzdC5vdmVycmlkZShXZWJJbnNwZWN0b3IucGFu
ZWxzLnByb2ZpbGVzLCAiX3Jlc2V0IiwgZnVuY3Rpb24oKXt9LCB0cnVlKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RWaWV3LnByb3Rv
dHlwZSwgInNob3ciLCBJbnNwZWN0b3JUZXN0Ll9zbmFwc2hvdFZpZXdTaG93biwgdHJ1ZSk7Ci0K
LSAgICAgICAgZGV0YWlsZWRIZWFwUHJvZmlsZXNFbmFibGVkKCk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gZGV0YWlsZWRIZWFwUHJvZmlsZXNFbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIC8vIFJl
ZHVjZSB0aGUgbnVtYmVyIG9mIHBvcHVsYXRlZCBub2RlcyB0byBzcGVlZCB1cCB0ZXN0aW5nLgot
ICAgICAgICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Q29udGFpbm1lbnREYXRhR3JpZC5wcm90
b3R5cGUuZGVmYXVsdFBvcHVsYXRlQ291bnQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDEwOyB9Owot
ICAgICAgICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Q29uc3RydWN0b3JzRGF0YUdyaWQucHJv
dG90eXBlLmRlZmF1bHRQb3B1bGF0ZUNvdW50ID0gZnVuY3Rpb24oKSB7IHJldHVybiAxMDsgfTsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERpZmZEYXRhR3JpZC5wcm90b3R5cGUu
ZGVmYXVsdFBvcHVsYXRlQ291bnQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDU7IH07Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3REb21pbmF0b3JzRGF0YUdyaWQucHJvdG90eXBlLmRl
ZmF1bHRQb3B1bGF0ZUNvdW50ID0gZnVuY3Rpb24oKSB7IHJldHVybiAzOyB9Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEZXRhaWxlZCBoZWFwIHByb2ZpbGVzIHdlcmUgZW5hYmxl
ZC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjaykoKTsKLSAgICB9
Ci0KLSAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5fcHJvZmlsZXJFbmFibGVk
KQotICAgICAgICBwcm9maWxlckVuYWJsZWQoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMsICJfcHJvZmls
ZXJXYXNFbmFibGVkIiwgcHJvZmlsZXJFbmFibGVkKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBh
bmVscy5wcm9maWxlcy5fdG9nZ2xlUHJvZmlsaW5nKGZhbHNlKTsKLSAgICB9Ci19OwotCi1JbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlUHJvZmlsZXJUZXN0ID0gZnVuY3Rpb24oKQotewotICAgIC8vIFRo
ZXJlIGlzIG5vIHdheSB0byBkaXNhYmxlIGRldGFpbGVkIGhlYXAgcHJvZmlsZXMuCi0KLSAgICBm
dW5jdGlvbiBjb21wbGV0ZVRlc3QoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUHJvZmlsZXIgd2Fz
IGRpc2FibGVkLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
IH0KLQotICAgIHZhciBwcm9maWxlc1BhbmVsID0gV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxl
czsKLSAgICBpZiAoIXByb2ZpbGVzUGFuZWwuX3Byb2ZpbGVyRW5hYmxlZCkKLSAgICAgICAgY29t
cGxldGVUZXN0KCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZl
cihXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLCAiX3Byb2ZpbGVyV2FzRGlzYWJsZWQiLCBj
b21wbGV0ZVRlc3QpOwotICAgICAgICBwcm9maWxlc1BhbmVsLl90b2dnbGVQcm9maWxpbmcoZmFs
c2UpOwotICAgIH0KLX07Ci0KLUluc3BlY3RvclRlc3QucnVuSGVhcFNuYXBzaG90VGVzdFN1aXRl
ID0gZnVuY3Rpb24odGVzdFN1aXRlKQotewotICAgIGlmICghQ2FwYWJpbGl0aWVzLmhlYXBQcm9m
aWxlclByZXNlbnQpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkhlYXAgcHJv
ZmlsZXIgaXMgZGlzYWJsZWQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuX25leHRVaWQg
PSAxOwotICAgIHZhciB0ZXN0U3VpdGVUZXN0cyA9IHRlc3RTdWl0ZS5zbGljZSgpOwotCi0gICAg
ZnVuY3Rpb24gcnVubmVyKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGVzdFN1aXRlVGVzdHMubGVu
Z3RoKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlUHJvZmlsZXJUZXN0KCk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgbmV4dFRlc3Qg
PSB0ZXN0U3VpdGVUZXN0cy5zaGlmdCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSdW5uaW5nOiAiICsgL2Z1
bmN0aW9uXHMoW14oXSopLy5leGVjKG5leHRUZXN0KVsxXSk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuX3BhbmVsUmVzZXQuY2FsbChXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChuZXh0VGVzdCkocnVubmVyLCBydW5uZXIpOwotICAg
IH0KLQotICAgIEluc3BlY3RvclRlc3Quc3RhcnRQcm9maWxlclRlc3QocnVubmVyKTsKLX07Ci0K
LUluc3BlY3RvclRlc3QuYXNzZXJ0Q29sdW1uQ29udGVudHNFcXVhbCA9IGZ1bmN0aW9uKHJlZmVy
ZW5jZSwgYWN0dWFsKQotewotICAgIHZhciBsZW5ndGggPSBNYXRoLm1pbihyZWZlcmVuY2UubGVu
Z3RoLCBhY3R1YWwubGVuZ3RoKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhyZWZlcmVuY2VbaV0sIGFjdHVh
bFtpXSwgInJvdyAiICsgaSk7Ci0gICAgaWYgKHJlZmVyZW5jZS5sZW5ndGggPiBsZW5ndGgpCi0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJleHRyYSByb3dzIGluIHJlZmVyZW5jZSBh
cnJheTpcbiIgKyByZWZlcmVuY2Uuc2xpY2UobGVuZ3RoKS5qb2luKCJcbiIpKTsKLSAgICBlbHNl
IGlmIChhY3R1YWwubGVuZ3RoID4gbGVuZ3RoKQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiZXh0cmEgcm93cyBpbiBhY3R1YWwgYXJyYXk6XG4iICsgYWN0dWFsLnNsaWNlKGxlbmd0
aCkuam9pbigiXG4iKSk7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmNoZWNrQXJyYXlJc1NvcnRlZCA9
IGZ1bmN0aW9uKGNvbnRlbnRzLCBzb3J0VHlwZSwgc29ydE9yZGVyKQotewotICAgIGZ1bmN0aW9u
IHNpbXBsZUNvbXBhcmF0b3IoYSwgYikKLSAgICB7Ci0gICAgICAgIHJldHVybiBhIDwgYiA/IC0x
IDogKGEgPiBiID8gMSA6IDApOwotICAgIH0KLSAgICBmdW5jdGlvbiBwYXJzZVNpemUoc2l6ZSkK
LSAgICB7Ci0gICAgICAgIGlmIChzaXplLnN1YnN0cigwLCAxKSA9PT0gJyInKSBzaXplID0gSlNP
Ti5wYXJzZShzaXplKTsKLSAgICAgICAgLy8gUmVtb3ZlIHRob3VzYW5kcyBzZXBhcmF0b3IuCi0g
ICAgICAgIHJldHVybiBwYXJzZUludChzaXplLnJlcGxhY2UoL1tcdTIwMDksXS9nLCAiIikpOwot
ICAgIH0KLSAgICBmdW5jdGlvbiBleHRyYWN0RmllbGQoZGF0YSwgZmllbGQpCi0gICAgewotICAg
ICAgICBpZiAoZGF0YS5zdWJzdHIoMCwgMSkgIT09ICJ7IikgcmV0dXJuIGRhdGE7Ci0gICAgICAg
IGRhdGEgPSBKU09OLnBhcnNlKGRhdGEpOwotICAgICAgICBpZiAoIWRhdGFbZmllbGRdKQotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5vICIgKyBmaWVsZCArICIgZmllbGQg
aW4gIiArIEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKLSAgICAgICAgcmV0dXJuIGRhdGFbZmllbGRd
OwotICAgIH0KLSAgICBmdW5jdGlvbiBleHRyYWN0SWQoZGF0YSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBwYXJzZUludChleHRyYWN0RmllbGQoZGF0YSwgIm5vZGVJZCIpKTsKLSAgICB9Ci0gICAg
dmFyIGV4dHJhY3RvciA9IHsKLSAgICAgICAgdGV4dDogZnVuY3Rpb24gKGRhdGEpIHsgcmV0dXJu
IGV4dHJhY3RGaWVsZChkYXRhLCAidmFsdWUiKTsgfSwKLSAgICAgICAgbnVtYmVyOiBmdW5jdGlv
biAoZGF0YSkgeyByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApOyB9LAotICAgICAgICBzaXplOiBm
dW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gcGFyc2VTaXplKGRhdGEpOyB9LAotICAgICAgICBuYW1l
OiBmdW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gZXh0cmFjdEZpZWxkKGRhdGEsICJuYW1lIik7IH0s
Ci0gICAgICAgIGlkOiBmdW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gZXh0cmFjdElkKGRhdGEpOyB9
Ci0gICAgfVtzb3J0VHlwZV07Ci0gICAgdmFyIGFjY2VwdGFibGVDb21wYXJpc29uUmVzdWx0ID0g
ewotICAgICAgICBhc2NlbmRpbmc6IC0xLAotICAgICAgICBkZXNjZW5kaW5nOiAxCi0gICAgfVtz
b3J0T3JkZXJdOwotCi0gICAgaWYgKCFleHRyYWN0b3IpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkludmFsaWQgc29ydCB0eXBlOiAiICsgc29ydFR5cGUpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIGlmICghYWNjZXB0YWJsZUNvbXBhcmlzb25SZXN1bHQpIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkludmFsaWQgc29ydCBvcmRlcjogIiArIHNv
cnRPcmRlcik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGNvbnRlbnRzLmxlbmd0aCAtIDE7ICsraSkgewotICAgICAgICB2YXIgYSA9IGV4dHJhY3Rv
cihjb250ZW50c1tpXSk7Ci0gICAgICAgIHZhciBiID0gZXh0cmFjdG9yKGNvbnRlbnRzW2kgKyAx
XSk7Ci0gICAgICAgIHZhciByZXN1bHQgPSBzaW1wbGVDb21wYXJhdG9yKGEsIGIpOwotICAgICAg
ICBpZiAocmVzdWx0ICE9PSAwICYmIHJlc3VsdCAhPT0gYWNjZXB0YWJsZUNvbXBhcmlzb25SZXN1
bHQpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRWxlbWVudHMgIiArIGkg
KyAiIGFuZCAiICsgKGkgKyAxKSArICIgYXJlIG91dCBvZiBvcmRlcjogIiArIGEgKyAiICIgKyBi
ICsgIiAoIiArIHNvcnRPcmRlciArICIpIik7Ci0gICAgfQotfTsKLQotSW5zcGVjdG9yVGVzdC5j
bGlja0NvbHVtbiA9IGZ1bmN0aW9uKGNvbHVtbiwgY2FsbGJhY2spCi17Ci0gICAgY2FsbGJhY2sg
PSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNrKTsKLSAgICB2YXIgY2VsbCA9IHRoaXMu
X2N1cnJlbnRHcmlkKCkuX2hlYWRlclRhYmxlSGVhZGVyc1tjb2x1bW4uaWRlbnRpZmllcl07Ci0g
ICAgdmFyIGV2ZW50ID0geyB0YXJnZXQ6IHsgZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFt
ZTogZnVuY3Rpb24oKSB7IHJldHVybiBjZWxsOyB9IH0gfTsKLQotICAgIGZ1bmN0aW9uIHNvcnRp
bmdDb21wbGV0ZSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0Ll9jdXJyZW50R3JpZCgp
LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNvcnRpbmcgY29tcGxldGUiLCBzb3J0aW5nQ29tcGxldGUs
IHRoaXMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhjb2x1bW4uaWRlbnRp
ZmllciwgdGhpcy5fY3VycmVudEdyaWQoKS5zb3J0Q29sdW1uSWRlbnRpZmllcigpLCAidW5leHBl
Y3RlZCBzb3J0aW5nIik7Ci0gICAgICAgIGNvbHVtbi5zb3J0ID0gdGhpcy5fY3VycmVudEdyaWQo
KS5zb3J0T3JkZXIoKTsKLSAgICAgICAgZnVuY3Rpb24gY2FsbENhbGxiYWNrKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgY2FsbGJhY2soY29sdW1uKTsKLSAgICAgICAgfQotICAgICAgICBzZXRU
aW1lb3V0KGNhbGxDYWxsYmFjaywgMCk7Ci0gICAgfQotICAgIEluc3BlY3RvclRlc3QuX2N1cnJl
bnRHcmlkKCkuYWRkRXZlbnRMaXN0ZW5lcigic29ydGluZyBjb21wbGV0ZSIsIHNvcnRpbmdDb21w
bGV0ZSwgdGhpcyk7Ci0gICAgdGhpcy5fY3VycmVudEdyaWQoKS5fY2xpY2tJbkhlYWRlckNlbGwo
ZXZlbnQpOwotfTsKLQotSW5zcGVjdG9yVGVzdC5jbGlja1Jvd0FuZEdldFJldGFpbmVycyA9IGZ1
bmN0aW9uKHJvdywgY2FsbGJhY2spCi17Ci0gICAgY2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNh
ZmVXcmFwKGNhbGxiYWNrKTsKLSAgICB2YXIgZXZlbnQgPSB7Ci0gICAgICAgIHRhcmdldDogewot
ICAgICAgICAgICAgZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFtZTogZnVuY3Rpb24oKSB7
IHJldHVybiByb3cuX2VsZW1lbnQ7IH0sCi0gICAgICAgICAgICBzZWxlY3RlZE5vZGU6IHJvdwot
ICAgICAgICB9Ci0gICAgfTsKLSAgICB0aGlzLl9jdXJyZW50R3JpZCgpLl9tb3VzZURvd25JbkRh
dGFUYWJsZShldmVudCk7Ci0gICAgdmFyIHJvb3ROb2RlID0gSW5zcGVjdG9yVGVzdC5fY3VycmVu
dFByb2ZpbGVWaWV3KCkucmV0YWlubWVudERhdGFHcmlkLnJvb3ROb2RlKCk7Ci0gICAgZnVuY3Rp
b24gcG9wdWxhdGVDb21wbGV0ZSgpCi0gICAgewotICAgICAgICByb290Tm9kZS5yZW1vdmVFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RHcmlkTm9kZS5FdmVudHMuUG9wdWxh
dGVDb21wbGV0ZSwgcG9wdWxhdGVDb21wbGV0ZSwgdGhpcyk7Ci0gICAgICAgIGNhbGxiYWNrKHJv
b3ROb2RlKTsKLSAgICB9Ci0gICAgcm9vdE5vZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90R3JpZE5vZGUuRXZlbnRzLlBvcHVsYXRlQ29tcGxldGUsIHBvcHVsYXRl
Q29tcGxldGUsIHRoaXMpOwotfTsKLQotSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0dG9u
ID0gZnVuY3Rpb24oYnV0dG9uTmFtZSwgcm93LCBjYWxsYmFjaykKLXsKLSAgICBjYWxsYmFjayA9
IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spOwotICAgIHZhciBwYXJlbnQgPSByb3cu
cGFyZW50OwotICAgIGZ1bmN0aW9uIHBvcHVsYXRlQ29tcGxldGUoKQotICAgIHsKLSAgICAgICAg
cGFyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEdyaWRO
b2RlLkV2ZW50cy5Qb3B1bGF0ZUNvbXBsZXRlLCBwb3B1bGF0ZUNvbXBsZXRlLCB0aGlzKTsKLSAg
ICAgICAgZnVuY3Rpb24gY2FsbENhbGxiYWNrKCkKLSAgICAgICAgewotICAgICAgICAgICAgY2Fs
bGJhY2socGFyZW50KTsKLSAgICAgICAgfQotICAgICAgICBzZXRUaW1lb3V0KGNhbGxDYWxsYmFj
aywgMCk7Ci0gICAgfQotICAgIHBhcmVudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3RHcmlkTm9kZS5FdmVudHMuUG9wdWxhdGVDb21wbGV0ZSwgcG9wdWxhdGVDb21w
bGV0ZSwgdGhpcyk7Ci0gICAgcm93W2J1dHRvbk5hbWVdLmNsaWNrKCk7Ci19OwotCi1JbnNwZWN0
b3JUZXN0LmNvbHVtbkNvbnRlbnRzID0gZnVuY3Rpb24oY29sdW1uLCByb3cpCi17Ci0gICAgLy8g
TWFrZSBzdXJlIGludmlzaWJsZSBub2RlcyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSB2aWV3IHBvcnQu
Ci0gICAgdGhpcy5fY3VycmVudEdyaWQoKS51cGRhdGVWaXNpYmxlTm9kZXMoKTsKLSAgICB2YXIg
cmVzdWx0ID0gW107Ci0gICAgdmFyIHBhcmVudCA9IHJvdyB8fCB0aGlzLl9jdXJyZW50R3JpZCgp
LnJvb3ROb2RlKCk7Ci0gICAgZm9yICh2YXIgbm9kZSA9IHBhcmVudC5jaGlsZHJlblswXTsgbm9k
ZTsgbm9kZSA9IG5vZGUudHJhdmVyc2VOZXh0Tm9kZSh0cnVlLCBwYXJlbnQsIHRydWUpKSB7Ci0g
ICAgICAgIGlmICghbm9kZS5zZWxlY3RhYmxlKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgIHZhciBkYXRhID0gbm9kZS5kYXRhW2NvbHVtbi5pZGVudGlmaWVyXTsKLSAgICAgICAgaWYg
KHR5cGVvZiBkYXRhID09PSAib2JqZWN0IikKLSAgICAgICAgICAgIGRhdGEgPSBKU09OLnN0cmlu
Z2lmeShkYXRhKTsKLSAgICAgICAgcmVzdWx0LnB1c2goZGF0YSk7Ci0gICAgfQotICAgIHJldHVy
biByZXN1bHQ7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmNvdW50RGF0YVJvd3MgPSBmdW5jdGlvbihy
b3csIGZpbHRlcikKLXsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmaWx0ZXIgPSBmaWx0ZXIg
fHwgZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5zZWxlY3RhYmxlOyB9OwotICAgIGZvciAo
dmFyIG5vZGUgPSByb3cuY2hpbGRyZW5bMF07IG5vZGU7IG5vZGUgPSBub2RlLnRyYXZlcnNlTmV4
dE5vZGUodHJ1ZSwgcm93LCB0cnVlKSkgewotICAgICAgICBpZiAoZmlsdGVyKG5vZGUpKQotICAg
ICAgICAgICAgKytyZXN1bHQ7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19OwotCi1JbnNw
ZWN0b3JUZXN0LkhlYXBOb2RlID0gZnVuY3Rpb24obmFtZSwgc2VsZlNpemUsIHR5cGUsIGlkKQot
ewotICAgIHRoaXMuX3R5cGUgPSB0eXBlIHx8IEluc3BlY3RvclRlc3QuSGVhcE5vZGUuVHlwZS5v
YmplY3Q7Ci0gICAgdGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgdGhpcy5fc2VsZlNpemUgPSBzZWxm
U2l6ZSB8fCAwOwotICAgIHRoaXMuX2J1aWxkZXIgPSBudWxsOwotICAgIHRoaXMuX2VkZ2VzID0g
e307Ci0gICAgdGhpcy5fZWRnZXNDb3VudCA9IDA7Ci0gICAgdGhpcy5faWQgPSBpZDsKLX0KLQot
SW5zcGVjdG9yVGVzdC5IZWFwTm9kZS5UeXBlID0gewotICAgICJoaWRkZW4iOiAiaGlkZGVuIiwK
LSAgICAiYXJyYXkiOiAiYXJyYXkiLAotICAgICJzdHJpbmciOiAic3RyaW5nIiwKLSAgICAib2Jq
ZWN0IjogIm9iamVjdCIsCi0gICAgImNvZGUiOiAiY29kZSIsCi0gICAgImNsb3N1cmUiOiAiY2xv
c3VyZSIsCi0gICAgInJlZ2V4cCI6ICJyZWdleHAiLAotICAgICJudW1iZXIiOiAibnVtYmVyIiwK
LSAgICAibmF0aXZlIjogIm5hdGl2ZSIKLX07Ci0KLUluc3BlY3RvclRlc3QuSGVhcE5vZGUucHJv
dG90eXBlID0gewotICAgIGxpbmtOb2RlOiBmdW5jdGlvbihub2RlLCB0eXBlLCBuYW1lT3JJbmRl
eCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fYnVpbGRlcikKLSAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigicGFyZW50IG5vZGUgaXMgbm90IGNvbm5lY3RlZCB0byBhIHNuYXBzaG90Iik7
Ci0KLSAgICAgICAgaWYgKCFub2RlLl9idWlsZGVyKQotICAgICAgICAgICAgbm9kZS5fc2V0QnVp
bGRlcih0aGlzLl9idWlsZGVyKTsKLQotICAgICAgICBpZiAobmFtZU9ySW5kZXggPT09IHVuZGVm
aW5lZCkKLSAgICAgICAgICAgIG5hbWVPckluZGV4ID0gdGhpcy5fZWRnZXNDb3VudDsKLSAgICAg
ICAgKyt0aGlzLl9lZGdlc0NvdW50OwotCi0gICAgICAgIGlmIChuYW1lT3JJbmRleCBpbiB0aGlz
Ll9lZGdlcykKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FuJ3QgYWRkIGVkZ2Ugd2l0
aCB0aGUgc2FtZSBuYW1lT3JJbmRleC4gbmFtZU9ySW5kZXg6ICIgKyBuYW1lT3JJbmRleCArICIg
b2xkTm9kZU5hbWU6ICIgKyB0aGlzLl9lZGdlc1tuYW1lT3JJbmRleF0uX25hbWUgKyAiIG5ld05v
ZGVOYW1lOiAiICsgbm9kZS5fbmFtZSk7Ci0gICAgICAgIHRoaXMuX2VkZ2VzW25hbWVPckluZGV4
XSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlKG5vZGUsIHR5cGUsIG5hbWVPckluZGV4KTsK
LSAgICB9LAotCi0gICAgX3NldEJ1aWxkZXI6IGZ1bmN0aW9uKGJ1aWxkZXIpCi0gICAgewotICAg
ICAgICBpZiAodGhpcy5fYnVpbGRlcikKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigibm9k
ZSByZXVzaW5nIGlzIHByb2hpYml0ZWQiKTsKLQotICAgICAgICB0aGlzLl9idWlsZGVyID0gYnVp
bGRlcjsKLSAgICAgICAgdGhpcy5fb3JkaW5hbCA9IHRoaXMuX2J1aWxkZXIuX3JlZ2lzdGVyTm9k
ZSh0aGlzKTsKLSAgICB9LAotCi0gICAgX3NlcmlhbGl6ZTogZnVuY3Rpb24ocmF3U25hcHNob3Qp
Ci0gICAgewotICAgICAgICByYXdTbmFwc2hvdC5ub2Rlcy5wdXNoKHRoaXMuX2J1aWxkZXIubG9v
a3VwTm9kZVR5cGUodGhpcy5fdHlwZSkpOwotICAgICAgICByYXdTbmFwc2hvdC5ub2Rlcy5wdXNo
KHRoaXMuX2J1aWxkZXIubG9va3VwT3JBZGRTdHJpbmcodGhpcy5fbmFtZSkpOwotICAgICAgICAv
LyBKUyBlbmdpbmUgc25hcHNob3QgaW1wZW1lbnRhdGlvbiBnZW5lcmF0ZXMgbW9ub3RvbmljYWx5
IGluY3JlYXNpbmcgb2RkIGlkIGZvciBKUyBvYmplY3RzLAotICAgICAgICAvLyBhbmQgZXZlbiBp
ZHMgYmFzZWQgb24gYSBoYXNoIGZvciBuYXRpdmUgRE9NT2JqZWN0IGdyb3Vwcy4KLSAgICAgICAg
cmF3U25hcHNob3Qubm9kZXMucHVzaCh0aGlzLl9pZCB8fCB0aGlzLl9vcmRpbmFsICogMiArIDEp
OwotICAgICAgICByYXdTbmFwc2hvdC5ub2Rlcy5wdXNoKHRoaXMuX3NlbGZTaXplKTsKLSAgICAg
ICAgcmF3U25hcHNob3Qubm9kZXMucHVzaCgwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gcmV0YWluZWRfc2l6ZQotICAgICAgICByYXdTbmFwc2hvdC5ub2Rlcy5wdXNoKDApOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkb21pbmF0b3IKLSAgICAgICAgcmF3U25h
cHNob3Qubm9kZXMucHVzaChPYmplY3Qua2V5cyh0aGlzLl9lZGdlcykubGVuZ3RoKTsgLy8gZWRn
ZV9jb3VudAotCi0gICAgICAgIGZvciAodmFyIGkgaW4gdGhpcy5fZWRnZXMpCi0gICAgICAgICAg
ICB0aGlzLl9lZGdlc1tpXS5fc2VyaWFsaXplKHJhd1NuYXBzaG90KTsKLSAgICB9Ci19Ci0KLUlu
c3BlY3RvclRlc3QuSGVhcEVkZ2UgPSBmdW5jdGlvbih0YXJnZXROb2RlLCB0eXBlLCBuYW1lT3JJ
bmRleCkKLXsKLSAgICB0aGlzLl90YXJnZXROb2RlID0gdGFyZ2V0Tm9kZTsKLSAgICB0aGlzLl90
eXBlID0gdHlwZTsKLSAgICB0aGlzLl9uYW1lT3JJbmRleCA9IG5hbWVPckluZGV4OwotfQotCi1J
bnNwZWN0b3JUZXN0LkhlYXBFZGdlLnByb3RvdHlwZSA9IHsKLSAgICBfc2VyaWFsaXplOiBmdW5j
dGlvbihyYXdTbmFwc2hvdCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fdGFyZ2V0Tm9kZS5f
YnVpbGRlcikKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW5jb25zaXN0ZW50IHN0YXRl
IG9mIG5vZGU6ICIgKyB0aGlzLl9uYW1lICsgIiBubyBidWlsZGVyIGFzc2lnbmVkIik7Ci0gICAg
ICAgIHZhciBidWlsZGVyID0gdGhpcy5fdGFyZ2V0Tm9kZS5fYnVpbGRlcjsKLSAgICAgICAgcmF3
U25hcHNob3QuZWRnZXMucHVzaChidWlsZGVyLmxvb2t1cEVkZ2VUeXBlKHRoaXMuX3R5cGUpKTsK
LSAgICAgICAgcmF3U25hcHNob3QuZWRnZXMucHVzaCh0eXBlb2YgdGhpcy5fbmFtZU9ySW5kZXgg
PT09ICJzdHJpbmciID8gYnVpbGRlci5sb29rdXBPckFkZFN0cmluZyh0aGlzLl9uYW1lT3JJbmRl
eCkgOiB0aGlzLl9uYW1lT3JJbmRleCk7Ci0gICAgICAgIHJhd1NuYXBzaG90LmVkZ2VzLnB1c2go
dGhpcy5fdGFyZ2V0Tm9kZS5fb3JkaW5hbCAqIGJ1aWxkZXIubm9kZUZpZWxkc0NvdW50KTsgLy8g
aW5kZXgKLSAgICB9Ci19Ci0KLUluc3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlwZSA9IHsKLSAgICAi
Y29udGV4dCI6ICJjb250ZXh0IiwKLSAgICAiZWxlbWVudCI6ICJlbGVtZW50IiwKLSAgICAicHJv
cGVydHkiOiAicHJvcGVydHkiLAotICAgICJpbnRlcm5hbCI6ICJpbnRlcm5hbCIsCi0gICAgImhp
ZGRlbiI6ICJoaWRkZW4iLAotICAgICJzaG9ydGN1dCI6ICJzaG9ydGN1dCIKLX07Ci0KLUluc3Bl
Y3RvclRlc3QuSGVhcFNuYXBzaG90QnVpbGRlciA9IGZ1bmN0aW9uKCkKLXsKLSAgICB0aGlzLl9u
b2RlcyA9IFtdOwotICAgIHRoaXMuX3N0cmluZzJpZCA9IHt9OwotICAgIHRoaXMuX3N0cmluZ3Mg
PSBbXTsKLSAgICB0aGlzLm5vZGVGaWVsZHNDb3VudCA9IDc7Ci0KLSAgICB0aGlzLl9ub2RlVHlw
ZXNNYXAgPSB7fTsKLSAgICB0aGlzLl9ub2RlVHlwZXNBcnJheSA9IFtdOwotICAgIGZvciAodmFy
IG5vZGVUeXBlIGluIEluc3BlY3RvclRlc3QuSGVhcE5vZGUuVHlwZSkgewotICAgICAgICB0aGlz
Ll9ub2RlVHlwZXNNYXBbbm9kZVR5cGVdID0gdGhpcy5fbm9kZVR5cGVzQXJyYXkubGVuZ3RoCi0g
ICAgICAgIHRoaXMuX25vZGVUeXBlc0FycmF5LnB1c2gobm9kZVR5cGUpOwotICAgIH0KLQotICAg
IHRoaXMuX2VkZ2VUeXBlc01hcCA9IHt9OwotICAgIHRoaXMuX2VkZ2VUeXBlc0FycmF5ID0gW107
Ci0gICAgZm9yICh2YXIgZWRnZVR5cGUgaW4gSW5zcGVjdG9yVGVzdC5IZWFwRWRnZS5UeXBlKSB7
Ci0gICAgICAgIHRoaXMuX2VkZ2VUeXBlc01hcFtlZGdlVHlwZV0gPSB0aGlzLl9lZGdlVHlwZXNB
cnJheS5sZW5ndGgKLSAgICAgICAgdGhpcy5fZWRnZVR5cGVzQXJyYXkucHVzaChlZGdlVHlwZSk7
Ci0gICAgfQotCi0gICAgdGhpcy5yb290Tm9kZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBOb2Rl
KCJyb290IiwgMCwgIm9iamVjdCIpOwotICAgIHRoaXMucm9vdE5vZGUuX3NldEJ1aWxkZXIodGhp
cyk7Ci19Ci0KLUluc3BlY3RvclRlc3QuSGVhcFNuYXBzaG90QnVpbGRlci5wcm90b3R5cGUgPSB7
Ci0gICAgZ2VuZXJhdGVTbmFwc2hvdDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHJh
d1NuYXBzaG90ID0gewotICAgICAgICAgICAgInNuYXBzaG90IjogewotICAgICAgICAgICAgICAg
ICJtZXRhIjogewotICAgICAgICAgICAgICAgICAgICAibm9kZV9maWVsZHMiOiBbInR5cGUiLCJu
YW1lIiwiaWQiLCJzZWxmX3NpemUiLCJyZXRhaW5lZF9zaXplIiwiZG9taW5hdG9yIiwiZWRnZV9j
b3VudCJdLAotICAgICAgICAgICAgICAgICAgICAibm9kZV90eXBlcyI6IFsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMuX25vZGVUeXBlc0FycmF5LAotICAgICAgICAgICAgICAgICAgICAg
ICAgInN0cmluZyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAibnVtYmVyIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJudW1iZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgIm51bWJl
ciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAibnVtYmVyIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJudW1iZXIiCi0gICAgICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAg
ICAgICJlZGdlX2ZpZWxkcyI6IFsidHlwZSIsIm5hbWVfb3JfaW5kZXgiLCJ0b19ub2RlIl0sCi0g
ICAgICAgICAgICAgICAgICAgICJlZGdlX3R5cGVzIjogWwotICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fZWRnZVR5cGVzQXJyYXksCi0gICAgICAgICAgICAgICAgICAgICAgICAic3RyaW5n
X29yX251bWJlciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAibm9kZSIKLSAgICAgICAgICAg
ICAgICAgICAgXQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAibm9kZXMiOiBbXSwKLSAgICAgICAgICAgICJlZGdlcyI6W10sCi0gICAgICAgICAgICAic3Ry
aW5ncyI6IFtdLAotICAgICAgICAgICAgbWF4SlNPYmplY3RJZDogdGhpcy5fbm9kZXMubGVuZ3Ro
ICogMiArIDEKLSAgICAgICAgfTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMu
X25vZGVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGhpcy5fbm9kZXNbaV0uX3NlcmlhbGl6
ZShyYXdTbmFwc2hvdCk7Ci0KLSAgICAgICAgcmF3U25hcHNob3Quc3RyaW5ncyA9IHRoaXMuX3N0
cmluZ3Muc2xpY2UoKTsKLQotICAgICAgICB2YXIgbWV0YSA9IHJhd1NuYXBzaG90LnNuYXBzaG90
Lm1ldGE7Ci0gICAgICAgIHJhd1NuYXBzaG90LnNuYXBzaG90LmVkZ2VfY291bnQgPSByYXdTbmFw
c2hvdC5lZGdlcy5sZW5ndGggLyBtZXRhLmVkZ2VfZmllbGRzLmxlbmd0aDsKLSAgICAgICAgcmF3
U25hcHNob3Quc25hcHNob3Qubm9kZV9jb3VudCA9IHJhd1NuYXBzaG90Lm5vZGVzLmxlbmd0aCAv
IG1ldGEubm9kZV9maWVsZHMubGVuZ3RoOwotCi0gICAgICAgIHJldHVybiByYXdTbmFwc2hvdDsK
LSAgICB9LAotCi0gICAgX3JlZ2lzdGVyTm9kZTogZnVuY3Rpb24obm9kZSkKLSAgICB7Ci0gICAg
ICAgIHRoaXMuX25vZGVzLnB1c2gobm9kZSk7Ci0gICAgICAgIHJldHVybiB0aGlzLl9ub2Rlcy5s
ZW5ndGggLSAxOwotICAgIH0sCi0KLSAgICBsb29rdXBOb2RlVHlwZTogZnVuY3Rpb24odHlwZU5h
bWUpCi0gICAgewotICAgICAgICBpZiAodHlwZU5hbWUgPT09IHVuZGVmaW5lZCkKLSAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigid3Jvbmcgbm9kZSB0eXBlOiAiICsgdHlwZU5hbWUpOwotICAg
ICAgICBpZiAoIXR5cGVOYW1lIGluIHRoaXMuX25vZGVUeXBlc01hcCkKLSAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigid3Jvbmcgbm9kZSB0eXBlIG5hbWU6ICIgKyB0eXBlTmFtZSk7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9ub2RlVHlwZXNNYXBbdHlwZU5hbWVdOwotICAgIH0sCi0KLSAgICBs
b29rdXBFZGdlVHlwZTogZnVuY3Rpb24odHlwZU5hbWUpCi0gICAgewotICAgICAgICBpZiAoIXR5
cGVOYW1lIGluIHRoaXMuX2VkZ2VUeXBlc01hcCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigid3JvbmcgZWRnZSB0eXBlIG5hbWU6ICIgKyB0eXBlTmFtZSk7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9lZGdlVHlwZXNNYXBbdHlwZU5hbWVdOwotICAgIH0sCi0KLSAgICBsb29rdXBPckFkZFN0
cmluZzogZnVuY3Rpb24oc3RyaW5nKQotICAgIHsKLSAgICAgICAgaWYgKHN0cmluZyBpbiB0aGlz
Ll9zdHJpbmcyaWQpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RyaW5nMmlkW3N0cmluZ107
Ci0gICAgICAgIHRoaXMuX3N0cmluZzJpZFtzdHJpbmddID0gdGhpcy5fc3RyaW5ncy5sZW5ndGg7
Ci0gICAgICAgIHRoaXMuX3N0cmluZ3MucHVzaChzdHJpbmcpOwotICAgICAgICByZXR1cm4gdGhp
cy5fc3RyaW5ncy5sZW5ndGggLSAxOwotICAgIH0KLX0KLQotSW5zcGVjdG9yVGVzdC5jcmVhdGVI
ZWFwU25hcHNob3QgPSBmdW5jdGlvbihpbnN0YW5jZUNvdW50LCBmaXJzdElkKQotewotICAgIC8v
IE1vY2tpbmcgcmVzdWx0cyBvZiBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29kZToKLSAgICAvLyAK
LSAgICAvLyBmdW5jdGlvbiBBKCkgeyB0aGlzLmEgPSB0aGlzOyB9Ci0gICAgLy8gZnVuY3Rpb24g
Qih4KSB7IHRoaXMuYSA9IG5ldyBBKHgpOyB9Ci0gICAgLy8gZm9yICh2YXIgaSA9IDA7IGkgPCBp
bnN0YW5jZUNvdW50OyArK2kpIG5ldyBCKCk7Ci0gICAgLy8gCi0gICAgLy8gU2V0IEEgYW5kIEIg
b2JqZWN0IHNpemVzIHRvIHBzZXVkbyByYW5kb20gbnVtYmVycy4gSXQgaXMgdXNlZCBpbiBzb3J0
aW5nIHRlc3RzLgotCi0gICAgdmFyIHNlZWQgPSA4ODE2Njk7Ci0gICAgZnVuY3Rpb24gcHNldWRv
UmFuZG9tKGxpbWl0KSB7Ci0gICAgICAgIHNlZWQgPSAoKHNlZWQgKiAzNTUxMDkgKyAxNTM3NjMp
ID4+IDIpICYgMHhmZmZmOwotICAgICAgICByZXR1cm4gc2VlZCAlIGxpbWl0OwotICAgIH0KLQot
ICAgIHZhciBidWlsZGVyID0gbmV3IEluc3BlY3RvclRlc3QuSGVhcFNuYXBzaG90QnVpbGRlcigp
OwotICAgIHZhciByb290Tm9kZSA9IGJ1aWxkZXIucm9vdE5vZGU7Ci0KLSAgICB2YXIgZ2NSb290
c05vZGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5IZWFwTm9kZSgiKEdDIHJvb3RzKSIpOwotICAgIHJv
b3ROb2RlLmxpbmtOb2RlKGdjUm9vdHNOb2RlLCBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5cGUu
ZWxlbWVudCk7Ci0KLSAgICB2YXIgd2luZG93Tm9kZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBO
b2RlKCJXaW5kb3ciLCAyMCk7Ci0gICAgcm9vdE5vZGUubGlua05vZGUod2luZG93Tm9kZSwgSW5z
cGVjdG9yVGVzdC5IZWFwRWRnZS5UeXBlLnNob3J0Y3V0KTsKLSAgICBnY1Jvb3RzTm9kZS5saW5r
Tm9kZSh3aW5kb3dOb2RlLCBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5cGUuZWxlbWVudCk7Ci0K
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluc3RhbmNlQ291bnQ7ICsraSkgewotICAgICAgICB2
YXIgc2l6ZU9mQiA9IHBzZXVkb1JhbmRvbSgyMCkgKyAxOwotICAgICAgICB2YXIgbm9kZUIgPSBu
ZXcgSW5zcGVjdG9yVGVzdC5IZWFwTm9kZSgiQiIsIHNpemVPZkIsIHVuZGVmaW5lZCwgZmlyc3RJ
ZCsrKTsKLSAgICAgICAgd2luZG93Tm9kZS5saW5rTm9kZShub2RlQiwgSW5zcGVjdG9yVGVzdC5I
ZWFwRWRnZS5UeXBlLmVsZW1lbnQpOwotICAgICAgICB2YXIgc2l6ZU9mQSA9IHBzZXVkb1JhbmRv
bSg1MCkgKyAxOwotICAgICAgICB2YXIgbm9kZUEgPSBuZXcgSW5zcGVjdG9yVGVzdC5IZWFwTm9k
ZSgiQSIsIHNpemVPZkEsIHVuZGVmaW5lZCwgZmlyc3RJZCsrKTsKLSAgICAgICAgbm9kZUIubGlu
a05vZGUobm9kZUEsIEluc3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlwZS5wcm9wZXJ0eSwgImEiKTsK
LSAgICAgICAgbm9kZUEubGlua05vZGUobm9kZUEsIEluc3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlw
ZS5wcm9wZXJ0eSwgImEiKTsKLSAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIuZ2VuZXJhdGVTbmFw
c2hvdCgpOwotfQotCi1JbnNwZWN0b3JUZXN0LmV4cGFuZFJvdyA9IGZ1bmN0aW9uKHJvdywgY2Fs
bGJhY2spCi17Ci0gICAgY2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNr
KTsKLSAgICBmdW5jdGlvbiBwb3B1bGF0ZUNvbXBsZXRlKCkKLSAgICB7Ci0gICAgICAgIHJvdy5y
ZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RHcmlkTm9kZS5FdmVu
dHMuUG9wdWxhdGVDb21wbGV0ZSwgcG9wdWxhdGVDb21wbGV0ZSwgdGhpcyk7Ci0gICAgICAgIGZ1
bmN0aW9uIGNhbGxDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKHJv
dyk7Ci0gICAgICAgIH0KLSAgICAgICAgc2V0VGltZW91dChjYWxsQ2FsbGJhY2ssIDApOwotICAg
IH0KLSAgICByb3cuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R3Jp
ZE5vZGUuRXZlbnRzLlBvcHVsYXRlQ29tcGxldGUsIHBvcHVsYXRlQ29tcGxldGUsIHRoaXMpOwot
ICAgIChmdW5jdGlvbiBleHBhbmQoKQotICAgIHsKLSAgICAgICAgaWYgKHJvdy5oYXNDaGlsZHJl
bikKLSAgICAgICAgICAgIHJvdy5leHBhbmQoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
c2V0VGltZW91dChleHBhbmQsIDApOwotICAgIH0pKCk7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmZp
bmRBbmRFeHBhbmRHQ1Jvb3RzID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0gICAgSW5zcGVjdG9y
VGVzdC5maW5kQW5kRXhwYW5kUm93KCIoR0Mgcm9vdHMpIiwgY2FsbGJhY2spOwotfTsKLQotSW5z
cGVjdG9yVGVzdC5maW5kQW5kRXhwYW5kV2luZG93ID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0g
ICAgSW5zcGVjdG9yVGVzdC5maW5kQW5kRXhwYW5kUm93KCJXaW5kb3ciLCBjYWxsYmFjayk7Ci19
OwotCi1JbnNwZWN0b3JUZXN0LmZpbmRBbmRFeHBhbmRSb3cgPSBmdW5jdGlvbihuYW1lLCBjYWxs
YmFjaykKLXsKLSAgICBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2sp
OwotICAgIGZ1bmN0aW9uIHByb3BlcnR5TWF0Y2hlcihkYXRhKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGRhdGEudmFsdWUgPT09IG5hbWU7Ci0gICAgfQotICAgIHZhciByb3cgPSBJbnNwZWN0b3JU
ZXN0LmZpbmRSb3coIm9iamVjdCIsIHByb3BlcnR5TWF0Y2hlcik7Ci0gICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3csICciJyArIG5hbWUgKyAnIiByb3cnKTsKLSAgICBJ
bnNwZWN0b3JUZXN0LmV4cGFuZFJvdyhyb3csIGNhbGxiYWNrKTsKLX07Ci0KLUluc3BlY3RvclRl
c3QuZmluZEJ1dHRvbnNOb2RlID0gZnVuY3Rpb24ocm93LCBzdGFydE5vZGUpCi17Ci0gICAgdmFy
IHJlc3VsdCA9IDA7Ci0gICAgZm9yICh2YXIgbm9kZSA9IHN0YXJ0Tm9kZSB8fCByb3cuY2hpbGRy
ZW5bMF07IG5vZGU7IG5vZGUgPSBub2RlLnRyYXZlcnNlTmV4dE5vZGUodHJ1ZSwgcm93LCB0cnVl
KSkgewotICAgICAgICBpZiAoIW5vZGUuc2VsZWN0YWJsZSAmJiBub2RlLnNob3dOZXh0KQotICAg
ICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgfQotICAgIHJldHVybiBudWxsOwotfTsKLQotSW5z
cGVjdG9yVGVzdC5maW5kUm93ID0gZnVuY3Rpb24oY29sdW1uSWRlbnRpZmllciwgbWF0Y2hlciwg
cGFyZW50KQotewotICAgIHBhcmVudCA9IHBhcmVudCB8fCB0aGlzLl9jdXJyZW50R3JpZCgpLnJv
b3ROb2RlKCk7Ci0gICAgaWYgKHR5cGVvZiBtYXRjaGVyICE9PSAiZnVuY3Rpb24iKSB7Ci0gICAg
ICAgIHZhciB2YWx1ZSA9IG1hdGNoZXI7Ci0gICAgICAgIG1hdGNoZXIgPSBmdW5jdGlvbih4KSB7
IHJldHVybiB4ID09PSB2YWx1ZTsgfTsKLSAgICB9Ci0gICAgZm9yICh2YXIgbm9kZSA9IHBhcmVu
dC5jaGlsZHJlblswXTsgbm9kZTsgbm9kZSA9IG5vZGUudHJhdmVyc2VOZXh0Tm9kZSh0cnVlLCBw
YXJlbnQsIHRydWUpKSB7Ci0gICAgICAgIGlmIChtYXRjaGVyKG5vZGUuZGF0YVtjb2x1bW5JZGVu
dGlmaWVyXSkpCi0gICAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICB9Ci0gICAgcmV0dXJuIG51
bGw7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmZpbmRSb3cyID0gZnVuY3Rpb24obWF0Y2hlciwgcGFy
ZW50KQotewotICAgIHBhcmVudCA9IHBhcmVudCB8fCB0aGlzLl9jdXJyZW50R3JpZCgpLnJvb3RO
b2RlKCk7Ci0gICAgZm9yICh2YXIgbm9kZSA9IHBhcmVudC5jaGlsZHJlblswXTsgbm9kZTsgbm9k
ZSA9IG5vZGUudHJhdmVyc2VOZXh0Tm9kZSh0cnVlLCBwYXJlbnQsIHRydWUpKSB7Ci0gICAgICAg
IGlmIChtYXRjaGVyKG5vZGUuZGF0YSkpCi0gICAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICB9
Ci0gICAgcmV0dXJuIG51bGw7Ci19OwotCi1JbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldyA9IGZ1
bmN0aW9uKHRpdGxlLCBjYWxsYmFjaykKLXsKLSAgICBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Qu
c2FmZVdyYXAoY2FsbGJhY2spOwotICAgIHZhciB2aWV3ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5w
cm9maWxlcy52aXNpYmxlVmlldzsKLSAgICB2aWV3LmNoYW5nZVZpZXcodGl0bGUsIGNhbGxiYWNr
KTsKLX07Ci0KLUluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdCA9IGZ1bmN0aW9uKGdl
bmVyYXRvciwgY2FsbGJhY2spCi17Ci0gICAgY2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNhZmVX
cmFwKGNhbGxiYWNrKTsKLSAgICB2YXIgdWlkID0gSW5zcGVjdG9yVGVzdC5fbmV4dFVpZCsrOwot
ICAgIHZhciBzbmFwc2hvdCA9IGdlbmVyYXRvcigpOwotICAgIHZhciBwcm9maWxlVHlwZSA9IFdl
Ykluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuZ2V0UHJvZmlsZVR5cGUoV2ViSW5zcGVjdG9yLkhl
YXBTbmFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJZCk7Ci0gICAgdmFyIHByb2ZpbGUgPSBwcm9maWxl
VHlwZS5jcmVhdGVQcm9maWxlKHsKLSAgICAgICAgdGl0bGU6IFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsRGVzY3JpcHRvci5Vc2VySW5pdGlhdGVkUHJvZmlsZU5hbWUgKyAiLiIgKyB1aWQsCi0g
ICAgICAgIHVpZDogdWlkLAotICAgICAgICBtYXhKU09iamVjdElkOiBzbmFwc2hvdC5tYXhKU09i
amVjdElkCi0gICAgfSk7Ci0gICAgZGVsZXRlIHNuYXBzaG90Lm1heEpTT2JqZWN0SWQ7Ci0gICAg
ZnVuY3Rpb24gcHVzaEdlbmVyYXRlZFNuYXBzaG90KHVpZCkKLSAgICB7Ci0gICAgICAgIHNuYXBz
aG90LnNuYXBzaG90LnR5cGVJZCA9ICJIRUFQIjsKLSAgICAgICAgc25hcHNob3Quc25hcHNob3Qu
dGl0bGUgPSBwcm9maWxlLnRpdGxlOwotICAgICAgICBzbmFwc2hvdC5zbmFwc2hvdC51aWQgPSBw
cm9maWxlLnVpZDsKLSAgICAgICAgcHJvZmlsZVR5cGUuYWRkSGVhcFNuYXBzaG90Q2h1bmsodWlk
LCBKU09OLnN0cmluZ2lmeShzbmFwc2hvdCkpOwotICAgICAgICBwcm9maWxlVHlwZS5maW5pc2hI
ZWFwU25hcHNob3QodWlkKTsKLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5vdmVycmlkZShIZWFw
UHJvZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIsIHB1c2hHZW5lcmF0ZWRTbmFwc2hvdCk7
Ci0gICAgSW5zcGVjdG9yVGVzdC5fdGFrZUFuZE9wZW5TbmFwc2hvdENhbGxiYWNrID0gY2FsbGJh
Y2s7Ci0gICAgcHJvZmlsZVR5cGUuYWRkUHJvZmlsZShwcm9maWxlKTsKLSAgICBXZWJJbnNwZWN0
b3IucGFuZWxzLnByb2ZpbGVzLl9zaG93UHJvZmlsZShwcm9maWxlKTsKLX07Ci0KLUluc3BlY3Rv
clRlc3Qudmlld0NvbHVtbnMgPSBmdW5jdGlvbigpCi17Ci0gICAgcmV0dXJuIEluc3BlY3RvclRl
c3QuX2N1cnJlbnRHcmlkKCkuX2NvbHVtbnNBcnJheTsKLX07Ci0KLUluc3BlY3RvclRlc3QuX2N1
cnJlbnRQcm9maWxlVmlldyA9IGZ1bmN0aW9uKCkKLXsKLSAgICByZXR1cm4gV2ViSW5zcGVjdG9y
LnBhbmVscy5wcm9maWxlcy52aXNpYmxlVmlldzsKLX07Ci0KLUluc3BlY3RvclRlc3QuX2N1cnJl
bnRHcmlkID0gZnVuY3Rpb24oKQotewotICAgIHJldHVybiB0aGlzLl9jdXJyZW50UHJvZmlsZVZp
ZXcoKS5kYXRhR3JpZDsKLX07Ci0KLUluc3BlY3RvclRlc3QuX3NuYXBzaG90Vmlld1Nob3duID0g
ZnVuY3Rpb24oKQotewotICAgIGlmIChJbnNwZWN0b3JUZXN0Ll90YWtlQW5kT3BlblNuYXBzaG90
Q2FsbGJhY2spIHsKLSAgICAgICAgdmFyIGNhbGxiYWNrID0gSW5zcGVjdG9yVGVzdC5fdGFrZUFu
ZE9wZW5TbmFwc2hvdENhbGxiYWNrOwotICAgICAgICBJbnNwZWN0b3JUZXN0Ll90YWtlQW5kT3Bl
blNuYXBzaG90Q2FsbGJhY2sgPSBudWxsOwotICAgICAgICB2YXIgZGF0YUdyaWQgPSB0aGlzLmRh
dGFHcmlkOwotICAgICAgICBmdW5jdGlvbiBzb3J0aW5nQ29tcGxldGUoKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBkYXRhR3JpZC5yZW1vdmVFdmVudExpc3RlbmVyKCJzb3J0aW5nIGNvbXBsZXRl
Iiwgc29ydGluZ0NvbXBsZXRlLCBudWxsKTsKLSAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgZGF0YUdyaWQuYWRkRXZlbnRMaXN0ZW5lcigic29ydGluZyBjb21wbGV0
ZSIsIHNvcnRpbmdDb21wbGV0ZSwgbnVsbCk7Ci0gICAgfQotfTsKLQotfTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlYmFmODU3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
MzcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iaGVh
cC1zbmFwc2hvdC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInByb2ZpbGVzIik7Ci0gICAgSW5zcGVj
dG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiBoZWFwU25hcHNob3ROb2Rl
U2ltcGxlVGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc25hcHNob3QgPSBJ
bnNwZWN0b3JUZXN0LmNyZWF0ZUpTSGVhcFNuYXBzaG90TW9ja09iamVjdCgpOwotICAgICAgICAg
ICAgdmFyIG5vZGVSb290ID0gc25hcHNob3QuY3JlYXRlTm9kZShzbmFwc2hvdC5fcm9vdE5vZGVJ
bmRleCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiIiwgbm9kZVJv
b3QubmFtZSgpLCAicm9vdCBuYW1lIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dEVxdWFscygiaGlkZGVuIiwgbm9kZVJvb3QudHlwZSgpLCAicm9vdCB0eXBlIik7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygyLCBub2RlUm9vdC5lZGdlc0NvdW50KCks
ICJyb290IGVkZ2VzIik7Ci0gICAgICAgICAgICB2YXIgbm9kZUUgPSBzbmFwc2hvdC5jcmVhdGVO
b2RlKDE1KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJFIiwgbm9k
ZUUubmFtZSgpLCAiRSBuYW1lIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscygib2JqZWN0Iiwgbm9kZUUudHlwZSgpLCAiRSB0eXBlIik7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydEVxdWFscygwLCBub2RlRS5lZGdlc0NvdW50KCksICJFIGVkZ2VzIik7
Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gaGVh
cFNuYXBzaG90Tm9kZUl0ZXJhdG9yVGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2
YXIgc25hcHNob3QgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUpTSGVhcFNuYXBzaG90TW9ja09iamVj
dCgpOwotICAgICAgICAgICAgdmFyIG5vZGVSb290ID0gc25hcHNob3QuY3JlYXRlTm9kZShzbmFw
c2hvdC5fcm9vdE5vZGVJbmRleCk7Ci0gICAgICAgICAgICB2YXIgaXRlcmF0b3IgPSBuZXcgV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGVJdGVyYXRvcihub2RlUm9vdCk7Ci0gICAgICAgICAg
ICB2YXIgbmFtZXMgPSBbXTsKLSAgICAgICAgICAgIGZvciAoaXRlcmF0b3IucmV3aW5kKCk7IGl0
ZXJhdG9yLmhhc05leHQoKTsgaXRlcmF0b3IubmV4dCgpKQotICAgICAgICAgICAgICAgIG5hbWVz
LnB1c2goaXRlcmF0b3IuaXRlbSgpLm5hbWUoKSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscygiLEEsQixDLEQsRSIsIG5hbWVzLmpvaW4oIiwiKSwgIm5vZGUgaXRlcmF0
b3IiKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlv
biBoZWFwU25hcHNob3RFZGdlU2ltcGxlVGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICB2YXIgc25hcHNob3QgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUpTSGVhcFNuYXBzaG90TW9ja09i
amVjdCgpOwotICAgICAgICAgICAgdmFyIG5vZGVSb290ID0gc25hcHNob3QuY3JlYXRlTm9kZShz
bmFwc2hvdC5fcm9vdE5vZGVJbmRleCk7Ci0gICAgICAgICAgICB2YXIgZWRnZXNSb290ID0gbm9k
ZVJvb3QucmF3RWRnZXMoKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KG5vZGVSb290LmVkZ2VzQ291bnQoKSAqIHNuYXBzaG90Ll9lZGdlRmllbGRzQ291bnQsIGVkZ2Vz
Um9vdC5sZW5ndGgsICJyYXdFZGdlcyBsZW5ndGgiKTsKLSAgICAgICAgICAgIHZhciBlZGdlID0g
c25hcHNob3QuY3JlYXRlRWRnZShlZGdlc1Jvb3QpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnRFcXVhbHMoInNob3J0Y3V0IiwgZWRnZS50eXBlKCksICJlZGdlIHR5cGUiKTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJhIiwgZWRnZS5uYW1lKCksICJl
ZGdlIG5hbWUiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJBIiwg
ZWRnZS5ub2RlKCkubmFtZSgpLCAiZWRnZSBub2RlIG5hbWUiKTsKLSAgICAgICAgICAgIG5leHQo
KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiBoZWFwU25hcHNob3RFZGdlSXRlcmF0
b3JUZXN0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzbmFwc2hvdCA9IEluc3Bl
Y3RvclRlc3QuY3JlYXRlSlNIZWFwU25hcHNob3RNb2NrT2JqZWN0KCk7Ci0gICAgICAgICAgICB2
YXIgbm9kZVJvb3QgPSBzbmFwc2hvdC5jcmVhdGVOb2RlKHNuYXBzaG90Ll9yb290Tm9kZUluZGV4
KTsKLSAgICAgICAgICAgIHZhciBuYW1lcyA9IFtdOwotICAgICAgICAgICAgdmFyIGl0ZXJhdG9y
ID0gbm9kZVJvb3QuZWRnZXMoKTsKLSAgICAgICAgICAgIGZvciAoaXRlcmF0b3IucmV3aW5kKCk7
IGl0ZXJhdG9yLmhhc05leHQoKTsgaXRlcmF0b3IubmV4dCgpKQotICAgICAgICAgICAgICAgIG5h
bWVzLnB1c2goaXRlcmF0b3IuaXRlbSgpLm5hbWUoKSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEVxdWFscygiYSxiIiwgbmFtZXMuam9pbigiLCIpLCAiZWRnZSBpdGVyYXRvciIp
OwotICAgICAgICAgICAgdmFyIG5vZGVFID0gc25hcHNob3QuY3JlYXRlTm9kZSgxNSk7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhmYWxzZSwgbm9kZUUuZWRnZXMoKS5o
YXNOZXh0KCksICJlbXB0eSBlZGdlIGl0ZXJhdG9yIik7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0g
ICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gaGVhcFNuYXBzaG90Tm9kZUFuZEVkZ2VUZXN0
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzbmFwc2hvdE1vY2sgPSBJbnNwZWN0
b3JUZXN0LmNyZWF0ZUpTSGVhcFNuYXBzaG90TW9ja09iamVjdCgpOwotICAgICAgICAgICAgdmFy
IG5vZGVSb290ID0gc25hcHNob3RNb2NrLmNyZWF0ZU5vZGUoc25hcHNob3RNb2NrLl9yb290Tm9k
ZUluZGV4KTsKLSAgICAgICAgICAgIHZhciBuYW1lcyA9IFtdOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBmdW5jdGlvbiBkZXB0aEZpcnN0VHJhdmVyc2FsKG5vZGUpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgbmFtZXMucHVzaChub2RlLm5hbWUoKSk7Ci0gICAgICAgICAgICAg
ICAgZm9yICh2YXIgZWRnZXMgPSBub2RlLmVkZ2VzKCk7IGVkZ2VzLmhhc05leHQoKTsgZWRnZXMu
bmV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWVzLnB1c2goZWRnZXMuaXRlbSgpLm5h
bWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGRlcHRoRmlyc3RUcmF2ZXJzYWwoZWRnZXMuaXRl
bSgpLm5vZGUoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAg
Ci0gICAgICAgICAgICBkZXB0aEZpcnN0VHJhdmVyc2FsKG5vZGVSb290KTsKLSAgICAgICAgICAg
IHZhciByZWZlcmVuY2UgPSAiLGEsQSwxLEIsYmMsQyxjZSxFLGJkLEQsYWMsQyxjZSxFLGIsQixi
YyxDLGNlLEUsYmQsRCI7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhy
ZWZlcmVuY2UsIG5hbWVzLmpvaW4oIiwiKSwgIm1vY2sgdHJhdmVyc2FsIik7Ci0gICAgICAgICAK
LSAgICAgICAgICAgIC8vIE5vdyBjaGVjayBhZ2FpbnN0IGEgcmVhbCBIZWFwU25hcHNob3QgaW5z
dGFuY2UuCi0gICAgICAgICAgICBuYW1lcyA9IFtdOwotICAgICAgICAgICAgdmFyIHNuYXBzaG90
ID0gbmV3IFdlYkluc3BlY3Rvci5KU0hlYXBTbmFwc2hvdChJbnNwZWN0b3JUZXN0LmNyZWF0ZUhl
YXBTbmFwc2hvdE1vY2soKSk7Ci0gICAgICAgICAgICBkZXB0aEZpcnN0VHJhdmVyc2FsKHNuYXBz
aG90LnJvb3ROb2RlKCkpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMo
cmVmZXJlbmNlLCBuYW1lcy5qb2luKCIsIiksICJzbmFwc2hvdCB0cmF2ZXJzYWwiKTsKLSAgICAg
ICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiBoZWFwU25hcHNo
b3RTaW1wbGVUZXN0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzbmFwc2hvdCA9
IG5ldyBXZWJJbnNwZWN0b3IuSlNIZWFwU25hcHNob3QoSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFw
U25hcHNob3RNb2NrKCkpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMo
Niwgc25hcHNob3Qubm9kZUNvdW50LCAibm9kZSBjb3VudCIpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHMoMjAsIHNuYXBzaG90LnRvdGFsU2l6ZSwgInRvdGFsIHNpemUi
KTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiBo
ZWFwU25hcHNob3RDb250YWlubWVudEVkZ2VJbmRleGVzVGVzdChuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICB2YXIgc25hcHNob3QgPSBuZXcgV2ViSW5zcGVjdG9yLkpTSGVhcFNuYXBzaG90
KEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9jaygpKTsKLSAgICAgICAgICAgIHZh
ciBhY3R1YWwgPSBzbmFwc2hvdC5fZmlyc3RFZGdlSW5kZXhlczsKLSAgICAgICAgICAgIHZhciBl
eHBlY3RlZCA9IFswLCA2LCAxMiwgMTgsIDIxLCAyMSwgMjFdOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHMoZXhwZWN0ZWQubGVuZ3RoLCBhY3R1YWwubGVuZ3RoLCAiRWRn
ZSBpbmRleGVzIHNpemUiKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0
ZWQubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHMoZXhwZWN0ZWRbaV0sIGFjdHVhbFtpXSwgIkVkZ2UgaW5kZXhlcyIpOwotICAgICAgICAgICAg
bmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hvdFBvc3RP
cmRlckluZGV4VGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc25hcHNob3Qg
PSBuZXcgV2ViSW5zcGVjdG9yLkpTSGVhcFNuYXBzaG90KEluc3BlY3RvclRlc3QuY3JlYXRlSGVh
cFNuYXBzaG90TW9jaygpKTsKLSAgICAgICAgICAgIHZhciBwb3N0T3JkZXJJbmRleDJOb2RlT3Jk
aW5hbCA9IHNuYXBzaG90Ll9idWlsZFBvc3RPcmRlckluZGV4KCkucG9zdE9yZGVySW5kZXgyTm9k
ZU9yZGluYWw7Ci0gICAgICAgICAgICB2YXIgZXhwZWN0ZWQgPSBbNCw1LDMsMiwxLDBdOwotICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7ICsraSkKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhleHBlY3RlZFtpXSwgcG9zdE9y
ZGVySW5kZXgyTm9kZU9yZGluYWxbaV0sICJQb3N0IG9yZGVyZWQgaW5kZXhlcyIpOwotICAgICAg
ICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hv
dERvbWluYXRvcnNUcmVlVGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc25h
cHNob3QgPSBuZXcgV2ViSW5zcGVjdG9yLkpTSGVhcFNuYXBzaG90KEluc3BlY3RvclRlc3QuY3Jl
YXRlSGVhcFNuYXBzaG90TW9jaygpKTsKLSAgICAgICAgICAgIHZhciByZXN1bHQgPSBzbmFwc2hv
dC5fYnVpbGRQb3N0T3JkZXJJbmRleCgpOwotICAgICAgICAgICAgdmFyIGRvbWluYXRvcnNUcmVl
ID0gc25hcHNob3QuX2J1aWxkRG9taW5hdG9yVHJlZShyZXN1bHQucG9zdE9yZGVySW5kZXgyTm9k
ZU9yZGluYWwsIHJlc3VsdC5ub2RlT3JkaW5hbDJQb3N0T3JkZXJJbmRleCk7Ci0gICAgICAgICAg
ICB2YXIgZXhwZWN0ZWQgPSBbMCwgMCwgMCwgMCwgMiwgM107Ci0gICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkW2ldLCBkb21pbmF0b3JzVHJlZVtpXSwgIkRv
bWluYXRvcnMgVHJlZSIpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAg
ICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hvdFJldGFpbmVkU2l6ZVRlc3QobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgdmFyIHNuYXBzaG90ID0gbmV3IFdlYkluc3BlY3Rvci5KU0hlYXBTbmFw
c2hvdChJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdE1vY2soKSk7Ci0gICAgICAgICAg
ICB2YXIgYWN0dWFsUmV0YWluZWRTaXplcyA9IG5ldyBBcnJheShzbmFwc2hvdC5ub2RlQ291bnQp
OwotICAgICAgICAgICAgZm9yICh2YXIgbm9kZU9yZGluYWwgPSAwOyBub2RlT3JkaW5hbCA8IHNu
YXBzaG90Lm5vZGVDb3VudDsgKytub2RlT3JkaW5hbCkKLSAgICAgICAgICAgICAgICBhY3R1YWxS
ZXRhaW5lZFNpemVzW25vZGVPcmRpbmFsXSA9IHNuYXBzaG90Ll9ub2Rlc1tub2RlT3JkaW5hbCAq
IHNuYXBzaG90Ll9ub2RlRmllbGRDb3VudCArIHNuYXBzaG90Ll9ub2RlUmV0YWluZWRTaXplT2Zm
c2V0XTsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZFJldGFpbmVkU2l6ZXMgPSBbMjAsIDIsIDgs
IDEwLCA1LCA2XTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKEpTT04u
c3RyaW5naWZ5KGV4cGVjdGVkUmV0YWluZWRTaXplcyksIEpTT04uc3RyaW5naWZ5KGFjdHVhbFJl
dGFpbmVkU2l6ZXMpLCAiUmV0YWluZWQgc2l6ZXMiKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAg
ICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiBoZWFwU25hcHNob3REb21pbmF0ZWROb2Rlc1Rl
c3QobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHNuYXBzaG90ID0gbmV3IFdlYklu
c3BlY3Rvci5KU0hlYXBTbmFwc2hvdChJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdE1v
Y2soKSk7Ci0KLSAgICAgICAgICAgIHZhciBleHBlY3RlZERvbWluYXRlZE5vZGVzID0gWzIxLCAx
NCwgNywgMjgsIDM1XTsKLSAgICAgICAgICAgIHZhciBhY3R1YWxEb21pbmF0ZWROb2RlcyA9IHNu
YXBzaG90Ll9kb21pbmF0ZWROb2RlczsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
RXF1YWxzKGV4cGVjdGVkRG9taW5hdGVkTm9kZXMubGVuZ3RoLCBhY3R1YWxEb21pbmF0ZWROb2Rl
cy5sZW5ndGgsICJEb21pbmF0ZWQgTm9kZXMgbGVuZ3RoIik7Ci0gICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGV4cGVjdGVkRG9taW5hdGVkTm9kZXMubGVuZ3RoOyArK2kpCi0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZXhwZWN0ZWREb21pbmF0ZWROb2Rl
c1tpXSwgYWN0dWFsRG9taW5hdGVkTm9kZXNbaV0sICJEb21pbmF0ZWQgTm9kZXMiKTsKLQotICAg
ICAgICAgICAgdmFyIGV4cGVjdGVkRG9taW5hdGVkTm9kZUluZGV4ID0gWzAsIDMsIDMsIDQsIDUs
IDUsIDVdOwotICAgICAgICAgICAgdmFyIGFjdHVhbERvbWluYXRlZE5vZGVJbmRleCA9IHNuYXBz
aG90Ll9maXJzdERvbWluYXRlZE5vZGVJbmRleDsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0RXF1YWxzKGV4cGVjdGVkRG9taW5hdGVkTm9kZUluZGV4Lmxlbmd0aCwgYWN0dWFsRG9t
aW5hdGVkTm9kZUluZGV4Lmxlbmd0aCwgIkRvbWluYXRlZCBOb2RlcyBJbmRleCBsZW5ndGgiKTsK
LSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWREb21pbmF0ZWROb2RlSW5k
ZXgubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHMoZXhwZWN0ZWREb21pbmF0ZWROb2RlSW5kZXhbaV0sIGFjdHVhbERvbWluYXRlZE5vZGVJbmRl
eFtpXSwgIkRvbWluYXRlZCBOb2RlcyBJbmRleCIpOwotICAgICAgICAgICAgbmV4dCgpOwotICAg
ICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hvdFBhZ2VPd25lZFRlc3QobmV4
dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIGJ1aWxkZXIgPSBuZXcgSW5zcGVjdG9yVGVz
dC5IZWFwU25hcHNob3RCdWlsZGVyKCk7Ci0gICAgICAgICAgICB2YXIgcm9vdE5vZGUgPSBidWls
ZGVyLnJvb3ROb2RlOwotCi0gICAgICAgICAgICB2YXIgZGVidWdnZXJOb2RlID0gbmV3IEluc3Bl
Y3RvclRlc3QuSGVhcE5vZGUoIkRlYnVnZ2VyIik7Ci0gICAgICAgICAgICByb290Tm9kZS5saW5r
Tm9kZShkZWJ1Z2dlck5vZGUsIEluc3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlwZS5lbGVtZW50KTsK
LQotICAgICAgICAgICAgdmFyIHdpbmRvd05vZGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5IZWFwTm9k
ZSgiV2luZG93Iik7Ci0gICAgICAgICAgICByb290Tm9kZS5saW5rTm9kZSh3aW5kb3dOb2RlLCBJ
bnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5cGUuc2hvcnRjdXQpOwotCi0gICAgICAgICAgICB2YXIg
cGFnZU93bmVkTm9kZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBOb2RlKCJQYWdlT3duZWROb2Rl
Iik7Ci0gICAgICAgICAgICB3aW5kb3dOb2RlLmxpbmtOb2RlKHBhZ2VPd25lZE5vZGUsIEluc3Bl
Y3RvclRlc3QuSGVhcEVkZ2UuVHlwZS5lbGVtZW50KTsKLSAgICAgICAgICAgIGRlYnVnZ2VyTm9k
ZS5saW5rTm9kZShwYWdlT3duZWROb2RlLCBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5cGUucHJv
cGVydHksICJkZWJ1Z2dlcjJwYWdlT3duZWROb2RlIik7Ci0KLSAgICAgICAgICAgIHZhciBkZWJ1
Z2dlck93bmVkTm9kZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBOb2RlKCJkZWJ1Z2dlck93bmVk
Tm9kZSIpOwotICAgICAgICAgICAgZGVidWdnZXJOb2RlLmxpbmtOb2RlKGRlYnVnZ2VyT3duZWRO
b2RlLCBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5cGUuZWxlbWVudCk7Ci0KLSAgICAgICAgICAg
IHZhciBzbmFwc2hvdCA9IG5ldyBXZWJJbnNwZWN0b3IuSlNIZWFwU25hcHNob3QoYnVpbGRlci5n
ZW5lcmF0ZVNuYXBzaG90KCkpOwotICAgICAgICAgICAgc25hcHNob3QuX2ZsYWdzID0gbmV3IEFy
cmF5KHNuYXBzaG90Lm5vZGVDb3VudCk7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHNuYXBzaG90Lm5vZGVDb3VudDsgKytpKQotICAgICAgICAgICAgICAgIHNuYXBzaG90Ll9mbGFn
c1tpXSA9IDA7Ci0gICAgICAgICAgICBzbmFwc2hvdC5fbWFya1BhZ2VPd25lZE5vZGVzKCk7Ci0K
LSAgICAgICAgICAgIHZhciBleHBlY3RlZEZsYWdzID0gWzAsIDAsIDQsIDQsIDBdOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoCi0gICAgICAgICAgICAgICAgSlNPTi5z
dHJpbmdpZnkoZXhwZWN0ZWRGbGFncyksCi0gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnko
c25hcHNob3QuX2ZsYWdzKSwKLSAgICAgICAgICAgICAgICAiV2UgYXJlIGV4cGVjdGluZyB0aGF0
IG9ubHkgd2luZG93KHRoaXJkIGVsZW1lbnQpIGFuZCBQYWdlT3duZWROb2RlKGZvcnRoIGVsZW1l
bnQpIGhhdmUgZmxhZyA9PT0gNC4iKTsKLQotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9
LAotCi0gICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hvdFJldGFpbmVyc1Rlc3QobmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgdmFyIHNuYXBzaG90ID0gbmV3IFdlYkluc3BlY3Rvci5KU0hl
YXBTbmFwc2hvdChJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdE1vY2soKSk7Ci0gICAg
ICAgICAgICB2YXIgZXhwZWN0ZWRSZXRhaW5lcnMgPSB7Ci0gICAgICAgICAgICAgICAgIiI6IFtd
LAotICAgICAgICAgICAgICAgICJBIjogWyIiXSwKLSAgICAgICAgICAgICAgICAiQiI6IFsiIiwg
IkEiXSwKLSAgICAgICAgICAgICAgICAiQyI6IFsiQSIsICJCIl0sCi0gICAgICAgICAgICAgICAg
IkQiOiBbIkIiXSwKLSAgICAgICAgICAgICAgICAiRSI6IFsiQyJdfTsKLSAgICAgICAgICAgIGZv
ciAodmFyIG5vZGVzID0gc25hcHNob3QuX2FsbE5vZGVzKCk7IG5vZGVzLmhhc05leHQoKTsgbm9k
ZXMubmV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFyIG5hbWVzID0gW107Ci0gICAgICAgICAg
ICAgICAgZm9yICh2YXIgcmV0YWluZXJzID0gbm9kZXMuaXRlbSgpLnJldGFpbmVycygpOyByZXRh
aW5lcnMuaGFzTmV4dCgpOyByZXRhaW5lcnMubmV4dCgpKQotICAgICAgICAgICAgICAgICAgICBu
YW1lcy5wdXNoKHJldGFpbmVycy5pdGVtKCkubm9kZSgpLm5hbWUoKSk7Ci0gICAgICAgICAgICAg
ICAgbmFtZXMuc29ydCgpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1
YWxzKGV4cGVjdGVkUmV0YWluZXJzW25vZGVzLml0ZW0oKS5uYW1lKCldLmpvaW4oIiwiKSwgbmFt
ZXMuam9pbigiLCIpLCAicmV0YWluZXJzIG9mIFwiIiArIG5vZGVzLml0ZW0oKS5uYW1lKCkgKyAi
XCIiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQot
ICAgICAgICBmdW5jdGlvbiBoZWFwU25hcHNob3RBZ2dyZWdhdGVzVGVzdChuZXh0KQotICAgICAg
ICB7Ci0gICAgICAgICAgICB2YXIgc25hcHNob3QgPSBuZXcgV2ViSW5zcGVjdG9yLkpTSGVhcFNu
YXBzaG90KEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9jaygpKTsKLSAgICAgICAg
ICAgIHZhciBleHBlY3RlZEFnZ3JlZ2F0ZXMgPSB7Ci0gICAgICAgICAgICAgICAgIkEiOiB7IGNv
dW50OiAxLCBzZWxmOiAyLCBtYXhSZXQ6IDIsIHR5cGU6ICJvYmplY3QiLCBuYW1lOiAiQSIgfSwK
LSAgICAgICAgICAgICAgICAiQiI6IHsgY291bnQ6IDEsIHNlbGY6IDMsIG1heFJldDogOCwgdHlw
ZTogIm9iamVjdCIsIG5hbWU6ICJCIiB9LAotICAgICAgICAgICAgICAgICJDIjogeyBjb3VudDog
MSwgc2VsZjogNCwgbWF4UmV0OiAxMCwgdHlwZTogIm9iamVjdCIsIG5hbWU6ICJDIiB9LAotICAg
ICAgICAgICAgICAgICJEIjogeyBjb3VudDogMSwgc2VsZjogNSwgbWF4UmV0OiA1LCB0eXBlOiAi
b2JqZWN0IiwgbmFtZTogIkQiIH0sCi0gICAgICAgICAgICAgICAgIkUiOiB7IGNvdW50OiAxLCBz
ZWxmOiA2LCBtYXhSZXQ6IDYsIHR5cGU6ICJvYmplY3QiLCBuYW1lOiAiRSIgfQotICAgICAgICAg
ICAgfTsKLSAgICAgICAgICAgIHZhciBhZ2dyZWdhdGVzID0gc25hcHNob3QuYWdncmVnYXRlcyhm
YWxzZSk7Ci0gICAgICAgICAgICBmb3IgKHZhciBuYW1lIGluIGFnZ3JlZ2F0ZXMpIHsKLSAgICAg
ICAgICAgICAgICB2YXIgYWdncmVnYXRlID0gYWdncmVnYXRlc1tuYW1lXTsKLSAgICAgICAgICAg
ICAgICB2YXIgZXhwZWN0ZWRBZ2dyZWdhdGUgPSBleHBlY3RlZEFnZ3JlZ2F0ZXNbbmFtZV07Ci0g
ICAgICAgICAgICAgICAgZm9yICh2YXIgcGFyYW1ldGVyIGluIGV4cGVjdGVkQWdncmVnYXRlKQot
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhleHBlY3RlZEFn
Z3JlZ2F0ZVtwYXJhbWV0ZXJdLCBhZ2dyZWdhdGVbcGFyYW1ldGVyXSwgInBhcmFtZXRlciAiICsg
cGFyYW1ldGVyICsgIiBvZiBcIiIgKyBuYW1lICsgIlwiIik7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB2YXIgZXhwZWN0ZWRJbmRleGVzID0gewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBJbmRleCBvZiBjb3JyZXNwb25kaW5nIG5vZGUgaW4gdGhlIHJhdyBzbmFwc2hvdDoKLSAg
ICAgICAgICAgICAgICJBIjogWzddLCAgLy8gMTQKLSAgICAgICAgICAgICAgICJCIjogWzE0XSwg
Ly8gMjcKLSAgICAgICAgICAgICAgICJDIjogWzIxXSwgLy8gNDAKLSAgICAgICAgICAgICAgICJE
IjogWzI4XSwgLy8gNTAKLSAgICAgICAgICAgICAgICJFIjogWzM1XSAgLy8gNTcKLSAgICAgICAg
ICAgIH07Ci0gICAgICAgICAgICB2YXIgaW5kZXhlcyA9IHNuYXBzaG90LmFnZ3JlZ2F0ZXModHJ1
ZSk7Ci0gICAgICAgICAgICBmb3IgKHZhciBuYW1lIGluIGFnZ3JlZ2F0ZXMpIHsKLSAgICAgICAg
ICAgICAgICB2YXIgYWdncmVnYXRlID0gYWdncmVnYXRlc1tuYW1lXTsKLSAgICAgICAgICAgICAg
ICB2YXIgZXhwZWN0ZWRJbmRleCA9IGV4cGVjdGVkSW5kZXhlc1tuYW1lXTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhleHBlY3RlZEluZGV4LmpvaW4oIiwiKSwg
YWdncmVnYXRlLmlkeHMuam9pbigiLCIpLCAiaW5kZXhlcyBvZiBcIiIgKyBuYW1lICsgIlwiIik7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gaGVhcFNuYXBzaG90RmxhZ3NUZXN0KG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHZhciBzbmFwc2hvdCA9IG5ldyBXZWJJbnNwZWN0b3IuSlNIZWFwU25hcHNob3QoSW5z
cGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3RNb2NrV2l0aERPTSgpKTsKLSAgICAgICAgICAg
IHZhciBleHBlY3RlZENhbkJlUXVlcmllZCA9IHsKLSAgICAgICAgICAgICAgICAiIjogZmFsc2Us
Ci0gICAgICAgICAgICAgICAiQSI6IHRydWUsCi0gICAgICAgICAgICAgICAiQiI6IHRydWUsCi0g
ICAgICAgICAgICAgICAiQyI6IHRydWUsCi0gICAgICAgICAgICAgICAiRCI6IHRydWUsCi0gICAg
ICAgICAgICAgICAiRSI6IGZhbHNlLAotICAgICAgICAgICAgICAgIkYiOiBmYWxzZSwKLSAgICAg
ICAgICAgICAgICJHIjogZmFsc2UsCi0gICAgICAgICAgICAgICAiSCI6IGZhbHNlLAotICAgICAg
ICAgICAgICAgIk0iOiBmYWxzZSwKLSAgICAgICAgICAgICAgICJOIjogZmFsc2UsCi0gICAgICAg
ICAgICAgICAiV2luZG93IjogdHJ1ZQotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGZvciAo
dmFyIG5vZGVzID0gc25hcHNob3QuX2FsbE5vZGVzKCk7IG5vZGVzLmhhc05leHQoKTsgbm9kZXMu
bmV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFyIG5vZGUgPSBub2Rlcy5pdGVtKCk7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRDYW5CZVF1ZXJp
ZWRbbm9kZS5uYW1lKCldLCBub2RlLmNhbkJlUXVlcmllZCgpLCAiY2FuQmVRdWVyaWVkIG9mIFwi
IiArIG5vZGUubmFtZSgpICsgIlwiIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBuZXh0
KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gaGVhcFNuYXBzaG90QXJyYXlTbGlj
ZVRlc3QobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHNuYXBzaG90ID0gbmV3IFdl
Ykluc3BlY3Rvci5KU0hlYXBTbmFwc2hvdChJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hv
dE1vY2soKSk7Ci0gICAgICAgICAgICB2YXIgcm9vdCA9IHNuYXBzaG90LnJvb3ROb2RlKCk7Ci0g
ICAgICAgICAgICB2YXIgcmF3RWRnZXMgPSByb290LnJhd0VkZ2VzKCk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyg2LCByYXdFZGdlcy5sZW5ndGgpOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoNiwgcmF3RWRnZXMuc2xpY2UoMCkubGVuZ3Ro
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDMsIHJhd0VkZ2VzLnNs
aWNlKDMpLmxlbmd0aCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygz
LCByYXdFZGdlcy5zbGljZSgzLCA2KS5sZW5ndGgpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnRFcXVhbHMoMywgcmF3RWRnZXMuc2xpY2UoMCwgMykubGVuZ3RoKTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDAsIHJhd0VkZ2VzLnNsaWNlKDMsIDMpLmxl
bmd0aCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rp
b24gaGVhcFNuYXBzaG90Tm9kZXNQcm92aWRlclRlc3QobmV4dCkKLSAgICAgICAgewotICAgICAg
ICAgICAgdmFyIHNuYXBzaG90ID0gbmV3IFdlYkluc3BlY3Rvci5KU0hlYXBTbmFwc2hvdChJbnNw
ZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdE1vY2soKSk7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIG5vZGVGaWx0ZXIobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gbm9kZS50eXBlKCkgPT09ICJvYmplY3QiICYmIG5vZGUubmFtZSgpICE9
PSAiQiIgJiYgbm9kZS5uYW1lKCkgIT09ICJEIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgIAot
ICAgICAgICAgICAgdmFyIHByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RO
b2Rlc1Byb3ZpZGVyKHNuYXBzaG90LCBub2RlRmlsdGVyKTsKLSAgICAgICAgICAgIC8vIFNvcnQg
YnkgbmFtZXMgaW4gcmV2ZXJzZSBvcmRlci4KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKDMsIHByb3ZpZGVyLmxlbmd0aCwgIm5vZGVzIHByb3ZpZGVyIGxlbmd0aCIpOwot
ICAgICAgICAgICAgcHJvdmlkZXIuc29ydChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RmlsdGVy
ZWRPcmRlcmVkSXRlcmF0b3IucHJvdG90eXBlLmNyZWF0ZUNvbXBhcmF0b3IoWyJuYW1lIiwgZmFs
c2UsICJpZCIsIGZhbHNlXSksIDAsIDIsIDMpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRFcXVhbHMoMywgcHJvdmlkZXIubGVuZ3RoLCAibm9kZXMgcHJvdmlkZXIgbGVuZ3RoIik7
Ci0gICAgICAgICAgICB2YXIgbmFtZXMgPSBbXTsKLSAgICAgICAgICAgIGZvciAocHJvdmlkZXIu
cmV3aW5kKCk7IHByb3ZpZGVyLmhhc05leHQoKTsgcHJvdmlkZXIubmV4dCgpKQotICAgICAgICAg
ICAgICAgIG5hbWVzLnB1c2gocHJvdmlkZXIuaXRlbSgpLm5hbWUoKSk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiRSxDLEEiLCBuYW1lcy5qb2luKCIsIiksICJub2Rl
cyBwcm92aWRlciBuYW1lcyIpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0g
ICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hvdEVkZ2VzUHJvdmlkZXJUZXN0KG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHZhciBzbmFwc2hvdCA9IG5ldyBXZWJJbnNwZWN0b3IuSlNIZWFw
U25hcHNob3QoSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3RNb2NrKCkpOwotICAgICAg
ICAgCi0gICAgICAgICAgICBmdW5jdGlvbiBlZGdlRmlsdGVyKGVkZ2UpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVkZ2UubmFtZSgpID09PSAiYiI7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAKLSAgICAgICAgICAgIHZhciBwcm92aWRlciA9IHNuYXBzaG90LmNyZWF0
ZUVkZ2VzUHJvdmlkZXJGb3JUZXN0KHNuYXBzaG90LnJvb3ROb2RlSW5kZXgsIGVkZ2VGaWx0ZXIp
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgcHJvdmlkZXIubGVu
Z3RoLCAiZWRnZXMgcHJvdmlkZXIgbGVuZ3RoIik7Ci0gICAgICAgICAgICBwcm92aWRlci5zb3J0
KFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RGaWx0ZXJlZE9yZGVyZWRJdGVyYXRvci5wcm90b3R5
cGUuY3JlYXRlQ29tcGFyYXRvcihbIiFlZGdlTmFtZSIsIGZhbHNlLCAiaWQiLCBmYWxzZV0pLCAw
LCAwLCAxKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHByb3Zp
ZGVyLmxlbmd0aCwgImVkZ2VzIHByb3ZpZGVyIGxlbmd0aCIpOwotICAgICAgICAgICAgdmFyIG5h
bWVzID0gW107Ci0gICAgICAgICAgICBmb3IgKHByb3ZpZGVyLnJld2luZCgpOyBwcm92aWRlci5o
YXNOZXh0KCk7IHByb3ZpZGVyLm5leHQoKSkKLSAgICAgICAgICAgICAgICBuYW1lcy5wdXNoKHBy
b3ZpZGVyLml0ZW0oKS5uYW1lKCkpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHMoImIiLCBuYW1lcy5qb2luKCIsIiksICJlZGdlcyBwcm92aWRlciBuYW1lcyIpOwotICAg
ICAgICAgICAgbmV4dCgpOwotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRoaXMgdGVzdCBjaGVja3Mg
SGVhcFNuYXBzaG90cyBtb2R1bGUuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9wcm9maWxlci10ZXN0LmpzIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL3Byb2ZpbGVyLXRlc3QuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE3Yjg5ZDQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL3Byb2ZpbGVyLXRlc3QuanMKKysrIC9kZXYvbnVsbApAQCAtMSw5NCAr
MCwwIEBACi12YXIgaW5pdGlhbGl6ZV9Qcm9maWxlclRlc3QgPSBmdW5jdGlvbigpIHsKLQotSW5z
cGVjdG9yVGVzdC5zdGFydFByb2ZpbGVyVGVzdCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQotewotICAg
IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInByb2ZpbGVzIik7Ci0KLSAgICBmdW5jdGlvbiBzdGFy
dFRlc3QoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlByb2ZpbGVy
IHdhcyBlbmFibGVkLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5z
cGVjdG9yLnBhbmVscy5wcm9maWxlcywgIl9hZGRQcm9maWxlSGVhZGVyIiwgSW5zcGVjdG9yVGVz
dC5fcHJvZmlsZUhlYWRlckFkZGVkLCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRT
bmlmZmVyKFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldy5wcm90b3R5cGUsICJyZWZyZXNoIiwg
SW5zcGVjdG9yVGVzdC5fcHJvZmlsZVZpZXdSZWZyZXNoLCB0cnVlKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjaykoKTsKLSAgICB9Ci0KLSAgICBpZiAoV2ViSW5zcGVj
dG9yLnBhbmVscy5wcm9maWxlcy5fcHJvZmlsZXJFbmFibGVkKQotICAgICAgICBzdGFydFRlc3Qo
KTsKLSAgICBlbHNlIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3Bl
Y3Rvci5wYW5lbHMucHJvZmlsZXMsICJfcHJvZmlsZXJXYXNFbmFibGVkIiwgc3RhcnRUZXN0KTsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5fdG9nZ2xlUHJvZmlsaW5nKGZh
bHNlKTsKLSAgICB9Ci19OwotCi1JbnNwZWN0b3JUZXN0LmNvbXBsZXRlUHJvZmlsZXJUZXN0ID0g
ZnVuY3Rpb24oKQotewotICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpCi0gICAgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJQcm9maWxlciB3YXMgZGlzYWJsZWQuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0gICAgdmFyIHByb2ZpbGVzUGFuZWwgPSBXZWJJbnNw
ZWN0b3IucGFuZWxzLnByb2ZpbGVzOwotICAgIGlmICghcHJvZmlsZXNQYW5lbC5fcHJvZmlsZXJF
bmFibGVkKQotICAgICAgICBjb21wbGV0ZVRlc3QoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMsICJfcHJv
ZmlsZXJXYXNEaXNhYmxlZCIsIGNvbXBsZXRlVGVzdCk7Ci0gICAgICAgIHByb2ZpbGVzUGFuZWwu
X3RvZ2dsZVByb2ZpbGluZyhmYWxzZSk7Ci0gICAgfQotfTsKLQotSW5zcGVjdG9yVGVzdC5ydW5Q
cm9maWxlclRlc3RTdWl0ZSA9IGZ1bmN0aW9uKHRlc3RTdWl0ZSkKLXsKLSAgICB2YXIgdGVzdFN1
aXRlVGVzdHMgPSB0ZXN0U3VpdGUuc2xpY2UoKTsKLQotICAgIGZ1bmN0aW9uIHJ1bm5lcigpCi0g
ICAgewotICAgICAgICBpZiAoIXRlc3RTdWl0ZVRlc3RzLmxlbmd0aCkgewotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVByb2ZpbGVyVGVzdCgpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIG5leHRUZXN0ID0gdGVzdFN1aXRlVGVzdHMuc2hp
ZnQoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiUnVubmluZzogIiArIC9mdW5jdGlvblxzKFteKF0qKS8uZXhl
YyhuZXh0VGVzdClbMV0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKG5leHRUZXN0
KShydW5uZXIsIHJ1bm5lcik7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5zdGFydFByb2Zp
bGVyVGVzdChydW5uZXIpOwotfTsKLQotSW5zcGVjdG9yVGVzdC5zaG93UHJvZmlsZVdoZW5BZGRl
ZCA9IGZ1bmN0aW9uKHRpdGxlKQotewotICAgIEluc3BlY3RvclRlc3QuX3Nob3dQcm9maWxlV2hl
bkFkZGVkID0gdGl0bGU7Ci19OwotCi1JbnNwZWN0b3JUZXN0Ll9wcm9maWxlSGVhZGVyQWRkZWQg
PSBmdW5jdGlvbihwcm9maWxlKQotewotICAgIGlmIChJbnNwZWN0b3JUZXN0Ll9zaG93UHJvZmls
ZVdoZW5BZGRlZCA9PT0gcHJvZmlsZS50aXRsZSkgewotICAgICAgICBXZWJJbnNwZWN0b3IucGFu
ZWxzLnByb2ZpbGVzLl9zaG93UHJvZmlsZShwcm9maWxlKTsKLSAgICB9Ci19OwotCi1JbnNwZWN0
b3JUZXN0LndhaXRVbnRpbFByb2ZpbGVWaWV3SXNTaG93biA9IGZ1bmN0aW9uKHRpdGxlLCBjYWxs
YmFjaykKLXsKLSAgICBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2sp
OwotCi0gICAgdmFyIHByb2ZpbGVzUGFuZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVz
OwotICAgIGlmIChwcm9maWxlc1BhbmVsLnZpc2libGVWaWV3ICYmIHByb2ZpbGVzUGFuZWwudmlz
aWJsZVZpZXcucHJvZmlsZSAmJiBwcm9maWxlc1BhbmVsLnZpc2libGVWaWV3LnByb2ZpbGUudGl0
bGUgPT09IHRpdGxlKQotICAgICAgICBjYWxsYmFjayhwcm9maWxlc1BhbmVsLnZpc2libGVWaWV3
KTsKLSAgICBlbHNlCi0gICAgICAgIEluc3BlY3RvclRlc3QuX3dhaXRVbnRpbFByb2ZpbGVWaWV3
SXNTaG93bkNhbGxiYWNrID0geyB0aXRsZTogdGl0bGUsIGNhbGxiYWNrOiBjYWxsYmFjayB9Owot
fQotCi1JbnNwZWN0b3JUZXN0Ll9wcm9maWxlVmlld1JlZnJlc2ggPSBmdW5jdGlvbigpCi17Ci0g
ICAgLy8gQ2FsbGVkIGluIHRoZSBjb250ZXh0IG9mIFByb2ZpbGVWaWV3LgotICAgIGlmIChJbnNw
ZWN0b3JUZXN0Ll93YWl0VW50aWxQcm9maWxlVmlld0lzU2hvd25DYWxsYmFjayAmJiBJbnNwZWN0
b3JUZXN0Ll93YWl0VW50aWxQcm9maWxlVmlld0lzU2hvd25DYWxsYmFjay50aXRsZSA9PT0gdGhp
cy5wcm9maWxlLnRpdGxlKSB7Ci0gICAgICAgIHZhciBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Qu
X3dhaXRVbnRpbFByb2ZpbGVWaWV3SXNTaG93bkNhbGxiYWNrOwotICAgICAgICBkZWxldGUgSW5z
cGVjdG9yVGVzdC5fd2FpdFVudGlsUHJvZmlsZVZpZXdJc1Nob3duQ2FsbGJhY2s7Ci0gICAgICAg
IGNhbGxiYWNrLmNhbGxiYWNrKHRoaXMpOwotICAgIH0KLX07Ci0KLX07CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvcmVzb3VyY2VzL2ltYWdlLmpwZWcgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvcmVzb3VyY2VzL2ltYWdlLmpwZWcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5M2ZhODEuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL3Jlc291cmNlcy9pbWFnZS5qcGVnIGFuZCAvZGV2
L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
c2VsZWN0b3ItcHJvZmlsZXItdXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9zZWxlY3Rvci1wcm9maWxlci11cmwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1YzdjNTlhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9zZWxlY3Rvci1wcm9maWxlci11cmwtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UZXN0cyB0aGF0IENTUyBzZWxlY3RvciBwcm9maWxl
IGVudHJpZXMgY29udGFpbiB2YWxpZCBzdHlsZXNoZWV0IFVSTHMuIEJ1ZyAxMDQyMjUuCi0KLVZh
bHVlCi0jaW5wdXQ6Zm9jdXMgc3R5bGVzaGVldCBVUkw6IGluc3BlY3Rvci9wcm9maWxlci9zZWxl
Y3Rvci1wcm9maWxlci11cmwuaHRtbAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvc2VsZWN0b3ItcHJvZmlsZXItdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvc2VsZWN0b3ItcHJvZmlsZXItdXJsLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDUxN2ZjNjkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL3NlbGVjdG9yLXByb2ZpbGVyLXVybC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNjMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSNpbnB1dDpmb2N1cyB7Ci0g
IGNvbG9yOiBncmVlbjsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVu
Y3Rpb24gZm9jdXMoKQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dCIpLmZv
Y3VzKCk7Ci0gICAgZG9jdW1lbnQud2lkdGg7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IENTU0FnZW50LnN0YXJ0U2VsZWN0b3JQcm9maWxlcigpOwotICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoImZvY3VzKCkiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0g
ICAgewotICAgICAgICBDU1NBZ2VudC5zdG9wU2VsZWN0b3JQcm9maWxlcihzdGVwMik7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gc3RlcDIoZXJyb3IsIHByb2ZpbGUpCi0gICAgewotICAgICAgICBp
ZiAoZXJyb3IpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGVycm9yKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBzZWxlY3RvciA9ICIjaW5wdXQ6Zm9j
dXMiOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2ZpbGUuZGF0YS5sZW5ndGg7ICsr
aSkgewotICAgICAgICAgICAgdmFyIGVudHJ5ID0gcHJvZmlsZS5kYXRhW2ldOwotICAgICAgICAg
ICAgaWYgKGVudHJ5LnNlbGVjdG9yID09PSBzZWxlY3RvcikgewotICAgICAgICAgICAgICAgIHZh
ciBzZWdtZW50cyA9IGVudHJ5LnVybC5zcGxpdCgiLyIpOwotICAgICAgICAgICAgICAgIHZhciB1
cmwgPSAiPGVtcHR5PiI7Ci0gICAgICAgICAgICAgICAgaWYgKHNlZ21lbnRzLmxlbmd0aCA+IDMp
IHsKLSAgICAgICAgICAgICAgICAgICAgc2VnbWVudHMuc3BsaWNlKDAsIHNlZ21lbnRzLmxlbmd0
aCAtIDMpOwotICAgICAgICAgICAgICAgICAgICB1cmwgPSBzZWdtZW50cy5qb2luKCIvIik7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KHNlbGVjdG9yICsgIiBzdHlsZXNoZWV0IFVSTDogIiArIHVybCk7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgQ1NTIHNlbGVjdG9yIHByb2ZpbGUg
ZW50cmllcyBjb250YWluIHZhbGlkIHN0eWxlc2hlZXQgVVJMcy4gPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDIyNSI+QnVnIDEwNDIyNTwvYT4uCi08
L3A+Ci0KLTxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPlZhbHVlPC9pbnB1dD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci93
ZWJnbC93ZWJnbC1wcm9maWxlci1hcGktY2hhbmdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvd2ViZ2wvd2ViZ2wtcHJvZmlsZXItYXBpLWNoYW5nZXMtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDMxN2Q4Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci93ZWJnbC93ZWJnbC1wcm9maWxl
ci1hcGktY2hhbmdlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBA
Ci1UZXN0IHRvIGNhdGNoIFdlYkdMIEFQSSBjaGFuZ2VzLiBJZiB0aGlzIHRlc3Qgc2hvdWxkIGV2
ZXIgZmFpbCwgd2Ugc2hvdWxkIHJlLWV4YW1pbmUgdGhlIFdlYkdMIHN0YXRlIHNhdmluZy9yZXN0
b3JpbmcgbG9naWMgaW4gdGhlIEluamVjdGVkU2NyaXB0TW9kdWxlIHRvIGluY2x1ZGUgYW55IGxh
dGVzdCBjaGFuZ2VzIHRvIHRoZSBBUEkuCi0KLUNvbnN0YW50cyBmb3IgZ2wuaXNFbmFibGVkKCk6
Ci1CTEVORAotQ1VMTF9GQUNFCi1ERVBUSF9URVNUCi1ESVRIRVIKLVBPTFlHT05fT0ZGU0VUX0ZJ
TEwKLVNBTVBMRV9BTFBIQV9UT19DT1ZFUkFHRQotU0FNUExFX0NPVkVSQUdFCi1TQ0lTU09SX1RF
U1QKLVNURU5DSUxfVEVTVAotCi1Db25zdGFudHMgZm9yIGdsLnBpeGVsU3RvcmVpKCk6Ci1QQUNL
X0FMSUdOTUVOVAotVU5QQUNLX0FMSUdOTUVOVAotVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lP
Tl9XRUJHTAotVU5QQUNLX0ZMSVBfWV9XRUJHTAotVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dF
QkdMCi0KLUNvbnN0YW50cyBmb3IgZ2wuZ2V0VGV4UGFyYW1ldGVyKCk6Ci1URVhUVVJFX01BR19G
SUxURVIKLVRFWFRVUkVfTUlOX0ZJTFRFUgotVEVYVFVSRV9XUkFQX1MKLVRFWFRVUkVfV1JBUF9U
Ci0KLUNvbnN0YW50cyBmb3IgZ2wuZ2V0VmVydGV4QXR0cmliKCk6Ci1DVVJSRU5UX1ZFUlRFWF9B
VFRSSUIKLVZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcKLVZFUlRFWF9BVFRSSUJf
QVJSQVlfRU5BQkxFRAotVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVECi1WRVJURVhfQVRU
UklCX0FSUkFZX1NJWkUKLVZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFCi1WRVJURVhfQVRUUklC
X0FSUkFZX1RZUEUKLQotQ29uc3RhbnRzIGZvciBnbC5nZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoKToK
LVZFUlRFWF9BVFRSSUJfQVJSQVlfUE9JTlRFUgotCi1Db25zdGFudHMgZm9yIGdsLmdldFBhcmFt
ZXRlcigpIHRoYXQgd2UgZG8gbm90IHRyYWNrIGluIEluamVjdGVkU2NyaXB0TW9kdWxlOgotQUxJ
QVNFRF9MSU5FX1dJRFRIX1JBTkdFCi1BTElBU0VEX1BPSU5UX1NJWkVfUkFOR0UKLUFMUEhBX0JJ
VFMKLUJMVUVfQklUUwotQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMKLURFUFRIX0JJVFMKLUdS
RUVOX0JJVFMKLU1BWF9DT01CSU5FRF9URVhUVVJFX0lNQUdFX1VOSVRTCi1NQVhfQ1VCRV9NQVBf
VEVYVFVSRV9TSVpFCi1NQVhfRlJBR01FTlRfVU5JRk9STV9WRUNUT1JTCi1NQVhfUkVOREVSQlVG
RkVSX1NJWkUKLU1BWF9URVhUVVJFX0lNQUdFX1VOSVRTCi1NQVhfVEVYVFVSRV9TSVpFCi1NQVhf
VkFSWUlOR19WRUNUT1JTCi1NQVhfVkVSVEVYX0FUVFJJQlMKLU1BWF9WRVJURVhfVEVYVFVSRV9J
TUFHRV9VTklUUwotTUFYX1ZFUlRFWF9VTklGT1JNX1ZFQ1RPUlMKLU1BWF9WSUVXUE9SVF9ESU1T
Ci1SRURfQklUUwotUkVOREVSRVIKLVNBTVBMRVMKLVNBTVBMRV9CVUZGRVJTCi1TSEFESU5HX0xB
TkdVQUdFX1ZFUlNJT04KLVNURU5DSUxfQklUUwotU1VCUElYRUxfQklUUwotVkVORE9SCi1WRVJT
SU9OCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci93ZWJnbC93
ZWJnbC1wcm9maWxlci1hcGktY2hhbmdlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL3dlYmdsL3dlYmdsLXByb2ZpbGVyLWFwaS1jaGFuZ2VzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg0ZGFhZjcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL3dlYmdsL3dlYmdsLXByb2ZpbGVyLWFwaS1jaGFuZ2VzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwyMjMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB3YXNFcnJvcihnbCkKLXsKLSAgICB2YXIgcmVzdWx0
ID0gZmFsc2U7Ci0gICAgd2hpbGUgKGdsLmdldEVycm9yKCkgIT09IGdsLk5PX0VSUk9SKQotICAg
ICAgICByZXN1bHQgPSB0cnVlOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWZ1bmN0aW9uIGNy
ZWF0ZVdlYkdMQ29udGV4dCgpCi17Ci0gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImNhbnZhcyIpOwotICAgIHZhciBjb250ZXh0SWRzID0gWyJleHBlcmltZW50YWwtd2Vi
Z2wiLCAid2Via2l0LTNkIiwgIjNkIl07Ci0gICAgZm9yICh2YXIgaSA9IDAsIGNvbnRleHRJZDsg
Y29udGV4dElkID0gY29udGV4dElkc1tpXTsgKytpKSB7Ci0gICAgICAgIHZhciBnbCA9IGNhbnZh
cy5nZXRDb250ZXh0KGNvbnRleHRJZCk7Ci0gICAgICAgIGlmIChnbCkKLSAgICAgICAgICAgIHJl
dHVybiBnbDsKLSAgICB9Ci0gICAgb3V0cHV0KCJFUlJPUjogQ291bGQgbm90IGNyZWF0ZSBhIFdl
YkdMIGNvbnRleHQuIik7Ci0gICAgcmV0dXJuIG51bGw7Ci19Ci0KLVdlYkdMUmVuZGVyaW5nQ29u
dGV4dFJlc291cmNlID0ge307Ci0gCi0vKioKLSAqIEBjb25zdAotICogQHR5cGUge0FycmF5Ljxz
dHJpbmc+fQotICovCi1XZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZS5HTENhcGFiaWxpdGll
cyA9IFsKLSAgICAiQkxFTkQiLAotICAgICJDVUxMX0ZBQ0UiLAotICAgICJERVBUSF9URVNUIiwK
LSAgICAiRElUSEVSIiwKLSAgICAiUE9MWUdPTl9PRkZTRVRfRklMTCIsCi0gICAgIlNBTVBMRV9B
TFBIQV9UT19DT1ZFUkFHRSIsCi0gICAgIlNBTVBMRV9DT1ZFUkFHRSIsCi0gICAgIlNDSVNTT1Jf
VEVTVCIsCi0gICAgIlNURU5DSUxfVEVTVCIKLV07Ci0KLS8qKgotICogQGNvbnN0Ci0gKiBAdHlw
ZSB7QXJyYXkuPHN0cmluZz59Ci0gKi8KLVdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlLlBp
eGVsU3RvcmVQYXJhbWV0ZXJzID0gWwotICAgICJQQUNLX0FMSUdOTUVOVCIsCi0gICAgIlVOUEFD
S19BTElHTk1FTlQiLAotICAgICJVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMIiwK
LSAgICAiVU5QQUNLX0ZMSVBfWV9XRUJHTCIsCi0gICAgIlVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTCIKLV07Ci0KLS8qKgotICogQGNvbnN0Ci0gKiBAdHlwZSB7QXJyYXkuPHN0cmluZz59
Ci0gKi8KLVdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlLlN0YXRlUGFyYW1ldGVycyA9IFsK
LSAgICAiQUNUSVZFX1RFWFRVUkUiLAotICAgICJBUlJBWV9CVUZGRVJfQklORElORyIsCi0gICAg
IkJMRU5EX0NPTE9SIiwKLSAgICAiQkxFTkRfRFNUX0FMUEhBIiwKLSAgICAiQkxFTkRfRFNUX1JH
QiIsCi0gICAgIkJMRU5EX0VRVUFUSU9OX0FMUEhBIiwKLSAgICAiQkxFTkRfRVFVQVRJT05fUkdC
IiwKLSAgICAiQkxFTkRfU1JDX0FMUEhBIiwKLSAgICAiQkxFTkRfU1JDX1JHQiIsCi0gICAgIkNP
TE9SX0NMRUFSX1ZBTFVFIiwKLSAgICAiQ09MT1JfV1JJVEVNQVNLIiwKLSAgICAiQ1VMTF9GQUNF
X01PREUiLAotICAgICJDVVJSRU5UX1BST0dSQU0iLAotICAgICJERVBUSF9DTEVBUl9WQUxVRSIs
Ci0gICAgIkRFUFRIX0ZVTkMiLAotICAgICJERVBUSF9SQU5HRSIsCi0gICAgIkRFUFRIX1dSSVRF
TUFTSyIsCi0gICAgIkVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkciLAotICAgICJGUkFNRUJV
RkZFUl9CSU5ESU5HIiwKLSAgICAiRlJPTlRfRkFDRSIsCi0gICAgIkdFTkVSQVRFX01JUE1BUF9I
SU5UIiwKLSAgICAiTElORV9XSURUSCIsCi0gICAgIlBBQ0tfQUxJR05NRU5UIiwKLSAgICAiUE9M
WUdPTl9PRkZTRVRfRkFDVE9SIiwKLSAgICAiUE9MWUdPTl9PRkZTRVRfVU5JVFMiLAotICAgICJS
RU5ERVJCVUZGRVJfQklORElORyIsCi0gICAgIlNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQiLAotICAg
ICJTQU1QTEVfQ09WRVJBR0VfVkFMVUUiLAotICAgICJTQ0lTU09SX0JPWCIsCi0gICAgIlNURU5D
SUxfQkFDS19GQUlMIiwKLSAgICAiU1RFTkNJTF9CQUNLX0ZVTkMiLAotICAgICJTVEVOQ0lMX0JB
Q0tfUEFTU19ERVBUSF9GQUlMIiwKLSAgICAiU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUyIs
Ci0gICAgIlNURU5DSUxfQkFDS19SRUYiLAotICAgICJTVEVOQ0lMX0JBQ0tfVkFMVUVfTUFTSyIs
Ci0gICAgIlNURU5DSUxfQkFDS19XUklURU1BU0siLAotICAgICJTVEVOQ0lMX0NMRUFSX1ZBTFVF
IiwKLSAgICAiU1RFTkNJTF9GQUlMIiwKLSAgICAiU1RFTkNJTF9GVU5DIiwKLSAgICAiU1RFTkNJ
TF9QQVNTX0RFUFRIX0ZBSUwiLAotICAgICJTVEVOQ0lMX1BBU1NfREVQVEhfUEFTUyIsCi0gICAg
IlNURU5DSUxfUkVGIiwKLSAgICAiU1RFTkNJTF9WQUxVRV9NQVNLIiwKLSAgICAiU1RFTkNJTF9X
UklURU1BU0siLAotICAgICJVTlBBQ0tfQUxJR05NRU5UIiwKLSAgICAiVU5QQUNLX0NPTE9SU1BB
Q0VfQ09OVkVSU0lPTl9XRUJHTCIsCi0gICAgIlVOUEFDS19GTElQX1lfV0VCR0wiLAotICAgICJV
TlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wiLAotICAgICJWSUVXUE9SVCIKLV07Ci0KLVdl
YkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlLlRleHR1cmVCaW5kaW5ncyA9IFsKLSAgICAiVEVY
VFVSRV9CSU5ESU5HXzJEIiwKLSAgICAiVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQIgotXTsKLQot
ZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIGdsID0gY3JlYXRlV2ViR0xDb250ZXh0KCk7Ci0g
ICAgaWYgKCFnbCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmFyIGNvbnN0YW50TmFtZXMgPSBb
XTsKLSAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBnbCkgewotICAgICAgICBpZiAoL15bQS1aMC05
X10rJC8udGVzdChwcm9wZXJ0eSkpCi0gICAgICAgICAgICBjb25zdGFudE5hbWVzLnB1c2gocHJv
cGVydHkpOwotICAgIH0KLSAgICBjb25zdGFudE5hbWVzLnNvcnQoKTsKLQotICAgIG91dHB1dCgi
Q29uc3RhbnRzIGZvciBnbC5pc0VuYWJsZWQoKToiKTsKLSAgICBjb25zdGFudE5hbWVzLmZvckVh
Y2goZnVuY3Rpb24ocHJvcGVydHkpIHsKLSAgICAgICAgd2FzRXJyb3IoZ2wpOwotICAgICAgICBn
bC5pc0VuYWJsZWQoZ2xbcHJvcGVydHldKTsKLSAgICAgICAgaWYgKCF3YXNFcnJvcihnbCkpCi0g
ICAgICAgICAgICBvdXRwdXQocHJvcGVydHkpOwotICAgIH0pOwotCi0gICAgb3V0cHV0KCJcbkNv
bnN0YW50cyBmb3IgZ2wucGl4ZWxTdG9yZWkoKToiKTsKLSAgICBjb25zdGFudE5hbWVzLmZvckVh
Y2goZnVuY3Rpb24ocHJvcGVydHkpIHsKLSAgICAgICAgd2FzRXJyb3IoZ2wpOwotICAgICAgICB2
YXIgdmFsdWUgPSBnbC5nZXRQYXJhbWV0ZXIoZ2xbcHJvcGVydHldKTsKLSAgICAgICAgaWYgKHdh
c0Vycm9yKGdsKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZ2wucGl4ZWxTdG9yZWko
Z2xbcHJvcGVydHldLCB2YWx1ZSk7Ci0gICAgICAgIGlmICghd2FzRXJyb3IoZ2wpKQotICAgICAg
ICAgICAgb3V0cHV0KHByb3BlcnR5KTsKLSAgICB9KTsKLQotICAgIG91dHB1dCgiXG5Db25zdGFu
dHMgZm9yIGdsLmdldFRleFBhcmFtZXRlcigpOiIpOwotICAgIHZhciB0ZXh0dXJlID0gZ2wuY3Jl
YXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUp
OwotICAgIGNvbnN0YW50TmFtZXMuZm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSkgewotICAgICAg
ICB3YXNFcnJvcihnbCk7Ci0gICAgICAgIGdsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJE
LCBnbFtwcm9wZXJ0eV0pOwotICAgICAgICBpZiAoIXdhc0Vycm9yKGdsKSkKLSAgICAgICAgICAg
IG91dHB1dChwcm9wZXJ0eSk7Ci0gICAgfSk7Ci0KLSAgICBvdXRwdXQoIlxuQ29uc3RhbnRzIGZv
ciBnbC5nZXRWZXJ0ZXhBdHRyaWIoKToiKTsKLSAgICBjb25zdGFudE5hbWVzLmZvckVhY2goZnVu
Y3Rpb24ocHJvcGVydHkpIHsKLSAgICAgICAgd2FzRXJyb3IoZ2wpOwotICAgICAgICBnbC5nZXRW
ZXJ0ZXhBdHRyaWIoMCwgZ2xbcHJvcGVydHldKTsKLSAgICAgICAgaWYgKCF3YXNFcnJvcihnbCkp
Ci0gICAgICAgICAgICBvdXRwdXQocHJvcGVydHkpOwotICAgIH0pOwotCi0gICAgb3V0cHV0KCJc
bkNvbnN0YW50cyBmb3IgZ2wuZ2V0VmVydGV4QXR0cmliT2Zmc2V0KCk6Iik7Ci0gICAgY29uc3Rh
bnROYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5KSB7Ci0gICAgICAgIHdhc0Vycm9yKGds
KTsKLSAgICAgICAgZ2wuZ2V0VmVydGV4QXR0cmliT2Zmc2V0KDAsIGdsW3Byb3BlcnR5XSk7Ci0g
ICAgICAgIGlmICghd2FzRXJyb3IoZ2wpKQotICAgICAgICAgICAgb3V0cHV0KHByb3BlcnR5KTsK
LSAgICB9KTsKLQotICAgIG91dHB1dCgiXG5Db25zdGFudHMgZm9yIGdsLmdldFBhcmFtZXRlcigp
IHRoYXQgd2UgZG8gbm90IHRyYWNrIGluIEluamVjdGVkU2NyaXB0TW9kdWxlOiIpOwotICAgIGNv
bnN0YW50TmFtZXMuZm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSkgewotICAgICAgICAvLyBTcGVj
aWFsIGNhc2UgZm9yIGVxdWFsIGNvbnN0YW50cyBCTEVORF9FUVVBVElPTiBhbmQgQkxFTkRfRVFV
QVRJT05fUkdCLgotICAgICAgICBpZiAocHJvcGVydHkgPT09ICJCTEVORF9FUVVBVElPTiIgJiYg
Z2wuQkxFTkRfRVFVQVRJT04gPT09IGdsLkJMRU5EX0VRVUFUSU9OX1JHQikKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgaWYgKFdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlLkdMQ2Fw
YWJpbGl0aWVzLmluZGV4T2YocHJvcGVydHkpICE9PSAtMSkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgaWYgKFdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlLlBpeGVsU3RvcmVQYXJh
bWV0ZXJzLmluZGV4T2YocHJvcGVydHkpICE9PSAtMSkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgaWYgKFdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlLlN0YXRlUGFyYW1ldGVycy5p
bmRleE9mKHByb3BlcnR5KSAhPT0gLTEpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlm
IChXZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZS5UZXh0dXJlQmluZGluZ3MuaW5kZXhPZihw
cm9wZXJ0eSkgIT09IC0xKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB3YXNFcnJvcihn
bCk7Ci0gICAgICAgIGdsLmdldFBhcmFtZXRlcihnbFtwcm9wZXJ0eV0pOwotICAgICAgICBpZiAo
IXdhc0Vycm9yKGdsKSkKLSAgICAgICAgICAgIG91dHB1dChwcm9wZXJ0eSk7Ci0gICAgfSk7Ci19
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewot
ICAgICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVk
IiwgIjEiKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLSAgICBpZiAod2luZG93LmludGVybmFscykK
LSAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29s
ZUVuYWJsZWQoZmFsc2UpOwotICAgIHRyeSB7Ci0gICAgICAgIHRlc3QoKTsKLSAgICB9IGZpbmFs
bHkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0IHRvIGNhdGNoIFdlYkdMIEFQSSBjaGFuZ2Vz
LgotSWYgdGhpcyB0ZXN0IHNob3VsZCBldmVyIGZhaWwsIHdlIHNob3VsZCByZS1leGFtaW5lIHRo
ZSBXZWJHTCBzdGF0ZSBzYXZpbmcvcmVzdG9yaW5nIGxvZ2ljIGluIHRoZQotSW5qZWN0ZWRTY3Jp
cHRNb2R1bGUgdG8gaW5jbHVkZSBhbnkgbGF0ZXN0IGNoYW5nZXMgdG8gdGhlIEFQSS4KLQotPC9w
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL3dlYmdsL3dlYmdsLXByb2ZpbGVyLWdldC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvd2ViZ2wvd2ViZ2wtcHJvZmlsZXItZ2V0LWVycm9y
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGM1YWFhNC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvd2ViZ2wvd2ViZ2wtcHJv
ZmlsZXItZ2V0LWVycm9yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotVGVzdHMgV2ViR0wgZ2V0RXJyb3IoKSBzdGF0dXMuCi0KLUJ1ZyA5NTQ0MwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL3dlYmdsL3dlYmdsLXByb2ZpbGVyLWdl
dC1lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL3dlYmdsL3dlYmds
LXByb2ZpbGVyLWdldC1lcnJvci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
ZjYyZDYzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci93ZWJn
bC93ZWJnbC1wcm9maWxlci1nZXQtZXJyb3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4OSAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uL2NhbnZhcy1wcm9maWxlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAo
d2luZG93LmludGVybmFscykKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdM
RXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7Ci0KLS8qKgotICogQGNvbnN0cnVjdG9yCi0g
Ki8KLWZ1bmN0aW9uIENhY2hlKCkKLXsKLSAgICB0aGlzLnJlc2V0KCk7Ci19Ci0KLUNhY2hlLnBy
b3RvdHlwZSA9IHsKLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtudW1iZXJ9Ci0gICAgICovCi0g
ICAgc2l6ZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7Ci0g
ICAgfSwKLQotICAgIHJlc2V0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICAvKiogQHR5cGUg
eyFPYmplY3QuPG51bWJlciwgT2JqZWN0Pn0gKi8KLSAgICAgICAgdGhpcy5faXRlbXMgPSBPYmpl
Y3QuY3JlYXRlKG51bGwpOwotICAgICAgICAvKiogQHR5cGUge251bWJlcn0gKi8KLSAgICAgICAg
dGhpcy5fc2l6ZSA9IDA7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7bnVtYmVy
fSBrZXkKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAqLwotICAgIGhhczogZnVuY3Rp
b24oa2V5KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGtleSBpbiB0aGlzLl9pdGVtczsKLSAgICB9
LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IGtleQotICAgICAqIEByZXR1cm4g
e09iamVjdH0KLSAgICAgKi8KLSAgICBnZXQ6IGZ1bmN0aW9uKGtleSkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLl9pdGVtc1trZXldOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFy
YW0ge251bWJlcn0ga2V5Ci0gICAgICogQHBhcmFtIHtPYmplY3R9IGl0ZW0KLSAgICAgKi8KLSAg
ICBwdXQ6IGZ1bmN0aW9uKGtleSwgaXRlbSkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5oYXMo
a2V5KSkKLSAgICAgICAgICAgICsrdGhpcy5fc2l6ZTsKLSAgICAgICAgdGhpcy5faXRlbXNba2V5
XSA9IGl0ZW07Ci0gICAgfQotfQotCi12YXIgZ2w7Ci12YXIgcmF3R0w7Ci12YXIgZ2xSZXNvdXJj
ZTsKLQotZnVuY3Rpb24gYXNzZXJ0Tm9FcnJvcnMoZ2wpCi17Ci0gICAgY29uc29sZS5hc3NlcnQo
Z2wuZ2V0RXJyb3IoKSA9PT0gZ2wuTk9fRVJST1IsICJObyBHTCBlcnJvciB3YXMgZXhwZWN0ZWQg
YXQgdGhpcyB0aW1lIik7Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydEVxdWFsQXJyYXlzKGEsIGIpCi17
Ci0gICAgY29uc29sZS5hc3NlcnQoYS5sZW5ndGggPT09IGIubGVuZ3RoLCAiYXNzZXJ0RXF1YWxB
cnJheXM6IGEubGVuZ3RoPSIgKyBhLmxlbmd0aCArICIsIGIubGVuZ3RoPSIgKyBiLmxlbmd0aCk7
Ci0gICAgYSA9IGEuc2xpY2UoKTsKLSAgICBiID0gYi5zbGljZSgpOwotICAgIGEuc29ydCgpOwot
ICAgIGIuc29ydCgpOwotICAgIGEuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCkgewot
ICAgICAgICBjb25zb2xlLmFzc2VydChhW2luZGV4XSA9PT0gYltpbmRleF0sICJhc3NlcnRFcXVh
bEFycmF5czogZGlmZmVyZW50IHZhbHVlcyBhdCBpbmRleCAiICsgaW5kZXgpOwotICAgIH0pOwot
fQotCi1mdW5jdGlvbiBnZW5lcmF0ZVdlYkdMRXJyb3IoZ2wsIGVycm9yKQotewotICAgIHN3aXRj
aCAoZXJyb3IpIHsKLSAgICBjYXNlIGdsLklOVkFMSURfRU5VTToKLSAgICAgICAgZ2wucGl4ZWxT
dG9yZWkoMTIzLCAyMzQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIGdsLklOVkFMSURfVkFM
VUU6Ci0gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlBBQ0tfQUxJR05NRU5ULCAyMzQpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIGdsLklOVkFMSURfT1BFUkFUSU9OOgotICAgIGRlZmF1bHQ6
Ci0gICAgICAgIGdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfQ1VCRV9NQVApOwotICAgICAg
ICBicmVhazsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGdldEFsbEVycm9ycyhnbCkKLXsKLSAgICB2
YXIgZXJyb3JzID0gW107Ci0gICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgdmFyIGVycm9yID0g
Z2wuZ2V0RXJyb3IoKTsKLSAgICAgICAgaWYgKGVycm9yID09PSBnbC5OT19FUlJPUikKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2YgZXJyb3IgPT09ICJu
dW1iZXIiLCAiZ2V0RXJyb3IoKSBzaG91bGQgcmV0dXJuIGEgbnVtYmVyIGluc3RlYWQgb2YgYSAi
ICsgKHR5cGVvZiBlcnJvcikpOwotICAgICAgICBlcnJvcnMucHVzaChlcnJvcik7Ci0gICAgfQot
ICAgIHJldHVybiBlcnJvcnM7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUFuZFJ1bldlYkdMUHJvZ3Jh
bSgpCi17Ci0gICAgZ2wgPSBjcmVhdGVXZWJHTENvbnRleHQoKTsKLSAgICBjb25zb2xlLmFzc2Vy
dChnbCwgIkZhaWxlZCB0byBjcmVhdGUgV2ViR0wgY29udGV4dCIpOwotCi0gICAgZ2xSZXNvdXJj
ZSA9IGdsWyJfX3Jlc291cmNlT2JqZWN0Il07Ci0gICAgY29uc29sZS5hc3NlcnQoZ2xSZXNvdXJj
ZSwgIldlYkdMIGNvbnRleHQgaXMgbm90IHdyYXBwZWQiKTsKLQotICAgIHJhd0dMID0gZ2xSZXNv
dXJjZS53cmFwcGVkT2JqZWN0KCk7Ci0gICAgY29uc29sZS5hc3NlcnQocmF3R0wsICJObyByYXcg
V2ViR0wgY29udGV4dCBmb3VuZCIpOwotICAgIGNvbnNvbGUuYXNzZXJ0KGdsICE9PSByYXdHTCwg
IlByb3h5IGFuZCBSQVcgY29udGV4dHMgc2hvdWxkIG5vdCBiZSB0aGUgc2FtZSIpOwotCi0gICAg
YXNzZXJ0Tm9FcnJvcnMoZ2wpOwotICAgIGFzc2VydE5vRXJyb3JzKHJhd0dMKTsKLQotICAgIC8v
IDEpIEdlbmVyYXRlIGVycm9ycyBkaXJlY3RseSBvbiB0aGUgUkFXIGNvbnRleHQKLSAgICAvLyAy
KSBQaWNrIHRoZW0gdmlhIHByb3h5LgotICAgIHZhciBlcnJvcnMgPSBbcmF3R0wuSU5WQUxJRF9F
TlVNLCByYXdHTC5JTlZBTElEX1ZBTFVFLCByYXdHTC5JTlZBTElEX09QRVJBVElPTl07Ci0gICAg
ZXJyb3JzLmZvckVhY2goZ2VuZXJhdGVXZWJHTEVycm9yLmJpbmQodGhpcywgcmF3R0wpKTsKLSAg
ICBhc3NlcnRFcXVhbEFycmF5cyhlcnJvcnMsIGdldEFsbEVycm9ycyhnbCkpOwotICAgIGFzc2Vy
dE5vRXJyb3JzKGdsKTsKLSAgICBhc3NlcnROb0Vycm9ycyhyYXdHTCk7Ci0KLSAgICAvLyAxKSBH
ZW5lcmF0ZSBlcnJvcnMgb24gUkFXIGNvbnRleHQKLSAgICAvLyAyKSBDb252ZXJ0IFJlc291cmNl
IHRvIGEgUmVwbGF5YWJsZSA9PiB0aGlzIHNob3VsZCBjbGVhbiB1cCB0aGUgUkFXIGNvbnRleHQg
YW5kIHNhdmUgdGhlIGVycm9ycyBpbiBwcm94eQotICAgIC8vIDMpIENoZWNrIHRoYXQgUkFXIGNv
bnRleHQgbm8gbG9uZ2VyIGhhdmUgZXJyb3JzCi0gICAgLy8gNCkgQ2hlY2sgdGhhdCBwcm94eSBz
dGlsbCBoYXMgdGhlIG9yaWdpbmFsIGVycm9ycyBzYXZlZAotICAgIHZhciBlcnJvcnMgPSBbcmF3
R0wuSU5WQUxJRF9FTlVNLCByYXdHTC5JTlZBTElEX1ZBTFVFLCByYXdHTC5JTlZBTElEX09QRVJB
VElPTl07Ci0gICAgZXJyb3JzLmZvckVhY2goZ2VuZXJhdGVXZWJHTEVycm9yLmJpbmQodGhpcywg
cmF3R0wpKTsKLSAgICBnbFJlc291cmNlLnRvUmVwbGF5YWJsZShuZXcgQ2FjaGUoKSk7Ci0gICAg
YXNzZXJ0Tm9FcnJvcnMocmF3R0wpOwotICAgIGFzc2VydEVxdWFsQXJyYXlzKGVycm9ycywgZ2V0
QWxsRXJyb3JzKGdsKSk7Ci0gICAgYXNzZXJ0Tm9FcnJvcnMoZ2wpOwotCi0gICAgLy8gMSkgUmVw
ZWF0IDEtMyBzdGVwcyBmcm9tIHRoZSBhYm92ZQotICAgIC8vIDIpIENoZWNrIHByb3h5IGFuZCBS
QVcgZXJyb3JzIGludGVybGVhdmVkCi0gICAgdmFyIGVycm9ycyA9IFtyYXdHTC5JTlZBTElEX0VO
VU0sIHJhd0dMLklOVkFMSURfVkFMVUUsIHJhd0dMLklOVkFMSURfT1BFUkFUSU9OXTsKLSAgICBl
cnJvcnMuZm9yRWFjaChnZW5lcmF0ZVdlYkdMRXJyb3IuYmluZCh0aGlzLCByYXdHTCkpOwotICAg
IGdsUmVzb3VyY2UudG9SZXBsYXlhYmxlKG5ldyBDYWNoZSgpKTsKLSAgICBhc3NlcnROb0Vycm9y
cyhyYXdHTCk7Ci0KLSAgICB2YXIgdmFsdWUgPSBnbC5nZXRFcnJvcigpOwotICAgIGNvbnNvbGUu
YXNzZXJ0KHR5cGVvZiB2YWx1ZSA9PT0gIm51bWJlciIsICJnZXRFcnJvcigpIHNob3VsZCByZXR1
cm4gYSBudW1iZXIgaW5zdGVhZCBvZiBhICIgKyAodHlwZW9mIHZhbHVlKSk7Ci0gICAgY29uc29s
ZS5hc3NlcnQodmFsdWUgIT09IGdsLk5PX0VSUk9SLCAiQW4gZXJyb3Igd2FzIGV4cGVjdGVkIik7
Ci0gICAgZXJyb3JzLmZvckVhY2goZ2VuZXJhdGVXZWJHTEVycm9yLmJpbmQodGhpcywgcmF3R0wp
KTsgLy8gR2VuZXJhdGUgYWdhaW4gaW4gdGhlIFJBVyBjb250ZXh0LgotICAgIC8vIE5vdyB3ZSAi
aGF2ZSIgMiBlcnJvcnMgbGVmdCBpbiB0aGUgcHJveHkgYW5kIDMgbmV3IGVycm9ycyBpbiB0aGUg
UkFXIGNvbnRleHQgPT4gc2hvdWxkIHJldHVybiAzIGVycm9ycyBmcm9tIHRoZSBwcm94eS4KLSAg
ICBhc3NlcnRFcXVhbEFycmF5cyhlcnJvcnMsIGdldEFsbEVycm9ycyhnbCkpOwotICAgIGFzc2Vy
dE5vRXJyb3JzKGdsKTsKLSAgICBhc3NlcnROb0Vycm9ycyhyYXdHTCk7Ci0KLSAgICByZXR1cm4g
IlNVQ0NFU1MiOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmVu
YWJsZUNhbnZhc0FnZW50KHN0ZXAxKTsKLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJjcmVhdGVBbmRSdW5XZWJHTFBy
b2dyYW0oKSIsIHN0ZXAyKTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gc3RlcDIoZXJyb3IpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiXCJTVUNDRVNTXCIiLCBlcnJv
cik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMg
V2ViR0wgZ2V0RXJyb3IoKSBzdGF0dXMuCi08L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU0NDMiPkJ1ZyA5NTQ0MzwvYT4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9ncmVzcy1iYXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2dyZXNzLWJhci1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0NzdhMzguLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2dyZXNzLWJhci1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyNyArMCwwIEBACi1UZXN0cyBpbnNwZWN0b3IncyBjb21wb3NpdGUgcHJvZ3Jl
c3MgYmFyLgotCi1UZXN0aW5nIENvbXBvc2l0ZVByb2dyZXNzIHdpdGggYSBzaW5nbGUgc3VicHJv
Z3Jlc3M6Ci1wcm9ncmVzczogYHVuZGVmaW5lZCcgMCBvdXQgb2YgMSBkb25lLgotcHJvZ3Jlc3M6
IGBjdWNrb29pbmcnIDAgb3V0IG9mIDEgZG9uZS4KLXByb2dyZXNzOiBgY3Vja29vaW5nJyAwLjEg
b3V0IG9mIDEgZG9uZS4KLXByb2dyZXNzOiBgbWVvd2luZycgMC4yIG91dCBvZiAxIGRvbmUuCi1w
cm9ncmVzcyBpbmRpY2F0b3I6IGRvbmUKLXByb2dyZXNzOiBgbWVvd2luZycgMSBvdXQgb2YgMSBk
b25lLgotVGVzdGluZyBDb21wb3NpdGVQcm9ncmVzcyB3aXRoIG11bHRpcGxlIHN1YnByb2dyZXNz
ZXM6Ci1wcm9ncmVzczogYHVuZGVmaW5lZCcgMCBvdXQgb2YgMSBkb25lLgotcHJvZ3Jlc3M6IGBj
dWNrb29pbmcnIDAuMDUgb3V0IG9mIDEgZG9uZS4KLXByb2dyZXNzOiBgY3Vja29vaW5nJyAwLjA1
IG91dCBvZiAxIGRvbmUuCi1wcm9ncmVzczogYGJhcmtpbmcnIDAuMjc1IG91dCBvZiAxIGRvbmUu
Ci1wcm9ncmVzczogYG1lb3dpbmcnIDAuNSBvdXQgb2YgMSBkb25lLgotcHJvZ3Jlc3M6IGBtZW93
aW5nJyAwLjg3NSBvdXQgb2YgMSBkb25lLgotcHJvZ3Jlc3MgaW5kaWNhdG9yOiBkb25lCi1wcm9n
cmVzczogYG1lb3dpbmcnIDEgb3V0IG9mIDEgZG9uZS4KLVRlc3RpbmcgaXNDYW5jZWxlZDoKLVRl
c3RpbmcgbmVzdGVkIHN1YnByb2dyZXNzZXM6Ci1wcm9ncmVzczogYHVuZGVmaW5lZCcgMCBvdXQg
b2YgMSBkb25lLgotcHJvZ3Jlc3M6IGB1bmRlZmluZWQnIDAgb3V0IG9mIDEgZG9uZS4KLXByb2dy
ZXNzOiBgdW5kZWZpbmVkJyAwLjEgb3V0IG9mIDEgZG9uZS4KLXByb2dyZXNzOiBgbWVvd2luZycg
MC41IG91dCBvZiAxIGRvbmUuCi1wcm9ncmVzcyBpbmRpY2F0b3I6IGRvbmUKLXByb2dyZXNzOiBg
bWVvd2luZycgMSBvdXQgb2YgMSBkb25lLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZ3Jlc3MtYmFyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZ3Jlc3Mt
YmFyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxZGFlMTIuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2dyZXNzLWJhci5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMTY4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi1mdW5jdGlvbiBpbml0aWFsaXplX1Byb2dyZXNzQmFy
VGVzdCgpCi17Ci0KLUluc3BlY3RvclRlc3QuTW9ja1Byb2dyZXNzSW5kaWNhdG9yID0gZnVuY3Rp
b24oKQotewotfQotCi1JbnNwZWN0b3JUZXN0Lk1vY2tQcm9ncmVzc0luZGljYXRvci5wcm90b3R5
cGUgPSB7Ci0gICAgLy8gSW1wbGVtZW50YXRpb24gb2YgV2ViSW5zcGVjdG9yLlByb2dyZXNzIGlu
dGVyZmFjZS4KLSAgICBpc0NhbmNlbGVkOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1
cm4gdGhpcy5faXNDYW5jZWxlZDsKLSAgICB9LAotCi0gICAgZG9uZTogZnVuY3Rpb24oKQotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInByb2dyZXNzIGluZGljYXRvcjog
ZG9uZSIpOwotICAgIH0sCi0KLSAgICBzZXRUb3RhbFdvcms6IGZ1bmN0aW9uKHRvdGFsV29yaykK
LSAgICB7Ci0gICAgICAgIHRoaXMuX3RvdGFsV29yayA9IHRvdGFsV29yazsKLSAgICB9LAotCi0g
ICAgc2V0V29ya2VkOiBmdW5jdGlvbih3b3JrZWQsIHRpdGxlKQotICAgIHsKLSAgICAgICAgdGhp
cy5fd29ya2VkID0gd29ya2VkOwotICAgICAgICBpZiAodHlwZW9mIHRpdGxlICE9PSAidW5kZWZp
bmVkIikKLSAgICAgICAgICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7Ci0gICAgfSwKLQotICAgIHNl
dFRpdGxlOiBmdW5jdGlvbih0aXRsZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3RpdGxlID0gdGl0
bGU7Ci0gICAgfSwKLQotICAgIC8vIFRlc3QgbWV0aG9kcy4KLSAgICBjYW5jZWw6IGZ1bmN0aW9u
KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2lzQ2FuY2VsZWQgPSB0cnVlOwotICAgIH0sCi0KLSAg
ICBkdW1wOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBjb25zdCByb3VuZEZhY3RvciA9IDEw
MDAwOwotCi0gICAgICAgIHZhciB3b3JrZWQgPSB0aGlzLl93b3JrZWQ7Ci0gICAgICAgIHZhciB0
b3RhbFdvcmsgPSB0aGlzLl90b3RhbFdvcms7Ci0KLSAgICAgICAgaWYgKHR5cGVvZiB3b3JrZWQg
PT09ICJudW1iZXIiKQotICAgICAgICAgICAgd29ya2VkID0gTWF0aC5yb3VuZCh3b3JrZWQgKiBy
b3VuZEZhY3RvcikgLyByb3VuZEZhY3RvcjsKLSAgICAgICAgaWYgKHR5cGVvZiB0b3RhbFdvcmsg
PT09ICJudW1iZXIiKQotICAgICAgICAgICAgdG90YWxXb3JrID0gTWF0aC5yb3VuZCh0b3RhbFdv
cmsgKiByb3VuZEZhY3RvcikgLyByb3VuZEZhY3RvcjsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgicHJvZ3Jlc3M6IGAiICsgdGhpcy5fdGl0bGUgKyAiJyAiICsgd29ya2VkICsg
IiBvdXQgb2YgIiArIHRvdGFsV29yayArICIgZG9uZS4iKTsKLSAgICB9Ci19Ci0KLX0KLQotdmFy
IHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgKGZ1bmN0aW9uIHRlc3RPbmVTdWJQcm9ncmVzcygp
Ci0gICAgewotICAgICAgICB2YXIgaW5kaWNhdG9yID0gbmV3IEluc3BlY3RvclRlc3QuTW9ja1By
b2dyZXNzSW5kaWNhdG9yKCk7Ci0gICAgICAgIHZhciBjb21wb3NpdGUgPSBuZXcgV2ViSW5zcGVj
dG9yLkNvbXBvc2l0ZVByb2dyZXNzKGluZGljYXRvcik7Ci0gICAgICAgIHZhciBzdWJQcm9ncmVz
cyA9IGNvbXBvc2l0ZS5jcmVhdGVTdWJQcm9ncmVzcygpOwotCi0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJUZXN0aW5nIENvbXBvc2l0ZVByb2dyZXNzIHdpdGggYSBzaW5nbGUgc3Vi
cHJvZ3Jlc3M6Iik7Ci0gICAgICAgIGluZGljYXRvci5kdW1wKCk7Ci0gICAgICAgIHN1YlByb2dy
ZXNzLnNldFRpdGxlKCJjdWNrb29pbmciKTsKLSAgICAgICAgc3ViUHJvZ3Jlc3Muc2V0V29ya2Vk
KDEwKTsKLSAgICAgICAgaW5kaWNhdG9yLmR1bXAoKTsKLSAgICAgICAgc3ViUHJvZ3Jlc3Muc2V0
VG90YWxXb3JrKDEwMCk7Ci0gICAgICAgIGluZGljYXRvci5kdW1wKCk7Ci0gICAgICAgIHN1YlBy
b2dyZXNzLnNldFdvcmtlZCgyMCwgIm1lb3dpbmciKTsKLSAgICAgICAgaW5kaWNhdG9yLmR1bXAo
KTsKLSAgICAgICAgc3ViUHJvZ3Jlc3MuZG9uZSgpOwotICAgICAgICBpbmRpY2F0b3IuZHVtcCgp
OwotICAgIH0pKCk7Ci0KLSAgICAoZnVuY3Rpb24gdGVzdE11bHRpcGxlU3ViUHJvZ3Jlc3Nlcygp
Ci0gICAgewotICAgICAgICB2YXIgaW5kaWNhdG9yID0gbmV3IEluc3BlY3RvclRlc3QuTW9ja1By
b2dyZXNzSW5kaWNhdG9yKCk7Ci0gICAgICAgIHZhciBjb21wb3NpdGUgPSBuZXcgV2ViSW5zcGVj
dG9yLkNvbXBvc2l0ZVByb2dyZXNzKGluZGljYXRvcik7Ci0gICAgICAgIHZhciBzdWJQcm9ncmVz
czEgPSBjb21wb3NpdGUuY3JlYXRlU3ViUHJvZ3Jlc3MoKTsKLSAgICAgICAgdmFyIHN1YlByb2dy
ZXNzMiA9IGNvbXBvc2l0ZS5jcmVhdGVTdWJQcm9ncmVzcygzKTsKLQotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiVGVzdGluZyBDb21wb3NpdGVQcm9ncmVzcyB3aXRoIG11bHRpcGxl
IHN1YnByb2dyZXNzZXM6Iik7Ci0gICAgICAgIGluZGljYXRvci5kdW1wKCk7Ci0KLSAgICAgICAg
c3ViUHJvZ3Jlc3MxLnNldFRpdGxlKCJjdWNrb29pbmciKTsKLSAgICAgICAgc3ViUHJvZ3Jlc3Mx
LnNldFRvdGFsV29yaygxMDApOwotICAgICAgICBzdWJQcm9ncmVzczEuc2V0V29ya2VkKDIwKTsK
LSAgICAgICAgaW5kaWNhdG9yLmR1bXAoKTsKLQotICAgICAgICBzdWJQcm9ncmVzczIuc2V0V29y
a2VkKDEwKTsKLSAgICAgICAgaW5kaWNhdG9yLmR1bXAoKTsKLQotICAgICAgICBzdWJQcm9ncmVz
czIuc2V0VG90YWxXb3JrKDEwKTsKLSAgICAgICAgc3ViUHJvZ3Jlc3MyLnNldFdvcmtlZCgzLCAi
YmFya2luZyIpOwotICAgICAgICBpbmRpY2F0b3IuZHVtcCgpOwotCi0gICAgICAgIHN1YlByb2dy
ZXNzMS5zZXRXb3JrZWQoNTAsICJtZW93aW5nIik7Ci0gICAgICAgIHN1YlByb2dyZXNzMi5zZXRX
b3JrZWQoNSk7Ci0gICAgICAgIGluZGljYXRvci5kdW1wKCk7Ci0KLSAgICAgICAgc3ViUHJvZ3Jl
c3MyLmRvbmUoKTsKLSAgICAgICAgaW5kaWNhdG9yLmR1bXAoKTsKLQotICAgICAgICBzdWJQcm9n
cmVzczEuZG9uZSgpOwotICAgICAgICBpbmRpY2F0b3IuZHVtcCgpOwotICAgIH0pKCk7Ci0KLSAg
ICAoZnVuY3Rpb24gdGVzdENhbmNlbCgpCi0gICAgewotICAgICAgICB2YXIgaW5kaWNhdG9yID0g
bmV3IEluc3BlY3RvclRlc3QuTW9ja1Byb2dyZXNzSW5kaWNhdG9yKCk7Ci0gICAgICAgIHZhciBj
b21wb3NpdGUgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbXBvc2l0ZVByb2dyZXNzKGluZGljYXRvcik7
Ci0gICAgICAgIHZhciBzdWJQcm9ncmVzczEgPSBjb21wb3NpdGUuY3JlYXRlU3ViUHJvZ3Jlc3Mo
KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdGluZyBpc0NhbmNlbGVk
OiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoIXN1YlByb2dyZXNzMS5pc0Nh
bmNlbGVkKCksICJwcm9ncmVzcyBzaG91bGQgbm90IGJlIGNhbmNlbGVkIik7Ci0gICAgICAgIGlu
ZGljYXRvci5jYW5jZWwoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKHN1YlBy
b2dyZXNzMS5pc0NhbmNlbGVkKCksICJwcm9ncmVzcyBzaG91bGQgYmUgY2FuY2VsZWQiKTsKLSAg
ICB9KSgpOwotCi0gICAgKGZ1bmN0aW9uIHRlc3ROZXN0ZWQoKQotICAgIHsKLSAgICAgICAgdmFy
IGluZGljYXRvciA9IG5ldyBJbnNwZWN0b3JUZXN0Lk1vY2tQcm9ncmVzc0luZGljYXRvcigpOwot
ICAgICAgICB2YXIgY29tcG9zaXRlMCA9IG5ldyBXZWJJbnNwZWN0b3IuQ29tcG9zaXRlUHJvZ3Jl
c3MoaW5kaWNhdG9yKTsKLSAgICAgICAgdmFyIHN1YlByb2dyZXNzMDEgPSBjb21wb3NpdGUwLmNy
ZWF0ZVN1YlByb2dyZXNzKCk7Ci0gICAgICAgIHZhciBjb21wb3NpdGUxID0gbmV3IFdlYkluc3Bl
Y3Rvci5Db21wb3NpdGVQcm9ncmVzcyhzdWJQcm9ncmVzczAxKTsKLSAgICAgICAgdmFyIHN1YlBy
b2dyZXNzMTEgPSBjb21wb3NpdGUxLmNyZWF0ZVN1YlByb2dyZXNzKDEwKTsgLy8gV2VpZ2h0IHNo
b3VsZCBoYXZlIG5vIGVmZmVjdC4KLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
VGVzdGluZyBuZXN0ZWQgc3VicHJvZ3Jlc3NlczoiKTsKLSAgICAgICAgaW5kaWNhdG9yLmR1bXAo
KTsKLQotICAgICAgICBzdWJQcm9ncmVzczExLnNldFdvcmtlZCgxMCk7Ci0gICAgICAgIGluZGlj
YXRvci5kdW1wKCk7Ci0KLSAgICAgICAgc3ViUHJvZ3Jlc3MxMS5zZXRUb3RhbFdvcmsoMTAwKTsK
LSAgICAgICAgaW5kaWNhdG9yLmR1bXAoKTsKLQotICAgICAgICBzdWJQcm9ncmVzczExLnNldFdv
cmtlZCg1MCwgIm1lb3dpbmciKTsKLSAgICAgICAgaW5kaWNhdG9yLmR1bXAoKTsKLQotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoIXN1YlByb2dyZXNzMTEuaXNDYW5jZWxlZCgpKTsK
LSAgICAgICAgaW5kaWNhdG9yLmNhbmNlbCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dFRydWUoc3ViUHJvZ3Jlc3MxMS5pc0NhbmNlbGVkKCkpOwotCi0gICAgICAgIHN1YlByb2dyZXNz
MTEuZG9uZSgpOwotICAgICAgICBpbmRpY2F0b3IuZHVtcCgpOwotICAgIH0pKCk7Ci0KLSAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIGluc3BlY3RvcidzIGNvbXBvc2l0ZSBw
cm9ncmVzcyBiYXIuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3JlbW90ZS1vYmplY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3JlbW90ZS1vYmplY3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1MmMyZTI2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZW1v
dGUtb2JqZWN0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVz
dHMgZm9ybWF0dGluZyBvZiBkaWZmZXJlbnQgdHlwZXMgb2YgcmVtb3RlIG9iamVjdHMuCi0KLWRh
dGUgPSBXZWQgRGVjIDA3IDIwMTEgMTI6MDE6MDAgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9yZW1vdGUtb2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVt
b3RlLW9iamVjdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNWU4MDQ1Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZW1vdGUtb2JqZWN0Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHJlc3Vs
dCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJkYXRlID0gIiArIHJl
c3VsdC5kZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCwgMjUpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgibmV3IERhdGUoMjAxMSwgMTEsIDcsIDEyLCAwMSkiLCBjYWxsYmFjayk7Ci19Ci0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIGZv
cm1hdHRpbmcgb2YgZGlmZmVyZW50IHR5cGVzIG9mIHJlbW90ZSBvYmplY3RzLgotPC9wPgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0
LUFQSS1lcnJvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1B
UEktZXJyb3JzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjM5
MjI3NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJv
cnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1UZXN0cyB0aGF0
IEluc3BlY3RvckJhY2tlbmRTdHViIGlzIGNhdGNoaW5nIGluY29ycmVjdCBhcmd1bWVudHMuCi0K
LVByb3RvY29sIEVycm9yOiBJbnZhbGlkIHR5cGUgb2YgYXJndW1lbnQgJ2VuYWJsZWQnIGZvciBt
ZXRob2QgJ0NvbnNvbGUuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQnIGNhbGwuIEl0IG11c3QgYmUg
J2Jvb2xlYW4nIGJ1dCBpdCBpcyAnbnVtYmVyJy4KLVByb3RvY29sIEVycm9yOiBJbnZhbGlkIG51
bWJlciBvZiBhcmd1bWVudHMgZm9yIG1ldGhvZCAnQ29uc29sZS5zZXRNb25pdG9yaW5nWEhSRW5h
YmxlZCcgY2FsbC4gSXQgbXVzdCBoYXZlIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzICdbeyJuYW1l
IjoiZW5hYmxlZCIsInR5cGUiOiJib29sZWFuIiwib3B0aW9uYWwiOmZhbHNlfV0nLgotUHJvdG9j
b2wgRXJyb3I6IE9wdGlvbmFsIGNhbGxiYWNrIGFyZ3VtZW50IGZvciBtZXRob2QgJ0NvbnNvbGUu
c2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQnIGNhbGwgbXVzdCBiZSBhIGZ1bmN0aW9uIGJ1dCBpdHMg
dHlwZSBpcyAnc3RyaW5nJy4KLVByb3RvY29sIEVycm9yOiB0aGUgbWVzc2FnZSBpcyBmb3Igbm9u
LWV4aXN0aW5nIGRvbWFpbiAnd3JvbmdEb21haW4nCi1Qcm90b2NvbCBFcnJvcjogQXR0ZW1wdGVk
IHRvIGRpc3BhdGNoIGFuIHVuaW1wbGVtZW50ZWQgbWV0aG9kICdJbnNwZWN0b3Iuc29tZXRoaW5n
LXN0cmFuZ2UnCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtQVBJ
LWVycm9ycy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2NzAyNWIuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHRlc3QoKQotewotCi0gICAgY29uc29sZS5lcnJvciA9IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KFN0cmluZy5zcHJpbnRmLmFwcGx5
KHRoaXMsIGFyZ3VtZW50cykpOwotICAgIH0KLQotICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9y
aW5nWEhSRW5hYmxlZCgxKTsKLSAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJs
ZWQoKTsKLSAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoZmFsc2UsICJu
b3QgYSBmdW5jdGlvbiIpOwotICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxl
ZChmYWxzZSwgdW5kZWZpbmVkKTsKLSAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoInRydWUiLCAi
dGVzdCIpOwotICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgidHJ1ZSIsICJ0ZXN0IiwgZnVuY3Rp
b24oKXt9KTsKLSAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoInRydWUiLCAidGVzdCIsIHVuZGVm
aW5lZCwgZnVuY3Rpb24oKXt9KTsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLmRpc3BhdGNoKCd7Im1l
dGhvZCI6ICJ3cm9uZ0RvbWFpbi5zb21ldGhpbmctc3RyYW5nZSIsICJwYXJhbXMiOiB7fX0nKTsK
LSAgICBJbnNwZWN0b3JCYWNrZW5kLmRpc3BhdGNoKCd7Im1ldGhvZCI6ICJJbnNwZWN0b3Iuc29t
ZXRoaW5nLXN0cmFuZ2UiLCAicGFyYW1zIjoge319Jyk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IEluc3BlY3RvckJhY2tlbmRTdHViIGlzIGNhdGNo
aW5nIGluY29ycmVjdCBhcmd1bWVudHMuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtcHJvdG9jb2wtZXJyb3JzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtcHJvdG9jb2wtZXJyb3JzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzAzYzllZi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNzAgKzAsMCBAQAotVGVzdHMgdGhhdCBJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciBpcyBjYXRjaGluZyBpbmNvcnJlY3QgbWVzc2FnZXMuCi0K
LXsKLSAgICBlcnJvciA6IHsKLSAgICAgICAgY29kZSA6IC0zMjcwMAotICAgICAgICBtZXNzYWdl
IDogIk1lc3NhZ2UgbXVzdCBiZSBpbiBKU09OIGZvcm1hdCIKLSAgICB9Ci0gICAgaWQgOiBudWxs
Ci19Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi17Ci0gICAgZXJyb3IgOiB7Ci0gICAgICAgIGNvZGUgOiAtMzI2MDAKLSAgICAgICAgbWVz
c2FnZSA6ICInaWQnIHByb3BlcnR5IHdhcyBub3QgZm91bmQiCi0gICAgfQotICAgIGlkIDogbnVs
bAotfQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotewotICAgIGVycm9yIDogewotICAgICAgICBjb2RlIDogLTMyNjAwCi0gICAgICAgIG1l
c3NhZ2UgOiAiVGhlIHR5cGUgb2YgJ2lkJyBwcm9wZXJ0eSBtdXN0IGJlIG51bWJlciIKLSAgICB9
Ci0gICAgaWQgOiBudWxsCi19Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi17Ci0gICAgZXJyb3IgOiB7Ci0gICAgICAgIGNvZGUgOiAtMzI2
MDAKLSAgICAgICAgbWVzc2FnZSA6ICJUaGUgdHlwZSBvZiAnbWV0aG9kJyBwcm9wZXJ0eSBtdXN0
IGJlIHN0cmluZyIKLSAgICB9Ci0gICAgaWQgOiAxCi19Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi17Ci0gICAgZXJyb3IgOiB7Ci0gICAg
ICAgIGNvZGUgOiAtMzI2MDEKLSAgICAgICAgbWVzc2FnZSA6ICIncmVzb3VyY2VDb250ZW50JyB3
YXNuJ3QgZm91bmQiCi0gICAgfQotICAgIGlkIDogMgotfQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotewotICAgIGVycm9yIDogewotICAg
ICAgICBjb2RlIDogLTMyNjAxCi0gICAgICAgIG1lc3NhZ2UgOiAiJ0RPTS50ZXN0JyB3YXNuJ3Qg
Zm91bmQiCi0gICAgfQotICAgIGlkIDogMwotfQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotewotICAgIGVycm9yIDogewotICAgICAgICBj
b2RlIDogLTMyNjAyCi0gICAgICAgIGRhdGEgOiBbCi0gICAgICAgICAgICAiJ3BhcmFtcycgb2Jq
ZWN0IG11c3QgY29udGFpbiByZXF1aXJlZCBwYXJhbWV0ZXIgJ2ZyYW1lSWQnIHdpdGggdHlwZSAn
U3RyaW5nJy4iCi0gICAgICAgICAgICAiJ3BhcmFtcycgb2JqZWN0IG11c3QgY29udGFpbiByZXF1
aXJlZCBwYXJhbWV0ZXIgJ3VybCcgd2l0aCB0eXBlICdTdHJpbmcnLiIKLSAgICAgICAgXQotICAg
ICAgICBtZXNzYWdlIDogIlNvbWUgYXJndW1lbnRzIG9mIG1ldGhvZCAnUGFnZS5nZXRSZXNvdXJj
ZUNvbnRlbnQnIGNhbid0IGJlIHByb2Nlc3NlZCIKLSAgICB9Ci0gICAgaWQgOiA0Ci19Ci0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi17Ci0g
ICAgZXJyb3IgOiB7Ci0gICAgICAgIGNvZGUgOiAtMzI2MDIKLSAgICAgICAgZGF0YSA6IFsKLSAg
ICAgICAgICAgICIncGFyYW1zJyBvYmplY3QgbXVzdCBjb250YWluIHJlcXVpcmVkIHBhcmFtZXRl
ciAnZnJhbWVJZCcgd2l0aCB0eXBlICdTdHJpbmcnLiIKLSAgICAgICAgICAgICIncGFyYW1zJyBv
YmplY3QgbXVzdCBjb250YWluIHJlcXVpcmVkIHBhcmFtZXRlciAndXJsJyB3aXRoIHR5cGUgJ1N0
cmluZycuIgotICAgICAgICBdCi0gICAgICAgIG1lc3NhZ2UgOiAiU29tZSBhcmd1bWVudHMgb2Yg
bWV0aG9kICdQYWdlLmdldFJlc291cmNlQ29udGVudCcgY2FuJ3QgYmUgcHJvY2Vzc2VkIgotICAg
IH0KLSAgICBpZCA6IDUKLX0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLXsKLSAgICBlcnJvciA6IHsKLSAgICAgICAgY29kZSA6IC0zMjYw
MgotICAgICAgICBkYXRhIDogWwotICAgICAgICAgICAgIlBhcmFtZXRlciAnZnJhbWVJZCcgd2l0
aCB0eXBlICdTdHJpbmcnIHdhcyBub3QgZm91bmQuIgotICAgICAgICAgICAgIlBhcmFtZXRlciAn
dXJsJyB3aXRoIHR5cGUgJ1N0cmluZycgd2FzIG5vdCBmb3VuZC4iCi0gICAgICAgIF0KLSAgICAg
ICAgbWVzc2FnZSA6ICJTb21lIGFyZ3VtZW50cyBvZiBtZXRob2QgJ1BhZ2UuZ2V0UmVzb3VyY2VD
b250ZW50JyBjYW4ndCBiZSBwcm9jZXNzZWQiCi0gICAgfQotICAgIGlkIDogNgotfQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotewotICAg
IGVycm9yIDogewotICAgICAgICBjb2RlIDogLTMyNjAyCi0gICAgICAgIGRhdGEgOiBbCi0gICAg
ICAgICAgICAiUGFyYW1ldGVyICd1cmwnIHdpdGggdHlwZSAnU3RyaW5nJyB3YXMgbm90IGZvdW5k
LiIKLSAgICAgICAgXQotICAgICAgICBtZXNzYWdlIDogIlNvbWUgYXJndW1lbnRzIG9mIG1ldGhv
ZCAnUGFnZS5nZXRSZXNvdXJjZUNvbnRlbnQnIGNhbid0IGJlIHByb2Nlc3NlZCIKLSAgICB9Ci0g
ICAgaWQgOiA3Ci19Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi17Ci0gICAgZXJyb3IgOiB7Ci0gICAgICAgIGNvZGUgOiAtMzI2MDEKLSAg
ICAgICAgbWVzc2FnZSA6ICInUGFnZS50ZXN0JyB3YXNuJ3QgZm91bmQiCi0gICAgfQotICAgIGlk
IDogOAotfQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotewotICAgIGVycm9yIDogewotICAgICAgICBjb2RlIDogLTMyNjAxCi0gICAgICAg
IG1lc3NhZ2UgOiAiJ1BhZ2UudGVzdCcgd2Fzbid0IGZvdW5kIgotICAgIH0KLSAgICBpZCA6IDkK
LX0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLXsKLSAgICBlcnJvciA6IHsKLSAgICAgICAgY29kZSA6IC0zMjYwMQotICAgICAgICBtZXNz
YWdlIDogIidQYWdlLnRlc3QnIHdhc24ndCBmb3VuZCIKLSAgICB9Ci0gICAgaWQgOiAxMAotfQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
ewotICAgIGVycm9yIDogewotICAgICAgICBjb2RlIDogLTMyNjAxCi0gICAgICAgIG1lc3NhZ2Ug
OiAiJ1BhZ2UudGVzdCcgd2Fzbid0IGZvdW5kIgotICAgIH0KLSAgICBpZCA6IDExCi19Ci0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi17Ci0g
ICAgZXJyb3IgOiB7Ci0gICAgICAgIGNvZGUgOiAtMzI2MDEKLSAgICAgICAgbWVzc2FnZSA6ICIn
UGFnZS50ZXN0JyB3YXNuJ3QgZm91bmQiCi0gICAgfQotICAgIGlkIDogMTIKLX0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXsKLSAgICBl
cnJvciA6IHsKLSAgICAgICAgY29kZSA6IC0zMjYwMQotICAgICAgICBtZXNzYWdlIDogIidQYWdl
LnRlc3QnIHdhc24ndCBmb3VuZCIKLSAgICB9Ci0gICAgaWQgOiAxMwotfQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotewotICAgIGVycm9y
IDogewotICAgICAgICBjb2RlIDogLTMyNjAxCi0gICAgICAgIG1lc3NhZ2UgOiAiJ1BhZ2UudGVz
dCcgd2Fzbid0IGZvdW5kIgotICAgIH0KLSAgICBpZCA6IDE0Ci19Ci0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi17Ci0gICAgZXJyb3IgOiB7
Ci0gICAgICAgIGNvZGUgOiAtMzI2MDEKLSAgICAgICAgbWVzc2FnZSA6ICInUGFnZS50ZXN0JyB3
YXNuJ3QgZm91bmQiCi0gICAgfQotICAgIGlkIDogMTUKLX0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXsKLSAgICBlcnJvciA6IHsKLSAg
ICAgICAgY29kZSA6IC0zMjYwMQotICAgICAgICBtZXNzYWdlIDogIidQYWdlLnRlc3QnIHdhc24n
dCBmb3VuZCIKLSAgICB9Ci0gICAgaWQgOiAxNgotfQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2MzOGU2Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVw
b3J0LXByb3RvY29sLWVycm9ycy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICB2YXIgbWVzc2FnZXMgPSBbCi0gICAgICAgICdzb21lIHdyb25nIHN0cmluZycsCi0gICAg
ICAgICd7fScsCi0gICAgICAgICd7ImlkIjoibm90IGEgbnVtYmVyIn0nLAotICAgICAgICAneyJp
ZCI6MSwibWV0aG9kIjoxfScsCi0gICAgICAgICd7ImlkIjoyLCJtZXRob2QiOiJyZXNvdXJjZUNv
bnRlbnQifScsCi0gICAgICAgICd7ImlkIjozLCJtZXRob2QiOiJET00udGVzdCJ9JywKLSAgICAg
ICAgJ3siaWQiOjQsIm1ldGhvZCI6IlBhZ2UuZ2V0UmVzb3VyY2VDb250ZW50In0nLAotICAgICAg
ICAneyJpZCI6NSwibWV0aG9kIjoiUGFnZS5nZXRSZXNvdXJjZUNvbnRlbnQiLCJwYXJhbXMiOltd
fScsCi0gICAgICAgICd7ImlkIjo2LCJtZXRob2QiOiJQYWdlLmdldFJlc291cmNlQ29udGVudCIs
InBhcmFtcyI6e319JywKLSAgICAgICAgJ3siaWQiOjcsIm1ldGhvZCI6IlBhZ2UuZ2V0UmVzb3Vy
Y2VDb250ZW50IiwicGFyYW1zIjp7ImZyYW1lSWQiOiJub3QgYSBudW1iZXIifX0nLAotICAgICAg
ICAneyJpZCI6OCwibWV0aG9kIjoiUGFnZS50ZXN0In0nLAotICAgICAgICAneyJpZCI6OSwibWV0
aG9kIjoiUGFnZS50ZXN0IiB9JywKLSAgICAgICAgJ3siaWQiOjEwLCJtZXRob2QiOiAiUGFnZS50
ZXN0IiB9JywKLSAgICAgICAgJ3siaWQiOjExLCJtZXRob2QiIDogIlBhZ2UudGVzdCIgfScsCi0g
ICAgICAgICd7ImlkIjoxMiwgIm1ldGhvZCIgOiAiUGFnZS50ZXN0IiB9JywKLSAgICAgICAgJ3si
aWQiOiAxMywgIm1ldGhvZCIgOiAiUGFnZS50ZXN0IiB9JywKLSAgICAgICAgJ3siaWQiIDogMTQs
ICJtZXRob2QiIDogIlBhZ2UudGVzdCIgfScsCi0gICAgICAgICd7ICJpZCIgOiAxNSwgIm1ldGhv
ZCIgOiAiUGFnZS50ZXN0IiB9JywKLSAgICAgICAgJ3sgICJpZCJcbiA6XHIgMTYsXHQgIm1ldGhv
ZCJcZiA6XHYgIlBhZ2UudGVzdCIgfScsCi0gICAgXTsKLSAgICB2YXIgbnVtYmVyT2ZSZXBvcnRz
ID0gMDsKLQotICAgIEluc3BlY3RvckJhY2tlbmQucmVwb3J0UHJvdG9jb2xFcnJvciA9IGZ1bmN0
aW9uKG1lc3NhZ2UpCi0gICAgewotCi0gICAgICAgIGlmIChudW1iZXJPZlJlcG9ydHMgPCBtZXNz
YWdlcy5sZW5ndGgpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkT2JqZWN0KG1lc3Nh
Z2UpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGlmICgrK251bWJlck9mUmVwb3J0cyA9PT0gbWVzc2FnZXMubGVuZ3RoKQotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBmaXJlKCkgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0
aDsgKytpKQotICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNlbmRNZXNzYWdlVG9C
YWNrZW5kKG1lc3NhZ2VzW2ldKTsKLSAgICB9Ci0KLSAgICBEZWJ1Z2dlckFnZW50LmRpc2FibGUo
ZmlyZSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD4KLVRlc3RzIHRoYXQgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIgaXMgY2F0Y2hp
bmcgaW5jb3JyZWN0IG1lc3NhZ2VzLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9ydW50aW1lLWNhbGxGdW5jdGlvbk9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3J1bnRpbWUtY2Fs
bEZ1bmN0aW9uT24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
ZGE1NWEzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3J1bnRp
bWUtY2FsbEZ1bmN0aW9uT24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAs
MCBAQAotVGVzdHMgUnVudGltZUFnZW50LmNhbGxGdW5jdGlvbk9uIHVzYWdlcy4KLQotCi1SdW5u
aW5nOiB0ZXN0VGhpcwotMwotCi1SdW5uaW5nOiB0ZXN0QXJndW1lbnRzCi17ImEiOjEsImIiOjJ9
Ci17ImEiOjEsImIiOjJ9Ci17ImMiOjEsImQiOjJ9Ci00Ci11bmRlZmluZWQKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcnVudGltZS1jYWxsRnVuY3Rpb25Pbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcnVudGltZS1jYWxsRnVuY3Rpb25P
bi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmEwNDE5Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3J1bnRpbWUtY2FsbEZ1bmN0aW9uT24u
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIG9iajEsIG9i
ajI7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9u
IHRlc3RUaGlzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFs
dWF0ZSgiKHsgYSA6IDEsIGIgOiAyIH0pIiwgc3RlcDEpOwotCi0gICAgICAgICAgICBmdW5jdGlv
biBzdGVwMShlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCi0gICAgICAgICAgICB7Ci0KLSAgICAg
ICAgICAgICAgICBmdW5jdGlvbiBzdW0oKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuYSArIHRoaXMuYjsKLSAgICAgICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgICAgICBvYmoxID0gcmVzdWx0OwotICAgICAgICAgICAgICAgIFJ1bnRpbWVBZ2Vu
dC5jYWxsRnVuY3Rpb25PbihvYmoxLm9iamVjdElkLCBzdW0udG9TdHJpbmcoKSwgc3RlcDIpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMihlcnJvciwgcmVzdWx0
LCB3YXNUaHJvd24pCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQocmVzdWx0LnZhbHVlKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEFyZ3VtZW50cyhu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoIih7IGMg
OiAxLCBkIDogMiB9KSIsIHN0ZXAxKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoZXJy
b3IsIHJlc3VsdCwgd2FzVGhyb3duKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZ1
bmN0aW9uIGZvcm1hdChhb2JqMSwgYW9iajIsIHZhbCwgdW5kZWYpCi0gICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcykgKyAiXG4i
ICsgSlNPTi5zdHJpbmdpZnkoYW9iajEpICsgIlxuIiArIEpTT04uc3RyaW5naWZ5KGFvYmoyKSAr
ICJcbiIgKyB2YWwgKyAiXG4iICsgdW5kZWY7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAgICAgb2JqMiA9IHJlc3VsdDsKLSAgICAgICAgICAgICAgICBSdW50aW1lQWdlbnQuY2Fs
bEZ1bmN0aW9uT24ob2JqMS5vYmplY3RJZCwgZm9ybWF0LnRvU3RyaW5nKCksIFtvYmoxLCBvYmoy
LCB7dmFsdWU6NH0sIHt9XSwgc3RlcDIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBm
dW5jdGlvbiBzdGVwMihlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVzdWx0LnZhbHVlKTsKLSAg
ICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsK
LX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxw
PgotVGVzdHMgUnVudGltZUFnZW50LmNhbGxGdW5jdGlvbk9uIHVzYWdlcy4KLTwvcD4KLQotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUv
cnVudGltZS1nZXRQcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9ydW50aW1lL3J1bnRpbWUtZ2V0UHJvcGVydGllcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE2MjczZGMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3J1bnRpbWUvcnVudGltZS1nZXRQcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLVRlc3RzIFJlbW90ZU9iamVjdC5nZXRQcm9wZXJ0aWVz
LgotCi0KLVJ1bm5pbmc6IHRlc3RTZXRVcAotCi1SdW5uaW5nOiB0ZXN0R2V0dGVyQW5kU2V0dGVy
Ci17Ci0gICAgZW51bWVyYWJsZSA6IHRydWUKLSAgICBuYW1lIDogImdldCBmb28iCi0gICAgdmFs
dWUgOiB7Ci0gICAgICAgIGRlc2NyaXB0aW9uIDogImZ1bmN0aW9uICgpIHsgcmV0dXJuIDE7IH0i
Ci0gICAgICAgIG9iamVjdElkIDogPHN0cmluZz4KLSAgICAgICAgdHlwZSA6ICJmdW5jdGlvbiIK
LSAgICB9Ci0gICAgd3JpdGFibGUgOiBmYWxzZQotfQotewotICAgIGVudW1lcmFibGUgOiB0cnVl
Ci0gICAgbmFtZSA6ICJzZXQgZm9vIgotICAgIHZhbHVlIDogewotICAgICAgICBkZXNjcmlwdGlv
biA6ICJmdW5jdGlvbiAodmFsdWUpIHsgfSIKLSAgICAgICAgb2JqZWN0SWQgOiA8c3RyaW5nPgot
ICAgICAgICB0eXBlIDogImZ1bmN0aW9uIgotICAgIH0KLSAgICB3cml0YWJsZSA6IGZhbHNlCi19
Ci0KLVJ1bm5pbmc6IHRlc3RHZXR0ZXJPbmx5Ci17Ci0gICAgZW51bWVyYWJsZSA6IHRydWUKLSAg
ICBuYW1lIDogImdldCBmb28iCi0gICAgdmFsdWUgOiB7Ci0gICAgICAgIGRlc2NyaXB0aW9uIDog
ImZ1bmN0aW9uICgpIHsgcmV0dXJuIDE7IH0iCi0gICAgICAgIG9iamVjdElkIDogPHN0cmluZz4K
LSAgICAgICAgdHlwZSA6ICJmdW5jdGlvbiIKLSAgICB9Ci0gICAgd3JpdGFibGUgOiBmYWxzZQot
fQotewotICAgIGVudW1lcmFibGUgOiB0cnVlCi0gICAgbmFtZSA6ICJzZXQgZm9vIgotICAgIHZh
bHVlIDogewotICAgICAgICBkZXNjcmlwdGlvbiA6ICJ1bmRlZmluZWQiCi0gICAgICAgIG9iamVj
dElkIDogPHVuZGVmaW5lZD4KLSAgICAgICAgdHlwZSA6ICJ1bmRlZmluZWQiCi0gICAgfQotICAg
IHdyaXRhYmxlIDogZmFsc2UKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3J1bnRpbWUvcnVudGltZS1nZXRQcm9wZXJ0aWVzLWlzT3duUHJvcGVydHktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcnVudGltZS1nZXRQcm9wZXJ0aWVzLWlz
T3duUHJvcGVydHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
MTg1MjJmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3J1bnRp
bWUtZ2V0UHJvcGVydGllcy1pc093blByb3BlcnR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDUgKzAsMCBAQAotVGVzdHMgUmVtb3RlT2JqZWN0LmdldFByb3BlcnRpZXMuCi0KLXBy
b3BlcnR5Lm5hbWU9PSJ0ZXN0QmFyIiBpc093bj09InRydWUiCi1wcm9wZXJ0eS5uYW1lPT0idGVz
dEZvbyIgaXNPd249PSJ1bmRlZmluZWQiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9ydW50aW1lL3J1bnRpbWUtZ2V0UHJvcGVydGllcy1pc093blByb3BlcnR5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9ydW50aW1lLWdldFByb3BlcnRpZXMtaXNPd25Q
cm9wZXJ0eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjYwYzc5Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3J1bnRpbWUtZ2V0UHJvcGVy
dGllcy1pc093blByb3BlcnR5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIEEoKSB7Ci0g
ICAgdGhpcy50ZXN0Rm9vID0gImFiYyI7Ci19Ci0KLWZ1bmN0aW9uIEIoKSB7IAotICAgIHRoaXMu
dGVzdEJhciA9ICJjZGUiOwotfQotCi1CLnByb3RvdHlwZSA9IG5ldyBBKCk7Ci1iID0gbmV3IEIo
KTsKLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gZmFpbChtZXNzYWdlKQotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQobWVzc2FnZSk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0gICAgUnVudGltZUFnZW50LmV2
YWx1YXRlKCJ3aW5kb3cuYiIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKGVycm9yLCBy
ZXN1bHQpCi0gICAgewotICAgICAgICBSdW50aW1lQWdlbnQuZ2V0UHJvcGVydGllcyhyZXN1bHQu
b2JqZWN0SWQsIC8qIGlzT3duUHJvcGVydHkgKi8gZmFsc2UsIHN0ZXAyKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBzdGVwMihlcnJvciwgcHJvcGVydGllcykgCi0gICAgewotICAgICAgICBpZiAo
ZXJyb3IpIAotICAgICAgICAgICAgcmV0dXJuIGZhaWwoIkVycm9yIHRvb2sgcGxhY2UgZHVyaW5n
IFJ1bnRpbWVBZ2VudC5nZXRQcm9wZXJ0aWVzIGNhbGwiKTsKLSAgICAgICAgCi0gICAgICAgIGlm
ICghcHJvcGVydGllcykgCi0gICAgICAgICAgICByZXR1cm4gZmFpbCgiUHJvcGVydGllcyBkbyBu
b3QgZXhpc3QiKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVy
dGllcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gcHJvcGVydGll
c1tpXTsKLSAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5uYW1lLm1hdGNoKC9edGVzdC8pKSAKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicHJvcGVydHkubmFtZT09XCIi
ICsgcHJvcGVydHkubmFtZSArICJcIiBpc093bj09XCIiICsgcHJvcGVydHkuaXNPd24gKyAiXCIi
KTsKLSAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
IH0KLQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
LTxwPgotVGVzdHMgUmVtb3RlT2JqZWN0LmdldFByb3BlcnRpZXMuCi08L3A+Ci0KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3J1bnRp
bWUtZ2V0UHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcnVu
dGltZS1nZXRQcm9wZXJ0aWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVl
YjI4YmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcnVudGlt
ZS1nZXRQcm9wZXJ0aWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXZhciBvYmplY3QxID0geyBnZXQg
Zm9vKCkgeyByZXR1cm4gMTsgfSwgc2V0IGZvbyh2YWx1ZSkgeyB9IH07Ci12YXIgb2JqZWN0MiA9
IHsgZ2V0IGZvbygpIHsgcmV0dXJuIDE7IH0gfTsKLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
dmFyIG9iajEsIG9iajI7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAg
ICAgIGZ1bmN0aW9uIHRlc3RTZXRVcChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJkdW1wT2JqZWN0cygnSW5pdGlhbCcpIiwgc3RlcDAp
OwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMCgpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJvYmplY3QxIiwgc3RlcDEpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMShlcnJvciwgcmVzdWx0LCB3YXNU
aHJvd24pCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgb2JqMSA9IFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0KTsKLSAgICAgICAgICAgICAgICBSdW50
aW1lQWdlbnQuZXZhbHVhdGUoIm9iamVjdDIiLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKGVycm9yLCByZXN1bHQsIHdhc1Rocm93bikKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBvYmoyID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dC5mcm9tUGF5bG9hZChyZXN1bHQpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0dGVyQW5kU2V0dGVy
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG9iajEuZ2V0T3duUHJvcGVydGllcyhzdGVw
MSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKHByb3BlcnRpZXMpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0
aDsgKytpKQotICAgICAgICAgICAgICAgICAgICBkdW1wUHJvcGVydHkocHJvcGVydGllc1tpXSk7
Ci0KLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0K
LSAgICAgICAgZnVuY3Rpb24gdGVzdEdldHRlck9ubHkobmV4dCkKLSAgICAgICAgewotICAgICAg
ICAgICAgb2JqMi5nZXRPd25Qcm9wZXJ0aWVzKHN0ZXAxKTsKLQotICAgICAgICAgICAgZnVuY3Rp
b24gc3RlcDEocHJvcGVydGllcykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAg
ICAgIGR1bXBQcm9wZXJ0eShwcm9wZXJ0aWVzW2ldKTsKLQotICAgICAgICAgICAgICAgIG5leHQo
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZnVuY3Rpb24gZHVt
cFByb3BlcnR5KHByb3BlcnR5KQotICAgIHsKLSAgICAgICAgaWYgKHByb3BlcnR5Lm5hbWUgPT09
ICJfX3Byb3RvX18iKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciB2YWx1ZSA9
IHByb3BlcnR5LnZhbHVlOwotICAgICAgICBpZiAodmFsdWUpCi0gICAgICAgICAgICBwcm9wZXJ0
eS52YWx1ZSA9IHsgdHlwZTogdmFsdWUudHlwZSwgZGVzY3JpcHRpb246IHZhbHVlLmRlc2NyaXB0
aW9uLnJlcGxhY2UoImZ1bmN0aW9uIGZvbyIsICJmdW5jdGlvbiAiKSwgb2JqZWN0SWQ6IHZhbHVl
Lm9iamVjdElkIH07Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcChwcm9wZXJ0eSwgeyBvYmpl
Y3RJZDogImZvcm1hdEFzVHlwZU5hbWUiIH0pOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgUmVtb3RlT2JqZWN0
LmdldFByb3BlcnRpZXMuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3J1bnRpbWUtbG9jYWxTdG9yYWdlLWdldFByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcnVudGlt
ZS1sb2NhbFN0b3JhZ2UtZ2V0UHJvcGVydGllcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDEwODE0YmUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3J1bnRpbWUvcnVudGltZS1sb2NhbFN0b3JhZ2UtZ2V0UHJvcGVydGllcy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyBSZW1vdGVPYmplY3QuZ2V0
UHJvcGVydGllcyBvbiBsb2NhbFN0b3JhZ2Ugb2JqZWN0LiA2NjIxNQotCi17Ci0gICAgZW51bWVy
YWJsZSA6IGZhbHNlCi0gICAgbmFtZSA6ICJ0ZXN0UHJvcGVydHkiCi0gICAgdmFsdWUgOiB7Ci0g
ICAgICAgIGRlc2NyaXB0aW9uIDogInRlc3RQcm9wZXJ0eVZhbHVlIgotICAgICAgICB0eXBlIDog
InN0cmluZyIKLSAgICB9Ci0gICAgd3JpdGFibGUgOiBmYWxzZQotfQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9ydW50aW1lLWxvY2FsU3RvcmFnZS1nZXRQcm9w
ZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9ydW50aW1lLWxvY2Fs
U3RvcmFnZS1nZXRQcm9wZXJ0aWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQ1MTFiMGIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcnVu
dGltZS1sb2NhbFN0b3JhZ2UtZ2V0UHJvcGVydGllcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NDAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1sb2Nh
bFN0b3JhZ2UudGVzdFByb3BlcnR5ID0gInRlc3RQcm9wZXJ0eVZhbHVlIjsKLQotZnVuY3Rpb24g
dGVzdCgpCi17Ci0gICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJsb2NhbFN0b3JhZ2UiLCBzdGVw
MSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMShlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCi0gICAg
ewotICAgICAgICB2YXIgbG9jYWxTdG9yYWdlSGFuZGxlID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5mcm9tUGF5bG9hZChyZXN1bHQpOwotICAgICAgICBsb2NhbFN0b3JhZ2VIYW5kbGUuZ2V0
T3duUHJvcGVydGllcyhzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIocHJvcGVy
dGllcykKLSAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5n
dGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gcHJvcGVydGllc1tpXTsKLSAg
ICAgICAgICAgIGlmIChwcm9wZXJ0eS5uYW1lICE9PSAidGVzdFByb3BlcnR5IikKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHByb3BlcnR5LnZhbHVlID0geyB0eXBlOiBw
cm9wZXJ0eS52YWx1ZS50eXBlLCBkZXNjcmlwdGlvbjogcHJvcGVydHkudmFsdWUuZGVzY3JpcHRp
b24gfTsgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXAocHJv
cGVydHkpOwotICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotPHA+Ci1UZXN0cyBSZW1vdGVPYmplY3QuZ2V0UHJvcGVydGllcyBvbiBsb2NhbFN0b3Jh
Z2Ugb2JqZWN0LiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjYyMTUiPjY2MjE1PC9hPgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9ydW50aW1lLXNldFByb3BlcnR5VmFsdWUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcnVudGltZS1zZXRQ
cm9wZXJ0eVZhbHVlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmI3MGM5Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9ydW50
aW1lLXNldFByb3BlcnR5VmFsdWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDkg
KzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiA9PT09PSBJbml0aWFsID09PT09Ci1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IHsiZm9vIjoxfQotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDEzOiAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMTogPT09PT0gU2V0IHByaW1pdGl2ZSA9PT09
PQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiB7ImZvbyI6Mn0KLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAxMzogCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6ID09PT09IFNldCBoYW5kbGUgPT09
PT0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogeyJmb28iOnsiYmFyIjoyfX0KLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxMzogCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6ID09PT09IFNldCB1
bmRlZmluZWQgPT09PT0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjoge30KLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxMzogCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6ID09PT09IFNldCB6ZXJv
ID09PT09Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IHsiZm9vIjowfQotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDEzOiAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMTogPT09PT0gU2V0IG51bGwg
PT09PT0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogeyJmb28iOm51bGx9Ci1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTM6IAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiA9PT09PSBTZXQgZW1w
dHkgc3RyaW5nID09PT09Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IHsiZm9vIjoiIn0KLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxMzogCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6ID09PT09
IFNldCBleGNlcHRpb24gPT09PT0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogeyJmb28iOiIi
fQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMTog
PT09PT0gU2V0IG5vbi1maW5pdGUgbnVtYmVycyA9PT09PQotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDEyOiB7ImZvbyI6Ik5hTiIsImZvbzEiOiJJbmZpbml0eSIsImZvbzIiOiItSW5maW5pdHkifQot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiAKLVRlc3RzIFdlYkluc3BlY3Rvci5SZW1vdmVPYmpl
Y3Quc2V0UHJvcGVydHlWYWx1ZSBpbXBsZW1lbnRhdGlvbi4KLQotCi1SdW5uaW5nOiB0ZXN0U2V0
VXAKLQotUnVubmluZzogdGVzdFNldFByaW1pdGl2ZQotCi1SdW5uaW5nOiB0ZXN0U2V0SGFuZGxl
Ci0KLVJ1bm5pbmc6IHRlc3RTZXRVbmRlZmluZWQKLQotUnVubmluZzogdGVzdFNldFplcm8KLQot
UnVubmluZzogdGVzdFNldE51bGwKLQotUnVubmluZzogdGVzdFNldEVtcHR5U3RyaW5nCi0KLVJ1
bm5pbmc6IHRlc3RTZXRFeGNlcHRpb24KLWV4Y2VwdGlvbgotCi1SdW5uaW5nOiB0ZXN0U2V0Tm9u
RmluaXRlTnVtYmVycwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGlt
ZS9ydW50aW1lLXNldFByb3BlcnR5VmFsdWUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9y
dW50aW1lL3J1bnRpbWUtc2V0UHJvcGVydHlWYWx1ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2MGMzYzFjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9y
dW50aW1lL3J1bnRpbWUtc2V0UHJvcGVydHlWYWx1ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTUyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotdmFy
IG9iamVjdDEgPSB7IGZvbzogMSB9OwotdmFyIG9iamVjdDIgPSB7IGJhcjogMiB9OwotCi1mdW5j
dGlvbiBkdW1wT2JqZWN0KGxhYmVsKQotewotICAgIGNvbnNvbGUubG9nKCI9PT09PSAiICsgbGFi
ZWwgKyAiID09PT09Iik7Ci0gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkob2JqZWN0MSwg
cmVwbGFjZXIpKTsKLSAgICBjb25zb2xlLmxvZygiIik7Ci0KLSAgICBmdW5jdGlvbiByZXBsYWNl
cihrZXksIHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gIm51bWJl
ciIgJiYgIWlzRmluaXRlKHZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUp
OwotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgfQotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICB2YXIgb2JqMSwgb2JqMjsKLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsK
LSAgICAgICAgZnVuY3Rpb24gdGVzdFNldFVwKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImR1bXBPYmplY3QoJ0luaXRpYWwnKSIsIHN0
ZXAwKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDAoKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgib2JqZWN0MSIsIHN0ZXAxKTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoZXJyb3IsIHJlc3VsdCwg
d2FzVGhyb3duKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG9iajEgPSBXZWJJbnNw
ZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCk7Ci0gICAgICAgICAgICAgICAg
UnVudGltZUFnZW50LmV2YWx1YXRlKCJvYmplY3QyIiwgc3RlcDIpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMihlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgb2JqMiA9IFdlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3QuZnJvbVBheWxvYWQocmVzdWx0KTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldFByaW1pdGl2
ZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBvYmoxLnNldFByb3BlcnR5VmFsdWUoImZv
byIsICIyIiwgc3RlcDEpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZHVt
cE9iamVjdCgnU2V0IHByaW1pdGl2ZScpIiwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldEhhbmRsZShuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICBvYmoxLnNldFByb3BlcnR5VmFsdWUoImZvbyIsICJvYmplY3QyIiwgc3RlcDEp
OwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZHVtcE9iamVjdCgnU2V0IGhh
bmRsZScpIiwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdFNldFVuZGVmaW5lZChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBvYmox
LnNldFByb3BlcnR5VmFsdWUoImZvbyIsICJ1bmRlZmluZWQiLCBzdGVwMSk7Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJkdW1wT2JqZWN0KCdTZXQgdW5kZWZpbmVkJykiLCBu
ZXh0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0
U2V0WmVybyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBvYmoxLnNldFByb3BlcnR5VmFs
dWUoImZvbyIsICIwIiwgc3RlcDEpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgiZHVtcE9iamVjdCgnU2V0IHplcm8nKSIsIG5leHQpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTZXROdWxsKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIG9iajEuc2V0UHJvcGVydHlWYWx1ZSgiZm9vIiwgIm51bGwiLCBzdGVwMSk7Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJkdW1wT2JqZWN0KCdTZXQgbnVsbCcp
IiwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24g
dGVzdFNldEVtcHR5U3RyaW5nKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG9iajEuc2V0
UHJvcGVydHlWYWx1ZSgiZm9vIiwgIlwiXCIiLCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0
aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJkdW1wT2JqZWN0KCdTZXQgZW1wdHkgc3RyaW5nJykiLCBuZXh0KTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0RXhj
ZXB0aW9uKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG9iajEuc2V0UHJvcGVydHlWYWx1
ZSgiZm9vIiwgInRocm93ICdleGNlcHRpb24nIiwgc3RlcDEpOwotCi0gICAgICAgICAgICBmdW5j
dGlvbiBzdGVwMShlcnJvcikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdChlcnJvcik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZSgiZHVtcE9iamVjdCgnU2V0IGV4Y2VwdGlvbicpIiwgbmV4dCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldE5vbkZpbml0
ZU51bWJlcnMobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgb2JqMS5zZXRQcm9wZXJ0eVZh
bHVlKCJmb28iLCAiTmFOIiwgc3RlcDEpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMShl
cnJvcikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBvYmoxLnNldFByb3BlcnR5VmFs
dWUoImZvbzEiLCAiSW5maW5pdHkiLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0ZXAyKGVycm9yKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IG9iajEuc2V0UHJvcGVydHlWYWx1ZSgiZm9vMiIsICItSW5maW5pdHkiLCBzdGVwMyk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKGVycm9yKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImR1bXBP
YmplY3QoJ1NldCBub24tZmluaXRlIG51bWJlcnMnKSIsIG5leHQpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIFdlYkluc3BlY3Rvci5SZW1vdmVPYmplY3Quc2V0
UHJvcGVydHlWYWx1ZSBpbXBsZW1lbnRhdGlvbi4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3NjcmlwdC1leGVjdXRpb24tc3RhdGUt
Y2hhbmdlLW5vdGlmaWNhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c2NyaXB0LWV4ZWN1dGlvbi1zdGF0ZS1jaGFuZ2Utbm90aWZpY2F0aW9uLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTE1NThiMS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc2NyaXB0LWV4ZWN1dGlvbi1zdGF0ZS1jaGFuZ2Utbm90aWZpY2F0
aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotVGVzdHMgdGhh
dCB3aGVuZXZlciBTY3JpcHQgRXhlY3V0aW9uIHN0YXRlIGlzIGNoYW5nZWQgb3V0c2lkZSBpbnNw
ZWN0b3IsIGl0cyBub3RpZmllZCB0byB0aGUgSW5zcGVjdG9yIGZyb250LWVuZC4KLQotUmVnaXN0
ZXJlZCBQYWdlRGlzcGF0Y2hlci5zY3JpcHRzRW5hYmxlZCgpCi1ydW5uaW5nIGRpc2FibGVKYXZh
U2NyaXB0VGVzdC4uLgotUGFnZURpc3BhdGNoZXIuc2NyaXB0c0VuYWJsZWQgc2hvdWxkIGJlIGlu
dm9rZWQgd2l0aCBpc0VuYWJsZWQ9ZmFsc2UKLXJ1bm5pbmcgZW5hYmxlSmF2YVNjcmlwdFRlc3Qu
Li4KLVBhZ2VEaXNwYXRjaGVyLnNjcmlwdHNFbmFibGVkIHNob3VsZCBiZSBpbnZva2VkIHdpdGgg
aXNFbmFibGVkPXRydWUKLUZpbmlzaGVkIHZlcmlmaWNhdGlvbi4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3NjcmlwdC1leGVjdXRpb24tc3RhdGUtY2hhbmdlLW5vdGlmaWNh
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3NjcmlwdC1leGVjdXRpb24tc3RhdGUt
Y2hhbmdlLW5vdGlmaWNhdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
NGYyYmQ4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zY3JpcHQtZXhlY3V0
aW9uLXN0YXRlLWNoYW5nZS1ub3RpZmljYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU0
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24g
ZW5hYmxlSmF2YVNjcmlwdEZvclBhZ2UoKQotewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEphdmFTY3JpcHRF
bmFibGVkIiwgdHJ1ZSk7Ci19Ci0KLWZ1bmN0aW9uIGRpc2FibGVKYXZhU2NyaXB0Rm9yUGFnZSgp
Ci17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0SmF2YVNjcmlwdEVuYWJsZWQiLCBmYWxzZSk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9uIHNjcmlwdHNFbmFibGVkKGlzRW5hYmxlZCkK
LSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJQYWdlRGlzcGF0Y2hlci5z
Y3JpcHRzRW5hYmxlZCBzaG91bGQgYmUgaW52b2tlZCB3aXRoIGlzRW5hYmxlZD0iICsgaXNFbmFi
bGVkKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkaXNhYmxlSmF2YVNjcmlwdFRlc3QoKQotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJ1bm5pbmcgZGlzYWJsZUphdmFT
Y3JpcHRUZXN0Li4uIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImRp
c2FibGVKYXZhU2NyaXB0Rm9yUGFnZSgpOyIsIGVuYWJsZUphdmFTY3JpcHRUZXN0KTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBlbmFibGVKYXZhU2NyaXB0VGVzdCgpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicnVubmluZyBlbmFibGVKYXZhU2NyaXB0VGVzdC4uLiIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJlbmFibGVKYXZhU2NyaXB0
Rm9yUGFnZSgpOyIsIGZpbmlzaCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZmluaXNoKCkKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGaW5pc2hlZCB2ZXJpZmljYXRp
b24uIikKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAg
ICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnBy
b3RvdHlwZSwgInNjcmlwdHNFbmFibGVkIiwgc2NyaXB0c0VuYWJsZWQsIHRydWUpOwotICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZWdpc3RlcmVkIFBhZ2VEaXNwYXRjaGVyLnNjcmlwdHNF
bmFibGVkKCkiKTsKLSAgICBkaXNhYmxlSmF2YVNjcmlwdFRlc3QoKTsKLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IHdoZW5l
dmVyIFNjcmlwdCBFeGVjdXRpb24gc3RhdGUgaXMgY2hhbmdlZCBvdXRzaWRlIGluc3BlY3Rvciwg
aXRzIG5vdGlmaWVkIHRvIHRoZSBJbnNwZWN0b3IgZnJvbnQtZW5kLjwvcD4KLTwvYm9keT4KLTwv
aHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3NuaXBwZXQtc3RvcmFn
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc25pcHBldC1zdG9yYWdlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmNjY2Q5ZS4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc25pcHBldC1zdG9yYWdlLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLVRlc3RzIHNuaXBwZXQgc3RvcmFnZS4K
LQotRHVtcGluZyBzYXZlZCBzbmlwcGV0czoKLUR1bXBpbmcgc3RvcmFnZSBzbmlwcGV0czoKLVNu
aXBwZXQgY3JlYXRlZC4KLUR1bXBpbmcgc2F2ZWQgc25pcHBldHM6Ci0gICAgU25pcHBldDogaWQg
PSAxLCBuYW1lID0gJ1Rlc3Qgc25pcHBldCAjMScsIGNvbnRlbnQgPSAnJy4KLUR1bXBpbmcgc3Rv
cmFnZSBzbmlwcGV0czoKLVNuaXBwZXQgcmVuYW1lZC4KLUR1bXBpbmcgc2F2ZWQgc25pcHBldHM6
Ci0gICAgU25pcHBldDogaWQgPSAxLCBuYW1lID0gJ05ldyBzbmlwcGV0IG5hbWUnLCBjb250ZW50
ID0gJycuCi1EdW1waW5nIHN0b3JhZ2Ugc25pcHBldHM6Ci1TbmlwcGV0IGNvbnRlbnQgY2hhbmdl
ZC4KLUR1bXBpbmcgc2F2ZWQgc25pcHBldHM6Ci0gICAgU25pcHBldDogaWQgPSAxLCBuYW1lID0g
J05ldyBzbmlwcGV0IG5hbWUnLCBjb250ZW50ID0gJ05ldyBzbmlwcGV0IGNvbnRlbnQnLgotRHVt
cGluZyBzdG9yYWdlIHNuaXBwZXRzOgotQW5vdGhlciBzbmlwcGV0IGNyZWF0ZWQuCi1EdW1waW5n
IHNhdmVkIHNuaXBwZXRzOgotICAgIFNuaXBwZXQ6IGlkID0gMSwgbmFtZSA9ICdOZXcgc25pcHBl
dCBuYW1lJywgY29udGVudCA9ICdOZXcgc25pcHBldCBjb250ZW50Jy4KLSAgICBTbmlwcGV0OiBp
ZCA9IDIsIG5hbWUgPSAnVGVzdCBzbmlwcGV0ICMyJywgY29udGVudCA9ICcnLgotRHVtcGluZyBz
dG9yYWdlIHNuaXBwZXRzOgotU25pcHBldCBkZWxldGVkLgotRHVtcGluZyBzYXZlZCBzbmlwcGV0
czoKLSAgICBTbmlwcGV0OiBpZCA9IDIsIG5hbWUgPSAnVGVzdCBzbmlwcGV0ICMyJywgY29udGVu
dCA9ICcnLgotRHVtcGluZyBzdG9yYWdlIHNuaXBwZXRzOgotQW5vdGhlciBzbmlwcGV0IGRlbGV0
ZWQuCi1EdW1waW5nIHNhdmVkIHNuaXBwZXRzOgotRHVtcGluZyBzdG9yYWdlIHNuaXBwZXRzOgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc25pcHBldC1zdG9yYWdlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc25pcHBldC1zdG9yYWdlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQwY2QzOGEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3NuaXBwZXQtc3RvcmFnZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17
Ci0gICAgdmFyIHNldHRpbmdQcmVmaXggPSAidGVzdCI7Ci0gICAgdmFyIG5hbWVQcmVmaXggPSAi
VGVzdCBzbmlwcGV0ICMiOwotICAgIHZhciBzbmlwcGV0U3RvcmFnZSA9IG5ldyBXZWJJbnNwZWN0
b3IuU25pcHBldFN0b3JhZ2Uoc2V0dGluZ1ByZWZpeCwgbmFtZVByZWZpeCk7Ci0gICAgc25pcHBl
dFN0b3JhZ2UucmVzZXQoKTsKLQotICAgIGZ1bmN0aW9uIGR1bXBTbmlwcGV0cyhzbmlwcGV0cykK
LSAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc25pcHBldHMubGVuZ3RoOyArK2kp
IHsKLSAgICAgICAgICAgIHZhciBzbmlwcGV0ID0gc25pcHBldHNbaV07Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIFNuaXBwZXQ6IGlkID0gIiArIHNuaXBwZXQuaWQg
KyAiLCBuYW1lID0gJyIgKyBzbmlwcGV0Lm5hbWUgKyAiJywgY29udGVudCA9ICciICsgc25pcHBl
dC5jb250ZW50ICsgIicuIik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1w
U2F2ZWRTbmlwcGV0cygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
RHVtcGluZyBzYXZlZCBzbmlwcGV0czoiKTsKLSAgICAgICAgZHVtcFNuaXBwZXRzKHNuaXBwZXRT
dG9yYWdlLl9zbmlwcGV0c1NldHRpbmcuZ2V0KCkpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1
bXBTdG9yYWdlU25pcHBldHMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkR1bXBpbmcgc3RvcmFnZSBzbmlwcGV0czoiKTsKLSAgICAgICAgZHVtcFNuaXBwZXRzKHNu
aXBwZXRTdG9yYWdlLnNuaXBwZXRzKTsKLSAgICB9Ci0KLSAgICBkdW1wU2F2ZWRTbmlwcGV0cygp
OwotICAgIGR1bXBTdG9yYWdlU25pcHBldHMoKTsKLSAgICB2YXIgc25pcHBldCA9IHNuaXBwZXRT
dG9yYWdlLmNyZWF0ZVNuaXBwZXQoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25p
cHBldCBjcmVhdGVkLiIpOwotICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7Ci0gICAgZHVtcFN0b3Jh
Z2VTbmlwcGV0cygpOwotICAgIHNuaXBwZXQubmFtZSA9ICJOZXcgc25pcHBldCBuYW1lIjsKLSAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCByZW5hbWVkLiIpOwotICAgIGR1bXBT
YXZlZFNuaXBwZXRzKCk7Ci0gICAgZHVtcFN0b3JhZ2VTbmlwcGV0cygpOwotICAgIHNuaXBwZXQu
Y29udGVudCA9ICJOZXcgc25pcHBldCBjb250ZW50IjsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiU25pcHBldCBjb250ZW50IGNoYW5nZWQuIik7Ci0gICAgZHVtcFNhdmVkU25pcHBldHMo
KTsKLSAgICBkdW1wU3RvcmFnZVNuaXBwZXRzKCk7Ci0gICAgdmFyIGFub3RoZXJTbmlwcGV0ID0g
c25pcHBldFN0b3JhZ2UuY3JlYXRlU25pcHBldCgpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJBbm90aGVyIHNuaXBwZXQgY3JlYXRlZC4iKTsKLSAgICBkdW1wU2F2ZWRTbmlwcGV0cygp
OwotICAgIGR1bXBTdG9yYWdlU25pcHBldHMoKTsKLSAgICBzbmlwcGV0U3RvcmFnZS5kZWxldGVT
bmlwcGV0KHNuaXBwZXQpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IGRl
bGV0ZWQuIik7Ci0gICAgZHVtcFNhdmVkU25pcHBldHMoKTsKLSAgICBkdW1wU3RvcmFnZVNuaXBw
ZXRzKCk7Ci0gICAgc25pcHBldFN0b3JhZ2UuZGVsZXRlU25pcHBldChhbm90aGVyU25pcHBldCk7
Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFub3RoZXIgc25pcHBldCBkZWxldGVkLiIp
OwotICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7Ci0gICAgZHVtcFN0b3JhZ2VTbmlwcGV0cygpOwot
Ci0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX07Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHNuaXBwZXQgc3RvcmFnZS48
L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3RvcmFnZS1wYW5lbC1kb20tc3RvcmFnZS1lbXB0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3RvcmFnZS1wYW5lbC1kb20tc3RvcmFnZS1lbXB0eS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliY2I5NTIuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2UtcGFuZWwtZG9tLXN0b3JhZ2UtZW1wdHktZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotVGVzdCB0aGF0IHN0b3JhZ2Ug
cGFuZWwgaXMgcHJlc2VudCBhbmQgdGhhdCBpdCBjb250YWlucyBubyBkYXRhIGZvciBsb2NhbCBh
bmQgc2Vzc2lvbiBET00gc3RvcmFnZXMuCi0KLVBvcHVsYXRlZCBsb2NhbCBhbmQgc2Vzc2lvbiBz
dG9yYWdlCi1EaWQgc2hvdzogTG9jYWwgc3RvcmFnZQotRGlkIHNob3c6IFNlc3Npb24gc3RvcmFn
ZQotTG9jYWwgc3RvcmFnZSBjb250ZW50OiAKLUtleVZhbHVlIHBhaXJzOiAKLVNlc3Npb24gc3Rv
cmFnZSBjb250ZW50OiAKLUtleVZhbHVlIHBhaXJzOiAKLURPTkUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2UtcGFuZWwtZG9tLXN0b3JhZ2UtZW1wdHkuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlLXBhbmVsLWRvbS1zdG9yYWdlLWVtcHR5Lmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0YjdmMjYuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2UtcGFuZWwtZG9tLXN0b3JhZ2UtZW1wdHkuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gY2xlYXJET01TdG9yYWdlKCkKLXsKLSAgICBsb2NhbFN0
b3JhZ2UuY2xlYXIoKTsKLSAgICBzZXNzaW9uU3RvcmFnZS5jbGVhcigpOwotfQotCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJyZXNvdXJjZXMiKTsKLQot
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImNsZWFyRE9NU3RvcmFnZSgpIiwgZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJQb3B1bGF0
ZWQgbG9jYWwgYW5kIHNlc3Npb24gc3RvcmFnZSIpOwotICAgIH0pOwotICAgIGZ1bmN0aW9uIG5h
bWUoc3RvcmFnZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdG9yYWdlLmlzTG9jYWxTdG9yYWdl
ID8gIkxvY2FsIHN0b3JhZ2UiIDogIlNlc3Npb24gc3RvcmFnZSI7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gZHVtcERhdGFHcmlkQ29udGVudChkYXRhR3JpZCkKLSAgICB7Ci0gICAgICAgIHZhciBu
b2RlcyA9IGRhdGFHcmlkLnJvb3ROb2RlKCkuY2hpbGRyZW47Ci0gICAgICAgIHZhciByb3dzID0g
W107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgICAgIHZhciBub2RlID0gbm9kZXNbaV07Ci0gICAgICAgICAgICByb3dzLnB1c2gobm9k
ZS5fZGF0YS5rZXkgKyBub2RlLl9kYXRhLnZhbHVlKTsKLSAgICAgICAgfQotICAgICAgICByb3dz
LnNvcnQoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIktleVZhbHVlIHBhaXJz
OiAiICsgcm93cy5qb2luKCcnKSk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRl
clBlbmRpbmdEaXNwYXRjaGVzKGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgc3RvcmFnZXMgPSBX
ZWJJbnNwZWN0b3IuZG9tU3RvcmFnZU1vZGVsLnN0b3JhZ2VzKCk7Ci0gICAgICAgIGlmIChzdG9y
YWdlcykgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdG9yYWdlcy5sZW5ndGg7
IGkrKykgewotICAgICAgICAgICAgICAgIHZhciBzdG9yYWdlID0gc3RvcmFnZXNbaV07Ci0gICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuX3Nob3dET01TdG9yYWdl
KHN0b3JhZ2UpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEaWQg
c2hvdzogIiArIG5hbWUoc3RvcmFnZSkpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGQUlMOiBubyBET00gc3RvcmFn
ZXMgZm91bmQuIik7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNw
YXRjaGVzKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmFyIHN0b3JhZ2VzID0gV2ViSW5zcGVj
dG9yLmRvbVN0b3JhZ2VNb2RlbC5zdG9yYWdlcygpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBzdG9yYWdlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgIHZhciBzdG9y
YWdlID0gc3RvcmFnZXNbaV07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQobmFtZShzdG9yYWdlKSArICIgY29udGVudDogIik7Ci0gICAgICAgICAgICAgICAgdmFyIHZp
ZXcgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5fZG9tU3RvcmFnZVZpZXdzLmdldChz
dG9yYWdlKTsKLSAgICAgICAgICAgICAgICBkdW1wRGF0YUdyaWRDb250ZW50KHZpZXcuX2RhdGFH
cmlkKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJET05FIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdCB0aGF0IHN0b3JhZ2UgcGFuZWwgaXMgcHJlc2VudCBh
bmQgdGhhdCBpdCBjb250YWlucyBubyBkYXRhIGZvciBsb2NhbCBhbmQgc2Vzc2lvbiBET00gc3Rv
cmFnZXMuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdG9yYWdlLXBhbmVsLWRvbS1zdG9yYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlLXBhbmVsLWRvbS1zdG9yYWdlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTMzMmExZi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3RvcmFnZS1wYW5lbC1kb20tc3RvcmFnZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1UZXN0IHRoYXQgc3RvcmFnZSBwYW5lbCBp
cyBwcmVzZW50IGFuZCB0aGF0IGl0IGNvbnRhaW5zIGNvcnJlY3QgZGF0YSBmb3IgbG9jYWwgYW5k
IHNlc3Npb24gRE9NIHN0b3JhZ2VzLgotCi1Qb3B1bGF0ZWQgbG9jYWwgYW5kIHNlc3Npb24gc3Rv
cmFnZQotRGlkIHNob3c6IExvY2FsIHN0b3JhZ2UKLURpZCBzaG93OiBTZXNzaW9uIHN0b3JhZ2UK
LUxvY2FsIHN0b3JhZ2UgY29udGVudDogCi1LZXlWYWx1ZSBwYWlyczogYTA9dmFsdWUwLCBhMT12
YWx1ZTEsIGEyPXZhbHVlMiwgYTM9dmFsdWUzLCBhND12YWx1ZTQsIGE1PXZhbHVlNSwgYTY9dmFs
dWU2LCBhNz12YWx1ZTcsIGE4PXZhbHVlOCwgYTk9dmFsdWU5LCByZXNvdXJjZS1oaXN0b3J5e30K
LVNlc3Npb24gc3RvcmFnZSBjb250ZW50OiAKLUtleVZhbHVlIHBhaXJzOiBiMD12YWx1ZTEwLCBi
MT12YWx1ZTExLCBiMj12YWx1ZTEyLCBiMz12YWx1ZTEzLCBiND12YWx1ZTE0LCBiNT12YWx1ZTE1
LCBiNj12YWx1ZTE2LCBiNz12YWx1ZTE3LCBiOD12YWx1ZTE4LCBiOT12YWx1ZTE5LCAKLURPTkUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2UtcGFuZWwtZG9tLXN0
b3JhZ2UtdXBkYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdl
LXBhbmVsLWRvbS1zdG9yYWdlLXVwZGF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDE0NDkxZTAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0b3JhZ2UtcGFuZWwtZG9tLXN0b3JhZ2UtdXBkYXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMxICswLDAgQEAKLVRlc3QgdGhhdCBzdG9yYWdlIHBhbmVsIGlzIHByZXNlbnQg
YW5kIHRoYXQgaXQgY29udGFpbnMgY29ycmVjdCBkYXRhIHdoZW5ldmVyIGxvY2FsU3RvcmFnZSBp
cyB1cGRhdGVkLgotCi0KLVJ1bm5pbmc6IGluaXRpYWxpemUKLUluaXRpYWxpemVkIGxvY2FsU3Rv
cmFnZSBieSBjbGVhcmluZyBlbnRyaWVzCi0KLVJ1bm5pbmc6IHVwZGF0ZUxvY2FsU3RvcmFnZVZp
ZXcKLVJlc291cmNlIFBhbmVsIHdpdGggbG9jYWxTdG9yYWdlIHZpZXcgdXBkYXRlZAotCi1SdW5u
aW5nOiBhZGRJdGVtVGVzdAotYWRkSXRlbSgnYTEnLCc9dmFsdWUxJykKLUtleVZhbHVlIHBhaXJz
OiBbYTE9dmFsdWUxXQotYWRkSXRlbSgnYTInLCc9dmFsdWUyJykKLUtleVZhbHVlIHBhaXJzOiBb
YTE9dmFsdWUxLGEyPXZhbHVlMl0KLWFkZEl0ZW0oJ2EzJywnPXZhbHVlMycpCi1LZXlWYWx1ZSBw
YWlyczogW2ExPXZhbHVlMSxhMj12YWx1ZTIsYTM9dmFsdWUzXQotYWRkSXRlbSgnYTQnLCc9dmFs
dWU0JykKLUtleVZhbHVlIHBhaXJzOiBbYTE9dmFsdWUxLGEyPXZhbHVlMixhMz12YWx1ZTMsYTQ9
dmFsdWU0XQotYWRkSXRlbSgnYTUnLCc9dmFsdWU1JykKLUtleVZhbHVlIHBhaXJzOiBbYTE9dmFs
dWUxLGEyPXZhbHVlMixhMz12YWx1ZTMsYTQ9dmFsdWU0LGE1PXZhbHVlNV0KLQotUnVubmluZzog
cmVtb3ZlSXRlbVRlc3QKLXJlbW92ZUl0ZW0oJ2E1JykKLUtleVZhbHVlIHBhaXJzOiBbYTE9dmFs
dWUxLGEyPXZhbHVlMixhMz12YWx1ZTMsYTQ9dmFsdWU0XQotcmVtb3ZlSXRlbSgnYTQnKQotS2V5
VmFsdWUgcGFpcnM6IFthMT12YWx1ZTEsYTI9dmFsdWUyLGEzPXZhbHVlM10KLQotUnVubmluZzog
Y2xlYXJUZXN0Ci1jbGVhcigpCi1LZXlWYWx1ZSBwYWlyczogW10KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2UtcGFuZWwtZG9tLXN0b3JhZ2UtdXBkYXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3RvcmFnZS1wYW5lbC1kb20tc3RvcmFnZS11cGRhdGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhkY2FkOS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3RvcmFnZS1wYW5lbC1kb20tc3RvcmFnZS11cGRhdGUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE3MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBhZGRJdGVtKGtleSx2YWx1ZSkKLXsKLSAgICBsb2Nh
bFN0b3JhZ2Uuc2V0SXRlbShrZXksdmFsdWUpOwotfQotCi1mdW5jdGlvbiByZW1vdmVJdGVtKGtl
eSkKLXsKLSAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpOwotfQotCi1mdW5jdGlvbiBj
bGVhcigpCi17Ci0gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIHZhciBzdG9yYWdlID0gbnVsbDsKLSAgICB2YXIgcm9vdE5vZGUgPSBudWxsOwot
ICAgIHZhciBjb3VudCA9IDE7Ci0KLSAgICAvLyBSZXNvdXJjZXMgcGFuZWwgbXVzdCBiZSB2aXNp
YmxlCi0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicmVzb3VyY2VzIik7Ci0KLSAgICBmdW5j
dGlvbiBkdW1wRGF0YUdyaWQoKQotICAgIHsKLSAgICAgICAgdmFyIG5vZGVzID0gcm9vdE5vZGUu
Y2hpbGRyZW47Ci0gICAgICAgIHZhciByb3dzID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbm9kZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBub2RlID0gbm9kZXNb
aV07Ci0gICAgICAgICAgICBpZiAobm9kZS5fZGF0YS5rZXkubGVuZ3RoKQotICAgICAgICAgICAg
ICAgIHJvd3MucHVzaChub2RlLl9kYXRhLmtleSArIG5vZGUuX2RhdGEudmFsdWUpOwotICAgICAg
ICB9Ci0gICAgICAgIHJvd3Muc29ydCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiS2V5VmFsdWUgcGFpcnM6IFsiICsgcm93cy5qb2luKCkgKyAiXSIpOwotICAgIH0KLQotICAg
IHZhciBuZXh0RE9NU3RvcmFnZUNsZWFySGFuZGxlciA9IG51bGw7Ci0gICAgSW5zcGVjdG9yVGVz
dC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlRGlzcGF0Y2hlci5wcm90b3R5cGUs
ICJkb21TdG9yYWdlSXRlbXNDbGVhcmVkIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmIChuZXh0
RE9NU3RvcmFnZUNsZWFySGFuZGxlcikgewotICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSBuZXh0
RE9NU3RvcmFnZUNsZWFySGFuZGxlcjsKLSAgICAgICAgICAgIG5leHRET01TdG9yYWdlQ2xlYXJI
YW5kbGVyID0gbnVsbDsKLSAgICAgICAgICAgIGhhbmRsZXIoKTsKLSAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRVJST1I6IGRvbVN0b3JhZ2VJdGVt
c0NsZWFyZWQgZXZlbnQgd2l0aG91dCBoYW5kbGVyIik7Ci0gICAgfSwgdHJ1ZSk7Ci0KLSAgICB2
YXIgbmV4dERPTVN0b3JhZ2VBZGRIYW5kbGVyID0gbnVsbDsKLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRv
bVN0b3JhZ2VJdGVtQWRkZWQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgaWYgKG5leHRET01TdG9y
YWdlQWRkSGFuZGxlcikgewotICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSBuZXh0RE9NU3RvcmFn
ZUFkZEhhbmRsZXI7Ci0gICAgICAgICAgICBuZXh0RE9NU3RvcmFnZUFkZEhhbmRsZXIgPSBudWxs
OwotICAgICAgICAgICAgaGFuZGxlcigpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFUlJPUjogZG9tU3RvcmFnZUl0ZW1BZGRlZCBldmVudCB3
aXRob3V0IGhhbmRsZXIiKTsKLSAgICB9LCB0cnVlKTsKLQotICAgIHZhciBuZXh0RE9NU3RvcmFn
ZVJlbW92ZUhhbmRsZXIgPSBudWxsOwotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZURpc3BhdGNoZXIucHJvdG90eXBlLCAiZG9tU3RvcmFnZUl0ZW1S
ZW1vdmVkIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmIChuZXh0RE9NU3RvcmFnZVJlbW92ZUhh
bmRsZXIpIHsKLSAgICAgICAgICAgIHZhciBoYW5kbGVyID0gbmV4dERPTVN0b3JhZ2VSZW1vdmVI
YW5kbGVyOwotICAgICAgICAgICAgbmV4dERPTVN0b3JhZ2VSZW1vdmVIYW5kbGVyID0gbnVsbDsK
LSAgICAgICAgICAgIGhhbmRsZXIoKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiRVJST1I6IGRvbVN0b3JhZ2VJdGVtUmVtb3ZlZCBldmVudCB3
aXRob3V0IGhhbmRsZXIiKTsKLSAgICB9LCB0cnVlKTsKLQotICAgIEluc3BlY3RvclRlc3QucnVu
VGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gaW5pdGlhbGl6ZShuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICBmdW5jdGlvbiBkaWRDbGVhcihyZXN1bHQpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkluaXRpYWxpemVkIGxvY2Fs
U3RvcmFnZSBieSBjbGVhcmluZyBlbnRyaWVzIik7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBuZXh0RE9NU3RvcmFnZUNsZWFySGFuZGxlciA9
IGRpZENsZWFyOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJj
bGVhcigpIik7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdXBkYXRlTG9jYWxTdG9y
YWdlVmlldyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBsb2NhbFN0b3Jh
Z2VWaWV3VXBkYXRlZCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcm9vdE5vZGUg
PSBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5fZG9tU3RvcmFnZVZpZXdzLmdldChzdG9y
YWdlKS5fZGF0YUdyaWQucm9vdE5vZGUoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiUmVzb3VyY2UgUGFuZWwgd2l0aCBsb2NhbFN0b3JhZ2UgdmlldyB1cGRhdGVk
Iik7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICB2YXIgZGlkRmluZFN0b3JhZ2UgPSBmYWxzZTsKLQotICAgICAgICAgICAgdmFyIHN0b3JhZ2Vz
ID0gV2ViSW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5zdG9yYWdlcygpOwotICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBzdG9yYWdlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
ICAgIHN0b3JhZ2UgPSBzdG9yYWdlc1tpXTsKLSAgICAgICAgICAgICAgICBpZiAoc3RvcmFnZS5p
c0xvY2FsU3RvcmFnZSkgewotICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxz
LnJlc291cmNlcy5fc2hvd0RPTVN0b3JhZ2Uoc3RvcmFnZSk7Ci0gICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhsb2NhbFN0b3JhZ2VWaWV3
VXBkYXRlZCk7Ci0gICAgICAgICAgICAgICAgICAgIGRpZEZpbmRTdG9yYWdlID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBpZiAoIWRpZEZpbmRTdG9yYWdlKQotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJkaWQgbm90IGZpbmQgbG9jYWwgc3RvcmFnZSIpOwotICAg
ICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIGFkZEl0ZW1UZXN0KG5leHQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGZ1bmN0aW9uIHZpZXdVcGRhdGVkQWZ0ZXJBZGRpdGlvbigpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgcm9vdE5vZGUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnJl
c291cmNlcy5fZG9tU3RvcmFnZVZpZXdzLmdldChzdG9yYWdlKS5fZGF0YUdyaWQucm9vdE5vZGUo
KTsKLSAgICAgICAgICAgICAgICBkdW1wRGF0YUdyaWQoKTsKLSAgICAgICAgICAgICAgICBpZiAo
Y291bnQgPCA2KQotICAgICAgICAgICAgICAgICAgICBhZGRJdGVtVGVzdChuZXh0KTsKLSAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgbmV4dERPTVN0b3JhZ2VBZGRIYW5kbGVyID0gdmlld1VwZGF0ZWRB
ZnRlckFkZGl0aW9uOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiYWRk
SXRlbSgnYSIrY291bnQrIicsJz12YWx1ZSIrY291bnQrIicpIik7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJhZGRJdGVtKCdhIitjb3VudCsiJywnPXZhbHVlIitj
b3VudCsiJykiKTsKLSAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gcmVtb3ZlSXRlbVRlc3QobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZnVu
Y3Rpb24gdmlld1VwZGF0ZWRBZnRlclJlbW92YWwoKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHJvb3ROb2RlID0gV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuX2RvbVN0b3Jh
Z2VWaWV3cy5nZXQoc3RvcmFnZSkuX2RhdGFHcmlkLnJvb3ROb2RlKCk7Ci0gICAgICAgICAgICAg
ICAgZHVtcERhdGFHcmlkKCk7Ci0gICAgICAgICAgICAgICAgaWYgKGNvdW50ID4gNCkKLSAgICAg
ICAgICAgICAgICAgICAgcmVtb3ZlSXRlbVRlc3QobmV4dCk7Ci0gICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIG5leHRET01TdG9yYWdlUmVtb3ZlSGFuZGxlciA9IHZpZXdVcGRhdGVkQWZ0ZXJSZW1vdmFs
OwotCi0gICAgICAgICAgICAtLWNvdW50OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoInJlbW92ZUl0ZW0oJ2EiK2NvdW50KyInKSIpOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZSgicmVtb3ZlSXRlbSgnYSIrY291bnQrIicpIik7Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gY2xlYXJUZXN0KG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHZpZXdVcGRhdGVkQWZ0ZXJDbGVhcigpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgcm9vdE5vZGUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5f
ZG9tU3RvcmFnZVZpZXdzLmdldChzdG9yYWdlKS5fZGF0YUdyaWQucm9vdE5vZGUoKTsKLSAgICAg
ICAgICAgICAgICBkdW1wRGF0YUdyaWQoKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIG5leHRET01TdG9yYWdlQ2xlYXJIYW5kbGVyID0gdmll
d1VwZGF0ZWRBZnRlckNsZWFyOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiY2xlYXIoKSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgi
Y2xlYXIoKSIpOwotICAgICAgICB9Ci0gICAgXSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3QgdGhhdCBzdG9yYWdlIHBhbmVsIGlzIHBy
ZXNlbnQgYW5kIHRoYXQgaXQgY29udGFpbnMgY29ycmVjdCBkYXRhIHdoZW5ldmVyIGxvY2FsU3Rv
cmFnZSBpcyB1cGRhdGVkLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlLXBhbmVsLWRvbS1zdG9yYWdlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3RvcmFnZS1wYW5lbC1kb20tc3RvcmFnZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlZWM3YmQxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdG9yYWdlLXBhbmVsLWRvbS1zdG9yYWdlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0
aW9uIHBvcHVsYXRlRE9NU3RvcmFnZSgpCi17Ci0gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7Ci0g
ICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTsKLSAgICBsb2NhbFN0b3JhZ2VbInJlc291cmNlLWhp
c3RvcnkiXSA9ICJ7fSI7IC8vIFRoaXMgbWl0aWdhdGVzIGZpbGU6Ly8gbG9jYWxzdG9yYWdlIGNv
bmZsaWN0LgotICAgIC8vIEZpbGwgbG9jYWwgYW5kIHNlc3Npb24gc3RvcmFnZSB3aXRoIHNvbWUg
cmFuZG9tIHN0cmluZ3MuCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7Ci0gICAg
ICAgIGxvY2FsU3RvcmFnZVsiYSIgKyBpXSA9ICI9dmFsdWUiICsgaSArICIsICI7Ci0gICAgICAg
IHNlc3Npb25TdG9yYWdlWyJiIiArIGldID0gIj12YWx1ZSIgKyAoaSsxMCkgKyAiLCAiOwotICAg
IH0KLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgi
cmVzb3VyY2VzIik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJwb3B1bGF0
ZURPTVN0b3JhZ2UoKSIsIGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiUG9wdWxhdGVkIGxvY2FsIGFuZCBzZXNzaW9uIHN0b3JhZ2UiKTsKLSAgICB9
KTsKLSAgICBmdW5jdGlvbiBuYW1lKHN0b3JhZ2UpCi0gICAgewotICAgICAgICByZXR1cm4gc3Rv
cmFnZS5pc0xvY2FsU3RvcmFnZSA/ICJMb2NhbCBzdG9yYWdlIiA6ICJTZXNzaW9uIHN0b3JhZ2Ui
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1bXBEYXRhR3JpZENvbnRlbnQoZGF0YUdyaWQpCi0g
ICAgewotICAgICAgICB2YXIgbm9kZXMgPSBkYXRhR3JpZC5yb290Tm9kZSgpLmNoaWxkcmVuOwot
ICAgICAgICB2YXIgcm93cyA9IFtdOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IG5vZGVzW2ldOwotICAgICAg
ICAgICAgcm93cy5wdXNoKG5vZGUuX2RhdGEua2V5ICsgbm9kZS5fZGF0YS52YWx1ZSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgcm93cy5zb3J0KCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJLZXlWYWx1ZSBwYWlyczogIiArIHJvd3Muam9pbignJykpOwotICAgIH0KLQotICAgIElu
c3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhmdW5jdGlvbigpIHsKLSAgICAg
ICAgdmFyIHN0b3JhZ2VzID0gV2ViSW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5zdG9yYWdlcygp
OwotICAgICAgICBpZiAoc3RvcmFnZXMpIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgc3RvcmFnZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICB2YXIgc3RvcmFnZSA9
IHN0b3JhZ2VzW2ldOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3Vy
Y2VzLl9zaG93RE9NU3RvcmFnZShzdG9yYWdlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiRGlkIHNob3c6ICIgKyBuYW1lKHN0b3JhZ2UpKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
RkFJTDogbm8gRE9NIHN0b3JhZ2VzIGZvdW5kLiIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
cnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHZhciBz
dG9yYWdlcyA9IFdlYkluc3BlY3Rvci5kb21TdG9yYWdlTW9kZWwuc3RvcmFnZXMoKTsKLSAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RvcmFnZXMubGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICAgICAgICB2YXIgc3RvcmFnZSA9IHN0b3JhZ2VzW2ldOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KG5hbWUoc3RvcmFnZSkgKyAiIGNvbnRlbnQ6ICIpOwotICAg
ICAgICAgICAgICAgIHZhciB2aWV3ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuX2Rv
bVN0b3JhZ2VWaWV3cy5nZXQoc3RvcmFnZSk7Ci0gICAgICAgICAgICAgICAgZHVtcERhdGFHcmlk
Q29udGVudCh2aWV3Ll9kYXRhR3JpZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiRE9ORSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3QgdGhhdCBzdG9yYWdl
IHBhbmVsIGlzIHByZXNlbnQgYW5kIHRoYXQgaXQgY29udGFpbnMgY29ycmVjdCBkYXRhIGZvciBs
b2NhbCBhbmQgc2Vzc2lvbiBET00gc3RvcmFnZXMuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLWlu
bGluZS1zdHlsZS1jc3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9hZGQtbmV3LXJ1bGUtaW5saW5lLXN0eWxlLWNzcC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDcwOTUwNmMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1bGUtaW5saW5lLXN0eWxlLWNzcC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1UZXN0cyB0aGF0IGFkZGluZyBhIG5ldyBy
dWxlIGRvZXMgbm90IGNyYXNoIHRoZSByZW5kZXJlciBhbmQgbW9kaWZ5aW5nIGFuIGlubGluZSBz
dHlsZSBkb2VzIG5vdCByZXBvcnQgZXJyb3JzIHdoZW4gZm9yYmlkZGVuIGJ5IENvbnRlbnQtU2Vj
dXJpdHktUG9saWN5LgotCi1UZXh0Ci0KLVJ1bm5pbmc6IHRlc3RTZXRVcAotCi1SdW5uaW5nOiB0
ZXN0QWRkUnVsZQotPT09IFJ1bGUgYWRkZWQgPT09Ci0jaW5zcGVjdGVkIHt9Ci1BZmZlY3RzIHNl
bGVjdGVkICgjaW5zcGVjdGVkKSBub2RlOiB0cnVlCi0KLVJ1bm5pbmc6IHRlc3RBZGRQcm9wZXJ0
eQotPT09IEFkZGVkIHJ1bGUgbW9kaWZpZWQgPT09Ci13aWR0aDogMTAwJTsKLT09PSBTZWxlY3Rv
ciBjaGFuZ2VkID09PQotYm9keSB7Ci0gICAgd2lkdGg6IDEwMCU7Ci19Ci1BZmZlY3RzIHNlbGVj
dGVkICgjaW5zcGVjdGVkKSBub2RlOiBmYWxzZQotCi1SdW5uaW5nOiB0ZXN0TW9kaWZ5SW5saW5l
U3R5bGUKLT09PSBJbmxpbmUgc3R5bGUgbW9kaWZpZWQgPT09Ci1mb250LXNpemU6IDE0cHg7Ci0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLWlu
bGluZS1zdHlsZS1jc3AuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvYWRkLW5l
dy1ydWxlLWlubGluZS1zdHlsZS1jc3AuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzY3NjU4NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2Fk
ZC1uZXctcnVsZS1pbmxpbmUtc3R5bGUtY3NwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjcg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9Ingtd2Via2l0LWNzcCIg
Y29udGVudD0ic3R5bGUtc3JjIGh0dHBzOi8vKjo0NDMiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBub2RlSWQ7Ci0gICAg
dmFyIHJ1bGU7Ci0KLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAg
IEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldFVw
KG5leHQpIHsKLSAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5
bGVzKCJpbnNwZWN0ZWQiLCBuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0
ZXN0QWRkUnVsZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgaWRUb0RPTU5vZGUg
PSBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuX2lkVG9ET01Ob2RlOwotICAgICAgICAgICAgZm9yICh2
YXIgaWQgaW4gaWRUb0RPTU5vZGUpIHsKLSAgICAgICAgICAgICAgICBub2RlID0gaWRUb0RPTU5v
ZGVbaWRdOwotICAgICAgICAgICAgICAgIGlmIChub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdl
dEF0dHJpYnV0ZSgiaWQiKSA9PT0gImluc3BlY3RlZCIpIHsKLSAgICAgICAgICAgICAgICAgICAg
bm9kZUlkID0gcGFyc2VJbnQoaWQsIDEwKTsKLSAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmNzc01vZGVsLmFkZFJ1bGUobm9kZUlkLCAiI2luc3BlY3RlZCIsIHN1Y2Nlc3NDYWxsYmFj
aywgZmFpbHVyZUNhbGxiYWNrKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdWNjZXNz
Q2FsbGJhY2sobmV3UnVsZSwgZG9lc0FmZmVjdFNlbGVjdGVkTm9kZSkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBydWxlID0gbmV3UnVsZTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiPT09IFJ1bGUgYWRkZWQgPT09Iik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocnVsZS5zZWxlY3RvclRleHQgKyAiIHsiICsgcnVsZS5z
dHlsZS5jc3NUZXh0ICsgIn0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiQWZmZWN0cyBzZWxlY3RlZCAoI2luc3BlY3RlZCkgbm9kZTogIiArIGRvZXNBZmZlY3RT
ZWxlY3RlZE5vZGUpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZnVuY3Rpb24gZmFpbHVyZUNhbGxiYWNrKCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiWyFdIEZhaWxlZCB0byBhZGQg
cnVsZS4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RBZGRQcm9w
ZXJ0eShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBydWxlLnN0eWxlLmFwcGVuZFByb3Bl
cnR5KCJ3aWR0aCIsICIxMDAlIiwgY2FsbGJhY2spOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBj
YWxsYmFjayhuZXdTdHlsZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiPT09IEFkZGVkIHJ1bGUgbW9kaWZpZWQgPT09Iik7Ci0gICAgICAg
ICAgICAgICAgaWYgKCFuZXdTdHlsZSkgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiWyFdIE5vIHZhbGlkIHJ1bGUgc3R5bGUgcmVjZWl2ZWQiKTsKLSAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBkdW1wUHJvcGVydGllcyhuZXdTdHls
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5zZXRSdWxlU2Vs
ZWN0b3IocnVsZS5pZCwgbm9kZUlkLCAiYm9keSIsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNh
bGxiYWNrKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjayhydWxlLCBkb2VzQWZmZWN0U2VsZWN0ZWROb2RlKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9
PT0gU2VsZWN0b3IgY2hhbmdlZCA9PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdChydWxlLnNlbGVjdG9yVGV4dCArICIgeyIgKyBydWxlLnN0eWxlLmNzc1RleHQg
KyAifSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZmZlY3Rz
IHNlbGVjdGVkICgjaW5zcGVjdGVkKSBub2RlOiAiICsgZG9lc0FmZmVjdFNlbGVjdGVkTm9kZSk7
Ci0KLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIGZhaWx1cmVDYWxsYmFjaygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlshXSBGYWlsZWQgdG8gY2hhbmdlIHNlbGVjdG9y
Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0TW9kaWZ5SW5saW5l
U3R5bGUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVs
LmdldElubGluZVN0eWxlc0FzeW5jKG5vZGVJZCwgc3R5bGVzQ2FsbGJhY2spOwotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBzdHlsZXNDYWxsYmFjayhpbmxpbmVTdHlsZSkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBpZiAoIWlubGluZVN0eWxlKSB7Ci0gICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaW5saW5lU3R5bGUuYXBwZW5k
UHJvcGVydHkoImZvbnQtc2l6ZSIsICIxNHB4IiwgYXBwZW5kQ2FsbGJhY2spOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBhcHBlbmRDYWxsYmFjayhuZXdTdHlsZSkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09
IElubGluZSBzdHlsZSBtb2RpZmllZCA9PT0iKTsKLSAgICAgICAgICAgICAgICBpZiAoIW5ld1N0
eWxlKSB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJObyB2
YWxpZCBpbmxpbmUgc3R5bGUgcmVjZWl2ZWQiKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGR1bXBQcm9wZXJ0aWVzKG5ld1N0eWxl
KTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICBdKTsKLQotICAgIGZ1bmN0aW9uIGR1bXBQcm9wZXJ0aWVzKHN0eWxlKQotICAgIHsKLSAgICAg
ICBpZiAoIXN0eWxlKQotICAgICAgICAgICByZXR1cm47Ci0gICAgICAgdmFyIGFsbFByb3BlcnRp
ZXMgPSBzdHlsZS5hbGxQcm9wZXJ0aWVzOwotICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxs
UHJvcGVydGllcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoYWxsUHJvcGVydGllc1tpXS50ZXh0KTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGFkZGluZyBhIG5l
dyBydWxlIGRvZXMgbm90IGNyYXNoIHRoZSByZW5kZXJlciBhbmQgbW9kaWZ5aW5nIGFuIGlubGlu
ZSBzdHlsZSBkb2VzIG5vdCByZXBvcnQgZXJyb3JzIHdoZW4gZm9yYmlkZGVuIGJ5IENvbnRlbnQt
U2VjdXJpdHktUG9saWN5LgotPC9wPgotCi08ZGl2IGlkPSJpbnNwZWN0ZWQiPlRleHQ8L2Rpdj4K
LQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9hZGQtbmV3LXJ1bGUtaW52YWxpZC1zZWxlY3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2FkZC1uZXctcnVsZS1pbnZhbGlkLXNlbGVjdG9yLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY3MjMxZi4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2FkZC1uZXctcnVsZS1pbnZhbGlkLXNl
bGVjdG9yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRlc3Rz
IHRoYXQgYWRkaW5nIGEgbmV3IHJ1bGUgd2l0aCBpbnZhbGlkIHNlbGVjdG9yIHdvcmtzIGFzIGV4
cGVjdGVkLgotCi1UZXh0Ci0KLVJ1bm5pbmc6IGluaXQKLQotUnVubmluZzoga2V5ZnJhbWVzUnVs
ZVNlbGVjdG9yCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBN
YXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2Vu
dCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2FkZC1uZXctcnVsZS1pbnZhbGlkLXNlbGVjdG9yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2FkZC1uZXctcnVsZS1pbnZhbGlkLXNlbGVj
dG9yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1MDE0NjEuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1bGUtaW52YWxpZC1z
ZWxlY3Rvci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIGlu
aXQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgi
ZWxlbWVudHMiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRG
b3JTdHlsZXMoImluc3BlY3RlZCIsIG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0
aW9uIGtleWZyYW1lc1J1bGVTZWxlY3RvcihuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICAv
LyBDbGljayAiQWRkIG5ldyBydWxlIi4KLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJhZGQtc3R5bGUtYnV0dG9uLXRlc3QtaWQiKS5jbGljaygpOwotICAgICAgICAgICAgdmFy
IHNlY3Rpb24gPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQYW5lcy5zdHls
ZXMuc2VjdGlvbnNbMF1bMl07Ci0gICAgICAgICAgICBzZWN0aW9uLl9zZWxlY3RvckVsZW1lbnQu
dGV4dENvbnRlbnQgPSAiQC13ZWJraXQta2V5ZnJhbWVzIHNoYWtlIjsKLSAgICAgICAgICAgIHNl
Y3Rpb24uX3NlbGVjdG9yRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRl
S2V5RXZlbnQoIkVudGVyIikpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBl
bmRpbmdEaXNwYXRjaGVzKGNhbGxiYWNrKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJh
Y2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNl
bGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAg
bmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0
PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQg
YWRkaW5nIGEgbmV3IHJ1bGUgd2l0aCBpbnZhbGlkIHNlbGVjdG9yIHdvcmtzIGFzIGV4cGVjdGVk
LgotPC9wPgotCi08ZGl2IGlkPSJpbnNwZWN0ZWQiPlRleHQ8L2Rpdj4KLQotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1
bGUtd2l0aC1zdHlsZS1hZnRlci1ib2R5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLXdpdGgtc3R5bGUtYWZ0ZXItYm9keS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyOWM2NDcuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1bGUtd2l0aC1zdHlsZS1hZnRl
ci1ib2R5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRlc3Rz
IHRoYXQgYWRkaW5nIGEgbmV3IHJ1bGUgd29ya3Mgd2hlbiB0aGVyZSBpcyBhIFNUWUxFIGVsZW1l
bnQgYWZ0ZXIgQk9EWS4gVElNRU9VVCBTSE9VTEQgTk9UIE9DQ1VSISBCdWcgMTExMjk5Ci0KLVRl
eHQKLUFmdGVyIGFkZGluZyBuZXcgcnVsZToKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7
ICgpCi1mb250LXNpemU6IDEycHg7Ci0KLVtleHBhbmRlZF0gW25vLWFmZmVjdF0gCi1pbnNwZWN0
ZWQgIHsgKGluc3BlY3Rvci1zdHlsZXNoZWV0OjEpCi1jb2xvcjogbWFyb29uOwotOiA7Ci0KLT09
PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotZGl2ICB7ICh1
c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLXdpdGgtc3R5bGUtYWZ0
ZXItYm9keS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1bGUt
d2l0aC1zdHlsZS1hZnRlci1ib2R5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDg1YmNjMTMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9hZGQt
bmV3LXJ1bGUtd2l0aC1zdHlsZS1hZnRlci1ib2R5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2
NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiBhZGRTdHlsZSgpCi17Ci0gICAgdmFyIHN0eWxlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic3R5bGUiKTsKLSAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQoc3R5bGUpOwotICAgIHN0eWxlLnNoZWV0Lmluc2VydFJ1bGUoImZvbyB7ZGlzcGxheTog
bm9uZTt9IiwgMCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5z
aG93UGFuZWwoImVsZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgi
YWRkU3R5bGUoKSIsIHN0ZXAwKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAwKCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIs
IHN0ZXAxKTsKLSAgICB9Ci0KLSAgICB2YXIgdHJlZUVsZW1lbnQ7Ci0gICAgdmFyIGhhc1Jlc291
cmNlQ2hhbmdlZDsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIC8vIENs
aWNrICJBZGQgbmV3IHJ1bGUiLgotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWRk
LXN0eWxlLWJ1dHRvbi10ZXN0LWlkIikuY2xpY2soKTsKLSAgICAgICAgdmFyIHNlY3Rpb24gPSBX
ZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQYW5lcy5zdHlsZXMuc2VjdGlvbnNb
MF1bMl07Ci0gICAgICAgIHNlY3Rpb24uX3NlbGVjdG9yRWxlbWVudC50ZXh0Q29udGVudCA9ICJp
bnNwZWN0ZWQiOwotICAgICAgICBzZWN0aW9uLl9zZWxlY3RvckVsZW1lbnQuZGlzcGF0Y2hFdmVu
dChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJFbnRlciIpKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICB2YXIgc2VjdGlvbiA9IFdlYkluc3BlY3Rv
ci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLnN0eWxlcy5zZWN0aW9uc1swXVsyXTsKLSAg
ICAgICAgdmFyIG5ld1Byb3BlcnR5ID0gc2VjdGlvbi5hZGROZXdCbGFua1Byb3BlcnR5KCk7Ci0g
ICAgICAgIG5ld1Byb3BlcnR5LnN0YXJ0RWRpdGluZygpOwotICAgICAgICBuZXdQcm9wZXJ0eS5u
YW1lRWxlbWVudC50ZXh0Q29udGVudCA9ICJjb2xvciI7Ci0gICAgICAgIG5ld1Byb3BlcnR5Lm5h
bWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVzdC5jcmVhdGVLZXlFdmVudCgiRW50
ZXIiKSk7Ci0gICAgICAgIG5ld1Byb3BlcnR5LnZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9ICJt
YXJvb24iOwotICAgICAgICBuZXdQcm9wZXJ0eS52YWx1ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChJ
bnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJFbnRlciIpKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC53YWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFm
dGVyIGFkZGluZyBuZXcgcnVsZToiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0
ZWRFbGVtZW50U3R5bGVzKHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IHJ1bGUg
d29ya3Mgd2hlbiB0aGVyZSBpcyBhIFNUWUxFIGVsZW1lbnQgYWZ0ZXIgQk9EWS4gVElNRU9VVCBT
SE9VTEQgTk9UIE9DQ1VSISA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTExMjk5Ij5CdWcgMTExMjk5PC9hPgotPC9wPgotCi08ZGl2IGlkPSJpbnNwZWN0
ZWQiIHN0eWxlPSJmb250LXNpemU6IDEycHgiPlRleHQ8L2Rpdj4KLQotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9jb21taXQtc2VsZWN0
b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9jb21taXQtc2Vs
ZWN0b3ItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjEzZWIz
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvY29tbWl0LXNlbGVj
dG9yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLVRlc3RzIHRo
YXQgcmVuYW1pbmcgYSBzZWxlY3RvciB1cGRhdGVzIGVsZW1lbnQgc3R5bGVzLiBCdWcgNzAwMTgu
Ci0KLVRleHQKLT09PSBCZWZvcmUgc2VsZWN0b3IgbW9kaWZpY2F0aW9uID09PQotW2V4cGFuZGVk
XSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLWNvbG9yOiByZWQ7Ci0KLT09PT09PT09IE1hdGNoZWQg
Q1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotI2luc3BlY3RlZCAgeyAoY29tbWl0LXNl
bGVjdG9yLmh0bWw6NCkKLS8tLSBvdmVybG9hZGVkIC0tLyBjb2xvcjogZ3JlZW47Ci0KLVtleHBh
bmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwot
Ci0KLT09PSBBZnRlciBub24tYWZmZWN0aW5nIHNlbGVjdG9yIG1vZGlmaWNhdGlvbiA9PT0KLVtl
eHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi1jb2xvcjogcmVkOwotCi09PT09PT09PSBN
YXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWhyLCAjaW5zcGVjdGVkICB7
IChjb21taXQtc2VsZWN0b3IuaHRtbDo0KQotLy0tIG92ZXJsb2FkZWQgLS0vIGNvbG9yOiBncmVl
bjsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxh
eTogYmxvY2s7Ci0KLQotPT09IEFmdGVyIGFmZmVjdGluZyBzZWxlY3RvciBtb2RpZmljYXRpb24g
PT09Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotY29sb3I6IHJlZDsKLQotPT09
PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gW25vLWFmZmVjdF0g
Ci0jaW5zcGVjdGVkQ2hhbmdlZCAgeyAoY29tbWl0LXNlbGVjdG9yLmh0bWw6NCkKLWNvbG9yOiBn
cmVlbjsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlz
cGxheTogYmxvY2s7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL2NvbW1pdC1zZWxlY3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9j
b21taXQtc2VsZWN0b3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdiNDdm
Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2NvbW1pdC1zZWxl
Y3Rvci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzdHlsZT4KLSNpbnNwZWN0ZWQgewotICBjb2xvcjogZ3JlZW47Ci19Ci08L3N0eWxlPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5z
ZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwgc3RlcDEpOwotCi0gICAgZnVu
Y3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09
PSBCZWZvcmUgc2VsZWN0b3IgbW9kaWZpY2F0aW9uID09PSIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIHZhciBzZWN0aW9u
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMuc3R5bGVzLnNlY3Rp
b25zWzBdWzJdOwotICAgICAgICBzZWN0aW9uLnN0YXJ0RWRpdGluZ1NlbGVjdG9yKCk7Ci0gICAg
ICAgIHNlY3Rpb24uX3NlbGVjdG9yRWxlbWVudC50ZXh0Q29udGVudCA9ICJociwgI2luc3BlY3Rl
ZCAiOwotICAgICAgICBzZWN0aW9uLl9zZWxlY3RvckVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNw
ZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJFbnRlciIpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IEFm
dGVyIG5vbi1hZmZlY3Rpbmcgc2VsZWN0b3IgbW9kaWZpY2F0aW9uID09PSIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIHZh
ciBzZWN0aW9uID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMuc3R5
bGVzLnNlY3Rpb25zWzBdWzJdOwotICAgICAgICBzZWN0aW9uLnN0YXJ0RWRpdGluZ1NlbGVjdG9y
KCk7Ci0gICAgICAgIHNlY3Rpb24uX3NlbGVjdG9yRWxlbWVudC50ZXh0Q29udGVudCA9ICIjaW5z
cGVjdGVkQ2hhbmdlZCI7Ci0gICAgICAgIHNlY3Rpb24uX3NlbGVjdG9yRWxlbWVudC5kaXNwYXRj
aEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDMpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCI9PT0gQWZ0ZXIgYWZmZWN0aW5nIHNlbGVjdG9yIG1vZGlmaWNhdGlvbiA9PT0iKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBy
ZW5hbWluZyBhIHNlbGVjdG9yIHVwZGF0ZXMgZWxlbWVudCBzdHlsZXMuIDxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDAxOCI+QnVnIDcwMDE4PC9hPi4K
LTwvcD4KLQotPGRpdiBpZD0iaW5zcGVjdGVkIiBzdHlsZT0iY29sb3I6IHJlZCI+VGV4dDwvZGl2
PgotPGRpdiBpZD0ib3RoZXIiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2Nzcy1saXZlLWVkaXQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9jc3MtbGl2ZS1lZGl0LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhmMTk5OC4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2Nzcy1saXZlLWVkaXQtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdHMgdGhhdCBzdHlsZXMgYXJlIHVwZGF0
ZWQgd2hlbiBsaXZlLWVkaXRpbmcgY3NzIHJlc291cmNlLgotCi0KLVJ1bm5pbmc6IHRlc3RMaXZl
RWRpdAotW2V4cGFuZGVkXSAKLWRpc3BsYXk6IGJsb2NrOwotICAgIGRpdiAtIGJsb2NrIHVzZXIg
YWdlbnQgc3R5bGVzaGVldAotZm9udC1zaXplOiAyMHB4OwotICAgIGJvZHkgLSAyMHB4IGdldC1z
ZXQtc3R5bGVzaGVldC10ZXh0LmNzczoxCi0KLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7
ICgpCi0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2Nzcy1s
aXZlLWVkaXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvY3NzLWxpdmUtZWRp
dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMWU0NmFjLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvY3NzLWxpdmUtZWRpdC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvbGl2ZS1l
ZGl0LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJyZXNvdXJjZXMvZ2V0LXNldC1zdHlsZXNoZWV0LXRleHQuY3NzIj4KLTxkaXYgaWQ9
Zm9vPjwvZGl2PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVj
dG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3Vp
dGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0TGl2ZUVkaXQobmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJnZXQtc2V0LXN0eWxlc2hl
ZXQtdGV4dC5jc3MiLCBkaWRTaG93UmVzb3VyY2UpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBk
aWRTaG93UmVzb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnBy
b3RvdHlwZSwgIl9maXJlU3R5bGVTaGVldENoYW5nZWQiLCBkaWRFZGl0UmVzb3VyY2UpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVwbGFjZUluU291cmNlKHNvdXJjZUZyYW1lLCAi
Zm9udC1zaXplOiAxMnB4OyIsICJmb250LXNpemU6IDIwcHg7Iik7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEVkaXRSZXNvdXJjZSgpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlc1dp
dGhDb21wdXRlZCgiZm9vIiwgZGlkU2VsZWN0RWxlbWVudCk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIGRpZFNlbGVjdEVsZW1lbnQoKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyhmYWxz
ZSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgXSk7Ci19OwotCi08L3NjcmlwdD4KLQotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IHN0eWxlcyBhcmUgdXBkYXRlZCB3aGVuIGxpdmUt
ZWRpdGluZyBjc3MgcmVzb3VyY2UuPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2VkaXQtaW5zcGVjdG9yLXN0eWxlc2hlZXQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9lZGl0LWluc3BlY3Rv
ci1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTRjNmJkNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2VkaXQt
aW5zcGVjdG9yLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjQg
KzAsMCBAQAotVGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgcnVsZSBjcmVhdGVzIGluc3BlY3RvciBz
dHlsZXNoZWV0IHJlc291cmNlIGFuZCBhbGxvd3MgaXRzIGxpdmUgZWRpdGluZy4KLQotVGV4dAot
SW5zcGVjdG9yIHN0eWxlc2hlZXQgVVJMOiBpbnNwZWN0b3Itc3R5bGVzaGVldAotSW5zcGVjdG9y
IHN0eWxlc2hlZXQgY29udGVudDoKLSNpbnNwZWN0ZWQge30KLQotU2V0dGluZyBuZXcgY29udGVu
dAotSW5zcGVjdG9yIHN0eWxlc2hlZXQgY29udGVudDoKLSNpbnNwZWN0ZWQgeyBiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsgfQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09
PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0jaW5zcGVjdGVk
ICB7IChpbnNwZWN0b3Itc3R5bGVzaGVldDoxKQotYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ci0K
LVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJs
b2NrOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9lZGl0
LWluc3BlY3Rvci1zdHlsZXNoZWV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L2VkaXQtaW5zcGVjdG9yLXN0eWxlc2hlZXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTAyMzAwZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L2VkaXQtaW5zcGVjdG9yLXN0eWxlc2hlZXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgxICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIGluc3BlY3RvclJlc291
cmNlOwotCi0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwMSk7
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMShub2RlKQotICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9y
LmNzc01vZGVsLmFkZFJ1bGUobm9kZS5pZCwgIiNpbnNwZWN0ZWQiLCBzdWNjZXNzQ2FsbGJhY2ss
IGZhaWx1cmVDYWxsYmFjayk7Ci0KLSAgICAgICAgZnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNrKCkK
LSAgICAgICAgewotICAgICAgICAgICAgLy8gc2V0VGltd291dCBpcyBuZWVkZWQgaGVyZSBiZWNh
dXNlIHNob3dTY3JpcHRTb3VyY2UgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkIGJ5IHVpU291cmNlQ29k
ZSBhZGRSZXZpc2lvbiBoYW5kbGluZwotICAgICAgICAgICAgLy8gYW5kIHdlIG5lZWQgdG8gd2Fp
dCB1bnRpbCB0aGUgY29kZSBmbG93IGV4aXRzIFN0eWxlRmlsZS5hZGRSZXZpc2lvbi4KLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiaW5zcGVjdG9yLXN0eWxlc2hl
ZXQiLCBzZXRUaW1lb3V0LmJpbmQodGhpcywgc3RlcDIsIDApKTsKLSAgICAgICAgfQotICAgICAg
ICBmdW5jdGlvbiBmYWlsdXJlQ2FsbGJhY2soKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiRmFpbGVkIHRvIGFkZCBydWxlLiIpOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAyKHNvdXJjZUZyYW1lKQotICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29k
ZSA9IHNvdXJjZUZyYW1lLl91aVNvdXJjZUNvZGU7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJJbnNwZWN0b3Igc3R5bGVzaGVldCBVUkw6ICIgKyB1aVNvdXJjZUNvZGUuZGlzcGxh
eU5hbWUoKSk7Ci0gICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChwcmludENvbnRl
bnQoKSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxuU2V0dGluZyBuZXcg
Y29udGVudCIpOwotICAgICAgICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoIiNpbnNwZWN0
ZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfSIpOwotICAgICAgICB1aVNvdXJjZUNvZGUu
Y29tbWl0V29ya2luZ0NvcHkoc3RlcDMuYmluZCh0aGlzLCB1aVNvdXJjZUNvZGUpKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMyh1aVNvdXJjZUNvZGUpCi0gICAgewotICAgICAgICB1aVNv
dXJjZUNvZGUucmVxdWVzdENvbnRlbnQocHJpbnRDb250ZW50KHNlbGVjdE5vZGUpKTsKLSAgICAg
ICAgZnVuY3Rpb24gc2VsZWN0Tm9kZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIGR1bXBTdHlsZXMp
OwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gZHVtcFN0eWxlcygpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVl
LCBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcHJpbnRDb250ZW50KG5leHQpCi0g
ICAgewotICAgICAgICBmdW5jdGlvbiByZXN1bHQoY29udGVudCkKLSAgICAgICAgewotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkluc3BlY3RvciBzdHlsZXNoZWV0IGNvbnRl
bnQ6Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChjb250ZW50KTsKLSAg
ICAgICAgICAgIGlmIChuZXh0KQotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IHJ1
bGUgY3JlYXRlcyBpbnNwZWN0b3Igc3R5bGVzaGVldCByZXNvdXJjZSBhbmQgYWxsb3dzIGl0cyBs
aXZlIGVkaXRpbmcuCi08L3A+Ci0KLTxkaXYgaWQ9Imluc3BlY3RlZCI+VGV4dDwvZGl2PgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L2VkaXQtdmFsdWUtd2l0aC10cmltbWVkLXVybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL2VkaXQtdmFsdWUtd2l0aC10cmltbWVkLXVybC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkNGE5ZTcuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9lZGl0LXZhbHVlLXdpdGgtdHJpbW1lZC11cmwtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1UZXN0cyB0aGF0IGVkaXRp
bmcgYSBDU1MgcHJvcGVydHkgdmFsdWUgaW4gdGhlIFN0eWxlcyBwYW5lIHJlc3RvcmVzIHRoZSBv
cmlnaW5hbCwgbm9uLXRyaW1tZWQgdmFsdWUgdGV4dC4gQnVnIDEwNzkzNi4KLQotVmlld2luZyAn
YmFja2dyb3VuZCcgdmFsdWUgaW4gU3R5bGVzOgotdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2Uv
cG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBSUFBQUNRZDFQZUFB
QUFHWFJGV+KApjlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUE1SlJFRlVlTnBpWUdCZ0FBZ3dB
QUFFQUFHYkErb0pBQUFBQUVsRlRrU3VRbUNDKSByZXBlYXQteSA1MCUgdG9wCi1FZGl0aW5nICdi
YWNrZ3JvdW5kJyB2YWx1ZSBpbiBTdHlsZXM6Ci10cmFuc3BhcmVudCB1cmwoZGF0YTppbWFnZS9w
bmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FJQUFBQ1FkMVBlQUFB
QUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFBNUpSRUZV
ZU5waVlHQmdBQWd3QUFBRUFBR2JBK29KQUFBQUFFbEZUa1N1UW1DQykgcmVwZWF0LXkgNTAlIHRv
cAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2VkaXQtdmFsdWUt
d2l0aC10cmltbWVkLXVybC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9lZGl0
LXZhbHVlLXdpdGgtdHJpbW1lZC11cmwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTIyMjM0YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2Vk
aXQtdmFsdWUtd2l0aC10cmltbWVkLXVybC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50
cyIpOwotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3Bl
Y3RlZCIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIHZh
ciB0cmVlRWxlbWVudCA9IEluc3BlY3RvclRlc3QuZ2V0RWxlbWVudFN0eWxlUHJvcGVydHlUcmVl
SXRlbSgiYmFja2dyb3VuZCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVmll
d2luZyAnYmFja2dyb3VuZCcgdmFsdWUgaW4gU3R5bGVzOiIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCh0cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQpOwotCi0g
ICAgICAgIHRyZWVFbGVtZW50LnN0YXJ0RWRpdGluZyh0cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRWRpdGluZyAnYmFja2dyb3VuZCcg
dmFsdWUgaW4gU3R5bGVzOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0cmVl
RWxlbWVudC52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBlZGl0aW5nIGEgQ1NTIHByb3Bl
cnR5IHZhbHVlIGluIHRoZSBTdHlsZXMgcGFuZSByZXN0b3JlcyB0aGUgb3JpZ2luYWwsIG5vbi10
cmltbWVkIHZhbHVlIHRleHQuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDc5MzYiPkJ1ZyAxMDc5MzY8L2E+LgotPC9wPgotCi08ZGl2IGlkPSJpbnNw
ZWN0ZWQiIHN0eWxlPSJiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoZGF0YTppbWFnZS9wbmc7
YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FJQUFBQ1FkMVBlQUFBQUdY
UkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFBNUpSRUZVZU5w
aVlHQmdBQWd3QUFBRUFBR2JBK29KQUFBQUFFbEZUa1N1UW1DQykgcmVwZWF0LXkgNTAlIHRvcCIg
Lz4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9mb3JjZS1wc2V1ZG8tc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9mb3JjZS1wc2V1ZG8tc3RhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3NzA1NmI2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvZm9yY2UtcHNldWRvLXN0YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDExMCArMCwwIEBACi1UZXN0cyB0aGF0IGZvcmNlZCBlbGVtZW50IHN0YXRlIGlz
IHJlZmxlY3RlZCBpbiB0aGUgRE9NIHRyZWUgYW5kIFN0eWxlcyBwYW5lLgotCi1UZXN0IHRleHQK
LQotRElWIHdpdGggOmhvdmVyIGFuZCA6YWN0aXZlCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHls
ZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVk
XSAKLWRpdjphY3RpdmUsIGE6YWN0aXZlICB7IChmb3JjZS1wc2V1ZG8tc3RhdGUuaHRtbDoxMikK
LWZvbnQtd2VpZ2h0OiBib2xkOwotCi1bZXhwYW5kZWRdIAotZGl2OmhvdmVyLCBhOmhvdmVyICB7
IChmb3JjZS1wc2V1ZG8tc3RhdGUuaHRtbDo0KQotY29sb3I6IHJlZDsKLQotW2V4cGFuZGVkXSAK
LWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLT09PT09
PT09IEluaGVyaXRlZCBmcm9tIGJvZHkjbWFpbkJvZHkubWFpbjEubWFpbjIubWFpbnBhZ2UgPT09
PT09PT0KLVtleHBhbmRlZF0gCi1TdHlsZSBBdHRyaWJ1dGUgIHsgKCkKLS8tLSBvdmVybG9hZGVk
IC0tLyBmb250LXdlaWdodDogbm9ybWFsOwotCi0KLS0gPGh0bWw+IFtkZXNjZW5kYW50VXNlckF0
dHJpYnV0ZUNvdW50ZXJzOltwc2V1ZG9TdGF0ZT0xXV0KLSAgICArIDxoZWFkPuKApjwvaGVhZD4K
LSAgICAtIDxib2R5IGlkPSJtYWluQm9keSIgY2xhc3M9Im1haW4xIG1haW4yIG1haW5wYWdlIiBv
bmxvYWQ9InJ1blRlc3QoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7IHdpZHRoOiA4NSU7
IGJhY2tncm91bmQtaW1hZ2U6IHVybChiYXIucG5nKSI+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0
ZUNvdW50ZXJzOltwc2V1ZG9TdGF0ZT0xXV0KLSAgICAgICAgICA8cD5cblRlc3RzIHRoYXQgZm9y
Y2VkIGVsZW1lbnQgc3RhdGUgaXMgcmVmbGVjdGVkIGluIHRoZSBET00gdHJlZSBhbmQgU3R5bGVz
IHBhbmUuXG48L3A+Ci0gICAgICAgICAgPGRpdiBpZD0iZGl2Ij5UZXN0IHRleHQ8L2Rpdj4gW3Vz
ZXJQcm9wZXJ0aWVzOltwc2V1ZG9TdGF0ZT1ob3ZlcixhY3RpdmVdXQotICAgICAgPC9ib2R5Pgot
ICA8L2h0bWw+Ci0KLURJViB3aXRoIDphY3RpdmUgYW5kIDpmb2N1cwotW2V4cGFuZGVkXSAKLWVs
ZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0K
LVtleHBhbmRlZF0gCi1kaXY6YWN0aXZlLCBhOmFjdGl2ZSAgeyAoZm9yY2UtcHNldWRvLXN0YXRl
Lmh0bWw6MTIpCi1mb250LXdlaWdodDogYm9sZDsKLQotW2V4cGFuZGVkXSAKLWRpdjpmb2N1cywg
YTpmb2N1cyAgeyAoZm9yY2UtcHNldWRvLXN0YXRlLmh0bWw6OCkKLWJvcmRlcjogMXB4IHNvbGlk
IGdyZWVuOwotICAgIGJvcmRlci10b3AtY29sb3I6IGdyZWVuOwotICAgIGJvcmRlci10b3Atc3R5
bGU6IHNvbGlkOwotICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDsKLSAgICBib3JkZXItcmlnaHQt
Y29sb3I6IGdyZWVuOwotICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7Ci0gICAgYm9yZGVy
LXJpZ2h0LXdpZHRoOiAxcHg7Ci0gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogZ3JlZW47Ci0gICAg
Ym9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7Ci0gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4
OwotICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBncmVlbjsKLSAgICBib3JkZXItbGVmdC1zdHlsZTog
c29saWQ7Ci0gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsKLQotW2V4cGFuZGVkXSAKLTpmb2N1
cyAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotb3V0bGluZTogLXdlYmtpdC1mb2N1cy1yaW5n
LWNvbG9yIGF1dG8gNXB4OwotICAgIG91dGxpbmUtY29sb3I6IC13ZWJraXQtZm9jdXMtcmluZy1j
b2xvcjsKLSAgICBvdXRsaW5lLXN0eWxlOiBhdXRvOwotICAgIG91dGxpbmUtd2lkdGg6IDVweDsK
LQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTog
YmxvY2s7Ci0KLT09PT09PT09IEluaGVyaXRlZCBmcm9tIGJvZHkjbWFpbkJvZHkubWFpbjEubWFp
bjIubWFpbnBhZ2UgPT09PT09PT0KLVtleHBhbmRlZF0gCi1TdHlsZSBBdHRyaWJ1dGUgIHsgKCkK
LS8tLSBvdmVybG9hZGVkIC0tLyBmb250LXdlaWdodDogbm9ybWFsOwotCi0KLS0gPGh0bWw+IFtk
ZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOltwc2V1ZG9TdGF0ZT0xXV0KLSAgICArIDxo
ZWFkPuKApjwvaGVhZD4KLSAgICAtIDxib2R5IGlkPSJtYWluQm9keSIgY2xhc3M9Im1haW4xIG1h
aW4yIG1haW5wYWdlIiBvbmxvYWQ9InJ1blRlc3QoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3Jt
YWw7IHdpZHRoOiA4NSU7IGJhY2tncm91bmQtaW1hZ2U6IHVybChiYXIucG5nKSI+IFtkZXNjZW5k
YW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOltwc2V1ZG9TdGF0ZT0xXV0KLSAgICAgICAgICA8cD5c
blRlc3RzIHRoYXQgZm9yY2VkIGVsZW1lbnQgc3RhdGUgaXMgcmVmbGVjdGVkIGluIHRoZSBET00g
dHJlZSBhbmQgU3R5bGVzIHBhbmUuXG48L3A+Ci0gICAgICAgICAgPGRpdiBpZD0iZGl2Ij5UZXN0
IHRleHQ8L2Rpdj4gW3VzZXJQcm9wZXJ0aWVzOltwc2V1ZG9TdGF0ZT1hY3RpdmUsZm9jdXNdXQot
ICAgICAgICArIDxkaXY+4oCmPC9kaXY+Ci0gICAgICA8L2JvZHk+Ci0gIDwvaHRtbD4KLQotRElW
IHdpdGggbm8gZm9yY2VkIHN0YXRlCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQot
Ci09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWRpdiAg
eyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLT09PT09PT09IElu
aGVyaXRlZCBmcm9tIGJvZHkjbWFpbkJvZHkubWFpbjEubWFpbjIubWFpbnBhZ2UgPT09PT09PT0K
LVtleHBhbmRlZF0gCi1TdHlsZSBBdHRyaWJ1dGUgIHsgKCkKLWZvbnQtd2VpZ2h0OiBub3JtYWw7
Ci0KLQotLSA8aHRtbD4KLSAgICArIDxoZWFkPuKApjwvaGVhZD4KLSAgICAtIDxib2R5IGlkPSJt
YWluQm9keSIgY2xhc3M9Im1haW4xIG1haW4yIG1haW5wYWdlIiBvbmxvYWQ9InJ1blRlc3QoKSIg
c3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7IHdpZHRoOiA4NSU7IGJhY2tncm91bmQtaW1hZ2U6
IHVybChiYXIucG5nKSI+Ci0gICAgICAgICAgPHA+XG5UZXN0cyB0aGF0IGZvcmNlZCBlbGVtZW50
IHN0YXRlIGlzIHJlZmxlY3RlZCBpbiB0aGUgRE9NIHRyZWUgYW5kIFN0eWxlcyBwYW5lLlxuPC9w
PgotICAgICAgICAgIDxkaXYgaWQ9ImRpdiI+VGVzdCB0ZXh0PC9kaXY+Ci0gICAgICAgICsgPGRp
dj7igKY8L2Rpdj4KLSAgICAgIDwvYm9keT4KLSAgPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2ZvcmNlLXBzZXVkby1zdGF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9mb3JjZS1wc2V1ZG8tc3RhdGUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYzYwYmEyZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL2ZvcmNlLXBzZXVkby1zdGF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsODkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWRpdjpob3ZlciwgYTpob3Zl
ciB7Ci0gICAgY29sb3I6IHJlZDsKLX0KLQotZGl2OmZvY3VzLCBhOmZvY3VzIHsKLSAgICBib3Jk
ZXI6IDFweCBzb2xpZCBncmVlbjsKLX0KLQotZGl2OmFjdGl2ZSwgYTphY3RpdmUgewotICAgIGZv
bnQtd2VpZ2h0OiBib2xkOwotfQotCi08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFu
ZWwoImVsZW1lbnRzIik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoImRpdiIsIGZv
dW5kRGl2KTsKLQotICAgIHZhciBkaXZOb2RlSWQ7Ci0KLSAgICBmdW5jdGlvbiBkdW1wRGF0YSgp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXMo
dHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSgpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGZvdW5kRGl2KGRpdk5vZGUpCi0gICAgewotICAgICAgICBkaXZOb2Rl
SWQgPSBkaXZOb2RlLmlkOwotICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLl9z
ZXRQc2V1ZG9DbGFzc0Zvck5vZGVJZChkaXZOb2RlSWQsICJob3ZlciIsIHRydWUpOwotICAgICAg
ICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLl9zZXRQc2V1ZG9DbGFzc0Zvck5vZGVJZChk
aXZOb2RlSWQsICJhY3RpdmUiLCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3RO
b2RlQW5kV2FpdEZvclN0eWxlcygiZGl2IiwgZGl2U2VsZWN0ZWQxKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBkaXZTZWxlY3RlZDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRElWIHdpdGggOmhv
dmVyIGFuZCA6YWN0aXZlIik7Ci0gICAgICAgIGR1bXBEYXRhKCk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3Qud2FpdEZvclN0eWxlcygiZGl2IiwgaG92ZXJDYWxsYmFjaywgdHJ1ZSk7Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuX3NldFBzZXVkb0NsYXNzRm9yTm9kZUlkKGRp
dk5vZGVJZCwgImhvdmVyIiwgZmFsc2UpOwotCi0gICAgICAgIGZ1bmN0aW9uIGhvdmVyQ2FsbGJh
Y2soKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMo
ImRpdiIsIGRpdlNlbGVjdGVkMiwgdHJ1ZSk7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFu
ZWxzLmVsZW1lbnRzLl9zZXRQc2V1ZG9DbGFzc0Zvck5vZGVJZChkaXZOb2RlSWQsICJmb2N1cyIs
IHRydWUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZGl2U2VsZWN0ZWQyKCkK
LSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkRJViB3aXRoIDphY3RpdmUgYW5kIDpmb2N1cyIpOwotICAg
ICAgICBkdW1wRGF0YSgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoImRp
diIsIGZvY3VzQ2FsbGJhY2ssIHRydWUpOwotICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVs
ZW1lbnRzLl9zZXRQc2V1ZG9DbGFzc0Zvck5vZGVJZChkaXZOb2RlSWQsICJmb2N1cyIsIGZhbHNl
KTsKLQotICAgICAgICBmdW5jdGlvbiBmb2N1c0NhbGxiYWNrKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJkaXYiLCBkaXZTZWxlY3RlZDMsIHRy
dWUpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5fc2V0UHNldWRv
Q2xhc3NGb3JOb2RlSWQoZGl2Tm9kZUlkLCAiYWN0aXZlIiwgZmFsc2UpOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gZGl2U2VsZWN0ZWQzKG5vZGUpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJESVYgd2l0aCBubyBmb3JjZWQgc3RhdGUiKTsKLSAgICAgICAgZHVtcERhdGEoKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IGlkPSJtYWluQm9keSIgY2xhc3M9Im1haW4xIG1haW4yIG1haW5wYWdl
IiBvbmxvYWQ9InJ1blRlc3QoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7IHdpZHRoOiA4
NSU7IGJhY2tncm91bmQtaW1hZ2U6IHVybChiYXIucG5nKSI+Ci08cD4KLVRlc3RzIHRoYXQgZm9y
Y2VkIGVsZW1lbnQgc3RhdGUgaXMgcmVmbGVjdGVkIGluIHRoZSBET00gdHJlZSBhbmQgU3R5bGVz
IHBhbmUuCi08L3A+Ci08ZGl2IGlkPSJkaXYiPlRlc3QgdGV4dDwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9nZXQtc2V0LXN0
eWxlc2hlZXQtdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L2dldC1zZXQtc3R5bGVzaGVldC10ZXh0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzdiOTU4OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDQ0ICswLDAgQEAKLVRlc3RzIHRoYXQgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQg
bWV0aG9kcyB3b3JrIGFzIGV4cGVjdGVkLgotCi1JbnNwZWN0IE1lCi0KLQotUnVubmluZzogdGVz
dFNldFRleHQKLT09PSBPcmlnaW5hbCBzdHlsZXNoZWV0IHRleHQ6ID09PQotYm9keSB7Ci0gICAg
Zm9udC1zaXplOiAxMnB4OwotICAgIGZvbzogYmFyICEKLQotICAgIGltcG9ydGFudCAvKiAhaW1w
b3J0YW50IHByb3BlcnR5IG5vdCByZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi87Ci0gICAgaGVpZ2h0
OiAxMDAlICFpbXBvcnRhbnQ7Ci0gICAgY29sb3J6OiAiIWltcG9ydGFudCI7Ci0gICAgaW1wb3J0
YW50OiFpbXBvcnRhbnQ7Ci0gICAgY29sb3I6ICJiYWRjb2xvciIgISBpbXBvcnRhbnQgLyogZ29v
ZCBwcm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUgKi87Ci19Ci0KLUBtZWRpYSB7Ci0gICAgLyog
QG1lZGlhIHJ1bGUgd2l0aCBhbiBlbXB0eSBtZWRpYSBsaXN0ICovCi19Ci0KLS8qIGNvbW1lbnQg
YmVmb3JlIHNlbGVjdG9yICovYm9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi97
LyogY29tbWVudCAqL2NvbG9yOiAjRjAwQkFBO3pvbzptb28gLyogbm90IGFuICFpbXBvcnRhbnQg
dW5yZWNvZ25pemVkIHByb3BlcnR5ICovfS8qIGNvbW1lbnQgKi8KLQotYm9keS5tYWluMntiYWNr
Z3JvdW5kOiBncmVlbiAvKiB2YWx1ZSAhaW1wb3J0YW50IGNvbW1lbnQgKi8gIWltcG9ydGFudCAv
KiBubyBzZW1pY29sb24sIHZlcnkgIWltcG9ydGFudCAqL30KLQotCi1SdW5uaW5nOiB0ZXN0TmV3
RWxlbWVudFN0eWxlcwotPT09IE1hdGNoZWQgcnVsZXMgZm9yIGgxIGFmdGVyIHNldFRleHQoKSA9
PT0KLQotcnVsZQotaDE6IFt1c2VyLWFnZW50XQotWydkaXNwbGF5JzonYmxvY2snXSBAW3VuZGVm
aW5lZC11bmRlZmluZWRdIHN0eWxlCi1bJ2ZvbnQtc2l6ZSc6JzJlbSddIEBbdW5kZWZpbmVkLXVu
ZGVmaW5lZF0gc3R5bGUKLVsnLXdlYmtpdC1tYXJnaW4tYmVmb3JlJzonMC42N2VtJ10gQFt1bmRl
ZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotWyctd2Via2l0LW1hcmdpbi1hZnRlcic6JzAuNjdlbSdd
IEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLVsnLXdlYmtpdC1tYXJnaW4tc3RhcnQnOicw
cHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi1bJy13ZWJraXQtbWFyZ2luLWVuZCc6
JzBweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLVsnZm9udC13ZWlnaHQnOidib2xk
J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotCi1ydWxlCi1oMTogW3JlZ3VsYXJdCi1b
J0NPTE9SJzonUmVkJ10gQFswOjUtMDoxNl0gYWN0aXZlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvZ2V0LXNldC1zdHlsZXNoZWV0LXRleHQuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvZ2V0LXNldC1zdHlsZXNoZWV0LXRleHQuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTVhMzUwMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0Lmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMTcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLQotPHN0eWxlPgotCi0v
KiBBbiBpbmxpbmUgc3R5bGVzaGVldCAqLwotYm9keS5tYWlucGFnZSB7Ci0gICAgdGV4dC1kZWNv
cmF0aW9uOiBub25lOwotfQotPC9zdHlsZT4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJyZXNvdXJjZXMvZ2V0LXNldC1zdHlsZXNoZWV0LXRleHQuY3NzIj4KLQotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBmb3Vu
ZFN0eWxlU2hlZXQ7Ci0KLSAgICBDU1NBZ2VudC5nZXRBbGxTdHlsZVNoZWV0cyhmaW5kU3R5bGVT
aGVldCk7Ci0KLSAgICBmdW5jdGlvbiBmaW5kU3R5bGVTaGVldChlcnJvciwgc3R5bGVTaGVldElu
Zm9zKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soc3R5bGVTaGVldCkKLSAgICAg
ICAgewotICAgICAgICAgICAgZm91bmRTdHlsZVNoZWV0ID0gc3R5bGVTaGVldDsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsgdGVzdFNldFRleHQsIHRlc3ROZXdFbGVt
ZW50U3R5bGVzIF0pOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBz
dHlsZVNoZWV0SW5mb3MubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChzdHlsZVNoZWV0
SW5mb3NbaV0uc291cmNlVVJMLmluZGV4T2YoImdldC1zZXQtc3R5bGVzaGVldC10ZXh0LmNzcyIp
ID49IDApIHsKLSAgICAgICAgICAgICAgICBmb3VuZFN0eWxlU2hlZXRJbmZvID0gc3R5bGVTaGVl
dEluZm9zW2ldOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0LmNy
ZWF0ZUZvcklkKGZvdW5kU3R5bGVTaGVldEluZm8uc3R5bGVTaGVldElkLCBjYWxsYmFjayk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0U2V0VGV4
dChuZXh0KQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJGYWlsZWQgdG8gc2V0IHN0eWxlc2hlZXQgdGV4dDogIiArIGVycm9yKTsK
LSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhuZXh0KTsKLSAgICAgICAgfQot
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gT3JpZ2luYWwgc3R5bGVzaGVl
dCB0ZXh0OiA9PT0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZm91bmRTdHls
ZVNoZWV0LmdldFRleHQoKSk7Ci0gICAgICAgIGZvdW5kU3R5bGVTaGVldC5zZXRUZXh0KCJoMSB7
IENPTE9SOiBSZWQ7IH0iLCB0cnVlLCBjYWxsYmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
dGVzdE5ld0VsZW1lbnRTdHlsZXMoKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2so
ZXJyb3IsIG1hdGNoZWRDU1NSdWxlcykKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGVycm9y
KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImVycm9yOiAiICsg
ZXJyb3IpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBNYXRjaGVkIHJ1bGVzIGZvciBoMSBh
ZnRlciBzZXRUZXh0KCkgPT09Iik7Ci0gICAgICAgICAgICBkdW1wTWF0Y2hlc0FycmF5KG1hdGNo
ZWRDU1NSdWxlcyk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gbm9kZUNhbGxiYWNrKG5vZGUpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIENTU0FnZW50LmdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKG5vZGUuaWQs
IGZhbHNlLCBmYWxzZSwgY2FsbGJhY2spOwotICAgICAgICB9Ci0KLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZWxlY3ROb2RlV2l0aElkKCJpbnNwZWN0ZWQiLCBub2RlQ2FsbGJhY2spOwotICAgIH0K
LQotCi0gICAgLy8gRGF0YSBkdW1waW5nCi0KLSAgICBmdW5jdGlvbiBkdW1wTWF0Y2hlc0FycmF5
KHJ1bGVzKQotICAgIHsKLSAgICAgICAgaWYgKCFydWxlcykKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7ICsraSkKLSAgICAgICAg
ICAgIGR1bXBSdWxlT3JTdHlsZShydWxlc1tpXS5ydWxlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBkdW1wUnVsZU9yU3R5bGUocnVsZU9yU3R5bGUpCi0gICAgewotICAgICAgICBpZiAoIXJ1bGVP
clN0eWxlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB2YXIgaXNSdWxlID0gISEocnVs
ZU9yU3R5bGUuc3R5bGUpOwotICAgICAgICB2YXIgc3R5bGUgPSBpc1J1bGUgPyBydWxlT3JTdHls
ZS5zdHlsZSA6IHJ1bGVPclN0eWxlOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGlzUnVsZSA/ICJydWxlIiA6ICJz
dHlsZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgoaXNSdWxlID8gKHJ1bGVP
clN0eWxlLnNlbGVjdG9yTGlzdC50ZXh0ICsgIjogWyIgKyBydWxlT3JTdHlsZS5vcmlnaW4gKyAi
XSIpIDogInJhdyBzdHlsZSIpKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZS5j
c3NQcm9wZXJ0aWVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgcHJvcGVydHkgPSBz
dHlsZS5jc3NQcm9wZXJ0aWVzW2ldOwotICAgICAgICAgICAgaWYgKHByb3BlcnR5LnN0YXR1cyAh
PT0gImRpc2FibGVkIikKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
WyciICsgcHJvcGVydHkubmFtZSArICInOiciICsgcHJvcGVydHkudmFsdWUgKyAiJyIgKyAocHJv
cGVydHkucHJpb3JpdHkgPT09ICJpbXBvcnRhbnQiID8gIiBpcy1pbXBvcnRhbnQiIDogIiIpICsg
KCgicGFyc2VkT2siIGluIHByb3BlcnR5KSA/ICIgbm9uLXBhcnNlZCIgOiAiIikgKyJdIEAiICsg
SW5zcGVjdG9yVGVzdC5yYW5nZVRleHQocHJvcGVydHkucmFuZ2UpICsgIiAiICsgKHByb3BlcnR5
LnN0YXR1cyB8fCAic3R5bGUiKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlt0ZXh0PSciICsgcHJvcGVydHkudGV4dCArICInXSAi
ICsgcHJvcGVydHkuc3RhdHVzKTsKLSAgICAgICAgfQotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgV2ViSW5z
cGVjdG9yLkNTU1N0eWxlU2hlZXQgbWV0aG9kcyB3b3JrIGFzIGV4cGVjdGVkLgotPC9wPgotPGgx
IGlkPSJpbnNwZWN0ZWQiPkluc3BlY3QgTWU8L2gxPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9pbXBvcnQtcHNldWRvY2xhc3MtY3Jh
c2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9pbXBvcnQtcHNl
dWRvY2xhc3MtY3Jhc2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmZWFlY2VlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvaW1w
b3J0LXBzZXVkb2NsYXNzLWNyYXNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotVGVzdHMgdGhhdCBtb2RpZnlpbmcgc3R5bGVzaGVldCB0ZXh0IHdpdGggQGltcG9y
dCBhbmQgOmxhc3QtY2hpbGQgc2VsZWN0b3IgZG9lcyBub3QgY3Jhc2ggKEJ1ZyA5NTMyNCkuCi0K
LTpsYXN0LWNoaWxkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2lt
cG9ydC1wc2V1ZG9jbGFzcy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9pbXBvcnQtcHNldWRvY2xhc3MtY3Jhc2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTJlMDVmNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L2ltcG9ydC1wc2V1ZG9jbGFzcy1jcmFzaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3Vy
Y2VzL2ltcG9ydC1wc2V1ZG9jbGFzcy1jcmFzaC5jc3MiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93
UGFuZWwoImVsZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKCJsYXN0Y2hp
bGQiLCBub2RlRm91bmQpOwotCi0gICAgZnVuY3Rpb24gbm9kZUZvdW5kKG5vZGUpCi0gICAgewot
ICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuZ2V0TWF0Y2hlZFN0eWxlc0FzeW5jKG5vZGUu
aWQsIHRydWUsIGZhbHNlLCBtYXRjaGVkU3R5bGVzQ2FsbGJhY2spOwotICAgIH0KLQotICAgIHZh
ciBzdHlsZVNoZWV0SWQ7Ci0KLSAgICBmdW5jdGlvbiBtYXRjaGVkU3R5bGVzQ2FsbGJhY2soc3R5
bGVzKQotICAgIHsKLSAgICAgICAgc3R5bGVTaGVldElkID0gc3R5bGVzLm1hdGNoZWRDU1NSdWxl
c1sxXS5pZC5zdHlsZVNoZWV0SWQ7Ci0gICAgICAgIENTU0FnZW50LnNldFN0eWxlU2hlZXRUZXh0
KHN0eWxlU2hlZXRJZCwKLSAgICAgICAgICAgICJAaW1wb3J0IHVybChcImltcG9ydC1wc2V1ZG9j
bGFzcy1jcmFzaC1lbXB0eS5jc3NcIik7XG5cbjpsYXN0LWNoaWxkIHsgY29sb3I6ICMwMDAwMDE7
IH1cbiIsIG1vZGlmaWVkQ2FsbGJhY2spOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG1vZGlmaWVk
Q2FsbGJhY2soKQotICAgIHsKLSAgICAgICAgQ1NTQWdlbnQuc2V0U3R5bGVTaGVldFRleHQoc3R5
bGVTaGVldElkLCAiQGltcG9ydCB1cmwoXCJpbXBvcnQtcHNldWRvY2xhc3MtY3Jhc2gtZW1wdHku
Y3NzXCIpO1xuXG46bGFzdC1jaGlsZCB7IGNvbG9yOiAjMDAyMDAxOyB9XG4iLCBtb2RpZmllZENh
bGxiYWNrMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbW9kaWZpZWRDYWxsYmFjazIoKQotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3Rz
IHRoYXQgbW9kaWZ5aW5nIHN0eWxlc2hlZXQgdGV4dCB3aXRoIEBpbXBvcnQgYW5kIDpsYXN0LWNo
aWxkIHNlbGVjdG9yIGRvZXMgbm90IGNyYXNoICg8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUzMjQiPkJ1ZyA5NTMyNDwvYT4pLgotPC9wPgotCi08ZGl2
PgotICAgIDxwIGlkPSJsYXN0Y2hpbGQiPjpsYXN0LWNoaWxkPC9wPgotPC9kaXY+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2luYWN0
aXZlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9pbmFjdGl2ZS1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNWNjZGU5Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL2luYWN0aXZlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MzIgKzAsMCBAQAotVGVzdHMgdGhhdCBlZmZlY3RpdmVseSBpbmFjdGl2ZSBwcm9wZXJ0aWVzIGFy
ZSBkaXNwbGF5ZWQgY29ycmVjdGx5IGluIHRoZSBzaWRlYmFyLgotCi1UZXN0Ci1bZXhwYW5kZWRd
IAotZGlzcGxheTogYmxvY2s7Ci0gICAgZGl2IC0gYmxvY2sgdXNlciBhZ2VudCBzdHlsZXNoZWV0
Ci10ZXh0LWFsaWduOiByaWdodDsKLSAgICAvLS0gb3ZlcmxvYWRlZCAtLS8gI2luc3BlY3RlZCAt
IGxlZnQgaW5hY3RpdmUtcHJvcGVydGllcy5odG1sOjIwCi0gICAgLy0tIG92ZXJsb2FkZWQgLS0v
ICNpbnNwZWN0ZWQgLSBiYXIgaW5hY3RpdmUtcHJvcGVydGllcy5odG1sOjIwCi0gICAgI2luc3Bl
Y3RlZCAtIHJpZ2h0IGluYWN0aXZlLXByb3BlcnRpZXMuaHRtbDoyMAotICAgIC8tLSBvdmVybG9h
ZGVkIC0tLyBkaXZbQXR0cmlidXRlcyBTdHlsZV0gLSAtd2Via2l0LWxlZnQgCi0KLVtleHBhbmRl
ZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09
PT09PT09Ci1bZXhwYW5kZWRdIAotI2luc3BlY3RlZCAgeyAoaW5hY3RpdmUtcHJvcGVydGllcy5o
dG1sOjIwKQotLy0tIG92ZXJsb2FkZWQgLS0vIHRleHQtYWxpZ246IGxlZnQ7Ci0vLS0gb3Zlcmxv
YWRlZCAtLS8gdGV4dC1hbGlnbjogYmFyOwotdGV4dC1hbGlnbjogcmlnaHQ7Ci0KLVtleHBhbmRl
ZF0gCi1kaXZbQXR0cmlidXRlcyBTdHlsZV0gIHsgKCkKLS8tLSBvdmVybG9hZGVkIC0tLyB0ZXh0
LWFsaWduOiAtd2Via2l0LWxlZnQ7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQg
c3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9pbmFjdGl2ZS1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL2luYWN0aXZlLXByb3BlcnRpZXMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzJhYzk0MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL2luYWN0aXZlLXByb3BlcnRpZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDM4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2Rl
QW5kV2FpdEZvclN0eWxlc1dpdGhDb21wdXRlZCgiaW5zcGVjdGVkIiwgc3RlcDEpOwotCi0gICAg
ZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0
ZWRFbGVtZW50U3R5bGVzKGZhbHNlLCBmYWxzZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTxzdHlsZT4KLSNpbnNwZWN0ZWQg
ewotICAgIHRleHQtYWxpZ246IGxlZnQ7Ci0gICAgdGV4dC1hbGlnbjogYmFyOwotICAgIHRleHQt
YWxpZ246IHJpZ2h0OwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGVmZmVjdGl2ZWx5IGluYWN0aXZlIHByb3BlcnRpZXMg
YXJlIGRpc3BsYXllZCBjb3JyZWN0bHkgaW4gdGhlIHNpZGViYXIuCi08L3A+Ci0KLTxkaXYgaWQ9
ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iaW5zcGVjdGVkIiBhbGlnbj0ibGVmdCI+VGVzdDwv
ZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvaW5qZWN0LXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9pbmplY3Qtc3R5bGVzaGVldC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxYmFkNTguLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9pbmplY3Qtc3R5bGVzaGVldC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IGlm
cmFtZSBsb2FkZWQKLVRlc3RzIHRoYXQgaW5qZWN0ZWQgdXNlciBzdHlsZXNoZWV0cyBhcmUgcmVm
bGVjdGVkIGluIHRoZSBTdHlsZXMgcGFuZS4KLQotCi1NYWluIGZyYW1lIHN0eWxlOgotW2V4cGFu
ZGVkXSAKLS13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94OwotLXdlYmtpdC1iYWNr
Z3JvdW5kLW9yaWdpbjogcGFkZGluZy1ib3g7Ci0td2Via2l0LWJhY2tncm91bmQtc2l6ZTogYXV0
bzsKLS13ZWJraXQtYm9yZGVyLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9S
dzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FRQUFBQzEramZxQUFBQWlFbEVR4oCmTXMrTFMz
MENBaEJONW5OeGVUNWhiSjF6d21qaTJrK2FGNk5FTklQZi9oczU0ZjBzWkZVVkFNaWdBQUFBQkpS
VTVFcmtKZ2dnPT0pIDEwMCUgLyAxIC8gMHB4IHN0cmV0Y2g7Ci0gICAgI21haW4gLSB1cmwoZGF0
YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FRQUFB
QzEramZxQUFBQWlFbEVRVlI0MnIyUnNRckRNQXhFQlJkbDhTRGNYOGxRUEdnMUdCSTZsdnovaDdR
eVJSWFYwcVVVTHdmdndaMXRlbnc1UHhUb1JQV01DNTJlQTkrV0RubGgzSEZRL3hCUWw4Nk5GWUpx
ZUdmbGtpb2dyT3ZWbElGaHFVUkZWaG8zeDFtb0dBYTNkZU1zK0xTMzBDQWhCTjVuTnhlVDVoYkox
endtamkyaythRjZORU5JUGYvaHM1NGYwc1pGVVZBTWlnQUFBQUJKUlU1RXJrSmdnZz09KSB1c2Vy
IHN0eWxlc2hlZXQKLWJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsOwotICAgICNtYWluIC0g
aW5pdGlhbCBpbmplY3Qtc3R5bGVzaGVldC5odG1sOjUKLWJhY2tncm91bmQtY2xpcDogYm9yZGVy
LWJveDsKLSAgICAjbWFpbiAtIGluaXRpYWwgaW5qZWN0LXN0eWxlc2hlZXQuaHRtbDo1Ci1iYWNr
Z3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMjU1KTsKLSAgICAjbWFpbiAtIGJsdWUgaW5qZWN0LXN0
eWxlc2hlZXQuaHRtbDo1Ci1iYWNrZ3JvdW5kLWltYWdlOiBub25lOwotICAgICNtYWluIC0gaW5p
dGlhbCBpbmplY3Qtc3R5bGVzaGVldC5odG1sOjUKLWJhY2tncm91bmQtb3JpZ2luOiBwYWRkaW5n
LWJveDsKLSAgICAjbWFpbiAtIGluaXRpYWwgaW5qZWN0LXN0eWxlc2hlZXQuaHRtbDo1Ci1iYWNr
Z3JvdW5kLXNpemU6IGF1dG87Ci0gICAgI21haW4gLSBpbml0aWFsIGluamVjdC1zdHlsZXNoZWV0
Lmh0bWw6NQotY29sb3I6IHJnYigyNTUsIDAsIDApOwotICAgICNtYWluIC0gcmVkIHVzZXIgc3R5
bGVzaGVldAotZGlzcGxheTogYmxvY2s7Ci0gICAgZGl2IC0gYmxvY2sgdXNlciBhZ2VudCBzdHls
ZXNoZWV0Ci0KLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1h
dGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotbWVkaWE9InNjcmVlbiIgKGlu
amVjdC1zdHlsZXNoZWV0Lmh0bWwpCi0jbWFpbiAgeyAoaW5qZWN0LXN0eWxlc2hlZXQuaHRtbDo1
KQotYmFja2dyb3VuZDogYmx1ZTsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbml0aWFsOwotICAg
IGJhY2tncm91bmQtcG9zaXRpb24teDogaW5pdGlhbDsKLSAgICBiYWNrZ3JvdW5kLXBvc2l0aW9u
LXk6IGluaXRpYWw7Ci0gICAgYmFja2dyb3VuZC1zaXplOiBpbml0aWFsOwotICAgIGJhY2tncm91
bmQtcmVwZWF0LXg6IGluaXRpYWw7Ci0gICAgYmFja2dyb3VuZC1yZXBlYXQteTogaW5pdGlhbDsK
LSAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGluaXRpYWw7Ci0gICAgYmFja2dyb3VuZC1vcmln
aW46IGluaXRpYWw7Ci0gICAgYmFja2dyb3VuZC1jbGlwOiBpbml0aWFsOwotICAgIGJhY2tncm91
bmQtY29sb3I6IGJsdWU7Ci0KLVtleHBhbmRlZF0gCi0jbWFpbiAgeyAodXNlciBzdHlsZXNoZWV0
KQotY29sb3I6IHJlZDsKLS13ZWJraXQtYm9yZGVyLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7
YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FRQUFBQzEramZxQUFBQWlF
bEVR4oCmTXMrTFMzMENBaEJONW5OeGVUNWhiSjF6d21qaTJrK2FGNk5FTklQZi9oczU0ZjBzWkZV
VkFNaWdBQUFBQkpSVTVFcmtKZ2dnPT0pOwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFn
ZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi1pZnJhbWUgc3R5bGU6Ci1bZXhw
YW5kZWRdIAotLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7Ci0td2Via2l0LWJh
Y2tncm91bmQtb3JpZ2luOiBwYWRkaW5nLWJveDsKLS13ZWJraXQtYmFja2dyb3VuZC1zaXplOiBh
dXRvOwotYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7Ci0gICAgYm9keSAtIGluaXRpYWwg
aW5qZWN0LXN0eWxlc2hlZXQtaWZyYW1lLWRhdGEuaHRtbDo0Ci0gICAgLy0tIG92ZXJsb2FkZWQg
LS0vICNpZnJhbWVib2R5IC0gaW5pdGlhbCB1c2VyIHN0eWxlc2hlZXQKLWJhY2tncm91bmQtY2xp
cDogYm9yZGVyLWJveDsKLSAgICBib2R5IC0gaW5pdGlhbCBpbmplY3Qtc3R5bGVzaGVldC1pZnJh
bWUtZGF0YS5odG1sOjQKLSAgICAvLS0gb3ZlcmxvYWRlZCAtLS8gI2lmcmFtZWJvZHkgLSBpbml0
aWFsIHVzZXIgc3R5bGVzaGVldAotYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDEyOCwgMCk7Ci0g
ICAgYm9keSAtIGdyZWVuIGluamVjdC1zdHlsZXNoZWV0LWlmcmFtZS1kYXRhLmh0bWw6NAotICAg
IC8tLSBvdmVybG9hZGVkIC0tLyAjaWZyYW1lYm9keSAtIHJlZCB1c2VyIHN0eWxlc2hlZXQKLWJh
Y2tncm91bmQtaW1hZ2U6IG5vbmU7Ci0gICAgYm9keSAtIGluaXRpYWwgaW5qZWN0LXN0eWxlc2hl
ZXQtaWZyYW1lLWRhdGEuaHRtbDo0Ci0gICAgLy0tIG92ZXJsb2FkZWQgLS0vICNpZnJhbWVib2R5
IC0gaW5pdGlhbCB1c2VyIHN0eWxlc2hlZXQKLWJhY2tncm91bmQtb3JpZ2luOiBwYWRkaW5nLWJv
eDsKLSAgICBib2R5IC0gaW5pdGlhbCBpbmplY3Qtc3R5bGVzaGVldC1pZnJhbWUtZGF0YS5odG1s
OjQKLSAgICAvLS0gb3ZlcmxvYWRlZCAtLS8gI2lmcmFtZWJvZHkgLSBpbml0aWFsIHVzZXIgc3R5
bGVzaGVldAotYmFja2dyb3VuZC1zaXplOiBhdXRvOwotICAgIGJvZHkgLSBpbml0aWFsIGluamVj
dC1zdHlsZXNoZWV0LWlmcmFtZS1kYXRhLmh0bWw6NAotICAgIC8tLSBvdmVybG9hZGVkIC0tLyAj
aWZyYW1lYm9keSAtIGluaXRpYWwgdXNlciBzdHlsZXNoZWV0Ci1kaXNwbGF5OiBibG9jazsKLSAg
ICBib2R5IC0gYmxvY2sgdXNlciBhZ2VudCBzdHlsZXNoZWV0Ci1tYXJnaW4tYm90dG9tOiA4cHg7
Ci0gICAgYm9keSAtIDhweCB1c2VyIGFnZW50IHN0eWxlc2hlZXQKLW1hcmdpbi1sZWZ0OiA4cHg7
Ci0gICAgYm9keSAtIDhweCB1c2VyIGFnZW50IHN0eWxlc2hlZXQKLW1hcmdpbi1yaWdodDogOHB4
OwotICAgIGJvZHkgLSA4cHggdXNlciBhZ2VudCBzdHlsZXNoZWV0Ci1tYXJnaW4tdG9wOiA4cHg7
Ci0gICAgYm9keSAtIDhweCB1c2VyIGFnZW50IHN0eWxlc2hlZXQKLQotW2V4cGFuZGVkXSAKLWVs
ZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0K
LVtleHBhbmRlZF0gCi1tZWRpYT0ic2NyZWVuIiAoaW5qZWN0LXN0eWxlc2hlZXQtaWZyYW1lLWRh
dGEuaHRtbCkKLWJvZHkgIHsgKGluamVjdC1zdHlsZXNoZWV0LWlmcmFtZS1kYXRhLmh0bWw6NCkK
LWJhY2tncm91bmQ6IGdyZWVuOwotICAgIGJhY2tncm91bmQtaW1hZ2U6IGluaXRpYWw7Ci0gICAg
YmFja2dyb3VuZC1wb3NpdGlvbi14OiBpbml0aWFsOwotICAgIGJhY2tncm91bmQtcG9zaXRpb24t
eTogaW5pdGlhbDsKLSAgICBiYWNrZ3JvdW5kLXNpemU6IGluaXRpYWw7Ci0gICAgYmFja2dyb3Vu
ZC1yZXBlYXQteDogaW5pdGlhbDsKLSAgICBiYWNrZ3JvdW5kLXJlcGVhdC15OiBpbml0aWFsOwot
ICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogaW5pdGlhbDsKLSAgICBiYWNrZ3JvdW5kLW9yaWdp
bjogaW5pdGlhbDsKLSAgICBiYWNrZ3JvdW5kLWNsaXA6IGluaXRpYWw7Ci0gICAgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47Ci0KLVtleHBhbmRlZF0gCi0jaWZyYW1lYm9keSAgeyAodXNlciBzdHls
ZXNoZWV0KQotLy0tIG92ZXJsb2FkZWQgLS0vIGJhY2tncm91bmQ6IHJlZDsKLSAgICAvLS0gb3Zl
cmxvYWRlZCAtLS8gYmFja2dyb3VuZC1pbWFnZTogaW5pdGlhbDsKLSAgICAvLS0gb3ZlcmxvYWRl
ZCAtLS8gYmFja2dyb3VuZC1wb3NpdGlvbi14OiBpbml0aWFsOwotICAgIC8tLSBvdmVybG9hZGVk
IC0tLyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGluaXRpYWw7Ci0gICAgLy0tIG92ZXJsb2FkZWQg
LS0vIGJhY2tncm91bmQtc2l6ZTogaW5pdGlhbDsKLSAgICAvLS0gb3ZlcmxvYWRlZCAtLS8gYmFj
a2dyb3VuZC1yZXBlYXQteDogaW5pdGlhbDsKLSAgICAvLS0gb3ZlcmxvYWRlZCAtLS8gYmFja2dy
b3VuZC1yZXBlYXQteTogaW5pdGlhbDsKLSAgICAvLS0gb3ZlcmxvYWRlZCAtLS8gYmFja2dyb3Vu
ZC1hdHRhY2htZW50OiBpbml0aWFsOwotICAgIC8tLSBvdmVybG9hZGVkIC0tLyBiYWNrZ3JvdW5k
LW9yaWdpbjogaW5pdGlhbDsKLSAgICAvLS0gb3ZlcmxvYWRlZCAtLS8gYmFja2dyb3VuZC1jbGlw
OiBpbml0aWFsOwotICAgIC8tLSBvdmVybG9hZGVkIC0tLyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
Ci0KLVtleHBhbmRlZF0gCi1ib2R5ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5
OiBibG9jazsKLW1hcmdpbjogOHB4OwotICAgIG1hcmdpbi10b3A6IDhweDsKLSAgICBtYXJnaW4t
cmlnaHQ6IDhweDsKLSAgICBtYXJnaW4tYm90dG9tOiA4cHg7Ci0gICAgbWFyZ2luLWxlZnQ6IDhw
eDsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvaW5qZWN0
LXN0eWxlc2hlZXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvaW5qZWN0LXN0
eWxlc2hlZXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGFkMDMwMC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2luamVjdC1zdHlsZXNoZWV0
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotCi08
c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgotICAjbWFpbiB7IGJhY2tncm91
bmQ6Ymx1ZTsgfQotPC9zdHlsZT4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci0KLWZ1bmN0aW9uIGluamVjdFN0eWxlU2hlZXQoKQotewotICAgIHZhciBzdHlsZVNoZWV0ID0g
IiNtYWluIHsgY29sb3I6IHJlZDsgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IHVybChkYXRhOmltYWdl
L3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVFBQUFDMStqZnFB
QUFBaUVsRVFWUjQycjJSc1FyRE1BeEVCUmRsOFNEY1g4bFFQR2cxR0JJNmx2ei9oN1F5UlJYVjBx
VVVMd2Z2d1oxdGVudzVQeFRvUlBXTUM1MmVBOStXRG5saDNIRlEveEJRbDg2TkZZSnFlR2Zsa2lv
Z3JPdlZsSUZocVVSRlZobzN4MW1vR0FhM2RlTXMrTFMzMENBaEJONW5OeGVUNWhiSjF6d21qaTJr
K2FGNk5FTklQZi9oczU0ZjBzWkZVVkFNaWdBQUFBQkpSVTVFcmtKZ2dnPT0pIH0gICNpZnJhbWVC
b2R5IHsgYmFja2dyb3VuZDogcmVkIH0iOwotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgd2luZG93LnRlc3RSdW5uZXIuYWRkVXNlclN0eWxlU2hlZXQoc3R5bGVTaGVldCwgdHJ1
ZSk7Ci19Ci0KLWZ1bmN0aW9uIGxvYWRJZnJhbWUoKQotewotICAgIHZhciBpZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgICBpZnJhbWUuc3JjID0gInJlc291cmNl
cy9pbmplY3Qtc3R5bGVzaGVldC1pZnJhbWUtZGF0YS5odG1sIjsKLSAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibWFpbiIpLmFwcGVuZENoaWxkKGlmcmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImluamVjdFN0eWxlU2hl
ZXQoKSIsIGluaXQpOwotCi0gICAgZnVuY3Rpb24gaW5pdCgpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzV2l0aENvbXB1dGVkKCJtYWluIiwg
c3RlcDApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAwKCkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJNYWluIGZyYW1lIHN0eWxlOiIpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXMoKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZElmcmFtZSgpIik7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDEpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAx
KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHls
ZXMoImlmcmFtZUJvZHkiLCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImlmcmFtZSBzdHlsZToiKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKCk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBpbmpl
Y3RlZCB1c2VyIHN0eWxlc2hlZXRzIGFyZSByZWZsZWN0ZWQgaW4gdGhlIFN0eWxlcyBwYW5lLgot
PC9wPgotCi08ZGl2IGlkPSJtYWluIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbGF6eS1jb21wdXRlZC1zdHlsZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2xhenktY29tcHV0ZWQtc3R5
bGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWY2N2M2Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbGF6eS1jb21wdXRlZC1z
dHlsZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi1UZXN0cyB0
aGF0IGNvbXB1dGVkIHN0eWxlcyBleHBhbmQgYW5kIGFsbG93IHRyYWNpbmcgdG8gc3R5bGUgcnVs
ZXMuCi0KLT09PT0gQWxsIHN0eWxlcyAoc2hvdWxkIGJlIG5vIGNvbXB1dGVkKSA9PT09Ci1bZXhw
YW5kZWRdIAotCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBN
YXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLSNpbnNwZWN0ZWQgIHsgKGxh
enktY29tcHV0ZWQtc3R5bGUuaHRtbDoxNSkKLWJhY2tncm91bmQ6IGdyYXk7Ci0gICAgYmFja2dy
b3VuZC1pbWFnZTogaW5pdGlhbDsKLSAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGluaXRpYWw7
Ci0gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiBpbml0aWFsOwotICAgIGJhY2tncm91bmQtc2l6
ZTogaW5pdGlhbDsKLSAgICBiYWNrZ3JvdW5kLXJlcGVhdC14OiBpbml0aWFsOwotICAgIGJhY2tn
cm91bmQtcmVwZWF0LXk6IGluaXRpYWw7Ci0gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBpbml0
aWFsOwotICAgIGJhY2tncm91bmQtb3JpZ2luOiBpbml0aWFsOwotICAgIGJhY2tncm91bmQtY2xp
cDogaW5pdGlhbDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5OwotCi1bZXhwYW5kZWRdIAot
I2luc3BlY3RlZCAgeyAobGF6eS1jb21wdXRlZC1zdHlsZS5odG1sOjEwKQotLy0tIG92ZXJsb2Fk
ZWQgLS0vIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOwotZm9udC1mYW1pbHk6IENvdXJpZXI7Ci0K
LVtleHBhbmRlZF0gCi0jaW5zcGVjdGVkICB7IChsYXp5LWNvbXB1dGVkLXN0eWxlLmh0bWw6NSkK
LS8tLSBvdmVybG9hZGVkIC0tLyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKLS8tLSBvdmVybG9h
ZGVkIC0tLyBmb250LWZhbWlseTogVGltZXM7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIg
YWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLT09PT0gQWxsIHN0eWxlcyAo
Y29tcHV0ZWQgc2hvdWxkIGJlIHRoZXJlKSA9PT09Ci1bZXhwYW5kZWRdIAotLXdlYmtpdC1iYWNr
Z3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7Ci0td2Via2l0LWJhY2tncm91bmQtb3JpZ2luOiBwYWRk
aW5nLWJveDsKLS13ZWJraXQtYmFja2dyb3VuZC1zaXplOiBhdXRvOwotYmFja2dyb3VuZC1hdHRh
Y2htZW50OiBzY3JvbGw7Ci0gICAgI2luc3BlY3RlZCAtIGluaXRpYWwgbGF6eS1jb21wdXRlZC1z
dHlsZS5odG1sOjE1Ci1iYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7Ci0gICAgI2luc3BlY3Rl
ZCAtIGluaXRpYWwgbGF6eS1jb21wdXRlZC1zdHlsZS5odG1sOjE1Ci1iYWNrZ3JvdW5kLWNvbG9y
OiByZ2IoMTI4LCAxMjgsIDEyOCk7Ci0gICAgI2luc3BlY3RlZCAtIGdyYXkgbGF6eS1jb21wdXRl
ZC1zdHlsZS5odG1sOjE1Ci0gICAgLy0tIG92ZXJsb2FkZWQgLS0vICNpbnNwZWN0ZWQgLSBibGFj
ayBsYXp5LWNvbXB1dGVkLXN0eWxlLmh0bWw6MTAKLSAgICAvLS0gb3ZlcmxvYWRlZCAtLS8gI2lu
c3BlY3RlZCAtIGdyZWVuIGxhenktY29tcHV0ZWQtc3R5bGUuaHRtbDo1Ci1iYWNrZ3JvdW5kLWlt
YWdlOiBub25lOwotICAgICNpbnNwZWN0ZWQgLSBpbml0aWFsIGxhenktY29tcHV0ZWQtc3R5bGUu
aHRtbDoxNQotYmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94OwotICAgICNpbnNwZWN0ZWQg
LSBpbml0aWFsIGxhenktY29tcHV0ZWQtc3R5bGUuaHRtbDoxNQotYmFja2dyb3VuZC1zaXplOiBh
dXRvOwotICAgICNpbnNwZWN0ZWQgLSBpbml0aWFsIGxhenktY29tcHV0ZWQtc3R5bGUuaHRtbDox
NQotZGlzcGxheTogYmxvY2s7Ci0gICAgZGl2IC0gYmxvY2sgdXNlciBhZ2VudCBzdHlsZXNoZWV0
Ci1mb250LWZhbWlseTogQ291cmllcjsKLSAgICAjaW5zcGVjdGVkIC0gQ291cmllciBsYXp5LWNv
bXB1dGVkLXN0eWxlLmh0bWw6MTAKLSAgICAvLS0gb3ZlcmxvYWRlZCAtLS8gI2luc3BlY3RlZCAt
IFRpbWVzIGxhenktY29tcHV0ZWQtc3R5bGUuaHRtbDo1Ci0KLVtleHBhbmRlZF0gCi1lbGVtZW50
LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhw
YW5kZWRdIAotI2luc3BlY3RlZCAgeyAobGF6eS1jb21wdXRlZC1zdHlsZS5odG1sOjE1KQotYmFj
a2dyb3VuZDogZ3JheTsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbml0aWFsOwotICAgIGJhY2tn
cm91bmQtcG9zaXRpb24teDogaW5pdGlhbDsKLSAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGlu
aXRpYWw7Ci0gICAgYmFja2dyb3VuZC1zaXplOiBpbml0aWFsOwotICAgIGJhY2tncm91bmQtcmVw
ZWF0LXg6IGluaXRpYWw7Ci0gICAgYmFja2dyb3VuZC1yZXBlYXQteTogaW5pdGlhbDsKLSAgICBi
YWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGluaXRpYWw7Ci0gICAgYmFja2dyb3VuZC1vcmlnaW46IGlu
aXRpYWw7Ci0gICAgYmFja2dyb3VuZC1jbGlwOiBpbml0aWFsOwotICAgIGJhY2tncm91bmQtY29s
b3I6IGdyYXk7Ci0KLVtleHBhbmRlZF0gCi0jaW5zcGVjdGVkICB7IChsYXp5LWNvbXB1dGVkLXN0
eWxlLmh0bWw6MTApCi0vLS0gb3ZlcmxvYWRlZCAtLS8gYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7
Ci1mb250LWZhbWlseTogQ291cmllcjsKLQotW2V4cGFuZGVkXSAKLSNpbnNwZWN0ZWQgIHsgKGxh
enktY29tcHV0ZWQtc3R5bGUuaHRtbDo1KQotLy0tIG92ZXJsb2FkZWQgLS0vIGJhY2tncm91bmQt
Y29sb3I6IGdyZWVuOwotLy0tIG92ZXJsb2FkZWQgLS0vIGZvbnQtZmFtaWx5OiBUaW1lczsKLQot
W2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxv
Y2s7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2xhenkt
Y29tcHV0ZWQtc3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbGF6eS1j
b21wdXRlZC1zdHlsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YWIwZDI5
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbGF6eS1jb21wdXRl
ZC1zdHlsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzdHlsZT4KLQotI2luc3BlY3RlZCB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
Ci0gICAgZm9udC1mYW1pbHk6IFRpbWVzOwotfQotCi0jaW5zcGVjdGVkIHsKLSAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBibGFjazsKLSAgICBmb250LWZhbWlseTogQ291cmllcjsKLX0KLQotI2luc3Bl
Y3RlZCB7Ci0gICAgYmFja2dyb3VuZDogZ3JheTsKLX0KLQotPC9zdHlsZT4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0
b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwMSk7Ci0K
LSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiPT09PSBBbGwgc3R5bGVzIChzaG91bGQgYmUgbm8gY29tcHV0ZWQpID09PT0iKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKGZhbHNlLCBmYWxz
ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU2lkZWJh
clBhbmUucHJvdG90eXBlLCAib25Db250ZW50UmVhZHkiLCBzdGVwMik7Ci0gICAgICAgIFdlYklu
c3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLmNvbXB1dGVkU3R5bGUuZXhwYW5k
KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIj09PT0gQWxsIHN0eWxlcyAoY29tcHV0ZWQgc2hvdWxkIGJlIHRo
ZXJlKSA9PT09Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0
eWxlcyhmYWxzZSwgZmFsc2UpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD4KLVRlc3RzIHRoYXQgY29tcHV0ZWQgc3R5bGVzIGV4cGFuZCBhbmQgYWxsb3cgdHJh
Y2luZyB0byBzdHlsZSBydWxlcy4KLTwvcD4KLQotPGRpdiBpZD0iaW5zcGVjdGVkIj4KLTwvZGl2
PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL21lZGlhLWVtdWxhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL21lZGlhLWVtdWxhdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDE5M2I1ODguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9tZWRpYS1lbXVsYXRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NzcgKzAsMCBAQAotVGVzdHMgdGhhdCBlbXVsYXRlZCBDU1MgbWVkaWEgaXMgcmVmbGVjdGVkIGlu
IHRoZSBTdHlsZXMgcGFuZS4KLQotT3JpZ2luYWwgc3R5bGU6Ci1bZXhwYW5kZWRdIAotCi1bZXhw
YW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxl
cyA9PT09PT09PQotW2V4cGFuZGVkXSAKLSNtYWluICB7IChtZWRpYS1lbXVsYXRpb24uaHRtbDo1
KQotY29sb3I6IHJlZDsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNo
ZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotcHJpbnQgbWVkaWEgZW11bGF0ZWQ6Ci1bZXhwYW5k
ZWRdIAotCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRj
aGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLUBtZWRpYSBwcmludCAobWVkaWEt
ZW11bGF0aW9uLmh0bWw6NykKLSNtYWluICB7IChtZWRpYS1lbXVsYXRpb24uaHRtbDo4KQotY29s
b3I6IGJsYWNrOwotCi1bZXhwYW5kZWRdIAotI21haW4gIHsgKG1lZGlhLWVtdWxhdGlvbi5odG1s
OjUpCi0vLS0gb3ZlcmxvYWRlZCAtLS8gY29sb3I6IHJlZDsKLQotW2V4cGFuZGVkXSAKLWRpdiAg
eyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotdHR5IG1lZGlh
IGVtdWxhdGVkOgotW2V4cGFuZGVkXSAKLQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsg
KCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1A
bWVkaWEgdHR5IChtZWRpYS1lbXVsYXRpb24uaHRtbDoxMSkKLSNtYWluICB7IChtZWRpYS1lbXVs
YXRpb24uaHRtbDoxMikKLWNvbG9yOiBncmVlbjsKLQotW2V4cGFuZGVkXSAKLSNtYWluICB7ICht
ZWRpYS1lbXVsYXRpb24uaHRtbDo1KQotLy0tIG92ZXJsb2FkZWQgLS0vIGNvbG9yOiByZWQ7Ci0K
LVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJs
b2NrOwotCi0KLU5vIG1lZGlhIGVtdWxhdGVkOgotW2V4cGFuZGVkXSAKLQotW2V4cGFuZGVkXSAK
LWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09
PT0KLVtleHBhbmRlZF0gCi0jbWFpbiAgeyAobWVkaWEtZW11bGF0aW9uLmh0bWw6NSkKLWNvbG9y
OiByZWQ7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRp
c3BsYXk6IGJsb2NrOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9tZWRpYS1lbXVsYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
bWVkaWEtZW11bGF0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5NjZm
ZjkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9tZWRpYS1lbXVs
YXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci0KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0jbWFpbiB7IGNvbG9yOiByZWQ7IH0KLQotQG1l
ZGlhIHByaW50IHsKLSNtYWluIHsgY29sb3I6IGJsYWNrOyB9Ci19Ci0KLUBtZWRpYSB0dHkgewot
I21haW4geyBjb2xvcjogZ3JlZW47IH0KLX0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0
LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJtYWluIiwgc3RlcDApOwotCi0gICAgZnVuY3Rp
b24gc3RlcDAoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk9yaWdp
bmFsIHN0eWxlOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRT
dHlsZXMoKTsKLSAgICAgICAgYXBwbHlFbXVsYXRlZE1lZGlhKCJwcmludCIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoIm1haW4iLCBzdGVwMSk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gc3RlcDEoKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJwcmlu
dCBtZWRpYSBlbXVsYXRlZDoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRF
bGVtZW50U3R5bGVzKCk7Ci0gICAgICAgIGFwcGx5RW11bGF0ZWRNZWRpYSgidHR5Iik7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3Qud2FpdEZvclN0eWxlcygibWFpbiIsIHN0ZXAyKTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgidHR5IG1lZGlhIGVtdWxhdGVkOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBT
ZWxlY3RlZEVsZW1lbnRTdHlsZXMoKTsKLSAgICAgICAgYXBwbHlFbXVsYXRlZE1lZGlhKCIiKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJtYWluIiwgc3RlcDMpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJObyBtZWRpYSBlbXVsYXRlZDoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5k
dW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYXBwbHlFbXVsYXRlZE1lZGlhKG1lZGlh
KQotICAgIHsKLSAgICAgICAgUGFnZUFnZW50LnNldEVtdWxhdGVkTWVkaWEobWVkaWEpOwotICAg
ICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwubWVkaWFRdWVyeVJlc3VsdENoYW5nZWQoKTsKLSAg
ICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
PHA+Ci1UZXN0cyB0aGF0IGVtdWxhdGVkIENTUyBtZWRpYSBpcyByZWZsZWN0ZWQgaW4gdGhlIFN0
eWxlcyBwYW5lLgotPC9wPgotCi08ZGl2IGlkPSJtYWluIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbWVkaWEtcXVlcmll
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21lZGlhLXF1ZXJp
ZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YjU4MDViLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbWVkaWEtcXVlcmllcy1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1UZXN0cyB0aGF0IG1l
ZGlhIHF1ZXJ5IHN0YWNrIGlzIHJlbmRlcmVkIGZvciBhc3NvY2lhdGVkIHJ1bGVzLgotCi1NYWlu
IHN0eWxlOgotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0
Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1tZWRpYT0iYWxsIiAobWVkaWEt
cXVlcmllcy5odG1sKQotQG1lZGlhIHNjcmVlbiAobWVkaWEtcXVlcmllcy5jc3M6NSkKLSNtYWlu
ICB7IChtZWRpYS1xdWVyaWVzLmNzczo2KQotY29sb3I6IHllbGxvdzsKLQotW2V4cGFuZGVkXSAK
LW1lZGlhPSJhbGwiIChtZWRpYS1xdWVyaWVzLmh0bWwpCi1AaW1wb3J0IHNjcmVlbiAobWVkaWEt
cXVlcmllcy5jc3M6MykKLUBtZWRpYSBub3QgYXVyYWwgKG1lZGlhLXF1ZXJpZXMtMS5jc3M6NSkK
LSNtYWluICB7IChtZWRpYS1xdWVyaWVzLTEuY3NzOjYpCi1ib3JkZXI6IDFweCBzb2xpZCBibGFj
azsKLQotW2V4cGFuZGVkXSAKLW1lZGlhPSJzY3JlZW4iIChtZWRpYS1xdWVyaWVzLmh0bWwpCi1A
bWVkaWEgbm90IHByaW50IChtZWRpYS1xdWVyaWVzLmh0bWw6NSkKLSNtYWluICB7IChtZWRpYS1x
dWVyaWVzLmh0bWw6NikKLWJhY2tncm91bmQ6IGJsdWU7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsg
KHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9tZWRpYS1xdWVyaWVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21lZGlhLXF1ZXJpZXMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNGFkYTBiMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL21lZGlhLXF1ZXJpZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQwICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci0KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNj
cmVlbiI+Ci1AbWVkaWEgbm90IHByaW50IHsKLSAgICAjbWFpbiB7IGJhY2tncm91bmQ6Ymx1ZTsg
fQotfQotCi1AbWVkaWEgcHJpbnQgewotICAgICNtYWluIHsgYmFja2dyb3VuZDogdHJhbnNwYXJl
bnQ7IH0KLX0KLTwvc3R5bGU+Ci0KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3Vy
Y2VzL21lZGlhLXF1ZXJpZXMuY3NzIiBtZWRpYT0iYWxsIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnNl
bGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJtYWluIiwgc3RlcDEpOwotCi0gICAgZnVuY3Rpb24g
c3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk1haW4gc3R5
bGU6Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0
cnVlLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTxwPgotVGVzdHMgdGhhdCBtZWRpYSBxdWVyeSBzdGFjayBpcyByZW5kZXJlZCBmb3IgYXNz
b2NpYXRlZCBydWxlcy4KLTwvcD4KLQotPGRpdiBpZD0ibWFpbiI+PC9kaXY+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21ldHJpY3Mt
Ym94LXNpemluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21l
dHJpY3MtYm94LXNpemluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGYyOGEwNDYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9t
ZXRyaWNzLWJveC1zaXppbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAs
MCBAQAotVGVzdHMgdGhhdCBjb250ZW50LWJveCBhbmQgYm9yZGVyLWJveCBjb250ZW50IGFyZWEg
ZGltZW5zaW9ucyBhcmUgaGFuZGxlZCBwcm9wZXJ0eSBieSB0aGUgTWV0cmljcyBwYW5lLgotCi1j
b250ZW50LWJveAotYm9yZGVyLWJveAotY29udGVudC1ib3ggcmVuZGVyZWQgZGltZW5zaW9uczog
ODAgeCA3NQotYm9yZGVyLWJveCByZW5kZXJlZCBkaW1lbnNpb25zOiA4MCB4IDU1Ci0KLVJ1bm5p
bmc6IHRlc3RCb3JkZXJCb3hJbml0MQotCi1SdW5uaW5nOiB0ZXN0Qm9yZGVyQm94SW5pdDIKLQot
UnVubmluZzogdGVzdEluaXRpYWxCb3JkZXJCb3hNZXRyaWNzCi09PT0gSW5pdGlhbCBib3JkZXIt
Ym94ID09PQotbWFyZ2luOiAxIDEgMSAxCi1ib3JkZXI6IDMgMyAzIDMKLXBhZGRpbmc6IDcgNyA3
IDcKLWNvbnRlbnQ6IDM1IHggMzUKLQotUnVubmluZzogdGVzdE1vZGlmaWVkQm9yZGVyQm94TWV0
cmljcwotPT09IE1vZGlmaWVkIGJvcmRlci1ib3ggPT09Ci1tYXJnaW46IDEgMSAxIDEKLWJvcmRl
cjogMyAzIDMgMwotcGFkZGluZzogNyA3IDcgNwotY29udGVudDogNjAgeCAzNQotCi1SdW5uaW5n
OiB0ZXN0Q29udGVudEJveEluaXQxCi0KLVJ1bm5pbmc6IHRlc3RDb250ZW50Qm94SW5pdDIKLQot
UnVubmluZzogdGVzdEluaXRpYWxDb250ZW50Qm94TWV0cmljcwotPT09IEluaXRpYWwgY29udGVu
dC1ib3ggPT09Ci1tYXJnaW46IDEgMSAxIDEKLWJvcmRlcjogMyAzIDMgMwotcGFkZGluZzogNyA3
IDcgNwotY29udGVudDogNTUgeCA1NQotCi1SdW5uaW5nOiB0ZXN0TW9kaWZpZWRDb250ZW50Qm94
TWV0cmljcwotPT09IE1vZGlmaWVkIGNvbnRlbnQtYm94ID09PQotbWFyZ2luOiAxIDEgMSAxCi1i
b3JkZXI6IDMgMyAzIDMKLXBhZGRpbmc6IDcgNyA3IDcKLWNvbnRlbnQ6IDYwIHggNTUKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9tZXRyaWNzLWJveC1zaXppbmcu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbWV0cmljcy1ib3gtc2l6aW5nLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExODA3ZTEuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9tZXRyaWNzLWJveC1zaXppbmcuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDE1NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotCi08c3R5bGU+Ci0j
Ym9yZGVyLWJveCB7Ci0gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKLSAgICB3aWR0aDogNTVw
eDsKLSAgICBoZWlnaHQ6IDU1cHg7Ci0gICAgbWFyZ2luOiAxcHg7Ci0gICAgcGFkZGluZzogN3B4
OwotICAgIGJvcmRlcjogM3B4IHNvbGlkIGJsYWNrOwotfQotCi0jY29udGVudC1ib3ggewotICAg
IGJveC1zaXppbmc6IGNvbnRlbnQtYm94OwotICAgIHdpZHRoOiA1NXB4OwotICAgIGhlaWdodDog
NTVweDsKLSAgICBtYXJnaW46IDFweDsKLSAgICBwYWRkaW5nOiA3cHg7Ci0gICAgYm9yZGVyOiAz
cHggc29saWQgYmxhY2s7Ci19Ci08L3N0eWxlPgotCi08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLQotZnVuY3Rpb24gZHVtcERpbWVuc2lvbnMoKQotewotICAgIHZhciBlbGVtZW50
OwotCi0gICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50LWJveCIp
OwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQtY29udGVudCIpLnRleHRDb250
ZW50ID0gImNvbnRlbnQtYm94IHJlbmRlcmVkIGRpbWVuc2lvbnM6ICIgKyBlbGVtZW50Lm9mZnNl
dFdpZHRoICsgIiB4ICIgKyBlbGVtZW50Lm9mZnNldEhlaWdodDsKLSAgICBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvcmRlci1ib3giKTsKLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0cHV0LWJvcmRlciIpLnRleHRDb250ZW50ID0gImJvcmRlci1ib3ggcmVuZGVy
ZWQgZGltZW5zaW9uczogIiArIGVsZW1lbnQub2Zmc2V0V2lkdGggKyAiIHggIiArIGVsZW1lbnQu
b2Zmc2V0SGVpZ2h0OwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgY29udGVudFdp
ZHRoRWxlbWVudDsKLSAgICB2YXIgY29udGVudEhlaWdodEVsZW1lbnQ7Ci0KLSAgICBmdW5jdGlv
biBnZXRDaGlsZFRleHRCeUNsYXNzTmFtZShlbGVtZW50LCBjbGFzc05hbWUpCi0gICAgewotICAg
ICAgICB2YXIgY2hpbGRyZW4gPSBlbGVtZW50LmNoaWxkcmVuOwotICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoY2hpbGRy
ZW5baV0uY2xhc3NMaXN0ICYmIGNoaWxkcmVuW2ldLmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05h
bWUpKQotICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbltpXS50ZXh0Q29udGVudDsKLSAg
ICAgICAgfQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1w
TWV0cmljcyhzZWN0aW9uRWxlbWVudCkKLSAgICB7Ci0gICAgICAgIHZhciBtYXJnaW5FbGVtZW50
ID0gc2VjdGlvbkVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibWFyZ2luIilbMF07Ci0g
ICAgICAgIHZhciBib3JkZXJFbGVtZW50ID0gc2VjdGlvbkVsZW1lbnQuZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZSgiYm9yZGVyIilbMF07Ci0gICAgICAgIHZhciBwYWRkaW5nRWxlbWVudCA9IHNlY3Rp
b25FbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInBhZGRpbmciKVswXTsKLSAgICAgICAg
dmFyIGNvbnRlbnREaW1lbnNpb25zID0gc2VjdGlvbkVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZSgiY29udGVudCIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJtYXJnaW46ICIgKyBnZXRDaGlsZFRleHRCeUNsYXNz
TmFtZShtYXJnaW5FbGVtZW50LCAidG9wIikgKyAiICIgKyBnZXRDaGlsZFRleHRCeUNsYXNzTmFt
ZShtYXJnaW5FbGVtZW50LCAicmlnaHQiKSArICIgIiArIGdldENoaWxkVGV4dEJ5Q2xhc3NOYW1l
KG1hcmdpbkVsZW1lbnQsICJib3R0b20iKSArICIgIiArIGdldENoaWxkVGV4dEJ5Q2xhc3NOYW1l
KG1hcmdpbkVsZW1lbnQsICJsZWZ0IikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiYm9yZGVyOiAiICsgZ2V0Q2hpbGRUZXh0QnlDbGFzc05hbWUoYm9yZGVyRWxlbWVudCwgInRv
cCIpICsgIiAiICsgZ2V0Q2hpbGRUZXh0QnlDbGFzc05hbWUoYm9yZGVyRWxlbWVudCwgInJpZ2h0
IikgKyAiICIgKyBnZXRDaGlsZFRleHRCeUNsYXNzTmFtZShib3JkZXJFbGVtZW50LCAiYm90dG9t
IikgKyAiICIgKyBnZXRDaGlsZFRleHRCeUNsYXNzTmFtZShib3JkZXJFbGVtZW50LCAibGVmdCIp
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInBhZGRpbmc6ICIgKyBnZXRDaGls
ZFRleHRCeUNsYXNzTmFtZShwYWRkaW5nRWxlbWVudCwgInRvcCIpICsgIiAiICsgZ2V0Q2hpbGRU
ZXh0QnlDbGFzc05hbWUocGFkZGluZ0VsZW1lbnQsICJyaWdodCIpICsgIiAiICsgZ2V0Q2hpbGRU
ZXh0QnlDbGFzc05hbWUocGFkZGluZ0VsZW1lbnQsICJib3R0b20iKSArICIgIiArIGdldENoaWxk
VGV4dEJ5Q2xhc3NOYW1lKHBhZGRpbmdFbGVtZW50LCAibGVmdCIpKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoImNvbnRlbnQ6ICIgKyBjb250ZW50RGltZW5zaW9uc1swXS50ZXh0
Q29udGVudCArICIgeCAiICsgY29udGVudERpbWVuc2lvbnNbMV0udGV4dENvbnRlbnQpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIGNyZWF0ZURvdWJsZUNsaWNrRXZlbnQoKQotICAgIHsKLSAgICAg
ICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTsKLSAgICAg
ICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoImRibGNsaWNrIiwgdHJ1ZSwgdHJ1ZSwgbnVsbCwgMiwg
MCwgMCwgMCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51bGwpOwotICAgICAg
ICByZXR1cm4gZXZlbnQ7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUo
WwotICAgICAgICBmdW5jdGlvbiB0ZXN0Qm9yZGVyQm94SW5pdDEobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiYm9y
ZGVyLWJveCIsIG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RCb3Jk
ZXJCb3hJbml0MihuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBzZWN0aW9uID0gV2ViSW5z
cGVjdG9yLnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMubWV0cmljczsKLSAgICAgICAgICAg
IHNlY3Rpb24uZXhwYW5kKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVu
ZGluZ0Rpc3BhdGNoZXMobmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVz
dEluaXRpYWxCb3JkZXJCb3hNZXRyaWNzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZh
ciBzcGFuRWxlbWVudHMgPSBzZWN0aW9uLmVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgi
Y29udGVudCIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIik7Ci0gICAgICAgICAgICBj
b250ZW50V2lkdGhFbGVtZW50ID0gc3BhbkVsZW1lbnRzWzBdOwotICAgICAgICAgICAgY29udGVu
dEhlaWdodEVsZW1lbnQgPSBzcGFuRWxlbWVudHNbMV07Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiPT09IEluaXRpYWwgYm9yZGVyLWJveCA9PT0iKTsKLSAgICAgICAgICAg
IGR1bXBNZXRyaWNzKHNlY3Rpb24uZWxlbWVudCk7Ci0gICAgICAgICAgICBjb250ZW50V2lkdGhF
bGVtZW50LmRpc3BhdGNoRXZlbnQoY3JlYXRlRG91YmxlQ2xpY2tFdmVudCgpKTsKLSAgICAgICAg
ICAgIGNvbnRlbnRXaWR0aEVsZW1lbnQudGV4dENvbnRlbnQgPSAiNjAiOwotICAgICAgICAgICAg
Y29udGVudFdpZHRoRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5
RXZlbnQoIkVudGVyIikpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRp
bmdEaXNwYXRjaGVzKG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RN
b2RpZmllZEJvcmRlckJveE1ldHJpY3MobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBNb2RpZmllZCBib3JkZXItYm94ID09PSIpOwotICAg
ICAgICAgICAgZHVtcE1ldHJpY3Moc2VjdGlvbi5lbGVtZW50KTsKLSAgICAgICAgICAgIG5leHQo
KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0Q29udGVudEJveEluaXQxKG5l
eHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJ
ZCgiY29udGVudC1ib3giLCBuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0
ZXN0Q29udGVudEJveEluaXQyKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHNlY3Rpb24g
PSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQYW5lcy5tZXRyaWNzOwotICAg
ICAgICAgICAgc2VjdGlvbi5leHBhbmQoKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QucnVu
QWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5j
dGlvbiB0ZXN0SW5pdGlhbENvbnRlbnRCb3hNZXRyaWNzKG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHZhciBzcGFuRWxlbWVudHMgPSBzZWN0aW9uLmVsZW1lbnQuZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZSgiY29udGVudCIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIik7Ci0gICAg
ICAgICAgICBjb250ZW50V2lkdGhFbGVtZW50ID0gc3BhbkVsZW1lbnRzWzBdOwotICAgICAgICAg
ICAgY29udGVudEhlaWdodEVsZW1lbnQgPSBzcGFuRWxlbWVudHNbMV07Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IEluaXRpYWwgY29udGVudC1ib3ggPT09Iik7Ci0g
ICAgICAgICAgICBkdW1wTWV0cmljcyhzZWN0aW9uLmVsZW1lbnQpOwotICAgICAgICAgICAgY29u
dGVudFdpZHRoRWxlbWVudC5kaXNwYXRjaEV2ZW50KGNyZWF0ZURvdWJsZUNsaWNrRXZlbnQoKSk7
Ci0gICAgICAgICAgICBjb250ZW50V2lkdGhFbGVtZW50LnRleHRDb250ZW50ID0gIjYwIjsKLSAg
ICAgICAgICAgIGNvbnRlbnRXaWR0aEVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0
LmNyZWF0ZUtleUV2ZW50KCJFbnRlciIpKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QucnVu
QWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhuZXh0KTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAg
ICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0TW9kaWZpZWRDb250ZW50Qm94TWV0cmljcyhu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IE1vZGlmaWVkIGNvbnRlbnQtYm94ID09
PSIpOwotICAgICAgICAgICAgZHVtcE1ldHJpY3Moc2VjdGlvbi5lbGVtZW50KTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImR1bXBEaW1lbnNpb25zKCkiLCBjYWxs
YmFjayk7Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgY29udGVudC1ib3ggYW5kIGJv
cmRlci1ib3ggY29udGVudCBhcmVhIGRpbWVuc2lvbnMgYXJlIGhhbmRsZWQgcHJvcGVydHkgYnkg
dGhlIE1ldHJpY3MgcGFuZS4KLTwvcD4KLTxkaXYgaWQ9ImNvbnRlbnQtYm94Ij5jb250ZW50LWJv
eDwvZGl2PgotPGRpdiBpZD0iYm9yZGVyLWJveCI+Ym9yZGVyLWJveDwvZGl2PgotPGRpdiBpZD0i
b3V0cHV0LWNvbnRlbnQiPnp6ejwvZGl2PgotPGRpdiBpZD0ib3V0cHV0LWJvcmRlciI+enp6PC9k
aXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3BhcnNlLXN0eWxlc2hlZXQtZXJyb3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvcGFyc2Utc3R5bGVzaGVldC1lcnJvcnMtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNWVjYjc1Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcGFyc2Utc3R5bGVzaGVldC1lcnJvcnMtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotVGVzdHMgdGhhdCBDU1NQYXJzZXIg
cHJvZHVjZXMgc291cmNlIGRhdGEgY29uc2lzdGVudCB3aXRoIENTU09NIHdoZW4gcGFyc2luZyBi
cm9rZW4gc3R5bGVzaGVldHMuIEJ1ZyA5ODI0NgotCi1ib2R5OiBbcmVndWxhciwgMTowLTE6NF0g
ewotICAgIFsnY29sb3InOidibGFjayddIEBbMjo0LTI6MTddIGFjdGl2ZQotfQotYm9keTogW3Jl
Z3VsYXIsIDEyOjAtMTI6NF0gewotICAgIFsnYmFja2dyb3VuZC1jb2xvcic6J2Jyb2tlbi1kZWNs
YXJhdGlvbicgbm9uLXBhcnNlZF0gQFsxMzo0LTEzOjQxXSBhY3RpdmUKLX0KLWJvZHk6IFtyZWd1
bGFyLCAyOjAtMjo0XSB7Ci0gICAgWydjb2xvcic6J2ltcG9ydC1lcnJvcicgbm9uLXBhcnNlZF0g
QFszOjQtMzoyNF0gYWN0aXZlCi19Ci1ib2R5OiBbcmVndWxhciwgMjowLTI6NF0gewotICAgIFsn
Y29sb3InOidpbXBvcnQtZXJyb3ItYmxvY2snIG5vbi1wYXJzZWRdIEBbMzo0LTM6MzBdIGFjdGl2
ZQotfQotYm9keTogW3JlZ3VsYXIsIDI6MC0yOjRdIHsKLSAgICBbJ2NvbG9yJzonbWVkaWEtZW1w
dHknIG5vbi1wYXJzZWRdIEBbMzo0LTM6MjNdIGFjdGl2ZQotfQotYm9keTogW3JlZ3VsYXIsIDI6
MC0yOjRdIHsKLSAgICBbJ2NvbG9yJzoncGFnZS1lcnJvcicgbm9uLXBhcnNlZF0gQFszOjQtMzoy
Ml0gYWN0aXZlCi19Ci1ib2R5OiBbcmVndWxhciwgMjowLTI6NF0gewotICAgIFsnY29sb3InOidw
YWdlLWJsb2NrJyBub24tcGFyc2VkXSBAWzM6NC0zOjIyXSBhY3RpdmUKLX0KLWJvZHk6IFtyZWd1
bGFyLCAxOjAtMTo0XSB7Ci0gICAgWydjb2xvcic6J2JlZm9yZS1pbXBvcnQnIG5vbi1wYXJzZWRd
IEBbMjo0LTI6MjVdIGFjdGl2ZQotfQotYm9keTogW3JlZ3VsYXIsIDU6MC01OjRdIHsKLSAgICBb
J2NvbG9yJzonYWZ0ZXItaW1wb3J0JyBub24tcGFyc2VkXSBAWzY6NC02OjI0XSBhY3RpdmUKLX0K
LWJvZHk6IFtyZWd1bGFyLCA0OjAtNDo0XSB7Ci0gICAgWydjb2xvcic6J2FmdGVyLWludmFsaWQt
Zm9udC1mYWNlJyBub24tcGFyc2VkXSBAWzU6NC01OjM1XSBhY3RpdmUKLX0KLWJvZHk6IFtyZWd1
bGFyLCAzOjAtMzo0XSB7Ci0gICAgWydjb2xvcic6J2FmdGVyLWludmFsaWQtcmVnaW9uJyBub24t
cGFyc2VkXSBAWzQ6NC00OjMyXSBhY3RpdmUKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9wYXJzZS1zdHlsZXNoZWV0LWVycm9ycy5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9wYXJzZS1zdHlsZXNoZWV0LWVycm9ycy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTg4YTQ0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvcGFyc2Utc3R5bGVzaGVldC1lcnJvcnMuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDExOCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5z
aG93UGFuZWwoImVsZW1lbnRzIik7Ci0KLSAgICBDU1NBZ2VudC5nZXRBbGxTdHlsZVNoZWV0cyho
ZWFkZXJzQ2FsbGJhY2spOwotCi0gICAgZnVuY3Rpb24gaGVhZGVyc0NhbGxiYWNrKGVycm9yLCBo
ZWFkZXJzKQotICAgIHsKLSAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiRXJyb3IgbG9hZGluZyBzdHlsZXNoZWV0IGhlYWRlcnM6ICIgKyBl
cnJvcik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBo
ZWFkZXJzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgQ1NTQWdlbnQuZ2V0U3R5bGVTaGVldCho
ZWFkZXJzW2ldLnN0eWxlU2hlZXRJZCwgc3R5bGVTaGVldENhbGxiYWNrLmJpbmQobnVsbCwgaSA9
PT0gaGVhZGVycy5sZW5ndGggLSAxKSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3R5bGVTaGVl
dENhbGxiYWNrKGlzTGFzdCwgZXJyb3IsIHN0eWxlU2hlZXQpCi0gICAgewotICAgICAgICBpZiAo
ZXJyb3IpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFcnJvciBsb2Fk
aW5nIHN0eWxlc2hlZXQgYm9keTogIiArIGVycm9yKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXBSdWxlc0FycmF5KHN0eWxlU2hlZXQucnVsZXMpOwotICAg
ICAgICBpZiAoaXNMYXN0KQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotCi08c3R5bGU+Ci1ib2R5IHsKLSAgICBjb2xvcjog
YmxhY2s7Ci19Ci0KLWZvbnQtZmFtaWx5OiBzZXJpZjsKLX0KLQotYm9keTpob3ZlciB7Ci0gICAg
Y29sb3I6ICNDREU7Ci19Ci0KLWJvZHkgewotICAgIGJhY2tncm91bmQtY29sb3I6IGJyb2tlbi1k
ZWNsYXJhdGlvbjsKLX0KLQotPC9zdHlsZT4KLTxzdHlsZT4KLUBpbXBvcnQgMTI7Ci1ib2R5IHsK
LSAgICBjb2xvcjogaW1wb3J0LWVycm9yOwotfQotPC9zdHlsZT4KLTxzdHlsZT4KLUBpbXBvcnQg
MTIge30KLWJvZHkgewotICAgIGNvbG9yOiBpbXBvcnQtZXJyb3ItYmxvY2s7Ci19Ci08L3N0eWxl
PgotPHN0eWxlPgotQG1lZGlhIDsKLWJvZHkgewotICAgIGNvbG9yOiBtZWRpYS1lbXB0eTsKLX0K
LTwvc3R5bGU+Ci08c3R5bGU+Ci1AcGFnZSA7Ci1ib2R5IHsKLSAgICBjb2xvcjogcGFnZS1lcnJv
cjsKLX0KLTwvc3R5bGU+Ci08c3R5bGU+Ci1AcGFnZSB7fQotYm9keSB7Ci0gICAgY29sb3I6IHBh
Z2UtYmxvY2s7Ci19Ci08L3N0eWxlPgotPHN0eWxlPgotYm9keSB7Ci0gICAgY29sb3I6IGJlZm9y
ZS1pbXBvcnQ7Ci19Ci1AaW1wb3J0ICJmb28iOwotYm9keSB7Ci0gICAgY29sb3I6IGFmdGVyLWlt
cG9ydDsKLX0KLTwvc3R5bGU+Ci08c3R5bGU+Ci1AZm9udC1mYWNlIHsKLSAgICBmb250LWZhbWls
eTogaW5pdGlhbDsKLX0KLWJvZHkgewotICAgIGNvbG9yOiBhZnRlci1pbnZhbGlkLWZvbnQtZmFj
ZTsKLX0KLTwvc3R5bGU+Ci08c3R5bGU+Ci1ALXdlYmtpdC1yZWdpb24gJV4lIHsKLX0KLWJvZHkg
ewotICAgIGNvbG9yOiBhZnRlci1pbnZhbGlkLXJlZ2lvbjsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+
Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBDU1NQYXJzZXIg
cHJvZHVjZXMgc291cmNlIGRhdGEgY29uc2lzdGVudCB3aXRoIENTU09NIHdoZW4gcGFyc2luZyBi
cm9rZW4gc3R5bGVzaGVldHMuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05ODI0NiI+QnVnIDk4MjQ2PC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wYXJzZS11dGY4LWJvbS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3BhcnNlLXV0ZjgtYm9tLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzczNWFiNS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3BhcnNlLXV0ZjgtYm9tLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLVRlc3RzIHRoYXQgc291cmNlIGRh
dGEgYXJlIGV4dHJhY3RlZCBjb3JyZWN0bHkgZnJvbSBleHRlcm5hbCBzdHlsZXNoZWV0cyBpbiBV
VEYtOCB3aXRoIEJPTS4gQnVnIDU5MzIyLgotCi1JJ20gcmVkLgotCi1bZXhwYW5kZWRdIAotZWxl
bWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQot
W2V4cGFuZGVkXSAKLWgxICB7IChwYXJzZS11dGY4LWJvbS1tYWluLmNzczozKQotY29sb3I6IHJl
ZDsKLQotW2V4cGFuZGVkXSAKLWgxICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5
OiBibG9jazsKLWZvbnQtc2l6ZTogMmVtOwotLXdlYmtpdC1tYXJnaW4tYmVmb3JlOiAwLjY3ZW07
Ci0td2Via2l0LW1hcmdpbi1hZnRlcjogMC42N2VtOwotLXdlYmtpdC1tYXJnaW4tc3RhcnQ6IDBw
eDsKLS13ZWJraXQtbWFyZ2luLWVuZDogMHB4OwotZm9udC13ZWlnaHQ6IGJvbGQ7Ci0KLQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3BhcnNlLXV0ZjgtYm9tLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3BhcnNlLXV0ZjgtYm9tLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhZjU4ZjguLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wYXJzZS11dGY4LWJvbS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9InJlc291cmNlcy9wYXJzZS11dGY4LWJvbS1tYWluLmNzcyI+
Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0
ZWQiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgZmFsc2UsIHRydWUpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhh
dCBzb3VyY2UgZGF0YSBhcmUgZXh0cmFjdGVkIGNvcnJlY3RseSBmcm9tIGV4dGVybmFsIHN0eWxl
c2hlZXRzIGluIFVURi04IHdpdGggQk9NLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTkzMjIiPkJ1ZyA1OTMyMjwvYT4uCi08L3A+Ci08aDEgaWQ9Imlu
c3BlY3RlZCI+Ci1JJ20gcmVkLgotPC9oMT4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wYXN0ZS1wcm9wZXJ0eS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Bhc3RlLXByb3BlcnR5LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2YyY2NjNS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Bhc3RlLXByb3BlcnR5LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLVRlc3RzIHRoYXQgc3BsaXR0aW5nIHBy
b3BlcnRpZXMgd2hlbiBwYXN0aW5nIHdvcmtzLgotCi1UZXh0Ci1CZWZvcmUgcGFzdGluZzoKLVtl
eHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi1mb250LXNpemU6IDEycHg7Ci0KLT09PT09
PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2Vy
IGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi1BZnRlciBwYXN0aW5nICdt
YXJnaW4tbGVmdDogMXB4JzoKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi1tYXJn
aW4tbGVmdDogMXB4OwotZm9udC1zaXplOiAxMnB4OwotCi09PT09PT09PSBNYXRjaGVkIENTUyBS
dWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0
KQotZGlzcGxheTogYmxvY2s7Ci0KLQotQWZ0ZXIgcGFzdGluZyAnbWFyZ2luLXRvcDogMXB4OyBj
b2xvcjogcmVkOyc6Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotbWFyZ2luLWxl
ZnQ6IDFweDsKLWZvbnQtc2l6ZTogMTJweDsKLW1hcmdpbi10b3A6IDFweDsKLWNvbG9yOiByZWQ7
Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotZGl2
ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi1BZnRlciBw
YXN0aW5nICdmb286IGJhcjsgbW9vOiB6b28nIG92ZXIgJ21hcmdpbi10b3AnOgotW2V4cGFuZGVk
XSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLW1hcmdpbi1sZWZ0OiAxcHg7Ci1mb250LXNpemU6IDEy
cHg7Ci0vLS0gb3ZlcmxvYWRlZCAtLS8gZm9vOiBiYXI7Ci0vLS0gb3ZlcmxvYWRlZCAtLS8gbW9v
OiB6b287Ci1jb2xvcjogcmVkOwotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09
PQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTog
YmxvY2s7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Bh
c3RlLXByb3BlcnR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Bhc3RlLXBy
b3BlcnR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3M2ViMWYuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wYXN0ZS1wcm9wZXJ0eS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsODMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJ
bnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0
Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHBhc3RlRmlyc3RQcm9wZXJ0eSk7Ci0K
LSAgICBmdW5jdGlvbiBwYXN0ZUZpcnN0UHJvcGVydHkoKQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIkJlZm9yZSBwYXN0aW5nOiIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIHZhciBzZWN0aW9u
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMuc3R5bGVzLnNlY3Rp
b25zWzBdWzFdOwotICAgICAgICBzZWN0aW9uLmV4cGFuZCgpOwotCi0gICAgICAgIHZhciB0cmVl
RWxlbWVudCA9IHNlY3Rpb24uYWRkTmV3QmxhbmtQcm9wZXJ0eSgwKTsKLSAgICAgICAgcGFzdGVQ
cm9wZXJ0eSh0cmVlRWxlbWVudCwgIm1hcmdpbi1sZWZ0OiAxcHgiLCBwYXN0ZVR3b1Byb3BlcnRp
ZXMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhc3RlVHdvUHJvcGVydGllcygpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgcGFzdGluZyAnbWFyZ2luLWxl
ZnQ6IDFweCc6Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0
eWxlcyh0cnVlKTsKLQotICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSBXZWJJbnNwZWN0b3IucGFu
ZWxzLmVsZW1lbnRzLnNpZGViYXJQYW5lcy5zdHlsZXMuc2VjdGlvbnNbMF1bMV0uYWRkTmV3Qmxh
bmtQcm9wZXJ0eSgyKTsKLSAgICAgICAgcGFzdGVQcm9wZXJ0eSh0cmVlRWxlbWVudCwgIm1hcmdp
bi10b3A6IDFweDsgY29sb3I6IHJlZDsiLCBwYXN0ZU92ZXJFeGlzdGluZ1Byb3BlcnR5KTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBwYXN0ZU92ZXJFeGlzdGluZ1Byb3BlcnR5KCkKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZnRlciBwYXN0aW5nICdtYXJnaW4tdG9w
OiAxcHg7IGNvbG9yOiByZWQ7JzoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0
ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotCi0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9IEluc3Bl
Y3RvclRlc3QuZ2V0RWxlbWVudFN0eWxlUHJvcGVydHlUcmVlSXRlbSgibWFyZ2luLXRvcCIpOwot
ICAgICAgICBwYXN0ZVByb3BlcnR5KHRyZWVFbGVtZW50LCAiZm9vOiBiYXI7IG1vbzogem9vIiwg
ZHVtcEFuZENvbXBsZXRlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wQW5kQ29tcGxldGUo
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIHBhc3Rpbmcg
J2ZvbzogYmFyOyBtb286IHpvbycgb3ZlciAnbWFyZ2luLXRvcCc6Iik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKLQotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhc3RlUHJv
cGVydHkodHJlZUVsZW1lbnQsIHByb3BlcnR5VGV4dCwgY2FsbGJhY2spCi0gICAgewotICAgICAg
ICB0cmVlRWxlbWVudC5uYW1lRWxlbWVudC50ZXh0Q29udGVudCA9IHByb3BlcnR5VGV4dDsKLSAg
ICAgICAgdHJlZUVsZW1lbnQuc3RhcnRFZGl0aW5nKCk7Ci0KLSAgICAgICAgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoIlNlbGVjdEFsbCIpOwotICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ29w
eSIpOwotICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHJlbG9hZFN0eWxlcy5iaW5kKHRo
aXMsIGNhbGxiYWNrKSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcmVsb2FkU3R5bGVzKGNhbGxi
YWNrKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgib3RoZXIiKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKG90aGVyQ2Fs
bGJhY2spOwotCi0gICAgICAgIGZ1bmN0aW9uIG90aGVyQ2FsbGJhY2soKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNw
ZWN0ZWQiLCBjYWxsYmFjayk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgc3BsaXR0
aW5nIHByb3BlcnRpZXMgd2hlbiBwYXN0aW5nIHdvcmtzLgotPC9wPgotCi08ZGl2IGlkPSJpbnNw
ZWN0ZWQiIHN0eWxlPSJmb250LXNpemU6IDEycHgiPlRleHQ8L2Rpdj4KLTxkaXYgaWQ9Im90aGVy
Ij48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9wZXJmb3JtLXVuZG8tcGVyZm9ybS1vZi1tZXJnYWJsZS1hY3Rpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wZXJmb3JtLXVuZG8tcGVy
Zm9ybS1vZi1tZXJnYWJsZS1hY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxMGE4MjZhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvcGVyZm9ybS11bmRvLXBlcmZvcm0tb2YtbWVyZ2FibGUtYWN0aW9uLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLVRlc3RzIHRoYXQgcGVyZm9ybS11bmRv
LXBlcmZvcm0gb2YgdGhlIG1lcmdlYWJsZSBhY3Rpb24gZG9lcyBub3QgY3Jhc2guCi0KLUluaXRp
YWwgdmFsdWUKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1h
dGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotLmNvbnRhaW5lciAgeyAocGVy
Zm9ybS11bmRvLXBlcmZvcm0tb2YtbWVyZ2FibGUtYWN0aW9uLmh0bWw6NykKLWZvbnQtd2VpZ2h0
OiBib2xkOwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1k
aXNwbGF5OiBibG9jazsKLQotCi1BZnRlciBjaGFuZ2luZyBwcm9wZXJ0eQotW2V4cGFuZGVkXSAK
LWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09
PT0KLVtleHBhbmRlZF0gCi0uY29udGFpbmVyICB7IChwZXJmb3JtLXVuZG8tcGVyZm9ybS1vZi1t
ZXJnYWJsZS1hY3Rpb24uaHRtbDo3KQotZm9udC13ZWlnaHQ6IG5vcm1hbDsKLQotW2V4cGFuZGVk
XSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQot
QWZ0ZXIgdW5kbwotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0g
TWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0uY29udGFpbmVyICB7IChw
ZXJmb3JtLXVuZG8tcGVyZm9ybS1vZi1tZXJnYWJsZS1hY3Rpb24uaHRtbDo3KQotZm9udC13ZWln
aHQ6IGJvbGQ7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkK
LWRpc3BsYXk6IGJsb2NrOwotCi0KLUFmdGVyIHBlcmZvcm0KLVtleHBhbmRlZF0gCi1lbGVtZW50
LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhw
YW5kZWRdIAotLmNvbnRhaW5lciAgeyAocGVyZm9ybS11bmRvLXBlcmZvcm0tb2YtbWVyZ2FibGUt
YWN0aW9uLmh0bWw6NykKLWZvbnQtd2VpZ2h0OiBub3JtYWw7Ci0KLVtleHBhbmRlZF0gCi1kaXYg
IHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wZXJmb3JtLXVuZG8tcGVyZm9ybS1v
Zi1tZXJnYWJsZS1hY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcGVy
Zm9ybS11bmRvLXBlcmZvcm0tb2YtbWVyZ2FibGUtYWN0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDA1ZWMxOTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9wZXJmb3JtLXVuZG8tcGVyZm9ybS1vZi1tZXJnYWJsZS1hY3Rpb24uaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3Qu
anMiPjwvc2NyaXB0PgotCi08c3R5bGU+Ci0uY29udGFpbmVyIHsKLSAgZm9udC13ZWlnaHQ6IGJv
bGQKLX0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIElu
c3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIHN0ZXAx
KTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJJbml0aWFsIHZhbHVlIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNl
bGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKLQotICAgICAgICB2YXIgdHJlZUl0ZW0gPSBJbnNw
ZWN0b3JUZXN0LmdldE1hdGNoZWRTdHlsZVByb3BlcnR5VHJlZUl0ZW0oImZvbnQtd2VpZ2h0Iik7
Ci0gICAgICAgIHRyZWVJdGVtLmFwcGx5U3R5bGVUZXh0KCJmb250LXdlaWdodDogbm9ybWFsIiwg
dHJ1ZSwgZmFsc2UpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoImNvbnRh
aW5lciIsIHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgY2hhbmdpbmcgcHJvcGVydHkiKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwot
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC51bmRvKCk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3Qud2FpdEZvclN0eWxlcygiY29udGFpbmVyIiwgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJB
ZnRlciB1bmRvIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0
eWxlcyh0cnVlKTsKLQotICAgICAgICB2YXIgdHJlZUl0ZW0gPSBJbnNwZWN0b3JUZXN0LmdldE1h
dGNoZWRTdHlsZVByb3BlcnR5VHJlZUl0ZW0oImZvbnQtd2VpZ2h0Iik7Ci0gICAgICAgIHRyZWVJ
dGVtLmFwcGx5U3R5bGVUZXh0KCJmb250LXdlaWdodDogbm9ybWFsIiwgdHJ1ZSwgZmFsc2UpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIHN0ZXA0KTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgcGVyZm9ybSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1
bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBwZXJmb3JtLXVuZG8tcGVyZm9ybSBvZiB0
aGUgbWVyZ2VhYmxlIGFjdGlvbiBkb2VzIG5vdCBjcmFzaC4KLTwvcD4KLQotPGRpdiBpZD0iY29u
dGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLTxkaXYgaWQ9Im90aGVyIiBjbGFzcz0i
Y29udGFpbmVyIj48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1jc3MtcmVnaW9ucy1jb21tYW5kcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdp
b25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGQxOTlmOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3Rv
Y29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDQ1ICswLDAgQEAKLVRlc3RzIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMgYW5kIGV2ZW50czoKLQot
Z2V0TmFtZWRGbG93Q29sbGVjdGlvbiBCdWcgOTE2MDcKLWdldEZsb3dCeU5hbWUgQnVnIDkxODU1
Ci1uYW1lZEZsb3dDcmVhdGVkIEJ1ZyA5MjczOQotbmFtZWRGbG93UmVtb3ZlZCBCdWcgOTI3MzkK
LXJlZ2lvbk92ZXJzZXRDaGFuZ2VkIEJ1ZyAxMTc4MzMKLVRoaXMgdGV4dCBpcyBmcm9tIENTUyBO
YW1lZCBGbG93ICJmbG93MyIuCi0KLQotUnVubmluZzogdGVzdEdldE5hbWVkRmxvd0NvbGxlY3Rp
b24KLT09PSBDU1MgTmFtZWQgRmxvd3MgaW4gbWFpbiBkb2N1bWVudCA9PT0KLSogTmFtZWQgRmxv
dyAiZmxvdzEiCi1Db250ZW50IEVsZW1lbnRzOiAxCi1SZWdpb25zOiAzCi0qIE5hbWVkIEZsb3cg
ImZsb3cyIgotQ29udGVudCBFbGVtZW50czogMQotUmVnaW9uczogMgotKiBOYW1lZCBGbG93ICJm
bG93MyIKLUNvbnRlbnQgRWxlbWVudHM6IDEKLVJlZ2lvbnM6IDAKLQotUnVubmluZzogdGVzdEdl
dE5hbWVkRmxvd0NvbGxlY3Rpb25XaXRoSW52YWxpZERvY3VtZW50Ci09PT0gQ1NTIE5hbWVkIEZs
b3dzIGluICNmYWtlLWRvY3VtZW50ID09PQotI2Zha2UtZG9jdW1lbnQgaXMgbm90IGEgZG9jdW1l
bnQKLQotUnVubmluZzogdGVzdEdldEZsb3dCeU5hbWUKLT09PSBOYW1lZCBGbG93ICJmbG93MiIg
ZnJvbSBtYWluIGRvY3VtZW50ID09PQotKiBOYW1lZCBGbG93ICJmbG93MiIKLUNvbnRlbnQgRWxl
bWVudHM6IDEKLVJlZ2lvbnM6IDIKLQotUnVubmluZzogdGVzdEdldEZsb3dCeU5hbWVXaXRoSW52
YWxpZE5hbWUKLT09PSBOYW1lIEZsb3cgImZsb3c0IiBmcm9tIG1haW4gZG9jdW1lbnQgPT09Ci1U
aGVyZSBpcyBubyBOYW1lZCBGbG93ICJmbG93NCIgaW4gdGhlIG1haW4gZG9jdW1lbnQKLQotUnVu
bmluZzogdGVzdE5hbWVkRmxvd0NyZWF0ZWQKLU5hbWVkRmxvd0NyZWF0ZWQ6ICJ0bXBOYW1lZEZs
b3ciCi0KLVJ1bm5pbmc6IHRlc3RSZWdpb25PdmVyc2V0Q2hhbmdlZAotUmVnaW9uT3ZlcnNldENo
YW5nZWQ6ICJmbG93MyIKLQotUnVubmluZzogdGVzdE5hbWVkRmxvd1JlbW92ZWQKLU5hbWVkRmxv
d1JlbW92ZWQ6ICJ0bXBOYW1lZEZsb3ciCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWUzZTc2OC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNTUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBjcmVhdGVEeW5hbWljRWxlbWVudHMoKQotewot
ICAgIHZhciBmcmFtZURvYyA9IHdpbmRvdy5mcmFtZXNbMF0uZG9jdW1lbnQ7Ci0KLSAgICB2YXIg
ZWwgPSBmcmFtZURvYy5jcmVhdGVFbGVtZW50KCJhcnRpY2xlIik7Ci0gICAgZWwuc3R5bGUud2Vi
a2l0Rmxvd0ludG8gPSAiZmxvdzQiOwotICAgIGZyYW1lRG9jLmJvZHkuYXBwZW5kQ2hpbGQoZWwp
OwotCi0gICAgZWwgPSBmcmFtZURvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICBlbC5zdHls
ZS53ZWJraXRGbG93RnJvbSA9ICJmbG93NCI7Ci0gICAgZnJhbWVEb2MuYm9keS5hcHBlbmRDaGls
ZChlbCk7Ci0KLSAgICBydW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZU5hbWVkRmxvdygp
Ci17Ci0gICAgdmFyIGFydGljbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhcnRpY2xlIik7
Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotCi0gICAgYXJ0
aWNsZS5pZCA9ICJ0bXBBcnRpY2xlIjsKLSAgICBhcnRpY2xlLnN0eWxlWyItd2Via2l0LWZsb3ct
aW50byJdID0gInRtcE5hbWVkRmxvdyI7Ci0gICAgYXJ0aWNsZS50ZXh0Q29udGVudCA9ICJUaGlz
IHRleHQgaXMgZnJvbSBDU1MgTmFtZWQgRmxvdyBcInRtcE5hbWVkRmxvd1wiIjsKLQotICAgIGRp
di5pZCA9ICJ0bXBEaXYiOwotICAgIGRpdi5zdHlsZVsiLXdlYmtpdC1mbG93LWZyb20iXSA9ICJ0
bXBOYW1lZEZsb3ciOwotICAgIGRpdi5zdHlsZVsiaGVpZ2h0Il0gPSAiNXB4IjsKLSAgICBkaXYu
c3R5bGVbIndpZHRoIl0gPSAiMjBweCI7Ci0KLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGFydGljbGUpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKLX0KLQotZnVu
Y3Rpb24gcmVtb3ZlTmFtZWRGbG93KCkKLXsKLSAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxk
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0bXBBcnRpY2xlIikpOwotICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRtcERpdiIpKTsKLX0KLQot
ZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMi
KTsKLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3RHZXROYW1lZEZsb3dDb2xsZWN0aW9uKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoZG9jdW1lbnRDYWxsYmFjayk7Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIGRvY3VtZW50Q2FsbGJhY2soZG9jdW1lbnQpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldE5hbWVkRmxv
d0NvbGxlY3Rpb25Bc3luYyhkb2N1bWVudC5pZCwgbmFtZWRGbG93Q2FsbGJhY2spOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBuYW1lZEZsb3dDYWxsYmFjayhuYW1lZEZs
b3dDb2xsZWN0aW9uKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCI9PT0gQ1NTIE5hbWVkIEZsb3dzIGluIG1haW4gZG9jdW1lbnQgPT09Iik7
Ci0KLSAgICAgICAgICAgICAgICBpZiAoIW5hbWVkRmxvd0NvbGxlY3Rpb24pIHsKLSAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlshXSBGYWlsZWQgdG8gZ2V0IE5h
bWVkIEZsb3dzIik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgICB2YXIgbmFtZWRGbG93TWFwID0gbmFtZWRGbG93Q29sbGVjdGlvbi5u
YW1lZEZsb3dNYXA7Ci0gICAgICAgICAgICAgICAgdmFyIG5hbWVkRmxvd3MgPSBbXTsKLSAgICAg
ICAgICAgICAgICBmb3IgKHZhciBmbG93TmFtZSBpbiBuYW1lZEZsb3dNYXApCi0gICAgICAgICAg
ICAgICAgICAgIG5hbWVkRmxvd3MucHVzaChuYW1lZEZsb3dNYXBbZmxvd05hbWVdKTsKLQotICAg
ICAgICAgICAgICAgIG5hbWVkRmxvd3Muc29ydChmdW5jdGlvbiAobmYxLCBuZjIpIHsKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICgobmYxLm5hbWUgPT0gbmYyLm5hbWUpID8gMCA6ICgobmYx
Lm5hbWUgPiBuZjIubmFtZSkgPyAxIDogLTEpKTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAg
ICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZWRGbG93cy5sZW5ndGg7ICsraSkK
LSAgICAgICAgICAgICAgICAgICAgcHJpbnROYW1lZEZsb3cobmFtZWRGbG93c1tpXSk7Ci0KLSAg
ICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdEdldE5hbWVkRmxvd0NvbGxlY3Rpb25XaXRoSW52YWxpZERvY3VtZW50
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1
ZXN0RG9jdW1lbnQoZG9jdW1lbnRDYWxsYmFjayk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRv
Y3VtZW50Q2FsbGJhY2soZG9jdW1lbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmRvbUFnZW50LnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnQuaWQsICIjZmFrZS1k
b2N1bWVudCIsIHF1ZXJ5U2VsZWN0b3JDYWxsYmFjayk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHF1ZXJ5U2VsZWN0b3JDYWxsYmFjayhub2RlSWQpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldE5hbWVkRmxvd0Nv
bGxlY3Rpb25Bc3luYyhub2RlSWQsIG5hbWVkRmxvd0NhbGxiYWNrKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZnVuY3Rpb24gbmFtZWRGbG93Q2FsbGJhY2sobmFtZWRGbG93Q29sbGVj
dGlvbikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiPT09IENTUyBOYW1lZCBGbG93cyBpbiAjZmFrZS1kb2N1bWVudCA9PT0iKTsKLQotICAg
ICAgICAgICAgICAgIGlmIChuYW1lZEZsb3dDb2xsZWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJbIV0gRmFpbGVkIik7Ci0gICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiI2Zha2UtZG9jdW1lbnQgaXMgbm90IGEgZG9jdW1lbnQiKQotICAgICAg
ICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0ZXN0R2V0Rmxvd0J5TmFtZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuZG9tQWdlbnQucmVxdWVzdERvY3VtZW50KGRvY3VtZW50Q2FsbGJhY2spOwot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBkb2N1bWVudENhbGxiYWNrKGRvY3VtZW50KQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRGbG93QnlO
YW1lQXN5bmMoZG9jdW1lbnQuaWQsICJmbG93MiIsIG5hbWVkRmxvd0NhbGxiYWNrKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gbmFtZWRGbG93Q2FsbGJhY2sobmFtZWRG
bG93KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCI9PT0gTmFtZWQgRmxvdyBcImZsb3cyXCIgZnJvbSBtYWluIGRvY3VtZW50ID09PSIpOwot
Ci0gICAgICAgICAgICAgICAgaWYgKCFuYW1lZEZsb3cpIHsKLSAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlshXSBGYWlsZWQgdG8gZ2V0IE5hbWVkIEZsb3ciKTsK
LSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICAgIHByaW50TmFtZWRGbG93KG5hbWVkRmxvdyk7Ci0KLSAgICAgICAgICAgICAgICBuZXh0KCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEdldEZs
b3dCeU5hbWVXaXRoSW52YWxpZE5hbWUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRvbUFnZW50LnJlcXVlc3REb2N1bWVudChkb2N1bWVudENhbGxiYWNrKTsKLQot
ICAgICAgICAgICAgZnVuY3Rpb24gZG9jdW1lbnRDYWxsYmFjayhkb2N1bWVudCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuZ2V0Rmxvd0J5TmFt
ZUFzeW5jKGRvY3VtZW50LmlkLCAiZmxvdzQiLCBuYW1lZEZsb3dDYWxsYmFjayk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIG5hbWVkRmxvd0NhbGxiYWNrKG5hbWVkRmxv
dykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiPT09IE5hbWUgRmxvdyBcImZsb3c0XCIgZnJvbSBtYWluIGRvY3VtZW50ID09PSIpOwotCi0g
ICAgICAgICAgICAgICAgaWYgKG5hbWVkRmxvdykgewotICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiWyFdIEZhaWxlZCIpCi0gICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiVGhlcmUgaXMgbm8gTmFtZWQgRmxvdyBcImZsb3c0XCIgaW4gdGhlIG1haW4gZG9jdW1l
bnQiKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdE5hbWVkRmxvd0NyZWF0ZWQobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLk5hbWVkRmxvd0NyZWF0ZWQsIGNhbGxiYWNr
LCB0aGlzKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImNyZWF0
ZU5hbWVkRmxvdygpIik7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGV2ZW50KQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLm5hbWUgIT09ICJ0
bXBOYW1lZEZsb3ciKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuTmFtZWRGbG93Q3JlYXRlZCwgY2FsbGJhY2ssIHRoaXMp
OwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5hbWVkRmxvd0Ny
ZWF0ZWQ6IFwidG1wTmFtZWRGbG93XCIiKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFJlZ2lvbk92ZXJz
ZXRDaGFuZ2VkKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NN
b2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5S
ZWdpb25PdmVyc2V0Q2hhbmdlZCwgY2FsbGJhY2ssIHRoaXMpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgid2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwi
cmVnaW9uM1wiKS5zdHlsZS53ZWJraXRGbG93RnJvbT1cImZsb3czXCIiKTsKLQotICAgICAgICAg
ICAgZnVuY3Rpb24gY2FsbGJhY2soZXZlbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGV2ZW50LmRhdGEubmFtZSAhPT0gImZsb3czIikKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnJlbW92ZUV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLlJlZ2lvbk92ZXJz
ZXRDaGFuZ2VkLCBjYWxsYmFjaywgdGhpcyk7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiUmVnaW9uT3ZlcnNldENoYW5nZWQ6IFwiZmxvdzNcIiIpOwotICAgICAg
ICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0ZXN0TmFtZWRGbG93UmVtb3ZlZChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVNb2RlbC5FdmVudHMuTmFtZWRGbG93UmVtb3ZlZCwgY2FsbGJhY2ssIHRoaXMpOwotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicmVtb3ZlTmFtZWRGbG93KCki
KTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXZlbnQpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuZmxvd05hbWUgIT09ICJ0bXBOYW1lZEZs
b3ciKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuY3NzTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVNb2RlbC5FdmVudHMuTmFtZWRGbG93UmVtb3ZlZCwgY2FsbGJhY2ssIHRoaXMpOwotCi0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5hbWVkRmxvd1JlbW92ZWQ6IFwi
dG1wTmFtZWRGbG93XCIiKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGZ1bmN0aW9uIHByaW50TmFtZWRGbG93KG5hbWVk
RmxvdykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIqIE5hbWVkIEZs
b3cgXCIiICsgbmFtZWRGbG93Lm5hbWUgKyAiXCIiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkNvbnRlbnQgRWxlbWVudHM6ICIgKyBuYW1lZEZsb3cuY29udGVudC5sZW5ndGgp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVnaW9uczogIiArIG5hbWVkRmxv
dy5yZWdpb25zLmxlbmd0aCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
IG9ubG9hZD0iY3JlYXRlRHluYW1pY0VsZW1lbnRzKCkiPgotPHA+Ci1UZXN0cyB0aGUgZm9sbG93
aW5nIGNvbW1hbmRzIGFuZCBldmVudHM6Ci08dWw+Ci0gICAgPGxpPmdldE5hbWVkRmxvd0NvbGxl
Y3Rpb24gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkx
NjA3Ij5CdWcgOTE2MDc8L2E+PC9saT4KLSAgICA8bGk+Z2V0Rmxvd0J5TmFtZSA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE4NTUiPkJ1ZyA5MTg1NTwv
YT48L2xpPgotICAgIDxsaT5uYW1lZEZsb3dDcmVhdGVkIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjczOSI+QnVnIDkyNzM5PC9hPjwvbGk+Ci0gICAg
PGxpPm5hbWVkRmxvd1JlbW92ZWQgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkyNzM5Ij5CdWcgOTI3Mzk8L2E+PC9saT4KLSAgICA8bGk+cmVnaW9uT3Zl
cnNldENoYW5nZWQgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExNzgzMyI+QnVnIDExNzgzMzwvYT48L2xpPgotPC91bD4KLTwvcD4KLQotPGFydGljbGUg
c3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MSI+PC9hcnRpY2xlPgotPGRpdiBzdHlsZT0i
LXdlYmtpdC1mbG93LWZyb206IGZsb3cxIj48L2Rpdj4KLTxkaXYgc3R5bGU9Ii13ZWJraXQtZmxv
dy1mcm9tOiBmbG93MSI+PC9kaXY+Ci08ZGl2IHN0eWxlPSItd2Via2l0LWZsb3ctZnJvbTogZmxv
dzEiPjwvZGl2PgotCi08YXJ0aWNsZSBzdHlsZT0iLXdlYmtpdC1mbG93LWludG86IGZsb3cyIj48
L2FydGljbGU+Ci08ZGl2IHN0eWxlPSItd2Via2l0LWZsb3ctZnJvbTogZmxvdzIiPjwvZGl2Pgot
PGRpdiBzdHlsZT0iLXdlYmtpdC1mbG93LWZyb206IGZsb3cyIj48L2Rpdj4KLQotPGFydGljbGUg
c3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MyI+Ci0gICAgVGhpcyB0ZXh0IGlzIGZyb20g
Q1NTIE5hbWVkIEZsb3cgImZsb3czIi4KLTwvYXJ0aWNsZT4KLTxkaXYgaWQ9InJlZ2lvbjMiIHN0
eWxlPSItd2Via2l0LWZsb3ctZnJvbTogbm9uZTsgaGVpZ2h0OiAyMHB4OyB3aWR0aDogNXB4Ij48
L2Rpdj4KLQotPGRpdiBpZD0iZmFrZS1kb2N1bWVudCI+PC9kaXY+Ci0KLTxpZnJhbWU+PC9pZnJh
bWU+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvcmVnaW9uLXN0eWxlLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvcmVnaW9uLXN0eWxlLWNyYXNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDllZGE2NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3JlZ2lvbi1zdHlsZS1jcmFzaC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyOCArMCwwIEBACi1UZXN0cyB0aGF0IHdlYmtpdCBjc3MgcmVnaW9uIHN0eWxp
bmcgY2FuIGJlIHBhcnNlZCBjb3JyZWN0bHkuIFRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jh
c2guCi0KLVAgY29sb3Igc3R5bGVkIGluIHJlZ2lvbjogIzAwODAwMC4KLQotW2V4cGFuZGVkXSAK
LWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsKLSAgICAjcDEgLSAjZmYwMDAwIHJlZ2lvbi1zdHlsZS1j
cmFzaC5odG1sOjYKLWRpc3BsYXk6IGJsb2NrOwotICAgIHAgLSBibG9jayB1c2VyIGFnZW50IHN0
eWxlc2hlZXQKLQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0g
TWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0jcDEgIHsgKHJlZ2lvbi1z
dHlsZS1jcmFzaC5odG1sOjYpCi1jb2xvcjogI2ZmMDAwMDsKLQotW2V4cGFuZGVkXSAKLXAgIHsg
KHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotLXdlYmtpdC1tYXJnaW4t
YmVmb3JlOiAxZW07Ci0td2Via2l0LW1hcmdpbi1hZnRlcjogMWVtOwotLXdlYmtpdC1tYXJnaW4t
c3RhcnQ6IDBweDsKLS13ZWJraXQtbWFyZ2luLWVuZDogMHB4OwotCi0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZWdpb24tc3R5bGUtY3Jhc2guaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVnaW9uLXN0eWxlLWNyYXNoLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjZThhOGUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9yZWdpb24tc3R5bGUtY3Jhc2guaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDQyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0jYXJ0aWNsZTEgeyAt
d2Via2l0LWZsb3ctaW50bzogZmxvdzE7IH0KLSNyZWdpb24xIHsgLXdlYmtpdC1mbG93LWZyb206
IGZsb3cxOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTBweDsgd2lkdGg6IDM1MHB4OyBoZWln
aHQ6IDI1cHg7fQotI3AxIHsgY29sb3I6ICNmZjAwMDA7IH0KLUAtd2Via2l0LXJlZ2lvbiAjcmVn
aW9uMSB7Ci0gICAgI3AxIHsgY29sb3I6ICMwMDgwMDA7IH0KLX0KLQotPC9zdHlsZT4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBX
ZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAgIEluc3BlY3RvclRlc3Quc2Vs
ZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXNXaXRoQ29tcHV0ZWQoInAxIiwgZHVtcEFsbFN0eWxlcyk7
Ci0KLSAgICBmdW5jdGlvbiBkdW1wQWxsU3R5bGVzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCB3ZWJraXQgY3NzIHJlZ2lvbiBz
dHlsaW5nIGNhbiBiZSBwYXJzZWQgY29ycmVjdGx5LiBUZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0
IGNyYXNoLgotPC9wPgotCi08ZGl2IGlkPSJhcnRpY2xlMSI+Ci0gICAgPHAgaWQ9InAxIj5QIGNv
bG9yIHN0eWxlZCBpbiByZWdpb246ICMwMDgwMDAuPC9wPgotPC9kaXY+Ci08ZGl2IGlkPSJyZWdp
b24xIiBjbGFzcz0icmVnaW9uQm94Ij48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvcmVtb3ZlZC1ydWxlLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvcmVtb3ZlZC1ydWxlLWNyYXNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYWVkZWE5NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3JlbW92ZWQtcnVsZS1jcmFzaC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxOCArMCwwIEBACi1UZXN0cyB0aGF0IGRpc2FibGluZyBzdHlsZSBwcm9wZXJ0eSBh
ZnRlciB0aGUgc3R5bGUgcnVsZSBoYXMgYmVlbiByZW1vdmVkIGRvZXMgbm90IGNyYXNoIHRoZSBp
bnNwZWN0ZWQgcGFnZS4KLQotQmVmb3JlIGRpc2FibGUKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0
eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5k
ZWRdIAotI2NvbnRhaW5lciAgeyAocmVtb3ZlZC1ydWxlLWNyYXNoLmh0bWw6NCkKLWZvbnQtd2Vp
Z2h0OiBib2xkOwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQp
Ci1kaXNwbGF5OiBibG9jazsKLQotCi1QQVNTOiBObyBjcmFzaAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3JlbW92ZWQtcnVsZS1jcmFzaC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZW1vdmVkLXJ1bGUtY3Jhc2guaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYjEyYWQ4Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3JlbW92ZWQtcnVsZS1jcmFzaC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNTIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSNjb250YWluZXIgewotICAg
IGZvbnQtd2VpZ2h0OiBib2xkOwotfQotPC9zdHlsZT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotCi1mdW5jdGlvbiByZW1vdmVSdWxlKCkKLXsKLSAgICBkb2N1bWVudC5zdHls
ZVNoZWV0c1swXS5yZW1vdmVSdWxlKDApOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJ
bnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJjb250YWluZXIiLCBzdGVw
MCk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMChub2RlKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZSgicmVtb3ZlUnVsZSgpIiwgc3RlcDEpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJCZWZvcmUgZGlzYWJsZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVs
ZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QudG9nZ2xlTWF0Y2hlZFN0
eWxlUHJvcGVydHkoImZvbnQtd2VpZ2h0IiwgZmFsc2UpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJQQVNTOiBO
byBjcmFzaCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0K
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4K
LVRlc3RzIHRoYXQgZGlzYWJsaW5nIHN0eWxlIHByb3BlcnR5IGFmdGVyIHRoZSBzdHlsZSBydWxl
IGhhcyBiZWVuIHJlbW92ZWQgZG9lcyBub3QgY3Jhc2ggdGhlIGluc3BlY3RlZCBwYWdlLgotPC9w
PgotCi08ZGl2IGlkPSJjb250YWluZXIiPgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL2Zyb21jc3Mu
cG5nIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvZnJvbWNzcy5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0NDI2ODUuLjAwMDAwMDAKQmluYXJ5IGZp
bGVzIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvZnJvbWNzcy5wbmcg
YW5kIC9kZXYvbnVsbCBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvcmVzb3VyY2VzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0LmNzcyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0LmNzcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWUyNmRlOC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9nZXQtc2V0LXN0eWxlc2hlZXQtdGV4
dC5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1ib2R5IHsKLSAgICBmb250LXNp
emU6IDEycHg7Ci0gICAgZm9vOiBiYXIgIQotCi0gICAgaW1wb3J0YW50IC8qICFpbXBvcnRhbnQg
cHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkgV2ViQ29yZSAqLzsKLSAgICBoZWlnaHQ6IDEwMCUg
IWltcG9ydGFudDsKLSAgICBjb2xvcno6ICIhaW1wb3J0YW50IjsKLSAgICBpbXBvcnRhbnQ6IWlt
cG9ydGFudDsKLSAgICBjb2xvcjogImJhZGNvbG9yIiAhIGltcG9ydGFudCAvKiBnb29kIHByb3Bl
cnR5IHdpdGggc3RyYW5nZSB2YWx1ZSAqLzsKLX0KLQotQG1lZGlhIHsKLSAgICAvKiBAbWVkaWEg
cnVsZSB3aXRoIGFuIGVtcHR5IG1lZGlhIGxpc3QgKi8KLX0KLQotLyogY29tbWVudCBiZWZvcmUg
c2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqL3svKiBjb21t
ZW50ICovY29sb3I6ICNGMDBCQUE7em9vOm1vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJlY29n
bml6ZWQgcHJvcGVydHkgKi99LyogY29tbWVudCAqLwotCi1ib2R5Lm1haW4ye2JhY2tncm91bmQ6
IGdyZWVuIC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNl
bWljb2xvbiwgdmVyeSAhaW1wb3J0YW50ICovfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvaWZyYW1lZC5wbmcgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3Jlc291cmNlcy9pZnJhbWVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMTQ0MjY4NS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3Jlc291cmNlcy9pZnJhbWVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvaW1wb3J0LXBz
ZXVkb2NsYXNzLWNyYXNoLWVtcHR5LmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
cmVzb3VyY2VzL2ltcG9ydC1wc2V1ZG9jbGFzcy1jcmFzaC1lbXB0eS5jc3MKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjkuLjAwMDAwMDAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL2ltcG9ydC1wc2V1ZG9jbGFzcy1jcmFzaC5j
c3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9pbXBvcnQtcHNldWRv
Y2xhc3MtY3Jhc2guY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTU2NGRjLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL2ltcG9y
dC1wc2V1ZG9jbGFzcy1jcmFzaC5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLUBp
bXBvcnQgdXJsKCJpbXBvcnQtcHNldWRvY2xhc3MtY3Jhc2gtZW1wdHkuY3NzIik7Ci0KLTpsYXN0
LWNoaWxkIHsKLSAgY29sb3I6ICMwMDA7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9pbmplY3Qtc3R5bGVzaGVldC1pZnJhbWUtZGF0YS5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvaW5qZWN0LXN0eWxlc2hl
ZXQtaWZyYW1lLWRhdGEuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWYzZTdl
Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9p
bmplY3Qtc3R5bGVzaGVldC1pZnJhbWUtZGF0YS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTcg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNj
cmVlbiI+Ci0gIGJvZHkgeyBiYWNrZ3JvdW5kOmdyZWVuOyB9Ci08L3N0eWxlPgotPHNjcmlwdD4K
LWZ1bmN0aW9uIGlmcmFtZU9ubG9hZCgpCi17Ci0gICAgY29uc29sZS5sb2coImlmcmFtZSBsb2Fk
ZWQiKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9ImlmcmFtZU9ubG9h
ZCgpIiBpZD0iaWZyYW1lQm9keSI+Ci08L2JvZHk+Ci0KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL21lZGlhLXF1ZXJpZXMtMS5jc3Mg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9tZWRpYS1xdWVyaWVzLTEu
Y3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTY4YzliLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL21lZGlhLXF1ZXJpZXMtMS5j
c3MKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWJvZHkgewotICAgIG1hcmdpbjogMDsK
LX0KLQotQG1lZGlhIG5vdCBhdXJhbCB7Ci0gICAgI21haW4geyBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsgfQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNv
dXJjZXMvbWVkaWEtcXVlcmllcy5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jl
c291cmNlcy9tZWRpYS1xdWVyaWVzLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NDUzNDQ5Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291
cmNlcy9tZWRpYS1xdWVyaWVzLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotCi0K
LUBpbXBvcnQgdXJsKG1lZGlhLXF1ZXJpZXMtMS5jc3MpIHNjcmVlbjsKLQotQG1lZGlhIHNjcmVl
biB7Ci0gICAgI21haW4geyBjb2xvcjogeWVsbG93OyB9Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9wYXJzZS11dGY4LWJvbS1tYWluLmNzcyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3BhcnNlLXV0ZjgtYm9tLW1h
aW4uY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA4YjE5NDg1Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3BhcnNlLXV0ZjgtYm9t
LW1haW4uY3NzCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi3vu79AaW1wb3J0ICcuL3Bh
cnNlLXV0ZjgtYm9tLXJlc2V0LmNzcyc7Ci0KLWgxIHsKLSAgICBjb2xvcjogcmVkOwotfQotCi1o
MiB7Ci0gICAgY29sb3I6IGJsdWU7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvcGFyc2UtdXRm
OC1ib20tcmVzZXQuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMv
cGFyc2UtdXRmOC1ib20tcmVzZXQuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1
ZjI4MjcwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3Vy
Y2VzL3BhcnNlLXV0ZjgtYm9tLXJlc2V0LmNzcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
Le+7vwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3NlbGVjdG9yLWxpbmUuY3NzIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5jc3MKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxMTViMjUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5jc3MKKysrIC9kZXYvbnVs
bApAQCAtMSw2ICswLDAgQEAKLSNjb250YWluZXIgewotICBiYWNrZ3JvdW5kOiBwYXBheWF3aGlw
OyB9Ci0gICNjb250YWluZXIgI2luc3BlY3RlZCB7Ci0gICAgY29sb3I6IGdyZWVuOyB9Ci0KLS8q
QCBzb3VyY2VNYXBwaW5nVVJMPXNlbGVjdG9yLWxpbmUuY3NzLm1hcCAqLwpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
cmVzb3VyY2VzL3NlbGVjdG9yLWxpbmUuY3NzLm1hcCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvcmVzb3VyY2VzL3NlbGVjdG9yLWxpbmUuY3NzLm1hcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZGJmMjc1OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3Jlc291cmNlcy9zZWxlY3Rvci1saW5lLmNzcy5tYXAKKysrIC9kZXYvbnVsbApAQCAt
MSw2ICswLDAgQEAKLXsKLSJ2ZXJzaW9uIjogIjMiLAotIm1hcHBpbmdzIjogIkFBQUEsVUFBVztF
QUNQLFVBQVUsRUFBRSxVQUFVO0VBRXRCLHFCQUFXO0lBQ1AsS0FBSyxFQUFFLEtBQUsiLAotInNv
dXJjZXMiOiBbInNlbGVjdG9yLWxpbmUuc2NzcyJdLAotImZpbGUiOiAic2VsZWN0b3ItbGluZS5j
c3MiCi19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNl
cy9zZWxlY3Rvci1saW5lLnNjc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291
cmNlcy9zZWxlY3Rvci1saW5lLnNjc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVj
NzRkMzUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJj
ZXMvc2VsZWN0b3ItbGluZS5zY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0jY29u
dGFpbmVyIHsKLSAgICBiYWNrZ3JvdW5kOiBwYXBheWF3aGlwOwotCi0gICAgI2luc3BlY3RlZCB7
Ci0gICAgICAgIGNvbG9yOiBncmVlbjsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtaGlzdG9yeS5jc3MgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtaGlzdG9yeS5jc3MKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2ZWE2ZjcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc3R5bGVzLWhpc3RvcnkuY3NzCisrKyAvZGV2
L251bGwKQEAgLTEsNCArMCwwIEBACi1ib2R5IHsKLSAgbWFyZ2luOiAxMHB4OwotICBwYWRkaW5n
OiAxMHB4OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNv
dXJjZXMvc3R5bGVzLWlmcmFtZS1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3Jlc291cmNlcy9zdHlsZXMtaWZyYW1lLWRhdGEuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNWYzZTdlNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtaWZyYW1lLWRhdGEuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDE3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1l
ZGlhPSJzY3JlZW4iPgotICBib2R5IHsgYmFja2dyb3VuZDpncmVlbjsgfQotPC9zdHlsZT4KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiBpZnJhbWVPbmxvYWQoKQotewotICAgIGNvbnNvbGUubG9nKCJpZnJh
bWUgbG9hZGVkIik7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJpZnJh
bWVPbmxvYWQoKSIgaWQ9ImlmcmFtZUJvZHkiPgotPC9ib2R5PgotCi08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtbmV3LUFQ
SS0xLmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1u
ZXctQVBJLTEuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMTU0NjcwLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1u
ZXctQVBJLTEuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotQGltcG9ydCB1cmwo
c3R5bGVzLW5ldy1BUEktMi5jc3MpOwotCi1AcGFnZSB7IG1hcmdpbjogMmNtIH0gLyogQWxsIG1h
cmdpbnMgc2V0IHRvIDJjbSAqLwotCi1AcGFnZSA6Zmlyc3QgewotICBtYXJnaW4tdG9wOiAxMGNt
ICAgIC8qIFRvcCBtYXJnaW4gb24gZmlyc3QgcGFnZSAxMGNtICovCi19Ci0KLUBtZWRpYSBzY3Jl
ZW4gewotCi0jYWJzZW50LWlkIHsKLX0KLQotQGZvbnQtZmFjZSB7Ci0gICAgZm9udC1mYW1pbHk6
ICdUaGVGb250JzsKLSAgICBzcmM6IHVybCgnZm9udC51cmwnKTsKLSAgICBmb250LXdlaWdodDog
bm9ybWFsOwotICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKLX0KLQotYm9keSB7Ci0gICAgcHJvcGVy
dHk6IGltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0OwotfQotCi19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtbmV3LUFQSS0y
LmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1uZXct
QVBJLTIuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA0ODgyZTA3Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1uZXct
QVBJLTIuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotQGltcG9ydCB1cmwoc3R5
bGVzLW5ldy1BUEktMS5jc3MpOwotCi1AcGFnZSB7IG1hcmdpbjogMmNtIH0gLyogQWxsIG1hcmdp
bnMgc2V0IHRvIDJjbSAqLwotCi1AcGFnZSA6Zmlyc3QgewotICBtYXJnaW4tdG9wOiAxMGNtICAg
IC8qIFRvcCBtYXJnaW4gb24gZmlyc3QgcGFnZSAxMGNtICovCi19Ci0KLUBtZWRpYSBzY3JlZW4g
ewotCi0jYWJzZW50LWlkIHsKLX0KLQotQGZvbnQtZmFjZSB7Ci0gICAgZm9udC1mYW1pbHk6ICdU
aGVGb250JzsKLSAgICBzcmM6IHVybCgnZm9udC51cmwnKTsKLSAgICBmb250LXdlaWdodDogbm9y
bWFsOwotICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKLX0KLQotYm9keSB7Ci0gICAgcHJvcGVydHk6
IGltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0OwotfQotCi19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtbmV3LUFQSS5jc3Mg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtbmV3LUFQSS5j
c3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwMWQxMDIuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc3R5bGVzLW5ldy1BUEkuY3Nz
CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotQGNoYXJzZXQgIlVURi04IjsKLQotQGlt
cG9ydCB1cmwoInN0eWxlcy1uZXctQVBJLTEuY3NzIik7Ci0KLWh0bWwgewotICAgIGZvbnQtd2Vp
Z2h0OiA0MDA7Ci19Ci0KLUBtZWRpYSBzY3JlZW4gewotYm9keSB7Ci0gICAgZm9udC1zaXplOiAx
MnB4OwotICAgIGZvbzogYmFyICEKLQotICAgIGltcG9ydGFudCAvKiAhaW1wb3J0YW50IHByb3Bl
cnR5IG5vdCByZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi87Ci0gICAgaGVpZ2h0OiAxMDAlICFpbXBv
cnRhbnQ7Ci0gICAgY29sb3J6OiAiIWltcG9ydGFudCI7Ci0gICAgaW1wb3J0YW50OiFpbXBvcnRh
bnQ7Ci0gICAgY29sb3I6IHllbGxvdzsKLSAgICBjb2xvcjogImJhZGNvbG9yIiAhIGltcG9ydGFu
dCAvKiBnb29kIHByb3BlcnR5IHdpdGggc3RyYW5nZSB2YWx1ZSAqLzsKLX0KLQotLyogY29tbWVu
dCBiZWZvcmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAq
L3svKiBjb21tZW50ICovY29sb3I6ICNGMDBCQUE7em9vOm1vbyAvKiBub3QgYW4gIWltcG9ydGFu
dCB1bnJlY29nbml6ZWQgcHJvcGVydHkgKi99LyogY29tbWVudCAqLwotCi1ib2R5Lm1haW4ye2Jh
Y2tncm91bmQ6IGdyZWVuIC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50
IC8qIG5vIHNlbWljb2xvbiwgdmVyeSAhaW1wb3J0YW50ICovfQotfQotCi1ib2R5OjphZnRlciAg
ewotICAgIGNvbnRlbnQ6ICJBZnRlciBib2R5IjsKLX0KLQotaDEgewotICAgIGhlaWdodCA6IDEw
MCUgOyBib3JkZXI6IDFweCBzb2xpZDsgYm9yZGVyLXdpZHRoOiAycHg7IGJhY2tncm91bmQtY29s
b3IgOiAjMzNGRjMzOyBnb29nbGVzOiBhYnJhOyBmb286IC5iYXI7IC1tb3otZ29vZzogMSoqKjsg
Ym9yZGVyLXdpZHRoOiAwcHg7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtc291cmNlLWxpbmVzLWlubGluZS1pZnJhbWUuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2UtbGlu
ZXMtaW5saW5lLWlmcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjcz
OGNiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2Vz
L3N0eWxlcy1zb3VyY2UtbGluZXMtaW5saW5lLWlmcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMjAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLS5iYXIgewotICAgIGNvbG9y
OiByZWQ7Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLWZ1bmN0aW9uIGlmcmFtZU9ubG9hZCgpCi17
Ci0gICAgd2luZG93LnBhcmVudC5pZnJhbWVMb2FkZWQgPSB0cnVlOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0iaWZyYW1lT25sb2FkKCkiPgotPGRpdiBpZD0iYmFyIiBj
bGFzcz0iYmFyIj5CYXI8L2Rpdj4KLTwvYm9keT4KLQotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRz
LmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlcy1zb3Vy
Y2Utb2Zmc2V0cy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1MjEwZTMuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvc3R5bGVz
LXNvdXJjZS1vZmZzZXRzLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLWJvZHkg
ewotICAgIGZvbnQtc2l6ZTogMTJweDsKLSAgICBmb286IGJhciAhCi0KLSAgICBpbXBvcnRhbnQg
LyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovOwotICAg
IGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwotICAgIGNvbG9yejogIiFpbXBvcnRhbnQiOwotICAg
IGltcG9ydGFudDohaW1wb3J0YW50OwotICAgIGNvbG9yOiAiYmFkY29sb3IiICEgaW1wb3J0YW50
IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovOwotfQotCi0vKiBjb21tZW50
IGJlZm9yZSBzZWxlY3RvciAqL2JvZHkubWFpbjEvKiBjb21tZW50IGFmdGVyIHNlbGVjdG9yICov
ey8qIGNvbW1lbnQgKi9jb2xvcjogI0YwMEJBQTt6b286bW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50
IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqL30vKiBjb21tZW50ICovCi0KLWJvZHkubWFpbjJ7YmFj
a2dyb3VuZDogZ3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50ICovICFpbXBvcnRhbnQg
Lyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQgKi99CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtdXJsLWxpbmtpZnktaWZyYW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXMtdXJs
LWxpbmtpZnktaWZyYW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4NThl
NGQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMv
c3R5bGVzLXVybC1saW5raWZ5LWlmcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSNpZnJhbWVkIHsKLSAgICBiYWNrZ3JvdW5k
LWltYWdlOiB1cmwoIGlmcmFtZWQucG5nICk7Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLWZ1bmN0
aW9uIGlmcmFtZU9ubG9hZCgpCi17Ci0gICAgd2luZG93LnBhcmVudC5pZnJhbWVMb2FkZWQgPSB0
cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0iaWZyYW1lT25sb2Fk
KCkiPgotPGRpdiBpZD0iaWZyYW1lZCI+PC9kaXY+Ci08L2JvZHk+Ci0KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlcy11cmwt
bGlua2lmeS5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHls
ZXMtdXJsLWxpbmtpZnkuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYmNlNmI1
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0
eWxlcy11cmwtbGlua2lmeS5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLSNsb2Nh
bCB7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCAgJ2Zyb21jc3MucG5nJyApOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2VsZWN0b3ItbGluZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmYWFjN2YuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRlc3RzIHRoYXQgc2VsZWN0b3Ig
bGluZSBpcyBjb21wdXRlZCBjb3JyZWN0bHkgcmVnYXJkbGVzcyBvZiBpdHMgc3RhcnQgY29sdW1u
LiBCdWcgMTEwNzMyLgotCi1UZXh0Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQot
Ci09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLSNjb250
YWluZXIgI2luc3BlY3RlZCAgeyAoc2VsZWN0b3ItbGluZS5zY3NzOjQpCi1jb2xvcjogZ3JlZW47
Ci0KLVtleHBhbmRlZF0gCi0jaW5zcGVjdGVkICB7IChzZWxlY3Rvci1saW5lLmh0bWw6NSkKLS8t
LSBvdmVybG9hZGVkIC0tLyBjb2xvcjogZ3JlZW47Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVz
ZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3NlbGVjdG9yLWxpbmUuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNDQ5N2YzMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3NlbGVjdG9yLWxpbmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0jaW5zcGVjdGVkCi17Ci0gIGNvbG9yOiBncmVl
bjsKLX0KLTwvc3R5bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9z
ZWxlY3Rvci1saW5lLmNzcyIgLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgc2Fzc01hcHBpbmcgPSBuZXcgV2ViSW5zcGVj
dG9yLlNBU1NTb3VyY2VNYXBwaW5nKFdlYkluc3BlY3Rvci5jc3NNb2RlbCwgV2ViSW5zcGVjdG9y
LndvcmtzcGFjZSwgV2ViSW5zcGVjdG9yLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7Ci0gICAg
V2ViSW5zcGVjdG9yLndvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUFk
ZGVkLCBudWxsKTsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAg
IHN0ZXAxKCk7Ci0KLSAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRlZChldmVudCkKLSAgICB7
Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBldmVudC5kYXRhOwotICAgICAgICBpZiAodWlT
b3VyY2VDb2RlLnVybC5lbmRzV2l0aCgiLnNjc3MiKSkKLSAgICAgICAgICAgIHVpU291cmNlQ29k
ZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLlNvdXJj
ZU1hcHBpbmdDaGFuZ2VkLCBzdGVwMiwgbnVsbCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3Rl
cDEoKQotICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmZvckFs
bFJlc291cmNlcyhjYWxsYmFjayk7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHJlc291cmNl
KQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAocmVzb3VyY2UudXJsLmVuZHNXaXRoKCIuY3Nz
IikpIHsKLSAgICAgICAgICAgICAgICBzYXNzTWFwcGluZy5fcmVzb3VyY2VBZGRlZChuZXcgV2Vi
SW5zcGVjdG9yLkV2ZW50KFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbCwgV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuUmVzb3VyY2VBZGRlZCwgcmVzb3VyY2Up
KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHN0ZXAzKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHNlbGVjdG9yIGxpbmUgaXMgY29t
cHV0ZWQgY29ycmVjdGx5IHJlZ2FyZGxlc3Mgb2YgaXRzIHN0YXJ0IGNvbHVtbi4gPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDczMiI+QnVnIDExMDcz
MjwvYT4uCi08L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iaW5zcGVj
dGVkIj5UZXh0PC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saXN0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2VsZWN0b3ItbGlzdC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwZTA2YWYuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saXN0LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLVRlc3RzIHJlcHJlc2VudGF0aW9uIG9mIHNlbGVj
dG9yIGxpc3RzIGluIHRoZSBwcm90b2NvbC4gQnVnIDEwMzExOC4KLQotVGV4dAotW2V4cGFuZGVk
XSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09
PT09PT0KLVtleHBhbmRlZF0gCi1GT08gYkFyLCAjaW5zcGVjdGVkLCBNT08+QkFSLCBodE1MIGRp
diwgRm9vfk1vbywgTU9PICB7IChzZWxlY3Rvci1saXN0Lmh0bWw6MTkpCi1jb2xvcjogZ3JlZW47
Ci0KLVtleHBhbmRlZF0gCi0jaW5zcGVjdGVkICB7IChzZWxlY3Rvci1saXN0Lmh0bWw6MTApCi0K
LVtleHBhbmRlZF0gCi0jSW5TcEVjVGVEICB7IChzZWxlY3Rvci1saXN0Lmh0bWw6NykKLQotW2V4
cGFuZGVkXSAKLSNpbnNwZWN0ZWQgIHsgKHNlbGVjdG9yLWxpc3QuaHRtbDo0KQotCi1bZXhwYW5k
ZWRdIAotRk9PIGJBciwgI2luc3BlY3RlZCwgTU9PPkJBUiwgaHRNTCBkaXYsIEZvb35Nb28sIE1P
TyAgeyAoc2VsZWN0b3ItbGlzdC5odG1sOjE5KQotLy0tIG92ZXJsb2FkZWQgLS0vIGNvbG9yOiBn
cmVlbjsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlz
cGxheTogYmxvY2s7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3NlbGVjdG9yLWxpc3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2Vs
ZWN0b3ItbGlzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NWZlYzY2Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2VsZWN0b3ItbGlzdC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHls
ZT4KLSNpbnNwZWN0ZWR7Ci19Ci0KLSNJblNwRWNUZUQgewotfQotCi0vKiAqLyNpbnNwZWN0ZWQv
KiAqLyB7Ci19Ci0KLS8qIAotICovIEZPTy8qU2luZ2xlLWxpbmUgMSovIGJBciwvKiBTaW5nbGUt
bGluZSAyKi8jaW5zcGVjdGVkLyoKLSAgICBNdWx0aWxpbmUgY29tbWVudAotKi8gLE1PTz5CQVIs
IC8qMSovaHRNTCAvKjIKLSovZGl2LyozKi8sLyoqL0Zvb34vKipDKi9Nb28sLyoqL01PTyAvKiBD
b21tZW50Ci0gKi8gCi17Ci0gIGNvbG9yOiBncmVlbjsKLX0KLQotPC9zdHlsZT4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJ
bnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0
Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9u
IHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVu
dFN0eWxlcyh0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAg
ICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Ci08cD4KLVRlc3RzIHJlcHJlc2VudGF0aW9uIG9mIHNlbGVjdG9yIGxpc3RzIGluIHRoZSBwcm90
b2NvbC4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MzExOCI+QnVnIDEwMzExODwvYT4uCi08L3A+Ci0KLTxkaXYgaWQ9Imluc3BlY3RlZCI+VGV4dDwv
ZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3NldC1wcm9wZXJ0eS1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvc2V0LXByb3BlcnR5LWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDc2NTBlLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2V0LXByb3BlcnR5LWJvdW5kYXJpZXMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UZXN0cyB0aGF0IHNldHRpbmcg
Q1NTIHByb3BlcnR5IHRleHQgb3V0IG9mIGJvdW5kYXJpZXMgZG9lcyBub3QgY3Jhc2guCi0KLWNv
bG9yOiByZWQ7Ci1JbmRleFNpemVFcnJvcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3NldC1wcm9wZXJ0eS1ib3VuZGFyaWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3NldC1wcm9wZXJ0eS1ib3VuZGFyaWVzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQ1NmExNWUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9zZXQtcHJvcGVydHktYm91bmRhcmllcy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNjQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLQotPHN0eWxlPgotaDEgewotICAgIGNv
bG9yOiByZWQ7Ci19Ci08L3N0eWxlPgotCi08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxl
bWVudHMiKTsKLSAgICBDU1NBZ2VudC5nZXRBbGxTdHlsZVNoZWV0cyhzdHlsZVNoZWV0SW5mb3NM
b2FkZWQpOwotCi0gICAgZnVuY3Rpb24gc3R5bGVTaGVldEluZm9zTG9hZGVkKGVycm9yLCBpbmZv
cykKLSAgICB7Ci0gICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoImVycm9yOiAiICsgZXJyb3IpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5mb3MubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBD
U1NBZ2VudC5nZXRTdHlsZVNoZWV0KGluZm9zW2ldLnN0eWxlU2hlZXRJZCwgc3R5bGVTaGVldExv
YWRlZCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3R5bGVTaGVldExvYWRlZChlcnJvciwgc3R5
bGVTaGVldCkKLSAgICB7Ci0gICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoImVycm9yOiAiICsgZXJyb3IpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgICAgICBlZGl0UnVsZShzdHlsZVNoZWV0LnJ1bGVzWzBdKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBlZGl0UnVsZShydWxlKQotICAgIHsKLSAgICAgICAgdmFyIHN0eWxlID0gcnVsZS5zdHls
ZTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoc3R5bGUuY3NzUHJvcGVydGllc1sw
XS50ZXh0KTsKLQotICAgICAgICBjb25zdCBvdXRPZkJPdW5kc1J1bGVJbmRleCA9IDEwOwotICAg
ICAgICBDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQoc3R5bGUuc3R5bGVJZCwgb3V0T2ZCT3VuZHNS
dWxlSW5kZXgsICJjb2xvcjpibHVlOyIsIHRydWUsIGR1bXBFcnJvck1lc3NhZ2UpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGR1bXBFcnJvck1lc3NhZ2UoZXJyb3IpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdChlcnJvcik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgfSAgIAotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBzZXR0aW5nIENTUyBwcm9wZXJ0eSB0
ZXh0IG91dCBvZiBib3VuZGFyaWVzIGRvZXMgbm90IGNyYXNoLgotPC9wPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zaG93LXVzZXIt
YWdlbnQtc3R5bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c2hvdy11c2VyLWFnZW50LXN0eWxlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGY2ZTNmZTAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9zaG93LXVzZXItYWdlbnQtc3R5bGVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDQxICswLDAgQEAKLVRlc3RzIHRoYXQgdXNlciBhZ2VudCBzdHlsZXMgYXJlIHNob3duIGJh
c2VkIG9uIHRoZSBzZXR0aW5nOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mzc3NjYuCi0KLUknbSByZWQuCi0KLUknbSBhbHNvIHJlZC4KLQotCi1SdW5uaW5nOiB0ZXN0
U2hvd1VzZXJBZ2VudFN0eWxlcwotV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dVc2VyQWdlbnRT
dHlsZXMgPSB0cnVlCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09
PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWgxICB7IChzaG93LXVz
ZXItYWdlbnQtc3R5bGVzLmh0bWw6NSkKLWJhY2tncm91bmQtY29sb3I6IHJlZDsKLQotW2V4cGFu
ZGVkXSAKLWgxICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLWZv
bnQtc2l6ZTogMmVtOwotLXdlYmtpdC1tYXJnaW4tYmVmb3JlOiAwLjY3ZW07Ci0td2Via2l0LW1h
cmdpbi1hZnRlcjogMC42N2VtOwotLXdlYmtpdC1tYXJnaW4tc3RhcnQ6IDBweDsKLS13ZWJraXQt
bWFyZ2luLWVuZDogMHB4OwotZm9udC13ZWlnaHQ6IGJvbGQ7Ci0KLQotCi1SdW5uaW5nOiB0ZXN0
U2hvd1VzZXJBZ2VudFN0eWxlcwotV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dVc2VyQWdlbnRT
dHlsZXMgPSBmYWxzZQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09
PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1oMSAgeyAoc2hvdy11
c2VyLWFnZW50LXN0eWxlcy5odG1sOjUpCi1iYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Ci0KLQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Nob3ctdXNlci1hZ2VudC1z
dHlsZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2hvdy11c2VyLWFnZW50
LXN0eWxlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDI4NzU3Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2hvdy11c2VyLWFnZW50LXN0
eWxlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LQotPHN0eWxlPgotaDEgewotICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKLX0KLTwvc3R5bGU+
Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3RTaG93VXNlckFnZW50U3R5bGVzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5zaG93VXNlckFnZW50U3R5bGVzLnNldCh0cnVlKTsKLSAgICAgICAg
ICAgIHNlbGVjdE5vZGVBbmREdW1wU3R5bGVzKCJpbnNwZWN0ZWQiLCBuZXh0KTsKLSAgICAgICAg
fSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2hvd1VzZXJBZ2VudFN0eWxlcyhuZXh0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1VzZXJBZ2VudFN0
eWxlcy5zZXQoZmFsc2UpOwotICAgICAgICAgICAgc2VsZWN0Tm9kZUFuZER1bXBTdHlsZXMoIm90
aGVyIiwgbmV4dCk7Ci0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGZ1bmN0aW9uIHNlbGVjdE5v
ZGVBbmREdW1wU3R5bGVzKG5vZGVJZCwgbmV4dCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1VzZXJBZ2VudFN0eWxlcyA9
ICIgKyBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1VzZXJBZ2VudFN0eWxlcy5nZXQoKSk7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMobm9kZUlkLCBz
dGVwMSk7Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgZmFsc2UsIHRy
dWUpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dVc2VyQWdlbnRTdHls
ZXMuc2V0KHRydWUpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9Ci0gICAgfQotfQot
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1U
ZXN0cyB0aGF0IHVzZXIgYWdlbnQgc3R5bGVzIGFyZSBzaG93biBiYXNlZCBvbiB0aGUgc2V0dGlu
ZzogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NzY2LgotPC9wPgot
PGgxIGlkPSJpbnNwZWN0ZWQiPgotSSdtIHJlZC4KLTwvaDE+Ci08aDEgaWQ9Im90aGVyIj4KLUkn
bSBhbHNvIHJlZC4KLTwvaDE+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1hZGQtYmxhbmstcHJvcGVydHktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRkLWJsYW5rLXByb3Bl
cnR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNkYzFmZi4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1hZGQtYmxh
bmstcHJvcGVydHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAot
VGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgYmxhbmsgcHJvcGVydHkgd29ya3MuCi0KLVRleHQKLUJl
Zm9yZSBhcHBlbmQ6Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotZm9udC1zaXpl
OiAxMnB4OwotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVk
XSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQot
QWZ0ZXIgaW5zZXJ0aW9uIGF0IGluZGV4IDA6Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAg
eyAoKQotbWFyZ2luLWxlZnQ6IDNweDsKLWZvbnQtc2l6ZTogMTJweDsKLQotPT09PT09PT0gTWF0
Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQg
c3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLUFmdGVyIGFwcGVuZGluZyBhbmQgY2hh
bmdpbmcgYSAnY29tcG91bmQnIHByb3BlcnR5OgotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUg
IHsgKCkKLW1hcmdpbi1sZWZ0OiAzcHg7Ci1mb250LXNpemU6IDEycHg7Ci1jb2xvcjogcmVkOwot
Zm9udC13ZWlnaHQ6IGJvbGQ7Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09
Ci1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBi
bG9jazsKLQotCi1BZnRlciBpbnNlcnRpb24gYXQgaW5kZXggMjoKLVtleHBhbmRlZF0gCi1lbGVt
ZW50LnN0eWxlICB7ICgpCi1tYXJnaW4tbGVmdDogM3B4OwotZm9udC1zaXplOiAxMnB4OwotLy0t
IG92ZXJsb2FkZWQgLS0vIHRoaXJkLXByb3BlcnR5OiB0aGlyZC12YWx1ZTsKLWNvbG9yOiByZWQ7
Ci1mb250LXdlaWdodDogYm9sZDsKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09
PT0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6
IGJsb2NrOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtYWRkLWJsYW5rLXByb3BlcnR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy1hZGQtYmxhbmstcHJvcGVydHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTU5YzhiMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy1hZGQtYmxhbmstcHJvcGVydHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEx
NCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVs
ZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygi
aW5zcGVjdGVkIiwgYWRkQW5kSW5jcmVtZW50Rmlyc3RQcm9wZXJ0eSk7Ci0KLSAgICB2YXIgdHJl
ZUVsZW1lbnQ7Ci0gICAgdmFyIHNlY3Rpb247Ci0KLSAgICBmdW5jdGlvbiBhZGRBbmRJbmNyZW1l
bnRGaXJzdFByb3BlcnR5KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJCZWZvcmUgYXBwZW5kOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVs
ZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIHNlY3Rpb24gPSBXZWJJbnNwZWN0b3IucGFuZWxz
LmVsZW1lbnRzLnNpZGViYXJQYW5lcy5zdHlsZXMuc2VjdGlvbnNbMF1bMV07Ci0gICAgICAgIHNl
Y3Rpb24uZXhwYW5kKCk7Ci0KLSAgICAgICAgLy8gQ3JlYXRlIGFuZCBpbmNyZW1lbnQuCi0gICAg
ICAgIHRyZWVFbGVtZW50ID0gc2VjdGlvbi5hZGROZXdCbGFua1Byb3BlcnR5KDApOwotICAgICAg
ICB0cmVlRWxlbWVudC5zdGFydEVkaXRpbmcoKTsKLSAgICAgICAgdHJlZUVsZW1lbnQubmFtZUVs
ZW1lbnQudGV4dENvbnRlbnQgPSAibWFyZ2luLWxlZnQiOwotICAgICAgICB0cmVlRWxlbWVudC5u
YW1lRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVu
dGVyIikpOwotCi0gICAgICAgIHRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9
ICIxcHgiOwotICAgICAgICB0cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQuZmlyc3RDaGlsZC5zZWxl
Y3QoKTsKLSAgICAgICAgdHJlZUVsZW1lbnQudmFsdWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5z
cGVjdG9yVGVzdC5jcmVhdGVLZXlFdmVudCgiVXAiKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
cnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhpbmNyZW1lbnRQcm9wZXJ0eSk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gaW5jcmVtZW50UHJvcGVydHkoKQotICAgIHsKLSAgICAgICAgLy8gSW5jcmVt
ZW50IGFnYWluLgotICAgICAgICB0cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQuZGlzcGF0Y2hFdmVu
dChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJVcCIpKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKGNvbW1pdFByb3BlcnR5KTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBjb21taXRQcm9wZXJ0eSgpCi0gICAgewotICAgICAgICAvLyBDb21taXQu
Ci0gICAgICAgIHRyZWVFbGVtZW50Lm5hbWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9y
VGVzdC5jcmVhdGVLZXlFdmVudCgiRW50ZXIiKSk7Ci0gICAgICAgIHJlbG9hZFN0eWxlcyhhZGRB
bmRDaGFuZ2VMYXN0Q29tcG91bmRQcm9wZXJ0eSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWRk
QW5kQ2hhbmdlTGFzdENvbXBvdW5kUHJvcGVydHkoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIkFmdGVyIGluc2VydGlvbiBhdCBpbmRleCAwOiIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0KLSAgICAgICAg
dHJlZUVsZW1lbnQgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQYW5lcy5z
dHlsZXMuc2VjdGlvbnNbMF1bMV0uYWRkTmV3QmxhbmtQcm9wZXJ0eSgyKTsKLSAgICAgICAgdHJl
ZUVsZW1lbnQuc3RhcnRFZGl0aW5nKCk7Ci0gICAgICAgIHRyZWVFbGVtZW50Lm5hbWVFbGVtZW50
LnRleHRDb250ZW50ID0gImNvbG9yIjsKLSAgICAgICAgdHJlZUVsZW1lbnQubmFtZUVsZW1lbnQu
ZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJFbnRlciIpKTsKLQot
ICAgICAgICB0cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSAiZ3JlZW47IGZv
bnQtd2VpZ2h0OiBib2xkIjsKLSAgICAgICAgdHJlZUVsZW1lbnQua2lja0ZyZWVGbG93U3R5bGVF
ZGl0Rm9yVGVzdCgpOwotCi0gICAgICAgIHRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC50ZXh0Q29u
dGVudCA9ICJyZWQ7IGZvbnQtd2VpZ2h0OiBib2xkIjsKLSAgICAgICAgdHJlZUVsZW1lbnQua2lj
a0ZyZWVGbG93U3R5bGVFZGl0Rm9yVGVzdCgpOwotCi0gICAgICAgIHRyZWVFbGVtZW50LnZhbHVl
RWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVy
IikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMocmVs
b2FkU3R5bGVzLmJpbmQodGhpcywgYWRkQW5kQ29tbWl0TWlkZGxlUHJvcGVydHkpKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBhZGRBbmRDb21taXRNaWRkbGVQcm9wZXJ0eSgpCi0gICAgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgYXBwZW5kaW5nIGFuZCBjaGFuZ2lu
ZyBhICdjb21wb3VuZCcgcHJvcGVydHk6Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNl
bGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKLQotICAgICAgICB0cmVlRWxlbWVudCA9IFdlYklu
c3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLnN0eWxlcy5zZWN0aW9uc1swXVsx
XS5hZGROZXdCbGFua1Byb3BlcnR5KDIpOwotICAgICAgICB0cmVlRWxlbWVudC5zdGFydEVkaXRp
bmcoKTsKLSAgICAgICAgdHJlZUVsZW1lbnQubmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSAidGhp
cmQtcHJvcGVydHkiOwotICAgICAgICB0cmVlRWxlbWVudC5uYW1lRWxlbWVudC5kaXNwYXRjaEV2
ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotICAgICAgICB0cmVl
RWxlbWVudC52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSAidGhpcmQtdmFsdWUiOwotCi0gICAg
ICAgIHRyZWVFbGVtZW50Lm5hbWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVzdC5j
cmVhdGVLZXlFdmVudCgiRW50ZXIiKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQ
ZW5kaW5nRGlzcGF0Y2hlcyhyZWxvYWRTdHlsZXMuYmluZCh0aGlzLCBkdW1wQW5kQ29tcGxldGUp
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wQW5kQ29tcGxldGUoKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIGluc2VydGlvbiBhdCBpbmRleCAyOiIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7
Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiByZWxvYWRTdHlsZXMoY2FsbGJhY2spIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZWxlY3ROb2RlV2l0aElkKCJvdGhlciIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVy
UGVuZGluZ0Rpc3BhdGNoZXMob3RoZXJDYWxsYmFjayk7Ci0KLSAgICAgICAgZnVuY3Rpb24gb3Ro
ZXJDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0
Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIGNhbGxiYWNrKTsKLSAgICAgICAgfQot
ICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTxwPgotVGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgYmxhbmsgcHJvcGVydHkgd29ya3MuCi08
L3A+Ci0KLTxkaXYgaWQ9Imluc3BlY3RlZCIgc3R5bGU9ImZvbnQtc2l6ZTogMTJweCI+VGV4dDwv
ZGl2PgotPGRpdiBpZD0ib3RoZXIiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1hZGQtaW52YWxpZC1wcm9w
ZXJ0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1h
ZGQtaW52YWxpZC1wcm9wZXJ0eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGNhZDI4M2IuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtYWRkLWludmFsaWQtcHJvcGVydHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMjYgKzAsMCBAQAotVGVzdHMgdGhhdCBhZGRpbmcgYW4gaW52YWxpZCBwcm9wZXJ0eSBy
ZXRhaW5zIGl0cyBzeW50YXguCi0KLVRleHQKLUJlZm9yZSBhcHBlbmQ6Ci1bZXhwYW5kZWRdIAot
ZWxlbWVudC5zdHlsZSAgeyAoKQotZm9udC1zaXplOiAxMnB4OwotCi09PT09PT09PSBNYXRjaGVk
IENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHls
ZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotQWZ0ZXIgYXBwZW5kOgotW2V4cGFuZGVkXSAK
LWVsZW1lbnQuc3R5bGUgIHsgKCkKLWZvbnQtc2l6ZTogMTJweDsKLQotPT09PT09PT0gTWF0Y2hl
ZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5
bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRkLWludmFsaWQtcHJvcGVydHkuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWFkZC1pbnZhbGlkLXByb3BlcnR5Lmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlNzIyNTIuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRkLWludmFsaWQtcHJvcGVydHkuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2Vi
SW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVj
dE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwMSk7Ci0KLSAgICB2YXIgdHJl
ZUVsZW1lbnQ7Ci0gICAgdmFyIHNlY3Rpb247Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQmVmb3JlIGFwcGVuZDoiKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotICAg
ICAgICBzZWN0aW9uID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMu
c3R5bGVzLnNlY3Rpb25zWzBdWzFdOwotICAgICAgICBzZWN0aW9uLmV4cGFuZCgpOwotCi0gICAg
ICAgIC8vIENyZWF0ZSBhbmQgaW5jcmVtZW50LgotICAgICAgICB0cmVlRWxlbWVudCA9IHNlY3Rp
b24uYWRkTmV3QmxhbmtQcm9wZXJ0eSgpOwotICAgICAgICB0cmVlRWxlbWVudC5zdGFydEVkaXRp
bmcoKTsKLSAgICAgICAgdHJlZUVsZW1lbnQubmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSAiY29s
b3IiOwotICAgICAgICB0cmVlRWxlbWVudC5uYW1lRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3Bl
Y3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotCi0gICAgICAgIC8vIFVwZGF0ZSBp
bmNyZW1lbnRhbGx5IHRvIGEgdmFsaWQgdmFsdWUuIAotICAgICAgICB0cmVlRWxlbWVudC52YWx1
ZUVsZW1lbnQudGV4dENvbnRlbnQgPSAicmdiKCI7Ci0gICAgICAgIHRyZWVFbGVtZW50LmtpY2tG
cmVlRmxvd1N0eWxlRWRpdEZvclRlc3QoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRl
clBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigp
Ci0gICAgewotICAgICAgICAvLyBDb21taXQgaW52YWxpZCB2YWx1ZS4gCi0gICAgICAgIHRyZWVF
bGVtZW50LnZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9ICJyZ2IoMSI7Ci0gICAgICAgIHRyZWVF
bGVtZW50LnZhbHVlRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5
RXZlbnQoIkVudGVyIikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rp
c3BhdGNoZXMoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgib3RoZXIiKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXA0KTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVj
dE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwNSk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gc3RlcDUoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkFmdGVyIGFwcGVuZDoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVt
ZW50U3R5bGVzKHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTxwPgotVGVzdHMgdGhhdCBhZGRpbmcgYW4gaW52YWxpZCBwcm9wZXJ0eSByZXRhaW5zIGl0
cyBzeW50YXguCi08L3A+Ci0KLTxkaXYgaWQ9Imluc3BlY3RlZCIgc3R5bGU9ImZvbnQtc2l6ZTog
MTJweCI+VGV4dDwvZGl2PgotPGRpdiBpZD0ib3RoZXIiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1hZGQt
bmV3LXJ1bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHls
ZXMtYWRkLW5ldy1ydWxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzQ4Y2RkZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy1hZGQtbmV3LXJ1bGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAs
MCBAQAotVGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgcnVsZSB3b3JrcyBhZnRlciBzd2l0Y2hpbmcg
bm9kZXMuCi0KLVRleHQKLVJldmlzaW9uIGFkZGVkOiBpbnNwZWN0b3Itc3R5bGVzaGVldAotQWZ0
ZXIgYWRkaW5nIG5ldyBydWxlIChpbnNwZWN0ZWQpOgotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5
bGUgIHsgKCkKLWZvbnQtc2l6ZTogMTJweDsKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMg
PT09PT09PT0KLVtleHBhbmRlZF0gCi1mb28sIFskI2luc3BlY3RlZCRdLCBiYXIgIHsgKGluc3Bl
Y3Rvci1zdHlsZXNoZWV0OjEpCi1jb2xvcjogbWFyb29uOwotCi1bZXhwYW5kZWRdIAotWyRkaXYk
XSAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotQWZ0ZXIg
YWRkaW5nIG5ldyBydWxlIChvdGhlcik6Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAo
KQotY29sb3I6IHJlZDsKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtl
eHBhbmRlZF0gCi0jb3RoZXIgIHsgKGluc3BlY3Rvci1zdHlsZXNoZWV0OjEpCi0KLVtleHBhbmRl
ZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRkLW5l
dy1ydWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1hZGQtbmV3
LXJ1bGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjYxZjM1Mi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1hZGQtbmV3LXJ1bGUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
V2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnNl
bGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwMSk7Ci0gICAgSW5zcGVj
dG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLCAi
YWRkUmV2aXNpb24iLCByZXZpc2lvbkFkZGVkKTsKLQotICAgIHZhciB0cmVlRWxlbWVudDsKLSAg
ICB2YXIgaGFzUmVzb3VyY2VDaGFuZ2VkOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsK
LSAgICAgICAgLy8gQ2xpY2sgIkFkZCBuZXcgcnVsZSIuCi0gICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJhZGQtc3R5bGUtYnV0dG9uLXRlc3QtaWQiKS5jbGljaygpOwotICAgICAgICB2
YXIgc2VjdGlvbiA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLnN0
eWxlcy5zZWN0aW9uc1swXVsyXTsKLSAgICAgICAgc2VjdGlvbi5fc2VsZWN0b3JFbGVtZW50LnRl
eHRDb250ZW50ID0gImZvbywgIiArIHNlY3Rpb24uX3NlbGVjdG9yRWxlbWVudC50ZXh0Q29udGVu
dCArICIsIGJhciI7Ci0gICAgICAgIHNlY3Rpb24uX3NlbGVjdG9yRWxlbWVudC5kaXNwYXRjaEV2
ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDIpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIHZhciBzZWN0aW9uID0gV2ViSW5zcGVj
dG9yLnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMuc3R5bGVzLnNlY3Rpb25zWzBdWzJdOwot
ICAgICAgICB2YXIgbmV3UHJvcGVydHkgPSBzZWN0aW9uLmFkZE5ld0JsYW5rUHJvcGVydHkoKTsK
LSAgICAgICAgbmV3UHJvcGVydHkuc3RhcnRFZGl0aW5nKCk7Ci0gICAgICAgIG5ld1Byb3BlcnR5
Lm5hbWVFbGVtZW50LnRleHRDb250ZW50ID0gImNvbG9yIjsKLSAgICAgICAgbmV3UHJvcGVydHku
bmFtZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJF
bnRlciIpKTsKLSAgICAgICAgbmV3UHJvcGVydHkudmFsdWVFbGVtZW50LnRleHRDb250ZW50ID0g
Im1hcm9vbiI7Ci0gICAgICAgIG5ld1Byb3BlcnR5LnZhbHVlRWxlbWVudC5kaXNwYXRjaEV2ZW50
KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJvdGhlciIsIHN0ZXAzKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICAvLyBDbGljayAiQWRkIG5l
dyBydWxlIi4KLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFkZC1zdHlsZS1idXR0
b24tdGVzdC1pZCIpLmNsaWNrKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFu
ZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHN0ZXA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBzdGVwNCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIg
YWRkaW5nIG5ldyBydWxlIChpbnNwZWN0ZWQpOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1
bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJvdGhlciIsIHN0ZXA1
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNSgpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgYWRkaW5nIG5ldyBydWxlIChvdGhlcik6Iik7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlLCBmYWxzZSwg
dHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gcmV2aXNpb25BZGRlZChyZXZpc2lvbikKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJSZXZpc2lvbiBhZGRlZDogIiArIHRoaXMuZGlzcGxheU5hbWUo
KSk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGFkZGluZyBhIG5ldyBydWxlIHdvcmtzIGFmdGVyIHN3
aXRjaGluZyBub2Rlcy4KLTwvcD4KLQotPGRpdiBpZD0iaW5zcGVjdGVkIiBzdHlsZT0iZm9udC1z
aXplOiAxMnB4Ij5UZXh0PC9kaXY+Ci08ZGl2IGlkPSJvdGhlciIgc3R5bGU9ImNvbG9yOnJlZCI+
PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvc3R5bGVzLWNhbmNlbC1lZGl0aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWNhbmNlbC1lZGl0aW5nLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzFkODBhNS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1jYW5jZWwtZWRpdGluZy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1UZXN0cyB0aGF0IGVkaXRpbmcgaXMg
Y2FuY2VsZWQgcHJvcGVybHkgYWZ0ZXIgaW5jcmVtZW50YWwgZWRpdGluZy4KLQotVGV4dAotW2V4
cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLWNvbG9yOiByZWQ7Ci0KLT09PT09PT09IE1h
dGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50
IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi1BZnRlciBhcHBlbmQ6Ci1bZXhwYW5k
ZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotY29sb3I6IHJlZDsKLQotPT09PT09PT0gTWF0Y2hl
ZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5
bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtY2FuY2VsLWVkaXRpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWNhbmNlbC1lZGl0aW5nLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE2MjJiYjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9zdHlsZXMtY2FuY2VsLWVkaXRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDY1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5l
bCgiZWxlbWVudHMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5
bGVzKCJpbnNwZWN0ZWQiLCBzdGVwMSk7Ci0KLSAgICB2YXIgdHJlZUVsZW1lbnQ7Ci0gICAgdmFy
IHNlY3Rpb247Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIHRyZWVFbGVt
ZW50ID0gSW5zcGVjdG9yVGVzdC5nZXRFbGVtZW50U3R5bGVQcm9wZXJ0eVRyZWVJdGVtKCJjb2xv
ciIpOwotCi0gICAgICAgIHRyZWVFbGVtZW50LnN0YXJ0RWRpdGluZygpOwotICAgICAgICB0cmVl
RWxlbWVudC5uYW1lRWxlbWVudC50ZXh0Q29udGVudCA9ICJjb2xvciI7Ci0gICAgICAgIHRyZWVF
bGVtZW50Lm5hbWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVzdC5jcmVhdGVLZXlF
dmVudCgiRW50ZXIiKSk7Ci0KLSAgICAgICAgLy8gVXBkYXRlIGluY3JlbWVudGFsbHksIGRvIG5v
dCBjb21taXQuCi0gICAgICAgIHRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9
ICJncmVlbiI7Ci0gICAgICAgIHRyZWVFbGVtZW50LmtpY2tGcmVlRmxvd1N0eWxlRWRpdEZvclRl
c3QoKTsKLQotICAgICAgICAvLyBDYW5jZWwgZWRpdGluZy4KLSAgICAgICAgdHJlZUVsZW1lbnQu
dmFsdWVFbGVtZW50LmZpcnN0Q2hpbGQuc2VsZWN0KCk7Ci0gICAgICAgIHRyZWVFbGVtZW50LnZh
bHVlRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIlUr
MDAxQiIpKTsgLy8gRXNjYXBlCi0gICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5n
RGlzcGF0Y2hlcyhzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElkKCJvdGhlciIpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDMpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2Vs
ZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHN0ZXA0KTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiQWZ0ZXIgYXBwZW5kOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVs
ZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGVkaXRpbmcgaXMgY2FuY2VsZWQgcHJvcGVybHkgYWZ0ZXIg
aW5jcmVtZW50YWwgZWRpdGluZy4KLTwvcD4KLQotPGRpdiBpZD0iaW5zcGVjdGVkIiBzdHlsZT0i
Y29sb3I6IHJlZCI+VGV4dDwvZGl2PgotPGRpdiBpZD0ib3RoZXIiPjwvZGl2PgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy1jaGFuZ2Utbm9kZS13aGlsZS1lZGl0aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLWNoYW5nZS1ub2RlLXdoaWxlLWVkaXRpbmctZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTkwMWM4Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWNoYW5nZS1ub2RlLXdoaWxlLWVk
aXRpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGVzdHMg
dGhhdCBjaGFuZ2luZyBzZWxlY3RlZCBub2RlIHdoaWxlIGVkaXRpbmcgc3R5bGUgZG9lcyB1cGRh
dGUgc3R5bGVzIHNpZGViYXIuCi0KLVRleHQKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7
ICgpCi1jb2xvcjogcmVkOwotCi0KLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi1j
b2xvcjogYmx1ZTsKLQotCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotYmFja2dy
b3VuZDogcmVkOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtY2hhbmdlLW5vZGUtd2hpbGUtZWRpdGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9zdHlsZXMtY2hhbmdlLW5vZGUtd2hpbGUtZWRpdGluZy5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjkxZTM3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWNoYW5nZS1ub2RlLXdoaWxlLWVkaXRpbmcuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2Vi
SW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVj
dE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwMSk7Ci0KLSAgICB2YXIgdHJl
ZUVsZW1lbnQ7Ci0gICAgdmFyIHNlY3Rpb247Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwg
dHJ1ZSwgdHJ1ZSk7Ci0gICAgICAgIHRyZWVFbGVtZW50ID0gSW5zcGVjdG9yVGVzdC5nZXRFbGVt
ZW50U3R5bGVQcm9wZXJ0eVRyZWVJdGVtKCJjb2xvciIpOwotCi0gICAgICAgIHRyZWVFbGVtZW50
LnN0YXJ0RWRpdGluZygpOwotICAgICAgICB0cmVlRWxlbWVudC5uYW1lRWxlbWVudC50ZXh0Q29u
dGVudCA9ICJiYWNrZ3JvdW5kIjsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVB
bmRXYWl0Rm9yU3R5bGVzKCJvdGhlciIsIHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBz
dGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRT
dHlsZXModHJ1ZSwgdHJ1ZSwgdHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9k
ZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVs
ZW1lbnRTdHlsZXModHJ1ZSwgdHJ1ZSwgdHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGNoYW5naW5nIHNlbGVjdGVkIG5vZGUg
d2hpbGUgZWRpdGluZyBzdHlsZSBkb2VzIHVwZGF0ZSBzdHlsZXMgc2lkZWJhci4KLTwvcD4KLQot
PGRpdiBpZD0iaW5zcGVjdGVkIiBzdHlsZT0iY29sb3I6IHJlZCI+VGV4dDwvZGl2PgotPGRpdiBp
ZD0ib3RoZXIiIHN0eWxlPSJjb2xvcjogYmx1ZSI+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWNvbW1pdC1l
ZGl0aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVz
LWNvbW1pdC1lZGl0aW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZmRlMzI3OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy1jb21taXQtZWRpdGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNSAr
MCwwIEBACi1UZXN0cyB0aGF0IGVkaXRpbmcgaXMgY2FuY2VsZWQgcHJvcGVybHkgYWZ0ZXIgaW5j
cmVtZW50YWwgZWRpdGluZy4KLQotVGV4dAotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsg
KCkKLWNvbG9yOiByZWQ7Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1b
ZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9j
azsKLQotCi1BZnRlciBhcHBlbmQ6Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQot
Y29sb3I6IGdyZWVuOwotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4
cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7
Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1j
b21taXQtZWRpdGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMt
Y29tbWl0LWVkaXRpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWJmMDRh
Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1jb21t
aXQtZWRpdGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAgIEluc3Bl
Y3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHN0ZXAxKTsK
LQotICAgIHZhciB0cmVlRWxlbWVudDsKLSAgICB2YXIgdHJlZU91dGxpbmU7Ci0gICAgdmFyIHNl
Y3Rpb247Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIHRyZWVFbGVtZW50
ID0gSW5zcGVjdG9yVGVzdC5nZXRFbGVtZW50U3R5bGVQcm9wZXJ0eVRyZWVJdGVtKCJjb2xvciIp
OwotICAgICAgICB0cmVlT3V0bGluZSA9IHRyZWVFbGVtZW50LnRyZWVPdXRsaW5lOwotCi0gICAg
ICAgIHRyZWVFbGVtZW50LnN0YXJ0RWRpdGluZygpOwotICAgICAgICB0cmVlRWxlbWVudC5uYW1l
RWxlbWVudC50ZXh0Q29udGVudCA9ICJjb2xvciI7Ci0gICAgICAgIHRyZWVFbGVtZW50Lm5hbWVF
bGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVzdC5jcmVhdGVLZXlFdmVudCgiRW50ZXIi
KSk7Ci0KLSAgICAgICAgLy8gVXBkYXRlIGluY3JlbWVudGFsbHksIGRvIG5vdCBjb21taXQuCi0g
ICAgICAgIHRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9ICJyZ2IoLyoiOwot
ICAgICAgICB0cmVlRWxlbWVudC5raWNrRnJlZUZsb3dTdHlsZUVkaXRGb3JUZXN0KCk7Ci0KLSAg
ICAgICAgLy8gQ29tbWl0IGVkaXRpbmcuCi0gICAgICAgIHRyZWVFbGVtZW50LnZhbHVlRWxlbWVu
dC50ZXh0Q29udGVudCA9ICJncmVlbiI7Ci0gICAgICAgIHRyZWVFbGVtZW50LnZhbHVlRWxlbWVu
dC5maXJzdENoaWxkLnNlbGVjdCgpOwotICAgICAgICB0cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQu
ZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJFbnRlciIpKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAyKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICB2YXIgYmxhbmtUcmVl
RWxlbWVudCA9IHRyZWVPdXRsaW5lLmNoaWxkcmVuWzFdOwotICAgICAgICBpZiAoIVdlYkluc3Bl
Y3Rvci5pc0JlaW5nRWRpdGVkKGJsYW5rVHJlZUVsZW1lbnQubmFtZUVsZW1lbnQpKSB7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTm8gbmV3IHByb3BlcnR5IGVkaXRvciBh
Y3RpdmUhIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgLy8gVGVzdCBTdHlsZXMgcGFuZSBlZGl0b3IgbG9vcGluZy4KLSAg
ICAgICAgYmxhbmtUcmVlRWxlbWVudC5uYW1lRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3Rv
clRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotICAgICAgICBpZiAoIVdlYkluc3BlY3Rv
ci5pc0JlaW5nRWRpdGVkKHRyZWVPdXRsaW5lLmNoaWxkcmVuWzBdLm5hbWVFbGVtZW50KSkgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk9yaWdpbmFsIHByb3BlcnR5IG5h
bWUgZWRpdG9yIG5vdCBhY3RpdmUhIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2Rl
V2l0aElkKCJvdGhlciIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rp
c3BhdGNoZXMoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3Rl
ZCIsIHN0ZXA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgYXBwZW5kOiIpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGVkaXRpbmcgaXMg
Y2FuY2VsZWQgcHJvcGVybHkgYWZ0ZXIgaW5jcmVtZW50YWwgZWRpdGluZy4KLTwvcD4KLQotPGRp
diBpZD0iaW5zcGVjdGVkIiBzdHlsZT0iY29sb3I6IHJlZCI+VGV4dDwvZGl2PgotPGRpdiBpZD0i
b3RoZXIiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1jb21wdXRlZC10cmFjZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1jb21wdXRlZC10cmFjZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmZWI0NTIuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtY29tcHV0ZWQtdHJhY2UtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotVGVzdHMgdGhhdCBjb21w
dXRlZCBzdHlsZXMgZXhwYW5kIGFuZCBhbGxvdyB0cmFjaW5nIHRvIHN0eWxlIHJ1bGVzLgotCi09
PT09IENvbXB1dGVkIHN0eWxlIGZvciBJRDEgPT09PQotW2V4cGFuZGVkXSAKLS13ZWJraXQtYmFj
a2dyb3VuZC1jbGlwOiBib3JkZXItYm94OwotLXdlYmtpdC1iYWNrZ3JvdW5kLW9yaWdpbjogcGFk
ZGluZy1ib3g7Ci0td2Via2l0LWJhY2tncm91bmQtc2l6ZTogYXV0bzsKLWJhY2tncm91bmQtYXR0
YWNobWVudDogc2Nyb2xsOwotICAgICNpZDEgLSBpbml0aWFsIHN0eWxlcy1jb21wdXRlZC10cmFj
ZS5odG1sOjIzCi1iYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7Ci0gICAgI2lkMSAtIGluaXRp
YWwgc3R5bGVzLWNvbXB1dGVkLXRyYWNlLmh0bWw6MjMKLWJhY2tncm91bmQtY29sb3I6IHJnYigx
MjgsIDEyOCwgMTI4KTsKLSAgICAjaWQxIC0gZ3JheSBzdHlsZXMtY29tcHV0ZWQtdHJhY2UuaHRt
bDoyMwotICAgIC8tLSBvdmVybG9hZGVkIC0tLyAjaWQxIC0gYmxhY2sgc3R5bGVzLWNvbXB1dGVk
LXRyYWNlLmh0bWw6MTgKLSAgICAvLS0gb3ZlcmxvYWRlZCAtLS8gI2lkMSAtIGdyZWVuIHN0eWxl
cy1jb21wdXRlZC10cmFjZS5odG1sOjEzCi1iYWNrZ3JvdW5kLWltYWdlOiBub25lOwotICAgICNp
ZDEgLSBpbml0aWFsIHN0eWxlcy1jb21wdXRlZC10cmFjZS5odG1sOjIzCi1iYWNrZ3JvdW5kLW9y
aWdpbjogcGFkZGluZy1ib3g7Ci0gICAgI2lkMSAtIGluaXRpYWwgc3R5bGVzLWNvbXB1dGVkLXRy
YWNlLmh0bWw6MjMKLWJhY2tncm91bmQtc2l6ZTogYXV0bzsKLSAgICAjaWQxIC0gaW5pdGlhbCBz
dHlsZXMtY29tcHV0ZWQtdHJhY2UuaHRtbDoyMwotZGlzcGxheTogYmxvY2s7Ci0gICAgZGl2IC0g
YmxvY2sgdXNlciBhZ2VudCBzdHlsZXNoZWV0Ci1mb250LWZhbWlseTogQ291cmllcjsKLSAgICAj
aWQxIC0gQ291cmllciBzdHlsZXMtY29tcHV0ZWQtdHJhY2UuaHRtbDoxOAotICAgIC8tLSBvdmVy
bG9hZGVkIC0tLyAjaWQxIC0gVGltZXMgc3R5bGVzLWNvbXB1dGVkLXRyYWNlLmh0bWw6MTMKLSAg
ICAvLS0gb3ZlcmxvYWRlZCAtLS8gYm9keSAtIEFyaWFsIHN0eWxlcy1jb21wdXRlZC10cmFjZS5o
dG1sOjQKLXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwotICAgIGRpdiAtIHVuZGVybGluZSBz
dHlsZXMtY29tcHV0ZWQtdHJhY2UuaHRtbDo5Ci0KLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxl
ICB7ICgpCi0KLQotPT09PSBDb21wdXRlZCBzdHlsZSBmb3IgSUQyID09PT0KLVtleHBhbmRlZF0g
Ci1iYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMjU1KTsKLSAgICAjaWQyIC0gYmx1ZSBzdHls
ZXMtY29tcHV0ZWQtdHJhY2UuaHRtbDoyNwotZGlzcGxheTogYmxvY2s7Ci0gICAgZGl2IC0gYmxv
Y2sgdXNlciBhZ2VudCBzdHlsZXNoZWV0Ci1mb250LWZhbWlseTogQ291cmllcjsKLSAgICAjaWQy
IC0gQ291cmllciBzdHlsZXMtY29tcHV0ZWQtdHJhY2UuaHRtbDoyNwotICAgIC8tLSBvdmVybG9h
ZGVkIC0tLyAjaWQxIC0gQ291cmllciBzdHlsZXMtY29tcHV0ZWQtdHJhY2UuaHRtbDoxOAotICAg
IC8tLSBvdmVybG9hZGVkIC0tLyAjaWQxIC0gVGltZXMgc3R5bGVzLWNvbXB1dGVkLXRyYWNlLmh0
bWw6MTMKLSAgICAvLS0gb3ZlcmxvYWRlZCAtLS8gYm9keSAtIEFyaWFsIHN0eWxlcy1jb21wdXRl
ZC10cmFjZS5odG1sOjQKLXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwotICAgIC8tLSBvdmVy
bG9hZGVkIC0tLyAjaWQyIC0gaW52YWxpZHZhbHVlIHN0eWxlcy1jb21wdXRlZC10cmFjZS5odG1s
OjI3Ci0gICAgZGl2IC0gdW5kZXJsaW5lIHN0eWxlcy1jb21wdXRlZC10cmFjZS5odG1sOjkKLQot
W2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotCi09PT09IFN0eWxlIGZvciBJRDMg
PT09PQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hl
ZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1idXR0b25bQXR0cmlidXRlcyBTdHls
ZV0gIHsgKCkKLWRpc3BsYXk6IG5vbmU7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1jb21wdXRlZC10cmFjZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtY29tcHV0ZWQtdHJhY2UuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzcyNjU5My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3N0eWxlcy1jb21wdXRlZC10cmFjZS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsODAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWJvZHkgewotICAgIGJhY2tn
cm91bmQtY29sb3I6IHJnYigxMDAsIDAsIDApOwotICAgIGZvbnQtZmFtaWx5OiBBcmlhbDsKLX0K
LQotZGl2IHsKLSAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKLX0KLQotI2lkMSB7Ci0g
ICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ci0gICAgZm9udC1mYW1pbHk6IFRpbWVzOwotfQot
Ci0jaWQxIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKLSAgICBmb250LWZhbWlseTog
Q291cmllcjsKLX0KLQotI2lkMSB7Ci0gICAgYmFja2dyb3VuZDogZ3JheTsKLX0KLQotI2lkMiB7
Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKLSAgICBmb250LWZhbWlseTogQ291cmllcjsK
LSAgICB0ZXh0LWRlY29yYXRpb246IGludmFsaWR2YWx1ZTsKLX0KLQotPC9zdHlsZT4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJ
bnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzV2l0aENvbXB1dGVkKCJpZDEi
LCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiPT09PSBDb21wdXRlZCBzdHlsZSBmb3IgSUQxID09PT0iKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKGZhbHNlLCB0cnVl
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlc1dpdGhD
b21wdXRlZCgiaWQyIiwgc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09IENvbXB1dGVkIHN0eWxl
IGZvciBJRDIgPT09PSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1l
bnRTdHlsZXMoZmFsc2UsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVB
bmRXYWl0Rm9yU3R5bGVzV2l0aENvbXB1dGVkKCJpZDMiLCBzdGVwMyk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
Ij09PT0gU3R5bGUgZm9yIElEMyA9PT09Iik7Ci0gICAgICAgIC8vIFRoZSBidXR0b25baGlkZGVu
XSBzdHlsZSBzcGVjaWZpZXMgImRpc3BsYXk6IG5vbmUiLCB3aGljaCBzaG91bGQgbm90IGJlIC8t
LSBvdmVybG9hZGVkIC0tLy4KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVt
ZW50U3R5bGVzKHRydWUsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgIH0KLQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBjb21wdXRlZCBzdHlsZXMgZXhwYW5kIGFuZCBhbGxv
dyB0cmFjaW5nIHRvIHN0eWxlIHJ1bGVzLgotPC9wPgotCi08ZGl2IGlkPSJpZDEiPgotPGRpdiBp
ZD0iaWQyIj4KLTwvZGl2PgotPGJ1dHRvbiBpZD0iaWQzIiBoaWRkZW4gLz4KLTwvZGl2PgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy1kaXNhYmxlLWluaGVyaXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLWluaGVyaXRlZC1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3ZmQ5MzEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZGlzYWJsZS1pbmhlcml0ZWQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotVGVzdHMgdGhhdCBkaXNhYmxpbmcgaW5o
ZXJpdGVkIHN0eWxlIHByb3BlcnR5IGRvZXMgbm90IGJyZWFrIGZ1cnRoZXIgc3R5bGUgaW5zcGVj
dGlvbi4KLQotQmVmb3JlIGRpc2FibGUKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgp
Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotZGl2
ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotPT09PT09PT0g
SW5oZXJpdGVkIGZyb20gZGl2I2NvbnRhaW5lciA9PT09PT09PQotW2V4cGFuZGVkXSAKLVN0eWxl
IEF0dHJpYnV0ZSAgeyAoKQotZm9udC13ZWlnaHQ6IGJvbGQ7Ci0KLQotQWZ0ZXIgZGlzYWJsZToK
LVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NT
IFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hl
ZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvc3R5bGVzLWRpc2FibGUtaW5oZXJpdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLWluaGVyaXRlZC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3NjJlYzY4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLWRpc2FibGUtaW5oZXJpdGVkLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotCi0gICAgSW5zcGVjdG9yVGVzdC5z
ZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygibmVzdGVkIiwgc3RlcDEpOwotCi0gICAgZnVuY3Rp
b24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgdmFyIHRyZWVJdGVtID0gSW5zcGVjdG9yVGVzdC5n
ZXRFbGVtZW50U3R5bGVQcm9wZXJ0eVRyZWVJdGVtKCJmb250LXdlaWdodCIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQmVmb3JlIGRpc2FibGUiKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotCi0gICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIHN0ZXAyKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LnRvZ2dsZVN0eWxlUHJvcGVydHkoImZvbnQtd2VpZ2h0IiwgZmFsc2UpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJuZXN0ZWQiLCBzdGVwMyk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIkFmdGVyIGRpc2FibGU6Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
ZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGRpc2FibGluZyBpbmhlcml0ZWQgc3R5
bGUgcHJvcGVydHkgZG9lcyBub3QgYnJlYWsgZnVydGhlciBzdHlsZSBpbnNwZWN0aW9uLgotPC9w
PgotCi08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj4KLSAgICA8
ZGl2IGlkPSJuZXN0ZWQiPjwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWRpc2FibGUtdGhlbi1j
aGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMt
ZGlzYWJsZS10aGVuLWNoYW5nZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI1MGQ3YTYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtZGlzYWJsZS10aGVuLWNoYW5nZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyMSArMCwwIEBACi1UZXN0cyB0aGF0IGNoYW5naW5nIGEgZGlzYWJsZWQgcHJvcGVydHkg
ZW5hYmxlcyBpdCBhcyB3ZWxsLgotCi1CZWZvcmUgZGlzYWJsZQotW2V4cGFuZGVkXSAKLWVsZW1l
bnQuc3R5bGUgIHsgKCkKLWZvbnQtd2VpZ2h0OiBib2xkOwotCi0KLUFmdGVyIGRpc2FibGUKLVtl
eHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0vLS0gb3ZlcmxvYWRlZCAtLS8gLy0tIGRp
c2FibGVkIC0tLyBmb250LXdlaWdodDogYm9sZDsKLQotCi1BZnRlciBjaGFuZ2UKLVtleHBhbmRl
ZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi1jb2xvcjogZ3JlZW47Ci0KLQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLXRoZW4tY2hhbmdl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLXRoZW4t
Y2hhbmdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1YmJmNzkuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZGlzYWJsZS10aGVu
LWNoYW5nZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJjb250YWlu
ZXIiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiQmVmb3JlIGRpc2FibGUiKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUsIHRydWUpOwotCi0gICAgICAgIElu
c3BlY3RvclRlc3QudG9nZ2xlU3R5bGVQcm9wZXJ0eSgiZm9udC13ZWlnaHQiLCBmYWxzZSk7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvclN0eWxlcygiY29udGFpbmVyIiwgc3RlcDIpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJBZnRlciBkaXNhYmxlIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlLCB0cnVlKTsKLQotICAgICAgICB2YXIgdHJlZUl0
ZW0gPSBJbnNwZWN0b3JUZXN0LmdldEVsZW1lbnRTdHlsZVByb3BlcnR5VHJlZUl0ZW0oImZvbnQt
d2VpZ2h0Iik7Ci0gICAgICAgIHRyZWVJdGVtLmFwcGx5U3R5bGVUZXh0KCJjb2xvcjogZ3JlZW4i
LCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJjb250YWluZXIi
LCBzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIGNoYW5nZSIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgdHJ1ZSk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBjaGFuZ2luZyBh
IGRpc2FibGVkIHByb3BlcnR5IGVuYWJsZXMgaXQgYXMgd2VsbC4KLTwvcD4KLQotPGRpdiBpZD0i
Y29udGFpbmVyIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Ci08L2Rpdj4KLQotPGRpdiBpZD0i
b3RoZXIiPgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWRpc2FibGUtdGhlbi1kZWxldGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZGlzYWJsZS10aGVuLWRl
bGV0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3M2MyYzEu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZGlzYWJs
ZS10aGVuLWRlbGV0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBA
Ci1UZXN0cyB0aGF0IHJlbW92YWwgb2YgcHJvcGVydHkgZm9sbG93aW5nIGl0cyBkaXNhYmxpbmcg
d29ya3MuCi0KLUJlZm9yZSBkaXNhYmxlCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAo
KQotZm9udC13ZWlnaHQ6IGJvbGQ7Ci0KLQotQWZ0ZXIgZGlzYWJsZQotW2V4cGFuZGVkXSAKLWVs
ZW1lbnQuc3R5bGUgIHsgKCkKLS8tLSBvdmVybG9hZGVkIC0tLyAvLS0gZGlzYWJsZWQgLS0vIGZv
bnQtd2VpZ2h0OiBib2xkOwotCi0KLUFmdGVyIGRlbGV0ZQotW2V4cGFuZGVkXSAKLWVsZW1lbnQu
c3R5bGUgIHsgKCkKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvc3R5bGVzLWRpc2FibGUtdGhlbi1kZWxldGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvc3R5bGVzLWRpc2FibGUtdGhlbi1kZWxldGUuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYWZmYTY0YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLXRoZW4tZGVsZXRlLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw2NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0
Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9u
IHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIC8vIERpc2FibGUgcHJvcGVydHkKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkJlZm9yZSBkaXNhYmxlIik7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlLCB0cnVlKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC50b2dnbGVTdHlsZVByb3BlcnR5KCJmb250LXdlaWdodCIsIGZhbHNlKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAyKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICAvLyBEZWxldGUgc3R5
bGUKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIGRpc2FibGUiKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUsIHRydWUp
OwotCi0gICAgICAgIHZhciB0cmVlSXRlbSA9IEluc3BlY3RvclRlc3QuZ2V0RWxlbWVudFN0eWxl
UHJvcGVydHlUcmVlSXRlbSgiZm9udC13ZWlnaHQiKTsKLSAgICAgICAgdHJlZUl0ZW0uYXBwbHlT
dHlsZVRleHQoIiIsIHRydWUpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5k
aW5nRGlzcGF0Y2hlcyhzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElkKCJvdGhlciIpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDQpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
c2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIHN0ZXA1KTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBzdGVwNShub2RlKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkFmdGVyIGRlbGV0ZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxl
Y3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgdHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCByZW1vdmFsIG9mIHByb3BlcnR5IGZvbGxv
d2luZyBpdHMgZGlzYWJsaW5nIHdvcmtzLgotPC9wPgotCi08ZGl2IGlkPSJjb250YWluZXIiIHN0
eWxlPSJmb250LXdlaWdodDpib2xkIj4KLTwvZGl2PgotCi08ZGl2IGlkPSJvdGhlciI+Ci08L2Rp
dj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9zdHlsZXMtZGlzYWJsZS10aGVuLWVuYWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLXRoZW4tZW5hYmxlLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZlZjZhZS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLXRoZW4tZW5hYmxl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotVGVzdHMgdGhhdCBk
aXNhYmxpbmcgc3R5bGUgcHJvcGVydHkgd29ya3MuCi0KLUJlZm9yZSBkaXNhYmxlCi1mb250LXdl
aWdodDogYm9sZDsKLUFmdGVyIGRpc2FibGUKLS8tLSBvdmVybG9hZGVkIC0tLyAvLS0gZGlzYWJs
ZWQgLS0vIGZvbnQtd2VpZ2h0OiBib2xkOwotQWZ0ZXIgZW5hYmxlCi1mb250LXdlaWdodDogYm9s
ZDsKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZGlz
YWJsZS10aGVuLWVuYWJsZS1vdmVycmlkZW4tdWEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZGlzYWJsZS10aGVuLWVuYWJsZS1vdmVycmlkZW4tdWEt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZmIyZTUyLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWRpc2FibGUtdGhl
bi1lbmFibGUtb3ZlcnJpZGVuLXVhLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ4
ICswLDAgQEAKLVRlc3RzIHRoYXQgZGlzYWJsaW5nIHNob3J0aGFuZCByZW1vdmVzIHRoZSAib3Zl
cnJpZGVuIiBtYXJrIGZyb20gdGhlIFVBIHNob3J0aGFuZCBpdCBvdmVycmlkZXMuCi0KLUJlZm9y
ZSBkaXNhYmxlCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotbWFyZ2luOiAxMHB4
OwotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLSNj
b250YWluZXIgIHsgKHVzZXIgc3R5bGVzaGVldCkKLS8tLSBvdmVybG9hZGVkIC0tLyBtYXJnaW46
IDhweDsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlz
cGxheTogYmxvY2s7Ci0KLQotQWZ0ZXIgZGlzYWJsZQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5
bGUgIHsgKCkKLS8tLSBvdmVybG9hZGVkIC0tLyAvLS0gZGlzYWJsZWQgLS0vIG1hcmdpbjogMTBw
eDsKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0j
Y29udGFpbmVyICB7ICh1c2VyIHN0eWxlc2hlZXQpCi1tYXJnaW46IDhweDsKLQotW2V4cGFuZGVk
XSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQot
QWZ0ZXIgZW5hYmxlCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotbWFyZ2luOiAx
MHB4OwotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAK
LSNjb250YWluZXIgIHsgKHVzZXIgc3R5bGVzaGVldCkKLS8tLSBvdmVybG9hZGVkIC0tLyBtYXJn
aW46IDhweDsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQot
ZGlzcGxheTogYmxvY2s7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1kaXNhYmxlLXRoZW4tZW5hYmxlLW92ZXJyaWRlbi11YS5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZGlzYWJsZS10aGVuLWVuYWJsZS1vdmVy
cmlkZW4tdWEuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDhkZTYwMC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLXRo
ZW4tZW5hYmxlLW92ZXJyaWRlbi11YS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIGluamVjdFN0eWxlU2hlZXQoKQotewotICAgIHZhciBzdHlsZVNoZWV0ID0gIiNj
b250YWluZXIgeyBtYXJnaW46IDhweCB9IjsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmFkZFVzZXJTdHlsZVNoZWV0KHN0eWxlU2hlZXQsIHRy
dWUpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKCJpbmplY3RTdHlsZVNoZWV0KCkiLCBzdGVwMSk7Ci0gICAgZnVuY3Rpb24gc3RlcDEo
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxl
cygiY29udGFpbmVyIiwgc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJCZWZvcmUgZGlzYWJsZSIpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgZmFs
c2UsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnRvZ2dsZVN0eWxlUHJvcGVydHkoIm1h
cmdpbiIsIGZhbHNlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJjb250
YWluZXIiLCBzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIGRpc2FibGUiKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUsIGZhbHNlLCB0cnVl
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC50b2dnbGVTdHlsZVByb3BlcnR5KCJtYXJnaW4iLCB0
cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJjb250YWluZXIiLCBz
dGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDQoKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIGVuYWJsZSIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgZmFsc2UsIHRydWUpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSIgaWQ9ImJvZHktaWQiPgotPHA+Ci1UZXN0
cyB0aGF0IGRpc2FibGluZyBzaG9ydGhhbmQgcmVtb3ZlcyB0aGUgIm92ZXJyaWRlbiIgbWFyayBm
cm9tIHRoZSBVQSBzaG9ydGhhbmQgaXQgb3ZlcnJpZGVzLgotPC9wPgotCi08ZGl2IGlkPSJjb250
YWluZXIiIHN0eWxlPSJtYXJnaW46IDEwcHgiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLXRo
ZW4tZW5hYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNh
YmxlLXRoZW4tZW5hYmxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjYzAw
ZWUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZGlz
YWJsZS10aGVuLWVuYWJsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVz
KCJjb250YWluZXIiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMShub2RlKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkJlZm9yZSBkaXNhYmxlIik7Ci0gICAg
ICAgIHZhciB0cmVlSXRlbSA9IEluc3BlY3RvclRlc3QuZ2V0RWxlbWVudFN0eWxlUHJvcGVydHlU
cmVlSXRlbSgiZm9udC13ZWlnaHQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU3R5bGVU
cmVlSXRlbSh0cmVlSXRlbSwgIiIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QudG9nZ2xlU3R5
bGVQcm9wZXJ0eSgiZm9udC13ZWlnaHQiLCBmYWxzZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
d2FpdEZvclN0eWxlcygiY29udGFpbmVyIiwgc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZnRlciBk
aXNhYmxlIik7Ci0gICAgICAgIHZhciB0cmVlSXRlbSA9IEluc3BlY3RvclRlc3QuZ2V0RWxlbWVu
dFN0eWxlUHJvcGVydHlUcmVlSXRlbSgiZm9udC13ZWlnaHQiKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5kdW1wU3R5bGVUcmVlSXRlbSh0cmVlSXRlbSwgIiIpOwotCi0gICAgICAgIEluc3BlY3Rv
clRlc3QudG9nZ2xlU3R5bGVQcm9wZXJ0eSgiZm9udC13ZWlnaHQiLCB0cnVlKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJjb250YWluZXIiLCBzdGVwMyk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIkFmdGVyIGVuYWJsZSIpOwotICAgICAgICB2YXIgdHJlZUl0ZW0gPSBJbnNwZWN0b3JU
ZXN0LmdldEVsZW1lbnRTdHlsZVByb3BlcnR5VHJlZUl0ZW0oImZvbnQtd2VpZ2h0Iik7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcFN0eWxlVHJlZUl0ZW0odHJlZUl0ZW0sICIiKTsKLQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgZGlz
YWJsaW5nIHN0eWxlIHByb3BlcnR5IHdvcmtzLgotPC9wPgotCi08ZGl2IGlkPSJjb250YWluZXIi
IHN0eWxlPSJmb250LXdlaWdodDpib2xkIj4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1lZGl0LXByb3Bl
cnR5LWFmdGVyLWludmFsaWQtcnVsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3N0eWxlcy1lZGl0LXByb3BlcnR5LWFmdGVyLWludmFsaWQtcnVsZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5ZWMxYzAuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZWRpdC1wcm9wZXJ0eS1hZnRl
ci1pbnZhbGlkLXJ1bGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBA
QAotVGVzdHMgdGhhdCBwcm9wZXIgc291cmNlIGxpbmVzIGFyZSByZXBvcnRlZCBmb3IgdGhlIHN0
eWxlcyBhZnRlciB1bnJlY29nbml6ZXIgLyBpbnZhbGlkIHNlbGVjdG9yLgotCi1Jbml0aWFsIHZh
bHVlCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVk
IENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLW1lZGlhPSJzY3JlZW4iIChzdHlsZXMt
ZWRpdC1wcm9wZXJ0eS1hZnRlci1pbnZhbGlkLXJ1bGUuaHRtbCkKLSNjb250YWluZXIgIHsgKHN0
eWxlcy1lZGl0LXByb3BlcnR5LWFmdGVyLWludmFsaWQtcnVsZS5odG1sOjEwKQotcGFkZGluZzog
MTVweDsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlz
cGxheTogYmxvY2s7Ci0KLQotQWZ0ZXIgY2hhbmdpbmcgcHJvcGVydHkKLVtleHBhbmRlZF0gCi1l
bGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09
Ci1bZXhwYW5kZWRdIAotbWVkaWE9InNjcmVlbiIgKHN0eWxlcy1lZGl0LXByb3BlcnR5LWFmdGVy
LWludmFsaWQtcnVsZS5odG1sKQotI2NvbnRhaW5lciAgeyAoc3R5bGVzLWVkaXQtcHJvcGVydHkt
YWZ0ZXItaW52YWxpZC1ydWxlLmh0bWw6MTApCi1wYWRkaW5nOiAyMHB4OwotCi1bZXhwYW5kZWRd
IAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWVkaXQtcHJv
cGVydHktYWZ0ZXItaW52YWxpZC1ydWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy1lZGl0LXByb3BlcnR5LWFmdGVyLWludmFsaWQtcnVsZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTMwNTAwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWVkaXQtcHJvcGVydHktYWZ0ZXItaW52YWxpZC1ydWxl
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotCi08
c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgotLyogSW52YWxpZCBzZWxlY3Rv
ciAqLwotLm5hdmJhci1zZWFyY2ggLnNlYXJjaC1xdWVyeTotbW96LXBsYWNlaG9sZGVyIHsKLSAg
Y29sb3I6ICNjY2NjY2M7Ci19Ci0KLSNjb250YWluZXIgewotICBwYWRkaW5nOiAxNXB4OwotfQot
PC9zdHlsZT4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9u
IHRlc3QoKQotewotICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxl
cygiY29udGFpbmVyIiwgc3RlcDEpOwotICAgIAotICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAg
ICAgewotICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJJbml0aWFsIHZhbHVlIik7
Ci0gICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUs
IGZhbHNlLCB0cnVlKTsKLSAgICAKLSAgICAgICAgICB2YXIgdHJlZUl0ZW0gPSBJbnNwZWN0b3JU
ZXN0LmdldE1hdGNoZWRTdHlsZVByb3BlcnR5VHJlZUl0ZW0oInBhZGRpbmciKTsKLSAgICAgICAg
ICB0cmVlSXRlbS5hcHBseVN0eWxlVGV4dCgicGFkZGluZzogMjBweCIsIHRydWUsIGZhbHNlKTsK
LSAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIHN0ZXAy
KTsKLSAgICAgIH0KLSAgICAKLSAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgIHsKLSAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgY2hhbmdpbmcgcHJvcGVydHkiKTsK
LSAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwg
ZmFsc2UsIHRydWUpOwotICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0g
ICAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD4KLVRlc3RzIHRoYXQgcHJvcGVyIHNvdXJjZSBsaW5lcyBhcmUgcmVwb3J0ZWQgZm9y
IHRoZSBzdHlsZXMgYWZ0ZXIgdW5yZWNvZ25pemVyIC8gaW52YWxpZCBzZWxlY3Rvci4KLTwvcD4K
LQotPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZm9ybWF0dGluZy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1mb3JtYXR0aW5n
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDBkYzY3OC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1mb3JtYXR0aW5n
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi1UZXN0cyB0aGF0
IEluc3BlY3RvckNTU0FnZW50IGZvcm1hdHMgdGhlIENTUyBzdHlsZSB0ZXh0IGJhc2VkIG9uIHRo
ZSBDU1MgbW9kZWwgbW9kaWZpY2F0aW9ucy4KLQotRm9ybWF0dGVkCi1VbmZvcm1hdHRlZAotCi1S
dW5uaW5nOiBpbml0Rm9ybWF0dGVkU3R5bGUKLQotUnVubmluZzogdGVzdEZvcm1hdHRlZEluc2Vy
dFN0YXJ0Ci1yYXcgY3NzVGV4dDoKLXsgCi0gICAgZmlyc3RQcm9wZXJ0eTogZmlyc3RWYWx1ZTsK
LSAgICBwcm9wZXJ0eTE6IHZhbHVlMTsKLSAgICBwcm9wZXJ0eTI6IHZhbHVlMjsKLSAgICBwcm9w
ZXJ0eTM6IHZhbHVlMzsKLX0KLQotUnVubmluZzogdGVzdEZvcm1hdHRlZFJlbW92ZVN0YXJ0Ci1y
YXcgY3NzVGV4dDoKLXsgCi0gICAgcHJvcGVydHkxOiB2YWx1ZTE7Ci0gICAgcHJvcGVydHkyOiB2
YWx1ZTI7Ci0gICAgcHJvcGVydHkzOiB2YWx1ZTM7Ci19Ci0KLVJ1bm5pbmc6IHRlc3RGb3JtYXR0
ZWRJbnNlcnRNaWRkbGUKLXJhdyBjc3NUZXh0OgoteyAKLSAgICBwcm9wZXJ0eTE6IHZhbHVlMTsK
LSAgICBtaWRkbGVQcm9wZXJ0eTogbWlkZGxlVmFsdWU7Ci0gICAgcHJvcGVydHkyOiB2YWx1ZTI7
Ci0gICAgcHJvcGVydHkzOiB2YWx1ZTM7Ci19Ci0KLVJ1bm5pbmc6IHRlc3RGb3JtYXR0ZWRSZW1v
dmVNaWRkbGUKLXJhdyBjc3NUZXh0OgoteyAKLSAgICBwcm9wZXJ0eTE6IHZhbHVlMTsKLSAgICBw
cm9wZXJ0eTI6IHZhbHVlMjsKLSAgICBwcm9wZXJ0eTM6IHZhbHVlMzsKLX0KLQotUnVubmluZzog
dGVzdEZvcm1hdHRlZEluc2VydEVuZAotcmF3IGNzc1RleHQ6Ci17IAotICAgIHByb3BlcnR5MTog
dmFsdWUxOwotICAgIHByb3BlcnR5MjogdmFsdWUyOwotICAgIHByb3BlcnR5MzogdmFsdWUzOwot
ICAgIGVuZFByb3BlcnR5OiBlbmRWYWx1ZTsKLX0KLQotUnVubmluZzogdGVzdEZvcm1hdHRlZFJl
bW92ZUVuZAotcmF3IGNzc1RleHQ6Ci17IAotICAgIHByb3BlcnR5MTogdmFsdWUxOwotICAgIHBy
b3BlcnR5MjogdmFsdWUyOwotICAgIHByb3BlcnR5MzogdmFsdWUzOwotfQotCi1SdW5uaW5nOiB0
ZXN0Rm9ybWF0dGVkRGlzYWJsZVN0YXJ0Ci1yYXcgY3NzVGV4dDoKLXsgCi0gICAgcHJvcGVydHky
OiB2YWx1ZTI7Ci0gICAgcHJvcGVydHkzOiB2YWx1ZTM7Ci19Ci0KLVJ1bm5pbmc6IHRlc3RGb3Jt
YXR0ZWREaXNhYmxlRW5kCi1yYXcgY3NzVGV4dDoKLXsgCi0gICAgcHJvcGVydHkyOiB2YWx1ZTI7
Ci19Ci0KLVJ1bm5pbmc6IHRlc3RGb3JtYXR0ZWREaXNhYmxlTWlkZGxlCi1yYXcgY3NzVGV4dDoK
LXsgCi19Ci0KLVJ1bm5pbmc6IHRlc3RGb3JtYXR0ZWRJbnNlcnQxCi1yYXcgY3NzVGV4dDoKLXsg
Ci0gICAgcHJvcEE6IHZhbEE7Ci19Ci0KLVJ1bm5pbmc6IHRlc3RGb3JtYXR0ZWRJbnNlcnQyCi1y
YXcgY3NzVGV4dDoKLXsgCi0gICAgcHJvcEE6IHZhbEE7Ci0gICAgcHJvcEI6IHZhbEI7Ci19Ci0K
LVJ1bm5pbmc6IHRlc3RGb3JtYXR0ZWRJbnNlcnQzCi1yYXcgY3NzVGV4dDoKLXsgCi0gICAgcHJv
cEE6IHZhbEE7Ci0gICAgcHJvcEI6IHZhbEI7Ci0gICAgcHJvcEM6IHZhbEM7Ci19Ci0KLVJ1bm5p
bmc6IHRlc3RGb3JtYXR0ZWRFbmFibGVTdGFydAotcmF3IGNzc1RleHQ6Ci17IAotICAgIHByb3BB
OiB2YWxBOwotICAgIHByb3BlcnR5MTogdmFsdWUxOwotICAgIHByb3BCOiB2YWxCOwotICAgIHBy
b3BDOiB2YWxDOwotfQotCi1SdW5uaW5nOiB0ZXN0Rm9ybWF0dGVkRW5hYmxlRW5kCi1yYXcgY3Nz
VGV4dDoKLXsgCi0gICAgcHJvcEE6IHZhbEE7Ci0gICAgcHJvcGVydHkxOiB2YWx1ZTE7Ci0gICAg
cHJvcEI6IHZhbEI7Ci0gICAgcHJvcGVydHkzOiB2YWx1ZTM7Ci0gICAgcHJvcEM6IHZhbEM7Ci19
Ci0KLVJ1bm5pbmc6IHRlc3RGb3JtYXR0ZWRFbmFibGVNaWRkbGUKLXJhdyBjc3NUZXh0OgoteyAK
LSAgICBwcm9wQTogdmFsQTsKLSAgICBwcm9wZXJ0eTE6IHZhbHVlMTsKLSAgICBwcm9wQjogdmFs
QjsKLSAgICBwcm9wZXJ0eTI6IHZhbHVlMjsKLSAgICBwcm9wZXJ0eTM6IHZhbHVlMzsKLSAgICBw
cm9wQzogdmFsQzsKLX0KLQotUnVubmluZzogaW5pdFVuZm9ybWF0dGVkU3R5bGUKLQotUnVubmlu
ZzogdGVzdFVuZm9ybWF0dGVkSW5zZXJ0U3RhcnQKLXJhdyBjc3NUZXh0Ogote2ZpcnN0UHJvcGVy
dHk6IGZpcnN0VmFsdWU7cHJvcGVydHkxOnZhbHVlMTtwcm9wZXJ0eTI6dmFsdWUyO3Byb3BlcnR5
Mzp2YWx1ZTM7fQotCi1SdW5uaW5nOiB0ZXN0VW5mb3JtYXR0ZWRSZW1vdmVTdGFydAotcmF3IGNz
c1RleHQ6Ci17cHJvcGVydHkxOnZhbHVlMTtwcm9wZXJ0eTI6dmFsdWUyO3Byb3BlcnR5Mzp2YWx1
ZTM7fQotCi1SdW5uaW5nOiB0ZXN0VW5mb3JtYXR0ZWRJbnNlcnRNaWRkbGUKLXJhdyBjc3NUZXh0
Ogote3Byb3BlcnR5MTp2YWx1ZTE7bWlkZGxlUHJvcGVydHk6IG1pZGRsZVZhbHVlO3Byb3BlcnR5
Mjp2YWx1ZTI7cHJvcGVydHkzOnZhbHVlMzt9Ci0KLVJ1bm5pbmc6IHRlc3RVbmZvcm1hdHRlZFJl
bW92ZU1pZGRsZQotcmF3IGNzc1RleHQ6Ci17cHJvcGVydHkxOnZhbHVlMTtwcm9wZXJ0eTI6dmFs
dWUyO3Byb3BlcnR5Mzp2YWx1ZTM7fQotCi1SdW5uaW5nOiB0ZXN0VW5mb3JtYXR0ZWRJbnNlcnRF
bmQKLXJhdyBjc3NUZXh0Ogote3Byb3BlcnR5MTp2YWx1ZTE7cHJvcGVydHkyOnZhbHVlMjtwcm9w
ZXJ0eTM6dmFsdWUzO2VuZFByb3BlcnR5OiBlbmRWYWx1ZTt9Ci0KLVJ1bm5pbmc6IHRlc3RVbmZv
cm1hdHRlZFJlbW92ZUVuZAotcmF3IGNzc1RleHQ6Ci17cHJvcGVydHkxOnZhbHVlMTtwcm9wZXJ0
eTI6dmFsdWUyO3Byb3BlcnR5Mzp2YWx1ZTM7fQotCi1SdW5uaW5nOiB0ZXN0VW5mb3JtYXR0ZWRE
aXNhYmxlU3RhcnQKLXJhdyBjc3NUZXh0Ogote3Byb3BlcnR5Mjp2YWx1ZTI7cHJvcGVydHkzOnZh
bHVlMzt9Ci0KLVJ1bm5pbmc6IHRlc3RVbmZvcm1hdHRlZERpc2FibGVFbmQKLXJhdyBjc3NUZXh0
Ogote3Byb3BlcnR5Mjp2YWx1ZTI7fQotCi1SdW5uaW5nOiB0ZXN0VW5mb3JtYXR0ZWREaXNhYmxl
TWlkZGxlCi1yYXcgY3NzVGV4dDoKLXt9Ci0KLVJ1bm5pbmc6IHRlc3RVbmZvcm1hdHRlZEVuYWJs
ZVN0YXJ0Ci1yYXcgY3NzVGV4dDoKLXtwcm9wZXJ0eTE6dmFsdWUxO30KLQotUnVubmluZzogdGVz
dFVuZm9ybWF0dGVkRW5hYmxlRW5kCi1yYXcgY3NzVGV4dDoKLXtwcm9wZXJ0eTE6dmFsdWUxO3By
b3BlcnR5Mzp2YWx1ZTM7fQotCi1SdW5uaW5nOiB0ZXN0VW5mb3JtYXR0ZWRFbmFibGVNaWRkbGUK
LXJhdyBjc3NUZXh0Ogote3Byb3BlcnR5MTp2YWx1ZTE7cHJvcGVydHkyOnZhbHVlMjtwcm9wZXJ0
eTM6dmFsdWUzO30KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtZm9ybWF0dGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHls
ZXMtZm9ybWF0dGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDk4NTRl
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWZvcm1h
dHRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0OCArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgdmFyIGZvcm1hdHRlZFN0eWxlOwotICAgIHZhciB1bmZvcm1hdHRlZFN0eWxlOwot
Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiBpbml0
Rm9ybWF0dGVkU3R5bGUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY2Fs
bGJhY2soc3R5bGVzKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmICghc3R5bGVz
KSB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJlbXB0eSBz
dHlsZXMiKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgICAgIGZvcm1hdHRlZFN0eWxlID0gc3R5bGVzLm1hdGNoZWRDU1NSdWxl
c1sxXS5zdHlsZTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIG5vZGVDYWxsYmFjayhub2RlKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRNYXRjaGVkU3R5bGVzQXN5bmMo
bm9kZS5pZCwgZmFsc2UsIGZhbHNlLCBjYWxsYmFjayk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoImZvcm1hdHRlZCIsIG5vZGVDYWxs
YmFjayk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEZvcm1hdHRlZEluc2Vy
dFN0YXJ0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvcm1hdHRlZFN0eWxlLmluc2Vy
dFByb3BlcnR5QXQoMCwgImZpcnN0UHJvcGVydHkiLCAiZmlyc3RWYWx1ZSIsIGR1bXBGb3JtYXR0
ZWRBbmRDYWxsTmV4dC5iaW5kKG51bGwsIG5leHQpKTsKLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0ZXN0Rm9ybWF0dGVkUmVtb3ZlU3RhcnQobmV4dCkKLSAgICAgICAgewotICAgICAg
ICAgICAgZm9ybWF0dGVkU3R5bGUuYWxsUHJvcGVydGllc1swXS5zZXRUZXh0KCIiLCB0cnVlLCB0
cnVlLCBkdW1wRm9ybWF0dGVkQW5kQ2FsbE5leHQuYmluZChudWxsLCBuZXh0KSk7Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEZvcm1hdHRlZEluc2VydE1pZGRsZShuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICBmb3JtYXR0ZWRTdHlsZS5pbnNlcnRQcm9wZXJ0eUF0KDEs
ICJtaWRkbGVQcm9wZXJ0eSIsICJtaWRkbGVWYWx1ZSIsIGR1bXBGb3JtYXR0ZWRBbmRDYWxsTmV4
dC5iaW5kKG51bGwsIG5leHQpKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0
Rm9ybWF0dGVkUmVtb3ZlTWlkZGxlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvcm1h
dHRlZFN0eWxlLmFsbFByb3BlcnRpZXNbMV0uc2V0VGV4dCgiIiwgdHJ1ZSwgdHJ1ZSwgZHVtcEZv
cm1hdHRlZEFuZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOwotICAgICAgICB9LAotCi0gICAg
ICAgIGZ1bmN0aW9uIHRlc3RGb3JtYXR0ZWRJbnNlcnRFbmQobmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgZm9ybWF0dGVkU3R5bGUuaW5zZXJ0UHJvcGVydHlBdCgzLCAiZW5kUHJvcGVydHki
LCAiZW5kVmFsdWUiLCBkdW1wRm9ybWF0dGVkQW5kQ2FsbE5leHQuYmluZChudWxsLCBuZXh0KSk7
Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEZvcm1hdHRlZFJlbW92ZUVuZChu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3JtYXR0ZWRTdHlsZS5hbGxQcm9wZXJ0aWVz
WzNdLnNldFRleHQoIiIsIHRydWUsIHRydWUsIGR1bXBGb3JtYXR0ZWRBbmRDYWxsTmV4dC5iaW5k
KG51bGwsIG5leHQpKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0Rm9ybWF0
dGVkRGlzYWJsZVN0YXJ0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvcm1hdHRlZFN0
eWxlLmFsbFByb3BlcnRpZXNbMF0uc2V0RGlzYWJsZWQodHJ1ZSwgZHVtcEZvcm1hdHRlZEFuZENh
bGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9u
IHRlc3RGb3JtYXR0ZWREaXNhYmxlRW5kKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZv
cm1hdHRlZFN0eWxlLmFsbFByb3BlcnRpZXNbMl0uc2V0RGlzYWJsZWQodHJ1ZSwgZHVtcEZvcm1h
dHRlZEFuZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOwotICAgICAgICB9LAotCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RGb3JtYXR0ZWREaXNhYmxlTWlkZGxlKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGZvcm1hdHRlZFN0eWxlLmFsbFByb3BlcnRpZXNbMV0uc2V0RGlzYWJsZWQodHJ1
ZSwgZHVtcEZvcm1hdHRlZEFuZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOwotICAgICAgICB9
LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RGb3JtYXR0ZWRJbnNlcnQxKG5leHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGZvcm1hdHRlZFN0eWxlLmluc2VydFByb3BlcnR5QXQoMCwgInByb3BB
IiwgInZhbEEiLCBkdW1wRm9ybWF0dGVkQW5kQ2FsbE5leHQuYmluZChudWxsLCBuZXh0KSk7Ci0g
ICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEZvcm1hdHRlZEluc2VydDIobmV4dCkK
LSAgICAgICAgewotICAgICAgICAgICAgZm9ybWF0dGVkU3R5bGUuaW5zZXJ0UHJvcGVydHlBdCgy
LCAicHJvcEIiLCAidmFsQiIsIGR1bXBGb3JtYXR0ZWRBbmRDYWxsTmV4dC5iaW5kKG51bGwsIG5l
eHQpKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0Rm9ybWF0dGVkSW5zZXJ0
MyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3JtYXR0ZWRTdHlsZS5pbnNlcnRQcm9w
ZXJ0eUF0KDUsICJwcm9wQyIsICJ2YWxDIiwgZHVtcEZvcm1hdHRlZEFuZENhbGxOZXh0LmJpbmQo
bnVsbCwgbmV4dCkpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RGb3JtYXR0
ZWRFbmFibGVTdGFydChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3JtYXR0ZWRTdHls
ZS5hbGxQcm9wZXJ0aWVzWzFdLnNldERpc2FibGVkKGZhbHNlLCBkdW1wRm9ybWF0dGVkQW5kQ2Fs
bE5leHQuYmluZChudWxsLCBuZXh0KSk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24g
dGVzdEZvcm1hdHRlZEVuYWJsZUVuZChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3Jt
YXR0ZWRTdHlsZS5hbGxQcm9wZXJ0aWVzWzRdLnNldERpc2FibGVkKGZhbHNlLCBkdW1wRm9ybWF0
dGVkQW5kQ2FsbE5leHQuYmluZChudWxsLCBuZXh0KSk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gdGVzdEZvcm1hdHRlZEVuYWJsZU1pZGRsZShuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICBmb3JtYXR0ZWRTdHlsZS5hbGxQcm9wZXJ0aWVzWzNdLnNldERpc2FibGVkKGZhbHNl
LCBkdW1wRm9ybWF0dGVkQW5kQ2FsbE5leHQuYmluZChudWxsLCBuZXh0KSk7Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gaW5pdFVuZm9ybWF0dGVkU3R5bGUobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soc3R5bGVzKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIGlmICghc3R5bGVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJlbXB0eSBzdHlsZXMiKTsKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHVuZm9ybWF0dGVk
U3R5bGUgPSBzdHlsZXMubWF0Y2hlZENTU1J1bGVzWzFdLnN0eWxlOwotICAgICAgICAgICAgICAg
IG5leHQoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gbm9kZUNhbGxi
YWNrKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNz
c01vZGVsLmdldE1hdGNoZWRTdHlsZXNBc3luYyhub2RlLmlkLCBmYWxzZSwgZmFsc2UsIGNhbGxi
YWNrKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9k
ZVdpdGhJZCgidW5mb3JtYXR0ZWQiLCBub2RlQ2FsbGJhY2spOwotICAgICAgICB9LAotCi0gICAg
ICAgIGZ1bmN0aW9uIHRlc3RVbmZvcm1hdHRlZEluc2VydFN0YXJ0KG5leHQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHVuZm9ybWF0dGVkU3R5bGUuaW5zZXJ0UHJvcGVydHlBdCgwLCAiZmlyc3RQ
cm9wZXJ0eSIsICJmaXJzdFZhbHVlIiwgZHVtcFVuZm9ybWF0dGVkQW5kQ2FsbE5leHQuYmluZChu
dWxsLCBuZXh0KSk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFVuZm9ybWF0
dGVkUmVtb3ZlU3RhcnQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdW5mb3JtYXR0ZWRT
dHlsZS5hbGxQcm9wZXJ0aWVzWzBdLnNldFRleHQoIiIsIHRydWUsIHRydWUsIGR1bXBVbmZvcm1h
dHRlZEFuZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOwotICAgICAgICB9LAotCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RVbmZvcm1hdHRlZEluc2VydE1pZGRsZShuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICB1bmZvcm1hdHRlZFN0eWxlLmluc2VydFByb3BlcnR5QXQoMSwgIm1pZGRsZVBy
b3BlcnR5IiwgIm1pZGRsZVZhbHVlIiwgZHVtcFVuZm9ybWF0dGVkQW5kQ2FsbE5leHQuYmluZChu
dWxsLCBuZXh0KSk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFVuZm9ybWF0
dGVkUmVtb3ZlTWlkZGxlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHVuZm9ybWF0dGVk
U3R5bGUuYWxsUHJvcGVydGllc1sxXS5zZXRUZXh0KCIiLCB0cnVlLCB0cnVlLCBkdW1wVW5mb3Jt
YXR0ZWRBbmRDYWxsTmV4dC5iaW5kKG51bGwsIG5leHQpKTsKLSAgICAgICAgfSwKLQotICAgICAg
ICBmdW5jdGlvbiB0ZXN0VW5mb3JtYXR0ZWRJbnNlcnRFbmQobmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgdW5mb3JtYXR0ZWRTdHlsZS5pbnNlcnRQcm9wZXJ0eUF0KDMsICJlbmRQcm9wZXJ0
eSIsICJlbmRWYWx1ZSIsIGR1bXBVbmZvcm1hdHRlZEFuZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4
dCkpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RVbmZvcm1hdHRlZFJlbW92
ZUVuZChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB1bmZvcm1hdHRlZFN0eWxlLmFsbFBy
b3BlcnRpZXNbM10uc2V0VGV4dCgiIiwgdHJ1ZSwgdHJ1ZSwgZHVtcFVuZm9ybWF0dGVkQW5kQ2Fs
bE5leHQuYmluZChudWxsLCBuZXh0KSk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24g
dGVzdFVuZm9ybWF0dGVkRGlzYWJsZVN0YXJ0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHVuZm9ybWF0dGVkU3R5bGUuYWxsUHJvcGVydGllc1swXS5zZXREaXNhYmxlZCh0cnVlLCBkdW1w
VW5mb3JtYXR0ZWRBbmRDYWxsTmV4dC5iaW5kKG51bGwsIG5leHQpKTsKLSAgICAgICAgfSwKLQot
ICAgICAgICBmdW5jdGlvbiB0ZXN0VW5mb3JtYXR0ZWREaXNhYmxlRW5kKG5leHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHVuZm9ybWF0dGVkU3R5bGUuYWxsUHJvcGVydGllc1syXS5zZXREaXNh
YmxlZCh0cnVlLCBkdW1wVW5mb3JtYXR0ZWRBbmRDYWxsTmV4dC5iaW5kKG51bGwsIG5leHQpKTsK
LSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0VW5mb3JtYXR0ZWREaXNhYmxlTWlk
ZGxlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHVuZm9ybWF0dGVkU3R5bGUuYWxsUHJv
cGVydGllc1sxXS5zZXREaXNhYmxlZCh0cnVlLCBkdW1wVW5mb3JtYXR0ZWRBbmRDYWxsTmV4dC5i
aW5kKG51bGwsIG5leHQpKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0VW5m
b3JtYXR0ZWRFbmFibGVTdGFydChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB1bmZvcm1h
dHRlZFN0eWxlLmFsbFByb3BlcnRpZXNbMF0uc2V0RGlzYWJsZWQoZmFsc2UsIGR1bXBVbmZvcm1h
dHRlZEFuZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOwotICAgICAgICB9LAotCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RVbmZvcm1hdHRlZEVuYWJsZUVuZChuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICB1bmZvcm1hdHRlZFN0eWxlLmFsbFByb3BlcnRpZXNbMl0uc2V0RGlzYWJsZWQoZmFs
c2UsIGR1bXBVbmZvcm1hdHRlZEFuZENhbGxOZXh0LmJpbmQobnVsbCwgbmV4dCkpOwotICAgICAg
ICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RVbmZvcm1hdHRlZEVuYWJsZU1pZGRsZShuZXh0
KQotICAgICAgICB7Ci0gICAgICAgICAgICB1bmZvcm1hdHRlZFN0eWxlLmFsbFByb3BlcnRpZXNb
MV0uc2V0RGlzYWJsZWQoZmFsc2UsIGR1bXBVbmZvcm1hdHRlZEFuZENhbGxOZXh0LmJpbmQobnVs
bCwgbmV4dCkpOwotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICAvLyBEYXRhIGR1bXBpbmcKLQot
ICAgIGZ1bmN0aW9uIGR1bXBGb3JtYXR0ZWRBbmRDYWxsTmV4dChuZXh0LCBzdHlsZSkKLSAgICB7
Ci0gICAgICAgIGlmICghc3R5bGUpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJlcnJvcjogZW1wdHkgc3R5bGUiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3JtYXR0ZWRTdHlsZSA9IHN0eWxl
OwotICAgICAgICBkdW1wU3R5bGUoc3R5bGUpOwotICAgICAgICBpZiAobmV4dCkKLSAgICAgICAg
ICAgIG5leHQoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wVW5mb3JtYXR0ZWRBbmRDYWxs
TmV4dChuZXh0LCBzdHlsZSkKLSAgICB7Ci0gICAgICAgIGlmICghc3R5bGUpIHsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJlcnJvcjogZW1wdHkgc3R5bGUiKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0KLQotICAgICAg
ICB1bmZvcm1hdHRlZFN0eWxlID0gc3R5bGU7Ci0gICAgICAgIGR1bXBTdHlsZShzdHlsZSk7Ci0g
ICAgICAgIGlmIChuZXh0KQotICAgICAgICAgICAgbmV4dCgpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIGR1bXBTdHlsZShzdHlsZSkKLSAgICB7Ci0gICAgICAgIGlmICghc3R5bGUpCi0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyYXcgY3NzVGV4
dDoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInsiICsgc3R5bGUuY3NzVGV4
dCArICJ9Iik7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci0KLTxzdHlsZT4KLQotI2Zvcm1hdHRlZCB7
IAotICAgIHByb3BlcnR5MTogdmFsdWUxOwotICAgIHByb3BlcnR5MjogdmFsdWUyOwotICAgIHBy
b3BlcnR5MzogdmFsdWUzOwotfQotCi0jdW5mb3JtYXR0ZWQge3Byb3BlcnR5MTp2YWx1ZTE7cHJv
cGVydHkyOnZhbHVlMjtwcm9wZXJ0eTM6dmFsdWUzO30KLQotPC9zdHlsZT4KLTwvaGVhZD4KLQot
PGJvZHkgaWQ9Im1haW5Cb2R5IiBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQg
SW5zcGVjdG9yQ1NTQWdlbnQgZm9ybWF0cyB0aGUgQ1NTIHN0eWxlIHRleHQgYmFzZWQgb24gdGhl
IENTUyBtb2RlbCBtb2RpZmljYXRpb25zLgotPC9wPgotPGRpdiBpZD0iZm9ybWF0dGVkIj5Gb3Jt
YXR0ZWQ8L2Rpdj4KLTxkaXYgaWQ9InVuZm9ybWF0dGVkIj5VbmZvcm1hdHRlZDwvZGl2PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtaGlzdG9yeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy1oaXN0b3J5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWRiN2Y1OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy1oaXN0b3J5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAK
LVRlc3RzIHJlc291cmNlcyBwYW5lbCBoaXN0b3J5LgotCi0KLVJ1bm5pbmc6IHRlc3RTZXRVcAot
Ci1SdW5uaW5nOiB0ZXN0U2V0UmVzb3VyY2VDb250ZW50TWlub3IKLUhpc3RvcnkgbGVuZ3RoOiAw
Ci0KLVJ1bm5pbmc6IHRlc3RTZXRSZXNvdXJjZUNvbnRlbnRNYWpvcgotSGlzdG9yeSBsZW5ndGg6
IDEKLUl0ZW0gMDoKLWJvZHkgewotICBtYXJnaW46IDIwcHg7Ci0gIHBhZGRpbmc6IDEwcHg7Ci19
Ci0KLVJ1bm5pbmc6IHRlc3RTZXRDb250ZW50VmlhTW9kZWxNaW5vcgotSGlzdG9yeSBsZW5ndGg6
IDEKLUl0ZW0gMDoKLWJvZHkgewotICBtYXJnaW46IDIwcHg7Ci0gIHBhZGRpbmc6IDEwcHg7Ci19
Ci0KLVJ1bm5pbmc6IHRlc3RTZXRDb250ZW50VmlhTW9kZWxNYWpvcgotSGlzdG9yeSBsZW5ndGg6
IDIKLUl0ZW0gMDoKLWJvZHkgewotICBtYXJnaW46IDIwcHg7Ci0gIHBhZGRpbmc6IDEwcHg7Ci19
Ci1JdGVtIDE6Ci1ib2R5IHsKLSAgbWFyZ2luOjMwcHg7Ci0gIHBhZGRpbmc6IDEwcHg7Ci19Ci0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhpc3Rvcnku
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhpc3RvcnkuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWRlOGY3Zi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1oaXN0b3J5Lmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwxMzMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLQotPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJyZXNvdXJjZXMvc3R5bGVzLWhpc3RvcnkuY3NzIj4KLQotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyQ2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkKHJ1blRl
c3RTdWl0ZSk7Ci0KLSAgICB2YXIgdWlTb3VyY2VDb2RlOwotCi0gICAgZnVuY3Rpb24gcnVuVGVz
dFN1aXRlKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAg
ICAgICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRVcChuZXh0KQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uIHZpc2l0VUlTb3VyY2VDb2RlcyhjdXJyZW50VUlTb3VyY2VDb2Rl
KQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRVSVNv
dXJjZUNvZGUub3JpZ2luVVJMKCkuaW5kZXhPZigic3R5bGVzLWhpc3RvcnkuY3NzIikgPT09IC0x
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgICAgICB1
aVNvdXJjZUNvZGUgPSBjdXJyZW50VUlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgICAgICBu
ZXh0KCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci53
b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpLmZvckVhY2godmlzaXRVSVNvdXJjZUNvZGVzKTsKLSAg
ICAgICAgICAgIH0sCi0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRSZXNvdXJjZUNvbnRl
bnRNaW5vcihuZXh0KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU3R5bGVGaWxlLnByb3RvdHlwZSwgIl9zdHlsZUNv
bnRlbnRTZXQiLCBzdHlsZVVwZGF0ZWRNaW5vcik7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VD
b2RlLnNldFdvcmtpbmdDb3B5KCJib2R5IHtcbiAgbWFyZ2luOiAxNXB4O1xuICBwYWRkaW5nOiAx
MHB4O1xufSIpOwotCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gc3R5bGVVcGRhdGVkTWlub3Io
KQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgZHVtcEhpc3RvcnkobmV4
dCkoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LAotCi0gICAgICAgICAgICBm
dW5jdGlvbiB0ZXN0U2V0UmVzb3VyY2VDb250ZW50TWFqb3IobmV4dCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlN0
eWxlRmlsZS5wcm90b3R5cGUsICJfc3R5bGVDb250ZW50U2V0Iiwgc3R5bGVVcGRhdGVkTWlub3Ip
OwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiYm9keSB7XG4g
IG1hcmdpbjogMjBweDtcbiAgcGFkZGluZzogMTBweDtcbn0iKTsKLQotICAgICAgICAgICAgICAg
IGZ1bmN0aW9uIHN0eWxlVXBkYXRlZE1pbm9yKCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU3R5bGVG
aWxlLnByb3RvdHlwZSwgIl9zdHlsZUNvbnRlbnRTZXQiLCBzdHlsZVVwZGF0ZWRNYWpvcik7Ci0g
ICAgICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5jb21taXRXb3JraW5nQ29weShmdW5jdGlv
bigpIHsgfSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gc3R5bGVVcGRhdGVkTWFq
b3IoKQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkdW1w
SGlzdG9yeShuZXh0KSgpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfSwKLQotICAgICAgICAgICAgZnVuY3Rpb24gdGVzdFNldENvbnRlbnRW
aWFNb2RlbE1pbm9yKG5leHQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc3R5bGVT
aGVldEZvclJlc291cmNlKHN0ZXAxKTsKLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAx
KHN0eWxlU2hlZXQpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB2YXIg
c3R5bGUgPSBzdHlsZVNoZWV0LnJ1bGVzWzBdLnN0eWxlOwotICAgICAgICAgICAgICAgICAgICB2
YXIgcHJvcGVydHkgPSBzdHlsZS5nZXRMaXZlUHJvcGVydHkoIm1hcmdpbiIpOwotICAgICAgICAg
ICAgICAgICAgICBwcm9wZXJ0eS5zZXRUZXh0KCJtYXJnaW46MjVweDsiLCBmYWxzZSwgdHJ1ZSwg
ZHVtcEhpc3RvcnkobmV4dCkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sCi0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRDb250ZW50VmlhTW9kZWxNYWpvcihuZXh0KQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRGb3JSZXNvdXJjZShzdGVw
MSk7Ci0KLSAgICAgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMShzdHlsZVNoZWV0KQotICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHN0eWxlID0gc3R5bGVTaGVldC5y
dWxlc1swXS5zdHlsZTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gc3R5bGUu
Z2V0TGl2ZVByb3BlcnR5KCJtYXJnaW4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHku
c2V0VGV4dCgibWFyZ2luOjMwcHg7IiwgdHJ1ZSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhkdW1wSGlzdG9yeShuZXh0
KSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICBdKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBzdHlsZVNoZWV0Rm9yUmVzb3VyY2UoY2FsbGJhY2spCi0gICAgewot
ICAgICAgICBDU1NBZ2VudC5nZXRBbGxTdHlsZVNoZWV0cyhkaWRHZXRBbGxTdHlsZVNoZWV0cy5i
aW5kKHRoaXMpKTsKLQotICAgICAgICBmdW5jdGlvbiBkaWRHZXRBbGxTdHlsZVNoZWV0cyhlcnJv
ciwgaW5mb3MpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFcnJvcjoiICsgZXJyb3IpOwotICAgICAg
ICAgICAgICAgIGNhbGxiYWNrKG51bGwpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmZvcy5sZW5ndGg7
ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBpbmZvID0gaW5mb3NbaV07Ci0gICAgICAgICAg
ICAgICAgaWYgKGluZm8uc291cmNlVVJMLmluZGV4T2YoInN0eWxlcy1oaXN0b3J5LmNzcyIpID09
PSAtMSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRlRm9ySWQoaW5mby5zdHlsZVNoZWV0SWQsIGNh
bGxiYWNrKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBjYWxsYmFjayhudWxsKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1
bXBIaXN0b3J5KG5leHQpCi0gICAgewotICAgICAgICBmdW5jdGlvbiByZXN1bHQoKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiSGlzdG9yeSBsZW5ndGg6
ICIgKyB1aVNvdXJjZUNvZGUuaGlzdG9yeS5sZW5ndGgpOwotICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCB1aVNvdXJjZUNvZGUuaGlzdG9yeS5sZW5ndGg7ICsraSkgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJJdGVtICIgKyBpICsgIjoiKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh1aVNvdXJjZUNvZGUuaGlzdG9yeVtp
XS5jb250ZW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgcmVzb3VyY2VzIHBhbmVs
IGhpc3RvcnkuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaWZyYW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMjZkMDAwNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pZnJhbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMzYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IGlmcmFtZSBsb2FkZWQK
LVRlc3RzIHRoYXQgcHJvcGVyIChhbmQgZGlmZmVyZW50KSBzdHlsZXMgYXJlIHJldHVybmVkIGZv
ciBib2R5IGVsZW1lbnRzIG9mIG1haW4gZG9jdW1lbnQgYW5kIGlmcmFtZS4KLQotCi1NYWluIGZy
YW1lIHN0eWxlOgotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0g
TWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1tZWRpYT0ic2NyZWVuIiAo
c3R5bGVzLWlmcmFtZS5odG1sKQotI21haW4gIHsgKHN0eWxlcy1pZnJhbWUuaHRtbDo1KQotYmFj
a2dyb3VuZDogYmx1ZTsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNo
ZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotaWZyYW1lIHN0eWxlOgotW2V4cGFuZGVkXSAKLWVs
ZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0K
LVtleHBhbmRlZF0gCi1tZWRpYT0ic2NyZWVuIiAoc3R5bGVzLWlmcmFtZS1kYXRhLmh0bWwpCi1i
b2R5ICB7IChzdHlsZXMtaWZyYW1lLWRhdGEuaHRtbDo0KQotYmFja2dyb3VuZDogZ3JlZW47Ci0K
LVtleHBhbmRlZF0gCi1ib2R5ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBi
bG9jazsKLW1hcmdpbjogOHB4OwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9zdHlsZXMtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy1pZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Vk
MTk1NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1p
ZnJhbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci0KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+Ci0gICNtYWluIHsgYmFj
a2dyb3VuZDpibHVlOyB9Ci08L3N0eWxlPgotCi08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLQotZnVuY3Rpb24gbG9hZElmcmFtZSgpCi17Ci0gICAgdmFyIGlmcmFtZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgIGlmcmFtZS5zcmMgPSAicmVzb3VyY2Vz
L3N0eWxlcy1pZnJhbWUtZGF0YS5odG1sIjsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bWFpbiIpLmFwcGVuZENoaWxkKGlmcmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWRJZnJhbWUoKSIpOwotICAgIEluc3Bl
Y3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDApOwotCi0gICAgZnVuY3Rpb24gc3RlcDAo
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxl
cygibWFpbiIsIHN0ZXAxKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTWFpbiBmcmFtZSBzdHlsZToiKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUsIGZhbHNl
LCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxl
cygiaWZyYW1lQm9keSIsIHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiaWZyYW1lIHN0eWxlOiIpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgZmFs
c2UsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0K
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4K
LVRlc3RzIHRoYXQgcHJvcGVyIChhbmQgZGlmZmVyZW50KSBzdHlsZXMgYXJlIHJldHVybmVkIGZv
ciBib2R5IGVsZW1lbnRzIG9mIG1haW4gZG9jdW1lbnQgYW5kIGlmcmFtZS4KLTwvcD4KLQotPGRp
diBpZD0ibWFpbiI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbmNsdWRlLWhvc3QtcnVsZXMtY3Jhc2gtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaW5jbHVkZS1o
b3N0LXJ1bGVzLWNyYXNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNjI4OGI5Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy1pbmNsdWRlLWhvc3QtcnVsZXMtY3Jhc2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTcgKzAsMCBAQAotW2J1ZyAxMDIxMTZdIC0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMjExNiAtIEFTU0VSVF9OT1RfUkVBQ0hFRCgpIHdoZW4gYnVpbGRp
bmcgYSBDU1NPTSB3cmFwcGVyIGZvciBTdHlsZVJ1bGVIb3N0LiBJZiB0aGlzIHRlc3QgcGFzc2Vz
LCBubyBjcmFzaCBvY2N1cnMuCi0KLUZvbwotW2V4cGFuZGVkXSAKLWRpc3BsYXk6IGJsb2NrOwot
ICAgIGRpdiAtIGJsb2NrIHVzZXIgYWdlbnQgc3R5bGVzaGVldAotCi1bZXhwYW5kZWRdIAotZWxl
bWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQot
W2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxv
Y2s7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy1pbmNsdWRlLWhvc3QtcnVsZXMtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvc3R5bGVzLWluY2x1ZGUtaG9zdC1ydWxlcy1jcmFzaC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0YzE4MWExLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvc3R5bGVzLWluY2x1ZGUtaG9zdC1ydWxlcy1jcmFzaC5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNDIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLUBob3N0IHsK
LSAgICBkaXYgeyBib3JkZXI6IDFweCBzb2xpZCBibHVlOyB9Ci19Ci0KLUBob3N0LmRpdiB7Ci0g
IG9wYWNpdHk6IDA7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFu
ZFdhaXRGb3JTdHlsZXNXaXRoQ29tcHV0ZWQoImZvbyIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9u
IHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVu
dFN0eWxlcyhmYWxzZSwgZmFsc2UpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLTxwPgotW2J1ZyAxMDIxMTZdIC0gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjExNiI+aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMjExNjwvYT4gLQotQVNTRVJUX05PVF9SRUFDSEVEKCkgd2hlbiBidWls
ZGluZyBhIENTU09NIHdyYXBwZXIgZm9yIFN0eWxlUnVsZUhvc3QuCi1JZiB0aGlzIHRlc3QgcGFz
c2VzLCBubyBjcmFzaCBvY2N1cnMuCi08L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAg
PGRpdiBpZD0iZm9vIj5Gb288L2Rpdj4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9y
LXZhbHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy1pbnZhbGlkLWNvbG9yLXZhbHVlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDhhNTUyODAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9zdHlsZXMtaW52YWxpZC1jb2xvci12YWx1ZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNzkgKzAsMCBAQAotVGVzdHMgdGhhdCB0aGUgZGlzcGxheWVkIHN0cmluZyBmb3Ig
Y29sb3JzIGNvcnJlY3RseSBoYW5kbGVzIGNsaXBwZWQgQ1NTIHZhbHVlcyBhbmQgUkdCIHBlcmNl
bnRhZ2VzLgotCi0KLVJ1bm5pbmc6IHRlc3RDb2xvcnMKLQotY29sb3I6IHJlZAotICBzaW1wbGU6
IHRydWUKLSAgb3JpZ2luYWw6IHJlZAotICBuaWNrbmFtZTogcmVkCi0gIGhleDogI0ZGMDAwMAot
ICBzaG9ydGhleDogI0YwMAotICByZ2I6IHJnYigyNTUsIDAsIDApCi0gIGhzbDogaHNsKDAsIDEw
MCUsIDUwJSkKLQotY29sb3I6ICNGMDAKLSAgc2ltcGxlOiB0cnVlCi0gIG9yaWdpbmFsOiAjRjAw
Ci0gIG5pY2tuYW1lOiByZWQKLSAgaGV4OiAjRkYwMDAwCi0gIHNob3J0aGV4OiAjRjAwCi0gIHJn
YjogcmdiKDI1NSwgMCwgMCkKLSAgaHNsOiBoc2woMCwgMTAwJSwgNTAlKQotCi1jb2xvcjogcmdi
KDI1NSwwLDApCi0gIHNpbXBsZTogdHJ1ZQotICBvcmlnaW5hbDogcmdiKDI1NSwwLDApCi0gIG5p
Y2tuYW1lOiByZWQKLSAgaGV4OiAjRkYwMDAwCi0gIHNob3J0aGV4OiAjRjAwCi0gIHJnYjogcmdi
KDI1NSwgMCwgMCkKLSAgaHNsOiBoc2woMCwgMTAwJSwgNTAlKQotCi1jb2xvcjogcmdiKDMwMCww
LDApCi0gIHNpbXBsZTogdHJ1ZQotICBvcmlnaW5hbDogcmdiKDMwMCwwLDApCi0gIG5pY2tuYW1l
OiByZWQKLSAgaGV4OiAjRkYwMDAwCi0gIHNob3J0aGV4OiAjRjAwCi0gIHJnYjogcmdiKDI1NSwg
MCwgMCkKLSAgaHNsOiBoc2woMCwgMTAwJSwgNTAlKQotCi1jb2xvcjogcmdiKDI1NSwtMTAsMCkK
LSAgc2ltcGxlOiB0cnVlCi0gIG9yaWdpbmFsOiByZ2IoMjU1LC0xMCwwKQotICBuaWNrbmFtZTog
cmVkCi0gIGhleDogI0ZGMDAwMAotICBzaG9ydGhleDogI0YwMAotICByZ2I6IHJnYigyNTUsIDAs
IDApCi0gIGhzbDogaHNsKDAsIDEwMCUsIDUwJSkKLQotY29sb3I6IHJnYigxMTAlLCAwJSwgMCUp
Ci0gIHNpbXBsZTogdHJ1ZQotICBvcmlnaW5hbDogcmdiKDExMCUsIDAlLCAwJSkKLSAgbmlja25h
bWU6IHJlZAotICBoZXg6ICNGRjAwMDAKLSAgc2hvcnRoZXg6ICNGMDAKLSAgcmdiOiByZ2IoMjU1
LCAwLCAwKQotICBoc2w6IGhzbCgwLCAxMDAlLCA1MCUpCi0KLWNvbG9yOiByZ2JhKDI1NSwgMCwg
MCwgLTUpCi0gIHNpbXBsZTogZmFsc2UKLSAgb3JpZ2luYWw6IHJnYmEoMjU1LCAwLCAwLCAtNSkK
LSAgcmdiOiByZ2IoMjU1LCAwLCAwKQotICByZ2JhOiByZ2JhKDI1NSwgMCwgMCwgMCkKLSAgaHNs
OiBoc2woMCwgMTAwJSwgNTAlKQotICBoc2xhOiBoc2xhKDAsIDEwMCUsIDUwJSwgMCkKLQotY29s
b3I6IHJnYmEoMjU1LCAwLCAwLCA1KQotICBzaW1wbGU6IGZhbHNlCi0gIG9yaWdpbmFsOiByZ2Jh
KDI1NSwgMCwgMCwgNSkKLSAgcmdiOiByZ2IoMjU1LCAwLCAwKQotICByZ2JhOiByZ2JhKDI1NSwg
MCwgMCwgMSkKLSAgaHNsOiBoc2woMCwgMTAwJSwgNTAlKQotICBoc2xhOiBoc2xhKDAsIDEwMCUs
IDUwJSwgMSkKLQotUnVubmluZzogdGVzdEludmFsaWRDb2xvcnMKLQotU1VDQ0VTUzogcGFyc2Vk
IGludmFsaWQgY29sb3Igbm9uZSB0byBudWxsCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLWludmFsaWQtY29sb3ItdmFsdWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9yLXZhbHVlcy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMGY3YmQyLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWludmFsaWQtY29sb3ItdmFsdWVzLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgY29s
b3JzID0gWwotICAgICAgICAvLyBFYWNoIG9mIHRoZXNlIGlzIHJlZC4gU29tZSBtYXkgbmVlZCB0
byBiZSBjbGlwcGVkIHRvIFswLCAyNTVdLgotICAgICAgICAncmVkJywKLSAgICAgICAgJyNGMDAn
LAotICAgICAgICAncmdiKDI1NSwwLDApJywKLSAgICAgICAgJ3JnYigzMDAsMCwwKScsICAgICAg
ICAvLyBjbGlwcGVkIHRvIHJnYigyNTUsMCwwKQotICAgICAgICAncmdiKDI1NSwtMTAsMCknLCAg
ICAgIC8vIGNsaXBwZWQgdG8gcmdiKDI1NSwwLDApCi0gICAgICAgICdyZ2IoMTEwJSwgMCUsIDAl
KScsICAgLy8gY2xpcHBlZCB0byByZ2IoMTAwJSwwJSwwJSkKLQotICAgICAgICAvLyBFYWNoIG9m
IHRoZXNlIGhhcyB0aGVpciBhbHBoYSBjbGlwcGVkIFswLjAsIDEuMF0uCi0gICAgICAgICdyZ2Jh
KDI1NSwgMCwgMCwgLTUpJywgLy8gY2xpcHBlZCB0byByZ2JhKDI1NSwwLDAsMCkKLSAgICAgICAg
J3JnYmEoMjU1LCAwLCAwLCA1KScsICAvLyBjbGlwcGVkIHRvIHJnYmEoMjU1LDAsMCwxKQotICAg
ICAgICBdOwotCi0gICAgdmFyIGludmFsaWRDb2xvcnMgPSBbCi0gICAgICAgIC8vIEFuIGludmFs
aWQgY29sb3IsIGVnIGEgdmFsdWUgZm9yIGEgc2hvcnRoYW5kIGxpa2UgJ2JvcmRlcicgd2hpY2gg
Y2FuIGhhdmUgYSBjb2xvcgotICAgICAgICAnbm9uZScsCi0gICAgXTsKLQotICAgIEluc3BlY3Rv
clRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdENvbG9ycyhuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbG9ycy5sZW5ndGg7
ICsraSkKLSAgICAgICAgICAgICAgICBkdW1wQ29sb3JSZXByZXNlbnRhdGlvbnNGb3JDb2xvcihj
b2xvcnNbaV0pOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotICAgICAgICBmdW5j
dGlvbiB0ZXN0SW52YWxpZENvbG9ycyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGludmFsaWRDb2xvcnMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAg
ICAgZHVtcEVycm9yc0ZvckludmFsaWRDb2xvcihpbnZhbGlkQ29sb3JzW2ldKTsKLSAgICAgICAg
ICAgIG5leHQoKTsKLSAgICAgICAgfSwKLSAgICBdKTsKLQotICAgIGZ1bmN0aW9uIGR1bXBFcnJv
cnNGb3JJbnZhbGlkQ29sb3IoY29sb3JTdHJpbmcpIAotICAgIHsKLSAgICAgICAgdmFyIGNvbG9y
ID0gV2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNlKGNvbG9yU3RyaW5nKTsKLSAgICAgICAgaWYgKCFj
b2xvcikgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNVQ0NFU1M6IHBhcnNlZCBpbnZhbGlkIGNv
bG9yICIgKyBjb2xvclN0cmluZyArICIgdG8gbnVsbCIpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIp
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUw6IGludmFsaWQgY29s
b3IgIiArIGNvbG9yU3RyaW5nICsgIiBkaWQgbm90IHBhcnNlIHRvIHRvIG51bGwiKTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1bXBDb2xvclJlcHJlc2VudGF0aW9uc0ZvckNv
bG9yKGNvbG9yU3RyaW5nKQotICAgIHsKLSAgICAgICAgdmFyIGNvbG9yID0gV2ViSW5zcGVjdG9y
LkNvbG9yLnBhcnNlKGNvbG9yU3RyaW5nKTsKLSAgICAgICAgaWYgKCFjb2xvcikKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJjb2xvcjogIiArIGNvbG9yU3RyaW5nKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgc2ltcGxlOiAiICsgY29sb3Iuc2ltcGxl
KTsKLSAgICAgICAgdmFyIGNmID0gV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdDsKLSAgICAgICAg
Zm9yICh2YXIgY29sb3JGb3JtYXRLZXkgaW4gY2YpIHsKLSAgICAgICAgICAgIHZhciBjb2xvckZv
cm1hdCA9IGNmW2NvbG9yRm9ybWF0S2V5XTsKLSAgICAgICAgICAgIC8vIFNpbXBsZSBjb2xvcnMg
ZG8gbm90IGhhdmUgUkdCQSBhbmQgSFNMQSByZXByZXNlbnRhdGlvbnMuCi0gICAgICAgICAgICBp
ZiAoY29sb3Iuc2ltcGxlICYmIChjb2xvckZvcm1hdCA9PT0gY2YuUkdCQSB8fCBjb2xvckZvcm1h
dCA9PT0gY2YuSFNMQSkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAv
LyBBZHZhbmNlZCBjb2xvcnMgZG8gbm90IGhhdmUgSEVYIHJlcHJlc2VudGF0aW9ucy4KLSAgICAg
ICAgICAgIGlmICghY29sb3Iuc2ltcGxlICYmIChjb2xvckZvcm1hdCA9PT0gY2YuU2hvcnRIRVgg
fHwgY29sb3JGb3JtYXQgPT09IGNmLkhFWCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBTaG9ydEhFWCB0aGVuIHNraXAgaXQuCi0gICAg
ICAgICAgICBpZiAoY29sb3JGb3JtYXQgPT09IGNmLlNob3J0SEVYICYmICFjb2xvci5oYXNTaG9y
dEhleCgpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgLy8gSWYgdGhl
cmUgaXMgbm8gbmlja25hbWUsIHRoZW4gc2tpcCBpdC4KLSAgICAgICAgICAgIGlmIChjb2xvckZv
cm1hdCA9PT0gY2YuTmlja25hbWUgJiYgIWNvbG9yLm5pY2tuYW1lKQotICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoJyAgJyArIGNv
bG9yRm9ybWF0ICsgIjogIiArIGNvbG9yLnRvU3RyaW5nKGNvbG9yRm9ybWF0KSk7Ci0gICAgICAg
IH0KLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHRoZSBkaXNwbGF5ZWQgc3RyaW5nIGZvciBjb2xvcnMgY29y
cmVjdGx5IGhhbmRsZXMgY2xpcHBlZCBDU1MgdmFsdWVzIGFuZCBSR0IgcGVyY2VudGFnZXMuCi08
L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvc3R5bGVzLW5ldy1BUEktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9zdHlsZXMtbmV3LUFQSS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGZkNzk0YTQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9zdHlsZXMtbmV3LUFQSS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1
MzEgKzAsMCBAQAotVGVzdHMgdGhhdCBJbnNwZWN0b3JDU1NBZ2VudCBBUEkgbWV0aG9kcyB3b3Jr
IGFzIGV4cGVjdGVkLgotCi1IMQotCi0KLT09PSBDb21wdXRlZCBzdHlsZSBwcm9wZXJ0eSBjb3Vu
dCBmb3IgYm9keSA9PT0KLU9LCi0KLT09PSBNYXRjaGVkIHJ1bGVzIGZvciBib2R5ID09PQotYm9k
eTogW3VzZXItYWdlbnRdIHsKLSAgICBbJ2Rpc3BsYXknOidibG9jayddIEBbdW5kZWZpbmVkLXVu
ZGVmaW5lZF0gc3R5bGUKLSAgICBbJ21hcmdpbi10b3AnOic4cHgnXSBAW3VuZGVmaW5lZC11bmRl
ZmluZWRdIHN0eWxlCi0gICAgWydtYXJnaW4tcmlnaHQnOic4cHgnXSBAW3VuZGVmaW5lZC11bmRl
ZmluZWRdIHN0eWxlCi0gICAgWydtYXJnaW4tYm90dG9tJzonOHB4J10gQFt1bmRlZmluZWQtdW5k
ZWZpbmVkXSBzdHlsZQotICAgIFsnbWFyZ2luLWxlZnQnOic4cHgnXSBAW3VuZGVmaW5lZC11bmRl
ZmluZWRdIHN0eWxlCi19Ci1ib2R5OiBbcmVndWxhciwgMjA6MC0yMDo0XSB7Ci0gICAgWydwcm9w
ZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24tcGFyc2VkXSBAWzIx
OjQtMjE6NDddIGFjdGl2ZQotfQotYm9keTogW3JlZ3VsYXIsIDIwOjAtMjA6NF0gewotICAgIFsn
cHJvcGVydHknOidpbXBvcnRlZC1tZWRpYS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0g
QFsyMTo0LTIxOjQ3XSBhY3RpdmUKLX0KLWJvZHk6IFtyZWd1bGFyLCA5OjAtOTo0XSB7Ci0gICAg
Wydmb250LXNpemUnOicxMnB4J10gQFsxMDo0LTEwOjIwXSBhY3RpdmUKLSAgICBbJ2Zvbyc6J2Jh
ciAhCi0KLSAgICBpbXBvcnRhbnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXpl
ZCBieSBXZWJDb3JlICovJyBpcy1pbXBvcnRhbnQgbm9uLXBhcnNlZF0gQFsxMTo0LTEzOjY2XSBh
Y3RpdmUKLSAgICBbJ2hlaWdodCc6JzEwMCUgIWltcG9ydGFudCcgaXMtaW1wb3J0YW50XSBAWzE0
OjQtMTQ6MjhdIGFjdGl2ZQotICAgIFsnY29sb3J6JzonIiFpbXBvcnRhbnQiJyBub24tcGFyc2Vk
XSBAWzE1OjQtMTU6MjVdIGFjdGl2ZQotICAgIFsnaW1wb3J0YW50JzonIWltcG9ydGFudCcgbm9u
LXBhcnNlZF0gQFsxNjo0LTE2OjI1XSBhY3RpdmUKLSAgICBbJ2NvbG9yJzoneWVsbG93J10gQFsx
Nzo0LTE3OjE4XSBhY3RpdmUKLSAgICBbJ2NvbG9yJzonImJhZGNvbG9yIiAhIGltcG9ydGFudCAv
KiBnb29kIHByb3BlcnR5IHdpdGggc3RyYW5nZSB2YWx1ZSAqLycgaXMtaW1wb3J0YW50IG5vbi1w
YXJzZWRdIEBbMTg6NC0xODo3M10gYWN0aXZlCi19Ci1ib2R5Lm1haW4xOiBbcmVndWxhciwgMjE6
MjktMjE6NjddIHsKLSAgICBbJ2NvbG9yJzonI0YwMEJBQSddIEBbMjE6ODEtMjE6OTZdIGFjdGl2
ZQotICAgIFsnem9vJzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9w
ZXJ0eSAqLycgbm9uLXBhcnNlZF0gQFsyMTo5Ni0yMToxNDldIGFjdGl2ZQotfQotYm9keS5tYWlu
MjogW3JlZ3VsYXIsIDIzOjAtMjM6MTBdIHsKLSAgICBbJ2JhY2tncm91bmQnOidncmVlbiAvKiB2
YWx1ZSAhaW1wb3J0YW50IGNvbW1lbnQgKi8gIWltcG9ydGFudCAvKiBubyBzZW1pY29sb24sIHZl
cnkgIWltcG9ydGFudCAqLycgaXMtaW1wb3J0YW50XSBAWzIzOjExLTIzOjEwNl0gYWN0aXZlCi0g
ICAgWydiYWNrZ3JvdW5kLWltYWdlJzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5l
ZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLXJlcGVhdC14JzonaW5pdGlhbCcg
aXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3Jv
dW5kLXJlcGVhdC15JzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmlu
ZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLWF0dGFjaG1lbnQnOidpbml0aWFsJyBpcy1pbXBv
cnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JhY2tncm91bmQtcG9z
aXRpb24teCc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBz
dHlsZQotICAgIFsnYmFja2dyb3VuZC1wb3NpdGlvbi15JzonaW5pdGlhbCcgaXMtaW1wb3J0YW50
XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLW9yaWdpbic6
J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAg
IFsnYmFja2dyb3VuZC1jbGlwJzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11
bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLWNvbG9yJzonZ3JlZW4nIGlzLWltcG9y
dGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYmFja2dyb3VuZC1zaXpl
JzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi19
Ci1ib2R5Lm1haW5wYWdlOiBbcmVndWxhciwgMzowLTM6MTNdIHsKLSAgICBbJ3RleHQtZGVjb3Jh
dGlvbic6J25vbmUnXSBAWzQ6NC00OjI2XSBhY3RpdmUKLSAgICBbJ2JhZHByb3BlcnR5JzonMWJh
ZHZhbHVlMScgbm9uLXBhcnNlZF0gQFs1OjUtNToyOV0gYWN0aXZlCi19Ci1ib2R5Lm1haW5wYWdl
OiBbcmVndWxhciwgODowLTg6MTNdIHsKLSAgICBbJ3Byb3AxJzondmFsMScgbm9uLXBhcnNlZF0g
QFs5OjQtOToxNl0gYWN0aXZlCi0gICAgWydwcm9wMic6J3ZhbDInIG5vbi1wYXJzZWRdIEBbMTA6
NC0xMDoxNl0gYWN0aXZlCi19Ci0KLT09PSBQc2V1ZG8gcnVsZXMgZm9yIGJvZHkgPT09Ci1Qc2V1
ZG9JZD00Ci1ib2R5OjphZnRlcjogW3JlZ3VsYXIsIDI2OjAtMjY6MTFdIHsKLSAgICBbJ2NvbnRl
bnQnOiciQWZ0ZXIgYm9keSInXSBAWzI3OjQtMjc6MjZdIGFjdGl2ZQotfQotCi09PT0gSW5oZXJp
dGVkIHN0eWxlcyBmb3IgYm9keSA9PT0KLUxldmVsPTEKLVtOTyBTVFlMRV0KLWh0bWw6IFt1c2Vy
LWFnZW50XSB7Ci0gICAgWydkaXNwbGF5JzonYmxvY2snXSBAW3VuZGVmaW5lZC11bmRlZmluZWRd
IHN0eWxlCi19Ci1odG1sOiBbcmVndWxhciwgNDowLTQ6NF0gewotICAgIFsnZm9udC13ZWlnaHQn
Oic0MDAnXSBAWzU6NC01OjIxXSBhY3RpdmUKLX0KLQotPT09IElubGluZSBzdHlsZSBmb3IgYm9k
eSA9PT0KLVsnZm9udC13ZWlnaHQnOidub3JtYWwnXSBAWzA6MC0wOjIwXSBhY3RpdmUKLVsnd2lk
dGgnOic4NSUnXSBAWzA6MjEtMDozMl0gYWN0aXZlCi1bJ2JhY2tncm91bmQtaW1hZ2UnOid1cmwo
YmFyLnBuZyknXSBAWzA6MzMtMDo2M10gYWN0aXZlCi09PT0gQk9EWSB3aXRoIGZvcmNlZCA6aG92
ZXIgPT09Ci1ib2R5OiBbdXNlci1hZ2VudF0gewotICAgIFsnZGlzcGxheSc6J2Jsb2NrJ10gQFt1
bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnbWFyZ2luLXRvcCc6JzhweCddIEBbdW5k
ZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ21hcmdpbi1yaWdodCc6JzhweCddIEBbdW5k
ZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ21hcmdpbi1ib3R0b20nOic4cHgnXSBAW3Vu
ZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydtYXJnaW4tbGVmdCc6JzhweCddIEBbdW5k
ZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLX0KLWJvZHk6IFtyZWd1bGFyLCAyMDowLTIwOjRdIHsK
LSAgICBbJ3Byb3BlcnR5JzonaW1wb3J0ZWQtbWVkaWEtc2NyZWVuLXN0eWxlc2hlZXQnIG5vbi1w
YXJzZWRdIEBbMjE6NC0yMTo0N10gYWN0aXZlCi19Ci1ib2R5OiBbcmVndWxhciwgMjA6MC0yMDo0
XSB7Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBu
b24tcGFyc2VkXSBAWzIxOjQtMjE6NDddIGFjdGl2ZQotfQotYm9keTogW3JlZ3VsYXIsIDk6MC05
OjRdIHsKLSAgICBbJ2ZvbnQtc2l6ZSc6JzEycHgnXSBAWzEwOjQtMTA6MjBdIGFjdGl2ZQotICAg
IFsnZm9vJzonYmFyICEKLQotICAgIGltcG9ydGFudCAvKiAhaW1wb3J0YW50IHByb3BlcnR5IG5v
dCByZWNvZ25pemVkIGJ5IFdlYkNvcmUgKi8nIGlzLWltcG9ydGFudCBub24tcGFyc2VkXSBAWzEx
OjQtMTM6NjZdIGFjdGl2ZQotICAgIFsnaGVpZ2h0JzonMTAwJSAhaW1wb3J0YW50JyBpcy1pbXBv
cnRhbnRdIEBbMTQ6NC0xNDoyOF0gYWN0aXZlCi0gICAgWydjb2xvcnonOiciIWltcG9ydGFudCIn
IG5vbi1wYXJzZWRdIEBbMTU6NC0xNToyNV0gYWN0aXZlCi0gICAgWydpbXBvcnRhbnQnOichaW1w
b3J0YW50JyBub24tcGFyc2VkXSBAWzE2OjQtMTY6MjVdIGFjdGl2ZQotICAgIFsnY29sb3InOid5
ZWxsb3cnXSBAWzE3OjQtMTc6MThdIGFjdGl2ZQotICAgIFsnY29sb3InOiciYmFkY29sb3IiICEg
aW1wb3J0YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovJyBpcy1pbXBv
cnRhbnQgbm9uLXBhcnNlZF0gQFsxODo0LTE4OjczXSBhY3RpdmUKLX0KLWJvZHkubWFpbjE6IFty
ZWd1bGFyLCAyMToyOS0yMTo2N10gewotICAgIFsnY29sb3InOicjRjAwQkFBJ10gQFsyMTo4MS0y
MTo5Nl0gYWN0aXZlCi0gICAgWyd6b28nOidtb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5yZWNv
Z25pemVkIHByb3BlcnR5ICovJyBub24tcGFyc2VkXSBAWzIxOjk2LTIxOjE0OV0gYWN0aXZlCi19
Ci1ib2R5Lm1haW4yOiBbcmVndWxhciwgMjM6MC0yMzoxMF0gewotICAgIFsnYmFja2dyb3VuZCc6
J2dyZWVuIC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNl
bWljb2xvbiwgdmVyeSAhaW1wb3J0YW50ICovJyBpcy1pbXBvcnRhbnRdIEBbMjM6MTEtMjM6MTA2
XSBhY3RpdmUKLSAgICBbJ2JhY2tncm91bmQtaW1hZ2UnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRd
IEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JhY2tncm91bmQtcmVwZWF0LXgn
Oidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAg
ICBbJ2JhY2tncm91bmQtcmVwZWF0LXknOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZp
bmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JhY2tncm91bmQtYXR0YWNobWVudCc6J2luaXRp
YWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYmFj
a2dyb3VuZC1wb3NpdGlvbi14JzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11
bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLXBvc2l0aW9uLXknOidpbml0aWFsJyBp
cy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JhY2tncm91
bmQtb3JpZ2luJzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRd
IHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLWNsaXAnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBb
dW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JhY2tncm91bmQtY29sb3InOidncmVl
bicgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNr
Z3JvdW5kLXNpemUnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5l
ZF0gc3R5bGUKLX0KLWJvZHkubWFpbnBhZ2U6IFtyZWd1bGFyLCAzOjAtMzoxM10gewotICAgIFsn
dGV4dC1kZWNvcmF0aW9uJzonbm9uZSddIEBbNDo0LTQ6MjZdIGFjdGl2ZQotICAgIFsnYmFkcHJv
cGVydHknOicxYmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzU6NS01OjI5XSBhY3RpdmUKLX0KLWJv
ZHkubWFpbnBhZ2U6IFtyZWd1bGFyLCA4OjAtODoxM10gewotICAgIFsncHJvcDEnOid2YWwxJyBu
b24tcGFyc2VkXSBAWzk6NC05OjE2XSBhY3RpdmUKLSAgICBbJ3Byb3AyJzondmFsMicgbm9uLXBh
cnNlZF0gQFsxMDo0LTEwOjE2XSBhY3RpdmUKLX0KLWJvZHk6aG92ZXI6IFtyZWd1bGFyLCAxMzow
LTEzOjEwXSB7Ci0gICAgWydjb2xvcic6JyNDREUnXSBAWzE0OjItMTQ6MTRdIGFjdGl2ZQotfQot
Ci09PT0gQXR0cmlidXRlcyBzdHlsZSBmb3IgdGFibGUgPT09Ci1bJ3dpZHRoJzonNTAlJ10gQFt1
bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotCi09PT0gU3R5bGVzaGVldC1mb3ItaW5saW5lLXN0
eWxlIHRleHQgPT09Ci0KLQotPT09IFN0eWxlc2hlZXQtZm9yLWlubGluZS1zdHlsZSBtb2RpZmlj
YXRpb24gcmVzdWx0ID09PQotTm90U3VwcG9ydGVkRXJyb3IKLQotPT09IEFsbCBzdHlsZXNoZWV0
cyA9PT0KLQotU3R5bGVTaGVldDogJ0BjaGFyc2V0ICJVVEYtOCI7Ci0KLUBpbXBvcnQgdXJsKCJz
dHlsZXMtbmV3LUFQSS0xLmNzcyIpOwotCi1odG1sIHsKLSAgICBmb250LXdlaWdodDogNDAwOwot
fQotCi1AbWVkaWEgc2NyZWVuIHsKLWJvZHkgewotICAgIGZvbnQtc2l6ZTogMTJweDsKLSAgICBm
b286IGJhciAhCi0KLSAgICBpbXBvcnRhbnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVj
b2duaXplZCBieSBXZWJDb3JlICovOwotICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwotICAg
IGNvbG9yejogIiFpbXBvcnRhbnQiOwotICAgIGltcG9ydGFudDohaW1wb3J0YW50OwotICAgIGNv
bG9yOiB5ZWxsb3c7Ci0gICAgY29sb3I6ICJiYWRjb2xvciIgISBpbXBvcnRhbnQgLyogZ29vZCBw
cm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUgKi87Ci19Ci0KLS8qIGNvbW1lbnQgYmVmb3JlIHNl
bGVjdG9yICovYm9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi97LyogY29tbWVu
dCAqL2NvbG9yOiAjRjAwQkFBO3pvbzptb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25p
emVkIHByb3BlcnR5ICovfS8qIGNvbW1lbnQgKi8KLQotYm9keS5tYWluMntiYWNrZ3JvdW5kOiBn
cmVlbiAvKiB2YWx1ZSAhaW1wb3J0YW50IGNvbW1lbnQgKi8gIWltcG9ydGFudCAvKiBubyBzZW1p
Y29sb24sIHZlcnkgIWltcG9ydGFudCAqL30KLX0KLQotYm9keTo6YWZ0ZXIgIHsKLSAgICBjb250
ZW50OiAiQWZ0ZXIgYm9keSI7Ci19Ci0KLWgxIHsKLSAgICBoZWlnaHQgOiAxMDAlIDsgYm9yZGVy
OiAxcHggc29saWQ7IGJvcmRlci13aWR0aDogMnB4OyBiYWNrZ3JvdW5kLWNvbG9yIDogIzMzRkYz
MzsgZ29vZ2xlczogYWJyYTsgZm9vOiAuYmFyOyAtbW96LWdvb2c6IDEqKio7IGJvcmRlci13aWR0
aDogMHB4OwotfQotJwotaHRtbDogW3JlZ3VsYXIsIDQ6MC00OjRdIHsKLSAgICBbJ2ZvbnQtd2Vp
Z2h0JzonNDAwJ10gQFs1OjQtNToyMV0gYWN0aXZlCi19Ci1ib2R5OiBbcmVndWxhciwgOTowLTk6
NF0gewotICAgIFsnZm9udC1zaXplJzonMTJweCddIEBbMTA6NC0xMDoyMF0gYWN0aXZlCi0gICAg
Wydmb28nOidiYXIgIQotCi0gICAgaW1wb3J0YW50IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90
IHJlY29nbml6ZWQgYnkgV2ViQ29yZSAqLycgaXMtaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMTE6
NC0xMzo2Nl0gYWN0aXZlCi0gICAgWydoZWlnaHQnOicxMDAlICFpbXBvcnRhbnQnIGlzLWltcG9y
dGFudF0gQFsxNDo0LTE0OjI4XSBhY3RpdmUKLSAgICBbJ2NvbG9yeic6JyIhaW1wb3J0YW50Iicg
bm9uLXBhcnNlZF0gQFsxNTo0LTE1OjI1XSBhY3RpdmUKLSAgICBbJ2ltcG9ydGFudCc6JyFpbXBv
cnRhbnQnIG5vbi1wYXJzZWRdIEBbMTY6NC0xNjoyNV0gYWN0aXZlCi0gICAgWydjb2xvcic6J3ll
bGxvdyddIEBbMTc6NC0xNzoxOF0gYWN0aXZlCi0gICAgWydjb2xvcic6JyJiYWRjb2xvciIgISBp
bXBvcnRhbnQgLyogZ29vZCBwcm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUgKi8nIGlzLWltcG9y
dGFudCBub24tcGFyc2VkXSBAWzE4OjQtMTg6NzNdIGFjdGl2ZQotfQotYm9keS5tYWluMTogW3Jl
Z3VsYXIsIDIxOjI5LTIxOjY3XSB7Ci0gICAgWydjb2xvcic6JyNGMDBCQUEnXSBAWzIxOjgxLTIx
Ojk2XSBhY3RpdmUKLSAgICBbJ3pvbyc6J21vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJlY29n
bml6ZWQgcHJvcGVydHkgKi8nIG5vbi1wYXJzZWRdIEBbMjE6OTYtMjE6MTQ5XSBhY3RpdmUKLX0K
LWJvZHkubWFpbjI6IFtyZWd1bGFyLCAyMzowLTIzOjEwXSB7Ci0gICAgWydiYWNrZ3JvdW5kJzon
Z3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2Vt
aWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQgKi8nIGlzLWltcG9ydGFudF0gQFsyMzoxMS0yMzoxMDZd
IGFjdGl2ZQotICAgIFsnYmFja2dyb3VuZC1pbWFnZSc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0g
QFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYmFja2dyb3VuZC1yZXBlYXQteCc6
J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAg
IFsnYmFja2dyb3VuZC1yZXBlYXQteSc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmlu
ZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYmFja2dyb3VuZC1hdHRhY2htZW50JzonaW5pdGlh
bCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNr
Z3JvdW5kLXBvc2l0aW9uLXgnOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVu
ZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JhY2tncm91bmQtcG9zaXRpb24teSc6J2luaXRpYWwnIGlz
LWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYmFja2dyb3Vu
ZC1vcmlnaW4nOidpbml0aWFsJyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0g
c3R5bGUKLSAgICBbJ2JhY2tncm91bmQtY2xpcCc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1
bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYmFja2dyb3VuZC1jb2xvcic6J2dyZWVu
JyBpcy1pbXBvcnRhbnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JhY2tn
cm91bmQtc2l6ZSc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVk
XSBzdHlsZQotfQotYm9keTo6YWZ0ZXI6IFtyZWd1bGFyLCAyNjowLTI2OjExXSB7Ci0gICAgWydj
b250ZW50JzonIkFmdGVyIGJvZHkiJ10gQFsyNzo0LTI3OjI2XSBhY3RpdmUKLX0KLWgxOiBbcmVn
dWxhciwgMzA6MC0zMDoyXSB7Ci0gICAgWydoZWlnaHQnOicxMDAlJ10gQFszMTo0LTMxOjE5XSBh
Y3RpdmUKLSAgICBbJ2JvcmRlcic6JzFweCBzb2xpZCddIEBbMzE6MjAtMzE6MzhdIGFjdGl2ZQot
ICAgIFsnYm9yZGVyLXdpZHRoJzonMnB4J10gQFszMTozOS0zMTo1N10gaW5hY3RpdmUKLSAgICBb
J2JhY2tncm91bmQtY29sb3InOicjMzNGRjMzJ10gQFszMTo1OC0zMTo4NV0gYWN0aXZlCi0gICAg
Wydnb29nbGVzJzonYWJyYScgbm9uLXBhcnNlZF0gQFszMTo4Ni0zMToxMDBdIGFjdGl2ZQotICAg
IFsnZm9vJzonLmJhcicgbm9uLXBhcnNlZF0gQFszMToxMDEtMzE6MTExXSBhY3RpdmUKLSAgICBb
Jy1tb3otZ29vZyc6JzEqKionIG5vbi1wYXJzZWRdIEBbMzE6MTEyLTMxOjEyOF0gYWN0aXZlCi0g
ICAgWydib3JkZXItd2lkdGgnOicwcHgnXSBAWzMxOjEyOS0zMToxNDddIGFjdGl2ZQotICAgIFsn
Ym9yZGVyLXRvcC1zdHlsZSc6J3NvbGlkJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQot
ICAgIFsnYm9yZGVyLXJpZ2h0LXN0eWxlJzonc29saWQnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRd
IHN0eWxlCi0gICAgWydib3JkZXItYm90dG9tLXN0eWxlJzonc29saWQnXSBAW3VuZGVmaW5lZC11
bmRlZmluZWRdIHN0eWxlCi0gICAgWydib3JkZXItbGVmdC1zdHlsZSc6J3NvbGlkJ10gQFt1bmRl
ZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYm9yZGVyLXRvcC1jb2xvcic6J2luaXRpYWwn
XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydib3JkZXItcmlnaHQtY29sb3In
Oidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYm9yZGVyLWJv
dHRvbS1jb2xvcic6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAg
Wydib3JkZXItbGVmdC1jb2xvcic6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0
eWxlCi0gICAgWydib3JkZXItaW1hZ2Utc291cmNlJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVu
ZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JvcmRlci1pbWFnZS1zbGljZSc6J2luaXRpYWwnXSBAW3Vu
ZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydib3JkZXItaW1hZ2Utd2lkdGgnOidpbml0
aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYm9yZGVyLWltYWdlLW91
dHNldCc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydib3Jk
ZXItaW1hZ2UtcmVwZWF0JzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUK
LSAgICBbJ2JvcmRlci10b3Atd2lkdGgnOicwcHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0
eWxlCi0gICAgWydib3JkZXItcmlnaHQtd2lkdGgnOicwcHgnXSBAW3VuZGVmaW5lZC11bmRlZmlu
ZWRdIHN0eWxlCi0gICAgWydib3JkZXItYm90dG9tLXdpZHRoJzonMHB4J10gQFt1bmRlZmluZWQt
dW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYm9yZGVyLWxlZnQtd2lkdGgnOicwcHgnXSBAW3VuZGVm
aW5lZC11bmRlZmluZWRdIHN0eWxlCi19Ci0KLVN0eWxlU2hlZXQ6ICdAaW1wb3J0IHVybChzdHls
ZXMtbmV3LUFQSS0yLmNzcyk7Ci0KLUBwYWdlIHsgbWFyZ2luOiAyY20gfSAvKiBBbGwgbWFyZ2lu
cyBzZXQgdG8gMmNtICovCi0KLUBwYWdlIDpmaXJzdCB7Ci0gIG1hcmdpbi10b3A6IDEwY20gICAg
LyogVG9wIG1hcmdpbiBvbiBmaXJzdCBwYWdlIDEwY20gKi8KLX0KLQotQG1lZGlhIHNjcmVlbiB7
Ci0KLSNhYnNlbnQtaWQgewotfQotCi1AZm9udC1mYWNlIHsKLSAgICBmb250LWZhbWlseTogJ1Ro
ZUZvbnQnOwotICAgIHNyYzogdXJsKCdmb250LnVybCcpOwotICAgIGZvbnQtd2VpZ2h0OiBub3Jt
YWw7Ci0gICAgZm9udC1zdHlsZTogbm9ybWFsOwotfQotCi1ib2R5IHsKLSAgICBwcm9wZXJ0eTog
aW1wb3J0ZWQtbWVkaWEtc2NyZWVuLXN0eWxlc2hlZXQ7Ci19Ci0KLX0KLScKLSNhYnNlbnQtaWQ6
IFtyZWd1bGFyLCAxMDowLTEwOjEwXSB7Ci19Ci1ib2R5OiBbcmVndWxhciwgMjA6MC0yMDo0XSB7
Ci0gICAgWydwcm9wZXJ0eSc6J2ltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0JyBub24t
cGFyc2VkXSBAWzIxOjQtMjE6NDddIGFjdGl2ZQotfQotCi1TdHlsZVNoZWV0OiAnQGltcG9ydCB1
cmwoc3R5bGVzLW5ldy1BUEktMS5jc3MpOwotCi1AcGFnZSB7IG1hcmdpbjogMmNtIH0gLyogQWxs
IG1hcmdpbnMgc2V0IHRvIDJjbSAqLwotCi1AcGFnZSA6Zmlyc3QgewotICBtYXJnaW4tdG9wOiAx
MGNtICAgIC8qIFRvcCBtYXJnaW4gb24gZmlyc3QgcGFnZSAxMGNtICovCi19Ci0KLUBtZWRpYSBz
Y3JlZW4gewotCi0jYWJzZW50LWlkIHsKLX0KLQotQGZvbnQtZmFjZSB7Ci0gICAgZm9udC1mYW1p
bHk6ICdUaGVGb250JzsKLSAgICBzcmM6IHVybCgnZm9udC51cmwnKTsKLSAgICBmb250LXdlaWdo
dDogbm9ybWFsOwotICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKLX0KLQotYm9keSB7Ci0gICAgcHJv
cGVydHk6IGltcG9ydGVkLW1lZGlhLXNjcmVlbi1zdHlsZXNoZWV0OwotfQotCi19Ci0nCi0jYWJz
ZW50LWlkOiBbcmVndWxhciwgMTA6MC0xMDoxMF0gewotfQotYm9keTogW3JlZ3VsYXIsIDIwOjAt
MjA6NF0gewotICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1tZWRpYS1zY3JlZW4tc3R5bGVzaGVl
dCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUKLX0KLQotU3R5bGVTaGVldDogJwot
Ci0vKiBBbiBpbmxpbmUgc3R5bGVzaGVldCAqLwotYm9keS5tYWlucGFnZSB7Ci0gICAgdGV4dC1k
ZWNvcmF0aW9uOiBub25lOyAvKiBhdCBsZWFzdCBvbmUgdmFsaWQgcHJvcGVydHkgaXMgbmVjZXNz
YXJ5IGZvciBXZWJDb3JlIHRvIG1hdGNoIGEgcnVsZSAqLwotICAgIDtiYWRwcm9wZXJ0eTogMWJh
ZHZhbHVlMTsKLX0KLQotYm9keS5tYWlucGFnZSB7Ci0gICAgcHJvcDE6IHZhbDE7Ci0gICAgcHJv
cDI6IHZhbDI7Ci19Ci0KLWJvZHk6aG92ZXIgewotICBjb2xvcjogI0NERTsKLX0KLScKLWJvZHku
bWFpbnBhZ2U6IFtyZWd1bGFyLCAzOjAtMzoxM10gewotICAgIFsndGV4dC1kZWNvcmF0aW9uJzon
bm9uZSddIEBbNDo0LTQ6MjZdIGFjdGl2ZQotICAgIFsnYmFkcHJvcGVydHknOicxYmFkdmFsdWUx
JyBub24tcGFyc2VkXSBAWzU6NS01OjI5XSBhY3RpdmUKLX0KLWJvZHkubWFpbnBhZ2U6IFtyZWd1
bGFyLCA4OjAtODoxM10gewotICAgIFsncHJvcDEnOid2YWwxJyBub24tcGFyc2VkXSBAWzk6NC05
OjE2XSBhY3RpdmUKLSAgICBbJ3Byb3AyJzondmFsMicgbm9uLXBhcnNlZF0gQFsxMDo0LTEwOjE2
XSBhY3RpdmUKLX0KLWJvZHk6aG92ZXI6IFtyZWd1bGFyLCAxMzowLTEzOjEwXSB7Ci0gICAgWydj
b2xvcic6JyNDREUnXSBAWzE0OjItMTQ6MTRdIGFjdGl2ZQotfQotCi09PT0gTGFzdCBzdHlsZXNo
ZWV0IHBhdGNoZWQgPT09Ci0KLVN0eWxlU2hlZXQ6ICdib2R5Lm1haW5wYWdlIHsgICAgdGV4dC1k
ZWNvcmF0aW9uOiBzdHJpa2V0aHJvdWdoOyAgICBiYWRwcm9wZXJ0eTogMmJhZHZhbHVlMjt9Ym9k
eSB7ICAgIHRleHQtYWxpZ246IGp1c3RpZnk7fScKLWJvZHkubWFpbnBhZ2U6IFtyZWd1bGFyLCAw
OjAtMDoxM10gewotICAgIFsndGV4dC1kZWNvcmF0aW9uJzonc3RyaWtldGhyb3VnaCcgbm9uLXBh
cnNlZF0gQFswOjE5LTA6NTBdIGFjdGl2ZQotICAgIFsnYmFkcHJvcGVydHknOicyYmFkdmFsdWUy
JyBub24tcGFyc2VkXSBAWzA6NTQtMDo3OF0gYWN0aXZlCi19Ci1ib2R5OiBbcmVndWxhciwgMDo3
OS0wOjgzXSB7Ci0gICAgWyd0ZXh0LWFsaWduJzonanVzdGlmeSddIEBbMDo4OS0wOjEwOV0gYWN0
aXZlCi19Ci0KLT09PSBBZnRlciBzZWxlY3RvciBzZXQgPT09Ci0KLVN0eWxlU2hlZXQ6ICdodG1s
ICosIGJvZHlbZm9vPSJiYXIiXSB7ICAgIHRleHQtZGVjb3JhdGlvbjogc3RyaWtldGhyb3VnaDsg
ICAgYmFkcHJvcGVydHk6IDJiYWR2YWx1ZTI7fWJvZHkgeyAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5
O30nCi1odG1sICosIGJvZHlbZm9vPSJiYXIiXTogW3JlZ3VsYXIsIDA6MC0wOjIzXSB7Ci0gICAg
Wyd0ZXh0LWRlY29yYXRpb24nOidzdHJpa2V0aHJvdWdoJyBub24tcGFyc2VkXSBAWzA6MjktMDo2
MF0gYWN0aXZlCi0gICAgWydiYWRwcm9wZXJ0eSc6JzJiYWR2YWx1ZTInIG5vbi1wYXJzZWRdIEBb
MDo2NC0wOjg4XSBhY3RpdmUKLX0KLWJvZHk6IFtyZWd1bGFyLCAwOjg5LTA6OTNdIHsKLSAgICBb
J3RleHQtYWxpZ24nOidqdXN0aWZ5J10gQFswOjk5LTA6MTE5XSBhY3RpdmUKLX0KLQotPT09IEFm
dGVyIHByb3BlcnR5IHRleHQgc2V0ID09PQotCi1TdHlsZVNoZWV0OiAnaHRtbCAqLCBib2R5W2Zv
bz0iYmFyIl0gewotICAgIGNvbG9yOiB3aGl0ZTsgYmFja2dyb3VuZDogYmxhY2s7Ci19Ym9keSB7
ICAgIHRleHQtYWxpZ246IGp1c3RpZnk7fScKLWh0bWwgKiwgYm9keVtmb289ImJhciJdOiBbcmVn
dWxhciwgMDowLTA6MjNdIHsKLSAgICBbJ2NvbG9yJzond2hpdGUnXSBAWzE6NC0xOjE3XSBhY3Rp
dmUKLSAgICBbJ2JhY2tncm91bmQnOidibGFjayddIEBbMToxOC0xOjM2XSBhY3RpdmUKLSAgICBb
J2JhY2tncm91bmQtaW1hZ2UnOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHls
ZQotICAgIFsnYmFja2dyb3VuZC1yZXBlYXQteCc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRl
ZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLXJlcGVhdC15JzonaW5pdGlhbCddIEBbdW5k
ZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JhY2tncm91bmQtYXR0YWNobWVudCc6J2lu
aXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLXBv
c2l0aW9uLXgnOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsn
YmFja2dyb3VuZC1wb3NpdGlvbi15JzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0g
c3R5bGUKLSAgICBbJ2JhY2tncm91bmQtb3JpZ2luJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVu
ZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JhY2tncm91bmQtY2xpcCc6J2luaXRpYWwnXSBAW3VuZGVm
aW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLWNvbG9yJzonYmxhY2snXSBA
W3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLXNpemUnOidpbml0
aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotfQotYm9keTogW3JlZ3VsYXIsIDI6
MS0yOjVdIHsKLSAgICBbJ3RleHQtYWxpZ24nOidqdXN0aWZ5J10gQFsyOjExLTI6MzFdIGFjdGl2
ZQotfQotCi09PT0gQWZ0ZXIgZmlyc3Qgc3R5bGUgdGV4dCBzZXQgPT09Ci0KLVN0eWxlU2hlZXQ6
ICdodG1sICosIGJvZHlbZm9vPSJiYXIiXSB7fWJvZHkgeyAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5
O30nCi1odG1sICosIGJvZHlbZm9vPSJiYXIiXTogW3JlZ3VsYXIsIDA6MC0wOjIzXSB7Ci19Ci1i
b2R5OiBbcmVndWxhciwgMDoyNi0wOjMwXSB7Ci0gICAgWyd0ZXh0LWFsaWduJzonanVzdGlmeSdd
IEBbMDozNi0wOjU2XSBhY3RpdmUKLX0KLQotPT09IEFmdGVyIHNlY29uZCBzdHlsZSB0ZXh0IHNl
dCA9PT0KLQotU3R5bGVTaGVldDogJ2h0bWwgKiwgYm9keVtmb289ImJhciJdIHtjb2xvcjogZ3Jl
ZW47IGJhY2tncm91bmQ6IHJlZDsgZm9vOiBiYXI7ICpiYXo6IGJhcjsgLyogQ29tbWVudCAqLyBm
b250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50fWJvZHkgeyAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5
O30nCi1odG1sICosIGJvZHlbZm9vPSJiYXIiXTogW3JlZ3VsYXIsIDA6MC0wOjIzXSB7Ci0gICAg
Wydjb2xvcic6J2dyZWVuJ10gQFswOjI1LTA6MzhdIGFjdGl2ZQotICAgIFsnYmFja2dyb3VuZCc6
J3JlZCddIEBbMDozOS0wOjU1XSBhY3RpdmUKLSAgICBbJ2Zvbyc6J2Jhcicgbm9uLXBhcnNlZF0g
QFswOjU2LTA6NjVdIGFjdGl2ZQotICAgIFsnZm9udC13ZWlnaHQnOidib2xkICFpbXBvcnRhbnQn
IGlzLWltcG9ydGFudF0gQFswOjkxLTA6MTE5XSBhY3RpdmUKLSAgICBbJ2JhY2tncm91bmQtaW1h
Z2UnOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYmFja2dy
b3VuZC1yZXBlYXQteCc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0g
ICAgWydiYWNrZ3JvdW5kLXJlcGVhdC15JzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5l
ZF0gc3R5bGUKLSAgICBbJ2JhY2tncm91bmQtYXR0YWNobWVudCc6J2luaXRpYWwnXSBAW3VuZGVm
aW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLXBvc2l0aW9uLXgnOidpbml0
aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYmFja2dyb3VuZC1wb3Np
dGlvbi15JzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2Jh
Y2tncm91bmQtb3JpZ2luJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUK
LSAgICBbJ2JhY2tncm91bmQtY2xpcCc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRd
IHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLWNvbG9yJzoncmVkJ10gQFt1bmRlZmluZWQtdW5kZWZp
bmVkXSBzdHlsZQotICAgIFsnYmFja2dyb3VuZC1zaXplJzonaW5pdGlhbCddIEBbdW5kZWZpbmVk
LXVuZGVmaW5lZF0gc3R5bGUKLX0KLWJvZHk6IFtyZWd1bGFyLCAwOjEyMC0wOjEyNF0gewotICAg
IFsndGV4dC1hbGlnbic6J2p1c3RpZnknXSBAWzA6MTMwLTA6MTUwXSBhY3RpdmUKLX0KLQotPT09
IE1hdGNoZWQgcnVsZXMgYWZ0ZXIgcnVsZSBhZGRlZCA9PT0KLWJvZHk6IFt1c2VyLWFnZW50XSB7
Ci0gICAgWydkaXNwbGF5JzonYmxvY2snXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0g
ICAgWydtYXJnaW4tdG9wJzonOHB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAg
IFsnbWFyZ2luLXJpZ2h0JzonOHB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAg
IFsnbWFyZ2luLWJvdHRvbSc6JzhweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAg
ICBbJ21hcmdpbi1sZWZ0JzonOHB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotfQot
Ym9keTogW3JlZ3VsYXIsIDIwOjAtMjA6NF0gewotICAgIFsncHJvcGVydHknOidpbXBvcnRlZC1t
ZWRpYS1zY3JlZW4tc3R5bGVzaGVldCcgbm9uLXBhcnNlZF0gQFsyMTo0LTIxOjQ3XSBhY3RpdmUK
LX0KLWJvZHk6IFtyZWd1bGFyLCAyMDowLTIwOjRdIHsKLSAgICBbJ3Byb3BlcnR5JzonaW1wb3J0
ZWQtbWVkaWEtc2NyZWVuLXN0eWxlc2hlZXQnIG5vbi1wYXJzZWRdIEBbMjE6NC0yMTo0N10gYWN0
aXZlCi19Ci1ib2R5OiBbcmVndWxhciwgOTowLTk6NF0gewotICAgIFsnZm9udC1zaXplJzonMTJw
eCddIEBbMTA6NC0xMDoyMF0gYWN0aXZlCi0gICAgWydmb28nOidiYXIgIQotCi0gICAgaW1wb3J0
YW50IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkgV2ViQ29yZSAqLycg
aXMtaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMTE6NC0xMzo2Nl0gYWN0aXZlCi0gICAgWydoZWln
aHQnOicxMDAlICFpbXBvcnRhbnQnIGlzLWltcG9ydGFudF0gQFsxNDo0LTE0OjI4XSBhY3RpdmUK
LSAgICBbJ2NvbG9yeic6JyIhaW1wb3J0YW50Iicgbm9uLXBhcnNlZF0gQFsxNTo0LTE1OjI1XSBh
Y3RpdmUKLSAgICBbJ2ltcG9ydGFudCc6JyFpbXBvcnRhbnQnIG5vbi1wYXJzZWRdIEBbMTY6NC0x
NjoyNV0gYWN0aXZlCi0gICAgWydjb2xvcic6J3llbGxvdyddIEBbMTc6NC0xNzoxOF0gYWN0aXZl
Ci0gICAgWydjb2xvcic6JyJiYWRjb2xvciIgISBpbXBvcnRhbnQgLyogZ29vZCBwcm9wZXJ0eSB3
aXRoIHN0cmFuZ2UgdmFsdWUgKi8nIGlzLWltcG9ydGFudCBub24tcGFyc2VkXSBAWzE4OjQtMTg6
NzNdIGFjdGl2ZQotfQotaHRtbCAqLCBib2R5W2Zvbz0iYmFyIl06IFtyZWd1bGFyLCAwOjAtMDoy
M10gewotICAgIFsnY29sb3InOidncmVlbiddIEBbMDoyNS0wOjM4XSBhY3RpdmUKLSAgICBbJ2Jh
Y2tncm91bmQnOidyZWQnXSBAWzA6MzktMDo1NV0gYWN0aXZlCi0gICAgWydmb28nOidiYXInIG5v
bi1wYXJzZWRdIEBbMDo1Ni0wOjY1XSBhY3RpdmUKLSAgICBbJ2ZvbnQtd2VpZ2h0JzonYm9sZCAh
aW1wb3J0YW50JyBpcy1pbXBvcnRhbnRdIEBbMDo5MS0wOjExOV0gYWN0aXZlCi0gICAgWydiYWNr
Z3JvdW5kLWltYWdlJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAg
ICBbJ2JhY2tncm91bmQtcmVwZWF0LXgnOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVk
XSBzdHlsZQotICAgIFsnYmFja2dyb3VuZC1yZXBlYXQteSc6J2luaXRpYWwnXSBAW3VuZGVmaW5l
ZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLWF0dGFjaG1lbnQnOidpbml0aWFs
J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYmFja2dyb3VuZC1wb3NpdGlv
bi14JzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JhY2tn
cm91bmQtcG9zaXRpb24teSc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxl
Ci0gICAgWydiYWNrZ3JvdW5kLW9yaWdpbic6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmlu
ZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLWNsaXAnOidpbml0aWFsJ10gQFt1bmRlZmluZWQt
dW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYmFja2dyb3VuZC1jb2xvcic6J3JlZCddIEBbdW5kZWZp
bmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JhY2tncm91bmQtc2l6ZSc6J2luaXRpYWwnXSBA
W3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi19Ci1ib2R5OiBbcmVndWxhciwgMDoxMjAtMDox
MjRdIHsKLSAgICBbJ3RleHQtYWxpZ24nOidqdXN0aWZ5J10gQFswOjEzMC0wOjE1MF0gYWN0aXZl
Ci19Ci1ib2R5OiBbaW5zcGVjdG9yLCAwOjAtMDo0XSB7Ci0gICAgWydmb250LWZhbWlseSc6J3Nl
cmlmJ10gQFsxOjQtMToyM10gYWN0aXZlCi19Ci1ib2R5Lm1haW4xOiBbcmVndWxhciwgMjE6Mjkt
MjE6NjddIHsKLSAgICBbJ2NvbG9yJzonI0YwMEJBQSddIEBbMjE6ODEtMjE6OTZdIGFjdGl2ZQot
ICAgIFsnem9vJzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0
eSAqLycgbm9uLXBhcnNlZF0gQFsyMTo5Ni0yMToxNDldIGFjdGl2ZQotfQotYm9keS5tYWluMjog
W3JlZ3VsYXIsIDIzOjAtMjM6MTBdIHsKLSAgICBbJ2JhY2tncm91bmQnOidncmVlbiAvKiB2YWx1
ZSAhaW1wb3J0YW50IGNvbW1lbnQgKi8gIWltcG9ydGFudCAvKiBubyBzZW1pY29sb24sIHZlcnkg
IWltcG9ydGFudCAqLycgaXMtaW1wb3J0YW50XSBAWzIzOjExLTIzOjEwNl0gYWN0aXZlCi0gICAg
WydiYWNrZ3JvdW5kLWltYWdlJzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11
bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLXJlcGVhdC14JzonaW5pdGlhbCcgaXMt
aW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5k
LXJlcGVhdC15JzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRd
IHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLWF0dGFjaG1lbnQnOidpbml0aWFsJyBpcy1pbXBvcnRh
bnRdIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLSAgICBbJ2JhY2tncm91bmQtcG9zaXRp
b24teCc6J2luaXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHls
ZQotICAgIFsnYmFja2dyb3VuZC1wb3NpdGlvbi15JzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBA
W3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLW9yaWdpbic6J2lu
aXRpYWwnIGlzLWltcG9ydGFudF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsn
YmFja2dyb3VuZC1jbGlwJzonaW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRl
ZmluZWRdIHN0eWxlCi0gICAgWydiYWNrZ3JvdW5kLWNvbG9yJzonZ3JlZW4nIGlzLWltcG9ydGFu
dF0gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotICAgIFsnYmFja2dyb3VuZC1zaXplJzon
aW5pdGlhbCcgaXMtaW1wb3J0YW50XSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi19Ci0K
LT09PSBBZnRlciBwcm9wZXJ0eSBtYW5pcHVsYXRpb25zID09PQotW3RleHQ9J2hlaWdodCA6IDEw
MCUgOyddIGRpc2FibGVkCi1bJ2JvcmRlcic6JzFweCBzb2xpZCddIEBbMzA6NS0zMDoyM10gYWN0
aXZlCi1bJ2JvcmRlci13aWR0aCc6JzJweCddIEBbMzA6MjQtMzA6NDJdIGluYWN0aXZlCi1bJ2dv
b2dsZXMnOidhYnJhJyBub24tcGFyc2VkXSBAWzMwOjQ0LTMwOjU4XSBhY3RpdmUKLVsnZm9vJzon
LmJhcicgbm9uLXBhcnNlZF0gQFszMDo1OS0zMDo2OV0gYWN0aXZlCi1bJy1tb3otZ29vZyc6JzEq
KionIG5vbi1wYXJzZWRdIEBbMzA6NzAtMzA6ODZdIGFjdGl2ZQotWydmb250LXNpemUnOicxMnB4
J10gQFszMTo0LTMxOjIwXSBhY3RpdmUKLVsnYm9yZGVyLXdpZHRoJzonMXB4J10gQFszMjo0LTMy
OjIyXSBhY3RpdmUKLVt0ZXh0PSdmb250LXNpemU6IDE0cHg7J10gZGlzYWJsZWQKLVsnYm9yZGVy
LXRvcC13aWR0aCc6JzFweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLVsnYm9yZGVy
LXJpZ2h0LXdpZHRoJzonMXB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotWydib3Jk
ZXItYm90dG9tLXdpZHRoJzonMXB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotWydi
b3JkZXItbGVmdC13aWR0aCc6JzFweCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLVsn
Ym9yZGVyLXRvcC1zdHlsZSc6J3NvbGlkJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQot
Wydib3JkZXItcmlnaHQtc3R5bGUnOidzb2xpZCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5
bGUKLVsnYm9yZGVyLWJvdHRvbS1zdHlsZSc6J3NvbGlkJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVk
XSBzdHlsZQotWydib3JkZXItbGVmdC1zdHlsZSc6J3NvbGlkJ10gQFt1bmRlZmluZWQtdW5kZWZp
bmVkXSBzdHlsZQotWydib3JkZXItdG9wLWNvbG9yJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVu
ZGVmaW5lZF0gc3R5bGUKLVsnYm9yZGVyLXJpZ2h0LWNvbG9yJzonaW5pdGlhbCddIEBbdW5kZWZp
bmVkLXVuZGVmaW5lZF0gc3R5bGUKLVsnYm9yZGVyLWJvdHRvbS1jb2xvcic6J2luaXRpYWwnXSBA
W3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi1bJ2JvcmRlci1sZWZ0LWNvbG9yJzonaW5pdGlh
bCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLVsnYm9yZGVyLWltYWdlLXNvdXJjZSc6
J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi1bJ2JvcmRlci1pbWFnZS1z
bGljZSc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi1bJ2JvcmRlci1p
bWFnZS13aWR0aCc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi1bJ2Jv
cmRlci1pbWFnZS1vdXRzZXQnOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHls
ZQotWydib3JkZXItaW1hZ2UtcmVwZWF0JzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5l
ZF0gc3R5bGUKLQotPT09IEFmdGVyIHByb3BlcnR5IGVuYWJsZWQgPT09Ci1bdGV4dD0naGVpZ2h0
IDogMTAwJSA7J10gZGlzYWJsZWQKLVsnYm9yZGVyJzonMXB4IHNvbGlkJ10gQFszMDo1LTMwOjIz
XSBhY3RpdmUKLVsnYm9yZGVyLXdpZHRoJzonMnB4J10gQFszMDoyNC0zMDo0Ml0gaW5hY3RpdmUK
LVsnZ29vZ2xlcyc6J2FicmEnIG5vbi1wYXJzZWRdIEBbMzA6NDQtMzA6NThdIGFjdGl2ZQotWydm
b28nOicuYmFyJyBub24tcGFyc2VkXSBAWzMwOjU5LTMwOjY5XSBhY3RpdmUKLVsnLW1vei1nb29n
JzonMSoqKicgbm9uLXBhcnNlZF0gQFszMDo3MC0zMDo4Nl0gYWN0aXZlCi1bJ2ZvbnQtc2l6ZSc6
JzEycHgnXSBAWzMxOjQtMzE6MjBdIGluYWN0aXZlCi1bJ2JvcmRlci13aWR0aCc6JzFweCddIEBb
MzI6NC0zMjoyMl0gYWN0aXZlCi1bJ2ZvbnQtc2l6ZSc6JzE0cHgnXSBAWzMzOjQtMzM6MjBdIGFj
dGl2ZQotWydib3JkZXItdG9wLXdpZHRoJzonMXB4J10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBz
dHlsZQotWydib3JkZXItcmlnaHQtd2lkdGgnOicxcHgnXSBAW3VuZGVmaW5lZC11bmRlZmluZWRd
IHN0eWxlCi1bJ2JvcmRlci1ib3R0b20td2lkdGgnOicxcHgnXSBAW3VuZGVmaW5lZC11bmRlZmlu
ZWRdIHN0eWxlCi1bJ2JvcmRlci1sZWZ0LXdpZHRoJzonMXB4J10gQFt1bmRlZmluZWQtdW5kZWZp
bmVkXSBzdHlsZQotWydib3JkZXItdG9wLXN0eWxlJzonc29saWQnXSBAW3VuZGVmaW5lZC11bmRl
ZmluZWRdIHN0eWxlCi1bJ2JvcmRlci1yaWdodC1zdHlsZSc6J3NvbGlkJ10gQFt1bmRlZmluZWQt
dW5kZWZpbmVkXSBzdHlsZQotWydib3JkZXItYm90dG9tLXN0eWxlJzonc29saWQnXSBAW3VuZGVm
aW5lZC11bmRlZmluZWRdIHN0eWxlCi1bJ2JvcmRlci1sZWZ0LXN0eWxlJzonc29saWQnXSBAW3Vu
ZGVmaW5lZC11bmRlZmluZWRdIHN0eWxlCi1bJ2JvcmRlci10b3AtY29sb3InOidpbml0aWFsJ10g
QFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotWydib3JkZXItcmlnaHQtY29sb3InOidpbml0
aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotWydib3JkZXItYm90dG9tLWNvbG9y
JzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLVsnYm9yZGVyLWxlZnQt
Y29sb3InOidpbml0aWFsJ10gQFt1bmRlZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotWydib3JkZXIt
aW1hZ2Utc291cmNlJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5bGUKLVsn
Ym9yZGVyLWltYWdlLXNsaWNlJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5
bGUKLVsnYm9yZGVyLWltYWdlLXdpZHRoJzonaW5pdGlhbCddIEBbdW5kZWZpbmVkLXVuZGVmaW5l
ZF0gc3R5bGUKLVsnYm9yZGVyLWltYWdlLW91dHNldCc6J2luaXRpYWwnXSBAW3VuZGVmaW5lZC11
bmRlZmluZWRdIHN0eWxlCi1bJ2JvcmRlci1pbWFnZS1yZXBlYXQnOidpbml0aWFsJ10gQFt1bmRl
ZmluZWQtdW5kZWZpbmVkXSBzdHlsZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1
ZjVkMmIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMt
bmV3LUFQSS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDE4ICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci0KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3N0eWxlcy1uZXct
QVBJLmNzcyI+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotCi0g
ICAgdGVzdF9zdHlsZXMoKTsKLQotICAgIHZhciBib2R5SWQ7Ci0gICAgZnVuY3Rpb24gdGVzdF9z
dHlsZXMobm9kZSkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHN0eWxlcykKLSAg
ICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBDb21wdXRlZCBzdHlsZSBwcm9wZXJ0
eSBjb3VudCBmb3IgYm9keSA9PT0iKTsKLSAgICAgICAgICAgIHZhciBwcm9wQ291bnQgPSBzdHls
ZXMuY29tcHV0ZWRTdHlsZS5sZW5ndGg7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdChwcm9wQ291bnQgPiAyMDAgPyAiT0siIDogIkZBSUwgKCIgKyBwcm9wQ291bnQgKyAiKSIp
OwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IE1hdGNoZWQgcnVsZXMgZm9yIGJvZHkgPT09
Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBSdWxlTWF0Y2hlc0FycmF5KHN0eWxl
cy5tYXRjaGVkQ1NTUnVsZXMpOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IFBzZXVkbyBy
dWxlcyBmb3IgYm9keSA9PT0iKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5
bGVzLnBzZXVkb0VsZW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlBzZXVkb0lkPSIgKyBzdHlsZXMucHNldWRvRWxlbWVudHNbaV0u
cHNldWRvSWQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFJ1bGVNYXRjaGVz
QXJyYXkoc3R5bGVzLnBzZXVkb0VsZW1lbnRzW2ldLm1hdGNoZXMpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IEluaGVyaXRlZCBzdHlsZXMgZm9yIGJvZHkgPT09
Iik7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlcy5pbmhlcml0ZWQubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTGV2
ZWw9IiArIChpICsgMSkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFN0eWxl
KHN0eWxlcy5pbmhlcml0ZWRbaV0uaW5saW5lU3R5bGUpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcFJ1bGVNYXRjaGVzQXJyYXkoc3R5bGVzLmluaGVyaXRlZFtpXS5tYXRjaGVk
Q1NTUnVsZXMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IElu
bGluZSBzdHlsZSBmb3IgYm9keSA9PT0iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cFN0eWxlKHN0eWxlcy5pbmxpbmVTdHlsZSk7Ci0gICAgICAgICAgICB0ZXN0X2ZvcmNlZFN0YXRl
KCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcmVzdWx0U3R5bGVzID0ge307Ci0KLSAgICAg
ICAgZnVuY3Rpb24gY29tcHV0ZWRDYWxsYmFjayhlcnJvciwgY29tcHV0ZWRTdHlsZSkKLSAgICAg
ICAgewotICAgICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoImVycm9yOiAiICsgZXJyb3IpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcmVzdWx0U3R5bGVzLmNvbXB1dGVkU3R5bGUgPSBjb21wdXRl
ZFN0eWxlOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gaW5saW5lQ2FsbGJhY2soZXJy
b3IsIGlubGluZVN0eWxlKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6ICIgKyBlcnJvcik7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXN1bHRTdHlsZXMu
aW5saW5lU3R5bGUgPSBpbmxpbmVTdHlsZTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9u
IG1hdGNoZWRDYWxsYmFjayhlcnJvciwgbWF0Y2hlZENTU1J1bGVzLCBwc2V1ZG9FbGVtZW50cywg
aW5oZXJpdGVkKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6ICIgKyBlcnJvcik7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJlc3VsdFN0eWxlcy5tYXRj
aGVkQ1NTUnVsZXMgPSBtYXRjaGVkQ1NTUnVsZXM7Ci0gICAgICAgICAgICByZXN1bHRTdHlsZXMu
cHNldWRvRWxlbWVudHMgPSBwc2V1ZG9FbGVtZW50czsKLSAgICAgICAgICAgIHJlc3VsdFN0eWxl
cy5pbmhlcml0ZWQgPSBpbmhlcml0ZWQ7Ci0gICAgICAgICAgICBjYWxsYmFjayhyZXN1bHRTdHls
ZXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gbm9kZUNhbGxiYWNrKG5vZGUpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGJvZHlJZCA9IG5vZGUuaWQ7Ci0gICAgICAgICAgICBDU1NB
Z2VudC5nZXRDb21wdXRlZFN0eWxlRm9yTm9kZShub2RlLmlkLCBjb21wdXRlZENhbGxiYWNrKTsK
LSAgICAgICAgICAgIENTU0FnZW50LmdldElubGluZVN0eWxlc0Zvck5vZGUobm9kZS5pZCwgaW5s
aW5lQ2FsbGJhY2spOwotICAgICAgICAgICAgQ1NTQWdlbnQuZ2V0TWF0Y2hlZFN0eWxlc0Zvck5v
ZGUobm9kZS5pZCwgdHJ1ZSwgdHJ1ZSwgbWF0Y2hlZENhbGxiYWNrKTsKLSAgICAgICAgfQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoIm1haW5Cb2R5Iiwgbm9kZUNhbGxi
YWNrKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0X2ZvcmNlZFN0YXRlKCkKLSAgICB7Ci0g
ICAgICAgIENTU0FnZW50LmZvcmNlUHNldWRvU3RhdGUoYm9keUlkLCBbImhvdmVyIl0pOwotICAg
ICAgICBDU1NBZ2VudC5nZXRNYXRjaGVkU3R5bGVzRm9yTm9kZShib2R5SWQsIHRydWUsIHRydWUs
IG1hdGNoZWRDYWxsYmFjayk7Ci0KLSAgICAgICAgZnVuY3Rpb24gbWF0Y2hlZENhbGxiYWNrKGVy
cm9yLCBtYXRjaGVkUnVsZXMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCI9PT0gQk9EWSB3aXRoIGZvcmNlZCA6aG92ZXIgPT09Iik7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmR1bXBSdWxlTWF0Y2hlc0FycmF5KG1hdGNoZWRSdWxlcyk7Ci0gICAg
ICAgICAgICBDU1NBZ2VudC5mb3JjZVBzZXVkb1N0YXRlKGJvZHlJZCwgWyJob3ZlciJdLCB0ZXN0
X3RhYmxlU3R5bGVzKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlc3RfdGFi
bGVTdHlsZXMoKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIGlubGlu
ZVN0eWxlLCBhdHRyaWJ1dGVzU3R5bGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChlcnJv
cikgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJlcnJvcjogIiAr
IGVycm9yKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiPT09IEF0dHJpYnV0ZXMgc3R5bGUgZm9yIHRhYmxlID09PSIpOwotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU3R5bGUoYXR0cmlidXRlc1N0eWxlKTsKLSAgICAg
ICAgICAgIHRlc3RfaW5saW5lU3R5bGVTaGVldE1vZGlmaWNhdGlvbihpbmxpbmVTdHlsZSk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBub2RlQ2FsbGJhY2sobm9kZSkKLSAgICAgICAg
ewotICAgICAgICAgICAgQ1NTQWdlbnQuZ2V0SW5saW5lU3R5bGVzRm9yTm9kZShub2RlLmlkLCBj
YWxsYmFjayk7Ci0gICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKCJ0
aGV0YWJsZSIsIG5vZGVDYWxsYmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdF9pbmxp
bmVTdHlsZVNoZWV0TW9kaWZpY2F0aW9uKGlubGluZVN0eWxlKQotICAgIHsKLSAgICAgICAgQ1NT
QWdlbnQuZ2V0U3R5bGVTaGVldFRleHQoaW5saW5lU3R5bGUuc3R5bGVJZC5zdHlsZVNoZWV0SWQs
IHRleHRDYWxsYmFjayk7Ci0KLSAgICAgICAgZnVuY3Rpb24gdGV4dENhbGxiYWNrKGVycm9yLCBy
ZXN1bHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIi
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gU3R5bGVzaGVldC1m
b3ItaW5saW5lLXN0eWxlIHRleHQgPT09Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdChyZXN1bHQpOwotICAgICAgICAgICAgQ1NTQWdlbnQuc2V0U3R5bGVTaGVldFRleHQo
aW5saW5lU3R5bGUuc3R5bGVJZC5zdHlsZVNoZWV0SWQsICIiLCBzZXRUZXh0Q2FsbGJhY2spOwot
ICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc2V0VGV4dENhbGxiYWNrKGVycm9yLCByZXN1
bHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gU3R5bGVzaGVldC1mb3It
aW5saW5lLXN0eWxlIG1vZGlmaWNhdGlvbiByZXN1bHQgPT09Iik7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdChlcnJvcik7Ci0gICAgICAgICAgICB0ZXN0X3N0eWxlU2hlZXRz
KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0X3N0eWxlU2hlZXRzKCkK
LSAgICB7Ci0gICAgICAgIHZhciBuZXdTdHlsZVNoZWV0VGV4dCA9Ci0gICAgICAgICAgICAiYm9k
eS5tYWlucGFnZSB7IiArCi0gICAgICAgICAgICAiICAgIHRleHQtZGVjb3JhdGlvbjogc3RyaWtl
dGhyb3VnaDsiICsKLSAgICAgICAgICAgICIgICAgYmFkcHJvcGVydHk6IDJiYWR2YWx1ZTI7IiAr
Ci0gICAgICAgICAgICAifSIgKwotICAgICAgICAgICAgImJvZHkgeyIgKwotICAgICAgICAgICAg
IiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyIgKwotICAgICAgICAgICAgIn0iOwotCi0gICAgICAg
IGZ1bmN0aW9uIHBhdGNoU3R5bGVTaGVldChzdHlsZVNoZWV0KQotICAgICAgICB7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiPT09IExhc3Qgc3R5bGVzaGVldCBwYXRjaGVkID09PSIpOwotICAgICAg
ICAgICAgQ1NTQWdlbnQuc2V0U3R5bGVTaGVldFRleHQoc3R5bGVTaGVldC5zdHlsZVNoZWV0SWQs
IG5ld1N0eWxlU2hlZXRUZXh0LAotICAgICAgICAgICAgICAgIGxvYWRBbmREdW1wU3R5bGVTaGVl
dC5iaW5kKG51bGwsIHN0eWxlU2hlZXQuc3R5bGVTaGVldElkLCB0ZXN0X2NoYW5nZVNlbGVjdG9y
KSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBzdHlsZVNoZWV0SW5mb3NMb2FkZWQo
ZXJyb3IsIGluZm9zKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6ICIgKyBlcnJvcik7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIj09PSBBbGwgc3R5bGVzaGVldHMgPT09Iik7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGluZm9zLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIGxvYWRBbmREdW1wU3R5
bGVTaGVldChpbmZvc1tpXS5zdHlsZVNoZWV0SWQsIChpIDwgaW5mb3MubGVuZ3RoIC0gMSkgPyBu
dWxsIDogcGF0Y2hTdHlsZVNoZWV0KTsKLSAgICAgICAgfQotICAgICAgICBDU1NBZ2VudC5nZXRB
bGxTdHlsZVNoZWV0cyhzdHlsZVNoZWV0SW5mb3NMb2FkZWQpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHRlc3RfY2hhbmdlU2VsZWN0b3Ioc3R5bGVTaGVldCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0
aW9uIGRpZFNldFNlbGVjdG9yKGVycm9yLCBydWxlKQotICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJy
b3I6ICIgKyBlcnJvcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBBZnRlciBzZWxlY3RvciBzZXQgPT09Iik7Ci0gICAg
ICAgICAgICBsb2FkQW5kRHVtcFN0eWxlU2hlZXQocnVsZS5ydWxlSWQuc3R5bGVTaGVldElkLCB0
ZXN0X3NldFByb3BlcnR5VGV4dCk7Ci0gICAgICAgIH0KLQotICAgICAgICBDU1NBZ2VudC5zZXRS
dWxlU2VsZWN0b3Ioc3R5bGVTaGVldC5ydWxlc1swXS5ydWxlSWQsICJodG1sICosIGJvZHlbZm9v
PVwiYmFyXCJdIiwgZGlkU2V0U2VsZWN0b3IpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlc3Rf
c2V0UHJvcGVydHlUZXh0KHN0eWxlU2hlZXQpCi0gICAgewotICAgICAgICBmdW5jdGlvbiBkaWRT
ZXRQcm9wZXJ0eVRleHQoZXJyb3IsIHN0eWxlKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
ZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6
ICIgKyBlcnJvcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIj09PSBBZnRlciBwcm9wZXJ0eSB0ZXh0IHNldCA9PT0iKTsKLSAg
ICAgICAgICAgIGxvYWRBbmREdW1wU3R5bGVTaGVldChzdHlsZS5zdHlsZUlkLnN0eWxlU2hlZXRJ
ZCwgdGVzdF9zZXRTdHlsZVRleHQxKTsKLSAgICAgICAgfQotCi0gICAgICAgIENTU0FnZW50LnNl
dFByb3BlcnR5VGV4dChzdHlsZVNoZWV0LnJ1bGVzWzBdLnN0eWxlLnN0eWxlSWQsIDAsICIiLCB0
cnVlKTsKLSAgICAgICAgQ1NTQWdlbnQuc2V0UHJvcGVydHlUZXh0KHN0eWxlU2hlZXQucnVsZXNb
MF0uc3R5bGUuc3R5bGVJZCwgMCwgIiIsIHRydWUpOwotCi0gICAgICAgIC8vIFRoaXMgb3BlcmF0
aW9uIHNob3VsZCBub3QgdXBkYXRlIHRoZSBzdHlsZSBhcyB0aGUgbmV3IHByb3BlcnR5IHRleHQg
aXMgbm90IHBhcnNhYmxlLgotICAgICAgICBDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQoc3R5bGVT
aGVldC5ydWxlc1swXS5zdHlsZS5zdHlsZUlkLCAwLCAienp6OyIsIGZhbHNlKTsKLSAgICAgICAg
Q1NTQWdlbnQuc2V0UHJvcGVydHlUZXh0KHN0eWxlU2hlZXQucnVsZXNbMF0uc3R5bGUuc3R5bGVJ
ZCwgMCwgImNvbG9yOiB3aGl0ZTsgYmFja2dyb3VuZDogYmxhY2s7IiwgZmFsc2UsIGRpZFNldFBy
b3BlcnR5VGV4dCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdF9zZXRTdHlsZVRleHQxKHN0
eWxlU2hlZXQpCi0gICAgewotICAgICAgICBmdW5jdGlvbiBkaWRTZXRTdHlsZVRleHQxKGVycm9y
LCBzdHlsZSkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImVycm9yOiAiICsgZXJyb3IpOwotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCIiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9
PT0gQWZ0ZXIgZmlyc3Qgc3R5bGUgdGV4dCBzZXQgPT09Iik7Ci0gICAgICAgICAgICBsb2FkQW5k
RHVtcFN0eWxlU2hlZXQoc3R5bGUuc3R5bGVJZC5zdHlsZVNoZWV0SWQsIHRlc3Rfc2V0U3R5bGVU
ZXh0Mik7Ci0gICAgICAgIH0KLQotICAgICAgICBDU1NBZ2VudC5zZXRTdHlsZVRleHQoc3R5bGVT
aGVldC5ydWxlc1swXS5zdHlsZS5zdHlsZUlkLCAiIiwgZGlkU2V0U3R5bGVUZXh0MSk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gdGVzdF9zZXRTdHlsZVRleHQyKHN0eWxlU2hlZXQpCi0gICAgewot
ICAgICAgICBmdW5jdGlvbiBkaWRTZXRTdHlsZVRleHQyKGVycm9yLCBzdHlsZSkKLSAgICAgICAg
ewotICAgICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoImVycm9yOiAiICsgZXJyb3IpOwotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gQWZ0ZXIgc2Vjb25kIHN0
eWxlIHRleHQgc2V0ID09PSIpOwotICAgICAgICAgICAgbG9hZEFuZER1bXBTdHlsZVNoZWV0KHN0
eWxlLnN0eWxlSWQuc3R5bGVTaGVldElkLCB0ZXN0X2FkZFJ1bGUpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgQ1NTQWdlbnQuc2V0U3R5bGVUZXh0KHN0eWxlU2hlZXQucnVsZXNbMF0uc3R5bGUuc3R5
bGVJZCwgImNvbG9yOiBncmVlbjsgYmFja2dyb3VuZDogcmVkOyBmb286IGJhcjsgKmJhejogYmFy
OyAvKiBDb21tZW50ICovIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQiLCBkaWRTZXRTdHls
ZVRleHQyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0X2FkZFJ1bGUoKQotICAgIHsKLSAg
ICAgICAgZnVuY3Rpb24gZGlkR2V0U3R5bGVzKGVycm9yLCBtYXRjaGVkQ1NTUnVsZXMpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJlcnJvcjogIiArIGVycm9yKTsKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IE1hdGNoZWQgcnVs
ZXMgYWZ0ZXIgcnVsZSBhZGRlZCA9PT0iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cFJ1bGVNYXRjaGVzQXJyYXkobWF0Y2hlZENTU1J1bGVzKTsKLSAgICAgICAgICAgIHRlc3RfZGlz
YWJsZVByb3BlcnR5KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBkaWRTZXRTdHls
ZVRleHQoZXJyb3IsIHN0eWxlKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpIHsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6ICIgKyBlcnJv
cik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Q1NTQWdlbnQuZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUoYm9keUlkLCBmYWxzZSwgZmFsc2UsIGRp
ZEdldFN0eWxlcyk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBydWxlQWRkZWQoZXJy
b3IsIHJ1bGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJlcnJvcjogIiArIGVycm9yKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBDU1NBZ2VudC5z
ZXRQcm9wZXJ0eVRleHQocnVsZS5zdHlsZS5zdHlsZUlkLCAwLCAiZm9udC1mYW1pbHk6IHNlcmlm
OyIsIGZhbHNlLCBkaWRTZXRTdHlsZVRleHQpOwotICAgICAgICB9Ci0KLSAgICAgICAgQ1NTQWdl
bnQuYWRkUnVsZShib2R5SWQsICJib2R5IiwgcnVsZUFkZGVkKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiB0ZXN0X2Rpc2FibGVQcm9wZXJ0eSgpCi0gICAgewotICAgICAgICBmdW5jdGlvbiBkaWRE
aXNhYmxlUHJvcGVydHkoZXJyb3IsIHN0eWxlKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
ZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6
ICIgKyBlcnJvcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIj09PSBBZnRlciBwcm9wZXJ0eSBtYW5pcHVsYXRpb25zID09PSIp
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU3R5bGUoc3R5bGUpOwotICAgICAgICAg
ICAgdGVzdF9lbmFibGVQcm9wZXJ0eShzdHlsZS5zdHlsZUlkKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIGZ1bmN0aW9uIHN0eWxlc0NhbGxiYWNrKGVycm9yLCBtYXRjaGVkQ1NTUnVsZXMpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJlcnJvcjogIiArIGVycm9yKTsKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAvLyBoZWlnaHQgOiAxMDAlIDsKLSAgICAg
ICAgICAgIC8vIGJvcmRlcjogMXB4IHNvbGlkOwotICAgICAgICAgICAgLy8gYm9yZGVyLXdpZHRo
OiAycHg7Ci0gICAgICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yIDogIzMzRkYzMzsKLSAgICAg
ICAgICAgIC8vIGdvb2dsZXM6IGFicmE7Ci0gICAgICAgICAgICAvLyBmb286IC5iYXI7Ci0gICAg
ICAgICAgICAvLyAtbW96LWdvb2c6IDEqKio7Ci0gICAgICAgICAgICAvLyBib3JkZXItd2lkdGg6
IDBweDsKLQotICAgICAgICAgICAgdmFyIHN0eWxlSWQgPSBtYXRjaGVkQ1NTUnVsZXNbMV0ucnVs
ZS5zdHlsZS5zdHlsZUlkOwotICAgICAgICAgICAgQ1NTQWdlbnQudG9nZ2xlUHJvcGVydHkoc3R5
bGVJZCwgMCwgdHJ1ZSk7IC8vIGhlaWdodDogMTAwJQotICAgICAgICAgICAgQ1NTQWdlbnQudG9n
Z2xlUHJvcGVydHkoc3R5bGVJZCwgNywgdHJ1ZSk7IC8vIGJvcmRlci13aWR0aDogMHB4Ci0gICAg
ICAgICAgICBDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQoc3R5bGVJZCwgNywgImZvbnQtc2l6ZTog
MTJweDsiLCBmYWxzZSk7Ci0gICAgICAgICAgICBDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQoc3R5
bGVJZCwgOSwgImZvbnQtc2l6ZTogMTRweDsiLCBmYWxzZSk7Ci0gICAgICAgICAgICBDU1NBZ2Vu
dC50b2dnbGVQcm9wZXJ0eShzdHlsZUlkLCA5LCB0cnVlKTsgLy8gZm9udC1zaXplOiAxNHB4Ci0g
ICAgICAgICAgICBDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQoc3R5bGVJZCwgOCwgImJvcmRlci13
aWR0aDogMXB4OyIsIHRydWUpOwotICAgICAgICAgICAgQ1NTQWdlbnQudG9nZ2xlUHJvcGVydHko
c3R5bGVJZCwgOCwgZmFsc2UpOyAvLyBib3JkZXItd2lkdGg6IDFweAotICAgICAgICAgICAgLy8g
aGVpZ2h0IDogMTAwJSA7IFtkXQotICAgICAgICAgICAgLy8gYm9yZGVyOiAxcHggc29saWQ7Ci0g
ICAgICAgICAgICAvLyBib3JkZXItd2lkdGg6IDJweDsKLSAgICAgICAgICAgIC8vIGJhY2tncm91
bmQtY29sb3IgOiAjMzNGRjMzOwotICAgICAgICAgICAgLy8gZ29vZ2xlczogYWJyYTsKLSAgICAg
ICAgICAgIC8vIGZvbzogLmJhcjsKLSAgICAgICAgICAgIC8vIC1tb3otZ29vZzogMSoqKjsKLSAg
ICAgICAgICAgIC8vIGZvbnQtc2l6ZTogMTJweDsKLSAgICAgICAgICAgIC8vIGJvcmRlci13aWR0
aDogMXB4OwotICAgICAgICAgICAgLy8gZm9udC1zaXplOiAxNHB4OyBbZF0KLQotICAgICAgICAg
ICAgQ1NTQWdlbnQuc2V0UHJvcGVydHlUZXh0KHN0eWxlSWQsIDMsICIiLCB0cnVlLCBkaWREaXNh
YmxlUHJvcGVydHkpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gbm9kZUNhbGxiYWNr
KG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIENTU0FnZW50LmdldE1hdGNoZWRTdHlsZXNG
b3JOb2RlKG5vZGUuaWQsIGZhbHNlLCBmYWxzZSwgc3R5bGVzQ2FsbGJhY2spOwotICAgICAgICB9
Ci0gICAgICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgidG9nZ2xlIiwgbm9kZUNhbGxiYWNr
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0X2VuYWJsZVByb3BlcnR5KHN0eWxlSWQpCi0g
ICAgewotICAgICAgICBmdW5jdGlvbiBkaWRFbmFibGVQcm9wZXJ0eShlcnJvciwgc3R5bGUpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJlcnJvcjogIiArIGVycm9yKTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IEFmdGVyIHBy
b3BlcnR5IGVuYWJsZWQgPT09Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTdHls
ZShzdHlsZSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgQ1NTQWdlbnQudG9nZ2xlUHJvcGVydHkoc3R5bGVJZCwgNiwgZmFs
c2UpOwotICAgICAgICBDU1NBZ2VudC50b2dnbGVQcm9wZXJ0eShzdHlsZUlkLCA4LCBmYWxzZSwg
ZGlkRW5hYmxlUHJvcGVydHkpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGxvYWRBbmREdW1wU3R5
bGVTaGVldChzdHlsZVNoZWV0SWQsIGNvbnRpbnVhdGlvbiwgZXJyb3IpCi0gICAgewotICAgICAg
ICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJlcnJv
cjogIiArIGVycm9yKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAg
IGZ1bmN0aW9uIHN0eWxlU2hlZXRMb2FkZWQoZXJyb3IsIHN0eWxlU2hlZXQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJlcnJvcjogIiArIGVycm9yKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU3R5bGVTaGVldDogJyIgKyBzdHls
ZVNoZWV0LnRleHQgKyAiJyIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wUnVsZXNB
cnJheShzdHlsZVNoZWV0LnJ1bGVzKTsKLSAgICAgICAgICAgIGlmIChjb250aW51YXRpb24pCi0g
ICAgICAgICAgICAgICAgY29udGludWF0aW9uKHN0eWxlU2hlZXQpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgQ1NTQWdlbnQuZ2V0U3R5bGVTaGVldChzdHlsZVNoZWV0SWQsIHN0eWxlU2hlZXRMb2Fk
ZWQpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci0KLTxzdHlsZT4KLQotLyogQW4gaW5saW5lIHN0
eWxlc2hlZXQgKi8KLWJvZHkubWFpbnBhZ2UgewotICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsg
LyogYXQgbGVhc3Qgb25lIHZhbGlkIHByb3BlcnR5IGlzIG5lY2Vzc2FyeSBmb3IgV2ViQ29yZSB0
byBtYXRjaCBhIHJ1bGUgKi8KLSAgICA7YmFkcHJvcGVydHk6IDFiYWR2YWx1ZTE7Ci19Ci0KLWJv
ZHkubWFpbnBhZ2UgewotICAgIHByb3AxOiB2YWwxOwotICAgIHByb3AyOiB2YWwyOwotfQotCi1i
b2R5OmhvdmVyIHsKLSAgY29sb3I6ICNDREU7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotCi08Ym9k
eSBpZD0ibWFpbkJvZHkiIGNsYXNzPSJtYWluMSBtYWluMiBtYWlucGFnZSIgb25sb2FkPSJydW5U
ZXN0KCkiIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyB3aWR0aDogODUlOyBiYWNrZ3JvdW5k
LWltYWdlOiB1cmwoYmFyLnBuZykiPgotPHA+Ci1UZXN0cyB0aGF0IEluc3BlY3RvckNTU0FnZW50
IEFQSSBtZXRob2RzIHdvcmsgYXMgZXhwZWN0ZWQuCi08L3A+Ci08dGFibGUgd2lkdGg9IjUwJSIg
aWQ9InRoZXRhYmxlIj4KLTwvdGFibGU+Ci08aDEgaWQ9InRvZ2dsZSI+SDE8L2gxPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHls
ZXMtb3ZlcnJpZGVuLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9zdHlsZXMtb3ZlcnJpZGVuLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzYzOTRiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW92ZXJyaWRlbi1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRlc3RzIHRoYXQgb3ZlcnJpZGlu
ZyBzaG9ydGhhbmRzIHdpdGhpbiBydWxlIGFyZSB2aXNpYmxlLgotCi1bZXhwYW5kZWRdIAotZWxl
bWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQot
W2V4cGFuZGVkXSAKLSNtYWluICB7IChzdHlsZXMtb3ZlcnJpZGVuLXByb3BlcnRpZXMuaHRtbDo0
KQotLy0tIG92ZXJsb2FkZWQgLS0vIGJhY2tncm91bmQ6ICMwMDA7Ci1iYWNrZ3JvdW5kOiAjYmFk
YTU1OwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNw
bGF5OiBibG9jazsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvc3R5bGVzLW92ZXJyaWRlbi1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3N0eWxlcy1vdmVycmlkZW4tcHJvcGVydGllcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4ZTg1MWZlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvc3R5bGVzLW92ZXJyaWRlbi1wcm9wZXJ0aWVzLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwzNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij4KLSNtYWluIHsKLSAgICBoZWlnaHQ6IDEwMHB4OwotICAgIGJhY2tncm91bmQ6ICMwMDA7Ci0g
ICAgYmFja2dyb3VuZDogI2JhZGE1NTsKLX0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0
LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJtYWluIiwgc3RlcDEpOwotCi0gICAgZnVuY3Rp
b24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVt
ZW50U3R5bGVzKHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgb3ZlcnJpZGluZyBzaG9ydGhhbmRzIHdp
dGhpbiBydWxlIGFyZSB2aXNpYmxlLgotPC9wPgotCi08ZGl2IGlkPSJtYWluIj48L2Rpdj4KLQot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtc291cmNlLWxpbmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1saW5lcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDdhN2U0NDYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLWxpbmVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDM1ICswLDAgQEAKLVRlc3RzIHRoYXQgcHJvcGVyIHNvdXJjZSBsaW5lcyBhcmUgcmVw
b3J0ZWQgZm9yIHRoZSBwYXJzZWQgc3R5bGVzLgotCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHls
ZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVk
XSAKLW1lZGlhPSJzY3JlZW4iIChzdHlsZXMtc291cmNlLWxpbmVzLmh0bWwpCi0jbWFpbiwgLmF0
X2xpbmVfNTAgIHsgKHN0eWxlcy1zb3VyY2UtbGluZXMuaHRtbDo1MCkKLWJvcmRlcjogMXB4IHNv
bGlkCi0gICAgcmVkOwotCi1bZXhwYW5kZWRdIAotbWVkaWE9InNjcmVlbiIgKHN0eWxlcy1zb3Vy
Y2UtbGluZXMuaHRtbCkKLSNtYWluLCAuYXRfbGluZV80MyAgeyAoc3R5bGVzLXNvdXJjZS1saW5l
cy5odG1sOjQzKQotZm9udC1zaXplOiAxMHB4OwotCi1bZXhwYW5kZWRdIAotbWVkaWE9InNjcmVl
biIgKHN0eWxlcy1zb3VyY2UtbGluZXMuaHRtbCkKLSNtYWluLCAuYXRfbGluZV8yOSAgeyAoc3R5
bGVzLXNvdXJjZS1saW5lcy5odG1sOjI5KQotZm9udC1mYW1pbHk6IC8qICBDb21tZW50IGluIAot
ICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICAqL2NvdXJpZXI7Ci0KLVtleHBhbmRlZF0gCi1t
ZWRpYT0ic2NyZWVuIiAoc3R5bGVzLXNvdXJjZS1saW5lcy5odG1sKQotI21haW4sIC5hdF9saW5l
XzE1OjpiZWZvcmUgIHsgKHN0eWxlcy1zb3VyY2UtbGluZXMuaHRtbDoxNSkKLWNvbG9yOiByZWQ7
Ci1jb250ZW50OiAiQmVmb3JlIjsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBz
dHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2UtbGluZXMtaW5saW5lLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1saW5lcy1pbmxp
bmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODA2ZDJlLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1s
aW5lcy1pbmxpbmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAot
VGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCBzaG93cyBwcm9wZXIgaW5saW5lIHN0eWxlIGxvY2F0
aW9ucyBpbiB0aGUgc2lkZWJhciBwYW5lbC4KLQotCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHls
ZSAgeyAoKQotZGlzcGxheTogbm9uZTsKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09
PT09PT0KLVtleHBhbmRlZF0gCi0uZm9vICB7IChzdHlsZXMtc291cmNlLWxpbmVzLWlubGluZS5o
dG1sOjcpCi1jb2xvcjogYmx1ZTsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBz
dHlsZXNoZWV0KQotLy0tIG92ZXJsb2FkZWQgLS0vIGRpc3BsYXk6IGJsb2NrOwotCi0KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLWxpbmVz
LWlubGluZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNl
LWxpbmVzLWlubGluZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDhkNThj
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJj
ZS1saW5lcy1pbmxpbmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotCi08c3R5bGU+Ci0uZm9vIHsKLSAg
ICBjb2xvcjogYmx1ZTsKLX0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImZvbyIs
IHN0ZXAyKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlLCBmYWxzZSwgdHJ1ZSk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGVs
ZW1lbnRzIHBhbmVsIHNob3dzIHByb3BlciBpbmxpbmUgc3R5bGUgbG9jYXRpb25zIGluIHRoZSBz
aWRlYmFyIHBhbmVsLgotPC9wPgotCi08ZGl2IGlkPSJmb28iIGNsYXNzPSJmb28iIHN0eWxlPSJk
aXNwbGF5Om5vbmUiPkZvbzwvZGl2PgotPGlmcmFtZSBzcmM9InJlc291cmNlcy9zdHlsZXMtc291
cmNlLWxpbmVzLWlubGluZS1pZnJhbWUuaHRtbCI+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1saW5lcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLWxpbmVzLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyNTRlMmQuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLWxpbmVzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPCEtLQotICAgIExp
bmUgbnVtYmVycyBhcmUgcmVwb3J0ZWQgd3J0IHRoZSBvcGVuZWQgc3R5bGUgdGFnIGJhc2VsaW5l
LgotICAgIEFsbG93IHNvbWUgc3BhY2UgaGVyZSB0byBhbGlnbiBsb2NhbCBsaW5lIG51bWJlcnMg
dG8gYmUgc3R5bGUgKyAxMC4KLSAgICBTZWxlY3RvciBzb3VyY2VMaW5lIGlzIHRoZSBsaW5lIG9m
IHRoZSBjb3JyZXNwb25kaW5nIHsgZm9sbG93aW5nIHRoZQotICAgIHNlbGVjdG9yIHRleHQuCi0t
LT4KLQotPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KLSNtYWluLCAuYXRf
bGluZV8xNTo6LyoKLU11bHRpbGluZSBjb21tZW50Ci1iZWZvcmUgcHNldWRvIGVsZW1lbnQKLSAg
ICAgICAgICAgICAgKi9iZWZvcmUgCi17Ci0gICAgY29sb3I6cmVkOwotICAgIGNvbnRlbnQ6ICJC
ZWZvcmUiCi19Ci0vKgotCi1NdWx0aWxpbmUgY29tbWVudCBmb2xsb3dlZCB3aXRoIHdoaXRlc3Bh
Y2UKLQotCi0qLwotCi0jbWFpbiwgLmF0X2xpbmVfMjkKLQotCi17Ci0gICAgLyogQ29tbWVudCBp
biBkZWZpbml0aW9uKi8KLSAgICAvKiBDb21tZW50IGluIGRlZmluaXRpb24gMiovCi0KLSAgICAv
KiBDb21tZW50IGluIGRlZmluaXRpb24gMwotICAgICovZm9udC1mYW1pbHk6LyogIENvbW1lbnQg
aW4gCi0gICAgICAgICAgICAgICAgICAgICAgdmFsdWUgICovY291cmllcjsKLSAgICBjb2xvciBi
bHVlOwotfS8qTXVsdGlsaW5lIGNvbW1lbnQKLQotZm9sbG93ZWQgYnkgc2VsZWN0b3IKLSovI21h
aW4sCi0uYXRfbGluZV80MwotCi17Ci0gICAgZm9udC1zaXplOgotICAgICAgICAxMHB4OwotfQot
Ci0KLSNtYWluLCAuYXRfbGluZV81MAotewotICAgIGJvcmRlcjogMXB4IHNvbGlkCi0gICAgcmVk
OwotfQotPC9zdHlsZT4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JT
dHlsZXMoIm1haW4iLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwgZmFsc2Us
IHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgot
VGVzdHMgdGhhdCBwcm9wZXIgc291cmNlIGxpbmVzIGFyZSByZXBvcnRlZCBmb3IgdGhlIHBhcnNl
ZCBzdHlsZXMuCi08L3A+Ci0KLTxkaXYgaWQ9Im1haW4iPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3Vy
Y2Utb2Zmc2V0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQ3NzI3MjguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtc291cmNlLW9mZnNldHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MjMgKzAsMCBAQAotVGVzdHMgdGhhdCBwcm9wZXIgZGF0YSBhbmQgc3RhcnQvZW5kIG9mZnNldCBw
b3NpdGlvbnMgYXJlIHJlcG9ydGVkIGZvciBDU1Mgc3R5bGUgZGVjbGFyYXRpb25zIGFuZCBwcm9w
ZXJ0aWVzLgotCi1ib2R5OiBbMDowLTA6NF0gWzA6Ni05OjBdCi1bJ2ZvbnQtc2l6ZSc6JzEycHgn
XSBAWzE6NC0xOjIwXQotWydmb28nOidiYXIgIQotCi0gICAgaW1wb3J0YW50IC8qICFpbXBvcnRh
bnQgcHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkgV2ViQ29yZSAqLycgIWltcG9ydGFudCBub24t
cGFyc2VkXSBAWzI6NC00OjY2XQotWydoZWlnaHQnOicxMDAlICFpbXBvcnRhbnQnICFpbXBvcnRh
bnRdIEBbNTo0LTU6MjhdCi1bJ2NvbG9yeic6JyIhaW1wb3J0YW50Iicgbm9uLXBhcnNlZF0gQFs2
OjQtNjoyNV0KLVsnaW1wb3J0YW50JzonIWltcG9ydGFudCcgbm9uLXBhcnNlZF0gQFs3OjQtNzoy
NV0KLVsnY29sb3InOiciYmFkY29sb3IiICEgaW1wb3J0YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0
aCBzdHJhbmdlIHZhbHVlICovJyAhaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbODo0LTg6NzNdCi1i
b2R5Lm1haW4xOiBbMTE6MjktMTE6NjddIFsxMTo2OC0xMToxNDldCi1bJ2NvbG9yJzonI0YwMEJB
QSddIEBbMTE6ODEtMTE6OTZdCi1bJ3pvbyc6J21vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJl
Y29nbml6ZWQgcHJvcGVydHkgKi8nIG5vbi1wYXJzZWRdIEBbMTE6OTYtMTE6MTQ5XQotYm9keS5t
YWluMjogWzEzOjAtMTM6MTBdIFsxMzoxMS0xMzoxMDZdCi1bJ2JhY2tncm91bmQnOidncmVlbiAv
KiB2YWx1ZSAhaW1wb3J0YW50IGNvbW1lbnQgKi8gIWltcG9ydGFudCAvKiBubyBzZW1pY29sb24s
IHZlcnkgIWltcG9ydGFudCAqLycgIWltcG9ydGFudF0gQFsxMzoxMS0xMzoxMDZdCi1ib2R5Lm1h
aW5wYWdlOiBbMjowLTI6MTNdIFsyOjE1LTU6MF0KLVsndGV4dC1kZWNvcmF0aW9uJzonbm9uZSdd
IEBbMzo0LTM6MjZdCi1bJ2JhZHByb3BlcnR5JzonMWJhZHZhbHVlMScgbm9uLXBhcnNlZF0gQFs0
OjQtNDoyOF0KLWVsZW1lbnQuc3R5bGU6IFswOjAtMDozMV0KLVsnZm9udC13ZWlnaHQnOidub3Jt
YWwnXSBAWzA6MC0wOjIwXQotWyd3aWR0aCc6JzgwJSddIEBbMDoyMS0wOjMxXQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLW9mZnNldHMu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTk5NDNiNy4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLQotPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNz
cyI+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICBmdW5jdGlvbiBkdW1wU3R5bGVEYXRhKHJ1bGVPclN0eWxlKQotICAgIHsKLSAg
ICAgICAgdmFyIGlzUnVsZSA9ICEhKHJ1bGVPclN0eWxlLnN0eWxlKTsKLSAgICAgICAgdmFyIHN0
eWxlOwotICAgICAgICB2YXIgaGVhZGVyID0gIiI7Ci0gICAgICAgIGlmIChpc1J1bGUpIHsKLSAg
ICAgICAgICAgIGlmIChydWxlT3JTdHlsZS5vcmlnaW4gIT09ICJyZWd1bGFyIikKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBzdHlsZSA9IHJ1bGVPclN0eWxlLnN0eWxlOwot
ICAgICAgICAgICAgaGVhZGVyID0gcnVsZU9yU3R5bGUuc2VsZWN0b3JMaXN0LnRleHQgKyAiOiAi
ICsgKHJ1bGVPclN0eWxlLnNlbGVjdG9yTGlzdC5yYW5nZSA/IEluc3BlY3RvclRlc3QucmFuZ2VU
ZXh0KHJ1bGVPclN0eWxlLnNlbGVjdG9yTGlzdC5yYW5nZSkgOiAiIik7Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBzdHlsZSA9IHJ1bGVPclN0eWxlOwotICAgICAgICAgICAgaGVhZGVy
ID0gImVsZW1lbnQuc3R5bGU6IjsKLSAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdChoZWFkZXIgKyAiICIgKyBJbnNwZWN0b3JUZXN0LnJhbmdlVGV4dChzdHlsZS5yYW5n
ZSkpOwotICAgICAgICB2YXIgYWxsUHJvcGVydGllcyA9IHN0eWxlLmNzc1Byb3BlcnRpZXM7Ci0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsUHJvcGVydGllcy5sZW5ndGg7ICsraSkgewot
ICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gYWxsUHJvcGVydGllc1tpXTsKLSAgICAgICAgICAg
IGlmICghcHJvcGVydHkuc3RhdHVzKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlsnIiArIHByb3BlcnR5Lm5hbWUgKyAiJzon
IiArIHByb3BlcnR5LnZhbHVlICsgIiciICsgKHByb3BlcnR5LnByaW9yaXR5ID8gIiAhaW1wb3J0
YW50IiA6ICIiKSArICgoInBhcnNlZE9rIiBpbiBwcm9wZXJ0eSkgPyAiIG5vbi1wYXJzZWQiIDog
IiIpICsiXSBAIiArIEluc3BlY3RvclRlc3QucmFuZ2VUZXh0KHByb3BlcnR5LnJhbmdlKSk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElk
KCJtYWluQm9keSIsIHN0ZXAxKTsKLQotICAgIHZhciByZXN1bHRTdHlsZXMgPSB7fTsKLQotICAg
IGZ1bmN0aW9uIGlubGluZUNhbGxiYWNrKGVycm9yLCBpbmxpbmVTdHlsZSkKLSAgICB7Ci0gICAg
ICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJl
cnJvcjogIiArIGVycm9yKTsKLSAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHJlc3VsdFN0
eWxlcy5pbmxpbmVTdHlsZSA9IGlubGluZVN0eWxlOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG1h
dGNoZWRDYWxsYmFjayhlcnJvciwgbWF0Y2hlZENTU1J1bGVzKQotICAgIHsKLSAgICAgICAgaWYg
KGVycm9yKSB7Ci0gICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImVycm9yOiAi
ICsgZXJyb3IpOwotICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0g
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHJlc3VsdFN0eWxlcy5tYXRj
aGVkQ1NTUnVsZXMgPSBtYXRjaGVkQ1NTUnVsZXM7Ci0gICAgICAgIHN0ZXAyKCk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDEobm9kZSkKLSAgICB7Ci0gICAgICAgIENTU0FnZW50LmdldElu
bGluZVN0eWxlc0Zvck5vZGUobm9kZS5pZCwgaW5saW5lQ2FsbGJhY2spOwotICAgICAgICBDU1NB
Z2VudC5nZXRNYXRjaGVkU3R5bGVzRm9yTm9kZShub2RlLmlkLCBtYXRjaGVkQ2FsbGJhY2spOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIHZhciBtYXRjaGVk
Q1NTUnVsZXMgPSByZXN1bHRTdHlsZXMubWF0Y2hlZENTU1J1bGVzOwotICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IG1hdGNoZWRDU1NSdWxlcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIGR1
bXBTdHlsZURhdGEobWF0Y2hlZENTU1J1bGVzW2ldLnJ1bGUpOwotICAgICAgICBkdW1wU3R5bGVE
YXRhKHJlc3VsdFN0eWxlcy5pbmxpbmVTdHlsZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLQotPHN0eWxlPgotCi1ib2R5Lm1h
aW5wYWdlIHsKLSAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IC8qIGF0IGxlYXN0IG9uZSB2YWxp
ZCBwcm9wZXJ0eSBpcyBuZWNlc3NhcnkgZm9yIFdlYkNvcmUgdG8gbWF0Y2ggYSBydWxlICovCi0g
ICAgYmFkcHJvcGVydHk6IDFiYWR2YWx1ZTE7Ci19Ci0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci0KLTxi
b2R5IGlkPSJtYWluQm9keSIgY2xhc3M9Im1haW4xIG1haW4yIG1haW5wYWdlIiBvbmxvYWQ9InJ1
blRlc3QoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7IHdpZHRoOiA4MCUiPgotPHA+Ci1U
ZXN0cyB0aGF0IHByb3BlciBkYXRhIGFuZCBzdGFydC9lbmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUg
cmVwb3J0ZWQgZm9yIENTUyBzdHlsZSBkZWNsYXJhdGlvbnMgYW5kIHByb3BlcnRpZXMuCi08L3A+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTc4NTYzNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotVGVzdHMgdGhhdCBjaGFuZ2VzIHRvIGFuIGlu
bGluZSBzdHlsZSBhbmQgYW5jZXN0b3Ivc2libGluZyBjbGFzc05hbWUgZnJvbSBKYXZhU2NyaXB0
IGFyZSByZWZsZWN0ZWQgaW4gdGhlIFN0eWxlcyBwYW5lIGFuZCBFbGVtZW50cyB0cmVlLgotCi0K
LVJ1bm5pbmc6IHRlc3RJbml0Ci0KLVJ1bm5pbmc6IHRlc3RTZXRTdHlsZUF0dHJpYnV0ZQotPGRp
diBpZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6ICNkYUMwREU7IGJvcmRlcjogMXB4IHNvbGlk
IGJsYWNrOyI+4oCmPC9kaXY+Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotY29s
b3I6ICNkYUMwREU7Ci1ib3JkZXI6IDFweCBzb2xpZCBibGFjazsKLSAgICBib3JkZXItdG9wLWNv
bG9yOiBibGFjazsKLSAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsKLSAgICBib3JkZXItdG9w
LXdpZHRoOiAxcHg7Ci0gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBibGFjazsKLSAgICBib3JkZXIt
cmlnaHQtc3R5bGU6IHNvbGlkOwotICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4OwotICAgIGJv
cmRlci1ib3R0b20tY29sb3I6IGJsYWNrOwotICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlk
OwotICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsKLSAgICBib3JkZXItbGVmdC1jb2xvcjog
YmxhY2s7Ci0gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOwotICAgIGJvcmRlci1sZWZ0LXdp
ZHRoOiAxcHg7Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5k
ZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQot
Ci0KLVJ1bm5pbmc6IHRlc3RTZXRTdHlsZUNTU1RleHQKLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5
bGU9ImNvbG9yOiByZ2IoMTkyLCAyNTUsIDIzOCk7Ij7igKY8L2Rpdj4KLVtleHBhbmRlZF0gCi1l
bGVtZW50LnN0eWxlICB7ICgpCi1jb2xvcjogcmdiKDE5MiwgMjU1LCAyMzgpOwotCi09PT09PT09
PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBh
Z2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotCi1SdW5uaW5nOiB0ZXN0U2V0
VmlhUGFyc2VkQXR0cmlidXRlcwotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6IHJn
YigxOTIsIDI1NSwgMjM4KTsgYm9yZGVyOiAzcHggZGFzaGVkIGdyZWVuOyI+4oCmPC9kaXY+Ci1b
ZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotY29sb3I6IHJnYigxOTIsIDI1NSwgMjM4
KTsKLWJvcmRlcjogM3B4IGRhc2hlZCBncmVlbjsKLSAgICBib3JkZXItdG9wLWNvbG9yOiBncmVl
bjsKLSAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7Ci0gICAgYm9yZGVyLXRvcC13aWR0aDog
M3B4OwotICAgIGJvcmRlci1yaWdodC1jb2xvcjogZ3JlZW47Ci0gICAgYm9yZGVyLXJpZ2h0LXN0
eWxlOiBkYXNoZWQ7Ci0gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAzcHg7Ci0gICAgYm9yZGVyLWJv
dHRvbS1jb2xvcjogZ3JlZW47Ci0gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZGFzaGVkOwotICAg
IGJvcmRlci1ib3R0b20td2lkdGg6IDNweDsKLSAgICBib3JkZXItbGVmdC1jb2xvcjogZ3JlZW47
Ci0gICAgYm9yZGVyLWxlZnQtc3R5bGU6IGRhc2hlZDsKLSAgICBib3JkZXItbGVmdC13aWR0aDog
M3B4OwotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAK
LWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotCi1S
dW5uaW5nOiB0ZXN0U2V0VmlhQW5jZXN0b3JDbGFzcwotPGRpdiBpZD0iY2hpbGQiPjwvZGl2Pgot
W2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1Mg
UnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0ucmVkIGRpdjpmaXJzdC1jaGlsZCAgeyAoc3R5
bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWw6NCkKLWJhY2tncm91bmQtY29sb3I6IHJlZDsKLQotW2V4
cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7
Ci0KLT09PT09PT09IEluaGVyaXRlZCBmcm9tIGRpdiNjb250YWluZXIucmVkID09PT09PT09Ci1b
ZXhwYW5kZWRdIAotU3R5bGUgQXR0cmlidXRlICB7ICgpCi1jb2xvcjogcmdiKDE5MiwgMjU1LCAy
MzgpOwotCi0KLQotUnVubmluZzogdGVzdFNldFZpYVNpYmxpbmdBdHRyCi08ZGl2IGlkPSJjaGls
ZFNpYmxpbmciPjwvZGl2PgotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09
PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1kaXZbZm9vPSJi
YXIiXSArIGRpdiAgeyAoc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWw6OCkKLWJhY2tncm91bmQt
Y29sb3I6IGJsdWU7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVl
dCkKLWRpc3BsYXk6IGJsb2NrOwotCi09PT09PT09PSBJbmhlcml0ZWQgZnJvbSBkaXYjY29udGFp
bmVyLnJlZCA9PT09PT09PQotW2V4cGFuZGVkXSAKLVN0eWxlIEF0dHJpYnV0ZSAgeyAoKQotY29s
b3I6IHJnYigxOTIsIDI1NSwgMjM4KTsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5OGY1MzQyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLS5yZWQgZGl2OmZpcnN0LWNo
aWxkIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Ci19Ci0KLWRpdltmb289ImJhciJdICsg
ZGl2IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwotfQotCi08L3N0eWxlPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBtb2RpZnlTdHlsZUF0dHJpYnV0
ZSgpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLnNldEF0dHJp
YnV0ZSgic3R5bGUiLCAiY29sb3I6ICNkYUMwREU7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyIp
OwotfQotCi1mdW5jdGlvbiBtb2RpZnlDU1NUZXh0KCkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29udGFpbmVyIikuc3R5bGUuY3NzVGV4dCA9ICJjb2xvcjogI0MwRkZFRSI7Ci19
Ci0KLWZ1bmN0aW9uIG1vZGlmeVBhcnNlZEF0dHJpYnV0ZXMoKQotewotICAgIHZhciBzdHlsZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKS5zdHlsZTsKLSAgICBzdHlsZS5i
b3JkZXIgPSAiMnB4IGRhc2hlZCBncmVlbiI7Ci0gICAgc3R5bGUuYm9yZGVyV2lkdGggPSAiM3B4
IjsKLX0KLQotZnVuY3Rpb24gbW9kaWZ5Q29udGFpbmVyQ2xhc3MoKQotewotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKS5jbGFzc05hbWUgPSAicmVkIjsKLX0KLQotZnVu
Y3Rpb24gbW9kaWZ5Q2hpbGRBdHRyKCkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y2hpbGQiKS5zZXRBdHRyaWJ1dGUoImZvbyIsICJiYXIiKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0
ZXN0SW5pdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVj
dE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJjb250YWluZXIiLCBuZXh0KTsKLSAgICAgICAgfSwKLQot
ICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0U3R5bGVBdHRyaWJ1dGUobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgd2FpdEFuZER1bXBBdHRyaWJ1dGVBbmRTdHlsZXMobmV4dCk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJtb2RpZnlTdHlsZUF0dHJpYnV0ZSgp
Iik7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldFN0eWxlQ1NTVGV4dChu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB3YWl0QW5kRHVtcEF0dHJpYnV0ZUFuZFN0eWxl
cyhuZXh0KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm1vZGlm
eUNTU1RleHQoKSIpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRWaWFQ
YXJzZWRBdHRyaWJ1dGVzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHdhaXRBbmREdW1w
QXR0cmlidXRlQW5kU3R5bGVzKG5leHQpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZSgibW9kaWZ5UGFyc2VkQXR0cmlidXRlcygpIik7Ci0gICAgICAgIH0sCi0KLSAg
ICAgICAgZnVuY3Rpb24gdGVzdFNldFZpYUFuY2VzdG9yQ2xhc3MobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiY2hp
bGQiLCBjYWxsYmFjayk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICB3YWl0QW5kRHVtcEF0dHJpYnV0ZUFuZFN0eWxlcyhu
ZXh0LCAiY2hpbGQiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJtb2RpZnlDb250YWluZXJDbGFzcygpIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldFZpYVNpYmxpbmdBdHRyKG5leHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMo
ImNoaWxkU2libGluZyIsIGNhbGxiYWNrKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJh
Y2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHdhaXRBbmREdW1wQXR0cmlidXRl
QW5kU3R5bGVzKG5leHQsICJjaGlsZFNpYmxpbmciKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJtb2RpZnlDaGlsZEF0dHIoKSIpOwotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBmdW5jdGlvbiB3YWl0QW5kRHVtcEF0dHJpYnV0
ZUFuZFN0eWxlcyhuZXh0LCBpZCkKLSAgICB7Ci0gICAgICAgIGlkID0gaWQgfHwgImNvbnRhaW5l
ciI7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAgICAgewotICAgICAgICAgICAg
ZHVtcEF0dHJpYnV0ZUFuZFN0eWxlcyhpZCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAg
IH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKGlkLCBjYWxsYmFjayk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gZHVtcEF0dHJpYnV0ZUFuZFN0eWxlcyhpZCkKLSAgICB7Ci0g
ICAgICAgIHZhciB0cmVlRWxlbWVudCA9IGZpbmROb2RlVHJlZUVsZW1lbnQoaWQpOwotICAgICAg
ICBpZiAoIXRyZWVFbGVtZW50KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiJyIgKyBpZCArICInIHRyZWUgZWxlbWVudCBub3QgZm91bmQiKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0cmVlRWxl
bWVudC5saXN0SXRlbUVsZW1lbnQudGV4dENvbnRlbnQucmVwbGFjZSgvXHUyMDBiL2csICIiKSk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBmaW5kTm9kZVRyZWVFbGVtZW50KGlkKQotICAgIHsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5fdXBkYXRlTW9k
aWZpZWROb2RlcygpOwotICAgICAgICB2YXIgZXhwYW5kZWROb2RlID0gSW5zcGVjdG9yVGVzdC5l
eHBhbmRlZE5vZGVXaXRoSWQoaWQpOwotICAgICAgICBpZiAoIWV4cGFuZGVkTm9kZSkgewotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiciICsgaWQgKyAiJyBub2RlIG5vdCBm
b3VuZCIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0
bGluZS5maW5kVHJlZUVsZW1lbnQoZXhwYW5kZWROb2RlKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGNo
YW5nZXMgdG8gYW4gaW5saW5lIHN0eWxlIGFuZCBhbmNlc3Rvci9zaWJsaW5nIGNsYXNzTmFtZSBm
cm9tIEphdmFTY3JpcHQgYXJlIHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVzIHBhbmUgYW5kIEVsZW1l
bnRzIHRyZWUuCi08L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImZvbnQtd2VpZ2h0
OmJvbGQiPjxkaXYgaWQ9ImNoaWxkIj48L2Rpdj48ZGl2IGlkPSJjaGlsZFNpYmxpbmciPjwvZGl2
PjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3N0eWxlcy11cmwtbGlua2lmeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cmwtbGlua2lmeS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViODY3NzAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXJsLWxpbmtpZnktZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotVGVzdHMgdGhhdCBVUkxzIGFyZSBsaW5rZWQgdG8g
YW5kIGNvbXBsZXRlZCBjb3JyZWN0bHkuIEJ1Z3MgNTE2NjMsIDUzMTcxLCA2MjY0MywgNzIzNzMs
IDc5OTA1Ci0KLQotVVJMcyBjb21wbGV0ZWQ6Ci1odHRwOi8vZXhhbXBsZS5jb20vCi1odHRwOi8v
ZXhhbXBsZS5jb20vbW9vCi1odHRwczovL3NlY3VyZS5jb20vbW9vCi1odHRwczovL3NlY3VyZS5j
b20vbW9vCi1odHRwOi8vZXhhbXBsZS5jb20vbW9vCi1odHRwOi8vZXhhbXBsZS5jb20vZm9vL3pv
by9tb28KLWh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYm9vL21vbwotaHR0cDovL2V4YW1wbGUuY29t
L21vbwotaHR0cDovL2V4YW1wbGUuY29tL2Zvbz9hPWIKLWh0dHA6Ly9leGFtcGxlLmNvbS9mb28/
YT0vYgotaHR0cDovL2V4YW1wbGUuY29tLz9hPS9iCi1odHRwOi8vZXhhbXBsZS5jb20vZm9vP2E9
YgotaHR0cDovL2V4YW1wbGUuY29tL2Zvbz9hPS9iCi1odHRwOi8vZXhhbXBsZS5jb20vZm9vP2E9
YgotaHR0cDovL2V4YW1wbGUuY29tL2NhdC5qcGVnCi1odHRwOi8vZXhhbXBsZS5jb20vY2F0Lmpw
ZWcKLWh0dHA6Ly9leGFtcGxlLmNvbS9mb28/YmFyPWh0dHA6Ly9vdGhlcmV4YW1wbGUuY29tCi1k
YXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVJQUFBQkNBZ01B
QUFDZU91aDdBQUFBQkdkQlRVRUFBSy9JTndXSzZRQUFBQWxRVEZSRi8vLy9BQUFBLy8vL2Z1K1BU
d0FBQUFGMFVrNVRBRURtMkdZQUFBQ0hTVVJCVkRqTHhkTGJEWUFnREFWUUdFTG4wUjNvRUhZZjJL
R2RVcXRFNDZPRlJDUDNveVRuZzF4Q25Xc2FENUpSUnRDa1EyWW1rQmtIUlhxV0pCbjBqMFRJQ2Jy
c1dWb1doUlNoQ2RjR3laQ3RIeE1hVW5WUFJaOUtTYm1CSmRzWDJ2SlZud3FSRDBSYjRycHpnSWJF
L0FJNU5UbldBTXZ5NWwwZFhyZnVMaDVPQ2U1Qm1tWUdYaFRVeGxRNXhKOEFBQUFBU1VWT1JLNUNZ
SUk9Ci1qYXZhc2NyaXB0OmFsZXJ0KCdmb28nKTsKLWJsb2I6aHR0cCUzQS8vZXhhbXBsZS5jb20v
ZjkxYjdiMDAtMDAtMDAwMC0wMDAwLTNiN2M4NzA1NWQ3YQotYmxvYjpodHRwJTNBLy9leGFtcGxl
LmNvbS9mOTFiN2IwMC0wMC0wMDAwLTAwMDAtM2I3Yzg3MDU1ZDdhCi1MaW5rIGZvciBhIFVSSSBm
cm9tIENTUyBkb2N1bWVudDoKLXdlYmtpdC1odG1sLXJlc291cmNlLWxpbmsgaW5zcGVjdG9yL3N0
eWxlcy9yZXNvdXJjZXMvZnJvbWNzcy5wbmcKLUxpbmsgZm9yIGEgVVJJIGZyb20gaWZyYW1lIGlu
bGluZSBzdHlsZXNoZWV0OgotaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvaWZyYW1lZC5wbmcK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXJsLWxp
bmtpZnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVybC1saW5r
aWZ5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmZGYyZGMuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXJsLWxpbmtpZnkuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDEwMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvc3R5bGVzLXVybC1saW5raWZ5LmNzcyI+
Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBmdW5jdGlvbiBjb21wbGV0ZVVSTChiYXNlVVJMLCBocmVmKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoV2ViSW5zcGVjdG9yLlBhcnNlZFVSTC5jb21wbGV0
ZVVSTChiYXNlVVJMLCBocmVmKSk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlVSTHMgY29tcGxldGVkOiIpOwotICAgIGNvbXBsZXRlVVJMKCJodHRwOi8vZXhhbXBsZS5j
b20iLCAiLyIpOwotICAgIGNvbXBsZXRlVVJMKCJodHRwOi8vZXhhbXBsZS5jb20iLCAibW9vIik7
Ci0gICAgY29tcGxldGVVUkwoImh0dHA6Ly9leGFtcGxlLmNvbS8iLCAiaHR0cHM6Ly9zZWN1cmUu
Y29tL21vbyIpOwotICAgIGNvbXBsZXRlVVJMKCJodHRwczovL2V4YW1wbGUuY29tL2ZvbyIsICIv
L3NlY3VyZS5jb20vbW9vIik7Ci0gICAgY29tcGxldGVVUkwoImh0dHA6Ly9leGFtcGxlLmNvbS9m
b28vem9vIiwgIi9tb28iKTsKLSAgICBjb21wbGV0ZVVSTCgiaHR0cDovL2V4YW1wbGUuY29tL2Zv
by96b28vIiwgIm1vbyIpOwotICAgIGNvbXBsZXRlVVJMKCJodHRwOi8vZXhhbXBsZS5jb20vZm9v
L3pvbyIsICJib28vbW9vIik7Ci0gICAgY29tcGxldGVVUkwoImh0dHA6Ly9leGFtcGxlLmNvbS9m
b28iLCAibW9vIik7Ci0gICAgY29tcGxldGVVUkwoImh0dHA6Ly9leGFtcGxlLmNvbS9mb28iLCAi
P2E9YiIpOwotICAgIGNvbXBsZXRlVVJMKCJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiwgIj9hPS9i
Iik7Ci0gICAgY29tcGxldGVVUkwoImh0dHA6Ly9leGFtcGxlLmNvbS8/Yz0vZCNhbmNob3IiLCAi
P2E9L2IiKTsKLSAgICBjb21wbGV0ZVVSTCgiaHR0cDovL2V4YW1wbGUuY29tL2Zvbz9jPWQiLCAi
P2E9YiIpOwotICAgIGNvbXBsZXRlVVJMKCJodHRwOi8vZXhhbXBsZS5jb20vZm9vP2M9ZCNhbmNo
b3IiLCAiP2E9L2IiKTsKLSAgICBjb21wbGV0ZVVSTCgiaHR0cDovL2V4YW1wbGUuY29tL2Zvbz9j
PS9kL2UiLCAiP2E9YiIpOwotICAgIGNvbXBsZXRlVVJMKCJodHRwOi8vZXhhbXBsZS5jb20vZm9v
P2M9L2QvZSIsICJjYXQuanBlZyIpOwotICAgIGNvbXBsZXRlVVJMKCJodHRwOi8vZXhhbXBsZS5j
b20vZm9vI2FuY2hvciIsICJjYXQuanBlZyIpOwotICAgIGNvbXBsZXRlVVJMKCJodHRwOi8vZXhh
bXBsZS5jb20vIiwgIi9mb28/YmFyPWh0dHA6Ly9vdGhlcmV4YW1wbGUuY29tIik7Ci0KLSAgICBj
b25zdCBkYXRhVVJMID0gImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1Vo
RVVnQUFBRUlBQUFCQ0FnTUFBQUNlT3VoN0FBQUFCR2RCVFVFQUFLL0lOd1dLNlFBQUFBbFFURlJG
Ly8vL0FBQUEvLy8vZnUrUFR3QUFBQUYwVWs1VEFFRG0yR1lBQUFDSFNVUkJWRGpMeGRMYkRZQWdE
QVZRR0VMbjBSM29FSFlmMktHZFVxdEU0Nk9GUkNQM295VG5nMXhDbldzYUQ1SlJSdENrUTJZbWtC
a0hSWHFXSkJuMGowVElDYnJzV1ZvV2hSU2hDZGNHeVpDdEh4TWFVblZQUlo5S1NibUJKZHNYMnZK
Vm53cVJEMFJiNHJwemdJYkUvQUk1TlRuV0FNdnk1bDBkWHJmdUxoNU9DZTVCbW1ZR1hoVFV4bFE1
eEo4QUFBQUFTVVZPUks1Q1lJST0iOwotICAgIGNvbnN0IGJsb2JVUkwgPSAiYmxvYjpodHRwJTNB
Ly9leGFtcGxlLmNvbS9mOTFiN2IwMC0wMC0wMDAwLTAwMDAtM2I3Yzg3MDU1ZDdhIjsKLSAgICBj
b21wbGV0ZVVSTCgiaHR0cHM6Ly9leGFtcGxlLmNvbS9mb28iLCBkYXRhVVJMKTsKLSAgICBjb21w
bGV0ZVVSTCgiaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIsICJqYXZhc2NyaXB0OmFsZXJ0KCdmb28n
KTsiKTsKLSAgICBjb21wbGV0ZVVSTCgiaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIsIGJsb2JVUkwp
OwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KFdlYkluc3BlY3Rvci5QYXJzZWRVUkwuY29t
cGxldGVVUkwoYmxvYlVSTCkpOwotCi0gICAgZnVuY3Rpb24gZHVtcEhyZWYoZHVtcExpbmtDbGFz
cykKLSAgICB7Ci0gICAgICAgIHZhciBocmVmTm9kZTsKLSAgICAgICAgdmFyIHZhbHVlQ2hpbGRO
b2RlcyA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLnN0eWxlcy5z
ZWN0aW9uc1swXVsyXS5wcm9wZXJ0aWVzVHJlZU91dGxpbmUuY2hpbGRyZW5bMF0udmFsdWVFbGVt
ZW50LmNoaWxkTm9kZXM7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVDaGlsZE5v
ZGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAodmFsdWVDaGlsZE5vZGVzW2ldLmhy
ZWYpIHsKLSAgICAgICAgICAgICAgICBocmVmTm9kZSA9IHZhbHVlQ2hpbGROb2Rlc1tpXTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBp
ZiAoIWhyZWZOb2RlKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiaHJl
ZiBwcm9wZXJ0eSBub3QgZm91bmQiKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
Ci0gICAgICAgIHZhciBzdHlsZUNsYXNzID0gIiI7Ci0gICAgICAgIGlmIChkdW1wTGlua0NsYXNz
KSB7Ci0gICAgICAgICAgICBpZiAoaHJlZk5vZGUuaGFzU3R5bGVDbGFzcygid2Via2l0LWh0bWwt
cmVzb3VyY2UtbGluayIpKQotICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3MgKz0gIndlYmtpdC1o
dG1sLXJlc291cmNlLWxpbmsgIjsKLSAgICAgICAgICAgIGlmIChocmVmTm9kZS5oYXNTdHlsZUNs
YXNzKCJ3ZWJraXQtaHRtbC1leHRlcm5hbC1saW5rIikpCi0gICAgICAgICAgICAgICAgc3R5bGVD
bGFzcyArPSAid2Via2l0LWh0bWwtZXh0ZXJuYWwtbGluayAiOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdmFyIGhyZWYgPSBocmVmTm9kZS5ocmVmOwotICAgICAgICB2YXIgc2VnbWVudHMgPSBocmVm
LnNwbGl0KCIvIik7Ci0gICAgICAgIHZhciBvdXRwdXQgPSBbXTsKLSAgICAgICAgZm9yICh2YXIg
aSA9IHNlZ21lbnRzLmxlbmd0aCAtIDEsIG1pblNlZ21lbnQgPSBpIC0gMzsgaSA+PSAwICYmIGkg
Pj0gbWluU2VnbWVudDsgLS1pKQotICAgICAgICAgICAgb3V0cHV0LnVuc2hpZnQoc2VnbWVudHNb
aV0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHN0eWxlQ2xhc3MgKyBvdXRw
dXQuam9pbigiLyIpKTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRX
YWl0Rm9yU3R5bGVzKCJsb2NhbCIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJMaW5rIGZvciBhIFVSSSBmcm9t
IENTUyBkb2N1bWVudDoiKTsKLSAgICAgICAgZHVtcEhyZWYodHJ1ZSk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImlmcmFtZWQiLCBzdGVwMik7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkxpbmsgZm9yIGEgVVJJIGZyb20gaWZyYW1lIGlubGluZSBzdHlsZXNoZWV0
OiIpOwotICAgICAgICBkdW1wSHJlZigpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
bkFmdGVySWZyYW1lSXNMb2FkZWQoKSI+Ci08cD4KLVRlc3RzIHRoYXQgVVJMcyBhcmUgbGlua2Vk
IHRvIGFuZCBjb21wbGV0ZWQgY29ycmVjdGx5LiBCdWdzIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNjYzIj41MTY2MzwvYT4sIDxhIGhyZWY9Imh0dHA6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMTcxIj41MzE3MTwvYT4sIDxhIGhy
ZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyNjQzIj42MjY0Mzwv
YT4sIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzcz
Ij43MjM3MzwvYT4sIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc5OTA1Ij43OTkwNTwvYT4KLTwvcD4KLTxkaXYgaWQ9ImxvY2FsIj48L2Rpdj4KLTxpZnJh
bWUgc3JjPSJyZXNvdXJjZXMvc3R5bGVzLXVybC1saW5raWZ5LWlmcmFtZS5odG1sIj48L2lmcmFt
ZT4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9zdmctc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9zdmctc3R5bGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5M2I4OWEwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3Zn
LXN0eWxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRlc3Rz
IHRoYXQgc3ZnOnN0eWxlIGRvZXMgbm90IGNyYXNoIHdoZW4gdGhlIHJlbGF0ZWQgZWxlbWVudCBp
cyBpbnNwZWN0ZWQuCi0KLSBNYWluIHN0eWxlOgotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUg
IHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0g
Ci1tZWRpYT0iYWxsIiAoc3ZnLXN0eWxlLnhodG1sKQotcmVjdCAgeyAoc3ZnLXN0eWxlLnhodG1s
OjM4KQotZmlsbDogcmVkOwotCi1bZXhwYW5kZWRdIAotKiAgeyAodXNlciBhZ2VudCBzdHlsZXNo
ZWV0KQotLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luLXg6IDBweDsKLS13ZWJraXQtdHJhbnNmb3Jt
LW9yaWdpbi15OiAwcHg7Ci0td2Via2l0LXRyYW5zZm9ybS1vcmlnaW4tejogaW5pdGlhbDsKLQot
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3ZnLXN0eWxlLnho
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdmctc3R5bGUueGh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2NTczNDMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9zdmctc3R5bGUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
NiArMCwwIEBACi08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08
aGVhZD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoIm1h
aW4iLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiTWFpbiBzdHlsZToiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHN2ZzpzdHls
ZSBkb2VzIG5vdCBjcmFzaCB3aGVuIHRoZSByZWxhdGVkIGVsZW1lbnQgaXMgaW5zcGVjdGVkLgot
PC9wPgotCi08c3ZnOnN2ZyB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2
ZXJzaW9uPSIxLjEiPgotICAgPHN2ZzpkZWZzPgotICAgICAgPHN2ZzpzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyI+Ci0gICAgICAgICByZWN0IHtmaWxsOiByZWR9Ci0gICAgICA8L3N2ZzpzdHlsZT4KLSAg
IDwvc3ZnOmRlZnM+Ci0gICA8c3ZnOnJlY3QgaWQ9Im1haW4iIHdpZHRoPSIxMDAiIGhlaWdodD0i
MTAwIi8+Ci08L3N2Zzpzdmc+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLW5ldy1ydWxlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdW5kby1hZGQtbmV3LXJ1bGUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDdhNjM4Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdW5kby1hZGQtbmV3LXJ1bGUtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotVGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcg
cnVsZSBjYW4gYmUgdW5kb25lLgotCi1UZXh0Ci1BZnRlciBhZGRpbmcgbmV3IHJ1bGU6Ci1bZXhw
YW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotZm9udC1zaXplOiAxMnB4OwotCi09PT09PT09
PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWRpdi5mb28gIHsgKGlu
c3BlY3Rvci1zdHlsZXNoZWV0OjEpCi0KLVtleHBhbmRlZF0gCi1kaXYuZm9vICB7IChpbnNwZWN0
b3Itc3R5bGVzaGVldDoxKQotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxl
c2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi09PT09PSBTdHlsZSBzaGVldCB0ZXh0OiA9PT09
PQotZGl2LmZvbyB7fQotZGl2LmZvbyB7fQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LUFmdGVyIHVuZG86Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotY29sb3I6IHJl
ZDsKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1k
aXYuZm9vICB7IChpbnNwZWN0b3Itc3R5bGVzaGVldDoxKQotCi1bZXhwYW5kZWRdIAotZGl2ICB7
ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi09PT09PSBTdHls
ZSBzaGVldCB0ZXh0OiA9PT09PQotZGl2LmZvbyB7fQotCi09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotQWZ0ZXIgcmVkbzoKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi1m
b250LXNpemU6IDEycHg7Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1b
ZXhwYW5kZWRdIAotZGl2LmZvbyAgeyAoaW5zcGVjdG9yLXN0eWxlc2hlZXQ6MSkKLQotW2V4cGFu
ZGVkXSAKLWRpdi5mb28gIHsgKGluc3BlY3Rvci1zdHlsZXNoZWV0OjEpCi0KLVtleHBhbmRlZF0g
Ci1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLT09
PT09IFN0eWxlIHNoZWV0IHRleHQ6ID09PT09Ci1kaXYuZm9vIHt9Ci0KLWRpdi5mb28ge30KLT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvdW5kby1hZGQtbmV3LXJ1bGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvdW5kby1hZGQtbmV3LXJ1bGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNmYzZmU0Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3VuZG8tYWRkLW5ldy1ydWxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7
Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVk
Iiwgc3RlcDEpOwotCi0gICAgdmFyIHRyZWVFbGVtZW50OwotCi0gICAgZnVuY3Rpb24gc3RlcDEo
KQotICAgIHsKLSAgICAgICAgYWRkTmV3UnVsZUFuZFNlbGVjdE5vZGUoIm90aGVyIiwgc3RlcDIp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIGFkZE5ld1J1
bGVBbmRTZWxlY3ROb2RlKCJpbnNwZWN0ZWQiLCBzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVy
IGFkZGluZyBuZXcgcnVsZToiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRF
bGVtZW50U3R5bGVzKHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgcHJpbnRTdHlsZVNoZWV0
QW5kQ2FsbChzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDQoKQotICAgIHsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnVuZG8oKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygib3RoZXIiLCBzdGVwNSk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gc3RlcDUoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkFmdGVyIHVuZG86Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxl
bWVudFN0eWxlcyh0cnVlLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAgIHByaW50U3R5bGVTaGVldEFu
ZENhbGwoc3RlcDYpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA2KCkKLSAgICB7Ci0gICAg
ICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZWRvKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
c2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHN0ZXA3KTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBzdGVwNygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiQWZ0ZXIgcmVkbzoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRF
bGVtZW50U3R5bGVzKHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgcHJpbnRTdHlsZVNoZWV0
QW5kQ2FsbChzdGVwOCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDgoKQotICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBhZGROZXdSdWxlQW5kU2VsZWN0Tm9kZShub2RlSWQsIG5leHQpCi0gICAgewotICAgICAgICAv
LyBDbGljayAiQWRkIG5ldyBydWxlIi4KLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImFkZC1zdHlsZS1idXR0b24tdGVzdC1pZCIpLmNsaWNrKCk7Ci0gICAgICAgIHZhciBzZWN0aW9u
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMuc3R5bGVzLnNlY3Rp
b25zWzBdWzJdOwotICAgICAgICBzZWN0aW9uLl9zZWxlY3RvckVsZW1lbnQudGV4dENvbnRlbnQg
PSAiZGl2LmZvbyI7Ci0gICAgICAgIHNlY3Rpb24uX3NlbGVjdG9yRWxlbWVudC5kaXNwYXRjaEV2
ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKG5vZGVJZCwgbmV4dCk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gcHJpbnRTdHlsZVNoZWV0QW5kQ2FsbChuZXh0KQotICAgIHsKLSAg
ICAgICAgdmFyIHNlY3Rpb24gPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQ
YW5lcy5zdHlsZXMuc2VjdGlvbnNbMF1bMl07Ci0gICAgICAgIHZhciBpZCA9IHNlY3Rpb24uc3R5
bGVSdWxlLnN0eWxlLmlkLnN0eWxlU2hlZXRJZDsKLSAgICAgICAgQ1NTQWdlbnQuZ2V0U3R5bGVT
aGVldFRleHQoaWQsIGNhbGxiYWNrKTsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2socmVzdWx0
LCBzdHlsZVNoZWV0VGV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIj09PT09IFN0eWxlIHNoZWV0IHRleHQ6ID09PT09Iik7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdChzdHlsZVNoZWV0VGV4dCk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKLSAg
ICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBhZGRpbmcg
YSBuZXcgcnVsZSBjYW4gYmUgdW5kb25lLgotPC9wPgotCi08ZGl2IGNsYXNzPSJmb28iIGlkPSJp
bnNwZWN0ZWQiIHN0eWxlPSJmb250LXNpemU6IDEycHgiPlRleHQ8L2Rpdj4KLTxkaXYgY2xhc3M9
ImZvbyIgaWQ9Im90aGVyIiBzdHlsZT0iY29sb3I6cmVkIj48L2Rpdj4KLQotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1w
cm9wZXJ0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8t
YWRkLXByb3BlcnR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDNlYzc4OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8t
YWRkLXByb3BlcnR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE5MiArMCwwIEBA
Ci1UZXN0cyB0aGF0IGFkZGluZyBhIHByb3BlcnR5IGlzIHVuZG9uZSBwcm9wZXJseS4KLQotPT09
IExhc3QgcHJvcGVydHkgPT09Ci0oSW5pdGlhbCB2YWx1ZSkKLVtleHBhbmRlZF0gCi1lbGVtZW50
LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhw
YW5kZWRdIAotLmNvbnRhaW5lciAgeyAodW5kby1hZGQtcHJvcGVydHkuaHRtbDo3KQotZm9udC13
ZWlnaHQ6IGJvbGQ7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVl
dCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLShBZnRlciBhZGRpbmcgcHJvcGVydHkpCi1bZXhwYW5k
ZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9
PT09PT09PQotW2V4cGFuZGVkXSAKLS5jb250YWluZXIgIHsgKHVuZG8tYWRkLXByb3BlcnR5Lmh0
bWw6NykKLWZvbnQtd2VpZ2h0OiBib2xkOwotbWFyZ2luLWxlZnQ6IDJweDsKLQotW2V4cGFuZGVk
XSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQot
KEFmdGVyIHVuZG8pCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09
PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLS5jb250YWluZXIgIHsg
KHVuZG8tYWRkLXByb3BlcnR5Lmh0bWw6NykKLWZvbnQtd2VpZ2h0OiBib2xkOwotCi1bZXhwYW5k
ZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQot
Ci0oQWZ0ZXIgcmVkbykKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09
PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotLmNvbnRhaW5lciAg
eyAodW5kby1hZGQtcHJvcGVydHkuaHRtbDo3KQotZm9udC13ZWlnaHQ6IGJvbGQ7Ci1tYXJnaW4t
bGVmdDogMnB4OwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQp
Ci1kaXNwbGF5OiBibG9jazsKLQotCi09PT0gRmlyc3QgcHJvcGVydHkgPT09Ci0oSW5pdGlhbCB2
YWx1ZSkKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNo
ZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotLmNvbnRhaW5lciAgeyAodW5kby1h
ZGQtcHJvcGVydHkuaHRtbDo3KQotZm9udC13ZWlnaHQ6IGJvbGQ7Ci1tYXJnaW4tbGVmdDogMnB4
OwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5
OiBibG9jazsKLQotCi0oQWZ0ZXIgYWRkaW5nIHByb3BlcnR5KQotW2V4cGFuZGVkXSAKLWVsZW1l
bnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtl
eHBhbmRlZF0gCi0uY29udGFpbmVyICB7ICh1bmRvLWFkZC1wcm9wZXJ0eS5odG1sOjcpCi1tYXJn
aW4tdG9wOiAwcHg7Ci1mb250LXdlaWdodDogYm9sZDsKLW1hcmdpbi1sZWZ0OiAycHg7Ci0KLVtl
eHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2Nr
OwotCi0KLShBZnRlciB1bmRvKQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQot
PT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0uY29udGFp
bmVyICB7ICh1bmRvLWFkZC1wcm9wZXJ0eS5odG1sOjcpCi1mb250LXdlaWdodDogYm9sZDsKLW1h
cmdpbi1sZWZ0OiAycHg7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVz
aGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLShBZnRlciByZWRvKQotW2V4cGFuZGVkXSAKLWVs
ZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0K
LVtleHBhbmRlZF0gCi0uY29udGFpbmVyICB7ICh1bmRvLWFkZC1wcm9wZXJ0eS5odG1sOjcpCi1t
YXJnaW4tdG9wOiAwcHg7Ci1mb250LXdlaWdodDogYm9sZDsKLW1hcmdpbi1sZWZ0OiAycHg7Ci0K
LVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJs
b2NrOwotCi0KLT09PSBNaWRkbGUgcHJvcGVydHkgPT09Ci0oSW5pdGlhbCB2YWx1ZSkKLVtleHBh
bmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVz
ID09PT09PT09Ci1bZXhwYW5kZWRdIAotLmNvbnRhaW5lciAgeyAodW5kby1hZGQtcHJvcGVydHku
aHRtbDo3KQotbWFyZ2luLXRvcDogMHB4OwotZm9udC13ZWlnaHQ6IGJvbGQ7Ci1tYXJnaW4tbGVm
dDogMnB4OwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1k
aXNwbGF5OiBibG9jazsKLQotCi0oQWZ0ZXIgYWRkaW5nIHByb3BlcnR5KQotW2V4cGFuZGVkXSAK
LWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09
PT0KLVtleHBhbmRlZF0gCi0uY29udGFpbmVyICB7ICh1bmRvLWFkZC1wcm9wZXJ0eS5odG1sOjcp
Ci1tYXJnaW4tdG9wOiAwcHg7Ci1tYXJnaW4tcmlnaHQ6IDFweDsKLWZvbnQtd2VpZ2h0OiBib2xk
OwotbWFyZ2luLWxlZnQ6IDJweDsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBz
dHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotKEFmdGVyIHVuZG8pCi1bZXhwYW5kZWRd
IAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09
PT09PQotW2V4cGFuZGVkXSAKLS5jb250YWluZXIgIHsgKHVuZG8tYWRkLXByb3BlcnR5Lmh0bWw6
NykKLW1hcmdpbi10b3A6IDBweDsKLWZvbnQtd2VpZ2h0OiBib2xkOwotbWFyZ2luLWxlZnQ6IDJw
eDsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxh
eTogYmxvY2s7Ci0KLQotKEFmdGVyIHJlZG8pCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAg
eyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAK
LS5jb250YWluZXIgIHsgKHVuZG8tYWRkLXByb3BlcnR5Lmh0bWw6NykKLW1hcmdpbi10b3A6IDBw
eDsKLW1hcmdpbi1yaWdodDogMXB4OwotZm9udC13ZWlnaHQ6IGJvbGQ7Ci1tYXJnaW4tbGVmdDog
MnB4OwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNw
bGF5OiBibG9jazsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvdW5kby1hZGQtcHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
dW5kby1hZGQtcHJvcGVydHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGQx
ZDMxYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRk
LXByb3BlcnR5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLQotPHN0eWxlPgotLmNvbnRhaW5lciB7Ci0g
IGZvbnQtd2VpZ2h0OiBib2xkCi19Ci08L3N0eWxlPgotCi08c2NyaXB0PgotCi1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJj
b250YWluZXIiLCB0ZXN0QXBwZW5kUHJvcGVydHkuYmluZChudWxsLCB0ZXN0SW5zZXJ0QmVnaW4p
KTsKLQotICAgIGZ1bmN0aW9uIHRlc3RBcHBlbmRQcm9wZXJ0eSgpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IExhc3QgcHJvcGVydHkgPT09Iik7Ci0gICAgICAg
IHRlc3RBZGRQcm9wZXJ0eSgibWFyZ2luLWxlZnQ6IDJweCIsIHVuZGVmaW5lZCwgdGVzdEluc2Vy
dEJlZ2luKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0SW5zZXJ0QmVnaW4oKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBGaXJzdCBwcm9wZXJ0eSA9PT0i
KTsKLSAgICAgICAgdGVzdEFkZFByb3BlcnR5KCJtYXJnaW4tdG9wOiAwcHgiLCAwLCB0ZXN0SW5z
ZXJ0TWlkZGxlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0SW5zZXJ0TWlkZGxlKCkKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gTWlkZGxlIHByb3BlcnR5
ID09PSIpOwotICAgICAgICB0ZXN0QWRkUHJvcGVydHkoIm1hcmdpbi1yaWdodDogMXB4IiwgMSwg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QuYmluZChJbnNwZWN0b3JUZXN0KSk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gdGVzdEFkZFByb3BlcnR5KHByb3BlcnR5VGV4dCwgaW5kZXgsIGNhbGxi
YWNrKQotICAgIHsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiKEluaXRpYWwg
dmFsdWUpIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxl
cyh0cnVlKTsKLQotICAgICAgICB2YXIgdHJlZUl0ZW0gPSBJbnNwZWN0b3JUZXN0LmdldE1hdGNo
ZWRTdHlsZVByb3BlcnR5VHJlZUl0ZW0oImZvbnQtd2VpZ2h0Iik7Ci0gICAgICAgIHZhciB0cmVl
RWxlbWVudCA9IHRyZWVJdGVtLnNlY3Rpb24oKS5hZGROZXdCbGFua1Byb3BlcnR5KGluZGV4KTsK
LSAgICAgICAgdHJlZUVsZW1lbnQuYXBwbHlTdHlsZVRleHQocHJvcGVydHlUZXh0LCB0cnVlLCB0
cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJjb250YWluZXIiLCBz
dGVwMSk7Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiKEFmdGVyIGFkZGluZyBwcm9wZXJ0eSkiKTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsK
LQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnVuZG8oKTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoIm90aGVyIiwgc3RlcDIp
OwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiKEFmdGVyIHVuZG8pIik7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0KLSAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZWRvKCk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJjb250YWluZXIiLCBzdGVwMyk7
Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIoQWZ0ZXIgcmVkbykiKTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKLSAgICAg
ICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGFkZGluZyBh
IHByb3BlcnR5IGlzIHVuZG9uZSBwcm9wZXJseS4KLTwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVy
IiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLTxkaXYgaWQ9Im90aGVyIiBjbGFzcz0iY29udGFp
bmVyIj48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1ydWxlLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdW5kby1hZGQtcnVsZS1jcmFzaC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiZTA4YzMuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1ydWxlLWNyYXNoLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgdGhhdCB0aGUgaW5zcGVjdGVk
IHBhZ2UgZG9lcyBub3QgY3Jhc2ggYWZ0ZXIgdW5kb2luZyBhIG5ldyBydWxlIGFkZGl0aW9uLiBC
dWcgMTA0ODA2Ci1UaGUgdGVzdCBoYXMgcGFzc2VkIChubyBjcmFzaCkuCi0KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1ydWxlLWNyYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLXJ1bGUtY3Jhc2guaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWZmOGE2YS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLXJ1bGUtY3Jhc2guaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0uLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcz48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPS4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanM+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnNl
bGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwMSk7Ci0KLSAgICBmdW5j
dGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBhZGROZXdSdWxlQW5kU2VsZWN0Tm9kZSgib3Ro
ZXIiLCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAg
ICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnVuZG8oKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC53
YWl0Rm9yU3R5bGVzKCJvdGhlciIsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGFkZE5ld1J1bGVBbmRTZWxlY3ROb2RlKG5vZGVJZCwgbmV4dCkKLSAg
ICB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhZGQtc3R5bGUtYnV0dG9uLXRl
c3QtaWQiKS5jbGljaygpOwotICAgICAgICB2YXIgc2VjdGlvbiA9IFdlYkluc3BlY3Rvci5wYW5l
bHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLnN0eWxlcy5zZWN0aW9uc1swXVsyXTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcyhub2RlSWQsIG5leHQpOwot
ICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLVRlc3RzIHRoYXQgdGhlIGluc3BlY3RlZCBwYWdlIGRvZXMgbm90IGNyYXNoIGFmdGVyIHVu
ZG9pbmcgYSBuZXcgcnVsZSBhZGRpdGlvbi4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNDgwNiI+QnVnIDEwNDgwNjwvYT4KLQotPHA+VGhlIHRlc3Qg
aGFzIHBhc3NlZCAobm8gY3Jhc2gpLjwvcD4KLTxkaXYgaWQ9Imluc3BlY3RlZCI+PGRpdiBpZD0i
b3RoZXIiIC8+PC9kaXY+Ci08c3R5bGU+Ci1ALXdlYmtpdC1rZXlmcmFtZXMgY2ZwdWxzZTEgeyAw
JSB7IG9wYWNpdHk6IDAuMTsgIH0gfQotLmMxIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogY2Zw
dWxzZTE7ICB9Ci08L3N0eWxlPgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy91bmRvLWNoYW5nZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tY2hhbmdlLXByb3BlcnR5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTcyMGQ2OC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tY2hhbmdlLXByb3BlcnR5LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLVRlc3RzIHRoYXQgY2hhbmdpbmcgYSBw
cm9wZXJ0eSBpcyB1bmRvbmUgcHJvcGVybHkuCi0KLUluaXRpYWwgdmFsdWUKLVtleHBhbmRlZF0g
Ci1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09
PT09Ci1bZXhwYW5kZWRdIAotLmNvbnRhaW5lciAgeyAodW5kby1jaGFuZ2UtcHJvcGVydHkuaHRt
bDo3KQotZm9udC13ZWlnaHQ6IGJvbGQ7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdl
bnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLUFmdGVyIGNoYW5naW5nIHByb3Bl
cnR5Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVk
IENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLS5jb250YWluZXIgIHsgKHVuZG8tY2hh
bmdlLXByb3BlcnR5Lmh0bWw6NykKLWZvbnQtd2VpZ2h0OiBub3JtYWw7Ci0KLVtleHBhbmRlZF0g
Ci1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLUFm
dGVyIHVuZG8KLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1h
dGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotLmNvbnRhaW5lciAgeyAodW5k
by1jaGFuZ2UtcHJvcGVydHkuaHRtbDo3KQotZm9udC13ZWlnaHQ6IGJvbGQ7Ci0KLVtleHBhbmRl
ZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0K
LUFmdGVyIHJlZG8KLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09
IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotLmNvbnRhaW5lciAgeyAo
dW5kby1jaGFuZ2UtcHJvcGVydHkuaHRtbDo3KQotZm9udC13ZWlnaHQ6IG5vcm1hbDsKLQotW2V4
cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7
Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tY2hh
bmdlLXByb3BlcnR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tY2hh
bmdlLXByb3BlcnR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzNDEwMmYu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLWNoYW5nZS1w
cm9wZXJ0eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0KLTxzdHlsZT4KLS5jb250YWluZXIgewotICBm
b250LXdlaWdodDogYm9sZAotfQotPC9zdHlsZT4KLQotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVz
dCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiY29u
dGFpbmVyIiwgc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkluaXRpYWwgdmFsdWUiKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotCi0gICAgICAgIHZhciB0
cmVlSXRlbSA9IEluc3BlY3RvclRlc3QuZ2V0TWF0Y2hlZFN0eWxlUHJvcGVydHlUcmVlSXRlbSgi
Zm9udC13ZWlnaHQiKTsKLSAgICAgICAgdHJlZUl0ZW0uYXBwbHlTdHlsZVRleHQoImZvbnQtd2Vp
Z2h0OiBub3JtYWwiLCB0cnVlLCBmYWxzZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZv
clN0eWxlcygiY29udGFpbmVyIiwgc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAy
KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZnRlciBjaGFuZ2lu
ZyBwcm9wZXJ0eSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRT
dHlsZXModHJ1ZSk7Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnVuZG8oKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygib3RoZXIiLCBz
dGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIHVuZG8iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotCi0gICAgICAgIFdlYkluc3BlY3Rv
ci5kb21BZ2VudC5yZWRvKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdh
aXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIHN0ZXA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBz
dGVwNCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgcmVk
byIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1
ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMg
dGhhdCBjaGFuZ2luZyBhIHByb3BlcnR5IGlzIHVuZG9uZSBwcm9wZXJseS4KLTwvcD4KLQotPGRp
diBpZD0iY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLTxkaXYgaWQ9Im90aGVy
IiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLXByb3BlcnR5LXRvZ2dsZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tcHJvcGVydHktdG9n
Z2xlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNjYjdlNC4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tcHJvcGVydHkt
dG9nZ2xlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRlc3Rz
IHRoYXQgZGlzYWJsaW5nIHN0eWxlIGlzIHVuZG9uZSBwcm9wZXJseS4KLQotQmVmb3JlIGRpc2Fi
bGUKLWZvbnQtd2VpZ2h0OiBib2xkOwotQWZ0ZXIgZGlzYWJsZQotLy0tIG92ZXJsb2FkZWQgLS0v
IC8tLSBkaXNhYmxlZCAtLS8gZm9udC13ZWlnaHQ6IGJvbGQ7Ci1BZnRlciB1bmRvCi1mb250LXdl
aWdodDogYm9sZDsKLUFmdGVyIHJlZG8KLS8tLSBvdmVybG9hZGVkIC0tLyAvLS0gZGlzYWJsZWQg
LS0vIGZvbnQtd2VpZ2h0OiBib2xkOwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3VuZG8tcHJvcGVydHktdG9nZ2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3VuZG8tcHJvcGVydHktdG9nZ2xlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZlOGI2OWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy91bmRvLXByb3BlcnR5LXRvZ2dsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0
Rm9yU3R5bGVzKCJjb250YWluZXIiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMShub2Rl
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkJlZm9yZSBkaXNhYmxl
Iik7Ci0gICAgICAgIHZhciB0cmVlSXRlbSA9IEluc3BlY3RvclRlc3QuZ2V0RWxlbWVudFN0eWxl
UHJvcGVydHlUcmVlSXRlbSgiZm9udC13ZWlnaHQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5k
dW1wU3R5bGVUcmVlSXRlbSh0cmVlSXRlbSwgIiIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
dG9nZ2xlU3R5bGVQcm9wZXJ0eSgiZm9udC13ZWlnaHQiLCBmYWxzZSk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3Qud2FpdEZvclN0eWxlcygiY29udGFpbmVyIiwgc3RlcDIpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJBZnRlciBkaXNhYmxlIik7Ci0gICAgICAgIHZhciB0cmVlSXRlbSA9IEluc3BlY3RvclRlc3Qu
Z2V0RWxlbWVudFN0eWxlUHJvcGVydHlUcmVlSXRlbSgiZm9udC13ZWlnaHQiKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5kdW1wU3R5bGVUcmVlSXRlbSh0cmVlSXRlbSwgIiIpOwotCi0gICAgICAg
IFdlYkluc3BlY3Rvci5kb21BZ2VudC51bmRvKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud2Fp
dEZvclN0eWxlcygiY29udGFpbmVyIiwgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0
ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZnRlciB1bmRv
Iik7Ci0gICAgICAgIHZhciB0cmVlSXRlbSA9IEluc3BlY3RvclRlc3QuZ2V0RWxlbWVudFN0eWxl
UHJvcGVydHlUcmVlSXRlbSgiZm9udC13ZWlnaHQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5k
dW1wU3R5bGVUcmVlSXRlbSh0cmVlSXRlbSwgIiIpOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5k
b21BZ2VudC5yZWRvKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvclN0eWxlcygiY29u
dGFpbmVyIiwgc3RlcDQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZnRlciByZWRvIik7Ci0gICAgICAgIHZh
ciB0cmVlSXRlbSA9IEluc3BlY3RvclRlc3QuZ2V0RWxlbWVudFN0eWxlUHJvcGVydHlUcmVlSXRl
bSgiZm9udC13ZWlnaHQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU3R5bGVUcmVlSXRl
bSh0cmVlSXRlbSwgIiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Ci08cD4KLVRlc3RzIHRoYXQgZGlzYWJsaW5nIHN0eWxlIGlzIHVuZG9uZSBwcm9wZXJseS4KLTwv
cD4KLQotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Ci08L2Rp
dj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy91bmRvLXNldC1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvdW5kby1zZXQtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiODcxOWIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLXNldC1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLVRlc3RzIHRoYXQgc2V0dGluZyBzZWxl
Y3RvciB0ZXh0IGNhbiBiZSB1bmRvbmUuCi0KLT09PSBCZWZvcmUgc2VsZWN0b3IgbW9kaWZpY2F0
aW9uID09PQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0
Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0jaW5zcGVjdGVkICB7ICh1bmRv
LXNldC1zZWxlY3Rvci10ZXh0Lmh0bWw6NCkKLWNvbG9yOiBncmVlbjsKLQotW2V4cGFuZGVkXSAK
LWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotPT09
IEFmdGVyIHNlbGVjdG9yIG1vZGlmaWNhdGlvbiA9PT0KLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0
eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5k
ZWRdIAotI2luc3BlY3RlZCwgI290aGVyICB7ICh1bmRvLXNldC1zZWxlY3Rvci10ZXh0Lmh0bWw6
NCkKLWNvbG9yOiBncmVlbjsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHls
ZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotPT09IEFmdGVyIHVuZG8gPT09Ci1bZXhwYW5k
ZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9
PT09PT09PQotW2V4cGFuZGVkXSAKLSNpbnNwZWN0ZWQgIHsgKHVuZG8tc2V0LXNlbGVjdG9yLXRl
eHQuaHRtbDo0KQotY29sb3I6IGdyZWVuOwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFn
ZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi09PT0gQWZ0ZXIgcmVkbyA9PT0K
LVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NT
IFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotI2luc3BlY3RlZCwgI290aGVyICB7ICh1bmRv
LXNldC1zZWxlY3Rvci10ZXh0Lmh0bWw6NCkKLWNvbG9yOiBncmVlbjsKLQotW2V4cGFuZGVkXSAK
LWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tc2V0LXNlbGVjdG9y
LXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdW5kby1zZXQtc2VsZWN0
b3ItdGV4dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTQyY2QxLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdW5kby1zZXQtc2VsZWN0b3It
dGV4dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzdHlsZT4KLSNpbnNwZWN0ZWQgewotICBjb2xvcjogZ3JlZW47Ci19Ci08L3N0eWxlPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5z
ZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwgc3RlcDEpOwotCi0gICAgZnVu
Y3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09
PSBCZWZvcmUgc2VsZWN0b3IgbW9kaWZpY2F0aW9uID09PSIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIHZhciBzZWN0aW9u
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMuc3R5bGVzLnNlY3Rp
b25zWzBdWzJdOwotICAgICAgICBzZWN0aW9uLnN0YXJ0RWRpdGluZ1NlbGVjdG9yKCk7Ci0gICAg
ICAgIHNlY3Rpb24uX3NlbGVjdG9yRWxlbWVudC50ZXh0Q29udGVudCA9ICIjaW5zcGVjdGVkLCAj
b3RoZXIiOwotICAgICAgICBzZWN0aW9uLl9zZWxlY3RvckVsZW1lbnQuZGlzcGF0Y2hFdmVudChJ
bnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJFbnRlciIpKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygib3RoZXIiLCBzdGVwMik7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIj09PSBBZnRlciBzZWxlY3RvciBtb2RpZmljYXRpb24gPT09Iik7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKLSAgICAgICAgV2Vi
SW5zcGVjdG9yLmRvbUFnZW50LnVuZG8oKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3RO
b2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9
PT0gQWZ0ZXIgdW5kbyA9PT0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRF
bGVtZW50U3R5bGVzKHRydWUpOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZWRv
KCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoIm90
aGVyIiwgc3RlcDQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gQWZ0ZXIgcmVkbyA9PT0iKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBzZXR0
aW5nIHNlbGVjdG9yIHRleHQgY2FuIGJlIHVuZG9uZS4KLTwvcD4KLQotPGRpdiBpZD0iaW5zcGVj
dGVkIj48L2Rpdj4KLTxkaXYgaWQ9Im90aGVyIj48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91cC1kb3duLW51bWVyaWNz
LWFuZC1jb2xvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91
cC1kb3duLW51bWVyaWNzLWFuZC1jb2xvcnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlMTE5Y2Y2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvdXAtZG93bi1udW1lcmljcy1hbmQtY29sb3JzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRlc3RzIHRoYXQgbnVtZXJpYyBhbmQgY29sb3IgdmFs
dWVzIGFyZSBpbmNyZW1lbnRlZC9kZWNyZW1lbnRlZCBjb3JyZWN0bHkuCi0KLUluc3BlY3QgTWUK
LQotCi1SdW5uaW5nOiB0ZXN0SW5pdAotCi1SdW5uaW5nOiB0ZXN0QWx0ZXJDb2xvcgotY29sb3I6
ICNFRTM7Ci0KLVJ1bm5pbmc6IHRlc3RBbHRlck51bWJlcgotb3BhY2l0eTogMTEuNjsKLQotUnVu
bmluZzogdGVzdEFsdGVyQmlnTnVtYmVyCi0td2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEwMDAw
MDAwMDAwMDAwMDAwNjU1MzdkZWcpOwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3VwLWRvd24tbnVtZXJpY3MtYW5kLWNvbG9ycy5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy91cC1kb3duLW51bWVyaWNzLWFuZC1jb2xvcnMuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZhOGZlOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3VwLWRvd24tbnVtZXJpY3MtYW5kLWNvbG9ycy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLQotPHN0eWxlPgotaDEg
ewotICAgIGNvbG9yOiAjRkYyOwotICAgIG9wYWNpdHk6IC41OwotICAgIC13ZWJraXQtdHJhbnNm
b3JtOiByb3RhdGUoMTAwMDAwMDAwMDAwMDAwMDA2NTUzN2RlZyk7Ci19Ci08L3N0eWxlPgotCi08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgdmFyIHNlY3Rpb247Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAg
ICAgIGZ1bmN0aW9uIHRlc3RJbml0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIGV4cGFuZFNl
Y3Rpb24pOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBleHBhbmRTZWN0aW9uKCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBzZWN0aW9uID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVt
ZW50cy5zaWRlYmFyUGFuZXMuc3R5bGVzLnNlY3Rpb25zWzBdWzJdOwotICAgICAgICAgICAgICAg
IHNlY3Rpb24uZXhwYW5kKCk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAg
fQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RBbHRlckNvbG9yKG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHZhciBjb2xvclRyZWVFbGVtZW50ID0gc2VjdGlvbi5maW5k
VHJlZUVsZW1lbnRXaXRoTmFtZSgiY29sb3IiKTsKLSAgICAgICAgICAgIGNvbG9yVHJlZUVsZW1l
bnQuc3RhcnRFZGl0aW5nKGNvbG9yVHJlZUVsZW1lbnQudmFsdWVFbGVtZW50KTsKLQotICAgICAg
ICAgICAgLy8gTW9zdCBzaWduaWZpY2FudCBkaWdpdCBpbmNyZW1lbnQgKCdGJykgc2hvdWxkIG5v
dCBjaGFuZ2UgdGhlIHZhbHVlLgotICAgICAgICAgICAgY29sb3JUcmVlRWxlbWVudC52YWx1ZUVs
ZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJQYWdlVXAi
LCBmYWxzZSwgZmFsc2UsIHRydWUpKTsKLSAgICAgICAgICAgIGNvbG9yVHJlZUVsZW1lbnQudmFs
dWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVzdC5jcmVhdGVLZXlFdmVudCgiVXAi
KSk7Ci0gICAgICAgICAgICBjb2xvclRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC5kaXNwYXRjaEV2
ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIlBhZ2VEb3duIikpOwotICAgICAgICAg
ICAgY29sb3JUcmVlRWxlbWVudC52YWx1ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUtleUV2ZW50KCJQYWdlRG93biIsIGZhbHNlLCBmYWxzZSwgdHJ1ZSkpOwotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoY29sb3JUcmVlRWxlbWVudC5saXN0SXRl
bUVsZW1lbnQudGV4dENvbnRlbnQpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAot
Ci0gICAgICAgIGZ1bmN0aW9uIHRlc3RBbHRlck51bWJlcihuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICB2YXIgb3BhY2l0eVRyZWVFbGVtZW50ID0gc2VjdGlvbi5maW5kVHJlZUVsZW1lbnRX
aXRoTmFtZSgib3BhY2l0eSIpOwotICAgICAgICAgICAgb3BhY2l0eVRyZWVFbGVtZW50LnN0YXJ0
RWRpdGluZyhvcGFjaXR5VHJlZUVsZW1lbnQudmFsdWVFbGVtZW50KTsKLSAgICAgICAgICAgIC8v
IDAuNSAoaW5pdGlhbCkKLSAgICAgICAgICAgIG9wYWNpdHlUcmVlRWxlbWVudC52YWx1ZUVsZW1l
bnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJVcCIsIGZhbHNl
LCB0cnVlLCBmYWxzZSkpOyAvLyBBbHQtVXAKLSAgICAgICAgICAgIC8vIDAuNgotICAgICAgICAg
ICAgb3BhY2l0eVRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3Rv
clRlc3QuY3JlYXRlS2V5RXZlbnQoIlVwIikpOwotICAgICAgICAgICAgLy8gMS42Ci0gICAgICAg
ICAgICBvcGFjaXR5VHJlZUVsZW1lbnQudmFsdWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVj
dG9yVGVzdC5jcmVhdGVLZXlFdmVudCgiUGFnZVVwIikpOwotICAgICAgICAgICAgLy8gMTEuNgot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQob3BhY2l0eVRyZWVFbGVtZW50Lmxp
c3RJdGVtRWxlbWVudC50ZXh0Q29udGVudCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEFsdGVyQmlnTnVtYmVyKG5leHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHNlY3Rpb24uZmluZFRyZWVFbGVtZW50
V2l0aE5hbWUoIi13ZWJraXQtdHJhbnNmb3JtIik7Ci0gICAgICAgICAgICB0cmVlRWxlbWVudC5z
dGFydEVkaXRpbmcodHJlZUVsZW1lbnQudmFsdWVFbGVtZW50KTsKLSAgICAgICAgICAgIHZhciBz
ZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICB2YXIgcmFuZ2Ug
PSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTsKLSAgICAgICAgICAgIHZhciBuZXdSYW5nZSA9IGRv
Y3VtZW50LmNyZWF0ZVJhbmdlKCk7Ci0gICAgICAgICAgICBuZXdSYW5nZS5zZXRTdGFydChyYW5n
ZS5zdGFydENvbnRhaW5lciwgMTApOwotICAgICAgICAgICAgbmV3UmFuZ2Uuc2V0RW5kKHJhbmdl
LnN0YXJ0Q29udGFpbmVyLCAxMCk7Ci0gICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFu
Z2VzKCk7Ci0gICAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UobmV3UmFuZ2UpOwotICAgICAg
ICAgICAgdHJlZUVsZW1lbnQudmFsdWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVz
dC5jcmVhdGVLZXlFdmVudCgiVXAiKSk7Ci0gICAgICAgICAgICB0cmVlRWxlbWVudC52YWx1ZUVs
ZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJQYWdlVXAi
KSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0cmVlRWxlbWVudC5saXN0
SXRlbUVsZW1lbnQudGV4dENvbnRlbnQpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9
Ci0gICAgXSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotPHA+Ci1UZXN0cyB0aGF0IG51bWVyaWMgYW5kIGNvbG9yIHZhbHVlcyBhcmUgaW5jcmVt
ZW50ZWQvZGVjcmVtZW50ZWQgY29ycmVjdGx5LgotPC9wPgotPGgxIGlkPSJpbnNwZWN0ZWQiPklu
c3BlY3QgTWU8L2gxPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy91cGRhdGVzLWR1cmluZy1kb20tdHJhdmVyc2FsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdXBkYXRlcy1kdXJpbmctZG9tLXRyYXZl
cnNhbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5OWZlYzIu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91cGRhdGVzLWR1cmlu
Zy1kb20tdHJhdmVyc2FsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBA
QAotVGVzdHMgdGhhdCBzdHlsZSB1cGRhdGVzIGFyZSB0aHJvdHRsZWQgZHVyaW5nIERPTSB0cmF2
ZXJzYWwuIEJ1ZyA3NzY0My4KLQotT0s6IHVwZGF0ZXMgdGhyb3R0bGVkCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdXBkYXRlcy1kdXJpbmctZG9tLXRyYXZlcnNh
bC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91cGRhdGVzLWR1cmluZy1kb20t
dHJhdmVyc2FsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjNmZjMGYuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91cGRhdGVzLWR1cmluZy1k
b20tdHJhdmVyc2FsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIHZhciB1cGRhdGVDb3VudCA9IDA7Ci0gICAgdmFyIGtleWRvd25Db3VudCA9
IDU7Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLQotICAgIEluc3Bl
Y3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHNlbGVjdENh
bGxiYWNrKTsKLSAgICBmdW5jdGlvbiBzZWxlY3RDYWxsYmFjaygpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnBy
b3RvdHlwZSwgIl9pbm5lclJlYnVpbGRVcGRhdGUiLCBzbmlmZlVwZGF0ZSwgdHJ1ZSk7Ci0gICAg
ICAgIHZhciBlbGVtZW50ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGlu
ZS5lbGVtZW50OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleWRvd25Db3VudDsgKytp
KQotICAgICAgICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRl
S2V5RXZlbnQoIlVwIikpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5n
RGlzcGF0Y2hlcyhjb21wbGV0ZUNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjb21w
bGV0ZUNhbGxiYWNrKCkKLSAgICB7Ci0gICAgICAgIGlmICh1cGRhdGVDb3VudCA+PSBrZXlkb3du
Q291bnQpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRVJST1I6IGdvdCAi
ICsgdXBkYXRlQ291bnQgKyAiIHVwZGF0ZXMgZm9yICIgKyBrZXlkb3duQ291bnQgKyAiIGNvbnNl
Y3V0aXZlIGtleWRvd25zIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJPSzogdXBkYXRlcyB0aHJvdHRsZWQiKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzbmlmZlVwZGF0ZSgp
Ci0gICAgewotICAgICAgICArK3VwZGF0ZUNvdW50OwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBzdHls
ZSB1cGRhdGVzIGFyZSB0aHJvdHRsZWQgZHVyaW5nIERPTSB0cmF2ZXJzYWwuIDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzY0MyI+QnVnIDc3NjQzPC9h
Pi4KLTwvcD4KLQotPGRpdj48L2Rpdj4KLTxkaXY+PC9kaXY+Ci08ZGl2PjwvZGl2PgotPGRpdj48
L2Rpdj4KLTxkaXY+PC9kaXY+Ci08ZGl2IGlkPSJpbnNwZWN0ZWQiPjwvZGl2PgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VwZGF0
ZXMtdGhyb3R0bGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
dXBkYXRlcy10aHJvdHRsZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1YzA4NmM4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
dXBkYXRlcy10aHJvdHRsZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCww
IEBACi1UZXN0cyB0aGF0IFN0eWxlcyBzaWRlYmFyIERPTSByZWJ1aWxkcyBhcmUgdGhyb3R0bGVk
IGR1cmluZyBjb25zZWN1dGl2ZSB1cGRhdGVzLiBCdWcgNzgwODYuCi0KLU9LOiByZWJ1aWxkcyB0
aHJvdHRsZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91cGRh
dGVzLXRocm90dGxlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91cGRhdGVz
LXRocm90dGxlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwY2E0YmYyLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdXBkYXRlcy10aHJvdHRs
ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgdmFyIFVQREFURV9DT1VOVCA9IDU7Ci0gICAgdmFyIHJlYnVpbGRDb3VudCA9IDA7Ci0gICAg
V2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLQotICAgIEluc3BlY3RvclRlc3Qu
c2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHNlbGVjdENhbGxiYWNrKTsK
LSAgICBmdW5jdGlvbiBzZWxlY3RDYWxsYmFjaygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZSwg
Il9pbm5lclJlYnVpbGRVcGRhdGUiLCBzbmlmZlJlYnVpbGQsIHRydWUpOwotICAgICAgICB2YXIg
c3R5bGVzUGFuZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLnN0
eWxlczsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBVUERBVEVfQ09VTlQ7ICsraSkKLSAg
ICAgICAgICAgIHN0eWxlc1BhbmUudXBkYXRlKHN0eWxlc1BhbmUubm9kZSwgdHJ1ZSk7Ci0KLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKGNvbXBsZXRlQ2Fs
bGJhY2spOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNvbXBsZXRlQ2FsbGJhY2soKQotICAgIHsK
LSAgICAgICAgaWYgKHJlYnVpbGRDb3VudCA+PSBVUERBVEVfQ09VTlQpCi0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRVJST1I6IGdvdCAiICsgcmVidWlsZENvdW50ICsgIiBy
ZWJ1aWxkcyBmb3IgIiArIFVQREFURV9DT1VOVCArICIgY29uc2VjdXRpdmUgdXBkYXRlcyIpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiT0s6IHJl
YnVpbGRzIHRocm90dGxlZCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNuaWZmUmVidWlsZCgpCi0gICAgewotICAgICAgICAr
K3JlYnVpbGRDb3VudDsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgU3R5bGVzIHNpZGViYXIgRE9NIHJl
YnVpbGRzIGFyZSB0aHJvdHRsZWQgZHVyaW5nIGNvbnNlY3V0aXZlIHVwZGF0ZXMuIDxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODA4NiI+QnVnIDc4MDg2
PC9hPi4KLTwvcD4KLQotPGRpdiBpZD0iaW5zcGVjdGVkIj48L2Rpdj4KLQotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91cmwtY29sb3It
c3dhdGNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdXJsLWNv
bG9yLXN3YXRjaC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYx
NWU0ZTQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91cmwtY29s
b3Itc3dhdGNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGVz
dHMgdGhhdCB1cmwoLi4uKSB3aXRoIHNwYWNlLWRlbGltaXRlZCBjb2xvciBuYW1lcyBhcyBmaWxl
bmFtZSBzZWdtZW50cyBkbyBub3QgY29udGFpbiBjb2xvciBzd2F0Y2hlcy4gQnVnIDEwNjc3MC4K
LQotdXJsKCJyZWQgZ3JlZW4gYmx1ZS5qcGciKQotW10gcmVkCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdXJsLWNvbG9yLXN3YXRjaC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy91cmwtY29sb3Itc3dhdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGFjODJmZGIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy91cmwtY29sb3Itc3dhdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotI2luc3BlY3RlZCB7Ci0gICAgYmFja2dy
b3VuZC1pbWFnZTogdXJsKCJyZWQgZ3JlZW4gYmx1ZS5qcGciKTsKLSAgICBjb2xvcjogcmVkOwot
fQotPC9zdHlsZT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVz
KCJpbnNwZWN0ZWQiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAg
ICAgICBkdW1wRE9NKEluc3BlY3RvclRlc3QuZ2V0TWF0Y2hlZFN0eWxlUHJvcGVydHlUcmVlSXRl
bSgiYmFja2dyb3VuZC1pbWFnZSIpKTsKLSAgICAgICAgZHVtcERPTShJbnNwZWN0b3JUZXN0Lmdl
dE1hdGNoZWRTdHlsZVByb3BlcnR5VHJlZUl0ZW0oImNvbG9yIikpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1bXBET00odHJl
ZUl0ZW0pCi0gICAgewotICAgICAgICB2YXIgZWxlbWVudCA9IHRyZWVJdGVtLmxpc3RJdGVtRWxl
bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ2YWx1ZSIpWzBdOwotICAgICAgICB2YXIgcmVz
dWx0ID0gW107Ci0gICAgICAgIGR1bXBOb2RlKGVsZW1lbnQsIHJlc3VsdCk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlc3VsdC5qb2luKCIiKSk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gZHVtcE5vZGUocGFyZW50Tm9kZSwgcmVzdWx0KQotICAgIHsKLSAgICAgICAgdmFyIGNo
aWxkTm9kZXMgPSBwYXJlbnROb2RlLmNoaWxkTm9kZXM7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgY2hpbGROb2Rlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIG5vZGUgPSBj
aGlsZE5vZGVzW2ldOwotICAgICAgICAgICAgc3dpdGNoIChub2RlLm5vZGVUeXBlKSB7Ci0gICAg
ICAgICAgICBjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgICAgIGlmIChub2Rl
Lmhhc1N0eWxlQ2xhc3MoInN3YXRjaCIpKQotICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVz
aCgiW10gIik7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBkdW1w
Tm9kZShub2RlLCByZXN1bHQpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSBOb2RlLlRFWFRfTk9ERToKLSAgICAgICAgICAgICAgICByZXN1bHQucHVzaChub2RlLm5v
ZGVWYWx1ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHVybCguLi4pIHdpdGggc3BhY2UtZGVsaW1pdGVkIGNvbG9y
IG5hbWVzIGFzIGZpbGVuYW1lIHNlZ21lbnRzIGRvIG5vdCBjb250YWluIGNvbG9yIHN3YXRjaGVz
LiBCdWcgPGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2
NzcwIj4xMDY3NzA8L2E+LgotPC9wPgotPGRpdiBpZD0iaW5zcGVjdGVkIj48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdmFy
aWFibGVzL2Nzcy12YXJpYWJsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy92YXJpYWJsZXMvY3NzLXZhcmlhYmxlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDRmMGU0ZDcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy92YXJpYWJsZXMvY3NzLXZhcmlhYmxlcy1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1UZXN0cyB0aGF0IHdlYmtpdCBjc3MgdmFyaWFibGVz
IGNhbiBiZSBsb2FkZWQgY29ycmVjdGx5LgotCi1UZXh0Ci1bZXhwYW5kZWRdIAotY29sb3I6IHJn
YigwLCAxMjgsIDApOwotICAgICNpbnNwZWN0ZWQgLSAtd2Via2l0LXZhcihhKSBjc3MtdmFyaWFi
bGVzLmh0bWw6NwotZGlzcGxheTogYmxvY2s7Ci0gICAgZGl2IC0gYmxvY2sgdXNlciBhZ2VudCBz
dHlsZXNoZWV0Ci0KLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09
IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotI2luc3BlY3RlZCAgeyAo
Y3NzLXZhcmlhYmxlcy5odG1sOjcpCi0td2Via2l0LXZhci1hOiBncmVlbjsKLWNvbG9yOiAtd2Vi
a2l0LXZhcihhKTsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0
KQotZGlzcGxheTogYmxvY2s7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3ZhcmlhYmxlcy9jc3MtdmFyaWFibGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3ZhcmlhYmxlcy9jc3MtdmFyaWFibGVzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDE4YTdhNWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy92YXJpYWJsZXMvY3NzLXZhcmlhYmxlcy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNDAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0Q1NTVmFyaWFibGVzRW5hYmxlZCh0cnVlKTsKLTwvc2NyaXB0PgotPHN0eWxlPgotI2lu
c3BlY3RlZCB7Ci0gICAgLXdlYmtpdC12YXItYTogZ3JlZW47Ci0gICAgY29sb3I6IC13ZWJraXQt
dmFyKGEpOwotfQotCi08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwo
ImVsZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxl
c1dpdGhDb21wdXRlZCgiaW5zcGVjdGVkIiwgZHVtcEFsbFN0eWxlcyk7Ci0KLSAgICBmdW5jdGlv
biBkdW1wQWxsU3R5bGVzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVj
dGVkRWxlbWVudFN0eWxlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLTxwPgotVGVzdHMgdGhhdCB3ZWJraXQgY3NzIHZhcmlhYmxlcyBjYW4gYmUgbG9hZGVk
IGNvcnJlY3RseS4KLTwvcD4KLQotPGRpdiBpZD0iaW5zcGVjdGVkIj5UZXh0PC9kaXY+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
dmVuZG9yLXByZWZpeGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvdmVuZG9yLXByZWZpeGVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYmFhZDBjMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3ZlbmRvci1wcmVmaXhlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCww
IEBACi1UZXN0cyB0aGF0IHByb3BlcnRpZXMgd2l0aCBXZWJLaXQgdmVuZG9yLXNwZWNpZmljIHBy
ZWZpeGVzICgiLWFwcGxlLSIsICItd2Via2l0LSIsIGFuZCAiLWtodG1sLSIpIGFyZSB0cmVhdGVk
IHRoZSBzYW1lIGFzIHRob3NlIHdpdGhvdXQgdGhlIHByZWZpeC4KLQotVGV4dAotW2V4cGFuZGVk
XSAKLWRpc3BsYXk6IGJsb2NrOwotICAgIGRpdiAtIGJsb2NrIHVzZXIgYWdlbnQgc3R5bGVzaGVl
dAotb3BhY2l0eTogMTsKLSAgICAjaW5zcGVjdGVkIC0gMSB2ZW5kb3ItcHJlZml4ZXMuaHRtbDo0
Ci0KLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQg
Q1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotI2luc3BlY3RlZCAgeyAodmVuZG9yLXBy
ZWZpeGVzLmh0bWw6MTEpCi0vLS0gb3ZlcmxvYWRlZCAtLS8gLWFwcGxlLW9wYWNpdHk6IDAuNzU7
Ci0KLVtleHBhbmRlZF0gCi0jaW5zcGVjdGVkICB7ICh2ZW5kb3ItcHJlZml4ZXMuaHRtbDo0KQot
Ly0tIG92ZXJsb2FkZWQgLS0vIC1hcHBsZS1vcGFjaXR5OiAwLjM1OwotLy0tIG92ZXJsb2FkZWQg
LS0vIC13ZWJraXQtb3BhY2l0eTogMC41Owotb3BhY2l0eTogMTsKLS8tLSBvdmVybG9hZGVkIC0t
LyAta2h0bWwtb3BhY2l0eTogMC4yNTsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2Vu
dCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3ZlbmRvci1wcmVmaXhlcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy92ZW5kb3ItcHJlZml4ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZWE0NzQzMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3ZlbmRvci1wcmVmaXhlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSNpbnNwZWN0ZWQgewotICAgIC1hcHBsZS1vcGFj
aXR5OiAwLjM1OwotICAgIC13ZWJraXQtb3BhY2l0eTogMC41OwotICAgIG9wYWNpdHk6IDE7Ci0g
ICAgLWtodG1sLW9wYWNpdHk6IDAuMjU7Ci19Ci0KLSNpbnNwZWN0ZWQgewotICAgIC1hcHBsZS1v
cGFjaXR5OiAwLjc1OwotfQotCi08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwo
ImVsZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxl
c1dpdGhDb21wdXRlZCgiaW5zcGVjdGVkIiwgZHVtcEFsbFN0eWxlcyk7Ci0KLSAgICBmdW5jdGlv
biBkdW1wQWxsU3R5bGVzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVj
dGVkRWxlbWVudFN0eWxlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLTxwPgotVGVzdHMgdGhhdCBwcm9wZXJ0aWVzIHdpdGggV2ViS2l0IHZlbmRvci1zcGVj
aWZpYyBwcmVmaXhlcyAoIi1hcHBsZS0iLCAiLXdlYmtpdC0iLCBhbmQgIi1raHRtbC0iKSBhcmUg
dHJlYXRlZCB0aGUgc2FtZSBhcyB0aG9zZSB3aXRob3V0IHRoZSBwcmVmaXguCi08L3A+Ci0KLTxk
aXYgaWQ9Imluc3BlY3RlZCI+VGV4dDwvZGl2PgotPGRpdiBpZD0ib3RoZXIiPjwvZGl2PgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3ludGF4
LWhpZ2hsaWdodC1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N5bnRh
eC1oaWdobGlnaHQtY3NzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggN2RjOWQzOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3ludGF4LWhp
Z2hsaWdodC1jc3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAot
VGVzdHMgdGhhdCAoUylDU1Mgc3ludGF4IGhpZ2hsaWdodGVyIHByb3Blcmx5IGRldGVjdHMgdGhl
IHRva2Vucy4KLQotYVtocmVmPScvJ106IHdlYmtpdC1jc3Mtc2VsZWN0b3IKLSNjb250ZW50ID4g
YTpob3Zlcjogd2Via2l0LWNzcy1zZWxlY3RvciwqLHdlYmtpdC1jc3Mtc2VsZWN0b3IsKgotQGlt
cG9ydCB1cmwoc3R5bGUuY3NzKTs6IHdlYmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1jc3Mta2V5
d29yZCwqCi1AaW1wb3J0IHVybCgic3R5bGUuY3NzIikgcHJvamVjdGlvbiwgdHY7OiB3ZWJraXQt
Y3NzLWF0LXJ1bGUsKix3ZWJraXQtY3NzLWtleXdvcmQsKix3ZWJraXQtY3NzLXN0cmluZywqLHdl
YmtpdC1jc3Mta2V5d29yZCwqLHdlYmtpdC1jc3Mta2V5d29yZCwqCi1AaW1wb3J0ICIvY3NzL2Zp
cmViYWxsX3VuaWNvZGUuY3NzIjsgaHRtbCB7fTogd2Via2l0LWNzcy1hdC1ydWxlLCosd2Via2l0
LWNzcy1zdHJpbmcsKix3ZWJraXQtY3NzLXNlbGVjdG9yLCosd2Via2l0LWJsb2NrLXN0YXJ0LHdl
YmtpdC1ibG9jay1lbmQKLUBtZWRpYSBzY3JlZW4geyBib2R5IHsgY29sb3I6IHJlZDsgfSB9OiB3
ZWJraXQtY3NzLWF0LXJ1bGUsKix3ZWJraXQtY3NzLWtleXdvcmQsKix3ZWJraXQtYmxvY2stc3Rh
cnQsKix3ZWJraXQtY3NzLXNlbGVjdG9yLCosd2Via2l0LWJsb2NrLXN0YXJ0LCosd2Via2l0LWNz
cy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3MtY29sb3IsKix3ZWJraXQtYmxvY2stZW5kLCosd2Via2l0
LWJsb2NrLWVuZAotQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAiTXlIZWx2ZXRpY2EiOyB9OiB3
ZWJraXQtY3NzLWF0LXJ1bGUsKix3ZWJraXQtYmxvY2stc3RhcnQsKix3ZWJraXQtY3NzLXByb3Bl
cnR5LCosd2Via2l0LWNzcy1zdHJpbmcsKix3ZWJraXQtYmxvY2stZW5kCi1wIHsgY29sb3I6IGNv
bG9yOyByZWQ6IHJlZDsgY29sb3I6ICMwMDA7IGNvbG9yOiAjRkZGOyBjb2xvcjogIzEyM0FiQzsg
Y29sb3I6ICNmYWViZmU7IGNvbG9yOnBhcGF5YXdoaXA7IH06IHdlYmtpdC1jc3Mtc2VsZWN0b3Is
Kix3ZWJraXQtYmxvY2stc3RhcnQsKix3ZWJraXQtY3NzLXByb3BlcnR5LCosd2Via2l0LWNzcy1z
ZWxlY3RvciwqLHdlYmtpdC1jc3MtY29sb3IsKix3ZWJraXQtY3NzLXByb3BlcnR5LCosd2Via2l0
LWNzcy1jb2xvciwqLHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLWNvbG9yLCosd2Vi
a2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3MtY29sb3IsKix3ZWJraXQtY3NzLXByb3BlcnR5
LCosd2Via2l0LWNzcy1jb2xvciwqLHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLWNv
bG9yLCosd2Via2l0LWJsb2NrLWVuZAotcCB7IG1hcmdpbjogLTEwcHggIWltcG9ydGFudDsgfTog
d2Via2l0LWNzcy1zZWxlY3RvciwqLHdlYmtpdC1ibG9jay1zdGFydCwqLHdlYmtpdC1jc3MtcHJv
cGVydHksKix3ZWJraXQtY3NzLW51bWJlciwqLHdlYmtpdC1jc3MtYmFuZy1rZXl3b3JkLCosd2Vi
a2l0LWJsb2NrLWVuZAotJG1hcmdpbi1sZWZ0OiAkb2Zmc2V0QmVmb3JlICsgMTJweCArICRvZmZz
ZXRBZnRlcjs6IHdlYmtpdC1zY3NzLXZhcmlhYmxlLCosd2Via2l0LXNjc3MtdmFyaWFibGUsKix3
ZWJraXQtY3NzLW51bWJlciwqLHdlYmtpdC1zY3NzLXZhcmlhYmxlLCoKLSR0eXBlOiBtb25zdGVy
OwotcCB7Ci1AaWYgJHR5cGUgPT0gb2NlYW4gewotY29sb3I6IGJsdWU7Ci19IEBlbHNlIGlmICR0
eXBlID09IG1hdGFkb3IgewotY29sb3I6IHJlZDsKLX0gQGVsc2UgaWYgJHR5cGUgPT0gbW9uc3Rl
ciB7Ci1jb2xvcjogZ3JlZW47Ci19IEBlbHNlIHsKLWNvbG9yOiBibGFjazsKLX0KLX06IHdlYmtp
dC1zY3NzLXZhcmlhYmxlLCosLHdlYmtpdC1jc3Mtc2VsZWN0b3IsKix3ZWJraXQtYmxvY2stc3Rh
cnQsLHdlYmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1zY3NzLXZhcmlhYmxlLCosd2Via2l0LWJs
b2NrLXN0YXJ0LCx3ZWJraXQtY3NzLXByb3BlcnR5LCosd2Via2l0LWNzcy1jb2xvciwqLCx3ZWJr
aXQtYmxvY2stZW5kLCosd2Via2l0LWNzcy1hdC1ydWxlLCosd2Via2l0LWNzcy1hdC1ydWxlLCos
d2Via2l0LXNjc3MtdmFyaWFibGUsKix3ZWJraXQtYmxvY2stc3RhcnQsLHdlYmtpdC1jc3MtcHJv
cGVydHksKix3ZWJraXQtY3NzLWNvbG9yLCosLHdlYmtpdC1ibG9jay1lbmQsKix3ZWJraXQtY3Nz
LWF0LXJ1bGUsKix3ZWJraXQtY3NzLWF0LXJ1bGUsKix3ZWJraXQtc2Nzcy12YXJpYWJsZSwqLHdl
YmtpdC1ibG9jay1zdGFydCwsd2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3MtY29sb3Is
Kiwsd2Via2l0LWJsb2NrLWVuZCwqLHdlYmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1ibG9jay1z
dGFydCwsd2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3MtY29sb3IsKiwsd2Via2l0LWJs
b2NrLWVuZCwsd2Via2l0LWJsb2NrLWVuZAotQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHsgLml0
ZW0tI3skaX0geyB3aWR0aDogMmVtICogJGk7IH0gfTogd2Via2l0LWNzcy1hdC1ydWxlLCosd2Vi
a2l0LXNjc3MtdmFyaWFibGUsKix3ZWJraXQtY3NzLWF0LXJ1bGUsKix3ZWJraXQtY3NzLW51bWJl
ciwqLHdlYmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1jc3MtbnVtYmVyLCosd2Via2l0LWJsb2Nr
LXN0YXJ0LCosd2Via2l0LWNzcy1zZWxlY3RvciwqLHdlYmtpdC1ibG9jay1zdGFydCx3ZWJraXQt
c2Nzcy12YXJpYWJsZSx3ZWJraXQtYmxvY2stZW5kLCosd2Via2l0LWJsb2NrLXN0YXJ0LCosd2Vi
a2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3MtbnVtYmVyLCosd2Via2l0LXNjc3MtdmFyaWFi
bGUsKix3ZWJraXQtYmxvY2stZW5kLCosd2Via2l0LWJsb2NrLWVuZAotQG1peGluIGFkanVzdC1s
b2NhdGlvbigkeCwgJHkpIHsKLUBpZiB1bml0bGVzcygkeCkgewotQHdhcm4gIkFzc3VtaW5nICN7
JHh9IHRvIGJlIGluIHBpeGVscyI7Ci0keDogMXB4ICogJHg7Ci19Ci1wb3NpdGlvbjogcmVsYXRp
dmU7IGxlZnQ6ICR4OyB0b3A6ICR5OwotfTogd2Via2l0LWNzcy1hdC1ydWxlLCosd2Via2l0LXNj
c3MtdmFyaWFibGUsKix3ZWJraXQtc2Nzcy12YXJpYWJsZSwqLHdlYmtpdC1ibG9jay1zdGFydCws
d2Via2l0LWNzcy1hdC1ydWxlLCosd2Via2l0LWNzcy1rZXl3b3JkLCosd2Via2l0LXNjc3MtdmFy
aWFibGUsKix3ZWJraXQtYmxvY2stc3RhcnQsLHdlYmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1j
c3Mtc3RyaW5nLCosLHdlYmtpdC1zY3NzLXZhcmlhYmxlLCosd2Via2l0LWNzcy1udW1iZXIsKix3
ZWJraXQtc2Nzcy12YXJpYWJsZSwqLCx3ZWJraXQtYmxvY2stZW5kLCx3ZWJraXQtY3NzLXByb3Bl
cnR5LCosd2Via2l0LWNzcy1rZXl3b3JkLCosd2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1z
Y3NzLXZhcmlhYmxlLCosd2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1zY3NzLXZhcmlhYmxl
LCosLHdlYmtpdC1ibG9jay1lbmQKLSNuYXZiYXIgewotJG5hdmJhci13aWR0aDogODAwcHg7Ci0k
aXRlbXM6IDU7Ci0kbmF2YmFyLWNvbG9yOiAjY2U0ZGQ2Owotd2lkdGg6ICRuYXZiYXItd2lkdGg7
Ci1ib3JkZXItYm90dG9tOiAycHggc29saWQgJG5hdmJhci1jb2xvcjsKLWxpIHsKLUBleHRlbmQg
Lm5vdGljZSAhb3B0aW9uYWw7Ci1mbG9hdDogbGVmdDsKLXdpZHRoOiAkbmF2YmFyLXdpZHRoLyRp
dGVtcyAtIDEwcHg7Ci1iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRuYXZiYXItY29sb3IsIDIw
JSk7Ci0mOmhvdmVyIHsKLWJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJG5hdmJhci1jb2xvciwg
MTAlKTsKLX0KLX0KLX06IHdlYmtpdC1jc3Mtc2VsZWN0b3IsKix3ZWJraXQtYmxvY2stc3RhcnQs
LHdlYmtpdC1zY3NzLXZhcmlhYmxlLCosd2Via2l0LWNzcy1udW1iZXIsKiwsd2Via2l0LXNjc3Mt
dmFyaWFibGUsKix3ZWJraXQtY3NzLW51bWJlciwqLCx3ZWJraXQtc2Nzcy12YXJpYWJsZSwqLHdl
YmtpdC1jc3MtY29sb3IsKiwsd2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1zY3NzLXZhcmlh
YmxlLCosLHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLW51bWJlciwqLHdlYmtpdC1j
c3Mta2V5d29yZCwqLHdlYmtpdC1zY3NzLXZhcmlhYmxlLCosLHdlYmtpdC1jc3Mtc2VsZWN0b3Is
Kix3ZWJraXQtYmxvY2stc3RhcnQsLHdlYmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1jc3Mtc2Vs
ZWN0b3IsKix3ZWJraXQtY3NzLWJhbmcta2V5d29yZCwqLCx3ZWJraXQtY3NzLXByb3BlcnR5LCos
d2Via2l0LWNzcy1rZXl3b3JkLCosLHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQtc2Nzcy12
YXJpYWJsZSx3ZWJraXQtc2Nzcy12YXJpYWJsZSwqLHdlYmtpdC1jc3MtbnVtYmVyLCosLHdlYmtp
dC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLWtleXdvcmQsKix3ZWJraXQtc2Nzcy12YXJpYWJs
ZSwqLHdlYmtpdC1jc3MtbnVtYmVyLCosLHdlYmtpdC1jc3Mtc2VsZWN0b3IsKix3ZWJraXQtYmxv
Y2stc3RhcnQsLHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLWtleXdvcmQsKix3ZWJr
aXQtc2Nzcy12YXJpYWJsZSwqLHdlYmtpdC1jc3MtbnVtYmVyLCosLHdlYmtpdC1ibG9jay1lbmQs
LHdlYmtpdC1ibG9jay1lbmQsLHdlYmtpdC1ibG9jay1lbmQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtY3NzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3ludGF4LWhpZ2hsaWdodC1jc3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDY2YmEwZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3lu
dGF4LWhpZ2hsaWdodC1jc3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN5bnRheC1oaWdobGlnaHQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24g
ZHVtcFN5bnRheEhpZ2hsaWdodFNDU1Moc3RyKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5kdW1wU3ludGF4SGlnaGxpZ2h0KHN0ciwgInRleHQvY3NzIik7Ci0gICAgfQotCi0gICAgZHVt
cFN5bnRheEhpZ2hsaWdodFNDU1MoImFbaHJlZj0nLyddIik7Ci0gICAgZHVtcFN5bnRheEhpZ2hs
aWdodFNDU1MoIiNjb250ZW50ID4gYTpob3ZlciIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRT
Q1NTKCJAaW1wb3J0IHVybChzdHlsZS5jc3MpOyIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRT
Q1NTKCJAaW1wb3J0IHVybChcInN0eWxlLmNzc1wiKSBwcm9qZWN0aW9uLCB0djsiKTsKLSAgICBk
dW1wU3ludGF4SGlnaGxpZ2h0U0NTUygiQGltcG9ydCBcIi9jc3MvZmlyZWJhbGxfdW5pY29kZS5j
c3NcIjsgaHRtbCB7fSIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRTQ1NTKCJAbWVkaWEgc2Ny
ZWVuIHsgYm9keSB7IGNvbG9yOiByZWQ7IH0gfSIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRT
Q1NTKCJAZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6IFwiTXlIZWx2ZXRpY2FcIjsgfSIpOwotICAg
IGR1bXBTeW50YXhIaWdobGlnaHRTQ1NTKCJwIHsgY29sb3I6IGNvbG9yOyByZWQ6IHJlZDsgY29s
b3I6ICMwMDA7IGNvbG9yOiAjRkZGOyBjb2xvcjogIzEyM0FiQzsgY29sb3I6ICNmYWViZmU7IGNv
bG9yOnBhcGF5YXdoaXA7IH0iKTsKLSAgICBkdW1wU3ludGF4SGlnaGxpZ2h0U0NTUygicCB7IG1h
cmdpbjogLTEwcHggIWltcG9ydGFudDsgfSIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRTQ1NT
KCIkbWFyZ2luLWxlZnQ6ICRvZmZzZXRCZWZvcmUgKyAxMnB4ICsgJG9mZnNldEFmdGVyOyIpOwot
ICAgIGR1bXBTeW50YXhIaWdobGlnaHRTQ1NTKCIkdHlwZTogbW9uc3RlcjtcbiIgKwotICAgICAg
ICAicCB7XG4iICsKLSAgICAgICAgICAiQGlmICR0eXBlID09IG9jZWFuIHtcbiIgKwotICAgICAg
ICAgICAgImNvbG9yOiBibHVlO1xuIiArCi0gICAgICAgICAgIn0gQGVsc2UgaWYgJHR5cGUgPT0g
bWF0YWRvciB7XG4iICsKLSAgICAgICAgICAgICJjb2xvcjogcmVkO1xuIiArCi0gICAgICAgICAg
In0gQGVsc2UgaWYgJHR5cGUgPT0gbW9uc3RlciB7XG4iICsKLSAgICAgICAgICAgICJjb2xvcjog
Z3JlZW47XG4iICsKLSAgICAgICAgICAifSBAZWxzZSB7XG4iICsKLSAgICAgICAgICAgICJjb2xv
cjogYmxhY2s7XG4iICsKLSAgICAgICAgICAifVxuIiArCi0gICAgICAgICJ9Iik7Ci0gICAgZHVt
cFN5bnRheEhpZ2hsaWdodFNDU1MoIkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7IC5pdGVtLSN7
JGl9IHsgd2lkdGg6IDJlbSAqICRpOyB9IH0iKTsKLSAgICBkdW1wU3ludGF4SGlnaGxpZ2h0U0NT
UygKLSAgICAgICAgIkBtaXhpbiBhZGp1c3QtbG9jYXRpb24oJHgsICR5KSB7XG4iICsKLSAgICAg
ICAgICAgICJAaWYgdW5pdGxlc3MoJHgpIHtcbiIgKwotICAgICAgICAgICAgICAgICJAd2FybiBc
IkFzc3VtaW5nICN7JHh9IHRvIGJlIGluIHBpeGVsc1wiO1xuIiArCi0gICAgICAgICAgICAgICAg
IiR4OiAxcHggKiAkeDtcbiIgKwotICAgICAgICAgICAgIn1cbiIgKwotICAgICAgICAgICAgInBv
c2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogJHg7IHRvcDogJHk7XG4iICsKLSAgICAgICAgIn0iKTsK
LQotICAgIGR1bXBTeW50YXhIaWdobGlnaHRTQ1NTKAotICAgICAgICAiI25hdmJhciB7XG4iICsK
LSAgICAgICAgICAgICIkbmF2YmFyLXdpZHRoOiA4MDBweDtcbiIgKwotICAgICAgICAgICAgIiRp
dGVtczogNTtcbiIgKwotICAgICAgICAgICAgIiRuYXZiYXItY29sb3I6ICNjZTRkZDY7XG4iICsK
LQotICAgICAgICAgICAgIndpZHRoOiAkbmF2YmFyLXdpZHRoO1xuIiArCi0gICAgICAgICAgICAi
Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRuYXZiYXItY29sb3I7XG4iICsKLQotICAgICAgICAg
ICAgImxpIHtcbiIgKwotICAgICAgICAgICAgICAgICJAZXh0ZW5kIC5ub3RpY2UgIW9wdGlvbmFs
O1xuIiArCi0gICAgICAgICAgICAgICAgImZsb2F0OiBsZWZ0O1xuIiArCi0gICAgICAgICAgICAg
ICAgIndpZHRoOiAkbmF2YmFyLXdpZHRoLyRpdGVtcyAtIDEwcHg7XG4iICsKLSAgICAgICAgICAg
ICAgICAiYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkbmF2YmFyLWNvbG9yLCAyMCUpO1xuIiAr
Ci0gICAgICAgICAgICAgICAgIiY6aG92ZXIge1xuIiArCi0gICAgICAgICAgICAgICAgICAgICJi
YWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRuYXZiYXItY29sb3IsIDEwJSk7XG4iICsKLSAgICAg
ICAgICAgICAgICAifVxuIiArCi0gICAgICAgICAgICAifVxuIiArCi0gICAgICAgICJ9Iik7Ci0K
LSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IChTKUNTUyBz
eW50YXggaGlnaGxpZ2h0ZXIgcHJvcGVybHkgZGV0ZWN0cyB0aGUgdG9rZW5zLgotPC9wPgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3ludGF4
LWhpZ2hsaWdodC1odG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zeW50
YXgtaGlnaGxpZ2h0LWh0bWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjMWRlYTljLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zeW50YXgt
aGlnaGxpZ2h0LWh0bWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBA
QAotVGVzdHMgdGhhdCBTb3VyY2VIVE1MVG9rZW5pemVyIGRldGVjdHMgdGhlIHRva2Vucy4KLQot
PGh0bWw+OiB3ZWJraXQtaHRtbC10YWcsd2Via2l0LWh0bWwtdGFnLHdlYmtpdC1odG1sLXRhZwot
PHRhYmxlIGNlbGxzcGFjaW5nPTA+OiB3ZWJraXQtaHRtbC10YWcsd2Via2l0LWh0bWwtdGFnLCos
d2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWUsKix3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUs
d2Via2l0LWh0bWwtdGFnCi08aW5wdXQgY2hlY2tlZCB2YWx1ZT0iZm9vIj46IHdlYmtpdC1odG1s
LXRhZyx3ZWJraXQtaHRtbC10YWcsKix3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSwqLHdlYmtp
dC1odG1sLWF0dHJpYnV0ZS1uYW1lLCosd2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlLHdlYmtp
dC1odG1sLXRhZwotPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0nMCc+OiB3ZWJr
aXQtaHRtbC10YWcsd2Via2l0LWh0bWwtdGFnLCosd2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWUs
Kix3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUsKix3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFt
ZSwqLHdlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSx3ZWJraXQtaHRtbC10YWcKLTwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJo
dHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPjogd2Via2l0LWh0bWwtZG9jdHlw
ZSx3ZWJraXQtaHRtbC1kb2N0eXBlLHdlYmtpdC1odG1sLWRvY3R5cGUKLTwhLS1kaXY+PGRpdiBm
b29iYXItLT46IHdlYmtpdC1odG1sLWNvbW1lbnQKLTxzY3JpcHQ+PC9zY3JpcHQ+PCEtLWRpdi0t
Pjogd2Via2l0LWh0bWwtdGFnLHdlYmtpdC1odG1sLXRhZyx3ZWJraXQtaHRtbC10YWcsd2Via2l0
LWh0bWwtdGFnLHdlYmtpdC1odG1sLWNvbW1lbnQKLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij5kb2N1bWVudC53cml0ZSgnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvJyAr
ICdzY3JpcHQ+Jyk7PC9zY3JpcHQ+OiB3ZWJraXQtaHRtbC10YWcsKix3ZWJraXQtaHRtbC1hdHRy
aWJ1dGUtbmFtZSwqLHdlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSx3ZWJraXQtaHRtbC10YWcs
d2Via2l0LWphdmFzY3JpcHQtaWRlbnQsKix3ZWJraXQtamF2YXNjcmlwdC1pZGVudCx3ZWJraXQt
YnJhY2Utc3RhcnQsd2Via2l0LWphdmFzY3JpcHQtc3RyaW5nLHdlYmtpdC13aGl0ZXNwYWNlLCos
d2Via2l0LXdoaXRlc3BhY2Usd2Via2l0LWphdmFzY3JpcHQtc3RyaW5nLHdlYmtpdC1icmFjZS1l
bmQsKix3ZWJraXQtaHRtbC10YWcsd2Via2l0LWh0bWwtdGFnCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWh0bWwuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWh0bWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYTk3ZjVmOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3ludGF4LWhpZ2hsaWdodC1odG1sLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzeW50YXgtaGlnaGxpZ2h0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0
aW9uIGR1bXBTeW50YXhIaWdobGlnaHRIVE1MKHN0cikKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuZHVtcFN5bnRheEhpZ2hsaWdodChzdHIsICJ0ZXh0L2h0bWwiKTsKLSAgICB9Ci0KLSAg
ICBkdW1wU3ludGF4SGlnaGxpZ2h0SFRNTCgiPGh0bWw+Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hs
aWdodEhUTUwoIjx0YWJsZSBjZWxsc3BhY2luZz0wPiIpOwotICAgIGR1bXBTeW50YXhIaWdobGln
aHRIVE1MKCI8aW5wdXQgY2hlY2tlZCB2YWx1ZT1cImZvb1wiPiIpOwotICAgIGR1bXBTeW50YXhI
aWdobGlnaHRIVE1MKCI8dGFibGUgY2VsbHNwYWNpbmc9XCIwXCIgY2VsbHBhZGRpbmc9JzAnPiIp
OwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRIVE1MKCI8IURPQ1RZUEUgSFRNTCBQVUJMSUMgXCIt
Ly9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTlwiIFwiaHR0cDovL3d3dy53My5v
cmcvVFIvaHRtbDQvbG9vc2UuZHRkXCI+Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodEhUTUwo
IjwhLS1kaXY+PGRpdiBmb29iYXItLT4iKTsKLSAgICBkdW1wU3ludGF4SGlnaGxpZ2h0SFRNTCgi
PHNjcmlwdD48LyIgKyAic2NyaXB0PjwhLS1kaXYtLT4iKTsKLSAgICBkdW1wU3ludGF4SGlnaGxp
Z2h0SFRNTCgiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+ZG9jdW1lbnQud3JpdGUo
JzxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPjwvJyArICdzY3JpcHQ+Jyk7PC8iICsg
InNjcmlwdD4iKTsKLQotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3Rz
IHRoYXQgU291cmNlSFRNTFRva2VuaXplciBkZXRlY3RzIHRoZSB0b2tlbnMuCi08L3A+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zeW50YXgt
aGlnaGxpZ2h0LWphdmFzY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N5bnRheC1oaWdobGlnaHQtamF2YXNjcmlwdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDY2ZmNkNzYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N5bnRheC1oaWdobGlnaHQtamF2YXNjcmlwdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyMyArMCwwIEBACi1UZXN0cyB0aGF0IEphdmFTY3JpcHRTb3VyY2VTeW50YXhIaWdo
bGlnaHRlciBkZXRlY3RzIHRoZSB0b2tlbnMuCi0KLXJldHVybidmb28nOzogd2Via2l0LWphdmFz
Y3JpcHQta2V5d29yZCx3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsKgotL1wvL2c6IHdlYmtpdC1q
YXZhc2NyaXB0LXJlZ2V4cAotLy9pZyc7OiB3ZWJraXQtamF2YXNjcmlwdC1jb21tZW50Ci0xIC8g
MiArIC9hLy50ZXN0KCdhJyk7OiB3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIsd2Via2l0LXdoaXRl
c3BhY2UsKix3ZWJraXQtd2hpdGVzcGFjZSx3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIsd2Via2l0
LXdoaXRlc3BhY2UsKix3ZWJraXQtd2hpdGVzcGFjZSx3ZWJraXQtamF2YXNjcmlwdC1yZWdleHAs
Kix3ZWJraXQtamF2YXNjcmlwdC1pZGVudCx3ZWJraXQtYnJhY2Utc3RhcnQsd2Via2l0LWphdmFz
Y3JpcHQtc3RyaW5nLHdlYmtpdC1icmFjZS1lbmQsKgotIlwiLyIubGVuZ3RoIC8gMjogd2Via2l0
LWphdmFzY3JpcHQtc3RyaW5nLCosd2Via2l0LWphdmFzY3JpcHQtaWRlbnQsd2Via2l0LXdoaXRl
c3BhY2UsKix3ZWJraXQtd2hpdGVzcGFjZSx3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIKLXZhciBm
b28gPSAxLyovKioqLy8yOiB3ZWJraXQtamF2YXNjcmlwdC1rZXl3b3JkLHdlYmtpdC13aGl0ZXNw
YWNlLHdlYmtpdC1qYXZhc2NyaXB0LWlkZW50LHdlYmtpdC13aGl0ZXNwYWNlLCosd2Via2l0LXdo
aXRlc3BhY2Usd2Via2l0LWphdmFzY3JpcHQtbnVtYmVyLHdlYmtpdC1qYXZhc2NyaXB0LWNvbW1l
bnQsKix3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIKLS8qY29tbWVudCovLy4qLy50ZXN0KCdhJyk6
IHdlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQsd2Via2l0LWphdmFzY3JpcHQtcmVnZXhwLCosd2Vi
a2l0LWphdmFzY3JpcHQtaWRlbnQsd2Via2l0LWJyYWNlLXN0YXJ0LHdlYmtpdC1qYXZhc2NyaXB0
LXN0cmluZyx3ZWJraXQtYnJhY2UtZW5kCi0nZlwKLW9vJzs6IHdlYmtpdC1qYXZhc2NyaXB0LXN0
cmluZywsd2Via2l0LWphdmFzY3JpcHQtc3RyaW5nLCoKLSdcZlxiXHQnOzogd2Via2l0LWphdmFz
Y3JpcHQtc3RyaW5nLCoKLScvXAotLyc7OiB3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsLHdlYmtp
dC1qYXZhc2NyaXB0LXN0cmluZywqCi1mb28vKioKLS8KLSovZm9vOiB3ZWJraXQtamF2YXNjcmlw
dC1pZGVudCx3ZWJraXQtamF2YXNjcmlwdC1jb21tZW50LCx3ZWJraXQtamF2YXNjcmlwdC1jb21t
ZW50LCx3ZWJraXQtamF2YXNjcmlwdC1jb21tZW50LHdlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ci17
MDogdHJ1ZX06IHdlYmtpdC1ibG9jay1zdGFydCx3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIsKix3
ZWJraXQtd2hpdGVzcGFjZSx3ZWJraXQtamF2YXNjcmlwdC1rZXl3b3JkLHdlYmtpdC1ibG9jay1l
bmQKLXZhciB0b1N0cmluZzs6IHdlYmtpdC1qYXZhc2NyaXB0LWtleXdvcmQsd2Via2l0LXdoaXRl
c3BhY2Usd2Via2l0LWphdmFzY3JpcHQtaWRlbnQsKgotdmFyIGZvbyA9IHVuZGVmaW5lZDs6IHdl
YmtpdC1qYXZhc2NyaXB0LWtleXdvcmQsd2Via2l0LXdoaXRlc3BhY2Usd2Via2l0LWphdmFzY3Jp
cHQtaWRlbnQsd2Via2l0LXdoaXRlc3BhY2UsKix3ZWJraXQtd2hpdGVzcGFjZSx3ZWJraXQtamF2
YXNjcmlwdC11bmRlZiwqCi12YXIgZm9vID0gSW5maW5pdHk7OiB3ZWJraXQtamF2YXNjcmlwdC1r
ZXl3b3JkLHdlYmtpdC13aGl0ZXNwYWNlLHdlYmtpdC1qYXZhc2NyaXB0LWlkZW50LHdlYmtpdC13
aGl0ZXNwYWNlLCosd2Via2l0LXdoaXRlc3BhY2Usd2Via2l0LWphdmFzY3JpcHQtaW5mLCoKLXZh
ciBmb28gPSBOYU47OiB3ZWJraXQtamF2YXNjcmlwdC1rZXl3b3JkLHdlYmtpdC13aGl0ZXNwYWNl
LHdlYmtpdC1qYXZhc2NyaXB0LWlkZW50LHdlYmtpdC13aGl0ZXNwYWNlLCosd2Via2l0LXdoaXRl
c3BhY2Usd2Via2l0LWphdmFzY3JpcHQtbmFuLCoKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtamF2YXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtamF2YXNjcmlwdC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjOWE3OTI3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zeW50YXgtaGlnaGxpZ2h0LWphdmFzY3JpcHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN5bnRh
eC1oaWdobGlnaHQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17
Ci0gICAgZnVuY3Rpb24gZHVtcFN5bnRheEhpZ2hsaWdodEpTKHN0cikKLSAgICB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuZHVtcFN5bnRheEhpZ2hsaWdodChzdHIsICJ0ZXh0L2phdmFzY3JpcHQi
KTsKLSAgICB9Ci0KLSAgICBkdW1wU3ludGF4SGlnaGxpZ2h0SlMoInJldHVybidmb28nOyIpOwot
ICAgIGR1bXBTeW50YXhIaWdobGlnaHRKUygiL1xcXC8vZyIpOwotICAgIGR1bXBTeW50YXhIaWdo
bGlnaHRKUygiLy9pZyc7Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodEpTKCIxIC8gMiArIC9h
Ly50ZXN0KCdhJyk7Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodEpTKCJcIlxcXCIvXCIubGVu
Z3RoIC8gMiIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRKUygidmFyIGZvbyA9IDEvKi8qKiov
LzIiKTsKLSAgICBkdW1wU3ludGF4SGlnaGxpZ2h0SlMoIi8qY29tbWVudCovLy4qLy50ZXN0KCdh
JykiKTsKLSAgICBkdW1wU3ludGF4SGlnaGxpZ2h0SlMoIidmXFxcbm9vJzsiKTsKLSAgICBkdW1w
U3ludGF4SGlnaGxpZ2h0SlMoIidcXGZcXGJcXHQnOyIpOwotICAgIGR1bXBTeW50YXhIaWdobGln
aHRKUygiJy9cXFxuLyc7Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodEpTKCJmb28vKipcbi9c
biovZm9vIik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodEpTKCJ7MDogdHJ1ZX0iKTsKLSAgICBk
dW1wU3ludGF4SGlnaGxpZ2h0SlMoInZhciB0b1N0cmluZzsiKTsKLSAgICBkdW1wU3ludGF4SGln
aGxpZ2h0SlMoInZhciBmb28gPSB1bmRlZmluZWQ7Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdo
dEpTKCJ2YXIgZm9vID0gSW5maW5pdHk7Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodEpTKCJ2
YXIgZm9vID0gTmFOOyIpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgot
VGVzdHMgdGhhdCBKYXZhU2NyaXB0U291cmNlU3ludGF4SGlnaGxpZ2h0ZXIgZGV0ZWN0cyB0aGUg
dG9rZW5zLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3ludGF4LWhpZ2hsaWdodC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
eW50YXgtaGlnaGxpZ2h0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjNlYTdh
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0Lmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotdmFyIGluaXRpYWxpemVfU3ludGF4SGln
aGxpZ2h0ID0gZnVuY3Rpb24oKSB7Ci0KLUluc3BlY3RvclRlc3QuZHVtcFN5bnRheEhpZ2hsaWdo
dCA9IGZ1bmN0aW9uKHN0ciwgbWltZVR5cGUpCi17Ci0gICAgdmFyIG5vZGUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgbm9kZS50ZXh0Q29udGVudCA9IHN0cjsKLSAgICB2
YXIgamF2YXNjcmlwdFN5bnRheEhpZ2hsaWdodGVyID0gbmV3IFdlYkluc3BlY3Rvci5ET01TeW50
YXhIaWdobGlnaHRlcihtaW1lVHlwZSk7Ci0gICAgamF2YXNjcmlwdFN5bnRheEhpZ2hsaWdodGVy
LnN5bnRheEhpZ2hsaWdodE5vZGUobm9kZSk7Ci0gICAgdmFyIG5vZGVfcGFydHMgPSBbXTsKLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGkrKykgewotICAg
ICAgICBpZiAobm9kZS5jaGlsZE5vZGVzW2ldLmdldEF0dHJpYnV0ZSkgewotICAgICAgICAgICAg
bm9kZV9wYXJ0cy5wdXNoKG5vZGUuY2hpbGROb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImNsYXNzIikp
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbm9kZV9wYXJ0cy5wdXNoKCIqIik7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoc3RyICsgIjogIiAr
IG5vZGVfcGFydHMuam9pbigiLCIpKTsKLX07Ci0KLX07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2MjkxY2UuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RhYmJlZC1lZGl0b3JzLWhpc3RvcnktZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMjggKzAsMCBAQAotVGVzdHMgaGlzdG9yeSBzYXZpbmcgbG9naWMgaW4gVGFi
YmVkRWRpdG9yQ29udGFpbmVyLgotCi1CdWcgNzY5MTIKLSAgaGlzdG9yeSA9IFtdCi0gIGhpc3Rv
cnkgPSBbeyJ1cmwiOiJ1cmxfMSJ9XQotICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzIifSx7InVy
bCI6InVybF8xIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMyJ9LHsidXJsIjoidXJsXzIi
fSx7InVybCI6InVybF8xIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoi
dXJsXzMifSx7InVybCI6InVybF8xIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMSJ9LHsi
dXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxf
MTEifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJsXzMifV0KLSAg
aGlzdG9yeSA9IFt7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJsXzExIn0seyJ1cmwiOiJ1cmxf
MSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwi
OiJ1cmxfMTMifSx7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJsXzExIn0seyJ1cmwiOiJ1cmxf
MSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwi
OiJ1cmxfMTIifSx7InVybCI6InVybF8xMyJ9LHsidXJsIjoidXJsXzExIn0seyJ1cmwiOiJ1cmxf
MSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwi
OiJ1cmxfMTEifSx7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJsXzEzIn0seyJ1cmwiOiJ1cmxf
MSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwi
OiJ1cmxfMTEiLCJzZWxlY3Rpb25SYW5nZSI6eyJzdGFydExpbmUiOjE1LCJzdGFydENvbHVtbiI6
NSwiZW5kTGluZSI6MTUsImVuZENvbHVtbiI6MTB9LCJzY3JvbGxMaW5lTnVtYmVyIjoxMH0seyJ1
cmwiOiJ1cmxfMTIifSx7InVybCI6InVybF8xMyJ9LHsidXJsIjoidXJsXzEifSx7InVybCI6InVy
bF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQotICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzEyIn0seyJ1
cmwiOiJ1cmxfMTMifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJs
XzMifV0KLSAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJsXzEifSx7InVy
bCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQotICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzE0
In0seyJ1cmwiOiJ1cmxfMTIifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJs
IjoidXJsXzMifV0KLSAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xNSJ9LHsidXJsIjoidXJsXzE0
In0seyJ1cmwiOiJ1cmxfMTIifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJs
IjoidXJsXzMifV0KLSAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xNiJ9LHsidXJsIjoidXJsXzE1
In0seyJ1cmwiOiJ1cmxfMTQifSx7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJsXzEifSx7InVy
bCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQotICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzE1
In0seyJ1cmwiOiJ1cmxfMTQifSx7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJsXzEifSx7InVy
bCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQotICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzE0
In0seyJ1cmwiOiJ1cmxfMTIifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJs
IjoidXJsXzMifV0KLSAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJsXzEi
fSx7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQotICBoaXN0b3J5ID0gW3sidXJsIjoi
dXJsXzEifSx7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQotICBoaXN0b3J5ID0gW3si
dXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxf
MyJ9XQotICBoaXN0b3J5ID0gW10KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RhYmJlZC1lZGl0b3JzLWhpc3RvcnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJi
ZWQtZWRpdG9ycy1oaXN0b3J5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQy
MTY4N2UuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1lZGl0b3Jz
LWhpc3RvcnkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotdmFyIHRlc3Qg
PSBmdW5jdGlvbigpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwot
Ci0gICAgZnVuY3Rpb24gZHVtcEhpc3RvcnkoaGlzdG9yeSkKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIgIGhpc3RvcnkgPSAiICsgSlNPTi5zdHJpbmdpZnkoaGlzdG9y
eS5fc2VyaWFsaXplVG9PYmplY3QoKSkgKyAiIik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdXBk
YXRlU2Nyb2xsQW5kU2VsZWN0aW9uQW5kRHVtcChoaXN0b3J5LCB1cmwsIHNjcm9sbExpbmVOdW1i
ZXIsIHNlbGVjdGlvbikKLSAgICB7Ci0gICAgICAgIGhpc3RvcnkudXBkYXRlU2Nyb2xsTGluZU51
bWJlcih1cmwsIHNjcm9sbExpbmVOdW1iZXIpOwotICAgICAgICBoaXN0b3J5LnVwZGF0ZVNlbGVj
dGlvblJhbmdlKHVybCwgc2VsZWN0aW9uKTsKLSAgICAgICAgZHVtcEhpc3RvcnkoaGlzdG9yeSk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdXBkYXRlQW5kRHVtcChoaXN0b3J5LCB1cmxzKQotICAg
IHsKLSAgICAgICAgaGlzdG9yeS51cGRhdGUodXJscyk7Ci0gICAgICAgIGR1bXBIaXN0b3J5KGhp
c3RvcnkpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJlbW92ZUFuZER1bXAoaGlzdG9yeSwgdXJs
KQotICAgIHsKLSAgICAgICAgaGlzdG9yeS5yZW1vdmUodXJsKTsKLSAgICAgICAgZHVtcEhpc3Rv
cnkoaGlzdG9yeSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdXJsKGluZGV4KQotICAgIHsKLSAg
ICAgICAgcmV0dXJuICJ1cmxfIiArIGluZGV4OwotICAgIH0KLQotICAgIHZhciBoaXN0b3J5ID0g
bmV3IFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeShbXSk7Ci0KLSAg
ICBkdW1wSGlzdG9yeShoaXN0b3J5KTsKLSAgICAvLyBFbXVsYXRlIG9wZW5pbmcgb2Ygc2V2ZXJh
bCB0YWJzLgotICAgIHVwZGF0ZUFuZER1bXAoaGlzdG9yeSwgW3VybCgxKV0pOwotICAgIHVwZGF0
ZUFuZER1bXAoaGlzdG9yeSwgW3VybCgyKSwgdXJsKDEpXSk7Ci0gICAgdXBkYXRlQW5kRHVtcCho
aXN0b3J5LCBbdXJsKDMpLCB1cmwoMiksIHVybCgxKV0pOwotICAgIC8vIEVtdWxhdGUgc3dpdGNo
aW5nIGJldHdlZW4gdGFicy4KLSAgICB1cGRhdGVBbmREdW1wKGhpc3RvcnksIFt1cmwoMiksIHVy
bCgzKSwgdXJsKDEpXSk7Ci0gICAgdXBkYXRlQW5kRHVtcChoaXN0b3J5LCBbdXJsKDEpLCB1cmwo
MiksIHVybCgzKV0pOwotICAgIC8vIEVtdWxhdGUgb3BlbmluZyBvZiBzZXZlcmFsIHRhYnMgZnJv
bSBhbm90aGVyIHBhZ2UuCi0gICAgdXBkYXRlQW5kRHVtcChoaXN0b3J5LCBbdXJsKDExKV0pOwot
ICAgIHVwZGF0ZUFuZER1bXAoaGlzdG9yeSwgW3VybCgxMiksIHVybCgxMSldKTsKLSAgICB1cGRh
dGVBbmREdW1wKGhpc3RvcnksIFt1cmwoMTMpLCB1cmwoMTIpLCB1cmwoMTEpXSk7Ci0gICAgLy8g
Li4uIGFuZCBzd2l0Y2hpbmcgYmV0d2VlbiB0aGVtLgotICAgIHVwZGF0ZUFuZER1bXAoaGlzdG9y
eSwgW3VybCgxMiksIHVybCgxMyksIHVybCgxMSldKTsKLSAgICB1cGRhdGVBbmREdW1wKGhpc3Rv
cnksIFt1cmwoMTEpLCB1cmwoMTIpLCB1cmwoMTMpXSk7Ci0gICAgdXBkYXRlU2Nyb2xsQW5kU2Vs
ZWN0aW9uQW5kRHVtcChoaXN0b3J5LCB1cmwoMTEpLCAxMCwgbmV3IFdlYkluc3BlY3Rvci5UZXh0
UmFuZ2UoMTUsIDUsIDE1LCAxMCkpOwotICAgIC8vIE5vdyBjbG9zZSBzb21lIHRhYnMuCi0gICAg
cmVtb3ZlQW5kRHVtcChoaXN0b3J5LCB1cmwoMTEpKTsKLSAgICByZW1vdmVBbmREdW1wKGhpc3Rv
cnksIHVybCgxMykpOwotICAgIC8vIE5vdyBvcGVuIHNvbWUgb3RoZXIgaW5zdGVhZCBvZiB0aGVt
LgotICAgIHVwZGF0ZUFuZER1bXAoaGlzdG9yeSwgW3VybCgxNCksIHVybCgxMildKTsKLSAgICB1
cGRhdGVBbmREdW1wKGhpc3RvcnksIFt1cmwoMTUpLCB1cmwoMTQpLCB1cmwoMTIpXSk7Ci0gICAg
dXBkYXRlQW5kRHVtcChoaXN0b3J5LCBbdXJsKDE2KSwgdXJsKDE1KSwgdXJsKDE0KSwgdXJsKDEy
KV0pOwotICAgIC8vIENsb3NlIGFsbCBvZiB0aGVtIG9uZSBieSBvbmUuCi0gICAgcmVtb3ZlQW5k
RHVtcChoaXN0b3J5LCB1cmwoMTYpKTsKLSAgICByZW1vdmVBbmREdW1wKGhpc3RvcnksIHVybCgx
NSkpOwotICAgIHJlbW92ZUFuZER1bXAoaGlzdG9yeSwgdXJsKDE0KSk7Ci0gICAgcmVtb3ZlQW5k
RHVtcChoaXN0b3J5LCB1cmwoMTIpKTsKLSAgICByZW1vdmVBbmREdW1wKGhpc3RvcnksIHVybCgx
KSk7Ci0gICAgcmVtb3ZlQW5kRHVtcChoaXN0b3J5LCB1cmwoMikpOwotICAgIHJlbW92ZUFuZER1
bXAoaGlzdG9yeSwgdXJsKDMpKTsKLQotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRl
c3RzIGhpc3Rvcnkgc2F2aW5nIGxvZ2ljIGluIFRhYmJlZEVkaXRvckNvbnRhaW5lci48L3A+Ci08
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5MTIiPkJ1
ZyA3NjkxMjwvYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90YWJiZWQtcGFuZS1tYXgtdGFiLXdpZHRoLWNhbGN1bGF0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtcGFuZS1tYXgtdGFiLXdpZHRoLWNhbGN1
bGF0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU5MzIw
ZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLXBhbmUtbWF4LXRh
Yi13aWR0aC1jYWxjdWxhdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICsw
LDAgQEAKLVRlc3RzIHRhYmJlZCBwYW5lIG1heCB0YWIgZWxlbWVudCB3aWR0aCBjYWxjdWxhdGlv
bi4KLQotQnVnIDc1MDA1Ci1tZWFzdXJlZFdpZHRocyA9IFsyMCw1MCw3MF0sIHRvdGFsV2lkdGgg
PSAxNTAsIG1heFdpZHRoID0gNzAuCi1tZWFzdXJlZFdpZHRocyA9IFsyMCw1MCw4MF0sIHRvdGFs
V2lkdGggPSAxNTAsIG1heFdpZHRoID0gODAuCi1tZWFzdXJlZFdpZHRocyA9IFsyMCw1MCw5MF0s
IHRvdGFsV2lkdGggPSAxNTAsIG1heFdpZHRoID0gODAuCi1tZWFzdXJlZFdpZHRocyA9IFsyMCw5
MCw5MF0sIHRvdGFsV2lkdGggPSAxNTAsIG1heFdpZHRoID0gNjUuCi1tZWFzdXJlZFdpZHRocyA9
IFs3MCw4MCw5MF0sIHRvdGFsV2lkdGggPSAxNTAsIG1heFdpZHRoID0gNTAuCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtcGFuZS1tYXgtdGFiLXdpZHRoLWNhbGN1
bGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLXBhbmUtbWF4LXRhYi13
aWR0aC1jYWxjdWxhdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNGY5
MjU3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtcGFuZS1tYXgt
dGFiLXdpZHRoLWNhbGN1bGF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIGZ1bmN0aW9uIGNhbGN1bGF0ZUFuZER1
bXBNYXhXaWR0aChtZWFzdXJlZFdpZHRocywgdG90YWxXaWR0aCkKLSAgICB7Ci0gICAgICAgIHZh
ciBtYXhXaWR0aCA9IFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZS5fY2FsY3VsYXRl
TWF4V2lkdGgobWVhc3VyZWRXaWR0aHMsIHRvdGFsV2lkdGgpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgibWVhc3VyZWRXaWR0aHMgPSBbIiArIFN0cmluZyhtZWFzdXJlZFdpZHRo
cykgKyAiXSwgdG90YWxXaWR0aCA9ICIgKyB0b3RhbFdpZHRoICsgIiwgbWF4V2lkdGggPSAiICsg
bWF4V2lkdGggKyAiLiIpOwotICAgIH0KLQotICAgIGNhbGN1bGF0ZUFuZER1bXBNYXhXaWR0aChb
NTAsIDcwLCAyMF0sIDE1MCk7Ci0gICAgY2FsY3VsYXRlQW5kRHVtcE1heFdpZHRoKFs1MCwgODAs
IDIwXSwgMTUwKTsKLSAgICBjYWxjdWxhdGVBbmREdW1wTWF4V2lkdGgoWzUwLCA5MCwgMjBdLCAx
NTApOwotICAgIGNhbGN1bGF0ZUFuZER1bXBNYXhXaWR0aChbOTAsIDkwLCAyMF0sIDE1MCk7Ci0g
ICAgY2FsY3VsYXRlQW5kRHVtcE1heFdpZHRoKFs5MCwgODAsIDcwXSwgMTUwKTsKLQotICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRhYmJlZCBwYW5lIG1heCB0YWIgZWxlbWVu
dCB3aWR0aCBjYWxjdWxhdGlvbi48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMDUiPkJ1ZyA3NTAwNTwvYT4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtcGFuZS10YWJzLXRvLXNo
b3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1wYW5lLXRhYnMt
dG8tc2hvdy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmMTkz
ZTMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1wYW5lLXRhYnMt
dG8tc2hvdy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMDggKzAsMCBAQAotVGVz
dHMgdGFiYmVkIHBhbmUgdGFicyB0byBzaG93IGNhbGN1bGF0aW9uLgotCi1CdWcgNzUwODUKLVJ1
bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcw
XQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiAwLHRhYiAxLHRhYiAyLHRhYiAzLHRhYiA0LHRhYiA1
XQotICAgIHRvdGFsV2lkdGggPSAzNzAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEw
Ci0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMCwxLDIsMyw0LDVdCi1SdW5uaW5nIHRhYnMgdG8g
c2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlz
dG9yeSA9IFt0YWIgMCx0YWIgMSx0YWIgMix0YWIgMyx0YWIgNCx0YWIgNV0KLSAgICB0b3RhbFdp
ZHRoID0gMzYwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1No
b3dJbmRleGVzID0gWzAsMSwyLDMsNCw1XQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAg
ICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDAs
dGFiIDEsdGFiIDIsdGFiIDMsdGFiIDQsdGFiIDVdCi0gICAgdG90YWxXaWR0aCA9IDM1MCwgZHJv
cERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFsw
LDEsMiwzLDRdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1
MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgMCx0YWIgMSx0YWIgMix0YWIg
Myx0YWIgNCx0YWIgNV0KLSAgICB0b3RhbFdpZHRoID0gMzAwLCBkcm9wRG93bkJ1dHRvbk1lYXN1
cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRleGVzID0gWzAsMSwyLDMsNF0KLVJ1bm5p
bmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQot
ICAgIHRhYnNIaXN0b3J5ID0gW3RhYiAwLHRhYiAxLHRhYiAyLHRhYiAzLHRhYiA0LHRhYiA1XQot
ICAgIHRvdGFsV2lkdGggPSAyNTAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0g
ICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMCwxLDIsM10KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRl
c3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0g
W3RhYiAwLHRhYiAxLHRhYiAyLHRhYiAzLHRhYiA0LHRhYiA1XQotICAgIHRvdGFsV2lkdGggPSAy
MDAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4
ZXMgPSBbMCwxLDJdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1
MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgMCx0YWIgMSx0YWIgMix0
YWIgMyx0YWIgNCx0YWIgNV0KLSAgICB0b3RhbFdpZHRoID0gMTUwLCBkcm9wRG93bkJ1dHRvbk1l
YXN1cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRleGVzID0gWzAsMV0KLVJ1bm5pbmcg
dGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAg
IHRhYnNIaXN0b3J5ID0gW3RhYiAwLHRhYiAxLHRhYiAyLHRhYiAzLHRhYiA0LHRhYiA1XQotICAg
IHRvdGFsV2lkdGggPSAxMDAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAg
dGFic1RvU2hvd0luZGV4ZXMgPSBbMF0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAg
d2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiAwLHRh
YiAxLHRhYiAyLHRhYiAzLHRhYiA0LHRhYiA1XQotICAgIHRvdGFsV2lkdGggPSA2MCwgZHJvcERv
d25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFswXQot
UnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAs
NzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDAsdGFiIDEsdGFiIDIsdGFiIDMsdGFiIDQsdGFi
IDVdCi0gICAgdG90YWxXaWR0aCA9IDUwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAx
MAotICAgIHRhYnNUb1Nob3dJbmRleGVzID0gW10KLQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVz
dDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBb
dGFiIDUsdGFiIDQsdGFiIDMsdGFiIDIsdGFiIDEsdGFiIDBdCi0gICAgdG90YWxXaWR0aCA9IDM3
MCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhl
cyA9IFswLDEsMiwzLDQsNV0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhz
ID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiA1LHRhYiA0LHRh
YiAzLHRhYiAyLHRhYiAxLHRhYiAwXQotICAgIHRvdGFsV2lkdGggPSAzNjAsIGRyb3BEb3duQnV0
dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMCwxLDIsMyw0
LDVdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1MCw2MCw2
MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgNSx0YWIgNCx0YWIgMyx0YWIgMix0YWIg
MSx0YWIgMF0KLSAgICB0b3RhbFdpZHRoID0gMzUwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lk
dGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRleGVzID0gWzEsMiwzLDQsNV0KLVJ1bm5pbmcgdGFi
cyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRh
YnNIaXN0b3J5ID0gW3RhYiA1LHRhYiA0LHRhYiAzLHRhYiAyLHRhYiAxLHRhYiAwXQotICAgIHRv
dGFsV2lkdGggPSAzMDAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFi
c1RvU2hvd0luZGV4ZXMgPSBbMiwzLDQsNV0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0g
ICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiA1
LHRhYiA0LHRhYiAzLHRhYiAyLHRhYiAxLHRhYiAwXQotICAgIHRvdGFsV2lkdGggPSAyNTAsIGRy
b3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBb
Myw0LDVdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1MCw2
MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgNSx0YWIgNCx0YWIgMyx0YWIgMix0
YWIgMSx0YWIgMF0KLSAgICB0b3RhbFdpZHRoID0gMjAwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVk
V2lkdGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRleGVzID0gWzQsNV0KLVJ1bm5pbmcgdGFicyB0
byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNI
aXN0b3J5ID0gW3RhYiA1LHRhYiA0LHRhYiAzLHRhYiAyLHRhYiAxLHRhYiAwXQotICAgIHRvdGFs
V2lkdGggPSAxNTAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1Rv
U2hvd0luZGV4ZXMgPSBbNCw1XQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0
aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDUsdGFiIDQs
dGFiIDMsdGFiIDIsdGFiIDEsdGFiIDBdCi0gICAgdG90YWxXaWR0aCA9IDEwMCwgZHJvcERvd25C
dXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFs1XQotUnVu
bmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBd
Ci0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDUsdGFiIDQsdGFiIDMsdGFiIDIsdGFiIDEsdGFiIDBd
Ci0gICAgdG90YWxXaWR0aCA9IDYwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAot
ICAgIHRhYnNUb1Nob3dJbmRleGVzID0gW10KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0g
ICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiA1
LHRhYiA0LHRhYiAzLHRhYiAyLHRhYiAxLHRhYiAwXQotICAgIHRvdGFsV2lkdGggPSA1MCwgZHJv
cERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFtd
Ci0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYw
LDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiAwLHRhYiAyLHRhYiA0LHRhYiAxLHRhYiAz
LHRhYiA1XQotICAgIHRvdGFsV2lkdGggPSAzNzAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0
aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMCwxLDIsMyw0LDVdCi1SdW5uaW5nIHRh
YnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0
YWJzSGlzdG9yeSA9IFt0YWIgMCx0YWIgMix0YWIgNCx0YWIgMSx0YWIgMyx0YWIgNV0KLSAgICB0
b3RhbFdpZHRoID0gMzYwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRh
YnNUb1Nob3dJbmRleGVzID0gWzAsMSwyLDMsNCw1XQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVz
dDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBb
dGFiIDAsdGFiIDIsdGFiIDQsdGFiIDEsdGFiIDMsdGFiIDVdCi0gICAgdG90YWxXaWR0aCA9IDM1
MCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhl
cyA9IFswLDEsMiwzLDRdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9
IFs1MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgMCx0YWIgMix0YWIg
NCx0YWIgMSx0YWIgMyx0YWIgNV0KLSAgICB0b3RhbFdpZHRoID0gMzAwLCBkcm9wRG93bkJ1dHRv
bk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRleGVzID0gWzAsMSwyLDMsNF0K
LVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcw
LDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiAwLHRhYiAyLHRhYiA0LHRhYiAxLHRhYiAzLHRh
YiA1XQotICAgIHRvdGFsV2lkdGggPSAyNTAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9
IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMCwxLDIsNF0KLVJ1bm5pbmcgdGFicyB0byBz
aG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0
b3J5ID0gW3RhYiAwLHRhYiAyLHRhYiA0LHRhYiAxLHRhYiAzLHRhYiA1XQotICAgIHRvdGFsV2lk
dGggPSAyMDAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hv
d0luZGV4ZXMgPSBbMCwyLDRdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRo
cyA9IFs1MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgMCx0YWIgMix0
YWIgNCx0YWIgMSx0YWIgMyx0YWIgNV0KLSAgICB0b3RhbFdpZHRoID0gMTUwLCBkcm9wRG93bkJ1
dHRvbk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRleGVzID0gWzAsMl0KLVJ1
bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcw
XQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiAwLHRhYiAyLHRhYiA0LHRhYiAxLHRhYiAzLHRhYiA1
XQotICAgIHRvdGFsV2lkdGggPSAxMDAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEw
Ci0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMF0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6
Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3Rh
YiAwLHRhYiAyLHRhYiA0LHRhYiAxLHRhYiAzLHRhYiA1XQotICAgIHRvdGFsV2lkdGggPSA2MCwg
ZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9
IFswXQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAs
NjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDAsdGFiIDIsdGFiIDQsdGFiIDEsdGFi
IDMsdGFiIDVdCi0gICAgdG90YWxXaWR0aCA9IDUwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lk
dGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRleGVzID0gW10KLQotUnVubmluZyB0YWJzIHRvIHNo
b3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3Rv
cnkgPSBbdGFiIDUsdGFiIDMsdGFiIDEsdGFiIDQsdGFiIDIsdGFiIDBdCi0gICAgdG90YWxXaWR0
aCA9IDM3MCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93
SW5kZXhlcyA9IFswLDEsMiwzLDQsNV0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAg
d2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiA1LHRh
YiAzLHRhYiAxLHRhYiA0LHRhYiAyLHRhYiAwXQotICAgIHRvdGFsV2lkdGggPSAzNjAsIGRyb3BE
b3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMCwx
LDIsMyw0LDVdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1
MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgNSx0YWIgMyx0YWIgMSx0YWIg
NCx0YWIgMix0YWIgMF0KLSAgICB0b3RhbFdpZHRoID0gMzUwLCBkcm9wRG93bkJ1dHRvbk1lYXN1
cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRleGVzID0gWzEsMiwzLDQsNV0KLVJ1bm5p
bmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQot
ICAgIHRhYnNIaXN0b3J5ID0gW3RhYiA1LHRhYiAzLHRhYiAxLHRhYiA0LHRhYiAyLHRhYiAwXQot
ICAgIHRvdGFsV2lkdGggPSAzMDAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0g
ICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMSwzLDQsNV0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRl
c3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0g
W3RhYiA1LHRhYiAzLHRhYiAxLHRhYiA0LHRhYiAyLHRhYiAwXQotICAgIHRvdGFsV2lkdGggPSAy
NTAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4
ZXMgPSBbMSwzLDVdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1
MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgNSx0YWIgMyx0YWIgMSx0
YWIgNCx0YWIgMix0YWIgMF0KLSAgICB0b3RhbFdpZHRoID0gMjAwLCBkcm9wRG93bkJ1dHRvbk1l
YXN1cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRleGVzID0gWzEsMyw1XQotUnVubmlu
ZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0g
ICAgdGFic0hpc3RvcnkgPSBbdGFiIDUsdGFiIDMsdGFiIDEsdGFiIDQsdGFiIDIsdGFiIDBdCi0g
ICAgdG90YWxXaWR0aCA9IDE1MCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAg
ICB0YWJzVG9TaG93SW5kZXhlcyA9IFszLDVdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0Ogot
ICAgIHdpZHRocyA9IFs1MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIg
NSx0YWIgMyx0YWIgMSx0YWIgNCx0YWIgMix0YWIgMF0KLSAgICB0b3RhbFdpZHRoID0gMTAwLCBk
cm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRleGVzID0g
WzVdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1MCw2MCw2
MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgNSx0YWIgMyx0YWIgMSx0YWIgNCx0YWIg
Mix0YWIgMF0KLSAgICB0b3RhbFdpZHRoID0gNjAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0
aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbXQotUnVubmluZyB0YWJzIHRvIHNob3cg
dGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3Rvcnkg
PSBbdGFiIDUsdGFiIDMsdGFiIDEsdGFiIDQsdGFiIDIsdGFiIDBdCi0gICAgdG90YWxXaWR0aCA9
IDUwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRl
eGVzID0gW10KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLXBh
bmUtdGFicy10by1zaG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLXBhbmUt
dGFicy10by1zaG93Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkMmJlZTcu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1wYW5lLXRhYnMtdG8t
c2hvdy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci12YXIgdGVzdCA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBmdW5jdGlvbiBjcmVhdGVGYWtlVGFiKHRpdGxlLCB3aWR0aCkKLSAg
ICB7Ci0gICAgICAgIGZ1bmN0aW9uIHRvU3RyaW5nKCkKLSAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIHRpdGxlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB7IHdpZHRoOiBmdW5jdGlv
bigpIHsgcmV0dXJuIHdpZHRoOyB9LCB0aXRsZTogdGl0bGUsIHRvU3RyaW5nOiB0b1N0cmluZyB9
OwotICAgIH0KLQotICAgIHZhciBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMDsKLSAg
ICBmdW5jdGlvbiBnZXRUYWJzVG9TaG93QW5kRHVtcFJlc3VsdHModGFic09yZGVyZWQsIHRhYnNI
aXN0b3J5LCB0b3RhbFdpZHRoKQotICAgIHsKLSAgICAgICAgdmFyIHRhYnNUb1Nob3dJbmRleGVz
ID0gV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlLl90YWJzVG9TaG93SW5kZXhlcyh0
YWJzT3JkZXJlZCwgdGFic0hpc3RvcnksIHRvdGFsV2lkdGgsIGRyb3BEb3duQnV0dG9uTWVhc3Vy
ZWRXaWR0aCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgdGFic1RvU2hv
d0luZGV4ZXMgPSBbIiArIFN0cmluZyh0YWJzVG9TaG93SW5kZXhlcykgKyAiXSIpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHRlc3RXaWR0aHNBbmRIaXN0b3J5KHdpZHRocywgaGlzdG9yeSwgdG90
YWxXaWR0aCkKLSAgICB7Ci0gICAgICAgIHZhciB0YWJzT3JkZXJlZCA9IFtdOwotICAgICAgICB2
YXIgdGFic0hpc3RvcnkgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3aWR0aHMu
bGVuZ3RoOyBpKyspCi0gICAgICAgICAgICB0YWJzT3JkZXJlZC5wdXNoKGNyZWF0ZUZha2VUYWIo
InRhYiAiICsgaSwgd2lkdGhzW2ldKSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGlz
dG9yeS5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIHRhYnNIaXN0b3J5LnB1c2godGFic09yZGVy
ZWRbaGlzdG9yeVtpXV0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUnVubmlu
ZyB0YWJzIHRvIHNob3cgdGVzdDoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiAgICB3aWR0aHMgPSBbIiArIFN0cmluZyh3aWR0aHMpICsgIl0iKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIiAgICB0YWJzSGlzdG9yeSA9IFsiICsgU3RyaW5nKHRhYnNIaXN0
b3J5KSArICJdIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgdG90YWxX
aWR0aCA9ICIgKyB0b3RhbFdpZHRoICsgIiwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0g
IiArIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCk7Ci0gICAgICAgIGdldFRhYnNUb1Nob3dB
bmREdW1wUmVzdWx0cyh0YWJzT3JkZXJlZCwgdGFic0hpc3RvcnksIHRvdGFsV2lkdGgpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHRlc3RXaXRoRGlmZmVyZW50VG90YWxXaWR0aHMod2lkdGhzLCBo
aXN0b3J5KQotICAgIHsKLSAgICAgICAgdGVzdFdpZHRoc0FuZEhpc3Rvcnkod2lkdGhzLCBoaXN0
b3J5LCAzNzApOwotICAgICAgICB0ZXN0V2lkdGhzQW5kSGlzdG9yeSh3aWR0aHMsIGhpc3Rvcnks
IDM2MCk7Ci0gICAgICAgIHRlc3RXaWR0aHNBbmRIaXN0b3J5KHdpZHRocywgaGlzdG9yeSwgMzUw
KTsKLSAgICAgICAgdGVzdFdpZHRoc0FuZEhpc3Rvcnkod2lkdGhzLCBoaXN0b3J5LCAzMDApOwot
ICAgICAgICB0ZXN0V2lkdGhzQW5kSGlzdG9yeSh3aWR0aHMsIGhpc3RvcnksIDI1MCk7Ci0gICAg
ICAgIHRlc3RXaWR0aHNBbmRIaXN0b3J5KHdpZHRocywgaGlzdG9yeSwgMjAwKTsKLSAgICAgICAg
dGVzdFdpZHRoc0FuZEhpc3Rvcnkod2lkdGhzLCBoaXN0b3J5LCAxNTApOwotICAgICAgICB0ZXN0
V2lkdGhzQW5kSGlzdG9yeSh3aWR0aHMsIGhpc3RvcnksIDEwMCk7Ci0gICAgICAgIHRlc3RXaWR0
aHNBbmRIaXN0b3J5KHdpZHRocywgaGlzdG9yeSwgNjApOwotICAgICAgICB0ZXN0V2lkdGhzQW5k
SGlzdG9yeSh3aWR0aHMsIGhpc3RvcnksIDUwKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiIpOwotICAgIH0KLQotICAgIHZhciB3aWR0aHMgPSBbNTAsIDUwLCA2MCwgNjAsIDcw
LCA3MF07Ci0gICAgdGVzdFdpdGhEaWZmZXJlbnRUb3RhbFdpZHRocyh3aWR0aHMsIFswLCAxLCAy
LCAzLCA0LCA1XSk7Ci0gICAgdGVzdFdpdGhEaWZmZXJlbnRUb3RhbFdpZHRocyh3aWR0aHMsIFs1
LCA0LCAzLCAyLCAxLCAwXSk7Ci0gICAgdGVzdFdpdGhEaWZmZXJlbnRUb3RhbFdpZHRocyh3aWR0
aHMsIFswLCAyLCA0LCAxLCAzLCA1XSk7Ci0gICAgdGVzdFdpdGhEaWZmZXJlbnRUb3RhbFdpZHRo
cyh3aWR0aHMsIFs1LCAzLCAxLCA0LCAyLCAwXSk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD5UZXN0cyB0YWJiZWQgcGFuZSB0YWJzIHRvIHNob3cgY2FsY3VsYXRpb24uPC9wPgot
PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDg1Ij5C
dWcgNzUwODU8L2E+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUtZGZzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS1kZnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxM2E2YzFmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1k
ZnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotVGVzdHMgVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzIGZ1bmN0aW9uLgotCi1ERlMgcHJl
b3JkZXI6Ci1hCi1hYQotYWFhCi1hYWIKLWFiCi1hYmEKLWFiYgotYgotYmEKLWJhYQotYmFiCi1i
YgotYmJhCi1iYmIKLQotREZTIHBvc3RvcmRlcjoKLWFhYQotYWFiCi1hYQotYWJhCi1hYmIKLWFi
Ci1hCi1iYWEKLWJhYgotYmEKLWJiYQotYmJiCi1iYgotYgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZGZzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUtZGZzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlZTE1Mjgu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWRmcy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQot
ewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInRpbWVsaW5lIik7Ci0KLSAgICBmdW5jdGlv
biBkdW1wZXIocmVjb3JkKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
cmVjb3JkLm5hbWUpOwotICAgIH0KLQotICAgIHZhciByZWNvcmRzID0gWwotICAgICAgICB7Im5h
bWUiIDogImEiLCAiY2hpbGRyZW4iIDogWwotICAgICAgICAgICAgeyJuYW1lIiA6ICJhYSIsICJj
aGlsZHJlbiI6IFsKLSAgICAgICAgICAgICAgICB7Im5hbWUiIDogImFhYSJ9LAotICAgICAgICAg
ICAgICAgIHsibmFtZSIgOiAiYWFiIn0sCi0gICAgICAgICAgICBdfSwKLSAgICAgICAgICAgIHsi
bmFtZSIgOiAiYWIiLCAiY2hpbGRyZW4iOlsKLSAgICAgICAgICAgICAgICB7Im5hbWUiIDogImFi
YSJ9LAotICAgICAgICAgICAgICAgIHsibmFtZSIgOiAiYWJiIn0sCi0gICAgICAgICAgICBdfQot
ICAgICAgICBdfSwKLSAgICAgICAgeyJuYW1lIiA6ICJiIiwgImNoaWxkcmVuIiA6IFsKLSAgICAg
ICAgICAgIHsibmFtZSIgOiAiYmEiLCAiY2hpbGRyZW4iIDogWwotICAgICAgICAgICAgICAgIHsi
bmFtZSIgOiAiYmFhIn0sCi0gICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJiYWIifSwKLSAgICAg
ICAgICAgIF19LAotICAgICAgICAgICAgeyJuYW1lIiA6ICJiYiIsICJjaGlsZHJlbiI6WwotICAg
ICAgICAgICAgICAgIHsibmFtZSIgOiAiYmJhIn0sCi0gICAgICAgICAgICAgICAgeyJuYW1lIiA6
ICJiYmIifSwKLSAgICAgICAgICAgIF19Ci0gICAgICAgIF19LAotICAgIF07Ci0KLSAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiREZTIHByZW9yZGVyOiIpOwotICAgIFdlYkluc3BlY3Rvci5U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMocmVjb3JkcywgZHVtcGVyKTsK
LSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiREZTIHBvc3RvcmRlcjoiKTsKLSAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVz
ZW50YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzKHJlY29yZHMsIG51bGwsIGR1bXBlcik7Ci0gICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBUaW1lbGluZVByZXNlbnRhdGlvbk1v
ZGVsLmZvckFsbFJlY29yZHMgZnVuY3Rpb24uPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy9hbkltYWdlLnBu
ZyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9yZXNvdXJjZXMvYW5JbWFnZS5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkMWEwZTYuLjAwMDAwMDAKQmluYXJ5IGZp
bGVzIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy9hbkltYWdlLnBu
ZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lL3Jlc291cmNlcy9hbm90aGVySW1hZ2UucG5nIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lL3Jlc291cmNlcy9hbm90aGVySW1hZ2UucG5nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyZDFhMGU2Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS9yZXNvdXJjZXMvYW5vdGhlckltYWdlLnBuZyBhbmQgL2Rldi9u
dWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Jl
c291cmNlcy9iaWcucG5nIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291cmNl
cy9iaWcucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBiZWVlYWRiLi4wMDAwMDAw
CkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9yZXNvdXJjZXMv
YmlnLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy90ZXN0LmJtcCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS9yZXNvdXJjZXMvdGVzdC5ibXAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDgwMmEwYzkuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lL3Jlc291cmNlcy90ZXN0LmJtcCBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy90ZXN0LmdpZiBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9yZXNvdXJjZXMvdGVzdC5naWYKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDNhYTIwOTguLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy90ZXN0LmdpZiBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
L3Jlc291cmNlcy90ZXN0LmljbyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9yZXNv
dXJjZXMvdGVzdC5pY28KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGY5NzIzZWUuLjAw
MDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291
cmNlcy90ZXN0LmljbyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy90ZXN0LmpwZyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS9yZXNvdXJjZXMvdGVzdC5qcGcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDdlMTRmYzYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy90ZXN0LmpwZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy90ZXN0
LnBuZyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9yZXNvdXJjZXMvdGVzdC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDZjZmFkYzMuLjAwMDAwMDAKQmluYXJ5IGZp
bGVzIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy90ZXN0LnBuZyBh
bmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3Jlc291cmNlcy90ZXN0LndlYnAgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvcmVzb3VyY2VzL3Rlc3Qud2VicApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZjY1
NmYxNC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvcmVzb3VyY2VzL3Rlc3Qud2VicCBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy90aW1lbGluZS1pZnJhbWUt
ZGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Jlc291cmNlcy90aW1l
bGluZS1pZnJhbWUtZGF0YS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZmRh
YTIxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9yZXNvdXJj
ZXMvdGltZWxpbmUtaWZyYW1lLWRhdGEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotY29uc29sZS50aW1lU3RhbXAoIlNDUklQVCBU
QUciKTsKLQotZnVuY3Rpb24gaWZyYW1lT25sb2FkKCkKLXsKLSAgICBjb25zb2xlLmxvZygiaWZy
YW1lIGxvYWRlZCIpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0iaWZy
YW1lT25sb2FkKCkiPgotICAgIDxkaXY+Rm9vPC9kaXY+Ci08L2JvZHk+Ci0KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS9yZXNvdXJjZXMvdGltZWxp
bmUtaWZyYW1lLXBhaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvcmVz
b3VyY2VzL3RpbWVsaW5lLWlmcmFtZS1wYWludC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyZWExN2M5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1l
bGluZS9yZXNvdXJjZXMvdGltZWxpbmUtaWZyYW1lLXBhaW50Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08Ym9keSBzdHlsZT0ibWFyZ2luOiAwIj4K
LSAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBibG9jazsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0
OiAxNXB4OyB0b3A6IDE1cHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQt
Y29sb3I6IGJsdWUiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtYW5pbWF0aW9u
LWZyYW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWZlMDkz
Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
YW5pbWF0aW9uLWZyYW1lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAg
QEAKLVRlc3RzIHRoZSBUaW1lbGluZSBldmVudHMgZm9yIEFuaW1hdGlvbiBGcmFtZSBmZWF0dXJl
Ci0KLVJlcXVlc3RBbmltYXRpb25GcmFtZSBQcm9wZXJ0aWVzOgotewotICAgIGNvdW50ZXJzIDog
PG9iamVjdD4KLSAgICBkYXRhIDogewotICAgICAgICBpZCA6IDxudW1iZXI+Ci0gICAgfQotICAg
IGZyYW1lSWQgOiA8c3RyaW5nPgotICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0PgotICAgIHN0YXJ0
VGltZSA6IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiCi0gICAg
dXNlZEhlYXBTaXplIDogPG51bWJlcj4KLX0KLUZpcmVBbmltYXRpb25GcmFtZSBQcm9wZXJ0aWVz
OgotewotICAgIGNoaWxkcmVuIDogPG9iamVjdD4KLSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0g
ICAgZGF0YSA6IHsKLSAgICAgICAgaWQgOiA8bnVtYmVyPgotICAgIH0KLSAgICBlbmRUaW1lIDog
PG51bWJlcj4KLSAgICBmcmFtZUlkIDogPHN0cmluZz4KLSAgICBzdGFydFRpbWUgOiA8bnVtYmVy
PgotICAgIHR5cGUgOiAiRmlyZUFuaW1hdGlvbkZyYW1lIgotICAgIHVzZWRIZWFwU2l6ZSA6IDxu
dW1iZXI+Ci19Ci1DYW5jZWxBbmltYXRpb25GcmFtZSBQcm9wZXJ0aWVzOgotewotICAgIGNvdW50
ZXJzIDogPG9iamVjdD4KLSAgICBkYXRhIDogewotICAgICAgICBpZCA6IDxudW1iZXI+Ci0gICAg
fQotICAgIGZyYW1lSWQgOiA8c3RyaW5nPgotICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0PgotICAg
IHN0YXJ0VGltZSA6IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJDYW5jZWxBbmltYXRpb25GcmFtZSIK
LSAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtYW5pbWF0aW9uLWZyYW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtYW5pbWF0aW9uLWZyYW1lLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlYTAyOWUuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBwZXJmb3JtQWN0aW9ucygpCi17
Ci0gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5pbWF0aW9uIik7
Ci0gICAgdmFyIHJlcXVlc3RJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0
aW9uRnJhbWVDYWxsYmFjaywgZWxlbWVudCk7Ci0gICAgZnVuY3Rpb24gYW5pbWF0aW9uRnJhbWVD
YWxsYmFjaygpCi0gICAgewotICAgICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUocmVx
dWVzdElkKTsKLSAgICB9Ci0KLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0
b3JUZXN0LnN0YXJ0VGltZWxpbmUoZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoInBlcmZvcm1BY3Rpb25zKCkiKTsKLSAgICB9KTsKLQotICAgIEluc3Bl
Y3RvclRlc3Qud2FpdEZvclJlY29yZFR5cGUoIkNhbmNlbEFuaW1hdGlvbkZyYW1lIiwgZmluaXNo
KTsKLQotICAgIGZ1bmN0aW9uIGZpbmlzaCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LnByaW50VGltZWxpbmVSZWNvcmRzKCJSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5wcmludFRpbWVsaW5lUmVjb3JkcygiRmlyZUFuaW1hdGlvbkZyYW1lIik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QucHJpbnRUaW1lbGluZVJlY29yZHMoIkNhbmNlbEFuaW1h
dGlvbkZyYW1lIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAg
fQotfQotCi1pZiAoIXdpbmRvdy50ZXN0UnVubmVyKQotICAgIHNldFRpbWVvdXQocGVyZm9ybUFj
dGlvbnMsIDIwMDApOwotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGUgVGltZWxpbmUgZXZlbnRzIGZvciBBbmltYXRpb24gRnJh
bWUgZmVhdHVyZQotPC9wPgotPGRpdiBpZD0iYW5pbWF0aW9uIj4KLQotPC9kaXY+Ci0KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS1jb2FsZXNjaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1jb2FsZXNjaW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZGM4NTE1Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdGltZWxpbmUvdGltZWxpbmUtY29hbGVzY2luZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxMSArMCwwIEBACi1UZXN0IHRpbWVsaW5lIHJlY29yZHMgY29hbGVzY2luZwotCi1S
b290Ci0tLS0tPiBMYXlvdXQKLS0tLS0tLS0tPiBMYXlvdXQKLS0tLS0tLS0tPiBMYXlvdXQKLS0t
LS0tLS0tPiBMYXlvdXQKLS0tLS0+IExheW91dAotY29hbGVzY2VkIHJlY29yZCdzIGhhc1dhcm5p
bmc6IHVuZGVmaW5lZAotY29hbGVzY2VkIHJlY29yZCdzIGNoaWxkSGFzV2FybmluZzogdHJ1ZQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtY29h
bGVzY2luZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWNv
YWxlc2NpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODIyMmJhYS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtY29hbGVz
Y2luZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJ0aW1lbGluZSIpOwotCi0gICAgdmFyIHJlY29y
ZHMgPSBbCi0gICAgICAgIHsic3RhcnRUaW1lIjogMTAwMC4wMDAsImRhdGEiOnt9LCJlbmRUaW1l
IjoxMDk5Ljk5OSwidHlwZSI6IlByb2dyYW0iLCJjaGlsZHJlbiI6WwotICAgICAgICAgICAgeyJz
dGFydFRpbWUiOjEwMDAuMDAxLCAiZW5kVGltZSI6MTA5OS45LCJ0eXBlIjoiTGF5b3V0IiwiZnJh
bWVJZCI6IjIiLCJkYXRhIjp7fSwKLSAgICAgICAgICAgICJzdGFja1RyYWNlIjogWwotICAgICAg
ICAgICAgICAgIHsiZnVuY3Rpb25OYW1lIjoiZnVuYyIsInVybCI6Imh0dHA6Ly9leGFtcGxlLmNv
bSIsImxpbmVOdW1iZXIiOjQyLCJjb2x1bW5OdW1iZXIiOjF9Ci0gICAgICAgICAgICBdfQotICAg
ICAgICBdfSwKLSAgICAgICAgeyJzdGFydFRpbWUiOjExMDAuMDAwLCJkYXRhIjp7fSwiZW5kVGlt
ZSI6MTE5OS45OTksInR5cGUiOiJQcm9ncmFtIiwiY2hpbGRyZW4iOlsKLSAgICAgICAgICAgIHsi
c3RhcnRUaW1lIjoxMTAwLjAwMSwgImVuZFRpbWUiOjExOTkuOSwidHlwZSI6IkxheW91dCIsImZy
YW1lSWQiOiIyIiwiZGF0YSI6e319Ci0gICAgICAgIF19LAotICAgICAgICB7InN0YXJ0VGltZSI6
MTIwMC4wMDAsImRhdGEiOnt9LCJlbmRUaW1lIjoxMjk5Ljk5OSwidHlwZSI6IlByb2dyYW0iLCJj
aGlsZHJlbiI6WwotICAgICAgICAgICAgeyJzdGFydFRpbWUiOjEyMDAuMDAxLCAiZW5kVGltZSI6
MTI5OS45LCJ0eXBlIjoiTGF5b3V0IiwiZnJhbWVJZCI6IjIiLCJkYXRhIjp7fX0KLSAgICAgICAg
XX0sCi0gICAgICAgIHsic3RhcnRUaW1lIjoxMzAwLjAwMCwiZGF0YSI6e30sImVuZFRpbWUiOjEz
OTkuOTk5LCJ0eXBlIjoiUHJvZ3JhbSIsImNoaWxkcmVuIjpbCi0gICAgICAgICAgICB7InN0YXJ0
VGltZSI6MTMwMS4wMDEsICJlbmRUaW1lIjoxMzk5LjksInR5cGUiOiJMYXlvdXQiLCJmcmFtZUlk
IjoiMiIsImRhdGEiOnt9fQotICAgICAgICBdfSwKLSAgICBdOwotCi0gICAgdmFyIG1vZGVsID0g
V2ViSW5zcGVjdG9yLnBhbmVscy50aW1lbGluZS5fbW9kZWw7Ci0gICAgdmFyIHByZXNlbnRhdGlv
bk1vZGVsID0gV2ViSW5zcGVjdG9yLnBhbmVscy50aW1lbGluZS5fcHJlc2VudGF0aW9uTW9kZWw7
Ci0KLSAgICByZWNvcmRzLmZvckVhY2gobW9kZWwuX2FkZFJlY29yZCwgbW9kZWwpOwotICAgIElu
c3BlY3RvclRlc3QuZHVtcFRpbWVsaW5lUmVjb3JkKHByZXNlbnRhdGlvbk1vZGVsLnJvb3RSZWNv
cmQoKSk7Ci0gICAgdmFyIGNvYWxlc2NlZCA9IHByZXNlbnRhdGlvbk1vZGVsLnJvb3RSZWNvcmQo
KS5jaGlsZHJlblswXTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiY29hbGVzY2VkIHJl
Y29yZCdzIGhhc1dhcm5pbmc6ICIgKyBjb2FsZXNjZWQuaGFzV2FybmluZyk7Ci0gICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoImNvYWxlc2NlZCByZWNvcmQncyBjaGlsZEhhc1dhcm5pbmc6ICIg
KyBjb2FsZXNjZWQuY2hpbGRIYXNXYXJuaW5nKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotPHA+Ci1UZXN0IHRpbWVsaW5lIHJlY29yZHMgY29hbGVzY2luZzwvYT4KLTwvcD4KLQot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLWRlY29kZS1yZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWRlY29kZS1yZXNpemUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NGI4MzM3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1kZWNvZGUtcmVzaXplLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDE4NiArMCwwIEBACi1UZXN0cyB0aGUgVGltZWxpbmUgQVBJ
IGluc3RydW1lbnRhdGlvbiBvZiBhIERlY29kZUltYWdlIGFuZCBSZXNpemVJbWFnZSBldmVudHMK
LQotCi1EZWNvZGVJbWFnZSBQcm9wZXJ0aWVzOgotewotICAgIGNoaWxkcmVuIDogPG9iamVjdD4K
LSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6IHsKLSAgICAgICAgaW1hZ2VUeXBl
IDogIkJNUCIKLSAgICB9Ci0gICAgZW5kVGltZSA6IDxudW1iZXI+Ci0gICAgc3RhY2tUcmFjZSA6
IDxvYmplY3Q+Ci0gICAgc3RhcnRUaW1lIDogPG51bWJlcj4KLSAgICB0eXBlIDogIkRlY29kZUlt
YWdlIgotICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+Ci19Ci1SZXNpemVJbWFnZSBQcm9wZXJ0
aWVzOgotewotICAgIGNoaWxkcmVuIDogPG9iamVjdD4KLSAgICBjb3VudGVycyA6IDxvYmplY3Q+
Ci0gICAgZGF0YSA6IHsKLSAgICAgICAgY2FjaGVkIDogdHJ1ZQotICAgIH0KLSAgICBlbmRUaW1l
IDogPG51bWJlcj4KLSAgICBzdGFja1RyYWNlIDogPG9iamVjdD4KLSAgICBzdGFydFRpbWUgOiA8
bnVtYmVyPgotICAgIHR5cGUgOiAiUmVzaXplSW1hZ2UiCi0gICAgdXNlZEhlYXBTaXplIDogPG51
bWJlcj4KLX0KLURlY29kZUltYWdlIFByb3BlcnRpZXM6Ci17Ci0gICAgY2hpbGRyZW4gOiA8b2Jq
ZWN0PgotICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLSAgICBkYXRhIDogewotICAgICAgICBpbWFn
ZVR5cGUgOiAiR0lGIgotICAgIH0KLSAgICBlbmRUaW1lIDogPG51bWJlcj4KLSAgICBzdGFja1Ry
YWNlIDogPG9iamVjdD4KLSAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgotICAgIHR5cGUgOiAiRGVj
b2RlSW1hZ2UiCi0gICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KLX0KLVJlc2l6ZUltYWdlIFBy
b3BlcnRpZXM6Ci17Ci0gICAgY2hpbGRyZW4gOiA8b2JqZWN0PgotICAgIGNvdW50ZXJzIDogPG9i
amVjdD4KLSAgICBkYXRhIDogewotICAgICAgICBjYWNoZWQgOiB0cnVlCi0gICAgfQotICAgIGVu
ZFRpbWUgOiA8bnVtYmVyPgotICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0PgotICAgIHN0YXJ0VGlt
ZSA6IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJSZXNpemVJbWFnZSIKLSAgICB1c2VkSGVhcFNpemUg
OiA8bnVtYmVyPgotfQotRGVjb2RlSW1hZ2UgUHJvcGVydGllczoKLXsKLSAgICBjaGlsZHJlbiA6
IDxvYmplY3Q+Ci0gICAgY291bnRlcnMgOiA8b2JqZWN0PgotICAgIGRhdGEgOiB7Ci0gICAgICAg
IGltYWdlVHlwZSA6ICJJQ08iCi0gICAgfQotICAgIGVuZFRpbWUgOiA8bnVtYmVyPgotICAgIHN0
YWNrVHJhY2UgOiA8b2JqZWN0PgotICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+Ci0gICAgdHlwZSA6
ICJEZWNvZGVJbWFnZSIKLSAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotUmVzaXplSW1h
Z2UgUHJvcGVydGllczoKLXsKLSAgICBjaGlsZHJlbiA6IDxvYmplY3Q+Ci0gICAgY291bnRlcnMg
OiA8b2JqZWN0PgotICAgIGRhdGEgOiB7Ci0gICAgICAgIGNhY2hlZCA6IHRydWUKLSAgICB9Ci0g
ICAgZW5kVGltZSA6IDxudW1iZXI+Ci0gICAgc3RhY2tUcmFjZSA6IDxvYmplY3Q+Ci0gICAgc3Rh
cnRUaW1lIDogPG51bWJlcj4KLSAgICB0eXBlIDogIlJlc2l6ZUltYWdlIgotICAgIHVzZWRIZWFw
U2l6ZSA6IDxudW1iZXI+Ci19Ci1EZWNvZGVJbWFnZSBQcm9wZXJ0aWVzOgotewotICAgIGNoaWxk
cmVuIDogPG9iamVjdD4KLSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6IHsKLSAg
ICAgICAgaW1hZ2VUeXBlIDogIkpQRUciCi0gICAgfQotICAgIGVuZFRpbWUgOiA8bnVtYmVyPgot
ICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0PgotICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+Ci0gICAg
dHlwZSA6ICJEZWNvZGVJbWFnZSIKLSAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotUmVz
aXplSW1hZ2UgUHJvcGVydGllczoKLXsKLSAgICBjaGlsZHJlbiA6IDxvYmplY3Q+Ci0gICAgY291
bnRlcnMgOiA8b2JqZWN0PgotICAgIGRhdGEgOiB7Ci0gICAgICAgIGNhY2hlZCA6IHRydWUKLSAg
ICB9Ci0gICAgZW5kVGltZSA6IDxudW1iZXI+Ci0gICAgc3RhY2tUcmFjZSA6IDxvYmplY3Q+Ci0g
ICAgc3RhcnRUaW1lIDogPG51bWJlcj4KLSAgICB0eXBlIDogIlJlc2l6ZUltYWdlIgotICAgIHVz
ZWRIZWFwU2l6ZSA6IDxudW1iZXI+Ci19Ci1EZWNvZGVJbWFnZSBQcm9wZXJ0aWVzOgotewotICAg
IGNoaWxkcmVuIDogPG9iamVjdD4KLSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6
IHsKLSAgICAgICAgaW1hZ2VUeXBlIDogIlBORyIKLSAgICB9Ci0gICAgZW5kVGltZSA6IDxudW1i
ZXI+Ci0gICAgc3RhY2tUcmFjZSA6IDxvYmplY3Q+Ci0gICAgc3RhcnRUaW1lIDogPG51bWJlcj4K
LSAgICB0eXBlIDogIkRlY29kZUltYWdlIgotICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+Ci19
Ci1SZXNpemVJbWFnZSBQcm9wZXJ0aWVzOgotewotICAgIGNoaWxkcmVuIDogPG9iamVjdD4KLSAg
ICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6IHsKLSAgICAgICAgY2FjaGVkIDogdHJ1
ZQotICAgIH0KLSAgICBlbmRUaW1lIDogPG51bWJlcj4KLSAgICBzdGFja1RyYWNlIDogPG9iamVj
dD4KLSAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgotICAgIHR5cGUgOiAiUmVzaXplSW1hZ2UiCi0g
ICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KLX0KLURlY29kZUltYWdlIFByb3BlcnRpZXM6Ci17
Ci0gICAgY2hpbGRyZW4gOiA8b2JqZWN0PgotICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLSAgICBk
YXRhIDogewotICAgICAgICBpbWFnZVR5cGUgOiAiV0VCUCIKLSAgICB9Ci0gICAgZW5kVGltZSA6
IDxudW1iZXI+Ci0gICAgc3RhY2tUcmFjZSA6IDxvYmplY3Q+Ci0gICAgc3RhcnRUaW1lIDogPG51
bWJlcj4KLSAgICB0eXBlIDogIkRlY29kZUltYWdlIgotICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1i
ZXI+Ci19Ci1SZXNpemVJbWFnZSBQcm9wZXJ0aWVzOgotewotICAgIGNoaWxkcmVuIDogPG9iamVj
dD4KLSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6IHsKLSAgICAgICAgY2FjaGVk
IDogdHJ1ZQotICAgIH0KLSAgICBlbmRUaW1lIDogPG51bWJlcj4KLSAgICBzdGFja1RyYWNlIDog
PG9iamVjdD4KLSAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgotICAgIHR5cGUgOiAiUmVzaXplSW1h
Z2UiCi0gICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KLX0KLURlY29kZUltYWdlIFByb3BlcnRp
ZXM6Ci17Ci0gICAgY2hpbGRyZW4gOiA8b2JqZWN0PgotICAgIGNvdW50ZXJzIDogPG9iamVjdD4K
LSAgICBkYXRhIDogewotICAgICAgICBpbWFnZVR5cGUgOiAiUE5HIgotICAgIH0KLSAgICBlbmRU
aW1lIDogPG51bWJlcj4KLSAgICBzdGFja1RyYWNlIDogPG9iamVjdD4KLSAgICBzdGFydFRpbWUg
OiA8bnVtYmVyPgotICAgIHR5cGUgOiAiRGVjb2RlSW1hZ2UiCi0gICAgdXNlZEhlYXBTaXplIDog
PG51bWJlcj4KLX0KLVJlc2l6ZUltYWdlIFByb3BlcnRpZXM6Ci17Ci0gICAgY2hpbGRyZW4gOiA8
b2JqZWN0PgotICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLSAgICBkYXRhIDogewotICAgICAgICBj
YWNoZWQgOiBmYWxzZQotICAgIH0KLSAgICBlbmRUaW1lIDogPG51bWJlcj4KLSAgICBzdGFja1Ry
YWNlIDogPG9iamVjdD4KLSAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgotICAgIHR5cGUgOiAiUmVz
aXplSW1hZ2UiCi0gICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KLX0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWRlY29kZS1yZXNpemUuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1kZWNvZGUtcmVzaXpl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhNDY4OWUuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWRlY29kZS1yZXNpemUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gYWRkSW1hZ2Uoc3JjLCB3
aWR0aCwgaGVpZ2h0LCBjYWxsYmFjaykKLXsKLSAgICB2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaW1nIik7Ci0gICAgaW1nLndpZHRoID0gd2lkdGg7Ci0gICAgaW1nLmhlaWdodCA9
IGhlaWdodDsKLSAgICBpbWcub25sb2FkID0gY2FsbGJhY2s7Ci0gICAgaW1nLnNyYyA9IHNyYzsK
LSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZyk7Ci19Ci0KLWZ1bmN0aW9uIGFkZElt
YWdlMSgpIHsgYWRkSW1hZ2UoInJlc291cmNlcy90ZXN0LmJtcCIsICIyNSIsICIyNSIsIGFkZElt
YWdlMik7IH0KLWZ1bmN0aW9uIGFkZEltYWdlMigpIHsgYWRkSW1hZ2UoInJlc291cmNlcy90ZXN0
LmdpZiIsICIyNSIsICIyNSIsIGFkZEltYWdlMyk7IH0KLWZ1bmN0aW9uIGFkZEltYWdlMygpIHsg
YWRkSW1hZ2UoInJlc291cmNlcy90ZXN0LmljbyIsICIyNSIsICIyNSIsIGFkZEltYWdlNCk7IH0K
LWZ1bmN0aW9uIGFkZEltYWdlNCgpIHsgYWRkSW1hZ2UoInJlc291cmNlcy90ZXN0LmpwZyIsICIy
NSIsICIyNSIsIGFkZEltYWdlNSk7IH0KLWZ1bmN0aW9uIGFkZEltYWdlNSgpIHsgYWRkSW1hZ2Uo
InJlc291cmNlcy90ZXN0LnBuZyIsICIyNSIsICIyNSIsIGFkZEltYWdlNik7IH0KLWZ1bmN0aW9u
IGFkZEltYWdlNigpIHsgYWRkSW1hZ2UoInJlc291cmNlcy90ZXN0LndlYnAiLCAiMjUiLCAiMjUi
LCBhZGRJbWFnZTcpOyB9Ci1mdW5jdGlvbiBhZGRJbWFnZTcoKSB7IGFkZEltYWdlKCJyZXNvdXJj
ZXMvYmlnLnBuZyIsICI1MDAwIiwgIjUwMDAiLCBkaXNwbGF5UGFnZSk7IH0KLQotZnVuY3Rpb24g
ZGlzcGxheVBhZ2UoKQotewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0
ZXN0UnVubmVyLmRpc3BsYXkoKTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Ci0gICAgfQotICAgIHRlc3RSdW5uZXIuZXZhbHVhdGVJbldlYkluc3BlY3RvcigwLCAid2luZG93
LnN0ZXAyKCkiKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5z
dGFydFRpbWVsaW5lKHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImFkZEltYWdlMSgpIik7Ci0gICAgfQot
Ci0gICAgd2luZG93LnN0ZXAyID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5zdG9wVGltZWxpbmUoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKHJl
Y29yZHMpCi0gICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzW2ldOwotICAgICAgICAg
ICAgaWYgKHJlY29yZC50eXBlID09PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRU
eXBlLkRlY29kZUltYWdlIHx8IHJlY29yZC50eXBlID09PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVN
b2RlbC5SZWNvcmRUeXBlLlJlc2l6ZUltYWdlKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QucHJpbnRUaW1lbGluZVJlY29yZFByb3BlcnRpZXMocmVjb3JkKTsKLSAgICAgICAgfQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhlIFRp
bWVsaW5lIEFQSSBpbnN0cnVtZW50YXRpb24gb2YgYSBEZWNvZGVJbWFnZSBhbmQgUmVzaXplSW1h
Z2UgZXZlbnRzCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1kb20tY29udGVudC1sb2FkZWQtZXZlbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWRv
bS1jb250ZW50LWxvYWRlZC1ldmVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDRhMGIwYzcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLWRvbS1jb250ZW50LWxvYWRlZC1ldmVudC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1UZXN0cyB0aGUgRE9NIGNvbnRlbnQgbG9hZGVk
IGV2ZW50LgotCi1QYWdlIHJlbG9hZGVkLgotTWFya0RPTUNvbnRlbnQgUHJvcGVydGllczoKLXsK
LSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6IHsKLSAgICAgICAgaXNNYWluRnJh
bWUgOiB0cnVlCi0gICAgfQotICAgIGZyYW1lSWQgOiA8c3RyaW5nPgotICAgIHN0YXJ0VGltZSA6
IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJNYXJrRE9NQ29udGVudCIKLSAgICB1c2VkSGVhcFNpemUg
OiA8bnVtYmVyPgotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtZG9tLWNvbnRlbnQtbG9hZGVkLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZG9tLWNvbnRlbnQtbG9hZGVkLWV2ZW50Lmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllNmY0N2MuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWRvbS1jb250ZW50LWxvYWRlZC1l
dmVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJ0aW1lbGluZSIpOwotICAgIGZpbmlzaENhbGxl
ZCA9IDA7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0VGltZWxpbmUoZnVuY3Rpb24oKSB7IElu
c3BlY3RvclRlc3QucmVsb2FkUGFnZShmaW5pc2gpOyB9KTsKLSAgICBJbnNwZWN0b3JUZXN0Lndh
aXRGb3JSZWNvcmRUeXBlKCJNYXJrRE9NQ29udGVudCIsIGNvbnRlbnRFdmVudCk7Ci0KLSAgICBm
dW5jdGlvbiBjb250ZW50RXZlbnQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zdG9w
VGltZWxpbmUoZmluaXNoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBmaW5pc2goKQotICAgIHsK
LSAgICAgICAgaWYgKCsrZmluaXNoQ2FsbGVkIDwgMikKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5wcmludFRpbWVsaW5lUmVjb3JkcygiTWFya0RPTUNvbnRlbnQi
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3Rz
IHRoZSBET00gY29udGVudCBsb2FkZWQgZXZlbnQuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVt
LXN0YWJpbGl0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmMjUzZGU1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw0NyArMCwwIEBACi1DaGVjayB0byBzZWUgdGhhdCBUaW1lbGluZUFnZW50IHJlY29y
ZCB0eXBlcyBhcmUgc3RhYmxlLgotCi1BcHBsaWNhdGlvbnMgb3V0c2lkZSBvZiBXZWJLaXQgZGVw
ZW5kIG9uIHRoZSBzdGFiaWxpdHkgb2YgdGhlIG1hcHBpbmcgb2YgdGhlc2UgdHlwZXMgdG8gdGhl
c2Ugc3BlY2lmaWMgdmFsdWVzLgotCi17Ci0gICAgQmVnaW5GcmFtZSA6ICJCZWdpbkZyYW1lIgot
ICAgIENhbmNlbEFuaW1hdGlvbkZyYW1lIDogIkNhbmNlbEFuaW1hdGlvbkZyYW1lIgotICAgIENv
bXBvc2l0ZUxheWVycyA6ICJDb21wb3NpdGVMYXllcnMiCi0gICAgRGVjb2RlSW1hZ2UgOiAiRGVj
b2RlSW1hZ2UiCi0gICAgRXZhbHVhdGVTY3JpcHQgOiAiRXZhbHVhdGVTY3JpcHQiCi0gICAgRXZl
bnREaXNwYXRjaCA6ICJFdmVudERpc3BhdGNoIgotICAgIEZpcmVBbmltYXRpb25GcmFtZSA6ICJG
aXJlQW5pbWF0aW9uRnJhbWUiCi0gICAgRnVuY3Rpb25DYWxsIDogIkZ1bmN0aW9uQ2FsbCIKLSAg
ICBHQ0V2ZW50IDogIkdDRXZlbnQiCi0gICAgSW52YWxpZGF0ZUxheW91dCA6ICJJbnZhbGlkYXRl
TGF5b3V0IgotICAgIExheW91dCA6ICJMYXlvdXQiCi0gICAgTWFya0RPTUNvbnRlbnQgOiAiTWFy
a0RPTUNvbnRlbnQiCi0gICAgTWFya0xvYWQgOiAiTWFya0xvYWQiCi0gICAgUGFpbnQgOiAiUGFp
bnQiCi0gICAgUGFyc2VIVE1MIDogIlBhcnNlSFRNTCIKLSAgICBQcm9ncmFtIDogIlByb2dyYW0i
Ci0gICAgUmFzdGVyaXplIDogIlJhc3Rlcml6ZSIKLSAgICBSZWNhbGN1bGF0ZVN0eWxlcyA6ICJS
ZWNhbGN1bGF0ZVN0eWxlcyIKLSAgICBSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgOiAiUmVxdWVzdEFu
aW1hdGlvbkZyYW1lIgotICAgIFJlc2l6ZUltYWdlIDogIlJlc2l6ZUltYWdlIgotICAgIFJlc291
cmNlRmluaXNoIDogIlJlc291cmNlRmluaXNoIgotICAgIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNl
IDogIlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIgotICAgIFJlc291cmNlUmVjZWl2ZWREYXRhIDog
IlJlc291cmNlUmVjZWl2ZWREYXRhIgotICAgIFJlc291cmNlU2VuZFJlcXVlc3QgOiAiUmVzb3Vy
Y2VTZW5kUmVxdWVzdCIKLSAgICBSb290IDogIlJvb3QiCi0gICAgU2NoZWR1bGVSZXNvdXJjZVJl
cXVlc3QgOiAiU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QiCi0gICAgU2NoZWR1bGVTdHlsZVJlY2Fs
Y3VsYXRpb24gOiAiU2NoZWR1bGVTdHlsZVJlY2FsY3VsYXRpb24iCi0gICAgU2Nyb2xsTGF5ZXIg
OiAiU2Nyb2xsTGF5ZXIiCi0gICAgVGltZSA6ICJUaW1lIgotICAgIFRpbWVFbmQgOiAiVGltZUVu
ZCIKLSAgICBUaW1lU3RhbXAgOiAiVGltZVN0YW1wIgotICAgIFRpbWVyRmlyZSA6ICJUaW1lckZp
cmUiCi0gICAgVGltZXJJbnN0YWxsIDogIlRpbWVySW5zdGFsbCIKLSAgICBUaW1lclJlbW92ZSA6
ICJUaW1lclJlbW92ZSIKLSAgICBXZWJTb2NrZXRDcmVhdGUgOiAiV2ViU29ja2V0Q3JlYXRlIgot
ICAgIFdlYlNvY2tldERlc3Ryb3kgOiAiV2ViU29ja2V0RGVzdHJveSIKLSAgICBXZWJTb2NrZXRS
ZWNlaXZlSGFuZHNoYWtlUmVzcG9uc2UgOiAiV2ViU29ja2V0UmVjZWl2ZUhhbmRzaGFrZVJlc3Bv
bnNlIgotICAgIFdlYlNvY2tldFNlbmRIYW5kc2hha2VSZXF1ZXN0IDogIldlYlNvY2tldFNlbmRI
YW5kc2hha2VSZXF1ZXN0IgotICAgIFhIUkxvYWQgOiAiWEhSTG9hZCIKLSAgICBYSFJSZWFkeVN0
YXRlQ2hhbmdlIDogIlhIUlJlYWR5U3RhdGVDaGFuZ2UiCi19Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5Lmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzNmJkMjEuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5Lmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5z
aG93UGFuZWwoInRpbWVsaW5lIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRPYmplY3QoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLTxwPiAKLUNoZWNrIHRvIHNlZSB0aGF0IFRpbWVsaW5lQWdlbnQgcmVjb3JkIHR5
cGVzIGFyZSBzdGFibGUuCi08L3A+Ci0KLTxwPgotQXBwbGljYXRpb25zIG91dHNpZGUgb2YgV2Vi
S2l0IGRlcGVuZCBvbiB0aGUgc3RhYmlsaXR5IG9mIHRoZSBtYXBwaW5nIG9mIAotdGhlc2UgdHlw
ZXMgdG8gdGhlc2Ugc3BlY2lmaWMgdmFsdWVzLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZXZlbnQt
ZGlzcGF0Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTQxNDI5ZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTcgKzAsMCBAQAotVGVzdHMgdGhlIFRpbWVsaW5lIEFQSSBpbnN0cnVtZW50YXRpb24g
b2YgYSBET00gRGlzcGF0Y2ggKG1vdXNlZG93bikKLQotVGVzdCBNb3VzZSBUYXJnZXQKLUV2ZW50
RGlzcGF0Y2ggUHJvcGVydGllczoKLXsKLSAgICBjaGlsZHJlbiA6IDxvYmplY3Q+Ci0gICAgY291
bnRlcnMgOiA8b2JqZWN0PgotICAgIGRhdGEgOiB7Ci0gICAgICAgIHR5cGUgOiAibW91c2Vkb3du
IgotICAgIH0KLSAgICBlbmRUaW1lIDogPG51bWJlcj4KLSAgICBmcmFtZUlkIDogPHN0cmluZz4K
LSAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgotICAgIHR5cGUgOiAiRXZlbnREaXNwYXRjaCIKLSAg
ICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2guaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1ldmVudC1kaXNwYXRjaC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTlmYWI2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1ldmVudC1kaXNwYXRjaC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBoYW5kbGVNb3VzZURvd24oZXZlbnQpIAot
ewotICAgIGNvbnNvbGUudGltZVN0YW1wKCJIYW5kbGluZyBtb3VzZWRvd24iKTsKLX0KLQotZnVu
Y3Rpb24gcGVyZm9ybUFjdGlvbnMoKQotewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGVzdFRhcmdldCIpOwotICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJt
b3VzZWRvd24iLCBoYW5kbGVNb3VzZURvd24sIHRydWUpOwotICAgIHZhciByZWN0ID0gdGFyZ2V0
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotCi0gICAgLy8gU2ltdWxhdGUgdGhlIG1vdXNlIGRv
d24gb3ZlciB0aGUgdGFyZ2V0IHRvIHRyaWdnZXIgYW4gRXZlbnREaXNwYXRjaAotICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgd2luZG93LmV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyLCByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8g
Mik7Ci0gICAgICAgIHdpbmRvdy5ldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICB9Ci19Ci0K
LWZ1bmN0aW9uIHRlc3QoKSAKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnBlcmZvcm1BY3Rpb25zQW5k
UHJpbnQoInBlcmZvcm1BY3Rpb25zKCkiLCAiRXZlbnREaXNwYXRjaCIpOwotfQotCi08L3Njcmlw
dD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGUg
VGltZWxpbmUgQVBJIGluc3RydW1lbnRhdGlvbiBvZiBhIERPTSBEaXNwYXRjaCAobW91c2Vkb3du
KQotPC9wPgotCi08ZGl2IGlkPSJ0ZXN0VGFyZ2V0IiBzdHlsZT0id2lkdGg6NDAwcHg7IGhlaWdo
dDo0MDBweDsiPgotVGVzdCBNb3VzZSBUYXJnZXQKLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZnJh
bWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1mcmFtZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOWY0
OGU5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1mcmFtZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1UZXN0
cyByZXBvcnRpbmcgYW5kIGNhbmNlbGluZyBvZiBkaWRCZWdpbkZyYW1lIGV2ZW50cyBpbiBUaW1l
bGluZQotCi1CZWdpbkZyYW1lCi1UaW1lU3RhbXAgOiBGUkFNRSAxCi1CZWdpbkZyYW1lCi1UaW1l
U3RhbXAgOiBGUkFNRSAyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS1mcmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1mcmFtZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjcz
MjQ1Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtZnJhbWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHBlcmZv
cm1BY3Rpb25zKCkKLXsKLSAgICB3aW5kb3cuaW50ZXJuYWxzLmVtaXRJbnNwZWN0b3JEaWRCZWdp
bkZyYW1lKCk7Ci0gICAgY29uc29sZS50aW1lU3RhbXAoIkZSQU1FIDEiKTsKLQotICAgIHdpbmRv
dy5pbnRlcm5hbHMuZW1pdEluc3BlY3RvckRpZEJlZ2luRnJhbWUoKTsKLSAgICB3aW5kb3cuaW50
ZXJuYWxzLmVtaXRJbnNwZWN0b3JEaWRDYW5jZWxGcmFtZSgpOwotCi0gICAgd2luZG93LmludGVy
bmFscy5lbWl0SW5zcGVjdG9yRGlkQmVnaW5GcmFtZSgpOwotICAgIGNvbnNvbGUudGltZVN0YW1w
KCJGUkFNRSAyIik7Ci0gICAgd2luZG93LmludGVybmFscy5lbWl0SW5zcGVjdG9yRGlkQ2FuY2Vs
RnJhbWUoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gZm9ybWF0UmVj
b3JkKHJlY29yZCkKLSAgICB7Ci0gICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVj
dG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5UaW1lU3RhbXAgfHwKLSAgICAgICAgICAgIHJl
Y29yZC50eXBlID09PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLkJlZ2lu
RnJhbWUpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFRpbWVsaW5lUmVjb3JkKHJl
Y29yZCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0VGltZWxp
bmUoZnVuY3Rpb24oKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInBl
cmZvcm1BY3Rpb25zKCkiLCBzdGVwMik7Ci0gICAgfSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnN0b3BUaW1lbGluZShmaW5pc2gpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIGZpbmlzaCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LnByaW50VGltZWxpbmVSZWNvcmRzKG51bGwsIGZvcm1hdFJlY29yZCk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyByZXBvcnRpbmcgYW5kIGNh
bmNlbGluZyBvZiBkaWRCZWdpbkZyYW1lIGV2ZW50cyBpbiBUaW1lbGluZQotPC9wPgotCi08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtaW5qZWN0ZWQtc2NyaXB0LWV2YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWluamVjdGVkLXNjcmlwdC1ldmFsLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDExMTM1ZC4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtaW5qZWN0ZWQtc2NyaXB0
LWV2YWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotVGVzdHMg
dGhlIFRpbWVsaW5lIEFQSSBmdW5jdGlvbiBjYWxsIHJlY29yZCBmb3IgSW5qZWN0ZWRTY3JpcHQu
ZXZhbCBjYWxsIGZlYXR1cmUuCi0KLUZ1bmN0aW9uQ2FsbCBQcm9wZXJ0aWVzOgotewotICAgIGNo
aWxkcmVuIDogPG9iamVjdD4KLSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6IHsK
LSAgICAgICAgc2NyaXB0TGluZSA6IDxudW1iZXI+Ci0gICAgICAgIHNjcmlwdE5hbWUgOiA8c3Ry
aW5nPgotICAgIH0KLSAgICBlbmRUaW1lIDogPG51bWJlcj4KLSAgICBmcmFtZUlkIDogPHN0cmlu
Zz4KLSAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgotICAgIHR5cGUgOiAiRnVuY3Rpb25DYWxsIgot
ICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+Ci19Ci1GdW5jdGlvbkNhbGwgUHJvcGVydGllczoK
LXsKLSAgICBjaGlsZHJlbiA6IDxvYmplY3Q+Ci0gICAgY291bnRlcnMgOiA8b2JqZWN0PgotICAg
IGRhdGEgOiB7Ci0gICAgICAgIHNjcmlwdExpbmUgOiA8bnVtYmVyPgotICAgICAgICBzY3JpcHRO
YW1lIDogPHN0cmluZz4KLSAgICB9Ci0gICAgZW5kVGltZSA6IDxudW1iZXI+Ci0gICAgZnJhbWVJ
ZCA6IDxzdHJpbmc+Ci0gICAgc3RhcnRUaW1lIDogPG51bWJlcj4KLSAgICB0eXBlIDogIkZ1bmN0
aW9uQ2FsbCIKLSAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtaW5qZWN0ZWQtc2NyaXB0LWV2
YWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1pbmplY3Rl
ZC1zY3JpcHQtZXZhbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiN2JlYTAy
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1p
bmplY3RlZC1zY3JpcHQtZXZhbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5j
dGlvbiBwZXJmb3JtQWN0aW9ucygpCi17Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIElu
c3BlY3RvclRlc3QucGVyZm9ybUFjdGlvbnNBbmRQcmludCgicGVyZm9ybUFjdGlvbnMoKSIsICJG
dW5jdGlvbkNhbGwiKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhlIFRpbWVsaW5lIEFQSSBmdW5jdGlvbiBjYWxsIHJl
Y29yZCBmb3IgSW5qZWN0ZWRTY3JpcHQuZXZhbCBjYWxsIGZlYXR1cmUuCi08L3A+Ci0KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI5NmQ5YjUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MiAr
MCwwIEBACi1UZXN0cyB0aGUgVGltZWxpbmUgQVBJIGluc3RydW1lbnRhdGlvbiBvZiBhIExheW91
dCBldmVudAotCi10ZXh0Ci10ZXh0Ci10ZXh0Ci10ZXh0Ci10ZXh0Ci1MYXlvdXQgUHJvcGVydGll
czoKLXsKLSAgICBjaGlsZHJlbiA6IDxvYmplY3Q+Ci0gICAgY291bnRlcnMgOiA8b2JqZWN0Pgot
ICAgIGRhdGEgOiB7Ci0gICAgICAgIGRpcnR5T2JqZWN0cyA6IDMKLSAgICAgICAgcGFydGlhbExh
eW91dCA6IHRydWUKLSAgICAgICAgcm9vdCA6IDxvYmplY3Q+Ci0gICAgICAgIHRvdGFsT2JqZWN0
cyA6IDgKLSAgICB9Ci0gICAgZW5kVGltZSA6IDxudW1iZXI+Ci0gICAgZnJhbWVJZCA6IDxzdHJp
bmc+Ci0gICAgc3RhY2tUcmFjZSA6IDxvYmplY3Q+Ci0gICAgc3RhcnRUaW1lIDogPG51bWJlcj4K
LSAgICB0eXBlIDogIkxheW91dCIKLSAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotTGF5
b3V0IFByb3BlcnRpZXM6Ci17Ci0gICAgY2hpbGRyZW4gOiA8b2JqZWN0PgotICAgIGNvdW50ZXJz
IDogPG9iamVjdD4KLSAgICBkYXRhIDogewotICAgICAgICBkaXJ0eU9iamVjdHMgOiAyCi0gICAg
ICAgIHBhcnRpYWxMYXlvdXQgOiB0cnVlCi0gICAgICAgIHJvb3QgOiA8b2JqZWN0PgotICAgICAg
ICB0b3RhbE9iamVjdHMgOiAxMQotICAgIH0KLSAgICBlbmRUaW1lIDogPG51bWJlcj4KLSAgICBm
cmFtZUlkIDogPHN0cmluZz4KLSAgICBzdGFja1RyYWNlIDogPG9iamVjdD4KLSAgICBzdGFydFRp
bWUgOiA8bnVtYmVyPgotICAgIHR5cGUgOiAiTGF5b3V0IgotICAgIHVzZWRIZWFwU2l6ZSA6IDxu
dW1iZXI+Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS1sYXlvdXQtcmVhc29uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1sYXlvdXQtcmVhc29uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYzAwMWUwYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbGF5b3V0LXJlYXNvbi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIHRoYXQgTGF5b3V0IHJlY29yZCBoYXMg
Y29ycmVjdCBsb2NhdGlvbnMgb2YgbGF5b3V0IGJlaW5nIGludmFsaWRhdGVkIGFuZCBmb3JjZWQu
Ci0KLWxheW91dCBpbnZhbGlkYXRlZDogaW52YWxpZGF0ZVN0eWxlCi1sYXlvdXQgZm9yY2VkOiBm
b3JjZUxheW91dAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtbGF5b3V0LXJlYXNvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLWxheW91dC1yZWFzb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggODQyODBhNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtbGF5b3V0LXJlYXNvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAs
MCBAQAotPGh0bWw+Ci08c3R5bGU+Ci0udGVzdCB7IGhlaWdodDogMjBweDsgfQotPC9zdHlsZT4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGlu
dmFsaWRhdGVTdHlsZSgpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdCIpOwotICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gInRlc3QiOwotfQotCi1mdW5j
dGlvbiBmb3JjZUxheW91dCgpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdCIpOwotICAgIHZhciB1bnVzZWQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDsK
LX0KLQotZnVuY3Rpb24gcGVyZm9ybUFjdGlvbnMoKQotewotICAgIGludmFsaWRhdGVTdHlsZSgp
OwotICAgIGZvcmNlTGF5b3V0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVXaXRoVGltZWxpbmUoInBlcmZvcm1BY3Rpb25zKCkiLCBvblRpbWVs
aW5lUmVjb3JkZWQpOwotICAgIGZ1bmN0aW9uIG9uVGltZWxpbmVSZWNvcmRlZCgpCi0gICAgewot
ICAgICAgICB2YXIgbGF5b3V0UmVjb3JkID0gSW5zcGVjdG9yVGVzdC5maW5kUHJlc2VudGF0aW9u
UmVjb3JkKCJMYXlvdXQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImxheW91
dCBpbnZhbGlkYXRlZDogIiArIGxheW91dFJlY29yZC5jYWxsU2l0ZVN0YWNrVHJhY2VbMF0uZnVu
Y3Rpb25OYW1lKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImxheW91dCBmb3Jj
ZWQ6ICIgKyBsYXlvdXRSZWNvcmQuc3RhY2tUcmFjZVswXS5mdW5jdGlvbk5hbWUpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBMYXlv
dXQgcmVjb3JkIGhhcyBjb3JyZWN0IGxvY2F0aW9ucyBvZiBsYXlvdXQgYmVpbmcgaW52YWxpZGF0
ZWQgYW5kIGZvcmNlZC4KLTwvcD4KLTxkaXYgaWQ9InRlc3QiPjwvZGl2PgotCi08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtbGF5b3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
bGF5b3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0MGVlZjIuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxheW91dC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci0ucmVsYXlvdXQtYm91bmRhcnkgewotICAgIG92
ZXJmbG93OiBoaWRkZW47Ci0gICAgd2lkdGg6IDEwMHB4OwotICAgIGhlaWdodDogMTAwcHg7Ci19
Ci08L3N0eWxlPgotPHNjcmlwdD4KLQotZnVuY3Rpb24gaW52YWxpZGF0ZUFuZEZvcmNlTGF5b3V0
KGVsZW1lbnQpCi17Ci0gICAgZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3AgPSAiMTBweCI7Ci0gICAg
dmFyIHVudXNlZCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0OwotfQotCi1mdW5jdGlvbiBwZXJmb3Jt
QWN0aW9ucygpCi17Ci0gICAgaW52YWxpZGF0ZUFuZEZvcmNlTGF5b3V0KGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJpbnZhbGlkYXRlMSIpKTsKLSAgICBpbnZhbGlkYXRlQW5kRm9yY2VMYXlvdXQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImludmFsaWRhdGUyIikpOwotfQotCi1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0ZXN0UnVubmVyLmRp
c3BsYXkoKSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnBlcmZvcm1BY3Rp
b25zQW5kUHJpbnQoInBlcmZvcm1BY3Rpb25zKCkiLCAiTGF5b3V0Iik7Ci0gICAgfSk7Ci19Ci0K
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRl
c3RzIHRoZSBUaW1lbGluZSBBUEkgaW5zdHJ1bWVudGF0aW9uIG9mIGEgTGF5b3V0IGV2ZW50Ci08
L3A+Ci08ZGl2IGNsYXNzPSJyZWxheW91dC1ib3VuZGFyeSI+Ci0gICAgPGRpdj50ZXh0PC9kaXY+
Ci0gICAgPGRpdj48L2Rpdj4KLSAgICA8ZGl2PgotICAgICAgICA8ZGl2IGlkPSJpbnZhbGlkYXRl
MSI+PGRpdj50ZXh0PC9kaXY+PC9kaXY+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLTxkaXYgY2xhc3M9
InJlbGF5b3V0LWJvdW5kYXJ5Ij4KLSAgICA8ZGl2PjwvZGl2PgotICAgIDxkaXY+dGV4dDwvZGl2
PgotICAgIDxkaXYgaWQ9ImludmFsaWRhdGUyIj48ZGl2PnRleHQ8L2Rpdj48L2Rpdj4KLSAgICA8
ZGl2PjwvZGl2PgotICAgIDxkaXY+PC9kaXY+Ci0gICAgPGRpdj50ZXh0PC9kaXY+Ci08L2Rpdj4K
LQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzZlZWQ3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLVRlc3RzIHRoZSBsb2FkIGV2ZW50LgotCi1QYWdl
IHJlbG9hZGVkLgotTW9kZWwgcmVjb3JkczoKLU1hcmtET01Db250ZW50IFByb3BlcnRpZXM6Ci17
Ci0gICAgY291bnRlcnMgOiA8b2JqZWN0PgotICAgIGRhdGEgOiB7Ci0gICAgICAgIGlzTWFpbkZy
YW1lIDogdHJ1ZQotICAgIH0KLSAgICBmcmFtZUlkIDogPHN0cmluZz4KLSAgICBzdGFydFRpbWUg
OiA8bnVtYmVyPgotICAgIHR5cGUgOiAiTWFya0RPTUNvbnRlbnQiCi0gICAgdXNlZEhlYXBTaXpl
IDogPG51bWJlcj4KLX0KLU1hcmtMb2FkIFByb3BlcnRpZXM6Ci17Ci0gICAgY291bnRlcnMgOiA8
b2JqZWN0PgotICAgIGRhdGEgOiB7Ci0gICAgICAgIGlzTWFpbkZyYW1lIDogdHJ1ZQotICAgIH0K
LSAgICBmcmFtZUlkIDogPHN0cmluZz4KLSAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgotICAgIHR5
cGUgOiAiTWFya0xvYWQiCi0gICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KLX0KLVRpbWVzdGFt
cCByZWNvcmRzOgotTWFya0RPTUNvbnRlbnQgUHJvcGVydGllczoKLXsKLSAgICBjb3VudGVycyA6
IDxvYmplY3Q+Ci0gICAgZGF0YSA6IHsKLSAgICAgICAgaXNNYWluRnJhbWUgOiB0cnVlCi0gICAg
fQotICAgIGZyYW1lSWQgOiA8c3RyaW5nPgotICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+Ci0gICAg
dHlwZSA6ICJNYXJrRE9NQ29udGVudCIKLSAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQot
TWFya0xvYWQgUHJvcGVydGllczoKLXsKLSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0
YSA6IHsKLSAgICAgICAgaXNNYWluRnJhbWUgOiB0cnVlCi0gICAgfQotICAgIGZyYW1lSWQgOiA8
c3RyaW5nPgotICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJNYXJrTG9hZCIK
LSAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC1ldmVudC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQtZXZlbnQuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMjk5OWYzOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC1ldmVudC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNDQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1Bh
bmVsKCJ0aW1lbGluZSIpOwotICAgIGZpbmlzaENhbGxlZCA9IDA7Ci0KLSAgICBJbnNwZWN0b3JU
ZXN0LnN0YXJ0VGltZWxpbmUoZnVuY3Rpb24oKSB7IEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShm
aW5pc2gpOyB9KTsKLSAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JSZWNvcmRUeXBlKCJNYXJrTG9h
ZCIsIGNvbnRlbnRFdmVudCk7Ci0KLSAgICBmdW5jdGlvbiBjb250ZW50RXZlbnQoKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5zdG9wVGltZWxpbmUoZmluaXNoKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBmaW5pc2goKQotICAgIHsKLSAgICAgICAgaWYgKCsrZmluaXNoQ2FsbGVkICE9
PSAyKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJNb2RlbCByZWNvcmRzOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnByaW50VGltZWxp
bmVSZWNvcmRzKCJNYXJrRE9NQ29udGVudCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnByaW50
VGltZWxpbmVSZWNvcmRzKCJNYXJrTG9hZCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiVGltZXN0YW1wIHJlY29yZHM6Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucHJpbnRU
aW1lc3RhbXBSZWNvcmRzKCJNYXJrRE9NQ29udGVudCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LnByaW50VGltZXN0YW1wUmVjb3JkcygiTWFya0xvYWQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoZSBsb2FkIGV2ZW50LgotPC9wPgot
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUvdGltZWxpbmUtbG9hZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZhMmMyN2IuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLWxvYWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQg
KzAsMCBAQAotVGVzdHMgdGhlIFRpbWVsaW5lIHNhdmUvbG9hZCBmdW5jdGlvbmFsaXR5LgotCi1B
bHNvIHRlc3RzIHNhdmUvbG9hZCBvZiB1bmtub3duIChpbmNvbXBhdGlibGUpIHJlY29yZCB0eXBl
cy4gKEJ1ZyA5MTcxNCkKLQotCi1SdW5uaW5nOiB0ZXN0Tm9ybWFsCi1wYXNzZWQKLQotUnVubmlu
ZzogdGVzdEluY29tcGF0aWJsZQotcGFzc2VkCi0KLVJ1bm5pbmc6IHRlc3RNYWxmb3JtZWQKLXBh
c3NlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxv
YWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjA3ZTY5Ny4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlv
biBydW5UZXN0V2l0aERhdGFBbmRDaGVjayhpbnB1dCwgZXhwZWN0ZWRPdXRwdXQpCi0gICAgewot
ICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJ0aW1lbGluZSIpOwotICAgICAgICB2YXIg
bW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwoKTsKLQotICAgICAgICBmdW5j
dGlvbiBjcmVhdGVGaWxlUmVhZGVyKGZpbGUsIGRlbGVnYXRlKQotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gbmV3IEluc3BlY3RvclRlc3QuRmFrZUZpbGVSZWFkZXIoaW5wdXQsIGRlbGVn
YXRlLCBtb2RlbC5zYXZlVG9GaWxlLmJpbmQobW9kZWwpKTsKLSAgICAgICAgfQotCi0gICAgICAg
IGZ1bmN0aW9uIGNyZWF0ZUZpbGVXcml0ZXIoZmlsZU5hbWUsIGNhbGxiYWNrKQotICAgICAgICB7
Ci0gICAgICAgICAgICBjYWxsYmFjayhuZXcgSW5zcGVjdG9yVGVzdC5TdHJpbmdPdXRwdXRTdHJl
YW0oY2hlY2tTYXZlRGF0YSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gY2hlY2tT
YXZlRGF0YShvdXRwdXQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzYXZlRGF0YSA9IEpT
T04ucGFyc2Uob3V0cHV0KTsKLSAgICAgICAgICAgIHNhdmVEYXRhLnNoaWZ0KCk7IC8vIHN0cmlw
IHZlcnNpb24gaW5mbwotICAgICAgICAgICAgZXhwZWN0ZWRPdXRwdXQuc2hpZnQoKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKEpTT04uc3RyaW5naWZ5KGV4cGVjdGVk
T3V0cHV0KSwgSlNPTi5zdHJpbmdpZnkoc2F2ZURhdGEpLCAic2F2ZWQgZGF0YSBpcyBub3QgZXF1
YWwgdG8gcmVzdG9yZWQiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJw
YXNzZWQiKTsKLSAgICAgICAgfQotCi0gICAgICAgIEluc3BlY3RvclRlc3Qub3ZlcnJpZGUobW9k
ZWwsICJfY3JlYXRlRmlsZVJlYWRlciIsIGNyZWF0ZUZpbGVSZWFkZXIpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0Lm92ZXJyaWRlKG1vZGVsLCAiX2NyZWF0ZUZpbGVXcml0ZXIiLCBjcmVhdGVGaWxl
V3JpdGVyKTsKLQotICAgICAgICBtb2RlbC5sb2FkRnJvbUZpbGUoe30sIG5ldyBXZWJJbnNwZWN0
b3IuUHJvZ3Jlc3MoKSk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUo
WwotICAgICAgICBmdW5jdGlvbiB0ZXN0Tm9ybWFsKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHZhciBkYXRhID0gWyJWZXJzaW9uIiwKLSAgICAgICAgICAgICAgICB7InN0YXJ0VGltZSI6
MTMxMDc0OTg1NDMxNi44NDA4LCJkYXRhIjp7InJlcXVlc3RJZCI6NDMsInVybCI6Imh0dHA6Ly93
d3cud2Via2l0Lm9yZy8iLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNl
bmRSZXF1ZXN0IiwidXNlZEhlYXBTaXplIjoxODE5OTM2LCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIw
fSwKLSAgICAgICAgICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTExOC45MzI5LCJkYXRh
Ijp7InJlcXVlc3RJZCI6NDMsInN0YXR1c0NvZGUiOjIwMCwibWltZVR5cGUiOiJ0ZXh0L2h0bWwi
fSwiY2hpbGRyZW4iOltdLCJlbmRUaW1lIjoxMzEwNzQ5ODU1MTE4Ljk2OCwidHlwZSI6IlJlc291
cmNlUmVjZWl2ZVJlc3BvbnNlIiwidXNlZEhlYXBTaXplIjoxODE5OTM2LCJ0b3RhbEhlYXBTaXpl
Ijo3NjI5MTIwfSwKLSAgICAgICAgICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTEzNi4y
NDUsImRhdGEiOnsicmVxdWVzdElkIjo0NCwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nz
cy9tYWluLmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJl
cXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9LAot
ICAgICAgICAgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM2LjY1NSwiZGF0YSI6eyJy
ZXF1ZXN0SWQiOjQ1LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL2dyZWVuLmNzcyIs
InJlcXVlc3RNZXRob2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2Vk
SGVhcFNpemUiOjIzNjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9LAotICAgICAgICAgICAg
ICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM3LjAyMywiZGF0YSI6eyJyZXF1ZXN0SWQiOjQ2
LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL2JsdWUuY3NzIiwicmVxdWVzdE1ldGhv
ZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2
NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCi0gICAgICAgICAgICAgICAgeyJzdGFydFRp
bWUiOjEzMTA3NDk4NTUxMzcuMzQyLCJkYXRhIjp7InJlcXVlc3RJZCI6NDcsInVybCI6Imh0dHA6
Ly93d3cud2Via2l0Lm9yZy9jc3MveWVsbG93LmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQifSwi
dHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRvdGFs
SGVhcFNpemUiOjc2MjkxMjB9LAotICAgICAgICAgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5
ODU1MTM3LjY1NiwiZGF0YSI6eyJyZXF1ZXN0SWQiOjQ4LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtp
dC5vcmcvY3NzL3BpbmsuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3Vy
Y2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYy
OTEyMH0sCi0gICAgICAgICAgICAgICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMzcuOTg5LCJk
YXRhIjp7InJlcXVlc3RJZCI6NDksInVybCI6Imh0dHA6Ly93d3cud2Via2l0Lm9yZy9jc3MvcHVy
cGxlLmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVl
c3QiLCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9LAotICAg
ICAgICAgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM4LjMwOCwiZGF0YSI6eyJyZXF1
ZXN0SWQiOjUwLCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL2dyYXkuY3NzIiwicmVx
dWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFw
U2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEyMH0KLSAgICAgICAgICAgIF07Ci0g
ICAgICAgICAgICB2YXIgaW5wdXQgPSBKU09OLnN0cmluZ2lmeShkYXRhKTsKLSAgICAgICAgICAg
IHJ1blRlc3RXaXRoRGF0YUFuZENoZWNrKGlucHV0LCBkYXRhKTsKLSAgICAgICAgICAgIG5leHQo
KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0SW5jb21wYXRpYmxlKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBkYXRhID0gWyJWZXJzaW9uIiwKLSAgICAgICAg
ICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NDMxNi44NDA4LCJkYXRhIjp7InJlcXVlc3RJ
ZCI6NDMsInVybCI6Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iLCJyZXF1ZXN0TWV0aG9kIjoiR0VU
In0sInR5cGUiOiJVbmtub3duUmVjb3JkVHlwZSIsInVcInN9ZX1kSGVhcFNpemVcXCI6MTgxOTkz
NiwidG90YWxIZWFwU2l6ZSI6NzYyOTEyMH0KLSAgICAgICAgICAgIF07Ci0gICAgICAgICAgICB2
YXIgaW5wdXQgPSBKU09OLnN0cmluZ2lmeShkYXRhKTsKLSAgICAgICAgICAgIHJ1blRlc3RXaXRo
RGF0YUFuZENoZWNrKGlucHV0LCBkYXRhKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAg
fSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0TWFsZm9ybWVkKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHZhciBkYXRhID0gWyJWZXJzaW9uIl07Ci0gICAgICAgICAgICAvLyBBdCBsZWFz
dCAxIHJlY29yZCBpcyBwYXJzZWQgaW4gZmlyc3QgY2h1bmsuCi0gICAgICAgICAgICB2YXIgaW5w
dXQgPSAnWyJWZXJzaW9uIiwnCi0gICAgICAgICAgICAgICAgKyd7InN0YXJ0VGltZSI6MTMxMDc0
OTg1NDMxNi44NDA4LCJkYXRhIjp7InJlcXVlc3RJZCI6NDN9LCJ0eXBlIjoiVW5rbm93blJlY29y
ZFR5cGUifSwnCi0gICAgICAgICAgICAgICAgKyd7InN0YXJ0VGltZSI6MTMxMDc0OTg1NDMxNi44
NTA4LCJkYXRhIjp7InJlcXVlc3RJZCI6NDN9LCJ0eXBlIjoiVW5rbm93blJlY29yZFR5cGUifSwn
Ci0gICAgICAgICAgICAgICAgKyd7InN0YXJ0VGltZSI6MTMxMDc0OTg1NDMxNi44NjA4LCJkYXRh
Ijp7InJlcXVlc3RJZCI6NDN9LCJ0eXBlIjoiVW5rbm93blJlY29yZFR5cGUifSwnCi0gICAgICAg
ICAgICAgICAgKyd7InN0YXJ0VGltZSI6MTMxMDc0OTg1NDMxNi44NzA4LCJkYXRhIjp7InJlcXVl
c3RJZCI6NDNfTUFMRk9STUVEX0pTT05ffSwidHlwZSI6IlVua25vd25SZWNvcmRUeXBlIn1dJzsK
LSAgICAgICAgICAgIHJ1blRlc3RXaXRoRGF0YUFuZENoZWNrKGlucHV0LCBkYXRhKTsKLSAgICAg
ICAgICAgIG5leHQoKTsKLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGUgVGltZWxpbmUg
c2F2ZS9sb2FkIGZ1bmN0aW9uYWxpdHkuCi08L3A+Ci0KLTxwPgotQWxzbyB0ZXN0cyBzYXZlL2xv
YWQgb2YgdW5rbm93biAoaW5jb21wYXRpYmxlKSByZWNvcmQgdHlwZXMuIDxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTcxNCI+KEJ1ZyA5MTcxNCk8L2E+
Ci08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlY2VpdmVkLWRhdGEtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVjZWl2
ZWQtZGF0YS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjZjBl
MzQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LW5ldHdvcmstcmVjZWl2ZWQtZGF0YS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2
ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBTY3JpcHQgZXZhbHVhdGVkCi1UZXN0
cyB0aGUgVGltZWxpbmUgQVBJIGluc3RydW1lbnRhdGlvbiBvZiBhIG5ldHdvcmsgcmVzb3VyY2Ug
cmVjZWl2ZWQgZGF0YQotCi1TY3JpcHQgcmVzb3VyY2UgbG9hZGVkCi1SZXNvdXJjZSByZWNlaXZl
ZCBkYXRhIGhhcyBsZW5ndGgsIHRlc3QgcGFzc2VkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1yZWNlaXZlZC1kYXRhLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1yZWNlaXZl
ZC1kYXRhLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiZmI4OGEuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmst
cmVjZWl2ZWQtZGF0YS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIgc2NyaXB0
VXJsID0gInRpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UuanMiOwotCi1mdW5jdGlvbiBwZXJmb3Jt
QWN0aW9ucygpIAotewotICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZSgpOwotICAgIGltYWdlLnNy
YyA9ICJyZXNvdXJjZXMvYW5JbWFnZS5wbmciOwotICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKLSAgICBzY3JpcHQuc3JjID0gc2NyaXB0VXJsOwotICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKLX0KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgdmFyIHNjcmlwdFVybCA9ICJ0aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLmpzIjsK
LQotICAgIHZhciBjYWxsZWRPbmNlOwotCi0gICAgSW5zcGVjdG9yVGVzdC5zdGFydFRpbWVsaW5l
KGZ1bmN0aW9uKCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJwZXJm
b3JtQWN0aW9ucygpIik7Ci0gICAgfSk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JSZWNv
cmRUeXBlKCJSZXNvdXJjZVJlY2VpdmVkRGF0YSIsIGZpbmlzaCk7Ci0KLSAgICBmdW5jdGlvbiBm
aW5pc2gob2JqZWN0KQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgcHJvcCBpbiBvYmplY3QpIHsK
LSAgICAgICAgICAgIGlmICghSW5zcGVjdG9yVGVzdC50aW1lbGluZVByb3BlcnR5Rm9ybWF0dGVy
c1twcm9wXSkgewotICAgICAgICAgICAgICAgIGZvciAodmFyIHByb3BlcnR5IGluIG9iamVjdFtw
cm9wXSkgewotICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkgPT09ICJlbmNvZGVkRGF0
YUxlbmd0aCIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2FsbGVkT25jZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxlZE9uY2UgPSB0cnVlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXNvdXJjZSByZWNl
aXZlZCBkYXRhIGhhcyBsZW5ndGgsIHRlc3QgcGFzc2VkLiIpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Ci08cD4KLVRlc3RzIHRoZSBUaW1lbGluZSBBUEkgaW5zdHJ1bWVudGF0aW9uIG9mIGEgbmV0d29y
ayByZXNvdXJjZSByZWNlaXZlZCBkYXRhCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1yZXNv
dXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDA3ODczYzQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNDkgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IFNjcmlwdCBldmFsdWF0
ZWQKLVRlc3RzIHRoZSBUaW1lbGluZSBBUEkgaW5zdHJ1bWVudGF0aW9uIG9mIGEgbmV0d29yayBy
ZXNvdXJjZSBsb2FkCi0KLVNjcmlwdCByZXNvdXJjZSBsb2FkZWQKLQotUmVzb3VyY2VTZW5kUmVx
dWVzdCBQcm9wZXJ0aWVzOgotewotICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLSAgICBkYXRhIDog
ewotICAgICAgICByZXF1ZXN0SWQgOiA8c3RyaW5nPgotICAgICAgICByZXF1ZXN0TWV0aG9kIDog
IkdFVCIKLSAgICAgICAgdXJsIDogPHN0cmluZz4KLSAgICB9Ci0gICAgZnJhbWVJZCA6IDxzdHJp
bmc+Ci0gICAgc3RhY2tUcmFjZSA6IDxvYmplY3Q+Ci0gICAgc3RhcnRUaW1lIDogPG51bWJlcj4K
LSAgICB0eXBlIDogIlJlc291cmNlU2VuZFJlcXVlc3QiCi0gICAgdXNlZEhlYXBTaXplIDogPG51
bWJlcj4KLX0KLQotUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2UgUHJvcGVydGllczoKLXsKLSAgICBj
aGlsZHJlbiA6IDxvYmplY3Q+Ci0gICAgY291bnRlcnMgOiA8b2JqZWN0PgotICAgIGRhdGEgOiB7
Ci0gICAgICAgIG1pbWVUeXBlIDogPHN0cmluZz4KLSAgICAgICAgcmVxdWVzdElkIDogPHN0cmlu
Zz4KLSAgICAgICAgc3RhdHVzQ29kZSA6IDAKLSAgICB9Ci0gICAgZW5kVGltZSA6IDxudW1iZXI+
Ci0gICAgZnJhbWVJZCA6IDxzdHJpbmc+Ci0gICAgc3RhcnRUaW1lIDogPG51bWJlcj4KLSAgICB0
eXBlIDogIlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIgotICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1i
ZXI+Ci19Ci0KLVJlc291cmNlRmluaXNoIFByb3BlcnRpZXM6Ci17Ci0gICAgY291bnRlcnMgOiA8
b2JqZWN0PgotICAgIGRhdGEgOiB7Ci0gICAgICAgIGRpZEZhaWwgOiBmYWxzZQotICAgICAgICBy
ZXF1ZXN0SWQgOiA8c3RyaW5nPgotICAgIH0KLSAgICBmcmFtZUlkIDogPHN0cmluZz4KLSAgICBz
dGFydFRpbWUgOiA8bnVtYmVyPgotICAgIHR5cGUgOiAiUmVzb3VyY2VGaW5pc2giCi0gICAgdXNl
ZEhlYXBTaXplIDogPG51bWJlcj4KLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhMTJiNWIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDEwNCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci90aW1lbGluZS10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXZhciBzY3JpcHRVcmwgPSAidGltZWxpbmUtbmV0d29y
ay1yZXNvdXJjZS5qcyI7Ci0KLWZ1bmN0aW9uIHBlcmZvcm1BY3Rpb25zKCkgCi17Ci0gICAgdmFy
IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotICAgIHNjcmlwdC5z
cmMgPSBzY3JpcHRVcmw7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOwot
fQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgcmVxdWVzdElkOwotICAgIHZhciBzY3Jp
cHRVcmwgPSAidGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS5qcyI7Ci0KLSAgICBXZWJJbnNwZWN0
b3Iuc2hvd1BhbmVsKCJ0aW1lbGluZSIpOwotICAgIHZhciBtb2RlbCA9IFdlYkluc3BlY3Rvci5w
YW5lbHMudGltZWxpbmUuX21vZGVsOwotICAgIHZhciBwcmVzZW50YXRpb25Nb2RlbCA9IFdlYklu
c3BlY3Rvci5wYW5lbHMudGltZWxpbmUuX3ByZXNlbnRhdGlvbk1vZGVsOwotICAgIHByZXNlbnRh
dGlvbk1vZGVsLnNldEdsdWVSZWNvcmRzKHRydWUpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5zdGFy
dFRpbWVsaW5lKHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInBlcmZvcm1BY3Rpb25zKCkiKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zdG9wVGltZWxp
bmUoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAg
IHZhciBsYXN0UmVjb3JkU3RhcnRUaW1lOwotICAgICAgICBmdW5jdGlvbiBmb3JtYXQocmVjb3Jk
KQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rv
ci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuUmVzb3VyY2VTZW5kUmVxdWVzdCkKLSAgICAgICAg
ICAgICAgICBwcmludFNlbmQocmVjb3JkLl9yZWNvcmQpOwotICAgICAgICAgICAgZWxzZSBpZiAo
cmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuUmVz
b3VyY2VSZWNlaXZlUmVzcG9uc2UpCi0gICAgICAgICAgICAgICAgcHJpbnRSZWNlaXZlKHJlY29y
ZC5fcmVjb3JkKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLlJlc291cmNlRmluaXNoKQotICAgICAgICAg
ICAgICAgIHByaW50RmluaXNoKHJlY29yZC5fcmVjb3JkKTsKLQotICAgICAgICAgICAgaWYgKHJl
Y29yZC5wYXJlbnQgJiYgcmVjb3JkLnBhcmVudC50eXBlID09PSBXZWJJbnNwZWN0b3IuVGltZWxp
bmVNb2RlbC5SZWNvcmRUeXBlLlJvb3QpIHsKLSAgICAgICAgICAgICAgICBpZiAobGFzdFJlY29y
ZFN0YXJ0VGltZSkKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRHcmVh
dGVyT3JFcXVhbChyZWNvcmQuc3RhcnRUaW1lLCBsYXN0UmVjb3JkU3RhcnRUaW1lLCAiVG9wIGxl
dmVsIHJlY29yZHMgb3JkZXIgdmlvbGF0aW9uIik7Ci0gICAgICAgICAgICAgICAgbGFzdFJlY29y
ZFN0YXJ0VGltZSA9IHJlY29yZC5zdGFydFRpbWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVj
b3JkcyhbcHJlc2VudGF0aW9uTW9kZWwucm9vdFJlY29yZCgpXSwgZm9ybWF0KTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwcmlu
dFJlY29yZChyZWNvcmQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucHJpbnRUaW1lbGluZVJlY29yZFByb3BlcnRpZXMo
cmVjb3JkKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwcmludFNlbmQocmVjb3JkKQotICAgIHsK
LSAgICAgICAgcHJpbnRSZWNvcmQocmVjb3JkKTsKLSAgICAgICAgcmVxdWVzdElkID0gcmVjb3Jk
LmRhdGEucmVxdWVzdElkOwotICAgICAgICBpZiAocmVjb3JkLmRhdGEudXJsID09PSB1bmRlZmlu
ZWQpIAotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiogTm8gJ3VybCcgcHJv
cGVydHkgaW4gcmVjb3JkIik7Ci0gICAgICAgIGVsc2UgaWYgKHJlY29yZC5kYXRhLnVybC5pbmRl
eE9mKHNjcmlwdFVybCkgPT09IC0xKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIiogRGlkbid0IGZpbmQgVVJMOiAiICsgc2NyaXB0VXJsKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBwcmludFJlY2VpdmUocmVjb3JkKQotICAgIHsKLSAgICAgICAgcHJpbnRSZWNvcmQocmVj
b3JkKTsKLSAgICAgICAgaWYgKHJlcXVlc3RJZCAhPT0gcmVjb3JkLmRhdGEucmVxdWVzdElkKQot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkRpZG4ndCBmaW5kIG1hdGNoaW5n
IHJlcXVlc3RJZDogIiArIHJlcXVlc3RJZCk7Ci0gICAgICAgIGlmIChyZWNvcmQuZGF0YS5zdGF0
dXNDb2RlICE9PSAwKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJlc3Bv
bnNlIHJlY2VpdmVkIHN0YXR1czogIiArIHJlY29yZC5kYXRhLnN0YXR1c0NvZGUpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHByaW50RmluaXNoKHJlY29yZCkKLSAgICB7Ci0gICAgICAgIHByaW50
UmVjb3JkKHJlY29yZCk7Ci0gICAgICAgIGlmIChyZXF1ZXN0SWQgIT09IHJlY29yZC5kYXRhLnJl
cXVlc3RJZCkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEaWRuJ3QgZmlu
ZCBtYXRjaGluZyByZXF1ZXN0SWQ6ICIgKyByZXF1ZXN0SWQpOwotICAgICAgICBpZiAocmVjb3Jk
LmRhdGEuZGlkRmFpbCkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXF1
ZXN0IGZhaWxlZC4iKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoZSBUaW1lbGluZSBBUEkgaW5zdHJ1bWVu
dGF0aW9uIG9mIGEgbmV0d29yayByZXNvdXJjZSBsb2FkCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0
d29yay1yZXNvdXJjZS5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1uZXR3b3JrLXJlc291cmNlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDg5
NzZlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1uZXR3b3JrLXJlc291cmNlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0vLyBT
YW1wbGUgc2NyaXB0IHJlc291cmNlIHRvIGZpbmQgaW4gdGltZWxpbmUgZGF0YQotCi12YXIgZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotZWxlbWVudC5pbm5lckhUTUwg
PSAiU2NyaXB0IHJlc291cmNlIGxvYWRlZCI7Ci1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVs
ZW1lbnQpOwotCi1jb25zb2xlLmxvZygiU2NyaXB0IGV2YWx1YXRlZCIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1wYWludC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1OGJlZWEuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRlc3RzIHRoZSBUaW1lbGluZSBB
UEkgaW5zdHJ1bWVudGF0aW9uIG9mIGEgcGFpbnQgZXZlbnQKLQotCi1QYWludCBQcm9wZXJ0aWVz
OgotewotICAgIGNoaWxkcmVuIDogPG9iamVjdD4KLSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0g
ICAgZGF0YSA6IHsKLSAgICAgICAgY2xpcCA6IDxvYmplY3Q+Ci0gICAgfQotICAgIGVuZFRpbWUg
OiA8bnVtYmVyPgotICAgIGZyYW1lSWQgOiA8c3RyaW5nPgotICAgIHN0YWNrVHJhY2UgOiA8b2Jq
ZWN0PgotICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJQYWludCIKLSAgICB1
c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcGFpbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1wYWludC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3NzhlZDU2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1wYWludC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlv
biBkaXNwbGF5KCkKLXsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOwotfQotCi1mdW5jdGlvbiB1cGRhdGVTdWJmcmFtZUFuZERpc3BsYXko
KQotewotICAgIGZyYW1lc1swXS5kb2N1bWVudC5ib2R5LmNoaWxkcmVuWzBdLnN0eWxlLmJhY2tn
cm91bmRDb2xvciA9ICJncmVlbiI7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbigpOwotfQotCi1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICBzdGVwMSgpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZVdpdGhUaW1lbGluZSgiZGlzcGxheSgpIiwgc3Rl
cDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKHJlY29yZHMpCi0gICAgewotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAg
IHZhciByZWNvcmQgPSByZWNvcmRzW2ldOwotICAgICAgICAgICAgaWYgKHJlY29yZC50eXBlID09
PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLlBhaW50KSB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5wcmludFRpbWVsaW5lUmVjb3JkUHJvcGVydGllcyhyZWNv
cmQpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVXaXRoVGltZWxpbmUoInVwZGF0ZVN1YmZyYW1l
QW5kRGlzcGxheSgpIiwgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKHJlY29y
ZHMpCi0gICAgewotICAgICAgICB2YXIgcGFpbnRSZWNvcmQ7Ci0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHJlY29yZCA9
IHJlY29yZHNbaV07Ci0gICAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rv
ci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuUGFpbnQgJiYgcmVjb3JkLmNoaWxkcmVuICYmIHJl
Y29yZC5jaGlsZHJlbi5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBwYWludFJlY29yZCA9IHJl
Y29yZDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUocGFpbnRSZWNvcmQsICJQYWludCByZWNv
cmQgd2l0aCBzdWJmcmFtZSBwYWludCBub3QgZm91bmQiKTsKLSAgICAgICAgdmFyIHRvcFF1YWQg
PSBwYWludFJlY29yZC5kYXRhLmNsaXA7Ci0gICAgICAgIHZhciBzdWJmcmFtZVBhaW50ID0gcGFp
bnRSZWNvcmQuY2hpbGRyZW5bMF07Ci0gICAgICAgIHZhciBzdWJmcmFtZVF1YWQgPSBzdWJmcmFt
ZVBhaW50LmRhdGEuY2xpcDsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoOCwg
dG9wUXVhZC5sZW5ndGgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyg4LCBz
dWJmcmFtZVF1YWQubGVuZ3RoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRHcmVhdGVy
T3JFcXVhbChzdWJmcmFtZVF1YWRbMF0sIHRvcFF1YWRbMF0pOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEdyZWF0ZXJPckVxdWFsKHN1YmZyYW1lUXVhZFsxXSwgdG9wUXVhZFsxXSk7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0R3JlYXRlck9yRXF1YWwodG9wUXVhZFsyXSwgc3Vi
ZnJhbWVRdWFkWzJdKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRHcmVhdGVyT3JFcXVh
bChzdWJmcmFtZVF1YWRbM10sIHRvcFF1YWRbM10pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEdyZWF0ZXJPckVxdWFsKHRvcFF1YWRbNF0sIHN1YmZyYW1lUXVhZFs0XSk7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0R3JlYXRlck9yRXF1YWwodG9wUXVhZFs1XSwgc3ViZnJhbWVR
dWFkWzVdKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRHcmVhdGVyT3JFcXVhbChzdWJm
cmFtZVF1YWRbNl0sIHRvcFF1YWRbNl0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEdy
ZWF0ZXJPckVxdWFsKHRvcFF1YWRbN10sIHN1YmZyYW1lUXVhZFs3XSk7Ci0KLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoZSBUaW1lbGluZSBB
UEkgaW5zdHJ1bWVudGF0aW9uIG9mIGEgcGFpbnQgZXZlbnQKLTwvcD4KLTxpZnJhbWUgc3JjPSJy
ZXNvdXJjZXMvdGltZWxpbmUtaWZyYW1lLXBhaW50Lmh0bWwiIHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IGxlZnQ6IDQwcHg7IHRvcDogNDBweDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4
OyBib3JkZXI6IG5vbmUiPjwvaWZyYW1lPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXBhcnNlLWh0
bWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjhkNzNiLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1wYXJz
ZS1odG1sLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLVRlc3Rz
IHRoZSBUaW1lbGluZSBBUEkgaW5zdHJ1bWVudGF0aW9uIG9mIFBhcnNlSFRNTAotCi1UZXN0IGRh
dGEKLVBhcnNlSFRNTCBQcm9wZXJ0aWVzOgotewotICAgIGNoaWxkcmVuIDogPG9iamVjdD4KLSAg
ICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6IHsKLSAgICAgICAgZW5kTGluZSA6IDAK
LSAgICAgICAgc3RhcnRMaW5lIDogMAotICAgIH0KLSAgICBlbmRUaW1lIDogPG51bWJlcj4KLSAg
ICBmcmFtZUlkIDogPHN0cmluZz4KLSAgICBzdGFja1RyYWNlIDogPG9iamVjdD4KLSAgICBzdGFy
dFRpbWUgOiA8bnVtYmVyPgotICAgIHR5cGUgOiAiUGFyc2VIVE1MIgotICAgIHVzZWRIZWFwU2l6
ZSA6IDxudW1iZXI+Ci19Ci1QYXJzZUhUTUwgUHJvcGVydGllczoKLXsKLSAgICBjaGlsZHJlbiA6
IDxvYmplY3Q+Ci0gICAgY291bnRlcnMgOiA8b2JqZWN0PgotICAgIGRhdGEgOiB7Ci0gICAgICAg
IGVuZExpbmUgOiAwCi0gICAgICAgIHN0YXJ0TGluZSA6IDAKLSAgICB9Ci0gICAgZW5kVGltZSA6
IDxudW1iZXI+Ci0gICAgZnJhbWVJZCA6IDxzdHJpbmc+Ci0gICAgc3RhY2tUcmFjZSA6IDxvYmpl
Y3Q+Ci0gICAgc3RhcnRUaW1lIDogPG51bWJlcj4KLSAgICB0eXBlIDogIlBhcnNlSFRNTCIKLSAg
ICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcGFyc2UtaHRtbC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXBhcnNlLWh0bWwuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNjI2MjFhNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcGFyc2UtaHRtbC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMjggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotCi1mdW5jdGlvbiBwZXJmb3JtQWN0aW9ucygpCi17Ci0gICAgdmFyIGVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICBlbGVtZW50LmlubmVySFRNTCA9
ICJUZXN0IGRhdGEiOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Ci19
Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QucGVyZm9ybUFjdGlvbnNB
bmRQcmludCgicGVyZm9ybUFjdGlvbnMoKSIsICJQYXJzZUhUTUwiKTsKLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhlIFRp
bWVsaW5lIEFQSSBpbnN0cnVtZW50YXRpb24gb2YgUGFyc2VIVE1MIAotPC9wPgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNhbGN1bGF0ZS1zdHlsZXMtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzc5M2U5Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNhbGN1bGF0ZS1zdHlsZXMtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGVzdHMgdGhlIFRpbWVs
aW5lIEFQSSBpbnN0cnVtZW50YXRpb24gb2YgYSBzdHlsZSByZWNhbGN1bGF0aW9uIGV2ZW50Ci0K
LVRlc3QgZGF0YQotUmVjYWxjdWxhdGVTdHlsZXMgUHJvcGVydGllczoKLXsKLSAgICBjaGlsZHJl
biA6IDxvYmplY3Q+Ci0gICAgY291bnRlcnMgOiA8b2JqZWN0PgotICAgIGRhdGEgOiB7Ci0gICAg
fQotICAgIGVuZFRpbWUgOiA8bnVtYmVyPgotICAgIGZyYW1lSWQgOiA8c3RyaW5nPgotICAgIHN0
YXJ0VGltZSA6IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJSZWNhbGN1bGF0ZVN0eWxlcyIKLSAgICB1
c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3NmEzNzMuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXJlY2FsY3VsYXRlLXN0eWxlcy5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci0KLTxzdHlsZT4KLS50ZXN0LXN0eWxlIHsKLSAgICBjb2xvcjog
cmVkOwotfQotPC9zdHlsZT4KLQotPHNjcmlwdD4KLQotZnVuY3Rpb24gcGVyZm9ybUFjdGlvbnMo
KQotewotICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0g
ICAgZWxlbWVudC5jbGFzc05hbWUgPSAidGVzdC1zdHlsZSI7Ci0gICAgZWxlbWVudC5pbm5lckhU
TUwgPSAiVGVzdCBkYXRhIjsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQp
OwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnBlcmZvcm1BY3Rp
b25zQW5kUHJpbnQoInBlcmZvcm1BY3Rpb25zKCkiLCAiUmVjYWxjdWxhdGVTdHlsZXMiKTsKLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgot
VGVzdHMgdGhlIFRpbWVsaW5lIEFQSSBpbnN0cnVtZW50YXRpb24gb2YgYSBzdHlsZSByZWNhbGN1
bGF0aW9uIGV2ZW50Ci08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNlaXZlLXJlc3BvbnNlLWV2ZW50
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1y
ZWNlaXZlLXJlc3BvbnNlLWV2ZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYWQ5ZmE2Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtcmVjZWl2ZS1yZXNwb25zZS1ldmVudC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UZXN0cyB0aGUgVGltZWxpbmUgQVBJIGluc3RydW1l
bnRhdGlvbiBvZiBhIFNlbmRSZXF1ZXN0LCBSZWNlaXZlUmVzcG9uc2UgZXRjLgotCi1GdW5jdGlv
bkNhbGwKLUZ1bmN0aW9uQ2FsbAotUmVzb3VyY2VTZW5kUmVxdWVzdAotICAgIFJlc291cmNlUmVj
ZWl2ZVJlc3BvbnNlCi0gICAgUmVzb3VyY2VSZWNlaXZlZERhdGEKLSAgICBSZXNvdXJjZUZpbmlz
aAotRXZlbnREaXNwYXRjaAotICAgIEZ1bmN0aW9uQ2FsbAotUmVzb3VyY2VTZW5kUmVxdWVzdAot
ICAgIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlCi0gICAgUmVzb3VyY2VSZWNlaXZlZERhdGEKLSAg
ICBSZXNvdXJjZUZpbmlzaAotRXZlbnREaXNwYXRjaAotICAgIEZ1bmN0aW9uQ2FsbAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjZWl2ZS1y
ZXNwb25zZS1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLXJlY2VpdmUtcmVzcG9uc2UtZXZlbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjZhZDYyMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtcmVjZWl2ZS1yZXNwb25zZS1ldmVudC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNzcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotCi1mdW5jdGlvbiBwZXJmb3JtQWN0aW9ucygpCi17Ci0gICAgdmFyIGltYWdlID0g
bmV3IEltYWdlKCk7Ci0gICAgaW1hZ2Uub25sb2FkID0gYmFyOwotICAgIGltYWdlLnNyYyA9ICJy
ZXNvdXJjZXMvYW5JbWFnZS5wbmciOwotCi0gICAgZnVuY3Rpb24gYmFyKCkgewotICAgICAgICB2
YXIgaW1hZ2UgPSBuZXcgSW1hZ2UoKTsKLSAgICAgICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24o
KSB7IHRlc3RSdW5uZXIuZXZhbHVhdGVJbldlYkluc3BlY3RvcigwLCAid2luZG93LnN0ZXAyKCki
KTsgfQotICAgICAgICBpbWFnZS5zcmMgPSAicmVzb3VyY2VzL2Fub3RoZXJJbWFnZS5wbmciOwot
ICAgIH0KLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5l
bCgidGltZWxpbmUiKTsKLSAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnRpbWVsaW5lLl9tb2RlbC5f
Y29sbGVjdGlvbkVuYWJsZWQgPSB0cnVlOwotICAgIFdlYkluc3BlY3Rvci5wYW5lbHMudGltZWxp
bmUuX3ByZXNlbnRhdGlvbk1vZGVsLnNldEdsdWVSZWNvcmRzKHRydWUpOwotICAgIFdlYkluc3Bl
Y3Rvci5wYW5lbHMudGltZWxpbmUuX21vZGVsLl9jb2xsZWN0aW9uRW5hYmxlZCA9IHRydWU7Ci0K
LSAgICBUaW1lbGluZUFnZW50LnN0YXJ0KHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkK
LSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInBlcmZvcm1BY3Rp
b25zKCkiKTsKLSAgICB9Ci0KLSAgICB3aW5kb3cuc3RlcDIgPSBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICBUaW1lbGluZUFnZW50LnN0b3Aoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGR1bXBGb3JtYXR0ZWRSZWNvcmQocmVj
b3JkLCBwcmVmaXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgICBwcmVmaXggPSBwcmVmaXggfHwg
IiI7Ci0gICAgICAgICAgICAgLy8gSGVyZSBhbmQgYmVsb3c6IHByZXRlbmQgY29hbGVzY2VkIHJl
Y29yZCBhcmUganVzdCBub3QgdGhlcmUsIGFzIGNvYWxlc2NhdGlvbiBpcyB0aW1lIGRlcGVuZGVu
dCBhbmQsIGhlbmNlLCBub3Qgc3RhYmxlLgotICAgICAgICAgICAgIGlmICghcmVjb3JkLmNvYWxl
c2NlZCAmJiByZWNvcmQudHlwZSAhPT0gIkdDRXZlbnQiKQotICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdChwcmVmaXggKyByZWNvcmQudHlwZSk7Ci0gICAgICAgICAgICAg
Ly8gSWdub3JlIHN0cmF5IHBhaW50ICYgcmVuZGVyaW5nIGV2ZW50cyBmb3IgYmV0dGVyIHN0YWJp
bGl0eS4KLSAgICAgICAgICAgICBpZiAocmVjb3JkLmNhdGVnb3J5Lm5hbWUgIT09ICJsb2FkaW5n
IiAmJiByZWNvcmQuY2F0ZWdvcnkubmFtZSAhPT0gInNjcmlwdGluZyIpCi0gICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgICBpZiAocmVjb3JkLl9jaGlsZHJlbikgewotICAgICAg
ICAgICAgICAgICB2YXIgY2hpbGRQcmVmaXggPSBwcmVmaXggKyAocmVjb3JkLmNvYWxlc2NlZCA/
ICIiIDogIiAgICAiKTsKLSAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNv
cmQuX2NoaWxkcmVuLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgICAgICAgZHVtcEZvcm1h
dHRlZFJlY29yZChyZWNvcmQuX2NoaWxkcmVuW2ldLCBjaGlsZFByZWZpeCk7Ci0gICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMudGltZWxpbmUuX21v
ZGVsLl9jb2xsZWN0aW9uRW5hYmxlZCA9IGZhbHNlOwotCi0gICAgICAgIHZhciByZWNvcmRzID0g
V2ViSW5zcGVjdG9yLnBhbmVscy50aW1lbGluZS5fcm9vdFJlY29yZCgpLmNoaWxkcmVuOwotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyArK2kpCi0gICAgICAgICAg
ICBkdW1wRm9ybWF0dGVkUmVjb3JkKHJlY29yZHNbaV0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICBzZXRUaW1lb3V0KHBlcmZvcm1BY3Rpb25zLCAzMDAwKTsKLQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhlIFRpbWVsaW5lIEFQ
SSBpbnN0cnVtZW50YXRpb24gb2YgYSBTZW5kUmVxdWVzdCwgUmVjZWl2ZVJlc3BvbnNlIGV0Yy4K
LTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTFlNDU1Ny4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA4OiBpZnJhbWUgbG9hZGVkCi1UZXN0cyB0aGUgVGltZWxpbmUgQVBJIGluc3RydW1lbnRh
dGlvbiBvZiBhbiBIVE1MIHNjcmlwdCB0YWcuCi0KLQotUGFyc2VIVE1MCi1QYXJzZUhUTUwKLS0t
LS0+IEV2YWx1YXRlU2NyaXB0Ci0tLS0tLS0tLT4gVGltZVN0YW1wIDogU0NSSVBUIFRBRwotRXZh
bHVhdGVTY3JpcHQgUHJvcGVydGllczoKLXsKLSAgICBjaGlsZHJlbiA6IDxvYmplY3Q+Ci0gICAg
Y291bnRlcnMgOiA8b2JqZWN0PgotICAgIGRhdGEgOiB7Ci0gICAgICAgIGxpbmVOdW1iZXIgOiA8
bnVtYmVyPgotICAgICAgICB1cmwgOiA8c3RyaW5nPgotICAgIH0KLSAgICBlbmRUaW1lIDogPG51
bWJlcj4KLSAgICBmcmFtZUlkIDogPHN0cmluZz4KLSAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgot
ICAgIHR5cGUgOiAiRXZhbHVhdGVTY3JpcHQiCi0gICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4K
LX0KLVBhcnNlSFRNTAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDdmYTI4MWMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
Ci1mdW5jdGlvbiBwZXJmb3JtQWN0aW9ucygpCi17Ci0gICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgIGlmcmFtZS5zcmMgPSAicmVzb3VyY2VzL3Rp
bWVsaW5lLWlmcmFtZS1kYXRhLmh0bWwiOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aWZyYW1lKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpIAotewotICAgIEluc3BlY3RvclRlc3Quc3Rh
cnRUaW1lbGluZShzdGVwMSk7Ci0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihzdGVwMik7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoInBlcmZvcm1BY3Rpb25zKCkiKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnN0b3BUaW1lbGlu
ZShzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAg
ZnVuY3Rpb24gZm9ybWF0KHJlY29yZCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKHJlY29y
ZC50eXBlID09PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLkV2YWx1YXRl
U2NyaXB0KQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucHJpbnRUaW1lbGluZVJlY29y
ZFByb3BlcnRpZXMocmVjb3JkKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHJlY29yZC50eXBlID09
PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLlBhcnNlSFRNTCkgewotICAg
ICAgICAgICAgICAgIHZhciBjaGlsZHJlbiA9IFtdOwotICAgICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcmVjb3JkLmNoaWxkcmVuLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChyZWNvcmQuY2hpbGRyZW5baV0udHlwZSAhPT0gV2ViSW5zcGVjdG9yLlRpbWVs
aW5lTW9kZWwuUmVjb3JkVHlwZS5SZWNhbGN1bGF0ZVN0eWxlcykKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNoaWxkcmVuLnB1c2gocmVjb3JkLmNoaWxkcmVuW2ldKTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgcmVjb3JkLmNoaWxkcmVuID0gY2hpbGRyZW47Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVGltZWxpbmVSZWNvcmQocmVjb3JkKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LnByaW50VGltZWxpbmVS
ZWNvcmRzKG51bGwsIGZvcm1hdCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGUgVGltZWxpbmUgQVBJIGluc3RydW1lbnRhdGlvbiBvZiBh
biBIVE1MIHNjcmlwdCB0YWcuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlw
dC10YWctMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0MDZh
OTIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LXNjcmlwdC10YWctMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogU0NSSVBUIFRBRwotVGVzdHMgdGhlIFRpbWVsaW5l
IEFQSSBpbnN0cnVtZW50YXRpb24gb2YgYSBzY3JpcHQgdGFnIHdpdGggYW4gZXh0ZXJuYWwgc2Ny
aXB0LgotCi1FdmFsdWF0ZVNjcmlwdCBQcm9wZXJ0aWVzOgotewotICAgIGNoaWxkcmVuIDogPG9i
amVjdD4KLSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6IHsKLSAgICAgICAgbGlu
ZU51bWJlciA6IDxudW1iZXI+Ci0gICAgICAgIHVybCA6IDxzdHJpbmc+Ci0gICAgfQotICAgIGVu
ZFRpbWUgOiA8bnVtYmVyPgotICAgIGZyYW1lSWQgOiA8c3RyaW5nPgotICAgIHN0YXJ0VGltZSA6
IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJFdmFsdWF0ZVNjcmlwdCIKLSAgICB1c2VkSGVhcFNpemUg
OiA8bnVtYmVyPgotfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtc2NyaXB0LXRhZy0yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDhmNmJlYWIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
Ci1mdW5jdGlvbiBwZXJmb3JtQWN0aW9ucygpCi17Ci0gICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotICAgIHNjcmlwdC5zcmMgPSAidGltZWxpbmUtc2Ny
aXB0LXRhZy0yLmpzIjsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7Ci19
Ci0KLWZ1bmN0aW9uIHRlc3QoKSAKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0VGltZWxpbmUo
c3RlcDEpOwotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKCJwZXJmb3JtQWN0aW9ucygpIik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3Rl
cDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zdG9wVGltZWxpbmUoc3RlcDMpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QucHJpbnRUaW1lbGluZVJlY29yZHMoIkV2YWx1YXRlU2NyaXB0Iik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGUgVGltZWxpbmUgQVBJ
IGluc3RydW1lbnRhdGlvbiBvZiBhIHNjcmlwdCB0YWcgd2l0aCBhbiBleHRlcm5hbCBzY3JpcHQu
Ci08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTIuanMgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0yLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5MDU3YTM3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTIuanMKKysrIC9kZXYvbnVsbApAQCAtMSAr
MCwwIEBACi1jb25zb2xlLmxvZygiU0NSSVBUIFRBRyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXN0YXJ0LXRpbWUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXN0YXJ0LXRpbWUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjFhZjJkLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zdGFydC10aW1lLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgc2FuaXR5IG9m
IHRpbWVsaW5lIHRpbWVzdGFtcHMuCi0KLWRvbmUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXN0YXJ0LXRpbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zdGFydC10aW1lLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGVjMjM3Y2IuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXN0YXJ0LXRpbWUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDM5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLQotZnVuY3Rpb24gcGVyZm9ybUFjdGlvbnMoKQotewotICAgIGNvbnNvbGUudGlt
ZVN0YW1wKCJ0aW1lIGlzIGFuIGlsbHVzaW9uIik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIHZhciBiZWZvcmVTdGFydCA9IERhdGUubm93KCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFy
dFRpbWVsaW5lKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yUmVjb3JkVHlwZSgiVGltZVN0
YW1wIiwgb25UaW1lU3RhbXApOwotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInBl
cmZvcm1BY3Rpb25zKCkiKTsKLQotICAgIGZ1bmN0aW9uIG9uVGltZVN0YW1wKHJlY29yZCkKLSAg
ICB7Ci0gICAgICAgIHZhciBub3cgPSBEYXRlLm5vdygpOwotICAgICAgICB2YXIgZXZlbnRUaW1l
ID0gcmVjb3JkLnN0YXJ0VGltZTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRHcmVhdGVy
T3JFcXVhbChldmVudFRpbWUsIGJlZm9yZVN0YXJ0LCAiZXZlbnQgdGltZSBzaG91bGQgYmUgYWZ0
ZXIgdGltZWxpbmUgc3RhcnQgdGltZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEdy
ZWF0ZXJPckVxdWFsKG5vdywgTWF0aC5mbG9vcihldmVudFRpbWUpLCAiZXZlbnQgdGltZSBzaG91
bGQgYmUgYmVmb3JlIG5vdyIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZG9u
ZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnN0b3BUaW1lbGluZShJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdC5iaW5kKEluc3BlY3RvclRlc3QpKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHNhbml0eSBv
ZiB0aW1lbGluZSB0aW1lc3RhbXBzLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwMDFjN2MuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotVGVzdCB0aW1lL3RpbWVFbmQgbmVz
dGluZyAoQnVnIDEwMDkzNikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS10aW1lLXN0YW1wLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS10aW1lLXN0YW1wLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggM2U3NTc3NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZS1zdGFtcC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1UZXN0cyB0aGUgVGltZWxpbmUgQVBJIHRpbWVTdGFt
cCBmZWF0dXJlCi0KLVRpbWVTdGFtcCBQcm9wZXJ0aWVzOgotewotICAgIGNvdW50ZXJzIDogPG9i
amVjdD4KLSAgICBkYXRhIDogewotICAgICAgICBtZXNzYWdlIDogIlRJTUUgU1RBTVAiCi0gICAg
fQotICAgIGZyYW1lSWQgOiA8c3RyaW5nPgotICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0PgotICAg
IHN0YXJ0VGltZSA6IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJUaW1lU3RhbXAiCi0gICAgdXNlZEhl
YXBTaXplIDogPG51bWJlcj4KLX0KLVRpbWVzdGFtcCByZWNvcmRzOiAKLVRpbWVTdGFtcCBQcm9w
ZXJ0aWVzOgotewotICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLSAgICBkYXRhIDogewotICAgICAg
ICBtZXNzYWdlIDogIlRJTUUgU1RBTVAiCi0gICAgfQotICAgIGZyYW1lSWQgOiA8c3RyaW5nPgot
ICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0PgotICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+Ci0gICAg
dHlwZSA6ICJUaW1lU3RhbXAiCi0gICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KLX0KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWUtc3Rh
bXAuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10aW1lLXN0
YW1wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0NjkyNjBjMC4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZS1zdGFt
cC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBwZXJmb3JtQWN0aW9u
cygpCi17Ci0gICAgY29uc29sZS50aW1lU3RhbXAoIlRJTUUgU1RBTVAiKTsKLX0KLQotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5wZXJmb3JtQWN0aW9uc0FuZFByaW50KCJw
ZXJmb3JtQWN0aW9ucygpIiwgIlRpbWVTdGFtcCIsIHRydWUpOwotfQotCi08L3NjcmlwdD4KLTwv
aGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGUgVGltZWxp
bmUgQVBJIHRpbWVTdGFtcCBmZWF0dXJlCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10aW1lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTRhYzRhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10aW1lLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw4NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci90aW1lbGluZS10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFu
ZWwoInRpbWVsaW5lIik7Ci0KLSAgICB2YXIgZGF0YSA9IFsiVmVyc2lvbiIsCi0gICAgICAgIHsi
c3RhcnRUaW1lIjoxMywiZGF0YSI6e30sImVuZFRpbWUiOjE5LCJ0eXBlIjoiUHJvZ3JhbSIsImNo
aWxkcmVuIjpbCi0gICAgICAgICAgICB7InN0YXJ0VGltZSI6MTQsImRhdGEiOnsidHlwZSI6ImNs
aWNrIn0sImVuZFRpbWUiOjE4LCJ0eXBlIjoiRXZlbnREaXNwYXRjaCIsImZyYW1lSWQiOiIyIiwi
Y2hpbGRyZW4iOlsKLSAgICAgICAgICAgICAgICB7InN0YXJ0VGltZSI6MTUsImRhdGEiOnsic2Ny
aXB0TmFtZSI6ImZvby5odG1sIiwic2NyaXB0TGluZSI6N30sImVuZFRpbWUiOjE3LCJ0eXBlIjoi
RnVuY3Rpb25DYWxsIiwiZnJhbWVJZCI6IjIiLCJjaGlsZHJlbiI6WwotICAgICAgICAgICAgICAg
ICAgICB7InN0YXJ0VGltZSI6MTYsImRhdGEiOnsibWVzc2FnZSI6ImhlbGxvIn0sInR5cGUiOiJU
aW1lIiwiZnJhbWVJZCI6IjIifQotICAgICAgICAgICAgICAgIF19Ci0gICAgICAgICAgICBdfQot
ICAgICAgICBdfSwKLSAgICAgICAgeyJzdGFydFRpbWUiOjI1LCJkYXRhIjp7fSwiZW5kVGltZSI6
MzUsInR5cGUiOiJQcm9ncmFtIiwiY2hpbGRyZW4iOlsKLSAgICAgICAgICAgIHsic3RhcnRUaW1l
IjoyNiwiZGF0YSI6eyJ0eXBlIjoiY2xpY2sifSwiZW5kVGltZSI6MzQsInR5cGUiOiJFdmVudERp
c3BhdGNoIiwiZnJhbWVJZCI6IjIiLCJjaGlsZHJlbiI6WwotICAgICAgICAgICAgICAgIHsic3Rh
cnRUaW1lIjoyNywiZGF0YSI6eyJzY3JpcHROYW1lIjoiZm9vLmh0bWwiLCJzY3JpcHRMaW5lIjox
NX0sImVuZFRpbWUiOjMzLCJ0eXBlIjoiRnVuY3Rpb25DYWxsIiwiZnJhbWVJZCI6IjIiLCJjaGls
ZHJlbiI6WwotICAgICAgICAgICAgICAgICAgICB7InN0YXJ0VGltZSI6MjgsImRhdGEiOnsibWVz
c2FnZSI6ImJvb20ifSwidHlwZSI6IlRpbWUiLCJmcmFtZUlkIjoiMiJ9LAotICAgICAgICAgICAg
ICAgICAgICB7InN0YXJ0VGltZSI6MjksImRhdGEiOnt9LCJ0eXBlIjoiU2NoZWR1bGVTdHlsZVJl
Y2FsY3VsYXRpb24iLCJmcmFtZUlkIjoiMiJ9LAotICAgICAgICAgICAgICAgICAgICB7InN0YXJ0
VGltZSI6MzAsImRhdGEiOnt9LCJjaGlsZHJlbiI6W10sImVuZFRpbWUiOjMxLCJ0eXBlIjoiUmVj
YWxjdWxhdGVTdHlsZXMiLCJmcmFtZUlkIjoiMiJ9LAotICAgICAgICAgICAgICAgICAgICB7InN0
YXJ0VGltZSI6MzIsImRhdGEiOnsibWVzc2FnZSI6ImJvb20ifSwidHlwZSI6IlRpbWVFbmQiLCJm
cmFtZUlkIjoiMiJ9Ci0gICAgICAgICAgICAgICAgXX0KLSAgICAgICAgICAgIF19Ci0gICAgICAg
IF19LAotICAgICAgICB7InN0YXJ0VGltZSI6NDEsImRhdGEiOnt9LCJlbmRUaW1lIjo0NywidHlw
ZSI6IlByb2dyYW0iLCJjaGlsZHJlbiI6WwotICAgICAgICAgICAgeyJzdGFydFRpbWUiOjQyLCJk
YXRhIjp7InR5cGUiOiJjbGljayJ9LCJlbmRUaW1lIjo0NiwidHlwZSI6IkV2ZW50RGlzcGF0Y2gi
LCJmcmFtZUlkIjoiMiIsImNoaWxkcmVuIjpbCi0gICAgICAgICAgICAgICAgeyJzdGFydFRpbWUi
OjQzLCJkYXRhIjp7InNjcmlwdE5hbWUiOiJmb28uaHRtbCIsInNjcmlwdExpbmUiOjExfSwiZW5k
VGltZSI6NDUsInR5cGUiOiJGdW5jdGlvbkNhbGwiLCJmcmFtZUlkIjoiMiIsImNoaWxkcmVuIjpb
Ci0gICAgICAgICAgICAgICAgICAgIHsic3RhcnRUaW1lIjo0NCwiZGF0YSI6eyJtZXNzYWdlIjoi
aGVsbG8ifSwidHlwZSI6IlRpbWVFbmQiLCJmcmFtZUlkIjoiMiJ9Ci0gICAgICAgICAgICAgICAg
XX0KLSAgICAgICAgICAgIF19Ci0gICAgICAgIF19Ci0gICAgXTsKLQotICAgIHZhciBpbnB1dCA9
IEpTT04uc3RyaW5naWZ5KGRhdGEpOwotICAgIHZhciBtb2RlbCA9IFdlYkluc3BlY3Rvci5wYW5l
bHMudGltZWxpbmUuX21vZGVsOwotICAgIHZhciBwcmVzZW50YXRpb25Nb2RlbCA9IFdlYkluc3Bl
Y3Rvci5wYW5lbHMudGltZWxpbmUuX3ByZXNlbnRhdGlvbk1vZGVsOwotICAgIHByZXNlbnRhdGlv
bk1vZGVsLnNldEdsdWVSZWNvcmRzKHRydWUpOwotCi0gICAgZnVuY3Rpb24gY3JlYXRlRmlsZVJl
YWRlcihmaWxlLCBkZWxlZ2F0ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgSW5zcGVjdG9y
VGVzdC5GYWtlRmlsZVJlYWRlcihpbnB1dCwgZGVsZWdhdGUsIG9uRGF0YUxvYWRlZCk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gb25EYXRhTG9hZGVkKCkKLSAgICB7Ci0gICAgICAgIHZhciByb290
ID0gcHJlc2VudGF0aW9uTW9kZWwucm9vdFJlY29yZCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscyg0LCByb290LmNoaWxkcmVuLmxlbmd0aCk7Ci0KLSAgICAgICAgdmFyIHRp
bWUxID0gcm9vdC5jaGlsZHJlblsxXTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHMoIlRpbWUiLCB0aW1lMS50eXBlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHMoMiwgdGltZTEuY2hpbGRyZW4ubGVuZ3RoKTsKLSAgICAgICAgdmFyIHRpbWVFbmQxID0gdGlt
ZTEuY2hpbGRyZW5bMV07Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJUaW1l
RW5kIiwgdGltZUVuZDEudHlwZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KHRpbWUxLCB0aW1lRW5kMS50aW1lUmVjb3JkKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHModGltZUVuZDEsIHRpbWUxLnRpbWVFbmRSZWNvcmQpOwotCi0gICAgICAgIHZhciB0
aW1lMiA9IHRpbWUxLmNoaWxkcmVuWzBdOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscygiVGltZSIsIHRpbWUyLnR5cGUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscygxLCB0aW1lMi5jaGlsZHJlbi5sZW5ndGgpOwotICAgICAgICB2YXIgdGltZUVuZDIgPSB0
aW1lMi5jaGlsZHJlblswXTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoIlRp
bWVFbmQiLCB0aW1lRW5kMi50eXBlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHModGltZTIsIHRpbWVFbmQyLnRpbWVSZWNvcmQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEVxdWFscyh0aW1lRW5kMiwgdGltZTIudGltZUVuZFJlY29yZCk7Ci0KLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0Lm92
ZXJyaWRlKG1vZGVsLCAiX2NyZWF0ZUZpbGVSZWFkZXIiLCBjcmVhdGVGaWxlUmVhZGVyKTsKLSAg
ICBtb2RlbC5sb2FkRnJvbUZpbGUoe30sIG5ldyBXZWJJbnNwZWN0b3IuUHJvZ3Jlc3MoKSk7Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4K
LVRlc3QgdGltZS90aW1lRW5kIG5lc3RpbmcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMDkzNiI+KEJ1ZyAxMDA5MzYpPC9hPgotPC9wPgotCi08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtdGltZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLXRpbWVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYzVkYTNlMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtdGltZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUyICsw
LDAgQEAKLVRlc3RzIHRoZSBUaW1lbGluZSBldmVudHMgZm9yIFRpbWVycwotCi1UaW1lckluc3Rh
bGwgUHJvcGVydGllczoKLXsKLSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6IHsK
LSAgICAgICAgc2luZ2xlU2hvdCA6IHRydWUKLSAgICAgICAgdGltZW91dCA6IDEwCi0gICAgICAg
IHRpbWVySWQgOiA8bnVtYmVyPgotICAgIH0KLSAgICBmcmFtZUlkIDogPHN0cmluZz4KLSAgICBz
dGFja1RyYWNlIDogPG9iamVjdD4KLSAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgotICAgIHR5cGUg
OiAiVGltZXJJbnN0YWxsIgotICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+Ci19Ci1UaW1lcklu
c3RhbGwgUHJvcGVydGllczoKLXsKLSAgICBjb3VudGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6
IHsKLSAgICAgICAgc2luZ2xlU2hvdCA6IGZhbHNlCi0gICAgICAgIHRpbWVvdXQgOiAyMAotICAg
ICAgICB0aW1lcklkIDogPG51bWJlcj4KLSAgICB9Ci0gICAgZnJhbWVJZCA6IDxzdHJpbmc+Ci0g
ICAgc3RhY2tUcmFjZSA6IDxvYmplY3Q+Ci0gICAgc3RhcnRUaW1lIDogPG51bWJlcj4KLSAgICB0
eXBlIDogIlRpbWVySW5zdGFsbCIKLSAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotVGlt
ZXJGaXJlIFByb3BlcnRpZXM6Ci17Ci0gICAgY2hpbGRyZW4gOiA8b2JqZWN0PgotICAgIGNvdW50
ZXJzIDogPG9iamVjdD4KLSAgICBkYXRhIDogewotICAgICAgICB0aW1lcklkIDogPG51bWJlcj4K
LSAgICB9Ci0gICAgZW5kVGltZSA6IDxudW1iZXI+Ci0gICAgZnJhbWVJZCA6IDxzdHJpbmc+Ci0g
ICAgc3RhcnRUaW1lIDogPG51bWJlcj4KLSAgICB0eXBlIDogIlRpbWVyRmlyZSIKLSAgICB1c2Vk
SGVhcFNpemUgOiA8bnVtYmVyPgotfQotVGltZXJGaXJlIFByb3BlcnRpZXM6Ci17Ci0gICAgY2hp
bGRyZW4gOiA8b2JqZWN0PgotICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLSAgICBkYXRhIDogewot
ICAgICAgICB0aW1lcklkIDogPG51bWJlcj4KLSAgICB9Ci0gICAgZW5kVGltZSA6IDxudW1iZXI+
Ci0gICAgZnJhbWVJZCA6IDxzdHJpbmc+Ci0gICAgc3RhcnRUaW1lIDogPG51bWJlcj4KLSAgICB0
eXBlIDogIlRpbWVyRmlyZSIKLSAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotVGltZXJG
aXJlIFByb3BlcnRpZXM6Ci17Ci0gICAgY2hpbGRyZW4gOiA8b2JqZWN0PgotICAgIGNvdW50ZXJz
IDogPG9iamVjdD4KLSAgICBkYXRhIDogewotICAgICAgICB0aW1lcklkIDogPG51bWJlcj4KLSAg
ICB9Ci0gICAgZW5kVGltZSA6IDxudW1iZXI+Ci0gICAgZnJhbWVJZCA6IDxzdHJpbmc+Ci0gICAg
c3RhcnRUaW1lIDogPG51bWJlcj4KLSAgICB0eXBlIDogIlRpbWVyRmlyZSIKLSAgICB1c2VkSGVh
cFNpemUgOiA8bnVtYmVyPgotfQotVGltZXJSZW1vdmUgUHJvcGVydGllczoKLXsKLSAgICBjb3Vu
dGVycyA6IDxvYmplY3Q+Ci0gICAgZGF0YSA6IHsKLSAgICAgICAgdGltZXJJZCA6IDxudW1iZXI+
Ci0gICAgfQotICAgIGZyYW1lSWQgOiA8c3RyaW5nPgotICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0
PgotICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJUaW1lclJlbW92ZSIKLSAg
ICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgotfQotRnVuY3Rpb25DYWxsIFByb3BlcnRpZXM6Ci17
Ci0gICAgY2hpbGRyZW4gOiA8b2JqZWN0PgotICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLSAgICBk
YXRhIDogewotICAgICAgICBzY3JpcHRMaW5lIDogPG51bWJlcj4KLSAgICAgICAgc2NyaXB0TmFt
ZSA6IDxzdHJpbmc+Ci0gICAgfQotICAgIGVuZFRpbWUgOiA8bnVtYmVyPgotICAgIGZyYW1lSWQg
OiA8c3RyaW5nPgotICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJGdW5jdGlv
bkNhbGwiCi0gICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KLX0KLUZ1bmN0aW9uQ2FsbCBQcm9w
ZXJ0aWVzOgotewotICAgIGNoaWxkcmVuIDogPG9iamVjdD4KLSAgICBjb3VudGVycyA6IDxvYmpl
Y3Q+Ci0gICAgZGF0YSA6IHsKLSAgICAgICAgc2NyaXB0TGluZSA6IDxudW1iZXI+Ci0gICAgICAg
IHNjcmlwdE5hbWUgOiA8c3RyaW5nPgotICAgIH0KLSAgICBlbmRUaW1lIDogPG51bWJlcj4KLSAg
ICBmcmFtZUlkIDogPHN0cmluZz4KLSAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgotICAgIHR5cGUg
OiAiRnVuY3Rpb25DYWxsIgotICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+Ci19Ci1GdW5jdGlv
bkNhbGwgUHJvcGVydGllczoKLXsKLSAgICBjaGlsZHJlbiA6IDxvYmplY3Q+Ci0gICAgY291bnRl
cnMgOiA8b2JqZWN0PgotICAgIGRhdGEgOiB7Ci0gICAgICAgIHNjcmlwdExpbmUgOiA8bnVtYmVy
PgotICAgICAgICBzY3JpcHROYW1lIDogPHN0cmluZz4KLSAgICB9Ci0gICAgZW5kVGltZSA6IDxu
dW1iZXI+Ci0gICAgZnJhbWVJZCA6IDxzdHJpbmc+Ci0gICAgc3RhcnRUaW1lIDogPG51bWJlcj4K
LSAgICB0eXBlIDogIkZ1bmN0aW9uQ2FsbCIKLSAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgot
fQotRnVuY3Rpb25DYWxsIFByb3BlcnRpZXM6Ci17Ci0gICAgY2hpbGRyZW4gOiA8b2JqZWN0Pgot
ICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLSAgICBkYXRhIDogewotICAgICAgICBzY3JpcHRMaW5l
IDogPG51bWJlcj4KLSAgICAgICAgc2NyaXB0TmFtZSA6IDxzdHJpbmc+Ci0gICAgfQotICAgIGVu
ZFRpbWUgOiA8bnVtYmVyPgotICAgIGZyYW1lSWQgOiA8c3RyaW5nPgotICAgIHN0YXJ0VGltZSA6
IDxudW1iZXI+Ci0gICAgdHlwZSA6ICJGdW5jdGlvbkNhbGwiCi0gICAgdXNlZEhlYXBTaXplIDog
PG51bWJlcj4KLX0KLUV2YWx1YXRlU2NyaXB0IFByb3BlcnRpZXM6Ci17Ci0gICAgY2hpbGRyZW4g
OiA8b2JqZWN0PgotICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLSAgICBkYXRhIDogewotICAgICAg
ICBsaW5lTnVtYmVyIDogPG51bWJlcj4KLSAgICAgICAgdXJsIDogPHN0cmluZz4KLSAgICB9Ci0g
ICAgZW5kVGltZSA6IDxudW1iZXI+Ci0gICAgZnJhbWVJZCA6IDxzdHJpbmc+Ci0gICAgc3RhcnRU
aW1lIDogPG51bWJlcj4KLSAgICB0eXBlIDogIkV2YWx1YXRlU2NyaXB0IgotICAgIHVzZWRIZWFw
U2l6ZSA6IDxudW1iZXI+Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS10aW1lci1maXJlZC1mcm9tLWV2YWwtY2FsbC1zaXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10aW1lci1maXJl
ZC1mcm9tLWV2YWwtY2FsbC1zaXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZTFhOWM3ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtdGltZXItZmlyZWQtZnJvbS1ldmFsLWNhbGwtc2l0ZS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIHRoZSBUaW1lbGluZSBBUEkg
aW5zdHJ1bWVudGF0aW9uIG9mIGEgVGltZXJGaXJlZCBldmVudHMgaW5zaWRlIGV2YWx1YXRlZCBz
Y3JpcHRzLgotCi1UaW1lckZpcmUgOjIKLVRpbWVyRmlyZSA6MQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZXItZmlyZWQtZnJvbS1ldmFs
LWNhbGwtc2l0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LXRpbWVyLWZpcmVkLWZyb20tZXZhbC1jYWxsLXNpdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYzlmZWU4Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUvdGltZWxpbmUtdGltZXItZmlyZWQtZnJvbS1ldmFsLWNhbGwtc2l0ZS5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBwZXJmb3JtQWN0aW9ucygpCi17Ci0g
ICAgdmFyIGNvbnRlbnQgPSAiIiArIAotICAgICAgICAidmFyIGZuMiA9IGZ1bmN0aW9uKCkge2Nv
bnNvbGUudGltZVN0YW1wKFwiU2NyaXB0IGV2YWx1YXRlZFwiKTt9O1xcbiIgKwotICAgICAgICAi
dmFyIGZuMSA9IGZ1bmN0aW9uKCkge3dpbmRvdy5zZXRUaW1lb3V0KGZuMiwgMSk7fTtcXG4iICsK
LSAgICAgICAgIndpbmRvdy5zZXRUaW1lb3V0KGZuMSwgMSk7XFxuIgotICAgIGNvbnRlbnQgPSAi
ZXZhbCgnIiArIGNvbnRlbnQgKyAiLy9AIHNvdXJjZVVSTD1mcm9tRXZhbC5qcyIgKyAiJyk7IjsK
LSAgICB2YXIgc2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcp
OwotICAgIHZhciBjb250ZW50Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbnRlbnQp
OwotICAgIHNjcmlwdEVsZW1lbnQuYXBwZW5kQ2hpbGQoY29udGVudE5vZGUpOwotICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0RWxlbWVudCk7Ci0gICAgZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChzY3JpcHRFbGVtZW50KTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
SW5zcGVjdG9yVGVzdC5zdGFydFRpbWVsaW5lKHN0YXJ0KTsKLSAgICBJbnNwZWN0b3JUZXN0Lndh
aXRGb3JSZWNvcmRUeXBlKCJUaW1lU3RhbXAiLCBmaW5pc2gpOwotCi0gICAgZnVuY3Rpb24gc3Rh
cnQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicGVyZm9y
bUFjdGlvbnMoKSIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZpbmlzaCgpCi0gICAgewotICAg
ICAgICBmdW5jdGlvbiBmb3JtYXR0ZXIocmVjb3JkKQotICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAocmVjb3JkLnR5cGUgPT09ICJUaW1lckZpcmUiKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGZu
Q2FsbFNpdGUgPSByZWNvcmQuY2hpbGRyZW5bMF0uZGF0YTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdChyZWNvcmQudHlwZSArICIgIiArIGZuQ2FsbFNpdGUuc2NyaXB0
TmFtZSArICI6IiArIGZuQ2FsbFNpdGUuc2NyaXB0TGluZSk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5wcmludFRpbWVsaW5lUmVjb3JkcyhudWxsLCBm
b3JtYXR0ZXIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0K
LX0KLQotaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKLSAgICBzZXRUaW1lb3V0KHBlcmZvcm1BY3Rp
b25zLCAzMDAwKTsKLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLTxwPgotVGVzdHMgdGhlIFRpbWVsaW5lIEFQSSBpbnN0cnVtZW50YXRpb24gb2YgYSBU
aW1lckZpcmVkIGV2ZW50cyBpbnNpZGUgZXZhbHVhdGVkIHNjcmlwdHMuCi08L3A+Ci0KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS10aW1lci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLXRpbWVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxYWU2ZmMuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWVy
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHBlcmZvcm1BY3Rpb25z
KCkKLXsKLSAgICB2YXIgdGltZXJPbmUgPSBzZXRUaW1lb3V0KCIxICsgMSIsIDEwKTsKLSAgICB2
YXIgdGltZXJUd28gPSBzZXRJbnRlcnZhbChpbnRlcnZhbFRpbWVyV29yaywgMjApOwotICAgIHZh
ciBpdGVyYXRpb24gPSAwOwotCi0gICAgZnVuY3Rpb24gaW50ZXJ2YWxUaW1lcldvcmsoKQotICAg
IHsKLSAgICAgICAgaWYgKCsraXRlcmF0aW9uIDwgMikKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgY2xlYXJJbnRlcnZhbCh0aW1lclR3byk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0VGltZWxpbmUoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInBlcmZvcm1BY3Rpb25zKCkiKTsKLSAg
ICB9KTsKLQotICAgIEluc3BlY3RvclRlc3Qud2FpdEZvclJlY29yZFR5cGUoIlRpbWVyUmVtb3Zl
IiwgZmluaXNoKTsKLQotICAgIGZ1bmN0aW9uIGZpbmlzaCgpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnByaW50VGltZWxpbmVSZWNvcmRzKCJUaW1lckluc3RhbGwiKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5wcmludFRpbWVsaW5lUmVjb3JkcygiVGltZXJGaXJlIik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QucHJpbnRUaW1lbGluZVJlY29yZHMoIlRpbWVyUmVtb3ZlIik7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QucHJpbnRUaW1lbGluZVJlY29yZHMoIkZ1bmN0aW9uQ2FsbCIpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LnByaW50VGltZWxpbmVSZWNvcmRzKCJFdmFsdWF0ZVNjcmlw
dCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQot
aWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKLSAgICBzZXRUaW1lb3V0KHBlcmZvcm1BY3Rpb25zLCAy
MDAwKTsKLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
LTxwPgotVGVzdHMgdGhlIFRpbWVsaW5lIGV2ZW50cyBmb3IgVGltZXJzCi08L3A+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtdHJpdmlhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtdHJpdmlhbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDQ0M2Y3ZGIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLXRyaXZpYWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCAr
MCwwIEBACi1Ucml2aWFsIHVzZSBvZiBpbnNwZWN0b3IgZnJvbnRlbmQgdGVzdHMKLQotVGltZWxp
bmUgc3RhcnRlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtdHJpdmlhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLXRyaXZpYWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTBmZDZj
Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
dHJpdmlhbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkg
ewotICAgIC8qIFRoaXMgdGVzdCBzZWVtcyBzaWxseSwgYnV0IG9yaWdpbmFsbHkgaXQgdGlja2xl
ZCBidWcgMzEwODAgKi8KLSAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGltZWxpbmUgc3RhcnRlZCIpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0
VGltZWxpbmUoY2FsbGJhY2spOwotfQotCi0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4gCi1Ucml2aWFsIHVzZSBvZiBpbnNwZWN0b3IgZnJvbnRl
bmQgdGVzdHMKLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Vpc291cmNlY29kZS1yZXZpc2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Vpc291cmNlY29kZS1yZXZpc2lvbnMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NTAyNDFmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci91aXNvdXJjZWNvZGUtcmV2aXNpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDc5ICswLDAgQEAKLVRlc3RzIHJldmlzaW9uIHN1cHBvcnQgaW4gVUlTb3Vy
Y2VDb2RlLgotCi1CdWcgOTc2NjkKLQotUnVubmluZzogdGVzdEFkZFJldmlzaW9uc1JldmVydFRv
T3JpZ2luYWwKLUZpcnN0IHJldmlzaW9uIGFkZGVkLgotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IGNv
bnRlbnQyCi0gICAgcmV2aXNpb25zOiAnY29udGVudDInCi1TZWNvbmQgcmV2aXNpb24gYWRkZWQu
Ci1VSVNvdXJjZUNvZGUgY29udGVudDogY29udGVudDQKLSAgICByZXZpc2lvbnM6ICdjb250ZW50
MicsICdjb250ZW50NCcKLVJldmVydGVkIHRvIG9yaWdpbmFsLgotVUlTb3VyY2VDb2RlIGNvbnRl
bnQ6IDxzY3JpcHQgY29udGVudD4KLSAgICByZXZpc2lvbnM6ICdjb250ZW50MicsICdjb250ZW50
NCcsICc8c2NyaXB0IGNvbnRlbnQ+JwotCi1SdW5uaW5nOiB0ZXN0QWRkUmV2aXNpb25zUmV2ZXJ0
QW5kQ2xlYXJIaXN0b3J5Ci1GaXJzdCByZXZpc2lvbiBhZGRlZC4KLVVJU291cmNlQ29kZSBjb250
ZW50OiBjb250ZW50MgotICAgIHJldmlzaW9uczogJ2NvbnRlbnQyJwotU2Vjb25kIHJldmlzaW9u
IGFkZGVkLgotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IGNvbnRlbnQ0Ci0gICAgcmV2aXNpb25zOiAn
Y29udGVudDInLCAnY29udGVudDQnCi1SZXZlcnRlZCBhbmQgY2xlYXJlZCBoaXN0b3J5LgotVUlT
b3VyY2VDb2RlIGNvbnRlbnQ6IDxzY3JpcHQgY29udGVudD4KLSAgICByZXZpc2lvbnM6IAotCi1S
dW5uaW5nOiB0ZXN0QWRkUmV2aXNpb25zUmV2ZXJ0VG9QcmV2aW91cwotRmlyc3QgcmV2aXNpb24g
YWRkZWQuCi1VSVNvdXJjZUNvZGUgY29udGVudDogY29udGVudDIKLSAgICByZXZpc2lvbnM6ICdj
b250ZW50MicKLVNlY29uZCByZXZpc2lvbiBhZGRlZC4KLVVJU291cmNlQ29kZSBjb250ZW50OiBj
b250ZW50NAotICAgIHJldmlzaW9uczogJ2NvbnRlbnQyJywgJ2NvbnRlbnQ0JwotUmV2ZXJ0ZWQg
dG8gcHJldmlvdXMgcmV2aXNpb24uCi1VSVNvdXJjZUNvZGUgY29udGVudDogY29udGVudDIKLSAg
ICByZXZpc2lvbnM6ICdjb250ZW50MicsICdjb250ZW50NCcsICdjb250ZW50MicKLQotUnVubmlu
ZzogdGVzdFJlcXVlc3RDb250ZW50QWRkUmV2aXNpb25zUmV2ZXJ0VG9PcmlnaW5hbAotQ29udGVu
dCByZXF1ZXN0ZWQuCi1VSVNvdXJjZUNvZGUgY29udGVudDogPHNjcmlwdCBjb250ZW50PgotICAg
IHJldmlzaW9uczogCi1GaXJzdCByZXZpc2lvbiBhZGRlZC4KLVVJU291cmNlQ29kZSBjb250ZW50
OiBjb250ZW50MgotICAgIHJldmlzaW9uczogJ2NvbnRlbnQyJwotU2Vjb25kIHJldmlzaW9uIGFk
ZGVkLgotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IGNvbnRlbnQ0Ci0gICAgcmV2aXNpb25zOiAnY29u
dGVudDInLCAnY29udGVudDQnCi1SZXZlcnRlZCB0byBvcmlnaW5hbC4KLVVJU291cmNlQ29kZSBj
b250ZW50OiA8c2NyaXB0IGNvbnRlbnQ+Ci0gICAgcmV2aXNpb25zOiAnY29udGVudDInLCAnY29u
dGVudDQnLCAnPHNjcmlwdCBjb250ZW50PicKLQotUnVubmluZzogdGVzdFJlcXVlc3RDb250ZW50
QWRkUmV2aXNpb25zUmV2ZXJ0QW5kQ2xlYXJIaXN0b3J5Ci1Db250ZW50IHJlcXVlc3RlZC4KLVVJ
U291cmNlQ29kZSBjb250ZW50OiA8c2NyaXB0IGNvbnRlbnQ+Ci0gICAgcmV2aXNpb25zOiAKLUZp
cnN0IHJldmlzaW9uIGFkZGVkLgotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IGNvbnRlbnQyCi0gICAg
cmV2aXNpb25zOiAnY29udGVudDInCi1TZWNvbmQgcmV2aXNpb24gYWRkZWQuCi1VSVNvdXJjZUNv
ZGUgY29udGVudDogY29udGVudDQKLSAgICByZXZpc2lvbnM6ICdjb250ZW50MicsICdjb250ZW50
NCcKLVJldmVydGVkIGFuZCBjbGVhcmVkIGhpc3RvcnkuCi1VSVNvdXJjZUNvZGUgY29udGVudDog
PHNjcmlwdCBjb250ZW50PgotICAgIHJldmlzaW9uczogCi0KLVJ1bm5pbmc6IHRlc3RSZXF1ZXN0
Q29udGVudEFkZFJldmlzaW9uc1JldmVydFRvUHJldmlvdXMKLUNvbnRlbnQgcmVxdWVzdGVkLgot
VUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxzY3JpcHQgY29udGVudD4KLSAgICByZXZpc2lvbnM6IAot
Rmlyc3QgcmV2aXNpb24gYWRkZWQuCi1VSVNvdXJjZUNvZGUgY29udGVudDogY29udGVudDIKLSAg
ICByZXZpc2lvbnM6ICdjb250ZW50MicKLVNlY29uZCByZXZpc2lvbiBhZGRlZC4KLVVJU291cmNl
Q29kZSBjb250ZW50OiBjb250ZW50NAotICAgIHJldmlzaW9uczogJ2NvbnRlbnQyJywgJ2NvbnRl
bnQ0JwotUmV2ZXJ0ZWQgdG8gcHJldmlvdXMgcmV2aXNpb24uCi1VSVNvdXJjZUNvZGUgY29udGVu
dDogY29udGVudDIKLSAgICByZXZpc2lvbnM6ICdjb250ZW50MicsICdjb250ZW50NCcsICdjb250
ZW50MicKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vpc291cmNlY29kZS1y
ZXZpc2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91aXNvdXJjZWNvZGUtcmV2aXNp
b25zLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3Y2FkYzYuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vpc291cmNlY29kZS1yZXZpc2lvbnMuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDIwNCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVs
KCJzY3JpcHRzIik7Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVNb2NrUHJvamVjdCgpCi0gICAgewot
ICAgICAgICB2YXIgd29ya3NwYWNlID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UoKTsKLSAg
ICAgICAgdmFyIHByb2plY3REZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuU2ltcGxlUHJvamVj
dERlbGVnYXRlKCIiLCBXZWJJbnNwZWN0b3IucHJvamVjdFR5cGVzLk5ldHdvcmspOwotICAgICAg
ICB2YXIgcHJvamVjdCA9IHdvcmtzcGFjZS5hZGRQcm9qZWN0KHByb2plY3REZWxlZ2F0ZSk7Ci0g
ICAgICAgIHByb2plY3QucmVxdWVzdEZpbGVDb250ZW50ID0gZnVuY3Rpb24odXJpLCBjYWxsYmFj
aykKLSAgICAgICAgewotICAgICAgICAgICAgY2FsbGJhY2soIjxzY3JpcHQgY29udGVudD4iLCBm
YWxzZSwgInRleHQvamF2YXNjcmlwdCIpOwotICAgICAgICB9Ci0gICAgICAgIHByb2plY3Quc2V0
RmlsZUNvbnRlbnQgPSBmdW5jdGlvbih1cmksIG5ld0NvbnRlbnQsIGNhbGxiYWNrKQotICAgICAg
ICB7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcHJvamVjdDsKLSAgICB9Ci0gCi0gICAg
ZnVuY3Rpb24gZHVtcFVJU291cmNlQ29kZVdpdGhSZXZpc2lvbnModWlTb3VyY2VDb2RlKQotICAg
IHsKLSAgICAgICAgdmFyIGNvbnRlbnQgPSB1aVNvdXJjZUNvZGUuX2NvbnRlbnQ7Ci0gICAgICAg
IHZhciByZXZpc2lvbnNTdHJpbmcgPSAiIjsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1
aVNvdXJjZUNvZGUuaGlzdG9yeS5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHJldmlz
aW9uID0gdWlTb3VyY2VDb2RlLmhpc3RvcnlbaV07Ci0gICAgICAgICAgICBpZiAoaSAhPT0gMCkK
LSAgICAgICAgICAgICAgICByZXZpc2lvbnNTdHJpbmcgKz0gIiwgIjsKLSAgICAgICAgICAgIHJl
dmlzaW9uc1N0cmluZyArPSAiJyIgKyByZXZpc2lvbi5jb250ZW50ICsgIiciOwotICAgICAgICB9
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSVNvdXJjZUNvZGUgY29udGVudDog
IiArIGNvbnRlbnQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHJldmlz
aW9uczogIiArIHJldmlzaW9uc1N0cmluZyk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5y
dW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0QWRkUmV2aXNpb25zUmV2ZXJ0VG9P
cmlnaW5hbChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0g
bmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoY3JlYXRlTW9ja1Byb2plY3QoKSwgInVyaSIs
ICJvcmlnaW5VUkwiLCAidXJsIiwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0KTsK
LSAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDEiKTsKLSAg
ICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDIiKTsKLSAgICAg
ICAgICAgIHVpU291cmNlQ29kZS5jb21taXRXb3JraW5nQ29weShmdW5jdGlvbigpIHsgfSk7Ci0K
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGaXJzdCByZXZpc2lvbiBhZGRl
ZC4iKTsKLSAgICAgICAgICAgIGR1bXBVSVNvdXJjZUNvZGVXaXRoUmV2aXNpb25zKHVpU291cmNl
Q29kZSk7Ci0gICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQz
Iik7Ci0gICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQ0Iik7
Ci0gICAgICAgICAgICB1aVNvdXJjZUNvZGUuY29tbWl0V29ya2luZ0NvcHkoZnVuY3Rpb24oKSB7
IH0pOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2Vjb25kIHJldmlz
aW9uIGFkZGVkLiIpOwotICAgICAgICAgICAgZHVtcFVJU291cmNlQ29kZVdpdGhSZXZpc2lvbnMo
dWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXZlcnRUb09yaWdpbmFs
KCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmV2ZXJ0ZWQgdG8gb3Jp
Z2luYWwuIik7Ci0gICAgICAgICAgICBkdW1wVUlTb3VyY2VDb2RlV2l0aFJldmlzaW9ucyh1aVNv
dXJjZUNvZGUpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1
bmN0aW9uIHRlc3RBZGRSZXZpc2lvbnNSZXZlcnRBbmRDbGVhckhpc3RvcnkobmV4dCkKLSAgICAg
ICAgewotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlKGNyZWF0ZU1vY2tQcm9qZWN0KCksICJ1cmkyIiwgIm9yaWdpblVSTDIiLCAidXJs
MiIsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCk7Ci0KLSAgICAgICAgICAgIHVp
U291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDEiKTsKLSAgICAgICAgICAgIHVpU291
cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDIiKTsKLSAgICAgICAgICAgIHVpU291cmNl
Q29kZS5jb21taXRXb3JraW5nQ29weShmdW5jdGlvbigpIHsgfSk7Ci0KLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGaXJzdCByZXZpc2lvbiBhZGRlZC4iKTsKLSAgICAgICAg
ICAgIGR1bXBVSVNvdXJjZUNvZGVXaXRoUmV2aXNpb25zKHVpU291cmNlQ29kZSk7Ci0gICAgICAg
ICAgICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQzIik7Ci0gICAgICAgICAg
ICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQ0Iik7Ci0gICAgICAgICAgICB1
aVNvdXJjZUNvZGUuY29tbWl0V29ya2luZ0NvcHkoZnVuY3Rpb24oKSB7IH0pOwotCi0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2Vjb25kIHJldmlzaW9uIGFkZGVkLiIpOwot
ICAgICAgICAgICAgZHVtcFVJU291cmNlQ29kZVdpdGhSZXZpc2lvbnModWlTb3VyY2VDb2RlKTsK
LSAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXZlcnRBbmRDbGVhckhpc3RvcnkocmV2ZXJ0ZWRB
bmRDbGVhcmVkSGlzdG9yeSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHJldmVydGVkQW5kQ2xl
YXJlZEhpc3RvcnkoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJSZXZlcnRlZCBhbmQgY2xlYXJlZCBoaXN0b3J5LiIpOwotICAgICAgICAg
ICAgICAgIGR1bXBVSVNvdXJjZUNvZGVXaXRoUmV2aXNpb25zKHVpU291cmNlQ29kZSk7Ci0gICAg
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RBZGRSZXZpc2lvbnNSZXZlcnRUb1ByZXZpb3VzKG5leHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZShjcmVhdGVNb2NrUHJvamVjdCgpLCAidXJpMyIsICJvcmlnaW5VUkwzIiwgInVybDMi
LCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQpOwotCi0gICAgICAgICAgICB1aVNv
dXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQxIik7Ci0gICAgICAgICAgICB1aVNvdXJj
ZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQyIik7Ci0gICAgICAgICAgICB1aVNvdXJjZUNv
ZGUuY29tbWl0V29ya2luZ0NvcHkoZnVuY3Rpb24oKSB7IH0pOwotCi0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiRmlyc3QgcmV2aXNpb24gYWRkZWQuIik7Ci0gICAgICAgICAg
ICBkdW1wVUlTb3VyY2VDb2RlV2l0aFJldmlzaW9ucyh1aVNvdXJjZUNvZGUpOwotICAgICAgICAg
ICAgdWlTb3VyY2VDb2RlLnNldFdvcmtpbmdDb3B5KCJjb250ZW50MyIpOwotICAgICAgICAgICAg
dWlTb3VyY2VDb2RlLnNldFdvcmtpbmdDb3B5KCJjb250ZW50NCIpOwotICAgICAgICAgICAgdWlT
b3VyY2VDb2RlLmNvbW1pdFdvcmtpbmdDb3B5KGZ1bmN0aW9uKCkgeyB9KTsKLQotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNlY29uZCByZXZpc2lvbiBhZGRlZC4iKTsKLSAg
ICAgICAgICAgIGR1bXBVSVNvdXJjZUNvZGVXaXRoUmV2aXNpb25zKHVpU291cmNlQ29kZSk7Ci0g
ICAgICAgICAgICB1aVNvdXJjZUNvZGUuaGlzdG9yeVswXS5yZXZlcnRUb1RoaXMoKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXZlcnRlZCB0byBwcmV2aW91cyByZXZp
c2lvbi4iKTsKLSAgICAgICAgICAgIGR1bXBVSVNvdXJjZUNvZGVXaXRoUmV2aXNpb25zKHVpU291
cmNlQ29kZSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdFJlcXVlc3RDb250ZW50QWRkUmV2aXNpb25zUmV2ZXJ0VG9PcmlnaW5hbChuZXh0
KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGUoY3JlYXRlTW9ja1Byb2plY3QoKSwgInVyaTQiLCAib3JpZ2luVVJM
NCIsICJ1cmw0IiwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0KTsKLSAgICAgICAg
ICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChjb250ZW50UmVjZWl2ZWQpOwotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBjb250ZW50UmVjZWl2ZWQoKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDb250ZW50IHJlcXVlc3RlZC4iKTsK
LSAgICAgICAgICAgICAgICBkdW1wVUlTb3VyY2VDb2RlV2l0aFJldmlzaW9ucyh1aVNvdXJjZUNv
ZGUpOwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVu
dDEiKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRl
bnQyIik7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLmNvbW1pdFdvcmtpbmdDb3B5KGZ1
bmN0aW9uKCkgeyB9KTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJGaXJzdCByZXZpc2lvbiBhZGRlZC4iKTsKLSAgICAgICAgICAgICAgICBkdW1wVUlTb3VyY2VD
b2RlV2l0aFJldmlzaW9ucyh1aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgICAgIHVpU291cmNl
Q29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDMiKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJj
ZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQ0Iik7Ci0gICAgICAgICAgICAgICAgdWlTb3Vy
Y2VDb2RlLmNvbW1pdFdvcmtpbmdDb3B5KGZ1bmN0aW9uKCkgeyB9KTsKLQotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZWNvbmQgcmV2aXNpb24gYWRkZWQuIik7Ci0g
ICAgICAgICAgICAgICAgZHVtcFVJU291cmNlQ29kZVdpdGhSZXZpc2lvbnModWlTb3VyY2VDb2Rl
KTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmV2ZXJ0VG9PcmlnaW5hbCgpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXZlcnRlZCB0byBvcmlnaW5h
bC4iKTsKLSAgICAgICAgICAgICAgICBkdW1wVUlTb3VyY2VDb2RlV2l0aFJldmlzaW9ucyh1aVNv
dXJjZUNvZGUpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0UmVxdWVzdENvbnRlbnRBZGRSZXZpc2lvbnNS
ZXZlcnRBbmRDbGVhckhpc3RvcnkobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHVp
U291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKGNyZWF0ZU1vY2tQcm9q
ZWN0KCksICJ1cmk1IiwgIm9yaWdpblVSTDUiLCAidXJsNSIsIFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVR5cGVzLlNjcmlwdCk7Ci0gICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQo
Y29udGVudFJlY2VpdmVkKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gY29udGVudFJlY2VpdmVk
KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiQ29udGVudCByZXF1ZXN0ZWQuIik7Ci0gICAgICAgICAgICAgICAgZHVtcFVJU291cmNlQ29k
ZVdpdGhSZXZpc2lvbnModWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNv
ZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQxIik7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VD
b2RlLnNldFdvcmtpbmdDb3B5KCJjb250ZW50MiIpOwotICAgICAgICAgICAgICAgIHVpU291cmNl
Q29kZS5jb21taXRXb3JraW5nQ29weShmdW5jdGlvbigpIHsgfSk7Ci0KLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRmlyc3QgcmV2aXNpb24gYWRkZWQuIik7Ci0gICAg
ICAgICAgICAgICAgZHVtcFVJU291cmNlQ29kZVdpdGhSZXZpc2lvbnModWlTb3VyY2VDb2RlKTsK
LSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQzIik7
Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFdvcmtpbmdDb3B5KCJjb250ZW50NCIp
OwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5jb21taXRXb3JraW5nQ29weShmdW5jdGlv
bigpIHsgfSk7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2Vj
b25kIHJldmlzaW9uIGFkZGVkLiIpOwotICAgICAgICAgICAgICAgIGR1bXBVSVNvdXJjZUNvZGVX
aXRoUmV2aXNpb25zKHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2Rl
LnJldmVydEFuZENsZWFySGlzdG9yeShyZXZlcnRlZEFuZENsZWFyZWRIaXN0b3J5KTsKLQotICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIHJldmVydGVkQW5kQ2xlYXJlZEhpc3RvcnkoKQotICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlJldmVydGVkIGFuZCBjbGVhcmVkIGhpc3RvcnkuIik7Ci0gICAgICAgICAgICAgICAgICAgIGR1
bXBVSVNvdXJjZUNvZGVXaXRoUmV2aXNpb25zKHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFJlcXVlc3RDb250ZW50QWRkUmV2aXNpb25zUmV2
ZXJ0VG9QcmV2aW91cyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoY3JlYXRlTW9ja1Byb2plY3QoKSwg
InVyaTYiLCAib3JpZ2luVVJMNiIsICJ1cmw2IiwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMu
U2NyaXB0KTsKLSAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChjb250ZW50
UmVjZWl2ZWQpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBjb250ZW50UmVjZWl2ZWQoKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDb250
ZW50IHJlcXVlc3RlZC4iKTsKLSAgICAgICAgICAgICAgICBkdW1wVUlTb3VyY2VDb2RlV2l0aFJl
dmlzaW9ucyh1aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRX
b3JraW5nQ29weSgiY29udGVudDEiKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0
V29ya2luZ0NvcHkoImNvbnRlbnQyIik7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLmNv
bW1pdFdvcmtpbmdDb3B5KGZ1bmN0aW9uKCkgeyB9KTsKLQotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJGaXJzdCByZXZpc2lvbiBhZGRlZC4iKTsKLSAgICAgICAgICAg
ICAgICBkdW1wVUlTb3VyY2VDb2RlV2l0aFJldmlzaW9ucyh1aVNvdXJjZUNvZGUpOwotICAgICAg
ICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDMiKTsKLSAgICAg
ICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQ0Iik7Ci0gICAg
ICAgICAgICAgICAgdWlTb3VyY2VDb2RlLmNvbW1pdFdvcmtpbmdDb3B5KGZ1bmN0aW9uKCkgeyB9
KTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZWNvbmQgcmV2
aXNpb24gYWRkZWQuIik7Ci0gICAgICAgICAgICAgICAgZHVtcFVJU291cmNlQ29kZVdpdGhSZXZp
c2lvbnModWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuaGlzdG9y
eVswXS5yZXZlcnRUb1RoaXMoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiUmV2ZXJ0ZWQgdG8gcHJldmlvdXMgcmV2aXNpb24uIik7Ci0gICAgICAgICAgICAgICAg
ZHVtcFVJU291cmNlQ29kZVdpdGhSZXZpc2lvbnModWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAg
ICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0gICAgXSk7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHJldmlz
aW9uIHN1cHBvcnQgaW4gVUlTb3VyY2VDb2RlLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY2OSI+QnVnIDk3NjY5PC9hPgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VzZXItbWV0cmljcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdXNlci1tZXRyaWNzLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRlZDkwZC4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdXNlci1tZXRyaWNzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLVRlc3RzIGxpc3Qgb2YgdXNlciBtZXRyaWNzIGNvZGVz
IGFuZCBpbnZvY2F0aW9ucy4KLQotcmVjb3JkQWN0aW9uVGFrZW46Ci17Ci0gICAgQXVkaXRzU3Rh
cnRlZCA6IDcKLSAgICBDb25zb2xlRXZhbHVhdGVkIDogOAotICAgIFByb2ZpbGVzQ1BVUHJvZmls
ZVRha2VuIDogNQotICAgIFByb2ZpbGVzSGVhcFByb2ZpbGVUYWtlbiA6IDYKLSAgICBTY3JpcHRz
QnJlYWtwb2ludFNldCA6IDMKLSAgICBUaW1lbGluZVN0YXJ0ZWQgOiA0Ci0gICAgV2luZG93RG9j
a2VkIDogMQotICAgIFdpbmRvd1VuZG9ja2VkIDogMgotfQotQWN0aW9uIHRha2VuOiBXaW5kb3dE
b2NrZWQKLUFjdGlvbiB0YWtlbjogV2luZG93VW5kb2NrZWQKLQotcmVjb3JkUGFuZWxTaG93bjoK
LXsKLSAgICBhdWRpdHMgOiA3Ci0gICAgY29uc29sZSA6IDgKLSAgICBlbGVtZW50cyA6IDEKLSAg
ICBuZXR3b3JrIDogMwotICAgIHByb2ZpbGVzIDogNgotICAgIHJlc291cmNlcyA6IDIKLSAgICBz
Y3JpcHRzIDogNAotICAgIHRpbWVsaW5lIDogNQotfQotUGFuZWwgc2hvd246IHByb2ZpbGVzCi1Q
YW5lbCBzaG93bjogdGltZWxpbmUKLVBhbmVsIHNob3duOiBhdWRpdHMKLQotcmVjb3JkU2V0dGlu
Z0NoYW5nZWQ6Ci17Ci0gICAgQ29uc29sZU1vbml0b3JYSFJPZmYgOiA0Ci0gICAgQ29uc29sZU1v
bml0b3JYSFJPbiA6IDMKLSAgICBDb25zb2xlUHJlc2VydmVMb2dPZmYgOiA2Ci0gICAgQ29uc29s
ZVByZXNlcnZlTG9nT24gOiA1Ci0gICAgRWxlbWVudHNET01XcmFwT2ZmIDogMgotICAgIEVsZW1l
bnRzRE9NV3JhcE9uIDogMQotICAgIE5ldHdvcmtTaG93TGFyZ2VSb3dzT2ZmIDogOAotICAgIE5l
dHdvcmtTaG93TGFyZ2VSb3dzT24gOiA3Ci19Ci1TZXR0aW5nIGNoYW5nZWQ6IENvbnNvbGVNb25p
dG9yWEhST24KLVNldHRpbmcgY2hhbmdlZDogQ29uc29sZU1vbml0b3JYSFJPZmYKLVNldHRpbmcg
Y2hhbmdlZDogQ29uc29sZVByZXNlcnZlTG9nT24KLVNldHRpbmcgY2hhbmdlZDogQ29uc29sZVBy
ZXNlcnZlTG9nT2ZmCi1TZXR0aW5nIGNoYW5nZWQ6IE5ldHdvcmtTaG93TGFyZ2VSb3dzT2ZmCi1T
ZXR0aW5nIGNoYW5nZWQ6IE5ldHdvcmtTaG93TGFyZ2VSb3dzT24KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3VzZXItbWV0cmljcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3VzZXItbWV0cmljcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NGJi
ZTcxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91c2VyLW1ldHJpY3MuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LnJlY29yZEFjdGlvblRha2VuID0gZnVuY3Rpb24oYWN0aW9uQ29kZSkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBY3Rpb24gdGFrZW46ICIgKyBuYW1lT2YoV2Vi
SW5zcGVjdG9yLlVzZXJNZXRyaWNzLl9BY3Rpb25Db2RlcywgYWN0aW9uQ29kZSkpOwotICAgIH0K
LQotICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5yZWNvcmRQYW5lbFNob3duID0gZnVuY3Rpb24o
cGFuZWxDb2RlKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlBhbmVs
IHNob3duOiAiICsgbmFtZU9mKFdlYkluc3BlY3Rvci5Vc2VyTWV0cmljcy5fUGFuZWxDb2Rlcywg
cGFuZWxDb2RlKSk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnJlY29yZFNl
dHRpbmdDaGFuZ2VkID0gZnVuY3Rpb24oc2V0dGluZ0NvZGUpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0dGluZyBjaGFuZ2VkOiAiICsgbmFtZU9mKFdlYkluc3Bl
Y3Rvci5Vc2VyTWV0cmljcy5fU2V0dGluZ0NvZGVzLCBzZXR0aW5nQ29kZSkpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIG5hbWVPZihvYmplY3QsIGNvZGUpCi0gICAgewotICAgICAgICBmb3IgKHZh
ciBuYW1lIGluIG9iamVjdCkgewotICAgICAgICAgICAgaWYgKG9iamVjdFtuYW1lXSA9PT0gY29k
ZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gbmFtZTsKLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicmVjb3JkQWN0
aW9uVGFrZW46Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5kdW1wKFdlYkluc3BlY3Rvci5Vc2VyTWV0
cmljcy5fQWN0aW9uQ29kZXMpOwotICAgIFdlYkluc3BlY3Rvci51c2VyTWV0cmljcy5XaW5kb3dE
b2NrZWQucmVjb3JkKCk7Ci0gICAgV2ViSW5zcGVjdG9yLnVzZXJNZXRyaWNzLldpbmRvd1VuZG9j
a2VkLnJlY29yZCgpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxucmVjb3JkUGFu
ZWxTaG93bjoiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmR1bXAoV2ViSW5zcGVjdG9yLlVzZXJNZXRy
aWNzLl9QYW5lbENvZGVzKTsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJwcm9maWxlcyIp
OwotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInRpbWVsaW5lIik7Ci0gICAgV2ViSW5zcGVj
dG9yLnNob3dQYW5lbCgiYXVkaXRzIik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
XG5yZWNvcmRTZXR0aW5nQ2hhbmdlZDoiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmR1bXAoV2ViSW5z
cGVjdG9yLlVzZXJNZXRyaWNzLl9TZXR0aW5nQ29kZXMpOwotICAgIFdlYkluc3BlY3Rvci5zZXR0
aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZC5zZXQodHJ1ZSk7Ci0gICAgV2ViSW5zcGVjdG9yLnNl
dHRpbmdzLm1vbml0b3JpbmdYSFJFbmFibGVkLnNldChmYWxzZSk7Ci0gICAgV2ViSW5zcGVjdG9y
LnNldHRpbmdzLnByZXNlcnZlQ29uc29sZUxvZy5zZXQodHJ1ZSk7Ci0gICAgV2ViSW5zcGVjdG9y
LnNldHRpbmdzLnByZXNlcnZlQ29uc29sZUxvZy5zZXQoZmFsc2UpOwotICAgIFdlYkluc3BlY3Rv
ci5zZXR0aW5ncy5yZXNvdXJjZXNMYXJnZVJvd3Muc2V0KGZhbHNlKTsKLSAgICBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MucmVzb3VyY2VzTGFyZ2VSb3dzLnNldCh0cnVlKTsKLQotICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBsaXN0IG9mIHVzZXIgbWV0cmljcyBjb2RlcyBh
bmQgaW52b2NhdGlvbnMuPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdXRpbGl0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci91dGlsaXRpZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0NWYyNmI5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91dGlsaXRp
ZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotVGhpcyB0ZXN0
IGNoZWNrcyBXZWIgSW5zcGVjdG9yIHV0aWxpdGllcy4KLQotCi1SdW5uaW5nOiBiaW5hcnlJbmRl
eE9mVGVzdAotCi1SdW5uaW5nOiBxc2VsZWN0VGVzdAotQXJyYXk6IFtdCi1SZWZlcmVuY2U6IHt9
Ci1BY3R1YWw6ICAgIHt9Ci1BcnJheTogWzBdCi1SZWZlcmVuY2U6IHsibWluIjowLCJtZWRpYW4i
OjAsIm1heCI6MH0KLUFjdHVhbDogICAgeyJtaW4iOjAsIm1lZGlhbiI6MCwibWF4IjowfQotQXJy
YXk6IFswLDAsMCwwLDAsMCwwLDBdCi1SZWZlcmVuY2U6IHsibWluIjowLCJtZWRpYW4iOjAsIm1h
eCI6MH0KLUFjdHVhbDogICAgeyJtaW4iOjAsIm1lZGlhbiI6MCwibWF4IjowfQotQXJyYXk6IFs0
LDMsMiwxXQotUmVmZXJlbmNlOiB7Im1pbiI6MSwibWVkaWFuIjozLCJtYXgiOjR9Ci1BY3R1YWw6
ICAgIHsibWluIjoxLCJtZWRpYW4iOjMsIm1heCI6NH0KLUFycmF5OiBbMSwyLDMsNCw1XQotUmVm
ZXJlbmNlOiB7Im1pbiI6MSwibWVkaWFuIjozLCJtYXgiOjV9Ci1BY3R1YWw6ICAgIHsibWluIjox
LCJtZWRpYW4iOjMsIm1heCI6NX0KLUFycmF5OiBbLTEsMywyLDcsNyw3LDEwLDEyLDMsNCwtMSwy
XQotUmVmZXJlbmNlOiB7Im1pbiI6LTEsIm1lZGlhbiI6NCwibWF4IjoxMn0KLUFjdHVhbDogICAg
eyJtaW4iOi0xLCJtZWRpYW4iOjQsIm1heCI6MTJ9Ci0KLVJ1bm5pbmc6IHNvcnRSYW5nZVRlc3QK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3V0aWxpdGllcy1oaWdobGlnaHQt
cmVzdWx0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdXRpbGl0aWVzLWhp
Z2hsaWdodC1yZXN1bHRzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZWY3OGU3Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdXRpbGl0aWVz
LWhpZ2hsaWdodC1yZXN1bHRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUyICsw
LDAgQEAKLVRlc3RzIGhvdyB1dGlsaXRpZXMgZnVuY3Rpb25zIGhpZ2hsaWdodCB0ZXh0IGFuZCB0
aGVuIHJldmVydC9yZS1hcHBseSBoaWdobGlnaHRpbmcgY2hhbmdlcy4KLQotQnVnIDcwMjQ0Ci0t
LS0tLS0tLS0gUnVubmluZyB0ZXN0OiAtLS0tLS0tLS0tCi1BZnRlciBoaWdobGlnaHQ6IFtmdW5j
dGlvbl0KLUFmdGVyIHJldmVydDogZnVuY3Rpb24KLUFmdGVyIGFwcGx5OiBbZnVuY3Rpb25dCi0t
LS0tLS0tLS0gUnVubmluZyB0ZXN0OiAtLS0tLS0tLS0tCi1BZnRlciBoaWdobGlnaHQ6IFtmdW5j
dGlvXW4KLUFmdGVyIHJldmVydDogZnVuY3Rpb24KLUFmdGVyIGFwcGx5OiBbZnVuY3Rpb11uCi0t
LS0tLS0tLS0gUnVubmluZyB0ZXN0OiAtLS0tLS0tLS0tCi1BZnRlciBoaWdobGlnaHQ6IGZbdW5j
dGlvbl0KLUFmdGVyIHJldmVydDogZnVuY3Rpb24KLUFmdGVyIGFwcGx5OiBmW3VuY3Rpb25dCi0t
LS0tLS0tLS0gUnVubmluZyB0ZXN0OiAtLS0tLS0tLS0tCi1BZnRlciBoaWdobGlnaHQ6IGZbdW5j
dGlvXW4KLUFmdGVyIHJldmVydDogZnVuY3Rpb24KLUFmdGVyIGFwcGx5OiBmW3VuY3Rpb11uCi0t
LS0tLS0tLS0gUnVubmluZyB0ZXN0OiAtLS0tLS0tLS0tCi1BZnRlciBoaWdobGlnaHQ6IFtmdW5j
dGlvbiBmdW5jdGlvbk5hbWVdCi1BZnRlciByZXZlcnQ6IGZ1bmN0aW9uIGZ1bmN0aW9uTmFtZQot
QWZ0ZXIgYXBwbHk6IFtmdW5jdGlvbiBmdW5jdGlvbk5hbWVdCi0tLS0tLS0tLS0gUnVubmluZyB0
ZXN0OiAtLS0tLS0tLS0tCi1BZnRlciBoaWdobGlnaHQ6IFtmdW5jdGlvbiBmdW5jdGlvbk5hbV1l
Ci1BZnRlciByZXZlcnQ6IGZ1bmN0aW9uIGZ1bmN0aW9uTmFtZQotQWZ0ZXIgYXBwbHk6IFtmdW5j
dGlvbiBmdW5jdGlvbk5hbV1lCi0tLS0tLS0tLS0gUnVubmluZyB0ZXN0OiAtLS0tLS0tLS0tCi1B
ZnRlciBoaWdobGlnaHQ6IGZbdW5jdGlvbiBmdW5jdGlvbk5hbWVdCi1BZnRlciByZXZlcnQ6IGZ1
bmN0aW9uIGZ1bmN0aW9uTmFtZQotQWZ0ZXIgYXBwbHk6IGZbdW5jdGlvbiBmdW5jdGlvbk5hbWVd
Ci0tLS0tLS0tLS0gUnVubmluZyB0ZXN0OiAtLS0tLS0tLS0tCi1BZnRlciBoaWdobGlnaHQ6IGZb
dW5jdGlvbiBmdW5jdGlvbk5hbV1lCi1BZnRlciByZXZlcnQ6IGZ1bmN0aW9uIGZ1bmN0aW9uTmFt
ZQotQWZ0ZXIgYXBwbHk6IGZbdW5jdGlvbiBmdW5jdGlvbk5hbV1lCi0tLS0tLS0tLS0gUnVubmlu
ZyB0ZXN0OiAtLS0tLS0tLS0tCi1BZnRlciBoaWdobGlnaHQ6IGZ1bmN0aW9bbiBmXXVuY3Rpb25O
YW1lCi1BZnRlciByZXZlcnQ6IGZ1bmN0aW9uIGZ1bmN0aW9uTmFtZQotQWZ0ZXIgYXBwbHk6IGZ1
bmN0aW9bbiBmXXVuY3Rpb25OYW1lCi0tLS0tLS0tLS0gUnVubmluZyB0ZXN0OiAtLS0tLS0tLS0t
Ci1BZnRlciBoaWdobGlnaHQ6IFtmXXVuY3Rpb25bIF1bZl11bmN0aW9uTmFtZQotQWZ0ZXIgcmV2
ZXJ0OiBmdW5jdGlvbiBmdW5jdGlvbk5hbWUKLUFmdGVyIGFwcGx5OiBbZl11bmN0aW9uWyBdW2Zd
dW5jdGlvbk5hbWUKLS0tLS0tLS0tLSBSdW5uaW5nIHRlc3Q6IC0tLS0tLS0tLS0KLUFmdGVyIGhp
Z2hsaWdodDogZnVuY3Rpb1tuXVsgXWZ1bmN0aW9uTmFtW2VdCi1BZnRlciByZXZlcnQ6IGZ1bmN0
aW9uIGZ1bmN0aW9uTmFtZQotQWZ0ZXIgYXBwbHk6IGZ1bmN0aW9bbl1bIF1mdW5jdGlvbk5hbVtl
XQotLS0tLS0tLS0tIFJ1bm5pbmcgdGVzdDogLS0tLS0tLS0tLQotQWZ0ZXIgaGlnaGxpZ2h0OiBb
Zl11bmN0aW9bbiBmXXVuY3Rpb25OYW1bZV0KLUFmdGVyIHJldmVydDogZnVuY3Rpb24gZnVuY3Rp
b25OYW1lCi1BZnRlciBhcHBseTogW2ZddW5jdGlvW24gZl11bmN0aW9uTmFtW2VdCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91dGlsaXRpZXMtaGlnaGxpZ2h0LXJlc3VsdHMu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91dGlsaXRpZXMtaGlnaGxpZ2h0LXJlc3VsdHMu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzM1MzlhMS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdXRpbGl0aWVzLWhpZ2hsaWdodC1yZXN1bHRzLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJ1dGlsaXRpZXMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gZHVtcFRleHROb2Rlc0FzU3RyaW5nKG5vZGUp
Ci0gICAgewotICAgICAgICB2YXIgcmVzdWx0ID0gIiI7Ci0gICAgICAgIGZ1bmN0aW9uIGR1bXBU
ZXh0Tm9kZShub2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc3RyID0gbm9kZS50ZXh0
Q29udGVudDsKLSAgICAgICAgICAgIGlmIChub2RlLnBhcmVudEVsZW1lbnQuY2xhc3NOYW1lKQot
ICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiWyIgKyBzdHIgKyAiXSI7Ci0gICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN0cjsKLSAgICAgICAgfTsKLQotICAgICAg
ICBmdW5jdGlvbiBkdW1wRWxlbWVudChlbGVtZW50KQotICAgICAgICB7Ci0gICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnQuY2hpbGROb2Rlcy5sZW5ndGg7IGkrKykKLSAgICAg
ICAgICAgICAgICBkdW1wTm9kZShlbGVtZW50LmNoaWxkTm9kZXNbaV0pOwotICAgICAgICB9Ci0K
LSAgICAgICAgZnVuY3Rpb24gZHVtcE5vZGUobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAg
aWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKQotICAgICAgICAgICAgICAgIGR1
bXBUZXh0Tm9kZShub2RlKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUubm9kZVR5cGUgPT09
IE5vZGUuRUxFTUVOVF9OT0RFKQotICAgICAgICAgICAgICAgIGR1bXBFbGVtZW50KG5vZGUpOwot
ICAgICAgICB9OwotCi0gICAgICAgIGR1bXBOb2RlKG5vZGUpOwotCi0gICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcGVyZm9ybVRlc3RGb3JFbGVtZW50KGVsZW1l
bnQsIHJhbmdlcykKLSAgICB7Ci0gICAgICAgIHZhciBjaGFuZ2VzID0gW107Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCItLS0tLS0tLS0gUnVubmluZyB0ZXN0OiAtLS0tLS0tLS0t
Iik7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5oaWdobGlnaHRSYW5nZXNXaXRoU3R5bGVDbGFzcyhl
bGVtZW50LCByYW5nZXMsICJoaWdobGlnaHRlZCIsIGNoYW5nZXMpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgaGlnaGxpZ2h0OiAiICsgZHVtcFRleHROb2Rlc0FzU3Ry
aW5nKGVsZW1lbnQpKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnJldmVydERvbUNoYW5nZXMoY2hh
bmdlcyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZnRlciByZXZlcnQ6ICIg
KyBkdW1wVGV4dE5vZGVzQXNTdHJpbmcoZWxlbWVudCkpOwotICAgICAgICBXZWJJbnNwZWN0b3Iu
YXBwbHlEb21DaGFuZ2VzKGNoYW5nZXMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiQWZ0ZXIgYXBwbHk6ICIgKyBkdW1wVGV4dE5vZGVzQXNTdHJpbmcoZWxlbWVudCkpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHRleHRFbGVtZW50KHN0cmluZ3MpCi0gICAgewotICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHN0cmluZ3MubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHZhciBz
cGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgICAgICAgICAgc3Bhbi50
ZXh0Q29udGVudCA9IHN0cmluZ3NbaV07Ci0gICAgICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxk
KHNwYW4pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBlbGVtZW50OwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHJhbmdlKG9mZnNldCwgbGVuZ3RoKQotICAgIHsKLSAgICAgICAgdmFyIHJlc3Vs
dCA9IHt9OwotICAgICAgICByZXN1bHQub2Zmc2V0ID0gb2Zmc2V0OwotICAgICAgICByZXN1bHQu
bGVuZ3RoID0gbGVuZ3RoOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHBl
cmZvcm1UZXN0Rm9yRWxlbWVudCh0ZXh0RWxlbWVudChbImZ1bmN0aW9uIl0pLCBbcmFuZ2UoMCwg
OCldKTsgLy8gSGlnaGxpZ2h0IHdob2xlIHRleHQgbm9kZS4KLSAgICBwZXJmb3JtVGVzdEZvckVs
ZW1lbnQodGV4dEVsZW1lbnQoWyJmdW5jdGlvbiJdKSwgW3JhbmdlKDAsIDcpXSk7IC8vIEhpZ2hs
aWdodCBvbmx5IHRleHQgbm9kZSBiZWdpbm5pbmcuCi0gICAgcGVyZm9ybVRlc3RGb3JFbGVtZW50
KHRleHRFbGVtZW50KFsiZnVuY3Rpb24iXSksIFtyYW5nZSgxLCA3KV0pOyAvLyBIaWdobGlnaHQg
b25seSB0ZXh0IG5vZGUgZW5kaW5nLgotICAgIHBlcmZvcm1UZXN0Rm9yRWxlbWVudCh0ZXh0RWxl
bWVudChbImZ1bmN0aW9uIl0pLCBbcmFuZ2UoMSwgNildKTsgLy8gSGlnaGxpZ2h0IGluIHRoZSBt
aWRkbGUgb2YgdGV4dCBub2RlLgotCi0gICAgcGVyZm9ybVRlc3RGb3JFbGVtZW50KHRleHRFbGVt
ZW50KFsiZnVuY3Rpb24iLCAiICIsICJmdW5jdGlvbk5hbWUiXSksIFtyYW5nZSgwLCAyMSldKTsg
Ly8gSGlnaGxpZ2h0IGFsbCB0ZXh0IGluIDMgdGV4dCBub2Rlcy4KLSAgICBwZXJmb3JtVGVzdEZv
ckVsZW1lbnQodGV4dEVsZW1lbnQoWyJmdW5jdGlvbiIsICIgIiwgImZ1bmN0aW9uTmFtZSJdKSwg
W3JhbmdlKDAsIDIwKV0pOyAvLyBIaWdobGlnaHQgYWxsIHRleHQgaW4gMyB0ZXh0IG5vZGVzIGV4
Y2VwdCBmb3IgdGhlIGxhc3QgY2hhcmFjdGVyLgotICAgIHBlcmZvcm1UZXN0Rm9yRWxlbWVudCh0
ZXh0RWxlbWVudChbImZ1bmN0aW9uIiwgIiAiLCAiZnVuY3Rpb25OYW1lIl0pLCBbcmFuZ2UoMSwg
MjApXSk7IC8vIEhpZ2hsaWdodCBhbGwgdGV4dCBpbiAzIHRleHQgbm9kZXMgZXhjZXB0IGZvciB0
aGUgZmlyc3QgY2hhcmFjdGVyLgotICAgIHBlcmZvcm1UZXN0Rm9yRWxlbWVudCh0ZXh0RWxlbWVu
dChbImZ1bmN0aW9uIiwgIiAiLCAiZnVuY3Rpb25OYW1lIl0pLCBbcmFuZ2UoMSwgMTkpXSk7IC8v
IEhpZ2hsaWdodCBhbGwgdGV4dCBpbiAzIHRleHQgbm9kZXMgZXhjZXB0IGZvciB0aGUgZmlyc3Qg
YW5kIHRoZSBsYXN0IGNoYXJhY3RlcnMuCi0gICAgcGVyZm9ybVRlc3RGb3JFbGVtZW50KHRleHRF
bGVtZW50KFsiZnVuY3Rpb24iLCAiICIsICJmdW5jdGlvbk5hbWUiXSksIFtyYW5nZSg3LCAzKV0p
OyAvLyBIaWdobGlnaHQgbGlrZSB0aGF0ICJmdW5jdGlvW24gZl11bmN0aW9uTmFtZSIKLQotICAg
IHBlcmZvcm1UZXN0Rm9yRWxlbWVudCh0ZXh0RWxlbWVudChbImZ1bmN0aW9uIiwgIiAiLCAiZnVu
Y3Rpb25OYW1lIl0pLCBbcmFuZ2UoMCwgMSksIHJhbmdlKDgsIDEpLCByYW5nZSg5LCAxKV0pOyAv
LyBIaWdobGlnaHQgZmlyc3QgY2hhcmFjdGVycyBpbiB0ZXh0IG5vZGVzLgotICAgIHBlcmZvcm1U
ZXN0Rm9yRWxlbWVudCh0ZXh0RWxlbWVudChbImZ1bmN0aW9uIiwgIiAiLCAiZnVuY3Rpb25OYW1l
Il0pLCBbcmFuZ2UoNywgMSksIHJhbmdlKDgsIDEpLCByYW5nZSgyMCwgMSldKTsgLy8gSGlnaGxp
Z2h0IGxhc3QgY2hhcmFjdGVycyBpbiB0ZXh0IG5vZGUuCi0gICAgcGVyZm9ybVRlc3RGb3JFbGVt
ZW50KHRleHRFbGVtZW50KFsiZnVuY3Rpb24iLCAiICIsICJmdW5jdGlvbk5hbWUiXSksIFtyYW5n
ZSgwLCAxKSwgcmFuZ2UoNywgMyksIHJhbmdlKDIwLCAxKV0pOyAvLyBIaWdobGlnaHQgbGlrZSB0
aGF0OiAiW2ZddW5jdGlvW24gZl11bmN0aW9uTmFtW2VdIgotICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLSAgICA8cD5UZXN0cyBob3cgdXRpbGl0aWVzIGZ1bmN0aW9ucyBoaWdobGlnaHQgdGV4
dCBhbmQgdGhlbiByZXZlcnQvcmUtYXBwbHkgaGlnaGxpZ2h0aW5nIGNoYW5nZXMuPC9wPgotICAg
IDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI0NCI+
QnVnIDcwMjQ0PC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3V0aWxpdGllcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3V0aWxpdGll
cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTNlYjBkLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91dGlsaXRpZXMuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDEzNCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAg
ICAgZnVuY3Rpb24gYmluYXJ5SW5kZXhPZlRlc3QobmV4dCkKLSAgICAgICAgewotICAgICAgICAg
ICAgdmFyIHRlc3RBcnJheXMgPSBbCi0gICAgICAgICAgICAgICAgW10sCi0gICAgICAgICAgICAg
ICAgWzFdLAotICAgICAgICAgICAgICAgIFsxLCAxMF0sCi0gICAgICAgICAgICAgICAgWzEsIDEw
LCAxMSwgMTIsIDEzLCAxNCwgMTAwXSwKLSAgICAgICAgICAgICAgICBbLTEwMCwgLTUwLCAwLCA1
MCwgMTAwXSwKLSAgICAgICAgICAgICAgICBbLTEwMCwgLTE0LCAtMTMsIC0xMiwgLTExLCAtMTAs
IC0xXQotICAgICAgICAgICAgXTsKLSAgICAgCi0gICAgICAgICAgICBmdW5jdGlvbiB0ZXN0QXJy
YXkoYXJyYXkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24gY29tcGFy
YXRvcihhLCBiKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGEgPCBiID8gLTEgOiAoYSA+IGIgPyAxIDogMCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAK
LSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gLTEwMDsgaSA8PSAxMDA7ICsraSkgewotICAg
ICAgICAgICAgICAgICAgICB2YXIgcmVmZXJlbmNlID0gYXJyYXkuaW5kZXhPZihpKTsKLSAgICAg
ICAgICAgICAgICAgICAgdmFyIGFjdHVhbCA9IGFycmF5LmJpbmFyeUluZGV4T2YoaSwgY29tcGFy
YXRvcik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHJl
ZmVyZW5jZSwgYWN0dWFsLCAiYmluYXJ5SW5kZXhPZiIpOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgCi0gICAgICAg
ICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHRlc3RBcnJheXMubGVuZ3RoOyBpIDwgbDsgKytpKQot
ICAgICAgICAgICAgICAgIHRlc3RBcnJheSh0ZXN0QXJyYXlzW2ldKTsKLSAgICAgICAgICAgIG5l
eHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiBxc2VsZWN0VGVzdChuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdGVzdEFycmF5cyA9IFsKLSAgICAgICAgICAgICAg
ICBbXSwKLSAgICAgICAgICAgICAgICBbMF0sCi0gICAgICAgICAgICAgICAgWzAsIDAsIDAsIDAs
IDAsIDAsIDAsIDBdLAotICAgICAgICAgICAgICAgIFs0LCAzLCAyLCAxXSwKLSAgICAgICAgICAg
ICAgICBbMSwgMiwgMywgNCwgNV0sCi0gICAgICAgICAgICAgICAgWy0xLCAzLCAyLCA3LCA3LCA3
LCAxMCwgMTIsIDMsIDQsIC0xLCAyXQotICAgICAgICAgICAgXTsKLQotICAgICAgICAgICAgZnVu
Y3Rpb24gdGVzdEFycmF5KGFycmF5KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZ1
bmN0aW9uIGNvbXBhcmUoYSwgYikKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiBhIC0gYjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFy
IHNvcnRlZCA9IGFycmF5LnNsaWNlKDApLnNvcnQoY29tcGFyZSk7Ci0KLSAgICAgICAgICAgICAg
ICB2YXIgcmVmZXJlbmNlID0gewotICAgICAgICAgICAgICAgICAgICBtaW46IHNvcnRlZFswXSwK
LSAgICAgICAgICAgICAgICAgICAgbWVkaWFuOiBzb3J0ZWRbTWF0aC5mbG9vcihzb3J0ZWQubGVu
Z3RoIC8gMildLAotICAgICAgICAgICAgICAgICAgICBtYXg6IHNvcnRlZFtzb3J0ZWQubGVuZ3Ro
IC0gMV0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB2YXIgYWN0dWFsID0g
ewotICAgICAgICAgICAgICAgICAgICBtaW46IGFycmF5LnNsaWNlKDApLnFzZWxlY3QoMCksCi0g
ICAgICAgICAgICAgICAgICAgIG1lZGlhbjogYXJyYXkuc2xpY2UoMCkucXNlbGVjdChNYXRoLmZs
b29yKGFycmF5Lmxlbmd0aCAvIDIpKSwKLSAgICAgICAgICAgICAgICAgICAgbWF4OiBhcnJheS5z
bGljZSgwKS5xc2VsZWN0KGFycmF5Lmxlbmd0aCAtIDEpCi0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBcnJheTogIiArIEpTT04uc3Ry
aW5naWZ5KGFycmF5KSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlJlZmVyZW5jZTogIiArIEpTT04uc3RyaW5naWZ5KHJlZmVyZW5jZSkpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBY3R1YWw6ICAgICIgKyBKU09OLnN0cmluZ2lm
eShhY3R1YWwpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBs
ID0gdGVzdEFycmF5cy5sZW5ndGg7IGkgPCBsOyArK2kpCi0gICAgICAgICAgICAgICAgdGVzdEFy
cmF5KHRlc3RBcnJheXNbaV0pOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0g
ICAgICAgIGZ1bmN0aW9uIHNvcnRSYW5nZVRlc3QobmV4dCkKLSAgICAgICAgewotICAgICAgICAg
ICAgdmFyIHRlc3RBcnJheXMgPSBbCi0gICAgICAgICAgICAgICAgW10sCi0gICAgICAgICAgICAg
ICAgWzFdLAotICAgICAgICAgICAgICAgIFsyLCAxXSwKLSAgICAgICAgICAgICAgICBbNiwgNCwg
MiwgNywgMTAsIDE1LCAxXSwKLSAgICAgICAgICAgICAgICBbMTAsIDQ0LCAzLCA2LCA1NiwgNjYs
IDEwLCA1NSwgMzIsIDU2LCAyLCA1XQotICAgICAgICAgICAgXTsKLQotICAgICAgICAgICAgZnVu
Y3Rpb24gdGVzdEFycmF5KGFycmF5KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZ1
bmN0aW9uIGNvbXBhcmF0b3IoYSwgYikKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBhIDwgYiA/IC0xIDogKGEgPiBiID8gMSA6IDApOwotICAgICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVBcnJheXMoYSwgYiwgbWVz
c2FnZSkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0RXF1YWxzKEpTT04uc3RyaW5naWZ5KGEpLCBKU09OLnN0cmluZ2lmeShiKSwgbWVz
c2FnZSk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZm9yICh2YXIgbGVm
dCA9IDAsIGwgPSBhcnJheS5sZW5ndGggLSAxOyBsZWZ0IDwgbDsgKytsZWZ0KSB7Ci0gICAgICAg
ICAgICAgICAgICAgICBmb3IgKHZhciByaWdodCA9IGxlZnQgKyAxLCByID0gYXJyYXkubGVuZ3Ro
OyByaWdodCA8IHI7ICsrcmlnaHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFy
IGNvdW50ID0gMSwgayA9IHJpZ2h0IC0gbGVmdCArIDE7IGNvdW50IDw9IGs7ICsrY291bnQpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhY3R1YWwgPSBhcnJheS5zbGljZSgw
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbC5zb3J0UmFuZ2UoY29tcGFy
YXRvciwgbGVmdCwgcmlnaHQsIGNvdW50KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbXBhcmVBcnJheXMoYXJyYXkuc2xpY2UoMCwgbGVmdCksIGFjdHVhbC5zbGljZSgwLCBsZWZ0
KSwgImxlZnQgIiArIGxlZnQgKyAiICIgKyByaWdodCArICIgIiArIGNvdW50KTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmVBcnJheXMoYXJyYXkuc2xpY2UocmlnaHQgKyAx
KSwgYWN0dWFsLnNsaWNlKHJpZ2h0ICsgMSksICJyaWdodCAiICsgbGVmdCArICIgIiArIHJpZ2h0
ICsgIiAiICsgY291bnQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1pZGRs
ZSA9IGFycmF5LnNsaWNlKGxlZnQsIHJpZ2h0ICsgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtaWRkbGUuc29ydChjb21wYXJhdG9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbXBhcmVBcnJheXMobWlkZGxlLnNsaWNlKDAsIGNvdW50KSwgYWN0dWFsLnNsaWNl
KGxlZnQsIGxlZnQgKyBjb3VudCksICJzb3J0ZWQgIiArIGxlZnQgKyAiICIgKyByaWdodCArICIg
IiArIGNvdW50KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbFJlc3QgPSBh
Y3R1YWwuc2xpY2UobGVmdCArIGNvdW50LCByaWdodCArIDEpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYWN0dWFsUmVzdC5zb3J0KGNvbXBhcmF0b3IpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29tcGFyZUFycmF5cyhtaWRkbGUuc2xpY2UoY291bnQpLCBhY3R1YWxS
ZXN0LCAidW5zb3J0ZWQgIiArIGxlZnQgKyAiICIgKyByaWdodCArICIgIiArIGNvdW50KTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHRlc3RBcnJheXMubGVuZ3Ro
OyBpIDwgbGVuOyArK2kpCi0gICAgICAgICAgICAgICAgdGVzdEFycmF5KHRlc3RBcnJheXNbaV0p
OwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0
PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRoaXMgdGVzdCBj
aGVja3MgV2ViIEluc3BlY3RvciB1dGlsaXRpZXMuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci92ZXJzaW9uLWNvbnRyb2xsZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZlcnNpb24tY29udHJvbGxlci1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyZTlkMmMuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZlcnNpb24tY29udHJvbGxlci1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi1UZXN0cyBpbnNwZWN0b3IgdmVyc2lv
biBjb250cm9sbGVyLgotCi0KLVJ1bm5pbmc6IHRlc3RNZXRob2RzVG9SdW5Ub1VwZGF0ZVZlcnNp
b24KLVRlc3RpbmcgbWV0aG9kcyB0byBydW4gdG8gdXBncmFkZSBmcm9tIDAgdG8gMC4KLU1ldGhv
ZHMgdG8gcnVuOiBbXQotCi1UZXN0aW5nIG1ldGhvZHMgdG8gcnVuIHRvIHVwZ3JhZGUgZnJvbSAw
IHRvIDEuCi1NZXRob2RzIHRvIHJ1bjogWyJfdXBkYXRlVmVyc2lvbkZyb20wVG8xIl0KLQotVGVz
dGluZyBtZXRob2RzIHRvIHJ1biB0byB1cGdyYWRlIGZyb20gMCB0byAyLgotTWV0aG9kcyB0byBy
dW46IFsiX3VwZGF0ZVZlcnNpb25Gcm9tMFRvMSIsIl91cGRhdGVWZXJzaW9uRnJvbTFUbzIiXQot
Ci1UZXN0aW5nIG1ldGhvZHMgdG8gcnVuIHRvIHVwZ3JhZGUgZnJvbSAwIHRvIDMuCi1NZXRob2Rz
IHRvIHJ1bjogWyJfdXBkYXRlVmVyc2lvbkZyb20wVG8xIiwiX3VwZGF0ZVZlcnNpb25Gcm9tMVRv
MiIsIl91cGRhdGVWZXJzaW9uRnJvbTJUbzMiXQotCi1UZXN0aW5nIG1ldGhvZHMgdG8gcnVuIHRv
IHVwZ3JhZGUgZnJvbSAxIHRvIDEuCi1NZXRob2RzIHRvIHJ1bjogW10KLQotVGVzdGluZyBtZXRo
b2RzIHRvIHJ1biB0byB1cGdyYWRlIGZyb20gMSB0byAyLgotTWV0aG9kcyB0byBydW46IFsiX3Vw
ZGF0ZVZlcnNpb25Gcm9tMVRvMiJdCi0KLVRlc3RpbmcgbWV0aG9kcyB0byBydW4gdG8gdXBncmFk
ZSBmcm9tIDEgdG8gMy4KLU1ldGhvZHMgdG8gcnVuOiBbIl91cGRhdGVWZXJzaW9uRnJvbTFUbzIi
LCJfdXBkYXRlVmVyc2lvbkZyb20yVG8zIl0KLQotVGVzdGluZyBtZXRob2RzIHRvIHJ1biB0byB1
cGdyYWRlIGZyb20gMiB0byAyLgotTWV0aG9kcyB0byBydW46IFtdCi0KLVRlc3RpbmcgbWV0aG9k
cyB0byBydW4gdG8gdXBncmFkZSBmcm9tIDIgdG8gMy4KLU1ldGhvZHMgdG8gcnVuOiBbIl91cGRh
dGVWZXJzaW9uRnJvbTJUbzMiXQotCi0KLVJ1bm5pbmc6IHRlc3RDbGVhckJyZWFrcG9pbnRzV2hl
blRvb01hbnkKLVN0YXJ0aW5nIHRlc3Qgd2l0aCAwIGJyZWFrcG9pbnRzIGFuZCA1MDAgYWxsb3dl
ZCBhdCBtYXguCi1OdW1iZXIgb2YgYnJlYWtwb2ludHMgbGVmdCBpbiB0aGUgc2V0dGluZyBhZnRl
ciB0aGUgdGVzdDogMC4KLQotU3RhcnRpbmcgdGVzdCB3aXRoIDEgYnJlYWtwb2ludHMgYW5kIDUw
MCBhbGxvd2VkIGF0IG1heC4KLU51bWJlciBvZiBicmVha3BvaW50cyBsZWZ0IGluIHRoZSBzZXR0
aW5nIGFmdGVyIHRoZSB0ZXN0OiAxLgotCi1TdGFydGluZyB0ZXN0IHdpdGggMiBicmVha3BvaW50
cyBhbmQgNTAwIGFsbG93ZWQgYXQgbWF4LgotTnVtYmVyIG9mIGJyZWFrcG9pbnRzIGxlZnQgaW4g
dGhlIHNldHRpbmcgYWZ0ZXIgdGhlIHRlc3Q6IDIuCi0KLVN0YXJ0aW5nIHRlc3Qgd2l0aCA0OTkg
YnJlYWtwb2ludHMgYW5kIDUwMCBhbGxvd2VkIGF0IG1heC4KLU51bWJlciBvZiBicmVha3BvaW50
cyBsZWZ0IGluIHRoZSBzZXR0aW5nIGFmdGVyIHRoZSB0ZXN0OiA0OTkuCi0KLVN0YXJ0aW5nIHRl
c3Qgd2l0aCA1MDAgYnJlYWtwb2ludHMgYW5kIDUwMCBhbGxvd2VkIGF0IG1heC4KLU51bWJlciBv
ZiBicmVha3BvaW50cyBsZWZ0IGluIHRoZSBzZXR0aW5nIGFmdGVyIHRoZSB0ZXN0OiA1MDAuCi0K
LVN0YXJ0aW5nIHRlc3Qgd2l0aCA1MDEgYnJlYWtwb2ludHMgYW5kIDUwMCBhbGxvd2VkIGF0IG1h
eC4KLU51bWJlciBvZiBicmVha3BvaW50cyBsZWZ0IGluIHRoZSBzZXR0aW5nIGFmdGVyIHRoZSB0
ZXN0OiAwLgotCi1TdGFydGluZyB0ZXN0IHdpdGggMTAwMCBicmVha3BvaW50cyBhbmQgNTAwIGFs
bG93ZWQgYXQgbWF4LgotTnVtYmVyIG9mIGJyZWFrcG9pbnRzIGxlZnQgaW4gdGhlIHNldHRpbmcg
YWZ0ZXIgdGhlIHRlc3Q6IDAuCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3ZlcnNpb24tY29udHJvbGxlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZlcnNpb24t
Y29udHJvbGxlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Mjg5ZjFmMS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdmVyc2lvbi1jb250cm9sbGVyLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBjcmVhdGVCcmVh
a3BvaW50KHVpU291cmNlQ29kZUlkLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCi0g
ICAgewotICAgICAgICByZXR1cm4geyBzb3VyY2VGaWxlSWQ6IHVpU291cmNlQ29kZUlkLCBsaW5l
TnVtYmVyOiBsaW5lTnVtYmVyLCBjb25kaXRpb246IGNvbmRpdGlvbiwgZW5hYmxlZDogZW5hYmxl
ZCB9OwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAg
ZnVuY3Rpb24gdGVzdE1ldGhvZHNUb1J1blRvVXBkYXRlVmVyc2lvbihuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICBmdW5jdGlvbiBydW5WZXJzaW9uQ29udHJvbGxlclRlc3Qob2xkVmVyc2lv
biwgY3VycmVudFZlcnNpb24pCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlRlc3RpbmcgbWV0aG9kcyB0byBydW4gdG8gdXBncmFkZSBmcm9t
ICIgKyBvbGRWZXJzaW9uICsgIiB0byAiICsgY3VycmVudFZlcnNpb24gKyAiLiIpOwotICAgICAg
ICAgICAgICAgIHZhciB2ZXJzaW9uQ29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuVmVyc2lv
bkNvbnRyb2xsZXIoKTsKLSAgICAgICAgICAgICAgICB2YXIgbWV0aG9kc1RvUnVuID0gdmVyc2lv
bkNvbnRyb2xsZXIuX21ldGhvZHNUb1J1blRvVXBkYXRlVmVyc2lvbihvbGRWZXJzaW9uLCBjdXJy
ZW50VmVyc2lvbik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk1l
dGhvZHMgdG8gcnVuOiAiICsgSlNPTi5zdHJpbmdpZnkobWV0aG9kc1RvUnVuKSk7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBydW5WZXJzaW9uQ29udHJvbGxlclRlc3QoMCwgMCk7Ci0gICAgICAgICAgICBy
dW5WZXJzaW9uQ29udHJvbGxlclRlc3QoMCwgMSk7Ci0gICAgICAgICAgICBydW5WZXJzaW9uQ29u
dHJvbGxlclRlc3QoMCwgMik7Ci0gICAgICAgICAgICBydW5WZXJzaW9uQ29udHJvbGxlclRlc3Qo
MCwgMyk7Ci0gICAgICAgICAgICBydW5WZXJzaW9uQ29udHJvbGxlclRlc3QoMSwgMSk7Ci0gICAg
ICAgICAgICBydW5WZXJzaW9uQ29udHJvbGxlclRlc3QoMSwgMik7Ci0gICAgICAgICAgICBydW5W
ZXJzaW9uQ29udHJvbGxlclRlc3QoMSwgMyk7Ci0gICAgICAgICAgICBydW5WZXJzaW9uQ29udHJv
bGxlclRlc3QoMiwgMik7Ci0gICAgICAgICAgICBydW5WZXJzaW9uQ29udHJvbGxlclRlc3QoMiwg
Myk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24g
dGVzdENsZWFyQnJlYWtwb2ludHNXaGVuVG9vTWFueShuZXh0KQotICAgICAgICB7Ci0gICAgICAg
ICAgICBmdW5jdGlvbiBydW5DbGVhckJyZWFrcG9pbnRzVGVzdChicmVha3BvaW50c0NvdW50LCBt
YXhCcmVha3BvaW50c0NvdW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJTdGFydGluZyB0ZXN0IHdpdGggIiArIGJyZWFrcG9pbnRzQ291
bnQgKyAiIGJyZWFrcG9pbnRzIGFuZCAiICsgbWF4QnJlYWtwb2ludHNDb3VudCArICIgYWxsb3dl
ZCBhdCBtYXguIik7Ci0gICAgICAgICAgICAgICAgdmFyIHZlcnNpb25Db250cm9sbGVyID0gbmV3
IFdlYkluc3BlY3Rvci5WZXJzaW9uQ29udHJvbGxlcigpOwotICAgICAgICAgICAgICAgIHZhciBz
ZXJpYWxpemVkQnJlYWtwb2ludHMgPSBbXTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGJyZWFrcG9pbnRzQ291bnQ7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgc2VyaWFs
aXplZEJyZWFrcG9pbnRzLnB1c2goY3JlYXRlQnJlYWtwb2ludCgiZmlsZSIgKyBpICsgIi5qcyIs
IGkgJSAxMCwgIiIsIHRydWUpKTsKLSAgICAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludHNTZXR0
aW5nID0gbmV3IEluc3BlY3RvclRlc3QuTW9ja1NldHRpbmcoc2VyaWFsaXplZEJyZWFrcG9pbnRz
KTsKLSAgICAgICAgICAgICAgICB2ZXJzaW9uQ29udHJvbGxlci5fY2xlYXJCcmVha3BvaW50c1do
ZW5Ub29NYW55KGJyZWFrcG9pbnRzU2V0dGluZywgbWF4QnJlYWtwb2ludHNDb3VudCk7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk51bWJlciBvZiBicmVha3BvaW50
cyBsZWZ0IGluIHRoZSBzZXR0aW5nIGFmdGVyIHRoZSB0ZXN0OiAiICsgYnJlYWtwb2ludHNTZXR0
aW5nLmdldCgpLmxlbmd0aCArICIuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBydW5DbGVhckJyZWFr
cG9pbnRzVGVzdCgwLCA1MDApOwotICAgICAgICAgICAgcnVuQ2xlYXJCcmVha3BvaW50c1Rlc3Qo
MSwgNTAwKTsKLSAgICAgICAgICAgIHJ1bkNsZWFyQnJlYWtwb2ludHNUZXN0KDIsIDUwMCk7Ci0g
ICAgICAgICAgICBydW5DbGVhckJyZWFrcG9pbnRzVGVzdCg0OTksIDUwMCk7Ci0gICAgICAgICAg
ICBydW5DbGVhckJyZWFrcG9pbnRzVGVzdCg1MDAsIDUwMCk7Ci0gICAgICAgICAgICBydW5DbGVh
ckJyZWFrcG9pbnRzVGVzdCg1MDEsIDUwMCk7Ci0gICAgICAgICAgICBydW5DbGVhckJyZWFrcG9p
bnRzVGVzdCgxMDAwLCA1MDApOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9Ci0gICAg
XSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxw
PlRlc3RzIGluc3BlY3RvciB2ZXJzaW9uIGNvbnRyb2xsZXIuPC9wPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctY3NzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWNzcy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjMjQwOTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3ZpZXctY3NzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIyICsw
LDAgQEAKLVRoaXMgdGVzdHMgdGhhdCBDU1MgZmlsZXMgYXJlIHByb3Blcmx5IGxvYWRlZCAvIHVu
bG9hZGVkIHVwb24gdmlldyBzaG93IC8gZGV0YWNoLgotCi0KLVJ1bm5pbmc6IHRlc3RFdmVudHMK
LVBhcmVudC5zaG93KCkKLSAgTE9BRCBwYXJlbnQuY3NzCi1DaGlsZCAxLnNob3coKQotICBMT0FE
IGNoaWxkLmNzcwotICBMT0FEIGNoaWxkMS5jc3MKLUNoaWxkIDIuc2hvdygpCi0gIExPQUQgY2hp
bGQyLmNzcwotQ2hpbGQgMi5kZXRhY2goKQotICBVTkxPQUQgY2hpbGQyLmNzcwotUGFyZW50LmRl
dGFjaCgpCi0gIFVOTE9BRCBwYXJlbnQuY3NzCi0gIFVOTE9BRCBjaGlsZC5jc3MKLSAgVU5MT0FE
IGNoaWxkMS5jc3MKLVBhcmVudC5zaG93KCkKLSAgTE9BRCBwYXJlbnQuY3NzCi0gIExPQUQgY2hp
bGQuY3NzCi0gIExPQUQgY2hpbGQxLmNzcwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivdmlldy1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWNzcy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDZiYzQ1Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWNzcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzYg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBUZXN0Vmlldyh2aWV3TmFtZSwgcmVxdWlyZWRDU1MsIHJl
cXVpcmVkQ1NTMikKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7
Ci0KLSAgICAgICAgdGhpcy5yZWdpc3RlclJlcXVpcmVkQ1NTKHJlcXVpcmVkQ1NTKTsKLSAgICAg
ICAgaWYgKHJlcXVpcmVkQ1NTMikKLSAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJSZXF1aXJlZENT
UyhyZXF1aXJlZENTUzIpOwotICAgICAgICB0aGlzLl92aWV3TmFtZSA9IHZpZXdOYW1lOwotICAg
IH0KLQotICAgIFRlc3RWaWV3LnByb3RvdHlwZSA9IHsKLSAgICAgICAgc2hvdzogZnVuY3Rpb24o
cGFyZW50RWxlbWVudCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQodGhpcy5fdmlld05hbWUgKyAiLnNob3coKSIpOwotICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKLSAgICAg
ICAgfSwKLQotICAgICAgICBkZXRhY2g6IGZ1bmN0aW9uKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGhpcy5fdmlld05hbWUgKyAiLmRldGFjaCgpIik7
Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuZGV0YWNoLmNhbGwodGhp
cyk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgX2RvTG9hZENTUzogZnVuY3Rpb24oY3NzRmlsZSkK
LSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgTE9BRCAi
ICsgY3NzRmlsZSk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgX2RvVW5sb2FkQ1NTOiBmdW5jdGlv
bihjc3NGaWxlKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiICBVTkxPQUQgIiArIGNzc0ZpbGUpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIFRlc3RW
aWV3LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7Ci0K
LSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RF
dmVudHMobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHBhcmVudFZpZXcgPSBuZXcg
VGVzdFZpZXcoIlBhcmVudCIsICJwYXJlbnQuY3NzIik7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3
LnNob3coV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuZWxlbWVudCk7Ci0KLSAgICAgICAgICAg
IHZhciBjaGlsZFZpZXcxID0gbmV3IFRlc3RWaWV3KCJDaGlsZCAxIiwgImNoaWxkLmNzcyIsICJj
aGlsZDEuY3NzIik7Ci0gICAgICAgICAgICB2YXIgY2hpbGRWaWV3MiA9IG5ldyBUZXN0Vmlldygi
Q2hpbGQgMiIsICJjaGlsZC5jc3MiLCAiY2hpbGQyLmNzcyIpOwotCi0gICAgICAgICAgICBjaGls
ZFZpZXcxLnNob3cocGFyZW50Vmlldy5lbGVtZW50KTsKLSAgICAgICAgICAgIGNoaWxkVmlldzIu
c2hvdyhwYXJlbnRWaWV3LmVsZW1lbnQpOwotCi0gICAgICAgICAgICBjaGlsZFZpZXcyLmRldGFj
aChwYXJlbnRWaWV3LmVsZW1lbnQpOwotCi0gICAgICAgICAgICBwYXJlbnRWaWV3LmRldGFjaCgp
OwotCi0gICAgICAgICAgICBwYXJlbnRWaWV3LnNob3coV2ViSW5zcGVjdG9yLmluc3BlY3RvclZp
ZXcuZWxlbWVudCk7Ci0KLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfQotICAgIF0pOwot
fQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
Ci1UaGlzIHRlc3RzIHRoYXQgQ1NTIGZpbGVzIGFyZSBwcm9wZXJseSBsb2FkZWQgLyB1bmxvYWRl
ZCB1cG9uIHZpZXcgc2hvdyAvIGRldGFjaC4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxNzIzMDIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3ZpZXctZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIx
MiArMCwwIEBACi1UaGlzIHRlc3RzIHRoYXQgZXZlbnRzIGFyZSBwcm9wZXJseSBwcm9wYWdhdGVk
IHRocm91Z2ggVmlldyBoaWVyYXJjaHkuCi0KLQotUnVubmluZzogdGVzdFNob3dWaWV3Ci1WaWV3
KCkKLVZpZXcuc2hvdygpCi0gIFZpZXcud2FzU2hvd24oKQotICBWaWV3Lm9uUmVzaXplKCkKLVZp
ZXcuZGV0YWNoKCkKLSAgVmlldy53aWxsSGlkZSgpCi0KLVJ1bm5pbmc6IHRlc3RBcHBlbmRWaWFE
T00KLVZpZXcoKQotRXJyb3I6IEF0dGVtcHQgdG8gYWRkIHZpZXcgdmlhIHJlZ3VsYXIgRE9NIG9w
ZXJhdGlvbi4KLQotUnVubmluZzogdGVzdEluc2VydFZpYURPTQotVmlldygpCi1FcnJvcjogQXR0
ZW1wdCB0byBhZGQgdmlldyB2aWEgcmVndWxhciBET00gb3BlcmF0aW9uLgotCi1SdW5uaW5nOiB0
ZXN0QXR0YWNoVG9PcnBoYW5Ob2RlCi1WaWV3KCkKLVZpZXcuc2hvdygpCi1FcnJvcjogQXR0ZW1w
dCB0byBhdHRhY2ggdmlldyB0byBvcnBoYW4gbm9kZQotCi1SdW5uaW5nOiB0ZXN0SW1tZWRpYXRl
UGFyZW50Ci1QYXJlbnQoKQotQ2hpbGQoKQotQ2hpbGQuc2hvdygpCi1PSwotCi1SdW5uaW5nOiB0
ZXN0RGlzdGFudFBhcmVudAotUGFyZW50KCkKLUNoaWxkKCkKLUNoaWxkLnNob3coKQotT0sKLQot
UnVubmluZzogdGVzdEV2ZW50cwotUGFyZW50KCkKLUNoaWxkKCkKLVBhcmVudC5zaG93KCkKLSAg
UGFyZW50Lndhc1Nob3duKCkKLSAgUGFyZW50Lm9uUmVzaXplKCkKLVBhcmVudC5kb1Jlc2l6ZSgp
Ci0gIFBhcmVudC5vblJlc2l6ZSgpCi1DaGlsZC5zaG93KCkKLSAgQ2hpbGQud2FzU2hvd24oKQot
ICBDaGlsZC5vblJlc2l6ZSgpCi1QYXJlbnQuZG9SZXNpemUoKQotICBQYXJlbnQub25SZXNpemUo
KQotICBDaGlsZC5vblJlc2l6ZSgpCi1QYXJlbnQuZGV0YWNoKCkKLSAgQ2hpbGQud2lsbEhpZGUo
KQotICBQYXJlbnQud2lsbEhpZGUoKQotUGFyZW50LnNob3coKQotICBQYXJlbnQud2FzU2hvd24o
KQotICBQYXJlbnQub25SZXNpemUoKQotICBDaGlsZC53YXNTaG93bigpCi0gIENoaWxkLm9uUmVz
aXplKCkKLUNoaWxkLmRldGFjaCgpCi0gIENoaWxkLndpbGxIaWRlKCkKLVBhcmVudC5kZXRhY2go
KQotICBQYXJlbnQud2lsbEhpZGUoKQotCi1SdW5uaW5nOiB0ZXN0RXZlbnRzSGlkZU9uRGV0YWNo
Ci1QYXJlbnQoKQotQ2hpbGQoKQotUGFyZW50LnNob3coKQotICBQYXJlbnQud2FzU2hvd24oKQot
ICBQYXJlbnQub25SZXNpemUoKQotUGFyZW50LmRvUmVzaXplKCkKLSAgUGFyZW50Lm9uUmVzaXpl
KCkKLUNoaWxkLnNob3coKQotICBDaGlsZC53YXNTaG93bigpCi0gIENoaWxkLm9uUmVzaXplKCkK
LVBhcmVudC5kb1Jlc2l6ZSgpCi0gIFBhcmVudC5vblJlc2l6ZSgpCi0gIENoaWxkLm9uUmVzaXpl
KCkKLVBhcmVudC5kZXRhY2goKQotICBDaGlsZC53aWxsSGlkZSgpCi0gIFBhcmVudC53aWxsSGlk
ZSgpCi1QYXJlbnQuc2hvdygpCi0gIFBhcmVudC53YXNTaG93bigpCi0gIFBhcmVudC5vblJlc2l6
ZSgpCi0gIENoaWxkLndhc1Nob3duKCkKLSAgQ2hpbGQub25SZXNpemUoKQotQ2hpbGQuZGV0YWNo
KCkKLSAgQ2hpbGQud2lsbEhpZGUoKQotUGFyZW50LmRldGFjaCgpCi0gIFBhcmVudC53aWxsSGlk
ZSgpCi0KLVJ1bm5pbmc6IHRlc3RWaWV3Q291bnRlcgotUGFyZW50KCkKLVBhcmVudC5zaG93KCkK
LSAgUGFyZW50Lndhc1Nob3duKCkKLSAgUGFyZW50Lm9uUmVzaXplKCkKLUNoaWxkKCkKLUNoaWxk
LnNob3coKQotICBDaGlsZC53YXNTaG93bigpCi0gIENoaWxkLm9uUmVzaXplKCkKLSAgdmlldyBj
b3VudGVyOiAxCi1DaGlsZCAyKCkKLUNoaWxkIDIuc2hvdygpCi0gIENoaWxkIDIud2FzU2hvd24o
KQotICBDaGlsZCAyLm9uUmVzaXplKCkKLSAgdmlldyBjb3VudGVyOiAyCi1DaGlsZC5kZXRhY2go
KQotICBDaGlsZC53aWxsSGlkZSgpCi0gIHZpZXcgY291bnRlcjogMQotQ2hpbGQgMi5kZXRhY2go
KQotICBDaGlsZCAyLndpbGxIaWRlKCkKLSAgdmlldyBjb3VudGVyOiAwCi0KLVJ1bm5pbmc6IHRl
c3RSZW1vdmVDaGlsZAotUGFyZW50KCkKLVBhcmVudC5zaG93KCkKLSAgUGFyZW50Lndhc1Nob3du
KCkKLSAgUGFyZW50Lm9uUmVzaXplKCkKLUNoaWxkKCkKLUNoaWxkLnNob3coKQotICBDaGlsZC53
YXNTaG93bigpCi0gIENoaWxkLm9uUmVzaXplKCkKLUVycm9yOiBBdHRlbXB0IHRvIHJlbW92ZSBl
bGVtZW50IGNvbnRhaW5pbmcgdmlldyB2aWEgcmVndWxhciBET00gb3BlcmF0aW9uCi0KLVJ1bm5p
bmc6IHRlc3RJbXBsaWNpdFJlbW92ZUNoaWxkCi1QYXJlbnQoKQotQ2hpbGQoKQotQ2hpbGQuc2hv
dygpCi1FcnJvcjogQXR0ZW1wdCB0byByZW1vdmUgZWxlbWVudCBjb250YWluaW5nIHZpZXcgdmlh
IHJlZ3VsYXIgRE9NIG9wZXJhdGlvbgotCi1SdW5uaW5nOiB0ZXN0UmVtb3ZlQ2hpbGRyZW4KLVBh
cmVudCgpCi1DaGlsZCgpCi1DaGlsZC5zaG93KCkKLUVycm9yOiBBdHRlbXB0IHRvIHJlbW92ZSBl
bGVtZW50IGNvbnRhaW5pbmcgdmlldyB2aWEgcmVndWxhciBET00gb3BlcmF0aW9uCi0KLVJ1bm5p
bmc6IHRlc3RJbXBsaWNpdFJlbW92ZUNoaWxkcmVuCi1QYXJlbnQoKQotQ2hpbGQoKQotQ2hpbGQu
c2hvdygpCi1FcnJvcjogQXR0ZW1wdCB0byByZW1vdmUgZWxlbWVudCBjb250YWluaW5nIHZpZXcg
dmlhIHJlZ3VsYXIgRE9NIG9wZXJhdGlvbgotCi1SdW5uaW5nOiB0ZXN0U2hvd09uV2FzU2hvd24K
LVBhcmVudCgpCi1DaGlsZCgpCi1QYXJlbnQuc2hvdygpCi0gIFBhcmVudC53YXNTaG93bigpCi1D
aGlsZC5zaG93KCkKLSAgUGFyZW50Lm9uUmVzaXplKCkKLSAgQ2hpbGQud2FzU2hvd24oKQotICBD
aGlsZC5vblJlc2l6ZSgpCi1QYXJlbnQuZGV0YWNoKCkKLSAgQ2hpbGQud2lsbEhpZGUoKQotICBQ
YXJlbnQud2lsbEhpZGUoKQotCi1SdW5uaW5nOiB0ZXN0RGV0YWNoT25XYXNTaG93bgotUGFyZW50
KCkKLUNoaWxkKCkKLUNoaWxkLnNob3coKQotUGFyZW50LnNob3coKQotICBQYXJlbnQud2FzU2hv
d24oKQotQ2hpbGQuZGV0YWNoKCkKLSAgUGFyZW50Lm9uUmVzaXplKCkKLVBhcmVudC5kZXRhY2go
KQotICBQYXJlbnQud2lsbEhpZGUoKQotCi1SdW5uaW5nOiB0ZXN0U2hvd09uV2lsbEhpZGUKLVBh
cmVudCgpCi1DaGlsZCgpCi1QYXJlbnQuc2hvdygpCi0gIFBhcmVudC53YXNTaG93bigpCi0gIFBh
cmVudC5vblJlc2l6ZSgpCi1DaGlsZC5zaG93KCkKLSAgQ2hpbGQud2FzU2hvd24oKQotICBDaGls
ZC5vblJlc2l6ZSgpCi1QYXJlbnQuZGV0YWNoKCkKLSAgQ2hpbGQud2lsbEhpZGUoKQotICBQYXJl
bnQud2lsbEhpZGUoKQotQ2hpbGQuc2hvdygpCi0KLVJ1bm5pbmc6IHRlc3REZXRhY2hPbldpbGxI
aWRlCi1QYXJlbnQoKQotQ2hpbGQoKQotUGFyZW50LnNob3coKQotICBQYXJlbnQud2FzU2hvd24o
KQotICBQYXJlbnQub25SZXNpemUoKQotQ2hpbGQuc2hvdygpCi0gIENoaWxkLndhc1Nob3duKCkK
LSAgQ2hpbGQub25SZXNpemUoKQotUGFyZW50LmRldGFjaCgpCi0gIENoaWxkLndpbGxIaWRlKCkK
LSAgUGFyZW50LndpbGxIaWRlKCkKLUNoaWxkLmRldGFjaCgpCi0KLVJ1bm5pbmc6IHRlc3RTaG93
RGV0YWNoZXNGcm9tUHJldmlvdXMKLVBhcmVudDEoKQotUGFyZW50MigpCi1DaGlsZCgpCi1QYXJl
bnQxLnNob3coKQotICBQYXJlbnQxLndhc1Nob3duKCkKLSAgUGFyZW50MS5vblJlc2l6ZSgpCi1Q
YXJlbnQyLnNob3coKQotICBQYXJlbnQyLndhc1Nob3duKCkKLSAgUGFyZW50Mi5vblJlc2l6ZSgp
Ci1DaGlsZC5zaG93KCkKLSAgQ2hpbGQud2FzU2hvd24oKQotICBDaGlsZC5vblJlc2l6ZSgpCi1D
aGlsZC5zaG93KCkKLUNoaWxkLmRldGFjaCgpCi0gIENoaWxkLndpbGxIaWRlKCkKLSAgQ2hpbGQu
d2FzU2hvd24oKQotICBDaGlsZC5vblJlc2l6ZSgpCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXct
ZXZlbnRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwZDZmNjkuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwzMTUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBUZXN0Vmlldyh2aWV3TmFtZSkK
LSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7Ci0KLSAgICAgICAg
dGhpcy5fdmlld05hbWUgPSB2aWV3TmFtZTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQodGhpcy5fdmlld05hbWUgKyAiKCkiKTsKLSAgICB9Ci0KLSAgICBUZXN0Vmlldy5wcm90b3R5
cGUgPSB7Ci0gICAgICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRoaXMuX3ZpZXdOYW1lICsgIi5z
aG93KCkiKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNh
bGwodGhpcywgcGFyZW50RWxlbWVudCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZGV0YWNoOiBm
dW5jdGlvbigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KHRoaXMuX3ZpZXdOYW1lICsgIi5kZXRhY2goKSIpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LlZpZXcucHJvdG90eXBlLmRldGFjaC5jYWxsKHRoaXMpOwotICAgICAgICB9LAotCi0gICAgICAg
IGRvUmVzaXplOiBmdW5jdGlvbigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KHRoaXMuX3ZpZXdOYW1lICsgIi5kb1Jlc2l6ZSgpIik7Ci0gICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuZG9SZXNpemUuY2FsbCh0aGlzKTsKLSAgICAg
ICAgfSwKLQotICAgICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAiICsgdGhpcy5fdmlld05hbWUgKyAiLndh
c1Nob3duKCkiKTsKLSAgICAgICAgICAgIGlmICh0aGlzLnNob3dPbldhc1Nob3duKQotICAgICAg
ICAgICAgICAgIHRoaXMuc2hvd09uV2FzU2hvd24uc2hvdyh0aGlzLmVsZW1lbnQpOwotICAgICAg
ICAgICAgaWYgKHRoaXMuZGV0YWNoT25XYXNTaG93bikKLSAgICAgICAgICAgICAgICB0aGlzLmRl
dGFjaE9uV2FzU2hvd24uZGV0YWNoKCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgd2lsbEhpZGU6
IGZ1bmN0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIiAgIiArIHRoaXMuX3ZpZXdOYW1lICsgIi53aWxsSGlkZSgpIik7Ci0gICAgICAgICAgICBp
ZiAodGhpcy5zaG93T25XaWxsSGlkZSkKLSAgICAgICAgICAgICAgICB0aGlzLnNob3dPbldpbGxI
aWRlLnNob3codGhpcy5lbGVtZW50KTsKLSAgICAgICAgICAgIGlmICh0aGlzLmRldGFjaE9uV2ls
bEhpZGUpCi0gICAgICAgICAgICAgICAgdGhpcy5kZXRhY2hPbldpbGxIaWRlLmRldGFjaCgpOwot
ICAgICAgICB9LAotCi0gICAgICAgIG9uUmVzaXplOiBmdW5jdGlvbigpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICIgKyB0aGlzLl92aWV3TmFtZSAr
ICIub25SZXNpemUoKSIpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIFRlc3RWaWV3LnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7Ci0KLSAgICBJbnNw
ZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTaG93Vmlldyhu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdmlldyA9IG5ldyBUZXN0VmlldygiVmll
dyIpOwotICAgICAgICAgICAgdmlldy5zaG93KFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmVs
ZW1lbnQpOwotICAgICAgICAgICAgdmlldy5kZXRhY2goKTsKLSAgICAgICAgICAgIG5leHQoKTsK
LSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0QXBwZW5kVmlhRE9NKG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgdmFyIHZpZXcgPSBu
ZXcgVGVzdFZpZXcoIlZpZXciKTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKHZpZXcuZWxlbWVudCk7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZSk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEluc2Vy
dFZpYURPTShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAg
ICAgIHZhciB2aWV3ID0gbmV3IFRlc3RWaWV3KCJWaWV3Iik7Ci0gICAgICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5pbnNlcnRCZWZvcmUodmlldy5lbGVtZW50LCBudWxsKTsKLSAgICAgICAgICAg
IH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChl
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAg
ICAgICBmdW5jdGlvbiB0ZXN0QXR0YWNoVG9PcnBoYW5Ob2RlKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgdmFyIHZpZXcgPSBuZXcgVGVzdFZpZXco
IlZpZXciKTsKLSAgICAgICAgICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7Ci0gICAgICAgICAgICAgICAgdmlldy5zaG93KGRpdik7Ci0gICAgICAgICAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdEltbWVkaWF0ZVBhcmVudChuZXh0KQotICAgICAgICB7Ci0gICAgICAg
ICAgICB2YXIgcGFyZW50VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7Ci0gICAgICAgICAg
ICB2YXIgY2hpbGRWaWV3ID0gbmV3IFRlc3RWaWV3KCJDaGlsZCIpOwotICAgICAgICAgICAgY2hp
bGRWaWV3LnNob3cocGFyZW50Vmlldy5lbGVtZW50KTsKLSAgICAgICAgICAgIGlmIChjaGlsZFZp
ZXcuX3BhcmVudFZpZXcgPT09IHBhcmVudFZpZXcpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIk9LIik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxFRCIpOwotICAgICAgICAgICAgbmV4dCgpOwot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3REaXN0YW50UGFyZW50KG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJl
bnQiKTsKLSAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChkaXYpOwotICAg
ICAgICAgICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKLSAgICAgICAg
ICAgIGNoaWxkVmlldy5zaG93KGRpdik7Ci0KLSAgICAgICAgICAgIGlmIChjaGlsZFZpZXcuX3Bh
cmVudFZpZXcgPT09IHBhcmVudFZpZXcpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIk9LIik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxFRCIpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAg
ICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RFdmVudHMobmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgdmFyIHBhcmVudFZpZXcgPSBuZXcgVGVzdFZpZXcoIlBhcmVudCIpOwotICAgICAg
ICAgICAgcGFyZW50Vmlldy5tYXJrQXNSb290KCk7Ci0gICAgICAgICAgICB2YXIgY2hpbGRWaWV3
ID0gbmV3IFRlc3RWaWV3KCJDaGlsZCIpOwotICAgICAgICAgICAgcGFyZW50Vmlldy5zaG93KFdl
Ykluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmVsZW1lbnQpOwotCi0gICAgICAgICAgICBwYXJlbnRW
aWV3LmRvUmVzaXplKCk7Ci0gICAgICAgICAgICBjaGlsZFZpZXcuc2hvdyhwYXJlbnRWaWV3LmVs
ZW1lbnQpOwotICAgICAgICAgICAgcGFyZW50Vmlldy5kb1Jlc2l6ZSgpOwotICAgICAgICAgICAg
cGFyZW50Vmlldy5kZXRhY2goKTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuc2hvdyhXZWJJbnNw
ZWN0b3IuaW5zcGVjdG9yVmlldy5lbGVtZW50KTsKLSAgICAgICAgICAgIGNoaWxkVmlldy5kZXRh
Y2goKTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuZGV0YWNoKCk7Ci0gICAgICAgICAgICBuZXh0
KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEV2ZW50c0hpZGVPbkRldGFj
aChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgcGFyZW50VmlldyA9IG5ldyBUZXN0
VmlldygiUGFyZW50Iik7Ci0gICAgICAgICAgICB2YXIgY2hpbGRWaWV3ID0gbmV3IFRlc3RWaWV3
KCJDaGlsZCIpOwotICAgICAgICAgICAgY2hpbGRWaWV3LnNldEhpZGVPbkRldGFjaCgpOwotICAg
ICAgICAgICAgcGFyZW50Vmlldy5zaG93KFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmVsZW1l
bnQpOwotCi0gICAgICAgICAgICBwYXJlbnRWaWV3LmRvUmVzaXplKCk7Ci0gICAgICAgICAgICBj
aGlsZFZpZXcuc2hvdyhwYXJlbnRWaWV3LmVsZW1lbnQpOwotICAgICAgICAgICAgcGFyZW50Vmll
dy5kb1Jlc2l6ZSgpOwotICAgICAgICAgICAgcGFyZW50Vmlldy5kZXRhY2goKTsKLSAgICAgICAg
ICAgIHBhcmVudFZpZXcuc2hvdyhXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5lbGVtZW50KTsK
LSAgICAgICAgICAgIGNoaWxkVmlldy5kZXRhY2goKTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcu
ZGV0YWNoKCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdFZpZXdDb3VudGVyKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBw
YXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQiKTsKLSAgICAgICAgICAgIHBhcmVudFZp
ZXcuc2hvdyhXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5lbGVtZW50KTsKLQotICAgICAgICAg
ICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKLSAgICAgICAgICAgIGNo
aWxkVmlldy5zaG93KHBhcmVudFZpZXcuZWxlbWVudCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiICB2aWV3IGNvdW50ZXI6ICIgKyBwYXJlbnRWaWV3LmVsZW1lbnQuX192
aWV3Q291bnRlcik7Ci0KLSAgICAgICAgICAgIHZhciBjaGlsZFZpZXcyID0gbmV3IFRlc3RWaWV3
KCJDaGlsZCAyIik7Ci0gICAgICAgICAgICBjaGlsZFZpZXcyLnNob3cocGFyZW50Vmlldy5lbGVt
ZW50KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgIHZpZXcgY291bnRl
cjogIiArIHBhcmVudFZpZXcuZWxlbWVudC5fX3ZpZXdDb3VudGVyKTsKLQotICAgICAgICAgICAg
Y2hpbGRWaWV3LmRldGFjaCgpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiAgdmlldyBjb3VudGVyOiAiICsgcGFyZW50Vmlldy5lbGVtZW50Ll9fdmlld0NvdW50ZXIpOwot
Ci0gICAgICAgICAgICBjaGlsZFZpZXcyLmRldGFjaCgpOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIiAgdmlldyBjb3VudGVyOiAiICsgcGFyZW50Vmlldy5lbGVtZW50Ll9f
dmlld0NvdW50ZXIpOwotCi0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdFJlbW92ZUNoaWxkKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQiKTsKLSAgICAgICAgICAgIHBh
cmVudFZpZXcuc2hvdyhXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5lbGVtZW50KTsKLQotICAg
ICAgICAgICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKLSAgICAgICAg
ICAgIGNoaWxkVmlldy5zaG93KHBhcmVudFZpZXcuZWxlbWVudCk7Ci0gICAgICAgICAgICB0cnkg
ewotICAgICAgICAgICAgICAgIHBhcmVudFZpZXcuZWxlbWVudC5yZW1vdmVDaGlsZChjaGlsZFZp
ZXcuZWxlbWVudCk7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBu
ZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEltcGxpY2l0UmVtb3Zl
Q2hpbGQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHBhcmVudFZpZXcgPSBuZXcg
VGVzdFZpZXcoIlBhcmVudCIpOwotICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICAgICAgcGFyZW50Vmlldy5lbGVtZW50LmFwcGVuZENo
aWxkKGRpdik7Ci0KLSAgICAgICAgICAgIHZhciBjaGlsZFZpZXcgPSBuZXcgVGVzdFZpZXcoIkNo
aWxkIik7Ci0gICAgICAgICAgICBjaGlsZFZpZXcuc2hvdyhkaXYpOwotCi0gICAgICAgICAgICB0
cnkgewotICAgICAgICAgICAgICAgIHBhcmVudFZpZXcuZWxlbWVudC5yZW1vdmVDaGlsZChkaXYp
OwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbmV4dCgpOwotICAg
ICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmVDaGlsZHJlbihuZXh0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgcGFyZW50VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50
Iik7Ci0gICAgICAgICAgICB2YXIgY2hpbGRWaWV3ID0gbmV3IFRlc3RWaWV3KCJDaGlsZCIpOwot
ICAgICAgICAgICAgY2hpbGRWaWV3LnNob3cocGFyZW50Vmlldy5lbGVtZW50KTsKLSAgICAgICAg
ICAgIHBhcmVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKSk7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHBhcmVudFZpZXcu
ZWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGUpOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RJ
bXBsaWNpdFJlbW92ZUNoaWxkcmVuKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBw
YXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQiKTsKLSAgICAgICAgICAgIHZhciBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcu
ZWxlbWVudC5hcHBlbmRDaGlsZChkaXYpOwotCi0gICAgICAgICAgICB2YXIgY2hpbGRWaWV3ID0g
bmV3IFRlc3RWaWV3KCJDaGlsZCIpOwotICAgICAgICAgICAgY2hpbGRWaWV3LnNob3coZGl2KTsK
LQotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBwYXJlbnRWaWV3LmVsZW1lbnQu
cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2hvd09uV2Fz
U2hvd24obmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHBhcmVudFZpZXcgPSBuZXcg
VGVzdFZpZXcoIlBhcmVudCIpOwotICAgICAgICAgICAgcGFyZW50Vmlldy5zaG93T25XYXNTaG93
biA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuc2hvdyhX
ZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5lbGVtZW50KTsKLSAgICAgICAgICAgIHBhcmVudFZp
ZXcuZGV0YWNoKCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gdGVzdERldGFjaE9uV2FzU2hvd24obmV4dCkKLSAgICAgICAgewotICAgICAgICAg
ICAgdmFyIHBhcmVudFZpZXcgPSBuZXcgVGVzdFZpZXcoIlBhcmVudCIpOwotICAgICAgICAgICAg
dmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKLSAgICAgICAgICAgIGNoaWxk
Vmlldy5zaG93KHBhcmVudFZpZXcuZWxlbWVudCk7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LmRl
dGFjaE9uV2FzU2hvd24gPSBjaGlsZFZpZXc7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LnNob3co
V2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuZWxlbWVudCk7Ci0gICAgICAgICAgICBwYXJlbnRW
aWV3LmRldGFjaCgpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RTaG93T25XaWxsSGlkZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICB2YXIgcGFyZW50VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7Ci0gICAgICAgICAgICB2
YXIgY2hpbGRWaWV3ID0gbmV3IFRlc3RWaWV3KCJDaGlsZCIpOwotICAgICAgICAgICAgcGFyZW50
Vmlldy5zaG93KFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmVsZW1lbnQpOwotICAgICAgICAg
ICAgY2hpbGRWaWV3LnNob3cocGFyZW50Vmlldy5lbGVtZW50KTsKLSAgICAgICAgICAgIHBhcmVu
dFZpZXcuc2hvd09uV2lsbEhpZGUgPSBjaGlsZFZpZXc7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3
LmRldGFjaCgpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1
bmN0aW9uIHRlc3REZXRhY2hPbldpbGxIaWRlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQiKTsKLSAgICAgICAgICAgIHZh
ciBjaGlsZFZpZXcgPSBuZXcgVGVzdFZpZXcoIkNoaWxkIik7Ci0gICAgICAgICAgICBwYXJlbnRW
aWV3LnNob3coV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuZWxlbWVudCk7Ci0gICAgICAgICAg
ICBjaGlsZFZpZXcuc2hvdyhwYXJlbnRWaWV3LmVsZW1lbnQpOwotICAgICAgICAgICAgcGFyZW50
Vmlldy5kZXRhY2hPbldpbGxIaWRlID0gY2hpbGRWaWV3OwotICAgICAgICAgICAgcGFyZW50Vmll
dy5kZXRhY2goKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0ZXN0U2hvd0RldGFjaGVzRnJvbVByZXZpb3VzKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHZhciBwYXJlbnRWaWV3MSA9IG5ldyBUZXN0VmlldygiUGFyZW50MSIpOwotICAg
ICAgICAgICAgdmFyIHBhcmVudFZpZXcyID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQyIik7Ci0gICAg
ICAgICAgICB2YXIgY2hpbGRWaWV3ID0gbmV3IFRlc3RWaWV3KCJDaGlsZCIpOwotICAgICAgICAg
ICAgcGFyZW50VmlldzEuc2hvdyhXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5lbGVtZW50KTsK
LSAgICAgICAgICAgIHBhcmVudFZpZXcyLnNob3coV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcu
ZWxlbWVudCk7Ci0gICAgICAgICAgICBjaGlsZFZpZXcuc2hvdyhwYXJlbnRWaWV3MS5lbGVtZW50
KTsKLSAgICAgICAgICAgIGNoaWxkVmlldy5zaG93KHBhcmVudFZpZXcyLmVsZW1lbnQpOwotICAg
ICAgICAgICAgbmV4dCgpOwotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRoaXMgdGVzdHMgdGhhdCBl
dmVudHMgYXJlIHByb3Blcmx5IHByb3BhZ2F0ZWQgdGhyb3VnaCBWaWV3IGhpZXJhcmNoeS4KLTwv
cD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3dvcmtzcGFjZS1tYXBwaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci93
b3Jrc3BhY2UtbWFwcGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDViMTRjMzQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFj
ZS1tYXBwaW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRl
c3RzIHdvcmtzcGFjZSBtYXBwaW5ncwotCi0gICAgdXJsIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20v
aW5kZXguaHRtbCBpcyBub3QgbWFwcGVkLgotICAgIHVybCBodHRwOi8vbG9jYWxob3N0L2luZGV4
Lmh0bWwgaXMgbWFwcGVkLgotICAgIHVybCBodHRwOi8vbG9jYWxob3N0L2Zvby9pbmRleC5odG1s
IGlzIG1hcHBlZC4KLSAgICB1cmwgaHR0cHM6Ly9sb2NhbGhvc3QvaW5kZXguaHRtbCBpcyBub3Qg
bWFwcGVkLgotCi0gICAgdXJsIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbCBpcyBt
YXBwZWQgdG8gaHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1sCi0gICAgdXJsIGh0dHA6
Ly9sb2NhbGhvc3QvaW5kZXguaHRtbCBpcyBtYXBwZWQgdG8gZmlsZXN5c3RlbTovdmFyL3d3dy9s
b2NhbGhvc3QvaW5kZXguaHRtbAotICAgIHVybCBodHRwOi8vbG9jYWxob3N0L2Zvby9pbmRleC5o
dG1sIGlzIG1hcHBlZCB0byBudWxsCi0gICAgdXJsIGh0dHBzOi8vbG9jYWxob3N0L2luZGV4Lmh0
bWwgaXMgbWFwcGVkIHRvIGh0dHBzOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwKLQotICAgIHBhdGgg
L2hvbWUvZXhhbXBsZS5jb20vZm9vL2luZGV4Lmh0bWwgaXMgbWFwcGVkIHRvIGh0dHA6Ly93d3cu
ZXhhbXBsZS5jb20vZm9vL2luZGV4Lmh0bWwKLSAgICBwYXRoIC9ob21lL2V4YW1wbGUuY29tL2lu
ZGV4Lmh0bWwgaXMgbWFwcGVkIHRvIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbAot
ICAgIHBhdGggL3Zhci93d3cvbG9jYWxob3N0L2luZGV4Lmh0bWwgaXMgbWFwcGVkIHRvIGh0dHA6
Ly9sb2NhbGhvc3QvaW5kZXguaHRtbAotICAgIHBhdGggL3Zhci93d3cvbG9jYWxob3N0L2Zvby9p
bmRleC5odG1sIGlzIG1hcHBlZCB0byBodHRwOi8vbG9jYWxob3N0L2Zvby9pbmRleC5odG1sCi0g
ICAgcGF0aCAvaG9tZS9mb28vaW5kZXguaHRtbCBpcyBtYXBwZWQgdG8gbnVsbAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLW1hcHBpbmcuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtbWFwcGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3ZTZmOTgxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci93b3Jrc3BhY2UtbWFwcGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA3ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHt9OwotICAgIHZhciBwcm9qZWN0RGVs
ZWdhdGVzID0ge307Ci0gICAgZnVuY3Rpb24gY3JlYXRlVUlTb3VyY2VDb2RlKHByb2plY3RJZCwg
cGF0aCkKLSAgICB7Ci0gICAgICAgIHZhciBwcm9qZWN0RGVsZWdhdGUgPSBwcm9qZWN0RGVsZWdh
dGVzW3Byb2plY3RJZF07Ci0gICAgICAgIGlmICghcHJvamVjdERlbGVnYXRlc1twcm9qZWN0SWRd
KSB7Ci0gICAgICAgICAgICBwcm9qZWN0RGVsZWdhdGUgPSBuZXcgTW9ja1Byb2plY3REZWxlZ2F0
ZShwcm9qZWN0SWQpOwotICAgICAgICAgICAgd29ya3NwYWNlLmFkZFByb2plY3QocHJvamVjdERl
bGVnYXRlKTsKLSAgICAgICAgICAgIHByb2plY3REZWxlZ2F0ZXNbcHJvamVjdElkXSA9IHByb2pl
Y3REZWxlZ2F0ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHByb2plY3REZWxlZ2F0ZS5hZGRVSVNv
dXJjZUNvZGUocGF0aCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gTW9ja1Byb2plY3REZWxlZ2F0
ZShpZCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2lkID0gaWQ7Ci0gICAgfQotCi0gICAgTW9ja1By
b2plY3REZWxlZ2F0ZS5wcm90b3R5cGUgPSB7Ci0gICAgICAgIGlkOiBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgIHJldHVybiB0aGlzLl9pZDsKLSAgICAgICAgfSwKLQotICAgICAgICBhZGRVSVNv
dXJjZUNvZGU6IGZ1bmN0aW9uKHBhdGgpIHsKLSAgICAgICAgICAgIHZhciBmaWxlRGVzY3JpcHRv
ciA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZURlc2NyaXB0b3IocGF0aC5zcGxpdCgiLyIpLCBwYXRo
LCBwYXRoLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsIHRydWUsIGZhbHNlKTsK
LSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Q
cm9qZWN0RGVsZWdhdGUuRXZlbnRzLkZpbGVBZGRlZCwgZmlsZURlc2NyaXB0b3IpOwotICAgICAg
ICB9LAotCi0gICAgICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUK
LSAgICB9OwotCi0gICAgdmFyIGZpbGVNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlTWFw
cGluZygpOwotICAgIHZhciBtYXBwaW5nRW50cmllcyA9IFtdOwotICAgIG1hcHBpbmdFbnRyaWVz
LnB1c2gobmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeSgiaHR0cDovL2xvY2FsaG9z
dC8iLCAiL3Zhci93d3cvbG9jYWxob3N0LyIpKTsKLSAgICBtYXBwaW5nRW50cmllcy5wdXNoKG5l
dyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnkoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20v
IiwgIi9ob21lL2V4YW1wbGUuY29tLyIpKTsKLSAgICBtYXBwaW5nRW50cmllcy5wdXNoKG5ldyBX
ZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnkoImh0dHA6Ly93d3cuZm9vLmNvbS8iLCAiL2Jh
ci8iKSk7Ci0gICAgZmlsZU1hcHBpbmcuc2V0TWFwcGluZ0VudHJpZXMobWFwcGluZ0VudHJpZXMp
OwotCi0gICAgdmFyIGZpbGVTeXN0ZW1NYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlU3lz
dGVtTWFwcGluZ0ltcGwoKTsKLSAgICB2YXIgZmlsZVN5c3RlbVBhdGggPSAiL3Zhci93d3ciOwot
ICAgIHZhciBwcm9qZWN0SWQgPSBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVByb2plY3REZWxlZ2F0
ZS5wcm9qZWN0SWQoZmlsZVN5c3RlbVBhdGgpOwotICAgIGZpbGVTeXN0ZW1NYXBwaW5nLmFkZEZp
bGVTeXN0ZW1NYXBwaW5nKCIvdmFyL3d3dyIpOwotCi0gICAgdmFyIHdvcmtzcGFjZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuV29ya3NwYWNlKGZpbGVNYXBwaW5nLCBmaWxlU3lzdGVtTWFwcGluZyk7Ci0K
LSAgICBmdW5jdGlvbiBkdW1wSGFzTWFwcGluZ0ZvclVSTCh1cmwpCi0gICAgewotICAgICAgICB2
YXIgcmVzdWx0ID0gd29ya3NwYWNlLmhhc01hcHBpbmdGb3JVUkwodXJsKQotICAgICAgICBpZiAo
cmVzdWx0KQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICB1cmwgIiAr
IHVybCArICIgaXMgbWFwcGVkLiIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiICAgIHVybCAiICsgdXJsICsgIiBpcyBub3QgbWFwcGVkLiIpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1bXBVSVNvdXJjZUNvZGVGb3JVUkwodXJsKQotICAgIHsK
LSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHdvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkwo
dXJsKQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHVybCAiICsgdXJsICsg
IiBpcyBtYXBwZWQgdG8gIiArICh1aVNvdXJjZUNvZGUgPyB1aVNvdXJjZUNvZGUudXJpKCkgOiBu
dWxsKSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZHVtcFVSTEZvclBhdGgocGF0aCkKLSAgICB7
Ci0gICAgICAgIHZhciB1cmwgPSB3b3Jrc3BhY2UudXJsRm9yUGF0aChwYXRoKQotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHBhdGggIiArIHBhdGggKyAiIGlzIG1hcHBlZCB0
byAiICsgKHVybCA/IHVybCA6IG51bGwpKTsKLSAgICB9Ci0gICAgCi0gICAgY3JlYXRlVUlTb3Vy
Y2VDb2RlKHByb2plY3RJZCwgImxvY2FsaG9zdC9pbmRleC5odG1sIik7Ci0KLSAgICBjcmVhdGVV
SVNvdXJjZUNvZGUoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLCAiaW5kZXguaHRtbCIpOwotICAg
IGNyZWF0ZVVJU291cmNlQ29kZSgiaHR0cDovL2xvY2FsaG9zdCIsICJpbmRleC5odG1sIik7Ci0g
ICAgY3JlYXRlVUlTb3VyY2VDb2RlKCJodHRwOi8vbG9jYWxob3N0IiwgImZvby9pbmRleC5odG1s
Iik7Ci0gICAgY3JlYXRlVUlTb3VyY2VDb2RlKCJodHRwczovL2xvY2FsaG9zdCIsICJpbmRleC5o
dG1sIik7Ci0KLSAgICBkdW1wSGFzTWFwcGluZ0ZvclVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNv
bS9pbmRleC5odG1sIik7Ci0gICAgZHVtcEhhc01hcHBpbmdGb3JVUkwoImh0dHA6Ly9sb2NhbGhv
c3QvaW5kZXguaHRtbCIpOwotICAgIGR1bXBIYXNNYXBwaW5nRm9yVVJMKCJodHRwOi8vbG9jYWxo
b3N0L2Zvby9pbmRleC5odG1sIik7Ci0gICAgZHVtcEhhc01hcHBpbmdGb3JVUkwoImh0dHBzOi8v
bG9jYWxob3N0L2luZGV4Lmh0bWwiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7
Ci0KLSAgICBkdW1wVUlTb3VyY2VDb2RlRm9yVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2lu
ZGV4Lmh0bWwiKTsKLSAgICBkdW1wVUlTb3VyY2VDb2RlRm9yVVJMKCJodHRwOi8vbG9jYWxob3N0
L2luZGV4Lmh0bWwiKTsKLSAgICBkdW1wVUlTb3VyY2VDb2RlRm9yVVJMKCJodHRwOi8vbG9jYWxo
b3N0L2Zvby9pbmRleC5odG1sIik7Ci0gICAgZHVtcFVJU291cmNlQ29kZUZvclVSTCgiaHR0cHM6
Ly9sb2NhbGhvc3QvaW5kZXguaHRtbCIpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIi
KTsKLQotICAgIGR1bXBVUkxGb3JQYXRoKCIvaG9tZS9leGFtcGxlLmNvbS9mb28vaW5kZXguaHRt
bCIpOwotICAgIGR1bXBVUkxGb3JQYXRoKCIvaG9tZS9leGFtcGxlLmNvbS9pbmRleC5odG1sIik7
Ci0gICAgZHVtcFVSTEZvclBhdGgoIi92YXIvd3d3L2xvY2FsaG9zdC9pbmRleC5odG1sIik7Ci0g
ICAgZHVtcFVSTEZvclBhdGgoIi92YXIvd3d3L2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbCIpOwot
ICAgIGR1bXBVUkxGb3JQYXRoKCIvaG9tZS9mb28vaW5kZXguaHRtbCIpOwotCi0gICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgd29ya3NwYWNlIG1hcHBpbmdzPC9wPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMS9pbnNw
ZWN0b3IvY29uc29sZS9jb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azEvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29s
ZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDkxY2M2ZjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsLXdrMS9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1l
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDExOiBbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjog
W29iamVjdCBPYmplY3RdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IFtvYmplY3QgT2JqZWN0
XQotVGVzdHMgdGhhdCB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gaW52b2tlZCBhcyBvYmplY3Qg
Y29uc3RydWN0b3Igd2lsbCBiZSBkaXNwbGF5ZWQgYXMgaXRzIHR5cGUgaW4gdGhlIGZyb250LWVu
ZC4gQnVnIDUwMDYzLgotCi1QYXJlbnQge30gY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFt
ZS5odG1sOjExCi1QYXJlbnQge30gY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS5odG1s
OjEyCi1PYmplY3Qge30gY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS5odG1sOjEzCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsLXdrMi9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVy
cm9ycy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkYzQyMjMu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw4ICswLDAgQEAKLVRlc3RzIHRoYXQgZXJyb3JzIHRvIGxvYWQgYSByZXNvdXJjZSBj
YXVzZSBlcnJvciBtZXNzYWdlcyB0byBiZSBsb2dnZWQgdG8gY29uc29sZS4KLQotCi1HRVQgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9taXNzaW5nLmNzcyA0MDQgKE5vdCBGb3VuZCkg
Y29uc29sZS1yZXNvdXJjZS1lcnJvcnMtaWZyYW1lLmh0bWw6MyBjb25zb2xlLW1lc3NhZ2UgY29u
c29sZS1lcnJvci1sZXZlbAotR0VUIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Ivbm9u
LWV4aXN0ZW50LWlmcmFtZS5odG1sIDQwNCAoTm90IEZvdW5kKSBub24tZXhpc3RlbnQtaWZyYW1l
Lmh0bWw6MSBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1lcnJvci1sZXZlbAotR0VUIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Ivbm9uLWV4aXN0ZW50LXNjcmlwdC5qcyA0MDQgKE5vdCBG
b3VuZCkgY29uc29sZS1yZXNvdXJjZS1lcnJvcnMtaWZyYW1lLmh0bWw6NCBjb25zb2xlLW1lc3Nh
Z2UgY29uc29sZS1lcnJvci1sZXZlbAotR0VUIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0
b3Ivbm9uLWV4aXN0ZW50LXhociA0MDQgKE5vdCBGb3VuZCkgW25hdGl2ZSBjb2RlXToxc2VuZCBb
bmF0aXZlIGNvZGVdOjFsb2FkWEhSIGNvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLmh0bWw6MThwZXJm
b3JtQWN0aW9ucyBjb25zb2xlLXJlc291cmNlLWVycm9ycy5odG1sOjEwZXZhbCBjb2RlZXZhbCBb
bmF0aXZlIGNvZGVdOjFfZXZhbHVhdGVPbl9ldmFsdWF0ZUFuZFdyYXBldmFsdWF0ZSBjb25zb2xl
LW1lc3NhZ2UgY29uc29sZS1lcnJvci1sZXZlbAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDE1NTdhNmEuLjZiYWQ4YmMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMzksMTEgKzIzOSw2IEBAIGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLW5vLWF1dGhvcml6YXRpb24uaHRtbAogaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9sb2dvdXQuaHRtbAogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9yZWRpcmVjdC1jcm9zcy1vcmlnaW4tdHJpcG1pbmUuaHRtbAogCi0jIFNraXBwaW5nIHRo
ZSB0ZXN0cyBmb3IgdGhlIG9sZCBpbnNwZWN0b3IgVUkKLXdlYmtpdC5vcmcvYi8xMjEwOTYgaW5z
cGVjdG9yIFsgU2tpcCBdCi1odHRwL3Rlc3RzL2luc3BlY3RvciBbIFNraXAgXQotaHR0cC90ZXN0
cy9pbnNwZWN0b3ItZW5hYmxlZCBbIFNraXAgXQotCiAjIFRoZXJlIGFyZSBubyBleHBlY3RlZCBy
ZXN1bHQgc2V0IHlldC4KIGZhc3QvZG9tL3J0bC1zY3JvbGwtdG8tbGVmdG1vc3QtYW5kLXJlc2l6
ZS5odG1sCiAKQEAgLTI3MCw3ICsyNjUsNiBAQCB3ZWJraXQub3JnL2IvOTkwOTYgZmFzdC9jYW52
YXMvd2ViZ2wvYXJyYXlidWZmZXItdHJhbnNmZXItb2YtY29udHJvbC5odG1sIFsgRmFpbAogCiAj
IEluZGV4ZWREQiBpcyBvbiByZWZhY3RvcmluZy9yZWZyZXNoaW5nLCBzbyB0aGUgdGVzdHMgYXJl
IHF1aXRlIHVuc3RhYmxlIGF0IHRoaXMgcG9pbnQuCiB3ZWJraXQub3JnL2IvODc2NjEgc3RvcmFn
ZS9pbmRleGVkZGIgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi84NzY2MSBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbmRleGVkZGIgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi84NzY2MSBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC5odG1sIFsgU2tpcCBdCiB3ZWJr
aXQub3JnL2IvODc2NjEgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRi
Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi84NzY2MSBodHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbCBbIFNraXAgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUtcmVzb3VyY2UtZXJyb3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyNzE0Y2YuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtcmVz
b3VyY2UtZXJyb3JzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAot
VGVzdHMgdGhhdCBlcnJvcnMgdG8gbG9hZCBhIHJlc291cmNlIGNhdXNlIGVycm9yIG1lc3NhZ2Vz
IHRvIGJlIGxvZ2dlZCB0byBjb25zb2xlLgotCi0KLUdFVCBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL21pc3NpbmcuY3NzIDQwNCAoTm90IEZvdW5kKSBjb25zb2xlLXJlc291cmNlLWVy
cm9ycy1pZnJhbWUuaHRtbDozIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWVycm9yLWxldmVsCi1H
RVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9ub24tZXhpc3RlbnQtaWZyYW1lLmh0
bWwgNDA0IChOb3QgRm91bmQpIG5vbi1leGlzdGVudC1pZnJhbWUuaHRtbDoxIGNvbnNvbGUtbWVz
c2FnZSBjb25zb2xlLWVycm9yLWxldmVsCi1HRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3Bl
Y3Rvci9ub24tZXhpc3RlbnQtc2NyaXB0LmpzIDQwNCAoTm90IEZvdW5kKSBjb25zb2xlLXJlc291
cmNlLWVycm9ycy1pZnJhbWUuaHRtbDo0IGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWVycm9yLWxl
dmVsCi1HRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9ub24tZXhpc3RlbnQteGhy
IDQwNCAoTm90IEZvdW5kKSBbbmF0aXZlIGNvZGVdOjFzZW5kIFtuYXRpdmUgY29kZV06MWxvYWRY
SFIgY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbDoxOHBlcmZvcm1BY3Rpb25zIGNvbnNvbGUt
cmVzb3VyY2UtZXJyb3JzLmh0bWw6MTBldmFsIGNvZGVldmFsIFtuYXRpdmUgY29kZV06MShhbm9u
eW1vdXMgZnVuY3Rpb24pX2V2YWx1YXRlT25fZXZhbHVhdGVBbmRXcmFwZXZhbHVhdGUgY29uc29s
ZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtd2Vic29ja2V0LWVycm9y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLXdlYnNvY2tldC1lcnJvci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGQ5OThiMzUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtd2Vic29ja2V0LWVycm9yLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAzMjogdGVzdEROU0xvb2t1cDogVGVzdCBzdGFydGVkLgotQ09OU09MRSBNRVNTQUdFOiBX
ZWJTb2NrZXQgbmV0d29yayBlcnJvcjogRXJyb3IgcmVzb2x2aW5nICdub25leGlzdGVudC5kb21h
aW4uaW52YWxpZCc6IE5hbWUgb3Igc2VydmljZSBub3Qga25vd24KLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA0MzogdGVzdEROU0xvb2t1cDogb25jbG9zZSBpcyBjYWxsZWQuCi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgNTA6IHRlc3RTU0xDZXJ0aWZpY2F0ZTogVGVzdCBzdGFydGVkLgotQ09OU09MRSBN
RVNTQUdFOiBXZWJTb2NrZXQgbmV0d29yayBlcnJvcjogVW5hY2NlcHRhYmxlIFRMUyBjZXJ0aWZp
Y2F0ZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY0OiB0ZXN0U1NMQ2VydGlmaWNhdGU6IG9uY2xv
c2UgaXMgY2FsbGVkLgotV2ViU29ja2V0J3MgbmV0d29yayBlcnJvcnMgc2hvdWxkIGJlIGxvZ2dl
ZCB0byBjb25zb2xlLgotCi10ZXN0RE5TTG9va3VwOiBUZXN0IHN0YXJ0ZWQuIGNvbnNvbGUtd2Vi
c29ja2V0LWVycm9yLmh0bWw6MzIKLVdlYlNvY2tldCBuZXR3b3JrIGVycm9yOiBFcnJvciByZXNv
bHZpbmcgJ25vbmV4aXN0ZW50LmRvbWFpbi5pbnZhbGlkJzogTmFtZSBvciBzZXJ2aWNlIG5vdCBr
bm93biBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2NvbnNvbGUtd2Vic29ja2V0LWVy
cm9yLmh0bWwKLXRlc3RETlNMb29rdXA6IG9uY2xvc2UgaXMgY2FsbGVkLiBjb25zb2xlLXdlYnNv
Y2tldC1lcnJvci5odG1sOjQzCi10ZXN0U1NMQ2VydGlmaWNhdGU6IFRlc3Qgc3RhcnRlZC4gY29u
c29sZS13ZWJzb2NrZXQtZXJyb3IuaHRtbDo1MAotV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IFVu
YWNjZXB0YWJsZSBUTFMgY2VydGlmaWNhdGUgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9jb25zb2xlLXdlYnNvY2tldC1lcnJvci5odG1sCi10ZXN0U1NMQ2VydGlmaWNhdGU6IG9uY2xv
c2UgaXMgY2FsbGVkLiBjb25zb2xlLXdlYnNvY2tldC1lcnJvci5odG1sOjY0Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxp
bmUtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9pbnNwZWN0b3Iv
Y29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMWExYTMyYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTIyNTogVGhl
IGNvbnNvbGUgZnVuY3Rpb24gJCgpIGhhcyBjaGFuZ2VkIGZyb20gJD1nZXRFbGVtZW50QnlJZChp
ZCkgdG8gJD1xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKS4gWW91IG1pZ2h0IHRyeSAkKCIjJXMiKQot
VGVzdHMgdGhhdCBjb21tYW5kIGxpbmUgYXBpIHdvcmtzLgotCi0KLQotU3RyaW5nKCQwKQotIltv
YmplY3QgSFRNTFBhcmFncmFwaEVsZW1lbnRdIgotCi0KLSQzCi11bmRlZmluZWQKLQotCi1TdHJp
bmcoa2V5cyhbMyw0XSkpCi0iMCwxIgotCi0KLVN0cmluZyh2YWx1ZXMoWzMsNF0pKQotIjMsNCIK
LQotCi1TdHJpbmcoJCgnI2ZvbycpKQotIltvYmplY3QgSFRNTFBhcmFncmFwaEVsZW1lbnRdIgot
Ci0KLVN0cmluZygkKCcjZm9vJywgZG9jdW1lbnQuYm9keSkpCi0iW29iamVjdCBIVE1MUGFyYWdy
YXBoRWxlbWVudF0iCi0KLQotU3RyaW5nKCQoJyNmb28nLCAnbm9uLW5vZGUnKSkKLSJbb2JqZWN0
IEhUTUxQYXJhZ3JhcGhFbGVtZW50XSIKLQotCi1TdHJpbmcoJCgnI2ZvbycsICQoJyNiYXInKSkp
Ci0ibnVsbCIKLQotCi1TdHJpbmcoJCQoJ3AjZm9vJykpCi0iW29iamVjdCBOb2RlTGlzdF0iCi0K
LQotU3RyaW5nKCQkKCdwI2ZvbycsIGRvY3VtZW50LmJvZHkpKQotIltvYmplY3QgTm9kZUxpc3Rd
IgotCi0KLVN0cmluZygkKCdmb28nKSkKLVRoZSBjb25zb2xlIGZ1bmN0aW9uICQoKSBoYXMgY2hh
bmdlZCBmcm9tICQ9Z2V0RWxlbWVudEJ5SWQoaWQpIHRvICQ9cXVlcnlTZWxlY3RvcihzZWxlY3Rv
cikuIFlvdSBtaWdodCB0cnkgJCgiI2ZvbyIpCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjZWl2ZS1yZXNwb25zZS1l
dmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLXJlY2VpdmUtcmVzcG9uc2UtZXZlbnQtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MmQ3NTQ3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjZWl2ZS1yZXNw
b25zZS1ldmVudC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1U
ZXN0cyB0aGUgVGltZWxpbmUgQVBJIGluc3RydW1lbnRhdGlvbiBvZiBhIFNlbmRSZXF1ZXN0LCBS
ZWNlaXZlUmVzcG9uc2UgZXRjLgotCi1GdW5jdGlvbkNhbGwKLUZ1bmN0aW9uQ2FsbAotUmVzb3Vy
Y2VTZW5kUmVxdWVzdAotICAgIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlCi0gICAgUmVzb3VyY2VS
ZWNlaXZlZERhdGEKLSAgICBSZXNvdXJjZVJlY2VpdmVkRGF0YQotICAgIFJlc291cmNlRmluaXNo
Ci1FdmVudERpc3BhdGNoCi0gICAgRnVuY3Rpb25DYWxsCi1SZXNvdXJjZVNlbmRSZXF1ZXN0Ci0g
ICAgUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2UKLSAgICBSZXNvdXJjZVJlY2VpdmVkRGF0YQotICAg
IFJlc291cmNlUmVjZWl2ZWREYXRhCi0gICAgUmVzb3VyY2VGaW5pc2gKLUV2ZW50RGlzcGF0Y2gK
LSAgICBGdW5jdGlvbkNhbGwKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBiYzc0ZTJjLi5hNGFlZTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTA0OCwxMSArMTA0OCw3IEBAIHdlYmtpdC5vcmcvYi8zNjYy
NyBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtYWZ0ZXItbW91c2Utc2VsZWN0aW9uLmh0bWwgWyBG
YWlsdXJlCiAjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxpdHkgdG8gRHVtcFJlbmRlclRyZWUgdG8g
aGFuZGxlIHNjcm9sbGJhciBwb2xpY3kgY2hhbmdlcwogQnVnKEdUSykgZmFzdC9vdmVyZmxvdy9z
Y3JvbGxiYXItcmVzdG9yZWQtYW5kLXRoZW4tbG9ja2VkLmh0bWwgWyBGYWlsdXJlIF0KIAotIyBT
a2lwcGluZyB0aGUgdGVzdHMgZm9yIHRoZSBvbGQgaW5zcGVjdG9yIFVJCi13ZWJraXQub3JnL2Iv
ODMxNzQgaW5zcGVjdG9yIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvODMxNzQgaW5zcGVjdG9yLXBy
b3RvY29sL2hlYXAtcHJvZmlsZXIgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi84MzE3NCBodHRwL3Rl
c3RzL2luc3BlY3RvciBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzgzMTc0IGh0dHAvdGVzdHMvaW5z
cGVjdG9yLWVuYWJsZWQgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzM3NjEzIHdlYmtpdC5vcmcv
Yi8yMDAxMSBwcmludGluZyBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzM3NjEzIGVkaXRpbmcvZXhl
Y0NvbW1hbmQvcHJpbnQuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtd2Vic29ja2V0LWVycm9yLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9jb25zb2xlLXdlYnNvY2tldC1lcnJvci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDI3MTYwZmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtd2Vic29ja2V0LWVycm9yLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAzMjogdGVzdEROU0xvb2t1cDogVGVzdCBzdGFydGVkLgotQ09OU09MRSBNRVNTQUdFOiBXZWJT
b2NrZXQgbmV0d29yayBlcnJvcjogRXJyb3IgcmVzb2x2aW5nICdub25leGlzdGVudC5kb21haW4u
aW52YWxpZCc6IE5vIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIGhvc3RuYW1lCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgNDM6IHRlc3RETlNMb29rdXA6IG9uY2xvc2UgaXMgY2FsbGVkLgotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDUwOiB0ZXN0U1NMQ2VydGlmaWNhdGU6IFRlc3Qgc3RhcnRlZC4KLUNP
TlNPTEUgTUVTU0FHRTogV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IFVuYWNjZXB0YWJsZSBUTFMg
Y2VydGlmaWNhdGUKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2NDogdGVzdFNTTENlcnRpZmljYXRl
OiBvbmNsb3NlIGlzIGNhbGxlZC4KLVdlYlNvY2tldCdzIG5ldHdvcmsgZXJyb3JzIHNob3VsZCBi
ZSBsb2dnZWQgdG8gY29uc29sZS4KLQotdGVzdEROU0xvb2t1cDogVGVzdCBzdGFydGVkLiBjb25z
b2xlLXdlYnNvY2tldC1lcnJvci5odG1sOjMyCi1XZWJTb2NrZXQgbmV0d29yayBlcnJvcjogRXJy
b3IgcmVzb2x2aW5nICdub25leGlzdGVudC5kb21haW4uaW52YWxpZCc6IE5vIGFkZHJlc3MgYXNz
b2NpYXRlZCB3aXRoIGhvc3RuYW1lIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29u
c29sZS13ZWJzb2NrZXQtZXJyb3IuaHRtbAotdGVzdEROU0xvb2t1cDogb25jbG9zZSBpcyBjYWxs
ZWQuIGNvbnNvbGUtd2Vic29ja2V0LWVycm9yLmh0bWw6NDMKLXRlc3RTU0xDZXJ0aWZpY2F0ZTog
VGVzdCBzdGFydGVkLiBjb25zb2xlLXdlYnNvY2tldC1lcnJvci5odG1sOjUwCi1XZWJTb2NrZXQg
bmV0d29yayBlcnJvcjogVW5hY2NlcHRhYmxlIFRMUyBjZXJ0aWZpY2F0ZSBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvaW5zcGVjdG9yL2NvbnNvbGUtd2Vic29ja2V0LWVycm9yLmh0bWwKLXRlc3RTU0xD
ZXJ0aWZpY2F0ZTogb25jbG9zZSBpcyBjYWxsZWQuIGNvbnNvbGUtd2Vic29ja2V0LWVycm9yLmh0
bWw6NjQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2luc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1yZWNlaXZlLXJlc3BvbnNlLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjZWl2
ZS1yZXNwb25zZS1ldmVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDYyZDc1NDcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNlaXZlLXJlc3BvbnNlLWV2ZW50LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRlc3RzIHRoZSBUaW1lbGluZSBBUEkg
aW5zdHJ1bWVudGF0aW9uIG9mIGEgU2VuZFJlcXVlc3QsIFJlY2VpdmVSZXNwb25zZSBldGMuCi0K
LUZ1bmN0aW9uQ2FsbAotRnVuY3Rpb25DYWxsCi1SZXNvdXJjZVNlbmRSZXF1ZXN0Ci0gICAgUmVz
b3VyY2VSZWNlaXZlUmVzcG9uc2UKLSAgICBSZXNvdXJjZVJlY2VpdmVkRGF0YQotICAgIFJlc291
cmNlUmVjZWl2ZWREYXRhCi0gICAgUmVzb3VyY2VGaW5pc2gKLUV2ZW50RGlzcGF0Y2gKLSAgICBG
dW5jdGlvbkNhbGwKLVJlc291cmNlU2VuZFJlcXVlc3QKLSAgICBSZXNvdXJjZVJlY2VpdmVSZXNw
b25zZQotICAgIFJlc291cmNlUmVjZWl2ZWREYXRhCi0gICAgUmVzb3VyY2VSZWNlaXZlZERhdGEK
LSAgICBSZXNvdXJjZUZpbmlzaAotRXZlbnREaXNwYXRjaAotICAgIEZ1bmN0aW9uQ2FsbAotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzA0
Y2NlYS4uZjE2MWZiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTg1LDExICsxODUsNiBAQCBmYXN0L2V2ZW50cy9kcmFnLWxpbmsuaHRt
bAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIwNjEgcmRhcjov
L3Byb2JsZW0vMTExMDg2NDkKIGh0dHAvdGVzdHMvYXBwY2FjaGUKIAotIyBTa2lwcGluZyB0aGUg
dGVzdHMgZm9yIHRoZSBvbGQgaW5zcGVjdG9yIFVJCi1pbnNwZWN0b3IgWyBTa2lwIF0KLWh0dHAv
dGVzdHMvaW5zcGVjdG9yIFsgU2tpcCBdCi1odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkIFsg
U2tpcCBdCi0KICMgZmxha3kgc3RvcmFnZSB0ZXN0cwogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODI2NzkKIHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1zdWNjZXNz
LWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMzA5YzRmYS4uNWZjMWU2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIyNCwxMSArMjI0LDYgQEAgd2Via2l0Lm9y
Zy9iLzQyODIxIGFuaW1hdGlvbnMvcGxheS1zdGF0ZS5odG1sCiB3ZWJraXQub3JnL2IvMTEzNTk4
IGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRlbGF5LWNoYW5nZWQuaHRtbCBbIFBhc3MgRmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvMTEzNTk5IHN2Zy9hbmltYXRpb25zL3JlaW5zZXJ0aW5nLXN2Zy1pbnRv
LWRvY3VtZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi0jIFNraXBwaW5nIHRoZSB0ZXN0cyBm
b3IgdGhlIG9sZCBpbnNwZWN0b3IgVUkKLWluc3BlY3RvciBbIFNraXAgXQotaHR0cC90ZXN0cy9p
bnNwZWN0b3IgWyBTa2lwIF0KLWh0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQgWyBTa2lwIF0K
LQogIyBKU0MgZG9lc24ndCBzdXBwb3J0IGhlYXAgcHJvZmlsaW5nCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDQ4NQogd2Via2l0Lm9yZy9iLzUwNDg1IGluc3Bl
Y3Rvci1wcm90b2NvbC9oZWFwLXByb2ZpbGVyIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1l
cnJvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggN2RjNDIyMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1UZXN0cyB0aGF0IGVy
cm9ycyB0byBsb2FkIGEgcmVzb3VyY2UgY2F1c2UgZXJyb3IgbWVzc2FnZXMgdG8gYmUgbG9nZ2Vk
IHRvIGNvbnNvbGUuCi0KLQotR0VUIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbWlz
c2luZy5jc3MgNDA0IChOb3QgRm91bmQpIGNvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLWlmcmFtZS5o
dG1sOjMgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKLUdFVCBodHRwOi8vMTI3
LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25vbi1leGlzdGVudC1pZnJhbWUuaHRtbCA0MDQgKE5vdCBG
b3VuZCkgbm9uLWV4aXN0ZW50LWlmcmFtZS5odG1sOjEgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUt
ZXJyb3ItbGV2ZWwKLUdFVCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25vbi1leGlz
dGVudC1zY3JpcHQuanMgNDA0IChOb3QgRm91bmQpIGNvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLWlm
cmFtZS5odG1sOjQgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKLUdFVCBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25vbi1leGlzdGVudC14aHIgNDA0IChOb3QgRm91
bmQpIFtuYXRpdmUgY29kZV06MXNlbmQgW25hdGl2ZSBjb2RlXToxbG9hZFhIUiBjb25zb2xlLXJl
c291cmNlLWVycm9ycy5odG1sOjE4cGVyZm9ybUFjdGlvbnMgY29uc29sZS1yZXNvdXJjZS1lcnJv
cnMuaHRtbDoxMGV2YWwgY29kZWV2YWwgW25hdGl2ZSBjb2RlXToxX2V2YWx1YXRlT25fZXZhbHVh
dGVBbmRXcmFwZXZhbHVhdGUgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUtd2Vic29ja2V0LWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXdlYnNvY2tldC1lcnJvci1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2NDFmMTAuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUtd2Vic29ja2V0LWVycm9yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICsw
LDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMjogdGVzdEROU0xvb2t1cDogVGVzdCBzdGFy
dGVkLgotQ09OU09MRSBNRVNTQUdFOiBXZWJTb2NrZXQgbmV0d29yayBlcnJvcjogVGhlIG9wZXJh
dGlvbiBjb3VsZG7igJl0IGJlIGNvbXBsZXRlZC4gKGtDRkVycm9yRG9tYWluQ0ZOZXR3b3JrIGVy
cm9yIDIuKQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQzOiB0ZXN0RE5TTG9va3VwOiBvbmNsb3Nl
IGlzIGNhbGxlZC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MDogdGVzdFNTTENlcnRpZmljYXRl
OiBUZXN0IHN0YXJ0ZWQuCi1DT05TT0xFIE1FU1NBR0U6IFdlYlNvY2tldCBuZXR3b3JrIGVycm9y
OiBPU1N0YXR1cyBFcnJvciAtOTgwNzogSW52YWxpZCBjZXJ0aWZpY2F0ZSBjaGFpbiAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA2NDogdGVzdFNTTENlcnRpZmljYXRlOiBvbmNsb3NlIGlzIGNhbGxl
ZC4KLVdlYlNvY2tldCdzIG5ldHdvcmsgZXJyb3JzIHNob3VsZCBiZSBsb2dnZWQgdG8gY29uc29s
ZS4KLQotdGVzdEROU0xvb2t1cDogVGVzdCBzdGFydGVkLiBjb25zb2xlLXdlYnNvY2tldC1lcnJv
ci5odG1sOjMyCi1XZWJTb2NrZXQgbmV0d29yayBlcnJvcjogVGhlIG9wZXJhdGlvbiBjb3VsZG7i
gJl0IGJlIGNvbXBsZXRlZC4gKGtDRkVycm9yRG9tYWluQ0ZOZXR3b3JrIGVycm9yIDIuKSBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2NvbnNvbGUtd2Vic29ja2V0LWVycm9yLmh0bWwK
LXRlc3RETlNMb29rdXA6IG9uY2xvc2UgaXMgY2FsbGVkLiBjb25zb2xlLXdlYnNvY2tldC1lcnJv
ci5odG1sOjQzCi10ZXN0U1NMQ2VydGlmaWNhdGU6IFRlc3Qgc3RhcnRlZC4gY29uc29sZS13ZWJz
b2NrZXQtZXJyb3IuaHRtbDo1MAotV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IE9TU3RhdHVzIEVy
cm9yIC05ODA3OiBJbnZhbGlkIGNlcnRpZmljYXRlIGNoYWluICBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvaW5zcGVjdG9yL2NvbnNvbGUtd2Vic29ja2V0LWVycm9yLmh0bWwKLXRlc3RTU0xDZXJ0aWZp
Y2F0ZTogb25jbG9zZSBpcyBjYWxsZWQuIGNvbnNvbGUtd2Vic29ja2V0LWVycm9yLmh0bWw6NjQK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2luc3BlY3Rvci9jb25zb2xl
L2NvbW1hbmQtbGluZS1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2luc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGktZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjlhODFjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxODA6IFRoZSBjb25zb2xlIGZ1bmN0aW9uICQoKSBoYXMgY2hhbmdlZCBmcm9tICQ9Z2V0RWxl
bWVudEJ5SWQoaWQpIHRvICQ9cXVlcnlTZWxlY3RvcihzZWxlY3RvcikuIFlvdSBtaWdodCB0cnkg
JCgiIyVzIikKLVRlc3RzIHRoYXQgY29tbWFuZCBsaW5lIGFwaSB3b3Jrcy4KLQotCi0KLVN0cmlu
ZygkMCkKLSJbb2JqZWN0IEhUTUxQYXJhZ3JhcGhFbGVtZW50XSIKLQotCi0kMwotdW5kZWZpbmVk
Ci0KLQotU3RyaW5nKGtleXMoWzMsNF0pKQotIjAsMSIKLQotCi1TdHJpbmcodmFsdWVzKFszLDRd
KSkKLSIzLDQiCi0KLQotU3RyaW5nKCQoJyNmb28nKSkKLSJbb2JqZWN0IEhUTUxQYXJhZ3JhcGhF
bGVtZW50XSIKLQotCi1TdHJpbmcoJCgnI2ZvbycsIGRvY3VtZW50LmJvZHkpKQotIltvYmplY3Qg
SFRNTFBhcmFncmFwaEVsZW1lbnRdIgotCi0KLVN0cmluZygkKCcjZm9vJywgJ25vbi1ub2RlJykp
Ci0iW29iamVjdCBIVE1MUGFyYWdyYXBoRWxlbWVudF0iCi0KLQotU3RyaW5nKCQoJyNmb28nLCAk
KCcjYmFyJykpKQotIm51bGwiCi0KLQotU3RyaW5nKCQkKCdwI2ZvbycpKQotIltvYmplY3QgTm9k
ZUxpc3RdIgotCi0KLVN0cmluZygkJCgncCNmb28nLCBkb2N1bWVudC5ib2R5KSkKLSJbb2JqZWN0
IE5vZGVMaXN0XSIKLQotCi1TdHJpbmcoJCgnZm9vJykpCi1UaGUgY29uc29sZSBmdW5jdGlvbiAk
KCkgaGFzIGNoYW5nZWQgZnJvbSAkPWdldEVsZW1lbnRCeUlkKGlkKSB0byAkPXF1ZXJ5U2VsZWN0
b3Ioc2VsZWN0b3IpLiBZb3UgbWlnaHQgdHJ5ICQoIiNmb28iKQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvaW5zcGVjdG9yL2RldmljZS1vcmllbnRhdGlvbi1zdWNjZXNz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9pbnNwZWN0b3IvZGV2aWNl
LW9yaWVudGF0aW9uLXN1Y2Nlc3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4YjEzNzg5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9p
bnNwZWN0b3IvZGV2aWNlLW9yaWVudGF0aW9uLXN1Y2Nlc3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4teHAvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi14cC9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGU2ZjNlMjkuLmQyZTU0YTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi14cC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi14cC9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNiw4ICszNiwzIEBAIGZhc3QvaW1h
Z2VzL2VtYmVkLWltYWdlLmh0bWwKICMgRmFpbCB1bnRpbCBTVUJQSVhFTF9MQVlPVVQgaXMgZW5h
YmxlZAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU1MzIKIGZh
c3Qvc3ViLXBpeGVsCi0KLSMgU2tpcHBpbmcgdGhlIHRlc3RzIGZvciB0aGUgb2xkIGluc3BlY3Rv
ciBVSQotaW5zcGVjdG9yIFsgU2tpcCBdCi1odHRwL3Rlc3RzL2luc3BlY3RvciBbIFNraXAgXQot
aHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luLXhwL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUt
bW9kZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luLXhwL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUtbW9kZWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzMjQwZjFhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi14cC9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlLW1vZGVsLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotVGVzdHMgcmVzb3VyY2Ug
dHJlZSBtb2RlbC4KLQotCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzID0+IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJl
ZS1tb2RlbC5odG1sCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy10
ZXN0LmpzID0+IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS1t
b2RlbC5odG1sCi1odHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9kdW1t
eS1pZnJhbWUucGhwID0+IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2R1bW15LWlmcmFtZS5waHAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA0MzAwYWNjLi43M2U4ZWM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
VGVzdEV4cGVjdGF0aW9ucwpAQCAtODMsMTEgKzgzLDYgQEAgaHR0cC90ZXN0cy9zc2wKIGh0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXByb3RvY29sLWV4cGxpY2l0LWRvbWFp
bi5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90b2NvbC5o
dG1sCiAKLSMgU2tpcHBpbmcgdGhlIHRlc3RzIGZvciB0aGUgb2xkIGluc3BlY3RvciBVSQotaW5z
cGVjdG9yIFsgU2tpcCBdCi1odHRwL3Rlc3RzL2luc3BlY3RvciBbIFNraXAgXQotaHR0cC90ZXN0
cy9pbnNwZWN0b3ItZW5hYmxlZCBbIFNraXAgXQotCiAjIERpc2FibGUgYWxsIG1lZGlhIHRlc3Rz
IHdoaWxlIFFUU0RLIGlzc3VlcyBhcmUgd29ya2VkIG91dAogd2Via2l0Lm9yZy9iLzEyNTc1NCBt
ZWRpYSBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEyNTc1NCBmYXN0L2NhbnZhcy9jYW52YXMtZHJh
d0ltYWdlLWluY29tcGxldGUuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252ZXJz
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE2M2MyMWIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252ZXJzaW9uLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIyNiArMCwwIEBACi1UZXN0cyBjb252ZXJz
aW9uIG9mIEluc3BlY3RvcidzIHJlc291cmNlIHJlcHJlc2VudGF0aW9uIGludG8gSEFSIGZvcm1h
dC4KLQotUGFnZSByZWxvYWRlZC4KLXsKLSAgICB2ZXJzaW9uIDogPHN0cmluZz4KLSAgICBjcmVh
dG9yIDogewotICAgICAgICBuYW1lIDogIldlYkluc3BlY3RvciIKLSAgICAgICAgdmVyc2lvbiA6
IDxzdHJpbmc+Ci0gICAgfQotICAgIHBhZ2VzIDogWwotICAgICAgICB7Ci0gICAgICAgICAgICBz
dGFydGVkRGF0ZVRpbWUgOiA8b2JqZWN0PgotICAgICAgICAgICAgaWQgOiA8c3RyaW5nPgotICAg
ICAgICAgICAgdGl0bGUgOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJj
ZS1oYXItY29udmVyc2lvbi5odG1sIgotICAgICAgICAgICAgcGFnZVRpbWluZ3MgOiB7Ci0gICAg
ICAgICAgICAgICAgb25Db250ZW50TG9hZCA6IDxudW1iZXI+Ci0gICAgICAgICAgICAgICAgb25M
b2FkIDogPG51bWJlcj4KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0KLSAgICBlbnRy
aWVzIDogWwotICAgICAgICB7Ci0gICAgICAgICAgICBwYWdlcmVmIDogInBhZ2VfMSIKLSAgICAg
ICAgICAgIHN0YXJ0ZWREYXRlVGltZSA6IDxvYmplY3Q+Ci0gICAgICAgICAgICB0aW1lIDogPG51
bWJlcj4KLSAgICAgICAgICAgIHJlcXVlc3QgOiB7Ci0gICAgICAgICAgICAgICAgbWV0aG9kIDog
IkdFVCIKLSAgICAgICAgICAgICAgICB1cmwgOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyIKLSAgICAgICAgICAgICAgICBodHRwVmVyc2lvbiA6ICJI
VFRQLzEuMSIKLSAgICAgICAgICAgICAgICBoZWFkZXJzIDogPG9iamVjdD4KLSAgICAgICAgICAg
ICAgICBxdWVyeVN0cmluZyA6IFsKLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAg
Y29va2llcyA6IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgbmFtZSA6ICJhIgotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgOiAiYiIKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHBhdGggOiAiL3BhdGgiCi0gICAgICAgICAgICAgICAgICAgICAg
ICBkb21haW4gOiAiZXhhbXBsZS5jb20iCi0gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmVz
IDogbnVsbAotICAgICAgICAgICAgICAgICAgICAgICAgaHR0cE9ubHkgOiBmYWxzZQotICAgICAg
ICAgICAgICAgICAgICAgICAgc2VjdXJlIDogZmFsc2UKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuYW1lIDogImEx
IgotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgOiAiYjEiCi0gICAgICAgICAgICAgICAg
ICAgICAgICBwYXRoIDogdW5kZWZpbmVkCi0gICAgICAgICAgICAgICAgICAgICAgICBkb21haW4g
OiB1bmRlZmluZWQKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZXMgOiBudWxsCi0gICAg
ICAgICAgICAgICAgICAgICAgICBodHRwT25seSA6IGZhbHNlCi0gICAgICAgICAgICAgICAgICAg
ICAgICBzZWN1cmUgOiBmYWxzZQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgOiAiYzEiCi0gICAgICAgICAg
ICAgICAgICAgICAgICB2YWx1ZSA6ICJkMSIKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgg
OiB1bmRlZmluZWQKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbiA6IHVuZGVmaW5lZAot
ICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlcyA6IG51bGwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGh0dHBPbmx5IDogZmFsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlY3VyZSA6
IGZhbHNlCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAg
ICAgICAgICAgaGVhZGVyc1NpemUgOiA8bnVtYmVyPgotICAgICAgICAgICAgICAgIGJvZHlTaXpl
IDogPG51bWJlcj4KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlc3BvbnNlIDogewotICAg
ICAgICAgICAgICAgIHN0YXR1cyA6IDMwNAotICAgICAgICAgICAgICAgIHN0YXR1c1RleHQgOiAi
Tm90IE1vZGlmaWVkIgotICAgICAgICAgICAgICAgIGh0dHBWZXJzaW9uIDogIkhUVFAvMS4xIgot
ICAgICAgICAgICAgICAgIGhlYWRlcnMgOiA8b2JqZWN0PgotICAgICAgICAgICAgICAgIGNvb2tp
ZXMgOiBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5h
bWUgOiAieCIKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDogInkiCi0gICAgICAgICAg
ICAgICAgICAgICAgICBwYXRoIDogIi9wYXRoIgotICAgICAgICAgICAgICAgICAgICAgICAgZG9t
YWluIDogImV4YW1wbGUuY29tIgotICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlcyA6IG51
bGwKLSAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBPbmx5IDogdHJ1ZQotICAgICAgICAgICAg
ICAgICAgICAgICAgc2VjdXJlIDogdHJ1ZQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgOiAieDEiCi0gICAg
ICAgICAgICAgICAgICAgICAgICB2YWx1ZSA6ICJ5MSIKLSAgICAgICAgICAgICAgICAgICAgICAg
IHBhdGggOiB1bmRlZmluZWQKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbiA6IHVuZGVm
aW5lZAotICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlcyA6IG51bGwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGh0dHBPbmx5IDogZmFsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHNl
Y3VyZSA6IGZhbHNlCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICJ6MiIKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHZhbHVlIDogInkyIgotICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCA6IHVuZGVm
aW5lZAotICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluIDogdW5kZWZpbmVkCi0gICAgICAg
ICAgICAgICAgICAgICAgICBleHBpcmVzIDogbnVsbAotICAgICAgICAgICAgICAgICAgICAgICAg
aHR0cE9ubHkgOiBmYWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgc2VjdXJlIDogZmFsc2UK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAg
ICBjb250ZW50IDogewotICAgICAgICAgICAgICAgICAgICBzaXplIDogPG51bWJlcj4KLSAgICAg
ICAgICAgICAgICAgICAgY29tcHJlc3Npb24gOiA8bnVtYmVyPgotICAgICAgICAgICAgICAgICAg
ICBtaW1lVHlwZSA6ICJ0ZXh0L3BsYWluIgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICByZWRpcmVjdFVSTCA6ICIiCi0gICAgICAgICAgICAgICAgaGVhZGVyc1NpemUgOiA8bnVt
YmVyPgotICAgICAgICAgICAgICAgIGJvZHlTaXplIDogPG51bWJlcj4KLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGNhY2hlIDogewotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGltaW5n
cyA6IDxvYmplY3Q+Ci0gICAgICAgIH0KLSAgICAgICAgewotICAgICAgICAgICAgcGFnZXJlZiA6
ICJwYWdlXzEiCi0gICAgICAgICAgICBzdGFydGVkRGF0ZVRpbWUgOiA8b2JqZWN0PgotICAgICAg
ICAgICAgdGltZSA6IDxudW1iZXI+Ci0gICAgICAgICAgICByZXF1ZXN0IDogewotICAgICAgICAg
ICAgICAgIG1ldGhvZCA6ICJHRVQiCi0gICAgICAgICAgICAgICAgdXJsIDogImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24uaHRtbCIKLSAgICAg
ICAgICAgICAgICBodHRwVmVyc2lvbiA6ICJIVFRQLzEuMSIKLSAgICAgICAgICAgICAgICBoZWFk
ZXJzIDogPG9iamVjdD4KLSAgICAgICAgICAgICAgICBxdWVyeVN0cmluZyA6IFsKLSAgICAgICAg
ICAgICAgICBdCi0gICAgICAgICAgICAgICAgY29va2llcyA6IFsKLSAgICAgICAgICAgICAgICBd
Ci0gICAgICAgICAgICAgICAgaGVhZGVyc1NpemUgOiA8bnVtYmVyPgotICAgICAgICAgICAgICAg
IGJvZHlTaXplIDogPG51bWJlcj4KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlc3BvbnNl
IDogewotICAgICAgICAgICAgICAgIHN0YXR1cyA6IDIwMAotICAgICAgICAgICAgICAgIHN0YXR1
c1RleHQgOiAiT0siCi0gICAgICAgICAgICAgICAgaHR0cFZlcnNpb24gOiAiSFRUUC8xLjEiCi0g
ICAgICAgICAgICAgICAgaGVhZGVycyA6IDxvYmplY3Q+Ci0gICAgICAgICAgICAgICAgY29va2ll
cyA6IFsKLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgY29udGVudCA6IHsKLSAg
ICAgICAgICAgICAgICAgICAgc2l6ZSA6IDxudW1iZXI+Ci0gICAgICAgICAgICAgICAgICAgIGNv
bXByZXNzaW9uIDogPG51bWJlcj4KLSAgICAgICAgICAgICAgICAgICAgbWltZVR5cGUgOiAidGV4
dC9odG1sIgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZWRpcmVjdFVSTCA6
ICIiCi0gICAgICAgICAgICAgICAgaGVhZGVyc1NpemUgOiA8bnVtYmVyPgotICAgICAgICAgICAg
ICAgIGJvZHlTaXplIDogPG51bWJlcj4KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhY2hl
IDogewotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGltaW5ncyA6IDxvYmplY3Q+Ci0gICAg
ICAgIH0KLSAgICAgICAgewotICAgICAgICAgICAgcGFnZXJlZiA6ICJwYWdlXzEiCi0gICAgICAg
ICAgICBzdGFydGVkRGF0ZVRpbWUgOiA8b2JqZWN0PgotICAgICAgICAgICAgdGltZSA6IDxudW1i
ZXI+Ci0gICAgICAgICAgICByZXF1ZXN0IDogewotICAgICAgICAgICAgICAgIG1ldGhvZCA6ICJH
RVQiCi0gICAgICAgICAgICAgICAgdXJsIDogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0
b3IvcmVzb3VyY2VzLXRlc3QuanMiCi0gICAgICAgICAgICAgICAgaHR0cFZlcnNpb24gOiAiSFRU
UC8xLjEiCi0gICAgICAgICAgICAgICAgaGVhZGVycyA6IDxvYmplY3Q+Ci0gICAgICAgICAgICAg
ICAgcXVlcnlTdHJpbmcgOiBbCi0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgIGNv
b2tpZXMgOiBbCi0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgIGhlYWRlcnNTaXpl
IDogPG51bWJlcj4KLSAgICAgICAgICAgICAgICBib2R5U2l6ZSA6IDxudW1iZXI+Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICByZXNwb25zZSA6IHsKLSAgICAgICAgICAgICAgICBzdGF0dXMg
OiAzMDQKLSAgICAgICAgICAgICAgICBzdGF0dXNUZXh0IDogIk5vdCBNb2RpZmllZCIKLSAgICAg
ICAgICAgICAgICBodHRwVmVyc2lvbiA6ICJIVFRQLzEuMSIKLSAgICAgICAgICAgICAgICBoZWFk
ZXJzIDogPG9iamVjdD4KLSAgICAgICAgICAgICAgICBjb29raWVzIDogWwotICAgICAgICAgICAg
ICAgIF0KLSAgICAgICAgICAgICAgICBjb250ZW50IDogewotICAgICAgICAgICAgICAgICAgICBz
aXplIDogPG51bWJlcj4KLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3Npb24gOiA8bnVtYmVy
PgotICAgICAgICAgICAgICAgICAgICBtaW1lVHlwZSA6ICJ0ZXh0L3BsYWluIgotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICByZWRpcmVjdFVSTCA6ICIiCi0gICAgICAgICAgICAg
ICAgaGVhZGVyc1NpemUgOiA8bnVtYmVyPgotICAgICAgICAgICAgICAgIGJvZHlTaXplIDogPG51
bWJlcj4KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhY2hlIDogewotICAgICAgICAgICAg
fQotICAgICAgICAgICAgdGltaW5ncyA6IDxvYmplY3Q+Ci0gICAgICAgIH0KLSAgICAgICAgewot
ICAgICAgICAgICAgcGFnZXJlZiA6ICJwYWdlXzEiCi0gICAgICAgICAgICBzdGFydGVkRGF0ZVRp
bWUgOiA8b2JqZWN0PgotICAgICAgICAgICAgdGltZSA6IDxudW1iZXI+Ci0gICAgICAgICAgICBy
ZXF1ZXN0IDogewotICAgICAgICAgICAgICAgIG1ldGhvZCA6ICJQT1NUIgotICAgICAgICAgICAg
ICAgIHVybCA6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9wb3N0
LXRhcmdldC5jZ2kiCi0gICAgICAgICAgICAgICAgaHR0cFZlcnNpb24gOiAiSFRUUC8xLjEiCi0g
ICAgICAgICAgICAgICAgaGVhZGVycyA6IDxvYmplY3Q+Ci0gICAgICAgICAgICAgICAgcXVlcnlT
dHJpbmcgOiBbCi0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgIGNvb2tpZXMgOiBb
Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgIGhlYWRlcnNTaXplIDogPG51bWJl
cj4KLSAgICAgICAgICAgICAgICBib2R5U2l6ZSA6IDxudW1iZXI+Ci0gICAgICAgICAgICAgICAg
cG9zdERhdGEgOiB7Ci0gICAgICAgICAgICAgICAgICAgIG1pbWVUeXBlIDogInRleHQveG1sIgot
ICAgICAgICAgICAgICAgICAgICB0ZXh0IDogIjx4bWw+PC94bWw+IgotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlc3BvbnNlIDogewotICAgICAgICAgICAg
ICAgIHN0YXR1cyA6IDIwMAotICAgICAgICAgICAgICAgIHN0YXR1c1RleHQgOiAiT0siCi0gICAg
ICAgICAgICAgICAgaHR0cFZlcnNpb24gOiAiSFRUUC8xLjEiCi0gICAgICAgICAgICAgICAgaGVh
ZGVycyA6IDxvYmplY3Q+Ci0gICAgICAgICAgICAgICAgY29va2llcyA6IFsKLSAgICAgICAgICAg
ICAgICBdCi0gICAgICAgICAgICAgICAgY29udGVudCA6IHsKLSAgICAgICAgICAgICAgICAgICAg
c2l6ZSA6IDxudW1iZXI+Ci0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzaW9uIDogPG51bWJl
cj4KLSAgICAgICAgICAgICAgICAgICAgbWltZVR5cGUgOiAiYXBwbGljYXRpb24veG1sIgotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZWRpcmVjdFVSTCA6ICIiCi0gICAgICAg
ICAgICAgICAgaGVhZGVyc1NpemUgOiA8bnVtYmVyPgotICAgICAgICAgICAgICAgIGJvZHlTaXpl
IDogPG51bWJlcj4KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhY2hlIDogewotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgdGltaW5ncyA6IDxvYmplY3Q+Ci0gICAgICAgIH0KLSAgICBd
Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGQ1Mzg2Y2EuLmMyZDY0YmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
Y2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDMyLDExICs0MzIsNiBAQCBmb250cy9tb25vc3Bh
Y2UuaHRtbAogZm9udHMvc2Fucy1zZXJpZi5odG1sIAogZm9udHMvc2VyaWYuaHRtbCAKIAotIyBT
a2lwcGluZyB0aGUgdGVzdHMgZm9yIHRoZSBvbGQgaW5zcGVjdG9yIFVJCi1pbnNwZWN0b3IgWyBT
a2lwIF0KLWh0dHAvdGVzdHMvaW5zcGVjdG9yIFsgU2tpcCBdCi1odHRwL3Rlc3RzL2luc3BlY3Rv
ci1lbmFibGVkIFsgU2tpcCBdCi0KIGxvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ct
c2l6ZS5odG1sIAogbG9hZGVyL2xvYWQtZGVmZXItcmVzdW1lLWNyYXNoLmh0bWwKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwOWI1N2Q4Li4wMzg4OTdm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjAsMTEg
KzYwLDYgQEAgcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXdpdGgtdGl0bGUtY29y
cmVjdC1oaWVyYXJjaHkuaHRtbAogY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtc2l6ZS1mcm9t
LXplcm8uaHRtbAogY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtc3JjLWNoYW5nZS5odG1sCiAK
LSMgU2tpcHBpbmcgdGhlIHRlc3RzIGZvciB0aGUgb2xkIGluc3BlY3RvciBVSQotaW5zcGVjdG9y
IFsgU2tpcCBdCi1odHRwL3Rlc3RzL2luc3BlY3RvciBbIFNraXAgXQotaHR0cC90ZXN0cy9pbnNw
ZWN0b3ItZW5hYmxlZCBbIFNraXAgXQotCiAjIEZsYWtleSBvbiBTbm93IExlb3BhcmQgSW50ZWwg
V2ViS2l0MiBSZWxlYXNlIFRlc3RzCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01ODE4MwogZWRpdGluZy9leGVjQ29tbWFuZC9jb252ZXJ0LXN0eWxlLWVsZW1lbnRz
LXRvLXNwYW5zLmh0bWwK
</data>
<flag name="review"
          id="245925"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>